diff --git a/rpms/awips2-rpm.db b/rpms/awips2-rpm.db new file mode 100644 index 0000000000..cc5e6dc3cf Binary files /dev/null and b/rpms/awips2-rpm.db differ diff --git a/rpms/awips2.64/Installer.alertviz/component.spec b/rpms/awips2.64/Installer.alertviz/component.spec new file mode 100644 index 0000000000..cdefaf17ac --- /dev/null +++ b/rpms/awips2.64/Installer.alertviz/component.spec @@ -0,0 +1,134 @@ +%define _component_name awips2-alertviz +# +# AWIPS II AlertViz Spec File +# +%define __prelink_undo_cmd %{nil} + +Name: %{_component_name} +Summary: AWIPS II AlertViz +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-alertviz +requires: awips2-python +requires: awips2-java + +%description +AWIPS II AlertViz Distribution - the AWIPS II AlertViz application. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2 + +%build +# perform the AlertViz pde build. +cd %{_baseline_workspace}/build + +# TODO: Eliminate the hard-coded uframe-eclipse location. +time ./build.sh -eclipse=/opt/uframe-eclipse +if [ $? -ne 0 ]; then + exit 1 +fi + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses.tar \ + %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses/ + + cp %{_baseline_workspace}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "%{_baseline_workspace}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses.tar +} + +ALERTVIZ_ZIP_FILE="build/alertviz/tmp/I.AlertViz/AlertViz-linux.gtk.x86_64.zip" + +cd ${RPM_BUILD_ROOT}/awips2 +unzip %{_baseline_workspace}/${ALERTVIZ_ZIP_FILE} + +# Also Need To Create The alertvizEnvironment Directory +mkdir -p ${RPM_BUILD_ROOT}/awips2/alertviz/alertvizEnvironment + +# Create our autostart template +mkdir -p ${RPM_BUILD_ROOT}/etc/xdg/autostart +cp %{_baseline_workspace}/Installer.rpm/awips2.core/Installer.alertviz/scripts/autostart/awips2-alertviz.desktop \ + ${RPM_BUILD_ROOT}/etc/xdg/autostart + +copyLegal "awips2/alertviz" + +%pre + +%post +# Remove the alertviz autostart script if we have been installed on +# an xt machine. +if [ "`hostname | cut -b 1-2`" = "xt" ]; then + # Remove the awips2-alertviz autostart script. + rm -f /etc/xdg/autostart/awips2-alertviz.desktop +fi + +%postun + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/alertviz +/awips2/alertviz/.eclipseproduct +%docdir /awips2/alertviz/about_files +%dir /awips2/alertviz/about_files +/awips2/alertviz/about_files/* +%doc /awips2/alertviz/about.html +%dir /awips2/alertviz/alertvizEnvironment +/awips2/alertviz/alertviz.ini +%dir /awips2/alertviz/configuration +/awips2/alertviz/configuration/* +%dir /awips2/alertviz/etc +/awips2/alertviz/etc/* +%dir /awips2/alertviz/features +/awips2/alertviz/features/* +%docdir /awips2/alertviz/licenses +%dir /awips2/alertviz/licenses +/awips2/alertviz/licenses/* +%dir /awips2/alertviz/plugins +/awips2/alertviz/plugins/* + +%defattr(755,awips,fxalpha,755) +/awips2/alertviz/alertviz +/awips2/alertviz/*.so +/awips2/alertviz/*.sh + +%attr(644,root,root) /etc/xdg/autostart/awips2-alertviz.desktop \ No newline at end of file diff --git a/rpms/awips2.64/Installer.dynamicserialize/component.spec b/rpms/awips2.64/Installer.dynamicserialize/component.spec new file mode 100644 index 0000000000..fa2dfff612 --- /dev/null +++ b/rpms/awips2.64/Installer.dynamicserialize/component.spec @@ -0,0 +1,62 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python dynamicserialize Spec File +# +Name: awips2-python-dynamicserialize +Summary: AWIPS II Python dynamicserialize Distribution - 64 Bit +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-thrift +provides: awips2-python-dynamicserialize + +%description +AWIPS II Python dynamicserialize Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/awips2/python/lib/python2.7/site-packages/dynamicserialize + +%build + +%install +DYNAMICSERIALIZE_SRC_DIR="%{_python_pkgs_dir}/dynamicserialize" + +cp -rv ${DYNAMICSERIALIZE_SRC_DIR}/* \ + %{_build_root}/awips2/python/lib/python2.7/site-packages/dynamicserialize + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.h5py/component.spec b/rpms/awips2.64/Installer.h5py/component.spec new file mode 100644 index 0000000000..94bf589897 --- /dev/null +++ b/rpms/awips2.64/Installer.h5py/component.spec @@ -0,0 +1,105 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python h5py Spec File +# +Name: awips2-python-h5py +Summary: AWIPS II Python h5py Distribution - 64 Bit +Version: 1.3.0 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-numpy +provides: awips2-python-h5py + +%description +AWIPS II Python h5py Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +PRE_REQS_HDF5_TAR="hdf5-1.8.4-patch1-linux-x86_64-shared.tar.gz" +PRE_REQS_DIR="%{_baseline_workspace}/Installer.rpm/awips2.64/deploy.builder/pre-reqs" +cp -v ${PRE_REQS_DIR}/${PRE_REQS_HDF5_TAR} \ + %{_build_root} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root} +/bin/tar -xvf ${PRE_REQS_HDF5_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +rm -f ${PRE_REQS_HDF5_TAR} +popd > /dev/null + +%build +H5PY_SRC_DIR="%{_python_pkgs_dir}/h5py" +HDF5_PATH="%{_build_root}/hdf5-1.8.4-patch1-linux-x86_64-shared" + +cp -rv ${H5PY_SRC_DIR}/* \ + %{_build_root}/build-python +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build \ + --hdf5=${HDF5_PATH} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +HDF5_PATH="%{_build_root}/hdf5-1.8.4-patch1-linux-x86_64-shared" + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +popd > /dev/null + +rm -rf ${HDF5_PATH} +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.java/component.spec b/rpms/awips2.64/Installer.java/component.spec new file mode 100644 index 0000000000..2030139922 --- /dev/null +++ b/rpms/awips2.64/Installer.java/component.spec @@ -0,0 +1,208 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +# +# AWIPS II Java Spec File +# +Name: awips2-java +Summary: AWIPS II Java Distribution - 64 Bit +Version: 1.6.0_27 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +BuildArch: x86_64 +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-java + +%description +AWIPS II Java (64 Bit) Distribution - Contains Java SE Development Kit (JDK) 1.6.0_27 +plus additional libraries used by AWIPS II. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/build-java +mkdir -p %{_build_root}/awips2/java +mkdir -p %{_build_root}/etc/profile.d + +%build + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +JDK_BIN="jdk-6u27-linux-x64.bin" +JDK_BIN_var_javahome="jdk1.6.0_27" +JAI_BIN="jai-1_1_3-lib-linux-amd64-jdk.bin" +JAI_BIN_PATCH="jai.patch1" +JAI_IMAGEIO_BIN="jai_imageio-1_1-lib-linux-amd64-jdk.bin" +JAI_IMAGEIO_BIN_PATCH="jai_imageio.patch1" +PYDEV_CERT="pydev_certificate.cer" +JAVA_SRC_DIR="%{_baseline_workspace}/Installer.rpm/awips2.64/Installer.java/src" + +pushd . +cd ${JAVA_SRC_DIR} +cp -v ${JDK_BIN} %{_build_root}/build-java +if [ $? -ne 0 ]; then + exit 1 +fi +patch -i ${JAI_BIN_PATCH} -o %{_build_root}/build-java/${JAI_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi +patch -i ${JAI_IMAGEIO_BIN_PATCH} \ + --ignore-whitespace \ + -o %{_build_root}/build-java/${JAI_IMAGEIO_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi + +chmod a+x %{_build_root}/build-java/*.bin +cd %{_build_root}/awips2/java +# Used to automatically agree to software licenses. +touch yes.txt +echo "yes" > yes.txt +%{_build_root}/build-java/${JDK_BIN} -noregister +if [ $? -ne 0 ]; then + exit 1 +fi +mv ${JDK_BIN_var_javahome}/* . +if [ $? -ne 0 ]; then + exit 1 +fi +rm -rfv ${JDK_BIN_var_javahome} +if [ $? -ne 0 ]; then + exit 1 +fi +%{_build_root}/build-java/${JAI_BIN} < yes.txt +if [ $? -ne 0 ]; then + exit 1 +fi +%{_build_root}/build-java/${JAI_IMAGEIO_BIN} < yes.txt +if [ $? -ne 0 ]; then + exit 1 +fi + +rm -fv yes.txt +if [ $? -ne 0 ]; then + exit 1 +fi +rm -rf %{_build_root}/build-java +if [ $? -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +# Our profile.d scripts. +JAVA_SCRIPTS_DIR="%{_baseline_workspace}/Installer.rpm/awips2.64/Installer.java/scripts" +JAVA_PROFILED_DIR="${JAVA_SCRIPTS_DIR}/profile.d" +cp -v ${JAVA_PROFILED_DIR}/* %{_build_root}/etc/profile.d +if [ $? -ne 0 ]; then + exit 1 +fi + +# The pydev certificate. +cp -v ${JAVA_SRC_DIR}/${PYDEV_CERT} \ + %{_build_root}/awips2/java/jre/lib/security +touch changeit.txt +echo "changeit" > changeit.txt +chmod 666 %{_build_root}/awips2/java/jre/lib/security/cacerts +if [ $? -ne 0 ]; then + exit 1 +fi +%{_build_root}/awips2/java/bin/keytool -import \ + -file %{_build_root}/awips2/java/jre/lib/security/pydev_certificate.cer \ + -keystore %{_build_root}/awips2/java/jre/lib/security/cacerts \ + -noprompt < changeit.txt +rm -fv changeit.txt +if [ $? -ne 0 ]; then + exit 1 +fi + +# The licenses +mkdir -p %{_build_root}/awips2/java/licenses +LEGAL_DIR="%{_baseline_workspace}/Installer.rpm/legal" +cp -v ${LEGAL_DIR}/*.txt ${LEGAL_DIR}/*.pdf \ + %{_build_root}/awips2/java/licenses +if [ $? -ne 0 ]; then + exit 1 +fi + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%attr(755,root,root) /etc/profile.d/awips2Java64.csh +%attr(755,root,root) /etc/profile.d/awips2Java64.sh +%dir /awips2/java +%dir /awips2/java/bin + +%doc /awips2/java/COPYRIGHT +%doc /awips2/java/COPYRIGHT-jai_imageio.txt +%doc /awips2/java/COPYRIGHT-jai.txt +%doc /awips2/java/DISTRIBUTIONREADME-jai_imageio.txt +%doc /awips2/java/DISTRIBUTIONREADME-jai.txt +%doc /awips2/java/ENTITLEMENT-jai_imageio.txt +%doc /awips2/java/jre/README +%doc /awips2/java/jre/THIRDPARTYLICENSEREADME.txt +%doc /awips2/java/jre/Welcome.html +%doc /awips2/java/jre/LICENSE +%doc /awips2/java/LICENSE +%doc /awips2/java/LICENSE-jai_imageio.txt +%doc /awips2/java/LICENSE-jai.txt +%docdir /awips2/java/licenses +%dir /awips2/java/licenses +/awips2/java/licenses/* +%docdir /awips2/java/man +%dir /awips2/java/man +/awips2/java/man/* +%doc /awips2/java/README.html +%doc /awips2/java/register.html +%doc /awips2/java/register_ja.html +%doc /awips2/java/register_zh_CN.html +%doc /awips2/java/THIRDPARTYLICENSEREADME-jai_imageio.txt +%doc /awips2/java/THIRDPARTYLICENSEREADME-jai.txt +%doc /awips2/java/THIRDPARTYLICENSEREADME.txt +%doc /awips2/java/UNINSTALL-jai +%doc /awips2/java/UNINSTALL-jai_imageio +%doc /awips2/java/jre/COPYRIGHT + +%dir /awips2/java/db +/awips2/java/db/* +%dir /awips2/java/demo +/awips2/java/demo/* +%dir /awips2/java/include +/awips2/java/include/* +%dir /awips2/java/jre +%dir /awips2/java/jre/.systemPrefs +/awips2/java/jre/.systemPrefs/.* +#/awips2/java/jre/.systemPrefs/.systemRootModFile +%dir /awips2/java/jre/bin + +/awips2/java/jre/javaws +%dir /awips2/java/jre/lib + +%dir /awips2/java/jre/plugin +/awips2/java/jre/plugin/* +%dir /awips2/java/lib + +/awips2/java/sample +/awips2/java/src.zip + +%defattr(755,awips,fxalpha,755) +/awips2/java/bin/* +/awips2/java/lib/* +/awips2/java/jre/bin/* +/awips2/java/jre/lib/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.java/scripts/profile.d/awips2Java64.csh b/rpms/awips2.64/Installer.java/scripts/profile.d/awips2Java64.csh new file mode 100644 index 0000000000..57ef47ea1c --- /dev/null +++ b/rpms/awips2.64/Installer.java/scripts/profile.d/awips2Java64.csh @@ -0,0 +1,10 @@ +#!/bin/csh + +set JAVA_INSTALL="/awips2/java" + +setenv JAVA_HOME "${JAVA_INSTALL}" +if $?PATH then + setenv PATH ${JAVA_INSTALL}/bin:$PATH +else + setenv PATH ${JAVA_INSTALL}/bin +endif diff --git a/rpms/awips2.64/Installer.java/scripts/profile.d/awips2Java64.sh b/rpms/awips2.64/Installer.java/scripts/profile.d/awips2Java64.sh new file mode 100644 index 0000000000..9dc7df2dcc --- /dev/null +++ b/rpms/awips2.64/Installer.java/scripts/profile.d/awips2Java64.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +JAVA_INSTALL="/awips2/java" + +if [ ! -d ${JAVA_INSTALL} ]; then + return +fi + +# Update the environment. +export JAVA_HOME=${JAVA_INSTALL} +# Determine if Java is already part of the path. +CHECK_PATH=`echo "${PATH}" | grep "${JAVA_INSTALL}"` +if [ ! "${CHECK_PATH}" = "" ]; then + return +fi +# Java is not in the path; add it to the path. +export PATH=${JAVA_INSTALL}/bin:${PATH} diff --git a/rpms/awips2.64/Installer.java/src/jai-1_1_3-lib-linux-amd64-jdk.bin b/rpms/awips2.64/Installer.java/src/jai-1_1_3-lib-linux-amd64-jdk.bin new file mode 100644 index 0000000000..a6c6f970a7 --- /dev/null +++ b/rpms/awips2.64/Installer.java/src/jai-1_1_3-lib-linux-amd64-jdk.bin @@ -0,0 +1,13425 @@ +#!/bin/sh +PATH=/bin:/usr/bin +more < $outname +else + tail -n +139 $0 > $outname +fi +if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + + sum=`/usr/bin/cksum $outname` + index=1 + for s in $sum + do + case $index in + 1) sum1=$s; + index=2; + ;; + 2) sum2=$s; + index=3; + ;; + esac + done + if expr $sum1 != 3431119467 || expr $sum2 != 3567498 ; then + echo "The download file appears to be corrupted. Please refer" + echo "to the Troubleshooting section of the Installation" + echo "Instructions on the download page for more information." + echo "Please do not attempt to install this archive file." + rm -f $outname + exit 1 + fi +else + echo "Can't find /usr/bin/cksum to do checksum. Continuing anyway." +fi + +if [ "`uname`" = "SunOS" ]; then + if [ "`uname -p`" = "sparc" ]; then + ARCH=sparc # solaris-sparc or solaris-sparcv9 + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +elif [ `expr "\`uname -m\`" : .*64.*` != '0' ]; then + ARCH=amd64 # linux-amd64 +else + ARCH=i386 # linux-i586 +fi +if [ ! -d jre/lib/ext ] || [ ! -d jre/lib/$ARCH ] ; then + echo "This is not a proper JDK directory. Exiting install." + rm -f $outname + exit 1 +fi + +echo "Extracting..." +chmod u+x $outname +./$outname +rm -f $outname +echo "Done." +exit 0 +ELF>@@@@8@@@@@@@@@@,,@@ @@@@@ Ptd@@$$/lib64/ld-linux-x86-64.so.2GNU%5 +-+#24 /13),0(.$ "  !% &*'x@(@@'@1@'k@'@I@Wg! @@P(@^@j0@8@/@I(@'8@ H@X@Bh@;x@f5@@"@'@ye @W@@@(#@'e@'@(@8@'H@8X@Ph@ x@@@'@'_@'J@'w@1q@'`@"@@@:@n%H@@(@\p libc.so.6strcpyioctlstdoututime__ctype_bqsortfgetsmemcpyperrormallocisattyfflushfcloselseekchownchmod__lxstatstrrchrwritefprintfstdinumasksignalstrncmpunlinkreallocfreadsymlinklocaltimememsettcgetattrstrcmpsprintfstderrfputc__xstatexit_IO_putcfilenofopen__libc_start_maintzsettcsetattrmkdir__ctype_tolowerfree__timezone__gmon_start__GLIBC_2.2.5ui @4 @(@ 0@ 8@@@0H@2@@@@@@@@@ +@ @@@ @(@0@8@@@H@P@X@`@h@p@x@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@1@3H}H5:%<%:h%2h%*h%"h%h%h% +h%hp%h`%h P%h +@%h 0%ڼh %Ҽh %ʼh%¼h%h%h%h%h%h%h%h%hp%zh`%rhP%jh@%bh0%Zh %Rh%Jh%Bh%:h %2h!%*h"%"h#%h$%h%% +h&%h'p%h(`%h)P%h*@%h+0H1I^HHPTI@HP@H@fHHHtHffffffffff=UHu6HlHHt fffHHUHLHHu}ffffffffUH=HtHt @fffHH\$Ld$AHBHDH\$Ld$HSH|$Ht$J@J@J@J@ HD$HHH˺Ht$H|$|$D$ AAHD$HIH8HH@H=?.MLƿ @H8 +L;\$I@HEt#ILH+H_A EtILH+H;H8uHII;t IH2@H߸HcйH޿`@͘ +QI{t%ISH H+T$HD$)ЉHڹ0@EI-u BxuBunAL;uH0@B&Et!ILH+jH AISHWH+T$HD$)ЉAII;tH=Qt8=ܸu/HH@@H߸UHcйH޿`@w.YH[AWAVAUATUSHIIAI/HD'AEH}HEH€8-HRHHBӃM$Ű@t)H‰b|lOeUtV-G3t8 )H=H 9u.AAHHEHʶ8-9H9t϶}At}DnJtk)H‰[P tqbtt)H‰t˵t-%z\t)H‰y(n2t_ +PtE6t t HH+EH9AHE8-wt)H‰FSt)H‰"/t|)H‰l_AH@HAE~H}t HU:- =ڳt=u-=u$=t =u=t>=ijt5HH@`@H߸HcйH޿`@A=b~ +V=wtB=jt9HH@@H߸?HcйH޿`@a3=Xtu +>EtE&I/D=QHH@H$@A#@A@H߸HcEH޿`@đ=uu=u=u =tPʲNHH@@ HH@ @H߸5HcйH޿`@W +zE&I/H[]A\A]A^A_ATSHAHH@H$@A#@A@H߸HcEH޿`@ѐ$@&@`@H߸}HcEH޿`@E +EH[A\fffATUSHHIԸH$HH1IE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HII"MtE0HHHH3HIuH1[]A\HVIHtB HcֹHHtH1HuHcIƁ~L<HHH=+uHHHH= tH=HHffAWAVAUATUSHhHD$@HD$8AHD$(HD$ HD$HD$HHD$PD$\HD$`H@@=>t?=6H5HD$(Ht&D;-sHT$(;-r=t>=HHD$ Ht%;-ԮsHT$ ;-rD$D$4ADH@HH@@HH0@!U @H0@qD$f9{,DHD$8HHT@HH@HcйHH@`@ߌ@HH@HcйHH@`@AY=z,tD9DO&=z,tD9DO=z,tD9DO=I=4uA\A;-sIHNH4؋H`@JtAH|$(tHT$( +;-ЬrEtn;-¬sIHH4؋EH`@ItAH|$ tHD$  +;-yrEttAHD$D$A?H-yL%xD=xD,$LL$`LD$\HL$PHT$HHt$@DD9DO=)z +APH|$(t +H|$(H|$ H|$ HH@H`@H¾p@HH@@Hcй![HH@H`@(@H¾@ HH@H`@x(@H¾@HH@HcйHH@`@ AA3D$4H=wHw H5Yw=wL%OwD=PwHD$8|$4|$\>|$\HIHu[HH@@H߸'HcйH޿`@IH|$`H|$`HHD$`cH|$`|$\u +HD$`IA;l$\s HD$`IHD$`HHD$`;l$\rt$\3?@L#;l$\siIH@M$LpmÅt4IT$@@LVHcйL`@xEDDI|$L;l$\rLH|$(tv;-\s_HH@A HD$(<u;HyHо`@H߸HcйH޿`@AEN;-rH|$( H|$ th;-sQHH@HD$ <u3H Hо@H߸SHcйH޿`@u;-rH|$ =>xHD$@HH+L$H= Et7A#@0@HDHH@H t @H߸HuHH@Ht`@+=t1HD$HD$HHu"HH@Ht @H߸t3HA@#@LDHH@HYt`@H߸?HcйH޿`@aH|$t}H|$@#@HDHH@HT$@H߸3=u@Eu;Hu6HH@Hs`@H߸HcйH޿`@܅H|$@uAH|$ QADDH|$t AQDNDHh[]A\A]A^A_SHH sA($ЈA(H sf€A($ЈA(H ²sA($ЈA(HgsHHPH]sHHPHSsHtHPtt(HX`(&HKP( ʈP( H0H(=r =r*vn=o;HH@H`@D rfAifACA(EEHH@D$$9@ ==@ HH@H`@:HH@H¾@H߸HcйH޿`@ɃH: H4@y=y=YD=q=^*HH@H`@D qfAifACA(EEHH@D$$=@H¾@@H߸f=8qtOf=.qtE=ǣHH@H`@  qHH@H¾@H߸sEH"@(tU=uuEHH@H`@HH@H¾@H߸,HcйH޿`@N-nWpHfP HpHHH[AWAVAUATUSH(|$$IHL$LD$LL$Dl$`AA9 IDH@HH@@HAHHH-oHHHOH%HH)II)H@HNo @HH@0HcйHH@`@NAI>H=&o@HH@HcйHH@`@HnHT$HHnH_H(HHHOH%HH)II)Hy'@Hzn @HH@\ L;%pnthL=PnHTn H5m=2n-mHH@M@@HcHmHm)m%m+m)mHcHmHmH0@"$@H0@xHH@I蹐@I @H߸fHcйH޿`@AI>u H=dmuH=XmoHD$H8`HH@@H߸HcйH޿`@$H= mtHmHT$HHlHT$HHlHhH8vAąuH0@uAtiHH@IF@)$@H0@tIHH@I蹐@I @H߸7HcйHH@`@U~AWMAąt:HH@I@H߸Hcй!H޿`@ ~E=-lPt5D9DO~)HH@H`@HH@J@H¾@iH=ktH=kHk=ktED9DO~9HH@H`@HH@J@H¾@H߸ ==D$$|$uw=l/unHH@H`@-HH@H¾ @H߸HcйH޿`@|EDDHa@BH„u=5l/t|$SA%tA9DLD%=-=8yHHu&HH@@H߸HcйHT$HHEH*H`@HHHHEHT$HHxuWHH@@H߸HcйH޿`@{HEHT$HHEAHT$HHxH`@HD$HH@$B(H=Lit3HT$LMH0I5miH DiH= iKuHD$HH=ipHCuHD$HHBHBHT$H +=ƛtEЉQ,HD$=uOHH@H`@ HH@#@H¾`@H߸=ldu5 b=bxHbHHb ƒtH=ydH5gdHH@E H=HH@H`@H=Kt@#@=2uH@(LIE#@HH@II}@P@H߸HcйH޿`@)tf=-b @@+AąŃ1=הtHHH@H`@!AP@0@HDHH@Il@@H߸w/P@0@HDHH@l@@H߸FHcйH޿`@hsA,THH@H`@HH@H¾@H߸HcйH޿`@s=ޓu=uT=/btZ=&b~LHH@H`@HH@H¾@H߸qHcй!H޿`@r2H`H9`=CtEHH@H`@HH@H¾@H߸HcйH޿`@rHH@H &`H_@H߸HcйH޿`@q\=t=uJHH@@=u3u/HH@@H߸ZHcйH޿`@|q`H[]A\A]AWAVAUATUSH(IHHIHHD$ H^HD$^D$AHAH}HD$HEH^IEHG^`L=`H`Aąt +t3Hch^H5Y^LdHH6`H&`fA @@'Ņ=OuEP@0@HDHH@l@@H߸HcйH޿`@$pDF4P=tEAA9AHH@@H߸HcйH޿`@oAHD$HT]D$R]HD$ H^EupH _LH;D$tU=QtADHH@LD$HH] @H߸HcйH޿`@%oADH([]A\A]A^A_SHHH;5?^v23H='^HHƸH^H)^H`^[HH?t":w ^H@HH:uHHHHHpHzNHfSH=3\+\u=HH@H\@H߸HcйH޿`@n[HH\$Hl$H`@H`@HHtHHu3H`@H/t HH@HHH@H¾Ц@>H`@X@HH\HuHHH@HHH@H¾@H߸HcйH޿`@2mH\$Hl$HÃ=Z~HcZHP=!m~2Am‰ZHH +mH)HpZlÃ=fZy +ZZHcQZH;~BH=y HۍՍHcHZHlZ)‰lZ +|lHcYH)AVAUATUSIA=Y H5Y=YYu +D)=Yy7@HHHQ@`@kYHY H;YHY9GAH5'YLL/ML% Y)Y)2D[]A\A]A^H=xZuKH= H .=X H5X=XXuX=Xy?@HHHQ@`@jL>aHX H/XH0X -XHXHHXHSH=RXHHHOH%HH)HH)HyBHH@@HW @H߸HcйH޿`@jxH;5WtE=W)HW H5fW=WeW3~2)VWFW+8W)@WHcH&WH'W[H(H\$Hl$Ld$Ll$ HHAHHH=VHV=!H=sXt +2yH@(uH=u/H=nX!HHH9=/HH Et L-BXL-)X=WtWWH} +u =WtHWMHH(H9sW: u)A$ +IHD)H9u W&z +u H: +uA$ + :t +A$IH‰H)H9rM9va=u6H=hWLL)HLH9t O0=t"LL)L`@guH\$Hl$Ld$Ll$ H(SHH@H`@HH@H¾@H߸HcйH޿`@AgH H4@=yu bV +VV2[AWAVAUATUSHHHAIL40ID$tDu H3H:HD$A@t!Hu t A~ +t +A +IHHutH}lc:mlA Ht$ +iH|$O}ht.ExHEpEp;El|e@HpAt?}Dt9u+tH5Q +H=@Dž}hM9A<$ +tA<$ u ExExEx;Et|D$|$D$ExHEpEp;El|]H|$rLL)HHL,H9H|$!DžMl$e@HpIM9=LL)HH|$HLH9…H|$At\}DtV7uH)t:H=HL\H9…u("H=KA~ +H[]A\A]A^A_ATUSHHAԃuH5c +HHH=HfH=7At"*8< t< +t< tDxH-DHH D&ƒHc‰HI ă9rEmDl$`@D!D$I);\$sI C=CxHCHHCƒTHc‰HI ă;\$rD$D!HLl$IAMI)Amv|c]9sG OC=HCxH7CHH*C0ƒHc‰HI ă9r`@D!HIEIp9sG B=BxHBHHBƒbHc‰HI ă9rAEEA)ʼn`@D!A)ʼnI)AE9v D) +D);l$Gl$)l$DD)9r(DDHH@HH@8AA H@@DDTTAAuAuE=xCtHH@(DHH@D$|$A|$q!c9sM ~A=wAxHfAHHYA_ƒu +D$FHc‰HI ă9r`@D!HIEICD=PSL%QSSSD$H([]A\A]A^A_AVAUATUSAH-#S%SD-SAADHD)wH @=@xH@HH@ƒHc‰HH ŃvDHwD [@=T@xHC@HH6@<ƒt,Hc‰HH Ńv%A9 AHAAwD ?=?xH?HH?ƒtHc‰HH ŃvD@H@AAu==AtHH@DHH@0Aƅu.AHAAPD-nQH-oQqQD[]A\A]A^SHH=+Q9HcDÁ~HcD Á~HcDÁ~HcDÁ~PH|$H$@I@A@@@ tHhPHcDÃ~[PH|$H$@I@A@`@ Ã~&H= PPHOHO OOH5OH=OHĐ[AWAVAUATUSHHH-OOwH s==l=xH[=HHN=TƒHc‰HH ŃvAAAHwH == +=xH<HH<ƒhHc‰HH ŃvAAAHwH <=<xH<HH<ƒ +Hc‰HH ŃvAAAHA A AE9sowH 2<=+<xH<HH <ƒHc‰HH ŃvD@D@HAE9rAw@DD@AAvD$<H|$@HD$?u>*u=;u +>tDHHHŀ}uw[>`A;!t;^uAIcHHڸ;t$t:\u:]tH€:u܀:] +;-H9L-aL5`u!;\u +u;-u KEtH-H=+tHu9HH@@H߸诡HcйH޿`@=HX+H H+PPPPPPPKOKOKܡ=U^u=P^^@…tHL E u6HH@H+@@H߸HcйH޿`@ =H\$Hl$HHH=[*t HI*H=Y<tH=P<H@<H=*tH=* Hw*H=+tH=+衠H+H=+t H=+耠H=)t H=)jH+H)HHH$Hl$Ld$H5)H`@Нu-*@u tLH*H)6 H=)u&諬H )Hu=P)kH=\tV=\tM=\s\H=[%=~ =( +T$H(H(H(H=(HHMAącAă=[~ =X[H[H+[H}(Hy>HHHH@HD(@H߸*HcйH޿`@L:mH=2(~iH=(u_H=(tUHH@H'@H߸ԝHcйH޿`@9H'Hx(H'AH=[H=I(=dZt8=wZ ~ح@#@HH@ܭ@H߸LHcй(HH@H<'@@H߸"HcйH޿`@D9='1EAOAH='u=&u2H0@Ht @H +H&H=H'IŅu4H0@HTt @H軚AtYt;HH@@H1&@H߸HcйH޿`@98= &&E;H=&Ņt=%fD9DO=%DH$Hl$Ld$HAUATUSH(HAH=% =t%ߚq%H5"%=\%W!%;S%HH$HH$H;$H=$?Pu(@iH$HH$H;$LH $HHHOH%HH)HHH)޺=$H$H5O$=$脘N$9HcH,$HH)$H;$r9H=$?Pu(@蝘t7H#HH#H;#sH @$H#fBAH#+#)#Aɋ#+#)#A4H#H)H#HH)H?HHIII ED9H5#H H5#=e#И H5#=N#I#= H"HH"H;"rU-"H="?Pu)(@Zu"))"AH"HH"H;"sH "Hx"fBAED9E=Uu =VUt6HH@Hf"@H߸LHcйH޿`@n4HH@@H߸HcйH޿`@?4H!H+!H"HYUH3H|$fn"H|$f_"H|$fP"H|$ +fA"H|$ H2"H|$H)"H|$f "H"H"HTH([]A\A]Sf=!td=FT==TuR=TuI=!t4HH@ @H߸ЖHcйH޿`@2[H…!HH`P"H>` <vB#H$``(=mSuH`@#w$H@=KS~ H_H( t7H_x#tx#t x# tx#uH_H( H_`( H_`(H _H A($ЈA(HH8H\$0H*3 $D$D$D$H|$fH|$fH|$HH|$ qHH|$`HH|$OHH|$1fH|$ f{H|$flH|$f]H|$ fNH|$"HEH|$&H<H\$0H8H(H\$ HX3$D$H|$qftH|$`feH|$\HXH|$ +KHOH|$:HFH|$)H=H|$ f4H|$f%ft(H]]HBHHBHHBHHHPH\$ H(AWAVAUATUSH(IT$$HL$MLL$AD$ D$tHt +MuMu +L5I|$(DEA9]UTt3UTw s)UXbUx AD$ EMAD$A AtQAvGI|$H¹y#H|$1tD$uAD$IWA|$$xAt,YD9w J<':H‰مy|$tIAA6AD9w"J<'H…y|$t IW A|$ uAD$ AH|$I|$HT$fI|$A|$ MtgAI|$qH…y H|$1tD$uAD$IWI|$4H…y|$u EtAIA v4H|$t,I|$ HT$fI|$HT$fBAAEID)~DH([]A\A]A^A_fHXH\$HLd$P=Z,HBd$ HސH\$HLd$PHXHHH\$@=,t0H=,L$ H=+藐+H\$@HHHH\$Hl$HHHT؏u!u#H59!H=:!uHcN1H'!H!H!H!H= 1HHHɉ 0yHc蘂IH;HH0HcB| /uB0HB =0H`@Lu%=@=&AuL$J0iLӃu]HH@LHH@H¾ @H߸cHcйH޿`@L赃/5/HcB /F/HB HcL5HvHuNLa/ +c=c/~H=2%K/mH%HH;@H= HHH@H`@IH@HH¾`@LRHcйL`@tH[A\USH8= It {lHH= }@H`@lH HtHH~HcH9tcHH@H`@*HH@H¾@H߸藁HcйH޿`@HtHH= YH= H`@(=V>uAHH@H褮HH@H¾@H߸HcйH޿`@3H`@Ht +@HFH=r EH= +t-LD$5 LL$ H +H= +-uH= +HD$u +HD$HD$==Hl$ Ut$ H`@Hh~tx=5=t6HH@H胭MT$ HH@I@H߸#L$T$ HH@@@H߸HcйH޿`@Ht$H`@H~te=<t-HH@HHH@H¾@H߸`HH@̲@H߸EHcйH޿`@gHHp$H`@xt +@}H8[]HH$Hl$Ld$HA,teW2w0H}tPH}HH@4M2U0HH@I@H߸~HcйH޿`@AHuH}}tNH}HH@ӫHH@H¾@H߸@~HcйH޿`@bEDDu(H}q~tNH}HH@tHH@H¾ @H߸}HcйH޿`@EDDDH$Hl$Ld$HfUHSHx@HH8HtffHHHuH[ffHo~H??17 February 2002error: expected central file header signature not found (file #%lu). +error [%s]: attempt to seek before beginning of zipfile +%scaution: filename not matched: %s +caution: excluded filename not matched: %s + (please check that you have transferred or created the zipfile in the + appropriate BINARY mode and that you have compiled UnZip properly) +caution: not extracting; -d ignored +error: must specify directory to which to extract with -d option +error: -d option used more than once (only one exdir allowed) +error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid +caution: both -n and -o specified; ignoring -o +UnZipSFX %d.%d%d%s of %s, by Info-ZIP (Zip-Bugs@lists.wku.edu). +Valid options are -tfupcz and -d ; modifiers are -abjnoqCL%sV%s. +@c@c@c@c@c@c@c@c@c@c@c@c@:@c@c@c@c@c@c@c@c@6@c@c@c@c@c@c@c@c@@I@c@@c@c@c@c@c@{@@c@@c@c@c@c@c@c@c@c@@@@X@i@@c@@c@@c@c@c@k@@@ @c@c@7@Y@c@c@@c@@-dXM skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) + skipping: %-22s unsupported compression method %u +%s: bad filename length (%s) +%s: bad extra field length (%s) +file #%lu: bad zipfile offset (%s): %ld +%8sing: %-22s %s%s%s: bad file comment length +local header sigfile #%lu: bad local header + (attempting to re-compensate) +warning: stripped absolute path spec from %s + skipping: %-22s %svolume label +warning: cannot alloc memory for dir times/permissions/UID/GID +warning: cannot alloc memory to sort dir times/perms/etc. +warning: set times/attribs failed for %s +replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL +(assuming [N]one) +new name: error: invalid response [%c] +At least one %serror was detected in %s. +Caution: zero files tested in %s. + +%s: stored in VMS format. Extract anyway? (y/n) skipping: %-22s encrypted (not supported) +No errors detected in compressed data of %s. +No errors detected in %s for the %lu file%s tested. +%lu file%s skipped because of unsupported compression or encoding. + error: %s%s %s + + error: %s%s +not enough memory to invalid compressed data to inflatewarning: %s is probably truncated +%s: unknown compression method + bad CRC %08lx (should be %08lx) + compressed EA data missing (%d bytes)%s compressed WinNT security data missing (%d bytes)%s +error: unsupported extra-field compression type (%u)--skipping +error [%s]: bad extra-field CRC %08lx (should be %08lx) +J5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@V5@i5@i5@i5@4@i5@i5@i5@i5@i5@i5@5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@`5@i5@i5@i5@4@i5@i5@i5@i5@i5@i5@5@centralwarning-VMSPKlseekEOFlocal[text] [binary]testlink[empty] extractinflat%-22s OK +׃Ѫ++++--+-+++---+i++_̯յݯ=ܫꪼȺ<>̪Τ𽲷error: cannot open zipfile [ %s ] +error: cannot delete old %s +error: cannot create %s +error: zipfile read error +warning: filename too long--truncating. +warning: extra field too long (%d). Ignoring... +%s: write error (disk full?). Continue? (y/n/^C) error: zipfile probably corrupt (%s) +%s exists and is a symbolic link%s. +--More--(%lu)--- Press `Q' to quit, or any other key to continue --- ;Zx0NmR@WN@P@S@S@WN@P@wbbus errorsegmentation violation with no real file[ %s ] +*  +    + #+3;CScscc !1Aa  0@` + + cc (incomplete l-tree) (incomplete d-tree) error: cannot allocate unzip buffers +unzipsfx: cannot find myself! [%s] +error [%s]: missing %ld bytes in zipfile + (attempting to process anyway) +error [%s]: NULL central directory offset + (attempting to process anyway) +warning [%s]: zipfile is empty +error [%s]: start of central directory not found; + zipfile corrupt. +%s End-of-central-directory signature not found. + +caution: zipfile comment truncated +K{@V{@K{@V{@K{@V{@V{@V{@V{@K{@K{@V{@V{@V{@V{@K{@V{@K{@ + %sEmpty zipfile. +[%s] +E@,@{@{@V@{@V@V@V@V@V@V@{@{@V@V@{@{@N@warning: cannot set UID %d and/or GID %d for %s +warning: cannot set modification, access times for %s +warning: cannot set permissions for %s +warning: skipped "../" path component(s) in %s +chmod (directory attributes) errormapname: conversion of %s failed +checkdir error: cannot create %s + unable to process %s. +checkdir error: %s exists but is not directory + unable to process %s. +checkdir error: path too long: %s +checkdir: cannot create extraction directory: %s +checkdir warning: path too long; truncating + %s + -> %s +warning: symbolic link (%s) failed +warning: cannot set UID %d and/or GID %d for %s + (warning) cannot set UID %d and/or GID %dwarning: cannot set times for %s + creating: %s +rb-> %s symlink error (warning) cannot set timeschmod (file attributes) error;4 C`p 3` Lc i 8j|k@k`k$l*uxPP+H8XpseN:1(Hŗ* @Š4Ԣp(M`Ī890Ҹp:tŽ0XWHQh3PSx}@@  x @3D J<;@AD <\T@@BBB B(A0A8D@$@BAD $@@DBAA @]D @D,@*D <\,@ BBB B(A0A8D2(@zAD <+@A +BBB B(A0A8D`,5@kBBA A(D0<,X<@[BBB B(A0A8D`l>@LA>@43?@DP?@fA?@D J@@gA@k44{A@BBB A(A0lmB@DVC@A$BD@D0T9F@A<F@BBB B(A0A8DP4I@ $LI@BAA tJ@J@eA2K@ZAD L@D@J<N@BBB B(A0A8DP,S@ DS@)\S@Et@N@^@n@~@@@@@@@@@@@.@>@N@^@n@~@@@@@@@@@@@.@GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux).shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.data.eh_frame.dynamic.ctors.dtors.jcr.got.bss.comment @@ !@p' x@x/p@p7o @ jDoh +@h + S +@ +]0 @0  gP@Pbh@hm@@@؁s@y@@@ @$@@@@@ +@x@x@@@ @  /PK+5 :s COPYRIGHT-jai.txtUT EEUx +Vr7+˚Tbɩ] O_o HS*v1;=2Něm?>7~\{WcDKNw=P,-M3KyS`K?\߼aq[IkdJ.sB觸s).ޘeGzr\GE`ELxK~w}lKFS.6 6 w!;䜦i…]yGS;C֔n?ha|$|ᘾ4"-%$Chv ڣ&dSa@FbwV)n:H {.!Z'#i#4=e{ +KpF{b*lcHabzE6zxڳsfau#fiI'(@z#jds [NLv/~o@W\Dw'PU;6X7lDD1̚xA"[6Ɉ*\iæ#(B,(h$ӄa=ON<̼ VE35&ISkؒ| ,HQfYs^_A@hP1}gl}R91$C-wɁ>S̓1ffՈӜŀzɤ!_#VXQo\1F^4D6xkJjżĤgPW=7sr9-Xg#Q,o4ZOY^J_6m%FhǛjJQL3{^=>==uit4Ś*l)mSî pAS)FwX Q/6f࠼0_S|f'kHV#idB@lYHd: fg}ɨGTA5ށ\KL[/`>W+8f2¤'{0Q_q(THu磁d=T+ItNRcq )ɾB{,lHF=̲U|%B +PK+5Q!DISTRIBUTIONREADME-jai.txtUT EEUx +TMo1(U[n$ (MH9U^{y͒BV 3y1!z]Q;MfE1na:{?.f`Ֆ/(#DqU Ua*\#k6 L6FSHY#Z&cP9Pq<jQVj% ׃ ^QV$AWUƂ +KŀcU8ph8'џN]\@[ +޽iQWX6*UEYeyS{b-Oj,6ڦ\uMiUE"?r#/,+8brS?\Y@IkS$ZE7kVzyΗ\[W̢ٯ%VBϳ<*>&K VԮ!3-ա,z5VjuYSo$/6̩G/@؀6 њؾ05tX-"~UUf&*Qڀpж>*Q'+HaYeP:3ᜣJzWZ_rh~.B[;>=j:-" ) +eݱJlg)Uce5 ,Ȅ wfej'e +_rm6@5krc{8-T<'"]kQ>zD`>$ueT5 tGJBo3nM@WmylNLS'TzdNڤM})6+%"?{(_ưh{cꂯb*Y[MJ@[y@ R@>_Rq*ҽB'i5](z;PGwy/ '/mFj -QЩ)8Q壘#jDJr=[~O 2q;7*%P|9.-@@e|-c2p(\?pX1;Ԗ4<%k_ cNIL +*ɴӧ8#`H@H<=&_D$ r7Db:YΣE&'070>/Lmzq&WuI#ar$hN) "K~ 3 RS JaVD)-XI֕S/0JiMS՞XBF錾,63@>u+XSPΡaBQVU5?` +kq2'rՌX-nW:POĘ qj>5=Ap՝!@>Q'@Ku[׉+srEu:q`OIV^/ݰhc#BD;/49++- wi81a,2|V!%BUU0^ q@D9˷ţV՝7r?HȮC )(?w#IҮzo^`-?x;u 7҇N|Hr52+#r XtG.6Yɜn(8}K/rɉle30 N+m(XsD@{+k6 +45d'Hꖞ5 +Am~hEqۗ +Q\w?AuГf+yP68kcnl*D`c8P?I?mw\qAuk_.A%!$]Қy%-tٰ9~0e&'6~>ڶUa~ł{Was149}첁ZŭSW:WS6^ZN㜻N7=#@7j _KϖFxtjedJ9z\ +m;sdzy/1SxEQ?ώts(^~8bMg͙lt##kYʝmg#+Tߝ_\_|ٽDJ\YFRn,OSՎSNXUfgR`}]܉[ITu[.~|+n*U͘u6&vG!t%2e7/W Zvtd @?a jis覧ꭺ-O2/\Ym? OAB25NC '{DW#QkIOEvm +XNĤ*s{7a>+?99\EnTu9%r΂ndL@ +4>zzUku?z3N*K83rRu-Õ~ '_L|PI ķ OˑczŸ:qݎ{37WNŽاu #wTG8BȮzQv#k'K +[ڙ鄠D8s>W+05(z_W#fKoAr:ݧ[̬[A7>Yf-qAH^r +sUcRCvR @Hj +A.̎ƮsvCBU,O=ֻ=㶔tO;8zWOQ @!۾GnF?EhϏhDŽ!+OW +2/3qY(dWׇz0H<@z+fo]ϯ;/K{ ۞.G9jmzn Q wm&%:\?M0/6 +e:=C Od3q8ԪK?uUlbuי`ްPw\HkWv_>Qč>?pA}ud s3Ʋ;4E4C +]UUcv>Ӗ)Y!%_Qȥ%PP5i;?7GF}m}~ aǬG9ˀ3sPf"3l3\oAz?۟Tz>ּkNFN_h(B/ADXtrh|g)_ddQ>=*^MDR>Є-oŕ*8 DN$[k5A.xfl2UCT4}@6ͻo߽yu+s77oPK+5ΒnD THIRDPARTYLICENSEREADME-jai.txtUT EEUx +Vn8+$lvHl6FKcJTI*{o7i[`@DyWZ|q}9_g:_^u>hY21v y[*s\B=5mN~jU(>*h[On<]wrSx;v5pW;|d +*F2s+FV4zd ":jDhF˄3ޔz/4Ci{e׍[|/4 P}R!DqsL?,>rMu-lh#]ej[wb,x&"iC)5ӟL-KjzͯL$B^竌Deln*mfYˎ9o *(]j:U0ֆQU܂4Uhy0R,ǁ.2(Tn׭1]Am ulV3ulu9dNhF5s{}ǔ!:qpWؼ< +ݰILxقn3<c{ z%eTBα]KMj^uzy5#و{e1sjGmi[Z &{&m^v}V,b=/-(רWpBBb.)c| "juRFGDɟHdY RI݁pE>ZcR6:& +B{hm'?T{{?H9 tEa`pݺip1P?˕ -V2)֟^xjU3ZAS'_*FoNJA7Z9~FCwZ ++l5zb_Ɉh4t-z+%<%NK_;NQ%LˬaZZn+ [SWz,BZC|'kfjNw>)-}T0 +q8 dm.ś(],J,Jqqt +PE%" ĩ[)&DF;^ VᴕոCNx?Z`Wԏ|$` Jbe7v&WAؙB"{ ~l+9~޽iVx[ ֟}Gtxw/PK+5}"/: UNINSTALL-jaiUT EEUx +o0ǟ_q/A˒Ÿ\eRHA柿s kswkھa!Y6B&@R,V^@zJ{01зíN)ζb>gZqD^q͗4)VĘ)<wզꂁD0҃Jx<䒀^ +ܕ]vYs +lW_ǭt9< 3ƞuwuehl5ZCEP~N$PK ++5jre/UT EEUx +PK ++5jre/lib/UT EEUx +PK ++5jre/lib/amd64/UT EEUx +PK+5,g7jre/lib/amd64/libmlib_jai.soUT EEUx +y|Uǟe5 HiM[ +RZd mJmҀe|g;qEǨ:\q1Se1QO)9r>7zOϹ{˓|YY&h;. ^~V?jSyZׯhhRj-^/ܯ mҧ,R/?SIQkO2;!7 ل{˄wSrs k! -lA!_*I! vcc&R! +MHF!]'#/B.ÄT ԇBeQ~&~t Y"Z!+/ +!ϙtOXH( y\ȿ 2]&.!kߢ|cP +Y煼+s!osE@H\'ܟ=d.诿5R븾Jո(@3v}2Sȁ/O,[Bg>zD!!qb8|`SE[KH#dEQ̟B YA"d?Hȷn!OY!ۄLig!GYdjeRH?aQ~'V!'Ԥx1N$d\lrcz)(_XށĆ0둦~Y(+]x-DYob +ezR$d87 хŽQ(D9oF@3;N0]װ{Q݅O@C&B CQ^$~\3N0kv!$!oe6cyi!:aⓅbDO;kBk(szz!. '|))!QkßWXYlm]xVB#NywE="S^ 3޳\Jy/-)8ORGK8GR~V3n~{N?2;~.rHn^fI_煃%oƙ;o/Fo5[~"  Mʥ.Khwy_(u+' TdOTнil,?+t^*D*O6J`D/øEv>x~(g%InqaZ"qω~n%_tف+2[C~¸8%o/?9Nq]YlF/vˇv(/1qXLڝm~_+8ÑJ0iZ@7`[_ø5 z^?zq;kOPO|Fy), ̋^\mj /:XJO)p_VO=~@8k7qXބRɟ.֫UGMip ;hxb܁O->i͘w2:Fab`i˰k%ނ~%?08ڞ`1^ȟV.,؏Qc\:b]=Ky.+ ׵اbk>2+mݧż^-c^F +4xͥ 3~z/ 6"1ߒ/J#q4Hncaó}j-]/s4zN{8tCk,Φq[_:~GC%0kyqv,ozjg$ѿIp'c_|`1:Ɵu١]qp8vmv7a\R;o(ߌ9vاCiyNE_Sh`}}EpiI<԰>j_Cǫ8^Et\D>ny 2<7_~F1_j9L|Z|y9?R]Fs34?7"ntD-1 uXύOK wtOD"yرFkqvh>Ɲ͗ȓ?|CA><"nq̗ďt|x^p$SŅ/`\0>sc <ؗɝ 4yտx^ ϧ#1X|/j|A<ǽt0!'Na'W{`__HǥQnx쿮Gi?q{g[ƹ#+K'RxC;rG4q^KX󇽡`3[YѤVFoT>jZS8T\*< +:uvuIYuuuYrkJSXmj;VöQՐ_&5x34}%SVZo[[ {C3g*V +B%Q'Q[-f-i 6x'.t^Kad| a=5ګ&вفSCe +kzBjN F񄂳U4UiqH!TWk7_]@qvoj>5eVg?([[{wuu>JL5,WPIb#HV +wz77_jiuCrlv}T?F1{W)O ?zB,5I7 ff-Pf}3b:3XD㥙/K3@FKl&/gz|l93gL|o=]UA#^ ,@LXMsۓ{C~o~UyNQi%kԧ+dT*x=~-OjXVmj(iw:f\79*- h ٴg2Izº4̽k +<~vOSdȩJ,nnwSG@SueTAKB>o(^ +5|?U[RS+|ꆍja5F}kOiO7k)P\& mMKkI ٴ?+nJWQoW[fP(>PSVLPVUT==aeAVAa K%V-~g+n4MѫXfNPI\$hbMz % +x7=NHuO~oZazzVK Mͱ߀*{ŻMs_f,7[lZ^!mL#C:k 4osP 4iM>X&oX yZihL4Fjc=Wz =>YsfS]R(.1.\T;LJSWN\]Z\ZD :xa<=Yl]QCWnС@G-鸛͂{Z%XaZXwF{H^:977M#0hs{̇=5▧h +;<#UiCefz~@V*oȰ{yXk>\R,2>Ml:KM:Gm鯫C'K;Bv-%C|=to2t7~LkמJI/yχs7 ] wInc$o+? .a?p1"ƓvƝ_K>/gN4;%wvK\[Ƀ\K[W<QV1_q䭌G7vK'q?x;l>~g<nc<%WmA3w0^x+q 탻}*n"w78|GxmAq_ø+/Wx|oo8/M|`?km>x$x;Akq/d>Hr"mE۹>p?Xr/ x+4]C%w1,qG/>xoqg#W2+ykC3Cs70g'y۹, mGOw";o/gw1g<^ϸh9QfƓ-G!Ϲ|`?3y1_k, qm <ˑ\<#Ϲ?' ϯ`2n/l1/buQsnX9Ap' iCs}*n<ƣAƝ?Sg|-2?1_u'[yÐ>x3 <aqm$q7xqp;WƓ]sE3nFv5qTyvsLqvN]Q4(TBDnV +*j":󶈷nVKz輜*JߴIs&*Kr;O~?s4'q)ABgn@č +팂9_?'ZWBU?.?F:_w͇7ċY})^⩤pNAmCl]az&9ExxzQn[WxyF'87*Iڻ Lq=?xic 3 +1C}S«y\#G8npQ~зxAx۟';Zxu&s$ obk +<7[gC%Lx;KᎥ?wXNj=k)>]үx;qgo_>ї7Zag;`8܇S؟ ;x?Aij@#?ǧ?&yoa? O3?Ix+q)3dG ogn});H#;C]C΃{] C{ ʸGƒS 6aOW7 +>^&<í:q[7r37q'Cx3@xx#ji3Hx+cx^/Mn?Fx}H뵝puM^LIxa9줈1Qf= C~Oވވx:$Y +][Cx!H#Nx +p'v0::?;oq :<.؟e7m8r|~.!"W tHwtHܵzcO/p-ĝ:$!e!{5tH<K7Cz#]/۹:伀'A3)>]}w@gݭW&<ogpǍd'‹Gă?^Jo1I-F<ވ6Co]@oēBo_ވg$$G_^M<e;x\x>q`zH<!!:qy Ά޸Yluv ͣ7 OMzH<8$n̄>;.ވ*7Qh%F<>zqx\U##!}Ϝ +}OLx7Ӏ8GCo~y9z#b=xzrOGBܯzk$Fܵ/Fܷ  +z#9!ĞX $uBH=SWc8_/a }^ă x*B+dO<~'O=$qcF';7 ob ş`~ +oe3lEI y'?N<{qM^JٟOVYOp]3 ԫ#E3<߉;kP%v _ 'LJI H!0ۙ%?^ s|BlVu<c?_s<7C@?q_ma]j+qUgx;q70C; wwz.E8Rx  ~# +~?[ϟfORx %-? nrgN܀$oA#oC}@[V9xg7;>%nd]$O n"x_^z]xyHxq矄ljgy O}1k Isfυ؟=O&@Q?ŎxG og?O(xrp'P" O 7N%-#ۅ7?~ ۹TgO&7K<mbx&,=_nw-KxGx֫xx?b'B<n(qFuS~I“S7ʅG +o!L,x( %x'29WÛ;ZS)q!3b;;BĝO=k%x[x7}''ܾf}_oa~\LoeN!nr2YwvƩI>LL<3ׇ0Y>L<a⮹>g$Lxpp}s17q}xj\~^)܋ccijq@\#cģ>Fy:q{qy5lWG~_FKp&K?x_3qy)B~_Džr [84rp/ #Q\%0sOG;"ۃ~-o7Că/xqtvӜ/Vx]ςgߕ9w&oΉ'} xE< +:':g;^;sѻss=9{s佚xςqsqF`n۠xl9yO=53{SQGp{|۟=D^<, ۿkwnW|ϐxʲ vs~_uWvpEPl n<'?x.xJ\f/H܂!n>{\$~V?oۯk_؉r +x(~Ɖ4?>d8^h Ǖ~ !C#sY9<Pp.WD9&^wx߭7}rx##~:L7D[߬{3zOXkjޏZ}V[ڿCkO~Y=a_]zO/Zmk/v\)?v51l rgoG6{,aag(ruػG=W)oq/V _) pwW#b3S~S X[Y Y_r{jP6e0_.vΜ{|elCbĻ|ӿtxꝨyU>6TU^hޮwc$qR=c{-7*V+btN5V^2 9t(cbkMCT>V{_UqU@`9gZ_no*?{_'Ye*m 1lo-8DXة\j޵*CϚǹca5҆}?YsPov3ޜ*IU*ըtǪTji>&W?Wυcv^?Wg;&7TgcvV?M/ ]'<:W?F%_?Ǎ wV?N+rZ?ۃyQ V|]9327TUg`9u1O hܲQyϨtSLgTA3*E`Y[P̫FR3?g2ȫ*~~{ꟊb?wyȯ?Sꟿ?Ot9'MR +*X6"]YUE SC7Tt}(nPkkqX\r֗,۷;O]GYkg:mXN@Su}ClۯrI7tR=#U6lC^ABX;f_S8\wd8|(/O-rko5b1Nm}*7bާkCՙQ9#)CVPxԻUMYҜ(;48l1ȱHPwkwomϫş,^߻jS˦M-V6]?V3hcmhp\4 xGu!ڴkEߜ/"3gjQ)ycdCDGEͪY UpWD>`O=d2ѱ~ +~_>l;n CK~' ZX4}a`fǻgj1hm:Q"wV4Z\d(|"y,tBjVk;իyap9{k--y +:̓@Uv\e%vJE<=CvL0*/ lV1)MNǣf>kn7ùxn)'|\'͙?8_;xٌn㩷~.gqg>]|pe|cʂxʂe|췲e+i=׬+d>i=^a'+ +cc磪8TT6qDŲ zJ2AUQ,3vVQ\6WwRky1OGIkTrtmjj(J+b",0ϳr'^ꗽ/ĎL: +*uYUHy̚5*m4WGZsKMʽZk(mWՊ6ަ|R-|]Xˌ)(0y}Z o4{tRcR:'UIcL師PzۙsЋb{J@/)rՒznrAO*kfN^QM +ti(+6+8^ lCϗDj͗#n*Dz Jq*ͪEm8VBȝKXT;ejB/.Ջ~ڵc}ZCs% Tgn|}\a.ZrlmoeV:s{a!j^ZUImi\m?Q[ЫV6%q= J0^u%[*w'r{ 0KR~cۓv'UE'M/r|2^} }=)L=)zRXńMZyaE?U]LYKu~"c4SBQpWk +.UX~C;{\}&)۪{[V[͢?TЅ!$Ko -4O;wl }KUvcFikތn5x|kͦ^듉yNkx6^sq檭ֲ*G/~ &kiy:TK&X18^g?7?L1#:_gW3Å79!ϲJ8'ʝG-jL'Scs YB`toQ:u5d L:5h]cLiv,8ZZ7[=}p^UtZ$S;]wZgKs{|vz>lzA{-wvHn]Wg?w|/g =wHA' n]V*uT V+X Z J.Nj;*%*uY9)i h]ˣSKM뜥lۼ/Dό@1Շy8}@~.8[:wo~ ;K/Vq3_7bG\6,zf7 w}|z8X;C_VM'wrWb誗{>yԾGgNt4 Kʫ>:tfF]Wvſc5V?SGTG٥QV|^}r|wX6Bd/ZZ"FkY2 jeĤT]U5UW?B:Ⱥ~:k}Vo-l%jd܎"y7n^g&[u6`~L%AE^Ƕ)lk-~RGIpY& |(eE 2Lq@oGī$s 2W]x]5+cՆ_5GڭԿj5PPGy5j &ey˜}mrrG;aߦm5x9YѵbXWК~}*og\^k2, ye\<\mʵfk`~ךGԤi\s|_(Ajբ[^ǮQM,X+U߿[/Rq/^Nf#߾HQL(S1z1"5{gj\~z((,j)e)SRa)«k)g)o+"{vpd>c# +};*0pLQGȧv(/GjYc>Y/:N˫Tז,o漢:oٹm||O)WqWKz:fS~zJ7[|H7MN8oiTیcr7N=oܵEY@0(uL r8Artĝ}K'&]=ݴvٓ]P,3+ +(\η.7;0C98ko[ﺼ>)|fohF_8LNⷌpm65`"vg%] J^b(N0mN#4~`Nⷋ@~0]m<{ NjBDoAr`m{0͹^c\ߦãoΧS1,8.]d1"QD0ˆLLT5zN&i# B*nE MK!z1́U}62Ajal3d>%pb6:Ku9Xa|hSMk&Jezv;8 TMJޡ8>Z< ǧVy:M qyɲhe YD+S[?|=#ɡky5Ch4BCxO@φձ + ,6TT*@V&{bmd~G^:wNUxt}?s6(Gtb mIPl@ꭉ2!#*6^{BsԻRYXtvoLbb2 +W!noÛꑤ6Q +Imjp$c8V#< 뜦q mc2iW2~c~[ ' 5F:{2mZd2e,ALU#!6ϗLjRjcm\Sd<LSJQ1 XKc3#+ƻ[nvM $B>WwoOB_;}p{l0bX؟nƬuq8qKQQEߣw@z]t"wz.Xw/z-;0]4yۓ,]MZ7xq t`ヴ}%Hkп)z`hwݎ1"<G|#ߨQ ׻1@ݬ)ݮ@^> #Y$^tKK.wF+]X^z>OGQ;;I9^OuB[!3L$d7](㧎h]Bv 'xvFߎ2F 4Uhr2CjIP#HBuOKE၉P ey(BxC.Zc!O ݾJ4N6ԄC{ݭoy&Da|gNWj"?>'a|o(q|<ϱ0=M+Đ!I3z *#h? +ُO31Q,wDItSl~7HߌsA:A^6WI7H&+bDF>Xέk?g&o[5'C,s:z_4)j~5LmhhG2;Q?,fɉ义ჵSw+9;&qmuw/_a(&:$sCS顓zV6MHTmx=eіj{`J U&ؑ0#;40?j$ + |)1ϸ)ay5Kf9 W-P%2oَ"6xE,f um0[jdtڛQ'snPriK'֑>X^P6LI$^ދ|kpq=G];{_>C>_A.CY$Mw3>>dyϱ>dx'd\)Ї`fqCy}٧#}aSi1%x9 h>܅Ig$ñ]*>}:cQr1B7XG]eFښ$x`g:$ +BIz&6`HюHz#‰cW,R EjHm{O_=s4 Exu< Gx[.uwQ^HP<LjPűQ1nX;a}bq^ڏw C#rJtVmT:{gڏXiE"hnHIvDֿF$oG+9_%6n(.nc jPso`nb pʭAb^jgsȡV,!S*v@njvO>}^ +Qycf?Wх|&-'E/EJPVꔃ0z5J++$Az0犣m'? P`_ͷ[&=JZSIp>Dm4k8k+ƱlsޡG2 fqļ.$\g]'A7BAN0 s?2);(]: +׷ ~3ZߤFA_kq]}U5^οwi(kV, wZQ"xKߏCyz}Gw\o/K.w#1ÔA04wO21'C;*)tx/df+%@3&vō 헉 +Q0%>qGa2D|jw<-98_)0ojQ7כvȕdeMgΞۉ?w^3zp͇=If+K2ڋO>+UD YA&|=f}!頻VgNc`?Rgq}|ǁa}<]G7yXGN>lt>J&c->E1:ʡ}|h`>>7j} uaV) )973'{ɞ=is.Ԩ骃0%} _ cm7jP JkfC $V$r3AE&뭠gtԠAp`|q'`^ +_n~ǷYj%׃|{̬ۘJo|Tmd} 5JopI+/o&-b[ u#_/oo j}x[SNŷ%t-ڞ=俞 <2.?kf: +;yoVo57yeZ[!\ƲwmxKJgL-v yrm%9jNg%(%ڰgS621#mU:]`m8Zuѫg?y3*U SBQAK,ϭ>"?2S1BL,2F3gLˀv!G_xAA Fo>"Myo=qͺɣ\tG9|ZwM6"7` sR"e7xSx\7W ]\[u\Z{RW6G6ũ9`vR/\ EN v;,k[`'fP6vwiŽt~yGi!*>JJ;OP8i9~Z6"J$y˪k[k_I GَUGuckzH?7>7U_~ ?T? +ui +#!|sW's'6JJI=#ud&孧O2ZESO3kg٤ g&??rN;=?p/J8lJ"$F3z@F4VQ[sC熾~َ"u\wL+ nWu_% ֖թ1iJpE'xf ?HWjP` U?nW5 5|% ?xW7 *u,5g憿|~1WX;X},,r8m֩d{)>"2Z9~"pY_t~}N]]Ǥa, uJg,n1}+/%s +쓥ϔzsXuUW$+גn\/\JZ4U"Akj7 SjϽ&Hħia/7GWwyl\-dyN~fQ*ЮBbb#۰f+֢S)972 <kpitF}C +sol:G׸#^w?0$׵[Bi~vLD!6)+!)0)GCϷjIŰc:K㧣O=e炎Ce 8GJ-X<҉xL 1GD|?|׫i\ǫ)lG)#N`rEdO +䳇٫z~z&:Н\d;1_jbU8Ul`j #jngB礦 -@FTv|{"(G~g?.n-lgmǴ\a'NpbQvPZRi)^#k:㿆u%T +Cv"+쿖 oEtkZ=Ё.w~O +SJA[G~yv-#ۯY 5\_\+^BES##Kx7_ʝ7r'࿆"#=N}׃ǩ=ZZ-u'׶n:rV_9xհ_Wvwҏqbq#5z~S˕ګRUp~@8R_r{#__=+ѾԵZCgLcnTH +"H"w I!%M=K-[Ѣ7kuߑ}"gOs>{}~ +ǴDmfo*72ohUd'OW[*)ׂd#N>{SC{|֢js_F-:m۲?^?b|s5̣#4骇F\ QdQVo_-o!Gƞ2Ns?- <#vƒ.qt+KyEvZ:^(z_wCӠN46ẹeuǕ2/!|;2;_VÏxQdʣËa,֓'K>$R^O }Փ'3XOg_%"_+z[v'K+Rjl%M6 V#TYMOk.$/Fǰ\|HͲ6Y#,; +[^5Ae<йDXraS f~ys$s<ϧ|M|FD|&|ZKV"[MS~ ]j9nws4UwWbխbS5#NDd.V1Qq;yy,@<\x.y<(Ǎ؝uã.<:?x Gǵkxَx Q7<&X9o6㛸tK,K8+7`_77&p0y/y<$AyڧG&cDmxl-Nka_j_mwAż+J2Sv^OлSXO.A=僜MvEj=yUxඍ?YmnFOU0YSMƳ.k%OoX:J!kX)+mȠG7ďxgLoCģ[:ž$^i|N*]3xՙɅ9Y9mxmtbo%U+C|tTsзtò],tbq'REoNҥ"JFGBF~[yU{C WϞ=g?Ha2˸`=uKN1>SڣiMcxUO@zQi4*M^^>A%l޿{lG"s9:^roMvKIVj]/tw77 Ŀƿ`R 76OߑϡglF+i!4?+8?6$ʺ_h5d~)ue?l?ii^~y{e zVV'"m&"RJdiA:b•El#ߩv#جgēb׽mwA>Og]!aڂXx=L\ϹHYH73Oea%F?@ۍq(-4*FЂz%9dzAJcȺ͓<GSU6r c3۪D21(^YnE4]_v4Ynx.w+ݐ5ZK^mNn$;W"[䚘9F/^Wl؀( +U}>Vam]۹(c)E>%"4eZW^Oy~vx;$9UǠG(*]z"BQ|To4UnmGoWf(aHig]I k3fRؓћ=fjtk&dz^ڔbfǵ܏A.Q*=btAKxc;Lϩw,oѿ^EĬKDZ]L "f.֐ZHIP$jԜ*&_jNQdv aQ԰uH7'x7 okxbiNlo9rI&U +!j|BIv"AU@*:r፹jQ2ɖnJjlIN/+pNFD/'xʹv>l/q۩LF%H@mQ^d y6 [TfBIHEއc$lMaճfF[ W)q}6t' 0!ۙ<$C31'1I +&35hZK;j衖A0_ݳz/KևP* WUh>Α9Eߍmwc\OwzhWط)jb.!bNLoa%fb_O^0_}-Zfע9_~+UZ+X> +u%!#LmLHiKaj.{a:=*Ӫu;2[Oml=6Hl=+dSfJ˥ep'1)$p+ȌQy_%OLVaZ2bf1]#ڝƐy'1|H8)T2)?y!m_('uZ}e`kk>Xk㞚n. Ŵ_gT)%l:{Čh~b޽;0>I"q#] c}&;Frwd j-߳ZEo^&wCEOs ߡ_|L7_w|OC|7k!)43# Shjh,ڵD|"q<]V|bR*N'nH8+ +E[#-yLy̐y|moM뿖)ho0Qj!Cz_c\0 YzI0d/5/%dsksQR \(\t<*M.g%F`M/Ηj'KڌUҗ[+Tmhm$U])bLDž_g ^IV'wu[`7)X7p0;3;:|A|Pm36|gG|_|]0_ 57AE|ך$7ևeチjt|]*P}VݑW|W H1T#g|SMz 4geJh T! ӸJqI<`埾3Ȏ6)fA;yoy3CN ͩ;9O&2co( $ҋRŠ+y4OY@9_7O\1`oȺKsDlek2vd.ÄxEV@N!ޞ׹6+שfZ35_ ߆y/f7Âa7נ Iyh_Z?wMk_G;rM> fM?G?|&7Ak@Ϻ_Z_j7~ ?GCl-?o/1c=kC7 +:eC?LVwUW"!rz=| 0AЇ*)^8ZCq<ep(~fM~{my zh3E'ݡ~p=ԃh~nzpK=e2Cj=<4^קc;V"ej~' +o_O3_;X&NB_~r_i;VMlAn&sk_ g6Ag)# +u秮e??uǂn?y~nL cZ޶>Q#G^NaquPype݄sB+ъ{3d>ןͭu-ocngzv)Q|at^?9?ߣ#b-0[?^V2;4/f<{xӟ!֟!_C 7?:+BUJ?> !ߓ#nLvL韛Bj?>^i)|a^ߧtpaUG5Y,q{T%ng ۣy.]%T q#,AP糕|o&ѼqG|of> AD=I%v0aֱb]ro6[Y]VwXR 4D߲~}p^+BzdtP4as7{fꔝp7ꅨ%QKbR~` +{oKz +vt5L,>뭕^_s4 r"ҙ]vu첁/NE e ,Mp%E2:+~ս&K*Rt^R=,bU^P%!|od*ݟ 6 D/}.ˌ U{h,]pv)olD&PHLw2F-G]KG&vQo[V||%vdK}5X_!F  ?UҚ5FM7juCo?H1=ibLJcto?Im ݣy_j"pCjQܳМ?Kj4/Ց^Z73m?T?KeQ菝?ǹ=#Y#ytzxeH8Rgtֳ|U˷:m +֓!ʍ[oY;cw3|dau_"-Wo[!#[O$Z_xTk*I>xH1! ҭ=p$QD1R<CgKYy`yϚBgf6grsꭺYjf3^<&x g˓9Bx!<qZjs9YBx>ey> 6egy,Ox4!k ϥl>1Z7t5VL׷n +  o +sP705iKÅJrt=zb0^LD((H0A%U.%DxG(lD4V>Z89'4'>WKbEDۚkADJ']MTTHiC  D +_-I;pQPp%_35ee&x]@no'Ȳm͍!%cyjgʤ}]0<%?o2u'AT#2VkΗmM;qM!̾We@Ɋ-puC1c-.0 ğ(wQ #q*Ӈ**H-*U!K4xU8AӑJ(#WbuƗֳ Y%H֗ lޙ<"gB1X^/T5<m5 <<0X s_]SJvzpD s#4Zc͍h6D4DZcD ZVkleZ׆A|) +Ak:]uM/+]zi@pmxlc/47< u"G"//ya> 7l +]x'ߵY v%% #{n@#!yla1>yT\*Αz%ՕݤoDk;AK /.A_)`Wx8t>Dd5ۥlޝ8t6/!UqB?d>P4-\z#٪4Uyq#" *DD?~c< _;̨2[.\ղ2*P镫QkMwW}g@_LdahѝP)ްf"z\ ͽelFoXjRrk#x#W*Q/3SMfPHW\6Str#?aԨ6aºgNp7(/崾fg*2{/l~JlKqXbC zI\|&09ʹXXƊA8髮acf  1)t%% ݃T/u[Ȝ{t??k(XMJ"Fsc1dʠ\VF" h4-{H~ݳ<Ǡp(]| #G}#'~Idy"i%Nhv3eiBL+#L@^ѐ<;S[h;?PpÛ/U<87hۧMG$SMXg#d +߄*a&0AUeէ{wᩍ>}qP6e+2JO CPm]GzD"6>ɗ6\c\oI'f?g04!8DUCtf;`'q~N!z;[ 1!aTZd1(3:C! Y 6zv'sL/9T /j gm4wӤ /Q B}}7Pl_bXk)IS?8^Eew\{W[-W=^gy+㌷xQҽڶ: +v8?*Y5_> +Pb'k {#b7:NIMKhE;LδkY.˺B} qfzO?l#Տ +5Q`S:gYOK\ʨr;cP`S^ +'bW`d4& +Cn2 M`=oA!\WMmőJ(T)RXUOqq4:%ΊY +ڈk,f7#B~v }X S%?Qb;O1ʇI8}lOBPi$d(愤d-F<<$'+'œ4 BHxt\ +OD<#7MN)H}Y]{7@m8K8L߉ c x%LKFЎKN4ټ +0\!foOf#;P~*;}FMF'6Xj3Va~2r69̄%H_&($So +! AT~g:[[U9\ u/+~j'o~@(?쩧\Үn 8I%|%ZAՑ]ޝ `XK 9VVj6ȳ&ϗ~YLvr#ڠC(滤 j 1iOd>S'њWn@"{ eǠdֳݠ|eI+0A+!w 03`h-I-`́s`'%(UR(^nk{mKoŶ\@E${kwWQ+A7Ǘǃ4 6Z HvZOx1g?3\:Lٸ>%Y"<3PC/ ~wAoCy47#HX C#FzoTP<^5ڣ#]RyCybB$H4A*],;sP +I7p15Q|4۸k\/s^Vg4uf'?3tՉsvPUk3v+|Egiy0PFOD4=b{<>};$tDN}{\SbDL4x\/\.ŵ};-%. J n_WВnIߏ6RbHz3{e^G@ {r4;*yu 2.>m!:bT%cnҮ8}FW{be}q4S +ayp)Ϟ_m7O#:KO] }?\'M싙2??ѯRO k<;yu Vs|-}.>5a=h*"o1g9˔Cy/Y},pDFdZ5n]L5(-8a; r)BXpX?sj =-9d0n׎Pt m^aYGRF4G*v5˦>mEt)W^#Y^O۲)؈77gN{SdQЎ11I}ѺLJz6:$5]+6kAnAjV[õKύ'밟t vݪNeLCS#nl4)zlt݄n-Չv9c= Yw45k$[*s9c=q YxҚBWUK6AVj%災o&8Wq hޓkB%ˆ_vdN}dVV) j{-)~HR Y6p+ߛV_/Rٵwp\b6ĵ/K^]mq K8fAA]@)%q%l̂bpW’VRnsk!Q{r%\6Z&u+-E׬R@q^5[ݜVV#T-8Lq*|[&kSr'ZN`dzFpC,yq?7jrYƭq1>_Ŕ:Sc5ُ a{`oB?F<~~%-VqJb2mS.=o7e햼%5\@_ nu%Y^CBҹvO~ r%`aXVHO篒;)MrV}ٚ5_ -okʂ?J۞R2/Et 2f[Œh5LtHr$. `&xԩ : -3VKf],^Pɶ6ɮ$]M ,`weܥwK-w8oop$S.|]n|= ax|_&4}g9Zm"2WƘ`0LIP5͞daY,(Hq[ŒP+ @_hER޴&;\- ϒ/zkmBEܾP81`).<ﯰ6ӵ(QQʰAo2]ܬUb + 5J Z -(iHCm-Ep@Z2*bi +B6pWlKÈqUVR#Qs&I"'P``MyeڎEf~֊:]EqNPeJSAd /<)d#:G*N{ZY gGq\Ekg#'o5fT 3m;'U*^{:<: +OPpŅPx"`ſcDQs/W? +,V+~৻-qq: CGpHnةYܞ Uc 9f6tğbf1- ۈY!x&]((l}dž/0qi,'1F6z@8;>܆WaM2:d䵀)"Q= ]o18E08_i28JQlTSF#Nw۷SWZ#|aVE Ob^.d`DqDfB4GUWLYMWmN+\Ķ +;<%e%CQpU۠ V'.6㌁ou}l=m$놿 iS\]Dpnm>17\)GԬwQ0 +nZ&V`v2d,V6ߚ+ⴃEqډ(N? $qu.@: +rÓ/jP J̞WFjE3-zS!DCj"2%<\WOFW}IعKGJNrB᭜##d['k̊abbjf92P \fN\`+n,,d' 0%b,.zqx.6P +9%5(ݸFF`/wGa݇csiA3 t+f9Wnځ0!=s NϹlgm <_n  l}5'qzb?g'ҾiǜӫCHKi&5"|HCl_IJCu`x@k7k*ຸ<λ}`a +q.L|e;g]Dd\^ L!"i i- {0 +l~냀L +0l'\9زEPza +"?NƐ9Qs`}[-&qZ W=A\ +a0SF\m:<pE@ENqz ^D-@;bSRSU,j@AD6\NS\58 ċwy:txkЄ:)*+ߠEo`0R}f}fLh +{3mVHuʍnH&YIn-s#ϧ~t޻~7]T:!c"vZ xy\)-8 mW ywO"\>g/$"Q hODA+ קшңO~Unr;`>w"$iyj]< >"*_z}Gljkgz|elf*`^|D  XiG>»'xG,ckB 61vIjlq-`'r@a,͙Z&sq 92 +dÍie! +-ЇGczA%%5ۑ5 +O8# !lv3$!KS~fRsC;} o!&sh}VmdLٿ[e9%qKm/D- 3 dfU_ǫȁ3lnuZمp% =oUr5˒VyicP|QU" IsyTlKm +!? ]y?]=j*KK-tO9`{vd-d?MgJXHaM2k):Kt\ \ IƝs*4 CY% 貐Y[NgX@~)a8a3IЫ7KuAV‘KˍW$.KVZҟBp3CZ <%HRYT +r ?&Ap7.W]VqY6ZVkn 5B}.jـcjܾ_BKKp=%!  q3ٟE9u39g~rfr@*^GPQV'&E|[8.R_j9kIX<``2 q!sTa\køj*)u}]&ItrP`%cdr)my*xiwBUgPwB\S$[ZOwwh$-\^F[y3)tk>]}}ܟu 2ZkނQB"F}^޿l ͏˃adū镥`eqĥy'C]yP R7&dZ NBUw_OHN "u봯'#CO>)Z4Sw0ēxr&^7tYԱNi!p@ /~E8?’*; q5+EB|Sؒ?w6燦H!f#Pmkؽ&Yk he" łYNom0_\قcxn N#Ymgmz+cqq0Po/$.6z@R ~8 1x-;=?6bŒf=d3 + b.9=hǥȩp܄PM)Ǖ`pe;y~lZ"k8ϣ\9,ys8E/ɸgHrW +09HqO ^ס5^[TƪT~ANZTהI . + H_as4=D&*iay`y8A^8Hp,l-e<̪ 28戫lqUD?<@1]b\Hl$<6XT;AAix= om6䊃e LI+vf⒈2 xnkؼ,&Ђbr- lP0SPF;t T.$/΂ˮSIl# K˨ =~c6yATÛt.#.~\ <ɆS9KzBr:TArzs$'d")SCv$ëT&sf.fL 9%!۩8W Z"vEE@__lT"?T |mбk+ z`0fTp'ߟ^!˕t/Hekc-O bTW +c4=ާ+G~¯ͿJ26M&u`.塟_qZsVgI"¡8OeVUO ]ou2e悋2)݆{u3 :\،$ɇd5s>.{ɤs&@k .lA.["/.9kgjL6 +]}i0 WE M,qf}Bh%fB +K, Jp]EcM;ꐛ; )q E $5\#k32IZ%0H+ n.oB`u(*1f +~8oX?U^8&̮>\is[{vDff!;1j67L#D7Փau` 28EQo^b'ڂ嗰> ?d\hr*Ox'E9v:siCF7-jf}R~Cxe.Ş4mih1PY2er\3w p1v>ΝwcV\7]2Ryj%#PQ-^(Õ?fIPkZnI=mFŋ!$mŀSEZ^ z<(; 0%@y&|d@ߠqѫ7ac5tBlfifi'^i6zzu3rxvBw;yw[1=۩c t77Oj Zj`vBS};M4henGJ+NcEJJ@y@yfGl`jnptlCoJFw1y + E9ۙ(ĄTJI+;(MƸOp/L,̳/-kgAV( /f qT[Zs^VKH,wh ۱6Fj_Ews1qH Q"jwM5[taOuHqmJµ1.L$}Bj*&vqSkÏCL׆}j0ɋ4BR$o?> sYd(ýPK2bnRe[#p2~\sV{Q!-WõCUE>ֹaCdWex84m&>\OЅ٨ _씴q [ph 4\ FovWGYDm)}!\_H3K2s؈J+ΞBDqՉΡWƁЕ-K 85ZЀkQ 8р>Հ:ktu3v]zpzpmO=8辯\'R6Fa W 5pʥ5c\3{3t[}V챺zbD{!]WkDIǪK\I$T?{OW dT=p&tk/ٰapy8vƨFH]Djjv\b;3:V /4ŽJBй,} rYTE^nNj5`D- +F" +0+*bY>fj|T xT\WY[unjj$ }\ĀVr"!kއ[+nnߥ +3[*AU; Q!$.7ކ=d;9iW2MY%qYyV ܍gJIz/ yiƘDjII+,䀜\]=r|UfM#[WԱ~_vV&~&SRxM۸nmΪ[rg@@r4A>&;vU{l9=n[|,+;/_μd>VZSRxD?<Hx夿Ü40`˹۬|a~7VTI:)ARu - 造 +II#W 0} ]bbMR15YG47ڴZZ'p$m؏Waֱ~( kRw)] +o`7{@aM8oP7OJ662A^-N~\ LwHdm,B߿.F*exV[VhV_ϜNPKo7Vҵ- ӱ^߶,ae=~Ɉu8E9< /k9zob(RsРZj +vX%yy-#Ne_/:mW5ڭ_z,VM/s4m$]vqs0z'$Sjxf gY͙z%,4vH\s1ΏHlYFU~I!-#C(dQuhT&v(I[A7%UN! +|ݵRE*V;(A&A#YRmkR"#ʙ`-zKzv1HQ@ٲ ̨MJPڠxz΄6}TLZe5g#CODb(,SYUZMY8Ѯ,K %j[ʤlWUoien49vtXGȖ%1Z۪$Iqe@[9y+\E\<>pE5x}n B]qp`2c 8>o+t/2tRBǗ(= `W8++\:GPcyGUGq޿^ td=́QpqW#Xfb"".?(%PgÕ2ŀZ{,)X%^儊 T|_n#XqG>xVXA8`q9oz|->> lt2 +ḷo Z:) qk*ϒ)Dal,;5AR"tj;FJҋ/(Anw:͆ ׷ąTi!rtm)u'pWs6v 9dOp:*SlZdyEzU)Тfکf2 +fm憣lI9""؊YbC9voCI %>eC,ͦ/@ +&:Rr\9*uԮ$%u;q[ n"rf)tqC%9t()ph7: Ś B;vBS%VEhucrvЏgl#Wb p5a_UB2mWSU. Ie^$=3ƃ˜CEB:? 7d@6ԻXl +o!Z/$~탢%04?/X7̱ec=mpi[O9PG YhU%%N_@+^`HqQbG?,8Nv0 +` - 8[zWȬá:3a^ \ pVGb'0 1:f aQkQ9`UYIC7qw'Nvh&@8 +u2֫%ƱE?CZ[{o@n!j ԒjU jB-0pm>8tZt,j!x2 Q 09QC3?Wf.nUQ6]NAҬZ:hh݂\CX4eˢX~˖|o:b@ +FEJ͸Qn7wuto?G]Fޮ,8vousk#n]0R 7凤 +3X=޿5lӵ4k"4{a)⵨'KLtw$$hC -&9އ"D,e3w?YkE}1)Φ8pEHrtl`L:΀Dp'=Vc_W#n8n'{1Ju ބyv̳g_0xn1̵<>JׅgH:mf'-l; -p=ͷ`m Psw1%<.7OO$Z8%X8S|nv @!ҮoaM76߆[o7߆Zoa4߰o6ߐ1o !}42尊0/&9^AZ:w?(e!1~!ͭKҾ!}2-Qb@agn~~a>0/qMD[dm]~#o QF9eØ8h9[#勸j0ҲHs F(&GeL'`u'LEţ:T+cʅghHzmV&NLu˪Dĭd:Xi>!II^o&ߞI T$`_Y81NY8.-,50ϥgT.sՔI)36S{Ip>u&IeL$:gr"3 }&JIآ$gfZcܢu,bB959z'A<dVvV): E ږ9zXr5q0~ Am=L[pqIuYYvJ%yI]2ґ0-;MdB6֣_AlӪ!>SMkAậʧIkm(p}QקIz-gqZz §I#Rʠ%q+9zѥ48B("J}x8yАtk%-); (8D"Լe2ם)]^1B3o]mfJ V`͔"}pRߖ[n|sD˞k9%Ea̔:ho7)uDaznvPߪt!Y/d*}H+q8Jr~cEnЦcRJ<HJ  OVY[^~qMB}ߓ$/O Da '£#?r:O1J WMV_hLk @reǜ^Yh[}n־[q?jvGb#Βٲ6KfupTa_DFT%v*I!%P׼B1('m۔ehfNAq _0,9}]Y U}v(d].xhRJM}Kg&p$dA-%fH ⽸AՂ(^pFfdvT/UJB(/*~L,(eSQJ%lDTP^FS(| ?L(l˖ p=͐qܫא ㍠ QB;. K/?^~\W@= +m]Ҹ4W/7年zq ;_}q(>n!pBx $W~?}C#:"\jS,Y%X_0$Š+IKl1#?^wDeO%ߐjʠYG\c.BU.)@RPHG;@gĶEz0`?w! ־Ț-hgI-H1麤!_mh V8u$يnfpye}UFߔ/83VpmRE4=( ?Nok$Z۽i$s$(L=8qǘH8wSվ9BL\^I2Zu=c&ԉV*~~KyGoKm:+ߠ~~BNt)do n_xGp+ۚ2zF,J;qQS.㘼J,6He"?oZ!%HxdB\{i$[{|$*ufmU+p_fI)EtXZc૿p仩&ZBfqLFAfD٨VpPTſ6CPxc5dYgYgqVܿ +K\wcc뉺fhN׍}D <@Ѝ+ZZIXn߀V..˩~Z6ߊb-xahЂҞH.H< KafC'o_@Zg@Xe v;xsA8sa +nΠun>%!fc).EsIוK:飐5W|-;W/r'E9K|w 4X} /k}|ڜ=XX5"{AK<G⻻J5+cM89T +4l1ϑgFA,:JY, ˕l43}׿fMÍ9g:w\؝E*w܋yq#BwHuh*}HFɂ~URMQƥ[Yp7'Is #Ikmz~!xY*P?b3C۵_' :BP_v]$Rg|˥#6P߆RSx@!#%6f9=A(͸\ V#f*`ytͨM%YҖPY2XS9ylJifC\Spc .i!sĠ"d!]7&sV0:dstt>z:7y%lD(yFI[HɊ!SYDhзҽՊK*L?^E)s"?pd ]>Pn6X2} zZBla[ ;h5m?w'ns~n*J~wQG$ J8\ZI͛jV ( qReV$ G ꐷOYQ!okX!+ݠь:q +3>sbI'rq_$q 68 .ev~mc@%;B LW:|q4Y~ +PS'yʌz.3ӗtͳdr=sRNJ +;JfWL WWM!avޒSvo/* m o/%tOp@~ݣ;HKi#*3C;1BaD[Ff1v@S..?$M2B̄@{LJ0u,nL[UPV(*f( +]RZzFhpLr"^<)z[C\Wllnx ڹd8>qF gX `"s.xX;eq NX2 hO&s.O*A:eVƮq k-j?Oaw~">[8-w9̇ 9Qw zxqf?Bnv/◈k'Y+^X&jc4tC?Ay@f8i4-9%sQ ) 捘dzqlJ@q_b;+Ι|Lf! N +lq9ιʕ67<胹"0 _K&Sc%~?N˥@#WZ̡>F%P:{.}$a>@Ƨx-=F>BJAۻv ¿^ANW@>H"Gj93~CKZ/TwCqà,_[tdc +bGf֋>2o\jdz +|dVȔgg5!YC 6X}zaa 0^ 1&>LmzJ=Y1M|t&.JS{p?FL8Ga=ro[G`Lߠ87# SHn8wE^z+pxOϷC< |e~>fxz0g=eS$e'kW'i酒EihfÞO#/ 4>4ڣAޣWhί4;ԵSh/}H0 N#]wױjS0zAq ofUGS4rG;OA͜=i?6UW;;"_gfb{Yoŭ㡁~gS{aw:,ơ92N[+ Vr;`IxT[Q7o:4#KI+u%!8\GQhT=Eΐ"dh})u C7xk]t.TR/A†6 /..=D%*lx(KqzRn:u^tLiy0ewmйeeY 1{u^ed#oC4T>0;T<ЋҒ#Y]ȵޙqGju5c5͒wA^鿹Չ vAV_rdhE?IS⻏wE☏UQ[wGX+IcjYOe3jZu^k^_9:E)&LL 6bʑ*q"*16njP7Ӕ|]$J?jJk=XV3/Qt+?&/#R{N֯{%=&$gsE7B.~1H;x]P6YX>mUj*IB 9|cN;ߴQ G5aw,a8#[or~h#"ccw/LכH0>i]!i]i|FsFW@fd ߯m|jZ@pyyL~\28.qpOBjDž1.p8dmh18M11˲6XW ^xV# #0G$tbyOUG`v vG.q+H hOdٍ7e$,~᫂uu^PÃuhoIFn.9[p Tkqf@ >H63h 1IS'/nUIJYܮ#k uwpBN%nt`<][Q@/s_@cd@] ~j(E2x\V*f 3ݗIj +sQ(a"{!=+9^Θj# yu>G.bd1S's Ui#u(QsT7|ݾM1h8s-3M$j2Fܙr8WwE 8L0UA;EWƄz ]C +=tc2iEl(  +=yw>+78a3 +˺c;BOBhpz,㝝W;뮊w&޹xAI=f?;F|xWZ]Tk;?7b 1 p|+W].ӥ~·z_AknD^A?Z!3XbSp+\•N+c`.f~fc?IO +,ܾ2}n慤 d܊+뽋R+o/*lHQ?~ufi5:̻94g\-֥b,أݨ?{%/;풸v8t¶c`Tw\G;dWU>0Pĵn萙CĵsGn]\kܾ,&8xbRX=6i|;*2ے;2T8 t8|ʬ2ɧJ<,8mmzڿ`=y܉?Bԍ_\A~TW}>s\nMf;Nh'6zA;-EY4Fv8HYmUX;k'^P!T:vU-8yr ;Jf%֬G|o*┲Ef:=k9j)_qX~q=\5c)pZ]AW]EcCF3dL͔jXuh/:>JMRu.B40/.>c5[\oJN?črk=C S`yp Iʂ%% ,傐Wa7 %gqů¥ǷR⼚3Ei5) ]ٓ-Z"=b뾸=%{%؜U悵YBW8U>d1ޡ]+4=*Q.f*se6`Ɖp oW:i x /NkgXo^Ab{^ 71nMM8^~o^7&sKd0F3T&q!"iƃ'@j:Aj'3 rAmM爐v$R\\|n_¶@!٭IU* |1$@/)hR?sJH& F`sY lOk30|J8-8%˻v/"ǵ ׾A6):JU&艗sz +!`{9ۣ}3K+vЊhPģrg*V|(8fe&6>$_b?In%5j|UkRJ>JMҕ#GΙ.-d=Z=ŵAV?n=7Jghn;mN,ʍzhQJIuPj(L݄AR hs5Kr_fUyC6ɵm퓆dVm4G+`nSޙ3f8_/I$6˕YY$_ Lȕ&J%n80~a@(<_g{ ^as*6 + C%n)#`,%EUܩ/[3^%kP 0$W}9H2WV(q{1.C c%s]0, cv7aW@ jmk#@f31w}-n_Xa;,0QV 0A.c&Dg a0=ӆv?t/uK$Wh~ +$M\! V-yKK +_7ѣ% %QGrv+ɇ9]q*ԨRh+u6+rrjOZ6n]{UN:. ao9U`wev@i]@ȓk8Ɂ3dɁ'ɸ/Oɸ_'@O˟OO?O4ɁQr?ΟOɁ S]1ŮZaz멜=S.f=rDan[@pIKFFTDwmv͞f/(.ZVP~1STKƽbbJ,z!6.cޕ Bj3j*f4,A,ʍYR /'IɛY'kNnGcWWr*ZWtҪz.zҪ==VmBfsiȘU#{.siȾVMﱴ/%UFj{x&fKkXKI,znvQ&}Q.,hӋޖWT=YQeT{ot5T +X8Q̅PDO뜨T :uC)!O0ˬ 6S.kr +tw:nO\YBK&a!}Z> +s!d;_T\\WRe.+h_WRQ^#n䉬蚪py_iHI( 1˪j˪FakPj,|]U{RB^ҪkTYS55U\S5XL, U7qmՕ}Rn%XY#j=>}_e_fq>WoGr +_;VP]bгFO|V## FYLuA)o`rkm5׫7nx?*GGxxM7#>:6ᣯ3>xKiSkixx;ѱx3vxxڍi3>&vxGi_6*>xh=>G3>T<|GGxxI=JUI8䭒Q99iRjˬR\S[ΪJU/ͭb*b*b0Zׅ *'jsVomɼhÛ6e.W(#2[*9)~.1,C=@|nNkZ1 H& [ 6hd̽6*N2dj> 3lCr@= t?,]CkA?$tFHRLPǮ l$ױ<\(]Ysr|՞rI΢Jڳ|]Cȏ,`c̎NTg|na5R8 WDZ 38R %=_RSxҒw6`;% cr~Z\wX N7dwZ!  +(:\9~u]_z9? V𪢿znBmZɺt&}T@jj%K%u@'Є>!F%؍+if :w +Gd\楡fsQ_Gk킍X~d0tV5ٚIVSjWY})mޯCMpx}EME\Uϭ>6enOYO9Ր).۬1ުO;FKV4ӣ& k{IAP0<& +3u:ƩVɟ+X~F\KL[b-8ljqc I^{`B[} .6R +#g3 +~âPJCӊC#y#Z$0]GIZ,^&/?rpkֻ@Vx p;H!ǡz +&ْT DEhk_CP:!^b +Ш?LSLuJ]>-@Eh¾ĒxQ VM Cy/;hւIenUD@rs@p.t7RKQ'8i`\߳~P\),EL(ڍnU9ܖ9N2˙ f;"d©P:NifM޴*{o+@eI w` KJ(8Mix*ǀͫZGdf vO|˙dM'PDm޴@K`@~>1=ŝ +LwWafpb Y|NY l"S&vNaAݾ +Y\8RandRxX +2]Uρ~L(a{lWq0 n^NqjN ]x^En$:զw˪[\qm>nBA!mo!Lv)(>wk?Nk00ZK*2e۽0(GCZR㴺?o[8%jq[?E{WCbۧHz[y@|G>lۗgpKG{=+GӣGx]R>.Kp0/7yٻ=t.j2ԔV=n1S~PSk+oM~c9<Ԅ ?߿m=PS}BGwǢU{p_^y9܇-OMDDGQ7&FW6tbk) ?" LR:@_D+0 %߾^St/;\jihJL}&ls/F?(wEasacwbU۱&̿*z'}._|7E3*Xgh_!Q 2S!rc vT!z"וne=RMދS&„U|'g= ^erƍ5+ 5\`uMB]E_V[藿ag^JjC1րٱm@SXNgKJF Py UK#d$[{ c7?nOc;p)Up?(& +? $M}nH{gۨ/QBr4/l&qY $ ~>?8 R=%1zɭOVu6zCM<څ _g+h&.Zk L{*W8d?.OI/˞&|'ƫ\ZCK\㡤x}8#peoY|y8hIV3_ĂW&x~ :Y8z'sEB~P}xu cnp@y)i٩/5 KMW>V0*E\zbH ':8H%BIULyD.~?"lVͯS-FM'ڷ-. +%qr#T2UW uuls^Kk%OBumN,VO*ѧ?зۆ,~ɑ}'ҲՑ},Pɮm?ˇ66.Ҷ~F-DZ'A˰J>ȨNH9(,4ѣv;;%0i_s}%ھ~j^.P8A.޺S)ufuu3^'ԗ`7!?Z>/;sњxY̋SP!i\ #DA!UTv[L QFAw1:>0dqZP Puw &B9!HA=`Lza/ cWGDdv*9 @$zHy"ީ0Z Ǽ o 5_7~j98a-Y8/"H-ЄE*< N(?cf49 oKy<J8/8 +۾) ?7Bs |#8Mm(mMC2;8 =`n +=)88w /jQa˔6MŔ> +h|OCnCpT@(_QAD|!*)#҉$vt@#fXxX֊܅R bAXe(srF{M0C`| DwHS!n܉`\:ٖ1Ezn&3ўGVo3`G[i|UFXo$ +_Pٵ-ײ:ΪC: iUxϽ 8&?_$"/@cפj9ؕ8{kW|<:UUE_/5Kj]`Ɂ-WҶKN)XI,op +O82 $MNk/.K)%7)̺# +NZL: h;gHz>Ȟj-%͞o佁*r/J^o1Pn\`.I*Zy>~ЄTC@$(/yK.\Г`:,4I82 7 G$}Hp$OI''m^%a@rє9¸B}&aLP޸ޯ +2cJʘ,s^vA4%W-ZړrR~+HӌhaO?e|tɼa^m-hp54CBZhsP_CMJF.7jwTWoӦUڃ^n8m2̿`]FqI<| bɧ`u G_y 9bՁۂ47% Z.A*U m2+E`CT. . O;ٮf8b3W*i6/\i۠:BKxf(֜m," 3aTTq@"\L -`~+ŭAtJ]薓f PhwZ }^:ؙfKBt봃~½W +tğB⡏aҩϢ8XA@l#v0j5SmS T\!NPГ)\j@ >b !{d<& FymH +F.SС!q\<./I$/X@Ѵ_}bH4r$S| 1O^;C Lɹ5WĒݺ,utx"xr3xڠYNLePAoeC1$v:{0pJQw`$Z!RB\+ +̈́?$@7XjkF]Mr#h/:~jk0ȾATfYk>YU/C45"'#F`\AA >o, v{Xm(X %N*N#Ae5Ae>M= + ¾%1b+n3uv2MW?OHp" +ٺyx%m`"u\edp70he¿4HjHw2ړ^q0>a_됺# ]4yQ$ RxmI?V̩4F -?М%+[<3Nf㕤װ otq :z,XJ4,L@(bk5l]ܵ1!v>Pro"Y^Tȱ>#wӰ"ќ]rY 'qDki>?inaAŜ4"ǃIN0ȴ[vKսLj>rK)͸6zhp@kv2jU_YCDfvUe;{ ϫM#ҵrb7di!#F~e@nO`KP=9Kpy:YJR 7FQ +H+vR+ KbE8"l9A$,~Ye&"F~ R$yЅAP n]rm3QK! +n2iǭ2xpBtW\X0v6-Ґ`MnjafiAJP=i>(В㏸qoI+K1f#o4 + DG]ʾ!B@ڹGe` m[u,1Qŵpd&(i5̬8m#xXCVkG>Tյ'+VhNH6kֻ6.,f. Z7 (%٠evTٹ:9o(.ER_Qܗb^' BzFd0 Pf>ĸ8tu\u P +qKW";c}${UM7pM,iڱũ +K(⠺ίY'E}DAQ;8oƿ 6m}R8J!R=I-YΕȋ]z;ᯇD''rN粄_s.9$ulw߾#|LJ>kw "q0*'<ÙF|@o^]$kC ~ H'҆*V0WwrKԯu8&|-|U8PFhy:(mnD^n]5b\IF6iI6V؆Svׄ0+0 +MZ]49TJ2ۤM4Yx[OUg&mIۚ3zqwpAbXC^c>x$*Yfܳ+BNm +v9?a˵33?dpqnqUN*>9Xg\1*so\+볫@m/B39-=|p:o@p7 nglS`?5÷j}W0&e >,'2\0)sk5v. 9\ssg}(߅C9(mr}0ߍs= &̭]vU02o3n"p'r${~1rƳa[}dro}JuX,ID.zX3hm}0#y]jioLECCV>l.ŴYYV g9#RdiS6\wQ|P - +X}.(N䊣~տ=YLnZiЈl.w/iI("N)< pR K[^}\{Z7˹ī΍>@.>ƹ}Jgi-Akʹ@3]ۑ체R{^E1%mƿz J."lOl ͹ OWGzn](o@oHxv80N@EfȬʾ)+\ MS|9W|8 J[VBZPfOi(5Ԟw*rxq ZM\yp7[봊%&)r[K?ɪ>ɧnN>+ihoY~ f6kUQqCG-P?jbh/A[Hfjui+5!*d*Ўe'* +t-JC2/wV+ƞWHl8[[vu~u[A\^@R`Lr|"{ + $2-. .vӿ@} +B˺yI7@WCe_/bg@2BMA/: +umߦyR>_auݜA?\5 H =?d8 kb>)c6L;@+wEA;7*Su.Ѓl <8B}],^d^d[U~%y&q X4r-d&ݎȄ["*vxh| +8g3=+߹,&9pg9Zma)qVgX &ٓ W<:iӣ|έ`bx#nXje#3MgI+ iM3tV+=8ܸGM0^pc(QQA48ScYn*N]% -E i'ŵ[fG1,-w#SñMCBs.Y<-dw|D%lYKGAJXgEM(iҦZ/HZo@- C2l1 .hF <aC7q\Om0e6Ơ=JܚٚvBId:dH,;)Mro +Ū"$5{4 (TcV&AիhwJ8P %J;Na7A -uSᮣ^t{Χ#@ݒJg,ÿckKg:S=D͙,@)UJf~֊:]Esqܩ؇6 +iߩ qjݒTH~g5=I4X|CQu)qT(Q¥$7:@G8e'7 h|/`)Z-p *$R + r寏51 +mPנp 9>'hQAՆi.U; +_~׸wh!h\ӻD/O\G*ѝʹ潙|C4#* 3`c^bcGAh.N,hFYp+V\&[[_ևv%mPFu:YiX<Zހ\@\Lz9h \94M{=>}&_gs) }uȋE+y֌[{$mM&\w5mm6}EălJ(bp n&q j[a +kYrf1_nI(jˁ.Bɚ3gyfJ՝%g_]rgHF+҆祥祍KKsMDK{EYLW2keEmlJHrK [)vK]2'CGD) 3p}7ـnmlSw0e6n0C,eX_ pٞ1\) vnxU&@o~= h>n! gfZ4IdB5^6%] +c2.qGO}W](CqI366->n|+N;>@:Eތgp}5f] 2jqQjY-5 \ +N6^9zxG/$4Μ,FYnW?} oAROc`3=eP}՞Vj?{܁:ƍIge1PjF.8Œ~7T ݎ:Iy8oVbewD_o/`oVƷ=]ci/.ZOh 0kT*v:\ƭzx1lT)>KF'Rȃ'P g(̗bGxVfn:އELB#11)h0t*((hoI ^nUE*{e5NZųb:`-qkn.ѪL4iVa .q6NWkgdqfy?[pj3 'sQwtH2 F2qc%P$СL3'uJ,1 +1*Lw\B$dqkE%gv>c if|q'34﫰~`O6lKCOybfYsrpIw4 ڀC~cnRo$Jmd)f3gJm(<Y@VѬ'NFri>JGfPWQ`Z97[0:AcTt0լ|O.T\j_ ?B¶Ȭ&פulj&iR[MckAW8·w]m%h~DXAػazf(-..-\{5Y6p؁iĖ>h,4C]揅z'e!"anRe\>=6L8r1H:̘@Wjsc^.G\RђB + #?9/Avw)ɏA?(>{Y8062/㫂'_Ae@.N'WC6SfShM𗾽-:ҴH8M,SwD^XyqOql+`tLsVF)8?,X~Jۉ;L7׀ܺ~8ߎbrΐ%Q|.!Ȑ,aDΈ <Έx`jL~PXȤ% ?^f­E _)Ż=ppG,~b.`BU>H |1 +Rd1`q>h O7!G +N)uGtpY9^8⿆#Yrd*N!#`c".5:e1"2PD.@,W񢼍"iwݔX7+%!YJvf2.㒯^lϑWٞǶ w9m͊쮋kqCh%Mx7SgG;~FLo7:e?\)c(̶"7O#5 +fjð-]йعnQ3$6u +]|T\&BM߆LhB*sŽ^d,Ά<̹6b ^nNO/,Ɲtd,:,$G!;TuU tIH.I4tU]ߺ>yublSVuϞ_QUw=uCD5j:% mf„`:4mQ3TԲ]N뺺+&ׄH A! BSM@AQ߽ͼ3!gOwㄙɻw}ݼޛ($?p_ NXynmNFJZ>mjp-tm۪["jWMT>S`a^ !VuUt~3:G]] "'0Y9 7v uNjd_ G+>?A.ս<*UJSusjj"6įIeYa ]Z}-`|ק4$ESdeF`ܲ̈7z~vLh|f`|ˁgUa[ozCH~48nO'Kϓ/e-">t) 6m5(<7*_EU_n;%QO:faQ8NEEX0<{m<7P蜨g!hX.C$NBIxK:CYf*?O py +_3njk^hc0ѷlM-nC|/h; s|Ġ,ixͿTm+x3;WV`o~^H`dYvڦŞdS~j3|}m.말8UOPUUWc?xMLG!&«^S7̧īAP̾ڿ7[^ʗw^ux>qr2˽smQj]z +m%8.Z|"Bv!@q{[ m2]C, x91piSn\zXEU˜|u +_l|EȽ":ޛͭtbp`M)R J$HrENn':cE6?/PY]1>txFWh]~2?iؿIɾCBIYUtA4,5|+K+cd ?2%;z}zv@Z\9=w2챉wU*b~AB$tϬJr}w& ,W#Dr-vwv$PY_B5Hs$5ҿ3:$`@jޢ.NB^]3.zZ+thb +.Nt1N=/LvO[N?$_jS%'#7-'m G۳ +4/k*AZԚ>AmcrtJ +c{02W 'OQUHODp-8 *ԆKXX9VS<WhO%+--f'txXGmɖn0C眼mq +'3o#H{ۮP:\~^:fʓ'&Q ./F{>E5sf :w}_/ֆ2yx3L(GvyZyh<\? ތ9->GxnhwT˹}[>!|:W^3WN4|О]B/2NʘUrE.'"уx0/red%`p 鮖;^G Д,oJTl\d~YϽz\KL^Z6Y梇H^Py)‰$>c֨c66r&Y%>|%"A.;\ +y:<*F(\0C'Qd'sAnD3!]V3O{o:o.=7I0Gsu틐φ O> TQHο%A ;72_#.w?~&.۶%AeQYnQ#/ҟK#Os;//?O;-C YlDd:=ݐcɭF[)w.*qQ 7p\Tl@ƙT2Ib EϜyU҄I(~[lBCA @orfq}JP  Ds(Eyf2o]E..Wg-ˠ_B`9`9am ŐYޠ _D? P0ǣ1ug$%ahڇyE?9?Lj>M14L[0>kccϕ[KJ}ǐccp-Eޝ13ħ}%cep-J4o2qp} \ta~.epf:Ć`.vw₍A&3߿~[]$qWh k2ǸebJ1 wOzZ3`tVf-?&%|$AWi +y3EVIۨ"tVGkҳh8RO>r.jؘ/Ϫ~OK +XK>g`!J{$ͪ7 #V[cY*} [%jo@{j7\w;z㗱rr{ |.^G|wVȆNzzjJ#~U9Ufi~/oF@=~wڐHrF[S~+9R9A)pӿH9^dߋjrR~)*F?i,.Iޭ eDg",> oL¢|&"TCaҌ2WѷPFUc'(BN׮cTagkh2żkdp~^U3,Gl*ح'(?JGo1|#/~c9"VGw [v2,J;SB1av A8XW _xPIGSX Aay b&Z;K}Q!#Oz$93Rd~qpLƋd~uHQ2'd奇pyLjYU|TPp={&҈e +VԨ|WP*F*"HS4;m0:->)~ܗ6I:<荴Y|"/o#p% _!~U ѯ!i>=o7r$R X?`}U2Oi}CRKS~ xי&nw(xd,4ͺ=ބ6 +*@X.N3I~rYG^ie=Ri:I d9!UbN⹼!'Q,?7PL +Y9m^ $c1sOZ nQn^|Ob~$'EVҁ$3G@y$㙞~ikL-hqn_j6)>M|:zxL,~wZ^P>c +bTs_Ϋm?R]GhU3s歈,(A iX*yj(5]VoPr=c=1a**ܢE/'jNcS}eT0]7vYrG܃+4PT7g*.˥e-rGrZ>]E(길L40\e2 pלf vuK"_S"@s5Bp!e4yG] Fd_#ϛ昿4I]~= +XhﭒH񼒈kQy@H1Ҝo}[wM.U#7 tbmSUNJ嚎x8a1[džCUNʛBTWRIWJ + .ox[<#w!>fL0pNM;Kkk +VHYKŊ3Qv=}j +\>/;y\5@aUqqi`*"Y,jsVBM0&XOy^{E"RpED%PLqQj nU}q*Giq2agsXsVXcǶ/< Ѧn x\RشXj'i ࿈J>pm|Fv$Gd3躵% Ӿ$GW稺OѽW? .H}CCq[j~] +CуYw/E=m+K<r>\TElwv* +GrcG3!+O"Y^d5| +Yߒ0[FAWp[3ք*o}€V\PSZ"zLouzI<{&e񌲙*p>h FTfSW*KN916Z` U?F2@6$R6K` @v %wey.$4\04lh4=$<~<M۹W¨,i3@W;U`# +ӃNh &h<@sk5&"_чd||WBKd 㤵wH1:uzTrҞiK|#fYu([_\yHSgAD\g(usA&EWmRo=9\KFppעiἤ٢d|aF ~2#v)ڮo?h}۬xGUm(OKѻD4~:\q[J] {)m7=@D7_q[@5Ar%4J.$M4ߢdOR2Ż@6|Pqp;AKTo IُZjqF4N,Okj֦j#Mks]H٬<M[ ihW>O>P(oo)*cxtp·CxAÂ*ި>&iwRtͧhB;ߓߨz,Ϝp%、8w3)p~+$nRZLR4:R|%NYEN}sk{grr Rܧ}0VGtU}W^K{]esZ ptw[!̽yMG@aѫh.nSI+k] IdFåc hv6N3|#u_?Ys˺*7 ]&cէS/=DޣTSlȜp* y{oک ~ב9weC¿[XCvZџȦwBŐo=vy2yq:nccl)(:zHYN?I}iv+cfֶSx;Nks,0HB= iDhNT =nZ}]ZXORB~.) a2/Q^(&Kp)UKu >8;h su}yXѮwEw*aQ;E0|#Eh8[Ӯj( +%{[$gz3,T' gM4ӎPA a9wA=֎Xƛ u*x;#6=|f0z d=,hdokɒH}"!<0XQ'_V,Z`<12Z"Z{#'Ttg$@1V<}D:MxSiѫwY'B:T;vڛx+ +I D7;6?tm- @e|wR+uJ'f#tD]Cgӟ7?u6ԏQҾ;y#l]e5qb2,S"@XۮM*n k%p'^%E:DyE;USܿvA+ϭ2w8GFEpHP]a^JQ&iyWuOY}]* p=#C6Aⰹ(Z}4M{8A(i,@3E r4\_Xc>fX%}oj6=œsU01f6?D;=$:,v>Ø*ON2(3É,-Gdjߓx7mRGj#eQ.)01AEk.0ZG孏A},')OlW"st>ؽ_b +  ϵӘ!Mfwh4&tfWs +&' +H +4k/E~_yƢz 6mb +6M%jbX aY0 y rzTmwEǻՁNf/07ˍvZt([P.?s@#֩pށrV-*GYU빧<:d!{B4;HiN@S<|a(QXW s^ wɕ'gBqߤmc+jv}סib*,-'\3bQv{C0?  +wAwkh*:ވ!rJ"zXU^[b<Нg^ ö?jmμZ[KqԾyc_`^A_A¡kOiXqEx E.X!{bE(z/W{g2T"D!"X|~1Db?3z2dk1',cG4QzǠKW=?=$pꐼ?^9:+ 'mvuIn'Q&Ny۴(If0̺I +vۯ[vav'c‰0/a1lUP뜷I:yfE>rva~N2+ܻUY +XM,l)E/២Vf 亟!4TF30d/]}240Cа YnxҏM v8Q9 R[Iڬ Ug([rYh!D˸Y"Ta@ =DCQkxi"X`5Pjp1Xr 0a=^x|>9iۭwґYđ#֕\5KX,,-0PH ci J dI^ +<^j.Xw~u:̧gjY`jm@bOq:~sFd'yeiE #_Y +-y5`N^.DHH4]Q U?B]{|Kg D_QnJ<7 +w!=W;8yK`@Vpwl +$֞'ss^XVGZq4x":6˴q:/ǰ"9dmz%-_Ͽ}-BU;Wm}("J"HWsj`$j@ӡc%ѩaBnka#RsD8$aPY"Ru]d}$'09q>;Y{xσIe|U蕺;;ܕE`J9RP4 +(C9ʋRE֔ģYfEFn=,SF}rxkIDJ0X<Ӎu( tXo`y-gN] 8uA2O.H\> kX4&dZkA5WDKKR*}%BDS;ET +-rF+Yh^ $T HT +њ|n4ToCDsc6_W"QQAfVHD 7+] +b46zQx(5]/C]`IexZ <9z>It"EgO:il&iQӣ߃9XF;\XE4 M +O N0Վ'9+O%ܼR[i{#))6gʫLa!f? bHeɖ'- SEC(Sޡe%:m%K$@# }ʹO/PEKO7ZU8ԋ?x"r04&/8)ze4!!~Z„Aҗ[? t + "y/Qg[Rg"Uk ]^%{[( 0(m kJҟ۝@u2"Ց)\8T!HI +la`L,@"A&BIFJ wva!z1c{sHS 7tx}%ke$Y+vA!<uKiS Je5HU[(@.'e +󪿯TL +OIkGe{ND 6Z rN{pƄOuz::O{lyerl2qBw;Ĺ;2O*S2hwwB8w)erT&L2A#uN(qS2IB8+})+j!g6Q#3M3JMiiTmUBҔ ZQ. m?E ;GV-eU'RU}䞓x˟C<܄.q.qBNB;=su#xu d d3.qZd?RL%Ye9VX.R% `lV}eCyb՟O_*;nJ(9BF*$& +Ahqh_d|,Ѓ8Es>Thy~es7>BzE +N2"=}v5yaA+͸z}w*_E Crk#J!H=֬z{AĆ;i{0| q/z#7N"VDoNJ z 2!&ڍЭ{a0؝D礝A" 4`V5i^BQ#OfF}mT|sy-a|]dʘ7 +/tJ|{w ڏI ^RF'nNCc4n7"|_$:Q$BMiWàk[Lk[wC%o]Fg۫}4Йe!T"=̽b:& sbu8 RP>R9}o&3b!s=G3@\tq.;JFl +O2jC$g`s<C.Tp"&}3 +*L(L(^-H80)$IS{Id ѫwD)솶}nty&!jsrKzXk{_c4Y˅lcovJ(.7L`vRF7Ҹ;zMaQwd~&ToAPNu3,:N(C΋B3P8WDB ޣQZ$UgӪq\ 6T+MӶ.R|eaȴ=},Ӯ{D;ۇr+݄*$DZ[kbs eB0vMo,[|@Sl.GY`vbVITbKBvazGrIu|Z A |{Lh}35 ,Eidsid_b~I-8  *!t-ʈ}S+սvI8)oCKFgv$/ p q2PPݹd孕%d \0 E;CفS?VRWЏ4XUۋAj` hѦ3H[icPn&rӜKA+IL.#AqkAaUY_Q^(T\+-* FTkd쉲LV+yd$M֥IE5oB{ږ, }8i#0Pp^v2Xd_gEZ Vve +L7 徬 + +ix[}#| "124{٘N2v6eq^6[`YlZOI zBzGDm攘BMCDza>`LiW._Ҏ`>0\ K)ZفZw',| w&KLwd^lQz*utؚ0~yM͠〉^R8 !/2[;B`5xo)-A5j|{:rq Ҙŭ1*MV2ndxdxz5!kCaA}AV/ok(s68a +%=IOl'6VH@YHh3 lVL 3k;%2aT{q6kXEJ'`sa`a:2c{!j[ezv1OJa1}ݩ:asٱF ChۓJ.&;/ޣATVVߛېжo8]1H-'MhchQ6On #q6mI +E +W.>jF +ymrxc,Lt!HЍMŠ6w  l 'e.A7v6Fc@'AXbQvUy.A7hё| ǘs={=@Xo&0r}3jцm,؄ uN_fÌ$Ğ,1Ti:wP:&7 8[Ll2}̠f>ق2Waڅ"!uA-r61r sHcOX!H@{aSѢ,{5;@~J9ܠ!?C` RڷXt.J?wSbI3g_JOgÓeB{ͪzvZ:'rE Twur$O!௳,KVY-L"7qQ^Qa*&z$sjMהbT71uTj'\.! ;q;HݦB߀M" CrΘOK`/iX`zIQ nRfچhc4,LO-9|%Qi_MxtK9@)@vY4!O5'\OxNq2>ÁDbDΗ_}*wSTUZi.a!u<(uB? ΦO*CO}J,?^' =ōEMPL~xR~Z%7@i3?d|Z|`[b78۫``WSƌxݏ8~tUzb."ͩaDd'ODGSTiPa ֊|aCmFfܗTg*؆>;I_TX8i܆Vf(RY2bp鿛|,ߥ=ߥ1KKc|,.Y]4!ߥq}.3iK44u4fwi̒Ҙ-ߥ1KKc|.wy={wҘ)1[2Ec|Ƭ.31|ZKc|Ƶ4fwi̒Ҙ5ߥ1[Kz]ޘ%Ҙ9ߥq-.]4%ߥq-.kwi\gKc|Ƶ4fwiߚҸ. NcLwi̞ȘȚȚȘҸ|44fwidwidwidwidwi|4]]3424424n@K.]]םm4(15ߥ1KK#SK#SK#SKcZK4(ߥq.L.L.L.L.DKF4'5ߥ1cK#-ߥ-ߥ%ߥq.Ҹ|u4.42424n\K2ߥtOwi̞ȘȚȚȘҸ|44fwidwidwidwidwiZ. widwi̒ȚȚȚҸ|$ߥ-ߥ9ߥk4!ߥq.?CK]]44n|KwhS]424242424/ߥ1*^SK#sK#sK#sK#sK#sK4(ߥҘwi̘ҘȘȘ-4fwi\[KZ]4fwi̖|x'-bd+I&vqYCTc5f!>S1x(㔠J6Xa圉eVC?͊!b{-Ї14J =izߙZs`fgov&:fdJЭۦdJj nFr-#FfO;7[Wlܬs<#%..˂y\cn6U'PC5ٯkJ@g%Jy.ʭdԐvd~B/f x!?aJ .T QkޜD -wBnB&{4S(˙ӡ(i c3''y<3$gA +1yWrGW8ؙ}N0/+y\~S67zl}2\#t6Ia/IaApT`oxGT/&@ ÁYpg=3E밭x3M⁒` +gIa,xI(SO2:sW,I͎J` }m fBG +*}SeaN:6{,հsLP *έ]%Y"0hVoȇԍԗ/)r}tO> >,w:Jy?4sftL)3-]?h6 +>>hςz07 P Ry?2:?Ɇ~2' &P@rxMh?m?Ҳ =ׇ/z_,gU4iiԜ3 yT?h\&*ΛÛ5 AW1קh$O?IJ?(˄\V ׂ/_b{?sa3gп,A XП; /^ |aNϺY>>>?{~,/e~RL3~P2'3~L/}~$?(7n AKWf| 3mg|g7g?h̀, A? A[zԻe; _QCBwm_~ƞ$Gwf}V?3ڧ#}+,YTp_΃+ko Saόa5އWfswhS>f(8#M$'5Lr2 FI&ADhxMx +3}(<̀1އB x +3}XM}lǃ,+;?͆R +4ϙjyS>\w SoO}>+rg43ާ?gFHF>dp9X~[x{o[}>j0pF>y볔3&Fw^;d˥|3%{"EO(!sԲmڤhxrg55*STz*y\1SW7Sy\ŕ +qrk'~~.=fU!}ROWS{5pUT[Cbi}yE:ޥ0xYJE"s呂NȖr0x& )`kN5HufȎXD< 5B%uͳPI]T$jSN'->el^gΔ)}MV&+]%ʼGI?4P0êta2e3C("߫g_qIv⌧S X|<\zFgh2ͺH\\W:MU;CSHgB{'1F+qI)Mj{J%0d"0󲿨fc71Ǭ7ӛcV2IvYfJeVϟmNLo*4[Jo*:&_q[孫X\uto|tٵUqʳLC0NW=<{qEBRsB'9O;]zK1;mj9>$A>M 呢HN^S_` l@&e\I5)3WiOV5gpM d5`VMukR sgOS [oR%`jo:sMPq(.tR|;E5ʆDۥ]1>;[I4cUltQ6Wm'*%Ϡ);h(%:yl4)ޝoU,Zy:3xzlICӐO篭tńypHTic 3,wNhM[&#W߫jG'D#>[ ]zF,mz^<*4[9c VVlq/5![mB_o)kN(/c 0ݫ-xH7HrW_2߮{>TSWؿ$Rʗ +tvWr~{~r~{r~]a0; ~{QrL _a)y}Y1)ͧg #n[!\P5I !k9\A[qμ6Ӌ&Syd*O]Lk㼆D#umm&/YyUR[ȬNE{;, |o +jfۦq]Q+"-+ 46&}״8lg"N/.}x]Dd[jNd4'#kGCWEPI{-+Y\Y\[)z] oAWP㬃#'pJJ6甛8 :{R7/v?knnVMz]ל Q꿊_82:{} Z)UW8Z?Kʳ?[F;W+\/єK6F_mhoOR˄ܖ>&3^<F>*ZNkꦽt9'L" +=+kcE@>%"/'׹ḷ(- B/"k+=G ZU[Zp0W-.y-$݆+[tiRo)Ptg7]١[ +jiU[~,T [Ao`6c.%4Po$^);HӤćt'T֥Сt=RBM*If?iV&]e-W;-_-PhE*5l*)w'KKlJF_zKKJL7 +>G:+xْ/eԼkdXNÚiY+s +J*Y! U>Эd=TKs~?,/x={!_׺\O*K_~QzKgEhԦ53"Bl)ǪUdQ͓R.=Gslwɖ`ead7x54[YQ:pJ"qIXnۓ3$LHfh$;$jd[` Ʋe0?G{ݽݕif̝n~{6$^HE7 |N@d֑{il̃?O떀)QXڸ)i/5sw>yOޥ_m4odCh8%Fc|Fm2ު26%51^I D:URGu_q0BܹK_:'tEÒe˖ Ỹ4ȮN5 :뽚ɸ GsHΆBu)h08qWD]>?ેN/G83233t' ,ЗIBb4voD^ЗKqzE{$&wãuW DIӽFԵknv:%=)Rʹup.NE2HD]G`4"A+^ X[ Wnyq$6(b< 207) \8^bQ + BJ!#I+ʓGMMaVXfUo=x PBU/z`Riզ!êaIQ)R`ҠnUyhmlͣ~cog'wVC.W~͆௲&zO9f1Ɔ#AzL OʔB-_LMaYXt<#(f1dK}ir)e#69>HqH\6t A?9G^xpO^FO9vUD:`&w>4Vfp)C8ldbۚ!<@5-L`x]Yd,m6ڻ/oY> +cMqfAr)\â*y >5a-J+ +#,cyQvemCgQ&hj8slxZppd1sϘ >C.ݭ{ 1:UtJ)~N N:&'-e!yVGUnUWz{]exCn-o +rӋ[ 8&f/C瑧ޝ{$%is>|>y: %Er6t@_Vr^ +?苗It0EPtYxi/D~%r8kJphp60>0.qmi)hRPnPTn?*{UnRʽEG+{Ȑ* Ne&NbNE{LvP䟃י^H! &lvfKDsiGY.md46~ 4"n%я t)7C`<>&Z&&E+JvZsc-VH?wXrr dJٯ 5w^ZerDj>͖X bmv?zILdo5 ѥnZݽ_s5e_<$w=貧:rr͘Dwݔ^GńVҷPT=]yRX|)8&EFURh~<6wy< ДdMygZ=iy)T>f*8 z +Eo6JIoR^7ҬtGю?m(8q) +0Psz cN?#$UgM +VS#26fZ;3L;Q"u +,܏fa[6DTU$(g Vý$vteJSNC]:tKLmPoMԶL-Fe~ 0Rn0nf^P[*SV|n^W޿6H|-qgx Ee`D\,A1-"|JLo{ˊ^Uu/]H/M}gN/ztpUɠWRTUgύG$HII6p#A$$pQFKd78&F*p +īNGvcd1Zd`z+GP}JW}R ,`"!s^Q[h~^30^kh^?;ٳzC#bs+\Z1=)G?/Uneܓ)-1EG [WRtg[_Zbty 6껿}fVwGW#.?0@uܬ8 :n*IB\Opcr:COY $: :N*DlǰS?UHv]:"ѩNu}Ga`t$<7tvQuG$\g5h.bCG^Dj:˽PW× ǣXd0 H[r~yéx tBXSF;nsxT]X~D̎C6=㫹XV"A\x܂N)B5Hͷ3 ŲLDk3Ajj v: .毆+i4U5. P7;Z#TՀ}I`$_=ii} k +CНom $gI"&>4$ȴl.8N70woːs҃Zytl. ggDxdx +U[`%PH0`wÞU sSJuz̒`Ա//כ8d|#=1y/)tgC&9`7iy R^cȃRrAO j4߲Y|ߐ>I+}@UVF# UE84t5+o.ò0OWbc{#-Baf%(DvΙg$\(x>Ž` v/"qCng,"h=8&&dj } c]WLq..)>G N: ut҂PER(Z['>wfsqF&.(/]a^֝dy %fj)QEh'ls @8&lG%K_栍sfZ|UV{Fc1hkxcqojxbe:0;Z,:b1kL0HqeS ##!>&CONyvI[>wXXXUi&pab'Bj(zk{+6z_-#~ƫawCv^pG0{I]|\b5 )Ӱn7~-22g 9b[Z2fLS13JHXɧ9AfA!p/`#r{ BR1'w\UE A62_z;YeJtcC4õ%bZ-N,% <(Q&;yGX(KtT@)KĠ]ZGC)ef0 0L&wa-mυl|[HJ'6U&훨A.mdϥ QdEl2^"FD]N!KyErΥRZy RTBg*nQNJ1A,1ec$~w%{V{'H1Z őkt^bj<B>|.nԷ>{Q[OżB.R CS`(ͧsA#ŴL 4Mu_\G߱ |km]aJB |τԧEj_izЗ6&iKwӉ"{.ej9D1åDqݔ}]GGe QZ=J#Ea_^b~B"aXvc +AYfSkR0HaM ) )Qx*dC0L.KͫT'ݞ:4!ճ鬱ea2(I=N'Tmp^L5:.cN'N;X!yK,c;5?+mZ.XzBl*Udt:68d^ĥejoMñpX HC:/xY%ڣaQ$z4kjAN):un4]{4j{$R|ii?rUEN@Jwh^[az^S$S@jAyNV? MDl -*L<,@#7R+Q߿ay + fdx<+&׆;ݮG:y?ywx xޓGL="+&|1suѺ軍]8eqS¼)!WWl7aVŹCz:;\1R/O H_q֣ꭖC8޻YjКiO9̅/_7?umD -Kǀp5Lpg%_ƴ#j)U~ܻ+#&wQqg~&dHdumlܙ{I5lkK֓bsЪ^FhRC]ECLY 5H62hHawf lwsG{z~ǽ|j~veN/Yp;9=ic(կI}/6%Ğ?8p4ʈ) Vj:=xvQڃiE`(ۭٗ.u19~ *3BdDG_AD$XitiLGmz,znhOR17ּL7+ɱb*ĭɶnpz1 [|mE+d -OOտ%Ӊ>fnGt.^zG'0.q~qqK C@7r> $.a77v2%t;bkH;GhOF9ocs95suJu@)A!@[Xڨgݼ0hSM0M +<0Qg90b>644]X)׮!JNu-;ԓ]b.z#eP62Dgwhdute$ Nvt+O1uLO~~ f2CMҫD #Ե3^!Jy|"]AW'6? GǕ* 4fYj(V/"8.:jaBKujl˼w0go{bEHmIOR?e9-~z=V?b}=kkR;Ny);&<.7y} +@^@Sq&7 T7'IxmLF| R"CG2I,s8-&:pIho`ЙC={FHkٗg_Q~%KMuC}TRZPxLI*г""4ώ",H3){uy谖3\gz7{@>0/. +i~^'7!i!ە}O$ptml+֎B`1V I#dm7UMNW.5k?/Ĺ;.\7ٛ9g B*B}ܩ(CK‚kdG:zRZM&q"rvH8xx$k܅Zr||""H+w7>>!An/.Νr(OiK8^Bs/W`%`5K6M-XiR\c%=3FK{焭M"ũşKszgӔ|) ob43َN e:dlG3&Ɵ_1guI8C.Ϧ)ǟMS?&?31:cD9iO.lV4ig]p sGKBz:޽!*5ﹰ%9Jdo/$r1s%b.-K;.5.# +Q\r0uDz6/j1 +1U=iA<*_g@gKM37TܷxWX +E#Ϋ,EIbL#ZqMVT@B XYOl}GW»qtm"Fr ,-y$9dOTmu81e_0d4bY ;` `sk}ϫ$c.\ ]Hkm^t=dݲS̺':$h~(ͥ_NP[ ]WYXa&Ͽl6๔mtatT]~Rkط%HS ^;@ZF ^#+C.8"{<yi Q/=ީTcy9q!zlRjkij悋1I8CS%bS?x;xc!o:o0p[*ƱGSqf Ֆ_ޚFmw 2: sB-=+݃KUcX~v_D.L?'qPq 0 +{s>\anB@xj'% +Cv' ^`ƨͽ rBrFxW*s'[Bĉ*SjvdO(rUN $)m:Ere~}=?W S ;%V"mh6҆(BӴF>wOLJt'a풥J*Ne2"-pCkr GLHH3aKBH[e,\ص"5=Dr_ Jm\QXe T7yVNS7ΣQ%`ey(K|'`^X ڞ%vQ'hfP_ T`u p Z`paQ& I CRYJy{]k QpqKtU5/ ~"cz}@cuZ(&򨗵Բ=uİ 78 !S Y8k^6C蟮 ^5iBp,$ʊl74㹤Y͙y3aN,&wZ^C4f΋|Hxe؁ XT ۍv}6QEǾz 4^WK<%̱yjop<%6nN"z ò^+%5)u>=ac?oʛtq=c?"C}zu5ܖSiCkݢj&[V+z[ 5aˇ͜7?(.]/F4z.b*ʅ\*=yr鯚NI}#(٫Qaw5t-W-6ѳ\;*гPvY[˵ʈ`2Ҧ_Ñ=ڂIf%ɶK$'4MDMߧ9SseSE?eG"J^HsNZ X oS܁ 7^Ooʋʖ!q +D1fZ bUԔe`+V\X) ,Զ&b=-6B򡹄kf{&v5Yl2B;~0Z.qd9NFqV"j1<2P.P2OEfxb Lˋ-:X` p] egO YZχ[|sxEZ?'T|YWv9Q>QAQNQ T-jRo`6;x0+TLOL䘙m3'L\g:r2CVnkW)U*>,*zJlD%kO(YY"w:DF!qHy"F<+bq}Hsw C!_Y-/Ȏw7[-eo^봑=84sgZC4ܺc4tzg:Z69v!rj,08\V\aP'yE(v ",bnYʿ,u`Dy&ً#ȹecg L-4S]3nL\Q #Ypo[4ROX^'c)/EF?ez& MLmU +*_[t#SdùZ@s58W9)VR+vޤv_(,Fls +,WTK>EL -N?Ez%;&os oW4!^Ma8k", 9Fjیz*E~cV$ l/E {lq2,NpKn&n<:Ipp<nf$Nf0"Yx 1^`iHy\fN#3A>L~TӮQSޚ$3jF+GO[dzZC#`ٜ解.҉aqA(Kdq&u;:*pшz:>]LD769̊z!]T<b e/l'ikd#Q{T̯H}B[(Bf0-kS -\Vi@ K*u*9e$o$͗IЈWR ;ͨ-Bwg,sȶxX <-JtOtr-ʣ>n`Дr,UoYVFּZ+QL5s "S+ £aV ۬ȀD^9RhtÏk!7f:?[Saܶn0gi!VYfW!qMSp+ihH7_>[#́U+u-N{TG2G#UrdĖj*}?gAw[ ! e>c{5вRkrJOк.T*b$O9Ze'hfrZ!_^0l!l+ I/anNf؅UȓU2ѫaio)"GQ&ZHO\ ⚵RP86D1!sSJMAJ To{a/\bnjg*D6\vԏ&Jd1~͏g`N$55lt&&;70x:UaST!0(l03*̎":lUaم%[nPB*c.a0RU3wSg1œRNw'ƒ:lX5.#1F!ۥ}"b?ZRdJ_!ltۥN{E~*_=o#ˇjHNm B(8sUH/.^vB& $7_o2 RI2]Jt I1{cϟ4v~ڤLf0LϜdN.#-6Ԫ:?5w^4 i%9HNuaL2fyAgYjs,scX +ʱL樵YR꤇ )&<^^1aڵǴZe J#K(4A@ͼsz{AL~{񜤯 t$X~mdxx3?cO^ſ};{#/nŻ|%i ~_u?b.k+g ^F';#?=zN{nם3ΆFy0k2J7n-$M* 7ĵ8Uf^>L Hpdjw(+MvyDZ{?Qohgώ|RՓxɥptSTNPyӻD==FYR/0զ2 &Fa wk~l7hÒVʪCtL qFKAߌjH\KZѕ4iDdǮB Q,iDQd +%ʕ%-[PdSt4@Jboc$74ajNV:QR%!Q6WIe;mV6I{ydM۴lL{S);%3qCCl;Ů~,RCvN1BǹߎqUe6P²^gJՏX#oEe2Iamgm'U^Af ISA*wF;yCLYP؂b1\No k +k݆f9QD8E*oX"X,(p{҆(~&m9yڞ)4H)ҶF}ayֽ\ٌ.`v[f4jeV.?Z-,(񝈐%0w`_լ՜?&r l;,qjD*0Xd&kjtyF*YYq9Xӥzƣ~T]y_(<JxJ;Did~jB:QQ5!(:6VE夢jBjB:Qe5DJ%:07WOBwRӅh S`c0|06|D㢸A$܁Lz? o"AEKmR5#kvqa;3ۅ!;XDwCOtG ʼױQpq31[ c-g4g:c5q0'Q]^K\j7ὮAߍUkcF?_m,UTדXÓXȓXѓȈדȈhx=Yx=P6xzUII :2^O,y'x*dm]Osp-"q0`눃))$G10bv't>'2=.L4*GdsL<þw{lT::N_ZiEEEq({v;)&Z'hm1C1p֝0w,_ +樕`-,ZZtE˯u͊VP;]K@Ec>R sp SFp&a;3HMM]=*g/XBG +}\N+a,PhAzyE>j:`jg4ְ.rwhw۰wV YDH#ܲSH[v`e6|&%`n⃴`h1_ޭϪv4# 7,jA)+c>)7W2犔 Կ rs>~H&͌{qj %uUK7m'Lz<FhMY6X>V4&E=2|1c |&>nK2 -.BwQ+z;ocLooS1]&ӎݾ-!7M/ ƛ~/"~ptgB={~~궻YgJ|7P{Dߝa4_w& K~&̈ΊY{жPw0,]~X7 z(T,-Ѐܗx9Ot5 ;v_эT8:Va^O4yKKν#F شP j_6jugA$(5蔇 3uµ>GE?>yM,5D}18MӃl/m& +u XPW bVT Ep-Fn ޖn#L1ko+ku4m =ZNx<6Kϯ#H>~,YF,4Y(Sæ*zH~##EYwT#ބo]{zGa81yf6BPٮ~=Uhj7)*wb A7,>d5GJO8 s=8p׃e*ĝ0 gO4p9 F?gs`zZ:<= \"_+/0mYm2>Mтo^؆1f];?Y킥`ˡ=f%#L^сގs2qx84z5bSW8/ l_͂ԾP+x1npbZP~?Ǿθ S7A{C1xU8pBOf|WLxz: _ YDeEۘ6eIEo21zVB?ݛչgU lz{\2.x-_hK@E8 +'&]1 '%Go5 + FtgAVq עB8R}s0w dw)wM0 ga˒, Loh ׯ}54p0I6a]PsDom^I6jvj;Uq&ZyOaȩijkJ?cHrLy5qyBs @Aq?`s<*f8B+i؄ CĘǿ();J/P j!RzқM*"WW΄ e冶&1?,ݏ>~]C܄u34KcU].S&GM0[xאTРQ^H1Gr33Y$dVy3"0USnwNEdt (])cx9aT\qyƦ:-dl`h:6^#KpƜצY=',qx#Z f<ӽOIVxL,<2Ƕw +T+!fp3-z01G#lOx P H(RM}z=T y:2ѼU?wd{e!z-^-S}> [ؾ}I[vmxdM]%V_~:шf;X&6e,:#*1n`yHQ~9FOpAVah<5-ň~ŊavR^KDs.z#!]HQ1[ hsek j)ʎw ݂eU-MRvNd8fXR_bCь{/_bIPQ$٣5W/_Ѭ˰/^~‹HՋ#./&oo$oL۾!zd +XWotXOo4ZON[N$q +(ZǰuijG5k46Mi4J$f狱Տ!ns2͛ebo#JI@GNo#4XA]ƋzTv 4pjjqb=X{Xi͋α|n/༶)<K)_M$E_ B=.qdN }(*(]c~FO˔ő-UIMSa/#޺-0T[H,R"m2@JRNHpMLH6ɮ%X6f(59g.zN*C"n=6pm. ;y0laLo\?/qBxhPJޗ cTfa5/MtHUi?_ց[q[rDLƯ|}[ ?':C݇9=FM gDHYF#QZA;73y6N})J!Bmvh&R娌]XKm6|ԣ|鼪J PN㳗r|fhY5oAEj>4 +i;>C@MxAET_0-i{̼i:$d.K;7I2 +.KkX0֫LjgYEx:\-3b;Ł9Ilڮ]wv?b;_֭t5[~(3065xOŔ`^ʼnAoC[Pl\E .~&Ğ314Z]xxrL[jZb'^Eo1me-qƴdϡmYي~)gy}WwT:SdyEJV:ӭU6|9e_{|,>mtE+LH,muTȴ_U_*C,Wm^kbT] )^z5#j<ϝrCэrδ$Yzm@CĂ׾G*"w׮k|sy&|I=n-ӯ UrT b*<^^Y7p>sږ++-C/ORB`>/]v*خTYK2PbmSuY\|6_vsD.>?8`Ԣ%8**Qb"Ώ׉y;{aLCsb<.O(XCT['ś:Ž9^#{abƛgIFz4i GSr;!ЅmQ 5ܖjӗG&woz/AEUv(euU6r"5z8"4$1 ꎐf 韣68rvB8kNeg_6ฯs.E 5I)N~(~|JU!^.IcOMfuV[,o-WΤ'HRSt`3mz)ڢ,"e'XIU1WxpWAkv=^΁^ŁݎbFk4>ښPj!xz|mA0v;qEIyĦEq38s+2}iI"ȇ8)z.Pde& կo2|xs37Y~ro4Gz/eғs\H\x^ss%.DN@=Q!MLpӍ`)}75nK#q7&8=O28 :Q뱟CWe6 Wckm5a"ا,,RyϷ_)"jqve)rf5JP-i/'Tw&AyQwKyG3j+** \y)sle5M3֗P*DGٹy=n((q#]~` Be^*#WAG<^HIm{^p%=PE<6K ]dTE!C[3vv>!'bdhFwA +|igDf%ŗaJhޤ6 ~~D(e.Bi+Sb&W&[3yÚQ&4Fōgz'EV[w20M b}}BvWrj7Cwctq?'Eo~㼤#Z3mqtљJD/9&Dy+|YP*~%ܟìR,]]>u~hB痒,pU8,p= Py))7ڽZ(=O5jCtnts7pu>ll m6iF/^ڰiW5kz ܯa% CO7tddU`Υ3͇7︄#ܟ@6Gn3MGMGjncI*`AYOx8k2$ҴIpE7"#sjF='㤺RD%G}>Ǚ|N&|:=OmnXX~kG_ZvҲvˮ7"H%8;DŽ< U}%}:WOk^@?;~9Nog/+xocLhܑ)W 8]KD=NhA4#_t^)NLG>(;LE3f[_~u-Hk8!F| uAp=项6 NyY;  p{8ȷ{5 xo+ 6#1~$ir] WQ_a[|Qێ;&MՌj71}a\"ėxPdQE þ3Α[)7=Q|oK؋{Yb^"T0SlG9KlG)\U Z)DH%?|5_;N;i\{,\S,))bwej@]HF޹ 7oh}HƜ7z` )ãu8y[?#?P*L +N.]8>مbNly[degS~l/v);|+xyKWءxkio&xFڤOa8/-9&+0v)rʡJQ[ɊSMxv =/}Rq?1;ZoLWV)v)BO1^"Tђ  n"?`),ZJؗ"~Sw%%Գ~ 7s?DߴW'5-nJ Pj{bgM3ebFk]TŶgX&*5kJvtѰѬnkRk˚qUU~^j&MrjitBU[d:RRu ݂GqxtqL$zCS + =mbI"h;3$BT|68gkJFD1,)eG7|Ӽq%]B4tIKrR| Oqs_<)1q1iCy=: f:sgTj|h /y{~hbR/ߑxyЉ]Sjb1Kgǒ[8MnwhIG! \4#n"sCPrHw4iF(/ӃmjN١WT1e|*yZfkƑ?9MӸx.wd/.<,ȃЍ~OTskz>p[rE vH{eglT$RWGX J]YZVfړ#(ӾG>&f1xtq8T䔛#'f't\h.#Gnܶxwo>3{@sPj[Yp$]n`þ"h(٬B=[F{ˈwo-#޽EĻ7ܟ8)v6Y[fua-jf;g2IΡ 1Vq.8kRA{C9}LMfVTk-5Dn𜵽."_!–}ƻS X/pZ@H!햲ɯ18eYVyk,ˮ-;kgWt9u@ȁئ-c%u!\<ěW,KGlL^khWsBHW^Ȑ$Xs>$}j]wDXyo_.ha:rzly_Yj qoo lĮp^|I[]D71?}EP + / ^n}j9'.,v҃}_c.8k@6P}@|$(=(4LS2lQuӔ{oJe@1t[U P ֢5QxcS_spdt~>88ٱ 3VfOH }7.[}5Lyl5AHvlfn# xn{eɥ9!R&f$8C]_ܞ8u3 NԗO皎[XQ/i)a>"x. p%^bs`׉q͂>9EY7'$oA_Wlnotm5֦b}p´h?4IL4)<).w'I s}RMm^}^j:}5jp{f= ? EV%!yS~5袙A7Lx6 gzjŹF3s_!a +QBc@ +D6)A]uvڰPECI ^a3a_, M^Ͽq,]x& GUcՍ%nFbMa3:?!G?T:Sq + lITj'>p!EY)b$Hk4H;Iu0M?#9+^x9uLE;x5}r$MP/Os3<{ d>&kc5tgl.6;f_&,u-=ñzR^Spx͙3x XmXGU3z3Q Ct,9'gl&Y3Nյ2`vt9P36Kf Ϸ@A&MA 7#Nj_x"I xl G|O3'2m?YOyugizN7l'm-+(n-UBr7kPxs;\LKA9 705#i#HB#vvw8SC`iˁ8ѹu8WCD1j]kЃɒ;v:fA W蛩C-J 볧EI'zQ'j@ H#24]8A@}6IW?yBO| R*=sYɢda9.%W':}?S3w;\̛8T35;؜3Ot=S $ {{JXTa:NH(l<ꉟ}TH&,0n'l<“T/%HC‘ywf?u{x2CL_R2;Nlfl=w1yd̅Ʀ nb< -1YIos/!T0cTct)sfj}X8E\C/i 3h 6}>ZΏ>G_;d(TPy\gkјiuދT)yHf+$TsCL9愺4͘K +€S4~Dyi5aR_0GaBVILA՜YQW ?1.6(?hx…L Ks`z=Y9FI,%2;OʐM.:a_~:JI-w!?SB'SXDcH:ZyyRҙrƼ˅Ú3'$6ZTB $3)TCoqOOuo`J,ez^r!9)N$+/&ZbU5YhML) D34smG7 璀n9`Qq|#I^3Լo*V 6p4T?$b>lm7^(&N'MP=ɛ6B1h/n,5'r˚U#GĒpFPvT($ H$7}L4E?:2mS$E7Ds*i!3ͩV"w=i $HJKٓP;78z-6k-H< +GM|*BGYʵ@Rv%W:}!)eh&* b`@pXrR Qy0&(1H2gd2nTB_:'+ G·܍ B#q29\b1':Ω1^+9ld9:9o%z@9r%ʯ}x^Q@AB=l%Lsi+ ]sf`1JRsr2{slmQ=F*nI'd젿0+XLc V5M4ei=oQkըTq]ӅC1mҧ-J.#ea*Y݋Eɾ8ΈeO`W* AIkE+cC)VK*ωs1j0$9x ͉ & qI&fM7g8ĢfΤ,g)RG\o!Y0Y2ط)4Vjb04Kn![c-pBίK!;.BI7reF. 18y. .rxOc)F&pi;ZћV.zxCn@wc:{Np]RbXB|Myh\#5:}̔&z  +0DԗV"y[a0c/η[$_=q:w1yMK'\g6p3聛IG`/NG;3FY:t|b"MGN'*FlG Ra5o'Xd3+kf6l$IN_3nNӃx6-Tе 78/E?0 d)a 5m Vw2X:j6e2H&"Z*|$}(nxAI`'~" +A2.㇫u`WD2+iyjY[QV\G2|:5~Ռ0s-@UF_Y+?*Ιj딶_4bK.+zjN@" b"cüo&e!gyPM:,G ˪X_ +%*K,'K4% *2ҤnRa` +(/3+/_F-wZgUīS6^53"ѐm:*0ԬzBBSI>.>0P%B$'V^*GDӄ [#zMݻ2X1ީ6ɾGbTS:Bsb),%Q嘺S.PMF-Iy_wag%b56ScE Hf3> 6GfC@2X>-FkPli`*1L 0#I_z0irs4쒨`Yu-,-0XiMc.m5r0u xv +վbsv 9Gq2ܡ~ + p{kL)L:ڤmр)~R&@?#[E;]~`,;H׋wP*4̓U=" +Y!$m #+r;%hjdA3%/B+$oЃiFg:6Ħf +9bz<X&L$3Αah _ʥN56қ3?,XD#%gLuUllyC>N|8+MC#O}GLg`#h#/O[0ě[.w VbHT2JCp\(28:0_p;5>ѹgЇJ&160 m@cC  yXYlMy@GX Dh t`̏i v׉8'+>!pXzQ^w\@i&t#2]kd!wH95%oa@ *ئ a~Qs=J ;ER?/oR{j"un̯xGglJK]"UL; f̫||F#aeއi7GbK.E0okSU`j`Tǧ{͂ѝtc);Yp9@3*杅^~k>)t TO#*S'.7/C:>Q8O2#^+gNOXFk|*ofpUJFf@bw@mL)0SI3=V=XJw@,Ϻ8MeK\</\k#Vr@0Z0Id. # +;Rz6t+qI z>fMςb`c1\+JX*ǘ]4?^YG'glGaѣ +?%(2)/xKxk$r Iߛ$r艽"oA }S8o!Wei/B{MNa"fz7I)bq8_' $p,>?:k I96fp՜>k`43>Y|CPަ%KɏJWrx=Or,|n:X=es>⣺[}M$dD}Y kb(cAfl_}EP*S:u٫fD,!Ihn#}zh7=5@7@4KݐQ՘1kjP +9ᰚ{k3Y / R68yDxwgXq2]NROC$zC&a?ܭ~CK31 =XYO3g")3v4Hsi9`U0$Js^1|Uu$9xFNs"S{ +>J l񁤤Xz $tY㍗وӋe>˘U^漇"(]69DϜWzTIek'i@,.vpJhH@C;8MQ*޽"!=zG{T oV 2ܱ5Q_R, 2CW:v].@ gQ4_!Cuޜzp&wo_$U_PwX.+b7p:e,4$CpjI|S,PjDܓ-m"1Up2ZZʄ@b- +Vw4D)PJ$`ߍ ;׸ߥqÿ^.€Ebv%N{ہ,g.5j;}xD=2Qe=C2!87E>R~Jx`vƒd_H|9plLNrn0>}U(mTrE0(^̴h?w +]q2b:㴖"߼Q C2xJki-YVbz;sRvqU$w:u l~F)pktgu}Pg^'I,!xr@et`'i1@+9,F(U-[*OPF +%{ -m=f5B3My٥!ڪ9"ߛ>$ ltʪcͧ9mr)L\JFLv-sĵEÀ?|pR_|^ +j5ehYu"b4li(/|]S.,v\x!|Ɗej76{sj$IyE #9H<,%v [ElEaTv~bȿ`Hd(wfRvc#=A# s +QQ$27M\QU^\t$<;Dk\:wCSEd{QįgsWDB]>hIpXIRpLxV8Zbըzan¸ }a:߬xln;_sRHO VCWƃp#tLj9f,@pQK\ 4=߳cv }sk|68uEt,SmN ҫZ%W\%Sz,55[K.\"|̦P5݀{{o|YPT5GBtf!m>0kf0GbT"zf^={fJdwd12{Ž?lf%c!RqOYm9QcQXҁ],у[!~xm-}M^Xݒ{R 59tq +Ȕ"QOj37t¾{S ]pA,+R}Dq[LH dƺ;~4*sI.a2}"rU>Iԟo7 q_#N eM+F$S+'ۓi!ǁ5Wc.ً@Po.b.|4vD\/! (X$~"Ύ.b1 +2x2.Д E8,.r} R7 h76KPBO-Mp!1:ʉ#I- վ =b<,h`KYMf+s8h*]+3RJ|AE":K,L0mTtbq g8o`Tl +,V$ [3$ Q`{Ay~NZs/ _C,_[Dz/DPJ"!\g +b|NM2]ʉ0;L84bk a+3BPؿRd[6[;>Ax +x!6emac=9ཁ cO xIVS.غ{p= +WTs7w' x{ +E[p K.Xs'~b)J7q(2eXXG߇>B?ۉuuXQ{c;ʥyBXȫŬ\ 3^wNAG7 pR)ĊLP3'zfxJq 7U,W?slu2dQ*mWCҌ(y#a"txjyGܲ62qi, m>FW EѭG'1dQssWBOb ޜ7։ {&u`j‚U yն_NyN+/6ɖ|G;)*pqՇФEqP,q^Ze")mHP&$zX"1pwnEۭ'm}Qc7YQ,?EV5Y4t:~OfxLm"0ف"OD/@R@R qJJI>>(-9?'ϲ9Q\0B=(4'Uhĝ"D]BeG_NW|A0;,T4)4,cS0H֥YRi ۇ(&RłjH=tN2=XmEXϲNl%ʊsP@Hd)Q +Z1BhfLVgi?x*J#9$}#"ҧC@ DTU^KF&",:,g_ NR$F!nnU*{Ս%'bPVYd-JKxIXDiLO's'Ii?weiѦJԷ;KPFmNh1HIq͉r!7!`e*d_3v<\N+=`nIHtDzp qN!9Wc \,y W)q/xX߁=BGy~5!:ٞ W %ҿ#8Pr5xW\,No #5|QS`b.^ŚohHeLNj|[Gz[T%)TSU3oH.5tQkΜIӧdU +0StTi9D8+|M<_o +yYk4b0qiWCͨoG] XTt]N RB,uSsFwӹ̪-v+qʪcC0KP}:06> 'Q +--ؠH%+eIUC}8p@!#9 %1⁜?IE* "VfG,Pf^!AS,^H9 +L,RB+e !|HZ ӧxJ&`ʓxB8KK`fT89L-f׃A3=CW\f '̩]ϵ +JI܍ڟ:QHmpŚA6e(ڀSF灤GQ=iBh@ \ARQCd,"sƗϞiY:4OաY/:4D6,ɶX|-'huhޜ6L:4 %leEVrdJL[T,*Ѽ]z5+1 +Ig#Sb'. |Nb"IQ3@.6'd_]E]|j,X +D~j6DP@BpJFԴ ;!i|uX$sAycwE,YbSBomoef?w%k@d/R9dS>_(4vJXFDA 峂4 4V5s4@W&o4S:08RYѩ&M3jlMc~Uނ;>=WZUius^a3M  +PZsa/k %av琺=I pb/y_}=Bz\]œCW4^J~dc̃%L +la +:ǧWpgø!7U9(?<ܛo:Q&'R&`҇ >)SGŐq NVD̛,^7VfV@S\y;:Lj>D`ԏc8eʑ"S*؅jB5i^.\:Xj Vh%ynՃ[Dg\3v)+5,T'f"[+WLeiR$ HsFW&pUrۘ93an<:) kNyʪ$(g˥Ǫ<H,ZKd۸24rO&Jiّ>]p}bPJl´nK`\6h>9QY5V ց7uf-&/VfeR5*Db8Dˋԭ8H<>;av2Vٚ\fH`/vBݚhKBa/9a;t:b%L9SI-m D ]J G!R0Zv2i )mǍU2eQ%IȐz")6Y6s5R" + ^$"?!gDW byJcep^HR4FԉѲ(nc( UQmnnptIROoJmٶɮK /^#b$= HU)PKᔶBz>V 1hK>Ju6L/FcBL7ꖱr88&pa>TެT< b7XL%˚͜)\i.QԲM5IJijᬔX0^^"$uv] .r~5rhWvT-f&bUi.*Kh3 N8 N)|rq- p|Mp - DUaưF,t!Nwh}ñ, A?w jıl&{6NCmM'9|N Jf=ULBQԜ8uthx WLqՆ(3q9N +V§0P_ +@5NMZіY:BS3c KL`r(R9qg&XgkYxZmfZr0pаM% 8qqh$VmP/JhDm +űc4NUEƩKq%|e=>gGfSy>rFI0H %KᶝɅR.yZ,1EQgI(`O!\%=Y}k$әfpKeKGB3sDPln<d=Fi{ }v:x!\Y#]Z9Ǩ3ÑX+ѥV8j,u| +^ axVN82 |)V.7W)ݵ\NUy!"T\"6µ?wIBVyAMcC\DB}N9aq>:9(3ܖ"R2ꁱ-6Ahe]kRn|֨!-ڀ3/oQF5DP 8T[`+jI+K|4FUwH +dVRZ~蚲 .-:u*Cr̻Ϋ,.Н~M2wܷsO7α^-i6]ZKژZ.ʹ_(FDCTw{I.Q*8KNeGWQ*2oU_wQ9gZ$JR{f"aՠQqR-^B]xaHPa\Ӱƺ6jo?͛]@g*  +@}4c4ȇdkI!hm"\^ 8>C=νᾭFKc<1"tZk4}WBGsVі Z FHVg/'nKطbi`ؤE5ҟ*:/*fgXD1U*` aVw΂='`D8࿮LE?ug]~U>z:5ku֛߻=7@A{T[(h 9ѲK7hNٷ ÈO2j6u\:Еފ@~P~uj}%,?֝MxYg/][K]~^3*Sm$2H{G>O\vqh+p3DWue4eyJ]b;m(4~DB;g ڀGtwCwCSO'yjЌFbhW'b/Ymjj*D"jyۉ"0{4 zt=h"֋u3 Ed깖>7/C@|8u5Rj۔MmR։]Ɣ#.hэ 97= ׷FGc 9\߳sWZ|x}ťWDf7g?W(+jL\HUPe!2e˴_9ԙi%y6I)rT[6lϵa%Kad6̗a2w6|9feN, kIyusDΛ_&uFӜFyR)vE4ʫDZn҄P=I eb5=OY.AYp%4Qa3<;qΥQ75r؛{Z)KĶFVśy Jy2;"o)G :s , ,7{֜3Zb e߅ް:fut=rW=$=%p !C_2n&ͽW1^%}W.z ~| Z=J'߇]XD]Xg9>];a4P+ݛ) +~y=wLT4{X"xmRr澟})! = CĀWC>@emut/V +2aΛdžBlQ +F2~e3a?*up]8q,³" +@(Js+ = Pc8²YL5|vg'R)kیS9;#s`Pbzi%o9¼WB1\9m/| =z4=>L}w(3˅oTǠO*-Z12"ۈR>+w+'Dv¯0 +xQXq=Hŝ' ;-ΡcCHftI~ҲVN+ӪyZ)8?:L\>?Eke3IeⷅbҌc:&zٜsnlȬvx?9R)𴶀eT=K:RgP֔<I>F=g-L 1lH2`+@9^sw%h^K|c Kˎ^7*}7] Yss> &ʪ}ea-WݾJzfͥJ|3K9{Q)sԬg^>\~/|/MVg Kp{_F%t>>L(> >:پhmiBORI5zjgPW*]P PoO+s埱W4?r7>RmB\sof/P15c/ER1шqA*Ѿ "ĺ}fϼaU1H't0L +AM%4"9 #d]\2h-t%PlA$$Tc/Dѷ4JcPwFjT bt/e+ Gohn5}rg$L6z(B,J) M |~V=;:YXO=-p?cUg ~+g CRD?/u14w.wB% ]hMPy|ߧ}??90 +G%pHj]srǕ@4EqSGqDO=n{B=\d9 %?Qσp½v IgaLFk!T h9ILD6)>WHҤ4$*NMcBhrF6{_){,? S-ZB| Zk06~kcڭ;'Xihk1/@;H&i)(y@^IGL@+9ؙ5tfW3d?%IC9nC\P EC9#KIOm~(-n gOʒv֬&97WT[CCN$s5-ʤ:l3Z]rGu h}w*v*o*7.웨qRwҿB8Kzu:F[X8.*i6=Ё<%]ߟ6htWPAyWnhGPQk_S-,rs{4#ps}gߠ_f= Rhxf\q_?Dx0g,~[gƿ)ggasmj2Τ7H|4Pt1$LCٽ q5?fz~M}b=o\hoxW^s)\~^ؗ^ؗ^ x>|x^W%[l{zfƚP*f$:fz64e5w]uh4.AG֪9V% >cM󚳓&->n쾛B_xء/Y,/R nllJUYNoqGE(jh^kԪpZާmQ&Ӄ[71)uŷ!ڗ,ݠ+gM"=|&ǡO"@YPj^K,\L(pfWeM["Ƶ%"kDLq퉺$thJUס`z_1>`<}1ܙ`c M8lۄG1Q5'%)R|s')W!RFͽ~TskjП/T lqAXu>u Vi24%k7q[8Nr򜂤x + ] |4J$CĕbCƗH?a`58ȉHlʉ7CvۨT}H6 \wkFGނ)6ljԆ!)j5SMݠ-!˸{YtyJ~3+Bdb:)ycDɃl:.\ LwK™ă;݅+ ă7;kc6u3 XN7Z!u, .LmUqYKsJM/O: >`xSMVT ;m8љ;'?ok[Ϫ`Џߦ_c8x+A +qG/jY^2TM0P, +G|gsz@tct͵H'r!~I]kROtf,1 >l>DqYթ F9ph71yǤ *ѽCF#\閬c +˾ >Un}|hMQ'0D 54B;bW9o +oS_Qߝ4l^=cށ{$R5h^R +wt[t䒜/4*v2,^^fi2-K.ASC|O倣\D~ lM~v+K88!' zŋSYP% d @ٛn=AL:dU;}h{q5e((nTn˹>| JI\M֩jb+Ԃqyl".A'yDL^ ~\lB `)J3qk% )zRrm">ʁf4wW.ʢc\cE 4HU[Jz.7DYi  .2&X08HT-1Fb] Ĝ=scWxŌ r.6l7KئJȆ6lS-N__;l?*?WPJo o=ȤzIsw3TzP$f&P"@L ,i)G 0oF .;!`itD +0^#&UA, %NAX8k +d$g$$;] lAՐkL>Rܞ "S¯!0ۅz8~n̔/3751]*,8y +Ѡ롫ߥ^2JYc~_1>cIS,|组^\7c-X+?p/D6k,CWL X 0 +Z[YZ7خ$g4yp%XC]̞*\[p \cߋ6]pM^N?,UECɪ996mF7~C8VZ椥^9%FAd ]G,F\θ3t&=}ap;n_qOܲz9na +*6T'(x_ۏ$[ 6xRynN0n$Ƥ(EbSkPVW6 Q.2(R'm.)v1[vU,&^V +-90SK{a͢I&dt&l$lC =z +txjHđ*DnHŻ=QOXK3 넗Ght kb&zEj5**Rt(U$ G~)a@\U1覒?I8$ 햮U_5a>KXω*\٢_`ZqMEZ +2Y $FXo2ؙ~cOP>M'f`'qfIKIkD5 "`&pֽDZN[Ez#A $K5u(jI Z !ښ[? 1t]%[0Ket0uخJ# +Pkj5`Ҟ^/`>o%0C$fl +iC؆fEEXwx$?iv}3wu*9`Eh.ĻH PG .Mnm΢#]1b4@h,ЌsG FY/W?q! Bs>cDn'KOvA:?{G~c/;sInH'ۘ>`i6v•'pa룢atgFDI .LR$5QIz~wtQb1_!CBw9YH &{bdIGCϺُݺȣn/wۺ1ɖm!]ڻ}b:څ?xJ&F6rNe)@n7,tpZn_+?d^3kv){$Yb w@wmLii/eZ(ewn2VXaeBJ/Y;R2X(6aoBfР[u1!9ȍj&{WLr|vGm)-y&ǽq.3F7xN)Fm7a??:gn+Ldfbtk%[t]L`g׻9@*o2\/B^Z/9Bwܛr v| ^|*\^,[Ē(ޒ2[$RkK5GK9nɡV[uhK"Ch4$Km3mdLіF?̤4G1L(ۓ࿒輺][lcbN?$7"2L2K` -逊`: , +<><t:.hȴl4eZL$&~Zudhw;D"H Vˇ]x)qD&H2Zx4EkRwKRmYʈCi8uCB{hom̟~2F4 ?У)^Ɵ,a^^l.ۍoXSY}oxW8YڑuYw jM3Mz9<н/ݼ  rc?Sw&]yd\/G[j P GP +5>v 3Lp +"z"u@X9Z[m i7[pW*I2M3Ku ^ď+Ped Cv +Rt0tXp9]g +EbT ORA>.bJ 4d_|Pn-Lv[0K߉1qB;eqN&ߏpiNi c&ft:a0(b1Qoz'ʒ5qH."6?TrqXopXgN_ZT展FUƀx CMcBۋ5’T6Ǜi Dz@&t t= 7/u<h-\M)1pFZLFNY1Hl3%K6\EM3F12W"^gJq1_ՂSX'i>UR{p:YYC"! +։->,T=q':ɄONg0͊$mf 3G8@CuPZ7+5M5.9(1?76z<=+,SwQ$ wV<\LRI="^cz.y<Ʃ +de tgs[љ]N(\N\njv`DWf`)0$N]ŝxJ6=YQ5gkiizǒmߘ@7@Յ >׀Ղ^6׏i߮OUfڟcR2sx0k!K +W,th{rs=a't6;ܘ_{Ʈ(_w;{x^eb%UVʽ +uX +FH 1'>{I%hfp˄OFIz0v[4Rpt* HߙJ)Iʖ}£U&!EW, +N&܄dumledemm!#<>A/$WO laҌJNx'O'L;0-<쪵hWR>IO/$rXaRR6BBJWLbrgk1.nM-t\Y~ ͹]`ssZx,bcJw)zʦ(wdWjY,'jŕĪDNToMVLu9A"+[kWxg__%{_gՊeU{??tɇZA ++j&)҆VkyKqުSd!zQgxD]KBҤzU}3I"j[ˇZq9C`? Ou|꺘*!)}Z8kRu$ս%X T}hzw%>|P+|WśC +Z- )8jb2RsjpNv|11VS+n`>@]S+??o>5|Jo0LY9QlL+sS]8-xClXFRwꈰ 6J *zv‹ĨD'sNe;}T[\"VJj|5NYdVXmS"MRż۶on}S9.wM3u*vI;eEu%>gVC)+CχNuŘ,r^FľXTΩZ11 ξT웊96tG+}TttQѝ?jZGuƮH{bBVĜPrV9Q+jwǤ(q^: {+r+3l7AG7YTXT +<ΡPm?z,?bO%[X>Ԋ˕|.1VX';jN+FAvBp? N-K%>h4q;.9foDL.qwhIS=:[>idggSW_qˏZqw^ΏZ Rxt4v /!g""- ~hX6|ML,!LeRg$,Y\%3ٮO4G})[͝&~qB}~J:P~N6w^it\U@U[; QnCiK=5U( +EVf'j{Zk1UƵ:Yݎo[4'l+E3w"p?C2Ҽb$d}, i舨/! i-tͺx._W7z_jdt0Ur6k-EjD~{2ܦK܂\n".p '"do91rKz1}vQ,Vq%N8bsh4_3v`WXq_{EV ;޽J!+7`Й4B'\  yd/iJ:ᰯ҅ΨiTV;Dvd,lzLI䲑X\z[;%|raȸV8|xiq#1*Dj.'%?%UR3Dm\nA౰6Vlt3z~kgŸ lgԂ [Zg*.[D`G<`֋fRҕ?:.,8Mj͛%#J?u[(ߵ-b]/̎e$%rY8NHæ逬6W4uźX2q]S*aZ*q+u='N -@xp쮨v>iwhs*/HRo u܍@qTLb"#Ljȵdl]i>L"_X44hi>l`2lh5FaXtjq;tflKpWecB,LK\\*cSI-dŏmR!T*$f4xf8 8bS@Bw(ѻQ%PǰBUZ 5=EZ18YyQ9?{O(Ono>^&݈-az`fNo=JU#˾w%0}6=\әcn}W"}Kb_Mޜ}`ӱa> -dPԹ&Ҙ]BAǖn!BXԁa!WX>T׈5@~s{Q,q\1'p8! 򍀋37D^}RSx4 &afƑLDgyi 1 $&=J̈=Q0]⭽+ W~'Ap?K0,cJW'VZ/&:|\#akӦ;HhH$)(h^Dh4K]`q!Qݥӧ-)]n3-AQ(|z,u (RϥB|^vot`˒'-ypcREv׷\E*wk_IyI&oo52OK.qK63KGMEM)n0ʍ3Ytf"6}pvMƌ(Fț7YrLNL'C[a٢x}`~k3{ "j_ƥy'DEt# v,n&D7RU.Vh;mbRa=*g3`;5BL ;ˆ, +B$J:@`u llpl5xTQVNI5p?|n{V\#I}6Zŋ.kYkZ9کאs1.0 |؞! Rx"q*WWE2Z +#)(0i" (S{?BRVt~!hVL>$R7 +i2-R{뾝b0-GPjC '7ƣ~CJ?jMZ4y<ӛ,bsR3~-SWIffdLߕ QRw1:ww څl`I^wI0 +M(O""n]k<9O7NUSE+`:(^?W1zz7z-38:we1sGǶO(eAtnܐ40=g Kd'?q󜈰XX.W2͒L/:S=XqG}Mʏ&Hzݡ,TbIft+&07ij.Ў19VTWOAļ;`O*ˢg`_!ll \ZIe=BV Q<?,H*"Tht5cW%q@C#EI ң 0ᮢJ ;MǀOC?o )mBQ),Q#;aVbB`]|9MRPC!*K"q@-rJ1ۭnEB׋/hN-'x(푸 7sNc]ε5uhܓ Ÿ #j斻k3H𾸱Q|=bÓY} :Ļy\E$\Acj&I1(qqf<_#voz"a}% s\0d<%cPt{^͝KhE&n, 3ϦQ%&$0Z{ti<0ra]a$2L{Exk1g0IpNiEUbWjk61?4qO G`zN0H G*"Ts@&I<sI2݃)Yk#Z9X1 $Ug ]{筡C# +~Nz'6,QI"#I`Ӗ3DN]qlg'O̢C"~t@5]Ԍ} H @+~@7Gfg4^gd}~ET3ǹ{4Kyƛʒfh(L-xGcUz,GqjCr-q%[f3 oZQ#n,٥w+O?Ssb_NgC5ſNwawJ1i0_ZɿÆʆ3w|%Ohq)3 ڰiJ42}n=||cRr! }~lٖ#wϹ&zpo*wrtNM-72Z?G/qL-x;њ^zA?t~bϹ ѡ mh.Pƺԑb~1BW|IC^hTkwLO{c9Q#܌W֮F7{4{F(":{#=zh +BO>!o4g_9Tc-˩&CS|4~7OM#Jt6 ~h$p*VFDÇj4c{Ja!jl*{KKdc$˶e:=2MX;E/+%r) Skr:ÜFǕs&:38WwLtӃ ѰNEޭ3tv(={2M9ZΝAxkjFhm̢o}Q+͕q7zs*#?cLQR#y/.z6n,˗3I2:8^Xuh _NWptl+_7Q..NKJ0{Ļk:Wu\/.3Qβd<JI!,oƒQy q9*oNdN7ϭ)gHّ-d*h=؜Sd1n/ ;hѧcQkLp6;2K8Ï1:0k5.0x=VQW5'lA)ܪF)j8vwG0ؤ;t,)Q^c39g9EyjZ{ԡB~~Η4lo= ܡJ'ا6t8FϕA:/7x-zZ,x?N:Qy_ܓJ9žwt&CqLOPxp<,6]G&x rjhzbRZi\`s5#:/]YWn;1ȟP?q=pԜt=H7y^_''(\|$BOS^Z!E9P0n>I(MA&y~sj@Єw|22ZNp#ݥ9#?+䚕E?@KM4=o/Dr=bpŤ2}r[]NLՒhVv Q,~F _|3-Z&ˣ)$h +󕻷tW/DcQڇڏ *F?j33c ޤ6_A2|X!ڄ?|TÚy6WI2%Hv;Dn1DP7 n%tٗ҃?ujKe>l2 IheVtW_M{*]V|8O7Ʊ|r\8C}rH +8qd0MմQJGTzO=׌#JG,DT%PT#Ļv!e3 ]su}Ti>WrٛLtkwC_󇜷~cR1N-54)Eo*cOo0 IcOK`!8"w7wm ]ݯlНLG*_3%@!!TÅUes6 `28ɂ8 ~N luq"L6CT,\q,- 1 5JE.Tbǫ҇.,fH+bdBָ#ÊJ/hn(O;%H$}%d|)K֥Sjٛ?49dYyD1L1g/"-4RrըΩﺍ^e,MK1{Q$Zx܅+;ܑ澁߾L|[ P:3k9"th֍v%zpǨP]CoYs+!ؠZ׌z$"wsX)۸ʇPhh0d"Ǽy] RLDALkD'21p%0SI~Ou)pa#vK("M~cnlS*nWFqDJ"}18XpN=ùD8#sȢ88.gBIK9u)f,u*-r* Ig%a]Oת@L~507 + *$6M+/~Ku蓑e?(y_ݙ#Mksw|.sߛ{c2t7}o?Pc^ڲ~g#ppI ?<~ųE\ڶZhĉ<ٿ/=ㆍ׿ԿW-=vpyry7꿢ezk΋oڑm+̱}jG!`aT&% F:5%Ϸ>{Vš>+ +z_j澾WXULf7F^[ڪV^/gرڷr[{h}zc< +4.ϊ_V~ѻ{mֻv1e +:%J=Jw* h&5&3qٞoRƤ<^>5 ”M&p,w/q㖉X8Jv$O/-dVd\zd=[:M,G,8$V6(/Yɘzikb)`A5pXe%}jT;䗉DuE=]nt-Tʢ0*$|7x*r.ř l{Z8 -MwVl,\Pžjs#mәG *<ﶈrĵVa$Lg.ӣT? n=̃} '`/36?c 33SK>Jݍ>lV +fl!TTs{Ե8uVX.A^ʯ<~G$c2;MtB@F\rFZfNuP%n}3 +%@+WIK<܉Ĺ?ip2 IT~2`fcornCu:Ou|u^sf_gAD *x s;}{J羗>]?*4V͊J5t *~J6K˕8"$V[=mظS[ F/ QO׌ Z!- ; \Sצ\yf;FwEGmReyАӷ ?I_J)t +gVXƭG׵XGmBWɬ,]pTub`[3pRkC-@bCQUP8C l0c!1~Ao +d,a06:rϯdz11(c\/AfQH>u @EkU b}P_<(FٜU<^><ϴ]k#޽:AZ6! GZaG5p 6Gre I!g^㽜3VM/D3g;5a&jsf">sV&ʛr:GAj}u22>rϼutf5]+w.W+!m$^xWY1N3gx5s[3ΠURo9ZI#BWFVkyMwf\PgxB}|A 9/pjg5}9=zݹZQ1dlկ&E1 ZئY Gŝ)gf{6{ݪqu<;Rղ#V(}t)Mӣ-j"Ù N5~c#\ס:v ]-Ϭ\-pgyk ح)#dI=kavF4b̞e͒+[<L@U=,*tNQJ_5*#?C9o&ι6I땧J*:LԂAE(=`Q۩J_0L<05x&RAWRMR⟽!XJ5I][WmOV23[;TFxޡUetpXy +uyR'o^<5@_'0Ĭ~]\b1 4Iͣ6t_Ʀ0rשQg5P HlqM9l[p]*NӠFR,Vp\yZ\ws@(@rV@eV;b4iЀ@-:ەÉGKNEΰ }` +Ùn$ؤzDKd`7=0ދ,Ш̿Jzz hOV1z??q +CRjj/mO2]CDolzXzHr +HhЃgݎJm=?4Z+_MӚwٴT۔Ew::WGBeTcњ켘*O޼M!6Ú,յ(zYwH)0Nd`GT$ƦuTS +V]6̈0Z ,]mρ"}3= +3=gF-Ҷ֏ 9/Ű}!spq‚-w(O/^|s4y%VdFc]_qU;PcL;V L@#-«cB}O`өnI]3j+[2T d42]PGYaAal v0qBiO3E 1ʸ%ѱа}~'ԺcP$<Û%ٝ뒙Al(-ٷ$2zC>5pk/IueQDb;Dv7 ȟ'g^6g|3™-(CT>Z6K,]/+8J<2[9A p)΄^ "/7sE)qcvQFv4WY0x 4;p8I C =E\P{$gèV8"J<*y%?eT'#ZmTp(TэZj}V31|7uX@X?tE2?((o?EcW[ύ^.3pfxkNS{f|?M/[=˔<tƷVpzb==ŷNi˧=%zC떞#\/˯.]xY,5 qv9nV7_$w>--c!0%b7?(uYĈW]^ ګfZb.տ#N:&VTИ^;5+]ߓUz61޵)>޵ψwԘb%%#1╛SībF+5xq4Mmr_+uiwCǻN-_EmXWwx6DQ {6V 㦩Ƈxu"^JOx9"^Iv>ħ5E)wtsO'Ļ~ƻV'~2c&Ȉ}x׳d lI5zxM9[pz]=Fvx}z.],hKTDK]Dj9ʵ>+>WfXW%CIO/"ZG\0u- R7DBűs& Ol]TԙL\k}L"[0c,j ~N~Z}31-uK<º wGzz]z!1 +~}g5VC(D"J@ iIizwIԿ3ԂL 2tƽߊ-xӮ$2$6'I3KG"v3?@ +Ur$q:/">&ܲL.ZL2&wbk~ߥj|{(7Ӆ'DRRt}7<ċ<$HT&Q6C$a25V-r U^c:BEs%op)$q*|!4u6-g@Є&)GgQnO"ӫpqF;5D,Ce,ͪWMnoj*-gG1;Г8CRHڍr8QV`fu*Y;"F?2c*pF IF0#9wނh#W45RY]xgS]|S}N;x:s^V*#!厏ut/n7f""w76E1D!eETwVgƺKSg^{`8}?)oW7 #n9"A<cf̿5j1xT\ܩʫ[{y8GY8q$x&ǥ +{ئoҟ*ayHsbu9GCLJغ|H {~&X*@q0`?D[ZV} ܡ +s0+` uB@ZV:Cmٙ +u1K 펕L3i}b,ld˅0"gꚄ >3ưWwD -&t+sc{^dJif'w/O1~.c'XwZu~,G 4WX&9g!nZKI-=aMGXWvCFr(l7-&1Ж.}@}͏p1tue7jPF(*g.֛={S 7qmнn/z3N#nr@Dw0͎8 iRaDXC?HJejsVQ˾XB֢hdkfnNJN"csc-s.EtފI|mM5v|nv<͏c plHqK̹aܶ' #dkpΎ|c_(~O2nr7znQvv ri{V-<'n;ff{7* PkELo/b[Cz4OQ4;sH;wqZpH[L ;[!6⍴vHh wg9 X/TE>r:E||CVFG[Q׷?xkox{ӣnOy+LNqXJ ohi e$Jhڿos@k|P =6X(PS҇ߠ x45ޝ|"{؁Iw@༄Y9zș.}"KMIIojYmLka'@\)y+B#"|Vp!_|Ax\⃱`` ^o+84|lcBoyrSlpM[݄uHYӌ R8RQutʁ57z.N8N'\] ?~q)DolqqY*~ ..O^wp՝ÅSs-/H@P@!$nJR ]+е}-tmZ'5s,ۚ>;HϜiyp9ϖ}pۢnzn2dqߖ]9;bfIpܪ՗W7k{u_*`r>gxUe52xZ([#CǮYGsl*%v{V2b>RА'_jn\,ܿĔGӵˎNVzniQNQVf2`{( 2K5jFmp ˎ!:`tTQ_^406<|yL_eB:Z7> _HF};Zv8,Ҩ32bOe#H\jVG,hTSI=wtQ7Ǖǧ/%/EG?j<z"H"(Zx,9#I)xtz(^C@9/O\m%ɿadɧOW#d0zw@ÀV'NtE5cR1`'OlbUb T7![Qů$FoJ(fx4 '#n.0-"ΉqtΊ|4j~k/֏5)NbD1a"*HO_,n#(sHN!C7! kѸJ+OSuyŕV|5[Ym|Fͱ⇪^/~R+~atG0{0=Do9˜sު_G/N,/"vvZᴲ#iY,C?aG)V!B/)w݈,fU#Lv3Œj|'"A@X zCd#zZVm!jձ^E54?z 4iFpNyA59W5}V\>OW}%l>7M3w,t=Ds}tПSG^3ksZѕsEs_>?~tV}1EsZ>-9G GY}}9Js~`K`9a_?s}>9oy,>紿~t߬8]s^nt\H,ι;1JSqεV9o&]GIV|V{/.Tn?sߨ?][u'ϩzTe=OzKNNiy ViXsJ?s=Wt?1[^ltxXs[+k?z?>tqʧa=7z/Wr9?[O>zE?tkkT\O*nt:+괞.z9?bo1ttt{:-ub?;-&\Pg~]Ox'g]Oz#_OK^ZLt,B' ."8nb p]!x+,,fI$q_!\ǡnBp(= &%;@*0K8u">#9d%fx蛐1O["ĩ3,(k\jM6ҊuY7C|`5`3 l 5Br~`>s4_|뉯lKI?ZgF.]&Z3Ɠk񫟣vA +lǫm7o e7N=1H=[Ʀ>x`:ı![FoލF`4nT{[١Ldv^eNbVqf\_vPas#[em6Rt \v>Cseoe"2XoDIє/Xet^.gC&twhz{-ڂsG4^6JY'}$A Aҹ.r3ۺ]ֹJ &v($Lʢ[/Z֪"PbVKE܃\jW*UGdku#][CN>[/ gэJMO\UiZ8::[TPZ\QhZ}-9Pk9%2 ~ѓT7+IrٛIr9a婶$k!evMeԮ}HE.P?=(mUi6c~ߝ0uLC#r\ Ec\W˕}BbEs[#V6^BwQvt4t_uuڤχ I}+q؄hq,'k{jZg{\&q,IɎu1[,oČ-{՘=vM xr,_'G'sˎ"t^.$2YG+g ?d?ZbG(ƐT_8* ѠR$&;SR kd]zAZH IqאƼ$zF!\6}̔[6\n$f#bJ)e 7AImC r3beOfCq%|H#5yXlV TxQy^M)y:|?}2iA4@.(/Ihv&2 O@ԢakT8,ITaJꔲ.xmC?ʝ_cXQ-Ji:P?=A#b~FC[S8x4 +Dg-xfXQhX# 펃znW4Nmy"{ nŷĖ3@8Iu&B(Q)B>`sXC FFb@o +̌^#53&Fp f]qNއ[#ۮ/xA\ a\MNVm֑dA 4M&Zȁ%08; /7EBDzPa8\)?pFq~0;pR _Aeіv/ɦ6a`*-1oo *b=bX1,y ?_02u;_̍gh N)_H6||o/Tf<Ķ} 7/ʑ/}/.€A!_;|9(#E.]|4SBPR_Xl^4蓙dAK4AwPVk0,dl :`hQ,0T.p6CCP]=13Eljd+a:,`xtp'gx;֨GV MSF7 k6'OzՊZe<2\?t lߋx@6ZHqT x&@ +u0B@SHKc1e7<$jcP1բ5F)9'YnXƨWC}67f+1V'yRH*+vUd,UG% ъZM}q3oRIpzPكX9NjDz -Y @:@~` +jQe&HGZ]Xh;}lTGl|,7F]Hs + ;$]a'wf0o|LUΐ+!c0nJ ۱lB6̤6+l,B<_a)5v{:yh24~ut>x.K:P/Qm?D[Ot9&Cׁ;*,ahaP>750>43BaObښPM[u֨AD\*FͧSpQ34eK4qVY z4u#to 9sdð3@쇙ζyp[h,Cta2!Ft@Hͷ E_;bc_fhfj0W (vKdF`5D*#:c_5eTXk!"^&23*&1u 9)MUj6ݽ*?#Mb`xu| +3?mXnWkQAyآ r\Y’tR]@` T\h.`mv z l} WO7# +WG7)Xx$uV٫o6ZwVXtFAfb-ԎL%%Iy_heԚZ~J~yKUO $%7in-x._*}CWJoD.`هƳ˜}slԂJ c^|YiYyphZoszF٪^Y-ܔȪ=p,E.H#@,r@3}yf_+qi|&g,>gq131shhWLѴz  ^S~/Vc^Raܷ F8Ufo;%Zfi!q×@oK'О(z5{O!ۮWӿ5:pn l&< %<%Vp-éլXǚG-:[,&z.v;`Pq9:Ab>3``TD*h U+Ud\(VRWLkzUu,pK"ҬV%ZIjuT;*<JUC̱IUUPQ'ݫ@ +pKDOI孔Eȑ0d<)g5[$ڊR$m.{nOq3;<)S:@ xN{Rob)C!⩨<‡2,/O%kS/<9Q!^{F4EczQZ:T ~y-y(SM"T=`YbAOVQ*ϨPU&~M# ȏ@H!I:JJ9@g}iJQNgyq cުՎ@$QhpY²?|[D~ToGq#naސ$G11dfHL i%ea% [%HP)xزr ^ <8m׉'N~Je묉yJ2aj~1R(%Ru<8xT$ `'\a 4"X<2ǙhD'5ZxұyQR dJLi) 0ftgJ1%C +:$[7-I')آ{bI8y/s5Tͺ +ff[w$UF{TY VoJ[ġx *͆MVƓ44$W|<Ϝ'Zxҿx8 OZyR'=/O"Sb$ۉO|tSQ@'(aW"KD9)*Q"eHf[y(D#+QZ-DOBWÓ\'F(<|sݟ<=$B8GȍʓpAYBnz+z(CQL{IsI88\OF5k}Rc#\ +_Lƫ'HXN~oDBqv!e?/U Gjڎ3̝bOMqKx+(wkR$䔚' +@=!(nWʁ!W_Qv,8 vLEn\drm 绕Ɂ`ek˱ +J{rrz V`gCHQےRXK0S(D ',C<)ݲo0XSYWޯfS3s_٫UIc&-"Wz +V]0 L: T׸JB-2{ n BnPz4EJ%plV\)XZJBAXK^L<RkQ|XV܏+ą>,|\*ؒe_Z 8։ɞ/ۄþP.Pqbax4$2QƓSO  %GVG qR{n/5'PI#@۬ ~Օ Y(F'7 [0HRf/;]|ٵh ᨭ^$m{{xkȢCZstrwmxwܗ^ 7{n7CTOO|Rd}|G#9#eXwc ^wc$)ɺded0*r)gЂpG7Ug$MT/0!9) Z< a#0hֱXV) aٙYg={vu=g=Ywl  8 DJ,Pڽ?%mY~w?}yw|2]dUDcտ:݃3LRYZE:OOKooaO;/F.Һ ܆^S~Z7V]ЅqdzȭF:5?Y?֨]uGFDo'mړ ##$iBAIXRJly"EpoBkq6 Z߇Q5WZlNljJ>7oPUԹG{ t6zN_OcQdb1?@aMOhHRZ^^ @xA.V: /hä-9,5ʡs/P81Al1 + {,DTw?D"z8 ΁%?8y`~f1N`_ejpho=6 k0oZ^p.hr=GP&|A$\)i|b7 SYz3ҤFd5_X +? +{8wZ@7#U2J=Z+ۓE ?JgG@zNHtt"Jj'fB !iі26xRYChE[un5 +coQ̴vh1;{?R7t*L!&<أn&G[na)xթw>*Tko7U +:RNr\a)V,b Fn4gT<")V/f4;E%6 bͭqMG C3gz[v F'՚#~l7*pCC1X}2gV-ܲ_x1vwPz}ē؊R @rk6LE`Gf#X{!/i_!&un]R$-W2Yv2Z +Eg89m8^Bp [M7 = 6Gy<䭬q^pAV4[m7D%ToGU9QBd:tvT;?\nAnBz0Fr$W +ڎR$Xe`$tHʹ34!, Aql3)Jp[nn'X-#esQ A-Z 8mRCdKϓkSODGR}该k$th CQ9)2z8I?8$չ[P[O D^dOn^~F!%:]aY%?i!|gB؊ۥX +`Yt?oE8N +15t] cVj~1 C *E>Ml1!5 +#{äjzWcA E[V:>tܕ#^x8k]lxygcm\q/.3o \+:\{4&u .qM3% dF0Fn0޻`գN? =Q?b,FCPQAEh;ѰvFo:e͋Uj<{s·\z,U})#(m%A1~*8C[/m}RJt4q +Q^8r}Rgz[UFK9YQO|BHsн0%UC0 +H2;8"X,ⳕV +,p`Wq\%B JD10p6:5q}*3z*- + Wc +E:bK Lb4u@谸 qNl|ER( vx=&1*MAgB1̟,~'8eyT(o#7% Lz_n6"aoi(bTCj=~LnEO<Ť_p1x} Xni@:%єk%># +qrgV8+fѸ1<}1}4g.8˱ [ s~YtUi<}U /{k6><*(DH4u6*+ +"SO@lEpgט!@]cݍW7 ۑ*㥂 "lV%FCAʌn&%deD> 3ܬ:b; f%_1i|$\ofH`)7_WgYb;Ib +fHbr T`H.E3uQS;yvx)v#τBhh<6u8ysfތC̸8S;&fy.x~q3QN' l)}ҽZ-8Q>֪X4`b4dҪǐBx|?K$=?3L + 8%| @.'٬ޓ?Դ<6Dَ~^F HZsW 닋|(*`8%ᙃVqc.6]V;u@8$iC@,j;ISB C^&v~_f-~͛Rlqy[LE ٬k{0ԅWU\F+7צN+#U|f'K)cGBdžY+ 9wrї|#qW_vi Zec__ʅ;F3im#_&qʮ++_Ȼ262yWnR+AIXNX a_|}c򕏎Wf+p|办Ljm"ʦBXJx,Do5[a²FM)3=aMFq˟rMF2NX6CX~|'HXf",/3 ͘pXb_I];aK] _)k+n2֙ɲ]_IR4aYpل凂~현;ip]_ρ\1$|e$r $z _덄%|jN/"vH{Pc,;(h|\:6c]Og,L ^zAj/CE9ќJd+M+H+.W"HFk_WLX~UO5dd3K dLM? ,?hSi|e(dB?_|e<ܟWr|Ut[ۄ[|A _MX>b ^a1 lhh2_=Rʌ\:ay86ʳ&_iLʶK⯎~GpTRoFJ',Ro\:a ,pmKkWXVtʷ3JW:|ec|eeTۄ2k77CX06e, eR6lr\yOX>NE@0-J|F,A)RU9-(0h'+Aq(!MRVzb%HIEKD+ WvU*\RK\JuOL.o/+en|@ZpjJuV^V GrS7+>%Rvٙ4/UCNt&\zԪ ;P%N~k&ETčBrc~.@@Ȥ:8`، "\5\>W1> ˛g^ :ϒ& PZyۑ'y=|QsCZKNڦ?*+5ФĜ"Ua@XV<y`S7V[z$%?:˙${Dڐ5_j|&7a.l0雳āRf($f[@ &5Ae'2BtX>)Ԩ>e 0 b.T\Y&/K/ +A ,ғ"ꨤfgBةe.)Hf׸8'P6҃v_lJaG4-%='waInißC.2 f&D-)e։7"<.u&t:TlP NG$v]L+t|4rk[FaR_FOn: Zp'r ,(9>lu=|y^x1=l +2uNOPuI4}>l5UV.~݁ 91͡CNiX;kLLp'˧$ Ak8w +Y[ kّ k[H8c@hTpE\rN)v%1mF J7 r5T!6"k5&̛z");3R[G Y%ܯ5䤺2Yw- BL%j`Z#YvB%|1B[!ja!_ycQua8\:4ś:_:}\dN`p(d[>{s?{căiy g +뤛v'Eژ&e80N0~/ytq,®.0 ++WRa FqB܅A.\Y) po GɟG^qı1'&+xhܪ}r¯F/{Nߖ_)OԔBp/h~03O36 |I&%Y9bXwWa,GiiHq4KUw)a].1VcElp׳'GW0z]~tm:EeIN(aQ0o@]ӣdj Пv5}C;g9!  B$jqkl';VS8-BKV+ZJGOa + EG]f2 GP+ +*D/T ,)a7M_ xn@P0a[" o l #&|+b-7 ԗR{NmFJk~@Czxz|O^SaGK5H۞:dƏ{ҽ\i^Mx|e2)?f%Y6l̺M# εIcEJLp{8IFއ}qQ;# +|"Z-aALV] +p-PcZGHhç +Wb| S'zj[/:znafr-m7/rMhV?tglӿjBrtMr]))zO_v-E虨rRRR4%T2+Kl]AknIS93TAA[CzܔrA<u<'o|i.Y N-ԣP1=wZ&Q1E<%6<Om+dN1gƆT +r<݆dLd7?J$̌1ѓ x̿ 5Ĵhcx XUd޶2'D9 D i8m02m7NhA | y<16|Jq5F=OWvE&׾鎘ot Ϛރ0Ν|-؍",_8ңiK 9B+ykSS4tS]/*qFd"hEJmYN?+UfR oewi#,5r Ԏ)*pjEխ8Ÿ&rLx-ܩEoll'DmIeR+΃íJ-una(&ǡtQ'ުf&Va9&5P"WÏ*%d +91ԀcTjOLUJ)dl@9@m*nN܎켑M4_L ķCpyP-&+d׳GBQY(h$/aLM,$F"2:+Zj17L]d`wM)("sq=?89qn]Cv b?U 47bMuYiƾ 0 +Bv!- *ӝ)*̢E^vQj9 #U+ыHo&473z3қ^H&Fo">tft!3 %<[H6Kߎ?&Zd,NѷakȕQY.a.j\NXHvڌlvX/#N9UJ͒Zjz:<"L8xCD/hgREQybś ^&SOkPGZ-n7R?K۸:X]W(0BiN(E,a2ѨjJ!p)P*Bi<`eL` #F-f` ,A0U fM0>Fe_f (\[G&ǒ0*!CɆ9^.Ku7^]p-M,RJ;+K&W3Te>rrO,hCK̕^>$|sM!7B,_#fuY#|~#d/bEF^BzuQ],#UץTa))`ѽi8+uM^`ԨuM-Ou l^mh M6ăGG-ϕNf3a,-ϱTysebv;,Fm1#rG./g>$2W&IF(_1۩s_!v!] Z08hû=.)Fh))qE{^J "sf9SgRTj4Cn^VA+"4 m +-4Ť^=} MpYGO;, }X040"1UJq#&*O^U% Q`A,HPAkzA4ĩ)W*!f~!ay%d垤 +7d2>+XL.Sx7[#vյ1lQ}Η.s'㦁Y +9 3s✮7qXts*YŻͬHfhb*an{#J%'Rȵ٫\9Ghu[D s8шUF#eD  n*|"G/ߞMT6#6n\}p|D}8̭s[o>%Eu-^Y .E_w]s{j:ד\b"MG׏/u~-VVHu}/@Wxv,ʴ*iSvJ?2hJUꄾlv©Y]{q2@ES~Pza}Gq׮KJYKu+e,RVRJYKŕBJ(e>i,PDI{w+ /H8.܎?EenEݠ1Fݼ]GL>BOo2`\,}G+,(hK̛05Kj<ca..Unew / ׷ qn\L/+U%F7xq& i79cׁ֞E{£ /&{$.bXav5YL h"#)bQJH+2enk{ivnLZZRaYuGn.@ENmNlh:A6c1t!CWrs9NO]F/tYhWF/rg<-IW0al8fèed?6&CӺ±P MJH03˫h݀ۤ>XGb<=Sz*f=5SO"=5MOT Zܾ} E:No.+Rdr$t"b8&/dznz8Hk9@CAPEpk ^XCPDd$-AEBHU:I+҄1ܺ؎]8a_t 7@bG}GL'gB~U2,\zʭ1S,A)nu|ڿ6D/֐ M},C<\/xSkchYDj_*6S|k=qUU4-LA6:qmlN;LdYh,[ESLRvFVkFj$i4PJR?iw9wߛ?tR(}w=;wd$LP/`a |%H{2DPXU bSfOF ,ĹɾW/_td8lmԎ㺶#85E{BB,l 5jI9n~SV_{N#;#;Rp)-m $ֳI$rX¹FjOd # +ܪzG4ZϨi;ވv G ug.3:HX>8E3z.L00ʮ[.&M2c27 cIځ[/ N}N0Ntb::n,si tM zJZA"`9k v>q5^ vh>֊ mzKٍD8Ì1L"KHf;/!ǦɲU$[]Rg .v3ΉQ݆JPIڡ҈f$ڌz=t۵xݳ"o#86gjo$%DF~faH|ю1Ϛ8XVˆYҠat:;Q$,%Zi, ٚ=O3בRe\&pɖQVMo&BˉKʱ-cldxJa 'F0!%,r[x˷p̗/,Ù 6Az1W9 #˦ 7 (#;xG\(w@k^&B'M(ruh<_I4WN QWi7סQX W^6H֔Ġ&"h%.t(?EA @]>6u &LiF Ie]K -E(30y ګ(pAz%ی3I2=\AtDR,L |V+oYl>K6݉|VⳚLa!SMYm F>4{kf)u!%YgI34%YmeY6dZ|VwT6j¾&g5Z}:Q6ϲ0`,[h"'}Vge83YR.Jgu[|V>{L>+V|VI&l gݒ2s^Kz)_R/Rx/峺"|VS ` M:Azc8xӰ݃WAuwQD2=ˣYuAx& 7 @ E?,j7}"uȓWK +AXQXNKټܢ0g]\7Ӛ檒7ni.YJdl3Is 24qi.*2"m[5Lgg6!RMG lC;>d!!dkDГ^geYkeJ=F +Ǽ9JC ,T,I@uN:8p3SC5r`S5eȰV2dK2d&Cdµ/^_1@`!eޙ.^ X3K+E/b p8Z3C>cK@(i@ygmMK5i.g@4?&{`E}Bh$LsU~\ϲr|.Y7uK^1{>rd/u.KQK +3ͥR\*݈4KyFdd\w4Oz}j{a\sEC{Vn}*DiZ0LuO[!:} t1P+[rd @oqԢv_@~$poƁޤg;2ޤާ\߄.B؛$I"C1mIRq-JK<*JқfA#(J(Ƀ Uf(EaGﵢ8 ^$r,2 /<[# RF`Ho:,Rw#qK>RW#5V@hC CikLhVh=SG4Q/6,ˇG4Zרe0DJv @v0`vAzo?(R/-Wo`2 D$ Mu QYEw14h,,,XIT7AF(17F p-):2I+/D# + [l~!py9H!<<5) "AAa7iF&oZ)3MA!`Sz7]20% +Fi 飚:9iq+;CRX3 |T)YUDHjk[]>v TV"%|/󦖧ekPJP.d~l͕gY^P'/ÉLGBel!9Do)]{~N\f~p笍ۦx`HCTo3e H8x|0"Ts(FȒ@d93(Lm&9ÙW(-{B/: +mBEOQbL>,|;.Kxt%tKFM1pkol.| H2}!K\pƢs8786 PJ\Ay&k f.|DzKLD풓%$C'[}x;$$BՊ'I EM}2i0ςWT>WD8r ^T[Pw].%mؔan֓Zc^s,Vs`>*˜3wbx]bR;C7,Ϛ;sVwV"ŘU;ˑܭɇB  + QGqg[8Y9la g ]̐iI`DEF;,I@?>lnvwVj٘glܙ܆tg9B;SdE;+0Twfݝ&YBdQn gi(|3>L,Ù;#'ugLw3`JY1wF~);v +wFiӾ$m̜$#gq`d̗ԁ/ށ^ʧ3՟TмC$i:&eƦ Čb{^g3" ̰~ J%!Q+<S**EL#'1˗0b5jjv*q緊!<d=ak"ޥT ERNCŬzYR-GK(6cc DX;ϼ CMP`&MSU-G|iKmhAT]`@J'ᵰ@SES^4CQF F2x[ q4#EXRŰhOLB$ 83E%o; +s3Sr`if 0* 2`&&qY`%%,)|3&3]> gV p gLAc)h%`"ϛ4`vZôo?  X}ᰱs[Q33K3qg;sٻϝ$m̜$#gq`H/41zC?)ʖv\I\K8d[,;YK3~_|ﳦ>|j}H<#?1!U 3y `[A f]*dgKHҋ&tʆ"T>= 7ujKk p:13CVD1> *Q^ !E {Lga10ugQa/ag^)RR"/ARyVkB!OVT"t@Nl4MD SVVFD磇<!!<5z E"6 È 5j$!fȃ3<DLZeMs$ LC|Ԋ|;.KXd G a I +̨2L,ÙQJ N 5V8-jQk1ZZk%j%4jvɊ"iyECy80dSğ1T"¾sSj$,”)jvaRqܙ3ǝ9nqq`fN؁@wa" ;$@{C@*P{, t2*ɜ;s!KbVNa   09w3ǝ9ΜA0e[1` aF>@&`/y ă`Fa0| 2NdT+7.]-<-[A ;IE_SdS/Ywzqփ+[Qѝ]]]*5vbH*5DJ Up=ǩwy8R?VNo3ʶRYwV1TlչqE4`GRI0<⣯ ȣyTvCA4ގo4(*C +F~Bo484y5T NZ6op(a(o4>>Il3t("!,PT?XhzZJ~j h2qjW(7D +8ی.V>0*QxŀVq3ȃjCx=oвy +j&?!J<<~: %'ܔ7zčaQ8btS(E \:[D8 /QҲ.'흾%'Fpbb}UD=@pΗ쫸8UXR@p8Zhց@X@ u lQy0dF>. (^k0V: GRV+y *ς *`?2y!6G cxQ9ܘY{!~J*«ER;7~ノssvn7 v۸33MI-,wk/=C'U>DW6zt\PSFb` +!X`$}i(1Dr,$OI7Xʚ`_&PG}m + bMk<(VEAoEi B1 +DNQND9S!0疦YtNqnNno_&Q!m\j 5& RBHY'VP!DR % +$i<#qta,! csw/ Y~$T}15ea Tm^Ǹ`V_{А QT+Mpg~- KK} bV40#aբ~rܯu~e+jA{eZY-[d+G&$:;y5rm?NyvTRi}j2[ch+结Oknܷ5Rm%nYe\Hp1 +~.?\^s4 yT +@43ېiMp t +EvMGyi݇/Z Lf4Z*)Jyßf dvpG/ +v*$ _k~YVCWw֫k(jn[.\X/ =1(l-E%"GAya<<~7 +[KlvbzC(l-m(l-m"7ɷzvr6vrG[]žlF38Ud Kͨ‚do']l v҂nC;C;Tp pucL z6irXAyiHXz>ŦU;8M[ƭB[Å=m&Π>87ojyBD+|k. &Ml %(AQ`ƀ؊[/ r}r};ѫ7=9/, +ޭ"&j/|LA- qx{&4ãJQi5!"j?} k$mH<|,ݬAں!k) 6x馇fbINQJ"Ҧ"bلY dKH17C5` 8'Fue]؉RI挓ڡ҈f$ڌ)ރ{ O!]+=l'ɌRGkū2I '!c2VZ +#atz } KP~935,'_ g83ڂTau \eUe]q@&52((%QPL&,Jk3_$,bm $% +|J-|H2m>N/FcJyLLfᅂíCYkw)he &Eϟ\{UUi9$"Hd1x&x:(9Uu~!O[2V|VY gg-.t'Yj2}VNe6gY|V7ufQ8ׅ^guSx&&VДgY| +/s|f +kYq>k3S}Vۨ> 8 YV.#NE>,L3X$,bm xcvfYgx}$`Ό|֢>곺Y=JեEҸ vYd##GfR^ʗK⽔/Kȧ8-iT/5oh!6^@-{%r/ޞ +.e<#2=ˣRԲ1l1(tət Xs`Bcn]|L.!L^|.On9袧u "檒7ni.YJdl3Is 24qi.*2"m[5Lgg6!RMG lC;>d!!dkDГ^geYkeJ=F +Ǽ9JC ,T,I@uN:8p3SC5r`S5eȰV2dK2d&Cdµ/^_1@`!eޙ.^ X3K+E/b p8Z3C>cK@(i@ygmMK5i.g@4?&{`E}Bh$LsU~\ϲr|.Y7uK^1{>rd/u.KQK +3ͥR\*݈4KyFdd\w4Oz}j{a\sE[^XYՉ + Q +0LxϗyD(e+G&|9Vva;8~;79l{t`;v9IqVb~#g !Bv$P X]h&Pii2ƵI/Ioa<-݂&l,VI[4߇!}׊J,&=@/@Ӻ'dF_!p,$zHe!f>䲀&`HHU qd*sŚb#B . iGѴvRu~31L0,dܟ + A!8dXV +EzfK1yz+тoZB)DAAY1$gL +W FUxҰ}g~}$dNfEM!K3C2D`!>a!>a%C0Rf4WNVd= vsxZYjIUMDO%L_2_&\ ۸wUMT^0f+ѧ,6Eǻ)4L9p]7x0ǃ9`:v`d̴#+:gڋiT:ڏNzf@RT6U: I<#R5z_eI }v4@WL鑥ܯE:sLpTqKyN' vb'pb'!,8ds<`N|ng},Y(/0!?/.;'Hۮ&g?Sj/[y喭r)CuH֐ll${;%ቂӝO^dIo=3)5=P,{>Q^ +%=wYD:(v:pw;wFyBL%׶"\60\0b݊p1ɦeb7(0Ul=([VlVV^-6PVG}k>XeC),& i%>w&9_ +&D:#R*mi{^>`3kED[κsl.Kc "&e܆Z 5W3BmVDM8498 )7-} Z~v9n*mzZ) [Xf\ךf6(jK6RQ)҃s؏o}JM0녥ta.^XF хK^!}u"JEQr뵠P)(^B(^Bl`doCY+Jn%g;r0t:xaL㕊q"pE2 򊂋f6fk^n^Jbu+PU2P]<<""Ձ`M d"hOMZ3Z飍>:G:u  :k+Gش,bLk]^|&6]xq{+~p{0`vqE7Ep]g8͌Cfh;&;(,Thu>;~?ZI&V)"wpRϼ{b:yHa) + +gTa lpy5a+ؘFJ3$3*r\JvVl<[jN%rl2b?as[wqx4O^ɺyoQ=!KbnQ3 <\J_‰ 3}3!>8.m|˧%e!-b +QQ\<-G1xba,!'r'F-|]/?:۾3_> gFߏ#'dl2m237ԛo2%:`$d%'+6/1>M. +YS +TU+DV7}pi0颌ς2ZT>WCݱvʻ)38/[~;BQ)otbx]bR;C7,L?KeXYcV,GFr& +-NV"H&ڦ;+&FŝZld[莳%W-t 3CN&ar$!^n̲i$[oYawgc +%sgnsҝ( IL]LtgQQ\PݙvwvfKXd ݒQSLF-3]BΌ18;Cog38͝LwVjJ3KI KNV3rmN&nf$X8sg);Zt`%;A_K)C21c؞f2 gD0a=JB +Vx^K_zv"C&);9Xs +)} ~OY~ڵwT!ALwbVܬbiw<I CMP`&MSU-G|iKmhAT]`@J'ᵰ@SES^4CQF F2x[ q4#EXRŰhOLB$ 83E%o; +s3Sr`if 0* 2`&&qY`%%,Le.! gV p gLAc)h%`"ϛ4`vZôo?  X}ᰱs[Q33K3qg;sٻϝ$m̜$#gq`H/41zC?)ʖv\I\K8d[,;_K53~_|?I!KrVNjyަIƫ 3y `[ApA]*dgMHҋՂ|jeCX* |yxiV:G`l|78CaNCEb} +°(A% +aK$Ta, 30* %" ̋0BBZ0TŰ9H*V1VjbM(䩑ފJ)-)ua<#Q +BJ׈|}#ԐưT!6RĆ!RpQFB$ ypf֐B9ÙQIZe83ZIVtf +E>3j5FZkD~F4.9YR;0[=ءCQa(L| *zV_PwaJE2E"ݝY0;3w3ǝM6.I;0Α"t`TyhOaBEj; XF%3|s.0dI +P鼝 {oa809S™90&'9w3ǝݙ<&|=&̹?0l G a%O0xh w2/[ +xev\]vB[zv~u7w"ev>nVpa ^ZRRRtlT T .UC)w^y].٥٥٥R{>Il3~()"!,PTXhzZ~jIi2qjW(7DJ9ی.@0*QR$#x#V8tG3ȃjC=uв +j>!<<~: %'7ĽaQ8btS(E%\:[Q N8 /*QҲQ.'m%'Fpbb}UEm@BpΗ쫸8UQg85XRJp8Z] h֕JXJ u%l+Q1dF>.&!(^0V: GRV+~ ʁς* *`?|2yM";G cxYR9,Y{Y"~J4«ER;7䃎ssvn7 v۸33MI-,&wk/eD' >DW'F:6: zEu\FQSFb` +!:Y`$}¡nH)1Dr,$OI7Xʚ`_&I} +LbMkP(V(EAoEi B1 +DNQND9S!0疦YtNqnNno_&Q!m\j 5+& RBKYb'VP!mXR % +$(k<#qta,! cswϕ Y~-%VWF}10H;f _lNAss{ +ꋏ#ȌɺA.Fy=xI>\pz֘=H=lſ`x|67 jvh#}7pӜ d=Ei*iJ{FSs; =G; @7:Oܡk%Y5Ա\vQGguUWD[cH_~)Y}еc(?;w=EGN. iW{VXZ<sdXֻa26'*;d#eL˦2ͬ5kKËcăGϛhX+g  +V^<â'=VlU/ߠgUF eԃ@- ʳWc{r\^F=gwBgzϾ 6>Ք4&ŹM5V{léc&YY; I 6 @ hC4ۆh kgE)s$WD#bZ+EM{%Q;@%k^%k^%k^%k-^RyZBECi!N,pvS53m"\D:N +Sj$:o*O}=֡-:XVeʪ=qUW{Tu\ cf NuDK0D[Rz|8 1Q쩕)xd@e E)Xq{0<( %Nw}dp<-a?U+KP[p|`GϤ",Tx_PCICxPZt +hϒlRlD&f8$90"ccf9Ǣ趺|ٍ^{H/]ģ_6' 'XK +ki8Inf/BaX̋TgEG^jl8aZ/5RqAXJ3HYj!Sʋj4IY딗[LTȬGUTȄeBY}1=ōupˈ ʲ'8C)c}&sduݭ14h\]CSLK2JKFk_@%Wt%0)9~UxЕt%2]I @5_yy5߸n%‚\sr3+fO'Sɶa83cA9曩L +~ag:_3rNfc5}OQ7,@7'z2!(r5n҆gϻ;{.:Y6wG(2I%C ظ=<>=s ?DP"8Ӈ_׏h&5IJܩ^lͮ0szț7@dBe["!o~e݀guE3=+#=rD^@?hUݞUO?k\o_Q5=M X0;|{>\zt;-l5py@ߩ5xHz>Hw7no ,?]MrnV1S3.|'?u/{bON;̈b%#TMqض;e['{ؓlE2/c _7x@viS'"U"U=,Fa9 g\ 2?>uʘ_D)hR'pUd1j)؀z9t ' h9!ċـ}ޔ!W$"¤!E?!Y[B-?^΄]^H!Jw[2NdO(_LH'| @<@4vyx>Ln"TLe9@cw̳*:93&8~$ͻW # [Msaڋ=}XU70Hfy #E@޻{7_+{j3lvJ6SNm=g*ÿz.}݂_2:^р&tBPn?gg?=?ckJ%9Uu +lTG*AۏDzC5?  EX1j'bS )]˵S2X->%)N{%\.:va}% 'ĨxU<-7bsL&4Ѿ"~$v,a/0 쳧Gořp1ȩ3-{.qIw>\dHF +^(n\2DjցLfygc/ؿ("8BkW*F> >{-V!hU0̤/dH(+[c1E0'ZfEv<~ٷ  R0Hha] y0${6p|)V{5q-T^Wޮ2_+1j3{5zZNTErZ$d6x +6CR+ ʼȳ`jw[99"7|ѴvfX/~q;%xu[AR[naa4InC$UoTUcQA}.3,܄9"Իo2{2̷!eܯy1;|axa Fkyaj@QnTͤVy^4=C;qb 2+E.rMPDve䂡60&$_3#ye=*pw4*@ rsԣS; =s߻Y.2< e(2;>|{ƽ{y?a},$zxO\TU!o3o˚'56mK. +fm97׺iy'a#M AZ |xubÏN(ւɞ+6"~ɯ/yǂ + UKq0PZ$+P_b${a}޳ª!] oP?(s~@Smgꎱ<Zk>jCl] +lxӀNUuǕ1ŃN;s׳Id8;, +֭/՚564Ӟ՗-Nur%ܝXkQ+6Q +GW:[XlJD]4%xן|ikox֋F*wZY87 ڨ}g%`lSJ*Y*u9,]T,*S«؟L^ +zϷ fI5艉4k\jJlդ$Ff7^S+( \0N-%&ß0 +9h֊1`]?=@n4w;JV?ӏZkU>F c>C⛛)ll6{ؓ +Zk/Mbg?ISكJj^raS{\kpяiMb&bLA,8Y-fr PI0=)OV9Aj5$ɀN!b7O|$|1 ݊lx$ǟ hd~CyMƴZQ i1e__F=l-aMq=/LN J /牜I̸W'ͧt#NLdO!Iq%`/SO +aX{E 㭉=K94VgPY?r1i>=<͗Yme/L8S֔{Pe|ˋZo5|۹}7>RlNf ΃;FH0xSN';S%Ml9N!-A"Kqڳw +&gAЗ{tp~7`UG0'mX'\59jY%.V< \[%Pr{;x5P<[cx>~9 /t ^Ksj˩f)eHq,9e ^l սlxw Y~(L=[ lETe| ͕!O\vC}I}gUˢ=6gbt2#3-6N[|[QgɧσUW=O^o@2O{/[8,2[,c%G#; (Du10-qMp@`{Y +=5l/ PڷcVHţyϒϨoˑg7^rٿ6s |8;Mh,v--r, !VvW%n}BBJ\Ϸ;ĨnzK1mdxؤ#$x rK&`<})}ᕠR$[$,.~?1,; +VLq#L})ӧB\+I"N(xV^vJ\wq @$rUidRm6 P8=o &M`X 6)@.L0l&lbSLÇ'$|8$$= M|uͬ:`zdm$I'HeDÛ2FV==+J||HeA@_;Ln'M`{م3b}GR}<^efįʞ}^ LJ/EkgHoX x ފ|T4g|%Lo/> +`Z0 +._{V|C@{,8^|"XW|cO1?ZLJ_0O݂pE/<_<tP/e"]%\t{lbS_0#"cZxŘQo9`U|3nybbޝVx¯\ynw_ibOYG 2`2~p}>FD@?%x6= ek:q#{l?B$ldg3ٞw,%)sKN\]<-y_.Ӗ5ܘ2cyy@f2|(Dh71d09yMjU_YaVUN|n}#u2">z z@]%WBrTb)SLϒ}WfSǙXd" Yd^uh +d +B⑖Blu`ԕ׉w;{^(R㭆7&A|*bY ooWs G"h7ĢOArteyl3*E:[婢VEv-櫎bѹHH2IVwk!;TKnJ =.ha7`k;)c{(?Xc2y2 v ӕ1xt0`0/j<͵#0} V>2BmA`-dmmge~RΖ&*_ O׳}sAOo=Oqo@bO>cVX99x@"HIa2_I^pI\zT"&#D%DȂNn5d>jQ E0٦Kj2PP"^XE/Mg7޿Ere0`L7܉IIBA[OQ4M^tVI8ʼng3<~xB>xVCHE \d I#HOh<ԒE !C<~8~L>@XBjv1AX7a+YH=@X£@!>069h%rDxg +DŽfس'Wg=vSljZ\YB"@nȐ}8 5l 9h\rҴ-Ӫ])#aRnE|9dK|)?QD1|C,Ep.+5V98Ehx^gq T.Tn=~߀"3 x?N$I!$$ +m?LH͈9_Tᑚ=pK>z5;Yl<x~BS}wfZk&$ LQ>xVlMN +;ŇArʲ_aiiCc3υ fŮ'ɪi\h .E0S`!Zb+ +(Cl*{` +&'~b S W·?ϑ )[FF(pq7x?] wIJOo_Lٟl04Y?͔¥ǬF}Z Ou\4'OCețGrocŏN1)^(ˡ_>iL) $Cϝtܖyfj0>166@ܲ]劏EKg2xo &hy +udK|g5@䟛pXzwhTb4(Idm+[p[Wme+:l] Y]MVՇ)n_I?)ʡ +&r좜Oj퍁襯p"_qSWlu{>D||6k0( {V,r/lRurAON"XsbmJdUZl@jR,:u/^WA S]b$S  cV +6LO k9flL mI[bJvZ,kc*W,—~rfZ^ak7>®=`'"ZJcy7dXU:F_<';|'xgNش/Cg_V@hYկe +Gu ?:{ .[=m=@BU=oM(VwRB O=hP.;0bv̚W naD#֖>OKyʱ#3Kdzf6_X/BŮ yCIv7 + zuNjFo?;n[@_ezXD>!*-.-4FZOP+kY5ڽ5$m +)EUu#GÓ=},r_1ɟ2Z&K,Z/$ >Ȟ38XV]FasrO}o= +c5j\}p:xXӑlbߘV1 gO;qpG(yqo4jO %V=A5C<\S"r˞Djz5G2==I+ +_ 2:P,&|m<\42:[(#G cQ@f Cu{g{#-cKc7x=(afOA!h +!| N7яNOD&pp$O" 2brn_R?>>_>od2]>/16huri`Gsb1zE} WkJP:;P\0zozăSDsVޏ~ ;tz_IWc zo +tzL76_Bqx~; +^>^cjS56%3^į pzxxWxvtz%x>e/I{}/!^/h뽚w 5^o޹z{z^V^[;: z5F![X2zDqc*]Yz{W}d Fj0vޮ'G}=T~ !~w P}i@]2K^=Qi#9 Q'8+ TqP@$Zv\kG}!hL}M}zL~Q LǞAiqZ5 ޳v<{G<-1NГ@q%MN٢kyf[ +itY)LMr|jEy/$5rYEw x޺ysjZ! >j{[o?e˻P\ș.KW+y5 >7[T\9@oW /cK~J@ +{p +6bmOl4 -|ǀ{p_)>>$]|J7-]|R;>~cMzmlk2y2ϋk:dž ,qd׾.>1 v|^!x@fdxrPjpޥvp9(BPZlϻ3%M|^35>E >m5lxr`וNy7d>w=?bYJpIѱn6u 6y3se?8<10mY0-? x>)<; +/{wzŕYOH^kE&=!-<,l/|<x -ruFo(A aq%; +&!$^+5 z_@7@8<3o0Ϛ0M=2vas Pϳ1+z(W=5 ^u{S; L Cіz7уK?g˫Fl>ޯ9ѽB؜%jO}@`@ʺG XozXz?ڛ>RDg{yhA&Q0p^r'af>yړBdj^zHѯכFO#"Gl>#D {=(z~爽ʺPteo9da8>P#!{(Q$bOiBS83@OG̝E>:~~kP.4{P7.1@qMWر\G2&!Os ?m_Jgճ~X@d ~6 kpO+.cB8 r}yP/u1ϒ_FYWbleqI|E8d͐쨙foRem@Mw[ +{8ڶg^ͷcf{އg{V{/ԇG}hgUB$ut#ϓy]m@#6`7f` n|в6 +~O;nO @% +vžUk<\%ֿ{PDLޟri&}ptB|nU!UOi>?>g!$]V- &vPh閵3 |*ݮPQSq"GP4 g/ɞ2Į?L={ι~4P T`c=jPV:.U?5|Ϫj1͠ (,?/%%J?⨂U+|7 kA<<p4=Ugg='`R,ryM3<.KgGm!ϳӡ!FF_FX'AYJcZ]U +BCOʗ痁 | K~4ӾY31*+X /7L5TVA#.;?T-5*ϏkItL]rU =؆̄R[ _`/^0\Kh=49Dŋqo MVy%~}QdZECjYJW8*rՐߩDV|7GKmu.-v9*rp0PՏq_4v*J0&$5+~%7<)D]&bǨۿOayw?1/Sq>ۼ$u8) +g.F5̿Xo*g]!m6-4zyJa+cj$lr(w&e>ER'+s +)VK`{TzxdȮR VoPT{ޚpNFBX9q&RXRl ה+LC4a/MϞu*bgz< 񳿀ǚOR| 1_m{;;;<WltHT ЇGH\pcm +XreeڣЧxCJc3")2fx.>.+ؑŌ?CnZ9aٱ2dDTڿ=jJiW"_RGNrO6qL}f>ew'23G4[jj:ߑ(KM{}cO i+-‡jU3RO|Z# -LdxC` &N{b08B`gx |Qyg}hPo)ҷE:|C`E:1BFU\ad򌷳n+Oy|;W vv\wƋSn^aOT+]v|YVf6*DuԩB&,W!vvm;~vN+ү7Jⷥ=-M ߧcimV=)Y3~o}A߆^|od-~[ٗmi|'_+~[Lҗmi-mC/(\0~K{o{ՖfijvO'|H +}fq8eRo=UHz&R;,G؋mNS2{/2u~m|oBpښ4t{gd,v;XW,N,6}pXl)݈Q ]6ib1Mnhl:[0765$5int f54ܧ,xeSG!ϣ}_ UoMlr턤jHj#Y +=.g2R@MV!=D.C͚ZAXHlpxa.^-nͿYWz7h;\|ջ+\}g<A"8V<ؿ~;&˒wMxM֑)&W{RiW+p3ݨRjh+fƻc;+kvϾOSifWQ>TOl̫׉TzY=tn9F~U'W읽go3^0 sv yE5=9r‰dXzk5,b3@Ex놁 l%=pc+ +&,o`r^ ]M:*/ ͺUL; s&ORUGbO&H - %he՞*/qEY'-܁6Bgvuz4GfNJǥk[zm=I˜$؈1 4K677i@K[_I&z_6޺'xSŢ V]pK>r7%^rf +߉7);23{?>xldFZI{rc[% +^uZTIW>W19{keLu^H$,2+k`v? +̀ӽ:u#[إi\;(ͽ!~!_l-u'KPN f`t`+ېnQ e qFg}aUev,آ}aBfP^t~)KfH~I]I.4^Ƿn:1f<4X+oDa]f6Gq6?~Q:{y2Y ~TǞpI=ToϑVփrbwG|5*;)Q V{,3\ ~ z`.P΍[ n ?Lm7ݙG vf+aڙSfY~֪pg;(LfUfUǔ3y&3dwe8\D!Տ*(Vֽ~FS9*7VzlAj=(͛k9hVp%STk?u52ͷ0MBV+nx}6ōZ+WLBp&zسP!kw)AˢD&EN7ә[ y(s;5WXsMC/x-cjL!ii_$i30ƭfa*J4"Z+{C!L1kMv;À_rVrh\izxȋ _t!5s`gTe2u{l񿫬xcW@AȵV3>S(Qx/GK-G4M#zaɜX# |D\%M P>"|QOp2, k +5cj:Z +,u)<|s!Z,03֍P]g-:rOBEg`77`f ^ ,sïh,/*?Y;U߃5m1My#<={en%Ee{GƐ3ЃTrOm;ـE:<yb(q;|YGwd|-OS֎=&"ȧ +e=7>@#$-KXMзr}A7yٹ}VNz`-D5@Y^ ~qYp0*TOx=q++ۍ-a'T +XDT_c^,~4%Tr?*Cs/IbtC]%,#(sCEjpZR ?W*R3 8ХvBǡ-7Q}ۛ7`t +VQ'>w +9y, 0J^eKi/9DŽʔrW|[lKdblrɌZ;w`T؊r#1Nq {pT*ϖo茥!Sʯ^ڭ<**>b9KQ  + .U˾}OLh +P4%;a(,[UfP43WQN[xx8ausꩤlK $kCGd+2o^RO$FHUcXCW c̹JQI5A~Ȟl=6jꙛWjr1)Z*) +:YT[y7q`WF4›¼؛<w 3*2ՠ A1#L'[riޏ'pS#^e+D|*f[ƨ_,6 ` +fTtFfR Qgp1f@*8\Pk,C?jBroSPp(h2vj8 +y1f 1 ngx=h0`Jt?۵`%d21a3A9  ;(wDOP[v57`d*O1pgXL,#ˍPVZwXN! Vr+oX%1:58ԷaqFRjh}4 + ܲC2*.YhÓ$Ov*S7E|wQUOX:uTF!gp&υ6ȭJQ/xFi?Xi?[i&A M)$s2wydR ?L}Yg}ϯSI)H)K9G)N,]rOe)(O}(0r}) +JMW:-}FNj[r1+'^,%8ƺME2|sw+|1~,&!KdͶ kp݉Nkb,{KJwCDϽ°-"FU8H<~/翺"ob9YdЎ9bԸAt(QNcqX툽+.Zp˝\އ{""f}  bIcU9[̥rXWCӛ +_ -s^>l^<)I=;3g9x3/fdzd$Q{$E> CYNBw#5~V[IM(#wmb 0\(dwr_syě'awv=ʪ{w2yR9IcTq0:9&y]uH}%w Z9:m=3cϻ}fiGGK?06~o5~ `aj; `N.ZTY?Ea&~?-~Oa"i:vثT8p6 r9V$i @]!ة\}jF4s𤜩 ݣw~js_y|Nw08D0k'9ܴ|T>olAS +$D%,K5/&F{W$PPFNհ3/tk;,ʫkwLt]gۍ[}i|pN/[zإҹi8ip8kWyHBòF:[('rºm/ڂ܆@\UMb{.e *ylsNi'?8ğuH5?7)g-/ї|T+ĮkK=cOcia۳R=vҋ=v}a}J3(N}ʠ) +Nd# + JX'fICXEK0v~ ~*EJdv,Ѫ +~`-Q +eJ(ɘ);YLm)C*V%|O *NwľIz fؐ.v 7&HYf3+,0޸>lGH #,m6/Pd-{Il0'QB4%hqlhł{&a|XAAZl1.mhK`$,F.c~= Ie[կNd5_4ko<\weny_-[w˭&$:7V⻏A!6`\a .S|r\< ت#if tNʈR^ tM] g;:ptoLA.qԏDž]H#]S yhΪuQ*f,y;M /Y{weBN/Wջ]NG4H7XVvv/Vql\bLsiIӣ] +GQ^0,MbB!]c|yȑF2K&8A]κ6"DASlue^{]c6$ʬ6:CЊ2bXu3KGǎ+L3Fܰ:!MctYz{xWz7.Ү.b-LVSZqd~|Zb6J K$Q + Bοk +[)+@S)dpLb+|ۋ3A2 ⶒN+sDQնp=J*CGoOY ϱ$\C)՟,/$\tl nq&o["GY 0$8L&D n&xpc--Z!-Ojȅot'F + "0K"y5 ~IwV@^_¼gAщA ?n[82NqHP>x\ -c|tG~|X}? `M 3kF6x?!^O)$IB>93vߩ$ ܖz֣l@I H:",tP hH.Lyd;_v!֣ٲ YDŽ%9/KQ"9*rI +8rLC$8 +pff6_%lғռc*QO9-w6) +s-?#CG%50A٬JŬYڢ*uՅf 1+V }&edĨtfDJF[0>X7i紕k|8bY]w&\gjkЬWѬׄ0f1g35X&kWE]H]4O|ḣNйl(!O(!#`D$z`D 8Tw *7CE2AE~d* +X_;h orȋ^E/y u~xQ9qȋw^𢻆+/lzˋN \yCI|^4H +/zi8^4;/2 //o΋ /yыE3ρm8'^ho>=zM.5%F@V M6Rbf" F4u=B 50b&41:#$1:#B;i@qhb'eAL*<#F{ŋλy-Կ/^*dJCCu5b(/VysE?/‹^}𢱽E 'G/|ehAWEu?=@xp/z{^E\蔳]= /JO }aEreNE ңɕ_7^W4FH.ѐ+?*zYhT- +fE^p\4qKLpQ"`VCך# yeuEz[F^;l +ƐɂXƹq8*գΪps$G_#&GoWDj+ `nJŨT٨PF6ZD^M eE]-q`ߨї:jMFQԸ +:猍UrF^^?}Yz'BjGIoB[O*iD狎Mw2~tJG_cM/ +-Dw+Ν +zIbMS\jXr4`8ܞ?WSpQFB!%|]*7q 6?K舘3M!Rݛ4 |B.4nJ!JX`Jeo?S .oP0O(L4_ﭳ:xp x0d}џ[U ;e$mXx3~ 6vڪ\ R-0Ӌ/*' \'eIs_FQfQO>В#^~=ķ;/Pn(ğ6Xz=;ܲS +:5ԙ)-6O^ޱ)FEIt2(sHM#ځ+-X4IR0h%/q'\^$TE=ESryO-ZɫJ5^c*OXV04 xTxȪ >OS_X,\7xq8ɓWrxVr;,Up|#_^!6^L\$#y5yփr7'6rVාq:6T=|!Ae>V$hM7#RQ Tja} ,DZ&8vB޿G5WG`&/d\Ø\Q ʺi+ z?1ܲmV![rub73nҝewkTry:w"%]+1u0u+\+W `jX7(b+*xGP7y +PJF)'Ye"'N_A<r An.T*>^MIչiEV[kt_0Xl&ym3PvbN 3*-EQD |pR0 ?27sKm o"$#^nB41(kBZ +*+i?&jekz@bmZLm\()A&p9MrcϢ:Y"Ti@g|>1( al.mDod>[ZȆ,#Lb'G;[Y%H?m$xG6:ady1\59nL6M̠f2;F&8JUyXtldB#rݥm +O׏aN{<NN$Z 6G j'{ɣ1V_cf<':f?{]Xfҳ=ڢ0#Fך?u30 EgBzC?ϱO^xQvxvۀ%vsn706w0&~mob<HtaܺR, I ݤ9SH6! tP䴐'"l~E7@MgǁlZJh@mDxH I6shW=DqP";mE VmȌ@$'륰` mo;S~N_^bvz!X0Zb8BSеK.Oڄ5Z}1A%QO)(Qy+$5UgCNkh2r4Lb=jɠjykcWCX=7Y9?+/chsSs\ԫKv{u9"Lg}zI߻hyvTfJ~$~'i6} $2a@@zg]"'-R6E쎭HMz$_aHQo 4~eʕڣ$5 %JZCNC 쵂uX[B+՗kKFǑ"^lu.w ؉ qTSn>|g&v.N,m?ew(Ǎ?&[3l ќc:gou +WuAyrT?|+ka?B|{h+YX+O,W}#t +G;7`Q'$ nT0'Th[H7]euGL[ ]MwVۛ'}m릋tp?i`PJGT71LTMJr&&^,7Ti;OÂBd@v$G>-j+tBWh.oNjN16mڎ HڟԦ]ωS]wGߙ2 qmgD~~M|$IiƉ?餩6Qqy~M9䀁"M/hE09Di9x;*WPE,Wvy. +:ѮD"TFEC((N-qv6XKFٷtg|`؎qGPȕ#}3LI>5ܵ^L2yλ29NKѕ5f\֗J[v@$+2{*WdtWm¼XA7nZHjC>60Lӌ^qUL"[WzWĎVxmDz'"W]@l^jzE~rz7Ҽ^ib_^+&Wܟ^[HH zEv$w6;z!p 0 W/+zyv$ +`zo}bzŞ^VXHrAM:Rc{_H#qɋcR``>+ЄsWG^+'k+  t)mej?ݭ[tp_tS~^!Y,AC,&-Y<Ba%R@BG}BI{soҴ>޶t AR0.G3^b>KR6Fb/q/`P$NP1v'e$zun1y7|v\ZdBĂt|9&GѮwrc_ [p3>d>SOI~U;G_~JXҘ?K#!#=AS5MA|ݟ^ eHL>U<;IL%Y-%~G)c%D Uw}5JkX 3y2֠" AW,pW*X2ɩ*E`9 $.M4D5I.w"{X+FqgF@yf +ϿJgIoƩ ;{*f*)qNVXkm*8 *q+oIZSͼ? P\=Yy.,Ez +UbL }g76ϕ<_SU"XA=o~PS"LrVVEs9X{N7Ј8/4*i籪(tb BǑjt3Uq_FU@YgҭTlj7PV뮑?C {Tyi}^Qq -37~ڣ$u~Umq@ȒXPaE/6$ņ0*N< wU+AIcUZLT-_ +tkLLY%;F׎]J.TDQ|l `QO?WF'1JS4&>_蟖NރICs$6 7,Rp '%ziIjhV5[%s!*K&|x$~5\6ohTIxSp)x>ϣ\(,, w="$\mm)P5dp(n56|[etuS J: C1iL._nzmyW;"IMQHR/sj@р+MZ*Ee3 Tf>Q]aY6ks3:FZFqM2; 8Vn7_L:kXFfMP,GCY'eБw/~HshcVv*8&#O!S~Dz"O!+پei˙A<5 +dKJGQ L>uXJ_FWSB ? %hJr8L);5גJ\Wϵ#j&_F*>B%S%h 6[51%cHO:ZD'SbM /}3!FH$KZ%ȍ!A^\\oͧ3v)/k`> +XU&"z +^ b*kcR G1fJLbu$HJѳ?O?)ɼ)WBvbTh.{G r޵Fwex ^hJ4wg&Mb6jhF&Є:-_X/tȆJ6I89.?Zl6z_.x%I_7MBtPNbjI3Z骿uaZoo^(u}N΋Mb }a/(w@qD+F$D\$ !OvPϣHAA?M3 +Ȏ*ٵkjfR0걨11?GB\$Y]SIgѯҠfcTUa#mto#TNý@Ħa$2{#&IfR(q!(vOm4G"F uf8{?{HL/h`Qss&p91zJw:}9ӆ/@u7Lb#F!+T7f2|g2ua v7=쐖Aq1}ưɰ/e-Rۿ߄J˒w̡υ++ \rCAep\ֳ j/ˡBݻ伈Xं8ߛ=C!=M}fEu0 E?a yB ?J7j;]fw| Y|3[)fWܔ궻p#|)e$_? +˜z[5LJz0S5d]#CrŞlfʺ&^l4I +^l2!/Gdڲڲnw>t$R,LcJJ濶$;>6ڼnz&dT85&6T? +E)d>&aiZb"S,9Yς 2d״J8ì1&q|K_ K 6W#g\K;wfWnim;kOQ>B=|2}? ͽqo͇1m/ (F8>#'LfgpO2s]HVrL,x^HR! +ev/̻m5gCX/CNn  GbѳEe2˪6hH6WPʑ3oؐ5#* Lr 6;xQ7g%;S+%yEWѷ;le 6&IJ"mgcxeYs׀ ^Ђ~1\*N_QQ#$wArG]ct6G/`̥r/A[(J{ņD_wes6ջB\G#VLO}r|%y:>M[qޅ+ +[TA q.6:y&Ի0fsWÞa 5f As1c&G3 GS8CݠcJX粆\KYR窆Wk|j1 _s{oEAf0{s=woٽ,hqH,<މ蔓* wȑ +V-F$ttdTQ?d- }3Y\īr7/nOm /+/ S\`/ \/`G#L$)}fR¾;\{ rPNc].E/d=-/t+r߰&jKq3PHO̵0zH%J2gD5z;''-O9sB3f%7pH/ap|Աe|5R0y-63e+Ga5EbxG!ܓhի% _ qx -clW3:G*Р@ %<.J\+C0!y"8o0i0s'[ 'P0񚸨@5:!EBDdEmBw5^*O[KɆrPD+yƨlV/7X) M+ƒ2ch(p}4գC4,݊X)\SzйK_fF(!"ϵۍvzPn7}K&* ]-+|QcUf~a;VkhMpYn[msj%txHFD u/@I, +wIazB5=ފr0пl6Fߑ2|:ԕSt Tc/q bTq zʵU􋠹/5B,]U؋ڜfM-rFl*+qJv7Y3dCReDѤA!RoUڸ9Y hqٝ'9TkPM-6k-Hjmِch3R xh B8b>no1SffČ5E̝I+jTS-vћ3 [nJ["U{\ϳ' )z 7F1R'ˠ#zx<8Cٲ!|A΃"yq-.];Ox xIf -˸Ur#C}{ Za<ʹy&Egj9vbwsm^ZwPr!#̈o#I_/M(~>@5R@>.퓸3*04K6m+"͖Im fiE$w@ߵ9#"wށ.A쭂J6tw 28$L$y=PqJӠ` *=FE\yFz 8]E\hxڔWĉ7S51Gn[ӌ%SST\n"^O58pɁI]>]qS5C򀷠.eu,jCD@ t~w^"{iZSоW?M wGb,r, H`P!#N S yӁۘE|*xqe#0>0`0b``ae;⼩@[=댒`CЀPoUyM"P-N$_^):4 R +-(ϧCz2"'0$_,;ЫRjX|[vgՃ^܂s:tYɈ.iiH;($M(rlEXz#IAKۆ LoW#N_7Ia(y%~~>( m,U@ֆ.*Ij6\Ff#Ƀ@txa+áz(זŅ`uXJŧGvNNoNka$05П#f4m{9Y|mn<6\D^lJEP~垘Ѽ{WsP_۱ XoZE⥽ mZ\ĿY˪#Ab$/[TS|*RMų>{P/FyQzù&SaQ|à f+Qj9`a|TxC|6Gb߳hhU۞M*8ɵ +Vhq}ZTXXO+6zc c{/_ A +Ļ_S,262^Bx@J@TSfQQvJU3]#)s Y`D@Kߞ)х!}$%9$gH^QaΖsx d,g;JZY /Yk0q/,kn yjT)(~N2X슍2˴Hk1:T 7Ά0Hs\U}Іt0Xt?#"ƺ"3WOsEኺ"^h박ItN0 z +\ѹQ+8#9vshn"vG8T捸ٚ7"jJ2eѐ#]$?، װCdF,*8!?0hI03^Wɛ 6 L χ^>C"C"K9$U,:!:$o[ŨC"j1)9$'tH_>j װC 4!ph ;$0R S~!±Is'֏RѶOQlPǐF1fSxMg* ǭ񅭰` 6*_?eQj\vL-Ӧ[&-62%2叢[g;nA3胒\Ş4 6$E~!sqc?(]ƣniM K :V2)hx0U}϶#b{થ.rv`P.Hܿ{cz(~3X_ ))AD+~&ݧ'%(`pγ`MN'Qv=ֱ aXNC턁èyA %%d0Vp2i#Zjt +ֆ.w)w,~ ehwvZY"U X" +R$DptOJ9<|Q)k ‘ԙ9]w{ +fϔNI~FJA iB Ch i hH$Lz ME&B^3b҃h$P%3bR%RY O z np'_Ok+m p(MƔAGsssbzO#gG4ٽ(8jw;>$8ШS-dYy_@vY@3Q&\'k.T=TMC5*q[xxXa`8M9msq<ɾ)#-V{cmKW܃0a?؄!χFu!z0x\|K{p6@)ki+uCS+su"l^Lz1ʗKqG0a1yh&(hQUhp*}xKRAZ@M}'hZSDcMklcwbMe$*Sδ30NjZXeQ*['].?ŅUV kV.a%=yd[wU&gΜ{y<teo͵BWcn$:X!5|N5QɕV2&rw`ST+.dy颕e#tcSe#it, 8O ,^]jo +_T:,AZɂ$PkRzUۅd9GE=:\` KErh"$@iA?Ww2H. kCVP_H>w7+}%]_RvTU|r>KΩ/q-M'eޥs i׍ӗ\ʐu{13hQ7*vґ'[m#_P`I;p*UMe&՟#=ӦsT][0vOұ+ o;ʃDϫgeogfx\r7.~mVi/Mx&urUZ)d<3 0@@=]#k6{?#v=z-qm&e->qJֿqgsHlIBq *[—a1qXp)8ܤ/DЕYVCa\ 8P!2 |Z<D:rޗآ_0A9䗃mtPAn6p*NT#)olsI_,T³:Ly2of^4{?[Hr=t 2_<.j%LG#?r5yѦ "(P +Y),sv寇tPQpjMz!n Y9Xp + '*=|E qc\w4o/Ǣ̃8 +97 B{ʠ^H{߀au7_oJ 1*M+jfz;5HnҿKJn-t!cQzdB.BP3]]^|٭=n|V__3=ʏO|~nn GB ԗ++KK51E:3Iu]&"A}YA3*W뀢OAwRIcgYNN':w6j 4.?QP7_Ol-o;ςf mo h| MT7-ޘ7s`4{0nZ5ϧ 4D98_N8%rDl!3ZuldDhX*y$+BW`}=z<'h h UkLb42ݚmκVNr <%/9կ:0Tڤ7 +#57nH픥)@#b'o=c-WgZ2FFM@ۢ7z=び/ߋ]t[seP:9re;TlUt_Atk@ybWh#!yZʐaoȵMx«fX!価A1FL@Wʠ =άťfGubGog]sHVك,oU +磾EQJӗ7pr'pU}*x  >Ag})K|TN+.x\Y@/'\tOܞrѧrf\,Rl]MZ#t.MhKj_b8Pi(pFc($7d_)#X^7Ps |N2^ƅOtJ~*5;+?͢lDT^x*甧r<U:! +{d?!Xs-kr_^˦Zl;otׂs{1&K{sʡqs55//jr+.9FZ>2]w˻6ʻ Y>2Imq^N}1@GA +5)}^p&#|Y9 _@ס&< tC b\/(6_jn!]õO&8!(]xrLig] iy1F l;`;#X_,A,{ ~Ҡdwnܙ?gGU!Jp +'0[; +.C3OLCdg>V@miixY]Vl _w mb1DG.",d~=Z6Cai/*.?ffVB  Es,]dFޣq>~5!9X54ҙ"<\\kV4yq1OV13|/>D *Xធfii +'3T/ _ȿVw8`ʝ}q$e7 jF*cTOB3'EI:2hPklEȆMrzJծ|6[~pޛБ738o!d &[(>=T(\>3'~kGɗ-IՂ{>Te( uWsT*Y@V(=v{%^ee1f7;"'_W+ꏖ]&9<,;爜e-#tìgo2{Uב8LC0(h4c.9Rs OO.7R 3 @3?u%uN8ݱLE f=2Q߲'b>)g AqٱIW~v`2qT ${\Ďvp2 ? +g@:lS~|9[؛#w\tL-|QƴRKVuZ|˗_cްnvw=ꑣ?xGXœf vKfYp&z8o>r˴G|%9}.T#݂an]`?x+x;YܤCї@4štҿwM@E81 =(_wt.=)ƀ"}VlAc ))98 +5&B|U+E;=g?xfn̨`^g{(EW,^ro.xK ?)/᳠6ːNv.~nwd9ȫ F#;FGg%K̒tЉtЎc.<)GfYJXI~ +u#<9s!3\:Ϩok!X2[v*283/;.qDI QFlD'VAܢÑH3&tUXM/o1Bp׼}d]өeaua߁A[2Gd~$Q~[AHeQW֣U‰RmiQVÏmgC#of_ŋ+^ELʯ؟u7Csivf'#؟5<פCޟ(nz1yyR<vK }|CtdT鰻[ަYΎ@$ 6jF<4y]U -irq)n'?ؒǤ@z9Dqw' D|qTЗ!7D$Õ)负oE$EehlHzk(=8dpCg1Qs~MP;ex%PSŶYe)ڟ,enǀEZ0esђoːKj ⹳H]@7/Zrg < jn>8~pgX%,?C/aznĺMZ: 7M +esZntG<G(s('/FbO >F ?dqT>|#q{{>Π/\+o wx;H.& \Ei3 {JqOD,ɴz0]vBKnC[l +D&~,٠$@vsB_G)V= mILeX|3v1&űsĭR',dl/ +i/5::ppE,<^0%0#S+@O^=hGDd&NZ g-9Pvzr!0#$c@jkj28 *7桰 I88hL2Dy]S +{KHHxgؘ(3%$l,rk:=b <@X^p_B3gZIãsK[.?sp/v/g*.`7'` d4Qi? % q? ^[pg/q6 +%xٖ-k&Gij?q#3eN`3,X\'`G4k]barCtҗ}9LXzL^֊QCOFx=:z52a6n}Zs.IHͦRw-#] }6zPL8,U@<.sůcՓ9h +A,н;ԏHЋ]@ bdlJ S /wUC +㪇F6jsk%[), ;p"> ;(*wP J4Z,z>v) q~8T@qKf"'%O,ay 4KCS!>@$kr슫c^%=?sduB nmWrp.(,ϮTq眆G/)љtf)]VߑJחa u^? up +ۖSkKHL @@ѲA$B+ !-LP-SK"X<ԃWX< N%l̩clClO٨zT[ y݂M +L%B"X`9/5= %y :cE%1΂eHGg9,\]B5dd^?skRWf#?kgםͥdQ{3\dF0!nDSz~gx1nQu{v{į.'#:H׬hUBy *Z3"|k>QڹUS"_F-`hDZ"ڟΣM-"7J)y 9h~&ZMuyGrU](ñc )%U OPsK}܌|/&`y*;'Bc4^VUDReCځaf~/ >%(OVȱKz~w<6`s3~*-8s Ksvxk"[e^aɦϗ4~~z3n#蚠&BZRLvYh!Y]݀ULԈ{B=%" Fn} 焫#U3}E^O,9g]8~o/ lm\ ҝzz9'܌ĎkVu}ɓ35Mw.|⩃sg񹸐{5[y(r1}A  dfѸoV)QAyˀ=}tn* gL6˹.T3!ݜ;vYKulǬ#؛^T:@@X=g# +}qSE7ڪ^ri?f^)p?Z\3&=021鵂-XǃYжȩDzl}^e^ӎR2@}TDcn^*kU'ț+%{f\awKHTFTrʠgGSki-D97(!c#Vo5EΊ5xpp ^;'c`b Kqi<9sDz]|A)#@2rgAb5 Eb 7Zo ];`F}šdj)9*hUg}cE g+I,ݼr+$6+a;9we*7B4\9\$S&A~1 b[څ.[Yl;6 X|^t4czMsZ8674nP\ُǍmk,{0ni^̪HuNt86NR66hRlC{1ˆ"wxl`gWB+q- +pd:M.CN%Ò z!AVnNQoMV{YqȒ«w^d]U-v4P9@@ר(SdÌ5>Q*0{({ecOS~ (U}qWE@/F_Mf AS[Y)$y5,JHVsa!&ABGN"h*b5ꋿd} vb*~N$hkC.͎pJKopBSZo;_RA ~IY*kӥt4BX! «%cDk-nemHZlт^y#؍m-.rfId.%PʻEɇtd Qe  ++{@@t`eMg蓾K T᩺d[x[F>nY[D}$72Ob'DREŖ1r{ di9j wjV6b+s8LP ՝h @9J;Ng%Q^en.T,vQ>NfH];~2Ƣ&%/>br!>čMwU-:WQ scғʸ͟EaЪpcZjnxV5 +8M~VUeIyKܨ +*UK=oiϭ2ZzGk^|tB_A]I[%RhHðt)՞Ō0/u[s?9Wk-H?oN ꈴmpLCW\>l:YEqΧBǻ +4K3׫LvYM4+!HQ+~%ySAͤpNWԫnи;Z=)|Cb + g1DK~:yRft<5F +1(f^ +^%'BZ3lqҿ8yM9;2:"\ƍ9X0NeWmI+\Ny=gz+MfKcᎀ9@|ԚaL +5CNLEji(79z/5Czdڙ`1d>S#,9eI d* 3~YYڕ_Ro +K% |}eg*Ireͪ}ȥF.-Mm~t ,~R2'ÏuH:!D͹8dC@Ý l1LQA8-~m pMS/q077'_c|=C mlCGާÑ:&c>*eH) Ӫl&g0|6LinMq[# "뷊_vQx%?u:)52,߃t=GXgwPRhH֑AG=IFlUa)؍&%A1#g&@@*HZב3~4%#^=H0cԘl;Zc&m޲B3UQxOe) @iDwd*OڞŒH\a9G4!!. VjnN Op?ex +Wqb)^xcUG|ᙯ70Y֭ܙٝbf[h5+\ҝy~QO"CEWL5YIdԜ5 C2T@ + l} Ey6KRXTfY%<|!@:T7lTw)fNyG晡P'yfЧ +5-S5#*"'x1ҧliwjTN ΊC4v>:|E КqP+dsWnv,>mAIp~a{)wEQ9+3ϝGݠ37uN{cmZk09GLL*':l_KlXk.;Xg(oZO(7 Z9dA'&Qwj{|}a}qpԲQmP}0}KZ>N7 >1_/x+`QɃ/]O`U ,@u/dsDlj;&E{hk6')S8 ETUzmJ͋p/0 4Oo~8TlHF t+*HYh#dzr˿挓PgZwRV}H_m@M6CI݊qq◊ OW]iI|5{a͉! 6}#`\=߼-P]ザE#~BܪM ] /~sK6rLZ\2DRm;~ieQ9dvOwu oGp#~I"Rǡ7#0l,IJ9P' @ 6ӯmCi6 +O;[F0sr9"EHR&•d j嬵E0  +x/ZO&[$[8mx,>H3FM7 ZŜqfzA؃7'E4e-%BVo/,J*GbVtlKXz/oV9D%K p#o'8N \D'B?+tT`aS¾5uHP e-xo`8 Eb>E 5U``k@`]_ZIilT"Lp<)&cvA/ple`xԡq_﹘dJ*DžBU'&8c ΦXNPEWۡ=JKNvMJ;gۃW(?\ *u5Q)Lp^s\-y,[5l< +5[\ڛҗ + ¦3_ + Ol#qQaAv!s >U!'\2.eWo6FQ};*2+ ӛUa4B%Bz `Te$F96ȳ`D~7dIe +To6٘$}BD$j7zST6Ov0.?3bwX0I F"~.Rqxh2>dΪG88JHYjv1{owRfPҭ@P/{ +JvoE`/Le ~|j"ѿyB8o7^ڐx T9kB ytF X)T'wř@K)X-imSel8 kLY7eڒt,f|_fĝ 4)ÿۀ 3 ct  !m "1%9E1.wR3Lɤ4h'})y)h mÛbC8F/uP1G +y?q2?]D[ݬ*H2| +X X2/*iL,0WԎ06vU3Qt%xozsRe8a%0- E:}E d2`UBQn8]>Ғy$&´~= lPplx W d䎒*q&;!5ُd`jis݉&2R K%/$ )#\μT* scM@"M")weg\l喫1K⼘"iL8k1lJ!Φ}*SPɭzۭ91Dho"DyJ>JQj6?HR7~s^Q걱'G N! NH N7}8o4lOM&di:FOެV#u 9rօue˦*sϝneFF:נMahU*4*Npglp&vwˎįݸTY dƋyވ*k6* >T/1W_1WֳoC ?+s Rn&` lWib 5‘J5>m 4& Rͅ-8ozZ@yzQw`>ɯ2XmR0IL%#(IBdfC3+V̐=3ɯW?*& g8с;H]l!7`UF%qog: E}\1X_$U)Uɱ1ItJ +U(ﳏ4۹dr +z)5{X4lGz%Ebgݴt]DV*yR)շMmtSS馲ٝOM sM qPtLoJY;66N{ĝ#a$tH€Q>̱ cFy=han+ ҲAl wlAKXa)s_d,vcQfoм +O鳎#r5[fo1qkZ4Ot̮E;uU_@B*,ŎHdDRה`om8=.њtpqzo <ɴ_\>ZenbMjRT}:W;I.0Arv%/nBy*NL{溦?L\O{~%hJPif; +Bw#ƞį[_bY Qjh~z'4NAOI-G_Jl5hS޼p2!8\jir~{ZgVR<]Q9}K0w{v[B%fD@nN +[, ܎]}")~t p`˩Aeo Y&_{=^M aCp}v&QwD[+6׌AvC$!oyلbZW9cˬKp|{/KKQn{Ol|3 {P۞8/}u }D:d-tQM* UL*vcq5; jsOƏךq576N'?|]'N\y=kfw1mͰ:L}f=^4 Q@}6Zw 7LjȭF:<7Zٲ}FsĦ)Wo>獛h^Pm5B%} KZZM^ҩ-?iV1tK_3H4fR;IL\p +,7 x_@"6']m7oxjw_'Ei|q.Xusb + {J@P@8+ ~4L@V &27Gu9p2T.ߗ٢̾'"/zݫ,P/ üemu@ɬGD5oCk2s ̰۶(KB`A.^erz'Ҋ7Rc pH M9&z4UO$KzNJ^I6F_P>s8ՇU,$}[?@᝼,F^e.s X>]ҭ/֗UoC& yߐhb}Eh^zL.Tw64ǵcKThѫ>8šUf2C0GFލhH<'ػe{L;i{uޭOwi5gҠE~lixO{wM1:jȘ9I?i2ME8&b$i3o8ە;}N4/$|"^fAkuh7Zd!ٰaZbMY[dKoG}K Ic<6kҕYش5ʦӗz6j%?_tǧP:viF,'UJŅLm ] 0Ax>؏)6q&nR16s_M1sMlqI?)S)~?\!!ϕE7걛#"~.-Vѣe;6][K58iw(N'SӤݩ8l';UgKMF4ooK}5 qݤ_ެ7/N"_Yo77>u:IWc4}ڎu!֌m$57Idu3\w75QEN-W+w4z37S𶖾 +K#Lj#b;uʳN 1ʨvUMx/áלN ~nN7sSN;B@HU#5M>sk~{߲ew֪*es8dp)eBnp]ߓzl[0&r0W*Z)u0QP%0=/X^FV-v6C%+iʇmLZz +] /"RQ4 `Jndԝkļ&<Jzk2|ZNFۧ e'(>j4[57h䑡\5";Tsm|QB% BzΜRXIFw=%[uֵ/r6 7J˚Xz͙tأJqH [yEI_L'_1B1JpU-)w ^_>3[-NEAp{ѿС7ԋ-%"&VCS'EuWEug ;I{'}[K_q!U&XҼĶo#6K}=hb2hهjۺIvc*6?=ݐspk.jk|o=2<'mEuAsvDƏLȃ"ݼ$p{\1y4|ܫ;0s|<Ӛ< .w2N{Nw On:/,jLi|5/?/5 }ˢVj#}Vjh6Gѹ$S!,юDsN,:gePp,3Mkhi{u_nYv}.[ߌ}QnFc-:>s3SIMs4nDΠq4 {,zC렱3{YZǭ8V҈g#4x cלo4ȮكlBژA`y^B=As6uj:R+t{NE1m'e9*r_]4|1}g1蹳v1I@_{֥&<۪hnne{>ϝpWv!kfobO;^u,bEnk v0GoV{wE^6V(=kGHB:J[%IvD= +KU=#ҬjpIQټ"/TXAS g7L7"ٷ`. =#9I0MtY-'1?Y!맾?Yt$F< =T?jat}n@!.=*.C۟G mGb{n|/dM/H֝脍W>d ҕ߸o}'5"&o +u[z;IGRKݫ]giD':m{o󰹟Jz:3MPJQ/E3VaYsFs9N=MZD;IxW%ޔx9'vs h4JȞ6_0!"lnAݘN"͡nؠT7zsn;yhwl=t"T:L9{c"讧toԭS*}ܽXgw +Mڞ&Bp|X^ӰK\$^0T>cv҃ס^A6d)y7͗"f{/5%̚ac6!@^5b W1F!j + ܎% +Ю|+/nނ^ִ8x.}&L7PA{pr`\Tq\ ў\Sů#$=d2T1֬K%YZ%Wqcri/;ryvU}frr&.ȃI>P\p%1ݲbDk}X>L Ly?mqU4&buzm]znpS(供9|~ndg׮&:r^:K-R=%nW7EkP5FYUy.L R(8 Fg9HƉ}.Ipvq>MDcqxrcN8~{Hi:yw 1LAǫ꾘ǻ 15]!M|D24}ɽ8ʐىuCI8O8+ s%F1tnX,?K(:C/_cֆj :7e5%v):qW*HKo,a^x6.4ɟy^r׳ +bk3.T>v2֗ݬ ?kAʍiTV?Gx1ۓ6" (*wA cЌoC߽5[q| +~ippo!h=!|ܳ5x& R؈5Ww @ze}c5XiܓOE~Z:YWVP;^A4w׼="jEKHG iRbQ֜Y&с.:8I s:dnQ߮Ru^׳ϬX iL|ב蜷I` 3iւ8ֽe3b</5 (LyVpCo(R%Oƌj,b7D&0kg V.r~~|"%lW(v[ eAZ^ +q"cI[a)S )ႸlPZ!7 +B |c1t^tBZ:NNvV8gfUo>m>>];V(_13K}N +Dxe!!^-5Shd= ]6jL0 Si=4.qq2Q% bu ݼ~['\wɿ7ΘiL,,,_#KoИZ7fn_mGq3bBaG(+sdКŕ*u<6q,3W6+\S:S.>Vv=,c)ee=̣tu\035vW12eϏ&+!$LK_O< i[v(\ tnBAվ>Pm}[!;alբ6V)?EM\!l݃*C?9:/'&h(8I7:KܩBT+yMlHS\x7ⰔRXIF۔4}lSRxM %dEg6u~YV:*W M!VQ(t p)}]#WeƞOJsgݱi +tK.xE0 GaM 2c4g`6Vjw(5=pM$U=DyY/v/9l54}Iý z`~7LJ{2~sM/yWEyHs HWOh.GNg#_Uh:iTlj'e`V$][䁈Buf,f t$ﰐ΀_BO_j&$4v]R]&$Nf>2_EX[D/57H(J;lu^@$b.jb'&U}Igeb^!s9 !2wk+ wu<"]a\fEec FR]6O@Rp\po8l .aOVwI)^x˴9ΊFQ1+Gh0 6+v +R&vu$ tW$\:n +-3(_l3ɶXFn)Mq[(nj3K_2ɠSϰ4[[@l'n[zTldzn.뾅>s0&\eDLg6`JV1 w?t3^z:#EMO/SLo`ZJ[فq%gezjjOql&h^LLS-W U34]e W}|v{W[(__ש)6_ ձl9: a7F|3y;SR cgMbz6;$|R%c|:k*οF{ʓ1S[ +oUSSg%:T| 5|%9}1oz x#2 K_ZiTsY}VXyDz#-(n!]\iؖ Nbu7nTn;> }G̻.:NJ"Q[a}HPUwVîc+*{"X7lڢZHݱS0sZ"GCsJT d +a܆3Kש: *_hTޏ&ӑ2zy,>k#@>WygxC6C24rfvBgɗ01Jw9sr6 ֊ydgQO衂}cM5A2)sy왡Ocq5yɯ 2x+ӀG? +zT Mkm;9~>EPi[ +PzQ>âŻ-yL8B(s3~MwυRax**W8UQsԃ;#)&EA:^%z*dVqscq8ehYvr4ž6(>&N XY~3t&g3Faۖ<犮C-N0TNr3[9,&]ɮعW2,?H7Al3:+?Лή(W@әљߜ\t#ܦP5}ip %ꪹ4ٖHJ "oBjo~xAL-d9'S z-1i;ި +/;d\MݡR5֝[Ђn33p֛ax~7+)բzӭ댆v.F +/HY50m}GW2eg2<N)D_fٛ"q0jdnE~so{A$߯dqLU"ISm%.@ir$ `e7ag~LY4ObE5L +Uw| nakh]vA-խƮUBn8nEZxt#`uP1_^zk>s0Kt_`4t`1W굉7]6 % #Mk>#J˼<=/d$ɂV1eAzb2L8> wp +;{N,kIJ-$ %eQfَ̲K#J-a2n:k>O40NLa-3)^!mr.v۸1|44w2ow\Yϼ´!0I dz1oCf̋ ;O]ҍG{ĶR˽[/9cc%9:;:G|Edș>sNjOBkݕ#͎o'scw 9]ϯN#aLVdH I7[H&E|3i W-3-g.[ + VH#L{ H X䮤Qt쒚 ŝ2b +n 1A +0m! a&8/*\) λBU+o_jjS sd-w|Y؃ȵY|y̾^=ANRabKfTmՈ|O*|MqNhU{T*Ccs5Ǔh%ݤ"ЪE Tq Ȳש)6qS`0.N$:K= vf;Q3%PI,N㒆AK5}OC g""Jq4!@F$FRM,sx}=n% 8WPVc:pN@d+%OJD۶|Ȝtcg5+BvvW׾xC0a$J$R9ޚS&6` Fq0JL#uU0ޚs #O,>qRƃя,GX$Ō1>=f$}??ǚŚynآ|)^)3$ov{1L+Yx'.K`\0d{e:8*e;Ś +2[uJ\\ XߦTېEt󅮸 Ll{|K"W{u^}auVݕOa^R Y(sy1V.Ȥfxͣ#H#]+^,s166 X/, +v9i,9qUNl弇2Nx&ORL.$p"ͤI0{?)or ]K2GY 1W#)NWv51jVi~mȯ]d +Wme \_{__r0+4NqY#{ߩ|c9"t'o?s -~mmungQD\ađT4.%*OeFМhDZ.9HG"Fh.zݡ ƪaޖB?V)OBtJN"|^+Sz%Kr7k> b.|IjpNLsq u9rR)ibuLpP$`%&e.5eFv~|'r@Rì|jp@'G¸wt+Yd(ު$+|Ž.f~*=l»s}![Ư̒M'0'/e{W/ٔjރ}q{Oҁ2Vd]kyFUC$s q:rO"HԔ9H7ɒySsEc*$/s֥)6%(@(A_yYОr5D16_To%fH1 Htv98=llIQE1DBNe534l!~7~kPɌGΤ4wDvgg\%C0o#BH .q oG!"^:u&T4bl#]eĺ\˜7KZdzx٧d[eGv+U3|uѐ>F{BBu2'˲7gcH +.y,i13f@upV'b[]lr՞{͞= c"8 1_@ߺ!}}~iCg+5_%dz 5ȃ+T̮O^(5pf8×/bO +l + 9Nގ31n&LK +D5YUd(E7NK =@/x!]"1 =ZCw: [d9Y8 "EW|f½_s?BPX&R= ~:G;GsFMo3[rzk{C_[W&saZke/nM֩R$J_lF'_:u8z;!O=M~d-U +'ڂ| M ӫu O_˂e\`H2&Q%wZ#u5%\QB>e<ϰZ:ű؍\tѹJ jgM<㭹6A_4B^$NYЄwG+lN+i2Zsfkȫ<…73#\Xtt YZ/h>.W{%L0OOMvNP͓&P㺦%-(FRInC覔=Lr-AՃۻ_sxT;7rԓQW8Pn(t4ŒDLSn&὏)+E8k,NV.׽~HyZwT+b#{F]_/5-d-˃VA}i9xdUDZa w E@McFmGh,D#Ylde#O! 5Z̰͎YVvlt,뼕ѝeGdOc4]3 sWSC^mZRPqO4\CX6t굛Z^tܑ"ߥ>{pDD )6F"CX1܁OTKE'Elk5ζ AO~5xfڦ^ʟҳ$9TD!ν*亊4`-{ǕʶDa+ <~UF OXs^68cW d+ r +Ɛ P1fmUcKkKl Z\zk&yz[7RZZry˶+um9*v&ikm㎄ʉ9nvPRpTT89 + +`^O$T\{l^{R GUj2X ͂!`s-Rw6n'ʑZP~Bܜ;SG#">w 9UaXlD"8}˕r'+s@[c^Ƣ/Ӑ4UI +7yŠG(;cq4JVHhHM8l.`S*ՁD2QfZ6`u.E_1kT; ++*~Di3hn2Nx>pc5CΪ"Sa25Cidލ^Ona{4eԈ[|ft}DcP۫%u_릧 iHoO9`lxNΠ)I&_wruLaM1M|;c;*'+wdpfoP;FşeeI} ~=Ⲗ|"6Pp9 ?<҃$ݡΧNjK +ݩNuһ:!YۑeJf{D*ʼnew/t+B-Lr/L3JWg3PipS?\Y7ϰz +ϠjKeS33rH!4L{SBîLh6а&4ܞ\y*b4tS -4!h .Cd w$4L[:>KAk:1C 84*1Gpu~mˠF7twfi;=_wMп3832B_6|Գ~/qy~/ݐUҠO'qGqt9\ӟ%W׌nzA/ +7@it׃&JL !OO\q=B|t 6՟0k~_gLܯ_'Ї+G[8ރp a6ssaX\Mo#uaSGI٩\$(SR KR )cA`&8̜3kbV"Q!&ψ N7r3 _OY):xo'!N3qy@1?sQ_dマ;%j'/(arlaFrk>j7<ԭD]Pz݂ǰPAF +ED}H]wP #ߩ~j\..REoj,[ŊgEXBax*i rVD Ւ;76 +C(c +Cl;6yt_֌zIrx^x gWHDZrGV5ЙBZipɠƔN2ӰmelGUl 7P_R<Vxi$YS ,a>lWr IL)RwTsb?| 3. IA+L|:MO/?h'KiU>=%xf]!KW_Է*G|t7މ/{*fB*)A"]緉zm#t (nXA ?~FZ5mNV#WBmVz:~KY$\0rUD R"j]0#vc)H7gRSs|p3!q||u 랹bp8 _"i}]62Rde2]1U9.W+x;SeZ\Cn!]2*{%߻#7t%r+?w@w +!38 5m|WT>Wpk;YYp=Ͽ0 +Ao-½J AHՃ+Q::{bbwq&?`bC +hg@ĈF:Մo(*`7xAlt&ŕfwTM6o膌Jp!XͅO8SL +=\%"-Na(DRhCW vIDXms ~v U<1 {,v1Sy,"օQj0 HP5|}lSkR;˄"I؃"KԃM*仰7\ގ[{nmC1HŞat//|RN3]o1ybtl¶0Wz*f@[ +dž4I_`XC%VC:($B=aK` P+̚0k¬.`V1Mr:4 uддa(@`M[tC/̟Kkmĸr |G9􂰑N>J9xg]O.إY6ʁ…Mz!e-dHRXG4etc|h$H0:][ApNbǏq:_0đ 1t*kobia\Wn $BH nDT -q7AVx3, aqjZ+߮f O Ygpؐ/;$xq%r6CX!Ad| O>+=["h/_!-3 +8Qk67ۛ "1hLڕ8 + +Iy uUNUv5g&GoT[^{%\fII5 }Pj^xĭnOPuH9݅ʎȕmÏTn;3cB*,|PeJd$ .E +.$B դvkF!l\6(ccf Xya ~8$g&ƌ .n=!7T?R$g`RRjY [ 8F3fh[S?Q|E%PIdF^|v=s尢g[!IKEʇz<Qr^DT$HN'GaicvO3K9Tц?F9E%v[\tړeb/b-~S*S]8_҂V%{{bydzkZ^RK$~kfTKqzblQQ>orCXIYM|+II>4曄4or>Ғ|ic&Q|W7Uᛔ|$ߤ㽀@tioL7-nR>nπ#d{moM +ˤH^ɕĴy*`d"PB6Y0lwI@YM-diB6 7 +d79̮&qMN:2t֏MzeoᛔQP;MWo,/}&\3ݮ 'È̈́ rweh n${=!iYH.v$PCTv)AeC +AMU* YKJK@7Z<^ J{:Q@ԇ3p`1reO3WoxGjFޠk>b$ "@-I ;`2K,N,%Y[f brgJ`_kY 6I<`;>v (a RC;X  PTs]NHۡYvV0k"'JA ߄Q̟UgȜ׈+S.UV}} Z ,Նr# ;Q$xI|G ދx_o@I^\Zl=H혬~Z8'c||2XU)njiڀyѿSv]f??ȻElBfG@.涑30Ae+xs9kF( tsa|QMamH Zgokڦ( ӷ\ڮM]`JNY=п<34Ct/(({SjּLK9np.[!MOҿ0֜MI'BnՓ$}IMْ$Es+һ'V2fZ}Ee*WT Er'_p]Ηm}c1DUJH&u'K\y +5%QBƹR=x`BhQ+ 5)X6r|w- J%1"0[Ap|>z +*&*Gud%Bp2L聋=Zar $: +Tc&tIF10a>{#.rx븫;y Un$]zXӻ[s&ҫnX$l<2>Qyw &wd;j/€=<:0 P75~^ü&U .㇒0ÊJvr 3I~]%@dzv Ty7ò7tps=L`=W$N9CaB}/%ehBl"ѽ9i! +k 3qD:UEqwc>8,GK|<:ȼKj6?yw{6mݳ/IGR5c/n8TENJl4"sbh 3H@A +9L8 Dr.e7Wǜ3]?{)F61Idז*ݺnI;&K+PBJIb7xg#ѭ3*!wwTb"ڷTnݔj7-g!!@++TY |,R2ے))q8/\{;z~KȹrPJւV +dYbk wHr \%]̍;HƹiT?_͎4|g9~;h$#OOFlm]M΄9x:̊*ظ@yXU 6Zl {J 25L*>.QTJ!,6dRȁE7ʈ(b!&QzMiн!0z[dԒ? PXg)Pˎq*'dqF`r=# ()ɟُ沬1cz$0P`:RB H^9@HDMb: t`9FR#Fz2 +`%]ĬXmK9b=!Sy_lqS6?4:$lƩM\fVVSWdSͯ0B,Ykk8,x! r2];t; +jG1v0]V'y;8;npv]>+`&FIe¶wBb/v];aDge왲ߪu/|n >Cw"CD5S]uTiI|&mӴn?Rd +ABt1jJ k{4R(AW=.v_PJz&sg7b7K#׾n[/dJLSZ\"X F%3*l9T|\hs[I`// +zр*Ɖ/d8V&>ʗ~_PSeON@>5 ^zC̠g +Ú!7a x(4KluN2TRs,݊΀ڃ +^{:\}r>zFךȗFŬ1sz:a:|klWrSwuG jާŔL+AR+Wz}),DV9z%H2ɖ3Ԩ$萉T۠;"}m+)E|o,z_с@xd2~XBt lc@L4rDfANrΧdldmpLn=5L* I?%u}G/*ŒҮ}}L*F(lTó~[jf0|&A~̵8WtN4ƨVهd) |Zew+5}NN{*E(`473t,ͯPdi qB91VX[;R@?$#ҋWxN-J[y4GcrR ':ⵢ #~L\OG+&cmvS^n^VVU>7$h^{r17jYXU|n.~lsxn}W>VȢx$A+ Zu0=%us(q=0YP~,h+(΋hr4|ϚEWWVC\-zr!~)@0˷(焫b`e, BEE Cgr&e8eO?{`L13/SXtG^sT6*9e:xOyy]&N 1B|d/]|*q1Rq{TRHHל ^s_w%`ԗ5sm@йٹZ{>I6Fgk\W֧c-ޚt,Bq4b[[zjvmjD3qk kϼ1_'zES1D&HbB vo +faُtMzo:_՗5ک@]T&lQOsD*;>*D0ܜhF7wc}`^?vcԷ]JN3uty~895t^5C6%x}q}P,Ird{S;ލ26lÙ?]ӛhzʳ`vxN3 ̪9d^ ܍u?*6ܷ =HMl %'kY3C^kaüjf5u쵾Qר1*Z~0*v"'P~5ɐ;[] p7Nu@J΢&yͳWyA}^ktDv!,wQCdP:~Ϲc:-z:T09ݹ5r=}9t"x={5v +-1}EgNիy5=aeoPMD Z4kiwчj^jO0.*mOi5lLLHw&}\f֥oYxu^s*Oҭ7I}>s34l'(W5RIc-3eyi)47xnUy/R+ܫ +U (5q/9M(MKi]BgߒcAkp,!w Zx.'hI,vi_5^syaE ;,A 񕌾OAKjBY{ZjüZ3龍:Tb{Nj`];b *`l+>|"Hn!4U>H7 }Z[ߵqTBէ *:7}J$R%P']8F\7- {Z6*ωD Vr珤I7㪪~Д23;#T ۈJB›;4r{i U4)B4HC3}&}/7y}5J; |/  ( Ј4M=GqnGūbi7c•A8=1-u&ǵ6:=**Q*捭b^z,p}{y}w+MY&]Dpj^{ 5Pt^Jά./2}-kPr +h!qT< ds l X$dʃjϥ6T}=+;PC7@?@.DRp! W,hk鎏ᎍv1gF0Iv_p4*v/&n&>*ҙ$uA4 KJ +ƨR,r}Ryh۩ %~PMDs~RN߰wUEJz?}|6QU lcM*X34^?給_7zQ?7DO7+@}3eIO +^nfy'Z ;G]oM͚Tn&߅>B*ZO<ļ65{ȫfg}BKl'Gר =WΝQ5gA5Lj1IQЯaVazTqv!VZUc^-G.cN9{qم(xgW_WwRBo}g/G8"rsa^gMllW4ރw0ǪRn.UU +7|t289Bo U5dtL{mZ鏾b]!rfCDmzgoqK{&/]bL܃cD%h쎛a]*nzS=3Sn;}NQ:}mӃ7՛ջoJu ӎCĄ;-`޼-`^2ͫ5#_{i3Pw@R:L Zy`k&clt}z6 óxNS +jG_P*gj6cg 9_ 6:UҾ^\"=4[R, =$.vMgD䏮qA3P|"JQPe<%I…(4{橠ykвT B g'v))mɪ =Rsj溨FRKw\KtA~M_随">8^~^\fkW&`8gj+.Yvz}yp)ލ^@WyN܉L:^F}"a`wf^K{z4'((8 5?a6Cyc]غ~R/)v(P +Z8vœN֠SHi0n\r̎]>i]?R<ڨO8C=-^m?T^2TԻʜDZ>hO+GoqbMuҎ'J$u^g|@q:ܥ%H\nL% :) +qH3b *bWkzES4 :ouvtNI6=NIF)?E_K8="(! +JCj AC +i,_Qc]#R$?ktg#h5Կ7@3`*hxgA"-㏞1 >s]4t[cR^1Aϲk>&p,qYrCƦ oǸSajGbajo¯ .q]6w˕.vMr$cC^<+$)IȌ^ f^Y1>o>v|t# }|sYbj;UU^_;Q`p&=lcsNb -g$Ѝ=Μ9;#DO_C_e[dM:I*X>4 +%:'=j8'm~m'5h4LESNDlYHhRdP;LG +#V88B@M[O vH`6S^֭/;\v+ +ɒ3Y l)!s?$)~V3aT-^%ĺRu^L2țae̞0?v//V,pܧ%R 2~x[\1z6' 7~_e~ }-I],6גFdcfO_MZ7|Wv5ǘWy.Ck*څK̓n)h4LJ*éPmrλ R)bH$^64pg!\y\ kT@]k5vЯz|nf?&oEe +{t$]~[wBרvS^mЧd< KjfOV?nʡo'h'Յ}|C'Un* G KkR=."߻rԅ}k׶ә\}sk]4jMVv?b5j@^fLTS*U4P|7K Nޝo7l3kOMK6l[ZWZԨ^;]f5 *ր+TuQipK`@9okɽ h#_kwQEr sO3;!^s|m.Dzh!܅nDk;lM@gT]{60l]%R3*'m) *w:GT)6a_R\SoA{Kũ[Posފj?EPJ.t[EYA2$HKL t ^.O=|Yz&r2bL$qH X%Y~t_,MI#ɉ=B5װ%\pZCGEAz7'=ś`BEHj$=Y|*axL\PdH- v 9ϋkdBm< dZky*rKq^|W#WI6.rKv[Gb2 A)ͪLKk8Zg-ޚ!|׻{n(YQ{3\_tˌsz*.YV~--T +zc^9aF4tsdHQe7ML6(1AoxN}npǑD%X4'D^27=ĩŪ =8&p SWcl҄\Sһxz(t=\ՆV{Y@~LI* jd LWL ;}_Ƈ$1L8vN]ƕÍf+ _\vT'%Յ/j*tEWeUsQs,۞BI] >K|;z8y(灃,ga +]Ə+IoA)GcG#rvuh1G\&صΤz8R1G_GvPD ga, eE *ޛ5ҠnfXÜJߩA8^57*;ЍJ*!l5#@逢[/HB!Kc6UqZ_Nz,zzIzB}fRKN-2}Ժ&hH i +_}d҅U2Pb"_tqW_HSe*5i'(*4XyBs^Ч +Py܅HyCTB# H C.juP}m ianȍ4_EHF)zS/(WH'^:!7FxWk3fu\Oժ6:1`Kx5 pxDfZ%?MNFWW|>Rc!XKz W@xOfg<@@dGQ{P7U r/&径Հ^Gy=EiD6迩ghI̲'!ld1V7s0!)R]7rn|I8!f}$xK2ߍ!eXR~/U,!JʊKf5nXArYQ%Y/ހǥ˭v{2>DZd7Yrk|Ͼ+rD`5X;h\Tk&kK3 *TUFJ +ֳT^Oʵ Q$Js B1Բ䅮/Z`-Uqw{9 (՛ɟqwu^ɻ:L*o|qm:qv^Eb5͚kq8Lkjoܳ"'=h2B3ID{ImvteaD">(7/o4Zd\6\?CoWmuN}QUEK3))8}tg2H#3 fA\ /qUTю˃dnG Ѧ0a 5E+MVC5V+bKeZ'{neZ7Y F{5F$m!p65k[ .jM^-(M",~1b8 s`WPN s$΀"Z_ =>U*-̽ ,*!B)zHg?4mh7Ćx4<2?|/@D#d4/PfE\0ٟHVLN%lFQVvꩍ +3{8_ =z*g㧧תFGʳw,w}]hˆJN7>h߸h3K9$M MAz Gyi4&{-cWFDŽFfxu0x>fb̀vq~}@Ja`D |fgӰIul,n eЃƆ"W";Y#PٸHCvO x3C][odٶyq(Ϋnř4NNXI+  y&&.`a&>pU~)|yIRK@SI~bNB+nD'h;ڹeQ;WHkFUdD`cM5SieJZ9p 5jШlRejhl9Xi޻v{/xwYj yG^B2C1-02_u o]&rI2Ix671&`LǤ;qk䐜Z,~;!;1juyXJ})UG-fQ6KC攫3j eTtC10H`QDbf!;Ŵ=ueKL.3,?W3KDZ/ǵ^xR|4e;Q,A\2F[Kn}d'a-l60f?q'^K w__z]ϋN3:zgDb0Y1N.;bey3~)68Bf|c$r(#f9ۊMNmF&fA:R#}V`Vf~=dPdϮa=~nhIS:JTȋx.^Aqty="N1 ^7HB_ccsó c}OVu?'{V&V[a\q[b%dbk<;Ejh".y#oaG'8cK }o(~lBjKz1&!MQe7 z86M`NIĭ%5DBM<83Bw, [[XI@x¹b@U].%!] eLlX>6:v!֭ѼӉ7ڡQ.]ʣVnHuEUC%.gm+:#t0h~nnl/}2X sڣK#DZ# *.> QszEl9!2B"g=cFdr&2 z*ͯ ?ϖ_۴%3e ^=O6|EXmUbOu-xE#oڏczէtuGkwE끉Eltcv&P/!מ ,~9(N*w%x;<"V^ +,[Y_dY^om抭M|)xkSWuxDue2EͭhiA{fH-˘v/U>׳s$5"v+X$1`=%,(QO gGiWO/o}]JyG]JT6'G63S*5gZ/stgV'f{#,"ڏ>Q} +٣6hQ/e$Xp"65YoTG}TGz-ycu߷F<1$xڅ[MIbn2[w)4OI}( m.N=nTSrljz֋Oѵ{||>6Ms^_}CZ)2[]N< 5ҟcϦBs|zӠJwF1;NK/e _Zv|iKz@OcFSΓ_ڝ'7a-ΣlHã菺!P; +T,FFLDC?UۊsT9F_ w|3s0cw j,6NAs9_a:dD +巙J;>zT~3Q^?HX|nx(RPyza;Qz%"dLMw\լEda")H9$ $zDH'"u#ST~=Ź".Cf) w&#I JF7ƥir$u4-g+Vb1g9 4MJєCP"WhX}ֿ"w}?᯳ARX* XhªK?(ʠD|.ɒ7ޤ. +}ltVs]ȑ֫E8Zp[?&{EN}/MI`;X@s 'E66*xChb 9҈?(ًހZ$%:h@_Fӗ%}ސgjņ~9EN7'UNbh? U&{. Xxă12;>2d#=?,LӗYM! pٻX~y Qӗo=i*rKHWXn} +ldp!1AFC-4Rg )B9BC> uޟ˕)GA>ƺi֍cO1`z/c,&hCh?N) TМ'q1jDOY5ޗO˩0 oWPdkƹߚĵjIa 3Lq6jU{.k _^ @O(kIÏ菺lѫ}"[5`.@@# ̴d#DeTaFvXwp`]'z[@b'TQ:+k(#02Ϗly ˠ=~ cQ\ x^$J'p,!;Y-hӀ|nCDÿ]+ĂJZ0ytK*efpi%j tΌWxٴԁ}j,峇?Q~l,:0U@Fvbcؔ$8:s]؋HMǝID[ I2D~$D= G:[g8Nc_e"YM|"hA|aک/0*\s%AKI6OqC3"?Nv_Jwx3‰ 7r8vf}Ĭw0dgrmH8!*7]S4'IcԃX)f8wG`+^|eq_Fu,0܏0#ti8ۘw+]  v2mOeeO2Jt+j8mq0 NkLݒvH)1sV+"ت:j* .H FY~B2RgcgS˽V g-DtFll>/%HH9nGG†|!&pXqU8wz?> NϜRy,Mh6Oy ACG=6x,k/a+ݲL"!v2sfױsuɌ`BADiF Sg:cm /#.HFNU^BB8mX&+ۑ\Z?󀰡wJ ^ Aɳ$8 OF?B;St ut I,"[Vz2 XjG6fxV؅HF-cf3|@jΏ;yG%z%:x\xÎ/6weݞkFԮX(!g=ko:_]`idrf =*x.¶%zgSs+됲h߆q\e]bN$t#ĚiZuBl=k1u٥#^hw|wVHEH]ƠhIpFv/貕 GӰx[tt<ցPe> 'q.n֩X Z&V=]]( !91~Vgk83g5vDjzyN/(?b ףO(;:A@{c {+̭VCF-sOY OlLpC> ͛P(%iD_8~h:>4/b臙 .n~hYmN&ۗ?>m{)K+=Yx$jOǞ}طc8&)d.:MӤiFԪǹ]J(WgxoJ`2DmgX])T!E yK,$VW@o]˼%BF20K!&o64mW|hQϨDHsvt[G'^:i>*0pGTQUїnْ&p +߬ _|9nPO/ +]q$OzlEW"-T!TC1Fdq"cjE7g}Lĩޖ_i5Naȟ91}%ɴ4crgY>P^:ŗs u`#' ;;B[ T]-)~ ¶s.nğ ْuv|PUّlW6i|.&sA'}-A]ƌ9{.0ْ+@X1( +)?x]kD;ʫ~Cs  #$bgSsN\8~ݟltf:u7s}U`vBS+mϜ4)Mvu5gW9Mڜ $9旜 HlFM 1.AG'$.-^wqml<%߇ C0vgP,vŚҫ?{xA~`X(y;vV  Nw.HIJVNj2E,בXx.,f?u(~n&tb"Tp.܅zQ2V1dt5ud:/=n,=]2#QDiofJj)|OdUyתXM@|;JnUE%]}bz3izG(xvj`kbm h=tycH7$OC0pSD` ׯKe!uG[-] +t?X~4ټ{BG=#D^Lf76G3pp[jrz!o ]_ >6+b`p66A8(7&-yF1o[y}J0xZ]iTv(<ξ)q9b@T +`o.kAO\tiK K|8,9\x0"WΑ EmUw}tIB @l uᯃT|8З8)M2Eyxc m7\iG̗LB?=kXdz 6&mQ7I١gNI@@؏2u07ǧ iΦ~bd'E{SxEа)3ױxԙT^Irvjn +I6HaG"V豾!=YJF +W(D*꠭щA?.Fɯ??^ԕ;(nq':"L1PYSe-=|&9/HRxQ*]H[xC-R+Բ.ZUl)I0*fsLJf#6@1\)'ҰMdND-NQDhC:'0ԙ$9~xQ(ee@ +JQRCH('+A%hA/,Ř NdQHb0}: +Y.X13$9(e ~e_-9x/?Ad,},@gxs V9gJa;b.7y]Q'Go`ڛǕ_6݅! *;ruCC85N >^xl!\UQ}914aeszf% 3hi"GIiŃIE|_vBm(sA j2A o)`fVЬ~lvCׯ;#s|tYfTh5:YtvF2]Bfy| +=54}k$VIluA8WP]_gI|AS%] :PH,Mj8Z9 ES=B3͙$ޤ(y~g0S4<_řVxːTQGaS-Bڸ /4v40^3l%mh֧V:ω ìT=' +a0A'ߒ XJJLk с"lj%yU\:(RWd8cЙp4`}\ 4RS5}$!djH,pq5݊]ZYe%bEVl{bo#ԇ#Q\GbGٞ G`oGZIHR{=LuI1ȮÑ()%UQf܀zu"MxZCp0CBVRXvk7K,LbG0Z*Ê[3Gol?\|CĞo#WxO6G#rsXVٓCgRxX0͕4`r,oԪOskK;~y{m>r" qޝ".ve*E\]r)﹍6wCta {y3ىGw7鍝8slcdG9>9[\5,( K#==t&R\5WX7 +a_辙X]iۖEg8ǟN|<8-M]sEkvC;8څ7qy +G2#)Yܜf-ka"ldF _KGJ 8Fs+ jͤJ}@e4:k+t&ſN(uMu%99G1IvV[rp [D87&qOňJL\8>z$n#4a&M?ܑkmHqlfJR$aѿ +D/! 0MIA2 M ="hJA{ם8[E)G҅x@ !9&a;(F0Ɇ[ՂWT.w+~ {7B|=BS;cbxoq+y]d 9_1' 3D3 !A;N 'Z:4F'k֜8AH^*Ezp[X'I + )=4yVJur_s38d#A'3.2xv⸀hCM`r7 7S9iwÏ7Fv{qxW +^Ld$j +e]zl'elr(_3|7 FDP)vX#D ֯&aFH֋U'~#mNiЩ,q+a Ups?sv1'x}f|@!^/ N /Gf3X+j&'>uQ兵,pᚰ2㓚)/\"˫8s,KS)ϖxhvDrB2߼uz 0_? 12ˋv:[ui ZSu6w͆'[^}9_ѿ~5'Gv;B¾~w'GUG¾E_\ 28NIddN_Ť.8/JSn}Q'2-R&LH + +D*y]KSYl5pp+uCN㊇7RfɁx.aEpj ,BM:+뎕/+;h0~p + r5/,H`5`@~JtB%0n A{_'-p]x[M1QA@颷9͉E\6C -_s.̠cgIgp)d8 J!m׋Ԣ΢eFč0oz̆P1Ax2PWS+?esclJ3]{ c/LSzMq~\܋/:}>MqhGo0HS.y-WR?fy6&7!$ +l_J`뒡l?x= IBe kѽMg5{I1,9d2qO)w-P&ID@nN##֪L?KHָ%$22vGt͗ öQ1\b[>oo'[SbQL8NXb,JZO.ݽIIg.X4,p:3XTI*ũbA*#d0btt^&0<@/@oQD,I:k8w[%!\^zG7Z!'жAJ-͑e7b o|oqi5Fq%wғDl#pR%.>|}xDn/Ce +l"Bp9۲9%-PC-"/lD,r/d>oOxy6^]mqD\q,.3&+CT@xg uqwW^I#X;YXyrhs +95kLv;yWĚ'/KB^073Q߄S9"]ese[uLyvFqocb!`=ǩ8{;ɢ+JK%Wxv/p g"^ cW#0q5ȷW##f'QPVF⯘ٞt&Mxvo|) +[]p8 +.e]Npi8X%t|x~`%1/rO~5؇X;;S'~nIԌ ZWM$.Fn Z k4$es>1AV]K2#|6}u;Oxpڰ ٺ5rqNAoQz+St#ܝ|:nmlRM@ DzqTLլ]o߸M7 +,v㥿Q b_uK֏DG1뛃]}# 0ÓI±g$N>^rgp!m췑3Y(G-Iy4SlQD%kMVLqtr uD$W ҋ adh{oyiDꊿM=TўfgF{wgꅙb'yHɶKu\vrzme5N2\oa-S}7{!#+" { m4<_R<3ٸËUwgܺjމЌ +ɬ̕1봀 +[5W6:QCzl( ϙ^s*=A-|]x,}2ӣ3.k^˅K`TrZ4;վ|rڀfmyNg?~ йSmw!$؋{&3f5Ӆ}t/3vs|SvIz ;}^&q +E uLFH'9tS}#]"}KFZUҕ? Xn?u{4n +g]p^f4$n0y +x r=aUW"y $e{nޤ$6&'`E΅ j+` |1qU:9~Yb{[.(S?R<'#j~ް~g8[rB9\^b*;P(G` 5B5lmqT\/nKl07gjVq%$҅1s%_mi9d/=!YG'}`8pU \G|yu-_O}ܽn6b_Ch{ڒ_ +3ΡAP_S(jKJ]Y+ [e܎Q[VuF;;@bTO%\uv͚OtҕCne {(QW:!xE%JY%dE+]/q9Q_fik&@QuQ ay}ZB`1:c5#`3ў>ؘG }\J lcNeF {Zvmz!"dǿAZDw7,gXkz~q"h5M &ɊvemҾt [Fcq60:aSG]w K.'۳ 0[,|KL@Ɖl1x>>eKOf +T$y93ŞDO;Nlfz#^h QJX5yyV٭)}Ta?eSثd^~HI7#G`Z +BKs>K߹>*EL$#2l*=XFvptCn^w i }XȉL(d=>#2#ӴS/m3]))tx%`Xm(ՆҀ7j~]0^k?KFV%|66NLٺoLleY3/67C>I9X,U#YhIzH_tk7"0R*d4Sþ4l1I]'TzƉyBCTu]duCB`LoB(OS]V7^t᧙4\ci$9:ҔM2.YNO ƛva=iӔ.65CUO +P'+(F9 <zz" PF,+e)V'ұ'مd{n֔6.;"id)EGEʉ"天nP& _mB4_+>5_9udkbg%p,ҭ ={WzEJ5}-xFY%ePݖӔzd FM$mOA/z$-i +\VdٕT+@jB- +"AUt/KAQ{#DYl.A^f8'x$Ctg!n%ks| PQ'}@3:KWBr5Ձ{41mDBs{\;Jp %(^q6 +)^YWi% LR! Ng"N\!, lH=F'yjH_ 4HuT-Z|J:2WV dSlV؆?X9)n{LۗK)}"}@hK6<˺ +vsd2iE?0޽l3^_*˝8ћ~L]2Ǻ\\i[`sܚB@A~q]тZ鑛7^Mi,'𙝩OJ-X*/N`RެI18PZ}``_ %$.z u[ P5 R`k!8W$_a`3͵ +J]/$I?n/od/0bCCd;vk4*c(tCpFU<t({$KOR +|x]Ք]e]99I #{ .&*vQxr軴{'tiH9m 'XD'vdA$.S6&pc倨GRŒai'5{CvWRW%$\#+vb +MPFP/N^D*(QSt:"pr{C'>L^}㰥Z{P@k: ./$ܝxت"#@|RPtMQ~R:Hd|W +43)D7tKick 2fz,Vջl|IWQWea:$WLZ K7TgZ"U' pFG,;l۔&gﻵ͡&K@%(qX +l[%NX8,3PGH@h=d&!;7 N7;{'A~Dkli$5.\Qz\$3*/.ugOcvQdF阬d/$zn$yPf3QyաGxyA"\l"*MZ$707|:(8buF t`rfETT_a K !N4&\D!DKۈ&!w`8SC|yv8_~ԧ|s[3]nT}GB&3[`"Le8V8B 什];"OWޙJO3 +;;1#@c-B4?9?9:7`~8ʅg_~(sAS zI%?Mc!@ oLhDvHhK(s,.]ҙ ɯ$߉C^ !a!6S&k#{,~ϪgҳhisJQ.YY4?'e_5tUQb;3w'ՖGbg BzhfJu[:<?lXW=C;mxtT  )ip4B{M-+Ѻة+6iګ|>+_Zϡ‘ֳDoWbPof˕r&RjDfKLǒ-^㡗܂0O}LYkG+TpT61~.f6B% {Xφ^u<I  T\ +\z~_U֪x d~ceQ*BaF+*b$W Yr:_4ejH3tv3"YycuUZޗVmyd &@yZ+2q7Z zFn۱&j~kNB"0)}tO*?1 `Y@ٯ|.Mֱ-Y O`N킩Ύ,v %j2W +y$WqE,=SIHi,RC! +A^aՓ< Zd tx yl/lEP{#ԉ<JmF)WX$']]?Vph'| R(*"'E 'f.pbiRƉB\fPh>/AFX51t\.-GBы/6y MɁJb0Ҭ"'Ud:rl=(cFC$oO@wϝ"zԝZNwZ[)ݲG~X϶&%'5Jp̍4D?vCʇ齱degt",S_ױAFPՈ!ݣCC{$\2rd;狥Ongm } Fވ淙Aw!Tɏ!(IC>jɎX|~xhSJw޿W}/pqe!/rk1φ4C6U3b*HA܇h3Rl]#V 5Qtcl3~iY ++rĉ1[" -~`ԪV7Z#wfbn|VQg.,];jܓ}r*[ 2iJj9ƜfdT+q֦mjr#yKwe,X!ɥ+.Qn`>Wn3LM^`y54_9 +WJqM4Lr&/y3+1~y>]f16dX}\pP$VH8;X7tӇRi?&C 1ٌh4|eq#c$C\igTAx ̠Jh&LbJygxu%H9% + F+j#М ݜ=?.X-i"^GRb۹kڒeN{8-]v{jdFx-#nbIZeyζ#dJޛJdמIy5|m2w @P#h.2t%N9'%]XnMQhY^&TFguü[0k /1#v ::(3mEo[Wq̟eqDϭ{YUf,3$M}lOIq) gY2ˁOp*8j-8W<,ΦAh/҉SB#ݲ91 &tdt?Cr~ I?Kw;[{ f7Nk{%;G sR89)95,|oܸ$VE8zZ\B-Q<|I0ԏ1L!6V?+mev dmL* :s=` ? *}/' |1A9&dTH%H#uNt 08=Z[o`?9?9JW-j#GIl@_#? O쓈 A2}7|>E/쓅嚣߻ 2TjJQ5gRo +k/ʎL kh.0+PEf]7~8(dap +nGӗ%F7Vo jb ceYcHfX=θCxdnޒQuń$ّ$"L8:]CMJ6 H;HӇ1˒pNLrא(ڲ=ɚf P& +iz*ɘ҇Ϯ LAX"#Jܼ.d_UG j$ówPʫb\Xf=C9й 1tу0C&{8a h`TX6<;&ؒbnC,сJqtЗp:)W33½q +n(½f@}vr~p|eOny nea p2bc򘝴qo*~؋6ZcY6l)yڣ'Ґ0;zv;l=Q@GbQ Ê"f"EobQh 2SCXLm jku X}:yfXq!/ + :Fgv þ}"1^yX5u9UߢiS=ZᬜbVu>&mc|(ᅨ'^4xarJ~Z?*S? 6Hj剅/гP4I6/v]hwgU|TFE. t1zQ H򔊔X/Lt%J Y )?%fa}4AjP3 %4jRGGp1 BKFTv?\N?ub$]  ռy] LuHw>.nfSa vdg9T7CWP<_vǸ۹PsK$=c~4.tUUU}H UDىsLjn[ |c>}r G;؟sR_7ꢂ4uW\Κ#ēv![m*}pd ,~HG6Dɦ=rEsGSbH]R3}jeMJoUy)!]b Pֲ$@ +ΛMce nȘlzj;WcU>|$>D)!-Vϰݩ54 g_u;[$g/M"; |tB&|t;?pIYM%, q$baY9!7K%#,Y-iр犔S M"(|,J!{KzEswJFI (px ;.(ٴAa`-RqB]OM8WOƄ.0aZ[6duWtEܬsB i t 4$C4H{q/) S5):`>9Gy{,̶9"PS f /9۹ !m:TnD[S8pЀ${δ\mXr7aJ& $O)N1o)(;W'A. 79./bMt.Hv>ܫH#QwvG?(H^QglFN4io>z$d;ɤ?w#W#Rc5?uMP@ZL1o>4sR AQ&Z+t0h>ͦk۽؟1/vNM[?:4GkeVH vLvz:x֤~U}#xk.R{dMXqڼg@p0hſ@swkXK(iPL{3FktU^+Bdb%M0c)l{ 7ʍݩZiwZfKyxYs|eB0U< J^8L}V_f{gnwe/Mk + SMEI[i"Lr#*c?U5cK~1BRwH3 @B Pl\)'NȈ ʸ&Y-jjJ)?pq,+FT2% kT}ɝ0xkKWĈ$֒*ϭ!B&n$uC2mUP&(œ@+9شD +wD]"+;C8fhad0cK43e,#Upl'c{%m 'b0rK}M2FCE9Q e|RNi:Eǃ&˞~)`wV wNYBF7Z.H?[vd:[Ka`TUN9l\L&Wz/Pzϴa| +8y~odKq'Z\{"2D7q9:dd_ruy`80[MiӔƀdn.Z/)N{&^C 0".`@eZol1DEdl7O +@ʺxHϡ1\>ٝS6pO扟lrBE!eA G)ݨrMrh-vַ4倦ЍrPSzZU@ K":Z3;EU;㸅7Q$M>)x2lݠ?F`' ο]<}rqB ʹ.FoHGT?d"v3NXf[P]Mt[sJwDPBȘk%0,DŽ +AC@kf}HI; ?7ǐ>OZ4$,DL#Lo#ND!GYR .LbEM47΋7Ύ7%g+iu6.'Ѵq(w31iEj[o~yOJ\O$Q(rBCS="40u? eW擁T:ĊEq<=Ob<`!@ u(肹-͔uĀr LAS yE?^f~%*3] ^ݓ0PcXӮ\L, cƫOM:JT[~t-8+<n{*`59;dCD#,);*gԌQ C3U9SdZ,4_Wzp'ReLvS}}/xΖafX^!L,,L"s qFԇɜb"ɻJ/ +mє as.!{N EDǑSnƊ$ŭQvڡU.дdPDցnFq +O!<[݈/=N[nIi< [X>J#8EcV +w= pq#4ǼgҜ +1 `Jҗkz\7d{uśh:(.7-?&sTCTG$2ەnW MݷNF7vYو`wiK#b.U /:@%SG:rG}rp\yY_$/ŋM0I$ [%u_6RiK{1VibCTu8.+ +m߂6#dxꆲG\ e>7gyՍwrecbԱ) 6=* wO@NEadhp:6U?41KJivn,G2L~C|Q (pI^Ig-w5eU.r@yp<))g:pYYc;eDVΘ]Z{=JehSֵo[ks5,8ƴZr:YtUwkŐޭ6 +]k;!^[?+)"lY Qxdb;khf!)I*۠:Y.g&=+CmnОodx[Wٖ5`rz%۱iDiB)_wC&7kMf ɭYaY)CZzvqWάNW!YsYwѧvNRWlW)1'+jE֤'!=Ys'kh L50}i +[|8, {ORXǽ+LhEЮw?SH\N`MʢKkgGgxѽIV_AEKlǚ#ifFoݪ܌u5'ތu\o_65S6k6ߒ_hƊO$7?iъ4Ћ R/aՇ+R,י $Y}V_f9e4=QZ~/_5*jeըk +گTq$)3ozv%̐Gؗa2;wTPlSzΟIb%/!~z\Ѿ +_N܅Etam6_-i +CitMvJxrphʭмU1ܘh*ZNTd VUP\\`mE)[0ك:{udmԑ=;ޑ=hMvoh* ք$>MXg*6a5 n:&c҄zC4auЄ_jzp_3 WRg$fA\St̮ͩ%|H6%gA.p7'FO%={QW ߴ ' \I\ĹҋiEVsUV4 栰I6+싙ء`ڽ%AuA}S{?/|Tʅ{G"hJk?w{9>ɿ}oûNdIvoK{}r7ߚ)G~DNw;]tulr Owt+~+Ny_uštD)u*N|]l*`au[fܙ\Xmu~+;y7ot; N5ISy?ej e}FZmDnC/ >ooWw#kjoJe avxw"=&WI}EJ̰TCd*17L[~| nK䟋VG@瞺>_Z/=bps5YOP=͸OKc9vdv`O6Xnti v;yL$ʲ?}vU{ ?|0Uߞ?)xX֦)'y-NQϕh0)4E6u)=' UϿ#:̺o@?Ncg3LN IVgdd#*a{q?,^N޼=w*~dwؕ!Wt)y[p݇ӯWq(r}]IWIjR>Ih v;Dxq?!:Y)KH`'F])t=;LAQEo,KK}9+$v_{@?Ӏ« L?d am(Nt]Fmw3 k%7 #ެ8Pxjo %ehB,db0d)SW:=C{1;ihhvkqX[ii.4 0MCzO8MCC0CCay#R{.z|^yߓ:&Haϑ[~UagNihGhkS62Ij*#{ժ9m 0َm~c(OtLc1guس꬝c4=BΠBzʸiZq#t̶a-i7-aae%z%g8I @(B7@e,MVDLO.<8s 7FDimK8S,5"k)CiE@Zx/O]t(޸ኣ=ImJǽ;Y}Jyo|"Y2w0 3so-)6ƅ 8"(f$kޙ3aS>I4禳GEaeKNO#Y6?InIJa5v<^ڣ[eCbx5Y9Ҳ}A4/i#_[0X[L +o(:G{`ɵ͑ ڿB/OI'zp&o0QT$1<޹Hsù,TIrRLTv=ꊇ(Dubuo +FcbP[t@҅Lr;4EI.I]&H]&Á+';g;+wpa KK@;_HX2BԬ8p z!V__=4QH_ӥN7 +(Ch 2W1/{_]`d/B^rNHj-˷z$՜֑o#u7|K:9 +U +a, +p'ݷ` +!f$5IhJs<bnt-oĬ6 @29M>_>:Tdawfjո!iDSGh E' uMY$C: +{ #Hvno'n1LS1?K 8 ɾ 5aXuq1gVgK|8h]ʏˏ_ 6jˏv^V[]-H%zU34Eف#}Z{ꬹo +bMSy 7->7%4۩g/q"ݺ]fTzo1YkO֞'1(dVs2Đh11dݪA_֭z&@:7}ң =3^ZKO +t4eD81n=pyO`96f?JxH Ug8aRs&idDFiCFw֜Hk? n5 렞8fO@ުYm壟(/cZӯ{d ǚ&-| c]~6Kb;w@$U6V@Dwm}-HBi?y8%A)8ifunB#S c4o.F2z5} +=9`m'խG9auoүүt垀,uӰ/"~U^ԭIvٽ&͇ ۡ[12$ +r?Xz/Aok? 8zu,R=JcfV#=&Qs`MLk?&) tHL{KlԬYO?]ޣߍcƐ8ї~ު[G~~-^Ԥee'S0Q`""(HLi5Zz` =FE}4"ڃ Zt )jF<:~J#Ɂǵ1U)_ޟNdؤdd{Pkq//src$|g!&p%jf  V~8 ,?J8%]꿮Yc"TWgX^mq1飚jA8"qɂV_r$t &ݪKڏ8EӚ{50(vLD#װ:o"^H?H߬]I rorsF'@\y[WE: +hDi~\7SV+ @ʒb`0'2m ui-$];Q^Z + 4S:k% @\Lcv1u 䀯jcI%A#b *#oO1YK VЅ$b1(!!1z$`]k\!j5hV#IGuЏ& ;Q/,[FyAߐF1Gd>#1*A %BKPWTL;E^ *!z ՜K8zjAY. :h: +[*'aszz̚K,:Z]zn`t \GÊK=r8Il6zu]˹[{E+[HK09꘨sui0QIT5Hc XgIh @ +o?D$ RIp'? x>BQ7i툱 t@Yn|VQHxf#@Az1;cNt{RͺL2$\:,fN:uH +诮;Ȋ=L̼eߩlsk֌4jݚѭD{ L~*@z[:uSs_.KsO酟lsPWBd;#_lط?eWJ;f5q;K+6[M/?U9%rI%Ze˕"+X Ia>޻ Tohmo;NgZ^}FP ĸ^BE}奅^4$VXS3I]݃}ت?s"Kgh$,=MF#uzfՑ/&('(5CR;"z*xjH >ȹ$ ٺbE߅ܯ]wDRoD1=n}?ϰ4yQ5[r6éݫ&OH:%Ϫ[jEcVMθV _S]Wa{EѪL>%z?wݤu%:˾8Q}pݨ+ -M͚nfx7mfZ.rv0 .n|j>OYĺ|ĺ b[xjqV,s +xlPB{nyFt$Ǟ 'E 6At&\cڛv8 ywSh +L!@071SD LLuU +XP]USI`+ _ںLfT+'36Ϩolr`,/A\WaF@u45<WataT,Fj~PW#q/fƳ59׭ r[E_}kOx,ddddddƗZ1&(#r:GHU/a-P*mP'dú^1"3h Tp7{{3ȳ^}LjW* ƪ:e[~Z.gۂ!ji+ŷCPSvU5 tSaϢ1ƫZBǨU!?xQ昇NRQtkު[IKK$֭4yO$.H\ހE:JQ{Sۺ} s="d%RLc,]8ƥoznYF[vXKla%uxh%j D&w(*6qG/^v4LYGp R8EtHj+,oWrn`5~xaGE +  %&~$3eֽ_E1z>'*q^ӿ}=\a'>Y ?Gd4kԇx])"Ug'[ļogUstF|Gw@\uSMvitI,6~uAm){b!se#ٛ 9 +3ow&O=9Sи +K|n"LU J xw6پ:W@"n}LZV]BSNithV|URO!kHкhuXYiGy8}1 ]gv#z +rY_Y<6۹&j#ňd ZFxdZ*nN w6+u:g47 ia_v(ԠŪE2vhiVgQk?aՐ[[^F,Kץ84KerwwYץ?ދ?,犬3o_^1ăE־ CaeޑFý#|$y F^w2=Ǫ!_EilY;x;҂U.ΊªA势nQfvVk2Dm^q"d`,. +@X!_ |Ћ|j{Xj uߨV8a!(y8-G~檏skVK%O;)urAm~qW9W-Y=?W}2} 5Cjɼe?)LekX4KhToyG{Q¸NO!.wg[N-[N[>|(/t1@1׼m2τ?=ف(21J,f&Ǖ3pq\+cF`W[ÿ n~{ʾ=hƻfJ# ˽3ܕOϝ9>`{Gy R e8{,v5CQC+D< +XC\ZALA *MrN5/O:V{@/5NWhhIT,sa' G@Ѵ$g_ v] IP$M. +?AjVo8- n2 F8~ +H~[>~,+ܼ YI+7 .yr@FzP#!珞^Q G"cSA#~x[Lquhx.3&'^~W}.O^\܄ЀiŌ#Vvz>Hbn3Uw(^0&?yEi:EQMu9.쯔_x\vA^+ץܢEeB( ʯߌ +钴_+?~IsɈ^Ơ5S2#E$]&nkzȽ2TkC$zz,J6SD I?_'jlvq&y K}WPt3p)cj\5ȁ/f2cPgY/LBVpj/7qPoRӗfNS߭HAL ;4h=Wd_$Mx^w `x(?fv"# -?gZnZN;A>1YC + T Ԫq(kZ:9D1AqM%2يAFkZ6REE $T,ꇈ%)m:YB?B8> +d<7sM 4@',T*~˩ b'j%kc=~T.hcImkPD:%7L|H"-b&&(FK t+-06)]i4͌'!4bOQȼjU+MGO&^up=ׄqȼ&c5)E7n-spC4+oUe%Ћh=Ǔ z}'‰Bqǩ;m<:sIS.Q)Y`[Ġ.0؄cӴ#qyFkS@B(%iqDZ}p]o:5#T _!nX 0Y uKxu(Ql&vG|+>Ԫ?i1VJ@cT \}*G*GjgT'\|fd߯HrޒH.|v%1[.le;3T?MjZ#P u| "h$gń|!\?[\ψ99ּ~VVj??[%fqLgsgc$h\6ɲHB6V^ؗMX"=ֈӚ$tRLU`t0 U֦N%eNS?Su0*7%*8V0I;a0K&AiBdU9<aU!>ƣWѫDⱄ=KGj߮6ccn5"s EʈiT!6VEp_ +I.Gl" iSP|4jȌ"[GydyMRvӈB5(&iF]A,#*W,R?;'H/# +-вI:ۯI:#*$'f9HZ{pڟ>pL N. +fWAkxW:oՎ^cWBۥ Ý^7V! G+T`T+V@tՋ/j_p꿒MWOӎ g=t13%Oka`NɻџH@|9sNF0|K6-v<{#_xgqq+>|Ob,ocJU+xk =&Q=r{!p_<@;y5x5`갫.0k{.Y2?9+s,J'^[Uz*Ś}M ͨ\4^]~k/Xň*UsZ}_eCrNA! ZZ'`uwR2zKXxr;rGYFQeuGfEo/BM݃z1>Q>yڭOxʽpo`6weMmO-|70Ľn-A^QM1]E7Yj_ӯ?jZj?}ˬJ3Pٶdll$772I5jV" ^ZSVQǃ5C0d{-AriXCG4T9gt]JRѽc㣳Rht)]j]z3~NO@X>:h|ۢOp%kX55f#헋]n`v=c?SyP o,󈭑و#F􈭑=bko jz85jrhAK / +p2 )e_nҴpiۡK)@dWE:րnjܣѿsL#hdK0=-V{ցEhHMEKFYQ':t\$oc҂YKAclړel}PjN;O ܃Kr"șage?dci}t5瀚ӡ +Z4G2<68CM4Q|PKhqjlDWZr>ڏGc~Psګ8{^/hj\53BZGEk]i̪`)F|t_vlZDjN6IyOG^-2ћ&l&O&7iݺ Ivk9.p SW%R>w.C;C42 +x?D@G*4Ù7zݿCw D1Q9=:-&PPBU"T +sU- KF9朣G:폪FGԱخ j6锃&}LT88M=tvH]->>YW= mXUtDQ&pbj%]cQGx\y^g'`/5`/$xU$#?4#s3IJj$&H*KmGB㨳sG'A^5mE>3CH>b^4«|_V+$A~Aۙ~{f%o7SoEnǛ>~{yE~;Vd[>~o~/~s#o+nؠ&<*P=K_PzNs Eu E<&PYdgt葛 #_2HcOw/$L (mF^S$40TOV.$$}H5^U=E1n{^S?a +yTWg@+CF;0o(ty0z[I]T@&w$&?A3zpozѣ>hq<{%&z@oegYis|{LH"Y/"݄s?WZy@ǁ@m6CVQs,5ۥe1PjKvٛߨ;U{,}hy6+ɷ|Wbl&͂FNAAڍC>.'s׃i 5"*Vh!z;•^&m3}Uk[T;W}d\Z"/;Ņ<Ǣ!VmleUḭW-ER?EY_+ozE&m}J<L& +/7w6vnlFw!˿ w59-V39R\TXVK͕'Dq !u0.Pf{.I92Oi2yvLmz/=}EO +r { @ViA4FG0J9}jo_CQ+q~ue]o~{ء?Olg j;@uKla lNKq2i7&gv:??Nב\s2}P^l奢o>܁)~*q)Lhzcw#4Kj]]5]\&B] ZWڀB9Vw9q-I,5qU/@y(W2d: sI0qbx5/VP;P,hmMTg3hb}(IJѯ;'u pkOBpq=.S,jD {T>'ldc $<-sIO%og!) +Up0H<^~aEezX +P(h6]2(o1mm0]]"xJ'-;DgpɈ^q*IV,U:^:Y]ȝݳ[\o˺#V?)wêͭ#4>/RkL@8rUᝦrHF;8#$΢G￙N~six\_wʅ".B],4ɕXU}n\&a5n7Xњ+hx~-~E"C6Q]\UǢדkoO{ uD1X.X/x˰QL%y{qM39ȏdgf]D( 9a!4'8 tMA(ꀍ3D  I >BhQ.0oYF~6Q}>t~e㢩D[<Y#zlʯ"жKXKW:]GNTaOzX[B1WNC ;c$ABDցcRng3_he5>^IG64qWe(;V>Gh Y<#jjDD9jR+c&f7 fb?[R 'cԊgG`1OgQr0i)1ҴWBOէQXAǦ .Mpm kY&#ZywiW~-W_ݐ0Ȏ{(bl{i]nc?A`@4ٞQ\_Fr,.uo7Zĵ&xS~S~1G0@RՊo p3&h}|c)݀4jN;kʕsY9T1j, +5~vx:h/??m&rAMu?J3C']P5IғAe3IXŸ\!@%8Ң{ؚѧƉ<[D@5a{pes3UAdv-,kqc^& z7.x}ci}Qp@]^ u䧇aPG_mZu?n؞E|<h lc8EW;ߝjyv B]ܿ) ۹pU|g7Pq& aS2Pj| $hHK끧aioWx|V]|G8M^[+Z?J4lmfO]&_lfa MlZF 'ʹɶ5ߙ@.Zrr: o/ ;&[+c5sRH wnG76d{Y$P+vݝ 'ӒATڟN3E,Qftj骤$V9sx'̠jzfX 9Zvմz3V,LqzɀRvagvs$ DOklha?Nr>x\g\bWF?6'`>׉*~}iSJ w_tAo{aFdn#o7ܴÍoHV|7m)քzS_akiW8N'EVzKav[&:Y%5r f^3R ]] &xv&l#n_W{_23Vk_OQFtmV/R8EJۤY15Xrs;~=Vr {.vRz~ߣʅ1-rMlu6bLKVտ L2 ,ܽtMLOs{~X8?kC}w<پqMB㇁ժ^tխ䇵AֶJ\Mjv+}}$2$=ā;thu0* œΛ`p\ҪaޮB0J5k @j3R Aky|`w L1킯k_~y XċN ' LJ? ""*hrORtn$}F>>p@)h@cuNt66'ѝX=J ^2hWx\̖jM3aݾKh $:^@0 ?n +I˜yJIbK eH&/͞|GΑB1Ȳ|[ub"i-0Cҳ4)߈wUQJ1xߛF͉г\w"0j^Y$"Hՠͼon2}=86G+JHAzv3rphL3,a 4@GQ`ig|MLxmIo^3SM.1}9A_o"0mJ$Fh$* +טvhXG2~ +5uz/0 L!> '%MT0)C葼0'@4Ϙb<oNxهi%ӊ/ +}"0F0r/ ivy]ׄN\#Y><45֬vAdBCtIci5YJR߰9kN{7^\"Wa +S_c+# Q^!e\qyZQ%REj'ת)Oz¿EΐG}CF^˵X]{݁݉0PXKo/u1ͪV+Nzd_pf|b,ԊU#hdGHo +»S8_B]D~Q5jQf֬x\Wt0jnA XQ `Dk K# Z=(6N_R|I,H0xy[Zk%s5RLU_»54X ^cs# c]<H%ɢ&7{X,:>lIpP C"`O.UPǩӺuFJtu :Vq*>BI7_jV#̷|<ьٗw>(ؤ3U<.ٛ4\y<%i ,[}䞽Q!W Z.\5 M0'0f/dL$gU +V&QJ~ջ^^ųf7$((/ƂK1ah+%a73qR U<DZluӓTS8)R)b1[RKYXN;Myl6 d +D#c/ yjŚ[UcYƚhkF U3λ/`92b^5֥%#=II?/ԭ2^8*cvG9?yLkSCuzGz-Gb3.)mFh~#'*Ο*[1bI(Jm4[&K>Ay<W${\D, A '_&0_vV%*?ͽ^v7ɽNG^oꗛ.(Mߧ12H^"#"U]$фXqj iK5TN>g<l{Y˹hVK_/U#@yۃ+7iVߧf]}.!'Dߒ9*+4q5J"F E_:,*^IZ!cEEݺ.rJfH0cNCҌKlӆQj?p9D)" X^m )f@ʀpNpauI#H~;-3-!;404 =vy배|"`m/,ou87\n4cU9}n5'-*crcMk{1hM M˺ӻh@ {0(A5;A@]57_c.-q%Uի.,Ξ3= ^zN'JFXIbr#S4Sr / X>IiVDt| [p"635`i3 w$L4o58LEK]!AwzP!s5B-S"П1 Y".D? 9sOrN*B B@LVOUP:BuB *U +ꍫBdz +-*AGPB B ++UhT=R΃XETaBs8QٟB +jP{ThP?%MB~"]R䃖ePPPs+[2;2I ]Jg#U0*9oo˒j.QI$UxE*́*5*mA)ޑ)ߑ$UzYjJ= tP{-PJUZ"uPI藤*]v*tT!tt xA_?iQPI^RtpfE$P鱡SbB͠9$I@_T?hәhS1:uR~2$NЦB&mDh9箌~w>,OKR%Q+ק_ӧ3>^~F}:sX}_ԧYO}zF}:sX}ЧSV64gX}:pяCi}5DfO&(U=vkA[@Flkجw.ۡc^o1Z9NO%x)HJ:֩7b(RLVB-jղͿW}r6<.dI6W}\: +o'6r?rF2ey|$pn離V e-+" $"D.r6 7ԊYE!ZvjG+1TcA`"Ո/kd-դ;5u_5ɪy{lkpU\ N\}PTbKjIr+Q裈db`@,JY%{muDzR8~) Țol+E¦ي& k1"#00h&` ]3Ϟ\/k 'gK{Ҕ! 'v.w4`:bV"deܞ{rI3ɞ4=IɉlOBǞ4aO`d!$ȦEcBykEJ.ڈE=iIFDȾLŒ DJm^Iջwٰ%M B)ɞ2<,eM@E,qvcl|a@Ay 6k(ܞs!aQ׸n]eEԉv{'/QtƷK8("]IFOu wCf6AvC=CLs,vo3Ø0$lbkޱ11Q~#w`#nh~0&f},F(I&&1.XV&f!$Pj&lig71VV/ftݷB_űER1{)!M]GUP.C7ؚ8S YC`*[jdn:,Uɠ~ iabq} –mj/3:/ cy-QrXi2(6G ϼA<2<Eo 1;3dvΖgtԺ䁹7؛{d{ެ {$vY\_rXԠH7_f(@fzdʠ'ih-?76#ٖ_~5 n''3F[Fo +n7&,Nxk @KYس +g9ʌ~|51+&69&'Oʒq& Wͺ#zf!!6[35POԭQ@"ֹPë۪aff*OMkeeIozhZҲPgvGCкyj)~жЯC2a`W~Wj[0LHĻ;v%k[gal_ +2/r1kf(O׶&ԥt4kwQUg>7kSo`mV]bqGnp&G˪bw"L ]ZiZFeŏL|bp5|d‡Bs|$@خa2ss~#@ۿmA cmM8-?1&R0ppCn_$)Nm !WLeV>}[}|ˈ>='OX3B3mpǗo?.3ⶌNkGS_GAx+FRφo}x3 [{gݒB0ݧ wJu0 x8{0pvː8ˡy_}n8cx8dɓB].|@*}9vB' j) Zwg} Wvs\vWeVӢ,< +`}1ooivackv &uCzWxې,?m΂baxx/^P= H+o#2qOuGban9g\x!t3oV Oppg9k5Y[rwE ;'IYsi m_ :Dz0-H>G0JQwJYA> +}" W+.qɤ@`b %_csFGȻ3LA%6m6.FP3#b,!IčI?P/_m3n[Q +H@+`/20.XJ(IQK𰂟y .l_mxME{ wV}ڽeD|PcqA`VS(D+/c')?F8[UsDؤ= ~_'ElMC^-Vp4-Up|L&\VFh9_~ Z:ֶڇGFF+O )<"1#A zaPE+g d {NĿ7Z,5oe7eEho*_FcunIo YƼ CƎKz kbD Ҩ.Zv<0EogdslՁvf,VC5(VcONn$ +!&Ss +;_ oG;yQcmnTjk\,[bUTӍL +8QjaEe-bUq\ t|yl%37kCNʓc]gr"}Ь;1X.\Qu,ӌx΀2(+0=q@}|õyQM0cĕcp ! D$ϓӭVVGC\B.u\FΜЗ( q;-o.XN𫛎렿kʮڠk@U.Y:FXI]y*O<ȋYun"}y|RW<~z= +"zPj%KtYǗM Xװbm ܼl[,I P`dG(r `4k.~,J¹5\tG#JT CT[-dN)t+l{nnh.L+T|'6Rj&yEa[GyPkqʇC+Sh*ut +iq]?Liq (|~')~sZqsGO0L{r9|z|Ukze TT1Jj6Cz/%ISawWE+fIhqa'4F0wߠl@Rv䲍L40b˂{C B1C4C*I0O8QŤOv7rr,8^ۣ7rƐԨL: ;hpxuӇFh`{r9ԥ F5hF>n4"8=}ҟg |GфD#"}\4>ăn+!|)av9;Yn@& FW!>L&1ΥۣO3ΐ kY5;N +Ҕ(ë$-喨HnuptK򡓢#0˾ v@YU r 8? .t321*l톮/WC5 zC1ZrU} PC7icأ|u#$y9:bG7z!n"@VyDY WJڙVzi.JL1z }^0]rnj$MANm=ۑ.Q7V dm>?Zŏq s3\sIyѼ3ܳ枞A?O_?SG|07G;藓NÏ:G#NU#(# +G#FB&N-V+A~ˋÐ՛z&ovuT]mClֶbxvэ졹P/ ~r'Oki\K=`7dJ$NK|It*T [PP1m6ф0&7b0a=c4Y2&2 C/3C1(,08Ai+ޝ)ƴN283Bˉ%]FZq*ŘMLT$0V"uNuR[_`"4T|J+Օ +tݍĕZB!uQYz,d)v},-,v,tRd2 ι\Qu[0EJ4>(U#Q*gZ໨ ޗ_eR@#MVk>=0r~(GM(oh$EgwzR—F1)B2p5&^2=!C\m"wjIRtՊVkh" )VnO-ۤd?p I&CDsEBu#+^xM7dm  !wbvVx AFJV(P4 ʫ{@VJX6˰!.%a,cǢ'ep\H?%⅊ҝ2 +M$fr?8aMor @K$jUuS]Z6=r–حN_%Zߟ"=N|96 p"DӓHlu#i/Akx_ _%J$$!)Z.M ek6=zRla8tADuep4Cds%{.+z`A?%{Y~G<؄YAQs$ntTtHGy_ӴIxI֥G/)jr[PhGXX.9L5MIM:""'Hz^I7#w5q7BH@{Ne&~E~VڧBeSoA̚BJ_6wB"u!*Q I~w#D,NVъ#^M1=#. l"iAuY>XIFEYK˾! shqU$ՏUS|ADj%/SV|^3R!˪\ВFX#3'٩=N2z5v4k`YiL\pqk%~}QGjFik҆2Nͬùu7@-rOVYAPWϐO<&~O% +{yK\5LjEKw]XADz0"Fim׼{aƩ+iRm;_(oF#8@l6E7\ +6՚lT4" *kkZ^v$.xx%+S]sED#@s:0͚DsPOT4Vع%cD*m|f~Jv'P +γH>v89̂8!s?}%MI -,T.P*Ki;#]jc FLY29aar-OH3`T<@̖??g%x} @LKl)>7?$4Îw(ߡkѤG`wwsXGnf@ٗjkߘ0/Ã0lU߯@^=◤x\L/ ?Q#/;4 A-yv0QǞ7O#ӆĔ!NR^Wm잗邵\⟣'? +_[ѓZ< ~}FCw 6sѧTP-V!w\p%#zS<;_흸(~cwtF؀~xxj>j56˄ k +5kuz/Kz'2'HGv<-@>A@UTOgsdlVVt(E@_(|6fH(ty8] q鸛FY%p>Tu:Ny+tnspҫEʹ|(IS#|v_!y/>^y&jH^r`rlwZ J]ƱrKd7C2ac$D}& A{†v<8hh5-=D~Oe;ǀW=5q;~`ϹJ` +oR`LBa9~oz2ڽ͎o#l0L}1F + ڻK9yX hu,?4~\VjЧF?dzci"cseޑTԄ7*8?5l>˻ )AkLeΡc<6.ϯWQLM;\]Su\axD6!=]LJ\&#D9 ֫\3%$+奼J] +xa_(p[l7T7>_mGצrT`7S[-tD1Oy=}7v ^Df_;mnذd!`ݰzv38g/F$zޒRKߘJW{bZ^ ^"pkqE^ O 7Q=U2ALL!tƷ[;<<]9^,zi7?l >.*g_s hT<ۚcsQ͎)|Óh}ki1YC +BO+bm}6}QCK';̒ +>V6m dfo"܅g}?#XB'a~}z>_ԮGX>c/k<='0BJܾ@ϟ>Z޾wUqfdAa'eQ!D|rq<+Œ[Vo _qM;Q0+3y4d$ڶceZͯϠmd:bVlgDɊ-b__Š{1RySS6Ca+> |Wf[M$&h 3 + :e\y6aV xFG(EN"'˴| Ԭh+ ir BAXkY0YkG>6v:DG1n 9bjܧE9׫&\8{.V CVY,@ݺ;N (.N8;lm}B%|6"6Df"" E\ Pm|zQ H[Đ<| + u|٨CNrv>,yPB +j=y3oU?%x`q-[ `1g%܉@75*[5QnH<ZYuc1190G4L;D8BϽ`Xm5EG-}` W5_K`f'b/U ?ob(f3UsT'5#S:t2 Ffo&ŠJuVd-ա#~ʖa$TQ+32RMYjbh˘-|6VבLg aqlޞ̤wYo1z@i1;ϪI%ju%Jǧ!Q'gT[48eǮ"-Cf;˝V!͞(i9FBcZe)~Fю +m#XbKo^l<>-p2|MrDo2%_709t6+r|x0Ǣ&6 7^L<HG@ܻn|Ifj;Nl oJ~Ɔ;l^>7a+¶G)i1}隋yZ+ACb;/iPɄ[Y"e Ā+54^/{^Y⠃t1=+T]/&,̑)K؄ev/m5(m[ӫ*6g]͗mzmLpgv!JO9&NE>eh雡a޶QցQnM=ʋW,at~&[ ھVP\_Qwۤ45fnD:,sqCܦB ^`cn YRc&ȱ+q,5Q}h)9[ qGer2t.g,yf/xTԒolB(7o^NRp(FI|MLw)\[nS4_皚([ÍٿW5(ou(G*flQm-s]I_#4{/,Ϗs%2e8EK*֫klQ`9RQUJAf. IUqEOĂaa~Z x5 XX;nFX[0{@ +`6e9M!x^xEE36fGp&9Glbf] -Ilo^؃2X*:9([˶r<[Nwtc]f6e]7E0NoP1k`#zMyԎy(S-q ۖVgQ$g($g?#^{ a%Zj|%hNTޓfj?B%+/P<~ tBvܜXQ6Q1~Fqc,ܩi.*?bj&4dj]"u`ę#W=,H/=t5"$)OhZrDbc *x.xnŏԪDQ~mG@Ng m;Nd*g \[!YC= ̗wKPk[H.e~\e. 3_փuKsF*=N>h]JVR YNj,iڱ IA*,ãiH%1"tO(Bs߾S#?M{m/ۏ oY[1EJz gJoa!S[xIo'xm[ lޔRݔ"3D0na[t ۢ[-n )-9z[J8Tmam/mlVZ -Ek Zۤ!6"=)-m-Eim.Lk{( }mlz[8z۾Eo kmşRo {ކ]6ۦBnR-0@bnd{U WXz39{VzT>FmJ//0t~v[k['{oz8"chI~~Ɗ`ڶ5Gm~y+?,\hRw,gKr^)~%׬GAރzٞ l Y'y 34jV)8nV뗅Y@Sl?߰YtT%# ]i+ h Ld(lcwYuwCC?AW"X`R0րDQDI&{$zLf{w7 +0RSl.g2v's?K&qa-V+؎4#C3P$jKHXl@6 L0 ίD""/@v<.VID;7Lɋ ǣF#qo+<{|>YvoF/Kd wbY({RA +1slV72SQhvzb6p%hmȲ6Q_ + +#Hb4+, |䚧j s5Ypl/m6Wg˸11 h-ˀ ZIPV> 2l@V }'d +JD%+M)V+F9PY,C\7q@$*^e0'2%\d5I!yJRlmӭ.Ax!0 | g'u@];5Lfna¼v3LC 63yaFnGf9W9 `Vzf _fyx U~a*rBU_'VlaL|L |zRH,ES<0q?]ΪFA:\ZYu^$ 1ck1_(Um50IPBy^壜1vjht] +_rdlp-/u0Dž8v;p^o, .PDXTcP'>DQTAX cify*wH|qA\7~3 XlQ\V T?f;͗\P[=[*fDFִNHp [2_DzW>:LnVyn#a/0\e$J! k֌{JL{>q/FCj-<8DoNջ1Zyv0}cN>r|"p)drX +,(&Yz7l~%8kme5:K<יp0.QkX \dVz?Bz ǸEN@\O6J>~E\{k6z(si0G&-.&FV +)Z \+VnCc| +V\$Yh|^[slڥq+UzfuҹަYB ݅Jѿ挧ҿ~Аѿ'-~q2(k;@oҧ\ )#ZAVEB%I{KfuQTbaU 4~k|^ E뉬~]4,)_Z d:5oأ~=Zԯ Q~㦢"ft6CQx-Y3~Aآ6R׼}-VB_`_7L_j(aj%J i2.IXO)a=*]#R;ɬ`yNvm!}N-]+\7Ongp 5W2\E^K+ =^BGGY85睨հOkr'(.<ZP§bQ%jrӽ NV5wTK\tIb3 SW-BalTqgmƦ#pFZT'[cTyu>3|&zj_dϸXFƗ-.s5<``Wt 2aaġL'sni23ɾ#Y!Va|ƾX 9Pv?S}?3?-%Ẋoe_L(s|NcYۙpШśfֆK.Xˏ/ZFk +rcot3%L@4sfr0t :Y" 7<}qF0Ɋe_G~Z3,:+$ mEb2 V2o$>C5'cv7g>6O=*[=!m^<\hJeh,6\em _s̒Kqhchg DrMZ\e=*i +_@,A;aj(irljpZ %YG{/t٦ӳ72P~{:]V;#~ ,f6QӞ52q[c>.t%LuQ{N8l/ij1$zos ӦQpfIM:1_[(aqTݷŧ"BmQ[$Ծ5Pg`4>GN}6qLVhψBݜ@qM5BcNB6B6Gf?&RaE` G[1}5 d13fwσJv X.)jNv`7"Ӱ3sG«'@} ؄>0W0,wD܍IG:~L3,Ċ,?bVAt.됓ue2sw+]χ02g.ms2a1##d/7 +0Ͷ[;ɮĭ-D3o[G ,LnXrJGvsi4l_=Ϝ?=e@*?s/ 3zoB@sû'qw/ qFXϯh-zF#ѵ1<510;i`81Ac~c~P2=KaOWgdX![4;fo.]}oW {!3-Nha6c0_jЄ7^ShFbP<'Cw%O hyKv%'BD>Q*[ig۸GKfaO%{Iۮt'fm ԻE‬"ģ͉C \P6[iwϑBGhhGMozh h,>JkP7;ST +Vy''_$yJ=K.mjDz*O  p/D\ u7>[OdGAҒJۅSGK^n{B 'g ;ԬwY/>h뷛rz_5Nnf6pJ}ˣzS}H /0_o8m_ܮPKT^noT!箽՟A8MPb7O+WSmݷ흄GsXנ(oidE3;\p0iYh,s@HՋT}Ou߸ȞzQMA/y !&?AƩhy5:6땽^T͡rѥQsC9/P: _Ty랖 k¯bZZ-2aLod6VE^v_c+}}&vȪOooo\Tde^EJ.羽 7xTT[.:/`3OҷZC*5%Xokot<{Iޢ]{\}ԥAsܕ.U\/:Ij}}B.]{ +[XOz[q߭cށ~> tߴ$vRu]UQѬPu0ِOD@4/BMܳ~ԛ>MiJڹ̌5~r+W8u bxfctu[7kR BŵP1~S$Hs9Mt:zR\"@,Ysko4Go?MA9G_`-j$+ĝ>qۆFw47swvlCG]VKl7?OE\qnz~CObo'kb *ۚt8ϢgE'ӯ_ i#Φ|>r1}=zT.2crjV1]$7hڪ0& U.Ima;֗njNWtre Ƌvv'DN}Yz F$T*V'zn.\PA Bo|=H +h6 =p4/آ|/onEcoo1TIs`:8C:ހ6[,,0K RUe3ۛ'H`᝽^#޲{ |=[Ncʌ&`RrMܝo7:acv;hYyS& 01\"cEto:n^xMH]25ᰚ;QU\v]ajTWxTWW1'kFNCKvnZKK?42пوh^rQ:nZi+& 5/c-.ڿ[;+GyRGk Vh&K +/#(Tќ&[Nr!:|jQS9!M( +v6v4-+̏Ϭ6?ɏ`q׹om9?7;c~u ?~x)?^x,"%?^הȼ 6?ȏoԹ]s~|Ysד,UKu~|R%bX;9E$ИABst¾5@̣A8"; w(J*29Aπyu͇,br>7E\Uu30>{v0ɄPS3r/s~7<{~n}C}f_! 2 + oǾ\_kz n7j6Xj1/i gXo2j-03HY ^>'QS\]F/[zC6Ji["+AĚ&CB8.Պy^A<c ұ|=l+#4#>1>C>`+\1SBfI9ո}5˘Sp`2˳7$ò6Nz"g؝Yr奚ki;#FdtY8 &T/ۛf QV1Ou96m"8B<0GS 'm|a8`9}<MN3 +֠aXUNZ]lNdS:z+zT/).kh3ȰvN*TErgˤBݑIJ aGz^ ARZtic HijKW iu. F.]W/V{pW/tCfDa;ڞ'׋c iVwy+a l)H[XWyó_w͊~2Γףн`++7kRC*Ȗ6azY9-a˹D*Y9}1KE_#c,3"GʳsBr5 c$Ꮄ+^kYkd:Z_(﹏)LVޥ+^1)L֦*crOz>eMEʉ>E6_f5Vw\>SG'/N_:2n^Yš3{Cn8:0; 5]yDkDfG,y0M (kϐI\}=dR5mVB [j7b|Ah͘4srjf )2"jv3ͷI}eQ`qfs->:_kv³˽Ub_-)L۞`Sq3t 'r- +_?XWgƇXH0|O+zr-ԺfR~җSnp * +{ИZm(RFe&7ЇZA|%ޥf +SwnzW|yTEt+I(N* 6k*蟂l&jB̋5{b1-֜Fڠ:]e&+BC\Cbbͣ95T}؟Jnв/5[[!`_`yGָ"a:.b2"NXL%ŅI-rإvW< d{Cm_Ъr񦋲/(J@0$dT2g  .-h\0N6*>.6A@$5dk]([)h],%5^@j o{_³lA{MmBIn 0%c׆gڹV3bop{opb%1>Kb=B<=6,N1[;Wm&#k׹zDO\5mz;Ic!,PKa>DC7'HZ)!|O{﹇^̦`Rn'ß!o43Z7 +>YpLQdwQ~CxF,'OҬ1#ԕS&9'f6g9#yzT@^R&dn| pWbqkF`DCش#[_T1!QP҃1n{ Y"1E{"jqY-rx֊XTƢ\':a>S@$ơV70ZYsnyY&({'ݸ0 H2BI.wʽpu"&`'Q1&$TB:ud!Y9xIFLncHtZ33LcMf 6vJP!VGa<4.{yuZ˚;׌:u55 7Ribj571ov13Ĉ5WNLm0C`cM *|n`ssEna;zU}=tchUG4TJHJt}EUrS#Op8N#ߪa'xC?TPzq N-qڲsQoS`gPy)%: Z ng@kUWq#Ε_NwE%zsxng7 bWa 26SRHOƋ~A0-S$GGD_Dx.XI|s<|qsn<1FVFހ`hg56`Hhg$[#dB'i屙>RCHkOR+#\ɭ6Ȼ!lT|{ ,& Q6Pfllpn/6dzGߏxt[oӰ&=xMavgn^]f9aI]j<_u GԪ&0Õ͜}oA<;P1Z%gr 4ƷI/pES§N:ԅSWAPNhM~@\;:x5{Xjf&f{̪9i q$ \>WRfbɗbv&@%/̱B`(ec▖YjPSHsa-GH~@p=LH%llICa?,܏ig:˿XZ QۯlsiNbxKF[SwұHT荋X҃g"i{]3h˴Co5kJ-OKelvQigt%YԢӳQ#"A}ˡE:ܻD?O;XCc*2 +vSzExzʻd=⌝#ϢO8DICWI(kTO#&Ku' ]Bÿ-+ ?J'= R&uAoĎ9zv560d +f[ܳkuVhEe"*{Le!gJ8ڠ de`9);"d[F%Z\wg KsY'HmecXMF:C>K!V[iѫZ-ZKbN7_D׬,"Ig ѬYPյE w v=v+dmen ɡRVtFfJ%s<satF'XXHz+r1c|w}jQihђ(d\f/?܅{)PZN"z'W!PR#hNě SgӾRz9I2a`7ۓ>Ͽ}vNdlX*\0z8TdyeϹ}PPA!AUjR梐v$~MldH3.fJŜ2BEػ@Dn%hFgЙdv +Z @ I8o+3EޣĽO$[rScQ@13C`xG0';QpB6;H}Ռ>EjDwXgdR!~KT0 U=#G>#UO~6 o-dw/wC"cʽ3 m'U-v rD5f !"Tj9,.=tYr鲎.rFD:A.훦rT>"U~̜KܨVBъ'D㩳G t S44lAh$d`A4w$I-&! o*ю5҉EV&b`܉Xj@#WkIq-zq iQ$~6h$R&:J䃶pdA~$/&L ~ɦ&$cGF%+ISRO4*K+ C). 7.2Tkw}a؄:-T("0.+KLJx&eKe:WQg%4_4ԨFAAL?Чy4C-ztEcϢ o`W]^ؚrRE_w5HTlaO19ȱO_ƿ0F4w0߈li|!+5l .闍ēwN~s M?7$8~Y#/G5wc9vs\1 fKx› 2܍묏'^_ɂ}Wo.Fo>ݗv 1n{p5,\=8ɣLmeK@@>]K!vLL78GPL3,Um5-L59++EӰΉ4V=ȬV4}6+hNI:I:ij57UZyX5jUΓ5 ;6[v( VauvcZƕHg]™uܰƏЙ4p:gUk5<4V}jŶ^\)^YNa~WrL>c~/Lrۨzde({s ߠJ%[VmQhٖhVvnpO[ߦ5$[2ؗ;*kTr] tH-٦<@ܧG`\Ox+9i0-0&R0Owf_U]X W #I賈ؠLbУ+hO|'-(doihtfJNEĎvdgm?c޷]`ۇEWkoeTS4B}Ms\' ]teMfd'1'#uviv-H1GtAE|+a/֟ +Tӭ:a,ov=C_>tBKgV/$ ;o[g')$:Bc`vΕFP(D7k^ҽ} +$ |`}^ۺD)vvMi ++೉X|+FǸ01\XWeuWVsXF/9vVWlž +cz?a(;D4kv_e(~;-r:jj}E`'kcq9ԋ#BM]ܿ勒_+nTWPtkܐ\n5h&uvtPҘk :t; +jB[|]kwzܳ^PŎ濊mљzW}T꩟*UUܧVc#zA_rw4Yyvz6jeïV^O-lVD;MfT<ߎMĴȦ olƧPFp/@1hly㺙g{nO)~(|H& +H"e@j>Y`#rIoV%#2G ;tTk)95@ !.yTUVu`7\_kיCI~K|+̯44_MŝV [kVlZyn :x̡Ukj3uֽ9vk>z1VbGbN:9nY9̭PqR{Ї\Q>Bђ[; + uKiO:Gr¿I*[f% -kVWIuԋ:EmNdMB;?Ҳe&s& Jr3k0U *C~_ $hKߦ0oE:LJbZOUWZї\T3r7 +̀5L"&^=I{]fiѱY;v[mDv5-:5' ZCKGu$)'8@r$|&\{E2f2Az3t$ +P +g]0E%j5;V}e8+~@Zĥ >"_]OsLQ /&e~&,;ԕߙ&IVɰI9#(Iï|W0uƉf!.? ]HQT!h}R9pid u߈` 0R8stu7:d$u{>VlVv΃{ёZO,we=sH3t'ԡ+3#~圠4`]P4v:˯VWvhVY!╬]%F.,_RWTWNPW9;S`5+7Yz=s]"=DϣcSEZ~M}pS% $)Y1p wHLL 5Kk-M)޶Qvii^[{ AIaPʯ F/Z+4M_a TuRf{k!h4Ũ;"q'ma/&׹ʀ +TYf C0.1_HfڤǛ<) =$'E8R>}DzL}++Ҽi^';>=op" GҴsBF3n"X}A4%Tt.F[V|ýɲNXJ@N2&7{)r<[Vx:V=Z2 (j2c<_oo! +aC{uL{0DIhf {FvF5RDD,o["IN,{T'[/z'b-c::op10)yj74Lp-51@{ĐeWaDJFNPCrë8ޖ9A6R f,>2#X+Jpri/~Uǰh]FmaqugI;LBw$nJ _,._ϥei)Z ӆSqv5Wh Y](ԜcIJ}^b)~TR:cOKI#c:3N Y7kre~QBkd7,$nQlЭ9ԙjb%ZMsZcr#@5qV&yQ|  +ĚT#o^ _ED!˴:f*;_u`V6I#?t0u+g3̦@a᧰rvXuWUxNý5=싳2g6JfC9ux_˯>nZ$H%PY]9t+Ovޱr~Mȇ @\pt&N^؍^_f&㣝tvweq7Ƌ:S ۣぷЁyF zxIijƖ@D/bZmKl7%o"oTY:g0OɶD %^1kTVL%L;xSDp׭Ը`,"/8v-p%iU%]$N䴭[ K;_: +tuBڒkZ(vlgޏQ\YsY +˳Q"kUCr$Ъrs6֣i~oL,d&{B@C4}#4 ?]Ŵ9֐DT>J#S>z)WǕ.jQ5B=Ν()\YOA7hMsvUY?(L:Bhv +V͹Fp0CARUdCyL)5XwJ}<2H6LukDӒ[LB^yzO߷ԅ#.p,J c%LK&&̟] ] cB +-jF,Bbg`Xwt?&3ř'ͅG wtjV( }p[SkӰL.EY>vEŤfEL[uݢEǓD54 臄`KYk@'`Tct4N"h/jIzy3Y]]xpi#v.>"h#>%'r̍f,"My+Pqg *v|X03 +g0\𙩆f46z OVSį¤P`I*ݨ)!:e"s|K]4aNyw9-}4*~;XgWGp'~e0t?9I][ +bgŚhIìܞd{:o&ܗ:ӑKA}йp;|C9r8oVKf)jXQ+2Io QK&P~qɀ}Z킅#qwpn-EH<+?~%0'[ݍmLO)B1 lʼno8)d: 1t,AxXZ-Ib"F?8*%p4Lh" RKOUŲikQWKni&*;G^BO9_Q  V;Қ~wEߕS*`0c +邾.`{x|]Υd^K4p(пHNGZ 7"g5"mD쑎i +{xHAѱCnP.!,?&}P!m K=Vs'$mQňjYA X/+? +!ϛAwJ#URkԋO3,cϜnNV-#;)ݣk|WT@Əx3b)UmPMe#_%u~~=GyP?ЕOT?ߓAS?G0F+=81:=x{y"{L0,L$7_lƣ!tuMrދdH ,|`=m[A7F0@UN|I'ň>p$6Kn#vEwbaok=<- <Q] +n$S/YKrN"? K[M+wzl~EeE`'#d| =Mnpg`zً!CgPD͞DLHB{zVv݌QO7R{PBwo,$IADq@S"plywwdm֦KF(^-I|' LyׇQ0m8*nӅ'>wp !~C|q~pѧX,mg;xCf#;}N/&ksJCl!=Æ-ޙmӍt=}bz):Z*-=M-mT9[wk o1 +4ȁȚ@6/Nuޫ|w5':xO@_$%Ck%ؠ"KG` T][3Bs?DƿG|JjlzOMSb_kMoˢ$X骣DrO-|+#!O_d}[z1>lL`s7;lZg5z,\jDôޛpr2s3mT:AW卶L":&N:52*7e݉+hMmv(b{;ɅMTNwY,Ј"B.Sx9;1l>_8<#X$ +1d(p~8tBW籰I1ABn,MF6EJ۝,PADkEX'bZ= u.#FdCYܢZW'@HTj5d3W10J[褦P~e7}VK||rz~dǦ 4%B{hW~*_l$@4$w?"hZE_ y%IVb!EB,Sf3 C^NM%c -h,'hOٝSIEM$A6ѩ"D + +I`U*E;=ZF)&JaľHL1)YU iFFRdRdHɚYVk]7K-_OfԪw<3hOrS%)50%P=,I>)y7ܕRpM'Y _a)ʤҢkע%+;2vE',[<:҃6p>ξ)v,|g4M8T; jG^ DiiՓi~lR!C"{;xqw#>j#0ɛf a$/cH^M]PHB8CdjP3?Z?RJR3`h?o_[1S<*_aOd$iix +Lzdft_u~TS ~@z!KL%y!| xcl![!@L,%XpZN ++]"pzJNS饙"p@OltB^@"_9It7:(?E]`%}3IXrNJRbII8oLHI0DMHBZCHKBΗ,:<ã:0 yd"JOlc"4N!!_n7(E$I :+ +F>Ya+ HƹِC2bSH )& >HA-ɖbg!xdD&^t!ysOqO+_%xxQ?JLґ vde. +8/3xK$8Ox,U+`xIM,ȻN&mH[\PVO/ Z:om&.a fܻp j u ~LKl%DQ+KFd5o8nO^3%A!/+|}o~=jQp8V6joQ+kjxީV!e߫/HcxI/__~J=N6\~14pi%3~0>c(5!qZь{ԍ{θGRy׹3cCz05{w `n/z"iN{e^,mv}$/dZIlč%."'?sZV~:wo + <I*/;g}m%+ +MJ$o1皶]EbrsDU߫(bM6[hʵ|sGɻF6s +j{h RdKG]g\*i%^w&&Q:nn/=Yw 6~“@W`AKY˯p863#5f::x(+g٩C:GȄob)b2^bt&#z/q}` w|Wl61+!Ftm^ΛĹz;F:@ԖA]\DrcrA]Y?[uAþu" @ڑwߵ%V_=򬍺UJQO>޺[duZ Y͍Gx\_RV.~OȀ!h~؁Xқލ Ew$h E"ܙSq#M<f|b15*h\POQw Lqި$>H館vRa–s{|jo(^&?C +!ntM~6Ʒ=yf#9g؁6X}=kOJN}~!<{]>7p8'[q"e^$̏d-v8}[*KrY6&a7~D +ջbMp% ʵBf4|#e 4Fj$Ռ5>ZȲa66J՗1(yNts::m(_${0f1CZc;~l?r֯ۡVPĐsN9fSjo c_旻nJ:{}jlխWZ& QU.s8n k{Z^VU0©t ˈx +"t?}S7ιV㯂4?{ +1xc)&wNfDލp=M!']If_ ]{^t55]^Y8)g c~yN1cm.&%[ì\g)^$e/gq= +&Gfi'|[?zX8CׄG|[5iM,XKYq&2k{#6Q\b-Yv/!1 XWg/rt7引pQQEJ˹ %tYaǟRqfxi6B!M&.P8tƻ|V6TxGPb;llZ;mڥL8p8ӥS,T @7 >2T\x\ Q0Ћ)Gg<f^5N A*&wK5zqh;I3}KK4ܴ+ݔr;^ERl v;zL !ds5]vmBI]aS`KmN_k)_ƴ$J^d6X@G#:R1Uo1(ecS z.p-,t +hd +3 7aS ppu|H}ZJO(uE4sQBjUw"V~Idɘ9髁`۱$ޤ[Prt@]1Zcq<[ꇟy΢n.N񣺏šM ;7|0ζHNf>b@$c u^<ư go#.9?卛+  Yjiv2h5Gv-<*pĢKtqcnw.׌ȺSk#ۦ&3_>ptN.sr< *3fzK`گ#-UkKCG8lZ]LxaRI@;o)EMPYʣjPvߤO,I1<EK5kS]5b2.K]`G Ү [738]$j.tD:D+,_;.9[ZXT/` `L7L6^#D՗I/$UKxa@19Wȑ;ZS-٠G負M9+Vǜ.ɽ}SR=Ze!aPQ!셸}{ck=h/7kkz?M/!CF[Œ~WYK:Aqh$] @ZPL/(.GE. mg7(+g'KʼG9v9ERJE-W2hfoW jvJǓ*&),@,F9K^j uN"&Z}_`|E^}t^D#8R( 3Ҡu3_=آjSڦ} +=: z]7dڬÙLh-5jsݨnjlN*GE 1".j5c* ޿CQNhUꌨ܍~ʓqfBeM}OrSFXӖT$q?FTOIy'ȠjL,@~g`3c]5K3aAdБ ZBKL0p#y‹ee>W%d)QwB ~/c]9.'9[1f'dqXȟKDPًWE"hA˒qB,|<,4&yCF6 qCg8Z")MJt +tӕO@H?Y_w(C .ªp,h,C }==c*W}˝ ?q_y4y=am2Ј}y]kߞ-r`&.%a@2jcav6kgX!,gb(CYבu_q$in2=a-ɶ_ TSŰV{g;e,2 ,)D@kO6{m%boH*xv[. fM-nc;hPyB!(kpa>!-PÍ8\,VFkBk!3+ xh$Yrpo>؝6 +s[: mB1YdWgCKi2bc_KaSyL%)f'[X/ `2dRͣZqi/-hBT^f/|x{L{VyT`0iJ#=mP_-y,=~6DϒRU1";V ;0Ō5IQVN(/6#SR)+1>E +[~H +7,{;:y6x3g'[̐*8Liٽlw)Pt׻)oLkIO$H8Eb$ Tcp E)ܺɊMmNUD'@ +"t6;M\پzپ}}<]CkTRk=w)q=<ыlPh_\0YQ_+׻x@FLW~MF3Oj"2I;W3AfE.1놗J8H +u7V_Q2`!˟J$δb|jo: X;Ē荚P2r^QVETRs{zpujW֞xnĦI78~a@#҄A:,.,_޴#rUE;wV v؉8ՠ)^OƑ]aIW9J}Eh"{(I79fž8I} +Rd_iIG/4:\8Eֻ W7nDb)7rR/vjAMPh#ν춈Tq`s;۫w"]I3t4 zI>ҾǟۥEco> obK- uE|9oA~礡j jL{ѾAUrAx}Uxٲu 8냮cjuvE飿oe!FT= PMon1CyJ} (੧c +~wSdM:ٌ@ MET8ÿoB#Tq P$(UtZN}><νg}=VѼb{oԚFh)O<RP Q}:sn,"IY4##tt5Ԓ "=(Fv)=%3J}#$Dsޏ aI`9A8[X|}ĝGM*J8ʽST'qXZ% TAĆSx* +.Lҁr1/UFվOC[mĪr ]v]2ri5-"zH;4`A"_JL  ފ 55O^(m'6)X9kZ-@y^Qf֗ީf+0\6žڷ0%bҦb5P^ +aZs|th}1Eʋ>eHM;Haو)zxI,/")5%7Jp\+yv1g.1]Y&=B6 䊛L{ǭ}@*h%]BbCeM*CV:x`[EX$ ,~Hǒ%XĒ;T >pa FޱG%r!S(Ai+Jt4.B6 p$ ms06TTw-fZq{H5;o]㰤erʗ{rm%OCItb,JX<+Ӎ<%52XFeR{wfMӼ:AZ|ǯU~8?A~8SϾ!ìECW$BS2 B>Y""$-A @˔EiШ^IC]C#-?DiCSKqǂL!|_1Dn^euˊ B:[(Og+B$ FKe_L+ȏW +! )B~!+?gc$?N|C"~3º_tdiI_ÐŕpnpL +YϯTd?('$QF(yD{Z]2i6Wڮ.".S j0_i >ztR~%f7ʤX٩F{}nlb +D@$J[v4=*^#7bnnHxJH:6J.5EټݪGǻ|G#WāijAU ";7RP]1V6iGa/Ưkj5W% WK_ <{ėD JvSkRkU7ZjQ- KJoW-*Jdܞx8a@~­/j+/$DtIpE"YX0'(b6K拾;xqdNܑ֦<17~FGD,/OC;8҅[-eDjsRU];>|Df 3ƢT)?FѽN͗z"f5B zRP_n<taG%]=0C >Ⱦ g +k3p4졡7KPr(&P=5_b|EFuҥ>@,Yָc"I33}[Wpyܑrs0=z8ijMPf@Gǝ"a${$OKp01~xbYu,q⍫sB|{8Q;ITl˝h(KN9ݽ`(n˞TCgfjpY2{|MuXJ$c~GTZSy +oֻتRlKR8.Ȅ 2*'Zudy#G$dl KذK†]wRM$+-~O IxIŲ{L;g Ӆv v7@9kdhTVm/'5"*KCŤ1g Iby[hUl7/DE琪E[v +gktS"WT o Le&ݼW;TTrXj e"T`Nn{>ݪ |x'։HE0}u8Ǭ|ևDKe2!O7h=92W[b"Qp;+EܧEK9 +JR#=MDdEw4'KM܌ "oz'NPԹSNuՌ9'ţ=@,= )qU닸ȅ!3o5BY54fT` $ ݌ +K8,qL91Zz5hۻ++eu5g^.3v_`2=LF{ d4E$c2W/(V՞[ u9bzv&rM~'}r84jf؈>WE>ϣowϕ#\nUMa@RMY /`h`PTG R:I|Je@DDX-/'_^їu +Xne9$fE ZE qe0oCb(k@2Vݕ!ڔ ++dx/{6ZRKA].9]Fh97|[ l$Dl,b]"s,+0VsYŷk1@QH -r].ppߴ[mLSV`=`SP EV I +#gR%HNWa=Eov -Xe:u,j/]kWRi2EV{C.`gs+SD,C].-DwbzC$Xsx"|1xؠi{Fvx JD"l r=KMIJv1"2v` 1Fhk #;P 2ae0B Y--[$4#|Cn D)M˫7ga$~SqK)яbe>pbZO/WW/L:ܰ) 589bImlIM}64$/: fNwD_ ѯ՜ +Cc3!@LhkSx. vcF"΂ ^d-!/CP6wv.f`x@хE\/$_IRp⇁8^O߸RfZd8pz#x,= ~#Wz7aj`ץf*չle|8RUc!tX?6e"&ENѐD<=Hm@D]bHRЌJ87)vK:X!HrSDlNߊ mgFP*#KxeefciFz|jt#@39]6JnL.nUn +YjT22x,<@F%ʐSVf+CO3Z.ðS\ ]d+.NFtR7H3PuqH@[}KBy~_rѝKo'}hda~o~Ї +Dևӕn,@C&pf]~Ñ.|3IQ!hH}#/EXG@-'_*3LuI_Bt"t`FJA6‰?%=IV3}[KTLOh?*^RyN<3u(יs\!k1܂3aB/XN%_idJFb&m; ǂ9W@@x*pPX'E@w +gh\ߚol!:!IDChXcaZ4]/s3]t_ +Iכ%ɞ#~Y!/+]%ٗqҥ(/1f&\,[^LI%|W3Js*2sFЯg@a4,Z2a/R}M$V~Z*Z~)4hřlycFJ|{]\ϋPKBAu_f +(tp;/a)V% +UH=׿Sg߸~nO94?,z Iʸpz)O8YB ő0*Ob2>YG]i;:@FꊢU_O@@4rVϹ(z|bలD0pEb/r#42\,X$0eVV U A6? +ނqsޜϸ[ςi4 zk8  k9.E4+dg5Yx=R^eK_j-Mb k*G%xf*^f~@ZVk2B`^(8ׄ @C +;=I,d6V\.xAk^Mʚ]6Αb*Q7,]$},X*J.@C)}Ae/4{ TXWїZ\@]Y<%VkìyK:ǁ +1A-2W+D}:lUTGS0%E$BEĩNx;Dt_L<݊^K(Yn8DN}/#lS=>j-JPi&H zX뭡 kw>u =C&?1#$ԃ< KR/GK(+vH⽚17BAcyuCH*iw7xf'KoRIybD{c>(z I5]Cu1\9D?x4İye +ml !@H2oI--Lt!KK8hYr*~oO<9xCRdWP<z=5PdQ_~Y6jkbX=4X +t-8C0]-谊mګ(o'-F*#l= .ujrgdi\F wtwwa3:b5rb;-$:b`$jH~]b=fdy[Zt$;+$dGҟ)Q) +XSKd \8b h^b8:$EiQQOYJ$$DQZ"Qzvu?(rK4MIe[3d0{uIC(P],)Yt[)a#AI#t— [q^=)+NK#YJ%RqȏP>4z'}eO1d}W[ªow i.{+}o»dMD* ɳ0%}X2=v48I9{>:ϝ6~~:O{`=ZQ=wcl&wGB<3?@fi +bܬb2+mRiLv %n";U*> q>r-]idT +G0)90[7CHl=1Scq,,Qm 0S 7~#9}!z/erpwnvnaӎ@Ɣ#11@r0b!Q1~o#R@͐iaJ]tb,k2)}HP82 F~Uo~LBDޡH,ۃjK "DdUncZIR5ևy;áz:FuQ_bm=izJl!,M +zy^~<=MV\"EpbI7~ bIa;GE%_iW y r[:6d~T)h8@u9|T6Iy%juqlw,4]*!1C԰Zɘ;p;=7+`Ɯ+` +}j9E*'J]ķQ1zf\1"[VOjSQ @f#v)cA잴/j0&yTԼ> Z*Z;|@zwRWQ'O\տ?%)I.F%lBv7ӻvkЩ<[ۄ#5,ɌW::JM{J7 =1eȄ`1bS{)1F,tGs$G MS34`|I Xi~/ҧEER% U~A-Ӿ &Wy#RA&*}prdG5bNrZ6kfehOTz"*,ƟAq.KDE[dtѿ+FԄ]F+> ȪPuboF 8$L[ns/oMS @]5dDkZFjɓ{ +KKf]BUq {P~bs⻊g8*EݡQ tm͆ESxрE\2v jScJA '`%Jyn䢂7Ų A qQ €A&oYkA~%x#v-:?n)2*ϊNML)qàƠy,g̹t9u]PpӃGƿ˽KwwޜY3_>?&aQW& y +gJcB.>O՟mf!,)(&(•c-Qj?{ZicCWדj V+w1HˋV$(a_B#:.O{s8YTe(OSUs.$gS0G|TvHKZFe"S U3\UE衦KD-"S'"HU].dYx{P؉xmوG!_UUJ\Ls@9̇k) pV*?e`f32.㬐^b0dK.B簀#Q7jJr6;cHOgiexB.эkԏ~{AVLKJCC7uiP<[T٥ɲ5;gYv;-RP/=u-mUԉ`5r ̬~\ }K&5l׹'7ܒ7T>vgʶ܆|з5߶[mPfuѢsMR宖>].bsj\k۹H(>漮˥ʋE@ 6e5kJKZ-f $Z-DNhVYǯ>.Z>!.c[^gu~ăUxIdD68}2Ь\j0\PgrK =w>!{}_"I;t v:C#S;kٻYpG۠NВV3ZmWHH+Kb~;.blN\yR_zb2Hw h!QO)܂sepؖE=m܈E7k?qئ{@kT򟻯rnO.M+nSWM/6ISlhcw:?+8`(|oB}X5 iN-mH ~u.:{M_@񪐭|t{_lĞM lt/LcdɁABTw3(t@VNgN **AyDlAA8T&hnwrPDLJ\\ T_~'g'2յHu-u^_?6] +\ ׹Q C..<޺JQ.qQCwZW+Xg> w8NW+z^'WT7?Բ|{= +6p.[.i%j<[E.3-+DyBqN&J3J`b֥pҫldQ(Y RcEM8[$֯# l:LZj .!ӓqc !%6j.PXpWĨLVIE+{:)5-@:b"]Ih +EӃ41jϓ˄XYX5gzC DR <l nBT 8R0Xu)>'O͢4ŞxzZS3#n›|KxȌv:^ĢrY) W1*&B#Z#TaE&Y8Hӏrq{80Ys7`hwp1͢UOR +k8j +<QDaF|~J>g|/OS7qG4N/"{^DE/H=;'Kӟc\)- @8H 07t[}aZEXT]YGɇo/N|8y-}qnJw[$ ),6wF4ٵja dmv]עMeU,Mt ʼS4YyZBdFr/Aǃ垯YE?sxCEJa0פGjLx v*q*QW#9Bfwy>KLZmkT#ȓ}BgK.Wd&)ME=23CyIȈ8mPe @;P#ؓfgMw^Ko&#`>sRɵgO֞UJ\CR->J_q(QEWּ~D+h%CĵXzϕl0&#2O!?Ss=ߪgv"I]1 ^q$i2L_6*K6^ XE-]mmX;!FY҃0Y7|rhgC _ 0< %ɖ5wpd͍ ΏL/ssfhuO?Y%2R*OTdeHG̊y rVϮ(F@2e7ktHaMmB^WkK!K~Hd)?9Jh;9yXM6Y9ٹͷ=hn&hsoƙ>I%^l3ΌDDx1/vYnO|~2 .l[[9oa}]FkpYBE}]Œ5W,5{HSOl4/IYwG9k(>3h1n{4me~²Ip}ߛ1yP; 3s]}6[2%XKk9I^)5$r< 0g2cq_Ur_WNRG~=%h6);-:OY"J!|/H\=eN㫛 %+z}w*!ҬQQKro7F_6j-ɍP%h|Yz_Y(~־tMUd4*wqnoVWGGb sUs?cPkYz4WZ-U1JX|:f]GTf _>]\d3-a%Fղ\4jׁjoMK (ګH;X>xgE?E2:oj +"<~H \ýT =w4fEt;b7v~N{ 됟X;*T;Q\J# :tE$ [)Q9?Dٛa|uڎtY'b`D]o!Q]^$fOe b[-ч'Xя`!u]*/1B')lC]5[(g1'/S 8|/;PTˋFZ%r Ab+Z}',%8xa1-'pk: sZ.(Vz6[=~@ow2Pibh;Դ)jHBe_F q3nM0vڛx.!t +k} 5W9Lm}}ge5`Qbܯ,EgXpW3Pie\vFBs=7ɟs9/.-v,.(,A(Zj..)|6=I}eQ E]`5X [.U!fHC{raonkf!{t 9OTlv+blI@^hta[؛3wBQ*7/oOHGP=tVa7z ? ;`lbbTeAsJ #N/f͂٥/JI,gbu97fҔ݃eL+K)2*T³S_W 69 }9_H!ϨޑrrtߚR_iNB4 MGIdFeJ:e,K1%!! +> ߲> *q&31lY 7J5%pIK.p[JN/'f`9U'i5C #eH9{]n`݁5 qH1㌦O& +R_vkX5Zl- W*+M]Gb^geу%p43 'L R){BKjp#J^;Dir0ꋈ,IOjEz3we,FCꋿ37'] }(43{CrCem]hü_I&&$3XL:])V>k l!4 kfE4PZM{c +!y9 +a-:m=u;آ+ɓS2XkS"uo(e{K,pYݟ%:,gڥm daНu+6=G)񖢟E'dn0 Rfq\6f˽' q#ܦK%3RG"Xش)35 y_'!Ǚ8 ʇU}əd/"bqQme^R?98SY"Q,t w[oS+5zн`vb\c8Y+!5o J{~]!^ϩF!XZ="\=.;D)¯%+}[}!5&'.*jR 9y2t١WkTdgp;rmR.Hӿݳ 30-l4>f[f;,d̈ Vy[i='q'~jR^ >}<Ē+a4HaI |&6'2ӗ(%^.6"v?)E¢XvYa#Y2Gt{bY/ibSbK+w| nDShCbytm~g| . TY}GxxIL2Ӷ&d*1_/bیp"0p&O-˧~YhX`߀ : X\ .7蘬s9 R~*|f^D =-+}^l{݊ +iy$9^(Zu,l|u6!gܮ|_dQt$JEʳ39TbF8r)75$knF&c?bz?VUxz83ZD`E=PoV]Ɵ[-ҽ [6֚U9kJHE̩97Ts68s=P/! DČp&3j'2ΆƁe1^uxܻVkhG"S,SulS^ 6Ay(t@\A-5Iҽ1/Ri+V:jjOT^ 1rz诼#$ڢ%"irbT* -OM[@U,:UR7Eι܂5mЊF%U_BmŦغ 6!I:a:{*MBVk~$>vD*wMD|{qN;5(:oZ֩EUn֒?WeivwN|'@gn"+z[~eZ}> ?AWVu%8 tX4ہ,SRcY ̘@:巯^cG, +8 toBz<1΅b)̉e"4!O @9JDQ@-~Kc4&X4&\)Z2 Rm`l  G4 +Ӹeb3K?$QҌA}P0M%ks?ž/s a185+? gK0YC0Մ3iDTɃEvns_#Tr +5Dhw + |:DByѨ'U_E+u 72*뾘`jXꊯR BD~:@W{َq4WWӞt!"8}3[ +RՆMiK*Y9Ժ*`4DUsI7:BX!n}Xq@?e=Żd0>v3sV}Y5NuM,O:'$ +KȰ +ȰgMLa5.ѰGt|=jՕת+pn"t"ŎgiYꊷGuxHRtL߮gg ugh Qdꊙ +iOr#lzmh Hh'nHF=28xy#CZڡ#ݩ~m"=au0 oԹe${cw R0eaaDrNclԕ7`LڥY#&F͡ &3w ބ-Smul0R;am UW}TvYXIЭTt +,t +I= ?`ctK:^bv# {mr!1X>3iZf~̗P"`S9AS9Y`Vu +G;M߇Oכsܤ}kVg;Qvj{tG5حJbjl.o +6iZ`蜙ߊV~ "L]Bh~uEWLCj@16Oo3}'Q N s C[x$)G.q" eD /`?v VWy#VC 'cfqt#HS·-Xb}ZFL ?G/y[$Sp[ 8ԚPT-KЩ7JѩǰdTZ=fODsWQI- dR{Wz +⹨-3U* L9*^AK`'Sos.\;TO 4U*hIxg+ Gy4 jz?>$">=i֫kw.P5wA)?q讂_]?5ُo[tj0E!_C]aMfPkQ5J ێ4$/R,JTpxexSGs:~ذ^jAG$(DIQ{ڭEGfiчrZϹsuss w:Gs3V߄rKE=aA3Y|^mLr6Xػ +W]~c2hρI@jp +a07RӷF'z/uc#kSjbB[^F")Yf%odJGtDZ`3ARḟ1Ѳ ] +~/›OFjKB> Ɨqؿu1|1 9.yj1=aJ~UHm{IV!M*x٩Eڈqp :o6Rn|u7` D=,os 0B/ϥzv;ޥn |-ޒ\]VE,e(D1*ϖ_}$kY}LzfS޾VXm)+::giۉU{MۤGGcӈ{Oz#:+ьrUJ\o:Vd  qD=oM`rm5IQ5`肵1__t 9Wj5Jy =M{)zguv״gL_Sjzo`D0 Djy"p@vڮE'~#vmDbYoLߡg֢ysNg7J'iA%EdYUGǺQ(Q?*af0REhmFO?=SI"ѬH\rgD9YR+8.Z(2/crΙW=Ksڟ—i7OinD6}4LΟBjyvun Jn!JlU:J`F([%{yאDk%w;x\::C1JK0^hk$im[f ˼+6nNǶmYysnN 5mJ]q Mnӻ {7y7؇.b%cN"Mu mHn5kâ: X{P+w͜IաIy1g }0*_a^i&~nx y}6;qXY3.9'wnyPgy%tBĘ v"ͳtA2{cZpJ} 7",f,Z0+wmplm_M/v2rЄNjӖMo7m{]оf*fJ1izs/M[xIcbAc^|@` |ǯj +-gd ٻx6JE64nJ4J58]#$DeAW^9P.4vn,xxδzT_;m$IqO'ܮ:== _$BԹY +;19ε CГlF"s3(E~y@#ZYGa#ڮk)1Ns;qS9jP8*ҁ j#FH}Gp,>c3`#(^ܝzsw_ƞfm͘x^'˪v8\XV*o~> *LF#T0t&:YqH~퇃k"_$O&7RW? SWJs +wĭV͝*#v&9̟ӦҢ%gli(qàxgN%ixezཨ;zۡ,GtWչR~el`_|:Ӿn6qP!>qXH9,I]]I}gU|> iZ; P__Cv;Ұ;{i7<͊hm}kObr=r紟#m5[wHww{ &r h=SխPE_^s(\b/q_g;}|,_[kA )+@@BO __UyOL`0;KFh{mWcW/<}bڰ0 +kQ`Z[9_2bp}ф~ZC) v`0N,x5Qvq#1Q73%UzK`#Tk{skPhnͨq}ۯ91GZmY;#LE@4GZ9{}43&]roӒнjWY"2;Bdɏj%FvHR:N:.>sO}'[*!Q  ώmD`&jn~FJ@x[E4livl# DOڬiqn;V! {;Zu; ؉Zd۰N)9gan42sh.16lDָGFyހ52+`= XC~TA]µ9es97S収pPFȍj w$h};"TWNR_GE}#>w$7D +mʵYQu"*efO&\EQ xFZ:$"cЏ=3k@9sF9Dֽtۊ'cYFûfTi]FmA*hicM1GպO!@u*-:8 `(ꥰ,:`ui Ajs>}"}ft +[B׎ZLkOz:s4=mZܣHcKT\M-xװUhYհ.pZɑu1пC J]6$q!dr6jZU0`tѷa8 ! s$dxdHFl@<ƈstSn̅=I'~{:c&vVa2!Ю4 lZڈ`t"fbZp Xqg̣׹ ԝvnNڍnQe~(*ɹO/δvQ"-~[Wq'q +eToON#pZ"Q*\4U)P; w뷰 hȰ|^KX j uP6waP)[H$~pFBUKɠ`B8 +w t[%TbHDRwSӇ[8:ZDvXg*ߛ! 4RXm(A'BӺꞬi X;559'WC5I%jԺ()v\w3ҔZ]J!d'{N#K<B48Qr +rm[u8fSİE/7;QWP){0ڗăY,f +"Ը80uFҀ +ZPQi4(hV\4o#Ppɬm Badi5DC +k&'FH;u$Rk32AC;~ARL;ϼ+:@uv(Q蔋5 ҘhɵTl? f&(Y7n}T4Ί[=j.{ИSp d_cHػSQ!4ڷA4bV@KH1ӨvztfŰ دF6kޤS#BՁWMt?;:mk }ȊUߺO[EWE+"U󑡭Z6ޣeo>o#~h@*:_;@n UkUcY&U]B4X̡{ʭfuY.`jT*`0c;)B£53?ot GwH`po$h7:^4)-}L? 6!oԀo^S%_=5sex+? ˺Oߕ=FzHŝ[n1` aJd3 ce&<8QA͊\LaϷ_ $4B`, F O@b¸.L8Nz= _F}+^<Z5:2tHFz2BHl`6ڤrC粡gR^xM9]y{!TMƠ$( BL~0Í +"\Z}EkBrn 6~2.JcW|1`5@6Aq@wK:`jѰMe/ m +v+ՌeXi=~qssB(meNrpŌbahЈlg)H0Z@FpNy R/j3F)iܥ +HQxGhH$4vk'[>Δe:?}9DFT?OрtbRQ=%ɤm]vH6ioub{#7Fv~]7bX{|ǩ0jA^XFLv.dm9K#=ƔKDB +ӦVN켔yP2ObeK f>sq zw0 +D!@Q@=/Zd;m!Ս*Ԥ54 `5vD[5{t;VGo6RξC2n!H'kE4 r ˣv3ꆧ.LkNLA>?BW5 f=tig n=d7cR}0[0Ow5_n(5/Yhơ4JD~WCH;Pw6ΠXi9Tusr=Idhd@l!.bZ_%s#G2ׂ9(4ߴv3ΐ 8sA-` {6aaOM zO0a`< b ʺaƠ;Q}jf/Fhif;:H8ga=gD6#lAq7clU퍌Iu8qܕ c/=s1d PG蛬_}۟$I1RX~u{_?ޟL/Noё/tG.hjjIC1yWxobzn ;w x6C *A/9lDs)>uMg1!1^nدw+0.xC<,; kL Sp}8 0tSIغ|7 'ŬplSCz2 +5Z`SߒFhߣ3d-GFrèhP\CEsM*!x-sZ=;V ΔT-tW(2A)eM]aK'9zhu`ao6F,UWV8J0ͼADMB_D#2B*LCԷL﫾c$}[?'~AF6|ud>d3,4=AeDx'3]$.-tU'mTC3S> !@bZv|n>)1a]䕞́PzPK.b:+$ ᴤ2QKrE^RI@%KĊzƆ+r!G%"|!|JD +VQ(pW_yeO8+WP_{  Bo#5 M!CnȰ(D n.dqm]BM]*X#<ꙸ@-P(Qr4>㆕Y v},Hrq`Zy?Łvdx, Bھ  Vfo2b#f=8ڂ 1-=M;H];Ҙ{躌' {=3[1ݪĮRyw /N Ls0 vWxAX +~(C-v8Oޤ*s?{TzPbd+zJ]zפeԲsS$+\jq) FWsW"ʍG2ȡǰ}Sf?AƝr-yLm|;]ǃMhuպJ^ z<~,5y_~D^/׃d;k!cT~,R[`=d{<sv]/ӺPʛ9m9mgAnߍZ)4UE6ЈVmJ5֊}"kdz=l;Ŏ>7O~_suŃUFppu(n7+@u +zszBQƬBqEՌuB*OMjrZ7kui7|SYP0c w2>W9x!+s%_K_[EK Lu]<$c͑Ѥ)5GL!j-"jZ^}]EҠs3HlOMyqvX%ADy8"&L~3 3YDW|ƏձX#OѬV-n뽠ka:nҲweGJ;v,׬Z}긖}QVKxuO+ɦ/{ NGiط>H\ 5\֣7$Z2-novooo=[ϮѬVڹۏglİ{٭Z]+~'2}L#O"/W34BZ~Iu /HASE.σ3l0 hn#ci"hP}y\;48n5$Y z>~_jc &G;$ %%V|jt[ײ.櫧(bwQY0%r$q9b9kB٫qf ;?:MjU9c,`rȅy."t3){dx?F0TrN)ެĔ-ZIɁu^LH90ADň9rsps&]dӟIv -AASj/( f1U"A^!} 43Ӿ/YeOEjV;Q"NnNBuCbvzceYnjot 8z#t$Rt=iVz2g`Hkj?p7N  +>^͊u>{d8X!G4pJOw# \I\d"2ӺNAq`"=JlԾȻX ܠ *ڰ,9c=f~} xוJj۲q `ڑ3I +qr9J,1N&Dcc7E#@;&'ucH- !%z`#oUwK&N}׽ss_uϝґlAT?w=3id!@.CĔ2~]:v]97(섯t8gZӞs>{S{vi1?rݐY5615\Uh+=_P+_qu9isdr 7Vs WԽlkV=>)C-|m꿽N=cfLs,YmWPLpu;3*, f<, +͜!]˟]o#9sQTՆ"Ez[Y/"6_b*9.>F,ƪ" C79r]r`|M~Aǁ3T1oC)J'Y<>uW}cLot:r[9(F{PԹ,o mD聄w9Ӊu31(c3^(?R几 z_Zb;B3ӟ4qe퀒3qY Dg}"?ސN5tVݖzV}ץؓ)nD +\g8s40({?Y3z_>![~vf9SCקNVͩi +g\1KVs=W݁Bz!:Kvߜ!jz_8۴4x=~B +XrH"nB0/& iP%?|B\q̲}FDe^{Q?f?6aśRqQk7grZܱTOl;6O/cOm$?Mǵt|.cr?*ߒ÷:qylcz"נ3'5˰JI-*#(9|Tiu8p͊r ?绎G|LLR#wq}H2u+‰l"̥RrEu>h^G39Fߵ%nx\fh ӛ+n@0gȹuنWΆ]Z#v,NOF W&)gzI\vNZZu KG%SVL 6$"74|IM_~zUWr|)tgS)X!%eO92RʟnkqS ʒ+_.ICs՜7vJ +6`;*/ыoƉot5WM&ra-Cr!K}wv_MoA\Ģ!u ח˸):6 [9N/?`{P?d*Ę>D~EWW;է?2Fܒ +/a4%tuQ-,\%&Krw΄ȟS#)NR?MR拤ysbv~Qzh+NTK3yyn9"ӸWm{fv-oH& <)P)%R7H$CdWLN()bK'=`<nfǟSi/$Kcp)BB+9 +ʹ >xL.gN5n=t_lr"baͿs!WkS*!a#QXHYfA9Fh>e*gfnn&V, ,lAį=jr/W^Iء3h^?i`?r╣/jC0vu!'Cl\;qm8nn1xr^brGա p=^Yd i5zb“+O vrIY{f_1å__|'-=xSg'N!z:"$9I,jq*̆>~ ѴLna}~N1uF^4Dgi^rީz+O+YOJd +=z]>*ԧ,pSK;snWEC5E.f^Q߮8.sч%S}jf$+0W({<昫\Kf^`R(qśS(F.IrN.>Z]9jWSiA A-KosJf9ׅt +_@|)SolnZ4]:jt=3t$ w +gkt)Lt(OpUCT;rQ%rFƫX;y+E?7I%X}c.ϳ\HiE3ǭS|ӅkifeDMے,8"n+>IqwZ3>~]ѓjuO^yb|k]29 Md FnA= fyDy侳&KDw겍 #:7䞢5{ (gZPTC#,`?37Tp]ڈRl=*85ʊNܡ&.*Z-*ڨ!zpk(M5D ewm]nfG +\V2vsTLgj5zt9O6vԐҵ}]Ej-xf U}< P;6:$:kӈzb* ֹf1Pjng|u _/{# +q;㱵YU}J2sPpˏC +>Je#՘N8~{sՕC,eu;uԕfh] 3294 -!{s^W0\ghx[溏LgF}5>_#{W]i/b}|AgsYg'AAŹ;7 +kNP(ws9&૽wNʺqS ݞic)Ŝ;_OdNAe?W҈U@w C=]@L:ϩ灚sA!? v'l&^wghٝ8>Zt5b^ahIzJXFVO\+)@>cZD,Pvi|*-|BD5P1 сQ `#,@JT ~!ɒL$ DN wPÈzp@M&x@YVrk4]ovzj:;J LdRN!݃>E\58(Lh{eX;NP\fҟOlM[[D-c j/'SVLz< ,4٫♨~_y]jՓBv!}]Wn/c(AYD +{7wLm0~|e?Eŀv&[Mn9?^B쟰5:(AݫiFqnnhmKJhVpP'C"]tBKբ+6@EtwEky"cj։$5t9.j]k*oh@y#-:40˜cD !]ǒq/S?ES_Y!#μO}D %;LVd?k)S1L}f$oj]F K ,AcD|0+b]ؾY5sxg.GcOC7m`}.hqj8Tg}fC33u fc˰VCA2bA8vD;8}:,"wj/8a;j~/脷K/]f:mEMoʡ/͏\SAdJW8 H #@yzDhz+I`?rXdsEI;znTMT}y1x%Q/I@g-t)o{m[mw +Ib/W +Pt(djN쥜gT֛\$J[GrܽO &ZE`n@70T5(P?g;MxHo}R[p`JFZW`10 *rȐ«zNqEZ ɹ@4lSoնip7GFm2b6ؐȝ6zbl®??;8a0ub@F]2ڠ*yx-y"&J0I䂾7! *}T@99i8|薹 +> ,>:!,!AOd&Ԏڹ`, iw@ܹaA/ +Yu ؾ'scM)ssDjXSc+̀>$LNt"=ϭnկJwa?Fُ\Dz.1]Oд_I!+3g/+mQ~fls?2m7UXģ$cū*r往MEݏ 6Q*q!wW甮 2,_wyj_Iwex'{R ҳ`~FoZf +㱌 (OyCI8jd2ћMYIHճ)MC?6Q(ݴGEwx+}'qbYhhoh M&P@l %u$ Vwf]٩jMFks҃E#|xLGn]8Lenf Zb$mt\QРY}]5£tQZf3bԋaI5 ȩ-[(HӦ{mT`CItvSyD -a@o*KWiʨ_\d-KY_˶Y䚔eMm"_A3P+,W`w.66":ge+ۨ1j:PT\6p XT0x9+O +zNOD~>ʐ r;ܖkXVd )Jo9IӠkaz.M,QN]$0OnPkKb]$ HƐX=vҐQ+ Bt<\4%;^J'xD%.hvX䌴6[՝ }qWmW:'v%}r[ }RKN0ؐ| +C B_Fg;$EŠTPi`_vJƱX1d'%};){Z~~ 8+hK.΍244VZcV}W^ȷ/ZQ!v0H_MrW;)X-GR*S@_h%J(,@We45Bisʶ4ik9cvOPy;hUdz3?䶸 O8eHeH=Dj$@i% ݢn+gaU +Tdhp +& "dtFK(a%sVXI*6sXNxLO5& dx$ % ,ᗑjF ބeX6W<P rYfK\ƽ ӊ[@ݔb2NmgI5r z&㵲ޞkDy'o bfp7&".Ȼ[Gl:( | |/jx[|2D.&^!zG99rz740a5y M7?GzT0k08 +pZ96^&1S<4"F pwK'|wRl 2$D_K>2BL 1&Ln?/f>nYJ? YT4/;E%- .X^[e~=췌s- k[_/ֹVVִb$~Bnv]4Q,S4QyE"mI}48wrdb溷*!b, (2Dc?L-G8p +w`&B69 +;8Fj/~Zo4hy1ڱ/_ƙ2y2$kz4m/d} 3αkqc1I_`>=;/\_ /P2L;j0jaxC`u6uWQ9S>XĞG0[mKŸ_ ֧mȖ =_ *Jw@9TN1{&-iz^V\un}z52 ,Zū3s(BT8x54 *VO@ ln(mMBLJ ?C]g#Y>pȉI 7-3 !nYƲ8Q1,.Ľ4wnbZη~~ +'Y563u$Q@+ X-q\V6myL_dӉ󫆒^\0}6TH@F.exO# pqD5tNJG;L_eg}=qo`]E$v2``a[jGɡѮv{.Ź ɛߟk@sɮ0^i[Ᏸcq1T-~ihuW#QUU6* |OrEl(5Ww|g|Jǧ,Kz?Ff1ªxfP ~!TU/Q>lPcIj V)/SE nA/ [`mg^γ;wb=X@ 1 bVL`#ZUOE`h?/=dADu +^^Մ{zJl*t`i |Vy@Xt .t|S$ t8*K v0,6a'/ѤvZg=Jt^ni7l 4@lfo[mZ!od_6 M CN:2IȱJ)Ԯp5(k# UaI>v2d}S|Z*#?aXp1,s١L'7V-;YuM@b֯ݸuTzὸ|`#אvWzQ$|̼hQ:S͋ReKYj'niQS_.PCvԒBA%~hj<ǚ.&{\上ミH`c叽[GBr&P|Zpzt\\o01$1/PIT- {s$C$zoI4RU ;Y鴛PƊza vNCEߠ'`K#>kr=Ng0׳GṊng>p$;dbCq@;H̢2LNX8'uǢ{Rpyep!ۓ ڇcmےe֥cj hݩt}N%꬞d8L Ʊ^^H\[._ յ_w(ID?{q STlw:*W{C%NfML mS v9jS~͜_4m+>{JzY:Jþ]`iW jFv;=~$%Lm7Ћ754ak?*@g0lp dQuͰ-8 I@+Ȼਮ''Blő7Rc`q୳ o cwЮ%“yTh:8tCMʨBYm- /!mvЂԝI'hwz{{t9R8FӋiHWv֔c(mHHi )9Q ^@bE~?o1gRN&N{uҺi]6@z:8kFXë}$@i0ݑK[3t*7a% B"e;juWUCֶf5j/D'u?8KB<D[ +1M:O4PXҡF%f;bDM(BH~-%2Mo{`3Ja ܽi.=~"t_ڎr_꟨BYڗIu_tP[z}k+ !N2—.4/іj?2k'v4{2X`J$BwCtxZA +RK?~L`ZilTEyaKK܇6mijIz$`1>,:zTX̄9wϥy$wCRG[a!ٲ  ieԅov(Pђ-!e)n!Ŕ$p(SVI]p:NÚj/b/;KO~j<];CE]/i<[2d@gq~_ z_}D%7"܍,qd``Vd9kpC@ 273GzQ o iS%x})Еr6rD2FmLHhQ] r\6]M9Mߓ}4-faqؕn.[[61H^ Adxsh=8̕i4,ǝJ333g3ggƤ}3,;OQ|3]mgY 19j`cKq2RKGy,G ̧H=cX JICT8+`I}Y:j(hwmgiDj>]pPx!IzK9ϥz{FRaE2VzUlĹV!8ی3&8 gS7 M7s^[Jud/#= \N|Lb.=]Ջ2TxevbĢE\j&>7 s R0ul`ϽQ.ڙc/̊soH:3Z)$Hj9ԒHHjHj1oYFR=FR+YR: `Hbe p&QFM@ɞ͈ZL]tBTV +R-Z)H!?Qotv#'`hxx1Ҽ4X3ՁV +_-Z)|kDr૕W5'-n O<~6їfgIT(ά23ܲ~{vth ]h2Ssi̷liX0`D uCh +qrIQjӵb4~Ol';;R[ϧZ(^!băZP͢p_ F|Qn`Aq퐊(׌HQ %t@d@Ղr%\ *%*xJWNpOXݽƳwy=yBB?ݎQrY1= x敮t @V ! +,YhY!;k(e|qك_9Be\geuJl݇VB.wE4={ݥ +{t_~D~(S"GZ1ܳγ#-*}6D׊I,"jEԝ=)` ;d'U[7+I9/ɛ3j٤݋Y KiETҐrPNMCGCJp].j:ϻ&安l`{Vcjz\@L>jt}xQ.V/qltp˽M8k#o;")  +.<}N4@  z:$]=iۿ'6;ٛ@]1 H܌HOg~xx11lv#X C;ES LpT.l|[S9_xK^#r6s#ōˑ]@ZN*CyY[9{T~4uxv.ʄlXOWCGJ9oq :Gn ¬/2A ]'N*ka M)ixy_@%pU&D~޾&㿑=EEl)es h'29l)Fu¦0aqj:EпM04FqB4^_*jէ諪 C/"\ii5?ysSi"Ek_=l#ȴEP(ٜ}!ؓf2-!pH9P8%t7\u;׫)hk՗A@%] gp-.`bH0cWsh>dc&&yQ +k_ܮ@DyޛQJV~>~:#C]_[˙Df|5ZA}.kt*QQwSK xh^ QwP3ō\O[onV7 ğvT̬ |ֱx5{? 1,{Mi9ӕZ^n* ̟օw󢘤D_SV l6Vd* OR"Q؊C/V 3zq$C} e7]< 7+^H1ʹB/~puk п:1,,!;h;C ")* ypPp+E۹F" tH Na :g7rgq+iCGo)75Z 6ä[Vb|%83wXȼT\ #~ۯ\A-(|v% E< P/G*u u_z-_#Bq4ગZue55Ta3_NZf\& 4!\D%,A]_Lבi눒Ԣ)N}7K)bm7AuΖ =ňP\?btGD&`{Ѽ)iX/ԕ$xezqn~(?6:sEʥ LLk":&ZZeWblƂm8L4442%*D+lb~%J%ҡ$J$UlHQ'NB6q{73͛7n^N+ayr*I0luzՎU&Z˶+)%w\$CWn2WIV~VWNxBWַ<, 9Pri +TX*ӡ 7{(yN @p9ɐ4uA[%ҝ +By Ր0ظ*Qcz¤ [yelr?nHCE܊]u!.4Vx5&|F +ڋȕ"Ƨ p/i Ț=1@.y4_-Qԧ){`!g789Mҙ(D97$ZXp"06.ad'egy\OR%QVםC.P2~Iv橭#;ft+i!k$$$q +QFnv5:pBKa}S~TZ \X ^4t%TRT8FJ?~0hP7Vx@4SvRwËn((i* i4tq $s~xnjJ?|2;<ei\\rӨt KB5]%=f>(k)I:.`ρ;9p1xVԆWdg'X=rcG=hP? {ۺcKz'c] #/IZ1:o@;s㞒cg 7k|C[󗰅&ڛ/|0.]_uNg4NZбḿ`Ynx9ߍ%?xq:NqW+Rs[:X댘];Ix^ JDXJQg< z\e.X6r^n/Qco  I8z÷= -͘lHDє+f5e #@hgS4N;$O#(.|e덉GX؁K42h1&[֧hJIF9qXxX/r##q +ss>jrm-:*UvWQ\vU3VIau\SV`MtOKt1 d[j^~vS)g +koѬ UXʵ&)edSz;ѨQijk\ӱ2;<R'W5v~$ m4K9bC2- >)%]FSpkq׈՚y%'y.ň + +< .9| S\))[##g5C&0fkQpI.-D4Uɚڊ J:`Z{N9;VwU`{9} +^#oC9AAw\4aQ}wD0%`c.<\1ǸMo8oqc4kHy8pXqWMpEwb;øb1>h[7Hjcͻ>0%K#yQ7QǺ#VHnoh+-;|A+3x7e) Cuk>m +ߢ99fW> 5GY'" k}|ȋcC[#\tZy`n=_  sy7w u>Lhs|S[ɓQn1w]諭!ww`H 1*Θp930_m+Dg\]_\L|5)A +!=eȘX.~L`,{8=Xo1T^oWG/WFz%s+7fOok}"[N9 +G۪ +%g7h8`;)kWt||[M/%{/ ,9RsӣF>VWdrjd>L 9xF=5&SG|$J\l۲'T`cdCWFeU6B&, n&,J0:{}|䄐ՂB|s fo])!9y$<_<>;Y|;aPeY>jC+ӿ G/fT77'IFkIbyh|p&Ɵ#%~7!a[9΄(F[̾ ;glm5:i_n=srh!>i >8^4\^g\h\٨F _h$6FcJcP#Bg{DS;EӴmd)׃嗍pGZ|Z}b[lWld({(*-YQ- )^D/Ðe‡tؓK0(= ? g/]׀ rf4`g`Q +cÍW Kùxa~O s |o 5Ј53ߒ SxO +* ]RA}[l7Xyㅿ xa?///O //7xa?///^'^'^'^'^$ yp/ yp/ yp/ ¿^'^'^'^'^ؿgxaxaxaxa3¾} _/<^'^ xa ,^ؿGxa?x<^8x<^8x<^8,^|[M/xaxa.O _dOO %O ~<^8}}}!O~/y///g>>>RO oLnΗmFE [QHj!o{k 5n1eލj$WabbBmX.QN<5#XJ(e"fxV$JSDh nʁ&dĬ5|s6|p⃑b"zmt@ڜ40G4HJ` 1djƍ\d$&bbRԜ-jfG3꼺iG.B- U7`Z_`mm}@t2F#Qn>>I:2ώhܬ14d + hP4(L^ŌpGB 8|mq} s&lru%ێ2BKS+9 ;2Ö2f~72ZcmB0+u ّ#45I".Lpq*)P46R_aJe9[i81M~I2ش4w mG jd'ZŶuY K&=V$CCж?+ +HJ7rCdN&P7V]@=yq7"8Ɏq;rj-6` +gBG}HB@_#%!Zhèl2">NR<BqzTnGZw [ hߎ lq uu;br& s#YT#c,o;w8c|s#,#}ҷur ;4`h9@!x]!iP#CU2w:r+:hC[pUhk,sr6Im2ᱎG8^z뽪`rxUThf/MmjW"ԭch?AxT1[x+J{W+:XXhuz]ƨI^M'p@O^MXj̒꜋4eU { +Sjwk&M`@IޤM1REY<S:nǤƠ!B{+2+wVݲ# L |(܋`(\G +0ȋNȎID6h@/sTPg4hI-Aш~ +ah{"|{I|DsLArb0H&oji'Nߑdd (x;] ve_YCN$5ɮ ę`l>7Dl6-n-Ml@i;El$`>AQF0nЏ)p;(u29qGvCRuo7/oZ*j1iTP^SvS*=cqn ]y()lT'j39ws`rr.~~LbJ)t8.3Sp5(-f90ħ5VL 4G+EkX$rH=0:攨X)[]qnO&䮏kX0I C6NHvm.vt9Vil +:$UΟ --mٞ$Ke 06iav,~A]3 +rxĨ8Ne1,Iip4ptQG#Dc:Ԧ=D)G"dP Y,3(Ϙ%Zҽ[ڑ0ܬ~0*Oc`R/0xc#lc!Ӧgia^zpؾ^zn"~.$w^A>VD g~eK C,Fp\Iݤ&qǙkw_ ;Twf|J]g"p6zgS5:zՌ3>hʣ.Ge `s'"Kd&sXX*&hY0,{͇y4Gv\gO#P<< df^KJǰ|HX7F[cCx٬*ǸyVnj<j,7yJq0ְAɼ2Fl:cfff]or62 'dw*ծ}7:տ|ڻ ]](ߕ.xJ|_‰a&$)2ΩxٹNOm7]d=F?F8۸m'uN1<|u6{Ȭ>%KfrUR~tt=2V2 +;|ےÅBnD#UDda +& wr)DQDGanmBgaDiz:A Ie.\O6CI{Xoq*[ϝVo՟;:!)3qd СSݎvnLFg2@JЉ9*j3LfڇI)<_,),]0J",>IKzKaQ/ Ƚ .d3d;~ ] =T[sOݒ/Ƈ2>L-CO2kik(~_E*!,|h@`Ax 1eBpJ7%}u_]ML@YJ2!p`B8>.p4DɄϯjt$zrVD'CCu]U}+qE-a ,91-0Dw*ѩJv^o[F rfƟΦ)Yo-Ydsd,)9 ![ksPm$ZCsdr.rWNEo"r%=z>%8i)G^G.Av|݉ؒ+#>"+ t1}5imTJT Չ1)ľHS4[uGrڷ='CahgcSȍNW4w nQ::vyÇ&F_+-pr~ z_KַE5)¹x 0U~1 B\I>4W:]wח~z;P'%z~ë~&Vs5$;#>KVeiQszJ +kN#.Dx+ cJfcָ55ʩG)fqӁѓ˩mcob2jr}K5Y=JTV33Mc95=^kz(i+u#<ORA7OBrQfR8+frhK%WdFOlRjK5+*vW߸"O֌`1->YsLb[n$_'@}y||@ID4c6ȅضfMp!mM7 mƽ;hfû+لQ^udp,pPS +܃/(Ś Nhe6$> I<EH!S Dۑz5+ШFmwQ&܎3."Ѣx67kAꢽr^_\:w=/ 4c"bzXd|,:Os:ՋL̟}zw?J?\;7L$8O&IŮs05jGUϣt5hO ^{{^评*&={A,^4k/ @3xfft5k5È )Ԡ*+5Hʜ4hZ ⩅fch#4Cl"R|KhdA$1*n]fFO%W|Jkh2J~R+l.5]?4@]CX_3xft5hOhO5(+D UNK. RT : +f)i 4i/ @3xf|V'&4\RF%y֓)J3x`4h@7 +j`j-Zio9ge2 +DIÓ 4h N|u0 5z<-#KUixK4* z&Z'Hꭸu1Gi*1- ۾ P[Xt=@_^{Z$fq路5Ec.[H?'"V$뜯4l8t>G~[y}+m<8`$CgW d('DR-l0ljtF27ExaҺP}.WSuas׸2*x=t~n'!(FdKDb*<,f[k|d0_SIn + HȡMq#*=SX@9r(`gw{D#mԜ +sJC1DwB=ӄ( +a¦~\qx2^'˜blkr?@}w :ka3!588qD"K88 Au r ( ,Hđ1(R ES'7/|:9^͔~"[+q?)h,s3h1陋׊}P9Ӓ1|>0_D-m?gp=q~+D~Z`k3Lg抆v;&e%Wğ.1fKiLuPC 4}~*w]l + >e+xz +^OO"FRxz +rxb`gwN[OO[OO )xzgP<$SYTr +yt&0~2RMZ)0$ev6PVp7ڞ ZTD4Q3W1A1 'H`RX- RX^i-%hN4<#RT`K2M'߅q壥\pw8f_ֺ~罛yjŀ yϞ78gtf [3apCٰ(?$LOi3BS ?`qۦt)Y-m/|3̓{ya{#~Sc=4hvN/PE4.9alϟ$+ rr"\`+ȧ6LnN-.Y:ѿ84dp9GgkR1ϘM|x8?>e8;"GtGQDwаcCCt莢Q>;4DwxDZk[Q^}.qѺ7/+ަQo_45'Vdq~՘ֹG)d1ng>>Y777sˁ. +UtkipE. +ܴܴܴW/rުĔo46[Gb3ˌVβ?qeòNIf;sJ }Ppv}8]pv¹PԮ:藠[K+- +gׇ R-s\-R>Wu,#L+K>P_@*uC$^#f:E?}R1֯[&tokh8iaDꝟgRVhnC'tI'M'뜖n|浛Tc<8υ$j ++tE8>N=Eަ髨 `;{YibDT-QZ*7xή9::r=<,77YTǥfQN3q>`iȲ.3G6+g Axre<O5A4Z{TXKQ&v +鄲flTnifP&bб؄J03kVlL;6JUYlJL~>c#s_o/\:sհBb 9?BGɱguVSfh:=U\N#ˍ/7Q >Tԍ6~':gCȣG9[{RqRrM$; ~ +lZ&K=\Ӟq Y`P;S kGW6CyB\D=_x{tزwfr`'th86oww.\SmgBgX75cGfU:t*]y*!'-x_ga΄) Åh鴡{{#w^[m<p5ܴ/+ &qb5"EEp^ b +ш.F]m.UK]Tt1XXׅ1Z9J|SAXL3e$-Q[w͠;wx;h!w!K:60\:d㙦6yƺ>ٙXJmo {}Y^+֯LTBQr#R..U=g5(zul'agyu❞DU6ڋ$"Q"o5- D”Agb.eqױC)e&.g7oQ"TRNtG%dP,ӈ`D,]W}I8dvLV!Udr2Yu߯珧O?<4O?~_G}B|6Q|܁Wsz G|@ޔ'@2Je`FjKAK%ھOW~Oۃ"{$RX5ɫlҊҿnܮؾW/8 $D 84 Jx[>U;Tf$OW'= qK p"wNŷ:Fcgxn)Gnsc|žJ﬉/p|%\~Q<#ޏ-ڼוSt)hK~5rsscl5ZVemL+{{EFA).iT8sU=xG(nI' ~<M㼳FN~.>.?Ow҃-MW~:_ދ+6v/Ǝ-ͨGܞqDD]{7=]ԌwiȶӴ$ +3- p1n(+ +jlۥ%k`Qh)o + OX;;Ҫ(Q8":`5hpZtdѝlL;y;R`_'wr_>K.l<|a/B]l$[٢x̷([ q71 6ŨfE$?(OQ0Saqe]V)QD*3]q|>$~>v=nԌo[׷X3 KܩKS3 NAp2*5L5q[J񹴱+zV]^iܩ^i 7IJNJb !4\wL>caJTolgD#ۑZWޏ;wpY:EJ^)K?xP:IU AIUC;T)ԋ;Ջ;B\_ً{1'P5mhY[-[}d8t GaD Mj]@cS=ӗ$O0”bB6x|Ew|_უE_u]F&aE>5]Z%vL#h4BiٖGD%eD%euף=o/.[ޏNQɲ+?V/X|3aNsoxSέxK 9_ +;l:GP5bf6YobDO5Fc%%'FԞK_X$7T"F#eE_NDRyՂ0Z4λ;PɤܥE1ϯp#l7jaktύS`:Z{5HfվIxҤݴstUelRJ_!66k*lMcfռyؙDX"/#E""T)9 a5:;왪V7$;zDtwVfՁ=1cSFy"v;bv2KTBظ6cCe'bxۚT>ͪ]0J'X=83tƌer}`j3 Uf[5uSuctb ?B?T*%T{5t^۟_M^9DlŒ rNQBUq:i}= ]e㪮* ?3;EI5Hq& gV@&4A;-5=ט i)IS!k<OC"xBBVe%[׎%V{H\`\`N=<>JP&"w;@gx^f3"UH6]CDۉPu6׌_[qm$D[^:\g3WPPem5ۨ[iYӵ~>χhquwM,W AŭYD\:879a2`p`VD*r2Zj1*-63Pm5 +팒ZqQ)ү'${E8D Se/›BեsM:Ni6P8>[-{a"9:]QL4dgu$5gOsMʶM<"i g9 r-2Kq,ÄY,?NH:e3rPj5’kjg@DStp18S`@U4ثdFyE,rfʺ6'JiTn٘hܠ0g8ˤ5ysڜ5gkyZk 7JWl7C`:Gd[r%ڴߘR:0=i4V ƟpNm#gZBjuYje~Ԩ]jStUM %MU-d7l'nL.52´i|kI2 %2ʭE5`!賛t8͑@l76Olh6C5sV@8]5\;zHiPb2M7&ج*8T13/FS&,븅.፥xҢ;z!O#u?I;^`IUo*Ύ/,pH,|ipwaȚKud7s%WG'P_o, 5ܒT+Djk_6 SśxiEl7R {x#Vźك_wu5%Zu7A} +i ,T|Bցo0HO> E# Ԉt a R#\dbu3p՚Vv^КI5Z,'~[lϪI߁Iӓw_*u_O%*H8/wC2Q!W}WXڃ YeBĕN=m~E+t-m ߻Vk[l9ū˒^t8uJjMkD iahFG`ki4x-@}I `|@0@0HZ!cts23u]t> Zb + G+& 7] S zzRa0Li=rBp0kV1H-{R넥K v#mWڸp~ TIwZz}qr +|xC`6``} F툤 0!  P`D𗀯sl D{ !`d.x ߜЀvF*2 L+pc@G +k^^"%@a +abUOpAnLهOШ_Զ6,Mc~ЌNZC>2z 6Er C.~p`2`sJn;6){ܝ^^hɞGD-l6"k\i_0b' +"s} +~%+(nr9+D.m' ʅV=W!{蠹+#[NFg岱UH0ZEߥz$1)[yX1lv(=q+ DI&s||93>;9g9gs9g3g>gd| >s3>s9g|>s9g3GgϜ3!>sϜ 3!>s3!>s. >`̙EE :*P[XS.೏I?p!<|&! +mS<q wrggڄM8ĐhT 2Mm=݌u3U|mi a),F]xpt1Y"W(xvڴXA-@ TdDm0e1o]c"u_DM137vi۱I:pv Vʃy:ęgԌ7eMfP{KZ=,Ǜ DH65^?.e՘0Vf-MjS]|w27rв!YV %v |}f] d;u;(\or7ܰ"an'ejRj仚DFl6m- +L{e`]jn=[^,-unj:u\&QOyn^$m%vc(TZ"Qx') &RxR( I$s7*LoiIє%ҷ];+w"O!t y͒ۀ!Ov 򿠍+|4H˝d#! +7@<_N楌@e w,r?jh@nTFϬO7Ѣ^k'Eδr`5\ ?b95Rg55xJ[(Y0"W4n`lx)f]7A =F;7U7E2좭۱.0ȏU32*g9 ꯦxi2_ɘ>e6Ki· A~V\%[ +K_,s-SJ{~_LvJB\Vs؝#M,~};7/껜(ZlAlj=ϸ= ߂ +|ܺ.d+>QC^U+tkزVM| b IXө`Vt)tP]:?7h% ޠ*#x=jGYp=*a =yD;[^%q^~edڪ%yJU؞0CoCfRjUZnޒ~þoRsW W_-,(p3*hj9JFcL?I&'oI2\^ʓUbG)f,\.hWїx*LhQPNծأgKhQ/v{9xyfU8wl8tGwڽ^r׻(ۅ`y͕ERr@ +qmeмť9KlP>cC ^!VtNvK(ޞݫy*r(KQWĢuyݞ%vmBZ 'kGiәyG%dFo,9Dd6PBB 2"!%\eX5Y*j|faD:{oc8f^k hdxd@={GzK&b3_Gs:|9;[Y|f=t} - =6:.g=~N ʾ}÷o^B +(E[ $׋+F ONXB{:Q14kevѰg~kXoNv:䛻ힹXtY.+19Y1U0uVrpSͅէN-8ಊ㉊d9w}Ҋj.~$#L:E踶++O 2?i2 䫗'CLJ8rc^S6̺'nd>?3ze~~X{W⟟aTݰwaO8#Aޖ-4]1T8+`օ~y'5)?}M*'dBdžh;)ߗ';wi;g+Z5Q^2#.\}7/OO35zOўv!Yd ˀ9 Py}Ȁ.lU1scT$JM5F 4s6\?o?/}3; Ύ v6Ө>r<0klXFMyad,HQ3V}Tjrɲ(/{9OHWqMr9'N wH䡠94E]UG[o427HlBuå|'L0 !t=Aٻ6-3{迿̌(Ⲋ;(z:8'ˢb,|j9q .GV^]mT]]Zh鵱"KoOƻB0q+WU욨KT2WVŮF*/AyOƛU"4fjQ==vU R=-顗I z`Eբ[fI{ F% \+ƒFjV˃zɨ{(㷔WZÆU[FI-o{M"ӦKKZ+ ukrJK'g_inim)dQ6ר*/sUӪVL/B/P,q(c0B؂QWz.vIIa>=Kl~+ae uA4ׯj~E/W?M*`M1C֭im7%[9$^ G4RşUR{(Mu +FΠ;baBŦ_Wpf5 +R/0٭%Y}D [j]0`>zfΘ ,}O B 0WH^c1Yk0e0dYt7T#a,xRYƉQzm cz*6=(G;SE9`XW$s 6NB˭%F+m] A7K}sROeCâJ{:la:E-AwVDj.Wu={&N:~ת։>S4zO`Wӄ[T6 +U]o-ѶE Qޣ5>r]6|Wxb"(6gW_^mjD49'G8ϋl-w3&iuQ[e&겛ES!]SOQm[BkNi2|HTx02<3;t6ɛJ##r+42]e-MYuꧯqg9按Eb7ucߛ>E;\{AE7:bH¤=wJ;E1m:ZMt6;N߁AwLL` g}a}ܻ *|_֤bXt-"Y"ywQ.Fۤ 52Wk˭Y@)O&JAm-H[yZ>^H[+ iĊoOѥE~_QI.kj_L +/$> QpCqm +=?5\ +! gzƅ'hR@P>R܌'L%yֲ}Enɠh m%XQtH?IVSpAO w}p>ǮcCA\A|z݅ߵ9~? + ݟ/nX*b~G`,-7g|_Rh>+) =4(o݋0,i\}x~/**bpQZBKh]Zҟ%!ҴM{H_{>!ppnFsҌonr]AaHDZO=v> Cz[i::XۇʺIJG۶wb.r}Ulz_}}MI|&/{豕n}H+ MM>Qh!>-EYֻW~XGTzvZ3}j/ߝbUupRuؓ ?%R@eFa8x8 |&]+GPM1Y[s8[k>5KM?9fɘإGIΨF]Q8jV#S\\kӷ@-E,`2T\t:OS2MxҴ"Esƪ~:ׅD7~pؠX;9ڷ8`? &bИv KЛMEn:6} +@T|\桘ϟCzϟ0d}vزΈ,ܥ +f8A?jSGJl4y,T[zUZ G 4uXyBPr>鳷iƳQ_ày1t K[7U3s'GXؑMKpNn8h!\1R|H*bszr~DS~dT5W8?ɘZe׏ +עfI-X4;R9?(^tYXK׎VQÕ𡐾{WrȤ-(]dEQ`AwCWYlJ='̈́.j,F?3Cش|к]IcW r`b0v0t-tR("HL0.>$u-+k Q&\dF0:-G̒GkH.'Rb80:\kS4%UM +kLZ/׍IoqS,fJ|4'1Ww$6ގL0psH?25w>AG +Xq2`A e48.D߇ŭ P8^kd/eYv -6?~292/Xz_R_uI?אԷ[ǰIHBŒ(J1hemۃdYCŅ ]Vǵb asZ]֏N%'U̜mOp,@m*팍MtdK;GQѻ2&Q0BMc'6|6FCbШj9Bp՘G |:z0 ]/kq?V9=/l<;c@܊8s !ۉ_n9i'&!"y#BM@WOl|Fi>o Rvl xs +n0oU4Kp{xoIY<>-PX)z<:[W,sjey7.% ܛX,Y~f.`KKDeKkp9xj. +&>N5@{Nd/`(w1F|SG͉'9r\-W@D?Il"$\fVպjhU+c #){C* q'Fث0[!z*bi_ƺcGbՠx;/.b@/7R'( ӮhPʙ;6H +:uV<{س[gz~/H(evT66xBIŎ/EkoY9}á4\[/Ӗ5d6%\&?[>6j,1.k;ߚ/<&_D:Y1$E9W')1E1K$-/I5S8o(QL9203@i&`4e.I1\bۅ._A ##7$VItR[jJ <ﶢb:&g~ܺŻ, QhJQ`'MnF]¢u@pI.ҋ>{/A?}lϣ?덤˟Ky#-Lz +m'_3W_v0H6^ںnjCu=J] {\ߘ7 9Zܯ~m?8>@-ݸVt5 7`u~-\|^ >27`_6i zʖmݺ^2La7Oq[}ҫ⚰\x#Cl\k{ ΌTW%qÀ!AtLl,V^ WU9 zeʔI e߅ʤ2n'l5^tBt[`\wJ],0q4e\BY1~2 +T74*VŬ{[4L[ӏty,9KQ>Nh^C)OKlV\"1,%Ć2k9! +I,*h\Ux~oWCkN6J&\1rlmXZ2yYJ(oI@AY>SPM*oYc5\K~B|ۍf 4R([S:WٞW9 // >zlf PTk2*#$8Zzj`8RWc[:/E*,ԡAhX#Юy3lBa Ďra,^)Kt%kyȂ:a43_ˀKpcXXjN\$?i }xC2y#IJDb#ºuLܑhO{2uOizk#UB*Ѣ.{6݆u $4^2m7s( 6rJIf@àDLĦ0]J&1o] Jf%pӓZF)܂qO&|T#IsLЂ[6Bl +2hw or54V<5f*wc{Qv}:F+fgGwh4%2L.bdt#2٣aA۾|Euڗ£NvQ(m'P>SA4A +\zp=Lp{ +^ȸǟ+ѳN= -OlhȺER& +T,B1l  eb>,!R3CK΁P^}+zPFwSu_^KGݸybA5 /2\b%X;ss9KG )@S|R4+L0v:56FxڈOIF6F'Fx^(9jaD>6Ӧ蜬<6rO{O6i#kRx`7<-τm +6Ik>dxxެ!RӮ66<O DtDm#j3jWW֮9+iS2j@՞tjky>628}L)PmRֲ%7ab-ǜ[ <z) +mM1`WwŅBmKÂ70C;mJCUiܚc56иKlRg (Z:!Zn_6#0Xb>܍.r|l?HQZ'эAM6/j~5UkR'jDiЀZv5ܬ?Bx-O ( |:] CzkIT\gs7J~I +B[ezGC=N&r3~""Rw\u⢩.z,] .JPFofpٚ퀯|׀ A_RA.ܓW0p&" !fSu+`M}fWa>fG:5ÍǽJ}\Gk o{}UQ7 +ccO{?ڇK8+uqCޏN~#  nl&ve{n`q=r!Z :rE, +1a7OS"%t9qP3۸r=BZ^-3^{(DĦL_SF 2!; 4`<`;x7O5?h|x:'p$ Cv!a;ÕLlO:"~m}HOV'i7W?7r W9"hFA H2av7OAZH? -F?u ) n?U&9i*;'2,%NdL7 lR6''4nq&8 _% ϱ Q0 2Tc~Sfx|̈ oliL2l隱h2I#@reH,- -M_+k'IQ2DdH5&CPL Z(,R72eʉbE8l-i z;يYOb#4Zߺ3a%?([s!1FzWXPvp-~ɼ ϏRe _xV{'.Esʵ8m +=蛼XNJZzj: NFE{kA%ZCҴCZGbC +0 aqذVnU6y {-&{9P]#T1J&pg%Y-0x:PʱYwXuLP̆ob`H17NWU9b,i>|4uT 52]tջhm+m 7}shRB Xᕇ^uݼ~lvpXWgBIP k P6)Y!֙Jc4+Z/Hrl>_ve@>N'Gd}hC +$0ʮơn 2E=גV·fgNU[Q}Ll׎[ݙ^he稶QmMv;,62xU+* o&56Z*eLYk<`C6 UwutAbmUhJs _Ze`e}T*՜e`n8ǩSeU7eѨ_fuICT{y5t`-U/.C),.):ArA# ޣigH +JeaȈ0N4r9z(ѥ!R</ץEJnÒwO"LeR@q\j,)Ώz7PJRFh0V'J + +pıɨ7KT6`= )Q\(p#Rhˢx; X?gJ_J_ꃈ%챢xC:t$XUP'ܼ jfZVA\Ў"n^uqZA:usrC+F81b[C?>c'/?y`mXLW9y +bR]tuLP̹-$sۻ+HIB>X> +xȻc$+m[ۮө{)؉AVQ np@|X/Pa&V4}9UфM oNwу- dt@Cla1>cu )e֝x0Cʘ҅<۶Cq. oT"&cUl]xZ g3/} K:dSn"}Rw.)l6I 7Lu u c鈐B`hX[] +!AC( Q 1${|D?sy߹_1c0  D(|H$/KPd~iLdP&饖c ұKSRإ]KWoK& `L%LhA0-S%R]3]߈,;ZMe`[9 gy>5n6$2KɅѫ-CdI8eӕN`%t#K~ W +N.Y"0sJ[z+a}(3 G/*&JU狱JO UjH`IT^+?$Zi/H+cVpZVu#t}/U2|`'6a5SO$ECDTG<-dN ]E+s6`ȸJᓂ}4"|#(VOҳb&J;L'=CI#tdNAu12R)K\4h$Fy \_%=XRy%d8$DAVH2?G\.fQvK[3dVdE“=Dch!sRV`e;Ajf%G).~/h1/HfXŝ@G!z&)6Rd8+!|?fSC,/g@^+ ļP󇞋BF΋"0F('-d+@Џ'ZJ +UD\e ᅢ*$CW$C_­f~XB Q^j8!xˮh0f|xCʍ}c05;elX6pm1ƃNa2mFKMپG(":~3A ZDE_LbiIܟjRSw)o +^BA p#FnA|&P fBIb% BF +hx*%ŕ6F A%VJT I$a -wE e1B&BpnYÛ+pqKD$q4=?-i Í:D -ѺdxD\T {qBON}㚤o+HJQY^oi}&{4m:"e>_$s-ωởi\}mK}pOaڞ`a?yL<>푴V-y<sWZ+{$=}1&|0h!>~T X[ 'SJZKy#1>|tL"ꃎ+ cd'ѻɧ{;y5s=(o}\&C䱴È!j؄*y}<,σ@OE̱p=$B)+7 i4 +!! :ΘۯQ6,xްo]%dF}'k2פCA}'.#f6u)YPX}եdG\ +w)mKG2Wʁe. |??#k>"Q惏9YC|EʸX/O~ ]Z \Sڻt + ᵘ6u:Uxm][' +][{E^k˵mmc#ˮ.Y.'F6F6F6F6F Q ``Eʰfr)=ޓujqtk{vԾ%վ*Zl=lln%#3}J~{'ۿ= {.װX2k4fґNҎLG8QƏve+ŽNڋL2px/#P[{%'Aofr Y2ʨ :(:/q,71 &ad9,Q6lywSi k73ݴ,Zﺯ}Z4fTd `vy8 n0z'c*݄utS%D@JŒ,f4!t;Mh +;ջe%m̩D|,$ߴIv_3Ns:G6&}~[Г![Es3}dJC̡X* mM>LdZ<2TpNT<Ǭ~)]ig4w}H?TFj + +a~p5 vPNq߮| }vi~gY/5-ZqA%?ܷlx+9??X-k^$a5'+:K3eOp{pCB;!^6}0~ AZ8/p{}L@zmSvSV/.yhH{ZT" +IZf3l#[f7M3< hn C&"WVND~ L@5;'M@qR_" Qdrڷ:~^ CzLY3&>,~1wdh^:^'\}ӷ?φ1ە5+=$nW~ȬcCz.,K'Ylz֝X~%(?ʥFCL Yڰ N*Hl?)+8I7rsL`Nwl)33=zO=F \΍Tƻ-چ>SA}DW)Ӻ)O?KOO,CJ~璮κ9ǣZfy+͒;VۯaFz1׊[j^8lM}ˮ NJ boVSb(Gzj>a =Ŗbd! 1M?߈KڸYF$X()7myxj%Sڽ]RHX S +;gFqOCc 4L+2jJے'p`B1놧70KX(`Q9ƬDj|՚$XFo"bl,j X( +l2QqU&Lj:T2a}[XrlG"w@->z]HL4a>2- #m\Y ~IO&R'Ft_01 3p%`y[`WbL6rs bjĪRl8rwdALv;>R(7`tn#,\Wn]iPr%H豂i Kmh5,I48AVavQ,spM+O`T-LF8֚d/&Ci@,k$1U *cZюI\o5C$Qb<sՏƃydif.VpgP!bΆCCEα68@UvIlVc^RxЈX !; 3_n*LU rqbNAi-`NjMBQ@(li{y|69*f "ͤ6Fω[n"( tJYC/Dۛjs,U +-o B-;" W< tB%% S5{' 6hQ3/|a3";o8cƭ;w>77CfJobJ:sy׼?^ļ Y H15K瀉j,ffwB4nhߺ%,f$'pؔJrmks*k"(Yi5pIaJ-΢<O6O5`"Z[_̩嘖S6 # +VHLצ VB~uDaZ)Rů0:\gQ2>MS(>cd_\pͮewЩ\m +7J\)Iv)5B3Æ0Zݚ{f?ƺ' !qQELWĸ;bTC !03~(颽{|V~4FӷXޝ!w/Lڝ +hVTč]XL/&q9ZhB C5.#'KS`j=Sk7oziYRePW9]:=_&{пZeZ^ɓC>+MPdBqtP{8Skt+{GTC6]V|MˀI2M4ܙ̜uec jMfSw8>.LoSk~T2XPN[ԼN67AMOF_ }obHhȄh#fwn{V =߱!|1QgCqɷW?fCؕA[n.1Am0}$7K\ՎV ñUnK\ N3wGkji^-ف=63bB乨7ϡ^{9lZQ<zNvyTܝx'wA<Rub"$tF#/'5N34g7طZU35';e=k"f4CX";i gݱ}pP>ʇ|:ʇ.@>/D|'!l:ȗaƁZUH>YƧ>#U w*_څ*\s*ziC=z$A?EI;1O[]|,b3u=;ñ䟆y@9D + |6f"HnW~my&h_%h |HBXeO@~a_AZ -6Z 쪽YG|-B%_S +~+ |!$}+x0d|!SJ1 E/6$0,T07]*xYZJB/';'w ԥ +R 8<<ۃv=( BZ݃}1-: ͆i)m4;{i=-i0#JKô{Q Ӷiv׵ۮyzݘz4R 5t8dQArQhKUcelجЪܻrVP]<ii]sǔFu:/eu6VVw]{&Dh~UJMuMjXn,R, #rGX.5.i8*iIYҀrF}Ͽpy6Jyþ=Oͼh ysNh2HJUPn vG۬C arġ mbYAoK3輡j >7!"QKZq ݁- 24D]rvS0ﲜ%jWXdS9Ե";x/݋ar <i(FdD|g. A:2>UhbB\b UC!!fB$:,աݢ} (Cduyp}B (xšF{h]D#~ Ģq҈hA<@C9H$ĭHH<%- A|)567AneE 98YV}."%$DJ3'5"Q4bt"Z}_|4r-]*a;ʧ}H&1h00Zwd.Z9F1Τ(r1qW2aୌcKc9ArC;J+K:"=hqF6j6b :&#xR:Q̃y<#7l]ycLmԳ ߻5#嚄1d#<%l|K]]" '-wXh]8%}Nm[!hykmўk*&[7GjE4^4ޭD%%Ekň +9"GHWAa,6eqQV6=ϵ]S;X#H6Zrc kΰklFiX$X*Y,MbCWk&=!m"J7ݺpm[,1rm Xh y֫-g"R&Ssn fGY=g=q$@ bMլ\ NqDexƃ9m1MPEgdo\󞌔s:<u`ORYBH 0NIx +~%@kDDc4xk~W!iLLd6MД,t+Tؕ{?_ToH"NE(gFxCC&6RB6G#Z5(pdDjtt*[-H7wH +Nχc3.aюGΌ#n~ MWi|G?l`ѨGb}"4_En I6!"G$ha43`[v?!1JRd5r11I|X&91(dƖ#9I1MNwޜdsy{@BYY\ʏ#f"AOy悾y-נھ:}]J? +V +%FLyf1UW|>{3THłV$^ +YhMb铷cۅ q"JնֺqVdcd:8 HNF?6,3QDטr}2NSa6S'0ěi4ԥ͞]A+D%U JfrУO=Ho7g/DDQiB(F)rr[>)O1c䈱>–CY^UBS cX!t>5wsr[oTgMS~uVo"563PIM_;kh p rD*ۆc 5F;TTȿ-Aj+ƛ6 oae,3qu\};+oLWn |]*_)WB.20ޜ~[b/FY X?fy7|6 +`y#|Ȇq17'W>0 HrQA0^g_ yOm܆[aX;qDŽyKyK[[BAMd[%31r2;<#p.Z-Yxe7yxKi<Fҍ*+T_[-E |娠DkRv[R +x˷#yK"yuxKтl0oY}*e$e-eV]FZEW? %y*{k_8K/q8nIossQMfR/b񗢑N/)dr|v |6 +I&3[rSI;dQL###eoloJϵZ3zO> heJ@ e?uԆ6 ׂM c WQ6 t/|nIěkpR\oMVJ hzN\0oarpgm8JANew nWs_@]S2C4g~qCzm:XYm8!?eot^r:2[ OprzX]lW)ǟfQw~ {`kTAiA\ g,^G7Q^D5~CeUˮVǎۿ]/L'||q]0pf:Aq2-;! + +D{6Fk l +q7 +tg@)v0cK03AǥlSЊ\].es=Co,綄L{{oKw9q;(ň;jO]g[^}*!ǁ|*W!V˗K%|X>d^Bhq- zxI %bW[É򫍙h߇'U/C~]\^^G3zHewRh ́guSCӶx*߽OJe/0x!E=3;gZ/~6sjG-Y?eX9*ˢCX*m%)j=B go  +I8_}+~HtHzFMU>z>PqE]4}G>9Urr){Dm+;:meN-NW>p4ZHHg逄I@mA}G JJ*M8]wǨmD{am/kB "gX܆)+ibo" Nhb΋޹#t)_\" rOSg 7םJ8w+le@}cQ7ڪM-ʪMUXV8+Z1uICj*d2S. ǩۃrx]x^ԞMxlOz WaY$䒜.8Nܝޕ0w˙j55xHhN&C]w퐕ՐOK5h<5x7aeK9 pe8ڐ\Y/2$LFNJrSs,2\~3GEe3ʦ{ltLKu lVcsԎr~Ϳ0K%{+$=b홰x7t4N +uSR!ŨcwbLWl?~X=(LWXni\%ߗØ zjG֞[F?PPm9zʳ:,  Yu&o:h@)3YHvJ\C< snsC\< GJW:`t\D/9KymlŠb䋮+W:)|Qf.2җ|iv(cϰ41=Є +.G_rBKt}S4h.|Pi,QYQnj"9_0>\7&^/-%8lݒ[}wO6/Xh)˫J=gOQGl5DzsK#/+eܪzoůI:VR_hNo#UDW@AmT5k:UѪ+;y4=pVSΥ+J+z?𛫜v}}q3=v4WWMݮ\\)_Mmjz29N2;:vo6.z{z:x}pNs6zt ݶv[wt4$v4,fJk陒iSV?e!@|R5ʪLUXԎ& 4 wPӷ8qG=̝,IjR)7e@8~p}]&,•_ +QJtOv4gsQ&U1Z4l)@,4 +ۉzmSXTaLvk$喝u47 jzӿfޤ.i{B;Q7:UEmRWsT +urȞYe=\b\*r7#Ri_h㬟T i?}ct.sZ(gJԖ'‚; +&=m\QV +6G=W%+N|6jB]_F.*^%l_ ׿Mv3}?#Ou71qC$aP:џ̦AnsCTm/#Dߖ B3q8U;@W ?,#$ *`7kIto ~DjP~rfVz{YU?m0꺍Ty&Jvwt+beUTbzb{>6>*I6&]uHd>.W?3wsא!ߠ"wWɧ''.}x CQސqptW-W#Ym(p5J9a;9۱Olu̴[uwgL?I_t3EHiY1u7}K^J75Vдn(T!UKe9M37hܽ&ut]Yu8ድzg]RnT'7R/ UKIE܆rUwF-Lשz ~uThïr*6H9v$W8$ۨRWK MeB7u +cS'uPk:'pϲچ{Vv4&|%oVR61 +zJMʋ b>78S1xDH>mH3*Y0pޛx>zo8xx;N Cb/qqRN{6ߣJ⠔_eR:jc_bFriGlyi )/ ')oTKybpwL 6)Tb 꾳"!;[e4;Uקw,4Wf; c 4zDHn9J}("nm'NTVݓdJ¥J;V6z00ij72g +}WJT|=H]ڌ3oP<[OzqݡQQ֝aj(AOcK=tX"V s:rqpH~lrB&4/oZX=ci$|NUJ &[}%f8xfe B,:Խmq%=:欶,g?9U;zܞu2ާ +Fud5z/)h$A^?ޥ^YN6zѓSZ_4 OWf7ty? +'N -#!7Yz8 2@z5Iv?hd7;p qJ {Duσ̨$ T}R;ɣ+,[l*sX{ 6bPe=I(=%S ({.V scJ.)SPT(i 5Fנ{INqލ6 $O<3VI;4zX/,R.ykF;)h'~M{}&%%ޠzӔCzߣf؇'!>RBkX!#""_؂dV*(* M fi=.TSFB,YFą"ѫua\Kŗ9h$ ]9BW*WRQ&x$-jtSv+-V=x]C|cqhBhSIܚwwmjwoQ FUjLi~`#Ҙh 44F l6`4&/pcw1q7nT\ 7 m[x lpca4fјsoFcp$FW,"2]L?9#D.$4۠yaWVq}:c歝ꟀiYc_0,,ARn Br]t2g%&g{9¢;x|rYܜ/=rU]M+?RpI#ָlp rzr >5W)dPTF쐘~Xb{8CJbfG2Qty7NeBH¦=sqȌ#^Bo48%Z֯}J)ٸP8fm?õXzZس_ "BQX'2l*5 z,$ÚD=?;pzn(Ka$ =f ŵ0c'GBAfDdA[+/K5Ҵ˻Uʋ!Χ% }>CHڳW,@qal0)dصԗv0%–#F6u8 +܀n,9w>jx[*aZ-xFhodXn|?Pُ#n<")ܔ@e^0kA %ٲ¾ 42W'vOpeM=q+KyStVU,=kn~6AM|ǹ|4DQ*$:?V~4 B++e;JlWs(}qs5ӋӇ#,3! #s( tL/tktC :4 +< vL]]~ 6[q¦\V>C\3~0 l+7+ZJ.RTl'B!c#6}TC?IU_@ Y#tDδda# ?ş +'tHkk-h| +w#.pIZhD'N +#p蒫ٮpsFܫ|dT^Wt5wˢ s8=h`}M'8,sΐsk*pĻiP'Od+sMrG le?SqyIɤj`vIPU@INm@Wp+ jDJA@W 8(ndWHr#r *d/KX!˅%\L"\#)2U2+Y80k:PXw?5 0\gFa,g0MB5g*_̩Bf&L[$AfEpU9(F@t9qLsH̅n{>#Hj=PKJէ:UC)"d9$8t1ˆՀۂT$fс]{wO2qQo (]֏̢ߔmZ&ʚ""]|nt2?<R̲`R9! .s|s+^t +S`c\9bt;ق` +괆^3,Ԫ \ zW[N4O|Hl&zJw/YOh2j!sa ?QG  uUHʨ~3y1nw~vDY0hTa} GPG8D7yhH!y|{HErWO` KcbhDkHKb@CEnAadNe!<:iD\!a#Y]>1eMռlUwzǾ섈PO1FXZr~.dCY rDtAuҦ}Q?s=e9Ή!J`O!TBdB"H6ZQ w`7Ksj#7~4F`%X8{]IP^l=cp@ Jיr6u4:V e)`vMF_\\ < +`xYzܵɾX'\}Z~k#3j  b<` L*ՙ=hB<;,Cn]Xz>Us÷_#028+a S3 +P4:*qZgW2+BO[YKCh]ٟbygnɆ qh5~6Q$l(zAW%!.ʇwgK|&#Br#/'"ωDۥsQJLE%*)֛f'!Q F&G1U![3孼TVLlVLhD[eMy)ʘ<ʌ3Fvx{3&bTeF˻qo75gA"L6)?am)ٱE-1cAɗNjj}d1;A9 r_FI1-_s._#ˌQf~f̹,Yff<3VG:Dj0cZs.cFk/fL3|#k53 fa9/8Z f< Ǵs9x3n28:7n3 n|&SJnIp#Ӹ${/NO?`z @KDdfM)!xAw<pw5^Zva]naXܧ `\1b7bnٍ=fhh;/_;&^UG.YK煣~JYމW[+bT4uDk:U },=xu!爗ܚPy|݉lY.mwj5mO韧T!|8xȶ}1|RVDV#??.?3~K+#V +.Xq +58c ةm\m]i[؞OPIvtcL3֤Y Xϑ웙6&+UMO~(/S^TJ/*emX|aAex$tmN\ {g +FSZDg偁eh'MqXgΰ}밻m=S'!pI8m^e$ޒ7!QEC)) @^>8Z[ZgRKؖ҃^z27#y5= J +I2IYf,>lRzŃfrm~4hbm!kX vv[RvUw=m}O[:).$6NX4@J|?IӘzF;{aEtlwʥ9Mu!숔h? ?GYHTåfUKU+FԣhQGj׬bԖG>G2k2_UcV0.[?X\zCz%1,jjxW$Cڇ;Op<6-׽?gH.1꼌܁-pj> Gn +O_%YFjŜ8~[ҡ׍PJť4|Q~.pcz[ʪI GW/ )**{ay sYiJ e']!!FU? +IUuTWW{ܩ7`hF"[/+掣Bcmظ=UbVs9y 7t4"x9^BVfgH7"#$'XO4:M?Giz(Lgo)Z*vzKU_ >`Qܷ9r5EgWťwӣ೷Fz)^2 ^ +,EfWG앋?HOPp>,߈obg}8.Z;;>{<[ryT XE?FE6l{GfYe1{7%* +/h>s*Ŵ8E^KqôT[U*\eUi\Ӣm\?y1n)N}B6yMT?*ەUivMq_<}b-K@o"MI2bGS"V ;E_@zR($$^> O~'q@ >|<"KjC{_}/>`|Ol0 +~>/V𵮟}'yQu\8Nǿ6Qp9`^*;0¹X*xziPT\aOLL*DvصLs`E ۿ |;y GXlWPUWeItl K0 /$%\\fGf^zYwS~1TUv?و2]&<'(qP(˖B%y4m3c%w!1d׍IȮxKXtic +q&:+X 6 eb[4y_X,GZD#emfiuvV0x#pX*?o4‚+>UR:g7;睨J~ P218-A<=z~D!ޛ!oѻG^Ϡ,G g #Ba $ɍ3[jśt@gmW얄 +G'^.bdiL*;X6Yf25L*s +5By16W +`&8|lw +BBY- "B(uP%4KBi`BҰnˉ~K[gV߁1A-o\Xz *Hia*UIvއB3RvQ湭7`CRq0͈l3$eh̳"<Ǚyꏃy\ojՒq*$Ʃ,-AfY0d.s @f5Ѹn梻W# ^?K@n)'لq蒄^..HUH +ޫK',H JX$OvkLs :i7u$((Lr _jWLP' ފ'-{A<6 䟈6U2OA#^gG$\uD#KS(c)JjLLJqzAVLbzW&'W"[ +1' !Nϗs]&ڂߋ ЧE$)/w=|>m4^9#Xa乕 ~'LLRʪɡD*MfKr6&(+*~3@䤕,2ܢ,vsA?Zx?`?CNg䋪rK EJ^ O\ԙD6[wwW{,nߗ}V@CRXvzs1k{{^86@b$V- XP}4Hg=nd(l8ffctڡHiAdF^+6@W:AbFٔSvD#}a.̀kω#٫O'".d6#A q^F.?zv%R"uh|V];zc׍tbf{f#;*ORM]vyeIj8v]S1c>Q,gN|(|}+@KLIK?&Tkœ +)0=bE5)[e1Zq-.1̛)/J f!)r"H- p<Їmxu"*Zjȋ8IR(/yş'ua$]kgnyc7 +쮐YcbuUy rr E},MtgNWz= IΎ}X&}gzOq6eɝqEybZk+=G~C~ϓy$QZSػ\iU(AADHr.Q~BJ'Gу}(Kx.Y ) +.= 1 Y D\ +2˞٢w߼v48!dG#K[zC7i:a CD3?QMH4p={}Tܔ%$Ch<&`H“F Y* £i0GxV!7{Ɖͷ L,8 +"N>[9M3ҎaH#2 cBf\Lo7Tt,VٰlyC<] +[ +Y-Gt[7) ?5%,.Dm0R"J)B 6qQèv4 +\iT#BFeg?|,?Qu>ݣ'P +0=ʼE0x-&ϭ $ٚUAx,>el_/]3x{]FHSx.)K=Ƌxx,] 8s ^v?y.kli:a@)*l bhء+W9(lfE}0[@32u~G7H_\J\f#]3-jnֶ1P-B#qCC62#ҭ'Bxq,u&M;4vي}y D Gs݈F#$i_o$Ї[ßï{۫[ګJ- `l^LYd}x* U:'Oؙ(냡 ApP~{/RCDiag -!чmܾx":T_x":kߪt%,ljh!iGb$ pUOy)$vYJ6oIv#4&#[Ah(\JB j5a;Dacwdr?x6[>dF).aW/e]YSʶw _,$v¢hg{"F|yre JҒF5B .G|?'^(} #"ś +g[@bpGźMy44 +\5|hB? Q2."ۅD 9.a-newW!n}k!,VSr6"HPksD$݈KJrVw,2] pߐ^:`|B^;>H \ ?goų_x*yf8x| @pj.a$DHeE(6zGyG%Đ6gcs?ef=9.ʃfn+,:wOH]Js?jx3\Zx:D`31W9!n{ȕ{bNaxٽ5nd^Ux X%n 4.Pszg&m`"'B5Z3h?#Q ^*=gx]@޳gA 0-ە!vt8&"2t'i!Y61vzu,L̑1;brŢ"Aƅ/ ە2 ٍn^Q ϓlsxO0cъա"VwawyaGJ9"mf-z1^ \_d#t51DO7(}oFi4Wxm"\DA\๤Z|UϤ C.&S+h҃B6) Yabw%sdOt= >{Ǝ&MM*22dbAl=AUO.xrl_=<<OƓ~d׺D+$jlA"xRlyrx'WgɃ<)OÓ)I!䞾x'BxT'OœxR:Ԇ$kuWxωo"r3=Q1DDΝs| pg6@7v4w`zjs'Ş370q?`+aK0mA@6Cuna/˨>Ȁ^{^vzlalԠ_0ϰ zY*.K1}xPѻTc\(p|R;[ QjR֚σk3f58yP37AqPSyP3/ԔP585%}fg@M"OvdX`uH2V.\%B7(C(ABC+Zĥ9-3De5",JYɈ:]&m1A"ⱭA]1AF{G䋘[7==}P*vC?Z}}a5O@Y]H'Bi?GRpIO  .;h+k-b8֎<VP\NHZȡiV,'/ub"+t(@j4</i[y?j>:.ynH-~I@b칺" 坶<>6Dn:yA +˅G7NZQܯby$dCE莤KU$ m0sZ?JS[WVvǂG!/v%$!bV corRBqrӰ.DHf?1 +0-ݵJ@iU ǨAPC£Z#KC9E2CCR` %t6 0~#~z_:?Mzӓ4'9.$b_?T/?G}_~$ӘUS@j +:l8`'3I?Ӡw*~;mwO$?E_?QhA4lG|B↕U Bg"'艳*R Ey+tOD]2Dga.gbϋa.1ĐGu4tiXJp8'*5otD71*Kl.[&2B☼(#"(e^,&K9X%'9^]B 60CKh&P`dD*BNgI]XQ1>/1Ե˦.˿\uM,uQ͗J]|UWK]o./u Ե:B]Z}ԵԵaՠwseEo1ut Eǂq1H"PO+V0o#hIv(0q#(,VC^\yӛ|3^~3J^ēWšK "br)n{޼W Nr4ܫx*K4fԉͯ8/5:N [lFlXgEo'Gk#NܝwI%LUήiR$|&LBhBN89q^>Io8=[+x=+hcN?\B +s%#sG8:Ŗ3W>s>+3?5(H(訂= ry^J;6CM- O;^{Ow"׮1oT'D$R7ad!0-?",ǝ[ggR׵Qo3 ~wfү~nN N`PǀB_)?asdLb5rfMd 88^@L~T`6_s_&t%5ܾe"`aX1ZN&K/%^xc#4G'Grhr[3f=þnk,LIdTF.63&  йad'~XpүݑzEw.=Fv!gWI0@I4ӴI23'r֒4ʙ{ 7l0&6ww)Ozń=;}A"GHs{8ߜ*$I 7RTրH#1r'z$V?[/q{Z:g]-]k+l1sQb՗cw[i力) +Q2]4¬/:.hѥaϽ';u%G>2H7ME.߼LS/۹q˗KR|XL>,YK seR*܀[_aa4y'r-)iɸ(TËZ#QXOs&aze,{0N.Śwfi04LJvaoPm}Rq`گxf,Iv^~:~lA;}}}/hB 7ңunP4aqyF뢲*E~e~eŖ6hl-YDKoA(ޠc +)bꛄ/ÿb۾Dc* KDidw]&Ah32:l{ڋifzֻj}JZc['q0lБyc9D.ԺzYdZ&soH &uX9N/E.=yK1uB*~aDZ]`:s!Y}`#]HC7>Ll""}}` ]i-'H@ڶ[?,^or`;o_ҬoHIՆ4Ň3$ K LHz-L,iBK0xQ%c.C0Mݪr;*11S?> ?R-HGXS3|Y~"|<'OɥGv}\z$Z.]!&b;sXl!}z}Y43/;@7Lͅ8*ک|9ۀyrx͹e +tey#{2?=&5FLAKs3 Dl¤jCHltiLvQ/zyb;F3"*DG?H`J>!N;,.q9y?}Wcvfxzm-[vha1]S8w'h(ְ[7}1R X/3$՟h nIWAPa}~GPzJ&dz/>"U>%`{*a*ez7zM \ Bzj@֨(^ULZ."~3Yןԃ5z`$}GxWLGz /N j +=d67s`]\2hNǖ9X4P%R3HZ6mn)ԒN%RK/}54bl=l~`uOu}oJE^&iqsVF$?OamMxeb*=r -F#LfB }@S ml6j´0{hcIam(~1,j}(W~Q\;X(PIx.P uXv ==gRqjj#76tyn /SQQ?5? 1ϑx¹MB9z34$Cz|- d3.1>Z8 ɳщҫk7Ɯ~W0%7|N}g=䝲mӏr $,i K8#',tt$HXg$,%e ي|TJ?E۬o❜ChOu{eXq-cǷ[7"WX!!z޵HeE9Uр҃RI lWݥGQ2MzEE٢Җ;%W+Tlsmm)p.+kg6OuaW$eb•֫= I +/߯+sd9 Jd(/88"Qk5ʌd WYnG4iդ?ދ_- 75ѐ^?ѭuLVů6<c?/^p;?V^^%뭯Rb + λ(~@gnjF eF%7+|$b"ա:LC6=xSR!DCWX ևbUQKFBZ^D?cR0~I(WZ9UwofL#J{Ku{=#t-h m[cH;-LɵG7A.]t{wcPt +G'C1E42Q> +V~4Ϥ o/t4=٥`$,LɁCBe&VvPlcNЪ2li~a=8@:ZLd2kF<V.hQQD1T,7XT;Tُ#%otZu~ *zc{D!;i٢; bI/dZ*ѱC?/)ALi8 [Lf; +2>M?*NiN{_ʹ~q~w+du>w{3,ղ~@| _x=*~_p"Ӳ[֏"HM)>]NkRvQd2;[ђ?Q/l%N*N5:QY ) +fHa훾Cn"d . Kn4J4k wmkf* +DUcHN0ZU 9qE6a$BEN"E%cXEZ%T4EѾ>*r4D*4:DH.ŲT6&Nd,h!>j!A+7SHD֞JE0 І+Fp@altY 7$r+SvCw%05NVlt*gTqӂ}aL4;9J5cᖸސrFfBd uDbT`{ϵ"&GI%!On8!NrpCc3ȩ=!*0x SA-tS΅Tceb/(YAG <8 "87ߦÙÕ9: y +'|A*2\,$iw,#<{f[4=,S4t$5Ԭ:+V0Og",KjXAq,m3Ȭ%) T~:؜[L4mi{sCl'L6?(p *3΄0n ظpkI4QKRxB kFl=3&!1Er8 2 8$ɰnфMmUk F[S|<SPv%yAZg嘶|)ڟ43>n2G!6PXK{Ni&X¥vr; aڻ̧` a1zLC~XP5Ȭf#.QaѨ +3MYp H{)T3!֚ 4=n'-lǠ:ÆV~#Bّ=Rr C$ii+Adel}i]^͞D]Z~ˊofN7MO&kl?^]ՎaZqjD2ZZI>uJ^˂ty?Oo_\yq.:l܃v>[+@DNկ9nz/wtiJe-VW}K<_zwF.pj樨ficTX ?ؑm𞔵&s?_>Z^-ժXXNVju_s+{s], XClC~ѱV,& )]b3[z:1wv,N hV'uYd +?ͅO'~n+%O5-"j_9xփqQ^N풜[Vcp\y>r8U]K]Rum,Pٵ\ ]͜<Y`?rw m[̂6rA$fA$M|T!^17&@4ut*g]sU$:QjZ቉n/[HE! +)i]-Y͐#=8JO SZōp]%qI ]r.BS+>';x 5JN)@CNZNSQȜHf؉]tb'BivGwZ7s0 黂Jx9sZ!-4FlGCm8t&4lYx=mٛaiEX:쉶Ԫs4~gg[P|OL_a@X6BL=nolDQj+l#u$?le ғ$go7֯MȺ})t} gIa f' +S y@GAAtN+i'l+"G pNIgƸԮnn:ϱe-|FG?"8~7|㢆OAߋHN|K~ 粤// c#¯\];M|`|>Qp@H˚'H(乣'pjK18~Νu]aGݯ'ab=FX|Tf~U>?E[+h_0CjN7FbW(HH]a{ߌg>$>Y]2[3_ +? R::q\xe,9pcVKӣ鎻;&s +*m)B]UoL#7/бnv юLokI~}Z +{#tKZ bfA4]ʹ2!o"vq"P6%ypE\75Ll\8d ӕؤg8hfF*gCwIb(6A^^]~α]#;'G8h%q'1F'u-̜X$:; gᣵ5૲ҊdgH sAin]ET%==^ q!b:E tceɃnoK4("2ؤwK 9f;PHFvI SR>N]w +6$sݩvQBx`(+AXXppaw |dU&g5 )LR`?t'~p0R|Y\*襂C>ƞLvllA +|9sMVP(083<(LOUZ؛i +b {$4yŤn")X/~~j^<_ݰfi>#;xH͐gm%J)wÁ{@}Tup_%@W (LR^[]|:& #RgǞ/Y H?ׅ]v̥/u0f5Bi?8vIs;B@?cx8;gh9koⵆAB87; '!tX*Kư3gS# Q۴6<Ť[#th^1eÅ)6O jqĿmt.l %4\/Fb!+`DK)H .egьqu!+"NZ!y\HwH]HUod +Ie#IeE;b.@{N#䘅mgn]|*Zxލ+~m̖`QcY/*8`~A@fk_ָ;X1<&&q`~R"HcSjybE>%. +wU[{t. 3|;#pd|32|߅Pm&nΨ!\fM9 rME 4W#vXԙK&Y iО2j ҺZ3SI_&E]{}xqC9B- rGEFRZEVN5T ԾK6'LOޫ2iT~]ZUs)݋gŸo[́D)B@> + !-S'I0FhXpc<+` ;eM 4Γ\x=gq]3Ɯu5͕ 5"e* zƸ SYk*3!ꅋFH4RN<kkh ᅆN3eVf"M +2*aX 9'!C#6$!zd6sp AX(m@F"LczSO9KSm8#`'H &)RoIKx{sr{7PTo+/vޕZ%mxuxJ4֯e?y1p1ײ*^ndVDy?>ߏ +m1c`2Wé^[[9bz۟xM>bQWпK-R* +v,1B+miA࿭?BxJNzm Бb|b)`$Lr\p+^;*LώƳ'\r {$29J"ۋ/:a8 4ԃ["\>^pLjini7CϞ;H+ {ʃy_|0)ͳiny`?َO#0Ls87b[ƬS˳o2Xo'JӪ>CLMU"0.fA:(s:J;T;H +42ҥDH;F 0JgDT?9Y1+b%S5%.1W +Lל3Ėʾ"6J|Eo@@Bf,|]w֑)GpgҒ}7߱85#,2" vjLw #hdiV`wC{T>0t]<+Tc77l}ɅoƱE֓tSh"%8-+}׭H sߊ_XNZ2ÔVr;>ֱu.p5hnkdK=)Y@z97u: aXOa^$`% m =]a:]{~[LgSV~N +S蓮O[ w<_hgO}F{k:PvSTNងS6+D)~A{YƣPC olI>{[O)>(VuK4hZO9mMfd^F*pS0ONADRVvx9; o +ol47VZ9e"{E&nH4ImC;5aNP_*U-$_X,8'4OcdXpY2>|es+yjܶꉟ-i~F[Q|9$07t.m >5)$@ +jH &ZCs6O Sg"zCjoŎR۩;ЃwZh֕Wwg#Eң78 *_~! w#s\ǰ@{PV"6s5hנUR9r\rc Γؘ bOmO;P^֢شqiOn|۝u%+CK;|Qb`;Tɕ%Wuд/yא%3ZPL*V%؍zD Igb&Qh.ѩ.C?Nu'TeG{&C|Z Z'Hl{sod1$n|ׄ.-'juV4<$ gW3?AMMy<:`.{'9m߾{[<򓭹TjLKc +")#&vr<\Tk@roWwvxzăC!|ec\2=#}^%?O{RB`hv۞yhgScLkȩQ? #hQZmQ?-5-CZ;IYr/vTzOrӟ]AM5T" e}AYě{i\dw-%U_h`%4rsg)EQ$&mbZDd\G/ط֣EA붐5)*Ԯs$ +0>##Cb*ECY A~+ ZOf%юoUFw kvU FW  SOFzfӗr8l +8[o;W Z9]>o$ܻC`%Go!PtgN7 D"3ݤi|VJVz08<ˠ~-KKyaA~j\/=)(}+F*gMbS?L t]i7!aVIB~K,QV(3]t +=;Ske0 $ۇ6'>뜡anoJg_z|TYk oQvFoU57\Q1j0ZA`5/!i,*oӜH[IJZZصfmaH+ScXꚤ z{ңvU`-#/U+KؘM\5\*3n(r v G,.,\@N$]Uoqvb|2@oՅ~ / 捿YzW\y]Jo& ٬Ee۹~/.(*/Hn R i2wW>i-.f/2.CoCi[Ya$hn:_^#C?"Y]}sw长s@Vs׀+ C[_s\sk֑ϫ/_F-?Ѻh5k-ĭ dDcV򣨅eDGk+upQ8{b%h+e+vV gڰ,}ϟ{R'g}lFC-to]fځWoTl3"/W׃J5 Myuw0YQ˼W8t)t1`J3S*XS<3O] gmSWҹy oM?y]r;\2]桺g##\UfNWjtH͵f9|:gJ&kH-"vqiuy/Xu4T8M6L51b%\,zZ[g^[aY,a#^,vsDd{MKβ6WKlYHSŽ-G,Sgy]\zJ `Zfb g~  BO7 + )oXORr1=(.qi;aʮAc[[[bjA&y(γ5%qTk,$ h7|C5a-o[]})f<`Vv:d1@k2oͥ]}>&Aav<5KϚSyjZ$bG,f C`USeM|n[> g+Q|L/$} @i`#;ZG9T4jqT(KӸ*Lo>3=贎"(NpVRH CMI?}=tFv)SG)1J_\>UD̃Šgz2JߺvXuk|ZYWPt]|&ߖF$gv ?3L2d< +5U]6e$\FWKG1>`2{՟]ardrKH[\m alY*꣋cŤuoKҘG77,X({<}k>;k|!.t +@G Ev +/;N Hgm<`hc +*ߛGVGހ 1l>lÎy]b&`Iܣ^7#W(X$` `3F /1Q=1>0:a`M@}M4g^` &wi4=v'jvJwO/4qw,XA-Qv-#^`CAh=Y݇Rd z<6E, ]+غXu$b?X?3 }B Rrӳ>gc d0XJ + k顭l +ֱPXta;w>H,H ug f`!YkV/WArفd$ (+fn:X4fWRt"ಈm[+վv i&W?fa^anaüYz~'=߽:,=$/ZE-˷5آYCCKHs nLfJd4YDΊ8o]ɳK[bub(ĊKaK|zdMbɫ(>qq<8:T(A<[` +>)|ɦ)NnI~z]tx}1 + ,%ߝ V4L{/Π^SMP.ON'NKZ]sї'l50&qܤ cG.aw3@w& 9[l5cߠiaNSadCK~u)۠L|R#A]tj~.eeˆ)̦D >BEҞnNEHEQ~qXDOSmG ty~`N Y227 C{ۉ^=4b'8Br~x^uqleL)K1uM_kOlNKIb׷Lp,~"aw<5H5g5(Q1@ԆxGsX%mcm~2Z~$P;!@S@@ gOFc VǽBYry0^N ~-{`TM&@o@}\3.± XZ\cxK5+z=;Wrn8'A;jG:jGҸ=zS/Vy,J (U#ƇS0Tq wkl=T 7._5vW;191bAbI oޚ7Y7dShzs>roX!X*'|5"|?~o,_pZ;ЖL 涌򎖶rPM;խ܎iڠepGi`*ʈO.{(`/>VNw(+N-&vKi.!1kpUT[zNJ.aM8ۯϮg- +x +#cFZv h7d}tQZR +x=IU.Q%,beM|̧L,kRWs|Ж$pvtcKٙ>z[ +.L>íu,{9'%^iпUbFah8)cyt;@7/;Ke ^>%Zƣ4@;ԶM%4Azz,lu0&{: +%W^E%^h(5|JrG+4HT h5;A[mp/RGh\tc['PQ4$c(K(`zϯ23 D6U͐P=Ũ6,0fU Sݱo.;@ȟ'ȏ\ {:CȧG5L];ј lJ.rJŘ 3I/,;ק`}>'vV}Jf^ι` e9&T5 M$x^M9j$X0*W٘RmLm8 X@%ƑOGU7-X7+ +ɷS~1 +Á1u:F3 f\,k>ߣWwBS|?o4FFw !0xgҐe@ٹ$|]T3f+W?zxïQ><#psJ_W6vԐ6őL~QgPD) itrr +z{%" Pc+h gU)&,Q_tx5oH2iWG yqVgdz$(͛~JJ`zK$S&]ls9]CC=F"KD~C3ҟzI~+? #Cz|&j].TG5$j3~$X9zYLoה|MnuW?|M.; .16%+_c>| ?+_/ע5|M@:m3u?h/]|}|ƮK|RJf.8߼4OWCNu-YCLj<Б9pxG%ccR5 G34GZ"[Vˠ\Jbj>Ri8`Mcrh2fzȴ<lgL_g/r!1A3S;2kXզF:{e`]Zځ94-/v<> FO\ XO@u(=8dqcPJ:Ԡ/5rI6B5gRD@͞-GjR|5`|pߥ7gDMGVCO'INGtS \ ZC/y5'@|Q/rI@@k +is0uoB.,s$ZҠL-D~+)t8 ۇ5 bVْ>Jƃ*(o@ 5$HM5*h2^We'3a @$ zS~(~O/#(@2v555׸k&:_`Je{t#i|;+br>q*ς42EީcUԞLq& Pjh)Rn䠶#,KBi4-;yXԖh:r" Z[9[tÐSHa6bȶ\l!2\'K316pUrDܛo]0@jjIVOIs$nFsPxE!D]3::vq4Y3+7:'|p91Np ~M9P +’mE]y6c[|-A&9uKX/?\ju3KCsԹտҗ؇o&2a+w)kj܊Y +0*}U [l7ylA[-,b&nOі t::V|` k0ǩ;U '6pW2BEle + za2kBֹ⩚DbMNo_>K:HNaMIOUs@Q?eI5ɤp&}ˤ*J D@4n{\$44ŌSLn" 9csw곞+jWzJgAl89F>/J{AEJ([Q:Z _]Qw\b`gw +o]M|Cxk`Q YX +Y{hv;9kA𖌜+$Yֶ6F.Vu"뒸eƕϕ8m.o_4J9Tv0Dl||b`]ebt +8_*a +UTcE.ڳ4>mjХӟ(/b5Z +!HޥT3,x!N Ng< ec0q8 ,%W6Ρ71rO~tR2_I,}T{7猼o6E*!YL'Ӫ(|ED+b܅7F}?Q-tjH@[`T7<-"4!>dՅhѨĹ喔|Or~23}c$3orx>&3EJ}gP, J|t[;TM$azVrr7qX BLPYIm#nbt 2gY+Ѓ^j&)6<{^hN'Do`E}#ԚӠ"x8+ n9я}30J^kg29Op5񅎋@Gz]Z0iZ^yQR^JD|pV& ._"Y0#^r(P.sؙff߭-=-Z >L. M(Ē@ jAm#Lk+xidN,om r+t?n9iwp%1m$}6&vnc7i"+Nqp[#ŮĞC:^m(Rtt̚CV'`Oxo(ޝ ?YW#G9ā#9^EM%Z$ ~~FPuM?<؈|ZP5oC,jC sP /{ ؕy1"OHPTxcy +"C9j%*}8EI!Uk +͘1`>kU I*0 ֎Hu uB1A+sQ鞋Fb]ɲ.p +WoI!LWkr釐\'C.r- zsoIL&H$\Ru %Fj5'zd&sd1b@H& +$cňLkl9<$NnoC8Sd]z =>2|e{5{NRɂƩ"EE36!1=^`rqvvYq"$dg+^D{J1vzUcSw;G;x=JX;v?Xsޡ#+ -`]"o"p{Q<Ӊ:po?-0B/?6NaL%(}CNWI#X~ͼ b@bj{=[Bai눩 %k]WIt2]\SCAR/yB3|eGCYFnKmr=V343jǟ?!_h[DVrW7 6.݊ O$8av*?TҀy"9h9(g,kJA~jEW*ǚWU^Ve8Dl)_N\?NjbwRuC̋?䉌us ;8IQi{.3+3 PX{A:\f'ngO˪cz4I;ђ>b +ϱ˒ժʀ>˸ IbC +_s ʲ4Z$-# $ RG9C_|۟u&T ]&]a}{U/qಆ~-;Ɩa)>qB79mAMQy(rHIT!{Gpg +En_^bц2VD'cBSU6 j;;nُsw"A,uB4@|qxm t8Eܝp,P$oS[A7:=Uӗ Aݞ:Z/ǸK2kaduaɚԸG5(7lu +'Әoaǧ{ϗr;Dˮ.\]*Sfa + +qPpDZop~PO +v1cx8^wx;3_._.q/+;4j2Q206*EHw]~\ `4LphfwLSLjyXt8ɩ>HϒAmw;AdX=(:"gXḦoV/=1"/kcɩe9;n[q6W54kjB̮EvROe'zJI^O'ԋV6b^1wiaYԓcNjw_9i8sTP-v),u g[Ч>]Ћ$< T՗-+Ym;'dpBirVi甮uXu\~#z=P\%ޡĿ%sC`r8dVSZWӌsCL\(QH|1G齚8JYFɍv8J{g_vdφ<MUɤ)@FMFHk~/5M"-ؘN @0;r)jA$'c^f%uB7Պ I2؋ +~By 4iuK{j`HǘLTdÍH7-fAٟ =X74!!F: CNYI'>7lYMlqmps󝋹6;smuHo7Ox}irL6Vv`W>^yQT.`f,^4n' ߓ>G5٣wF|])}ɴI<2aZڬW|I |dYQИz3`_bkdrq4Ɲ,qDxo#_v앤$/{ˏ?%IIPD^>w_%޴+8K.D[]."%2u­\'vo_̓t|~!CuW>6`Yk[LSZrSZRVgk2gKi{ޒVMY+q&|I:Njq78^$7M(Y}ޡe;x۪gmtZ V4G;n}捜| YɻYzId.g6E3խPի/2[hgշ";+P# +5z1ܲ +?_?qq'6K^95|\QY] e:SZSZVO8U OV$+O%+ODX򻜬<n q\gy#)(ꨒTXrRKw}>Y72)\gLc@S ē 9~+ԢV|G3dCgq~%};5 +`s3Zg:մ^ʷ)ڑl%ZɈŮKrrF5pr_(Sji)6yHL|\SL2UEbN嘸\l#Ē}B)P +z1~_56I^6-V PcHRӈI(bℓӑ31KrRֺ7(ebe-^j'qrRBr$y9:if^NbWHw`L/geqJ%b#y Ǽ4Yܖ5,VP>?IvvҗRG3z_QN2lDbFVƆXL?i uV~p;J#=HĦЛV8L}EwBKgQGqLE<%(P-&%I7Nzp)2F]LoAw9(y@uV-IA,BP0E +Y3= {;ouG7~~qk=Ƴx>sVv/PLŚ.2"q㧼gpHHF3},:bY(j8?Go>X +'pvo gҒ7rBjqk3!`,8} +w7׷HiJiҙ6U=jLN<ۇ9^0@Ee%Ea:w ЮugeP $ĎeC-hj~Ny1Vכ66܍G=l\,$3!;ֳom$-op]_+ .0W}#W;% v}Ӎ8翟%3*y0AP|pؙ{ Ami^yْͬ :}fd3-6$1ynBjsMϟRx0/ ˭]&9G~s҇o>s%߽HK\4 :[Ut%A H4B#Akv'LiFy Nh&1 Z-A4<4`>&=g@F+q9|Dj,/Jq&J#IQVǔ&[Bs}g'_ 8n.rg]C8ܚo=9"IOvÍ8BW@,/[)_yoi5oǔQxt鼁ΡZ{$h;x-+k?tEhuItVX + ;cV1_Ab{! '2zypbosiPK0L;7pr^@#AJy(M)O}z (yUL`^tlhy~(B!]G85@mE Zk)f5|"c0 d2Lc$Ҡj&c+]bL$ͪdhq  + œW%9Y8; +οSy`DtR>=1.u!?/gГ&N~?L'H2c7}1v"vcqTW!+cAB ^"YZWBx@]"}OcH{OCbK~*%bޙ9/B@'\}Pv"w%-UfGTu$"9!mI1v6J`Lէl/E$M"1s oEhRࢃ9V,sv+:9UpUݮFШw{\UZJ9ъr:c] 9O㸉\.S.lRok}u.vPa}=|5&_5}__B_V \ŕ3IpU_ߑ2srka T`́$KTim†"}Cbc 9tI ޶Y?WVJ_% w%ůg!J^ I#SÑOvYɼ]yFxÕd/+{ϊgR7]+U#`jo2W7|zwg7R(y0ThYMTqo^ԎY.piHޟ:tȘ0m76[ٟ'J#355/iau2 jp2x5UB0֧s +O_p+'2+]VRxɢgQ6bpB +3v99PwOZW$^{gT@:qN(IWlz +L) jjK&/kW|ٮKՔt|Ks[òü:!˙X4}G\*__`iȣr9͚F@ n'IdNYʞT|`[(W3,9],!7vɨ,?NLBu#INna7Y֑#~7-!dGvI^.ϳYԘ?g0mٌI\N<&DTPxW8?_8TK]F/ } +W<:I4,%ά܇GFXUg2ŖJ9sr9bt܇Gz]}?u2K7ci<1)ǭu0{QcRO802ߦה5zų=S2q2vޔukz]S/\_~6Dm+dk٤s Z'/_]yY[+ ͮ UDlOdFz>{1L@/T_~fܽmXˈGjs$2_p T)4=fѐ%WEu'Aj7Ki3(Vj̗k/Uy)zup&m`qXݳX5rN ס؉.z@^y4'T;i; JejO,c3˛7y E}hcC ~.g>uxV_2}[ɴJE^[쇛k^BHUo0Q[ pJӘ='LyjY*q (]Y_AVU}WIזs4Pτ7rwަl.ju =<[ƴhf%7@ cXZn>d‰ >аBq ?ǰG{>ޞwz0ozxvT6`Fmjb?m8gl^V1FQ94L>f{3yӐSC^_%2s=4F {j٘D@qށQF_zI! 4%ӯIGBknkFY%?wnuh]g|hysYިoY(NëFQ j9&ĭ<Ί qEӄ0 X9N$L]w~]y sutnX3X4>jb#wA, ’Vvl/.ȁpw.m?^PbmR@1jp6\ڇG'&g˴,g:Uj OA_ރO +7sNZɷ74tp.0!p~ +LoZX"ţL*]Y (RmݮgZ9;GZ˟|MҒ!MQx kl:l=r*mhZ/LXk5~f.1XUoBHd_0jGijǶO i7K/!<+:t-}`=;3K|n<@P}jah%AI9y䳶[;(,%mq 4Q!dy(d2ǡ4G֎Ao{ qNF͏mˣ6 <_WI"zU]T1A:_!!WVXr%|:L׹h tYn1ߛG-ھrgo"]ۚ-%uʱM~vTH1 +5ЈZ-|>cK"{/^t~~ld5W1>FV=!۸v]mNW n Ie:T_-@i"@*&TpG--`^ßiw-^LHA8_XL3Z/UTbז?9jW5"^@vo!5ҕ ص<; UjzJQJ O&,qd xFy@t'=+Ƹ͒G83  C.NE(iS;%TdMB`Τl6t3uP>)a[AEJ82P#*Q'3 )(Loލ_(9Qԩn'dbNWУZ~ ]LsJ.(. ^+}զ [[Bo,¥6+Lg +z)'v=DΎ$uL3k- hN#w[v$ZƹUS[m%{ ߜZAs/?韍uV +>OG?п錳D?EPgQӒ<W^*ؖ+Pbci'Ԟ4T-<)-Lsf)Mt:/|tB;˻\ty1&`!`v9Lb&`9 i?A!`C,c*ԩe)4MU:j1܅ +Q8Op-)&={f3y*=dhv;8;SY̎Xf@i +Ba7b\ +0cLަ&m&OZ7OfŠ=\`>0 /O:g]eG#{HpM.e®tSnc! < hLcF`FYۢfu2N9CKy06O1end|.d¸rWKpix#怟+Q6K7g3$l]Ds/P 7 RG+njjMΠyP7 !"e!NdfsZ)@׵ܧת+\"牽`̋_.el/1)ɉ +OD!؎"j'p;.!;{+J 蠶paf\`}Teh[]⋮mes*{ +{7>CPk". +ls1iis)VIGz$6% mOu3OwNs0[DFE"0*hzNb-22 V+"i[M_XyMDDH]l"XMRnrԖerHyN"|> +;O41y$vPcK`Bиΰj5d4JP\u.u:X͎ ]E^ʬ4.o[2m*unKw!w_6^PrHfQ1 +C䮷.`ryiZVBWE4\)sB~z^ zg׋OM_<0%7o0ԯ>_P.`0[ #Jt3F#MwLb*vkj&NF'x9q{iRU5Ġ۰ͫGįůTr%3PGylw8Vs䬜k< t` tT@z v.q(! aua5V__XGbt,P]Dn2ʸ#&RԖ kgf9*3;/~7u6mKS:fmmw6qu{U9x >ޮ_'vc}*' /fO {q~8It4).f;th#1la ,7*N9X2yxf@G>owMt 0ӧ{2`)MQ9p+ZXz6N8*tY74RX+hdk.)[VpE UZZv(`M]MJ%R{Ry=e=([\mfR+7~b;!Yj ˽$K&M#% ?-Np{7`!Ó(;sUTV^!NTK'_K|r.7L*MusI$Z2-:4`;> +\U2Jn`z+d4{]ҟ>p`yDa&Gtfh |d=k]tݑdkh~ܶrwO곦h^ +nM ftxh;[Y63|0Pv}y%Qd.;;A`37ɴgs4?%H>yvZnGp!!#[ߊZdD=Ģj<5"ϙH M:v1'HC6VX~;ֆ6Ή?򘡮'Q%_^\1fe8rEԲIzX&WYfeJݞ, `0Ftlmw@lGQYa/u}nFFoӔf^2]ܢíWT$fK sw +t ;@^E8KU#m'B.:=StВT>IKB"8[eSr/JKRDw_>7;툃 >ȥ/ӵc:6)RH. =f_O.NR@hk@[5j(?ְȋ$& vGZB-SZiiqM=A6$~ڕ 4= =Ml,w0kSi}x2w٬foI`V#?z^`Ё ,Kɧk[VѲ7E_jq^.4V+O4_m]4}F ~6"EkAԄ\h;5fЮ;@ XkXJf@^X((Wq%S09NwHnyRsu7ಒvɉ^':,GwTq₯.:8@sYœ;):S@\o:m涮A܄:7-quQSuhQe-UJ~u}Ӏ97%Sخڞi[4kLK"GF @,"Sq#Sq^=eHԜNHYQ/Q4XhYeċO(82daQCM򶭨 ZKw$qb(Y,S^9MHO`'l0OxE t>{qB :Ij5 ̮BÛ\uHܪ sf{5;b'DVuNJt790qPv!'ƂC!;y{Pk hGc~Y9bEp ,=ٯfYqLl@*<Vqxq{A-^2{49_XMEy ^իzbRD6vu{xf[x׫8;gyLy +x쒫K7SКZi{#cmwĴ$Bs4X2HȒT:"qVEe9Y+ƨ꘽čwQMǬ_/#YaZ" 1|U{|8I1ݷDcl%ॊ k5,SdN'5)$qW| Ux]zT64MM;͐h!=}6}ڹ\aXM1lЭ)E엻!u6Wcbf/@We9T600).PVo"xG%ch}]i{cdrev-eט( [? +n(ݝk0^Q2TU*$2MѷQ8mkA:& 7_Ȅ[Z;I֯骲ID6,_ng%N9| xƻ/|\G/ Ҙfyӽ /ՒȚ9>EO#Kx\ &kޛ o1Av=DOv$ƂN*>s|kAv9y1;WyƼZ8AR Gi}ub46Qz8~#"n6ɴO`KH"JnțIt%E$0a: 2Q'NkW :h5X')j=X9C@'Jgt緩閥(STo.%Yu::ͫy6$ d(;Db2j'N3e)3\l)}l)hQ(4RpW+0W&A\Qi5AjMI +c2 C: i+[ڎܒ@Lp*{8xMTdlo&quwO7BL +_˜AL9ْ&t%PN!": I$q&;oHsxwfDL[EO?ȑ~A,E坾XWɾ8뚼OXWՌ)kF!SjLjTDe:}‰2ljj:Ԟ`b46cxe]JnDoI%jjnYGA8;% >G:U(E15JGD~ѡJnYxJ/{KY_1wz5 :f!.3_t%Y saHHga[^Pf`̠Z;z[4RPu2Im<"Kmy ,@7c ~[ n;w2`ۂigE0,wȴ\CE&_{N/ j%Crtr4Yx*tj`5_Z*iwViw]E9d\5؄֑_D!slvFDwp3p+{3xc& `Sj%x)Z)CʶT]/G7$%MEhx:]c b"#&RBvX w>p9] +:Df_7`C)4LI7a̭D%Cg8gpT ?nnˮ11Fh-:}ޗS{xNs&?\X v@gtz&ϩnW ,ZEY:A83 +~dW^"/+ޒxKJo%=mR}oq~>;87Dp3_&;F1ҾBhK!3;}>{;8K!JRzY +p"θwgg),mG۵۲>Z wk/kڻ`ұJXK%3z~8Ry1c`-_wy>:>+Ⱥ/8 +2?nM~餏߭gwU猪U~Wt?OuO{wE}~7\;EO` getIz_a0^;ޗH0>Sz^d~.. rvk.JxI ksH0KUHJU3իvy; x8E=Ͻ_X?\ͼ4g^zÕՂmy[o`ӳN?Eo6~,9ڽO|Dೣ >?>;s?e3Wfzxu. )YT}` 6?6Z fQ䁗mlۂC6w4lagU֭֎xuv)e[#|N +0`kdJUVkatӺmi yi u2[֕2_^P5S4wk4\ԣ,dcΚi:K)FS+(ؚ+jI]xV[>C)a3)*͚*jU#gg{'+~#+Vv y%mE+dn6~v+3@aˤ2PׄfF%5?AS~GiDo5tq5^z|O rѝ.sk 67fX}( ydA#k-KΊXP)7ߛ4RG$FtɅe~IQL. *Y7L LqwXHkCKLvݐUc >AgOs3$k΋BP (h"{xK7o)0|;u_M, &jNCM".QO),|@(yRasJtc@|$EWǰ0< f zUnbue';0D>~3e&2Q`JqbzPEj9uݦ%e 7,~kkJ};Χp]RVʖ^֋>{;'B+Ȣy^ ?-'*d}|P?vE)͒u<0sZ7rٗv 2l7eC." E& I#P"mMV, oy:͊:[HٯR:xJP1lzQW-hD8N%3SHPYY>%>7.h:n_1X)t?̡ӝC@m%RO%<Ͼ5W'nGxc`lBmW@;jD{ADLDz)7Mvc4`0J4"ӔrX56> N@kQ-5aZmГG*˓'2F:EȾ B.^v( ݮQ*d}9X-1ě%GQ ;cܱvP}&g$/l;" G9_7JbAo}Ъf%ۗDhs}lh5[ jc{lÚ-Xˢ*|7OX頻97`caؗQ$(d)Rي(|VՁSW8~GϝK;% +ث<{t+b +T')@Z3#LYԩfъ,jEYMTE YOzysL0Χ/υ^-}ZyML_X,^AwKxb_b wF=d&"= ݛ<"U#ga f>ӧC iX?gwǙ~ln NY@Z@Jz7^D=[ÿ_w[@Pg <1%]A\aW<h鏎ww0;~ ;k;v>vR$U~1̇;5v"ΨtW4NG/MN|;WE"Hr-{Db].n]m خTt$J:;]+/#ak2y[@-qŻ%x =E`ҽ"e>tva;-T0@G|<}c]myC0}8h`̠G}yC+R<8?--ǣQ}ӗzT ;)5O&>ת6.9ԃ5ggggJ UrBUUUWXsg=u<^ZOWH:VīU\Z񪇺nmhO$x#x,h\Ҫ6W,liT Uׂ>wdUJTuJT]$uOf>WJLiffkr,T ]F/Ư?P7Ƿn[ڪoķ&jo[,X1sD(; ewtAYׇy_wTcʞ@_Ư׀[DgM]⩽NG․nVcUNJ>3ڥQ[<گ>d%%xaEJU%Ϫ<%xVkn.L䈼_9үgJyۓxFbz#>כNWF<_R`N:O|͛ą{a^k[Z|{ڥ&3)0}Ⰼݗ[d8D6cx1K ޥelxU^U \Ub\U\Ep7{H'9v~ӚUIһ)3 WfQ^qubN8In1tmz =]Q bvs%h6rjԐCf{* > /8j#fb6]Htq_Asr{/uݣ)HvWt.~@P5!T kzUjz+zN$N+C 5*X[ZB.%`j`=#!''3/`s(<Iv7 +_((Zһex䍽;0P}(;lByfCل>ɊdhvWMWxgJ❟R37HDko2GLAʬh(sUK(-隄0V\B tkc>"_xͶzZXujvtzr.Qλ4BK3@ $ţUrV]BsseDMRG3q=hMT5Nүh&a*cO!O6l&# 9#cG<3WIS2tr3ukx;Q%t +f0&4m<.O@R]M(E`Od[ 14 ٚUWh>p>#lgjhz:;Ll;p$.4 iK۰Ye.M1^ϻUbKݳE/#b7n}gޅ7\ؤ6]5tlHg][F7K~~7U䝊^gSON}خ&8[w jc *-='b;omѿhRl]߂`Yov}f5>.0e$ܬ[Sm-#Ǩ'Kjo@Ne4j@ٵj8P5^*P|&g-OzlMt}ho =k/xsV]wG;D_A{jc=ОS. +|;} Iv5 +R?H1մfj}B(\v_E5f_M ؏]"8Ȼˉ'w$ڤ z.uo+HC7֘Vijcvw5cTvn'kxb,W7djOɮ,!Pw[sC쁏8j?n^t>PI@>=j%zpShg[x4}=]<{zs?A[ +vkR=&jJFʅKpc$}яÓ o$ &mG.zZ 7WĪB N"{0:szl&b+_YaL%Z\Fد{X`f0tN3~{Ѧpb|4^Oc`G-8'}"=J+ˈާW¬wg-#ҟ pgonE_ 6/ )Tǥ` u=TӒ;faU&Mo~$_t5{Զ4d7C'@ HD)6إ0&gFPBhid,ϛRTm9ô df:ځڶ sh׽3.`/zvy6- gg- $-^gG ;f|h~)\ {;S;XauqN^BW0^ t,,s-}Lyy+`{oCA88Ɔ& +'Qi> HPbh^5I-3c+; c7*p"O] .w>fkF}PbN)HRgOV|4[\,8u||1yFWׁ-,r S_WzB=A5 8n "nWM۰-uc/( + +j SV +e힥W`'_PzW71֑㰎n$I:]wF`O" 0̽ᦒc窌7Xrk&-#TL!TdIl$5y@d +Iv6(z([7Ն+Xrw4!+|V*!y';p2 `eN5ͬ,rױEcqI!0{낊[PĨ0fFb&$cCҋc"LDd:{}_(<΀7Y7E[f"aG~ wkZ|>zML͙fxX\`pSFIU6v րu^D˂iX +F,k̙0 C|f>;& HnjEDXʱ`#|[o3=Pӓڅ& @a(F32HAPjz8T~Rp!n}՚,cwS&Fȅ`FK,qr99|IsIoI~5[<1d[TrA{OZ1pFz҂M+L!TTn&׹`$hQdG}R #R}eCJ h`ٵL,q›'=œ7@=مlGxIҤif`^=#gxJ: u͜Ԇ9YS/d,405a+j[-N !C$^C˨-ztU\mktc JH4G\͙_/*dc;)[d ;v4X; eoi46du[9[>=mӻ~47yM̸q&nrxAZf2Yes`޲ͱ+;ġo;A}RVvpE[E_>jft0Użj[}܎͡R2VuwiC 6Yپk3]YS7[鿼B0>ʁ.Λds{?0I2i6&4L w`Nִ$5}9Xk}@BP7t+U.*UȃWHx7@Bx;s'd|%3*r(EďNg[4 q{BC,#-n@'$d d;Sf}23F00Kurp)TٟφÆ +3 +zP8(, +);p b!3 ẙzl4+E-0+!j"S +27=6<;ՔnI$ A"]È`[۠0r*5h]>Zxv:%^Qx1P-Y.g}*w'G'?q[e8@k/E>1 fֽP]X~C &r613Ң~Mp cESYۄ{yMyYu +Z o+Cq:G]yؗvd!GޓW +nUD+#vRQw]ïƒT5փCc< +pE9V٭{OO>*n<%=ŏ[u)ĖXcS:L1 /*S&iK}Z%ݍdK' pT,~d%>54TW_yD]zi)z5M(ق7`P?wI aa-lu-_7DTE[YMQxlGGK8j`C&q|-R<'w\ !rY*tG7S~rAltPMvB߁y񱘁lLDžu8_:oM~Պ+gpOR5yUW*0\`I/.z\Vys~L'3ӎ&u- +R*[j~i'̌<;; +5Wy%M dN'?kN(ʒrDn8QeG +UON[E~ivdΒ‡XpaHw򬘪dK]JPZZAJ_@W3Ύ] Y^ҩ •B3prrUS +~}0nZ!*u_z?s9?L@6S{$ȹL{&C_額> +y^+v:bgqèSXV $t`#^އmOԩѯD9.UAyl7Uk r㑆NkWib2c,tŦ-G1WAғb+~1XL +aѹ]OA= 8BcfoJ|~I,W׻ZEX$[ +`}\ܴ`uTm! KåEC/v+6KR]F?l di46.%xB?$"a)tu~Dz8*ʶ6nn)ۂ]{kmRK^o"(Qlc/|be?x\ +uU+ubbKQQ2KQrY1d/vXh +H]8<`,Y*yf{ W €.ԕ7n' 3:׺72 E0?/Ϥ/dPRb7yx];njjNPhRev csa xVmGs +?k%k9kL p&`GC6nK+ėK%rc{+"PD]PD_"$t[Z;>IeV8K?zG8~ϐn^gpbѲP.,ÓjV)kty˿Nau5j4(YKg/>bE/x3 +sGW\XCvcoŭo)e8B,dBs\R0/=Q/ra@G^9dPŞX}B*su38NPo&'L!6?1!f0 +K4V룑?\'Ѹj=K.t$E$D$C!LrcQyaa_.,-7Dzn_c4MˆH34ZiN`6G뻦Q0 SH= +LTH͟ڍBj^A${A +n p5h>hq)zc. ɺvp&#_F}V!/ jήM<LOCY俎,i 0g&&v0%bL/(E)ߺ2|XB. /d!kǕ##ra8CbnN0N=STS8N^e>ہ*`',[wb +V/- _#|)#R$k)W:F0=2O{Rx~V, QL,oHD2$޲yhFbZdI~X_ ]H#V4e & ,bk-HΧS8T֪ȚQ[,>HVk :ncX_43du4 /H3_CKBshN{$I>S2yuCwkl5V +9*]H%@h51#c1 +LxuOЗC A2iDx({+[1&Ę^DzGx@Zgcx 8>aby`?O"D kFӖvQdF'6jgjAlO!XąNC;V*=,u9:j6*j_=+Odi҉iRYm4~uJRi Tk<{%2 kT| ;nzdi9?^rl+X<}ƨn1sKHjȫ!^hʸI݊&)n."iMhø)\P˻ʸ,7+S=d+")tٴ~~dAK^J^r +H)q6bpxHeO 'wJk梡iu,"SHV ˟ %oGmlq|.QiioIȎv_IM6[RiW^Y/pMƌ +>& +e^꽁~qU`Y7p#~cKN .yoڅU*AeGg+g6"7g-;Mѓa|)4X*^!}l퓤" @'3]kRvi'#| DOзZ u!mZ> P/}%Tw%9 MVf[ ]>R2MӼ>hlB*/K"}NiC[#=@ѶՏP  XўÝ~uwSFT_i[-* NsWK%ȧY}}&)DU$Z";GxCan"Fr.6QwKo7{GrCcj(B="s0RƘ_CԴڣz/=l0rg{8EG^^m^fbQsдcӲ4ܑA9oNAǦة4'=Ds.hh>2`yT|^+ݫG|||5Q/O}èyxozo3⤲? H~ʧ&>ܻ|uE(gԸjyz9&~Q-a|:ǧwVsmgE TڭVx?}dfHFPMp>jpވ޵}6;1f< W %kOdL*2zۤrrk>|f[ϗcHd +%>H1^rVUs2ۤQp-Tr^ mR~֦!"/(~Q^Fv0PǭTи?9P-!3]>uևjCViT'>69Zߎ9E@P}#!V#m9c? *\ *׽|gVï$_o[~޾?{9VPjjrMi ==sVs,v$ӶEf}mߝTњZn'CӦq$ƍoMo\eO +γQH-3WY4Zz>_o_𙋎p}(?ϢԒ |27< \}J43q4elo9ca[V;ճzikn?Q#zڷ/ymX+tDt@h7GzO|NWx3ջT\S>F.Ik} q(ʡN!m:hx3<3Tpz\LP6ɮ=gY =`/_yqҬXITKyݸks#DI" _:cRQ8ߖr>ĶQdjN?jU4Vcg%/Oծ6.߹+7=~ %!ʈ8%HuS>u8[^66K?=iǤՊ+N+ޫHSO)0"ӽ˨sfFYq4o(0x4У=l>Q{I.4?uiGTc|VA&WƉPijW{IEz,p -9Y'^HD^̏ӿ%J KD7p(t4t|%,q"-^%9c'K 3FV3yGbAqw|> +|<<%8'v3\vb92XT.bsoW>VUd5G\Wf` +ϖt'"W^͍Q> 6vƛE|}z8\N# {VI@ihiyWsoHR^0!.hDUEZM<).eK՝we o}*uO¥v|d5s7t.Qf.;R)7L { SfX +Q+j!}G@-p=DpcQȨcu$ ,_/9X4h[`?POMS2zQ33IoLLL*q_3Ch(\&66ͣ[TS4zاvyc}j뗽8No-KQkHh%:BAjܬV *aRZrKJ^ +w閭BGCellhq֛-R޲4>>KCiSc|ԵUݐΌnx'KK7wʐ}&j77m QӇ.lMM +s=$[(jcІw-ꑒS_ǭv*P֋b*YͫahES%^z,LP%kd,7[; tb}}$ +X9ɧᔥpM):@B*sf/p=C=brVQSɊ';$c^?#ob{hP0yzǻ +>v[jCe5ҢSVZLfM7m!§nJ_I\|˛гq~W?k_P1=6]ݴ^,_[R.弞ch8š+nң8ˊ+Hllwa:%k\XmCwVidexj㜱hUyЎR7jHEw'YoZqt8ljQ=jd\'͹8IØc:31g%4moɩ͡D=D5g,uo˛[Xv)憓5?ovmvxG@/LZ[|2\>_@;xMd~<oMӏbɨ'7@[R%W"iHo@)^Ʀ,C0T0%Wq T)[̨U+n()I^ֆ:Z|֊C|W +!\K|Rɭ(ã6*w+oEs"6ȱYq^ֆXۭ5C:GIcekZ*.‡H>f:Tedi Ǖq9E91IZ;b(C]hTC@-ݻe%uʏce k^~78C&BCXt⇗g2/v%k:;,k=inM\H]B`]&'&-)mJZ]p8F@Zj\R_K)?Z[U5ld]R`IxcV +WEh-/7KJ߶q4p/X SGPlR0ɧ6 '&[,:}&~eF ($J/~Y3XJ +>5dzL ^L~ jv4 Pt ^#U.Pb9rz[E*osqpN&4\W;Lj) sR5im.r *t57l UH l zm%aYV'qrjүն:YGYYY0fM70FʽFl ^ +$0k9GRbuWfH ~TV!Nb{Uuw4N0AUU,눵TG,Opi+TPMPJPUréaly8@TkN){vm Cr6Us PdITRG2Jsy:JeAj @*ߕLT@24T3n93HAm2KJE̘&`41/*0*v0Eb5BɌ/Dl" (ʓ8ȠV +pi3"1!oP8PՓ5~_=AKU6ci%D! wL;_ JhrV ;%Ncx)_/͘&-~Aq[6ar$w ]!꩕֢6a\a>Z7.qŏD'-iT6ݰ~ZԼ y+@3̴='w= {<\ۻpgiksZHDfE>\RAn7D֨RDz0;mҤ}h'N\7oqBg.I |Ƣv_GzC)f +`TX8ʍbW>dA[.>I9 epiSWmw^f+KDӍ^x#8']C*F<,à.Po(ח> 25%rʎqW1la|JV?5Z(J# vQOf[5#QOjIa/Z(7[xk) azQ[ +Uw)0vCrqtY,N(Z$Z!8*^4۬=Am~ӐǺ_ֆJr7EgOWXṫu/2~8D*x&ח;U/8e VբD:*wt񎦖? +"g7"1G4U(ͶQ!(}M|XYhe'4p[*=Ԝ#>/Yt.bu",^j0 ߜw;zI9]Wx +i.:'ni뷉?۾^v}ҫVd7ם%©;3>F/>pQlVjfVlVF{ejCAFHI&ٕqKw`XjwEPMsUGlʸ6Xv>Sh+;[gMў#vV6f'>Lʡj]3MTd\$yUS\d yoֵw̨ݏ]a؂ҡI2*Մ5@9)w:ԝ^d&(ҲIp\Hf.Q3QTh7+㤢ZE{􄭨wi=Z%AQ\UsrTZfǖ+x |"WEkx. +Pcz>ԓ +'Pnx;V] )'d'[>1EVz2G<߷d~"-f64z|Rʙo$?ߎ?3;ȜwwO$ə,7_5 KwJ/jkv4$zY2tW J~kUXH;L_·iz<&=_6 z6 -`*Q2jj 20OHC_ ݕAǛAob/PyS< s< `y<)k/l9!\@ID$h9~h/M"jZ%ijy422lƋ.4Jc TD2RA1mJ4?*|Ռmc8-@_=ߠLb"0ԧ)~)oGQFꩼR~SC՛AJ~ƻd|&1kbkabkCG7:D, U؉qh ҢQZ%4!VwǍ3$\%~HsW9@$+*5Fj, tOM +C&ي_Ht)ea{e؈m!3\%&)4DؔG#_TDfvک8Sm]V&|e/ (L >J=1>)0eDBh)NG R/YgO+-g1tM<2M7(2Z3#*J.+UJx +F;gR3cF0ji+1*԰B=Wiѳ&H19kGȅmL:LN5yGګֲ-b q +BBP2sehse_~_)6'$ Uim7P?X7xkӛ.k(T1e7c7c@\vj5ӢQx٤G^\9^&G7dDp +HY;MnJ'~/~?~?~?~?~5@FDo4[RV o0ݐvo7ML0E79o"#cpf񛬸Mq?VN4~Sko8xC428iMA4~:SF4L6M o8@"^}d6n&+~&MVMV?7!0p6d]wM6B\G&[ʺDsWhQa7YoX2MAuɺF&&xRt9 } aIoL&RM)~5do|ZRE|W)^H7~_&MV~7Yod  hN*hC?9 pGo&Ədōd713;7HF(0}6z"h D1<c)Ɋ) "5dŏd]3Rsh2EjIfc1aYj#JC~LA(D>8?RcaCDjb(~tTaAHDg@1/"cF`ҹ0^ŋdf̩xQ;Ie5qTz-.=O2#ec=)DM=xf.~\!De>P<%CQ-~zɜ@Huy{ z*Ze%8VH2#\ep(ָeSxwF +X=QNmpXg{tsd|{c/څ}>'bm"ْHApn0!{\Gs8E_:eM6*F|Er sgM% 頢E,8׽ܣ~foo$ +Cd|={Cv0i7,2!f0*դ6ͲLH ҋF}mriA&ʴ @[|fa*:¹[҂")v >)bw-F`YKL>co}Hng5QVb$}V8ɜsoopoR +sⓂ# {lI%/:܂8 ?so€j˟VѲ[UZ֪+1 }; ՒK{>mOdC! d0; +Yu5e]$8,sP 99[@(4kׁ={|{ɮ[dg^,l[#--fv* 8uaR?-bBġ_JH lipk=lYK NZ}mki +z-L +6gj EcC$7If0'T@T,aI95CLj+mH _c-_@Zӈ#Q($L=cm,w7?_>f =݌(CzyRiZS֪ >->fkϰ]/~SvQjxK7(eYܤhkhnf_$iӥjE4=ڊpg䴓4AI!/]iUJ<4Q]pWȎwŸm3˞H02FEgF0'0ZdVS^zޥ<"/=9'$7F㉋Zm{Sasp8]Z]=3 8,L?kn8\5Z*Z&dD-:p!T_" 8gqnlį'W>%N}JfxՍ1x\Xc+:W &֫W 7^]u+'m8r5HŬYS_%,P6q@v<~_hYo7Z~r}5uVBKoc2zXWx>Fme0jI;A6.TY /Z~ǼewXڒXHNCbki57E!r"fƣ^cr +5ÚY4tbeLDGDXSH͋t'AVEn3d%YwO pnqQHxs`*a=v3$B\@~Rc2<<: +'PlLA2M0с1RgK1Rjs> 4&D ~9FR*#F&ᴒKFo$xhOΒF}쇲_,z b'#.t5a()못SE4 +LgZzB=sW"? n0ݱ}^g6t83yk/5$_г{ĬfihvFy[u؀-cN y*쐱\(FyYRc2󻹮#=Wu)R>Cǐx5DMQ Vǫ"wՐx<~U''N=9 +@MdUqm~+^+ '%P9sr_cہ_ohDTv}RGB×o^kGʸvqH᧣+gѹc=)eE۵l㞷mVKs׼E?Eюo7Ņ26K&HSZ,x`}K4 on7!Vt.D>E=I2,_M(; &wc>Iav#فmفr0tTh}M⇚3=@VQ+g l|~Wo1զX*i㥱4I;eX!sxY($ %BR7dd~]ymWӫbaN4"B*Yy7(m.l=#wHe4؃aN\"`~GHe0AC SqP1#=c`:7ۆChg3}[Әi.OO}k?usOSɈ6qnܣg/2I7`zW Y8:~@ObFl{LiXWGleuͶXPO(_t xc ?o4Dc{ zyѶD1N vC[.m)̆FmS^Gl_}+b2r& e|1(Nl +BgvD::5BeְSq.~w/y,Mcf]Aݓ< +٦He?El/IyyO+'ӇEw DYN"CXbm:+º5b kyw6mbt^a,w?dcXŌ|1&v(:n0>z1/ô52J=cڶbc_^1rFٿ:qҢbzӌ'RJ`ů;]+X6Nd_xT'<+ic\;giψ)9+M +9@ƽdaf.92''-JAC6,v$WZl0Yq7^m֍9?Bn?^^gi {Io9yS?h2yy@Hph9FM=J z&\ +^I mpOVOw`8ـL54|o +\+ęs\֜$ 8Xs :5%-Mm_`Gv`U{ jڦɂB ,h$ ɂ<ٮ֠)t“"u{3LHo&7Jr7uL1%޷ǸF1L2݆L0Ó pTBvRg.AAa*!/,݈=m1"aD^0M̠&5:4ObZb$h qK-Yކ` z$W# + &1)bHbwzM=XQbIVT9TOwX4QCdGI~âh3>@2'+]iA4YJ #Y'+]iLMI[7MZI1YwpiEП O#0\Cb$lGBHߧh+H*SAAGt0΢*u߷ ~K Шo +v"-oq>5rî] ι{Dk#$[DHs ]aax#cudCBj}T@E3k a y8@1){ fH7鈙pʡ BEv~"SkV6M3jQH´\ҟUs9Su9^a RTLm݃=,i.isg wlTӊ FZQoFinhugR>Qx}x׮}"1F&<=>6xFls'²cDl0LҢJ=6gR% /tNM4\q|Zm^iK3ǹ}IR5o>}~z~Sվ}#ӾEGؾ㽏)]gbwC4.lwMv(&9vᖫq7mUWʸGlE sI-kqYj_Q2N\oʸlE?&RGsɊSfk)T'~ oҞu8/vueV0 w"Zutկ~/8^| ]'~$d{-Ao`OYUZ2pڽ\MMַkUU+lx\5bAlN.!LV&},DB+.ZN(\ ~fmU"IvIV/*zJ\xM_Z.9(EG +' ʢGIj8*ĥ/ Ih? o(+#lүÝsύȳW=+E#57WwR-i4XGi!uB nU\%miuyR/I3*x?N%l/KKGCqD!ԼO#&,%n9-,[q}.|jR$ @*kڨ6PqQk:i6O;*!ݞa ?PM.Q$( 4t)dcRnsgn}[M.miH>&豶fT#?He>cNyo$"+&"XuZ[䆰X쪐;<`J.{H^+4Kq" 543|gЌ j,R< +{hzܱTz2*Vy3ga*K{PPhLkSҪ<F'֫ڒF8t>kJTIߵXJsүg(ly*ʖpiFV1rM PrC7:^$Ӱ0[3*ݞ! 4,Xb +g]pNz)P5ޅh||M>kbj1St'P\S,O]m"Rʙ$]u!#ۂp ,37k8΍"FMv7P4o' VKo`Ц!Qg7AZAD1_%k jVcm D|٪HkOǎ%oȳDQpbJ*%$"{niI"0wiTyBd<}nvQ7Z:(͞{."jȹwMmXO7/rWKe S* KzIZԼ3f^#li Dl|K!;'嶡0)AϽT U/~Ds|q +[bgјʪ DupI` ߻0޽Ar|6~!i ڐ_9o`O{̷x+s|$9EhX xuVD\u:O߫NKbv2:9*d'@H"7E!v&iQ!`;XtԪ%oZ-}rE9.SG͂Qb*X˱:i3 T9dRAfhIy-b@$ !,?H݃W3 J9tђ{ ؇,IeoT'D1vH1B[ ܻ!$!\@ +:sd>WBSb\C*ۦ5";AI—3pEt_G<{q.O;6g,/+ګ$#Z^2|ȱI%0EѾar\OXxzk 1?(Ɂ \#[zm+,vTuT0΢rƽy,&{'IeXeΨq0g7x D5yf<[(NߥIQc^6#HN?FfSop|0%#yŮdtHZ8Ѣ7$:> j؋gq ip*(d4sEh6 &"ȱCW*oI!FF|U*N@ɂ$˂d `'WmRi#a@ՇIAU  t@f~V/9ϧvjH +m.^<|aҗQ) b܈B6&FxA$z C/@Z9\ 8'*`U2#CLΈ )8)AQ""} ۀd-*胞myZϏ>4B܂/gmDD4Ԙ&hbv G޵j6ћ} +#AC.oTbwq*tIeEF&`KJ+]pBXw쏾 zf'x z@<W:?&z~Cߕ*-^e^iAojQe^+UbL Յ]ȃ;$o*#@~5 _bKQ=|TC==`^1RSgSJ0>gtATTx77 N&hQ +&bz:A6%$M~u$lDB +te F1a"D`Ɂ .6U{E6^#\ +سGT xLQ)P/{ ӗ$nℤYmB_s?L\8OzQ~aA#'t1s{tv6d Ht|pM|Ja|zG °vbQv~X 9Q2S)cAfA1BXOTF7>AS^Y6 B'@87 w+S̰LF+ADbҧHL"'ٖE rKߢ:Dt̑ҷnݮn:g.3{@8⌋p&7_qT=pq)az-~֯=u>!ƞ0hҢlO~K6GY''}@)un!ts]6 N f +tSG +34Em+:6UĠ:-`e7dPaϋs7T,͊1IϠr Kc7l *pQJ-snk+3 v + )P1,3j|,!ط#χl锭 o(_蔍ꆹ"ZU +١G38,K` mV3dqzR0G=}H?G嚾+KB>oK6 l]W{@ W|j?&ȅaf68M)]d: JlPRe;"S3QaB +?b[ ~G8脻S">DAN Տj &Ƿ H^A^W]5dJyrHO>o5]*I2v?˫Bp\ \`#SZ$Y!p7/f&{.b-Fa/.$u mp^Ԃ@~'MȸD\}'/X&v;x8K /1Bla0{nkVUEf[`?KtRRteqFFPEe)2ny.a]{fxIzx !'W6C~6;{D^S9GV>W7A:sIEjk$\q뻢&CeϹmw(j)_=aWpspXqrWvf֥|״W-w9Y͈)9B:wuqJu9ߘ`eu܆gKty\4W;XbJJ_Oxw5;E}xW+V>t(M*_]ѿ9*ťX%=Ưf}Yþ5><$DNRzNp +@AWnCLxV>l=ڧa> ~VTVTO~˩Y16j?_={_`?G§΍Y!OY +edJTAPs4IjT?Z=A4JA`]1(Mw30W(In\*GrAf7ᨢb9BR! H²,|~9t󩓒I>)[}|Do +^ˣMb[â''q#td;auN* R:D9-OK r{mY|@>2ti2dnXMN ~0y69h=T5[5£}69-rZN K0%8>à>K-J$"yWN{ȖO!+ [ASxջ|60ȄP$f%=\VWOO15lǒewAQF(W]՛cxEhEd<;]})GQ_h__ĀV拠|}PfP,.ɧG0yc s%^Y)Ôьr?=м<2dBʐ&Xb矯0G OHec;a{g#98=rCف[:p +ݣ9.2b[II 7\feG3 Nsaj01#%8&&afc;} qGϴÚ +Wn,^,+i+PD0AIN^a,ZR*MW[ڹ^Ԣ6QFAYEn9%!(q UӘ q&Jh1*DIal UqHB(.u3 )oRity70Wy.} QD;1\(F?e(@hǩ;G7%'Id!:W7Opt_yl,H࿚}&mNJ7ʮvHkז-P\ E9i9]ȧ/$Z3yX=^։?s^53ZP<7NeMou^%~UWB4G SDCBF-p*ּ[9y^Ȥ:"21X*#TT,8Ϯ] Nf,0ariVEX1tOPlSN`ļAq|MӥΈcEV#ک6 k$Hk_I0 !U(XrQU\uhu+u#|U/^β2k\֭/4WH "3e`5l7߉#MFqٝj2&gkύ /:dO}59[}~D HT}.Wa%[{<٧=>|kGaVHOhnYS,}a͇hOEHR|0GF"Y>&b]5Չ%=j NXTުh/TW[Z^_WZ;;] +W꜓ɨ);07ibP{! +NXZŽV+>Vs䞲[^Q Y 3 g(a~.J帮|͔'RI6]bKaHN}d)-75φz6,iߟN%OK3u>fN4r0EAq?QfnroS&j.c(}[IѾk&:2v6KWc*+Ek|{ +ZIo$V* xLIfRqUs^R\‚W&E :s}8c ZPG7GCWuGZ41d:pwYZhUS~@0޷H]DoʱrN +]>zSHe[)Z2`kB먵P4L[6wQm6u4o4M MgŜ&uT!g AS[ R$!yH-+u Kڲ R'cGB<\|Hy} KP_T <ĒʇxMqMX#/F$$(HDA0th-of{9}ѷ g}ѧ_}o>G<#7] |ҧ*X|d. +}+!ȉ/c/}X ka?8myx"0H<5G&x<^=qE6OD\?oGoП~F(FmJ8x^ 9^9#cN‡Lqw|M. ]9~mc9sZuem:N&T;%Sk Ύ2-D@/qF4G& #9*/sP +`]rޞ'q?ʸBW&}^&bGG=MCu&04g[!.^Yj2G`UH%jlm> ԁAd+(SNc03VdVUR)aMx1RnH^:*7c>{iFoe.4e 2ҿ1[Ro@+4@9\W57"ҽ5 +ѽ{o{-#M6OY%խ W#oߐ?;cHSДttp:?B1&HHo + Gf*q}R `4Q] FZ1-)ޯuRk"5:EþtQzljV&a62 ɛ} 69ۥcRƅaE|nzDh^H,Q\ V0&Bw] )if +yFR"J +Ƕ1wR@P@PNj& +m2( mQRlBBˤrIPIjw1a-OH^ax2S@X dzi:q6q.ma$N N!eay6AaYRfc6K ,iNa8l 9j+J*rbEt)RMt9\k+awЦXЦX0N'Se0ΒqR@ N&"f:.믑MD&){,L=FӜ067>36w$ۮNIݸ {kN.l&E?( ׌lGsFOxN%혢}jp017 jJ5o$ijC1٭S+CPF&[ICw'd>ԯ}wV(^صA/AVүwJtp}Y!x9wUH&=F." i iG^u4Jkm&><28c0808+1 +|qOt>828K}T?Nb|Dg#"ƧbYg5gcqITc|V42>cY3;g=S:B?Y!gad|֡MDNϚgu}gu=G' ƇRMg$u5q^~CˤGe.$,ij QV` D"JT\{mo3;X/}'m(bܚ!>ud44} Uc4~])KwTK3jHjĒn2B?X,s,].ڃ_\0sT0)MJ l3o]ʧN⧔z]@z]ʭl+}o+=k8KכD_۱d7.oW:>#&`%|% װZ (6ޝOB$AYӸqKc$D`fQFXa-fF"qV +d>ecrz`ꡢ'V:p*UeI 3a3x \DnXbMzb  C90?2!$OJ*'V6{%}L@F"~r_/4.hh@ԑeő|fq6༊_HﲃAL@2F4\¼/caUEm>F|bf*; -z|Tu7hh=VW!^icG ֑mv[{FnfӪN{kOV0^\cn,+eeI)?beY'\ioI]*E!I|IQEBxJ TbFf?Jx)*TJ%I|i|Se~E/ #WFyV-g<j9?e˟c@ |ğ|e΀v?ǀ?yuu?ߎg|+z\W[5]jFvL3ۑuzw0)~FZ:A?پ9R p޹8w8 yˈ7T [&rcm `ǵ=ׄ߰.][k}&ag>Eg|]>ÍgXEL±xo;c;0x;RKk8]8.E?} HGKL ]Yg܄+0Q3/`ChgvPKF*"P7`⇚~?2/g4 bG f f8"^/Gبj}!B"o;X[ww|uZ`ZܐRK +PC3V9sBTgox&|$.H8;ki5ijDFAȇp8ȁʿc% N%UAܺF*pVk"; \iޑL`}Y`Lߝɛk"#:C<9aI$L@)aԋ.azp/(F-m[<%8FuM-WUaNÀ$Gxr/qyD嘙_6:KӀ |@t F0:Ð]iҸ40*9U8;|>D! is #E5op{'jd@jTM eױwo4sa ]"@/5]}7jLծ~쫿?.۾Y%Ԉa^uXV>/SIRszlbm%˜F++[X\üҹad`A47XW}//+x5޾+#noa;©ƲȲײ:o6R[ cF C&t$}x5t <z]J;4ӱg\t,)$XCa&aRx{IZՕargl.PiYq)k?SkUnň`F *1d@}{s?y{ڕ TD}($AIqf:ꧫE WED?YdB]9yW2'S ;3t!q7܋Q6 4.9BveSqfͼ `I8dxL +ITLwO&np]cm53\dd2XyC=~ObSߐy*!U 9/Sf5}ߙt[GB%j.Lؼit.v&,egqEs -ܵfpR:mGM٣1m^"?3VL0zK2%'~.Lt8^6%#Ifߊ34bLu*VHam{j+d@Cli14gj4=G\:œ?rgXl(IXO׉1 AoؗQP8idI/m7Hj6ݼP0@:Үa8xfQ?hZyȦdΣ +Yh۟(R`3<*7ndZ]P.HKOՔֈauB[Y{n4FFqD7+08nƵ-U6CƎ߼Ϸcrav&;ܗYT/u#EF"fCژ(K<"Ç95[9,9 a'M .s6T]?j?'GҚބʹ5,E8-MY/2{2 gc; `ɢZ=DADA]xOxk'֤*=6nGAL8-;J oM ~p^CaXTn%"=, ^52}Z8JFRV0J^3oIUz&31Fn#ӍN/MZKWwzN߻R 7<&|噢kx_Lwb흕uK3y̆h!Q½}p.:=6ΰq` 8 +QY#7`k\gPyAa8;=_ɸ K,Ԣ)A:e=$y\/fݰn[0dZywpN‘XcF.4yygcѮK&O9Rkl[6fװѬ#Xu-ͺdjmqEr#2wR',,|{Væ` C j:)Wb](QfJu$5 *P ʈ5#DL-A>FM;> +w_L}1vH4s #ÚQN :P1SH7yf}UjT@a|-E܁bV߅*j}8 s8(aD֨ ()qq!^sFݮVz(nXG=:H{N,Tpn:DMW% +ρg}aӬMjBV[tխw~Hj>JLҝFzyT^دJft:%i^Z +UhׁO،Z:~"ǰ3Tܥ9@TJ֫ɀ=tݱ'A,եΏviaJq aSO)8L]볨\϶ӧRdJIpwfнafx=5=꣡^ss8o+njze,-`G@Ath(Ex߈.l ? 3dԇ;Z ;zJII(ZߠkEi+^?N1!!stq?,ZIyN``+%~|\?F?xƳsgNA貲T\|Xir(!Ҙ6)mA\¥ ]{W*6/LpXeH`HC^ !(ssB*5rpNRF$jP1 +߫)=G/}qMb,|T<{UUgEQtQKH)}TO04Ietr;;knY@vrtQGM9}_k/]cd&\ݕmwnAjl:^+Ď')vZJ%vt^Mt.z9NI]/Nq3Ĺa$ 31^3Da4e!\"3\W>rt{ +*r|;%ٶ +q%B9++D| ΘAk 6^! x"2@=рuT'%JqުUCy ,C IZ?끵Tmpw?( RY# j?HB`/+4tNQ@ A8a=v}: +0Z(`ʄ@iJr;-@._ҕ(?7=@ʝT@H +8rEpb Dr ԸB_! %\KNLJ+ 4 5B 4(5%P(`17< GB.ZG>*JF1So287X>O +nbtI+,m 8EcIS2su| I"W:4x}z ? ?wݽz5rxǩ0IvmT# MLn$Mk;È]C*5m\_Zn׉eeJM؟W*ߊw2U,do-n _M XB0VA0H獒.@i 鉤a%\Șvz}w$ sKT; (ZJ#&2c!G՝qMex70Ju) n.<91#Ip,LcWoX˱ˌΰbQqb LJ=}qKfRG8@Z[ sglyJ#,&\ 9SQ6_zg>V v ]HVfmkqYdY`9²E eo!T9 +.ɮ.86%eW6—סB"0L+dW*+$Iѫx"zEA^ Ji]zB/LZzqJzЫfBW(B361rn^헼^9DbWI.+%@lЫCҫ+J(JFCU B㒚Uo E"tCZ ~WjXim.6?Tb6;"L-rnT>5t|>=jЭ5Շ>]bgk.-F-_<ҁnF#E0\ݮN}:`[:֮V%\oH;bxI'b (,yx!v|Ei(,vqhãM?Bw3'g V⢤+kۇu{KFh{EtgL{r2NuWV㺥?]V~ e;IP,S] h+XX 1E +8_/u,Jɧ88PS9Ê'I~;Y(4\tC(aVUN6 nw::C'r#=s&҉/Dԉxh]-fҧ9uh;4Z4ũEPeR-j4yW& C-pP~;^F ,ewߟTVe7MӯMTDӌJ̨DJ4ިJߔJOچl&Ջo̓z`&E!kt,)bzLLӋ<' BPw˪R/6IWjӅ^tXbԋmQ~'.ezшw'1h$hӋFK^4FqzLέ׋Foz8A/z+ǪuSE:/]R'qĒщ׉IDTtqF'ft"N'ݘN䫷1q>3 {:?vSMQB"lW#V"DC"wq`b7Fs? cJ +O?88hTYOo~^vݶ>k3pv%~q]w8kz{Lo{&ۗo]1{-ß[1| AI@09Lf};>>{0ӏ~? _t;?=Q~zOBOϼGG_Ŀ,qo_t=?v~G/;?=a~k~j1 -s-%ŗ%O'9A/BmKĴ0 L;d04++αÌtq˼noƈ/UcO i +j ZA.fM^)r"9Ŭ }ZGqfJO; bbP8IA f'claxz wf-bFp%b0[S)Btw ؕss$(IPdftĜnMwrxXd83g鏨) 4iJg8 !RELA05ٛϮN঒Ҫ41RIV63Qbxb~'ӯv~z_Oa#p槛բR9CWBm(?zJܤ˥^L^u#b9A˵ťP+?FTÝ} +;?V [%H~9n֋R/7fX/bЋysX%XfҋeR/&B/Dԋez&.~>=KR/4I4NR&}$uSzĵYp~Xb xa'0Ow3]NO,W1n"wKGIvmG,B&Or~ P.G[Y>p~7g3Q< +/+NN;𵢒 klzbߺe AWFZWQA]uxiҶ[/˻s豖i|iBU&:IkP=RB$Avvveiɽ#Gծy/ÿh_uմ^tȍenUւ$˕˅5!eڮjxrx&.u#g7:PQs tu;6w6v6rQV86pm.TBU.7?w$E1$Z@4yt ddH͒q*̝td,K dz|<.mf-i6,)+^bQkHG[bA<\ٓYAN`sikQ{Lk0da3]J2' .jm\rB˫qnl&xP>&a g^=9ԋ䡲(dTi98SkLL[gcqAr#ufZ98SəLə(dGqfL3ٓ`d.zK&B-ل*O4ȩ IxKd|D n:!-g\G#rǷxl~BD5֜V&lY:˟}V~^DƉ`o3`'}`*9d̋ ݨvSO A!C3;c 08ऺƱawpd򈡸8!BQX!WxD1$.q"I3Mܑ4inibӤ4YOBgLX{t\\` +VIWPd I^HB €siFyU8v^'ɲ FE0`m8'82,* +(L去y<&{Voe_##=%k@ŽbH$‘jTfL' l jH JheҰ&+~08ʈsTғD2K0785C+PF/ xh, }fiYKzYYg"eSl?|YmI%ݺEzjDg6P+er:SzԽ,7YU,wL38}\kG8S)jBq9Ŝq[,bL%=uXuq:-&.fQV֎51 +3k_uFY 3YYk#ͬaf66f;kG +IxA.cx\ |Q)B0z]R[c)[V(o[h+ +BI +oVoRfoۂ"w[qM5&kּpڋ&K8]e*:]oPWB$ +yoYH+}UJ4<ǡC2|B.QEF(جBF(XߗP,n(4Sz7!Ɗ 4oBƀN +0)ɣLJa(n|JP07> %C00$(hpvC7*H +Da$*H13HQ 9@Mij26Z"gIJ?C\]gt^f|WrAƧmV[iSm* V u4$AML%(bh)o&{UYxeF{hp8qv7[q|gS >i?'2Ogt^7ڛ }WrbMr>L!Ɗd㩔Sؼyެo7SQ&H~M=fetRrϤ)7~ZZ?QGbŤG& u%epqe13znkh ߗ߷]}'߄ͷΣwwo>~ Y7 "ѿ_ uo~ 6ol~F{ڔ>zvL!|0CRFK$[UiiqyV~ٍ'3eЃe,;ǢyMai!:||tkI 1\,GD`YXgG;A ZPGuU\'#z?ӳOШ!QOhv咟Y 'aϯ۰ޕݴ6;gXo⠸>u۱ӍܢE6tvF.iu%;= M@gn:C:qiqmC}|QvȘOlC@˜?o]?|%XCQ/o3U+ۨ:[ zIABzGx>S A#֊_7^;ar7`eN{HTi[:zܹ.S[ŗ݄[qM5R%hI'pQ؃+_ItlsXmZI7YUqtbrZZg8̀ÓٴW%'A0Sn>#q5@va+(^_;m@ՈXX;F20TL @ +RqjyhhbOoG CiG}buDmle#^H`(8VzKM&> O +ıO9Mby!o  I!o#0s+uДu-VŪ(IkOt;YN~(+I-mU"J-Ly$5]Bvqnsn>$AGǗ>c<"6HQn_7ފ>F4Ex+q/&>LmlG;!G*z%G/W:q;Z+Oy.ޡE |Wx쒨^Ex!dq$W#!bwCF<%*k?$}ƨ4IQ}mL8e18wR „|rrr颾pIQHI5LT0 ȩLD@򬬼YR _F] +UG,>gC߃ʸ)uJ'&NN gCud_/IQL*Tdi{hi|-7-.o}nug3ar?wn=Ðdu7K䗲9Qv6:=fhL^.ib}bk4S V>DWiVMً[PQP! 5脛ъVZABIЪn(]̍bWkXW:  +&YN)Inٜ46 %E*Q9$\6\I;rln ÿK-^-c.kYPӽ,._RfEs0O0VрDm dx؞lOnM2ZLś$"jJH[E>Q2x$@2MEyv`F-|~/+ q|peCWo`V0]N b>`;'BhtHKg[˜o" r7i߸Axk &AD"f-1ɶ:fE>ֲz@Ѵ;/v !$6kcy58x.O/r{tk=jsDW$*nHgyh%G:5|#i Kӹ4Kcay?'M=[FpY.M>o||cbz }۞H9?tKJmSCnE6N0en-"VӭRD)Dn>ӯt;hA Ǵ3_ʧrڃ&J_m*?a@[+жQphvZ?vr;r;2Yʌi)Q]i +>@dbNK3gz v6'r E$720҉ +~%W8[X$5lyr7V"GRTxV jŞZ7L¯"7{z>_$n|/qAk&55GDJ+#Eu٘2oNbIvJA8l +~ojo *02i5If0">9j{Z$RAEjq }$jt +!""эFH" J%]9!\yDD"G}JLĆڲ%Bjj/EH;4aOIQ]W_ +gR>ǛhI,W1` 4cCJ;²$ph0kivT߬58G/3k{m?D܀4 wG8i=_/+|M] +tdHՔ2Bmv5]Z;q4!3n/!~͔jcex\rϕ"d9>jXȐ ?ź+ +*Cpc/KHfkF~oJ"➭5Z.1G'@؄gjG{Tӂ)0C6`2b\(;oB¢W{$8"YTTkAf;L#)82Hp%HHG/);fk_u|5ĄumQ+R[/u[ۿ>wawXxJ^nBdyQvmv"eiF(H^y +bZfduʊΒi%Gf_Xd菫J*1bPeFu)A5AA?1Cd?/C\.b[s]d 2O +>د/@*q93N> +rJ|$ $-L%1V؁'~yoc v`#<R8Hdetd("yw&wr;FVNM&SclK+ |(bMdDCћY(iG QwMыuE1@oN`O9B@:v(u*z;% +*NЈX< Mն[Dߟe'}?tp)fK7/@J$6Fہb.] p +DU C \Q|:6T'!;! 4ak$Xs{$#=/D۱B_4(\"mW6S\zW]Zok۪ m[VViF0zEAߪ' H5,/e"sKs^rot 'O~.*oBK;^joA +~t rʖ"YVMYCōXρp3{?sz?Y c@Ŷ:RЖ`s:bTco.ü0Tfr/᭫,WNǗFL$x>L$qIZe`FD3 : WP> jVuBdw1Ӊ[̱.gIa +EN$c-sӓI ^n{f2<иeCcTv: >XK`лDXVt +uo-P+F԰^O" `FHݓ㔛mb[XI=b#FVbc& kUw;KIQA햋Qc;3cDb=bp1bk#S/F'/Fo_Ŀ[Ik,{G(HŐM!֓-*d!"R CYuWjׇ>Zx7||Ib]U}L%}/}RPևNݖ>4vS}ٮ̮eӇP}8:Q-ַGP-]!e8֬ls{`IiLt̩t#y ggִnGjZmgqYd-:` }Knw;H{-kP`|.v9rcc&bWRr/7]PEN9bSZEz~NϗYV )[ֹTJ { Y<$D bb;UGw!) '5/=6M`1bnM@5RA-b#N#p܊~){6f=)鷕C3Vv8@Lt`Y!raAf Y0(%4{8Jw'pАWqt`11O9% 5bV4OdH=hAySIn֍nVX(Uzf@edx {<`29pS04(*^J+S 绢|6jGx#jAe:ieKƧ_HUW7t}tҞ3zOsq<^*ިZ;2t9}ʪ4V>>:J2@Ӂҫ[5~]=GxKG8.>g$g _Үj8kt饙$=ֆ142̡5APÕ~s Gڔm.bw<úoM_;@x~cjbh t hxi:V+'v#∭jUsTN7c2@ .ҕrH#Ƙ0TR4?H&4$EF4 Ú/+'d )Y5\K`l9O&ptkFiX^dܓSfiƐ{xה)ͣ+tfTgzEk~`ƿڈ.wLhuh!՘UɨUaQY&%ZA2Yyvk'hՈes~椿tsRg}5QnEwEI ܲV 2%N n{HU=F^uO5~ߖ6Yl=PѱXf=C䃾30&af|qiX3CQ4:3޺{]H~M Fz9b#bf#rޜQݢagbT'L[`>S91~ }KD̹3#fL/_ڱ"zO}Sjӌiȇ_F{Am lL~,`Kiӕ}~(p쿸xiH'@Ϣ<4i GLi<`3Wgk +xX0 +VTxxb-10>6^M7 J{t>OYF; \19C4wm\jw mIϙ┱Ɔ3h[J79t:IЦȏhq+UMm'mQ 1p}tE:tm/"F7}F>^ N RV@Ƿ?Lߜy}#WvyjZj>K9갏e kH𰎦 ^\in^J3]}.1aoY|CR+_my={7 UfqzEf r?֍?6hϗ:֟1:W6bFg"j:foak,f׍,_}s8KuyylQ^Dx:6ːs 4eZp^E ++>@h Wԍ<Ȁ5t61]y!"_*O#ͧze߬ |T?>4;FPv L-.) bbRi+*;-].]mK]IxO /P -ޙ Am?2sys{c5ޣɤDcKB~Ediw%XYXٞ_֞K]מm>mw 4SaE䰹u`j_(ahc S]g56fz[lk|Ns2(o 3w>{8cX!ҁ N7P2oɾC]t*׻>q}/o_}gc"bnxL0g }Y&2tj0.l"W1X%PBbzQT>: ^OKt=j3 sGaܙJd9{AN9oYX$jʷzO1;LoOZ($(wfS U";"˯j4'2m|䆺F.iL_<7qnc$xj!V-6[H!WDQl; +6S[r˃q +-v9@o%# j*$/Al+K;mѧm["qA׍}0{5_[/-ŮAQa\א0Ekfarzq;q8IJ@b_t_kt!zmC=u)8dYq/|we6 +(k) }N,=⍹ {籾C34ܴ@B{˰Vcuc {ܨ*f}0{b##khD%"%J65]1_nh3ƌo?Ue=D[SԫQ֯/ kO;؆^Tm!KH- +ɕ4Bqq |Opq/;x)vp7nqq +"u~7.N|w.?IO"u]i.tw/'\/3vAK?j63x}d#}Kܐ1ܾ8?+G)\\pv +9FgUKgh{ Ρge"f3Ћv#0omq;le>-~ĉ[:b=)`GF^.,,D^,((D^zH9/q'xS'i |#:4#q$ྲྀ~Zz7.ڔN)y`3C=n,r1mh# m8ɜ¡$C۵?Ǭ`PBcBȻ"~ȋ`Q]z;l25ŅLCf-G4f +;ۦ6@/>=mѱʍZ npD;.F#&g&VhLL.y隨CZNױ!-< jIjи ___(ĸ**?o)Ej'N%%;1QkRB{~֢ +[#ecU,/N4(Yw.M4{JHP, +6GZ(ۈvF\$STA;3 BзJ}1&S} +WK;bOݑzc<О mxw@9? +g", +72)f4f3Rw/e楤fϡ+fU!?&bxO'.+GsH4G~zbTD)Ӊ>Em fH6K1{}$01Px V#q;1ƀ?P)폤-Ș?C[&.Xih);7x"Fd_v&4u Kk?GâR'φ; ]RP> +^;7I|T9l9!#b1I1Ds[j|‡ +%.~Ǿ7r;}hȶKMfaqO0(XQ\GbY=5v m0^M5Gu0ue5*V&.&Y;CȁEvJ|ك{IÐx¼z!C=d: g- c6u!]lΒM %p!:K":WD9>XLɬ ItI\@g^\i.FR$E ZaQd4]-"=_6cd 5͏X^KԜ 4E^4yqyqXdxQЩYWg.TYA,37cq=ݝPM l&eYaѾJ6,1F/|{\[Y0cam0F"z]"^{}Zwj-aL&H!]u$*e7lݱqv]оnH^Ȫ?(KG,Vr!|Qy HzZe/ח߄]S[nUPfߟ|M^VsCEڢO`f2SE)ԝ~ڣ&b9_L{(Ɋ_3y'aȄ5Mڢ0ߋޚ-oԝa܎O{Ez S]IdȪpd!K]qXɔ^vD2/?}RrtNwi&3nG?B}uoIsE/I_ +j_FuI{&sI/=iyyc3G.y^]2S٪Kя46yL]tYh?:u{a_~_ wX~ob򒧡EXB&u^ӗb#Y3]nHGb>%OnpW \C{14bG] D<#61^>vT,zj>B\[EJh:H)fZ_QD&i47KyˢrkgWiqm f̈-SwpPyVڃɠ갼3"]APuU??ͦwƭSTWw7/X^vu↬}xLGZ$^ +:s%ZXL}Zh{hu>)Pvr~KµKi:E;Z};Oy^? x_yNcǭz~%1W Äh81t5.E]h0Bά{FC FOiSlyZ;P0Vzd[w+d^4<@z}@4-V4>0L1}иs0]K;LsCԘ/^rO<+!f-݅A7]i*1 32w8 @ baB/]̿lu"{໐eEC8Qe%̃YS^.-0\}N*`l:iDN2au̢٬-syicp̐%ϣ!@x +Zikůz'= 4 }|op<3BG_$N~6Bt!3-=b~@~G;x$Raf'wj\- g9tdulΧ J +ĸf|dZk-"A ϳE MlkNRb7dw`)zY%鸍QP#<5s4:fE1sWÁ`tѩ&c3{Q!E2WPIvc7x.34b{,P]p?nD^"oޕ<:ηAv]s_.W?^ȜAd2h|bQD]ţwiUJp%kCJeR`x~e6CFV0dD/|_2 iG.EVsϘ4?2ӈھ~0Rjɓy QZ'j>^oԤ1PxaLcٱI- ]x?ϣ%e_ S5/l4M6e%Z)%^(L?lۆ#6e6эVh,)Ï,D[+Fŭg-%EǬAgHplnӖzfWv쑮8 үUo'3Q޺c]Q'إq\P6KX!=bOy6Ez/~$X $tlBO17u&{8ʁk̫R&qˆ\0Jd5bp=$"qIUjdul펷HpIHߙ//,yUٺi mx6#C 88N\0R,o0wt^r]aAbѧ28V̭bLzIbЧc<">Zͱpĺc!֔J:?3j='%Y)h yXgGRZ)}D<ў FO:ZKNRjj1eM$ oKy9q; c{::8k2Dzқ>zYޔ:0nQ4qpog"#Dd0X`2hvKƘZ8JuKzx"j5$T-9;3#-90#c[t>f$eE= juhUZ~4gjW5z"LڭS}ֻWg }b DMtb?AO ?Q mCl5]I$+gX.EHje9,Ae>] ~F!6')jBfįc#")P{HzCOࠊE4~s莚cRG//(')}edz=W:0'"- +vv+a˽LW|~NStcyC5{_ޯB/693 kn̹֜Z8XYDy+b/#6-4ԝZX_짠z?+C*F7MFG#cqDro9e"9\)0zsz2,?ֶnZk2~@Џ( [Ϙ0CMcHX!?jx.c^ 9Rw,%CԼoKV%ύOy (SK lwE ؊ٓ]1+$#<{Ztfp*KN +mam}>{Dz:%$L1 =VF-9od9w̜$0^9]S=t h]H5{e?m$g.RzYn5MCi@#G-p%ttۭX.<hh:8P襆N=BJEEgAX!f5dtjDGΈVL㡲gm%CZrjPezz4~8i8zҳ9.Y crg,! +2 M_vUQ^UZJvF)Ƅ#=nvi;)>jdح ++0nծ[v ^مji';q6)p= +(>]ӓAV>}JXFKBM=<9bq)'ױ5nG=kkn.U~x 4QfD_Him n!7,{e +B‡R/w]#+MSFZZ4||С-gڳPwz eVS &Kz~ ׏v _H W4ەw˓.5q_a*m&4ӗYV\;،Mmz!<ҁmQ3|;=U43;_Qg EsZnP)|+:HL&&9nmzBߦgAp:}K + ++Lf5V`Z7;cns_+!iރߡ(2n\@٧4mU9{=:};k-|Кڿ\04n|,]SpHn~[ R?50ˤfx2N-QaDn0En[y  ߕVqcFǢh +0X$>r$uT\wgI#?90%;n*~"AEiBt4rP[<8foVqt&p= cbe +HU$i΄)ySu)=E!#W|W +~]V O<z9Vwf潯ɰfϵSkx{J(m?,A]b;<8H ~PDC*݂n\\߈{6( Dax@b[vDNǰO4S?=RqIam_ao>ϥNzI$Q:LLzffsi +*U8)u 'ަ]tmQMJԳsf+RڒM@F /-}ݕTw%'C^ 52x5g m$_8/ pHH +Dŏ'z: oNf#Xr[Ī\Ls Ӌ9aZBzKnd6 +*ۦ߻Bac,չ^s/nPp*{<5xi +w  gXэn0iAS$3(UKb +ڎk #0n +| 'guElz$ox&?<7gF;|? 򗽏 V#nug:lhftU-}+o^"7)5L];9v聝Bhٻ |T3z")*Сt,yۘ D/пcu*XI5wŒOB^N<#{5Ob'~2lTxdlt+\i(Ncny.y3q2E8]w+ު—|w R6_GK\?#Cr9y +ޜ=0[}QzsN"L֪,o4V'E2iؾib\&yP/dWK ~_E>Xu : ^NM: [f$NxH!3`=8xſmvDVqի7s:̇&FSM:ْK򩊛mS`:Oa>U%wQl$=RiĄ.HJ1, ӻeN8q |,Că۠eSo bE_~K4J"ypj?S0gG[:Ɋgh:ʣ¡ݩkJGCqmnO h&.OߒײJQ̶) SguF[j/x$d>g:q0?пb|38.cOOOnLwb!qU)QX2M^U˙~J|D"_]2'pYHTB/9"r)z虫Kpw5+ ._?DP·:ۊ_S9Vo48N&9g/u3;T\foq/3&"2ĭKX$ a]Y9eLX .DICݎb5b_/9 +,?QtIm/Qк=l~*OPz=lh=sp'F"o`s jf?xK&_Ξ~y/S'DLxM=*Mقyw`DÒ ݿ;H|t%lz=!)  +xd7RxQ8 ;(jo;tt*tm^݂v랳NutVm;\oX4aT/[(̍dQp| [x7CZFsFըvb#qX~_D`cWvb.# xx(- sKұLwvW68_wHCDF49^~m`dQaBu;5!g'VZ>N+;%Hj<=uFr3B50@^K~鿐kX=9@9q$-ROTTwg16H*>yUu4M{6>[fxNoܳkha3B (zީ0\c|W܋Ef/cxF~3Vo-W-P+ ہjvKJ&䬰 FfsV7d%) E=fhON ++xFzmgkaK{$oqު^-ڒoI +LD_Z7wV0~]CĨ,Z̦Nj+?1.AlBD[YyV1M k:o(AAV7P`qIxBLQpF6@^6ŒM1;De;T0~2=r 3w-q2$teOg%y+cy,(hi]soC  +:" 2JURnOv_K@bjeCuPB'䜈%_fYv۵ rsw\`,wctzPv1(;y'MYݽˀr:|rYֽ34Q EZUP 9?9qlh^Rx [?8/kVp8=@0{ `9f<|Hj~wnB,]CA\hI-Jnk9'9uڳǑ;4Oc"KQ;g.H'de68HbЫ,l=dK%O0ͯVo0]F&Kc022LxNH san y;OF^8ٺë3d\Q2"J{!QCj!ͬ#V?"戒J'vq޴6d`*Vt8:DFFTZILtm}p ѧ%9̬w~%n5d\yAN6>u8^;oIzfnv8Hjnx 셈X&bmuw3yۅ$;$n5E[]sfWMjoH~I+phi.'ZG-SXI(SlB3@ @ĮeCcxؗ_|nh˚(MN7ϴN"@/OmX?HTX5 aeTaq.2(~8Ұ'7P^.;O_bN$o5nuN'lj7cNژgNIBPlxj.6mX夀8;:0cV4dl 7-b\ˈ@|?#+baANr{|E|&ٶ֌,F'{195Jk!}^| !>.sv8 'rNX#жg^DXE'w1*o$|ycU(Zi +mnOYƈL9Ok1G֎V@Fwq$gWroǬdc:g*_Ou=Dx ev]-sjK/7[9ZG邤m@-"fToMf64ms R&Er"V#Rw2jMH(1kn?5͓?*K-7jg2/\쫫%BT@zejł*{+hҖGL2X0aeО5y_H'Iɢ3N oMy3|m#V鯣knmd뜕eI0t#~P,K6_%.(3suf&!@r%ḿx%g jG_P{<Hol9ܼ J >r5XX 7BDVdq  ۏd,ggk<kc̯,PN!){RL +PT~ s)gXѓ;c +.xrS$Dnx qK'4)#؞s s )te3 2axFQ&w`K ",jT^w<)&|CE@;TA}PA؉!Dm_ʌY8yYʳu$q+4Lװ.UDt Gɓ(janӭ-n +VΘ4KYr>-')=JIK}%o 88kXjV"ϙLKt]_!]R$kZh"J԰"3bfM$EIsxm#)"1?=J %'$df%5"D;Sy/csqHZɭC^~=c0p-fhmN~܄q:n6?zAm`8ta@jxMM.)fMpԓ{ܛ't֝p8.0<޷y ~A]zD7 +Ox?}':y.JVѩ!lNn^?7Xhj]h#EyORXfIwyy58 3FDAҾ(G+4qqFѣ,0szDJ{ph15%O3ʯ?.#D'/!Q@:׳΋;]:E9hře䰏R= CsSN,lh̜=:੅ + ծ^wDw0CMy-R#SwMedX:m#S}ZVSNvb;w_̷Nvk'\;S ]b5͚>Ƴ`zޫj*nIX-0\L|ʼnۊ4^T^ ^ǧLjW@dH! UuwxWݩڷTH9͏%yL_aU+кU W븝--g&Kd,I~4:pFR ԫ8^au9 "' ~˝*7e㿒bU)y[j19 ؆B͞yZsy+C X=M]s5rKP,(4;x6rCmVz>@Xΰ7ۡI7Lтv0|MGۀruXԸUŨG,%x*f7::DqϐDxi ++Taj*f4+,$ɜJg0:Pk A +2(VGO.V[$Wf5PCK*ƓYSpbC +Ko7 !;SţF±9ɧhE9F:E`bDRWˁbD,9$'¯,4rᅦ8Y<o9Ŧ z_:Pm& /ong / #֌j< B w6Ug,f/GKvEK!gy| +{ZyXrk̗@)HGlH>VY<>CT`#>*o%E^!sТ!oϡHeo-i2̅]j^uG8R˴c~ލB#Fi`9P#LU4vdWSkht@KW +r'ɝZ+ MZO &m?bD?W48s1 џ6SdJ`=P)#o%uʠѧ4g~ 65O^Fʸѯ^SхZ+ҽwmOQG!yW[2EWa40f諴~Fխ]}K^/zZCc@Eg:C @Œm7g?,Əy6_TeP6~`5AvWɍ  ^.]((L!|/t):`l/o ai^2Ct=ˠ;QS +P+~2׏޷F])o@3kr[ F+[-D 񫇨VԓÖ) dܔ2f:?ysj d8c[v?O;:;=DxtW,eqK,t4f!d/䶆TCy&|"#_Bz[ E+(Mrzarm_t}KJbRgs_Ryoc [~$Uԯ3d?aVY;PDUwc*1h&vN`K.E,Y;OCw4 }cS +T ;w;ڕakzyfE3fr_r]s/Y9_MUyjSbT~~hpb]ڈ3FeCTd.C(,>6"z&kZX,Z&1!BŀQkX ~gM5+9-Fl?l"u9 9/OTz_:O]^=ƈЅDeF^۵T~_n҈gw5 A>N܀8$.7IS.9 GJ!R%Ǯs#@F / ,0%WU?V$JS0J*hȌ;=QE`4>/)q$LC7ӧqsA q&/pD6%$_=+YڥkAgNɊLZ1tGءGP8f 2“e.Xɻ^_8Q&p3(eb/hX7a`W "ww( +:gfTIEs#֜ڄC0WZWɚ%`EWr*jew店'oXD)k8Si9Hz.RPt,0?M})! XuWaB!Y"S3¨0/5*ݞiܟ!N4|ծfp-%=cHս,bZz0&w>10؞D> ^b /pq9]ExA68 RS`T;@'oz'ēBuK3Wjv*ہO @Uٲl02yokڥ9W!6R|~ yfWH^(ijINbƙ =jh ~36S]s6Eg6ϋ\ʲܧ(k\úְ1U ciX#~'B72𳂀6Y&60q^G8${,=o'vs>9FZ?57FO ɞnHEp`#e w9'u7Emúϟ\28lp&@&+ޞb`{Œu4hD.^DaT^޼zNmsQwZro:xTl=dWBrӁ%RWG"s?g8yгAaecWɩegJ`vRiM!/)Y&t%*sPI2 d<t9`FH"v\I Rԁ=jzG~- +]gQ?qſM|b̺@6 +LYC-Zaqqԁ=}J}"E{{,h9: hO!K,O> h6|eDx1v bcCw~ޅUTE`}C\GB^|C򵰊[xqm* 6j=7eDC#I:QieS66c]YN?sYNwWy~A8 {y<'mq!NTt9<㜭$2CZ?[k#OvAmYnp5u>OA8>d4LI545#O,'YN1p;xp^AĜ)L)w=&[2mrݼ^8chAOTYy dW2hwځ#zE[~1E so) rK=P5Ih[M[P#`(] +S\<E>8V.ZW9f_w>Owξp|7.DyFΣWˏ7ҲQm\$wUڷYh'_=z|  0<`g#@w~qiGB!;GXu]/u%`ǻdLT7+oqu4"3r66A.E,Jz cڞ*,ّGe@)8u $l[ڬy] 1-}2XZv4?Q'ݓOtgiX̔X&|ui$ۘn*dUnNU7jwl""Ⓙ3D1[1^|:E,w׿,;atD=*]8yГϻ;EgWU;E{K4cA`PCT,nE7<&m\+(Y, PKS<@@ +l e=0 idcUـ;rq#=slO)+U֪g]ņua=3,zG'n Vd,}\nSojW-Pig򮅍"/І¬1bAs옹R7d[L [w6]ofVLYj w8Rg 0u?2[#uG|8Kn-:KmcŶKqulc}Խ9,kƈp1bI[zHAFdV`|kH.թ\[wQToq תbڠ$xߘ|[139" )}^.ߕPXGZpNa< B2}B+#߲bH$Ú;ǰL8HǵX YuH*=-+-yTsO{ +L Fq^9Y!\LZjΔN')ߡ4ze{ߋVĜnƸCnQ8l7FvE2VoV/wS;8U#_P;_Zh>F2.!uQ\-GI](LYn {d+E fX?/,j/Iw2yJ-7_L~iCpP/FBX0xi6,lVj.ѻٲֳcvG!qZ^DkqAfi2Kl>tbN`9DHVgaBяTw1$ v`S?ce.ƂgOb % k8?,bzrC +54a.0DU$7:@zuqMt-@ƊE6ݗD: )4ZFΌpj7*l@V g٬0Y1(H.Q^gYg>ޣNTmg,ӁdJ1A;;sLϠtB"\%FD稈X FW sk `!$rWdfndϓP?g,i&d&ʹC)3z5nƬ9Mmh"jzeQTN A41n:닖I}= +v:ū9O^ :1RJ"OxCeGfU6d%$qmV0hS(@<(tXxN//ą AX_̱ c>P ł,5j5{_u#ԨRkUۖw +V +8a p7T%zR~UyTMҿ; ?PrAy |]s~y)f4$uǮSj)vBz7SuKd^yǦtxzY1ќ\h'kL֛ +xr2aY4`cÛuyEReu2nmn,l!e0rx:4:W2w@g*Ȁ3=2t0NL+`M3 CD d +b2]5VG;lbErU~ + +D)Cq ňB;3!F*e)Bכy1VɁUXS(z^dMyAbs7W.~&jHɹH̎DY8Ak)>q}PKoJ_M5TL ͕^ +}jUe^z%0+*.Uٛ℣YVDݢ11j}wn&EߝF1FŊ"YוXu'ph3,h*Ȍ-;b1 + +,'.[K8eoaȁ~ߌƩ&2楗rl3g6~yc +G59֤vc=dE"y+%b͋'ђImtZd^Sy/(Sc +1^耽"#('0'TpX: x8s5g8#s2iVZuS*'NʾQbɆbI7h'i>&dƗ8p/T]{E#C`R@U0; P^(5uXr6K<\EV9;i8^֖uV o;v^~oĜ0;26GI5>>o_/(V<0YǃV.Uus6;ח HW<BT0#)U#bVFey +K!e]:b%M2VGPS^0u W(?.]WҫU/Ԁ1QFD;8x :Df9V%Wj"<D(z,Og E^`Q>1ZuPڛz3FÊcη}hQPIvqBGA? 6)`2L)^Ճ9=`U@u=# ֜0ZToCUZElVζzju"՟:2&ji78-]R@eUOm麤7;Hpe(CrQQ L"Aiv!2*^FB2g/!U!W@ЈەIӌ7xEƘL G:s\*`CWY1.*2dH +7+Cf;BcLMSX̐;Iv'B~<p3p3&~ja;^=Z\j-wIE@X>|fI7D8SaWpYJ5uZAW|Di:H+UeHf$9fXҩ([Ì5 HnTX3F]@CZOA8%3>j% +fAWqvy]}|#W.`Uﻀݗ7_Uͱ>ҩ ,22ҟEet\v.kz0=ֺňZߘY,;*ר }^Ċ vZW+i|`گZyrԺ/Ov# = +2 v3$=t5qNhGL^[xrImեɅK +XXp(^!OـHZrm/i#turfw<]49|?2pTIZp>x~ \co\b.:0ަ{fkfσfG-Cxcwӕ3pAFĆ[G][Zϖ9ī{:0ƈ& m25}*Kh1p=|bVD}ڜ2({'KdV)v&+0?Q!7/X*q)NO#E'Ic$ZPQIDLU&B$G3'JO;t Ო4rWkxAé!\M 'F24JWs;H 1kn!aT~:+Fq`.'~,Xժ|N<=~?jEDOexZt!}K'J i^M} ͬW%d*yfSwG;ZjEƟ'ƫ?P'~- +X#]:wCΡSbO&~Jtz}E +1i*:L/Q/-a#ɫt]|Ʉ뿌*,2#Ɨ9GQw%J=ONtOM@8zVʧfy +#ԍ^njs1K/'ѰXeO +%CE-sR jv?GWKj{eZ9.$({ՙJMՄ%#~E%/#nzEj=,iktmO,0zΧdI@gQV+}gL"[Wh i. k*On.Hga M&̽8Ut23RVH!i.}!yo+cM0ÎOe?Я3QX[wqkFSHܪi +2^E$Fcݍ.-;VBO^&&+sU%ijzYMS-fb&ri/4WQ|'Hpfd(8|]goXcfDi|t`kj?uh΁~Dso%"F7ņuu21295AF9o[ʦi jA!|VsJVlT&lXO֋bWNN?f[#-Wh ҡ)r=>i|E Hw!bMV:bK}te +&K&w k!ܙQǩ G +{cm0D_hns@c(HU0vx#C;*D&f9ʴڳ OD.̣pO6Ï MERVFn'O0nlwGH've SkH2^TƓ6lu, Sj $@BwNF$6k3]~et4pӤGDod7-MjRJp3]/t]!ĉM]6X܃2|DZ&#cQs1h1UlBkE7Ll>cۥB|֢hCcRSiOlFDVԮ&q:CIB675'=2yB$SU1_tTMƺ%n6$+KyTTRP튳uY\+їGso) +i5 ^<=ފ2aCbMUQolT:`˳;hj.O`dtzH\|dY<,gdhmABvP}l;DCrY(OF.`C\3 mƄJ=,jKc>Mp+&fǀ|.bA6˵U59CA3*1:`=vrFfg3R ?y@ǭ:$H ދ^)k$ꊻ5jECѰ;:Ȼ'YE/7$Fog1_-}en;Kюqf&O/D!m9l#wށ`T-Qxn8΢$e CJV@QKqeݛbj^\^WӐ#y"|lq2i$4v#G9Bڜgú=Sȩ(k^bڛ>]<7zK+͵*ݺJ-t]jHR <-żmI{8د=c!O\9c¯o  <ᯃTsuN" <? <IzxJ ݏPEPᾘԌF+"#.+CyU~C7Wr + 9"T|<_fM& OL@c#k%F"96ʒ%͙1W^+ ȮspA$h?С3SsbmĜ>S/ֲg˥z=_.Rnb0u?c!s2lQ (!4Um +Qz!+Ws?2RI޼ےFY#q5ʴPyF93Rو'khv⑴\CG['pma |3ZU9v'(PTYDQ=73c;)dQ`GCb?6xC.Z/CʧϺ\h#IaJsu\Y2yEW)(+}fZozP%Mg'yZ=Vsg?T  q@zƓF)0*(.K(^opV g+S=X*~8H=]\yD2ΩpSV| `*❅9 r8fs=]qLqo*ihF{eʷۺ߆~X|u{F`"RX1_ڒMjV^e2L ]}W +D.踆hYj;ґ8XBQoXwȕf-R|AWr vP!WǪx9.Cw6fh$eVS05+Ll.R,T+a _d5>?oZ++] H NoQL)bT8(\z/DZ3IffХx%+]L?2f_Ԫ FfjIvZRҧVlpj `q9ba53j1Y*cBș u +n QvNOoj ++|3ʆ"W8ژr0zk?m-7W-)-:j3\A"Cf` + GrJTTvg )\@c 9 ݤo<9_#ŋ{*GymP rXc -lU>Z5',c'-9)ZW9+-=\^/1Y"VyU} +L@z>sb/^pb` ф+ A-uAJ09K >Tk#'˟D:o!gc'![s)OBYՑ$%Y:]qUr::JZ0:jOӡW0>cWdީUe_C}>?n'F2tqSDp|pYugul 7U 3[0<&*ugt omYro> j/./_idhù Y*\Ox[˿J+}RJcx)׶CYQ 9̤C9L@t>88~aQ1`ЛjZ(X#z8H w"V<OvÌcQoP&dWoǏ=l~Lyk9gPxDn\bx%k/~8֣>Jx H]WK.4o$/~&7 ?ht=އ:s5?e a>1,ܞiA3Yw;j+P_!^y-+=lGnyP(Gԕ+5,ⅩȷSas ZĺwnԺ6*yYd1,T>, 7ZZ +T:6IYBabk=V=x$dU-$v[G^èYx&j3JY")3EJ)NKjjp30!W E `y^{uQ9q~>ݛ+ EUj603'.St[nW?G +uTIgYlg +:#*IUŤi"#D + lr @ku[6m@4K}H~ql+UFIPwM,Ky1Y1Y{a:' &gg_ZFJwPˤ̙.C$y\ī wB= 8㘋C-}+`/r0LE⏊>(y[zq犏CUI/Qڙ-n$$l@hq`F73_+pnǒ!+%.X]&K #ѻOq0~XKa.873 eunO&ǝ_s\b!3ǽfIWKXZS:gžEhj,$O?/(s*Ld}`Bt.=zؤ_6e"w=/;Ԣoc|*:d}aY6`4@iA/z!*4ϕ*nhcɚ:n(D_ɐ%߇i?˰1XYiU=Ol䭔OV +zA­1JM@}`o5\-Qd+s$z(L$/4'?|kM%;Iv͹?p#;١O״PGنulkJ:7Jz9mU@rF'ך5}8䘺\js)),+x]!!v C;%@Ǭ؜ y0pFj(BkJCnl%{IV1Of+N]wHV-hf: 9mVtK9B m^HǛE/wOT$ +f <\ss@ `0~Z)@e("]t ͘YeI =CRPFs +jjjf6.{H@T)5, sTN +?$U*)(4SGJy%#EU'1gMkvְ?C cgDͅRc7')' A?Odyk[V3=86f5k2)ZfTH? _d)HPO%/rYnW;V}F{4h9!Eef}#|y? 1ְ15DO͌V *ޒG+WG#=F/h>L(x97FZ~<|7;S!goaҲB ?)L<ٰ >@[c{)@H#@a+޹,)"xOp*z]~k5BBB.\ܻij(1IoUPP H +\YsQX c!4kׁ-ͶEf(Jb7=@"0$wM ol:Ÿe{NRp8/8U- xGHQ9\^.%}^A(Q$kf0#a]qRtEEr'E>b> Brή:k9tAn!N +byT1Ǚ< <$]J2o@qv2qP~U'}EAV+ʸT4;ʋY a5 AH߭+V]dIP~#4#]Dů*,]Nߏ9c-}:I%D`?VEH7SAC[SQkjLk=Tk1ǺFmSm4ަ){Ɓ]a@'ĺ"yYK@Ze%#.7k)CYiV4+}3+4_Rpuuo{&TS2R,Lǵ0k] -Lı0C)*[LAy:2ŧ pV/a^R=RF dVvvV13]+ndQܶ ~S|/=o$ K1}h&X338\+N'eXObF +=SFg~7 +<ˑ䉎qcS JIm.d '>ʯ̦Ao*/do9Wk8ODN:Rɵ6d;pl> Azd*%=ĭVbS9'Ϩ` G~.B~C05;/,dBHx)tCUᇉI4+xd#r␈EVI<PYS:v%t'A8\S\09+Y$s>5[[X^p%7"|%Y/Ԫm*YqU}es:[{BK}L1*oƢIr <G\ 1Vfq\vq18o\"69I8zxr1 OtƲn+~mDRi,:;$$xaA11i?-H8?#-ϪcG]>~Z74̖ +Yw+XgY? :Z[.XUfe'+ b^t 2D̒\+sD6 H +WPٌrTA3(r3X`Dp]3km)}`I527j=\ 𶶥oB}g]D-RC',g۫5\i^R rO-ze`6dmQr@eH6{VģS1Ow׊8t~F+:O߈iJ-x 9<ل\l%K4"82<3i(۞LsX~[T/bW)B\YWCd>?XJbFX+.0Ͻ5hvZlه\&~e43x?E`T*4R@~kr(e%g%B9)M5e+;T>ĭϛof)4΂0Ut&mo ?,aPEɈ_q׊"f((JJ]Bi HO̧;5Lly.T.~9;.’Ћy*Zz s'8V K f~Z R}e"R<1JtiPzD'ib!Gq(ćshp6FҼ}:z\Qya.cX5%pnY*s(´" +rRڰTbr\*7D؋7H K@/8]ArG x^]SLx +Up85WsF3 +nUpo@Iߌ(v?u༦vw"bYzRw.IX6u$Z~LHZOʟbsR+ҕJVcbU1#b&=bALQ5Z-ZҊMv +u]HpEp,[Xcw3LН^wOnיCA4+j$|ZUrUZÚ;ǰ703a5` [Qy]9!JE+jO3# +⮐vrYAd^ +v*Fm*(@/ %F!/$3VVJ$_+U/bw:TɾX;cU슠0 +qQe7)(Olr+'PUESԎ_Z3B1ނGssXfX*-tfI*D.x&c'jy8g/oJ2U+u|+ʺ<(p n^f +֫0}ݳ٣F}1;x8+Ԯ1UHKerӲ+11j95jcI*Ux})r -6=0ߞ˺(DO)j}Qee\u8bxD[%Ȕk} ﲋC(Ȑ^o sA(G@4RxKPexq 2YHr"H5[]HQpOZۗ7jnv+1ZG8KQ]U&bD1ҊQjVs`ƈOn7~`@ep3@t/ y9꣼ G |Sf_e-W&Frf'7[os33@'&1݄ qӊq %L? X81a*>?3r+ [ᆸ- ľ5@r8NٛĴ \_ ףprK +ea5aBpȗEM3df[|hۄ x%(V0H4ӟQ 0Hw +Ge-*a>4ŋ٣ +09xNY(c̭`3:h` +&25fKC $pn2WpW@ +27n{u(G]`ζSn2 ̡ø3Cef ?Ty1tB_qTYD]|n`q>w~<s gG]ڴfMn}>x:N]-MMHع.t(Futn 0EO=BP8Ѯ{gܾ!<}urϕ.ZRBZxz ݸBu!AwTK A0ߔt_K{şF 1uH=,oOl7ƈuf"ZE;5qEhv8lpyz$ +dkH_W$2 Vh+aj(`SD ԯ{qbWvRjvQvCWec[;$5Қ[?jPPuG :ཎr58ԮAvK{qKR8* <Ԯ:3FcIn@zn80vX7n6Ł&ɽ{UMC{j7rvDmS$SnnoWvoEJ%2!;0u^Yc恍qӅt5 vMaȖ67 )@Ho21?atv5 +1۪p~wzp_/$7RA]Ɠߥ抸 T2Z~EwcxCQ?~i]QXHv#HiM#Msw]twSف2.̝XRuog# {'BfGDž[tT3ܠx: 3 +w ! +8Jk +n|lI EjCk@~0xd3٬; _rc0 r\ndXwй3#e2(~40u Ż\yVY4޾/ߌ<zo\JW +*dQqezpolo7v݁|oYѤ[# &Hmf!m>#Z2*1Y_Y1'K&&iϘVW=˜w;e@ Xz`DDx'xBC&R0`<(8-hN歙@Q;ZʘN+4bP.nD*_s땰.ax*%| @ym&Z%~/;3<Jށ%l0NxSn6CoʈXq֖,ȺE42UwEPZ߹B)S1;E] +.HJEd HE:|l8${ +j=70,u4Yp80)wq5 ;KU]%{ǖ^T( +&?ݧ$ 6R_.ފda} 4KKw7jchY4+Bz<~qzT%t˪\{^+{G7`xcjak5R{CxRAo\ijnV…=hP)71 +>k:fQ4JAzQFoʹ*:0X`oX[D11_)TU6>(6 QdLIw,A0DqZ}g j>BOhٻBn>Yٿ|]IGMT; 3<ƟP6b?^,Pɞ8RW{ю@Cu >c'>#фVgIgQ'eLJd·''35w >o'OQ8胫 $5L(R*#"r= rRt4jhKu$eF]Ԟ)Y;$%/пM(D8k|=A^1?F8NB_oj+?Pw\#qȲuǓ'k1/dt&~3>YhUoPepxX4<VxX +(33!Iږugʟ p(4S/ɯNm`,`cP\ލ>|C{ѩ?ӗC& n:QY_"0^d/.7mn\oϺQ4>BjƑt 0ڍo<$iHq()A܇x샆y{J.@ҐyHTʲ_&.wzԗZ`0^C^O=+dvXc0iŒ_9plnӞk[ԺW؁cea7A ?w&_iGA؆]0 +{u,\>@4`v=RΞ Q䝆=^*z=GtSj FPׂmyG0cZM P\ x(\Js+ ='} ҷ\S )X^vl:I*\!B:Sۃ@^pUޘ7K1]qsy4mI9KU h#4W4bT 黇҇T۝6J{XxwAF"q 9r!FQ76@@@jLVᾪnv|,;y>ݧ@= TfJg@!F»Giޛ Jl\6f_*r ڗ㐁EW!GX];w~ &uk W(/5i Q9RY8KP<؂lj:sΕ䭪Q] N;Uv^_e, /;L<,×5E$^;f`~ys1V \lgxs i5<<*)~-:4^T3x\>9S܉+` glsS`"gaZJw|RH,aۍ 7@u}n5.3AFZB#, +쓞G+.Vu6TSn:<F/bF=2ڢfk772"5^)*1bo( e6ecI&IW =SH92 g9`xO+hm-WB\CYO6ɀ{-x:b]3rdWƺ3~-Uw - mx<7ڳK߹Gr%}`ѸPmErmE:j$2ǯǭ@바L."CySan_v)}`= YWs6#.uwPcjiqlֱ{[̟0)߫ac@XՄk{_y fs X3[ƹr>tURf3lN/xo*~,@jVߢc +?Zu!<Tr3a8 +&&9z{g/ Uljy`rZyVZiXjHUjʮw\,W4yO`7nbB3&j33 %?xNnVP[[='$Tq;*ҳJU`wV|!1_|E=AB*%9&>Ko4 4;QyNl +88Dj7ԋ9*W9'c DTаo]!| J)웱+B|2qn}5]zWuM&aH; vUx-YӒPO{+O6,m,ٜqғu`xF1M?8:hfy\V$4uA%k +7WX 9H9 +3YgLa# %ˮU^s{7T֖ʆ`k/NK_胶8,pNxpM71Dt^OkMZv&N?m@v4ةLH9gqKbWHN2%[H~v + >> +n[ p/ï5`[k{zA;/Yu}n} ܈X;~,:rMnoBU` n +8#(!l %R܄Eǰ Kƈ囝cV4frjcPkc0HU$ Tُx=C(11fT:YFS|K/`zAYV_$<Ƌ4kȻ5"2\ 6irA A@g5j:'b(NLqQDJ?9*Gn 3ͩAj=D{e+G0~g%,Z݅ 8*70e|'&3/J0<!Ӫ8O̻<Ś)Ǭr0%ۯtx(c~)ٲj8Z3M8xtdoUlz 1bP7êcX`!/ +pQxp~xEG =4۔'RlNb+ +Ba 8$_zxa=\kXQOaݝH(L2Jf˜E{fO8 5 @1; 7nZnDDoZj.~k?smTe֋b101)QO{$ӈ 7mb/D@ZU1aӰv. ~+ITWx|>q$^*f#iϫjlid'NzG_aZ4;4ObfI»Q=h' dh$mR $<5AIw|#`raf uHHfr;;pf_ +7f}ʳe=,pjop<w޽TY9i3T/ mraȧJ$kIJAQ Ń4Ρl<'kSp̧tmRXj90|ŕ" XΡ|.& YAy^u'D.sBd 1^1DEGum?>s97Hs /# h.{)BoAP.G9KNx;ԋREiGsyX]D_wN`%U'05)?)̨95c4穚VO ^tJH+u(?c-w2QEJ?4I_4Q^m%1\+y7%iGi*(]*zV̩8/= ef "HGExTy7>/_ů!e6B6Vl@(Sf +E|Q;bGY +xVGtUWPV^JW]/WvE؅.4toJ[/˜>MtJlmo$}?,byQ;ɍn.@|$4j@,%`Y/nQs"B[JEkă]=ҽP9^sHGwȚCbx!2Yeߛ>*Cͬ66kb5.[1=FaQG:>ab菡`H9~TInr#fnb„0qzWTiÀ)ogi;3dw㇮R ;d"LYy$"QԪ d]V%gKt\K3R]epsQ^[! +̇\?H%W)Xj'~aRJCv +U1C@|~_?K@?YG.aovC +yQޝU8QjZYȋ։Ȳ2,bUWwxXC$ρL 2(VUU NX<'j^ޞ|+h; +G\~,_jC0PG> HL1xi=Y\=Z}VªJR[ Ku68fyLY"4Scs’u9aIur됥;́@r>,ڟEvn%*kVCX/grj%;Ėk0_.(XGR-[(4)dvsy9Vɴ*^Ql)f(/]f;mXt@tnj )fS QF|N3z7AmB}=l VϺtXg2*Ͳ8Ux/,eұLڰZjs,5N^Q,#Pd/ڋ[8iנͦp (5Ѳ7As/H0><'ǚ8+1?"AmbDpm8Eh]4m.K `$؀;IJc%%Ro';Hrzڣ21;e)&3SB"gsMwf Lⷉr9LNr(wr{Rp{_»{d_I"L"[$VURM4Yɋ7G'/ۼ!k5 +XI'D')=rQ'vhm%w~Zh3U@!kE巖ƒrGc2B# ֏eƋrwfPJat&ŵ3xUGyEђxvZoeB,5"Y-I!3'1ty2yݙhgT]'wuk:۫M.+ruljƤYڒ=uK*5praAҩ8 qwM~-yFaO*gpy5C?;4CK S#|9Tl;]h3V1cɞ6dX1˒L/ėI*#]APD~H+փnV+ngc!C-w/X%9 ї=0//b눦Տv^ҏ eۿ:`Qnv~x"ڙn&39׷bkll;?ˑco{wڻVV40GH{6tOfQ{ g0Z:q%ׄџ')Q42ttj>\9CTM.L+my?\]*hѥIL(i/̒T*`ֿy0sxuɳ7C0해iJQ=Ӧ6ie-_s|T L0G lwjv (`58s j/ΌgRJWJ̈G!8M~6y;ۛBۛ/1i9U +cXT|7[ +O}Js۶ \DU '9KFC[ x^'q̻`::NӪz$^~ g5RFu@.i}9*ȅ*y^_뫗Cכ[%8`G̶dni +'Ilf3iڞaD``=sҩXh{u?7KasQM;o fUh/=(%ٍ:>fmGrkOdU97lߘ]1v#8F};}O~4,yfW3s)&;#j:Q7,u|h}uUuTl#J`yl!4 +[j9׳髣.Z~=_e[DXӉ0k=-nK.Q̯/U@Kο2Y:\ ffm%ú;]h>~f u{riuSλR'NAl 2"pn|X}˄_CR_|9MVW&7T}:y(4oKjvrh`صMw'ͯZ1)Hȵ#h0<6=?c{ykE.fkrRe|cG풙[ q>)+ c1=tO8Ұ1עڱ$l7=#י]`, +1GXE.O9^QZ~˳il49M4a1~bsk$&yy#Bҫ=T9"|`&Dn-I95SYˁh>“S8m?0﵀Ǝ}Bmy&FVM$5UXZK| ٷ :]Bx~XבΡ@dgEY;C"ˉ-c1[DNIڵUٮA9tvXފﭮ Iݬi/R}ɪg +OP8rb]Uac~(]?hЗ=$vȶ6R7`7a3r f֗Bwtr~ۀq-2<>e尮x]pI{0fof~ߋXUDǕ$Rwb+؝j#Q<P%l4+|i73eDݜkOD[o6?!wCSu^4N)#~KT М_{+YoUd ==éZ^tWl96թ(Qi+$}/yy E1z3R+ܕ*|H Wkzy谶ZcfFfm %._Ur+ 赱" Ύ`vK_'o9zN!d0:V%daҤkdBQ%N\v$d]Ⅶ ;.g=D@SA8RtһqDZҸלk;R($gtnվFM;_tK阞1* CF_;Nŕsde#n!(8=c"J6`#i#r4˄KK+vA'cr!3Bf}B֤6Zd`ֽ@sqOaér}C.q0gͮj7qea!]=SSR^9;8&T3r茸%dw^[CY5‰<=nMߠ&ӓ|7ayfcH +H^O-i/(ЖSn_&{4ؗ%jߝr8XS50/*.#]dq7q@veWU"2v]$90oe*~άDVNhɏW+NJmНz߰Э5q+rG_̻'A)_=v %U5KG$d?e/=jF#Ԍi'78׋@þ 8, [!)1F3N=+@#L`t(1s^Nn m9M\5(U7턪/ W Z6R'Ҿ7kJp A<=U+ʨ2c2ǵfQ'Wut"hhc̉檎UJq%怜 ++;NWoKnwm"iن`ZmH7N^Xt* Y+7M;]3&K،{(Ii1fx=֯_U }ZwAiҊ#44zv{IYzHJ#;&쏎J/EUpPh"T[GN*ut0Y >>ȇirGXƞ{4nOm9KFJ?E-/ۉ7"5XMpM6"fYhB4 )BvR" @밺FWy֍Uu`zq݁t{8#vZ: }u2hu/ %=EbJ^jWKZ};Ͱ[|59nTKj92̭q9Vb}հ?;f1DǞ +%Z*KCG j6 tPкkd1<Y rX7b+vҙX̙c'g3.7NYuW(;`LP־jkdHz׫ZIͼ-2h49O<&P[6OQw̒3j"%XP)H|*O#I]Ӵ +O w*s_H~[GHHNđp2ɰ;OE*Icj?mGOLJ'Z.xRߊR8 {~#ijz}TEYiM5C\HEI͓I@%~r>}82N*H(Yl Nuf)L %(a-97BIf\m'0u[ٟfZ=66/$uv +b猖P˦aoR<'=B՛' &S%yyǡpvV,ئ5(,Qx?{!N?K-ˉQAc@XS!(_L%f"Sn~9VL 7PRflN40_u [sgg-{sb1k3(YqBP?|yϲRܡ>\ߗߛhyA +y+>'ԐbAbD͆pe!t^Q7n+Լz4_k(y+ڢ2Ieڀg9)Nh4s/]}nDGoP9HSPt<. ȃL%_&WP m<事p'[_ +Lm8?ʑmPS +M,P-?emq +7`kʓ-K?v%;'tc_j 7I}M H OQD^6Dy-IGf-֖dÌ\p 3|䩄H[ FG)f?i}NʯI`#Rp*[L@S` s(kI`n(HSLE鏹f~u;vv"xx/MF/"=t &\} +3܉b4?yZ* siͧx?~_ I;?|$b.Ysjz|J@@X~0<)}@Y)|Ao>(ycLy s..hn߃G( MoeFț?;+Axq wW^ +oggn{khP /k(q4u]׺ 3q;39h'S cux`+111 IsܽY󵲟i(,~%C#?< (!6OING?Ee*gxgi9 q2#B5 O]Wβͅ H0g.Ȗ=#v{p0iu{r`==c0>K7z97YurNhb]nKD)h:o{ yE#PbL]S0`[՛pu^m(P~N_%>|;rRp*֬PjN|5DnW ~W&(˔-2\%4|wX+o3B_#\%S/,aJ]6F굃}>Aa?0}o| +T/ +?Ԧ7HBk'$/\ѵ8`Z'yܦ78x׺xNji̛p~'Ě>i ziχ+3VTޗ<ۗ*s3Z)D u tB/.yRou6?@xs{K>Z7C;s}Z^_)QԳ{{_CCӦs̱3竏5?;COJhUW +[ :h hӖH{U{-'Ǹ_Q侂eo3r/mZrX^6ý:UԑdHl'F'(D+/wWH5[Å˿l/Kj\VMReyuE?Z|=Z˒| +| ~!R:/m<3wi"_tW]GdJ ]+O[l3àe(4C`3}Blǫ$9v@6Fج M/{;GeBxx78OYltjDxg2 .B9OaiQ])}^r~GeqN7Q'm,^li8Hy]o&~3iL7۟$K ؋g,](] +,^X@ej>d+CǛ©oCéYk/q4NB׆ÍjdZRaRuE‰,&?[jxq^?)4S);I|^BDS-ee?;~ɽؕ܋)[A ^-X.* D._;E<5B?NeD\l! ,>Ow a+aJNH{4ÜX:ba@ +Q +P1_H+,V}t6 +jN$]iK +BU|o/QH*qEWW^Kw(<1D(6#2sK-~s wv'#!jf s:s:ȳIG2˶ = X~Fl3l׸ .MfC7 ~{9Gt}Hݏg5Q=]U7O_S27|^Nܷ3너\ik~8w(#hc9Ioc{G:a.옏OJ?x~e tύP`G$Rz; +W ёtϖ Ay)BVΌ1z2Jk{eB">i{6iS(g uu{*d|6l$uV+$%Dz1ſŰS`^'W|ܓ%P\mF>Nߩ2"G mm4m(R3)_fQDtsDi +MMVi.sf4M0@UYMin).9VG~ߞn:l *_NRB>_bfGCMxxaUhƁaj`^{V![Ҁ +"EQE(2MYmosDϛ֟~_rt# dn38td,Bk)'.z1z@n@sHEk{cd7Rr,ZvDBgCt I`?vQ0h"BRB@mEI7lC1|Ɉ3Ҿm@7g?Rx$6Ŕ{Nj*s [ZܪS*>n~-V"m`r,Hg Wm'soyZ)|\mKsq%:gq1Ym~.vn Zw +wRǜtg^[e28EExR;jcg8ɔd)NDJuQO\.B.ʴ,TwT)n9@r7Ե[A@éIx3X=1Y{ݲ1]OZw6!d[!"نYMllDgΗ) O']j̇/`OYx=c]zN+FZͣU:3<;_{aM(*^KggNzJRMMNjvݘ!2_Ge;|T5F#W̻N>MA Nӈ=3-\cT^sFǩ"ꌹjAu; +aÝ:硳rH>ݲm9=LFl1_KKѴZ7X_M{qyybXm_"(*Gi%+4мsް/zNR hef餋>wy\lbK+ijI}WMFP0*vs"u:TNcmRhVJvY/jތky-[ ω$DnJ7\~zdR;@VU tc[Wc( V9ʺ^֥4|{f[E]o~K$+g^ߓ'p!Bxik1k7o<,f&|yjf[^I,H|g M{56u:uڧ3Q-'2w LzeYwie ~w u)LpNRr* 9ER%ej.ʗ.U`o>+w2x*32Zk ߋK%8o|X)=bsƧ1ǀ-7C89#T(_s#ŃHIIm C%fO;VKRl!YN:d(+8,kCUO6J:4X>,mBYpr+ې'Q3aFC Xj@m,T@ˤkw_ ݗ-K"N^hwC.Z ^&Bg4xYA}3#^sqD[R\e &!@ N(rڍh\G$bHNwo Owy4 qo\p>Te 2O g<2?u@0 ef7%e]f;m3NvɶgTќs԰=1f'%ifSl4]du)vtqr'9:msnPJ6f^]X˂]Uf{Fioi—E5K^j&FZ <*as̏HO '4]0RfUׯ3 o[t!\03FMfX,xf8F^Ί[]@P~6k^]h,pPAʂ8f-gLΈqqS\`ʃD9[ȫO#u.|=hX#r wU(zwPn"YHWpggE/r.wfm 5w;)E<{MVXiTq0L\Br\PP|Y }&pr( ~)ɵvp"Otm>W`-A-cMrZ@̬ yUt>kSCo2pr<p5SoY<#b# Yr1-' y,ԝ5pQpPbs,r\0zE.ġYZ͗RTԇstqs#74k`zd˞͹̵7`y(SJ+k"{phVF'˷bd38rcjuow֪HuiQE}k/ICՆ:CYHS(j'n12gB=tuAh< 'C-0Ro3:J%f˂w/xU+Ktn+/}op}>fG$oac;ࠜf G0:e&ŋcD߳ ٱ>嚈/Ʉ}T5}Gx X"Rz#[/ES98>,<^!=JQ%0q!{YT3@84#-\\9M7sND\71hQ౽3R7Gۤ*ay;5FΆ !.sRM̀G4 j3?_G)XgR{8}R 'A r$l!K>g^>MǍl{CW0cC#ȫ"uya= e|2E4rRތ/P}A3 k b+ Hw:&|z␵/ptLH_ADz%"1JDz% "&Ϲ\uvy3x+c6!ΞB7oۻ;+!s7sk'$?avyIi]es*Ls.Nq[xoݶ;}_ty6sn_2o0<ҡ4iyTzfdWmo{,8mIS}Io9Ȧ'@i+=?$muWUg\?g= f}mV۬f mr;>pM*O<2x5:xO0&U3/4 DǛ +ѽF<3e[Q(ͨ1ͰtE'@Vt9<'N8sdx`avH-4/y[! 9,3"&˷Eթb3FU!wݍxh gH@/^v߸w[ARV&cch 8q@ha-_y +Ԕw@ *8\k괱уQK Xm76MV}almmn6o|7(`@ZW+uҺՎ5J]{ Vkڳc2l! q<HpaGZ^IŠ$vML}/b]5Y56`=D f[OEs@2>)Ɂu ({=a곗4ji;c|`uጯ yeae_RVcTs4~T56gL3hV‘0֕@çs>d^hG_E=u6߈W/nsNt o7t66em k'CvkoO;fn:Ҭuթ2ᄚuM9|>9wϙd\OE/3y#ţ/]7w|\ X +d<$d|2^fA7܁ xƪWYsx\@WId't̓*Sͅsə Cy_3^@ƅ0@t:* /O8>W,L28!ӟ6?|1:ђ1̗d"{vUV.Ld!I7)?/69~ +VMՂ%)EH5I7j-@'ˮNN !:̎(_l}m@RYO_z'[e9@R⩵ɐls@y3P +֖]{fa;<rvĴ_1+6ݻauڽ=VRCL xᲊ{8oWX_bB3Ȉ +җW-Q9!ؖQ1%0ZMF s5;RP֎(ވԴBnd ˮs~h6Ml2 +.XM_jK+Z%ea~${0 s +C<.$j#rI3)F4k3E[ouy|f>Onsh~؍dwWr>z=>#OFbgd9|Re^'1k0&ÛCUugBk̶ܜ=fRkxz)Y<)Y]gN +tuU{΃q?m^qWy~fɚ7w4B? ƫn/8Qu'e9RȔʽ# +bЀ3oˬDLp|ߟ'M=hRla ]` þoս^,tO>*fr];vp{̍C"boRqwS}tj #`٬nTzQZQDD!qSK'ޙcNVT3?rK,H}3ňY Q;OOMQk,#ue} /Zwd1:xg62K'MfL3pIA8`2pq&BM>_ƝױSGF eEӮ\w > (ۜkWNw7NF(loAY0u29G5"ɇVL`sn ,D@ˢtT| fldcZsQ +)()|뗨^a)3z7DwHhyMheϫ#οb: +,?J T37v]l>ʧ_>JïQkPvDDCޱސof#-l k%Q2 Nw omEN52m ɴî]K,%^3 GIk #2:uKaL{*hNLT1$;1!FET.۩%FċVBS KKHwlرt!}B*Ԥ,eoK)P`urHQ냅}/na=nV@cvFg(]LQ쩊?/x}Ѡn6О _ z6"7^AFA2@RB.7vQSfLм]5$ =z. uI +B>]xRH4B DŽַ +.H*q&aq<"إtΦyі/?Ud! ;P`sb}ϴ%Mc@~lK f$Gw9XSѭkC=o"Tҝ/O:ɿNSs}#["w ty?&EݯsD8}Ky 6jq/L/ӿ̭Y//˚x.ZKCN:ie85% /BK~J񦄗 Ѻc޷hj\i`m=Dd#JXػ*ђ/) +.-$'&7-#B^OZxмS' ۷!֔/}{f-7qʘBWWhSV! -1>LZGRRNQc=jL=ŌD +|wMuJ>pbH tm* zIE^Bq޿HЗrgr+^1r̅glit{^Ěda¿8Ikw̨Z~Zc3n2( sc_Jwqْ/Q_.|klWfȲ2B1za%~d?+]:s\9+$EP=  _E _E-]{f0)xdV^eWe"= s'5!}63=a`"d_A2JЁ5a^!]k!ވP2!~q0AۍՑt9 \?b$U4+&l"L yC~ 3ɇf1kNi%62nuXbmy9#vH)7Deh zƨK"3.C۠ Rt]oWGڶؾך@כt=grBw]LfOmO= Q44~}YvƋFkbב1W-Qr{i)ԗjkBj Zé`c@ h+i`d޾l ACEElX\YPe=IPE;mY^'P3jOUI %)h 6ѓ(z$C%Je,nuJfJ+A]yɷߦ/aC|3ޜ{qXwiwܦ/ߚDps,{ޗxDMK +'Qrrb̕c3#[[UwT.y<ȣ(\ x#ֿOg 0FC\okPZmLxk?^[h:x̚]kv)ᨧ,cOey1+!&Y=s"o'kf4 D)cjluD=eRn &3z{%lVs$%xA60iV'iNy6.%N ?0i^lttĄ1!t:wdclbOXg nA;WȾܡ㏴a&pncF3j4;N3N/Y3c=.߇h0>36lnS)`2ߑbRm')!h@G^ +כqfdNXN5wQ1_# "Y# + I-0J*gŪ"2J3g՞_M$kGc Y]j|U;nU0)#JH#|,^ܞg@9}]qW۾EaTROO`75Oψ~QEᬏQbFT{E~([βgCڬ;*Ы29sω\н؈EWm?(R Ů^źJ%Q;Tk*%nlF7.-:ъHg<颉zVlB Yey.#~|X=95DWEcjpu#'=Mfy" WAk\㨈%EV{\ȝ;sYҎvL՛]K+$l9(۪lO$;9"$'RHF]|n]Z2iT؂O7ގ=Ê*Uxy])s߽lՑjN2A'pGz6z'#*6Ҟ5ej`F~׽K-T6^gv3s2;]EW<^}nsD؍gYW|BpXlKYUasaCmF|9_~,N:ոTajTMZc  D/NVTϺwGiUmaϨzRJo<+!W*wmm bDOSl1DVi%_VOu.$GW bs22[##duiX {.,kN AHYS9ϭnF_6!eTp\$tf98mf)4ۮnm8'aϝ5O⢔gxA)Y,9okux۴1'LiY!w冑/NG0+ (CIIS3Xp) iH~\4+A'- HAo4 )<@'A(cE3N1A~B40B<@io;>]*)a@K Vnne%h J, d7"f)MC@8ճ'U MڎF +\ 2ј-`Pzy P`& JҀDU+o}<ʍ(\n-I6K@ 4(Ij߳Fy'uµNpn/OBK'/u*+Zauˤ ,>ĦuفxG +$mG`IN98L$j X nOl#ǝS݃2V +@KL 9rklÔ!ȸ,W` ×ahgt : }8IW6*0`%"UvAVft VeK줛3]](q lV}dI,ȗ!Gܞ}r?ڨJvRf'Íxc@AKȬR01 EѴ!Y4er(%Cɡ'ߖ݌QlΥD*쥊T4P~U\"-ߚXwB "zhԝAH(:]*Z= !((Uv=o3u1PeUae7z0UlS-LԵRaZycBl< guH=#hU]4*]< #q~`07j3)g2o26`6xb QcV2/(Id "2OD~ _Oo SwE+݆-ӜGRo yKת]F):ZYo/><)N'oxg]tk]ec$HƌD;'u<*Эƣ x]thLN>A%T3|ʼ#+}6Ĉ]gg&?$ OH ;}DPӅ$R5SC;>2$dl^Bt +(1:/s(g2L-ݞn-5lyЁZ3UBuW7 _ʒ3ԚN^GT?{w$=WUFSTMY,͝,Ŝė~~H![ DA32 +c-1cוuY +O|;9A80Iv"yy7|bxÌ㏏m*N/S4 'ߘukK.r 5#&v fnl7]Ӿ_G-y={ 4g_gk^:d l4-whbULU _dήE}m9Q_A4Ͱ (筙1=#sl}K$=5f>k8ZMϚgiMgʬP??A='HwK|~h$'IϚ i1NHNd&/gIqCTe~@3At Dr@L5 fb~on7qr"$PWh~HqbA |>"IC_3#8|H!p<-n3.<*vYPhlAbw4}O:y8%ڥQW{a%#ѱNayg6>ƣ1$IGMoKoܘr|3F88ĮD]}'Dwk~9#1O$\hs3`lfJm?G1ߚaZtic$4#e9vL&H7_T=}&Adr-bt{e:1A&`Ͳ.¬hHeVO@664,f$fs7{3hD/m)\_:`\|o$kwwN鹭۠GFA.Bp_.% ~r@$lvYv'M=#WBB[?Dȸ*cDP4Dd2 +ҿ0!_-|[V4>k`,+r (\N+!bPW,~WM13^6[41 <{L|YlAcjwg}E-nsS\Y=ü1ZBaUOg-G#=ɉBGV ibĆ`FS?dWPϾڢj?W@v7:ЄT#]v) H^o$]sآOe$%t`{nsUnoUPut"U^OFTK2,!Mz/oFA V=VUb]I]aU(`ZrHU20afha0[FqiP$c"gÁ|d`rnp\& h6F*fޤ>kFb0D!)ta +2+Q%( &H%|5@\5 +S=/r),㖟l9.{ +)Zg1c'K֒P{-c!4 ri| vR ΅n1P[qh%d D='j.{cz nw{iSIN1_z/T%V'D^^ٷ۫jAݬMf}{X (>,t{hV[. Wio^j`ᇗJ{ VWҔiE1va71c񘻛u`>^v7Auo6 +ryxIJJ@'L3y oSb^c]#A&1 *خ>rHeL6fwRM+dN%' ۺ WV[GفM2X,Z9y>\5U +.xlMFYAِ F,P1!^́6GJ:AueG]2DӌbZ]`[Sh;g~6@={bLG>K& +tU VסUoy(*6*xZ$u墂=8?(-\5k\k@u+зOHy鲏Wם&q8/GҕDRTM;b'q=0FSKى`Q5a#O")fQQSp e\/pzB  |ęhEAǘI |<BIߠskϳtggZ4Z{'-.S11}Y\,9MTdk2_yKW!]_V W(gBf'hhr&jĀEL -;yONJ.p%|w t"6N|[>hjax W Ԭ{ɗi\!?y# +5eHQL:. RV'OVc-- N `$"04͓^A=Dj̳Q^$iCq4]seV C7ReF u`~yDi)8j@%r0P ~h`'X\ʠ,4ְNS<1˦*[&b^!^ Qs`\@bivO}Rn%nUx#J4$՟t9ë$7zMlICa\TSK 0Ti,O<ʖɐbsT +9sJK;f܉Эr\aǙK< <)p2L4Q1lgf$fq&ʧ8=C%y3BW(fQe* +ٱ\9Np Hc[I"C~ Qg@>]9Qt4m?e+!j-@xlx OZRE+T9="!5f\C֓E`dCYXNn6>@?|1οIlwm"ߛ-CX<͑{GR/fn(Ne~1>oRӼ> 3 =q6c0Kpb "v(5xDPH/SVS3ErUE٭SBOZ);x)BVpv.,S[T 65#@ ._˨_wHa>8`%' _@}s,3+5QVH m2! wB2v/1ʝmmBesZ.kD{З>Eq%R.'DS}G@D`>_,VJB^_׌r 7tbhb;4eDS)&pJ86Tx +elh2tQ6F1`&a8-1WNzPTS@FSDu=ڼJa2 -ВK :*x6L~Ut6a+i/jﯔ|/QDb׬-x;d S$Wowl[ϼ]:x Dq H4QFס.7mUkê)W[dۚ+-e !A `V0'Nf;X7͍PB.foOFbt>> VbNєXa*zW5Q/'j~9'Uo(ؐ |^+Zw}!Au7t١6$Jl(,z0|+|RDk«NG!u(gsAi,<,OqWs8dĨbC\dQ]t_$C[sp! 5 ;q o26~x\;xügKcFhYAipٛ&}ax:1Ą#!eP9u!Ȗψ.CwNhbOoyqt3yWح)M+_hRza;vS0VSoV1~!IҠGg@mJhlu>~M 9-.bɠ|TK81k`c:_xGNsp< r{ /@߰gb_ӟ1(r|*"?Kh)kRJB*58`8, p( C)LRgjNb|6Ns~Eح! qįٵD,s"hOc$#dtzf> }|asMx0zLѓ615?7¬9lwHqXASIw%AD(FP6hl.T%UyMH* +-]?$ýR@z7yfddDԘxI6jXJjnnTiDPyxK +7Klp;"N Rt1Րa r ke +?EVo_al(B*=$k0gwX {|!^-Y|>Ju?[$vsL*#SnyL342?a =͚Kn bM띊v_zM/|(9>oAn˼v颛Ù> jV"$@u3$#kgFS +c +$J,|apL,$:k% +&Wm{169< "/^V,?>44CTQ1L+d2<}qB,޳ᄊ1T~p*uBz38h2O47$܂9(Z& +^U9dOrʩdc.ef!TNDΓ3 t~G,f=N\$z x9X"fDCfabJ *"6P$` kCcux+teAuQp6AMJ>|i.!I@Q0%=#Nx#?Z./828f&!D„vec6YqD"\n"esߟذIQ]ܝ CrAEt:3bfr_f'wT'_Րi1x KIs@DgO?IF'3ܒNܒM'>'\I#eZxk#+/&!W%/ +V++Ӈ 4.CXaUfd!!=n2,ي k2=ٴ5`$ 3TƐj_&GX]u7_ TMvՁ|w;b=AWP{tvģlxHXL+ꯤOv^f񮜲'h2x6q8?5-7u%B|Mgdb#\|A1~aOE##nƣT|GHsE11ϦKpS"ђ؞h> |RT._֐MjcV +&E-ÖS jUr)т үRߌ/7Cx_A@XJpHGP3' ] m$Of4-fF`JVgib<.clȹY/RuLLa#q26W28 S*3_yBeKc53!(PKG$6_wֆ`ȟ005fV{T{xʥLKm&VԘIQ]Ksn\IoS94,3xJXfhjD DfGng<k0E '8 ЊNO4ή@|oww IjϛSpi.SB1{Qk\C.&[k/bDdiiGbOxB܆69q;UCyf&f4Q~@Nq0x-ЊA5"T? +>iȦ)LDfXNHI]2&HF?Ӏ_,'&{81 R4BF!4!H SzLK6|ء`F7=4 d-AzcP ^Ō·>ּ~cxأ:c(%2|'7ٰk#T ;B-Ґr5,^--{ ! wmMXc#6쒯"$zI}uuxpRl-bAW^UHy O/5Ƭ˛98~ +[*]^L 02hJ]Q.X 0 q.]efFCY1pIg1c^zP~y=WdNoˬ$ڊ.܄vI<sǑ5#mhP%d\v{n^Cz,jmcOhDܑT dTSH]YsqV dlj{?Sh+e* ̩..)bXb 5k OijW2MʌHm'73_r&gL)ɯ$ӕ=QuKdd: Z]h)aT\_i iq#N>zNM8qרJlEHҘ7 H~Эv\Op(5 - v;|SԴ2?eY(cM m0ަ} ]Vs@dfJ+y؈#6.b C1z ;`ˮ|-}qCaL!}N1*(=v?y Zw5jߖ4ڷ:&PS X=#7 3Հ/@rx~@-.M fJb˿_&}7%=eXZ%Kï$Skj6۬4<HoZţ679oF2O?@c.yX|pe40#iG:'nҥD+YYitfMMc‰ ɍzba7SH^G%4 g"1cO&Fy̺ \1lL/lO}Nx'Hp5t8-"ޣ4Xup$ـ Ŵ3c1}~22KrriMgbŦoxq R9N<LyŒӂIdT`0dHtrno +yhsg v<Fibbx:J=QOH̕$#rLΘ7M*͞},f/07mR*٨jD`do$t^}}譶x-\.^]FM^`?ZFXFUPl [bP,m@M;&O4r-T#l.ф#Z^C:Q/&C @Ouʗlw7elK6ip!V("{6 M46vK7kXa=jX_XŋI>PPδFԏbar#/6DSBݝmO|Gkn9^7&(B}|"DC?XR4Quzt|' =A&}{5Z W\lΝW5 h;s@lY+]~8$6a7ʹl|)[++]~=uJ{I{?ESF5/*i9Jt}tght T̀;ь[ݧ%|"cWn5I +"F#=HOfN>c\%77ro@[rke 鋝V:U2a=zB0eW%#ǃ>5pg,vzt^:Q45` 'OB70s'H t ZZ45|$3uj6H*/bPd艋}YVo%E$|UfšF^51!S?FnEj݆9ɝLK Jr?=nFDnH4F" lWppMmNܐyBKX'/ dAn>)E) ӫH4b 4\ s@Aܚ2z1jFHCJZpd< *OgtԻeSN'NONx htJDtImng7Mb:6(ة}mzx}XΩcҺV+#"SdJן>q82FV%$ema1/âx-Kx٬ZNP۬ԓ}@-%|ϩDHm +=%62.㖹WAZ1s|-#hL($t.#ٍ쉭\ض6ACrErvTܟbѭ9HbmYe 2ٖ`b]y/]/6=ztB[V> _)gV.l~Lp4(.IMX;ȉU6O\wXiO!|vĶwPÍ^B7S >U`udlJ7Q9Q}9ڕU,{hjXr6e ͢-bj) PJe>E66K`š.Dh*Z"&Α +X~KeݒqAL隵s#-؋65P#HǬAOzA"jq Z>''O0 +R +210A1C +Y<Pe-BІ)N$3M}z,Tiq .t ,>+p: <'ǚ, sjwO$NV*r\X{KShIx9*\m-[^P +ֳ`3A__SCz_ {Ů:_rE +dIZm;'W@NilJ/!DbZ֊ϳ 2UAsz7k窈X3Aֲ3Xc ֝ [͚|Fo:x_Bɵpv[a$WwޡNu*-wA9ݴ>P߬lzp7y asMK>G/-D~&=$w2eHe)jHhX`L?Clpԣg.oZٙ$W7|kx!wK\^C\Ěh 8LN:"{ k&h"Bib&DNրxPi̛?핾fsm>;wB\y]LbgmE+ t~,a%H;Gb"I,WG9QHA%#ubfEz7fWGu?Nl88RO4}@7I0uiYW[7Ưz@+cOQ0#7$T[ OӁ WֱFk@IjQWc:f~p<hF|@B(~Q~EЗq!{!- Ők%2>>* 8i@YWSQ6>M +{1CZ_ +"iBp21pɪpYbc2(hmk&, 6THhR 9 +&sy9"!ҍp㝂JdU21h` 巔q%ʱ4+Kx6m,W:.)R5 oBUƦcO&s0$E6/ Gft_ B4ve$Sd_Z7mQ묪; |P%U}.@Uo 2fQcPm˜`XI/9.g1N]/.l:+anbz$f.Aq KENPFYf48a‚D)|&2d}>"Z|)n?B&a̤ ؟re iYA#ZP b"m M>dZpfm2~5 NcT! :9_Vjf$ :Bsa.e^9phZddºfWm|YJZm_"A""Ҋ|a9bhاbn@[Kc/3lb 9bN2OAZJ De۫0_cY)܎YO) !jh$$CVbXTHr:#Twhpe2|j} +OT) d"9Ffr3+~^SmxFM(L ('%/1 ^'6FWT xF"Mp 8d`rrD89$ +h;!>__8a<P'X|ћ7Q4ZɷtQn!فd$'O@3RfinY^Hfst`; +)ʵ pMv9^ϸAL +KX# r./$pOH3-)"Ynr2#Bh斂$p{Z&, :ɡ e3:r E(gK! +e&((6 eVY1*qO0qL% r,EPN%;2.)҃ͺ$kXYJelFΠ^3FB2"C"! +ҫr!+R Mj2hb0AQ)-4TYޜ*g]Π)֩g$%:6RGɏTʠF[qKB&L8XWΠ(tSsiH xn*,V~B@5XV9HhhM7oJjl.b4Dϑ=΅SٺQ ͛{ܼJo?P1 +D3)p!%:M  lgqBȑ !&8"H +B(B\ˎjfv2s$qr e"1 ؕƂ!nQ!i3fK]C5&. ː{ {P}\L'x5#EN9s~eIq-1fYԗU 2c=6қh^~ڧ n_͝%DPw^@M.fXF6pT"t %+-l,.%\"[hZ`ʣ:V +c1 ۃK RmRiY+I!8HHb`Bs KyP2bNLSFҷ4VHqy)>\}MCB+G`I;Sh RFVᐗ1ВWO"a +<>5E%@V,2 &ďLݬJSʟ"KV di9h/T!6Б`/Q9$M4,]5RYSLz[H UΖ$4.lyƎp[6 1}r:lUl5L>@5se ={DjP%]44=t+CHq{K)!d锍ҊF 9]OS Bk.i `v1s_5-HfW{ dĨ +8m$䈒h节m̲`sfTa87p-3$vg+4r0ͤ ʽ\!p;,^1 h|ʎT$$<ŝm()4ŐN@wʉ˰\|zRk7ZtJ|UȆ,oOP0U2!f_DsnBO!Mz% )}g )|AG,Y :M ^g"PLO:pbXXa~x yԀ.n\}pưz,71cAloToWѴ`cx}^gsKfJ.d:qG[tV7<ֻrV+{ V+:.Gn%@2Rq r>x=cաm^sYp+\$m[?f!s^Iq3UB9lAO1θgLJ9C +b]Ļ2J@^lx|.1jDΕVSjVm̒?ㆃ3tx}?%qu &1$ӌq2j/NmDֈ@?-;c +4g)kc:=cf6QLsDY$@ 3$%LLR; QQ7fd␀!&H^5Q_n&+" 4 [ +Ąe#mNwPx*,ǡh}34KxLXgex\_^;YJzV&iIHhJn^#eG2b;2;2.@)e6/2R4:~8bqmevDGk|qcT8B 8gBPN]^LVb% ̷ͮw%t*Wͯ l4.`^fNȜH&,H662LX_(͟C_H65H69<2,6 e K&I$H.@D' ] +e(e/B̭&t'-Tz~38r-w||39/LuBBs(PB|:1'st'^}NȼCM-냓(] aIZKr9¯&Z,:vmA<,p4M0;` +`I.(EjYgX}jN Ўb3 +d#lV9@w l2P7Cv#p\Bg>=9Yh]_By2.N j>bktEOӡKM$A5nvu@r ̘~$8Fg.?Uny)$V`9;1c%5П|'>92MQ}\Kæ5^=^ p 7E\?Dne3AD%78aK3RKhCBL5ؠ̌6tT)~Kq%md|qq%DįxWBk..}x#>ݜ rD%L6)N>!dHuAHKB+c[Q. *Lܫ^X ΅F(]% +#'lZJ`>5y i/.aŗ=dY9qz`r=(8n]i͊YqxqPrqZ]'C@հl0uلd|S6Y><ξI8ưǪ'V"O6(‡Հ)vKyGJЖxݸ c8!F 9Y3%tݜ @Qxo`n7Yœ ona'UHbl(B\ ]le^E@@E튻OWa#e?CHdL)V'99sk]"6M9q*寱qD#8k& E..JƦNd|#u"}Q,X?a0Q#Q] x@"ᶺ-]PrkD-hݱP7ϔ{ ^􃫦CQw5ÊUnh"nԖjO?%g@4ŐA!Ń|#Kr4ɢQoRvk~}$5׀^FT,$htp]@*ўUy^Ŗ$%՞iPfgn?z yY6邸# +f]&2$$|u%KIleυ'v1'#3/2`i Ix1a=h2.LeAr H9k&MשMu +8At;ljl1ȧ呌c֧h/w,FLN)F2d_ 8(D\2' X4&y3Rq]H:5c{Ii&L畼0Vg8` uQQDI7˱Kv6hel%Q"jTQou> ul caowcZMqD%j*mc4p٣Yc)dZ#Fba_94IT(5Ex邬1&^ \OS0IEyd/edHOƼ%xQ732i##Ɉ~S /a^ĕ$g\hAFRGlɊԯLV<Ed-hK +?.QΌLM iVzLkʰ ^mEҬ4#<% O/^n% ӖCHeEF A;8iĥSHE<dhNm8sh$VXylSƂ RXp;V_TI +t=@gyJ`{mՄ5'̲P VSbT36ar9q"D?%h{t7r8P>11/OCAIǘ4^,_osf0gaR($ј e!;2 qU`47`ƒxZQW-%JTsXHc9Gd,C#͵JJs:2oS0.mIq0˴YO0qJPb5wĺT%{Nq\!`LS?Wb]QOcR^~H̳ąXXkM, dq̞mcn4q `->V#KXVɨ kӉս4CVa&p(HZQsj%g [ e$e"#Uvl,f {f’2x փW.U.J g @{sTUQOTGQ(H[ wyݽ+_ϓ-fSnD[~ 3[zgH6 RAג=0tYg"ǂ"SjY=ZiR,+)5R}h&Q8I]-ѣe& P_'~%iж(?`f\"$e-DzHuD"]GʓlL2 {b dBÂA2ga4!O8SOQ==&7& {Uΐn_ߖ'9?G9\$dϔTx}r+xLWcVuKiD7K >dqh/рjVE7ϞhRw.HJBgdsO-Xp^-!w+?Db51 Zv+1ˌT.M4 ~8\M8 ã/WDRg,\?SFa3ӄ~&ic44' hpؑZʎYtW6f5^tCԠ3sLtSfk?[/2xMLTKb@+Cya_;"Vv3_?m^EMe/jI .q_\n3V&~cg)Bה´K 5;3m: +Z ^Ƒ{ADlKih8@r!d8jB7Lc׋`CXL;uֈ'x2a1:׋H.9LjDޓ8*sn}@"B&=ӥizpsp3͐W<0"w3Ĵ_G, Ws+CdP^ A%!$Ӕ.li-'7&)DOH&+:PP)@#ykɨB1M:4$ Qi]6xAdbde-+%2nsӆ:_o9@}.ֈRݪ-de^{Es.֋ QΧAL^E)RdYpk]1mva0%ޛQFT鸍mlE6gv + 9xOEldT$^SMbok ~'-MHksQdfZ:ʜ(ΩE{2Im"5.2՜8e R +01$-|Z62}cGIUVsAȤ[ބmXR7 U4rXebIvbWO&&%XM\>\9xcg$o[;ėVТ6uASg2|Ds%0! K0&a%0a(B&7ZYqs׼>>)dŴVs*iYkSO+%!eSVوl(Zl(Vgz,X6nEmЪ)(l񗄳%P|3KcD,dK;o˹0Jrcjj +Q蒮D IKSF{LΒL.0!h;ViLфAP.cݶ@+%o,}I@8> :* X$&$#3:!#B][&:Gl7S: NH) Sì\P'Rkj,aq;j@eDXkQ 7Z$%'CD4"]㕁LGuǥ0qFr|O0+[.aR|km/_%?qڒ'~=Җ(-q),dLKe&FҥYÛ'!1Jk4HWILjUhun*yJr2EzJݕeM+ufF ѸV+g0/p_'XK:|wkA_`вV {yܥnqv+Yk\& LUxerJ8!RX&06%.8ƈVWi{ƥ1qk3z# ^ޖ=gh.cԥIwXei&52`CYv[W5mLhfXk6?b:)vz,$rFrDqvR4S=[HM$!X^j)Qkop,ZdZn j*1#iR՛z5B#D;f0o ?zL$O=d6fY1\H1!1Š 0\I|cSUFKem;,zK5PwX +B!KFZ;`fċݳ Qne#.GX"1Y|M ϋ Rhlvj)rLdmcQi+eoJpCq_kShhM}'cI=*o@yTFx0~eX6x3"ĤD3 Xo$*H+ G'2BexX$0dၙ9 q*lUH!Xq$/W͑\lgshs|6sA1;Ѩ8o1K>8wC4OlP*7Q:S2@F\z3% <1zNQ.R 2f$y&%Zf$' o=uPFU4gšI5jQ?`hyt:_?.z/,# HFfE2v)7FGE"=,!R&eI؂\<Dg=hK +73R`Bcfh wEqZ|neX8 W@_|p.''\^1e._į2xrjqn~Q$B3O"~9#4##1>"ŽD'8, +r|BFq%=tTTx);UF,|+n:{HXpipQ!w<6LG&fC TifD_@ _@ venH""% ;n 4b\{Y 3_9> z3!B<b&̭G!!0Bܹ\YHhI X5bSH^Ak*(c8֘/7!o7B@TtFicXqeF~_*Ro; +?/M:#^:i@V5={(U߳׼L螽7}yUp^4MK='%}' ڇc8,Baoo5: i=ح8bL9{q±Bc^ ۊ{+̒Dz)(A 5^Q/ENTa TSPXU.nc|7py-P]בqSpX1M WBmg𢼀MDTxO!я+D=,`~3Lcv]1`r3N(,-e]"Cx" dҡ:_ɱ ɝ0oxROHb̂,b7ҏء&'Yca <뚃;'Eڮ 2 Zт|Y7fa7WLFɟ*cDZ Q?I@T[.ʴFB(I( &+$Ò"M&~nAU=a0_o?~@4M$M]Lgr N j.%*!"eh*֋1rĞifLT1向 8Q3a<> +9 >`/ōP%aֱCZ .26 +!D?WpHvydU$1뒘9Byfxxvww~/z"z(&}s俨w*w"ݘpe@Vﴨޡ5rRScGPdh8([@Cxv0FJF-&sqp a,,U$d#FVAjGq68]sGst?Pe +盯9cLv6,f9ruNuT;mwY~ȧMG-}tG}zUW2x ї`yiz+cH@U[dwBsjŬT()<26A~AUK{=%$(b{Z2+l0BƢ5! 97~?:=ȿㇾ&1G @rAXKDi._,+J$D?s3x@R#XŪτHg | OT71!8~MR>"xY Ҡ`6NGrL32mZJlq?aQ}62d,Zh@ͥֈfУ'ٹ2TcNFs.gԂZy"19tQY&7"cmmK}O2BxWۮQл ܗT9w;cor/&6S4b'-}fU"7 qidk3샜[.I'Quۦ9GEjf%fHLWRE? |u&4ydKlA"&N4aF0"eEed r1uYjvzz׶vj4J" AF2XS0mss4_g癙>99׹3*1J߈3?e;^v݀~y;˙q793/yc pէ1?? +2Dž/1|8قd' +C84odNCɹF/ 3Gd 32GwJ{vnjyjVnu A,S v[Yy5j՚iϑNyu^ݥ;yr Dg$2E G^,7Uי':|Һh&ux%cyc;%7hƑ(~N#Ē@Y[N),L1<( <DDq;򎐲N_Je|tWhGS!w[4r%_Q~]yR\E +7 +f]^ǯ -'9 : t(Ps.\Gժ\A9(l} WHZrEUA۲>HҶ1We\*XS[O9],+uvX<J>n QV; +7 +-ri EN>@JFWR[,S}Y~ziqiI9:.;P)wSJdSY5E5'R[_BJM*T/E qi:;Ju;]30Q^"_9vyǦHyhO SyR7mSF|}_Dcղ7XzL/G59*Ri4"f. >@=x Q}β|v㗋}gjwlh\«I|'r:F=ZXqA_XIW̍տ)~iXco3?CW%iֿKUj+oWz-D;ZfR/_o+_j)faI>$ c*4|܋)$z.x^ཛྷ^%{&AWFb͚\(RzhIUK\'K]닋[ <Ӥ+Qywu9\ʟЂ;[z-T;m!M΂1ʕB=`vЀƘSKP-GoQnFUN+*~+lf}F;r)ŗHҜ8.MoCl k㭡Ao΋-ܧ1SFx޵2*X}AkkGL̥ݏvآم*Dy{O K#]y<*^+nhgH=Oj%#|gK'Sj2OE<'RK><:"yBy*zmyȽ2C;Ȗ]mv˼WE"c| HFؙs̼jը~,nF̒=i=5<Y2! ZȦjJɗyfvv3m7]93S삣JR?-;C?W^QrWz//nႣPxچS3QV)q?Dž9O pLJ74$|Kۚr>ё`^43zJ$@AOa('a)Sx\ar4Gf=LmLbgTतտg"Gv)#ڀʑm7GwNkΏ!J7կtS]&WmȻrt)vqkAP9ә#B;@Sl9SO>h٥#.Di>"6KF #l`#ꫭGMP_J_[>.甫Oen6Y{2ttXgonj Ƃv'?5(s`2p_7W5Wfޢ!q !`BU܍Yʻ>-qeEb"`y5քqY[p-tڭ+pҭ։[Ѹ[ $7uauAQ UC% KՌC鲗;lcXZ3n]Zt.ׇxyMDAy20+v֑aWp2-c?OLelfuuve[kw[*nkYC|!7:͸ub7wF;ᖍX4aDXEhg^Zy]xB?nكGbۍe q? q1Aq;uԺיeXvꤪqp*&yt*Y6P +Ɍ&Ȱu…-$dj촒N7ᄟZ9A[vn :>:, ,qQy5r \g1EV[R0[IT8U .N7J kǁb+kzi#aWl.mL({֊Bj\|9&Jig&eQ%50 vmxFيhfЯ Ăd֌n&VX[2~E>x#H]5NX*^t~.`ɯ%#h+p$RGGX-Αx#dE}"^^j'yP~ܔK iPX,8,[ӱ3 _=*͙  +ٜrqx\]{y!@v Ku Oo?f+y jz/8/TU5~$Ǖ̞=ټ@9P< |ܤM?Ii!*0bĠFZ%M__&?~3i&&gg/!O ~< YCon^5m*ּllt3gW9EK7?s+I6_l7Z~7+79TUNm嶓?n*9}iH/b[Zw1]9^uu`$c9|5;#l:̣|5վܕ/zoW2:Պm %_ NE7BWxwW[~|&η^|1̗٘E͐ڇ?<ÛjKZ!qo|y nfře0}<9k;l.RB36_m|SUF,W<*b)AUVV*2|JJޟ/7_TbK/^̷Vgz&_C[~G:i6yls0e:O\eۮG2+i5/žȐ0̦.~n0k2I+ .M3.VVҠ.& e7i# +VMxLݫu~J@&lINePFL;HF<2i3n* XIa_7K|ٽN(WWlgGaݷlFa33I>g:9XUllK`l+l'r=p^$9P]Jώ" ֌rĄ j`0&CEwǗJac*ʹCe8N }6iF%8;T:bCA3#1Ç7A[pdSЭ޾cY?g5a`u5ɿ!u'kĐb#9\0 +;U5h,,)Q _y;+GJ4<..'%.M<)y9 XZ8.Nb/^G0{9O*'"?1@0 Hx1ʹ(N +tsο{>K'Co4d =BC<N>E0WM51(79AJc9 ݾ_sjШ2vVw9yRs ??[B>{3p>2'{n~+N$tDu)hpnj!42Ț16Yy66d {Q*lrO(ߥ+IPx 涥Y p1ze4$Hia11ruhƧ'W|_x(l;q>}GDc@Wi-؝cƾ,#.¨W p%GJfv8G7ktw^֡g_D`W4(glqPjɍ łPY-N/e8GY8>.rtF 2; ϨZi̶}lU{̃LlňLe}[ɇohR\U;rh.X}X kf "6Џ#"|D\ FBNa5z+\2轨z)2Rikg A (c\+Q&t'I ea" h&(yg,- c(o\!R#ZFT5A%/"M Qn4TiC[STbݵ6`6X9+ )Z;|JC[&ΰmyuRP!NGH)>񴑹Od$rˢC@+R?L Z|riUFQ;" 1>}_"~z!-#RI%܁J !r8f8]|PfJY#cK:q]T\7DF)$a)ke3on5Q&*h 97, ۸eXv(CcPaFd,/\W<k<Х'd]Х'dBL?ܣ7)t $:>Ʉ0t\U숻?YB8.%JAt^C1/5O#kmI :2ڷw*V1΢ G$GWZ8]"(!yXHG;B*#r6=iQJ $.^h밨`Q)᫨`966f[Aԯ"\Aeoy٭g cQ9g۪R0D~}=U3;'NJvq+Md/>kQTS<|oF/Pi6 D`G4,KkC6nCs`pteb ftTUA4&]Z*i4Vd> c1a>Ƅ+;nkJwI~ w}_$h/}<+swojZ%.f@6dXYL="xv'!p![y +Qq-Q61P%p`J\.r?x9FS(0 מ"Y>L7_`J,RsSp^ *[:@v(|`-޲4>j!Ui(j@kpխN;gyiv+mH?kHڹ,zZX^qEI/:[́&Yۨ,T+.wQZT|)PKqG jط +CȥnTTq[;M! +;hS@A)VIG6 2Jp/ݲ56ZAyݢě }3NUvԙWXNܼn;! hc%,둴ʒx*O+kX"3RĒǴp[a$RISHpyA (R`>ťP6|gj7P0H vba%0<#8YW]70QqzGpBDŜЋ #6/`4^,88G8F98GA&z)9@Y$N HL$bK](W)Ρ +a/COl;w[!XBqLgoj5^.W=^dI{1Qc}9Y뽸t|G&*@1X#_j:ngCG0aFHFf_KdGmVsĐvj%=8Tp{OE!h|Q_< ΤN 1D6ZIW1BqO?H8kT66A3f/mrUۇW1~~iӽ[i4"RHJK%Gn?ψ=ÌH A%::!p NC/cnWj>~a.f#S vd4W&1|i6j܏3m >@]1m/O嫽,^nȷV50@ns>l o拵6xȷZ`q򭽼!?!{gv {yG)ں.5ify,{cY^H$S\.9s Dvp{p +)[dX(pGsfFͱو GfѬ6r4_L'!{1ŧ +-෧a)C$_zmE,FjF"%[WʲI'h".(:aO ]hraN־E٧@dDQb=j**Go*phxI +<.֬^uw[}u\M"giLxzn\}7?yEz#fj&ں"m9,J{"D hˢvz`t1 JjS:Ӷ(A`/W^.\[ԭBi%b nlMl贘|ت7>ߖx_@R5#e7NmBd +CȜ y?&bߵk#H:r;^</*wssRXfϚa0!.h^$#h@F) +5jlft/ 30h&u.L!;ʋO.(yKW:}?K>,| 6+#>D<µL=t8^^Ґe85fl?&exb._6nɏ(vm҈Ig\*.Z e`FъG\?|?]C/27><.kQDb(4vX1!|,OdXkѭir''25mP" m]˭ܕ~z`n2gitLD^o[z-Ah:MTv.:R}}v9eV _zRxepZ|GKx]\?T]7 +oڄboơ"og]NӆbWuݡvHV|4eԂʅqߋ̮ou4nQWY⛋& +Vћp6`T$ 9p<.a$ќ2 n2#.zv6źE bFKKmN;˩v:mk$`L4 OΠfω9D/j56,W16QDKXpxKIAei. Bps*ދ) CWY +uZ`0dl)PRֱ/9ubRot/{?u la.mJϰ!%%Pԟq%rMW3(RR6Q;f؞/@1";(NɥzU6 uբ7C_ÌYŽiz2|]&;( :?o3s6 +t14hd >X5y49NPA;EgfK7-9o;qfy=9@uߓ76!spHqbAc|Fu6h3dm.vԶ櫺wmƃiso=EXR wp1aFN <<Ưa.@D#34Zf"HvAjx O8q]Yj:;0}ڈTF{ 7_ N97U'w0NWǘ`9VS|S{?tXNaO ]1JHr׃^/_~RSQY`N6~[;5:)pRYjt5Y!$Na(9T0&3BbK[U3G,vF9ƣuC$[l]4E8og7D.Tw4ʸ(AMw"nHd4\Sc̴ꔰ: J%p l 'Y(}լhH, +m 8yi3`1rM()j-dWo<9]&ߢ-m +ſ5؛dIaJ~u:bomkq.>Zy*J`F? QcvgǎS(U|qI^`fA.,Ft)ĴZ[ѵz8$|#, (\#ftC=s],⏖XIbK&-B͖S`!ޚ׼(A:BBQݖ'ېw7^}7Bj@-S;΄N2VPن*2F<L^4GWgɲ.xzdh3ys[fY]*ӟ-/H[ u(tRc}G~wۖ_Ak'@]:}.]o''t߆/fǙv5mdT0.ЬLb]!w(vF/Q\Y!J$g#3K}?4hHܕoZ24m+e %wC39:y"Yl1"p#vfoN>i];ֺVK4l++C|\{s+6:j''a#OW$Cfn|`rv t8{5v⦶’P+NSi{ezmwtDi!sMP'<+Tחz){/:|̦1ਾ + $țmʟ05xi3=f/ 'F;TCY*x7.Jb>kǒ"y|eXk`rGpo{c[{W6ꎆ > +{"V 5 AXkK5Bon[XX뷼box[Ē`k52oUcbɍuuɛbFPٽFTU6|(ȋg5dd)?a1 +B8^&a +'G +'h-Daq3[^XRhl +13l²_-}jM=ft+ "ٹ[VWc{3(~-jM[ƺM-M}:x~Nw&O 5d]y%.HDB4;<yi7gmsX6Mn;85Az_m߯ͼc>F;o цI~#s,Ag!|mgMSs& '{|ʹ "*};gZ(&Cbv~Lh[^-ADU$k3=mtEvw"-5koo3@_s9}5N[f-Y鴍[̃ޗ +a&HH<B{8BQ]BDvLҽyїUo+.X~KdG7tBNRPʿMWMH$IWiL>o'B΅6/r%_z$k-~?m)^VƿX~V"':] bJor&{z,7SFW=CAuf ~>ֶ0, t3 YBj6Ƨ`hvȨ[[_s9<$[y(<"|9d# SEWMj73khiEJn +R |{+xxۏl%4G+WbqM+tKɬ}H[vZo~{}e֜5{V4"4{q,9GGhv7:-گlC祯2;_NUQ&)|ݎp[uN8 Nm΄Xz`HS,]D`|mt$1,6ilIh#/ {uyrT}qp9,BC#}]'-B;x[h۪ˍ,vG +D򒥂mldH"W0{z FuU2?׺_ε. ~03QIrca͎$u J36"}JbG~ٴ 30CBZHf51zU)i[**E.ZA.;J@%/`hz|axQfڒ=)}Xmۙ'8!WY.mC,Fj4@~"FH'*_"ICh94ƏߎʈgڕhoVҒPIDWsC:^r-e/lg"U^vH1c'u(GO}ś 6ٮMSG.9md&Q"FB@/!vJ[/z[o }[ha!2}?ftBKǟ/ӡ}S9I2k֛!FEGTD%%Ďs?An!W5Qqm'j|l4>ΆuL>][yr,qqAm{u&b朊Bgo 7 yxRhF8I{'P3vgN-iNX'\1sY캺p\N?[߅IKl;GNIĨ/Bo \3R`eUJR3*?)(9\ ?Rg\?Pn\'ԷҌr 1C|TRLi;d`ۻM6Rn6f#ɣ4D?Դq!S߅~_ˎh:|t)93JN헜Z 4kmVȪ'[IKSL9f:v **MT6jO2H,[n&Zܢ,̤jnvDH#J%!G r \&ήuK=LoһS5B +z˖9`>MQNXkStF>@Q9IjPYN&^+ư9}p)@ƣ[']6 epb` Qع5A"l +z(. 4v8)_> 1c7j,IF02~R/= +p',0c7ȿ) IKB9WƂᕺs_\?%25vXe9 Bd*s1'!ʢ0laAy +j*zle*z}Hn,aM)[*wWn=,/ֶ57~r 7 p=%gAD;cu=>kN/>!xNB0ܟ>TFO0wOoZT_HWÌ9'\pqBƇT/*` +8Vx%V#gXzaAQ^qc"#O|p&y6re/>~ttZ"7;eŇ{c|\LJ+nIRng%in0M}tT 4uzy6JczV{q K^B^ +CD#˔??DpЏ{J 4:4QFyzF놔%41dʄ{j>MAvhx#|I<>]2[m#b83 a܍zLn'{o9IuXn&'1>Ի bv݊'y?z\`RWfYk?Zs14oȒ? ]R4yKQn0({/G1sWYE؈*Xd#¦dsRKVc)͈GM5i%,B{+5gFhSe tMB9qƦUnǒATyB4Q˜P)r} +qة -PlJNo* p4c&NSTr+m 0C[Yއ%(U2Z j8ml!_cyaZuʬxJPfeNt Uj2Pd3=>{k\ؕg红QOwy~x_~<~ek N>;>Ư=5 !Nj j}y1ޚ`S};/5/yAZkz1׵_M`8!e[i-< %ݳ#}g,ˇ$w,`:c+ލ$?ł3<6GW)Ù@_'?CWFWo)Ec):UiQs <յ]Q(+ ATfg:Z,u`})|NYUU=pt$Rv4"2@N_ ^z zODFՠC٨D~w+E xXETGXߜ3Xb||ׇ'`4<.ݘm/I{ vCC V V~\EegBɏV;vR^zjT^k5ty:jZc'W_Hd3~Q*I/ .֗.藌pj[m>J0zZHWW+"Ǭx.xNtmzzU0JDG]-nFW?;c + =dD6z2"(v"Bح}&/Ve"|iS@|ǵ^@D +%riy$M+{W.hVyѥ/R__Xgɿ+*m;L;x4`y$5(oYUp +ѫ7p7vy*]lЍͬ«zfff3ʼsOϓ+Z~+y2Xf˩2UWFv5xu AATJLToґ@V+X2t,0i>OE\j7UG'JWTTisX- tx-vΓ_IŒT+{PjU/u 5p,>~E3I͡kdzlfoW\;)%dY%IzyI]# GQLer`{uznx(~$ءE f*Y{@%r, +blЃ;m@[?0iRJ=A`@A_]S^"f0-m{4bR*7/%Z_J: T̳)RYy\w=SN?CWS:ϞrγR~l<lsWϒoyXQ_rС˸Gy栳TܣhD+*> hݣ>wY wGv2,߭pṵ9T/|aJk[Eۮ_5 `,b'x!^|\ޙQi[`2_鄒˺;b# Kh ٳf>]ZW |]V\`"x(zfQꢎ`c~ 7)-E&<NzZ=_E Ze ;me&rr20kK:|aS 5$Fu͗Y/бj|=3ꀴ-2 z +L&au˫4JˆmETGFڅ<> :S)SaGL^ʂJхr6 6s@l>W/q[cN&-n +F2E;z">Q iTRa^&ʜ]Zu&)Avr! aVJY YZ١RA +Gp:+N4*a;o, [G kY"۝|ʿ3Wlџfވ}/kp(I-dJې+( +.7)F\G;6R _p\*ʏOQ9MCZ#^E T݌ԗjAlV~_I\"&"(4`j>][^]R@-bvJS"Y5!>-譻J0 פ_0LG6QU0"VF&_ӑofbolyM)ϖe"7Jv?<̐y_Eld0/r\ELlF.Nlo D!vsḄxw"pirl:ZBFng]{yiȇ(On|vY($-w %Gs F#6R}G1Y?Pϼp2ysR̅aA8m6I i.*`"{4/h} +W0̌&Y$V(b,y5ц %@yGZf.i1䴌5{Xrh~4r7&+TFkS.b#/VdOS*(y[9z-s(%pAEMarU} 9:_L:rj*]e D5.P_On[@"p8.P[/Qt_v(]jd.bH+s♞VbS]^/D j.u·7c8h}mPIW%?1_֞/Uw/^Jz%|sJ~_ۑS}m#Tq櫠u̗A RŒQdC:|ո.,yaM\lj;[jil#+W9_'|pk/aHQCd~ +I&3.M6q|i *?Qf0';챴 ɕTQ㚟<(ӱ 4>Iyyx׼Dn5msF*/v O?xk4fu5\:K]0s2oL uJi.;L;. +u E^* !@ D iH#5t{%Է?].SrwX3靚ܶfmmy.^;e—0iԠH)~\@oD;IxvJ{E*= ^_݋5a9 Apa_*1|"P" \k !<_Ix-u:P :%x]`>kFj5,D/Ⱥy7Bj ŢѸQ 8h4=ZJV$Tj$RceQY(HØ@6u(? [KyJ{vamc$s|U;I˹"Ϩ=Iƫ-3/՚]{r<leyΊznwz p@Dw&;L/q҂&=fi3 ȩz3Wdˤ> r)qa~%Y\ڸt*KJFbuq'򄣬-*"L`0c~)X}i-i._ xY8!)|3х=bFJ 8Q*eJ˗:|cu3}97/v mŻcd.otuWgֻ=i.;vη^|-zy- \}$\:/ e#@߻lKj` 5wC?EI|)Y8B %GFy52hK#e++Z/ҍ vۍ{a|Y~-[62' dϚ(?^ h=#jd 3P ߮]$btYE?]o/b+ Z D{ӯI^`_A ZZ^|21v?:N";']'DZv$=+-bVY@&~Efj<6ѩWP FgJVkTQ+*+JzE"f78:w]^XEu`:T*̴KCrRR(ȇOxx + +v%<^D-CNəJ +2;0:PaAUV:e^PfZ581!b gB9&.Yp׌a83hŸ(Lʥh d$/\/,)aWFaY=ϻtd+v3>#3?೬&&% (!"x̦ wƛ{͈h@[w+R6}ylGs+8, PnS$ZDPv)!h^F2D %cKrhĤ|O&_/H5t>.& T$z4+F@=l̞;$o3??ZȂ3[a'cG{BRE1R_ZBhd:Tɭ#i.x2|2%fORNnA{K6*5{FLP6y+żrwK쩽 ,i܇惕S<t8Θs5ӿB0 Jv;dz/\D6-$Pt\wq~Icb.GI/y[%W| ͵#|^O(g1B0%Sj gt`]Л a}TJ^QYWYZ +};3! З)Yԕ}gt=-s.4xNSLNh{֥#/ⁿ; 7Oqqⴊ7&J8ϱ\ۋXvA~4k&y{c=[jSXގ<΋6͡s77m^Db&k.BXf 1CY?,B2`=JڏK}F־j +A\G 뜯>ifŞ(j?F#: +u ewJi{CUY{b=U>Z[4ᕬhF&RS[{c*Y+^3~&SI7s_1w^YL9q7͑`ܿ@Fs]` =7{uu +ui vV2@gPd=@e=@d:RΈP +U3 d5K=jA Ӟ`ܣ~:AH -yHb& +_o0.I9\U*4&WeԾ@eԲ:vegT k<>t[aTGvӒ+ʸ׊=W$5kX v"פn,.BAx~:&q2[ a\k\THI9Zv$NM2;ɴKji +6,^“4^Z,PZ'S&nmiAB].fkui,iR Zϓ>8%m-z: jDn}ms[^}vNVꜬչRi:UʬdL>,бr7P)C2hғWHe4CbZO&C'Xq RtZ&@& >U3}&o&qck%\n0cC|TIA!*-8[7iuq<[=,[O]|VB9\݈'Z˱w +` +w5v3He83?Jn*u FLض1:I\ e7Zleb.,-f(ǨiV-ԝr eiR]KZh e T h92i\3M5E @PMB0Er,9Ue e+`ўӎ|1c/](X>0lU3?mE*"zNFNuλ^Jf^R/Sg_EǞqDu:J͹{Mq+zk'HN!u +xuLЇ+3 ZQlHY*N-6iˁ;Y$hyHsHFqH%?ae3b#2\ 7fT֥gW[ӌo,0p:W?~ +kO{,/%c9]:aש GU;O-0*!G13"Uj>X:\C:uH͔ed{1E#[abvϜQ }CacQTͭ#FێȖ62v2E}6ёrS%/0\|uQ4yy6/ +=|tw|tW}>5|tз#'ۣ#SQIU&X5ݍLMV|t1sA8fp42qTdŻT&CE#Ttc E 7m\|!an'.8!|Nyd>LuI)X9eRwcBm랎vAºuu[f[M[; }s1w +#z|Wx­ܡZ !J|7 a+Z\7Z7JC֡~fP_?Z].Mo7|Kw^m~^KWG!G\6a)HY.Ig`הon53wC%T)Z IC?er),AxNHv*N`Z_.=K(U|"/ee9qޚ= +O}U=PmRװG5ңBk;2eQ' y=L떘NߡtH.Čj}1`8U{u/} f~3a'C,ejbp;`% X31!TtXL.Ӯl2ڸ"ƕV0;b) p0Ld&9ٳɲ sv\0*(y[ K׿җ|'HF[Z'ӱgΜe>&԰/gB(gt!4tYQ pK!esrt6|R7 !qfdq-`|`̎Y +Cw+ߐn}jYlC>>WL^eI:2;nR*?lp9Fy6ةl*enWvTMggIE0\ci#É'_ED}Bs>\ZoI`^a㹥q}TV'Rl,\?_*91e:%8;,Cծ#ۢ˷Ϳ@S)Sa Do7xz|Xp=.xM!%h<ky`Ѻ34NeӮ[VӃ8 wDT'L!!c^Q%=tn#A-C%;lŔ}@o|q#'t[:uK Sһu\ȢɁpedJ: w*=R<٩z12뉤SareRZʹ:,e2=Kרq$b<ɓ=CB&:f~,eZ98qC-MjuW`p⩋u+i5Oi-^!R vY׫ls;,,|Ai ) ȰɌ[ uRY^u+k\%DN<Drr"aJ {)~CRʑg 26YFFpU+*X_tN\ra+Hƈ>.Ldr%|p2Zlj٤DbK]|*\ӎ 5-< #H-zàc[C'Q>vo) ;H.LDO6YOǍLNpXBQܼH7AE 5ҞK!T )S9Uf X=gG\]40L'bA*/f~OӾ;1\`5<*TN;G!{w+ w['=n[ RJ6m!K<e''\*Ԫi f 3{4cۍT,1`)0D!:D ,%$l؂;1G풩챼}sci]T#Zu$vʐj*.o $=`= ⥻w2zgwJxQ\q=F^WSUPl⑯Sl$ ?)hyw#cgY`ѣgY \s/Q GK`%kR[XĬp)b:;UJ`1֊-د kA(‚hli٣ D_YPj:>MӤ2Z8Ds2]S4+~&#Ja[&!6?_{zWu߭p,EX2µ+ {4_!~+ia6DeJ r.U:lR Jti'权*Vݥ,LffZ¼y-Эh\[B'txdfXzhoݧdz=L1$4\pL>)OV,-Khm/ڕo²oJ7n 溕&u[ZN_$D~R7%)2*%,K0 ZJ˲kSf4ME?=Qaȁ-qٟxH6g>4%Uw(; &$r`%j>_gyxi˖xрU'('fQbu) V^Q>en/͖Mm,9,}M <-Ōҟ-~  iKJ%g/|Y͗FE D9n-ȣH P(=Z9sba$"gxR܆31wĝ8s^X<|#3P9ωrt.OÜݯ ꜀a%Os@F랃ݎ ^5,}烲K9jʕy}5j]$M\} :)}EG2koS0>?#o~X5N*F@ɐǶ%aBt0&T#Ux,Ca< 2?vafMu/o|-k+1vz >L*rQ6L2~VN|K9F8f6Öv~d%S-vcd Li\ iŗ̓ vJ  +"x;["|o꺧;K.l]Tvjxq/Fܤ)OLök[ʮQ,X%j+竊-QM/5[~~W>u򹪙Hmy<\|ц}l5{yY6b#Ŗ n uR4g&K'kZ,XҖllT2c[.QZWQ6NL_60 %TKH̫!SQ!Kn;6ڮ9tigC&Fҋ WZW* Yc6 ̊ԎдMtF\" 'Vc;uᾃ>Q;*+>j\e +<[drEE/ˤhZ<_82cvt.aeV^2}2M_b]'=ã"jNiq[~aqS+vb(K|NubA¼i8=]xqk[)W"9:CSڥmaeiêeeI=*[req vu1Cba?O"7{S%6㼭y;}2n5\|pyq`1Fke-?ߣA?݊g1 +T^NԥY9Kߕ_X +p$x +AZqcK{5F\cyE֍,sd M 1^Ϧ#7bzn ]*?` +D z{%;\A&0Li3Z?{&8I>g:m7Suܳd%s +H#@a avk*[1VD@-9 'E"^ <+s3~aTA +:`%ͫI{#9kbz9Ʋ)-O(B/(#sgAX|&Mox +GZvcOf6s#߃Y.8wpup'"YG0;ߦ ay5ǜ"%쒧E|;^'F~q>R|Yl -+]W^Hg%twNcli1-VeLfޙ}`kjf47*YMU3HtfbRv2ͥmK+̬{Mos #ݢEVFihJ2]ǺXEљ(h8}V +L冀M]M$idim̕9 ^Pl=\gʉSksD zqWY!GUU00v+(skX8( e-"m,bi组H x}lP ^ׁRƳy' RUoc+p2M+ָ,R>n -иROe[[l1OIe=r4rTJ-֤dJhKe8ZnӭmRyq~gNu԰C#os;m"ꖩ6n,]VRҐ4."գ^SܠPZ:k-u[-Rxºk =+l60i^2tr ZUWy=X2-׀(w1P2{q@5pG|2i*CXn%t#@\~֮Kd}! +nM1+vsIͭvEد4 1ȕ> +2rOq'A!Ov7ҔG Khn'$p)^⧲=C1}! 07T#1feECJ1;^<E?߃~ V,>D=Z :̜h;YCUu.Nfº~x;q]%.!Xm)kTrc)j-o4zޔ)_vO13-v9R6fv7(Mu,dB BHJ236Z2KzؤTu5kB_|/5(4i~lvk tOX|AmHj.jy +U c2p*2v6%R=V{3癭jJw.MԽ:-.a9.a6WbZ,G Q6Q@,ڂd"lιx%::F-`Ģ0FR:H=BB#k8W¸ܚQqr(KX ZZ8KtɑW,+`ۤj%hƻx CFӨpv|/]q*{EK>!Ap0ƋOn,&r^)X􍚚-n}B_uz_ȶ[ +w''_GJ AץqsL%Dy#*۰wP'4 A;jE/~e7,ʨd?ɀ\[Sk[#QnO Q\ ׍T9ubzR5'peeDŽT&vktZQZ VZ -,ЂQ]j pW_g B@f^A4~re~_PL +N0ރ.2Ʃ>ByVln;t:/qKx5j1R^!&_u\軻ʰ=%w zO%ƧW^U߭DnJFnyZlkRFj˹pX5[ΎY%S滔v, w=[jlָ>%a~,]U$8$zBX Kڕ ]B䂚 eSLt,JVp*0)NV~Ҥ)=\?Ӱ?O%|밄moLBF7ڤ* ,ǭuDo3GY,_QcPpWPHA$LG@z|kq>߂!Αr"s BkJ5y+_ om+EPݺ8M.A~-Ãs{~%|n?y. aP]Ky;=aj7uk 2[X (H{h%ުmKz?To椗I_7 +7h/}w[GRu_}c=Hfw,y1<3y_)O~ $7, 7ml3ʗ|h./|5M4c/_}Ny2v0=g7^1;)}/LQusѤ0mI<& +[_?F/П;Sggg#50Emp/7)7YQAn9|- 26So3 +$U:B-ε#X6?tmiJLZؑ(D~$\ ;3t%|r0̥0א[yݎ.[)jv<ȀQaO:dL{;LPݔJM"TmK M٥i}"eM3)U$Wka)ցnѧ|X}B>,0Xҏ ~tS.f~p}2Gl]϶K'n\k2z[3.ujc#7%6I@򁌋>T4'Uom!vDwcDy7҃L5?nXl3K̽nu&ț?֡jw' 1DB;<UF +p `;M<.p1[GX`iXs箽BiI̯WӶsNJ űK)4\NӢؖQy`z7<'7yTNu^D P H,MJ +{Jy Jm1|az2%p3p=wȺ45;t<^DU 6M@QcUR/U~,UN8k-_3gS10p"rě`@K_3ND81 +& q|So6ď ۺӜitB[d.  x8L~$=#E1^+ 3n4齹߃Z+>07I6jyTZwrfyđ>@(Lˡ48Yu0cCZ3,1c9Ȣ0 <)4h| Hj/rZS*n~sI)GBР.=sj^6g%R25'^t܆){(@}CSCsP_ӒzWnmF|R h Ubm6'۠'GM(!WXEYS6'̤?!ی?NK||?m1nߊ)5){,gGsx*[JZEJ՜d|d}֜TmM[ij!,6 R1d T.@~ +_f4%nCĻESޗ%WgHO\oN.cn(=BZ=Ni||B۔:="erxLRVuxඇG9%L tmώ5|?7[!gǰ۞ ] 0s \SHY5Gɣ#5)RёZDGGU::hltT!EACh9 +Zإf-ǾEl +*]O|Dݝ+:L,z*Zk'DZCJP@Xs"TJOrmP˃Xgwh1XPO;%lI.}ѡN~"ڰXuZfjw HTɡ\{q{Oh3~@@xKnp$tHJkP޸N j<, V6C=Exr pn%j@,)mHWҤS{͙o83='-XD&gbԒ3w?R"Ll JV0$%bAY(hHA2']@*! SZ sRp+{)U1Fxq:v|N!\-!mS6L!ۀ`N({ vȼcAb9X"aȤ^:cdlO&Сn\r$-FtA<1r<uhf'pG֩z*0Onnsv5ӝc<6Q}ė>K;M@8MMdANUԈ_ DP%ɬQeH;ذɬTQKZܓXw7༨Ҋ2+]UB-,/K++i=PlMDAgf̕(&7jZ-:2 ցI~9(䦖ͣ2O%*j҃2WE(c&SBaOP.f$gt#5޹QqAGkKAKDYe6cݼq/*ˎtGZZL~fw"*~,XBs*1 \GqvTY r]V\2o\ާ'$>G'x_O>%To$EC~$|ڜbZ ybՒ8A/<sG?9vB'ơ ʟ m1~dRf +4hKhAűiZ2Ug ?kk!5H/9άx)i5yW?eT)R0 +' ~6EM'TTeNʆg2:z h;ZQ\9spcU7~(қDg_nse8"*ꁒhnZ{Ϙ/4_|~d];dz!acJi9fhRΒl +F"D)x!4JU'E6> +}gͅŇF8 +׾ԣF阡֜ icbɓ2G4z=g@+$.#HW+B?d)tܮ> y:<)3WO{΅iv.m%/RѫazXxLby,ނ78v2z]gh fx3{G(9meYh=b #OTQrm5meM ~.5 +yR4CCѺL2&/f`^Rgm}ĕnvy0J _"H_4M1S_Au/<&z12`CMwV/9AюaٻSݯx5Q_l0?6q1כ#^ҟh- [cl_u6Wӛ;ϛ_Hk3bOQE620,A`/uHO_` EbJا`$UtQ&F g*1"9>|0EF)d8T (2g'o"cDjlsv+r؟~Сp = +Wq_<-U?n*s%'i/u%ΘWy_wOhmWF%y%շr~>lVX`oa+6=k!oo[ZխmZ4"\̍%}TEدD]t Blt%6VCN1Y C̄n bC_ ~Y.D +݂7-#)r&c̦Un6ӯAYB8Imho*x/V~qvnnsFc- X7-mZKbXkAXr^,iTcEgX]-F--3dyn>n-&$@uWCU\+t(yl@dLa^nhhh6҉17v=yCH#W֝vJdOF +ҥ&Y;p G@5*x@ d(:Yp [`ވD N6?A?L\8G;FJplJvܭ0!;Nęc$G}dTC)oq_6}xDhh +f"lv٠",8 > DB(Lg;a?weTd9FSp%y#fċnD1ǏͷQqtr%ZnEWh5caR oRkŷ(}T%}-3]1m$TQ8L3LOs##حKC2Ri%1BqX` aZӫǟ"9`w8FjpQz[Cu`{M'Z&jTf6 +T# ,GӒo#R Td;ܰLhX-6D(,2toTvҳs|߉/!Ua:2n0^>sq%,s HJ+ZR< vw9q 3no뱃]NF̐y!lyߑ)(S3NN8pC êmhg/>SAM{P9ӳt&`F’:~bn +0~ +"mS|Qq)Ç@AB:@GV%S:; +2!MHs%W9Ďa?1S/ +#ҀxZp{l Qd*M96|-Da{S Ys +:۷K0'(F % @bā-N9$D -s02lo 2qVwޥk5mLQ1/46UcrG 8D5m6iIx=qPm@VfOiN=۲)*ZY<7kwiA0gHlD%VCjN h fe:iƥ i\<]bq5Hi f;f oU*09l G#SLiOųá;Vʂ6ʄ:4.Qj#m/ag hh)'xzS]#ڤJTt#e;-mT~3JE]ё į,L1,؜spE3, |v7:Ke}Đ1mnfqQ:k']"q"KriT7TQg󺝣XzPӚnL!"o~C=!U}CԦZn;i{{Cd['γ ;@0hIX❥i"tO4f'RKIg=[bK|SfAhON0XʮJ3<2tC%^Ň ZUB֤ˬIwƹ.b\5ݥs%ؐEWq44.N6:_!4&Uĥ c tf]RDK,AM-+,#P,Qr$t,Jn,u1{-ms$I|SG8ub*)$1`OiD̈= frkĎO( #?=$$0<f5hMzfT@ -`X*GzG  6As/7ApK,ϭJV1[-~7T viܢ$.^Կhz1j`w~iDQOClFȬ1E4Q#řNI؁l( %-U(N +_J62 PJ5賩 0|lILo=r|y5gy{'t_ʦ+R"Sl>E_ț_lrBX#Ѿ i(dl"J~f6$?wY QU%[c4fdmbCh閍AIKJx1n*>71ړDle>%k>ywmkVB1X:zФ%A&[tĠ{%Poj&p 0[ґ7xc(6ݸ*ˮ&`H'm ]Ja )!` #jhF3W7ĈEj_))6a݆췔 ЭH@!)icܱ3,KF>>:.2ղ)imL篾.cn|c:>\8"$ڀpT]j ߫qb ߴH`8:70h|\*P9kƕ9Kq8x 5w=t6A846rᶻrFܢ{%MÍ ^@۸Zd9ྐྵegs(=Me(Ephk|'GS7~rC')wOs4PPr@|?7Tp$4ThD`uݾH>B"Զn`?+,!5r? ­;}V~~Mmym2i.RUerAL4K/KK7oRYcx`%%FnVPK +#Hg0Vu O7:|<̀Etfr6W}E3<^$hGk|٩/P|RlceE9]nnvoM/DLy?0c|8 a@t9VE[wh6]25~Yϧ5' ;24|̥ {3e_[?yt k]ႉ^D(}&؉Wbunj[^R=|2|dN]eX'Gf1:#m< 5]TXݛo_ﻬwfV@o4;OFJ AMB[')mPF6ѫ~ CJf0@4mL9PK 4}TXҷ@{O0JL#:g<חP&2{#'Qο^36!@@3eiTY{%ԊH33E:/"?6փ{uᕯ-!F1Ki9dMf6mӮ$|8^ h7f~}u"HS{\?g8F F;iq:&mF.Zs{)5WkU>]W|KD۽;:9K>M%ݣ}L]?KK_t*ɝ%SS7-ozavJܺ\C'm +C 5cNx?b"~!\;iHYFM./e/2%1=G?v"io< -AWsUa +m :9hE 襑hXkY..~=kM~_ϋ%oVoi+aֵVOV'Vm>.SmaN&&ϙMЗzT1iaaN;ji-Y~;7ȅ|(n3ao%†WܬűfO2DFg46FZaO RS^cK8s(<'8y&# c4 +mؙXt 9V?Aj/Gj oЍMiSI5XamɧJC,*֠5a{Ʊe45J"r4"7FbPUW!pbYw`K oHix <}G?JNtȽi)eX/m}˹"<P[=/zxXȈf?V aX !lXC.1lph[y\uniFFW )7X{7&}eSy6FF+Ѭɑ][~Wh T!3\$+s[6n{u3qk@F|Ʋ#8?n=hs"m6@!jRmiJ %LO cg"N0sƸEhC/vZج1~lD̙4m +jfYa_At&K^aQ4}.[9` +2A~C)m *gbk_,erSQmovTĚ=zf&kg6gwYghN{ ap4)v^Leb6ݩR봠C6nS"{y - +HZ@x,s$:!]D[ OmrlP*"P- fSf 8Uqvs&Og?%>r s&>b %JwKl|.W-BDPĹ9^~IGTsɆ7VZ#2Q NG.;\-&U)?hN?=șxT=XIN أ8TNo {C4.pWZ"CETPApkLtȡ +G]wpZN%Ք1ʳYmJbCj`4ç1o4=8T5Nآw6zS&~jSžO?E_sb1Q4gx^MA#p:^.1=N~Dn{>:|7D3_ 厗Y-N}'X|. TXr?#wPSyvORBYǝ4;zٛi67o&M?Yc\RlU_8rD$@Na.dxJP/Q?K9.Fs6~|؄QF el96{{sF%ꦍYwQV_Q=Vip䣗Nt/E'xNXLW.+:cur?txNnX):;4YbſE&l1>i~QcNRͤI3"Vc%a//:E} Ƅ}\6էz}|:RY+lcMOt2<tn/k*_< T:taB*bkVӃd"lM2%=6xtWAcGv˨\=֐ڐ){/#?+[nN;-:;u9my#Kc"J7I#NX=V>`>o~",buyPVMyJN kn'1‹z6qϠA +HVaxL^sY^SWu[1ON;4NisTw7̥! 2e^duHI`_ @s wY0mjݙ iDcDE]Kgn>|-i-5_\M¹p&r1ʫgXLd5]'gyL*gBڄ]318[ރʌ"%ehg3-@x K=~l"֋ֲR.&aw:^= +I}Y:-]쥬z/q$ACjgLcy*=NȑA JxGݽX4k$)m)s*oB!Dis?i +ףK/P{i1.4W,ؔ"6]%rQ +YH.3U̚;̲ ai Cڟ.⾬B&~cFpŗў6S-$$ +m=nv3n18 +$_u|Zt2i5F6E6ۂiGEhbNSB.{ӈ-@2 V262 6(c+`]71d C[#cM:D:2M,s:4[88SOp!`'7p\SMŲ98;%e)}v'%{+at}'xNg$-?>&.Ho|#AHapl'Lq!obxQtA@82U8u8'{7LӇD88V^]fevt+e9ҙϰ.j/vEw/wk)h}?迫^.8 u=Mn^ q^p2QHKKsB"vl!γ -;A RUl=j}0;sy3WYد*ӯmu&k* +hN<H;|""`zyU?! zʔѴ? rF5h@ z!0v |at'hr+!h`1}G6*HWU ;fFpen +Rk!qp-GtĔ32c&m 'klod[Jhni$lyDBv"pV?`HBj1,k}=Zclk r?o B&^ޞ7Nh_#1#WUQvk.mK0mt0: g`f4}vH؝?9;cd笵7̯'ỏ_z،0Z2Ƣ+;2̷; ]a6m|[f ~e^4ɮ+a)\ߛMe?m6&ۜ~ 9Q,tZ_Ρ=#]KmBSetDB>N(^)A@eO +@PHCU"zJtj3Τ.4e30d93G\5hcֳ18+ј@d} Lɋ ;N>u{4ylh'leA~.Q(Up3u3+N~#k:v~&k/~gJ$yji= @ϗKSzJXv36Sl"k~g]AJ8F׾Dnn[B4hi^o+\=6iKt5J&^0J_W"d,¶}.(z1*\U9vqfrk6DtBpu^{!I!87yz?@d% e҅zT+ +eJVYf+Qu{91 i'!08ɃpVHwu (e\+^͆YUr4Va` BL 4Yu"֣9i(Jp8()DŽ' <,Яpb>T,f[cJHVzad3a#ãk!Yp$Zw<~bRRԌN; +ӧhO `( J9π6W\2 +.VrqlmvUY˫Աj3uSPD^И^gW4#+_A*J4Y:6F*&$z>I?€†-nIrBM6 09qeKV3ksͥ+d9{`Ҏb q.y(c(})Bn8L.A!6#RƆƥv8#>DCɬ%R{alYYW8rGtC!Z +@"G5g6 +PE v[Ivf-/cxyzeLFR-DM0&[CyTKȽUr= 1@|mы!{2?S~|=ɨtw?-A.{̙si}\>IuD#8 ͓Ou%U^GuQ;~i>ܥKC4УÏX*ORJՇ!B(uX{*0tyӸwg0o[pŒk c{i6\˟Yw^;C%ԏ.|Mv1{^bU1-&;nkHLbJ>7IL`!1g&$&/3a5 $&a~1e4ߕ;]Lhpl S+5L 5L?J(UI`IՅ_"䋲~'ѧmq9\r58b>1b½&Q.h/&Nb /wC=fH3r;i9cKu5gͲh&01A2f~T$c(| Q?[9] Rɖ0)O .o (Q|(~bm WAaFV3ptq%"X;| w}n4L4~aOa꧷$9#V. b NMlOA/ io@BF,ۖe6!_-ș3CpHU X @n5-q +zQto\mqkKdPpNg~fCz #V~[*b2}aVpzzw5ꏯRӗɦ/5՘$M?-xӷºw[ԝk)s>[UM0}?.ClsQVb,j$_Q&-8Aڝe[eڍUHPs絸*EE Fb3#-tz#+G,uCjO,`16=j)Go2Jy,k.c#V{Gb]Ci&=b+dJ|T=#ֳ>(="lƢhu¢cHbf(K"v~ITpE]Oڊ~VQY MJe0`~:U(kHYf@mإ]:ܬ]I9U//f~p퓗xgR }j2٣0$ +DXag &O  pQ[<CAUs EW]Evڼa>î [ņު`֭u[YϜtqp=\":n Ԝ;l])x.0.e @$謪Rs΋Hm;=P{uȉyM*-t*cHk뿹U`>;fRSv ٚ8K'P&`pc>9,೴1?䰑 y%MN.*,OE 70jfO_u-$44!s*lA8nŰ, +Z_GF +\ ,Cš!*Eoh#> +^p{4yj;LV΂5VZ#o-@8i')5 +(k j.kP@̟2]@?Qqe +\s{]@?{wʄ6N Z-L*H!XB` #!1=Cu*3srdޓÜww&ǡ3m" A ~I %A_*`{={׆zj?kJhї۞Vzs>gE:-/ֱу0===x5zeofD?߈ZXC7M%ƫ孳n!6puJ>y#o0,] n7;;7'MaAMB7g>ֹTV"b7H%Vl!Fue!. em)KVLiAtfg9%c)D4&҅ԀTr<!AB9-vmm4K&zЍS0\"דŸC\9qWV y*Ѩn;HX٣=ݕ AcR(qD{:H DD8#ThWʂV$6*դwV֒8QU"8T=Ɓ5VMξCIqS KiP@S)io^_՜B].L *}_e}y?\gS)BLO$ѴMVJZ-8(wkrPJoO^/%~E!f!^&1Dj.uJgFJ-(zoJUtKQW}s8?^~%ҷ,IARUvJ}sw.Ш1 +~}>mg-8帰kx&%9Ӭ)$l姴Җ:dWV-((aBeq<T,ϽT \Hג@*J9BN,qA>cG&MMsK'p'936öqk ىLVp jtE@E>sfZHlNSms,6Yx8{qN r)n@pT! nhAKl08l!FRD}j>mb_A #zB2lhkM*F9 CEZjP{*g B/%oarMtuLFћҵDZB D~hs Dg,Qж:>dF"m08xA`/@/B|p8ծ"fq=},eT!s& -VAⓨ;Pڳ!'1){Mw( U$߇a=}W,]ksZY^VKUV޻j,+бghd\n-ώLFM‚FXw/F/$nB#ь(3E?#( +5{4*̇w?cnuD@̧毹Ifa>|cs KI]L`<@pgw?\5ḑ0FKyX`Ѱ6392wn[V;63WimE0;?}E fa T a*Zߋ^X0|VHrYy?$1poLL1dB٦/Ź\$"8~ ?ol}*#Oi;32r+R/?9;]|i\AyCףEYmf <`dؼUu9uqɝ%U-tU^wUxi?4`Of`?4KෆFH\0Hvt Q]$ew|3ܺzVeF7EA} ܍*5li?4chHw9W3kO▩;_ ~hW|$y/D)5ܳ[=?%g[י;n-r:i64bp]04܁:FL!li4ūZmp|~8eLmɨ9DZ}lyrx7-??7?s"xz`kUF0OxZ{xo{M] F/!4gx?w {S4݊;#hrӚHZ՚}`~,+;[g]ں[age$geVf$^_ŖnTn0,йfq~#rk]RBfŲ/';Fɗ7 \ )rY봃;j LJ}<@YqxdLz+pw"P? g<ZiΕK),h 'swAdJwՅSھ@|ײE/6*:Qí$^.:&H-gd8ʡFτhL(?В'_+;*ΰĠMBSZ hL gZrN.4ZU/ կ R/1H}l](a JJ%&XQ-.KCFOgȘ`]cVkPQ³ak!껮8 w"M#Y/FTPح#ML}5m3HT) U2&m!R]RK +{%[)}In>v\7e*^DnnkP]Z^D~qPKmKL \^4)TSբPL9fdh:@,av8D,)d噩Sn ؠ˲K9cW/#R1Bв̶*|3xX[Hs!aѝEpP{_:Dm#pC8LRSKZvM ~ڔ8dw*Y~p\>>g@U2E|Q]_$"f/E5yKRI(GxǷ֛$X.}W9= mlZQ?H@Ǚ -"ڤ.v siR"}zѓ?Z'{=~K^SXb"+vʼn1DeY{!Fг ۗ&.Asnޙ{3ݚP*'wlm0: cѦy1ԗOVվ ;p_Ю{1 +cq!fI`Pڃ ^"D8|6ӭC ݩnT 3w_ i)EU("( #qY^4$`(I~$б1K&m/ + S2~@Q -2fGd<. ^G*pUn*2re`-cP+`Zoq=Wr*KV,8=M* s-.~, u櫍f0)LU4B؜5M302n5vjaB Oـm<> +QS6veﵿ̯(wXS?ɲ:r[M791A%oW}8bMI1ic͗Tv*Mhڪ6+AHq7k>%Ħ}Ceؠ)zdO'R<6uqJ>dVLJ<$N&Z:D%&E͖h) #=q~֖Jylo_*p( I6#S^ +R%HpL +0?nqlE R{/ x8L!Nn*GNjcY_ELͷZW"*Hg@R~]B#+:&Q_*Esay:93p>p21(ErUF +n3A #~ +ϾLc^Ӏ]-%25HmCU`3/#Eys3 1S 1a d u PON %2:7KZJu[|γr%.RsٞGєZŮe ]s5 +3s)zr=+ Y#V:#%@O`$+145UTFYYn1{,U-rfC*8 ^^5LMLv~*9,ABgFθ.-A9Z2FHA_1`F;rZ~+ht>I% \iSMK#f{ܤ=nRRleaզ5n! =ٺ/% άRs4VQ֪ɨ-oR +^?%[YrKV$Yޓl+ᒣ EVe: (AX%cn$<'(G# aSwu9ߕ9R+ӡbXlhޜ?/jЮ~vÖLjwi] mP '+5^bIK\eXxX 87hT}4Bil!Zx\RO +%Te%w` 3_GTGC$cQ]1Jכ{)\d=U,e ^ VYxc@=YI QM.sT%ɡzu2e,fBAm‘`z "`10TS +ȁR%/qK^g,a˹i8S {d6R $sQ'ģXV`L[?ey[`1mMsv}r[k-sU|H xB9yKV8%L7*$/aQ}1Ӷ6$dV@6" Tm%YkȦdsTeMPMiPT1GMդm8?RNd6Ja66'M=NP[TvͶ:ka(45ҾWYMIS@{lVz/_&j]s@j\̓PJzp'Ưӣъ11I(A F[Sە @aG +M/Rpi^&Iz%)&CI-t0ص|¦pYH`=DIXDfJG$9Y~T-r;T:^KRIfS«}&2)sL t;m-!DmBI>؉l,cUjwRT$è'4ī!K0z%9q(pKEoZĹ0>R`8yG%P>N:Vy=%c@X6pl`=C>0('>RO{i}8 C c㼕N~>J} l>t VAI7 vIyॗ#fK'O&yy|&Tn{.,Y p/I!Dd }Kq0`|O;<=7Tff?e.Ӽ~62wqIr1iΐ{yn4OgɂɈmb{GC#_G(Ʈn q貵ʤhd_̣!}к ɈFZg * s81džslAmN;b&pE=Dyd.N,5n)GJ=li6p ?T&'GVE$ѶѾLr,iܕQj +)rWվNQ3 o#=Ui +SdzP>q8|ݪ1Vϻ[OR7 bF0UVQ)+[II1*RUlpFDʪHGco&sޔ!?tEP-5J)MuG'eY2}+bz6\R5ƼQKLk/>6Z͓C^tuNB%i(|7[IysP=cÎ+*y폒P6SB"[A)! L۠7xAKWYZ!, ev@ȒA%@N}k$<>3!uO 3e:0W;]% +SF'W"Yh$߅TDji\*`#qTdؾwZ\!کNmU\HP*A/u?}{Ar` [ۈ[&Y +3Q͠MJ:3ƍz6 USv$sV~VG)Fo@QYAQݾJcZVz[|VV첡e?.^ӂ, +cIJЎ4OrZ"OS̪wR,,]|)Hz"%P3洼 "x1vIi%|cNN=WEkg +;1<s57oM~pL{xnp?HkHW^t C:=IO؃|49K(i/-{[ Z^ZneX'e_/k]v1 ]w*쿝&t/6 ȿ ]F4: >(.bGܰ* ٷp~y `X (yڼU[I>.-2phmQogiTvł,֩fFਠE${fLo8j Bף'*=K`4*.E6MuЂGngMOZ=|WQb +|7Ŝ i''$-6g1L$=8>z +k27t=sĊ fLFˑGr_>6ǗS#r|YZ;~,_<_ fhWͳ==Ǘ<{|g/|۬<9ER<_$~5N湌_Z5b ӂyR04Rӏ[ LO=)Iurc[T}cx;!kEs9 !3o'7(Ju>+w4W%Iϕ56s HyUBo1GĶ* q\Ii_sZh0_ ʡ44cz^d᥄T@ +*";\ZCY/E:8VLƦr)vJfxAn%z .7OS*}Q"J(t='ш-(HIM7>MibLS9t|aU\o7])dPVU˕L7M,q +囹QuXrW R,v4:i7ʳi0FM[:~d,={;wtWEI}!ꥄ^JPF%kabˇHnioѩLSAoֹR=MC'H%K t,*OSR%W֦57inJU*62,hi:M uNi2꧉t,2oPZDpC-Y[F|滷2tdKP7"ATGKз'GI. hy=r;4YS'lRv.-vlˤoѤAѠP)N"^xQ*@lvz@؟dXar(9 !O0`%$hu ~ :/,Rz2IPCE éQ8@ERy +l\Nz6*?'6/ѐNFN5m@LfȞﻼ}9ֽh$_(${zThB\a*8B8"YXR^hqs" ΁2O|ن zq 5{Cs1(?+r37 ~Ur3:WD0\|ŷ$Alg~.LW:4)GlDP{(ͤ^8+z402-PNF6R~VؕK ʻ6#e&Y_o +ʷ3`aq?^0{V亀ƹ^,5^ݍ4*:!ڏ)䝩Ze2O1bOY_-fӬW +(`Ym4=Ztz77{wKΚ#o W&9{X-~[4~yms_*!3P< @Ħ|pRU_0D85zU!6O2XJdy6/H(|1>ńW/_mmű%_6j5w;xlEn"P6r Hw'|tN#r +8c ᷲU>HN$\`mP$ߔm#9WMj6!h +>_*V++TJѩĹ̷F; :b4X-116Ǝ"M&I'evuƔwuKR7ea'W:h*^ѸKC3T...\fKLmۭ>ߞkĬЉ +r2;0:¶APn V:e6_fsZ581a!dʘH1䉒 [`3q|63`a[BAn CqYɄ\ +p+|ŭ<эo脲X8l j<.{2w8La3etGg~ΧRMy'lzMe6Ez !V)-qT8)D6w%S<S)*&IQ.;߲GXQ#X s,Dxvֳ 0܋(9|<7_ctzy{qT=o"r#4O76n5Gv[@ƫD׸.iwn.GuoоJVV)kJN4Sh-MtWnaݛ+ugϚgT:*f+ {;]dEy.o:탻Khm{t +v=wȺcȺMe4V;3[ .Kz[zgDVR{*߉ѥit|~:AHM٠1<6]1ZKks\A5߸:Se6]eiUurm?T k<>4:fYCAmv6o +-2EobhIjN-v"6kYפ3 fwG?jVp42j?ё [G+`GԘ)ݤaO,XˁV]DgW$!μMRMVKBr,҃w[.fktTOi,IY$'dՈx>/cn*CtJZM<0˽T +0݊m;J휬9YsBuY9I :[Af3]VJ2L KO^ ~aRϒ7rH[l9Šb*W4<U{THo^ӃųsA~{V|GR8u0 Dd`tN@%{p>OVMkx<wt>vէd1(t2}$nD=^ړe +`2[7ϐq3C +>rCngJާ^mryV_|f(kb$hA^;CyEB[d ] gr [He y+f[>C֙v-ݥ?3~&Elv(q.:cfhfȢH ;Jl,6wn⻻1fR˟`.63dg>+ * {BHxX='֍Qi'λ^Jf5KT^R/UOس Ǟqu:J͹{`WEdPeJ::gFT[MrȔV6 Z-:5`Y*ͪ:ب-a5{hL+B΁BžB̀uȈ}=V|0:.=綇X7غ 3* K8Lxw,N͙\NKYH2:gS8ȱg짱f]w[u$6[]FT<* +Odzْ)ڦqO2P΢a;v3eƽA-P+٠3geD>|!*uMjÇ kUZOjn#+F.Wd#>8R}yT=>Ϗ#(@+-qJͪ$(Bcp`0 +p܈޼ް`*BoEm,a#~OOv~* 97A/w sl1υV* +4?&x8ꝟw0 *hcgCTIu 1e#Ca:w t+L1ۉ"MXr.ciE[m +Wv" gz%g|ƉA%G/hRK/φ#(DE+j_ p3dٽu֢HVwhӇ 7vk_Bx;˼x/AXתjidd5AT|~/_`!j'_UCOXȅ"Тɀ+$,+z?TҒ +?bc!-Li=f,keKcY rq5a[6\ 1rd8D/^ʕee{ܰfAU$)j2҉l1qy3oByL ֭DNsG]#|;ϙ,%LFsjī*^fb5 L +lԱe8>D],3|QI2'X]תgRayՓ])h+W'W:O[IzX\cbHaN>d%d$oiLGzz:ZNh}̆&uMhQoNTwT0\iOەF0ny8&,f\|l2>dz' ,5[va!Vn5EYXW$}YL0R]\BM$_-L`±Z-c +fXXlK)P+o!BZa4l鹶TI> +OA na 0{obrd I^14*rVVMaRoJ.~ *. +JT:0UQ67o#y7'4N3lFց ~>p!ϭ1q>~iYP] +Gh X%2z)8 XiNa5Hv]Dǘ(4KZNW$&>pY@Us>޶;A;ݨ}Mר^ѥ{,I}O]KRU~ dj~q+OpYh)ۺ96Ig vA?_sPabJ5'^QTdݺ:EVOk|i&MfYV-{Nce\me쨌+TVƥV0Yצ hB'U9$u+۷tT-pg U,JSUFb)*OXrb)m\;MfSN͗(wYU.+a/3hS^ZBqUNSL:(TL>[GD m-EdmSZzKbU)ʹPУ!Q7]Ɗm׳f剮2(Yp]wo(fLnZmn;-)Z{ЮIضYT=m49ɀqȳ%PnR6kA%L:T@T%HWoXuHqɣ@D'h.$hdGOaw㹥hݶR\i eFk h,/a*&4e:$dttءjӑݤ˷<_c)SaV-uFC?w{Ri檄f)}d] +oZxrF7KeCC ABl?W٪6iY>H#P˻ m]>_B 7"=mUb-ٲmQ͖֬MO:6)1ZQkҩhҔ-9g ʆ'ץnl`ݾjJn7-*c,nsT+#p%H;Ƒ6;@IwaKsV40A9bY%?g )N‰:bUM9,ȳJf9[T?ܜV,V.WJѫ]FZ*Dv͹NWÇƖJM[̼i 7xӸ57 EN_D |ls Z{c=,s }[Ud6@\f_ 9\ִs2a94(pZ!*VB+M.ީ!"/-%%td3ZnjT^a%s o1EbXE8IO9"Lj +g5%^Ȉd^Mݖ+W٠Ĕ;NJMYԚ((kC|ǔթh7^#KuS9bd luX/}Sir 1#R r۪#/_ݶD2@+p:)Je`9K"v oV.#,ТAV$s֖+jLm:dꨘR'_Þ +WҺcn5Z³\jЉTo&ɆR8c>NuQ?lE* +&Vf5~md 1cLP4L}֭믔܀>k~RkavEmͻu}&|km=GAz[~P[`Qt)1Ϻm#S™i'hzUe[O\E4aqU'܏ܿ;g4%(f])*]!2P-:AƦ;kZ'ޫ{Qs9|Ow bX[B,JLt+jBnk +oc|<.kW"uE>@'A!^YiPXT Xd@9 i܂Q4Ψ#v%bz1D(k$P%Ĩ- +Σo~_:0%j9,fe2mK)Eg' 4`] xGU'Ώ_>Y[V +f~ o6·GÏ{S 4vGFގ5,c'I˻Hvv1n=ZXhm%Q;NCyϪGnݍKkR%Xl)Y,tBƕyޢ +0G):4f{#eWr -SH3SDd9c)4dMx氛gOJUjτIu[Xz \g[ߖ⪏9vM<-|߬Tg[-UR)=Ҽ -ir[V㖜kTƕMф6V0$MS;0q]:Be&eP>AK IӛU͖DGX val2G)K\hu[潢>AmV,pR^˵9Xe4Qa˜Y:,f˗֡|iJ$U>1Sָ^Kw`WhU,WIRֲʫ'-6mBSÄ,Z ]̃w<%㖈1ٟxHVOnj$2xJe +aPJ3aG#LV3n1m4af±nͩGBh`8k'4HԥKB9aV +q!^ɛ-,9s=KZʡwƟ4l6[Mڦn[$iRBNKgnltJD(-%drrr1̿.^Ce23u蜫Vc%/RBb>6Ku1c6aIF?}9zc}<4JI͔d 4hr ֬#Y>r+ae>+qeisWghM'NK/ӕ! +mE\Yx]4yeq`W0&#qxsM ɘQOSɂJ@F+V/5[N^IvvJJ5_IBR'ץ{3I^++͔ؑ0Sd+6 + C4zX`E};elH +( !zi _8ZRmOF5C@o/ыC]h|?P !-*:r OnЙa 0V-)c78eZZ3I}Mh`r#nv dmc ,w4$& Il#|Zrk,Yp-xz|;l0i^28"e D#-R·.i, <,͎r'2Ȉ  ln^Dx; egjr+ uoٳ%Ssx1+@AJby;pm&UbUG'!4-GmGƪܣ3NV̿JRH'yWyN +-8A?$2PTf~ܵ׿xq6%`V1$=$zWbt*q" 0[z yXQ#5x44:F(a֭x<6TeNkOLXVB+u +^]`/FKՠ\JLVc7U+YXy̔,!\`@Uޔ)v[{Rd4VK͚-u[4ձl1e l[Qck%j^(E98 +wu/_fޚat98]#"S:i [UvXYJL]jlt +tc8UZmZvO%7"uN ^Y4_S0Yc Jw𕿚MpP"oPr> 6XΌ2wL%x#P3Ϋ3nB,PbPz)%?(*3U+ [ VbYB_8m1kRU*YWMTV1o adzTe44Dq +g=Gw)QxĩW-m"mfp+%ި&|y%)Aӝ[8i ︭XdƭwYB귉Ru@ ;l?^8CoE0$lNj,KzG܄eX2w3f)SwM#vanOl|uEsꎯ \c@TR (xKCiI۬QaBmj1l&f56[a' W`TK61H7uB^o#2b?% ǤfS6՟Pa7'T?3c-$Tq3@=E:~eo0ayuo)A%Pb0!WGQ"܃eԷ5%ַ'4][AEUYY:Y͒NmR&Kl֨e 9Uo!ShUklENn;[EKiڱҵuY.n)кFc`"^ek9!$OK $dGu_`96:?LC::JJIvY]B]ަ&Oc-seؾ4>O )\',·b8{L ,p_U⋈+NUYS]UGӢZl_`DW,tw"Bm1¯(8ʔ +ٿq3zf^ߪ|c[c!I?.{?o[)R:UBF1LaD91 ~$ji/EV Ij22l3QYz +PvX D{Q1Y_ҹKLJM!uFI{K:Tm.5$~gA?2Ƿ0'9%fFvDžܻcWmdڐg3uu89c:Lf~e |v߅ u|`'Lh*]!]R.Z٤pM,C,- +,½AГ|I6Mk""WTp#*f偉M=<ÄNW[vPOL  ȴ9rо'ySK 4F4_l^=Dd5w V{?< ߎ-4mX?>pV.OaY$?YCDC:1Ů +h(4qm~?DarGti'Aj ԙKC&.JBvۉ4G\qV3k;{NC{.fi$C5 W$g'2wfaD'U}>= }t/ C)afӡmݪ'=MرlUlQsb%!BmppڤT!\ڛ9w&֣:]+AjmYRvQ&VMl(vnzPP,с}Sns> Xd&q٪M`4eRģK~zc1ee?ZzZn~,!yM䡜܊Vb_GҮuD1\\E뮮]v~؟e֫TV]X{SDƓ[ G$ǚleFKa-s<.19Od,Mj?4)oN +Uv5)I,ɺ$l֙qƴE[ծTc}WiX5*ЪRm +)-=YR\  +j`v8j9UJZ=6՜FȥZt oV ESmMS1(NGd +ܙLs|$tX7a%1(@9Al @;$z31mpa9#jH98̓9rB9sǀ`,+ ,{7̩-8>78#ݑ,{# r fs`5Y8~ms VthN/i[Q^_uJP ³)znu!vYjV@_ʛUZZ ڒ|.U^jO+MB'SBeڳp @q.)\@ jlunV6M]6"$z:'sh|?5 pJQGI79 hQS+i99Z`aj?WQcYn~*b?* +b&se +<"qQG1c;/Jrt&?|B"XO01zBǔ,FF`.ȴ,gwI +_QK!qU ф󾊱+kЎ{yq*_#(6tp"x"x (\Wẞ, wgyI!< -vc;;O<~ +eN +-^*cG >Q@`zЈo{=2qVvgTվ\V=OH_k)g^ůS+~-O%~! PCcБ7=]m>7}o}0P`/Y3Co{>kh/Q l-.ܺRd`w3Z E.ɍċ Q"("LKp*@ť׆[oBmi4W1x$:דnrr2>wOn'ų"VEbN\a;Ch~"'"UfYHp՞ c渚L9"޸.(-\.)}i_ۃC"Yyy *3<Mb4pph~ſ5yЉТgF(> &;h2_uAi;[|z2f@_:NH}7_ LGjw+ ms7o'tlO.һ"[Ă=Ms1_A}so9M<ݢ݁Tw^O{ +v󎠭Hg|npdRp0۠{/?r+Ε6di{VRC߅? Ȼp̖zYu\s?O:`ӏoDJ.Zm;{jw[T<,w6yӺrHՙKxyr*+?w:Xw|"7HV$Q'Iɬ( xdlfdw1=u^hv0F3BsL֊ 쵮esoyao#|XhGϬ2q`fW Ln^aa"-Ӱ|Nqs04i1ψYpKE8>?޲xf$7ɝ=6Pt2usA. Ρ`kUH;}'gw1qo$0.vӞ pAOv:Դ7Rt->G,m`~(tnEu HKV%?re$g$`4A$^_Ň,֚DZ f72n +.k) Ueq_$uObY`e'Q!"}yYfƂi?KWglptR\Yޡ8+WS?Q%5)T`9FA/UEftj+|N}C.u"RN m `%Ge>g.2Ea5!۔ &N Cx2@P|h@P qf+ Rj73"!dZs!WZD71ĻLؚj)#!w]M'*z8v$B?p[3@:l~!TI* JhWR/S߯)pV:bnKͅ.<+Xgכ|!T% }6fa^5S4) +{S&D[5 15v ^8rEGpA15({JX5Q:AG|;A%6-F1hDp()o<"'5ҟ姆UІc.vb¹Yg< >U>䣝}ǭ;Arm+H|!8l(1r#'U+Jk޷ZͱY0R1\K%&'^g7sjdw߼پJX} q" ~r̆¾-6Kyk Cxӎ^ |EC{G9^1"YjJ HE`:68 0, +6G Y +;g$?IV50ɶs;}Yo#oNJh|Phi_==FdW 4/\F0^>xZاljdKfƕ9{*N ͜9r{i$<k4)/&PJ:ru ):c9) +X!>[ID|x9Qd|H"Mnv> +AkJ@C(Q=&U&QI!A~݊ɔ.-Mv\>96Zd 6DP6%#2S- +u_r6Xe[e# 6 +uE|w[Xw#KH[.԰ئ>&OSZq-p)TC?1wX } tٌ4aX越l\@vT6X$٠VlkX9-(N,5U%휙Gh K0VhgivV8ƖLօ(/Oj^s|0;\U+xU*,^s+UBXp;W안h5s& hUơQKrke֨Y԰7L5(HCœ IgYƤ(2̲Jc^ɉ>R{QR5B\&THbWoدHo&*/}!/Y,ł]NGLjM $K`EFkT-Z>n/s}pZ+n,q',V@ۇV,QΜ^HUm`,IQ g<{tl$b)l'Y*cHi|WpSP ybrPnQt:+gS7417:B@;Dn:rO9gֹy +/e=BA?;#^͑*F'ၼk`cJh~dDZPw o3#ؑb2^U+QPcxy236GV6ed9%9MMu4)F{DP㬅6uJGYЬ"DSV6In;ܺ&J>[Q#g]sCD,);(b5'M:}=\1KU/S!PeDIE|4, 7R\tEgeK\t&mb O /Dſ~OE]5gEDx1sh|s WZfTx$s-#(<=\g[gnO?R4tΏ߻ !@nijFBmj_cpzZɄ@ ~vs7C;}yUBrg낒ڝ}xWU:͟?psŷwλ*pCOXU,@$պjpJR֜rDiKۓ7 {bf-)B0>?4濁Yvq7}, &{͘3FH/+y}II$bHq"3BMԀ3{'O=Yfz os5 輧3_]?ܱو,mvO|Jg4uLлen;qK! ©UQb+R#i2D%HUg/zS-ʊoSʌJ0*'Q<>*,$z+⯿3DGVr3yF`n({#Mb#'ŷ~U0r|SCe;ny ÁR΋~y>uW> _y ($ =ĊLi8(I[ +k "$\*Kޯ +"J[PC#'txoB^Һ`p*)z VviFjS: r@zؿ,$b0uMwA\F}/ " KXDvӂEVcû]6C}"-KrMƭl )G {Ǥ4|K)[8U%EW9*a)![gXH-)&j ]$J*tnFiM EuSk@-&G+"2b/RVˣXx"*K#ѯ6NʖEek(*Kޙ5c46fBɯ>붱Tl,I7\bއaЬ> 3%,[rYXz4J}qOh SS޳u2~EXvy'òJ\e9Mޢ|;rpUJLwhmlsI:e)\lqdvي62rd+"s`bGfkDfoGf9EղZ/̖jVdvUjVȬo?^mcԯXS" + 42vidֆ%_gϿ_fm)m68gV[58ۧY(Yce[lv +"ۤ1!&ްx :5ě`=^В'3 +|FDõ% +6PȔYn6WZ@qC>nbOgFK[.]>$,4?Oҡ_7[\^4v}c̘3qMܝsG0szׅ 6,0i቟C\|Е9%])~l{:3mi{:L 0.lL/˔}njdsFPsY鴇tΠ1o6 zȤRpc-zPjNUQ/MG~V=E0uu_&> {~;P @|(\:/T'2Z\DTh=TU$SfQ|tE;[ ₢AhA6M> + Nd#mtVVB)О'ŷ,wUvQ {JiKL"u#E]sm2[ImV@ 齴lj2?Mu6ڣkܢU XuҫֺMr?|Z- kL 7_DLolf[d`bhc_:xbk?C#i:+4kH]j&oT_IY?(egWv wYwy Uob%x j=z]Y{r,7S;۽5fy҂S]V=tY*-^& Kܰ 5k-1Jy>4/8Y^Wno^NuW6Yvў$HGG36 <6alڔ+[c(\:oȡ˴#d@e|nP0]81_C)/DZ˵<ǭ[IG +,dl5/- z lٴƕEhD|uGɶDzlLRʡ];a ,[l U֘<t܆.+h7d%sTX"sBQx6ȼf5Ro[d,MK(U]Q;dnёȖq!k׈8[FjyE]jwmhDv^Y٩Zup,5s1~)-,HPyۓl9s丼h׃~tr)ƌ~6 .z0?A=C(0nh4n'*ra:)Bk5jKXb۾^uw Mx!'l(+aǀ1k)b﷨e2;#XsK=$1jLkTJOA&OQ$%@`T&&'jNNu1 [_` 0` < @=7e>*p?^ n]ϔ2SGF{0fM~.=yaYaA>S'_'>8`P uGʨQ 8*#-j]LgyYqr%ɍrsrZQ;2 A_Y 0feRR GJ}5 3ڲg!@8WOL)`ր +4(5CZ[" O>=Q(sVq &" &3ؽH[V#Z4Nҷce 1Tv|$v(軃2hrOb兯_r;nck糬 1qXb>8eMl}{>β&6{J7NLx~:ji< =,BZӳ`M5~pZTYyc ?>F3R+MW0?!>1od!>+|([ѳjU2*!-)]ka=k`OΞNTg*Dj [$v"fDn"i)Ь]@F#͆_.=4} kW`R@IHR @p!F3O.}&nsLܪ}NWKs(c#UߠS;)Dz*cnSQXwS@x +j1!)*f[PHj\F:ؘP-s-LH5Ξ,բm"d-lbi +FH vơS?. n`ZP&Ŕ) dh44pb$ $ƿ5P-/jH()wYR;YSFb=ZqWȟY(t^ŋ5k*f\kط""$bAst4'8M7H2kE +*oNR#d|n I0ŒcMU<=ҊP5E%:&$?Z sV8NDp{yȼ#1.!Lr@49QzC472AtpI(;|f+egI0%N{ATg!{@d>.DH#I%5@i)Y{BB̑6kZ)23|G0ew5xWVx3{LzgM$1/Z-\[+bp4n%Y7-M5F'&?gf#i[:>M +I@|%9wػ-yd@\,(bBU(s15}U +WWvaEءb=T6O y#wtߛk \\劑U{:W\k{㻛C<^aKR>b.کs1^%тr-Ff +,jwO䈵9G\1IsDzsSe+rṈ> lrA})}* 0rFl hF)t,ED]R-GlR\9jtiQD>5R$?aeoO\1z:VtiVuJ^OP;DI09ac [:7K6mG6f>b]Mre/ɈlKB˹89,>^fh=g2F_PA]7gC@V'9u&ZqcT'/WPddI90#v+"&s ++ E]ɖi dV1OYoa{˽ZlzqABAV\g>?^ͧ1z`%0Ϸz~T¾Fg-}7yf9TPpXr0w0ȿ0#d"':Dfɔg>K4_\fגj|~ѲrXOF, +dnVoZ 3n)΂}B.f HvD{ G׆|&}F%GI)N !%c Cŋ|!.uGp>bGCP!Y]=yȸYMVJb(g+ȓh3m֯ʤ87wϬ#΃R +E07wOL@kR%7ԞimvWB}(0kow?Z_Gø/ŅF]2=s _Pnd"`t^ ;4[ߔhDmD.۳v_* :_$kC3]\; ^7C4e8DfL`^/t?"Y 6pb:UUEx31p:&r +KUQ(>St_Ķ!Xme\/f.W =r9?\vM {`pD6Ԃ:Nߤ 9/>Be1f +~WZkBvLLm0pf-]SttEmNX`tґ̜Sk097`"Z6FB2d-G.k|92rc ^m$월$OI,]:BpѯK*[mMw]s^|]Y\r4%j:#SU^5`cCN¼ z #_y▦C<;P/UUa*]~&mJ<$o4g"Ob?/fO3 1ԼBly;09Vn :="XL[&DƂ7x\v  Q2> +X/`ȴ,}ۥTL):Z>AA /Tj0x5r5="QĻ U9g).R]l'f-vA/jιXퟐޞhusQ~ PԶtv<߹lpMۡ+j$}9|/3U=e9Vs{@q=2Es]R ՝GM?݄6&ܠݥ9aWOEU(^)nZzt_=ŗe;ICtU#Y)ͽ5;=Nlڗqꊪړ@"qGbGOU헤, oUվNJuK%.9xJͭ) J+<(zNeԫRw+uGLdBi]9C:@.RXty^ӬD>UMfA]NFa˶>uX#:Ch}‚F,(L_Oc?@?PPߒn\|\@ei_Z{A[;~ neahޓַXB{(jb:SUCKu90jG4d_R"\Jv5AU0uxe*R_¯]~@Zi@~RLjѶ˾ZZ +WP86)lT5 d}N4Z2cX:[liw0+\¦4[Ğ2(,Xj,zMw}l/з>e>*Tv[DB:gQ}nQ}뱨:Kr@6v6I{ YI6X9]K +%Vg!. kVv*Wq"6Qm+ Io#zjשEb:K)S1}0$n,[ V ɱmǫ:-8q=z,(];Bq MlS\_Rx)Df.U:@vMAA.\7̇E/d=ч,okcFt8( +s.݆D̸ƴab1E:WTN9}XAʘ4̮0d! )NN}+-cRx#5r="vzFz,R\_H }~PU܀ǓV}3֜|_wڴ^!3 +QWoI(cpCsa.؝xgLPk~=% Ӿ-TN 6{-FA/z=ǚ-fsJ<%C/ϤPj[}ޤ4[EDj3iNYfK8`9Ѻj#XNY#-)qc݌sCP~3?@! +&3?"UkfDߥ5Kf]@1/I +:^Npи(GiaχS:/N@yQxR2.>LrFpT߀9D'4Bҗ4ؤAzV1vB *$ +6a|@F|"IioU8 5c]g-u)_} +w9O,oME O,o'Z1{V) +WXQz,랆߈ۄw;&xл]6tNj/- 5_19nesMnkwJ6-&}+ěg~P#j/S_Jh-NUt:]bxZ@z&/zȰl3)O^$V ƒlgX!4[TtӬcƼў&fԩȺNA9G,M@|)|`(0G:~@Vk&0n?VdktKtm@8s E'գtDٌEJDiF(BbømszU")(IZHS[/ePc$6mt5%R@MSIDpEQ`*8w5E@ ] +g}L0|`8+v,A ׌Jy,GpOStphO>mo)}߭@_ +ܷN}[$^[v)g,,#n9\QMCļ4v4|*atײ]-Ԇ+(F=m,a)oXp"'x6 0ȿPzP3Z?>BĻH†W,.C0oM상ǚK.vz2"s޾Su2:20hUź7S|R1adiˋ8=6m5l8%d( ㇑bէ@ G0{"Sx[8~`>gOCn.f^K6vWXMPkZ&bZV0peM+lĴ: {]ִBGLeM+ĴJ(vVcxZoZƽô +t>}0&W{5|a\f`]20oXVv w6Q,.Bq/2&-L01^F"A4ZkdL%Bz+r\[g*u@.` +L7Pt7R۾GGpt UuuBc\mSDܙ`2G$LB( \b2hKSY4Bms$z +vT&,Ԉi05&\*҅8xrxpQ!o#ĝӼEmmPуlc5tj2CcSh4K %O.WqNRGH9e(tcЮkOcTi[<ӤMt0-a%#1adF)1 jis>eu!&iXq]!؅_/ %~6251^Q\)dlKmP':q j$- {|lj 0g\?e@Ԣ )2\)γrm_T&  +mo+%m +nI+;FB}$7A &Vlx(|4{ag8z4xku!x{ƇX/*OFմe /dBLN/0> /#-+]:]iqohSOŔܗg׎֝./Zs <={Ce{d?})6u~gCj lJA0ϺpRѲR9؛c|70*=N5T&!y쯋 -/\̺ =FLg(y911/Iˣ00접lՄALfb̡uaTTUIjR(pYNTl,Nc 9'593yLZcDK34EZNY)\c9k$ςx&E-'&h$๼NT0奝820Xc +%I7T3ۚêK͒pαVF29%<1x}"t6+⫻BcQS'B9 UhXji(L4ĎBG&-m.ŋT(JD_j" +)SX/",P#NAq1&?=HlxKvVtTi&17kIfN@ ֱqY Qb0Iim ӣqRmu^RJV 8`=EGlSxy62#(GfHG|)zu˨6"Cxl 04Bm+sAp]>AQo4D"-iME#sz=f> DD|5N cۥVžOФ8gExZ[QYY'qJvWB;ǙG_3=t(gQ:0Z|u UTa/*RUˡ|kL_U{m<W v%,aV{PjSVqc.I2\MZH4S ƟtXY$.^j7n|-0y4Y=v yt:j.{5?fjb}9E.5ۯAvT qPܜsVG%2thhnpElB{g-K6L7 Ea3f+x46.qČ|s(Ei} ? ̝^ 2{o3晋;f;3kOZ%caJ'1Y޺~j/Ͽ?v(iOZ5*{MNYx~65 s= +n_sٓ:L*xOu-׬>_?iEU@DGŏx^0R)n2j=.L&;Q:? ū%WfGܪQP!;09L3iGlAf|24JOjjDZc3j|/#iU/| Kdd2vK#g^㧍h7"k+qI} gh#("3;l}*Ü#B%~<\j1 +ʮ敧ύ{?HH0~Q?ߔ + Oɧ~s4oyZsy>i2 t>|ĝ<2?:yLCGèn7ekτkY|&kf[˰)PH OI.-Hq&d5+5ƵS'tgkx*yƨ2ES "V>cH!vC)nvHvr30k#yEJ dK0-ړXv1 +GT۪YZ(~ :~3>`r< >\̬FCşEIg^ěL1bGuo0hڼG#ڰa82m3̯7,t~+=2 +Ѭ[_e.Y],> s%a a LuAXPb680h7" ZPuz"W0$Vmd1M;.p>ړ?u7v)2~̻d_8ԵYCkr:kuǖ?$C^x.ru +=-dn࢏!1TIb5ǪjOF8`Kf tWkfjv8>?XόħyH& Ix΋Nj6r9?7?xuF`kUF0OxZ?:O +&"s\2Qe'zs +&NDȫO03$=A +낧 {ew2On/Eԧg v:ƥ?= +mc~}wzyuȖ.+4}Vp) 衍9pˡ4j ZP +CoMC/(V X[jzsY-8B#@&%ĭεך#g8ʎ?M[lLC$*FN8E>1e<-:f0ߡS<ġmAp k4$$٤$$5OۛBZ6ѺC>ا%^LvX&'35:v~k+=q]uoqThc;}E@XKE@2||=Ȣ5;5 X%(fnvi?Cr@`>_fR^Nz滄H&h#.[԰S 2xr +d9-W-Ri&JQPx"vJt:{IU;M.h-u5L%x1|K.EP^Q9'BS1s[]2)'`Xu8f.-[!ڠC䓯$e2}Pg >UF S Tr}gnZhATvuj;e/=Tq:<Lo-nhmAP,I9'gtx}{tq$Z]Pz~=Gaɭ9< .[h߼T59Ĝ8XL&zkq#bZa魫2"TpN5םvEj?4?D.RfR$4$2҄U Z>^րM ڨ +Mc \8[Mr&_I=f \PM-4NY{-/%ΝKb4%0XҸb>@"X֒v=–4,4j%pEˈ%bIgÒ~ !2R04~Q2lLNS>.ӜNp7aaixѨ1- )c:` jkL'cYU;alԢ: *1S#FV8RrJxOAuxqK/(e=u)ZݍkH;)L8|'bœy>EYZű(rWVT1hM{BqWGPYli8Ҽ5dtArQXJi턽FեK_^0yCLl%y*G t~@,!o]̵9o3Hq #2ƶ$~aO yS$6ޞغ5̽di=3@31`fs##^t=AOS8qWWc\.zZ#2}u/g;"-+v}.r9@p{s;?MǤt;:}t3Bw6]Xt_]2y/v2g2IuSB6br7!^T@TxY^m/s뽴T,Yg<+Fc[.Vsٞi4|;EeSC_t0۵5Fy_dU^rzӖv{3wݨ$.'ňo҉ƪOjJjd֗ʶhV@,E2CLL.%RzCɱ,0靽fOƤ`}9Eْ DZ)(SY ۔&ov^9lM@(l5TN{G; 0U2yר8JѤsNwRvڞ3T7k/ftrϽe4?Fʎ(\vٚםBu{Rv l0 p鴥9)ESw4T-ɂaˏyma Pv=E\m8Eɐg#Mjh(7_$4If /U!s]P%Z4ȳE`Y 8S/I_ќ_=3㚫4x(bQ^"a~AVt+5>GH7:|OVR?y/Petai$)/ b@ͯ_HRZ'LE?&g5˚7ԉ v22sSI*VV>Qt'D}QlG+͸^^,y\Lˋ]oerҝec\(| 4*2RDm;.+ IU*Ğ:p +|jz#{A-^<"VkcQ {Q} +LӔi$o@N!y\ +@P5EcD Ôjw\?$[{'sb;oRgW?{IbI"w?ndnf+>>w~cy<Y0;9IPt襱%9ii0qEJ+O'lZRPʏ4}=U=~p-fت3P^>NU''#2>8Y/saٰR+ŁcNr}1|qTDKz +>YOr'- Hk*,ӟ{(-3C߇ eH!:嬹Ü[!+> +#!&Vj)2:bqL8_Fw[^n삉tQ1]>"ɹt*jۡ*a\j +M^Ө6c"NxT6ͥ{9P\1+pl 0{=CwoaE0 +9)=$7+|9F#0s>qJ$zFuP55{K(l{] I +<'edaN6tUCQkO`;-gy')9V r>P{R҉ +zϓ 3.}i*"~"wa’S} q/I!Dd Mg_7 0[0'Ƴm*E6죫ox'wѻLOWƌ1?xL^bM<'濚)9&VW|404i}un &K־ +ڍ}A[PKv1G>Oy ːܙcu 9cu96^ +$^ȱ6-*: -:x]Wu#Qy@1;뎴FFRrxQjn"ЇMCS/˺ʈiF%75`L ˲d_d~ޢ [NUf@5,eKfP{[BV\ m3[SV'?[G$U S{ZrI FG)Q[#5XygicTK~Kq>{XR[I_r{UbFXjP|'5!بH+VjR01$ +J/D5?;Dϳ1[W aFӬ6Eji}M+3/m3SIKe3͛` u$t@Ҽ7,xI=R}n@]m\ 4sv-)49+RK :'] +XtJWDиuxJeN[lH s(p86xMХ5: +)3KQp{ XbRyLyd*%ҷhZq:w55wSaV~Aڞh-\_Ub 59tɝ7xߤ׻@J^ R%‘G:@TdY|0~uZꁖLz}Uq P,!MJ=^MV{!|ȥp9$YDX_OznlD;ք1 DHɊc?9;9I63bU|NŶY\1xPzDWMaX$da,hGdI0 Ƙ;/a@ )GM̋.5/ꤺ$m͋N5/6=Eۚnk^tm65/2蔱.ݰ.ޖk _MEOh~Rd_/.UK*Rd`j-e-&WHX~#_${n\/"HJU- yYmY-nјĊ?iEUL#u2/UMn 6`&RtNu[-֑znTHV.S_$E_뱯4Mv<6u'l.‡Piq4h~?X6{)b/3/]1/JhU"Sv"z}Sϕek.s]P-muxNzR*^$T U•*2pJk%\?bfό k 驹{Ku?'j\]1+y2WR6(ZF` O-Jٔ6Dmnnvp>9seЄ<Y9y"y^jK/O%?'4 O +VKo$O͂<Y+4!y2$ݘх%VN V!N4XϘ=ధa!Ǥc\ۤVzOV:}U-=9U[Ҩlla #A_gF8i%?={ٳ\z<[4mH?i+l܂n2!6|#zb6)/f ֙s'LM]9KF[XTG:){Y!]%nj\_W&ΝK44f-ۣUm4TEkYƕ6LU6U96e:]V{MٛarG>Bl+`YZ+SVk)^SJĂ!@w;w4Ssi⩏K#OLSպ739MJIGN?&zH>a'ސn:02إ +^}$6qyhӜƘf@~`YތCv=ơy+֗N{Kd䄦!<ēVFi[ r_﷧zT5So'V1Z knୟwxyl*~jm*[|WlqocI-`1jw!9NIVӒj3);l-&oo+ȘasP]-q2lk <\ pV?(C[Y7ȲGƆ@rH@Yw )EVn +p)ms֑1=ՠb*mTX*餂+v-M&lT0CSʹffsYOqpsmf pPe%Z.^l>nsr+!)5:9DW(< 5ClM0%WcFq*{tTifydg#OozYMڲȿ[ 8r1ag GPvB.n^5V3gs\_UBƊ0Hb8M)hi%Ms6EoD5٤Im.\$&9$ + B'8%m3 Sag;`vuiB6!y{JiTJ{5<4a&(kQ_rqq# D46^V :Mck|Α9lÎz#hxosd{qלxȗF1quYmNSN8sL_d14G9Zd}ǩγ?;tfB\2,khL')Xߐ.q+'few汫3s͗wZYO ۙG9MH]yF5q iYK Q:8 FƨR8Y 5w,8ЈpOR>wEYcy(RriZrQJ9Q^"^t^ +E N0^(vXBÅl +uTHVs"YˊtuwTnzWkH"78S?DY*"?b +H{Uf3YAo(U39 FVSG!Y(`yՆ1< + o]NtmBzvxWEIm!꩔JQ$+vykVBٓI}tfvإC-TAwX)NRŒX%FPT?㮙TfڌZa?Mk扭WYnw Bp2 +Er&;ݶVۤMj´6RIS:DZ"<3*kkn?s*k-ǚ*S:-nb&eTiurgR.:Z>Eg .5g)@WsqBlB7`RKU+b SI[4Έg6H7 |ӫ3=ƱPr>S(ӄ1 +y[(0_hƸ4Mg@ShŅa=8couZoGy +& /nyE5?C~ٍPCyG[GϠ1-<8=:an!0[׭;RO-F+T xOx!JK/h$ qgL3.')VŮc3Q|bmKC>5ljm{˧hʧvˤO)YyY#HcW1e^tBɣ"$':h\7+䕫 GiwwS|b Ss͡=$lU*Q+*}btEIOSϚS7lo4jo4İjԞ75fUO܊D2&"]&Et-s`O2'Xʧz&ޗupke=5%Eۣv(%WUK Ș_C\:F|#Ht:""RT5j07 )ZAهPy:iPS6T 6zp~#-5(-UͬpyWN|P?k_xLŶׯ 9@g&ѨBgjst|e䊟f)Vg%-CqGuUP^1ɿ[!u|+ӜWYBY#<>3kCB>d06H ilWg/ӏR +.NdI؁@{N1#G00VZX+q´kyhּ3W&f;(EYkih T/LS#9ҿ(O.F>}xdT)^BhSnEk[rwwx_|Qw$+xT|!$;3:T@j~ITO5Q,*Q8ZU#pXb&L3Vv[5{Iܳ,C+(P{:ӳ2d6[:2OX9o<~ث#6Wy2˜TH, 'HiWt'1X;bGFu7XWkQuZn=4 +3j6gEݔXour3)Ҝ&F5"T]V,3CZuL۸ME۪x(i(靍;kZ$,UAc m3)'Hsmi Lm-7Nԍ⺟~DcJ30> +P& ~U3GyPwrs +)Mo3h9zLCzn'~De=V""UɰucTA#!hRzZR/STSv/m]8:fíFÊQ{*Nء2N1zS':UQްuҲpCV 2RefՍGu/4f<^"9T"8PDʰ_̰dPd7\ cKorx,p2G?~sAUZ5mҔEy#ǞsfujOtY]ƬV<*! +p@d%ٕ#ڭqOҗ.XQ;h;d7b6wtY%^m/QsT0.67aRkz-ȋ5i2!lϊl˕–r#k'R +s'hhZo4;pU'AyICg&֢PEFx2[ww i5/b;o_0L;oY椲@3oCY/e4E|^2*hn\ 4ɗAM#x`һG !^00]7E$N: 5fx&ËZ~<!}z,ROԽ^7Z7Hc}4ZGE6{iT2@>͟ +W[rع&/Y)ˣ$ l,~SM"i#wQn#ּX.C0:Y#o=al J֠mN>""FimYB-.gL1k +˝()iwRN7hm>]& +f+/RZIKp2e5p!z6YaVG}?S R5ɵ8*[ H?(PۆFG[z'Ē|2=q4{_e:FRW?77CL'tkta U( N_|leI/*~8 D{? Yk?at?p7h,;{oeFyx^b_t)>ޣ!MUˆ\m1" Ka|~u~h4^=8へU3ԐMi^Zg8|/U#@cSTridP:>yH?J&&] +Ci:3`37+Ͳ&rW4bͤ)bS7(el3T=9Ӌ^`J|QYX<w0&^,j[CVnlv?l\Q=F'{ݨ1UR1:6Mޔy Ѧ@& vTԪ]++`W\c\fֻv)3 +SvK0]4)וU*w\Zo\ ;e\K7''pYh;{bq ;G~&ș֪1[W_\gyt&0#ooLvb[_e@m[8yaSWs Rg =9ARF6) vmp4{Dt(I.{с>V@?[["*v<ıDtJD'㊓4Ք=^M٣nf#o (r'[RZK{[SإwUG̩OIl!@J+?WW<)*ܮŦ(׺Dd(zӡ1N- +M-$ V7[i%cs #gv3EΓ + V׽@}vu;ؔؾS]7`6V|Dڕ2`,ӵ+![epg6VTM 9sRLGp|+gk̐;i۔y-`RMkS^˚RRNVtMVtL@YR,טǍZ1ˇz9ev[@6̿@:,?ڰ坓sk)U𥔋Gk@J,t@YFLT@"5xE4Dd{P0/]aڔ0mLm:[K4pfmP0!$P`e/{M7'{0*x(׷kz"e#UӖϣv W9de)#i{G\/\-*s+o~6./|qdEob6pXp%[z96iUӲMF,Z-ը5/&Vx0$bDg^V և}o*缹)9R1,y me}XGr[QTs,o%DY`QP{x2;u 3w +s%?/B$4昞.P9 <\.gW?_\`!*)b6/hvHD:O8NBBd͏ wʟݘp^,9MVjp"7y$N;Qu\ ˼eZG/IYB6*0lJA'^kF~[ !u^swx@P,# SJ~§SF38#wץIK9'(6uH !i0}Rf+@,3uhk`3m p Կ[:?ݝZ8e{OQ_ZWw=jRFȺa *?> ~ApnYGs"uLnX9>lpw)w<?NUeO%1ad_,||`YHΒmOGXr {5q'Q+gl햠%v`ʧAHrAb̺K-*Vٔ‰;V`qԊا 3Qp$+r)[ JJ2'~XPiӸҨYf9Qs3MQ5+>f\Tລ`>O}Z]J#ky:FMߔBO(H; +ut'-ٸM*ǜ %Q" +D6e:^ţ{ a˲7\WÖnop,-AW0  .ekK(_73QipX>>iMmV,;̮V4ȹŷ:W4eSQJץrru("ݵKUfB2[*p~z²%0ebw4)MjxɦWsYkmȕJ MYK62A$2x 9^ J's@ +j]cx=j3F-qe >:A6V",eYR!B[7[_cN'HKw|QPyx6l&*Q쩔оBY~G('Ce3I pl@tʉ6p@3U#o$>M9kN. +^ltpF`1|EdJZY'E+٤!#9(88}{ + iIɰu]` 9$B\k#W $uH<æy20y"R3?~mvЅ$I婕O45\8BHL+ri0IC (L쇽qaMEU_,|(7=GFsiPUS^0$fT1CHSցȿK dO I8`ZX/Yg,̟JGbTơM{cgQ]W<ڎ1@XIXCI~uR>igT쁔%F8KFg6|:d ; 0.ڬr4фM!SþraĀЀ*8giz&r9析U + gYqu:Z 1NI!B<]؀u=o¸S΀Ph!/Up=N,ZK__ -%+{ ab{I*,8??P\_+/U(B^B|{xޚvr]nMPO.LrV=~_#α;͢|Kb :jx ly8nϦ,oԤeTvcR YRBUޥjfK*קq}LF̫(ޑ< 2ʃG`{y.*bC#@ >iv_#A6G ͲnF.%C5YI6*}W68O?rUaK J,3yTfJ`֦kxgmH,ڮ+i$: v4؎kqZ9+W[3w('۞֠Ve_ie_e#7&s!w,~2)Tp3 +CvBB_Gz,k]Ɇ"waZ_R+_z#n';WPRa5v"Rǘ<;ㇹ{TDhrZ7}'J8mB^!{F2ViNV÷QRȗ\ ]l!ze㱡#4e]V7Vf<2!k>{aKY,>8LGyX +@\ô߹pU? Ge.ൽ_r &*"#Hp1}p݋??C.łNǺQw㈰Go3<&&s/Kges0N' xa +%q%z*PIZqcKMB$Q&;BƮf4r9F:F !\H$Zb0 LNqQ4 <5%pگtCz;` "n!jN>[v'k@?IQ.7l6QU-(=07^ +Cd (X6%[ITb[꼖.y&Ltaъi?kzA!* t{aP+rXf29ѱ%]0P;WP^Yܡ/{qUiSV9)LKC4{`[F)%VYմ5vnQt< 3SNH^/>VcEJ9Y~'#fE[Z+cFG>,i %iyY%/EQwQɥsb51uf>bKlMnTnZLjn(6gl#R)WZ :^7 +t{DenT$Qp̝hwTZ"fvw+ff@͌yMJl4LJK^sl~+[iO)ڤR+Q=V*+麙v)(SwX99*lEYKSz +K~Ns3Rhf6֯kf1wP-%\a!#)ת#ڵ9ݕ3xwe&k2")) *-Ѩ2 io[;Ƹ*ylWGG%ז+֤g3hK{Zۑm\iO呴C};4Ȯ;6͕~Ql9zErv<&j꣮p ꚶz@;ɮ*v޻](xHGc+#m ,떗hv^r>.W@}VN&{!t*B5s'J9ּNmr;D`HFhuD"6w,Bj MB>ه!GJTX~JU_G`9L\U~}*;+6Nb1RV{)|X#u [i(b"ǃfdzCtO 6OAU c_%ħIZ dӯGTasd3B!1,MjF.06dVVX1|/7W.WiYi3)^"%CMb],uUVV3(yHalx KIu +9F;olevZ +,Q6gQF,ЃɴE+1rC8GGܰ< YȰ@TJ;[~P8ndV^SJ7)s +~:gy"+%R6oBgkp/hSL]J(~&weH׍l\6s%ޤt3|z=3+Q˅0GXlȶ޽`:'<Sr_Jx^cG-qlĽS.}$ZQlFA];jEFO>%8Q?X]w*n֒T +Fx`+R@n9U4 rcƟAQpCCb۬Qa]Jmj1tYKM.k1g%JcM #<:M}G(uEpwXHʐiYRB}t?_s(P㝘5D{{B2ʘvlY?#W{yZ>a _;x +T$ԽTs+'J]&2.P6KSvX&ekT I>GZfwVy͔X/ K)^%75B}6)]rH_9څ/?WڔWnּȅjϑiw3*\˩RBduvT֣s}FE;fvQU{%\=̧H5*JJ=RrsdUv* stuTB*+z +@)aq%ccdz[rTY$aSv$rJ%ت X;Gd}.ʎJīLx$n<&c{ElOݤo[_H<lcʣ^2류 r?NVaѾ.\S"%>`Ř>?o`ԅc:KQH0 I-\3%WSm\UVGJϺ{Q>4p)K׬4|(zcj?`HOi Z"Aיq܂UD`f=VJVJ=fњRjn5yK+'΍pw#V{IT\-d`;=UM%/ +cXΛF4V|/!댇iqJ +o-ֺ5 o \)[J% z/~6Kmj.>Kҿ +E~N;wY^]RvǩIV2JcL!"faIO1""ɶ%+cV;gQY!X y}b4>3dc]J(cp"Үjm&$A>fRwLwQM[$l~!EpDB8cl'f1wʱ΃Y;Ṇ/g [jh}S_vEtS)zqZNEp{eKq,$(wbEt0OaJ*ΈrYZ֖kbX'lK%dHY2.n&\;e"~YLFQ%H!4/ڋA1kk+g.Jjpw'"7< %83sX?u^!5~ / ɭ]u!{h߇|("SqX &FQiuihn6s) I33҉>XQ$; ~'rsG.[kag|h.~6\pe%p+rfv?`^x `Mq4!)kOm03,h^UJE(Ou㏿4ފ&n$c![9iLc6CC5۫{BMY1|UDlQR&1vJuŒ;>]3CqՐx2UfRfKoz c3ZgTNS1(#?`~̫21smst(8d5'B(9 T~15rlD(V7<1!g|,1mbkTy2Uf"7+S(\705Xj_4B\Ռ=8ZQ/)sr2Ukyyi7yNk4цn1v ߐa%Ev^SDkA~l,1{E -$ ^Gu:1n]@ݻ )y+d[WzYĉM+qy<ԧQN]S˪ivxe^^՜۾L;w[V⋘4Yw4[u-ةfþBZ7ҧE;G| V.wK!ezTZ|͏2[T C۬Y=ݶ>XJ}ʹ~&bݘ֧ۮSm)c+t +zЮN>-"װ-^u[fJ}pٌ˒Cy9vk71>!x#o > lsĈJHA!!Y.lmQab!J|mȺ \( ҰtiTvHT Opܘw*V5XEs8XIL|)& `^gڹ.#0n RQ-D㓈Q~k5fsDbE1 XY[^y\DJ%CQʓxDrQigRHGML: 6b;1 MhPX;'Aϱ&tQdTnRӓkLuUT#K wvǒ+csARFHH{wemBoMh{86;Ή?>3FըkXv +7Z ~ /:Y2Ş_'?hԑa>cE;`e–?"[kyT¬h֕:}G\B6_s&cf]mD ++ݖ VX +"\ $yL~Ny/ SӒ qi#ZEW[2gc(&CO{` 1F1o4C [4^%.=Ӝ`?~Kt⛧?Xpn%6d*W!tk9kEA%"_H-ͼ(܏h&ߥ?bX,WR&u&sՠpfЕ*'&iăy5wym2_Jn+2KjyC*t^v9LX^]XEDr8 ='#+䤳{!!KV_߰IjҙGMKˬ߿DN#,ܟllx|> +(+#u%Fh@Snĝo?⓫ނmnus+l<#CwV'ϡ~էw" !So[JJ7YU/\s'0݇sx3`CB~'# 9ȝ/?GRϒ\^ϑnh˵wƒ/Œ/4Z :xh fRn>]N @|uD|pҼ։W$ZOFQ=8~<>)95{Y_:|nyѺaq1 +"7ZqbDBL?mWom- eQ.Vϛ!@Urׅqh<(> ̓V~<+-42S~ .`[Tf7ARhi.`U]wEd1/^hmG̉GBM(j0Tf``4[@XXW;3rg ZF_G~FCoz#IjȒs~9[-U9ivnIQR |I1??:>jW~|JI '_#Xa +{ԳiLlH&d[:7lpYzJ__9td:Ι5э\ +ubOr<J{\-pd%#ػ׫"@%ee@@˞Ia̿E|G8 ԨZ 5ިEvH.x^]NZ=i*h^UT 4b8>)g:BweBV^ l.--2ZTq!f@QfT^'IXV?߁̹qr`'g!9Sq|JyQS;dx$;K'$j\O>KPWs,C/rI-LGd9o!9v4ĸAT YџxƐ,_ş9l>3q"k>š~,k\-Z9f=mbNXC +€sp9@Ä5$e.u Ouީd"A\{89jbھ h!hʴp;!%E1^ oD\$$k={ڈFl2B֓OiAFf6`efZs{l@h֒ dY6M"WXM9[CA6[F!A!JGhNsR d@JCa62K؎UM0x2$ 3G)rs.GY?VLԯJLV90aAߗݕeN \<-RO5J^4f"\Mzt5%bF҄~L~ae  +=$F]$#nYO$Q+CQ_He}H"ff"K([DKR/:="Q;{*Qp3ŴK uv9U_e0@}_  kZ`M$ ʉghRfmV/mֺmpwA +I5Z҅(,-ɉ#iϷhY6(w25<73BΗ(Y{\QH\q}9Ͽ*;_+G΃<<2uK%^ BFCkFGF-[N&]gF樉EIct_lH_J#&6K X@u1YùaOq;;xvgC/"栿Y}/C/$梑\5W҈.JNQ942/p/9ngVu9 :7ϕ4PQ\+Yt\2IkA\LԈ ŒW'?= m_B*SKJNd"a@YR/!Uٌwy]l_m$*'&`^s)<pbRh2d0L*AvE~mY 1̀1Ch%D[&mٺa`%cɝrBoyþSH{]FLypThcx%Oƒok=S,]i֭DEr2 M8D4F|nm]ZQ˝Hx!ku%?[W|#${ЄB(b츹c`:DY- x +ӱSՃo[eW]eofA(rzyΗnF׳'<7*-vFf&jx_?ޭ xcV:Ӌ{jӽ6ߥʁUm{8IX*#\Sp6`ꮡO%IEeO:oĹĹ5y]]3ܚC֭^O6ǹ?_s[a#^X:0ׇx?\+'_0>@s[b!;#OtӵȒo#?짷/oR0Oe +Bd՘҈ǖWy($- 1)8Dķ'4'/ [e~0f&-̈́%j>2JڒDvt^hoAo7|/Z*kul9]`~Je7⋶<%gEzW''̄zt,y(<K~ZBqo,C{rp,YOqOEp+uVQ +e?kmvMCZgϐ++.yU-6~6`6+`lyA[>m#r>@f)Dů^qA8 ..;m[o7U/p"W@I`mćfJדVJYq?}j\mQ+ƛ ç@liJ4kpd]Te4Z7V1'LnUQ6Y.w&H)G)8Nŗ$X'Ax!sbꄜJk*QqZR5"ij< g]ff4nR7;ᕕ&6kЙ6;ӂ 0)Kgx^|slQ`c#B5|g;5S^1UR}]nReqNh$@{VرJm⠈tJc&QY">Nqٸ@i4;$^ny{fy*q)ϼ$KY2Pͼp˸s+r08N`xFuQHN/\ϊO59?FX|3­x.-"VM9{T k=SMOXٲftl[Bߛ].LVC4%W2ETVԻmc,| "Z6bF6JAK~TvWE%1j6-qǿB9Laaq + ̱h@ +T'0Th9O瓗G8XO-#Vl/``[ ?ul*r$9{pte!r 9Z'KMgI rEn-,/ R*]X<~{s,q>#guOH8Agaϟ'1KyS + h@Z^ _dѷOķz浰!G{Z nK~;>FZa3hl^ǃ;U<_z}Fx뽼[u8WL $i!i)#?!\L>Z(;@DSy`ڼX{G>ymhvkP'l11#líJ^kwFJ^,G`m|rzՖr=3]M.Hk,dr.g(ܽkPmfF.k}LJ~hzk+ĭ&F0b\{7zrssed&,[v@D[|s4 %Mx9|L@١FLbGsMS+wg&UMɺs'TeD"=̀lW~ %^u@{]ފj)|ɥ97X5CЧ#8n=Hیjdf{6S_%qAz@"})t/ISYM2+zBp0g} @5!br_c{`M߁ @|qןt{1lPw^Eo覯J3Ih l_$m>J6ks&dG^;S:ʷgsaEUV{*:ȷYIy4SD.+'}g}N]v8@ג|urdW_H7ΑUQhs49dt5#u4_~$C$-n.SЧ,:MsVm~\y'utF}nQuTCH'Y;=on4Hves2/t/ʚ(Ij\WQ'sb+|eKue刺C-:x1=yѥxݥf> 5f'|"I4'7Oaە'b(Oey,T 햣~H$QS6tHwȎ*O+w `57~^3OnRz,%(wQ6E5ɣw 6OS*T3[Q+TRc'˘ns`vh`1%妔̭Na~ǭsu=Ց'ҡ]d;HkD?7̳s O5ˏNsHS#x6τ.a,=snG:w#psGg@I;NJ U"LtA8K,Ǖ9hW@|{ѹ9-8ml(I"j8gD33{@Z•쇀6n [e٦'4~G) x VKʃUwnqP&#VإN.+J91@sW{RA7 KΗsTM^X-'=D~G`T7S?tC3T|r*ّC#oFN5o]$< //YgxTf̦n*U_g0 +l}skNw1<8rn(@^r8y<žRw}/uՀcRio(**SPL.b՘5^Ǥ8g֙EZq6Dvj@2vhYag(; ȴF /jLjlPK< #.m $>"~i6<֡ +KԸgiV)&%&x5 +#'ӺHCM~M43*D~-"R8iQ2htws?u_f-^kk{m^Ke\kF8kLf1>ʵ8*t=3 w@qT{]gBT\KߎC!εG9k[1cv,lN3O 4sŗBg`bՍ=-"}0M135^w}/dǍ EGBI2_g,̿Dy3ߥoLaеٖ37h< +y ʚ54mۚ)&S7jGp'mtGJf8f-:Uݖ׾:p"23KS원iwA@  +D~;r$ +koݤ$+'s!ϬHknWt~$Җ`3T2$ b* > v L ѴeXηRa5$$ ^+2&]mκGXpa4x#(X8yיB +m:M:Ca7/cu zyp%!bG[L^#e1ߍ`zӶv *2 AG;DaNE oQ ]Ztw+Pmi9ZVC\mRtMVc D`V: ֆw?Y +337ԯmtYє[kq#Cdr8zV䪱٨[ȡ*:g,'s:o #ڒx^[%^2zj8eS+{Yc#k(UE3Z%"7PL/6~yO̮86#2?lSO6oۈ3{#WSW3 oii~N?9~MC}H umcW G PRm2Z |)O^o7Y(qՇF&aq<fPm!w}%zlhQF8 xAZ1O܄b6V趷@L؊1 Ĝ*+P۩V0Ϭ-׳&t +WF@19*PxBO/ɯ'{}HTY)~voclsVɅ/)PbZc|#@BbX?|LjdbLtV59 bJ#.b{41j#c6/s i_5\i4YMb|0 ĕpڥEU;-_m6S~ʠ?#_trƘkБ.XKvj ۲䲋1u_qş~( C!mNMv竟MEmw,~.k;̲W +.9c`G?Yg!/"c7=@{ Z󗴕{Ede(G>K 4gKv2xcWHloi v/"JlW eMZkЭgp+`K1YV>DI S{,5YNG/ɬZnTVRxkY ; FRܫ0A:z74:A[ll¡>53+d ד F|_KčYL$!ŒS`,xBBgbX'L3J~ vt@9(qą>e7g#RvDHvuxL"}6ɻLUl$St=Lo:0GCwF +( X^;l#{?UI89䈀CON~{Pk}/QWG)[Q>ne@(6c|DQRd֧a-aINA^)I.藰Ɓ+>d"}j1^! V}( Ǽ댁;l|Zax`1Avha{A к3_# ½YmVGPusy,7E# U] k$o_Ji)e~l{gC%ǜ̾) t%kƷ\wLɂZ{6ӿԟUd5\uy:c$ Fa86RDs 0Ͳ&G/34憽XDyIE}kjǖW%2v&ڿm4۔fA^&.Iد0G=16\;˸R*r ːaJA:x$!4(i X `r6pU,^Jyǩ4'ҵH2~`7#欠$+@tTF{TtŒKvEQ$0YI=g@fm}@Z2kf s V-ꛮf *ks gSo _d\1A$7S!6]!~P\~C)}}Z*I'T0B;χHC] + |(}ъFo!8L(4xĺ1.G6* 1 ݇ܢH +č IoXT##ckƌ^G&TmbEc|u{e%6\́+ EN*8(|̗=|O0*sD'.KWP!$j*V-Ve^n_Xh4:^8 \x~"'$%+V=}!\ϐs7;BQ+c"~UJq9o/U"P/;fΑYZPجCQ|=LYӤŀ+tJwUlIǗ~JSoiTv2^Ad+K:yZv_O06)G3oLaܾ& !$ڕ[!Rv)mBv+WH6qŧM*,m8O5cДY ;0?WIC&Xxh+t'MQػQE +6"ߢ26+*r ۳sO@q \Sk2~Y\W{^a"~2eܥW:̑6,˺QܠZ Cns`T@8!&+.snJ`$ W@>,, 9pgT_4Ƥcڹx,LH/󏖉PۘGMpЭ@RZqy,}/#l#ug0?p:V NQ.-"2d8* +؇s2Yo%NvDkIgyˣ`>h⽬YNZKJY٠ӶtҢLV>^;q^Ý2ا B[N)L6 t3eVl׽ +@Ժa¥0] +lZ4p&dU6KCV9Avˁ @%BȪ^;.tR&ʩ8^vJ~)ܰ 1]['>kNfd +Pl -gy5|̰f ⚏ŠM/cOc?mÜaSG8 '7ΎsV0mC[dn[Às72,Q:<0 ^e_H1fsc"E1cl6tuƈ76`:׊߅d_sCDyC- دn߭Iπ!vf`ynvXXbدv<ԣa_(n[s&K9 Bs*4m Y wɷa-&\埛w6m"Ȯw+ l؜RѤAl1ýagAu=u&djm5t2l +;TE[aEkՇ>Kd1YB!=qnE +B I^Ib,C89W-AZ_mzh'}T2y(0u@ l^/(0Io;#,1[ea@T:\}Gec[>'9'Ӑd +L=D֔8>Ԁ bNQoFҫh)1&ZM]xp"إn (jt 4B(eXV&./wʺ?p7T0)9Qq +_f00wlt.ݍ$&Vc@a%h8 񐓺u/U Q}lh'xțɲ#m~Gbƶvzɭ>p;c5C{Rn3nn%0"BUC5?JYaMekO4;ecD;ԈX ělG}LE` { #XF +#:juT X"q?C߭N^:1{){&p ^#K뗠-uPzc.{z Qpc.ĝ:  ^k/3 oq? X]׾.U~7a|Q"[5pK c4̾Ɔ lI S{UlU[Vc5r14wqƹpԢeXB% uōBΐy' V]Eeܺ+8b__ ǕKHo" 2g33F ۸5Qe O4rQ❈aOPw)3($i{#8.n<E{;&{@ڣzMf,\e*}6$I.:cb g0fYe11:}51i{R11R|dc'8Wx_Wl4Jm|Ɔ@k ugMDL) h:y(qlM (jn*i~0 48Wz4(M +Kq> Eҝb!*6Q Ds7RG-eI +%f!a",u/` jxh> BYCulq@CoETT)^cB+ifka#'AMI +} +EK=lhk%k;OڅUY~l~.tD]0F^r*R/Е2E+ +F@Brrz8".v?<-q;ы7߉frЙ$֫}OsX;I g ?@|X]*"w!IsSfz}:¥מyT|nM0~_5η8}a!1-JMFA[=wk˚GJY*Vۙ~ /N5@X[.F6o#dyHn5"-(x Ưa~[o̐d`pVyNFz h52A@z8͵d1SNY9ۈ0@{QϪN~9w7#1oy2ugIFN㟻ɳi5\0 +2p*4rzH|K3Aˡp=ؼԚyѨCIA*PwK椿yP%Q3@%GV'|ߡ1"'đCdzFQ/-|Wg1f .MNp m4tE)^>o-;\x:F<醜jI87< !<R}CqOo>&/^ȩX﹈xQOZ|uuK ĉ7f{w]ZőELKkZb ~l݈Q*Wij,Sqf82$ʫC#g7BG"Io6Jg4#K\4Wy-ڲXz5c:T-|Jo*/)5W$Ƹ2h@-cs2Fȩ[@M׷%ǣ3wO_dHo|z[띳踹iJ*' 7J?o z;DNU53 +]Wf<ʹtbh":=s^~:Z~tm_׼<\3P55ٟɳ!}zƬBFN7+s- {<<CQ#9T'v0|KLP"3!FGA^$dۘsKa>+V;qz+4Yƿ|kɗL3h hpr]pohł{3}[{l >)7V!a9 JcuVh]iYk y2p[ގZ~MN,pVJ{Ē[],y72;ֲ[roV49;\5ꋦ'Cxh?3[P# G>0kWdۦKO)GX i,'KPbH.4R#CFI|gC{%42A t0K3Q^oFUuP%F6kw7@U>9;_ݲ+}uA8&c\mXj0:y*#qMCSdYG9AC7l6k<$%$ D4|)!5#Gx@Ba̤%υ[U]7Y)myw{x + dP,l#뛤?a֟#0u/qҚPI :U5_k֫aN4co${ 1f-,Bf Y>p:lFۡ4oB[_g+.e>y(<:I ܭIV0${pwJf`|$3>l2`{ws,g|MYAtCIMc1^r +++I<]%}M:h DvS41ƨ #tCJe8fr#\]s,/`Yx T~Rm+\ݚE낣b-CGuᗪ[Zrc-Xrv,i˴r΍%4koomaY8K~~uKiu/rcʼn&5%O-5lԷu'?MҰ^a/ϯ&G?~ГSWm'|.[6 =Ѻ?:;}-|"P=N5rP|cGPa'y|-y4ҋrCII~7k}}u6dp>Ǻ̏X(߃3̆|۳9GԞo{qhp/R[1be/x>)VJ+6lo u:@0n32[atҋ}q>ásL%)A!N% e+A*y)+LYD~VPup) T+;[ +|BE 1LZKgj@Tx"MV)[..4{n{O”['Ne .rI1?_(w^wdߺ N̔\ 7e–t߀ecܚ^"w_$wxG'xr4r A{!|6m PB1*7զ4) T ogF)" QTVdJszF\3]ʾfe,45nQyרc'ѣ ξDXrIM)IRf-05IRK=ax &5]3r}DV%ab2=lW~$I)Mz Ĥp ؉#!_a]y O8$9 +(A<STǥء7L{XKsaݸ[DPfšN-~bPELmݽ<͸=+T_WO$ᏔSx*~=c' ;Mye;5Kh}@j; j侃iJKPN^{kp:ܻu腋0i HSfA]Ib$TĘ܃r @eZ)t1K:\Hy7EfB>Z2Z3lZY~>Z=Θ\]&%GQ=şBi]0ؐFUZp{ib2Χ GH~wp8H=i "931Q3.1 ) D}(?X[?oaiu,cD$<'DŁn3~L@dӴ(_L2(zM>Gn  =f9N{/$!2.yr8[B81s81s{ PTTcӈT$]G#Qu hyЏ/j^#3龎"Em^lVf,/YRV-|Zv($-V Z-aO~L >ZDa/%Z~mqRgSϤ,}BiIs@kSfL'XTnn15B&cl/c{+m0*c8۸8c. N`>jgV661Qx4 +~]=Qr4s?Uiyh*u[3倫ѓ+1X'lBCL@Ldb,݁\5SAj״LI+xoS~V|Ɛ3)7O^|l$[im1#ȩQYRQ=-LY:* Q3'?MfwHR3oI"㖱ྦj5>k2 +gv@iB&`)R e$1KB:I%,Ll[)Wi;gtfjEgd\X )\d|Lɍـ9&N OnCygy]\ґ1E7/\.xF>#ѣHzƧ—QѱoJꎿO#LdjP<K)cXoyҚM (N)ÐR0aFC]$WlC~>Iu*B`N*3SщJl}ZA &53t}.OniEԯG$:uG?ՏBJ\(¿m}#26&.,~ޘӅlF"S.lK0gԂ! 6QH-9Dr\ri lNa-'레 W{Vsq4XȀD)*#w4c< AA$HaJ=N,FKZ?^a>{4luݡh1u}@C1McePsnn]1?8Y~Z2KɩX%OωvZd9, fϳ1g? Gl6ͫ4ѸGiykg/>\O,4~s@SBLOaFT)NrCH$wQDZbi{'M +U`+.nM +=y!|!wM<0p,`=ڊ՚f>4mh5ϓ$:).UF.ZDš)w5di:ƟuOm 5r_k?R߬AGԲZ)㐒[棈f bcaoڹv+eeJnfa 676-(Q:ޯT$Myb5*ep4(;cmmVK6)2i (_dJ43%I|MmMS?iۓE"̝팳.m%NKٯMCe۠4Rjܖ 7>LŴrfBD[ާ%;10tp^ `p|iK )# *a6y)RW(f:jԦgkl+ՍkmcwRCVXUaKMLF bRaTF3 3Wk3o r۸ +VsAp/& }þޭH}Ip0/v(,4u“WKiF3S~%Gi ˚F#j2|%侂aKn^&1W3N{9XJ{j}"F,+y7( MX buS4j{bu/<9[] +ۉ7okJt:$qhHP=A6%x1[|Im`<"J  +q3;'Ѱʋ_V0 )(CչH5A{ƑDAä{jBt/ATswdp1dƦ}䒡'䅫oOd˦'i#ߝ7ͅ\B/e{Ҩf,H=k-4_!%06| .#$Js蛇09|aa:1F%}?2`Ȅnx!3%^Hs1Lz M X_,ؒd[*&;=w"hScF~亷`L"p7<'0uVk'<;?O K.<@OB}ȿ9*qtϏgz̃d "Kkf0 D>ԚT8q{ "[ƭ 욁zS:C,l9 `vX${/ +&ޡ# +T̏(eu0HpWW^VpQl"j@ T@[a$>nV{FTdaS%JeB7x^Э5: +) +3GAuY~ TӬnBZWTKKY%m(hyxQe[73_?i879y&T8/scǭ?N`2>n">y(+BBɤeKJ Rog "F b'la& YJzozuKȵ9YxFe$i6mFyHK~0~8=dce>Nh+̛!50~P Lр嶙nn?5?"y7]^S#<ůM%ThNsx٩3yN&iUSnGlj"C<ҥ ΫZڴNJUb. ) X6 ߹џ:c짉1YWHL^+.荶hRLa'3 gR'lrMFuP0RTt߫R0F 8lXv{xG'3˫[V3zvCV>/{FmLNhSe՗gBʂ}AnLoȍD. BܥfJq&Yy} 7ƭsҩD@$ubi).$d!\|)ZLc~<&v׾CΟuKsjiU`b贀.[S)SQ6N Y<$^yШ~~/kz_ +OVVyUb-CfPM6fe܈hhzbzL]k+x'hU5)bOjJƱy3a{BZ:p +)8SlZ8vC?0?;Kip2 !8cdV>7 ͭ·Zq6#zo ^l'DE emBsƞ\؞G2UyWM%k21{!95\eXV^D +Mp.Px*?i+kƴ0hXSDb +#]Ղ.*:UͭI8NsNJh[wf.ۙ{8 Lp-SI ejPFmY]jmk.Ӧƴ$L-@Lʷʷ̊@ݮUt +tY.[OKtT͖3 Yغ(k]NiuQ `Yx@2wk;TC, *Ue_tR#ȉM\e;/&PĶc&ڡI\3ZɹF嬧2$a63ERbkPWe_m}0HU+nRy{r"L&3`v2K}@jؚ:ahczWYQUj(ͩ0Gpm_g_Ӿf ߭Z@mDH0#a]kAQ!x~ƊF[ҹL@KۯGckNq$1cj&ꔂ ԃ̯̉ 3rmTgpqPe,L:*l)( +M۹UH[-J D/SJRŜ Aya!TK6'ݔhƳQAR*5Sht&@.n~Т7<%3B?eyk~Q̗ eέ- ?"r+6_C.w$:}^=Ë>ъAil92:QOst Qnxt/y7O֨\;&#iJL;2#G둞޿8uyV)fq"S%=@6 q 7Y +x9r`c/Rg3W_΄=rQWޅQzys6Bo beڠRg6ȖN=)EG%ãAkp|]$ :4Oop_QXE^(+2{T\y2wG\ CYA+-3P('[e6?jR:_@C +~($S/ %Xl3O0G!emWA%][*Pz;^(UwR[Hz*R*1 +] sUxPiҿfa=zF]vPq U]:Vj +:tT$Vl-Ծk79lS\4kf16I½6iWeدoOs@lBp ek,P(o3鶭o涒&5#pRsO"&q'T~Q^wssIVw_5yC^}Ks3V:8#azM \SFz?/2 5Yϻ3ңB:$f.u7+N +D>My;lLCd4.F@zC~||~P|ˁ]J68;_>[ӳl{N]o _A6"e:R|!B`Cg}7:~@x4Q?ږ3Xip7{FK4gBG#F+r_}ʊ>K5Jv+9E1 +=iˢ^ \ݛc=_SvŠA} l~ȓƴj5SkEuGk4Tç ŕP z:%9MOr'[KZ)*y俠 BU{yhpՈYD(7A7St#•d*^OOsCZy&_|mQpzDG4F^s-`y+dF9hǭuX3l<Ә_iptI!cc^G8x $EMI`]|]-vo L/ NK4 9p8*z?.BP.y_obL XJX҄DSM{008u9V7J_}ߧo&ZF*Z${Zo3tZosq6;|ΰ[hyQBmadp=毽"hon!w' +Z!d̯|0Sƻz+`4)BnƋt|>Dm{y*Z|;OQJh(D +*L>WAm'U  wL>1}P4Snr;>cU|blutRM +SYyY7HW\lS{u L>#\*byH e]v'NM|d }DpOMFnD$`OQ +UĮZiW'JקknzߞW6z[}d{Q{'VYɺ|V$D.)6/R'קkokֆ7|]=R>7_3^+{mլi5) ;]vʫʰܶ#\O?:4|ve +YY1cl*,CJ~eT4l6f^UvЕj:KHWҵQ%DoZ5#>AH~bID0 rk@|)ZOV4ŋyo|~)E۪eSkqd4y3mc)Xe5}c?䭴f[ΔJcXHBD@bڦ}7)Uܴ] mH4MesI<82tC[CBک~Lv5]஁xa̳_ѩ'g@& @n SuJ%7oty&v&'@$^ӯf}.K7|7%yDך_6>Qqԯe@ nD)BR_da2ұ4KE2(v +UYr ' ! cLHѴT})-XT7/i!?Gxp9k0\ÕdpO.*$x*o=mhb'lO!Ǜ4EоމKRM/k@bFNq2=Ik +.,3fbq^"fC>!68ipBpK&2RC0MC,kĆ(H!Ns6R"qsI&r`l1YZ~ )pWA::_kZzCT|X#j!k-Kxw?uģۚr.;v-_V,UsܱS[KGT +dw榒.5T5LF4{Ѳ[H>j=Z]\6WZךgR:.0fn+uf\$Io2;`wh(u@g(o"uGȺMQ :5bULqE֓E*"jS=:#b]+Ac Zn3)'Hsmi Lm-7N\5Ɗ~!*9X(C<›T7U7Y=hfd5K[)ZZatei/,̄Ꞇfc`c.X*Y{&~5.Ow`syn{"&NP¤э_К;G9*^992ZJELۙQgr%r*yR/>Hvs`Msd7ZgΑ%f(ǨVѕrsdiR\*G5ޡ6i8GG jH +̑IS3GL @VNjm +fwwk˱ḇ+<`N6sdE:3)*)XxT='֍QeΫJfj5KL^R/SOٽ=stp}+zGEdD;cʀ::fT[MTy:fTF"8l]Gr_2Pe֥ʬ#Gd?5vDИxtP@J~f:FG>+~~}0ڷWPrqD`z*)KQ㱨dw,NP{U¶g i=? Ï{u׫=ev:j~Xê +p*-Fͅ)2qOҗ.W$БQ;(i;d7b6w]%^T\.9A%cIosyS&uaVעZ&S \r6bK5kd󽠀M^mY&{'e*,Hr?{g4y,<i/4r1Ѥw&_ >xM.R>_ !x|5+_-đBN$.ǯf8\}\zp,d(d@6\x;wYBuFCP%D| aZn:?' ~j 5_{e>ޤp3C|'8)y* +'n' g*C11'T'_ +zq2J[W*1;DK̦v~s'}AKJP:Xo cbk|UfIh0V.j6Sy6B'2ԀF ¨0 U(eeY@u>d,| +UFa%D3ʣ34K-Se1mW!!YFd +^r6>߅^[6P̵8a)oJQhh h [Ouqz&۠ۿ?; l#B<,,髣-dR̃JE@p9e|(~g7I&3w&}/_{3_|& aߌ+t۠Bk'30Ҋ2iG(XQh5n3;v].@f%Q"Bx}"?=y^GN._r:0c&`2KhߔbP3鲹Z4 ;Hj-;ڏG~2br0VoS" ߠhi.ߑ:bmֽ>6lJKy?&ڄQ%݋s$Wb^V%kKUT6E['WeNFy& n!5X:ץ>m g 4DlDZjf=)˩mF&EK%x z~h>ŇŤsL6ީY +U6Ω*&3IyP9Z7DO1LFZ7CJdy,` -iS%c +xp + +8.S6);x s`B8ؖj(4sQb/?3#mq- Iܰ%ڠM,*]Jݾn0{F9Ҹ=%f c7MKO?d~m4;w&pUPwڄnEӛt;bʎ餧3yްcAfU$$H24֟x>Pp]^N#'FEzDpݷ 1m96,TBv:E$&yN؞`yJ{m6YfcStEKצ˾k1w2tF!*7{ ո1 r1і]x+$Ow{z&˪g +;P{2Q;y|2R4grgҴBt1h +Υ=V3ov nhX8eGyص9[e&OVxAh2C@sij/7>|K=wtyZ9 rs(v?ޟCWeT$-guXÝ'vֲRۅTፕ?eA7R8nlWRggyga[,tz~뼔r R+NWQM@o +r-n3%˰R*bH(viz7z{qꑃ5b"ȃ՚Wl.`S \c9f[,R5Z=Z}Ԙqprd> cWT?;1 6U%DSne'm9Vo,:dyVj ~KS֭oRɎ2.%KZJ2u)]ztnz%3KxJeޢp+ + 5ZʺvyBYzvKgLoJ#XokAiVp!4j%Xr+)وfsnl !ndy܇V(]ekP:ۙ3!)7C听EUΦjjFU7| ÑD +V800K m 4*D(*Z N Y=<-/ 6ܚµV/wL^42P&{8bZ@ک0W:/wM2AjδW8h,ġ,syPҭ+fBEtq3y^*HI.ΐ13 ɽ3̥DzU^jeJs =U^LcBL<I/`DFHq!PT`3]؁%EO]iH*/a"̛}Nr23Y7QÑ\Ҥ +8^p ed ~=J3܈{Y</X\ֶaCD9X׽# B̈vwp&Si_Y{Ϗåц&͵n=ohrplDH4=! Z-&ZV6<E3=vhx[6B35&]mOD8Ż\'EcHHݶ"{Z*"nEὰ~L])pAn`O+]n)n7zei׍ڮ8+]XXqxn{+}x$.ƃ#iBh)~,QqWPo ?Bﴻ^7!A !igᆜϿs̯2ͥ ļDͥd6ss%{MLWLMҭ8cTGsmD!SB=:~eUv96[cBL6k|k2Oy&`6T-Ƒ DS6\C,pYթ[J,C჋gޤdqV,>e 4h-ef:BX~FkP +;4ԁ<5$ok ܺW>P8*-l +zsر1x |hU~iuEMQa[,?vfG&6?SVQ<۹ӵ͡,w!'=6@6p{(s&p^e;u-f.|ް;MI?;7?nk3i~J:A܅-1u k.6CK:Ƅ{~"k[wǢg=vD?ⅅ6O{w*؂ѩ*}?ꤍ2xY<c;E`[ q Ze !-Caa+.:d r9Q:$kRޕ5!fNֆ|WweWe{M]8y!79zwـ}(m(QޒZK$H~b5~+{}7A/aCcg.& J<3S3 UV`85Fp@]Շ`xQbu1W7D5{J-U/ܭl]we+,*8k8k7z5+]1eS#F #aV=N``?):%{άIo'1oYEIۺ-3 K)ކ,۟+=|+emgEeTz522m\?U{K֨k g[˵)_[u&reC)˟Paɡj Veʫ7 H'My<ؓx943kR./s&w,K_s@Ba&>f 6{#lГb!,i R+yi +Zm|| 9G_LJq' q'^܉?r=p8c[r=s(flHǏIOv%R 2ib+f\C| }++!4AC x<00'CapőXBnav {.~Z}^}xjP~?L xU 1ˋbVĹΑ759a^eª.5XLt TRaw1v0n}5k;#L?Ntr;;=ހ'ޮKdImQcW;mor/?X[<{IּIZ W+)P?+o]"A[._v$xN%8`gĿ1k.HP +;`lg 8,ˋ21G5&Ue~≰h>ƨ3 Tk\ī^)pBGPOmijJ'tIO߶ޒi'*[)J93\KlAZ%7sP}6 ܆KWO:8e`[E\/~^8@0R]a-kkREr w4Y):sۏ2L0OsrEr2ʽfT*-]T ʕ( =֦DZMJ,x`Ȃ*w2 +W)jpK2fC7 Xαn\yFڤZu ,v VO@2@$^N9EY~wh,{\ŕܲl{LJJ;.Qi:DlPlά#Uʙd8sG%0x& ,40{egbʩGLM!GIAo묒`@uA4ZQUFA,5]Ơ?r>)!W%6bǺq73I}`u[8QXԂs@])}>:*<{DsəW,eA?9Os k1%2bڔ]Fb+M[xO)5rLAai!{ݠ5([e9[p,|%˛$g3m|irUj`VV }~FiVXrJ|gip˴#jݕY E^B*YKJy,mR˂gF.zz&if*}{l2WY}*kk6(.6Ce3&hyYZ9ŽUQ+rzPnXL[&f?H,WI@riU+Q˖)["7k3]N]Jbg F +>GՀd7X|43dnkȲmXB~5BZ0zqŗMΖ;ݱdpeyͬ|տ\0}MhvM^#npy-b*:M٩=1~~4!d{9'<өM)zy{ݟ;Έ .#!U3n7-+z׷ZIQ'\oZ{KѤjf>^JnOKs}@;l⧏` +'#vwu85u'2yYaWG[xD SZvр w#6ʙg㔆)|*'N8)l) +(lșg|rA3MIovoNG"c6!Pix ~)U3Xn'R( +l@a%ѣ}!ڕZ&=<Pox*1(0ዤ" |W_.mXXN*qp "$nV{yžuK EwVTQ[<#љ꣈Hm̱aꝂBV{^ͱ0_,$\ ej _E5{_3tEb +.aSJe ثɸۛ#!.M>&4c CfN5Hc#LD벆길ԖmfIQ LkkF9i*CIҋt[zC[ݫ@+Y%qaa@*/eZcmFVS1uԠ'urxm,dI+AV9DT +e\.2\dRZ d5Xy(,sIjC ++!dcE6zH/Xf{&ר'J͐+fnԦjVgj}ʴG[A=m| l؆4gašE.lM"مa {J6WHob0ە6ZFpշ*, +t~0F]VZiJ{ .Uo&ŕCDWi*Mb4b ip2ؖjR3 U&Sk^"=l P]"T>lkSL`}q1}qύ#䇜0ըjѸ֊8 +{To̩?Ǡ4 -ރn"Uupjh~@1yrQ߹ٸ]Xk,weC%=gaN80WdU8*` nǙtIBq] S}lj^ %~bI=1UpD^C˵%_.sr#sPB>SձA a ¦;äq ]E0p.û"Fѿ=j8+d#Me NNͮE$fmȩ՗ɧS ._'xدQ&2Udw&^Mn*yfg2z3y'W2SZ>dV)^T,rToӳ?l_KCS +U:H5;_il竇W-S'm`n\v6.R;SW36BC +-thՏ+j$uӅ' VskMC k"gZY;dmㅡ4ɁyOHG×#/уw);sTe= ٫lsZtGڜ4Kmڬ{,ם)7SĻq5_ˬ,5vH8e4edL jMUZ>4gT3VQN +b٥NL+J'uev&yu=kȳ+AlAjF̶2%O0'G|q'jO¶[=MZfu1Æȼ+4E/Zb[\0b!Bqu*V۾bI0ŏu󂆩wy*%r&$us6i2%-B_MY2'Q"F W$?d|ݤ! :#zQyUN"!Gj9Say$DGŘ8eP!5sT4I0'6&ˁpODx~aC^?`=ye( O%$.Ew", FrUrLƄ*A{?ɓYj59A!Z=?t ϑ`rA!V _93x-WNiq$@2lę2LXbֿw:w4SO +81.\R9q'AobxUf~V/&ș1,ɬGxorRb3ĥ43~gHTҨ8-e7F[T !䣥"rrZa8sIK<=~:H5.5q;5)BLc~YpaKtp攺x|gYO޻yl=+|W=ֿ" ;yHvGɞe2%(Zˬ>NZjc6RtMmݍ7t[OLfk%n+nLJ6c͈*ΧOIOJ6W7>GacڍlwǓxE; AMHX}pE[P.9W</FNd:MNc-N||M>;ue_D!!RXܐ t.3bgOZQz;$ .Rrb0|3/=lCN@LcŸL ߔn\w_ f|w-eDx`< +q̠y/%(*#\V2`$В j(/}Ԍӷ.C^Ln?eF%a!39dBݐ>fLID{fҺ!$kض e2̄Gה:z%!?obƒǒx$hU-Q^< Oۺ7=ihE"EnA+|ȃ5gX8|G> +Ju_%P';]ME..M"]<3Fic. nP R>&ВI顥"hhlr2/Wu3|`=u׈zSVր  8 ~Vo{adla>ļuq> fdG(7gAMo&xNm-:)z7ӂCc-MQn*hrv"Fo,A݌ԣPC []|4H{ʢco_R<ck& sT:< +ƪ߸ ÿ8)]<"ʏb$ O} ?Z?}j)4|T"HUnѤmH^;i0l&,2(tq^QrΥj{L XMRo [&qc?%G˚hzf{Uɬv?ӿ~;݅pX噕XZ {r9ӝK$ ݌v‘u٬O|.ɢ:F^dz[Bck0 MV4fFwr#e3r?i-,5˯狠&ɒq`Gכ~sE,Lt!Y@?]@tF@Ϳy\^egL5l8\qn$&bI[4k S|7]/+3R(B>l(} 7N27T숶TX)Ky/(+.Sz^ iS\P9ȆLnQ?{&tzq&n:ĖÂ4G^^ńqjt?E^ϗx~&w RDvqI-m}NM]&d޺R%\N#a1f~&7zOqS2o3 +P}*v%?Z<68v*0v6 L@_Y$kyx~YiHKbl[tFNlm +Zri-tBy>;{3e7>x38rQ1h2=![,2nCcLCq!(0-q uaRi8 jQ e-#e|"0g㾧lcP\;e3? ֋4oZqq? }Ä +v:EEu ~*Jx3 ؐu]sv%9}j5˸O 1̉3ҥ kx6bnfZ +EĪ!^aU8` V8Z6pNjd 70XČ>CSM@>-D AsCѬeY$SdE5GPz6F9 zkߓ'OͰU_) <Y/Zo|nqd82S?-ugfԕlS\ szse +N~;6? Wu4/ JA[h6a:\;UM|mׯhQb%f@hm`hR.["[QA2Dlp[ʜ33z""}_T\ +kbMjzb+,:eU6|Ę$t\b&O2l"WX)6CDH9Ťmݨ},oo+KTjDmBxK".1hjC{TL ZjJ5w:tq_f:Oؖ6c#9z|YOGCRbu;G +w7o!cB~=;vDKdrc/%}&a3|}ܔRHPSf}r%wH6}bP S/> 2HL/g\RMJ> +JߊlǗI$85x7Yw|@)iihl+tx=_eSMXTT3|yߨTnZ-t>6R 憢N͓<9u +'0o׃m4a$KuqHy &k90 FA ʤGm]gʺn Ja}[3L0DM|HqMǮHjX`TfYNWs FX'Q$Q5,vP15 #M@kgoVEÓ3 aol?+AYC*"8YgN)1NYhdtʒTjRscV[zEF?tZ?xXjB)Jaj+uW$ۉ D'l*?X&x 5[f+!T5AQeqM`@peDyeETjh?91lEahs4u?P"+PBgUŗiihA9%>JK:eBab[YcnAHCx8!w@]eʌv.cP]G JլFWR.6ag +"#=l&4k4ƙ U h*hn6 _ĂL k[zK2h$o꒨2 +̴mQMn +tinNe1gs\˻kx*ŏO-Rf6cBQp;o6H@twiY(O%`kH|!k0첞'rSYz$ٽÝ6+G#~?0_XG9#=B7B玌iuj_y8Uu]v|17yn?poEVLE4Fek|&1)N<zH9Uɗ^\Eƻ>/ǻ1YSujSM3 H>s7N&o?O ߨG#txMr)z5ۺ|^d[t4yp~W+Dv kJ ;9kb)F'3>.V&F''y +OJZsa.">7E~[#>&! a.6~M |Nǧk+%upK5JQ.z<Áf0;k>ӮSE[*J3kJ_6nI:^*RI3GbwLϐSH~]d\\VwW`;swb2trH  +K2]#ԭ׷6 ԉڽɷ.覒 +}M鶾8kil/|f_cEɭQ>Oc;M'6ήYL7| xBTG<nGdolj6ҫ:E/YGYmE/w|7+z+VD@ +SӋ >ۅK˜LܩЧJrJ})z;lzE5K6Ӯee(o=zSDSo^kJ8W=a2՟=+p\0سh~u3[Hnr>s{kTcWPrVIcoھ﹀^dׯǾzo{}&^9c/&6y~D>?߲~B-U<|.2b-MI=篚kh>['nOJp1qh/n)y%W S3^<xG{aؠG;g'56RG7{l22)hMx \9hַuIAWmlt j0NՄE}?72qk oֳn1{}x7yCaAw~u?:R.b)3^FWbꔋ`,9lJg]Quݣ]mu2~4qypu?S`>ޯ re99kjXN }gxGxgz,/?Íϡ?>+SEaZw6;cfd_@qxT~Y sP ЬH30.c:jscV["V؝>]:5>×Xݜd=#_B*敛ZQum!l<}X +)i: @ϋZ/E8XsJ%K ^"`g2h_JF:̷E^/Bً?ÄXDӘ(׋HUUUԋ>_U0SM Ra0aDT\r+?Oz[/qD-Qⷨ3Zo!rנ&p[/F!֋_S/~zbm֋i^mG3:,e}֝?pXd 3{7d!!j\cEDaa7_l +\.s! +SF:9i`^Y,=LCCC}'3= >yden=2j+-!6>D&&߳5~'bGT\tѣÏߣ4}!^@w.BM}-+C.[ z>d'[K.pp˿W/\~_ORo}POp?7~?3> o?=g߹pC ]?..pۏ_=zo9?^t4WX\nrus;+s7ݟl=vnb-stG|>羝 |Vo>;F[ILmMcږE$7wFnAnkhTXhx|VUxĪF>~GGɋ8+ #^9T@8E^fvOc%6WFGofb Bcv8k/s> ;k9kG L_=4֌+ lG+GVdnYj8Y8-JGsCmYMgw9t~ֺcƼ$;_qVp8}g]o_l?ǽGF:}.ǁZ3cmK|ᬭ:rJ4Zhzqhybg5I Vg,yg}y)z[Oz|ܼ *BK/YJ2}.*t6BB)GxCm2'S#,ΓNx[-4D%O!. v=vǼGt={wݙO_Fх;֓q3ś0<'wG lg"";^ƣgh)o TKM~#xvYYsCB+#O\qX[GY LPwݭ<`?u3pW߮pV<gh^/I060l6 x1uNjFx֋Ga~`/,Y{S\;]ɩ }/(2pRX'U]X4_RcCY?,('Wcn~>\Ÿ4iT%D MB^Dݏ uZDޡm邢hܑZ;L%z?Z=7`G.#@C١>CB3q7r o{)~g㝤dTKnZJ7nZZ'r&M~ލ ]ݹ.|՝<5 »û-wKRd"kx/DݢGz;τww姲xאŻC?w»O"ƻ| ]]]e30wEƻxW)xWd3A`Xp.} +3. O|Xm B`A , @S @<X{|穿8 }B`Qs90_ou?Ltޤ쌲),@ϒkoWS%ߤJ;Okno^_h;u _'z._6Bt]D ;ۉК46kZO3/-ԡuS0cW^K +LA xSQ]Ezh:=M O'Qo:5H~TƼXGz^"+jqw-!IPEn:l>A'xZipU*0)5 +Cէ"p6偏yRy{[~ *,^z.<ڡ.{M"}å{g6gd<F6nwѵ@{q6>\GP~Ϧޤz'\cq] 4Yup`:~zwE{LAFUDh%Y Dh<~@Rox1yLA rL$,XƷyvzǏ^,cӱӰLQ,d?ϰ3H3(eA@x惠E$ OEoN$N ѡ!{}@]cx 龷߾/4ywz_ шS`ob SG 裃3K@Sp7Y8S߫I^߳Mzז>!跦ƿWJ~@:ujk2_#_7U0Uy_7'zCF(ZY>``)zKx/؅5{'S<mU"ͱ?J{uGRD'ٟoUkd#^+#l'F_\hU^/U@븋qH*IMW a=s=4. ZCSp +W>c09'":%=lkdWwEtE +L؜WGlv~~`6`o&yf=+H-νmƐvVHx__.y1!磏ۋ+T<Bjw x}$yA^# $$L`ƣm=# (%υgs{φ~F{h @ۥh:9]0tu I@0&Hr@) (Pj6ROrf+"Z}϶8`C.H_߶X!Sdth +JћV52MI1)= MF+/5J*4/uQAs) +xJ3f3Hˡj 4Żѻ&]o6h*/yaES}Emf1]i2Jc{2nN/Qt5ϫ] + {wby.`(KiaHG3AłbH.\I%P0HzӁGa[9/°UG$akcY;`&r`衫Ω +'3@pX< +u $鱌)RxŢC4!T +A :҈8 /WRz_28*)~ػר+9O~Bsk /)JQOk[T=_[yQc>ctGE觼Bh3Q>h>ԊSG}}4I?= +~.8=s3'Aa3tAslyAm=Y>eMC-9usC4֍Ei3צY5kܝߩǩJUӄtO{FkN~f<g=\纉tlў^! b8!s>O3Y|>Rp>uz#l~)wrlXۧ#(9<ïvГC?᡾6u߁ಟ-~7B [kl[7P:;zS?Atu?k=۸;DDA;C#@sb PևՓ٥`݂P!fYmiv Z]ۜ \d5;iظ_w_^qЩ* + J2@̤B英}42j/Ytiחg ;+A,п@V8xkzɴCu7Nǀ9Q>.Z Dj 9v9]>x%D=E"ZyK?B#s)a6b3XO 5G%?@~xu;ږu%:4RR=!TU<UP2;iJq {&#B>TU>n2;OBu8;GF`ߓi'8U,j*6Ib7z +g\q`"Xc=؟jW/'D456DQO2/Xkic*HjѬVNoG;ov~WQNVqI[z,rO}ޏ/&ˊ_AdDPvSV]/b)?O4@X39kX;:b:b#1=9+ݿ 1xmsoa?m0 + lFd۩1?gML筠ME4Q)rB +p0ov!,=sRw' Hew/aiY"<.}bzhu+?Q*uվ}o6uOJ grWZ"-2w~WaA a-~k/0sCSf Լio!UWY?pҘ9WuT'zM#TGf$pgy҃ _a @,FGb?9zX[mAj L- +3 +s邢cKfFc॔ΞZcf nqϧV-ts:z޵Gu^}IlAMX$aMbcGNLpoWIZb`e¤XRfu3UmeZf꩙ S2-3 0B~ AHwJx&I'mc^w~{=aʠh#'fxo jT:,w Yc!*z:>+!2MB${]MԾͣW/0fR# ֐%(1REE Z/vDaU:mfT r>z=՚ӚMVë+G:N-@皛}TY'UYPM*)>dHu:q,Yщq&hO]7443T C4pӋXtYxr MٌќՅjHq+ +ՄjȽ-OhfΐœX|A/A^5!g (OO7$~FC _]P.-97E TqWw5 +fԮKa_F2 ӺZI*M%-9iLjtZB܌r픦/BNazuG?ZY'6Hqy%ʐR59:&eX"wqt&ZwBon/5Tzt Gi9 94c.Ď8g4+"mԬ{caz!Nk"JĽB-=etXrmuۉ[TOA/gŀΈar2[jO+_QNdZ6jAs}ue㲁Ѯӵ0TsIcK+ CowƋGDPS=G/!-/6LX%o@tDغ,ٖvyF =+NATZ~lAiFgR§ͭ1԰xx=NHҜk4/k/pӏn[.q ?řyQdװhyHl^bI%'Bmt0|)yhȤd4D=/@ :Wx#1yqIPɚp@vH-|drM=]Šzp< +l Xq˭P.,H ;l]`p[sݫr1 t/pzeUe{ j]?3NbOwo2s}NH@ 1e*J]e$}0Oގa h r}xF)@`tc +]Rm"Rgs*ʺ>g;h&ڏ6QJ)ŽUMbױDH4j@^_GcTLe@Qt f_xM,Ҏf;J{U@390d&R ӌe g~WtH i-i^_<%HEi^վ+pxT4'YX }G- ʟ<1aF<)[H4=>BySG 5`{W>] w %1DT8EcY0'EJB&i/&d=֣0 +9!1tE0O!YO技x0 6Odzr{_BP-}HQ_-}P`/pߋ. +{XCk)}*{\r_EYV{@2o Q$3(P񕍯&2͉ \܊j(<[T>%R j8pH֛ $j B`ǣNc>68`eMsDAlph9L>;aJ0cΆ""o3?S<#Ej3)!/jM Jc=Ӓ ~$Dy2W`CK +YVɒd5V4|.i}Y#"[e HVXg}y"9m>61WZj,WX 1j\t<~*OLC %3W]X+Y/Ҧ8 .b ʺ _oiocU* +G=]DL,#6;y dBD{bk6靈ԶxQvȉGj/>\KL^n1acܠ sI3 ⶅ'/W WZ "*:rHr Ê#kj33+t))+ י33Bs9e)IQ\D))v|!V^+y,|`<%h1w(m## =&MhMM`\`V7ӂZ,eLa %lZ|1eԛ|V~?.xtm +m(<< OUx4D&vK$qNg3-ֿ$Xh&GPkj#-.-$v쬦eVA!ԇ>@j8~A[׎l #[Hb M,I7rMx+Nω2q~pV"AKq`-#h{Ews#5M#vKHojF7(,oO,oO6|b/6 ow6Lv o;_loOIߖ@`0%')B^oۊo7ox} |Pl5UqK>#ZC`K*=Y ^"tmIQmv%Nn$'#<1+^<O~I'2'\=W} c>Bj%rK4h=!|>ҥhi! U1Q{s~~*Pia@|UP*+q _ғF=׀UGr|=pe\1z{Iv[Fy56[~oM%XG2X7d 6 ^ϗJ= +^WKM\?/Ÿb<܏9*bl-݃+C'˓5}8{:QB$_ni`NR1;Z>8̟ӼBV܃aG*ܝEG"UN2|]oÎ#">wӿqG4QO 7oN̮ 鑥y f;|Cp5Qz=|qoQVU'Zʪ߽fqtr',T&es}z!O'ۙ8^J]U2|'jܓ["vw=xLH&CS)! 5ȊT~D`D4ß~W46Xz؎;T W% gK-iYtiD"w]nL#/]΢Atӈ`L#qqQQ R%=ImC|&;jxinnAjF{*^͇qRMfЛMe& JH}ZdL]9'ij>D\N-#fXCt#FҥyHw$$K䍷K%/M10=W>JѠNtg!ut)Mo,\Ku+Zzp86"D$Y!Ncb{d9K]͘>t6O l%)<7xwU9Mcsw3륞N4MxSo{i(.<6/`s~&OԶΜ1:9}<4<<= }nr3]/E}q}K_@HH\ʻ"XJߡ.ND)9e8ϛUJuDkotcĂx#MZQ 4,PۏqVTr9X Qu%"tSz5(dũF9]*ʍtJUeivzlʤ3@Ķ!ΒΣ0ntd͕y(, +ÓewەllY2$Èl s" +EJx:+KoCađ^bVҋ"TE\y\&[5g2;7vGyO5<[y^w5 + &ޜ%=|CZ9[1mQQ*RHn+9sA5b+@)PX7俺@O~g1\OO52<88dHaX'C#KyUXBA6-.$0ǎG:˲G)pN{x){bO.MG.κ'e꽆ٯ~D +Z5V%b]p>qFw B xȪx*3][t|.,`uO~ϽRa[Ⱦ{]OWg>;\s],<^_.Wz(Tt =҃ԎSCq |4Q|{H}⧿9B?4ᙗmx},>T|)o|#>ר'CZ|fg>SPgggzgon:ӵ,% 3;Tp!ִV(4rrӴ͔1IڦԄ\!3N[fAg +ڵJm _Γ@b@|{Ksn37W΅O]a +5K$ F*w%U Q*zA0x'Cr?/@FcZ/{GX!3aU K>/S#d5|Jd $.$1*sZ3fNUl&_u"kjYSYSɚ5=k3k0YS=:vf-쑵KDT(E9j^K#$I9QdR%Zgƅc619&p b,SWˑ1^r fulNS*KzL\csc*z̫m_lؖFm>hCcV:dC~k{0ZEk1\~h GtVf8ƾo0/)ɿ3@h +9zV 'a^Pc-^ >c}Ǘe|Lam4~c4 TIL"*Dcc& Y'}M-zLjNv*3( qdjC1&{=ˌʾa8$.'ŧf^[J3!(.ѐOL1?)Ȉ^AYD#ͧd1j/:1hKk[a4G] +FAL*[8#gO4?}>+}ҧKZ4}KԑO->-}ҧz/m+.94Bႉˈ.5w!LsOb Q,Re %R`dQɝ]PBTc)"*. 2m!SsddT?~,#څeoM}V̮xW a)Ļa$DgfBLj)LU-u|N $-\N J&}Ͻpcs͑s +Zucd +Sj95DNdKF 9 9Dyt>Mk7e +Cb`@^-?PJȌo󅷮̫d03S\ MaҜ+17ëK[ +2?>Sg6;2ߛf{A7t=Sύ=yL1zo7J3y^ݶ/ +g=gzPksS?jFc^&}81)12%ߜm|l,dTX?) +Wtt`d%cHQbKL8uneAmd-"{b'>2=&;{ ]Qʌ_vё=\xXq1=\0=Eڌ/yn/ȫG:,Ȟ+[%t'{ٽqy ר-ϹPk}Xl(6b]^x † &qCA\K!m0hLRG4Qmx(s:4# 4$ ۑupsz!S79S-T/iA:ڷ8 "{/4D}+ޞX^u4s_Obyn޽2?$z}[orcy'%n?m&Omנuʼq}+r~He#lo9`6{Ç&s$:7\'wN = KJ<;gweC]gů;fn%ti+>;z.ۻpwś8]bxѓ=y7/W|/]+d$Ww͝]+޲:[/e T:MF4=L^S]2˜Z$sj̩.S˜9#sa̅]2v\X1wS|k)ϿCf1śݼiot4g=LЅq>߅ͻ† πq)^oa.kElr؊[.6_dna>;w#.o k5~ح'? :n̄v6p]/?aXOώǂW]I6zֽb[0!jD=̚懟«Mt)ǞZ,n;6?$֟q>@+^}0~x3alI3 촾CS#'yC^] XE:^>+rS獭Ӣϝ%n%q^tꇗRVh'ilk)'?쭚;g{fOufO5w˞/$G0쌎]~"C釟`j=i8?<>~5K@>#~{y gkc`9 ^y~ E1<;)I}={H׻n>:!!P3 7WG6mW.Oÿ/n1Oz濞Syzю3(LQFl1/8}W_N5MaC n{ ,Fax/WEYo#ZyetFx~XJvo#A Fbe1Fx6ǻm1FkxIbRӥ:ӥ.3]{TgaҥzKu+LW#]at57. +QRpq8Nyj/o^ +`v-n]/E65/6jCb5f!RGNsc/2Z~;j>VevmcoW_n?O}oq>LH(crbwC,q#:a)P,yݠl)gpKZEy5yS"wN.La8UIN)g +w<5h}}bRPݖK +@mR0rȥglwg&PL;ӧ }jEӧOI"Sҧ(}GN&we +G%FOKؤ. 1=;3[tf3n*0Q>ߏJ{w)w.nri2ۯ.J})~s_?*C#?D!~z?E3WbèV[53sH!e5K?U< Hy}O ; Wa6$3w]YӉj36|k3(]YiK{7N󻼄0w֓],n,J~ha~5 J !SrJݖ.Ű-{1l!~bY34'a6O O}h܋Y +1"cA1;<fs]]nwLW|wf?yޚحy]ޓu7 ܠc+⟌fk8ዀ|5geu5W륍;-J>z{,{IQ9"RB=+9"X3^whIM{YI}ǂ}Ϻ{ }+g=Y/"y%^Qp"Xʎ)3whTnwtWﻑ7W; }}zyߥ9pgHF=ܬrn_ޭ5LVۻQ;ln#/zW5QIKgw%eX.'w͞nO_kbG +v;|̝lC#4 ;m0;'{vwxӌ0ksrzE׎z09FܒW"\Rma,*O +g-#R;5Hҷ*-͚A"[OZ[B;+ix:M/?;4Ak>W]J[9^}<~]G@YTτB3 98؛He^QwDkv(%d$)_ji\"6LGBN-ыW0q=ck }ʉ0vuAcxCX߼?³/bS |o7[{@%ip'#Sᔯ} p|[UNVKd*|XD&cn?dd +4ո=\4…Qٓ8F_x_8`4g~c(}o.3@Ds .^ga3 uR4BAx«:(dmlY /`GIJ96(ҁ df3)0)l'嗒*2x̘,s;m kf L՘ Tt4oULe6_7חa!ݘ $TrW}Wm@X}wPY}!}csSVq / `- ?݊zzןzA 2g5}U$HxvHu! >hc5JkkZYHЍhMPOŮoI#s/:\\ @*@fd .+gq_ o~ѡwM$n:㾞 w?d0es'+ WsOYίe#CxvTM /aq~ g܀`α^Bosjm]kWI)ݓ?jWZ/kX<+OZ,^iIJ{+Pc7#<5„(33} CIZ1A/vphw ihF6Ç8 <":.,aM=7REB22 [KTq*Md1z( 7 φ.cp׮1be~..qM$b,,XҾ̆Xf up SY>TkYxuS<\,,eQCE9^ޙ>jm¼ +r.Z}<5ژ\C$o8ڷ9<<| 8(+mͬfxrt7/apgV4øezл|y4JxӆAΚia\7QQ: n_?܊؎"0ClGi؆@DU =sq*G5&u]F[qDЏ*7?|ZqTOr݄O'jt)OXF:4eVӌ*!լLb) +Uh/P-oCufCg+Q)_ԡ =O(uj?T`U R8fRec*))(Wʟf1I+643c I8uM^OB%2mx!Jn^2x+6@(j?֋f?93dd:f@|:8BȂoXQ(Awech2Xf1D-2eJ+rնZkrɂd^mž \<\p p} Oc@XAS%`lƠ<^ʫ+4Vin*ֿ.rm8'kĮ^,2[6Qj@5%2F2\["&f(I7@@&L=M fh !Kq.>C]}C2ndت5/,JF&h;qd$/2l{'ŀi;~D[IT*-uZn "'b2j~rX&h\9PHy&{cMI+݌ &YOjh LyB^H8>?Z"=$lbβ( ĻZ`1 n}<@4['>Ohh.H\2*m\.eԉ\YtGRӨFu-JA$gi`th6䥑Z2ɋ[#ҸR!x0TzY&nؾOTI$G.h4X$GHD=fo[Z+rXK( wicL< 441[־2UJYP.P{*>X xo oz9Z}րŊ ҡ91`x`>׼p@h|+%4?q"4%|Chۀ/:C0g[ozP#D8`X})h4c~oA2t."C|-;iuf(rC=nPC|9+ Yξ صR+OEI+ ޣS/:'hJ? }nw\ZK[a^cj`:~1YOap> +1Χy|E.m[ǘc\?r;+7[΃ >v YjSKo+ߎ.ǮAXzעy>:4;(mi*XƦon><箙q4AMkwGnOy)b> $OpZ.M*4-sd6&M"U..,MlY?NElej.אZGD`?Įbâ}6^^nj#~Qk}K +STq_2? q|YE\.-.&TD 5NCcD3ڌ4ou !׸"kFEBT\8.I,Il~\TT^@i@Ed,TS5XNcP&wP%*s/aXRPV)@[` ') ͮ + %ds&P.KjɀD|*) o|t'*Z+$MXBTiASI?ecRh +²T[5jP +*PQNR6N̈́N N: Jԡ_-K+ n; +LG +cT\ <I1fP + *÷@eէI RێP' $!PC9;BZq yjլڮp˦;~! ~AYSuJT=tRܴZvۦ^ZN*ڪ<W)^\:o0^/« Z,j +bfoh!#qE2yStZ&#B h`8^}Gs/[<a/<V!yEyaoHTOUBqP+HH7P[fdjޞ DOR;XKLd*׮m|6k;>S%}v=|~c&%zImj-]Цɦ.~& "_-Z-b +pގ0 &}ff0}!߃atXQ4F6AE E7S +چ3e1aL@2b; feA]A~ +8A,ĵg )|w?G,ܯZӋ): +{< x71I_#Ȑ!AP~շ 8S-tAơaM $[Ttt /1 2 l^6FlXܛE. a ]mikvޱMϸC=OXM8g4@BI|y+Q\%l,U-33>g =?l:t7_Ws`]+~ǿgiA!` ClP$[g@T:;߀jJ%]>k[?Fe,xś-5:Nn#!&\ 렰|g>,p<]!~f>HYVE;v3EMˮxͬM(2}֨x5Q/+\ng>v/1&6  eM*_{2u:'S=і!G~jvW~~SDf6܌{V| sfPq#x7 0X^0$X }'Rĵo_ڜHVw>VY-Y듙{|7$37,| #\kՃMo34 g8Zp|YR9o囆(ݻCL2?D3#SE__^%]Go_h}"s$]ވUhSܗ3Lx1Tx~*;@|ۖwBWְ*;u\KJf"D_+T;)| +Pdf^(?oJiZc]*9&:5jN5%*rs (RTNbiHw=K[ۺu[mflKKp TLw$\2g& v_?29ܟ}eW*!mn"f2]KdJHm4s_mJW$r}xJy~k;j1r/1|&*2N(U&/*?KsbqybL"+MEL4A~,!~vj10I 梷 \T4897(S9I1ǥ89W҇~H:='8 -LRq& K$;-1E_bƈ%Տ Fo +z[_|?\:உׁ{I4KJyqp7mu?͈5=[ak:{^N0LfLR4hYgJ tQ:-,jLunR,&O5{h̀axݸ1ƒ%{. Ks(ȋ@ 5ctE? {&hTT)2>c -$,Aرtܧh&Axd/ct{?lrm44 XO+lĜL9IyTti-[Y*`g8.o;iaCHFbp7Ra)ǜ dfB(Ӓ e:s>yRDT Jp[< DzVsJ"&(9'r5]5p;9!i%*`#8" +7HQu\O=U֤ N@ `xS(Ec'rHsI(يӠ7in@ԥw`V,fz'`\nF|{W}?ȇ@VL4O}| \AaһF=۬A^eOսCQZ30] .&3/ޓ^Ѣ(l#( }Bj ޕdsdPeG Ӊ,-ԃDQ=9dc*jz3s^ude#{P$QPZOW'9vd@똻2+-*u֒> W׀Y0:YhPxm0y*:cm?{ 3x" {/궾RA6֝{߭ߍ"Nny(T-I̩fA&&n@Nj Iy>\O42mեs|99DNd%5B} DA6n.n8.dUЋ Y@[^<+l>i" YUѡI_pY1pw㷑Ɂz)V  _S@4Ik.K`_ !C!i@z;귾O3 fzW3kNr O<߮NtkƝpwaQ'QmX1\ J-oFWP-lp(%ɟDM4WU_̈́z7H HBF1t$%{7 *>,Io{ -A=>!ڽ42̲T?>Ig2Dql.G\u>X b%0*zF0~ CppJLC6Ʋ_zR [:?FziD otʋꛕ}KB,C0^ Gm5;Q `x ƓU +-=|*RhjJbC탥~ )j9IԂ۪P] +غ^YG?/aq\-V=6'6Y}NhFR.o#V6ɋ/G K(C軐 A4d<n*Y4~-mD{Nץ3^NѸ.k?2(2e Jo|reZ/|]ˮ~B`ݝ=Px#LT9v3X1 .GI$80ҨRm:L?LjpbW5w2$;~s)"1-/v @Xdԇ8njl0@arl]MkS4 +X"ˋ+9݈æq1?Lz^zL/9SL)8Uf^k%I-SKھԒF-SL +ExKyD+?~?Z.F+΋JA/$A1T%Z!R1QJr R$O&^tN/ЧL/ )z UV [iCחL0.N0w! ac3`L͢qd=ܻ&3Wr,{/_ Mx[[f-sƈzx\7ýYX<=@vYOvlӥ-܉zdRjQcޜk4czno*]J$].@t"ځ~ +nMOgDG "Mٔ>uK*ݷ_|vk? +'Q7J*{;5 -]%):s*L6inBRVl;MlC`č7ƃ.{]nfflݨ6X,`f^%ʼ8hB/<ٚau5*\Vު 2Gmsq˶j7}rc)T8;7~)vUCyǼEМ w#d gWMA 7שUl/ӑD<AcKOy{^zRcwgRhMb2e?R: +yAF0G>Qra`O "Rk6.]3zUDZIO<^7͂q?u?mV%nf͠|5YI#,wVM\jQsԖgR"uV|^! Y'WF +A[fY-pWw.uut\lX*%׺am33{ԟXۢA}"RV2Җ_H$:}v~)A6Z:>ԬASkNñ`$oi[t_1KybN2uziⰞƶwk2+o~(59wUZ͋3Q{xP)밤zJ?xןN_,{9/2c{2zD.g_gW?*4~*nRv>-žXx/JEډv~ִa[ + +tuIʝI!kvR ׾ד%#P&lUρΦ2Q%Q6qSrR_QH, yKsO]׶z=NC oUv4s~~#i9Htu/yf ~bp$ <-`_Om}DTF۔>5Oc[ItM-[O1DgWtxv+p 6:>]{4`y`;`>%??} +wх|A{ur9VZ[spk6rPezx+٤٨Dchh. qZ.( ЬU?RdfdUR1>wQ񈂵(@'"#ȋ&]]7x:^mPIlIakLVU(O#(@xx j5Hc.cb^|d|l՘& +/['D(ɒPSƃ٤@*e^l^+zF",.z߀A=IfRIݎb3͉ͤ'(5JM!x\FO 4z9* div+,&ʛ D&zM~P`IЌԞ/2+?gmnU +w*; $GߞR޶E/1*X}Nk Uʐqx_=w/y`(oʯ!V,/?sWj|~ *ɂҾUC^:X禚)ljB}D-.[Q]"' !Ŀ^7 T]&`,e»+`_,oE;x\.8窶U%N9ުH?_^ȭHBe BN.4#oJމlO~/1uw M׹d h9bg^Ė$|}UMw~CÊ0-mZ@x_5 a; !oIs5Tد7@}-h 8j'v,\ɯw#\~ifj#0I؎ӁPk$}Ve./;dۥ}mW%DIs#?9H>"mM&E~DAMwWqL6 NZO2vVu +-͆g* zEf8΢ +0L]sM;МAZf70B aL;kպyC}ȫ]v*jV,᧲,֍G$2.ه:Mh2㊎7heDYDePาj&1-3CU +-?!v +gy5ƪ|\G1bԉCH_ U]g3M:Nҏ>"z]UI]i!4]B}92:R먿qɤ#ڷ^ܤ"mv|D3&UMi#U{z,N4KqdퟦƈxcbњԮH +k2*F@o(8Iuu@öȯ}H3ЇbFhaVSGs<3P+"A .ݱ ;2B w)WWqVZ/վHaro/O‹4-}s1^ًi})V 胸=>ꀁ S'G'anGn'R}"ޯ{Xq'FԬH-XmrVkG/Ok`s&LI'Ņ=35ѤIUYZ4v`G\)R7&qT ѷpݶ&&R jR "R3"i`bPL:]ŝYM(|w㰺Q/ o`@^Ta*;Tٶ=VHI6#WNdtNZ٢?~;۾k~`\!V@#ҦDDHYfldko|Ւ/<+B6*b J8XVhƲBd9T~)UK[rQ'sJC?tխ_eE~UlWuLɒ}|A~ 4BG3k6ƔlqӞesb1=+ ! /Faik=WگU\XLԳ]EКR> _v|u:οajޑG ĝTlGڣ_+kXؚXZ9yNӨg"{B;!rIBYZZk|pOڋk$Ļ*/Ȧ%GJ|xh$K7f#qbcBlC:VʯMu6w\;jƎ[,v3ϴ˗XLY[}۰rdb*~ ~8a'~ح5 X\, c?ikCY޲yI/Glۄ:noXdgHI3ĚAsF}Ĕ=Wwšvk̉fpX-%kΨJ^ 5q`>|Y(ݞ?8~ iH~LBSKg%@ +9J6Mnt'OT-;ӑ*p]q1fB勽)ws~+ݝER]˯(E[pN FFsimWРgCw6-wG/%@xT6TxӁ*"g5ј콗o3%ح#}PM|`-W !@@:F}lK,S@@? &@Wt +1;Mm$ ~I3m#bSRGqH56؇xUBeR!]:ft> ux|7a`Š2ɍEf;'| T(;CQl1> c,_Ջr + +~.Q" 7mD+U֐1ޕ@l*+K W3/crD$g竚S:uZD_]f W7Mjjcq0P_ܟXIVbdx!O9XIӗ㨤sÈuḴΓQ}1$GĪB) +z_/U!O!Ÿ|6ȕPp̻DgSWeV9iɲە3tn̐9|?C%b` D0c, +R1U0ºfulF(r⍮\%Ĩ+"ߏ{DnJs;zJC@6WOV]~\FO'=4.9i.ĻFu6e6)QQMlA~ǦOb!5gѩYs`-:[SZ0ĤĢ#vw巉z.4> QMKUz4άrݜj:'{tq/*$ǚPf8hf{; qrWoQ* wOf/'5A1ݡZJo]kz_*@AB9 +,QAK$7  t${ !huYC3+3&NE*$9+Țt9c&Æl]I&E>955+J=I* :PEKf {7%Փd ϛOȶ6ƑHFgP4Βz({@&i5tZآtR 48_b|.y9O:goI0B_Q4Y\TT` +f`yx Erurb?h,z'(Fܖ 7u)98X,F&bSu I/T!uRݜBV5Aq8weE񩖠ȗck.[+an=UDx^\mcWA^C3XT2!% !qq?[AnV@߭[}n݊L}/T1} }bչӫvW{ hA9bCJ*;`C}ֈ. uXwR^[#cM|T4=Gw@yt@>[q1} wŋ݊w<}t1}]__[q.=nHw+{;ݷ2za eޮ;d֊(p} DԚ=Y}>]e jf+DNg+uZf ]vҹ[Y=e?CzMѤ4é˂"}z5E +3;I^׹IGfWfjkd^B'2;wxWuxU +а '7q=I^%=&WcJKKM"fZs><-SC*w6SW@FmEQm?%%F,0  +ڗQةUa_㐀l~2O:z j xs/G*t2h>ޫ iOehB#XoVkk܅!V83W +kf߽]ʽ:nlHU ]f|Vfj;hupֆ p_#[gxw=Q;| &\f%6)П}gt3I}ِAtt+Nzex4 +rK&nW?aJlF3R]+$ZKjr,n(gBڪ[TUP/rEuX<~<'FG0PGlCsq4x rdگAz_ի4CƵ3M>`B$Uy'6N]CmN$>I(28g|=?!u`W_?&P9l-HkRK/nz!>}HqA_ML(RD^_\h +.TC% 6iUvBzN}OݛVba+_tn:n%ۈ +܍rnKG^)Z㰓 u/$M[sɷ4=5mv7kդ zU '*ХɊ$pZΫ/:WKL( ]7gA&lE>/di 8hʒD<؅ڄ@Km(ƀ&帔@;Oɏ<%I!vp Ԣ|X1^yw9M +nB}Qorqs݄%<(Wc|b]%1KFwzwI60ǎ\QytU/8lX!"-=c煈q0=Ǭ'Y;F x2 +,sӰN:0,`̡75|KYvmms#`$тX/.%,n6)_ܷ0&.=qqX7K: ûU9KʷSȷ4}93O$rc8^T*Q;9N4 ٥g^-m \}pݿ Ac?"N"LMP?X;]5`' !;"7?G-gE ֲ5A|`KY4NNC) ԑB +)|i>-4P)|RCCN[+Q$Z$x/Rx\>PFz0s}tIaɆַtn( =5k3%ץ0(FeO]H7SL\xC:;GfxvDG*[J7mdB0(yN>.C/y<m̝H>cyQ2[l%y圐{[\&rShC %^QWrhDOD:r^:*wNnb={3WRw̕pnPish" +H Tqm23Of6ǻq'''G߯;PDܦdlUGSN*O}%~.#9нG :N쓌4SFfBHI>>!M+ ';'OtZ~-OPDZr,}lT n̲ξ!zl}B7'%t!o5l I_^/Vʋ a`?3 yw8fQ>)ȮZ($*s((jos;PG*t\7 A6~nr;0Y$0A;S=)mnWbzF&7wrnۓo%f97h+#.." IQB=c0CuF~^ vFm& Ym>%\}78 +  4+LNxe5h27‡Y/P֪M^3QqY}Zc3*K\xm2^P}]gy^~[7^@:Dw&b[Wdn`nLKyEb!{xJ_cX8K'zua.ji)ҹ)VsU1 aog*m с\ӧ%:6FaA5cYX;CO +ّ%)#qny3IԹC fзyOpxYX"oSغTsT^{5~nyQ5a +4VxT M8||i(\Z)Ehj[ݘzvVuUe+5_ەv5iYWm]ܡx<FMZ ܷ쬴Ee͊oBv*[Uj rͷ6͹k6<-&wDUi0J6z+W}5sPv}*'R=g;wfaO7r_% ֗kt]¶SP:3?]^J˙>QȋFy]ayxaR&z5-]ljbiD%D8J%z>+u`"4Փ>iCTX[KS|'5OŽaP3qDsDNYa'U_LownCdgsg9Iܴ\B'4|@@EΦ暮zV)"O6˕A.#iӇҌ*JTMlU%*uf޵`3NU;( RXf;!(~ӅA*ygpy,,/2#iD$NvСf@ $йCt{iIUjiˋYYiYDoځ&~hK9PI(ݺNGW^qJhUj2T?VI}yPNTd3gD(d)UCspYJ,^Yp= xQ]:5FA(yzIͳJӤ$ٳY>$̠'zz8{^:`ةzLzXx$$]4HT9 u>u8+Bs 2>Ysx2j( K^bh]8ԄCnp hD\?"{X%"@N[.UI4^XO{S~%7?+"Z=DGނ ndu# o@2/Wc{2|ΛRB)&:ivHUD$Cl(GYQ280uWgx6p$Ͳ +j3\P0zjwUա8Diw &j΀( &[;WIt=?Bh]r L?J艹%m" KT[Qs7E &5H$7Ht@.UnWW Dm/]-&!EAJ\)W!MS]zi8"EK&D[:F.MqҨ~d̫DB/xU^<#+ǫUP g[`h-&NHy/uectb YScoݞ- ZXf?IѩyNZc9 +tW9? nIN:5(u(SZN.`-pDݗ(x5ƿW6uqMMҞA3U/ʣ}Sl!1*MyPH]4!Rg30έТzO ΖYL!MB*kL$q ypZiФNȭBhٍcIP +WPKJJW>N@}4ɋϜ|R}Շ:4H[ΉDB8n"WW5qbS +5k@äQM<>PȂS~/]%X?bq#?bq#'?bGO?b??bq#?b/?b(#?b?b7._ܩmyKQ,ݘoUc aj|l?#PBCn:,@x{b ֋/.A.cMhQ:^''?c Qz4~7>ʦE=Ujn꿯7O +Oܙ嬊.{08cSCDP4&uoQqmdmP:ĖX +SJCR2If\h=]ӧ˅>]+ԨNI< t'4jШF@xmh݀Wl4 ׇ|UiШ䙭Uv8l{x+V xNΕ_.G\n{kF~rD9ʉ,D4?)r+t ]^ڧ'u8NgYꚼ +;mFsVEPhhYxFʈjT + /׬y+(t6 i=`Q"=HBnO(ATxv*E%ݞԦۂț0"(V`TO$%ikjv&׊ 7U~;A?QNnT}-ĨMiSG`㳃Ni#T"תQnp5_~NT6?{J"1b'!пqG$K'Ui +`|?^)(6ݗ-vF +HxD-"!YAKK?Iug zTA;zC^zX/?c=WP'N9"Ƚ&hm4Q@\ @+-ܱ$Eb<(M)`u +\xwC%mG@w=6Cf +U mC)r)~՗P.Pѣ[I<(8ʐo/;xv :}g;'Bæ"3o$e }GqvIjB=@9+4Q +,W|\jl-;: [, ZG\39Q7IU4e47Ag/Å/㞽2 WA/= 0oA/' ,'oM$-PJ;{;.OF,Os)9  ~~{5O7}٠ jGK׵^N]fu5@qnm=r߮DhxIkh{ m}Bт\ųһ5N4]WiQ=[B4-u"b4$ʋ1[*߷R1÷ZE$+"e/doB>C^ANq.{,<A"Vn&${Iv~ز%ڗCQsOR/@N=Qeش hR$e߹L'IĎ%*/BN3DŽd3)ԛzz'"K%:^h'$'rO#ٞkhR ې +a^,jz<1.+;F0u`ׄŽ_&%F?ϔ=%ۚOG"k^cͺv?u$:~sweFw;/vߞKY3ݥA'3;CUeWuئ`qzyaT)+}qZ۪ע@.T@V1$ouPI ~bf`I@Z4obk Zfރ rFn9ZBT +eL!Im|bg6wdY?A +@s;i{0}?/&Mi\m%6 +&ހХ- SŹ^0QmTGO4wz_3b!Af̠d^p"ʼ.q!zWG2vjwWߦyylTc(z3.ǾԬZ0TKmGUGHjLlt< +'QIgSΆVJIf. /ZwЇKD+4{Cn̞q=4N5q'Uf k{qժ\OCB(|?\Y/f9MlGr)%!JZlD QOڄ,0r׺Kvf;AodlD jVڞKjo⣕cȱXڝr t Z@9Ɂ3t/Ǚ^:vWg0U~M 9`Fa yϐ!0YQ62>@nl8HHR])Irҕ))ʖy@Ty'N4lEh=,O9ED )Rt+q;8փsyf(_Ov> S5O˯ҷd %# ORUH$=uZ# +*%)^si\;}(DBHj`lfF́ }eDZVM5ehl;FG*h73w_O`M;fi2vD |ƄV z[bnp(fg,} n;DƟ$5@gHB8BY}kB)B8lͫ)E/yk=F8 1r>,(xa[nl^81a3nӌʂwIڔLwڝv2F>Pl=C?mJNR>YZf;OaJ(5pď95Өrh~ ӗ#}xG;Ĩ8)"+ E׫m4<ۑUԃV߁Pl88iqjFH'v ֚OIɎC=(&^iNwU;AcZ4N|C'’xk?$F* U&QK;YN%s+u$5 5H k砐JBN.:DsRGdO@fs`It$/q9{zbC|ABmjc[ғ뮑Jrݷ$2h HJt]}hF +Ǣz +LNJUC<{UCp&{xi +C 0jt3Zn8 =G(OFޡFԨ)mO_aj7lX2t^j@-&͆ EKndWji~T؅R/ĀqeTg3gBR U +r} ?:-&G44#ҿ@|/y? F&^p:M#.}4Wn&]Jj5]9vH~G_+9XJ>R{NVyӛtmiB?n|1# 7tz4Gxco>1?V*PD?&%ePs)0œY'/ye5&4䶼6b@6#()6]#k ҃̀36JPx#tb86u\WpW,ۖIǫn'n 7׬un}8$(!iQu\߈JxV(\B(Zxegrm8"vhU6iM#_$DPG# ωT2Y%3%SGScX'd o¿9h~W}JKOAq X4!E2l׳Z%)%XX?3q)>kB8U{96\=d͇|tn=iOfb$N; K~N(Ȃ~%W1~([+5 EڬHgT6FjFM#25ҌWfxEXG(f??䌿-mN3`uR?̪lU4JD{fF"sцX'n䬛NЄ} cshgO >5ToUFp܌/ lHy5UKAti{"K]nZNsռaqɖ6t?D:G(h7t:!%-́~ G޸3nqH~#y0C(Bƣ'( ު/PW5vljNd5[E>g}VB6H3b&7!KIl32 mߒkB]9;?"m A5kĮiꟳ)v$I8~F'i=ŷT}RM|78JREj!F +bֳFmR9;Ԥ6O&fKC@ HITӯ5vz'O55D&R%mv?V՜7T󯉆TAa1JjC^ލ%PiTL2}*͜ $/Q WU= +4[g |{XPlK}E~:r%IVdKWA!,Ahjī=/6 >DCdwVW+ש46T67{/ ڰv H|{i%9-1ۮDDJ}QK$! R{"i#] 1!vuC$Gs 񬐙XMoUHGiQ|7ȗѽ]cܡDIa3[l8lX +6<ٰR~]?hG|g_meBȨ*!`83~)Ɍ_K2f vLk}̽4^lJ \.퓼8.ɋI^poFˀ%C2nti MB[C"trޝ>a-m"CnVEgWG+GU>C,IĵIӸu<Mueܪkv|%µ??PIBIPH$M6)r`NFb8P%#nRͯd6()+4RF\PDsA9Cm鶋[Un_" ko5{$˟ #zZdbe+xKC״Cbؚ ěi&Om!v!E89aêpuFmu{ l-'7yv%w>#\ֶRoW01#ڣA#o_ `Pr@t|\%z=DaD+ !K}#E90ԓ‘GI6Y^`'",ʍ<]`$ʀXF~{Z#D%yr +x)r.H T_-6&lb:P<˂/ռ'gȰ9*ob|K|h$coc9~mid>,Su3t s$37̧<[y-Qu Jrq/D\cñrDP^q%H;ť9YJb5~F%d:_k?Xvf*؍M)8->d+ґU0ˈf"ќ:`7fPA/RK)B8bIB' 0!| Ĉb$pO1??vϸ/| *E`HEv&J pFX '"x`$"y'yQqPㆥ8P7|?0G=VM;EgCyᇗlw8ӐޣbE3Lq0'JanAĚrr⩝3 v7#nBSmP7 +I +2)d4`5ς=Śe~> 791D`blxxDϒNȮTY1H}E^h:x_:ۊtJpE:.z\>SM`G0bQ!gPN$6F0\~xwm]bHze!;ޑF\SO B,nԤmb%hQe_F/_p9}r60~V%g_q->G=+#ڟJΝ[Yz v*s4dH!'BD؛9 &KV8x +}H|$ު/P~=`>Vw0ٳ8qNjȀY:@o^ QX3+͒sCBgWIY`ɢ^: g P#tCj\3#7~]INƤN"?HVD_P%n)AO-$ݷ9 "ٌ )ݴKc-X\R6˪l1;ΥEE q#v~ߢ' ff$Q%,<γV +sU5r淝(t +0a>lGā<0X.f + M!qqKhn 1ZܗǑcgWl'x,vY?* ZoNF+ShAIWG\g8ޮno, |'=цR5O.ۋn[{,PZѠ'!*$<0p@[cXXӀ&(̰"J%VD;(>9pÂPf#xO*U A5PeRd%!,ftv4>]? j-ɦA!טbP}+ sC<1ehlP픥d!B9Gr.A;e\V%ӝAх\B }x2K <<1 0㓝̉ċ// Ȫ096T_FT=#Y1%, ddZvXCmj,A[t6շ"l^S_HɽBK9q`-mH[4V;@:hVK݉y jf0xׅhke;be䚉F:Xl'p(cнY9Q8 #R=Jb =2"X Si!8li8}pz04jLot).r_Qn^M}9Ao +́%D#(^~? Ql gpv2m leߤMp<2.ӍG\2ǿ߳w~3 r*QM.UZQ}bu&'kJʟ^ә f_=NݽQdJ7ʞAeO_t#!_EP9u$z46GMW_-A=hVdݍ~nQͯ;E="u[D\a_wTå9m_I*#O'fNtj ]C8 .AF }rZCfsP$j!j8qG62CPv_k!|] t>f+}7dˠJuB4-}9 :.%Zw,t;}SJOɖFrU탉/K1b6EejjH4 ܬ2 +]H:IyBLSTsnLTyDp]<}6$Q=!vIn{kXHR!: +o!v5ɸ;/ VH:E$Rξ $qH"w!(6.E"O`ā@dat.DyK=cAϵ ̙2]7<kaWJlE x4>~DzGy H +"ʃnDmR;mr2v7vKp""CM_ՅY/6>n "6,g +kf oPx/9t]?ɟj}S }O+dT~B^q8UwLJo\Q\ "^lԓ<Ϧ؋} +=)B +sa"L~4hEODR[_yWlI&xd fwÊ^"荖qxxg#^ t_2 S˭^s0ut2` +ɀWɀyv2`]qrQpmẮpg#qlݪITXz̢"?@4dW?hw"vyh9h>[&vkIW5 9cH;vdьV 'g{V"6ܛp^ ͦUNbqv:5pPs(C:ڹ w+:Us>(X[‰Fk{媺9q5r~iq/Sك䡬`v۫.Cgv B.Mغ6Ig˵ݪK<7χ>1=/_8/BDCȐS7,k&ȣx6 DƥGf"MʊugH{^w|BtIK.L*Li.(i,.y/Ķi66ǁaƞsU%+Ӧ՞U +5U46wtu.WLgA@n4fOmP']0g{+by0"pԼAց팜%.yqRNU _3RP&I%!_`ci%k AAUV/ +,E_{AB!1b_%*% k\Hp"4ƻhiIX܎n'"iS] +iyI7h902xt o tB'\]5߼&`%@W$'D$S钌1 ~+atI2j$;>ixwM#z2 +=R5_Bze,NFbϮVس񄓻Ț !B%2 [#=ENWk+!4e:4M6?E~Ӣ!";e6N$ :3bP?Nn=Fx @F + #Ѓu7GWtI*QƃXTmB.!vuJhؓ3`OU+~/hUlk+Iχ$L׿o3, ) jF{C/O_ +HJ46&$Jo, l9a$A{ř> ,ŌA)~-SzIzJ<%}⤧"xJiN$,IB0¿<&$,r~g? p0x?%'Z$#.~m=9I#҅b0rH_6ɫ ڋH|)"z]I}+"u&YGOK+d.L9Hۉ~6NI˄tN"~Ɉ^uɈDu:F?s x X AL#R jᙺ!?EdqH7ʆuEnUѢGCH/K> \$ y7vbkF96@ǜTi%Pbz+ !LEE_^<4LalP&/hg\/r. [iƨU?TSat= D{doN;2/ɱ+UOMF 8z3Fs]ї +&P󞤱*cK,K3xXX#$ zk.'D0i*dw*pn@B ЯAlǒtU DZ&/!Vl:kzr.ݣFq2nf KE;0ޑ ĸ0>Z}w6F*˺Q!DL$B[|uj'LfsIc|7`lua) ,W~7چ⍊oU7}oCU"Z !>IT8D0\mH4(kVۊuPӍ *!XSIgD^j9PU8@6vҨϝ-vԲֶƏ%20:[8oS:͖B + 75yqv٢6dk(p 㕖&5v-K̼Q&揋l xQ}eʺiA`$Srʵ/ąeEqP[ >5pWWxMnf[jdҤ/)9IiN6rzx5Ė:G%llt2G#uXAI鬹 }`*zH%qీYn^Q.ޗX uHa;#x;?L7A3[QQmM¬;Of? ̺a$RF~7I6QC9ODa1820.wBo(-$rSW<Ɠui'*\W02n!e+rM$׮k6]!Wb}0³?\9Fe5Zv7pgH$mZ=>i=+ gS` +@BL*&cRcvyX{U^Dӎ&K6lly<]cF#Aye҉NUjTqj])[nHdˎF^7&%B1~Fs6$J*.4]ο1HFL?ʢJsCwtAY+nW KJp(jjPP?[bS +zRŐY\{RZX6#&N=| uhN4enhEqd,zՉ/o FyUԾ HpZ#ŮK[û G^X"(kYGQt\ǁ~gBE^H/ҩf/NO$h>K߷Av[1u!AP}$g6 bA`tXDZvqԑۑwa=nXٍ +J-8BP +0,5c BdAnj>k ,7ApG\Qgc3_Bڞ\[[r, ՎnMN {# rkȎg9{dăKAHitV*l.rsa ?A22{ڣIݴi‡D^FGppQSH"VdBty͠i 5G憤&#ÌZ(< "seJ{Ҥ}ųPU(b'?OIg.e"g`ɃK'*zaU^8(\* +4نzqh$I%miVPxbl}1YZuTLSijc+Hn 7Hb#P_M8 0m$&D#_KwqFxXb\Hl Uz՛M T/I*{ 2+fH1F| eR,4 +CPV) +%E +ǃ m.yY|0#-I =Br&xgBJy~0>_~TZ5b@Lvr[V$E_dT\# -`=JɄLˬÝY\@8osA:S%ldz=E(RLz 7y3B+a&yO:z04$*TC4 s +1UuBnk[e%Q+JgYQ]M +KhIꕗ^ٵ*QʡE q}ozm +qڝd: QJ >P-72Fk85"] +f V5d'q"k' q,=2BJRX;xPIMG~if˼pVwd4TjU\Qpkl#ψIPX}#۲h?ɼ)BeCMAΠXRWfcwQGpvT4]mDKleDxL|p^\cf9fs?HbwcCf1b98e !3r`{Vɋd"*5yW5W5U۪W[ +ӫ yWQFj'7ʛ^yP)?)$\pѝ|b6JvڈafGITUnZ乮Ĉ֬9{HA+(-أq6 ,j*[Q,7"V[\{H[ +Ҡj媼.7}@L;#~\{{ݼ~%(d:T]Ȥ)IlB ?.|Kww[Clh +Y*M$Q=XV"+vVcpF9 l;e:MҽG!k$=}#5~,,$* I$Uix4=7NvH6a]l[y~42=G3M `J  pBekp;M(2]$8BQ`dI4TEWuN%,Ü,~ĮV[}Z)L V1B;`!g]I3?w%L^1I嫳D*SMǼ)FهAXc@B~;:eY[Fbɲ^wgo|+vwAoM"IC MAA %&YcTi07* +e=,)εC̿Y~ co#?*?$Ll$݋H^JSXýَuΏW,H[Or',l_0;&'r_pސP(k*C^޻ӏ4|~T~#XDZ8a,ûzq88b__l}mTKz}rB!m &1hճ lQTV/~M2v*w6YIt-F1Ȝ$z}oX<)bط V{O2xȚ5du): ?wׁGm_ ߞD`xa}¬F8/ (G6c? /c֋*R)/vn=|IfA4ꍡ*ncN6K5!UknlQEǜ/!Ddاˑ!AiS}}w/Y?f$:׈DE+ +O2+ k I⼏놫xYx2p wJ{E}<`v s\;"õX5r~d<1Tc_a"^vlaDȼM3{Wq <MNH^79i][^)gyrh<< (3wj9vSo;BYo3,\C$dvq9# +B_ + ˳f6C͗`7B sI(%F^Vz4GO#Vl^eK,T£nrFF.1j3?sh*X0?,c3E&y;!~y@IVy!NE`uFE =COF>=쥆s<8 }Y3"͕=Mrilb0zցAb|b5\(Fo97Q#sFIٳAs8ޤA?K}_u2~gS6^F [+K oΪ8g"N$,E,Yk/g{e3}@5D;PwF5[BƃΐXVx,[?'ҟviN%DvE3 +~09(g=L%9԰y@,"tF57'#GPOĥلqSlKglE6ggn61?}ѧF^61?˟P $U'DZlx60^4TX'ZNu.F>IPq | OG˦r=G#J)4=eƔׁtv+P̧l8Oڜ:A 5M;579Ԩڍk̞!?i$ɭ+d:ΝIj[ j3-j[}~U OwU;"^u4jߝb:ޜj]UҊ\n&gY*XU9U>z~P?nKYzMZr̟[r +Hֿَ&yWn@TJo LZ!?pDx"ŠkEQG @EfDɀܕn 4 _k9Jҙe@Ng@֦ ϧ5+^C2$nHqaOo%F@{?c)$>KGxl_ W}#oc-<*MSI@cCd};$nWx~ߧufP`@ZWp 8/0hb J߬qZ&M_+Es q ^"0o$_S$n1l  {7A+|3p +lUӀ v`Xk>0(.[}]$9fouY*[C,vgY>W UV)YonU..=3sYp:}Fuxv$-fʙQt{-t֫l*?;^Թ +EM*ۀ:hwZcrAgK9xΏ+U<{N3F*yfWV_`vgjW<֥`1[Z8 lk`M3ٽ*mrͷ> 'lշx]Uz@BcV)]ȩέg?ӬI+-Xkt>Vʋg)/IJVܜ9ꐣ Pj E!Jog4DQz +1!2/McA+ {!uoOL.2qN>`ε楈[~ki^4CG[' @}IC Stt*6F GdP 4{Q/ MƳx YcUnw^ |i)}ډ8*lJ[͠G i-gԱe,Dn ~V7h<vR{]jF"bfo%kwlq5;Uk[s>1ۗ$.|g{{n=-ޟ-`M5KL{d1֪BV&H1VUalp'wMMkl?P45}'ۉ^&;K~,@XB-;JgYMzbi=7IeR;j=XWa*;K-sX%<= HĀ|Y9FVA31D2ss;F?YNk TI +IAO`8 wL󝠎A {ЮxZ5..D<1;ԠsvP"8[ɋv^e2 .[Di퐔,Db kGۜ),AB5O+I勵nMjhZBt$ZHd}c#luy s8T.gK=yKc#0((bS1vLճM YUzOΖ@"E=E6W«hT{ fo/CPܜ͎}Gh"`Q|Uų* ,h#49D'" ;YDOch6$$ 4%z:wz)"U!x;A;*H1SQЙ@J~iZ@jYY(wXim#̜1M̀Fg.6jlBJ[ +ާy4vv7ћY +4` +I>%w)w͐:?pηhԪH')T'9TCK]<p\R(5l=l9Wu(4K^| *Ul4+C FW, +iׂɖ_\$m&=|& пA13 +P444SR D{O\]<<:K"1H $"c]!dhfųФvf +N(\!6sF6cS1+'/R"[ +ۄMKݴtPح -3{ſftX-SN$hyxwwȫX''@`,2b}0Uz)ͅdzeIpIa\Wz<,>;pK5Y'4h^~[jE'&rk(seT\2T'D+d 0T/Ê;u3@YWyǐ" }%۩j.Ԕr>%4Z*}*[$dT'"턊{nk+ZGLK-6@ҫLlrדI+ bBVɽeY6w9F]6gqs66*V47dz C{01; mS,6P|rñ讄S |P]d\ gnnx=2̣<0,qB7*ai8?46J+} L Ә@_#3pZ;OnԏkqgDgd,ѬF+Ng?` ht:>AN87;+W7e /N؉ڊOhn^Ǜdfr~(ѫZ5JdjCEeEQB a;aL7AedL@Q4o8ل:̫Lɲ KT{IL꜠bٔkԖy:{#n&y} +,ܓ[@=Mg'HG)Фd{*,28aD}0nOI-!Du^nRF +rʅiv[6_Jx򽰏EJr]>*򱋍xFK>IdeMzI'cH:!&Žp<0йͳ#7=iQ3%:[D ܍<º:tZnF}(ZË(tiROMJ$n^ gѬ#~hOWx2L)ګmJLu*;HW[5s;9&N +LsȖ(]<&²Mg5`hzq -˧-h]d+Ri\ ~C,H`ߵ1 D}FI"XW}Sʥ7 Ed0 F"v8Z᱓R=ǹ\B&}zZ"ӎA<4vLZ@ +|ok.5or&s ӗiIsNV#Zǜc3EɾIq< yWɘJhqJfOW^Ƌ[=}n#Fg#Jو;dHT=첪 +;OXH̫@@l*+ +Ї:nn|Kc=xyOɶkREt\|$j:s@QQjYݖY?'K3cg`$.όxf3c<όxf3c<k<3cg.)htgόxf3c<C<36X<31ό gR_F<3'όgk<ӎgόxf3c?gx<31όogx<31ό5y 3{J<31+♱?s<Ez6lYy*3F4;tm ڣ0&jב^'>kf#"Kd\DR$%=W&X=֔T^~oYȫRZlm=]jBMp<tdNb/z_@u+ +dM6fj=YZ fu $+fWŎꟽtk U|E5s01:aWqnpH]wlo nJWHlA9tMB)yEdeqc9ݶzn>eVUB=+tꪻ>5~yEBo`MrkLJ[2nII8J&{ZQ/6g ˠE_>o!>|y*o }*zx @.r(aHLV`iHZ_cΧpAC" +qBxxDK+6]LfQx mt*_Jɏ_Q9AFo$3T"^*% +m&Q(<.[_,.mYkIΉN;U?mg=Ej:*lfjUdP/*H"x;>XtJ[֭N@Af:We~'+ɥpȇH$0NNҨT Hd:FpkRq ݳPUmRQ.&𺦚?Jnnł9(!C@g,;oqyhPX$>& %gS*  ~=&qkqP@6^T.,us\޾%=A$m;D" bV"f(ߢEq@=Gs^!@& +h cBnh-VL.3zUĆ\W˅HDא%%7]M:܉X1JnHRɕbAB':6oX +i+6zZfN5l +͞פw=4BϹ^=gॣ +53H%h~n3>B}>Boc}zetr-ČAqhXN GRguzXɸDuk3- ](榔Y볼1*݆HwO˴ܔ*#561꺍Hp&Sr=7.qxRc35Oji1'Txy^%@)S+ J J? 0d+xU]sWG+*^-UD^}=KR\z8sJjJ+  pi ZZ-v|Ki T&9?Sk1 ZkK2b7bbz--k(-v1-'bbZbZ%k1Z Z Z Z Z+qZ?ZkO____}o&P4sYsxg큷>0]ODA` 4_fԡB!2y+Fojqxp.i)7KhC_oOiaSM״)lѪzz kf9QD«UlI2 B)Č*N4AMO79 CRvjE^Q F#fH0 X+?9OIDUk+/0<$Q!}+lM1tP]^ S󟬚DϹT_&uO6)בPM9xh{Za-`\kD*+)$Sj. {AY%KUX8Er~i=IKP_G~Z,AF~;A뽾;Qtr -m--u% K78-}]ZҖGo9}"_5w,'00N^)R"j,/G7wIu(o-lM^qCC~ re-nfǩ M gb\Yb]c{?,3[Z}ճmQoE3.T弙〆EbDm9[/9ɪ AyƅAkү|k'$gdݪoXmJԺ²vkĞNQ\+=\PJ-ꒃ=B>(MI"< p*w*ْ뱻[;fh~;ќUߺFvuJA7n22IÅy`-ydnHTx#t$:73Ԭ&sₓ̉ +nNvΝbzƷgc Y_*re[A].{}ƶ4\xQ|.:`ИD ̹agȘK8!c~6=9t1=>@L]DdW##ܗ Af:Y׏x̹o|av"XWll=%lq'íIFjI+E6TtRY%l #&H .Xh [>Gjϥ4$_"%WiQ/̚_$KT{6Aj~ǹW+;yS# 1&U#WjSe wL}º1ZX:Dz-"^dhk8@z2~/l5~ݸ +(ِiRF8HVa$>亯;B ,շŷIa06.yxaw)A]!]5K/RѽN]䆡kCK4x@`NIT15Q֌3i<1͈|矴yܲc/8~;}Zy1+~ KMclاb>y&v ؟<~C&ob>M " +R.)~7KMĬMS!~C&MӉ>.~47? ~7?K&M7~C&fobwobq+_HobMOM,!~C&g(7 jVԞt!]˝H )vH1c`w3{?/ 7s]^FW5pyr˵HB5KԜ%wj?W=db]Vӝ[[# 'Mt_Z7" Jh// |Lrvc>yMTr[Ҧd6'Wre}y8ȩK٦XB`gq2:f挋qЛ,.:zT2m+M<67]ܸh9c_://x85_,C/K?aI*k)&} H4O I-Meor]XS2[Z+]"CtqNquwi-׆oV|i00K_cQwVշ_^zЋ'5Zeim }Neuvy3xEһ5O9,ni"!sÎS=2pCaݼNFBR`S!GԑLV=o)*lnr,T<D$;1x:zӹҸ{Yy#Y'/Ur"'{ip2G6 ndi4ѐF?w{%rXgY7ϼ&uꛕ}K$E6ʔ9GՠdT>rnϲq&ót"77 %ġQoSlƞ݊gk'E6;M"EsK]9yv~2.S\k;dmRyR7][LjoX^.NDAIa}΋Gq3Ok%I'IUI#OגlK*'1&N³HbK/VswRDR])UBROF£ +jz#HDKeʋ~EIf‘8r +et9wĖhPR83ܜo`{T EJ +I'BD%w=N +…nA `y]IVJu%Q;7X]IJ3cY%sɪƜ#ݘ֤D~ +0Hie?̸$^ȖK+x!H=$pe{ AZF[@|}@Zcq"&d +d6(Z!j@d*pMSdK$OYn)-w4B:[qtZ˅VU3EGvyī?KVGx}ţ.{mOgz>&+>r@IXpiuDv-q2F]Gaejd4[*=yyyT<۬*Fj <`j߱L4/um%Zz8ZzZ< Q=G% ;W J4"I|WNeU)YAݫD+3%Xhm֜REQ#JH M8Md\-pdE},2QӦ`Y044`ugB9-7iqkL:!LJ+9{a 8Bχ!/eYb4KPXbٰľǗs/ K /KleaXw~ kP\ Ȇ\#ѧ5@Lyw3̰7Î%0 f -%Pտ[گcω}T=~񷏫H ǿd?[bYA5}lIz'_o'rGLR_oo?߾O%60"yo15?a} ^{lz*1]6+Ub;knaR/h+~jOZz-UbZgyUO*Ve-~*Mwذ0?\e=!XY|AT Xhnbp^ p?Pk0z Y[CGM|3%g8P g8mW0ChXizbt.tzIJV,[f[!gY{ү{LGccV%z]f<`pCiKy4FG +p8 >nԂ{{$UnsCH;(./ޘ8Z 2ȮoY L՗66귶WˡlFbr#-jϫρȦԤ+P]|O dqҞ-C2_$T:eў-}}3ĝ}_uG^;1cU@E/g<)*^J*-Gݡfji}5C:p8 +$2jFZY oP it=p釙4p-LCqJ 55,ȑL^j:{N KLBjAb`rxspdj֊bvZ@-h3P[Q h kK1^cfư]*-6j9:[1Ѓ4]Z|/-xW]MtC-\+_)ճ +`FCzȝ鄖,zYlko95 >̑yJA'(cs3}p/EL5 Nx4qݮYG<0GxؗSjYfr|*p1 #w1{7jbp/6.Elyva|^ |^|^\nF +>b>/0g:|^ |^:?y|>+|^|^|y|^`>; tu-_q|^|^\0y^ AxtB\?|N?/0fm!mVMju(-Ѧh+Օ0+ +%;zN<ϧ654wBT,|iNDJY(.(Y*'.y4u`l*:UέRu?EeaZ<myn@T|Th@"ĶQr4i[w@݇j>z_M Ƣ]\:Dêʄ}cj# +94;vy +P!^φ)q8^:~>5+2\Ђp:kUɵ +8.ӵm|f8nJف=Sز^i|)1pf|)JD̛Fy T(Y}:&=%!r6E+&CwOJm+~r٠8i6kJ;CtEA:;*[j[Sn#?@}sr-*yBѻ/t_Cxdǖ-?Λ_~Unshsgj1ވ|C\ڴ*,A" 4{\H[TCuEߦ2 F"PI%W I%DT{'3CLJ#hDH)3e;E>}GY$ܟ81=Ū[u1BWj7)DJ5AIBx`ڄM. f*һz5Z^3ؒ0f\6s7_"PvF^ýP?[qO{Ѕ.j )FJ6w#Q?(VͳGPF07%%k_) -$ q5'oєSנGoZƛzgRतW*z: !}[^^%>Zp Is]\N6<|[lmһ̷&m?Q pِ=ˈkcj6Bm9f $XKLjR(1Fӂ Or+ n^lt8mܼ x' lX Aí ܼv +ͺ +u۠+­ n HX|D[n *3VT2|X, +Aoq s&W%2u±}|>&:e֏|#Mlƾ%>J++kq\-n( : 6d˚l`?qe[NZoqSڌs.=L+ԕ`mۄ?0tZ0IԙKO"x qJ&|PXu*:NI;Srgk❒ρw+Nq/w9 +k5wF>Tnߒ)/5wBgǝT!/tpq9_*r 4u/4fVD2q+=60w41P2:=ԖHw}N4/O*O o~B '&F-LL^‰զAڣ6-YzTaU8Ū8XM"8*5o =!ख iC{qZQWj96Ղ<*F7 Eki(y6$:g4j'PJQIHgzQ>m8r0lT)~c.ToRs( 8ԏ9X҂8i l-.hM|FaEŔІ@%ۨF +t)=8:͡iݴKI(kaq'6N51巺&v;Ѧ@79r`1/x +}Яo̐<)&NVe< Lڜ?;IĊe a)FY&N t~i is|&NZ7"0RSfc,|"rr!S]`d*~nDyD a u1:"41Ԗ6>YA+YD 3̱֒p씮#QX q}'R n1:2}d<#\>lM$6-H.fŇgQt{PG܅ŝ}2yVbWesa&]3.0x֡n5NY@+3βNx1=N;eϲNYֱt0K(#6l}wQwixȴ+33ӌkL{%X@׊46ҊCګHBiWF׆4ҊF7 i~gP523ƚbUaMqw<3.n8 +nEũV3\oTȀlAyY6C+&d2hިlB)rۄ ( +q> pkddn psB^q ݶI7IGnt-j`匹.`00ב\cۿbn^b렉 ߲j_35CӶWA 0V9Yy#k{Wim$Jl•G E"G•^p>ኲW7|Y+r&\7ԬZs6#_'_\mQ]3_ekykE__*jb YOt=\)?}luo +QQ%Z2&kH["[[?jGȩo %-o,}Kd["%2-o g}K\U8~.l2H>u bU蚖XBjZzi A%?C zԴRRдN~a'fs̏J2G7:ӳ8"g G=K_ϪQ?YAYz[_zV0=ˤznJ֯5CCJ2 +<+`URkWx%^sWJ8W"SrƯLJ)^ gJW7QGcJ. 5ylIWvUkB)rۄ Wj~%֯7_,U ZQi_1CKJ㧣~%_ӵ+;|VeiW"_j#rhWQڕڕҮD.pڕp֮]2նg2@կ8?lQa3?үD0{'٦ lm  B/I6ܠ {l;EMՍ`ĊA@I7TR +Wʵm+M6iwLO$M_9$-ANv^gf`b~TLZ PJZB46U"y"a5dus[-K;<ƪoDv f _2b N%D3ˮe+7i[(-8z5*bV8GQ-`S7S-<ڭfoSV~& |C}F7MC:}}juk/$Orz#{ LPzh>ə sdk=0w,5Ǝ㒢1)Z*`q53<̵nZOVb:aP Wph!`*CP &YElV,`7T 3Ac VuV&%N{o?khF1ObqHĄPy̨I ߔyv%'N;6G2b`Hh +fU4hҀa ɳ`XAQnɮ~XѰfM9J#GWwQ; 5.$LF||9|"-!{%mSta wpz:zͫ.#iulP2uZ<ɘwJi!_u8~R)П=4@3Il5=0H\C9 ӮU@=rkhJC lFmmM +/g!y"j"zz7{3Wz ޢOYğz3˽P'ٿYX2dt}XSVُ_ Y$_pvQ`~FGt^U!)H)"^5kz4Ws>7H{|Ґ+haP>}U!.Z_=.nt@k Yﯺ)l vRǯZ +0Ӳ(/JTђWYbINSyQ-b|kJ`s%╒)I-$iJu +4Dr*pe5J5 zt*p`eeq)KѲ~*߇ʓH'`?ۖ>`F2̫Kݨ^+!PH?5_;?pr.)~8|X9\e!_?&JcnX^f{:=Uz1=bϻg߅w{v?纫o&|@^faG0Q2uoGaNFXZndrZ^}6-|?wZTQ³/sOq+oh]v-rm}Ş$4YԬ9->s=Qky*=tLG|FnYy-ie7`Hu~鲭^ږSͻzu( +{Jԝύ&וc~ofo3)< &wQR#DP3ovo,?O|9w?n*)evy^/(ܗm7#87 ƚξZ.vD}Fn]YGGˏXB扦ǹkj8}f6a +OHq&@CH~m44>'*prՋ3iѥA{N\Xz?xvzGc}yzE9GvCts{JBchwqL+2׽~9^sW~Kq4n8ƴs5Q\a6mT|}e>~d@Uxb[N|I>9@r $WQ/zj>G9 ITO0uvHcp7X_؏4$ *z{+pA| + tMyls]Ё[YEtފ3+ hI45+/݈]}|U5;BDt-vܬA%tR +fR{zxקP^+b9I^{g!kB%y^Th./̣4h;韟(7jD3]ÌRzD +!ND x8z! |sl(ZZ=^ˡǸTe(uV:#'ˠKzB(w&?Г c%m +{+W)@ڮS3퍄2Q7Ek2ˁL3Ұ> l$Xv3eyG d9̊wP]@\ER 7.$|:ႏp!_5F]XxsEC*/K5f8RYn{PfM#.#W)ŵ633۬{Hfug杨 E.a,3}Ϯ-֠pJ1jvPkڈ <@vQ_,Cp.h0y'N. =Dsix]]ކ,*vհ3ބ5=5‰O5jWQ Z^j/e?}Hޖ+ +X+Zs-N'Y­S%NYG ~`hWq GJS ^2#Uߛa?<1;8 _׋\m2~!U]`:\FP o*é b1Y%FF,~bn6ް\pmPI[_;sT=GG-1[~7U4gZţfVЋFSJ-wXGQ?v@#kF -.pct?A)oŹ3QNݩVt:{! m3i~;DD7S[U!BvHw ;ً>I<. YFgv\MYv0wvCzh#l8u[Sqz0+_TM.->l)t86$ s=GR<gkj`7R8ؠZ]tZpw{~b yeӉHN}CIRk&Ss(KO.vO|j`MZ-K "~'gC!fV3Mri7|D|A0Ȩ't:q)mN 1+~Oh]:M>o8 +r4JS,~ENNf/XnZ/IR RsW`åх͍qrl{XnhhxSlCN}崹J]9EI*]XN,fCSA^]%= j%6 mv!)}+$b y7[Si֞ qT+bmddE (<h:0{e]k0F媹rzj>2.'qH *]ʠ+m>e<[25TQ!.TԚFy Iz9dgXiC@d_ +A}Fy )GP8X Ig؟kvc ol 9'(sz/JW-Ci;'N^2V]Mƫrqhkd CO3J+m?.f؜eT?~`Ϙ+?Zj,y7\lo ֞> UѡypР?,}N䎥dJ#C۬ҙ6 ~ƀ8Ǫ?vhR/ 0~Q~he?t{)BӔ bi^O(^e?zS; ߭Cw㮆Ӯ06HwSI۲yږfQ<;y'ӰK xGU7^OC 6_o-}A?p?v)'4eRSj8OoC*~KI3òyNr5L<5fBy>^!@ _AX3Ki|&בе;hX?[+U8AVhlL衅L6 #ī= v(cVt54&9 g +(K.7U?)$5U< +6*`3uX=՚BEqԃ5w!Lni.Cߨ2ܵp!ļY~I~IBi+ '!UI~1VH\ybΙ':C9yНQҬG+Ir'!jmzwX|&;H-@| -0/ .O ] &'<1}jX .π.F< ,TepU%bEKJA"ְ0`j]qi8ˋ0, prwJ6D\FKjFKP/oxAlֵ/^e;n{*ۅ`A] R8_F AD$63pv&%kAT6k`'&Z+<04`m<2]R,WPKL+,V+&<#ʄ/c~#ںR:4ކx|]K*\l)]@ҍh&Q-s-}r8` $U!.;@/wAbṂ3(&, )RH6E$-L‚4{]@ Rwj)1!F̒5ibqE|JN&$$Gu +֞0u?M?]ƞy؆ U*Zcb2t$y_9g~PwٷFp?F8tysNbf"ҜFw;|2ypsi FHkyH|+kI=ߊk~&&ac<3%^WA;^^|ukX1h?}}zVДX$Bp[4TAP-hVVxCX0m&F+E+KF+0KF+̺XBF"\a_NϏU0ŃIHŻb2=SPdX"o掞dP)#awrD2לIsWgĈ$%e[#ABDʦW  $ /CڏO`>\[P2{33a'|!S g7ú֕ZvQh@> +3<35JuIL3¯9J +JN9ojprNQ,'gB~z::93[uҧ!dAYsN -$"ZYiI #c0uu((\4F&ttzC.g@ƪC{.D@Z Uÿǡ#܀lR{q4M$МӖ0v2 EM9 4:A3z3ԹB( )D~[^4F,-;~ OK ' 'H߷^ss?s/d=MAZ=}߻$ޠ+-hHG?w1f{2ĎTʆWk׏5I@; +[bqJNGsڮ!r7`Iza qm-o9i)]-&-Ϛ,asO-[NzX? lմI78ʖxWS{!vK_<(зORV| )~Eh$ĔqGdeEGJj#"H'Pl: #XnrB"~uGR NR+yoXa[A[X|]Ord- +2>Ï;M&oÆ\LHl7vzcpҧ-bR7\v1#RIf^ <&.kTK7oSx̆˗J\lT(=MѥB ӕf]Zec}4.rYpنkz`4&j5XV gQv9f6^dtx< U4Ot"d\eG>"rCe$g|CF>Y׊|$HnzԥSJ L]9WV4OEo|mB7gR']Bе""L O˞)EWkkcŖwgx#qr"wSUUE[b|톭K MzBڅCp +iOa\`Y‘i:-pe<УIM/xBb|Wy Xfs_yOQ v( % Q4[[z>nѱ)| Х(mESγ6{.]ǰ YFGQ/b5iQ; +\f +ʣ{z\Xgj^a5Ikc1K + ]ȦM^ߥ,EBmt!v4,?%Y]Z57-*ܣGyٿAG.tnDj)+WACj7=^'+|͔{h"bzeuzL}L +S>GmjmDeqڊR Gtv[!^|C;iS߶piltVeDRFRC؂Qo66.`Oi!Iɕꢵ+fyM_5I<r8QwIbw8jG׾(mc.eRq4 .+ѰVWݦGKF۲:jb) + NxIa.s +oS +;G,&u +ʯ,pD*C\hOAް0 Izcy1 YP"H,< y^B ^ur yepnڣv`\8ʣ֣g\b +^!bF*j*JW9>,Lfr9P+pdUoӃ`Gm07qz؞`.i. O)R+tL7,B1Ϣ +@,=2yB#~uTYcp%uL**čѓ䋗}f8ivCʁ9'6C'A Ɔ/'+R2Bв^>:HzPR/$⥈@dYrb>3ـiMM +3D%@]g]HGI$e > `Rnf 2Ȩo! -iI6 YMc66bQgtp + N~sNBl1ג|i= +)gm@#!Y5tU&^42cq()TFlٖdCAs%1"Mt<}PQZÓҔDGt[%$ҧXxUzJ]? +hj)b-B%xsw<;tc|̴P~Jf#XXPK)fq0Fɮl9Lɘ*hRP̦ӔLUa=~&9 b/oY̒ca[gc6Ofd`KȜZ>A`|=s7.\D_Ryl!ZPɗBNg?Nُ#NKs#_ 6ܬ?L|7.oC"CZ $>Ew)}8~K椶 $e fЩ9g,:۾,^lt}yéK e<2eߜ9¶'nD[9b!1*i24+0\x.ॣQ0-?]N詳Fp]ueTWNHy[YU'oתɥW8PFzsU=θК8{E"cy]*Kv9K5?=A>s@Z += TdE$9[iFSV(' !a+ܗ "=ZnD?-VX9NfεJ΍O\2qrf%;Q(gU +䈕0zA9_dD.))?̑b' yCL! AN=8"cui欼%7X3laذ9u)#X)EƅSkƄs˄GkR=z̵J'ʣDrF1$3Y1S?I96uUmI*h"KV y!OK0w mrb9&! ʅM98AN ΡSOD P3Ay% CBh`}uЇ,?`a>4|:CĘkl"QC+lKX9gwD amM)v@GҀ鴼\/NhQ4q]P˲.9dkE,sgX4DlH4>d_\'s0bBt=Y*J2!b8(f5$ZloҗL9ԉC rmS0; K29GAkcg2ְ|L;ρ]/c} +i3UBH-iW3]ƤG1H8$hHcdo!? * _|gor]E<,?ϓ|Њa~";JI"c gY40ogTCLW!\[y~ IE 0B{*RTmd 1 m r/F 6_Bt4yM+)jdMd~LOQkUrCB@LbcvMK2:M,b#4CP%r1H( } Lϴ,&Jw7 W%lJ# ey/s+xli&f2{9V VꊨT̃$;*sPsN$de6<1 +ScCX#g+=NL2&#s8.]'tfԣ|S9?^."݄>`eX C!GpSY2F^#"5,O /Tu)CYObW8g-e cX$_UJH:%><)(jpp+Gـ) ^bATq!)^t\ȣ1&$ċRX'^췲iS&Δs{c=xg\Z$DPÅFel@ laxdFe(_o%dXJO>z3dތscW zb$=TleIHcM{48pմssgûZFhVfDAVqzX_+B+_v l)+HqFf +zHhp=M$#t C eW8ܾz'I퍞=.2ܺ%7R Sl?fY eL|\:*l=BVSIu Ku}_9T=B lc4_;Oިz͇uH4-y}Lݏk崨8M/[2QoI3Y( z6E&mi_q*^VRhޓnjyg\Cd>"1|`ײ.o_VٓIJ$Tw:UI8`6~╗.xL{y!?I[p7}| *F},}Q|}9}&*oeKYQ>nX.R!)o3J;i%I'ȸ5[ڡ;էS߾ݰ1<<{"#2R@곜{}玁ixu3v43vVǙit&c_㏭cR+nM~*1eo ~ ]$ 蓬'k-dWڅ(bTWk/}RL';O-sN!]zL Dž+4 @쯥'FA:Ȝ s3^8YpUgxz!43<1lGse3I}v I}G@LSs3&;J}!bؐg XQ>!1V,OW\lėH4V t fOˉCoGB-h|#/cZбFZ_:~&8o/]5+Vx\3m}Ϭb g|xٴχ遒vj>/J{o,yoqp[4y*`J +k4y5ް?mrXI|TCYqNg1L,yZY]l* 37| gmԔZ 601y/VH&Өɘh1xdqWr^>,HKG ]`n&Q9H<{e&+ONUJ䩖"{= +A#e|O{ +XD> @#1!Ҽ1rXT:xWp zN}aeSXU +v}(Azn<*T:"lu46pÍSW?}op ɬ=: (_9{Gc^D Iߠ`[V^ڧ;t5cXޒԤgs,/`U iI^sSzO,Gx+5X*M|eJ\&yتO֭&)lW/|@FOᐒ+`CBl9~+S,pzpn5j\]36\fZhXI`%KM!=O]tޣy^9d82%e}}D\gltWGO(HWZHיLHpF{2_NRIF+ii +?G&Q5d>z^HБ;5wN%u$uaԺ;5<)Csvl_hKߟn |/'8ǽmUgRnYJ;p܆Zb9ܓ,XX h !t9*%Is;,0>`ڟ }gגnQ?^(S=VW-3DԈ 'r!.#Tsk23Vqh[\:+UBʕNK*bۍHק'3`v8}zJ`xIU +d#q TȬ{vbeodG{V;gπ?c'@lxk< +(tP$K?c'1F{UXq9)?% ZHk`P8\Q6$D+=2[i)g Bd&K']qDќ1NA7F 6oU*HįYIZ}QW;b|!;|!׿_}!ˣKIqfn!64)Y$#R+O!UB_fOjVb~9"M%F;>>h\.e8vSU<ГN|eGY'=DN'=C9$3O0ˮTߩ`uljD M"Amǣ@=QNP <MPy3}Tj%]{}y{Z e>D߶h/U{\@_j/pWb@Ykq5Eq7@y>n).^6j]:Ʃu.~yum`CIdH?ߢ +? ?k|ӆ2T}'9>}A5>yf1Å +3JZ|-jܫ" +"AćpH3|5pjH,-Vo>l ]gy.5p||۹ԲP ][;vs$a6;?uH-Nd3YdtNхbh>Cd}/ʨ{XTۍU&QϷRQ/we,ؖ: +QYQk~#au$Iif2Iy}]pi̾[Nvul2Ih@dG{7VVq@٬zY_ (vt8CSOqD1l{D_/c?%KZWql"کmZ;d 鞰@h6Z͡*\Ё_pT,`uJ=5Zt5)zb.ؿg<H ol8bU Ʉp34N-Ҙlj`ה/w!qY[>{e!5ihip+G,]) V*Dv%^毬]w SIkhi 濄~N I(GCmmC8U, q #+^É_Ւ| Kq,7hB,ldpЋ EV_2֯+-vJ ’t޵D| tm.*PDZ$M,TIC6̫2c:ìNZx& ~AuCJr&.ݖz,z`Nǣ+>тUps3/pm?Yu!eaf[i Շ%! +VbsTb(!B&5VY1~X*/ޢ'0ALJ[q~҇c2CO>DD]Pj':${/o*f$+ 9IgI_UK 9S'kFGd$iv#S7ΏŔiKo`  +]W{MtG1r6P}/9FkY8~P8@62Y /b3LN aWk1\n,HqQqk˹鼘!==NKÑf>" cvtF?nFLn =7UhjxUˍs<ڢNy@ =u`OJtlV@OT[)1~ƵJt +߰vPJ`=rAL웉juBXO?n7 8 [ɸfR{uhɚ|Z|$LsC=4"1# ,gWps ! a0_(T%.?Y5 `/'e'`8wB7Q|cwrH:_$r}VigYl@ZC/d6 ?1y4>EȎ~5pT5D־6WJ^/fPe&Ty|f CeT4'q@44o&fµ94:znrqoSI5Zs6$_.\{ PZ$/7B@WY?+'`~/1ÊTa%ࠦNgm}E1*QQkۢuBveMئJ_kRԔ^QlMmcF&`%t_u5W^[ s`; nrXx)qgvI?YG:^?=0>XvARE 7ojKxHъDA/u- WBWqtAJ1][7xJykGbI;sR$z& +[ڨ|7+O>B[aA^\qP|zf-^bRtB?ܣ(P͚69<q#,]P&`lY fX;I3 ;tV'T >'+M6ퟡS>5l$Lf|HVA)2ojfQײd1 +dHKyB)$12,bu |̐/p/0#! ދYS//0M5G \V t t*)?_`@(X|_lD2p +Nj\>܍".1XrHWNB G,p5IqSNO@α,ICxm O,~7* O].Y0; +/oUO#L_~mn,8ž5[p{,qP9-8jނ}rނE?O_ }$h1/r)PNu!rIvH nvLb3ˁwظ"~6@\"8h#Joc'L(YV\F@xJBPzg[-UktDtky4x gPi'y"`xr:&2gUgF*Kidfidpe:=/ ._"l`3*OeoH* vDf'>j6^U0^,I5yE >i9ƻr !x?MϲGK1vK 1T\%mt^'{v,Z#")TI@%pؼi>c#w<\, +&r\|ƉeD3;3`gzMϼu~#=;DڿLZit ) emOhEp<ljpj%n-N ޭ%UլvE+W_(j5WN%_=˝Y@`x|M0"B}hGr>؈7BwfbA̓)aTkG'7MKsC)4DhR˟17ꪍz6J-)M}-/md]v%LY #O_Y)G +#X'`os)}w&/˂pmY+;kҤ~z凋+W'ܳ6 +e߫6'iq~U%֘VN.ks<V'h.ꣽ$fqJ|>fÖZ|Ď'ٺa! +v%D!^L)$?*ZOe-AXM (CF@d5_]~>!ӈ%>k,Qo9/ /:#]s>Z֨[>MUYGeGzT$5Ka?_GVZc(t87vMcߴ>x,;T*71@Oq=cpp9+=(k/B.KҳuGSf,V|"b1v6PL{%bE7nU(t6G +DK2 f*;$+i8cq3}_шi:)1܈,Suz6MXKf'Q$YXv YO0,qD]d' 9W 'mdAHD*"H*P˓c >KH[!! 7g $q]4?7: (GH!nW6;J tT".6Gmpcѳh"8ea.o;nb3kt&*s79"WW57`1jg[TH2w`ŢHbw#v?mh 8f&͓W?tf QoX+4ܻ{{=S=jn[Gsus,޻g{k.݃">Q:f gZ X61%>=uDۄmY>^ń笳"d=](?& i}Bc4}/D'EvX4 oAo7JKZ74hw}3a/Q&B8B7,ĭ:Mo?r]OŻXEypj©Qh1D"юn3+GE8@ E펃DmPl݃ +U{Luݹ*uI~q48Z +}5(k{]:^Wvի.?8%ߎ"uIac~kTglg,1mԬs(j E;fW3tݡ6H㏬ѦuP*M,E zd'5P3{ju0KfлYFpHҫS W롭zh=+SkMx3JhMo=u[/A[֪ =HE%;WDc76z+u(QZ#J-mVak%畺՟Kc8S/gS7vN:.B,ӕ~@V +*|dTY)W6oN/pe/ glhm@O9.>娀r~ޏJ3{}DƘeiv$3 +j!j +$5N pb:h/,<5njKW`*'P 5 +*V& v YJ@v5410cN;Fۦ3}ƻs"ʹ4PVLz&V6{Why`EACX |J@J +/z༄4u}h׽v]+F ՚=,6lkobi@Z~UuZO _Q"v`kj~CGK""wNdf|LܒYvxGd^>!朄ssK;A]% fOK"Č|Awj| ^x/Z 7;jヂgμyCz;“I8&EI=Zx=<2<9=9! (w}|b (=|> @@ ~y-rzYPDo7 +#Ñ IdG@Sj~R!9 +)Q!9e1x8:\v1tHN@DtɌѡŏC{/:$?!.90k˧?:_?na_CþQvDy)y `>>?x|_">S׼IbӫةѤ3nuD!S8BfQ, E0F;\d7Z-y5vv +sJEHHѬ]Y/<,1hާou2))~<5lHLx h^5gωIxC?kV|[]'E9Z.Z?Ah)vğRԇhkjRV}AU_Ub@%tрEClY_*`Z" }*N'O2Sd_SO $ăBqF7S:!rFgJcl+إ7W+5 8LՊvFޖӶ}P+o?ށPA 9o{OǝY50i[%L66>hLcL(=L(}NC,r)s~fدhy=ƨٟU4%U7~'kثU2ѮZ$4yɰlLڑ',_VnNmAJuj/ԠN0Smƪd`$Ԭ$9 +Q5/t{Y#ȉ*\F1DV폤q +B>tƬ >ø g4ƣi3BFFY#]yҢw:nw']2kZ6AD `jo{J`I˯ָ9V U*[ܱ^Y5,:.ݼC',p'ǀt|| ;]Xoڨf\ǶH |zz>C l.ڥmj SD'V~DNtĉza'sAA#H5H"c:]u3VD h@Njc6KgCP: 7wE4vRm,3ܴ+\EKMJ= N)|:`8,vţYq4B3X \xfQ4f4$ +H7^xH{5ɮ&XnsݖkF_鱋M>Afޑw(1YL| XP>Ф/j#$.Du頝yzPBo<±Q ߫jV} ' hKGyEIn<6.OQ :ԻA-1M k,@0g}KLj%̵HVkWOHX--ܵO lsKoLёǘNЪhf:Iש9޿[K }! +r>p5r^>4)>|Ziq"s]t#:I`:ZUcVof/u׶˽"; PbʇsH_8XK\7F.$ifLT3IIaʹ_I렇Br֡(9MQRnh+[Ѻ+r C-Xյv 8$ǵ"! \썤U,CK(~>0cLj?z/}1UUZ0,1B$bZU >$5C +=aLߐF,@gX8Gmkҍ6ЊĈ;W!@>}[Dܽ@Rz {ѫҴEG]>xhIAخkl{L& +7bPN5$g7M%qa&V$}n;k ]oMuE̝Z}"B̈́@,즑Oz2khT!${*z[c;'$} 3.'s1bѨD|=ih>Fѹ]eM_I RD'3?q%1S׎U~p5qy-up~.'[H +-$[XN=M,zp.i$ + R'Quw;iF :ilU'?{^?޾yTGV9={32ּZAU;*tޯBB*}oz6X.e]:!LgҌv[F5uFh +y2`Y +*5T+?W]Xw52fi3mV{Hy?_0_+kʆD>ceu<@hD~oLX)DUe5fs=J5NwKw3j~E9fhǤJSܝ;^WTi +8`b֌ XWƍKNb';^P_GH#Fz5ɾ' +l VDkֻxz߰%jܙcגFmЍl#8sAaShK$_ҿנe^ FtəV/UPbHm%%'V['V/4If[TE;qw0v%*!V(`zs,oM:O*:f'5dœ:rb*OXAwԋ)fgI^۬Zj᯻h3M/gxvpRQ\ÏG2B_1^ Ÿ2\RޗlIRt-+QK"3 $:m + =3MINsLY]@Ož 鶉ǝI?΅Ti4)GE(fIDA?e\HH4I$%|B@5v^PXWٹ>syؿ5/C>u#OOa!=|j,>$C /9&$"эm"QRхuVmKPNj0xxRQWTQ +޶ aF W8/s~Bx9.?>O1ǹT('CEdp(Wښȱ4?CgQ2V?6gUoU!dE 5_ USsoHҕъL/ݒF$P>$^I $I1ӓ$1 b2dzxL =a@ I ȸ lL?4c+a֯b i<~I?s"S4e{n})L?f?j1HzpEZ3- +5''ۈ`!<iVǡʷ ܗ_ o|ENasǐ'ܟ̹g 3#sZ wunȍh BMxa&M=3gLkSe]}5{sXH ;燼;5]Lx^lkO; ͉DG竕.1|FGkcxb@8ێTe;D/|?x“@d8—GuW=sWߩWt%U nRk&X$?B.@cth$'3g-3of*38;՚S@qal֌ǵpŎFMIL &3wZMu38 5pRb1KMP { ev%vf@|GK7pp*3utE0!"\½(JC8gv29#ܰK@90 K9#ܰ¥ܗp^2ͺkdM8PT.mLo5=[ߋo=^ tayܜm}fm>ؖv\-1ƶK69xnO_ߣQJ0m (DˎNx +2ug~S9ۯ9{ 9*d;3k?4"w/oD4-u_(xw ׻HpD㌺2! ~O\o/5 |0yfd%}L|M鋭p^6xzil/AE8@/}es:ϿeSwdb!?4Hxc zϑv'xy l 1%p-ybub8R\ҏN^VU*+|be.0Qxkx5qw?buOkgA&dTmw/Hw Cy;Uc^p- .akj/&ÿt[2+]Jh%CJkN}.қ!sD:cpka_0}qlfv3^ ƶkT6c~S\0sd0&-O,{%B^ eo'ʾ8 a4?K'2)rIv_Eg +"+LTeЇUCO>.eBB X;Ϝ}Ѕe, /2+,n=s4{^d4zH@f]1짣znB m1gy"XZ`b6DZe2]fo/ۈi`MsM,p|5]#"|ZgLJd>7.{vwHUt-TNމ4Aybub8EGuT-UY+n=o[ qsGO[^m#扦k>AUuBJy$g6(`+8h/lFldz\Ⱥxp,dݛ!iz΍.չLpu~=|UFԺGKDž[ +I¯V%k׋]%?ߺ&1>~[% 4;[IIXuDh`*8F]٪EqQ &.Y<~+ū =XVg"֟\6O4boޣ7d~ CŔY?T=YX qX~+h -qt~8F@&A-\9"֡@GǝI|1]c +:ɗ,H^ikFMT?9~b!W/y_^ U(u]iT['$GBoz2tq`_VHu\G y +Vd +j{`j,n&PMF+ D +D"p]WSOUvz2Aː.ކ51֐,i8Z3S:6s:_[DE:m\o5n]R5Ӥ`gc (miMDXtV@ClEocԡ[)JZ__s +61'x4+_rl $m*s^55)7Hx~܃~ +'OB'OÞ,%a:QWRCsbǪ#LoDVƫ%ƫ/^D_]$^]W8?Ƭ_uW4㦡_c'C7v;F,(D'by¸1l*~g:|urm qFovK jH{EF`18v۫6ςSIZ)a^nt^A>U#uUBYB C>1-\w~"בjɝ O7O[\1rJ0[-$ҍJ`f/k+G#ph/FA`FD/ZBvaA}45@o+i]@iju0FSV/[yumP=h/|Iҳ3\{ӈl7C?C",z5Fjp:dnJnو%uģN(JfEct; :-<}d𜧢'خ֜qj!0{E+%9b!Qkyr5yP@Sf__$^3riۭf :7s_ w@_Ӈ\Ύ44t/7 =Z{O;<նUoǯ=wi}yNZ_fO|fZGT:PAn۝:a9yOECqÜGEv9܍ƾV> e):F 0Fgsmt4HFܼeTv7YiV+[Z X[I'+B|4@AnwY9DkPUwpI+R#OJ%<Ŗ+lE{=ۤ[W6\;v^Ǝy^ٶ[ Žъô90vy nhr~->F(nsX9|\iXscId@LЃ:- =8I?vu+XcW'l!;-(P$&ΘYD/bԃ͕sϵ$?& $oOksJK #Թ~w~6Ogy^ٜ͙gMgG&@4GBW)3Vl~f'cG lp%nܽffC&KnMl;q3@z]և=/?g~Zr/ ~vg-~xɷ8^ e?݉?k5Yމ.x yG/joFE[֘ve b:|\fۘ]fZ=$>p9C܎w5'~qsD+:»{J}61uD91_wmO#r<+c4_ _XITqO%^vݜ6}LΉ=ɓO{7JKTvl}A3\}@Xd"ܽ-Fs]P ;@$]$T˻hC͌h͌U,4sA3祣} 4sG3%} 4s fK@3KBh?͸4B (I &B\WKp*Q;mQZhktpWc+xBըE2~^!,~%Z(!^JHE`J: KGДA] ΁t% hAEip\J*}!#.5I +L7]Q2ﯸshɩ>qꃝi;.;ak`Lt\;]3>;swN8 ~0~z=}4Qy~ѨG2Mc]wW|C+>}GSף'sOzTu}Q}:}"3GHH+"ժKHU"M!?ץ3-O:Py*g;GsT,OxfWm'KVa|;%dզ zɪdw^UBZ#ߟyzUE 2RJgI]HNӖlU|gI};3T E+Zl3eo[3*֗sTYj{^UVWսU\GV^Y|. EW{k>/Pj}^JUJWw`_J_e~1R^zy d:YAV<[0P0) fu~{~V:.um} f}d:`rޥ`hvwiY0M[E7@.U(uXh6`(S:FwKD{1o:hVqN;yzD:E1d|DW}_卫_U&`_5ZꍁWɔZ2?!iXm|bݘzd%Uӑ#[NJB/ +UU*1CgVB;]Z*+N?h?jYܿUejYĮIpp[flʼ*ShE}/Ceշ*u9Ueb}Ko6t>o>VGշZVRԸ%ָ_@G}\_U5@'ָZzi-hd #| +!$lmXa2336&zs#v?FWSņb>3UtL;FJ̢7r6E aW\;gFaL~bA~"i?j]f9K/|V؉ѽ!\O66 OWb-nvr]' +ƕh|u=GGb:RF.|]\l;^:s=b.ΉsM6v󘏃D!LnnY [D&A6hNҤ(õ㾠6ٚ #܇k@ωPJl`$IsVotMb}${nBؘzw>ڄ|V +_8H7bHDH-"6Sf;F;o(Rj';1vKݪoԫ;i.vz[GNJ-.%ɏ#kY+>1[>c58<)Eu*hV?J\*z[H4mP nItmn2*5۶7@Աj?Y^iK@9uZt4a`TVۘC"1*%_'6ebT ڪ6(qvZ$/?\d={E>[ו|^]BO[PD_k_DIrhHw%苹a}Ŷb7+ +XZ2B_4Xַ9pU W+f ^[`B2ٺ(Xk0KmCW*s;s3I`&7`&z*8/ WdLP fw7^>˜328VT_\X+p58"c"l:»B ,_x95&% c\;>Y%VYɋ8-&zŗ%VA?)/&Ӊ+Q."*bFPErH&pAq*&թ+˦QŷwoCd'oP{ڊo-s=WֳNj&oK &9~eƫ"=J;Ι]TW-Ue'CiudfLHͯ2דzU4Fzn׷6oc' +7kCLVJl3t;ۜF>nK oԜd" + +h2tta +~trz.&X*8n_ϢOII<|r6gή?(߲V=_xe\qHKwwSij,Cލ;DOQ"yHdd_GKk MPU{PAV5ZW':x*@c>`0|IqŖbX.C-0| O?nuBrSLf9_KlM$ ++U20W?ͿV^嗏HʹZ' F`SnH6XZXrޗ?b&55it )!{Җ@xR6˂>Qga) ̄x~w\yLR}y ]a Juo潩$KŜD# J:4l,OkNf[4+%W!Wpa~ ӟMm:xkCV 6>0Ha| +8;~f +_: (dR?'kvr?M=Fn}r%a;Nps\(>C +5sFnއ|f&<^_HJ/_2g81gY9}~y|sV*i#(:+@+[p^4E,0ŭD2yM.5FFi6jaOp}ݾF̦}b6mYt^Ȼ|JdLN)-/u$HtOҪ1SsɤQ5$$GCfȜo;u7)K):t mIb$bϡI VRm9(=푣!Ρ+0|EK7Hb ?0:~y~;i[r?\rDBf6UNFqZ< (nfIC=j?*pIj/ \{۸cx| dDR8jE fHF=h3[M75=6]I!d;Tj]I 8Tvljp !R:T2uЩI9;5hj<]2kTb'?KmI^gߗ +6IEچz+:A*;UK:bݘLVC +cc* چMV>m.Y{F'I?NR@)dnQqȉ7OcqL^ux@,LS'oE=`<0C~Vʼu:8ƿiE/˚+v?fb5=:ì +^—|}m>a8M`"#a?lwX`5"\#)CRD{u`>'!6׵a^Y'߬nf53yJ6Se7xNfC4r[8;)4Caf18#*[I0 ?h }9<1bBA6 X.`H2qdnU=p3m#8E4&fM0k νE&8q8X߂,t#}U)St@˺EfIMx,Fk,^&o1_lDVp^$2Q݊_3c 1 tx(RhQwL OL@KB +2+SzW]B~8oxJ,^"(BR9=v6cSK-%-em#[&vA:iPwh/FVEMTiHV̴*eEvf|B$dĜ +D23 6 'P5葧40hK2nxrBtfjE|_720IP0 JsɒrمӍ-I=S3߲9{#@2)uG>FWX$n8 ߹ ]>H㧪HB(DE@ߕuׄ.@Zrӣ8V [$%p+3MϩfqHFb}Zl0>V2tLŶh,]AHydx +uM'ܢŎkgi'M3*_ %;III-DVFO|]~(Tm +EhSm#B{̓է!/8\o+[4=S~He.yÏPhR *g{e1NSDmZ6XSdK=B[)uJ~j2? %eC ]{s^qLWIvX8Zjz0ޏxX̨qjh!#@xp&F"u4yRL+׍gy@-]tHDc}q!Ԫ7k]9DYRA۝.bԵ["PF_*D419k%I)BG08txKv0U髀 RBt(1p3.sN9ҭ\Jfm5݋&{&rzsbTsQmAƋrqě^ϤP*KNA yNA&Rb |-;L{*ɺzUe%~f:4_ҟ3L֡МBHBu3܊E jyzD13kNMMY1'MLM3;ŇN^}IGub-90sPXc[P ! HW:F Қ֜y0ar8V]ÜD!IPķ`m!~6u]8?QjhT{^M<PWpVGVUST q*\CW}Z*n_On]j&m7UY޵p 6"r.`> +N$:nG`e)al~_6cS`Vز|ԃф9+2 + ٳ٧N7K%H}g. VYPd U@xrU(m݅Ԫ)i.*y*I9KI])H$bSAJD ԉly%'6T=H.ǁ0fdz7dۊC5e^\v@ҳue;a;I;t)hf6W +vskN@9೐8~/}–er"˒}g4C(lxc}>&ϐT?mcWا~r͏Yd=O~kc |@{DZmd.ŀn>CWq~CRU! H"#T[U~PpT,;MoD]FIΏÙ5D<B!&TwB~-E(T-ϧQ,Umm'IȽ)l'ʗ &ۊڌdųa{ndaxY9r2 w: +LfJ19yPcFҋ-fipE4D8V`%3x te$5-ϲܳ,O O,0gldW݃KOdYw-.f>'柗:OAAlGX?#`;pK`~橆?FF˦ԋ#"-jŀH'AH]>#ʫojVb)roc\;EK7']8gۑ0Ȳ"7SEwEL$ztd +9i ɺd5%8Ey Ӡ@T1TBُN"{N#IK$=F8$  50ܚ]fCH,[DqMׁW`r+;uaeZv3JL=(` Yȋs/9*ƧA$AQVޢ;)WYg5DWl8Yl9 +3S/p0cf"A#w@ / o/ Ԁ@$4AnhINhOr.|ҝАeȣG)L7mJ S U Rz4Rt8Pyb3,6-,(@hX)lj]C|=FR1FsYE}ڤJo:bGR^AXy`_:J F|88$.6*l`,gQ Hlv&j\w7nQ= +ۉb7G*HEf'^.f*1HqSLUFajC3+diCZv/Crt. ͜n)b71_CC^>?(:S5hdE,SJ%P茓DAu:ENN5g|/ N 7#K4A#&D\lONOG ka9 #%szoDٕcꭣ觙pvd4O5$~&?31|PD'٤3sVIR{o~S No!b\HZdTjFhխ-FyAhҦGVᅮoygK{&"B(B +mQ#{ +csւ;=[|܏Mx(N^dcw6([*X1w.QUiO a^홒NeeաvgGdSӸ3Q0P:R5>1P@DDD)Kb$$_ιvvkJ=yίOQ+8kb/PUh-zA姩EQu<¢Q4=,l$x{` ;DCSIq 3"3=hj,j%cդK\jut%WfpKЖ](naУwF7ӱwFE硌|F`I['!.Ѿ;П*b `;*"")Yۨ뫞uB@ <EէtHƆj|=GGX1ap ZRni]lH%.6D-32 +,F6N:6ar d)5*㤫XB6ӈdTpu_.1r@ ]-+ZWid;с^nB=:?6Q 6*nnxk::vFtD65;,[\+;&YVs*)|**:}آƑ'JomS:ٺBG NV'aSVi8^ Q4vEFiz6ɚ[`?S +5{oExG\NCʰV Csқq(r/Vos[[:bv]o~#+v,NӃM ά` r??C5:2*Pωg~K<3HW0 qN!y?ـ` 4SiZ>qJtdJ蒇 +c֐t!2i[>/ԵW6`1L/mkutIc<\nɭKz|iܒvL yhuH䎘-ޚ}GivZ-k켛1 F._mO\@MTdU5m7T5$5iw814Bkr=ؽȉJz3 s@=;7}TiPb Nߑ%VjFɠG/_ptj%W#(+ 1n)}41WȂgGG"n0KI$vopsJAdRsRawA/޶Q8*Zj x!}u@]W!X*)VtȄjȀٌ'^lb22VX x꣨87*{eP&'Ss,4E׺ ĢFB )Ҩ*4N*wT%U.ZZRiN:/N\f3f.^2v3_J_D͸/5!z1,aʰl~M\{6*g[8^-gx/=)^)$:)x!V,ODFXTA#{ ]Zȝqk Z_Zl*JeA6ŹR[cߵ1/؄/qfJQÑڙh}(rq@|: -[YYx篑C#rj%)ء(70ۯ,ziMM5|uMD+A;6>(GD[/~>3i|p(nق9R4dc~KHR0s2xu.9JqIډ*i }1:כּPOWO7*U~:n A:ӕ8~=/%@@!0R_NtУndi;ƔnG0=@M]P5T+=('@v_p-֒i,GV1 4P~&2loPMPNu +{3a p +1: 0ꚭ. +,)F | +'(1*Qnè1*'NZPQ`ԋ#ZWQ0{/BnDHo&H w@* R7,rT8Z>|RpՉ,y'KZ)KEv~Ћ~a)'KpaXD7K +,N`)R:c`Q=ߗӇ<5elɸbj_:@xX*f>aDꯤU*!)G,I` ԹyWcy}3$%s gjO}M*pTS9ddo3/;df +ٛhtd==H eU"32LŴB^ i,FFs&f;IGF# 8/X{;Mmn'Ƭ$RqTBl4' ZD|:R eJRd$)B"#h;|^Ʉ$p9yэXm.p^OJb"HIRL8$A23X 4aNp0#zԉ hPdbeXћi'$+kE 'd|wu"< G'54m=“$~v< +lӤ0kHs'6 DZǗ#߰u,hzr8hXۤNUDhPfxk9+Cb @dautڭuDZCO|f|I(5b_06 +.ɚM8ɦKbut Idׇh?"chꈏƏA]:M*4S +W^uvȎqqS':d N$jmFxe}*ͭn,W?n*r#g!WEweqeEkr3Cr%yWth5ZN 6:+ .|x.WNX 3agd +F@Si򥧤4!MkH״:cVP?xuk'HMџ6 l~T#SƔr!?a:+)R^Ƀ>UTBp{O3'Mn5I +c>,Ԑ::td  aL/hJwj"B$21a ,D;ꄇH;5, +q!ZpO؉@z"iaJ"(+@B 720x: 67VA䰜L{h칗P#D߼{ L~#(j͍sr;PH @'vi zpjQ@48—%CH{ uBu5Bv2ZrU!c<5*.X?kh׃<pop`ly 屿[ѺFHN!QI'y;$M"fFI`s4QX,&JE '[HGŭi!CE'27.@y")P6:j~@#2Cc nE#$@ШH,双KKːI[$b,cZ..SP=cp'bSeZņM n^<<Rd,QIrQ/'#{GhF +0F {љ$x4 x1h*HHG $h&AmT,Ƥ419&= -:0ⵞ`!PqF)aBw:O@0fJoZkZJm%_2X +t| Ğll;z`/F]^ q/Rʲ$4*)/| 2/.?%e ҸKlX+&,gX2;KY6,.X2邥,IaBVJ+Ѱn7BPJngB7em^m|oq\"7}NEEݫF5c"A 'jeYe, +P7S SljvB!' IgreŽhFnWnK,¤$QGihX8 g%Q%6G{pV:5!PEIȭJۜXް]"P mFNd6rTi%=_cwTZ%$œ*EP H; %d#uRJLޙ=y%f*TI>žxL,A,PN؄dwDH7ʃiB1;}\|tuyf˃8]op˄ q3a!/TLI+EUrGmR!0R'ɣh;EQE9eg ֶ'Rd~.3 P$È ?/gVG\|Q|nF@vDT;| ?3̼>{NA.3{°"E_A1`ӎp4v>?*^Mi6c"C1G|Z b:\Hg궰'3_ ;Wׇfڲh pT r)%F@~Fȹo2p$h;M7m(ݩscpΎ-5zJw%TxTv(ZFts1ΚprW.?1E<$FNRM8pq4euq r)ŠL~$[c >teUu:oixY{lY]ޟCAORM9ZubUvٳp5M5qvLDos8 e48́ҕrrc^k{kXk +(pN4 +ͧ(\BN9}Usuygujl-N[n4ӭDS $A4#׸3.wB1ђh0ʀz~#>NbT FRYUW8tJg )1'0|oev]zAr8f\wѱb3=o'ԂaΤwfl΁9 +qPc&ݖ(?2ip4]" sMz~0vh1.~xC,Lsms%{$f)7e_hBb(BTÜs/̨Q//8Q~~ޫN>R%“~M濉_Cѽ+XM3B>1fůG a= q2aN}t#ľe TЄF=ض'߇ s͛2H= ʄ5aۥ; @9'Cѻ5&tLC3(6Eg 13sNЏ%ZuN$\|I'`3 \Mﬓ.x8 ___"5F\d׫͉_NwҭvҐk.6nBtA&J7Y8KR8qᯈc+ +. uk ߯jU,SS(vl݅آ,[ APŖ^hb /ELL5i[2my2 >@j0+d ;w7 +>G Z6-޼hPhxP(eKsCٷe/00]UBYZneaCi5fGդ~hjfW#٭CWh\·f,~,c;f͖f+pl.t9l6=}bPX{kzI_V~Fx ._?˽:\ƕ6rkWl:lÊAlG +' ){.J 4l~+9WG\4_GLT:~ЅWo| i7PsE%+o7DUZ"GGĮvee/ ” ] +1OaW7_ƯgW _ KK2kO尗b*/άLkr/*-*=ӿ|pb?J` :.[ۇ ^'~k닃:wLF:ntt# +M}v|qZiJRhڗS`&v.`Nnһ<4/[ ?XSbd~tSl>mS` /*;e(@,a~ܳ"^r nTn ģ[S7ToFV.9%z7*JL4uٱZ\E}FZm > o"':;+4%dkV>8Bn3ƙjXAaGCu[{ڭ($*-qr6*yB^VOvJn;ZgM̺|l Xpl m}~[*SY‚r}[Hd0娵 +Zউ +swEDf_f5+\FL}g~ML+tQZ TT:T?T:v˷DZܹ}ZVa 3sFй%D .1ѭ+e ^lF3mQc|j.l\;mZN9[ )WP};9] g(*;|Uf:C׼KXfv| ϊnˡf≀|1UлEaŇ17XˈޡQC۞yex\"Q<{^TR*S&85 &p9ŸcxתYyͣ(S'4xO*UMAىb( Mm^'*a;~6}>>G.Iˉ#ݿCR+]`JSޘlh84=SD[BD}LuODD[~WiH~f`k#W$1Ѣ7 U :bh]@4p$ܮQUЙ}#pC:h[S&/Qfgru+Щ+dnƍ 5p6[B!_̤ r`8>!6ˑLφV +yWgk Nq-XREC +蓼:MD")3F0^ f4ړ[ϥhOAסsa,S+[un0:S{0s@Ag0@!!&A͡(<)L.;tz G.ވx6mxϪ|1)ieYu;% +XU9%ѿW`D{&C'HY%{ 1KY!bxI -k,h%-9>RHVX;~ny=K_Kg[}IH$^ Uwl rF_|DݷC=p#[J؏8/]Uzl>!`m,Zy[%vr֓rOͽIx'{^wzy28`-zfΝ+sxûh9O & +Tߦ6rwf]l|bս/3Xz2i:Ql39jQ$i Vx~;'LNg0 $|f6(>j@XU-Ӓ~"և@[1,ṀoFHdk?9y:^ 9@k>7\VI< qD ZwF>mxHsyFܤ` 3B+QU{d4~H i>s&<[`@lWuq8q쫹cݕMN +ќ0,ֻ QQEա+EʁO_!:}44-MV%#] @4ϗť+Խؗ_l+O>䋅܋( r`&x?nǫ*|Tj"o'%VcNRk3Y@"`eH@_-*A]R'PMBj~SD{PfdO{&ؓCGn3B4πoHv@t0D88S?')390İ:S2$@$nta 4@4q:ݮd')vG6LDJY@`9`#po턒 c #plc<\3@Bg:=\)"Bt/ Y +x $b/NE}BKq4CPz5ffuuЁ"y!R.玅!ձ QfGnr7z ]xa +`ړ.3L M;#(܇w[`: OF""Em6Վx5wgyU_|^v|w}ۗ+yyy˾b>y+Eϓk<%*;~n#kn>Oo vK z Cg&$c9MC|މ-޼1#=.Mal0"NMUC*̢:)vH!#Ҩc>w<,*ą=;HyHl yHnՠO?v:ɼ>&F1g3#ׂtó7]#/9X0HI(0;ܞIEz@% ʴ's:0#Td-E w><ΓN$K홭+ê5FS${ȋGFӚB7m).Gk3+LR{^8%:KTɴI+aN/ z/+(,0g|Ԟ +ʣiBIك0]b*Uqb++>"&kDa7mP\K#ohݴUJH-Nrt{b ¢5e%* cO=7g+-`,4 =16<_]&g9pǤZS>RH{-b{CNd4m$=p~-ī<[6m81Y;CΌq;^7]m=_fCWTwW+Bmckf%moΝ?ڂS̷kj/Ï;=z*9jO9xf~Q`@l}0m^>ϯ +Xc{ംOl||/O*ܨ<ԯOVkO +bk +xrÛ8;敓ɓ8yע]/oU%l< ד Bes?-7,/</i:<J|[cSWQRTrvP"R2MR__ +F+k$CB/A[ߊ(W(?c ]Q#xV{#O-(JaœU'OKޟ*<-\^ܶQ7XU>G<7jw] +JS) caަ^n*OTʁ&Z0]zy惸t[v4HbtAwk;uRw x;CTn\PЄYqelYV˃bx(InOxib ҊRR +w*X6_~8C`1AϞn7`` Z|JKͽn^: FV`w_-k3 mf:7ab!*la81G^0=8͆G`z݊߉#o6hO]x !ԋP +±+4C v?P~RKA];D%0S +\W< >ˎ QXtՓqvzԋ 0>;ajA6;qb,.nn<%6?.i8nef'Co2Zq'Qzq[ G Sa~^ 6>\дDݲVe;bbVh +^/Y;ZeJy6ͣf`; 4+0ki=}vEl3GR(2Y״rc&9z5Ո%!^.x2oJ0$Zv`J,++K%E, HԎ9nocWxؐ#"wÇ4X|^GQm<nV~&;}!Gkstgݎ+[Bd +dYwީ,VV(˳IpCA;{JvъmsGÏX e Zv*ki˸Yauuacrk#|1Do)=Ka]7ۄ'^'gN&4+/y^G| W"RFi(VeW)Wወ{R~?K}2;>#}{ޔ=Weslh1zPCgOSXcZMvDJ˖iwTacu$8Ϻ$O"~ǹiB~ξ#'U? +`yI[g܁~R,\sy +wee̘mB뱝5Ubv,{p}=cΒdgLnH .>U֗PpnRML?Phag;}fͻi.QXoG \'o,>)-NbSq]Md3ђ|v|=emx?ZhFSeWkf?O|O3~ª9Sl{ wi@*\yȥp 69wŤ@uL9-MwD +3FKM߱*-gn}7$sOUi*e;9PD p<*υ*۸>wU[N+MX.ÜU3҈ŁuwA%x@;N}r'&(==cr4Ё^G\!SWY8HN2pO=YEx4G,Zf7L|ۨz"uJ{8Cך7LX8Sjy+_6r|l~ͪU*%n@ dYI6 m 3g$p&##ѼhRdqttYq㬡wԆ>"eHxS=i86Ch%C %6o b]+1`LF7͜]#go +c_r +-7awArkwD?)wV'\iv&DU3!3PcL&'Ku˵w|) +TR#U gc1/iSU~"kPm]['?^2?~}8BiF4J%{j:X{)#+ALط}*Nz\;tcii:HHAFaF]#E! G<@Amf9 +FNĄw&3&c h@L4 +ܲD0A38&BS&bԀ씘((HD%Ihcb0Q00Q [-( I(Iω (̉ZMƏDg9D̉I6$s 8I&N"'OeB8F2'8:9N8E&L0DDqDɥq"'<5NqllB<ꁥYɓbE5lW#K0bDJA|#I `ܙ+\8rx &(j%Z0J +&~<%CA"'QccQ~@&6E#2?v'0r4!F\bqp"8"<X[C&K\:HD9$.M%$lA$UH0HDs !0 ha–:(DMKX,!b#*l &hJF`g&bD4'##к PNXbBF22b cT8KAb[aDQ6 h8BB"aaMpW u``WH`l(/>\ >E> 7z +[)? +띞SY"^V 8'A9_Hq v 1,o5ڋ*,| 2_|xw8 +l{sؚM"AGN*k~㠈 /2D ٶD 7ZR{0B&DQٰUahaƙxd'KM!R#K*@-%$ׂjZ?}*^݄d rnb,(6HT4 Ort,. /d::I >Lg"&s5TGZ|y~Q=Nڱ)e0 \ue@\361)JN +yL ͂iߚA+S { 9 {- {{7i9 +;]FGT],s{bŖzβXp:/T<&yI~=%f*/S;4~]ڙWmFIZfH/YaM4<*<8yqgQłmVi~6kdQhal^v +Oy .=7 ,'Z0l,KLY[桟~bČoWYŗA̷Ϩ+1sO._~bNGm*ꋠmaFO~XwN:2.Iv*4P, $J* ;if*BJ%6~' m.ze:N_^A'+"?I*w_?ODwKe˸zX}~ fRz%L;ߦz/ĺ^GNn~ !GHG^>7xqU/aDBǰ.3* E"CF/?ƽ` +Lǟ, +ھAT(QQCAx Ip؝e9$7*S/V+&HG11S-$d#A&;Ƌ8E\ =ipP/NZ13Z2@w``TSqP!'96r4&r֋:llC +‚+bHCBVc<$DS>$Tce})y:H'=$SjZATi+ z?>;}\M +$7}~){WQI>UET^fe^jMR._aMT+S4 t !7QGQ܆xB(hJQ/N(Le뭈z-Y$ꉢ<#e x?|+KX$jMkbk9OPj|Ebs@o9l+K[o9[9 j3s@]{b՞¯Ђ ,gνɚ܏=v>3s@@? 4p4|SSǂg onPK(>!{l*OO=Ȃ<o}EL{L56A-W59 pU}ttK'q*ZPIAM'ȎN2%!u4AIƑNS5GSj5Ìq6#l F }gvEGMy>;]%V!5ϯ13MrmT.X/-!ߌH=f =>[5NeyWRܥS&㵸$yHn7(T8ÅY$sNcަ+.)CF_kXfU3N{>;r5$.k%!סo/LXX?Pn-e`}o&wX]Y?z7Y+Xߝ݅YYc;ҲCY)ߚT?簱~Zb1+p#7՛dq%g㣡Bz#[ #k90X %A81=M4Μ.ނr!Ҝ6a1>ӟ.RA159V{1bXg/R{1|3)[}'hh>k շoЀOkP}sP[ACV4=Ek@ y@ ۋ YC.Pؐ5R0Y^|! bVLkW^|_|QRק}YfWMY"+k}|;=|+=|o+|1C ^iu["koG?kW6vվm_ awtXsrk>6QnjvLtj[R]RG,BW,WϞE3=#^kY?%:%:U82,')N4'q*hO0453t; $jt2>sO,Qs{fe;5>QRFڍ=b7/CO(]_oڝkS-?ic8ܫie=dw:30y3'wNg?Og}4;i߆iX.3P/X959S+c-O1?p֦пFUiAߐJ7ҿ8}ߡoU+})oL Yߐ_sOwd<JJ!o)Z;BrGi;20kY7/]Lã,Ƹ :LŶW;:Ȳob3W],M޴!2kj0iNXۗvCɄhWٖq`lb:۳^ |m8]%dUyX-ɽLia2bOG7Gܕެ #s,=>~$v=4sPt7۴u5Fъp0qc\Pe#E~Z+EVru?£ֻa<";^BbkoGo$aQ>Yϧu<~\<ra}d!% EK \eGzĢi,7/^>1Wt~3a6FXŖ_{g}C,JnZva۴`cجalzhf16tۼoƱa(hѫ)6)'s}´Vl5M+lea1䨍({Y QѸ ۓg9|2on'{<.h|"g؄^ N%✓}^ Zwب !]'Q״+K`Ǐ`kt_FC4W"s'0 9nc>7pЯ>u~7z_Һ+ +9ۥu z\jK4Z&-bOѦ6'Jv4Һu1o_#hiZ_#wVxr(\9_r{s((G.!lJ7@z!jBgej9!'d:y{M\>q0~򳬯1}Dȡ=Csq^f+kv=)sA^g"K늸k2L6rMXG5ɍJr:˝Xb + G~ ͣ1oWoZ]$ilY9"rǟ&m m liQXIdfۧq-UkiaP`YGLg(@Bx}|&syFNB{%7:/KGhަ3qH臜ҾAdb%&$KLH'AgBxrHH؝B|d?Crhyi F:!YbdHzkf LHBI2%1ᨀR0Y;~](Y38:F;2ML:+Ay} EW"# +I$p$Ɋqe[ɌLb#}J4t+#9ᔵ31땏Ŋf}GwF>:|pjGG?2q|#t|,V>q|Ī)m0G5E4KĚ6SNOys MT.Ϋ]VqզohXn 0H`i% Lpi=ЀgDVɴvkN05|5 k hos`p[9(2l*h~?;Ķh%-v7(;l@$`􇬿F]"vE#ZmVWvRi|4Bhuz? X(kL^oAyEcz(Z0m <$:X: +}/BNf+xc_cޑӍrg vto9LjgsYnѥ*6sZ W;h.ݸz]uڎ>Ev=n\,•c}W \wl@p1YjolgVթ,{ +@Xzq_f ;l1h21;ٳ 9ٵ`G +x6+䰛&xFxb4I!ט R^?c:o6Ar%&?p/VHM,AGw7hycfq?6pvƌlI?+mѤH5TW)*V]>MkG?F.nyvaĿ]!گ%{h,x-D}[i_[.'% J4)yR(i/3%o-4(ɄdT&(yU(PԀ?b ր३o h |592ïrkɑI`%KrHHr.ɑNے#=HOjr9_ rɑ$GzɑcHOJr'%9ғ19#ɑw#=YN#ar͌ɑO#VD6,}6ddC`Vِ˒ O&H7x;+ 4_`,ʃ'|D`$Kw׉b8?az) @`g`V<'l64Qymf+>JmrP$~7>oh;Z{4](e$ +F`d \ju"VTb&tCJ>n6t=XK9]\zE`u32'E_3^0gH>WNUKՄS:}k !o'ަ8ۃ dy_ʁ1dW1u '|򄻄ap7P(/NX?ΝsFh11[^yV7yW/(R咧!Ն#)cWzJJ6%2p4_gNt 8DF#'ds8uꒂw:owmIH2M ⰃY +3Keh* $hV4!H"Іm*A0iu!#Ș4TUj'-IN^{MVgiwCi7" (@t +w``s&!1ֻJTw]>]0SBSK9gSsr1{ߣ$9Dkw~T, $%ѹd#._䑏 +#E]Z)b*J[xⲊkq L@;2"DwF_ڦlbp}>A_>\X)FϤ;eo%I{G*p翯ྟ{y +DKY4_/o_qd$If%Wٷo6$e{k׶^pwWa?q߇lMq9\Tg;c$-I#KZZL.8ִЖk^i]oK+Lalm6&vC[nllB$@`P{{̀ vЁ/x||?.91 +5׿#A3F/ґCǍçS_# ޑ`;d +5x"و)|Eis`={h ~^+ zTnaY$蚷{9O5V^dٕ +wt,*ۆ|jt(Եv`[KCE$}7:}?)7U5uoL]} I{^[u1/<[y:8'[6s]z?W? +>"^cz0LJ/}7N[肜#=S/>R<njOr4%<~!#ۏ6 ^mbOaj.S*-eZùzZD= oun0XOA#΋:Z|n{Iy5_uj9sf>.Fɝ66}:NR&~tU>Z*O +9cq?Id4tO1FN&Ogҧӄ}:i};>_9POSc7m-1Vcd=n4瘝zenNC]#us~R@+3f5rQ8}+t/: ˮEty]ufKeK\ˉZ4=nu=p+'׊_GtY 'q ^Tؖ3Jɪ97DdOY!A+Ʉ6Lv0xٻf :@WT+ZFJR *j1Vʏ١JZ#BZ%s"&UMϹlZq-pm :U/ڙ?~AB-'|b!gV e ys)s 6j~Q7wB%hܗo%x5㋮F%wG(y( +sZw|$(RNu=sGOuēQ;=^m[Q:wLxrovtw,Νf51K5{yר*zxUZavo_QzF!v ;(`a'VYGR;lh(U[w$J(*%BWɑwQlf>|LΝֹϽ76;yܹs's3Azww'Ozw{w2'w'Ow'{w1zwzw}iJNL5,Ը:pHFǞ_Xa  q;Z:߻6\ڰmVs*g}..+lBv쬷g{.ػ8B;عi%q`:- WB?c@ &>8>*Vv$slldd3m +/L͔ҸX%B#I@c? E_An>74 J +JP$U& VʭQ%MGۛXl^w2eѩ‹lľŗ& +q?Q+dр͋Bm]Pw&tSBaݟ x pC~8zGtjD:lTzD+ŷɭŧb,NdDL%Jp-VvEXU@n(_-5BG/m'x/g%Z>%=kB![eT(d4\ch2*n +EC +E-?:IXCASM\hDVhDVh Op^ƪOlTg&>'|J}{_+c'6nCJ}Sk9.C y#Rkx/:xƧS>5/.j}"XVC~?H)~s<~Wj[瀞$v#% RvÍ@iv?+uT#Xw|bUBm<^0Yjm mbq1L# k!Ikׄо-&^B>u& +YhX7QQ~]jXKt8Bj6GH4OBjW g]l xS],4z86,ELmϺ usM%$~ߴw7;6~v= VEf5;o-<~tW²Q]QL"oFboPoF߼h} mCvơifQnύ'\tњN_>}ۈ3fcu -Ҷf;B죅$N*i/N&ʍ;$N5 qz/iEMqʽQxTs}q[RB'eQov pY.GmTXzEvsSbZ-g(eSK[Qʶt(kiE5ޝ/m Gl)LJt>]m]uWesf,2bvWyCc_:5WesUf O➬*O߇Un֦ULNjDGB&m +3k1lk>{̪̯- f;H3` 90}6C8H>]@]t<$ <$ "\;`$,Hu:s3KDifp <ڷΨK`}D1q` ykc,aSqenwZtYAEv~tϴe<ۤ5 +#u lvLutEݷ;Ǥ&Q`G!QwB]xh[u;ily|6q8 &΢&f'&1Yg<&&Nl8&BĹ%yzD|7Φ9k|~4 *~Wz:lzNq ~WsJ+=j|԰/_&BFB#5@c+ʥFh8ϝ؇564anP dfEtAqyW8'RlxS4[{?1=왼'BKDo`1u}}Kox-2~>ۆ;m|"I|3.qFmA#g A=S|L ϵxD)ae/VV*t(O6ٴnF/ UVjZp3wvgl٦H63,FBWLl!Ra[ŸSV3gf!fKAV97CGI5 +JVf$홙HƜhS;A3',?{^IG7VpƷ͇RTFؓbOh1 \ְ?cH<>$7tOa#qI><{¤cw]).?9LO IHyΎ +==kpC耍]lc. t[*:廩aAU~&'l564S&fmDMB3scrl'<7;<IP2|'\K|;.Ǐ<7Pm>H2JBr"Eɖ'S 4lLQI} GU[5C&C@Cu4<9jTb2ၓ׏TX̖L,LY4OtPT%O q 'q)Yrt/7ƃ]KxdL1㾔huu(Ķ'#ڈqK)]/W*׊_4&䔳5c?&覬ÛyA9A?t&+8pA&͛F¾vXNס ƛeP)4vC&樭h{r'Z 0qd%+6NjrFrLG$L +H5<If U1٤!WnAd="k1Yd X|lf>(>,|lF>60kjD +"s<#Dq;Dv*|{o~Zs|0yG)|/$t4EMP}|g(.M|O@#NAaKAa:C7LLajh4yw|WZyf2zow3w'@+Nh]th4fhpaho7HI(Z*ZFEi 4dOъd)Z=E3)79g +)RrbdhbhsCc2*3Ss7v1CBvF1bJ6hLޛ4.*: k% ىF~{q:D+PjT 36DВ*F/LEQMm uV0Fm0Z-ŌM073G+4nR9Z-E +G3G?W3Gbp9BpTdG;Uq䙯=4w1XlWǛx#եРdI!iKMEZ1Y$I"@\[LYMJJf߻ʫ{tڹ0Wh`vKnK˭0Gm O$tOV\:ߎ6鄙ݣFHo3fxtGV<:K[DX9Աn ѱ`$'[+kIFX;ZXKRdLIi QW߲ƿjzW?5z)r%_ty:m/\77~7N&kL'VסBZㄲ[rC9 ̘PР찷w34";T"2 rB &wrs%AZ&r=7'DF,"rJDŽ">s"a'p#]/ۯ S$wj`a:x'ͦC+| G!!?_i(+8;1rHg131jHc +`.coDG[ :ζ$5z @#KY ($g3:(/Q| #)]!e(N# hDתvEm{C7jCpʘnH]]WeBVHdBfF6#>k +*J_%.şNH|uiNH T tB*U-ULR_v<(>w<6R+!ߣrOMf5*-V; +%ZMr?2*toqlo΀{7\kp,yſ4i4-g% Ea=玉mQgz0U'_p  2'cZG9s*c0+g\'ӍM̴Pp/(ܗWQ[ ʵ'_6Ośމ+q7ɳR_l`]椰.Ⱥ̺ `׎unf].M.S*/j,z&2 ]z;0ouТ:u +ƭOYv͔u@GrfA>L#{,-r'Η 6Η^m =+mb8ؑ}(!Vܟ@5繳߰+ynvdwh#{B#;|ɘѓ&'wP Psa0νX1I0 +oVˑio|<#;"? #!B 8vkiM@HV'Pyr'';eyS2s̝QZNo#=7 ]F$ڍT|0'_SMM"Dn2SCPz|kad'9q""yK"sXGnbQ.hz6ܔL1ď.rF&0ЮTC&XOP٬!)̆?d602kc d"tjhT==Ȳg_r) od}]d kq&|agr  aPa.8]u2΍}!|9 s '.Ҍ~[l^ Bfc؎\OpQu__RwΟV`CZᆦĉj sdu)^|u_M u{6 6qgmfߊOW8W|RQ!]:#;?>ޢxp,NRNJ<)~x~y_~daFChƒ෷KoRF +nZ3GH $iyqRRqε7_"!a9Ijx6uuX,?:8mr[4F p QO m)_JjAyf-Q ge`PigfHSE<+a,[@h%jaǫNXl 8Aj'늌`<h̃pqWE6q{O8F0'#WR<gh/X67¼Q69xγ9Z<>s A_>|"RG2.3Xs:k]2h<i.|ג9\?ydzEQEf&K"X^sؚ]`<## +ډQy hgiF A80,<$hUcJe֕"m ˶Q$JHq[N\`DcE8CN$I0 6 "zއ+@Sv=dc'>vf`)b'GXاp ]$f d0A,j,\,lqᮧ Oąg2@4’U mҗ?xVx 2垒xs03GH +e W1 :3&錋@e#Bj .?E;!*@HՂ-^ QLo$:n@NҿEĀ'ŧ@R%>EDQS#.ㄸ t8S+) Ľ|'D>Lwi]jaVz-L{0dGvdDnmѫQҨKt'0lP mU6x$-Uq)# FKNڬpFڂR5@&U7:MX81u=vqơ0tE 't$wE8K +q5`@*nT~g`*²CHl~U. + +z^M8/qi gs/?P^]aþ~&<]Jaԕj30gT5SVt*ĤT7P Mpj+GyT7z4Ā."Yl'.p"QuƘuGȌʩ(UP+qINVx0|Mk\L8E+e\˸"qFX0],6Nib?ҡe# Gl_XNb `cay(L),0_I0x.R'v +*=A`y`X:>+1a]eJ=7!h`e Ghj{ȥPQ<&E{6-op}r&8p 7t +|܉y `7BM7YKG5@+Z! +,KkYo 'p!r'k7k[CtVċ>S˚Jx~d&Ծك'P>t??ΚnV[TZqڠlǭg"Ty:1yZ1O/IrhӉNS&״#)E2)-D9]T̒gL}  xƬ?(ᝯSNj ?x &z1+keK1*^xzv ݤtײfʊجg;7ٿi f~c8~0-~ZT01PJ bh5XRumȢx +]_?Q}[ p ZXb#{7_Uٛ_4.U&@c4tfYwUTY$3Yі('qu6Wbl>̱Yoö:جUcbgugԵPi&xcP;@{S^8`YD;@#[7AN?8Ӻ<*qoihh u~r~^W9g?Vω^i}T@^ odx˦~[;`fީ6]:Y*P1$BIsEH#Lg|lv%Z:HI +v838Yug8kuְLLP`a4hvD8IB! 2WkA~{"pުA*Z(_y]CqIEnÓ@9f.nN 0?ҲFjǬՇxidaJ3Le5b=z nG=9!4qv!"ϐ`!JDizu}M-WҦp. فBZw25렃K;KE4n!K q"w|%xgKĀ厛#sǻ(.1.>6sFxR#k. xTѓ+nGQӘ4W7VA1xAͽNv7 vNazK'bzw:y΁:}9;l[Mmc?`nlQa0oWԻ* 8G_O3 +j 3'2yUʍ~ƍXIx8TV/߲2F_8>:j,2@$vNUq.K،@X k&un l݁]/sFm!TJ;< %ƟI`/5ec@OoCGa\9#p92z$It{D88n&js'cdwXO~sI3fE({`A`.~,k@y09/[OܱROtVH5 -]iy6Z*uWY: r*OǒC +Q /d[(ҟkVOႣGaSg6u{h Qx#Fҁ݂)epn6`o۱:EmP)#+Ieih̊Ř',5:e0HLŒCwHH *Ť>iw7dv*j+RH.E= n7Փ"qV8WIp]*9\D QVSRgޅ 9nA$w.[\O6)MܪeWKjx2zR l/DZ1^f0Ezhqs2G>|z<){j vr^FFoaޢgT7*m3.[d5B =Zq&}@7w2B\XwiZRP+4'4!9\p  H@94#/wm"'9 ; KŒõ@jbR,R9 ~jBV;YRa^ͅ|ݐ=IR:!U\{mS(A!e@.fёRl]9&u'f8g%H@\@7 ߌar|0XSiS&2 \oZڼHn(<- 6*V c "AC It9pfxÈc#pj ~1ŽexJ8GWA$.Gwoג΄ ,ˎ{KKc0ɖH&y$ S9ӿ,d`.m+0hd6=RODsH+U់xr1/ɕiY1jĒʇqhB| s(Vi:NuKKZJ )g1QC0 +vBT\C`&ЁxZҎnڜz W 4 A;9ŊXv|% ]( +-P!-|0N }K=haR,YQ *S3t Ӝ3Z$1:痬s~ye·l?טʹ;>繖9f_49/jqe,sY?f{<.pAuv4|}_ӎ+ @<Ϗ2aW"<x0%ᴇBڌS2++O8T Ep☄#L" n쁁!eIlc^NnyG"k2pFNG,mw0u}#З]UKxܡ3d9E 99S(bɿR)C78ӌ<M|}Ɍzys=u9 /L<Ç~2s[? 8* f0%-%Ƥf]ei8,+ϪRT10HUa%u"ARd&B0j gpD/;,&p*Zp<^#" +2x~ܔI\푝vjQ_q!YlWzoIpOeBNocev0B0"  &5<+s|W Z`YsyP80P>v+[&~RiL&"ROskY8vc}&jq@-$-wksPk*r@ХS`*`P@NFH1 +U `B'6VP W >4o+p&Ij~E0M9ř2Z'ެYI1, GV,^dGN 9籖u=sn  $`ߊÌ ragZ$!qV Rq82D x\ MR1|&BٵC J-om;Q]cuaM =܁?nISU+3,j~AO! o|\6ߞ;LX%*DZ)0BK͎E6d6g Q6@!j /V߾hE=+F=&RzL Ь<ֵ0nI6 )2du!~I4Qq +;X՜x6`MYr,Y=qۥf1I{,YEofӞ_ILcN33A3cEc>ō{Q3JQ :Z /Sl%s(Ffnf[{5'DlvA헦c1NKzth{i0p:oUSu߽K~ߋb:z%I>7ZkɵfOeL~SwR<֌n4l:џ["zq4ALv{f9޶Gojcq3hӰ6қ79Xm1fXGPɴ"˙.gڻiEeL{V{?ww_MVfsgbhE= F>/F~yscNv?Xc uUj uVbdJl.QVd0(O# Z/W2ۍ?}̉L킫h꘰ˊ~b~Ǎ ~ ~p>~ǨO jt.|Q:i&b!a@F~8}:wDZ9Un}V*]Ex{$­jf5lQw[Awu *cjkuk}X8>gA }$'ni;Sϝkݏ_7Lfz<܌?S͕Bm0xW6^W~w.kўxF2^NR)/[C|i8?+R;tѼRHO--_j{._5r%85כ3?CΕ*ͅm"ةz޳rpS0W1~_>HZ^Wnꘒ:cHi+No&77eô={mآ uZ *'; +[5hicKB]vz[b<>sz*D<*EEQd2S[B0Pk֊*5^RCWE oO)|>…ᰧɬ(#鷅7]xC)@ni[䂖L0ܙ%r'e'st{ۜp[cU6p phq , +o Zm섭XmΘzD3#vZ&Cw?! Sp="7pUx% @^|:L,I& jAoS*@`$я21:NQr}~b<Jaq%%a{ } +wvǸx_M|mLs +4f0x9,\>s

]>uwIvKCן:+fT;;ĥ۬NJ13ex™OŞ'HE/щN\,.tnFu%%c2v$dҩ;Do\)FQ{zvYh3~לY//sҋ-Ģs^n<֩=]/%?bFJbp|Av7޾|3]_nv==~^fn ?sdvٞx)Xitj|HHkj/Ãœw3X% ?.y=;+/lEɍbNY[*gɏgwWZK$^%]}ūV"gz_r񃈨LJ-f^|//r\3vC wk~zvBlaPrO~%koĿWnx颶g&Lj1t4)Yo[t芄rm[ ,~g=ܵC\}KrpUv5OUߥGLP^ؼCܯ[tq+|oϖrcWOy#{ڜqQ^hs3M|ԥ]߸El{IvMuLdթ=!+=5a|I[MI0|BO~L~\ۄ=s9%$,{z|-ٮo^\(Ω*!r]6[K/6uAbРn~N IF{#"W.__zcH۳#56Vת֋?ٽJu7=5d8d[oM,:ٵ.Mfn>Z>hJr|}'_EdFȟN_n.>ޭ7 q'/qebI{~%Eׂ~^?pu,$EPvvoʛ_I-K|&f7;sn6|zcZ4(Y\qa;W]߹/޸^B#Q>o2yr?.{Ý݋&-/zg}홻yܬ]^͆MzX&2nqTqsEzV oS֡ riRй>'ɷ-N}j]%)@{Ue$VU]ID'_֣5y4&<}s*K/{/$WoQIn6z$}6/>\mzkdSyĹm缫$s?t;$Fϼh"[oU4ǖZHmQno:QxH>ˆjլ*{O ߲׊*"<ȟOZķTV#ǟț7DNEV'R⻪+ C;x4D59T51㯖1jB&?8#YMT? ?^MV +?ƚW& YjR yWMB'ZRM6\ڰ|RMZwm!q!!jə._kW{:u!'}ӾOCOאy|}옶"_m. w4dagא5ғ߆O32[v/e*NOKpZL2ӒKK\ul0(OwYKD7Zr"fΧ}³o%jɁ_Y%g])ۧ%-8%K.pIK!CX-o1JK"L^2͸qzbq*2OUNFWɽT"Am."ҫȟ|f"ggXY笋U$x|/p7EU+ֵL;ѧYj)ӭTxjm;Uo2T̎&cTO&]zXM5?ءju OWYwYMP^uy4By5uBbմL{C zlѿ,PCzTW-]CPYC\[%;|ts` 5$]эRuqO5$I*kHٸjk:ՒrYKÕk?d%+.0%ކ͏%S{\K⃹ԒoԒ#&% Ւ VSK'viZG4s.n7r:"בёvu$j:Ց'=p:2zŠ3u,rmu$HNUunG5_/{|mGgOtբ8bv~ϵK8"[mH)Y>{#esp#{=G0 BW2WsuG_@sΰ|T> (d> &_nfs=\2sm*V>tf>ϝVssFw5\E> +WM碕ܘ|N,[Rp܏z.SP򹈺|iM>'i^mlS]i]96*u(,n( +pMnhMgݪ^p +0BVPg PC%p\O6饠{SWSX$ kuCjn@]y;+-N꣧N~HW-}>O*+>NnK\s3[nRZW\ϚsIIio?%]3x%VLj.7zGgδz]Ҷ&׸IO\侯Zԣyn^Ȧg8Rs\*$eӟ7g<`S{Q"EiUdEԳoۧ:p"WnSM=M+QdM1vج^hJCfIYӊF?eb)k +%w&7QY8bI/K6Azck&^_gґ1,T;`ybIu=~+M(. H+8ѧ|t񳀽'o (wPP<6ѩSyDqv'c*Ǿ,[Ula-7^=W8k~)'sVvosZ\/vMv .{Y\seBYI>e5>-k^'{yyIwM˾*Y5ԶWKy\z +v,Z"hrO}=%=֔)<䶤tWIJY?pXz$ck%=M++v>Ѫd楚+y5%楫&.t/**>1=Į݄J\JM8SX4%J+ݚx*YRzsMɚRo%{J=g-U5$4uGɝR3%Jύ-(eg{ekӼoq>52qO(R8,~.;|;=[L<ʾvN_|~[omkepʲNc ˷;UGw*wtPg g+fTߝW_1i0Ymnfbk3+bуX6$eأ80yV7qfT\Uw[T}qШ~r1Q4e\.NaӿGIӱPT1Iszk8E&:7]d|bJ1'+jKYśL +>\5عTQ\SIU$ʪ-6}ܟŝ.&/,vm@|yW[%ӪǷ-YX}%>]Ə(Sߵ|տvq\rzJ%옿mΗ.TO\:XQMΝVsqA~IX%5=,v.hZ:N :$uR,R:f@ ǗP /困}'B+lw_)a}l6@(φg UePka^kJ*>d|ժ_W VRFEZjnF9"B+Tk1IT}[X4Yk:9^N}ثVkvWyfk{4^_9wT+`5q}v{G}FiƩp@i<+nsrS3Y}xp p g435>8U0Ffzݒj[d&M}mxFj6+\ы5;{\W;3CsX]2P9>>D]-F:Qs^a\kG'q35#]ty~ɩ:%֩妓擺rB9aFm|@ssX0vsLc9Bs嵺&)婺+ꡚ#Rkf:nwEiayDdj?Mtc`da ͱ1Ns5~cT/p+\7S5ߍFF6[zBq[ޫ-8a{ɡ s4j&TlppxdMsR7O@x{iǩ49wL`ac@{}1XJ;wgu{<{k3u}b// W;/S6hS?wS$#BusOjVkGZgWTj2%wWmn^F_k?\WQffImư~yL0;{ڂokS~CL٪")TJ풡w2UC-ϩU]jR`M~UDo6ΓQTM6yjqUwҪ~4tvպ*A˧lU ;ePՑݦnTpQ,(LfPDD 803t3FTYQ1'TLbV#f1gŜ3愊9+!L 绿s=VUuUZYk韢>UXSGVާ{B[#_lj%bsI%%?6l3`Vڻʚot׬j 9U5-| +'Y絖`MK{j󍜥Ԭ7XMz꩚oVl6xzsի5꺯Sol7d})COjJ<C9Ci:{tTBΣ՟4=R]13|*ak6?Whmܛߨͨ0|vDʹ.-FT3ڳFQN2bv[#jo9<kI$'OFrŮnΨWhG]Pi?:zvc͗nh;Ԭ3:KkPs<mzojx5־F1ԯ9#|QNeLZ[TwZͱƅ,T[3ֶݱN t[:DU/lV5}RpQ',Izev k+J',?Qq1E+[oTEIvEW-󘲥h~])Ekv S_B]6;SGN}[tJ_۶"NܦT -6 S+^L7txt3|9jiC @E:݄_H?~My҆F˺[IFSFlq>;"?䋵; ogk7˵ .&Hm4D7ю09ɛj{K?jZKwkM74MW46RdX,ח<4.$j6WrXl>]F2ϼ;Q(e7/"qJJF[4HNYx׊+J-+{wdG lE߶xEDL]PtK_sC}A_1͢ +Sv `_WTz~Fц֓ÊP1HTiQ^Zk௷,+UVO^0IfcP]ha}qmnsJۋŅכ=VnnTatEvKu ͟% +78JT"pNŞ:C+u>tgЙV c/ҕ_5rPk?6wx}kvE'jf۴:h՛WWo:PmگJԅ[ԙS<389hW[rkV&;,Q_|en.لu첋. ĭrGkLE [ѦbSE y6[MϹu] +==յ((WӳХhn)o +5{~a`kz \taP#.VkCaBѦ:5psWtѢ=+>~Ef7+PtvMBh@6y{zeԠFa`Za  ;Jm`YQp{ڀWGrC=m{,g(W33U];^W/>W3S}j5V;\1ڻ$!ꐒ5v\pzd3nP'V?pzEɥjVVwL֡uv[o\zIUS%nU{6v\lu=*RK5nU6\7ɕ4NиUdz沋\.d 7e[j&;[P5[V;h8ؠNq ڪTKI{_tPJÛWi+mjN:ozNMh,W}R[ױEq^i6Vk^5+QtwͰoPHcZ(=x(ЧnNAtM*:6+L=7]T.m:ݖ +O^on<]m}O6 + i6IG6 +ku-{*,jU^PӢnzQAOZO V4Y?zCЌ99AR/ڡjU!f1_pACQ +ŷ Eъ_-(,o/(X~[\7(V|-n̏h+T"]-H%%yk$K%J_.InLw=KfŒdFIhZ[:Mn ݭ73m-96-5՞w6*8igK^.JWnI/> &' /6|/H_ܠDA: +/2 d_'CVڙ"$LIfh+K _$&Kذ cϔ2ƧӥJ&CÏ|~ԂӥF6AF/F>ҥF|}+)gKKko̤݌sl'RخL;fmj*OXSIsɅMًaM6&]+ƕZj7D'x5p ͻfÚeuҞ=Qi^{عҞפx wji=nMw4T}YPgB:ڗu.ժswWZxߪm5ުXkjtqԺsTq: yVMS-Fq^JkڃtԞp {JKuYÚH뻺4d5;4]jܤIjj\\CVofMkkT[ofvU`t)j/b49EO\W[X65ϴ36=XSY.G+]*8.U>ߠU7OM}]|:ju9.'|:hd.a6:'D[t[}[k"tÜԌUtLԝvZ'$; :7d5+t'+Eܨt!٭dڈ՝tЈd;&xQgQ.\D7a|㖚wJ'qMhxM4"}5M:h*^oISS?b%zz={hoۭg=ioln;0`~햀њP5?lj5tfƦIz+4Y*7KlяеYfޣBJ cm(Mk.CinK&fkVk^Z=aUM}~(g%Rtyƞ7mnŸ*'Yj -ĞG=& ~q6ja^ƻ[4 ?7o6_4E;h~4hv_qJ8y6-9|jf]jg^f1w' Cb~`+]/15TmML=$~eVw_n);5!l$8)rY>d?$[w36kW5xΨ>_jGHd4VF7.[-? 7IW tCbIYK| WB-_[>5KW漖6(No҉'I@+=$Ro +f@prT$;_._,,=]!65;&50;wz׼ lYO1$uC*e4V(H`^Ʋٽ/O:`r,|gonVl$ϛo~20Wt~d2}Uf{ u$IfuFiΡ\cخ>̮+MX/TXnqM&0W(V}n]\3IȦk1*zŌ͜^VVy\kQ)<А`Et}4AcvEƑܪn݊S_qMlقf̌9*o'f::-W'~R0\l 2fkS9wل S6K[{a<[iQxZi;g]jLwVWxvl6̔ }>ǚc\U ƳngJw֕0ΏWRvî\O֛m8t2<\IԻ7[05-[rȉ^ð#Zdnl'eqaN,:)Wz}3y3kdD`I%9)_`OdzHmwRnރ]W43&`֗l $K'ec3.FcV=ܚjʺs"Ls&J +G9\.Ү mܕ]?/"ua9Ü4q޵<۝3k< n1YљmuSz +mrNl%c)gY9ӫ{ef`2ngeޞ+܅CC8k:+Gr&6>|zΤ⮤;+Xd^YyuVZ^w]˥lsVFjϺ]wVg[elf,uVnڎs֎s>Zwj0!cs!zYҤ t)NGrZ|ksfe\c'eZa+vSLҘ=?lՊmqrU6;)i4yʹu5N-ٖ=0U>m{$K̚;)go>2|L0?ĝwpR~͑ڮ+)6'ϻ>2;p"e%P3(rkPvU&qJkX/̙'I+)۰춢̊g'g0׶ߙ%w/~0}2[_Lf2ᡌ}Zw8*S~ +A9![jޖ0vpL -(sg7I.tL[ke7{ 럯gn%ᴖʄvι{%5sf+bF.p2-WW^^i+*bi#KhE}لAlq+\-6gwY^Ԫ̘9lnXkyNyG3vCoSK^.6N9w`3v+z.S_m1c{FU>lޔ]ɜݳtr؜ͺv{Vybɂ=lyKjLg[YI=n:eMXgK3>7^n۱ RĮMPA1{:Ȋ!wkiQƬ9yԴQr#v7pL3OeGUwaʽ1UQ P sL;{2x݋:lm*lzjn_uX*GBcj;۠uUvH"rȝ}*{[1n=6na5vrZlRlQICZ촫ܽ Ceb7lT8@y+{¶&ʢlс"p( uPm}/ Ļ1c0Fc1s0GsܱX kšaXK)kƚc -Mm -Mmt:]@wC%t :]AE$t: +]Bwe4t:]C'7GWgwǰװ'7GWgwDZױq,g +8;p,g 98{p,™ g*Y8p,Ù g:y8p,ęg$J8;q,řg,Z8{q,ƙg4j8q,Ǚg 'o |&NKo |.^'o |6no|>~ 'o"|F!K§o &|NA'o +*|Va§o .|^ 'o 2|fKço 6|n'o:|vço>|~ +  "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~ b Vb! b 1 րbA bQ Vba bq ցb b# V b' +b+ ւ b/  b3 V b7 b; փb?!bC!VbG!!bK1!քbOA!bSQ!VbWa!b[q!օb_!bc!Vbg!bk!ֆbo!bs!Vbw!b{!ևb" b"V!b!""b1"ֈ#bA"$bQ"V%ba"&bq"։'b"(b"V)b"*b"֊+b",b"V-b".b"֋/b#0bÈ#V1bLj!#2bˈ1#֌3bψA#4bӈQ#V5b׈a#6bۈq#֍7b߈#8b㈑#V9b爡#:b눱#֎;b#b#֏?b r Wr! r 1 ׀rA rQ Wra rq ׁrȁ r#ȑ W r'ȡ +r+ȱ ׂ r/  r3 W r7 r; ׃r?!rC!WrG!!rK1!ׄrOA!rSQ!WrWa!r[q!ׅr_ȁ!rcȑ!Wrgȡ!rkȱ!׆ro!rs!Wrw!r{!ׇr" r"W!r!""r1"׈#rA"$rQ"W%ra"&rq"׉'rȁ"(rȑ"W)rȡ"*rȱ"׊+r",r"W-r".r"׋/r#0r#W1r!#2r1#׌3rA#4rQ#W5ra#6rq#׍7rȁ#8rȑ#W9rȡ#:rȱ#׎;r#r#׏?rv|=7 bT~VjR7C,_|$FvUҗ}RQH v)OߏI-hB5qءǥCfP\̾2 @x=mvG 7:ȣUKdm2 WO`sk֖y4tqS|9f.EtTULܟ9Dqvc;޻,jq0 .cdfnꭸ.K0\tT{r|]ɛL?fV岢 '3Bd/&'SI`\)s{s鰬ճn|<[)&SXm+g5dFު(Z!a0>+ExvGIY/*/g;#x(k E&[5ɺL^5hcdx^vy3el&!oe=tIV)=IGduūغv!ͮdtWqm;LQGd}}==jɕ7Y~ +L<-DVu­4vLϺ!mg_)P'gх!9QlE +,8ZW5 +8;dop'DZs!U~Ԙ\ʎC،c~nRK8;~%n)FnPvCk ˎZ#-y6\kOBƍv1;Lَ5ܹQ1WBYx7Tvwxr<Rz\SY7.%|͚l9ل}ҲpS#!mn˾Ma;6]rp۞O|b +P!@ܝ)SXC*=-Zє;t +2o ~Lf]!=U٦~AܼC)5=}!;m4f2k{6=D/] 76Hnw^3܀'B+܀u9tH<%7$všwf+&OB {'Vs"s! l)'Md\m{k"p5d{Bu#8r#'SŝChVt'dxK]!laBv +ݹ_';=yN'urV? wT%O`;4}Yq}P_NϞm.$cQUEXHlx6᧐kj*V ^vϮ ު"@xLbwCq${g;$$vb!Sqls| رRCӨF_s[퍙=wdm'̖3Gsc~͙¶onӊl߅#xfLBxnv,W2b 1g-S?b`\I1l=sbI(hݑ X?p +g1ډY[Qd*wN?=;΅پbVXQluUO)Z]b/hϙ^,<X6Os=7fB:>S(Z1tζuftdb]&z4i3;YvJ$oR$EaNd8>чq_0K=r&k06c^b0;nҘ v8fwS5]ڟy{"lN}(#)h"\!:Eqx#9rī9! wrT2ǷT\.{0Vez[Jşd_ 3wS 4%dedZnT<;˻3Ԇ1rn4 ˜Z[p!y3mnW$p=c:2v*E/䎛 dMuf+Q{֬uS4+˲l2?Gx0+wjr*?a+?X&M> a[<,R n¾xtyzٝr~IFw}b.DV8rSL܏\N*YYՋKx;![19n%5-'Λy0ևc:p4ÃؒJ`_.Sb)I<Ǚ5_ɉ|l g 捸+ gWp +Yy`GN\Yw d{&_`Fs)+Wp/2-r}*6c̜Yތ|Ք}Y,{hPbn\ \o\vrnBu`N3z9]6Mf;ܲ {o-ƹ[}ژ6nG'S-٨w*Y5׈]!0zTCI̭D9\ƙ;5d}9ׂ=ΏuDVh-vٗ1٩5,e Vc㪍^oZe3;!0κ|%S_>| E7_> |0e_>|@7_ >|'PS_ >|/`7_ >|7p_>|?7_>#|G%S· _>'|OE7 +_>+|WeK}ZDž /|`G 3|h[dž 7|pG;|xLJ?8888888888 8 + +8 8 8 8888888888888888888 8!!8""8##8$$8%%8&&8''8((8))8**8++8,,8--8..8//8008118228338448558668778888998::8;;8<<8==8>>8??b &b fb% b 5 bE &bU fbe bu b &b$ f b( +b, b0 & b4 f b8 b< b@!&bD!fbH!,bK1!քbOA!bSQ!VbWa!b[q!օb_!bc!Vbg!bk!ֆbo!bs!Vbw!b{!ևb" b"V!b!""b1"ֈ#bA"$bQ"V%ba"&bq"։'b"(b"V)b"*b"֊+b",b"V-b".b"֋/b#0bÈ#V1bLj!#2bˈ1#֌3bψA#4bӈQ#V5b׈a#6bۈq#֍7b߈#8b㈑#V9b爡#:b눱#֎;b#b#֏?b r Wr! r 1 ׀rA rQ Wra rq ׁrȁ r#ȑ W r'ȡ +r+ȱ ׂ r/ LinfljA9rAn9zA9 䂐Bn9"䊐3B9$䒐SBn 9&䚐sB 9(䢐Bn +9*䪐B +9,䲐Bn 9.亐B 90Cn 92ʐ3C 94ҐSCn 96ڐsC 98␓Cn9:ꐳC9C9@Dn9B +3D9DSDn9FsD9H"Dn9J*D9L2Dn9N:D9PBEn9RJ3E9TRSEn9VZsE9XbEn9ZjE9\rEn9^zE9`䂑Fn9b䊑3F9d䒑SFn9f䚑sF9h䢑Fn9j䪑F9l䲑Fn9n云F9p‘Gn9rʑ3G9tґSGn9vڑsG9x⑓Gn9z꫖kd#\Vr+2^'! \&IB 4^>ip4ѽKe/T!u=2S UY&c8SMPM&n9swJ +5M^zO;^{j4yl\٨0[)Ei~|${&#{o'd_q+U5z+kw[2Mun|;尹m*wv~U.'}ͮT]Z~@9,F^ {^n{D0F=DfPO*bnfLST+f)/sU'7 +SyUOofZ4oW'˗W +?AMUBO'*Pw&ɿ=wTN7_;t݅Eo OqM,V*v~f۾{GW~6|(lU~I}7"˚ګ\P Bo 8Av|а eUSo[qj)mC/+TUqrn)MkBFuۺ~}YQr7;+tJz{߱u~ 1O#Cm rj.|+slTj?D;dw8(:ԦBinSC{Meks)>'>te {g6 F?ܛ:Sf#.5vfhتID9sB:m^:΁9] i0Нz*Zrf"tgQ>69C KBKV7Ven󚩲7 5大'2+s(emŹ-U + m5[5>EMwT5XI##o m;oNSoc;\SkWɎ9ݶ:'ts!r}]3R1Rμ壝8sRα䕲n/J唳ɢ\2X׆qN9?9:Yjx)rO2C5SNBųf>{:&Bݼ窾t!]-Bkޚ69f.gCM%,sYBպ9;w7:r)BRU߃9Guw5e +spyЏuVNw90 rרnr8<ߝ/1Us:Ndy?{X+? zujv[g3>6ipM眏-ȷ? ]]c*SNuqkyCV==3Ż|qW#rLO6~Bf]-{އrV9#T^ShvrYpMA趏UkUYuw-wJu91gV2Uɝs,ɛ* +}}"[u*!gT^{&49L1!j/mS}hG9os4wm _2D}O ,CTWn.ok,sYЪb͍@&ev9{0]Wmuy;L~\}S$6ǽO|]; QwTs69_˯>P&Y"UWr|TGG{s +w7_QA.wW~ ]?LʑOl'B_G~}PEU#Xz-^`[U,9K߫޼4ω%o!$oꍅyNs|,'w*YKOK^LszgW,oʡIάunUU.ZSU=H2('ZmyA^5% 9ɟר!ZU%$ot)7*3 CEE }o;nc06cŘ1vs07sŜ1wkafX;!kcX{|| |||#|+|3|;|C|K|S|[|c|k|s|{t:݀@W3t :݂Aנs=`.nBGY.t nCǡy> +  "$&(*,.02468:<>8p6Y3g%8SpY3g E8p6Y3 g0e8pY3g@8q6Y3g'P8SqY3g/`8q6Y3g7p8KvrǙ6666666666 6 + +6 6 6 666666666666666666>| #W>| -c׀>|$MW> |4mׁ>|!D#W >|)Tcׂ >|1dW >|9t׃> |A #W>d/I|J1k (|RQg +,|Zq 0|b+g 4|jk 8|rg<|z.Nn.Nn.Nn.Nn.Nn.Nn.Nn.Nn.Nn . N n  +. +N +n + + + + + . N n  . N n  . N n .Nn.Nn/3HPD?2Dt: .IĄ8ul1nA}.i^!HHJ25 T: _TB(Jmjd$[3*OLR"AvNP̓ua+*NK>cdWFcJFݙY;_2 qQޘ/#auNyESC*O 67@YEVei]PڽV7Mh;z4~WN'>)nD"ߗskDWCS;+o>΄WR+w6!WU|#2]U wܘI:15 _%">Tإ^}Ubr m2Y=ElvG86i +n[`Ɣr{.sٗCT3&˟9Z̿q-T3L?>{=FD3o\*MDˬi;f?^zznvUk.Koc T[ ?{GT'jxyew6Nl*oG0" T5WGDXվcV%ؾ1]6?Iա`];Zיǩ%w* W2R^Ε1UVGȻLv'23T:מ':8\#3C3U䳞5$rYr'+{Q=;4D^7'n*ۃRW*=eT#*I(k[WEߵ"?MY՘zg׷#KBF@qNRVziiW0X8(B.y՛÷G?A eŪOSv&?ARyq>NW,Q%,-!&r䠥a zɟN%[TupnOyfx({.XC[3JU3cOԘISe*qfJ`*$\;J+Tt8坋+T~lgyLRUѷ|5q+Uk\:ʓ/#߀|yUJTTy^uTU̹v˲[ +Jv/?YOH?%Uav[yiW ?U5}`yޞZZ6 OUmql%Jk!Zm.g_E5gSpJפtʫx&Uu{lΗ=J-՜Q2>+&S5JEy=u&^gWnw ;W߀U㇪#\Y,_(||Wh&MUjP6yKUau+_'?XrUMo/U_ҹǚ;3ÖZY7O(KUgT~׼%#ZNF.U+W?{k|#&%&ϼG]kOjۍ^u$?E/)zz\ݙŪ?<BR[ZW=T6t :moUdU |ÏYZ|̓PS T]jɏn* }>a T:Wj.r$Uk;?T;Ր75$8sU#WOzlDHsT bBh&Kȇo5%?J_ws9UeT8G ?Zmj|%K'nIR_v5"0Cs ϋ !j| +*8`'/`K +72PumBNcX0& cX1fs\0' s\1gk`mFX+kĚbmXk9 + :]N@7# t:]NAc5t:]NB7U,t: ]NCu܋ۉ{5Z-#wUr% zCyw|l`_, /Qj`hddL.zre?,/ ^ 40Q3FRf Vwk8eƒH֘|:q䀼*tvf0U,0-Xs3nՙndVcYBٓzuf}jviYc W̖6~lV,8@oP|Ejf!̴W,\kr y[YE }J,l^Z>ke42RLɇ,t2J+l \勛-li:e{Y_^E,nbHK'c-4<2k4ew[϶l:߲E5-jmZMw6Z~lti`et#]OX4Ȱ|TYa^它,$^Lly2%x`oc5Y>Tֲe㝾[Y[h\To)35ƙ^߳Uln-ZV^t]$:5Hvhhx"iF5ID Of0s"׹DgŵQt_Ea~D}E_$n,Z2aLHQ(QD;O}* +=+*/֛.{'I%a< DV 2R*xdoV^/'MY2`hГv.]+A(f1Qk "yN(]!z3])#(y%WE7VE}5PtS|ѲDS/DI^|+oGmE|Y|&joZ$V"J^j`u«&VͬV~Yշ`եhV1\+YoH>=:39 QӘ +O^Im8vƘa]3>ξu^ynUox5%5>R^k{[ձ8C#m\Uz/5/d ˸R?iT>SEԸĚ}Ym0ZRǞ gn}D%}laվxYW3h_g1sˎԴN Y7a>$GkD6>;Bv֡#괓N |3昘{K9wc+I޶+k7+\M#HUo -4)I}v@t/ꍒ,޽m|YE,&g~3EgIڬiswd7 'Kn<;7Z2ہG(DɣS%Nn}${VJo-5Y"A>xѮ!ds3jrxȚo̐ď}~$I2e]Gg+Qڪ?'&H{znt>3PvfycjzI?)ziɆF/q}{?_XɴbK|= $߼WԑUa܏.Z|O+$7oNQS)'KwY&q_8Rɫk(8ĦJV-ߠxJI qc%NM͑X84k5s-\#8U#Y۽./ٹ^R˵X*cͼ8G;LvΕ3#HN>@2t + WK^'~`]IlG'WJF^\Z!Iaɇk%\Wg,Pꗹ$JťXdj)lR=w#fO)bx7p)W=Z7 +\uG/=U]ef٥WQ^ǹRBYqR._z h{l)sΗbNJ1RMKXr)BsrZ)֑喢^/>C\u^z7Ya3%3@Yr'O03.nRܶTw^gb5"KqzkPA)~X'`/>*۽np]?<PQ)Np-?.E&Z*?1@ ةN~)>i+dcW 8>K/f +"໩ gL. U~Sl^ +_xy):г_&cF_F vNhS +x﵀/Km,)྅ xFldJ>z:M3g?/\|\9c'tg;*h6㗒{'{ Ǘ^ 6>ۓ|?yCrW~W!w-x1Okw^n1FOxOr_3|{ wO܀'aOx&Ȏ=}y¯< _q~;)<{~'[лy>!/M5?[@E /Ύ_2'A.䞷 oBQDvf|~)0+'||>ܡFlF["@ؑ;{&ܕ}6)w!M}5V>F)A"Yk!L :o{_`t?^./ +_6la[XY/[[;+URr*UT%WjժJ9[ZkשSãnݺ_w ||||}}6lبQƍ7iğ\MլY@r5o\L rKB.) daPE-[jպu6m۶ k׮]:tرcN;wҥk׮ݺu޽{={իW޽ӷo~?""b4hPdd 2\Æ >|#FkԨQ5f̘䊊GO WttDrM"drM2e*bK8rM#W<e8}II3gΚ5{9sΛ7 .LN^h))K,]lٲWXrejUW^fڵ֭_~Æ7mڴi-[lݺm۶wرs]v޽gϞ{۷rѣǎ;~'N> \jr\*!\Zrȥ'_ܔ2/rF ncbp@#624qt##zMN&Jor?Q8?morޤ?7Ŀ|/Ͽ>:?tP ]Ƴۈ?#ZՐeJڿٴ{T['/(#Nk4QnwMR,jgO56{,ɊN6 xZqI b9zSMg6e]oBr+ X}}GtIAuoV ^gk{?՘iySmz|r|\sc'섟z{7|W}Û}ÏoA3Ay?6yWrK=>[|}|wS\gg|C*]x]?w(ݳ{Yrrdn/IH=rrBSNy^Rp"zl') +RP]yWЅ rp#7깠֪YAd ANB)---Mʚ #A_qXt)89۽AdApf1#? L JMd2a4ˈ#!d(CgGh?ņ̳BgaM* + +oIkg9YES2odFA&FŜVܠv| $B-N]|W1.>&>go$;xUbSO͢}>o'&}1cWvSL8Xxb5|b}Şs./_o-^uV|~_1S(~ibbNגbPbcӶD7į-C=ߪyPl.~茸~>I{#9K,}S<]SLtIuh6][D̶UM7$&:&(Rqx_17Ĝ:qTZ1=qUjJLPc*~aN +1Itr5Ď_~l^"ХJ]8/OY$ YLVnB1gP$j谸/?O|<1g9=CM7͞%h2K\koux}Xpxbb'yqq4qY.Dbć|}"Ltb$z"ыh D7ƋG#JlhEtd6| ѓ%GAexpp3 %z3D<`;ō{F$ޑ3nD"5'On?O}_v!:[ۛU/1s'ѭ^mz.}ҍX7)]u7vBtT'o]t$:.6N8=ѽ OFt6DۈloMtxVD[7jIt8Z/'z)[\ %*lb~b) qx2T\DG0`qGADo!Dwnǚm.#pXfbeM.77L  n5ߟ贿&DK6&XFcko(^͏蹟a_bʇ軏D{yݯ/ΪV迗7ЋzbMzdxz)]W쇺J'<ąo}QGsC̝cj=R[|mC-Oj_w#{MԍWs+3515ɾ);5䀘S]\^uW#d/UOT*+=UY:2WŧU.doCl\rOL8|gN˅^$~٪oekɞs@x܁={udً3T${2"هv{^Zڑh+<ԖI[s6d_ڈ]ِYA|A?+- jMc٫VVdWEdϊEdZDZk)~݂_ cdl&Ԍg3qӦ⸩d_}2!{Do &mk=SErw#w r.]mI?#,(ꏤ,]vcj F௸.~^ƿ&p׹,<_u %ܽn +n }OΟOo_/|'+_7y[x"-c$KA|r RH ':J%r;9nn_O}y@nGnI%;%5r}{2"[pF@#."+]mJw?~ۑu\c ޅSn(~xWQLJ#*Z =nh]=i~u^UD|ࣀo*Դ> 0bN@XRLX@1Q̧((`EOg:>ڞbriNHQA SLK-]gs)x3 \&ºP̥eB)*(PS,$`:EWgZ }hW>StBG1*bJ53ִ=EY:/6>[Zώί"O1͞ߑӌ>SLKΜ)P̧gAjIŞ(uCIb;퇢zs)v z ~>7i=EW17 i9E;o| 3(_:o2?ZސΗbb#t~Mh}tR9t?)) <(R]ަGt=;i=8Nu$:e\A)y:ִ-O{*H:: tou[{y DЮLfC؛ӝB,K?R F{8 (`T?{ +( ~;uP1I (F;֟EqΣ; "`ZW:ֳ0t>]gsJ'TA@Y;i?mkK 路0d^@FsAK<s? +FPGg);QD hgLg!`5=aY]mpLWM}o]8(Jte,}iF}S zQ>}C_@ +X[@Y]%+wzK]~WOc {JQ|N_\!|,x-SBIv0E@?W\ +)K0b˅Wj*x&=0w{-`_r*r7~>ҞWVOGQCw@SCß2?*it=:n. X\><΃RQ̡S3"]_#.)_ڟ<{oPA:^:d8mwy8 +>wwe}vw.;B9It7PHi {{4:t.O܏Sh}6Zv.ODmq,c ~,a/G +>~]vYnﺿ]~yDL:'2)t<ެ_Oi}L:ΟNW3r'͡OMohD LhN-.0Jա(*V AрbZ2+LJQsr:a no 6#v_CnnP֕?$`,c8H7cQ=Oz6;eq@DBR}Nтkr4M8輚{g1+L+JY}vAo T 29P)`$/qt 0,I3#,C0ھWv Lr:\F׎'tqqקP'w#Z^]'W3 L, ьǐ>uqSfL}粮' E6erK*P~чU_-i;m[|~kCs\?忎Wb)"*j'`AYBaH-<( O#<+-0BۭL*`M0(moCϠJ:styb97ʇS,;?G |:tAnw}O}Qv~!ZO/ D X:ִ[B^v_?E{s^/nÿ_ݿ+ woP~4X&%SL+S=oH0?E>q$3/Qi?-8=:<NX:t\3yD+:.8֛&b.sSq(`ڮi}xlH={ +=lk +؀o<{t^mh="&RjV:ޣ9#]=}߿.&}4-C)Ry y +UO@S,P#`jTti;KTTs0<03xAe +M}>(aZ' $`c*P{[;{t<T\z{oW(`Am_B?q}}{A۽0B#?0T@;s ,賕ZD=gDq +:tVYH%,K<Ϣzh?i^B˷v)k?^*'b>pQ)ċ%*zG +}zU@kr)שmwwK@Y v(,?KSt=GG'=N'.Aͦ~iӴ{KT~CGWv˔PjO*PlFэqN5h0]IO?M)rQh_FMFϿ|_ח{_(R_iS?r(F͢lj_)PC'ňTN1j}|߅=dZ ss)&P̥(NCn]3E^v+p)VrSu)m(Kk3-o+wo;t=8]SwFl/x)([K)t20bgX"EX;ܲ|&* Xhhql$s_'WM0_."m]QkjaۥUݓMb]ld?z F+F?{?6ӄ[{?}HܰCyg+w}RO^~?F]ӄ;ѩ~oVt!73Yhm\dEƋ6 MCmf4ki0+@.[+m([leƕAdBm N>UiW;D"s <7"D,2J6^h2?<-{y i]h?Gw"J1~oL;&ÆB6,kP:_ǃ*) IYyD?9ԟ;:5cizԸǓA~|'OLƃu6E>W +R:?*ۨL=o{Ogq)lCڝOߧ5+Wd[7fPz~*ln?/˼Ũd_ڵIw͂}>C$ijq?ܐ~BzGȃ z؄'-4mdS ,e;߉ 𞿝ߥςt"į&D~beGy|2XD>eM_!Գ[W~?yD1$@_N6f=˙O(l*}$[l.L"o[mAöDd`sGӝ,{Gy=巟-__ʗ U(_nbEO'o?9OG3@|+:+ {'oobMT݉|ۇΌGyQfL"U|+._C_ |I2~erDJ~O{AE?$3}H;s?3 +lkvĞ>]&3!s{-˽Y!rŭmѠB9 +G) "[<ok}ǗӾ-Aߡ9SfDW<ȣ/_?mh~3"/Cw}Vfvo?+#_907˵*+_TϪ|yO>/O +>oJO˗gQ~o=oFOWf7/9SRD䉚̟ȣ巏O4t?ޯ+}ޯ~ҟdk9م?b?# ?8߆v(ġLH^^=2!z3_U"?^3rH"bW|&YJ;Nr(_:/7q"Tܝȇ9/%#KDެrz=d~?|Ak|?YHߵ+Djd53M Ykf.ȇˉG!7o ];w/_BN&Dӣ|y"_U7s7{fW-'7|+5|oOs}3{D~ޯ|r"hT"o8_Iy^JL +: n?dR7,L!%MoI;~&,V"Ӽ9DnT~D\~{ԥ7'a̟2"H/kDރ)V"waoC䞡AoBooBS$/;ωOmηVz<~3oO~3"?7'{Ῑ?N?\v{o̿]2 ;7$xF-??.MH]3]7CQ5ڕΟ;ѣ2ȋz/Az$Orw"ѷ|,-/y|okK(n%rŀ嗉<`51_W§8zsezM䫆x6{]{L~՟mZ }Ο7&cNˉMo?h|w";7O-o߄-&yϥbdШ;h"69/eg(~AG %򔩙#msH*R^;|=n%rL,$.ly&C=wOҜ/O zѤްW'rIGDl9x]?+%-?2r;ʿ+TߟԏXɏDLg+Ə?<ȇB'O |pdGL> +Cى<{)s.TX[m; +z.,;R׀-|4Df9a+`*a^L9ͿK9ZgYÙ +u*om%q +y_"mkg>4*HygRnKroR^PR\FyRnLM)&9VR~hH&RnKRR$j|t0QFےr_#IyPqAIy2r2sW(#_T,NʟQnM_KRv"?#&xp·y;_?^Eq]iW|1Nf펐vL^Q^} \45*]bCڹ^C-'oP_2i??F{7DڵK9h^&?^.~&l ^^2_i1oy +iMJ?O)HY|xJ2MH B$e;.rRy?=,^iG}XHdt~?z,?ŋ;{ 0dlSD,?ߪb߇37-,~p>:^Y NT❍>??(Փ2>H)%"ܲ ?|,_ tCf/+0.zB=2?R5<&?tfǛS[ؔ-/؅{3e{z;7 W;GRʡl{Y0rMꥭp Z_0"7XgçF,R7f?Ɨşd|'·d06_uoIW18 '/d9eW7ÿş'r,h DLjHPEH uEC"1DECZLь 1Z6Q[\qJ?-*V*ON+u5}{9ysw=s=?!x=xgCt๟ŮG//x/xzx'9$ +Q~z2.B{>s9}x1/\?^F>q<>^.pCT~j7N*^)2Ql܇ʞzb~׮b 6 ^9~aUl!n>^'9>ӫغCt b9S;9^T֕ThǫJt9a3q(VBżlìi + p|(0ǣ +q. 5'( ؇aXc.+v D%qM;̶Sx\Ep>77y= .1p>πyw<k8gY{vE>E!&p>wy}| S!OWy=RKپ-׋OS^z)o/<]9r"^p|LJs>k.GgqIsR/b^/o+|5k +blļ/ 9Oy}2Оb^/\!"b^o[!zb^o?B+ż[օ0xJ1OWy= +_(r[|m18orb`9Vw]`]sukϷ-Raa=s; +=q?k+g +)oBop<~?8S9>P6n2}݇ +/RZ{-ow`(GfسW)s.~'VY |^g/QĊ[xX."[`}*Ifk.Q谋 ؟v޿Wն>+X~?]:Bd#b3\+qG !6yפP?g+m%>;~΍ +;5q}z[? \?mA?E<~z{v(dlefkT{л-K`danQH]'ߏB_ь49}oW+@pgqWzLogz6_ '$F߄ЏYKqy`7Q}"+tLR__dzc'󣸟_jO]?=]ɪ/J%s_VMeNUaI?B_G~>7G$g~UO%7ONtS=tG{ӯViw\?C_R> +Ro׹^o|Q&MίgQ!gg`濍{5Bܦgq^%ۧ)эlb9į,}!nAB>(&Je&^JI7^UGU:Y2?J3oqg^R7jؾ*o_wu}o3aW_WGd [y Q{FUa}pc3s.ܓf&|enfT*Lw>Nf*|G ƍٺ*ݕnKIL"aQ?tP +QBgv<`7򹅗oldBO2L?N͚joJڎk?x֟TzS"X;C}7m r5|2u[f!?O&(x烟,x!ⓍdɩE}׋_X1[քqz]oL_/ݮ0Ӄ&kxM/q-n7{whc7M[xn-@l;6 ^ng\}ǿw$~1=t3O;Pzy|NY̍ zax1oFv97k;Z6y'x^Z׭MC+oiy[`nz#ު㑶vϲq܇@ߥlS[KOkq{W8<5Z`Z/$Ӹ&'¾ք}[b|w$Ƨ1<-V^'-nch`ξ>V ?cwq ^[:Db?ZM=1?X;c384s}vmeub-?t/~)/ݯьؾ"Ct1y žu@歍eA|ofkg:~K~H.}nuig=5<מVxoovGvQ؛5/Q֞NF]G|&<?Gx QziNvzfp^Ӱ=&Kv/9MR*x >sD{]'/.}I1^z xfe)\w!^faWyK xhإ~+׮Z6n7g&ׁ7r||w~7}48kc (̳x;/׀?l?B͜ckW4*qf[Cq?Xo84koA3˶k5jqiWF5;w<_it%/~0=oW_^7w|< +k#=9>Cq};!l!%F3">d/j6Ǜwj͜g㡝lZ3lD? k +ǧY{5:hWNs#OToxbozUo=b?gFoxo~5#$ӏǍ&7&k_YƟ4z7 ?n=x% &o[7}w<|Vr3ۗ9?x˟5scSoP xϔx=ux?k_3:qf~ױjy='gFu8ל_D3EV8 ߬]6A_k~c}.Yǡog7KO66^#_&Qz;}g:*3lϕY:ZSv¸{) _XIFUҿyMx>Qo r$~$SIK7}O¿[~N_J}麴Y~L~$qt-ߊp3/u9:Ors-Koj0 >OievANo`[/Yo^B ۿi#Џ\"__3RyY-f~ /qkIoSV~ϿO\%;٨6< }feZͻ S+з\'з~'d~@߳]>?nG~ftq }ͭ8f7s[}v[_Ot; (-AN~~XffopZ_ +tuk}uH_m醮~K?C_N%>}y?p=~I}t\?I=Т<揍76B?z|>>̾~7e|Or aNܑNg%fߧw:nxMU\:mIrApN~9d U3纯AFyg{3Y,MEVs &~ <06xG%cp|lQ.{IH1^ZQN9^Qn0L1^Qn,;rq?G(/AC8(/(דO#/(׶@(w'O~[{~FOs;ث`ߘ{U{I:QW$Og3B,سv9ؽ{㣪6FwMݨkҚJ‡F7a1nF7`X(׀:֨iF:*̝{% fX?;sν{y{޳/6GlE=jSM{(`/A'PߦH?;4oS`aSͯITIǐM$~ߠߋH?1[liDx 5tjލ^ʞ⮜ݛZ岜ce9g>t@TΪ$o9xMu,kx5tK_\x= e~{aqvvb S{@Ev ʵt4'3{(pƽӺuvՃ6!1o xu9B(xs_b|4H_.Ŭ9;7=QpA-7[KsG;w }4{=ɑAz(_6զ,r j[׿3;y.rW?fmȇ _c#H\':!oĪ!/ѿa>i-) +],rl5 O?Rq +x gv*.gCt`]y +)az;X?;5+ cҪOxa=naOGޓ_3td "XW}UiK]zR0mLq;z˜ ?5 ӟgAXߧk/&g)g0M9ip? +-8Eʪ0n?bo05c?bs t,C{-}EqOKۿ:>#9m B^_(L+ovS&i[&=lY9Oc< +.^чažY?pLԸkge]ZtA2^tγ%ݭjfgl_HvF5I!}م<ǫ%V' s$w=7> y;a&[\N Fy=RWz7g+؂(Q70>f?ӬaDf[<Ŏ8˾J>>Z-јП[zZ> +xk$jhys(ƭ'#6;~.lk(iM;$-n:!S y@@^ 9n[A|>g025?ϣ}(g-Ook?H/ootYB|U=fj|hrqϴ{N3}7 N6(Cd}{T#}k!<A/M]6nqO<>r?ҋ,sa@/;L- f +y2V4.v |[2Hʗ+Oֵ!=/@{%zywS>ؑ3ؙW"_f^gD_d\m2n?*Q!{ "ѭ.y] ߗYl.1N 6Eü4#]~NfՂ{r̛ju7tFegKp7=^'X"V/FO*. ^"bfК̼I^Oײ*Bw ~1CKox~Z2Л+&^{8hq/!#+ rnۍpwEy|s!qgteu#=_y9XdDRp3z|D`MNqPn>//0]?ojvA8BG/#j c/:-~W{36w|ՄR 6sM#Z\2_$B3?Gq3|;zw~!?Eh>Aܮ?PvUcjԃ~kO| +~]ؽWi>Ah^M7LoMuQNVcu}3A+ůIhY\^9l_eGTk?dkne|<RnkPUlS"ӈj*Mi_,kqy5 Ar|#^0??KeږM/ه~WVKLǙ`ō6ge7ܣ׫e /s+e͎}SVfY >> $6?a?H/\+ӵlXm0߅bsڹԹs?(kww2lyXwr/2w]kLu[lzo6H}~bGX Q؂ʖ_cŎ4_ّFfؑNl9Ii4ˀu[!<_iclyfJ_駙.6%e/xu0~,v9s/uf9-ScnȮ&9!rSu_(a^?Yy"2ۦVtxC2~<t^l?+oMuv7</LYyi 7/kZWo@z?2IS<)`WG~6Y}G_{ XGž{rIͧORL |IJ?>g^V/ + ++_ezYk`~.%AKW!-:2q>mLQh~2[%̄>B}1jl +:RK=>D&|343 +|'Mv?y_ۧɳO'-+t9|y +Mwo/PL(/T9o>_H1[uq +дح3؊1i/{ +9WϿ\~BOCyO *wXz+9cF}BoX/އ)^P/JŲ.x 7w/=W){BG$NGdzu +^ [0~nPWe{V*?tR|߫[ڒo_)MާQ +WI,bz־ژ&Nu"އp^%kaj)"kw>^ +x6ؒ~Di_U8iF d\XwA{apQBҞ[_3aQ?+oO +о | +5;\Fo9q3}?O}ʀoϊۧS}L |ԨbF? Qza~()Qzy<7mk:Ίv<{ +y9*st /~$7|+J 'Ur ,>OT)QˣuOx-a>ǖg x}:g뢴Ll=|wcT3q3(m#o:>~(S+Wnʿ6JA 5O=}_k%OB~&/bq4{Ets{U Wn?G~2{-11oIm)KE%'G&{g=/ ίQzNSv*lQz#;H|~EiXl}n7fOq?x-/Fiz ^ #}d{F{^/|z˽^4Wuub<;=^/ ׋^/F^+ρ(bwF/E\S5x{?tuu4JCFiI0gWQ~eUzTZRkRi/ +RK=pJÙ#ИQ'x'OJ*sM}b6oqXJg?֓UX ^*r^յ>*^қsTfPG^+{}l2<[}*ջ1檴6>ѧRХ>_^\/\c/xU+T?8Wcc(5*=v?K}?Uz>*5ǜߦ-. $ω>rNUOdvz!SeU-?@ +AD=9z=uw>i"Ygڀֻ'N+U-<g0 7 ȋLr^ؿB&=tr? J`ʫFzpjwj< |yrϯT: +"SX~*-< ݡICRO-o`A Jx{=w}C|#a<qUOr6Q)1 sz^1^WkOUlʩ;m'Kkٯ՞T==UI }Ulw y9ǐ#,>l&yG;5KyŨՐFS]o[ o:h-?Ao4ȹ ]}X\՝q%hɇ#1Ġ +J@ !DeԲ+XSݥ+R(uQy4ҊOqvR,OK]63 IfQ1H{x}~|U~dbysZތ5~g+珞zU-Ǖwg*8rߣ>t߫߿d85)0]K|h8yO!}_qe5QxN(-QDRgʏj?/-@?k^ϟ?cu g +7\Z9 UgSNK2b\˸1@gGYzr?F}o !:[|:3낮o[^SqbG0%%gTe~/rܞ~7f>wQt C7yWO)x-=~ )ݰRx;»-Yߋ!sw0SLy:_JޏOk?xOhl`?Oy6@b9$G{(qHC_߿$^ùe^#OQbOJ;ޛH9lg7o"@S :' K?'~h$>nf.@+MjJg6g=7Tʯ] ]nUU~)_*]tiAU}B׷2H's.v4H[-sڍA:>*V輛IGCAqK%ϕJz|һ=H`ibI?+Õ1SA[\Kb]KK]ֺ2]M>zO }ߡn;t{}vuGkItꦠkx޹.s=;U@{)H]eݨu{ +]ot"әn7Td,͌iġ.3_NsCvuurnh"H뮶L{uEe4S|s72ʳZBLsRϙ?m3V cxp/:v~ x=:xm:|$;ujyիI'[ux6p?|^|N^ܳFB~xowsTx!:+P^ ~> |xO{@OYvL |x/^}@tx 3{ux#o|!ܛ% oW:|b':|xZA~5Cu?v`u:~ofǀ{uO {:|xFAZgWS} tAxN6ky1oY?!rItJϳR7OU*У;]抶iҌC׽S#|9EקZ + +͏4~ k+v"C4ѭ_@+4_u^Y> +~>7 OC}ğ o3II5s쾸oǁ[α0pyp4~RߺBy_>uN ^@Z+̓㚼B :Ͽu~$?^j]/ty.ѥ7[A}oVzYh82.LSC:,׷gFо3j?i~]"~װ}~)q.o@i6=OF??i:..H?ygql1_{:]YCSTE A7VzSms˼w.#iıE#P7xWwյs6BO~ݣ~rG]1&̨ҫ~P]޶a3tMwL|]^NH7B9ԕBT>Bu:_:CydݤMnB"tY \|iCK+ +;rd|_/uuy:Cw낮!Js!orEIWCLumttM=Hauw&G|7BzjosqױNt#GZN|x-ͬ~"Q0>AxBr}Q!sqB4RUbD:!JlS,@%_\r>b.o(%eȧjx:Ա)A>4]Qj {YE ]S(]>(|{|Njs߬u]&coS/7$HoF[/yn 5S➋K3Kx+~ 7FovV/=7F;~ٗ>(W]}|Osa?U_~8?Z>\>C_g| 8p~.pꝕgk1ہ=]& 9N\*J>+z"-16)ΏIEϩ|pυ1W3v?{ys"wJwNda?@AWVE|f<%Eh{$%,0cGpg.!a3*kE60JUgVra yׄi< \|Σz+.Lmr~JY!&[/#Q|(̥uxR~]t4ܳpgjw,;X酾ɾǗt糧>^{Z!Q˞XߝωY|%?xexeU9 !.0}, ɷ|)}=W0Xc[S*ۡz0zО==V4gڞ(LO%k' SΞ=[t\+Xwcv]0{WSksXzυi2ŞHO:}|ߩC{`z޶3{ӗ؞Y}홟g6Lpӷ6z;L>g^16Ooczx@pn+wɺyA=W3ڡ/L;q#iۢ:ɉPSaͻ[7qy-y.Szr0]/-qw]t'u8JV㨾n'-{sU^@yE ќ~u Tܳy +A:bLUڡ^NH|sۀg6O}N\ė[2WE$Vo9O^oM^= +斌^2NY.3_;P :_1~WTٹ͸z;.}[~wltf:Uzk{Rw_ۡn7v"?B}c^͟u=B'_msqnko֪R9_.85> +~UgsIj/Uml_C3~'Oеr5vh?,Q5BW?p:Vٷ7C79I'5ve~®bNC״-Ti̮vSw| Ѯk5%oHOu^lϮ/9EдjNѴy;iiW+1{evfW5-=M=ny6GWo߸CW;Mı6]^{e]BizΡ]5B7izݡ]BW9t6/gWSN! Jy4wfW5]f> :|x +xϙہ{xpߜ\uMf srf6IwX)|OxW#&x6zx- (Uww~x +uang\5G񧁷ē3t3Op>}_ُ*6iJb?Oн +W\~; ']~Y~D}+&~nu^:AV:wٺKY;,ZN@*B>kq^)t9YʵY"Y8K]q^.0*ƿ5Bmߌ{n7ts*rXyиμ|ۡЯt_G(^yzOE囂n|KS>]*sSc=)?2}Tm{/\.Dl_&~2~yH_k_5.ѭ|r^29Xg΃vH? wc~7#ˠ? )k߄c๮zbIIf>aL.u<ӑo(#3oF~vBkWt͂xs۰Pt>~õrdGw`F)f~Qug-:?QP\ RNz7&EdITv&7Z[G 'l_Sm̷oiwq{mU5$:WwK?ûo"ҏU8? +Ͳqw!i"{"ߩSݺY)m"eh[9-Ѭ+5C]SL{^*?}YEc@}=Zlz՟w}躋7gU|K2Xz%CpjQ2ꦁw֥?.5검7"A$׽Wqx|H?>rv_.m_!ҳr:T#|`Hq_f wh 㾹5?#J'W)*</KHw? mg#]^~}  %6y*tY盷@f z0 +{EaC7wz?/Dj)w#'&sѿʮ>.L48*U4hf5j[$!|$QiD6hȇ QjN Q[6Yi[T[ܒ-4J*Tو3w`v4}9w9w\wy=_IˀKvnk0{3?/^0JҮ?nkp9۽;uGDNg/ћ8qO'شo];;%S[cQV[H1 #v߳۫㴳y=uOxG"Ҿ ⳑ^ކBv* }O6"NtV6 Ktmw% _b||"| {ޟoVzU/#> /S/ˮx+~H`ڎH;k-+=>_||v.qvv3#=꼰~to.m5c/'zOʾOs} Z̖S ^EgR| >ǟ =>C_|b!װ] +C7gq(|qWp +(TDg]3{e_]⼼J>mt HİWb ^>lbGSxM9/F-v8rћ))s5 啯fS| S3x>ȹ>!y/9gi<ӧbu]>L v??C}4,o}gH>u#G{|QR}tX|QU;UzOG |ո3w xas|.|T8G >]DAໂ>ʘ+? |`4/@U\X'ylS[)aȔqpx}GY}CM~Gwp#Ưmڧ\m?uc\R~JK!;35Cz]?x9ew~s Yxv9KM1qcIK$>i.1Lol˾IV{sߟ+џ+%:Ů?%~<]UH^?[A!OVc7Z΃Ib?p_KП[$yJڟ-Mg#xKl}=g ^_D/ɧ+'Ss:$ق4^hx5OIq +~xOx=O%: {çr:2x\^'x~̎7//^NF" YOrW +P^= |խ~#8>wU +{isϞtn0'if?*y|qKs始΃5W_}v~">>SK y#S +|[||o_:nRp|<||ol|?x/tEJݗ$o>#뀟.sX^rʬ<^׳~Ͽb{e~Zɟoj%?uV;i0ޯS] |ꠟ2뀟8 #?]"fc%y3-?szWoQfs/3Ż}7c<&>f؇oKK೾5Fj].>dGY`U?/{S |֥ctB |1:,X^W?3F^dނ^=Fi6v1:g~/sy-ǶؔkzkB68-d +08$/8|xnq'ħo=?:N  h:#vk:Nȅ{W.F[tb>]g3_i~l,]^jFS|^bӞ.~{:Z3 +TK91\Issp/x)؞NPy-LX??=9-qof}|6{pvfő7Ou 6&jOxY +&;y +IS +| rBrk=wb4܃>^^2A{#oRM]=A͂ɬ zNV^Qx5qio]~OxMa&r﷮~˾x_t`o.,ӱ}xdI^~7}hv/v77AװyAg:AG2_In`>sl\^ ^-Icװ*q>3˫&-H%Q~-vy"q:og¢$ex3颴վmG +yAfV^I$~75xT)k0h8E$x}8/ƭAzebUK嵃7bЈˋ}(+;HI?&ӬHGE~k\ +vHm ҧv<^\K}-Hc.^PO6>o?Ie;о =lWϫ%nF~O]2.3N?vD 6S{S +eEx_ioQd#{!46̾?WM}kzn9VnFu?*4Yb1RXVBqնVNq ~zF?C}| +_|ӄByF[+Rſt|3txvWSň4~9fD{+{ +uٔ_ _J/Zo{ ~Q85W|qX 3-HHSY?5naJ ;TlHo,E5#o` hjA?y TzoNlJU3/-7Xiqzd"o[87RrZUV^ |bX:^9]x}J;Mv.wJ7 C>-X7m;_JOiO=Ϝx^V௞abW‘\Vy&<.=Q0~#_hvJ7QՏA.Uenl9? |r^_>QaY?4j!4=L?ZYQr4*Ѿ˹*&WӜ7y*M6^s)\mbkKS ꥝?yT?\8ﺕ״QU n4׫łGl\mߤqAsJӂ |TA>kJgh|~Ѷ\mJ¾WՏRT陔xr5թL?[Z+SsJO$Hs|?sY>õS>ƽɘqM1 W'~^K;n{Uږ=p{қϪ'x )b|ߋ*QW?:҉1*cߘ#|{ ؟O?7T<բ?.? ~=#*=*&oDRqrR6i^x|*O/Otm |DGvٻ|SR#JYAGRKy@+(jW,XubЂE8E TDAQju5Y-^в˜_$/ Ͻ'yhE_E8~Oh*+M)?zEi|)y Fbd"O₩)?oneohS~_1W (>8T^K+( Ua|JtE;TDՖ";O{(b '8?C1ӎ'R|͊a|'୊xUO"gǧ{;OƏOR_Auw)B8WNV`?SA%}:sϘM(E|0 LW6uiݫޯQxAEw8.J(>s{9*c"z8*"w7'>/Gh9JKy}+O)>g":OT{^" +Ư+}~}˹jO";C(ؚShYk_,39?g+y9FOyOy P|~379?/yutלWםWgS|vE%_=t~^}Sv~^v9?/@8?.*[gV>Ox H"n-_3⺄4/߫#SP|>E8)>}E(N_y}\z:?)G%_~P1#'(>cE\0>!H|s-iOe_ߟcZaŸv(b>oެ?S|"tXZp5y|4u/8vS|Ep<|s ,^H/"HɗDZ}S"e ymJVѯjD.#yVU{4yUM?r|/ OKD +{y}A^;0r|VP " r=tp%_[,^H|*+#볕796R#;yHO#'fT驪E4Uzuߩ-Ugy ypU~?my#j Mu[Pho3\A GY~OH>n\;J;U{WSî0CP~xU_Or)>6UL1O=|p_9I*`u ϿL˟N嘦C=sUC? ڭSq$J?ݿfFV vq8|^(?U{*n4ڡ/VUnM[_n#3OZG8o9o?HkhghSî *W2ZMz]Q.@27繾 +*|]csQoy:FγWU\ߣuIH~ͷa8CO S}9Ӓ_u<3bfȳZ×??=忙ݟ9˴e})׿kg'^~}OOCzC Ot,8Ct-8}ӏ9=OͿdzIC7?x +'%姫KdBvs2%=ß|r9uȴ_2*% SEeG:)ο͓ + +9=Y>+ݟ+ӺzWu,.*_7ty^_ޙr2>5-!o|],IU5v.v\Jd'vf,L}2p۹YIn?7M +8L낼|."}Op;\_p.w\7Qg5u\iWNy܏ݓɸ{y+ds9^vV_Y%>q5r>}zWp;q"|Nd|^_A;^|#;%<|Ϛvl7vl7vl7vl7vl7vl7vl7vl7vl7vl7vl7vl7vl7vI|723y^')Y"\O='7ug^ܕm~IsNr|ٓiO͹k3V2y)uy)gΜ:+ZK=rN>[箧%<\9z>^O6mXy}~zWTGE_zٮڜu>O]OS.0ߚj=>O^O{iu(v3ayz+MyTa>zM}6͌@)s4߽YeNocNmJ=+೔U|n^}DB|-|6oGn~9Bi17, 3COR^OzY93-Zu1^~\٭;oK+o +Yo{Tdm,HiEl +4773[f6Gf8Θ77 f1ƻ[-iVgǝcqex1{x4fGV2manV<0:ۀ~xlw>x&Y^|37מ`  x6/nuޢ',_^K'|*?ເ[]h <_-U[x4w^|3C͛ <x3/ +k? +Wmbaz;=- o> B+oo~qK~|8;^|=oZ|2e ~Gkq|? $y;/G+> V?ػx + a?^{0 +<xb{ |Lು/F~m: |%{oࣁO~Cǀ7ˁ>x.+ gޓg$׀5\b <BO?no> +f🀷37([tN | +S'_G{6_|;Zী_z)8.|ǀ nhӀ|.e! +f3x\f݀v%7?{g_n=>x2ہx w|:eˁ1WO| rxˁ;38>/['{g|6e_ ou_ | +C |!2o){w|6%x50;|,ix<>x.ǀ |o  v5os G:? +\uӀ? +|Uׂ^ \odI&~ +_|{hDZzU믟fu9Yg$KZ+9{)J^zWs|۞ D3V$\v/O<ѯw^w\ρx{}:W/6gt)ꀹ]zz{CKկHv獔~Ξ~ik^oDڗyW6wyK$ ؛w({]мIv[Ku][{gK=/X/{C?K1&NN\ǞAB={-{nzoYm{(S^9?nT^`'_6a s?Lgx?kؽLazgJhĮϳ?ݷ׼ޯث6{`n=* ܞmy3:cyg:{^Ϲ^y^+㨒=8T xs; ZdnT`s?٫e\4v/Oy{Z ފ2MCy-_3Xd՘_*؋'H0n`O@V'=տS/y9oI0zr{f{٫7H蠏wrsq0\@ycؗqYv]}/?[uIfxc/yc!s~¼_fOsW#WUAj"Х"5X15@ݝݖE.C />f>y3}3K4 %( /& ďDǹ3{{nv lw;s9s}Vuk.ݏ`Mgnc}a>;,>?W^LJ?@9 |x_:|wo=!5u_4NϷM߿`e}>v#x̕xz`Dv1ܯ-`_xY{ ^x߷ x];}~c +/J8 ~!8NrR|x|=XoQOxz_"z睫G~.PxyܗϜq#=X&Go0 tXK q<^GO?4PĽ ~W}IÀ|/+D|{a}f?yb[? io>1S mlח~8cuA_ ћO +y``0ߠ^/~YO܉_> ~h/ xYخ/?C<~ . +'>$g"\'kݎ'?!.̷3_]7q~a 3"_|yn`7?q|Vq<}og/.?|w_8χ6 v!(WE~z˸=Au<,pUpaa~hx|G_'_C,o=5"sZΗ๟~rU`/ |?{q/iB{~[],[F<Uc0Mk4p]U.ˈ-#+mgضYj5cIvtZ4sFg:ְLUjΖ=G# 9Π5=Uvv?zp-NR]AiM94쾡aT'U#a۬F6լD(j7oad4ldRgM]ɈZeޮU-p J rX0rس)e"Oޱ}CK۔^ypEmEB$CF UZ:vb4۪dRޮlr +MO[p(nlϦR} nqda\l5L) 6-~[v$5z y˘3kfvlm]mFAk| rlRC76.*RE\ç'沭,VRoV6 +%cPw9V6X]X66R.`.X]X|*('1A4T:)"4#UtM +\Ye:"ԛ8w2x1+$#כM^Q2emC2 ZOҥ1rS5h3i +aaQ BMqV=4I:F2&FH$NI­NdDIԤ~Eĥ,y2fFP %HVPyp$3Ġi4X4@aL2dUg> +WUɑ4J!IԂɑ4z$2Y1zitъ9+gMecr*O~,C~XךxG$ +D-8bOqeɔ9 +Iض +Ka`jExC5kNtm=6@F,2۲*DMb`{`DVҵbDVbDVbT>UHQU1"*Tڤظbd ]R}Lflن3?Vs<|(I" +c EV; T=«QRN÷dݲgR$OrB*G Y6=f +4u%:x ?NX/[#^QP9:"gњJ.7V9TЍU0"pj# hR6Z^cY1-'* DvHn{Z! +WW Ĉ7+{hQۤ*o{]*?R4>$=.OmzSyR"#)SAMPz\ mKr_`6f)ҩKP1&Q A59DWՂȔrPDc{!^=FG&2SB(9Ӊׇyl=F~)o=F~/.LŨ'Sԃ G˳DQZP_$v)dP8lՠfjX`+D4jmW*CvVg&ߡȵjA)DJ+DJSZO*]M}uO?DJVYLy?V#b̃~OE:^"{Tvz0Llz{ +9xbK|Nխj!^'nIAͮ*$1+Py-]Q{@A +8֑^JUn"ޕ"h5R_늒-r=j\,&{U튥0>jThAq8HKfKP)!PxBu%ݕ2@WJK]), tHЃe:"5 P8Q&%kٲ|(K"<4EqY~]t& +Wb!J 94>ИKzSAl'W<'KMݐh0Y3erߜ~o޶%BU؉5RL2|6-M{;NzMwd +)4e3JT1{|gC61[遁ϲl#Nӗ]-#',_5.qװ8͚>d;Q u([ {-t5TZUcy:4;%9ACգ,]{Z9dW`VO0h4,2-O +y",1(i6"Ib5q'bijD+rZT$۞WzB_/SU_f,Rlp0$fĵe$/jOku.bjeBuVU-qXR{Uvx^1|yW~w|8eZM+.GmgbzQf 4Z35,sZ6-K<#b0r`GpQf/gtru^|IA !Z'=|O=b6Rt^'{ïeTaU NΟD< '3WE M?q壝tPgPJf1p1#HJ:UHGWl,h:Sy_]fMSf>v_ +/SwXTd/߸$qLRM gwx1qм{TސY.kyN^fv(L]be |_X55XPv@twS}H3SKLOWʕosY2?u[LsS}Wa[ +%I~هi| _GYq^QLòuweטּZe᥄,) ;K7 G|>1sMvEpaϧ돼#YUzjVnP.Aq׳C:}w.N*)oҊ먼c!EY너(4q9,HfFq/5rE}be _TKR.~A\׮ejnڇHeQL9 +v7,!QriwZ;Ht7uop1xq*>ÿɾ%u")U +;A;n}?혺ឮ^4l[ZRK[QkMwݯ6gOvħSٞ f`kˌҺ xds9ʥ=Q}-vyn{@rDJrYk?;ou|( zܩȎjSNjk 5LT7!v)v֌GYkq۵MG/AQ(tuDK{QI":W^HiwZ8B6P9`||$u4A +;M5qJztjeݑk!F-T"Ċ-z+eKdTJjj&dw5ߟ#i -*h59Ӄe#9M.zr)LG3F*SKc+),ttB#<(Lc*2ƈmD;}OsX4aG~D]?}#[k񿧂^,%MEMeov"821q| M*9>6ArdIx]6UԝILMOxE[lb}uOeϧ[_]J^;yl3 'aXX DkF9aM{PNM:;77{\X"Pt8ǾG}m~iIsNb$u xCVܺ`tNCԘ&buJs +9 p„z vEqn4HmxJ#Qd--:FqFKCh\QIQɽz@d(E)vExxٹ.cA, o +6xd5$iIhZa +*[*"p A%~QLà'~ysd7~U5\v#jo-BQxzԈԎ}`腮ڱDk-G5xզFJ Llbb *& *َAY +1?ɾs4FDžZU8̏{̸,LV +A6К˳͸;4@PW \?Pء91^ohgnۂUFQ_PvCDʚe0ʔ6Ŭ(O}:e_@{r+zXcon,w rƣPDu1QRQw5RN;n@Axh<&6)#ZJrsz$U+f>w80d6Y*?îXz="*"f(i*m/ PaUsq#$C$=`J7KER.^#F>59c[ןp~e]cv@;w*V:-(.E󡉒/|Ai)f}=싲*xf:5DŽڠ:#DU}\`gZo)\UGk.$b>*vueҖǝOJ{"ֲRM&"0!L{RWi;jBik7ߗ7Ν UWLЫ˕/ߟ%Tg+Nfes'߿tRM_B3,dl`tΊYi(КӮlo(Aאg(m:z{gYv3]5-% |?z6I*Ɔ.E3Mjf }_y_-n}8Q nAM;^j@/a>R뼩ڀv|:0нGo5k^UNݷ_ِGYHKs೤uqC`50{b{jTΐhݍovKoQ5. %$&z8$ EUt *jdK#-TLz_XlJ5zW 5ܑTFzCH7-Ǎݷ9jN\I&6yEhxdMr墼ur22Gc)E}<#';K n&Tz<\3$EA#1YP65;ӍCh7{Ohu2XLU|\?w +r6z_:\in}f yc}ǰ#%mR1r(rjwIpˆHZKIh jHK,=)([:x;J()LL`?87.2b0MY`L}r1\~t G4< Aߊ4[ml@]f'CN#fS^Yx l;W~Н,LZlcapD<3dHIS!gC84B5F";/ͬFt#㜄\o-p4sIT9]Fb-#m˫ j wrE%YĀ X<[Y[}>Ii^>[vЬ;LNy{y.ca(M٬ ZݤZ!%w+?$i:~ vTQ`EǑSN)"#nD W le;:_l +)|D>bJp,LMaue6RUגj{1$fEq5VeFO_?:XE@R]|&З̌)ύ,f cɅ ++<+g hHS1F6}*GW)B8)az2hlM)gdhԓ 鍐뇼&BTzE?nY+|T[M]HJ~EϹ&e^ +[ 7WԴ&vp6uy26u3b׻ʤHI^pΛg)#iW鉘JB4j?w7#E9e^/ +Z$Qj$!G,F`\9 6Fs:qJ[.7qsVIΠ@~IJ|>ZLB;\Zn vt}с{vp폁Dm@ | w솻mҋ~0lsr <bΧb + _馨Er,I1H  +bKͰ +؃ܚ[k,\U3[`(`HSv}+q-#?Fej/ #h.yښ 'OF.uӱNQP>{ }Sǡx#Ĉ$SNp@f0Fzе`(ǾŤ +dS &AgZǾGX}nyPH:CE9孴qG+wl%e!{BaZ½=E{)&Sq7g~6^5(k]:{X\GFc{/ʓ{Sh[#-L:yxH«/#؀PP&v %"~j dL]85بW9=4E6JDf|)ܒlx*#ϽRZTdih1ZϊhfêjZ8 Y.1=Rգ#zl sʣa*u(br$cR~-Ŋ^s2bpmperA+;j k`U {#`HC}Gҝ5&¬!8DC#DETTTBr],=!{Gg^؁lORΛgpO0]!}>NR[n;]~{|@M5ƛҦ-T2S j(WI J^7/A-{oJ} m!G0$c5)uqk+^pz p#G3Cua7XhݗCGb-Ja͕ǚ˩+9|V155<ĐY\_O΃ztٕɮ^%_r_oJXSޭd Z4&炋2U^+[j$WR;uRIX$!qj+!#a%{!5"ݢsuB"9T6%+>BmS[H졑c +xm-X+ݏ'T]Yw˖?'yb]v|Igw1"hTw76t(7M#dZƁ^;uh}|\AR" @)CMFVcF"u - 0ɥ*/,`y.m퇬7?xgM:ndjgBg^CO~юCҎц=+$5 +y3vZ0O)BG"-3JyK`k .8#cgdI*_]k*RZ=q 0Uo|@Sbhe,:3>-x O򬺋y +|.G#,9yX0k` SIb0F!.ws}ωHMi`h32S5z1a_ș 3g&"ߥSWԬ%ҒHm54H;򔫯y$1wD*.7w91?r&Yi!%L:m>ۑ$'n' "!w]TF9yw|჏CP%yiQHɬ#s:@>?M:" h +YUTbtWA{)9)Q t({6 tIqãóE:dg~(wmPqtS| H#0)}-zMFs:}W[x(. +6CO NFɘ#| +QԨ + EE<:HPnT= q0F?Q(M_^BZ9[,O>!Ί<"B߀wDw7,ԔO^VOFZJ^Ga 4q[IZE?y +4%R]؇ XF"F]?VqdIT#\[V7F27>HŰh  jTne愩 D>s RLO\RߧLKd$Om]nC9yi$}mЦz|n'Z.ņPh'@OyiBbj"g3dI,2r3Nd |<ğgp'kΑ3.?Mt7#^JCa$,/έ_6=W|O QX" s .;(چ=dAѺ] L KK }5r0u6ПHYfhYRNSz]e|D;2℡_YE@M]? ohuzj=ѿQHJvjO}zic֋Lc;ǰ* 4UՄm:o>}\c yCmP]&,Ӄ&J -a<&nMкGJ{uUM$hd'-(f}Dm 8a!4G{YeD~.%&⚬ udxƏ|RV1}֓tkcHᨅ(4BW a _QֶvIƣA)1@>ow,PB4hfzQ7Bon~SprN/{I(n@.?w(4&yןVk@{ |L-U#Nن%u M $)?t9& +'(լIr̥⛁ڸ Y~BFBQ4e4Ш7F `]H;"Y4a"Z_p_?$Y4`*&HΩufIE_yc=EqHecK7/yrI͝yx<$uVןߏ1H$ʝomM9#\nD?n8qQh9~prfǰAeuhɼ@XDa2]wOQln+=ԕ36 hA/[['_W'==0x~1^` t7CVz1p _l1_ʻN 267g#m?_5vzOP&2RQ)濥Aw1Oe؝D<(- +zɮ_hmlXUYjԗb6b؃> ]S;LĘXyw v0[P +BvSȣA:z2q;Ub0\+ eg+r8~!lxS/>v֑i-"qhQ,C<^̿d{uKV7k7.B'˯- $m <;f5f@auf7OO4:`8ڍy/˲*I?%"v6Np(Kմ +vǜ*5}[.O)G#Uє#s~' 9!v):A7"OA&YYbvV*I*w&+Rk S[64u +ѵ gS c-NgGK +5FP\'X3Q/@)zgIoiv1xXP gQy $Jy3kur2!y^# +\5Fu9xlQ]m3 +sPѲjyxa;^}S;vTzH{^ΏpaDў;e]k@ZUmI:"E8 yun3j˪&?^es2yrXq|eXV*sΉ^Z5tJ#9{s8z"HsMBo"-oZdwk_t.)mO RYƪKa\w)[{t)k5iF*Z7l\bpcr4|*p ېm@pђd8ɴ^sZDcФfhRӘ>.aKD 5Jf.UL"k4wdk,9(0|##~כ\GQaw(Cy)1v] =҂iLpvRLABZKV'5v:N6>`;.3;\`l)?;Y&BoYgCUXA6 LKy68^9#K^.S$\G%"V9-է\D_ ߶715­)Nqlb8m?c\n:_: rdb.~N0+p:|I +tl oXu 64;4d1+Bw Ѻ# +λZlg!sLgD;rш=fwlH=i@:Ѧ+i+3 +gC<7HwPCm"ƜI6xi|q~:9Z\}~t}y( KȐ($ɐ?.^ ?'cm銉ˠ")q[7zk%r翃/zc.ˠK>>Dc\_qh@:6źs襒HAPO2cQMQ%iP<ʜ[R4A[$X[!5x96غIW*&e0jUꉗa9:,۬6"}8'RWVHBp}ќ_ʒju TOɆY w{ +1좮J2IaTs,TIC%ʮ$O5jǞ7폻%] &] %ik?j!$&4\ ,2ҾH_ +0`ةĎ؟ۑ؟$(L`SoZ;o`6߰gQ #X%g)0Y95KzPwhC28/an+H=yW%d{-sB3_':@Coĸߡ)OἊwCHynYHw0CԃAձʥ^lh:)[sfD"WbP B{l]sabLrI+WI}@]O 2H%wub}^NL[ +hcjꪪTJlip&Wy܅؍, &B21ٛ3cO0ř!W1eC=-ɗM& ,+mУ[L<9ؐqOI)Oӧ" `c:;m$5Z RtlEC# 5eWEdII(9MYWygQ/D v$е*E pn\$ѧ+V8vdw qAD},c!b- ,bzpQ!S|etlP-% bgG4ӏ̴‰0Si/ }ת58֗O  =\I7KV3 H,1ֱ،Y4׻`ڟܾNH'{ꪫNXXӏYoELEd:Q^OY,{(?@|1^)UB}_YiXj$3O Cy4$qBcJyoykrȻD!|ɣ]AIa̻` %&)J$.w !څ"#QA(# 0f27MsrC1֊'VB#A0~҆LPڗ1cW-3_8E* d~ +0=3+/[+hu@Y/mMj JV%m^L&p/'v/v~<"W6F&\3qvIc%`&Sv`^(-ڇ9l: Y$4`f]j_k􃉰o +GcAFGy( `QjA˩֖8-*(HQ/ .J6?9Ty-OiyW.S6\T j̷K_4_ 6_T hm9 ].kkZn4))-,ԣʵr6ڑ*šƉ0qCفvnȧG 1JB   ?wyZKREg߻dCC fXjgW-KzuuV5]pXh u7 51 +W]sQ$jR '|=-ɺ_5.4[9Ď5I#~IASLm19 gCLu±ʰO +-o*Dd(j-k jqJF5|"6VvvCSB%3SwFcI w>1,ԙ)HYYc㌨jx\z|D%5iXi, +:99Б&f:b[w lЁkA>U _}BIPCDq-]`@c?6/ ITk,y,Bua^(BZyEpfYfj@܌Ҍ ㅮ 7q䔩RlYV#|='/؋B̪P 6cJ 4k䓦QJ.6 Zx&FG#4NN_=$RC`eIוn6/D/؊ٵ%Y +SVѮtY``bbddffhg7*ɳlJB,8aOv+ĆŤ6L[fT%*)ҮMUUmYm/ &/,•)˗~/sŤz,s@hZ WːmW!*W[KPv|hbJcW>V-=ynסva&ͩGu.r̻o)uPDd@iO\W*%OPpFoqK8Zǭ#=Chdnw3z3*R"} H|z!YQkG[ߦ|JigZaG]!: +SyK6W0H[amq\mc\i'l'y55]yRjuUu{}9co9RwDUr#0H\Y(_1,Т? +<B: $Z5J!d(;km 7uM⟨,*7.`H&.ʼnt슣0 uhtUxQOM/M7UeCH {?ŸؽO,(sz'5m˅15[(O9qCM;g:|6"1;N0`sn80iG-OU#橬#y*hp"[?g< +'o+KXe+\4ؠU 9򶃜[͡soC9p;wSwbm:+ .m&ù.ذ_tʭiPFMH3:2>>D xy +!wp$?*.??2>, UtUЫs3 \&>j1Ȧϐ,bxb\`5v'Q-NA"jY}A95hܥ9fOV+@O3X*kq 5 l 1BG=04f:=Yɻ#4nT$ Fŵ\ ?чkR]?^&/a}'haĿ}xq->鶥e&a;YG c3⑩ˉmOYd% W(mcOl?.:Kn~gu -urbOӸ} ktޠ؃` ?>$O}ctHN/n֎S c8ipl|3/[PXI*P# Pd)ȏ`Q.*AfaA0+sbr; *̈́vkɨ]|r$C] ~c8,3ZP"!ah24)ݎ5h=j+8B4|xU2 F7\w+^aNe mn 2ll宋d5h:)#ВR$jEaE;:NhGKgƁSS+ُ\A혖9Wt}e.I9⟰ߋ]ByZφq!bEi'neU39v?"tAf (*W5@'خe]SN#5WZiH]ޛ}8Oj5; ƿ0u?m7<% +&fs~ޗ`M+N+ +yOZJ_)MƙgLRs@6Wd%"K+GON?$k/v[7?dq?w7j%R)AG:fj^AkMj>aRctvO}i5cIw#icZG6t32ƕMwT,gPUB~_Pq_Qж7XlU/[4b< BéD-pIfo%DNdDL0ٻdf#$w'$gh;Vl!y> O~;*'fD Bέ7zCv35-h|e%bE! +U@t/~)Jɻ?R&%3@}mK./ "*u4,5rI0a8Q`aC+EIqЀ2qh?!2t_8qtBn!2 +]%!^ O-q5^ͳQةu2ȯf_(#f-te *q]* aGyΧV6sDA<:ߩ@h7Ac|'hF[%}ͱ6Wӡ#J.2MpPUOD c +fئyMT?OZ9k$nl"nC8GbʸS/Ryndq-jrFܢHP].x*pDd1CJW@Ћn}|6CY~@zY)Ǒ 4l< g0w +RGQ#k`@ I"{ 2ջLvl$gb:B"7GϨ*y#|*ɿb@[#+^)xG]ek9ߌUK@Z +3^z6uU rUf:]1d%JOO9Nsxe|dq+q)o2$cl8\$.ۘ  }(Ss-iWv!(VMضxlw!4C:09DI]VE}`mk_0-=;A9 aHn + w$IP*e;tu/Ƭ5{8  {,q.`gQp1'!)og♩X#qr%Te¢[@f'jQC/t`T&|Y#Q ƨFt[N59Q[w,X(&ƾgXY R"*-F^G.Np fsOҋr6ēR Ua^/ +0OJ):$n #ʀ; 4J(<;9> +a +DYӄ):͜-op̋w(.6X9LY7;UA6i|oƚ:ʨu'ٛ|-jib4 [{jCLW/ +bNO/ 8ѿ|ɀvx, M&+ +$W3d$=zyu"U+k{?*@zH/ɛMgP%/aۿD*2R!TUF#..$ɲn A$S[Y_/Qnyyyûa e1/o/)pߨČWqBadݯB!Q}&vGv=9.C{>eƑi3RR5y_F9JQ)~sͳyzsI)/Me8MpH8t[@Mq}cڿ/W&ߨUW<{J}l?9-jj#JuNY{;̮܎†'N:LCꪬ?Ln!ZA3"EDhoF 9JezO-??_?i(~Lڰc}[d'zb簿/=#qr@B_տnHTETk'h5Z #6>w*F5äuK#Zm +~m|u~"CSt7iYX3fÚ`4|<MՎ3դ2H8tp $7 "DRG;uZHfHyhSnOjJqY}|zƙ}ӷ5i{\%@3v-ΘXqhO!mY}Ut<ZΖ4M8n:E8B=&2d8>6E="]JuO-~ $a (6mwi>/ޣ+ KgLf`|AɥJֆetTDGh tv<Un*Gb 6. ]9Z\ b6rKIvGIu1Z1}ciz`q'_ֲe/}B*-۽Bf1*SsezdnۮdVk3zn6:&$8 2e՟Sre3UfL{i-8B}uf| VF +9»Jst+ޯ6قxfh\T5=LO=LdUv`uZ'VϺ'hZ?a>ڢ V{xiUΑUKwlшKT3'IڰAA(vOqO(< +ހ9:h%@ݿhӍ~z.AW=Vzt$W( B3fE8dGWB3n^<1$C8\Eq C%ʒtNS)| ڳR.5g\rCEvl`knavKY,#tN,++ +! #0zG#_ vdfhTʆrM ~৪a u +H@l?[^#3EI*d)| +]R9w :TXiy2RS_wAoOYgH%KMg>}{Үfxw|σ̾ҍH=UIDFHwx^:\t1$OHJnGa~!(KFδ=yKhSGavNNyҨ; +_ +WJr*R^6Q(37>XsV(d;1fZÝkwM1rdڳxĔΥͺr\*qGx^R%"Mko"n{M*#ܳ`:Cnpx O<8< 4)NG{GjYE/,!C$cE=AޭטANH,] +HO7Ã?^}e@6,Ѯ}s -|vx] ޾UvWtWdzy~1 NEs%j+h6'ĸJc +`p(&>'Wv`] EH cلmCi=,oλjtcaY<-QF*%9i{%G&[.`*%m;c$@%t%N>d!ց馸k{8*{4.kQcCvgyWMo eR_6^ d`Ƭ-,k.…+ҋXF!ӵ]Fuj=`ѫFvtF7tIR0vv=s;}1C?I7Z~z:$ ïVޞBpL5ܚ2yoĦt&#M[֣rL]K1t a l..EmIT jb2_DCd$&$+8%v +Vm-cq kӑB-uk wͻ.LLx/Uq0@#\&'g_2T禩̕+tB.$nCk 7C6}#폏O)~gY֙{Žw?/n^pPfȐW֑,H5]xs<`D+drsin8 *XE7d譶o|IKӽz7·5km e=q'f#4_Kky]=c^~p,Dm0k#TwFe]2ՒǠbQX4aà=[.s"*^ &EFfY9x7Zrb,- qmUkWu)~cNPZiT觘8&5=Xk>̀SyЕ?֏!,ޟ999>@L^x f,[Q$䏊: r-4 ؾ6@nM _xp-Me@wqcݖ +dЌJ?B7sG?8`&ff_;\3( јNXnqa"n9h\mfW)^G`N 8!oK|Nh;q/?yJ,hUeAnE5T}hlArc*}BIU,)җ^BeZ ՙ+jZ 98В{]S5y,<)Zj.a殪PDYk.XIj#j1k|O=sr2&[(J(Y\ 2- SlTa- s!]ـda"] u*(%!J3=U|cvpP I6v_5 ݬVVNᾏYnpI7pOK3O xM . +&;@9N +Z,N׋O+-B07)v9\f:F)^^<M1^~n~8=>cJ%,Dc&VHiͥA,I;YŨ +m  +L / h[;eÒ Eԇ(l" +q bB=. {9']{.z,yGuK0>q۶꟣+?ܲnϗB*bY 4-`AϚNr" }/YcQ kƖgn*=d4F*׻߲PPPPT^N| V6@lկ'Kƹ%h:L(B! Ci3VTIa7z15T͜H +p%-63̠ (L~^^q/IYN V-=<=:o/z"h54Qyj?&jL @<ίE9f| & ,qT4 I \嫨BV@fN|q>;Rܸ=L@N@\An!β!R +7`3AQ;T^D,Iӌ4m +m/ +R|Mb`3Nqi dxϨF nMCU}v6ts_ꬩL,k]$RI<6 " EiBSཚE^d{w{qҷ^2ۻe񼯞Qnlsn aH "S"pjrȖK- 3Ck|-Nh>/[E /- '3F R6%+=_p3֞r$]ػcUICr;A\ A M}VVs4![fKuU/.tse]]a##[{вgn3f5; I9|o˱Tn7-[8[h[ƓTub7ֵ잷!IUk%i}5U`;6*+7fY&nɕi⿿g +*O~$ǁU5W$e 93GGÙʫ*ՇԖ %%O.A}|1\[*bثM*/lF<[Ϗy`OC1fN1:i))+اb-o' E +k,'ʹ%+O)7{](`<nn#~$t\rwlT6^n[U( K6rJ:*F P]fVh/:)4 jmn;7SE_eVa5tv&sKSC҅ 33gjӑ:`.{# {㘝Lb<Uႇ.m *l \eTucJWI"EwTz 9Tp1p`^Dv,f||¦n;|)-pO=V[0q抜=tR{? 9OD `|sM4-Bd=1rq7nZ߄[{*}4HkˑO@Kfk=M*~'u>uMTxk` }u„]ӼA6!YU=zmVqFxCV"+ϘQNӌivW(ڜDvYvQ6C`!\r>9;Xufme}ch+3,;WwN`U{~-ogQPvm1A_p3|lֻml1ݘñ]P/㯰/{4Wqx̖Ѩ8s\r+\<1er,onMRQ()~kDT u)U.#<;ASzJUaZ;#r٠$JR_n *CS`T-N@5Zy6w<^^!5" y\<9cs:8|/zpz\TARL {}'!\!oJ"Yb vPE׵&bz??3qsY(]S^1XПz_:jT$|-U##9SN\̘# \4M/ME?,w}N +ZDRSZ T[U\&Z:`mm[&Ow)\ʹ;Eۅƴ$Nx,}pL'g:I2QS+B<ӡsP+p/B86k2g)2?(@&w|bmx쳽z4E +i>8n\[ tΪ\UfxdɶیYqr}ĂܜUqEEuIyzxBjg!dT4̊J&m#& Va-=I6R5\qQF]3Z ˀM`l]Dd}r#jl|8[5+ J c KwV4b.₿8Gۗ7:iFANB@8di(bq5ɀLP4GN،Csm>N{4uͩqT - /8dibڽ,NxdgPإFݪзhefFuBll=5\Xπ6>Ò|``],֫C= f&^9PipӼ_!alP@Qv脼-1O~aXeQ3 l<83/$@ kK#qk'yg +K!}°WP\Ƅ_W]cZV7Po]TU1DM0|f8]'cAx|͛0>i}WǤ-nХĪN`ELvl䨸(_kkkt[ey6l(V6cH-RK)XʘD cvjZL +S#PSt8 ҦZoO3q| +XX AZʀwm;*\d1pLt;ڷ_1i羑Qu#ݿ d!'OLkfˆ1$&?TL >\ Pq}nU{ܣuvgFz3Q:[lB+lnlIGt744vtu oβvb0@@li%[u-= gۃDr汐wl`8ԘM{珇IƖT[ Vv +"<*;M߰zBsE?>{Xm2 + ?? #~=)Ja0ą3j ΃]>n %Ȼ[IAH&ُy iIv ̥,޿usZxTk?gA7.^zx&G m~ A@ +lL3W<?G׌A1C Kihz{kj +EM L\ ^M__Zl]byiiO]w/*A +?0PZʇzEUZEMf+Qkd&d@~,Aɶ\$‹ǮWd ({LZ+*lT>+0i竦|l]mlǝ0$Э:7N;^'wN'c~h;gEXMk;POW\O/+7:o+JT>-ΓyHЋ'l>փ9SjOF'qSTÙ6$统`>(m9Q]m[P#t!>`Sp9jr8SI3R״Μkk5n>̐_1aFy8ov fPU(WM$B e36,ʁ.aq=fƘD/ v@? $4N\3NXX qElٺ›_:R&koAm/ [H&pB=&(iB$o+1>n(Zџvb0g џ@+m8nao3HGť|bYmzk24Q3244$Ż 'L xֈϝTĝş +O ShՑhϷ3ͺ+wϝNX犑t&MDφ\firTXv$׿i_ ЗtZF8*6z$b!1yd?d#^-mrnqb`QW 715h@ +F1 CCZj K jlI[G0XHP^kW)!Pr9O Y:A˳fY/ߧ'7YihjQV +waQA3ckA2_7m7'Qގ (ak.כGZmY>eUہ772!s+Iq+cfh\Ta^8?[<^KZDYn@ŠǺBp?NG1@9C7]G4 `EYߟfeܖC!\f'SߊfԸzU}7!lɶ8lC G(]^51|NIQS4&2kRŅms{ dRJ +`NI[ &|q]Ғ@}U=9$)cAޞyi︡5 +!QFAѿF~7eFSZyuĄ̂h NvGNRh5m* + +aEmU A,P{>8YHU]QEtnMٶrcmj8.PèZdСK\\T*HYI#s9xɥv +? 8|x3JPY(:cv>tY^7C͢&tξ!hql`!2mkI` !sjr[́3R~g.(_K&nIC  ,-UFt\DyURI::U)Db#={Mk T_^tvtg뮬lAe`[KQ*I*]8 ܀SjƔjݑ&aC[*"l ǐ|5q ± ,!se}-)< n#\g@lZ/ncL/ ! ֮>\"{u,U$M3s\q3ձO9 +'b"7Vs b6҅])5-4;C_v; M݀0N- +2xkXjPSll4•Vounb5(DOݖFÌ0,闽)*Z,Ksk!wZ.)(J6~r\crʘ8S9xykLG"me.bV_P-! ؗK)xU-O0pVVSkVjC\M"(iD404ifּWnV R\ɓ֍ZC0oh[|a*.rE%2_kܣyB֧c<*0\'VūLkEBβiMŁ1[8FCxŒLCj=,4c C|Y}TOG<@994 4m =Y}v 5Zqf,NT$_sjeƕ !mnb!HwCIQnr92UgU[T}6yp.4KeCdAX5+RJ5M" zF}tYF͡ӝ"AOi,8 BGs+mՇ!kX2VҸK>K[ÿ@a3Pa] ҥwE?K[L?ͷT?`>5x䒒s/qTCSx + *ܽv=vEy+Ҳ;EΑ%YAډ7+++=ߛҥ5M?p[D4m{e{' +#FkF 'yRnAp`p4H9nJ=ȢV@@h1Yu7 f:~C=7)Lur$󵢃L^(e 1:{TA.w]=l4oQ8wPcMy)-W#"ʧŕ>WhR<ߓ>j|aEseuok3Egw+'Rbbl44vwXc9ֺLcyotO1;TAgy˔%>kL +s]s\:|i`zCq]D?ob$;.[4ʙ ./<ᢄl>Z^yINj)[ LO- / ӳ\9'P<)! ٳ)j񓯣)x)xG>*wxjw%T_Hj~`?Ÿ߼iScE*:T SO>B;U~u>V|+|L']DT(s^>ˈ +%s\ds>B|ZN9L3-=<l5hE~+u0B&#Sț/u KTf]Ws-GyvzĤM;L&a {_l?Ϭe0Ͻp7فRw8jsJfh![L f؃$`kQqNf̪zrr&Z\ +ro["wg\XHznKCk'8s2-9‹"@F.nN z[q@.!{8@"(xR B e_r͂=uӽnJ>Y$oDIhIJ^ƸT0ĝ׃6BAB7ҵ䧴tulVpm7IU)t.rDzb`@z1 %\RadusD3K[D X6]tMC'_zrla [m)jM\B">%Ă@?Ah/$!/'\}~}Dނ +bc!,rk涚SQX:Cb̷Kmˌduegb_t +)FsNJl#ڢ 6cT'zr$p`~NNoȘyBt`wNeO0?{?N[Er؏;e ++<]y困!JM|rG.`4Z!mh#nE z~DweO!Lu;NDhvQξ# +v&ok'o.g/=V*/)qq 6|JQ,': ʉ to +Ze +g&g6g/iU4t +vcYbԲj**ݴb/r57!*&z6HC@,`?"`&P0?0@#0AJΣ…Z0F5$Y֢x,@ 2":dFL;r!#0Rx\#6B3*~3ўu>w@.ѡ +*h'Z9E%Ð(0M< +U-zM +s!-P;8R g1igqV.Κ $> ?1J jĿ g +s7 +`NtPwB:yu^ h5Jt= ^Yf3듣TO7 F'[^0A[H]tГz{tM^_QΔB k\}Epa W!h#8X2-<a8DC +Z:\W8Е(0Ÿ5yd9R8z# "<9E9l[)zf+&1T!k}}Rk!q~'K00fyBG НGN?Ӑ-YX%6K-tv z$% _o~!~Pc75r1hgjp-L%߰aͳiA^{;F~U0oY3VYUo֝UckƎ_$>CMމߍ%D^7m^([g1eYl^s"N[UL&NRTx}I Ptbe})?swx!c-cbT.NcFFn{u +gOj? T_ ΄vW lj RUlEIKpӛ$D!^,2t%WlQ@1a`XIWfG4J{Jv3$Q Hy0{_McP`< qI7`BEҬ) ';' +}Uiv}.`v!8<_aukQ=t_ rvz~ ը͓)Eb>D10bu7fC\*{(Q%14ٻ(:On1șHciaAĐuWW&ĭ ["7g<& +GԎ)þstפ,-I/v`5T+׍ "8sЃӉ"%b&v+ U,,ۊEF8uFh*E=/~Q(dZz*-=XϮTb6+on#=ҟ"ָ% +r{/|'F);wCj37с: l*X]GU7z/]JP?e*Ϩ}[Kw8⣈D|Oڒ>`6 n{/?Ayr^1i_IHY7}?x}|TQɾ^us֟j6rK/eIisd|ͥgI֣4WRs35[gyj4Qʾߦ9OYle_yzDʾߨ;ʭ>SѼ'lйzC.41ً==zQ]̼Gxo2M"}QN3)52ozȧzȆ|N3/v.9RC9/ܿxe[5@ ZkT h'd}uຉ>KyMoN(56wGuYTi8?Nc 74IN*KwHF:vW O}(N@W8S.W +N-vɗ +3ԦSoV.5jpY7{G-(;IDN[cEWNX+nzPbE/xFcŲWP>9K Z:SUD=_ +:WVQQR`ՕQeQ%BRjZbծQ%S%c<RSA=DS"U[-E,=|DyP@=}Eɧ E[%Z":iXgVTcU [F%ԛBj>Z%Wu嚦S6_b>A{yZ##WW<Km J[[6n>ؔqqxF4΀~d'E2SfCB=PtUA:ʺ,gu# u[wRz{xC<;WqUpA[̈Z2.ͮDMlUe*M$-O0%5&^R.e6X=DtkLB3O=iFO; ejqJ_mY=쯸o~ݿȗ(]2 âdÒaq$.mQNH`O-I bǰ4nN c׿a,Z <0jX c ~ cYT02mN˟*hL@qx0 +a ytP$ Jc&63Z>tnfֳIۦY$3NM:3㱜N:}Kc>!NU(7xZ(_Ŋj۱ ]R _g}w:F 9n*߱jΝs\QV`&)&.ٔ!r1[7mib~?+=ig c] l8Vː,aPԈ,vҩ?>ldmς/?X@hg;"cpN@c o}(z%o@c3;1oP%φGL8ґv#H=9ދ>f t=Æ{v A@e@&fU@e"NW {?kMnNkMg"DԌaH47WC-=/XqզaϠaaOaaϡaIMÖLMÖM&%>I:yp0jڱhhڑhQhqLۆT.MGji2հ3_qնS\q[q#*~M{pfsKp'X n\j ;W.j.G K(Ʒ-oX۝ p9hbWz:XKOp- +B:jk>@G HJJ+%|r8}PtHj}݀a\<^`n;#Q22IG\E::v d=ǔQ˅X D|HVkVȸ,\tN&ґh޸x@E\Dž'la\_*mGn+U1|,De9(c|ah?Ѹ,x];'Z(\7v +owAg7H[CaPQN{ȕln`3A#g{WSyI[CsyYelSOM(RZPiB$-ml uZ\G1x8<11/6= >N2{ϋu6^“9B\o88YMDdFr+XBj0 d3-zƩo8MbvWζA\+JT6c-&ܪ?T}d\ZrRfàСdLm bgDYM]ݖRtW뺋Ȑ4tK%-[]c֪۬9-N"2Tk% "K\Qp(LĜ OP_9Y0( Dcfg%J Zٽ;g:T0 +rvFM1p 0هd8xǴܺDS}'LxV +"uݮttWY fׇ%+ʲR=%y]uYwayQ-r96M9R)N+ 6Okt<""6\5{~M}/Gک4J "'cd0y( Gi6RYFNw~p_#i73nلB G6c,\)rmmF-5%ow/7p-Т׮xYi`>[H~.`:!(SCoæFPQ7c(-iLa{s:C`x&llػcĸjF=b_GB/k>1"E ."D"|P{CUpA +,Y=Mg9ֺ[bn2qs\lnDKq1J +f5)h77[@QgqQ糤-j NRl.Zy.C9 ;rJ2A('ޠFQ+]B%0GXCs94- PS +%]! դIiKC0 -i,-ۖvUe_,by8ʴT0|_g3pڥ@gX2ZjUv@ln򍱥%AQ>jtmϨ u)B V97&lb~r +jYOmblb"lopUtE%KYY# a'#i4\axXSQV(8yP cɑvVy]w]>1crmǦsE`.pAE+[!Lij-Պ t;Kv't&Bj"v`8"kVIӉv h +KUEC!6c +p$'Ր̖ˍ9юѡ)RZ?O:Ƙ4NCNECY\•o -L7 ٸ&ִm\Z{S8nnjE du))RhWܕ*ԋŌI7_L|Rrz<r) luj4:\r7}C*MӇȑ) '&pw 7EhIZ)Jy*UK о#9RWHQ4 wkT +MiuZ00REh.,ܷTmXue{Xi02^Ow~eSbCq>(D5,'f,3eGD`8$wh5:Ɖ6փb^[VGe2QaG#@dCBXtsߍbgGd}IdK L<58$,LO9\߯xܙ~&WQW!,3v/nّ,-~C!o!8+ m?M MYWڲAZUoTn&!]~E5]nQ ]q}'fjOi +> Ӛ,ju޼K96)k" -|jK>UF6:=k1tV4mř o%z/y-x:vQݵXySџm:~ ]Bv}Y^ >lB@jyevzi"18FRo5_=DJڤϪ_t񹋔$tvmB)Z'2j4*A]Wf*=އnBND:gQVdӒwE(HhvAjd~PHnzSjո}dmV/m^NtmOZ~%Is؝]s } [GfIi( +HIـB8BGZ DtԀ8EY 1#T֦YV*}5%nZiHΪU%=98MyUt!A +X7Z1dY 3 Yw~ :d϶e]R!Y&SQm>_F,$x&ZԴ"wjs䴣݂Е/#Jakiu< ̕ ͡V!rvv?L6y-nVπ`bofGO?X}{!e/@|bb4v1C'eewjuCjڀ9k1 ZmȁcBg թ.=_G0:1o_IH)\.ЕBXsS:e ]wlۏQ&zHw-YI,Le' R;^'LR!lrҔPPQA hK#dJJIlLB} 8i'Xevfzen|m.[[K`w/u2,IZ ~5>~&N1DcxQ/KS \. 6tv WΚɌP[LΧZ'(SԧH;S̩}p=5!Q@mx +Fj<~]u{pdMZl*QKe\ [ 2ôJvP[ o] ^F%{ZQHD2sX,r1ҕ]wcdtZ +`\հvZwvQT- ˤw ?f9]fdE'Pf,ķS+RFS@ ygT?i\Rol8yH!xvUl/Rr+68;D,|0yO0t{ ;Z{>~SO-R%-̓xd+u6o7il %6~#%@=@Jx=~Hs/oi5 ΜtYQv 3(1 r9OC֥fgnj_=*ʯ] S[vHҨV;TvP!efEk f|vXͼaP(4@1^uIrIZ|9Y^f+\b8(0%j- +G5'^A)Q$J8(j0C;),F"cdL)gH:iG>+hW@ڲyN k=ɣrW$KK7µ3ST쯒ߐKK${3qdW&6Dq8h]PM\F]']48אEOcѤ_k~3eОY}JnuF8[$5z03TM~*WY7ut$J=WZ7dRŨQ D*ƣt^s+-zFmfIz7A@ MxˉabaѩZK3YhZb̢6Q^JOTzFfPJdvS&{u0,2ֺ% vC*CdM'VpJPZr^`ž#b^PRUچ[K0vi%v=8EeW'*L̶ m 6ވ6X˱lO_U3v^1NtMNFQ{I_>5,tG қ']pcG&fߞr(T&;YV>KsD7v|bT2G\jX:!Ȯ /~r ̲:HVw1Q"/m֡CkM4k˃Ucok<)\a4,|aJ5EٷQMܻkWpC6 lhE7hT#Ș`OxͫfDwEl.u1q/1>yi*=H b71$67'+Bº*V0(V>ޟq +Q_jGճŃi1i_~MѸ9xp7Wyn$٢n> +2n#U~p 3薱S  ONkGKi\5G@Ybg h,]xT<8)Dh{RQYf簅"qne 1)[)N1Nfa/L0>KstG_ҾN )M6IwF1"? _s,8|d[[:b5sCPd%Ԓ6? .7}}#׮ `Z0*ӿZФ%jЧ%,zf~2cd*} GBh K5B&t$du +@LiH\u:-X4334v54Ъ팬7iLzT +!Yf%6TC"tA2{&ĸTPJ(BT|072پϜ"4fk&Gw[,xtd1;!!hHP1f$A`\v~p~J2"+ؖbJ܇/p?%=# 499vE ',rw(/i +ND凞kd0+"rLA>W3TPk+12|U'nq&nmgu U0Uyھ|XRPv3%NEF0&ȡR cm7nHy$D2+=;)ͽ2*1ziԏ'F[ ˲"ܲxrjogMj뭎e~ | HNM2B{&BI'Gde wTZQC*e6_ՖMdup.-A´ɺ!s{a{#&Joc3oKFvcnJHg̍lZfvi+h%}$ +N(3j(v5W N;KeDV|ri5)ty$/ϼ*enİrâ,U[\=r6d[zx7dzT1 ny췟7g~W2E;mw.NaLj[>({}9cpcg"!.3)J*?1xGKhH9QD*&x3 + z]2̺Iz!O IC0tsp&.\YKG}8 +ώ6՝/ŤC\^ͽF$ٺ}&eaFDP,aږ U=6MC |7DQk+[z-)$qjRpt3yCFYI8AE MkRmDqlF +]Ə6l@MucexpBhY6|sjѴCm1, i*DK&PbmXݞ x=t,pT O~LɻZx$Hd"ڞ ҄Wj +טWlR e~S )qK4l:7tQehJ4e*)3PS;ʄYa攑{Ɠnl>D<@z"|E} һAv@ҾPzh':io QjoDI(&$Qm2_R ;d3}'~?($=E')eQUH9:ª9wIuP!xkc2U8@WC7Rd-\R8XA;bbؗ I9YN+8SJ4{LRgB >t?yVPP;m(jd8%j̓I)ܘ5eYc@d(TQR ϡm i+kXřa_)$')ww\?2x>pcu &˞cw^&'$S"M:?J#[/)S}G#$e7رpuu/+OBC&mrls!$s.i{9 +'>k};ͩx^12drApzpLD@YJ"C{h\5ttC/r)S3VpjYmm/Lᢿ*QEVBy NQ|68.8> #\S!CZ(g&6]YoǐQǔ@ܾxzFbJw0/7" .c\ VC1DoyDo9'`zQA(%C$x(X䔮 'A,/ֆٯf(Ϟ 'r>ި_t?1ܼ!{[Wҁэ%څ5ʀ 9&nZ{A@ "FKCpd%,{Ccwׯ"7f;0} Mb/ʁ"DIbs Po9X܃ us4H߻Q?Lx.!ILH>h&#$%5?<1 /vXe):QemfKՁ\|d%Uim|(ydǨl՞kA3 +I}7b.dd=},Fíkd7x]<5ƅ у6dPzbiuVW +Ʋ}$x*!wu9LqS6[<`C|3ѵM⤶6)3 hʀEX<΀υ%Ə"1O @V襱<Ԗ:O֢G@ƅ9v&"Px5S]6`4x|b=ha'.qII~D4SgkdByQ[CμH,Hn2yN90j`Y@C!RR_|L.vb2WÖBj \D <,:#92 PC7~?ˣih09q ^&*6xŤ7Y(6ƁNf'i*CzdC| 7AėF7$H'At3Vc\{ԕxRrf{iėYЗ?2 (>{ـFEj}_Jz!#%it'MU 9`] + +̨8zTw2x556<5/'M|]n$cU"o"yyPmJh@6V1s,mY Ӫ-ejY$iWI(&+  H?B/뒎@ BaDs(LAɬ +_uGT^ \c5L>lvʁ]sB@XE.ȰB1X `W_C+iPQ򡍅o^})v{#Kכ'Z/mM` +%SR`)Qnb}sy~DOGILՂim}i#6wL{]xmJjs ˋ3xP +':D㼸q\FG8I$ioI n_m]L\0'HuP}UO* H\dtz6J =tF뼜{8Λň`'L4z`J0?"rقM$FncC:B ۤ" q4ez|sh.[UQoNs(nw]?%V+HL{Zd?KU:$N?,NmOKxWy"?ԇ0"M_W~cF<YF4 a2G}˥q<]hE$I_ʹNsp:]VgE0_dώxGH#gB m&$H=%_YΊ61P7Ob0Z "ӦgLծr9ESAdaû5GO. YsH9D2f>MߴNfKk=vI Mhcl#ά5^33i&F~S2hdN2f~G%gGMF[2ͽ)?XSbԄƎ[I)RC 5 Fqg76-LNHqY$I!.6,wT˰?v,l-iN&u5KMء-2`uͅÉF٩,[S*$C;b0Ě3/F|+J 6mxft״ !Ȓ͝<ǠD Bkɂ "͂-L"΂XኚG`tт vԖр `mൃvj-l;kГA fB0t6Re5 ߐc5rV 'F*q0{ذSCԀm{9dW0K04^eO'`clEzϣض` Q/>Qd}jxh_G۰}pX=X߼}XzF`f0}&6Aɝ$ORk99 +i0i@:?*6P&ZO( [y sN~߀v#"#@V^ Q GU0e߾d9){5 ]ӹe,_ԡ1hqjZR$Ι4B`^μض]A+ue?!drK̈́}_7}R +fC9[$g`h A۴y]4ZF)NXz闐*[F\  v0"Zk[yno.&\OU@ݓ RpmhK3DO[Mgm*>4E>/D*4}OLȕFD,aHH+tA--AӒ]"t:ɅF oD| x: B;m5G;N|jw8<_;v}ngW~npB]MVWz:ju.Kz8~8{ ^!2Yґ}qB.p+Scy' }vD*O=yQ/ ˭W;|nKYNtT';3 x'{ s×]#y`J|;-oVڡKhg_B /|JO5KhbCj:_-LB_؈]&$' +B1eo X;.Mre ]HpW]mܞ2esp9Qf>B "}pG.ijeМ9ɶqFVT"6Z>ŀ-4Z$Q7d]Iᒟ-Gin_p0S0MgQS Yle(c0/2+o()!R xme#lS)`!Al0T)`) 1iY@tfPfp.tIKLh( Lѕ Y'h*W  x8X53`!:.f칭d2o)fr𱰞 5c Ǜgb8_mjUp;vY蔎U go +O8D2D=Ս]ݡZ=t=ۇ*ڟh|i)W/<Ͷ7mxV=B Kp~cL:+ 'J~q_˿ _ r3u3OlܣLثWG4tk-Oݙ)1Oҟ3ob{ڔqk[%NVLr+և-w[Z3=Э%Pu;W!k8{Cdcvn+یAq;GAL&Į Vĭcv%šj)šxc&O,'f=q~ trv3gJh7#%?DkHjo.eGJ҄vlA ?26l/-}?y=[g R¡NctYGE~tr$eG%NrTmGxˌ.ZqaKi,?KC^,2 vimh>Y.CVW֭/K?ƸD6qr=e-U*؍0:78|XAA<{>k~2\ 6 +X-S.P֋GN./_#v-&X"/W8[ǑǬ/V|*ZYҤj)S)Z/ NӠ L!w-^ue}.2HɝWmGfh0,AaS4^ LR$ ^3X !N =c @-"q[4mAecRTb9Qċ]`Ý\kDx4pܸNSEA<aT0K=yoap L~)H&-cs_LI%_Ωs7oscK@A{g~;`!Su@z"3(zO'DT]^)6(bP0A>^CPXj +5IMyTJB c9sS yJ^зe(v"M\5O"=y +h=1*A}`^rR^@ /=)'dܶI!p Oc To!..}wCwDR<-]X4Ӑ؆~*:(+7D*F_Q +Ӌ$qܲ*h>s1)P6yǖPJۣ М' +,080ޕ.vxHV؂ Ǩ2h! 7HI80/3y "_ʼ% Y,biV~RL`5V%/l!kUsGZys- /ml履-7rH4AC-Toڴzb :E1Ԉt]bd+Ŭ( +(q{?~<9XO &)@9_̼@?//UvG;{tafX`A)Qr+ҦkMX>DGٱ)M@!B/k[HYt^wWy ןIR*+7ÙagǴtܿ 䍥f AuFQx-rQ~_pd<(*hhZqB:[zP쯾{"j[XDFh!%4h(*1VZbE#",CE8Jԯ#KA|Ҩ2)p.[.zfd4-A|ZԆW<0{lFL*.L|(řn`ƑnKWpڔa]Cn<)RBF vv+š)- :˭w'}󰚎xqqpu-cyiIJcR"ZJىrDz"=]WF6`ZNc7-(Xm*$\<[܎aWtbPdte3s8cr =x{Ȯ.DD0jn-"Sr܆PKJJ&I>~xc3vS Z1Au ~hm9Y*8Y ApP<<Ɵ8$ii \zV8.1g=bn]fZٴlAcdCq#N8 +dsJfmݜZ)h{xJiqXUݘC{& -j譜%sE)9"F^@5'-1PDI +.]p.|W2k:xN@ @fk*RLG[k SPj@a0PKa*e=Lm7*>Sܟ'C^T[cauPUhU j@KP\U5-TZi}6W1>dPYs1ϴCM%yjv.3NM  Eytؐ)Y:!۾HZR-,-KeWD&9GT+Gu ?-LEݜ-C-*h9 W@C=5gFYs(`H^#mwN!lJc/lёhcB½9 [6u .s}2%yQPԓ̚^^ۤ$?m8J?Q'KHmPf:'m}aH>_7dv,|e0*F|l/Y<9bQ6Yj]a tӿx(XNǚ| =}ѓ} f~=Co=kP{x ++Z*/ +3 H|;5hQ4䍥*Os[^(=U&۞"f_9+8l 2oԇ̢*@[P_E|*BڸFn˼6&I1Ax3#dW(L7L@IH\ޠP d]7ǻP"ހCKX8V6OI}ji=`yq)4tuRLCdɺTN=1 -^=d M1=%egP!F@l16cR78C#`{ބ%g6 7c1A2oe}GSԅ8Yz@)0) OkLۨ)zo 8%wٓW]}\;uuT>'Bh=8=6cQ>/GXb&0n='7 0Oبbhd7FտܱWo_CJCvq%m VtMm%KP7ZZ(K] >!RσpJhmq|߉agLs& }ngv:BAAm1DLDP1"3bm̅I< Gܧ$ M0o: )+=OzknaU; /Pw14g||3ݮ A#b=UAQYS1$4q"6OAi4o$;>Lflt8xxѡaӣ,a3&Ű78Dm+"u $4I~px.S+p[2gY<&AiSY_{|cAD֌hIc7GFԹkcr]m'^7/%ZԜ.ƌB$vMX@r{ڠk;LHaOb@N)0[*r% +' r*v\0"UQ֓Z8ϥptPLNpEi+Mysfv+yӽ(ښGD-8yM]~/Hc5ԈW{!6ȋG\cQQvc39q8/L;__1Co J%J_Am^_[míP|QnTIOj^_[YrZ⼻+X­9oeYDwL_'l}3[UWACtQUj}d]joʥ4L;W'|˂Fz :Ԓ)D+f /s/@1 wC;;jAh^sf٢٥reW QWLū.Dnj˝xmVrTİٕC&cLĨܰMݠ1l| E[wvӎ^׻XisP֓J!縶Ϩb^-s"&/`Tm +1K#vefzc3w7yO½0K7>'Uvj-_{0x{C M!XvcV+5&aqyGS|'KJ +BU\[.]QjsIeBO,}p*uNp6[8*M|`K Vmu떒ͪ|7L!/lu6Ss;wGV(n;ڲt& %Nd9Csb$(*Qb0}CM #h1aQ G(fQ8$な%^C ^xRG3z{ô5njςۋTMnq{\;*po7ܞtsF` niX7),tX!:RތA*UWPzc5v%a,Q% (./_|K?ܟ[S2١ V9WLx+ݾO<ّKҜi Sɗ{RیA@EI}H&XFzXV %~t&0ԒA͋e}xh +|҅{q0-铽*/촺Xl&M:pZ"KHQH&OfdkBIM+ZDULCrx<ΉG{MzL7;43Uj96p>ct*,ʘr^ζLtcS310#BBJdxh!Ixx-7GF1+TZ\c\R\YM=`kN5[T1uvOì2ʺ$fM]o+ѦuN|W<_{#?إ޼ݎ钞ܡcM1x zFڡ$jdC>@,43DaRrTXuz.Qte屉zfQڠ. U1HKPd e2QId3i*CC8APjbcD jia`}=]=#l|0MfY8ctq9CWΖIf( "aD*lE]us@LFm⭖XaڝUm3v-r$/FA:oMaZIl}j-0R:[87rÌ76J|PXp2:-&JMꚀN'7!FGGj@jWmQJ E"2"KZ4dKPawxg=RWheI8' ؖ)"|E ->nl)\AC؋qSh@ T4 A0|rAp)A(9LLj> E@iI]dJLcksAkvPnR|7&ǁM$ʑVGÎĜB8Bb=JCjB1J9g0v=پ{T_^R-kU2UHL +-oی$]x|<R~Bg qUK6 c YCLuSBह1_jgI6[]BQԜfmJNʮ6m;aE1>j42)@eZMOX@s`B *Ki\:u2MRϠK;WI"8 ڳ1I&9f{3ӈ,e'd{h׌).j#^H}CELc&ŧs#M;utrEI-M?Î,'d3qB Ɂ H0Es^L6;"G}+po>'$>H!)h M#ƍG,p$`'5FЮ)3`j)3E1=8pv\\Q ) ;F~ʀhm-A1|>JMv<"z\"yI{U`vILC+p| +.C.kkTG?CN%i&!Й}[avEG $oWiϳ/DKRKؑV7qGnJ؇G_CHN55*#8H2ʈqT*gۄC$K#4i{*^W@3ΗX~]8h/[ˇX&2HhPN.:@*˕69 |sQ\O20:UUR K 8ɉ-`f,9鲐;_cåw? }_ɏ>"bl^ٕ.[ f#`lįH^W3a(k]ثo9SL\z5XAK>'oȔ%R{n ”)Δž$eK*F0JEǸj< h9[C,j 6=cp]'t, 7=xi[~! )sS]q Se-e$cm%z8qݒrǬZg>Wf`dvմ_3vgIedE_LC& +) I! ҘRʥi*,(g}Plj&s&̠v׷6PƘD1?cAH"(G#BADBC0KaM3ۢ[J4s\Kv6o⃻+0ÞlRJ2ΦWQ砦iYeɗ;Ԭ9:tG=&qdɛrNbur-꼸T? HQ9wx;2ysEM.f +k.w(i l40] 6wT|+=dY*ޙCɎ<)2A򌴄ġ-!c ^i}3G?<  !0~)`RSNʔ"?6iu7u 7`%NGI\;/jlwY**6ez~9Lg_D,=C+ZôESbWL%Ҽѷi3$6>[)cq gs1Xol +uEH(yv +1@ث0Mg[[൳G/1HڅE۶m۶mv۶m۶m۶;׾g߳?"**9FfHE nB6anϳDGѥ=ψd慐((!,'&F+;A}# }O*rƧ{d?(KtV( #AbGķ1g_"}&Z?l'=-{39wr~"h_߃9jZ8b>S7Wk 6W_CkM)Ih|'$D;-M\W$%މA IKNQQcv!H/ol|tSGQIJ&(Vv'\&jDf%iki9"z#ID(:DPR˧b& %7WV)٫sbiH;QҏMTzAJ$Q)ޙ1rIudWMYw&6]qvĩ2ǝ; 70}#0V +)40/98O4Î\\g5rss2QR8.նdeF3-} Ai"\5Ztѷ[L dY +ʹoMH\]pcG\Qnf]$>{ mT#û .ALZ3l%a5RqG!Z_qصc>cguWe[.>R-ڮo9{W#.D)J_d4(R @ANy֮Ȗ*D}-<)ag޶ڀ;ȵ0+j?a@\Ym:VCu+#/UٗrsNu&d*=C^pL1yrv-2lF&]KR{߈E'~ùdFvS~Wpkp-W" 3z22.1Xk%?{bEaUc̎U?^4#<](:X]Wl:iնt>9Ւ^r ?J@ywKk;,KQi~f'-E8%NA~b&MV1$-UyzKj]^ô<KUojp(xs +.md:qNDڻau^ڊz.1na<m i +PKGb >ܕXiV qgNIՖYYaD:цX -;^<ȳY!|.soKdg*Nz0#X2vqDOR.\VtU}XBFfgKƭ7lC_hi.|=ǩJ2!~۶~օxDE^n`NsM&P4+4+9vrڼ>Il/t@Pm9SN6`kr tܳ?d^ZlMOL*ud m#+i`(.6Z@[J儝 |J*e~,_R +սwK Q`z}7el#=0^,(i FH\pnK@&B h.y{HQ1SC†=ZXHabE +ߖy{E:G7y  Oƫtmۙ`JWe7ĎISeF\new1qF5PjpV>QGN3@`61aFmo ?_D熡IDX'7 xPmΐc(hHd.c!K<0o=ZW󗣗Hڳ0Iu8xlH[Sh!jdf^۠?(v +o?1y{`ҢRF}a*,[Y@5t +th`WDT[UP ’a*hTuJk?gd;'q&,YAƞq!L767J pF\gWk/;mVFD͇KL3CKZթ&$.:ҘM1Rj r-z݃mYt }LzctM1R#ޙJE~GSg:(> jwx_B9jA 8 ҙ (B%' +4JAL~E-nlmxs&w +:q.o)MK)! \zQ E #U%ʗ+&N+cLݔawDvPTx=ٽ/H0ykrAG]%jɇ_3ό"B 9K!La2`pF+"FtUpsL z5bYPlfQH[hn0c^BߗcBϵ +`/x +RB>k jN{i/.ReKZ|O+'ڢF^1b: qK kwô;#@Ao92fzADLÜ %8lN7M1b?gZ\!4+ W`/E/Me 8Bvi^:ΓeFu1 լJ a&UT oldO3v3Ԝq4TW %)TK%oaݸ +pEv3M+b>9m9?RtToyvD2'Y-L;]l" v& +_ c6}5DW6_6qEƵ)' iO?t=t)ɜtRɒ)_^FQeF#ƀ#AoJI:!k]+a+Xq8)j@T* 41G<w* ps qYi]"XB&>Yjn"LUd5#+Es@Mgً-\{25z#%$7݋ǒꃧ.D0 ?J*x7Y 4zKw:u+n0FqÊϬ*I+miJlCВ'~~J y!Tu=-6Ri 1fD9{a^\ \0G.qnLeQ*(.k.ʁ¢C><$jP'(n{A|]{ ]q̨{!5܏XϾ˜O.{b򥙴2JSq)YUm {r_j)tHIiHR&S<ƭ}@m7Sҵz/S6uA_]`SQ.V;ĊQT~KnzR?[Z86q =mmqxYg}PuOm7@ֹ04]/4U "+Sյ +(6w,&gIt:{Ԇ2ͬ>xenH1&IܼY[$|vl,Di;;Vi4saL4 )]ts *nP@K zGO\j6qCXR|4W>IZ=;) wVK +R kjI?!Cx`!hn֖)Qv+Њ.oEԴR@ 54gWIL%*ҙ5Su/|CP +`B&amd}Қus-~CTFX+f~P/Q{flƵ!wF5e;*toOX▄|>WYXoM!@v^au"I+=Br!aǔ8~tSwvwUJ1:l*Oˆ))!@Ą˞W I].AO\>~Y d\}仏9z G-HKyLk >#%/ՠqv&[f|7 tqdLPQ) dLk"S۶MV_pu|ЛM xųMVT+~ YZ,aH>F͞%` (듕8h9F"C aAB$D*fH+Ɔyرf;Ah~b3me=ITVn5 +jkd ͙ }i{(I8-J=.ˆ)) %=M!^];4UϜhmXJ޸']tbus0WI#]Rtvz.n2 qnpnb'1¶j03;ӿ:B?|?]P X.4^:aX7Rs^Mpǵ%؈DSgnFHa{%&^dpc}lQf<4,,46 g9Ƙ7|.\;vݶ~vZr69RU 2Ðzse܅hbD0[W8d0cЙūb +3ݱQhWWLt!I9 V|c>hrN3/c%LOդ*jw'Me`NWeݰfӐAGy}5]66CkP*6^gilޕ~lv(cN!umFLj.??Taa },>Eby}@,@ճHwwzu6gtT` >@: 2dQ"x)(F74$:bcסsxXsTJLLnf0HD#qn&{W> vI8%[\GMr& kWddtf?*4[m&HJABtJȟRL/oa/K/8R.zO$`h>6P -췴9v$KECJCjwa5ZȦL>:Aяtq^\Q'3Q>vo]=Wgo|T/~{7#T{."WAߒSwa+;hޡK*CخUM TdWZrz=CurhaG;q.Y-lza% YEzȔyإZ=ӗڗ%I[ߵSK#Fg5Hc4~'(V&mip )cZ 9He#'#%/jzɀ3-6 Sٗ,,-KGL*MիA74JAvpMjibF)km͆ϊhDQU+eIMZvY87Zo1@tq}<ƪMrjzLneJ 7]DZih1QL6ʂqƇ F7ua_qXVlMUeYN Y L"oIM6%{5*|Q-%!;~ 9ar)*Q) +F"샲h ҶK!Fm.Y|(feJ7rP60D;i,|ĭahh7<#f4`pH(AVWc#B Ki7 Xoud/_oQؓ:+uwŝ\Zo嘫-ZEsY(Py1e,4U@\L{6tٓhV M6_Prr. o0Q9piOHrDW/?r +S:wF%.@{3sey"[g|RbN#tI^.[xt*{f +Dm\ Zqœ8$p9\Tq,I9,G}?Dtj > hsg B?ʁ;D4ɻ>+ 'ɮR64j(iwW6cH&\ +_h`or>x/e ΛP N'2mAjcOI/U/m wtUݽhhU>Jk|ELǠX({/mf {b _]&[+FKgiIZ7Hn3rb,Q,"xpøj?(ş3xN&WXb1ge^WN{||˹b%|z+C+㇍)}Bt(ݹxwy@m&,.- PSIHN#.dr)0=M A z1<+ol'o'oxsv6q2ulUi`RtV铊T!(WFƊB2 +q iAYzKj 诓r:yl~#ņdߤП'FOz,`gJU>0VaN3bJ&YG?f2(k 8N09GJNeBT )[09$(unWkfA *GqKEz k̷d);NCbtXD^ШGM=%*Ν\-BI/93]ү7<Ǫw#,NȄrgQM6j%lxW${\D'0]s+…_\ WϕK4ӿw N\ή`@70D~h +,{eфVܻ.ԫJ\N]xOo'zX #![yRa&{f* +<ENR{{5_\@L ,_j]keai> g೰P +Qc+}"]KbnKFq4Z_(cm_dG|>VG7RUƚs ][uWaX̱dٗoP6/V`*Ѳ ACod &3~ڏ%Ӷ@Ri'LRK7PW;d9iI8u.a]#Y+5[[5M\Xي/#dݸrbfZu+!d/JYFXq'u&+3P=9D!ȘSQK08}hVKбL"\C!7|=E'u fCD(,O)ƩS +E?1Z_<;دLY5ق1%hK̏eAJ֜DLYFg)uCmcl k0_g^>f؜Lcđ,f(]5v_/J6d ntȜJ;kG9|seWf&V_IEoջ$j+˼y&n+9?V5w{G.ZmbEnlm^'更Ҹ~mkBTUmN%mjYϟCgh~ x:z>H6'ꅢ$Ye,T-!$t*ÅKQ@є)J8 %LTL}@'o`:DM4`+b!tÖ:#i—iأa^d)F +~"kI1⃏;1l:Fc\<2 7^ uך[ y&=[D("Ǿw1%ƀ +2SPv'0̧Ƅj %%S1H]<=a +k"FSeQh5/8Ad);'79o5AeKo=Jqq.LO|͘@v?^+ՏGpQ&g7\IT6wzK[85GY;xE"HKr#\ҋx(r~)w虜W %[FQZhRT""AQ` #:sSzYRa)f`}ʏ07Fee;ͺDjKr1lI&a2IWgw;̄.$uiUoSS]?dr_YnoIf2cnX:8ZEJMk5ٷhR B)dSݷnIutUqWAPĄo&B6;׽*d m& |riOtb,bCeҤ%6liU.HZ%Q(F.u +n6b)Qr.ibt@g&1H72R1tI{\4ZSV s~ /^W7!lRd292ٜ(L1$ʎ:C\Nz+i7Skj$?Z—90(`*9*ۚrH4'`(%G?8\ +{ʄP},ʞG ߓ +.)C-hz?#F.f+ӛ7>Qދyx%&¢gjdeJ~T9TD?tDQj#ʬTt]THS/GJ< [pdGT(@⋏T-mE5$bykپ"2龍 2^j$1b=j|h%_ƕzh1 OoƵ5O@iVDé ZSFt~!{fϪ4ʹJRVRU9S+9P\&M3wqAw +y%Pp@ x|.?f̲j5gm9BA +0&QR?J¤svƈ ;dZoaT*G9&"dd֎lFw +rLcA9m!]. +! hC4oM 7rivfرbey-v',C +>2U)N\xU +"[mM* |r"GbYD]e&NWshsQmnkR;ZkM.$LI$M:.!?"cbg oSTno-;#_IVIYGL|asFV-gC54*-Ittꃘj{tp7;ɽE0K JWʂGNןT4G0-CO-HN1T`I{{{ t3)!L76&B@{ɗ.ݘ٣rϮEgآfozClG~{ZW^"H&4#O )&qF2эV%(DQ<}8 |p =P =#87@1 `0؃>sgFw*7۷|'6'g{C9@j%/xD?, b_K3F-}y}.3GT":*Up3$/C耧"<*lʍ{BLx +7| 1*zq U)>ڷuxq |Q:H밐qh +{.9TmZ$zp|#rupuxܑ/UlsW)Pe tvH4Cۜ0އ0%"SE*m%`EGٝr[h4ΊxifAxG^7pϼGec\gcFZfT1XSTqĜ4V=$8h2$k;ҊD% LE4R[Ki2qM&QÄѸ8kLsd& y+ti[pBdq=51w?+aCNjT=IO$L^%L]RlS9 +ߴ:]TZށi8[V]VM7.!-&".j"YLL&`tTpazb|BLPbAkі{[=X#~=@$j+(}KXqe~y8˭H3}>eCƾGI;\0y%4{WhvmSayY +[k=M&sRf}?GZu)8-wQL6HK>m2B#-iSJ_5ڌYa3cS^z0߬g }ZH %:E`7VD }jla~M(l+3>@!q'>Cꄏ70\⍱dz#BK> 3(f}Jʖ >0 ck kLm4?TMBJmЩ yIEhs{`LkA I\%nڼl`c$1Lۥl63O3– +k/K g(z]W`%Fݯ`PB;.x5<9Z8sC.m}΅g%+q|W 8Pu)Eٞ>ӮIv`ts`@b&1UD75&ZR; LɭlҊWd~5Uמl1FM_uwAuWkrZ2X+~6hVD{BZR^YxnM(.@[u^L]hJ+>߽'y ``$$$!"p5kޗ`'W5$whN>ub<' 3(bg?Rr +˼2>ja暱VJ^ ⴚfV`;$m좟7=)%j$|b.rd8F!_PY3۞Z8oVTRp94*\uowz˪\/*= 4h`ҟq6dha#70Ǩk\gd68 )4ȲhdQ/ + ,ALҘ>StF иMI0kN"}&=$:ƔϭmW2T,)쪍{ r&[USuEc"K){cyV˷䕡dk +o KpQ';,w1h#[g s>7[U-`\;̶\&{Z˞.} -mUUɭ:\h041lw]F{H;_צ:>/Ǵ Xue [V ݣX6(x;vPe3ɮ+bm!VK654hdVOJ0ۛXwi[nuʯ\aUMܩq(#P3 2tжe('9a_kԯad,nSaA} !.#pS&p,m]ʜ$7Vtk3Fҏg)Q51wTbY\YV4^F۰u/-cՌZ5kG~Һnqhs.ڶNSg|t}F#U/BOvCq?Pq6 Jé2޲qשʋD ?4"Na,@b Rp ~SaeV^Z[֒%ķjXONotwi*ߵLԢ7ä߀\˘h˞ۚ]QZd\*{^;&KrJ,'gHhM%3!>+38Aű-6PuIԂC2=Ϸ麰hfxcQuz+->lݐr}gڡ_`!ߜNX*(`k&$*W$VZ-q 0 Mk &1|o'Rτ˘Y=E3|oNE03[^|~Y_,%((CqjTqc5ЎB2wMvmi̴3 o )[eh0tg$f] 3JcBZl0Yj͞ G`͖4R -&j-QdΣ{t[`XSTF"1*7wX㿬|Hdn3EZaKٍ"Jbz-Ն%P$Օ9QhD*"bJb;Atf;">ԇCBvj>)xEs>1S?lN2+Z;^pMC.ky 1.LW5gI!X=pF%@ysNP)4V] +u[-<Ŧ?~ 6jVڬ<*kj -&rȡ=Bwh8ߩHݪ5v0C(]&9ѦDY+,](C76tN&4M<,zgMYwx >] +JQ,e.d[B_⦌.1!?\E +w<>sOt$mPdɳ[,zAgtyߘaxFzn:_@ ȊšMTѬ0R0>R}syh]&prpJaO(l Y/Or!&囖eTM8cQ[DtL&A$:CXl Avq1i|zo ?<u ֺ?1K-2J ᒝ +;)=Պx,umh+}ևO l!;{ZySYWm:1nLFпoBD QPÞDʄ7:zqST{ִԓMzno-0#7"Hc#)H+PsE-Bȱ,ͻjCUEVÔHeZ*BZUVIrIirJz8 9 RTez1i{|iHSv򻉆"k#yC}ܡM&Uv0.>,ە#TI!tΖV18ׄ_Pcby6׉fs /W2gJo"mS4՝RoJmrts^jc*3NKz3b[.چP : IyJ%Hf+6fGO dl̮X7=F#hy&PZ.(,цqPϪ7" q!r +=EwaK&C-U= n'U%\iJ 5 &mF$GFn}{(jsda,-(΂,s]uԲلL5n<^9ѤhnaiQ?`JFA*˧x9m¶Ar?+Q(@BuonM?*0/ҐQ R}EAߣEaNtB72,Z K~y_Ulu3JA8a/k.UxI|6#ٝxM!޸0+Q`!)u [*agS +BB"/LϿHH[ ?Ro`iꁨw~ `hT-!m;qͲZ9*U' +7nuy3&D1 + +/O 54TcQYL$W@B :'j"SXآ qw-6 I3hӽCDwu=jǠ#рѣc/+ <*"EAHua9\&E61y> D1 Z/_0#aSKH)l6͍E9Ol6b5⊥=ʓ$-TsChND!4.ǺYhP&3V H^kcL/2d}ED,"C ^R)7qt )׃AUhQ ƨ Q5 oߴ)Aij;9V)Z'=V\r_$ ZhAF<}"^*9Bxں4cIRAm>L._-U5kvChK'S[W쉢^~ M<"y"=E iۢ!HR#u =Z80@զVma#+ ]X͞.Q`Ai1fSBZUo}]$U=]I^Q.V,5]-g|Q^|5tɞ[Ol]uMDK]sv< M4=kq۬Q ]f!z +}ni$&&)GȦQ2JPkHhQK95TR.qb*܌*;\PYJFKP!JYiw),+p 3BhJ< 34tM^MuǑ]"XZIȩ)x,ET:X]!JТ-jvUsgcS2{2*(On/AX!Ͱ_: z|:ܑ##9 D OifHԫ.݋aFiyb ׂUiQZ:74R|C\Vv&V.R4zzݍotT3jIJhgڛl602gk׭,y<8l4C$F'ŶT^aژebfcjlQt)kKuRvjTƟ)5$ɴ'.pI\ b-!IEQdɆ\#y>$Ň9c6]Š.kScPR4RGPe(b:/74St፰MqDߢ-K{rCa>n Qo]{{OUQ'Q'pwaxO1G7}r*߈T/~{诅`rwڊfwxOƒVwa "Q+*~'> #nlk'KmedCڗL؅B7柃Mrwp?{x3~,XCH31ѧ=BxNM 4Q7̋ U%; n67~>/Sam>;݁ #VV.J%X>ɉQ?ld)!ꪬѩDafӠYp}F6#?vx3X}}.)51Q`|hlҖ,HƗ8yX`񎉩ؘ'weR EÐǻky3Z%1-sSoԧde1$`%tQC[Z24<̢HZ!Sm YGxdKºRţ%GgAB6%22!5#PksY藧G$?3'[ʋa{*h!1W3&7T cnJG~(Em+m س{u{V]jdjtPlu&3QU+A ٦wzd/ Ee¡{ É9  +)殘9~{r|" 0 8ͮFoF﹯;̴+oxTQpE(P}c@QPτ=#钚|(ګ cwmv {C+-C|Ӕƺ> +ޠlllgoS#S΅(?}Ƥ"^tuhC ?ZлcjV,%e|?y { Q+ 6cz L+}_Z, DdGzL־Aw˕f QL`%O g$G8uG=FlRj ŪOLcqttǫCLŢzhbGִ't[8$}yGD72;L>펍g뎞=O $= /l@Fl6ºFe9O5O8@= MJZ)ܦ{E`;8}@Er]y>| ; ''8V-ԩ8u@s3zOUNJtj.:9TWW̑LX2D @W4lsD?F8b=DQ,=toDJ#PSw؉3sQtL qp"-T 3 a#2c +#z K(5Yw#*40mb;|׈\mv-'֪V&[nkrc!͞<~q!0!M./ i~MCDaz8]kD`[itRVdN$薎ګEHEtg& bKz +OR`b:Cn~D`NZ+_ڀ9S4m7E$[oa 4M|b3|P+ R*X>Ab~iAd";;uMAlwVBR:KJr:Z͑V +o Ml/ۋg"^oމB'VMn7m]d(RĻ>j:A~8~yZ2Kâ#8#X )2F6s;CI~]ƒ djdP8|JS ='qOқ_hK(9UoU0~dYK +(P7l$55H6]o=1?׃9qD RqJs؅uYQ-UJ 4 ." 9"Bpf::>d**JkbX#wEpѕĒifB1w +񳆪}[O.i<5-],TɚP&16 TpP10o,~16H)AT~Hd ]{"&j$]!DžVmD{vvAnw5Aw=IðsQн8nFa6"֒$wb$EWL)-~ۑsNCmg`6UyBa.o*HGIw7hk겚%xM2G-T"PN gIk|^Qbe]MJ|x9]{aZ@n1:ѹOu/_ `YJ>: Nusz_1T~8&13l@^].Su<< 3U ɣ3jۓ* tx-+8[U#n<+ ڵ̤s׈ȹ +-_K,S DɊKd }˶' x+ud2 hm0w0e;5][āwEYXoFb~6:/Cq\˦&`ԿB~8 9UQA,隬A5y9~8)$ ++']66$< WRY;ѩu^:_f|o[vZT+^`n|Ff^*%t;h¢s5{ܾ݁8~gv +x }a3|]zh;0 /˪6Bn=xR/)5wwT0 ;GA,""%e}=wwjm&kĠЯ{6# en5-l:)+Gދ/.~ce||@_Gù K V ;x-#0!j-k8 i +xjA7I"?(!Z@;T=DR3ȕƸ>u_aImjsDW 5~w0 xt U.}_\#r`cXلY_+\ݐUP~J$Ǎ$@[h\%TD7dePѷFqQqȏC\y*7Yj񶜚4Y]t n SE~WJNL>By9CbJo +IPͰlh9Ҡ4"y0!!f1QϯqNCpI >w9)])7Ɇ:~xW^xRdd:qN!)~\ >Eā7h4gs-5}YooGt&=r8Y{-ƋbP8Y H>ak.x&m7 >a +Y,m &n99D:!ݺ+WL)٘AG: +Ync. JHMD$LwTI'$;03JNj % +3(IRW*iɪ>֖Nj^gGPg'gHw bSN9tvupqqohQoɝ"S-#އݧh*qNg {鄷VpFFރΜ!Qs#HE1[a9m-ofOt,"Z7uo3`]BdmX6Z\ָ/J,&wg3 3cՌr})MYk/6qCX]e iS +o_9s{ά0ML%3ute&;_c7C#BM=MFiAL%f=L>3?F%mt.>&XX4MG:*^_y@sӦl?8H&_mGIݬd )a.FE9AkĻ6ɩzA.H:$=&Vh#R}PlA:ivr Am§GwpW`_ޠz9 _L+A%+8§#N2w"e}Pkڹ?m+bHrwO+x3'iC`r;AbUIʯ#Mu&9&,F6c^˰%Ցq|,|7ZMj[ƍôUeֲ٠okoCOCŦ{+ +!ꔡIj팡JkXrnEcp t޶noݳ]+X[6f%ѴFd1Wow5K3 +ρצw~!CE.GS[=̨xo8;dNƃr7Yk Z`Or< I ^VL #l>V/uSq 74.W Lɔk p/O p?w䩟TRxb)%G1շJfѶs#&> (V"QUHZ8UPE"1 "$^33nv@?X;+Q DR H۫ȂUZO^.O/5jܷt_ 5T=ys(0D`:`Pp}@8sC&iHK8A'uE9 Xܥ(/Il)򂎠u%n{J%TI5wʿM[pt_uc;Em(o.G+F?*Nv6\5m:͉4L33cbFϿ!~`KeIjt^f=Vc~vpdjF- ++dyNŒ_35÷7hfJB&ֆ-k)Lxaq7f!CK'][@PVVAn0hS&9/u-FPl!"gj -bFgjh]cyi؊QNQ* +QqdiC" CTDmDc*֣M;w1i:o^S]Y)6 Ba3N!> +㎦a J6P,܍Iɑ3♞޲UF0΋l"b'OڽCY9-r-klYLV'ml|'قn+nl 1}} #F4Q$xsOL|/;k}BӣS'^# +\r e@\Ssp+6~(=Mz 5qd8ZR _d\0o!VxgOrfW01> LmŜLZ<瞓>]ĴD&WOUe\*(hm:Yv97q^liL7?/ȵra(p R<#WOmc}@@SSZarȍ;7T(t|j)*;¹}(ԅ#D T:,8OIjפ" %ԄykjRJ3L<-|G\ݚ +n_\VS_b8=\ F + 't|4*>>a d}neuX~ReJG+2!$ +VmO)-#1Zr93+C6"G!zK {e$N ZB::'VW +†}R+QfW ď]vUKd̥vTAnCsKTW +9,&0&ϩ%7|oh]XBF\d3J+wÃĮZ9^`qQy؋GTEPT$jIUYbBLtܔ +U)vb?_^(E3/B YPqq{yuytVl.Q{x={úqΠhP}N0bX ^G})gr/qZ`k߭g1;h,-X`qnw 9DѴe;D|!2Ä!>,RZg!=91_9?Nv P7MP~m2SRH(҈$YJ\m[`GAuϞO0c:;I7 h^5vLt +6: VbP HL)0c/g4(3Ie:T~e/ +%h`$H}bzn0U4Jj-S {%dLJ+Ur)[U*GHUT6P)cJ^D/&h#U 2[$"!JM+"JwP-hiGF|!*?`zɔB\ 0 fmDofzeQiGnG鞯aTOv4/cw`ȗ[a\_|`yL㨪zY +X\_ۉoV!]g`\VHhB +9H)u GVXԜbzLn +c*LqyM[u}b OS?#^U^AdBI _ٝ1[8vϠlT8H<h Ʋpfƥ~sS2ʘlK'%8[T>3|$~ *^BOomxsd!vpsU""COU.\>*QcKVշE];x6 ȄB*2%cQ}xĦ#Yn% khR 8* :? +.0P'^ }lmku{u7}#-vXdfM{ cJ3z֚xt-o$(b1󊿬r'FAl%)⊆N}@k (PvS0I13}17f@^ryTzMow+x +Z+O "?/ne.:#zz'v}(\#l%{NFnVf #iw8/޺KK) BE?((*Gp%bT:4*h~)eHe rDke~o33RHŽ2'x\m5@']{0@whUͲx1'ϪEr\ 5}8r%'Xݓ.7{),9CC0?E9ђk.*,HdQEG"InF6zB7H/U a(!}$ '6l`ƀ#Q{ $8SbkV(A`J0%A)0EaEG)GbiمbJCxuo. uƊƣJ!uRKXʦ,=͠IVR^,HU ?VQ&'^K=gɘ$smG7\q*[;baR\&LG@cv֌diga9Kl$pl' 8Klo,`+#+؈v1ݙ7颴;PfwXz#62gavyr.?K5φ) +tY +]Ktb9<|6zӤx\C<81SiqzAh:̿#bE]Qo,ZN.#lQ~tc%ɼ)d|+Ů˳t#V*xXv@ |._]b>nW5e))ls5O0˙30&~  vPo.}仯&kgr1h т4:=ͣ3pd91 C+_zAyo8uBQAHB +;V@D$pO˻~S ^60 ]x:=ʿ[Yx.^t3h !z3= s?,!ke|9IqF|&k4+zXBБѴo G*A*A{Ad4(dr?(D++esBmBkQu:qYkւ*N%<ŭѤ*!ns;!ĽW͞8FmR)V&m1պy!Xfd0hn.ۑ#.uH5쨪jFtPŽ[ʇ use -ok0A`V)z1hLY7sk0uUK*R>CˉUy\!g6u**$Mh"&ǾT`?P+!31Q~qRvtoӇ'|1]iJ3^"5>a}B3Y1}A]w gS< ̜C~Ò鴮iZ+ #Ag^lPEEa?иFmpf,Zu[>)ͦ *6RȳDA@ w>xPP{\Mz+P|}V-FGZ2VKk~h]2E&.N.~"겦$eSCn]n(s2O=ElQδw~=0LGM;2@i7C,קۣHTZr!r-¯ +BbmH'zHrWZ=JIUHMJjz;o`F.xbvO"ėQlr'h#ڱuZ#cQ85.kDvAGd.G9S@LZ^^h-G9gIl֩EbZ/RomN%bxLP0><%ߒ$,/%.QE~)IܙD #Q_~_,鶟Ѩbuy,vubhO~Qӧ߷;>ںkQX99\yΒP2|`KEΨj_]ɠMSɅC =Eӹ}|UOa1[=(QNKnQ =t]>| +wmy>upds:PtGbHIaF/Xz6,~fxCpCЮt٣CgYm‘ ۶m۶m۶m۶mVj֬_U>zh- yl ǥ\3;5W76hyM*ji7.=ORDYcY""7Gh떊 ,GSS}f~ @NX̱[RlhF2ġ?~hʧ@RHԽӎ3hvbɆ0 R񽤎[h¬w]w\ymҒ)l$'z=HۭT7PAԾǭ!w8j?xbYQ#B1i8x?:+P y*jeju@lTD [_"VBc%eADUhO0^dj3_,<_a^ a Z 90!!*' 싑}XHT v zs"3;1 qsU&h 9NM3w:#׈D5kʔ \pT/MVSn ~1SPo.;sotr)̨0d[-T7&-eL&.3Jt)(9 uo*!ZѵI451Sf{,IfN4 &Xb!L1b=HFIxQC-Hk26к~,F)C)I8ANñQiSCm1%+!F'lv|P1N;Ha~ ![%[J Ȭ顇Jwؓj\F2@YD룲) +ns NY1b(<^jVCq,im@'-$(e8i/Reػ8e.*%#!B\?5CQ{${(FjۊUK:'`_(3dJCs3rC3|sCWQqr3RvsnܸsDo,6֊Cc"wQWQW%m a҅DXmܩw qs m usܸgP"> c0ۢkSn>gRϑe<{R2Iww!L@X62zS]]\@S3s!$l'3lit +=%E$66W(BWJ[O2nK|Ȑ'MK8ZLy3oưpQEsEH;{ةݚarIzUgZnpq:;bф5jUʱ⟠z O;X:9n:ԱnܪS >!1}֕6늭;R'7eUqJRBShFK)E2&$Ƈ*_,Q Tͱ1߰Vw4: mokWtE7:jqFw; lp$,!_I +k )q{,p.!%*C])M Wş"zwPjΰKA@xN~XX7'w[>ur!Vѽ+0Ys2FmaGiEƢ,^EįV_5ۨ;҆!l@/]ܛnpt۪\aUn7꣮eQuWq @7iV2U.!˄$~5i1hsz+1:7R1M23sJE<g';fTK'~SUzA +q, +N9NuwL:HflN[gġ\t=YRpҔ4z`DWZLT~TV)bsN˻U2KΏ`̋cf+h!b*"Y4<++Z"y8PiĐze$s #-|Ӹ8TN\qGpbtI.jrsXr(5/w#ݨ𷗯@U93>E9;қq-Č͸x7e놴TsV _D֣x5$W3e5;9[8TзP/̣bA?ù>y}nFDMBpO37PDӨ/)fp{S2vt/%j}-rDtΚMʥo2pSsJk\'j2<}q堩 C"91ku4 2M f,l#WRK^soz@KRߌX\t 8o:=ry52\#`CuVU`@3/ R=-RF$7(cpÎcdHC+iQOQO\'~ĤצiI+8ՐSēënҒ[\U!)9u{XEK1猬MH(UĖT*x#U:zw3H@?QrEŔ +\vqQ1?S n0-_2`]sյX}n 䕌1Vpd[Lq>elݕw G5]-˞'jP[nN$"-1*+ސQ\ZK2+&}ϱMG)%XMY3VCg^{xjٺĞu%!7[f3jʭuzege co*jbY"KaFoFy\V=!GI#_j%hdicWp<\?|1:? 2qRv[a>1o06_wL <#O(rqmX~9pIOM䙍#;cMx}DQQ֭P^PD/:ЊTݧ*zՓx"VIKTQ+bh]Jnݨ FM.m&ȮX AnjoxP"j:oQA>x? +H_]f$ݠ2DD`)G/-Eg9rwmHn|2z;MQٺZ[\ +]sހ6gas3eņfODXW;CC:Ivzm8W웺Ids0]{!Yi9>9aL5ĉP钔ǡ]nEںdWxnc\!+i;iZqdm+Nu^+|{_fĸ釿 \e.p &g.9 &r4/N(hF?P_+5)VJ^aVhk)π#LIj%r%c(0vDd!~SHY"udBXYHgKm M>4Ղ ?QܭkzBL aj$p&ۑ-Y00o3WRoR1#d&Z1c|G0F"Tkvz"p}GUU|d.b7G*>.w/wIo[ޝQ P]A Tj +^<%|xn01C/l>a!l$ȮN90g?Ac-" ;lW4l5oaY'y]͖,$ĸb;ĶV^1"q$m9 l,"X8J*WS$$قC$!p-⥸52b.̌ =3"ngm0O%`D 5%V\RSC"eơ [[g?SHmy6]"e]@uyTxEzA7su!E6h!;c@aLcѳzΡLlK7M<9q њWr2auB^^C'h}H6zЫ$[ lWQ4!$&d-^\֕ݳI Xa3KR9ifm쑜U0x>yC/YglBg[h#+%0ʝ,'p+_j=F[#w^*ov9˧S;w}X/nD,(v֞p;=|q}}uk{Wջ߄zBȘ>_ރed8t+!TLZ{O1YF>S4&8b͠>j$ܰSh,\Yve=QoO +!̊-VFLr6GDBDlFda@UfN8QF!dj5UIj~;`K1EDѢK^@aɂFglQϓJ%avy5O-_^]t&؄豥F].q{4X~dg66]t)1ZɿW"Ւ4wzҧL&+nKuW秎 +- +~gYu\HjG^ӌt~i7xMy̌uQ|[k,.Š6d;C[Ls=ӐMR[r3ő'}gc*+b̴^Yn:|6K>O7IXDMS/HJf-o\< 4=x`lz')].<$mͬ))K%VDf)VO0NӘd,˫\_Z,+W2 +@@"Ss!_پ-(Җ`Y]}W%ϋ8Ra+[JmFjj!rz2&,.$2L',|^Me m/P:hQf&ܕvw!_|bA?RmYʈ7E9>vI\ ~Hj*'1fX'pҤ(b#6UI76[Kd5YڅǾAC^9D5{ 3wp4ܸBmCAϳ/Ed#+AӋ9ӆVIIEnԢ[)s/Ia.8݂Ԩ VԠ&`QZ#WC{v;Z݃Q}@l>rIJS#AzpFRyҨX̗+J}uŒ+h%f*iL+i{̏kgo޶]?;25kY +VϮ#.^bVӺtEhpqїjGW(/"ڌ憜|>P g$jD1`w9_/{I{:rPthXVt'z+a~G=F.f]!rW"GO:DwmmC?G;!m3_e /ݫC$ gd C :,^sd'H tUX>HW[IHC $Or$ Sjo.6 !koBܐq&bn "MBlվ b<L~/HG~*0a䌓#P7֘"}K/0"p8 +`չxO;6t*h|[[w,~LSſW⑌Ɂ@5QuP);ʈ2*2BH˩u35OTÂj| &ܮ︄zgO:{[= %w;g|}!} 0&!':lUpMP"|g۬;;HX}Ïe_ݷvt7B^VW:\t_ Np{+XKE3NmVwJh4Qa)^Z:Z-cʙZyRIADVfVxWfZPCw&tsGAY VZ'+]F@ Xf; o R+M/ݳ~C+(4\IňJT? lwgnkqkڅLgrޗ&ɘhm#\Cѿ'XBL9H6sTݭ +9G#Lo)d6RߘUT mKNu'A-͗hȃz!*d\UȮ,KؘUr2pgAm' 8gpuQk-j8(\ +!Ə}$%Izr8` I0y7yKԪju[KRUF]M[gBU<2/;3_3o3~0}j)# +GX +aۂh=91U"T´ +CCC:FRB,;E%`L;dءћVx&b3`z5cS/%e% ^tt㲽l.f8i'sJ@;2z=o8iӦqI1 ;,7~` ^kOdN=qmS}zq Ly}eV%sv)y׻}F v$_IZy?Y&H&p qDd3 +C$" G JĂ &;6]ZZNcLap>[ε@VFDYUF؏2 9!ݺ&huPTwWDCT{3SxQoU!U4f +y:0_TS T5Hs jlY;L,vo[rnL jruPбTh%…f$-j$9g4v^oV]M~ vm{z+=FY|RhCRQWT2TC|:2GnHTeuggNUfVjvWuLLxX|H`EY=j*RDl'a=gD☯"y^u]EȐEJ(,iʮqH WIe ^x ] -(dgD`#Y||ycvBAM e%!n_q R?c8+/W7#)q%f*=š  8M ^2"9뀭ocSH?T{q]G$%S-Z:/g`1O&H~']QXԞ|у*Q-گ}Vh ;h9Ӧw3ZvBya{'_9T:|:Y/Y&~E)!ZH{KF"`[k1>p[ߔoSGp[њ%33rrμӐݧ+gƦ!aiWIIh`0ߟHX>Cɮf&Y-3POf~M,7ÈTYy{ѹ(C FqYaEsoJuG%ش@pvo=|vޅ ׯ=ulzUm1PηOr)vi[3l*څeVj_y&q_\jY1sُ7E%H * XG"QQd w-\qAe{)}ædl^͊i8prBQo/=@ "i1DBqnC4ĝ,5gi1T*t^r ROΛn5t-RlAltg&phcl NNO;gTXo|HR`%z2zk,`u+sOC9(ϕve D*t=WCe>)=s~j M?R!Y"$XԈx`L=%t"R(5G-Q + h4kꃠRZzT_{!~xi[[-`m':'#sv:tŤ2iLްL]iv S޼Ũv[]vn<5G[Grd٢~D/ Qv[M{;6͞谲rl%`)^xN FӍSɧS qSet[IŶ"-faٍ_٪^m\|wqmd'"ʋӜ x~mQUJz|ݴ'!QdShYrmeX)92#eeS( +$-lVYQؐD:̍&f֦us6-#2)+cC .5c[(yiYU^6e*a3J 61LḛYcԥ|72I5<>VTt7TܫJB뎵ΘH& N=\LAS(Χe8٢%"LMcHXE,AORq8lMt^g HeCRv1ؖ\M] 󘱉Y|UHhڅ}}N\*|5[֗;';b&`zD} ԟ3=%bYPX2w k;fX5!G) 6SYVuN]f ¾Gƍ$fGO)'0e8DËNaDҔ/PJF= }'H)('י֓åQc#hS}oU,ז;Q%nЖ! <΢x4tBj]kע_n+jQ?6| +A[q,c!+O4-h +H3$Еm8; вBq (gȎ\;qIX=11C&&}SFo+ P/ (ٱRV)\N8#VKKS&TllEWVFgJCCQCHKQc2TrAM1$mBQxލ*. 6~'ZB_5G&K`V' Ove +q =W+CwSsk4~J8S[Q8S!ǵ#X熱EеyBYcI-`tD':72œbYr1::nsūPψt;ҩ9ԧݫaӯ7V Rg}S݌0u^IjҚQFªP4:ƌ ' #(QʟL0RF՘!9s? yW&08JBOE1Kb 2pZkc|e$RFPQ%!nl*X -,ˑ5bZݭ8O F4|?3iu]bQ\LDaTaɜ?#kFc>P6wʉD·41WH rψ +wP xp+G7) :|ΊI]yk*>Tؾ%ݖܒf"M%j:Ut(ׯ(_H%S\12^L"ȳfOMk]E%ۖ7\ .+g c6"\E9kdwb&'Ĉ &+>aaߘc[Jѽ%lps3om(lh&?x`M heh+v`.c!Fwņ~*_{ER}KJ#l7p<#ȝPZ:! Y1EQScSjXkU:+ҼC+B]!(>tjWfQtU}N<2ٟQA^kmnWz_NHlxTWἰ^NbM%s8xm%RR +~(dJlx\cSX;u(JMP>l sǡD2=~,X\Ohaj~b4*Yf[>^Cql1KS'SeW#gC[eTMk]M[؄h+l +hKI!lmM,z;~:e3Cpqb0_pXO^w t9OMX3 9tĐLLH0u(A"3qHvX;C;8* RV +DJ4tM1QH 4YzntQ. Mr&$mAט7֮+ܩ0Cs 3҉-5kqa+ wbo̍=})6g!ޱ.}*Tħğ{8>Yn3gʼfo,;l[^ڻmlphxrkL&i.,2ѣJzps+erA)o 7q0\vTO7*pO}?5&R(=oH܍RYhHHs.Opگў +& ; +kË)|Xֱ//M.]I41qe<6!qiNdP `u+D QP9*I52w 3[rsNcWx4L(M pfǥbPXh mmN(VE`2NffLņh֨܈ʈfMГep:xPPrNHK,/֏ePfya뵻M6Pzx{f} }Ju! ^O +j}RsW\E'iXR WAS[mקyJI(%&6j9:t+d˨Ut<^c)5cg$iV:=y' +0i'b 0껚U=A2P]xޢ9`q3XhlslPt1 556Z^: bvB!sz]"D);K[/CPK\(/TtI~z'žk'||D5OkN:XٍBp|NvgJ>ѭ v&|$ +aK63Zpc)>Kb= +HkQz)/v}'Y }r%$B[t&:u=]Aď{Fc(]}]a̴u+*@>Vk $5rʗǥ + գ A:J5J*6/5WAC1'26Ck8E."<Nzxjp@O-_g(]u +z7>'\jad>HU$g0 r yqs_a:#>aA,{Qk!DaF}wg#>qV[%UN!FO3=|"i,,-*oJoh{ytл:G#.du[xݔоT34⿆TUG_8n"YA!mЄ񇐮Ft,+paMKF*$$Ie}5Mr}!3a 3OX_,%%5yvZ+Gb|#uOlw-=ݞB # 8#PGH%bxޓDGU(ITe;X,0@:h6\QQ,wKi inA>ko"sTl&,A]-;y!鍠nLc~gWPh!:.]Ex :5nyP]d4wLG Q Ymsuf}d}\rf9|N/БG8nsm*51 +{X#Ž\g~&qiEX#Pމ*ayMY gV%D %G*Yǯ^^@| 9 '6ăf=a!&[8{)mևŕ*=!sʉ F_긱׀\xI;H) 9y! + xEg5@%M nIi"?3XI8w/HAm~^ V(z^d<$ϺߵWޣ|M;?&jF}ireϵdp@@ .'dhbij?qݱؒxj:F$)Gl&*EC5!㰓1jJ[{JVKUA)ݴXJk/P+ss| hÉسPTh_fj1LK#/`3Lb_N-&.􈠎('4(I$^:tCu cy`2B8vQhV2]'(kYmÓ%t_I2faVnGz/['-qQGr#KBmVcDւ́!ѐT& Af nkBzC?-ךhv^q_{,&~$s}{ [2Dh^fhmu+ꚜ^;34;'eHOSa: [}yҭ|K(Ȭ$A_ /Qܫ;aD lp:V)q'8BlDͤ+ElۤYa +oMg4 wָNv !gT(X7ɒk淘}86ݳC_֏%$Kح\o[h:G2 RtʅBgkTL2 N^O7k\4& L Q怬/J !)-ޒm{In¥17,$Mߝ q +K<hގTFK<+ʚTjYlvU֝9.. ( cBƓMia&{8Fm /g +2pgxPLNАjeg=(Mb9c/w,K-p+ПkϏ@Vb|ȖXk_x"'8#\ ad HdoP )=rߴz7pr|~ Qpy[nWg!Ro(U_K/F`#ެvW.2GMsNҚ5V_w"u_4Z6z0?FK33 <[NEMcR!¦y2(M"A=~ pFS6zg兆(5 |dF2"[E C=f/"`[R7!3 ט '-O;Lw{Ecxk"v\%C'{{c:>?>F|#)3顅Y(V؟CO'?O;ȷb8J"(; ~ 4,ZmZG 32PЈIz&Z Lӌ5ՍB3YS 倊f*UuOzDlvzs裓iޛ||`}b܎CٞRc {i&awFqSۋc$ꤞO $pC.-BC%q:2b(+mBD3 \s̖+H 5.,ڱ~R=x-#Szեja-jUv:j)f_qP+r'j#a~'3>eZ>Z}{^CE;֊X'kКO"5O Ƥ~Ra_{^3ԛkN .tdNs +9kjkvVJ.^q\]ϋQҰErrm̈́)vI&8m0N@1siC<#{`* +8GkZ[am>(O#Xg+oRjR[^5E^G]<򌻺"8ծ*tb]7*|]^MY%G@WgP|6KЉr  L@5qf}#bӒMB]F]|kEZC -yr;92>U~nQrQlXu1c#!:/i)HhZa%a{?*A|OtC*xf,cL6s,k$+A GX?c-G.%>4@}i+?"xꧥ|(6FGuuOɹ)&~$% +dRP "x1G4He -v*6.A 55ZiZV;Um[q۞LBȔo<vy3;׭hìI^]b]`9T:;#{Z}Xu @w_ +0V;(RCVA>]5 +$^P:=`Hx8-^nGr;~{;yQ$wd,[v?yA5ۈ îxi)6,X(bv$8$( =)7#q+7K2%2Fi&jr]L-j-T=ߐY\cdt5]EiĪN8!媨1#ژ>:PNIyxt"IWEJӒH +dT\̐/j,EඈJd%qƛEü!Od7H[!dS$ +E_Qb"I,&BOǼ%P]C&_nJ9v*"J=Ѣ-rF*L&h\jIpUz ۅ'* y.BK(Í~Swd2(QnP˕?25"e +[;D-3u˒o4 3w5;K' p)' G,NVuTZo!;zqbo!=p3Q+Vn>Etq`_ 1C!ӢyV`\"r,KXcc S+:-fp(L3d14HB^-Ke#6v\aUcײ#px~ѷc/W6Glȥ [6Q@w\?ޝxzXrpY_W؄tJ+c=irnD>]@yD(v.u; WbL_6Ҍ\z_α3A.aSV{';]Zrpx!w H}= +-V.@..޽L2F6p Sb 1H}֤'CwX, ^pD.+v}?tn=. Y" ~Ne<QՒ_8DfEV!^d;TjL.vԞxqTX;jE©W6uh]Zש|BS7{[o{Iֶ9ݴafm"mYZR;S!жFўOʪz.tdƍ5wީmEoYsO+Ge,Ѧv,oU+J +B\+#; Y@i=B[|ڠ^C Ghe6%-$䕓snۍ6&2* _~?,}7*r~>.pCYJu9fhks3v?Trx-TY1oy6&TAȓN EPm{ +nnj|iFAs2pH'ehV;؊&(6B/&nٶ>tòasSFyh}>6djoZV,Ed%+"f.cu~GgD4m +^@*ȿu.p8s=7"IuK?d-'3JQB$um?>?Q&u d#QcY몘(ҳSY=?"êDz㙁ALfXmHb_t@٧#۶{m5u E~]- =tL;A>z%>_?ҋYyY~{%řz^ +Ia=4}L.E2)QZT)U#fes_:AH]wD t,]$*tVΥdjOP㴁_ Pw F,(>Z?Yؿ ĩ?ʂGNSû7.9" Y 5AB(D )%eھ%EUhE MFX"%JT}^zf;h0{?$%# Kԥ03C +I@1Qvxǁ0mM @cCI +mGԗ،[{!6iD q HLs`HdZAP.MU{*E-TN99&IOc awGP9{p?;AuR(ڦGxomr-t,b4a/0w^+^`h[r3hk0\0&ZX]e1~Y(}Oh]!f)4¬JLN7DGRl|%:;\"Ԣdmc'A7+fiڻF7JׄI_-|ZL[B:'xt 8}0ݷr xE 3< xmܻ8UYD3Aa}k 0%2I/bBϑs,Dξ ʋ֦ErlPQ2w?lXNa#75Iq`0W0"~w[~ݗٝm8{Xd칇` +h=TYt0O\0eFu +VF5__\ 6|2yuY#fJ 9ۻH9. a-ў{7R={gI'vNwVEtI?'NkNyH]'t>z~ԧ5p"Z'B@5}@#ƽRܪ| $`,Z,U!0_R_$2GHE%K |\ـ;GTY֓QxC~<#Pđ;nO0?1%Ôh$}?-WxD-4geP͡{遏fEC٢Epҙ(&nM'M׍B"3qKFډUB.-,yú!ЩpKNvzĺ3;B6G Ƌ< $9ْ$;b{ CvǺ  !aC!JSwf&{ =GZtbK7(!)"?C<pE: 22,d&g7yO?U=LӧI߉cF{ul!B p}o 0fj C5b]PHuk_=M~3k'L3`mB| @"?H+ovSxy!\d=S{Tu0%Շۯ?jȨP/jOk+`b|I4%/R))DbC@=I5ughi 8_LUr}\Tr}' `˙f0 qsBx&nf0XA4k;P~H1bЇAX?3gH|&#ؤ`@eȬ,&"@_f;+7wO4%12^:r{֒EҲmeذ4XPN@1YP/}L(~.:4TTIaǺuGFVsRK)AJ&ty+^ҟ텨%L%eS? r)ŋYvuhUF%uWSG1^Rԙ!J -Q%ND1ԠlL2uU;Ҕ *CaIm\~YXebPhX['$9SB(ޡZ܌jBpX~JDHHw) cE/ A+ +H'QgIu1߫ +`' m' FFKCsZTֹ}H)T>j vR)F#R +m`JJ|(1EDwkmnU3nƔiT3䴴z'm%*I'ME:L}^K1Qb5PeJ^mR(<LB1uc3f465`wcOCk. +#WVpۍy}g,U! +tG1nA]gW L.U,*5ӭ\]R!7xVm*8%,ýI}Jn-[ UegӍ&XYYEgK} I[Nkvr -(_tպd2Ҥj=Ĝg\ӏVXiX2QW ~#O&raA:|6ŚAlTf w"U[n _ LpyzŮҙ#+)7\3Aִ;F7bhEծ~-*q.=x?ppk07_1gī{Y_Wa,! [!>^B);zF5.Q7/[#I#9k2]jL-ǹ"VqVQϹcI70:};UK&d`<:O*G }w{O3Boox7OMN3V4ydVyVi:fDM)=~?k`B'㓝~urR3 rD;'huc% nI8 vH_!H;jo6Ow <AoC&WuI M-p.pTr +o@%L\5io^q( %Mrxaӆ-i{L9oC`erfW%|s(¼flK2fޗY>gϏv2 vǃbQt;aR[ aS\u=~ 3Gј8ljA^G}]%FZRI(UV_USM<=Um;iHvӒCIji; +u˂&ZQo+mUẀ[Z>OckJ-Qd׷ܥuj21 *yG, lVbƑT4Eߣw)K'񾍚@zٸ(" ATyz(wXD +1IXYGJ ߱$ܒ;/w2h3tBpiHuMX4.hB2?j_+;kIyryE5#E>㊾O/6g?&D)/O5#NJU}Z?a}9[xJSy̌ ̓g8;&i"'<D7yF,#LVP~<}tϺm +#0B%z5WȽ2e !l'Mz|y~|jG$KBHbq;1*)nF>)Se5Xl1_nC5ژP}Lu.Ծl!(JkvadLD +CmGn@?}6>_/rGJf@p8aY#;R";@ΏlL~ mћ0 bLw$uolI3#M* oErEӥG_LĊ!QPRw}/ѸGOi)P¤zB9_J_9/`*?f:ah_z4aWrIنU4_ 2+sdW*fw($ 4 ФS M4k , /4I6nz 1/&Y][MRRY\vŒx$# /fFd( +VzMR55j( [!R;Yɾ͖, )Ki89ӫ0T9 & ' f?r(]QZ#KQ5+NQ6ꒊLeKr_k&*TFZ%f0vÌfT,$h+l^܆‚:yP[9Jg]AGy&۶lϡHSkoQ Vtf}ԋD*kFJPpO!X,rm(,:~lw> n#->XK5N^_Pڪ!|L3B=TȬ܍%h@7)K YԇƍWңdtv7 +st! dWN I7hoڽ&n"]­ hׯJb̄8/9v[@L*c>b8ԓႄnh?lk^ۤ +t|+[4fI*?߼B `&$/Ům24énqIF(~rQ#Pl0&%AsL˴+fw:;\yIޒ%p2 %}@M|BkDo!v` C +|auu}4R<jC^;h,XVh $e``(yHSWm5CӮ1`Ӳ`)*|\y(Lk(Q&;ИBe'sV@8r95 bdU`8T z 1+9iolZe$bzZAxv`NPcp|yxwPԐW|.U8b~~8j,< (Fct(c;֚JTǢQRdS,PȱvcE~ߎVEL; _n^':EPbSjQ9bfxLţRf."ݚCE-2^5S )`Vu({Ey>Q:&LJ+P,=:i" .cN&ytd= ~<^^ϸGe-qTcTߎp Gu&i3?ץu_G*[2wj$;N)#uO{e2'>Aj됫KQ?ѕ /p41S5p2bJ\|$]Xljn>dҲ2(wdm|TNnTWIJnBa|FT-I C+ lq[=]@ HRo0[N҈ +ge!*2(?@7 + esX e ߧ/0;yuB6C=[b􆤱F`Y?~!j0bky6e)8ͳ􄭂eKUH>1s¢c-Ņ煽s~x<!hO)ݗ0g*baDIDY6W- +T*W&W䫶Ʈ2S7ޚ m~\dǸ}&[<8UrAa@ ++Y/K=A`V"ޅ+$–;Oeto!=6f)=mF^5)g}ɒjD}@ @x3:Լ̼֙a,&aSӯaF:;R.}zs9vm!*?O2=s4){ ],4[uD+$a95qcnll1 9ᬙxaj;4a1y>o6 +*r3E"ɩ}!+Afڢ8RS-*5}SqdT^m%-0hsIzrvtf8sa<*U|d~m3Zow"lFFO!~?4!VI9ݕ&\.,?E/8pQbC/HP2qOWԁg]+, +JE:ȊݝI'p8~\-f#v1:rD3N:؈{cs'q"Rh4BxEsI훳זHVVX裹uQ8e9Dd\kV(~\XXQU +ذ5Vw!)m~"X}8ςMMWp  AG3@  +4̭`b1o\g\KPe!V~XVʮz#X.Ul +XyDt M1/@;3\c61aqm! +(g3ʃ5 s1e׷+{Ǭ3Dy41!h^+ lKYheKNw+2g])-BPjK=S1jԍ:-2bcnCcdf$5=Wފ Ҟ}>į\wo 1)r_CҘɟ/}lJTE8KNڟ n$pE!˹۟B!>q(.:|<;'r0VV$D2 o$ wG8_XH0w*Er}:E}61Ϥ>P_6Qo/Qџ8ms >aD/#"u}\OCqY~_=Ӳ8H]קCb>mdkC#>x*:#[݈IPLo+A&SIϭmhmvQ<Ër_۾3:'?E.ˢhٶm۶m۶m۶m۶encs]~y##2##c<F"Az QzY % xhG#p:׬SlEGA?D!ƨ6 n;yDtD~ө[:t)8}?RK"Ej8 +a[>DiR:uP%ɷ;km*:hSZ=Pr1h_\R${)mtNwɢݶ yX㼠!b]ld4Bv%ۦ3!MēsWarMkMn޲M^%:j*hkk'~[v??JҖ_NSG +b:r +C7ˎ4k˦g #[q TP߆y,) g%Hc8>0<:08RRb =Jx8?IކbnbzLftjk?Ivb*kI' Lvup =T 8$v&t\fϖ'"+f)d~Tq־:;o/qۊFq9mʹĔ3HMTѴN<l Yp;ixK hUHtԀ`Z#1a%Ƃ#F2UQw.FpH}XO]r +aq nRzیbΆ˔;.omkkdēx-PC.UK S=4٥J5ݸmZ݃^*|tHMtkӆ/R-H߮#  Q$Kل,$_yG DNM†ŤQ6b' :h3yCQ;AsORCSt*+=`~'H +XpʮEdY$ %IK4q9vZcJL)j#,mQؕx+jij8Q姄lȼTz/"L(PUu#k<$,06XR L'ukJxmqcƋW|`@r\LBŔ'jvFdY@NyPis(d5EKö$:#(2v9o'^G%yB[Ԛ0J FsRm + Ϸ +Z%AO?)-xra*{fOANc#SהP`@6EPpK^?$Ƅ֘{PmPGF'̚5HJPLp'mZ0pޘ$ j̥= 0bjMhD"NqxAMyOz@e5{5 biL&<kbܽOw2 8 x0'!:RNyx1'N{o?FJe舄FhFM~@C^)^?Jw +^ EYV%[k #1mꔢnO]ZQY[;hoƉ>Ľ(US7O0SWhV~)A'?Jvr:v,]R+jRbW}eo;dK .zi܃K_"5YFfc?V :OǶ1ic7I _Y`zVh9|hPV@)~xBqj2XE7w{!:k6+Xg/%cbϫǩ9XTzy^V>DN?ROCZh vdI-Zd1r򝎆FUM#kEO]u#vwJ*alS]i]ղӚ'Ss't[Pg%ZȂ)w%[edu?:z@%2kmEHU`|HfS8ƭYobOQfr"G&]o[g=ﻓ= PKM? Ҏo!7ӎY 'S uG٠ DƲluG! +tiMXYtZFL j-؆j*nm:ǹCFP= WŦ";m"aT\:q %d]fS~_$ {!b#W:ҩncV ,Lj5ҏ;` 5K0sႜX`H,a9*+wCVb8u7]B`MGH}QCjmTp++u%cP9tFԲ@kM&%1oXcUGpP\wҎXRfkOHTܪ|cؽJ8#˲ԝyGysA谄O%Z; ]R32ϖ) ߬V`:T&X!VG!ڒ\IۅS^Gx8)`.-zC ',2<ڋԩ6ǎ*ro!;a)M"#wJLBI5(h>JfC2}JV`y" {.891`_lb CMV<;<22F<0!hʣ+꿁qDs! axcE'/뻄"K iϦ#:ì& ]|:@;o⿸i2MXƿ8 4a쎜7Mɐ$y*~ͱz2BG??q3(ϨV65}Txj# + $[,caL`bh߈ 3Xv{3{M"I#Y^.h^}h(ZCUQÂeM]:Q#SהQ:oyM93MߌwLn!𾞊VLY.F[\IX5æ9~;:S'q4c:jm9-ySggnSf;"T eC&W:Z@=4ɪTDjiXSqij8d*6ˢ~df@(Ȏ:M⋏˳*-F* SHXҢfI5YhnFAnz9 R.zIt:m1쀽L}5)i:=bJ mSl#55:6 CCe]fFM+2Z q[Mi@X/V^A֋92uLLGZB) 7\_DvEL ECE ?g*2ҕjN.QdliELh|4EңaDni@XZ%Vfkk1?X.&bQ* Պ*bkKJ3/[ 4R\&įv4NXF{yY]7!flf,wf vIy &pYZts9W +g[p3o'yĥPm{T+{œVxb*H2dic9H%0O\sV'w4tзA蝰-[A_r#(zn + ?CZ Oն >WZ̓QN\IK>v(׈-Y X:ܭw%#~;Ȼ ?=4dS/̤?/eЗ+8_N؃w(U[^"fν*$o%\>{eW8nαz~K?sPR$]ZhϗۆLCA)\BfYF`nx釹=7r{Wp74爩OK6e?pj'~"T*7Nħ[J.bU+]KJ ->x>-MiPZ΂{A{@># ~_=X,@(:|^ S߬x1(w_XcX!Ok*6bp)*\tQ|s̖+&-y hb>yrZ̐2"ޤ +Yʆk]'0y[B#^%AU:}_PIXvv˃TXpeJ4;v9c)clQmP0k*4Ϳ 2:#6"]mY höuMȞ7m)kvm"PͧsTBN +w}+3҃d\mTpK [AU^|TVt7*c?E6oF\dh? Ӳo6Ew$[:$j@vl|Z]U u'k*/^R1.*3t[WOR#af\Kp|hf8#Aqc!||²C:|MOcI65mleq|a=,!R$XU "*cT1c!VMe>U^=H^]d=, \q_X%r<ќb?SU\~DA (vM1~ε;xc7{%}+'1(k$} \yp~dạ'GP;7 xkKqf 4M=&i} j̧QB^r_wmGTXcZ淺r瀧%_5K7-$4;)j#wfT7T~b^?,5vRӭ ikB zrg|a +zc=clj1)Uᥫ]U,4c~XxI33 8@< aU|{NWWX "t|*lcTV<Ȗ/4,mNKk&B5^ \*,LGH(u2(y;sl\HK\֛q91vSHpg8'n0&716 _zGcg3m:o-++0?$8lʯ7IO: w_h[S[TUƚ~aYm~Z(m0"i2*:єn1Xk243jP;s彸p5hui餱XfNRkRtEAf'>IzԪXBԕdg[O,G KlW &fp K.5VK\ϢKb”X@Y`jGH؉렝mo:h +QQMGw2 ʰ*TF&$uD2#jCނ(b&0yP&vXY7#[$;EZ9iyƓ0.edYy*f]±{*EjXEqqgXӖ؊F,ե2tQul*>TtQҾ {zW)GKj)Z}rQHdCF1?i1$Cr}c:@_J,nv"]nra(5WJ[Hp}k?r :WI.[MC-x_ :Cx;с(CX@v}x_= +JEdށ3t@76.666Y$Z& mBWLw{DZߏrI ckؘQ +mtA^AnfN*Ez#Z +\'&#*^6*B졢%8- +bCtv ~ץpT{9RؽV\mhE u-=cqNO+ $/|Lw:A fi8Zk%zC%OՄQ|T4ȐeFqͬ]ڀH蠍t^8e^܉ZF9p"68a369h_tA^bB*%܎Uq +O +'֬3qno>hc\m6÷Ic:ۍMּ b爟bsF2s' + `@HMG frı8}R/sD~U7n/?ԟo>;51i(|1F SW1@VWQ@%<-Ӳ>];*D;L(9GVbQ93DgRN~IAd.b+3L]$zC;Ц?g 6>ȋ4XQ~Y;4~Jj+ +x3 oYВU-+Fhx}JFdRFٲj&3W1/%\\b#.;ɋ̼ 9 M9mݎo,v^8)<=%_njn! bmҥ*VR* +x[$]pkڡ"1䣖޸@d3=@ "  +% +k.elOm0;qđI`wmpix jm$^Ћn @GNxBU %ЭNcUI' *TQ@!NN͗9ۤv\zC{izd1FӵUEͬX)+duv&*Y-hF(@-!'۶[femوy; ԺL0z38 +y,ȮA묹*6m>ߵL*#q'^RT{aU^x2$7Egvs#(L%ۣ0(MR!3Jno4 +g-*;,4t#6|mc<)&ؙ˺ΐx=^@@Z>-2v^D|ބÝa`ÛNs3lŠ6q1SD򿋒D(TOO?nN8hVe hA9&Av!C-\%e,1>' X 3?ɇ0m!~}u.zp;W0>U, dBąY1ÍGEG5(XѠ_>j kDh%N3l9ddÜ97&#ۣ,1-,FQFX1H|u?-=‰e_SuU~䲎OJi e>S +i#KP(HhYJlv3m@Ef]FD|G|F}FvXlz6_xo^ޖbΟ ;y8\gueHyNG,_T!!H= AIҫ0a1M3 [+IxIK2n[i". dfAtGR?Fc.,Nc]-*k\В2Y fά;EYV4IbGb\QF5ј=&Ucս.W)ǔH01eIRP,x:gkeIwHsGq +8f$ZuǠ|NeCEi?Dg(\@x@^j%7mo aܱ +̾A@$5GcbVz.@(sB$MRYT\;,-v)pHFUQq>>%)H~X)Fj^-NOcbF,+tbHc + S50x"u>j˕S}&]د,ψmɶN[Z3 n3(>WZAA3>nH~I:pxq|(YyYdmȲ >3=Ť78Ť7PJ}ϊy(8xŴ/i=Nq@:%S6%; +y7pT;N,w- ],}+7B3#TVLô߫+aLW7E])xF\ LOk'x1'3avGH]r8M<_ +@)X(dZ\Qt9TXz#$eDT&;Lr ^Gi[F(v)%T` +N@e")e%q +T(W`V<yF\MmqPX%ԖF2z;MmΨ| #ș<b+7 d T*xYAǶڮKu$ܦGՔԍ$(gm &zȬg2{N׹s,RrePbfV=0́qp p5[0@T(o)ѱVNSdE(zw.=' $FXӗa۝)i'-25oAN]X>!V QB "{dž0܋xM +)*ĭc,/';qgP$?%AQPaM +:'r#^Lo~g>F%;Kn~?kig =G_چm^y~TuIvCj5y.2VdtF:5rb]ވT5یj?Ƈ94N.?4r2`QBюT0@ 0^_ycg/ANq<@}v>vQn#]Tg}9QQ(̧/@*ɳfeP}ud=LhC<4m<{H@/jaz49%9[p07XB#BKK|5#/h}rԂk۰g\Y\ijRXBFjl)TKʇThߞ+,qMx ҥoŜ.HqCݯϽ>uG LԦoDhϒȺ(E +H(cƺClUZj rB6M3C -pNE&[EK֫A(]ZNI3$ >J /eZ{ge{-3]zd,fըs@bk/'}GA;y;8vPJZ_FS%/6}H'f-t/60t2Tl:HL&8qD9@6cbbw!3qT!_c\)deιgE854*lhk-) 򷴓g\]B`Brdq4/I/OdyQ;Jkwu|a{)_$=[-HEYYR-bx½YdAAQ7)F['c$Yl;'< +L.%FOXIw5G3b`R9|߉@#I%fȊ5v# ̣;b9Njƺ=XaFkȏ[9zhn5%\IR>{kv݋" \YJ[ͭKNl,XGJ+m`DNi p҄RZ׺t%D/3<|ЙT/:fcvZ io ާ.8~h01k@eF1CJv}h)GѱEt@Wђy!kƦu=$㎱'̊&с%sTO=+8Fֶ83Vm5)0yȩ,)P-ˉN6ifyVg~SXVI3̱@V' *)&ϼPg]FYD֫p+wfUyl^&fXE!7- MRr^ۋp*Z% ቊ!"kO=2_zj">O5j&XDFEy' V%6A.& 1:QrդpR<0키3 #,mNe<]9j4xWeFD̟uγ^sJHyIVՙ9ڎJu޸B~x  #E̳/Q,3]  |JB[MIVV Չnl%H\RRa-/`=V&+8*o~.cH.Sj%ǡ1Q^i[I8!TN&5Ul$|ifjIw"z +bSK)hC*K,e``&S%'$O_nԹz>)Lق5 5lEcs!hlշ톈A{Ⱦ;ʖVv +OahǑppC<.\(γ= +ۊ̵' 2FxhQ<VQF$Dlx߾_~Erm4,"kcwʸ[s _\ CuGPd GG&y/L:'y{Cg@1گQոOA7R,[a9"[:eIUXҽFr![hg$wA羲z0ŸOf{ǝFaEtyb$BrFۛݽ{.R(yv`(6ȠvsuGOYN?B[)N7mM ;Jd[4i'2+y%S؍g)T|1# ,&1˱+rhhI%K_e !k#(r%U7q"",6]|Ի*mfJ*"=oaPGJL"][oNDwZkG0wsQ";?_1ݏec5U"j EgļTc7f}b$(/a?AFM!QV a!>#fm|xӷ}x߬h:q=/,cPTjZChG~w2p[8T{(Iÿ]Pb0Y{gCKBfy;9&,.l hn6%q5L$i1-GͻQ?",W*h .JxvS9ҭ0=`Uf~{u}}' +Ax3X$P;D F!,Oa6ybe'x"#'??bऴv@K JΔt1egǔv4qNir: @@3a4e&̚8@'xG +K1VŠ؞M0}ȱҒ@W!c*h!YH*TxDK6` L/ZI!o{lX6K2;BXү4M16n|`銗 A)8.GWj&'V[9i)¾K#!ɇ(,Gz]FתeʱXS}Rk@'ηǜ9/Н޳kV۬*de w{q]rVݪ +,Kh` ŢF{<5M*\zQ +ŽŌ<Ҙ愔'ir/oL;c%5uW-W%iI)/Lbƅ+#i{*\~Ưs}jHvž^UO<$]+Z͙9ڟ`Udo r/J.%tIcNx-ʀ &s%ֺ.=0 pl0DR4[_6P[خSg}qz-ơ08DjDCTCFZi#5AkMoZE6L ibdžZ6qB-D ,Ă `%(h!i5atU#k@.$XAZ&Nr]mE7bz`_6@E9P.+s߬bfѩ j ?fc⾑98;ώ.Tx / zay}I_Nw[@aˍ9e"̩5=)DY\e +%5>{( S/ x95G$}^AW0GFnd9x‹7;ً`s҇JެT 9jh ˀ, +L mW`nD." PgD݌dl ʸw?蘍Q _lDM^owdռYIoP៣k*t.)p7j:u;W`uܩܞ +X%fx]_ AQS]&Z-6l ogFbYφ%}ڶFvtI)JGBsuqE6oSj)V}A@`5'dofXZ!ZΏelB6FV ͛i ;Fy@lyeδ"J^&~"hB~M'G|`7o;VYnKVV:bqS@^rE;Ǣ岄 -ǎ\Dm+j+nK)͵T׹lFYUH _tz8nn5&J';w2GUI'F:c@};ko;bP{ޛސ,ǰ֣Sg6 h0;pRK2M-cFo!kHqNp[>Rh›fZ }v+ҜHI~HZՃ-_Nh>&[ _ of7|TUC*ZjP;4j UUb0j-+Q$neKs5^9^_TqFA)/Jw1vUBjEPMw Ï~*蟤1K^]7#-ӛn]-(nOdC( Um9AfˋOiDD `ސB5r X 1S%k^voȠvUڮBӟgq-<ga 7ZZ2M򤕳+!qW^˅t+[ +!R0r>('J{F! V?J=2폱?\J' +e)pٵpCשqĩX $q~. OhQV,EehltOOP4y!_dN]06#9@FE{8diѧF27Gލz 8Etthv ݢsΕB3ьP+0NClm~۔D7*!NT#BMlz'(ͫN LQpкL \O3p c[sGjt/̠([[! U) ZB0 kL7oFͿ ά}$8~,R9 +3:߾}/3yWLa1PNV@x%,2t%n/3:G24Xs0YqDqҌXVb5xr\Ȅd2c$^F&ʲ9ih=n|d9Uc6AKkJJ>͚)W_ghIQr@q=séV;TQ9G!1]xmIhruzaɁŤU9GJmmPSЛI"P-4:ܰN2?cYFA 2,'!6lf{aژHɶ~^An$5 oxV/1dys^\ -\IgGnQXtq8^Zn|t=1bDYzƕn60LQS&!hVd7Exj/ +>J˻tٿr!i4oy J8Fn2n祿6|$,(zι"<R*sN+RMWwSg]({k ~)^Wq"`84BtCˆ dh fH=Dߐ3\+{:ZDXmHۈE8x|FNZiuou#APCh6.6v(Lڎ3? b4%PNAi@`iI +Ke&0B,6c0JL|}6vdi!=|qm Cm:(RQz A9ǦJ`Ug74LK=3⤭ZO7SWmcAMُ֔VboqnL.-NA-wpYZDoNkth)0??hD +TwʌmDv`ǷAɅ4l?K]ڹ[Lۤ{ɯ t[ k_EvWq6VEj&0֤MbB;( {<&Fv%:Q4qQjʳٿ/d4<)Ji\:N$\ѐo# +#Lk7j*79u7y1 x)IBj/W s"C DոvXmUS '(&VyF®dpBjWmeM% YD-m^G8n/5iodH +z' d_^+ KHװ+;#Ηؾ=k#QsZu̡"L#V( {V;.!^9A\ECQ@UKakA2F#]3v2go$Kv7x(@XC cʀ[c*,ހg;M`^C4;C)$U98#pHkgAvٓyڱufGn J 2M]1A[zGpdrz6;$ܘtssx1 TἊ]Tz4B"u fnUd%դY! +a݌9KcM\Xa~Aܣj}p ?gڋg LDQ*WPBUĒ:Jۿ6 Zmy1\iz3EiAYQ,lzMeDM/: lIp0AB.m1!6~ q \?.gZFM08΃8c2hVE~ݺKâ:BiE{AUQvFQEb}f V7 +-7xè,B@h@@kwN!4]d6-οGMd1Įxnw"ۡ95t6χ% YvM6g`gv;s=vE!ap@,J`60҉KoQw0> qQ45RTK$%wEI989ATZIo)*.1sr<׺=F@ӎg 2Q[~YaJh.Nr^kS=C79ޫؼB0b*RlaVY+{{0⺦mx r%EӠbT[dT㌕i5dXU=Xd:V(DdѿnBBjѝuxM;]i,Cs\0BUT]H +IeU\(X:Dabb-^N∺&ƊSL3̝II,#s +ghN6yr7e%=FpVa^YXdG5=PmM$`AHYI(NtG[cqYzy/<1~݋=̴ ޘB+ó[=®sMѽ[=IWVVK%C~zb4.+def%~F( ?ۼx)INjA>C.(b;BYw[t)@ؚ5w! +m{l־$oUbH)70y N L}1bw =잓o'Jc+|(>ckZ+~lZ VkA4:Ccǰ54/XR!,n40<`,hLa!3"sgw˿_Ns 6Qxኁu)إ#-JEiE͍J#r"oE:nro~AG=ec@in_%zCDaSa"lju K}:vf2fYYoB'Oxhld"{\~l'ђ*l;&I.wUs7iir'*ko!ށ,$Ir1 +LhV_~=mM)˝oVUfF83OÆ;?<u͜dAwPK.2y56 M4Ȝ +6 +,^1Į"R*SYJYQ_a gAsP,~5cɒ %]c]/m-͜SD@R74)l-̧nJE."3O'V̬*el9p],cee4n^O6Ï e="qL".e OO\z0 +YDc,X;F/^߅/ECcГHH}1Ig,vJs(5C}* +A*{yAʈ0ʽnn>5L4&~֬mlB57[&C`5C֓~]ۅms?8? -E|'^;!39|{PH3|i2$آ8Y-#цv4g0pH +G_;ȅm%)UmO&uqZŵZr#dvCn9_+ +"Ќw,/6_L]/, +2+h\&f/2j(e]=CGZے脃s¨M66$~8dv_1q2#lqêXYKtd)舻><*i;lI"KGCLeΝ5-ֈ~nfU8A{ qo^n/q!љU%XL0/LV}X}#Iűq"XPՉG J\^ $5#`, MBl#(ǭהPҰ +# aT:00EMFfW?B;fuikde@dS_Y;:N!LuaRrҘ-$X]IP-5w4i5)=nj>wә}SVզݼGi;gaWU"ɭ̺ ~;+ʳ'w - .vN?N]2 tq1>6XƪC8 +O?̔k553S6cHTFjӒќŢȡQU ZߑTwg&EQ[BXW*:gy~R=K֦+ I0 d:b kj:*(+4Y8i4E3gO64 *_&D1L@T1O:V9dF`nm2|p3!yFgEO \J#ŝdZI7S =J$ca1$X0-v ZX-Ѝ> 䴄{@tXA]n!cXD>*eFݎ0x!& z|xB[ +F=^Mi~Zl}C "kpfN $)HJ?TaP&{.t,OFDS7?{G??^)F;??,njVO1H%Q)Dc:[ [`.kFDC` }H˱dZ)*~b"Lˮ߹O÷~;AJ2~n4D3W\wdh!hL8G\tn|XD6B}ZiRmx)q9q=a3.S}?͡R)#ƭ#,vJ(8 j)oVˑ6AʆCQj#)jȽ<ّQVD\+uRvc7#꾔L`=[ХٶQZ;u=sDtZ7N w+fn\pa`P.y"EI}h5:~qjl0ri`>ƋS%gSة%K :cvXm2>u2>}S:,zH[h+4l\Up3̩T%j B}%6G㜔<[]XG og0Y'42ty%FN2vԚz /ʳ0U_[䜸bXu4Auף²Gu"B,۝DYݚyNކ[+lhV_֑jx+ٹRHj Yͤe& )BY%(h2 +mXN.ؠ miۻxԈް,:r_/ g7vy!͊k>D7H}9,9xLz|,snFk/R1= bٸxS2s |PnhH~;G>/8w)Z9by &݊n|qCCe(rA(X"/'W7ujzɲh& $}{i9j3IEN{Xkgx4UkM w52Xp;ch$a =S0O$?{tn]( +[2i}AfPD꨺w鹁!8L=S#T ?0VA]Y_jFd~=:[7#@l8!`Dϴ,ڴTa444U)UP]ᓺQ+@D.;#=,])ydx>1l$L8{3^5RaG DLa 5F!,ca Ix%9g p]I:'\',2^sXlo zQ4T沶w0Dw +˓g^nK&nܵO}V>dvv>~$vm/2Lwz5+4ߣؽ(^OrXݛIbO5) mB; davq9660_h&FL̦“,<w3t*vR=xnL+DUd٤Ҫx` J9(peܯ%I)Zݦ-%:FPjVC0n ~[\*G,DŽo )+^C#q'D0Idbd/=GfሉdЂhwKh- + V8g +_l:V.Q]Sry P&"9vz Hxo;$RR $mJJHZrxQzV.{ԨHAL;o6 Ѳ}p;vSKO#4y?26MtۈKǡ-͸4ZtJe/ÔöK! jiyo}b?vǡE̸.;3/̈lTr3X:+ɱS _FZH9z%/{)f-V10#}"xАP8}Q$b%wؿ}%=,ih~M;ȋ2Ώƕs/ȡsuXrOQu%䩞hvW=5Iq1 ӊ_ѿg<;<#?;*uwCTJvA_Z%E,2&06PHiI'(0aJ&T0IY3ʿPzNLJ[o]_׾W&t>Vkw50<A\hBX(>_"=^`DA=!Ɩ M"us<+8hO!:Ţ4Jl/nBʛY&<9EЯ \TfFޑM(Pi +\B|j5AZ騚J͑a#(N+\~"6 !V#Jr-⦹j<9Nz2.J& ͫrHS\رc[@??`[C#24w5ֹ/̘LIN$ miͪ8wX$,zި1WOܢA8' F#67&(頖RMpX-LU +66fpu/ 9c]Ŗre$z)j]{,cO 1:c_跿 @DwJlLʪwbKJCmc;KS8wz΃/K>Z^;,~8?==OŁ>pX?0qf+O"|1E0̉jf>ӈ8rg$5\2V9"A14J]qA%jDla1@1LJHTC(V(U UaYX 򲊰+JNY?Bȩ0j xm'(HqnBiK1T2a)!b\oZ3"G> jO'T4m RJbfp/ d9Ss2ҫU7냉L(5OLMcxS$pɴ qӌU9]Cw6H5x?cis\5&?H0FFĕ!dܐ ~h0Vnhg!/־pEӖlc2"<6fI0LJmzgnS" aNrcm[5Ġț&NZbe'Ȑ/F>=9Y\39qlK-mF.VVk'5{HMMcN:hJ#ӥN[~I?L?L@cKp~ +7%+[7%a }~L|drw |Ƣeh[f1uW򡶶 Sv *bܳt3ML)C@MR;x0"6+:!LVuU;8qۚmso]7ٹ]DGFƫ4p^Rٯ!Yy` NpS +TA;&!,7IH׶0L;0(b/kQWClsџMx.泼mwd Ӊ\^#W;f k,گuA6V Z[AE#+d No-7^P^ɞ.'-h+?jjH#&~pY +GwCe8x`W(cϥ0j)؀w:!ttA +==4}ozB.pixDyqKx"Qf<sa (>D xxvؑE4F U8 (D}r3ABIHӄ27͹PoڛR!6`[G76%ʸ;IeFkjkNvwƩ3BR;kXoDMCȎ8KzW1pxgUf]S$mH }9TMЮry3dy<`%|˧/XhR,+{Nbvn tC>nWw;}?Ny30v>=8Ml[MԁE~xUM򮳚 +Mkٷp;S ѐ?\J*clJ`1F3"4 oР1!r("a^ abdT(x0@Rp:q'CVqZ@^}U+*R2 xN91P[w2"cHpߡ3e&4T#l]q@ں%lI YFtj}Rx@*)5+wm|PԪ5B8Tc{aFJ'Vr=?i:6^zǝw%a5(}Jen+k*Є"5̶=\|љP^rTK)^T um{͞$E4*nVUK@[r­Gܭ]♡ +BVJ`RPM,m[YZTv ܖS fm;\J +ez $ŏלaP-8`=x]ә^%'ocf?6hݶm۶m۶9m۶m۶mZ{U3N_e>_{nš 0\1W@',~xJ8Z@FlȜ,& `..cl@4a܅( d;acv5Zc;#o +%iZd XrgcTg׍b6S^E8o7 ޛu#]^9>|pw11YsY d&,E3g쑡[ԃu3|waSwiб"!PF#q +Pr$8>9a^'&E+AuMjBؠ +[E  AlѪRT)x]aFFaoR]{s0ԴV`;{2Y +Dy,4n`OsLs$焞#"ɩZZ\ԗeJDDkiPsa+qhA]5(&z PN$e3to7լ4/&q`LUR]Չ\Ө?=_5`k$VEוAt_U8j:%V0wSo&o YSb\D +sgn.'j7[)Mφ8VYW2+/|_|blwSn/D+nEA +oH2D¢󢳃4,Yvp 3xdX'V%۫"35e8PCrM;2$_M/',E>1<5NP7m# 3)\u),3}刄O06ENĵyڐ dnR3)^dyU}_#jnBՅ|LPb͉(̱x~'4 +3J)9jp݇!nݓL"M6h ɖ[MFm䭍Gz8arv)kW|wtג]X:}(z" gqr!S8շK TrZAxY;']+|4lOwɌg釺!N! rk Cj #2;w4`>ƔRv`\[6E8|E#l.\xQrȌz6?1Q KhE+[G6I]# +!Ta~IUY"E;g_VW^͞uAAGAFpo \d!za +-T)4V6-(),me"8\+{4=.˔uٳsuR +vJ`)U%&ϱnw+;H %'u{L +P5 eۤz~۪ϗg1C7[O X'.}ʀ+ Ǜ`yaV]>L۬_KxPwoS> nmn6 JwHT8%NLK{Hj=!̉pFk1U˰_R ]/tƐ~J'M}M!\+Aady*A[ S'Tg҂/m} +,++Js&9bQV$5N5ueP +Zebuvyf~fEf\foM1)|k!U8u~:b0" `.gUpV<IXq4Yzѱ3%!lj ^6(TD#BXZ{X' )xɅ-9`@@I<5.K\lR%}Y%ْ)^Mx9>Ò/mtabw 3Fz2iw딸w4k7a*Q؆0OwX&uPZdgοvȘ=IJ% :7ik) Դn0j5.iݤn̺ԬǴ AjdU +oc0ֺ`t_x R֌w@D;BBe`VTڎbv3Dr@QDq +]ɻop.If L)c\ϱz@xF3j̉fW3Q>aZ&-Vf\UqP !m0tByU,76r_ԥjsN37Ir+{xN~-3=E`j%E0DsR<ͳ7X!W\L⤗LEQH≌ r1D>JW@/KGmLצ?Z^IyFz+)PTn\\4p[bA: !873`&$& Ə g +JcR.fSQ R .!j/m1I*byD&05YXH[_ r)] ^uy[ 6 ²x $6Bm[\G[681>A C U˪1:q}9thc!pu]x/mcɋ&ٜj1n3 oZQ^YS.(vXhԩ#IԱ+]L/=ITAe-c+nOV8 +p7P2=A,AG%f鸣XE.ABidG#Ƌe${aD{gQwP״7PzPi*Vч} g +o}bf3 +mw]F|.nR>ʤpi(ue}= {n$2+dTֹ 9=/rgBrVù7ZY\n'nf7ߏ~}+i`de9{b8B@xG5S%Y>K&%cb{TBMp$OZ[l>)F5+TN![n͝"'1$v`&=Qph¬ #P+{LcSZ: O)B1 IԠ!,aϪXp9̪%v҉1o(5dݡ2ƌBӂkzÑ:xcDp'Pb~Ӽtü_* +=)ˑAMk%?o%CNM`tJ`yc05>({Z:pXi1 ʈ=HBzh3zLn|]Y+UI1_zRDk^ei8ng#2"? i3 uJT; ş4; kG{e9 ʔ̵)ЫB%}e=*F 9{AJS7eϵOتbː`Ei0#ߑ Fm5svYY< &hÉ`Y{RB'1jLn@oFA]bxPRC@sᠹc Ze"Ma)H<ǥ-T( N00~#yaw6"  h钄No]^.~onLM,gͦ7O +"ԇ-w-;KFw[VY;g"}-g+:NaN7W?LߡP8kmakb/c!4W*5wiV#oJ_YE'0%$QĘ$n3Mp"!-^lVƮUvw٪y Tq~Z۩> +IJV>|~O.)Qp>Hb<(>fɞi4&n'B;1+rꎐ|MrxV7:l|5[h h&x#PB[fV9*a%*JcQb+ۥ( 4vS;]pFyU7P=F̭̊ENNLb31 +ݕI蘃Q4`g?*SM*XÌGQ3,PhWm& +y;!5?vmr"lnF)a@ә=yQHQ9kUL5)G:c<" P6;~'Rڃ ))kLw\2ioנ.|cHv=]TGʁ4wZ !8!,žX/t>{SP_/|bIMS,g0:E=5Rh7Kҝa/ҝQ0R!0{v L͌/?Rkk<`j6- +oLWu_\J28<V\1e>uXdX*s-a'l@: h&otnj+E@e0b8fgjumvKN[]=?1JZ$~`7}N=F T_ڻڟa\,^~Q kzJ}`PbA8Shsq6bg Fɝ=y1 ȸ$Ulgb~o;_,K^BrqPh;Y3f_koA4?"S@xgq!<@rH5EKkWaW?]aPJa%*G<~V4a]qw744Ifl +}/zx &L4DYE`{`LO1N(B`#daLGk.}?tRqZhOlct!>/sI2؊ +?2~kYJۦytOWCtxH{ ;tA56y!.!s蠢WyDXs Ɨ3lWi!u(c\v18Xͥf>; {>W9z_kEDE]F/&G4l]%ym؈=Ij#.ҬE!*>qI+]=ƾpk 71겨f?l$P?4ײ?N4[}'YOS`Y<+s̵~~4Iõj& +0 0XGS9Lt/;e1%<ŏsWgZ5k;{c MC ZzSa+ +,*V kE5d# [ +Wbyb/6d/ 2VtG<s F-mvZAeăhUbe6bf+^G1:1!{v>$7my.8j\Krwd폵;N],j>YãH!ĢWBsy\5@1&$ztI\'m"1rnb8Hðw-t y}"v4Se\®My&I-8o/!XF  8YPC;0LZ q5 +UTbbXܰPY<`ǖB Oc}0;O*VUpӴSw~綥pm?8hEҬl((}=;IJQȁ[w@ QB~rӭV6@FuQEܗlG|gqJv}4gH7fP i6osȃ`piI0O!.=2s.>-Hm.]Gx! Ro=]L۽T0jPy:OwFO%cӫ(^ /%mȨ [_"7 .-[ufl/3 Wk J. +K0'ւk4ʳJ~E얓捖gCKN;tENMY[NաV@Z +Y*J2Y7[uFYw]^0ȉsy֖+]Mhig~R>-,9ɒTWQJ̭m.E x,h;1n#Y/3wӞIrOghn8sW!qade%s6x}dj)<Ǿpf,Q5Z9%LTՎ0n`E-+Vk'9wssnM28m;;bΘ2 r(Ix'@.i,:>%0ѩr:F=CsWC%:ƕ"}ػ ]:<*ΫY ]Z¦7;tCail7>襧ͽp\AAx̐%ZOڕY[`I|ׯ=H7Щ&BSbta=#pddemz63J" fhXm4\,CX=ߌ!;+/5ϔC\% +vlev7a'Kh2}Ɋ +79۠V)Bܓ7D^]Tyʨ J%`U~v#txD 'ir-)kM612 c,-%|%J/zi0N=zB.FBs\zXW՛*7 9{(FKjBf~NN%HB(7&ZsӺn gY8PP oTvvlf)r ^_uφbgC܍d+^o _Gf1A!ddzg3ҁ;ig'+jM7:f={3ނ^oۮ>LRJz47ώE#@|6r_TGj]EdƮPT)mbu.EZO]aH|_Kfdr<t +0h -b` l=Wh#1)R겂r@)'+OVjjIjs1Rr2PќE9̬❫Fh yVZxO[lp7Ђ>h\4E,N2q wJՁ )^}#WtAd׈ +d [OB)9G?MG"ehz{˝sYw0.F[pv?RFxU0 KO%*Ж2VI:xFMK@YC#`Ԯ(kkw %w,0%_o>">Ě,Xkx$amn-ncEZ9&$ʕ-+vE_P\P'T\ŅaVA`(?W_Y[26Xav), + mcSD$6{3l׍\mD#\Cb7'ad9"b?oh*Jf2nyzo9l}~AGQ`l';ۍb|SePߋ 7Pp W.:Y4\Ā03Yړϲ{k-ą*5GB+Dt0bd _ Ǩ0BW2PiMoi m_Dzn5*nfj&0Լ.Ft #,Nd PE{(] aXZHub|fķY-m(6e]eA:DH5 +}FƛР^jj5llN5@Î*l.SyP;H_X.+5,[<qNHxBHu 3b8i#_E>(DdU (7GGW5T IQȖh٩S3/Hs3tْcevLr #Rej11}e/T0G?Eopi)njBSG"IVS8w8y>޺YXTs#tI!AAې⨆5{d@,x%aV!.uҸsm\)YHdYIm&Yv20Kp+Δoס +Eq^*X?-f./>m^VVnn.r6pm2.N.oȇ=:Fuu(uwN\(2'"}.؊Q e1NZh8pozx +(j=OHMsȄ161rqTSsp|B;60x\Fqaa2QZn/մ3F#f#ޞ2uķaY(LwFSAm?T)(SJ{`kΟwkOm[`^+C~7e2<19͗&BP4tftrW;-QNt_U m"ŏlwnҥ% Eݪi,?|9uxui-6Y{׽"7G % EZMWJ ]M +)ֳ`lyb6i6-d [} +6JO;o%z$>tψ@̨==5 +x(娉kaL'bkD{Jm1HqEx[j}(S#;uYP@_(+LT£{ފ)kw\˱OZeqd!IJ0o0!^Y +It}JpiD ~հP~uXn10k -Y TħFll,&R.״Q"@w0b5A6z9M$)¢PÊL 5iw5kCN>z&#_vcwCW|@dL*݆YĄC'zJg.hfJ5ab|$BIK29{y?bHO1ܤX(U^x_?8I: w4¬l- rc~#>+n/'QkU}>c_ r&Oi'ҷNK8c@i8.!"w)$4*B e/+-=*qWA0p-ﴏ~BDĈrW흗oעdON?@Cu|8k:mwAqi5rc.)V㜶ii.5hKFVD20yZ&kzu䈞eZL7VNB'+L@1JTt1iq8fD BKAcc5E +uxU>k d֒[vڹۙ\u_|A=V  ;ցhB2w1Lƚ4f|7 t^+*\KbS +r %אsx>̚\hHP8!}PPhhߐLӺQ%Ze7*Z~==r +^|;T i8s,T]`+L"`:ZW"t#Mɑq=e̬3F"Led>_5Fe/Je]vth"Fxup +ag"i Q!qw‰ pQh[GrPG9& AK8n Db5@j!g$uBWw0KbZl<[$@&7أq/-f M'>)ţm2Q8t)ZsId4z|stR9F jWo\k]&-6cuƻ.F*R+WM^rU)K?`H@nݒyN%{CcNpPB"NW2k*f'%T(,Cq !;[W;k)@լUP~do-aI3 2(@٘eNb!#U Nʫ!/iVz;ySg|oxnoy?r}ly|@ΤAӱ]1 * MhƵ HҠ0 fk|pFݽX:THcnZH1ҹ$:pf9ﲠfAXEHwp `PQ9`PT~*>oh:6`_m[_Y:SueD۩[)$e0 O_Q;A[2Q\{*AfM}] ,֊-NijCo.zX伒\)9M g8[0 fT.o$/GhEaިrNbϝ8񳶂FG:@\vfkJG?RE:Y|g#Ca%6 37O`v2"d@Jj"Sh2gkkt )hGb:@XRa3 E-rqz)"(Y<J7l?b4`7W#b[ ne”N)jiu 7Nۑ&#|N]ٺI'wBJ]xEWGݻHzcbSM_b)d<2!序)S(Uqi9LBUӰVtr鿆la,eL/#gdCS#Rd48PQcY x!AbZ$ el$M7-أYWdNVc@L@(ƾZ.Ԇ[Y sA ׃XpUSޮ1@#/kbscI.lƏ%p!v Q-h!J\j.}z!: %$w),Ò{^NEYt[sk)T-F6E*؞h(AlBN 6ؒR %/enyFGsxTFݬ@TBAu-4 y\狶&3yWRI +k2Uе}5nɐJ u;HΫto{SzF -mqALc*^hcYMyʌ`xM?{iL ;nn;r\!{(=\?K?nGp .n%qF} ,09≦=6UeUDiz)]kQxJsžDU.M9NH*6Ƌ-`&vi Z6NJrR Xlsj%g1ˡ{1v={{{oى66 鍧ޭ\~~? C>!a OQH{xѴcRΐRdGL@Z @Ր(ttFl[2!]i0n!=)b1ͤ'f$ͣ79m4GX,Rhl.k} j,i-l$Eg7,!AJlHAJ6vJrOSws$3a۪ta2rbPn|\EYJO:}n=DkGԚw8=ݬ&So"EX׸#FV/LHO ,CBXhi/5SoNUA$}ZKsI78oVj Zﯡ* Fk>;2U3-1r VqRqa):9)K :͸Jˏ%__F8 O9`DW'T@Qr++oPu"uv莹 /~ N938 +=TP2G]_Ÿ#P5$phemb)1 ˘2T 1=nW +]EÂ5J8ϹdLyXg*|i%wp2Բ\쩦Q˻&ܔp_M_ɤ[L"a^-vKtXM&Fy-CtCI$IK.YN)uq(!v~bB#nY3vOa^i2ǽ77lD #&&)C6l0J]I/2JT*LDZ `SdqcQV?FQЂNRPrE_i0?V2;qdn70'Bʧab5uY`s"($&ATi>dU=/6S J o +X)'_AFw% +J;&#.m~CHJA8wDwC8 Q80n8*[ !q[7_X|s-O*5EdFo&puҍݻysJߑa +l oԍL)B\=d.WnFgXg#Mf, я2wrLD;x){fR1dۘ3eC gI6?{f.w{Y|@MUϰ]?ѶV9gt + 1@LN3CNmFQ#xyR~+L`=teF'l,-ݐyBsc +qD +((5ۂjPǏh"bj]HpG@pò™Ub!igԣR ĸ\s4 +a1 NÙxlXYϋ`#SVӠxvbנQW*-mu+Oa%\T玩zQ&1냯Z, v'f!8us`)NG)Q1!P83A$ߌ1=(Xm [r8^h 6JCFX8-{ބVCuTVcΤ? >T0rAr? K)ܖ&5.nN$`5G߻j s "_i")\Z+9rCAً)FO=$% u' TD;iٓB8VOە*Rm [sH =˃#3ѳv*zM ZaZ +u11LspLdAqezd#N#JT@cUCH(A,5$*K,Br>YRfk| FO->xl򽜤*QZ,Eij$!? } t?!q0Gk6drhZvVp +BYO#Zvϴ4O&sZx X )Vz|AͻoDiWC7Қ~ƨ fQm1K^yJB{ |tf+0Cb] &H2'EكIGaj硍xp:'! p MP&N>mT6 -a*tGVΆ)E)ch e <d3>-vY|^K[(.6+z&d%eY p] lM\MI37ha Tu$,%4!_iw,%B;( +&Ƶ$maY6wN!"wp +V+ %)ٍ8Ide{Τ;ϰ~}PkE>ꎂtʼJET! P҇JK0T +=(H@tQee7Vtt25gmt,_EUOhg2hNk̏?cZѰxhP4Xp(Otr]p/޳d%mg])Wd'[x+X)_l=Bammfv晩;9Sw>ɰ95`o28aM6MJvԃEmN^=g;֙i">7Wd':zjS;ZDsDd)v.99u j["#+$٢݂ 3ʅ:.Hsɂ@ P9u# s#Th́tPT_r$ͩo:#E +[(7Jf}?.ZlrI/HBo}@B&M-YdX:_l$• )fiH (-#_rP*QwzDFGXߵ4 u?OL}^߻ Tm|3Q9v[q8j5RblT@yt8{օP >ATvG/6:B:86wCU[nje-CH3'yr1QHGv , QE33K(_5 ڮ /l.L\O.$1w إH7|\摬 I +פܮ6dfٮ2 8 j. {k$ WAv/잎`OTrZ 3;APk +f!w )DtVL⛿^;͌QNM4DbK 0~f$oo1׮5ɔcP:a$=ٶr4t Tw"a=3PE3\Lf'S_`01Fm88[ч#I#Fڢ#BWqy 0Zhq_">d[m>]-5pN$ٮg5J)< +1MJTQ]a%E8_ =ݳ +FqMѹc&-iՎzl+VXlh_`pvn UF#DLCgN+ю &׀۝ _bE>i\O>o/!*JP$GO=#[TZ|ؑIxFM8䆞jDy_ JЖxVӟe4EyXx5Z'*Q.{zG% z"g~t㘃=%jj'ibmFn鰠PvwoCξS|#oDws:_6CBX'/Yq|r`&_sS|d W茴f.PW&+Q˜P\'unD,/!;Y o|(7 wi:5n<i KJ6zgl0_ك`w١ǯOz0F0VClbvybAe! EcPiD6e[ Cq[-%q#RIKM?]+1db& +=Gi0dB8yܨ䃓GVd,K #Ő+",::Z}euT ,#ױ`*0kH,ˑN;+Z(_/a~}XKNLGRr ܆Aջ_iafJhj$4*ɮk'\ǚm0D/I=fr] YMկ`Q_$/kKuq%cZ^jO%Vu)"4-+zzs0qG@G 1X 8]tQBd!gb 1vbwN-:>12dFi8Bua5Y|1OPtJn*l~Qf!?` +aߗ6}TC;0(pRv\3`1QبJCK+rcSqj٥"j`y\i݀T'ɠ(``kXڊC{"Y*0l'+ju! 5W[i> &Kږ"+<߿Al=0!H{p BCC *R\!L܌2j݋&dcY׋N@r-+ufђ)WerG@X>}a0eQbhJ={E Mׁ98=3l~w% / ކ0E\b&D {Oe g[{hwTISV$Js2obeR "3b)FUbVԪbIଓ"2=ggV-;\'8w,ll;5 $wbIg.o`KpMWW#!Ec0R@s팲-oǣB\ka˄г-]t(Q <7Vs㾓 q{J䭷5w };꾆u9Y{ivgv!Írg d.?[ -oD/)#Om&>.,hE.a`'e1#t_QbGv6'uT[Y'c(1GI!A`~x){Π!%mAZF9|@$. .u%pk4ƌrϮoާ*нsv3Fx^g"%|0/x^ P>|X6,!Adf{{0*6}#e#U}a1Q1U!I'@0$\7dkl)1n +i8MכɮPnZ OV8Tu]s)WeK760R1V D-|m USnƼ萰\D .QCȢ =6hBN$MD(_U GEP \%&ȿ0WtaP;we;R\ʒ{n olۍ0:eK9;ܥY4ڔQ; q*+MʈxbD<ɐ3sZ[~ 1a*Ox<Ur72 Nve؉y⡕K)-d-`[9\jԴpVX Jx8@YXXCIIB.#˸  ܷG)-f4f=pJett}c^~)s* L/֓96g96{8% lX/]_k*R8-45Qc{ -,_#% @Vgr(e#Lue*iQ#\=rstvO.I؝|P%sP s']DKz{^rky *݌]v)-SW5jЗIrC NxQUiG!3y +[ms +;Zn. NShr32SʳB|t:S3EUL/tw[I_[U\=`ܪO,vP{@8t'!VXYmlaWaXP"$z'f\SA`2W@+Ds 2+iM'U'C XKg45ddÛ\eyvVodF ¨2ZKޔD>s2wdc/}hBC"S|ZˤR^_Uy(B֌ q&IP'D5Y|Al”G:/,$Ϊx'ugX!3hz +{'^M]t6ijp٥Cב=~ (=rߨ!w!vkzZoDoOtjQV‘Շ:Dru˪#|2Ri@RQ>xr&n@nLxhHl ML!K[B(6 EZ ͜[4KVúʊxO}gMn@|喖W; zz\?-?o7lg\'*E6"""mCQA!* +]آ#;S+Y7 ~τ<8$'6+]ΘzP~gkZcG{w|ĤHL8 5MRLj ب͐|:|e=YP 5yŦ.zFQ~uZ0XnyZz-W?#FxK(Va7NHI!5(z0T#гҲR}ɆvQr>zMrBi4^9Tj|Vn%GJG)vr00)s+x:) <+M% @i@T/R9B,R +Dž}ɶӟ-54M 9[<1]/Ԅ#wgꘘk{ 2>gO{w\E-/jS:Ch %?4]9KO JPXS`>1\5:Q]d JNB]U$#YTlҭ[6*u5DH'^h'N^F.,vUm:3a6ñx 7E-vh](Kh&5!BŁv lL1UZ{PTZ]Q$I;'J|kuͤLm`#_k6~[xrO٭O+UM&HsYay yg K^HkTr{_ڕDљi1j`yԳZ%9] DLv)pFvN5Fl&*%bBzDD,I˙񎟃(~9%$ 2lMlEȌEhZ`sTcCfvrXQIJ?  FßP9~>y :ZPegV{6L@0(~;\QȄ`$|`Fn6/qϛp=jgjeg 1~eڶ,Q=S0%/<6`N^^NՕbڕN~*ڝ,OƉԉCK.e@ŻLXɴE1E˔qgflf"/犃 󳡙fS&<"e@|>]N=.4`m"=bҍx]"2E;T jֺ :۵wV5%;*34t.GU5q̆jL}d곦A􆊾+8J%)iksRM<]mZ%; ؅#bD󃵅Y~gYA5M{s!qA+WK:LGw+ֳu)w}G?umlC<`ZJvPւۏQle6eʁŮ +>s_`||3Md(AGwxEhEiN;KUؙ%Ζ4Zl|1k6`|},- -IM9YL:snXcȹhqfBF#`{Ɏ[__`~ya| + >{7΄frzhD3WBSDOp~TKыz꠵ wH1)yCH]3~} ߹"tfQVO /8n#T-2ms u_ a*bK|.$*.)f?Cn}jIhC`w +aVd o[Vd13Nm6SVdm4GcLEzóM$:ݧoM ҫ@bm2x).dwKdw6mzDg"==4;PCD-.?Aj[}?I_운YS󭓮28u율BRi8R&mlgN#0i D,N1 $P&XekK#^l@Xp^SqXDЉ%jo8=)+ IDn 7y|8xHw~VHUՕ+NCɕ(~`kg=e&A+nKGJL^ F*oJkg#iʘSVx$l_VgqoYK]<.$ 6G,dLSJz;=A}M5ɣh@Ci0Sep*#1fd`ɵ.p,wq"V6/3*OvTV$yRQ-뻺 s@1%ukvʸ.MuARuw&jw.P}&PC(0`-iZo-ah 14](8 G+YYG7og.޻pwBDP|#r_ʆ@,Op\">V\^e=ɅB;-{‹7FܰܶsՑ\+jV '#ttuD-۴i8T1RƾM}@e*G„ܜ +~%',yj +;*nX_5HGWQaS.A`@f׌mDž9|־IIVW3݃ǏնLe8LR.Bl%<Z5^l-l ;bK (Z4GJ0U7gP4Nh[92;40ܜ3|:w#62h+rcv% L]NWMi~nyox^iB3|8B X`xܛxsf~g8>gꢆⷓDz 1.D'LDVlJ=<>VG Vk=& U(βG6$J6<Þ RT ˺&l}S^)J))) Łԕs[Ve:馷Ud@|67lIޞnv @S4I5pP0)u!^GPHTITjXl>'nƊ+BTD)eX{sԣ|Y€bGc +,,)XoMZ("x5YO/B.^4 's~WAﳯT˘I>RdzJw+}H4YL +I6;lҟR2%:Fî2|-\t`GLbM{Z~!6@,TcvP +kg4ElMS>]hVvbMc 9jzb;H9]֩DY,\ tqRa"8kFtXpA^({߻vAeɭ^ +U=G^)33' 5 Aqfa *ŭӵ>sњ^* -SdQ!"lT7९WpCM<#N̙@އ7_i}H9&w]Y6o" +b mEZll|wi-RMhS PQ1SX77 @yWր8_<%v,!@=}pF焋H x$+*|V |DQcPx[!8݀ B6Loהpϕ`ߧ,b_$k<'8 GcN +I'Sg;y0Tm[:=DQk x٭!cgkU|ŀ{>tDE&{ds3ɴlGN-QK8rCS`r"y}Ea4#r2'$u΅\ɂ!=| -'|^;(L[u/CTbv܌P33/ygGO;jck7LE0Sxigc~냻oMwkFY70n3R7C"=3pso^C;nw`<y>̻s[p?w6k//F/ftl ra$rdQ'o0VaZ[m9]!!=X{| +9=z 2>!\2lnn_8Q;Fm^ w%> fQ>(h3M̒T3`\Ws&5+gU&}~ָIV@6q%%=~ Kل" +”&nNxؖ_O׬[mדca-;l.&7ӗ_m_4~`g#a_Ao %FQi& W# 4th%Pj]*Ń,<և)\\6Q;@h8;A;F}BX 4$ +g&Y*VQ%#Kݘ3 ( Q&˝ 屨 +0N?LU06̹ UA%/L%dRf=-g=EG'ҚC)G Dk'S]El #>0A) 0OY \ZRg>j䨗,s? N}&bZ"X~4+Ωś% Ѽ؋ ]SH ٦n:T>Վ]eEDnyD&jB|?N#coa}'@}tDrfPVX[kM{҈JH%3D6JJf\+E# RR$R A +aghfp{j#Tg(1qkc:n(0tUfQѐB 5Jjjb"u@wP7ߚjSD@B&w &hoRݠ{ހΒd9eFB͚bɚ3AXyoP L(sߘ~!-.VSm-m۶m۶m۶m۶mtfp]u0xl=zs 3iX6,>|gȰ֌RJ8JQ_Ri9}Jk*)eJTʻRtq3'1=ϔ.[Q BseV/˫Xe|=/tUѥCDU[ɉTI;!"S2]au*{6P&^[Swf84|atU~ڭΦU>WJc1InFZ7l2:|bvB%YB5, +*) 7!yx“s,Xp{[aXSraX:aP{Ah6gŚy/s@eN1#R8sA=l{ZNwKԛuNQ8 +􂶀묧yoEdNźL(>vXWn?6p=<+ݛ12E` :>cO('Oߟ6#➘[t1dTUU "DRG+x]g ![![!]!]/(Mͪ2ږ8EAp 1>yu w,mjb| +0?;ͻ=_q:^#yA-d!08o##ksaAv c:Oy.p]޸r$`~d^~Aӄg#X]q)I;H0ࢍ8tS 3aT5٤J>ɆFaüdJzi-v"saضSҦ2lO <3)SgUCyh6J1 k$L!67<;[FQX3dKD0stb(ɵ-u-X;M)9?6"j2(s\T|=˦ǻdL|kjRV/@fA.J/pӢݢWU=z잵t n_gd8e5L#(X*]&xY0obW5c7|u"rЦRi'{[tU`4\Ut1cEbG_YY,X\ W,򣍶Q \*^qix-vIp30pE, Q3=^m$sh\ rqҍ7܎vLpUl e ),:Q*M+jTDDG'&ĝ.wQ4_l&7A .qnlIz^w}^?sx~@ +P&YdmoȈۨ 38xFS:NrhgOrQa_c[սW'8C+̪Nm#\;RG%Y:[1Bً4LV*2-5氤wLC5i18\";/3t4 gg%9S2kҚ[MnS|*E3PWVgm.}Lo/]-"~ո1JޙO| !P;lJm)b*kuh\FH$xLa %J:2AخU.uV+}dz=<~ Hg1=CڙBM<}bbJQCãIE䐫#YX+^2Ey:K[BbɃP5WMn5Kt|:QB^͡Wbu[Kۃ2/\ꇧ;VY(ԝs"-jM͟T,Vu>vuw8QgŮMeܰ|VejC:BPuM٢H~ug)-%s}'#$:NGhiuZ>9HGygk["_'KVSV5q!넍uUR]zqRєT6'}լ/V~^?\`nQ]ۢBjՈ?B5̌|#e?g(efF}p)${U~=﫣G`H?܄7 !ڄ ݊EȄr$`WmI'LZ?oz[pjTmLy&;m^1 ]p[ș5!rw' h&k(^{.?8KJ^? lGN.9+/5 rQb +Э a ,2kI4~+6;Ϳ6'r?uKj|(f%%,o3^s AC/ӣáO JE>9k)!fko(2`A5'ԡB)[h^XLWoaԺ;/ul,}n){ZD,Kl6EDS wrvs:ysU;7(f.Vw|f\.< J—qv(fH3I@;*YgqtOd |e<$[yU(L4Zx/kԒ-ʗfi½Z;뗬N/[ϵǐ="vs( ȫڸu:VnZߍh1NlTH'k[p2n>쎿8706q"oc,=>N^3ʦ+o@c;? J\ dٱSۄG>2b,|܉x"GV}I$8q8x0wHFPmJD<11p+c!N 0)x5bfM)' ћkqƇJ.RbYt/'y)fN^-a!*yRӉq3^Dy+ꮒ3o ++s5Dzj} uoΖ7drZ,\ oӉgM-֧JJ~y:-Q7MV%t)h`A:ޭѫ'98bԯوaK 2Elx+&+$=3j\{«Qb5+RbNL eZhRp&20[kݷr#k ]Qa:ӮpY\98 +`e; +`st'- -ML!]s<9-% ,[gmk)v%2;^җ'ulJne;lY 4/^"%Kև\3= oG}KQcHn^z@ET[^YLAU 4*.LnxƈW';Uͮc߾}7U@ɘ]:U)8mi"6mڧΤh24Q+$d_ i)WMLL"xMGŭuʳ˰2-G͘=9i b"ugԀ̐TBlxձR@eg$}6ְcZ~5*6U:~̻ƞk?$;t mhUuh=_-"?rH0^)'k\`3p4тBP^zpFVfIt 'fA X-]U8KΥ ֑.O|5{fZGno7kyN@{A^@! qL&&H'  ލ~ogI3*ѐԊ~@QxኡlQ[!n1A.to4'ԼXn2/aDߣk&ԾxE?Zʆ33$"Nb}$Kk"k蜸mc eNqX;uc4rb}|9!q}^=?˵ʫ L߳p|4Fh}s~LQ2#PG,cÈzEyH5܆#a82c'Pث@ rES>!D;D4\]]\.yexԡ̜ZGi^n&Īr@VAoSN*6t= + V[z+Ɯ#|:IBRpJu I"YΨ;"(E{~M!dxb7EdjtZjB|$7a6 vP w DGon;[W@[$^F3%D[ f"o= r?o=vXnnQ*]HkzF_ +?rxsb޳\+{3F`G6eH?Er5̢/aNMl ]NQ]o@oڞ W/qNݞ eJoHJQt]k}BD0LW/W;\N^Se{ޤzHo҃M4zrKa/3M_\sQq!q\)CbHA=8v 5j-EMgNT}1v;_lCAc^;?*/vFmв=N7NjȥYUo{ܱIzD.^2 [yZk@ˠ|W奓ZyUm~5|ITQ"nlPrqxy"V";]9G\I3LW GiPfou*_e-(ډ3gcaAET%qXj̰ڿ(xCc$_FwbXb쇴gXK~I53gT5C"}LُS6:}lZ"wkvX&I}Ӣr!U; `T8@/| p.G$JNR<D0?xAv7 VXSZ+68Oz0F%}LR/GyV-<)O ho]SH`iAɡ`? `HA222 NEŭȡQρ]|l$Ukj +kjjlKVvVW]ѪT?7_z»_Nϼ~g_B|׏GpaqۆTG{o}Z4B[y9j}Zr[߄Ui3X5Ec:0A%J&m|,w}5 ۬8gNǻG [77ݪ?ݪYS9 k +__՟C2':77(7_;O޹7*<|sIF8TF$f|jkb0ZjljGurjGz'si3,({f"NvH} +jm*%dML2.{0iw\-j&gl\;:fk~z%tךۛ +PAH{Qh`RCiB+e–5%Zzh-|־Q\}61Zs\=7iKsvjJݙ.Zt8.Xmwѝjw7+mh3ش$=d]`H21VW{AVfo>z' 拭 #2ĊQVc ܋XOKKѰ9. i3Ѣ1@L7YcJKsT!es}5\>Rq޶e5@ƻy0TxۇnJ,&V$@r>±pKblb0K-PSw`d-}=hD0M#AcrH02Ɯ.rIg.un0QciY4k`ZvbVt.QaBz{L͜)501e +L}qf5:vrrN2[J0Z-P_痢VʇG6v`!>W> Ja2jK#kN3z#|tE?@]r 6dЁ JՈEp<_,ѹ" Y;t*QNu@Sy Ϸ~fWه@* $=Q1WVIhgi8[D_c  Q*Ll6cՋ1hn|B~Z6)YdMvJܴxcKB,9Zڰ[:֤A6ӑK[ZbLۣ/RٙD e(g]z`0.a-(C.O&6sRâH.J̌pGZW |8cwh[ /<eD1gAJ0Vcu}BSFE`-/0¦k_Bܨӛ^\3EI89D[ ra# 0`*UKjT[Y-cs3ĥw0 zb;sſkK?^ 83 p EbH͞Lu< Rh5 @CXz8NA܏j5<8!K] Y$:hcz Ndj>j 3ſ"(Ϯ_*!o~Z78i<^۰(gJ %!ts&=ZEc'$UrBtvdM +ؐ$"hSm?$2$dUa,A`zaF“-pPRWTf+y֥Lw]|V@KB`kB1}޷U3&O&-ʭe$B!^VPm3 +@[;;ڏy֣Hzt'vﶬOn0ɽ.g1=6eߙNmh1-و9/Ew̘WjQ;Gy7/]m/oxor O"NW"\ +Bכ`ʣ`eVE$SI+3ԯp>݁`Wp2g8.3btMT:m-9(居^c , +S,"'hjL\mڞ2R 4A`]=TcY:<:*@mP?+'~[YCql&MJ $++˷I= 0b bN$i= Th#m|Eem'-?O , o@b{A{'ZdIQCTThVX!J:.`o#= b;NBq.ab +XO4;"1l` &SG*IlƖ<+f7 +wֺ Yk_{Ȧ7V|L\y]F5וq<)hw5uCIқ\Ց`Eᰚ`/ iwj-)]ZI׃V-(uN3eEZQ CcTj V)`k9lh2ckcU27ۍ2VVxdM͓|d4/2"~ Jݥ+/z]4 };URuKw%Wl{;_{nq\Q.]z |$Tl鼫qEC0mΓD-n΋25 s(f B" NtRP2̂"Ι"PӋv.T+KeI#,~ߜI\Y J2P wN2 +Ͳ$( eNR` ɵ?\e2n.S^@ʝKM@*"eJe<4k4dӿ1Y</W&FA^C Z;]Wp{3] +25I+At׋(C(OƜ%ֳW;i%Zæ{3+IYDӒg[t,,53'-ETYofLq0c*hI KC\DBm1֏m¢vnQWX,jZe3++1gjx/XGNnp7 ڪj UAYh4*#lLTZĮMC) Ӌ;\"jN5X UsCS;;2%7Zoǚ z+J9)GgrX+[CU7AMD `5epfo u R,bO@(„,B^qܸ'v%C☟LJH(b\= 5G2;#+w̱K '<_ŗ54 !A.ذ/ft1#ɨW z4F륊Gޏp61^Y\Gķ9+10<8iGUvUrtaypGɗ.Zi{76: ;*l7cJN|,oӉ |;&{|VH +A06ݬ :BDΙ ,.:ēj+ 't1#ѻq4@1+]BcIG D}-eb0q} fl<{nOen}2UcB1gz6^=mnX8\n_c4~z]:Bds-d}^b;\oj-Kx$i`a% Q9bgqQSe:FPC2"ilmGѯ tE R%xg ; R ߪ@:pRղb^ZԣP7|ͨ&rnzTUE Cfe`8H: _S4FmIgL% g4YɬQiqB }0sAP-aC]jw[5)~-F!o[Rzd^&\ihM= O|4vkb[gOB翦V7#sf̝,)9SL9.t!LyJxL03H#uΡ)M"[v$bUWG )fb WM"1cLau9 қSVoBL;a- YCSid{Fbb..,rt'X\euB//:$%tlGxuixj:Z}j|j:und3ՈڻڳrXe7YupK`|Tsws{5Jhy(,9/6,>+j:+FGOCQK$v ZK Z@ 'ePY$M~Oh\I}Źx7U:'$Nڇ/ +.#QΗ\G7U!WZ7>LtQȗQ7XwKq&ZKqxa:#[އv)^xazЙKs~%O`- 7_#-wrxwސIN'6~O*GV|(h%H*H=9񕝘[z Fڤ@@s A4L"+s%g:%VS5Ic3DY(FXڵ/^RciPFMͭS1[uBAŖ$YMu2RQntEZi֨6ʲdmi0i,.sSƷ%M +LNŦ._VRszy~J.T8/}NA֙N3lDBзgan@^Ǿ`1 0 ,\af`OWtdv,p[\Ȫ]RZ] 9ЩpܵX`|w(]OZJӐ/2ߡ%62OjOR|Fsj|r;_Rs^2Ƹ!/#sE܅f$ѐ!pK8]ɣ_Q_QEOIM\*XTu.b-Y"M:WgUG6juHZ CDrc;罠=UBPVX¬ 9t[憆Lt +sx2Ȓ( .ZJ҄BJ"W6*}RmNF)oRRY4M[%o-]`)5AjV|&qwtHjgSܫwsc]uUrVIo!CHKN_3.|[;8 6:"z I 9jeZj9^) O:,|Ff˝'KkO6c?,eC.#Pﴙ˒lڣC?Pо2OJלT׮'r.飐a6 "D1Gzۧ\_<r%0pXeWywiD{&;] g&7<'u; ,$|0 .f':L-3YIԙ^/ Q_^~u9?RR/j(#m6h;?8zjO}U%?앷Sr~MwQO-@'$ +/)9Rzv0ךq6a#T玚Jztg ]G^¢6.s `^=5( jp",ԭ0!Uu2GF&|`+|pǥh~KT1/Ak5WO l +Xp2-U-8 G_o%jO\ 'xFn.)Eq97%J xbƉoh=X,K ZH)Ba Y~$y}O -B/T"!&أ#߉*A`OG7g,uޱ $yWMXȋS@(""M\nĪ,Q!^_x> ]NO,=e:D<;:ԼB + 졹QLo7\.C՘[$ #݇˕Iy M/9~gr%W]'j% +VCΘ^5 z=G7M{^e3ȑ(M"ly,H݃E%*)kE !qnksԨh!Q:\xh"m, A82IXͽGJaA2-9%|61uNuHB̧fXNOV<_֕ܢg0o˂e?IOSQ$l=rKel~pgUϠz4&u>,ib{aZ\"߅9%ق=H Jc=e!tD@ImUUJ>پڃgq tD?TiU%z&=VWʐ72͎#XM>%]DvO}y\Wa$g1hkgNJmݸ|(IT3րnVw&l|& 1B*og&+5B~Xb,طf<cntv9gr57dǥ\8')11W}jsYRoF돸wY֍^z!/pfN`TPP$f +L;8~F/g{. O'o]XJ^OoɫwsH|n8tFA|CRo⇎r-xso87cUOz95]A &AU{ړ@9V\ 2c,;W_?A=Ǫ}ڝ@3*c̽okp/W]RC9q YsWj1okr2[_tZ]PWoǒX͚\ bn|\ǑԿ(wZ)*%e v/ŕC71QfGZX+rJ_X}ʁhmV;/ k6wʡiM>G~>2i~6 yŠڔS:)EPs<9RyyR֖mG`Rm=IPC$)|p;٭7+iđ?Y8m70.N4KN\T~C$(,ÄCe84Hx@CƑO#X+F0bIt.FG\$MTi)5YYTbg:)P;Ri+#ih/ʌ`!COb[(mG 4 EuB;P6oOɓrj&OQ +r3 2g`6)tJp-ٮRVCjM-2L[[ġ'u(\NYK4#}~1֒_+ASt m; v)JԒ rv?ٮ)p/؂lcBg Ԩ!: #-mG1%gB!;:ڗ%YUNLUٳ1|vS0AjSÍZ?ͽ4*C&ȤCky#B +8))zrO"dJȍž[AYyK:6`v^BO&IMq$0eW2Tq%6[7#]/˨|7_tw}#'kF +E0.GȢ̪Sʴ2r8NmT: eSEw ·s Ddg{mc1`I;[Rr[TRYx^y`=TZ\*eL.U2XISxf Y};|IjJj@_ xX/lP?Od>Jr{{{,ʧCzP@9.0޽#䖷9TaZV IPƿT2[G}y jn91Ɵ;(Q&vCPY+ĔWRq$SiAT]RE2[g 1 ۱/sp龞t[BzջqJgqN7 +d%sHPg'ejJ/\[f3Vc;%k;u g>߫ߩ`*pPU#I\M|1.= KG;"xMwrp|Ȱ;LьxZ?~uwmgaAL?]2F I7tǸD_0^A8-BsK1ŴF+i a()vkm}zv AvnӰ=/0N2a>00T!0}C ^R;0y2*<|t+z N +]l |+@m$ZKvQv6륿p5}Ruu4>FtǓ^y YvCq> J.N1Rb\r.dD~2ow{ /7Qsq 5NcxgyI:׺s$`BCNtphU])aGoT҇VZn߀"_Wo)wE17E% }xWްF rH =<@ +?9ƘY%y5߰ŏZCK/ 쿚)_;TDMU tTF5GS@P'GL)pUB}]U=GD_5n*Șp}ʙxz@b͗yB/@&A @O!8 GĕD7*`3(fC|53jUlnm"a.Éf?"HDYYtSk(,MPIvբmQ;øBxaZS:wUYű_51Eñ+ gˆ-z;W2#݀,b:n_9"Ap{J?0eD-%:]87CCGD W+0.v`P8"((8\= eIo 0D=DВ3uZw쪫3c{)U'}!Mqu '4a&{@Rq G_ԩ'n@(\ꝯoؔY{ swnHXLi奜T~ڞSy=|@٠:d6mIǸz_an(#L%@aY%2*EE(t`1x f,yH? #o>l[e^hF/9udm*pHW"y>PUhs4^|93}K[X`ҥ`sNXMhū'6gW#XQ@Olr؇1|^<|CI?@!x) +ÅX7ǥ *(]$wP}"S xߗ#HY?2OTuο˯M"A/ MDL:abjkogFVN㨚˨(YflNOooGWo)3ǿ |Ϭܾj1! N W0XlSc+Zcd`L# F3%8K]\'h KzkPW@nQ꠫l*j(T4)tX*+ HIZAvj QpQIKm[̵@Q1ū1jɪX $N53ղVp u5~8m,0 t*В׹(PQ%X/IδYG-v ^,tIU@,=]jld %ˤZS([ +U X&僿+X.7㠏~ g3 C9^/L!NK؅QJ㦿&g5u@IgU1;+UVrvvYRIgGGhLgUw٩Fxx + +KS[w\FdM5<7R:x=Ro8p>!{LYm^$n'TWF˼g9u9ZÃwΕRhi|yHfp,9 UL5H]euMIބڿRQC YV.H!ڞfe&LnѶ&za#yw=A sYy#86 +Ij%Ld6 %rRX'ڃWo{̶NXS|g{-`_%ozDN|A2k^ܦux$Gj_H(뙘-N=J<*Sbʞ)Әe*R@Nbb.WsZA +;{'zhٔk)sCI\y?/ʺQoņSKGEb&[sD35NPLoދ|>sw}^z )}1:ɊL͞WGT%]{4O^4w7ba˜ G惾!&˜ciiH0 KPk{DI(SD%\ c~J&3sRZ۸U]l#z)-Y=Ti/v( + +t0RnG1?I(!)0ƏDDMi)$$$(2.짮>);_~ +"pry)#j!tHCmpzBa$\a|qBRm4?Vӌo `*O*1uOt:R`m,^\Y!u,v25tjN)\%OZ_8i^b0&Z,Q7?uYXE;JdUVJ"jQMJvc sZEUQi+ q2hBPZg\+ɼٓ ,w *6"3[ri3BYPÄp +8RbxT"T9 QQǍ'Ì`3 0(3S ]Z +(Д& Ǒ:l3emiF0,_ӱˑS'MYeɑF [1)r''C? -xc$pO[/v gy vgPfYĞ䂔l:!N2u Ή/i!?**SE\.57%]v?/#a΋U8jdf.@0}Ě;~@Zųo?~ !w0hv.p3mpL^ba]Cx1AGOĉ rH!nI-WpVt?<|aֺrVc,]@{_DN@Mg n}G}M=05H!1n/%-H6H(ĺ +̥A6.`bSY"Ei})Sc ﵹ[z7shʰ= ̈;,4-?)ᕬgȞD#F'7]~eA:G:ĘzAJGL'.!JWJuW1F=Mp fb=එ' 9q$:%;uӯ'#Wbdq]|*ެŢߟsI"҆:RSbQ-㏨*I\$zCac)_b9=Af a5I*i~كl^@QŻXZ$(0gm >xl66tl f\ސlu?M=1xP'Zj|M\o U|_q,;В˴rySjyB&:OȇŹAêT!SjVû _#2sfk~e( ЦϸJF le)HID=F ˮ+NtDt\PE*o)5gfҒHaςlL*QIFQh SkiCtmCÆ@ <zjr{Z|,<;(a> hhPr˱A1'_{=fHH +yR,$NB`D)iF#q`C?i3pNҏ꧆z +>qR9K㦡t󅮯`q!ZI"لP( BL"P!6bdߔ&xuKKn_3!W8YaZswR4̈ؖ4ѿoDNmXȖ{.q74`$h4] [fUv0T@e^c xD"%jDź7%u(*]\-"˲C$1}TMv'8o5vcͼ + +^T͐/oؘX<0%Qų`( 6"֊H]9]5HIPmKJ(~~z{]+ x-='v!?7- 8 +3-wf dvXJO *l|ҡ&nJE}n*4lb }dZ[GV_*83׵.@dXH#̠M"-(D*p&E2g"hGVbt{xxB37-CrPV2BWpD7ɮ]N[E[qߴ-0p&xxagTbze"_(2)p*Hx<'“JʴgʷWW8} +Ċ.uV{:})ݲbdiۀċ:ұuͥ`zV@Ł!3Zٔ ܌Lc?ta;BOCN=V,:6O# +G'.!e[k7CR m !k!.ˎ= +w<#g0^ml+|=A&mJ6P/6Hu@D}& + y|>5{"Wէ)/=-z4f+IE^lZ<pXU~%I:F|·Stv)`_nHe!7bbJm< iǃ Huj'=ׄ\\˲عi~Trj; 6ԕI #4$7uҰKIjE\f]句;78<[`efN Z?UX:ݿ&b?o+wx n/lc5liU1۪tiȹJʹv+T͹H6hҹnկr;b\əjyʙ|IkKH5 ?2#uÅ1ewJz9#b.˦Jց/t4eo !#*#%}#p"qM;ՎE@|qqQrG;x-ozc:PYZ8,,K;(V.?"kKpG.!ʨM MbK,^kQsBƬs)w˦E ))15QmٶY@6|H;Bp p6. a9:8=fxx!\D7!a3alp1/H0l<^MB(B&UAZy{'zDju͝5nլk6p~ɥsyB=K8S\!@=+ӁsyC@eE#{r bXqMm*n3d@ .L]n#ƢBT!?;39:3'B0249’#05,]%9DLk2 6NMo)hl`#Hntvl懾?P&/_^]C*&yjKN* + *!0\'p }^\N=9K`˸K# Ētvh/ۙsbE@̤+yNhR.Y@0Әgl" B#z-kGnyhc쨫e@hP{l1ˊd:>ԹM# =\mK?<@56M=}gϬ6!X 6U<V0.0>?cxkOm_v+`wsk 6;8z^*tYZo~*6! o%Ы} +Ξ~/&׆,ȿ¨',M1Ueu8i*hi7CE`Tqʄ +b + 6=LsS>ǽHz$#pҺЖ;qӐ>Ae4ֹ_`!2{obf+c~3%Stzިһ.M̔U V-U +G +=]9+Um繒X4*S}1=y%Hb;~M`7Z+"P--Qbؙ, +4F8S*t>s'1E'"O(3~FzRyu$rJ(/u2O|_jZrRf:Vڊien%l;NJʃU tVR]ٸiis Dn=pac?LxAYNQVy8:H9KӪ{xE{PBtIUF{niibp@P,MH)i/ST7}g¾wU m:7iwT=*YCzxYUEMc>ۛـӞ͏u=G_i{%j/񂩫x V-ju0F΀UvWw5m!i[2F}SuM}Nz\,öD?;Զ3ti'|ƨ=&䬾rކ9U5E|#3RlFV6lmҩRr'Yɋq]tK+n3ʓ{vo<5S 5!ؐx0~m!~B/azkY[ 5呾B2;o^b6`C9OPzg%$ +Q5 Rt^p $Q+jB5Sk^VV tut_vYOR mU n;d9S]rQ\3/U!i*-:`tExjGd)<[P{lm¶M$-al;8#C tCA+#P4sި;t˃  $> Ng0Fh^rdQ+l76 {V$tTv0EHbS!$PŨU`E|8 ?MI|0'\Hc}Һv3$Oy_ԇ\nLdfpK +#:}F9zA,v& f#s:rMV%)73w[0oƂEk{'dszVkèlvo`(is+oҝ,?ӛwA! ]PQgJd~nqEΐ0Z̆jS1oZn3ŏUP+ܾv|@/cEמC[cﳋ*fK*bTQ|}XgD Fh/R^S}.<atZ +7ͭ GqZG1M:L=\c;]EICy +ΔtQuO+<*u9KՆRWZIص v1Q)(Bqw +׹%=iV+h/mhćd؍[$^WScg mf_ +d[TFػ{Q1jčFz+{r($ N-` +ʜPppayFļM7i t̓ĵrҔZX nJk+-Qegsŝ\WɄ`anb#KiBU0v iHx%SN,Un7L$1&3!c8;m&ÄD˾{eJ7^ÂwI_,W{İ⥓}UǞUmk' k!>&y4J#fL˵DS9yTi%+#Y2rB6y< 1IE3? + Ё Ƒ, /:? +s5J=v?dI ^1Do!>#:dBuMȯ1qER${ Ӝ[f0_ 8'RP-;`WZ9+|O5Nzzz +z +:ѼO5әT]%%eK+w"e+WaHlX"z #IW/wfwXݰ:azMؘ]1:>tݺ]M6)1z,F?oM90XOmʪp_ۿ#"3@ļ&ڞYs4$a1GHx*gpxcV?J՘}g`v4Pgʄ{=mZ[gXt%O>O ڏݩ-H5}(O_>3;BdMbMK/{h=[[)XJ(﯆C7i/WVR$%HZ\J8: %-z%Fc㘩a*J+3?q7BT)cKc*mcUcfc)H4l:FU{6U*jMŶEbbbbb'NVI"Mx*=MEԃql>yM!w MutJ,$#>#!SS%C>6EcZS/dHy2UIy.ɜ#cPIvcQg$[ȣZv/$]95Vyx]9[ɏȣB$Adc1JW 5NN_ EaCJ!& & &;!& !t˒jHYcn$~.XK7FނCBl & &E0\Я3^k^2Bz sN"]\Ey)1:-mҭкVGFL~ƑiV) ߄2@ja|iGoȠ3A}06v%78 jQwAm3^a?d^9[*"HǾ#x/>R.^"]s$v* "^ߍ_/ rj%n2-W\4"RdN?.N#$ހM£Jܑmd{rbTC |aa*6z9E1? ̓}[P3'\D.Rs"8xz/ձU[CmTiq7ȅzn=m +tvDJ!E 7h_^4oYJAWqr+9\%9ކL.ױz9+G>be+EwLҐG뷺G2)?+¥/uheB}Z&.ɀ7GySaȣLZl1iaִ7n?u xsG=ut̄-,iL{{5orC+KbXku*Mpu'57ַ"s0:py +o*m Win_z ~ۻԍ?>|T!\3\ +Eeַ|̷M ϭ#c#ݿ7P,׌o5Zz1BfuSamޛV(`r@ʤÂaU3.4tTYŵEÊJSaQF}ws䫢ޢ466g[u5$U6['D_5KXǸKcuz;2E$at8ʱ{)Yv_eaRKΛ2 ?8ɔD;80g`Cb64ʛTR\Ĺw?gØ,S=ʈie5[?<y58wrdiƹmeW4sbeq iCۣt) ~JH42fNC5Yr(/{qjԞ[=w U(G3Ϧ|#pl{Qe>y=Қy> Dp!O7R*0`6*0D{)1! 6%0z{J>y<);%x4y(4BlqW*.CJ}FO8%6?w{AG| -#?Z[@;f͢RѓKb6{ӖYԊ&j˯όzK[Bx%*$xz̹:&$U]Knٚ2d#5 cݽIC^IQh +3J9Pdʻc9l%U@6eV:ku?pN=aqntɴ`ѷ)ܓQcݹqفYqpdz0~G0mq/F,#l6mAve2#ϗql 8ߚX.{Sn~YXA +Q߻Թz*YxrqKN@RQ+G/pYZ[&Cg܁3ICn#%%DY0އ"HZr}h{i5?\rhۦmmH JuMҩ-`4jZY6- l9/!P>ijvMDgt`JEs+krٝ]X#$udFk$hnWudCP`r\/ gTG5璦uv+(;i4 _/Ѭl*̀ N3Vc",dTLagkNcDP]11J7 +7}WT-c!7(?s+asn)X>R]u ߚsj1'!YYh_HS?p`G?>}{xBوG+[1y_DR2]0~qi;^>t?g$imX{*)HHC]EUE]CUM-ŐR@mR}.e~);dŬk&\f?w<6gri;W1FWkskHC +9_s9,Lm(IsL,^t|E1`8MjrrR!YDYҟIqT4&s̯rk’7ԊvN2Lm&~ՀA7ȱϨؙAwv7'p}9P]WcܭyKajI,V$;ʨFw؆tfK/xзR9 ri HМ0?%sl>ًAJ( ʎ^?Mk {G%]Vꎟb̋Ki˟OfWAybߐ/3 ͦ3MZ+SnT˚PݘPR(EMƬS(ҕU :ԭdXEFRTAVZKn \o `L3ֹІ{_zGsf͓~3UW%CF%.NÃM_M?M~MM_ݦMm +o/v)zidk6:Ո,mܔ&Vo,ѷpR/l4fv4s +Ip,P6QzOveN +%5@nx֑$iV+RۉGhRRW V'p[J7)Z[,1#4<uk11tVߵInvM˽ EWeO׶3F?u2u}u}.p_[ ~K^הkHɀМ L#jcBX]/XZ>&ו r|Ҡ=&սa; q Ҡ@oUŒ.¼\i܉XQ/tW)V-W΂Uw..2z7Ԇ;5ˑOnÛM1Ϊ+SnU޲sUwUWU7m:vHU UeeTxl L@K6)ܐO9TS vghG+5ŰWοw/~B5ްbgM6M%xucRM\VVՐV7jf[fff`>j5NM9ff/Xu!7 FD 2X212.h_uv5ӯ!U1,6 waGIeҽ.|w4vR2σ1J0Sईf;_]n]z}B|hTFŎuoЉю ѿj`;H`+rӆ3J'Cb:~f|\:s)ՂJ9 a;J 2;l(2uiV2]{[J%?v1f5ՂH~Lڸӑhb[Va-8^Uyb;N5i%^,'Pq(i'1d L]'K4/,s{m7^?_},}MA:"w|S6X]2P%\: };Wr/m4i1)GJm4UjiOnӺՃɘT/Ssaن0Sw"n6m_c9"krK"ū qb6؀.nqiR.dd̐ jD ?N`1V8z|OlE]o  +B7 IW_jH!عqC89B|vb0A&/-aTJ`5"_hgb1wuf?0gpJbok3±?v}OGim+Ow j] +^|:c< T\Sms3VL7dͦ-lxu_īVQת.T%r?";1XZgێB{X.u*f"2A CmQAWTNG6A6 +<g/)_M@ 0'@B+ Rx%A)Vj fnّ b(J+'>iXuafdN,{1wy)(@]gƗGD蜷yN&8@d$#- WlrҕSNbӽPğ&=Jr[UK +e3G<\-b ͦW9pȐY/Pt/5 R7 +貕ⲃZ3I{Z8 &?Mj3uB.dXC>4$4鉦BM5ҾqFw EZΊc4h4CM62^R^]Q]>ZӝD'x#H۽ykc4iWҳ.c\˃1T!MÏ1s96RAF>,~$gn˶}ʣi5u_>T` :H6trO %vd\1x.wHJGhS&}`pJ> cH$(>o]o?nӦna{t7*FZX0C5-z<"k̇\9i! "p|#&n&PLfBẹ́V36iW|}9ߨMxCӢ]VW/fU6 cxZ~5z|exWj"d6qAKݹ)jXS kiq_v&m/c-i,"hB\1jCoSf?jZ s8'66VB3M`ә[s>\8cl1 !>Vݧ4'o3^R"Atf">bqxRt7C Xuw|7O-SX Au `k(E,.kBQ IػB}^AH1_Q8rUvɭ5۾麵{!ԕ-I[r$1XUY~DG ًCeœ}Hڄڡw ljX_|xT치{Hs苅}WBg.-6 L=>PHAb#(hG8b8RBѴRfіȹ:CN,?&kˠ9qRO [I%tȹF,͚rʱo-=6^Mש9uo[ooS챷!iA[7vγ?QxTb۔>rVeס:IOJI~lh‚dǽlh=HLȕwdMuEY ٕ*Jpc\J?YT +){zLQL9q/7z}Xl#-5=87 +C_݂)&6F=M%wl2 %ݨW :WRAՂ +FnԶ\T]|yz޳}t+}A%E ,6dޱ2$?E/ܺ˘~ϼ~n\&l̋'BU.ʨyUܔJOVb<~2 +/ ^8δ5A.0{gО ޱg=Ae.0W!DWYa{mZ8W֠`[DTɏ+2sE+\UP[/HuP߾`@q]Ok iw;zA(@8<:FLta3/Ag9ξ + FG|"m7b"-*DєlNe򳝶r9z)Ko'.-j󃖋JP=yV%.o:Y>`Ws:ꌛz5qN|NV |.Y,E%0+O9=/sEEbquI$TEw-TOv mb P[~C@dJe#=bD syspE)"@4W*LWa~c0Hs_z'Q!.bw`a}+K(,i7{usHK>x^?bt:.tI`/K_Ja^&p.=F83=TugZB.P_,8왾:禬-K[NeZ*Ϳʸ.)P%v؏oufh_GW&mc^^#bȗ *Jr۠^ğ<&7NW&ztΙH<}EӋҁn}JWв@N  hze[`<s @^DZ !X\1˅][nޣZfg?E-Jō?P +16Y@J5\jR cI^G?/!& R<ENd5 <u{@d6A E*4Ed6A U,4Ȃq[\;D;i,Np.$>FɸʘBpEgBr*6A&6&6)6!+6h(-j9 JJ%Zx 8*dLWFl3:1FVX_)jP^fOzevJn d\6>K /APFNx|o]GjyL8Xq6L@:Q8XRŠV-!,q GYDt)7 F[o)- vܮT6-,~k|r/, z OA ׉E!{ +?Z ݋D!g9ȿ"whصg<||o^b !=!OYnm+ yI\ RwEP)vVw + Dmψz}|yʼO~x8<~"p"g +=L̿9|4 +"y -|?Gx vBEqM뫺$T6D[Im 7Pe3Ȓ`KEńᡜ VEOZђJ͢lkJsi 8%STtfέn=E~F24O\Ce~%{y65EE} +|\ĒeW8A/BOÒLsfI2'm{̧HfLۂRmqؒPP:nIJ)U0K$dnA ؀;ؐ]>_ gjدEQm څpSp1QjpfpS><6oY,U^t} +p)6ɪ;b~$Mlm&\MdƂM=z'5 `"RЃ0* rusI[˪l ζ:vC5{ c=;5@pUU:\|؈Z)F+:֞K\ ZZ[ |,]-}>\dv6 J'*/7EƲO':M[[y}_ xY5 U.m:y:/f-뫜\|Mnu=#u:4Ovg +⻆1}<߼s +]4&)Y6/6yp+Ije3zz KȪE&vST3,ٕW MZSKqʚJzܶhFW5~*nJM}]Em!E-R\[k^6q.pbNgmꋅDTLyў +GYjKm~x(u.ˎ(-n;3" :QuS5kmU/u:v9nNkQpma8n O]QeXRfht NuHsl|̕xYuGe_P5XxMQmsU$惴,^G$^nE'Z-lQԫ>GoΡ.$|UEOn6mO}?NNX Z6 Gw1`Ĺ \8|(Qn9fX8HZw,QD4kbG84i4،1n@Ì#gQ~Tr^+=io[wN=//V(bH]?3.5 A*{j ¹'$gl˥ī%4if[A. AZa=Pң1Fet#:i]' +vg/T,FF&帼z4Le~9ÔbЙӮ6z3[|™:_n\wfm꬚ +'ٺ,IKo8iwW`_m׵4#wkpn]e J x lsn׺>6Hf6 ]V돣rsoܻGc=V fmՋi*q)a]|i1Y2^`jHJ!Q\Y!)Ös"Ổ@6McYT$620Aߒ'*?պ=)pЋ CTdK"@MN#9"G-C*3r:MĕđelQz;ûeLͧ)v;I#"E|ۑȏԢH1H@@ɞq@V$]Ȱ zDrÿ^KC]fRK6i"j"XY:JP֏2!p1žLKWPC !!8FMfP1=co3_~ӉR'I{^(,쟟- qm?=UA+b 鎆4Z [>ni?e w(ؿfo~x'^z k{PANkrBN l0CRYYϡSZ8q5 BA2?!"/5 ݁n9m0nWW󵽟U{y{K==v5Ag5E9Yo<6DR ZY+!8IXF ܕcJ ɲeK)]UW/sI“Op!?@>b%k,OXf3XPf`/̼f1)'*YrDK}d LKGhv({S-kp6f7}]t^'l"fZ\7RE@ Md|(X9XGU b9Jx+G^\C [U ִ/v@k eVOj#uAjZٗ*E+JUFh-'/*TĊ+7K4i1GN4ۇM[v+qR3ݞW++,O9kw(ySnO so7[82ZRA}" [ugmu|hC%o'I]F= 0SRnMT#ɮs)܊6F.VX4Mk5MV=M9!o:@ ,&iD7jEmZPjlbӌ㚒kUivAVb G.ۀ{xt 6۽{yX\٨]alJӨRo>% +LU\.u4=Z K8Ns~KXs(T(]ఔ^{z(w;Ⱦݍ_< U).P9uzΰZ[DzE byZx2:V(|b ~D,k8J +a p?' 0 pbyr(Qpc'T4qͽ8ӌi9lFm9F]u9{CfǙr| Xod4?G~!w$2R<>! s$598gSi\Z HcB9xA#+ K8+SzBy$Œ13, ÍH'oH"JyAoH@hP<\Po(ȩ2(""zb.E+RhRM)~J +ae.0?M23UN/趸0zh 1@#n8CS=B=J`)c `88#FzUJP$+ +FWH>u[Ul$PhЀ!!IR99 !!%FYiZ!&V[6EGwt8Լx4{j6p8hUr\h,w/$G u*&1&!.1Ɵ!Ο1Ɨ!Η1ƛ!Λ1Ɠ!Γ1Ɲ!Ν1ƕ!Ε1Ʃu@Ņs@4Oy%3B%do`!1*^zE4`*kh>5K  t uj{3㫜&t11 q+s!pŀF!AX+NB/V^X+v}4A'T7A=*gt4 +g5g* Wcyȧ#8l&QȻ1eĴVl#)ج-@o&A73ЈO3{1k^h>` c4jJka /c&73xŜ>VƢɠQ.dGT43gL䙞dŀ=ѐܗ1gu1au]7M/P]}8Q/zWtonK?C6 R woږ)@o(`а +GjLC9<٦T`GμAGfѭ;&Fg#FJg3Xc9)gľ89޷f@fbc;8GوČO9I0hTΏg;eLeTmHک{ߦc7+8(cڀ:+ޣ=hD ڊ~oHQˈwN;)@y#9P?Ox6BLxJxfNqԷ"= ozygB<7#zvIzh;ODrW]!9#?N)`8iٗ5qo,'C+)Rl)/_j,U=lc2Uo͜{f_Leiؿba-nCɚWwXNz؏hO}^evA-Zr_Pq=P;@# |}@&> +#PybB]kJ]љj?sR4{4( L속ܡ} " C^aᙌ}7/R60320ØsdoPo߄ 5Wn춃d:_Fw: y<;rGzy=%8|@ ?=pב#ǔ_؃5 ȔeHe(@d8]X\7kWs7'L *X+"菈fK1="7qn1~i(֊ӵH>-:iQ|x^wac5QՈǪ~Sg+Cv&i3)"oċi=dЃ\Od#;A [u1W&$l)"4Qz5.䕦\JԶxs[kb~|LW쀺)quNsoECKT Ϗ'>`n5%uw[XI]?퇊:/xФݩ7ĈO5rwd%N1ם&q[dAݫa;W+v9]e{ z-W~IwoGIʬW؈+띔K+볔Hʏy "*P"?AZMG> _j)+dms9b +2`8qS>0M Z ,XA"\?Qܗ05Eb^?(N~!㾺EOґ2K>3_3$.a"BNAa_k%H, fv:بq_L p}q * +a1jG`9gTd+~/ +$< +Byv,+X+)EF%8[Ɏ$jr}~wO꺈g'.ǃzc;ڷ+)S)Yqg+*BH i/g%?>.Qa/ޤ7y/"ψG=EZ+GE_\+7=ˆGEhk%`zi$.!,7}ܟvy9߽a9__Q}ٯ(&j{ٯ]l+#Y} rٯljVnATkJa_GÒqa~{`㶐uK.$\^SXD)=-7k7b|: +cjPDgYZ3ͷm>5GV̗%cVKr|˫픖>1ح=K)tfr+..BKnjAh{nGHʑ

d@ȓk9U9alJ$$C+0"G7C~*D6[sN`pԬ +!'nb$^URQ('\YUQEi vv="qePpd#I,:0 e,M0 H=aPENBfGQ_1І?H츈cÞhX Ї\0d7=ծlzBCǰ#7^yʰ DO%dL88W }k;F^2 iu|Dy a|Y"Rː +9~VMe,J XK趮afkfifͱn|f%3GsH7 7X,CN,Q9o.p ,qYYs? /֬aΞܹ_w'}tk9.qZcs'/."\+=vs91['Z 9j%NvXDOOޠ`|EKT`cz%-orD!$Ί+xBx+f<9R"T3RMR+]ա"@\kH"SL7$NNID ' M$_J-j"pv qd٣Y:7U%ɓםF;w@M<%J珷Bx ~\ +r@9 wD(A |TY :WK2pND0@?Daﭔhv 7٪T0eθV.Al'ɣ3F?}$ɳ)ەZ4#Ӵ%I-AX^v4٩VÈq#JEnRX/1gfqeb:- pDGxvr[/Y.o''U?K%/$yhWHWG:'](\KEKY:AG~ނr[%i$C~qzi*_1d +y@@ZaQ-y:"v@ MDʯI;KB!/ϠѩuGnUy,gqe~b7-k#4k++gHJ nΛQ6l 探4=d؟ <VzX_iR)ͷ0Q!I_]_i,MHOy*ͷ6A9X|MZ*Ms+tg}O GXuI +yyi2cS=Z%L ڂo/E0Ilf3\EpMc30b0[Q]\A]sf1tʔ[ΔMU2L5mvMuEU ~kkeXty嬁FkyEWZê}^J"kiWW]cUGiOckWe{vv?7 !)P}/W+15'/1>lnSyC:kщ{6v6WK*z e6i.|gs6}WF +o Cn4,Ů߳q/UUU#_I g SJ/!_HCR?ZX[S7,_>z?3-⤼d_ӹ,Ыçpm.Ǫ-pbetkIhi^|̿>񪊝_b"N~LۜQFsh9{+̿5iG6sϊVʝɛX&LШT?dg!3DY`T7k^QΦWE b%L\UV_o_Wm|cSnw%ǦKX=9##]Wvª*V^Y\ιyɪ*[æENMCPhFYxtÜNkR;Ɯa\/7{?Ivp+ߘ >樺k{|U0xT7ZUB)%jMeFR&5yVA(ͨ.Viuw1 Uycb}2VU _u$E0Ə +b'ҍDقjB9"*ĘH$dh(o,G7%3pTCJr!}A]ȍ%e9b\uc~u\fw  ŤYT)*wNQ:o,rpѶl,նSeOYNU4q*͇ +e=\{MOSB"K.tGbI|$0׿!2RlI]N +cNQ~m,6?r<wKZ@Ѱk>cU&c$l$/V'GT"crj?݃mV]񧾴 Co6,l*Yml14?NeX3ȼyOLdiXIT\"* +_QeUe!( zLoSsA@[bwMϞ;f 7fCGG8Od- wٮܻdX4ŴM VI,[thꞦ)<:p[vИ4M`#`ǸƴINk86M y"ۊ&6,j2y4*V?LJu{2F jW N!}ן]ź,#J+5< 1i3fz +6,Ewݬ\/&wfIʬ ,L^mh%KjXX-].׎UYk=R9xcbkT +ӎLgl -h$S.l x!>Q.nZ-6-4SVc߼yHzA`agz3묞 hk?SYW:l"O_F̳݆~MB5vWWN㯪 ֡|QWsleO_3_hvZ [ɋb.l#4/h-1 =ػHː+lgz&C?}r˲:Y?īwmOdOPQ6τ?٤_|VX.x 0XNȱBO8jFn:B}Q9;)v= F$ye SǙ`$!p05!ƚd G3'hLuBhdxYbLցeM}Ǜ8Rzc7rD;N/48/nGߙUΔA]vCp_#WG\;ǢPP1TzL&1"RQՐ15;!{4-%^#.qzBP$of c+m!9So^/Yej';\0ٛ1M|zL|ZR3cKϳcRf1]cS~7$&P-`U"f8|8[mUڨ+{!Y+Άd5'iڐ wbZy.|X3gY#R<pFM[K mX[; +b 8MT#U0;Ȇ(dPl$`K~2h.IK$PR%hbEQ2 i#RW&Ecbk~m!)kx-1{B8}SFFpV[BEgA&`wg(ƶ*} `fMJ5_I)2 fkI$pE>*=:TGP9M4ms=}-gb^\CľSܺL`1gYM2!TUԩ; X5fpf `s x?ږi;J_M^R-+hl-b,=ڳJxj]@ +?H`;l$H;%&yo%h5Ouԝ5TA40 +b>L5rgЍhVD+*9%Έ<珁{ IM9mjrBgH[ZF^!GVt*:Nm\9#!2w(_- R/A/1@A+AA!rL+*rx l+E`!j֝zP@=ߺ۰'\?X= g0һQB'D16 F>g#gߡ7:3ؿ5Xpך;OF@L:b@4 +r6'yƒKGZh2_)kOA4-eYrN@m`4:͌3kzi4B_'M6G 5l 7mwCϚ7h]O7?Rg([b&nPϜO5ǔbXֽ0׽^7: |\Ý3n Kd޹)t(4BЌv0, awt#xM"gGƒ&1ɇ5CgQF,Y}@ ]}Ǐ@̺61s31?ٹù!dOt,A5ϏPЀ'ӻ:1[ 9\X,){䟸wBܸ)vcb2ʊY<)"M%vctAQ~vKwvI⻸,vS:䜴5>1}Ѐϥ\_ z~fpޛ$tKپzu6/ZI^ wܔBt%D Ѕl[At;K ;듾llAt@w'% +;1n4:G!0`=^!!>0l?$ ڋ@Xcm%;Ht41˛ۜ͛f| ua6a޶ +\s)>g3e1\eHؽ$vc@}M)Gp3%Fp7Ȱ0ܴ$;_\QSfMIb|iS8? ,j<m 㯼<ܞ>(SILIҀiO_{NV?= q_]z<0(#: ^ ȅ_c0|$3">$߄^_;`ю}4f0]EKߣ8"5^zߪx>#}#EV>G@_,\{&o~a)ؾ#\\d1^3IW5 n!9r,ĀT`.H|nJg_; ݄ *Z'7|Ks:+w'K`ى҉FDUv;VG/L/A($72)8d2fݷpID#fw"_L3Ylں~ؙWo\䛶uafހ4ٷuΪ6^Ϊ{4l\s7(u}h)o9Vmݾ +Y'yկzoѣF{x5c 禎m[Ͼç3Ce;Ϫgу1;c}{'kvggVc_M?׊֍HCte֭w͗ ,OgwgJw5/^+^"{S@upSXup")Fv8(Î ;bLv~f+7"CL)x+w >Rf~  +*M[b J5yvzxE6E4DF~P>tn;\atYdڧư%8Xw# lW/ +Җ$xH/嗣Ă6a-b>7 G6;r<#FG?)R M+Ҫ|<ɘ;66s,2`XFY+g$# +'i=ĽzucLDDr>sqW~ ?GsShq"8A%@CVXazQNlhdw&)DT+. ȱq4(§$F?cu:$(;F6y&bȯuj} (Q;@:9?@ +MYJ*tsX4Yy$sI}F$9IavNH֋[Z"w(G3c>H 4G$ZD l7Ŭg/np-\d;&/Lf΃яkl?Pg'wqM?'bmf%cwݣԇrƷ?![a +YwĜؑ" #L*}n<;TQE J.ۦ;>Ȟ5Զoc?q,|<+.+>t-B'|P;WЬQnH*IT]|P%g!\P=XO% oճE|> o;K|G%<:6;4SȾ6 +ҫ"8oGws7[=k*R",EYf֠Skk$|;G”M///"T?o]7 –@F +qe@ٰamZ)[Z.yakm͉ܰ^uonCl _ujbC_7`wAy@BkQVseEe*ph)2%JT[*KYE7۠KX7K۰eբH/ &K-XUi&TTi&F/]nJ=p^GMj(7Qc)GS'XPgK܍iyеvW ,b)k,G ,ֻM0¬{/ ӣVAݩ;0^|]^4lAY,/ <ҌD 9ҳ/nG!+cC!~xX@~ę"?.6wkĜL:8؜1/FƤIʣVQ{D]j̺{gɼImه)zCyi?)&3? s) 9^}:^yu\3=_Ӱo!ߝ=kGh_e{w&)H0t:$_%6^y$ MդG=;HlPgDw|DL}<*O8iǏ%IHoWYKpţ0d&,=< ;V%9)'%RQkQ.J 7R z#~K ~s%ɞ5J?1]HS#;|ќGpy$SHʝ'}SGGGꙷxq}C[M9m9]97lgC\gX4Xg*5׊cIѾh?Y 8:x9Rlew1'ޥh/[y_6SyIw\r\h?߀Hg +mT#lgjrjvlG*TSy74v)B.!b~c owGl$hMJ uTCEZN7*ˬlKcvԭ +v){㺳mnUV( }d%+.ͨ4d5#(̚L']C^bnJRGcNEHFd[[h5lDk@A;ifkҕ֪Ori6S12m4)eJ|4-82 GIG]KI)5In^egAXbM[ +RlSGvpn瞳 F׼̢!N׾!VS̐b3 /Ҥ(֎%┩qWh%Ff5OƩTèD6K^uN.j^G;ݻwŌеي_/q/,&u9r·`m&h)rVǞ2yeizo=Ll量'^-=2a}8/ G· >kZ4Ziծv?q (Ί|kkRP(;]Yx$8xgִA$BË́f[W*oTu{_d(jL~A0.)S>ɾ(io_\YgDʺlreʌgz\?[|&Uָ+s9h5lٺh1)=D@HA*8!Bdb+;b̆2llZh#&O0r;(عؗvZێGFw.H,gGm㚫_!eFn}- (n[Țټ헽y۩|[A5-W\c+'\Vpb3*Vn5CucER;CVI=6={5Zu܄[l_dƭ}: *5KiDb2\߯Dsq{}ws2*5Iy|l{b *N:[}t֪g o + {Xlz7LҬo>R+>8[[<]X3Db AOya+]je5a:qn!gG>JjpgBȷSP\1|8ԴZ63x5fԴ)m3:PxQzky:_nC}4"Bh-OmKK0doje+9y5AVireTgp˼9'C'*꬙C_~Mk۠}Jm#тƩj+kU=,>!>Օ[=KԊIP/\bM[!KxR$!Nuvw"**eA/ii}bĭx/{+%QT}NɗY뢻"0hNPMWxi$xB.'Qfv%E%twuۑi`R+ ]9U.$`  !LCmK'!]2t3Rb +p4]tS/aE0y֗N/-M7\Wy?="nxP»k$x->AIpYYY]fuE+aZte$5}/%t: tDޖX>Ie8La1:x]y$V^r4=/|!RZkI5(QWlg֨U?uY]%;ޜJ%5l bֈ\ Klz~~l> NZ¯R$,K斍'O]O[M̒;n|Cѽii$-Rq? j-is .RkUU՜*!QjEy&}s +[c ++zFD<5nçŰKTURʗR<_46@f=ɋu4:6m΍z[6Ts赦Bix\[4a >+c U-n-g_-pu-3;/%wȿQogȽ\^9Ql fʓLO5(-F>bNG}ʻ?e|X̷GS btw{_CQV;V`ẅ́4ۏ2w@臡3!inx~+֥}}|sghÉRٶe䎀i·(G|WaShj73dӉkiI rjYҌdNr:?CsH`Q|:H^N<2QzT~Qgs7&.]Qt'Z;h]kj2}4Bs5GoN%h\K }4@0-bp'%գA~wpeӹ5g'BM 0E u 4|DOYvq8ڝ` ГF\˄p\84t>Vĩ¢oIxr@΢=HҢ\/dOASu``BhB JEYpsuq=>xuEqoF;R)2HfEy_ڕsW8B`',lqzˊ'8g cDZ٤+Nƌ {oT6? jxZxh=Kp.^E˹`֢{/ң$7CψV&Y yiy7N#%@ڈ4i1RmQcD8҄u:RߥFҳ,1c}ΡQz|TQ"^)C;vs";8_y>ww]ST{Q>I{01ݐ1݄!n~1I\OovLDu6F8z8vy^rt3Vt+hj;Z]#֦]gnf&wS};2pʒ|x{O/vZG9m;grm=CG`fQN-ƒ; @rrذA@_oW郱};HTȡሢCxoz7*w,\DY~*!4t0CfhZ:ݞ1r$_[Ib`P$+bxT0TI,q.C(nٌ1mGkmQY#6M>abhsl<2‰cnBbs ) TUB 3uԥs0W`.v{MvX@ӥl`f {0]L}bL!8ˆzqM4®򬩨_3@bq|c?v&s=>Qsd8BfGtt<̮8ʮX*T\S9Jغur *s#5*mEWA@kPW)gXL3RTS@mvlM2cU'\s"-l 1if|݋ᢱ7?"7M7T?nù1ɋ0c+74ķ_oɃO>#+09YNٙ>_#KutrC/wbjc#<3S#>/S.c}}L)dяcmFĘG& &t@tiGɐE€VIwndmg;gFQwğ@~Sm7Nѡ'Fr< kd?S_ w'(UE9r>#_oh(V'/MpNY|/Q#Augf|-Cw=PSoM殊<f-f= +q W3m "zD1?'{ +K'{t\sKB2Yn\ +S©95E}ܹ 3Ӊ#cګ9 ի9&:sGݷGyWa99;9 ;@3;ܴEK;sL9E_ĩ37?nZߥgJZVdž?h/C$}wC.W +]-vp 뾓 Ȁ͢T29  V95|9NWG8f)wT-_C"XK{@3(qbOx~ \FG>T8(njd/J,X./:ZY$ 9l FD֋ӻmuj?V8;A WvxEW4Əy9?٭}LکSGs} %F:i=ʼӫ< %is2|d]ub\г<\_R_= +/ @5WoN~cyYRG3UAJy5ij.J{7~Ggzgy;9w.fm"=+&8 :emRoE?i"z/UXuM,g}&yU+|g%2o$-|wÐZ, zh;q[ag.pFwY,:cꃾb] ˅gicsvÃw/ԉ9aU `rc{X4[q= βmy+lϼYC٠,-YSDtGl3V:ž  \qgՐOSSb֬ `rq@rQ +)ysn*ǀ ,~C+tje +*ѹ <܎ 1d->iAg;(t~)+kF3jf5l.U`j/_AgU9:oj`LL'j3rUe:nB7btz3#+ٔ(D3ǴՇKA̕)V3\"Er'y0 +!h*T 2<3t.O[ÌW^e2(]AV\!-E]1%-Vt]Η \¾Jbڌr2U/X05-a-{֥4kv6l]KLtUw0,jXcC&^[fU-a;4 +x|ۨsΟkr|1ls5˒[pY +R|a+S,JI~_u(ST$S*rG:z:@uʂC\RY[v)ey%-"3_cʉi͔tL:@I:RFD&);rKI#!U|<*QI cYA&)͕M"%}<޽(yjh|ޛBDVo'#cݍN$ Id)ʟXF!M>Nca0VG''+X=nRg4㼧ikC^%Mrk-w2Uԣe'ilzcm{ڣY .MZ+z9XbW~] =Hsoی{{ǺnJ{٫WԱ{MedW*#2֔Si>P宫aXz(Q?QqjtP0R(\- 2LNTTTX6S8@oWJۺֻZPbۺgmF5E^ͩ28'{SNi68^!b`%|9^P<宜< mmo8;O;J>=:-qʕAaQGHut  +r~q?½.+C}U8(qZ)8 qΆk\TZ{JUpNj^KeV>џ'Gub^1_UP h>W#LBe\1c>^&DH/EFkpÄjavqvW#T jlV_<-QAɮu]_Y9U'£ʣ 6S<M +=_C.^tٕ@0ԕ@ư/W3~+?^~T;0#qf)H;(WjGa|AbծQnh,,7 6e +G*BE]C-l\\F)*%׈_3[_d+#Ԇ..MO_ +C-%; n]J [*猵`aW +l&NGfWd6aQ,0yOeL r"/uFM /"AXCS1ѕd|roH+=ea%" p'QD[xG+?}'U( +򛉲&/wL2֓/}.̂- @.\!IM]W8si#!+j+1羄Z/߰paxzIjSoWxԦ#7* Z?zz=ԭ'?bc3^f&@6ȭHZ$lg y/G6aPzF>4ε+,,LR ~_تx6`ob**dM7I,UcLܬ&h[w J\~8CX^t͓u(!b$W^x:'nnǩ\! ;'⦱Ƕ6!}a/i.\5Wmo o"#B}2.dU\ v89Z+ ˼[k%Q_twG܁et_TZ}Dڷy3J ݼ53od؅Ick.܁#偤~ +ӆz>6bz|jKݭK9֩1/FSUmz%զis{6H$1^P(w_ֈK8ҍk4ې||O {gp~i60<@ OP\OyHê#Bﰼ \Al<]/>HpxYG\ ǎà=o.hK?{"έPf BBGH#"]PrIƝ+]ǰ),uW/N1D&Ɗq?xP0|:Lp zPG+Q4'J>Yһ\/S=˟re!W/٧EpCF}ŠQ]K-)?`,"6E$*T CϿK}J-'ßNbVt}HN(cj`D-sQ|ܸ623-r3釙l|ӯUX.gQR/E 5mD~oㅒsH>q +1q2i"K,;4YnYS >UI\]P/f/A^`/_wXsUNeAxC8 +'Hu'Jgr FrBeЀ쏯 eLCOE#BeΆBd քK~=)w m:)n_^LΌO5_FÉo"/\C(CKr"awHANќМ}bg 9(^MSV7`H +ě>*Qow _M@~ $}37Eɝ(з|jO +">'}De;/t'}`6``RNlH5Q`rOns;`vE-><'d!4ПX`3Pa4'k&yAN$ ,⽄^U@a? Q^ bRbE;\/4O"w{\ףS^!_ k^!r anzSx5>@Fxk p7y,eApRO֊Oz#vZ3etᩁ]@riwb0*Wmַ'GJ^ eů9 őA> > }]]D'O%==9ۡ&H?Нԝ؝̝>[|O[|}1=Xk$6 i%y^2HqU4Yl&qK$){{>?Q;7ʇ>跆yM+d/q-6U2i"]:Y$Kdɹ$a|阋s,|G>[_G&z`ǛGD܋ #|XH=C.]Sع>`7Si֮ ƹ3޹>#й>F;?k{H>{{]}];¹>=9~ߧcGhs}`2fQoZ534뻲KN..}>}3l 34UWYu]+n6Tǽ X Clh00.46B.ub_t9nt-;y.W! :hР?蹴cfcyYm',xly7rtgfI]co?hB*O #@S$`9<3pq3Qpx!+2L.ܔ=d;7q@8q(z+q!"Lsd|ZX|ëdU +pRݥ,@C9'l|N]W"jIR;dd1\/>D2EF % 8aBJp\ş`Xr>+A1~I'!ɛ.Nmzv46'R])\V'RNdCpGRC‡c^Aze0\@4{cʱ9c1Aخ-iΨ>NCszD+4䠜5N9E6p`NNip{NiP{NiHl6{@܂O.Ams^?\i@)'P10tQImeX),'5}YMZ\[\k\,g6V_'~LNY6ɞ g %kG(t4Tlszq aټVƼMd%ͺ5KI""Q2Wi <+\>wo'ˉ䳹aAң/k*s# ʹمW R]) hPFvs 4~}K_qbH8SxfIܻ'IauXc92}Ӻ,6g6Z+\!qQhGbNR%I 4%:6h&ZzN]̊lXѺqZΫQ +M[iH4wQϷ?߱X,ZΔ|03褍5EsȾKTg&ȼTḇhOjd(V'KP%)GFX)`d^K"ik bs14GHKvR9o* E~]VM~ Rl() 'V@dŭM{VrN{08?bLH_mҿFe)}:UXIc@$jb;b7I#?/E1Q`)a'KYJ 3|Lٶv_ `) kBRKh@@~ @@P%,]!x̦K<;^Ek&]ó ")7.̋<-r):&1j?pwOLv/p&tQӖ{0. '6ҵ/0h /uY _/cS&=.jejQ"S&,s9$ø4#3&Ӱ+řꩪ' п{U^(G!ԺLlvW8P;)A^+<& 4`!)uҊbL*TjH}-ui)n|TO_E[<5=;<,s-Nb^H\'An֨5/c 2ԛ6JX>)n9B`ҼYeP;F-]4'Vtɢ:JPCݿ{`iu0N_p@t0K52lW:1N`5֓ ɳ7=|\STWDpu@ &@<?*]{S2ˢAjm#x`?{5Z/]r@hOP WQ+#$'QtǠ W}oKFޑ[Μ1E-YT'NHkNV^6ڳ7q`O<609桇,~J%${oayg4Qx)NN}Eݜ+OGVoCc `ECvɨ_?>&<"J?n2uX b_X}KoĚwqzɕwۢ":6levcILe\գ7N^&o)N:Bk9ؚz&k35^Gy9p&ja5MYn֦˽=8p5|MLwtnM:C_řݼ TJC+hZަP2 Ǵ7R"LFY8-cay~/~ x37Y|5zKǁFzJyZk8w.?+ bMhұ;UWuF{k?63ZX cl!ǁO@{9*TaVAbn3t"[q*‡SG +C-JJ˵5}k_ޝM +$ضĘ3-Q2lA0bMcɕb+nɕ(5Xu a_:~b܊bU@L(K@10nfG\&V՘\38ҹ) +ľL@>E`V5njj4}kBoxTL*5:1Oތ/B+,`C \˳>`WҶW/|U`d|@&Rclz2j_WAt=:$.m j11gg[rY!_[i<\]UC]-]y&S{s?DIt` +=OK%^-K`ZjZ5+ߝه1pEVnjA?gu3+\ւ I6T ;ƞZ6{Z900j,$8#lqsZx]Q,St$S܅O~#{ 'BC[+rzqtuve +ު~iCnJe]Cgê<Ɲ9l;ZcULݻ/&PG1j!! m8Gft. º gAiBJkz4Pܵ~ee(ϸ8i]OVtI9ڻ.x|Ʒ׆Rf#XpnqXٕ^i.ެQ ~T(R&,T~Oqqpkk4zQ<n#faQK!W]s`nY:#%+g ažHˁi,GN!N#ӡ&7ay~ 0H~S0[4/{aƐvi v!RaA4/U&&WF.[⒩xt4!gägY* ϗ|>f( kּp%}C\kJY)cEKh.IPݗMY_!HZhzKc33-@K]mL{5QµJ=QEr2I55di~Uo+aJ!N&N!uLc!6֯UACeE%qΑ}8U$R^rj_Z97Mjm4l"sx7eQ>tqwԧ77&^2"?F*,Y>K2zWFՒtP6cc7[׉s?~ +{O;_Ntk +8y[i؟fX*y$sRsMPXх?b՚r+̿PZ@{)n 7,{{fWYgpc7 +3Xo RV@YSBl<ْrAI}qd8B<&lWE)1KTSl)meLa-)}sbX)Q2ZqcY,w5j9)OƝ9sɧ;O{o{L͘$ŭ9զGѢ?.{wֳHx^;1Dt.P2q/T0egS.ʕU6FCWҡ&!/79-q3MddLAr=\25`lɦMWG*r/)zA:Kʶ$H %nXEyCB)$ܶ(,DQLsO-žvBh-m>zvFf6o /BT_@# +F<A )~]&vpVK<ݏ\ѥoS/+f4=dd WG6i5 Shf.E{T7K{֡ʨCk؝5qlj6⨔wJA׌{/ }Fש4vvnp6m&t*}¤ >%|=%خ7C PDiv8JA|lBo(XQPE@jL<ѹ},`5`o(4F?ax +D/x FMU"Xv;[HCY/:(;CywCQ/mq\+ac{f'/'̾E^ADG1o"G܉HSXhIEgA+7>^Ԃ33QAi쐞q~ӄTdݤkd$q`O'T'MJZ*Ȕ{2KzcITh}Id0=r/_bAhF|i bFrh|YOf\kěSċs()fxipк0Y*mT1[N{5{FPٟȏXO} eSxo1o+'r yq(S1`4FK"K"g-=i \#ƴMre 5d1H2|T㑜꽰8Z$MіL8CgMLs"ͰgIOEHm_O/3&A$38 _)iUO@jS}N &!y ctOΟbM6M(9Nΐrva~Of_ݺ>QT Q,9`>o[HzmkJ\1o(Ȼg:wLQstMsh5OSZ4Om#fS)噶*(Sm)rRom2J:)hȱ}H2<1ʓw϶m3M'iN_'X2MyymsԂiw)OZ- S̼Mf YwtZ*7懪͟׵+] rcuY24fqֵYU50+jm@'T]ճ&3%U |Pz5:.7{)n_yfˌ fY_SY@DF5([\M炍e5lyUSʊ!z 9_'"ۘ`7ڧMgOUl4a=;ch *ǪϺp˧ "P@u\5xt F3y)kAnV58[ujccuP5*$}5ޚ΢+BLg̒I_OaPlummDnKɣE3Pd+7z4z7,pgQ2f(>Y!nzhrq#4<2S}vl ^kU[xɨJk,}MUv/4UO'8 +^릒.MQ 0uJA@xxOukZ5<:OyzԳHٓgHwVU +N㙙u-uZ5bMHI&JfbΙH;*Y yɐ.;Gxx{kx7UoGxas5;np?*p85MsZkwP9mki3vBy{UGxJ:9t!K ׽j/gP59/oo;\nR~6KTNlk4#o"Rii;&ksb6XŰl?[.GZq +Φ~f6ʩ2'*Օu.9h{FƂU]Uo|_׎R8N]^TD)\{ΫP7x̤TP>lgx0o^3g]O~w/NMl~n%GLc$8s.;t#GsstU;TslCuR)}z2|CIIgcslz[8T /Fak|!bS-(Dݓ?oԸ-l'f|C?OMh;| ֫f?Bg+2M fLMz}ʍif}nHü,.v^)V5>|o !_LI_.OIW-ɭSOv (7HU7''52Ԩv0_>ZPWQUNP,Ty-ZԀ2T_H簇ҋ%%>Z$3[2%kɒIU|ujE@j , + +?{ +Txzve}ۢȟ4p##ުUAEY i?G1M$~{{WV 6+ue?ɛi>V meA\W&]eЏS)Ed!:Q2M9(ش:C^Q\_;qf`-!m!LU?'[ CVsW-[b[zW.-h[[[Qb4 1:BS( V[ȥeu35J0Wps5WI&{ȍCu- +R0j; @C!nJdnJo7%76y57jC]YOwǶ/|y\Zf/Xb¿It֟;̑Z'%\5v92Vn{9x*UUo= GP!Ǯej?LԩQ!#>Z(-7JizD?n5~FI] +q'+*KK,M1B&PLu/u^]֑RN֕ Z&OR4bO}Fm%P񘵂 zm];9\3U|i;ynOF ίsOV[;eyS[݆[ xG?+~1t31sRqJ3,STYk-B.[|f +U-*zAx7zdl!ߌ@F<@UٔMM(k+mk-]W**[#S gasaH”s.5";)%±s5~zST&NN[{6/U zGJ #sm7n2w'eCY*FIfQ|:E쮴ˮ9`TOja~@Wm0lW ;?v,̇Cy"B< ?#'Mܮ(o#*}]ފuUN %)M蒍iA%P?$;(NB#8W*ޜQk^ku| n;,^l +>2AH`MwG0A5'X(l-DIw h7,фܧkI+3´H-UnZ*z80,P׍B=궿f+=e6sIL4ޝukwA,7S +AJ^Y9!+~ZFO{[W|/:&.U]PNsQDm {,k(Ss{ U$ Cտk\a.eXfP5ܤaSͮZ?"o8fu;l1a̟?_֚2nI# n@Wx$3ș>l=Ҟ%_, fDu$9' [d\7ݿYIڟbF^,]s횶VCE=W.7t-.(3S(RLpQKo&s襻~|F}tA5O vp=ER ݘ;`jAyaZR-؀/[O%gDRh]p:_͗cuŊt,~ 7݋~5|Š D; +qx;јxP;alBx\.ן]?AjTڟFx +N̼?Y9#v|n.Ilb.Ȱ,491*us9*?8 8vxYdQ}$ ˒}3g}mK} <IvQ+);!n|Ԙp=՚ %TGuznXj ~-dcZF4٫0/<F1j+]\! t-EN26BCaxS?(pK-vMW5l8Do ]3eRXw t%~|Nh;_E.ݎ2 ;;uep +lBj@hH)#ՔjtB떄q6G6d1#cNziG|ӿgMe1G֬imm,蹎PE2A&T}_{r) SX&$q{iwѭK#|!AÙQbw8P/x KG/lݡfuU-{e*X:m޵ߦ&#H6vwHz $׿tq`kQ#B?m̵z~܅vArX52 "0㽙BJk$1'D0A3ئ"(%mU=C(f/=·G +n#AXpޠ,8!>6!UDs+~nj{QF 5<>Z3?ž2";޽9N1ǘcق(]#)R?XT$1,RT&j'suty/,Ҷ)xD+c,|-cfA\$c_Αjf]p)NΥr)%xDq)ɹDEglxB-vҿO}=DE(ƚ<## ş! +>K:iΎ-&'y8H2D.9Ѭ44[ru5g%Ǯwû٫z L $2Q-QIlt9#kDn"a?|8뛶ϑsvIt€NCG湥6IH"O42cݲ Ԧ__7v·c5}ڥ޹!irg3;3;y3;`Eq.EC;UOdDJ(?*ׁCҲ7C +؛)샏$b߯ԃ8 Oy4_7Cfv%L!As} uX^uHXuĝU!/bꔹU:Jy3ZV듲U̥'m>gf~g>rȃ \ xSkT@' +NYINí'~3'}#zgԝwd/BAsQgH¤S%U*PMӆ1ǏP.;giPN9I̱'r_o~ +1MI6A}#]˟J tKο۟k9y|P9G>K|?Kxz:SqN=KtM{*;SSk|׼U7UvmUw +(v9[Tc9{?oAfupQf}PtiB.׉?Z%zzOO,χ!5ӊs|3?ZNՄ{\_4^ [~b,UdM()4`+ޣ&KubxQ ?"HZ fMܺKn],-Uamݓ蓀2]&1`rO9:YkKgLX<޴54[Μ]eDah&wvӿ9Bn2廙9';[yG#,!4JYYz9|b5 +Yki-:6 @r4٩٩RQrWVE|R >hZq0sL:c`RЛɱmE'Q3i_@'h%,|+h̖WE_̰gg}Kۅm;F5&cl\u/{up^%\%MrXBFͱR] Mjuz|\uBtrڊWZ^яٜBeT}?XW[eؙs +6_w +X9i&0 sMn,eoW ͬNzҁmuK,lՖm1GKF˳U2OK3˶=CqKiW&B\Kof&63x36C5,Gg|X$́C9yߚ{{Ϝϻ =gǣѳO`@; d=*KG$+!XHgbfǭc.Y}_=[91grJMo,ȈȊ9α3]}(״!Kc4h?j.R%50z?R7 $Eǖ4nxGz/`UjH7BB Gkw- Ú i/D@lI:Iʗ- f(9G{ږG*1툈zXX%4 +Rz#ڐ/˩ayLj BS20"6,_MRt>Y5%%BgSH)9B2s-UzH)!=ѕ P`*#B`}|7A fVs!+w[S^_aI|:?QdÃ?@MpKI*$gQPck_LoZS/;&fEH`iQ0b$9O)8:=2ڜdc _ 1ml$m: 튶k뾲S">f Yx_blݛu;as^3gsbzDEcV/UPUhNoYW\'zR,'D҂0/ЄكϠ^$i}""ꏔjulYE1bKc+c3,oYz*,iDʓ6]޸H0“"܊"ݫg}j2:/aN. 2(LWƗBćvnpP1x~wd1lfĘ .Ϟ&9n8Y'$yД,sGcd]můl۶]m۶m۶m۶myg{~ݵ#z1bƌ#llDk Y!pƕaB`WZM,8 o2Hppꅚ(GFF å۪K0Ã-iG-.SIΤJ7 ,Cy˼n!D\]4I3„ hKYk80]ܻպJz0$X7:ł75;7ӬO&AA#L 9݌22ս ] ?j)Pmʏј)Ӥ3-pc &U+RMIK8ۺj2/#D*.Yf=єC=PN +!z2]652b"4$Ǿ0JaZFjz!G1@ Eh42_6㢧\an_#085-%Tso`%4,JJڢ,ȒN3w#1bZh߷JsEFVbU+8S#Lf?ٽ_eU5l3}f/ɌqT_SB5jv3yqeD,xgO EI1?R04F,ө$dK(hkNe0BS/A( ʟ1pɩ8#$t,YU:IO>8M7zr(DȰh(XR`d#,&@cpuBmRKxH'ѤĚ-6Tqoaڡ[xΔiM33t5[ʆd!ix9Lrʵw{&RiퟜH"?Fh@UpD2)b&KQ'!.ĦZD=VvGt@6Sw w`g21o:+8*Xk8+\AgÍzGrN7tq {Sw˹'ĵM#ҹ, #^s uZAt+TnQUx#㞂̗D?1uS[ ELmѴ[d쌗Cw؉⊃ǏnBwp+* 7I43 +ա2n8u,.NU7 m*{ep~K+cj[F{oՙwh7pOBoc+?!'߰ꩩiWl;O _qS:gpݕwѯíYށڋ/$\ƒwX<C@r}7F.SDEyr$;1y)CzyZ"v!B# FIwjZrWn&-X^jCjsqk9a$;M N m IUڻ?*DұVˎ R-21GZ*m ^̯DKb΃%J8fX8|6"W* l؏!Kѹ\e3q؄-M +8~ʥLt~HpM‘s&qszQQd#tfLz0iSY'GE 鋿;}haKz/o=;UUؘ5HkvTWnUcS%oQVlKcE(/e -vE5$63t*[=6:+ D5P ȺEgEbz2|s\՘yd7C2`ƱLVSuK|,5!b/? ՗'+=%s]A:+sU?eLᑚBK|UlիZ} 㟕Ǔ")ĀDGSDYHl[W"2,Zq,En\4l8&ft!b^p oN6q! +Gw)u~Mmwy֢mr8^Úx>5H[rNC;kS Uy^ǵ&):2-:5@LMw%;Sm= #dh +=_Q9E^5+ف)`hݳ"w~(ʨh[]g P9O/N^z?.#^lG}@\N(:jk3Ֆ;̀ 7 ݭM&^1GTt7N^"M'䜢@=xْT7)3Ѯ}'Nۢ\G~'RE:%o8P=֪73ef9oekYEzT` 0~<aHoxqXlʶ<0X`s\]yD`ќʵUls84Twk2ظmR!5|aYcW*UJilt`%N[ Us1h@vN*39'%ϫ<3οy ~3:~& J9R)kxWnVcyMi;a +u#'dp84 `(Oj" k;~NMwLEXWK Kw ઐ?o uue#h ~RX؆7Y2D_, +Jeu3݁=dVt檊zPAGx,e`"$ Si<0=d48IH>89#)D)=89~[EI?0)9iz}4;e2H_|4lpr٬(+.:3"P&;[ZN0Y$Pг_IJk0@ֲyS?f$"4Ev+yɐ ~T*N-~י`er ,6,\`fv+"ΰ%>-׊r+}NND"N33?4W* HrAВS+eD#9rU;dޅ<"(Yj +ZYGϽsDFK fO)Lj9j8uAbigwl'n-oo+h0#ܽK&پUլ]ZJf LMqC+%v {ZGkj\y5Mg9ޝ4IW5mW5muB~ϴWLrOMrp e}~iDZ$ +D B ;MM"Td+vn9V8`'1 }b A\ +42ɦ2z +3pcX@F5A.M@HǰKߕg@Ғ'$-z'LZP^NoU't.ʜA'y239XUu.I.Q~ښ^L]{`0yQ$)ʁwm*iM +hAW(|_UEoj%_ +>e] _֤ P?;q"슿n&1:D>(,"GF$yؗG +f1ˠKLul1-ԃ -V# 8kZ)5M-*;:ttPR7ߎUOWj|ڕE,V+ukYgU]8mrYmQy4?}#RaLD8 -鵲gSkj(y@R+-xqH}l]}ć2zϿ4+wӿhYo)&|[r~i{璿xg}yg} w~3Wo4CւCRvɉvK+ٳ"e62.hݐ҂_z}{< =B)bΧz)2|gGVBg+uWi¹qï0q%΀lYnZ92.'zDM2{>gMU4q-+թ[lMGOIv@dt*^q NQ RW[C|/e)Wl".DpxGʎ`";15?,6r_&ڳER:SN@%q'݈-2T Dcm?;!Tw0t+v:A\KM1f6`!fLpuN_eF%"5YxKfSOKF3E>MqdSrvedFʜFiu幽50Oeٹ5Swu0gθ|ƴb$[.)]0oڈ<߲>'֌^n˟ja;~?;fHg24 W.dh?˾n= j -C0 +pûzS)Ǡ@=icwVܴY ϳnoS/ T iALM J?v' OR&Ux2eڊ1v_] [ f.T0 + Z;oZגEudGJ7;X N9|~bA /w/>l%"xPk`RDTW+)7X1#Qǻd| 7&)ê[ɁՒSyV #50cՑLbhĒ9/a/n<w{ָ:fW0Z\0͖Ilid>A~Y^&r;ZZBf +)r='$׮~9JOZÙ."9ncDyO q +6; nK)$bZąՈ/tKR]P7ncJxiC]"ԇp<itT0bF?=kǓ!5&2Z7-E6=.TPEM˗0w^K*=Um-,UyVQULjBrHL]3"^{&e|, L%E'hJQGyUyZTVĤ.KG(Iv$ۼ %q$-'bӬ%fK3޾pKR-n3ynI$ϥńi x!V!BϘ4)*x%vz> JG7$YAb F$e3xZ|>?36\ptWC{2L4L^.C(H^T9 UGT,%XC/}{h +'nv\@aXҘ*$}z[uF&λCA42#@.u#B&OS}@r\ֽU&$:,A`523iyDmAcZ%D{_m`⠱m:rFEMy+-Ti+ 뵬 -=&>ޮ7n(LvE;CVh^!@ix.-MkM.`vӯ] *D#C!VwiDĸva]6;'$}şYrcpMJ:3JV*B0|0믏 h\w*U$_ꄎ|.B[KFɉ>NoJ_?CC ~$L'?LWm c)G6I㻃ԥouuBy,ѥ!!#Fb;e\X*l> +Ms`G' _b'Lc7̆I&OסDpA3>l]^J8 +Fѳ\%cje?bݙc 'r%Af*Rc=N叒 rCB&16&(k`ƅ6W  .дZMyj 10 $9U+(1`(W.Gӎ7$Fnc >x2N1DdL(;[TtEVS*eOlHLN>ؙ9]2nVr\yPnKƋCpva;1ц hhPu\3637A#V;ޫGQU aU'mZoErVMH(R/C4h;B7 jj`ص[V*d\^WQd1MDaO F) 7dlԜ;{Oh{VWX{!yEھ?1ma+髼a@Wn9FOvI2 j5i7ƕ, \i߮f?MTJf~Rl*'MV> LuQgͧ0=l,2%IӕMlՇ0ÚM9}|}}%}E}evH}|| |Ioz}I||M ~[~-2R8P}u8rmG\3XuÜӥYk›IUHS hœ̛WL2հ Yl,HWڤЬ YL.3D x .QZœkYmZÛsCĩA|)$(3wRbm1K9sD.n3/@͢GO"$$[8*h6Y̻@rUbs⛊es6۰7k#v:))){.Wi @؞tү6MKˊ> vnD6fhR{څY(`%\W-'KD3b]^_gis>>٧R;chB@OmoHNOjOQfl^I-l +7&+(1p +ޚh=6Z1{A9vLN5if65><k e6ɼ75v~[~.)s-yP +76ad8oSәY_uLi)V_(PokWwNBĐVH~[aWkp 32db #*x6j2RQ%V$I2R@m + +5f hK|ֿ |pó6[2Oi_edB}zF҈tAZ2xin{%pN$=*fܷsK|Ekm +K2c_KHЅH*Ģ8I6g<}waAw6}qRy#d&߫2倫 -G},RNE9ć\D ##Y,\YT".Ŏ%ۄ*}k=O>X7lDٽa7$UtCRln6rw"Oy93:1} =,t!@*\O +E=a/ܩ4{]=^]4(w}֌F wɛ}E>b]O66pyh g$Qx=V8 d( P-jҁ|ʶlwfޡ4jz鉡P}hM;G߁&5?OfQm/,=JC3PK+]_B^ *!ϰT{j ׂ40 )k@6$,/ Ԋ pqeä3xbdegU,'3ynaKgWanՏFq[ z0B6LeAB y֧x(#btѫ_nisrlКD<(ȯ`IעGk".Ynow]cpawؽ0P{$, + lE8QsF.G\4tV% rLpėxE%c2 "|jy`l!qJ.&Ft'4H%DT@awѭ+.3OD^tE#.98]uv%dLs#8 /sGm2&ww1+E7zבwo+~et❲*w2fmutl=K1Ƿy6*Tve+Hvz4 EeG/!$YxXB9by"y"VS S ^S^IRYRoaZE[ű&ePbcC ӚqcJjvdy#Z{UT|Lhv jvL"-Gjv֤̌1iCxՑѨCfc34;qŐI OrW*YaRFm&H4/_ =BT|aa MCAo dH`O +L +̉t&S^7bƝ` W@*)sMÐ{K ҋIzsG&Å%tfoщ0Lt/z)N9K!'w/01Lj#J2P4הS^bc-1($#ǁϳORѱ +!mb`(3wtҒةsbK5h] :~MOUx蘿UǺ<$4GSESp!6- a5U1!n?FuՄK L>8yM.[F,y0QXs߁>1l;& K HwcΞw: bW_%?U!t_|~H&{@Cw*|p!&4RP۩tNS߯fHTjjͶpMRM +FK5z!W ٮ9F,2aq;v.p F ^1š lg 6H7_-<PB4-s=ޝ(jA ڥ( hH9-Um=aH`y :k7b ڪ\am:0В^ГO7Q@08y06ʬJ۬&{iSrb98XWL¯q訢tE[yL\upH$bҳnnIcGQb!30tUL'eOnEyD\ώb86veb ;% a:Ͻ#(Ots*fbzbpi\K0mB+(j°i|\'fş{qi]'L\zܔgZjR\~&KNhubA+*DΨׅ w.3NG{ 8S6[NtZF]Nh/2ߦlB@#$gY("C"S +<VShhhtk^B i2rnw55Y: VJf)!tX^2W1ٱLk^Q<;bO[FQT>iQPK2lQQU(jʩ֍j)ܛǯ9*(FXlm-,X(,O|/j(zRJ_5Ld }{~ 8Y6rQkd6r4)<4:V7ٻ#8BkRdD':2lr,FT$1~2+XxSxf2N?rq fȦ(K+!,HZWo(hX%d7h R~vqhA-JWMDH$mYVU \[]4]tk0U]Ϝҷe 55Ѓ8~p£Hr|W]ՠC_@ ++tHaV?xP!Fx&G6l WT) +Jǀ +:2W ?-VT l!oF+ǁ,\'ŽVe7[d +Ymܜi a#Xh=Z]6,O(Engm1wX=T5Ӂ; ;D=`5 +k;cˑ ;+x:=x502 7Oת܉m mfH!Nպ#acnyCx +u=_l}7d͒%c9DL0?`γiYVymϵ%:$'! ;yљK ؑUH H*;?z"pC'=|P>q/!3i쀟TDu3X)K9Yq50o -$6/x[oL"cGoh"@1}g#>e2c5. <;=ŁS^6L2%?r@~f@4?E *7f=LvI ͨIg0ЦT=irk4ց47pL Zi0!k4*VsuTx?ҋ ;L̏ +,'e4^DFF ԀN~($1r6bQ0Q;p0}J#UC$GH!VLh@/*N,O(mVBd`PB\7HEg+΄~d)M_e\LO/yڊL;y]D1}I?H21c>rf( B13 +Jeգvw9 -M-M=#ןhDʛ\ 9R dA(7X޸mMNxJHI:~% dF"vZlęk?Ӿc)s*95:uI55[95%rbX](;;.;#uǡ9Q4s&}Tk7 35F/fqO3fF'b!bQH4A1l rv(r6w)h OuL+rv-.A3'9*vČ0?7J<$~F @/4S?u_DNk6FaP%ZutaRo];6pJw&h*fKf֡)X8.vifҊ5}EϜ !ب#f'|:֥3` F >=9v|3r>JYrR#JR$J+*9y,999%yĥ;g9+%y+y+99Jr%qq`1D*~:¯/ Hkķ /$m`,/3P$J^3W $SFwCjzA ƽ˥/e.ZΈ0ԢZD%*mAD0wMS\aMd4P?n\=uLHQ +F0)Ev"7^ #XV6K/2»cl';Bs[hЦƎ%D:t,"*Qnj"3. jSaܔGooƉA * .C';(Vu4o[áBl,wT4ojXtVkTt^dKy̏;:޴vvzxh7IolE{:y NN*/3^-ożQNˍp[]&56LTVr[Xt_Wq: mǀrX/&.&S+?XC3 |ܦ;'GWx4LB򷂒Oa8V[Ho>3FrɨIhp~-̒ ZxBȹ[ň#I8)j|5<23&ʡ7ߥf R:r٭ز'|0fӅ1ks=O DL 9,Xg]@8,Fe&Ey4vac@q gh!N} o}M% :FM;BJ jt ¹eT]Ĕ3J"%ujI')(QuZ]'_7c-(s, Su k83$ɔ@Z +srl-x *xZ萔Z=&xf%h" +ZoJg!=^}ϨQ |%ԡP~͎qf_MOJ`0䝕x|?b:9/mIrv$Lѣ3\c@go2eܒ.򖱌JAc(nbttU*+ 5$9U.u /JB KK4K+oSZHpMU +Y5!XHqEq7զO\u`OnaK  K<}C =Z+E+;ElOϮ+nTAH.!u=wP4L +8^%S&IolH{>QR_`>Œ&qI}U dk|V$j8a3ujf~lK-ޟ iZLX+cC  fc܃a39wxņ%>r#y1ݳ({iV@DX dz#X@ͨ-"Z EGh.8 R0HQ'.6) 0hs0 +ɽMr+'wh<)TS";A\dqC#%Wlr!ҚViOB4/sm#̈́Sf=ڡ//lcq82#FDJ7-sE%6zΧ2r17П(xh: EPKG,ƦƔ< +OQA`-cPÇȜ*J"B B N) ?Lϵ2ro=H^\7֏</D(G5[:֢8W:?J[ٌF2K ꟆW0U:4."4/ֳ ^OKvo>K|z`(ݾ\}}ɱopUs!lUKIƗq "ҶNjh_43N~ߙ$(A&6I'Iw63(c*Hu_f98Pn 58B-Aպ1[xɵX9d gXjJËyzHz@I!91ww'+-z@Su",(Pِ7nPn4H.6ssyx폇:t{rKlZȖAB` 2Sfk1j#EʀaZ ?$1@޻j*ݰTY]?\vxn<·Yݨ5wW|!3HpRf,EGæ˟>.-DP}}pE}@}@KM woi VZ]he +9MZp7`'90OMo+t1b0^Ɯ<vB;( ~ bB Dpyx:iP"&Ȏ`Ka |?;V+'?H;Ȏ`KbW+4i&N(`.f:Ի +?>0A_.,'WW<4(|y1iy*i0y@2XR+GW|?$q||3+$h|35F [iGoz$9xi.W̧AVF3|;.TeZ^ɠL5zh<{:膚q +FqBEDe{z6BtuW ֺoIz4)x%?o5XeET=5@يVƆPS'ĦP/TD\J/hHA9|߼#;ӼEWBwEcv +58Cujc}fu ZZMUj.٘Uj^o&ܓ(-?x}5˙xklh|HӂsgGKK\fU/4Tղh#Ֆ^KA.MO)Qg# HozZO37 sGwEԘ"iFfzImwҜ}BK^=4UgNɴ":iBQF)mJ+_F +TK={!{!^)/溒 ؔcBGge0)lw5K2aNʹ+24yS<3 zry )}:颋#Eb22=k?=eN .8D?~onIDmKo@,KE\)K$k.Jan0'8]Si^ +x!9Q<~!`қ}0I%Q+l]\PD<>}bT9{@aT]V!Z>[7׆tX|.1ѽR|耏#pTYy(IE t@Uxxe~w 6GfEq +haHtuSpb9Zc-|56 Sk-a( w,r֜"D,"nCT?' 1CvtFo`^RH]C" +L L!  %{+sW+s׬GܼhSPUt#>6.d3 68KMTrpMVmڮwjEڐsQ]]E[*&YGt3M{H3p87'#jȃWNFEb-5ѭSryKХB*k ϶i͐b4MeaNlR?8DRJy#"pdHA]'6"+TSZ=RҺt"vxьa{҃`7N0]QWpݺ 3Y֗C0pG -̐dYZi]<.|EtqIZFIY*vKGU^+ `i*Q>OlřE`/M&X!0F71<_Vf_ +~OHQHO,aQOfkqsr;p}SyߒT­D-[v : w$ZGrm~F!?G$;AP z5.j/Ω|{$%*?D"H15U9C<"h>l?%hؐ6A04}K!qK Û6h 0#^1;Z3RYBف;@/.Ր^Ww51&#:ci{"c^4cIOERVB1`ܳ 3Uؤ@.MNl1<;;V՝:1Tst^/na'P!{jO4Is$78AF̊S6o49Ki9{ԗf4]OڝPנ_w1| p4q8qt<*h5!\0Pjed`H %kNM˺훚Ml[-}&ӟW\ǐ}t?)=ĈÑ{z\ow%D,nQ W%n +ҭENH-7T0#F(PIav7yQ%l׃ z]ޣ4tӑ7v{@`$}7aYM,/޸a^̝&l5pj՘ܦeּ{ɢuZ/aM ]*J gB52H0PTYT;`{ 5z,U0 ++ +8 +M7/ShygEȧgqb& ;-9X(в%4E%(`PM0놨9SqFnwEn)In$ +C'kݑN'Ja3,鏓jIY# mP.1 ;J(R:j9I9޼s, +0?Y*D9`RsZAj\"ٹsStӪuTpK. ,ڬSΘ} ¤6elǾQQǭH6bfjݛD2b.qIB#{<7Gvˣfz*]!`URZei#3DRf-)1W1W K!j`dՐ2 +vD73کI ڪS Ὧ=>>7(ѕ#üJkoEp!<< +[Q'pp? e92M_$t$c-w`Ն_"{YNIj1ev*d^/rRkˑ]WI=?NsY,CbFzډ::^Ju`D\Nm׷42SC/Asy0Oc3kP1P߻co~da Θ\;e\ 82LiWCpz9s x71iZvkqvH9lHoft40rZlTn^;20<,˿Cz%,R# IҺI,w?CN]\QTNwJw[п 4u;ՙ1}u>ȏHDkl\bSJE|iHDk8,TF[PI mr,>njb8O,i>Ev'o(1ޔj+Lm4-)rH$h;{Y +J&:vj"0\B腂1Yv)a$fNa'`db!~m Kp Ԅd7K;e)~K_$Xz(^\A"I w!j5䉲,DeFI]xM6ߚM=# ?Ll)lSBTvydHt9`r*Lkԏ|]V +$X.rV-zTO,\; +O;4w=ūYw14B UCY|;zͱ6;Qrn~Q6F7 8X-X u*YܕL2A$زYy6כ.Y a-(A+PGU3err3.Yy:^r0= %U[wwhH-W~rr^x$ѷţLLy7`3̛٧ƮtY^.BJ @=s5v%;O&2]J)j[bU +.sWRVkPY@XWnY;=GڠN߀qGDnc. c~xȼF^fM.2@*1Vx i A&m[4֥j\H V lu2 V$,l&]Laj[4oq8A}((Q+ӖuhRZ.UvXz}G|[_)`*/zB5w}R{|c׎(D%>tclB k?=d]WذY%nb U1e˘kj_D픮qA҄HT!҄cuh!Vsԛfwė[IՈx vvm*0 4 +7'{'oC7BIS +E1<0AZӑ%Bbߖ+wjϗ2zkE%̫z +kgyqӚCYge[3VLˠ%[ud]p3H7[{֒ ۖY}k<^)1Ӑ(cN_+E ;CB1@x?ѷ9oGLČTFT[Vxh&A nSc;1SŪ!á8!BT哩zT;㡍jz'6}#DGd&RB2Wf0I>jQ1*?? kz!aliaze|}v )2wjL@5As; }xQDpq0}p;Z@pD-A֔ !t"niTİ:FGWI2(š6f|sİkmpM! {,5Q|2xW0 {2ȿ^]¢dK)z["|4"[[XJ[at f +Jf X $`×ߣX?df3|53Lᒹ|M\)iU0hug~؜]o)e(,өpꮭu*g=cw<8Ѯ0uQv5L_Xk$s.nBP>-kt$5k8Ik &6jN;R8 2S*F;(s;sOK;x@p3h&] V +m/a,;zqw{ΐ<55<ƑO CF=^GU{MN|4z$Dt>էꢧS0yjrp'"^2jʾ-TMO}c[1q +EE# FeBC"R4xeW9OwFI^OfxWlBa] Ydv +<itcMumTUvCZc$ :Mv]6]axԶF&U>RN>V4! H>PnwL TG{K7eNg)::=tٶ`i{i?vq}]x[=^,Lå{1~J{a0t?e'} 5*`4B6e> +>Ó-ą {#<~7߀H?ωqʘmiͨYx=u`-b}ygՂnʜ\ԍiWNjL:[ۉ|8(X%=cxuq@Ij]edMdMN̨ _Ȥ⒇ꐃvXn/) +>!j1J P{Yv*7ZFNgd p'v'NX~f;cxٙzZLAR|yMwDo }%QA[җ]9:*n8wwؔwc>8 dIZߦ ^}ECVr +Ť_Gp똷OKnOQ\b1l)$ȋxt 6r7jy;F^^ Ծ%Swv_ s$%6AʂH?+UBTM Ra,͒:~|  $GqS$B܃?6& 9xItTr6oEzH]*jڑ|S}҅л~ Rܢ̳U^7~:DC}!u3G um_t'm" +o ['xxn =j91~"R$iA M"{.|C"יΌI`xO*v1t.A:PͶG(ntDێtZ)JdoRC-q +61otB: c$?Dm}XL7~?AuP6G.GU0- ?D*&1HKKܝwDPY7z mo}[uWxZ]8@cM;Uƍ@8W( IAЭI:"HCǡ-Ryۿ0z+;U_Bt;~f9Ϗ<1Z+G (cάfC$La: T wt擓ܞ IlQ5>ԧyryxYw_\x%Ҝ Tũ<ӯ()2Z!q-&Ձ(+'^'ZWh)|:9 s<ۮ4!Q!oԓns10EG>kڈD25#rs|o_*A˜^nn~3=3b6F Y *|:{tkog] +.W#H1:r.i\XrDJj}>w&{K2R#CxGղȞTFU_Yda/$z@ƼiT|`lOW,*"k+,S= +z/pʩK~hiq FܽK +fӭ|+̪{ت-#bvci-{ -C(#C9W{ž%BWg۞#>CjxpzT7@Z +և73q0֧5~McA[1bSUP4fh32*8BW-5bȑٜӯ51ޔi V|TڔV񊍴(6dҖ6^slhcckBՖ{)HW:|NӕmwԲOw3LdpK < p/8h +צ.1ɽ-")ND6^C6Ă_J$p0*yFeYPp8%a0FXCJ?ljoZ_G0u."筙KWRǶrM5E{AN#y9<=.SX鼥=55vm=P[iA bPLI1&vsρ*-n~ƨcR_pMp-xp<璗GȐb$A^eU^_ڐ!tS= 70_d'\29D#X"Qlhc%;w! +%%g+C]c1gLS\}G=*͊L=zh#Z[\ >O +]y?ĺpQY3; +4bj 'S$xN`2$`d PY]$+׽Θ"ҷ@*g"cҜ3(st}cX: 6h#[?o)ů|!E%FQl ܞmc/[ϳ3 ?%wL0]| wmہ mO{mYmKm]љy\S<' m9[au2[U `o/-\n p``%t[!232S%l` <3&_l{m19nluuq؇j>GOlb{\f\tyjj +9&X!XO;HҌ LݴF_"-c"% _"%jW QI +GNs:iLHHЃv&D|Tw6׍Mlq2Yāȉ>\H/е䱻dÍGp]W/n%w0ܲ2pH p]xnww:};)7S _ nChk7؇?_L]_M S5Z& gry'ev'XJ>&DL K ^tD㗆I'T{7/cYK@xڦ&B;S7. ›)V<8TӊZ"ub7f1[s@᠃mZSx&MmͶ1Q_8HUu yFa2sPg\>Fq+EvMcbnG314>炦ǎB5YxHCAAp9vC({L&x~2 ;hw|Q$Nx~tN< qކMކAN=ǖ3z ~" +=ޣ8<|d޻v"*|p3E]?I{;@Es'Zը +%>="xbӸ9茪YhXɯ!_\)Q+G)AԌ*3l~{p}y ԮY+VnlT}quSFh3[ +ND}g^7צ}ĺJe^ eYƺbc_^+ TYK}VOힱukXywraujfJ񄰩˖g|j3 +`{֔y)7_I/Ȣ.̋1;*`c٬d7KEv(I7#PE +Q*6V$"][P/ L TVvfV`U*T\<+[)+*G^\4J4iDqR:!FY.K6+vSehLϜ..\qYĦid\l!^煿 +s7]YG _)6U/]\"O瘝xTKZ,dT3o*~~Eb]2o"]!_lZ6Z4"yK w " *M9Fte7Bb3žCA#%ؤd֊x1oC1"#hFGA2-ܙhVKъpBY5#tg3Gؓf^G :ZS;lWl:4ţ|^GsSXoKFL8 +{`]+;mA4]4 OIDuNޛ๲خRW +r\,j dE<xщ޳w?|ۛԔ=|tt=2 x;|M׉m_^@t,iwm_(<3})z2-Ip9G!u`yWb{ο}OHMð%!!y5Rfiu?3m$rc}.Ҁonķ4SJ"LY~%}}}CIŤ6c?t!+sԨhL^R,$T9T"?v I0[O,cX kOS.B1FZ +=Š ؞6#WN]Ʈff"鿕3+NG6ys4uk7p aoqO!NrhN27+n] .7֎Fn/O7rgfdي(/k*\Lsa+->Du9Kbb<\OCt?snK B7] A%WܑaKU 9񜥅p3OYCiP[0p^8BT8F`rIq`&B;JѪVJ<ಂbGXb r#g"k CQ,ҳ6ټEm3qbPZVT)^KE v ֐袝~2 Iuj,|Ri˞myW˔[vCj%ew&Z,nUMkM9+m&K4~YF%cY)-B|X~Oʢ"ࢶwI}#`l}G@2s#:_ м?hO5c~SR#lEL8qzV&IaKuq̜T~.!"=6\'/6Yi.lI'p !A`ro!:u[J.PwH&z4\Qg(9_+nPh@#n*E R .>H+| +J0dN+r@kp45Ad ˣi0ICtT&ldAJeE Sk2|S9j{;ߪv_~$Ds~ڤu)k0l+5 +n[]Va)5#=:jM5;Wn.7HoɦPB)~X޾y_hjROimirWJ/8Fᖷd*q˯~w_Дp0A' LU'DewB9d?DdyWnj(uީSaͽΈ^6W*/&Cʆᒴ,7)^7i^E]Y!J26 u-9aa-`e8|ۛ,?*fj$I@IL9TwA:6OF^mT_:fXWߧ:_nIMܚˁ(<Yrp6ټ@cFwhl7@P$/7>mF ?1{m`q Gf'01:Mtxd*܁Mfbfw;K?C ?__-&x$Aj3ΰ,EvF >~̓bIqѹ/iblxiuuos=oRp}ͼN}6LT6= pgAxxUMG$ pۻ GTiO$^ߦ>OBJ} vLiy" *D +cg#&N:5T~?b]'\fXBi +Z:ڸ;8r?):ܲP p,,kAkE~$Mb?ޥ" ִ4s=|`&R"ThHWiS~2e-nלb?D5dԏ +]p3b5\cPm;Ϳo`~ǹiNjyk&͚!s [Ǔ;ȹ׿Dlb]tq%76a_8%;2Lf[9P佚ϡYVl+ô^X2@ +bb, \^vRV5㴔IszQËkե(cM-%TY:s q + HL q>^rbf5;ؕS6{ $b$k/=i_&ݮhj7o 2rDWV͵G\,vy=n}98aO +  z7_}}kc'ckZ+k*.$)ۢĦ(*@7h{2B 4+aQsrߋuƦz^y|\mp",K37IH? rF"'MTCϡRKKK9*W<4Of~pjjiJ_0lٮݿu-*U3.p?i"fں֬Q]s8^j2P 2G&sj)!|!{V۶8 E& pU7 gNg1rG2tdҳX榦Q&ptToQ@qVۘ>Eez;kUv==6(>)*]Shvn{+@ႅ!e\b&*#LN,$~aٱ,y}Q).YѼb]j]Y\ӫKH<~zss%GЎku{wvOErOu!SǢ5֟6Sg-α'S8ЊU |Ƴx׃xSxu6,Hv|ZWs/7{DDP8PYPښL==Ÿ>9Q'nHN6c1ŸڼXVS-R˚9:i?{"2:(5x ݷY %Tiz%JAɉ_jTƔ>yr-NL<'d!~<9t/Ÿc*p%D$#Ee rm!J`mU$/0mc%ij +)k5 iϥH5d4wԔ]hj6bT= &Ҝ=[hīҳ9yh'%E:<~V:ArlaɈd5 !8 ;G *iwDIFhWBZI{ vn4e8˅xC':RYΞK +gF6-(&Ւă\) +3D /SeB</e"jYs@՘Ωj=,ǫa{O7&9 bKWŸZqZk?N*&h>{E0z&y>JNUl`MvHoRc..X#22OALw3'5㚓4 ~&F%"Fh憕,ŊR_ +0).@;sW%?qa +}@Kfi85gC0$'uz@ sv = +ro((3mKvgp0XW2%Fʮ~Ѿ^Tꦮp(2laكn[C⍥MQT*ÂcTR\@5gȗZH3=LбR^u"2S',&%c e>F^Ut nQna"+\OׂDQxdUˌ@.xK B.hѦzW 7{REu m +>cgh^6UiԨ:b]&aa**K&Ԃމ:Dl#Q[ f D *a~a>*df~LJul7E65gpĸNR%mbLmCԐLQ>>A=):al5c \VT^x=u{IHHȌu&@lRxwGnl]#{˾lKyCC-l.gzh($Uip?6*3{ʈDa]]Ui{^JLEV䰋%Rƍ.Ͷ|FW}hL]G(sP{_$L3B l j悳P&yb7@Kы*Y7SQ{qtW7 F238QCn ǦEf\jz\|M_(m82z?xJ:cP${5V=2]=՘ޮjJ8I, ؄ ;bun{kڡ7COo%UQcsE:)KkiyVwUXD]>0#_%7SWLQퟺGVa8m@T-.3_Q-FdCk\ø9lא ݂vi(!.% @Gj Y k9/>r2jNa / :j>3'ߖ/v/}nj^Ve%<@M01x Ն'6.p . \1W +嚩eEh+vZm!kaf'Jj_zTˠ$6* A Dfay]twHW֧kMT5?ұ93;WlFF_) 7g#[;G|:%^!K%aAE&b,XRޯzFKKccqhqI+1346 htD\vI Q-.вlv=^Ɇ5U]; M=9w@6= J/"/5<Lўt._9Ѐ_#N47{ü/tCZx(7ķq ,oL= η 7y{FO]9җzR<|c}Kﹺvp2m7Wbr@\Sɸw#?a; |W!oe_z˧~fIOD/&H_L;IG\d8桕53mh[yвu1=̚Z0T\Q67W,GOkLݪ]aX5 s82V4ݏ#V2'@'MQ>^zpQ!|&8ecd$m()s +m1k]WB~ޭuΎ~u> λ~C@/MY]}j BhiZGoJQزLr GcT@aHVC9QǬIBw61-I躢K?ЯdڜԶ).M)dо=JVɰy4JQ{zIqX׃'~^#ӎrZA~_&bş&bδ~ \-= ,L ۾P:zovp"ӽBV'}{[V=$WIkM; N͔ + + )ԕ7g%SƢ9s e#*VU9%mRYJZjJ: e6t54.ڱѥ*ZZJډmLjLńeN\@OkЏMjc+MJNPovKWNWtRhXC؎QlM+NTyLV s~-{W#2/q)UDv-ct +UIqh-c?IԺiZD\Ǖ R5ɕǜ[lc>G&ԭcVq7?iІ;B;\g: ˽P) \ԮI|u. &:aOw::'&p$ i:{ˮ_Sv:5&:3qx'nE!L$W2Fi5U&v:w &p/W*(k%zk#4 jëMT5eeV =T"X;tP =RWB=gf5PxC0%jLo_Ry78GxU&;3)oxγGz{{BI %aF>j|cAJ0N60k$ YKo%{$Zյl_ecG(Ow2ף2O)=MJ;XF. Wg>aHeqsL'cD#m0DyFEO^~ݲxPy  S4yQ)սʡq6}~'+)NaG8gm( ˣ81OלK8+ *Ե}D"#IP(OP)O)OX.vþp\B4rT +NJQrT2W瑣:Eid.@yͮ8UZV/1;=Ntd޸0*eс /<ZAx8A%M~&K0 |AFѦƂE8Ȯ(^L+Tӓ6J5S[犦5o {"+8 FXr}E}KRN|$o#3?c ;Ż8|4l":jĹibb^ti˻"h"+bBݝSr<4=cVQDw,#X>NX yg}'s YMiք:Hb Z h B|pk;<1ބ0͒ME QFJJ~ u#bŻZ]#@OS:,oN v 8b!>JMI_l>*tG{^&64 Vxvv՟#Pf.ovN.v/9}.I1*xiR3nQGKMMK ,Iɍ4 "lAuMn+Tl u1œpFJ #k+3yC.>㲁 H( 9VE(VCD&sQsgÚnⴉ5lJ5yV +*\MS>ḵsC cHSbOZe|l9#L'QsYARtYԐzX[3C,}͘p3L)zMxD.sy!nY0*BH0 DM4ao;0z!.))v%A3/VIH.Z$&MRkNu.E,bg  dl;lNF\Uדx1NZdq=ZA`6tfv34'o{ƙ/)[%vYro+4bթFd^, hY2AySn sEEM;{,FYu%qaR5^ʎ gbDMNbJGMrLGrЩ8 +:er}X;h>K7\[37dVo]o9>@ߎ{:ߔ=X;;@ޥ;7^knX܅¤.hf~EMm( 7::W +ex'4rJ v"}*i{CEQ-K¥yc)/%%~|X!`JJ&_j'uw0&*hUed{]J\MLN;FBQx':} 'rපB(-.ww +/&xS/HODQ[ЗL9MbDQbAELGd)&"jnv%⦊IXMezb ++?]Q߬^\)@\y11!&)ܼԁ@D鞊iN +C\us˴,G _áfٶ6b(s/#N-ՍFNCrQ]ѓ(H|&~WХZPCHWdf"G|hfZMs#vZjH}Bw Q&^:`ꨣNUøp'/X\Zy{ ө 2YMP5[wIJ>0N߼ iLEUom6gA U#Y z} m`=BR-w$ifCH6+[/W7BhNJUW|K{gqo2d7aS$TjgLCH^}%! ^:;m- &O0-fHq7)ሐ,m,vj8<ϠGi1Vm62_e5 *h\-J43r5Ҁ{9IjFcy]0mN2)*! y$ O!ȅjP +Qj;m8Db5g#'횽g W0F $W?"3eh$Xa8x|?Ңoo#Ft{ +HGCZDbn3"Fg@VğPW:W mda`{aB#ƺ#ʱzBVD/wakߊTp`Yu+>I8vG+?*.XZg9Uq^ᦡmTJ5|xhk? kkk2+Wm[mmYm[w=uʟbndX9n`Ժn"Cصr($AtyYQ#In5KVtu1E;@զsD3*|=xq êV>#ɑ;>/t ttŻVJdk痓mqX<vpR/mj =$JVDw^$84G-ZT$SugK r0M z_gYinu>yFϜ4>o4)խ8VM rCmAjI=$kIzdz]zIOw7tt/!>rpJ>ہdp[honn#Z5LeE1 +sq6S7+7֓7kTA2J9&max";BK=mmSo z5M ,9P[5@8/몍qٰi@}ɏV>e`z\u]OfKgl!'%&BEKzU*i$.9fGH۴@HʻEI+\ p?oYcH5N|C<#?\:S-Xd̗QSM=j.ƃNiU7>t;sߒwPVTTEՆlBĶްR"X3":L}=[yq^BqQNOô# 1g&ڂ=BV ejIkr^LD^y}MH@|0_xx4)6)( i4*cf^#sÖ^aˈ/5I&#D[e{.OȏpqWQ#s#ic#h6Tu&|&hp@sr@@y4Rݶd?u0b.Ŷya~cHF7}CV__Q2>Sv4BV;4A ?{}eէ%AzlkI)cby8Laz1qVXMit +Vpo #fb.#4R1(%Xp>4+ц86R1N^ @+Igqmq>NJsRG{Ņ`F$W#u*+`,U%By5%k3m8Nmspm*ctB+c>1̻+'k.#h[Cb³d>XAA4fZx))Pu?EKV΅c'l8/;. 5G^,~T4(H;7ZH4q<@7D6( F\&ZZ :\7=2ȷr4-#8( )yXn>m%: {V%g&Nxuᾰuu0amUO_k;+JJz0}(Z.Q1Azީk0Y5W &0\4lV,z7XNZn= 06NChW2!ԝ2%YGCŏ`o< 󋞳GK[z_G+8W`JN>,0@—/sD[(Jb'#ǎ{=)|('7ƟE7Sǔ3af/M澦dDXMDf "^Rݢ:͚oa#`hs/Mm\{-)ζJ' +&HC!CI1A"Y+UwT6@hPDttVc()'&Sd9d$Z CO~(7Bu(kBs xdg +!# 991!-|)9sOY( +]By|"p (t:r.>8BB K?2R!(2; \"#sv0c +]t +W((R(M +^b1c +^$?B|OQt-t{l@Dqch)d s7?2]Γ]eZqV6ݭ3/)+]ʵi:I;!3gvԊC ɩ\ZKIJ[Ψ7T1%(9%9{l)$~5*V6eP{]v+olz19^=%縮Փ^7ø7SQǃ%_ǰߓl5ME;GSZh [6 kѣ+ٜa'/C1D}Qt[w6@ bjhShlRbY"1&.9V݈S] #4 k6X +m|YiF@*Jm A+dqkn'eR95`LtfK y D/t~=4Yeא[ߘ$iD9 +Ȗkt>CN0W}/qIlK`t&pF-F2PZm]Cj&QZ ݏ`Һꗦ7d]Đb!MR*Vl_r+JbgjY@5ɌTx`ߪ[P1gP_)T΀H'v:q0S=Uv.]t{.3L7r-?w/ξ*9t—+tK~@Ŷ`ޢܔJ=Φ˃;d5a.Q9&DWR0hnҍ^\ tZV&"="_dY 5WB*oxa(ɌkY0r9 U<6ѳ|KVRkuu 0 +;Z5h_UC醦+SsO؂2-OcɆu'Eu@ZFtf_8Eͽ|AQhu&"S"qwF?p~ wve:nsg>/0r¾Nݡi޹xa/:% ?<=*>m-^YR͢Q iFM 4Dk15>`@o$~XL;4ZAqC.4˜#פv}py¶ , x*l{ť8[+p߄o +e[\iɺ$R3 Q]3AyZA3=Qh_!RZn,R%NqZa)YPP!<=&IMg~ &%ɤhR& Mhr~rUr80g+z}IsRζ1S;{{a}e~ДS Z Oc]ԝZE&=>({\ DXcpLF͎K=GHh]w\;w9l-Gv=#!^֬F~ܠi֘P29h[쾼b@YO]!ZTg$mX; DOZcj1WAiy [dj?;s"[>~XJxXX~Vo(&*@g$P@7(M7t>-:f\0ˋ|Z 1Zu_(b2?j>WlV`V"%*3);ʬ!hjh6"a{ܐON_/ +gb'kKK*7ĮmSg7m70?fw8 ƛ< (=@ ʯ=-I%C-}d jtVK߲̼gT7a(Gd~տ|nSX4~0TT22h]0hH2<}^~aN~´xzcy\I((.]S6f;q6haB]6j\t⁌uK@AAae82ҁ%1PQy*eORYVIy{츲ao8[ԟUUį~NlOgfz`C$Mq I NM'[-J,ԍ1b +!!1@pc@lH(ث`:z` x`y}~`ax: :[D,%;!pn5 ֚c%R@38[Yȳ2EkCߩ%#zvfB8"h@g\@Bޔ=ߓ6rGu)T% M ie`|D&@ J 3Ehh( E3撿$oUغ.d^xXS9Ud2mM8y?1d>.֏h(hTxTpG'}W7㗫g3 a0O'jSN4l!_WP6X{l/ +zZpՁ0߼:069cHpqrsHQ1 +$#6agM8Y{)GG'YFMbqqjqnqtH"uo?/}0,vWk5PNyg$sˋkdα ptO ^Wїg}lWnm|՗i/zitIvzn1c1'<`5e oPW کݕ.Bߩ@n :W%;]n0L_o1O#֞_2@:]3^%s2n> ߪߪ"n`8W<!;֞#s$s_" +~ `N%`N `">o|g/XH47 +{ %= *Թ`YR1g^N> +-d~t1c +\79!ߔZ%CqDaH bE9A&DaK0%7ŋ,L +ѫ<E񻺿\sEg01BZ9EY NEmQ ɱG[9VǶO QNJ G qrNHYD!wͤO4)J'\}6M} M.G}fӦu1ӨWKí {0LGvȑ$" ( %t͎M +3 +s4 r6aߘ| uK/^бbG ;;<7JF3np^)3{/ZH{J3;]N=>=W^[?_eu7o;.=M=6_QQطK?R^`*/J7WgS5]7[[5dC˭S1@V~>f;j-M,N*IBGBfq/H$.ǰ%i!Hv$˿[Z}nmTh?itup~1( mTVu!bQ͉UzW`Fܡw #LT"L4Byk^R9[V % zyˢHmS <*lKxe'K5-GœOE21D&al2l;r_EREd"N8TH `Xyl>W+#Gs[LIʂz0nM2rm2KezD7kPi*jQo&H1gw]/pEwe +)dQeTZz47 N3֦2q9W?&g/{2[ +\b F<]"ɧ]N??6|HUXΆ` =gAÉk mӢYoRDѩ~=AS7)PPtu#€-|yKkx;]BKw_z>^ v/b䟟a{ٱ0PRDӃ +Em#4>rYa\gB|^G _(~ ~pޥlMļU $_"=g؏g#H=gf^qoHɡiI@ H:?t=vxu@?5Fb^ړ:{&xtHuBEvvwooAqp!jf5&.-k/u,?v<,]_cfJMM AP]:uo!mӏfnj_NNs 6kf KA`*G? 8t':Idu)ÏQPcaRcsN +Pyx89>PmWlӦgm"9$ŝc%#-*{psL\ (gxK0RIZR?qTq-$|t~7: 'd qy~t%Y=hgMV/9mH"[Լ|/}ߙюę~>K"nu܆(uy@)/@UI*覱ٕ}It"?_uYVȷ}Lo_}a*Eς:6f vjg.ITd-Ie绕n j{ [QPnbm@ɬa8",=\$5V!1.OxK K,۟n|{ -#w7#Cf .MUrۄ9DmX1d㢩?5.̉%QjQSTLŖ&oW̳9Zm6%qPSQq +p#^BM +/#TW,فܠΞ<X +%꯶U>"p~`Ċ&ޓʻMA*Z-'T*Z·e\4a]4\,^k/JynmI^e` {nͳPn6tV74W7k V2`ĽuF'~u +ᇊK4Նc_Bl,kN5WvVioIkI+ZBqh: D~2Rp#VkvG:[Wp`Y(59`i:3y:kdDSqFJef6 4 0;Yl^FlAKs7 +S>y"mB:7Aj9dDfb55vG^2~b:9`փ)H~wj~jW +!s]Zq{YwMۣ_n@|=6hd +ʪ'YC2d]FlE*6|Ӓx%NbBFRcR9aKo{}&kAM5j֒%*-۳邲 VŤLRYa~JM*VtU]lh0 iu/vt56 +崕*e +9옋Fq'C z eSM FAG^q3& YsGeHM:.ŊfT 8]1:a5T#<.㽎"qgs= }f(!I\=jKoBԻ)xZ,1{AV,!oM gLuߪdo)lP_KeP%ʊ݅:x|]:%5̨, J]&Ԝ|m/LwV ]G₾>TaVNH\Q/ΣmPWW%;x[/"oTZ/W<;ϐhIبtp皠V@ФŒ.؞ +ж*ް>hm=΀e5}>q^t}#+i !+z +>'s{94~:=B!i3dE<ĵH3GB:s!n[$@H+r0C2y t5R+ s~W7\n,묷;?`lLsi`qչw~p^KQRo QsQX%FY鼧rI{XNPth_Y>zنjH䦲_Q0aw?~jG̀K^FK ,"&1J8j$J+A:K1ijhƈi͡_ܰ$ +Eg',Fv5Oz<_Y,ȯw{HN7¸AVh1w]R'?ҜQf'l +,H#:&:絚 DyC% Cb>Fk`$-q{ȝzicS-vy+x8VVveAO}a^Ws]=-{ٱW.Fzf? ELل5*]*: +9jM 5G]C b"~ύ+Ut:iEi)Hr_3Nr>?q7Gw-ǔN*Nʘr.iO<%C?_~ mm5 +Y\6jlj3iȎ;n9LBL*Z03|;*AvP}Cg^D_D+ mr6Ԟg*w+6V{K-qbDe[z -1v+䀋|fY)\[dΛ3&'-w1LKR㱅Ƈ@ˇ㐭χ#"T'϶uM Mb/b5w /4f^NL+ Ow"- +/w񸏉Wf`$w0-> v͠ +̇?w +OΟNfϱ'GҀx}{zPQ\6554|:༢zxussk~@8@v19n)^jϕ|bj|orϔ|-G pw 3)fYKd[SW6{fA/`ͣ!J@I;2OG u>ƒ5Y?/b/C䁫xxr777f?AbHBc94 B*,ө+N N%m9] ;D*4#Kʼo(aQTHC>CbNl@"nMN]T.+B21 _ѱf}iLLdz j|UGuOׄ㞠? yCԍ(s m1/nH !'_'E_ cyFf,iWȎ^'UʒϲIOQ@>BsLqCsBs'Rt3 pܒ9'zB'N3 B3iǠ# 29`Ѱ*­/U Hjr_yğ.BD73S$yF"&*&H_8 K~ĻA/X7}3Ljf!}.LĨ+ 7Jf.8_F+~>t- ~z+R)~zĝ[ !"2O+aW5aW3aW0!"^-mDߠPKʁ@}|PsU͈;;؈;;F77ALj;SG}9|Z7oԻ])-gg1.WJΕJ_TR7W;o6#۔Δ}o V5T~WƄ=Y=OAb z\7 ?v_.~\T75d_>g(dh󛂾i {SE۟I^>Q_?}by}r zg|||||rMzgvwwOmqc{>pEv>O#oi ڢ~kfr|nt䠆S)t͖ĕ +%imJdwEE؟QY\ɽc`5?ՙ a51ͼ}czvN}k}q9N*(e^{$z&_g[\Y:_|-ߘy\wm!bSŎLk=ѯA 2DwF&h &-qVKM]Nw@F7rҥie1@'lM.X\y٢s0 ly?66Wk,|}ЀDٲY%%ئ7YFG:3OY"|:"gt`5m!V6dz  LCzBz=PCj~qkx Xp vQ8^~LބjtrD B"[Pb t1:D( pHr(hsF0Qgqxj‡4 (' 8ÔTJ C *")ԹET,Z곫}Z<43wUn9Q?|,}„pJh4hbVG:2_"=Գ2A"Ei``lO҈R `@;{S/V?辶C^z`n}O71-}}ǩ]))ZY;]_0],v=7huQM>M=M5];s]UᥓrJ|߹Yx*q-j ;&`eT9Z1Emc nTA(ޔ9_+pj`*uNZO'*r{}|aePSc~q t1*˦XC»5IU1*3Ng"Cks)T b ^N`$͕y5p>}2͢c_W?u0i8!=~ B +WUyGWyWUygp%8d$;lW`!_QE3c+Gj֨Sְ^+ īYc_ACY|ՀbԠ^¨4WрhVE1{OJ 9l^a׶ llڬW>t=h*jDଙ8$Y .,mE)"Ѐ|.I4h9۰a]iN @= +&Κ6b!ddb1h"ݴߤDUX":VbQ]ऎMlB׺=  4PUۿ /F}1zM&oVi 2Ȼ;ūOCͦtݫ?6PNjJ rq' &Db.tG~04VNGATrի, (V.G+/_.G-6([U$od+Yi_'";M`1x/D۲V°jI<ܼb `nyj 'eh7{g}Q#;q ZꂁHj{8?-lE,d`R3>;}eU~PAq^D9Q2)CU0IǘV:ˊBEI:)JxZRqZMu7=Fvs1tW;JnsaAbO WjOVj:B`ܩ1b98HϱiqCpy3sg%aK&y<;>'sH|3<$]3-=3Imi 厺9GlD +{(uM ͤɎ2M}*GtuFv1']fY{+f~+o:ľ%eY։~'eD `Owҙ#LʸU#g_P!!)ؽVEQQMygw\/y)ҫt̋8=6Iy2Tz:|gZ21\$%Z $Т(i* EX)S8>r])I#SMz8`% )uSq%|"ôkG(L(ӚQ葑v©eS.бq*Z!290O3x1dgГ#8p/)JǤ0DzpzqI4R/t)/u~6O\*>h4*) ;^<({ܟqy;=0:"8@b\8hc@8ʳqHW4\5I::'>8SEI:J:Qw=(;= Jʲe5a<=þYx]yk~zA7p־8>Q8(Jm]ݍ Ln_oMZ̤ ɖl\T6]*|-)PS# r H^¤CO @Y89ܜA9dZxV4ġkkk~ʝwqLq,%mVjFv)60݅"8i xxLđJ!lۘ)Yfa̞%mFK$8RrP3"3闢:npo= n@[ML>3^=%K2b(86vl6,{4r96 7(xC/$yʷ6ML<Ĝ1L_g__'&|Ռjn-=i"/ Yvm6 bVz%(Co܈+@QZ7\, H'T$wӌkdXoXZ&yV}lnmDnL4T[ |N|rmlLxX,^vij<-˞C__Ux(";lDѱ x sF8 ؁+>8sF8?w'\;L2  ΅kq?ן ; +FpṾW&[irw614QElXD38Lku +`,W{*(`P0 T|f=`[- t!Fd;=z}@Bh6z̡y9i}`N=n'i}^е"nrw_` K;&4cu({!3PU=ų~ aY p,~w_RYny #xJvU5>{iC0)%PF>PZپm@(SlVm +YW,z +cA+C 1a\IBPh/D`xEUg-tr b6^7&,VDk +A2 r]RgLfw$M ^# X +\Q_׳B QIOnl|S?ۃ%: +b=npіY Dno_́: 6qxG WP t/umqh`n+GgA gSjnj_x;J8չɡ +R6hUI! &c\1{UƇuy >ǎşA ᴼ_\9uSH1]]6Jw J vK NKwq(0ᘰhd FzN|ș +J\!SYfAճ0TÃ1mș DR& +d8E笽.llv,O NŎq䟜1Hy/]SS;_9SgofҥS*rArղM[*5a/ځӪʖ*Vw,!5^;M=?#i*l#SV_%ǐӋT-TlOO1d{ +>^d={( r+ =WU$W7gSΙ@ISǽ^fComncRD <&n\[p"#Y3앥U99;Wi;) 83\(;(Q[KJ3&SvN[Ȅ it=A$'Y e= ޞf@{ +G\}OXm q.E[CBn s7\Ó5@Jt +\C#}c׺4:x|cG9p= lCReʼn꤇}C +=w 96TВ PE ơ=dgAO7g^4@EOPNFݴxCs0 ;dW@̢Fe͇Jr8)܍aZ"wN#@wt 1lǘWY2іS#A!.3.vsU@cJ'sĤS`ܳcӶ~V-rV-M_0HV|)\9^R1H+? V`%ZdMPY4N:@oHHW[eii.(sVio450":Ef:cO_8TfPk>x@MTӂl~`,:ddb6HOI4"}a:ʋ>4GjH9뷘C*"<5~$i<yմ?yV@=jJWIf}Ϙ=Τn1 ?3HI[֢ +GX'([ x$3-`A{ZM\xDTǁh.0Q'7S $el9Y 5y]XONwd_EyO-w:O}&QZ9z¤RSޘH.9ןtB?Up UCd8WZr\Ʌr *}AA݀.1 ԵXSe>)nX`ZsJRΙܿ׼\[_ߎFnI7G'X7tжQBӗ4ҩ5HߐPkXчZWBaQ3![DM`Q2B֯%LESNvZn=l#QAˑz<_=`׃ˑzZzZc&b:b;~]2H''j@ -PWH`p vIYh{ "*e/neB>p1hjb‡^"̴j +Fi +ma#GԘSE*S>E P EH#G :Od zΨi (U"r bԮ5qc?c-A%϶m۶m۶m۶m۶m۶=kdFe)s!*rXQQHq(}b#,)h@⥝!gE #KLp2BƋR4 IQښd_> QduBbd *ȇĹI V BL&`$Zgjǂ j%DO#ݤnk'c0c"ߊԫ[ (Q7}4b58\e ^-Ds'רFw;DtMbA7DlDm4bf28.xLg;~e& E{_R}8nKN=M8qӌ*kN%SEfK?@ah51+]qT_[a# a߬p|] V\kZanwowWviprM9!@Za՚~qN '<58~]I]-Ĵ5Ra RaݚpqjÈZa´ jrVٍ&ʄ>u!~j5D64%xo\C*j?fO* Cvvo^+la~%v+!3syB!Ͱ 0 Ͱ Ͱ8 EuULͰGhh4,_,rj[_ٗ> 8q># +Qgس_ֽ;UuZA^.!eAqM^եFWT3轨X%Mnn'LI(q'~*A$]RH́7:wzAVHN h0A$S]R#̛q.a$]$qHE1h|%ϣ58;\Rw)$"YGÒ&v!)07ϑI 2 TR :)Ř:I,$:;,Zv`,hb[5٘~ʿj;r"!$dܜMUu*A6^_ju3Ȱfv@].u~#XӤ:cq5xnemeOmeϣݬ1E=ؤݞ~eAU +%1b +HLv:d38sq3h8"ᢊ Eg8vrxdt]^cqO5xnJƮ72`e'M^jV;ZjO`B]˾@f0e3Jv[˾bc3D*o{Vۦ>ՠf@{)$uTg=C}fu3Ħ J-:_|*d.Ě_̓3Gi=̧&3t8vC#B#E=</xUpd7ɢ$Ĩq]bc +aχG$rfoQ~BQIyT΀tJ}L9wDSrrp7z!ۺhżlŜTՄa7CGMdKI詺O^o,2׬ ˶ɡ-#̬0yñ$£KAiܭU=kqCm3c*:nQY@7n*6L{;zϢ Uѱ6!p7)5v>c$i!(w&ܝ+/޼snv)G+GXo҇ mG%c4]ӮG-Fc7t +@H^G](<]ïOt! }ge e$ %_ٛVuWT:5Vf3@W > +^MT$äQH'HzPLVCGGoQ&NfJNL,KбK ,]B=Q*`JdDIOYc4UgL3oefB6zpTQf"gVI!"lxA"@hA!A"hABR,XST Vt48^VƒzX,PPY,hP]`Q5@8o" +^[Q'l~9̷ѿ#!L1`&D{%ZC,^E s|MDݺ-ՓY=#NLnbz MIq># GF&Qb&QbFD3찄FtC#XF#kF H`1: $ Qb(FE`bͣ˾*j]X+>ё& F'Cɍ(y$F,*rLљ[tYMX{ųb oXN}pqXO$0.ڍj9SKaMj=UX[uSqaMu\[UEk87h[pS8f22CGXR a@޴j ;K4ۜm:ŎIC8κ/&rȢ@G."Q'iWJ' +\83>{1N{MB A)ցfrbf$MWGխSeUHI0r|J|dVb)2 aR<_%̆(5=YF׎ _,/-A[]D$R0!K0@Ѵ5>B̡NkB%/\f+TK"#="6ZTQA21LwYS<ߢ< IXqhNד_ecJ 0kBD͐,D"|J@"c^դl֬QjVDvKWٮDm\)$]>YZ]UzI˚ Z=:yu9psܿ$sTnOK>JAxhlHA?.J&?&Be|%IK9MwҾ ͋YselՅU| =e_ޒݮUܮYM<2M8BKY7bѩUn4vM< V zf,Cb9VlXZ#RjD9jZ+cJ_bEOB LzE/yL,KF_/* +彜=`z, 0!?K H\wYfm]ԕEP66Ǩ[S=`ǐV\蠮cM:Bnl"m8hn5$]:MT _8x6ze֧EIIJݪ:Fֽ4l-8 JtMϛ겹ۗg&CL[02xחg5ɱDeT=((Y' QdAlAun#hAvFt7cŐ#ǐqc8 s/ s݇q$r1s=I1KGLYUַJZ'jzl=5]'=$*5_`+sR mz)>Ҁ.`"H|{ONFj.IGXKF*8Gx&g:LEH?E+IX+*,3oKO-8Y0@q]uUxm|cQRbެKoE=s_E7I,y ФgN/57HCOX4pc~ ۭXօL`cGcz"ףrbdk,].,dS{,;9;\ڤfjjs|捄ɏ/YwRgazx +wpx餝4v,2SF"6=~Xmw_-~)Z1%ߺߥFů%>YO-OT)X^Ub[ >&ЫuV=Z0TV~)XpgA?:&)BPn"΂ +o{@[ie47P0 fɩFMi,]1⯴l v?Rh6\x^85A$\(^t7>tu(.|f}xq[Ŗ-<66=2(5"?+ $*s(F,3K-ĥG<hY(#н'{AQLv0/-ha/iYֆY]z$ sSdS-CCFEs%* QuBPzgnƊ.QÔh=SՅr=hm_Q{*j}Sփv@f=(ˁMK眾NΕ fDf7&E]TAiWn_vsya1UmNp3c=BJ&?Qq~\@tOݏ׻7\3/a%܁;87յB>I!!4)C>3ζVͬ1i*8UT+0 '؇nt jŠ^Q)EaWi5I cXV-N'EC}eiYDujX:-pClS@UdԕW߆Y댣},AgVʐz׈fx!U )ިz:;:P<356'j]]dwP5+ܠA L , ._t_c;'2 _|<`?Fߑh|oYg D|ox^p~ҿaDr(yL$ׄ(F ɿ@%H |'`֟A6ARL|ift@`jTHA@pt |o A2`C.R0xhC~r]i͏@z!}H1@qEjP?(fd &3PGY_ )[-)K!E@t +UBtǝ)R0{48m }~0i4T4BA(Rp؟`"`%runNxS?G0*{Ml~P"J @ΘBJd*0)($Ub$1ҁYbB΁aT:coMǷ撄AKb==C 8=7ɪ_ud@`-$tvԵUA#|yA\Olב +lY0s~<ϙjbml;.0LaкtEˆNӓz0mzB8h$5{_EX;Luh  )(? + z/[PwV0@0MZ[;n-:PgR^z"Nٴ?].O|rP.jզ::`tlC>ěN@PH`lwzVkzY7V8}s^y8qѝ.#?S < vk;DHhCkEy-mgbU߂f$?Z)~"0!ds 5S#ןzxIsv~LVŒ jY*Дn9~([*nwT겯CS$-}AcP zI+YNXL4V]h yai"'sy1՛Dh37ɋ3η. v7MNնFɤ]᩿'`Sx[ y[ThGXJ +#nnYI-ٟnox6ꟽ$Px-,y%y̳Q2i$sk&/I\x*Yms3!CbA6UTB~U9TnX9smהBH_VN+ļ`5Sִ]S<-#ez#&cH/HQ5+HɣF=y=.vOf -4^q>@4O7xr 1; *D~d-;la*%N8C7E +0[w2Z>`(; +joAfq3UJN2 @|xBLH綖r+ZgkUozSlczԶ[E-?t>|{h=){@;Q4.ǔ# eZG]k#D "f>U~i|*oa)zh0HvFz]}bOCk3P1p!HsTBToKޓ\idE +⣠75օR{E2f5%'k s째 UQq6E VK[(@_C*kQ cR42gbAv %_ ͈tVŽ*&ez&%ԥ[cgi-W *M׾/܍ YL3;n.AʪbTJ$f, "Qe {դ;$p!6ݱ??ǿPxb{ބ̾S߄0J #w-1]R4sIՂ<taˋ!Bũ$ChbEƠa⯀/0;8bO<, KκK~W&d F1ԟWH)ԋV&/I1F\teXXhwItZxw eў5fPpLBvD-b,:4 U){l1ͦ&&F-$+V#hأcpCA*1b`bkcX$D$3vH}HJ\0 Jvd aӫ܅֐6߿znwdy?DcHD,УaVJCŴsR Btby`M a$=aa + + +i; +co; +b.$|7( l<ȩOg^fajMmMu.f=XrM3Jǜȸ}i *d}%^YR>jZJ/M˃(JJ2;DZJ&si jH? />9TSt%lǭB3{׉\gK15ܫ .{_Y7;ڎ襮3t]&GpvKzTqY!N*<9{c };St%\\jTT#3%'2]#wN:RѩG-4{P'?N-J`#f\Lc]Ui2?r4bCUKnۤ^=m%f#DdSX@r\ȱjd +d2e4yde/om)a"wBVQIj@h$AedQ@2\wN1sj}HL4!\B0i&K풍ZMq=H+TO5W, Cnao=." ww=\_<5H`;mDؓ/#!{|/5O{a{)~/#G&mڰ`\ҸL R C!0Muhy(8Od#-ÐgEhʀCn,b_49;a"'r' ?L1QҊ;0XxL_BJ⨦j ދ=ڌtȌ6sPF8^94K0e{ݙ֮$< 3JWE$q-p]Ӆ~2@ơpl`\J&wM#q+swM3}X#Zղ`arBqF4G8&VA([x:ئ=C,M˲,p +*k( )BB/ _m))UE[⫞N0@ ʨo0ԽއT,K,kVcVO0덺~89#A%A&/eeRj'(P[)EFќM="#SK`d]]Mܙo)5o _]F b!cDƘ"`-x|!K `8-Ky~(MyzJHˑIךΒv65׶ڛI޳6ş^NgwOgm>&,Q`(&ʧu)'"4] +`C^UEO}h`h0ߕh`.|gP<k}wdRU6V#MbnKpp|hYxM#Pӳ@3"lg0c7): peTbFqdߨÉ ?ӛ 5hkT&KPN#-D:)Ҳ4)'@NqO!ib\KK kmMV)ΤMȦsM1sd_51obs\$MN]6)m44ݸ gl<`Fb-Czo/&2ڒ3”xGDxG~DGz(Xe!%A-:b߆kqdƒ V;xv,_߼߹bxgA *`txυ8}+{ΝxGGʡ2o|#L|KR~*?&Q3"˟qz>*ԇoWszc4V!C0tm# 7Z)]p6p3,L[woKBIA\ZWb&m$]wJSy(*GhW/.mhM_c,Pt7TWW>BDŦX@"IA~uWR[VEWgtj_|/V\=16s2w%Sȑ#Cm]eA<Ԧ{THkuP$OwFSW(wR6Jɂԝp9dS]eL<ՕnQŽsAD( ǰ`V0u}VA&2ee)d`hJca/(ƻ;A,Yݩ{l*ߝabPrO(Ne-Wl vW=W٨cPttĎ,3#ts8 M4Sur3YYpI+j-nqR:[ѹ9y6>5 ̻ڈCc)_j:5i/a9QDg&JVV%t|sӈ7Vpz`QfHx#\9<r.s>HZ= #{=M[Gg#$kD7% 6!MݲN NHՠr(.v`~KO+'7X |ދ([{Ϟth/ +ʼnOn6?m&/ⓣ>Av#OvnX^Xٮ ʼnNBwv)gTC"QnK*}fC`j`kt^\%X~줆9l}N',X>z "N,e6(|(k7ʥ2l!,wۢyv3@(Bqxin'Tǥ[&B}x٠5z.0CC}<+?J+x@R3 {'NQSo~H:ԋʩgzQ]}ۥZ2T?Dh?[+ $QY@c&LA-LN&i SBIEiS[FF6t,STYqbf_TC *7)h*%#*ˁ VlT̺XuoS;u1yHhy1u2Pr捬Ncw-斪晬6٫: +Ym-nf5)3;F-c7U<^`[DBeުl[A6WOz)&pD\Tʮ5fx@kάʥr&oD#5ۋ4󘙝>(Y ZBI͊5,ʝ>F7G'ef qHsH{8ctEuo +)1>9^AI8kZ֧bId;︸^#tQ=nAv>vQHy?b? p~sap|)7ݛwdH}i_`T_fWp'WJ`f` \ Ass,vf?Eљ*Kq#/o>/kF#B$dG 9,>gF9ۓHgm Xā7eP)e27j8n١]%nmpt:q}l^'/Ó2 +ɊAz[ӽT4Sg!w`vw*}biؒNo>{}HWS^|Sɯ%C: +T>ϜL0 >y?aǥVqRϯKՒg1-Z7?Έ/5ja +r)ʱcdgm=)G-u4Y4V"՚8.uiLn-A &>5dn4Do )O FIgp<Pa2=9.O."-R+>1ŴMƸMptfbotHlٚb̲#*VX'TYILiHiM:͠o⦦:WV0\gQR"-it4ZS"=BÈa'itHwk@ct6=\ 'jn`9 Akb9t"z5e&$*G@: 5 = Է1Ss|dz4Z_"=c=cdcQ>wlx濢iK.bxR-xԫ>cƢ`1eRze1`"eaU&R𦉙Ec[r~_Cn.zR. ~Y#MTf!"S!y划"r-rH +EP6a+(Prk\"aC.tOa04Fa5Da%:g dBLEj2QVxrD6?Ju H{ +=~6]Wn"cn \#X>.V[~5l]7FM ,ElX؄WM]3G;lіu]+Gooul]n/ǏIQM,S©{̃gv] wC&6:&XCX?/rC]܍_?H +؜(h ,̤Cp`)qhzH&vBM| /SFU鷮_?G\__7=ճ(ج Lan[C[&7`%N5;ͿYt`p6P{$q("*Z' )ܤGR=U_tI5+ZDÚ/Hd180IٺmMJ __ՐeC&sn&:ȧFP~i['Xd*8y&u&% +mC.zUNQ# uR/Eu*# +㕕lYJ9c<#J#\P:'F΋r3rɎXq]*~<ʵɭU> +ϸ+7*TݴyU ;:5VI#-lLїKc7e4&T}Kj`dRnlOhVQR=6YWN0 24adyvZ n]%$R-SJq?~h.S[B)\iK*XCTAR<\pVQch[9۪$ԑ}pb1ӆHMi:%QԎ7w``ȠV4wЊ;:5z&NVY HNp``\+6Z(gN*lO(E?h +oG,Br r.M +l + ^Z n@ +tBV̷.Hzus>i5z, ר9oz +FSP3 e K[EYoZׅhi{ +|{Cx]By| @e,β*p ƮYլ:i]>pHyMŐ[WExQ^ )0*QL(̾{BjlyQUɥC G_A tNatnkP `i|_'f"0f9Zj%tܸDWQTxZRu%Z,lzM_DTX-Go|Q4(gVC**٭댜FN&jW7,'H0FYA +n2Kdx#=G9N#Z"<՘ (LԩbLxOeG +\f|\E=` G'lظj2jaF B2wgbbWS+̃BnӮ1B"zSU@ɔV,4.GQi!iŒJ N˷xwdW?˟_*VE\ L?OÊߙn)X寘gVFnJ/l.oX2(haRJD)|*4)iɬ kmtbitZ֔vbɩ(tf!u SJe[FT$**$J )p̄czw(N64%.5CԄjm[db/~oUӪD[0gs$Mύ0CF V-` ІA0+b xK 1bQsw? 43YHӀt لrnN`R -Ƃj#// X#.0q-bR*ғvlZG)"(4DF1WG4ĢFsR4(H(^Kԓ`XOH6V-[%'.Sn3na;+&u'ǵ:xS@L=h( +ɣ*H夌H7"DINtC'QFwҮAJ6gj.$O}`-auhAgA;QaN b=0$9:Yhgj`2c0 +,uI#>"V>]z#3eV3|eKjQܓ~- pz7K4f/Ǟs9-'DzsLVRn9ᮎ@6" y@Q ڃ zD3=R[7 S_ى z#{ ua(t}eجm +"U -ۛ]/@<&Y 2iYd6"3G@w?+jR^~zk>؞"+ L`ĉNxx¿j`S8;6M00G}!̑]F +d eZ|KVO]F OAe61Av75`s4w/IpV /1x9-Z&=N8x8A/dYl,hH|zbys=%vRhH>/(X7d\ߠo^8JE`vmYc©T3؂GI ۓSzSĽB c_6q8jٿL +0j lА5L +9jذկN2jJ45#BFָmܱr j3EC{1.RaSx\\ 6)XؑXhXH_YbtZJᩨ,ZLLA1쒂CDqIL "9.~OHOH_Lyn'⌎S̯,[l^Z\&+QVl>N" +Q8)̳itΏmY | )*:7P7#u0.?(v}_ ^ H0_ ^((Po  `<͑@VEnAĂjfXpU4p$dEbA ZlarmBs1yf'%JWbPl+3T@1QZS9Q6R2 R= /QAO6kCpL!@,ާ~df[9zx&WI5bОJ[aCT G "Dml@0 hZ:iya}k 9tm@M΄erMQj`5G J"RIܿ#` 0[fLzَCe^Y'@Mu֧X']%_%usQ^)@gY(wdP|y{I[B7r+Mk>s^ ^Q9@qs:L>UU^{\upѓ|L!֓zYM]Y ϓx/yGm2c : Y.(aY"E}ҝ?j +:.vqԑrBքOkKWi҉Ge~+Tr F,Q')sjduD ڒzx_IҔp\9Q:A> }r +r+<:q).H9ڔLZ:Iak/A +a58 R.N{.8 +ȿ7\l/+aTNf[hRR+eݭq(jnP.j>P>,ua%!}*j`XQ"͆|;&{@FCEKWd|5"';^:lO39Ÿm MVRjϿ3J{H(g cƤ4?]}<|II|fLf nv&@M>*KP=HJ˵K͖=fͿOag;^=gMsg{;^N=h mǽZch%lkPj<-|da=³W=l_gb^8w 8Y';)o½yPpޢ։ :(DgA aN^tF-6IlDc]1GOx wvXV+6sU5y">P[TDbxV+0KKw-)/3Ai$\9Tm9^l߰ UPͱwneol:cCnPJs[Cv8Wu!XB8y<ĸ"g)p+  ޺Wd`@Ì"ɮ->:i$ +OGNBgsR#mq`g{tߨRbl?f*s^93$8nt פjd| 7 +kVay'B 93}*Ӓ@7Gk. +obU(U!3r1sL"63:+@zBELJu2ynY10X6Da|]>&a&eH +727 +Z ʂ2f*tΘ+N<6̪*yi_QHYۮe(Cab$ + ׇAA , U XaȡU0XݳIp'=Dj+ v + W`q|^Uco 7_lwl.$iQunAl2]Ұ^ G\&>DVAxg]]Chcic +TZ̆,`Ґa+uV![^:!?q Ft=~t>MU9 $Z+'X8:4^'a8 oQ]dz$CX:0мŒ9\GgX`T _\zPK +9*NvXM$WN0Fms] *ltȨ^Prv pZ}s _[bPED\Eu^4Rl;0 f n@#9 }!1e-XG_u \&>@ESàrEԽ9iHxSHg$Db̾f ,<I38J L'A!$Ѿ+9S'\㻜&컣@j P;EeUgHT#{zع2'"]zU:SՊt0{wS~j6VhL]UTڍlm1eF~ToI8XCA̓ыHɋAQSkT^Sڈeę7ӗ9o\TL 2qVO,k'=mPlsQhga-h'+nYD= 9n03j>0TC4ujz,ؽnzlJ7zd\ q +}݄XAQ- -ױ#i#Z~GG_S$8c??86t `ϘbL?<ª=3D].lZe vC=dH1W頔{3W=vW&ܡRV)v1RM[ 0GSw([՚/Kv9˳W&yK,uF"RRԙtR듏vACأ"=ԁd1ޡ.$nUd3 +,8l"ӎB`rb+jdfS /kmze=R7cW>吗3ױX]uC^Q,:Ny[SčlfzZEG҃yv;"}iX#1UczձݎbDvs#jcPOcJxH{ب-8=Kb4 ^@paңCBAHJ +tIb\19Em#R`k$=ip<}{zC5gV\1iUg81#W;3}R_'dgPTx9VܲmkN%_R|93 nP3@JsT_ ,yBH]?+| 'Bn"HoFD%|Ь07״B7F*luHO.튚˶(Aw)\:%Ny ?]w@/|=Qm~`̬=m=D !m8ӱLOѱtلy{ >RF D%X&`a,Uҩk-*q8@Q@d +%IRnB6uۄ "&Q>b1YD{"5*S.Lb*VgG1NezMM܌j9a;([Pu)pje@D 3NUf^ViJidަ`ת8$U83Vjj,P`\ӏ&""=۵7d 0jB‡G]nQ1B',ofϧol[6 )uիrn%4XS,QRnn%ٔ@JIw@XJ ToQ`+_PPPZC0g*mT.R +l;;;^Ż~K`ZS .ųXsapcS¾~ȧ TJ^WgL= цK}~S'fCc(4lJ*coMm0lQä+h۪^#0ɼx] wP),.qsCc`Bb`XIƒ +, +SbQVwKe=G¨GRm)PӃ4bSZ^Yfmk͊V.|D]P|xQsrmC@Z <$=L3ny:~[Wg&1&F$1cibrZlMXW Ф[{I:Xarũ/]9`,V_YşKEU<2)leG{j)t5 tPxu ;bT8}4} cY#͍|O0"$µ3p"eIL!u$i<"Є+pAId.j'+13Ns@:U<_W006#"!' +7%| hݖ {+U87TMH tNSGoL2wvX;;A7^H:eXtTK\^/&6 ZL? 6sQ-qcQ[rSL]rρp$m"ǎ1#%!tU,[dsx/]%˪N:D,4+6{&B(uGN:i;J.ȣ:iϔC+GZcEj%1t Lqr>ɢi:i鮊x5ɮ6,tFVhkM7ЖH;JI'jUrdv\ge0RcގX9֬dQ=ޚW'6@\@QAsv6@xlwPOhO{ îQ('P厭sgf֔$HBQB/%X\#!nKz3#Y(Hl-ş /,Ϗ=7M*~u:q36+twS|O‡\  隢_So^o}6Vouhldx;=jwm=vՀw_v\^][w0k='z(G ]Su b[w,}+N[Xd_@_JSbpsgv4~ϫ)nHVX:L&uwE:w,Z);@f-|(m>1l_jnlU!YmtX{Xc=~b>2-ĸ 'LV +]2y ΔwDS=\dFWru6*Tŋҥ့JDiW1ꮵ>.3(25\9Yo4s7јjY#[)+tQ6z]pފ&$Kgq0HW pN D\:"pu r -K7gt=#J͵[< 'ǦAم)8&ʖ=29@S)H 4ƣE@A9#{q߂>rSJy52܅8qp8}I@,%c OǘYA9xqDt|QY=dGtl"FY(@iTsϵbg aqAh iqt|e,69w9|dHm@Q%HqLP)w>.NŇ\PꩁLS*tR&DPd0:֡1͋>ue+#=TWz67y([nvTt?1mNiE;H9%dlU@%Pmˆ*`W[ f\;ykAmt?2:Q}M/WY cZɥ7Β[2OS˝^䕁5.7y +8Sb6Yb}=alp͘oJ\#"Ȝ9"eE B2Ix'ؗX1kD=91pO/վ/%01ѐ嬞.M+U67 +YWJ(ҋ%ԯZ@UJ|7G+ĩ٤HMEZvHHO{sݤ%,bSl榿X1RRH`4Gxq4F:~OO(!NHCoa'b:4 +`I^ۇ tϋ1A"*61VF2XW~tPx2SշqjL| xq6BG +>n;p|oʨ" sO%&yVȭ`ۄdk^Yjȕ +foXFz9;XsjV[,R^A%O"?hd*wvE +jeVI sW.UL%eךOuTsb`7vJx"0]ش:!#/._l\@-/6xk4 T=\EzK|0 7J{|d; q;MiAΨ;fW=aW.ܚ3YrJǩvRy2YGKBYRM{B_LcYKZյ`ٗY [AYe*UQA SrA+ؤ3VαbIP*dB&Ccq$l% URΒPD7E=h49KvѓjG/mCz`Ú:m̅G}GG&ý`35F~77B%;cvϩAA'V`NB[K9 /,$5g,e?_s6bkZrvP]f,HM_UP(?q?g? fk~sۻSOm?PYIa 4i8q1g`p8SZ{řkR L 4l3I)M<tv2Vk飋K +U*8Umq(Sn砬xt$H]@)$p߶j!ȴ/n4oo8JxU>[7)%;0s/\#(LZ!M9_ +a,y֠e& +3zH̰r֒wo%jl"zpayGn[ز j Zt) +HS$kF~1Ү_Xӿ iǯ^y#6L\i4ZM@Q<>Ӹ* (?(12hw?aw48z7^|evjJʖtFZ BelϘ$KتrY5eiӵy:^Sw/ҢUebcrչUe⊢s;s4k|$P^J +M7g|7XO|oz=;t5DI7zjjןoForE8# _1>}3v-5^~w3 ݵ'oBw n >A6c6cyٽ:]H&}`TߜHZ`Z'}“DSv!/wbn o^I'p?ZC_-EDc]U^_+;^Õ"G< UKu{Rr˷{HOiwW +Vft7.0U .U58j\d׮a++ \$7.I*ݻdmO{om\ Zh&ӻG#[5#¯ƣ{hs 0}wkrt3oI*ݙs RObȐe +v#xgmUR_0#}"qJg&$f&bk%kVKgSQXl[ݬo%_IF7S&$.%V\ݠ0 pyC-S'j˾+~x1"6zM3gM$P)6R ^7I{W-Rlijʶ AoY0=Lw>PC4³uZ0`N-:0aU=L;k&&1޺j6̖߼G>zB/!n(" prumy%͆v`2izV&nT8uvDZ c՗*͝@ڸN&D(.lp3SZ-ƭ{|m 垷&bȮ:`:Vfx;\8@vb]Vd5K oJƀk5hEv/;\P 0VX e5uEg=|i9n)%|'_k; ?*q]^*:+J,%ysZ[|s+QC^&dp׊zp@EaSOa\2^"Zpʔa`\(KpD#S pҊŒ2_ 0gRu.LЧjz%&G72r`,[Π:9gFƗ``+Sdy4NQƠ+@h +GA,E#d ")7XE]/l#J&A1e"tN1V"v-\m6h< Xg eDO3IzVO83{@TޥHM +2tkkgtyq-, jd7J9tyyf2fGub(t4jZ +0R:^%l2v&Y IV0ޞSP"[+i@rwLIUN`蘳Q΂+ YҦ[D8*c48Vxpu +aԡO.8f>Zs'@{9ql8M&gTpd1(q?en7-K nj>mR98By㰏K,&)MR +Jf5(21q#L_ 30& ֖c{: JyC辣/]HIE߈M@3L66}3|gOBE!-+7ͫ +!9MBc 'yUO([*lTP_|7c1 y5mL.)ub>j4߹Qnځpڡr޵ǀ%-zycQ]9~fy(E4JM3Cܿ{S(hoJ9'.u1,30ԵPsyg6!cZX:gGvÍ|IX clA:#m:3kg/P{ۂQzj[Xt[,f,,ꭆ0昇r?lxV"_'ȴې4lT7dS WI#mlyS'=NCk}r8>Mۯ uQBǎ䣎bҺᅴ7_gb̀=#NRE.y$ Нyu~?9V>m۶m۶m۶m۶mzyߝ&sg+JuUjbBo[H2>3g 3߳ oaw.tЪwiʿunRc^˶EfzZ&kt KV_fњ}ب|}3"E5)3t-/eōYgNb@DFN‹;Gwe9ڲ&+w1~DD,xr@u'kLX:";؛{-ˊ#9Vk#Ɗ/UDg娻ףX$ I(.䷧̖7v/dB}HvQKY_Ee ȍ,fd,vd$7&̕ NYA-leضIpt6muzIeTX4[&H%bhddڎV{b*#RR?t%.×k%Q'~p']E)D+7 aczwr |d~֠sE=p!'-Sp9D<6Gj7veeHU֩4&f1{*3{Xg[ْYMgtXkcISeTBѐ&E4>߷ߪ0 +|Z&he +3~f(99w݉ǿx(~o#XsDw qHw w)W}ΰC-Wd$F0BwW^ ;:&2p)•{+R^ڃk^MygX7̴kVK |ғ9bMnf{iy&2\ךKOaL*ILd>o3[HRWG8fl9}9uxOpE d 1wM(M$ŷGrA"t}ی0=gԨ ,Ej=|oǿY?GG#Ez :<Z=|9(t{<ߺO8Ja2L)N4ɖNtɘMT#)HKLv N3ݝhH)J䦅=t'JR=K +ɥqG=qM3X7MڈzARύL(-)ɯeTĐQftT7bdE?".ɷ\$@>]aʩБKjG=qPikl Е*㌹DF)D)H!EM34g(Mb{>դ{]jlGy >qE~w +=app9_H٣rb 2U\znNm300)| !QVR^|mٯUxЇ/l sӞvZg68f4U1XOf_#P]@mƒ]Q SKAˮ=ٝm;^]^i'o[wHYm;Se9ut{2m p|i+Ȟ<#Oa2VʩΡrYot¬Ì2\ Fvgt`(qx]\oC~6En>!V$5KI=-柾URZpkUjkF7|9\`"Ax6Geu\,4)4Q-"  AH`M""`a f,I&G&@B@BTRbTPVczmYJ/s'$p<;߹mgQ /:C0q#`Lf4^呬G:խyNqVj%V+r.C7R[>b8w'\[tvd>B]FѨ)_HNɨұ_( ^$WVd Oɨv<~Q 52Gg:꺗O(ޣJy0iQ)0ڴi:q}#LL@cpǺh~ɠ~Omx/Ik׶*z^%+*:;7v7[X=;x;-_uRDգ}} B2ue ħ +M 3 cϨ,ln07g^f,aò@[O^hH8[{jUiU욪6 Zs1cZK.e;y)ݪU-Smqk1X5l}2,E7j֜lxX^D&2gl߈DHWKe ~ҋܳ7v(̫TϱʒXI$9Z PY:A"vDLuur'r \ac͌HBШ35o+ ep;ќ[JkbO ޾P5uP72V[Y090* +oW-nZžA\>/16 g3Y,Mܾ1):.7eCCcYs©L4dߵXU(xG 7$ԍ #IUvTW +ے<-R^1>&9HJs3RVgRUkb 5kBUsNm:rT:/f;?ΈVrrLt W CC0Ҙ.ig[g2֙iij;P `u;/}|8)F7:y7kx͙w$Y&u6D.+3cx3 wz=L gL]Lqb. M18B%mS4J%sY:'Dls'¼b?显,CC)DZ!O^q"&Z-5kU VIi|vg:Cޕy6'1<;Ў<6kk֌ӌ9;Sc8yyi涚A伤{>ǼdjzWԟYǥ7Hֽ^i'LsnuʑD7Ŭ+YfiaYV鸤9ڻؖY#&ɦ,DVXDy;n r@ v3՟#'||? 2@D< hAHm&B%)xm)YA Q.ɡeLr6)6)|ty ?G~:)_ +wo߻$4Β|҉dRe(R$b2d0&$_OeOk=͎\l-4 {VUaZJӇzq֯h۴X3CЕtCZd1!JS- -2~kH V=)ZE#7ϕ%J̆i 97g}@+E4$f\n8'ʼn@ ly:c[(ڵl/cGV1þ{%uPDꯪTTf}ud 'ְxZ}'ZO|y Np˯Q;!۾;R}l!6("FniI}MY7r$٦:&DĬʬ}lW|vk>>3}dZ[E[d]']gշ[Y-ĮO.Z=sfջ̪7Q=ڟG״?Ug s=jַA0! sCplR;3&~0~$(n'O(\0&%X@&`#O.%X' +ôg^4g5ügVq.AG5a&iE%*XlӢ$܄n)vSYâsCH/>: |E:fUNeIUZg1XL cE1}N ×ab~2 s*F1 © ZŀX!#CbXB sQX1H6I1Q=c5܊D?5UQ՟f)y! _Pd`E[`fC|YCp@mQt}emLOJ Q[<3>)z}1YJBvg}}]U & (#(Y $K@ZBt8 iYG !=LN_7ToߎZ$Ԡpt. Fx91 %!)!@"DFm#|PJ g n6y^oЂ8;HTȊ͎3d vv1UCkH܊T +K H'6.E]K) \SC_Jō uVdrr+H>5^YvZ/B%9b-|7Xa#ٰq2qto9iD3ADs*^ +JE8`&?2Pl;#YrLUnY1Ξ4g;&ai4L[XfX3 :څM8u > SFp^jvn'~g u^?y wp+CI>fc{pbr֦@D1O' baqJ#N{߰`b[r,X( ReشK UG4:_DA ʶȂ~iz(T+T@dedZ6NDiݭ5{ϼD?Ec~Sh*WgߎpXbGGPg"P$1Z Zf:I?Ғy.D|-Xx75{9\>' C;KL&'b Nҳ(ؠ-Z[RZJV _VDJjqq5T@9U@a{2'2Y y/tbJx0co#Hijkڵa4k?F2-Hv +> ۟$-Bŕ =y槕LT~(vʷID=8^!⮰-#w<rPCKhsnnZnY ^ Ҟ#Q0pPpY a @!PHf.P~>™lQC8ggCb4amXw{M d BPCchr40} >D/,E_T& +:ihnvo%CK푘'=j]j%s z2Gq&ohSa;p5/0y7ώw̗ =stJiҳ&҅7 .zN%''1}Dc@dNϷU5uFҙ"*9OoοM0NkR(xr|_ּ> E5PnS#>OQf`T 5OIthm^ӎ]<)ho8Jc83oy.֋c'.^}#"q(w K$`UOZ E@)̞tEJ⒝=DZAh*1ltRiI!\šNJ5 fwހRޙVǴ맂~^MJFǂcBw̝aƜ:Ўk6RK0c{!#k +c'Gb``\ڙ9=~G +l&{FF3=#1j48k-8g"z_*J;dۘ36Z&U{r +R: qDF: N1p8<.:#aFpGxI#s;U"Vq+/>\}o+!F~%?#͔3]ܩY?=b#i#F~v;&>Hwc8jGP/BT/..N'>N )&+& Aݱ@GuFqw cGutO $ ӳ9z.s3,ΐ=EzNj%l*#)W @___¾"}dM+,`,D@ZjVdzR Z-*7+mqi OqY*Ư$:YUYEPPtu,F 4\h5$N,culip8Pt#.F3J7!u@C"Cd:u\): ғ8|qV|;Ҩ:BBeĆR}; 9t2CftTCtZCuXfw!UC v9DC#:!։XVcձoqjd^Otx2:Iv1j=si# ZjhHC!Ba ZkPCQf +4ؕhXԒn#hGqf jŋn?Ƽ9|oe4ЭȪ d" 0Q @ğsweÞu]8_>}su.swψtdž-}dIq4qڕiIݼ@ۢOֶu :7I%ʖ%@uA襡?qC̴I,ԩK?}9%%?}UӒۢ,#7ux4n\Tc{kT^kX>ƻ>k0[25I]I5aWOΑSV`UhXo-_Ǻߴ}mMuLi uLdZZKΤ/`qRGsyZY+~K}mˡ b O1 +{*i d +X0faKwzA+.p4@PϿ`p{xމ ب  |F+l5 e`)*xsaLlWQxwS7Vo }&iGqurj2* zJ5B\m./qzsx9Dt%ߋ-6o^Juv{.* :J0 jF6^*&0_uQC\ /4&B:k=zBsRezɍ!xܜ!nkuF?`S"ddZݬ͎%u=@wj?zRz+nbY"cBނYݬvE(/ho2pӬPjfz AXG4NdfX9E4JF'e$jlZ"|J!6aJ+zJU*M)T| LcȺ\+O%ILRS9ua9%-umng^~sA%qQSl3y%4w[NI]sKο}%7W›'7lb\2 gw_Cv F'ܮ#OA ҆ݹ%cS.Ec2Ǫ\q[d#;<g+mA܁ ma]AB$IMu2Ϝo"NK rs]>C\2r껆9VYACu5s҈ KPPntӼ(wUjZPTL9$Z 1ĹWz.L9yWiC5#HbDv!\Uݺo9|~FյN&mVwƻfUyذEF6>Zh˧{]Ax $Ktxt hy1OlhlYMn *eɧV",'A{uV6:v=P6"jbX/T<؎mIQ݇=%A .PtV-l8ܬͻbs+DiG=\WRy^wYԪ}@ݶ(ĥS)ϪHt6cRU lCx !+1W\KbĴf$Q!C{|qҊGDӈILtF9jRvJ7r_$ 6r4k-YYoJO6-Zm[tsz}MyWL `w;J&%O+ͤ1JmJN>3JiW&ޗl>We1 y8*OMvDE f[=jdS&ktvֺg߲8.[.:NJkϺN+)i +*L*T{nH2[*ֶ5C%兾uܕW[(ֶl&WJ@x{2'y{xQ$T#_ƨ `ICEU]uDCetDƒGVBD"@T;TR@ZkɒK2/lk\|i8baMzLW9I#(IeVtGSZӄjD$m-XCs}@\gsԍ"'.ssrjqlZz)X͌lbSF:LRޜ'z&=oNSWkr[X#z>=Rb^ 5W}K7"_k{^U9o rnTVwCۡ"U~ad_V\/_Sa|u~^no+7>ּp Eaİ{W,cA76k/} ƛ%wu\QF90pja-܅ோE:02pG X`:<3XE210LwMpݝl\9~ +E##2_C0K.~7챸%!_N#rKT~IeŹ9^79^_.n_pN_/o(3ݙ;rl~S417;ތozOj7. ߌ)7p&,9ug!~H?Z"őhWCM"QI$R" X +PIӢl`,Ua4% J)Q_KITHӨآyH "c\Ѭų,"y"H4|4"Ҩv%B̲Ԉm{[ Fa, +q+(ETZYmYBh}tDj6mqF-RrKQ[|F.=j|,ųckeN^|DcQNN ܜ+GpL3]lrt?>. +aN3 ft3.T~β*&9b?W.OB *lNM7Ưؖ9)uMAh*bMSX栖,Կk_6XVư-5c Y|~q_˓>%G~(xI5'g ',BY "YP)",JPXX85"K[(5T ~jIFm)q5BskԤ)!.jUOXki3Vf WZ!gZøn6Y%6WEZ@̈a9>U{1|5g m16~ >tVi-HtZH#&cQqfл +иsd* h@acL- | @ǐ9G^bTKSjD eW +&h䯁ȇDj2BVNJSg}48l"+.Gvaް9/<&Ҹ{CldcXհ23av"5'ő, Y8X7%1ɰbר}^OpxVmqP~w[HUCSG&_[(-wZȃ}J~l +b_tC +Ι߿ pHej5UkXIŋeEf 9|FWǷ-zi=< B|+؉@c*.,AHfK-6k^G4tIɄ#Y~ZuכĤ +em_ Wk(hY`v1J"ղ_xK{ ^_d).ŁLN`jY#R2WԊxoŖ]ɲb6#G[\GS͓t 2#mKun)mm+eKY2{>H`vJ$͑uEr(R8NЭ_R\qLmF8)~N+7d[NIGOg'3bt .F#c87;J I\#|8 )iji_Ԅ_'h_Tsr'>ETtVQuu&Bbra Sz@``2BHf@00h۬׶mWh_MYa=+T[[Wl}Wj]kZowM]fn{^7|:w]rʱ{^?C32?c +}QJ?/>sPإ=)>{hh..!tK0P}!e-fĝ/Q^h}z^p?Pܽ/]e)G 1y^^^:.#:_3"30Mllu adF(nGVRgxet( + +ݘ>AbS'/rc+tAQ¸HC7r1qvQF80յ[ Z`EfV0]jںZa&nAB(BfdjRg^51XiBjBjqĚD2ku7Z^dtb@TkF&VH^fssτ|+B:hG5*!Rbڵi":'!PSjƌƆqu925b΄]Ƭz%k]iUs._mQVa&PZ/c.7*b>UH | lY͕Gri7b;S)3mcpW]i#Vpa0`0cf26GcbEx1t;|(R ~By[DLkBS>}8"6ÙQՐ9QB|ف;_Lg$-S6рY{9|F$$X3Me\7lK^Êݖ_wʢ F?'= Cۚh ;73O JFh?"c#6߱v I.7تpǕVE F>W~߅e3T6sUK^i&ڥw7YSL$qgsҲ~F.^wQ)nhyl6m$ 2ZVҹS%`TpZ@4퇠S(S*S,)}I-5dkM 4%II1+[wpd;;`~3*6Щ xv>: ZԷ +P-m){B#^r"E-J5i^gM4>i SgfQssW kRϜ9ɍTگ.E6dؿ$SFjS\%6sM +z a!P7wꍵ!n+ENY?AOqwiDcn6 KbN7hw.w'1/hqK{e/̶F趆SzPF9ޝuA=idywG. җ1y'/4R/Xǡ/t8t@pNgVu'ZuGtg՞hzOT}ψzB|8=i`OmJwL}۠iOc=yzp܂ ѓY]O$.iC.&l3D خ.DǙ>=(㷙?=C{lƔ-ϴf,ϸ g{E܀g "y@uBp t`f(XQ 1 +$isZ &REp/0ύPS{:2)`Ά??O Rzf bLF ` )6p5XMrOXtKvq,v3BoR*v\iK>sI!_.b>]yotw8bM´`allfp[ޗK`e-JݕX/;ntsA6⅘unImB9z]ӂ>4qh86p$mʙ uA IumR璚%,!F_bġqvQ;K׏ldAS DNA! i>8}>u#GH:CV vbAK +-ĦvuRۣɝUa,G8[7{Tx4">iܥ$ːn'Ƞ 5k!@A DI1$ -U7APivi( +t .VۤN8TnUES~ze@Jj:&o{{o8pՎاho1 ܩv/)nJiW|jַJy= UjYz@\HxUjFnO٨)4O퐎N$O}')kf3k(F[<?l8U%_KPk]'[uMqz,|Y"BٜQ?$c>0;smeoqp&#>{LYweX_Mϐ z x7;8#Z;=E}Z +ѕy͋uele)Ii] +9 4D+hm ;sup +;0G +;w +}ZYHͿYSN7Qm #*<|Xit MpgǪϥRou`>9V&^H -;u[s_XHJ7V,8b#,- yv1.l:Ϝ[#L;Rׇ_aIIAb&ux~dթe]4)wR-lQ1u Ұs/rWwf.0e6r(JRY*̃>#7ՖJܳiug?KUTu}%u]`]V2D7객ec%\ʽһU9uѿKg,e(:!v;t{#{W;d=7 ц)VP?P9Je UАE1]J9;Yo rnj'裠_oENXżq4_Ni2QEkhII$yd~? '=Hm[ف2gbb +_y1kvʬt.}KPǓY̖ +(k>qmqvDvh?PqE@ά3ۊh>+}OЗgW]0V,zcA [b8NsΕvԙ؂9B)G؟-84ocC{_BB(n,f(rNM+Yl1GpJi4ikAo6DwqaF̺rIp PO&8i2%H8r֩[mU9r/iDqoxtaLƽL1C3'1'[;.'5v-I?WǙ6&sQRJ+[ݤFDйq۫.Sm*s~r(u)_EMƑ AI[)Eq#ZI=OkO0~69r>~g3ٕ+LG`1.$8$B SI%SԠ`IAK<#K%bKPIvHmdHKASxK_z"ģ4pck^Hv=Y}ykB%kq=9(Kk0kQ(J9(5`98dXui+ +RgMXIjdBqr^ib#᷂8îvFlYY ژ 59ƨ7(tB<[68PH +/ 8:ч<+xpsI^#Y^^MӸrrVDs_UvຂFu H"9Qj7h[+5P߂t=ao( %R51 +P +W݈!t'ء4RGbm"t;ԥl"v?nPz!Bfƴ:̻O+Ս8fٛviPEKR*QТOL T%&~S,mjzf!3:oQ4jՍ͕5RoZLbubu ֍ՏՅѩܤel"u[Hs<ݵnnr G +yusd:@v 4ɜk|b,YcoL18cx¬],q&jK!vA&vN;#ufG̊q&vNJ:q>>yjҹv"o9wfwכMܵ#I$x&tڳ>`M.% 6ɅMQYX )W%vkSHKe!hcuBTթSص"%V'^V'KNNXbvbt!:{t"t8|'mwq OU2DΧ*(*KZGs=000[00+090f`&rnU!V^Q +d**!WB +U~B7gzfx3CN>`kX,ݬlجlXٹX#fy6cen0x$7N.oX0]beaes# C|sem(9gFbeC o|k<v=<)eLC͸xR&OD1s,=rZ >IKUyW[ykmgmyfDo'lCPwFVEk$۾HD 2,$MmTu9gӼnޝ1#e{8H5 TK1nn, 9u{=3 ַtoe=; Xa<+La 7 Ssd_t uJcw&ڮBIbwqJ"nB3c&kléDzwCx%&KvVK=jڙEQYT}+_B!Vb9`dE~Ѝ]WZΉcZ`YWJLohK@o`e?1aE4y +N|RiXx\5jwyF@ftɜOyel@-zv,N5a&i`GЁdu+X;ΖV[[j9nCX)na[]EGuq*Xs96Zc1n~ƂXY7W=bj٭ZeT-AݱDjFBnƹAtLX vY$.7xnt#lcIpB'{'K33WgK{W rޝ993 @ AH@ +h@ @`J )AhVDb+ڦPRFbSjSmϧjkjJ۷ewG Bzߛs-f\DeJ>P#̒)ea= fƦC>L1Ǚ1}RN8&몡 +cIԸC*,Ӯ$t&P&0 +4X!Rٔc{G>샎/]'O>,.khCm3GC-#1ʥOg$&vPĵSZ'J[gg +B0S.k=;37Oe]ʡ3^,MmA;/%gM4=6Ѷ=matXSy4Szt'E8d&Dx_9ͷHEO0id)[}v(6B)oQ0=2|ׇ_loRAڋi&T̺C)pAuRVVz Qicg'2+/ +z;xu:Q1\L+Cmh%+j4vN: =v:)U"jK&}|ee>T^@Iݝ+{8 I\psBEp#<- |[xwNzH;kę.mdZ;HPG[xh1.O@ +^='eںuz_V)ۇ__oVOje9kukFI +f63ɬr]/Xi3G/_E}kFQ"sZ +g-hGˋpEp(R %Sԯ;PrLQb{> יEtw]iXrs_/I?tXϊYuaHź͕LKXcDt~%WvzW0w(|x#!f@}Y rMR|-x>BcP/6pFFbWgD!n`XF!by1EE0>Zl^a;\E ?F(Y,\4^lD#^K"UPg6A#9*"܈A=>^A,>:pˢWJEbա ->m!!'nE*ɝMsgYKJ̍ˈx 2ְ6 )%~O*I슼ﴣ/$G} 0k|MLJbE& \9|96qR6u[0кaJ2\ T/=\*YA9nNVEBo8ZjEəV׿$.{߲ڎnS|6B&i`fJą="G⦁ɀ˗ TdC0%$=)ᘌ ~Q69l +"\fM& +B*yǢQ5ʥO=ʤC?_ Sݐ~Gn +7+SJ>R`sxqµ?̿!%ε?˵O~?G3'rN,klxwhC;dN>1UQ͙ +/vߺeK ܺ[.кKϪ9eDyiܺk׮ ABgڡ]j`@Qm. _$pjo|.῔6r C2an'"fzkz./uﰹ#t[ Q9[ +2s\CG\.s?U[pcm`D[ԘpdHZ#WUhy')Iccɖ2Dȴ%[Ҧې>>C>WߥKŨ9Q`Rݻ1 Ԧ:U[KY's(ZhPM93d-ymGK#S,5.KҪl- +TY3(a| i'Pf$)6t ϓǐr&-$kvr0(U )J4OֽxbvcU[FC_-;YAz|„/%G1sf{Eif=cVdQ Bވ?ոYQ/XFDv| +{Hh ӈAZ\ 15[F:s}TIvzqr YsOS,p!ؕm]{BGyfA*wMA.{(NW4oDni;o[pY>',;8>MՅеpHiyArMMQL).hy8ah*`.^&Q FkɛĽFG} +L mt;NOAn"ȅ)Be +CIPТ)jH,yS2Y-B9}λ&Qr[ N\>88PB i$mWV!q"%tBڑ "HRz'@t`O5?t,Ek_E@m7kΎ끻1P>0TMR-weRh)e2%gΦ+VHRs*iGNu'; Ip[o2o2%vFv R7]lciMTp]YM>aXX̢Laa0^bF(j!ܬL <,u3N"fNS{OִV$2jþHf`XC&2Xd{m^Z+033L,YE8#lp&jSKca]82nyǶ7];,e/'p"Ez }{aJK %9B_xEб 8WȧKm+Z]I_vE|eA  7wʼg-Q OR = r߰"˷^ ^z/t%՗y/>ԗ { ϴvTAzrw +ԡ? {]nR47ļbAIu%ho~홏w >Dٓ8Mα֋q-=] 4us$N|b6KlN<ڂ]=͎ )}s3ڀY;LjYn =/lsu=pw>u˟]1"{O(Efo#g$ҵrg'{mdyűy YLyOSCOrE6dz$3jG^2G; =׌1CGCOgK3Cٖjdpt"Y*&MWm,8#x:ŁQCɦ^ɾbA($G3a'FGmBtFē4E֚V0,;(X1NӣCҖ@'20E^*bndbMOrXDs=M9eOMM {5ͥLDI9c .0V4yI|e)JIXÛH#w +>$pV*&h? + +6V2*g7G+soՐڃ8i- +qD!hȜ~`UM#7ZJJL.idrj/k'T[L6gW^ji*jU,dhԡQN,q5Q.U\6X.pUBH]{nyd=^ўۇlJQ·4R8 RђLS]Vݴ(=PQ󶭰ǕSh>˭%j:'9q#TqRXm6#?HM=zT/VO'{"`4;=kɎ1.7SpHO@Z>Z3]sR1̦R]GV_I趠G"f L۹B#jİSo/sFܴ8cD8p_GΓxwW:T-ɸ27`]_.;yUg s+PzdxbJ+jt`*kܟT=3/:G/jtcW΁wx>z~F*.G|FZ-BYjV$gf-|er *NT-2jU0+Dk,\zR*U-,iޛQl4;լem":d2+nJ;.F5=+cU.R7XpM+SYn+66ݮqI! + ?Fi?mYJRΑΛ Z]Dȣ砞*JMӃ4wB|T8OSNNʽ378SŇe`Al aŞ7\R*~b>}Nf3aGgcf*ܿ⢪V_{҈nfD{ &='qJkQq}B2Ya^3>F8 υƱƩ}c?($R-qJU?6V1TjJhzqle +Id\eTmw4]P:<8ɱ]d#=:@ APn'7H>-g-S#̧v˼K}3df,23BT"53}z1f{X +F-WlV#=#3TDZ""c34 ~F"7|䨼/Uaꋵ]:NSi'W;YAb߶kQ@.pttۮKP+țKmV/|r?sb/rs{Lнd:^OuRYU%diDvz0\f1<3̼CAqΕsldI@Cn/v\:|EP?tsqQ0) T>= J2/L,Sf-Km ﵍863<\;~ o&; Kv`xQYXY* ga ,aNKQoɻw(}=N!吽_!>XruU LHP,܆~<(pyq;.4h$glYTpDy`Lb"4xR Al8pF?0CbހaƮ>u59\7338LbffSnn1LյJ3鼥vnZ.owiQJ^7*¡a IzaCC CxZCWjC/ktpyr[qdwEr|a+ͥ8ZGEUPT(hӵս.ZThjjen*{I,R5ZπzBSP#k$rǮVZKWZl+Bch D6$P3PT[PFpg5, p8љW57bnd"mDKL8s:XYPEc۰@ ZkbW4͇#4ʠ(؛(huUaGVY,"Aa;̇VIAdp EMئn^0QI}•t{ !OC נצ-.5Y+樦h>JrvjجcŬ ̍M/VYXGg[,X\\.X0NBPc!Mn%_73"@^}`U%e9s| /aaТ1Ev"T WN>>iꊗ\aw +`.О*:r0)ita2(ʉO:!OYÙ(w: X4.nmgUvs +KMb +"*d\a`븏i0GWrxjs$P8Srߎf|p#٧aM8A%dIa:#}Y2#-#?NN9j)ч''Dbfzu7\ t~+8Gsm|ɩQO{-fނ;Cs4դe3M =3_cgW $Ɏamfq8]1o׭;a8;QH6o nz13MA٘5D a[o\6kś`*#$zoouakN¸ i*>J饜m̸j,9>:*2^]*|8A9B~ +rD)'IT.P (7[l=iN=x&>FkoXRbR +KvB~澘z|z~A+ 9dԹ`ᚤF6IӲvL3<D3ӶXg 8ك  cyC=\au^f`# -(p$dڤ &eSgtF-jG[  ҴwȤ wpI"ntV|W#PI}1s7'$[, 4 h8h }E)r6ZuE+Žet7{BPuF%ID!L b=Bi(ƴN.zm;=9<ސِ{ guXZ} =~~̅`Z|>K ō0BQ| + 7Quwo"c4 +I gbIGęҿKc_tmIP͝ulN8vJiuI[xٖ72KZщ'ՉUIdb? 0Td3Fj &$OZGϥItn\`/ d(]„vw(Qޮkxf^qq3QVQ3xlmz?tOj]ø>\|!Lg^8>1w^Y%+KV#9 ļTV8F)0wcH3RvVDn;0dcD\B2ީ 52[\bEߴX'QBUĴcE2(l9+̢\]ɘCyXꪏ`\j7 *}@1БT(A=(a 9#y+я)l,UhSʽAttXY-aZtbBٯTIDXGEܵPX0s+,ћ#4̎U6]d\[--םiƎϟ5)]F;mm L /j8ߤɏqg lC6; lc4Ku]L``Is9/ӆE^4yyظ [|"CXgh2[ a)9*/y +:WMO%@|-Y#, @5i ȳh%a@GP-I ?2͛p)7o5Tn@cmk~<[J؋īnտ?2_>]֛g~_-9V12 |&]1aoÔ%TW j [̥ Nۈg:5+,@5Ek|iH +bŠ-B Ħ†i+ĦBK\S &wEFKpLW_.NS>S !|RUՄ||9ܐ(䟎ρMdy}ia +-<Í߃bPDY29 VZx2 p͐) =a@n$J"5#@Z!3s">@z %dϋٷXvp ޕ'CT6004zج\aaio%8#(Yeff;ȻɫɛvM?Yzꂪ%SfzNJFT)R%r&T&^>gtp!Ե=S5 -9eN]{V1u`x8 \;?펐؞C25G/k6b\j]c̗B$Omav\gcfЕf(4/c:;!z ,;[~Q(kvyDzNg%PGI)46 $,bݧ!*ɾǏ! Շ-〹L}"ja[}SyuK;єI--<.U a}PTASN&ʦP"ZyD-fX6%22g #j_`~N d>Ef$*sTD1V8mxp~wP{GVrL:A UUY 4JBA 2nM?`&JsB KS5#T=IƄOwW\%@s3|~饕h3_ tR,>^u L6f%J I !ƐK%n'8U" ȫi䲕J%0~O{.EChHzdQrh2x0pZФp:]z0 5lKytqXeefU6U\?uph%V|1WI4VeP +jjRzM//5kY}DV5:x3Ds>2x]#{Аz9"-B⠛!X9,@P%2 2,ÜkZ+d!.kn׷>,c(>:~E(HTIjmw͆C^Zt(,0F2-P×'sN\>+F0S,^AǕ8B8x}8bU⩊#\k.epV{yFd]bC J]Č?툏[yyq$5d 9y>O%4غ\%\Eh W}2Ҵ^o?3-/u֔ɎwXx +LW'c]%~bM~PM1`kW\*ޑr,/` skІ2PjnrՃ~}#8T}V\:wrzy]R[- Q{vpv}n~|u u.94:%718)(sB$KŖ6m3HNrD-8U7R5:>e@?+ $쟰q3FֱDΤJ==wur;hhgdi| vF,ih")Uք +mω8'ޥOl:U +/ٔb$DO6P\Pe8[llZ02S1²(ٷ8 9wnr.Þ^oz"#pi΅ < bŵ:,Wjk?v^\H\UBjf.Ϳ+loY<))Q`S"KZv\QK~S^"H!Cz}<:dN.]p7E s.*D{wId~t6ָ1Zk );?Z$PoYR6TLՄpб>?n` ;pKuGumat|1u>c6c^B"́UdƂpkVfj Z[K6Tac,t_o(]QC3Rs.tbȜ,ޑ(>J)O~}UT{ƭ`g0?6+v&?,cmc2==㜡V XNLbCNa Gj!3pnߊ,u6GA3zמќMmQK[˝{PVO#>)VmQ+Wtl{tvg'g {@B/Cxqu )=/{,\y.nB!7m3FWgRH{.>zM2 a?3ĹnPcG\bQ\yȺVx"n0GVl$Ϻr#϶"cnxFZ66kX|AmT}VX}hfX ?^a`F0}[Uc`_(W6o嘑Xv͈s2C0%D1%~L%]9+B&PywmDHm`V GX _?7z<{ӁIf0IELӶ%6[N e_̞0E'6.eͰ-Otܿ2jG$nY:ٿu[mKD,,0,L-mKlPaXj-R`x)XK7CßpwKqg::)M:9 = +jSzށgEhJɡ%~ɡ?{;JnM1 hKcFdsk]ǽվ !'՟x`'NR{s@prUVg EC +Cp(ΨL͗k>Ưx8ƊY~̑'LxƉ^C\ H7[=u&#g$}4r)RAy 皩y`;-Ϋvhlv1wNjjڴڇ@>z<->1}9"0}>4|v [qV0Xf@Q'Bw R'%-W'_nR=4}4~ArL-hW%nWojd oO|DdduoPۏ>xDpO/e3 ysTWᙽQ7\ ywJ'XMud}P hHw\\-=vR7ěϓo $V|Sw47wH.nGm+d K08%+=<m s>25н (]!:sWc8ې@W7LKk.ͦ>5+-Q7r9>fD w )>|t#jל5DzDO_=p;f{ÏӖї3Kz*-~}23 .Đ!GLz$?%|mfď0 += o--jwu#oK5zwCoЉPv㯞v:[__ʾPY;/ހo??m>mX]_ ____ _ԳOO?GM)~?6"i/^qqOuB aj"ԹzmU{O,j/vglνaٽf6'~Ϧ*:ǽgv#k};P:zt{)HgN}R j#U"`PQ +" i'C(fP\aW# 1hV=["XTvJ>'Xo}d^2oZם{GJ>3o 2o.i:v}|ItaK2ke:Bo^*rMQj(] m=9F|~׈)Gy/TY-D')|em=yf?ymm8y?xͽETt_y[vW2g.aJ~b"-YpMd)TRP>CcT@Ft:u FUi{֚7 -ަ+xs4p$= ܋܋СסءAݡA] FJR[55SUUKuuS$j q}`9B;;ҝtwwAm\{8t5!:`:8u؁nڏy}g~w6o' 6P.搫+_\⼾;F\"UE,{qi%3%-N|Գ$nh&ز'~νٿ}=r9f<йpvpOg"?$?&dP?2l4/s_ɚ t;l{# ^CdY$7L3z_rYoTClT=Ǟrzཱིw%nܤN\c'w =2Cr뻔F3o}H{%hE + bKƝeLtƥçА 3RtUPJ(X'p!$^Ƶ^P?Mz侨 ĿLYףr|1x1p?=U;Rʸf=Ԣٍt$ճ Y׳ km3 kW."x>p?q՚otzzww?~@vf#5FL?&O0DQ|A<EB̀A&FY?+ !_hP:qpEބOm rD_c|J݂n;Ȅr0rOR +s,0D^QBV)~e^aE^㮢yD_ԉ&sOYzܚ*He޺w@3@:*[ș`O`O 2eK(K(MƤA2` j)}"(%!KœVQ,M-o4"ntA by7 +,O"kJ1I6线_x;qh9%ߝp$9`&Ӹ4b(uI5g3iRi5_T=ɋ 'Zcoɳ!jFFR{3d -Yw*^108䮿V5 +3,tޕU=B+'`wħl]*Jwߊ"{lG&_-]8޿,PT Hw]X޽O@IR}oҺ])aV׆ڤ+džY-\Co]Jjt&n[{56-_-rA6~swsAK?Z ~"MQdfRPMdZ VRn.{%^cuŶ gr]zu/Sʲy[jEz8ʲ.2 [:gf3s nӂߴ16S yvL9yu* 6nBBOWb|4yd5Q#c~ - u 奨y{"3Sfks$)X )v=^ +sqhD!Ӑkq!f.jTшSUy=IQ菗:Hqǒc 1FBAϲ\1Gs}Qx/D لA\&zi\΍ M1vqc.ʐPE,bc)[߲P]H)cSS.0̭?&h0*pNG6}~z1})yuJ &Rd© BŪ*cP\*~h`KGc} A;_TfG2do̭z̻ +Frߠ.Ĉ =@vsoߖbJj mk?|++{~s31"ͩ9痃T\99SƋKe|\x2hcT-T5[y>daE$IWiҋJ +AMn#@s@hk6$7$s+&q'vz|Us IU7) չ[ZīŮBFyaq ݧUH:5(UHd6W5(Z4wߐ*O&*![ɅlDzسhvS *8/_ _@ P ,6l76JI P; 䲅&$tyLyeLMoݩIr +m@2/9FϘMBzMrB:+'L`}eQ\ 悕䂭fKQr&!wL)䖼wlfĪqdp6d&tY `) 4ED+Ee"C +Y_`p< [v+VX6fL\hGۨ,:MSٙb}`E_F`Ss1`6$К/.5Qśm Fj@b;]fS}shPpp98(|bZ7k%BNrNDƷbMp : p14oGЇD X=Ψdt?cr]Iux'*bM#1{$"ecAxW&܄f7wdOUf0t{$`@Kә&w$hIҝ<+E3.zh rC9prf8=OHɆxw8QH%IE e4K5&y/;2•B=Rf顜LCoto&l# % (%.Z +)wL݀a͊VhvO(sq+f@KMFb&QL.:΁K-wA9KR(wK.wv@niKFqS`T ]tC0A뎬%Y)HU7[t2A_dEt;)]RBcs')T%bH_fR Tɑ*PڕOư4S5ۉ{k~$Xpn⭈E{Zu2; aT[=D1E> f|?yWE78'ev%gh iFj-=0,=']5![5,FbgrCeA`+LM5ګõt0JnYpO93Fpu:˳D)δ3?g,T=1,t:JYa{Jv\| 8W) #`x` #Jȴ KϜ2O mL E?zd/ jpzy_:饜BƢ$BD7wfz,uQӤ| =tdgڬDZ߻"% 6hز]npj~wJ(VMx-Ǻ + -q1Lu%/V%\$uFSvܵGHn{Ȫ@֭20i<27:{4Lt'?_PN%52Agz\uI+)^VPT5Ј'1U@?Wqsa<+?rEjSqB?+(Øz~ˌiTÁV #29aD1#*ʤm|. +-- q*=pwR>]kvg-!s{-Oٴ&<~O3 BgHAԊh|sYT.7-ڤΧUnA>[dŽw-'\4!i" s?'gjSdS7#L'qV"|qgV4E㕿< 8 u&RAKn4; UNG8$ +7Ӓ|-h&5,iF@ ?YEf[ dk1J+z/Y'ф< +kR '֣EO2a`];c##Ҍ,KwX;2 zno^ +d;9Da5im,jwMM4p2JqL,ldzqXw:H+̞z3Ohr^&GEX܎u-!]͍JhO@z7YS/jljùTüSf@}1IыR +yuJbw,{.E#b~ƴN~Zkv iU$p-ɫOF⤬e !Ah 8@JQY`d '~!UPⲸBg9uu:Ӊ˯_•Iw~hkw=0^cqY#>&dɄȢuADir%мHFV̒@3_(YZ90IjTS +I׻98(8{C('һ7v 3{FnS>5|va=Mdﭛ%sMXSS8lm,h.H&pL*( !-!bXgQLs 2f,-; nBl̒KeOG Nz4tL4Me4`pg<7Ib}{y4Dd,:Wl$1졥A驫HP%t{Hx9ikxv_ȧ@|ckivMe 4` jI51{.)0d|Sfq + ]j 77.ŮPP>f}Me & +0DM#Z*Kmb&rp$];FYrwZ$r.tr` /7,=.}P}w[ =,E{,|ip!{03,;ML4 ؂6xs^;H^;L^5z:pUP}eE6V7F +n^#8ܬ~xIMs57~7~/\ԯ P;*!|.*a_$7_u0Ҧ ٷ%lB[!'s2WԾٛҵ r9P&u]f !k9ja&:0Nt9#9ndDe9%¸ZX5L\6ھhMp}>G=Ĵ+-Ӯvͳ*glf{ Ǥvjrfv^]JgkkїvM0R.,.,/3_n?($GH<{DAWĝ tpjᅹ$% OKM6ti: 591 TOr>@g0X2%el jXP jgI`S~hq L\b5OQg$ oyL=T0ljʽDGb/t.Т4tx'Ɛ,tGBd瞝|c]n,QRz2nbgYF_ڑ'y#E߭ E {#Dž\"C.~&!#VRTy%!F-M[{Ԟ +)ouC2HL[3%>[StDZO"}"| li-AmFl{m IOIX~]!."@r"kPYAVf,\\}J-e:E|#^zWs_/Od Z+✛ >kl,T+KVbAPWgiiiYH/Q.iv^sH3L%=_8>.#˔>B3A#r{C#ܖJ‡(Ŋݖ+zÒ(f-J0d `*MMYlCNg&5Tx.X *Ш+s)D{-r&Fs#c"hCPC  䟦 +C%g;%$-<[QGnqغλ:""ndH90O5. avCcX)\ ߤA5ljo4$Ёj`$7{~I4рZ|'3oGk^ytfB~ъ̼e,p6\7H| w7Ȑn@FuTp<-1vp ȃq/'(>|NʽfE 2%jxTV(M!5.Wzn!AZ7apŏp5)8b +.'?xEQ'}!pzQ)Yp…sl0OYƞ!R%-^G@~ [Q\E}Š YiȷKf~^A,J- X^ Ցȑj345!1S" hMbZ-$pWVRmuYAf9DBNdsf+qn]Ϡ:v1Fr~~*YW'?:\6U948o?3UjBf=mтzam_Xa.FضL!fŖ@}c<a67O_gqŘnh"Gm7oN7?{oARxg}?A@ R RAˀHigBÍAi>̄K' JCsP ˀX +hGcQ9#Il&-Sr} * 9I\t[nkq-:PƘ暩m@4-Jx/}:UR2W[(bn+IcY|)hugl0H%QEmC,|"!9~|C'>FGM=" $5TŊS5X|TZ+cp_8 &=̡ +f>Z Hy9:[R0_ym cT]FX= њ ]h{v۟ +`1,a&4$m/.w6C?{BF!)P2kKF j';zSA)eijf[WEv p۵/Ob`SɜQu9:^+yUP,nڑbhЉۇ EGARF +977J +<"W p9` +=4u1yJж<_]Y_#Xn$hs2WNx*Yo:`d-p"Z M TX䈳6/WD9Je˻,/X޼)tF^AdL߇_(E# d"; QbeL=V ",õ-G7+o#8v>w5*~hqjvs@,kP/vȗ9@jEԳuP3 7?UhVmJ/y>q + +yzڎ}?{ISe{uUPh@ էa3jpt+BCSf'^sd*7&YRKxY9,S*q3ԛ#5('+ua:NJ}2^QGIKqe5S}ҎWԥ@UP)6 +Nhu`#2'J,U؃Ⲡ{(T7EUdכ|:DTm"~I0alœ,Rf5{ JglQ8ǝ0M߭{cD&FЫ_N,w곒oHǑcِ%Ԋ J➽:ͿOVa,?ŴfO}rcrWX /9Jj "CT1(.u-/ʔTHn; GG Wi|Z +X% ן`2)L2lϕL.E\֓O?¶c翼ܲIgG4z@sa5 ,I]kRAU,_7*=)ZjbwiK]XSNr<}Mc{sްf!\cVe<#F~RuZ:tq*J>~`s_&kJv##Zaw#;>?塭G ?%')0ƙQ[R.Qqok;_}ݍi/OU }c@-PG3!S`R mYs򚢋C(~^|`F"H u}kXkAY} Iak+sk Ygy|(dha5D HHCP` 1ƘH??sFN:rB#gY԰hȯZN<)4aUQz!eXii49#Kv1ּ%Y91qzrjCC!vk߯Y_>aE =V-6ȩm,4Sra[(b8FWK8!='j-Z 1QNXնf\a>U%W]NK){\mN:}B2/%Fjl>gEl3T =I5ő9r)hwSʀp@p.4γԍSqQda 2(ǔxb)9tdk):/|S?)хUq1IHܞtV1_I`J][ eDɗy +R'i_Sl8IeE僂X|6"p^w`Q8L>WZ1Ԉ y-99H0ڦonHy|a998S.Zi8Ab]zm:f&ڼt0aoRJ2O3l,~"O8 M3Bl"+Ynn`* +D e'9̒îv615SzBM]A*)laUYZdKK6.BODPjŠH GFRz F =9(֥/Ɯ[uiWTM.15U&I*%,Sqb7r&zJTة!z [sn< AdrTQ8 B 4xT;^+s "Xh֩"%\I-6KfH+$*F-'ӤJv#1+L1rǢ+ë́WP٧~GF\3vҤp {d\zsғ3wP噲sJycs QHX?Ua[Ly*jS>m9O4KEYTZ!C$<;`C|`!;}g9ۆTownn +SǺiD[Gpj}`V0xԚ!`l@v搕Ф$<[#Y~gROV4 6 2fWVi}cK]+"~tERahr +!SSa {󁮺$0M`UM.5[6'V- 9mB޲QKO}lw#DlgcP$CAEV¶hBԳDgD,3Y557\Uu-XH</@ :dиY3uC0;u,:?yV~ )^y__H8K>6 #*oP/-|]1 fc1i-сWjk^p @~9߀;; Y\޾ 3df?A2B) :˱`~4QP͊# +)i{fw@x9y@tOnVǦY#ݫQ5r 'ņ %ͼH1ςv9n)Ga&h{y5T̎~>&!m'(Hm/*A\y+OR(>9,.A׀5#t~9pd}Qa48:t끝:`9bu!s`46 PAǤ+ iMCMDŽ}N氟{h} +w[)٬ρ4?hm;(P!,qpcPبWA2qZK=Awƽ ZxNg֊zoVsH+FfJ_=u<_ͷPiIͨKtTD8I5WfI&ʁcTٱ60@81GPk ykT;ҲVRL +AqpR4pnR9HR`A?I Z`k +X 5_^.N;- usaQYdj0zPq꽱R-DF*ȷ(%6J,Q7YS +JڬJZ% h IwJAvZסsjd0x0xpի +kַ!9LG:W e;[>iR?`o3vӤ&YVc:r5֭҆ t7u4}8zQ6.nb[f2d}+}~"%b9%LΑ +z0GhM8Kq;G"L hGiʯ +='niFPnv&QNV0!-I+29@aϡsӜ%w`q@`5} ~eSan;m/VYDC.KQKZA['G[~n N9jf64̬8R.msr=>3PyT\翖3r$ 5|%=vnܻ-<0ͅ03Oİu<7W8/ 2g;d? eB! )A[ 3̐>At9 0)t0ZH" +zR姌!A+ ;|| .O/M61 G :pXgg,LkĐ_Pӛe%dr>Kh#Pl`6De?c.?&{ß܄ +ZUiJO<Y:4LmyD֙@0| 8!Pg>)SaBy$BY`"ʌ\qnL`@feTܳ!Aܰ!:0GK[d:s}#kH>P8{λLKxrs2Is#Iy${'K +Yڈ&y-Nt@TG3fhJ]bS%3`g6`:`E?.Λf6kX;~mbgs0˩V#+';D03.N6?:]rnA _YcJFl\vx D䴄l"Ü7K&+L;+F5\"mDMU7%i N0J[98 +mٟ̳ƆD C "p<0UZlv +0?܋ ӌ[Co'eXE[1ma2E8]lMSkp7!n"0oF +C2sқFE\O *<)+{ʵHWAw a&ڂy F6K7$#Gӆ.o{51dkM?4$x'av}#WRh)U:3˂Z"Lϥm61v*FSn~nC߰5 X|o‹]:V~5t;x+]9Aեނצ3,\]i%U>6o!a4#4s Mu=O@}ԊVꯘްzM[r@^| 8z +]ou g*\h}} >[ xym3\o5|ѳ֭9Â+,#k7Đ09 EGTd0/QUa5$r Iun1 I > Y%M P(0G^0(M kuBFFo}SDFevLkq] uӣt"uϊ{?]EEwQc/ڻ +B^tVSs;m3;Uۋ93徻æ&bBD]$4HD(8, M +(psh0Y}(ܕ /)AA"@| C!BlB G/2D3ͰMdž)r<ЯMiݵہ݉NJnaeΏpt1<ڮEnE=w)D(pE,/ߞY" g!|qcWLM5*<ፉ>>L3&FWZcQ@(l۶m۶m۶m]m۶m~=VLLդt؞5N>iÛ{@xg}:+a KrBk`G]p[b#k```[}@I” aKCQ\c;㧾#ax+L~H+_AO?Y_O8;NO(/W^gr"ũI/Gg"^h#^jS*~]XŋHp'H+!//j:+#)t%.$$.2MHĝ4RTʰ*?HSXi KGK3ttUT͉Lj^5KC>%RbQwD$XB01'Rt)M#]<7 |9Є?m~ɉƝdt#9df}H=&w}Ϡ!@#HPiPw_n'Tt}Ȫw*0o3kC>'We9^C_^\oAG/w?cxD07XBMWD:}诫ru%<m=z=\S$䋈A"ZAԏ + ZkiR_PHKT(J6k:l݌ 6TRǍ OYzD 'J:摡Lcb6 fx*bP:AnBhN8{POІFQ(Sp- Frp_+ }BٮP`P/,*,X}CȐK@؇ӦzGL*W?ARpBF`㥋Ѧ +HSBǃl{@iǃl1hp ~ncP!_x'' ЇC %P?a>fi؁[rY .Ё9ݧQ5v|X2Ã{(YW"Wҹ reo]Efk )W(/? L~yzp;[6

;۫}y.w=x;0?h \ _bgann!ܱ뗇 +GP-G/:S2ot^ǕM:oʾ1M?v~&7.A9bO/׊:|rARPY>%%xNx^Fw*D2W8ꗉӝbA@O+ׅs)\^?FqOx *J* .$]ڞ:(/PMZZPXm꽳Ul¼Jc#8;6a4<şc9|+N|-u鹙v?n{{~Xl! t1qg-fͳC)2DsPi 5)#98p !rJUir:}XfDaun,PP?fuFu[rtL Erx + iԵ@è[j졶 3LϹfc]eӛG_!$ƨc~%q9.`F}F$F\⚡"#>Q*ϫ`1[)gt,Yf( rA KS +cϲbQ:aҚe1OקR\5c(߬2g{P3tC5҆Q#+e+߆׍"v涹aià3-hVX3Y0VVnH85pjWӉZ>tU/kБH*D7z(ԓD5)"8/bWsY.CRU M ^&Y΋E=Rv]6 ;WnZՇ,, @] v r?U jH׍jvuw`CriG-&p]?~]Y>߸C//FWQwQ?NK1|vN BOaYl }_cjϣr>AQV^}G|K'Fhn^A)L.Țx".9p%"P-N,ȵM(R$W<_B\6vN.7b}3?>)Zj"g@$a48a9xR 6j^X2F7VV[!H_fl +VJ_L]/Cާii&MX61Ha8cDȽb&!vj F"BBaQɨ s&9,I0䱍8gLmdiޑ\&Qw9FOAhCQ=辱/$TGY|׫06v6\z2l-{>"K,VF²Y{>>t'u(=wZ:wdS{o}cod(iԌl3S *mZ7Zw 9 m5JB7fP˙K]5u*{(>q}MPz=CfnE}n5\A[^F+a;Gp93Hcl:RR۵9`cX^_bs^E_튏fy1ʞ,pX@SByh!ujv͹DID`QڶgGM%5xZkznOO7},wE6Y$ܝ8"ge;K`OG—;ͺg]* (omQ8n_٤X+&i;jZ*aXuX ӵ7 Iqy==ƛGU)T[9KSp/{)vzD-=po(= s6:/&}_ yL*($UqDË': [ᬖ礔ZqԜ:iݖvbn~[g\nt[ͺWng~Λ[b>楺,gXHO|?L-;c}&X؛;ӯo/aFz)gi)~^c\ci~2u_<z8Fe>'YGz#ْ>Zfm1{;FUgeQ’|^=Mzgz b?k0'ܱY]uӪ+{ITq2N&Cad'>Q[S)b_vWXpFEssg[; aOAF_s^bm*Jp$|!NoT՚-RԶډ(Y= 8au>GG$Jkzhϋ3JED;F5)6KcNsecWw8.bw;R#O +TJ"u q TH$irAƱ-~R +_R2|:}v*P&NW/ SMRe9{X3WeHLߥn^L(e֏LI_hQ9琡d4rs %WFWS#U.őPP?Wnry+y;|}BX /lu%8DRKo9ZJ>jyg_jݘ];Wfҟ?S.W|"19F|rۆѷlE +ob99BD'K z3[8Z3kB@ k'@b jfq";c hjh͢FX!nX'CKS;)>a$ZGml.o( +2P.,R$8y~8)vt"N {joPsH@}aAr\/Sײ#(ӎ5FoQVmkY0x[(sB\" i]8| cJ(pimgF^qlm\  a*&4՜4G&TRzSsp&Lx.`I;OHA_ e +zYD+"Vl<7TJ+3F?IY-c#fq$TFrZ*<㶺%W'C5ͻ+(Eu/a?*?EQ2E= O D!8K(n2#1}#A}ï9EU(˞56DOVDTv@8MdS +(`t8XpXX)",9uBRI-iI߲z[H-ҟsyE \t%.RcӬ:bQ:fЅdT `p&O>:L3g҅)2\=t0J)cD81vNQyѣpU#2^)S~Tna]B̻6ўva&=R>+|ZL|QnѹĘ|R̹pF:b#埘138SA ~>yx̭ lN`J_;aO #Q(q1+w<_4<*XC/8f S^yB؈xT;g h)5< )|N\3O2s`:9c<:i#>]mNGMkB"DDjD)" ">}ad,#$ƤH"ܑH"9ƋtKQ# %D%E%DKEzlW%#^m6pX%0䈇x E?N{|Ku {cPKO4"7*ۭ ӽgꣽ}ߣBFW%  BPw%hGX+'1Fx)x'Xxc/؋!8!Ceō J][7?O'6$</L PnHn|[oƹ-x|,p9W>Hn7Kbx_J?wP2o""A)uIo,kcgubt&\e&\֤.\w .d%LL?K@{@.w)$^o>پ.MD%MJ99Ե8 .e\rRT\ "X?42dj,٢S +Lߨ,.eT+X3Z hE Zir1@eWe@[303]4zO1'Uc'#wN[r s9MvC`/ֻ +i;{NI:;7-ɖ3-Ǔ U9"rF +fcnv pe\:i9GnGer.%Ëv~z OuUa*1RH.ia&LI[6ru߮J!/Q[W*&cY}[ ߕ<7ygF^wms}2͸0 ½7#G~b@$G!I{cR)$6B33SO̜a;nQATxZ5'oUWV;ϯQ[TPu ]Se>c*cnV`ΕL+"6U-Z˟!1Z :9V3ڒiyf{]D !QgA U, NJ)Ή<ȈᑲJgpDdˑʏzZUw.@A ez8i];4$`# (!pFܔCQ "lEx-34&'26.E/dR$EU+Mf7r}8ո%X@Ks~bt6BZW)̤^~B-Wݷg(&^CaU.7- %A0ݖ`'..!#CŒ[>XI9%6Dن#\ f>c| "sFn2жo +ȮM<'](*&6 [+.POq`F+.ˡy^@C%.M.f6Q-x077 + [PV|kW0?}EKS}m#%璝.JPiH?tH%F@ y$[;M jm@/}M>">aQ㚓RtmԆZ0 WݨkX6r+DT\Z,ѠܑW;yt-p@n Pԋ$? EJT?`#C=6_()џ~IOwcjۣBGvt-rj=aa[hWUQLgxk~ sy4!h<*^ t~؈A)jE? gEMs}m;#4U}Z!$UZw=eM?~*f,E@T7쉭`*o!Xu'~߰5q3o/Y bp}Րj{V?) +fdIҠ{%\o)ىѧ:z^ .)ŴHO2BH;*oY[҅A83%,HI5fPND4HT'O=q(FoGϫ +,MuO_\oÙ<=(P +y&R (!+䘝̫P Y4dP*ǨAe(O{d~}gTPQX#ЌF\]AB]ٌPO{pް ղj&:k>HڙI~桦{¸rA\ fF9nNфmvRJ0ivH,~Uk>MwLej~OU)x3o((?1Y +l:nOqU4*̰X9O>B='᧝0u3/}A&:ճ`e &+SM;P7f$)DgKsnNIw;j4zE9,-Xj&۸fV\Mb)&w^lwKwZټsemXaY6O,ڍ=a#1L4Gq8VX`8Xj0ۡ7z_{[KS|݅y_d o!ՇAnѫ,gN1.y48!R(P.5miIr,c{UɅWխVI{Y㬸nmsjV@{Bmz] WVyK`$|> +_͎>pxGҚڮr 6Zmdd`?ϓHHs1jS7&B;WMުqoUv=Qe7ѳpBI ;1qKs4t1oJmh7Uw&;㆙5;W !y+nu[/" ҖQ0RD'y؈<1 OI!% J"}H$ Ce@EqDJˉpR-Y75{ awD:ݒSfT54eF34h1(*MHr=hD} )x}P J52nT~[yN5%vk +mmV&`策>g <&DQfqi.oUqcNN:7fmwR'2oŝDeRjX25}Fޅ:ðX3tM*٧fL5 :|ev[FdEhʡ+`|gA74wg1X,ABz!llR eGXJt,^WC[dKpl)$]1D3Ҧ jdRw鍓fSdV2뺫Fʷ&M 24w+ 깍Oiճiݱ( q*6F#:iSN@#mYܬR5 +݅ܨǨTnkS7fk,O]籓sWag>3O=V^GD,s*n{&m U^nu1 0%.xfV&lblmݼzBO}TGCwA*"#i.؜+/aG~V^#e\M(d21_Vk軬][?棥b]Zw| l`axߋaxkTCU}ujdY+Y`$Q+J(PV $@TH +U%dCt%Z@])._;$db[xŵ+؟Kd]]\+WbD}PŪ܍|C}_le1=L0χccoiɘG婗<0yhq +Ӧc.~x Jr).Fʧh"vEB0͟v!!1 : S!@" .C VH>[^dbP\%aL(XئZ5Ld/!uJ> $TV9 l- n;:A6eD@ ʖơ#q¡?( !A1vIV2NpG"fEn3[Ee;n'%`mtF|ߑKyD&|"ꆭt˵s!msFr9fඩ*>lt9R=K({{diK ETlS`UH +-tyQ.JJEw7P*Q\Nr(=idGi$+_Gi^D[Ii3*+J>/HШLvꘪgꭂ&J[8 XvêX!2fJ/ q-+X>(5oqF,5\jvuj;Ot{;YXQB)ˇ?,rr_c\F(\)alcP!5KЛ }M_ +5}## [eOPn:0FOMnr`yP 34?ăJ<))Q$b +.f"JQ 6rȐYBLP27FN $ߓ=w5]ǿP* "]5Pk 씱h`P<ORh(7GBcat_vQAޓ sCe nPPr +&QnjȑJe)8,[Cs,Fӛ-3Ie }ɖu>%k +MMns1cWUz\;[jə3Nzw\:7>եs`M: ~ |!ҙ/5+֨Mb^$4rWv&Ntyb}h􈃗Tҋݘ$QR`J5JIfv;Y8* 0ǔf)2,y@蛟(}*qHkrոgo|WtJ3SRX堺ៅ_RW#3s=Rhbw6Ə,sw҇O.% Cn WysDۆTDf +͒g C~8G,8Hgt.S5Un~̓u}H>Q_/lv G(NS WٕKYRne$ W_lGc,WYEK?X`\m 6mS1cؽ'eǮYw/ȰOwܔrۢc=៻w9bӿ\foX~;_5<e?;g\|}F)ǐZE䮿('ʏ1殿8sWߡDI锞Is,W)݂)ݥm70GwHwR<&St'̤6Yq(?’)?W߃cSI6큮 k;V,wVg7oly=FΧN|Uw8|mZ䴲_mn7޸~-'KQA)S;F٤Mc{#5 +1EކNqy: +=Ӱr1 +MG˔ь(ai:⼶;;pjx`lT55=#efCI2JU15@r-Ѡ< q0y@NОw%0 q1j OMN} Yдnw^Z'%%{@* +׵w@+H^ggX+tE~~Jc+ 7R؈U=ePlghQ0b §X$P =}e27 xe`D0. +7$\k!+eh:1#/ kUpdԢJ WXX3C +Jͻ3}u|<:ΡBمV͛L(TC#_ZYWjC7]1t Cۊ0o10OPu# < ++UXFY+fz!5:Q M 9YUT5,d+p8ϬsPajbJեߖ%" +Nr+Hmp0aJk +Iqlf«YVFWae3 Wx*\4uT` +leƆ1;O/u6f[N<Arѵ0z}XC)$-XNL&߲*K:| Gڒ YT7m0Ts=o-h#60'tJ\h4 pgrT6ȸ1(tvB\HlIݩՊП0٫Mi\FMYɈp+Xo3e "r:Yȝ(-b57 +ޮ5} +-'YlZ<)?iJ?kk2&U +:kA"/ST0VEk`[` ) jJf5 +'rac;cu!A~LVŎˆҩqv%f1 fZ[PԣX!~ nbjQ`sX5kAX)/q]q+ack*df$QگI\q-Q}cU&{)wTVW]<+k#,+DK\܍E}hgHөqvSUXX@]'ڽ"*ZTk;Pt0>Jzj(iBDǎ?x?w$"bjmpإ{К,`E}H)*+a(ǭŔpDbm4 ; +EY +CdYOcD9DqEGfttX"yu=E¹D#H(V?#zA^$A_{psoFMqcj|^e>]#~H%1g+Ɍ('ư$N hm8񌼬jJ[#ʑ:c[shY EbiQЫ%܍[K ;Zw+k" i Y Y' lвo 6HҥK["5xq|燻9\qq s0NN:2:`aXw9u [qХ)'KR8D1!iL0FS Rי*P +7 DfbF Vb>?^eYvDHN;Előrf!LE9<^NjaT'# c}z'B7H::{)p}R(j~XU/s 7L!S+,^j-"2TdRoKE%՜\I\xT#\9;[1qu(~_bxFdwYe٪`rq L8#iBR4939~R2U4e>S_fFq=qGn%f;l-Bqm4Xo`Kl(Óz`E. Ɖ[ +\Q܃p;8nXUqrX^i _9HJ<=dmjt;{|>N8^C%a{R+r29)wyD.j*&d)@J6ߟB6VWs%Tz)z`սw'c8r&M>#;8kqi~M؝I`V믹m{e@pߕtv9(Ʋ X,I{j9vL9r 6[)~'z2y=E_Kwި|7gu .b)4ՄsD֝;ˏF@֝ &rX +šb"E"zBtp jIdC"4> XP + h9΋)^q^F`o4KJ1PϒWs K{0uIW+ ?cGŗܢ,d-׎l=Ƃf _݂ȟץ*!uC^a/+,+EhYR +:dN;),٥sE`Ksfz|O7r_s{1o |j:Δd-*9)pL[G1B:< +(fq.X-G }ƈe5bݞYփGī4`EqvQf+0iU% r^W +711RY;k +8 ޮ<[-t;KpKh vk{bV!C^%ڈ%U^%LMڐW$hVK [@DJ + b$F saApl<`FB(QRy͆Ky MS smܣݳ@>|b>TgB_Տ@%&DFCbүs4*bPa  {@"?HFm7%ExU>}:Os+lxM"EM&(`o$_.Z[SO 7%J9ɽe^^]-"*&%=i{o5҂e[L)/=i7DUG C{3qc4 %c433ka9) eq#sW 6RoZ h. _jtA>D"@~70a5 m?95%+eya$}Xrjɹe(6+ + Г.| NԢ>hh&  BӀZwE `oLI#YeH3:.46 +!jȗĈ3^BFhʅ}G/1>BIB@m\)~\rE#k`A1VTQ;^3՟ceHX-Fg>㓨s2IpHHD9ѓq!l-¨6p юDvv@n1:iۿ7]9v]fױyFFUcN:RH:*DK]7~$DP@^GIUɘ2<5']J!A)VJcJ*э#Ni)]aGr+U*㫏-Md6V7a1Y8)C1 cQ+(Q:fNK ,BJ5`BDk-TD-Ȯhc-JM̀Dx)YF-Z^o q2!C3 +Z7aR%ʎZQ푉4Q j_ `6N@HAG"-'d6΍;H835-L1݄МiZaq1蝀RnMZ2 H z*0l_ T7JlѼ-8'w.ijdžJfϨDYT +]<53x-)7_4I+rol-vk k"V_m8S E=Ӄ#bmǵ8K)4"!30/<]?ƅ(7$ 1^ +uiSK41%7{P܂sy}[ns"^h21Rr۶ sܰ0M˸c}gꖱGEX(I€ |WOTۄKYȠѭWI-l6}Jp@]-{.Wq'q(ݲ_!#íҿ 7.>HEi(*_ϸP~9vqSo QCEEŸـ-@.O,]\^P,vt}#Z> ]#'mE*Tzjjg:8x,#ƿDZB?{s~&6#뇑"[ 0R=JCRup0⨥ҡCMy^hmP ?F HjnZJy'+I}HB?.KdQ#˚d jB,S +hΙȧMCN*J՛T3p9YfR1G\ѻkNgf.%Ktd鉰n3$39'7aOv*Xox7!5O ͘ \j$.-5 oJ=/e.76Wj0+Z@pH.&]-C,8a=S<:ow@K|Xaq$cB44bG` 0<`&O2SMLPKyl* KY|pjs&gquFFo\s{9ў4}(n7`|YSc>H}qs2m:wǀ#'p~}w'ߒLi}DD}R]Fl_pg#:} AoLDdt! !t")RÓ֡vHto Q|='Dmr0iD;LR&P"e:0-4(эfœaF ‰_4A| pD1 O xScF;#dtq9*xT +5ݰƺwBeIvkA&MXKט?Y\ЪUR..S<ހ‰4SES1aM $MO\ޠҊպ&9cQPT1u0$? mkjr@>u5yvAg+5z<fI1gsS-&df +*E&äM #8ΡM97WXJ&TGd # 9n\?H?%Swzll4iW{[ =9F; W;/ +Xkxa#,5kƌ1E{SՄcqIvyGv*mֹƊ.C'.).-6G~?72q[sY;wqYr )/&SL\3vC c-0juƩ۰ȼyz7blm*HE + +[=ʔii [KK]E+f+| m]pu=n3%J)9 OvJ$3zmWxFzY._ +oQcN ܐ겭A(Ǵ nx= ZbfkyeRQ~ ,X>R,5?x(X][{] + ݒd?k;;hf(t _B {܏N괐a8c a[;=Ϥ)5:VXR7Fid*QO1%y7Vu?ƑƮ$%BD_u5{m֢Q؝eoܤ̫y c'$u3ڐ{v*q cpBi%wwwwQ$'GRk>Qdx>o$xKnl{Ṱ0k#W >}#Gn +.'QJ7Yqt +C'`1Z~zw~ +(nNa,2PqD5{A'eOAIMM[6#ֽ,VYyH Q[䗕< a,m$oDvNm݃_>'=$h&4u58{L>]?V\8EfI +91Aɬb<̈I"h߈6^m yC%m؉|Qnn +].]s@$!uU1CX6>ż ڍ~|:;vؓKEo/%9;- ݀|rw.Mί;WnڔOew.˓Oo. )# + BI V|)'fiKZr1 8L{̴z> )H]G7Ɨ_}F#6yvdM ~sciԙzm> U_+>?4gx nϊ\~`E(tQ*zNxۡA}q9NH|ӍY:]562o$ר<[?ńȚx.>V>u{(T A5 +LLD|i3xeւ$Xx+GD|olyu? ;'GG4}o,v־ЕGz=?pw^e?xx[b?Pq?CGt4zSGv6 2iuPUjHQ\ڶ4\4.|Gxmu44@_ GgK}7i"wCO& G-`a?`W'LWA6w(QἇLmS>ܫjGT9,lO0cGǓ_dT +[acm^rc/ L_Gg=wz|r$s| + VH̠Mq^* ӛ x \IfƜ(ErgJ&=*.6t\Ht_3a|TCsOKܴ|e= D$_@x$r+n*EӇڣF,nE}++,rكd7t +yߨwHJ*(:۸XO1=>>*+ooL !aCDA FL6rd4VmwAjGjW@ں*+#U-V'__2d~}wooy],wwHDH)/s ^!0=}sX\1"u0ko|u_ +/ky ?I^+Qg"%UJ_ˏ\u9 >K|H皾C!ߋ_CiԟȚ?/qhPf*b$̅)RJZS49̣R(δh+srxSgo?3JmgvqfS>y|IEC:,'ʵv% w nP㙬v̗IW*(,jBM +B Ѡ-Uc/v29 =8;29C#<Ѵ:9s#::]z#:>^tQSҞLtt^ )'x|Vc2 'eF*0Яt^e>w_ + NI׉) ENgPHA[[\ȉI(mfГɓT֓<=FPW mFA#<TU NqYYVv! U45KR ZaTuܹj5UG|Fru +ʬܡ2.tZ +Me8UFz7LxjA` ^'E;ϮIUS֕h+FI+O5՚> +%Q~6dE bbFI+DJJ Xښp9kj(KRZD|2Ź7;a\]j qq뻋xuW,bT T@t,,fmh#5hի[)z*ͮ-y&[(6QtQ5'Ս =-%MU5$]!I+ q=<F QDh]@ i/ eTʸE UH <(-2f&E%jo^_26.nqG3/p'QQ-+.1SGN˶QdFUa'#7\E`_-|Hbpq*E+5E#i%$xGKV>Ȁ-H +䁱:b ܵX~ $Svv1Aηi[RfUͷŹ^P.-=̊X@(8SpY#T\HVQ+,7 "ya϶_bЀR"V̌ .=0Vsܭ:pj;c#v#Ag39gX UIv57oT; +c# BvOYj3ۄax) ++[ՈѮ5639WjѾBoð9Sga#-,y6]*5(7Í`8睦Ϊ:7$w3ZqТ ¹ZDoQo"  EPBW 9fk<`V +h@5=im"oI;ubI_ZT &bDxrjyur 6]@;2 U6P7l.]xZkUiu1UU.T21HϬ{d&X٘j{5ơLqCmϽDr&R8yVH+T!n"&uгY]ðfT8m>Q+_2޿4{Զ6T-1 6=K@<ۜ M9x}m=]rm;$ѮCňu"hB'q5 712es`W]t ~_)r+z&A{ EU QgAC9Ukp5 .F SGryCK 3tzРbK0VX?)#]ZҒ32|-m>f%sg_Nl{ym^*!ͨUUA%]A>ʫ[MX7\* l9L5FvMjLcu<^#42C9<_n'?m}ge-}9%f}DFzA1>/oTQI-OJҹhNCZZn~|#Y-.ԟtĞ-;pw!/?OSՁ h尘\0^װ$ߠl@$Kw#& L+|VYC g xC0aWvѺcdlL+%C{xXdc ]ڏ`o=ט&TbXo:IԶO7zo_bٳIvp^D''p MHIZ%:#1g_Pwwi_棿JX +e`}c:NB*B?x@dF3#]]H kY&ۢb4'x̴~TnyF4viQ6t MUUpWnyZD493ZCp9m};Ɛ7icF °ᑜNI +Cvz\@bGvʹXJBT +;EbZVe U$]#xxފz&^ 9b Q,Y] "k ²"̘^4̎kIEk6:KK6FKJ;Q֓6=IӪNiɵf'%([z3^9Bq@S;p,N-ƃ,Ej-dN*I1q׸5h{\~Nm-׌F*iTU*9.iޭbhرF=Y4Sʇڬ#ED&yn)?::;~Q­׷2Hc1-~z%U +_NL.4 3qo =ueNrZ{"[_>fD Ǽeeͧ&<۷ `{Hs'+A`_a(ȞT:L*%*?cU,9prK/8yRd;(ioy⌾󾋾XTaZ\:+vm\\I:NNt h3H1>LxA|;'_co旴z5Srn+kj~ɏCX'X@`gױ h gٺI+p-1zԑ\ǹ}YќIabn`FM>܃ʇgf< f .ۻ6{R3KQ}c n6wyf/h h~T{$ר~zQn8yM<8Sb04̺ l۶m۶m۶m۶m^y/~Ϟsf~D|DdwWwȫ2[eI+tA@_td](]J_t5ӕ/>wd_xr!+{[ r^VuSr|n@S-sx?BߑLj# ܸ]ݽGB1)0{ :kT Ł +ơˆ ʢkf †0uVњAT$Ө+<~O5JK(yHHC  ʁ1l+)B{$m!:/)W^a+ .-a{v2?pԇQ;^tQ4 IKhi **`_}?uO P0tV@?cat@Cۓt{vQ^AsXcbv6ِ_ 3ld54&|e$ŔWf#}`+[imT#x,Zan02uzřx!T^"b2CkDVUi&{[X|+ ҆-moӢ7w| {U9ە2G)u_I^hvq^qnpҐ~lS2h͎"K:T?~[xMQ,q[$2O7 * ƅju焣sұdĹtȎuȤu<^5*l` ]qu H Ƣ_!ȹx͊&AEIIT՘6FmmuCc6vf,CKn,€ +Tc?u1c6Ă_jbTAWrf~w5,c/j'oq-YXK.+[c&`gMs؄Z?4DNS$ ۶[iG/6#iDl|v̔*tg'OxDU$+D[ hH؂= +9n=Kz ҪYΕrh$a< wvO6n#},|#3\M`'v}۝}]և"lGC/TPkmH(AD=ua]`088%ˡ=2a7\f VDAN&4T!D,JEQZ@ "R [N᙭Ll|l4eΉ4f&UJF́ŪIsӣEێS O8_ϟ~SbQ^|8[p4IԆV=<X t. ]I>GVg,[-mW[x9TBY`4rpjQ!>GjWI#(h]غp-/ OO Mku|RЮ` +(뒱FJ$U7j1  k"cO8L.^By5<d%*"^K88I H(<t|IrJn䜙ڦ_T"[IZ3Y^w/bT\VBef0n I |]\xa_7y[V.]=zC:M&h֍? ꡳAi! ot 3 eـҰR+MX<f2L,5}Gf|CJp%O䥟?zߊZҸ ,ZYii iRL,K[QY$/ 3[ t1m9Z4@}ѵBwY/nA85NoEZ8+qы^ؼݤ*ha \4_X@QXGç +1NnG)vWi`9G@oSr3ԛM+|N䷦L81W)zoü{Wa  o28^_o^v_E9 Y#~]= Z2s}e:gW}ˡ| +S[^W*-*-.|FIzi-Q;!9^O>H}vpF$>$q:`C{:PR>hTCu +P#K=Ҥh"rl>&q,ϡqDT!4nR2ɜI9Y?Y1>ᔤ/I`}wOI <6Ѧ;⎟CxQ6\hŬ}#hkOf +ǒS+4 RUFՌ @Fa+K'1J=>(ӐS˂pTIcKSno8:<= +oT,?Y$Q,x(Z X1bǵpG3cNswMmy96"oS!bzK'L1ȉTj@I*٧)WtiЈC⺜vRא3y-M lR&Ea[~+,:ay"+ΖRQ8A66wrl$_vq.ʄX0]CS^u+{Áh6gs3B|Z]&!?uo w%, uoJړ>r]0J?x''զ +09pq%+%,HBy_(IK^?2П%lC>:p[d~~CQozYPȜRǁ]Du+V](m Obe g V&vvy+_!4} v'쏖)l탶(.d|cQCJOv|A`TR9 jR#?^:k|> CS߫XtNuPP>cZu~q6=kS~T%/LtG7 :If/}z=y܍բ*u1Җ.E*nLbBj=#P;25/^)3>chEŅHI۟. +l9>Yu!~|1 +v{7!MK 5T G7oY%}(R,E݁>]>l@/h,B ¹D/Fٔ|/Cf-brc ĿTEǿYyߖ)~ +u#ҧʚDʰHȪ@EZhcuqJ#]Ǹ3pN$p?y ssprPgN"/u%]lK,? #rLdCFګg Z%fNC({ 1?ג~/BkKM=\HL +7h|ƍ#u!fx뢟 ;- }U[HJ:}L)$dqIIcӍ𼁰#?hrlmU@Ͻ wgaElāǯgʾodCn<,?:h m=igRxV hfUbXVebm cVrp +uk5Ϫdz%[k୪+o)G)Wْsek#%6eb@ o:QR 0v;6ˬB*%yϽuM8ν-@KɿdCW.Alu'_;Nj1 K$\޿whNAkd%.'!/} > Q>Yo;/N^}+^Ho/vNa$2`qcdwc +<&9z,#G(|bYJ* #Ն"1[trNPT_ofqKr#/w#-6. @Z\F3~^@`*LOvL @1\MpT/ 8-F8.Ulb94?3ix`xY[%MR=E޽ŬaTajNz6!zg0cBU2p jv?tC5h.`S(yN9qX%|R=3B>8j>-]w` +ya 3,{&*M WEl+,NzNSMԾݡ;½![4=zP/y @=.jgNUu^E{a^84@641 +j, ۢw)rC1i1UDFL^E7n 1Xh.γ&vvus/@X(0\{[w` 2#[y@7\mm''5Df35QrJ(&b#.!*!(Ya11uaS*ckj|̥ܖrf-'`N r`V)*SNMZVa> Z՟ ڬ7[_7Kwf+i:n[*V3A%`n +o$@i:\ϐPMC>,ݸemi~l>DV۩Ĩ[)-"mj[Rm9N14N~š4vy$kj]jpB(12eoij_QWb0Pӥf:ZtƮtqN" +A ' (,&g'QnҎێ=eCVz/t B$ 'p ৢZ:z@:vUK EiQq n7hv8 W)tRߋlVcIw)A W2SdbeZ?jآ(?\Zbxca iBnccQ'n pdJً1 b}GbУ`蜄 D()"uoW~/w_eQꎢGPdEU8LTdpTuZ3T*3jy]ហ +ʂzDJCF#P0LϧtTf- 0vi4{ /Q(:BUECeymuש:l„Y\v#O_uOoe,K~.[1'&zulCt۵bn/f2+UǞ~"aχ 0@&L91YǼbx-5v*f5l #N!^ߖ-QvJE*e(C]A首z!֬v'r +b BUwX`4cTXk€(; qX|c(r^Z;t԰ۨu?:*aͅXRM%{NRA>CK=,G+4^~vrنPڨiHo ц= NgZ+o_FoW h+Δ2>/8^9i2 m(DxjIWp镐^bο.m*7.#.;~gg&j# TS,z J +JmS6 WG#~|MTg +K* 0!#(<).myE5%[ ̢L>c{^?w0D 2H=XxpG>ehn_vB_G╹g$ĚpIH#O@?/-6Ł|jW.+]*BN#ϑp2+bBRٳ{W~%&X +K8xM /rh#ei0u̺#v]qg oWot18^2-BKIkL3 'Y0qvxB0A*I,RHbՔ"G +(eSDFIro]gge@*h1QT͓[ l+,ևW +Eexu/!d=~WiX?o[ hm~};4s=s=b0,Zsή#C!]dTt*D?s*i 6G%MK bP>hr^rŽBAPv?teai(%i {shŇΨW~\S$Pg0ɦt[0ԡL 0hB6Xl8d, S(u.zic)!o6ɆJ6(}TVcцY~ 4f6+L4(Q𭝎3<֢|u+wvU ㏨9@͡KDCmU,T3`ƕhe6ztDi ryb¨+A G~UzaFᏽE~-<6s:mE*6 Ht|74۠h? _6aeuS-{QZ1H, !D$fTs㺮uc}\O*-J"8mdE{9N>omY/*6# 7@xDBD,8 +#7Mt%J"IH+Qc/,7c0nC1.IT5"b{Dꈻa7YAVu{˦C:;P;PIivvC@x~b?`URq@U'{Uwm]j;z(Q d,ݕx;ưa'ܫqGPqU$rYP$,ۏVl`F2((i`+9)8sl5R~ Һfj| +C7l#<Hɋ;5˕8L KQ7G v;۵( Od NfTvnЏg ~x>8o̫a?D@:bhAȰ(DfGڽAcdɡ J~ ܏ ,qx>nH_j"Qk8+X{{Wj%A#D6b vb\2ӅKtvL$J }taY|}$z +ZlI3'-:lp=<縃.NjZl,r-m~^ygRFx+/4^׉^&f ++Xq./m!э5wQ5mWLk:Nf/쬭PI(-̔uA9FPp.$q.vI'lH$H8<&J9#dž+%he°N^DP;Z|\sStKE v U N24'tsQ +'Bs1)].#G (aN)D@\daRPg`Y͏V%eƵtۼF'i:˭?(̟\EI?n + +%] -Ԉ:Ƴ:}y4;XN rEtFot#FN8N [0,p6qG12g 4 nٲe{^ 2[0+L;4L]~.wLַٖs=WM7XVܷY>cvwrtPp!mRu>H~i|Hʙ!edY3%Թ+x@lm7( 5E`ΘDB%B`v[(qk/Hv@;"ueMr`?^J;b x9IŬ%`vdL6. g7\9El%NKdҘ``ev<aTY7G&]hD\?G+Nk`oҧO*ZdZ ͞,O+;[⥗YvG8)2BkMtf.~- +H͕4o+yS;һ{{ YOT? }=1/zT{kWO RK7gʐe[h=z1 ^}rΦreBS +՘.px)h9CQ ,q)M6>w^i.5fQo2QpDN_.i[oL/ sV??!ү?@1P ?ˆ-w Ό<2ѓ6[1akJ_{щnTsЫ\A&Y@lfYBldpEO96Ŀ Hn^ Ik#g~3i,n5txqE9LzFVz|!JlyG+ 5y$e!!p +.K:^ܒIT&5LpI\ .A$I$e% M:^#\*"aزIP&xg_r%&!]/Tq[<w/ǜwJ7W8Y(ggbg/\|gr7F'OOO(O*O 8/MZ86'i+aƱexѵthc>\|&>5& L\ 熙k9]p6L+Nk)'lbO/YYLF1d+]uez1Rc4=٤+TRWB{̙2_^drnu繉 ~c]t9 b{)+@b nGRT9JnN7e=ϐ.HN}P2$-u@z:n(f՝H LkKhd%,a%R}LQ +5 +Y5M +%w +U ++8*a*Z5ҵQ a~VP +gըv]%+p~&GmCiVl +lj]DJ-ӊz%kįUVn)]2_+ظV^ҝ_RnyzV\JMӪ^@F ZFw+ѣeѡ* Th|4U4V]+L[vF/FOKE<|2/M@74oQ-ָk{ ]d~7VNOrD٪)͈;7$PZ )4P_ M$@C+}Q~ Wu&*)6:ټ `\Cޠ5u 0&8g2qwhq}+WǤ^T&[=d6]Lsn$Гi-q9EJChVUǧǕ +P)H瞏 bCn3޸čÍ:^?E,L%aܔUɵZB,v +-*_|4]CBI.MZ8̲M +R| D 7fqc8/ϋY$gPIK7@e@VoG~l7tax-_͢?5d9iaű? t\ՆDRq?p.[,Udee0V=f;-I%+NcK $ pÃ،m\ťFm-<%{b 2C&ds2#H 5Tuեi]hv) o!8?U~߮oO?7'F0pĕyfjN-l5ǍiF^US&,N%-$f,$UllO--$K6Igx^lf` ~'xnam8(ԕq1XVTfT哳~5r\Y2\vO:tKknny! cenBm˭c: +s5$AY'ffpf`ObN>L-+sK*/5w8bY!c {V;ǎCۺRI575CVe+y?'|Jڽg7nrS iY3YYrOZߞH9:fx Ť#/η@S &x1@%TA?#phe{帳lņ4^? 6k7ws4 W[Q2b7BЧ?n[6 2*HM)A4c(ˑ2}̚M2XP=Ois6-[9qᬩDSJ ƾDa[G}79!kAR%'ČbD3¤lzHzp;f"*`A ^TL_Ƣab2 8#om%yh: u&Zph7leA6Qᾲ_1K?'eASySpr!m;wd80v”hX + udPc8'9Pn#B0TW*1| ZKR mnP=mk_xWFݐJ:"53Wz%1*?axDAfH>rm$'T j-?!GNȖc^,Q&^2rָm9O'!a̯9!塝Y05ȟx|DQk)Us d2 +:B;̝?8N1Q,|pƖ3/j۪SDʚWa 1jƟޤ{gR +J^BICԏ=-5m`!U4I#J#WV +d2 -Gcs{|hƫfSHw(ozC\H?)vssD]]G(Oo?KA%w + m̒ǬIBA%>>P>i~,'ԛz+ԋ; Գ|}>Xf"xY"0lQhdJ:}_W@J```BGRX[JJJJY$jJY%Y$Y%Y%hJ`%?,]D➡K LФ"&yL$b Xb/?5LAVQQUqkn-~L `D0PqE'b`0u )P$zaP4%Y'4eZ'VrDd1ifG‹ B+oa3ӟR /KCe5%kKJ3FԒ4*%9ƒ=5o_)EoToNG'z){)kMXJ8i"սiA(#=(DvC}w`jxbmʬ(5) YM`0Jb YMb(- +-6!:2L2C`J2#:CRRK`šT*S[mnFEYjf5P5ЊEQj83#U"  + rVa9060lVavba +Rfa#.̮dȔyQ.bK/RK-|BҊP[r-5\P 3:pPK.`A;݈C]. +*n1VS2A>'#ePEeP`-謂欂,$\U^--AmAlAkX0b /5M { CF եD^V`Z> TZ!_𠇬#WDrF!2`}SO-1Q +.kGx H~1&{{kWNuQxuu$PAi)hCUcD$#X1˷%3gKX>c͠$K?:8qLNif"ieiG"MÆ1)ꮙ0dP-P'?y.wر&i:P8zY\v..Dt1v(仯ccHmڇ%r`УHDzNEo YnЙd^Okøm깼"g*fdSb5N_ܐ"6ԧ"ȆRREJ!0^3*RZZ}Tbj]6M=>6$Q>[x,}psC*֝r0͖mu!,%&__kQNpjSt;T"gH  +g!dp}ʳ)ye,KŒW&c{`CZ[A06' +Q[-ۄՂ~/XwuWg>!g/`5qְ5us7=$C1c!ONbd +U*2ôc;kUǻkmNXVB׽yffϰti7Ho}qŃI?'&7x#۞DxXZ/4l/z̸zEэ.cj.w,*u1z9n4y*7!E NMIrT%Z'[?8&Cw>qS5'1_r6R*HbAWrig2-OnNVjoO+ne "gQUdUlnfyчsUY2qJ>RN{Loz`p슰VWU'D'Xe[1 Ob?O0k-'ljֵiEOPf;To c}\fb>0E]c0-akbwsF0,E*}S;cMSb9 @O,n&Yg>EhFu:`NgB%QO6gnoSp`al\w&F 0#(˸5TUQqTLM +,|޽Rb.kWܦ ež Y'|Mkw3 cX裥4boSZHd7nk>}W:yKtOj[똿(W?Y.s{S{cnhZbWXg. uMUƕnua#j΢ZmƂƻ5wS1j̔Q8[^9{?s:nUvWW1J5mfpIAbZk_a +#oc'N6 T~N]b4YfPA a7ɋځc29_(4`&"5XKxbI<^|e.(h91HB +2cDvie9Gyu ˷gUJ])}8 {ШTmwdT J-[W˒U"&jXnk\*Vg5+_Q5rGx26aHV?m/\B^B<4rSf&ovq[yy5ԶY#:%c^ZEıxPS?ҮwQz6!<֥ ~g0bVL~<<$Xs>6g u6fi0!m{xv,Nݿl?[  +k7Y-¾ ǒs pc!6]DXGhA\`E+l]X}9y {)RҺ8'&\^VHbl& _| wz˻Vn~Җ&v ;H껡hn3.1/GHnN4}nl{YQ-lK?%Hܸ\:aG{E 8_B/(1z9Z%O,ЋO԰)N$x<ߕBQW^ 8$KTe + +y!_sLݱ ܲ_y*Aͨ1 +1\&Nbg Lĉ}qDLcQҊoL0bYgLE.0lJ-Lp0ԊNY31qZ+۬IIS[bK*8I5J6ůAbAڥgU2 YSd_@s/1"הf@$mЕRSa4XD iGH'4ÆHs*3eƖE!Q" ,+B2.-s,Bg+.AkPmGrK\yll 0 +F)˲M6efƪRsN i{W:| -G&a&a~|b{WpʓǙA$bb0s88^d͖|)$ +1fyU#DTt :+w|.J{`T0V]VeRXE~K%z _΋ZZ)0'5sq ՝ݝWp b/gb DeF8c]ѽ>}=Y5*Di +[+';g"r$EƬ`2$H^Gv7C"p7;%Z(Ӷ83"͖ %6 Z6٬A#&ػzc{^߈=5I{|#-.\H Ů#4 %mSI̢cѣf5٫2QIGkD-׈c8-'%)QTY5,iGrI鵙'.S0bX8kTt,&\jKIJYֹ,K<5,4!X󟾩 ΍ +_ 0c2;̂A/HaNo##S4H~D@yh^ͬN!e!1Ň5?:69LO'PԻ ;Oӻv.NH{7 ^hez9/es(G+'MX}ao0z}i1n$J_LIZSBI*#&t-yoQ=lIJsԅ[ i;_lMZqp-ȭbnKz~7ȝMMлcZn5IĬќX#lJժU0P숮"$IM I FV سlh{ziw:}7G^~)D'"8"£JRG ]&Ꮛ& ,e{oIzbzVSRwd~jaS`DDۏ͓͛"F#0+N| +9!9Wh 08Vʢ8@3@3dKBKAArš# *O'J'/kEzSxyٕkO!Q_14 R2>{  @–> +@@[ +[ O**** +)@(: &@.@h!&@&@:@F@*A5Ѐh@-%N-C8-5* -4-|̯/ `@v-W%TkZU|&@a +alh#Y1-hBTl+vL6"Pų׍KX\nll&m7b|0` + k- + <<WπoAD +08tT<0= hX`PZ`pZ`бjU+y{(d[4Pcܞ\{ +PP(PЛ-%`WZ‚B :(P`T(V(P޸ .(3+WJuBA РU(nT(7jk5ZBpAa(Pm[BaDH?}(VA ~(EǷBr_!QPzDP}_ x}~A_/ww-B=ђ0o'ZZV(7(EFDih!8.}o2$N)AđoQ(xJG:d</YlQ}*&^&pH/`|dppcwcrwX +vJ^PUZ5(xa&|&TG5 +wų`p'C: ߌ'WF'C 5Cap[~|,x Cyk⡅?+ЂaNpڿ%dXc +B s .X:"#MQ)NNJEM Xddd*4QebΣ.UH-3X3```΂ pQPVhp^*C#BX]Ea~Ht\;6H8<;HHxT:Յv'ܣ>ڣ4v::[ҹhwP]&Z8h)䡕trѼ(J(HLhY*Y*X2- EDqDQaTY:D %El,EI`t9`-q`~X_|X(!JU=4Ov\WF*йW&|dXcu0hxC&R8KHoH#h +~ + + + + +F)RA=@?IR}?g73r@ѯV:(QEH[HAM45 +Z0EvR\jXHK(hF4I42 +IJ +G9QF0hQ4L4R8 + rwbeGWC'STN߳ȶ9eC,ieC %V^)]#?D |Pr(BAnnfs9?c5uXQ;pMq7eÄ!pR+/ 3аL ]Tt]B] hAG9EO2ŲEeNm\…_<,fΚ ͆YMrNFuYZϜaLCS&fdD4ddkYt]*2 EsIP^3v +HYzpJ9m +aej?v'ZQnhҕmmӓz$gz0 qZCpўqM… +1vd_wyI#@q76nFF&SUJAhl=^J/X .m ʝWCA@iIkKM liaM a +;|Pn' +,Px>0'Y +j40Zh֒0{a=IM DKOp*G8^gb3JV% -m@@&8][y~7*]g\4:1FxGx{ELDN؄%lGiT3>㿽OVyfۖ +hh%k\l We AgI2,ZSb/M#i$U^qXvhRm4"lZ%UG4:?OzOk,X dLk%MO _Ha\j# i `2f(V |l&3S\bfFf67<{ Fuԁ?Z1,'*4O>9mDYB)($DJA8!?QRT{w3E$|bK"UHmeHؑǺ66{Ģ 5sLɁ&WHnUH5+X͕LZjNu&FS5gOIUSQ8# *ZqO-{ȱz$_V.A"@ 3mWVʬ/U.'ŤN&hӠ:9J7#sҒ76{bv:LǦ ?Oe!"Z{WCwpwX@Co͚AɒWw-qwUt U+N؃N} 5x2ړOGƘ o{ :)9J1zՔ:m^j3޾XOᾄK‡ t#\BU]*U=MLɕ4((N\[^q'1fTG[Ӓ(yS+_1CPwHɩkwfXۄ@v N:f&>,4#f|=fY,PI@I9 qX pt+"ZѨv(xi8 T˵?I?wdrpٟo{OKo"-ttE&S%gЪ4*DQb,u$O\ܪTi#nuly+Dz2G={ ekһӻJޑ.m孓,ō]WtijZJC?/Xܵ>hZoU^6 +2?ydڴͽwG퟿:\r,a`[e}hK]C׻gyCVY3uʝiYH Ydk!OؗuH"QӖiU©WZN;QuՙPʌ`da}оd뱵.Smlun6չ:{J߃ꭩsi9 _I.3 )jǩc'А޻llj|h[5{T\ giAsyǾiY/WEJnU[X^%] eNb 6jWfW2,3xDKn,$\|y"сIuwK |+mrcel]f4Ç}؄Xq,ˑh#I,FR$ӂP)9Z3hՎVru^f>)-:\Y=(J:AGxdƉ +>|K$nL{x!!~8|o=d׌OJ@%%+^ȅQk9vuDu| VF-;t͐U}qM=tuХaF.Q誇!F,UIZPFgjXcKlG{Ç,*ozuK^߮sq\'+qTyEzW$_OMn;f{"N(=z3´?0^Om#Ww`˺xہ ƨg Ҟ\ϰ89 "c#=} IaNr2:Tyree^RQBS-`B1A>Ӕ i#3bKK0]+gRщhM L |Djy2n[mL8L9b)J>gTc.Ut$'JZ[#08Uw \^Vi-TKgV OJ!̠v0C]@% p ]XVW\ ]x%.; /ؖD>%|/$`qe`%wtw=\q_xZXtgBVN!*%P>_%VJڬ< [Œ'+Y*t+ Y|Y%z+%9N+S +%T!* UJš+JO8 R@RD%|K~HKJ.CR#]i<HO[Lʁ sE3SEVWFVG#A]JݲBJX-@.e`PaswplζcuZns-;2>).ug΄=: *0N7o GǮ3-N'HCQ-4ZSx܈f(* u<6킖 ,I& +C,v-U^7,*n6iI,P%'kbKVEY,7&;|ɐSF!BcwoXV}C@j+,"Hlsu+ HGIvXP.ѐ!PA +% oT@?>0އin5)R˾gF6IwK.֓zS h8IU+іǤ9@xƂO`X8jCkXoXYa8TBCdJ-YǞJz)6V(6x +6dmpn!OrJ_JvEJ.toUP]n y}&ʍpXxK[;RN-䫜ӓ[_Ѿ7 JMJ5S髛P:k\\ޛi?9V؏z6w%En۶m۶mݶm۶m۶~o{Ӊ12*k̪Zs̬11=Q8m!($o7^ +ƍ1h1 & YS; ɐ V~$Ȫ6eo +ca80O^` yFdDGK.gښfLg3ԇIx>@(#FV,!3V?A`9f́7+xƜOs<+3jϙ6V-N},EVK*Cr()nc[V0U(eʞ_Zxj^ + #.{(Q\XqB5Oh'Fkm\z}p&?րL  Du(ol_Y#F)F)iy~|?+)}cDq2A,Uv ]PV{.m?ߗZ:]W]^fIyU]3fOl~fޟVGP! {1MeeS%R۔#',7 +y7#q7ǽ0Ŝ%q7%OP3ft:{j]5l--[3Un5'ռi9GNxio,dxS)`#)<;:wXkDd]k/Q_&;)漬U)}̎tDaBBC@m!]!l|](Ɛn +QU^,|Z +uYamԺ}\f9bUQC,AĴE״S/}!YRw7$KzG)8B`U/('BT!~""p# HNX.1\Id@^6txА"I[ߔ6eӽ4HR39{ҎI}Dj&MIPn1u l\epWHKs :8(§-Hy|<ɬbMY6di_7eG!(Ļgb_dw+ ŅXTtn4bMD؇(x d3@ơq_q ' _sD_Km8Q +c$qt*D9l1brc b td#F{?W,dȫsYmA'BKb&adN80CrBqABbY$L8)GCGy+8b 119Gu#!\S28IFSKSZe*ӛ~.[:h4Oxڵ$Z{&pk݆ZI +l;q̆']"փ 23;mòXh\Y+j1϶J4>kn䨅<Feۉڧ#Nr|-I:Dԏ6w1Qeώ1P;8a Xq XPLX-T-tKM!o]xl78ʁn%9U#?#x1?hr>iz?}:}a2Ñmʓ qŤ޸zR1hN%=. l P a"d+=F܃W=b9y%ĚgxIㅻx$$`B J H`v(I<ē%٢)7NI wcI.QRVZFM9P.nc"cY9>UOZ@K:>6,2Y'Q_DHo Hwc'1kdJ#M`ι$ 1C"t>CwA?D!γO[YYS NH{ +k`6N[a ta;GۼU M8m{YcU 0ˡBϚ|JNX@yt&zXp +E`!]–FzE9m(ݠE/qAO/\U7j|A,!dYUc-!=ySLQ^rFڒY+Uu+=`>p=/>r^_{_Ipcp~>C}-7x_Ė}/6D +k-S)0XD0UD]( 9'dM&''+100u0cnUɣ=E1--+d0+40TUHЦx x5x xe6xY*d'p- .R- ,>,/@ l`yz'l_y K~O_ܻL0N_?T?p_pG1!dtNDo>=dEfF}޿v'`N "wjօbtww{~1Ykx3KNY6$-HD4Qn9\[)ڏjQKNUƐ& $ j]q4snF fXώ%1$"Ur4PN8fdLJt#₢mp.; +٪AnRT/T-P;4Ŗj +iTիS5P/"Vt.u/$?ri=kܴszdꀵ1%&|o0B2j=M`8Llfh}pzdEܓesmͷ +jfVvlm%sXX1HvIsU{ $<<ޏkmΨpz1BS~9OC4*!"#౩?}aZ-.vM2kc|L:ߍG,yydy7+{{ G8dW9sY6aSxԄgjI`R7m (lz'iWWY̫D/L0+yxB *FF^&~/ ?}Jc3j#쳨mou{hqW#GcѶlic9)ϰĖX.Vv=ksZ4vX\L̥fkZ2 ZOU\ݬ)=P} +݈Y0Xzb#ܢnBʣ2*L"aS3mZAFxF@h$imuPu mL nM 1]t#zkQBYZi.fZV]5aDlUvFVhN`IS23GO_}╫4:Һqp% +G戴SC4߾ uKfBWZ&ݢȴxf&:?~LGP#EQ[`e4> PڣQQ[]ca(fm #Je&4o kr]Q)BQbDj;՗aF;\K\aHgf;|w/&3KIa\ %EeuLP_jϐpY<$9$ZOaQ}ې!g*&vb5Di98]y9T4k=ѽMt32&!AD.PgW/S D%DP$Q -R nR&fXw%W_/+e&RW$&&'X U!U$)AHDLJ>K~]HX!L! h< ZMOY% _`KOvo}k;5I*z5*qzԪ0Gok<=F3BޔHjDJ֘[_z=_~0VIz^)^ VNDIJ,)8LBYDYJB-9 Z|ZlXhDi-,S^GbZLM]|FBrKbGRKBG"G"G拒R+(rH&V~{"D E|}YIk(cʼccgpwVAΓN{ =i)bmV3@D{+ݏǠg2s rPϵ4sO#=H/cV/W{.06D2H+A +[rȒĐID LRh.9L+9Z2H$d@>.Mػ@ػLPk} aA+9 ˹[08-;14a37R J + _z&|e O+h5 ]GjA2ѶJ+ F` J$'=J!H7( w ce.7!IW"]H +76!TMg/ArFʥ@£BD=E'U%uB@"elh&+NAp0~(`w^LL)@Ҍ᠈A$~R!S L~Q-mM+qe4emRree(s={,߽lLqoӯ7;;ݽ;C3ŏ3rEӆ+mM+,UK[m<?z/ +eKmcǕnQ8S:&:eSgV[dWż&td[ ut ZnQna۸&pt;/,^\dkXb):F.Yxj0#uz8bq0lbb<`s6aA +mBX{7vjpx\nb&Wʹsv7WpIwݪ2W3Wa bиp~oXpV/*/ R97GUۿ|k^`1Wo OoF~.sڍwLJ]9=mK{kǷ/cKؿ(`:#4ejۧINtc8 voލIJ(st"\j77tn=;*qp,8{)sg17CD6]ejez|@Xmfذ`u ނ6l8OwoS 7Nk6_c BwZ)T̩n_B$Th6G:ʑ l[ +"#ppp.m4r͗^9G.IF1:*%h"}PlTRUW]$ɳ@ôfZ5--Y˰xжءME\yh} #8V9eSe-7. iߞ/y'eNz l&)lػo ~2otV9T`/g΋3^;ЧGND]`?z?hŒE7ӟQ*Qխe7\Gݰlj]/6,pCbpSZ *5.P@}*V=,*hCrUH/pE4.p+LfBAx9'Zj47RVonDu872R4GZ^]%X*tʢPa!Ԩ#3hĩJ4>[L[̝jO'l,7=lmڋQ Գ!`U+ wM0b-?U]R +9YzH +|s-2#0<;,u%pRW + O XȫeI +$yh%d/e!}!!9d8'sEݿ_%e7W e0x5vu'hF +Ў})eB_R޷WÒK%|M%pJ% +TwÊoopD|:T>F+p ػmYlH k=W-qg)r3YxF+μ1`6GZ5 K^S>15;}pG kv69ou0G {?6UHCY\بiL.آ8 Cw:o-԰Cq|dGnAbE#4li0Oi|ꇸGtCx&ѱ!1_`e drEo~x?gesł{6 +zMk_ ?𻣾Bww>܃Έfc~ sP}ǽQ.8DDD[ηi0Pc| +2K̿{3P`X8dgb^8DWG# ϻ'S#Gs0(1{P5I2RcG߆h8Ma&Χ}!1x bb; 7=RsL`$ +> F&_sG"-3AX0+"5 !*QQ 4gɤ֥625Neӷ,gö́{uGζ*=dMHq:i gxS6FNq3e}kA‡ y{#BW:$ iPB[DW! AgcAK۷̑BC勠[g4G!P  ܅{K"Ln`@{D黧S4d9cT֔YG+_Âa'~)`Y/V s׫{YP!#ݳ׈d +̊Z^/Y:[ [ iA98٩Acsk"T + wܩjI5d?IՅ"s>@6=ppgt +8C훶<^W󳉅' +vqwr!jtu1B kr"'c uoF kRROÇK!߅{9crB4ܠ_1l`29 8ϝ6(씞/TNɿU|$W<4D Q_!ڬN!9&.OZ?et"ƘI*s'V 7i9Mсv9N=P02ܣ=%c&%̅({Lq%<ﬞ;hGFg<^]Ϛo]ɪXݰۙLxW;#m}B6wxP6=KܐUQbd=&$uu΁!"&=]VT_i\Z9a:0D!nq2)fgJKal*p!xq!xujGaCTb%!xt^p1O0Z(%Sȧm/9 X8/atѿlLB;qEG qe0PI {ƤS k%攄k(UmukZ;,m'7UoO}yxrrnOs>yN6mFI3^5z ox䇄?zZ p 0:˭b#ZĆtb {À ؉$BEI,?̊߅sg#_u6c"n}7WgQf#r#N:s#vBN?@^8_h$W뺵17ٺW÷݂8Ѻ\V=9 s 1W?=1rw-ܞw-`YinOz?i2cVې6(SWY)yCp'd(n0%-L8!R@Ż,eAHՑro.L,V]On̘<$*2[6Ⲧ:<Vn+M4#P0bz{v#s={}(uo'䔁Șhk [}V|$??hK,NeTFI"zLw&HXَpDikTv\wt?1TlG:qI\6-6ڌ=0SOI4,y:D`P';"EZ' c'`9JŹ;&?h}itݢ= ډnۋus۸'jq3Dۼ7ő6ݸGZtW%(=.hZhH=Z9. +*P{“(N9Nҵ=S~:>괁m(X@:u˛sin?mEţ$[U~8Xh_z@zāx Zi@xlKE u[q-}#Y y#|oV(7ߏXzz~MKNw3T[sgHĚ:$F7HY*5rg>R0K[qI݊T>l{wnrREbR>pe5 Sև] sf"#Y##sg՘k;!u<۔?ߐRC5#[鮺~6qلZdHDeUkr̂T,r";0 +׋wFJ$E|PO '(7.v&)8KBZtLH$srbc!n*D|0҄FtclDylh՞tŴńv}4$ vhfr֗;Iҡhw'{{-8} +eˁY`m,ȳםnz,P2.`:QrD1ry +$Ո c`M1H{Iw2Qdzdu9)4oIhy~5)3z!ʜ@Vg +VOpV}6r3lwS㻭sݎyhh#+z1-XS36jig;3:va/>Ӂ +t^XIᣊe=t"pҁ=\@zd}=[oB;);,ljh(}V_ !%MRp +#AĖ\ᫍґ0)u)G"epte\9 +#cs/Me:KF qy t1iS i*X66驻MWVeÌ6hz)G;iSVJ!IshƁ{u\hz 5s5zC&n朣ocJpkNʚ㻦f$SSjdQs+C` XTm>BBLzw,oxO$4{YK%^M{7s>МjN0mnP{\YpݑG1K^!$JX +ZpwΊgE'AFNu狸In”Q aj?Q'g2 +U-1yLqöhjjuMj])rH rAb+]K +fT! +W#JT(*);nm?߯4YdhˆN1f,8vsL LfLy)vRUT]fCݞM0&C =M*\8TR=Ùṏ;OL7vLU{>dw1*vzI{j~Ƣސ>j^4vxb9.&=I9N1/2~jr2**׫TY].דXXe,e-{E_ S-D\$^"\R.#Fh%&;|إ/;(q +}g*;KD/[b-ujş22bdr ȒΒJ)XeW>Kn JnJ<+e@2mK–J+r}$l%cldw%}5KʝXS/aߥ\"\f l )>^ +ofE%= :g=g&q\ :gu=F \ ,omE%:g࢞%= J"_?QVnGlSKQnG$s;,$-:"sN${?Q.t])ޝT GL\OK܇7foĥZ"_ZKoPY7]^w<[L"_ȥ] 6o3?7P;a# gX Ò?b?|xơf>>%ao$~w.H;ſ|&-<{I|*.?&~*_%|H(M[%xMK98,!/G*ƒL ;^%;L 6o̱ؠ/ԜL\>.PV*U~1,ߝCNY}ϡm ~vZ&L%B։L\p Zd>q06EDns +h6kԍ=vc'Z zSn4#_ѩyfvMk:˺]|hݙc $ 0/TN\LrOL [υ"QB]3,)VL%8/&~^YiqӐ;)+mӵ;m4V9P 29h-OBw\6]4lEi,ho(6hs{"H÷C%r:HR?~|o|t?vWbݗ,&_:ֽ~2]x3BpX8volj ݱnA$s¼铕P'蓥eI~F3Ë tEՊ@1,#ߢ"4$FU (1#.YuU,+-'ĕ+! QFK+/pb/gΡZu#;%Ą TCNڦ8 s`riQc4Esg ;F5ӖXA͚ޤnnITQAyMPiN1`<&%yaSsr Ij.ǫfզ\t9*vWvܪ,Ho'Yb0pڨYKAJj4˓Lsfؤ#'YdJF8+fWe5iOo nVee$y ?MD '6{7_mCj3 8.:w-BSn$ LO :l4Ի/:X +0 `Uw6%._ZP:q. a; Cpz+bAi!zK:NҵzA" +DgFU?/(˩[akKzF+/wj6z k2~n?S'CA 6ƭٹmݍHwHmTj(laTX7@}SZ +wP=$)c!_XOt(ZIU҇R6}򆩻 #9kLueSBS"Ȏ^:|tP n.s^97r89s4R&ڨ#$'ZP$~1؃熗'P'-Z}U Ъށ⎏.Wsc)0#E_̌8CZj /dhS}H6;*P:~/YM|= +6f26`N``%˭r%6-pZ,]V`2~g\9GuX&K?hIV՜l7.cĽ‹dbd`d·SKʧyܕ3Csj{.-d:m;ʃC!v(0;/fP]"NT SN^3=UP3fjK˯ԧM+(w$'!UYhU] 6 ';}7tpAh;FeC'on=}G_쏗8NF‰?eCިۑY ڳ4 ޸kW8 [z嘤 |'Hx'F2s2w0y6mӪ!b5G7}XRX0,XGFul,LAA۩>/r|)x피|)~ިDOMFQDTFX*'"bl?bi ߪPG;f(f''6Y}XuX#^7[אky"АKUH)U-gJBa.-U++߀rLQtY.u_~w #Nzs\(cG b+%"X㑭$H1("w(^_po$we'e 3z nVk}zg <$̐C f3޴g[29L-GYؠбԱg[ HmºYt|t*B֌lFC8MWA"]]"-bԦw˯rl')T8nRiAI_zp7mUog>or걛MO7`BJ' B|>Z+~M7Gq>C"ihA\L⊵9wiA [wGJa^չ+dy˥:\v g}Š&gЄ0^]!nNECπ^L@":Ds)[^1 +d%1mM;t`b^O7ǎh߷Uk Ѥ@r~ +{gQJeݺ.Aڙ@?i ^yYji:%SkLpʊ ݝ }TzV&ۑKݗOȒBB|0In̆}UnZ3YC̉|xLOt:cޟ/nBSڬ#Y?HL` }n`s+(=NQNnߕOG{@ XI{Y9?I/yly"Iv ҈TP :kLd!`Dh +!3QPID\c=A`+SYd;a"d \yxHNQL2+`濶 ++[D O8b+_B^|f3qiqjxF]L}Ƥ3=-{~%*`Z"T/窭-Z۶q?ٻݳ98rnae vO.O)4Gl?`9U43b>[_q|qpE?ė?2m|P/hx`>ۿO t4ۿj羄GMJ?$q8  pWרsg| ڴEn]hq) Ġ θE_p.#LVrGO#}Ƅ &H<. +5(Q)Q,i$'Kbc1 u]ϽgT9l93WZE2$$G)H +#I<ǝqdGV7'^1+#TI9 WďfNƠI՜YC3IzY#9: '8'21VJjJ"mCKhx(wY?EǣnU-= +G)lV7(8 ;优{YY5Ô7|0AZ:pr.ƋҳH+;tM$Xѧ[,7#dCu%^8sc{f%OT k?q)`#S'F+wprlmU[_,#yP@` t2· ΀Xޅ~83RY9ڊyܨvڶh鬨ja7;gm){'ܨ7j-#D W 'j3 w=_{UC2ڢ{]Zl dDtpo%d_3JjFvI5~F Iκ$p/TP֐ue*n Tܶjvx')h,)= +?\Y¤IvXYdp(>Yub]&R.^^vE7vξ@BT,ȋa]U%\ (6eRb,W{Vh( |ɏ it2 ՛~5Ώ>yNѧ7u#avf.UlciIc+2ܠ9l$ +:RpXE곂,A + +,xA 3 \vD ơt@["/R / Dclyor7(T,ezÀ)/4V@RVE+ևnoS)`c4zcz-n[ +0ḚL* kb]$Ǯ00M"FIhzhBRT짓cznZ#j"of^ qf ez) +L%Q\%-Sz1(R}?U(NJh'O ~OO|T.L{-7*H-6[7VsmEsTZJ{"AOړ7A&-EP[ߌ|zw +bg3mhP Ȋt?^?Xښf#9Tjԗv9;>=ɏP_Tn~55d4^Iq.?4a>95SsO%*~QKʹYو$ʈs%G] ~1%*Po1 *rmyBUcjsM_s} C34a`E;4i5Z5䈈O?=AϦέ*LB^ɛ&eGʷZKi%Zbq, B˜qSe!GT@hQ!\dګ7Ne,hãYk "DsG̨I;pK4yO +NU"(O/D)D#[7Wv`ln6@Qh" +%We,-OP:'6튭 t:0ܙ+:B8&xXP 85+2+e۵!Xy/L`&tU;'ooV Z`#'fPdVoie%e71F '˂?=ƆhUk|d)Ž~ )mΕ̏5\?MްƦqA5"Ë1 %'zV#h~ ,5(c-C*kM3>"4`du!\WZDh:(fl}UG/W2 +Z oE$`9 ռnzH`{L^BG!Ѿ)w }GQuylդp|o6u]HrxzdiS^^oPuʃ-+]P}#  ;7S^#n*pt]Tnj?3īњm%ahu 9UyC9:]䎉y W{F8bruL2y_`8@w썡7jw4A%wgwM7{Ny3<5w8{; {(EVs"^?/}J~`2[}9yf]ed˵+3KK68w2l{.@zXcIKY݃Jw(hyՙ#F8 +) +' l?JCC3_`gMs0AɡǾ!ik朞7g9, +C{3hf.Sk 6naqi!*; z II RJ;oWd cl\V3%\_% YC ]M ;)qrˢ \heA̶@+YJ'̜ +_?܂D3gj[llfxU6Y{81=o~l]UxKEW& +4oקwL=QX@MEXkA/?;w9܏ah)RE{㾹M5ApC +цMzR>CAy.Yjl'P%"#Ʋiqw6¦+Fo-wCjkgWvA,sjMK~BP4N5.K`M7ٻHߘ6C (qjV%0 i˞6Js,zIveѭ.w\,-8l"B*crypA'(T=Cݳs[O +՚ûKQ;x"=Da3I+ȨyfTCsЧWcpGLOMn3O#=X̂TT4{ |"V!TgKJon#nnQzvkk"Z\o%v:]C/861Ri?3 BR&(S:{ +$XA +S,?x5xb2]0ߪpz+we'&Ȭ m%\w%uegmohq56ϔ)I6_+02`qFqFp>~ Ɣ}u5m$4y=:>}"f2 +߯KNZv7zvElJ,)a@!ZL@+0_h&-w% t w\؟sI&I(6^E]`>s}(3Og5Dn_GK[=Hn4,4: 6rCTۖ'aqOf!iY*ݐU|T{ #s0PB/P<Ret`0,\LT:/,V"$ +(lIpi1q3#=ct!/3q\:U6%}.M߳|aLg4vŸ#Uy^tgбHI(p|&f|*d1}j>j>]DQ'v9~BTJ8'V #Ja[ʍ:襏ߋJ brI(V |lEz~i}dx e)*]#PԐӲҺ0#СG1#|Yq]\dC&NIZl+}\$ x[}Bld=haJma*ړm|X"<09lR󞂛FGG@ZF٥VI-+1Kh㡢P]ᢔLѤV-:vEje$ٿJ wUiAv! |K/azwq]lj. ́$QkhOSmWU_5*!Ekq +]^9&EYO.w>yb!w8TysY;FDdr6F3YB꒻E̬Y'9WL YnU8)؇K>صjovX/z3j߆C+L P9#I#b` ZK2SP2`}mMN~7uI"YeQ A_ǥ&u1. +=r#k'jkkA8Flc ci-UcʫL]Hݛ u!"Eʌis`' @ʞC }.>,Q )]cE)}H${ޞWFNior?6E VC_Vv,XuՀOZ)mӱ6HLhz=٨cZȫOujť5Lbպr/r;w"+r,ySVģ; VNGMK/WSL%ww Whфk"U/dn; Q4.yIam]lc(AI7`鉂%)/o#~H>iZ?[&72.gSi-ԁ +Y\|X$`X[<1k=A;&oh!HOcȫ}DZN;T/C=|K $&{#/ MESKX^.Po /z#cs:>¶tKZֻ^bӖ # USY'VmF݊u DhtڞR}]m:7e8 +FN? [>" ͓]w\{ކ̍{]h -_^QO>sTvUpɮQM?~~tu Q\ł rPDiR#* viRl_E$pz'~ bK+uGDZ!ǵ$%7 ߻y^e69!ۆ$#?땫1+E@V"P)u u0Eh6Ѱ.$@v 0>I P0 x\$TWlPhжjz !>mXgIp4ٕ$xUv!^NӈϘ$iZj!>񓧱y>7Vkܣ*(,lk]r6!]ĉIA'@ӢaH)܌cƤ34q"EEɚM9P  +` +E ZܣJvl67>^>FI"*VӋsޚ}]eS"]e"B g/6"uV^, 9NkQ$$)]K&V ( onˆ-U@PJ)I=?Եəj\9"*QK٨Te'6.*WV&^W V 70/'p2}>ii`o;J6oLwg[/+))sʖ:Vi]:/_pEAw@|&^2oUFxUȚ14*QiYtf԰+:榣/P_^SV:i9 t4/LVԈGn.Ә"1aII?$5BE)D]кqZBTʂhlP$VV~Ǒ |wj?8jWV+ny?1{iEfrRd6P!u!ø~؉u?mTY`:Y ^\ɮH{H ׳wRKIFk:3z 哐XQl'I'XXpT-HGY|V<(Fhja5=3wbD_mb3V:IrdVӮ:뚻vXO"pבZX?%}uVa9~?op>R璫hr1K?NBuKE(c,, CpFx_7(g,xq& =+2sFbt~=JcKʢC|ј$=8? ˧AecHH)o̢3(&!;v"* +0bzJ*DKv!8#)Z +'o$I +jQ[o*b,/' ' 5)`ʇ``tpZ1{ 2a)c^W5j"RpI-`# _")QX}s4Bi^L0;LfPLZnR2N@,(Ib$DޖzRPTB\72:{pЈ +Ct,L)D3I14+ ;|V)b|&6vHZ2`"Q'!4Җpt&wS!A!|#ya QbP,RL,&*-4D1.&RQ &DtMw*92_lv Ubs0{l=2tל04X\dMSm0`΍.[cל&]NK̙cTZ<8/#OPQYdڐ!+/#osSZx33>Sp4G;/p~#@F$hxOhqCHu3ZEߘJZne3^67W,nm쀵C4 NDkKlc# LMuZ75޺X+]p!:jj5'5@^xWep/R:ՠoAurH u%)$u dA"BDA4WVWk.Uh!?bZ ϚpLRo:֏y+/G4r[79'<:VB@2:Ԇm!Kٿ 43>uSٿP +xF~p\%u3lF4)3@h1}TF ue`u`uk? u$?+'4.:>U5L/>& ?Pz,? ?}" Ox*M=nםoiRyS(qFH+Y  5 `+(XO.&'* _}0+6F??ujW,VuB/~̀k +\v@k^P}R.`[5 .0}0+nn[I3}TITv>#U3p]w ?V"N)4+xyURVHL-\BډmgNdpr geCowo6n?s#'S"6n܎A( yP )I+XPjB,2w  '5\, 7 UoXϔۛ'ur6^׬P+euZi-IWcʹ`guU!/1]@^tdcܴOw< ;I-RWAS|.^C,\i-A<,4@_1zBwI"hb+j:iŻq%O( J܆ˎwV9LĦ ++c=#a`6WbȢce5nKWp[ w>o$&kH17?  "=A͚d 3p%KX;CfC +(jU#F,`*-ޅXnoעnӫ+b nӖLOUYoFP#F:JUui3-%=LM`3U4h8ŎouIH`5[dnkN]b,Uԓ5i2~kSE_Kx}a@j iݱd뚴Q3#Dvsgˈ 5'<'lTsv qI\!G'Xolod +)lWJ1T+Jvr:Kx6;Ä@1 ʓun ɣ"*D.s26u 0PIj:>:^yz-xNνG@ KŋhFy" ?KUpDi*z +k&w)?Q +]~RA6`A~ۀ(>=m" M +ŻVঢOg-ͩkhTHלǜ׭ϙ.{q&E`0iDFabrG]Q!iňB +IT +E#WxcRM(r%H7%_M%[VUr{oFw,e +vj W?wS24MMKZ\UFi +:7:ggNIj'Ӄ٩r|EsS4NqEaKjb'vVJ4PlL<CH.窯ɋ*IdT+/V7uU Ԍ *F҆)Oj{Z-bG I2%)[(C eeC qT*2dBdI" K$k@$-(چnnpymqZ:J$\z]* %:G8-fvI9mNM~(&rZ&eIs\dΎT3=J RŸqz)Ra<Ylz" w MAHiH+V]%z]IUb9HKPbJMAeb#vK>˯{3 U&{c ED4%dar"s6i-T6۪묱Ի%Q>g LBM1ώsfd#qx"n›X>гfp^<$wmis5dKV9(Nm|uuPƊn!BMr< KNI|Efg4P"r''9~`8% ~9bPh /8I@-|+*Qr9%O;dd *nKZbЇ'L(l84cuM#^hGw`g]--dT1P!2s"nl-FyqGR^'Ǥ!d=`BzD@`Ù2qB7Bƺz^) t%cwç|Gl|)oE؍ЂZ +]:{+2OIp?*5:1[4`i0Khz"ь0B'#̇\wL$ 2s r愴"ʀ2}Țn[42.mzL6MhO|!P "Nj%Wbhb e)8dڬ"4{֚cZwM5&]i),a>AE*]Ѫ<_fa$o\?k<^rA(8[U`vاU&ɖU!e;IJ .-L/P&1NKWk!QnvW_XB#JPKsbؒ$YqV#lIU!?,r5% x5NFF;HH@wZJ<MC"@?-Ðȃ c:*Df˫P+ιZ )w[p#MH6iA9/.8pϠ 5Ǹfr̀fi\gEOdEpM'*Oi@s2=+@e*IFt܄ $nfK7b[oD[[Y25]=;#z+>=S!D7 ,tp:sD6xN#[Z!p Wo_PX뢘߸;w2^i@9Ɏ\gBX'4V_Diߴ1`ӋC 1 +12wAV/uϨDS)@xid>kP5d5uD:}L~D@VUX9(S ׶hQi(DHJ2O3nkf=`@٠׀ez,GcO5G +U_QӬY]]!1(_?ӾGS4'w1hb+L˗l:A_`X@scy)a_i-fIPYCX?COTDvɻ{I`w85),wp;#U܉Nt7Xؿ3 մtN ,tUàft=$c O!O N0hӘ2eO4p8@\O5*ПplQ5+/#D?JDf:54~c"k:qA/q5ڥtBVI΁SgjΤk2mYb?h3f^vz}.bwŕ.]fH ȑx5&{D@ԟ!Xg΄QEjU"$Wۂ F6BkC`kH˴^T~:vuA3;lǭׄ: +Ou;9{g6{$:vŠakhۥFz,6lFRTY)c)E VO$WW"W__ШWgڪ?ڟA֗r bZAT5(\gڣ-U7B$UW!22hH+OWi,?V_t#溥UӝU̵J+,eU+[p!+vppFV*.uoby03HKXL  (8uU+W@V,^}ӼupxU +r\XB3J0<yN@NHNLNPNTm\NdNbM N݉N݉O݉A)>t`ƀ^ƿ;hYgg2Q'`GTotKV)/z;oi@ՀNt;V++Ӌ5S%; ɓ;#ʒ#$;&;hG4;=рFɿa?՝p;Vdz!)IӨ;̈ 8 @8_=S$ӳoE{f>@SD8焘#RX%EiǮ}R=?+:&eؽ1eԛ>ĚGʠ1Nm(Q+i^A pjt.7߈F_&m۶m|ڶm۶m۶mw?fٙU{܊0΀0F4$aa$̧ cN2&45PVd1@_4YdoQӎ]mnݔժZSZ 2^j:vksz;Oy?Ɏ+QC1@rQ/F QC{7Yz~J4XUؼ~6.R'CE4fL瞷rر͟~Fi xM22ơ%[XzHG-mv5Iot^@F= eu >%=D_.CK_2}dC-n9GF(<9 +i*WǏ+T<d]k+9 9GPyYgo/@0 ]Vkn-A?3JFl +9.-'90'-br 5(7};WPZx /Ά%T^6!!`-1Qi'O,&͍iZ}F*'g@~ MoHLOIN'i:9anf TM +&F6-Kc/빺--u +t-.ӵCf<3I~Q,Ӽ8T?(jT /61Bnֲtf4g!(sUn3ɯɐ&*_ԵWϿ\OM}Pz8{m*gvtsRGcHzGE>1qH#&s-}ƭίk+~Ax8_0ksC3F&76m \'θCAn{'+BQ"t='Лm`vR8pM?wܯ`#|pB;[rHȑB<6$ovyB#ͪjXzٕ(ƅDgjΎ)i-ȷΐv_åNO~J8,+7{.{ɾj h kqfR:+FlPXj~2GR&\$h!OHa>e`.hNZ?F9ŊU[1&3 ^GOyQa 6I蹮 'uDBXRvYRP3\&d@\yQG{Ĝ! FD< Πj3wtv&J:|:pz;ScCGq8oj k#&O,+l֥;l unÿGXO-ȷ_5/#jvMcP}pJQJV(łxy"@FQ1Ž ,^y&Yv*/D`(!xJQ(\Ěxc#" ƄnZ>*?\ H _p<y;4SN`3>N0D@q*493jSb̔j&'P''NO&'^&''%QG&%  U嘒''''&'SҒΒ())ȝRJ“rd~r0.XcX`s#11 sZurP]$ڌCe~R'%40;07liYa}29091*L c:PHc0="4gEwDwFה& M''QQS?-$&|'D35`f?p}{zys*{.?u1=>$bN=2ԬiԠt ?W&8HkYi\h3/vh1)lbS:{~Tm~?WozuASn<+ ]G Ejb\/JЄ-'ZgRZ7qu%e"g'ʁ%ι}'T&]`2`vey +aB˦+.  ='׾m/ +[ + R:t{lמsP0Y)p@=(%@}* c`<AxTK~8~QmHzc>'{{&0mBUb׮XxLeَ`S=(E5L(ydfA4<6 y{>s?1LdVv& })aH T8AcZysQ3̏@ψ\=gwyX[$N*ŧ_I;L@'և p.}88@&|0f0a PĤG]^Vb@}30mKj}7^2J [ԑ ˛P{k&Fe)2d`@;1qhy"/^](ZG$&F)9yrpARUMo~QRb:ZX\ڧFovc@0I4PाW?瘱8:b$n6٧AmXnttOK[+ +;TQ!f)N]PrAY#Xr├Y3=ht8t(Vȧ =i"ya#=\eR TїI.§À_>SKFYׂfJF6H#֩I-cK,ú-yui#DϲvڵjdZkۚݢuѨ{pcR7'{śօ=wE= ['Dt;&L=Am'SxjWAS PzyUݡOoA1adF+ ks!D]q%4m(jul&F'CWm Tx5U]ϏokZ 5HG+Ԏ/+֠|L|6 ;gaXyJԾ({ƎF ևrg2Ի![b`W=3ા?>(>0;HQLAŰ'#&'2CGzLI!!Rd;2)GJ˾Ϫvj #,OEv=1*T;ٵ Ǹ*X[E!vEu̫UGR rioR Ǫt)YSj0Jih4Ӊ!MnCRBفA ŐΨNx *2&8 Q;L,ZFtrF9"ofzZ G gYt Z큷dK2X~2rKYBkf19sRF7UӁ.uA ut5Vָ>!T}Xw}tLjo6F6fe "֬Hw e{Є-yOò.;̛ܡ ٣̚7+l0N>qk+s/A(3찜bM!9hDϐK_v:g55u+[+V|ď"w~$bp%jhbVI0Jr0NF/)iXF(Q*8jJC!>!4jC+GyCܨ+ rV)#7Oe#<\`yļiAedWLO;K&L{{OjyߒCׇLč=~z8 0KҚ3c/NQwq^wt" q.H&pz5/K:r~V+?x'J7LeIfekH+=2h6N+M4b ~3Q-jSԤG*+vX]' z,! )ECy~S5Cl:idHd [xFi+F +ݵ*TbHO~0oMOy*F +ZI*dՠ`dJ=)M`)t9> oa0-VQ}5bI ͍dcpp96z]NXGʃ8 1XIʪԓyHMa=ԓ%Ui:) +Zi=D(%6ŵTW`ma}5q +pMw% B=)+VBZq nէ"X:!272,E jMf7AS7{hc>1nalaF_D_ȉ=>ȉ٣ ޖ)Au +S^ByׇQ^#B}!ܔԓS\KBmI|QXןQ\{@qK)G27V(nvEj(mAUd* ZܢU`H?jhoiZ +wG[K[6!`zD$x*6 \U5v8t~(.MN6?OkmOq3clbU0U`@VM[r5%na3z5'sՋRzTCcbü) +ܳIT^D3U" hv!vxK.'TӈP ?yVD7UVJf50.̌5sOK02}8(;Ӈ?/*:2xYD-Fus:~EtaìTpS2@bNE +/g1lFRFѾ䂑ڭ2(]c˛KzT%ds]\|arT3ak%*85g!GNGp%%]p v*-քxnD' 6aEe7 &{es$MU;z&۴uX5G5},Y;[uIy$.2IAZ*ZydY(U.<ʡ@ 'yEVM*LOwvaPa0l6z*Nbn"jX<5Q->e :eX xO0R7TOd5[DYm =Ϻu*4%bQëpT?zo@JUmL7JsK?xK!J +C';%TǦ0cӡs塛WJkGCw8o}KT5SUw AٜGg~橂3sτBk QU+玈NMZ3cs@–1ӣ`_>x5 ^.yLEJBL/2tr<-ߵ&dGf rv=kRa2`z`񵾒HUt0@x.^+}֗׃:NQ{)rkZ[[Dy5r-4{axWE¿G/.9KqiЁu4nV 3svp4 G]goq!;|Fw6 [^1pݼf :o3gHtr]nP9!4b-w5uP P/ +\ݧ"7OFȃ +{UuqHfg`'Ssh'T3NR߷߬!UM;pKW),W31;sYO3TZчHq|9WnCG) \D(kS K)iimԱ6 =Us)Vğ""LeVcrnyUݕ7=k Z`7K'8EaxW=6pwX[}t{MpW{vvxB<|?5 +4{aǔ\?zY,Ú9 5BSBTP jAlB ٌuw5W9jQeӰHIJF:\ͪ`rKY|eNOi`I˱i箷nm{@<f'w~l$}h} aEѹ<8%T(`o}qv)gzsKXOfvIGƢߕ?;-m +o%`b-k`^q0KV̎ir-N6jhY-YQrgd3b_84tB$#lg!FZY搿-L ֳGָ&_腗FѸE+ti^g?X w^,o+ VX' '(; ^~艼gpwm1#e]7"_& &x)+Q@XMUX:dmR)CV +]h\TEPh1"cJZ] +QdJSaYb`]5R6x)l"Y;H"SDsrWY[e)#ȣ{vۇ e1BYbfٶgv_ef^_$͑A^~/]8[B;oKd-oFьgzOtZ. +&3:4g7ca8=͵f՞4|d]Q6shIY&>^Tuc)˓q8"_4dB;U&䮕1\ENC;+Q7uxЬ"Ϋ:Yi$wpJB#BGXʍP<`({ V˧ȅ6ZNaMdh- D)F62^x"(nw{5~}UgD^w A;(3GTfx(^|C ISX+rEDk"R~Fhـ֢/KWBT%UnȪ*U,nX(.R,:QN/LNt)EThzdcIQh5TH[B&\v&—`N>exJdNx +@p)/PȐd)P9NԘ SQB6Dw>i*J ̤%@\PQ|A7frSX-Jo .En&f4^сBfx H)F73o˴13P$ݞtv%~2 +><=iɟ6B ПufpU#A;nt;],UDsP;UA##5FRPSkoM3dK2egàlհ[y xI̦kkx͐ Yl2rQdݱHwNL%ߖ2`Q++t;]U_g= On98m1Yca]z8bYr]m>6M0`y%TBwտ-'A||ITq!l~lzk'5|G 3wP0µL9V" 3ҥoaXx0k`0˜q* +Д[=?# G) (CǍ+Vri)40H%;b;˥L:z 2^{`.KULnb|Ŕ}-b>9(]$^oajc /έ1FQ(,H~p8K?Ijʌr _7UVrs u'L #1 [,$Ɍ &'HQ AD(Ѩk ){;_uݶZwZjnfyv?j .NT*PҨ*ڗçtkk+Y1Iڧ:s>ȓ/*r)n*&y̢6.\׸:t`W:cRjtWl^yʸDA>rwL]2u-^ch1([(M#Xk:zOr.eQSlS~' k"(ͤR*: +rŌzw`w\WΟ#נc:2dsMP?Rd~t~Q7v3R +Fyi._*R)O:WNѻ \u&CP(W̐8z+'W|On]λB(j;KK'B"Bؕ,;jRXT?j-!DE{Ό'cFTgCźَv]~kuއy𗆬||Σ(GIєv.k_W"%W:vuάE>ʸv\{*d5%xMIVqE赅O*F=ҷv ?^JH-ꢇOi]#VM[V HĐxv47v@ ey-ubGM UHiOٴOEtDP$aK O`KG:X i!HB[(⣥4$.'̝@f_Xe W]~P('*0†q'?7Xy@a(K +E'Y`,x!w UL C ŅLJqh\4[H%sH\>Ɠ$5-D&P+O'=8+s ~7Ag HyY4\F?Ǒ?;]Z!J3 7řty^.<6 T¿ r_ X$bIy)J24ށk 8+!ku,5TE]iNոJ{m,S6N:KJy8ҶOT0UNUGgو(`C l,F.ۻ\/ &@Ump`KX֛#36| 1W/8lp(mԞxD|P h=CГJn+'=x." 3۳By' (!*+hFTHU$e*jXR0{VNZ0jOH޸;ҫ.(V.mv]&-KR'ŖKs?jƽ} Q Sy'Z܉4=.QF>ckqQd _=e.RR0T:7e1E*UeE1unDww%Ӵbe@yT!leH'v$aͧ]“h_/|~eQ/4#)ObEao'd0H\'&r7`i0`dǝO4Gi/PEiR~~j:j Z֭}g=$ٝ;wXIoo\'{զ,E/൭=sDE >^_^L}[5}Z嬝e ھviuU=utfYr@>[g?,aݭ'or"> ϏaFEBY c"|cp~¹drw[gw +Awp)LY5!#VPqz xƄfh^_G`|{7 7xf"GһusZl#k| a]C& DM(cV0sreN'qv|cH>AU@dGpKV\[tts~잸~[-" 3:x[ 'V6(0ݻ˿p +xKNnH>g"yJ;4pAFk+z.Y;MK8LdlY x̌Mߑ霳 +0y55،ST&tGI5lGK4 FMu}/8bpGJ/; %A 9U s~_(ceI Ht4,ō+O 3{: 9 Ɍ2;%QP_X>RpEJĝ6nM_s3,qh\EU?Z_ PU1a~_$A"ȜФ~[=-q:oG̮"hm#6e2˜N7s5&mF?6p +W+r㉆DGxwPF8A$0?k6xLqxMGFx"Mv%O:U\ӦodqgCf2sdȬeG<OovYʺkv.Ymh]{I֐O,M-A"fSi Md=sVC=^d)ld]E3H/ǙшB?Ԛjf-}{ʽ˽4/HowԢf1 fp$0AHƔ7e{d iFRNRR}ۂS(؁bRm"}3˷f$g*77D=EM.wR>;DahŖa L9)R+jim&-qB(;CXMih? a?G$EBDb\f3/Sl[Ǥ@DҚ{0)Q%_)}N7@t"AD.pa<1q<Μ>#p(TOh*/{j1ȑq؁R>03ϝ>*Qcb#Q uĒljx#Vݐի3s,ˡz g/H̬{x{y~1HQV HR"Rb&2X<I_d +I[0S614]8ALZdY9IMtR]-=) + OD ?IzJ9J$y*.HC~ȭW dQ" BO0Ȭ~9xZLAѮB=2;h߱ߘ)24?|Gmӷ6őt^x;E">]E"=#KXDppi^.M8?FoaMai#r@.3t$wzm:9o'AS:YspchXth z(4rrB=02H Q#R|&jF1q.$2He!pIɾ vQA" —D1FfqDHL1IF):_b?W*{Xb],y*6"Exe-%A"$ӟehݓIUIhinH$ݘ%fEy/A1Er-BmPZJAs,fY &!]XɟzpTòQ7NZOS&=] !qy1kf.Td.f #/ƒ΋NGh0fefK#- , d#Ӳ,DZ`AߢܬpםYScGuWv>9 +9`7L`0`D΂Av8Ey̋BbLGI ;  ldHEV s4?D$FxeayO1Cn"ÙA`J`1!͐P&KL09gz@f.鮒γJwX)M߷e%fS> .?:hŏ +~~E1!:TD,GX-IРL*ԘxB&=C@ +(RZTp8stSjuPE n֋7紁WDE(Mt dqÒkf1Ӵb+lf54\μG 8l9`g1^OTIYTƾ3WR6pKJ?iwXqq߾'6ˆE/­Tf6 |IU[lnCifѳ7Eʭ{~C  \ٰfZ~RxXʶm+{橅G*ktWN=*Y{nnKϭ L[BL^NƍֵN!߱Q+aNWBV z#-x+N֖^P(+N_ݿȕ7^:(s%RݍsYfwrPwJe@YcAP ~[Ka r_FPփ[#Jӆ\?Hs Kj fCΑ =|C+7*6 +Q>L>lgl-W];4uM %ǽc*[Cޚ%ń +--}'7sm&BjEx~ͭoQ&c^f90IkVO-pWґH,6QKG))jRDX%sq^LTCsԚآ'NN Y])#sT2fBnWkWl +m&{0󏘚WDǣw yწ1 +ZUX3B}Dʺ_M}B1@? +10v23U+V<$bٺxMBn?! %FG#BD{qqxH߈B*bfϤ0e04bё"dʴG |zcDcЊfDsyt"Z<④fw4yw2V/ ŤT5VNm8;eԠbJĞVN%IlT_S ֬< +crCd֭|-(U5l#ĒSeRuɛ& ,r:EdE%#zQJ-J\]CRRiI[bAy2ȇΌvA.C5LĂa +Lތ𜭤Puc+EN +$Feœr”E0l%,|H!NAG,bP0Yὂ[1.jӡl2~ނs(|H('[/#kؼzmıc+jP)/tLaK!OQ\i|i|i|_?AfAHH_Ц*\aQ?]/#~ <(\L\^KL+=X\x$ g*Nз6`+ׇ ŗ -[t=μ[ -jL䈹Ar< +,rСҼ9bTA%1XQ4|Te!fAz[5YtuanF[nA`3OOlWb74.]Nܓ8~]P{`AfʼnfF4}1"ɂ2CH߶{r?@ْ)j` }@m'T7 _k,]\G8qQGrG0ʙ!d4Ǐ~} C+PVA]ȁ?Zfo0)Py{Y JjPAf!US&$ QBiGC1Bc *1`,1社 /&`Y`c[U:Ũv4._,|fi` ;F|O߂Ə@~'$Qq&j2m$QcssY9P q Va!Ûf=9 sY];P}93ڂ6ffN4y"6Fs|mKDő5-փep[ܫ5z›ÿRUzI@ SUpƠ9K37E0h`xÝ@G0`G6Y emd#%Xb(|TM|a,"(3(.UTh,sgSXfTB=u*$K2 &Ɏ8{ +%q昲RpɍCqp+$A$/'Ĭ m" ~OX_KƟ;z`4u"$I#ք$a"$"\wgviAlF/hwm? +bn|kQ's)o3ȟZtFࣆɝ]IN1 ^n:;:c:u$#8۵a#B=޳tH~!#HM u %4hD [$D50ήE {%",9ID %H|ɐH.tu z+\Slx&n2UVZ3y89 IűSAE<3 왐MClQ"WQE#eAa!ދUկzT7j4Ծ +Vjɑ ώV7{ִnfKx@v$1d'${5mo$FG9m_HgN!-X ĝtbn=39/nR^5e<:G 8( "GKb^Qלhh'ʗx:3#>wI^Lu5A| Lulƛ%xr=}`SתGf'enȽQh;E y]X@kSom\|fYymIR[й{RBoenۋm\\\T\HQ=˙ᡱ|mQBئi2]TܷymfFN-zZ,?q!wpy;*:͉TcbP#bӘmEB6k/6*2?!GhP~٢=pw[܍; xW׼+t<$QێWߛQQi=ܵ/EܩmtrqG?T" {Sv\YÌIU6 ͐ҰfV>p2IOElgl=G/%2߶2?F-+bt.5mi@ӕ&է;hۥ:{H69/f7x=4MXf9Jcs+pxM(ON!w-o]Z}U!ՙa+ ){ԩ#`LG)i`C$ +7X jG}#`B*s'ui12xB^3O +q0nBn\4f,Df.bձryM`-?q7CN(1KjkPCS)R$ܡ5a=x7|{熥4B;S*l2yЫ|םR;糱:L<%N#̎/8.ux|`.: *m&9s*Q-< Fڃr%aC _8j#3b&˲Gy`c3: w4f^K\i?_hTӫ_k ]&4:j-#l ;^+~n-LEwmKԷ)`I,>S-Oy5h4F0)$n1CƼ4il1=fle פ<]yI؊a +a1eaTNIܱ~;lSrl3s:+bMPKdtekx:rܔ@{V蜭wJQoeιZrt}+ʐRܡWV%\_ʔ$6+Q@9HDw1C{uQb4 .W1Iqtbۣ ~@GLx#e3ygr/DUT*<3ki@tF pjt7ʴO БY5J0ְEe +pzL*1z{̩IjؓU&,CP!17cޭL!]ֺc%mmPJ1&'NX3 gǂF{ 6fqdaBoH^JBfMtݮ:ь~B ˆXKhYAƬgM?s3){qr\P !e c&T~PZ/EP4d2Y4ZB7Q&orWJ,Py<6z3 KTnW ?͍^hCe.$u¬֞8N#.z@?l j1~ør<9*p3;VrIH3X'3N|`7|"oTOWoS$ә\>p̹Tcz9͈S/P\T?_g+c/XP+Bjx-7}C,e/?-ZGg\g.e T?_zc.7V3Q+q >O^/DSFfQb|R|]5FXJ!UpQ@+F)oNY(acʉA䘥2z>T$AV@M%|t扴F̰jl +oɝ kYyv̇\g +pqo;eCO~/<ee䏆n=>ˑmEeK/v/QEKpEeYE/2{e`+R^$plH^d{3_b}*x.1I,>~^ z*ބ{|8p8^B<|=j/?ʄ︐= 숟ȟ!|!}鉞 ?!~DՑ>U}Y Ϊ;3H 1I;;*_wBj?]|+FG{}3}{}i kV oOJOysyy2t+=zs}V`0p{>h^}. PΩߌ} t7ؗ/~_M/g_ SGN/j GO W9 ')B/uVWG<U*}sT&P߫>Џ\5BnTOdi#V׵g,7S'@wс=yЃy`{&naIclk@ex ӉDelughN!dHQ9k|0&X:4LU_7`vMZkMG``n+wAsޅbSMf%ֹfci!n[Y&`oVCRض)vIF]ѻfp=`7 ALa'oimbU^u!_ )ѩqMGPl ZB ('\G-"-0q 0yLEΔ"Cg28I댓ͤKX0(q()/p jq6l%Jlg6Iˆٶ vیCm3M[J9xE?ByeZјY A*TzhWHZc8Z6<_M#^ۋMq\76X#yMӨtk×x,SWk06󯅂e:~"_-5Z~V; +Y]afRo}9 |zGc H'KQ ÎQdrUhL7Bb2isMdCrNV0'7\7&]hQ&zmQhlĉR`<,ЎfPbcPgIC42UEY0%陼RZ/@'?j-[ȕ,[̑)wru/UoN$g~֨TtmNy^,S_Vb]銛S%@ЮoqlXC }OyFy"If(] es[5CSl&ohs;\~pt~EA#W|  &?Gܬ:6zLGE;=Z~GOyJKbfۡ^;˶Go C K@7O灏Z[BxYc!DyρMgz`Ff: + *f~OB s9LĈaGMLOnONtOdZO3sAkϮv]S }AVO2#6+䅐> W1n(Ob5͹P>P\ v^1ɞĀvcj!(ДF ?vÒKR^X ߚjbs?F=IA9.^ɮ:3lNr3{f?^05ʡ&_/wq|ߞHhL*a4j[Mqym̒siKz1@"L ]YS(INKe J b1B2jl&fVעH.!Fr֡l#ȲJegd|Ҍz%2s黹zaw&n4eo2`dW EWZYrrk/?3XØT +#}{YR0"'&kFNrEK8Ԥ } +cN4G؂ e1:2rSd'LHpfLސɈ:s103R/00ӥ'dNY,"xKkU1ȍx E%]j'ǫ⪇t /Jǃ$06AVwG5)? Rg۴ }06_ZV>@&ALؚOz]_F)up*{:06+t_̙/~y*&`ja=#","- Wc ӷcGBVDBV-Tn#Ke&}ϖTY[$߳̂_K Q;z8VlYK]>Lu"M+]pXeE4֒q\H栠tӪȩdJb1V2qM-]0,Ӆк'L0[=j+HO=.x_E!>) ~'O9r-4;K ubEm&Ѽp* )܈A:a%2lտ0kh>0`ۇo +~p a;zkHa*VJ}, X{j(s|4r)^@ )yKTE@TVj%[#&+,K+ 2c^Kg0&.9}_s&_v[e +,e D$3,TU B! Hh7,EJԨbZhD+8\&e$wa7lnPeҸ%.o|Л_z Q#pFGq" +8JjNr2;kDҜxA')a(ae (rNθ?3c^U8P^K4l6| lf #c%0l2HPB-` MM0(uأ(@ py6] PqvC8覃n YC65Yp؎fcI݅rݎ4@^L+#@ +jCZ?{  KsmT6l!w1׏`l@n3F<@ʎWK2 0Yn5F&&H2>Z9T}d tmc3qןb9N d* s'DQUfEjQ쇓q; ]H] f"b 34Ӊ-QO%a*$Yʄ#e&פVQ֏fg+D9tʞ?_{jׯ?7G}R}O⽒b<ɛ_{Şfd4}zil [˝;>.&_yqRg+SP GEЉLph7]x^tEA\M`H\i[ bb] h` n5 `|% +5УAcK~H^ieh&& xDIQPc9"fXp&&($2*'{J1tT9eh}KyyH~#wТ}ufy`á(#Fh1Йz {@{J똱zވ{O_f!Fh#Y~jrWPC7WX=R;1>h?fR'z4̱H8"92ix@vW8RƄp4釔PޭΎN=0Y܆LRJ7ccq򞉚okwYާ57泹 Jh;Ađ)bj.$;KN%%eI%ZI0l>dNhGoW=9Avuo6r&Ǿ`죸|0ޙTڛNBO(u$  /lon +MI|}!SI)$jT;7˔PeErNgcgggZttUW. +W>z*>FQN߆DNH_1%t@/rHY;vh.2/aYTygn' +2kڎ@3h %gk-66hmNI!GT.ۜ4+eS˒.92llj"/~ |&nnTzLUǐ r؅AI@La&!F !]oqC%Eټ3 @[ؕee}35.kRmB!nDn<m#37mo=h2i˔.}@7N0N &֏!xPj+ݩqkF/۶P' tăB{7uʗ1q@uw0'餥T|XwĮ2"d Ta"LH.uORLzX +d/>(:pﰀsq[aFHYVV7EȌ7Uu:}f;G 3u ]x,,oCW!n={  +hJ[Um_r;.>W-0OHsLQ [%&dw^(Uxy~(%ղPE nU&Z[ +F+6dyd6s7\5z g V׿̭k ٺ_Wv~I׌Dk+o u<`xdAe֠1OVgp@S!=nxOέ׏|Ua@2m}Ki`:pˮgA5# ^83`.30 +1`\VCِPYϧD# =F#QA- 6sb-{yb0ˍz W@d> /ZEf؅IC*3?i=x(`O3.7pS>)1#hڢsjIwFhj\o3>e +z%ƣqiv#'ʤ*qEPk3l珼 LySNNJbƽ2͍5mEޙHRZ?S?@I;;M`6 +RU `2Z(v`tuP+cMxi})V(Vw@X7A-zqZYT)I1QooU-)QB@9ʚ0E;ci5樳ygQ>M*wsteUiF.Hצ%6ƆkyU\iHRsnsl5TH.QIC[" sEVEi+a3?T2b|â] ^)%t0k+ұH6yҦqK\v~Fu6zBqC=]fsF })+J2o9]aўQy: +dR8|\!(Zؠ2@\򕭔r>m"JUZݚ"[]eGB"Kn~6_~5ztz6Yd[¹ Giv&u +Z9^|gh0؋d,YX[>?jӍg Kdd*E?Y4h۶mx۶mm۶m۶m}ݳ^oDYUsd5FeuQ7Σ?!*7xIJf}Ȕ(z/T防7YwpJysl'@ldP 6/K6lԨUzrZ4M^{TsWw +;GT“*(4x6xvI94jQKi5+ +>t &Q6T7M|[.xa1gȄ lFɊ;&2\Kf65Ɔ^#&tTnܣ7Pڣ?A5c }6dV0SgbƵf G d>ƴ2Kp)r!LC\r:ѽ>V^c\1.LT-ab:aj;{̀"d0q.^ Ht +z/tT1cL2Oҗ@1MŮL^S@U*X@\\"2;pMHV]{3ͭ%i +ni-=Zd5"SVd^@PR48Fۀ \OCB=, 5NTyg|5jg`8zOxDv|'E/K:Hu⚒a5{%HaYO-!Щ+cR@֯PhAW3̒0Rג-HlI(AsO'iٛDI1H-χd4;y@z`hӗ}0}So4 7pw$e/*ybn/5+79 9hafէ4#6Hg{(_`U2!!,8y\lU!ӡ! +,ݚJ|$#le \\KF4 +qj.@ =o{FtP]o=bLAC}/I> _ʤI}\7IAio(C@`x7;;"}\ڇ;6w =7@/I/*;PtCw+soH=)^l{"woΙC֕1m3VΜͱ*R3't/a=H{ھ7S= _1y_v] _)|C oɣu}yóz +u \ɷDkԿ6{u2_-&wL\#z{G.yzǍ6yrz'?c̼~KPzTIῩt }&#bG6x`@\.H \fCB#m`T*֜QJAx%հќ%@.L]`HKy6( :!c[vO8ݏC>IA+ IJF-|WYȐ|f8r}-<>->II"xCx8nY:q}!u.^Y=J `]K=jDf+ԡ3T&zg9>!V4r4;!4]ѓ6`򈫶pۼ;;6O@gNZ`h;ˡ!# ~hr>43\=!C$[b)I#ۚ4[L#TU{z2֯~$]=iװ*m숗uC 3a,Fn塒:Iցw`G=j,c[W=3@^jƘYz,+lX[ rs5M'!ߒ4TVnuJg=௭* +ќsd)8+iU+p@:E4Gΐ}cfY&!̖ N@ ה}ٺZ zm0%ԗ>zoe6SA 3WF*imWIR/4ir`4% ͫ~#td@!9I]D4:$4euxbye=Ѿ?5 Z na=AȀst9"+n^}]Ȁ,! Z 1 NUkt0%"49MՂ[' ?wɘ&jL ͊&KSFx|uw|,$hjCR,dYǰGdo0?20 g[K]>Q/4`s^6R3Ƞͷ[F܁&kd h(Ġz+_՘фXm՚^ď $Dj)\oDHT[rH- %/'YgR Ɵʌg-T:>,HBSĠa?QP㦘OL}cl[4"u}GKu[])+j 8Kvt>8'L}?bLŌv';PV{6N]v5rS]=}NPtinFiSiֶI9;S[Fӟȏ9['v:JvՌO'~[-Köɪ%1wwB%TwH6=Ji@ -wLÞI)%Xڒ.ғQwH- _)uG ׫wifpvֿ'9愷foêq]CP=A MXDŨn:'_~)V"p_2w8[M.h#dHUxD\Z"v@Z jG[CdVyeuthÃ+CXt1b+.o12Lm2^fͬSQʕwr8FR0+kY`|޺lep[^W`>wٷ>u^QuB\,3eA.k:n۬ieu`+X ,3P `/$rP/Pzjv4 +DP :4&DwC&2Cc)à&TcA 0M]@{3NhUm@tݺ&fr`jE}_lEu\:^Y3b@ +fN+ +66%&Ԇu'F?Lz{#jcb~/z +o88Iז7fRۂߪԡ]3ԡƶ9g8{q˄7}+fǢ;ZNRT^qTaf?U=pIE̺1;U=A_|Z]dŢe#æ( +k#]EM:)s-Yg.j|=aI c9qom鸅7wy%Q˚;gm+`OmpˉZ6ȆHK3~ 0L +!HDux#,BzaM]96OaM6M]4ۆhu˼aMq0Ur$bEow/L[`QMkl_ C>w>v,b`DKR=g4>>ak/(iY9k'0EV@:+5 +_W>? %@2s<Ⱥf?d}d~(x omd}> mB{@ڥd}TWJ 5 jyb{ 2~b@_{ mp}|"~L})ZPܠoc"?tHA(>?ᢕuPxkATl5UFȆ"dsK6%p2UjϠ1df(# 2nxnwK 2 c2mM3p8JM8Vo(<2 Gk',؈'8]vu*͏;7TR~x-Sn^TbKo +j؊5(ib۪Qt*OQΰIn 3qjT쇷<o?ƣF+>&;~g?M2w529[ⅴ#Fo>Zk p깲 )'F(ݘTR^xQn ],'\wxV^kZ#.)&kR2 [Zn E6N[ % )Q4SΦ\zŌZt JUb4U +tvr'y5ES@i=1vb0 }6Mcz&3;2zg>ex cë&F)ds.W|_ોUn1c.B!Pžbx՗afKې^O<Ѧs%*}jY`@dx@ i7^Gl 1 +=D(FA*.B Jx79\쁋Q A+’ZʂylUV9ң) RMN33~ UYI쁭l9C⪗ (aJ߹6';j΅Xr}}:>S4%HÀ ;&,ES,[-d#վxdP&K fE@@YhՑ6!SOL}83SloL}fmRpCN +Ņ7^ǺBFz"SY(ʃ*鶳B_̖iG-Q/oe>|©#Гj5R=30^xҭ)e + JdSi~%mdbV&UbaL% mW`tkpr.r?ЇXΧb?NRq +S USguPt$2lMlY|St9y*Q Q>УX6֊m +vS.5niWy ߉a΄-Kv7v>>LM1;pCfn3gJѮ DQfv6)+}V3wʺ,tJœIH+ aEfHÇ0cOt=0scLZU IvlSA>ŌmO +,yt~ YS*؝41(gcc.HIC 2xlek2|$q[37+ckJ*Sl̎yu3",-j?@!jPT2![aqR#'POTƂf\ڋ$tߍ4*Mv6{Jp;1[e#zS5\(H.¢je[2{F?F61mP7q%q+h`;8 iyd76oGMi-B tA5k]BOE3eEW_gk cVkNiZ?%asD@zHȃܔJ ֥TE s +m8Ar;y4zj`"\K~si~T v>YS$6Dx"=ihg&rԎh;OBcvӭQ{>~54& XeV9|DM'E+;.%(|uDgwTkR^hA*w]T)06XHr3f(pY7(Fc>XZf{S3`7W#؃qtS#"6E( k[=oMǦsj3\JqŨrb%N Eѳ{Vgl̦nh_vBĂm׀j/b3Xip>BVBiȧ] mNϣk;ZS3: ł+(,'65AԢ *͜j2rT.gХrBqA FM0I2: Gˤl(ԡq/:YylapX@S=UFr7dR'W$m@(TiRؒX %PPP(B$AQ0(9 + c^8=ndEKYbU9d瑕dWyY%JJq \,wCPḌdY6&BWNپx{dE"񾿯P 8Ʋ񸉇JWL@&^ƒ) }KUp=/9Eח ue8 3>kA+1l#i"HX<b +ƼK'u_L44; J=`#(ڻoIJ8Ԕ ahohTªKC*:V,$Cy┏T ໯^W S-~#glU3wCoxPyⶡ:̣JN=G qXm3ïV9|+V̔ c\*$h P&ai=L+>@UO!te]iD CFqnw{iAkq oV4i\w ##cSQ3r14ע+E<§a ?_7Ju_M{{nBX}SQliv L,F&-C{3o55}›ؿ_uX9_hdU<~6_Ruy&RGr'BP\K(Œ#f,MH٘ɒ1h\F#ꑜawT5JpdM7 -׌kcqY^FO'SɼIjw4]Dq#Dcͤ([ԉr,'jYySfXCMg_rG)ꞙa"tӷA԰C gM0EDX]嬐as6og gg5V*߈w7^d:"+2[ <"br4֛Abg-6~q77zʮ,eܘڢ݈+Szq1LnA ?E]O [cݙ0܈pR'mawV*7SHfEi=>zsHkS/fJ#Ȝ$[vD~%pYr,y!ٵ F.'lBsՐUQɮZN 3 u%qȡ꺡Rn0cb}<]n2Kb!Fyܧr +r{ k!FWA@^hX?a?C +xP/%լXa1;객s^t^r~gѡQ.]T>׬<*ϖQrWbU[bUZr!Q3ʪɢsɪ(ڽ!qZ<ڄ":L%ƠMIئ(d_'ɎO +BMS,Ѷ_GޢLhoʴH%?D^E'4&V yU3>̠!r`@_4$C& ]0)N*z@FtF*jH7q0*;,QCӃ7W _>e<o:`RH۠mDk_pbŲU{ƢUUËUʢ &,3bUbEՖO~Uۃ&< +i:->&bxy?C"2~@RtLn#~[bU{5~[ '2~X B t_Y}n5A**<@+R +T2F"%S"%Ub(@] `Y 2XX}rE +#S[NJ5_Sf6cn[t8.IJnĢNԪĢn JQX] +J +?yzeE>L&yފ>o^P&DJޅ/w?7PG@b[t5鞴>)a.:  eEC$2c0fL6#LG,P'Tn`N_DUYajuezBb`Ps[{1y?ŏ!&+R:BÕlb,fSlC}PeI­}dҮcn7Lvխ̶cT7 EU&1SE/G\)CY7d|0K1A]$"8${U͐j(.V.Y|í>Ң>'S[z)6O kDf:T I:=:]θAL40K%![+Qlq '+)ު2%POrϟdKU$ۘhZ-u<*7O|tP+~?9M{P'X?)K[1#w!%0z$VvNF@ +%#Ne=JSəIdb,[8ϱXOs2&yuyTeGeCIɞQٰ2ӌ8iE5:8dRج H+S?qy"ɤD GU[E~wH/p{`NB.^%aİ|=z<=`XIͫ!`ŔiINGKQT4ۙ.RAVI<=c%.癱#dؠM~wu(A_'+9Xz\eN>y5(v\kREM RmW*@iCb$.^srVaOBe@6r>1L8}2QOxs; )wNZYEY;(\;^Z2=p UG-@l4'+2'E:7 [JeΊ_VG,㉬z!CJfF")Gv/, e#hs;2ܾu若'JYnB^sꏍs Fl$G0Lf 5,$W։5֎1dډE3cYh c"&W38jཟkBD$0< +?RpORn1j&$'H&@^2DK~xvUAư"Y=UDZG#vFy Qt  +J!'$?$volsP|' ρNe;?2k.wv窉Hňay#7m S"@WQnKn_͂f64Y.ºo"hp)D7l [ĈP 9 axgZJ +P +BGEϫ $(~=7# g۪ soҌZ ~Lpr Kq<6LodQ6!0RLIq2.̚T!KPrvCX Yj+;v[)tD9u2^clޓARF)¹ |$Ԁ|ۼxlI,t}D_Hx3W 02!!S ۡ݇3aklnƴZn!֫6ۖ{t\ڙxÀuz'JnB#Nh9?%qѱI)oYK6Yjgvx蕰)Yņ}]'IxyuRk䱃1mpxL&Ic}kR>6CXd>\'.t*g3 Z3*Kv;\x|M3O^K `:t< K?`T-!Xql`vuV猚rs*y5ůgY6  G"Md%cCi SCcPlf4 %Nl,̀2's tEgY2&΀{FIw5YU-"Uulr߇G˘trݕDJTycC{hW3aJuI4RR:|v-V%݉`m:)箚'W'اvR^~B] is8ZcGHOwCT_t,A劇|{'t|dۗG'hJ]ǟ2s@mY m W:*],.ب_tv$Wk,u; +EV;5c,yʙ]T.+jVTlX$(uP W98_'~}u5 +4EpߟRCU,y%3 7BsP +b4fc->ߘg,`NH^Yyͳ)iK,?e3F۵Dus +uZ R& ȯ8FJ +QppªL5ޑ:α>TlL|SAUxl)!A峅8% P\ +saϺ};Ux*}ǣ+.kޓ&w ^ 9dϞLz@WudqWyJߜXNf[yB;BSuN_lrS=Et S9@):va>YldO~gŏ03W +Pu1JڄvT:xRr։{a~[4z:e-*>(T_.ؾ'+Rntnپ{M*դpVw #>kTI + _ vQоXgOTz#NSA)R#.d_ߥ@Y̼zcBjZ~E]# $F`ʯo)>! <\0@*<"hzfLH3߄fk_ sk_khOZ>H,ǹa#9n[)'I|_6 6_& "4;t4)@'-_&@[3(}Qq )\N%v3mbNMVHm1̶y,lGwEh +9KCJZDͨk$4#6F*ZQ`9Ca jZQEͨf  ƕeͨK!*&&;.MtՇ.R;=3/: jjɝV*s[g9$^*i rjR7xnxذ($+و>Xm +d% J0-2L,zphcJ58@ 'ΰ +lMڇki' ؅EpفA{ĥ:HL\χ?%WŚ^A='F9ΰY/SԇUT|QA:St+iQ.pܾjiFkta/FuV8K撆w&۩Cʆzݶl;J.z]29"~oyw54^PeNEd& `|O.Cd t棯 iujZVLQY(m;jarq71(Pg5YVf`ήh#o$ 9R(eKm b+w&Kk[O52W*MFlMɽSs-DNtWьQ24Thᅖ%bj{J썍/{-dtFy -4g!&hb\Hw q2:יrCe9%; -z>Z g.Ǝנrc5v||Ah/FpeN@suS +zHNrU󽹏a{vcVrT9#pAO;62K~ %gf4ѥ iQj'p_u#վx#Lgl̊}W.$Ƈ/i+, Q%a CDَd4J::݌,o ?A=9HY]R,)cD.Y(L{$VܶDp9njrAkf^pߥ>t/AR5yh熌t{~a$}rhm3}dj1]\هۉe٤_< ȽɌߗ=ʷo% D/ㇻod=~q罜7] `۷̳zYiy v+/͠| Cd(zTtsT8xȣl1V4?2QjhX[~h gkAU1L0b#+x#١2CK࿎rJW +UH4`A~"b""6W1Ƈl?N,-󡻲ix XtӅ}̎] eZ#a)M#5J}6nV115hPPUj7zQHO̗M5O[Awp&t!\E8e}ŽbIkR?rAH ZtJЎn0 ZF<0%gV!Jb^v#6ҤZ-:MiZFgZּ7'L3# 3vC҃ +@//'FԲ0ČPx\ A66ƽ2?+E|cEy 7kq?&nLȉ2 9-#EzY>S5WOYhWJD8Q#K[bY {3ؙ ^=.Ԑ9KK*c#hb.w̦LߴQ.wz'2-Ó {rf|Y lK؊cF^{iŘ{{g-Eo8m XBK{uHgI9u9`r ,U-d&A4FkN4[ +)a7w? :L *aDQ8UW}վ]-48>vrk* + _e[ʩ w^CY;~G]c8 Ȍx+s㝟 WREH/6Nk0Js+,$ʡeM)1AC[[J-렛/h{EzOq~vNjqn-mPk͍g5}p-5UG7?Ds-K9έ̝n<,<&İ!{'DduDdkEn XQSEk%GNV%WaQ1o]$CV1 $GAZ$~"TN*&6eBXP yV]N5J +YYDx~mj`~43l曮Ƨ=*vZ|0'hw<[,ꂬg|{-%=V_-' +; )J[)titaWe_aŎvo\\ +=Fj*gZ*B֑wPfixDkCm\16gta^kp87*QZ ׏% =% +^rhP\re `Bռ*j{8"<ֶO1K@Ǯ)kcy}piD{ZiKu+Pٰcn\{ܪ"BLXލ%PZM%T.:WN-kŒ"q >?2St,#*ryy˧!!.+Hh1M]'o6B<6S!\{ (lKO)0B;R]`GʑFh G,E\{>^}9gL I3yDW0OkLErf?|o0|nX +gI"D(/62 C.ThQ׈`û +5ŜAW|v%7l3Bvz7 !x"S*\6$-`.?p +>,Z#\}N! )b{ +T<;4,6b "ӽ)5@]ڼYT};bwә?S5~Y^Hrrr2p[@K8pKS%.ŹЗ2R]w4rJRׇiOߝY`jNI銾އ?1EBD=nGV'QbtG^=ͣXW9"*CQyPox.,+SJ.X~ͿhO󮆱L3O + +w ,@N-nMWc +A7*q}icRti[]<V:?&=reެL[M|'5fl0ϱgۨ3$9yYYb@.Qȟx23k,ԚѷIz| 9#kn ㉲~H-S录ja5}n{:yetn &F{Ξp^I+eXuK0_#Ͱ˜v?CskN,~%{jyڊkڻ_%x-`a:tKGF'_S~zhy-|bSn z[{VGt>{}IT.؋V`jBaqPEʇJN90Bp9LS$~䕊cCqq63 9cZVqzfeDUҺ"%( -ŸEp76ΚL'G]pѪHts}֎ay-]{k]Dw˵_޷Ȱ36-tPl;E'9Oo<%qlȷ(,&>IulЁDc\WYm$h:JFP$ݎUN 櫉)ǻS|e:/d%㮡2{!29cUkZ:1͑(vJYhv_Vn|iP{j 6w9S> Rˣ8ޅ9.m&C5,:!{R75pܒU\.cbq:#҄-OX51Umx+' +;製bYєO @jk^C. (Œ=Q*żhJ™>(ߌ=?k6c>#'F?cj }X?&?nU+em5ԟ.:Z)&Qt언&X BüppA?ikMk͌ǡjs&:o*tzbjtS&,( + fN/^f߯#̀Khp`u8${mh %DՉD-e#؈5U +w#9SYQpKL}6,F ⣰-wHL2/Om/:֭\.%*Àfw.EgoVC/dym&换30A:Or# 1wO„m${ ٠r`J %}B6HJ7u]aa0"9CpS=(y0-LƖHQmD>ſ.Ի.eLXCsFO⤮Үac[IL( ,9WO9þܧ^sǝe˕wr)l_RMf+ޛ7aA +db^Xz`TdcJ%_drS=dg1.Gi8KsX;fA0~ 7I۝K΅t^JWޠ*s *9m\o㋠'WkmnkP\=6T'j& GTa> = [xXAv--"v5+B.O]I.),(gHs*C[wU0*xdh1ͣ[ +܊<…)m~26.b$G]#b*&8߁Unj'HHhq$aiMu) m1d汥vwv)Uқyіi{ŠՃk"[ o`Gfqf6-G Hw\a&ۊ;`Ko ]=vٻxq*(qcd"KF0(S;ZkdxN,+9hl6 +yo_}aw+l@tjSݻ ӞX-2:^sVkɬǭm5u#%g,lv^eǒHw˫opS.NR:r \_-QL^j &YU=. f'I prZ,|@&f m{z7hޖ3OuN.ɕC+K-w5iC}dևI9t_b6S~ZIޚ酛|E Zb\|O dn$1 D1yL yTȔqyJUi"+ SeA'KrS/!zbⶅb+ l]AYJ孫y77:=\[5lyaZ4n5IeZ;ӹLv>m3 P?pt_x_|@g?|P&Tݢ.N&~V% |}BG><> +$ofڅ^ZfֽZevZia<ۅ/ކކm\ž<>b{gbCm^ԭԹUvc_6s˾pټܸ]:e:Mr]4yivW _֥z/Ť6x΀%P;ZWVC0 +p9#geGːNU-kuf:tbray Yћu"z]i}XaDH8~̈p>sff!"iSYH +:طAb]zމ;A5lk/>2= 5^hN.P3i_O(r6)e^a#bc mSژecuS3p193c4c*<@^]믍 ͪ)uRP(8qqZ!*JF>{!]^`hYn{zj8v[XشvJJmKcɹ ΢%>Flv吮^tgXgGקiL_\[/gl߬qutN6!Nx-FƹA}.@47HPWYι TTUߧ"kEP;73Ufʦ֭*yV#AF#m >ErB:@v9`ՍZJe~ڰB4 9`fzoB $#3h28qĺ탳-7Iz \Me%:>*I7$@uWrH'ZF} \!ETl(=E+kd+x#?<;&kL{M'pS6(gs*<"ak9d#&VcOI۷c:;ʣnQMuEK^ֿQ|χO]kX^| ]1ljmiunUX"{+/U ۙ#.};4T>V>t$]T_R$^n\@;\g1,pG@_,(ͽu(/m7Vd7bxfPHI)K1aU*0m+HpT2*f cNc3cׯG<ePL}g^Ș,O:M=?5 +PoMTi:(5(H5"vtE(3C6mD>Jj67Ifڼf'B4pK1bqL}oY2| ;q_c|<7Z/W Yß !H8&LF\]Ɵ2AZz(ͧZK"=3M wNuk6>/n, 6GUx?9*D_)!b11#p.^#dHaD4%`)Jd);LmOޞ._^$חA/]"+XO7=j1!K, +_ڟU ~ Y:=eƞ;7r]{[g7Cz0ʵ^jwgz=o={P?J)E}*|F| J=+WQ~s){W#ol0ڄz $Ri*S^mֱq-1žI ` +Cpͩ2a?.ArvM!_ 2Q\\XزgWJ1҃,v2wӣ[̬kH߽> ӽdr%rh5h!tpď RqHÿX2/貆TČ߫+Դ47t2o$nc`M9kt/ bb'!< +}M [*ps-XP)ʋe)*OofL6\0襜68j]`*/.V v<AQٯsz&8V'U{'eo^—|Y4eNqKEi)<4:oz}P5cnK=| C/PnJi8SKtFahItssØ: ƙ.AX W2perdK5UO`YxեH0*V `X@ [\;|>Sqf2$2GpܰW[ߛв%fUoY2јJN|wxe\geKr9A9v'FǏӉη 6|{XgDoNpdG65OΗ} =-Ѷn~m^2Hs ̃`+գ2!x]ժ>P4 zQw͆yĄ}JL>CÕ ~Zk7CrVU_"qXjWVVVA7 k"CNFL+eW8?ZeYp >`}i=:Ւ^WY;$PMdkrI7i5㸅hH9Bz5jeeXV0-GCiA!C3GG(,k@rﲤH,n3Ɖ{7v?HwYt@Eg#'J我q@vyш:|u@z݇MDzۓrG+#ɰlU;46P? :>)lx6xYYNW"?5xYW BkyJs nE|t$ET@+צ+1bΑeX*%f~y$9̄&VHm>q1R21K%GjL=Z爑j0|6;ԺY騹|DVRjﲆ +DnLRTO3gI 3tE +u\T\Rϟο7kvdޑ?G"Cni=ws9FQXSFfoxw!iobvL_Wa0>wpDOUfw8M[R7zlJ31PeM ;^7im_;(NՠnGߐ?ݻF1Q}GCouOIբ.T7ˣ>2֔֎0sFrh^4XJo(5KTh]5'oRMۖ%c$=欒G +T&cpK)Mr'<N8bM18U!ePoU=~L!U0B:Ǩ x&R$"$)+FZE*Ft@[ʉ[-]/=I +՝v+܇F&wU@:|u;OJtڒ^T ɢR/kP$[;7GSe8赫e3>|bYӺKjg5ڦ(Z7$iL^}oS}߀Aj-7d2$C +f`cIjtHsJaag Ym#=Hc;7zo^AʪcN^U^@hGa?i3ᘔoY'`% 䨵H,Cf5wfXa8EZ,=53BѵNlQa+:\vY;Ѓ{Pmel6[QXGViG5I# vU16; G}X'Z7V.?YcnZe8^6sէ\;Ҵr'Ȁ/\W6bEĆ,/,ύ̺Β¦-#4A-Bޗn tq>RT{? 6Pq@;5[$Xg@~B*)w_AnZ_#ҟsPSS\2pL z1qǠl T,iJ弚,)N3,cJ]:d&, I~VXgd]K?t14]]-ciO'[΋w(޿8=r^a:+e[D:ϣrdHc#R$m vW1{lJyf=|K->*xtL5IQߪC9h]FZ/=+pt v9QyT w~Q{oyITAkw2LH条IRDWH٤UYWmCoɼI)dNlW[84q*7n3]aKϙCn7h\U(uÉsim {ɑ%w+=W#py|Hy"TnI7H(ns`e_E'=ȯ{ǀ :Mz Y%O2XNf'\,!D ,vYmu X$y $B3Z&"`Oa٦ض.7ޙU˦ ^0SFE8Bowm{dQUx+s`FvJ&`>fWmN&9o#F Nޥ[gmJw`پ~L7pIqS]ςɗ,BZjiq#I0i, "irWOdVRfa.q-Bդ h3Cs=0,7xbϩ_qkG[," INkIt8Q #<2-B@N1T-od2:K +4 + 5j|&o4 ⼵\?(8{*YRtPpzx< r8SOazu3pNx5uhѕF@o%&+ɨTC{r>7#0؊>QOOw"A6ڨuu)zFx݉qtxbh)jvW x.2/'m|#gx؋*F P\zjpAIa.5yY^݋,OdHA4zp[7"7SRa\HJ\:9=$t%Cd>%_V|)7L`8~VpKoEM +zd=S1G6Hoǝu G6ZT/H?&`L ~$lz5ĨyArRVuDu@UsOz r:B@Ke5/{mmG255 % BHL6I$MBAv  +IJ?aB\M+{eQ.eMcܧޱܻ貀e#|I󇃦i86JazKD|CrET`Mˡ6pk>Cf"W(kaD/kcZ]kH zf̉(,حgZϖ>Z W^Qh+&$Q5`Ū M;7ݞZXoj L&GJwdKDĞx &Ӿ &w.~3"N$ Q1bIX^p2yP乬l Ȟw2/}>i*}BiM&bg]7FD`d\/*&X?F ^`AML>FO(>睍uҝT*e IsuD4`2D!0Jt14j%@}tobGMȥ*LtoZOj{ty&M!xɭ;wU'ђ]8v<LZ /4`Quz.wc X,H-9K䲿hhCΥ ܯk;{UIIwA4d Z@EFbqa"g՛{bZbJb;;Ö*7ρ$t>=[DZ˵kke,M7+1}č Ƈ{@amNPSQqq"Rn9f{љ<Ɖar>@8N( fjl)NP+]ć.CW M.NUMyjqB aN㯘#RaFU5׉k/S+ 6Ơm^hk`*H(U +'p¨䐪%7R]_cJ{p4*9h: ow%>$:;#Brd p͏59oZ+ZphD*4!9#6^TcRG2 qY'(/wU0;jSPjm,t3CEWOTΦ+1 +J<i /ڜ9'tU]6>JWfǪÞ3WW6Wh{%.җO-КlLirTCtaGkp7b @kLlՋ^sfyf"d##U##AN詇" "63Jh(vfD WK;~p`S[ uL em i!S["Oԟh ud!ZT=տl a5"[3V^~ssLU![=^sKPP,ي@Ƭ:1IJV X7 /TL)Y/yx϶1;={M=!dÒ:BH4WUI'6ASSy*"Uz@OvuhEPf%(oI՜9 ,)njickn7A 00 'RPt{\EL +#%/QшUj=07FypZӧ77UQNe]mWmnTxNKV=]yuܭ0{EYjb %O+"ۦDslD]q79YKE*v:"wa]+tlḵṀU@uF 3b`QE;k4iǶmsl۶mϱm۶m۶vwٍvΨ#̫xiu;dkBg54_YeLT;(R\UU5hcJ:Qҟd'N.;sOqfbۤ BUC }S8R1NVw! +M]39(ko%5vGŒTVu fbq_%QHelq$>,0s+j^Zcs-&q]:b/qFkY.w;CFJޟݞ_fh|BڔаƪUCPP; _EYQy hjA˝[!}5%r#ȣ´4}ັmvYp`sJ=jcJ +a3);Zq@sGRHɆsD(auk *qTY1س+zl)AADJE;t"~ lȸ ö*-p][9J 4yj07R'<Pw:[{Ǻ>p!,57CIelx\*E({2ǁd]_uҝ`)I~,V!ˎ>5q\.X$Ĕ21.&J+>GF[(^[{O>]zaͶꡱtéٍ1$`sdqF#غFjay'#czPvz+ƮG +$*p-w77P`"yj&23k YIŝ+θG¥;ɰuE2\Zk:R^w]Y B]D"<. hÌ|J 毎yE%]hӡG)ޅ2Eel"ZU#3lV{(KzO8LO*nz,o`Ffz%ltiBKKXbށXNfn]P< nocc5r$bfkQcВ n*T6vYv~}.pwFk.¯@nqw݃A/e=P^2c̝!օEUOsg}h ]C hP+;D1eEX(;Mhz--f%}%Ki Q +j!4jDZ:uøBH]1dwI\=J&7Bdntsl1&n t&:pytG1dc*|[zjМdX_!\SwcT۱YS+e^Kӕ.?b?r;?v!zBҡ"tBx 4n[tFl?Ve-^\}-M$d!KK&?G<$<< +\Wt*cQ~W@3:LA~xk.OqgvhJf˖ 6,1 r.qjq˵_i:qsfgMΘ6$:.gcug( wȋ?4pMM-MOO]I(/*[UZYEf%(Eҥ Togf6[,=  +c>$&tMr>-A8&+=s+e,yV `DkO,Nخ B,NS*EXNI/EIiXIkd(,߲-uO])Dh Jt  I;[ +Fo/º;D ΤNHQ^gNl!Yr +bC$i}*i&&:uVq(1(Kfe]6`:I mشv/cFB\顨ܘ=xV !,3Iߜ#C# nhM)9,D6E2,fنqtib)~dLvɞ,MɅRcKIqSkCʓe6.&F/GyqzSdt`zkFtv/ Lf`Xz |@@XA::A(cG̔IvIh}$zt\k,&yHfM!u~5o78o5Ƅ UAS׸q˭tCM?U$rh2G1^­-LCM:MTɭԫV:J+0@2/8!f5pϞH)iֻ͛H}RWYh>CaeBvkOZ̽iypy4l j5Q p&d&hWƥ8hjp pLKgFLMg3EF³Ay6M'j%"M`VGst/V֚8g nj_^[4w:2<_;˃>+s&@!s@_0.nۧ[ߡhQaa.?W O~L;!*^gL@vbi]:>SwVo5iP#1o+VgA:^ߤv98'+AH? & @H?@Nj pߜ剎FoFcȋ>#8;ofOke+z~gЀd;~,]~ +'w M)p&J0mj_0Jy7h6S8?i$,X"eKȰi7!h +{ǥwU57.ϔ{%]:CҽɗZ +!M`\S{pqTMTWjBL.СbNr-3Hʑ%YQ;`iF&=4fZ}A튐̭H !-8#ڡ?rzf%}52sr5Υ8kNȺ݇n[F4g;:"}DbףZ,OҦk$XAM?I88*^qINPǒa-\T%jŹYuV;jal&ϊxge]#N{{yӼJx.ޭJ!A{9Hv+'!&\M(+Kc~CJl0xG~1ZVPDHKWLW*lVM r:`d.AT ЁʴHK͌FIskI5+>kqNrsPn:oJs +GSSu{uwH@UJ UPu@EM +joi3 IKff]:%%,ߡ=Ji鲁G**]]Y^a 1{d.6,/+B  ly=f`Rֲ)d38݆ۚN<$}:'*%9msX -x &N@'ԑCMlB-+* aPe3!O@J Sbs"P%huWBL)"nl{݁hxPlQ<[XP淖9똪&L.+^&2Z[ldpX &U__LTL2 |3\ i-]`H ups̝__HkRU'_tUwFH]3+~bj9F7fH9ds.wkbütVd%Zz|? +GCBk%2ҵ[E&\g;p4 4EIf}c3'|c:'iTjR`Z*Og9;\T`(!#P_-Rpk}C9P{gnsf:\u MRE:V }$Uj21ek%8& II>*~ ,)ͻ_Ywk+*W18LO2jJ$DGQ )⣣1TsR[YV?s:8r4ߛ(tk4R7ڥs(|bos'oo}? !`ehn~F'Z-t;nZ/m.ПmDmK:G>mӬtJn-0uKc|=J*Վ=Kto0vLu<}sozYCN!obZ[(P?&-<1'.%|E;U+V &,:+1jEQv۞[$a(A+Jch6&bcTK"L:2N2dTEc.@ YFjV:d")PKXhР@gT$`.!q(C+ّb`aP&Mj$mSVKٺ^&;|Y% 4+!񻓱=r ŝ}4Ձ P9l {Unj.b:(loǠMIo#u3MX< 654۱/5 D w>Z 5jzl +/q[z4o7#&Sxm3hr> Ew>-Lj&xORPmPm􊯘w&g7)Z{WM阠̪<2EXK!~JhvGN)ԦI"RqH CعO6!~T6|تȱfOʑ*b9F ^4lAFw w׫Huc"e`QFV}(Üx"HKT+'H +8qYz<ˈ~zEx'*/,o,롏k'B-# +3Ve ogJtyn4b[4&AzN6{|Ύli89 κz|uRhuuRyORo6Ӂ+ԸXN׹y KD)Vj +FؕQSe{A}eCO%Ò"m?^꽪t)SaUz%|{[b(טnysoo6;"_Wd\!jܦrǦ&蘎Ǭ/%E rPR1/_tTR4̮.uɱ}S;2G^P ojӯ 5~X<;]٣^gI#q_۳%_ Vc~%ooEVHcS'{=NVv|3+qu+swOE& 0©tEP\PdTs3H&SӽAXy4?sלNנ ?k?Wb]$+n3%apV.PPh?X0!$D0R"lc{Uf,*ƙ:fyGʸg +DyZ,D8IM#]H)lG-2rvNp]t8 +ԹgqɞG@@!KQ&D>asڕb~gL.BvťXJdfg\g/Uhl /J‘>1mq -dzi @7c]{-鎳4nU`m|ݔ7ޮv6̾YdU0[ 0 Gm/"@_%KXL.8-#eόە mJ5(M-Y;0τ>O^_l8XYƞ||``j"6Jd,Ƣͽh\%0P`BY̔X4e]h! UA"&rZNj<ƻM^2LfRv[hauއa:ʩ ;d5 B2\RµkQl ^d2шUTQ)GjΫIQLc$=m:^I2k 53#mc]sI9WQZkJVQqbULpltBq KBrj$}570Ϩ[q;܍1(QLG[TjV,yыsfGxX G3~m~\=gqͲLQiO(&ׅtO.bO +yOy|s3o{O12 Bjn@agK>BqJ87Ne7aN8lK7a8e^+7p.K.eZKBېp.L6X½wVsAƹu.ʟVss=am5w`%W2 -۔0dq:E;x(afs:,iuHJM@[<5U7Mަ.r LhcxehS.|+S|-WX{ u=?wnoڴWE^ vxJ#NxQQIv0t'w3,# rj87y(π7_Daqk-?>lns0a5M^tMRf[:[n:ʯTme.K7*n ئd[NmZ'S535#5a{7x:$aapn7LsǕ{59/[:YɛUMlGp;.;̝Nu+4ErT]񨤃`ww?ejbpOWY'q7Dug q5o۳pءUwۄw7wӁrG9w#Ӂu_ܙewuÏodrϺc94'ejq*ve9BHòuߓQ>oĹstN +gZŹuŇs?% +Δs/G4}p_m?П}Dȱs><@.RDk;4BZ}DǮr4ҹ\OL?#J7-ZE0 uَTׂZN오s;J+fjK:v2NB$ X|*nbdt"ERt(Avuky=bLܪZ5P~{!+S t>W*b_dS1C},Z絸=3 ]LU|>EF$£ r lS"v7! f^\OkG"R&>d5HL@QD?lБ0m}DMT^#3jį#b̂ݷw*}$)ߪ#6pl$}[GNEB@)mFH0jEBG9_ +m5J?k]M <5cPpp*a(eA*K#(] +BKAyNf'ә[}}qEtW`@HEL' cRN,n5xݖj(iBҦ@xr$W%5Aě>ƣk}Q-|tI[sx=!'CZ ?By1Rև0ƒhT3^6LI[))a&SCЀ|:?M13 +Lγtq.G/Fu@7kZ0;S57".׻kYVX0VV.a0D7jחe2="=9S#ۆiO7pq!e~v$׭ZxVQg"{~w-q {A2҄N$b`֞GȁϝV0 m7(ԝ2>.e +0CEĜ>qZrc/0`@%ψWqAj9J}0cҿB+/0{1haQ@2aD.'L@JA#:4&$Xj^ִinYX֬^J4H g?vKu=u]Ae.5y^ ~cjnZkudӊv@wКM;z7kΟĈWgȏst-i// 7.vn/50qL;xWtaTKw(V+qDtMv8n&C~Jk֕Uݓ҇Z:~3>NS;rzB8\حRd`i >l*L2غZX?w}f !^;r~y̫a$-KbJ;݃Sq%,jQuL +|ʙ +ec2ui饄ݰyhn{h5ee{̊ LIfY?&e7pٜej'c +™C{5D[OTUCua_* ԶbTk0Qv4RvMNED;ö̅+ i(߰8?dDFԐq?EهvGӓO}gO-+F3GQ]\n+fOrc"‹h̓2=ԹZ,bqyY+(<2t,]&8 ~l'[_ri3,`{bޜIm +2)KUM +$97itϝ|y34&Z#q6M:{z˕=l'^/tf&3NR,yDZޡ^,>, lo?5((VA+ZW>-d*[a8B>-!.@'ZW龏~( /Ʈg/unTܝ4&_?VO_*OT-͛fqwaȸUftUpI8M Hr}uILqL1egɂ +̳ <&F7oǕh_+;B۪.bC(\GWdHT8`bTչf\yaYk̗Z^j8]6t_ΔCr';fXd[׶4n)y{ )u u C?0lM^ jD}g*ɍY4v^ZR_iK`5v\#Gۓ hml4|anSuBTB#nEr^zlTܜڥ %1ARV\?^Ԉ/+f6=,;OV,q3e]%Z4v}fM[pX>zΠmW4=Tmj\z]ē/$!Wz[fRR+XaRt1HmZ,3x=;(&\a{{~"4Ũ +ÝV "-Ӻ b33Pj.=bXxxFXaϵV^įȟw[C[.)譨x%]ȊWGtL݈ԚXKr$Ef3o!~dQ'ow@.ޞ`ԯ65{\],QU_R jzBg.i6eyvy4()~MќQ+AcӉAvScvV vŚcIog@~^♜zIgb +9  Ĥ 9 9Fh(dJW+r[A^94Z-ys=T:'*Iy]?mt/6pqnm|ψwPo[dwZNXfd#Ϙq=}hzzNAg^=p +0a8) ^8]K ա3d8vwȑ5H55'Y{h-9" ɱuLtM$]4*C b-A\n?}[~Ėg/cg3tEGl)/r Bg"`1"f9JPr"f9##fgr#̐%!FaާKzOD:( x":8S @䢖^zF̺p]~D92yh{7iKz9iz NF̢Jx!b(Iy_[E,{w yא Qkz ƿ-!V~~ ]qa00a3oh~l*U\Yƌ*B\9o|dN޶$|_iJZlNޮClQoWd|o[}oQ3%uao_ Y$zpOb׎YQKNI'%k9Br~)ه?\vĚ7մ3Nb _$m I(QTwqZE~ i=dX SމK',HGDhe>ad>rpGڈ/GUM ?U#z ++V˩+A6 ~Hh%A졳iхjj*B4m6I!@{4;̴kDM;Q|[kN{wƒ6S)uEAl"/y 9}YlQkw:ndC +\ {H +[c^Y_/kV-(fef7ml/&sJ<~\5౯d}F%_1,gmY﵏*tSqܽTpckD1?: &V>W\G@D.Cվ@R$PւRDы5Ok:o*$~c*;qRbB->\K<<-}t`Ka>ꚲ٧d =;TůI3ngYS-@UQp kL>݋:%QK uҹsyXxqSlZώ:S/ ZrOɄ1ʹ[ѓ8AAA!89Bi`PcifL4 4H9i\0^ƍE?\9xN,鯈Vqݹo J^ 'm d΍-MD/vh=]g$ض$|)/bKXϦ*Cn-+؋{yl3>{6U61fqVvf y+V?*6y8_}|ҁCY^c]=.|ShSVg !鶡+$aDE~Vb9SMDV)}}vvv>'8k'*mzN1B]U +&C1{y>lb.݈(Z 6bɈ9@T"\Gpնj$y["`Ct)Ό[iN)hz1QEw;mn(+;:SՆ'֚`[gB>5X@?֛5Bqw5#f1eb@{{4q30R20/۲[eCref0,ZPZIݿe팈a3fˣj"jC?Jwypm-6[#xn }1- +49C]SՁ}ʉ?UnZDnΉ5|vT~C^  Z-BmD :ͼ\(q q>?)_:W/SĈK"E]<QgO?ؘ,+nT| +IW-E (3EK%%HY같, _G,J7͊m\'un -zT~e]Z[>`EHh(Qgm\t'B` .W-1aW "7}0JVYBg0Yf<؃BԪ# Yvc6;OtHsRwE>A6dLC +ϓ. `RÕ_u ~.1B qOf&HOtyb|Jom[y܈+=l+h #6@RG`2fl^'VwzdO +wR6ݐWQGzExNШ#"h&V,#q$R‹Dh-2Ht< yXu},V/~Kv9! MV}^?^v2z_7ބ@8P +8qgۿ{(2 r&uw+='6T7@s[RgfEchMUFENov[huVӬ6:oYSvbVlt'Mq8$]ֶ%'Q59|oT$4K'}Ni_iy8eeDJ+ҰXTl<._2HQh[y9^,P)m>:(='󘳴w~9+%%pθ &[_#aa*[uda`L")}+a nzMq?gCU)enDxc5Sf˨;syt3fSe#YpX,*q䴚ݗM~TfI̹Fy=|xkːm =B#m`tڅ-tZr`>l{u.sf;i90u 8T!7~`0m|X|ྔa)lLzc1YVy7` iB}׎@eJn$L0kԋ)RZN~JBTmJf45랦 +[ept܀/} ̮Xoņ!'ˀR5W`N,Р wA30NB.Ks Z/ZqxNōKy2Tr3싶siƠB(.^YTQ`Kk +vhc:~tL8AeV7ހ fv.pJ1TOpYT.q-v+/wrwneр&'ϩQRHQD7̡:GhOzhP=x W E[dE L*'Se|f|Ov8Sgދ}[p,cvpQbFsˀn "j>.ɲC)P&4 6bH4t̐9<]yoeDI8I 7[ʃO`H$o LU +_zOYNm?8g{YY;v)Ws UJBF'$gCۼFmWRo%i5yg$s=|O -vk$2Md# fawL$+fv Ɖ3gezI<2'Owנּ}qsfG|?y3lY2=~qõzp!,wH+"( +.my7)w&#BB|pހT}Ev̂SS̀QDĒj֡ӴCN0Q2F֬ i UPA, a\Rop@~cF*X^H%|־Za>z#. G(8Z~ Wx @LC!ׅ>Us(1mZvZtKNG)Z8刴wd"l+ո.c̶-ЃPNJG;Rnt Po4SO2@C4$ALVDIPVÍ=cl6r]eHIJT mb3Jv"MW^fN8/׫SYYLQ^-@2A;+V/oѦm:D5o6Op:$i"_<@hD̺Ϻ@D;(C 6z< t#"+kHga'WKdǒE4x-a7PlkfE3 LɜuCar=F2)R-NbZ +VגH ߹AebeLMbLdT{msS1ر'.Farb~鈷6zʒyǹl*cVR} fvK}whq.# u6VBVJüH$VYa.BO4VFLQE s2v3JhVxڈ΃C\D9U*#i\8G-g'(2Ψx[iь m=VOR%z])avQbC5 "K>i$T%w9vདྷ2|>mfץ;0w?TA|/W~o/?azghQZ"W :~|t=zoP~kĦ4l&aIR>]Pr7<ßs2qaNٷN4 FˈVq"w;18W<"KN H}+Ӌ v5X U QH ̴q$u >,8svz8  k\6OޖL[G[f]Wͅ,+pcncLvFg>:+S?`}nCc'XLA.b˯||NkiΌ;I]Oslx?g^џRʟ=k;8`d*+!3eȋ@44YYҡ\LYCze0,^6c=p >YeN-pc D.i'H/ьW|h%3^MJhGO9ҡðnh ͩzi ك"A:c+MK]^ђd ͆5HR-/t}iՕLxz6Qjj yޞeuV 3;~!r3 N+倢dƚ)Z1XqZ2'4sx椂D~b@;3&uw`{UxeYakz]q^~Ri=Lz>}*ժ|D6ŬMc5KcU[zL]aۍy;%g0 N vDBM|vDI|sЍ ru>WoňfbkXzs{GWiwtt zp=ґ= bT`-//f*8?&3F'VFѩg7?^`k乫sgH8+ \@ DF 3U( c}řT<_Ь8Y +yJj@ˡB摔\z )Jv? }-olv|hUsATg6s)B +ʟ._QC>3:cgLhGUOE5c5[]*_9=Xg2V`P}^޼ۛ;8r"n&>=iT#vĘub~Y8N^(]fdV[N,#D^'B15;Z'?^ٹUJExtQi6+u*T%T`!?l0_W)pAY-Wrs"82JX!i2ZE鲥r/?,'j37s;eNZCMTdu!JQ:MErҾHdb%`6( M4Ml9*Q.ѺLK_2K讕hݝUq%4z:+iRlD7_f8'L&s4 O׳ΑtKeo Nw $$ Џ`V%?ɢg;ʡ܄Q:Li)gߔ+ ' OܡnNez5;}063Be{?eE5~)@)і`0p[2=QW4h=6b,> ,>іD,ɀ 7"_DT,:>>~T$7#b沉7mQVn%5O?w@ +9B +sН >4ؾk}sX:>=̀F0?+1*Wj]~)@v0>+o%.~ůD 1/~e7+bO(Te(72PpgݴQW ++f]mݵQW,D-~gQW<+;4bOܿmwD]]dVv__Հ?[pm =volWQCn>o|=rJCC0>o|rz=C&P>o=z=vH᷹Ct>#>}8Ug tsdjzY{Yt xg6-b03a{`z.a{:aSwnzLm|V>Iy;z_nG^Un1zoj>?콩o޷`|nrz!@nAނ 4Ҭ"'#BRh5i75 4@m(V4TaU^5D繐j5낎_ofY-a>h>vfOK ӗO@0 +ۇ|g ۇk|&U&||G%[~R!vlV`90}HYg+g7ՖrAD@&0IP(xz!zh4;a@:$N7P"7gq o9S}1?2 l̾_lRc9ATQ>ـwо%wsfYU`_.iYJSר dQfT{ƱwcF!I,Kz8IeiL1K./xb A. 7phfh|f޾Kqc6v=|ט|:T qn؂j.! 00*X`%+ݠAy5n <#BgId^y>]!P5S >#Gt Lq+w +<뫹:|QVPKXs'i;1sJeG#K-AXϿ&egvv}= Z3U)h' +_NfiC#i"̌_,5j(p*ۙ-;51Xzw=W0|ִsW"Z =.Φ_7 -d\ioY0d?jXhKZ% mzQ*71nS(=F(xQ9)YdX4"dq- $9$5܋F)~y3Vx}b=p7CߋF6nZ}7j9Su9ZeNX~XyEaJ/y tTu5TЪh=`y`uVVquc#  lMKVοxZuQ,U? ҪɆP!îZ Y +L$۝fyOg>pĬVq;[i\Mcc:aKיCnկ1S:6 |eJ!/-LT $*S%޺ =+Q2m仓N+̺ S ?y | U9ߚGe 3c\E@/1( +sObž/WLcN\+oMۻXjX56#ŅY46X!+Wdg@5 )pɦ1v`Hrn1Q';UJx Rt>]Ofr;9~|Ƴ;]`w  ֿILp1g/ l/u$J17k >f !j~ aUlj{r|B,KSΥjh DDTA9sSw|yL> "Ē׿iͣ $!!%O$UbEFF#%sEvRϯ G#Ex4!vXڀVGVuh |NY?Dꍳ_V}z~k]em| 22`)*nuW οA$\Qޤοaa`a0:lsMHD!>]J ";1A M YwHŝƋRDqB/T!K5B/B*v_Ë]Ìn,Z^T!-rWԛԹ?آӵ,jѳ__,5-rWXzƥfsfmw* R{l!SwpE-RS (T9~}Aj 1P^#ZVUׯsJ5=3:0lFW4b+\%vP<ۀSM4d "3Edv'd$:Is,g[Q203i@}@%`@ |c .7SI[S⿹{v q,Lgӽ#Xwxb(;=eTpķwPhbqĬXakf y1Ȩ}vm@$glGFiO/l53u({{5tCW4nc$F~kK_v=r&vьXhB@`䕶ٕ>Aadݪ޸U%DM^ 2kvp˧?~,UP?Y+SC[}@1FR]3=wXν"8|87~" +:;b(6[ЬTi?ODG/KA h_űYE6X1vff[9dqi JK!VJKv[w!]fo o,b=yWMѨ/Oաw!CbC#=% =`RH5e:K<%4X7MڿTNQ>#lNQL!Q3}ZLT4wLbv4B҃U"S6\U E"Jo}3Է<>aF +tB2!%X! kx75&t1Z]z5xH`]h%瘸3 f(:5cNhb D,h4ƕ8"&ۨQbSrSp8pttca=id/ca7hn' cJ|7ɰOm9+<}G[e'&66#vLdYcj)ل Y2!?Y'8)FYԑ8dK$\%bPL[;"tcACJ"HCBX⇘"@ț1P['$tݎd:عƶ +bonn;H݈5iD^uqvo!ri^w}Ԩ߹]sJp$ѹ "IQ1Lj YHT#ȘB a5jmw + r¾KS3JB8ćξSIfǓ-yr"PXQhUSPRR&ۥJ :K޵U=읎앉셍+?UWxVJD3Be =;׽w|?(3[9{ubw4֙WQFHHtu4&ud)SC৖[9zdޙ#c9GpJ5k&u4+5kEK79-7sl~L=SU?C/wo2K[ǰ^ 稖cLom?޻ԏ(yW Jl6y>Ou~miM^y6y*<[@sb[,ʎ-y?iȥ>pѝb[ +0{4>iH\> V%])"z/Á[8HQa{b_HB[^!ZHʏ>nr@JH)J9jȨA~XQp⚡5#[A}\AB[p`OAHAz>E<*jjH䀷>Ah<ʎ/_{^] W>W[ASG ;=W}W]bخ+ݻWϟ>?^ңڣ[wn>b??r_?SzLо4o{h_mDC:GS{QhɠZh +uz|;oczn=~ȁ_2cN{vFq_?ϣXMO94 >v86]asH,JI D"7;K/01t46h@ĀтOkҩ{Îhj6# iڠX+8`5կ$맲}6߻ e5G7Tk [I,H!TK[$丶S,$GJl8*szER*sX+ഄp;%܁pZri풆UT  FNGFJ):sT)RѫP+R1@dt{P6((!la]hDTEؠjHJTD/b)SbNH/fݬhg3=cYgPO_wzf>~}DE߳ʼn' Z8 5i1w3PJn*~ aO+uW}7bQJQ:|V2Z7PoCЕ8pgVM;=D5Tۀ58j96Db\}}<ILj*-H}vy3`-xF w_/ZE[QՒ?-w>~#6{3`?a=B|љG|rP\S[b)\S0m*HgZ +"i:\a%D^Vl=H]pgyߜ [Feu\aJ^~ܹxFm'-9fdh]':Gyha'`F=YDQs~w%ol۶m۶m۶m۶gضmqq{Yʪ;7pWԯ0࿢GbG&9Dg_ZMP@>{h@vJ'v@7@nbͤS{#@6+8Z%jVZ&8=\.:jΓKЭ.6jZWgGŗj&8ƑY5@CPJh#h|ӧQqo^]y?߿}aLMi41xύĺg@C馫ML˷,O(<,-:[S}@{n +U]38=}^sBO*V8ܬc1Ȼy~%WͳR)f%+ &uކB8jYƞہpPC cN1>]Gm:F`jn 2 P^O\=5Ԭ`cll^H?,l g݁[Dlǚ-=tUf67ebI?!)l@`!D5ŷV"B-$xd>At'(o]6]`3.ΏNZn]?FfE/e& ='<ޢgvPs*QbU}H^Ȩ\WW5}2MK/V> mO8/ І[벩~X~{{@eBͯ^'[Klt{_ss0wQwZ9;Utb\ p'8PJ\l?^A;7wfOؽ\Ҵ[hm_>84]E_2eFRgk3 e j/.ҋAQ-D4T3>pczm1-PWXca AKPϽu?ozlZ4>&&Ix^b^εDN^]x07얫L&OCđ/4\n~q&0> Ae~lL[DrP(pƄThC;5(s玭rCu[N5 "}d TRhO*驁6}~Ɔ $Q4Jb/hLoEK8В|"ԨF_PFG +M?Hl`+3E.; ԊI6e5S1 $x^?@(P 9ymÿ#+|A-5tO@=Z$]I3QjhWr9 k Xl,FဌOwP`=|D* j`Ocsэ@(`bԇU㉯]B1mx{-<3sae ?d4"<-A\n/Zo܄& OH&\NHH(""rGb&F5}#{k71vkFGXYzlN^s+fuA3,fG8l3Nj}k k3~Dg%yOdS\G5,q%k5iS, \Gn7 +4iᱸGizI݃%Qٞ + "5fyA~<{qym|-&\MYjl򍫷0q1.r(Ƹh.ݫkܓHeqpKswH'KjM~>Kt/ms6+X<#˹^-˳> N J{Ѽ6VkTm B㪇ϭVյ0 Ae/1WvDc%e?+' 7pӰ@=멸6ٜ=Y! +-`*y jgא5Nb.cfF1>mlЁOBGX cqk]|+Y)1@/aJAsG2(sC!t^@bw*O#S&LVP|T$U7@K&<9*ڑ`Lp3ʢG*DĴnTD3nؖ,]7'6-:n4ozgcrxozr^V Ȳ5idX7zíy5t`[$)%r-(rHmZd`+~(;kZl{_=Lt03S5~^e^P rj)+8PʙՐ,"*΅h/B + 똽CtCJ>A߄f.rDVؗ WDb(:3pO20.:H{0.4!Ro'Y9k+s6ޑgHSg/W)Uc_x(F2HJvxChϢ~V +X8T*=)spQy9! +\Ie5XYB.>/I0 +8sѶ/ tv; bY3D PRIȖ aGv2I wbzR$>,Swt&61f?h!2@2U蘰d :{jqjijUR>JKlY晧`/1!׊ыؑΒ#IHH'&M"ѫDNΘf+zdQGUVVy1$&}K1ZiM˄IֶHQQe kZp"mߖa?.yެ}>h ui[uiuI,Ð ű'~2 u-2PӼI@ +C5BD-IW +•K _8u<~ 9lˉ%4\@ڭs< +?Iʼn)BϽdɚiDM*|f#V.b GߓN!+n#'n{PɕGp^0p|RO78o;+we!>ׯp7H@bwJZcԬA.qk |_Lq"H| fׇRCP(|o6%N}`>FpctL(|Ǫ4T'Ln%EU= `iZN]-py(Ea+<@[i t>qAt\-@ЇGpsxGi1..Oba?? q B[mo)ED5)2l,_C4C9%&M-'BưL$e{&-W Jey& 14sA? d_Dtϻgh"1ȤH`LjX:4 !9DŽAQҞ 2uDg:G|]Bw"'bßںސ!혣M 0=ⒾLsa_M3ʥhǧF"{E!{R(^Ԯmy\mS{)4VyI6u47"ܞэLM)5)uȂ@Bo w"Ȗu5BA~gVG&߃q>φVWu/AW]pU4{&4Ǫ**R٣ Av p k-?d ΅ٝ~VP)229x>@Q/Y&E`aX,*F,! +x&SL9f9%d-bl!I@]9ڃrx jH"m변*t`@\`Pז.UVI +Y h,2҅V"I/y/}=el9#ƉO\ewYwۥvxq[D렇H\ S`v@vچ F ٖav . +o$vu W{ i0ȩ=ؿW 5}= )}IFxuI(Uzo؈g_ ?6 +*d>"ЮLjok$Fjv`m#/.p$r]0kf F<"iF)X9ʡ!y1s%QL͙uF%45*۳3 IM*Sŕ,H)&s%ߕ% -F8톅)nQ4X6yԹ6gCx?I}宱T>XUCHhh-[uxʋ`%lҩ-M'8zIBxZHYKR* '^it"1Q9k4`D PI*BwPOuGf'F3cվC^%d+gJ%{9dch!Bama +f:g>z\悏}4yƾ<)I\ ++ V"Ī.{G\Ft5壴/:)EcW&= =Yv#5O|KQ(j㫉;l =()(Q=+Jt vL 7bZ,J;>4t5 +HcTQ/JeZnвbNn4o FF߭6$N+Asa%TڲiC) VQ0$%F/1=P<=&1 j\vN-QsqQS Aa'Ac!D'0?ځ(MCDcG6a{Co!r.] bkBi*#2aY,[jxw 67/7Ao>H`jg,1c>ΘcMagp鼃 dd#$stK-~ڑhârPt(\zav#TzA| YPӃnӯ\Ӭ'ԩ1498޴1p,qFb,}/7y5kC7:N&y!F e["{]Sc4 >/E"MR# 9\Ɠ:Se5 ^6-ZGї级)wK4g;臸c}.c:`)8ĬE|㜷+#bٝ'Gg2\9= +qQUDr rWք@1xnJypKNG{eTvrtQ݆)(C]PꑀPR(K$HF(&*@Jkk#H$u(>k()3,*3ꐨPV +IA+mޘe|)/Md\h*H̠(I\!qtE5^oҒJiJ0cwՃRRV;hM%mVpa·U1WEUJj[ܼy]߹^X }9 +[< +r0E/cv!޳mDj/46X9b3ڼ;HVCȱĒ*I@^1ܹ!tu4]o%Zk<9QZG"߂䦶<~n܁n݁v֊)\mjѢqSG]XZQQ㯶{a~hdY v~IylW^ah\wsmh,ŶW=wAR^6 !26lHmjSݟDXes?i7 M^%/߃Vk']=5f6H_ש7I N(;qqd>O_Ě Hl\x9whԒj<Yd֏b-C>tGC0GHW6K-8z' +2iGc.L޾UAif\ȺͶլWHIK}Yty.ּ [ ^uThjٰ)x@֡P.6.e5Ew$) cG֧fS:R_RQ6EG#'&xP<Zb|::yO5&[YxXue}*3*j{ ouUjӍ4 (PRQö[(\Q3sSuT ɫ0^F]Zlı=\#-3h#e#4 ",=CS~Ꜯ?jZ.Nͻ9s/īF\<{Hʛy՝yCWҽ=v˥W [(uC9 1Bd%}uNCx[Q52/r-Àf}Gn[SS`PDA_'RR#ns\ނ:sAh}a~˔ uqR*wZ/<O17Ǒs:yfBV)qJj^|jeۏUC;V.Rk;[]dqL઄L)=Ȧz +ٻ_R3Z Y+.uˌ b r});oGCSf*HBS*pRy9=@3RE K_3yZ)9n -yN}杒q8H46"pj5ݤSq7 c{5]4S^ęp6G0fznѪm&-mfp`+.HHš\NLb=]Zl<:]xOf$/?'4kB ~L('fŤf&8;?srZ> 4  a98xďdHƜMm_^a ra p 0j.i0-Ep%$0nAVBJ\K31B`NI8FQnl \#as1\[zu]bXw1a 2w +ՙ̔@ʖ?jûrmJX<Nt"81]bzH^6KrD(,@b⋠rT˗Vʬ<}$D22:̔$*OB0gOGSNX1:B4eBDXιfr@ =ZNZep +ko\a˄TמZAG-+Ƒ\ɋ4Wp&`v&ef +){wMÍ^ qdU~#K#nK;suܑ jym({L6H7 Sꈧzx s'q{w_7nқ;v5b+U8+% uEv ͋O{$?kK?=t+=Hߗ+(Ę\7eF=K7+x{ո5yTUٝ6i!׎2oyѥg)h._"@q/0oeT׀+hԙHEgϞ@s9h^&'N~AT؈98S;۟av2fym`\P_:عѹOqxE[v 9'bXӹ-L~4,Q`p- +ԃuxvv0|nQK-1L7u:X_>^d*5yf8%sf9xE걪'L [xfyqGxϫ -O߸ !?%`meÖoHņi yTn>Oh9-ŶRvC-6neB-k8nu>*/ZW m\O5|* Ǧa?\BW8v$7 A?ж뢷\B%B! $j3Q-_%SBQk4 YWd/Fø6ZkFԆckCQkm9Wd@`\*V%S-y-'ibu*=KIX’ dBS-oH-(V’k.)g5I/<%'J n +ep$"X|@d% +11$O=_aGfY W^:v6)UD#ZP0O2YM-7^(77WWW`W"W+W,W=6?]1f\0 ?NA6jye[" ÏHUۀ!""۟2r cwc_!12$!fPS8$LFr( ; hq&FA:#".8JvT~bNB;DN!9WSMiȦ4̠E!ޭ:=1&xa3:TDl- [Eq9Bux1;"v8樟`vU&d aTV%dʼn1+3KOP!bb"rv5o|P'bJ)IbU%r#t;=#bqdjA0 \m;w:ȿoB + $vpE-&%hG } Q(`+qD}/a/h[E +!E}Īצ1~Әm\6)d Q-ޫ2dKhEoou)AۚmnVf!QQ6_C|צ̯Α귖@/@G7ߘwt5 +T" P@5,ŰI1Ԡ@MJ14'2R __B#hB#3 +~1 Z,XQ'W{ᯀG";jLrjhv2fHuˆF&~ e + +Mi,-.(k AP.nZ'w4dS_},xG=E҆[Y{a4|@̴(-Ja%/ȼ^]ތ<~58]H]v`^$^(^0^4^8q^Va!>v4Ha.wao\1twAΑ$F1n2(unc@kľ{u։Fl(7ٶ(\tw,w@?D.iUSSsk&B G%\;ᅢۨyl_kf<›~9cL#ffCq q[Ï f,[Y7"q_;xY;~ h{4TwÃ|Mw_f&vd{m],, m !5-wハPm!"6JPJ E[I/w^P1!f@PQQf#N:@DTEU]:{L_ooп +΂hV]{2fhW@>Q,i:v P[4+®#cmMk [V]2hZW@&Q,~: uP4+G.<$~,d +rP'x8@p5AB%" Uz<WppN ƝҐ׌7BwL t\=E8DTCF'c Q@jdĺICӌ!>v޵سZ&zdwˎL#ؾJ'`q})$PJĔ imd<^&%>򲀂e)*t1)Lj3Ƶ9P{2 4GO`w&^UDB+>{Ն'Y'shS K0YFB-pxJ#Ι +ϥ s ?3>>}} ?ѱF }`}}) >0>P蟨蟸\@8%pHIضM4I63 m"13vXU6DӨc8A^ְ;QYInZ[Sqko꾋&XczPRh Y6$#Z-t3(Q6!u5[&T`%%['}yiG*ZZ+YZMq`-ܘ%wSs}@@e +kxf#y혚b* ?b<zH9 %~ +_K_G)O # 3'gP_Ϸs]ҿ韕?`a +z2* x@jĬZeh=^`Bi%XwXke5i4Tm0m[ȣԷUaY.UV7pgB%FЈp50B +։!ht  ajimR|;hfRE.a5K?j k)Eh8j)qtBcrXXs{G~_V>BFa|ς^ +l14]:w~&s <=~9 ߗ/U4 pYdmakb(hakV1d@ykf;2Ǐr~2?f$22PXK*J +3LKϥ3Q @P\t۳Auշ/CRLhUt'ACj>YKnv9n tL#H&L}"#u=~g擉ppsRiFu]4vCfR$A]Vگ|fx2oDI +r1/f kh#|}; DN?Jm@mr̪BViÜ⧺j*MAceGD&s|xu t +gkvfk`Vd =5F# v}~fuuDJ8%hv0}RҽH*n'6{`ԒqD2Y!Ւ*1&V;K焌,:-Ť}rq!FP ]x /D۞Fws ]+n5Cܥ&{b +;&]왢tQjsZIB$=LyKq[S,U,Hva gܬǎ#C t,)Ųiޗl-q܃E|pZ SJ#q-$3 5L‹buBLaHsD1pª-ga!g @Vmyfu]-4yU4#1yX#,-ꩱtKs'',# 9-oq(jĆtҬDpm6 %W* +Zk4Oڥ~}A~yY\dquRu:>{S+Z*+{YzaPCui(Ÿ}^d^%՜*m))q]ĻS}Dn y480}vױU7ͫ%%5z<˧^Pޤ.F RHo%fPBW>#hPUt7׍V5YҗX<|bGl=3實)iRpM-^6o"|tǫ8.`be7h^X}7ANAJz\Vc.󀔘%ɄTT(eFJ~qBE=#θ) Q e4sͨ'K蚥+sYZWhZPH]5.ʼnv<ʘi" RA{[=OX sVլ +\<B'xBz͚Q=# %JƂ ̚=#+&AKX˩5FȗS-<,i,<FK+I 21Q U<:Cp/h(#v$2Z?pܻK Z(9+p*M,.1d^j޸Q\?`2F((;j7\W=9 IʥD]V_Q( 0y<,jO\> dՙYF3O{NέȌi:jU|9/Z#wPetuI0Ơ%ڼ|9qw+7MVl!*-1dmT3ց8R4qf}`ɔ+L<׳Ƣ)+nJyc/p;8ڒ3I3%/ЬPWֽ8yN ̈Ҟm3=KP#=K[GAGSPǞu0 ]|9~o˔NmAr<(dVH?p/F[맩D +4:RQ,$R2e M0TDeGb)0QDMzoZ^#[ w^A1F4A~1hDGkC-t**cv풟 /YEB3Zax35buyr9hq+zmm"]j#'JӌSpfr5l(SU0E*0Z~P?b-FWpU0 Ha|:'oR57 Y a>3ŏ]2aF@mXf@" EcRB42V@,a+,5VБeO2iZk K*%ـB*-WP,B@[kAoO}᪭O+y`mE.Qqx#jaܕ/Ý+fd#ed{*7Π`Dq7Xe\ \5;YeZ5-s2 ;|tD=!ݲQJ=?I9U5$=~P&9?*1YI]"Uu%qzZR"'UGvNY䃐Tdh#`<3;󱪚Kϐʱe*)uɼEOX%7 +m +VECvɽvEO*X%to, +1 "O! 6ɬ5 +E+f(5ݝ߷d) +5 +ؿus~@kZ{&1sbg +X,Im *1$ip΋h&iOGtY\3$YcDyRxFЀ?!HI"UD,Ej".45]* [|ZZZ[iNL'O}>wOOwNkOn:VxQ +;yd2#=y3OH9P6 ~ӊnQtQ ;K2wX >t{twX潜Q=q#J^ɭ$~ +wn?#yH)BoIBF{b JB!h%8=Ccc"o,.\[Z;̼%^]3;x.=85[:7VWX6:8)7ipF@ +N-OO/tZ//_Jv qxdfl5%T{Wuwn4--H*V(]vX%,+ƭ2Vl_C菈+^">tySi_ΛfUBR5vUj@7kLmM!Vl=OEաд6w\jbkV>un~vr!Ao ~pP=UՈU[Hi kd# * ~pԽz9OU- +>1*5D8mz~%']ĪpB@hoz +aZð`/ÀX2{zO6[aZ 7e~xh֡4e!E u&ޒ:S5FLHRAr(\ M֌"87\t~*gC@YS/tͿ, Э.ޠRkM|P\[͂+t>yXkivE߭=*#Cn,"o3Dzvv-o?ڕkBY\@4 ϘzwɾMmWl&F +̦ė3kc*;L5'#/#N7ǣ8&f$qH?J?k[2iLW6ˈ =,mOg>؜Pc38䠉? ы I!2?u?0#?S]pF=`l+_eֻs)k 6\@r!FA +ܠSjO.h DUyx1trAʨa4u{}HQʴ cۚ8w,ͧmF`i3%{ + b3gZLۥN;g %cӀ,.m: +4E-Ӹڰ2Υ>١CO7D<"Ae 5e-/3jGȑJi%!e|: b˱,,S^q{)5gNڬeaegd.`|g;놲lH7, WL#]zè2s8io3% D: ߦBԱ@L9d84^dWP 33'9h P!6#qH*;6s'Hr4QoJ`܋󏩨q˛0hYsWRO'¨e% = /,KI:3KdkGh5jh :Rkp';PCB/([E'f6`Vפfc ,L&iN7Y~2iTVrwNG3"J*F!Ē?F!,'3ʐj$Ҩ68 +f |fa\ѫ>bЗ,p%s& B.)0dK~`Oߡ|z~H{C㿋lEGF̒(|u~@u@}Rzyt*h{wrT{xJ~1@?oeC>6EºX08+-2DŽQ‹ U~8|:镄`n5YnnV{,X Hgth2Y+{{N("a}{xJv&j%MȆ`a2 T FTbVTq Mb))D#LQժ6QpTc|jO) ɢ9qK+Q)_?\8Y"ת=$1!>/֔;ʽyc߰}1s>8D?gEKR*TQ]lVKZToMfEiT!fNf9]dO3iEO_Iױcާ$ +Vi/Hީ÷Cؓs ~^ i?`보㵟9nHABY%s;95s_SVt%5-0Yw.5PDV{:Ġ*ϣ24+<ڣ0-\,l9+U?ȸAl^kݩ3tC&{?7A; C'J^+<;4JK/|sѻ <.,,J,,$h_E#j[X!y*YGHt*E!XUHrbB/KdrN6|#Y&K2NiOO H#Yh-%\WY~k5՞ ʩUc+= xcsFdA޼O9OxWej9OqEb;d+KNOJ'^I`)rmNq:rO8scO+M6yJO+&$DB6'^JO$X +[1SCHݕ>:_2O'fGIzw_zA4"[)n@6-$<.&8Ww/~oX}^4?y``SvSh@'50z`y &O>6f+Gהsך%:[pչ-GEoy1虄van{u@!O @ OP(T;m(ӱPb ODA OH O: O0 O( O$ OA9Ke!.c09q(BঘӑifA/%C1uQ,|u4 +pi_+';Hq#/%Z$qEM[1,N1t.RZ$\!)h'pcXX:išUK;!ŞcjqM7!cZIm`ܩ3| 3YڇQ +qFcۅ|܃)a b9oڡ +mcv#4 8Y+8E"=Gg9f9P٧YgS\nf~GHhywj# +n^lcIeYm}NWtp, #Cn~pegvBiț .>&ߛIDz %8 ^U)4`#:8, S;`'nn: ;m΁kl_I4 ?_I^o+iϾI4{+_ V/BF;mpOPݡͳ}}i{Tw,o( 㜋:EӫCl +=bUKdjr19Ue}sۂjg<17 m^esKh:B * +NIpO~_^ecfr#g~JL 0G >\ )9U3-KqȔfyC3ɀʦf>JGjt,:>.ɶQac)5L.5vڽ.OxvT6(3vX;͋η' PPV  wP]phܹ:|g$&|/OQJ0j迼89swA%$D/L'NdIo!;So6 X. ~_Ti%_ 3VN|6F~%۽lR2K6$Ud]I/Ť D ,\F:ԛ.l-}E#}Uu%5Hy6aH-1%4j1Ϋd3j\.2ˢ "Ün\ ʍЯ[7ziIWr˖Oצ$1;T-2@X)<ʭʘlj$+/f[$pug!m`$R^˒!P!r '{L#/Jt0EΑpS{R](r:;^]RIOO 岜GH!2 ׏]t$|DU\x2c} &"P$K7W沝=0necTŽ 4j^]KVv^[qdAW]'(t(CJ= bO儝t+(l5/9_oV`g]fq YXGf؟^aU j i!妋 %YՙjH Ȕ0iGGG;2_8]P8݌`00#TZd$9j,p&q J+V"geh4bwG1K0JjέקUQև3Tb|p6ʮ2`v G_|& +B0t:i0kk0 bFc4NjsK{h=A Dhڰ4zDH$KW#6M/h&۶m۶m۶m۶m۶c~%/uzvP=]["に;R-O߫k6#}:Wfys];(30uCդ7,GC8c$4̤ +UZXRpF;dfger589KTJO@3Tj BXbG.)[ͰW5#ʋfHV x}1eey=.܁+ȗeñ'ed׈aP3%>jv#}vCU v 8(*1)Y1 R7.ܾ(bvټ!MzrS=2AΈ=k!H͛ǶD"}NƒFoCsS^m\B%%V5_QVMda Zv_Z$ohgpUoӂ Pe^# +9 `yab[ ,{HU @IpiƆch2\ wB}3&=vTHK͙L¼)8LiIA~lsNBY7=U3&s|ߵտP_LolA|Ob3bՕ w(ZEΊi93u$]t^Zǭ!Z!۽X =v3n]`?H@ +Ru;$y̆;4aV["#m}r?UOzq-l򗋛ڙ:#utRGX>&Ȧ⊉H,nX!BlL&2,rsdbbUs6Mce%~/3.`z[eSǞs[w>Qmgr^t ,sdxk?h{čnᏨxk/ȗ)0!h|{6>C$B~!ٳ;/!243lQ3/H 6a^D8 HF"mPX2B!t!!RyC¤FD ~G F=G2ѮW'PR%2.o2raL>D\APxqs\?Le!)6ugl #+#(+VVS7VvV=E +[+(_ں2G4{c{]u\ B*|*vO,p)@jg].PW>\&DKdU]8ʧ6`䌺9.r[Gٗ^nɭՔk σ%-o^w-zwN:§áI>vMQ^q+Mh.x錻GoQN(F`Q_u,Dw;U,to3kZk߁~W{F_`K2/Xn +0F\V?uilԃXPD9kuxU3{.VզvY3/";ymMxx7gnV &sGznv!9i84x[%^4ųgfzqp6Nr"ͽyeYC\`E6ї6/[F8ĊJwW:7C%]Udz$MZ?y7OQBv~~cFѽ]]!&QvW Cѹyh ɒ=| }ilyUME\B".*\Uu]|\P7Ƌ9F#Mn`<˾GyUʽqdJ2u0XEx7}KSa!mD6j^m/zEM +P")4dD8ɇoԺ%8gvt2+W$M}.t,3 +h YJ#13.9"?y%K:y,1WD8qe@]vr;dO.4OQ}?B0愨=uhE Ѵ\hg| ȢCt,C(ZF [HїC +JhG+ +PΑF}"[oQZ9萗q (Ƹ#$1C3hDBT*ص.Ct)zf5C}m+FmKm>{!ѸW6ix#4bC3Gt:ֆB#@V d +]]B C՝zCw +Chd4۔Vջ&㹧r|dyp‡ b 2t `ϗn{i;\IUOM\E"#kBK]n1cb=[c-TNoXlDzRK:&5N*'q쫽g#}ʟG$Ð nvۈ]ܣ,c6c'0Zskbd&&6ɬyff! WI-p[!wԇ?jdg[tFM|Y*bOR|% #zf><{_PglL^cEʒ/%\}TWWKlT9.PV9R?&VWb.a1 S9DTCRUGAXEGdz@ + AQuSSؔ +0F/&IlI~D1P66 w%).4,p٠KzIQO}阮)nTwQ,(V{nAu_|kKe!";c~{cg<,C3Nć Wt dͨi [ĞM9>$M_+vu!""SPQ0D #̂eDM 9&DZiTMT/d1T6RO;IzC> +% +UQQZa-cm{FCJi- FLj&=c \H"#a8ˆ&|=Sľbq$B,oBͅvi$d6.i[m?ih's= q:b+44:ZAi}Oi**hş,ؤ4^RLAcu +4wXb)mDKjPu=F&jiT%zEI|$*٧-I(K+~'& 7F}RDsgd57E9nO8мBKIwR/=xhsF)sf+s߫F]@̏:iΘ~Ϡ=~T3vgR}Oq |<g\}m$8c=bQ߷Ȁt51[V؄ -+]F ybTJ|?"{r^*G%=mQTs`1 8s#9ړŔÆaz" }|a`/Ũ Z@'io.9|nt%T ///>ykNmG=/ox~p3fB˂I2ii·/<)>Ap??>Ѓ0b@?`^B/rk@= :v`+=`/FANa?]vn15 i>q@=<`cMĂM`Q&ʃS e+ + / wEQ + +@=1 asIKC/hA,L<.-6Zdl$CvCQ!ߣagդZenYƁ۪Xvkq Ŷ 0 D<@"Ɔ'v],n \`Yr?3a?Has8Ǩ 7M8r  , i[D%pc)'OMO͝pyG_x1a;@zaقr݄ +?$ybnSo^puiYq4<% e6@M^-w\}'|/x :>o !+K~#r~SW+Jw< +[cpfI[LLb95[02/Ѧ![.Jh4/gjJj̎Ejq[w ^d6Э=zİE/9[TjtٝXY"_!@`G;Ds> ZpNȪ/ +/ +|`bN_ ZK4nzh5nffvr:r!2'Ks9a|MhO//09.!/, ]X;bWF 'o)7\(! "жV vf44J{ӼSçp\;H%/y*l@͗eP?(2ë{˗ K Ĕ24C~X)#r>so~"*]W4cVBy GFֲ s&{Mڳ+> 'ˁ+!є,v0'}4eg?e% 5YOV*U12M-)FF)fɝjZ)WeKJj-c}vT}|f?E|1Ѓ?1#tg؃<}i*jg-hqH>5:;;;/=f[N?8smHeݒѫE6Qfԯدb'nࡂqÃ%u7Exj_܂T.Dc7^7ڣx>?5e>FFF}j2U2g>F} + +~AG%ٖ~V}T͜qy_q1iCÆ<->LG%L/  +:&#M=~T~ +j&N샜>|p~ +A'cOCt|N<~| q'܁=ImGvfr+ƛStsRܢf5qSw#\gnMtW;bwW;XqNu2NuRN}b6a2_@0___L)GÃ:_C__(NҩOЩNQQQQQͩNQQ3>Q&>. }N.~C[IHT*J)XFl,酫X x./UP]x.UAQ AV//^ >˘yk`x˳-]qh/"qJ7jȝNIxCoh-vK|[=^93s;QGe޵DR;TQ#w7p2x2wXjè nQڢ5Ej:Uu(k֨DȈ>:vu(^~F:q%hPEOR&Yxhfv|壍ޅS-CDEsFݸqSk︀/0Jl(x>ݘ4sDr{%h::SKazZW ˉzrU)CW䋢za/.qBCx\/~*P_\D;0A88p!H/<Л7?+hPv_QBQʟl?[zW|>W 5أ˖Vv_P[r_(|=w[!9`:^}^u?d^q ?6}@ꀜ`@]' `>?ܲFO-`>m%NB- n >{99jqL&Lj5Td}˹Ƨ9v1"%SvSݷ!8y>`P~[ylQʤ|hudkEżn>ɒ7=ҵ X=?YųsGBExU=ZॵKQe=R[ॶMGYbl-KEMVe=\EOᇢb/ewVb[%G۝> uTe4XukNՒ[Fp|ɍBě"x-Nj{w $lM¶- [n;^Œ_n|-[~/,˯C2 /,=(A rN.ߒ j@zsIs庴mK"7!AA 5 v c%& 8Bmat\ADt9⢺A_|U& _T*W.1]e>Jk#]plelQMz / +ykD#](zD^IK<]JFOlS+}oKݰR^)ڦ+~ƮzHG u\z_yoOl\9>]ŗǟSR+} CmĖK6N/}Ȣ>wt8uh.DLr@Ҟ[T·Ү^e/&GҬo=DngG|vƵaQ+A#,m 4fF쭵6j"-XXN2Ϩ8T ,aѦ32[]LZlTJ$-tƷLICV0uHN(YӴX[?E9Vhw)Wc_YsW#lpG}^p&|ZZx`f6lĸdjk.=B 6 n$d f!L'T3R}_277@evWjsA]bL\T/o~3an]ɨl %5#0H%*W7o©Q>\UC. &V{˞EOˠja3*s4#>G.m4(Yg3QY#2`UB*"{…wL kpZZu]h6N -}&GKwCqM||̃3)!'R4Vo'wNsbO9*|&a.РBtBT2"d\Fetr_[MiWޜV9r|J{12D[ ['5&*z\1!B~Eg@}tus/12Y\A;w{҈GD?r>/o9iFl i?xMvSaskjq9? Z++T_=ܨhvY5\Cw7رGgN~q\Jp'1!cX 홁d\YaTTU5HdY9KT|k@MN*֊wMbʺ xN g/).\[QD<1vdAI^])0QL1xF~âNz2& ~CVЀH]*L:/PVN: ?n #4r3KQ`uKl;_J~j~jӮuwq[T;(㡨C4|g6%b74)&|jvE;Fu鳒Q?؞_'꥟CYWSKi\@deBjd|%*tB% dK\DJ|+JzElx,~a4C%gJ[LZu'xRe)ō\im?-"DcBܨlЫE 1K>=P& DLt% ; }Ig:SɻzLJɨaÅ&)̓wp_=]6,sbêݹNJyuvub}.‰(3J M6e +KhV 5|8=XRƕaSMOZHCkH)_|aOwӊL>l}:lbhq0TO-:~q1P>aD= KI& +NVL*!WOS}@~tҬ*yRaUر=ﰵ[ߴy1@y.=}b/K!~ޔWzR ckG_'}}q<5<.d +£:Ƽ`/Ɏ=% .pW~C})ZN1=@k~Zue.싰.?qmQwa^EоMȼ x%>3 b[Ew9%=}'ٿQ}ބ^\<9Jrnǡ̝+cǻ.k5-k(jՌD꜑9(c<<$ {,̊+ȏҊ Ze+h!NrW=aKZ+~7;ŻQ a o+,\ e>[ްuJ,o8KM ٓ1zx1rfYS rb% 2gb-}f⧅ + oIv/ D@O+\bCB\bJ:Y3!H[tʑ#m>|tTO>97ԋ_gRGP~jY7˲_~* qbM +=pWȿ.-rJ)Fza3_hSj9HK-9AR Rԩᶮlթ:"fĘh&f +y*fle ,A c͠faNgKyW4;RTc5hT둬JmQ@}q,\GBM}%D5j  Z!|bWpGE!0n5L(p6 +CaN NpݯC Xs#y^ NGzg1PW%q|Ic@QWr%uB1ܽ6Tmg2^P _K F_'pPsgn]ݑ=nO]i0;`_ۣdQ|&TѮ # +NEƘ#=b;4D;+c5GH]y#xXQ[$#[{#]=z#>uQ#z{и>n'qB18͞ƄCVq:,@V8DdASQ'+)@k,xN9$6U.[iA /YЁ ¬)A5N7pݦ10__&]U62`p8+Sq}ݙEZkʠMUr(\s`a+cFUfD7(/.D]:( .l6.P)R.rzC8֨3zMѨK8+h@Q8ʈ"p,* $+X ]!`r*`eW3q/)ـH)]>PȺTJ^ SC\"/.к-.44"xN<=Iat*JWLWh=DaV!XlF&:3?,ǙAP``4B"PF, Q<|zR`nk3œ\qyi`j3}>1|dQLɀ}(-S,sG0}lM=nedBNdfjYdʉfZ+[L}Lh\D'#dZrB_ +nG҆4Wpe1*6ŢT]aS!qCjϲrS~5[ꄆnTZMqR۩ FQ/ +jz[Tx&B7<2m)T%> W':kAް[_Wx{-p x*'#C dqAҸi|X*$'#L $tA?Xj'#W ,ˆ }Pj,& '| AkO'_2C[t1}o\B;J#h|ڰ'<Ƥ~` w~#;T֠ɠQ+CZ"=#C%}ӿ;-0rWW,7,gwtVjA~}Aq ?|+}E|MC5{O$-A~{.w$A +ʓ}G+˼S[/z4E +VB=˨*KEd}hE/K}X! /aRVWzV; BQ-?$k|?i~gφ4 mҼ˼ЗaF[qq+c<|_?teZz<_]ߧZ?d?!hF]pQ_M}i?S_r_}^18C-?n#yL k/Q&;"v7z\vdx(,mNZ'GG +&K2EԱ +PEH"%cE\#"[sE>ԗ`rvM6#G iD3H$QE5(D%FD1476kbm͍ 37cm~mw\~G^[T6 cv^ٷ72{cʳ6/c궽k:clrj4J9ƨ~F.M~97X\fadu?U?BJ.-7~鐿Y/\o?geb<[f{&0%y2g$\)!XoܳGtL0OɑYZi}«7X/bB +W[jtYnwص׽ecALyu{<6GTͻ/_a>rYO=iiG%㕄p5D(⤮E{9 8,?f_?9-.?ZY>hʏË|3> I_#EEFE{>]V%9-{#;#EsP#=GEFo{K\/)F3Eg{'KvY$UڵW- +\8cSk_|Wcb&E`{hY/` /U걢|wXjdY{[.ϗ̾eY Dc%9*āfe()Y؉oSNZCgHR, +ZwpoL|j c~ϻ = Ki7]*h1U@gRspcJmǦIm-E_%u 38euKE90j]eF}0#V6,\:F$TJTLZ9wuևL)skV| sGMx9x$Oq: C 73NSlGN>9%f~~aq[D74)1FI0H-Nvy1|ϥx9UV~ 0Qn[ L0x N is7Z7“uu7"3D?_+O.X7ˊKGgh}Bf"uWWEjF%0_*r_EOKFևy6|BXg* ?1UL:O5Hh4xñ.'lj +Tښ!JFWg!ɚ5( A׷LڞI Ql˥.^Z+\~6up>WSW|?i^S_[W)_wO+KCrL (E}RDV;T. ז#׷P.n +u8TLnVCK$s=  ҹVT` B%2+)ڥQ!=ۚU1#(b ) +3^U(_$̑Fg/M Gu ̕V;d`J5wB>$;RwJZe:)vWCI@g\[d1y5Η{О?d|)$|fc'ɰ#aJSQ} Fg1"g73ѱ:5/?GWrY\urᵪ08,ێ=c;b\)kLi)I`r2(-&X֌WbfUrb.{ȬؕNވ +e.*k5df<~nβ*Mv_Y/,Œ^T5j1W2jiDvG*ِ1Z9ʈ_ɡ{3zY黔E~W751@sJòN9ŵ\L ^[*4ӳAq.kq ߀VNvc e)G3Sv|0uzbkYB /(z-'# IIH5zNr"=#-A'Q?'hLɒ|̷>]nj(SJيν{ֽ0= |dUђJ) +^ϲ؄_b`3&mZE44VJtD]R!ɸI PfhV-PEyvv.ԌvaI f!iz"r?!:U JRqZ"\{%R;E~~s9>z7RdMu[lW*T|b !*KK^j"|Qjts澪YD0ͣPSx.LY7o 5`F  +H7z@'Z h 50cѦyDaKh5yY#q Ӥ0(]z ^!=J<h׻swh΅bǹ$-x2bj:մN[Q]5L2kj&)SR@L:3R)iZǔ i~a4ɔE\IbVVjq2ER]W+LYbdJ7xugjE&i=x_r"Cue+|] ,v+ _>+qsZOnވǿ߈'F0x>QOE;hfhncv?yet]yO s0s-hO]u |ܑ8R"N~YsM= sܒ O>%8#bL(cd{ H./(rOTx7OlisθoJDp!x=A;ػAoeo"w\ +)Ħ )*9E:n'rjmaF U/mӈT]CS$TEvB"o yV9y1˩Y )<ǔVźy9)>"b=(Z%lM9mrʓ4cS])+ARk(sŀ,%)uJQqo)B5Lw8N5:_ĝ$@Ǿ|;S`d5ʫզ;`eX0a<JĪznBRSe#$kĘbMXo(VKVnײ""sO3FȦ6z~W[l$YFcxvffk;N{ XݳYfVR[ %Ʋ]~jg7^j꽣b3{dvG3Iӡ{I}`CPW'K>w,EuB5ReS5=zr*2S0ڒfW@ۓeu"ꃨ;̾ȧ'^tw q8Jq"qfا"vQŠݙmf\҃n^u 9Аz~h-*<~q Y&cK/eSFBBwx卨^ nƜ)~g^l/*. 4c4 ]ROMsBo&[}%5pnç-Zp 15A 45aZ n-A!L:5 [`㔀bKP $TPbYP5P#iz1Uk(#0;̼B;KD _F YƷ+ q&+PF*53, 6P>,2D7f.kP L{`R~%6 Cg!Q g_A H8nd7F,\ m Cvan !C|CpA  lPBp  1 6 ^9 BxcNv!n7 0 4n9xlx 6 I^ ACz 7$^^ C~B~B~B~Bza@ {g ܆oyp01_ 'q+Ȋ0Nml::٘ +۹۸Owo&N|' 3L1'p}!]? ,;[ KhۺBͩ(4AimZeifem=fwè,O9ű^[DЪeu4J6IGzF(')J6F(ҥF(ܥvzowQR7E襯e(m;`[X1_]:xّ̠q7re}6m2ᴎ9̭d~A(J2)E +hΊ9гBSe_1WŦtˡEA䋈Lqlg[o2{Mci];wsDx_U?vB㖏*p,'Z'0ݮ͠:õv6\0q ՜LT:C?Qczc3wNv֝ + e̾ԣϸ>LY2su@?veq)3+1OF]l֕DAM^c^`̸ׅ]`Ӆ_ṣ)NL/+J ?viz :v$uњ +voMtpr'a(FUJnk@f E=ͽUm 9օ}e_9/v^cUHث:fu?TznvG+n5luf*}TuS]1tTWL 4=P_S VӁdO5TMN;î6/OY^j9W%aC1cJV r≈AX"5~67Vm]_z|6gAf\R3Nl@? cn#ki}k7 H'h)`%(%H'h_|v-KAIkRW(RJ`5Ѧ\.A5Yzck(V`2VdY!Y'CjpRI3dR9}GCt7Ȕr\ +Vз9s/| +ZH +O/ߖ)aI3tbliQJt![ leK6:1ՙa~L CȅtyX-6\[ꯟ KYm̅@EI<_ӑꃊؑM;H.ݭ*&)8ZGsRwǠ֮=O* c0N|NSQ;YS բWN%vq\Mr$asdtc%Q"yR2ّu8Qҿ|n񅨳T̒W^ B[~L4[~AY50afwW?DCze!۟lv ? ]neڈ;ROBlFD~*8S[U=Md:E`BlbMZAzފ+X{YzS.jv)CiZ]S FĊFIĚж|FV<_SSKغ$Hhڢ2w͂^7G ok!wdX\~CR +Ԉky!O>3gZ!_^kzOÕk'g3O~gIgQZA#<qc@ew0$jhn;G~yjp]ɩ(ڛ=@#ǶOECK >a3W]t>n_;ercAJTӓՠ&k[,xÐɃ Vd(If!jeUrx7=f(_`dDOH8p8@Y/!DCju'spBl6% + Fr{pYJ"K>h?X[ GKSTT? vpP,"1N*|+!M׎zrzkR%F|S@&Mu|[%SzP{?kLe|bQ : ?h #B$ Dh.FZ8%'HJ*dk"<GTbO)hGv:#ԗp+SI3,%9܁ g,gN͇8n'[n`sp'Mكr'Ӽ9p܉xu'wݙ~oɮ/LJxqK'a70޳/p%4R\eP:}eN>^`X;nW-n>͇~o e0s4} #Mw|'>MV#X=?u/Lvf({}\=smÅB3~ݛuyh*}U!YמfqvYGC[wK`k}C,41#dfFHr1B;fB^D,̆L F8LdHPڽ% YK.=SX8]ȏRC%/o7#0=ѬyM;@kzM z?̕^@wfQΟ.9bO lǬn}FD(?RB.EyFVyhFSiUW)nWy@h/֊,fmGٍF]Dّ'i *-mGٝQw*pW&m󉶻Qw٪dHcn +Ks{X?˸7d+@ r ЍYLs48\Avbh=@ %lG6l|̆o 7W 'ٌ~| T:"xEp@p4aN7S|)<N7-S|ck) {F5+xG`S'tӞb ?=G#3mH<[Gw`(,Ţ\w\t•fϷEo?#s%F61hOD9F$obQŞg!o0|Ltv'ip+8 Q UVA+J}ƁR%D0KЕZGυ_](Yd\Yʅu ,b-B4eP1Q-^- (S(Yl-,,7Th*L)JJV~H V֢eJpy+*G,reqem<"9 5ۨzE)q1ωֵ+MmU>2$NiXonߐe&U\*GKKVr%NԞ`-^-c'GSq᪹pp._芖QsBen2hhhNܓ JW>%p˟9Jw0_qEɨ:P#kW;U}[YWA3(ZCLE{,Bt{K ":{cbCͻU} 2rNy{BO@leS3q@Ȧ$^gPH:,1ۮE+Z&Rk?2~8W)/Y.dfؤtVwydRgyFH< n5%~40^ 1n|=E Y进䢃>jX̤jiG-Qz5J6(M-ԋyaGdNe;'j] t-SxVhǕcgv u]̢QW u *;f9:^C.d!E'^]Ppvg!oW]r{!OxguKo\%>qPhTD};O=Od=F\jY j\5fw=fMRiKzp$Of-Gh ,VPMV(锬"vʨRIVY2jنzwoe]O[kj}zgђ"L:a|S&sK6poDƞ͸نXMUnacV} 6m86XEFjZL+/ELn[$.GyS.nLn^NVrvU(hclKV]Kôm^}[rDb}u /aB{m|.Z:]*=NJ2`_=ZYZ*J'c^5n9^6V&*}񘐲3"֫;?נ"}y*5Ap Db-\VC@:_H֥qcwo`=f= lb1ԠqU0 }rP97; #^Т(Xs['?feZ u Hph qN>YbIQ#t'ΠӯG +5g4qZy4QlxhxڗF9wXN<3|.5?SC?CA^໣OR?ЩmUvZ@4X{԰/0(',5X0W`0Xw 癭gp>s +XX@a (Jd֜YR/r[f)kx85V'S}g%hɤq)1"9Gr.FU3=8ӫJJ͛Wb`W>䶀[R}ۊ5"NzS9)Yg.29^==5C +Ǹ>l*Z9GoeIҭ^a2cF۳4 %uux_y_Ǖ+RELYJbJTߑ-!VC_>oB(9\uE1  a>QWQ]!&jQ?%GTi%%$["cGg~"TS)QZ_ߚw'JP"S>uQ4IAUtDA(ӂQsP&mFiwDPصIQoɧ0Davvq$G&Ux0i;" ͞b5;úpOAްb  &mfb3.2^,4%7o4~mv$Tdؽ/AXS#kDv8ՈZw5)ڲ8o*e\:SHZO`2ˢ~ 8Xb-jw2ɕUP5m vy:d-X -W$ɳ1D2bj^S{.AQ|ć5{z凫 3J9J ePzq=aa=; +¤=AUQmTY5;! RVvda{ +ʕvqX|12/>`}QT҉NT{>b *J<)8VXd]\BHLД M.E>"תM}j  +.>MTugUYO,B83֩L 9MDr'y+Npf;DM9UC~rGŇGThw9{*F)Tqu5*АaD v~3-JU<<_ ՠ鋝 +yuD+ƉrO KR)F)D>83i6F~8ғ(z3 m2N^6"l퓵bnڵ9[-Fx MA2Z^f`{̆o '[<|X6Gz$PW9hԌ#6"Gz.FrGr9j|› +%%Q衏; }XwP'uH{0F }8^HL|v a?FҊG,DK(˧l酉=~Zzb?,RB#E>oGBR:./>TkxxJ&%6_iiaB S Pp%J7"߳9(zF 3uc|A B-d2by+ X|ܵ0;anj˘}/c)Q p{(@ Fjlh`c*f9rj(a:a2aF[YFRh k 0 3#3!}!|5u|o./F)G9g׽y_ 㲰# + +u1Td,-Gqa|ꌔ(%ɢ3Ps0nQYpFQâx7lyc2ԅ?2E*xvPY,3">ٶs8_NP EJ3? a:Q~*V82Vt)"rp00czׂُ8Ԯ~#$6|c5Į"jC}ƯѦ#7gU$3BXh}rkis![GёY4uI+[5(mNoLp˥ld98~1bKG&S@vpdIzf "JaƣrK/e@<ϢJCsnDti2?}xʴ/UzIC,0ӊ)?ST]b>^AGиp+(ŝrnksZ& \|ÒsMv:<%n'v&o<0P).+X9_HSEü Atj |f2s9|$TiW70V"߆>[RH"-McSOZ>-I, pP7iTK(%sQNLt4G c9K^vx TB)1M7R(5EDQ 80~Nwl$A:YE͡a 4ԍ;7qSϿ}MK~zV[xbeUw-+v[_%5I hϓwVO-?˦sA$Ie$֔GqK~gHvQ h#-GP{.CW ѓ;1A2Y:uXwqŭ%tww^Xs!xoGPj\7=G9@p0wG:F)?Xnѫ1##7A=lujAA3,PlqE;xqXMpBlDzT-(b˔WuIB"{-;bS!Ք)gdoŸ:Z3/aǷZX]$+'`> +]l"@dl2,`BQ"M6fC)1*I:.2 fUz׊=mEŭy|q2(*~'o;a +۸V5>5]FPO nuGjxg:XZ'<7Hd,%\ ܵd;+7^»<ǩ%r TܭRelܞ%cҶ^rZX_τ~#nyq<%brj~o6IyYDE*,'kǜm#fﻇ 6gUFN-˚-ssEx&}>Gny29O +8vMO>zh[*\S;37>XOJzfhR.xif,ޥ2Y\eA㶊GWd8d[-ONTs f$ݩnvۥWM[s;㭝cqgt@8-g-j,u,l 6gd?뇱7lTǢEPrSSR1we2#ZsMX ($–KMj~R.%'JTD(ejv%ۦ.JUKEU/>1ʲ> ZR2)Dܠ1PP[]rΆe>tΖU]kgP}ZOf\b%LAPHǺƖ5[g?-G8rb|/OW<f)rqR8+ Q*7lʉ8qp+ǖVbC]xi˱S b%RSI,TH#+GTUMQY%RȘtij7I.{S^,Ks簸OxϢNSƫ\c1 #:)نfRbr+@-y^t!,oFi.Ec|lF+GZ>4}hj hf8sOF&4qJ*ELe;Kc^}e;u`N.r8:h=: qIqԵDbmK]V헓]Y)Q vK8$cO@v ?H +jb,AN<ڃny1"2ʼntA&cr+$MHj׺ }x(C wD$0C/Ç0 v%F?b'NUwDp͝h?NJpYJU}sD $e[R0y eS*>e4,`ZeGfs.FG?.B26同^xQ?I7MU6[y͒YvAȜTX +gKotFC.苪:2ΐ#.%~x^ zx[T +Z(Sk.v(Hd&&i-w_OkBXߐسbS 3sΤsQnԘ7u)TU"Z^ީ9ݶday;Br]p]Ws;1dey٦f`!3Q UCsdY:^iy-zn5[]6x8^kqTY:^y=W]ӅgP2uBa/@ꉓ,Q/F>ЫWuH*vF23E?g]9^vϩC%/D+1sq60%/>:}NӋ8uuWtk}4-sONQ><&SG^Sʖ(PvVyrĬ4Y͖zy=Yfz2- =1yGh^q W=I{G|{j ϔgץ7gprrn ҄֞8ޞD'#!j ZghqB*Rc e%2k,ql17%HAX +-vU.%D8 8/|WPwj}=Iob]Kr~[l{+@m +rߛň-w X$xKtfpsZ@! kH +%JCpjGl hwc<{nK)ȋ|N0_'f5kv)A=sD `7m +G{TNZTB`Gd +q1djM:17 gy8 ;> +:D9+'UG)PMzU(nK:H랔D, G99O8яTtB“~b'M'^N'Q ޥ|@):PG׃d z0Q>|)Qނ򃎼z zPQGǘ7d>O:lT{W\1SбRa06 _Jg+-W\^VHq'p"LAC1tGNB4$&>UJBuA"7Cq= Y*z˩M /V82tpp%LmMMMM:x8x..M-NMNm>w߀HK3lٓo~|_f#`2@njPDŽgFp͈`NJ oHx|  aώ7/б/|2 6d|0 б,1+Qx| +6  R !φPNJgN`Æ7,qH7(:tQxc f=!MJ2+WejR~}Qw"@}vCYw'8>$}АuC;?|vombd9f!0A0Jy|͡:Y߁i ߂yw>st wC?߁Ϭ'Mq 3g.pL) tGģI|αJ~A sG+ʫ]{x^ғ$߭ 9%p5rp[*JNLYZ.&r{ / 8.,NF4p7 c;| 0H/On,9h$B 9zދGk{$߭P#h'\-{7MJGoP/J>.;IX:p&5eT <ܙ2ު')y^{ilMWE$x + +c;$zSݠHb T-.\\9w;#BcR-9\.-+ K9t^wSxm9'9wgKw|Un !yBLEKX ;a 8s G< lV$B{ۃEy !?nPyҟcqRAx#<6ǛP%~75I}u{4`(}kCADģZբ |y>(ww_R~G_Fw](8u. Ș{q$_h{T׍&D]KQp"vIZUڮo`WA_/u}#툖zE{v;=H8%>Tm`XB`]8l%]Z;<4>^ 1; "T\rLe+)"ѥ,X0t0TJRP0oȒshq^F"x"`,[~%Hof3bM1ҖoGI'J] ~> dud:K0lb3be˰Kk%V|,M407KKg,]BF"wPJ,Ux%?%u;<޿sP>xNBʶpi/$rx8pH1u&IӰ+r݀~5uߓD/؍x!G3^C!Ee^}LŶ0̍D-D5^C`)nj_ڂ1!"؇+ t[JSBBa&"lm4ĀE"weIZC/%>, ZbK1kxQ2=J(a24;Eӛ[d3zzF#M.6ᶲ̩M=i؛&6CgD8{K5BvVؓ h +ʾדQWCKFk˙c ]ai=Z%7.8n I>tg ^:ZrH|nP X}]H̎k7+q\{dui7ݷ^;o Cas*ʨATo"[.&1I89'hFR4([d|h:[=7&;LH|BzԛB]:nΡ|zMu#EIdk=_sH0-D+E)CDT*ҼVɜ`$)wnf_O7! w2o攭bt#Xn jntuEǃMNs% +-wc!O-roQ~&|;Υ8"nT PR~4hӕ)e})*O/1whPbV] ňBȜ!Wߘw,'7󾩈a;2.f >1zd\Ѡ͐k*6vCRC2ٵ5 An)A1)o+<-s ^92( B{*]l>FQiAJ깢Ճz{4*S)i_ %VsirX)όern@rd)|L:J[>HbMb)ذtJC`зDoA+$*NaNi7!@YqO,W'v!H +6N!OԎ#4xݫI/u"Pfua:x':APyv(=yv@0M#BB%] &ƴE-AG*1洒rg "}=0#sh^E4 }AX1M0Y-}/VVˤcb oU`y?M#\Oݎ}q:UWS}AC./ʙD&Mi_ <62*QT搦#YMp*9TY5+Y9rKWhj2>M6k۹RY^~7ie.@s~zT=xbu/4s~W_ +su~Q<EҔ7:]i:.7$ |^tSKӼ4T\w*t\ 3ȳ0s[aAOy^x!$1Nm@ꠌeY`˜b)g9pU}LG<]۶(n3\]n=nxrbeVK m0r1RVԃLT}^3u!ׁ't9>X~3UncS3OpnQSa,[IŹ밌;9YvyiG*Vѐ|jRdɹΑGG#VYn$̹14~x292@m!G[WT<3ȶj3^0v=;fj<̞ 5'̑ A}CuR0AkM0y;*zDuA=֋cϸVlvy@Dk} H:LI7Z$(͙6N̢$ȡQ~AO:dLn%#;g8)=/3"0ţ*PflmDDk@"DG,>m-J= pzd=&8cg[ر^#z~pGo|Zg]֠y'@ۣWcF)SAw$ujܬnAj,Vؐuڑckz1Pac6l?/9+%qnjh"#Y1ZNֵNՋH tҤDž=}n +[txCugFޔ")nE@|{=A7C0ÊjdަzֈmQ2lDֿO-7uUU5ݝZ=vƖJێ:9η=^|<.1Y:-7^Bs=tڂ/&Wh7E@OE!!+!Kx?>3U'\]υQzip+u$}.=txȷL簞ʩ=~PB. w=7_p=OEO H5fzd?qQ|Es#~nbGګVMx26$ɗ!;V [%kH7i" +YHQř6pm%D=;aZ%kCN Je[AɌky"W_X sa26 ~vf \#2"vpZʼw5үc9w˚+{0C3  \tj{fډ"Ũ~ ̨>q6QY2d2gf]{;8rjČfqNVnQؕtnT[ w|2fŪO4e}3(dB +/`cn,Z.Պdi\7VL15,XLTl bg劢!s06Reś*Jl&DLʥrTrGLr,28zY$dqD Ղ0L*T; 9AP(gBcF=*Jl01 +ɠroY$6KNCdV:ٚ@Ɛi;̌؎K?ݑxAncq A;7I*C,k糡A2T"$KL2 PGYPʶ~E~FVbDv|d4v@ :X7MNm efu yLmQWeRhލbaWiVZ9՞&;yƵ~l3JQqkfsnC[(65j[@||fDp_=-BO<5֏6N<ݖszrGg;1,RtjǛ٩\1qE淏G~[gi).ж6I{'I{9)D[.һ2#{{{Jt1r64!AH(0bI^Y5kܦ??mٸMZkb^1'бodTy1AI3_(CDI;ߩޡ!?.FL%lIY!+ cT┱^VshIs@*[Y#ި,OmD+nzjn}@* ;19XY)Jz}~רS.U5d?e',gK[ +K_p;@&r*^Z^2fg76qF1T?Fo5ql'X'y# k90KchiZ ]9<'#S!c:$śCTv + D0G[Qx.EЛ6C{\X!W;bHWF<: +3Q/&^":.V%TDV +>S҆ui>2-iĩ.32'|\RV*%z;wLA}OEYopF-3H/m馈ҋҊ8v/a#Wje%%ԓd?N2/;`<eaE(J&}}CʼiJZ)dK!l8`IS۞:?3GCTEdCm٧^aci Ԧh9A=1S4,$\Q<ӾKhO(B[DU/ }`{Ld DzYE8E+8)fKWeD Br]eyk@}%M JIS +f^r@&+au4[戫V?! WnsJrf/PWP4H9^>֥*c@2RpytP4Os幐(i) @G=w+,9x%K:}3Y]bm%@u,'qndmMNzPP%J0-:I)6%0ٲVfYΚSb +  M9wHOrJZ+8K0j#?ߺUmI]r|  AP$nlѧkl')iyETe:Q ,j/Tʉlf_{zZqT`@Ko)յ֮7`z-q1˫eP&3tEfxʥ&YGJ)5L΀L/7?9@d\˗lD-:ietۮ9<3SɻzXN<&/gq|$Lx]Deh\lY B*bc˒Nt כkh+POI,SMZ-ǞmFq:],7'KHι$ q2p|*q(-u6r/ +ܘ]vC<*]A-qG #B@2=aTGȧTn4Ac9QLag0v. js]!#gCmjs[xeD!mPuCިUinq}kz{N}ug~iPx׃wF,bih:tb ϲP:ZTH(sgp%>|`u{Pk!/◄>/"p4a}zcN.veQ Py؆֨uP~V$M=mP:Q?iEQw ٕ" ==}P9sp> M3{BJK)̱.Kh!ilܰ} aG`M ɥnDVu'"O/[I8O@Gќ)l^]z$V_ ǒFG z q{zT? k! ©q*ʌ(\iHD!QR4k v)) L`Fr[ʈl~U/F`?=(#i/Q LE>~vDk\1 xNP}}w%Y]2˞=@L+̾+̼+z_Fȿ4L/̆_l nX@'&񙕯rơ?>H7ts`ꃵ77I7|o֍GoM;-Qӆh~Lدd9c55 ނn ѕ:»%eT__]E_ ЮTm#J;_xnh>̈d +'{dE|Y,LwU BX)2q_&,M&udfDudbcL9LI&z4`T5C)7*XbEQ}I&~{ҏI21LM&;#Ȅ7##,8'h~u mߘS=Ģ͢FMefN)V؂oPY:q|ef$.G +~jWW"Ê;etf5zfd|"gnV&?irKw': /=ܩ5Lr̂ YT,Vxyg{f.mb*e" .#ײ9UEH +L~xjsXr, <ARQրWBh">f`| Rc{JAn-Bf2K+_ +1[M+jQ[eۿ-R* w٪~兲cf +3DEo)o҂Bޕd2x+ӉCѪeb9bY)DRS'k;axD6{ƛ{!M^+.=Z@ +-?TKOD-(W{LJ~wBpkJH92<=3[y6w^+V~*NzK)lm/a?d/ev|, +KoQ@?EFoMc5@ȴUآvgxQO$3I,!:ǹz=dۀܨZ΀$t5Hk#n.­UɕJQR+:Im+%.e5II:>uwg8b5"2ӖoM?EbOn$0Ѐ<PmC=W;bnC^AΆRNUBxDTӭ+]}Ȫq{Cp[m:w)5 I)e +:[jgcA2=kMh]>G̮;%3A#!˖!ߖ\:"ն'x_  @X`JZq2 ,yFdcnJv~TBweInPn+YQٵw}BG9EוȮygp(3q C+UJ#hY-V)W@v4ЅĽ[`lP +K8mI-TI>4-j},^y)z2f}]$^phSiiK:x}V_A;#tQ.;eM&9e7G5kOYf}c 4u/qA l>a m]  ֏^x_I'yot"@TŃVт:I%WId>g*,N-Ymcpm&9 *c I+Zhfj:BN5xlх*_ʾH9ukw{֖"y +FFB|Mʊ9٬z 6gEhLAX, m{M`6>%frf`maۮ03eԠ('g ѡXX*#ӖL[egߒ+-g\j$_MB$ҵr8O‹n[q!X2ޯ>g~ ٛr <@ep|DToG"M"Eso: Xԕjɗ/Ҭg#wPXPC a ^uFCxP=L ZہFv}RQ[5**]v8?Da{Goxf` +5D+0a?l~H">`C'D [4LNPԺ0ba +=+sނT,5Bo$,vvd924UtԤZ7i2oᑆ ;{AQ9TD;p)[(j]_$hO1ި!8hGOG^>z+<|A8o!=2O_>p!$"h-7шq[ϘI1ًCL|,a"5w(7ZbL}(6CZB29I@+ҒzG kQePw%' N6_y0M8o8] ui_,.Vud&>Nէ_F&C +71K4Ry:P>yS=\[=r=,t"uf % +KRrA97~Gm6,Ruks'}pT^^ۊ(S JafI<Խ.0jolW +vR5JFi_%uSF<>PrXE!#PT %%$*ݪZ#h/&6JD} ?ΌJWr9v! ˂aI:(d]h]nzQ+|hWԀ"U?ͭZkZjZjlj{j<8<ͽ3f9LO3>-*OycIwp>?8. ҭ| ?27= RM\9ֆ=yD>dB 9d@;^ F:4kD+01;ǻKVO"V!3 ޞZ/x 1/8[6ulAGqg &6tͦ>t%y'U䚹GaA.gQtaT};աS[x˴jQ0摯-Nڼޣ<@o_tFDpjqy⏵˜ĐoN ~Z܎j,MGTrq1{.$m)Z!%XTe0NNGwsgn-vfTĺpXEH,K6xuRcETx +:eN T <%Ot`F0XVyujUrAa%SxȽoGwDsh@Qs޶n`)*9WΨÛ̾U]$a*C/ʔ ^ƊL; 6²YM׋Lc 8pk8${Ӟ #RCtp Ko64W0_KA@J0 =ءqRTsvj@7߀:7 +AԚ{@'=2_&}w O&1;47̦l$;xB& >g@ۂ`7'e޼]مMymX{xWny W8r|Mj{w{ľ׻^<;{wH-?xybMd +={t F(T#hseq bj}KȧcG⯿ekk5jU5ȨqVW%Ѳ*wV%3~a< pѲ޲};߇ep,~joWD b_g,!*켨| ڔ$\/Ln:*n l#F撳rOQDQ \=_ r\NzT q+,=mqJVaa$|y vMDZł'Wv2Bϭ +nS-I 1ZlKbZ|2O-U#o< 5ecRt?;{p^=OܰP7^ix|ާh'$cԹ1My!7B']c>2qXf8lWⓈ&ohxiwrsQE+Fƕ.mnez]`p:$E +g̬hIcz,Ee]cs;{s"8rRPDАB~Y Tth+p B ]/RHGMK?*?[\ VJ(0c^Ha,[:,vs8E^*JMm9m^yTdp4ni<0O2lUm9KJĒE)&qa#&$C$j3iՠM2ӹc"Z(u" h=Y(cs*~Pt!k43@>ʼ|ö=N:,huE| }-txK܊O{NXMLv\b̈įgY1Y ?Fh'=Hu|%u[n oՃ$,LΑ >).߬*; }+>-8Ҷ;#N!?.R)\ĿF= `1Zh"6B9řV Ùvlf3nY3W3>ϐw:B~d@mg30"~tX1yjw}D2$[ދgHvKod N#i7{k<_Ow3#l2ɳ'IRKى3uď=)WT&^X5CD@s^h=FJu8%$ 2ns@ONA"4K^1g”3\O +2(`kl'*7PVSқ>OzG0*.)^{ơ +G!9R`Hbq-棊ې!wATҁ"Hua;0_SJaxLPt+ҭg%~zTepYSѥ uѨu٩ ylinb35.C( C\)Bl,9f]ަM%y=]|?sN,J}_Zַel&`Xr3aE0~j>ŭP2'&{~t`xΩ[#)L9h 9a-t!y|fiu d[=5qpO^1+d6.Yl25.=g#víDfwCt613GUL-3>E-2TKIV92&IȴV/3 ОL?ذn +{`bcpLIdٕQNVB,70y1Y'Q9Eޔ=i Wޜ?u8OxUuMZzkwG-=IS\Gٽ#Bӥ|>Џ>w%v/] @Ctx%St0v^ U3q-[-{){UQ*(]m4Jp=%TXB_b9U4D@O< e__ QOF=qs~ (cK/t[^ +ұԿH!vc2f$fuèDeݒgYT,w;8'0Ƞ3>f؇'wl|oX_ʓˡlMt.尊 ټEN9yɑ!RZ]@y7t\RS5*MEWZs3cB ơ)uWC=k1Z)=|)U0VeF%8r+8`q Ɵ\ s +Ѧ7,0b$9{܎ri8),P)XcGy 2 7#F:7.Rc"UlSfOT7U& sEs"iO/,їO#t%8!YJ +U8KCEcդa.jM\R34!P*+Am"u+rε0MzBi/&LpbBAD{CX*t'%hsxz0<آSqʂVQn L+Ѭ#JkIR,#^>✤%VuTQ^aоkPw:u#ƍ3BAZ NH9s-ȳb)e  'vհͨ@Rހmw{i"ҵbY:c~7&hYP[u"k2 X@ҌJ8 \wS" SrS{>q$UAX|JX`n" EѭS e~+k u\sFYJR Yf>U.¨OW@iҙh ) _^uޙ[d<‡ꗷ4qcc4X3 c%\SlQ )-H*pߴ݁?l'|B ~S<?u,ԙ2"#DzJ' M;bˑkWa 4ռpwv40r(o. nq8@4t )!Th- RY_IWw|v+  ǿ3NgkprPVY7: n;Xl1%^B +ּ`T`r1![OH+{$|1j]08`y`H:]c>wZ#VA+yB@ =K;+7'@هAX"x#.:`ƬpbJɯKŴ TGzs]^у# զ~ +}"6$:bU!'y  +';[T)*[rȊ(apDׂɆd2HCK03*;#>EE}_QTrLNt^5=k{FȐ$V, % 2XLwwJ.uPW)EDJeYw\:.:'[tC-]tmmV_mVzVo=iQ!8#@9*Q}l{ v.{W+x'>"!Ft=JSAX9<2`6#}BSªB̀_8 x\j2+dAZO[PT H 0?5V(`l^V+'p)i4C~,曗櫘raWUVJ)e^|)taBxTTC;`^7^(-8v(Kan^謱[cyS+FKDhĻ?]1'\ /IJK|<[s_Z,9`AJG|DL_QUFq&Sr ڣ׮-#LK>=w2zf(rY=vх~uuo1#GqKA+'}3)yʿ'&y(4 L2M~ o3)Mҍtz^4Sɚfdhz3-d'&2ȠBkKuRGP:^14yj`{(YSWd0E +,wS}d]. !ˤV^$ I0677ʀU & +y),,ҀK&_T$,ԪU"o$`#1;Ք!;@L9y. ! ?y k )* mT%x툶ĥ|A+CFc.Ec#We e铉gዲcKx1.\mkB4ȭ0'Vܬt 9*}9ԼjпrөD^WrxG'!ͨ"x0{p/TK +-J)"Q; E7$t=i+)cO)qB|$ H 1BD&2d32BR?"4 H"" RҨm[;]7|]qگ~0ޛs^{NwoN~oek}(<।̽Y/C<D॑U"7ps|;swePt#o"cszk ym(ӐB& Z($D&=Q+1^V$T<<\8V}*dTe/ᱶNof@?;gJXG5""4UԄiiP +00h^vs@neY6f'@3;[_C1}A{J_QlYi,jQnf85o9ɭ7Gj,q5y@Y*B*Q(eV0XbV7"hP4 W &ͤl,KD^ӯa$?w!qG@~O@;"fv@7@`!r$;:w #&7 u&8~?;$&~ݍ;R&C~' s<{& yg-8*3}(xi?0P7H_=5~|&ŧlY?]s$sca;G`|Q֙RvRyGᚁ-; E5:$0QjY{Y~ 4_JqϺUKO44E6%&wP9e\ZE\MMI] /XN<9G%ZQJ&w6>#ckv i%>]Gbк|?N|Y7[@c8%a֑o(eqqx ő!>EiAE̥h=^LP[T!ac7GF7Tdezl3yA;d|F)vI3d>a~ z(j=hkd?gߧ7T<+>=&BT|a"x;t듮;Q6V޴ێPmM +u0j&y#P%9kSsתw⪠%YRR(OӤ<@aIVI= AI{"Oޝ4s8Itnv3 +D }*l}Z{߉`$)RgN:GK6; e:mYy21@zg:qa Vs+|?۔!i*ubNWfd<_]zߌ2IۭW8U,/}_*Z +@Z-;ho&9#ˏ3W*bhHK|(Z(\߆Ȩ-7gژG1';S +SLl>)-lo> #hM|^H3z`2"^qh$iV%4A겱VEvxlP\7ĶoB=kCzixMmϾ/J:ozo'|1]ob^/;?>^]H^Y󡰱@}H6Eo3|O"Lc--xg!S F/&5myk0d)Qv&&l&Ј[Blo:1 +pbScSzJjw]`7j TQt+2HmlLvL + ?FDWR.+_H(aJ(59ժqkČDwLиڪkČ\R/T+z 7e\c} mYE))!V-ƤY7]Ĭk? ! /f?=`̺^F]bQb1b֌5S lDFOI&%1ה=c + +>OMF&\]3$HlN]gA53MBUbZA/hYB'_)F(?"ϤA$y$_EjBA\ +w'n`C`dc>.VRkжe\kikFdi6|\y|[~L;yq9~ o!)ҽ&$/ItEcuΊ-iaDaK;D4R(mu +m[4(d,v+u\\aZ౻RNdHҪ?5S.5o1F땖6_*/ǔRqb t-;H ;`pn-[JPxZ ,vܿ[ش0OvF6C~󟳫aqgs;mky=3D:̹ļ1[WS;O:/ nIl3[M8INy➧l{ߣ`AZJ\GP5N>n"bj4mij[1GVd3E)qU n3s*{RڹMw)jقA]IQzl:3#D)5c-%YU8qW +SH" yΑ+ΑU\_n_ƭ_xIkU~#uB?R~9#~BcP~AK۸[v߿cy!9.ubWFLۺUwBb[6UA7rThIٛ MG>_۸ں))ѺYtc}Ձf{;ySQSCx>h^چ]3lԥ<=s֚\kJ yTݶV|F=}`.Qmh{qfzdBƊ/|.uҼeӼʙ&(eҁZ# +d<>,NO}uY̲ʝȘn nhI:6T]U&(moM[25 שTĘjJ.kFq8E|d^n*a{Z+X&)fʑqO0%fAXS8f#fX3x>ԚZZ8Ҵx1gMYM붘ĸϢ#p7&ЇG/nXRUY'%Z +$Pu^ +lܺUi;%kW&f~H* sD?[+uיDnLVTEp%<˜U+pgYS*3RnD)7'X 8&=QD̊&'*-|Uy]h15bAR)=5P "$7`ᱩmQƒ2q01τ <Ԑ9EX-%}^36M*DGӚ;1sv%LiݹX MD8 +Φ)7Xf'?;ُA=ob4ѣ 1V"̅u 2iWX̏9 s& 8"&,2/㷼]8}"ˡP.~ʂٺ7tB9mfC(NȦ.p'bG~}31w>'ԍe{J!'Te7ڦtM:*<t.߅u.3+ M׿Ca:W膥31yR8bb|zPb| dDz'jF]ڄ&^8 l*aDU3V|Vd&ӅWnG$SנXl y{7Vr_sE;7躌SEGY;3Y캎Y:c\d'O,|`gMvu)tl)a$ϳsޔβ@Sne9:VSh} ~ f_(/p/N ǎA<;=ag,ߑg|L"G6#*a=k z4zX/NRgThվr`IaG,`TQAJ]:t乂@3nqPTB4FM^6[% =(b:q~ƼeQ`=0c3@$P"t,6Nt=G?[DV9nvdZJ )?XdJXTp`o(eL'$9,1#L(컇#S^Pvnӫm1zC 6Yd}鐩9%K"zWREMӇ lq}+Oꃂf?gsBll.O Y3X̝dѹUϸXL0[#6 asʰ WܫUo<;|/fCLw?eLĩe*bbKJ;rʂًh'U62 +Gdl'];gamXP:<s$1鲦nfYvx~3L@3P#r䛽f7y(#K,Q#DEiR9E;h7&KIeMcy3KҸQ ?CpEWn#SELtdD)$R'gmgo ErM,bC_'p9 NP*3'%xX@ɺA(.-0.dRZG.Ų3Cx$Eb~Pdϋ%&:^NUD)pv=BMYH5rȰ֞#r t4ܿÅ\ٙq\ޘԟ"ko*#j@h?ZsG's;kjB8 +(*Z@(P4F4LmgVM/_i#[G[7Y]z 0.L,-0G53Eռ|P~z]G:,"Cxs~p 6pip>H+][vPSk}W¹P]N B.2$rJ7n׺1b Vby:/|JvN:Q'ׅI K向S"!}\oapL䥉_U@V2"<8"IlI bFpiDR*([xO(9a06Yq#܌+Fa7վ3F8Ӈ|5 ac/.WJ5L1?S yM&gsDJ R|?dh T舜?un;1GZs? >y'r|tk +0I}XjaXzDHd>?,OfXFiGf1{kHZPQm;GA➊O >ݣV8x gt啔>v D»>$xAxĂ APBQtjQv22ɚ[;-6U[;|_e7<_M]wNLf5^6=_%/$l"JSG*5 !$*52LݜL.\7P幚Iiպ~9ea +f&W95&{-( {H $uz[”`N׸Z3_'$I7Rƚ >P* 3*p^-m˰Н5ARJ\%H S G$ڠiжp(R&E7cd86n?Z.ij`2kNܗ4'\rl7R@xl nw\F)\J4ΩmLhWsLhS4pf"tR^bkÑ&WCAIm xVj4b٪=OrAmGZlGہ&>y:S֖p\}4KWS7DdVI3pl89|9śmjpEkmLTW!lsW'w*EBz* 2||,55N!&ϴ5mG +d5_أ=υ1SeG+:y'8ͅy۳~*0pbK F_5h@o(_+|Argf15uf_e4gE, HZ7?"xHݰ:2Loy=[[ݟ%am+G j46n,:,XOiձ⡳6a.lq(LѬՓ5?؞pEG#_{\{|jydbձ3BAUđejNI.r ϜjdTd.x<:͒ęD$ҼÉ&ԈLyg&xuM@k(n}1iW}!6ҷ|gp5ļ&ƪ0mRXWIӣd3պTHkerFRZ~c(ȧ]X Oe(!)AC^fv7Ǻ\ZtDZ+/6ԊSD1T/#mJc}e#TM !vH.Rո&DÙ&̔ë]YFWG3WUcfq_>NjQR=H|ro~"<׹[ +ݝ1,M#Ȼ,NԕɁ-׻Ӆ⿀3F^x0wV^m ׄv]DPWcsW,mШ #, g2U/6jhYk%ofJ65+:k.\hu)j8^d-NQsJ=TYP]Z 3D(lJ#Y!YЛ@I͛hxexL(mQM#*DK.;pjUMҶyN@,D0g$\ pܵ_10 k*Ud+ir+A|SVbEUǿax* ,KO޼A?Tfg2MMcW͕&ӿFVmᓒxILآHJBis+tmH-l1=GayBs ̶m1ٟry3_:9WsW,ZEdO?Q; ]?IGd)o@9@Re8KYs:LKy!$Zr(y$da%vabKL<Q;MfJUFV@-XA|B +KRf`xBG=˵u2] +zqFvRRbB->'$$ 7&aq2ӶJh"\;ONRB8Yl!?,l(m@Z^u݃a>A!.(3jfkhmE]'Kfr_*`kLB9nOVh`Ȃ]bGv,Px6gipAb:4;t<nOM#3p2#LtHn|dJ1 +|MMS֔Шcc>mMVN"n!V^B LJl-9>"N7e[= Ox4(/ N5HY8q]?/{X"_ۗ쒂H`8-#'g}Q}vJw\9G3T}$-P&\?2L9 :~4Ox\ғ'NP_+?Ti~o!)_H_0N&kvs+u_4<E8@R XDED +Z /L:$ 5UsUtUhL;?Կ GڿTԩln!+0q;N./ߗ=:"#.2Jpm83%Daq ɹeVĠ#q,L3` isw/g,E3xswrl{BXUE>"ٸ0X{EXI`Ww>갹'"9P̀17\t^ T݉$6 o^|u XR=n"5qFvLV!Խ QyEWLϢ !i6a3Yƣ`T, HrҚ 3Qe>ݦSfcdjJjFӒy fњhҢl19fd f.c's' *iĪL9jO X3cRp ( aQ&2C5|X$ue!L@)=E]SY}7@ lc2TNCGYj jZeR[=M +W&S$T;-cgs%̃bsG)'K4QUŞ{?ҀCAj܋c](`RNƭ&r}Lc:sy&Ji9Ŝ i+4k;-eTpM1|nDGPz,wL&YH[X]"#mȆxPlZ)߶7Biz&M: wumla4+N73]+jEw^ňʻ3Jx)x׷ڻ49.C*9&c';m۶ضm۶m֎ol[;wws>k5FU?jDX0#Q70h +1栕;i)hSDþP_v= +s_ݕݷZ" S,Awg。aOyԂ|qcUߨ XD.(턿.N|3+\jxK$@ʀ:'86r<ͅLS|kV6<7F\Nrmjΐet͢#-ߙqlrXy8C];jB vXdMm72T€b"g,u1cKd^1m]fjCldC˺ƽIQjuNk=tAp_Z_:tYЍ1u9:eJZ%CW~Wa~ o/o` q'?D?fo!>o9+u)7MvkISJ;PXaoړef#12g5ODmyeԤ:͎Ɯb6 viXW O9|>-۬lhŧd@K{8Gn#ڦKp^d1~{c?-CCwOݯ݁H{c?Ew<9(҅71GA.%|~2D{t|$9I Z!UTW'`3QwzAKV4:6^wlQ\itN FI ͚9m+̶Pc8& {J*7W~XaZQG<ӂg|* #~598[!t?^E&~\/Ea*f>e~rDY,h)Rlyv8î /n(^g:3 +PnNvh}XC|6T;ziȯ9ҟ݅+zhQ?0p<2;U*] -]f0jFiF +OB{:h)\?H#b3d 'DͱeƳǓQh90SsT䌧' .?Jq)Sb0_ x3ivt`ro3v,q<@? ;K~,QZ߹/os~Aelia MwfmEs4oVmBt!R*p2CFI  1HWZpn6lR:1(SY hh;#MU}+rA_Fq4ÀzZO&}?) ݛ"̮ozxM̍Ň3ԡ8t+fv_m??7"ֆXx8;T^{\?> }!3՞[1|1 ^&P\ѩOn9u8BBpW xݻ`^ 0=v$.3D@z6NPg3 !g,Gɣv^2CnA *jMsRxK!P: )CCq RR"KxNj> M]Gb;6gJsH&Q4_wGpQntGX]T>$rߒ2aTdwUH_ +tO^a K]~xŋ5? 9+850j, +/k⤌0/x*M7bw^lzGi +pA8_:?=[X/ +fM BYʙKx4uHc:zXcfj5͘V Dk*T~$Ot-jY}SRѕhJ"Jzs`9*}6quA_{ 5 Tqy.f[ƿ5轮'F(EDpfBj%۲UWuQ`aC?YXfj%Ume݇BՅg]9xSVkx5lеUD5Ĝsq*yp1-OGiQ'[:ݹ#Ӈ↶b,5 zXp9^<V0bJ-zˎO*U\+3% K8MbZL%mDF}9p{ƳPEn?oE 剎BEչrtCM҇ECAUU%ʻ_#1l6fH,1\ƁWl,QX8()vB'7C +Zk,&^5vw!&Kn%=^!FYD +\MB*@'6;+ds T^y~ =-~j_*ʴX>X1X>{[-1170|S\OGe,,*:IB]0|i*0bKQWiIm7l! EX Njݜ6!%WWS0VTd"PD'aaZ<IJ2:îM7SeZ䡎j{޺E爪OV?5Y iK|+evgֿ3xSf^̈dV>Anj 4l5I턚S|Z?L/KzyZhIw)_tqln,-.rv*wO0pK!;iDw+&9Rl ` 9;cCV5rj*&lh7 GewmXh?ZJ5# +6>%s9L29(a EhC`|]ĕ<RPx]K']\$g5e?l+Hlji#\AhEwvFݜiWDDI^ԍ'ߎoOyE"j,CBfgXf9w̐ugRO_%i:u2Rۜ%s&9;'nCϼڣ =*J'uԚEGnPQ@u¾{fǜcV}דUX>o{q+}jc:Fb>G%L9Q1D0FK YD͔e~ڠyŘ#ӓiUnar@ݠ{]?$a]+\>7hN"鴖wGg PY'p׈KbgƧX &KҢ06 &y$ 27PbJ5"KT'(/LPV=FMФ.TpwVyj!Hㄤ//b4IHjdTVIM̙3*'kaFI2A]Hcթ H»ѱ:r2ա?O!y޽ɤ&,*aѤKYF;%HSҌ}[7H791Ix +m067r;zY& !$2crH1~oMgrXc0Lqԛ"ZO\1/ZK" .BFPh"F3d-ڛ.T1Ӓn0ɘ@¨ JkMJiGg=Md`8 +}+ 'ց{ .N$ff:+ny^7D$mX/~ha|(/ ͎d=Ios+;2@P'_re=iw0wړa^~)((-%:oy/@/`/ ////@/`g // 9/qPo?L#d_LtO{|O>uvߔ~No߹oL(}px̑BΈUF"PhB$q()G]PF5D3% #,!֢`VVO}#Jw6Jx 'ݑ2hoA 8sP/Z\b8LO x(;z"N"t7\"XD$$`ID"M PD !MPHDPH6!j#08DE+$3 ~ He%J pKCD%qMDW-2aѢXD$sQJv7 XDuq(1 <0mzkD1 -r (jА"^2lĤ]| b.VIBqAYAYg"Vy,:B3TDЊt266aIxB4K6=fػ7fPbBYv߼n۞WϿ'7J?א@P3!$AfaNV&$$9pu9' =b/-%(8nZeHhJq)#rRk|ANI M\=?eMw_J!O#6 G kʇ'0"`ĉ@OSg޶?]$J"_w; o2Km*=.xXZ#7P͗SQE!ط!蠙hC( l6~A +R|#h,4;g(k;ˏڠeD`AޘX/`!֥RH;pmZxఌ0f%YZKJMyIo1bͫ~t:FstGR yFOQOcA +'kKa~vꗆh-}{˪ cMq~_ՂP]}8"ϔU #"5TGDMcG$5.0Cdv4 URRùXBRUp=(uD}W;"K<5Bvz߸ݼ:m~#àww +K!EM"#ՉC9.➓K)zFw ?h! Cf C:a@kКT +N8`>Ba1-MKygI@7fCqKF&8 +#:%3e%$Jif"a8fG;h6y'KiM,#E[dEcpE!pI &˓͢:|& H\!S=Ρ3΋y &5d $zb!NU-G.D>i  6DD2(M h0(ʷG'c@(da"li,!zmCGV A_e3Mh}}}l lHM]Y, E tk5:xڷ:ʇ3+B@X\& !lxZkڈվ+KL vx */F)Uvaƶ.|zX*u027PpH3pvaHgxvg?y([شhTc:0 e^4-j0S@Xa)\.ޅ>O)\6o|j +;vmBJUHң +jh&Je$Jm<[0bxUHrVH5J[ U%wlt +I>YgqFR,6ǑzUW'%^]5K7/?{7 +CuQ`֣0}[XyHu 9%4uzU ]k{HYeJqٮz6KMJlH'-+ߥj2E#7vHu5ƨ9ן$KV(B7GCko"@F6if;0_D(V!֢.s.ֵkǡpJTp¬:)pcS[F5& +j1Fds:p<x(E[IXUYF1sQaʢ ).҂vf6琬ifۦ +/@8w bi(>pW,u Z$ɺgm[-QíX:)-ƩLJeRQJ848= Ty>ggo[:% P靜?EڇFo4\#^s;?\wxNͺMϺ?;jup oOvimU/YRyy#E~%~}E F奮'Gwu&p~bKrd76;l8NuYȓ Şؑtj&"/F= AàXPWIKN0 E>âA u.(#%X=Ff p+G÷v&إȢvK[`%Rd{uLRR6--SLmE?p$QC8Hq ߢv\f?,F>OaSҪi1"$=ktJ}>z!h{e3lxfA{N u9=Vȳ`ɗ(UDIK-1{Z\DmshY.;[h

H45Ojl"c499'umG[tAȚ.={B9{d6.'PC8 &4s)̭YΆ!C|>;дlGEbV<,{nG7epu-zI5#g@|3`XQ`,Jc0]Wk Gݮ.=/??,M㿃#'وL JYIYQ`@עzG=!_AIVl Xxځ`/, h3bݷQO_H Cd3`dhoG?؁ML;w÷a1 +enCꊬo.ujw)ef[ۆi9@p=wfr>j70y3do-YrtEq.mcQXPQ( vsԱofmKx,hni(ޅiGg07bڐBcDoԝΗXeϻbY%麩I{7l#" ̹Ä%:z?Z0x豪gTn$ی.qʣvҌ&hDe Y,AUqSh[*Ǵ/f5dZ0, +eٹ"£+01bژJ3:fK5 KP>8EX\]!~Bh*tHN iH1[4DV| +e2KK]~xPK w8fhS/wN`"Soܳya*3◸+BKBwj$"*~e~b(ܟIH<\ԟ.+, 1{SpN M3l8mC`ZCTh$QCM4׀W#Ğ_&p_:I3B1CSm^*DïSd N2p~ tkg~۫g ˇSevǗx:nNLwD7dM m!=/G`e'k_TћF9s˓+mIwl>ɓ=R1 >m>uf$DH!-wdlLwYhdy~A?^?zbԟJpܫ Lc}aLѼ%hY.Pv cF |j&i0~KZ{ojCUT_UGvjڳ[J6'*=7߱V+<]nպ+5Ve>~}'?\ uĹ7&Nc"Yo?5/D;aݴ `|!n4 +n$<0:|\Yp_v!; q}tKtcȼb{ebXv7 )`i'4O&A?v7~On1Hv6 'Cy )hHy>>pf|ְn\)XL_d4]8~;-DݧcpD&ؼƧWw&F*iE;Ct&sJ%I]1T=Jc|4j7dKJWF;K)vXa #ȼ)$iMF&^LpFP/IqYwliqHPEj CBõZH`yHPQpOxT;XKSb +|絪d8]N8#6O^KQ&,vf|#t;jEYj# +M |-_)+שȱ|ŏ7gO& ?묹Z_xbak.yNK詂7v]Zd¯^ 0R%MAS&.ǎe6χ.l EΉ j0n(y%wUJ2lqoN[=r}*;eGU[ qWyж$N!ky78)?ȬHY!ao",9 ݛ椂PEa1g/XvB=Awo={=C!Rt{"s{`hO^݈6zsW!Ex܀Nmk }%7htͮAXp1@dR2ZU*tMХTbEn/Ti2ڤvD!(Atޙ c.Zf9]3egP#_GW,%ItN` L{=oCY`gv'^-NLuc۳6늎<)yWҁ )}yzxgVmsj +U=QV=U3u;I=yD*ĺ6ޮ4;\+ryD}u t/qj[u.#(+. _ ?L~w0"g(w Ҹ4_i@ Lk9}Kgg@G׶b&nlСo1SlЈげ1Az7V;LooJV7 VKs/pFF'XwzlfU H\L͘Cl;/ybf8\(eHFbf1g )Ѳ3+̔/Gb3 +-?3?"neh+P+`+W VVVVnll + l +lYYYYтӂ4ՂւY ll@ll@_ndaΦRxe ݥ"p;>2uESpSĊ30> mm 2 ւ]&o4,pg|Y{X +'lӆtԃJϞtVfDzdWd$Y]ky5F"_Ȯ1vUL!vcxVHP|Tu钘2fVx`DUR-cq=`7&e+_^lhbʒm,8+8-0uGVdȄ[*ec R.81)(Ȅ^Iek-(í^Qf:)[ ^g*:KQدY;fǍYH~Vi lYǂ0fd*++lBeH\lHfl VY]pS`Ƨ \bbEfEaElĖʆvUeUSD 69NhF%@l2y ?'@@p@@8jʲW]EBJ߲u8tx8rIp00ɤ${\f=V-TZԔH^L1DzN^< IzGrgfnU4^x7Ɯ$bY3)Q\NN>)FPVE?!̑y,^rp12o  +r* #+X9xBl^݌h6咴R+@k}vVu +nK Ac .-l6Ç5{p$KDڋTo Yjbc'邏Ǻ}ώFed8#T%<ŻhӇ`yDDlȽXD],6Hy$7ck| v'+] z +AN >b` A,)Z`?6WhzF>OXfQr}Q[l˗75AU/赁I}ac&O|\:LJ| ;Wm3q@?ÏX;Z&Ǹޠ2ėB[OX}C G`Va}S/\1hz +xw=Q>WR WΙ(ߎ.@30=$o;a\rXn "rMJ~y |)F6Ŗ/1K!Xb$9(\ EGb5^ICv/=4anla gl TY 5^IaMJL͠aȴ(2E@A>#68Y3I<=︚e멇g=yd!vg~k/x>Ҳ#఍4Y*#iOUP؇|'7c&;#+4_AJ{4(̎VHJ]:b^}+H%̴ctm6.0XQgTNal9',Zzti +n83G/&F"։.=!Km@22U}.̝ctqoI]/R`&͎=4X3sizPɧ{Ttڒ,pBtXi0M.PP냷<҄+l$c։юZMWjlX5P|W*߇2i7b<ހ6XެR&_y*{ۉb-HlzͥXdOuvUO!@oo?!  +-x8D#OJ1Ukk}֗ɏ1Γm+d )+k6F5)X6HV7D1˚Nԩ M?nm 6+\AFV#{,$3Q/d cOQm0^U'0Z?R0;LM*gZvT&Әs3zBԒEViPf ;MJ;;Iw&̾(M P;+&-]!w Ǝ} LcY c,æZ ӷrǿP/jc8O,ӿ}*I8c.N <8y_$Wu. q,@d VW|)QQJGh%1"*4X)QbfY"4x.4x|uyDi QPIWD'.حj OwS=Ahaҩ\f ]zTٙև!Wo*>koeݳӭ"c=~!ͮ^'K#\?IWq *6>_%e~ش&<d22^ )*- @W],阑 ه;Lt>#4}cxT=^ܫWbUȚtQc*䒎]ڡmϳC,DŽ*``G)H.ҋU%Q楅[0nVJc:-({3ĬIۦOIwK2H2L"PN3F֏-XțÑ_iŞ-Un5Knj!={e`D%WKvk!ޭzV'>7cƂJP@*j/Xa%8q{b]>'lp(Ѹ8{\ajc%ߪq`\ՕxeQ'{V+>0kQm{TdZIm }4hf1LrZ1Q0ZYP ,d PIYgVTKҠ\lbHYMl`VJ l|CsyN]m}mH`J#Rt k[08p.tkb^&f/8_ bЕ/tФvZY_o2sYG{*1;vRJ"*x +-jS}_ǛDq-_9tƘ~`iaBeED)[W OS>)"Ee(U$WF"zm8KJXm@%eRXפ~QjFGo'{^Sl@rnѾU%7IP^9Hohb|_ +alGiYY&i3O3K_ejvvǮ%U @:95pCrK\*Ԉ2էzz'$>¼,b B|p95'Wzsd-GĦЮ+ PV{#氘YSMfN֮D1BJ(s[fEPXl-Pi%3)M]p!I}'̫ຏ#->7pbsBEFF=dkW>g~K҆Ę:I¶<2 +G UTxA +)oքC gR%6ۗ Q.#kiQtL*%B]((WnV;lB+ Oܰ*2u67KYJWGE%l""*} d8 +\%4EɂDv־8xKUoNTOq. xv89gndև;cZduOXk^w E-5b JJΓt<);RjCPuX2JN UBBmy3+t"6Bœ%.G'< Τ9brFW0&->M myxQ~;?ڕXy۴ڴSL!lSlK"U_7PeB'vjSmڦ6T IMa>/T07:0'z4'B&8'~*6HZ=gG! )k)ȻEAExY9s~XGϟ^&?y] UDCP-+Ȯ~֞mSΞnHɗnϡXyT-Wv't&֔JJ3I^ߔr,hvџYMv(W^fձ̵ZeF|~_+}%HmV^Y5TQaem1ycZiʵnZѻ:*|14kNab'.鸋`a7WD?PaҡM+ J@#¶\a[bUmAbB#}Ϸ*y&U2:6/|wu1'@n>㏻9raX:U=]Pyr +/n/3XDq_[&NG|9SA$:cJG><7B%:gSKxkѠ-Q{*(l{j}{'uqzpn|O[!+SЂrFcKW]#g>H6s1{F=ǘT@:DH+vɠw!3^_g<θ݆8{w+-!XӌFGWu"me]ysc8KCοu"+wX'ܢH lDZ: P`B-ѵ4#i͎0VV.X-0TP&:+)b"y@(GP:PJmo'Ź_XrE ZBgL-X +ͦy[m+Z^lffiZU;ش/蛫ƩBP2Z>91lw \ӬD^w<;h oA1UaV +\vDT "vFV80S)r)UhւU79mj帿 X֟|G7<ŭǘi<\ FQs/he^ZGBQVl.& /CUWHkTpRZ5 1VèVUx^`VRT* +^V¨iШ*f +ޢUSߋ]VW55WP_Te0[% UţUTCTT % tIv]&_W Cџ@l)@r ZaA2u\s^u\ p8̗gv5v';?Q (x#<jtBkoW&{AJI>+@yxYzz/h "5IhF#eN0S/tVԹ@xZ[Q+^aU?AV9+ ?/5PT?@пA >f@V ?@ԈzM/$+wVVfe/X僬^¨*P)ڪlV VbW]U)h R &WU`U@\VQ+jHYi+Un@!FCT\CZZZuĆK = 4fPLfr5j_bΙ8rs`f*+ ([d,XD 3#ɱEH4K'GZ!M,'JgaFx'Jf6Z8P|78"r:Z)!MBG%1ztcW"tF%0=1gG'0A`J(%3A*S .hbT#\$. +V0>ъ_įbb+1c1S/<TG)m+t0YhVVE)Ѡg*qt 2U 1U e\-=eRIA+q" r:+KY:qH@p)&lAUEzyTd9"2 kE wG]rSqbBd)T_B,2uOQWSRgF[tzε}~8V̤.Op$PCKu"El#9 :%+*5hYi0PVA$jP(*8,D`v"ŸNBŀ/ s|(` 9V )1=bP>9 mSfgCb$Ispϟ +v*;6brz ̹n`+ *Z Ʀf3Pǟ⾎cbޗ5_IH˙OE;95ZDگDZ^]Ȗ/S$k>mnDR4Ag[k,Uj6 +4faFFĢb؀GGGBXѬ6Hp%360tP|:l85/=>?Dh 1=pqԘ@@@@G P^gA-W,ie\'Be B +bQX0/A +Dā;]G]!1~}o'nqx.v?z_\̋ YcbnQ'\9ԩ&=nTn]<%*QGĿP騷ua砛t>岯9(9?b&v3x WFf7,TX@dTS5U_ힴ#gN܂tćԋrik +ɽexKlN粹 ˖s'o*װ\7N3{ﲯxki]z=qFM{Eakryjx%ߊMaDZT9Y_ }iYU +o^Xw|U }+cBaE|=ոtu<Պ%uC $joQ"p3Xq[#'5#ۧ(s +VJ:*~d˾7J7N6.koq.jV|* )k6i˝U]SF,`<6~~CzW47&-WIfYlXzrI:q!+Jk5tXTUtClb22CR&Ǥ<#O*Gh'G㹊'vWܶ_ Wz$R` gEGؓPvL%~̦zuф+d^M5 Dg{'s>xiީ1n?hi63m V}véhqaǏwQ`8Jw۴v.|SLO4$v-)pLlIyW2Ua7ֽz@-FR]S3)Snwc5y1UȜ} +(P` +RW{_{/w [ٺ2l:;ukhǥEIDc}Q+B9g˘SWU^!/dwk{ UE +;. c"Xl"ׄJ\֣K|kxkyLmf"פ9{BK%t,ebф'U3!0*gzEj;{#>afۖw`wtPTsH7;呒ѢO'723YC6>Ǟuy{}Y-)毜`?\urZq&۠4Hpi$$4W̖{iwqv/=*䚝yRa{Kf{3еpes?bn#_;$)dM(a73#rAL,#dE@ݙbu, +O*u\.e#Ӥ\ݓs3skʋїQwrB +ԽrCƓEzїEXD[VY=$peϺp fTs0tdD-^{Gas2 0{}#2K1T Wvz著tc );D?{V'^Qp}fmU9?sU>T;w`?mJ8k)dM/.ؤؘUzVϞng[)sW Rxڸ-9S^T̖fAbɃ#` Q@> +߆33 XI">ږD/yE, *H1qG?/l;gZº!ES֜l#hϸmO{5ޘ6w%ؼb,\~]#Yo%Fx +D +j=n]m2ܔ1"ҜޣR/ +5!/ql?}dG]DqnG>p Z> [oj)K7%h[&k,pkfVO3"[=i$,?\|JZz0-n' C.Lȯar }nx`6 YrpTERyErDy mE8+ҩzZ1*FiXi3 +I~yުt("DancInwި_y1("%Nxz(0陿s(0:ik>p'WFaw[_$23gC?vn.Y5:ZwNFsnkBy굂ئ } jy>yX|gkt8 (mcp;&6WKb\9\|YG>?~.rw?f=b/~^:d3j!Gs/kbn5i)ⷥ3*Ʒ?h+BW]Nō4j7MUy~sB_1WFk߿ߡˉ?W[@គxO݁OĄ~B̘WN0"ό1 +p!:'m0am/ܘ+KΌEb@( X~X{ o6K [O{aJCÞ+)^r $$ ]r (9^ě}FB~HO WW/Emd$!+J.Dts^I] ,iP'I[$sNOSB.K/s΃d,W['M D(ٯ@T&Y._EpL$gC;Hq~t'.iy> __{k"z+d='DR]MoX 1ǑH2>"'r*hh<*j l$ +IԢ2B([Lf^{~1-EEPtID"$8.JpOY_׍d;I IG܄ྏ(#fGƽj7q'y[W/s>w>L{:mQ8&!яUӠO'p3r31T:ǿԡOK$u*>C*09 *E}+097J jb/bY ;8 2@킺ڗs#¡o0w ]Po$x-oTj_=x\/ "I-F2K/$ODʯ$']H%Rdw[^Ɂב\.tȃ%xb͙uȯ/ʄtؕ^` &)EzmB`#|YAm/u^5qㅡUs W0O)d +4EQ=|%Ŋ?)2 ^Wp_4YW\=:S]|XpAfcʅ*J?p/ xut 0xѧmazZVM#kP]7t @#+P+mإozZ[=zN-p:(HX㌚H؁@ʯ9)@-J=Av@Aۀn?BB۽77۾7~,Έ2lt!9}$)oH?ƺdql& N+skmʍw>$Ţ$H҅VJVy:%"o {fv7'c)q=]]*kgX̏}+%j跛VɈ׬Y1уBu[pucMsƤ2uqJuc4uTuuJʎ jg4 s9E^mgQvEjT5YTvpg`5| S'ޚl2߆)oi [~Cl_ G^/`MösK]ߌA>ux 52I"%FfBp ID +86e$M' vҍ*PArՋU,YY_q8_s-<~* E5&F8}^.vȗե@g!lip%Fn +'YQƗlϪk[ڥSI͖M?_ڦkR(.ydH>ѷtܦڑߎ<3|K gze*`bY.i)r0Iv{Z ?V( pmlA/v-2xsgW"kQn1 +^j 2T{XV$M6[? +"D t.:܌,{l6 nޢX_EgGm/Yݣbu+ S%0 E}kڐZ{氟ѾXsJ?Js#I&P;(gĉsoJ PāDa5ckV@3*[뤌5]]2խ|Țwl}1=G/ ̛FKP)\4g0;A{Qt~IIj?5:yQ؉I VWOi!ƒT'ZN^jHg&x>JITFlt jWާ; +͵k-\NԱN$h쭖.NzR-<L's<ٻQwq.C#!Zs2ƞq!I vRw5Sܙ!;1d'u(ZvI,G]*|UFP[ZyZUשrmv:[8L!%͊cn%ҌNL*P-@TΦĭ2HYǩ#Lx52o7o@lfY?m w;H~xc&rMڹyp+?uڗ'`RzM:M<ѳ5(Tz׀ of3  x)=@֭:{x̷xCͷ| g^ jGfK$ 5 5R/m'@~8]X)E CfbFH$?aJ,ioZˆĜ)wL >a:N\bm 2fEZ +IMUWqO5TÇ8$Ku$2 KM_obKuN 7y82Md!\b fugz+sڸdhm}-|pti| H xN3*rTXOg/CpuXN%'Uj3)vN$땥YD{"*H󬪘bD&95E;OXWWMip 緰s.G0rI\i"NIql\54%R[t3{T-aÕi*ڨ+6 ˆ.RIBS+x˝qR*@sSXL$T<|j&y4,7r'LTXq g?. `,, ǁeDuj<2|+Juv-3'}!VAˀ4 ޑUfQq8sf:3eM#sOr6D `-M#Fr%a⯞9|B?@t")1B]0FƖm-rIb_\d=:Օ~ZH!׌XD uB jxRr]ߘH @I2DK\wgt]biQ\z%zc!].3-ɳ-ԁB3BKR#ɤf}$9*"e~U6{L'#WMnXXLօoZf3 +!CPTN`Xzo˃߳:3j$ݾm“͋jΆɒ㡗O^ R'p 9m.WA _Cy'JcXg)[ngmb1Ru_9Bs,3DZke?sd9 pá1bv]q5x%gʌؕUաVWy8ƒJYOxJ + >>Eb bO(J +rJYJ)FB +%5w0CFiJ٩hQ.>BH^}N&=i}y@urqbYЎrf×#GX'[gف۷;0Y;6=VwҸ)C f(a(3>NPϱm۶mzm۶m۶m3sӷgGe];vDeF +BAnPQ:z.Q:w#s̭J’< +S~73PyI_4D]}<눟xp%&L5wd.ʭN|VOBk[&, @Ƽʍ2R*.b^NpyLHGuN7r'n2{B6ut4C6)17XP=l֠Dz6=bS!ԨJ (h 0f ( uی aNW[\EY TB>]cfҏPTO[Ghkp>Itڀ6RyucdR;"HӄqAĪ?&A|$cOڡ]eNƨkdb rQF_S8Vp)cSh7Jю2WF_#T;}˴ci~ծ +x PLFA*bB{π:TWjK +[]vV U28A}OMS0M*:O\k±!9dWQdR_LI$QdR 1'/UU x*XmØڥf(mFpi}N[<뫄J%>c +]$}H?LY$ɆO>g% aOv>Iu;oҦ"?&l 0 +L{$q2eD +%AX-3Ԗgڽ`¸7^(Np|WWәj`1+D5ꃊ@+V~-g|Ôhؐ#+HW6:̔NB{!_G95sۥ8QB/~r<2Jݡ[N/刨Z?;дŌNSa߃/zG5ew"u:Gc XNHXf٤BKHeQbgI,:Sܒ>OK[7X_ +Y2.9tHBN +bBLn}uŬnt$oM:&[|)^\J[}1<\>Q\mnWgφkTZx:΄^BM nbgYbۈրH7x Fš :#L{Sg?mCߖYDϓ-ղI +9<ҌUҲ>asG pO)HaqIMJ7HڝF^vҸP}B=u7}gԱX'BG$+2RǷP>])Zð$BBWrdW2y3ÚM&s8Y.&U8D5 /s~2iġ*~ohYs +K+{8(NxIB7a5_C?k^+RČWVyR5jˍ,|}uh\v3UQ j8TZ}W8BBݿχռQQX_=̐k1 tZuIcmY {6 Wfo௕o/i1xWJyWj<Ãx*x~*wEs*D)"BCHo%a"]Dp0Ĕa"Rhcc*)-LP#&"l#NSͬ#O"1aBl+ 8Us mrtfX:ZK + ƱF=/:Օ葨mR "E jW;!O^ +ٚb * CfeSOme+LES|y,XUS̪'ҽ'Q0fulkXztY5^7\/{'{@+d /\">f"S[b.Gc.[W\}+OֈB>*P[pZb?ܙ\qEڷPbi{Ԗޡ_3 >R^\Av(yt [ՊdGNEorB`yCK䛇kj QA΁cݒZxl>R*_A)P^)n1n9Aq̧ L_FNlFLɐt4 S ѪG&F*H:ZZS;#;[wO"7wt/5;)U>hxxu:):>YJZoUT;zpU!!F*LyALu*kCp LRnS *L!NsKLup*Hu/pTlbUc6r"*L0)Pz&^EJJdkhJ1U46}?߰o8W]b嬬:K4e˘8*㈌, 4.VE"Ol#N.`.nl((Eom5L5 ^Yy]au`}55m$߸8y849 0 0%F'(G^/#&)P8BłQѸ#A'B7 "4gfK:T=vUǴHum{Tɵs$G^Df uYILHU0M}jvSǨWE"ahzKOb&n 3lhAz`|[OwgfyنmgM?%9|R#`~a40h +ߍmdZj4H&2_YP?RFRwWHrjІu??a/6>Ԁm[8!L̒Jtye|A?WO- <;LiS֙\榛U`Izq7MH)1$)\&$JeA^l뎈As80'BXwycGb,!,`wAi8m(z}z(=M!w(3gX=Q,[8*ꌹn%8n;G*N7m:Hw +T#ܟ^t؜} W ;7cqRϛ Gpsr&J)1 Ƿ"r= +l(C{ + +y-ծ\8'‹Hk&X=aҩ +~̃$> [! ܵstHԧR!&6qg !a#Ébg0`zw<|5䰄ɗntѼ65ci5IYC(Qﴘ>TY`ӼO†MWzEȹQrrA'8éS\+web)G*u 墘}JAB~jC.a-EL!ً=fԁge7R7o+Q76G[Xv7T3o>е!rGO5TUj{^;.O/y +ǂ0e+D|ê>lH;IVm-=!ЄnK'lcv~%{ n P5&wEn0i j@>]1Brhc/Ly9,~D"۳{BB$uIܪ*dq!ܒvfiC=PӈӨC`6Mxl;J7Yɳ)gNïʠ 83E/;'GB]׸g0wrik;s{vA A+={==S3G.ݝ־/o^>F/iwUQM\刪$XHgU0!ǎ !=M|ywx Y}ڿ-L6)Οȗ2G4Ȇ'≇Ib)^]KAr6¹ űqƄ7I E\8‰ǒ(wzkUBΚ<߮}=JORIUœZ,a\2>2!ABBj -M>&[38C"SBoݶ:6MƧ:*^'VlJyeTL*-?S{QDSuCj2'phe柏 K† +J JWU{.*!>2>AUU&~>. JVJ0?L}EaqPօqR3R$Ԩ1c4O5?p/GxGvIt~ $a )ar'0{0lE*Lml,7ݽ="TE{) ]]WFkɥ/ᙱN}iu/9lCڻy6vu^6so1􋘭 r4D͑Y9+~[9:69__+ź/a:^ocB|f77p9-','+Pb=U+d^.~ydNȔ$09["NF`!f"5 ^G99(Na^^#Ve̼%Ynvyۮbi3q]jFS!Xr4c1v-G[9YcG\qϮULԫ(Jnx +9l;^ 3K6(SҌ?:3mLe~~pghirk^yRbѤ.Ioz{o덨KF3g,rn tPF֐$&rX } ͎\ڇoeuW&fBⴵyU6y]P:bXOS8XO8t@g6l2Nu+lc\"ЂxyU.{|jkO)u{K$АrT5үi5DR~Q<ӣK+;{dɊ2ue%LkmUtǭ> '޸ib@E\•o ~9=:хiyG?wbvC^,ߏʥ¿!ɥUQ{wl5\mӺ;ʑK/}5p3J U^=z1z k_N|$2vg9ـOښ?遐ľp3hI޸%Gb/d#.|MM&͛2JM H/)̺Ϙ (}#~[UD!1mu 1Sl&(f#3!$FԢFFv.:FEfO&欫jM8NtSu`h_~7lp}x.$aƩ-MQ9,ٺ%{(0D{G`W#miM+cvB ZŒ`o muoUÊdy[|VC:wzz%rk«6o,=Mc6MwGAd/PBn!)M[F*׍ݥg+5K-vKkIV箤ARY2 ʤqE% ^}y{P.Qޤg^U5+Wk! +<ªOپ«XDI<c??^!y)Q\5AבARmzn{&[+jеKYlwh'\oQzz:<ɡ*Jǃ.ܼdF.X +T<=s7DŧK [y]*Efto\B[odjh?L7|. ZzEÎRI2u6Ǥžg-sYU^~ub}JMafSp]Qo2;h_-skwKqJP(|S[!CH+;թC7J|Di1v -G0qKv7 p'ݞ{0wg]8[yϗ|MW^H{3n gK`?!i_ j46Kx\.Y[၉fbHW7(UҷH$o\j.\[k*9" moDx^Nws7Z+`Ê2cb4icPܵiןlj/򭝒D´6LK)m{."k\/NNM.B-/&Ks9-\P/5T+p)] KyHxbrg]Y4gDIQ듕q؀uŒrq\(q+K}nafv5p㗰Q~HKpe,δemH4z#r)yFOS{~my֜'m]^o/zFPg7LL2S6+w@۽>mbeꌳCuҘs>Iu/ C>'c9tLG 3n("|k7V1pV+6# :"]% +{>O xߐuwJ6V4R,K0#*wPW6/_TuC䲻JرڧQG*΃E/fxȐ1 jc'YUPj ]8ZVmiWHJͤo(;aN7%r^ +g>Ò4=vWFQޢݲW]7qoEL`%lZ7>]T>]Lx~PQRGQVϹ*w^v%RzWԩ?YS|ڰÊ6LXؚ/nBvXe;8< rڛ}Y' $O:c6H3_B*=\6sT^#\qzD9"D>m8'լٹm½"IrexZ&p[lXrob!`i0Cn'#tGy(G䊪Oq5n!sQѺbMdgM_tCԹķ+~i )XݖǡZ_hXj<"ܛmj#0Қ5Gt:4UWS@Ż5Kh$:/;'BV`ȋp:VϚdF냮W)/9)u6m&$K_l#E{*-a[;՞p|:#r_$V^PLjIv\1 ~i{U32{ )3sH2#nSJS/)DFͯ(bDifSBu-.QY)'5;G +#Q' (/ސ'O8Zlw N~-h%w7dض-;败l-)Sboʲ.J} !MDhXg9SS~n HGB5m?vVoeHTb49r($*$r D{cTLm \+.dT1xy~"?XL ;rFؼO?9U~GC + Syh?($ùi?;FmyC[fJ|~oRFH'Z߱F +8FQÅ +KQ}Rn8~ك,_7= NeJ?zfo.>EI[tL_&>=Nejl_7'%Fq9d3Cls26Tty +x"w٦~=-$Zo'>^xO&i~[eCĴl0TÓʉ̱F|2H.qX/5F8<* +}. }j;ln<#u$"T +oR)b:>{,rZt$$SLdL6d]U5 +_+-k8T=O[T1YɎ.OYݬx<&㺮Xu(_ꃣM>T +0F9X:Q.L^19P{Ai~ΒRݓT#{'XUř(Ĩº50=Erجa|pGߑ9tx#;nPYc$ݘd%un2QJWwȦPv"gޯu@I+ m\#.,㸳 |TE'|fCH/ w)PF*E, + +887vJ*(]5ۛx `#j:c !N΁1evۛ/ljk%@@? K + #CC~1Nvz-)^9N;N7ݷ~~DXg+wHAgF1VsqXXy&]%dqKwsAJX !iI#( ҨD#e 9fE*ƨ!FADD9U3TFQǣP~/;/u,Sql! WIx)s:sQZ^ItBNk!&Uk>^ (<E~Tδfsm(UnHKZP颢5#s5&L.?'C(KfǒM.>1&fQL3WYbJ'̊yDD9' Iq]"4].MZjy3iCI1i+i]¡8JZ 8.9iAF'a&&IД]P+S~]q.UQ:Uvj91?mP!,/ho.Ao(F]e1(D26Wp&2i[dVM2)v˚So[\&эPt[>03OWc<,!g4٫Z-&D^]umr#쩠j*=6vfRjC Gh`i!\3U  +5yHmh&&'wEJ8&ٟ}&8!9HF9c8%S{¡2AWP'^ǐэǐFIm:ik&߉/farwRha[p=uL܃mMoFڢ<#f +5'3 +}Sh˨їBїxDUT yh8&uDWbP"O(AO4"7l :P~g^kKy;a\VVJ4@#![Mʧ4b.ʏfRSK[z1dC|'͹%vG?|Zٴ3ضZ[v,RvLϣ#8Yyu>?lq \mfMb鯥rs~60h{zHRj{H S`EA8(L٤R-M![pI0FZ@I AI`NaZaE+Mm$oP4Zb&U=VG\%t/!}E׍KޡŲH+cЛ="Gl=]{תKc<Z'Z )tfmTA!H v)Lޚ3 %)#bN$ZJku\Efny!yU@ԱHAԲVY{ZM\',Q|H:zI`Lz+}Uyȋݶ +-.?*w`)9Zہ^i'.'.'}98B;0 +>z^F$zKQBwV1Jū,7~3X㭻xCv4 "윅·࠸[꜅K9꜕餛z)[{X_OA{&XQ3!]#i/lIJ{$YCT20zoyG외nNhJad=Y{gonSPxH]qPe^x1 (LOJ.y[K7 + K3''xXMIi57.1πqMLwI9M +e4V:[sOpRhU +r\uBYˎ'"ONiULC^~Upec(ABH\?`+5d5 iE o+@&?q按3Ҕ/k|{j:>ޖg5? -;2+n79f7_rD%bl.lo38)0SAc⛂8nt1"[-$KzO&f@VEResRThe3f\Vd>\i\EYyR,adWPcXvZUб`59h ockqvɨ]Sk%S:OG6`4"9EY`LY(I+bxr-p_cG0xusӂ'tQWM%A|G$f5.ą'9ͷ#v,QmȴDI9hhs؁ixRɧ tth ^¢"8IAn>[:>gY\7 +y'>f^ݷLz}ǜkw"|A !i?ֈQgs53CWoӇGhT;ucp0|(FG {zF'-C7v"} d9@ۙx`$+TʊJ,4cu8b$"A-j@Xh9J맙D]=<1^fvO]+A_=<Ļ ;qbܺ:JE͉|O\%H4&V5d |MeHr3$aIMB[+A|ToDFhsce fCbsxVg\=ڭzTau%f̍Ɛʹo3?{N'W=uhLQκ,0Zf|=Tv1YgtOl^~nMwzw֤X^x3=Cpu":$VqdktĄ+ָBl!{=X=BEFަk9ƛ6~&m[B! aTcBoU°lGTWI'/dw?άЅpjݔvG<$2!'ѓ0D$8Ca4Iw`9}2ܝ"#vOP^ˢU3lnJMv dnlّZjDyE+{[4pn;'ؖ~*ڹ1в .\u xľBԝgT=q 0S}yql]V[m|T s0vץqUN/댒Nؽ3_.NPS\#p8aZ˄_7%ciT+-lYe"bVw*n*,I`:nNdb_f7/_8+Rt g,(K ^38 D8*<>uMegpwE_A)eZ LtTЁI<{+*-V_gN*X6=="ʭDXY8 h]IbI0 Q!.&>dMh/ڠf +V8v y))X{vQ18< /@A|:!(4Tӽ9 J$ ;ϒGEV8, Y!:&Ks {6_&bژԈdl.nQq7A +Ȇ6]cz-r;{+dq DlhlgIdw"G|T /-]8+fJ5AVBf-kYt?'{>)vo +aWg]M'/'F?1og&c y[T!`٪R68EN]}ahܰ -Zz%,EY(T w%;*"L LwZ2JOul~BHeFb(ú`#ChrLw iUd[GLeeM[T1A`Mљc#`3#*X>Pdőicv~Gma99dkǺQjx˛7Nʟt6e|XSJH&YM.^(dztg E}?A[2 O@7pjم"BG1ŻY4.\J8:mG|lRteĢȉϳݹہbc +gy4z> +9p95,GeY2i1@I$Zx"tE`pׄS :m*Nq >T!冖e[ V{PG{fuy&*6)Q_L?_r/iD(YF*) +v WJOܐx_|CRw;]飾~gB\d#XasNIq',4'Ҟ6[{5.jxE% R?0tReQ*5iR4Tln/&y:%5.MzZM]{~L$@?Mw$ag +ӬB +QY=lm\{U~,'a^$jxe"0AE a  BnLd>=AdlM;zOp"2gqWa (mwvt~z +|(g)31T3D2í`sBpXAI QiɕǔRՆҴz +aNB UD+$)j"j0W[WIqFXPX2Di bE6jCCe8 4Y +F[H +w &ƌ98}8IItֈ1V(A9,4ۅ{ʋkm54f pyUMnAqOZ̑x`hySұšCyŜI(֔ 7a( wY, hO2MkykTyK[h a\CJ)VWR96rgq1gv#ZcfGIU]coeuc;,u +bD\UGkQd.]oo⣣0J1tw$乛xGa(p벭%#=ƌ#uiZP$G-!vV3,YHuдI6 +iK; +,)(u+tMos FF-;2@ttW[nF1E0H + < +W{xDL['YƾREoʜ>2- p'gwmM% +KDFNbs`1(3j&z>rH*08Z9{뀲D숖|-DܡHZcYw-/iSB哱4IUw唟xz'V-x=}mXڕ:d3M[UfG5&AOLƵ2U~(9H|ܜlHT=ܖW~2+v@n H(;R|ߩW~;^f1Ial Sta*pyŹr\ 5>N`lM}s?ӒWϵĶzx tZ37)z +-^thoClWe ҩ{H e pMJ)xaYPG9U̍A{G('KΈ 0VU0+KFpӁqxV t7 ^޵;6P3V;7RN yyr.)&pe&M5L,w| +թ}QsQ|}#zܝfCn,Q- lִdvH2*v~*) +R +meXL}jzCYXG:bʪ~  |wؠ4k^>Q *ڣm1Km |3ur!(VQ(!/v~M.QUdyTL|G6KT~RkcG7֌5Q`|=z-5QK })dSJ(i0k;nlO63ʩXV[ G~<ևV~`h|}~z8%~edE/JF4m<<1SX뻐/Kf" |8"/U]ԛNUG%fUAk6R(%ǛJMtW'ۙ}Um`{zmfBMw?G8&Ows Qd=3! UҲ+50onO'elBaLYE<c>A +6 Y7 +~(-ah;BA]dDlBw+wg`Γ @K X@d#FM%'A>G#JuV5ZE/Q,N}v$՞ i&8XPv¤zuNRXvDmm3d̠ŝ3M &t,h6u:܊-B]:)@ȧTyDt.77䉱j?5I}ߖi[zisfnx2/cHy4[GW h)]x~΋O ink@4 lvKxWE'82'gq{]SAr9w \ 6^#/BGKaّ5v"T^M[خrXCrW[·( bj$g/m@cLqD@V2D ~!8!]崬}x^_]-p rZiFqǥEPU6S}gü*WOgR#M/VlgK18<]r}К?Xc5I{isZ.yY#4|ƎĹ~nFo?0!NuO7bO9h@!#!33uK}۝B)Ɠ|fé̪OFs$ڋtkr +"Bۊ| +lyF၉;d (=TE +6nڂxFҾB%`m0pz%2?qY+kU銩Fp>x~E_] e#b |+ƃ}Ƣy{Z Y$TJֺSEK{jRo۶.l pt){J ;-pra-3ӭ<겡jw䍊-{VRЮS@4rsU8Wxl¼F x3B So U+;|Cja=o-޷^Ćb}洆IW"zVɸ6]LNDU35+Aȱ !kW_rl#(%h8xNn%)8|4;7ü^ژ`#E}qO 1~Br)F2j-160A!$"3>:aaeITt/f6@1YVm}V(ƀF9BR4' na`S Ɯ e遠[u]Ϡ"GU\RƎȼ0Մڋk{W]`\&[W$v݉Tes6v?ޕdB{ΐfJoZ{-O @ʶeuѤi9P=umiooMD#^v=Xelhdo])%T6Ap&jg"Ԡw ~x/6h0p$nЍ4 =^$*9 mGbRx7gF:I1{77V(E۴ţnldx#D f[٦祅{*n|otIXB-V{6XLd1q{}{G`E a6 % JcK@R\ Mhxr +jڒ1O&p!tӿc j8ccǢ`]0'㔉K1m椟P, Pԩ1I.n=g-& Uv|Ff'SV+Zߦ2&EgZ ԡ#x<퀣/:L-lj!b}X\Rt!l-fh"MNA%tӺl1@xY}죟s_<fC?ct{q-ŷ.4^-xe&\+r-e@Y)1.MK&jOn 6:G>Ҽlh|W'GZGm?mh@tYnϥVs˥ko9\#Lu!bw-s2Tt栉PEp0C~CJfv fn$h[H_6+iJqKt ' jujο?DT1!D&LnGs|82M mwN$x) (79ik|Z'f~1P^[&xɹAmSK"=UGASyfT5I;q8_ß[IW  BL<tj  !Mz D(w#i)En^-~L7bFt {wB6slrM_ޓmWu!x5qôe"BiSo.0F(B ]B77''Ȍ재E쁪x-16U˂o`t^OEDX-V-[s`7թ^肯xnδ)t[,v4=>5;h>`h~ Q.a=57Gt5 [%MJ5%MRIJŏ= EN`c'!@F@i8wD6tGC_) +;5U캤ĉ@y6id<ۈL9wC{ $nN`>CzR Qml^F#*O{ShàykoOQ):=CuWH R)4-epLw)>h9d1}3 +%]+K0zN3ܾdĉ(>sc?U"LAJ9vjuG`U'й$-kPM{ߴʆwB|gĉ3g,O,('T +tap f",Lag# ԅ1Ք!G6~e%t M$+ƒmLIE\ Shnq ?gPgvW`hnv/Y0ჲ9$U/P'&aR +KY +1A;=r{\aGTM+DiqOO d/lr/3",١ıޥr]S WPgMpo:btD?^ʐ!hN1XGݱEWՎp@d S|<'3_=A0XCyqDI3"ZDhYTlG( mhUnWT/oкί~d;fٱ2]nv8hv#]ȓ;xrhuqB< Ji=n枚} +rM겆-E;_?V d#3wgk.^>^pC ͕ҙ)ly5`腰ZsG*kK,kˊ*{CB+9VQ֖fQ֖V+oa^-_~̄:azg{o-k Њ|z1Mte34 +w{Up{ +*ӂ KxO>}; Y t)}K㛆G=Zz Ӄzs Vp$ߣCs+>8M[:k')S-21{? CUw+7+>sܻ~E[tw5;;'= ,W:[(}C`K1[to" +5OL..|:S80X9 ` zKB LB +]nҰ 2;y\GDOPk2AxdqDЉp"`X[!]]l^]WP +7ma˰])b԰(nZa aa](K?=D]?SyPuIE8@yQ˰ ~ +!@ӐŲZ(,MDk=Ҵ}ٓc3bI:bq!|6gyH#>، QGJy&$l6L۰rMf>P3G-*ػ_[|Xm !<5-#|ơ$#q(ŁR0Ɓ;eHӡvnx@VhKi@x4Rف +fΠ܂pBJV$]0#Fi;B,D %Xp;^<$PV ܊|&ob+mvd_6:U y_pi/,xclQ3G۬gPU] ځ!fTO4YmP=tDp@=s=]xp'Fni2Eln'&VIJ6ZвGkV1,lv4wAG:uLsƒJy(lzV* D-/ + +<5vv`=ːfT =Z[g|hlq=¼ف%Bur=9#Y=QΓv``ps7 "cV$NBrGCJ_FVjA& E&q7 meu"l0Rs}(: _Ǡk`+cg`HSZ١L$р|gCAȯo3;r8ľ7 q͡ +ӫpW*,^2/iYjV {=,(;[1Lu6wzuuiK2s-XnU9G80'9I|@Jde1lzC@(]mJ?jʭf+q!!DbRʕd sXUZQdIhIW\KPF,p$,ƞsG OOǼа'vV0\IEٮ_cMvbŮj`Āv-8?/(Cp *$.tB31 >fFdMA6Xug3:.& qQ[/51VPqhI`!Ǎ-aL1;Lс\~9i!0:b35ꜟ'GTl$hc {SkbPil! Y5et|48$ua0^ %  El"(Kddɽ;x!4_(`/t9dtm{2"TU +#j (`cэ +ʽaBWG.:'x)O}*E?6mflǮt!VaӍQ˅:{nMӥ̵Lc T 7R8] (^bЮE0B97JT(AREͨ %|g\/reOxE +VUjomʠfm{?Z̭^V1f:&2 EĮkHK'?R Yo9 I:nXq&b/c:pL2RՄdZoWr2c-b>}ŠcqxpR74j.R#b0Q8"mVd 31j =ZOu?pT\~;Gա0"zunI Nen)]eg'y 5ʱ,kN'mL +m*/]@/J|U2҆iֺ|eU=2\jp \*M`3NK4.UjaαB:?TXJ2}=LL)] .0erpbVsx u(j*Y~jbB5^ݬI##$wV6t 1I3q ,5HLAyv NƓPZ+J%K + 4 lcʁm=%hy7OLsU^B*R5hX3綃jQ{'I{?O8Dz Ü/˖a`xZw 3lFrXa5G Ҵ<PuWA }sK2_ wMVMZσWqr7ǣ*qg-c 朖̡왛o0Cc؋%? 7Kݸn!]6WIvN8eYW&f2xck63܉vw2C >̭Ń*MSkV ]y)1r.iنS(\-[ -s(n᝘0*Ͳw kή.ҫ"7.i0#|}2`ET)'A{>ZSsl7ih2-)Le+׶m۶m۶m۶mwm۶{fw6ݤsNJU,#xnAíCd99Mrpg^o󦓚 mhĂZb#nTuɑ NP׋CHkt,tI`nq*?NWCL]1;YWq3_=C +YL!&R`+V,|G5. X2CS5 6Ӭ]LsSUv;\o&*:=ƑñwJ1HLJ?:=cgwPW:Cg6>v6p~(n16,C$4`)h[%q˗eЊMgU銠rH#Oeܱ_D}Nʀu?HDI%%Xhֵ;l 0k|E*RL?Ⱥ~90St,@grPfD{?ڎq#<4Pz`U~"s4Ua,Bnlڬ@*!6l}o #yhq"dG[Xdy +O_%=%,H5O{؅/4JYRᎶ"ŭNxPzwdUSW;e))f8vԇfj#۩AxQ0,)hfbZL>E\@͸=k!+h*Gl6JhsbxHThse8l7~uUYSf3"lP׹NƚRDc(5|n6D!eS,aLe0જG؅@WX#f^.#!I@\#ߦذ%dr&c:LZClD?f"t/GB1 Dto]P7v/Uڙ&7a v˨SBTm7sȜiUnxM.-EaQ6[ƣWL3vU6 =1.q/3eoPTZEf# 9x;N*B˒>218OS?cFei0 +gLhU"X:K\m #٥?y~QJe*Vx01-vUa 6)[F1[ǁm *iY1  m}Mj ԋ(uh87~B8`I$V{9Um\aƝoZOfEAqK+Pds`)V1RYilӮ\(˜@QrQ 1/&p0Zy 4 TS L1is2LTz(aiykth;vs:U} R=׹zHU3YtU@p aK"+yW;caGB$4ikb%z.stuh0 |"=+O `!VOyK ȕm m( + ]m9'y`Ƒv.'PgֺxQhS&{No,bXsfi;ӿX7"Ucz2 :1~[4NSEHWitƅ]xν%f?il'JF$>ZRpS] +L\$ +:߸b\?BM{aXw~iǥon_7]?rp"?K|%f8*m>X&u}|^e$,g5^FQ|Z|N~_d-=9x9bw".M +cj#p~k9s܏NM>Nh hs]lmK)!G 3g'Y ?̉<')zrsFZ#7+L!Θ`[ K ;`.l_Zm~o$5RRp5nP+ }c v)KX0&0@- ,L/ 0cUF40]Y䫰/䫐'v % qr\!k`B]Oj@R?;x| `c9m 4pyZD=[q4P{}A}Q0=C?{0uW?hpVeՠdZh" ʨ*@v<{Pz¶$}X"vĽvvTds8d۞IR%CEl[1>>U^0g|`'u +ֶ=@pߒ,CA,cV74583j`+4wצX}6;A{"w`V2f˹#f8K!/qcs t mi0nt@up&!!.X3iLp4DwTСYpg!С,abNZ* jӒ Pa t> &9 O5! Ώ5! +6Yeqv;07lE6m0@?E6=:À?} ؽd& }Pofymv MٹoGqKz͓ +ٽGm9؄G(|M,ލ,y0RWNAOA\L݌cr()ďZm^_!I4:`s퓧@v`g G`z|y\&$ wZ9ۇۿ3O_|?gg7yIOXYf9i^r1@oad]jσ>b5\մ,X*ܙ _`B>s s 5HfjiRpp>K>x{z 1d>ϮRsgr~=^ ne}}I +BSQ (y^f.;̇H1ViU e#nԴcvl ۅ݆>\U BBЌ1f7u܄Om#E_۹ {5 6}靔yeV3ZPe bsgB;s#׸~|^zMޖ+8#|jdިΙ J ,xA;m'BrhzFf\ٱ,ڌBΥވsq/9q'&#}'&L~ iQD9U/ l=۠`\̚|O2څ;7$K7$'Pri]Ig59vMjOEV_I6"%dBz`ja87R̊;ƗX[016Jn5Sra ?o47ŬJNx""Z0YMxjkMҫP"r!V 4{2 YUOVeB+:ɔ+kW3 G f6r,M$8K?8Nckˁ!t!H}$IIe +ʥW*/Ss6IL岚X=pzbKuӥ@nH R$X.\v|g n/NldVV d =wL(pC=fOچvNh6(0J8\0 ukOQ>%-fy)q 'l$| D-Q"3 +$iJnD + +x1:7bpA΀GJ@SC`@3koXKF $ E#k;h (-p d܌3(9Eh:|] +g| _(E*$|0\TO9%_\pCrED8y,9j0ㆳ.i(x,*BݛHMGjqH .\7[=K68/ch񽇕zdRfI7(|s +#-5gzuK<}xeL6 +6׌{?G_ܹ*g|ۢf M"B%Էg׾E׼+aժۇ@ =֪tFaYg4҆DFD33Шk{M=m}oțѶ;rI>*fwN@sϪCĎkb~GےUݚ)[n75>]zOue8(} +k)Rm +~NnP 8r5Lc* cJOu{ lj~+LP<*fY'^L|^@ʀܽswHpɩlLIGjaQJ͒BITi?k0nE6#3Оp"L9l`zqK=@CAHcƁE*D/bh+IvCWn•zTDG ba(Of6[ )[${'|/๙fD2bO%ʠR7nS/{^[v[7CWN+-+,#ɣk.nWNU_ݺIh?ض >E$+╲|q r7acC6"BN&P3_5豍ij`}jt[-a,v :skdEĞ$x**YnnE%?pĎ '%Dq{NNO +x zOcj_Кy,4 ~ڒ|oJШZY*}7F;&:9֝np?_/993'ۯ5IM>s|ۘۚ9ÿ>ÿ9˿>˿9>FW<ψ fV)~_\oUSxss*- #XpWYo{MY=솸DjelZ<-3 lݞHH :x*NGEVɓ[zRߚʢckkHH{ AO-$4!lŰl^8aŰeŰGD Iϳ3c}LIQ) _5cFZ.vQ8frCMJNLQw*FI9? ;719| +:(}5|~V &nj#PC MǨJGmdRTkS&&g0;G¤.DrKthsBP+*d7ԪŚ@o~pūzMSk> ۧlڳEnؼU}N7X| {p7z1?6<pW +n5ܒ&Bށ$Mcaz_*Vh9ratqt<xu;J4vof;L:߼b^f)9 (txיW:2cB. TCh{0>=>ӧr~.QTSPAM)uWA=Lx}]6~) quI:P}H5䕽]rܞHaa5&؃D|cf4y2D\PPxlO)&MFbs* Ȯ7%&HdlrhšAZ":  ZdeEQUQ]PUDtu]yAQB~̒f@,|<~Nvo1?g;܄`\PƗ*mP$ UmPǭ688>PՁ> >䠎>AsP>$ @~̑8B#I'R9PS9XwA;ԁtZFu +vjғehzQw.8:Z։ɊVuRlB^\ɑ?\ɒVwƴShq`()4A5-Anu-ڝբ P9VXSq).FT9V\S9V^+>tTREDUёQU)0"@Q)2b@a*у-S:(0BA-ȊRbT)5A=(7 +K Lvaґ-TMTQQP T)7CÅ!gMK>*gmK?q%|*,\y| 2L&cA~Ȗ+3Lvz;>;,ߝvn\E{갗Iݫ؟[n=uiv{ xeۙEyOq{޳?EtNVE·<;?a8>'o>du[Ǘ~xM|nu^ך=rs,>-;r l6[@qsb.!9|WHn1SogFR{/{w?7|Q~7s7_mFy~[rd$9*~B3Ԇ갏K5>>t, gI{zh>>Qw#9V6'< U_u׿;bon@(`ZQss.]J->NSy;{ 㛠_y)?.mJ{" ӡO1ɔ#y$LB%A2A6&'J&a6Aߒ=>&NZpJtGHjJN9K쑶+:$L}$OV#aWr#:6z&Oȕ#yd׺ +>t1tF}:(P-&JCt3o-WJCn[Ԏ"sҁLڪ2Ӧtҭnu-l;KRA9Lb?L69KAd\<{=ZR=}BGdQͺ$a]ZȘAj>xU4IVr~2Sot(;[Rol^\=yu^fnD>LC#xS~򡻳IgWze `g 'YL3Oƛi{"P:>-tjD +& ~IUtM%Mi܆h1C0Wݝz0FEpiz5kp"%R QrhiɧW{(f P<}ZY lj՟B֛dl!;PN=rnQgu0OU5CJFW}M)Lf$;kwqRVa-1(m.-q +^%EWq]8i*nK{w^8`ZBnψIN;BYk*1\ٔf +5xDm"6WT ~u4F #jd8-[2-i sn$_з|4Tſ^kvL,,}Y3_>yR(Q:;D>]~>] +/L@0}>ySA+dZR6|ˢX޵zQ3Sue9A W4,WPblztҤYGīi\au1[y0$뼪FM*~Bnúx!C@<|"eZ4L*?du`H5AWvԪۇP0si Q"]וP[z4Ƙ\;y/1M{Q:xE:I<}0/ +[JVųȁ}44҆Y1WЕN8̀퍥%CF&S2Yua ^o<#_+H郪^w"9^Q܋~&E 6؝#%+9 K*ԧ`YvF iZS7Uנ>+& +zsʚWxR^[%هuj%joYxR4TC}HSY-=rh>-:Cb\&*:M2j:wu1%)z/&^Ġ94%}q[ͳZ SnFuK64f(F:9΋jeJBCgl/AvD<BrZ֡ :);fKK6(M]zcfTۘ.s1z<,Lb#^qu]m%^ѩ}iJ~[ga6ҭۅjb@Y#4}C-/lʋ}#^w&rBש&MסzMuٺvM&<:g}|Ei5*[qZZ rPgh4Iq@/!J'{O':/_^շs #Oqdr^fжC:0eN'=7yUiWV=<5gZ4\$cQ6t +u'Xؠ׸w$8 +=os(*M~_c5]C4{'*GVN=|,Z8=ZYIk U= DQ=>c,w;Oxb+G8aifpxXBJ +KH)B qSGV/KHOZU$F S}Q.JX1KQ':}xNqGͱENbF6@=Ɵ+[A"4ҟ% ɂ1,yzE0OIh E`a64w0,~YBa^XpJ< `41(aC/w!/< !0aNy& fdAFt 2bw$aj#`e#ITD!Z^Nް1q!a/0a~E{!7lC-0\3%d4ClL71Ari / !Lu!R^ޜgxe\CCq9C0^Dl<Ìx yk9uhG^D +upGL^O~g\ѽݐ/C_<}ȿx +MX41 +fFz"Q?LN޽$ȘӀ37 ޻ cE$yb\I F0V;$PVBy$ cTQ^4+g*˸]Օ7¼P&6T+F.U5W +YwiqPjͨm nn&e{P߸8!i2@`kR-5H, -PG Y4d%4xZ ੗]D8KB]ZXpis& cwߟH`}%>GY֒ZYH{sBJCS\XHq˨I @[5JRFJЙQD'Z@Z744;ߎL*I+#mL*!oo4t oG[wPR|)_U' M&ZskXlZ$a7"_)^mϛ7 EN~5` …V-]Yds2K7BYD"Bss[.EGщ/It5.J5m׭Kբ.^ lS̏+mr\㌔8wFvOSOBs(]e}~DYKnZ$"vU<# ѩeUFQ%>]̐4Zw8⼒4L7I(:K+zBijKX[K;OqbEy=\Vʔ~!oaOa;a=67ХQ;Uxkz7ʐM^5Fc{5ȋO~J=M5 +?w# -)Wۣܷ~myD0vGK˾Q+w j6#U_uRaMf٥0pªZި&+ֵ&}(`?x| +<>!fI@oX;X Q$'9algpl Š0v8yЦ OC=&cWG'c9cSɃ9R˱42l[2wlJ|:lLj\SCFB_-0CK9 ˋ #X|5r=WT^WVQVU6Ձ_VKJblW%},c^]+|-7TWW{- "8ү՜Q ;p]-`e/_gj+^y f=ozހO||[`؂Y[[ObF?bn`w{xbx⎮m|pS.Ѧ`9i| +|a*Z27RpˁtGO~'*=6lOKKbKռ UpW_D' +/Ы~nNߜ50 {6ل Op ߰ @X_m=qw]UrcՑ}lJu_d6C)rᯕq%1j<GBSf,/&_o{O~7XVl̰ z.TF_''͘ _bf쯱Y4'?<(urp! @ NI i 0 I&&A55MTM]Eʜ#^S^cUfe]^@q?/+YqsmW$44AWy' =) {RNA>Ԑ}rAwDxAw} ^A$ؐ"fA=7 w wAH#K! # !} ! #}# #C #C%#} # !} !#$#~##+;K[!v&j#u&EngC :q;#v'v#tR'*Gl_8%6G̒:%>EБ8< +#z"$#~hWګHU{~'GWgD=8~gGL&QrJU4UMrv&SW;Y(|R'dlH;Q'tŽK;q'p|lCkiš&|hB&|&4!d6 5p\4Al+ +yŒ <$ +{B/ E +V.:3Zd>|'.B37Iy1fyRbт6)xqP" BZ ;c <zbs >% /,,3ZD>;t)t~ ~=;[&ljI|jp`n-.5]>5<~3bFsQ>ܖ{˺/(r+t<+L3~b}4||NslVj\^\1Ray>!WUo鱟IM^ ;$>MS:QxS$G;2v:h1>P֝xOq㭡ɩ>mQtUjaqIޙQ/cW5?\ZPɽn:|,A|| FUo6p>)x\[ARVtf?Lt@{B*^#%x9s:fE^45m6GBSJa\7qAN Ȝp$H-)&@BC4 (*  M'M@_šB`@d ]* (AN0!|TBB,A'xK+Op!`4K.O)큐@(0(D (l^?|ttLEkB * 6*Pě aoӇ}6rZ >|!Ӈ>|Pۡ{6v܁A-wV>6`)DuCV"{៳6:A''87.IAغy}QIS<{9%EAp[wPw1I.[:uUG]h⋬wvG^gR'I_H,5MPXٵG>֋CUx] [_g>¼.e?SǸG/ +庲.fU9tO+CWPpXCϺ>'/͸#0e=@ rbru j jaC[L} ![x“>/' +:x +b֎FW'^oﻬ}mS۝sք?N8E7ZO<=?TyzxE8 +G]a1 <TSS?B P]&X;YKg/pyfۦ5rN뜾Q} +%-}mkǮ[INC ȜJt9=/\= +=}3KF'5m~2)e?ʚ˚&]gmc{֪䙍o,<֞ ]B.}f.`jSQ2ߖbnjJdTUXCKQ}><|8[Ԣji_uzEIU_2>t߮v+{ +F]qE|o7YǛ + +w}\ /)*"ʼODUy_P9k Ģ+^0}#ۘn&0oGX[_]NaX|{UOj27.<+D{tS7umDrrK2#rLi1h:KEn2A]GlZ*Z,Xk9;ckk.˴Nl|Qm] J]>=79R*>m6ˡɐZ!Xfr"J]Լe-# +ur3(I] +%E8aO^鰒GXϡ]t}c"M rqA̴tTERNK.hgk>4ڒ{q9񥻛!2ONmeP>l̩ )ba}"EtmD xOf8q@ e-Z7h Ignpb1բИ9\ ׉bIh*̤2TuCتva4 Fchg[Bee3&(aV@!*1S]J:QUglA*è&YYٕ%k\؏rb8^fIU,Έ?YA#'L ~s@pzb@>ʾx>'v .'~6gk|1qP<Xv=Y"4Ro'ēGL&-%-] *?;z /=c[2:ȧLWԬ8^:?Cz*SIS (aN̯3ŰÅU,xZne bu/$ :E2uSio|Giuk߲$jϊЂL_)r,9_6lYls=*gWfWo橭X.LcgeVܯyR4.4߳P]miIT1V/kg/T6{&E", q W]mB*^9ȱ"WvKhDvvYf hcMeK<:)Ju'syvmY-`W"p.D]dWΊK]?Y֕o,HQ+AW%L|8(dSR%=Ka&¶[ k,o.nɜgk%1X 9Xep^2;7 1szAN6`_k҉ [JްH2o)o܁ɭ%e%QJdh^d4VKP(ѭ4Y*6]=Kuι.VYy :peY0% Kv13ąFβSodRp*&$$Ƙhu\#>L@j;Cs 4&mn\`Pw4KSd9hL Sp3ZbKO3UjBVF)dhe tvBKS$,$-ͶqkOJBg)~an?\ _*[2-F s%wͬ4~Cٳqnj6o&c"Oxb YaqYK%/<&`f0 II `/ ]*2찙!ETHV](j3&ȕ|gg&E,2B2L\B1&mwa!R,fg*Kle][ KCcz⬜bMԏм>c5e.pg?(i溘DGo"Yj,wsNV"?J,ӄ X[%Q%ʢsVPD”QBA³ZWX8e9J"XYďJbSL 7J@p(b<"~m~'IBXlCջax:xGSyyHO{1gL?޹^%uw|:%]X<#]ٌ?v8,TU8-R24Su|s]59Ԧ_;cڽ˦ih.19BY&7"ēl;zRXc 0Qe|:{"!^-7c_mF$5Eg!zeL}xm%|ʾX3[' +j\;e87N=V:-@~bcs fAƽĒ@c M-8E_aÍ#}W쏁i {0AƁ# nvPq hc Szӂؓzׂ#G߀x$Qx$y(ܑyxCQyxCj߳ |AygCzΙO1DG[X;/ӪH[v]\᲌*I-JF;/r]uAK5?T)lTxW=7}BZ藞*Zsp}k{Ux3zm+^ݵBha<ADAG?PEɘ M9 UAs,dMHX H9P<\ȋLP<{&"Bbt*N@ +1 ys>s>#a:s>Bs>9 iH i\8[DkϠ&ncm^9+s| +7ws3ܴ# s@ڶctlxYN}g{d=_\+ +.v96ۆ۞~m9V׆.xӱc̾=n)jGӂϪaU҂9=[{3ce;66x9'ߜhm;a7w3ǡX<6{ݒѧSOq6|V{lΦO7|v{lgD5n {9rT=6?7^< p[/,0<"sIɳN:75)߃(U4dD:p^>T-GOoK6Md*oANKZo+^!N=?k7jQ-nЬf!ޘ0'[W{Vv!Z3h[n9NXԵӷ'+{ kg$R!P I,"ŠV%CRo7\)UV !cnΟf^xP 'j}CbwcRMmݞեE%t<(񆼥l hM/+?i87S5(\7(9q*H鵚#ND,"(D%1KW1HEMvEoĨHEmY75F""s!{Ea+zi$wRTJjDHJR $6UV ܊'f6lKP }\p CKT|a>5ޏF +)TQBoݠVxTHsw]@2 Zc*5JDo:8707qr=D7J8` !ҊF.,6Rƌhj%I J5H_3"?G9Te` ^!nR bOD1B!/_`_h;=D=)C_9ʁr>۹#52d ++Ԡ,8w#;qq TNH1g^IS. f.e"4.teԠRxr")GD2.`rj?P50AGPc}Ԙ=1t ?_ w8EE +[XD^sUZ [J ^(1@w4x@y1rQWi Z9y7%@;\I'G{ґg%^sװ{标;bCa(iW1ExmU>OP?#\YX4~XiK.fst [oyx<܍9z+/SqnVkK{pBD`)O.mT.{zi0j)ޮ_7a6X%ֿ\ҌQt| +6eE٘D1f6 ѠlȲq6`P6l\Y"@˞EA;994Hz%"12$C. +*6*%'ɪss:AvW!R@x +JP7%kt 9<ޭ509|^7լ՟e'| {}0E TK;(~_&9Pn4E7C셬O%J[.j& @JԐ'JJ0_Q:c\@tfC!Z (L1A$jY +S=[6^@FIߐ}C.LZWKR~(ȸ8v2C}V &9K7+<禰͡%mfoau!Vb[c,VF!¦A!oPYS7E +{i*;I\AO-;l[uT"PPZ*h::{s +4R} ˫v_S'배@X +!P\Q7ҫDxVdf*e و n0:c*PkQ ӛ֖JH >ߺX кA Kψ߂9n/>A3T"Eڤ4U9뛥 @kH7],ͭ9/]hRkp<;kM[d2h:6쿕Qc6 +l'h/6vNf?x5zL P$~ S԰r?瓷 \/p@ d,ғ_&%gW#X 2#@c/z55ྐ{h?8nvc~ٖ uS4Z]$<;8˯j>1vӛæss6z o~Pу6"h(,>h4=@&'p5ҏ^WGߤH?NpwΥ|Dc/>olA}}mµFٕ]Yq*$m I.8oڙ8GF3O67>q4mNOklQ@gnF:_tIVhvgj:ޅwfW m,@tjL ~-/?gy v)(c׿G9m#{H-8~-FL-?{FG,l,m_@:W;X^x8k9ְ{Y_`_J-Ō_G,v>!V8֯W蠹f?SG5fy bvyC3yC_>is0'=[[Y;^aD3xtlX7g~ 5Ay +@p?Beߖ[;c8oЄlAN:7l'6 IQP3snTnIJmjRֶW-8X:| ʿ6Om +d8Kwٝz+!49vq"{$Dd`8P{q {3;`S~FVO~PVod6N<=K|it6$& og{p}a&Iƒ.̇=r!L'?yLiܷыNhlo$({biY㘿9#Vlf_J9 +3͛Pca(#ldgZK/==ɱ8"<6;[%0(buԱޘ3uzbWpW6'<+=~Z#߹յJͯQ*;tmx D׵"$@:kW9 +V˥vW%q 4yK|ă[{>@a=2,!V%!4,pە3m,R7JO?RB7q!G`휎M r5Fb-o)J2hCZ4'PNx|ԿPWSrTfh 5$74}WQ? x2IuIˌyq󊳓j<`&xmf6S{<*0hua(`.‚1?RGyUEC +.Vlh۠_S@{nidroeF%xuJ˭c5q1(D8qE ~ N}l=ТD' "rRHT"S|r8pΓI B£{ J*k-nSeL\^>9&'M^\ mª;oIU}kWěb2w!kIqS8;vzĀp@y SZJR *FZ$ٻtD5)u0>>J}Z7¨75׈?E[vD(ʊ2YB\r7򮚮-&Os"v~M~c%X3Na(qK7Jj ,i%ոW ؽC6 -lu&yaI( xt:vDbQe{`i+n_Lii#qHľG8" SUش5uzN^*rK6&ɢ@5bjלĎ xtmey3\Mm雍jэoLvح@KrOv k;+{rg`7bQxW{Z *_h&tc%6nFR.ஔ`PVԛ<4GXHT50NXE2KgLD#Tܐ0AUըL@ffXKGy ;OWEZTQFRUacIXIjjg7+Rpͷ('hI@gSRCډ@(GYvڶ?¼ +wG\~]`5E~T]ݘbRMpo?G/cm0iQ5kɆrEW0ZзP3 +7a2T\FP#`Ÿ.ue>wze UpK L6k9vx7C 3ʿR*M>L֩c(v&] ECxX}zqiM כ D&Mr22)jg։f\v!1~0~,<1Jc%L43xaDYaW> >3$\|yT_ DZY~CfKHm/w5ROsGɹ(8;:x/%H 1 YJ·s`+ !)( v+Qs4M&$h8f|O"dq 3 S g lKD1dt(Vz331ːUNjJo=]w6m VhyT0.t>\)X`WsTɿI"u3.)cxC@acbFרxr\$W.*w툝v^;PqqK ṷ?G0# mE95]-PXUmq H$[,2t2M*Vo?dhM<ٿnsoP&Im]u))iJ|T"-IN yk,wXmzʙFUL"tT׭)e) m6bpƟӡ"dU3iӬCPݥt2L[c*7(/C8Ro^~kX x wI枺+?JuHAx2ێІ!tbbf=qY[Z!#9(xeh!}r.L?ˡE FZȢflȰHn +A qLbd֫kFهBg(d=3"JbDlP;V+CfS$@D3UaRr:Sӝ?n@6r&ږpC$C`vvj!GWB j+߲:Aڌ4AmvBAB ܀%$e5b@5#0blh'ض @A5AU6Ǚy%<=RINwSDV lPP?X9Z8+,JW m>]<룣=I6m[JۖŲ08d $ BhNɺג;훲Vv.2UwG:k~Gr9`>-}A˯V?7򿿪w +nߒ9*(_{ +=*~R* E8 *wiU%)XuKF(E2*MnѲk +4&qBeJTL!3LZNSLc!Bcz#HVe\2)!*%Q!4‘BR(Z0_B:<5 nqS*]jSX*Zeި[XWelծ(-R6lMIu:#YP h(MQ]M^.1zs.Hg(]|^o剤{. |edP;GeqғlzM +zy^;b+W$ h_DfAg^zbF<*w J7z|i-VD:b;R9<L26ob]U#߾^1s"(ޭJ_ys7^-)Vca'ѯ[JWt^<]K3!j e(EBY5 fNАQfD"1gmp)L;pbDYf3i&-5<3yo6}o0&Y[7ФĖHS}G[F t_Rūz^̐g)Z B(1#t)GА/IOZ\R ]"4Y7[7y}]: _bB$G=6ngNvmYpOtܣnxB6 ӷxl97f2]Rכ{|qe1w-)vDMCK^\A '[N_Lk-Xh1l\T]jyጷ60z^J7 +\NyLV_ň [~5|LZIpjJ`ۯq*gmu _f3!3M1$ɒOSBPcⶹ-@:1(80&&b-'.0,]ۅQ3Clp:N#^@N/䬓޺֜\Fm9J®2Bm$OKޮ85 m@*2qZslkkb-5*p؎*E?/ڤWP,Qρf4Y=&uꜴ16i +d=qBPXlw.I,VXd~qQ" +Jϧ @h,` +c2PR`1Tn/)QTÐA"gZyZ>lhCܞIɵ\$Ҧ9a$|^C^ŗ!]ن Yb&EŠ9r]Z*ϭxS9#f  it['u 'E^gc@哸&XPr#y֦ vV؂JCh9#%w +lAJXpgD<1F"xC(PM<Ϊum>J>\d͟'Uo\UO4ppAUƠ8@^rOe1[cfseSPp'xjypJK]21ƾPwtw b)kY5imp۲izN&gy +-wdclߚEE<[L}7+U6X#M̙Ӥˤ$dMu6+EKK).#K_)P97;;{uU| 5r'g2/f4 G2H1ȠE|kw^SV[@Bw_? + +86@,;MGG7h cC܅5.˂/ߔ=@e4S~Hٗ ~(HK^ȴZ3#ش3q7\ 1-8e +LEn +d8f$GL7 53l4Kd7Eo;Qh͈Ù<a0mdŘ7MFj +j7/`0'C5Ɠ TToԸ/޹| tHx?GCW#:sON=/LPd G̅ qѹ4e?a=a{RP>QxBNGkxUgrznj~0b..kpQЖlqV˥ + D9w¬p/XiJ)wBcy2oc:~aHs0YdmWoib&}r8뎆Y9W^_5ZOƠ^? ̋j# v5;(@5kے] Wg o=F[YBNFێ*,SVU-,e'L-L mejbޛYB&\m6guTsSV8f?뼮rb4+S:gGP;Pħ)<(w UK^rGmN/ [CRE.CF^XagҎ2}Iߴ4ipFMFA1=OXu`fCfs{e]6hR,v 2fl~㖓{jR{Ea\A3$llObVu2:\Q~.>=dg׌xVX\2tnw틒& +giP=jbq asd/Xxym۶m۶mxmzm۶m{wku{+LzRI%u&3[RK;YOx>">|/,-u!t4ܨ5J! QSyo}L_AI(o~ӗԔ!{Fwy+.yl:4YLA6 U\*jW!_cs̽ >o3Ejq# 0N@ݬ顬>>i/i M7dD +#%|j(ЧU9 +ȼ<P +fHrP7M,4L-񊣠֧B2mgql| uX$%N]">/ԭ۟d E"2%"E"BB|DdDYIuDaI:AJLq )qѷV_DI'e^DD=sD>sj4^ ?&`&ah}`R +R A I01Zme:ȉ؉_)a3gaOuG0 Mh +m30&75&gN( u$=7*A*Jmr'=\JٹVKuMf4e!RC'aqg2UA0{45y7v-z-mlcTt{Ѳw8ݧ^[uDx=2Et(dz.}9>%LKh\ z Wd4>9 mwSFKx 5]7=+~EbgsnjgCҵm$TabJk2OFNfCqj56儊 1}ܕ>O@]4T^ *_(9຿a/T^?jlit(X?PP ݣD /S倜nD FڳM UqŠ E9x@198r"-RsIpw[ç/PC} 0&{@_]p0)R-H/Ij?W1}mꦻ}mFDE[U\PvJ9[/WL?,]8s5$5h{c+`4XP<Ғ,X.x'+b] n&= Ffc!oYWq>?}WVUF' Z Rq3`ڤ7Mbяm'xt(zawiEܩZj7>{qr"eFa/AU +Ҫaמx4']?6Cb4 lcTi[HFm0i+^־6+^Ըgf]-e06R=dyCC?*e{I\(fމ3C% ^n&s{ ҖN5" w}`/$i&xz3 +&nxP/~4 6$Gsy cgNJ)_9/o0Wž\Fmt>GJnPC|؀Cxo2Ceh GW#v%'px) Q}zdM^(|CU@1 -۔&Wvl&e۔\ an&&eWn<,Tڼԍh/kf\hlB<& 4 #^vA)}7ۘT]'*Lx֚Ч4X1?c:&\X +tkER!8. DoXEZZg«.?CuE[7Y1h׀{R-RQvuîٖ B`n7>prW!7 1: :`d1Bw+~xбDM?E?qqr?wM: v%JT`BR3FcR<l"\*Srá +q ^zZC{i1?B2o~q-n3j(xmp}.߽Z5E .H<˛'7v8|z[ c vB\'풖G8?96hBУYn1`B8GtPH@"QW"GC ~H:Bବnj#{TV; +ɮya궪{}0X~K(7=n0W e(-hݙGUVy(/N륇h0==}}Kk觫(We=!.=".=#n\(h=6_!3_ա3}z[j[+׏(7.˞C00;Cp'V 9[py:B =]2Ӟ%d9Λ- ]5,)xA:[&6ܗ5ht0bCOOx/{x/;cR;;Qѩ 4Y5YS?,à 4^f}ӛ.Z[zA,SŤ?_?}GN"t>J1243[855FoF3hCR9F>N69m%ӆ^ogrXoS޿5ao -f_yEjX0<近g;Vsڬ!>{f;>>mQUwdQ[*|TTcq g3+Y g[s~3'm^Uݼ%>[\2Baqs vvsb[fOW4n޻[ k?sFW{͟c.#fw|qg +vz6z"ؑC׹LZZ(dՏ6w*Q̙?3w6RDlb>xڢ}b]%MJazYbaԕflmlԚڋ8g\hueF9ڈWwjC=ZYߨ6{1CA2֔F:4(uuF3-S yպ[~ڮ%ɼ؃(8#*eq?hM*$Lٹ#yHZm(8Ӎ+479Tv}llD8já^Zc0RLPH!BWc=kB SK6.a݀g>1X5|PͅjW`(ENn7Uz&2zb*3^>|*qQE:hRTkׯ?9!^l|G!-Cθ!:$f"D]4Nୋ3}^mҸ.+oGR[$7N>PӶ+nvc9/ȯr'"}vב>f1WEPFNf@n~Bʪ@5,^"0Lz8sӸjԜ&JC s7 +_OI)?l;z>6.ݛ!*W|^^_ aw LWU BNSMOަ,7נ<n49!k3X\&`sJ2e; +){pQ0E#ZA <ˎ1Q$K)E##^D@lm[ 0{z+&XȰC y$.<7ь:3"B 2^ -S\BK&2Vh,]-.Y9YԲcu1/ָXe}|X SoXx{ 0VC|J +YHc9eEŕcH8'$WedUЈ]I"* R2ϣ*<#3ۯrܭҤN*^(#|-wMĬh $le#DLQ BURD4R:=V?!MM>k9a)t_Z%;9WVviF%_,*: q^ ե:0〓B>TX4U\:NJ%!(QJӇ{2mT2LN"Lwyaګ aS9˷* AR^K^22Z#$2Rd5m\9z_'fyTQ:{ yXR,O*6ɇ)1m&’C$͒xJ}Ē%.E,Mk6|@|٤lUJ >TP&^(LPBTʰzaE)A*8d/^LҰ!$<Q% @j0ġ% zz_ M/xt2^ 쪑]Z5ƻA񃷺.ģlÁfU NzƖPjp6ܖf%,xEզ '{e6=m!y?)6IN3L|cCyLB#aŹy)];o)[CYMVX5h1+66Z1_6k!KrREu +~2ֹ[nc<i| uW=89oAd"ǘeQJ4~a%;Hx5ay>@&o(Ź=*O@W֧ɔGljZGf^8]èȸp'݋ .)ǽe<܋`Lϻ}J=<4D; r @i,O[P}a^< eQY)u_Ji\mS+pG[ ]Kv=j(|H4Ap]I´\~0Ԡ^(HuT.-a>ۡV +  O%.p5Q ))`+6DsPK9[H7I3Im"WM)V~/ƣ$*/jUGș kckv5Pŧ3sݕٍ5Í11S [U*J.Y͍Xʈk;.D'E"|xOX>iOe/Ģ@Wh)$K(/໰@4w.N!ί[kJW|֢жsa:)C +zh 5T (-Nkh]3K/E;$"/@ jrP!Tl +o-~'ȟt4 "΅9<` +:_2~l}nJ7!D\.P4>2AC_PbqC{,Fhl%EaU䨪*"-SHTWmחYBu8b{BBeFck֚A-mX~qiAU/]Zt֔HVg0c "2?wN4= 9t}%-zB&<JJhh"`DvHi=+XS*brAaPe= inJŭ$?=gJ>EU6H-'ۢPݖE[:Z [vjC.%RH_#em"dgDOs<Ъc@i937"!m\WyX΁8$8 'f 6,bیYp7*#(@O:xj \AI@g iܕq~ܱPQvdC- F8BiĖ +gs4 X&U)iA|7L#a5O`)}Z!LWj@v?{6^ˡCGF'a_Q1aVվu;9N([Nig#ܬtJ 7t\cs/h2^ܤ= j5h4wfMӛsW?Td;5%Ps4(8{xT7/_ 5uH?6*jX@H "&25ZAԪUtW.kW;Tg|vL_gO}_ӜgxOg_AR6(pN?'y=BF%?QVW,J6< whlk5{6XwpQCzC݇o6M^Xn N>;ʗ3^^>:xkBx>?#E\|u i>q%Re.>+|.>agoa.>eH=DUJ]d×Dcy.>©O{!s&A^wϢϸݗ\=%?wCL|_|wĄƞ"_2y~o)#1^wܸ!nxh2JmDe矙u#|I2TV3vk$aQ 'yS'k"2" kE*_!#w5<5矿jzN ӭҖ}k1 +=ܨeKJelw25?NڄpeIR6fuVI/NK'LshGah4o@qa(Չ lV?3YbNMLI$z"?/7Vu LMT:DU;0nm|e]\GCQ;sP[?eoxzU:$Ao#kuq&s(fO8ks_K|Рbb[iQ]6PY0_>9! nhW*JB!Kagt~t =g#;]?Z* 1]|)&(ͺz$%삀*Ϧ-VZf)rg];Ϥk c4c̛΅hzʬa>u\]b4;ް7L:x4ZdXoMR +h,]l"^9%Ogi~`Rmb7+ +|.esܰ?z+IGl%i7sm󱨭T-:Fyjmn'](vCY.i*RڤWa=DprEkQ>%JhhtC4KtiQb(7_땍Eb>"vA?\,>n,x&5_f}(# = mo#Q0!r;MpO0`,Ƭk<3/,v>z晝'Y#[gtNv5( -hE/}-jU'uZM/y [ie/uM-m埲+wK+ngg9V)"${I7FL5SA̵.#SSYneͳY` vM/`+-Js`ħkEp352,4v6x_cs1ؒ 5͒=9ɒbjG(]$LwY&ȤU_igfiGH&*bWP7<8qYjڂLuS6!&Y +~ߴq3'T_,znVxlMtCq")p&Sd pJ3Wv3/;{:Y]G#%:n D6b܊Mo1/4T s wVl=ـ;C(\m1z#?T/[VT#LBxmDXC(ZDv-O{FtCp%`"հ^PJ{DIQdTR%eכ;LsC=p%~f5h +}֛AzZhR3T.3E$YiHz?vZMpm[?9O40gw?^ w9|fKҗtn咼+FYiA*66H>ɾckfInoL>FCs8:+;׵uyg?_{1J҈Jql;=K%>AcqEƍPp1x5*C] !<$nRf0u7>pm@ xwxXׄ _"Bg +p0Nʾ*qSzN! cXU/>:9}w`#|q۠ed2ix! ^!d`@ eԔӣM~/Oٗ2w!>pZ!SǝlKW=eݪ 7{6sKVsaݘD0?@wc1wGg掠ow"t>G Hr}qB0UV1<̻kNu[_ׅ~F~iX?[ep}"ޠ>[9 $\- euF} sGo Ow~2ӛq uMfĎ; x|ۯkiL`;Q>3v//ӋU#$9[,\Ex0y -zBSIT֗In]5ɣCxނΗ}K;fA̍T\̫XgQRb][ +wP}-WƧQy#Fˠ7+MM fqSa\3 @1f +-Z=Ĭ5 q_i`&q::XD2+d<?Sm\fAdvevX8U(4(|`jõ4{_ɝhHɦUѓ@K} -xǠBʷ_j'T!`)XQ3|Tշ6 $5Kvh8uR[ }R-֞R7NJ3‚Ezq~X&g9NJe0GSZcj^pnXs\4ᴆx% ^y?[sК&; 4/$=s2tV>J D,s*p" -"s/9@o~-LF#X4*ߑ l0U~c; >H9edPۿƒ;Ӈ:vn!i@L#jƈ9eȐOM/'=h Lo/܃'v7'l(}o+=N*l 0 f-@ۑu' x;-;w' ڝa$~;Ï _ۑ?)T Fv\vy B f 拸fT\'v z;~+@ 'e ;"oܸB(k6b=pJ*/ 2QXGԈúo @`-Xdx/ +ˡ[@YHUCCCCATrNKѵƽza[KeYMW Q<&zf `x wA>ptgFq +@tV鍩DHBuWujBߧ=o6}"I4q͙?T'vaޜ!W{u&[%lT&iju-nӒ(#ϜŽ@r'R,'0wuIA6Lх aXsR$XҖP4e`&Y e},vи,7\~{Z@yw|ދHWғg Z1IѪM@eʼtǯK!Ԕas%wRVAFi.|"臇.=Fuȏ/fLgd-T!}bб<a8Yz5G=:pm7llf ZTAvbI^P"Ks–]LCq[QO#Ebm9|tów3[5> v ssp =Mbap-ZT%TUU]ڀ@IFxT}t8[oxi^ePPkQ#mߤjAflj6B~/3ғX){!_Uވܐ.RCl\#)7mTSC./J0(EpCǁ FL㞱(f"Py5 K6 /S +edxS6Ж'xmy/vg!B78oy?U1MNw$BDY{R,mӬ뵇d7B2FV^~-yk)Elr9sly +yՋ[܉ً]0ܤY3:rs_AjK7 ^@=#(qL;();:8Rt:#nO!f!}Tzm/h$ׁP2dWFAnc\[[[tiչkScfRJ'㊏7DqaW̫V7F[RU5vٚODM7O@.Uր{ѯjxb0m4l)l9Sp7( +R0Ԩћ<a,Rmq9RՃ9GXad49av3N٧HO*Wi[=wQ[7W5&fV6ͩdcپ6I86 0W7DO}_[s ;Ӣn׫D:p=r{7ul4362s@[+}qn;C Rol`׌a!>_Abtq]y? zLJ9w!CC jX"GޯIsۂ<ˠVjB9D#gPKuelF%EEe^y(snW$[үK4ơhL d nhKlZ$5f}*P[Qq78/9e@"c-Zm h'6n5O/5LL%?od![O=71j`N!C[dJTe:sz F@ \FY403[1elěm *?VY^A< +cҸ؀Ÿ\z'`t%9M0hڃP=v{"Y]8h+,\aj +o.m0ojMsyr5K͏,7LӮlz y`EhpeԞZG-4y^F΁Z@g5>3v~k ܣDdqykN<'u ;:G5kulS?=6XZv+5HZ v(+ cFd j~{/8ryGgf;;Șgxnl~o_-Ø1Ɍ%%M R1J5%OGi+ iǕ`5bHEjΆtA(iP5px..f}.N\`b.2m+ K8rC4g2jb5,CKwKq*mui"q4GiUX_lYpgqkz5`0zXlƞc9[gA/NOlrjnlN[YsݤS*S,s崬O'[DpI؜j4K6[cOۢ`iwtM ~dm̆>!l4̿^ CnB ^UnL[Q-s.}QR֣5V($vOI* :t]Q< .(ZQ!( W&C?[GH|**ELFQSR ʯ>lQ1a YXh-QK~5٫P{h6_w‡GxSQyÁ6<X W=VH/)*VnS?ӟ,T_mR/dnzſ7rq|?H/!"vkYGoӶ)[wRGzaSځRο©ퟘH7KbsCS32H~boj,co^BtM1E'||_Rw.^~s뽼d+ݺnH s cŗ@n)/@BDW.9'KWjSBUϳXLIG8ă A/((yL +]F>Az*]bG|5G}^ilWn*Wp{qUG蝣a`_[*3ނ> LϺ+]KcIL`X}U#=`W4:wU]늊I1c b(=o26 z;^\q@U'Xh W- w+1U o&] ]S޽E1d6)AI>Z +Smlґw+~}}Hf,4 +f52<μv?ް~ݺ8aŞ:>3„5#0q2T8$ȪqzN;v;`ˋ#[r潎NĂ܍Ta-޵=y &a"id +MB>zҺh}L=zXo/4Hds弊AWW[{P`t8,9RTίtZwD-Y֘0[c6oe_* `mx 8dv_q2T|kXζ2lhjv _ۚgҲ?yk/f951OjbnF0\cG,x3 j']ME UBLa^A|FXK{֚])?}#P" H^%\l`=ېݱ% kr&YuD' KH8"Nue`Okkpx>N A'mPqI7`4Iǡ.AF/fOr]z eqD/QN1c>jFaqPsۧv~Pap|ɪM1W +P,/ޕdW[]!S9^&]>{b.8_J evP.j @f,&W[tM٩L$79 B|\BYRr!׼c9W~cl*MXKXC1a*htZbZ>~6=`ڗ3Sfm^zг'Ԅ."8kgq[Qz22/E@[:W+7^Kݙ5R+v$LfO{K8 nN)a =TPnMn])HJnT7Jސ5Mr,x->283=u&ma߯B}XH<+ܐޗ(bo8 ơ7^X:>n>Cv5d|ԓGY|{h╅yT+hͩ-mۣ~ +}YL,3LCpX!ɶ YuTV/(J,&~J Nge@TxVJ \3J 9=MwoրC ff+kxY;]|Hk$PDzm܆ꝮE܍MK^uz +,(5fiA]Y C4O({T[=XJt>&姾>3x< V#;9qB]?=2t@>_231us1p)j(&I(VѐmU{B"k%t7v(ף q. z\97d{0䯹u3η?sv:vHHm \ܙ0y1Uo: Z }&mb  6Z[ &búPWNYQ=}=>ە#6KpC-(gkoMLW(2-l;@r;صi4 Tϑ0;.F\Q&ʮ,;,'0 ρfvn;S-ug?ɷbc*9X]6:hKT羼&uSӈڵα԰Ev6С4"D=eR#AF&toT=xmCAH$VGRҌ&^X8-%={5KXv +> y=.(P~OYRc26T\K'v ^ta;5Uaen)IqcW +.4Hҕ U%h^0 M)RK)WnV)\'֞ @ZVM^ҵ,tYԎ YoٲhȮ e; +A_}#)]Wd;.kIertZOՅu)'+$v*,ץBc_wV\>@ҕfpjCdct  Z[ùbX>|#-PqLtUƇH.0y_ ҖGU%NvW%fRwh9DI8 j>GN*mɕtj3 wKdy}4oEJ>(Թ ^(=t<=̩CLe\bB_eH.%&$.>ӻ7R̹V# _%`rzJbm)|7( 9Iy )01=o}R1V\Jn+wE勍g草*"!{>cSgQ!=]tb}v!"SYL>sA!a{Y~1o4@F?{kFs$O5D< +@QD*dEfY-H(ܤbswD_겵vqٗ9Q@vcyf3yv[ҧ8ߺ87}>|pj.bG7QƄu.DY}Tc'>%  ͐_6 +INJ c +uZ Ę0e4á$']#9a*GВ<\%+$&u2r3u"< evIV].f=́]Q l>gonlSsc5bwz=5kԹԲ\"uiZG +3d}UHP_L4ndc! $$͔ZS +y{9w6q 9uHi`q√r%;=>4hF +T$`F,i}am1\*d5V*'yOUCIٕZ-$GWL3Cʀb=҄d )nr_e9GhPD.61H=.wr"O֎wKaVLʄhj4۰&[Ą8v +5_Q4Mރ (˕_a +X+sLY<%R-[cKMX{~0yIݓ$|eЀor}X켣+ w/Bh\~ONo#37 ?N[Αɼ)!F?isGGU0xXt{0830XώGq}pc* V=cLA]aA6n"~ߏa|kËҔY`2ғ!8%Y!'9V-pL|(tP!)zFX 6z{|pNK#FrU<sakDpoPc@KxGXZ䘲Ҙ?* ,rK$_p5gɘa54ddd"gG:؊E +dbUf-PxJxkc# '$8b"Ӷm/t sf$6HbC"[nnUȝT0aәÚY>9Z9IlPdUuXe9Өx~Y]`PD0Z3]O@A蚣Wg;Lyx]0br{ ]\h{wF h |Jz)EspT׫f Y@xFcU,6_8s͉,z31gXW߀qpOZ$!3LmFTYh.4VݤC6('Pr[S4f7M,/~$GD٩!&_ )y%S#_<.eI>\֦_@_NZ5`_jb~ₙʢwޘ\zIww,f~ a^YxCycQ5$vU!_<79b]7S~|@;| FUDl.ŲF#&3㟆R j~K=Mαl2sk8b_zZ.JfSm7+5*Ƭ~R*=u8QU\Br00] -czGo㘙sfIː _-VQ\D8(Gs?٧=)|%eT;lWh@{.Y9tH˝KT v@2E4q͹XIqpgb 2H&QG }|rvND!0&1Dpbk9Y-i?KT~!f.pZ|\-C(A;8uZf/ՈhqٝhVGuUoO ËLK$i$V i, -YG@9s,FGK"KP2KDo^-R"nw&?ذH\KfjO+eeR!+@wU}圼>1@cU7|_=R[4o{9N)L`n}W&h1XNNw]'#l''Gr 'qlt*оIC[sv{] ,8sx㘉 +$Ӏ=[sT4m{435gBpG4GeGn?/) =g giS?X]YkR5_ CHC 6@ s-(+ g#j$l>^eij9'LZt!='Xj6ztL8̅6T C,|9t3㔄paIeJjnǚ .nO-Q7#Br`U1uQ2{Q Q|-8_@ƀxfl߳1(>Go>2a挣P6Lh5*maCJ8*+u Oh&JfmR%uaOQzWj~+Ibkvƫy;4I^+OUw t*vzaʼn&l)RJq +g< QRXJe8jonjmwKڬ_..Gl \K"Ԃ!aǎNZ)Zl[z ŒYpT~[ܞ& :5-=[Tt{RWM +˿4﫵$OBuj9l3cM[i!OT,[3nU+I/TOU(:" *v׋ڥ7ښbfh֒Ӄ +'4bFX+B2QbTw7ɴ쌷WItݜR˶zf4Ǵc&Gt l{pJ +X=a{,u W,ӭwGdx$%'7=K&'ngyv~fԽ |tB3φ|JՕEخ;9uFGtEeZtNgaxWBG +' egxTWSκڂc}dF'61ΦrgJ-BӺ$KAr[66nj.^c܎[Q6W[Xps~OGsޡauK?7I-lTĞ@mMf. upy J*6

7n3}>umh ޝ'}CAyKٚgR׮G/QGN?e!Ab9z;ߎm}K©.m8:"r9. 67g&FŰ:)Ob[Ak%K{=Ug"+ KnnQenU}1QHn='e._M>nRh@6ⅅ)8kÐq5ClUV'D/P ?iZc~8Łjmf*dcOA>D#a!LgmXzgtC"9RI-!.K ^,3K\]t%!l9P5d }!(_=UQE519:g\dm/PZ2cED+6eB6.PH Pa$TP @rF|ByN {u>uiռ53@eX3K"yK gG;BuJϒ32*Cu + 씹eD.&Cٮwtg#*kg<٠?cLFE|c1Fy˧!r݊ݶ;pO!a-ԣTwHd4*>K#档{K3zo xU`L +%rǝTaȭK9=sWB{ق6/+ `{aBMO;ф9?!'l֣1zt2܉}cSo29Z촨B̿9]֣F+’6HK,w``N<-'vCN2u:8}y՜A64AYPq2y>15"1e'j׀!q %=SLeB$c~Mm ;GM]/E¾#t;]^݁Qyg#{ %SJ6弻5V(^^{H0;a˙ߣ-ջ%7Fr%7#0WD?rHX FmZZYs1Q,s^Ch~!~DG\ЗhlEj+CDhyZp,& ;BXkgMw_}4_hwބ{PU?u[ͿokwAu`zMw]&4Ᏸ_&y+we2m oqvmh|_.)gree "V6EFnjDx"Ű/UG,Sd:A:B3x$+\N0I{$&Ew#GxTϠR8UdlyUW2@%R=/Sc{b]=eLZKCE!aH3wRkO@ }97#'])W%#[%>],sϿFQLۉM=v +^76Y0`j{1{ށ*<05Mk.YDcʱ$S56&k9>Iɮjw*moi QY>BsRI .g5o.p'nqYaoZa]P6d.&8~+ ~hEfY=_D6s~+ۡ?<.Z%C-ͦY*q^Ѻ+]ߔP;>L^+}YJ_» Gx:wStRj`d^v0IwTle`Z8P" zgS]w2_'Qa*8{Edwĵ;&NG<1q|n#gy;oCv`FGĭ7wCnBuCJRv |N5z Ҹ :5C4Dhlz'%;lA s e-F) e͍[AS9tuU7L3QziX ~E}Z7?T3WnH ۑO+f`g-6bSi 0}D[<}|"x(qHEK>8AIk<1w +96'6'WtN^)Za;|+L'IIUD2 +-`qtb9>\ T $0ieڄqܑfxhmc  v=!k9o_n7Q^?`QJZ*q[x8w|0zG/9FЩ{)bY i_JcgS\*tUyz?<5c3Y1YSI6pk'c3UH OTtr֪MV _T$qCl"O0mbH[`dmKԏ@V)g>>^n;4 +qY tmR1۹t3PKlwXGHmPʬ)k0X +} y0\⻋s6(IS$y5>C8ZfoMIӊBZQh֨i +WZQDZ<;Z?:A:ұmd+/I`6aġ$ G q_Cvuwq2Zl5]aͧqt-,Kꨢ_-~:(zK?I?l ;\t%N9oQY `Ua*hLX ;T 6Anfo{G`$(oP.GHChc&ŭ-:ZOgdP/P+P03m4VEd~.0G(,J#@0 x 4 +Sd#9JT !ǘ/c_ZUT|֮J HԬ=)r%aj}=,7h \3Es'fhpWWf?vFqEe`JQ e޲ +oBٶ& qS+IwЮՄ.Q +a6`ǥK5q?.n~\INmQqc↣.u%LYLcm\ +;A߹"AC.F,"0&Y7V`E7`RH0Q5Mf䥛5+fDn7ʵ>K5M~/9?OI8ꕙ2 DGx3 ^2suF>.jd<퓥r<ۢ01EgZ`+pb@F [A0a +kgLEDUG'?GxXz)MpyO{٨Jɡ3a_|+a.mG͠x _.x2Gvػ~5*iZ>H|Ls*m+"nĀn?/E +'u^G-nIqPivg/V[jAXi(_ U[GXiP_c_+lȲ&OСrb +Yk+&Aock΁kϿ :z(n$fm5],ecdsI̲Ͱl)  Lk'Z)nh%.}^,,7Χ6HUA |dEZ2*k +D?cm%.|*l//ԇ Ѿ-μ);^ v̴9]$ݒQXpsC!v ).FzE!` OhYOzdVgsD(oMysxi9EN?ё$td +W. |AET i"D2;`0ppbv:d&ln ooEY@/N=^``|90R9ag;CeԫUh2c} u lOMkylY4߽kd$/YR(.wCo9 z|8On"X.sz54rJɤATڵ~zXG*SvM9g"ZPþ8Vԭbr)#NyNH&&k&BMTA3%ﰪr<_Zhߊ]t/8OKoTkΑa3`NjCx٥M^Rj`g|JfdLn`!3l+ ENXdj]tEjI9W}Eoӫ~#>L;I57{6񼩒C׏%9w_za׷ "{ų?ʯeBN;$*)T;ЫbO{@}< 䡈*b*MN1PJZP9OxEUPNJ2m(NkbnczmU8:ZI(`#eLZڳ5Jq~Q#SP$b#_©ᠥԭ%9cAN,ʹhj/*]2 HBY2-pZ#e'p>dV"BkAe;2Uh3EQ/{_[C)܊YZ-`l}l۶m۶m۶m۶m۶wN=w&STRI^9glj=s~P&pYnP[y7Ej4Bę Bq%Z(q\:Va +ky9ܗ/%Ø?/:݈ }.=8.OՖEMV/DS/i/;/֢(PeڦYKJ\l|V6Ny׎잨 K&UliS,]Z/\PuuTMrK'%?"-כFA*qʀ});@7TL::2߸q~D?;\o /? s;; ckmb֡|pW!߫-_X\ϽJ>@}R訇zuf5mt1H_k +@tLc ľ:*Ozf G4gse/NB /j u-LZH͐TQj"-W^6lPnmVdHUR"sG"]*jRGFH +lG3Pfr +awA:2Ls ߓutT:Ü;$6w!(  >7 wLZ<7CfE:?h:uM& +-ӎxAvD -Ȧ>fbM2 6֜pVLJl*}+x㥍ZfЇub?#C;b'9RDI3I iSkv~;tTfyl3E[fRmܮ\6s.cmزq6ͦzRnBg vIp/mgzbanOjv(S=5|E +8_O4QpQyHِ.|^.lXWݜTX:t^uGgfJ7ܑ x|P'&pW\;^c;;e[h#O&FSHG3%@YӹL7Z?E:SvhBіK& +!zmzJd{:R}(֓Z[<|IR$ ٥Yr(MJ?k̜/~kGsC v. C@5f.P" caVm܊nĊAaCt$|fI}DXPh=Y`LQC>vv虧15LAU" +P3lzB3MMjz ZԕWR؟  IL<3VQCRElh#+L\PsJ"u  .l ɊٟݨG}҉?ȀۉS0jL HU-ޘSq- OKܽ[0-p)[X-jZH&ȿ7R%*PDQRXVZU-I6]$נj"7`f +CGEGEtG2BR7R ,UMה>EҜ֧R+CͺB둹\,M5ե75>өҞF,&7إ ,ӾZڎ F%-WD, 2RF R$ҳsG^b%JƋdO`EBrӲ\Xγv2im.(jKD-s 4Y7I=QQJ32>ufrMDG_s d`u }d1g>O7m)Vݎ䬎6PU杻 TGvG;bN.ƍG`9f?&hA*PS5=,U(ܕ=^饨Qـ\%*06;682*~X/R}(e4 4$\D&/;CoΞΛ9"-\}UаQ.Νݘ*wGuxhUj܉8e]MR_Ԥ جPjXI9:e]AoFVhWWi>O!?r])6'N,@dRujs0Y8 + +RzLQF,U̿85H]d&)9:^B)}h^|D^/T<)[\}{{T_02YM$kD$yh~9\9if _q:uB7yҤk$>.D%Ak;UBwA' r&ԳO]'m|tStM,Clo]7F\ɖ|nQ|8!$g="u߈=d!w@=`Ηo=- ͗!0]ʮf>7ٺPeMyFNWV(#5Et|euxfو5o]fwmnT;Bf9|>""OQ)'Wʕy- *&0,a> sk>$ ~*3Aff" +$՘ћI&n-QCº;/5&Tq*֠FN:0U>j7 1r1>#@F׊nYVr=[U] Cy%XJ% c.ҳXT'T6XAMR?eŠ*T}@:JS}yJ?_j/ Cɬ&kn_fK#k$9mD[{^ +E4RO^&eWu!lf1IDtXTYpz[ +[`6MLwن{7NoG%O#b?I`5?$H=QQ Nl5eW}L|ft 9|)%$.>.SCk'%mKRYuܲ0Ft8ع L1l.ه\dĈby&&4:z϶БFwya+k^fR. xz ES0ufY\BntVH +ioDiTl,i嗻|NG30-0*YѲ{fbڤEe ef_P;eiyzȓY(_}A[!Ƣ=[AsOp_F\TUj}6.IZUqPGZ(rF`2_#t[.-ρ {*W&|f(NϏ1xcԵH5'I0q'^3Ki-K rjtAalD +2E`IT؁ ͛r*F@ CS{ +)jOGQU{!^βmܪQ\śZ3x7*%ku"Ww18Cc%4-pU\re]䅂 mtuНr!6AQ}vSĂ 1oG1}C ÓC&|By؃11"*Su (`ͺ/; *aŏ +k 8']$U3juː)8Єu'ԟMp񊒘W(H`E+j۰LߠI"8"p8sl'8xw|]YdɮB4\@IPqnLC!p1m A)ll/EmÚ-s\tѴ[L::t>~?:uɩ\`^D*\FSoFS:ЧH}jO'XedH]}xAxx D];:Vпւ>Hc$䯹qݽ(xe=yjuU lWikջYbDZ4c2ρEG$(:SX[b|RHfIgcb(SG_nUr_iWB؁N۫RO~t'[(ks‹rΐurCHQsy2ʒ1.{HSQ6(dl͹7ne C\ (y!=SOKriFmqe%xb^Hyy\=Q,nˀ%` :3Ӧj`!RcuIfd6M׌d:5;E]k$;gd:Y)`g-B]w_ٶJ`m`P^(/**+ʵ:U8ʯ_=l.Z(-[y\QXG_!HRWG d E .sn04JGVœ( +N9nDÎܼ t3O^-^ v+k+"#G"LJsHy[G3ڎ3KW1,ȅF^9'jA=F +ѰD,G"kߗlЯ͛vr-WGduO _QN=(&y,uR2cJ"8Y-aec<#2SAFFjQs`Óن]y7G*dϑo[]K$}BPѓ 4\n?Qnp; ׹{o%`땴z +2k͗V_nB_U%Iuiټ[*&[Ņq* +ԝ3Qq\KiUw$v ;{keBဈ:9=)4 +QЎۃЎGW=;eig]RI`I19Hz-SX~|z&H}?v>{t +3ϼ˚]{IJr9zfpk;%?A?I(f{Ľ=Uu5M "~yԽW`I zT8fJ'J;tTMJFVyg7`+| f2ɂWA^(tOe|eĞt\+typRro{3Do#4I)Okm̼\%ŰM/dH>O\ +;wh=mh[DXuhqW^t. UƒGN61AIF9P`tk$Qk}+jk/mOmOodkai0cڑ |KDG_pD=]6b.hL +l.cfD}R)/P.mҞ^#3$J9Œ6bj,z.HQL% -3ao!)+Jdz>'^>-$9p.{ռGKa=fn#>CmB _)_NXB`(_"Id#9vF;K_5"&o(` gb9i_ʊ)[B`v7n8k 0ekL[,^=͒!!.0vrSs`V;fędZ=/~CZetW0m ?l9`OݯXWCfWl=e ׈gx!o4(Kag,-j6h?5~TiON7%kRG9w5O ʋ+iiÝ\Ҩ(ȗ2O±5l2bLڌU"L^֕ erfv^ +mebY0z5igawߚ*!;ȆdO`ԝ +j"; RZT83Rs@LfL!63jz*W1R 8]-^r:PZ(_jPT9bVW_cIrZe si]jUy۝٢uj; RʕRi֘d +>L9`<]0-gW"@^"\*"ә$5cNRŎ;0Q7טUp*3~~1H>L^z}ވfVIƠC6K-?/z#p\!t.G*A'jEj7k*:u!3 s,H[ ͮ! +h(p!Ο\6N#+t̐sk)AIR Chj%9ܸ12DwqܱiƒqqrS7%qwr"bn\ţzXcINۣ_$>Y o,~ŚkӁsU+8 {[m J9zu􉦇}i_4,8vꕡl("nA_04*hhCD' [Јz/t) B>%A% +ws7vj~cxE(a(iHzƀi}GF㮔7vWliÛCĚ[d-މƎE>po?csIcSlZmTDe7ܳjl_ +)x\`7nlt!3 +kC&ց[`q3ywt =3 Z=QQ,:' a1a\]; Ij{if'yCZchí`##PF^ F1??p]qGY}"$@Z2:zJYn j5EU"XS:dAFAx%] Ӷ9k?kȓsqѕ=$g4 x^ZЍF##6A>FC-b0̙}-c^F_R?~ k׽wfXR~ч(*icO6hQo 9Y˹fNb^|lSc9HI?X }CEN܃ewzd3vODb"l+GYmu5f)NHn#|8.' G-'.R4%ۿE0G.*  .}d 4b^w\z< -#{J[Oh;Η6<|_X_yaS*k~g3: t &Mk)_cE*YSW.r\ 78砃R1{d%_70 '^#SQ7q@1!=|`9̓9aJ +ORK$wڎI%T?țۑhC+41fy4IE,LUC0 b*:-0J +5kK/4*mD{ *Ӎ<`ҽΡZTg+!рOJ#3&$"V"%rct rU* +Eق/R\ySA+iMLmV&-])*WoB%2Q]X0a3="dKߋ):/S@vCeզSMLj$EF \j܃1"[,5όSBh8\\  +K1E0>.}I{eǾ-*, YFk5SB =c.W H5d MSpEz.0ء1Xupm\c (W|`vWn mqVKR mUqRMuOoX0ǘScvUjU7+a#KI6IhGtza{]z_D )ϊ('[XXfֲ<.x^DZ^}'?qJ,NH@>ߏ4CMt;+(ܲ\ٲ깥,XHL2;zonc)uWs5ӘcMv;t ~>hyt=?Dk|hC nsG @^Yx_Wួ6D;{D{< \' Wr[s2W>rYWYyG E;>[ BW1@E|rY'3`G^Ʌ};-9RZ +7r̖qw"G;}=r=#F➔wħ-5G{66UOLȨ@3ه>mQ{7oY_&*HRzm Ļ <'l :DVj +kwjȔ}D1S(`QYuGMPr->T>e ~v F: pVtgpgG}T#5S"4z 3"VESh$8H:7(rMzz#ДxT")Zs3Ύa6d9WZRJw/s(sְ*Ø Ř5!W 0$9 C(j:7#!BꮬEch5 }fQ,Qw 8${[[pwg0j 85bz+]yT4z8*Īic|a0ZMAkyڡ˧3 oBїW1gB9eN1OhxB9 ,D4LAG VJ=1& d2g_5V|ҥY TzQP]BCaKt3ȀXO=\%D{B̪Foi$˅O^״^KxML}Qr/@ n[+1ٵ2z-yx6{)bʒ3$rtU?_Payt#rnYW BvLA;d$W)Ic}5Tɥ_ק 'rf5Q?!-rW+5:SL}ހ`ii3esg-{jEyfosQd.Fsz=vOiU{%QXg=]RZ u_gd: (%Rf=iuVXŻy&ë瓋s8tc(.LZ ֪`pNm$t&e'%]MqTZ?z 3HJ0 Mx 1$2hL RG<ǤÙڀfʹy2ӈM69${bV%r, +\IÊ.BnC/EvYQ 3.зFH&ڝܤV +VIV(2٢(2/"kKi]nü%K, +?k$%;ɔaB<:_0EJ5Vg2U9dɻzu_h4V%uF"GQx;h2IruؐŸm/fIhH3(2._鶣%Ւ-#Xxfqo`x&$'6 +NvI74;X,/C|^fT);.#:ob1LCuKD7td~#@?sk3j6f '>ɫϫT +Pݒ[Kyd%-P0hdha!qE@U)K%&p]6]ujZljZZn[w\nf@mo>l1%A>,]#8o3 IhyWX!3C%1 IywD5۷ Ιp :R=xi?f=B39@O#,CP #FP7 +"#GYHEº=$G? I kEG6 +!`qơX1P;NxM|Nh_8M|rA_i+\PC꽎o\/  +Ɉ9 +ykJ܍ gNAC N(՟ՀMuoxpl9r-u%/H]g-nHGVx^!AUcL<9ak$@X-vf~4(WY b[)"m(]%h(J 1Eh; inVh]8n܈__ A "# trFM%2{CE2e8Ғ^(j 8buvyrS{^.C]q%Έu$<`푵y&ȋؕĀ?Bn8B|́^5ԁ7DNI5RkCiI +5FSM|@q}!m qmC Z!C7Z ( ":YCAԕ:r:EdTigx`c:A Swir uC +d(qZ ZsPo Lώ!M x6dڄk@a`y ~ t}@Y+IuatK9]&HH"|A!mV+XGwI7C) Vq%z$xwMw)/C`˖9m s kfi$-my9a`v'`'R uzsӺu6Q\r5m%Zoiwae5lhsKJvPE",m)v]~qZ:*K*Z ZڪZ:u p̢QM+ Qs QtFKQ'.U+ME]EeU L,PFiLMxF  2vCRM#ro_hAAZ¯ +!,n}L̚ȖH5N/!'I OQJW3k_=,4ReU3W`%LLQ J'X) 4DV>{!ٙDFF]GVm[U{,[p j_ޯxgĚM=p:tvaK6&lpz]Y ŋF8JCY[ DbUbʉøX=T5]@HsF$b5QuiM,sm+" *cWlMG)nwϟPX{h.0AT56X+^? lv)i +"m,cT8|m>M0e:Vak'IԠ]C RD` >[NAWn/;6<"a, !y){{lRɰGK +Rʳp=X{?:Z6$=%,DGmN2Ȥ,U' tɎWHA +H +(0)CbKeMi4 A뙹Αe _!ލ +'+YV@?yMb+=,} Y +˃m!L.|״LBKUx"\cԙ:dI +p LVBc<"$mQc1a hxA]YJ?u3X=鬼_zId^Z%z.n3l^䫔(QNK8zW2,vyļFݹB5Lّe&B47YmqE(YRy8=9Ky+f{gAL 㭘! X W_"~jpn -WoN2]:˭d+e2mbT/b#RZpfX H30`aƅ‧E}@(ԈoXR|Vb2I[a LU3F@ͯ;$j@= 35k 蘭|ob:{'g`eR%^U߅x *ǮO>Q*H5Ϛ;G GB@(Ǟ,XYF s_O:nyf;mgʞ mߣ/(d;lo'q_1uqUNv:P,^W}=./L\9Bldn +}Svpn"lw\@_d`:d8:ɵŗFe:qJgn;q.MzrX!Ex! n"p3?J`EgoOoOhZq5~:\ H%A1{E{{6욀=I?Eо0? Sr0re0M4 \x PHs_PE J1lX8A,ʟr<);́#) <:}ton9#^3qFco_2_7M~Y ^!uRN5;va,>`7[wY:<<)`IMSŲtbU2V}mgW+?AE>'P ]-$E(/$qMd+Y&6<ëLঐM0Y O뿽Q_Fʕ0sٿ8,!-pC:i`Ժ@.Ϥwߔ<#.g/8@U#%P+m6#=2IZs5=IocxNPg6`Ex +qElwGWQ'O +VR쎫 +GP3,YX.u`,z Ƶ. 7O0H./|rZĺ|} g+wTa "4Fi $cR:Qy]N +tmqrجR ]*͂V:Pe)/IWvG]~l&$VeΊkeך_7x.;dbhhQ܎:THEK[[ܦK]l˥ 6Uq SU'A)Zʘp=(M3kγC7{_<>/g̚*>A|ڬ')k(w!`=kC+hѰq!.#Oh5mg CYgz-o4}f)X]x]ĸewz[Bǿ#~\:l GED$0>a!&Kx)ZA@ +:-hf?Qk&qCĐr}_KVr1lȬbX-w8"Y[5;GyHB.^Íqs[:OdX'dNJ)Sn"aea"f]zR?jB>AZ" A>ȌIHa, >lu~"U5w -MM4% I&5P6Z4ɫ֊}Y\Y;ӦJ8~(95L6|ojRTR +vH1anLչ~r'tzMg=ˆk뀑4[DT5z_n+' f}ulAU;_xj +& 8C 7OespaTDrfp/ 7kk c1l]|FY3F*ʜekf *=Bp#}tBB.iK% Q5ܺߛɋ5/T=od&}Wا_=gĩa^w4+F*}F.0< ]9PPvbS/IOTq[cy?M)GvKRhR1Z_^|FXW;f ls/ޜT(/vr3Xx̐l_x#gFr<' UAK +*(@Ⱥ\iNY</OoOk)֡}w\bY:7y_,b-j'=}9y>o'r>*=TEJVvUCz C•H!Hh&Is6l}Q]i_fMCL=4Gm|VL*Ϩb|oY8_n ed&8ZAIs79TQ1<}ID)JoVNT([sPլ7cy+gRe}rEGw)E?0.7׬6'hLݿX`-1*w6o?hczf>9]wϖ㐋KG8c%.٥mm?נOJG+g6SL9mR<~EbHsHc<R|sfZI%T^a4^վ6wAY[u&iR 艵SdGFҢptK$5TR&{5ÁOt[#Mt!ڡꨔ4L7-/,9W( e&oO,t7ؒX%`Q %wioE@gs b,2V#Ix<|B@UJxDod ֭x!2~SgQW{Fa`&Vٹ"4{]>5NbGe \B%`_=89+Z%*jPK_+C:Pl#[*7TZHTnҙJ/XK^"UkK*tk–:ĝAF\Pz f̀[|d&Ct=nqNSB2 =pXgOamQr [av)=o?| {~ ~ق["\(FcH| 1R%_ąA%KLGdTNVbG] q}>p繎E0mL[[0?yeʪjK[Q X BoUUsٲ\?-k١)kc[Fz(㫁|MhP*шccc'h$'Pu~lv>SZAm(Ώr}=loFG@#r|>I`v +NC Ÿպ~fjT-nC$wPM{A'hZk.![}^S4E2oQET1N记ctBg y7nT'iW*q&Kh5Sx?aLTZξEۨ%#X~}uvRu}Jj>@]Cb0FhCFr +:Mp^Qm|#qQx$ep<>V5FP*I8F UT<@߻z ]]k z-wq$DGI䄳LB@0*RFO!B ĸ}aw#J|Owfr. +`(hZ!Clr ZH oĤ[ʒYćrK`q iDf;_z66hw$|\A[ΐ-g5S #?Mn&oے,Ibcit\z[\&okS\얜{Zߩé'iF S MRfHW6":{€; +P#%tl1L{w1@TϘfAư^g5g4$6%)2h\AKʀ<rECH/kC’Vy}o0P=#z氃A(Pz ]kkʈ@V!)IH;ƌٛő;!l̅`{^ҩE/^?ܽotr\ć/OY{ oՁo!dB?_<%jf bMe0!m"O5#MmYhW|݄ӂ@AJeRо+SjSU֡2@yY]`YʆU1\b(jXj~*jD0atjSd22YX&h/?ѧ:O&D\|ubМ#: ^eC2m$hҞ3)!TB֞Y-O/C@[h#[lJ`@EH(JjV8.Y}qi 5z-C%4*J}WǦ{iɉdēosj +)+]bP뒆EthlaPagZ4k;«Շբc'\ +g 'GiAd(s rpf_EuYhc1T|%} +p9krQ^&rRc]CVȓZؚl3#> N -FOnSBlǴi)ZdiQjYTyo! yFo o +؎ε("xÔrfm^JӦE~Hno;UPz>WiϞGp 1Gn!3; Қ#?wҽE wJi̋wb|65%~Q%\9E*ܶXP?2)WjF,jG C+ꙕ+,j,jdG9jKɧI23 +ѾafZ:9+j)J+b3jP( +P(oK׳96L[wĸ`v24:4f敢jf$R+jR+:95ȥWbj{)0Ax +Lu2'}$kHʑ7cr(X.]b9?YNg! +xC} f=w.1:snܽB+ea7=4" VɆPʆTڦdOaGOw Ԟx9cfx˒W.L]غoY TQ4*N"p6@xKXΕA1V?X@6vB S'"_!q,vME1i^9R̽ PUWb,5 ]X\ *ڕ +_מS +QoyCI,l݁tvvDr M]M*Gk)-]Gړ; u]TV^8TL+a]nsN}^g?g_s` $ ҔDePJK݀ 3$ꐫkG!Q^&Az,Gk1_?s`&})\}i|E|b$ܥhiLy(t}~J1f#g$tIkR%*t)3s_Ͷ\fsp1۞ѻw_C?͹Wtf\FJ k!s 3PC[b>sb XEaL6{Hcҡ/lH8G mqP6;\l|Y۫$ pKdc$K"X3f_×t&EGO9W?DC \2Z|UX:9KR ;y*CSd/ᇓ cݍ꽿!46R|*M@Lյ\Me%QE&\C`0 +fZAVbeu#'8I6Zi:6|"^)KO`!{޲*x5< +pݓ8= *Qy7 U+G,X<.j< +eݱl458S犏 op*q4%>bmY,gW +g:ʛo.u+e+OE[œ5gVXr(rI2r󇐡JAa;4)gI7j5!e )Nt;t'XT5` @J!GLNNqOwbr]^.D^ӥ8;xۉ;^VN()zJ-] mKJw}v8n* -.'+ZT"%(xez!qU=DuЯv&˞*Onv,9Y=8/= MhCy<Eal v>~zQ q拽`UycyQ#}ѱ +?骷hlhgJ Af.ɟ9Gr>qԣs5M Ĭ{RtSuLJo4z "ԓF(';䢣剪Ybum۶mݶmm۶m۶msgΙ{##Veժ+3e{8Y5՞!ң qc:jZNTV WbTah0m ,~+e A9iSλ+P$G ğ݆wp *" +4:2LК&`c}dPZn@%X:f @ĵDGZ>iLeN>  a)ntE.jE9 ~WAM5aPaPp_F݄]u j]IuMDmS{+ɰC ЬQƏsD!JN_P^a&& 2A< A|BF-J)qoG+NDzZr ƭ!Ⱥ1~f'V6Yv07fDGGWLHn w - 9ԽQ6H^ɺŵ , 16T7-(ќ3wZZ-' BZ)i39L m_3n33.8-Rffov=|f߿gnOs=JEX;Ԧ>BTz/߹dM ~?òEzu"hkvWrlϧOAo~3Ӯ7—ӗm,8Ps4 R7O~hMAHuvUCHGoSE5us6A.Au(U<UhŔʈzG8{og[)o$c +piު([ZsrKX%M"UD==b1a])fCH/-NM$ZRkk-Eـ~Gsz~POimT+߂gؽ WeYv. =5m e/D퀦i2,”%Pv9Zm)Ns'`y`aV*<AD`Sf%^2Y9iUmtn:%*WXWb%[QȘ;{\ mb+֨HS{_7'֡`2teb+\9^zׄǥ| ;tϜ/xPv[ɔ~SeO,X|0,յ젭fʸܼ\++[[@Hce T>"4_F T1/ut89Z~^lJK~Tf5KZniK-䞞|YúX~K鸔!xV)$I[$M ^deɁjS+'cyj@ׅÂ؝rN2yrm9Uqv 9i +w}r-* g9A̐9៏5U.As'`dkd@^-Vt7cNa|8h*-Y5/ژRj-A1H1eMǎlz _o&4|6 opZ8N䎐]\%hbgKsKZӖӤ+X$AZ  ~7#Ou4< +太TWCB3gI\4x[3.M6Juep@4Xc@MB/u#57q 3KB*e1VkC~CzM6)7'VpNLRO+w[{O[ԡt:e@$I)t0C2^O\Y7ň+>A/UUS5 ,wʛq/]!b03(!3X [_0 Ԕ[0-D1a'[$4Rjwhn5Y`od J͞K}>=u2'𶌶pz9.~<CS@ (CEԡH`9)X@+ PXڷ)GNE<܍? pWq:'5R3Rydҍ+@"7v|~Ƀ퍻jdM嶗 ADIcMRa3v7f9}Oa3l>u9L?(ia^#kJ$*\[OY#o6pm],~,Xira=O'. +ev^X:ȫ:ݞOA 76ǘN 7m +3Ģg 5"35V9)f +TKJy ::C cetw%Eڠ?m+j&G4)5uA7X8,HB 0Hȿ1`ZB?cVcge5:NlrQ=g[V!Ye0/O8keP Y': +G{Y7?@9ӝROV̞h> upvzqr!"YoIp]@dL4llHkͦ +Ёy_"˟l aEl;dM;Ln/`29&ӹKi䓈[v&sUFEhlK fH5kAj}&jN3٤u[ߋ6}ԏUE[+_٫p%;I32:ƭu+Vy/ >!%;D\庨b[A`aLsTQ̈n'j>c79l?"b +t^͡o%_`u^hvniOK&6u9b5^Вb ?8#߶y{o~6E18{o(RDF|eH+D,q7rzh7A[ãlއN>^TXպJzzͯS?pcm-BY6 YfC~?2L! +_I3d-@ēoXȢ2 i,1PEgy-}iiJG teRWژuˎG ~7X 2ߨͳghqIJӻ-.kͭIvmg2*@kGmT:āi-`ՠ)nLQhxs}60pNB Ĩ-@r{w59H3+Td,`e/Wқ6 VAB_x+nWXy!qc2;L;z.xa+r9z-<ғ,Rv~z[T9fPV݃Zˍ8u|%phVE܀Fڍ8RzȘ4٢!yHIqgMԌsuGOstk|gGrQPK~zQATN7Og.uejyUOr9ʪP;J>j:O˞+z=! L==w(z{NQ, A9JT͡@ð=WsZSO"U=>pj`o7\un99rrгbLD \uS)IuP?+(*도sow+7&M$"ӁvR^<Ph#(?)9%˦VLR~ "@Bޅ?Z(+#(|OC_30•p7~gGOОF "vJe(?#dپ&{ Uo &xCѿsP~C?a)d]`R !3;"t: )%{4dK>5HǗdi52YTX,7$O]H ,oU4LRA3rN+ڸ9x>d}š>۽?| +sI owc)Qxf,TZ`tp8ΫHQcKCDE +crJHw +-'8m]aX&Uo/s5mi"h?ޭb}*0?ďznEҦ*/:q !%62k,"R5\ȘۘqxqymsvP˿f=k0w׷܎>tM``lZ|,_a1Qdx + bay|?ץqr@]%nGsEZ{[p^{,^,4[-6 +2T*OUC49k7,XZ՝X7E%ޯd˟;E픕ɿ\n: ;4RGQzZDjޕ׺`gɴus%b͒ 0ck)>0 ;}tem18/ĹBkc8l7-]מ{pV'\nn4]ͷW%H]/6ItEp_ P=,Z2Gƅ&v@ÓX`^)~Tgo #6s-_U4FVȺp`ZY|S'{7Ž/YZ{Y˼1W}a뼍Xld/ Bhs~ӵʓֽkvItY?"mg9kjם;'ms{9Nl,"3-z%Tppя;d?t&&O6RY ίr6:ݯuYc:~đ_9238}g?jgC@wc S6ŨǘG)"WW y;?jZix= R"^E}ϽSvVM\,WAbLOa ?ToCդ;@g%J7`=WJ k'^jEHuͰK&)'1am_t—ةu&T{\iO3+l=?Jߵ6,kOۄY9ײfZb"1|~8sX912}|MQ:&Mvsr7<Vj@W YZ_`ѻ|^h Y}^k 0MbJ=|_kDa1M`'J5Kb[\yMƞ|SŠ}s@rTnŢ(e{kAqmשq";B&J&ˎAX +&^$4 Z %vJ t`պǨ߾ϐ4)!"!ñkgЊ ҝUoOIC[djC}Z}/폠8[Ia#s fmN^Ȑ;r4luosKjx Z1,e1y̤]HJRa~{Jrre mo+ΔϖKu݅2aibi[G u:8IErԂʬ˜|;F#VJLb ?%!kA9 >F&W+=!!1q * ,{h?f\ x~H~EƒW\ӫ*coՃΡzůո q[j!1jH*Uhglі:Z,U۲s;uI)'~_ r zDƵ3< ^;|RS|ʠ-_D|#,$>Ŏ >ss):#bNpG`႓8nxox0=B ژ [Ҟor(hTjʋ-f5uIV/aFm;w + +?zc ͠1@N{ bD3%Akʅ/hcq6Hy1;,P36T͉eyĈCӣ>BHrsKj |KSh*Ot;lG@Sӑ<5M:a"9zH=sD*r} ;u21T֔7/f20XuU $-c-NvW^X}m1x2" qj⠨q}P0QXdL,[9VɅ\#uIwn[UnW7GU硔zv1Mꉈ\\B$zmvȚkf[- 1UFeIZwЩxgq9MN[ n"FvAJ\]$b6Qw}lNX-: T)XwZ5 +g{ኅlɤ>yfAzHV.eD߰~14F{WT`|[>0+N`xF;}XF[DBHV{Pђ,?J*;ye_ǬIAWtBM$_^Awhq~( 0"OK&K1y)"r 6^]*b<ɢ9})תe"BG\5s"KARG4j2"MqųDM "!JVqÜ +0).yB 4N?=7BckjCsŞD>>My1Fq!-NmG1r fD +v0|F(B$y ddo &soj. l3`ʧOЖ=$Q&BaMYC9 +qÈT3{fȍ&`ZG!w!o'{b8LcmolV]s8.r`՞.nZ@$T@-97ʼn>Ÿp;I:_1>dH Rj2ڬ-a*n gɁlTsÊrIwzG/56|bj=5xQ#y)"./U" )́:}eL2G)"2SDJ)K(u͞=G;- AUKGAb-|"k>zhʯ,da$.mpE>sްR S* E㳊&6{8NJ}+^{ +/EuTR +e>+M4K+#fFmrJ\p|fώl%,rb,-~B;SL9\2*cgu+ ;8[=Tl@ %~r4Vco;蔂eрU9u(oąkfaVMp泂<ztd7d&lՎ$ 9&$r۔9imITsbS? , #C9zzCa^̳9QC jԒ:u2J3"d)Dpmɬe+m5y_05%~,+hss 7zX/) ƻA-F{ɳd1!g+/mk`Ygh!t'm(VTXo# \\㰩^tۚPeapRRL6N +ڰdB%F y2+7"INNrds^ۄs +1تwd1fϪ%$'$_&j&'sxGI4ћ3Ǯ??.Yh뮮z + wG?LO + /ECcm CʰV_P+M}P xwO i31LvEe,Qȉc0Vh"!?3vp]ѝ{Eec^~>EYթ:8d☪j`-E|2syћV:VCs=#rYC +{Ԧuȑ6ŸŞD:).IoI2O|of*&Yy")bS8~`'p ڝz[ 9oF6'&ѥ. $F8 ,r +988_LLCVX2yLt^L]|ɗ29/@tC }ras;i<iMM3}-(&.siպi>|! DT' 7fo.< e>*rfo/f>DPta1dD:@q*(KQ:(BAyD_"rڙYp_[Toڅfӳq, פuT9V)VDK[aPӰۚЙPT~Jl'D\l_ ЦΥdkR+hD#q_=S\QVJ)&Pio֥"DT2vd)t"1_Sl~ `fe3wF5Xk'cvQRXFֈuEOMxۇ`U}ӢLKv5e;iO"⎦2j*d6uFCnii9g#@n0`C 3RJw0DjY4*ɡI0 +v<֪ͩ葈 QvzZZZ#X ;0 ۏXKkn*ҕ's5΁3I* z3 Ȩ7FB|/&2Of-u.H zz7 +^_K hHa2>mE✅Tj7J kD{ίLݾ kǔ&{ITizc[X?w|.bݳ5e@ƅ tBw3Sgsyc2!4bfvD̠gHf!E]ە*⍼Ӑl; +sa<^K2.L(mk.' +/iJ0Ҝռ +)lx2O4>JgE +.~fr7!=:+ev? υ$ɩ&iCG?[xh{+"d`dn"la`fkla?xI BkrO|a`-WsP!xxe>:Űi7!~(.4Y*D< a1Ff@) =J t +_OU~Ap2h^5"ֱ)AN2_807X$1:fҜ[b `M ʄ#m :Fgſ PZHl59'XesHivF5Ӑ>mrzGiQ2 +m. 3 Uiī颲(;KoK+48\(YBy^rՏ 7ꌗrs4t|b[#}~c~ivWVg@}7uŖ(4EY(l LX뀛#7C H +0JSc2çcNGʿr4aN{C|>4qg"eA%ǕyK~o;IF0*5",D9"6-JhD2}CXlB&M0dEҲ7ǂ z D!N$d:cGH [s>%s &hT^xpdѨn}A"w˛} ]Ez$6p`ܘ0_?3 nAcr')LZٿ!ƵԘ(mj 9mU"2T'I-"0)v4nce uP'M` NjݒS*ynSnySI'wj;,W*0FQ((M˿QB(|CQ m5;L|3tevߚjJ|A];ͪ4-(V;3Bbz<'I4qL< ̝tT^W\PTD@D7VVO +h @:Dv/dv1Y´SCòyMI= +*y^fz3B YC8"^÷l!SԄYLo'CFepU(~)2G$N*y2TOwЙ)딎E%;)$-k0MU˭jM\A2dišr=>Oy&#e]~(,|I/9xߟ`:oc49+xa8 K9^j,SŪCAhhCfV In{#ҙ,U>5XeRZۺQ'g'jP6W?[d2~G17J{V,d8jHjQRjØ9c%YN I:(ROD!/<ꩦ %̽a+Nh"b4{]wyX 0gtց<iDOu6Wp[s)?qa7}jBvt83#E)؈! +pYS#HO[VW_Z>8G$eHB(ȎߩT *KjOϊ E:nA@d6?wE@ua($Ea,g`Tv:{08+ 0# 7Lg/oMCgXq5T6-H{@6ϛ " |z:\9ײN^re#:G5ᵒ ^/0o_S;5_%O[+gm;o*d_~)ORC@l^? ]LMMi2. ZRu2} K}$KG0ҦG[ThVlЪ#YlB#6k\[[o\[k_:tٙ1o}^sOB~>אbF$R9;n + EVa' +.Y0D3e)knd-q F* a@ zƖc(܋Z Rp8J5ԚU*жљ O[Voi*YJ{k V"~8DܖsEV`s/)#GC6nW21l,Ws雚&ĞIv_glX]܄:72ȫen&WPdH_(ȣqabk5U5*I./HPs 3*ؔgňƾ.#n*e~R͉Z4 _cH8{/:+|P(|~Bu^}0Hm-bm%J&0|ʜF}Skq #YݱY`NOW&Ynpkqf%:T=}9M%\Na4d'}4 i'/FȁMߛv~DzIiH*3DL+*%KJ0U%ؚrnAꙙI]!٢4qJx2H]Y1`f%Ȟז Q IFͩ9צ\l`Vգ&# 7 tכƤ1iF2\[%qyˈe,[RaQ!h/h 1 (1qNJItu0SiϞmBLM:֯ۧSk /A$L DwԌWO{Mu4yFYild^J>[SH7gg>|T] zv]Q#ꭥMc ܃'.w_9@T Wh ȃwb~{GXq84?w_:_V4_{[Y|S?D2@ė3vwNn&)3C_DW" +vĐM5j*LHlC$G:-2L:z^zVLga$K=,X9Tf hwJ;x1F((ub <(~m {oVªbЮ0g'6=a0UւP0#%<ë 6-ݖΟ/e9RD[FC + @,:M2yk,yX@S̋s/+ Ѩ 9G?&R(R6ܻvsKx]jL4dP/ NX-:C!@7BEfVl-.7M6tҜrO844|}a4'Bb:Ua S`jKπ]S P mwl! JyYqP2hV:٤"VCj䱑 K# +V= ]~-C#lc1O7-HN;m{Q±$gBxj@cv)[rc?gCzsʧtүdh=mmP3yluL<8Bw-* 70 #]ZnJp*nk`*M9lAl.W\VSk뤪vFH)va3&تRتrPو\s tٴPhgK'4 '4-Q ЕUV)Ze\4BpyU~IpRC@8UȅhR݃]Ԃ]V(&^Hż&M-#L5uU͓^ՙjl*)RJ߅{UNhb|^XVDu)d]Wd?Ej#.|E~*bh8@c٨ۨc:fqm?pL55K70:^73ߍG{^P=Mbv? a0:p'Kjb{u)6`#qI |{HN鏲F.Y{npyeynJT ^e߉-([-\AZNj8 BcT `1ɿC:2elHQOzwRg2_1 Z89Iu10(5EbFHB< +[zۢTp< ^ >bFOlh 3RFVwOؿ| cx$ bEzSxWMp8{&D`^_H Da"G_7u ;V 7wzLޢ l9a*QyR䉛j>KTnX^IͿ ji%JI3T ).fTn9+xA,34#j +֝~GLr"d)ʝ 禵18gy,Ʈ6 |oIyŠIEtjb"[54h-J|D\a/?!*CsH81$cȏZu2b$EFcP^aɐO)[usx$:6,oM4}ߞ\}7S| p#HTZlg`AP? +P*J4lE "ުs+4 K=?qw`+Q9y <)rtkFyv=vvse4;$ /"& ?u += yMIb~Ubkқ@PTʐn<\R??ÒX`XV:/Pj,lќi#(+_{eO[ٵ:hKxGQGR! + G-|[)/jJZ+^AIJAJ,>Ôa*)ssRlj2V*1kDԡ iK^)C $ߊ8(;e$aJ!AFADplOH "$] ,l tXue7^Niő1BmEڳW`h L:Ϥ.:(Rs[2{JSk,̇kBbٸ^skfsV!\䵲" J dsg@FWIvERY3>_G/pOO]vaAmjM/q,qqq?D=D&%?Xtq7ಾF0 +DY_;:IZa%a?Yanw,_LX$ YEc#YƜSmr󓄞S>:u\u tBANIYduHf ?ef`eC왒 $C%F#s' eM=΍y++ӐsCk 㽩ѵIK7I I(ӡQ)LYr9M53*% G*2R&/(F6st'݃`!Ak+*)HRq!T:OVأLSZ89@Fx,!Eθ +`#Pkit'8Ui.9y@E.QUGKU2>b΀Fs)MΆO@PDwPE-7h[x^DG +yix(!(,h)/aTV +ZMΒ<8A`4xJ/vuQq->6K}ӛ_x?пl^n~nNCdB%!JBt/q3_%*///y}7Qt)^RW*\WaU6B0v xYaBB_U`#ლz-VTo8)f ,1'&OXjwqXbLMJCQKϼ%dL9t0kAM{ XG?P"Y9!;W78Nޖ0p@^ޮ}22*.n vڶ +0 #pcʂ"29|J m%?SJk,es8QUy I,Fǫ p(}C: pO:mDt`gT㦜x'B“lxU$s ,3"Ϳ)Z$ lˬbѓ'QQ|:HꪲEK[h=<ۅh*ty:e %Umښ2&!gaT~|7`n3e +1Y}WMFe[yG$pIR$7wlJclGb,; K[EGQl%j,C|Kx_!$`;s 3—'uJ92F V8FU,Z)`B0sUZj Cǃ9فj;^O Y:,~3d +[Z95a#&sD)Kj-qfrjL\5y`}omEǖ!B9 JdoU%u*ˁ=W\cM̢ +DuJcp*:`muctvy Ե6g8U"k:Oq;FxF*KX aKgR5V:L?ӂe[ 2MaF!W +t_a)pi\RK+QkOuQԘ$,Ik2QRu`g9' I+ n+8ʊ`dԪ+z3%eec꜑㩸/mT Gi#1;.oݍTzZʍiBL}3*8:˳ȻRzmIH4q7*M֫i9/VH}㷋B$vw_X 11Ӊ;'U oCE3uYgUᥨ%}QiV啨>C:HrD~!e.x +y e邊a<&Cv3zl¦."s4WYBgڢ} +W%%sDs'o,'4_Q1V#"kryeܿ489YX6d Ю) iUo_W^9]Նy=k[oC^s(߶',"pINZcdUx,g)I4}ޢqUwPi[WjRQ=ygyUndk;;BvYjᇶľ|}ZSƱe,kouߧW5)ymLˮQ AA7^Shd쁐Йhc]8O7(ҖRpUI r8zfR ~9 +Dx w}(ʕ#Q|ʴ aKK?HMbVNNҔe6AO!}IF@b]x!U-ǸPI@zx)/)3.Y,CPmz8ԵLl]="Wnr<ﲣk/ _1u0׺8p59t mq)E| Kʝz q.hrzVz[@d_5EF*OƱہKtEPxŽ@29oKf-mO(ea~c`eDs SI#Y{BGχ:|^!Кؑmw)]:VU r1d6K[p+|q$>C}/|aNv exfWW, w.n"v; ]$i'x w,M` nWV . E һ Oji+%"z!ӓC) e/@ [.}.x%33Iis qqj~plsI +BzO&86E!z"B4\%rRU QjH[js~)zɊ/;AQ $Pӭ~nƹ]sSNϐU STS:4{ MOfHš KEI )[;'v U\s>^̠%Mr^tA5X&MWH9 #dHKŲD}/:=!=Ln39[̅м|N_v37i .v+ `\m[.P|D%ܗakD탁)6CE;Ыa^DCA22bkzE"۫" 4ȐtC +XH&u[23v8.ƤI5e8Ђ Eu${Eӿ$2Ł7+}!ٳ Wc{tEOG.RՙWmM8z3}C1tδ.վua =K3MF38q4%QG,AV^,>@[ >I  03G-`2Rԙ}{B Xrg@ yK΍h Y$L ֥dFX=1URHHS@FɐRGj\XbbItqnu @tIN Y1#d @L#ҧԑPzgdQH1#-SHFR wxd}ջL⾄DHi$hM$Li|9,K@gեsK` *E0$ؔ $x c%e,yX2'@xX%?Xc ,# %SQuEAoҤ4Q4 u1y|f +?H<yCxdZ1 0x1E:uT㗹c]d29H/K\EN-{kpƬ]},nKOB` DkAC+#w4t-VKvaAn_vmmI+}B" U\꘧`*%dmaaHZ+C/4HK3⬰PiqK?/-00]pB,g[_J +_KIŁ?P`& h>-(д2(A5HܨU}Ъa,_c)wJ{!g?VS-cuɴSQ1jƑҗYa E-vJXu=hj˻ųbRfʭU).G7+U)>erD(= Y|S}oSÔ|nCP< CjgEwAقNUq3FnD;&w]P2w )ߥ#\D]>(q,j`a#cL ;WL`jáv¤mÃ;Rv +#~=(p 40Hs^* ({ db-9lޘ4h_Kȝ'2ɶydY\|#.gI=hVE]҈*krz &WCגNdUߢgm0J~o1) hHAX/v,o<IԄ@spz ׆a){Jީ$gO=ԦpLQZ}f~+وuqJ=Isz"帪}("*,S8XfQ * M%/SIiFG,+HV.mBWz;" NxB~Bw + 'me09?ܐ_~_EkP ILYӹ`vٸcKuEuz'Br~9 +%j9ܺa g-!c%5o=sGgcZ=%ˋsWژF!!) CCWVp* 7BpI(C7l$R`qGGWxB<0v 3l=~ GVC q9 +'6̓F*҃IK'7,A.<bUP2ƠhJM |R hxeԸAR:z~Hϕr~ON#CcNF! LVR(~F)q"1b˦Q.>Ĝgr{攣ybd,0ho#e9Ϛd']p94`]9ϰ:9(d~9fn_(V4AmlIRGRj'9L+lO;@H0iKF\Q1>م_~E0sĄ^/EyBLc XRE.ސ=9%72I35R2Z)[ZL8C1$8AH/Jn +g ¶F޷hOIDݯ誺u-1iU . n S,P2;7cGfp#4kify˜¬Y=OGDm4 RnN@ш`n=˵hV9 3Y)qܵw#^;C7.]v Y+/6mS8f'A\Z%f^YKҕMֹ=JhN{ܺ4}hupmG(wj;g%^$ae"e`"Re3h$R=,Xf8&7a|˿#a It!XUMax5(jd{xWhm`??Zʾz_|/vC b8-9àʺ$K-mjm-^maz~ë6}|\H VV2=iŴѱ/ݹ(A~{M^g{a@-h(U[7m\ہ;:87'~ +iYCkucęs"!4x 0cL6 WD>-0Ag)lD@E0ցnFe$Q >*DލqӢ_k~I I|ɵ17-'=Z>z8lm_N6D_v,C1MBE5ZblW6'egRiWqv,?=_kWMvgboz}Ԥ)LEq:)!V[Lb9 \4"ov{h6hGXz0{zTxqi6ՄJˊc(xsNEVeD $ƯN`3)K=^nETr^W(u|s g#We/d#`&0]q,ˈfvSQ9Ht$M/Fjқ6/z3|;#0{>HlCG/x2B?/`47h-c[q|-OQ$+k aBz W7<:eҊz9b?̿vӕ+6[XPQőr2#(V0/#ra20'Wfv-'L5MZگ(QiP[-?si&kGtE7 ))ź)wk*{^h\YlZvfub[h$]^O+߉YP9ܬ2Jy/R!`Y9KڹʩZ6ā)@`(Lxʴd[TfK3G9dṈ*mY&36{Ȓ͐XHzZÖ,,ѭbx̊aBҴzfiTO^ZȢ- >ڼR[UÉ*q# ;`8 +Gׯs SӯrGd®St9#7B/>i~h c! =prd7J=2eKwO9,!~#ECXu TLxzRwőR$蔄qtLBS Z פP{ +s(NO"H?M\4L9HB7lIrJ~% ;vqfyM +jD+s䐁s:hSI?Τ*N:X'?u?HNv;oO Pk1QE9 1V4qKfPϪ>;[&L_H5kԨO@=RVDzjţ_x~S3u-OLv '\F+{k2|LVF82I1L^F1%b[Î ;Fkobqюosv1%Ix(wuqSI%ӹC`Q ^xy^ +r֣?9%RZԁ:t~C Wjrg.$Rho:r].l6]+,M'J@wmB5lK \oK^7ӏ9+.~ ]%*;؊N+,cIay'`EklϩR~tbSߪN3Ox5Nt:D\|31I5y*u`q6ˆ78I0kˈʻV~[^HF ԕR@ƱmW= G{~k%dX0`_Г&!Eu5parZyd?^#E.6OF! U}<;ܵLεJ$m  E~8?+Yf#NX-K\̦H{|i;gBtfY?vmC.—N}v87DyE]uňB@TZCR}[>#佔O |<^/RB9  toȉ: V8@#l|o:\x5P`e_Y_Z7Awz\/cta-wܙpm*!wCw.͟1=|87f|%B\ۿN꼒U-spͼa11+2b(^ޘ0M+♶SuX)VS^B yN/%Yݙs#Bvצ]M`.;1W\k`MJ#Y d=n:[}f`kܿ@ EVװܙǵ{Gq9t}l' 9P'pzzsY$k"ψY0zcGig6wkϻȯ~HłK >6y32^VKT@,`┄!Xj#iQzt~v'GsvAL e1 frASs4 +T;ZkM. /$U FdYa#lT<i1# +?>fWKw@.њg'xS4aZaF3\ 0-uHFUo__ +;6\ht7 ]dkXiDr(;wp tjq +Alz< +oߙNv` v1<^4/ È򐮘Sos3@kyh`f&6`˷yKgs@7!)Dӏ3 +- P{b|K5?D#ט/e6DIYjqxR3?ttO*! +y,-mP22֙"z\3"H-#r\bӏ#3 ex}mS/n1<Ecа[r ; sOPT?ӹc:A{!6WF(*<^t2%rH9 Fy^qqj2֔2&`2}tvr=OB2\s2l2GAH (( RIY|ZC}*V1Lϥ Ho,L D< F +h Bq^AQnj]5zl2( [%+i|ٓ;~sP +w"3ԱBRTĺl b{b{8IJ}%x5<((JbUy+(1Pf5u?z4( zV}P v9vi0ݩ1)oG`Ao5C̉R%'84 vpO Z8Py ֢N +ku..Oz\ J8:}Ҩс ]߶ꔕ-f,W2D]:}4tkœIJX['4 V5ʶNlhU`@xbEDcJqZ7O.~!0;<eum=:MnIp|,UCe) ׃4~|,K__gD7djF&{Ode쉜|0{Ӊ@ +zJ5z2"&èuI#.94.k 07"a'Mu8 gw|f?@삡 Yd>K +i?Jtm&6><>"=f>RP=F4$ULA4[>ţ=SrLY\i)bkL-s=3yTFm"z24z6xQDM%3:r^p^?Ȁ }.q7 DnQ񌙕~<| 4 }E޸lk=w qgT Gd#hpȬÈ~%?Hhs]vlw2pG@υFzF :p&9] h('(W=m+w/iE+kqj(yC2 9NG9`93?lpSf][]Ѱ凘JqJ(#$FJT_Bp4Ч,ceޯt؀޳+H೯}H5(;$y]2RNUӛ9*PDwϹ+|",8G?0zCx?Ңl`zpS][Z!Щ&|%wԲv,fO]4򢘰ØOT2GOLӝ튍dt /1u1]YzRæԊ]CsFE ͚Y 'kI3-vI߲O9@o1j=u~[qK60ҕm?h_m-r/z ^r:.p#wfT[sz7yh~Qv6Ħ6AկҮh&8Ǘ4*Z=ҷdwնiCg~:]+Iw6;B@f3bsOwC|3Ω%WXok< 1 E;.06_ C K6 oIX?!ZQ|hckprXcm|L_Ⱦ'aX$h"мãeWo2(+fYrHJ7tKJ*r[hfWwsݱLw Y#C{f`Ÿ?hIJrK1i о i&| +mt״;P꩕}1%儒xƝ#sV9m:zjhR+h¾z ٯnjP#{BjCԿEhdau.yΩzs4hFqٚJ:?MT]9̶CЖw 96 qQXjBQdFO +6 +.r{#-q0 }N8k{K$KK8fB8`ڦC| +6UsOM-lY|I 2\Q>WcY gF{3VW>4Ω^ti2ɼ g46d^dyj@'|]*vždP\2v' g}"~{է}is}+ ʡaE-ZF2dmhak&m6O-ҚpebfP0T1%i1Rʍq@P%AɔL 1 S;ӌS鲞 v*HV$d§q@)ј,&zAI?)SO_5E +V +hf=[)L} +iA!OiU\{!Wϐj˵ۙ#< זq; +.֖6醡ǘt 0I VIdȱQjkAL}a@ΐQ1UU}т֣$Mێ/aSDS _$aj;L"3Nex[wOU 5Bu*1:Nʐ6Lx~ :H3vƚ=_&V.ă;g,7V#) + +Qސy e7 "aHP² ;=Ǥ`AA6dgg b)~ _i)6p_GD|0~RRМކCe?)P@!i\h[ +O60iNJa-r I_ sƧ"x܏5|:AB&U1 ̯b_f`Pz!*2*A$h%J=!)NSR^xt{: d]:eEˆ`G@C1cA#@(տ[gG{WST :~VYav{["?ija̰@0^"0 hišS*vO]N?^r盺듿{j*ݮ'vsvV @$NZq-bOD̢ߑoZV`ݕLHOquj&S}KƍFO2 +۠¥²̶"vI({wu1 ϸG?j,%66_rMXn 9В(yG3" +- K$X\xvYZs|h{TޤL3|B|tq0C` +>}3T85GnB%`m upQݵԵN=`W?Dq-S2E?Dsx!13?Pt +(%Y{Nr02҄(gr9 `B Rnp#R$dFtB2 arS "Kzǥ?yк`2Q/=TAITz!OX0L7 ]fCh!PY_RXJjnz)VOOeeI'ˊR ąIa/UFΜx>L7JY\I"%"zP U=+Mq;iU:{ f )B@Hn 8Xy4PS|ˣ@kExfl*g`gqSϥx桃pEB>ORJ4 03jP2qH_C76y@B 7uj_{])L3O>We6-V=oBU.E.hN[^%!å7A GE@(9 %23XD  ȣ~ZUpUidKáT tҔf jx*'pG%hԁ03 KcTi{ztRi~|FRK78XypƘ$ml2w'FϪZ!n{yٓa&_bU>oՇ]uS4wмfs1L0nTȲgKzPT6+XG̈[_tt.qmp7ojxۍ6֝FD <[}9ذYO1{W,-m?+"G ++Ӄ0,"i}d]yՆ4]u0=8-1di͏fʉI6 <7^!=`jq #ט)_xQJ3w"`a jg&%{wwyDjRre'TI9JdKVqH:9GAvIGAw߿{a[J蕾1߀<5Nݮbī_VKRD21u?q9n.`X8H0|\PDs,a kut !Q]6cG")w~֭i ]qwJsHG'7Rk#${xj쓉(' byA}Vۀ]vvca8kz4˹FRZ_iPgኁ}81Gl+͍pk>P\7P 63Rn?t#743@#d+nߛ)Idb1/̈́ٞX׶7(X)VxX0.SdgAG}<`ȑ.a8(^XRvtO k׭&c Q] fâ/gʶLDN%s Fu$,{Rf C/Vi^6&}v"dW;eH|hFA?󳌁II`F^ 3Me+hT=:"bh2&gL;/BigD8@l<+J%1H\94&M}F=PI) +bj|UDk%jHw'].E G%tsoѯk,~f C,[GޘI:of$xqsJ*4Za/?]]͛B!i&`ʙ*r~3U<LдEQن4Rs[@~qzoOgg( 8AQ=&$B D1[tu"CןX_ODNsƩi$1 + + Gh&om`kJ;Wlyl ߔ u"ZAMk4ߒPת|ƋW=&{yoTk4}PkKu{`4h){:(՜EFR7&$Pky@|Х؏x08!wxD~1d< v^,6 y 3Rm+p(>>ow{@0{Q[#]ߜS޻()( !JG;l<锈n*)/DC|àkٵ asTN۝bAyGFtHy`(ՃS÷Ch_SWE8niFU2Zo%o>#g;x\C5@bnbyŞC#7y;k5G{%;k5 N6 +YEH1N20H1mѯcJgnц Y]]|ܱؼ!u;Nau~uKbkiQ7nKTd$;'`gtP{Zku^#p('~+fCH[oә .jN쯔$#LH)>v>b(w7.VJ/;F7p<ҭ)V<ܻV9z.WQ7oپZgi?Bͯ wp_uQ}apQ^ b7bh:5z̔Õh"oe.INJ́w"07qWp㶹W/kig6=p\V8RPIVT }m!764KL쪬j6& hx2{:F @Gg=kہxi2XQH]Mah!?gbns}Xɮa>m:Mi"ȦW1s}8'<m1'sC7[&poޠMktS[wNZ*w1'e7Zq@!Dmhk>c 8`sg1L6B"\q<1E#\c%O,'ؘBpK@LƳp;%"yǑyυMH`$W6'V-t9x8tiq/(ubox2dGaQIkbc36hGPdY+PM$UOK׋"!_vMc6Iz =h~TM!JC.GBthɝi(ι9{z#sN%w_n:B ]"}ysyxy e}\C)s4LƪrG}Rn =A76¯ż_}g)x}šD,$FD^ƞ8"ߚ4EߪUWyt`_pojN\[`^؞*ҵ:S4Mb/fJ})/d{^YE>C̲+8sYf|uBrߌt{L95O#+4`Ͱ$'ssc٠gE12G mdOG,uGDf8cC@צ1ٱ^^QGtMx+O=uK5yl5e" KR|wKNe:DƵJ3}k=^3=ƶ&VO~Z-#,fLj`<߰wNJS:)W**!Yʖ/S:GabD9,A.a*K2RgH&XV\H*fmMP'JXvU$[MlMv^^4c$p&fK>gEYRov*vVM4;]og0>k +s/ CU!,7 s9dO4̠sOݻn~pD؀_IU- &w֕lH]?(qÂӡ> Nl6߬]߅ٷ k6IP/2,ྕuɈQ?V v1z#hav5;Geks'b>?}ON,U̟*, DIIIHr"K +!F?JjGmvc5z~@'s sܑ2${Wx.&N;Ȕ*yV!^A8bj}[99͚K:&+ѷhP[[STܐIG@+QN4=ZhXhN,7.pSMxT8 kX˨qJe؈(_[ lmZшl "-1(N@ AF&x)*DGeTbājWEs^dOY:EmZ_WBa.Jɜ@aI;_*lT,7lB:2GPTxGxJ *#.]g: s7nQ]a/UN1yh~[N=ٷY܏C9ՆS;}<AN.{]ta"Hf̾]4)'SJè!!]ɓN=̕f'S=1k)%b-d̞_@E[@|99ͥuu"`&L# ֌SՕ!4ڊ4)9g +/O$N#<&ga6ȹn\23ƏTEM!Ewe[d6'Pu E\4x7YN<!ھThfwy:L0je˂v PJ[HȊŒ99(Z<E%p9SO:"d2 ՚CŇ/bIr8#5l7[y9󫉦PX :t6"ZYYC4K6Xte`qao*.B +~fu*CniMBntTuhpTO1bG]nMH&Vn+SYd6fv/lNhݓqP١ /MR6s!cϢz(X CKby7^3zCOE>i 55ńΡOVx#{+(%Ō'ȼ/cJ~$#G&NRvw1F eo$К/J9|u@Wwr8S*֧+<fΫ~= fGyL v Il=s|rrj׈ߗKnztZ2{ Nbi͌:LnH>\BUܸϓM;Wl5Rod3@ bt>a&qFBpT[lҚ-C5iɒncD5% +0G.k0sllhea Wr_jmPj`Oǔٶ}t=xˍtGӓ|K=%@zP{tZpW?tol&ɳ#H2 [dl0Q *p?5ޏusM}2| + #'Yxq\i|RWĘ +u3gsފFY#r]2;"Y:?`0ګNXoLDr_>#pb`vl!>1(E=cqr;lVgq.s^` >),+ u Ȓd1~&@m Q$*2 ,"lPó̟TG/u c<T$ G/y*==/:F~R?#/+ [m 8Vr +ˬǽݟ͸qV7F jɀ&9t +.%ϐ:ePߟ/~p_ľ#,aIcO ڄV oIPxXuy] K9Ru;ܕwp Rn5%MIaez0 +]7j +EFr-Є;)]b *Jg:9њhnbZX}npx +R'6EY%܎KkW|L&AܱmN'1;=xP` QLs]DEhPz Caل=* +a\ㅅĆHj4sm<@c-S!U_*(#h۶_$gJXqVI%FF$JET@$-U<&iѕ ʥPh@Q[<+@$>DӦ]%Y;6L0&՞6P)젓'T~Ҋy0hhdr IjdoA3/3zcj}xPU5K֟ X;*Jh]yig]{%}3LwQ5e{hޡZ%. +ь`M'QYS9Z,~;/ٶ7ș$.Y8zDnX.N k7柂ڷ̘C|̈{/^/p7zY?Ŀmqګ і&^&:)*눩fPEJZR#C&T80@.!Ud ߺywQI,PT#.29w۪Ӫ+ >Zg|&lᷗ##0lf*7ʱ~;P)I:gq6=Ȭt3|޺K.6 4٪L]˒C"Scz>/P,~8k +#|x2F 8-+uXhim&s!E-7d + +t2C\&,& q΍fZiH<^ED \"o {)dTbeCޟ"z}D2F>vv8Grt3\|.YYɨi*hi>@Nf z!WO,|vmALuqED& +Ԍ}A"c& !799hېn_H0pzLw!cׄJwD™6)T;Aud_di'c?ZsEcqn@(8['%,2*{Fx,LCfJt݉P8=jPҹ?epsv[pˇiY\ѡM*cuP@HGZ[Db0:'R\.//\PG `B2 i@oa ʠ3@LGG"@W<|!fV?y4UU@$tr{@Ӂmx蚞Z%QO51Ģ0GqKn)IvW*[@.g O+a.Irݕ#Ȁ7Kh8mY@6jSfWj[KFJ-zT3-H kt?'K8L8DHAZxPK +J/>Yi:~=WP'S@׻ط ~.#(QCpBa<\><qI:%nQ|-♲*΋ebYeʴOr嗡5lg/3ˣ' w F>E)R["|#4qStQN&oyxyfh@+vşgA5x) ТoN'CV1oSӠ +6vˊ$Gb +q}9Q,]M'f1joc'[2j7;#MRM&jvFV(C1"W~t 4G! d_bN' ve@yUR-޾w08!-bX +lY>PAJ88W*a\D\-'lBAopnT?z Ro*V]"Z}*y"}@qM1bdQSOREDHF? Duc  ap .Y^N9o+먫W G`Z`ڬ2Xb7QM"[ +Ɇl$]l;J%f.5e7L'NA^>ߴ(39 3tbȖشkyHQyȄ*70HSEpobYq?ڕk^(~5)VH4WYʧnJC(8M +H%U Ϧ'UˮNRBQnfo;=.~D**_r\JȿaOZ(89Z8Wr݂<(W-R;~[`7C!<(RhPb}~&o\ϛ!Q} Oа5ykI7Xߐ,\޾iHWDrzI +K'Ջe,5Q> O]􊥌vvWCu6J:GEP\}p#\h 4T3pzBeYnhopѩN~QcX4QzJ bג[N {AuT{wDg8o%.\FRUK/E +'%νfdJANŃ1YfIRFSn\V:D%}h f(z„# ,9&b|jJSoSq0JREH>Hٛ<`P[?n'PH)! "77P)$FwGQE40y"nۦ^W8pU[Eh8{1Qjq/ښho(:蚆@Qdt25`A%#0kf/`'VD.!{:PJ m6#IT}Q +5X\ 6B]( 㐘%L4~-FNl&B !g#S¡[^׉ +L}m^;lCN:Za~f]rfm;s­pG}*1>r<\dRqH07fS6*^V|r=p6W . #TV[gc!|`ĦV89c"M]?3](sgE[@vkC>RVٔxE ]ClF7KIN*%TotBA:Jy*y9>{)"1, ϙlmW@|1ejD5+t=+o4 'bUӉjaG;(&qqxn͞S(Ɨoc?0PD )a~$q8$8 Uy: \sΐՙhZDZuVll!(4NC/0Z?+ɰ@a^b7v]/(Q恵LnM$[e 1[ 3%Ʊn "!J&jAc[xJ,\iie9tmwf#z-ܴD6VbQM^H%j4bjkKb43m_:+wIhm05_o!k-9ج깰wW[ k9:aCc5w3`%zSfȻ+oTyYZi(E)B)/Y3R4æ8*eiƂUJLOZy[qF[bͩѵz q\89yB +y/[`cd89/Yp;kuZ:$i%AK}+9K(V*;w:W 1viBѸ觷UEp%w)Io[G ~F/ ЅF+f|l~;tKטv!=n+%JfXKW7dnݮSJ]; +օbDSﵚݖ5}KB!i!Gd+s;K{tw9fXHxJ 1"cMt@iE=JM%rDlGN8|1ɆdSGTR.ʚj1%xRHMSY0)t a9&f-#wa>u412bkM4dEQ}MXfzA"ZL 3J8q"z,Rr%&9rb[1 wHTo[j}x)$Jb^Љy|A8v!o~@߈|#zx+gX0oj7tUq@f%aߵYy"=Xn%ޛxG|]3,MM_ONvs&Z5gucV#߄dp< 9tx9Y,}0[c7-P%f?1Wf9)Nd~ft}(&{dO޲;զ7*e2rMx[mivk$PieI?ʲ(S=6fI\\Ը-$F <4A٢!&W|Rcb|F0Y\Nn1ޔOK(xa Lexd^Xŝyjí"B֜49j "iGœed#$v}dbF2~U}@w:,IWBۡ\]t x: \S4=;#$X %K#`^r}u;&"+DCJÖ塡~9AgTjG!(^S$J $dNj1ͤ^qJ+9bޏ% S]?mm9#Ǽዪu|k] T_-}eD5WܾDrLvvk= /~7AÒ`訪6ݤ.|F7ӯ\Yρ-ӼY~}\s>B-zwpNLBܝHrc(r+j(yd#WEGjiqbnM~d:Nj(5unG9he܇I;@WT_<jr}tFfӮ@\F'?>p'I^ϴiԍd 1\S]L]G`]۶a36nN7!2_QDޘ<:0Q@*hD٨x"ݐ+pJw]fI]:8e/;akF:<(Аoʙ)v"3Mi8,?/6m geѣW0u[ (x qGn# XxTIt!Lհ%8D'IX2)OE7( !Pc@ +( ̊2{f'HȓPS[$&^ε{SH$] wQJ9؊X|73vˢy;7TڼoхtkyƇ=CHr!J5 fogg篝/8ҡ#< ӵE#(ZKƆ6, aurĆ_F Өi6U7O`)vLorx'&4d{ʬ`.7AXa,cs%o"V*i{ma"MVMG|~`ERA:r=z&zgUg(:ݸ*֭=P!N0[+ O4^?ֺ`'|qW^Vx%Vk6uPgЏ<3C1`t|gш0 +vv||iӯۯοt~+Y#P ͎f?N54 gȱUG/EB1H +dFUmKmUsWCS=66`'B1vCO%62p3ǰSt8f9ƴ™͜u ΍dm襝|ahý55~'C uY93O #ȟ;c蜡MP 2N/ ]u-82gK2#ݫ2 -0BXi(aLט\MTy?>"kF=dߨ`JX3q"dC5{ )G7M|xE0y $il326V{Plm#B h?\)nwE7_{!19VVTxeo?I :pK.RVeORVTd?薼>`!3Ļ`rIcx*UXUʋIz(6)-A-e$й~0By v91 06AG 6Ӂ'*]}Go?fYuY@9?ugQW,+Վ8sD^#.!%7`:v<oqb7w`?G`w'XCSML}<%QZ+?HSQ](5NفF֥p2NUMP t r=P}4`XQ!Ċ{#V*jVj?3]7<@EdB@!lAs $2i=6>{й"}hI+=}t.R?u.m̉Ʀ~_SW|;ܟY<߻r upNqpNv'x]Ot;ѯR70 + wuau|7wrowq*c*ӧ[o]}GoH=SFzͽ'#xUb'wev ݁zT XDLg>!hX Q,3Uaٜ@3oK"!Mk4: +%~3Ƶn-rP4Bu),^j]@1=䏝|+)p6߬h&M{1 x +i83:%3*Ln4r(>צ)dz,Vi$Rqt6p NIH[%"Ro,D8>ڏ^ƫolB#Wq\2e mЦ`f(S>J?\9UtN p;2#tD*0[Z읰[*̇zݥ!tPK(r'Q1Uoλ6 +C)QKD_ybPh.Czj$#xlLÃ*ܡЕ *d2<5"r9hP+H~xt +"R0:D1wj_uU?.7Ҷu ;Zq&'V@A^LNHodIcnGKV$ dgR_:?!|c3,2 IOKNLY| /zf8l:t"<^C +.CM](L41=N6a젎5V=Dz)Lo\;&ݬI%qaDECJDI84@D+]A-<[Uxu(CJA O+ ذ4m艆V}=' +Q"lTU^$B&sγmʽ/Ӧxqe D,_ TSEw.ī#Ll53P 12,VKdxfxJ{A> Fv~_2N ~X'EfV9^H9Ѧ5O@qq(̨aQ88fR '=05ԇؤ_>+k4qaV'*$oQJM&v{<{-}0ZI^)K@mf#pvK(Om`sP١B4idf)%E!d/7OC:̃C\KF>j +=lAk,J +2y R٩*&G3?0'\5r+Grsuo.F׋+^#W5OB~7Um6,eh1,OHf rSn +B$EtRQцs/>ks/nZϟѣXw~#/7OnCܣO,Kd] ]=$`$Xu.?ߚ +tl"X4ȯ\UcayE\AH܄auc<F(1a+|sѝ~Gaw&u}g vl _T͝sNo Y@zG`2 XݯIytF=:v2:d\aئ2mvqu'Ji)^&6?gjk?TL]-LU7t-w@35: p %5}@$+=09#GA]+c3\SR^V: "P̂B):M1*a_u7 hv\7rzE``~S2J ZΡPaIxzH8T NS=W]CxnC +L庂v=KLObi[ESy^wDߐ>3NPpBK@VҢ + 4D(jH!]<]Xt!RV?2T {ci8xd1k!JJú Cǽ ]\DKn7}'׊ւ6K bJrkpe)M`)4 W-,u怺@`X1@P*[:%"N}ҥĤTQNԶDvR 7hV^Ӕz]R0CUToM@(Ž6׵DfSfd+;<{ya6, +Ӝ8jG\\3[~*[A*Cd5lYN-ln7vVjJ,9 +wUÏ{E 8v]*]%(]5,ȭJ {W}?Aw-me#pWc<ܽJbÝ|Mӟ4N⥅0ӄMB݂FTYuTI,NIWcJZBMę8,Γ"gm2a1iV4fQ&sn("1=P am]aTP>[ծ=;NE](g87"NA䎶@hIEs|#wqBD7D34К9W [1BY5knNJkW1 +a 1dDmI;xCٱ.cff!X MYڮL#Hyeb<Ӎ4V(03yb扐,Qm}LCDQUBvk +)!C&TD(7bJf܀@F԰q4톲xUbm:z\(#SyРgu(ЂlI,$ڬI8sCiqLjJhtDK53_Ir15CY\>`Ҝ2*?͵ժV +s45h)KWX*\x.:2Oپ KWtDv,R+#gnUgu Y3U f:K$9-4t@;qZwl]5{A4ŻV +wA.,/bBeUok'JR䒆^WXx&)a%9tT}$;F8=|Jr=x5ߐqnW,L7(UWKݎJ/!=-fĕP nL ^>"uTr'a:u L[`ZMqwN_40# P@B%?3 QpkAYhl3"-u^ u[P.ƍTvJRT{ʜ.vs'dga2m>C[NގQIq{c.F87rۯ)_(="JȈ8HW<j„˲跨 -P'>$ yi5KIuUhrᾮ >H<'Sgu &UIE4^vʪ+D8ӮGG iO +7,i҅ &uǨURN&=Iώ|Z5(Jߕ :ëc}@62P=}L 0~1vumHtRnS:eD&kdKԲܔv=Os[dzOǼ593GêD@xBNҡp!%QJ\:̩ t+϶P.a1TEsdQugbb rmԿ,U:3'Kbޘ% Lvn('!+4'D<]IOT4S$= +{#5=zᴸ0W83 +2oT3^7!o\#ECO3<1Pe;L!yH/ 6OK0zD("ѐ.5M<" V."Y[̲9P>M "VbVXseCsKONPw67VGb[jKM h̖52umG|_P}nsf_n} c*տAG[!#sce RU?ʾ06&Rˠ5B[JO" !6g[u&^oO +.oH6YZ`i/o5eX%[V>k ;Jbr~>✽}e ϥ3 Lsgz囜Kf$:bKwՒJj}FxX(6b'֞ځA:Cq)ҔϤ\@ù7l'8U xtlxJws,:#d6P`:]С`CP1@"Zbm>auQpٶm۶m۶m۶m۶mk}o3U]tJ%WT'Fƥ>4pZb6 FP(״5|QRv;iJmȎ SoH]U*I'lm( J6mOgJv4o0V LM1E=/[U +Z "89cLռڴ~K < Lg}H4Q$9d$6.>&1&{lDt/JIYDŜKpj⠌ʠrm&,o1^4QN_,J´Pku}i#Aw\]I;V"o0>ԽKnP:_O 9@ZN֣^ ;ć],8,/Y\3b4g&=),3UaMWSvC٢` PrBvWD0Y+HU-;=Nm!ӪoN_a9O>Қ4a M*G.`ǻ +k20{#:Q9Q +"6EXJp +[^ܥ8xtIzIXBaglqAfWWۊSé +v(XU~s}E*Rs'yKab/`|"bg ;EFxu'd41my +TMM.Vb$R$G*&=>Γ{{q `"!MKa`H`UȅL-*rBu";AN˧:sq/BbO,rH]<*m惄ڭ,CĢ= +;ݰZEvv; +ݐ4@/)!,AK(/AcT +^cN0] Atχ0&ZL06.rX.~`VvX>I&MJE(,mSIѓz$(|]CP#Wap 2 2: 2=R(xqJcqk/.Ye )[@ B(ƒ KfSC@[ny AkuЫW6'zZxa OMLk ]w:3U{n\ '=klկ'`cj=ԴGƶ6XrAp#0CgXb8 c&[ / />p Qt?R! ;K2!E%o,h~QpWȣ?Br߲WſzXEq ٖk +qq{7"R[P #QIʢХ܅mq焿7FX ]V,XW3?jm N7-!ܖ)i:{'jGdv|Zn05y5 R?Z7naዺӇBBEUtYr}{5BwP?)m跣S_Ś"Wiɣdz$km{ҥ^SGB1 l b̼v_nb/>E,*f C @1T(Ƅ%329 m]DqC0"zvZt]]>~9f61`lY}0֛S9lXl/dT0crG9/!M<ʅGDbQ>OD*T-i'庐 0 1!g%B.̛!+ ¶":ԑ\7P)&$f*(Q ,ʤREBDÂt LM" uнQ{Pw-ENj`d_Qv|cU=-?$E׽.hQM6J'{R6ەd{@\enQkTi{_ 6D+Cp-j +{=`%l]J}9-uK_?ߕڵrtK/D-2*w_~~!;{( ?Աγw>4B<)# DDyY&? ><[,l+>e.dZ-uXD{YTGyZr)¡_P:./}ku^S&IoP^=((b%P,>UuQM9X _N}bސe/^YA h좐a?G2VV2 ~R,R_E$&toĊZs[3 *+G;.d KJƃt4 U ?p_9͝6}/+<} az(IVH;vOpJP.167͹ W- +H+Mľ>>*: +kĐ8TKbHH6BE~! ),57"%9Ļs?g{O/?柫V~Su+jP7yDWa-3]Mܧo :U~ kӿ{ua!;Qö)2teג +}6Pu + +W8U*ʮ:UNqڮ;v,㥦UثO8z{IVU yvJ㽺:{cັܝt5NvvH8 }PD _fA2fKh&҉Ģu O%B`݆L l8]6a(w a47ڌ>b#l:uၠ4k`/|,ir&ތߊ,Y-j H״w?4쟛D 4%1Z\; q1ಭwiuZǀfF!:3-4FoCInö l} W&Sn.[ؾuCa\wbs^4J;ޚC|f8dI|(Q@w[X#"J5C%OJq7mX`Q>td7|{R +|c65+j5s:&y~1 rg%3gvK2=K l'݋Tp 'ޏ2F8E똡 {l{}1cQft|Òh>pnL_a73}ƭ} >mH ;@=K +\(^S$CSdp-`DOIY2XB,9FYteA]cKYUjA4a*vhg\1.K{49d1w(Wk`C7nsle-X(a얥Ҁ܆,b3X#L/\K|ХLQ!1ZTaC/DZCW G ]>Mdtqvv!ˬ(hf4;S%Fj@:$O^zF(G;@QmXW>!L^-7(ƅ]8O#k~$u|52Wp*2%/hUI ?4V嶁ʭް.;SIQT1ܖENe {F ( ۱ڣx*yXOZ\s[IR+ro'9NZnqqmG)@aB|8@`YLieU k(Pr :-.ĵ#A87 @ E^xC61V +6J)^KDRL96N(\Q_$VuÍ)k07>6VB`1D2Lt 23Y2#S)rrf7xZ3Nғu| ,,Y`uAkB0F6 &PD`":PP52*`B@B" # ƒ;[P*^~?SM~7r}SRވ#/TU'(P1Dy_ohLyF1WЃ'j=ĂE9;&}l\qoo8%pgQUw9TnoD:ſH rVC;NwߡooȬm +03Yu7Vŧ3/dy\!-O RJӕXs2 +1 a''}E{6BLLriڴhGj1qHqG/JtCSO_JLh߿:SI ã6y9C_}"1)Jy8=|>`MJ"G/U jd5 {=f} G^7%t>t6R A!=C)?Rz'JJDɿ}NOIMlޱ\U_Q0q{y ]+۟&<ڨy~K֥^:Y?t-= ,C5}Ntg ~j$dcty<3|9#?U)354g]V玃]w>M@t,ݿ5wDrh2\ӪO9}11y>PbbfԵH0d7rwfλQGEsi%/ 6q6m?AbY$%]9]7cNzNmVg4Hs7r)?yfJƈ$)DϽQv?S +c9_^a*` rȯ _[u}/x:q jGvه1 #Aw%'WS.x=:4m$!< +M9 +BTS8306 Ԯ t,<%>qBi\ BV$PhS]:k#J`;̌cVR:ăX%j3 EحM2>p=O7q>;-݉_qw3ggb?k~ĺrb3+ؚ=iڔ|R"reoQnq g֏e:`ca0A1NRa+ ;0ǵUwljLVf5R'Q,K:iN)wxKeG_H $}hܟc?ڷ_:!2*V_ gca|Rg!c.jܤx9&3`VU1"d k-;Y}# 1oΫ?;2#v>d;ḳh'P4l2,n}G M-qBGCj Z>*٧0$6$A"l Ha Ȁj[ӺVԪ@i:FjWlZzTm[[rM O{yoe>0,+>)eJdg>(P к`8ZdtOm[..ӖM]*eE?}UK?Xjrd}yK?X̚Y[. ΰ,Rϴt3^K?Xַ[FCJz}cRMZT'ٲ힌viw~MktD%Ჷl1]wߡP +/ƗnZ.,Y7^ +ݾ+s~2٧6zg`ߖV~!g$&x mMxoyye~*m7_wQzXmB-}E+7_%^d?M_-RZہ$mb__M_[&m!^_9/|?9HfCʅ.^\JOp?Y%;esH?=^fAHJ?Yᘉ@(R3M)7۞/o8iz V.V+ܽ8QeKı%@}0i|}AkYgD\tctټ ]lYnT4x#XKH֐LicD_O!,CgcjJ;_MZ0ٯtryucI+eC`̦ +H׆DdjcYWƲxa--JiV˳` Jk2$eݞV|5J!B{bm Kk6-Π[U^ze/7j&oًE0#׬یmlkC[O^ =J~'ѵRip*P!ՖjB) 3/?B6@luL$QS|0կiw31n6<%sR-"u[DqMYz^ %CoNg +nѩIɟ{b8p=''3U 줋̺v6J6#IZ|rkBJEX߻X +޽^V2zvr&|o(Nm;s e,9Ff6@KKf5v|jJ8u[gl&ŸڠZCl[4R!V2\Ƿ[P{Y<4~fŔn%Aj4R3a]ښj%ˮ.zN_V?!&a)szwKЕJ"S<3]=AOsmNԕ1zs7A}o*_(dxp`^MsZ?OȟϫVLHg+iC7W]%^i}1j(t\룄%~do N鏐%_m!mjTtw7dKt&sX-κdc_o/|Cm4ډtWA]yb+\:HϧJجLx"βb6V:8PRkz9?ٿ  ڐ M;)Z礊_Љ+~R U-)hQhK ОZ vW~uVG5Z 7 Q^h+*&L"XQ4J(.#({([ g3V.$5^#w|n  2!!'VlҌ oW^|kq>]+Ò}ָIlZfýA` ⢑ 11i~v+FT5>aUu^y꩕sXAuZ,.g=2jiހcD.iߦ:j +>oUT^]nT\\a]-TSfU.߶*6;H˙ l 2YH]so~3>Y ;,Zn^ˢMu ϽPu@̝uy˓kKpYZmYy '].t3R!(hm:+>s-(.7*@;wqmdD(ys`k[%ϭE㶊hsV<&VmzRX^m͹>Cb>qsI9vb@g*<nnlORyΨe3E{*H)ݱRY124t"+78kuaP97m1j2ڽڑrÚ\^gWȾ 5:Kԓ⢕4OT2 \uL>g:bE{kWs| $EzJ@g#7R3t>-{{ŴJ}ڛsT.KVJv#V9|M_ o/nA&uN!QoYs +B99e2u!ۣC⒥Tм4wګѬG5o'wnA<󚼞)f=۠,kWB3mUF [wN{hBǓ+,}}\4tfj\%b<թ>k k]<[1RGXrZRP.B=w=\~inB'Y5ah8~RGT3Zʁ?Ip#9~WsqIß1]9Ȭ2Ly+?uvw,{ƿܛn0B *p3D=t[@}\!w@lZ㖁(?lъK(C%M:_n(0ݢmkOok ߋ.; 8/'; I# +Us jSfTŅ/z$?@n̠wɀYA#Ī7FGXuw8ڜ`3.c/@ L7ۋb;qD_U,FmE{&vzeHk('HX9OYͭNLb혂eXdzÈ] Vv7VSpnl8ЌBc7C.P[F.G:Z($.';O7N, w406Ô$80+Kl(pi*Z@:(I3@Ԃ~j0+ Y2lԖ7XJ5>a0Y+zw OcD~eJ|B!I'_*ZRcju:^A.K&6!7T9j_@Tψ>ZQGBU}m~.ME: 5 L LIR,7A0(C$ fHmv-q;@H&$ipILۇ!aFc)[9d&x*m_-{~+2 /Ȟʦ`^YE  _ +I n;Gr4ߏ|amA8ߧ֣j(2>qD|lWП$,J"yބtE<{L z˄%i|yfz+'RO,C2z b!j+kWPY3+d(wܙ#րJ\!]kLvOwGx;->4@4 /ܕ//:Eq̺Ts!AKb 1F;v=`Q1{n̎~9akٰsvLw;;ob?FZUS>H,2dlt5>L-n7 ^ؿMC{dSyfA ! +>w7vQh3GQ[E82 ᡁFМME]wUCoچ;*; +Gn \5_&chvMǔk~NA .)}.- VCαqsI2=R*U >o3՘eXڐI@~JMUe NBM2N5_]iklc;)8nvݚ/^kݝg.f +1Z0,yg\ g.9&^/^?oFQ<0 hXR0z]זcǽa{nlFg>mxEH Qb_2qX ialgrFe3_r>ZIc}c/ZQԩiaڈNTK͂d)cW2Hr^4Rt]ea^1{rmlJ^Ԟ{k]ީ⚱ 5٣kWgVٟ^1?fg1;&lO5-ڑ[ րN3r);q9FQv(8l 2;nI2ܑ"X'%\7Euo'hLzu +=f[ըDIz:NoV6=n#?G^xԲ,[2PLuW?jyjuz8Ĩ+e٧RđkVqw'\ RGL>/IL׆\s ՝4샥 2k4 {\S9RkBE%HxE9;:Sɔ5Lė%-oypԧJЇHODx& s)ַ +. Y6%?aW*}41< . aݭW4dͻ|ũ@۩|=:g@xWÁ(-Ƴ i~yH͝(=Q*/OR|:#?5J_\6Dt5fw=ԕ0|'+22}Ȟo_ܻi/C0پa~WVA'} 8j?\Lf!(BӢ ajt A]ױ5]c<+C+x"Vzqj|MIr+Ph $Wb\slIs-YuZ1L䍩a|=gkpus$K>5:%p=vm8%G\Ѳ6/qu;羟>gOQof-J.bk=ⷥK5Rv+vwRݕ\F+^5 LUS=ƷKa^wH(7l&3C*EZA=<|liwtjnOsVו& VR 7krG"eOe4EͤaA^^3ʜ% <͋Tvp7VuM +W\{Yʪ < 9ZE&hWyS̶`ŶM^(p3ފK AY(-a] Tڎf¬-BS(m?>M\%=;neDlQ +o"OM'K=wŠ~ lX5w2ӢԿ5.~ z)␮air^)4 \35xy{|d⁷{A9C{G-^! 4 z1{%f6 CN6 |XDas;q_\)^jV(2TETekcJJqJsܸgt2L4\DS`1>(rwcrC1w 5 /apU`W k 6WrGQ i +eu՝Dn+VTYfh8`g_tBWՈj+;F}p8~m}߹8Sj;Qf;SUF6-gSj֚E#y[r2.033#O4/dƮa՜vix\qB{ ]_-y}2fL-f_&2R`nPL2e`&_H5Pʂ!Fz suѨߋL;OkQs cjQ[+;Z^ƛ5nNI 9 +gn)<رn6W}s>Xy+B{ ]s; (ȣP+V q7E>Xw ?~Ś]'K3Yށbg\H_yBVU`{?Ckff{bef|yd5퉓bސ~JyQ81+ˬ䨹Lk-=xg( :!O5z Yaw?hR,`d.uQ<턬[Z|@  KD:J-Z#;$"\m4I?ZDHAuGmXC@Qmn;/ @7]d'4D FCzx7 +NCh}iU%HQܵ^G{+VX׉_imu{DXn%) +d4GO\ݽW'>5+Vy +:EWMfxA|]؍f)}*̋㻥B(OSѷVBXEQm^#';ĭ ~=:' +g[^_3ԽOs=PZ\W;w gb0;Ds#fw +~>w}UY]W56;'۳܎858}}Szl5FG5'#Cc"I4 EN [mg(.uNǻF2L˳!eNx]v/X Qg'8wMjF?6 j f9PnqS/9sF$ +zɛRZ2aO])$vڱπ3D64.fd,m̆6!CA80έXHm!#8KO;K0&S&1qtX0 K!''lYGrEÁU$(9kΐӖGpGX;əm +y6Α!+6,MZ44S哒XKLTo5+"/n5O3h!}Kb{/}**-uOqN^j4øFeX$z?݃U,9 hѷkl(ޢ5דtSӡgu4I%/"Tqz#)UȌ4!zCԡuB~P rfCy-7\ؾ6$suUS UqvPt]x6XDKdB˖ 1Sm܈ĒgVx_A=o/P@!WRsLYFeX7m9}+uUoهU+z";hjB(ZcRp۞ ugJ75mB=WMu+PH`ٗ,Kkhۗ8E2K4=8/ɻ:߶3;4k`(ݶ3oyP3rh۝|Z8'Dв6="BZ"&."6RKPvQGƴmlFJ5%JhQMbM"5oC`­Eln +^%AlfPӆsL|8QE ? q_o:: l*\>u[P ΰ6@OU8qшՐ ABsdAw吥@=@zh* ZP2;fjI8) a ?<. H=},RjN k>kdRJexVrrN?ejRts^`J]Ak#\Z%::Xg2^T2{zo\d^;M_4XFUMʦܖe]ʝEOq]q{yݔv$(Cyq +'m-B]xڌP\- :E/m&S6>mjÆ`@uK}m.7N&3tM/s[\`OGQD,Bl`^,˖M u>.Y~bcxwڲ_ǕUΞz[?9jo05rY 3PdҫRk@l3d,R>`ennMWvD+l?{^=j V宠V< HL7t;07" 30D?bzSŜKe57b-ִ4e{ D혿83Kc}e|'EG{DEܱ?xBnO#*nf'b,?담`3>ȋ  g,8xk=oƹ8J6Q)܊vkvx';^1K%yy*1M|Xme}_IlW9ɍNSy(3YeuR +j1v̓,!q@9-xИnsLW:]m~3~9X7QvDcņmƳ S/owzYEʲ} +ae !ۺЪ[IJԧqV_Dmym8\긜$u5vgf~9c_g3qUg듓/QT\H+ 4i55wz!iKXQ:B P!A@0w#{!؃U "/Ȥ?yxv1rDp_$9 W;hpMSdSkh{?ڢO<[?._|.]|r80dp4%7.ik@Y<[`O|᮴V9fpb2.ℰSnmQ͵-U02fT+LIytHg|@-gf#3XV:HE`FT'!xN^2hPI8ݠ}?,JozƟ|bԾ!lT&aPB=q~^(zJ2qj)"A0; +"9j+e"KGN4%PZA{lPhTs>GۃFo;yB9FC9W]eԞHy|=&Um`FU}cG=:t%DϽJ]h_\6ԋ^~CuC`G䠜Ǿ1WO'Lb?n?gv> +p̞bj:~;?9sQYM{ 0`‰@/^q2Nő".U5 QT,Wa5{01ce"a5hy(g\Evݬ ј/ x6CM'yUmjGVYz$=I7ƠSSH8E xQÿj6gEowƄ`6Hq4ժsj~<)P̞]fĖ9}Lvg!<Պ|rUkO$oxf"ށspB,BNUm^Ᲊw*I-3?vJ@.y'Jyr*h0jkwpqpۈ"Gо`\պ+ʉHё&8\dL+ uKIir:B.\({z6p{7ݮ.7Hw[U=+ì8z^r"~p"ޡ}rԠWY&ˎ?@7˗֨ M[ʧ+eetջ,gtF =#۪]blrJ3\Vؘ+dk]jnW +]/[bf׿y4\Y&g%|vr~f(6 Tr}.LQFٳ+u =ᒵi&gRtVGjk5ru@ t G:@LF՘W5-]qm_š= +4nej:Znoe^X+{miY7yi )oČVԈa/66pۘn6 +z.z+op_Ǫː9>ȗn>SaM+;sl~4ae󏔻/j\YBGJŠohS\r@&ߖtپYAWETq0ҝ|skplZ$BU,]S'.ꭤ. `RW9ꌻ;&ٴ'/47M>WE;j +UWY\eUa.L3C䥂~)a>⣸CA6Y:tg?|~hڃ7+r[͢5Y֭ H.g5U6_%2&\Įt C&C4=Σ#ǦG>>Tf::= 3y݁ G,ySS^ur%h;{ ;!7Pz/|UOfBBHvp犴 H?粶NZH: +Da41 C1D(@\sAv@{lփ՘Yo!bPI"P h՘*7<ܺ<:ʼn$y8?cYs2"S\R6K_<GsStn/f@~퀶v`UBo[?[0X7ݘtJCe͐'7/ +y'I+/8 O 43;|aFMǦ  HL Uh;Z +;gjc@>j);l;q#J;ӕ49^ӈ?NW^ꁗ~%Z30 m14m1H}1P=}0f07yE?xexG6${$sI:؈y֯R MX@)]JQ*x^tցJN!Z7R.PD/yܯvu&,E4pso' vhBI] EO}3K̗"qy9T?>GʭUŗ[߁Wrzi r  +n;0uyqȆ!gFGl kpI2w{BO +OES쵲x!kQDƲ:@ۖ܈ +-8g1"955tz0o:i_Q`룀oeseΐZ֗?<{#6C#wp9;F8x( Pxq'/_?3*hL o}p c+/ROK@T`O_ I._|(NJH` +^%dWYX,+rf<޸=GOMI4R?@WJ䍤sEW^5ƥ::$N;0Jj%.,D3߱ަddq#0P`ϨkoVP7ƅ:ϥ@Ep`Q'-DłT +X +[r=[g=v 6so= +H0]JF4LfgT3?@7IAM]@ [H /.t[Яm;GY Bv|n3coEQel1n@ YR`O bC o1h7j2CZ *uɸ%E%22:nW+ɮ~E+O}I7gHKl8N wKx~9W~)NoIE6^oKy +-Joym{+-ޯ<P}A{ W?gӘs ,?e M Mz|CMӸRm3kj%91./LP+i>*;SwM#~fSq"_"$mqq0';NFDS +83NmlL4DL*ʟ[254I/%*I "M oKy$Iyi@D1~"屩אc)QqAq|EE33W14 l0w}mdX9crux B$̍~㑦 W?x\ 0 !^bl!dh]^3V?E +iB% `–97Թx I[FJRK(TdA9O>T:G5;c}ԊQt}7WP7M;ğ/wHH̨,][G{Q&kUR4;c.H5:X.ɇ< Z.Y<~bs|'h +I jstx ѲdVT!=kgާ-~ ϦFVDP^'Ұ[].HYWZ-'}XH[$D#*(oT*q>}ʩ1|Or}ff!hGz3*/wѾ![TzG>Pص\[7H*NbkRb^URxzMƯ +esD.GO(EgOQiQ}5LnC#4`Hhu-! S-?n$w%ddb$bjg1ŪXQNXM7 t( 8HJ R`eDfZ#{I0#6rLDH 8ҏC?ƽ,6%3}'4r1" 9K:"E 4UM4uD*,/lu0+l0VFUp/w +4ʸymDrrs"STL 多 RprS;yH==ļNyGR'ݜ4Vn#Y>ͦ\/f9&77&2`79x :Ӑs̬wwڈ) d&ؖM^cd6m W7Qe4V?>pKrO-SKe(D1~CM,0] /R@J]]͹ RH.̖D㷂qSQ=pSrq 8·eɑ3=U`uP6זoW`IDy'r)š4ܔU{.חi1,o| $.|2h>(]3lҬlh`ҢU +poD bHtL.(r2^Q%fQ>E/1[V+wuGU PCuIGCQd2:G0GUD=]65gV/#;({.GsǨ{\{F865DGi4g]1AhEhejIK1pcK/ʠ]S{5?"KUvHQGyCOWI YaCIA)ُL)a3d&,*$% W+ XammaZ %%^\QچM7F?;D{}=y/P@a.Q x#dPb )p8@ 6 jE>, &@,'t'VDE]X:`Mta} ~>֊ְ`V@i@^Z$;Sk{<{(/ivM ܎ھٺ U&7agv%YN5f궁:ljÊY |).NB;W35LhRE`Y^zO@"Ȫ8v,Р8WWO˾ ԧ+ UyBFC֒L(*I[;Wg~48q)OE?k*,^RN^d6([]4HC>}%֢խBlT[Lq bU#+}ܰ:An%>~ssj%\6kܔgnYVpF${Wyu,mm-mdnCϪd9i_C󞝪5 DpԵ\`d0TqcƮŨ,K nMGUA_ڰFqX;#wЅ Uߎ? pz);Y:h%t fBzє(\YP$UήDIFt)d0bƗJbWK)=6Gpd)"tCeeRz`@KQ&7e}c<ϙ}O=^vΡcp}]jK^Pqѱg#j H#8ejB}"T`Jj?-ct;L8>fE +"XꖦeC`W 9qWuxb)Y<<J{Sx'c ~9FOdghloWA\4+:!1gr}iA5Q]p9,Zfov!U2dɻ>\vKD]%{~O:dk$mlXuJs&'f<3û=Z7´ p +O}TpU@ydhG3AVGW_/>_#CX!͎xP/nK_-KrDC,YkTɲk'~[qeeMoEV4*`kƛxFQyYu&Uԛ\iO +y??4NEkS|"`V5$PF>HO7S>x\HN-kȦ +woLrIy& @L]PWQf2N1/I!A  +@C4v1;עP7k K\5iլuh][uJ|d]7z?n8~asѣ}* @ + +*QK4Fg|Pb%f/NTaWY1*,G~mJ,jQ$9{YPN:\tg,hԂνʩ "4Br:vѴ-IgR^-X_͖ܶ(fݨ /vVϸ{iDmmZ-eeI՜ļi ›p4d(˧n26MRi(!5jNN3a$*sZ0{ ͭ6 DzidZHk3H'&␆VK+kZf,T*iFkRr#ZԖpG]wbnlymEjvGlގuSC:vʍa\n~x +yF[ϓ\xb{7lj3oxaPdX rUsg)$F+[;4l' p^#*aΝ{.?0oR@D"j4 3+A?OkJѳ3i="xLU 1z6oߘ&,:d 옟`*7F`9Zc崲ikzZsӖ +f*UeGYp(B?M!gLb;YǬGiz2JnYTq|kyC8k@$5l4Ŭ ì|@$ 8ʛh~oSi%qP%1%S2 OalUgMkk@{ #sHflA;mPZ{ n<0BD[=SR(* +G5 ~ {fQϽoyp1=b^6':#)RKT)%[Xud(S/@ yX,ʡ9vPԡUs7LenDSVoWڍ=BEvTNJ=)=_ODEVd9ÜtQpqȂɃ.I Q ŰESJ45Gkwo#[[8Qj!mNl(q%gЅdiKW>^[ z.@V]0OJ6 +=iYr%\;'Q-KT!v~%:7sVMn3F/FbJ<-&J,'6%XD*@9 &H##F 8^!()_Da~(>%Ds'lVm(1OIe^'Ib&x')hWgeh!hP!)P#1j/` (1T;=i}۶m۶m۶mm[m6ٝmĻYY's*ϓUOQ#쏫6a݅Oxtjt!Y!-X (-Yњ$,]xf?qaZP-2s\|K>oN0J_ ,H%j.Ч٠DP稁p 8P!OfB^B^ wbB%$%6ww:ݐ'Бo)'z  .ЛxMAtEoQ +Nu:B:.uNna7 wrO2NZv'm[55?#pKG*0 7NTUUG{ƖJ7$*tsu@=|S8`1)>,T$S)iofss a4@3lzPCٶIMkiͯBhJ}V0F0qp½0dÛ$-@}\\\: u[tw$.)vnsXLr:2mWZ>Vo;}Pj[(BjNSnuI%m+ T5|v^;=,oi]o %~ϟ/ISSKjfN'TEn 0˨%4NjuY|ʵac'o ;1_0}'3$jVwZG'T2n4_ _Jv,E<uzKuuFq9Mu9m .kcy'x0IX?hPe >~H,XUf?(:YqzhO8aI\g J:6FÎ8QnÁǧG磯[^`!DMakȢEm )ݤ,iO%.˲xAfUKC֝|Oy4E\fWG֕7KaBoǔgx]@]6p# +E/Im8B[b;[J?310 ߺ'N!lJldkY c}!(R؆+NY &v57U2LŦ:I1-qt(eŒc7(+泐w"ElEDT՞,)k Qz3x"ROךoLqb#Ⲙ4n{T(y<|~Uf;5D jQ&_(1Qravyz4E:s gaNZꭠs|d֦~vxJ>A59^| }XOcyԎad.0'+lFRCbp?Ll Y7=7(ڞ)K`{sH~7-SS~h^qSO'z]vrdmm/p0=q '%5<>{RO7n[M=7NKMӦy%SH]]j)ƾ>B@ S=ѭl\A6ukVVN;M v22E)K6݃V_mS*Uw;YjAhݝv;1p;nL͵[ poA K‹ f֔fJ VawsCRQ`1~ ZdA-b"?x3߄|fs 7]Nyao8^V'r-N W͠t:*D4iZl#=EE*-,"t;J} }kYe+qaL& +5O9BD[]XT 1[^yt'Ze@3kFZĻ9Ie"9TUO۱#C5i&6s/,iL{ޚ(ErU>[D+favq6%go^A %'xS/Ÿ!,gFp?۔VXkg$r)1t(4|I๫bKKJ{scWo MBŪ64В03#h`D}%rۺAY^ة[TEz)1slP\rT^r_|rT)`7sؑ)Rc&'Vx=2NҾ8 +R=ô :ODzjX!&pԭ{>&);fP5Y I.QQŻ8q!o!u¿=셣+@Cp$ *$keJ[C'O:e"| \HCQ*2G0 +fBALK5쾼9jLf "/{!!U!$j"~2|(&rr iW4h]6:{Xk=ƀY,efo֨V2藨LͩFZOW~)X֭9feUZwC7 08@8QL/Ḯל | 0183qK,|g! 0dU4hp)ٰɴT[jB54 ;_߯:N^vN?q1K>0=b~(v ^"3e{tw/!PnKô3 !lYԊBa;4R5ixr[9s5ԝWK㩱YalrG~ +" .Pe Z@ّ*Cj ++KxI6<KC1O6J sV a +{)Xx\aKԵ'^D73q0+$)&i`I:a/b*Ѯ +=[?ݑUXpR"O:΃kTHWJ=9>iJSGx5 '}smT9 0)؄M`[4bC&қY,4p$ܝުI +w5j? 6ZR|$L$b8SC逶*IjrѬ&Z%7#f#L4PdBXtNmX94cͻթSJ+`~; Y^ƸN}%0E\K+?s.57,";I3e$HH(ށ)!=fs.A/tS<ToN0%K"n&&~2d9l(-Wi 靖_.z +2C9Fy$QM&PkGs93 k5FHqB̃v^Fn-ܸpFB!W.F&{Su,y_Jj#jo$.+/$mS(S"*a] LYhv_];s{>#IzYAwā}|[@fHʔ2 >@zs5+\( 9QBBT'b; #ꀛ(b->۞QN|ܡd=r-8o\i(k`zWCR-/=Kg3} +-/.DЏ1 O(m׌( y4#O0c=W=^ѫfQO={C9;$QJѦWi>@ +{́[Ol$[q, aާbpW /=h7BOM+E%X=yFrP)$}Na]G4/YCa/_yxL +%%ۭUC[͙Qr,"ֻfdM y3VdZvrgo1U.X¦3d`WId(1I2wVi茒7jRfAiM +>fzb$tF֩'z$׳{POȬ%r:ĘEf>+yOeйTq}sC6dMI/#>:%lK1}q%/a.qSGumBDe<릑 uCdCxDIe+V}.zk;fE2ϐ^(3X*(}uR[&MOPy{\L<"{Uo1zr*=ث%BJ{!s-ׅrY `2BKd(L NGKJqI r1 pԔ~ @XP_A %&Eh^ OD X &y8ceIo3 +ʐ'ijLaqyqD%xmzqL<.%W(;ݴØaC6.IǶ/Fߋ3⻮ke8#u>K^^e5$%Q }0c =Pĩa^N(=<6:@?m6m0[h yCRy(uMVBNmbpZ;mK+0m$y7 i mJ#+ւ0koŮFuY!Yx BjQpv1lr+647f8=Wf!*sR^m +қankPhnu(8_2' RC:vָN,Wf#Wtkr- $4n rbs}y‘Wm8+Υc0Wڰp#lGMc*l=g,lPN׀C1se]G &=, niSg[OF¨eYQOXG JlKsrxzֽzn}/|J-i\+pUA-pd;npPU3jG-AY$b?_ls&7.oW)9Nl! H<:(%yeRg|D;ym"yHs5I#z>E3ۡfК (wU>ҕae>&=yWZNv_WӁY ~whfDr$2r(IA +@vp +l,1`\@TB}”QQE +}.K sN iaBP:]GX$#R>W&zNmMm +I F[ M3<\b]f1"=g[L}a[M~;$ +i +pWYK+,܌'(L%/|M);}am/CkvgW/qg֏:` KvnR(-87Z2c?qm M؈ hw -@Z#~@>ac~̔_O\ھ0IU }23y!V`c#tKu7zs5j;f&Al2nuDlfNr Z*uH+Zf*׭n.Z%vO(ѷ>l`X=Syf~Ezb%" !Q[ր!/nK n$_qit^$ir!M0Dh^n\$u"?:~/#*ÁriAn| d`O-hn!!TU%Lr{QXOJ6rX4I1xCb !17?R,/ [?uTsbjqJ,6ɒFTdR2؁eLM5?Mq7%?{%3L@\c7).㐈v )dpF46 kj?ϥGQ&A˃2Eq\u*e)[Y0&S/>$G\`Eᬤ/B7mh_$lp7kHq YBpK?칑0I>q]I$店EP KQhbV-bֆ^Fځ}bN_*nQi(Ǧ}g 0]35-} rO]򭷜whDF'TLK ߑ Z#ðjc&eTHw)KǸi!4MݛYƾw?d2RR)ok g֒={јm ' C[tb ƈWLUhEYqLc4[&`=58CܠFYGW^?ClҶvkMjII>`XactXnv.1dzC~Wa}7ag8iYU t$75,.wCjڭ.P֦lɭ\NBFG mZ'2an]QNN87?ȞFBи|pC'u3'%R5d䫩\+ժSP#GLWU(S [q0q)yeZyU1yie|ɧa(f0&ۧN~+^nx;^m\<rmuGEAE7/hDU+.q`6]cPK8A:\cm(H*̙L*O~7vw+}U^ȳ^mN3TVBkk}mdz6Nz.Uj 5!Ͼ ;-LN_,dv/#~:'w4tu)X yk@$Y5H𧩰ȵnX\Wպ4xhg30[<߸뭠̴qNBB7{Ts oyh *od_Ŕ?n~o|~f{ٲ=U +nv1 ;`ngod۶x~D.6ߔn¼FFnB#uG#h4޿$Y&D>$7p: ^πvtB=:^Mp#kkkjN)Hr)MN=nB4; ͡ mh';HwpMo y0nvzqLm/&\32689 +xSpv3 l]+F=xQ9c[82~> gFpD5TԜ|$UdJ2#HJϿ,OtH[TV3/8sIc )˷51d(3.Wu+űryj$O=~1>æ]e-*~kU24y/Am,@_]vwμ`qE!|3NC m:ݕ,!4Zhgi_ s@{R yR eU^ʇ#d,%DDh_0e/lҘz^R W7[1}Q\%Yv|nw~-(\7 hRDNgH"y6\ +J֕[kv='B3EeBuh9 ރ iXNcZE{gP1i)qG?-޽+}ܨ,{}v89ިұ|HC6+81Srg}h)A5,UqRMhXe +X3zM ̃Ju\9ֲz3#ȶ!Pv` +=QFUQv=kkN3ؕ`Ho!7B'XqJA+Kgd!Sfp~l۴-7c}x/?].LQHQaH^ՙE֥:؆KW7`z`]gs \OtİAӪ`-Gh} KTXkԴ&EL {Rp/ $\eGrhegA& oD@)d +?dcYaTCK;l: aF%[hm\*sdoI2C}%<3b9) rb8AjH4:U^@t-G2fnE ᖊmg+-SIh#zAԗ[)! ܉dKT~0PXVyzษLM٬$/\ +YRiܔn^z]Ly*x=K$]494fXǐGK{#({(?|.L(/Id4pjo%_=WAL$6 qz5Xua#n.CdG-l{cUo:E_}ӇT +00C!zrboa+'}'b>KEcN 8:o󂲰?Y`K,\òq”Lm8I9zaZHy׸>"R&bL'ˈ>}*(5!FL._Bޤlx~]QnBߠ:e+,%\m~Q(Bp-=LN ]<$w7p8TIu۞-þ{J`lO6+*AԪx .pzzu(r4倒-s"z\bi,@)T=Ъ{Q5KZ\wuRMxQoq3H~^.oRaBY3z0؀-5r0ҹݘ zH!٘aL$]4\O^_ +N//*¥+ei؛9+LqƯ:1WDtQuS';)OwH2-h!`X<'VQTGq2]zWDC329r^dA|dAJ g1NEcћc4Ux! ;f :đ8Si#-5jÕ;+B$*9gwlMs bN#G&'0/*ܻVX8R+f V A-1MU˩rM)e *WWH=s8?fG0%4@KkwAM:q(?+C&ZGЌxG ;]|kۚb8nqrM+umkPJޅm:tr[ ߅ lb-ٹsjV!`w%nQnùg +fٸ9D-ˣ r~ڥ&?O,H+xf<`I\ޜ INX I̮ $0-yi0 e_r.%-qpĸ_$C%K8 + KĦ{h43Dycآ\- &ߤdK-d .1VVhy)Mc8g+ZFrikc~UۻlCROcePe+ZPu +Ki8 +Š* 8Wb=!eSǙnQIŨwPD4WAqkeF$1ΨeMn Aͬ-q*îIB pED +>ԝ{)F~s w5S2z)V +e ii Q.=zk~ ?k]r[ds G,SP;ьO^Kq &xkhh -G% 4 ½8t"ǀ-Jfo.> vt D?E(E=E`;dZe}@x5l2,{ck#v{#z; +s&@E^>CU646Vw1m<+l Kff ,ۃ͈ψi*>שҪcq$j6 4Ƀ޼gmNli_gׁsrȃ@es 3Cbc1rJficQ3D#x~l|fnqJc:핻C @B )toyZg1-#G5i{ elw-G%=&OEF6҆\16r&)3m᣷wKfI͜jIYL>FGYaثJ +a"قc:ÑRK/$BEdfdIݱxzh![LwvLjA %ϾPCrJBϛ%l,`죒#*M +GC&B~|b\n;l)#=eꙉ.WM%)ѓQ*#8af 'iI"; bA03QV i\3i:nR}`n߷j~ocE2jŠ*P_fi>!W ;5EՋ IAF:jma @F67 zUcJӳg@(3fCfʆ) 9.8ưv>^R|#+[Yv`c'6'݆ bUxWKZ5&^ɲb': VVf12V4+7 b 7 +;ϣH\j@fqLG,D7.Sh)52lDM_M'GRi+ +K>͗V:%C»t U:qGi,ήɔ E 2~?cW #g@s輠?>k+H{d,'3p=}0-0݌G]窿v0{^%) ),(jh>!:y_2j+Hd2u(beȹw${_`2xT%?(r#sV^jQ7x +ak%JT/]#}K?b(^T>oPч7a8"n +8hL:]dDB oJSb5& ϞG˭6#NxKIјo0k-оq>,fDp*cO(Phsܸ_WF+xUpїR8G!9TU^U-TbT(TḀ"),{w&1!mN@ٖ!'w`FC|drf j%j_e(?|Y=Nt̮},&ꆊ1|#$Y@d.``_m_5~T/ S?] RT R(Y ą +2aR!) 5+MІT&+RS NUi$OU*Ĥ;1,[W3Q|k~+Oh>W"YQpgJ;͖ѮA]̎w^i ? ^KGۇWRe^2IJݖ4hqwk [\9Sin>u8x BWǾy߷{[9}Gp82ؒkO39 $O]r:{vNxH\Į.ODoحzoovt3wzec.y5>sꃤ5ե!oD|9Siݵ' +%37KEXXkgzዸFO]?ĒīvȚ9F86`䣩T}lRu4\Oӏ' * ֚;͡tq醡;3Z.9kat^PeQ(m#4˶t)  + FnCY"iK&~2~vyx۹nwMBg_A91XL׮׹ _0g_EX{*"sR41u6b46 +ak6tr:u:pmԫ-gv!){R +7!wQN>[^z0)ȥyCW +y(G'=Z꺃8ht'.׊#)'x +"l%`QRE:*+#;&DcB5P(SGׯK@):ZS;g-8,_pm#Qp_?pnQUD tJN @5mVŪSS.iZ ?89<#q'x[DTϬ@JF'^*;W]cHG# YA2,sQg$RӁ%̓Gγ&/N +`KNaؠ9W[YtW>Ob#*8Q +]|KcI̘c\2q[͌xYۑH_Qŋp9?ְY܅Qw6UѾ2x؞S^'%x,+ԆVS`p$)G.nOW \Vi`0ss0^67p7(+7Qa{'XFZNTE_ h\/{6I>/ V!x]»| 岻u&܅ Zl4ujG3w#qCGf|ƂJ~=B/lL5Bqv]2p }uA܏_<\B ,W5qt`XWF4p>80Tzw 2g (PmI} +KKW:c^\3.lm+iD0WkdU:|/>Ȼ Eb60~>+u&FFxբK0zD?/\Q!%EJ2XKEj7dN|_v(hc wI? +4@&*kJ2FdV1ޡyZ? Vl(h0- FYWE#x +)V0a TXg9Âm,#B,X +4i5Wqc2A~!Ƕoc eŌsi#d,A' q̪Q|x~P2M Gg[&g1bUH:Ѻ@J٩e]"q5=o[E|LZ@lGV'sG&Wm$B;9֩j`' +>v˔+ġvk5#Qzz +*6dcWߝtLeα"]md߬kq XUQF˙&rdTNDp=L,d9%hhҜUI kW.,[UCq0| CשA^)XZ@@`\jS*5]` 80b2 tx0*$h$ׯBk4elmC!8d C!^\Onr߲~Pzgp{XʼU^g,hX2T4Ɩkh|`f5 ͩ?hBh5ȏrB;Y~Wq5{[¥: &pӝɢ[A,CK\!-AB=j􅶲G]E:Yb6B6ȴpH &с>iQsnTz'+dJ!pd PQ" +eD`MCHZI Ȱݓr HC"oߌ52B)fNLc^Ym|dKg[ 3VT ]D*WV&2RPURCOYZX+OT.=:gzB,qyO-ڳ+ 4SDn10^:T/Yxw3:!-=/jA9ϟ_)QBa|c N BC;Xm.=\`fNVeJ]Vg)$C*s+jUo߸\"7u=Ndi?IuJ%GZD`q֭"UVW $O6=$kCS-مZxN'cSce[ڧxiBo Dc87袿dXdX7s?e~(poٓ~7 {<5x +*'X=?} i2箘hZx,)MΟ[><;`Sx[Dn:#xU˕-<2;d:ۥBRn0*/J7&E8*\BDp Twa]1 |nL.*NgeIkr +8yzH냯]훕Ϊ1_\|eyncKnߙg+nQ>~k>}Ъ)tes!8ܧ̩ӆu|)G<;NA0npˮW6o3rBr\aJfO#zґ +0|SA'nZ!(eMIbij!ߒ݀>N<~}/6{㭰CvC$ ;&Kƛ$;GKқ4=%j +/~~2>WɶG%Xh%^odCv}3_ /x^\9,~9/~:B}[޼%ѡcb=O/][Ɉ.n:CTdvaH`v4^!BKvT ҏZm܈O5޹!lw/xAw)Y @ډ|Ҝa#hZ<[@)!2tv%6Qm_cAp륙W,ݷXH5HE>Zz6WCG:\|G*iBWjhW ?֑wa5aTܓ7 C\:_ f[&ų1L:j@6k:mGL#N|e,4h?uF9j +vjUn@ "%y$"Qk-*^&kn%@|~ Yq"#aZxґ*[Zol]:pt,Խ#J*q"7J< E.5ĪC WBa{E5B_#~0d#NN)cbZoS%_ȝO-\oY+2'G)0'NOR rd]$j+B[v@%7lAU$z{+BƎTu@`fev5ZGS *(kmbGp-Lǒ|m-#'b|+&*nq:Knͺ]:h4Jnmp=v5@ ɍe0ȷD}MV (Z/#VnGrbgŐ rHtو\yPDi's:Z}[FVѸt 9HK0XV0Cʳ%A:ىE;g7;0Łpk -)Qbw-^]^@g +7PDU8E]B\U%Ȋa w ^^Xrk,RA4wDRB*7CF`gRo?4^w4g5[NW>j'Y/?KAϑ^:/+%!nYZ3Od#F]c$rzz#W'"dH1G?&A*zxE fU5=֧z\d9vqLثAep$ #cx~LNb6}y"{~xU[dcrٽfO^`1/IsNXdZ>u#:bi7LESA1F{h%̗3-PsJ_< %s_|~B(́ +d&b!fa<6jp` '9h PHwgn|fQ=đg1S#qZ0WdTXk1yBܣߚ1g$=)_ti|Sw@A=M3>lQ8~9d<.e?;%X-]U@tˑઠdP:!=S(=EЈ{YLK%M>h`و!K2I,Mn^;>R!gg:LNN-ۣM%R kXY{S6ETP_ FH@FJְ(# !iTW!WU;ryڤ(Sr~s7wY|\ڲ^2Z 1~Aqr@ݻ}ŢلcX 5&lV a*|s׻m)&"V?;|PEWw/k3%Ʌ]EIsLj8<%L T~3FF! D/b*. +*~=!nzPWk<Q0Wއdܧopܹ|!޾5z^xtx:QĦށUZpV0兇5n`}r8.k=Qkl*3L:>ߎ? +{&˄^Tܹˍ t_}GИuxitqD[x5"xy")y~y(+~w0l?4,GzO*/I-HKa³ˈO{sM{jbu+My=5uHocI}] {7bV+DGJZ}o.Q'rI6PjQVIA,ϗ^CVsbUl!͢X6K}C " г[7Ih\9Av +%* +rSyGlظ}Y:A%sYB&H1"(vt֮~> s/kDY$Aw[U6n/ƙωR(OzjKuԛt,coǏ|Ǥ5$ǠgL{tv=*Ff-3pvm;̛Z{Ր`GLUus*+Bk-nNͧmJWqzJ!W[nSM*SYBVeח20=]}ټ|SiQ:Ć"|"uQ@'3p#ECJ.;nd 'ڝ 0ms(}c&&õ'F91uwoeoixTVy#oq;%ѳIGքr #"O)}}rhڭgVNȼzϦScщYc?PsLa@q0l΅r|?Rsz Gf~ dv~OA[fuX*ߩE!ʸ}ڔ Ws.C6x8GzE)3*;H#rb,1Ezb3\8y-&m0u65S_>G{޿N-n^M{ԯ.xsa} Lm` BD] + MS(~s@DW<c mL4Řm,=jJ@@>@$'s!s;3gs?N5#(FZ7+_}NUЋjlesշRqD%b^`18W71,s:!\ޯ^7 Œwؤ,|a^]p;{}L]azlUhCp +qވz_bV̍FvLKA{fL`h.,h*qMٓd\ReQtna{x^z^EQD?AɅ.S ( HuF~Uʱ/JnwHU%Y#u#D2 cDw +t¥>\U"w1\#u/x}L.&\w-?߶o*s:N`Ėwc-pCtsL:=*NO*1:>W[ DrfprB"h}Q bwl!y}ExH֟f^N߲I뭍qnMkfOt9X ,'-Y[[e9wEW;ӏsC\*W]lg݄$caҪ@7g +ҙ^Ky`Q/"Ad\<bܐRF.3@6ΐ@G¡ݠ$qmi)< +41,O !mGN= nN~T +D8sRYsz&wIcb+VE(ڜtNfi<>\#ӆEQi_X^XG_p5W[m(AV>h>n3~9dJynn=vDS24p*W-nB^#)i֘V=4`lu2&\V~iXɝ]ŵ\?۲:n+ʩΉc&GZŢxjfXoL8T2?4FUQjuX S㹢%}U'lOg&Qf zeCc%<nJ+ō.KK3 ?hUt{CP P 3 WfD'UѿY|U15YGag%z4@ƈu@nLֈohAq# ?d +ߊ +[=,`a߫yϦxDvGQQw}JJr&/e]NJZ8+z"dvJ$%ŊK"TL*ᑂ 00D4 E4!"qKsoMV s*'">~dh\l%[2x)ݢQG܂*jd\N-&xRє$7*t { p'*GJM|OҖ/zϝh'w7O77↏+ .Eg BGsa~⋤fܒ_K+pvq;QmmUOO~ yMasNk"iЩ#AO1@ ׬_PݝW|FaOD|1d5i~4?Aϊ$%ik,P?cž3ؽĝg"{{úC&{L)BҬ=i@廏û)wul!w+Cncrl! ! Ǻ @ +;^ +5y=Y +mEoaTJʡ~_hpR) +Z!)Jjp֩k%́ *A/s.)r +$R% `Jʝ9 )zk )5&,3* u @\̈OvZxI hAs"Ć.|" +^HrirRS\%6%r0%-=:>bKK%ϩ$YTNSʔi7qW!VayAt0QD3[2P!6Ff0h!XgtI'A&+ZƸ׊Ȭ4%rb QZ*3c\iFw:XjȖH MSsiqcVϥD$ei3i4ĖR[4gPbΝE-jgQ ĹgxSDbȺƄX0xsX4( ̉`*%:h_.^vjgJ,W +f(:`wJ`%S#)gJkTFy]u*v"2(u֠VLJR Ck^r0I:Ck6UT)"%Ed`¡Dh0f$/hSA1S"Ң  L 0~5C"Ҍ\)=3N +{{H(QLPq&sr[LSӲ BV!%cWzM5Z5Dij <Ͱ)^S|mKtmKvmKx͆Ԇ .dZ `cL`BhsCas9Kͳj]y<1xWFld+$.Q0Q ;`0d8tb99)0TaL@#CW4k,,siA (ܡiill2:I=zhH_ecdHF/J a6Qr!/P%ʅʸ*Ց\cT %r&5j> j.eȖ* r!,׋],;(>G1Y)>^ٽ(H?n_arLڎK8w??3ԟQN:;4%Q=gVzguPHv&ꉌq)`,)E*ACF +i xګI_9cL1Ѥ4O W+F}vDjbLљҝ:;=?̈HΉHl'.یD{<'` {sqa!*/%̳=_ːfv}1f6´p]|/ WrRx%V6sκz/R\]ҁH-!ب)l6LE?fhz[Z^&|[+Z/v\+ 6_s}.aP`>[(#?sx^HK}ܨ\EPyǸ[:Tt{+]KG73f8x 1wKa ?C[|cTVLllQ['% +$5XSUQAJ? ˮ(f6Qs=rKv玣M||/ϊF-aK7[F iG6oNQjl=@pV|7bS܋/QҢ>Ƒ+F~ݡ>wӭ?y +tttć&ET$A .f 6a!}fU=9#9t ,Fr=4 1"0{7A)tfX\ʜI v]keP-lbIs;Ay(~2Q?: PgƆ^(yL zAUkllc\i2.M鑷džuD9mc6m$c|Gf`2dHDdTԤ3T@=<A5Ƚǿq9JW( tzR/\΃!~SR~R;O:~ѓ~i QX_8zK<H'WR&!3 +u|۱XQQ/B`?O, ŽʹIJ|׳6C#P" c [JЗ\w$Kْ iLgb*;gQo`OԍrIv_5K_ܗp [ j +#ܗ0|gNB {Ipv鈟LC?C?F}k /((ߒC?&F k}~4ndfvWQL'6zf6'V0Fia& o_?IEzqY _!_$^$_nӮv ( (oIo%_6%__P>H?Ad*E[K6bn\. (ݛ5*E;a;V;! /%0"Őrq"w\b ..9V㜳ٹ59v,#Ӏ\7l~bK fW8Nv"!T/3`=`VGv]o_-A ܙBӧ'Nn -#NN`NN&N#i&GΆwwϠ55^I^y6~6~"6yAkBi sC3E#CrWZ ^ i_~5-LKi|Lo'M&M{&MǤIQa}Kpn DW߆IZ'N'F''ffffY&,6i8pX9šrSo*4TΥWeGbfʸ"?KIyqT^&_g%_ ҺT-2"P,YQe^`=aw_$$3N]D_ {]T\D`~FxOÿzͷ#vQ$_>#<骉NLd̮"-6g݄xvےcXeW~\97Ro;".sg*QjzӽH + IY 'cltm~e3wCm4]QNv4X2Ůf ѡIm1:63a6m}Չ |(ZjEvf1&w aw`k"{YjC),Ro2 UiӀ'eˤ66o%b~G:Pʬ^O|G{"!t:cΟ9Io10+Lz D;gSb}`GM}אSbs +)[m==׈!NJFă4NT3PhG9&w%w丙oyXU*q̼̍&Y+>Pċd=AxxB\,.7IjZB([u ;y`wyuȺ٫V3[2y'>u sF鋼i2DCHmiͥ:l auh˛.@W>08dcʈ<ۏLlÝrFhT受'1ۉd%.C_#yoyx.]k3+K{j>Ԟ)ymv+OGyFe?8ET5fTɢy^ŕ + +핥բFWԠ@\^E-tHģ[yq( +5n+>nhSh`/5c#?l$l~z`SavH  t.Z4&mjt!nt#S<'Q9TؾEkgGG,:0oh*HBWx%,xwOe]vXSg?9/T/(]^g7MՕZ!zN'B3? ʟB%G `3y؜$(CmzaoT/x+CīiOF5f|qBxOH *D.#AB$K_:E/S_HX!AzzK8 z#*fA@qo}{G!һXh#uqe)GG0uW25,38A,>R /K>&{1oVG46r"NZE#Tua}{j{[)gXp﹌);&TUߥH$h@@@@td`ogjlh`cEIY3㡲ܢgb>CJ@ +Y;t ք1sȄ`\ZF%dB*bujE\tުNkrz'eߧCnӪw]˪uˏsEo7c"lyuCMbx[]/?8|l38iHAK|asp[$o⢠H+K\WO;ٓﺷd9iR/Y%\Y;qɞEpsMݤ%'u6OMf> +[[ɕ&"*?Ux-=)i2dtYYVp0t.*oñ&= T4p\ +VexuZ˰-|\ +v,Zև{{Rimj?DfaXeI-PS%-tY2y5K6)Cv84Uئ1zҺEBzZRC_*FdYZI%:5%NV.Bvyrmc[Q{;=̞K +6XcK"C,T[;c?}Βdj27{&S­߳) ' N>K2j㜥D{} <-563"vsn֧fAVܘV6u{Jܮv!o{eYݸFx|je͝/TkםE62eߒ._ҹmsZ2e<9m]9]+~/(W8G[NR]oX"%>Uf蔙[>2q=cc5(+ Ç@ǫ|ݰkYV99ea<T>0ύ -LpoDqE:𵢱#Km:{C +%yac_w"*%x.}*tI A6k̇Ȏ\r6~e1{Mk"r) +s瓯2tʶY҇#sQ'4qַ sピԖFPÄ֩ղl-5b[Ʀ+_/ٸ!ŜCaj,\G~9 gD^0ͱ),hOI__>mQLR4x!-iJ#'F%ohn2 2 ɢ%@Ox@ + J/o'(E>gQ$7+ "%,0d̬m9p E +I!8rD"h*Zj, z\*Dq!JL⠼/lVZ"e87?X".;Z')=ޡ8vRv#%o7]Wvqq}eSw+/B(*iW-Wں8l֖,_: _l` ,l>gƍ8QÔ#_0 ywZ +5v5N֎aje׍-X pNyVi<XDZT$ FP'|5[!IPP?jʆ+XXM_P+PW +? F?Z du!h%eb.Q:7l +T:74l&J(<|JuUUլ[J;, GL栵%HNe I!՗7B m4ןA,d(Zfq(YU`#$-Z#\DH]"xagHUaܒ*-M|H]ug y[Boc"S @!XؐTIH `VW6<*eIzK)h Nr2eb&tŜR3x!Cj2[JB*K*iXR2ȚSj.A׻H  Һx5tC +D$Ҳ4RQ]R +SW +KrdMQ1y .X%tjͻ(i/N7hX'H",_ӇnIdϲ%35 JkҨ$MS+i(PgźNxV4SR9ɚ RnX6KV/4}#{/!A o# w<UړW9#h<'^[/aC/ Oi'YSnD + 3WICӅ;G:hx;vMiT(Uȱ-޹ YhB"'N1 1YL Q-*'Q J{ +*\JQ=~cB. T ӌYs[Jjf:x4tr:^|*j>o?u +}|O&1)'Vl@HEAX:hT F@3@OY2j?|UrUH&*rmTg:m6MV8-Ha͔F5ܽ jEՀa WjLb?,FW3>qN}n' +A(WW&?"ދz1ۏjv JEn2_E^2'dZ&NpG t(ž8c#:1&E 鑋9HŞ {q~^1pfף}z9QH{denD$rF#?YS?|sߣ-F%ɣ"2H"g ŢI"r"5|]r@?h#::dHFU:?J-ElPe-ߚD{FZөEGbEj(fzVC0QgO_:0'~ y_R1SDW/ɿ1OAA +OOjzؙ2Ah (d,\O/XKl*<l͂kվlxG|љ 9@ƕǔ VK< Еdqkѭۢ~1w(Q=W`6 ]|L;Wft5UCtB@wppxv(ϵ;|T9ϙN:kmb ?3#얞$DB7jb .$V}lYhlijˤWX[%[d[&_"BMnH=ol|kr[4fl-1[<=ʌl'-= +39+r-n`ź٭\}O[N{ZեEևR~ "en} -Fnվ#-F\[JzcG[Er29źSկcD\{h4e>C3%޼<< Z + <R TC SPEGR|z&kHl<g;ǒ;H6p%ؠu!'Rks +FB;;S9q8 4FҸ5UN5"(rb[?>Y$資O V.וnK~.qRd-ƶH6ݼ}g+ʓ\_/M6\P=peyQfGuu[8n0,ŚrPtO0;5ܮx;~ݐ- ?񾔔 ҆sWw9?Tnt$6};A)Afvb *珮 +ܯzOH/#h<`-__q˯Kjn̟O~܍×KaShBU wbޭW޳Ry׻MoTS={:`ڿa* zך]Id4Eq%GF9.>"|K{/p-)WW%o_0m.ekkQ& /hidbigb-Q\]S@NȠyd @G/ݚwmh?.(3O,cHr>89}WGyp44hIlkTA7Pˏf')u) +<>k )7zmKˉRym&Ym3UIzVEeG ̒B(]:VA>R@`G2ЛK5Hi)ncF8$ݐSA|3%i}fWJu88̇F E P17 SއX$B!4u*Wܽ`e76ŋej$.gkhW6nVGR!lotj㼑5󛃖({_}7l쐡o;w{| 5^δ q\~L^:$&Eu>R{et t/z +6x[1\Z ,3E4_Zŷ:|KzM0rfvڑ@W]:ҫ4b[Q}w`4dTk<-IͧMyH=הvj0oQ,Rǫzu +wjX#a%Co @#,Jt= SﲽZlU6']֨\3Ƙـ=@lSb8_3aXbI>u%2VU/*rv(A,iIUj1[z3IT Qc TܳbխՒSv"@|u#KeN;0pu +7O2G{\\7EkÀwj9yupݨK%◤uI9@8A wB#@y IJ:{k{8;샓RL; A~XG5D dF43 BO`ly9͋J(4f~;ⰮE%oZGQG>q3%Za!gQ\ O"\5f]%;GwWP> _cLsǃ +8:s\)9yE$S=RҊƥ%R'L@:F4{cQRD}u8@ (Cl +~&0(LJvW w:3s:'#pW. hxc;skJ%L c6cKNsCXlVu2+2!_ Y|B5~W2]O[t^/k2¥8oȊ:XA{;."5 /::.?;j[_4ýE($] f}^gcs)0,+J$Jnrklg۬{N{߷{:Gy;7#](w-c~y=n~Its9$EID E?vgqc 9ޤ&P-k5R 82xB۽b"{|fm[̬FMy%Z\jۣ{F`^3۟@A]iݕI(lkNNr/%_Ț;L0e ЙΦJuhhrbzPC;yIAw̰cfIK8hڶQ:cmCƓ4*`m=UM"~i;]aê*S:79 AjSy! *`yx"oQJM͙ƞ76t1@7]=:p5=ҦJu1DX'h*Fk!?j +%Q X1Я7 =@qc3L$vvy9jA[y#5vTq(0̱yƪ*#<.r H2m]EðqKÃp2&ϴllLNki nHX ?-Zlע^k/VSNnB;2VhC&O@H&tOb] n=cFC<—3Nld#)x5ZG[ҮԮObȂ+ozomo˂1drCQ3 +,iO +A"<֊\Zl"qc`Zy+mb i&Xc.14riw8k@aOpQtsTUeN1_s:;s+f#j +!㤻1}.&[O K%I% UB={EpŴB'fgRIoq7]bej&Gݢ^ŐEȧ4՜ >^_x={i* +`m*jyaAZOn`j$B9o~>2QBGe |p;$w8+({< |YUXꗧn2W6Ozsg=רyw)&7HVNSo؈o]mMo[zWd¾=Cp =4qv(<'"b-_nۏ'>0&}]BG;}Ẋ'j{yt|r;/cg<+3 "b%ճ套UNdd`>͢^_.hit)h + &vKh-bGYS A}(wY/H)3w@/33>93/ b2=X^P/ tV0BT#APc2qyL/BBó03uV:A47HX2jkA;Ix1J6SS;&ϣf0d 55v4Wl9Qli]mUδi:YT5VyEE)CEv9!S7y![5mz.[dO3Q2Cu^;/ebstgE-|EH]q +LaO]3.f6iu,])Q:TX%DAfJxPITJp-Q*H[TGi.h#,+# Zp癁]*"'A)xuT_K!Se1Bc4]0dytJ]eq\"F;,"w/k e3X_Tm$c&t$~j!O->Qa yCa$_@ +.Om%=!v!@3i]J{.)ӹ#-SSGNM`ϵYρ-hk#/`θr2Z;Q9sɔ!CH01D AH0 KT@X괪]U2nЅ~󺾵}mS^Y~w>!Ds<͹yV(gc77c?/yEUO^^,zJ:]43UG ѺSľ'5V(16}o}[ftzIoj`c 3acXJFuJM T#99TWN *Ja*M"”j\\QbpU\5UZO59˼&=.v#lqUA.fUۮɏ$TUժŧS?m?jP-*<]fZYmemmLPGh*p=kqvQ66Q88] kG3Kx̂*m}yAڪUK{Ioo#2"#&b!Ml+$PT7HGNyȸq5;&:yiK{uAS@ʻ2i h] 5n A(s󼥕VZ8$;>eݢ'#iW%`S6njq*e:gTfL;T/;`ݎ\]b%{̠ +s[kK',0:KT䙱iB#G}uQ) /DvI+t>̪, \ EzSl{ +ml${tYՆm4vI_OXItJexoa Y変-P,deU,j]Y +Su +uq[BV1ٴ ;25B,2+{əN6w"!ꆕm jiS ZdF(j.L%iW(t) 4S>Rz͟:+kg_P*RH8ע!4n - +!(5H+ڢwP*0WE3l]uLHE iЁ:FAxn-"3t䟮7m\V-PudJfN;qW3{]$854Ƥ6c9odFvzw(z1)%wa(x_{{bz{/3k(W*U 1E pCT4?5{`H0)چ3Ly6xx:'1T䎋1G8SϩxC7y{|'\mw$tjVa*<o͠2ixO&zǭs[WV0xYWzY`1# + "CKD?yEqGl8qrrG/m|(`$k^VB|qM4n& 6} +4DA! $ӼtP8u(Rm2TR, yƥm(?^GuϸbD}t/r35XUXdc Fh|#P?dĽ1SCSSF^*-t6LadZѬ 5؁9(:["d}8uƩأ`ϗB:Rx7Pi]+ H$R$O]X5|ʕL&^WsW< x"y1Ip.qv/TFI,nˢߖZ#D迏>jQ~qtY{R.!AH:e3>0ճLX?a(r$PpZx/_RU:VZVW *bZJmUZC:$|aɇYisPҏSE@X -n7n;S=VEw# +*8v$?TFп/JrHI7rE22(oq+ԍiB^aɨn_JTPѸWrLsDM|uG`nzu;^u_Xɯ3~r0^ޕ+wWXӿv{ +y<[z>h\,[3lz5"_Q^r)++՛WK^r/Y߹[1x"1${z.Uq1j :IRo^)I|YvɽsfvH,}qW=s4Knp֧]˺V'atˬqE+d;0@06?S4jo6d;3P $:&$Êfܦ9Ƥ98U!8!TKֹ-Q1*dKiDcikҨ+Vtld]evk(jv(@ے׺kb^zx͛,Ik]$cnWAzn/DU\JzN1M.L:/g)4#]ҸOE "QC]=9*5S⵵W]sSɕ:~!7ؑ;<ҁ9aq3tLXÈ7uxv v|1vw =Aw1!d{̱8G7u#.Q#k/~q]-J餛q,hū,h訹+& Un!" QtRWYU*%r3^Ks9=B*MZiOIY,j v,P* yLW:O=봞q9:"lc:v(ۆmO ~Q|\wLo;CZ_;dU׽~g!09G%եn$)uWrf/PjiRHF`4X}H-WkKC,3ow74/[~%l͛`&t (c_ 8Gy&c'4B%øabF%irJMH}{7lͿ\J[Ch[[&!EۦefXPvd|;P^%[$G>uriFܠSZqr$6+痢fj]계&4ڔۻ'&2j %kR;6` Dkn =)c5G~C?d):$WS)Ҫ{939m.G)w3~\Ȁ?rx>ωUG: +f%%ИQ3 +f Z3͌cqY\H]sYk|^(kMDw8̎wR9pWf}arQեBZ1w##tFi-.N jYhƇ~g۔udՆz(ijv"):8jY e;b~x۳܎ş;c3 =߳yCa| eTRۘ1W1c6Rĩ +`#8opL^Ex|/E=TM"߉fqͤ"Kڝ@zkp q"D9A4$_+Y rN&O.T`^| _'PzAzj=zfG&5 +)(er!Fp]:kE2Zv]'|\DBq]ˉ@U)`ij( S,T jsX!b [S`\v\.:[3C0BmxݺɐM1\:T:wdkf=0`ϳ$s8b/ΐ%-t>dHce s4d9Ztu gVkB:Gh֌vU[*sI +珷|K^yӐ\֚>ݡ34}BZ'B^ϡ\ %7MЧn0Ӵ2nߦrYK&-;2E[McPRy6q*ZcPAh=;yvBR YklXWmfq E +7W8$:W݅F{8:O:@F;'l6 pf}r9NG)T"}DpiF69v?׀C,kD'o)+f0|'2߫ԬXlqh@ 골*K#+isPTTTP(|% *QA( e 31VX#t<7yS.:y|_PG ݋bqEy rD {e,4BR*4b-'9L옧P~ 4xLDФ|CL]gnyJ $f)v1(z[!p> W֨Miܧy7봍Vtx|LzV+5at).SJ9>4k N'8Xx¢_kep˙AcX!ۜ(K~k4R9b}1QmN^k Bc}1eN3> UO uʳƁ W 7L`r[Zc[ۧHZ5gufm/1bVV710|"MڈRxsI,5rJU={xemtI|Wdkrcdԇ~#.}-L,@nf)#8W PBP )҇d J[ '@҇ ujb" Ԟ +^t[9ADNb%b\A7ǹC?~Npꢥ@=p{KW`C;:G7e+rEI#IBnUdp@BX;QKĉݳudus`V0{Nߨ?V HU?;3a"iT!2B 4Yl@t&ds2Zh+%T5J,1mZZ]w;_=$E}O2|q@P vbDf:$ MTjj.K]MUfyn# >uHw7_T fy/`xwxKfQI~ч0KIq2YgqM㼙 +>ɀ>;[p|ŕ?;hK_tXIw:|V_|?+rX,ֱjVƵE[<rJTZc [+"L}~rLB>3/i%&6P0sDfgUń̊{khz NË"K @4l%FuXDJE>31iAy +5Y$XK&s{6R^nqY3O4&"i ?m軓iD:h98ЪtZY2{ޖ6S&Z[!ƶb9_HKtSOAo] i0E1cbOxE[RRnEk\C´|WP6/A%2>ןŘ·'Y“;6%3&[!gNiecBZ4DccK+%n c۬Zm2T@#s>Sѫ' Ra=`QAgo€^"R1y}xv ǵKe\ȈȎ7ll%-Jcd^`%%qwwP`g]c>E9+Y{G53KsTY OsŁ~14pjp'ЌCq*Z.Z!6oFij#W[,E: d=:X_~2ѕVc-R141oe_8qq;y{'] s[$`J"s_->'ubK{=T<&E5yU??O~'=Ҍ`K+SLN,Sp4V_BKKp &!0̟8Jܽ^1GoCSͬW/֦PWHK sި,xw,.xq,_o*>0Ne{Y5T#AROzmM X\3:sj3XO)mqlme.#5>,"/sWTٳ"A'j~t1Af6y!r4飜a4mix]1"u5nim11y$$ϒԫ3- W,m찬J2%PHVz.r#N{j_^f192OLyxW2q%R%NL[)*1K#l6TvZ_ ZE(;I> [Z? iΒJN;Iuý(QZ6#TK +z>(C 'vr ĄPlt*,dcyC!}4K_MV\ݔt +6ͽh\+mzM9gDsd*mBsեOv38@ޥ 3 + |$؁,cb1+V's ^\3CpA?^1ӛT$$ֹ# +k2{d7'z/_F?ȦdeG ].VjQݰ6VCZLY‘+ܣi>FsQjN.PjmRڤ(u(VX6\{oхܐ//S:K1j_v 6,bF-D'^)PŠwx)6H7RΫ7Ч]_"3|Gp68*,mJfIn媖w$\K엀jᑕ;Im*ȹbQ:5bXSx4\_;1BG*;, =L;YwLaͭv{HGX9 *J8n<LÖDd/&:x^_ eq8O w!S8&Q16ˊ e/2Ld*فjg I(}|nrjıojMNM:T#}C 4e P!<8b@eY$ />gy`DaDDTܘ#[$crboJCM A15S2QM'ہ)l)P :i76& ;!tzaMG\g0xjt;pVc.+;$'@:U|t5Xh8 YtM0a1 + ca0Sx"]/j9 EFhWR<ը qF ]KItZ[Vi/sj2Іot7C৅QGn x84kV*i p] ,X^U{AMB5DUrޓn8eسJ 6U5HqFhkƵ"ԯX鑛͝QN-@w|3W**.}VUX7'u5^ȏ+*v6dNjYQq@]g%&S0ZtfJNt *}ͨő JD.EVTymxeQ7[(s>v[jpjjGIck7w8_U6vJKx`86'yԶi]qDCΝܘ_E%k*d)R#艄+uOjrBJR: ;Ze]=l˭vڜKfu|1@/A/#N א_Q QG&:G;{rxo*>g`G)NV3níIE8N2}߸Ԗuk[6pcqk&MpU{3{ +k.T|Eɱ^f$#!HX YF]4<@! 8R}w9sBCJo7bȊek>-wAe|_lJ-ʣh=Q*e}[w2Mt?+D ExhUW1-%c,i6-Xz mFď/`fѱlXNg6me8[IA{:9:NfZZƧx;|U9g ̚0Wk}h4BSɨjT5n[SZ@`͝PK̽-"}q Yp=;9VW8 gRo2..6]1QsrfR滜%8*YGe-aY^H- +6n!Zn̮rG*\Fng7zIrү]`i<6bC0 +Wń>mݥ6ƥ.bLjmFTqO<|i x@Ԭ*4E>y)eee=V74YP[.Ś6~yPbgofymAlTg6֝Jwlxnc2 _Ejg1gwXsޕdj(Z__^gWnZE3{ +H'YXo&6vMf/"؂%m^[]c5:Jԅ:F>e7:`'c.L NAÀqL&'|8| 0Jd]hSPkz1sq-:Ҍ=35ǂ_ꡤ1IP`ZPxͼ%*Yw~NqZ"izٞYΓ\vC\喴i1>IL=[,=n8GwTR=P.@RHוDWQqhXEPTQQ?EFKb5VQ8Ъ@)A[BrAI!_T`Kw6uM ٪k*RbBHq+a{/ XV4y!4U@o_ވ" `+C~1["%vB%mPEL+UrZwVU&{b]5&,wĚ%_:*eao gd + ǘrFx} Ʊ-vpO61Z)wˮ@A'nMObpN|ӥ/W. x}G\gG587(?d4 +yF`^K.\L(*~iҞxgj^A%V^n $G$ Z9hvUP. ђi Q|?R5iuZUC}ujp+ꞎf]uRpsk[*1c2-PMAf k}I 艹q0:JZNmn Y{h!˜s(&{xTNgJL+X/kE_كJ]I=RtWG.Bil3$£B͒ +ß;Lİ5nI}SS͑wJ '6XߑwB^/dK>'Sd|2vN\7o9^|i&ꭠy#0 ~8#UU%%0 +}>ܨ]-}4's@7pSRWWԥS8Vh:Hni1_"Ի63D݁ڬ3N☺T[[-@N/dO3ehfq^ur'UzELDm=S^cNOq:R u!,}gm8lB'%bؑk2Hz׵MvCxK>ypCp$2Ǟ'蒼+W`ᗔ@k(g*=ƩxT"zS>T'B$IOh=S<ɉsY=C *TWE@r.܍YٹYj8CN'يD]nvke?`ջSE+z(9yؒjn[8\zQjN`ڞV_(mc]/A]VzWZ ̼/ T~Z@DYh@Xc@p 6e8o H6 m 0wg z9t9 S?W[CdV[Fi/-͍fi̖A`+_dfvf'B1y1٢(N8MywnMuL5$I/9%H'm6HCwK~ ,{W?AGqK?_/sIt(3U m } OR`c6}z "ޢtC='D_?qD1g" (D+ƣ#2("4Thzp#) ͢3J|92 rM u#Yۮ˖ ODv rGI!M@^sC%DXq„;% pcf)c5:]EYrQS"S7\/ +nfǾŬG-vX eI߻ cɬ.}>L%N.ԙ?.]{j +*Sq\3”3/N4P`AmRUۀ͜kN6xGhIGo}$nGp!xܟΏݣYqG{!#3h͢#8oPѣ|/G;:dqPG$C=~~zH(~+=ԼFOΩ4gHrZ_pqѰ,#rqi#Ui%BT2 ܭ-9vu΅ql떃Oҵa9~^S%q eH@Дā'ב({gSv'P (!m.IFc=|wd]?bӠW9i+unVĞG_"ғ^*+Wa^ +*5x^>~%$6zD#BAHogoؼ>%ƙ{TmU[(4ƗuճZ%zKINB]p>gN{<݇aQ7TjFĚp}NTmY, +a%%/l:G[4O4_ixր64sK' $mzSj_oJ屼J +ai~5[ѿ/]! ҆iVK b+7ŗU?,Sæ0|I_eMiMmN]Eo:+4$ [тъjuC噬'2]iym |w~Gv_DBfsܫZj 'M]96E +.:.y@y-_yhzWL&_E$xFN {w![w0T$+((L"Ԭ*#O|ë'tm9vu UNIpS3cFa6w Ёoү +z_ -0V+(>Jt+]|"TC_0L8,pЬ+`Lb_tBmё6%Y_}BȓO/_nkOu}"Y_fß&{0@#Th{X)}ɣ8esՙ>%K=|"ڣp'mLuODB7wG qC|KG>5QMq|rcC#/#Gt'[9-ܣg;D(w_~.2\0&*_:sYѧ>z &͞䗩|=Zz=d|s )g)[ 6ON \O+G'>橯pQdu-L1QhQ* |l=+^n *5-,N\^`3wMSy6 P(pP4ZP^#)"Bی?#@WX|@Nr< +B mxR6ŧՕv9ptMȓah[LZbTN43mY@H*`/fpK vw nU~* Y%NE:d+N.sP2 HEi4WUb-BOzRD}yWe,Wm/vO˵k8wUEhx5~:L2P1P0,_ RĤć/2- 7'V΂P؎)ɕ)^KRa@no 75uq4/G5 =T]旳=塅a$4`C@mlB@,"a0gcĉX܌+s7̃97FĀ0-Je,ts4Jd| K0#,By^/,#|6>(^1 G?8Я:`.J"r_S(<’|:Xq&]*ZMc?Zesɂ8<&34P4!ǧz {<1z3}!!?'C`)c'dԅ~[a +|Gta~jo|Ʌ Ī|Er[#Yg{]Ď,1 r}\ېPNߊU!&$g!d}$w1.aPQ}TQgNi2&V Q}J,y@PKKݰM[ssE8kmH&n>KBݚDM"k˳6oDmכ&PmO.i=&ukIF4G{]n?Y$%,e(6O6rˌR[6Ĕ*]ًQ?#RC"TLwZO%x{~DԁG!nL6μ߮z,@Ɩ5o۞Yakrd-Q^<)m$r@"Vߥkh~Ԍ :o$"Xd؅u/"0 q8q< Z}<朑?Z +,|crG~k0$tV2;+5' +l%YI6)Ǔ{ 52^ۜx~6U +m*/:I*)jlXI2La{8OqOP@wHczJS=?NFLMoʸ9Mߪ>Ω'̀Y9$l73GaԀ_ު}179\ޘl`M$E4i#sv4!_ +3RXb&"Uh>g'ըr^HH~8jlb(Jd\)jzBH3)XTfϳھ$\6=e'0L+sME9v6 VmP/+m!ie9~`Yp!qV[ VEcU +ƪE+\'g}X[5UTmE%~M۪"6MӥVG\7-}`ؑg=u +e0vl~g;}~p7wzwwu{c^w닛 ;29sz:>FSeNJEJn?^7+_2r~8C~6r9oWd*Wڮ1722HyG$Ōzeꌼ_CO}C*])KSAY<LΒ^4|cϦIeַ !w==ĬRs5΅uԽ$ <0[3L9r8P8h|'Ђg M% 'F:XFbW$?EnTU9|0ӹ;jwnoCCz +nys4F3-5*,E'3Jj>,]0*Lnf@GݱGm*Sstyʎ7|;&k+.1 +NA<|ׯp.dlSةJEE { uN\' 9f+1тjn?\}Xqe%dhGǟS'H '6m +Vu,GY-4:5io'CTfsPz 7l7h3PC&aH0~/4\+0o֞uH4G + P;~}|H|WBo[;q#Д〛[/@_jKt/'j_&1 5Xp@Y ڏ6gH?z$ybHJ80sjQ +#̘Z(ċ}}.~hGTځ_jjԹ~'_T-tX ^ Ƚ!}/V4YrjFHDh:%H`|+=!cLv[yx&鼳TQ+5)m:a1!@Y8E vESsD 0i*/M . Э +G+e7iMf0ꥎ&U+'Wr.)1*8AZV9FΒo+G?098=e|lٔ.`ޔ!9]͎Vo-d?M@v#,gܜᨏn@wFNֽ3{Բ}&*|S([<혙f v 1'-4 1j<)rY, +-e?RA;֒WߒOX܀wPVIC:'j sm7BM {Z8fdٵcDUh QK.:亂LEͻ4/!zc|4X9 &ig8@x'PN6Tm"kFJOcjb+WJ>Y#M8+;\Mm/cS=-C p?doV7z6BiolQJވwonGo v-[ +uAaZ_ոCcPSVyɅ15Ksbu|ŹW3GqۜxG^P5Fgދ4G;3jdH{N?6nC벝o ܺax<'wJ||27;:;A|vJ|>zg_?C{ =/ ,,l>*̜oѓH;D&  +黡w;E*kѭW۴l{* [TךFl{kKٙ=c=Ͼ}e۟XQ (E$C!fH1]#0 # H1D u#9 &f J3V`-\%1[J\1SāÂ&f8۷'^,uo0-W䙚RH2U1-go)ư'0$N:_`i,X]%OH?{CK>~e Lo[Z ŏ(M{.@YYրsա Ѐɹc>yӑ81ۏS<ߌIQ.0gx5DՄ R`]jǃ.vqioI',VBP\ T~O DU2 oD Q21tC],w= D!C!3ڗ'"&ZȌF`y HOZ +tf$cg:ipYcd-'il@(TEQp.KBĎE4U~{1DqEmrfx1&8R ^<ׁ +"^!J7w\ž2&:r 5;bzF3E7s d{MBpMs'8SA( s*Ie3L~'籲_'tM^ilt683<bFDw_5a!!>S㊖s{M62C:H2dJT3X9{a , HKig"/&6|^0|$v8 (y@ezDɥfe{.~Jb +So +=%_#;OM]zx@h.=Tؗ\M)-0`my2g_3Q2EV{(F%\4 s#9D;&1`7ET藣"h^7\5 [HvoΓ܏N:ŻNl?Uhk&7^;9+rddJ|8Z`Xˋƌ4țҰ03&ZͰS̡-gS+K0`%8e'Ƣ:6Y(mOdSi>:tt1X ujΕDSt~W(maK#>fep1V:$^!G⧶K+AKlؓh 3ÁR>ݲ-0q[G(Lv929h}zwS]x%v8[d&pnaArɬOYk$j f[TGQṦBhR=uVfbtyW48n݀'dl"@ +sHb&1z̺!%\?‘5Gđ}s-ǫ'@ȫ'ۡ#p@#;#P<}h}H qG! ~HG-~@v~ +ԋUo`fjo#?$o@{'lVHdtzfH``V|fzJ[M%9eV&DH 7 +BG1o~$;̮ʁB@2ġ,1ِ>,^غ4KBN]0в0Sa݊a*@G@{c8i'8.z,6W٨D^ IͱPt[Kb?X&k:;RY=4<-G=^,לҐz&9'lKZJ3TeG .:GjVastX! +[vչVdhٔY9{:P% r>_CY5#ƍ`PNE4U()EiA bU$vP"kIHvm:bϠ`z3۬kSUܰG6 W[5Fg^;! +"^fL(DzN}#m'F%9 ^j0{ P#HkZ_#|u!2 +a a:OtC>plj%$B9WPaDើ+0iL_>KB?U \Cuh #KUL&eFT0[t,$Gi{A3dLB +9dIY\ZQr?`Irr3sQ,<lDm+T=^/O9vsr I$|IԕCl lrDHPB3:*3ja!rzlW9IJ&Ҕ r'Q\}ZHV(?ٽsa֕O>eX9j3Բg(?(?TFDrtX^3ȿS*:'Ϊ>y,8iWHb`R|.&fip4vHZtZvD xtb_kF֟v[ja7S7ˡ[voM?sGB}ӷz`$}ҙz>×RT-+xA8/*9*]L%Sahꦉ 1eSڪ~܆ZVK-k׃=|S.wֵ}|`o =cn|"my⧇9!ݴ7?Ot/4;ۏ\H[Ė]+ˬJNO~c3DoywiҷS sals,Bn"&JddL/ksÍ )dǪ79e&ä=2"to,gLC2sNܛb=m]~Ys]O7 ?K%%nOr/!>7$(^;x)RӗnlN +}K7ށҬW ЮCk߬9fLn5郼0<`, SqH>shXJ!E꧋ pgCv8߈ DFR~8P<'/Tv;Y]8(QI5Y1feReڮ+bU<5Vȱ_O̔-lLIR&㠌f*Y ܵ@ ;v(ծ]I+HYܯ}pdoտTmz[u佪cNgC +~riͪMkTʷzm$6rnwG.Kx58ӛcTCFлmF9kt& JX:؛;OPYjƔY)6'A)("b*! @I'bgKUeE":}Wr:}aO?sJ8NsyN9oKv#lܧa@u'L+ՙ(Y2M`*Dcq\,+-cs(i -u)34^|F5NB-d HȰvk Zĩ0(%(Q@)^NӜstǢ[-ŏ.ZId=$XŽS 蹴q Ì?I[ĩZ-:N[dؖjpȥ[A<a:qϟRI,Yybwaضm۶m۶m۶m۶m=>{w*3ՓFtg&c/=rȓuN}mg`MCBqXL=6c}sԭKދp> e^/a}ܴ?Wⱏnٽa6z[,u }>5uuZ7j"N0_M]}'_m#2’<* 6 bֲ- &،HdhQp[u96S7CbjXg#ף= ҶNq--#ju'reC,] }}6$^Jr5ԹƖJQ5xX.f5~ !_k:5 + P&έk2FYj6UFA2#G%J."[!vd#8U Q\aqA=zt-|]jy ] lG6 +rmNiQ~Y.B͘3F#b6!h731WKl -֋"ZPMb? +@Sl#`1m+3|" P{Z ^FSUv82,+k޹D  g]cڬ6T"@4Nl7yoH5u` jQ8Rm +x`:%%KI[| ^:ڠ!A:[Xc^?^v` Z[])IߌTہɗ yWFðZD2z-趆ƶZS1:1(Y݈zwhSZQ?~3YiUH#M쪤fK4Bד]x398rR#TesA +`qxJHݼY ٻcc 6?"EaSt)PDzlNU[־Z>8GИ.ʶҺ5D'X)S4v+J'lb1t(*{4439zY, r}d*]5|cm2gZe[&qwA{ vF=u@V]Xccho=g2_gQh'ZbUYY[gvd +r=Pz \X4+rk*VW1hU .0%a3gu'td#im;WsmR? Fu+#V fc7ޛӣ4F1_**ʌӷ%d [WVjE TQ2ݨˏߺ7SfsOHC 0luM8wB>vW+\Q%c곎i:X4jHztx#p:稤6:54tk v ]dR uQ| +9JoZsZsr:ζI14]X5xkv'ūj4iKcmQK0STwTjS95Byh&פɜ"yl.G^8~ƁAסKPtWԱ5#cҡxE]nrc]U +Z.l%ҒYA$%ArdIDQ'D[ .\Im,bY!L(Ye޴.?4 ~\K^]|'~qŐOF E~$ T{'A~'h'{m''󠗼7ȓDIex4Y=+d ~_A/m?qCG }e`{'˰! ʿ4܉?Iu пLE)ֿLeWZ8㬃]r%Jl[gR|y& + 5|1N,pi!ϚwI6~Fqi*k(Pv@eZCa؏dFF^ o5[{Vun.a'J\Df7feQ20iCKodpwk⣍kY$bjtM wep-3?sߜt\kQMڿԽkp4wkZ8Ō;5s`FӤ/ڰԥͥBcw' o@*p#u9QZ\>.#ˮ!qvbSB]rbSƗޖ)DnjiEAm Ts[" )My5Q>U"~-# +M5GݘwܐF#7G7aX~)4D.iub/ZBpYbw?e~S{&kŒnw&¨B7UJln8tBscnf!M5#nV~kTؼMYYtrM,2dr}3iǥMV(呪ܦA[nWSTglXؑSML#t5:p3D MP )eɒlI\ +f++lɖ+e+P xnF9XHʴ%hW~R㯀$Ύc_x;]?hi(^.%ģ yp3%'62`a ̉wXU‹҉Er+-*,gsW8JqxES +ɧ7evie{p4yh>7<ՊD긯Fu]WfK_k@c-t/ +7 Q!wρ@ +1lJ*UO8h[N99qK6:<ȥ/ J?sc2Sb!NJ',ii.,_mQ, Q$U ~[^}y"j,5T+ޱRn<_\Gy +*w 9sd^۲I=A/{,>u|9eYMHtի;ݨ+A{D>4gA$RlA3yM @S#CjT^OF?3Gy'e+zZ햭.H%tbGjnDǛ 2C4}אFcwIFPĞaRG:=4Z2TW$ɝ!I} Нr^_Uu{GÁ׹]^NoFX"8g0UABk%OR1SV'M~|JnyY\B y|lDDє:2_I>8,BB3z@-+t$G:ٲՉOLG:uERS}>5±4XOL>U~N‰5^4rj3)jND̔^O3^Av +'¸P|pTMJ`?nD0EC7 4"% I,DiH2b%cӁOEl(b?El%LE" pY*IVC$D +f'(Ed@( %AGU͉K ffݖq`D {Of腉eg+{"M;jIy%tfZAҮH:v-[!yT-?M(]X0NmˏS,xT"Y<"StWZ7ak[֩R]Avy@yeP1 [Z$|D.Ju昼IB)pJh}!ILEr!| E n*]”N]@\g ŒG̯! ID\U4Wb|"6/lF7m85-uH7w5RٷB7e5W?#hF #ae_6 #ĈoTo`odoholotoxo|om___on_0)h]Inz+h?{}̧ݼ!&/no}"b#xCi!Y Oy CL o~^ #h."ؽ@͝UJĆUrc.FVUV%W(ʖZEURStVjl-'WC8_ +/|^Z_#k0x=5-^ux=0^x_+7aX<5zo\zEֿM3@=2`}f5ɀ5܁++CG.G.G.G.(@}h:*-Pp/鋷-H,?d_I?xC?l<,p(6G!~z-WOUti!<\6_D.^/rvC+ΆM-HX996:vu`-5A5FFF̆xJ}AU Ux%§F6o@u2 SC+Uֽ5M5 ?{Cym~6Α6 k=֝e NONh ˓9=Ԛ"Pcbnd4]RcfATr6>&qJɎ{o9ت[ںVe8׈ɦKb/*9SШiƦt6_&yA_^AUiS(]ߖNW/Zݯ1[v̔ݙcsr>quSkxEeޭ6{?4^1gzbSvK[+\p u6ըLSދr(|KAݽ0<]I(K\J>M>B]4x-)"euXL@dM+>3jnܐLK[[4?^UTĭZnLZFK!۔TsZ窜u +ȷ*R&YPzbWHNjh 8< fa= ^RrA4PnxIO.8[;R]|WL$žcM+Xš[R@U9(jHj_$kɲ,c¦"|̕xڃ)VuRu&BB°Dd3é\h:$Co%?aVLIMGx +H=]f^0FJjPZbi&&DU-xk3q)pMU4WJ)pR͇ f+NЯt]*mF[+R} PWj}){n|+ ٷDu{rkƚQ:qKG;ܲ`s' ꟞Rۣɹ֭^v owe*׻-%Xs5{NhfsX `83yQ>X$BߐwJY|{NY>WaLT.$%vmT 1.UOB1MŃA\GWICgCФ?G}k^vE~ú3HONT">ݑJK\"'ty7 YWvv~^ww,EX"}4#xdf>Sf{1'VBo:$%$ğ"SsQ6aH> bu4{_r|>PP_$4NU'G2D*R~[:13.,Z6Tݾ$eNtX͌d|h}\3C"ʆ\M|SID 3dXW)`R)5R.[1WCK< SWF-&`_d{VZ-"_83V=nI9Wԙm ZpNsr_gJM^5OX޴SoK8f lVPtUS +d8)DgR( #6 $p.E)epz)ޔ*?)jްRB/)UnN{b +#գ|]90c/pVj#Z:9bn>\lMYގΜo8H޺/["?WM١ +á''^]܈(om}L_wxCw@-@=OOYtȓ+G~v +w\M,/u`#h+UVY|&`+dDK ^w6鿱u<,NX/le;VɃ_{BJ^KF_rttԚw? ̫%@+Vfv Q%M‹P)^0\*rm +,rm ~ܜXP`"0i!$.9t*d`*x/ ZrS\+s$9BГ+Վv&׮+2^*c׎Y%ȏ>M})g,: \+ׯ- Knx+%-~|+K~\FDn4EZ/ +Ñ>Q%{Tpw tx /pΝ*խ qy#Xj*_=1ZYLAE 0s T!Wِp"8YE Cw9`thW@#!yG:˪~]//*/z~ Ω[/~)(e٭/z1lB[񗮿_fP_Ũvf{Qߟթ +OY":1"$S& MFȈV*gu!L.}ksDؤ^u'B#/㊃#bC72Jfqp$hέ|qt + !NBMXpe@LT삘#~$3H;KE~c Œ/Dne0 +{Fs#2pـ|Ç`![}i]},ǻEzY0/UFǵ0'& \hb\\󸙋]Me}Ȧ=pGƼG$ԝqVoUxzv}Pu:8eUP+&B<:eǑnp>{hQka.ıt3dQf]"Ԥ1c U-}"Edn*Kf2J(bEQ'jO +mo__wϢ/b:̲ieFRTD& k&&?2%Q*@zQٲ(QN+Fk"=\+51Q+Fk|8-&pJkb<{1/90'ڹ0q>(FRb,F왪8w= :g3ݎ5F<厙ڳ1px;F+ZCpg*lw$DR^^{vLG9/H >†wk^!p%}͇Vw`H{#8uNH%BCԎ(tTsqC gw({l wRQ)w(ݨVy,4^2̩3;.=4|H!ɣeUhغ%(sc𧦗HlO9nV9WI2}i]/"m `JTLJ=^hI^`HӀ lcb +vDqX(#b9ά0y ]#nt bnpI.c39%-ňrYVRa{%j *`F"k63c*dX{IoTD BX v1 +ڂ86e0rV ,2MqlˀE XqV -AKfcLCT׬|G:^qxj0=l1nWX_#ސ>6΁0k*Gxg@yc8lvi>Tu"K4@"3FO!WBu/,d#R=' +Kj +h$֤r1/-ggχ4Q/MIzP0,f/Wob ;]t$ qAX#>ZO[D+v:-ф#88z#bС<JP@ 3H$%tZVr)l-%sn:')xJ7HV3tI*F&º.xۇm&,Sv$uO8'U0/3A$ס>zShLekkt]xt|o\-[-ї`K~ +XܔB Dc-ZT1Pexv=b-QV+7=´b-Cqr{nǢ/[=BXݱԎ]L{x{DǼ_Koc/m08y1;)ϱAY}rQ?Tul3c @cݱْ=+Ƽer`Y>pǿdS3GͲ vS2=an “ G]XwDt)s4Յs]fk}Ŭ`t3^y@K_˟U.qnX@#-)Ps֤p 5 +X2W_KB}6\wߵ+]ԗtY%ʩɧؙu(g/ox $vlr%VQISy$W**2KlOo}Vw3y('/Su(_By>k t_1?)}~KHWj'pCӍEMpWDCs<<,B$_=$j_4rMUē ~ɵa]Q|sM> +) +F2 `=5)):E8GsS謽]0{i+bXWą Ԩ`K 3 qϨpI ،ifK1{+qxeW*̔G5#Tu:Q2H[qfetiBWHLI@b _b=t c_{=2+}|iⵔ+1|c-_ t>3;rFSj,Dg<y63j1ș s7{!lO{V98mI#.m 4gE_WB]VdN?.V.-wi"y"5޽KߊKg_o"x +Ɣo"H[ eys(ul$w\昔" ?U ;U*sz7*%7P> @fH KPv04úAU,-A yy)4Q* LUDgIB AD!*0X6FwqUm +zm~&};C|6/6|emV\ћ …bg[b(.DeToy7E}*|V: [J\-el-.+u+XJ,gYiSk,qe}}xT8nLʣ|bKpJgk.='Pmυ]nGXXܘN!ڷk]YyѰ'N쭅>PDZyn@|]nirD\N4N,F9NB$(bk\gÏo'Wr UKiqKutVek476w\{1j_ ]kGqsw(=+mu4ll4p4{2(|m0[\٪T#oXY[{K]X:M>d-!ZƎ',F0֨4̋  +c!3d{apCiw)ܵR~<|.@2p?:$XH + K֫AߍF:%by7|(Y C/%,)_̔Яkv? Nd_W+[ WV'`%<+f" +ž^\αCXKqviØ'-Ƴ|WZvKki27ˌ agՒYTLt^B?Yњt>mAbvqDrb\[matw6 hnf"uv[%^B 0"+K߲xq9GǪ=n 2s g+qej(2і,E{nRƲ`>p=Bjy9?^ jG0K NrKi ܞa#+869 GQ2ePPX`Y>\E/ +PJE?yY:mQ-IİC$WpAu7Y7!Gg"rMf1&Ivk#vS b뾜q7MI-z%6aH{M I y"y9mn SR E( GI(w7D\+qb{Q!&@V-?hN4tIop\v8 Y#xʘW[E.(<ŚYNu켆N.[;)ΛU3鲶f1R0yu1wц0Cna7܁qEZ|YȕQETݑ}C֖KL~'1g YLPTfG ]31׌rC.9L +x1z0*W,y/wBOf[hS1w.w{du H5-L o2v_ftҡ#c=7\' l)T2QvEU6XWig$n Y>;c;3VY+ʼB*5@}inue}@۞HZms}]rɞnK}Fow{ Æe%(Yf}Yf}% 2}-T,vCѝBT厯W"KpsS-wfdՃX$RTDؐDِ>,+d+lT&&=7&Ay5@(#$S29є\TŰOTwUYT wfҾ1T+\īceIzyݲB;S8cᤕ#5SK$PanJBE"&Î)jeSӰv$&e:R3M}$DǗMt3nHd>DqMN;j9ьxSrRMi||階gtU4a T Y5B?(sDgMDF0⚢O]ziQ>FUV8Q@#ob*nʂgC޸8=*ۆ#"j<ժ%Tw`Q OTmMi.Rgi/ +lYmZpVtsV' + XG#Ǘ.ؔhOG8(_ Q9n!Qo_Em˶ĵ='NR9J D +UMN }Ddd +P[Z&lҠjmPM6mI/jQPJ5*%n XF0f#%%ޖ^Ghەg ΁ޖar`e=B)݄,J('~`敁"\\BG."Ozܷ'/aC'+_^x˂ӡA N3~?i~?`M?{$У`\ |DFcBr4 +  ˆUɕ@m.P)wL@Wx"L$}yHK4:^$HAb`ß&2QYũC8*$0QFwś&SB|`ŗ/?t&HuA(X p+`{ QFDE~`g}Dz$l$몥Xi@-jqiBqCʝ  0 +`j&3Zc+Vk Wj`Am:zGlxZeHPz7“RvmQO#7Tuň*!"B?A&RsȢG_P|9bt3(O_6%P_ҥF /K'cJ$mH>*+᝷&?1Nopӄ@mqA~j.Budi|odiZn,EUe}lo&ۋW#܋hX?W/?T7d'ۓ  ! \i.0hm+T}-f6\/ÈS! +mX2VxLI\1#J,eGVjE[ -% +c%cpZtK(GbHĔĤ$BR2!E{E)-r,BRg0FmBAm9ڣ`QMC,Ghy zhzG1G|=(wCGD>#?%ԁm+#cY둋c)ZDQrAQ 7sGǾ 4QY&iFȏ&%'GnM F<;@~%}0=δ}m(̝}5@t`rxJFCƎZKz"(}н{_t`FPO Sg=*{2xt 5PC9@0fC{t\=l,hv3 {{ tdY@[ D#P8q r/3{$tiнJ.݃^L YMg5ؠi$)vFjm€;j?*C5 lCU*)24]?KsIU禧Z9 =8=ReL6c30-W4p+zZM"t +;㻺a \wU"JbLЛ=1r0u@P^Ԁ@ 5aZ'B @ݿz RʂYuA/wM5JQ&ԏ@UΓD/~3ȣy|ɣ<>sB(G}8'#%$~ZR~X߅/!bQ. 2bђL`Ws GFkGl4w@xF2G=&i1@~=x'M +nF*i-QA,fAk[(5G. +%?k~T KAE JPp#HŶVmiJ@ehmakPi.erj8Pp'l6dFF2Pw"meh呿YA9Yٜ'vJ.AԺPu.KRAAAPyXuTe҃dAN@xo_excɬ}Ŭ_aK<2N9gʧ "\ixR<05w<2CB o(1,ʌvxe/u==ѧL4;1ngVĻ@2e2:̕a,H/C!&6-Ef4|7]=kQLOӳwݣ0R@'\_ !Qԅh^)"ҬG&/ M"m"ۍIEn?[$V;C}6d2MQ0J_=4]h`Ѽ*DU˹"1HnvJ4j>N_SyS_W]C?z 6 +P(n`[/+Rߛ4QWlQVj0~i>*(T1eFֿ?qJFlaEޝXvt >wu-B,:? +[}e[ +[`},*/oWQ/P,P+k'P),.mL5&NT@2w{0R83z@UrH\Y/iS.fqZY0IW\ʠCw'UK PTXpc9_`8䂸Vvaz-u+s$âtd7 X2gv!v;EJn8DxJOl4$'/l-V|5&⒝9 9rOR'@yY:Mrw(JPdNO/{T&O7= 珁2#ѣ<1#OGl<+-G:tHRңOQ:x#OSd5`9Ŧ2iS18§OI<0XI Hu-N " "؃ >z +4ԹܖuVbjlN# :5XAm!Fq Aׂ01 . !i"ֵh>ed.<4 ud 6I7L Z "B T(Dx%$SF16)N ɖaLȖi̸Ȗq{ȖylN![0.5&NafDx gGfHdiLGɖxɳX0whFeb0~˓+']){J$WNMD@;]#W4QG)GQ&lLE( Q8U\y\Ė6j#)F hӨ- }ndypUp#P@ v#He$`"q,/P_@I.ҽ` `I@.0112R2%} K L M 9%'¥'<@ `I@@I?x[DcO$Fgɶ瓯 IxށrXGwҿƱ0){јo,0l2,%f(aj@DJ:F# j;&_`p5#ڏw_ѦvKv$DxSYҥz\"[D0P gb39X2Q-ʐsN*&ۚJwEsY+U","]m <<ފH5/ +i}E0[, `C@>wtn)H[-RVtU8*Ĺ*᎑(.)HKtHD:DwHۤKtuΑ.a%tZD]"%ȸD?[&*nҲVѶbە bbx1ɉpL]b옳׽Ȋ?>ɉD02ٱ0* YaX%icث*1bZ2eԱ-rbF3%ݱƖَ6sܷl{=g~fI4C%Y̱`G7b=iֱͣcw u .)Y5Mw +yu3Ʈk:67=fS׸w +}S95F[`hm^Сk ^]k+uye5ѺΡ+(\`CZPm5u dXUd45OS OFP(>lxeQg=82)d#b$xMٟ +QgL`t%JfJf`K'9Ӑ&6PaԱ2,I-r +0̩$ֻ +ZAO) fÖ3'f6Lu ̩kҐmS3Ϯ[tDEB[-ryH+uhؓG+{9 3ny@ +w|m +vT;™ƏҌ@#OӨ&C8i`f؃0ԑ4M95b궈eSWyfdR_zƥeTW<IkcWzF5Ikfơ'=}؜f_>}i6c_j?1Փsv1ޓ,=C˳3U2yvlTة}"e1$B7Q{H}pCnDfْ݊aPa[q&po8[Ӌ6D=n [vIEFBd.D WAHRA4@àsuQAxEu|~e)0n].aTeEԺ39\wBE`!uwlк;/?ͷ.~'uGӝ.Iџ?:#~Mvjךu;mHލ׼~~ ZAGriЅ^ Q ~K^Z/|v[\o״O;?wN[ijC?03w_ꛠ!OT5<=HG>*s?qGѨ|Ak띵5.j+=ZWbnڭc띤5}zVjkݚծqZknv #8dpCuc]ukt] ZcC]{]?k=:Z_y LdW*[4x#0̊~0Z9Q00ll+N/n%s3v߾qvC"摃`Ћd3"55?n ' r)~ 3B2tYʏ5 wگhu8rS2gNNJ|n~sYPϦLs-E50ilG#/'=ىڡC?^;@vc7ou.R +O:Wu>000_097067077081異10zqޚ&10H쬤̊ԌJdss/rRtj8)I)IX)z Zѱ$I&WוB~('zڻ޷jBwK̙͝$! (Kg" f?G0#iڪokF)RHUCUuUnFڵmviw;5::y{ν2 [ g2HCpS0 ~uAoDM7t.:i6%N7w"LOoM7y/7{"/g/>3tB/APYhP id7 j xS]4 W&-8)LKeVQlTu23qJИ FfCȾܐ3-7•#7(4ʣk:m3ּy +gaXotG=xʖ}`Qcd(m,{mR#@bѷ~Jbd!Y2eY6#YLZ[پHVSkhj*䴨E{~BUO +a;r5R636% :Nk^@x :>˃R6yk" +d6~MK 8̶joÅQldM:lI/7i8ܧQ3:-٣ޮk~=ʔf\=hϳ4$́ t(Rj4%ƔU&2[Rko`Etw2`lDA2M ʦ_Е&uu`fiMW\): }翲OxD Dكvza"e& 3GuensbA(#-M/&U̞>u 뮰$M-֜@zM>ZAIcUNse]`((:C,Wi ܺ|s8#P,jRB*P;;=XhދT;}n*VU\Kn4&i'nf T>MQX(a̓N|h/I#i-~h"{V}{zBWM'rwX /2DɌ媻GڥG`a}e]ltĂ9 ψ-G8EiGף":&03*7B1G22S85*ˎ}g~N|?t麿ruү]J۷Ѯ_y48DL&^5!EUfMWelۗ5OFm)k4C_ +8DteD鯜.V@9K.:R \I$wQ{XN <3ȉL\xJN!, "Yx&-Y<gX4+GܺSۋ{??%-d`Atz +؏aGi,iK70Wp99~RKJbtQAIjUUotd{m,I=qYedix0عAϐ5>aXjjۍCbg +na25Q +Rv>ewĞC0ڛA[Z V9FaeSC-am.`Q(?l4Vs%Y">KQC^`{ű^ה6M GvC/sɃ[?(B,/^})Jb|1^l׌Z_ŭ}o$]3J҈jDR:˞şNJw5dh.a[$#$|He |$ d|:O`͐:Q~ZYx;G,#&g}ߘF/(prN< ul/// "^ i1(mΒ;+~1bkC*eτT*h?-7AxE2D+FFqq8 +Y'K)t$')*'  +~oc]$-hMy)!ye!y!y!yɐ6d6 fCk$1*{(I$|H/ ^EpYUԺj*]5u00u /1JLz&=rY+7{D핔?"drfd$ rjDb&%q$d7b7eXXBZ4%Ii\KIr-:KҜ ,i_L]XؿZ%ZqK_Tr~6a6}MSӒYKqBYL3peCهLJYe8PwѢ,i̵jJ[ (wSgVM\2Jsq@⹭I3r,%voVda|Rx G[gڛ65oS~Zn5Np1;1.G&V!!7@nZjq5ߝ<1 +tu.B]v 2=zGkYY ]Cb l! + pd`M) n ؑCX ^ 7w$D  ԌSPy>x8S Zfx&2nrf&'35qX<}R'mPt"ֱ` 8j^,OPB +KvK\+;jXqѤq@ng +ܩ +*^蕼mq1K-VW٣ crBH dQ4ŠA_.PQ0uϺcY@Ul7r&= c9@z&P i8xQ3 Y7/O=&NT0IVyˎIwy'O6q[19~9V jtGTaFa#'pOy'1`Na&mtd_[v=LG;X.ae`ELk]M] izv1P+_wh5^[kHlI.w b_ZEs5.m[__F{vqm/mAIv@mIGU nP灠>@'Bt02bء(>Az5~ G>N~ 숄@zĒ!3yALw@m(=ܡ{$">(C7+ُ?>*hHG65]$Cԏ`{A]'0֦<6gy`\W6?5asĦzqr.ns@ +7U~@ӭhL1=5Qu2:!Mm;fs࿁_G? +5c<<V~ u x=$j&Pˢ +eYavV ZRj^0  +5YηځKrҒuEVA2}gp:.1mDӞe+!S\꺀^JCPu"Й:Q4P-0+EB-EX2`W +F|gʄT6iJX6Ҷ uG"Un@Ojҷk;#=Ɋ~L gA>W[u'(!ϭ6=5Oϻ?bdӐh|L +?x}nݑ AT:B7BivC7@ɱv+*V_ f +xCؑ:P WCxf2>?Pfu$"Nggxh@}򐉦s4"A]' !FTeg-+=#' {>F\?@If?_@ 1 n `CVRAwjxڙ +`A +"G L{rh)UJ.VPP^iuWjok%'kNzYw{=v `"?7D嘜@ѹLy8ބ3:?pl߸Aj"0a3o؍6G|s<ӱGa"1GS}o+hO @SABP}䧆$'gͺ%(*B>6Ydic{!a4GQ!iwc˅Eɏ!y2;qW_ȑL5=!Dss%p!&{b|Pq7PsxZu_ׯ'CU {q5m蹗|DH\Ŷ6$.poWa)~~L8ҶK^L!bœPsX:SԦrӲqWdE])&L Cͻ=1m׮a:ƗdI(4PSX,E4@3RahY qw9d[Ok%1ɾ㺈Ebm͙jDF.9@b%y-ƥ6pj`[*d:nbx/,dkB Hj'˙>#ͦ]b7BWL#Yo|Q~|\.dLUj=CtXS&s{a/dln}f`;5yZ/B, _P9*=[E9nnv7jky"y׃-Yg${SaG=' y<adG?HFqgW8|tcoÞX^Лc""%$iMjBðnaa~G8W{j=ćMm?{)(`0eSg(Yڋ.+=J0ZhȘÅn?Scs +JIk +NR9 }6DqQض\3jgԬ3JÇ~y YP;2j SYV_ 7ݺ0_)rhҺpMvղ`zi +&knPapJnT3AS_= W\U;hMeW΄N쓌3iێ:gHOre1pi #ͧhb~U/.?F("!YMFqX|גu?(I_„r<~xÔK2K9|28jcPSwOգ f,`Cq`në47ӕ +1ҳݓ*%v")݈De3:QZHAΏ⢸m@堞VqN,1 ` ujGTqL d3Gz3DN`Tѓ3zYؔ! ҭrlEg 4c9VeTH.QzOgˮȵ6kn\uͬa31l۝j"=¯, fsWt3k];WBW{1AQ5>+<ۦݳ>Q;'Mָp9<W"aꆹ08*yKb̞vVt3+7{#NNO1{В%Kc eFV~X/ia>1v1L/#=qqLP,}`J.d;MSGǼv,d\LM- o'xНc=T!xkp \)S̴ͣSRVŒޅ*(E[ +n#e+b_BDOtߚSs}j +<'؉ ulom مk*1marܢ05GU)X{&^{aaF̾e?,z MTAn줣Y]DYՖomaw;PZ4`WV.n^ap>t:s`TޅcQS'RE^q[~ؙһSUC;CDqU$s΅H*%1K`Ow$i%C@"K@j!];Hf//&Z{[`о[W7mh0ssQg.[acpF!)I6]ۭIYͽcu0AJ3_ +q\q]7cX昵μʫQv㊯V QGT7t^-!˦ې2YIݱ6TMiltU'ނOZMa12jI[0U&3g\55f?0mOՅlF>@0=rPYp IgY:BQ앫9쯞/r22Xƭ'K/u2FwXiCarf93#/A 2v K i)[3\I<vꑞoPܧaAS1c]ime7m\!ⓥD)Ϭy0Qs6$h#+먋΄|T ZXiMPxVON俏?O + +Ng+x:Zo}TZGO70HT{W:Z`\Vx7Ƿc7 +߀c}0N*Պ:2rL=,Xb|ygs&'FpXotF_"!-QN̨͖ ?dwe#sV;% n(V~h-ri[6Hk<1Q0o4!fwhWWE'u.ƹY"+[`6s mvţP\`9lL\fj -* v'C+ϞwGX;wm"UZvVIbSwiDWa%&W,pl^/HuvrJSP15(ŋx0q+m5ɏiѕ˔[Ɓ*MXKĤlN29K{}Q%op?xwE5\33aߦBᦚe) ç SobiX8@zoASgtoK$oH^"oBԛbvP%eAxi(]?"@.ۘ˜ɞˏpE6'E8g&k m۶m۶m۶m۶m^ݫm}Ξ9sTDTd~}?}3#++h5\I7ā&K|,N;-<ʦvq)ئc|s h[H mp I\H ѼRdI[G HQ!"t8^RЪ85w _٘dn6FG=hq^w,"w(yi':! fbYE߳^)' yrc4k5@4~u9(O4YujFPꢣ)j1tvQXgC+QFu1JsͺOYhONiu&*z& 7ƌ,AP* zF' ephTO2,1QAa=jB鸃k.G\L&l'Zw U-j4:H9U(9W MOE(/Oݸy'NQqi20F1sݢϤ:&1x%dӐ:LlTcrbz$ ¤=bO/oef̢.NN`lblüpq=t{H߼!Գ +q+Xwle` mdcx lg*{ѹ2vٯG\W|2&TL~ѿG +{'߆M[a_̓1;1 ;pp|TzNPh=Wl'>ev'u_s >:z%Wٝ* $CcdeiydE;mxER|Pdd(Ʊ9 {p ;荆Cѯݝq}lC"i]ÊJu:IP_BG˜tS~0E +&0^x[H:^ÿO_9v'M1+r0n4 <Ց;Z+'ϚR,b9"{lM٫m'JI2F,)sr@;>F^vg|7zi!KZ#iq1mj%/*J{xJ}V6#& qT̚,3YԵ,&կ[^:MO,**Zt% %uUa@(jZ1㜨 5;9˃H +vo"ET<+iOۙ^j pωIאW k9M93Մ~P@LS}iڀ:r0WT!+yv}ylgFq݊t} XPt@: HtkXO@d `MA@d3Aʻ"}pwh_XzC0 K +1m.|㸔zl kyZ9zHp=m-zxJKz$d=œ쒿g'Rٯ݊F:lBQ v@y>~[ZMAƠkқb@t̴\ gidb͸Z@mMWCnS`=G*4d[,Y$} t9dCV&h>\ץѰQqTCb r<w_Sai&$ݠsŒ2"Iucj(q7 +mJ=;Wґॊ# ޥb3{3i&4΅o6J5/C]fW1sg^UtG"= +t{"8ԃW/=bTsϢF2-\(zJQ׳fT'RHEnTb \^~84_.YBJ[6g6Q6H蛲DiP?ÜQ"$w.}xWYTt3%q]Tg-7x ɰZ_Y+jKH:Yސvt&t,H<׸PwuE~}ZHX-qY-WdDID +Wb8nOK^Pݎa/4r 啣a asa囎M7.\oww^r^ Ae |X)5\q9$E; c q>Y;vu*JC-$GBJc.X]r +X”&@b/˓ARǖTEYE (_nb,C@Qfx ;S[j'qtxK[9ʎr+/8>T-CBؼZ gX0u&J3sPH?Ttc\ p)b̻8; +P?*:Ty%*_QQ=:%\.>YQop|ңr(@qV ܜ/^wkc faȈ#$|h☛:K3Ŕ32 ?ϫF'2Hv<_-6-N 8hKIڞ!J.jICչs5/!}IP3!w-W/@=7jt5Ew}Km+%YI8Ұ65'tjFgmE t_t.E:'&VBY{aTO[t[&E{>L4CYϾvA&2~ǝ#l B/f9++BK?}M'UΖۜmn_gcc3ՙ>^ZQbلmvHe`'YPPfXfcq--vVm 4v|{._fda[¶sU[uHhKSf8 撢7=5o 6gןj[=-w\0wua}G*fa OeM?Mm@qFmWh jU)6EŮ8 _=R[MV]]V.x[s؊FL6^U|0F"1i7-ֲe>iܰQl +ԝB+@UuQ0US/SU? vYXEqn@c+YE>:c-2c/;c1ݩF}ǘ`ԈU.I,eثB% ]S&!& +Pge }D>Ap H¤@3͠cj:HZX1~ UZ ؘTUVoȒ*/lJ8xJP0P6Xlg!S5! "7MmDCjDӠspqeeak4!"121*1:1&161~"xvZ&ײt3mSB6TN6ՓeʉerR|TNB/+/\SIYT ɵ52R2/G2ˡfr: $Z#|!0^V8`>}z5gUC|vrU1*`l7 =ȧ_R !)\ndX~'+]5l)*?f8HB3P 2i(B趍e^*>7S2RzbYL^ +"`p;Gq(-b(,% +FBYEM__\t[_"-+J]-3g ̂c3 կ[{N($dR$|ujZ]}"d!VS1K2*Լ5N1F<o U.iFchN-vnb[ѹ-%7 n^wwuܻcGۈŏP`zËo栠@ޠ/P t +Tac.qY+GTbe+ G'N*8qXQb4vAJU\@PpCㆥAV$l䄊]ڤ܅]௒oB+\a$ e\$N5ݯ@`9qE \pb\'7`Y ES`t8)#E' \7xkcI ϣM|Sާ3!VidYs[ۺtLM~f!ߐ㖷yX 5d)$aE=~|y5'gWdG[t-uNQbh{\s?_z#mkRZM"U4ih~CYV^ZW&J@ФLjᴺ^>6Jdռ,*ڤ`u͌w# +Pְ}!~#~xGx| 2Hcj`JWʘ(OuGʨNv@Yğ͟՟u ,A[4GՏQ\V?)T̒&R15ER ҵ@$b]y۠)ʋ@2R) A>.Cڹlӗdz9'"# +C8f,46f7a⊡8("GDe +A=FkI-H=s$ſu8`7ռÙvg@ ToY)#+"u_әBkPBFm)QDAղ]"洛ڴ@ <ܗtxgeH((^k20۟\E#؃,ЏG]YhMu fO> yٹq& X7idY*ɺ'QdafЊ\-OkGz4ZA#^b mnԭ :?C,11E(Ӧ>}(J'I۪VǃR>8f [ۣJxPdVz(8t3u i)&ϧ,Ir 6Q%ŭ If,XNmLv{wt: Q:;MO>e"#kuϥP9p}白0[R Q1B2:u*m˷mif\a{VV[8VC8B@8][ٍ}$؎(|.p]&^h5~Osan8/a7yJҖ(YH/J.3,豭_6/=Cc6 pFQjtچ<#$R1/(嘞!K1ɧ@=+=68 RrP֟fPipbWfQgF4tV ؞?&X׀s(?;z»Ҽ=e'/qv[fSY_ЧhV?.l0I4BRMo ÈλG uk0- ɂ#ߠ/FV^7QϯzaL=4h)FQ A +VDzD 3XLZAбܻEpGDbkoP$c'y_}Ns{}!.*||A(|WHd‰vTu Jʉ057A302w$hI8!C.QJX F$46QtNsb4dWTҜ{tE9L4Qqbs)}ܴiZ4h"5&sZE-'}6"@?x7JlIc4Lc涪4y5=3^+mQH£JF8s]iJSmeoZw|WU~גʹ}Ƈ3\P-]=mE4tAb'O%x$!mJO} (\@:b,+--˩ك *bl=1R0j-ilEV|Cnlcsξ(IK&n({ M8$ +cjɁI}|M2 Ul@lb=/0k|G#)p oJ\D|)3a<)=b4RBB D&7W;ó At/ټǷ:/W*n }^~W6/Hx7ѽmOȋ_~'}ŶuYAz] ?y&E +N8@Rl,L 'RjgUQ=A><[$ +,AI|鵅Z <+J)K^ܬbBcRspTPsza/lv{?rz@/@@ +9 +eB2aB5PP(w +bl:, iLǮ~QCAC66VFNOVO6>ϥKwͱ\PJU[=k=$HxoXV]#z=]f^<O ŹȳQKvZ[QѨUujVQ"*ګ۳Qji M=844q5+uzZWrYJ"Ʈ==]pЊ`EfmӫkNn,41e''wY6'PZ,?G0TO8>:t/PRTSN2ΐ4K)ˉX)$'TwǧKC +RX ]zGȗnj̟M82^M-ݼk7rEh*ļhAx@)B,Ā ++yz.EEc]!pvI< ;_>[Xg0M^\_a?1;}1`>DpHЯ@@҃&! 0 PS. !1/X'pjVz_AYtǟVLgΟJ?(0H[ri-e03ES'B´q_[[~ 06Jp8q3Y~ LLsm, VBa - ѹHR~みT}E,UYՉlKuڬ0c\q y%)}O~IJ:%) O#ᑿ"(l6l7"3+ N!0CK1쩊-,-g}滪7`f7>2|ɈÓ)t&(w:.z8S E^Ͻ6fe˰1~SDcWvb 969N"fH'\88FW9"yxqs*G3_2~/?^mPn'w 6JJTEkos nPJ͠'GiOZb$#N;%6R\A_~1fO>w|yr2$cJW>%ǐsɛ8hʛ'5v9â_W|]x^|fߩ_:SzO@onrWS<*5U[e|>3x UP@m(L tBL$*'@.u$ZHl2U[d + ;?>u({neRw}7@ Qǃ.W)%ƎYtWc 喇/@ƳJ,x$s {W> Ζ?/[rXvHs/R\߂, ehk׾/o1cpMkoI5ԩ;1u ?&l+-8(-{]fhWX7iz{(zc'%%%ҿ[n˲>"0gxR94XS]CekŵVei:ڰyLu>ivrzsqDM~E'ykj9Ve`c%/ %CX)^1#,fg`ہ??{hF!lW#Chp)nYTϠ{pVmqA9L >/D=*nr?NjB }c7x/?o=$y|uU^mJ&!O7G|Ms)xIY}F:DSI]a6+J`D4)V5rUĪb.X5yT˔**'= +3"͗u~u.r9A+`FYrߞ Z]3Bo?o->OEi@7rDm[]B= ;ɏ"IE4BPZ ⿩^J]DL˷{@L= ˝y/;Shɞ;q& %]!:Rꋴ̒E"rioZ@261"TNDٻc@W4S&7FQ14MUZ.ǩsG|s!#B !/݂zж~ QZ^lƳN[3q[>ݑ1'q|D`+t)[yL~{?%"ُ\uO)rO+(&:8&9vI ;?&Lui.z$N1;a=3SS0ffU4:SRai +GGQ7qwq[ +Mߛ:TYE7An3G3"0GY5~Lnޥv{?Zo,Oj2 k +e@=G[mtwwWo3vw{I +L) %y:5~~~%.j f]~j3k +3 Cc +O&8Е6d</vUW(uCд[,8E2~RFYY%~Khpw0()jس\[uv}]h{L)W=n}uHǑ_Vs7q~>$p߅mDrJ:~d s{14X-.z&^ag ] +4i\F^iE5>vIR)GZr'l1m/|{DX!vh&| ϕBcs肊4+ +ax5x*Sd!nܯ!'֊<~thDDY[֠pnfKx^r +v9)~ޑ4~ٽ)~rme sw6V[5Y+ܞ*BwQJ9!KheޒcW ś +Fd̚gf|a'WojtWlejެO TcL@Z*f-A\@$};n'^ +`}E1PU%?!N|s6mn.@&;@<Ń|c/TK-L ݢRL\*,:pP$˿vN`|ĵNnbŢ.;7Г*}',WŸ\doմ s !weC-!3u(l5)`%IK&Y0}!K ,ƚ6S%AC,M)<$ )*{٨ɏiG pFiS[ +=/H/yM-ñU8 S-h/Yj&ɍy#,%#iYg/ĐCCN$S)"|כnBc~:(GJ%x]% +u`UF;[LT_4}ƥ% ^kW %bWh}FB+徠~킍 K+'/@+I~tS~N_ +[~/lEC[jQ%mҺ\\WLዟj괱&#¸(HK1KDG͕bL.PSTxH,LZϓI@"D@0BqԨ=cbEc¥B +8rnkZ ͤ{l݀mU_Uŕ4SR*J_ +_f/@POiݺF-u9Hqv`G96NQ՗S+VQQT$q9mjw99mFS ̬ʋgy0:"-748fiD2,5|O3аb[f=-d-5ϐ4ɘ1#SM>lxrXϾ!߾8ʦQ49ֹb1C;y$9r٬C`EV%iܢ @괅 OnNnN.+!3<|b0| 7MNyf _R(NX3a8/n7V#WKxlS r'{g>\ ᡡ}H*ie +)4~|<8}!as!!,')﬩\!l;Ts8Uܩ9gj]Cj*xSnIL8J Ƃx_\vh * آ ;F@{tAB6 ղ بFبGHBaܜ#|٩O6`6T),2?238U.͏drK4g +H$hUlJ#a: #v +;Qo񊵎8 V>k+;@lN/ Bp<<7ސeYXdj-k\E=+24wZd ?`pȲC4KWUlYAIᶀpZ@9, +hm_/h)-[tp҇R%KSHm"ي b`~@U޸wKtIc)f}Ve= 3nwpHPzzvB`MaTre=>|fWzvd~J 2m`x{ȯKybaFf~2 }0HNb璗m2|7hּ&nhH U )PlA^ݙ㌋uY#`llp1I/oṠmSC9e~8 f2|oN=l7 /j7 =Ff`tG^SykpSt|bw_+\boc+kP>+ңy&(*~aR*afUGoj1u]Eg+FxTOfY{H3e +IL + +>u` *M#-Z|> + s +FrH \FgB!xBaBĂ[©iE=.sU3*fS|2]S|Aéȡ'c `U#ӝ pGQq1i>3GW-۟|I8+񳀧|8 4M2RM/H J!.\!!h@+;E-Xiu+Ѽ;Gb/#Uu.9x9T2|*B(ܐlDҔN"H/ȠUn tyFKj1ldѸy!ƴq!ƹzmc(Q +4sƅD6>Vgr$\wŌKA:aHRn)y~Mg KO-]"ucPv$5ѾgkzMEtdPEVMEfVI2U'Ra +!$'jVt +^.[q*(9:$a\SSp ~LFT\%8ma¨.tݳRa4EYderUR@CB㱅je񅩁xHX@B@HAЀKc@1rr1 4 :-;oI',<>6d+P6w:̽Y%LuLS W?ϦKG13]9c3v$cG@t!@\Sl]gClQZW;|6"F8|f^>si݆4t7\AQ5ՕB[4ym}7 +0c֜0P+OK"4TVFٱS83GX2qԼ7BZ l(ͮK3j,5-C[arcjri4 ٠[%:Q')Ŷ;#*YEyQf岻il$q 73vv!r nȥ?=p;"oƙ# 2p 5ݎ'>]!}tNI.C:QgE BW8.X +5O5^% 23z*x+%sfq#3q;E*F +Tu:f :lfj >!?Q}5镛_,oܫaA1O"TV)c)f>qZ|k/bdEݛ*m5+1gXըM̊w$Or*{gY`HZ9G¢ehE.7/LX󴊜xIkZ}Fbyش縦N8N;JZ4.hdRְ#jjXeI'VbVSV +&Vfb!f'phj֝;b:& 1`f%\JPD\*#)"tD_}܋2XMhf +~Z}EٓP@#`p2WՠВ8ei=0uf=M6)1 +&3hظz@|»r=b4; j7נcM׆G,5- +M _䱸7l &¸F؆FȢ{<;OGn$Yފ:Bj{%{Kj`@z=~er*y@|HZ>'IU5c";.1HkNh;ln1;ޗ7M2uta%e| 'XpZgzx׍&Ɩa \L/DxZi1K ͺ1动?:Oej/o2 9I/xIrC$Sr]/ tHKWMxV]KW:~~9/jAޮ:Tr 7_pVt# [ة򛕪_-U#KLʾh|j_\^tj_-sʾ锪?x1}%궰%ʇlO +~(aO0^O +_Q +d^~1I+ /~ы7 +O~3GO?!W}ϐAvvn ޵SKw_}.R,j%|!)uijjMMEݣ,XfQfGwaMey[]Y^U6f +}+`*k)+\-u;IdfXasַ6E#Wݰ,RST쩪tZjjm5ډ- -,y6f B+i+Q/Q$ Ac*6v[ + nZӾ~jy^OAa`n!Gۑ {~\dX0p/+sb0U9L +0 +:@axA[YF0ZEDc-|(08{+cNM]ZM=X]}j80ϭ}qnO, N:\۫YXgB$6lXPloPUđ "ml\۽)bT WJ BJd,<#}lag5L܂pG{E=4zFRV]<)Yz2IEHO|5GzmZ {;dK_^E,ݹ@3g eSUA/ +h8X4C˪DeЭb&U۽^( +Bxa+L7&NpV/a[[ e晾;@xjOccrQfE[Znc)U&@3Qf"`LՅѻs6bynsP;7$r5ׯo]u6f'{r1zdl Dhv5fFCV$ LxV.F [k8W4bcDH~$5Bs;viwEFcںg="mQȗEDIfld -H+Po`VюH nWTcI3i;M*Q ݡ^35aH'e!^AP3f XD'|mR9a`U^dHՍ4F xv&ޘ" ck&&&X|`0>)M\`x].k&WJ25 lc~xz@Q.EZ>3DB f '·+l,ր:SQh7ܺj%Yq<~BQKHm_/t+ }ܗ&*w' &hkd"*^S &0'+oi/r,ճ,/?6*x"QX,XU|.G<)%mʅ-xveMyC'$跤eQ&ma)k qŀw$qk]5=bZ<o--ht'mn 0B g8+AZi^ȁbQG?vB};~Ky~0|k.KG>w [//X}MgakGug6^C3ZD [hS}3w/iG1Թb~Rÿ9D?7/ۻvbhH %k6uL3:U'92$wmN4X&asUġń=im% .%I +*c׉(&:_ҺK\vc \ڒq9˚@ap1$*RQWޮR*tPҘJf"4F.!6J'E.0],kXǒK\t(dJi~:dӚ\_xPgQ]5 \6dT"bMső!F~* I\Fu.,VNcy7ӣXfK.:JeT6-oe'TCtD nߦфR#HLUs  +b1"’EWِd]rI/'m !II2sM2FC "jJqa LUTX$,ffGLER:ahWHJg^ EΉ!>[xDo&C1' FsagL@se RW8_I]ASpeKĒ/G%+ +<{b+=H.j +KYn <p\ǃf Ε{Va4T,9$vl,Yu/Y[hV6FU}ɂc>%F,t_(jFTid*ךەd_* n4a.T> T1ݳSGBnwk5qlil Vkf* ȥf|L]{t'ޖTnݹ/UY^si6nxC%ֻ: +Lav. +3T,49V@pDz` W{/bV~Cv~^`WkRb'wK1_I$N +-r4IDy;Үk &=|xbEA qWx (wZs SH%v:['ZpG,U4VA^>Wdh,@V;f9 +I llçm 0>rq'Ch۠"?kwYu .Gi7~n$Zۉ>(%^uM+> B1^7eXoÉǐ|G<ñ_@a@ F4@ ubZ7xo{IJoNn{VÞoK|з97z~UNoOx9o~':=7|g~Qߚ7|c2vnkni2֐kHe1E}RdY ϶,˶ 4:`v^ՆQ3-+uɌc]v4ړ!8a5)4ڔiu +0qM{0 1\\p,P~p)xhEX(7E~P*hhӃs&b"o"Q#roCB2|3"q +m@qn4q4Ovdq"]m?'ئu<љ1H ,3;u!8&W>8=b+げ nh`Dq/{QK(!0Vst?r—AVD?o. ʔoѸ"F"-m&Yhe={cN4hU/# .<`Y>lV P;s!Zeb Cمb¶bZ`P1A^nXܸΆ$ndĩ|XԄѬXdk1b`ֆ|lʹaz_r0:3gNE¸A0wxz1'<)|_^7ڇ5*AvjfpFWПH < $ʒAvW$~l4["B7t3$3ıTFx{f'f\{%o1qX D"@x*(rɄj>8 XH?Y!B ^|5 Q}TPfn|J{#/$/j8{lcE,R"Q(ku2YvnQol@j +i3 U +X+[X\kެGHN+B1"o uGwfD/OW^Tٖpb&7:jg^& U8P#hXuڰJsWPޝh;QkՄ`^=uI F(֊.1#l-u(}ұǁ64'zWS 2 sϩ°8"^{V)k>OTd;.yGM m|/ׁ;N7 %`Ι;pkQCoh\4صwq-=2w11J^ՎhzM m9Lܮ3L0*\;\1  s]hޥ܆;F^Q,#}af\fC6& +AV-ͿF^%C#O#O! K/BIwav^EolÅ4mL&jx^6D_vvnȆj)d5V)"MIBktO09xѧ8S>̟ND'?uf䓦:aӝOI6u;7n~WIѓJOE\++P (Rf6mMm@ٍ/Yli6R̞j-ḃOI<ׅ}mf#}0rC=kGh ,3NxPi3"v.dn2`&{5{Ag%x1{I N-loQi0eìegg=?@N^;9 mF&~Q8&P[`.ѾZ^k'F5򳄺YPVXu!C`R/Vq'Cȴnh3zNLp G"%CB%&Kekb Ϛԓ ;"P]PLTz(Dt+1Oa>I'z)_5>kPm۬`!,18A(#޸<yrH* <]ixaC͆l]lÔaƸ{ב70#d>͇xw94Gٜog8M4ۈx3.}|Cy{7iՁ01FD-} LndW3QH~xQqebG^@ ќt=T.\/BS$S9ZM"Oc'㱥?'Yq +)5&T7Ƶ..8"l{h[\j.֣B !^VLEA2A76GQ/^$p,7h&-69x tm FcOY?NUZ^Fx ; (Wa$]ʱgS7⽟+!BD/v|v+qi!B5 7,67Vc*9U"~0A/CI5ϠiBzi)XNH`3< +0*mddxy¼p=/D~vnxp4\IP`PM`Tې">>3n +Mۃ c@p0mSnV?gDy-[V|gs\9r)^(@*/'ɏR/gZU(T"tb,mqѲxG26-D> $bW(h---1۪wEob-vȅoݎٲ qmnf+p6֭%-eW/rK/tÏr;rghVy8Vi(ʫ'YC 0h!8[yb[3<ɽ(w8GMze0O8A}N::u2!?lӼo9g~9>:9: Tr?&7:x r\;܇4&K: +w.Uo.:WD/ 9ubJ>8gI5^ +˻݃S|~Ft V6,p87(ץ j] Q]Hc[- +P{>nt/N Z`3Dubo+.=ǽ׾⃐Ǻ(NW܆W,:T8kE+%ͽ~OͽyQg̽~d'a.eihFhZd$DlQL Z"`i ڲvU!wZDZ@o2RNiͩYJoVn1ubH)jY^\Vs^vp-/5[7\ꭰ5^V6ŷ6ok[\`n mɯqy6ѯnA/n]3qk|tJ|F|gju^[o&\'2j\9֥kŰ?H6ɽI"U AC\R?u OrrMsl4}?!Qם_s{) ס9R TPzX#?EM?KKe-?ֳQ4Y/aUJ5>(;6dqbsw8#MO%]]`}׬;{ؤeL{I3@k8şNx3F3s"űSVt8븮 u}1\]T#qu'X\esn"FN‘pt@$̳Pi&Vv 8 ]#=#qs%d(@kWc3.T$,P9y͙\d%ۯnB2d + +7;w/ϨUzՀNP弒TA;Lhw\&k=hJ" _k1 6ZJ2r~^! b.饡6h6ҶR{PK}..X10,jh7uީA"OͺP"1onv8]~}|@ftq储n" j)+3FzC 5`wdM&X=-o=nZGO=38c _$w7Wfj3!?gCΧ'^Ӵ={7:҈=C:I΀(̬q=+O9$/#B (2+4W*)-PN LP;K.~{ ݛB cpk~i&dNt{)WihɆ }VPc|iuPWG2ɮ£%jQ(k@Ube0 K/@o +AKhCY:ԣ>b)̯/dL.ec5J% $A(&'Z媏XW.B;3̹ah6u3?[zeAKxc,#IJ$ +3Iɘ- Ih+jR5T*!ӂh]7MTtZ__WU[F'~^=ns~^9@BW-nPؘ;Gj\9 l9%yd9ۦlju"[n7x$_-* b|~- (9ZD롅k9Iz+D4y\FHW5*vqy^?,ٸX"֠& U;sAΩ,iJְ6XĎ C*ĉM)[#NVVi)jK +O^lu-EUyB4Qm_~a?p +ugS,… a8$f}DmնJW!+)=FrEV 0i((()jSk)3w(h4<\dEhĵAB8A>d2ھME11P]*R(L z1.: +&ȸ^uy89F,5ynkb^]f0mcB1N()JFn\G?u7י,ήZ $}b>k?R  +Tn WktR.`ŠY$ǀ:Eɏk 21K.vLLs1t5NRx˅^7j^oi;x7:JV4"p1dS{lY.42+{QpH[ѹJ__u<9o0RLiMP*ʈm BDLfvFߤ9/,*%-!> dJv'OA"MA6M]գN IcUӴNuU,$6UlUU +r +Uk& )>#=;lV0 6_VZO*Ⓜ,m#^b"w7DIuyvh%u&s;;{sU(q1RY?$ҥmfnjmyu-v|ݤJmu,]ӾuF ^[ōK{U|4c(/qcf?<],M<’\]Vn7MY/@ %x=b د^FfBwHlg0>hv@3^M&&cXjBnZee+\`emlx${:E78`ܯG"pdG + eSԌc#"HD>4dGdtL҆9+JթSZ;*kiSǡ׌jSDGM/4121]/k77-.[HbاZRWqwwdLNVw⃗7%7Or?kVe|[\/%iu<@FVV-PZEЭ-;]ǒ%St9G/)6 Pia%KE5ɯw1;덀]8gR-|cE!-R۴IJØ=wƨ2}9^\[Ԛ:KTwMʞ}lղIɼXtyG}!L>l~!ٟ@8&Zc +T{"Ah~y5_l›J2Z<+_JGXO~LO{+}1f582_pf0pXQ}Lpmn*!32FY2ĜfN!=xQY os*۞iO%i¾0Jc=4Jc8J[,'NvIߦspǟ9;w宺j/Vrt3MTvxW,W*􀌢8*/ I"WICL"| 5I6 +Ⱁ)ʛT,51ka | ]duBL.5CT4KI_i o I,+nͳ!gi.1FC HCCWή\r1Q𚹓$kVGBްJSUYi6A4kHX1ɪ$RL,_gIz8Agt53rq;S)s㋤ G)4ʗl;d; i^_LRQ}It势 +ZQH=v@TiEQjT$M%coo?j?YHUOәh6G@TPwE*DEcG +&Ze&_W(t~|瓙L}=[`ߎ[@*EX}e[#eh5"s-Ze] +m#lM:fY7E jD"5&t&΢)P +*QEҨΡ `;w F@AY!fî M#'|khFAg$@3J*Оi+'Pm" Ѣk&E?FWRJ;kQ"Z(WXZɺF2mb:؛kQfDuQFa!xl1ܺo)^W#?c:dPE^r;QE(F͂0[ VEDQEdQޢ`hnEz,7(tWhEQE(Fx(E(7g~eV)b)zIXV[TDD@\{TB;64D$F+[Zew)+xpReXo}S4t]WS*n2f;s(ZϬ`ĩFm= p4j*ݠ}OdDfJ80ѓyj*2rm粲5xg;BD|Uf,ި@#ΖLWoB(*X*XWU+\ #/ ,п)͏҅ʊlzmLK7khζwn: + +*d C]ɂ́n<+n(XZ"Fr%3hU6Ħ9YBh ?0K.xl۶m۶m۶m۶m?X{y;ovg#6"++#;̎*s߶X/߫?V5m?EKg/աMk?Vjz?6z^oH7}oM*MC*٘ SiC ǟ5z$|睲KG76+s=Э2V^bP_m'67 `1=ލښ=:WY%br2k^bD 6KOe"_$R>nAh5FtcGa΅+jYu>KW=^Qquz̼έ1]ƙ8EX$)xoԈD?@ꝮߐTtN<]>KGU &GMd=?k1ODnDIk%j(i~,].6-"GԳKyK߽qv sa8l)yTRJL~Z%7wϡCNKz/:_^kGGޫ2sa^zkwOYhsqss* >dBb+;.mFd0C5V;CRP? XgaYn6D8vٻ"uvI*i9Xxݨ{cV_Ȱ֝ԶkXn%T4Y: Y@險#YGoTBm$U헻Bfo[6`M%JKy!`i>/݉;ᦔIH*6ZZm9(zZb+$Yh[(^vc#]wee_SVdR k&W 5u(n[W$Ewcmɪf䛖g TMfeP3xS}1sRl ^5ָYT{ s{+9sw63gV 3R$oTˣEAس7(KhX踨C0|Uy,u~TM3vWNEMXkyCsH8[rnkn3\ul=j[q* HK:o_t|~pZ7Ukĺٵ) Hm|wdMA|/qvsȑq"ʷNYhk#+۳اLW+aG\X˶.}5CܦpQ鬑srad\8Sh HnK, + =P6$$WeT\X%#)k5S]%c aћ|Out(;/x!)%'hΎ*LK}NE]ˤhBӗ$_6/}ї]2gX Oқ$f{fqߘӛw}@MߥMVqPgYkRz7M_7|;&Mڛ^^?FNQdtzP +GH3TJj{3ES%Kh+=f!Oy?O4_S?w+S?QO`S?Oy?d {t`/| ?v==%~;I$Ca͟?(?~rAO JW)sZUp]-mS^vϫkS3]^lUZԵwT+3֯(cVcǮ[Z񩕡]SnQlV--[S_S_^5n+~U3+K_kBnZ95OWX(G_<E,ܝ%IY[{%{9mO;0#sڳ%opĥ\|MmheR65eeV3Ml'M%юGWUo"8]-_#~\7hG,RK$ߤpڽhh6vУoC!GC6oϔ\ƹKs - %UƸpZKMwRHZ ¹m0UbMpkpsl bMPP:5L&Ǯ- 5 eznIAb3Y'+UT7CP'ﯴҪZ_+tt!nJ_;Ɩt-LQHiMVQ#Ȇ?p +H)zPEF\ְޕ4/\y!/A<0YyiDpW0:C#D;i Hj{#3&f,g0MRf$9IQcGZSNa_G<{hyyyCy_De 0'Rf2.5JU*9mѩ)*C>`F敬= .W}3* UW)}ɪqm)?hsV8OyӘ4ki`kpYb^*FNQ~]# +eB@eiq6^eҢ@JZtu-B8$-@ -RO8SKIVr?%\XrnX_P-ѩDdχZ aLW IW o:k6~ā*R:XQ As ~~{q +r!as@a=4, pX2`eBτ }QtjЎ~jqn$X{b50J`5,J{孰ddI@:I!U +=' I I KI#I@.L'E;| IپM cy`Zr؃Z}n5~!o ®aw`m hslG&o~} Q~~?q˗~ep~{m<5@i!D$5ׯg 0ZμzǑ7G,,^#C?(+y ?.-~\S^5+6SHgIأeS[^H+s_J-+_؞w 6YDZ)?#̬HcN?tX7]r_Xwj|ۭn7[-_q +[/@ofp~ [_FiF[W~l豇mpXIWv^Y\ ++_;вJ6`nU):rZŅ 9|d%J.C3YziɲO\Q["kJ.[iR%2Yn'i/+6XSb_X +-CȌ6MҮs ӚSDD}$TlZO=-ߥ/Z~͇"2q%iܬb +27/ qE|޼H"ǿl*5L~o^Xe^˺^EŹ^^wz[v?H͗f]jRt4;&|tdRblIo.x4e!?TiXyV-f4Hmƹ|?T?lqФgd#2laޑIdGrc91=#ADztR4L]+zAj ==qj?v DˍĦ(D,D0D'2"RtDLhLpLxLLLNt +y~_JX0Zʹ|ѷ|/3@{Kԗ}|+F\8#ҚFYFEM`ROIP%2M`RиxKн̌%tceF7;1vMl;70oSĈNJD&%"JIĤP`R*2)?')1%&9%4%4%4%5%:PfD'T,щsD +6%;PN$4%:aN#RDr#R((_ ؈ڈnEKlKlK#mK[˫31|__RtWNxY/ +r "'v>\C$_A=W:я6(Ww/߳MƯgx|tGį,O OOOO(O8O/ ///''' OYW?/ ik$ޝ>Ȕ'%&Uʶb., ːeB28Ld  /fpDU0ǣS֯gףxbWO~~`~~]P܁w̃~(is>w282Ʌ92&. PX88$@Ƅ -Ͳ-mGMqʗvb5|]&].B.(@΄ 5*I u QPRIБ0#iU1-m 64/uzB5k<}Uպ_G 7n7@X]K3v׿_6|9<-!`EW/{߭_{}ߝ}=q_T`ٯOc7  D_zs'ٓ#'7*Ks m񋔅15cFqy2HHTX%ୈs= y<ȤvyPƌr,d,TAu66J2jk˭k 66D (Ht:*Uꊳ +:Ha'MY.(jgqfu·zsbXSl}uhy8:_Fsidb{pS@<Y֋ ᭩%A6҆p# S:X&O5ܼVLC}{ŪV/!*H zV u vC(xD Q]6g=Nœ76Nv?M&?{V߲Gk>GtRʮG6Ɲ諾DoL9ʑ1[c +t e*~gXK_b[-_wlJvb1s#x}Ǟs\yMs咽YLSFaM46Y-ufTl+FX 9ƣu<բU3lЍZ<83ng8u9=uk3wALލq3l\6oOD3]6p^;s8,)[8u2 s +eY)D%JVqJϩӊO)W3ͩrVq/? rJyO>'Q>VhT٢S,s=#ڙ<9ɳJ4G>f5ƳT|eYО I$phFM R)T l賂d\#b&JZCaZ*#M+%䔣mu.׷Ӹ3t.-KlOFxْи_R^v>)H}֭f5g +^zkvå5}q[]l9; 9 Tnbq9=kAL?,#C}^LFHm:W{z?aHܰ"9eK|䮟cv;nl~y3.f5t:c? 7(_q͛qS;xQx$KLcJNĿV)m3ԇXQ O]QMzfxB776 `ocMA=bğw9N6V3p6¸ch]ԙDF f-s n]?:9ك_I 03HpDVm< 5ȺC 2@H" #9`JV09WNn^G6.J6 +7 S?NU6P>s\JiÄ[Ǡ 5 Yg!#3D/]qޗȈ5dA+( ,,eK27ص}.+Rwz×;F#˴RHCM~1k#2[ر&^"tx /2n0g%qn#11 1;3"][YF3\{$ԅ6EX[YLz:Si%H-yHy1TV4n5~ܔ:{4T W)][~n Z,Y6?))4h pv 6O6p pe$XY~n-&qffݬ\˄QġSSjz?;Buu(" v۞OB81>` -] |l/{f,%Sm #/`wlDŽGd.d)=9׵p$U,4hQ b'6a\hɕizeiV?꛸Uuk."ލ4*0&׳l`6v}ɀ'dlX>N&^iAke,pa +"<`y~$7K6a"<=*'0j>`J)A9VB\ҷWXܰ`eeyy~ ? N9|jMV~de7 G{QM(^s@uA* Lq`ԿFƛ}:4jN\ $zogȀIjRlf?O`p _r߾s:@S} x&W3<_vT̝HV$Q〞Gs1Q 4A<&`8$D9nl R}z}ˡ~Axs6b/19P fNg H2WOl3J9mQ MB:'bBA}S4UDyX .{L&Qcx +;ta#Q2rmZ/iHX[yzJOd O>XQOHVSJN2NLE/!]_~sGNd8 Bɴwmw[I㧈$,ޣLyaD:l~Kїp=z,Kx,ԉJ 6+I݄yvn̠iV Sd%;ڱĽ)ii+h=GW;z _ީQ ¡l6msSТډ[#Xyc%Mja>]^'Zp͵\fr[x}'whjΥJ(ͦܪoŒu+|ll*'<"M2O +t-$h|Aѭ*P>4(]qݠ?|QJYVp?H5\J/1J&ݨ9NXB,ة2;22=ĈYTaGc!@!Tq6آ:$P 6ݠgNNd Yo |R~K9Km sKܭb?>#oJ-GI]`ِKd,Dx2i=iWG?w`͖!ΰimpNz-i^>>%D80.= +:Ʌ2x7j5kɅ8[D^+xs9brc0X&{#NןWڷ`+Ɖ=\?Uxy;-DSr\="DE?{əm0ܨs h}h¬V a΃Sy2鍄d~VZJClZhuUl\0g1 N݃}<"atd'WL3IM5,%qwrD߮`j n%%mdId0"ie`%Оaܛz5T?gWނͪ.7?ӎYuy.+| O~B, -ƴ43<9SMk 4I=i~c;Q}/`#Ut@G5FK?"ma$f2 #ceFbJ#$vT +O2V< +$?SIk-IJou=0f< Y98< +?0ґhD8;,4ڄ<-Y܎./BN&lpd38:ts8dKR@e>L;E BI%IlH3 {x~f]`aC<ƎkTҐyk+҂`4 [bt<(ƚE +ꏭqYq\)$de ƻ \ tRu"5|UnýRfڭ:bT(k)S#!*0\̨lnZz1")(W({HAxad(?oJ{:^lK A% y1(mPnvR7 !rj9L&8jE&61S]jzϙ,5*hʞq-凉:oLi{MIL" $ai $ߘK־@BCmKCU#yi:E +tIdZ6Lv Di|R,KD"B#\HZQfYWK}M}6"}CS}U̟.l dɎvXZi12L;1 "g6S\#ޞy@114-8 +ntS*tnS yS0`&`&.G 18G1ƿS10cy'V0PtoE.c?ĘD;3QA!c79tvIrd.FjIgI0bҳUqqFB,h4U#nHI1 GnY)2RfoF%ML`xftk+IR!~lGiO1nN.9Ku}#BuC¼|+vr/ʟLJ,U9{jM/;XeGquӗY-ؿ9 ̺= XzfԾB;성h +k=L%~})aH芞y +XɅ0[u^ hF\ ,Q A^obh Pb,eeQP/AaZ!>tx|`{Yt1ӵ0&G7j2($6t3[v }3kR rǡ|*24KOEl'1S,BmӚm'z%9㘥PgP2kUݱ4FoZmvFiZw|V[ҹ:s:s.+Jewح`)Ap"uns„%wf=zMut fNYE6ȸ!@)!V[S{[пSkIl+X^OdITu%)?GN'#HB@ R>,(4C#C /*{l_Ie^ϱc7i[^"][Jj1/q橭/0T[DK 4VL_K Qck`!/Whq{ ޜzf^} 9l\sm6) ?u^OTgO boʇ@ -n N;ۣy:ɌXz[6q1աFDpe ^¡cAj+ + Y%5.(( B4D]ic)3W"!b 'pSS Y,ڐ 2fm|ÒQ"H6EY /DrKiG"-aSA D#|A F@[#V!c`"eD5K+l@{̳02 &8`k z,"+HLBJx2zX*+,`ٜa #Nv!3 :rY&A džiAƆuL@hgH?1bF׮c=tSj+6vu,'Z+; s жaUAP{:s'C؂y `SR}HXhvH%DA$>dB PFΣckF5ro-Y [lj ~-4׿jNc4RL +wM&ޖ?-"rB'a=E[BKO /}LTy1t\ba;8B +\_ZK]@mWJ/)s3 j*J\:L*mM5Mr)[ۨ e2OTLjɫٽzTL\={i+A531턻  28%v&5{==5苓KFKB t$[JE>,ㆩODL(=&2&e{wN^GG ָ<{a"pص,"P֮/>"Rta9,|YÈ|7tM ]E$[5FWrqxXΑ2m˅DK"J[).zY9Qzf&K[[]u홉:_bC))4eplEOP|im||Y~|qրMX=jZ += mєڳb=GOCIEYEMAMSsPOpǿpj=[㙁R5_7 Cϟ-FY!qi,橥l5|2 @! >WI 6-ث6Rӫ.ozXٛŚY_b G/!cJV@eTLOwF0ЇdqHޫ [$Yv"K_RI74w ٷ?캟빎;1֖pHK Jqkr21ϴ{șȥ[7`H=M-;"KӨٸM] d+ZjrZJ+KB-coƘk;9rwI4A׼-<D߸?t@__ Ƿ ;@*.$CF)fv^G]Cwv<5KU>?uWxc%OiS7釳zD_.p1T_鋺w4 `%a:A&>oj-X\9OȢhNeoiv\&jM7(l [0<ѭ Cw,CNr'?Cy#X!L?uriTgsmxP} Hozۥ~DE'׍Aц97{)?tϛ@f̒yrzщ +7sSgTg֣M0K-fK7+tvَ$˽f>"n&(nB c&I*t- .\2.~+|'N2F nK7>1!f,:L!tˬ*s~ht5#+o~28Z⻜d+4OXEc=->NJ0y ker^@lYpO0Aw.? +fFt#/-¨P:>t7-ĽCqF z&xZ) FIqjQ R +2ʳh)1FNcjm&]tzZ8U(V)OɽA747>\zPh +U a-4zKr(1'Nr{h2 _Qp<8Mrt2FIlx3(2!1$y;i+'+_P?õ .P?fyU uII$ҌMXYdMMM/$2 q+Yet5vq!fk^5=_t䔽AI7ܥ˸{.zm#38E0C^ ?@aS(:Jd  .PNQ>2e)[ ;akjuorx^4E)\ҧ&&+ο7:ey$l}{!jd#Y f*)%oR]!o.5iJh3!KfS/':P-GSq:Ӹh 50n͖!4.z$Q J~d +^A"4 QSYr#j +7l17~W{ Tހ;,ܳiN1':I^LL:̰)ZZML&{YȎ#Ko= +[`6 T`J?9!P "G͇n +EkW P& ʜɰ"| ݗ^E3fG@+{[6Pf)aԉ7_U#\xM77HyǨ\ɫb$yy54bGO!$rh}UMIXcų̀i ^T aoV/jG7M^X%ݬ&&Lmkd5>'@[CK.$KDom#"%k $=`?T*k0w0(Ӹ XWx隚dPAƨ~`E¤QH xs-f!|ry +x\kRmFs,zW8h6-Y-eHR;ω\΀mr=h!憠z^AM(3لBx\QPBQ.TbiIJPO{ȗ@d&}PѶD/e{QU?m5dgq#mV;aLfVųISxt]%=/wc=uET0%L3ٛVy٧3uLv_'if&י%8p0a&_C;Hts,c"Cl>p py #%ҏ޴ip\ ?Dy)̠ UWz-a#{ 65m:$|3ƽ*|ASn]SGB]pOqj}0dncԥɺZ?P&5#FWD]cb(ˍ\@ʌua=PZ7r(IUYRtLR߹ĽHkh=#xGYO *qcƓ\g ѥzv41cnYӖm}iD6_R=;Zj +s{/l|\y襣#|#Iįb^^SǓ2%SoWNJw2KY,J߅l܅rBYz6\q &7fS+SFIps h6DjN1mt+idu`w}\&7>m-*~6$el%lF dysq'QH)Ey%h+ P-Ůx"L#$fI0ʀ0.8?GNPrI|a\-ui +]qN +>-ŀ L"gKY8G-YIaVT0Xzb^b\|q'Q}QAM\μ̋!*YbЃ +6_D!ÄN%,>Yߥdp_ }t{Km}s/+HO$H7ɔI.Ho6K%ULz!9$x/2e`7&m eHZa.V9bH!{1Tn$V7QI*!n&V@peyle47gAZivϬIE֩'uD-n;1چnky[ya_[}m6o73*{-t9c[5!en\)7pQ.gÅ(%dRNhҖ ǭwԓ=F%r Ғd,[@5C5J<,U1k @$8Le*LQK8(PIXxO%`XpS%C }qx̔0+> ct[x7O8W(9ȷי,On/an-D.%EI I̧+Ao+.HK$Qsfw݄f[mö_Ԟ]RđSp cp 80oBmЕ }LQoFЍ+׌`Ӻ0=O( +.vEW2*Tp\l,;|\;L[P]Q܎sϋto''P=x!RgX)+j+_װ'48ٻ_,ۜ{xE^Z⾪ʪb+VJpoխv Nřqk_y4gdaRي^xԵ$ֵ:L=xցeU'pс81/,;rsABc|@#yf)6F`h8 wqu‘Gl#X(Y@xqA/!Cj'ՏY +^\̏LQ.<ʠTNa3mvFcL$c%F!g߉ՆlB z9s97DnJ=0.}oum1=}hFm`8}<3ܲ-g&])pz5^v-"d-yBy:q@&`e_#!}#F͡Ԡᄁ _M@9i>&(hOUx=Bp㕜ğgo[b#Τ '$B{{ FqYu̖WG 3f\f|ge ;P~ͩ poߤ`x_Kd_8boG,,UPY~Xg479pr @41u2w9fh+/ AKAE8r+C)#jn6g7~Yt>αݾ54B|+sCTekk(WH_˧){ fsZ?g~.=Y8+Co*g|v@߲$rV2B.7`tc`qbe +`f{mk0yftѝD"ۥ0[gD~GI0^%^6XўM| nCzY0[GC2+6|#2&2B8o[5 ]emB|u.5$|'(Qjhg_Vm4B3gDlJW`rܕՏ#àkj7pdymڪW$r.)K0o%EfepžϏFgOx4v^Q9x4;/ꘈ4|^!R:o&ߞ%w$_GgFt.-;ds P !j|6|^i^l0ܸ jwQ; +N j{VRX@|ސi(-F-qgRׅ87PPv!K.iRfk`55gjqfO7P;C5ݏ x5 Ÿi궠P/ 4uAT ";V!c!2Ο_|K'{}!6;a3ViPnKךNY0T(MU("5LUH*Z]i-WF / *u +Jx'9u7r~4\& NAkhIEzfU-?ѡ-)b(pgo̗lWcüi? +&nh%.v1}Kܰ\˪nKqP%T4+ »! "t_ ES8ƧAkG +zġΆh|*W.ZІz^X=ALHFYȟkaNxBc +%7ъ`Q誽~gD?}47]rو% W{bs_ggtlѣ6lL9b,[x;*vMX;b"b8EvL6K' Jbׇ=M.ΙFhM7uMna_DU8c#&%g et!wF"ߖF:H&#="/xP9v4q8c;TD@'ʞ o}ekvD,] +d(kuc0{#a҂HRk]L#iM 2E?xܭ;B CP +5).E0h +xS5LbXX‹}VJ7B%[i֗!#HVnC}[`,,uZAYCXhXM[ZaS:i8o;.@unTJZ?*oO|~,Aï{)׌#>*,VF !K;d HG`"fk_DՒBÁO{i(*h3 83 爻;^ ~ghwUw<;µ1KL=vbGaQ2]p:Yr8F3,Gf10oz@WBRO}0يܒV20[))4R~RWũ"V||IME5˿`ɉ ,Et@:tjm7of F8ws@S.4PUV`\Aim,E RQN(C~tu"'D!(+FNyFlպC:Xg5R^~D':=]#KD6jLˈt&s9x S9b!9H@4A]ҧ3.ラ#ζͩΙcƔ4Y$ޱPL:RMz@#%tYΞـ|r-ʖ퀍>6`6珫[0BP aK 5IAk8wDJ9kѳ ݙ6c2s0<~o>pZ@wGgq}jBVYoTY?`X Xa-yo\_xa~FWC遃g7a|0//_"`k'&e\+^Hz,"Y%YQΟ=L5d}ad0ByUu{sY7972*NHf\#46GPF\Wpog ,OcXcE/X?=+OFx=F|f@1C8C#!X?P~Bp0o?Ȳ4Co?#LTL#gd?N!<ҖNdq(ƈb&8$5imxش %ϠqώBzr$9>jkM(t].hJ"Y!,s&YӠ6WWf _d ݪMџKb:{IPHʛhLF.'_aeSoTBWEWVV1l#C%HY)ȡ/>z q뜹ʃ77Dۂj{3ή+-+aK#ʓMi|fftn:糘_S2i).ߨcaPmEW;4!YYֽܷM7֌o0a7UEs^y&KHe)w[zҸda +G}=fCd(Pm{1qĽpJbpk񻴔-DT|OK=2Dy ݯ݀aԴݛށ&2` I%:aQ.]  +<6Z WSonr/I$\(uwImx?Ken4h!a+)r᧫Q?pJ?ey|G-fe{l͊#)Y@8O)wb'зJx` !J\=zz…?6ɝ>A4#^@* f7fWWAP"_tbYZja݄ 7:GIK[F 5_" vmcnÃ0zD{UVAX*%ߗ<@{x4֦S9e#ʧ?u!JwL8넡w"U)\e`}c,kAXj&XkGQy#CT }6oHHOW.FoF$KVՀj!H@f3 +x2zFo>)D!'hKABcMAbe#m+jmKe&E}M+]_q,>ٖo6 ϒ=N=%udlΆ+WPD>{=dٚ't U` n#Qhm@!Fp6ad6ܐ`Qޚ o@r/*4]@uU´ZVI*ZiZ%IlK! Xldr;ll!/몍ğ>E 8 [h*; R:-Os/<ҙ%^nh“#R0ې6젘?䍄pD1?t“"9̻kl/k[Y}#o}wUǪHjвUL &ƓҙR 3hl2J2T4ؓ,X#X*:)IjFhldL4 <e̢lRor:&s"cPIN8"@Vޅl(n`EB"}\D/&1qH߯…}hӨ*_B5/l..I=6bl+ ~6 NDYPM wݥN9b+aj%d6Bkf.[Cns0g-،&Pv +ۦЇRO#1514fiFٍ{e ++yU2heA<&h &U.ZSkeC+m0I&,d +#Ue޶$a<ц|md>ׁH7/c i.McA@WS7t׭.]RhЧCQQq@V7}^]](+ 7a]k/ 5acZ;pU%. +^(Kxϼ|+*UCLm</ +gU7ڦƨUE7m[:TtU7] zeE\b2];`T.ݞ@\ҋZ]rۋvi v @WzJԾLeN#'ʭJ,j/`0JK+0(M$pNjѬ kn"X,9rauq)2T0sۦ޶KrV6 +R6*FM + 9c~M >9 twOd"UTySۺME׼զ8&md@ݽH,Po-P-D?#ˠ4# Y+<R ̍mfUAA +֡ -̹Bu0U zukpdnLm Mf+4_UĶ>IJ;wfn`"CL  0NPL3 Y 4np<ȋ|\='[!⫵z\m_JĀIQCVep5wg\N;ҀM'fcֈ([jE[|b +CU"t,["#~p4b1eϟ]6'[Ge&djҞk+뺳0m e[) XO M"h'r <("$IRz~T)|tgp{f6tmSS\{l!\ϛR0wtlNXDN] ba( : TPt}Veci({؊˰Q5@whCwE:SRp˾<.j{1#y7mgδ'ҹ=)%^cPIx9GA KS3f Ekyy܌).;߹BR兞80#32c]Le̅8hY "wA#<itm|Xk]G vUI{@}(\Y/s+4|aV5 9&~.pjJ`jN:-w#ʠhRЃӼ)O< ZW#\Ok pP@ GۭkQOM_B; J~pǓBA?M7tIQcI¸w|oi5ä#-Ul* b]u{CߡU_Xk}y޼YGR_. 5,WFxe4N󉢏m۶mm۶m۶m۶qݻ:ܪLMgt2t:$?޽j'>X uC-n}6]US$,;ی\Li烋4̏՝P/e_p'8lvݾ|g>ЏS3b|zڋe>jTC1PR{Tr7@-u GԵs~dw14 "MA$GijPhŖ?G<]$/Wε:Jw.~My$b?t.n,"sX~\#G 54?T-hyXRfs([{(Ղhymbxt7sWy\C7@x"%oo[Z{ X358>٫,QQW1ݸ6u$\oZjǘ ) LsLagJm"G)laYna*VTHEc: +7rAQQ{`:|=heaʹ{{nKZ}ʹ8rT@qFT3^|8CO;^qIˠ!Vf,>#I3q01?V3 37W7nN/@1F_CpsLlMXv1,%NjYw]vߞ}hf*-N5>m/)Ni鱅=Hmz3Kfe`>&u d^n\(nǑ.j2߬ +&f1K8\:YsHlD.^'u-ofΗ=HeVYiӱ4HLRp 8ܛpthZ9J3K/a&U +"d{2α~´< ʚ=jv +*5eXkcq`0f2u%9nk6кuFa{UyXeS-(P׿G)~Ýv/mmˣ>rg:ڧ Ӎ}QȼŌImce5I(]]}I.`Lo6oψ~ rg.2>8g2pGUT!gɮHJ1tmn#X +'muծv*ehm[c0Ŕ~u2nFN2A}4Tbz7wZMGZ ,URKn(TQ% +٤]l%0陽ݐΥ+w {YcQ{j(`FEXf';c܀"ÚW(U Eߗ?utҔ͟"_wd ? 84xsy.CC$9;榌cx͸Z+aՋbJPp4Š8uO#9c>X2ZFa&D +BH҂`xR|Ad]Y;.,!0#el;⅒ ݑʞT@ Մ?)RY!vr+X8XI9*V cj Wѹp yECN)z8*>%m0ӊ[a9i `UK:X_ ]~;]  r\~ϊGr/,3G2cH +ّ!BӢhe'GKaC@$݁]Xmg!B|V'N ɒzh^3kQ]1+\gx087Eʍڍ} =lb)8HoI/ +#qWkYMuA!mK3ĽU/r*Aȕʎ箺K^q&k֒[Z#dsVq3(TXsCcs͓L_|`ʓ|S+(fWIe,Uj,3fVX-E yO M]nX y356!MڨoZ9tr@.^)\}2+@Yz>QOԍpWo5\ڼ./~/6횢l+vߞ7m%w0: P;J} +^=BvD|b W)@%ĺK[%,kX5^:=_*tJi𫒃/}QOչ{+$m{kxk;@`;o-gg?Qb5|LR[蘒b#Pu29P 6 +$|R3>^"TV1K,l󑊰E)0nW=TybUu- Tp|$Vjv:[DU2x{P'͓37UnE,4k)D/{v"чV)$Za~IN -4R2CQ1A ya,ER*#<ֺ1H +mzI1oDD/~I5X{nD]\k|zSqH~W1IjFŪwde2мt%iiܮx+" `37@(X6=_4Ѥ14dF3c4sFCW-lߵ' `Ue{{;Gga;{ G#g DJY +Ycxg3u򥈌ucVM0UB|"^n:t[AY2 +<` t-inCC( 6q2C=((7V5|j+gk۵}*~84pA_ޕY4ѮMTرkg L; w[>qNJ,)$Lyi iANZ]&c&I8j6f~ų(o1T-wP62rRQyѲ>I9dLa6h@u%~ТNQ8[v@ + jW$j}-6䰨պR=w G<)oTvB]rس\`~ckА!LJdNUu$$}hLop|.e`{t [[<|) gPwpfvY"׶ ?@+0ㅵj;Fr̞M +u+ n %b]قYܝ;9qԘS&LH̖Q;T83M#* ^@0\WжuaD]X#HxpPdyA=4~h z[)!^%V1ax~v!5G~1zԢKhUuv"^L7pEaP\{g]&Io33g`P(p$ !D Ct43UɋMJ(5$* +(ˍmfUKk׎ۚ1IǜGݟnh!5y:x|w9i73De};*tdx)Otژ9>j?<&<| 1/d%Q\8ʌoΕ0!l'2 zUw4u ǂDө1G-q'ZJo^zIUlm8Rwsʜ%&|4ol8T *ʷe.%K|5T ۘU焴0ɤ)92Y"i L4-oE46#@>ˢz9Ĝ`zv-Q1Q6#٩(]i!&NM[(NOG\Pd(F !; N٣RUq D!aݙVY֘ d:!mHrîK"I}l9] {BV]A3D&"E,bjsfmH頂HUEf4`0/,H(S{BemKi{軝 (![Y1CQ +ZrD5ɤڲDt %?/VĈ/y,X6fׂ 챟JiUWL_E[ a萔srMiqRA +Y얳m6hq;]B{z{0P[l،'uY4CrE+d^ݦvc$;bZUMg9[$LyoZ5 !C!AC3OO|܆;mbjjo5JWy53$WA;OPBDZ.DM]V'h +.?|L/y['e"$ l9:Vc^` Ic0y:\~fGH2\u5r?IoVu䖗$4;au'J&՚'aa8iRlBM!pd#`;ϥ}eb:+ח~6 qOК[/XPZ 6)if"<. A`O +-o=p`%X~{H*d#+ofK_u(C (M`]B\q3Vaj,PR39k<* 2hGD12mZi> sb5=eZN:pR Q<`j2,QvM@" v +mtJ ZMeBiBôVn9gm&v.Q"P@i{7, 990"gRRufjX^&6AZTojڈ<;ҝ 8_\ < 31<`"b>'!٧8fcw`4+8@ap4=7ʀ`}kINK1 +>_nmRc>q sj]O.Ϯ oXvvXl`{+ߕvhC.F'UB+2cUɪEH* +F1 s:Ҕk.S=:F;PLghIG#Eާ4ir>DHo,؎;g -؎TjY*=ݮX2+XoݽMHYE[l[ g)9i7 ++CeC3ޞgl3:8Ѕ-0~؎0.Md;Ǽ|99ߦpp?1ynx~EQ>F +|Ps9p輾feg`.Ijwo6DK\[d+-XP8d~WR]\8 |\O ('3HG"ɢ%ؐ.Tù($r=s7tA1O^ ἢg2ILgkP{^4~Zjue/p*Ճi*pK&BgxJ 6 -ej^k9FNYN꥽v`|3/sSڴ:Oۙ]fDoLI̘g(ixVfȑxF ' Djmϲx(۳j铸充OhIHrɝ\pxmU0sm%ssv[eJ Q5>pPpO}ٳJJ"q|wш\0P z:܃q_)Wnݱ`6nLRqn\AujKŀҰ w,I^8/actgLFt)*+ڱx|ߪ0$y1P(^ uT.t5R"VTMޙc(F/|_aoC$]uKM4gh@ut)nXExuC̀A42.z̃Mr0qn@3)Q5+[Ped5a`[Lj0<ˁFw'l[]5%lt_H-VxaH>S +LҔhft + dU9}#^qGZP@"qDn;Ofق##GXzw⺯X}>ڣ/Fabcc # +C⎱x&-is +E[S6SY8WR-bD<-8ތ=//a]vpU ツ;I4 !\0>a #d&[3N+Y\HFS-A`qC6^}"XH=SlԜOfAt\+ ;x?|OqVjT.+(-.E?x\OUL?#ZH +kA):*uH?]X]F/'[keݫkVZ.#,KM SUL *s>l,@;!V*}\i0ncqS]}Gzc(Fac J^!+r H{U=A7+#7>ק>kj7+a-y7gb_+|Qu|1-޵?s橯3+X7!)3E _BMqACP3XA{AXcd yob G0t*G8ά/tšc=nt\lsP; v2Kj- ȥ2LuAbݰR0CTp:K`Gj05bgxfXnjyN̷/{sc wQ|v@MN_7[N?*]5Bʹ(oY +WLŠFމbNCJu(m@#̦2k3Zʿ~EI + q"Em\ mb+8$ÕeEFEbaY\^i[;fM=IeFm~VRKlH5x{諬qt3{@ƧI2c +@d (8Ha@d0dԷ7ShuihSSԠ!AlPض|^vgx$n}8A Q|g8p񝅙~A +cc? ]VݯPƍC; uOo.; /A}ߵ 0=zoH1~}O;.D)0= 0raKX=^3o!<#(`oMDaE6‚,ԑ6 +TB% +IHf*P1;ʀ1C#r1T}}FC8Z jTYVax cFlb 01JXtuEG +}ca lCr9b!j/ )$T`ѩc)ۖq r-ձ! +Ⱦ2tl,e8DO4zƗ'On0C7I50FԐ#-꩝#/*F&\pFO1 =+`}k&t} 1"D+XxTIZɉ}W2VZ|[X{0\ 0禡@;/9kćEYEtWzK(]-N"ûL pemQ|%lKV- +^}Z9:c"hB؇;Ye5 jve`VAi C4+r&xg7x)}ar'݄g).4ދ 5xFjj챫Iӊ}*xYsJAyf2`(5V.cBm ŕ^@"brKK)BF1ts8ZP9?G6Ht +Vex]EgUb**6=IE 1P +%4X<[:YF7x ѱK+lw=U`Ԧ 5˗JX1I +`3GJyIfot[CeMF~:MRlRw0DI-gpj=+C0sȍ.۩xL[ "ٜ֡2Yx\JԖM \3:L>8 t&&zWV$ AbE@Fyyʡd W[ſYD&mCSחG{r+k%a*ҥ :<GEDmfuP$)3Q]gMMq~gW ZfDjTDYO[:im + ٯڪ.m _}(d]TX䪴$fBVؕ|^*!A3q1\e`Qs e(W*bi{۟BTaz +("F."-8\m,hI"NꋤYHE6И%I6À Oe~D#GU݌eMކZ}m1I^L2!xRs=M m4,>&gN-ǘ6/ ?Jf7@ʤ |#TQY4q+Bӛ鍙M7(5i MJS[m#5H{`JD%n-n,$f`f) mc\;R[ADfIS׶; BO (_édXq<v-So9?0:m>B%?yodyV$soÒ l/$$+fPڛQ+ ]ւZXUyb;Jt ńDشP6XE 唽`xhPA_}ga7]=G>?+DE>?+KgEEe +g[Y#ʚgVxduZt7CS.[aΔ}I +z>k\8#:!\b !wQty5dots +Dzl-;N5s<`- E9$>JAB󴏽q[\ؚU3ŝVs@g9a%$- +WF]NDzh;uGH;dDP;`@7~ßeWXBcoJ [4W,bmr gߑ'6nsg9rk;j;aմgC/kAHe|MzuQz;7/_4󥱥7WF5۝:䒙#1 <^V2DB:E_iFV= ?xsoK֧iO2[|7:1N*S"Y8,ۤxyJGA_-f4 ;L`[9y>LzKTCߠKmr W>VU/YĵrH5$"u2aR"B/IDJ\eh%RyVc'1L!Ly=g+ֳP4(Ua +ۧ=Nв iأy\aJ 9 -Y;bֲ2;\DnbjhTk6֖q@7Hwou ;]v_|VZ-TUރ6Ndy [4e~nyX76yr-Xr=gUeg~HOUh_maZG 6 +QWq%?A1A73as-*7j۱5 9D)4ē2!N3UYTkUXToU$+5s3XC,u,u,䐙kmno5x'b9:n1%k-ք RXdpɁrڔMs*l 0u98Vw Jc` F7 +AH62(Ngn1L :ل( 6-QT2VRVOWⓘX3BhN(lG0Zh^*;J *Ž&6aE +Fv D1dQ=Tz]2iQBKJ:ܭ]p!2Y!9"6X44Zud6?1fcK7AAS>?G*Ta|/!ZSD'mv(š01 +W&ϲщ*ފ)f]=dm`b%kim‹[v`Ag_<0' [[k{U9D-qql ˾ 9Ǣة9{BBrBr_sRTyc¥$u1e> +.MUVԝ+HOpC7̥рcݴlHL8Y-tG&YmzV$[(u{]SM>ī˅d_K+3Z70*%&όksb TI6t +E36mz a-mPCq=aF+cy)c_IVJםNgkC,L4σvdiSXwpQdw +M\=EQZ2G%^ ݀ی]2ڰHhT<2ǝ\7p6Kj.5x]0IԽmPhN]%۠ }Ӊ~58dBʾ Uha=ڠ +lm}UgN=}t c!c' : dN?Lڄc +n $wo$ULi:J׆i@ՀJ-wK0a$^.bр_7M7.$I,v0vhMY [ -HoM=Yn8$,g/ ,Oti҂K%M$,:Y[el1D%ZR+SM+ X@Z6$+lO6Q>$c+#cxa˽E2YSoWqeg_KqfXA!qL괓i$Մ^B=Hu%V#V=\_P=^oPF&xA% +U'PkY(:vZaB%̹AV:QWgrS"̌1Pw>Oc QJsUӶrZnђlS׉GAMfc`c&UaqC7ezYLc|ڶ_3NumRѾ6wN!M < <2 ;þy +iU %mUQڰBi;Ӌd{=<7aE kf]5u +i"Is 8X nCz|Qdćg~dzQ*_:a^",diέ[5i ~ٰȫڏ@_Vd=D֝~lz;F)]4Xi-88gF`8v&,%6VhJvy?6 4TAL_d-Cяց"j=o3ĂFo,5YʕXӪr.f0aAct΋Wx`92Ѷ~lv+څK'|)̭\R,&+CH&m+˴H=L(Y^(2z>Uҋ~/-j]ɧA/o|S'}ɯG| 02iX +( +D W}>?_V1EȲ!o5s0aSLl6MĆu6sy x+oxJ &oOAطD[phnk_~Tk`;pY%F֎e MHUXdL0߱ +$ +H( +L@ѓ6Czf=*I$Ȓ h79Dj5ZL5|pNzЀF0i\uFfUզu/6vs1[` ݥx]1_bg2#Z8ԳDŲ]v⭮yChkyN=*n4DmIysc>1R0::)BS7"_kX DVx8n]c+ rA)U3nS v+}ň O=)AXOQZ~%#u@G*d'웺wǕHU V]>JQ wK"Y_ p{tH}9$qYS~k>;mwOAb?D9er$wd48U0N> 3?N?X2R٢3 vP& 'Y[>t"rNݼݸkfWLsBȷwi߼ż$tXgVL2C6s ؽYb~|J) +vş88fXO4p1=[HE$GZ6mto$s‡N{]48ӽUa4sWm-p0RKv9dQ09WT)N8DR[ZhE-{L4Pd7nǵFѮ' Pg*UYήWXpwf4,{P@CG}[i֝&ioq;_ó6 8Z1ұ M]w] ?FUW,@Te2fy/@) <  L@i(BHi`N{6mljɝni-RΈ'f +yǘgob~cnjli3YA 3ClxlU9Bpr% M TäuMbSwN\{`Y6θCƬ[w>%x^ZM4mW|T/n}[xm!e#{0\̂DDۡ1fb9{<7S$f3?(Ļi\9?r?߼c72LRʿ/& MePb%Z@{>*w5> w%EE8C=(÷p뱊a6cWħ?lcdz;@y W;ƈ԰rrsY_|?};_0w6Фc7$;r<> 6nßoރ0<he_lgG!k;#+)Aa6%*+)f$ެ 0I$bL @#H`d-+tV7i5h6%Z  +Z[W-Z;7U]]+g=vzdn~wosg^|ts=o +Q} +)}UPr4HQo`IA[${&R3v +%1_2~SAkai{8*gʸSJA1oEV\".Q*X33Eާ@F47juԇiG1)j** (@|>vΆ0+v$h@z5s0ZZH`ZLmTkeZ["(Z0(}ST-hd;bxf%WV1ϸøN]6l4|.7\#8P'0 #>nC[Cawu}<зN<췪1``l3x#^40W7UXV8Pask@/ `. +A%l8O+n<_7P/8-hDE8Pa +xGqOa^O|r.l0{#ڰm(7(0t8Ogh#!c~CsqX6NYN1.JI#B/"#I-0QWj d +@Zr!B%t(դTTQƙv,;\Uu\}wiC;ƌ>"HR5B Gh kSӶz}rRQ BJ祊Ԙ>R0;xU$qKO.$ S0AckAƺeJ#wYpq-mJ COd/W68y GRWK\V$eW"5X˨ ''.x +#AH6b}{"^)mM ƠTWQUt'q&7pO'Ķ̡}9BaNGZB`ĵD^_iAϧQ]RrpJQS$',U&ZO$̓c#2$g+:6K9,JșXDS d ;(@15qQx 5FHmrXXtQMukB*_`fnrLAd̍j+k]dBzvpu,zBoyܜ IC m `ؒ1ppx0q ]NеMYtgJݧM DLuWx̍eJ|QwcN#(w+p u?Xpp#Քg*9G^UFYxMI_ӚbDQE4XJfpKL>+qT6&tԭ{, ߼[>+4o`Ҟ;=*4oh[5hn⑽RrN +NyyۗR)'6 [(k]/ʞ9ح>>/Pxٷ7gy?I@D ,/`ҝW7H;Jb|'tox{b`A%x,So.v^ Q!Q]J_P0UZHe{s;rU_>0wH9bP2t?ċ._$Z V1JȊ=|LJihW8Tw dZLeT9=&O{W!%˻"9uݔh_bbxOooo*k^[6P@F!_nh?%u!8{s~|k=QhƳGoN\w~){ cHh J;r`(. %Q%@¿BҚ;*R*L"~l,5ɦůI# wQf]wIj;׹4O ָUZTikL}^u UtH,q~V)0j-=TsiA[SJqC3jv O&KFC5F!j^JQ1Cd[K,J6S_֎+'}dUÁA(8#@K{4ge-$$gAxҦgp[pJȠ*Te~ŷZ7G)k*dls/ubO+ZMi I'ߊ9 \M1K 2:DL%^CeUZC ̡\]Ox2w$* o{2VR,78ךAgd>HAD;@w(1U$ʽ@*WƉ+Ƙ'ͨ IM2S-2K@=^J`Vj=P]X%yI|dxa❫<,DwVQ0,?R=KWځl؅m_25&wIG ]y/H-˧U\X9%Q١tOh"_X |@jqHs}5:' 4\JfjCrP A⺬z7 !!im3jBfȟh兔82  +,2M `*h{IXL woXxRAk(! RX.e˜}栠3̭D87ɠVy\75ݙ g7hk$͹fҀoDsDw/5v4`C B&m y@1 %!%O[az4x03y 9"n ՋzŴC?$yMNm0G>o障\zs XZ3W$sJ ުP@(gX&;k"Il ΛHWkLtԗ:dkx@ ݟEi+ 7,:gIea6&=U:(Kn`Gk +gGnܻcjcGlnߠNߨgM[`뢪wVbYLX1 X" ;:TwTwս>gս,'t@szr{6GMv3H9ȅe8l쌾a0h޳ZY~I0"uLg˚DOD\٢6 𤏸mH93e~-i<&G5yۅ݊ g+R!e}=iO]!]榚mkA))oP9%hZJ||Pϯ!jׯ`o/ $\:=p};d? 7q,O[y|4d$KN +lM(Ѽ3H oMIL`I?ڏɀ"_=߽g^Rx &N񂕜H *VZƹE0 +J7`etʓ0/Kk<3o +Ày!9q^C$;X|8fZ5jqIPX$,cvb"-1nmlY9 a AI#$w_uS`ORRR\Pw:~W5\+ܛ8;z}j'0_i6ò.վH[Bí(A\|@nϔn):_Jj1ɒkZq1-]iqMݎ+ƹ̥TpEۂܾ9]Mچ|ISOفUY U8-y-5*1Xzh\ݺG'V0xDHψjqbOtW~@X ˑ^=3x!9,>L0#i!*&m&S/Z)mzAzQʏ0mɐz:|wVBUY`.GШj0JϏ"\r.?45K{nOs%~Q6/"n + juwuPx4M h6\2V "uDX΂OP{1J)k>27R!0 lJc>{LhY5$IoBK,_P"+."|mlŒ}z?QуA* $ܤ眖i4(z\$cT%ڂJ"~ڽ n6XMAg$zK&8Riْj$%I`C2ՐH:fpe}2?Vv{μ/ |3+ˊKUKݍ{)$йb"Y3WElNJt||,1@֨7:}G6],`p2e@si~^]s&4Pu)}z#C6yP+0~y۞/|:4F-#;TF!Z(~xw3~Jb]|cÌBSQ ʐ̦4 s3]TN. 6` -MA=-u7󋺽Teq6qy7W ,0?DxZ"؍rK_MO`oW6Y[ywvH/ +, Dip($P`9,8I$#ۨHsφB#[ +) {EEjͦM'E_-IY BZ=:00ý +%;K.azM6CnٱTP;ap{5͙1fjDL7 Nv(!)tF#/QR*f*Io ѡp]!5a(t7:Ɂͷ0}Z!6Zš6aXmE. NH-^۽ٯ鈟ƻ<2?%??2_1(Ԍ] FL!DžkӞ Ng%5qΌ,TkFʜ3P +4=$ЍK2hdJ&Mi楒6 G-lb.Y*\)s]Jǎ_$oXR'NrbgM澔uB. *oUv<^ 8NMH*M D~1x)%YC⮩ȢY"XQo"Ud5RL'Y$MZĈY1Ns>v|EtU3ؒ(BÇcTrV\bH:_θrOI&_ӊFCۯVHĈ +X՗Έ5k~瓩ʮIOIo_W`|mwX Asd.R5(X+ܫQo g19q)̄$n%ҳZ1FKԞ9jtSm1KÄW} m_@rȆ˔Y[ +@p)}N%1,si55H$`쭣 ++y@,Ja> ]$P Q> #y47DvaULtlk>KYWWo|(l:~3CK9JmcV<2ѪD7zC %.Մ~p +t⸑7 o +!.x"ϴU0\2{cr?yT+eYZ>9:oMWɩ˺,7ߦ;& Ր>U_ ShtTCp.+Vɝw8&ܦegw-vۋӲUL=چeh͵`YL}YLyB.ۭmJjVk۾mIcGC_W֩Z2%/eE^]*DjVr^qՆ%UooB5vؗ[%zH ?QLψ +m(-ZGe1SR$cf w:N=0爲a'O$gIHNnkE40GMHOdP/EʾbN>q$hH2WRpZ_P Y4G٠Ñ-BSu8MlõNaN]%h>0=Vgub7'M(Iޔ,ޅ L^<ܳr$w'\ܥ/Z92Үu)ޗh ڑ5w=&S[w% fOpn[rVԝ)cfVos{ 4.j問s \t^ZJ5ulnp9"w8}UM9?w׼۴ +3x0Ȅ8] M sDls\1Os,rD,v ? hN[H;H9v +}v6H _G " X8-Dү_݀A$TX~ 41!~-cDD/+ZV]k:a@3"?7CE͓z[3QR/͊5,.`lKLi b|s__?md1%graމ!d)!zSKυ$-vp$'w&A ZKqF|=|՞ 'k?END9cŢXN2!h ²62aA=1뷞Ƌ> +4,\ݫitkyqbljׇ^G%.C훙TU{zŨ^E?HSz{i}8(2T 7fWa~Vg<5GتU(L-Z\Nw +1[x*TU\J[}vn)f-_] ȎҬbm-ٶlkyD.~^HVX5a6}jb*L(HR/_I^$=I{s܍LQ"zw[^*+>~D$%w!ǃ;!'G|#tEu'1k!9k&L2Шa3*0 +{.!s:˱Pϒpa0^bVň^b\cdl.E<;|F1tEzñ#Mak"B?Mi<:@?Cz+Ga~Z:T gE3۾ޯqnAޚI2(7$!Nh!ݦ4@)#I '!(W^|/KbZkpg g2keaftčK}\%O +ZV|H[PuS[i83(9{Pgkx*Iܞ2;|ZVҬCgiȝv Ex)3,ǚb6sz})}t(搹9ՠܑHI Nb?h ݓL6P\r[ڢb.@ |fs5#t0Lr13d2:룲=fœ@v5~uM~3{mf;G…-nv UK$gT4)U4O)3=nѬTEC?nҞ2ɩy2(4 %ެ %B+۟w7CFJyvNT!NȋYsH6'B}&_,YCDEuW&*3FƜ+I2 5H]eKEi(YL2 ]I!iӟ=mܜ,/ + }gUSYU!:[7&QBu%Gtyqm7 fqQK-.<@_@ߴt_gd F柉1J7 "h0 dҽpC7X=w=[xcQ9\9+oto"m#=;Vߢ&U3r@]IbBXg& +wbSbɟ=5"ժ8+j72T7{g<`Q8զJd9b"wR#epa灺H9(ZxF\pQrTv +gc +*qY mИRu`kJޙaiM9{UEܿ2ԏAFl 5~i Ŋ .v5 .11<|s'{CSFS4ʳvde8OO-KOIYI$ŷJtZLS6gS23Í{<9GX? +nU?t =wb4 vtb<# * NcEE$PKr>D\Q{e0,ߏq.sOG{(F|_ѷ +٧VwhSϽW1xϑ3y<1e}O]ΐ\tqy=E~x5{<9!1k_#CzdL,)Ī{* ++ɶ4 @*=vxi;n 2o=AO_jB5w ,trEPS3lL4_':k?싰RzSm+ +*$vyZ'/ +5'(/Aj#lĬ D4Dh14XmAkig'Ǜ(kd.Ⱥm5C +J%1 2+RI\)Qi8wPtZZOjd&khanraivv~vO,Wn<=a7c$w|"7OA=8A;בH/:IǙȹ/;=3zA1해v"fra|Fj445wlR{C4ޞ׬*4;FXJXEDe^ D]/JY|{ۗ}>BK{!|SZQj)3ec֋\1킰#s8z 9&U,A4%`m+;:?huWMpi\*B]Aбz4}?,~[j?si ~IJ3"Ki .` Js+l_Ovȫ%,d-7y\|mAOQYJX !H~8BAn>T9|k*Q]5$mn[-/U RAjs(-9;Sy0%Ĉk⏉*nOQVpH:lߤYfQ6K~P0?(էٻ,9 ᾳAcQEP^=*2ILmBCsK +GLz#Mki3.aiiB )6ς !Ki1{ + 2/@bHN\Csxb"$C\F羽F;@q9޾YEVd奤J[fu9QuL2)KeHRL!}#LJ^vvWmE$4l?rכnU''V?BRTf٦b}oZ +L^g"X.(*V].ԇ`}"V:mh:\fƬ̑)_mXYm~:a[y!HmjZHϐ1εn oa\_gE=aW x4>Mw-&z6vRSws08s).$>E:|@h:^qnp3JLq#H:]P +$C(j$hg:L֛a+F[f& 0mXm@4})/6?)Ÿ~uC7is)c+$5Sbee';=Yس}8?M +eɨ),a 9|r2ғfɚEPoy&]d*Q̚ f5E3jʆg& _^63H66\G}`Bۭ f=@ @qn1%&Wdg%6MCdD"]2`&قD$a&`vۢ1T jϚ}ewj}tz;*'nMG^8xa+lI+[;[ #V-EbN<y11BC&BbU(1Z_d\c󈂊[tvb?_-*J"*!R!p@HJd$P` `\]ÑM.;|,^fLphQneP,V[{5Ҽ>W>ܳ ƶ$eXrԒ٦>41q^>6"wTXjjA5RfGcӌ;9/);)=)9)>iUM .W?W?} LD2,+.Xw.FyϚs$O  侭侵侥侹侩侱価>pf.}7Bau00' /;y yhjo%,)BfK\hJ؈ +?5B#F 'S~8`읱/`']8QA/ ]oĝ4Q`y,< c1]0{B`΂[2pZpv +XA\{j\7wI;" QW0N k:kAYЬ0M) 0K3$t` AzWq_JU#bx=`n>pނ7tL~ S?^ %/W/~o,={~'@7֧M&@$\&Y`V)6vd 6"s3N,)~)@46kLbo%Y憪 Qͨ&C!Ri0Mf敼D PӼ&!Wh[Gn $ 'i!lv<(4Yzѣc +s}/HtOS-S$}!UO"D }UP(ImiضRDl[FjEZ1S{M1m6VlZ=)%W~Y|.m#qsD,ys#.9K cAޙjL=w!j68-.4r D?O.1TKhX=C'1t h<#91e7j D;:V=/`z~%qgmYC х )PD/sNѻw;7Sʼn_ިRW`Pvm|/÷Ip/M̐P¢[RMI c*"]bM3+>v)v-y ݲ/ +žH1BTkhikkkpVCiAh{0=v d_ݫY3 ZL43tEDhr(\&m +6R ffzB 'hЛ*/sNvm !+kWD; `4jA1h) FL4JL9%aU$w"My9^!+azE*KLJ,_jU'Re(d_iQf &$`axOC03;TUP㭩g. ~O`E" "@ Bp쥝=rY#:n5{nxʶ$'$1ck_wplaݲVk} K +k}Y,x' knGA, 3zݪIc$]11\*ے6n19^T!*Q|\ۤ^+gI]է5~^0h?.~x{?=?=?=?~h[~x{~`{V7~yϝN lK\V/؍?ܭ?^[_[_`?C|M{Ww0pKrAҌ>?>ʿ8;W9Xk󃙖7I|5A R}W'/:_Q0⁙jp⤜x;w9rQaЉYxB5[Q* 4ɘeG(,G-#ttQ` _w2$=; Q;/:!'nvX;\F1I\Y\)Gw^ $l T7gz}s&;qkNѧ; QC.;a"\/&v +_Sڳ /'n^E\YMQ X0ye''O[gi@%=<űGB| et0%aJ(Ljd'9pJ9$khOI9vma}aEXN'yZ8:S{%#kNG\%.x~IGz8NۼE 3d,S3D'Ήx&ecg֬EwgV|i Kʦ>|%3mY]1 Wnf,zhYuT9T{R o/ͽw[-[ /E V|eI+>!xƧ.5xu=x0C] +[~9WP[mG q#y ӑYS^1k RXiFr稛MAƻb-ۖ\=[OU_#.S~2q z`$(%.,4g\F>Y-,(g{@N.۲Rsx[疡]KLgjy5噛,xz3QD-;b|thnO50R*`mE%ʒ>jPHç؍o=Լ[U _hUTb۰ʨϥ SW'f#~>"G spqssp2i9d{Ba~h@2 Q/ e 聗Y /$@2yhx[|ZdRoʜxb~::/RlczOJwGRU= +{W/-bg_-/G̡ԝؖ4m[O\#DK);Yɡ? +%J4TV@\SQ6G., X}}"_x${3eȯf~jfyJN8؈2@!n3N?5tsg|zv] 5(mdVX֤W(UeK0XVRJɬrfJ[\Yl@l?ɬumgk rԖf5nx & Y܈ڧ$vD!;=p`|\CW[Ak ܑ8Я~kE>{w<1mJ[{95Gݚ[@ 6DCwP5Ah4/oj5ԡKun+qLW>,0i`5ָ5/)M%(kF(-#z [zW5 );vsۺϐ-_a?ͱ$w/'Dl|eR g&ԥ=~a +I2]=w܂8쯄7)Y+˺xa@>} ~?L8} zq 5mndKk.23UF13;8= m]n@OwBrej݁@ ]j`;Av܁{5|5z4)y%ԵWj>A 5{'%N?hކ8&T+^O!SJw0qnj!DQ.`<]XN +Pp;K\mdףj"&>X#ˑ 6O8phZnQ.u٢Gu_#rXJ草uD.ꖌuIFy0*7'dMB|<`4 ox+X8qud4g'b?s{nf3:9x,wūG?ޭ{ޣ៩Y{BS~w߭>EoomKZSs+%ظVEI7n"V7ve2oh[f]MT7]=6w/;@Xj?̼,L$4f4 f!dн)Gl߇ 4Ч3 {4绱ݏ Z d+hG%}D8m7aJx-\?J0ZD3 D=ā/HmP^00.lNOLaPN(O@m(MbM@ep'HM0=i}s90x?ICmG_D+ʟ0 U!FEK'?[s[~aH ?,=LmMRp%fIYNt)FB,)!$$ I7j#`D=eEtTQ=Ϩ">_BQy'y秠@zߤo]$3jNQP<`pXYPGW`Ns}CC遾~[4wdwadb9)ef;BNa}lIGzϰd'Z򿳭{ϼſEdgr9~7h~}`cX}\Gʀȯ*ⁿ< ߍr>ceN}kVW$rNr9ھeqo)@Mu>u1Tzͼ"Ky!'MGKiGZZj;Si*EJ*MZaojdKmXz+&'M4@;4v4ݖWmN&0ڍ3Ϸ9~X6M .n0K: +&N^Fi$301M JQNӢÍF>RrH] +6HeKhVim1WmN^O<=$~)jrMrl&+YTs\Ċa 5Q}ZjBn VKf* .Kd;d.\Q@d8fh +(0oޙ,5Anl&i+Z4Xtc+-^'H휐X$1apBC+"s:hO PmL{K^JE&-^j/ N٦v&]y8X5Db&9jMO^t<@oB( )P&A(>6\Lsna6t)f-S|Oڧ4{,AZ@UT8:/_Cl{+Z +xI]/+08!&!oU8qOEJD/Д2Se<`s+j wR[p%6|7b7R4 E$c`n9c{!#+3[ un쁅kU7"umgw -t:ہR\5>.;6 pFH6vݰo JI&„9%%18QswW~246:ЅKT^F(-d%Ca xȅn!(tv%dpP=ѕ(ˇ3ȠQ(tchdˠ߆PoN`:(X ObKEaiy%Istm$i#C( \fR3W k_l0r僯 hcW;px|T}r W ba +}apE;"ȑrdv23qHe4sf6ϋhq3CSpbDt lMjp>s*v\ kJJY_צhG+O=nՀ!`"mMX}rW# +9E,[zt +܁k4ZGfFV=rw! AӦk2$ؖkB({B.$^q͏r1,{vZi1'. )P3ʗbK3i$*x\? +xФܖ$wE2TomhEJe( R6 E+p;Gm7j )k=^<^-b# F~E>r' ; g);,o|(>Q :Rd0z l9SIOT2k uu&tt8⚐SJ%ֽNOZ Rsq82Pg[\;(#@i5/|ia_-+įl )k#eVJB]h3m_;\INDCVDKA{`e'/* 1%~Cb0JJZ@vЦxIēq[lc:-)%Xue_6SW셠0AK?˭Go@{B"}ܟ}ڲ.8mD /`Be~@ fھZX 9e+l= ~3A5Z$_D ks2`d..0mõrÕ :eїX:~Sxn[A\艎4 s&*&rʺ?ы ;eٌcHl] Gljհ1-~~ FxU/b *#яd挠L#,f&p2BAEV;tSt|;S!EX{@#i5ܑ:aFoh^QՍ:Ŗ#Z5?Gj;TkpxQۏx::h+9%AU,‡ @1;* +ތklQV -0$xu<]xs4dcT#`ֻ&o&B/ +iKW + IU}~B[lRE|,Jܟh*HX]$AB;&Łc:f&#iU~'?W?v Ozi`D)%z sb^𘙊tI*VF# @ x;0sv +":|RD(";NI|S@Nvܻ7>eC[5/_X:bb$]}_15JE\-ܡeނnobW% +mjpj&F:0Dz5X(h`D$ߞ SdaoӰQQ-t1"xI֯)>x KdumVdvY6[0@lQ<@.{`J}?q򇯏+>~iG+"?G mo?PaţB)"LS)(*8Fcy:H}>*B=R㈔$qSee/iRHè~F&EXd +[d*v ءAv +յ[d`vZ +$L7ʤ?ݩpDɎ +Ecѐ`q 㹇\+x!~x#R= 28?|BCNB ֨/PQŐUpkA_G\aH ϊ$ZpKL?g +y̟9ׄf!)> 56 <ϣP1om/_=&UE.}I9kX🯼Cr0^˔[[8kRa.N-s7`#@>jNe@f!cx ~a]CVD +=U@ܘBE8UqN.,!cX.@ ++2AU>/_Vj94W$Q%M'!eoYx;%f;^bN +⯇møOg@pX|dNi]+ӄ}.0īԄjuAVv4ʵaNz!+F{UP`. +aI}pV$yφ!Nݨ1/ +ʭ ہO+`=VU/{rҽJ>Qp#:+N1_|9~dϺUxqIS|Ke.P;& II^5x跍ǎX`#0LS(2)p]PSe-Ac!'!iAA)Dʓ-A +rL1>;(xhpK20煌Xa10Wݎ*Ih(v_C'K=̼΃CzD:Oo}½le,\Ė|wx5usIǜ~\WʎjMGبͨv gf7|.tv7'u]㮧)'Nu!4~0/0*;a^X6/8YPue@Z2hAWJʻd+\_+7G~/D5"+Mqm -(6P (Fw UÞZ(Z,T+kBچ-*46th5K&54ƶ,CSmEXhF= OʰM!ޒP}~xmRn{.{%Ta}j&-vĦ_ ^-vYSەWDY>DY "PȆGǶ[*P$QFci95B +K,,3$EFvo 3OS@ Xg]Hdt߷`-Qimۃ{1 aC,mj50KjeHem `n|.Yr@mj|ʌ2 ^ !Kx0ur-D(aV*VF{{Ae9R/4̝ۜOG`U>;!%8^{w]l%zh=! +s3D2լȊ'QIѰ9ͱS L5n(fgV`rJyi],rͶMOX ,Fwp7EEb{A}-bF/r+ +^I0ӭd7T[||p O)/x A?ioȾa7=B\7vFAonK-w7{[U_[5-EdeVo$wG[jX[}>T->ܖ{Q[ĺ\ޖQ1h۔`PEFQ#]djWݝ2]JU\E9jӧ|, @}v2vM +iw[ w[?"x6brf_i+ J-C*h|C"huس I-`hf3'H{l +]O}͌S 8Q_c@c8;C̻=~dcgޡH!>00P2SgZO0EQ={Thw^WY g<-ޔQ"tMHWe.܈̓`l0Nag53cuu̬oߝݡvwpՎN;-}>+_ˬe셏y2Q;8ؔGcbR2w"ózWl'L iܖ}iEF½R)4ۮ]X>t+zm:~ݲhq6\WgAad3Q& c ؇)'ugZ1tXowH3i^u[5R0O@+e@3TW;7kmh8; V=c=e vb@wE}K^dB)P^^d. ނ/+B_ a>3K႕|8hyկ zܯ-|xz^tD>%}L\. c`_dˍ} +zc_@SWz至_{"U? яZ^ף_H!.PdNOy^G14܁pnUKP=$jC Zn@M)n@M%8Mo Q;O\fKg&ئ $8 ŤOCJM8&;Y٦a 3Z6|6l?9"Ѝ:#(}Kgwl`N&B3 qjHlm$I /kQzE-QUF9ڢQ$y=u[f-Jml0l JG g wJ+)S <|fZg6 Ky˓ 8udt?+moR`-|ߠe׹o}uUu͔mۓ뮡mE~y<-M};2'G+Z5f?\򪔸Fn}CU~>n}׺=-tN_x:X0r]P܇PQwY>~A?LQ/v S12\qe<nH}(}?45O 섂~`WWWbߨǾWK'95#G(/<Đ̱!Y'Ko"E6a N`]t5߼ -97wd1&|ORC)vzV [Mp5&6=0p\m@vj +: ߐ$[Ww!M׀<&bgo3r+zlJ|>U#=j u/lG͠88JPm=Ikqρ?u±|sm>ȃk_ OE|Я߀u~ +r7A +b_ҹ758z˥FABvTRyțX~<&\g)"8i/}b +SbL*6%ĸK12&/Ab9bh4@u>v`c@1 ޱ1߱YP{bÊSƇ@9 NLdW'!RY эX̌1ß嘣(D lRXxz63/9k¦mTP+EG|l{zq.܄)4-7xu6kz+3*zV:Wv2lawW}~3?*6m/?(U&P Q}SuHU&ݮ +5aǗ'n-6v5"5)WxwUU_X8~+.lvjM=jmY'$nl3\mS!-->}XNhٹ0Hh]n3}˕BLY5֭k< +y:@9` *|3'}:jB1'o|xV|Xaל%Tc94ʏ=l^8\w(ޙO!3mnI1n^lji=`qva#u(`y#˰ ]0с>U H}d cŽ !Ev?3mc}}li7,qPƞ7bo PP0䁜tl[SU]9ulܳ+yw=k؏%eLoPZ%N ;&;`:Xׄƽ\dّ[#oVс7u¿?ƄNa!j܀9?r}d(چC/~,;97 QʂJ?>@urݡ;<5h/e@ d6m/E3Z  p ]!&,K\\X8po1 7F2 qrfi}ȩ=frR3€X"<b=%7דDjΫyCA_Cat1È`1B"0d@3NAa13KkC~17v dD"цEYyDb-LŠ[Esxr?sz&'sxFw~ OvO~ BȄxόdyϔk!ˈXh{E}`@Gb/rNT:oe~#Y )*PP'HQTQENGEPQ,_UuYG2̽23n&$&(rr\Js;ȅ!)*OH +K1e\J3LHW"T/NSғR"YK_F0!HOD +NQMXVӒ;r]J7(a6euFd2TM M )m:u5=4}M]%_g!e U]%Y:f2p6k3Rz܊3UR& ᭂ:;=^KV[ *$9}"jS4Cl9jpFꨡñHgV{KU&1HЌy_KW"ȥp Y<.FR6j 0b!F3-b-`eti_m9'Be,2*]]'# 3 X-KTQms Qd1*DV,Ti$fki*)}` Rz] b˅v.!*b5]X&*ʄ0 +c\vN }hEeYQARr0N'g<$Zrׄ!O+[zaMecvP$WZ⼘؅,ALh +=BO*RõW5h[ua٪U*$:F8 6R4-ʺhc&',NEY َ`4>~Q +_u:hCOjEٛ2)]=RD ߣSW' 2&5EO˥UPC,웉~S \ HTգ_4g=9pvsZJm*UK]wN@ia+E yncѱL~ Ⱥ'Ss8]Jzn2zi,:4x;cy+mk7-L;>2Eۮ0T[N̙HR'4uҙDJ2usxjGqjV+ryd/; +"4asְ<:F'w)Yc%lkiYiX5PwI)K_*YdQGef։s>ӸV+ғgc`$cb؈ё"0{|ؑAm1/!`=sV82%HcQNn%[OvӈJOS߲:1Xi8ԗPy|RIxH4=21:9cĊNYSfָZ:jpE̋ ը +]9:c̪q@S%ɴ)!›ŴF-yZD[!N̷LPOBNų"m :aK`UlSbڥ=#xe7xJgmxʸQ)D щyi`҃QSR>c*yJPsJ%O-O gZ6'\94{yPSS(5&bi#GYYAwsD,RkmH 1㍢GUAwOg#VR`7멪C*{j)6m5Np_G0rcVe0RƔkSS^e}8e#UKw*<&$ˣ" P>#GM!'5o*RJ̩#PyR t,)'NẢrSSidgAn)>}('y0A|)m_ |: vfoOU4IT +yhGv3'g~2"~TYTUh6 +`65ʮpͬiW[zL:juVٕ22Kkn%YdWn5]Ζv KkoeYB2 :0 R+Hv$>1wEJ@YYU^O?LFJ*qزbJ7EfD(N] {UeYn%آՖ{ķpDkpE 3VʷD ̵x,t&ffp&~)t^#I"p Q^YdB!٦S1KD+f\R36}B}3xUo5+fr( JվZ21c MmDNߙV:\@<ڶLԘjtAikQ>ƅj+oj'H"_1KI ?hO[ٺJsz0M)WM(m7#5 c4M>v:~0sN-x$'cz osQ'~9UZo#Ya3ca;t-FﱮtNY>s`tku%z7|e^bOm5Q%#sgr]U(ޖtD*=U{Y+Ot#`zk"tŮ5" ;B'C79fjH5a4(SN}]]1deVL;ۓ1c.|ɶb։XZW-""ƎOG!ŌI%*A/ apפqjoakqx 4979us;+9NEUk5ܵNSgG9[|PLWXg&v5"ZMs==Ǩ.y^LtbT^D2cghOK +%ȟکA@,, 3QDgCl\-oYg 㬌)gZnn%MiVܖsv[V OuD0F s (^!#,"G-qriv(I{| ])OnHebtx +04 aI Dv/*jܹN D%& 3 p\Ѝ +?r#B7K]ݷo,M'%nA|??epC2c2bڅ2oq@.M 8j'v3F,RHG6Dz- <yw'!N9ڈ&Ȁ|Ė1>f#k1;sgcJ}Oog1}grg&yGTVյңH?!2K}P;P1oud$5W"ZdsQ)^R{\ʟ}v ڑ:H_3#}ۑ:3G7&ѧ/(#e,VÍ_f-Cf&p#k78lE'x" +n4(-L{c ޾xR1(!NC*'_(=$y0fsiۗ<!F:t5+m/-8oB%\@ӊqA?Xu(.!.DFM\+LJq +.镇F\+RJ|CzKm` +fb.s48+^OQ~t)z|]8!m0`EV~5UOLEYgKב:")T}KC7>Hf±z׳yC7M D";lGWŚ-clT|4;՛ T)2!;ECe%p<+J9x/.*s0/3iܴJv{UH,idb|([LZg]&ֿE4"&p3>1iGTIG֒ +l8/ +=;]}{L)׾ +14m.(W0-C4] .TIMvf?hK?nX-pл q`ve[evAɼ I2'M>#^gTnCSbA2 m՘.Z)Ojح7Ra"eay@}/"Š+5-KIjx!]Xp.p +aW +%`WG +W_:۫q_@vCWTˌH1gf'BlCZCO$TOj4*{0`V rZ{6p(Za٩֟πSf϶Q24(j5ow*Yo+q D'*/>+>/~!Wa2?yPfsY]u +9?4n˖bHptTJxv- $m<O'W]tۮ.JV\5S9B}2YҎMΞ7-8mdO%4F;O%Aʝ[`xN~*=qG G |xB@Ts v܁[3tJv;Quu@nQކ6L& S"K.qY "n +KH{M oq7.e=T57ceolD~(-OnFq9'N'b}@)ڋu;-;'ETl;xb7%o y^dU嬴 I9RvMt"Q`} + W{;ެ#;f:8_Oxu}8 y7gXe|Dٷ|[e<?}cDmQp&T9&o/Lyk8x>T |tW>YV=>[K-H&.w\>pquS4~(W'~ vN$`nnֹMz*N$GP &օ.2hAD+sI Da>a?>WOu863<n؈&z[h[ʒo=vK≣@O\;IjV#mP?Hm"O["n߬! 3~lmsUd0,q|eɶnGs\-ᫎ/pPhlx9C:mKlkD;?fCj}7nVuea㆞Jcɒqg^\Ke o2+Iek Ig 8u8`ƌo}/& K5B"~26+6m`g7 +\1es϶]֝d)򳥫OhOz$_@0+%C;\F=|bm{Wv > }IZADU:6tRK nba7q|:1S$]$I$tbmP5: E@i@iP%ewn 6P[CKSH+q.@m8t`l_T/4ptk.Pӿ;yw/zu+!z 젬{ɣ,{C40:53X(/N,-' +ـ-Ş: M#[C[,\teCEvK撰5ؒSN}8Yq GpQBJK:C'r +Q܁х 9J1ߥ;<;E<%PJvrҁE + %JM,--b,V櫁xaц+ْ*JݺT,42tr->ƷY_|JAE~7=.=W$9ѤeV:@~ɻKwo {%e +=O"UPNmv~07NMquNEp⬬%˱ .*2_\?W&†roV /==B)d#c'{'lrĞOLPT?GٻNqV ݂ ݫf+v$ϗ?.NbnVz} el!ݞ8qZ |b""dN:.u}:bk.d MaY :bBѾ,y#lb8C{ ؇_ݗCBƒ4&9-Cfi\ J MWlP6f\ȫ߫ڷ2eh _xX-dc\ot칙eȿy w{3w`6e>16!X5zulڋyg>ySArV20'`(2t.4m/=%#h=F5<*i4ovz +~GoFkzL*ߵUv"ޟ."dcnlnI?Yi%|$Hϓy(?m | @i'_snLz.a lw7߾2jw^efA'>N u8>8Ϟ1  f{أzfP@]|֋f{؋C?^L^'!JTF~$R~Ӌqn0ӏnx nKfd~#@/# Ə> ԯxn=r:t~̊z4j̲<2+H_YF]>ԫϏbY>9ӏ|ZuzWӏSbZ=zTWz Ί= +5{KosRb;uwJT꺾rWU_dm4VGQvVׁ'F?^ =TvPJ\6Y |)a0Ҩ|q~?h9Bhx(g6n-nE=0ΡOzQ<}q(q>H)G6J碍hhZ?r?0htQ|cGbI;v(NLb/ +OETFtoaAe,1O K6J'ʡ-.n99''qw@2wܾܶ}G^Go1m^Ӻp$`<.0~{h m0 ݵKӮrHA'pgfa"w綗wȈr_)ue8!bSKlۀ>L3j޵]9s cNxwU(8`4(3#xpb#9| P=FǴxO"Q!U '*SG-r7z BasT+0:$>3 9OV(ós'S>OvSbII#v]s@'{1mԌouj\iU:֙0423)"k!#+M m [KUźSź+?q } [n/SǠ|IRٛ3 _;w:#7̔yɪё #~ 1 k\HƾxڡC\{X-Coͬl{EAX/ +ψⒸlļt*ae`OC,68h^Szs@CJtyAi'%۷;s7*L7>'Ҿ{i?䌟37//)bYw"G_t۱KhAC\jt8S)it:JF8^PE3vtG/M0w,t1Y߃#$K ᓞD=ꎢޯI4;_5pAHZ|_phvY/޾S4v|uߺNDOo.62" u^0qz<= tKN3 2+ZeH~w,CL(0 AC n(CwZƝh7{ZkO78Lѱ{ȯ7_f!Ci~1 Q7U}F..@d(HM$= Rsx%"SІt*!}X3?r{Osv(R~Y=֠VȺA"K3,SMVzheآ7&dkM KA$5lHnK ,$ )*?%,z)\>*f7؜j .js[&o)E#9bb b b3М#8J)ibcwE9ט|kla`F-yWf5V`-+&Y`Ć-yWN~MB5\`+ͿYx^HZɷWbGb)3 8 r3 fMb3 f',9WZ/}srkKl?nHo|@oƆ" Rs˿qY!7̿ lv"6Ϳ +l#6(&:R &< r6+eغ-*J}{3.J7 XEgۺ+2C(W.S31pwLwMSoY<ԯz6fڝxP# ^/)/~h~sϫد+WX1gY;9P Æ@8L3 z92DXB PO3 Cr }/ GpXf}=wm|Nުq{}2fɿVBm7YZp廦[y.7ʯ]-66mCZ#[•op/a/*w{3`-'tc-\oksƑ:Ddlŕ †#52b˴TaFT#dh@- &h9m ~x@hoyPߥ'B>$7NBrAraѯz\thoCDzP>Si`zhpkIt7Ohz{`wts>c»vcڻ8{!B>Ev8/1cHٗTPv2Q>JXz ;Ync>mv`7Y>Mwl)koAv?Yt*gw!?~-QtG^!yuD|M1F"|سñ{Ҕ|*1v|,lvHaQԱ[Gᑕ\* :r&cOTV\^&=j_pigED![I4u]o@/ vr_ls;О&;=tfeb&2 Il'!4 40"Iqo/;^)wwliv]&* t׀䴒%ե饊a]|sD(0`ccЬLv/V?N]xV&'OйZle[DN#0HWrbL\|zUKO2 <6o2{s)édU7FYxo;ydY3vf̖-nZ򜨪bYTWUY_Z3ph6ep=Ui~$:7A!Mh䕆<ٶOݓoT7Vx6aBy`,cH@9Vu"r~og/;+ֶ ˖5K뚝_ݶDpwשlS.3l&'S窲]50q `=SN1qM@Gu'Փ0Fc]10"02Bz4<ˢ 0H +~ ވ8eF.vi`oXIu}zFu΃xJK6h^/;vSsdzsgWH-^8X~.?A쩁~QHq7groa+JkWT/*J')C;aTі"pR8jjU fxzQ^M?:} +Ԃ0&K֦~?d+0d=s6߿;˲UO- t; ]WϠVk(S~Ity!)R&|Q`ccG0?0)a:wv2tq; raߦA9ru.8 'lم=_Pa,+(\Fj9 Qyc زchjxn#ݰ:>RRܫ@^⡦`IZӡD>Jn{2YA=T  =K SUP\8Č[}o$ Ɲ w$GBi8~ 43$f|<뀫mK6' ?r56>|R(y׋d< +M0@L21D̆8-h +'`XdeKU_;z]k`c X#s0(T̰ke;ҵŽ*3nUYIFy=#v-uw$}(Ne7h]s~/i|7Lm?(@^ +𜭲q]|ybI~"geZ@ [Ñ{2"JVld Q>>-Mm^ vLli6DC.=ds:ՓO;px /e6"|6S[ /؏`B}T:'eܦ5)t%r?(^3`"cc9Xp! 1"1• Ϝ)0nâeKi֡yiKA1,tsH"jw}e'CWb ǯ~s!l>yGNyq ڧpVzBg.\|78=i1G~buV%/, +{qLt;ӭ93YiQ&XhL&<,Pb>%ZLpy爵UW^#/3kq2Kfr줣SrP{FT Wԕ%5^?9+՜wQMk"(_,=^iz[ CX3M=,uWIJz6Cbt_BYwcU6vd^2K +)Feϧ1UJOgdN熫[h:Y{eIj)F3F}a7KwN@r Pi q<7I)m]1'KɯG(VKkm`Z &S^F.5Q$) *U-U-%\c?oҎw%pH|rW<me̓f 3bF3Lh$ YFk+F]͊Ƚ#,v o^cNJ:ɁuMP0F=hEΙ.3ƽ D.}f)tN@CRHf2y$ɍۺ~{wLeCё4, XҜ4dC~CVߚ=V)O֣"[x!ST8ZU5/cL.%,pϫgLaMuMQĪE6X>X~5Gߘ_`|`-e1Z݉uO5,8q?ܦ> l0I֐>x@l}SO.XL +d>T%TYGt`c)"\X$T n~.C!“ +f#6tN,ʪzsX0X984_TcGɴԚ|YH5:ФHJI^ilI+,pso% d"9]lE;.euw~>y=CEuSEG,I*sV~hsT"y2NB's6%_AMB (Nq%44V"3WmB|'^ $ENnp|7m63{L$.@ʨs@OABHn)2OQKYr q,9;/$1%l,2l3h 8Vr"VAQg|rx~#?Y`c7mgGx%z`h/XpW<"| 7Fs}z +vqH(o D +^&D}viₖФsZhbh6Mm/?hl0_@8r屌,6ƁT;Qܔp,  `7~jPÀՌk<"9+gm\<" +UK(J7o=ma__ϲu+Jˡjp]doFK4 -<t8DsPLU13}Ҟ󗠸t* CmI)3x҃Q=+ :A&d*d_f_0WW~Ԯ+"9Z >Ǫ'm|66맑F!eV)`?pP-rA.[Dw)ht'Eun(off!ęJ].|\ ӓQ:сO7_,_lfF<S”6]W`7u@v"ɢ}ORbCմ0pNn| "Τ7n \OBȳ0:4~r {BKW154ebîaB{},I{]ԡ+pLwPP9wW +jCly7o5qdY[j<-6&ɶS" 1C7 3Clnқˤ]D/9lɏ0l ʏLl17($x<ɣ]$䱆a=(8}5XdqW p6:c0' +=::Ae1M pҺ==Q|hGƽP WU~U?.5)ͥZF@7O3 +5<Ψ+VYW[ENh>[gqXaMA-F6S<Ȉm(nL + W.aVG{OXNLL%S{[bT0+oDLyS٠ݦMFfUMdɢH4qd\8=S7) in, 3פפoQ˱֟I[;6v4"j[MGfU%aV*ߛd3LQb+o 3<´/A򵨥#Q2HǦtZ:$yI"ʶnimB%];Lw<=(t;*g} haBECzAxjUb<"x ǔ|EC?Dl"$kC$iOApIR{H^#Ųކm: +t +e@H&! ;yj3A5ϙ=dbiZ/)pf9]^A}bG:xܠpb {#g_Q6ibzR%BBwr/sRfyf)*:mͶ@ H/H\0iU;A7 !nhdWW_MTJVw{y- .cVaR4t#bAPW#Zј)'}$Api9F䫗WyĪ6;z;?O8MW·on*]Oͪ\`vL SUz$x; #CXY", +sSɑFE橏.W$>{;v3v1r7q4ps47t?ϦjUN.*=e7SIHݦi"IuEq(?>lHz: ~-UFzdMmFvp,pX+b># 1"n۟eXN礚7GN`~r7bƮ{ =AM[?xS0dn +i^<ʋ]tx] +߹R]MRFX9?PnVX2a_K¥;Kh~DMEvkgS戏x,@ZLŚv I$:4]j$B cϰE~u/r1e'̜K%#xJ-يCK0Hz0q [2W3w/Q)zK qOLJ1RS]筵(IWY2j!HUKZ?Pߏ!J>"l^Л<q,;5`IuU߆v)G h?0C +Q:0;f-{ Qds"LgF""Fu;swZao],87I]QqX1B1}D'.Z3j˰^ӧ%}[`Al@fr@iAYG)նZ1!0 PK\"]_Fl*ֶ?2A_0ǤJQՈ5tk6;Q fk@lE~߇~>H +BP7S&(Ͻi +@'~jZ$(.ڀwG9pd +w:(yDKZMQ7ks+E_cGCede$#*x2qa÷J /8ڀiBл`ʨxeQR0}ڊCLɮ-[q9 yG1Yn30rz_[} +᫟*ctE`WM;Nt*O@ .Tߠm%VJ96EcRҔ ꉵ6N}vKWMm,w' +qh0c| }d̚kˁ9H5wuG4S7CΒr}e3lqv?Bly!ax3bVY݃WAH.LPJ0\8fc + @Ģ1GEGYW4Wty0|}Ymd;PK} YW+مsMIĎ׵ݝ r n[Q-SlIFWΩܮ3P;{>Qe'?6!-edF8&am<6 # 0ZڧPmNt6a&s+v!OzܨR4 >n<YNŝ$&ܺ%6l%j!οўئ) 7&̰>K)5chfhA75l^~) JTf3]0=IN7n Ʉ;{kW<>nZta-d[rZean>iY>$yGp4;ju-U`3j>e~kNffK6GigOD0 IGkG,P z`S^~ցˡT{#vGтmofX%l}¡2SHi+,/%v=$Fʬ"y8C_ŮcAaͤn {xVeD7`3Z2C>>%N +M3K%4]J$Acf#+WL0ˇT[I3gZ0sà+լwǢyLV{i6{w̾_1+fVf}LŀSv( ̌hsgloQJ:pX7S[d{ј@cyWʡZAHX-L;`K'uM 1/~hCĪܯTWߒ.[SϞ[jXN^߲ξ?4]-hYqbֈe+{y~B6N_%Bd#Ge[ (~>XWE7Z7(\ li&ӣH-9curR7j%7eApy>f& IThfs&g~y #3.v;G? !;^@wZ=]_Ԝƈ]d%j2[$Ӷ{xOuuu=w=eh *-T+nFe_5lW;C~%lS,dq}j }j`,UA$k>FYh(Y'(Nz%mbuhIq-ڱEZqV8DFT.a#g\;Hͪ ZmVx}k6~9pH+zz4*%Z2j]v_uDX A .q(,nL^3tktY}i:2?َ8J^,DzManC醗҈ e1xo[gEH$Bwقk!C{#B#Ӷ4..Ju&B=|ފa)AՃKF?ʹW +F?G( / CO$>X^ocJ06_.㤞g々8!;"puJ(c &I/Ks}PxE20GNUs ĹrR|\$PJJz"\,D{&S2BkQwH:oX@PP-a6L>`VCxx3Ej7u :D{Csefg=~Dk;8HNcT)w;Q'|r9ƣvVP9&Fu@ +T'Ȩç mɇnºR Mj7:J`ewݯͿ b4$s\M¦rSoATUD"CCӴ75u~PE췇LIJK +B7Oޡ#DY2: +tPQ׳tL$5;Y.zɗr uo=jw\.i ZT^TzC0u7c69ܒw-[cؖv%Ǜw%EVp'vINVMRe];?n1Hi?dFvx磼XKD{-,ȍ%,Jx(H-%|3&z3߿?Gp_-ټ:8N]\W~`w7D>!@KQ #siZDיē31͘##^y&Xۖ[&ZzqOvؼSsHLrP` ˂ +;G5x6eB0VQG;%;GLIJQQAe\׀.mG$ Y \PƪcO#>8ceQ|Zj{8w$5(>}9utJ^?ZțPV5>PzJ<F=(=j цrD_¸7(N 6R.߀! +yۛr݅4c"cUsT\ 2x9%QS->mk\Qc?2y+p>U+t3;F!WoT_]Ճ"9^>Rx0 hBͣFSwvjlz˰Wlаf9,t\wF߄i(HG{n Kh@*~?Oc~_6W+~fE*8SYkPnȓAڽ=*F +vd6ZY҄8Y=r-:.ݞ60\SA0j]*8Ew*bO%VqROUa$vzîA$Rs;+n53w[jj,6lXE-{]iʹhSmNu+`[TU-¸iQ$mY!{|Yj 2v㣳W`-fpqRY(衺^z}NRrѯrA'ޢJsV6'O $ #?KbM{#}%k! +V'wr/U/y;@㢗"{vGW)Rxe7*4IA$oie( $i>-AD-b デWPNC g1v,TW6O)Gk|i5^O'޴;{00wkЙT1gqf|dN37@Oz y9Qd6MS,UE "ܿob$dV~b~68Wb1;ŘT-{9NN}޿pr*,GCNj BW9%F F[1r9g-Z 339֒Z͢AqcD$+Ν[Nj>;FF>1sL(nG[yQЛU GfgR1jZa?PA'=mεMy|N6zΡ|&IZXBrBVU('S5sF9CU[ZC`B'S.u#l!neJU,E" ?R)3UޠU_D!v)*?D DBW{;}Q#h/x u/U(xIz4ȭ(~HƵ`}՟$%*6)}/c\߾YS&aup,xxGsp103sB0U WU Q)666-<} 6Nμ~Ͼ~z<8~! x<€w%ĉr8y#4ݻ#Fy~F݉pS3Ճ$2SͥTJ<|p_ā;zK Z,MKVE§?`^|(W9_![ChujO*}3!MIfq2ڬ^f咔":H +5jF{z[Yf:̀t9;[vBѲw [S(ϔ(?\iUK9]l&=4O[Y] \Tbs Wk45xmq|V#Spuezόti1YЯ2i?Ak+AS|9#Srx,̟{*HSV#4g_K&wpV#ztWMJrZLjYd5ɰ6(LEy}ۧ%%6M;+͉dFދYFh`4VPj.Tϱ% K͢ ͫz(RwS:h{ ܝ>%4#}~ʛ:͙'6%;XlBY:Cv's~+E +xpF#'y'o(p%kC'o?̸";*+ FTr[kTdI 6$6!G};MS!5x!ʽrC-~Db0-Vɠ9UDXq^[eB)”5H9z]K>%~C.WGcp~-#hȌHt/ۑ.tN $S5ހhIp3Qz"ř?+VOhޤ;fyzjZYV䢳ᵳ˜hhؕ6_@Oȕd#ZȤ%27B$dn n̚9b;]r3==N +\sӮ%~DRp[ۖ֎ gѮkjkcrB6+(c; aԖ8Mz'ޞ+ #^GIZKMDOd)a˘iDa"jMI}gMVuBm ZM[hVODsmF^xDx$\ q;17s*:&DGO@Xrv%lI !-5-ta +=P]Oي`~j2&iXg`%~'\NtSV +s˝.0VAyiPp.uBM uּ* +Ox-mK-1qx. gB-}%Pm&|pqD-1 ?5 cbd:_N1>@RY{"IO pS&^e "wE _s{W{hf@Q +eG[ VEiţ(&Ԕ!t`4VipsJ*]a;e#Ya"zTÓ~\jI浉i<1*}~BKa,>(`O8 DR +Q i5faЁRbHz1BYX:cnU+0 d +*}P̩ƣ4szV=^zzk=A`rEd(:쉛`PvF)Bx$CNi+7J]s/"#v;IzC,6F}vXQ-?: O9=1cI+ʳl CLqd*.kcNrWndpGMa-}BֵFM$iJlVCe*Ma#:-VZ>j`H>uuBz1#n-RikA5k#حQ&ϙ+΀x; q3} ϶\Xx;9]0F,g('?{h!A#A@`>n8H8Pd,F` +4#mP2ZPe- "ٺQپRbyfuj(Msy4s}Xg,Yd;0Nw|Nva j49sQ9DN׎0uM/wpbl g)0>PfKi$O[z-O۲+6`ߟ> =mM˦5}X9„+ }!"DgȝIN;P}3;*ոa˻xxXqQ勪Ʊl0 ۷a`.#N7e/r~%ʦ]vzvu;g7}/d+< \7;^}|9;1}`Q;Fqv&n+xީ&r zmSb:= c!mFi=@wvN{t_]gB$ :kmuMumRȄ&*؄W^}]Ѻm}LlwAd9aHѯ5??lYs}H5u6D=y>wfWBHo'A4g`w@_Ve1a]Y 6ϥ 4 XH|o:5euI 2UuarUD)k(͉֗㡲GaJģA3R~ےLK:8+D~Myx2! rD Ubu9t4:(2nRh?T +qfˢ]S>fͦ1;q#ͧpp+EUy` ONdaY42,/s|}pmGw@* w(-jyݺ=ɝsѢT3i&A1&}^ +>PַK7CƕE |?" cR-ߔaA 1i#B5t?M!O&2i}Jb'*URΥu!h`;hwe[,Cs᭠|FР9j -8I݊!Ju fFh뗉XMObRZ-h t_0mVk89EBs /*UP GlOYk +Q#= ?*Z!l{c!FBT%":Mni2n}#&,KKv%l# +!*3qOQkw0qW.~`oUjHguq?z`>806g4ҳ)&ߟ3dMń#Ą,KTMFXD"b#PB2f9xz9$/mX2onM=(3 ONK K>fh ڋ@(C21sLn)!|/N_Jm799i&v sR%ҎiOm +6iLWQLJ6ydoE _LN3m]f^&YvK%)zxO.ZݑN ]vO@\z\s`C2 8is0$I ӻ,ndć"rf)ÃJfj~ԭ4ԥvCS_wr4PԔu7n /,ӞAp^ h +z͵o`7k[|(!49 #y;,7o$}~ݣd'z +MAu {fYkλjd.'cPιE\jڽk՛^?:po>7kА]|h݁VoOYEHVH$DQw ifu}lĖ#[D;\4}hYAXʟ\09 +ci3OufB}L-X Quww8Vi+{_3؝0P]fwdq#O/>{dX> A`LeQzc{hHVEPj_=1;7;-ɬvau]䂗qo$ UR$D!tJ6cCQQdGz<:%b)jX\RZ9ŭσۧ!FM 02)oz^<&[Kcc%RF"#L! Tᓞ6Ցƈ0GQ 4d$)5 G˛^>Ց$+C,53Ke6oˇĖjgSpK>=-bȇ%+xp4P!JTۙԄ ѫ-)|Jk *p,z;Ζ!-OZ!'$~RD=G7PMWfi3: G3դr$e~'DQ3hɋ~(bNjhn:>xnv&KJTvh7r&mƝLA< ᯔ.AUWRc,E悬oT`r"DŵwR%W|Ƿ~,7 s,*yNk??ױh@F?#bC< +T˦a$lNU5}Ɨ-~haI|:z=Ж<|Hp1 j:7ɠsm19c8@DnkڈNS}MB@Oք?E C!v؟`!PJ"TIyLƨ. Şx5wH L-Hbt2HYv +}hܥi&œO}-9wmzΈ sม{0`9Hla3{ dΎeW f{>ԶD2ؚ<[ijs#nH 'aF!iIq!7D0\t`aH2U7EC){ ^N,>490Uzt.]ݢ9lz`7ĺ#Dm8!m}CsQL V'Ia=$ vn:9`8m# q&%%}z8/<Б;*E#$?30fQ7͓Df}ށT[?ި hPvX>%sQxx4hIg#׎-Y]&59Iz폀DP&* I$ޠ'TEB;-k^c̼nf&+/(pc iEmJDplPiHaݠam\E e +Ցeͼ<祺 N?Oe-wD]2Q|pM6ڏ:kKQkrJb-03h# QgwW^/l*bnÛhiъ.B?dq+~:Ӈ굇eO=*Ɏgn&:yō10ʍL; 7W1]܎ѠK +[[>` | Ei +O@,SF0v:pKJA :I%#7vk=8@Hh_ٖ=="PTEA\BA .JW@Q B!`R\Pɋ/REĢDayNOͼ +J*aqeX)0;lMt9EZ0xLqH' }:++a3W4ܵP"v#~kN~3NA$K 5xDܒKE42hFBa4C :Xe"T6v+O=p*Bd-*E4UDђʹ)NeukJz??ohvC}5`N6lNqۿ!~QD}]F}΀u@ `+$Q/GUIj@ʮ1/1RsfP1L5TiՠS#@xDr upȒRIϩlUp&'%]RE~2 xK[( WmSӞh'{k +Ci _ٴUP.':隔f Agewo]i+S\oQcDPFRT(= `P_I+Dt&hnعtXWSz+9}Nא;!%NN&6!U +%*j\{Ỷ%'!JJk-֠YQh<--N5t + (lzlxpMЖO-.\}tK(,HfA +QzY0E z~E e yjEviNAE濴3]%wG!03!Ŕ"t0 w:hEGq:9], lI1wo1 ^n>yPz  +ERoA.!QE=@=+k@+-;/-FB +A1-C?7g;dOY`/e)`f82fK=nЪs%;,"F9ZJt:>g*)ELʞl&,^vs+׎e#FqAã)x $3{o!'ѵa tZUOU̒O&vKtD>&ca>)'^XH AEŞ-7<~K܅FkkW/j F- p~-L>!4iv%Yp߿C7lO/;Eվ:p{zto ]ƹjO&6n`<lDMY)űeJ+Dۺ7%cuh_8ٗ2{'=AT'(N8_5N#ehPNrd#iV;̸XTAx*>Us~&x#lw:B~=cѱ"6L>üR6"҆mQ(/+s#]άI4^fuyXxvy} gBpld<'bIULAj"b| +wש 0Qc2Uuے^zb=ifFy|z1%QG._(S Z)_.N)2kɓԒ4bէ3{ۇfs1 78?fV2`rx D \t!O6j&آ T- KT-eyu87^afڽ9Ofiyq0x +>MXKz(Iʇ7$L-BMgI)(.LqGZo.2x0Q$3,l'1z(LlFFnž[t5.#ETudi)5CI,qOb1S~zp xzʴ/kyCK0*s$+ErDXm:h 2Sb \}gbU?VGȭfzI"V+ƒ~p` P' &gI=Cf|Zu=CtLYJbz.֡sEz(\r*k|/ Z[jm=5Y'ԑ< og^0/ɤ\?һFyZ^ua/m®?1@]7q4_Q`]QHDa|6_h̻՘{䮁^]">K$>GR V܅I/ +t֞>ryڐ,EF4RB'㳴t4P*QjB RA#9$?^qdJަ!vRp2 FFNBx'Hb*daB/1Ix +8㞈Ԥ˳VL_1?j_Fŷ<_Ѽ: +XBhqzqLIcvv?GA٪'JR2j0-˄ DH{@{H!0?}}[X[[QUQ# _B05Iwi">oV  p[/؏)}.'k]`mˮ48^fkb81]p$li!WODe";{|9O=%"*8u v걻ȉKdoXk3`f)hw.$߶6(seA#|Mb1oHGX7b +Ort& }Sҧ`eP 3HgY 86X!t V0TlgƗ7Fr}e&N#:SESL8+))ǢՋp/ JE% ,,@S'ncF]~4jJ5scDNw;Hۋ`cVQ RXU(XqA&V C7cݥ9%&Zo5JѮ*@ypRb3SǎF+UxvAho9R>wwxAOh8>*t&PZ(7WP\;@&reJNsWENJx6ۇ˳4?8q+|=dK:sxikcn/9j"v V^.Pp&j b&39}o=LB7 +M}|Ȃ|?漛xFV^LdQ:ONIg/3>.Bxac/!rs[GYH].F9`=axa-e{G6hyVv U\>j.H Qݚ\oՄS$ #K֩L(*aߚG:AM5TI9EeٝTs eF!Oc6 ڱ=IO$=yfX,ӒJH̕*u? uub4}$Sa#RAבToasUXPO9b{ [s1)h ͣ`DRPibN\Jc0_#WGbS9׫bgzAspjՑ1 BIU-$;&RB[GxĤR0 VaԻ$*Mm߃|:}&s0Hj + +.cк?(ژ+p&' +h2'"H62ÃH '&33͡3W`HfT4GZth%R'™Z ~B>>#C9WhHոv͏ SXh+ti{JU43 +h+)̈vӴP5GD4=T-}2hE Q| 0u)?htk+Ӛ Z?9ഝG4H6H/vxL#X%`Lw<,-3Q"LbDP}4e6s66 #[әZgCe  5uqu{٫w"H0ANU873Qv㎹3PB}INP%hrv"i(8 +,͌c㠭GOrct̉F/y'`m6ERCVXmAvN͜XD6fLºޭ' `6KaW#bc)l.}l*.`up)Yu m +p/!`I3Gnîm(.R ,Ž20t%Έ+`|չMoRu1;MI?Q*4aO?-[kyuW +)ӡwNOF +3 .nd?ޕuZ(gFd]'Ϙ~Xm Mhk0qx}mYkj@bB3/s9yL,f"Z@zf@JswVٙJΖqSށHe:= 9)WĎBLh ဣdȬAZ6BIԉ5zr1ўMi2 nMCO I#NB=6(ME +ӏh kTq4)FzPIf$JZ Gd8SYcϷ⟿Nv\q ǒT%=L"euJ>t`]*2uҦ.Tgyw^WǢ"ʅWW}T[k+g,$M݈vxc9n,uwН+$/JwX-hf`ďvjN+*)ʵ[!-:{/]I_%0e)z+nWa?6EBOg]yۻ颞^OZb;%B'9mQ=/gKV +d?7Δ7*o=CRu_+\Э.۶e۶m۶m۶m۶m}vwN$.*s} >OUT| +?a.Q2kD,iԄ.XW+sa+Y*Ub +Heuˬ*g-" q6Nh XH"J_Y9G0h&6zp2/r/=LNJcP j TF$]ԇ2PNB h<c+E7gZOƽ>߻:&92w@*ew3XšJΔ}Ͱtf06)iYDdKf]D&K%V8x5MK^a-.DJ*\31qpfFŊ֬ƕ[ C4_J6*FEUc_pwU/p!I VFJB\=mଜDgb+n?Ymer,;;yQf9Lg`YPWhr ؁ucrz LTv*&Lu*fZ`.j1;^ c;5TMØy1̕vZqplӋ\m8NY/?Ng3Mǐ.KN>ӝ䛖k;1d9}t3162>G8_zY~6=6 +{!+KKtˆn9ׅ}h1Iuw\V.-4q)@)41z? O}Pҏ0 (+w9 2oq`bȃȣdAeAª{ej< c1 +J%?Ro%tRhJZAG'R +r%b*^9OW' ʅ=xWb[uSx<{SߦFm{"lSk9}S l3\W~W%n2qYWSůEtEGQF!L9SP8WRm|jRE}OUkYt· +ؗ^wj[c mܫ(Ր&4"*ՊƝ:cdcd FF6ڑ +urΣEkq󿂕cDvlF<hZCLy(bU?w!c FK@ueB(Q,m&--Zw44k;a+(X(E40g;WۛYSGt܅ plrsv˲('X$jRg&rX/ % +O)Ao;u$&Ni=B =tHG&w2Y~Ji?@\e=jW|h@4<#Ba TWk,(a.r#FKԷzp.мvM:AcͅJ̹6iR_ˋD9L1iN ~Fi%>*ݹlcD)`P ꆾIԊb{ꩋ'}B.#j^2 jɬ[=hjgMsDϦ 65G fݱÐyQ]Ֆ{Q1lv,ELbjڋ?)"dd|ͭZ9'V}mg{Tbdm\C&pusiD +xg#WD9?T^ڇ/$nʜW p{(U5:P,3W"ێ>äUu⎳L~ߩc`v[$:;ST팦S:iXGS-xErPPw.E[:D6MkPE}[:S4gF{ssgE4Zۢ5H5+ zk&տRBP>۲ga!sc8>sCO=5z^H#c![{/(ĨָA󽰜fOws'_~3eߝY Xx[A囱ӭϭֵPx-Q7[ 3 MrSby"oIȸnK­"Է|w@c/0㺳GOWز=uOvM1Иeu5M!/sm s1re+V50 FTr+2sigO#2:'{`fH].ˢrCJqP/@\07nR[}EҀd1 D? (d%!E=' A v<~_#o`JPN;˦  lp&K݈-+Σ`z*g$Dش`V*؄Z]ęnnRӠ4_FA&-ͤ8]y߉fp| FcNZ/ O lJ:>4:8:+mHVN2e'U*-{e~Bߋ˚gCm\e78lxbfBJ+P>f$ =>tJ4ik0۸n~@M|T+觿9Tt۪{'+fA)j1ZU-bݹUĶuv}TX{Tlc"@Ca{QJ g۸(%k&j;M`eQ%K K*֎WFoJY#$V!jW)酟v ܩ[89 +3\%8ဖp"#RmRHUBsb cRfӪL)oWʎ<oeOis&OyaCbuZʠ8`nGap1B7wٚb#p{6y1C"G(e(__Chbcݕ+O/cXOJE/|qjH䳢pE,UeJjX2G2WRIɿ@ ֦ǜ~ Y +=YIk欑xCqz,$t^e=vRwUV7%0p&`:;07 -͢>Ri Ywg&43?n]dw YQQpAz+|=ѹ p$ j :ه rG kXxPᵨh^)|1$oy3Lٱ#`Lyڳ2svkQ;kc;oOWSY"ܬp ݘ"ݠݰproZl_^tc2݋vO7A!2ٺ(ڠu +ABuABalwE|v>.CDnC$ ƕq_,P_y,9硞As<*q"z +>+EM>h=p]gvw )> i Y~8}Neo2{kqû xxr:C`uY*GO +ptuI}y>{ ɓ#O9 ?/ȃ%k=xaBZ4&x!AؐF\  m&G.]Tf28:@J@.m<8"Zqh@Ghhy6\~(NAc{,+D6{^r_ W4߿r +OОxt +&<YjG,8ZEZmwYW~)] +IuYYO=UбnqF螺¶ʜPA5** +zh*GH`Af%f*IIOZNCyBJIAtd*#3+qxx^ "ڦac2G7sc_ +)rtmUKOC5vr +g _b E:=Ű 4rI2kZpDd&;R/DYBDCF(kaXUҐYϽa&&0w10kCE&g&EqN(zkfL uc ; o8 RG0` "肈+;Uշخ J 9TCpDU{ticGƧg3 Ds:nAP*MјByl5B94ij82U>i>b)S]LZ+tizC%b%uSHM^1Imyt5@H6t`VZesafi mè ,"BfM&DOgc$;hED*0ɵ"L͸|a{9ՔI*13PW%[@@Ц=={&A $c F{ +Cap" Qv>]ic0R¿I[RaQlcHb+` Uk)XuDr(V+|J0!),4X5 CoZLR2+eYW:;NEO YqArn[~U6QSϓLx^=w,̓_N·ߎ@jP[YB37J GPg BŚ]0C.'NH4HSIlDMO ҋV[ꦌF8zxzi)dn v( +Ԗ +.+F]Fz T: +jy*~nHԯeI0N_1vؼw_B?1:o>ևwXR{'vþ}Kdp_1e|1e|=s.}.FlIPgm%Pgi#}drȾ@3o>1\,g!EQ{&̟^!"g<є h$i"CiiDYH2KiI椋i6)xx&4bC1霑ۥ)>*-dRdMlI%qxDYK/%MdR&dW"8CHbXttrx6<5Vdž3QeVF=ܳ~dX#-a,VKX BБ9su/LrT.ٟ}STYo|ZUDD5ۘB%? }.2M5HV}f'n;)z&Xvj c98{%w1/Gk{Ewk ~S^\fP93)6Q8[ޣA|hm +~fb!Pf+lsoseQ{ '+_gTJ:<~a<[(E'4χ۬Zg^1=l %ݽCsڡ {>*/!!E@׎,5@;K : +膘gcVS%$>='0%%w +wt$ГO!@*˔;G9o$A4l tCJ,FSIT/nҵ#G k&}C T4jɨi,Vؑ|f ~)Bgrc&6ڗEt|w5[+WV'> 觧Gxɷ-wT+/lAE$g)PfIEd"Rl]LXت4JŸ;iyԈ aΒM0  7ƀ)LcaOlKK[ kHq?pf +-g"Zx VR%|@"wA;erz2Pۦo +W~>U%ݲbS׼ 1lvҪ/z⊁+D6^ +vੂp6pKa\e]Hx#SbC?qK+z)K BD8Ė*yS0 U鐻fI7"%}b8$Z. xIt ρk5\@΀iDwCŏ'Kd@eNmiOa=lmNڦ{ݿ` 71& "g@~t`2;r&Ď;q 7Hmj3;ˎ~==@+¼eq[JW;L7,u b!?dG1 B$NCDK(ƈYt\Xr/1'?4f{ o?u- E|o- Kx5txN .eqynA'#)]M1[E@")%#_h.%[ bQin p\,,%*,Ɛ^8jAw:cvφ 3\E\ӍhO}|"ܭ='Uc 7N^=eMD [ܫrsץ N3I+s']7DeE1\a:*@Xˍ29Ucƾ0&hE(*d`V#.eKSM؆K:CUn gRsI=$[D3Q[JLq[\rqR.B$$G4au:I Kc(yjzK #(aa:F"U azXAq5*6!nDr/7l$tj6[aU6AG'gk% 7 c8[Se8X/O+` 4 C<>]$PJ^Dj]0XH)DjaDIDGuxR2:$7sܟc=51Dۑ%w]׊jw]JZK'&q˿{^ A:KQ Uf)yÅHĵrVÑR7LIe!v̼7GV$|ڔn/DT_{Gw82ɚX8-{ï~Ȗ ^^砸.`&h"K`_Wdr׊?%T#?G rrG샘waġr/iari~ŀkX2 g&#aCeoaR:3vJe}]~t8F׻u|7wF[ УqKԠxV]_}(.S'o(SjNZZ[_WsȖr \8gzs"lz)#a\/FV +U_* +^]dzyU9o0Hvlm;#"^U*\/WđM+IuuRY+wJ%Z3Htw ѪqaW\n`R[7ZkRZ7R[G2R%+1CmFO3o gpAf[) 6_6 0FsE)_gKK)VPl&S5e iK݁J3PIE3 %c;',xM޸ :nJH7Pʯn=]R OOU4YXqbFhxTW+1t_%N9EX2~P'1 Ζ~{oVw;{\C qP6= D clKGsy~T"Ѽm zCΫmpݓv F߱ |DUЌ9=]Lڎ=~ƹYܓ}naݥ;50V̘ac͑5"emXi@it1JO!YM.iWk{1p +lS{mp~竗btG:fugMDW/kM9^rRkz?3,CHw޵57MbSGwޭGOB6ŭGj~wQ֜w͙SlZ:wQTIfRE΀ cH 7gS.MwWwͩoׇ#j#vż\o,= _|:.a&=7m>w4;5udƠ_B6LHO o6=O? I[?bJz^ + Фs9RP}nI9u=e!|_ y7j礧Χ}w08A?0?DcJmؽEs60{\4\q%\ ;WD+).@+kfv!Bw_n.\} {HO^yey U(pFq<} ?_>ؙ.1HbrX9$OgaNO“^OgDK[ % f=LYq/,흽mu-OE !7o%Y(:+X0=3T^4Cez]f~E0Re$ )TIYI"nD\)X0HE"y^9q&o&@A(#2z(iP*NG"q" Q/+۝(ps$:2iSV'7 ˟0E?g7S6 tT@QLA;l{~4 +e@\% *8Rȟ +&82H+3  DJ/S2X`(0B +eO%n'3@;47QƕFIqu *@St2Ι?0z.1IIYP9g$\QƔz&pulfNx~ ] +|f +"We,(=J9fѥ/12 e'|IGP~"QID3M#9X +Cl`U۷붞'Vハ;8W =}8H++ boC/", p'ϬK( UtŢ,"+X oP.y>Gߧ kj|dM=oԠwc-Y UP!ʯhjʻ=9i01 O"Ftt%KZxΠRex1 =<g(H9~1+D` 0rתKзqI3T!>vԦl#amˮˏ*ԝy":82x'gE!xnh*Se]$2)LyFHVJJmB]ԝxƞ4Dat ٳ<@/ tq)?61xR5T h@/ ʴ_ˉ}aÉVK^ VudP 9/pt).BWt-xv@#q|]jߢ ֛2{؍PW jZ*\OD-qLOvx ;.tNˊ5r}H!zWA4$8FǏWh?tူ&N 7(mmB3l#_2fBDꚟ +TORB,]RlTQQRk] S<}"bcKRd ̇G%3_RGk{sG/ϟ(VVA2_~18<K׌/tl7Ua/xR,5[̣vOW⻰f{񪺙^7Y[̤%z15"o[Kwq1e1M/Uoɘfbd~"T۩H-6Q2ĥ65yh%^irY^rYUB6M FGʎg[V.mvK"H] йg`tHhThp +BLRϲx^#j@>DD/zm\Nd-mYL ^9 +hb8p\e:b^`^7^v뮕80w,"o N!  +$|U4\jA0RM>ܶaGpS3G<\jjAV=Ŷ\.][H/fHd: FA^)/N>*\5؜pDw&8u>Q TTP3 3?xn&aXaˡ 0v:am&iD)^aH8S9^/?g`s3Bȹ0_n> 'hȹԂJ+:k'H9_ȹA8) +50Bl{2 вtN/ C(hzTF}H! ~$j`l?aWR^}G`bo,b?`^|^@2)N<#Nޤ>Q'_|_d:veR g~kQFQ6'}6w362,g ,*Te]F; c%<$Q"Gjnѡ`ĉ(6l̐&`Bth~&Lw)\iM,R ?+UgG9ɪ1$FZo.`++:].tM-I0&8pR$b +l'bţqMv*XOdqj(b+Ɯ(qtO*U, &fDزMu^.6!'21,-V~h7x>m%<v@Y lq {(#_{wuVa3nn%OHD1:6 +/"}%' ńi3!E9S;S,8{M̜Ozi>yz^O(W,j]T ]IFdҡAEj˪#5FXq1,U_Fj kxyjy[vqߧ.Wm{ȑ&6=f)_PZjj*fĉǎb"XS;Ls+J HZ(c5NJ ܆Ja-UYa1je/ B!gʺ36V1#gOhĈ)kdH ⅕=M!uًy[wO`QzqWi{ڝ\F} +/357(=BБw<o#3롧jLM }wLuoU:`FHySKv4pɺ)1~vhޫ~zZ@IM\oWYvl0 !y06nOh<@FM˘V:Po u`=6zG<uPQPQYQA{n{Hv7xEq ጞdsJvqneo/3)+d=H\`2kGLϟOPT7\:fFawѓiCIy0_{6cXm^+eۜ(+gPήivncĬ} +Hǹp |(fKv[r7X3;W^,:3֭U0Z)Ĥ\g 7lhdn}=Waz? Ab# +WA}Z jazYE_>n3R<%Z!FS(I݇7݅SWlUJ( 6 S1T#. k2i֢`'(NگlYHLV8вg2^ivW;%hɧ)ce@e66ibKז5n=Z%ۉ7kGh:YCլ!%ɳ 7BE&/6M$\;;/쇻IVjIZBlPΥgF"'.PFj̈Hp0rR݃tB.c@NV3QdÓ޵V2D}GPyU{˦ pguE؍YN%F=KVJn]u"aq/K6d."BH$\dMP |F/[ {`uC>g}ަ=$,;wE;x&xFbE× +-(- +nL%2ؒm{ndRW:/n;fަ*]Dj'@!6 _~~WM]˹[7 +@堪'&&wuj6,%cŤxg^v?P?Ye~N]?5iV0u,pQ+T$Hxl2rE:xWܺ#場R/`fTY6gx;Nw֊=k53/K[NWBʖQ@3LaL͠P59XI/)ɨl5ՐfA]/Af"Z G:&*F&ڑu"jE֥ϭ|w bDȷuUC2G!靍$懄'eZܠFm%Ժ:RYc}(me1߈Jk6m$d'Q{cEu|Ýs1V|_VS-i0m/ja]R^ _En_F@F(蕾*N?uwYuo9PjD?*&Gw Sy2\4G}_eDYIAzJP AW%za#_F9U6U;è]at.S.KfE 9B'纤~1bZRUq +˿B_yTˢ d&(!DŅ?.!R_)[weM;qZo%I%:qe/-4  m (#`^.Hm74gIV釔' +#lջ4QNɛՇy>$r.]OF`]d%ٝ٤";ymܟp +] ߋ؅dlR4 7/ r + (><23*OԲov06H˫{[?-X*:e/t(lfq wIl][:o}H0edUa֣Mg$tgH֪n1t*)p=}s}Eu+ucIy qff+*Tl7DX2X%yɝSh貆plp%W`±ɥDBf3ͪ$]9f}:D?R0koLYaڐ$o_tz'htc . 2l;W*ӜE+(MA:(+-p3<u*g3Бyz-k0 mm +d9 +HVqOb +%dhXɦ:aoKwM.MJ?_2QyN7 %|-WbiuDʐni۰ ~Ԡ&*^e/$DOJ v$wO6wx(hGPJJW|?qq!h'NGCkR"K] +p"*JzuoPri,3]e2jpG1Sci<CxTs^ ̶ҩ׵ɏ)?!҃U^rp j[I$Aq<h # @h#|9z19 t~}l׀`%\[V0>Zqqlm/)Z&Xi +B2 iA/A +tܶ;&3%w~CwPNg @2L<-l͔-Mm/ $ C\\L%0Y戻 +&ңv}d|#|޿=χˆ ˏ7xo\_}Ҥ(]ՙ8o :>7JMʔ߬ʀw_&ʸ:=6omʿЀ1?Ow%EѿL= + +_}?ﺀ?{2 TNTq͆cUjN}1㑛Yn*68,7-cͦ]f)PӺ-tzR0J -YV8gW4!Ua.S=;?XҭE֢ݙ}E'6ƣR7ͅU^%{t$c2O'Z+tYZj4۫Ku̓M]Iykfd) {4 yhFA/+ K N6W*%ŭB! hEL U3J́Q%T\-M q&b}k[#=TwVw + qN׷**Fhkeƅm9x?@`Or:(n"-VK$#B) +rb:Qh1a.^u3]+(9n 8U*=ǐY™`bM,_D f8d^7dz{idEqVW1ioB3 +jӉg#S傕]65˖ ?1p6KʉS CTcħ(9(%tJ@ tR5 N%OR9R=2hhVT2 U1=7#k'IwJ#d$}NKK @loEBӲ14L˝lª`*p +&#ju$pQ9x _JCP|(&ue#_nqd +EX,Q\"P_$G,jM4,ţq!Eeqz ؒiF>yl FzWץVV(mK:ё,e5H?)-7U#Q9JT-D9]#Bk{lkjȋ&v ^;^kىuz%^ČAEsX(a\FTvN]_H 3J֢͛Z4:uW2pUU{ƹQ#i67^ޚ`ZeI$i𤬾+ͱQ=~R:lAjt/qc?ј吷L" rcTw)Tp]/we<)*~UH,*" +Z|Kq؜UKzuEY\.FFg!-*>33b\Y %9Z9`kV3\}>Yp|Vm{ )IE#0ϯ/A-}fki2]$#(J룱7n%Zxr[U14 P>\A(`:rr8Qz3pT0yDlWřL}aAہmjy_oh?=NvQ_}5z^ {ͱ~҉{֐=C0n[x Ƌre>5+u[B${_}Q97+A.5=lk-zN<-wH!\ߞX{E]6 (w'wwd0]q;[χ+0y[;=?ݤg x/J- –VSZ}͋7d֙e}pxg7D wR2Exd>_D0~eZ3CR*-5;7 n%xF5"ei@utLxg. }НGaW}KA~5a]%1jjޙͬ͘:ѓtK +XGz=wIy;alO~+[Ҟx˒9B6%Uw@W:/@≲"'̥f\y:=<h[wD^3e iK{wgc;ZXX^ő5Мl-VF=qȾDoDC2I;0lt|gx 'TӸ· +)n$J^40$&rOTr&XHVUsDJOYGYRW<`IYZvluQMP늇Rn97g%2fFFgdFf.\BNGGe\G%Kf< tA_{,nnW>Q_7k7O2x19Wȋ,}:O:30GTIiK"3t4P{v0NKGKMq?ұHa"$Q$J\b3jOX|պl}]^KNidcn@jUUU-F߅[a&D:A4_(t!nI80@6r^״HF^t_˸s_Y X %Y vR4U&S iR{#'Eއ5G +Ii.]$ӾmүQ'y 2_^M2Aq.8s ~ +ijeT9`ߊ_o[' ;u:a:M}Bf>E~~fuT\Up?$[)eJ,YnXCҚ$db :P8/+Exϡ?LαC:\<{*}E'F;<^E{#ùÃNޓNoJg4S+!EQDNΣBDuEيqO}wp?#r;(ϡPmIڀ ̇ab`=?N&xϡӅOK̟bQ=Zlo˳eZ־~A#N𽳈A io)9|JLG/cs 聹9BqR5s*Si?x?O<0ٜ~û#Yb*9mFN!74rsu]cOBztdb5|b٠g|Tbj]F7eX!V3 'gGk[ga'#G {%;L RFpeq r<5L)}3tcюѻ6aԫxSSyx&{J:y>~-FP-769Sn$_>RDzlDl0ޙ#^t{.rUN|HԽ78{rڽ>Gi!_!LJXrZî 뀡3C+;*p>u=ӡ#xp>:s=K;dQ^=v{t`.(=ǔnn̚S bUG@[A*a}6/ CSFV{GNW{r=-ɯ-GrÚlZčl\Yq螣@-jsU@ќ} +/v.>ê<ƀ ?%*V?~E>HbfPKo^S湶f [,(wAX#8=tEh(C2TeAKMq,,]$Ȟ 2K +,eǴ'?V2XYIm!8o?Zu/a(>h6z"C;EjK GF6..59UXd>,oZ{5,ݒ7I HW+!өD'э1S +jV-z=𱍅4Jjˇi鋩kNH(ft6$ -KIn5XZ3B E:,0 SB/ƒ4d.9H׈3;jWdi\2U(? qu,VPЬ  Nn|ߖG!kmRlb]*r +_Džلa"%XNa9ۏ&č7'Ɗ^_lK1Y9 -_T'3,cef3tIhlScJ-옝~0 tdAy\" oc{B|S2z8N*ذ9xo"Qr t' W &Ihu*ۛS^+>|E\9<y)F1^LUֳYZ YGJR dMi!&Uc;3^%gCD;5IJ@~LB[/(Npy<:l>wX{~ v;|=rЌu u!":=G1%qTaPC?P;Px?PA?o8N6}#TdѨrulx:f=yj&E@ Qܡx"a%o~Ⱦ__җp#5PraȽe! d1&ZAuÈ0 ɧxʴf8DA %|%RQ(с8zJC렺An5gP^Di{f5jo˒Ez%#F6S 0:/#'k#qQ\ .Q^:XG] 擿;{ 㺇 IϝDԁ$j2ӣ|g] +أxNIL9Cf{'"]S ;r݈DNKPnR6 i1':il׈aq8龔\/G]BÚDQQ.⍢䬃貧DB9@N$J$lކ4i(h]]pLDحWHG-**& +чgwz9/+Oj-`TɯHdךcUB>Zw΁h鄇(t)}H08(< >LjV]*0CV(e~hs+ (]O;{h 0!k +.-= - 8Ϧ]̤*xV K汔-/h;{\Yh;=,ƃjh⠹Q~)dS*o%EP)d_2ݝ(EVBǖę"?G!nfٸԯ aIZ/ ?dץ]ҧ Ph֝=.r`?cl5m8xJ5`( 佹[r'^e]Ű(R-yCNXCW6J4V!9tfJ6`|3n6mc& 7iyN*;7L8K9VGJ@?U#mgMv~&IN.pcb,w%=6Hڐav`e`л*KO6c& * Y['\Df״{XHegcc1fBx]骭_GvK?ko.5ge??2^]N}Ϥn.y8\<<!<=uBjl. %1|,SZ^1B!2a0#7~sR/8ݯmUSĪwL0|{!a 6^P IZ2|@4g(g-HVv⫠㋮x]8uj׀M+ks=2'Oy'lPa\]Aӽx:MHzuM§t04$-{?2?k#\< =v`|-.gP:Ze;j|jR 5wu3*#MT;aİ u?uj:ݚ3̕1~3-.}t7r:{;p6H8$ogjg,}6.@*iFD (Fc-õ# ii gc[c\]}Wq_LYhXLo$4% + ˳wLn`Lj,]ذᆐzĢS~٤}nZнvTϲBx, 2aal ؐq$!{'h48 \^b_?{o +Ehs,R q!ߐ{Tyh^Q'>qypRg:w7\Zi"\.nьB8Ӿc2M +l4;cbVлA_N2 +A6qu\-ȫ+LʸqW:$3nZv'&C{/k\mm8clb SI74u]K7~\oRd]ff‡o#WLc<=YH\ڱQ.Dz%ف@:PI0 C)cJ#JMpayppȱ^ x!sGe츿LRŽC\$t K(z +KFVsa)z`0~o)&w춰8q)̬4 +&9ʥb"FzCJ#4" ^/x  A(@.RY0h $&sim8̒OomC%u{dgtxrkBꝬrBQ!&.چܲۃ*Ab؀Jho?2N@L<*/0fQ y߷J~ 1G\Cvf:='wq8ESa\]zo%_(vLͮ*.KhNҭkANk\#-1\JRmg̟o礃ql{4y|  N7>"7~@ċQjJW1'ʋC(pQ D~c`-lk,^0^S{_t1*0t0lUQX~jt.IBWro!> O@o$='+z:BN`tC-DTm"m>U-Sj%3U^j'f5Bl2Ak 1F>'G5W q$%<> +۲Ō)>f qrWvMBcR1'.اQ/DLu0ßq)dmuɥOOF!w-)[+zY$aX6tٌTR셿r |\ZTxjJ8_z&`2ꢸB5pU˶*(RWݝ ]+3 wh nb] +(̗N9RJwlrX˪73?;f|F%[1Cƙ"3/P&X3,Ah,$+S+?D.LxT#^7SMm1 xoux*e"7YU?V0"Jվz[ L[Ф sL[=ؑ$8 +Jȳ䴓 }CSF,/p%]0_,T|E3`k!Xo;pٌ )iJ꤯kиBј=m/)u)U[%P`]P.Pb6!?pPJ:%^L:DkYtPS [^i:ǐl@. +z?QJ><\S݅]0|<*^A9!@=DjKpP-r^5Prv0mX[]+AʡRq8ư]#iL5ʡ-zN駡gyϮz6'Y}8vKwfL9 9dFc702$#Ўd%lixW`eWvxUX}aʜ(8z$Yk9WOuvPGMO0}A[*G܋[|˛WNos Aqǡw|n>a;j_X'+@\*4U)gEphk_f"7ᝫ-*/ZJW^d+2Ǐٯ'mhe]FqݫbhIXouڎpe` )榶O6FPʥ}B`C‚+e4\b"pSn}9 +lc[k07i+F 3HJZmcMyy)T6Z5-;Z~'TUTa}tvvF2l;UAi;u\@ڟZaTL5ۜ^i*K򖣮!V<:7$J}W,,K mf2Bllm )àu6>t-!fHlHTeȱ[fRVbW~%ࡧNM3AJn/LK M'ߢ5*_a +c{+D,[m%Nbvćy* Yf`_#j쒽1M+yX0/뉞gY[\%UV} <|N˅8j +sc*)ʾZe SzNI(_D^[`GZ;5+'._Ck֡>G$G+\ƢǾ8w k{'CN$+n4A xl=m۶m۶m۶m۶fĽ;U+";짳;lqOC\_]_Ws)ٹ&F67vnOfT i ~c >Dru[Nׯaѥ> +nLxڪ-hX'|cZޕVw8Ӟҏ}5G<@.[X1"$DɐJve ]=(4g $R'~Zg¿}Q" +aOR dU[s;Cm>c_/[_k]ߠ4Mi@WC ~%r5LBq[Len>>_OƴA90^aZ +h"h i-y6E h +Jb^6 +L.z&N{t uɦ\IӱH$%+%[$L? +sm3C~ޚK0{xKȴ ol!yKabƨ WrMШ |/WҸuQRl^@ :zG5a碳E_Q쀨)tEJ1H\9PhzgvQsvM$iޖ,=MQitߘأu+8NJ4ݑa瞞'R9F$R..ϐ,NOBEpW^yy3}$MB +`"F HGD0'5ɄVJi~S +U "r2TbRVYrȘw7t5{5CqY BiӸSHֺ=EQl#&q͜ouYȁsLƃy7Ѱ7 "ȢT!tb:K+=AI[τ6cyMGr|0)GE1 *Kj[YŶDVaAiVtdS[EQע&Q$M9ESТ&aUӂ"$pVmE抜z'ܹ0գfNGjG5Wh/eufu3Wv< .q<{ֺ@xSR6m WAK̹L™qe7rRi,40C0ueew /0)%$D?F R)$a[0]2O_޲D :_$F*)28Qː NM9%9z䖱3*[RT2[iE>U"Z +-Uum&]4;Ʈ~ݚ2{:JK[wP uP\~dj&`!<,u}ڰaViZU͊}^MS2FE~b?on5ՒoQ5 NܺN~Sow~L=P$/{eL})}^y^}]}IY1ʧ*3#Q5x-b$nxSxd!G|*bXop +jG.LP`ˉu3Z}ĤAe_>JZKz CuZl^c{G:RU(GLD05lv-H,vkAW V'PAL1Gdax іL.i+(t7Z~s"Q憉06 +cF*.rM Xj{5)Afʦ[/kՓX cnP +Zh>1z5d|M_n:㨷؛Kj!e7vf3g*D>Ag,LG5[⌭748V* +㿝CwMͬT 'O,oO뺎Su-'{jsa@,;hSVŕJn@y{f[SIl +#̃G RKDZi|i[nC;\oBg)Ζ%vp##@5ݯz&V* gA;WLMyYUK>}_ɲ1yxɳrstp1yN|Bb\K%ڮYNx +O/d'g ϞMY?6B}čȷ yǯr?Ą8yώR[rzOHOYX#Js +[>(-b0.r|D8y\8 "}k?i~dJ#ts~O30/(<;P\rˎe"zj=4$-xjK^yW?5W=%4zd8y98B~+<Ps~e҄svۜ=~+8{\ Eﮞsυrx 0z*b\"plsxSI<Cde?.Q/8K(t8PDnh7T'11T&|<|E*h$n,Q%TtJ8\HR:X^q;0(W1)^9`|>XzY)Y̴:SmоvVEX9GI.U$ :)]d@ :(/]% u=z>PPs\:zw5 g=+G$P`'Ay/m4V)[)JY0Q-A1Wn!D* =K18m#)@UkhaLX:`?sttSa=8'2t +vr:FFͰ?h%% ! +@d]Fv؀ "'ܨ {0L*)>8 UOHlܬU,IⲤb,`iJ=z=4km$m[L!Zpq>DYUu ˑqoʏ)yUOq+?![|dx/R 95:s@pd`#Śpu4gѧ9qo'EPk3,b8A `r[f9N!+G&4eP]57%lKH 6{Dž$56-D{M&~3luj̮97 +Y0Tkiie\v +D{A뿻6̀e(>B5dox0Str_qe5K._Ր1*ac08p9ϰ%N]FʚpE3݈O +^e \S׉5vW%]GYH,4b5&' ̋D(Xi-5rh[pk%\zEK碦wOc{]c:'8>'?da %Red˛/:T>R;추I'Dsfe cRr!1@OJ5bՉhIq8qؼOTȶ=HPʐ:5\2R}`]_j`Y$7h^E2 +mYYV7؎||YB1\;"HwD$Cd' t֌ @g)DkS?O Hm1?W-f̣xi}z,kNoER[xmizI}Ap_qwT +PCiϜGfl4kyٍ.+9wx7kkMm6fȱ)bx:T:9Bz~^+ἮRZ"Tr&/1DZu#%],b׌9TthàuR?f&X/*x̺)0%4`Ũ>0ۣS`^cfԷ +-ׯMQ +DM3ݺ`Z,MSQyk<ϔ(meJ, `b)v& G+uc:ǃ4(kyVbBcsu2F"Eq8VW6nWdΗ)X70SWōNc\ gLb])n3t4םчk؇5w5g³Utɞ#.|ܾ'gD3t{'d”{',{o9'8l!D3ɒ3b9Qg0oi3dMx^cBsdCkyaNd*Ny\#5lO-mуM VJR799vGm8>mE͈9vb7q\&071[~}p'+:фS%8VɶPEW-pSLCf{F[cT"ut\ItBYz +$k.G. -)o7qwzH"g$Nڦ$'HS´%%iq#ĎړI뇎$3L 3$ +6֋ԬyFFY$Ӧyz<+2NMYs{A23¬/ӥthXs/ ZJlxUbR%m`S?;_-NT&>DF@ܻ8Țs%I*6ln^wEIҥ+ԧbOt85CWC2[&ԍ;ƨ?ᔖo5t)b/u$2`sbE# yĝUjWHYkSKG\OY%NOBȼ/q:7H:!Zq!E*hWtЕҥ)˝q 9v4J?V60G_<93&0- ZχVP<-06-zV|?܁qjL3D-{!{`1 yX&QvLRdОDnWHq5Yi ~x04p!%}c:NU5sWN6 ,tр>?fvrq!`*8ٴ"m'@|9z:(^N2lı>qGB9eUΞx<3<YN&qVNKIZvjMku$/'GءTvRn㴰t%M[5z%zezsLvsH}[,HJ5q|'$̤H׷,e\[O@nE36O˃ɽa6l64,pηIﳛhPa@k)$ ?Mq-ܔ1*MU _TSSg1ƬZa>. WTdb dnV ;b|Vnj Лi1J6gwos:iCZsL'n5GΦ<%p? 5CSw"ӻVo4Aǀ>җfژp =83&$Ԟck3 7$K!Z;+_etUn͇ŦA*W/GfP$~\P/G*Dɦ25\fVrW@W +}3G,~yr +qմ>3k0,;Tm^ԔlWyӛ#sS^͙XPb_hPp:=wJlk /0)%E/s6|'S(%~qz,MtT+F-ߧM3T. =;8!RNGg:V9BbBZٞ־ {==JlATw|eЂ-!j5Rٞeu9Di{{dl}RyWٞV~Eݨqaf}S=Os{$kF[|A8BiPVN{ܭ5B]zB[rkVVjwp2C;Sďڥ[whK@Z_~(J]}hS)QNy%nkD="W~(wp-gԛwx|h[i!wvV×JWfW-;LWkJ@VWW50SwI}(.=0E}H`zgJwrlgK{ ?e@GMkfFVH1I {P0;t>M# /Љ.BBmY +;P);nMFyBjS n6R)r 1S^Z+l#¾D/i|[xbyhy)t$aai2=j!:f=e* UHST=bdYhV4*Y=:k`>3: Q Px1I8>Ery 39aKX2O3T" !9GLpΨ.W\#:.b +)0)ЊFbm+Rc<6' Xa@^׋ BD8=Av'WRNb.K=zAu,Aj^|N=%ESsЪ{H<}EOQ+6dX8j-#eksӂє-Hu!l{a#K / El:4RN{n<˯66]Hi՞vqC9] //^F|-b@;(KQQI+Qx8ވGʈ٤q&zm$TPZbBCb1($RD_ICmBCb>bҹqfz9(و$@ X Tvi$g0tJv5c7d=dڶ}F/\5QWP!4;z>rDɸdQ?Eb0ĞFU|R$%~"4z.c1`>l ,5y,"-'m*qyJNψY;˓AlanzL wzǶ$5pz:H)$A\ܤKQIVQՂ=K|dX[,Hi(-IVnRx6BBVj = J/-ݜ}#VxqFq\nҽx'b6}&x`>%q#Y8!Y6pvq#ߘ`a{NWÄ +/o=2#i=1ЂfRJ R-V*34a)E1'q=7vQՏP˱,< )]Cf$Vcd):[ɞ,)UX9ͺ La|vEe&Z: jRF8fBUz|,l$%6sI7|K 9gzdUi3M&*%{ rˤiܧ}%vqAKD&lئQ[1-ܦXٰ~52ABrtSbJJ7#Bn0lC)E?&:=e?G=G aXr]{;+wt)`k +5'ƵI(UTz2ES$;;t!n6K3CG+s!'Hl&橧BI_&+\OHg{31%T;ޠ[p籖W7n\dtzP1-".d%(Mȅ*A5.ej[“T%\JSX޷MQT!}~|FecCt <fGY{1#4YJazZY @?)yP>O՘05ӸC7v }G3*&&鳽,ʷB~9oK[ށ}ϲыdOG dd`I02qO'8'f7OKG55+RH0C{Βã#DaSLNCأ2iC,rZ:I +̬C]z +gM3֍o3Sp: +AaoV!:#Hz#E݉e?N6; YQ.I ȫ/#'WlXMS_O:,RwG!AʔCm&Z2Voԕ}'@d`M,l4yMU voHiMެ69L饖]YH&mɦ`Oh3# j6flu l;OhU7"r{8k9 yxu@VwVKrx>64$e1"Z7biTx;>ww;Љ6jjvk6au)pmEJܡ$?jd `iLd:E+T#;fRwf?>HBiAyltz`e28M.iVZYbp&LVG4z~ :5-<ƑEjX XWz::MӢǶkQi-'3IX(HamvUJY}D?A$fRӏ뽭 gDa%ɱ<f2ar=wtn]˰uĘF׈^4!Eԡ&9 Ek|smȵ}ОG7ص6ܳ1к~{5CxQooג nntd=}GS黳ZxuS7p +{Y`YpLA==o?4'mm%;nH`Y2W*zxDa'BC>1^hUrF9eAԶ_ fXkRBmfKa'IRb8|"7M@db2iM#Yٷێ\sO{iv$zp$c&bidܛa{sϧ<`}:es %]C B۬ud[u+U3;fiyOB1@ՈYC=J;hHuGlz+:$[;&6:ĩbIeC>I"dܩ|& @\m/]Ό⬉\yp>H3لFz2vM{f=&Y/qlh)·`- $.v"FeI/?mrZF +אʭY>,V&T .7):zhkU*&.OUj ֽEu}jgCE9}/Kge8d-4d)Ҧ ݰO‘VN{ȟ3BR"ęwQdέaΨKm"8w41#͑U:'D#oQOOB-S7ur7X\cAcPc'#~Wcw:$P( K^V1z`h6~9wZDdx.ruMߞt|Z]Ou o߹K[W=LTR=ptz|o=MS1 ^r)2H0hG6"[u 30. =V &1leXy;J|v U$  Ê +i~ =Nbs^qFy<t6gZYܧ\%6I65p cIBڢ{E.H?KZ1717`9OFZ[&6GDNّq26X` + +/cH8]v$NҞOny3&>ԫaj&~H2NЬ,̵DEP0ɀQ6eR5 quP#E FP\'BP7FoJD"lx-䠷,^Joo8%'~10+^_(|WJRh d4J\޹u.ܾVؿ(GyXvx%km?(op% PE9& HJ`Ac=.q`pա׏ c5ϝp>kE#YS{QrcQZ/O#*-M&@qhףPSdq )aÍM&wy=߭ 갵4SosdҹT !rU1_ ݧdq'OO?!)FaM̬_F|uծK"_3̆؁YO[ +̛{J~;#!4M_8z#_U9iPoLwG!Ws, +0g$WNm06w?ȧi8 0JqPk$G 6F1BJ.azbȞEPFy}K;z(s^YQ唑xO|묲ݩ|pF&"W*DPBl>O]kjg +",|[& +pf瓋{|e|&?B/{sA *S1z`:@kp5~@J r' W rr~_.{n9*.)33c/f?3>pW-g;\=IK*$D6ƦHl$0BL&5o=@v -2,+b+AHl@estOM;&Γ@av]au ]!?>ǷZFv,J qٚ% +a%%LRYNfV3019J8^8QO$()3!V)mʻAJ%vD=ZS%Z;HT62;.reh!Ex[JwL/Fx.yЯ]HNR ]Q`#dc>RC=d'?Z/jO!vOæRg JMѽN\DXt9=RvMwKhyU:M,]>T: lX r][^b  O5j #{^}RPhӋf#%k6aa+%-c)wMU|!4nl9y:$QũJPglgَeNFWMJfgՠ DYDnv^0vg pgl={w U|g1fJo<7ތfhVߎf1PkԞ7Er?Q tv!jxT:(MDQ*ƭ3/{^ETs:p#JA۱?`3hcpN/nO b)E -qIy%_%[?F/?nȥ@#ўkMd5P##4j$)gd-Zs+iZ|:Cov7d>|k"u*Tx*oTN=&َYSh1 IvhF7%c`3{Lƨ}Pƺ UOƕថRFHxC[5ļP2,^;|_Hx s}GO%KV}g h%G&e~$cK<ꓟ%QѶ6 nfaUpe@0`"Mbh}~pRE7M F럈YV$B Ofca$WbUzIeB&TZm*QP [E&:RNt#h'hl^yH^$!o5"=x +&q&kq҇Ir$@/ᗠ hp_x[6(iAIi֕hr {/)O<ԾefhWæ=+gZ'4aMod md鶦=2Kj;;ɭbʊΞI˒vflaD(">H}vj +j2ގ>_7H6O31`%b'?B۞amuj +8;TS~j >ς62EzL=$>Bҵ2V-r͊НJ0ՙ)xºՙq֞SՇ;ޭu&s#}{ fsrVMm2Y"٦Ҡ[ƛ h;z8䅼۟yz- jozݙپ>2 qg{srg m<5Ϙ枞!果1;:u>@f3%&yWK>@,3iGK QۇF%JyG"̓z8C@CxMx:KkKشsBeObW3pg,\(w7W3 UdᔄZWDя~+Ol;0ۊ)W`cA*YKuPbI5i@A?7Xљ=[6Vꌵd::wwτhW#\V[i<|eL/T޿H/ZK=p۳s+=A>5Ii0M9%5Oo_@b2T_i ._n‚\b}YZ9VNp[00i̬c5b)`C{h elF+S k]?K߾Su*>)yV[gLsl0gQgq-4bUZ*H @6}P `x?QrEŮ2n>ʛ`<"k){ϣ@Q4ȏwvŇ3:ޅC\>3'J/ UoVؿ:o<Ȟ֮ogL8ˌNɜ.$Jaw~mʈC.yJEF &U&hz1"kG2e]DFd_\]DRp  R%E`bȚa|dDd+%ziE)%~exR&е#I!Jv /Nw6ԏn/s[{b\2`OkYǽF8 ,פ:4-3/Fbp`30[y(ٶ:]63NT>t&%Uص\UvڝK|pYUZ?NۨW6SoӶKhN:Cbӈl$:ᛈqh׹Bm=yy֧e02 |Ӄ AE_ AqCÿsbFs)ۣ͖6,>A}cAb #@7 g Q1|RslA%AQtAq)-{mw%9XHo|+u|H @Љx+*# +7ͭh]bg&('QAf.ӻC")Cq |B aFh|h!*ݻHrDlDQvS/` XR%ᴄԐFqi_~}Qp~s>A(Ǜ8چBe1 Tm0m = 7 ̸'>JQB4=}V*?@xj@ɅN.LΞ * =X-oOJPrέ;㐻a;?@KöMGGg sѣ,R  by4xg٧Fi@^ Φ[b29E}OrS,l + + >-gGpAEa(w2CFC>CAǫ͟frJ]w`eHQ>K +kcH1,]Fݗ+30Qx6" 1$&Ew04IpY5TBü"D—XCFl;^lGUpZSAQ2@} 0;M&`QytҮ|"JAA~3S:.7gB,v.BQXGeHNj2f!6Mv?@VZ<*V1٫Lw|?ǃyյ0h5 ިVH +#y'^dѠhY+ ܅Dah8[h70M+'\=f_/|',"/Q:(΀<\ zBm[*vI=n h7^k߶k_pnmD_ASU7`(LDεZ>"h0!L6Z[lA*;d~DZ嚒guv!LF ^ +2]Xu3 Tw@.?1jj*TSvQ'*jQuHbT,4#)"Zôd(hq}b)zozYXC?`j,oR.W]B7}^׆AΠ J*Q]J6Yˠ9/mL qc'ؗlk&/;ҙ4)J#f4Ί =BCht|N vwi{ycM@Nh2cJM3H~Y'@ȳE~פ6u8/_61Ǐ m yQޏ:Kx*EX +o:^bAdH/*i0/@1>fy0ȥl2AAW8>7XD|KZ`h|8N3Az<]EkO)婈;:>@X^(^:.6^@0[$ "{e@܄rfHȿߚDV#OgU%(i{c]%/0dKs\d;0Խňf&ԭ eOSv]vI#vrzH 6LN0Jԭ,7AC¿6 ɬ7RCXm`(¸ +(Q)#R4U#R`Y"eC!0ِ^#Jʸ$: f^tIƏE CPݒP\mM +w,w7n3}sX/٫NO* *lq;>12J&j,yr_`ot𴭧Nv/Zee ורCwɝFM^#&DmQT PkIhW#1`U9X=lw `yIwE>ȹtE<xSF>0pK(8D2ڧQ58zs$b@ijӵӚ@c'2,TfB x󎳃~8DY+-cq]:唬|m-А)<+az8;r-Ho!^d5GNPbeb8"(p +/]}ARK `=jf*>ۚXhjsM0xQN<҈uBJꤌ VMzx4$\FnS ȀjFix20*`Mq\ǟɥ}\i yrfMAR-=#Fr\9W,g1zvpӱ+lJs† | HHCTs)]stPdn, +mkPzF J^L ~N $S$:G2[L2YN끏<:Na7Ӣ|4yyDfC~^N>=Y2%As %4 +Jg$zPC#,caUοJg%<>}lFI_5dTkY}}J 0rsMp?X}`2lR^Al8ťi*{*)LB;F<|*)_o|O<7kN"<-/~N2')Oy1}J0 a>ڕM-ܐ!{)q׎p߃v)ңˈߧ4b-8G?1W@:UJ4^шujePӕ6*IdX2i0g0VZ1:Mӑ,EhrJ՝Ǚ`U`sA>#yg6 +19h;3TauqK"$⛚y3h1ј: +q6$ZKZ8xcŘ4%Պ*m܆ج f0oȬv^mw) 4J?ޮ;*'렅,wa2'Mo闽w=h ,ʯU)Yd6nET`1L˨Zk\(vwo#ܑgLɭ[U56(*xn׻"j+6G(+w9v$p0 ?HӴ8OhB?NJ k凭8+8:jikV-"J*ZXa`qX"-΍8@+ 8tS)33S9Д-Gh/0ƫkK(E1ivpW𤙴Yj'QwWd+χ+40Rl{ijx(ųK @rAَ7s( PBrżd +Y9;ZR-)HDMR ),OOKo3ݣWN59 2ZET+L10'5%?^F]. Ri} @*&Iߤ_k2O9T'EU8XZHeQ0g\!9a㋨\R0\]}Z3x+UXm\#r}S>X9b':O%@<c)"XX|G=)?b+[H 8NӷC l +A"m8mN^b6"`Z Ӑc +Ѧn[\ʼnĶ:rH^!I[35 o^,ꎒpv<|}2XeaEOI'.i՝hK2baYv־bhSZ-@zQ(M,Ē24uQAK9wnu駭#ײO^5KA聕+\oFz,jDȒ"x>(!ID3r +\pxLv3ӏjrúzj5x[H9|pƫ?8gs gwS{S9QxF]3@=K3ЀG@- 93Mďr`mPl]y_[!ܐdQJ卣:4qʰldF\R,oH*a!HS(ۘd<;x[\ *"",_Y#\(T B8'C9;C4ut5/O + @rtľ>F{>ޞҾ^7®9nm"V[U&fiȋwmL:%L;~$N{= +Z=u&L=`#B.̾N(/0L}hQ 3*4Za +A A]Qj,Q|ʟމrvmIR}V1,TX\#gd, $NRi!9u~O%vyĐEz,6Iyq>I)֜b4F{(>cC1Z1M*D=tjw*;r_9ݎ h߈ }j AwM?`'*]M F=oM>xԧnTƵO Zu(,o$67 }4"(9(C>)F1)1"i6'ڊDsR8U /hހS{H7U;V<t+{tuKi'f†WME +ONcuu?g @Ip$uMB3asL Aso0SfwӕC( + u*yѓ2Յ~]Յ޼ǕDx?,G9wz.Jr'::1?_'s2}<,~wM%O(rWLm:I&O.]wfޠXe0zv&o+P5C l|$J>t"3v΂B,bE*L:%M eT Fa 9-#TwTje6wmhq]8}NZh`NA'$J*mAF$p+gQEpX;b +kExO7">1+wQg97"3nE^o", +t` +l +A![z˄lr-1k"*+-A=gPt +&LS:2NH( "4Nd'ɦ*L? bOi e΄:ע5 X"奠L꺧5 RՀ BN`d1Ҽ.EeΏU/%_M/%-Z蜓 +D@) .7l.fKA!`4@bU +ݎKM e)'dټ~vĸ +4N1)\aK oBe:6Z#ΑZmtqXhqjqj]#滬*{>,8ŧMѵ~/ M=]f*d%qzV\'әPwUL(Yots]<,=҆gx0)E䘀S{>IzUq[mw7rw*H7m@MsԖDpBT9 { Zͼϴn5se᛬O`ʀwJ!DMHGt,td(j3 ?QZk$NUNRmYX-[t͡ܦx[mN;/(Ytw6QhkSڤM P>/G-*P#]BS&͐#4hv*6Ԓ 4e1\0Ea 7.=1HұC@ Y dy)o}_HgfmfӅ_$7a[^p?0KET Pnu%M ޹z^'mxltB UdsqJ>enyL>$Tw"q'dwF Q\$08ŸK -MIɧ̕RiPg)>H_w"co"ūtX`T-K,IϤ|TJ[wv xLzܯ +70ٴ׺ iP~ M#qgif ,=y5M2٧QBf@]Y7lŏM .7C(5r"ʵP-84+0%,Ūl 1^-RI\be0P_4|rxI/j>-T9ӧ*_up(#@@]a̲.l KHnaX76\hHy3)Jq8B@E`gVu{0~ލ")א?Tt&"F _uz5Uj; >W5TaԮegw1S2׺WCQ}zieuĊƓ{z׵`kݺƤ8ֶp "l:NN Ut̔;ʕSpƇ㺳\,յioCQX[MH/(7QLڧ|=`ѦImc (n =k}ę +W.5^S?v>M&W/-X@ +34tșͺ+p8q%dN~6vHNyhhV hsɄ8hu|ºиԔ7;#e+=wCc88F6^@7FӜa`Cl + `Ƹɷ:Ly^ ũ RqU+DU- J2==τC14 sT+n!, &=!gkz +nlOCk  ۠g KggBYțqpK;zp{Ǣ'f0cG3* 1jceLZ8;M<0&F_~«w +G\@3M~x@D;i7f^F3@1= +Nw@x.U,K5D<@]dҜ2Z+9C+@<1P~_Ml(60g|e|C:TxbQEXVIZȼ)/I'Z?FwwI_ w +gPyY8!xK`4rG/A3F5]㚱gwfgT9,ŏU ]cJ^e 'W~Vfzw6؋opwe,Ep +d0s$Ir0Pcql@/-V]Urtuy5k5], 1;l97!zQYw7ο9'o=}0=~_1|CtY:~oE>4uwЗEKoO45]ߞ=~!;}Mߤ?=pە0vn女c7mm}Ru`sp}W-"N8>~^._^;wټG3_]oow BT?*0!,0c;Lk?*s_O#C??>߄Y>o=4W&ɩ>=X}'op>>:J=0z):0)>u@ +eqJBQ +8@2(:EB`=R@3pla0Ԍg(Nc"q}n'ar(:o1?>|D +w1tu׾WB +Ȥ gr0o#B( +2$*Hw0 "VE _J +#8Q`(ߍu iKї`ܕF`Й\ɆuҥN/ +-Rٓ#))+#tEV4 ZД#K=0YpD. ;Ԩi@fŒdp$?:uoK[?Bt- + suoP.>ԘtQ I2ܘ}TÍYGhO~Dh7ş|*7] E+WAʒ\ӬgVp[ ))WQQQ(Q8QG2qQs̒b7?xV~Kq/|Pw:h!2FB>ãFH-çO \m*C|-bhk_rjEd S0G0Sll +ƧS?ggɀ]eļ+W^V갗,a4tP*VdLVp4,Fk_Zna $YF*1\CF)<0V_nve`@@C _f\$"GGZnHx荊X7!ݏ,+:f 4V%"@)Rdps1߾mf)B2 *z.AOb,+1u^)}[?/,PGTXyҎh}s@dmud@_NQ=m6~'63⍥WknɍH2пv]"^8 $Tg'!zCOSJ*H("AǓk6~t t!d*+ kӐ:Za%Uձ8g| /:^b>B"# 'IN1({TpeİW?vҷg51^ao]BB*W|j%M`.% wH$VI )3 J%ǰ(ƾc% mlfV;U30ːp& ؒLKTmysJK I @Ңn9,5댥^PuLb`MSv|.R +kejOe^P]OJЋO*ZhGFtpi2 &4;iĘReܜf8 +VIDeݎRg3lL\j6KyVmqnHd ,5u^6$[nJv+C|6`@빝*+S/)a<3'㨴JK9Zj"k[U؁\lH^4;:"JEcyh/A=4*0&K͸Ŵ{aeX6ZUMe"Y-"Z RdFmAJ'y]+ [LJphs򪂍Լ@ms!'7E3 +햎TGJv,^I߉uʷ fg1H7]ΓbYKkp03|CjSu dHlYxM4RZ;[qf;K'5v} WlK!>Ji2O˔= SĦV 풐m[y2U(uG[.»u.hKlc0 +ia92fS.dbR#,dT 4.c呆"eJXhN?v4pyYaF* :f;IDIYu{Wc04nj7N=}!빳QR<0\YIG^d;:Y&.QD坱!2$ 2M#K'8#7'aY? ;l1I0`ɬčGrNeb6ohQH㹑ə9&YGztjztbq@X9;f>WnnS5Ѷetx pY٫ɭ jɭW 4F׮JT€kY6MǛd &M2~ pF w G HqG˷tz;=bϯ<édj)zqPvIe>\$cO8th^'v|Be~޹f}a;ʕkk8rmtNB&oaΠCN .ᛐ6vzTN8 'n' xhi-]R9)dpeVJ1i%;Y`GDW +ki??|'hɆ <'H(j12#.`4קԢu${m&#=l?&Qg,'=JKRX3-݅s.4Mn:7f9Aͭ%A8`*jGVsp) +Q@W44Fޚra -@,j!GsT!95"XՆoUI6SݷNv?EJ2VyGqpv]p߲dSqd Z0Ӫv@ـװn#fU|=ٗ\BW NҪUiyvr!U[EE.BXr:KiSBR &a ;˘A9'%\HEnL\h,'m:gF癢)·ٜq.ӿ_ݨ>%|:XLsWooX8U&5+$pW}%FCPs 2:b)7G_15npros-j,uV&wV~Vmꏕk;:$t#4)( +Q7_hJ@zTHdu>#ݓoR24Lo*Y`o=ua$tD8!r;;B +6I`Ndi7|MhZPmyz6McOSX8gWgk䝙ۮw}S|vF`y8i6F,jRlwRR{W)C+M9‰K9bKdz*pK%pueq`ָ!u<6k!I2krnk8zg`IX/w*Uڂ.bPGߢx$VpUj`ŰEu-m5}=i{n`&پٖΝGlꏈGnc4FUxC6ӊ׺RksyZG,8/x?@qxU+G憻u=tC!M#P ooI ʓU ^F^W[ +3'¼_|Az`(q iÒ99F뜓@]lhnRu-핏_I85}yLeuV7@p&_h>g9kWDQ,rSFط GqhlHKp)0W2S5o|ɍTCϙ#XFVcM9CYhjØ& +Ge?q nϰo܀۴af 직GN& (NDn"T@ۇMhG}v~o-h9 Z+9)6S_hcRefPS؇vP9$Xh/NfCiYw/Џ: JI6: E˜eqc &va1sj Sv܅G/T3Rmɴ 6h6lq܋I7v-e5/33Z먪5%PE4W+H +ݠZXat=ZV2ȑ h|sW(Am "<73.:#.bpI*uư/B:/Yg m:.'G +Uy$=8FMʎO`hGr}ǝ3xam܏w6$a9lb4  mBZ`Hi.< S3|3 -T9J9I+YP5GLza} $jkF6BM=>!60m0,5 =(ƘADKPݲd<)FiSum +νXb}r- )4Õml{Y.~/rzne^D]J^?IŃ. ӵm.IBa̙gԍ]YPo}Qq\4Z/ܳ3O"HsdjT +lІ]P#*F,с_I&-j>%QBd?ЋQA=^7zCb<ʤ& |0r~ ggNN}K{Ch%yZ!%70 -& k"ljAmztHF0Gʶas|bLXy}HDe1GYZ_xhi'(DWotid؆@@{v-gl wC~ޚWBbJ]F\Hf*JPS_-!M!&z2_)Pb%.@f麴t՞)aC['{] A|?ܰe#C?,x¾۠ovz$AW<#7VؗKr՜-)U© Q7kЀeH`ԐI!ț'INY:|w ˧=MY$_,mȷDl=4<vB=O5jO E[+Ï5^ (])q}5LFVm9WY^D_g 0,:$j MѢ.rB݃MK<6AFwW;$^jьw EX4$5~&]ٔ'g0hhP +l~5>zh)Bc_'Op'Y،8Ap$@6D@=G)yF~)T9s$F6jvGP?,V@ E~V쬺 hv `m8{oYS4b>8.v>`KTniz i||sANhا~ϝw&=?w&,']FMP`]3{Nx (: 73zmm$Xr3; +z(*`@?":38G,A $zxu?p YH I6f3yƓg< }` #sī# +%Ƌt'S<fV4Y +Ei3 +NdgG2^\6)!I4WY#-H'*SŇwXYQ̀!X{ xoT :.kƱzc +L L%xT1W>z+kFz (fIWW;-UݖjX*2a)F0~XP~t=XN-]p#t爡\8s869sʠ&>چ/ylg`H3v§D<扁'aO !6 VS! 2-L dy w}Nu؆g#v##m +:#>dT ):tVu:xf49=b,+Ii +";͠#c10iϙ:U';kJ#zBp5OYO|4 %@o;!n{zљO ob?B 7ٟPOwi{ٜ6''T _jIvO syĶO^|SykO?||s~FOWQףj>z)#ʤGU>1jѡMIx[ [xsۡOUt&q pvjPO~xGݝ8r +O|~QKO.|;|{УO>!O?? Զ(?"uABzĭjƶ47x4\E%pku ᆬV[j޺W+*Gط66hnrut+0q eŶʼmY$Ppf̓h g~rg>Fʶ̶ vYXSFSJST`OM UZV7R m.v=~n +%whENBh6;fXcqv!w.'FG}3BM A!vCڠ\ 75I#M7JucUanx^H*Bo`vjC p |0E7v'ݠ[QFm=ڐvH5 SFƭӈH-͑-@"\U5t|FoeӁ~7~CsgI3ڨ~ѮDX|i5 =v1ai h[$SЭkflӺI.p4$4T2SUf\?ڮхC``DA2N߹>cy=@0s~+y .b#=_烗q +>,CmWlc)keoΓ҅mYnsC~TSPVV@voÕ[&&ucZ Qm{kz ԫ+t]9+ Ut%-ݽAiB*yH#.(t)cOjOr/XxyO{| Լwa T7 qT͸ᆲM];(q]xB]zhe[ V\M-E$gji @>WT +Lo9L-a/zXctϮE,ުQY( ːpԷ6 +~a+ϕ*T.Xy>ʀBܛ9͊IDqʢ,,UeɁ N߳kv~w ^]ۤW x- RlX⣝<7wUi/_B~y.O>GQ y/ja%\3kBGd}ɗ>t>e'0 $laR_eoM-gy 9RZcكjS#ف# +f{;oVA0i+ۺ)gsе?O<𤣓լb=8װ2R^vKd%4~W0Tr6?o[)rV4x}c҄U[sfA  PnA>E@e,|s>{y'F?bvyZ3گ55t஘M`ufO}mc·u Yz;,iMOqi:ۯ.ۅ[{i{⸿mCY/QhT_8oԔ0*2ٶ+e"86;{!nXf%ҽhl mJ>b~GC&Pu8sAln)?t=uh:ğ,ek@amOS [QЮ-8* Q4SSf+cjqDKVlA KyYS/]N +Œ69Jٯw'їXeiDW$:P=*e~[l@žlZ:AֈiY2;VFroP)Scae8#/%ӓ@啢?L AJPl=SӜl󻄷h1#k^fsDVb˔w$n$$09wl<$$Mp3R8QX53g5šO*̙GGi&Ԣ? 'wPGN<Ì :QΕ6vN G,S [IsjIdNp|C9Զ m`(7q{}JX$=F|q.V U }#dTGmwR)7.S$|q|M+?кnFVzD%w[)"N[>&|HYGM#-=G=#|?$qwY'Bbc6ؖ!q$?rH(λ]72Ϥߕ !~wk&XAo[V0{ħ4gEvi1fsԊI: +}OPA¾B@q}8thÄ96Px#rO 2ĵL?ctAo3`OXO Ű8$BͰ<*H>Ä:$1b1AڮY`LW^mLTg456>c<{GSoJ4hREFG#ɥR3BLtʼnÍ +10 T:"0 2g=j6dc:%*zߚo85?7~P;s}Y= {؃CMێ]`l,U9T }RYo]&r~UVo+bƷ^Йm: 3ҺfG!ua}P/e0HVCZhkC[*AP/0d<42pw)T|^g'ۃa ^/ c!.XHcw}c̜c>:PvvhmiJ[ lcp&.9WnO[]{H|(~e_<}@cV%UYAj^ܣ2+&IZϔNwƖ"x=N 4v`:Faai:0S^䁆9?t j X0oǜ +/ efIfWavd}cЍiU╟|hpx`p3`3hS4Zنmzs A$NvOjTie4D'{?{@_~|g6ot5E5)Éئ&$׍L_+ G9k;yɔ6.hnMڄuqPwNu܇j.A6@3x%N>?CV3l~W,?~*w1Q4'wZؐWOI|k)SCTlܘ[0\fXWw8?OnybRX'Ut@- E|"=l(Aүe.F|o>N'^\m˜CYqNm:Zo6=1x,wݱUjѪ*v娕6QeB?XҖ<֡ Z4Dց|ͦⷨIrռ2OAIRvԽ4=Q( @ٗlok%[|eξ2TZ!DﻭDQm/!NI򹀿e¸!z5?* +s!]8P""u?10EypTu[1Owc2CJ_L?ZǓbQB<̜tǍNCy8JeKq 7ژ>HIEr¹_dnFb٢)OVY$s8õ=N^t|}}CuG Ū(]ĉ ujz1OGV!1\j܇ul(׻0L4bD~c 3B( i]Α/bH>єI(u#L*DwX;?|+l;o܀ CZHTf:-4-4X VtAQ%tH!&T;+XJ M5$X*HAY1GIwdOɊͶ$ԜT=$Kmӡtsx6=v=E8?2f\0zaȗtm݊~ί;~g+ q%Dٺ!0F[BɌZ&j5U }$j;8OɊho%c m - sjӲ8 +KJ8prkĭ,BtpbmSw-ds#-b CkQ-0UBRB^9ԑ)WY# +6jROF?/j9Gǹ5@xʱzbf1ę<Сf$T6MGJ Mu^pqZR&m#?n>Fnɮf/fp~Lt*dL\ Bs+ Qkc& h:V W Q4tևSDRn.#GܒykQ -lsa$(,?G*U1',D!-mOjGrd<4& J+ BA{}i6v6P.Sk$`f4 {`]Eo1o-vxyo1c[yb^;W+Nyx)YBqj-dvBh_ҢhQw/jVܖwaeXjSF.{\ZDB8]][}$;'oxK &AC*hJՆy=8nMIbuMDjh;M+Xmˎ> !QN +A&Rr5O=?A7wdšҦ֛_xս&cׁYr +^v˅Yi瞦g-r^Á|z1Xc'1~QJh0+q44DP)@|jo/ 9`- /_T./hG YG x-LӀXz:SG ,Ͽ. 9C4ujO`%X8~Co+LB0?qp8Gh6wj6wl60*ݏ1 +k x~%y9DgT"r +N +NM5|YEf07%pS(ƪ5gӚ(ٽ'<=?*C38L?|0ozd.ClM:=U' %By<'~@ +uO{ r󓤎4"5riR>acҒxKW0t&l;(,<;GѠ5iiEͩ+bdCd d&ᆈ?7Zͦ>gc&'ZY唝*%]C_f:GE}FuBr]B5-M nhStz]UUeNgϥ'l "P^S̅E +ck%8km(#ːRI>lR|^R*lAg Xh5G!"\TDU ђR¬mY)үZ}~jKߕB{ڤ)u2> !4iJ.jl, KxF:+Ow$J܋(YמC# D.BO ҡIy{%{m+ 2*{Ļ?Ѩ86 zn)2T6SHu0+ +5ئ+C(*^iL%+Rs 87Br4.Q|:L뵆F9b1ou. J =}VxCww'F̽|)F6`Ȃ6\I=?d\"9BӕQHގVa|Ct!} Č0NCaqg!c'1EcSPoP^ 9]g-oLCŜF">݆lL n]e NN ^,A^|Θh=o9tn*(AtUweT$ <CPqN7cީe[\'r'{`cשAz:!A4@3ثCC*x<" !D:{L`oR,@o,x43VT.Hl ݐ(C|sa!${CtCCH xyHT +DV-} a;[ۀvۀG.^x`CB `X(pG|2 IJ gD?% ,B`M@$2c`L^ĹQWhC#h}@@zXB>?YnSk! }_C"">ymb|PߡsO$mmb츟s evܖEfǟ9N;g!"mVoq__\91SE +h ==Fc- +GyEf"W%.= |.C(C它gVijcx*HeA̢`I4{EkîJ&[[Rqz:MF[eIIz`b>'uq}[о}?y_ZֽP mGRGP? #́>ŀ6|5/`.i6g:# DE!l:*4H>sDśAVk'FY3SZqU_ C4-H <)G`cN.isx0C;]M<`PyX/DrSmG#p +r)aș G[6X`^ bkP!/T߽u di_=7 +&lv98e(Km+v)}d^F4߂^n|7XG?͂n. ^A=bnh`;ve[<5 (V!h\WBbL'RlϫoVˮ6/TzEnI@Hq&p{{{"պd4/, +_KKMJ:x5#HݝtnJGBM7K)GP)'s}>Qe R{(]f +^nU o`L>~B̫+ +S<AErzt3aB70f7b¸G5,4 3 GI;dE1wHˆzp^,C*BF`<4Up##H3hӌ88;X鐭I!5EбΎu1nѳ6m߫:⣠ڪbBx zI89 xw_+OyT@*V61YAӶ1YQcbX7$6C58?<|O!+^}/TP\@ [A[QW7tkؗW.鼂5vik+,?ׅ3U2S}1oz DBMVŸs[Y(^V +ⲮtOc:~i:v*t0z(^"f +{054ov\ǡt YwH.zWFb~R8E~|OWAط'{|*`>݀|Aၼ9"Сt=P恆8;tĀF?uC8;R}o.@N_$qDrwh@G;q"~;P Gɿw{@uqOeݝG|;5&sokɩZ47;85>(˧§ҽ|ltU}mt`Vxgn1`D/j"O~ E毁^K[Z V@]p&֑)VuI4w옙ORܩ+[2 AbK^ru*aiϴ `D.P3ƒEPE'h3فt*RuqaimlĞ-9fm~SJ3&Dxy ǨCBٞfEQȲ]vw_~ =4Ym `i{uڻ.k8ƌ2k6}T![hI\ŧ-u~~S]\iG:Ysrk3m޷li]Էrk+"Sko+kGzH}TbpL8 'Z G]tXڀ'd)J0&)]KmZ! '8DH}P׻]0{'/z0$ہC'Qڤca ]=T'}'{NhT}I +QVNuꄜmNlr)!-E\cCl_.]dG޲^2|#G %9(.ՋL< b(>e_Yc/Na<2ht> ey N=Ԋt)oU)oeNe}٥`}BK룖oo>Asej_'G 讛|ht1]UFrK/oI˞?Y}'hF\F֟aD3V{Vw#oǛ% \hfǞ&k"BcIHUMI2hLnt"9ks:7!/G)N3-f8/RORp͉;.x L[28"|(JSPg+\mtݴd+kџg?%Q%p+NI -Oڍ*_\MiXTA]A ]GE&*YdPFh`+O޸5eK&ISdޯe|K}[WBM*[9ϹO'|g={ (b`:"cwҬq@^E"[<}HdS3`ϯPwmAD^xHO<!JCBP[ +!N-e]^38RcqNv[Sbz!Fn!/ Pu: + +&u"[c7Bi'2wNy,,teTJٓ 6+G|6)5[f(LCk'\NK$WΡ +K8/IklԢ +ixwN\A5EV0.e b +""T4PSh3Cw-)3rr}ӯkЗ"ofOoO"g99}7qfyRR<\Z2-DFv*iKL  +nYE.Yuq_26hKt'qXfGr3Y!^[ԥ@Z[qsu +@6ؐyr6r3Q&8yfxoLw)+.0 @u1fָ!%rW@RWQyte3lfwA( #q\SǠdǛQjd6TJm%"0+qk熦)"rw҆<~۝X'H9(+HR2#JatdtE8' ./oU( DŷoDnZVzJ-=N2N}H @!抨P攊A"Kl(f*( qRv)zf۵sWh WyCZ* gk+XɎ1Kڧe#`wwcb *$/ճ18M:/?} sJ-XwjUk-/@mY8Rxwف|>:|G7EcDPP+-B'^~ *(3"U4q[͛o}Eod[q2w$q/V1jp4le.77䈒2KZmVPd1V$ v%U}2q^ J$mP#۠-ګƔv*_2ԏv⫅}lp01E#/49 !4x%{?` ➩|e1 Wi4N_ h ܾcQ?s=Py|$)@doF7~D&Unn0 Xc,MQKe]e TjL[P(DQ쳥e}wL.bbscü河Yl^z=fu26T;.z8%ܦåMt3@3` 3L!/{b<` O%,h0L31c1RfS&au<$`w?@ Fœ + ) +a"*ث_L.d ىANC|ybk@`Q +"il}$:2 +jv8{ ^Ϳo$$^(mPz% \15ۍd~C#FI?dPK.#zjH`%ڬBFkzjZ=yc;7=ZGS`C1N t7%@[qXy0V< +>)nTO0'[Fb`W<TArSi7*:AFJTp)T 4ȌkfbʑD!kj֘_uV~tr+{\BһWF`k}H\Ӈv%w g`jف2DZlC>1]FQ|s;75wd (<>}rʼn#/I o.s9Gݣ(H`G)i$$dj*7s?!yzfgD{GRCg#,aR +tlcuʄ1\fA%W)8'fB}N7ҩ]T?zy%:i#JSOZ$]:F? WF~ZsNѷaڒd4knXJyQm걜3lG7%gzHȻj,EE#.c[,8idmY"H#=?_j11ţ98#iLgh@eďiCdI^,չ|3F1nP@ɂ!77h@$_L3xeT1 vnXK:5e v+ ʬ4 +\򳟯OnXz#Xk A+B+dBϦ!ΘbC\8aXc#.0}v#BgO%U.Hmg̓y f"U`lW!<М|\ɉA30'{($%nX<%2,Hn qd(E rՒ~\q + +gF2ۢ_ըvJl*%G6P/(ZO>w <ۆ} ;ɂ*bz 9ύRB5pSslK.JRz_ +Xg$H~ wس3X}BKgl2B7!=`#tYzs{ܞbN4T:ƧMGv\ N#ǂ6G93m)I}# Xw 4UK1dLՌ_&n"w 1~Jb=Z"STt!}݃=1;zK4䙻A+anDLwYX[V6fff&Q#G/ r2\zZsB}L LnW qg: +ێ_.#Gl}*eÚ<2@_CUkkzZmB!y#ߒmDI@ .};py&Z}3.g!k[*A#%fl!o< +xiT³+J` ++?5Tn7O'^D4y ANY/'_ijoi:Ө.Ҏ'Ie'!Vo !T<ʼn-.(6zLum +D&|[h OQ_#p Iް- {!◼0w:NaHU*u yhWc9OAb{B”9d1Du նv50Kmn{s7^ƫPv@tƙr9Z5Gp~; ީpC ZuOSԿOL4LciL 0a$L$mm[+uBSJZLJҺV7U U[yyy-go&2Rrg__w{~Ŀ5!٦>|x|$ި;Aڨ~!>1>A>Qi-1Sg(1gN>c7PV 8Gƒ]ўf`Ax`>i0k>1PXAY_&LsSiԩ -i^3Y^x6;t;4v)Cϋ>W)Hk.XHkfL"3tIJNv쵡@/mbcpŎňXX$Ʌ\6 f8ےMK^twE0".v]Q&fI%JA 2-aJKI +!C%m2&`2Ƽu|9ʗ3  rHkApiYt]Wj3s-=x9Pi(ZȻi%޵QNSV߆T ߹Ϝ!*q1YwЏFA +qDJG<{ԑ˔iit +Z'ڼzG5|* E#cσMH鲑A=IUΠ#ȔƕylbhRKŠR=) + ,1=^To"HQ+E߇H$_2<2?.( w@c#,>'.N^GWѾp7}r t,tlttwkd2K[\a~,GFЪ miv F6I~)!;}ZO,D,tdGC1gaPTe^q|5{ IO_MlhYKg nIR[WꏁDi)Ȕ \%tj!gyڲ7wn/7l<~}G= +mbX$^H<o;6]FBw܇vUeO?p +8mQLЎEZ(*TsE^3Q=c#RHCTAFV4=VԳ?!E RP|~Cz<Byt,[5eplז́,d2d~I<8dE4e,B-~YE.>^WqSvȑg/w a4-v[ c%!UlT7ԇk&;XUZfΧbdjhlhf*`NYĂj3}PL3UHJ($H8\6sC`w]@+ )tR +Ɨ1Ivɸӕќ3[\3M5Z6ZO0QtF*Z};n~;p4;r4G͞YtF.];tt;vt;xF0~{8 %oX>t:ʚ3ma v,եR,PcWK`q/&^8[2m;dh*fۺQaSu{z\X* ަ2[ uF#͊[@'뫕l6wu{J3z Uql0. My2NTODzm/*9w-(rpgH1Y<Y}t +|h&\'ϴedhn'ŋ8-^׍Un?\u7]ET +gq%g!(֐[UB&>Np.yYLFv/St}'gi٣)43}&gTxK-2;ݩ6Æ݃CNa 1?b3߿fgZ0T(fMCAtQڪ[p*WB?F1 #[["ٖ'h& +Lc4F6?})Mps_ znҖ5iv@mF`ڲO\3+&#-5n{Ժ m,@@0N%`}%7 {;SBݗabrn3P1ǜEyўn1j0Bi,)ɘ_d߾<Irx7TgKȺGA#(o=cIp6)L_RO90 +.lu}\)6!3bd +tOx̎=ӛĿK9* $/cP +R- sEÁ @^ͺu u]߹KBmO<&HiWA5  p +,ȫsDڹl|9.mWYB>էW8CZj,LM1(5\ѧ42\\_ob̿;uSk)W4 8ܗrNR$+LO(%|\OgT![JeQ(m)"m)b9WL@EᄏNyL1P&&킗KE(JCW&Mҕ3%TD}a+.ݒZxεE֥W}nigȽK(N^؋+QB!oixxQEl!♢|݈n/ >LN#,q"Ո%&^E9~HN7'K(4RA5c#\X/,Hɪ`E)>JiV k pXKq,dΖDb@\p+ӃI*X*W4B&iخia~Xe;ҠO-fDžRлP<91~e6`fB5:aRp.F{^)͕ZTz tڋ L٢:aUK +760 yflMm2౹h6؉l5f +70~HabrC5;`hg;jB`'R*=L`g䞻 b<!6u a6ZMfTbLscۉBԞf\x F?KqTHd,P͆I`MDYKK P th Cڤri2XdэUγfh3V +/fszMh7fp#' pwv=ŮU5gZ̉+j&B' kmNl\/oB՛*X+ 5%AUZH*j|mm$-Ŏ} usw %hpOU<qlV`}e +FqKZ3|P&T^ܠFmてqf} #.JȄGb/_ ?ɸ9&N0US ꧾ} X_~jrQlcm"/)BCQT}O\bL >A\(T"LT!Q,7UʡIinpWKRjv60D^P8 _-wIx8,Qԯɥv叅K?,U0+) z i +!* +eTT4aSrH)Y()M)1`A.f{Lccc;F3'A3d(p(?A ٭(oxξk`_}e z |g^OJ-8qM/E'_ॿA?%s9K4eJ]bGT(͕")*3%Fh`8w t/{ F|4e>THYTJXiS-BohvGq4Y#^`*tkG978F+x|39"F~mwۭHXGdʉ*z\zXyZTXXv*dlUct +"*4l,÷(v *]hitYmRExAMR}?a`|! @yЃχGUA83@d쮔zboM +wsLgz\sp f}lW:_>K {~lϴjXs0E +HQ\^3ʂ1:a#^o`S<ܡydC{.Oukw c"3.(YIs8u9H@.ML7r u Cp4LDTU*(Dhe^Pq9 :姛xP .!|w~~(8 N[ʼ-rh lS=);^J4,ISrT4՞7dHKEJz\8%sr?7r'ܻ+keBӷ:,mE9&2nDe;tM9ʿ5viI `@;BPx[/E1C S?F& ӂ +pLi@.@,ak(i)EO3>ߋc0sgzM~XpMTmT;fʩ`Zz Ў<7ʙ&dbVnn1} z/Aq=(ĴTˊ0 5.]c50ޗL.DGUn#I8GbԚ'Y_5͌11>/nB8>AH)\W(->d"hOD(fz<ӽ1]D{ _MPQ2!8{XkTk)c]^63_rhH@? fhbP|e^t wM"J撸kN:~uA@!DCyf#L +6W{ 1J.~wTG ]65F'0#/efI%* I>L$/˱Gyla+nmx~c9)_:rOxKNk% #²lH > 'qDpR `nuWjL=m(~_sss-Z9:YIQͯiyDyV)9JZ!e;^*:QaoL##M DP-JʬOͨ Kq3WRr&&F`hb`b`nЀH /k_T=<]_cmҼ?Co̼QT؃5 K3Mvkş+[,Rw3ؗ#_Gҹm,V|tɨ@ Rf!LC5X;6p0m-=ƞޗAT}U`LSIG7=[+%}.`JIB6)K%R!P$ؒ k[5 k !XFuUu]^ Ýgm<-hC',LC.,;9 sG`>(;sGC58=<ΈNo A?F (#Rho':xol8ېo@R7{g,&g3]zP^]>' .+ )gc=Xpc!sWzH{žO ;L=nm<,G<_{򭀁3h!cӴ1!:tÇ=x78pd -f<t@0ʐj V,B.FF8Hx"`:Fj``;ĹgpOh9JLEge'x&A30mqR٤"zGv?ğ"iu8N uGk=IR1F;]õ@9fa'1 B w< +Q?G`ܠhg"5>3g"IȘpzd|ytg*{쩬žaGXyHɰdQ-`mBhxR +;[KUvJfምߞ~D};60kU@cc #Ơ WoNt뼖iq~k>i9f4FlUmB`:-N}_*rds`̙PEajP³.1RVMQY&Z 69uX86]NJ|]¾.[̬\"Y](v-N[QYG_ fMQїY6\2HdAE0ZO6z"V/o#8h[v9"b鈨0`|8]- +۶m۶m۶m۶m|n2Nvu:tvVbh$WmHvNs1BF 7G{`llUeuUCqjs51;.S -kz8|p\$be^0XeΤ#<ڵ=h8[γ>v$Y|PơXi9\R-f<'vszFyB(P:-Jў0R^nQ[C) +Gx X[i`\ok bG +BU)[AsF*ʊzĆݪͤ"zGki'6pwiXU1laԡK?\IA8xc2+1<퇫o~dq6HtϲfA/o( Qui084^F ,${I,D}іU޷yY!~xPA*0 FSJZCu5:xHťY ]eZuQVU^x +uD$P2+ƒ+d>+CHCRThfrJ:Q9DPR0|5x2l-"E8^ʜJN=Y׈IUXȂ~Rj0sWrjAIyR].]jVV)e$=5+EDH3{Z;ƌdvXObRe<$W:5A aϾ| ͺnh+rpM=iʃ/m=m?M}b +kIPJn5MtZЊ`)H߳s~<#FS8\_2/jUEi +^5H(asS)7|eNձ\-{fTB΢̺-᫆1¦;f逰8tOb%6 *uIJxA4"2RFj97\#Q/')S8@$bMDɿmo'՛FLY#VȺAB_{nAC}[]{:^`fd4L=ñfZatR B% =j&Q |`}aeDU:EH^ .0i(0eHS2aRY_t0BR R$IN^tpjȿ {Zܥo^8Lh9($B:CF&\b:eZv)HMJz+_RQG)a6>ȕ)pövظ]%;v&JRLAlYeC !v C;GyS9Ͳ*[-'8a7F-_UkkB[y, tH )>摟C@dx}<MlR2 FѪupHR ȞCDk8CFeg_!˨OEX(Ve +2~Z~9b)>|\tld9\bּ_)8@/x&GZIptǪa{%;]CTB=($..C)02-9;lԥ8L##]aLQdC(!\֡lr7.Ha8.!ϸwHb];dZtEUbc +Q."X U!)\M.|i%R,(Kf(SkLy hºEY=u%GWEs1&KTmZ0$,&01:Sn ±Y4>kc!sUp\Ņcl +NLs<9L9^4'Wa>nڼ9p^%fp;mLg~|P5²vhv L|?92Q}@SGyAWfXB8Fs~kWeUK@.3:/eQ5[ĀhZ;yL6n s!_ 7u(}s7a:`Crr|U#z9ҍmȝ<0߰sv%܄ eL7l?utqs2C8|9CT0- cO5њվշE+pVBпQjZAHD4;5R698 +nBPmJŌcڀlLgQgO .;3 N^fL$OX^\)sGg7%a[hꈔ3!e\2 Av ~V3$Y aG\c(v_dc!?:$UDsHmn(wGń{[De+}78I>D" Kv&Vi#lގaOȳ.h-Bjy_k|/wHusI/9!k`D*6&*cgqC΃} +[izfG Bmf$fb`.BAHgdnn!r~gZ}B|$f H$![db҂#'2fe#xX!(x]anp7D]M [+e]nP;v~m{30r2J~!6Ңl^6buKT6m@K1&~_H&TrM3IfKrh[o 7Vc2O{֛ kaumu7Dtg/ĺVw$e,za#s+􇦻K̀D䃟z(^K/Oxy$ʠ+# " m1K&rT3d.G5/Cl)O|8;΋QjDO,ӿ8"uEnP D"ڏ5'}n0.1[3*ưl >G@ ֶgPF)%wl*W7wU@ I)JJ [z5p|-4V- 9}%ؐ`glp-1o@h^=> +C%L^]YgӠ<`t0%+.T%CK:hg|k{j=|).$?E6T7]`迭(g9I{B$W?$K=T68의G[wm'S+UjyJ&p12.88"-:Rb$v~+I X 5pUpxg !Av4R$g+gۀ>L1cm:fYy|L=JǪk3#]ss}DP +ɒj$BLrۈh[/!6p0lBE:cS蒙cRE5D#{pg+Ȟbs:rwCkHq%d4!+rL:]8Hn*ЛC9 DPDEo~`n 'w#@h!ac J1THo&8z~ai*;{>Ò6xІnIBm6?I;Ut ]@ܶ_$שZ`vYE[6B1J(ѨZTJ,_3`2itt@ž[8 fѥ$PO2$ +w֙ +c҂ F'h-; .WˤJUx+jt)C +֞.YRt0uvqEaY*mSl}W6QԀneV?Zˬs$g4u7'h^rU!Q+#Vu F=Bh^Ij8)޼ǔϓYa$< a},֧=:ޅGoŜlB38($T;Mp)2E.a8%ǔՉ)8T%L P^6 +b✸O4<52S&3T"=MA(KEyhk1Lӝ&Ly1ȕ꒠x%\`υ@Ge]=ڍLHs,p4:JI~2@ ROz+" qus;?2Ĕ^r87|Y8̰znBE/X:%@Vm7Xx>ϧbO푒B߀zZw`w=:ㄟCJtܮ[e_֊h@tOwOśd|`X`D!$CQjYX ήZ<57`ΔHpI#{N~$˲ +Fe-e^xqXɱƆff9UҼvm)XϹ=;H:qr YcͣYSEhUkR9<{ 0.&aea*~+A{\&tOÍaV=KwۉyCZ{YPY}+>Yu/Gttas 5'߇}n|SݜB}IBtBt28V\ A⼼v֯JWv60r V~P\O4% ?.]TqX>J̆H8 +3dΦJɋJ}eG%ݣٙP:FއD^Jھ8Gre zd_7U43IHYliC#B8DXW\af_߱J_&-60jAtx(d7u;9E71k߃,=lGr"rn [8<.wO j0fZ)/^jE^ZLʾC|Wu/,n@:^Ix"ij=Aa0(>ΰ;n]ìʠDwH&M-f)[4ga||3Yps }'Z~H2zh, +Mc6y;~Lο?7`Nv++~8Z[X=ޚ#ŋ$h";yx7煒 +xP{{p=zaKᖠ8nj/tdЄ~zH(_e.RuHCiw讈 n/읏elC]z\΋~1)]ɮU˭ ~njPWxz+SW~d}Ћӿ~!|~ +.ȣGza-U{^Gz¯ԟ +p ǪuNUљYZ 25eabj,{{Ts2 վٶK2O8$ $= H"7Ȓ:]K~|=P#]$`];C u/}T}' -m:[&J/{⊚=^ 11&^W5$<PU;:XX; +h{NSA2IF !pA{DHp 2MFGwb@HHU5BMJUmV5ZUM>ݞ ;FYi]å/<R)حQVe(2Sr([ŠI`Y#i}c3h{m#v""K3vmO~߄SahP 䰳#z/o=2eq\#|oWq{|?<vxrXT# exnt!{t3!mODqp]:跮tg?߳m*gH}gtR Yk9Y:(?Ytnm:X}7Hwk.1{}eձĺ>|hyOSGB/et{?R` +Pv$Tq9:FcrdȒSȚNʦf]<Խ0Hr@^Khs8JVGCi7ʈӦkk[+k VLaB{kǝ"@"CK@{P!]޵}mD[Uk_@2)oE~ vtΡ}0(€tmu/{_&KG,"i77!ˡ]@fN(Z'] : _9ײ_piEnŵHN-fWc,m\Z '[3>EikM/_[&ZOprCUgH-mZ7q#A5=}ˏLk7>Hcv#p]&m./(ơx]me8gHdul\ +Hy Z/JxOr} cBӎfBꠔN8GqVt8#N,M6oHl5d' -h=Mw&7q5ld'KYvl'@c_OԘ]uyV((0IFf;OG1pͶbh$qo~wF90a(*Qiyuε,֦ӳlK{b_ "֮ +ji9/YSN+`c4x1 +ĝ0*Ԙ\!8>Ag%Ԯ ±6)ۨrajZDw7C3ji1ظQomڏ^0~geGi31 &^Z w3/~ҍXkDOh(P:utȇg0rWg@ooI= t}r,eǜ%(e&&Lhs̍V3N65Y *b{SSK  +\{L2R1q '~CGRf\!%A,0Q{7SΈ|*qaLh. 4ͩV۱1RR5Js1U +| m[7 Ԋˣ<ޮ0ġ,UŊC x Q9_I*0HmTltj)(:x H[8ѐţq&K8пZuwwgnӟFudfLI:bm"Ϥ1 ͆Qe86*O,` %c<&H3* +(l@_h~ A23(%#?bgݎX[ E?bfݖ)4.tlXF'Ġ0J&͍?A I#o_P(r3c7u;`:5 NKȏ(րcIx(^<~x ).̉Nb>q:QY_<Or(Kz:.V˨o CX4K(Iƀ–]0)H2% Y0p4_)!X2q$[1!fmOMi5˙q T-@fd59geŊMfN2wrFMmLtV]xܦKfM vx 7Nw;hk/oWK:&ͤ@> G >$bի>գ<3|u}crWbb7PsSTAc24O딬 ;iЕYxw{T]_}LN`xSb'H0~\_#@:%O9FTeI0Vg[/1ZV?%6<#uCfI:{fYȉs̃DSL}8%|Яir/ +|ZpwﲗXBtqyK?LHSbKT!,vo +9݇UBq?~+>m)|zΣy{!5e%Gux)q"Y%nxT\qE)-aWﳳ7X~i zq5)9lw>UVKoxd > Ɋǟ,:9;>^Q  ?lv!rF%nӅ}Ԋ.ui?@h$eO.f FN ^BKRY#!G\_,ޑ-U?7wXgd]y? Rf TNkS=[gj!Zr}̨;/,kGUvvN?l4$'Jyx';ԷO=3ی)T.}q<5|+r\e]17(خ⊭ʕ;|x]X2!nxqU},wJb:n=8o/;l/st捉DxSzSA{S{cYxlF{/,ԆvVάilwVٰUk'h-_>^˂㬲0}㘌V3#jAVm;hPn_|-mE^ iHaTާJTª +v<%·SA@S~l6B,?TC! ĪԐu*@,C>&Ļb{[ݧkyDi0CߴNiP>oGl2S[£ +V :$isҟF(_\&4現 b,qQBe 2bqT(u1B/T:QLEC ؖlXeYW|''hv~K䆰t `M2Wğ5 ǁto;XBYGq %'d-Y@@ IKƕv=QԼ@ʀ߷1y;i݇;0dOI yjٕYQR|i*t )ꅶSz`y73}{E1$]j棅蠃zf1{5D{2_3\h~3 Nڧ}D‡޷K# {:)ec;Iı m/7ZC|.c*[NٲQG4&sB1,il璠~|9(Δd{ 3)fFuozvGCGt`@&ߒ 0 FnA.Oދaȟ퇻Nga:iӯ0*u3YǙD0#s2|F}[QgJRB2_Ѯa[m`F]/yۚ"@JW-mu'2[)\nwRMV4ݢzd)x +e 6bFY uN Ȏ~Ջ*fI㋌Yn"U7/fyR#+bOVUě'%%J>ɜ[MnXd7*Ee~rNP\ӡ$F$no( g{'N(u5@39q޳#Oi/Q7X~38LgշUSV%>KS5mPxvRMaStJj +|crЈ'W_zyJco9S~uZ/@iOAv2DXe@\~u g@ygrV7恺6oHu]XyfS#/ÓxQx`௾O׍R72u/-~o4vTwa?lɽKtoPFzHѝRu@ w,eL9917^U656|VԀQ Ƨ'-i+DrՄyNTO_ѝ$&Mu3)eacy7h8GܰO{!F\ |;4,@j~&.7KfO(:Ԝz1W鸚6GHuas% pڙԼ'iGiG@l#Vn8SJ]bk=F"@ٙ-r#c^zp +QQ>mPI+<$cְbhՏ/)1EKΞ/covC'!pG]z/&*<jp]OBn~yA 52a3ϔ(pL,| AKc(q+짙GH51mòэJ<7.RO/xnbU,U?QW>7m_8KNH3^B7t\J|7f[9q̊ i践ڧ̟*ٲGTK]gEB $ G(>,\.#$\HrAKVl%H*mLjGH?-{5!.AO ~2N7ߙ7(,*(S V8wd*+5>z*YUc>k3NچNcgPVn[l7<\_P%F0`FQ }`0$4Lp0&ZL,/p6ټln ɷ^ Xp!BJf4Ec]7zZǺ%vu+;;[`L3dl nJ +=F%WJD5c+"22Jͮ3Ҥ(dXH׶lXlޗZ +e!?q?vQL▢Ѧ@ҎulxGr6ͅP!hS8[K |S>-N +hblvNhm_bYʮӁo;eZC0Yx=՟UDZ0`-]jsj;A_JmTd#y +4>%VjV;E? ?ކoO"p T!P*}W{6`ɡxනd' D"hDսwT~Ph^pNzu}^9z(u[kǭNI_ޘu^}v6{Ƌȡe:I.UOq;u?#ذ{XsD>K;Jdx[o;?!]&JGSD̰xCJ}"Jq^!\ɰ9j“u;<ٜS=7Y˝DNt'D{}-:KR;&^e6sy.c筒ha;LG9+j +1qCʕNCcreꋏsJ2#-*sqĉGڨkkG} ȥ5q + 6DzfI.ئ@U*ry}K>e^3?%2ʔ6C'{Ũ:LCnT~+tQ?5ZSo{~T~ǜ.๴2O]ɗ\c]j!duG:\|1Y'O_%gy+/-GJ!+h8|#-O L_/^ƠHlJYNMeF#hI0J4΀"Z#o8RCȢɉ~~RƤ3p<śߧju,#q*=qdA+g[CZf-QLb:`kb̛hg:=aJ}j꽕d\X1ylCLC0UvnswQ'QS-ñSS&zA3^i?:AsΠ\15 7CLM筼j޳5c.jJIMCG9{Zj5dIJ^f\ k*S "C"Շ:x#ƳlcS%xQ~ГYKJnDm<֢Hɩ UJ>{ŷYo7يt-M6DG(!wo@+'{=>T ꀤKD$5裊hK7G+Oz?K|ɖ:;%yK|J|, eoP=; +f?:cg7rk<= P>M?M;wY>`=`~ az6;DGFT4=U|MɁ_1#PpP 0^KT9e{ @@ gݲB7?F{ adθq,C+ _P?Q5 +& }[aH+Zt*ڴMr#((@0Y)j6B Fd>Q/qPhՐq&$(k/T'.<5(Z ӨtB.Li,y#mA5;kBww9yOPWjXv*6_䛑3EW䄌3OG?CjOfH&Ã"K \Cu +޿Fˊw,A5@V6U6Tئ<(}e?*4pg?l*,*v?,N| , bK[j=j=]gxIU`Tn%zt[|/ŷKvnS@C4=k԰{d^zVp폏wE5̝ @ٯPD ] Am2)Xv T2>JP䰒m˼e(h&4< -׼XG=+.ב$WS,y~_xp!SۗO.{6 0W tB4i7+3R")2#޼ezb7d{QdlVNKVgz thvvr#oakiIZS}K-aj亍U$Z,wK\Vhrܴ^_]#u!~u m%lDxO}(4[` ͉þUFAB{||s빋zhFcvCfZ퓖J:[nvV$44-$k(j-CS\ +8Y7l HXaR]? H ^(7)3]>fD{7 t C8èJz n- h*؀*Ȗ>X*I*MKB{Dz>E|@{čƟL +N{ J"5 Nit7(߲BvTM)0u3D_OXVϐ,Rp>31ZmU_Tc:={k_|pz]tOlk~ +#[xQoȏ>Iquּz=[J'=i8e#_uG +=({팶7;]Sv;On;C ܅9w?S7`Eh,12'Ms ˥ +>G{lۻoD~fzgu0^ g}\x w{w݅٥O+Y^ +ؐ\Geʝ: 0* &B^$[X = !#;et夹UִZٶH FkۂS,FYX[_89ۓ% %9n}b:DU#("ʎ:|2E\)M6c1 5I Wg'3]3x8}ʏ 8x,(8웛p/7otHWea, 0 ,ADSo 6)Sk}m X|a1*l'vk +#QAieErP]iTy|y%^BqmGFi&XрwʇwLV\V $)Ԕ+q/,k+ͺjskQ +q+4cGsѐ$ +ZYekxlK牢L#`ꧻ\ٲ|WV]VEGW[t5!")m Hۤib}Eqz)g .#3Aˮk`@@kr'Yj@C+DӭY5őkP~V +fh{OwUcӶ>MӢp;m)Iݬy{ @3"I‚'MɫsM +Ylך81ԔN>;_v([`VdM> 7{o^wl- ЙV|'v*02l7I;9& YVV#;JqsaYM&pUUj +0I94e)dhmdu$ܔ ҝg+6"GyV\CqZu]K _Fwᒋ~MrV]yN]9y̔첖qZ| rSOr3RܽCRX>1;\ $- @f g=,H$Έqy;6c7.}࢜"B&Pϳq'vVZ+G-ŠrPвrudYB"تoM98XJ$^&ᴱ 3&~*s瘛^Ab? +(bbIg-yv9z&r[\whk4,v]P,)#6|! Hro-.noP#=DvxQ"zciuȚmoc0ݗpb|+5) +80U&ttg9CHʽ;0uM )v[RXp5RmRo1ZhoJTY%/AȈrGu#{ a}G i׊BN諊ȹR1ѿL)!e.kߓy)$Dv]bm~|AC$ge4@kS}fAfV$lo="F|.Jz$M?B~]KTZAXcV-.!>!O—T(e&r7ЌzBqj ,\0Q^2mW 4 E](-bLM((G/49|J6H 92`B䒯x8ƿ_,arp]:cZS;AAعJrΧ_sOrf)Qn ijLDV[4[@|jk$6ljmV1A{"F}g`̓{erthؐ7=\+`Ros\j0g7UMAB&3_'[=Ïd2V)⍃g;Ν}b:UQ5%$Xp0.R[3Yż$QNavYQ7o)KCn$\fU!QȚ,ř߳ Ƕ݆B(J5}mufڧo83避2%O3_"ԝW2U%ycU(dR8lrErۣW(ٞ9OFGfs0"XCc[{^×n"A础o>`P+s2 ({!w%Ѿ/>/S:NUukh I]oJnmTD}`w yЦ1=x.iN09pW94$|ܒm!zKÐŽ{^uh1Wc;줾Zyl\[_HT]{r @[(ZuA|b5JDYv֘N:' m_q-՚2ofJE V\lVPUf @QOG3ak!+ hf,?܈ٹ,ew_,f 7xHCʍk>${@l{!m4ғt+6M? ݷ L},(ג# o q @ ].7R^K'-'{W _!0F6FM1ީn][ɮ@.ŦAcbru'!V*^C0 .8_NYhQafɈ0`B7ZJDldZ4<&1 Ere=)JN͈y sxsg\zUBA*6WXOj2&Y94/Omy|nDJv%n^o2s8'?Mt2\-.Dc8"qտg x=B= >g+ZNؤ:bccW`Mjws/>|}8:WDMipV&F3Œ(R VAZ-b$ُPx"?s2QEf;:\lƃ:<$)+4Z}zY pW !NNADh#mP;_6W\例ucߘ͖Pի2DӔ@tfxeZCS^(])B2Dк81"`b!htGiyeSlfK w3nC_p'd(}FN)YH('4F=Nd7|]w/Ď}Wx;]=WG=0NשgJA$W}n>5(]/b,cMOݼm]*!e.Oy^zU1i%k,4y?Hj.^̜z.~4YCZ5X, Ǥ|qK{u/ , Fa;ϿIΨ.o8T9ߌ-佡b 4˨f;vU$E{@biX$m) (=9NJrGZ=Qդ2Q׷;M[&_,UժiF&l}ռ:Y%wsЏ+v|/:P>G{/T =U47||YO>­Q{V=F[V"KTLcY2*ES(T_農*[ˊx0VT!\LtxILZ>3`НYz'  zdf_:~2ezC=_ +uԿ΀ CJ4ϓdFbsoQ + 1؟d_65ȖSQgOx7EtwdE3Wh*ؕ.6M|3#gP_FIE3#y`Մ u?K5WTM{ݦR"6R4膶,^'W??@U_(˸V1h|NfC?ye &Gq3m r[ͯMSQI hO"eb#9ٛz_bgg#j _͠ZA/y MSmՌSfu*K@B!uL}#8!Y~EfS(S̉?#Ͱd6+&X7F`b͊r^W! xr̲9l&2!grqQ;_ *\/hGQۊ߶7(n^v>+DvXGxO#|Ghj(3Q1_/'3/ m틌'GeKg4bJ"u쐞k ﺗptr{y}Zd;<rt}e~*v bFLb# `,&wm #v۪Jguch|U\6u3 )@-O`S%sbP1Mtjyﯤh9_uOmtAnwfEj։[gYi'YyKJq `V+Xh%#FhjBѤc,V+ӊF%Ujl+bZzEzL%{ellؒbrN2OY ߳ +j.^?HAzWJ +So|e0KLRe^0ՆZoaيO@r$? 7K߰ BYmvhjrЊdal' K|t ը,ܖ hmh3z#$o + +-R-ł@]n*,pyщNe0e1jUe +KjΩRW]}ޖ-N*Ո͝0] .! uS݊ uӛ=6Uf{ +]O]LϪnAGo'q}'?LZI]×I#RRjRj6I*6{Q#w (]N̐K4նC7F2Oj]@in4'<*\aS%G[ +~WCԹ:]o2kŖ]shGYǵ^W7]->OGCN0ˌR ͼG ++XTڤ[C51Jƒ<3ϨL{~!sީ7KrzH/Lk.gZ@w=Hx:щHolwNNwŇ81w_BQb{.b,<8iRn#1O߃_棟"|>399i,(dMt~i27/#u&{X&,.$.OC?J =A8 JY/\5m5TݷKRĘIV@Bc 9|dqeJѸ(ZT;ԙ$̈́29.$.d|{y'?vK-q6dͯ_M|gMu|w[w.1u>Cи{Py(}p ր' ~}qz|l;QQ8~%;#Q ?ȗ<=Nܵ|0 huzIzMRJnrAX(vb +d!Vt׬يGLuYMc]dg*'ţ=ҨŔn-"$x =i.E3d2'n9 E\ӫwץv5f2J+zzlXjx + UlC'>]zFUzMoYBҍ( zMe91mGY2g2Nw F"YUbL}%&LNRZ1d3]-WKciΨގo״'J3Ų*4߃w<nQΫjA s;R)V:u;RuRdB] >FJx^yAt/P{tp!~,D,P% b m1VmzY o^zt OT{kM֯!BB1O7ۯ%O<:+-Cw.~ͩʤ^v+юK+$~q)\Cw +@ O3C0O(H1Iq|p+n ؖ] mF+V[mJۦ[mۖ&p& #x>/z_WMe:ܒ'sEm|{n#pxlP_3NBy(n%OBy(vDe&çȎ6 MB:Qqܰ9 p'#&bp{M(uK![CCY.޾qzD׃i#rOL~j=~#ٺ^N awx9Xel% WZ.]EIQR4z$6}t܈G˾JXCsvgz\fz^YZ]|7Pn((n4L]a>1PQ?Ggsl{9m6Y_HsSUPeFinoHԄ=Uko+A5W*KfMU"n@?G=zjΡRAY%GOg55fUk֤Qjݵ.ԱiTZwn9V3vZAKaZE8))+? +qT}Qna:tn*>r@u3;g^cᾧc ]zB\_!Z"DefI[tcɪ۷%9bڎyEyX5K) 0)941@Ԫl-]`x"ϓC+{w<}W װgn)}tzHt_C"}&ko>7(@]3XWh ѻ oC{Aݧ귬?q^_|UŋA/DlcL#JsN'jP%!j*з  &+m?rŮQN$D x8b&|3!z"xb*nld H܈ .y#;K /^5"9fA&E +ObTunaj5E-G|acB>sB֫-/ˁfMF0mu-A_nz-6kg0"3:4euKu[J`ƵD +]lZW~"|myٞG1O& U-?00-yV:'+5+xa&tQfo| +Nfzhgم0['ݏ\ 3M`Yq&S?stsǠMz_x_s6&ʧcटUJB |`/DF#1sت=-9vl$(:%HJBtY^c8KD( + N@D8펇AۆAke3ۛ=e @ i5 A(: 0q^yH/Sr8vūZ; dQ'+7i6RU6T<6fQ&jKdʡVWW8WʭvO(y4D<lięJ;6тQC_>Nhc +7Qq{1fձѿOl(͚Ux5ژt.H!!KdIP< ԕlرޟ0jQlF5JV'`j~GBW<gf/tI]kqd)ӈl[*μ-6.6hVB0tgn>cףdLZLK%^.Wg/k@[70鷞% +V;l_B_dǽ^d&qf]^4T][ȁԲ#1D36lhcrgvzBgBMYh[QCMJʀ\ʊXrZ̊jø1f>p}H*.ht&YP՘AEm(ZrY +G'qŴ +BnNhщi2_}mKgkmʹsFG~{g9t4=mc;-Y񴢿W8w? w?b+?8l ?LW1?d df)*Bv{ul4R?^=5E}v̭w\kh@KteHz]EgG3u+g^n1Ow42gIMa:uߠ W#ɦD42+*-?O7.ߩO/6ichPzb5+g_=Y>>!Sh36Y;4dWAᅨW$P`98cKcK29KZRg~{t}޷gc=gw}n;B׈Nq=BB{^^|^p_ N +bxEӎh~TǎD켔7v\ǥC2 66 Søћcx,EFr>7+^⫷qeJE&6` +[H? >{i2MT{6̼rG-|6Pٍ+V6 YbI$ 3?&՞44еX24TXhc-'խ =U2.dKDz,]PҴ_#^6&d6Jr_n/pQ-x*W @=b.?LqEFt9ۜ8%FTDn5BhPXNI(!c,:O_'@/{jKe64Z!;C2X%q*0j*נj.D!h=}|Z=|I27E)19dPts&M~pPgY$H&@Wej[TRD~%cZ48ٲmo?P"K`+ 4΅7܊L;v;s^>},ή+܆JdRmbіh +Fe"DʬL,VЧiW1*#G'hSʊȎ|fwǦDn*o<ro~ ᙫgF$@8N[t$JٺՐ|W0)1cfCâxr +Utr-g8.czzׯH"J3JŦHm--Z,9m|:jwyUӢmRI &Dn xîa!V J)[{{0/ +{&R%m.X6APwNo>k4l{F Hl>jv +$vws +{Iq N\omeLS$5=]؜UJm$bWPlTs +>/dk_lh؆@IhBR)$K+LѤLQ/]6 ++@tS_D8Xyƺ[4q + ~s|,;RH(CfIL\O^B:dr3D`FIO0>H.G ξ9lfk#ӽzwf;Ɠ]ۖ}n⇯ƨw!zNs .MG7[{bA%=ygT떝ᘗd/QOXį"5m{eΦESnG1J3˖gJ9"'XiE3n}+%M@ [4P!: +>k*sPPޕ{PTߪ'm!=ceedogshϽL_j>s8%܇c~.)J;BvU[A >>gsN8$sLsVOp-'HDhb%:*%`gclDWEUC 1~͛|8[1ZaP8pW+|85|3"ƳTWٔ*py8: U@@5C#߅C c3MAqΏ9@ڍ|B]U>I+bXBԊs}((a%Opϕ,CWYE &d-<$dW`oI*sjJ%-LR IL8A P6j($_6G["&2,vJAZ;K `i:7X i7{[ay,sƾ۶m۶m۶m۶m۶ͳm̝oDE7bO>YU%4GnU#jVj*ZbY\,3ԈeW̤kjݚv'*Ĉ58~/F.r7^XdY5Z!2tr645%ngS{T.x#r1 v=17Oϴs)4S(T-}(Y;/Ӯw07ݹ<''0fp7\Jwyڳfoɰ_BvW.M_U9 $־9: Hz ,iwsyYɽs8_uW:ުgN{vl\{cA_3aa[>1j·"-d{BNxW9l׋r/ xURa1.&N!qG"da0&,ʡDB-P`p|EYe6Q{rC xKsiY|t[#㥫Y~\VEgͻ;֧ڦruAK] DpO߫ Eн)`zƉ+ri@[%e.Զxpu-v(I{923I3ʜ6p{mN;{4;!u] xg7 4_i!_E~hW"\ 2l'#ms avG#}]?*V?2P:d&#}P<uG_Qݔ/aCQrl!_e~ۛpqzywf7#ZovP|R8}{zQ{ )HK]'+7`VxL1kwbUo˶m`? {,gxl|{aULZ=0% 'wUct )mcGgVra:g"fi'ٙ."}*jivL <1h]yxgWӮ3/wzg5AA' ^_2je`[V?_19ZadmDE +6,j`[x.0!s+*!b2a)-2hv&` &_,Z[3+*4^G!$R8}XeC + +Bbr;т;''"w'[Qx%kI5S="$&Lс;;G/-Y2' xCAUd%%XΘָ=fs@ZŔ~gm#>Ly`gf@z&c&h[nĮ{{ iKXLZo(HXWd^oZYjS֗*58^ƞ!xP2CCh4,%USE7Ĭ]]U5i#G ִ9~S+MOsvk\OwXmvM;3dCʍihk;iljJr?iXٗ^?`B<)*3GL:3^`Iqj*4{qitcsZ?~"{2/gen]"٫/[( ?NV2o?Ew*yJ$V= ޤ'q&/ӯcIvyZX/ug{h 1fA+*ᣐRK` V˅dHNfWIST=K re~+M'HN(Mo ;,zǘ\ ${Lwmn7jnRgsn-lMDSwiC.GM}la\#jkTX7$Թm_,B+4sA'M#oTfTLAjmІL_%?L] e#UPִ|1$j!\Bb2BIx[LV0ޟ ߐ=0{C!|1ew| n(E2^+Betcڪ 4|m`uq鎌.Q{cVܥ{-ނU,(~+zkB(Ԁ-dWS`Zظk^5mzeRЙ ݑ\HŽ7`8燫 ԕ!$7мA r H"%< DCL蘝.O@+! [hA<~t"\ _dE34^A[psN쬣n &+ܫ~gAlD\5}/{r/i +'sVEYЬe~ÚO? 1YOߦ m]$m#9PcF9t^+4blV4;Bt6W{ě }`$P5Xj hL :O7pR6 A'i;h i1t}YYSm4tΆ7wow+7|kk%[U+R+p'Nj<6#^P@Y'8Tْ>K/]H<_3nlEHdŒA9B!LFQw g!.4` ݁ʡ e*P8,3|H, ecrJe.5OXuGڄb,|e%J(wnoԐ{ +|_ + ,H:ٞV̯2̺g];֜.p_JXt+Cax_<HG3L(HL wk=(Fe*3o3o3oЦѠ΍pf3qT{ TZURF*UamVʼn ? ~prFD\K!𪫶mMآT'm;Z XyS 4Hv,ϬO.EFnU6f]ԙdּɳah5,:Bn]m3 +94^\oAdnb0^u"/Il}H2NؑʊFlf^D-j!Y ޱ&xia/WAlrkv/ E +Oq +3W;b]Ƥsn[zڳ†9HZ`iF줱11 RӈKif]%7ܻ51;q%-Up/Ù.)NK*odobl_航?>>%D''&MFߔ/L8MfȘ'o"Jhn.T-,%'(]}~hHmZS\PQs2c^l?>y=esҚ.RV,Ƣ +qGo)BsTh_rb!_?;=&i(s/8JR9A{uW3nڋvWfG~p\30E+F,0wf ooaVd32#Nt(b3eZl,7u%1]A)N=i'یƴ + f2)L>.W3)^TOEH8!MC`9`B!F] O7HAĭ3pɖĦs3*Oõp%VOKUtmJG[GS? `~ ^ɴF2.i_d9mVnB,Bi;uߡ2 [iuw%T!QƔIRPE$,꺶M*d %fuU"q -ݐn3f1Cn*J=\$Qݥ5 7\;H:ߞ:d'fvJ'wU-QUbB.q! 5dd>jLI3/dfud>PjNbs92[I7R-*/44t\:;8=4<2e#48ȅH*%)M%\wzek|!=@HZC NpN/*|pczt%ty хmT$@/۲9O$ +seF\[xmn&+xLs[FQWDXfqgʴI]Z^Rm1FS?=}xQ= 锣c|fܘ ZUPQqTm,>)q=dC02(Ҧ+ \CFb>sTid$ OY<}b6dgyCgA?F~B BH.оWgHS +ug7=KpnϳNx_>o/ ϰ0 nI OuWce \ w}!sm3}I&ii9Y1mQ[KMݙ2.Z\S]v=I|L/t?!0*TJ^", ՂA݌@,52=n1Ī"[@}EJ:kAI3g{o !>ol񙺜pҌ H4zOp0&3Xֹr\ 2nV,$I tm +Lǎ*8NI xΤHrs7'JQ$mgt'U%ȉWOz 9Y٢#昂~i~z5%gS0fmnDe/5 85vJs&~\;s݅&j2^ 3 98x{1n!m >ޠ7ZZ]OJ[&A#yHp=ՙ 7zZ?սOO>{\dyW!T,6メC3duڶĐƔq!6jdMb,H&vO,tW?445h|gPc{g^ܠ7n5R'Т`0z޸bGЇ$*$bGGAusJFybVyjY3RfCwFdnd<3>O5gUeN>h17J?J/Xv/5;`6p`c1D i 収UI*aB:bx & ;⪕ ]jKe3\"+m0b4CEU~3g3Rl0^7SfWKctK? zD*]@W Hh:08)h {IP_@eHQ~X婐4?.5w zDcw7[S>]g|.͸;%VHeR9!1 =9RIkUQo\&Hy4|*U"TzBw?Fs65f9#WP]4J%i VLWTOTI.gufG2%ur5"%>CpK{\O)2ԧq$p[r6K*9o :_ӱ9Vκ=H"!uAiQqDlB fkHcvƳ.zCeA(.L5ZtN"D!餂&rHQF+h6QP;!6ěZCJ,de^żF&э˒V2hG H4'L "4ѹSG&)"wyWvvDejV,%LKHnN6SY 7K$^ K\KMSa=i"FdmH/ q-xۙfNԽ&K| YXIMTۂj* ! %hAYjQ=Yna/VDVR^>Bol.qda2OUi7&n dC LTc?pOX})o͐,qo?0+!ciN4C)׃ףW +^E7R6t:݁SΏƐr[ *l\XLni +14GLQ^f(ƌ2`:WN|LZj')8STrVb(U9‚k'๐b#xbϕwyA/is)ZL:w;\ +&m,aNLd"ߋz#pcZKa(ݾ@{1h3iybfrߘc|1 QbFj\?3' !vbtw5*Xj6P06Obdx!5cn4Xg(1:E.רl"Yx+|żԕb1c&=~ %N\DvsvsmwN0z0K."E:D,ǰOB# 1eg]s.Zt,{`%ycPȝQ xEݽe:B@F=$ X̛y"%`ޛ +A{ +RKsJ o!)ȭ!-qf: \Ξy]c5 7ZA=HS +:Xz PՐY!нkFO85WnJ<-SOvuHy)8=EcgZ/qV[E]rR,"iBKT:ᴘ G]D8jAr6ʢGsP ŒwHLtCuA_ړij_vksF$1K->߬5;JdƏ-{pK(Ź]iԹ]'kSEj^A5@ +|v'=˿2Q4m{8:v|{FkMnWzJEO&v" d ɯJMsyh.\="ˍv.&JT*o]5*$M~.~T/RLV'QNe'aFtjYVQ=Q*(N`xcTG*Iݱ{,WR9 :٩LsLKU͍,C;f- +i+X6sowHJG r/;My\m+5~:r0ʸr,F,SӕnGC%3j k>>A2M!GJTO[9{" *fH['{_p.Dٹ_qQ%KpYs7Eg)txċ)Bl ;mHw3Uڣḿ +Uv6۽0.~]?o'"7E@4>``BPh,!頻W|(v?JoKD[L>5:ʨ\%S>k{P'6rA^-.[򱨁u?N'S+T.nMM$B#ۡ=FFiPGuĶQׁ^>si'Sz>&ipoSP]weL=\mC{BR~1T9z{LlfȢHLΣLTEFtqFlgؼ,w(+k{DH܁A0:hC!5%{IXSG<,+$܁GӠoc=FR#z/uӆ܂FԩgmqLɱnKL!릐 |!E_8N|,zy(?lB(?)Yvk +VZ4'16},[6%Z{/Ec{ w$JUVm祈8!LdL"6* ]EYWLV8?փn{[OdtImklʝR9:Ngl̍5,e;#ƿmZGi&UbWf>h2n֬{;\yVtn􌺺_8n){ ީ/L8HbiJ8;PS[ō8Ov&ZrlP4AJ._3k716mZ/$he;v zj,SWM5~Hy%jREc#nc l= 6>Beֱ[6.ycM򞷸6™}k}%@- MM=\? (\G+;(!Hx}NCet;9=d#WYQGluP2d2x0r닠h.'EՎlB̟ j _7Yr,A$M8fSjbe4Qm(qA&hԾ`n#G=z7wts _YĊ7:1W؂ ~@|{ 1_ ?VE9Z*?ILL26ƦhZ٦Ҧ!P( V +EP1rARVRiR:/fHMsi>.ɏ{ D%m. ;B>FJU9}Gՠfu6f']gw;I&a7vEx@UFWg.-wsJVXvVg7#7)$7#7Q7;>xgc&z =cϏAg0Z|A7mEp"7l@hFrj8dǜAN{E3xS:QJ~{[tҋ8-{eDZE{>ܖ)Fs@\YŘuL,)tMP2+kuxsՊXu΢YÝ8x1GrQPH81tT1[˜rT_ilZsoUI\#n?Ծ(Ew24`P? b2k$@M1qӛmgiF5t 5)7gLcQwE4%D||!co%`uIms=:1$h蒁"&QH"0};XQi4k hdf6UfTΨtU$t UQF5yDt[({mYQxS YD[GGia7ҰL^Y;'&ۻE +K$}gm? S}_^+;>#̉P;: tOKW|3NĹz ÷xoTtϨ`FWxT2f3]p CF_{@8!}U"}Cv_wĹISqQ +vd÷v8{N}8N^7aA/NQin]63 j9|#+> 3vџn4PG#z=^}3|XqԷbzrmgep|ѭ nfy㣚6EpTyٖXhɭyg%RPɪ2b;K5DF]L@/c'HLj}0p21^v6){tUtswLf+ڵ%mcФc% UPV;]Y"S[YC}(iAa-r:B3 *Z_.Sr#)Ǝ- d*Tˡj@nW4ʽ.-VQSȘ$B#`vEƈ`so-89"^C :v$̓y{8{,t%{(=BP2-K̖7ɗE @bEgcб=orAIu`mk=psc}8 6U$' (Cfm(X+nzN@". +E +i+Sm%sv10@hղny)X*DV!/dI-,Zb+{ـn$6oP-)]p ?"!e|Sn'yUb<[Xr$SCk!ױ%Rv"lh&xuKE6~OT^ D(vv-'Gؼ(kB WwBIៈ3/(7/n,7?1\>e lJݓZvaD FkMŶ P +jʠ0iWIH*[C+EǮ2>y K[OY9Z h eGФDa.b㊀3>G!bn V6g%0m'\ +o{?3ϋ"];\\]Oo??oPZjӌñaI. ePDUKmPFەbs3WbXV4KFՕJ t yD5* AH'?B-Ư {7$ +4-;i]Ж vnLc8*Uڙ-LQ E>"z/!j<3[  +TӷL̟2z4i6n$ZG1HP1ЉC!Νx=-6:\*";BԦXE: ՙoȋl JVOO1̯}=SMfRcjN8 =gae8麧[YPƲ|,6#@Dp\ԑDJP.[ xij/g`|9_q@8Ix/R*uʖ@371K]PYmxZ=IX oZ9qvpۘ0М<=3R?Nl%-?Gf;l7gNgλPnVp 9!]J/Ù^`1`cY$OxsZm̽뗻}"8EB8EsGo25J7*EmIFX¾yLL`W1G +6P[Lp)֡30lpdtoi4>n4EP74LaʓFl˚˽`+ I5;^I:w@WkC88Iڿ-#=K2 2=s#c#+* =pw\|o5ur={h-# -LRg,F"A^: ب IqM5|^"{Gk.**MCg [HXt9%HE%)K bCm9ln S]pwNjPK qkBv'pTxfcAlf]YP`p#(0)Ut ?uNUe6syOR>)^tLZ]f8i}!hLQɤi†H{I(>*=<#~L5f: +Ҡً.`y4o`B'_d4lcmaߴۢ"cd>I0d"is=suS /7JdXt&+=hd[$+kf3e Uy\ٞwkW]'T!oD޶jc H6D~S +JzӾU0q)`r'-yR,;A,e/.0 +ñtx9r'zDOZeL; MPˉPxnYO "kh8ѓq$ś烲ƠG8b* q,өÇk_7`ɺ ߡn:YL_ghuvhRspJ&XfMZn6-:?|*?dQEvUN|c4X;h|B]ʓjIq:T9&8YTMV<֔;dh\ ;keU!8=6 !M먤6yw$b  + g@~VzПS4k#O,L"qp1#tg:Ux#۲;iyըkmq"6j.n<.Z464u%G[JL6N' ΰo=x1M(g7(G?쓥̆̚8(xCFk6.ػO12nT#e2^s`Hh+s '6) +T"6Sp^ko?.?Q@o_?=nL9\a-k҅"M趏rI8]>*m6PN( K^ 1jdMQw"c t@iRVDPD/U#A 8H׺..V1Mҧgj)k +mf@[8T"88cTCNJI]ό*7|PQ@ -͛ի}ڱػ5u}4Oׯ*9t]l w-EQ&q,/lpN_:^1ud/jsA^<rGp4!s)Mq (|JY/~O=S _6{ g%!1˫77 SG;,<ˆ-rig[$ 8g=K)'ٶ :uE8 ]]i(E{'?FM>Vg= ;xo=}5dq~X]/1ڰ<@=GDFgX{(cfCQIlx +c$2RƒAkx} )"]0 _~?{{ܪEOgi *Ω(1upzSRh_EmfGZ;Ez\ծU#{&NIhcѠ5M2O` +%Z:MNq)w<tzz{;+fSvW s!3d5&`gK(m6WN>j]hgq|5-}z<(}(4 "q3"|"v&x.@cհbTRJ`S [dPBOBdUVB/aF1!RSQ^{ױg.YgozH1hcE :Di\_jJۣ0qeכ fmuŵUum>3y n۶.[bS}ibvS saLʬ:*/aKO#lB] +U}X)uSSl9;9Dwut8LZv\|/*Q_ss6A#){9QZ(!<џiOnesv0)7^uhBF\D,QHlS9Pj,.Р#Mp 27JMu]4aXS'`^@;c6l7F\"a)A醎~df"'h縗(8#j隑y.GL3v*ްQ-۫6J%4TVk[Zn|A ~-=7? ~-:i.fwv(;gmÅJ\C&(PJ5/j^hDJ\~&#O/eD*-nn@RW + ?9z!wG]FB\ɽF248*he6t 5VB/mL>;fUyJ%yhGI@1?+k({';v 1"A6,o KlꟆKO90%/`:Jyd ELZz骃)ANJomp$T%(+иμ!:Xl}ߥn-x@#*?RQ?j3uE? +9\uXP ݚHP@SA +!XvSkM <Ǯ[:Tu8ӑeX mQ' +Y (!pkW]E<9z vO:}Wl)!"O<>f@_TIez}F@$SU֩ۯoe;p8%g)7F,Fxv!Cz،TC& 偂7?4ܗBCl[/7Kkͽ+΢AY : 3=Q+c4r9JdDOBMxĝ x +hXW]Ã^w VTF(8 -I_9:f GcDkrZxWn6Nt=B/MC:P(GVQKNzǐR$ z3ueSs|;I +) +[8&+vaqRjI*ۇ_xc] opv䙫u&r.fYuU.S䶚ш6 ;WN +,9MmvSK.%\&XH~b5҉ĚM݅]jG =y56us*> RnD ;\E$"JQvU +[&KoRE NXS}bVT.چ[gjYhvՄ0Áq|113M.ԝ=^黥$fŎ{C{!++B"ˍpGcsxG9@wywrLϕZ0Ie +}i@AG +HR+/9e_^N`Q +0fS7yHtlשuQ\ uI}1$X5I(LXřXu-k>6yS_<9@Yi8Tj2iŷ jf-X -рN9`gC9-PrߜoL0FBYr-ecL?ǭQ3(N}ו.D؆؀({(qAW^'x4HVAOkY^J@oWq_thnkz~M^"=W;S45oX!zx?P%2=iYե1*fFȆ!P}u?aBa |f~Xլ6r6pqxԓ0 ],,dFItT  bk)UTߍSL< RҼx|J^|EB i%42U [EU`Pd@(7J pͅCEA ,/S#}UB?cم 0gUBM2 L'!Gv yi)rgoS:,lpNACs[?oY;_~\ +pC[dl)fE#|4!R0s#c[ Dc`q-AYiDsW蛱&e8c  =Þexs86?A<@I/m"rmIg4F(``0+ 4~ oЪ@H YՂ$oFζc@$j҂%2wȩ2L٩=WDaݮMGr26qV+R;AoR?=_vxo,O?k^3$w>~2" +,Dg+' +Òzc}^ _((h4WZ|_Q=٤J1 A{^gbwY6ՉGa4PڝNvǜzsm/(bpn瑇|,qtCIꩅF- !΄?}?F?&良O!◶Oe/A'?# %_BRϿ3P@ l>hQ ? ?M>(ETIoo i|{Ŏlޥϵ[=sB Y{\ AK{Pd@P5w{t+`sPst54u[^a!Vk5<]hd9 `Y +n~$G/^-O94$9d9[K[o?Ԗ}4aJ3ZlZi?]h",]4faffTdJg&W8veNN8qM`G B*J_@x̤K,a3 M#z'X8gщeH ]1gx_eJx|HPs y{(8Rb&E;xer.UZ_z*GbE%\(ar^XKw.6 +>6lkF~ȳH3жRi~Bb5AYHq0 4ʓNXhނ(af^z*c`|Jw5O4WpN~n Wu@,֒$(b[RSqznjr7ЉI'Z\:Pc=.J)YdՈuy<[{SgnoSdZ \D +БJjAhK?R;!2>U )I +.U1*8L; w ^`wS tXyƱu ͇m7QXXp{2;4y6X6 +U)2ʏxn#>!~ؘTNdQun~5rO^cb< f` Bqd]-aopv0Dۨ1\vk```>``````_mʢ` wӉ__s˄=Í¢`2*yYy)yRtbkUyIiy)ڃJ\X3@&F@``@eIR_oc7?nX@~/{Drf*򐐘ar!.޾F:?S?_T0Vorism=D#h3% 1CMHm]2+<ܙ |tϏ#讫-(&ڐCg:-0m2{%dPj_1=vl@& ~|FcBz["џ|*?Ƅ0@_M$n>r\zg;ZA~7C? mU& +l S$Le"IOܣinnh:&Aw/ngpXozSVVZJCM/|2材׭8<2|Co{,V-[;xE[a|WufǴo΂BG@_C9;߱RH}|Lg ) Vw/'ba{E1U/]e$#l]N\֝,`SӖ&RLvl+>H/9U3v4[d|lݶ0zVHQ:r{S?RVS*y`9Ej~XCCM5F- +jI{=m(-PVZR^+G6Snjy~our> Qcp - xPk_hO7@o$ +i` ]< GhefBL!z#5}8 +dş{?p Ս@ݯ1h 4yOEl+$u ?2<4j 0ޱDtJ< L eT sxCWJ .\S%،>;|Yicbs*xS& ɇ9VNRLq6!X;WVE_W,S]dDU v_z}yb'[67?\?=.:/ᶠȕ,7$WVh=AuFu)z6t/݉ C+;+B/ MA!헺.` _0(ũRLI^!YujusD&/]c尉,//؟Y>  +890SM`N.D_$Fb8Lhp[*d:[HN޿Gۼё!x TAIE8әpm[j$'ݕ-P(! [}\x;0<98# +P9Fg>Ls=0*,EXBA'453N,d*2.Ê&^UnuvgNd9N(Sjm!Ec?9VLw%_ض5G^t\6燍dCw1 W5!4M.e33GqVq#Rß6!CX+F:)ͽ݃ybOfdX [l6-nD5$_Z. 4-ْ:si)߅;JS5))iy8&ђU?ٿI} *W`ƮO .4SAPx$*c o<$*-FW9*v0'rtlA?Le-dPھLx8/h%Lpf4oudp-!_ +mCQ囿UoSŭ;i-ɤ쩍9PPuw{o͎gko>Cr ӖnVj~fz"!l6#h~Cd#cc!;W{ >٤6~H]}֟EHQ#`:iyKtvzדJKX$#a|H wr}.BUrc]K.*hD#y31O"/ +gV< 3c4OlV킭0v~K'4H\jb >}6e+m3wHdH'.VMB+;_F[7; S]*[wXL›G!'灹Up Hw==Y0}/p[,nC7QyC{d>@w\Řg3I;]yd`>/G(ntgY!x!۰J ,*&#ܤԛRjnc؎+*kxyO3pwS[ALMK^Z8,\9 /Ov=F ۃZ C"sE7C6EE#*K(;Nwd6Q4fd<i=#ʺ8L'PXT,4Ӿ4"øK4FBþH{bQ<DUT:"9#{2TqK b="8'"MΡ}D9 D(`⋦-Aܥ,f !ЅJM@U@b7˙ZYOfG9ё^bo|b^Ⲇzvf*oaR^g(~Y\C?وAɌ)w_[o_blLmj E<>Ocewf ƦGjRaV٭#'Q4}rgf3V¹BCDžkhh̓ӓ ּ)b8c ifGR[Ꜭ!&Uif6 +uqt +)чⱽgkw>&E0|^>UlDHmlFM2US/mQ+*Haң_XGጄ=c yQ^yƋаs _B:qƑ1#!\ 6Yp>W2$ADvl^lD4Ȼ#k 4'OvfК:-tF;4 zS+Ř.E}Jg"F|z{`D+p~xU88uCx s*4JH5CblNyE`*"Xv,t|9S?7B+I[94S`|wzn-JΒaUD?irX6{u ef5<'SۊI‰K.{i`zԭ6݂6Ql+? ȅeQᶧI[*^5eژ}riY/8v=>oz@7c;9d( @0|nML: nmo4 $|g\, {KPp=rՀkJ{?Qv6l2}ӪLxQQN_fRiwFTzʧ=&D2,j]ӽ6a#\= 9#'ib=i/V(+ժnx~)݇<]T|/8ͯj&rd]zW?RE<"LБϫבkM3sHpR4@JxamUn~]a@s=o>jD>m,vi9]N4xP9T.CgKZ2\<+ +RF_G8 b7[p;(WjX9'פ12L X f:ˤa迣IJ/NgP>}G)Rx~m\q|{}M#qJ  +<{\6MP'Z &̛pSYqQw@TDଘz VJvK7}dV + s +}f}?UyWd"dW8%ԗK;#[ +;oBI;u(E ^D}i#v4EKS#G> hmK\6e + [{%vfn$t!g}.,]ݪ=˷>l, &^Ӡ/{QXY1i{Ɇt])`kYj(i\@8ۥVe'qR^S9LaZef$O#Kyh?m=%iA7)9 +'Otw%A b/0h_r3ĕ;gmA#\D+8+pOUfF0.L.Uur%vcC;Ǐ;WXat<𬒍}t|rpSUMccfY]MA۫_=Z}2nY6ԼܟYI1&$^A/)M?Oc6g.j )cfbhGr}&f|5eaSy_6k4k|WR{^xV{ߛ`-#?ޗ>wn(9m@m@h +qh/њlZ M69Bsd\7 )|~{Oaceca阮NM89F7౻Bػssꑏ +@$P=oE#m-D߳tvzRq; B<6&!}aB0@lmb&?KiٛW7|_9ŗ!oBqG)H?BGP*pE +S #G鲤])--1#* +)x"9Q`rV*OC!sCRI̿Fn~.hz/ݿEL* %[@<5SLK?5=hN%e2ce>70x U@,=T\65'> +ފ%01x/xS@-d+,}]Dm}'s9 +TM$zP(򷏥ͩtFĽ +DFZOЮJ4~2<Rl^+< /k/߰Y@ ˧nXxٔuݍwȸyP(Gf!Z1*vVQ塬xx;+<}>6?7R"] [E7fz[,=F)q?Fe͢hڶm۶mm۶m۶mkmgsmT}uZݟߚk}'NBpe i -Դv/:S2#:W,`I1ҶxV[\k!(Qhdk5 Ƅ,0MA dچL!K@/ W}^ax$-BQЪF`~i!g8Tg-B۾.`_AjcS9vdʚStuzDyIpq'3h(T~V՚: SbAogcx 1?_w^"b2#S3%xeuiFʶ$ WHP +PHQR G[+Ts9A9{q=.[l c;HC2vM xP򃪉H/*`2Xǡ|OQĴ?7No?VnCҢxaW=(EUL.LNṂrG%Z mM^P/9LFq^59aAJ2/EQ֊in~-7զN]fyhjkj3t%՘daٍd( M`qaM?QCd(l0듿uX$ ݏ x-=~ +Ƿ1`m'lt8AT19Zkشe*Qt_K9|Bh(aG+^]8"J/ au~wUrw0㹤 X_Hq"aH7Lv'xǼZL 3٥}:^ *nڟ7F&|9lBctx_q'I0ltIgk:,6Vh_Cv۸wixANʪ +@'l@cn2L[Iv>=w4/GX_" n 1etERr` w"]ȗ:;_~sofC_VK䇝=RK`uF<)4^o1\a3=գ^Vz[Ôgj鬈'x ݂YY#TqィXa+*G] +w<{LZg|~Jo?%d;m0<߄jsVyEE.="$BI) [o6mj^[ +5maZDV y spr}Wv*ƺ(f FC7Z+=6e'_FL6Qpw$.eډq`!{ccqxzwpp*FY;W + Bz V=ɱ +nWyyz)np˜4Zq; kh>'7_}{  aj?]a2 UpiUUpu&-< ;ݿѨe}_T ੻M*r6A5sбXтPǻű|H޳f (L ]LB?wF_sst*t]rSZsv08}\)n?#?iY3.zG?\q ȯb?xnץQS6ױ8^mpsed nd YֳUj|fKi USEQTٰ7S>g7;/qvߩg\8y 0۝rsgw@9Q2)٠<%ӭXd+Ht`Գl#`1U1{gxY }]h{1ѓ5 pT\MZcOuVG S Uul5p47kyMˌ+&rτw qY +Ӧ^(|- rԉ4}=ZS%wZ^G"-EM\ɟNt,6?V9{C؊B 5sGfвb[LY.*-MNM#ʠL-AUFb +7^Pb , + o&(0+k>@Pw5o3T#|^_ȅ,%r`NQJosRI^sE׳3*rڔ*WRWSu9OByoh;:sA4)HK8')8p<O}Ova[u 4NFsqHb#.Y   Όf +o6&rzcD?? (7wQ6/Kqߗl}VGkHt]&/@3l;Y89;z.3rC0P3+lDwk R; =mfY$/޹sŪAs5%3` v bzOdM)cN.U4CN+<8@lr`bQ`7/*EZu^tQLs&Z'k#fKGM|E‹T]>bk$9'ޠjpшQ21FkhcIB1$`~gaXQgV + _Us*ĕGtpN.4x +bLi7 { +9I-[[H>dœE. IVM.i%TP Ru% b֧;޵VD6KP7H0v"r#. B|&$f<DCQKY:[fOu'U^Bb{OГΔ<鋒5G 0Nu);P'DiKѩT1h_RBRcN:(׸2DmdKeCM@?Ōr7&+=%??]{_K: Y4Jiݪ +*&L>Y2RCګW)2*eo{;.Q`]j0-MxC&M=N6C$6x;zee`.8cFW -un|_׽qAcʴGFc ԗnwS]&j[zVMT!Y{mG`WP팲MliP]nJEqt q4A-|z?LxI FpE? ~Ɛof ?EǫJn8(p o9_ +rIo#S!qU&γ٬[ay)Yva 䴳A͎sq7]I?j߫q Q3 ijRox!Rn[ - Oȟd.'HD0(:"9a"RdS{wbd$d^G~- +ZlN̐ &JoʎXF g-:PE[]su'yuy~ח5p~,9ЊO =q*ȘPc%-0E}\\7pŀ;Q< Nemo*5YGk3hr_?'3uWOy#hѯrPaB[䢼juk&PI!+SHŰ2۴ MX`𡹢m[=NLF +3}ArfHC&M)PEv{zzNwX↱ ;^AE}٦DWYJvZ*6gNmZCLЅJ{i=hE؞75xd kE-W3(pJe,y^WiI6vuY!4ZR`&1cK(FnkxT-w"Hs!`'U: Ct) a=*ilb)چ)V3%yH*ƥ5 $.TUa7 vg5Z[< +kf&R<62P,Ӛ35OrʲfPm^ܣ#h5`ΰB2sf:qIhnp?#k9MY@3EcF|OO:uIKY*eY\%OˮHh 6zWq @ܚUg$n__>ZN9|tb)Q:r :J z ?*iBpU}F2P!zv7hys?x>LzDp5;T `קx*""z.܌I5Mb\t[rjXw]v p [ ?wOQ5* =R,YSjB8[+I0cat~{ $ +sݯ'3`=0{U![ scM(R l:x[fUֽH?pRke4g!Ҙ '!SÚ tP!JV`ߴHB q69uQpQ_ޢ煬}Moc|ML%u48Db=5a&&"(SĆLhKh +G-be+rygZ*~= +#.ЪJ߷(ަk28=\Jj_w@'~KU +r@i+ޣ+\:LHv}96Gn^^ZŭI k` !RӺXVFYs#ҪҜ,lJ8F1lOSyQsNT5Ϝs~.Sgpi)u[(۷i/V&/n BG,:vܚquBuP~+ta̠9Cmym)U}OEe3l*7>K6[XvoiRxXK¿/@rҖC ;(/!RYxd!IX"zlwrX>_S- W T؍N$C΀GI"iyCӬɿaF<1Iɩ9jwS fw$%hQaitaS*K)GkO;&~ JyC17S|ɰ ןYlϣ<;\ tH"w@|l(RTх Pj*עrУC[pj#XXxX0ss$e6;ǻ Kg.tv vAr(1ĠgNsP+ tX@YI{,oםM~xMgUXP( +6㈵Jժ-Xm*oёTJ-2DPmْ6ٓY*zP;~f.SVz6:o(xx~k4;4ǡh}Lumw<ZC/ zLYـ 78KaCK=F~_v|,GEK~q9#- !\'ӻV t\ANҘvnC'T ƐnCEp]|^9>a_oEW^VYLc"EJT)r5R>uIBÌ?;Sd(ШtPHriRFs17|0,õxԏ 9{D2Ԅٳk \>"""@w(nCK3Sl'HjrVC74tvq ٣$k5zվ%%Y+ X6kMBCR s\[ _C)}(ӧ;z ѸkגvJ & N&2RŷdOr <ʲ\_k @ +|GfHm36~\1G4qgsc9Ŀ|c\<hG/7 ئKRu\bŜ0Hg-Fˋ= D-栒{(Fx KOhyuR3o$z J6RnE(; LƹP<(;HМ.oNGB%Wx;dcZs!p5aאDK~J¾}IjoO}j_W&򈔣skx +B6!86@QI' !\@B*_%!cvJ&U2+.[xt88N7?Ug ;ݐUQ~{fdDid!FJ$ZXdK#@AP^aU[h .}?MKagqbNz>o>w>o>!S i }Qn#gH5 +!Ȉ75]5 ʼnQX?"?p#BO/!>z4En{K٦7A wW"CoD&o}#89(š8ӟf`w*Rm[=yJ tVgCT5-|-ϚDwGjOGݰHU1T% k&&*""X45Cg*MQ Q1GzIC&q +DUQTU>e4 B\C +} 0'e r$'JB;``&#fV%8Q',=:!Jj'/Ub,y: P[hP:rtJ'*YTEY0Q"O{͇}䊘/("W UCz1t +gH|i +cP̅t6edgHJY_[ ^IRCx5~#/}fQ_n 4=CFG[q)`^_'Hg0u&ɼN7ҕM4%3ȷ9,ͧP&P.`EI`)#`H> +?*@,FAĻ`!XpkvK뺥K'a 4d +o/o4ގqA!JϊoXBu=zpFs.'2xTԵIst`ChFrWBtFMK n#&>Ѕ/#CrR@\$ ?h/0oi7XG2y|l.,$A`NP0;PL6^].9DBRSo-Z0+/EC.aqjj/҄jNǒR5[&,L_%aXv-ZE/|j(}<0Me^?!,* iv&;raXaDNuU^QeZ4h._AugkN\OF)[VLʥB)P4>ϊ/Xq>Ձܨm(#u"nN0tj(9_?k@W0ѱEAڣ^`rre{hpٚN:Zr2mANgp]7dWꗲQ=@ٺj쐕"dvb'HZY,Udt#kzT]fv?De,Iqq!1$3o>΋T~UD~Q<*#0{ Y釲{eD61@YASJR PbIfڈif*,PVܢJe#' p]fi CxVI5i2P:x eT!H +1z ^>`;NT)T!IDG}T)Wn=6xO??7;?ϸ`ɗh$)&W~j<;(9ܤ(6n=3݄ɗ(Ivuu Nў-2W:Ύ=* +hKsI +9t\ScJI$y+ڱEi&6lc*MOp TV :Eq!|f} lfe[&R7va qk2@ĄqS6C—NSX؉W@Qk91N󿲴>K,sm=m65i0nLItG&'sgP)bpu.iqa=͚PbRA{sM[u;ٳA0' +t;%E +0ʾ#2 :*TlI$v%86$ZŽCAϛ)JsĖd~iybϙDc }C^j;(] 5^oŁu !Rw$GBnY}RN?HߊBaUv 03Ӧ1Qj}C^AFQ~JT>oZgk(<~$6.]Ԥp' FW/H +I_?}`Fy꺙sN"! +Hxt]E_uJѢ[rmL<_!1#UY9ƌ9{ UyaAAޚ*j;aaTnгM"Mlq;f +¬rvm`ZFMjnȋߣow 1v\rI{D%i\O+ jRk)Bm;<6TЪN^Vwtlk3i97 @L:ͧU6>}(ڋdtG|`G$KC +T!5By~ q:WuH\m:;MUa_8 (Y[ lI8UEv }kLDnf98F6jKfuH> l[պ} >Ⱥ~5D:i^ wۤp®S%kR5j%° 5{VS\u~.Ջ7U֬'~ +' rIoG7=5S*f56v󽒧0ZVfik' Y}I1b]H%o,GԄ|OdY q^-q$Q ;23P!w4SPw=1.xfŔDH["1/d+)~lx<)J~ͨafo%ֹ2hė,rDX(#D"lı7)"g@g;SS q;nᅭ[׊I4f{$"-庘'$~ĵrc@.flq=Wd1|%_*5wRɕpEV{5#ߝL,vBzcjkwkVwmi(|i /n@ǝ>#>6NJ`;`7U]gě{# j)7>/2(_9&./!u$-/!`lN#S?>9:h(1zD'^S?Hm4;N=SQ?ƨc4̄gw z Wqݝ1-&>[~,!5##J<'#\mYyNLɚfTM%e :kJa&tf.ļX |t)mRnP +⿏ϗ@*-O3τ*e%[ҁiB33E_YɷLUg|U"4,a d>~񇏷4lE1XLH6thH9{Ie *$ܯ.U:3"ص({IҐwz=ɕxaHkTQ͵9V-*Xܤ{RJ258!j\I?0RPD +Ykf &,zx\tlyLZ$gMBT2O,&:S#Î3Xqrpq[jZx7"! 1YH9CXmXPMLk!V9+qajY/Ay\H; L:Dr9" 4aD|Y%wjU*(9(zvӕb>7f*ؙ  #lVy]q3]Jj:8v;ŲNj[V pY/ p +B w7h%VRdzOE dp!EmZPާv6p{?O9y¯ +DZZDi$#{# ;׻a\q{$ƕ=e6F'G +N B#)5:Bd&tY4a:[?g*gI Grw{: (v8ENA/l)ea k+Fc mcW>,2SI-J֥]@!©.OzȢ[S`~P kj.2Ȣ ŀmȧUmSYDܴsU#z 9qy|LBJ{^kKM/)_uTj,>ju&;h= i +>9'}̷5n#HM fKPQ+j5yiXV GG~qi{"0N>]k55Ž9B[`z!S.X0,d QPLALw-yj~lRHvM)B]5e"FOT ͣW3--Ƣ"H]یF'lvu|([F5 M`ީCVWB#i1S{=(=~7u x~~|8;q7#~O|wxw׆iAv(lO3Bߵ1~i͋mo];1(? 8LI"ͳ~mXZG7췑d +z$ peH 6Y*. #pɸNdeKhD"D~1e> , |;{|AC,ï?ag7KufiƀAT%8p \&n>M8a>vK]j~ W4ڤn~$vW"V p*K(?hqYR7yuC6CDK\(2 bM@E'd?<U~^Bw~w?E.)h4:dz%PQE΍]oj^5;tAmPX j Fpy$ JjC>a;BJ4+DvY!+9_!P8BTd((n,ԅ|`Cr`+gy*<%ozXLq mҡT[hQVpmq,Fm gH!)؄+Ifլs?wXnoAS7 CH7Ȟi7s7Kq-KE];,"nXe<ԡf|k5>b6V4h(d΋A0-1E.őRnOC/9h : ;$tJХiRtVPבѡJE-@PGk- &ԻxMI+6#o%PJIꄾzRRL:Ll̚U;Xun%#`&w# FMg:uvjRd"umiuUa䝵!NJZ*& +^7e/@Ѭgر1A j`Ǟ˃HYTvT4o`<$㌹rAX ??(ThXaN\l jfO7@Ew>^E;tG?XArNS㎡fQGuƺ-ƾ E項*pA/$r! E:Lc GP3zӆ*jDqv"eĜYrs=*N/1PeKƷMO*/s+4z0XڵaeY7, VPДCyEF0-+*Q^=TYU`,)g՛pul"|JN^xZt1H*1p Cԯjf)UKjH'!8]6=Te6FOԼB5nL~-HuPRҧ5piäj-m//!($I.cW\MDڳ#A ߶L"V$E*Д ;oQFd~&Zr>?d"q+Mlmڥfs o&D[r@:;"\XΎ+oiu`:ZqNLıV&_d,G$8mܛ``j-Hm(@Y]f,b3+SܲZ਺㘧Kݘdtl$|I._ZG`tmc:TF$dDEhT1okoYC"nZ iM´RW+ДJ +>evNss|1D=$' y$Q0hx!(yR[1fi +'sHJo*_\eBܓ!P>$^W/&Kh&b5,ݖz쌑-#1+ dChEpdq^tpPn?e]0~{ +"^r(nxh&:# ++bK!wh/NrBsZ;X/d_M DRDP.Fm9xn^/۷1lك"7Gr酲+jAcݨ?aUɱc 斚ܺ[gӲYFE"[m"A{:m-jv;:}ѫR<uȲݚ V|4W|þ, Eľ-0 ih_o O!CSbt Oh/9T_( ɗ4m_}'+ufN]n)7;ڈɗ/=ݤX?!Ovi7^H` ʼ Fq`Fo]{eƻT_kކw-c7L!Encd1HtDZr@XlRTAzMiQ&xշ$jAo۰L+]H'hx@-p$R6%V.v%Fits6F덖8ߎ1n۔R&A=J[ ki:tCD'^!Ñx$]Ea{hUY&U68ch"pٸW8R}ced?ͩcs&5mh C׽-BtؓH#ʆtx=(boweD$J,ha *߂.b\O3 ?5Ѓo1>SQCRŒT:%l F]5|=V4&(:KNRݼ)ϗG{6Ild#tɦM$hCč6SjdJrg9r#q 7[TҮR%,d$يxi PK@dq^)|w NuFb?)7R'2,O~oMswyUgMeuD1SMϵ }.yYt)VNlp9ɔ't|qT]4+^ܠ1pvxfIkpbf<7tGLҨX<d)sl³^`l7z0eJ쉇*K#鮔 5w˧QՓ_- R&<ߤF_SlwLN,=[*Kjٰ*V"8ǻdzrD6n0XP3> ko +>I2O/XzmIZ걯PU»H +v:waҗ ~i-B*fVWd{07Xhç<OU=\o2fQe,qq@ +e^sJa2Q%@܊a=Y_t`>̣Uu|i[򓅨\*^\}I[xߞ3qF\LϯD50J:DA.*IfŲOp(4Gz!""\ +@9 A[PJ>tuHy1X#|2r'-i>AI#gA|l"o HgL6^S[js89>J>>D>QU6>T48Gi2`9IoQϠ7-wN +/J?nnzl @ +8`"M+_ +ᤴB^F[Z;Ra*GlSe4N# (f[s@퀠M1e.KͺfX+']>:YT6Tާrs(d%6P΁d왖FI'օ +_? +hIUϚaI4nBQA;G3U{ +:b8ukȜg8Zzq}u}z~78`0t'&ZT6]>@͠"9LM+,WD@0wPZ~ DHHX +LLDo(C(]b&~4S8&iZ8\' tN]C֝Rw #?%2 E*%i! yLuڝgUh4_4y9ςó՝FˮI:Hztx.ȺB5RAl;4:hwA]{U=5Wj[Ļ`8Lu )syH+ ${~tnsQ O"16Fk붜9. +UTKmP}\䕠YKKAXB:H|_o +eExUIP_]GH6P@sI>н?f25Dz^Ă.b !/i =Āg"|~d"l E|RI6@>BMBcj^8x\lŌ'6JdKdr}Hu,.s{ !<-:ነ$#e&P7;m,OJu_*<޼EyupCH0{Yp٣A>41E\hMj~!DOi7p腄(u#o"tG{t3D0qı.jG  P +¯Q C Xs"xᬟS}±!+%e$%NN +ζ@W&*//$U1| 7H;@ljP)B-R-WQ!@HgdPҐl8-)YդS@q}f>d7yzM~}`/D$bS\0`B8fK@+7E[6.0pJիP} +%,*)3JMARMM ZBq[կ±B;q{f9nvZ\h3FU,2j$hi"IQK-ѐ&D:8!-V*9SDOyS{J]rC4-ixjB_-/KJDdBsK%L6GN 3CY5b -([Tȏ_fPPa$zfeaZ73Mať+2Lى#q|ػbx[6&˽&P#Ѩp Fn" \%44!´cB.%V Ȃ3ɉHj-h{nޑκyvlG7 +vt>P1zAZZH?seæ<;c$ RN7IҒSP#X1VҍȲO(QV2z3|*&<D8H%GGr0%K?8\zI DIfη3J]#N7l +/E +Bj".>ލ#_lKM~ 9!|VsFNuJ +?mb< +6d ìWrl]S55--VZU|D"˭7vay߀ܥ+2&i$[<;}ޠ;]Hp}/#p$3aX߿cLxyy|C0޾ac_Ґ9HBKLGsGsSGS$'{}wRM٘k4.22LvYdƪʲn%*S:?!2R<|ȪKF.Ԡ؊N]UnohmXi3X5/2jʼt퍿x+ּ;fΟj`;XjOh3%aNy\D+_[E\[DKZBAaƬ-3$O jM"cɹ +65K2'Z0Šq5d-&Hř௎,n%o ]ę K2Ŕ\pqe ۶+2IJSm4ڳ@kL#z''U$r_]P3fXsΑ,2x0nsJ +{4j\Z;+)Xof8g_gguPFEN,UU19#4ULk݉-y4ٙSFߵ/_p>*bTq ۓ!i=ePCPc\TX#Cz_L)9!(ܑLhA펺PtECYKn>v6ّ&IBJцB8h) {A9JzK7kvҚTQDFUؤuLl'cUPC@IjFB +nͶm΋ri.I=l%-y0^R>|Q$a#k;$ضOqe)+g2JJ0.&Cװ]*FB A ?Rwur?U>LdlR=i\Gխq(r[AafYh|cb +o)e?PN'}bSDqUUeLWsREnNW{6{a];@|{O[&*;;˻ *6}!]+8M_s1ܢϨ$=x&0θ+n-OiRgBUoĬJeUeoOԬCy%l:]0r F <+ gո爵6Ȼq9ZʞW+U6suˢS`cU`P`"IW+D Kڰ1~P?m;I%?s4r]b}́6w'@u.]B(М>p;$9cP?08U՘? 7®?-^#Wם7 9kޠáҶ=ޥO +:ͳ_2O%wFƷ c)Rݾ|Ȟl,L: (r UQKa!ׯWLWG׌ʍhr/gOf=s£xX[Hs] $Bw1sHsGB`c$q c']k [,t[`tsk Q!19⊩=By9B{Gl@R=Ӏ /|3Q־MZѿ4+gKtNh+ٙ,"oݺX4#mzfp@.ΧŔZ_#{5ʳkjqSb +UP+x`: b4ux+2G+{-9 4<@0$?J +BD'=@YX-j\|$&C +\:LB){R6E+|qJfJH5*Lf&=4䇦HG6%.?>LW{$4Sw2q+G{ԢSVaI[:R0aD 4! `{@c CX G \!_'! _A>UC/lT4ʼ06mAʶJZXBXXnXS%PZ&eGX,3m,45 x 4Vh% Sqō8-4e%I{~zu>TGsW +#90zK5G4 T8D$~>>VE 5Qt0bD:0FE_Rut-[Q--䙱DCVD:QM>lh-mF:8˿8^-NoIʭ{άh+ɚX(ٖ^U6"̖6kEY Ê3K[3mҩ#hҺ݅ңy5U2*k6!tr$nOsCCZ8*bBFC\_: Z+hNvnږí*kCR|3kLgR*jN ;xG1 +l,d̸iYz&})Aΐ;:oXP dw PMMbMq +Q<(6o:-"H wGMV%T=amU%V䰁*<(HFA= +uVJb\<zǮmd\@1<0ܘ^+q1U7ۯb՚6>9VihX357[|dj#ϓ~ 'ݯ~1 YmVg2h&M +7`->&o' v~&+ve]uD'%]x.M[i6Jة?OcVu~J[E{Y{Q/]=4j=Wgkt[WI5ؽ6[/1įi|#$?X1Rė'*q 4!;\ܑkm4$n U0%&2X|3UΌrzUE)Kf%,IEK`W u݈m6ti(U4@V +J!^u`~j:y+۴/gpX7%^9VؘH_ +Y9ʆ4?T"$0llNu So㣫b#K4M +M󦈙c0Eh8Ragb& l:N$qljGZ-fV`ky$pVg +ȔCqq%+:w:h{_tkT+Pnj*m f[')vT+T;F(F>"gz11H0q?a~ T%iЄ2)F$E:57y{m`>quEg?'LzloamLE7&HXMG27Jf#yt'kG*? sì:u}޲VXthtx+AYD9 B, 0jMW-@dMAV\ Z\,&.C8& -@m,.!!0 Z'w +fZhqʜ[r!X7>kLE5[a>IW/%fv!ʜΞMWޔz k q +e5)_/>M}1O1U.љC=/??,l ->`@M~y@ġ}}; 1V,h*z; <1daezTefH*w!;??Ձ5oݡHHP#nީW0\[@$~[B$~ʗȜʗHo>ɫ4jaS߯؀(hj8WUZv95~7 A5Vlr xM1.2DKk Dd*rWy6[q#qѽ@heTXILaU9F5g5N*$ѧ˒$V.˹{}xZhqPjs0Ky,rs(2M|H±`($&mN9kIjxTTRMdeRqD`Q>v]cozT ߫ܵ ja2ʉ+WM0PrŸV# /0$[;W%֞CTP~&zX1&U*-5#KS8m%΄ƞ#׊뼉tѹFhD9! PwNmWkj[č\_qdڐ1W/v&N{q7vf΅&A{۽)n\gCF~V'ZC3 S=X8nhի_V 5O`05j Oڐ==O>/ԪT&,1RklV)RbAQ#[Jcy#1ׯD^'3;ñqvZAҨ)ySƒi,~n&}КirB 픓tTډhPO-S!PE~N;>.CwbR&4.n$?\fdJOKVyy_boMU/H6!}Pá!RS2rV0q*lZ+d[j[nSpN오fi0SJw\(I$gCba-rj+dEg"8Q[ŏ~X]?(a(mTM\Q݅Fy>?ՠģ~"~(}jzB[Kr.4:w혁@}E>@|#FA_ƺ>Jo,ˤԋF XuZ&;3}v +v/U(#/?`!(bOZ`GFߜ~-4p0s+p7{sFTI4r[f[j-E}495#rU] 5jތ@g5|hٺy?G"v{=ҜH3S.c #3d]|uh{ԅoL$d3;/JΉki?tn{s^a%f${~te(ݩ~#r1lDGѲ'^r`Vr* +f4q102钌`Ph[x؏hὖ7a\Ӣ.<;tCtg3򰠄%I#R{`j= nl8fLD(?qLn0 yU  C8% [60 s*^.gy![1ѝ\ nɹSS$[ScEPgi6)F^WLnk~Q]u 4 98nրtQE["YZl D,Kh$T\,-86qi+Ю0A`o ᰍ1+K: Ğß28gl*ؼ틅gx `f}dSd +:KEgv=ZEVA8%jʷU]jD^KfdʷOA}*W;R-%R-&r-'}=I^O On 'Ztwil&={^I~l75Cb QfP2UT7ͨcHD EUwM4Qm'Fqb*"L@&7/Ҫ!P DhB| twh8w#QN. 6jNDk4S/ ˅i)YSAt+Ych6&]ȴH*v='Bb89E,ւGz2cI:tRh65)$tݖe۶m۶m۾m۶m۶m^~IMff2jjȊ>t̜/뚔̔fY}ZV 3ir>$=Nt׿0FI6hR!R lF7 +mߗzj.r$n'JrBJCOn?,n#>2 B&'^ $@E\[=Ük>), C,5d𛸧O5g'D[|1HJnN'.7tZlXL"MeI0Tw2*m +3Oe(k,VrCsV+;(lR@bNl1DW{ +[p`Yp[ Y/A[s.޳~tgz9``ZVYLe>۩\S7ۇPX7#Љ ɾB"T +Y$aX<(SfgIRcVME203 +뇚^:&WG0FZ;dp.z$\K}>N?64Zc$YMn@Vzz;NZ760Ӯw:N?ÏVghCke^Őu[4E6Nk", ѭ?5p&5HU6i~8A.H32R&wRNcA\ИbޫCsR˦L 2o Nl4p -/?9O'oXVҮ|Wj)PI7P-46IIqɮ-O +qs'6מ $iԑ1[Q@Ex񾮕 "XNX͜(+3rvoS bB$o.c1GL'TqBC'P:l.39L!yn]9᜝J\!Vv=*qύToi LQZb +a\FjP~,v~+H$U㱙KmiMOWCsNra0Z7 !|3F:M{a9.@:7$C,I#4b| R.0 J;yO՟R"%&ݠԟoZ#kMґ1fLS A3Dt{{Ā0ҒrHO Ƚ'4?}b_J%+VNvma<Z\߄ cбh,np4#jx96?0xzO8u h3jQ"@: zݡ:K!\*]iOLg@UdN?% tԌ/=d.d0ĕu6zn.&Cek. W8:ҬI=2h':ۉ q|JK>5g*+&`T ycT;$7Di4e[n%Qb;pif]fdE>YkЭN+o";AOޅ1pNx\0iyqH@hH\D`h[2+0t0t'po<9tyVAgpKA䋝RW;ol1Ʀv@$J`o^C$c_Eb;hϨ#= ſtFItZ1g5_hYΠDŸUfٞ@b6.-飬}bc$ nD +2$ +Z;ssWo>U*&)&TZf~`^pn>$vyz:}u0!:fSX|;:b7arzw@R9#Kz0K{W?|hDS?-#:U ̣P҃'lGC?U/ lCGgb_D'$5IMfNRM Y@[lRp*5/~щbD6/,rtC*13RGƏKRT38u-B??"jŅ#DS6 a>dhKMf [5 += Yct\wHkgX*$)ٽ"#ㄍ4KJ=j ;Tpx8JG*wR3m4<ym_❚BKIEm骎*T~c}Q߳?P32Ξ0C?&k +0.8ejݳ9ݑZxW7W:H.iD`WiހZN}CRDuzHeR*Ҿe9~2Q>Qlk=h*`gB˜:mԶ3%zh6Mcb/yBDة6sbe}T"kNV~pi&`m$$"s=`u/SB`lclM(i.Ul#8%G陓xq`} +b!$J| Dy gʞh S \6ِBtnf!`5zT[KO4'˶39$6~(Xw+.+9ܸεkuz26ۿ +m&B+_|tYN7p;k! +_ϔ°oZ+̮EDoK"?[5K ߻ +d +|!BSpB*ގ@ff +)Jmw<'D˙ý6ν3~EUPMl 5<,q5?}Ɛ%aB]թ &^~]YI8ms+k7 ؼ_oP5;6#j~.wWeUdZY#X[<4BRXdxX /܎DoX/`dyǂ?!FbE47%g/#iߏi@ )7E\gث4ֶ3CNAOF4 +B uB #N9ya]E8T dRn/Խ[g5XeQrvе6GvȶmDŽzA'+h@xԷW4+>{!HQ+%bRsJN$Й1]p]`(qQGp3#BC!p1u{_g5_b(z]m#$Adp av^ibe9rbMEB= EfХM:0 ?ws72eQmrh Ș_v|v|^~u2mFpPO ! +eÎx N}5F܉4ƈVya!%yJ,Q,<ԆXxx iDa>HQUCYar?}2nif3|# M%SҔ<2cLhn٣5/JAq Nx3bH/m[< +RS8N@K@;U+*jKX췂cI6o8ץl0!=9^j8 wra/K{׼DnGf-M\&o.曵\t& fWr}WZ(Z  #z.3xG]x0ww\a+:P{ hMM⢫o)ƺ/^3s\2ύ3\w2Fs(2'2=Hk Qҋ]Ӕ\dG\Oe׼z- $ȉ&j+{yà?l6lj "=[iT⦶iqƙxbZb#&$f3'ՇACMé%VSVz/W؍tOoV1ÌM;PC @$aJ^"Ҏ}ʠ +KìfynEn4DN[J$-31OX76-ҫ}"UR@.v+o5s*aI;$7A.oS讽34MMӆkWCh%2IݟJ/RWg=<|Z9O_5_mե;sXCZv\"s+jY9P'DPw;fB]eje|Kh}?2 *xNw/F~@疗n'e r`IPowR)e]f׬gAKuF +m=ΓΓ^tƢV`] <1 U BO,Z<(5xc=,^p 9_^tFh}H_}nuu01˧- =wL~3x%ږ Gavg +*&xXk@^t^t;4z^5j9vajrVG΅Ð\xE"uJ- +aQ!RLtIjQ2F1u+:&y*SmzVFZk:QȪsE/} 7e i۔;,b䬀EeS#;xPGwP.e0CӣQ^ +GK;jKT?fbm;; 6CDլي=Čɔک]^K,꺏-~e%gUm~mnϢڹP#/N9.6p2L۴W?x- >t@Xei%-;U ;+7Ġ3zV(חvd{c1' [o 7P;̀l [?b.3Ni+.SHifWKj5 +g[fBYhc* ![lt&>;L^ɶceM鴸ˤo +L9-sT h_;1IK FӔiFٸcVZ<@W?G봇ʘyLlVb@t2 x"Lxm6:aE-2|EYbiVO åDUrn%"{3l)Fʺ0qaOV53P~S@PEuӬ0& Fg%^Ǯ8b]i/Wb߷NjԳg>\֬5'iTȺTu202זg]S[nYNZm[ 2N_UXy}̊)S1x1qjL،:[#bt{OaHW{Aw%] Q8-uYkae_YQ-5Sn@Zx-2 ĩ2 zbT5E/J*2(i8+us4[v#@qsi8#A:(b1,Ibt+L5lyM34k#d0X|=N udwĄSq kqo#r5mb;B +VVF5l-^6LɰUaxGAl̀P rZc 3Y&T빷x +$7Z]?,ahoYZhLAi69X]lz 뽢֨{^f0$(բN  c IH,(͐`l.VFmj]Ek7/x^x^x-[Nn ޽ݹmu ީ:dnQļE1  AM:H<@ Bݞ { _ B2f# nc@Q +r<`~p@% ݪ"qE}<#-1`auX(PA3d~[]2fW.u ٘ط'4cɢ,"ږFQӑwl坿{0|#Fnaժ;A޽ZF,a!xZ\lT(ިM6t ![} X G@$4y[_"Z2^I467UI|L?8Z[,+ ai"_ +8!rL1nOM35n0$f焑^ ka,:hE7$h,Ԫ;VQUEiДLl.f9?01cUb|tńiv1jOK +RHR@ГfR`+-&F1T$H7oĩqlsm9֬=6UT$3Ucb7& +\2(B)jAW)oJ?Fܧ㍨+\7p \^_[\0!xz/q%}Ed|͞Ͳ8^V,RCvo8E;CzT Ȝ6WtaϿh<81-jI#'LгFce?g´x!J=e/w|!1&>*hJix{M $֘ؒeUT**NNiW$ĨudtIE`A8%lOH4-IrdjQ2n G%؀r.wظ*{. .jsnQٮT鶮(n'i1pG\kO'N8oQXeqXHYxSh,h&niȈNL;Fe~ܘQpfy/]= 4:FR!DVW\vbho MM̭FL kCt^kM@=x8٢taz1/d뤺 n8ͧ7VZ -4kT *qf$lS`հg+̚84 )WR/9YnrzY&s΁'Bd`SO8Y `ĜA8٨LG\':1DIq[`Ƃ1 _OmQ9 |IcP/v f2LM O0şz+MNܐ^JߠoB" it|v3'#b+'mPQSA҆a)F+(}mC0EGk1B. 6`ۉLj͓>a@Z +bȁ i9蔢1,a5k$#m!B;(jhnM[CHo}3#ZlIA}!{sn!enY\=yBAX4E)ę`c5`+pL:"4X"kWԅIIO(m m lXdHBAL7P<Ӹ@$S׫vcz@hU<LW40#oVmKUr󈴢EW솬4ڋ';ɋ!h =[ܧrfq?-γ‹M)fyV#|Qv^,%~_A~l53F 2NRՉܙ. A9&aQ _9 (`ΆՂr{"!8D:MI=)h:h%3`<==U,8Q8lijÜJ#[Ghn`cPVFVCjr"PŒ@VD\ verlZx\Ytq:|5.&yN<㹻|<=ʳfUGYAd5Qwm3Eug:9%~U{FqBJEQdPj}X#Y k 3$ Sa|Azw4aV<1*IYߗV3N'Gw^;Zs4 7a2?҄cBɅyf]j&W9#y}a?x!R-4"}_]A_)Ta4gcC 7/\hP2ipU祋 ``|ur$9cAjJ _2ȅKj"?`ת#πDu Oaaׂ%"tTC@B&PZfa3A h†Wq9Ζ.SdLw3SIrK%ܒY2I` ͲV$ŲSSҏ6͠%Ң ! +("* ðsw2f ӻο޷gfw]W1aA߫C@9g?xO ³nhab) C7ڵT\"TߙU }³ꜞX\QdQmQ*ەFTeGV^+Ն#~+W[ S&'HXLfŕ_L'rlpCOMQ~m.Cq ^\YMom1hnUZUQX8M(荤Sq*fdvQW2m.mۦY]oJYpŬm{"vr@I]2 +>QVVx2gcCI7t#ӠI/*|v[xNb>xmlB9Tt1;Qi!sF+ㄤaY.flUr@! '8L.~~"Qt -ayS U5Z .:SKTZwJsThyhhyHQ)E8_"(&`9ZaiDgWƸ.}3B( N5<ඔG3/96&F"*:@#ΐ ;(݂"tC\D; L_晍:D\>\5/r/ V CB$S.Z(PX^ '[.iIf.҅NƢOW06L#JD5D72-<{;$"W q[!ż<㖡.1bZfńaQap à#b@ aKGReT&~&|TrsۉνUVԍM/A#I-1ӺTōjSW.*Jr_m=ɩT/8@#v4/$H!|wD,9tQqbZriQL<8n҆˧@?9ue^B5zC)24@d{6H"8vv /݁e:8ݘxзC_”C< +zKOh>%⫘wE(ˍ H{>t}Gh:b(gNC"rT)/sHP)1Yj(6DŮEK0D"3I^:U[S*U9} +,O(" tb/Jr$KQ|,QRŃj QKZJ%udU +PKI!=IݰDF #OݟH /ւy=W?x^ॆ-5&[S8!-/P so<$E+ k8>ɟ|ؤXp #yX=R +r7jKq18 A-N)A-]Bw;Ue xIZ;d`/06Q2F3Ѷ$M )6MбtA5t>Atn`mRѱ.|k[ 9aFYNG NΥ]'.m:e'6Gn8>]mIaAO8>a'78o $/,#|Ԏc ѸKYkS?y;R{2N>ˢ:FQOg<:axCƠ^,{%]Km񿡶E j/TA,8W"@xIwNΔ@}pDHzzbQʋTccNFk!T`C&>{i17;?,e@E8"~!b&5^]|͌IVdYٽҡM 04y5%-99@$\Kr~$`Z'2oENS``*vJ#dZU`7M>K9?HSCSοE`޵f4G:cgjn3Ȫ(K%ٚAjjHl3DE#)lA{S&Xr&`P=O|4@5σ'O$:2œg}ή'1<ǨBd+7 坃@O&\`!Q2@n:@qH1G7n%BpG2@ro{l>SnxF [XTC^/͜qZ7:f%--^4 [ζ?݇ 1L^*T}H6/ތ6y V LU]DN^N(52ј=eNH3,n-ZO"CnQv$BdcQkI3U~00P_J,dR~ +wٍФ,!M#Qb@f chqK:`F܍iRlDl(.JtmЫI,(u h_f40ga9\_WS$7/y&S1XA ++QSH4!j)w o)5;[ +˚7Q۲zTt[tW;V =<ɹ)n[-E6iSI,-S]<vF=BNؓ2 @uIwj?X3wdvN,"8״vPVNz)r'RKǖDyj֐rڼqP| s6T=j[AoJ rfsN-ײ;=b8(kgV!}!<; +-,&w<ʼ0h=hf,BXd1")vuIK߼W{EVHߣbNB֮;l,oׅw` YҾW0aKMyHZ2P!S#?eaUgs9v,7]n0d] v\? 0KjWڟ 1v& S`d$͜_ݷu(%UF< +6sXbeUmo52N[/(^۬])WfOoW{߯j*`x0 ypt>p;tx!~|1xx1rakaFWFhqS0#}~#GK@g!$&>#J2WCX>#_>ZėLH_$>#h^h'^躩v#MLe&`{'2i!Cm$TAT|nAwE$E(kpg$~c­EccA0Z-!dH }X'(%#4$9,6 6+"LxQtJvXp)!XC֝-RNj.,fq֭xf +ҼZK]yѱhA]xK70`f Uc,a&q\FwCZ\emIB *QVB+f:M*[@f4U]rd>K63D_VaCnqZFH2O7m\?0C^xǷq1A8枧ޜj5~f *DFȚ v6(`K DMV&  +"RvknDmphuuXQ5,aLTuzC3Q庶"ZrY(൲"W/utc TtE{]3&4$#;ѐ1*[Cb"]EQbi& >YLPD p >7ؾP^c i1)<'NP~'!KUdShTUFVrС"%[8?K441EL6S1,圝y컂B~'X1l.,1 Y„q:1`*-@f-0$+ﺄ6;qrʔݻe$Â;b d}c*1{(dy%am&hgXy`s.(θ4 +”G DHzUsv=P;΢VcVHM.,\]Ub:'Ȅna q $:#,|9^}~ol[QN]̺HXspqQs ^Vn` + W>rXa7R)3SJ[mHeQRӘnnc-8DaH)9aNgx|}T~mxmA;ଘ)Ki~{O}$tUm@ko-nPWWm_C.M3*dǠ~! i~EE{LRMԾ4:뇒*-UȖinrWv̝]*M|Q`->)2f!ceBՐ .Ixjcr-iRڸu+nH]U!ş4S۳Tos-Q?[c4{Hs:}j˯Rn*ӂN b\l)Z7rgn +鬟//e/rb@cX7y8FwS #nήtM^; 'dqG'-qm.P:'Z|Soخ#^udo4ߛ&s36H$]m\?eAwpH.G\V} +[lERre.`-&R݆L TLHGՠ`ePF"w΄U&Zg8fo?lYib٩YZ GJ]dȥ b\ &G&JQPTm{{vx##ü^vMȨϩn]m;ߧ1}_ +4b`!j@X`U=丵#z0aA1PuG6tHc#`'PccU H]Cpj#P)*J遭En*:P}݇o:mT[`.ss^4e Y![^|geUI zTJz"MzN=X)hCtCFge|7@s1.v4Qی`M\sD0CMI'@m/!8;l#ޠ\Qdh)lƋM۫S1!mc3D&SZ9Isr%|T@6#5CBg\òiŶѳ3֚x؆1dtcX*V +9 +yв%J+OUla}mGBtCk\%E DöĝRwS>}il= 폄jl @'p4~Vj]a)-a"oQn0K((%um[CBBYxbY` 54*tTݦull+כ)J=P`,ԕDl*}J} +a# Q8"^]Ws$dw%{'k1GjO1[Bi!cG+2@ PG!))kd6bV_MHsT31"ֹsxTÙıf?`]IS6mƉa0+).$xZQ>YBcxao('֮i>(LvL%u ש*ڨ/ϗVx<,N"&ʴj5u!7o^>@-3hWԖm_ⷘ=*?C ZMBef HZ=r<掮; Uz ت +N No Lj~U=M?J.rk9GESXE> l΋'͑Nsu1;CZ tVx'!+р@YAk%C`($cK0 CiNRӲ^Ukdm}e-d RݺYڪݔey||  2jC!B7s,cgImlg-́"rΥ\򆡸%A>NSk3VNR15VZeH_). NbgВ&&P $.szIve9""INNNKoAW6Evk5<oH*]sQ.5$[ SX`x4VNpILa$ǹM궥>xl}tCnYI'tc^,Z!,RNj۱܉z7+ lK@0!*tTHp|0mDv)ֲ&Kbǩ֩KK6Fen z;ۖ&UPzKvjʯ0߂[kvkwf`ߊ_RNo5!texe;Fl`;; q9s'= .ݩa߂?G\#wXu$塠?Ywr +"dR!~T;CGuIJDI2,DL2K zْil[t['6]ٶiM@ⸯ&dT"%dfBCz~$5v|<N>IM6j|[ii2($8W[ zc,bEX ѶrjR1$-+Y17by&,̆##R7@> ? ^1{X +E 8ftA,P7;C +v\v:l +.w,=x; d Ւƭ@;/z\ <@Yb*ҘTIEȚ@ lkwN 2DGւRQ5@HN_(WNN*Fl.믾!sGgH;'J 8e⨬ډ+-9pOs1_2J*V)dWjˇi+Dj3d-xJţ>~$x="gSGGG$/3%-:Fw+x=4݌R+OCW/ϧBiOW7ijDCt+Zvi,{wlv N˂1cFrthvamHii!iZ+4EG4x!'u$upw]TCO d`HZz +̤R95F`JdrznF[ R]{%540BbʫQK%ЈԿ4G<.e.)˵؝>"@}9$4&fА*:%ۓ4ўۋ+4 >RNAG>07 }l- +C )^uW_Q}_59XxcѾTA+*>XP|wYTl*)I*>EG m5EņCeTUPwb[nݹc韯⣀-3:N +՚Xm3KĥCJ0{-L6ŽJc,{Ƹ~ DW=?emSLCib^.mӾKM: ۚS{G9h5H5W*v "Jmv-1azݪMFX)Ӷ poIꂷ&..`&фmt0Yyfomc?^Vg2̆?'CAjJ~kT32Sy~5@a>2ePHEiyY}ByAYaGd`Ae7 jZXmJVb]]xB),ѿQhB#iʆ<&TA]a9qM"[w=;^֞5wKseﷶ-h1T4I0Xl4:=Ⱦyo?92NcJ]hnAޞ$iLq ^4/)M` Z0޺N;xKr~)6[NSEw*9`:d5<=1Z]H+&;FlY>׃_#[ Ѵ`^Șn$dքgx5Io?e{ͱR>%#C~@!'uќIL;+nI|ݘpj'5Z/iWgOgfg,u;]PvliLP۱lg="N^.g`jJ'"@1 +A])GK M[揶^M>~?x1CC9CW%/!Jz:<*7@Y$uA=JAۚ]9edH߉>x}rTLǻ7x!7+d qL?rFync'dã $grc2dh)M.F3ߒܯ;SeLU/-`e]T6uj'Ȁ!~ɲvK< 7X?jl 7[^E ` Ti & qU,g&iZEieMff# + [%G?3-;\"Y+-$Vc[S*)'IƚD#VC\7A2 + +"XbT%辍|;m!1띺{<73iPޡu-5x'o\ \|{>v!;_tOp'h$hKR;_͡*6G^=&{{HTjt{LQUƈj[S뙊˓G]$ޝ'F\+4w!'҃)[{d$?M#ATYTb[TE]4owx#oqYT +Kn#_p ,4;rxG?≣d}U$Z75}$_ܛ--Ţm/vePY&'@ R5 Hmo/},;3)Fts"dxmǐ猧 + +&W9s+ [ì)rdȩ"Ȉjjf+zXثjsu"Υ_ :7^b=0ohe2%>aFR Pv:M]6ͬV1+M,E%:mY4._<:}d}R/Fl6dXDݬ~6UfljR\Lņ稁JFqƹ\VgqQ2bK>A2pMULP2V9:|,DFUvMobDRcŤRIP2oLcdAL;[rv˂>Ԉa7ūqG{yZbsYf=,m0nI'{SJPKm쏎fX7 :KBz- rBS59CMdWlu:H9 2һ.&lٕ(+ݗX!Q/K<]A%j34 kNYf>!.TE[2(X+ w׎c`nͬ cFx9cH7bu8竉%q;;#bS1xx&.ر <;?:0L9}IU BdX>GX>\ c'e~a0Ģ!H,PvM͘#ء JQL.! +ǘY*&5F9G +g1+9cF+qELv \oYK#\=|gӅ7E/ @~_2qU.CKY)rƐ!/ &Ìfv!aC ~X{n.g<-nj܁W1TNdc3 ! jCtCDiT,V'`L" GXЯEeY02juxcTnW:<p)5+KEJ ~U)+IG`'7ؒ`QW\B,~lHڑR@ nq'@0rk".Hy~||_,GfiR +,}CP4i$Fb$&T:?VR@Q 8yS+4ӷFB4)Ի`Z=U FZ=a`i06S:9 1. Lhi:Ae`y,tba}[GMYéǔr7ow Jݘ-PHo1|}]) Gwja tq*nH]OؚJCA"tVrDňtu] S!` 1S S[Pҫ>kD, kSOmkyJe` 픭]brfkx9UbA0Q%- +t,{ +Ej +PR.sVm`6Z\#(CW., ZDV<ȞST3 `f G}2%nd Ḣ`ljJ0[eyvz`Ⴂl½v@,#3fo>)Ijz di Nc{U`m o|uZOQ,Oپ7IKga0IPQHԺџ毐ޑ5˅yGBs,95+^zv+/~EY`AD?b] /|c- YQoݾ-|!Q_r8ijp<<:>ꔞOW; +܇?C=p2="yZpK4>cd(6+{HօuC[BQm@ M09 t*%sa_wBM ?ZxXu% [Xb/9@,@XF Ҧf7B\ +¿} X%)Xڙo){69nUujk!UvE`ξL8$HT}"lWc\+lf:I]G3Ҫ䧌H) e|*IQɒ%(2ѝ,=O{f;0{ 'Au0UEɂra6kj#ȀrGTkwY+/œ`juË9,l6 +e2y Ug85㫜^V*Tn0/fJ&on*DX6b=$wB|]'y[Je"}&%2Lʐ$MDbeUEgX}hӕ"=H'_f,{yh!vmaO ,-{M%L:ADgB]m/~ nH>mQno5hx*d &l ˗K%6ϺEkjiCgw!w sXYl5WddHMdG܈WbS'fF"4"ˠW8)jܢR\Lo)kS02c\jKFZ,2; DiCuE"ҩFmry^j7؊J1XKnx8VS5϶ +E#_u.KOmor@Շg[F[֗do]*hc=?h]:5 Gbdr0qpr?]_n+lPxͰEÒ[9Q!`& w Eˣ `@3-sA_0-a>SQ鄥 _L>ױ>AJxpaqJ%$VdNI +j577}!mNJdyjilG5`CqP$! 8`k y\%YS(=,ybpLJZbhlSY +rlB!뿢AٿZ +Z%22[P~h,U*dk'-|[_RnEQjλ"1\_ !G ռNJD§':3^ܜoT᪪:.EyR:(wV^%䵯0:Z@F)_QH#B3SDk0 _ +2ގܨ+FAi]}l &hg@/1Iګ( RpvvmdmxzA:]v&ך6snp1__kmj:.H9 /D;jy<#Զ&@i{bZܔ8"0E//K +!Lh6ߠ'f̻ƨo14H>2fC}N(`Ɇqv{B~qd{S'`Y 1}QYj_#(1S@QzG"Ԉp3s&%t{س. ^O?hEY'g8վEX[ ֎0(Y +lWyFIV JG֚} +$V2_V%&*,4S($ZxHFOF(qvlW| outb֦zkuƟ&SZژJ@By j۬$ +bQ"3ӝ y1%;MO ^Rk;l2ϦJ(fLȓe_k ^k7O&1jMм +yN?ru2j,^[Cbu} JP< v~qD!jNu&{YʋK$Wƒibƪ3 h¹ś\p4-!7D:(E&C(Kż#⌈KwBOayH/ZÔ@D@2ᜈeQćDzw*ؑFL,2rpӓN"I"C\IrW%q玵J3]|`;0VR$e(G<% c&2l*o vVƹm?$"LԈMى~.?MOP-YKGM1g8(Sj3KW QXy[ٙyk0xq0I-|h::@IyvAN: +~ B6S#K1̺í0$s2׻qZ@ K _D@NF:Kmt`lIpS6Ni"Q&A HJ6˴26\y5NMwp5#S eȨPtx] u`NIEpc([ +ǙZJM]1Y0(NY֎5FVuuU;GԺN9{nĮ2г`6BiRK8(S|ɲ͠&Th =DjTeOgb_$n.*3dMH 4I8>4|⤮X +ril VA'6m轆4ldFRQ| +~!1]Z۝T8ܝy٪aG!Z/YL4-,D$6~z)ߝ |fv/ρq i?{xk׏:=.]$"gN'FFZA'5kou[)}@ A4|CoKWu#OZ^5ev1 NowAUF/ Lxzz] |1^^+1"c.oScD`$ + +9/Ziu$h5, +n}+jC"uJG7;XfICdOrz[l-~K<ܘu娀Fkɣ3~.=I[߈cΨ,o֝pl;|=~WX+HPG(4[RDÀu"d v-y9μ!)κT :   fϿ8m|!f?t5{E?[P( M↣-AHh|6b&fdkI(p!@?⠮tgaTݤq4<ߘ= >4pjW!SEUbC;r?30422j]~$ޥ7 +h~^[\3ɺfA-Վs("ުmghHJtapO:qcJ!ncgjAP3(ۡͳLdvˉgGO& ϲ+,a }걆>2 IX/ݖ E,S ka/} \$B6YX=f){m SSLi89zVGjCXU(d_̮\Q6]YՍʞ!T W)kZ +Ru| C6KTfA:fj=0ec R0:F\Zn+ӏ'߸chB?ǂ#͵ Z#e05/ w Y\V35تvx}pV 'IhP -︂r_qw2n'_߽Ɡu >D!م&"޹-*$Ũ>Lcx;H% |c} v8өvK5F8{{ǜ?WGoŔ_*_.sx < #&AK Ā1S %5W8ʀ-5|S]0|nT& HA$\ɥ˿'v\Fvpj +"%4pI+0Nٶ N{҂7#(=620^77 _&ۯ qATxI8HIԃŇ, }!HvSž*CWw6d ✨Q1{j$3!=h#iViH |@[*P)ĆC]fjY4S6E5)%"GXyd#EҖJg?3,Gdf懄˅ѲܶcWt}XA}8il<8atKSRS%w ^ũ4bE U;#, ebYK1rLwrAHҜ |tVe'My坐1պAnw^fmڻ82&p(Cob]| ]LӢ mȗcln7+oe"C` ]b;|kUa..|QKSRMci9d;Or7zxa1 !/XhX2x/=ERN 픶l-Ii>5:<]:*;s. 3W?"d;6#Ӷr :qR%{G16mo׾"\J<=M]NdPB}r̭ ޹TBˇEBZwX2$CcxyxeRMؿ&kURц5yIy^I_{:mxA)I&l}{V]nj8ލs^?ҭD 4"ˢ[,@h,-PPq!_`Q$MI ŽkN9L"OmdXp4k!ai$,SmB͏m8cqt ,j +`9ǑKkJwiXJm12T zeWGm,ZǨZ+o`)gў A{j1ɠ lDn1y^A'*bUOl9WÅ#+#.MDrXIWjdSiĠ'ͣ_RS _{ᨢyBCp14q%1Uo8 +^ 2X0ĢtZ#/L?3EFC`ĿB303G(`a !(_i#_ZI[VqGrb,"g(le](ob}]Ka2"D@X$Щi9S?e˦3P&'{b뇂wXE#Sȼͳ賃rJ-r }lbv;7eUP]'yXYR=G8>܂%*rvb;0W$_/y@AWpmX9%+ШT cB@J҃`Ţ/{2x}=t֔jIJ'r;d 4j}Ax{x\nzX=]2j*T 6.Z +ރݽMh B6$Kc%A˵t-þ1; f-ݬ^ ] i[#Y_zἏI6\'N7 Ɯ:{oKaY-iB:Y=[Խf!ނY(sqFsX4rFCҜ?fŕ\Ҫkn{]|_!z'A{ISnq3q+EG(dG8/7 bID'Z&:SrAaQXac EbP&exJEKC!clJƇs2eMV @ 1J+k?O&εh4`)JdMS3pHoFIF1U/$/7h˚BؗhQ0rT$"7)w씩YS2c?a(w C"΃]sC-bg^s(ޫdEQ8PNzpP,(3(&ai$ENnj*WXoYcys|yA?y +rC&xlLVQ .=KeՒO}17=/û PoBxB7DqU!{eX@14s<7`s䋻O a;3MVO0lnNA-Q_Sꫣ%~3S5xXJZ OEᅤy:gA0?j~r~HtC)!]JV=TXF5~B_ɩ9_Rv{) WP؝_o(%n,f{_~Tuy |RC';F@ǀˋR@hFZ~D= _m8#Yz4;ꍱ=^*{S>,\Pu }{AEԠb+>Z-|,k%%+>TP2; +jR9dXsrFC||cu;e`]iU/n`(iUA]2kQI뇙M:Te~Ejfbgܨy r&5/yZts}nARSkU[mUΫZr0tjmdu +犎7߅2cRlo:;td +>^7~_SxkpQK>56^ 9,hق,|i<4C٤L׆7j9O/RSP> $N!CRtK0 Go(–xVGBnTrt#ldq,=m>ը`ytJ Z܆dbBQGL";02B3KY@J0޴L|w&A>BXք?1?)_2DPRIbܢ"DGw$!>%~Ыk1ˑ,FtSv-w_CIasQzJ/2&s#sCZIsco!on,] !8]~leiYpwYN ¤LD@ eP< VPLߟ_/D"[VAA31ǾwSC,6he -[L`p:4V: *nݙmp%(jgħq!8a})JEə)Y[۞ǙW~Pbw=ӠhCs|{/m'b^D`P \5'U`f'XjGjZ0CaCJN3Eں +O:XjO2l㻴v =mPO[=ix[FZ>7zA$-Sϵ-S,1MoB BRm'p'j@pej`!}}ǰ5+x/`JkcҁsҘD(bLa_P]j߈5v~2mxf8ַ8mJϢ6vIHݰLӀZ;ҚwؗԨO$=NvPƼ|<Kuq2%ԅ)@TSYgg@i& +ā?*rx@l|@vM'o,ĝ)d|_øl6g#va]Jq5Nd۪^=}R[rDļi,dңʃ}#VY5~QcIk'!3I]?nkGZ c$wq-]z{ujv0KI)Y}~tqɨL54WEln a T"+Xa.:_5HڼRi='YqRl0{"bө7cbH6|u _eK*F % *MAG=zAu 9b]Oey +C| UD*$$6U#HIݕYJ Nel"&0x&γw}C@5v-[)<1xeH~\ӸhIĞwT EƠnP &|7ʃ+h هCͦd71O/#[ ;T)fdRrU +@27~97o.ͧO,]57mYbf͛C oMV^߱%N<#>0 }]@tN(,y U э+;>k$α,+y{<,:hZ!D] icRVzUWsPų | =P-!8'EzN2FM6RUt[$ --nrO, +^'kJ6h΢E)m4^D{ම ްp~4C4 䩾fGh~Tu/p.r#V.Dxח)g) +.:\r^b_Rw5cY=@nϖqoOkp%I˯g^ ɭڶa\XwXr;n'~;j"]1ZN h9; =pKdvkYĀCFsMGuWnX\[a ʹz[H>t2TnNvςsbR>!jˌ{jU_%CsYo37`%W~shO06+IfD;׼g[E;įu%$5MXF }ٖ*8YI0|ne&[fo>BN2ji;='dy=^KGsrն +2,D牤P΢ hB>x?*- vk(_2,,ŜWDEIH 1=ySHzU3l@!J~p[cTQ's +H lfg?x:_JhjWPnhbir\;jW,:g\wsE2jEcrn+ʼnln%,7 yꊷfX ^n% !+bAD|u'];,v>-mQP[ K?P.-ri_#jOoB7X{"q{(w4w)tw9L=wIFܘ=wП#F==F5Ekƚ6[tEJ +6gHS C\BeXTVKo|''KYle +-rԖUEq8u tpu,kiO=Asl]|Kca8bl.da~IW ٟ7?}6\*ʞ,- xCaN|ټl˹ +P+VE:mͼնx:| +1 m<03Xrq&mrc\Hp'l$knaQ©ZB2Zu~rhsɜ|7,Rmrc ϷgO.+XN/{d]g.(aO ~NOH?i۞8?j +3l؇)Աqj)XV"ـW|S\ C}KmƼJ*XP>RmAS@ =fH}q> xT~!V)'h>  _)IgT?6M5)Du${YL ؽG6Rgxta*˒JZ6hR0+:LʠҠZt?~дLn;Y߾n +sEn -UP~;E' +'cucH)F]VP%#MN"Cjg/7v +{MQ.Sذ?1˂:At%a+ǫԍA՜G0i+4:7}ACZMvsQi(ʠ Dޠ$Kv2q@a +<#r]U (> +pWA}d((3mfS"/CUCI#):;-$hjR$a#L_,Q +Xj̗Dc$ ~EF3$rn/Dh֖5Uae%p@!jO$? +H@<Z:F}FY p-: e*!,e͝&2ظ,Ѐ ~!w5_x+J7]i0e0ub-цΥ XK[z2v|{x\B<4gR,lirY\^ +@VU[R´ӽPZVB>VYt4:V]}Na;o.5,v.7CI/;?{=Rݷ1uVkcrSu%XZ5Dr=x:M0M8tNCBA6H.9חܘqH_ACi=.0(P{`?1yfeppGzv qwu|ͺ/olθڶ* IuvbXn>Wk/$x[.JL$D# 26k+^8u^nM(y&"ajk"A#4b#̓ttW>(Zz`dK&'U*}EO +7ßmӮJ$ +*$! P_ApRi3~v6XXҾ)a$U#-ђ9NÃr3=o͘`:ݿլ >DeϐL.m+L]5\`{Kr p=jyT9HrO2Slx^7&tGist?5UT7k쓄˳B_G݃ +r$򿂬mN~%uqE*4޴)Kt92x|\ [ SClHt!{حpEaM*zv Or$en3Ueֈ5-F@8ϮR)..LeEc*3<`һq-)D~auO@KCgey_Dn01^lGL3!S>QA/ϜϿ^;t{<'!ӡ~>vH;": +{~GI+̒(kR;1d"}T_dClr+.Y|\Օw#3ݻ> :Xpl'[V{㜍؇C[(qTI$qzt%\q3eHjQt*Kt\Iz"~c'y==q?e#SPz"@3i-(Z׿艪4]rMY26T@;y[VDP&!_^}A$!=ChCGb<}Hf03 w`B>N PBw% +n57vi!? +(=$~@3Rtѣd}rM*H?>X h?˵||1_X 2Iv#uTZLAq->%DE%uK +1TASa#"0G^Ngȷ7>n^ܬ]\ c5C:F."Ԣr +<;rsˣdqb1|%[{ոEoY-|#Q}qw AF,CGU#K7wa^P^#@_#dBU{,6>jaU2bNi#uw}{UoyQ}<BJ=QDU +ʯzˌJW~MVQW>>p(ݕˆ۲Ol°Q1mw"H[|ٕ~AU/\MVGr I)YͳT +t>h31v'lt-I:BPU?Sq^n7ꙓtfx lI'jG1du&etgp@.ZAK]Trn>V.=DJ:~^X ]tes̚o:fYqfvؙYY6d绩ǾEcvPرmpyz35Yd#ұҡ$`1 t\S5&f -idY=vi>HҁS%D- +V>~]qo>??lI岦8cDwipO/ n} +H)LĢ6<~[W;$ ۥWi_} )5m'I4>HG|ǢR+ +fa׾j}~EGu}Weؙmk4ce7[ulwTW8#-Źx'#e4MW*ʲSkS'9Kȓ: 9+W,cYcBTsklV +c{{=3#-筪ٽ+v%8+Vq_pUjIWSZ4A.PAWV0˸P}$'V?)FO]1VYj'MbFlwo&PsM)q6,\Mp*(5Vr}C%.v NyKf'AM%Eڟ2AI-Ewajr/`>BCs,K(\! 6n|.֟>g_d_4̈n.@J%𐘗1>EbЏ-LGsH[!n2fe)U-_]+aCJIF}k:wM th4$S/v%Kt +Hzο5o H7Nr=75N N8t{ܞeF;LپrnGy@Ԧ_4\::؞50eg`"H aZFŻN2PCPCx#ƉYb|V?H{tE7y8Y^cƨ"Be!iHF 6AbȴA{e!ƅU۱eDCO$S3GF+!ر$^ +b!@-!1n_D)thϡ )eD-ShUp'`0)LNg?mdhD2LJ~]7C}LB/!C@%J:~-&aZh̜h< +kCveg{ɨlj6-{_*G>k'(}= jwϫP<;l*{nC^O;h`'X||1g] 7l9?]I%pdۥl6zԪEQ/kS]ꘚJ!xf@{|Vn@r!x%nD[H+\\pgBJM~X=64:M>@$ݺKᅡ 7&Jm7qGYQӜytV,#턍;Rɦ?&qi ~tG?@5|8>d*T}e+̅/y&2'M5H֚ w#/V s,D%qOfÇ^zܼ?zCܱ=h[x0WbB5DZ>Fձ? +bbWQz_O)7xtWDD)3xO$wX_0_.(&6H1}RLgf[C<^+}1C)R9t#sKeESPê3X{wl)]6'#(XACIԙBǡE\iB{,i)`תDE3]T#lsm2h4[dZs|\*׋HYcWſEOmizյ4"il*8vY#%h],ibᘖ1zEIF`MHvU|p=~W֠U$ JXl +{,oFT|sTz$&$ID;hq~G`s`J< +kX&WPxl9G--&cONbu~dG*!kY>ǾG; +^ &=d;U[н)h[c>]D Wܔ/*B_qu <(BU6-T>h8`EmVX}@v|IytOAN$؊268E#l+_@xZ1,3--5UV oHWk[lnHrn!U K72w÷({0)y(l؝E\%&.= + w;*=F+Ҋ@f>˿uDoQwL85=NԫiS /oZ: r߰ӮKСi-XuDܿm+x#&#F:0EIqf 鮶]-O QBLs+Mٙ0`j%K+I̅uaXo: +w +=Xk$.qT2iH[yz2wnkɅ#+Eg+1#5tUD9liZG!7|dZj_ ʄpuDERlZïC0u XZ9ttl@mMV?yY +R+sْ5GMp ] vRj#S(u)B22xI&>l&lbwʼblnٕ]Ij R3 ݑX!\z2ݼMߴ(>˓/oXޮ1,Y-Rtn.#V#g!%>䰧70֫AzOl%+&D!w!&L8,5ly U>ԽY<@q޶XSJC,,|.@A*m_"8E:^R5 g|g4ldf7ZuG;fӣ`ߛ45nʝHAa|4V,:2_Le[ѕp%Du B|}N{8q\U؍dS}~vBxXUv=.U2p\ZMu79X[iA 4ߒܰg2 Amw&n5PgLL"ҤQ/gJ]sYh&$rb?Xz(u ZRRA.|E^>)dXkc?PŃsY$~H OGF8"-v "BtQ] 3.9gdfeFxU!#yARxS(/e:e(6ǩ[? N&%3Xt t+CV(B\"+ O H*m}s65ޑdFNh{_,g3uxY7Tɵ*c1+u;ZoOfp;2JmRU[D|XkNPuYQYvT+F]溫t4 8?ZZ3_ c]$=յh~R70|8+Pv JQpR*|pKrԮj}Nd%l-0_h ڄPǬ&Rsmw6=wq)vI^`>@Y||y`gC2{A~J"vqP/'ɨA-4Dyfhǭ} :"O +L<8И{h'x5r5 +,i bBzVP~EϚpp0$ksy$ {/$;!/#%lAp "FO}P(B9)/~<}@ZG]` wYV@c(yڄˆZ񫻸/aC:UyȏG  KWgM ?T,VO~Rpwkk} 0L@޼Wۡ +!+\~Ҹӗ 'F¦#G8c|_\?% 'މ3o`G*BA3iԣ1=2cI1, {7NtSq3.{-3bad]t e3RD^A\&́*(JD0Fyp^ ]NpI#d{Ґz'{lCͦוwt#O:5,X~/Zo(&6l$cyHX6=u8W_y)G]{~ZwOh+O|D)$1d3eU):L^HT`%lg?} 56]Ա_f1#&uB ; m JMM{@X+έԘSԜ A)"1ۜmJ +yݞӜ/&OsH`T¤H@~w(&\C?7F0 ̤ щi FJ91$vAX|hCTY%b&׮Dbu[`=`69α\tOP\W(FRKonhŀ^ij㭭b(hdRص:K!qM1d,Emߵ#-c"MuCTAM0+IaQWq>ai6t $9 s+ !ް?/̗5qz٧{Y^I3T3ɟCciƱӛ&HREFmxw¸0Zt69f`gTJ^>4&tuLpN/3>q/XҠm:]10f52AՇ0 +p[j][r zc0 ?8yƘ$q9 Q"tu R CM_i eY':ѼU!u@rca3vk\=&RcyS{^34` Ϭ-ߟ|_`?|,5kIp8"lE6iy0V*{&Z uuQEQmQ)!kMQQ}tӌ9Y6N ԙE*sUe6ilڎx*NmVdr$߷YILV +ܟ+a%@$WGZ-GT-Ԕs/, >MtԲ53ǫ7JW1)xUZyǜ|Q`G.5aۭ&[o_hL-WtA `05|[CGSοs~pf,IzDuB}Lgf fబ"fGɡL؎A ysẅ́ +\RFд,TSr"Ò{yrѷf-^5:Jƿ{6K&Jto9Ijޗp|t_)}ףW<7Gdl|\BM y|{C!P )[VWaU^=?QwJ޽xD~# )qxm̆HqNûc}ڃȶG(=x,*:ϡIq9z3/mG{ T f`i1:+Ir/dhR~) +:2)BifNb ü Q>uF(V +gx,"ˎx%qų D H@5ba C*edǚEꌅKJk|w{͖W7kܳӶ4i$ӏWG}锩ɏf辩 +zL],\o6>xRItfh22z J-jRPr6V vV#Ǽ[KRT{&^o.0 +an|2:d:a+!~'QL~Z8Z695Tb8d%7>n`ΏK oxR0T{ txx5a%LٸBܫy9؄-Q!uOFF{ 1KtKi0[ !;2!;4&OA:Vz7̘˭OQ]O ,jIB_UZOFX6*SٴhM]c՚ j):6rҥ_`E'ͮOQ"u|r@Doj>>QG_Lg=0U)b1,Q? s$IcD=Me2+KbΚEp1Z^1 y @'/֢ +Y}cUSzC;}r-Z,-[r29uMID̕3/UDGՋݧ%WT<QB&#$oMQ2S"FzeERME;dq&@^!gbn+>ԦFW9FJN +\MMx:̫vn6pvQ@L!fFQPbڻQvq$w>- 첾}:- |~@is/E _Py51#th/k@>I.z_`|n%CUƑ?p@KFDLEHӈ#ɤ;}T̟Xhru?\0.rՔ* ]L ?,|41Sdp$+7(Zvro)04@AM m`ld?1}_n?I $]@Q`ta('gx.oXUj.6sjWT2,H+nuGNHީ~ڹy Pb_jy, \B]vb%O'3iB䔈Fk\Nɐ{|,C714TJKzp<.ԊǍ~5 +/>qˍzÐ,߫)Կn=R%d 3> F HXބr\]/^\7H.^?c :\V)^0%6w3|~qdSk 6~(@+QZ(EYǛy +{FMp ڬpqy.JxG{'F&a@ $Wn%PC熆6zõ%Ŗ*2[.RfC:)6]xN+693 J"9%7&z3]e_gb =*1nKo=3"CR4x3wzs_#~GLPU,T$2hH͓NvprWàD1F݋Dଳ!=z nraG㽓R +mH:3N;N)w3kiR_,y{3H^Mu$w}$+dZ'p5[N0!i64PNCR cegAcUB&1JN~P6QL{7VA10&tث:Es^n yP36:Ȍ`{ͳ~*+ܤ[I%K_/⣤GFiA j|3B U<ǻ{ݨ72{e{[&UP($V*'5ݗ+.EOleq|A6I/1) ,Ϡmta4@^8l{Ȁ w +h7sy.LOgGO8Z0z߆攷f 䪸Y mYV|v$jlt'z`XQpE˴┡ JQt7ݠAx:BSri+ue/9mDs13O q<%9H9z-UZq#g{,zC}5l'[A$cx4jYztwwR_G[,t)R(饩o;^Ҍ :)ëtIhMc}~1+M9-WU0\NiIv`~]!)3VTR=o?Y}!լ&M? +)X'3iaۭHbFQx05 ]<]E-n7ë>^l?l=oD +YHFⱜ]b̓I`Q&5#ΨǴ $iUԚW9D,lc}`7Ű(e3.K;g)GR:.Ev̎K5V@4dZZ)V|<묑xÚѾ~څ%=ΉgJ; M+A$ׂi/.rf +_*GjT'bl<*t +0`ePۥ`)rnPg9R* +/ M CI?y3=6< Y&3]E_0P3;})(ys)ǯWwqhpJG0]@ pG +mhk&Ĺ$2\1:WQsn=4bڏ R5Gg%-q %F/Jm;l5?E/Wxy&7by&mJl` LpJLgϏLk^ٚ+&gꂻw%5W<ś|QmM6Fh=v ]9vdM_AM'-$c1+-$u .4dEq]ǵ:hD#Ol"k`NPfT˂Ka,n;hlGT4vTʦPv^?T+ل0BYxkyk}C.^hBN:#e(bꍅn +t,0Rl)ޫqS+a>RbF<0hT/پ6L̈́%d^ـ Ȯhj\T׺rw 5m#l xyehcSXV C,;"{vނچͶSr93|UYs='e,e5o&,)k|JΑȘD_LR5(/aavLN S<(a.|^vgOAlxer>50 ` uW,sXlP[zb;MbNc + 27J$N{"3-ݙDomjOcw}U.h`>c{tr 斍;; +,w P=DrIⴙ)-*+*<OY֠t֑f`hP Fyo)lRD_RI׸U669G/k_Yb1YYf+&lwGNia)W\lѿ,@Rh9ERKw(mn/}ߓuJس'egB,k$[WgbaL VNn,ϵ:&V8,=cl"P_Ӽ=U`fYp{ ֞Dw)*c4 RkQſFoGq7? `G >Sd'"BnܤhC-[ڼh!"ui[.Ο!:披b3#չYeKZ!?ЄА8 +m>7D`>zD]Rkwuh{cTWY7P]&=XC;Y{:( vW7Nf[;]un~ CA\a|2 +HPooP l`V=9Dqq!3ߘ)dz""hzZrh}^pL:{twf +=Ev9K=Uc.92,Jˮ:}3k6it XiLv)‚ΠZ#,vCT8piʂ (js*" X-C"t<7j4c1UG:{)+UˠL㷸"?ӝEkQPN-@Q&?RFԿ!,DXЗBBmauH'lbhou#4C$W +c{+Cc'U#: ]6Jd1[ѪB5v1{WXm_* 6#߾f }\6\n4Q"5b&fu$˨@Ѯ7n`ҷL& SCn$ضc1-#F{I] ]ä6v㔒#)i]Ew6vvEGX Jo̸ QӢGv48q8qUxAeEQ T$vةDĘWG $ Z9"FEKrV5M Xh]bXV7h}< zZ\vc|P<*n-p~[=(WAZm)&=Ir'P[TQL_0lgWÄ ¶ri$Z^P5aҡQq m_AFC:* 9PqkZ2$Jx6eGCU9a"::{q{{⠖WX3YZҒuy? pNX/-&|U'j |P46 l>}~@D-p[#L6 h| B@=@u:٤4l¹^<Ym9cF'($r`RTrʞHgȻI'\lBd !Gr%!ZPȩW,.(N,N'tQ81'P w%E}x"gd3a'G^E{ݲBL<ЊlY9a_&4si E'̜ Ϥ%'\:+s,M +%";+'kЏZW*-)ŗMߏoi.^ɾ=E-3y;Kvl!/^`c "tz?3F#ԹIcJ~I.Їn˲qh>z]eGmAߝuDt5gw&_(xLYhckpt[|#4igo(G%YSgÑ fmz"5: +*jT7"+o٨*N˖y[oQo'4'orhz$3+ %45K#4!5@0S4bm@])U*6( *GT؈䒡Ϝ>}z [WYW"#U9OϒqyL8 + AjNK^qm ETֽzu:Sy kmţx#\mYg.Fj:Ճ2GeWo'`v560"nM4"@~ Ae~m?`3B=o"i_A}s "^ i阮N1/BM7 +"iA]'n&B=oDž5@H)%zXt3Pj:̈ DǍUxÕ]M}#2 ٛlRE9hgXbU2[8PKqhˌB9r͘q~i3޶`2VSJIɽfewq26_6֣oҢMT&]mXp +Edưe5+U~+J _W`d*^<ěSd o~ +O 7Bl7m/;'M s ׀ +7lj[0ѿk}u|0txM]{S,P|3Эm cbeIui!AѵˋZ%ڊ:wIjB9el? |>DwnNs^o{ζ~iHd MmGބy5 yQixg͐YBPuGlMPPSJ/)u ݎ(I߿eP({C>s{}9~b(uuP} ]yȂ§|O§z]{X;Zʧ@[q]/;_:p3&3 +&=r(:{~d9'+b1x5$5eq Қ˩Rw5R92Ȃ'Ϭƾ#QX% ʺT 3ɓz%R.!ւxÈJJSc&ԲZ8&6OK)̘4vV~xKNwB/ 5.}Ө<чpfQCGE8nY!NTPs%Q^,ݝR\.u bMShp8'MX~aej7X'e]]w4J4#j몌Rk-υBCc@_]ux5#ZzV='1ee`hv[¤Kc*0iewQ: *8k5׾!wW︾tR$SSH0+ BܘLY +:"fuF' eUs[DK3XDr'_`Z[Y;=mJ %tN]rTUsB9&9/ՌIKPcO,]v/\F5_+״?PV&ȶ3X|G3LJbiZ.Q' p"n2?3A´Z~jUdF#JήW1"rv3H*iLt9j| 0=@9oaJuMO=ĸo.u 4ByuO!:j0Ogc+g1 ;" }s}y@)}]wWAIb|móیx~C_CRn7v{ Se|_d̼}L;4l&zk r:פ\f_KTf %BĺSqS7>BneT$t--\-9Qpv!-o!a Aw85 mu!ЍZ߫=ύ b=*m +&s>Oٻ~xO.;w+*NȑdհםAv>/w:8/x\NԺ9\EW^H{B^]*9abKN:` +F6b&a#^`:z(@WTy/77e\T]J"ZAnzP&YEcG|CJmcn羉0b)p2օ`mnI98s:X YIz0 .~:)#S_PenxpՙqM)Y qh/fȏ:"H~R=De"TUpSi_uatOty *׃Dv+]Ft6f&.F+LQT2aC~҆x9dsC RQa"ã[֋.o5Px泧%_Ϟ_Wx'_]~DCSf5{H"p{h>881 ^ab^!Xn{ޜ7 MB=)I7f}Ab^[0q/=IY; d7IDʡ^[0I/ɽMĭڡ^[0/ A/}yPWL螨lߒN@Q5Q*NGb6[GQl{ 9٣htq"Y%;hUb2jTJ…(YkQF0(UL*S)ZUzFSI+◃B+SOcr;Z9J͛! X}QdsY 'ZzΤQxYw- By F.41{ljcWU1lN6t8IXZŶqHjϬPXv{/җ=-8;={k hCZ^=ۼ`J!ۗ\Ύ Ng||{H~"s[n0y#p) &h 5BN^nc)P5TK$/k TJ\\Bhs9c Cϖ]N;1*f#3Z%)dR=PyOxg8 <*>lb/_oIh{nTs5b`_!ȧ'L]]֠FD_AwHOe=o=E7OņS)DM/cQC11uez2ܧx#Tax|-u:bD@[:|JbW򥼻Q%dtRbh%z HJF␔ Buݡ%d 8?B" 0k+wn#O),g%"ےog'J!53쫋͑nXUd;]n8,rK`7Uxs@iq-L/` D-ʦWwDиOFиpOp A1IrT6(f?(3 aOap +p%s{'>D&8%"vD["Û;붚ĭạ/Op +Zsw%$OK. +éw8**{ԩ?`~ *7e,ɘ`_kt^b &A+SP Wbf#B)$CϜ.݇D\j&O08vzyJky](w +CGO; ECB$ JO4-}rx# /V7 8ޟ@%.6i6PEL%^ !BHECRrؓz ( Z,omyl`^PQ/`H1sКcf_.j^#w:;֚s"@v/3#63 *u}P0Yr8JŻX%xƥ4桢1e) xǗe&M3|u +'1hؼ2Lxy T溤/P +bU>k S ܼٻ9S>x븱Nuit=>7 R3ߔxKcR +5eqFk$5/:0 MH$$p'qƢu"#NDF#ta!$/ʶ,,x.Ak~\5dkd룐@ r-zHid+z~ rβd+dc]PHN*B&dƐ^M23ΒneGhQE1K*-93uk^Շ fwA{y{J]ʩlN@CRm݊j/ohėƃ|N0Ks8)*p<h_9"͗CfO=exS>8l%HpX44u*iڹwΣnv3=ߠ5|I`pO(r;e9c%"'Bڸap&pt8Ca혯.a~a}KPB9V'!7p0w>څ4`R7 +Hܣ$c@a7[avt0x- -\wI$71]Gw+;<;O残P m{3и?|88xDA9怔t子CDdpz?`^㺫}S5* 9%l]j}XluKy aɎTfmRFnTb0];~Mo :\^3ۏǺ==}jCl^P9f)9dl*LޤKJ5{!+UU61!P:em[gOh8h!6h/:WJ ( jd ٵ,x*wA߱|+\n~#9plͰm;A첐kV]1(w.}ɱv[ɵ7y!l\̉8Q8!$`֌#am4BC{;nEµ-9NaU +ψޣP<h1Լ_ 2n\ PK`cG,/dft +ZWP;Irž\7I~ BmN5Id[=rbƉ;p] PD 48,>XFv! +sgR2 Yu$k丮x#\׋ñsڅ@Qka"=I~ kTHUlw:NSn?~T3J=LA>Wen1KOa\WW19WίzhQ@7$KZSGD8<5>Z<DCS4S>9)Eo%ipd;XЌ۽nuO9s!ɌQB;ݔ5F8+$3E 9E.dG? s97PA\)!yPdq$v6 EM*KO6Cgj@9_b@fc@Is"FK^94YjdlF)Co%h^$EWaX*辰$;--ȃ%*VUЀJֲ1]X=+Sd~}u)! J9QL?~G^gWN{nk|}?c +EbPw#HSTb#a +B#. {1xw ro!хേ&(T(U7T &()׭o?E&VkIKF Mԗs SD ' +/2_"Nڎ_ +TωPUO,Ɛqi^ۚ%eQ MIG_ +1BZDh:PBR';LUoAq(U64;s8bgK4鱥׵}+tZύl:[fJڭ8USx%܆=8.z=H&DRr5\Tʟ27d<HbdV>~:υ_9qIz9: zR%4Q~`Z|# +}^ky4]EFU3PnWfa^l)Ja ֻ=h ^1'O"V}]αX.Fkšgu 0]>_a]h][ej xb,<؇^,eVcR5/|dήx@\G@uQ,j,)!\I;+ љv(w@, c4``3FaKrgYbS4ٗP.0 +\1r!BkIxQ 7]C| +l:{h_C> z .؍[fB2jGw0S4Jqڀz3zX2ՎhY!qD>ai!k|Q=a1C +U8wh̶i1h~@.r?uNݱcw 'ɝ-]n蓓wށ&wY![MeŻ |}H =dsŻ@lVhwizK6+USNLP&*i +%ttڌpȭ&&+{ASp6r5}Ug*vf¶ޝljDJ~ly)`mFbئUօ8j95#OFJ=hTAs'CZ2 oL,1mq^'YJq 9KԵY>]T:~QBt$TTtR>$HdXǏ\1hc @/J}SZ: %~7x28p,풨PzɎ7f.ܺFRJJ +Kgg#IZ8*r@=gAz>Smvi#SReƢ`~"ʈh)Մ }2't\',k)lަ焾`mCJ>dAg-2^?Ss>,Ⱦ]aVd>QFw!1-x \kney7i6,ba#^ qbcXx#Z/@G_ +A\!"iQC>r:(խA{: Rmg>U _{~ Pw;w{8)]T';H$Rى&UgYռS2N L̚XK-ݾ4# J"nn1Bu +>BxBwfX"=M6iMrM0?HA7!1 K63,`e:njqDes~GQ߇ +] +O5hNIӤq~sYI5QƯi`.]-cg`pÓ5 EC%ӈAFIF.P9#}4Nr +ɃZdqɇhhZ!gr;:e- чQ⺍h[3S߉ՀT*r:1g7{L8Lco|0hȻ_"&Uk0(,ɆVbdxS#;bm;B5 y$B7']Uv #*YJURg ʂބGޤGZێ:+o`<Ԥcv9KeԛL F(P!C-A;^ 䭇M_2p\u'dXi-6Lk]plrN-.9`vɡ9x'Lz|-v) 8.\l 4s -1i,vg,F/ZF9=D6'nҽOSU ~Ҳ$!S)ar*\ ++Bu&P!-麶{ [ka-'*YV^"wfô+s4a^#E CgGfP]EQd~c']|.GZdXzad#$+ ׯfJgd_EN+7XDic ,[@ +#\&^%&wj0$WF5 +ŀ2tK[h*=j~}7/x`fSA w92uB+yC[3GQ[?VO!3Psz~Bcf 2qW7B%/iM-Xm;t s(:N49N`xH^K.vN'xOšPB8UE +) 0h1O&)[`rB`Pjn!k&p(;mzGgYllT`a=\b|/$a`"&YI8[I&;)ҔPV;1hey7)mv3'cʂfrCۤF8} Sɞ w /M;\gZbq@ +?o{T/ܐTe-h+Z3Ka\Jj-Ѭ\ ((F`@a^Qe^F|n{nn|^w~? 5d5)%JEXELpdm2j ~1pbnj=f恳Ta;fܟAԁ=h!%t8ܻ' +VyJǘ9"HfL>8B ZqW +53f%`O +OY+NEs[$67To 5Hj&@4b.B '[mGEOΖ& KW10jYXh$ ۳6X̒+Rʌf)[ a=zml|mgO1,*2 7X!WU7ej(O#(NC)Im)BhgF;9`4oɒs6 sM&[AvYu$Ẇس#r]zVrlnRbgܕY:~^:D.=o~ac𦖭|}8qO{`eC-*?R\Q/N\n#61vSu'VD+D\ R>%F_ ncB=Čs#MݟWX; c8KD&`^IsL/gk dϝvOkؠG9,W3QQ2SW= ;g`xVk:F<E|֌xEbN㕸9իҥX+PfhH0 P9Fm*wz +E;*bdc 7 |Ϟ1 ȍsZ7{R+"VԋrO ÷W.wn9lQůwe]噡2wlңu:h2ϕMRwdsK.W,7$S Xe +CWf>&SPn#C!nUd[RD >0חHbN| 3L5ZTTfv˜啇۟}BK6^SX[۫έUѫ*EeU*Fl_\hCO皩w^(ïD(W[:0l} +\E|ԫQ,ݚXb0vn-)?b#̀H  ;翴`hKo/ 0(98wEm(^.PB LآIoE2.E,m<aXiiR(o 쒗aN^[{zy}}y\(o Ɏ$L 8 E'?{$ x< No=tD ),-3-館Șݚ5ڔi0!@3ƪj24p HBHH GSSqX`vj<{478pČ@#/Xo|| d"19UHU3zOy0 _¸RZ"\O|rU;MtqzCB1,N?](aVÁ䤝 X>"/q81FWE*6FZnJYDӕyR}،U-tIɜfD:!䄩8[J&Ԟs}Vg,UlP {UvWkúrd1尾[ .a#5,Zt: lc-Aael^œSy!Cpi!@6B +1Y'GSVWl[TX{ԋ6ﮝ>!<"tPIl򨾥3LV(N􃍰wčO>\͑/QaYyE16gCCUlSm3M79*ʌZWBgSE z/=?0 V̵& adX15=щ2Qv_c'p?k$̖bp`J=Zr5e 'vWw~nqdsaw=V~3Ih -& DQg꽼R7lT;c@y>E@>{ATr':vGkŊ[XϫNސROVbҮRhڼ*{&oZ}"jhW pZ} ݾvaVq!dUHS` g#s!GYY wgc7+ M=]<)| XBPXҟy.)mv4 кEbU +6P$@|<5Urv%ˎ"g^>uunqYKfP +NU~_ ڽ?{Qܞz-E4ٞL">Bc8ٲ++Cjs_@q^z<#"J+* +  ܕ.;ܔڴS~o7QJV"^Y (t([ySgs4Kef=ڿK>UD +j{u@dtW % +EۍJ&MKv0Q6M66=:+Vfߟ}1D-3~u,㴌S:TP 捂\GǾYa5O0ˆDYN5J0hbDX;0#_9d DUȈ[jf٢jū1JFBUGB)3ڠ^a;II(#IJYG\<-yPu8/dBj^|mJY):a7f!#M- É 4, (h 2nlxIbi gGXa?ɖD2 HJkFv."o&1S惖4XJrfvG\@TG^oxa2q_|wJ|BsPSPtGi jTE4uwV}v&_i0NC&_uf=ysu-TOYMUH{7Il&_~f_"Z_)Fr&!mь=SC $ٖ98XᜥJlpÄ(̓a6񝦇 + +xPz[+yqPlBx.% =׊C_!ik {D阨0C03'."Oɵ".irV6 +BaL5TGF^t,9/HYqDxT(ŘU1Իq\Z| SY6@q;ʃ~K+$ -Ȗ#Et&oˣ'a?ޤyJjG'klf<"L p)2*)ێ2lG.AN۵lX9)e)Z_b'ĶbϤT2/=($$~==5_o^ٌڔB +X5*ƋtTFqF^<'/y?vM͜ડ*w̺~?%7 6]dwW䠺5 +?t:NK]z=3ow]G]LG?GK=?JذǵnB,A_gQBR:0Km4$'Iv\ǹY 668B=oldꏭQ_BLpPUW@[B{qH)%Tpf.quq^7̡Q1K@ >,0>Y)P<C*dMvNnXKB)"??H&} ʯLF4YFqH3fcs+?̰mfu&5NUicYN ne!]$$9{ +)T_9ǂط~Q\s)m2IwΥ4 b{!씻h`$B$=wtX.o!>[r$[s\yR Z^Q#oY!ܤdBU;䩻= jBX +;H7_~1v=  Ȟ Ȟ]a~do> +@/o¿xҽF_J +2K1m,hVp"fcØMfQkEn|xq/1ت%Abv\M~n%j;\Jh.Z^J^5zm!Xl-7hjfFձF.y}_;e5x8 6|4^א̄ ڭw@^pV#n0gVPi?J6(űLݫ֘-^YI9g(SW4]h~)_w~!1xq >0ū. Ы; u;_*ӝ oW!Y~]lL=e݃y2?s2N6l]E|e9m檼[Q/>=U'"Uچg v KKbz߉͑|e +_ doDL+%4;\| ;BIb|/w1j`ub^C#-"ѦSu`+_7 +[ ŃZ'{$D,2f謧 &+m'm'}+ݵ~Y >v8zARkh)wI)Od@zȺyzNn!!xM}&?_Oٔ;^jb Fvč[2jG>Mpq k- -;fol L>%(9q2Σ`_: ~Y !!K Tm!$f jdyhȸ11/DƉ!ǒPCRzSm!-f[dMoack4~]xTWVPpcU܏+ *5> +3^O мQK95UՎm+O;tVg0؞q?dhc8R[*ӫד^J$(CӋ!J[T@\˾`ٽX7qˑ.v (G?V277ZeՖD-G@TFFȁ vJv'Y)r~{\3!d^_Ss0jM [L/)-H`9Ua9 j$&@Eu"u}NӷVZSR쳑ܧ(7:̾BtC(/ƙ2"J\"kGv Pa1.=AяRWͣ0mcĠB(IkiƱb`@:к643Sg"A1yK3lm0Ҿjro8EFA.ZkDq-=D:*ryx٨O6CV\4gEJs&𷚧BjXՉYƦ꥟$WV6Oj~d+̿B>61 ҶmO͊+ +Β5|=eVw^wcBQ[V*1onL}21L7k]BwL +Ld j&xN [ضsoư4"'%l/wMo $x fP"ړQI$Ow5@\ +@^0)7}?   M5!`66MR[LYaen0AkIM X%[¿""Ak*(m)d GYqܣ_:'ckJ;.<|Ƚ.DY2v$g zhn3sdnXj:Z).8SG2, 9@֒)㮆,"4u'2On)!P4uSE' G5NqKNo_D No&Cngr2>~ikAѐ+QQZޘx7` @@!(޴p;#.޺̀ {({rUƎTPP6z#(:#@|eGp* *=@Ȑ({({?)u%F(}(u+#""(0|eF.1fJ(܅"]._=s|`9e-N;Sb8>%2PwM_$<NJf6U'_'o ѦD@=es]qǔbOQGS]%.d"d'g,?R/(˄!c0>;Vefc'bN֏? {wf/vۣBM[WUB7ȓ+GW@M^lc#P&kГNk y J2yڊIzi_7hEQ7 ӇXm`!ΥHlbDfp)[]D@kLks"k6ZʹK$dVat +U(=g5:o3T& 2jT|ySB*G\)mK"(|vUfg-4wE ӿUc8/h38s?*`'ND1<ӑF.vг3HjPO̮Lw{O%0 P0}cgCsSU@0K$1cCIFu@F\!yN.3_s͘m(o08 +baBM9[iaFQaW4߭B\/}VP/e zSe8iQ<;`4F-!LuzFWQ2#UDi$Pj3F9K=qU|p Dh`)U|>zѱ|`&̪sfL5L-=#첪^9|kju?lk`𬪌$܆)gfg$yo\[o*9lv=_nmZ^n i(Ϝ`mW+>K=cc3Fcu[9j]WT:Ƕ 踎eYJߖy&Էw͆t*%ٲ{*.7vKk|yI:`vjX,K fX+P4 +ﯝSA\?f 80`3%Z@[ ܺ\k7_7^qz/.{j#*e$ӫ_cdcsjsڼHV⫡:F276m#Qe3z sq'*VԺ߃GZMKr %+Ssm^x`%rkpNIЎ{GlqcqfLTMP>>AMW5\\m?+JS+\/۾bIzwIB|5jqC:ة~xeg-,l 5|&iпDx1.kHӰLymCRy5qpBuuG:ZaEZTvH_+VLl\dzf~^W?ª$l^nMp7>@'.VM_q9T{?uF"[#kuWW.7$8<C>v rtbHbF\Ec3]'bQFKE"0#tt.Rr4G;E!z\hڸ!pM@2ؘ</\4Fx!ιPq)H\D< +g֣`UUz 1p:0ZϾ}a$+=J ** Y8]Sgw&0iT0tDM9ӲWKLFNbZБ{abgmQ91&k@N3{if^GUX~D;N~IaaԋQ-V9>w_٦vm$8\I'NfN ,wzNa[&b`VqtJN}5c*7,iz1C={ ~eKZ[.ae̹}lv@BפPTR|+H@g\٧Ƥ]PMSJdx0*2IOn )ug=tO +im |b~Q?,udB(k;da) WZܶw{̍$Cڮ>u>_6dc"5Oj " eP^G1R!%+>Ea㤴V 8zM+=(~>txnIGR-.&O$@O1{N<`'-xN?n꺷ų(L Kْ[}t>BMrGid[%\cf!r*4h!Ly JV(@LbNjv*S88[.zx q{EKOit0۫f'ܧG{ȰWbĵ!0qs&k\%G4dti`)-s?# +!M=~#鎨{+EzG jΐ`@£(Rbo)rT(5 uU2uPG g&*یip &.Ȗbdb%er#F(ufKt3Et[_pCWfr櫾Ɖ0x:;Hj 5L;(>x2wjL'XoyaF.3APޗiы姳0N=gan!B,|(^5m6xIG(ei=ŨHM((:tμiԣ(V5AowQ(:'w:ᕇx&H +.*%Ld~?+]:"2B=Xl#Z4̳eRMWen)97]ad;H}A`/.`?Ceրi,GZ2d|d?3`|֜۲AKzܥod0Aq'&o\eT'fǏ6*NoV`kD 9;/VmYeq@ + 9ꦐ\b9aA깅dg 0DLk.+8d?GxsNNʅhm7(c +#ԳD]: Q]}De!L?hY/W<ڋ&}1S(0Ba % BVsN$wȀROh.)Q yz큯)<sz®k<,4Mr%IhJƗ +?L]On.]kg_?7uI)4Aiq+)umX]5sw~e.s dqHH^P;v$y )}ݫ+EF{AhR9qdA]ת4zUJ9|XpDʤt80CkzV+ {V_uzYc#rC֦l9L\$ҕ׻Q¦FX̠  <|#[ⅉWl"JK nP#%O1KW B5v>VNw/Wr/ŜJ= F@K]@Mfr'sO< |ۏ*-$6&[NvߨXdpjYOKNF *yN|NbN|ǮNiMI"i%fA/r)s|皠M0}N9nQp6c*7P7p'!Vj^9r =M LyM /!^AРOt?Q8b)po:1Ds,~Yq +f3p,ob]E^iR-wGuf5ĥ +!7q٨uBV-aӬmԬmIq6m% 3Z^C$W6A^8)qx KCܥə7<R_qx@WL4y܍im?\B=BЌ8^ ª,R!wk!!G/PZC$ch?\3VDW+Im.ye##V5ڰtWQij\4t@)60|JqZ$ +Ë$JË5H]uqGpN1tF̋7J=8THۇ<.Nv/-1FrhRWF2w6dw.qT4Uս4RuB 2HQn\;.J(~/qj^Yif%Jq(CKEΩTݠӱ\]زZC)"$Ȕ`;\z2Y*>h?4Hah9 +tJcE,AްTl&78Tx1 !Heb|=v-2KkДX xL*h&lhİ42EZ P!X"==7vvtiUh`mjp޲U+/rjܹ= oFa]sG2m933|lNݕ,75nbHM ]YĒrD7tbSY6Y13Gy/%b ǨKt:jc#Xa2$9Zo`.!JK]}l΍,dPUtoǩ[9Fr99)]%h_D{Xsw46{n1p#1tQ +8k)J;;l H9gdwܒtB==H9#8ؾCbR۲YY2K#V +@2))42t6EImjy}ٮ6mAw2O["sc#uc޸6wve +5%XQb?Lij,bVWTΌ(X )j,Ms-F`XYJA5~c/t]&ӆrݖYKM6뒢%=̽ЙK9JxLJ e2J +џ>;[1϶ꡥP]/@Ce8GwxyKp5I$U 6,5%95&L=pod .W&+zyK3/kY$yo5yr>'Lb< C\2aQ2€YXo͵re=a%KKP'JL8=clLB;N]Ws{ֺBȆ@C +ȲY3ӡCzw\CKnC+Q챲?蠨ŋ +%tBWiek Rg 01)@/6.AWQ/469pc;_=U>ȵ QIgN#}Ao$E ;)oT,WNwC?Ӫk}7x|Bn;7Ȍ_'*s``I&B +2YCzht b~G +.:R"$[+8V'nL[";> W\0^[@[ݓQF}QZт3<1Kvtdg [eG$2 \nFu>=<?D'de7SU[bW^[;|pRPviG^5)a:dUp3YķxuvĭDLléX:WdJΛě]Tll 'Dy}NEW +Ke%9b%.eCe3iuUiU6οԳ{YA`VZ* 6x8ze*gP5zBaŲtP 2ҠbTjg rV;]~/COi+G)"K7%Y3\_AFlZ4Ϭ2ҒUᑅEs:R jQw`oA~|'I@4igӼ^~g[WN/v_T*EHcNawUpd =u.xY@`bL(HoQ쿹HJx ɯx٧=QÅ$vQbgTB-鞛ᔤBCOOa,pqZѯKɶq=,[`ہpo|M1&9N0bx( [OwЅ"IJ =6b*Ehu"JZf.~< K*!3YSdXL2溘0K3%̩^ɒ>Yx>)%y2xr2C0ױ}$~lM+&aDzHC;6%sB!(S$P>2$Jrn@죧j:"@|LRu|!ilUaU|11^{TOѝyz`<0C#_) ^v튡+ڣlS,e4_"(+~=Į6So|qמfvӡ +2Vh!s1y$*𺓩1:,F>*/qYLݙHFR/v@-:8[Z:/K䊒J2ي +(E~~ʝ)B;7y$og[|y *' s4ĺ 6~ *Sc\$&OYAc}rvO|F{F55i[XI#T{am;X[J!a34Bq xOOLk^gh VP{"TkB%x$U"D5Y5a98S0.5 +U@# CbO/ԿJK<(X[EK4%512YdI TH\Er ]rL MZ":-,D!m.ƍ;A۲(Zm۶m۶m۶QmeU{{ך{Dϯ2=Z7SZ +ixL|0_. +A` E@La`a e F!%:t1hJbݕ`ߡlbBIy"gK<2G#5Dx!$9h J#9 R#7oG6zWmīH7L#.mtE#^e#g aT c1ts.rG#ŒȈԉM0C$%l3ƣ 8P6 ƙM3}塪/420'CaeFVyD\>1 6l +UwaVTiv_oR30gm+#Be9.,hd 0;-u45X]+tE8m>ڪJ>g`(Gox?]בz+'q6/Nkcy*Ŗ5WL\u kþmvRfuԧJ,Hk hlvP0Mmzbh=p}h#c +HcWL7NQLS8oљb'5"&h;ͨ2L|b1M:יB܌61S @u%V%ja[q8 mwM( iiX5ˏ'ߔcxv 2l!۱Q_NRVHY"t\'2KD.nY?xf$ ^ITPΓCouI/eCC[Yj;J-lJl t"nb5%= Qp"N5ׅ:0#s2ii y5\t! $Oe܁#-DB M/oޘȤyc,8_oLGV%bm,I8OG93|l3n"M [q;C^.vz+?`źiwd7AP̫ M9XZ<5ew|4Q8d;hV 5Sd;ّ韩7 1QXLTHl$6̤ڃ [uv܇^ʴM^VhH&t̢+6a; IlסZ֓/$QłUV~eUnZRosS +#.NPLQd_o!8絅%7@CVl-°1b}cZ7M#W[ra'%0Msttï,CDr3+YaڿFJɂ^Fovj׈f4EugjKJ dk JAK#aK̋g +ga{#mKw*sXC O:2/)^3Y.ÞltC)vz]jdC"e;EFS)wXw5}fmm0޽4T :] z|m;GoGfza5ÌsZͥm3 LM )^ +3 ӕZ,q`l_awm%pE811f/]#?%򽈩ax%~Q~ҵ>k6{b.4: +_n>"fB<1c]dP=Qzh~aif1C}P`G0sPu*'7 %22KɐvEc~ RfC|H}TC$7WDfJ>ahk҈"(RrGQ(:4!БuK>u$'FzOffnȑhЭ%ZДTM#QQf382P0 pN!}wû$چ~G,9(0;UvFVKtlAS*Kn-*EmGklHuA5JߧW5ok=4|x#d,'Z]B16ݷi@v PBLSG'&:XE +qQ4! ;}'hH?R$:I"DR0I 8adhˢFr=F)4SͺދNF=]@ya,g*/H U՛\/k7PZjꩠ2MkͩKK915O'YsUlʎtzj]Qz +YF#4I)Vՠ3+Wa*,u¼%@#L۟\p$l*N0ؙc .jr9Zl}2N1Lbv]OE08DFj/<+ QRW5:Q$)z­dadoUz=Tox軌;ǜ āz),pHקʣ:[L]D||z}t}1oq=tg\G":|W *(1w#i0cpUH\v+{]S4lC1R#sq vhPMK0ְTPmFf)жc͢3M^whwJo?[-۸.-Id$J{6me\s\Ty&;sk%IZ͊ʑf]l[4d^8kD)ȥ7a˘56XJH;fh -mպ+Ϳ=,7'f:+p+V{eN3QrCй^?$T+Se]W:8~U[.ׅ6;7=U,=zPaݰe!\PYOcP^覎8/?r^ހCU4"J{k0HCn1 o%@%\n BOLmQt#  +E75S,^Ї`|a<iOq a 3v d-7!TY\賈G<\Lb>vS]&rD)SN{D =؛讼OPyc''$z)i AAsFM-bb/@ Y.83wL$-QߗmxɽXhkv0P`sĥnmқB)' l(iI=jcl*&a| 8I'+4AM%Kg<:M} )uώ a+Sf!g=TF̟䜴D̡'[r%={U歍Nj1HcX) G.]rVB_q Hb "E1߆6%ΔऻHjBk#& i]f6,6Jl2-m)8[efƑK:L߲+'PtjH7hW~EQ~Q(9Z4ӤZ m*yKNYivmI8nQR4 ԋr2NO]D-/Ea8hϯk'bǔ^pURܒvH׮lm (`{V@e{iJ,G%G;|;L\˶~;LۧlA[,KᩄQ3|Fs,P:4%u`qҵ+GYd9d_'C#"X}s˓2w5׈"K0-P7euWPٝ%]DGJ'HF=\eJO!Fn3XgЫa:oQ/5Bd݂}W +Ȏ0A)Y)MT/\aY^}{g^@gD/. Ezui&vkbMZ|X#h[!9EÏjzVy[n[o#M:ЯAOp:U BZҨ*namW!lpA⑋&˪Q]bƶ6۔8_AK nIS6Ar[ c&~Hq  b +Cs דÅ<o@`t.aI;~鍲+fcӨyd)Ԓ@&,:qc<=VRkMiUJey5@r V(IҎly:{y;9N$o 6T\VЭ\<Ȇc<āMesKqzcp'%1j)oZ?ggԗ1*v tcHtcX >f7/Nz7Axϔp_Df%9otSN36jx2~Q +Fe9ZofQWFE}ӔpPY|yDwD&Gt9YuS:YRal;u3 H="yt+ XM^sOQf^*ԥ(@B pE + Z\ϖGՖ ix@ULi}6Il|IܙYo3;%ĕ6 ~8Ukn2~lY&~d78}I| +SI:IfǴ38tnE"0,c& "3PMAiL>xb/\W6Nʼ""FbҸKA'@$GQ{)3\\IC\=PogF{Zh e쫺3l8=^G-Տ1 +-F&C| a}EMCh Ԇr笡G!a9f*'9!ͽyQ[llxqRZ0MY^ؑɇlUwp˦r=V(Jo[ʎK# L%gHL;F}zeNT5ǜLZeR[lP՞a^Fy"Xv_ n_\%yiZc}M$695:T4fV;/1[-t:i97Z#hә4X,Nf)5ahn{U>L~epGLX)_Tj=JLs5S&&/Z:ӛ?uzlpH><.B4w f:!)=] 4L'pf SG$uZp2EX4cliGF\uhU75HR[Ddy0;; a;`BDhJ>]؍|!#D C#:,Piylc5ž;JY-`:$z4Z䉥o +rlñd;$1^ g{9ccg$jiD׮vTDOOB%=uS7Y]>++Bu(d%JGw Qv*8EZx |9Ex+ V.Q&'f Y!A, H @0Qb+؊ qSa'%I03,%&UTeyzdg;ojKOۀDU`9d9v݋MB_]?̝!Ke;'9%FJwCΥd $цzol0& jMEnɢ$G%쪆Ry}ٶ6М43:TpZ-= +ZL*.ӊ&$-7?pMFivNpT:ɖQezz(I@Z]¼x l88ܳ$RL{ބ{0:hQm~TwpkltX#.q||V?n>!>A0;sL|CS!2қNj%.,d.wްc͔YnNvapYHCi8 -0)Z=Q: #3&rθtlIy'},EU$5VyN̖\0& Z}Ov[q^CyxQ4Z˓ KUG<0e35 {㕖iYu\ͦP+5Ii;Jٔ9T|[ oύۊHeNѱKmMBLo' T , + dU"RJYVnUN;D<_9 QUz֌JuUU{ֹ[٩Vfi*w$i?eӾjuK֧?aj~HZ`nP= I +sW@3|h܊Ϲ" '̏6g֞}g_€ ,n!B}>i dpz Ҽjhח=𬆭aYya:}]};G"HܠI :4 z6#9 &!B~[&8{w,cM'ˬz.>z-/ոga6mA[E ,[X .v? ΙGypCH0{!kRpDcĩ.(ZsFݛcF#Gȩ94ym[;(,QĊHCBs̋ C'@@`"⬟S~ĩsj#<b  ,MN& +qtY o_q!S2BYl$hB$fFn07 MeU4-j%Z,"x+45mko?ߖݍ͟Dnw?َ>o׼_>W_CJ;dǮn!qY.݌;GA^:;J.nA<׎z&Ssҫ1)!A60;NtB6Dt+й#E6ChN+AEIGA+OA+NA^ +riJCd$9IJHsԻstRau:7.C͗S1{ai^J=cjF%6ۋ*nBR'04VQTaHwJC2fiM!)ѐs!LI2ݝaaRW`m>Id{ vz5xo +j@ݲpbZ(F Ί,~L +1gHe) hjԊxSՎ'+C +/ +@|o?e-1oiU J-QDV<<X7B=Q auo1 ?(ңhq)wS:_kK6KQ1BQ2eI +YLh=*h +QuDY1'fc cy*w]XO؛)92QmY 'N12oڻ4<֚eW4F]Q2L9SKUIR{uU6C~>738Φ+L,֤E1JM-CgJ_KaC I#kL2a4t+LCL +\b.t"u&G[buoq1Y19o| BuS˜LX򽌯D~4GGGI_<#L\ x&̄W'ZLulIFF'3s$La nB V7]7FfJ=;"f6j?P +,Ų{Fw+ +Gp&&X^^НV ;;b r]azR|*:͘DF1/WB?ȶi%IX:i}FTvF:3.ۡMT&㉌JC+W4bxP7f?mw,Lp4%; f+&dB3;X)J)1tusrk,z?;+0D:h25 H>}%Q E.1UK_l9hŵ)M GH$/Vl^Mz!`SJm0Ն/HX1or(.%{:y#Q6%&ҙ&߫Ɛʇ&7NʼaԔXU'La-Vю*\sēj6tOQmˏEfml#8S}uZ% |I1/N_r58cu& h{>9͍RT[a0Sq;g 2 2 "wpj'[lqe^eirrF;t=#ԉ͙5 AϞȊꆇI'mܭjB[!TLj 3uN.^Wt}½*WY㭚N֠I㒬i\֤YE qs?ԒL:]хúvBYHvD`=&:%>N$WS?#vh=>M-l9bTF 163CzIN:&۴ӉEhkbNZ<3/D[_"o=d>'${u{.0ޖc$+PHͨ 2Re!i =BȺj%Є|sPy(aBhA3FYh "zu"DODh"( G~S:F*ۿ5)V"ؙh(NZtwCNO3ZU֜3nrLo"SW1V\ĥgQOX]NjQvҏd18^}*W?2κ܆@ƾ!7Gk2A[w8Ǻ𜻛|/~i7xmZɐ &SANV~m6ZH@@`If/Hk 5ZBLe&ۅM{ﳀ2bҏ; vN*Ky45{ە9 Ck*#2r#"G?yЍE=x:#D + dL42.8H S +N<)| V 1nbCno.-.'2)srrV78"Evl词iWhzTs3]Vj~_V^Stuhbz%r 0s#x#C4 .,LY]jօ39xNU5E,CYD!mHRM;`LF-*_-uk +m F=GX&.E݈ `246*{O +_A^F2)O݇ZPD|Jn+3u4ыDsUo *y+̓Z%B< +ҥ!ċ,̗QuZ0tCo)$Owj_?Uڼqk9)I\bYZ/n4JLqD# $k:yq$0wqxO8n5L^IBn +|G<e@7+fUA.@(t$$a4mb-Sǹ,xnN +owm5zBnutE1I6L6nbFBCcTEsc縴uq @gN,)Jx^ڲƮtgpn/(29DdݮY yybu;i\XBƍeiouHΰ~_ȅ'SVomYeƳ*{N%zwg\ֻ!*Nsu#a՟5!?O}Hb>^cdhmiYVffQCXڍP W?vҘE./ /|u+K9L pxIh.e^FDu~+صO)Bu΂?= 'YE'G$"C_o!@r1g2itC?Tp1:[Eр}}>xp]U2|^4>g&$TsA#H1Zӧ77kԽqm =̆eE-p$$_ &{l(Rզk0@=Ƀe]AOM>PPIFmEM67PsxpOG@"`̓m=;!WD={ //< QP,{YVFV mY" +ִE j1`݁5Mj ;+ +Q9>77t jQŀ, +,{>z(YZQq0.*#2j^n0_r_ %,) +3eJMEZMGA@zLqWѯ¹R7qjgTʜg.Q:(eYLaJU +ZMt7摴XɊtz9<ʓk׊{$:MJ=C;0ߒLlҰU,]WdB*]0n)S.ͦg1WBZdµ$I7=#Vdp [IɠNAԩjYL#(3 ٔpƔMg+`CgCsp FsDCVC EA! +D YYwKʮwSJ[/U-?շ߈gd +LMs|{{}_P1@gLr +_ga?$P@* ipa1&rmvP|i@ځ9APf@(:*wUAk(ݵTצ筚I; 9hV. 1>AZ4$lMAS@rZqY)|RfNw\"Z&ж`HBvr-˜#]ţ;'wʚABNΟ~9N ~oYUU;Tw*r&X\AlO4G' $ypnATf Qj+qum*\t ]XAp}awVܞǝ亦<u݉+ +hVDEA"q1rBh>+7 n2]o5Lp*߾2NAjުҪ;3Fw_s' +EߎJE*HnqaSow ?? ̾=cGtyzBuV^5:\+*oHB| +ҼZ{45)穰 sӽC }^_w` +oB^8+1iFMIiع{ulɏ]8m#h +#ԍl9b_)[ٲ8݀`k>z. z t2FB#3x :zM,]h'7[]BାnZ#sƮ/}G(ic@ՌcpS@ ^yB Q_ cCR +X kCmSxMWY [:l`yys$Oxrns^ܕxNQg@ L PXπ A!a 9z3= , , >T7Ԏw&mt;3ܥQxh 0CV[CcCɂ)ق)2Pq5}C3LS{6-튇,'1o~M)o)>x~^k;ku9OPڒ +ZWG!ׄMJmj I,+A!;73i>"rs |򥏄":Wټ .#ʘ *rGd5*A|zc'ّLMBI"E'xHmU5NZׄI*j)j7YaC *^ݑKYh,_![i`*rcKC~_[O 1# +1!R'me9}\v- e6aU+fjB1As,rh{.aޘl~΀٢` wu%wrPZHLagWcWZ`X5G{GʌC[բPZp&?$Z$m(;#czȋO^5U]ɸ4II}EWpuMnO{~݂Z냏N@֣B4\G!I V|f+|;Hٖ\ف4EzYbH2-dJ5Qܕ8֕EG(+6Q6lةDVMl¹o1bn&.}Da0Vߢ`SOqLY@AW^s6hvWf LTcYes\ W(>>(wEiE YzN^EN8SK̢ LOr,Ϡ"2xf}Klf[*lOrnWGu_ɬ'pV=H*ra6٬S’-omy}?k z\'XIgwM2yݲ'P9z:oXG,a#G0Np˼c%^ +-;6(V;^7ޢ=aT;{I%[mXKtWksۥ&c0G}K2xaNƺNfGh<{58 `g8 9bhWdA *Dd}M~D;ћ;[AyOk8]O:_D@j-e 'gEsS@)р)}fBs5X#O( ? + Φ~s"Cbn!ɤ`2aDHYD1mf9[24Csׯt>G2 4pԀ_UeqnSu PԮ-7@Lj6 ҍ#`TB($$BOk %@< `f"sÂu;yh A@&(8,.Mt +X[ CkO\hig硨Tə7J+ɉލ%E'`EրbLPL:^;>7G-J (v?YgSn{ºUI +$Ԝn$!E5+1L4k3c91'z,%;[)tN[ꎕaSQBLݼr/򦘝?İ1l5AR6;C,|@X'.5.2D>3d1p)bKCP|Wl}㚞'ć6\k_ʗfŜ2n6@e)}Z M25WQ*k"܄u!}Wӛ=tWφz^PuxjԨgopwׯJh2C$5Lgb.pKϓ;Qll=v=Ӈ'E ERE1K/OyCбѷ߅n⍪G_\6SMpP\א74[/7NbHݿ"lOfwfW.yLV,!9]h'sS4ryt伟5~g›;@ c¼#yF%җ[ +$FaEz)<8'i0v vY)9RG+NmQCMlݲȃm^gC+΀k+jY} yκ[含q'۞ 8Pykʾ.optK`TD?0Wo y08PGQX3Q +JdxrE%k2Q1GSqp-߂Sg(Go;Ӽ`[BܚIXtdF̐e7T,/sHl=AAIw9xHTzu3=a辺3v^?Y"|D4Mv9AA -fl-.'[b 5@,X1pR$#jS:Z$s@mia*q]I%N`wu&b/E3cOkV*'TYx讞1tOo2™ym̪FzcjYKP +Z1V.$ÌǨgI +JޡyzSIcnCաTi,P2L8sVCwuVNYpk@gFy1FYmhru%w;cXU$s\b-8 +93[?bcfer[YG,$ S?K˰P) +6YHjGEZș'Y! ܻh'jÿ0樈@˖0&4XX!N۱t/()@`m bP T"bP]DJ͙UX@ֈY6}hTizMR|¢jy%sEqc㲚vx4֛Y%jZ9FCvy:{ + ca'9Yoͤ՗𘼐]6iJOˊ0xuu&{By樏/_w_}.ww7xl7̲%UQň|m0 pCԑug)ԒbNNش"(iaP\1ҘC:4<>-EcT&+ nM$L}^)e@7|aMaiN|^N9/ ? \QC=2~I} fwdS9gJj];znPֺnͣQiD ^fnxxfU\=lJ5*I;Ξ{ٶ¤صRuoxp +0xET?m'u(sCE4Q/8O~7dߞP/`ehtMo۝@.Ɖ#OF`@!3wTF҄0vXCD7|AuQq\sk!Vky&- lQ5DZ^, ְ,d:LMA}Y#l,q/L;CgMfU"!E,ii{j(ŷGůdha5;vxE(G|+^p &>]Vq]"O ZBzͭPݛ +.o %yvSٜy8IǢ M79kҠ$b9HvItHo٣zkk{3|OKM-jSP+˚N"po>,RpY`Zݙ ꣗VD<yi#R^ х7neΣAU꿟HW:%_i;KrygN0%8#mM؅D$00sJ֔<kj2ET +Mg >RRz7N?k&F5yv;)>GX1 bÎLmLYGrG$Ɂ+ \. P`| f"$@"C[e"@ h)o~$ tG᠈G"=g=DaV01Wh*+8M7^17nj]e y=|}>܅pbvLSL˛ e㩗 @aU%cfu V =ほ [2jǝ-gTlRcB?bM +ia,Ҭ., +RORCmliN'D*2 ՊrLy+Y7ˎGTj2}!yM33walo$")N1^юila<ǬEZHs&Z*pJY\ 0v8r a B$^]# 1$9;(䴾Z3}lz^C34+m8v\d2€Oz-Qp)O"[^FHӲT_tbh%qaTf\p>;(M]m\*)[o \ڪWd]/M)eq(Q@!3y*(<4I:̡!.Hna#N\쫪96gf6FrmNJtjN.'m]Bqm7BE:ŷAwBW@ –'YOLͫvG,G~EOwgR~WK5f+OHm=P)g!n>!MaF:o_6)KHxDz4J}!<[<=rD岈MMulqYC#:wuF'N3k*'sO#K'1+;];uggC/]/&LB=Wf (>'?B+#C7Dm 6Pi HVy ڝ6Q!q3!oXwZ=Mnh\QZb0ʴxtD=Ѳ42#FAih&mJy^$-cI: !j mʛ2'6"j Aq jBkH*Cv\($._@/{K?07 Q23科Ϳ Hğ|cdʎpn 821WRAT՝J:P f +BRvzNjL&ZHN_f~v;Rw;!8vA)ނy={Gywg];惍pn= x_5} +P A+Q|G^U|W<4GZFR{PתGdmvu[p7[n[nȫũSUSJO^-5J-6j-7j-8jMKq$_+ٞg_Kyk מCy@h$v fr}fCub}$i +2Pۭj<΅FO@eڮ gbqI(i9Ҫp'ԙUSN$͆1 a`&*4N)r2?׿f؜1;ۖMc } &r8fww'Ettx(Lm'ʅԛ4 t\r jѽ8B;#Х!IV\\NKX:>6y׸-/b(#˼}W z+qc hXfo/e=ZqGtllOYnؙ2o$$`9mOD DzkW"Uv^>D};+YTj4AY^I>tDW*& +rwb(MQ;`j49?H^?h]1OJQ' ؑZ#_"E:+dm}6ZUU~(s|XW65gM5ѯ^cߛ H΢qfuȦ sUP&Sa*y%3ԔX0kYZ Y!1 TΚ2ia `W>rf9Dȶ/I^Okb\~W=#fÈN/R,4)I*4>QfE*.V^ +!NX<&NjDfi)I(X4ЬF1Y W:fiotu}eQfUP)bIeo$Gꗊ!6!YS]!˒g*:3bhKfJrؼ|."HmA42;D X#JR;N]]@##n;[b}P_y0+Ռ뚭7O-^Rܢ;FjeaMMZjmTj6 3K^}ab03:7s34#f61 U--c#c(!K>fޞu-%XyzΖtSd>ܲѡ _('Z "OKmY2g_6:ʞ.* zl_ϝ W+,om@°'eY<^:C9NZo2,j_#^97H2aJ.Bņ>_NlIElغO+|c}Bh~1Rjj"~&/i,nGqEgAm'刮ԠEvDr4"?y3$|gkIq]dU3U0Wԩ"VX+ +i!4WO::t꧎p9vg7b~)_f1got3~Lv/)ZXwt!Mg +! I g6[6vgr&<5Zss)nj갃>P.:,QP\MMƐ*Bo7D(p99#2k5m*+=iM8ȎvhWXX 4ExX%}a#B! ; +ac +{%ܹ$j#hn;CC_EK7Q/b~pIoG v;E/ѨT+ E"WVINW֔H|b ܇< CdV9 L T*9Kuޥmb4g{|HAоqb= +(c-hFduĤ8Q @9i%vTr-ByL9㤿ѭI8wj186"ΰķQ.[!bH.F4jN^\#З ݇N9SNy͝gR PQqČ31/ZYqd8̀)y[JFgdk`7dD-'1saJe)s)瓁1 N:n*Lw|'޶l}ʇel"Eԝ)l/ZJֽ,ko6,~q  +k=KKF$vf>9zGI;F-Mvg# M Uf\O +Ds JgZˎ[ӼG=UNʑ*X,zCElmik|qCKaU +:;=O 7o{:{hY+P~)E>˰drtJ7s%q)_$q9E<*C^AɎ_(K"CsGÖ4;wԁC@f.G88F'bBmx|f*#lؗY4vfCi:+0v4Y"R`č*=Ӿr$ReyNIIej]N8OܐO6NjӺIМDʁQ4ݺ6q`2C} ^Pf<[sԞ5t[rvVq]-ϭkJ@Չ Jw$]kO# wŪKsBs}]Gźyvvi&y37h , +ETB%!TBbHti?%:}+9 4/GkO1>B8.Wo|._.݀ޛ ]C[F(:ʽ yN!Ey1[}&r꽹9lzA;WA[X9C1\%GQ8angj~@cq}jϭ'jp,? 7D,ݐRCxI/B@tq;Oe15Tzu3q̶| XԺZm:) +j#Kme5o|qRt.zQN L$^z})@P;l*e{ +o!r{yrl2!?,|wlӽA3@KeM#ÞoP7_똉T'Sֱ :3a2ruuM[fxOg ńV&3^]ݕנ{#K>#Vzq[:>n \=x<3+"2~MK84manX)W9Ryl'MsQ,0WOP7y/ M~M^tEitj;sIcN TVQyWoq9ٳճ-Iל5LaaOvvv+4>11>NR{}V8#d#|D嶴`|侓MKܻ(^H +W[_D}:qk5"ӂLx4&ÏĺR0FiI A-_"^=bC"6bYJlY٪VC,"J(3QcfΚpTJeI?Yzs%NX1yr}Fe>ܱ{1,!kּVKتgR# J8.]o#҂Nsp'$:] ] 9g5]Ql1J4/Ȝr$G夗Pqk,FHb*aCo?{o@Xh9yA#=^mh~soo~{랺?yHEXhI#1#cDԌآOX}TBIH)|ފIziQ#|d/ʆHzkqVbY|?}ac(ڋ %Th6Lɍ@d0'IuǨ1xm*?U 5Af2bwk[[e:JZpg.M&v۶]ҴСms.0?q1Eu-=G>r`ӸAiJ`e%E5 lU6K=594&Yxjxt@KM&.:Ǩ&!Ys!lJqCD|l\ ι{[1Ja6>6撛%ȄOqN=AJ~ݥvn9|ja~@< +WYUe]\ Ҭ[BZ/b@pIwѽay٦emb6 a؄Kg\ kg…e&U[KGYwVǛjĮ[HS̠d] +?jLU#qi ni=d;1˔> 1<_L`OҴȸH 3 c1Ak b c>3h460L)joo͖]IE2Aޕ'+ov҃WZMMX+<-j$3%7"]T ص|~b:!H?yPiلMʆ( ū95Lf42sM&L"($=jrXa R^Wgj1㺯:SS\G,<9\bᐘɵbr<㨐W;=5l=v7|97: +5wɄ*AU^4)dzS y{1tg~_, ַ!2xVuO w2897uէ +Ԯ5%KXp6=޲zocUIU9n9W\~^g*x1KȊeOܳ6nKSk= tHZA )"uX/r7{xRo,EJpk3=V|k:5E@❁)ܫn+ oؐfJ`C; h_2ܣV\h[mπ:Oaް\+C6Hmn!D3BW.u@6z$ Աz':vC:(?h@ԫt0*#DiTFJ2YR;i[$Q dY"R.iH3E)z$I0tpC,A$#!m-1x.QA%m}.0xj#$& ݠGpRb]qu#кAK#dsc&>Qw{ +)|d NM8ƀY1!{I%Mꐩv̽E8K>70;r^nv +N:p7TKw1XZg-&=KuEk#dBKMiko]U5k|ɥ2[ f2F%'myfQ\.mǾ@6abrºb8ihC`!ܽuhy(5DQIqp h(1P1{JrISG^Ҿ +c漴e椏妤u}NI_աG.; O͟8lCNؽ;\@fzަUOJYn4r{+&yNʠҰu'P6`ro6_n~Mv9 !cDZr4t3vVerƛ?Sc@$ RZAߓu0vsjk!MpofNkr\ՙCx Z%(q3 Xi˃Qd5)"%i*we^V1c`D"B젘Ro"Ad +r^u]Q}T@I$S +kLMTc.' ЇD [vW(ɱ l#M:(ׇJNè[ + l`.[o.;G($=F]<7ȓFqF)^~GL_52Mj"<$sa½WཡWث!e͵F]V+ [TENa6xvZZ'~*r=g/~;/9/;ihk [zI7znLJl *ƌ]Sb_}n`-gI#mO=EՖ3,Ug.-,gϏ!: < +y ~< s[KhuGH.G.VCםSmSUu]F+Tl{j"{Zw˺qb+G՚g;)ֻSufVBevA/їN欓Ey C&&Vb&&+u(O>X:PٶU5[f́nɄGȶ${dS*1Y/Ep+3ۜ$_sMmz&qIgr;ц(yL4[uѵ:WM/BSD:BSU2`K20*4;LmW:]ׇwmC5xj\N{2=odX6290'nI &ŭ eEETvo3/$Dh¿-Lo:Y4ͣVF\3/a`<[#nTxlC7B; +lq:zygrU0,Ћ/-`"e594qkro8OAbH,Aps\Od6jNFn,e$݈]L\xnN"Lo%1Pw%E ŝ (ɘyPH 8@^%n潯.` #ϵ10i+qCգ# A[b>D_~P/Rie&'sP-K"smv2W rO>y(VB!twԠJSRLWiː^GtWs#g}zBe z@, Σ|𝥯sV={ě"W"t +IC[$RLUcg]R&qRm +#BlMCEH9}-{ +;C;g(J&wKNw%eس)2!!FcSTIgR>+Ÿ.t C{&Ƞ!p2&J2Kj6L ZΥ?vHU NUķZL[ጕc)mU)mRb[_I\IZFs(jsl_l; cizלI|jݢSwN6R_37=d +oP<ЪTkSᤲW9'ܗBDo 턲'&H1tk,Sx: jqMp!;uu[SKeE#6{ҨaZAJ8.4-[}}=q3 i5|pDK:p^U\W;:¦.y]&KkD0(U85Wǡk.:GsWrSnhmtG v17:)?VX7teaƹi~L*ɚ@ 5Hr^9.&4aiVauɭK% ﮖ8$*S}'+փ9֐c6-pkŚ"O!Jm=QTp!yG, + -Զ̀ݗT 1/1a[$ْY90j<'Z07  t5j:4_sU qUĈ -R1Cmg:$85`Bl]8)e|?IfEӬtf:"6Z Xjql~T6?'gXUݫqp\!=:]q!c:ԖkkBt[,B3îr4+XX4.lPlTlXl\^X] +i 7J GDyfXV *؎bWJ6O_nX7wO-j Z>4 ig\Y@`cݰ@X皈뢱6ZYtAmP`[8t)Auy@k{vgAjV[tFc쮣KKw(wn[͉[͑`IH>n#P!.Jr{ +pQDÆO; ]q5^’}o{jɁEa[G̼HN`}>,%\B(cp(cT-Nmz?nyiƢDf &[W엟ԂOr0q45u9[Y /w7@l 2F +WUv$tG8$ٯ7TANSr$="2F|GUwP 8U1p-E3DAbz8EjSRG^iâwWE)@UTMxy@ CX3DkJ#mpmCEU[äĦ k,o<jS* /c9jW +.*_ ;oYjNDzBmӥ_"c=`cH OH}2& +pHΠ݃@i}4"Vx`BofV1e +bx3jٱĵ0[!DIyR_/J@2d ; -4^[{ ^ 9=O"2UN^6O4 bAؿ8Hv c$"Dr]yTJAK>BV?%E㥀55j] U +Պ1Y,[JVCz'1 ɔJSp|]lH Uz19Jv2[MN#ƀ; yR3JZq {woq7Y+ P̥uO;oA{F`;ožn搝l_QgJ ?ZݔpHVL,tk)EI4EI]=i 'ZG J}@;LԵeyP{ЯViӧ>+ ?p9#i}b)T<9JbMi%@A%ǰr/TIeCsЍ [y<F;MkNcϻyrdE-"щnsCԥJ幻Mբ;/`[s7mXhaAbO^5S4; m) FшUXM45 + U)ll&7b{[:WBQJkL(򠜛ElhǵeGk1;9o.8"lU}#( CH/yצOh]/ژ_Xcƙ٩6Żo|5.if^2)E aaN∸j6|}΅_RkAEwl=qc ?dat(|v^89--WUpYbǥ?[Aa{DH$D}@t{ by +@ }PI<bvl&q|8C)9_e;!CמI]IPx  2-WV:;# o=يܶy=)(r*sLpVfiT*b? ܟY2Vt7/ rPwFlۋɃA*zW+W]^a<Պ~ojiD՞pG+z%x@"xZz>c5(~0W-YG.,J/U>R$5`;@։;s@58Oaf:$fSI3i6#!2h/8<H(TO&X.&cL W'df%6|dJ9P#+`HdLH_@ŧlGd捳twd 7؎xG66M|&U}>I"=~Zw Zº7+pq&O Vb*|+։QkiDOiɥ,ܚ/M+-Gr+,1iCĶ;LC}bhz464`1@uXN[gR- "OMjs6T8ûEyӮ-Y.WCY.P`KȐ C1͢{,~ۨ=-]K7"^x.^rW.5B|=I$,4ހaX"Wq&/ɃEĜb^ڻ ޿k :BK|ov#zBT#Fe6Y=bɥ~x0sN%pWzAxІ;> Mp"`* |WÀS""4 ̘ YJ+Lٚc'%PCo‚3\ +DDvBeNkC:(5B.y:oUYVG[a`R슖GIS$3)m&GJW* +Pbͪ#C>?U)Կ4HA mLg`%h ҇N-gH #5?J?P~YxNnJv&V*Z4qI׸7VkF!G)ּft"ӓD`͵WZf0),HOuAKI*obP-.n;L>]WұET[ZM㗉0ultn-t*U>1ji4mqlC=L6C%Kg_QaΓw:rT% +ѫBjd;ý*BBkbc.Q!%Ժ5W:s2]8 /[:HpZ ig7Zj]"L3L_c_c.EGIJ#cl-uj +jgAYҜ' 7t._l_t1_6+9K{AF._c g22-$r @)CV/j\A>Z?ܫ,BQL;3 ?L_h?y{ߊ"/#5$jt%Bͭ/XfԬS-`phfۍq}?LbzN<òbpF2Z83*F$haY^eweXd!q=<ˆ$n>\4d9+™2EuJت,lj 5k%(c7PQwIȟUkǕqvvq#hl uu]܎aeTkz4fsjameܿ?<|ގHn@Ƨo-UFa-%% |Bbpk;bs+]rWQs|ZA{R)> .LOOP# _k/WSۇ'?o C80Pʅ_(RovB,݁nЧ1/ڽ;!7<^⃁ R{{4 YDZ#둒W 'tB=̜;5gw7#+GdpzP ƲSv,f5Z‚RS19鵸&S᷶5sUmRgM6:/U 3,V)nބk:kQ?ws)t^?= + +##g|`g t'/}k"sqW[S∼Q +1Dhmwl :dܺ`"G冦˧d. LWk +-r&4X4)hӍSu T5`pME YcNڡZ9%˙9pٛaLۻ}'J;׀jk2fM"}:S"ӳ1 %IEºIo8CA4.ʘisT, Lmنf[pM=[3;>яFe/@n`],4&7t{V7ڈJf#ŷ>u[i zg൯p0 wCɅtx'I @(!_^fPJ4Qu-'l1"{ }g@!!"k\P+r26|!ӡj:'#i$AT%xCLA=y n4߶CQ_FouNAQAQ3׽c R:`6rvA'>yK bR/e88 2Nb b/x aG7i*W^,WL(hLLhwCmk0G*\}gHک<"" QfR} aWѷ5X(Y([{NdhZtD:uF+ RW&U)Kxl_@9_uEZb(&obBBﵓ,v0_c!P#5޷||e&/0wW:3؁-Fw +-l$ 1>]O+x6A p0T% hb%旀*]zPf,WXwBG!P8-lZH)4 ͧf7YX9Sw= +MRw=%"OMAqEsUBϹ8^D^@,xhMiTLzC=sD +0:XRBl )o"Y]E,Ŋ{CYtE6ù,m~6C꜊HZEpc%7C7B;Bcc^aw =|1l,cV[M i&:Fܳr +RɘZ7n`MfJQ<M>,Hl>h%d A}qV8#sse su)Y[5LcR 6]/Q3s"4( ຩujavsZ"XB?Ą Ry) $!lABM1r{`f3hb`M̴ܐTdLe㥣)d[P,U21 |%%o*PCӸ 1IBk;k7m 9{GkVd>)=ۻhq$pOp-8523%<))uGl!;6J6lYe;ޙz-L{rJ ón{|[]&^TtBEfIFb Ega4\Re`DaGLi U<H%*"VL+6Yd 5TҰ٭FR q^mldr|{NtIBMi0ɌR8cRՔ _'VWy}r+P yK%S߆z'"Tk*/k-$9}@1 B02I+HVK3pQPX\}0f%%I^ N|.YZ6鵹vL=)WA[J-oURx%mklB0l9qYV)F^}`5M48$"Gtw[ywfs!68gFs֗r(*^j[|`h1BwC"*3Ch"jɹ ᖉNHLT؂ƺPxe&RLrnJJ}_Ru\y !U%>lpA6YuȰK, +F"{ckRN{>hXE1{of01AQ9rDN'Ym=^'Ӑ}~Wm{r"ʪzX +YYsFU gp Y)Dh%Q'I8FmKzפ%q9ﳦeB +s l +ZAA[Jkxf֤o9꩗X\\lޤ\I9]95ۀ;|"1qa˕clYRHyQXʕ+l'8fFOa=&q ~!ȣ[?Mí&9ނ}p^%\{\y2qw2oPT}'>Ӹ9v#(Hփ(Fh]_/A hh5oQ7co7coQ+F_8/$KM&.kO#nOKmr۱iڸ/3&8ˤbe1=8&wo7& UIFJQn2ܦ5&+v NT AtSgtDzd <{$β0zUR ̔ڜzmS2іZ{H(Ig$t㲹Rx۠ AP-i$gԇ !jF7UH^|]CIОNDb8DO k[lq1mmsGKjM#}e(Rnd#:qWOKs~rvjf/J _?Iw!bPE0S#-`fyjũWVcPAmr~ʢY 7ig; :CIqQN9sgK`Bb>f]q.٢t+QHt'|zW>mTkpok \W7H]>Nmda;bdhW[_i(Ήf`cy +$L|̏C`kZOR{Գ2P]_(g]#nLńQBG&BYj%kB R4lV2c sC!s k3 Z3c}(v<;(a:gbՅ(7}5Z N傴ԧ+(L)cgrkdJцع̷88pCox m]kIMGvm %QINwNu$f]~/kɹFU9vyhB*hOB3l"bAJ)xD}/}f YUL/2Y{vb#XF?dwiAlzx,> cd)`EMtd\=G2kr^h}~2?xWlp,nk`R]ZKO owC>>0ⵜ1{Xm-1B}(6cV~aiWn>"&ޱsE@.Ə,E#m0s!{Hpef^/?_ ῨY +{O]~/ ZWwOY\v?K&)6=J.hς] #n#ʴBVwL7Wir648L/.Oiޅ4u5ƙG& PGץ3vjĈy붯0m(LbV"*12Bi.B:F iu}f%tA14`^^,˼ډC/2Vk!+E&XX;AwwG`z"UG&t O$buhnu1ư} ܅FYڸpľ$;?VG3RоTF6Cj_0$@PZwk)#m2$ #R}%'-.9e\D]}i=wJ]7yׂ\[R-ذH1'Cm3Iu ;F\`/Yy<;EeWUe>j4HqRLX%Lhxr/٥=]"!|}iZ_ +w32]J,V@*6LF YT|xZP@CR9#?0MbY7C.KѦ<r &#:ĽtEJ>W|r N,Ԏ0OƪzB uu4^Ĝȩ{[7WU׉q,^~Ns1爝Cph +p9>{0 Y\166 ^/\۟;+q;b^fPXYaB4OݎJg9rbf6G[;B,(,OR'S&4v !O^`Gڇ'RPH.nB?rw94;df9h$r-"dhJq[m9DRO V[b8SDFc*G^n"F0ꣾ-FP0T7+S:DHiOvOyjѭ-N0Ż?v֗GrEhtDzAgFGhٚ4DcꜿEU.rr=T5-Y{GN |QSO.](6.R*-~mڼĵ MB򪐿-rޑ˄wGr=[yEd^'-AvW?0EʹW?Р(h[ҵ"zLW@,V2 '@ SJx^`+d4%_,H =M@"P|q<M\6-ha=.Nm%JAIH?EI7@-⠊gCk( ^TsLfz%2*5& +PՂz-(7f#}?LR/K>xICNT Y W) @j >C>[5X͌ *BJu˳&RY`͒`½fuUEmF /kcΫw/6` vwl/?<׽^>2a{z"/0,pGp1ܾW:r!iSy"o˰!&.'ǴBTfTn3d3hH"szH^OjͲV"XPm_֎7.c"M0( Gv WB>e[4k(ݓvk 6AFvbBl{<|ӑS«kw֒'3}e/.K> !!QTbeHi;  +3A ߐZv?TjE((7K%uk ݋A)@g8+C1RHcY&9u@-a|~Z :]fL2Hj+Yvň'D[@"Nsi&EaB=hoRJUarȐNMb5S׈φ\8ؾɞlvf\J{ݐVMsnl4f#Ir] ˖LRIS*Y4b׏I{7E|^:ۇsxJcӥ&}&ݒ{S VnbF*ZͯƄ`;ۣp[Х³ڰƓe~u2i"]WQ~b#!48 cl6Zi;sP`ܲ6S.?@pqUS|_j点8bܶţs<b.F / ~?.|-1Uc)Pyx[pX+Ow9lzQ;ڷ9g:5~\{[2q#KA <9{:oW[͏gsڝ5n?"IpwT$: 0E R!U"##o0ypF2 +PJh'dYnţ!T*JPI6[>B--X?DQI͟g*-?p/'@ HE] + 6%];>Ayۊ& ?е|Z }-Y,?IB%2kِW`EϢ*-/{<:2M𥃢 hUwАE72A0} rWM/b_Ԛ?)$em) +9_٠a=$0~H}`y!`TFC]er^60q[^> 0400Ј_ ta@wM`4 +l?;TU%7-6/}mm2(gE(<6AgA|U}Khe#pK vz]q"'$K+pz&[/'j}ȒԝAMm̷h-r=a/VP> /҆L`i#Z$vn~қW}Ÿ4Sֵ2"G?D?Q&*QrBRA!!ݺ JM5YyV(YHTUPh`w299L +d} >Þa45>:u=}rz{io! +BY'7lX;ܖn6H*4-'FGRjw0GY%G.G-@@$8J>H*|@I@@= \PD"4),cYӒz$ +}-G7҉} FC39WQ%ji3K>)ϓaI2c`,x珠HYpQuCO%*ɂ2E}0m)QhVJuz\`G$D Pљg95֛Xzv[;atjF@XJ(7rV(f8?ZI~hMK*(7qŇ(ͰMx<):AݧBΊ^O@-&qpHG7>]A>A3M{bJ60P-U,i isP2TS+d"rSg_Fg62 1|;[RL\.2X.1F\=x +Npӝwi5A|Mw@W~.?(>H\vߞqJw/Zf+)'dX@$ ~;&6CaO?1ʒSKgER2o'0Kx&8o)R_eWӕI_D8nnZm SjxBz֥[VFmg")U5N.~`&>-di<+e{,$䶁fX]hY4ZXU926Q%k{zjI-T~qy'~5ɗyU8yI hDsu>Q#ꤗ$N[_up2WH]v@(a w34T*8 H3(=*@.g(M̤.|; LjK ٍqC|m73yP)Pό&tQ +pbv.B0섩9fv6 )ԝGRy$'aW9#6`6 1WοԹcAg**AC̪ .>;]n9(,kKl7D#z%YY:;İ +c`b:\}hh}x?jC{$^(`xe˴yq)h~i'&! 02)#yc7q/Km +u?(]P \,^Kǽ_EWX2Le{E%m\M^7ZM87Y?_NOze ؄gb`~3$Y2$9;9 :9_g2I6S , ( RK!e9ƇƊAv 6^}qc~|CG>tK6/O4o;'o]Sm}~0X0b6PpXBˠH `"cӪc$0r~L)0#hYrOXQM=HH HI\ ݕwQ`kw>y +b.DA__[a)"ʃd,spK3 EO&E(EzlK;PURY(~KX^a):DDMe#3$]qಂ)+=AW fv((oxh T.T}LV}eb$qvEk8Vv%>sD:-yvdHdXjm=oX/sLXT|A0}ZHd$Y"8""K;^CH;A.wݢ0z&.+ p%@қB fUeJ|S;ZDX;um$Ȁpq#* ;yxm +SˣbG?Ǥ]& Π#K&ߒj6<͐q|yR$T(Taf-QA/$@ SnD#+D\̃b:jkY˛.ߵZyRdd\桭DW9lЙCƧf'YۂZB-?(q T؞2EEDBc(M 6>x:<#y'D~Grʒ"`S%Nd߄"SsOuonWܖkqw~H\IJHz4luArnrUü%W=DU?l1R"Fy+[5X} ?VSz-"3sм ;$qLc5Lj 1Qu11<.<44rzJQN ʄ0 hO,`g6$[U]]WJ DL!888 [^d^&,+ȚkSB A'.K,AQ uK]}]v?[AWU٦"G, +ʊJ:gIm"|94ɹ B(.1Abjb{p{S~;S2r_^2ةAC0r'5`!*xI rFS +M/oӾNC,AZU'hܚAy18#bL~~:Afz~ +&B1pA"B_ĕh6r%ہW6iê7P:0rgj#FTs84֎5Ab?#Fx"_)?̸VOğ? >:N[UͰAMC + '1ǫzm97C gT2+WWE!lM. + 6:9/?YYɞՊKZiJ쭦k48aWaoYS`ҝPB8 |{eBp|!O%?~UwODlӠlSjT?>~p XsvE s=?_\ZJA4x +K~Mhnn׀hxQG;;'",'\L. E5$Aa[O~E NJ-ˑ?F3vw?w'̬4ֶ햶uG(69!0C`cvO6#czC^Twe6A*Ij> +njʹA!{֋?"tMpFBhhfL pDrX +c4,%My%UWe%%8egsbYg4L-Ũ}k눗JQ*E(^^;#eTt:0u sǴ/@`+P y.˹A&% 9PWR!(%; M.O.D}{ów0 :e[$n R:κݠbpbj* Pp in0V3YF"KI'?yu돹 ;:ÌY +J$pyh(7u~THNtX}vxv/|:,UP4]z+CF`::adt}K@Qϱ@}ʨ:(DKEXtPDŀaΎb(g;'jS3tHAoU'2-*{h[64Țx(iR +Lgy:If +J'{IktXsc, HR9*ǶZ?QYi-h̅!vv.Xޕm6')}R5 ++/S hm Nz%Yx22Yte9] }BE|\H3Ӎ)Q$&@$F,qnTw -X(>5dK(Y^Cʶ=~TJ`;xSxr"paIKAD Ԕjk-ƔK_.sV~V[+}t2 GWF?`' g1&>cJHH-@Ȕɖ-;Y֡! +Ś qKU2Z8aPDcVH$ w0]V,/qX6ZfL .RBy!U +ˮ +u\97֢3c+39G_H5t(ٵ͞mCXaHU]k%w6+,3%(`&Y()=Uܷ8iۢʒc@0:KHShZ*x , Ӎ,NMQNJ5vCq<-?ӝ:։Ѷlw -Jv 4 $r?3 :)0]W.He#|\7&BlJ%U&"*KeSz2*sG's@CED^_2FÒ\C`R`(ŗI4H t{ j/קG{jGDv>7x5]%!kkg]"G);UdZq,)M*^"-2D]G<'.V.-U?S̗ +n}'Pc{V2b|,=CR~t$K@'Ka`0=lUt$-ޙ%7s{J7\%#|T8e4M>.TQ.o8;21S}B/Fw1"AZ)vq.ἅSLzRM+if#M=޻I$jN'vz%;8 *5Nw& +0ƤmcW9czO)FQ/tHGκO(kT"v7 w`iGlq(~N>gCjSύq)U饛 2mqF`_GRrv+K ~!F^y'`y>W@mAi$!AnKdQWSՄHȅXs[˜,O8TnU=πG7<}@g(|̟)^ܯ%|(&=cvV37?r6 ,KDsP]b#o9Ȼ[B*M$31J=Fx$$|Z٫  k{ϓ qTbGTK;+->J h#5"A2fbrwdq+`0 š цE  c 15fF?.0;̞= 7q?ljT;8Y Y ׬Ԕk>^H"ZPb HVk#iv:1jeS"\$$_*g͔>#D?O,-sۯ/Ej(.`, )~* +=n;'nʃ::dl(L]f8w؁ƞ;Ah^\:sh'8=4S={΁4;Đ,Wt_g(ȷhSIv`P膴UjpPҥKZz刵`{q%A*YB2J#;#D){fVK.YK .734&K]~\k$5cfsa*5(0"2u WYR,Øsu3 k%CQqFMzC1SOf + qD[ha(i6%FiIpK\ZFӳHNH4]*pq/ykR&l ^8qLeF_VZEFDՕ4B]j`T2| `ȸ>اmb4VKD>ـm+9ǧd=t4~ٹSqMrVc2ZFv|+62eQPt^]_ +ڬ;MifǩvRhCl#{ΚT +3k#8[KlTCCh.e*7(M0 Cޣ\9WB~>1Tlzs8sCdQF)#:* jާ'ݽ{K Ku_Ih+ڏsWȳCj*@;kw}=#Oeg\ XaAqlP/)*t\ǯCYxB,ulDz!{D-n pj)M3Q.AW !Ɲ!D!de}&$h88x9cp̗arI<3t|0@o ׬_Iŏ +Q=YwR-F}>Ԡ{c>33j!4OF1K΄Ec6ѐv#$^l`ªAg'xg(5!1 y~LavB>X'HcV[3.U  v$Ǿ%l-IK0`[S/fǰҙïE08!yL^mWlg*_p^FgEJFv_aSc|wh`d<dHZNKXD#ӖP ^g3~)6K~'GVѾq0Il[]Le3m{0k2iSI, .L=Ge+!fMqTOzhݣ&*8;͈*.>:ĈP=fM{;ĘmfMvA70*Ũ\fҍZFMrpz;ⅸv ԿLMdFe0,d\bQZaa=PmYy!2ÑD,H$H$H"۲l=I/9y ʻ/jɴ*3YCqv\ܢSһ ?XYKSe^9 #Z7*T`<)VC!(#(RU:3ovu&"ZhLli̢9̄Leq1lUzA;|Ҩ1ܢ{0ytCVgnfZ-k'4T-D^vS\~Tuf׀EJ[.?K2ac01t\pll4T%>S*Vmv$q9  w1iEkB gFvILv:ϮDI[W:bʬ1`OGI75Խ ;d昱$Asea7 M8\/U,5+]4}HZ"(5|Cn>2BPe#WY\5cwV,FMSeH.o~~GGȫ6BG>Bj[EÙZ2"xյxed(.VMJ]EPU2"^ *Q1#~1`߾DUp"O|b$xxe*.` SS,ԽŵhW~ʮormu~RڀQ[b=H)CbQn<B.LE ]\ .Wvx8r\-EK%y*:%2`i #ΦyDC<L6<'@YOd?!"Š[ϼ~W\Yo `nW62Q nT!5RIaTV}^S< +5Va!:mRj|1mvrtW.wҽ(_@mi_o%-\T(07ܚR0tF#+> _F;+B;zI1 m-5QISMՄ'6lj;vy!}n^ F|Y[R# -QCO:+kitFπP !)x#C鍚&o&!}c!=\ҍTYPt.̓fRnD33`͊f +GS-<skgXK w~3ېn;Jse@zzRk?Ɩp ћz>A(D}NMX: -;#DK{]*?61/gɘn6)NpWRaW^KKO +v +Ё7Xvx>( +{k Kυ,K, ,{pXÜ Axpt;:uC8nHa'ŝjBM&Pvq8@[ +r} ^3{9-kt ?lb$r ?)o:95CbU<7ObHDOu!_4_4ڊrWrX0{ rZ5hf$g\ww︹Kfezp)9R]&2f1NYF^Of'BkOVcQ ][$^a e dfȱ$g(Ymx/%P"K,c22:)w`Rf*9lIVN@.HX]#y2*InџΠXCK-Ūm,Rw$@>hm\arm0o8,ho{hji@wTgY 1C3:q4[cV OI-^=^aP5$lҮ2O菞0ƝQ1SxߖÔTRQ?,+Āl5 8@a B^%Q땉4xV3ιeNaJ`)ß㌺a8q]cДTCUw[|}tо[;]):?6^ +䮛T7Wb|=&IHY/;6J sj&wNy$s=@p_oўͷz 7RWwwc~rq@5~x4wЂZ4ۗ,lo: H}!;hj8It!9ovwWY{^Kb\ Ї7hP\#D9ܴ@^]@~cMs(• za4F8(,:0 mW]DxɩKXt=nBgwWifFfKum=S}[+zgs&PkyW6KvD˫?Y/b/A_?%iNS;CwDPs&ų|Χo|8ÄL.k NYPt8gR.7QyB6o6o7o7k0H_th<# %mkK<\)cbhcZ+w: ͯFL[XTҚg$DBgi[N* Y7H2ygڼ8IpO[X^AE&[- +w*a3rxR M V';cDCjUX^N)ž)Y.5۟F]pqOksg6%?5C`ZH@n'}{UAieb#:-^dQjFp|1qeŶT"LwU&1:<[i5TVďШZ紲m(+vB]I&WîI%9t1^v!ZqXu.T`ci)w}#Eg6ٴ$3$ 3aQߣ? j0fp6AsF[pLU%ˊ +u(E_޻꯸/ jv&)#, H-iR#s_#*#Y*QxiSd5O+gmk,y'*S{ Yz%8Ճ.7)V_)J3StO+>^k5 }S_Pg$kՌ& ĈZu|x1RF0}e2Me +bqE4L+tp,v^-H^<3FU$MLmbi8S]5 cZg7$cMi~uk7#UGwBZS:H2NEa[΀tJFRj7ٲ 0:m`?xw|g@O=3(ܶo 'a0(/lIV0NRun ֳ,l>?6>~,\oNog,E?K.2am3CffdHJ*-=i30岧r5uy~q(QC%|@(b܏ŕ1 -Jqf4\!6AS 4DAokߙ<вr!!Q@i l\u%>~=ÌŔmܻ8"b0!;BkPn B C 0. \S -<. _}7۝ʼn5L2&BlV`I"j CDud|yzGrsAq$nI佁\'sg5R&2;zOjM?#"TbFM#5MAR Hޟoz5CJ<}؂Ym ZAcGd'5V`TF]x03SoMxw82tL=,{SoMtwp;67eNOI{@l)e^a*ZQph%F뉁sS~BSf6 "X01od-=(֨eD٨i=YGG,dF|6,s;&1v8Tly|]ש*Gb$,EqB!fvj <6Kɒ` w5H\L!Iy`sy\m 1DEe9Vlǘ{(ӡ֥͒EDE-kV#,ò@)"hhY| +k[\(D RзzVOM%G)݂{SѲ+%0p IBu^ }{{ASTFyo*q~#f(urGetĽy8cNYă+WC)pAZ&'H8BB[-:CbWouX&tp"3[뺋I-6/8gf:0t>p3=f}Al>-2e:[lJqWe#għ:k&*IpzFfGHu&g2b½Rs<,\Z\fdQDLE)FI:X.{;c~WWNmTN5T[ʊkP2-?!:/%C ?T(+)pe{1 9[mIPB~A2_PnF8Q"Z.ϟO[ uۃi׻H~>o+x6:WX)IrCv9yT"~8ZxH6Z痴q98d#iP]fܻ'CHkQpli' bJ,w>IS"IP~mխtQ!@G~UUfeCv!qm"O@A=]^]O.p8ȫ@jqhMV_2 hs*/ IݷTi X\ӢuK^ҢfD-@C j2o_/"!/o@w/CSBiajzi+-mS';PrC>g,8mI7MX6n4PnRO36)˳E=#vX@$I,dؔIā;&`wj#Ü {z R/ƠyvƄv $c۶m۶mm۶m۶g^ϻ{!oJk\śrɱ^g``}2ts1t2N +1dZ%T:5XTY 47A5 N( +g *L¨_u0l#ia՞<+ w| 8DEV\zN΀Ol@dUY+ #>c#{vGf +9]NҡfJ|.@V\'^B|i]&r!9γ<;#~^DItIըlJ9 +\r9F4:K7WK2g0_{l.ސXI1 + NtپdUTHkmnF^EGq˶D0#}nݻCS^gy$a ؚY-aNՍqi:`kM*.|\_!Z-OC+2'HJ]b%v8Q3n⹙F.*;Ub l40L+W!*)ǀa`,2HsQF[F^s!mx?8 P)xR(ۅmQ.0ˍS Sa䫉.6cX^3^m+~ӀmoD\Glc<7/!]y fda:F!zVL3esxfySƯY77m~B&d3F1g:Ygwn?(btKp۶9δ7(Vo\*`n[:Ze */}/-m30iSE;9 9wj W, Q9.<#CB&وWqOo:u6i#m +EFj@@@@,-- d ˾j5kudq_hdtHU+$VUzQb +6R6˵& [Q]V7O];7 UMo^r~b Al00i~,VJOĂoUd\9zg#%"&TBG 5$|Bs"qHԀ|dNs2! yBIG +I/y9Hzw\>&)$:hwš-:_S!rl{VqSH.&$8DP1ey3v'(ϔ" +Dy-1(RZТ\XɕS\BuQ\|1s[ouovL$Dvc*S?I."MoӈńC(S:  +)oe*7o:o,0v4BcD⒴pԸMkFNDe,t^t_dU&E.<5At)VElhNE% DނdYȺk5 Hwɱ\ڝsۊ&V P9#W(Z{Z`FhJљlhQkF3IN;Mq2 -Ka\w{IR +){t_aXryr+DZXy&eG:a}H؊kK;b<^"/8De*_o.1&QEMJ..1puj Hy\ƟK8Ĵ϶pHt?,0(4 2{Ș9̘9Ј GŵRKLTX3 e&2PC%'6YDwݤUx¼\fκq}NqCs|딴SzRrXx .{n%`rnnDp\ʳM= / GiS0yB#"CDfO(T+~tL޾$@SOO)tHh󊪜ś>c4UOaԸ YVW;93=&w۔CT*minSЪm$"{{|TTeQxѴ7K[*Vr\\;MHA*>BwsZVl +0,RFyc}~aG@wb;R潻V_7xJQxdVwb&QX~ν36`f̖^5AWGn9EPs~h w|9F!MwQ/SLtz C0lPX>F*72yfg֛?BN"s}Q)YzEFf6z\us (7bH&Pu_菗?_Gp\] +܁%:G}FB+0m:m">VpXwMZǘ.M;P}°R8}ưX}ʰ[D+ݾ$z(, +N +kgޞƁ4 4 %3FX",Lk*,+ +MEt-}ܔLT2uZ{lTM:yNA&Mnmtݸ]]wrs2Gc)+)¶*{2¦ML*,fs4:@ּ1$Y׬ zo.z<2dN@*ΆdeCs%PAqˬZ霄imX1@ĵHmzxHo3,nK1Rtqr-S!H]t jׁDF64{7.)㦕) 2.0ɬӦ-KiU7>3g#NwL0-y'2V,%`ޚI0搣z{ɑt +ەNpdiu߸jP; +Fó"~s!><ąjmUd51N2V6d_H, }H@G-th7O񁳏 %wK?nd/Q#l" I2:_PWs|g4֕V3 $\|}Vyc +kLngξ~I$3NGX>ɗ ȶX\pL2 D7%KUk .#GOJݞ}´\1O#cWRl {/&NpMT@۫.WP&\>1!MjM>yYW6[dr(:URgY_b?}u}Rr3~R◖:[ iSwfeަ Zsˤu5z;| d4Zxoӟ5dx!KQ(l#6FOp*a60wY`1բ1Uܔ4va?D(_)Qˈ(^rgVJZh"y9 ;ER.E)r=%~0@ƭ3Õ_!yq4Q 2 ~D3k9bP4l< (x* t0` ^%dYCNC-0UQQ!nk/ !(D$.S-Pma@J%j F{_9_.̓$*-owvæwz{ROr (q*LgSc5T7YXެtŤtDnei]PLValFvj$P=`XxV%,ŚY 2gϬ8lVRٌf(wȶHGrvI|#]vL A!q50dʎ*-R"w9P%]=2VwX6p"{= MpYu\f<Fv% t2:SASejLG'9' uMW݊^9e4c>֒%`y. +p,K,B\B$e<+3Nrؚ LoeG7@?}o- # = ."q}iAAB?蚰gE\ 'ZxR<"k^&D)-6<[+H8J!z!Ϥ n#Apv睟CM4V#v "(O&ϐWN$Pdo'g6y6;<}6v ?nY$a6W/äqUGaxY99>,AH-mP9C>Lgpj!U.2(e01\/*bfA8G yp9 qvX(HX>GA PsBT- +LoYr/Y +9b!0DɄ X?Q7.,H[ U"׼юfOsޱ_| +!9׻  ]{0qI2]h&9:cBo/QY_xBO0N,P`Y'Hڡ4YGBc_]DK%5eu̥+ +Z䨄=E{l˜r{=f2b,Cx)VטY8 ْX~fs+偼$_$qYI@LʆxjC|@+WnBe:Y+k29q1;?-Q; +u_sL,m10]zr~d^ +[.!X)j'rzۡrTFf(lh3dgZ*\-UkڐK>x3dfvmvdBm#y8c7^fxm]ZfI~?}4/A.ČmKkiN+m]ma+TiSc89gApqu}P](}snH|m+ӥiL%ú-c&'Iv=xm8B=*w|H  &+} لYC~$n'ͦY@MKrJJ醩t6Z@1˱4<Ӄ|MCզ5^9?H"ӽe r$ߺ:gYV"% [z$h;e- A>5{& yvIh nJ딀YgaZS8֝7g&$vgψʸ>sE)\'C=h| Tciiסx<{ߔ~MoP9po{EZS^9eyi9-v`|MX/WP,12,y!)Q2t@Ey٫TbzכWA ⎓OQ XBÒ{IZ"*_*"r=`ԗj +sxkAI'hyrbN%hdRM_T$xɍ6JJkɲ)Hˠ7L04{g+qDܧ?ha'6;sd!K䟁H3OEy~bi!=K㝿uo%CK+gcp]X(fG[{cWxʈ4w%ʸMPQ0S)G`cheri=(- &(RF-4aI[QPıf",8̇3G kWf2pU=/˛@!on0-hor~Fdzx#5Q0I$6Vt82|xrfS"Byoݥڨ_ç+&Z0e dƃltr9g'*=%z5f]IAX7WAu?ӿz8Ŷ3D~ p :tCSv`‹n_*pj2E .EcO(n&OQMQqkhL5?g-^6p4# g8 +Wlt>fqvLJ)[`duOY" 9eBJjbɡ\Ȋ̍"X7peQ-mwW K SSD6{Қdf. 6pL^0K*+,n*Š-d-"p|E?  )JM&y'E]Ls(IZX܁A+adYnavX6w(S {N{N{!N{:3!9Т"=H#7h~1p~?fxS<?Ygq< +6|=K_fk 5F-tBvuw}Y{&q?QH~y&g+6\u"[I})>8j*JWr ++|6$1Jvʘp\cqi +}mp.j +u3Fu!ΧWSv?E8jbcnJȑAO!9hڋ4U[qܐ\@@@@m8Pg쀣Hc8丬\0Ud\9m 0&ZBk>m cku帡}&0h| #f3#W̫@rDc6 oj`:lOօr,^SD6Lt%{Oq|+&}5cRwZg+4? EϺTAq䤜F$8uutbWӦDV讽CEbїS%TIĘsq|?7^;iJAGB%^g*p(@Ǫ{AnD,TھB^o='No.19 -֬! M8-}nƷ a5[vgy?!XM@ T5Axo/<Ҙq]^IEU ُ`0k?^E!oS|Ρ zLM 뗊\t`I3%WՖu_ 4/b3~'u<$;?L(.`tvC^pkS_)!*\ߡitGY)ٞq'97tE*gJ:c=u c?0|*~vMuZ/X[ؘXoڛ!3uduoI"M1RH [[Ŋzd4=04&7ײu7nv|{koH`n,HS'pǨTGUToITejȣ΂=]^0mu2HNbFGݐ1J} Z>@ ' (-x,4@ofWt R&"-[/k#p5|]CpώuS%g+l|hG +o6͞3ǒS՜kh}~-pmy +V=BVѶ[/Tn'.Fϧud/`dEco;s d`,fP"Y}1-P%^Jh-wXa$5HSv?K! +Y*! +I *%p\TWZƄ_G'+ 2N28dzOuwtJFզ#%VԦb kN[Hl(@݃"zի}{B`@e+tR-!K|PC4a2h'H(/EU;'%BY㵺EϘG0tcƨEDaa˲&R*g _0iqy ^ZGM-'w^Nm75}ҝ~`b%eJ [dOF't.î\S@ VxyqY"7w'ïZ۽)r\"z8uI[_i*?J%T--]ӥ)!i#OSȞ\W&iI({j<形FTXVӤ䧲|nTy J 2חad@gN:)Jۺ'.4fTc0^ĔBbLcWP'Q 4ԤtLy5&jE2Op G*fֶl~A,3sg8nu{\W9ZmVguErEZz4|X{>K!pT V*2;4-mь3qFpQ C-SMxy؂\c3=cwdc뱟Α*z8ek6 +uY5h C4pV"Q1~dCNU)\F#Km_-}I\Ka da^ymQk%6]X~Gn-"C>+&n n9-WS/TIr\ڤ=s*|M:.6tpk fjL'N(.*7Q`= +2L%>@Q4pŦ`WxĽSǔwdO֦p(E*bh\7-f jƌkWOGt%1)R*s0tVĶKZ:QL3O&BPCmW)bK*qYԣMA+K<ݓ"6H5Yn!3xof}tooC,p~_B̬a%㎁-VNsbg=ªxr_r;n[=R1q0Ri(3$d! D1K'OҙJ֎EShC#_KË.PK +`iEvrXWmc0IXT/ռ RzC jzg7?9 Ss|f͉Z媞|N\&#.̨pw\@NtK&8ſNSB$ /ղµfR!)$4a(b)i;ZF>45ɕvt &@O 1MZdB?@?p2c▖$;^μ}Y2y0bD1Ðۓ%,JEoDd$,0Pd;AɌ;pm%F5Ngd1sCMkcp +35߻aga4:`O(]w1ԲȀ2cwsIKX4iR0v4zb L㱺ыM-936wGqy(칰ud5xa,z1:z5>-j^C2:"N>s3qGfƙZd{9bXv˜4EEVruG#y[N @[ SW;tu%`(-iyT_kmzG`YJ ^׷T)ǔ>ZL&dJ5.w +!}!Lynjj(\[ +"KY+dMgj!h,yD=)I8نGip3  ~:6nN|Ɲ$ T\=+ގ;(=F6w +p䜺V6J;^HOuAwfhp3hW>fC%`;_(c>,RG3ƶ{|f&J K'R4w5(ub79\Q{ׇLIw>MMi08ǁ7 |+ߣ-Z5Őx۠NF>L "ƝnQ=VYw|4Đyw rSS|;0Y;z:e:XaԽY#QkAaVcԋB(ʔ&Y| +•-1ɷҟZZTYݳjt)wpJgc i_@3 P czЃK? Zl5 %#=N>E~RzX]^SCZ+U e0:L%&-=T#T +v^dexE#Elx*%47WWsG%w.^ʈ+L K:67Lƃ,cLxf{ .g f_ur}$\r⛬ڏ3TO> ! MYD:TE>G$1kmTj>!a?={ŁY9$%WV(۴4N hL:Ͻd;a:._:ɥW[+B +IթmoGmlAOluzE~6{Q:͌C/u +ȭRb5,IKoo$],?k +=]tteIJ1<!ԮRJT^/gVC=EM~È=,]4?XGP֊JpX>8 {>&B1XX78F_^X#JO2Ceys3j*ـfA+jn=,TCR\=Vu#6趶s>A#.lݳ8THքZ#:=p{Mx9wU[;lcc8m'[۹G "Z՟e>!F> +2`zvE֮1d}{ǃ*  K\1n8d'ba1"s.^دZ1/=$|&͑{$i}q~BPiS?AOZ]0跘r .&DP6o2#)H3B9IJTTx$/Þiplv|П3ldGݱU@~j}{9^cM=AD$qF}- z?xnhh\ô/"vH4e DHލX $nfx5L'Tgl*tm.EZ 0cri 7e-orLEù?}e*e#{OƗz'DqZXÐ M +tJfw7oJ oF]a gw؆ɸnK}7Hd!΃=-l^G rR=V8&*75A+e뷋w{л']9\2ʙkvȿ`0|A8~bXt1N0lj%}1M%SH&t]6*mFc],Q4>`r@)Yh,GohM0w!-Dc\3n~`TnW3f^+"w w_\8 &"mA]a_GS;S'C# -~;!6q[D.% (dɯ #Ktބk#з'.';4y>l0z{I!z `ҋc·cDœaGGe*͗u#NX EGsTa8/X%?*~`4B|£ +EbXO~C| X؜^\^|Z6tQAI~`m[lNuVYP%ɛfLB2Pw;m&d6"qV}If|hf\sx@<Ćyanlw58BX-vLEk.7YtF2ӏ_r 1sќm0CB{Pe:9M؍di\ +X2|q&;tQ2o.\fi&@!A+,/wf0s (C-(DVlE/v VFIn`5cb2ĊQ~ R 'K2v~2vXUOj#MrwT kxC:9=pF7E`vdZ[4/߱N^p\|̱ZrVL' uuӞ"Ky>uz/|V|]EП>crZIr]kGjl3A ǚ2nc-z7& uFMFj.6G{;\F=&E~!? @l~k5|'r{.*G@Vn x{e7ʆX?̅" +rfg#\uAqFfo2Q- CJg yt.C~W4ԖCT4O#hƄ_o]׷{qSͦ ވϠ:_pP(S$ө۱}"/OO`35;^TKڡҎrʒgRAxPWŬT1hxQL|V?"_O_3 @jP((kuS U*4uXB lFךu-Ǐnf\]iɏzy (N"cQ\$* kv[c>Ѥq '/>sL (j D%v/`Iug8 in W]v +&nq3THZCnH#9䌾gg델l1vB{o蒃M4lIaM9J Oߠ`Eצ޳OH8Jv;~\R,_ϐ0_AY}g,=rC +&P.+' +>ъ_#?Ju`ﭻ&:J;˥6Ukyz1[X7yBm])U|hɭeTI]6s\L${(X`WȩiImi^Pb/{]D +рknWY-S&y˶:[ĵT0KXQPCG!mOyQI/!VI5oΣ9kD$Ndb\0Diph +Mvu&dA7I^N47D…Ԍn{&1Q ^atN?(qVbOb `SN睖)֜-$2|Fc(AFy0UIk>~T.DA\\H <$5 /8I0WNJ$g$_VӤllEk)WK #E*7qƙpCD) o>G_KU4.BnP :جp?'ޒA44Zۢ3vnUnUp{aܵ>^\z"-jf^Mi,5ՅSxm*}]9ʳ/ 3ώMAQfo1pfMjF0*+?ʚ>[W' )PJ`x Y63iJ۰``,ru#Y)*Mn=Ma>x9Րr |+2scc{:+ɣňU:npڛ-.]D+o ('fI遪E[{JP^Q9;5#e}s7_ by,\xxv0#dxF^ +;nYײdd_ɴzp9@q 0ĉsN0;.HQA:pP"[93-!, +O|I6dw[l-6J^;mpq-;MK\K'">cc{}đb(-w=|aSiV/XR1o]#>70BcWO~FJ=ܖթq<'9 e +KD]#"|oO-T%)QƢHPρZJ%EhddMacKh/gT:*yq)E ټgj2kSG҃7|o 5 wq@KOǎ]s{CTv 3 `C*NzC հlT_Y@Dqyl, [4ov .yPs^:\XlOEe(ᴃPQ5/+"z +j{^CL_vM~xlg?C˱xEɱeʚ## ܸ$B,1]iX=k؝]mXC V7z%Q]]WZ]]kuY>GE`kL$' X@B?K/u@&‡%j>d:^ӆԲ +ySuyx({׏ 'Sa[oIu|SS ܤ@-Ui^ bɕ4s#+hΨ d/-26R=pœo_4 7ff9ppYC҃/̷{Jpy]J`8\#%cM!4.DGƮ%w&_h.c0|HL)Z'h43*?RJwJ"SOI0ɝEv(Ǡ*nl*(xMkTrkP&EXIR/$%(+je?d>)(T ]l3N׵qXI;-9d627[U#@6x;o6^jaW4vpȄwh<@g>NAr`!<≎&Jp:reVƕe`h63ָg7\}=[s(t<W%%UEr62!p6" Ǹ;EgIE)q<9in8;R171"VqN]A/7eߐR\bNHslca|CQ K(9 0(:S5Uݛ")7JO8i*oGmebGsrw{ + 3+o"i|A|\5agxVEG_nmt6#Vr FEm7祃B! +7P2˒7ao(׺0<@2De`o4?ۆS`qfok0hq0s{~Wg<Y|oݴ maSFf3YUIJ;x8u'\PRPbZ솼n^DxҋGP/e7"" ɪ"!Ni5[;:-8Xl$7%:/jE6[ۿ~G+sV115 j`J?OVS敐b%,/Q<ǥ&:>_03@?TG^(9 +ҢOuiX&:oKIcl +m (iROc.ff9ί¡`Chb)S$ԾhL!9۔U +mξ(R/Iǵ{as4,;+B^);7k.z*؋,'T^ Һ0¦+dBO< ,(j'mZqwGd-I\@K 9oS(!'QՅej++]xqHBk"D_7)9a۔g,JBHXT>Hxh'<-z<?%WE#om(Iu:dQ휄K}#{N$/6GBeZe<(9 +='fQ'gY)D +I}<&zt*F!0y<Ć1vq%3gY;,:)QI!?n)ţ0y[(JJ|H> 9 +ݢa="k3f=Izń,wE~?ɦ$1}d.!y +'y نJsXҼ? +hyJ#ǀht#?m9>F/w6?_,m*7¯d7d%n5\PF:4Py6H-ZϮ/('! r~*'۰Ag?܏y6>Ovv~R3!1,Co[ :H+J}ۏ˂/@lOۏyhqMt0V*<Lצ`hEVBKɘyA%Wuƅ ۋ[4"h.Y.ܒO6:nNrwȚgsW$ٽ/;šup̰ y]l$*2{&uHbX6lul2\"m&ҫ9JNYV?v62dR%-;8:Tx+=NzA')N. KWsY0hř}Â3M{NDyP&jXs~q2:Uj щsıB +eVqPTZJ *"BSQRo$}@D?/i/ FGx<*LJ(n~h{^b**GbHa*Bď)èjF̪`+ࣆ).݆,6@s'Ia]WG >e[Qf~2XbpG.\+1ّ/h+0V;=aO+cؗ0]ZgRGQcNDҀkz;cf@Kf*EDw].0}BH_ Z9 !9u}@70#Į…?Y9!7"(i#ʴ9Y JJڨ璣Y혇CL84@!"8 +ԣLi +ou ޚ^0 HENChi89؃UTip̫D*Cdo)a6BȠ&!4m A5UD2w^ I9ff=JYq7xG]a!vIWyt(ujx>(sOR%޽ ?4O,2~o! V7 +%$ Oo'< [ _qUĵ]w%Yzݽ_8C}Zꎩ7H%rչQxO&7d PFhΫ$]2"""Ra*4 0DqR=*_|1…=/sA{5:D?t)ri8p!sK|&ۄ 7[#r("T? /DxDw]%b2.VfoKnJKAB~> _[{Z@ءɗdJ]t/'Y-FEh:#b{X"@O'#RW~ AYТhH6acSXκ=ya(jA:9JvLbk)39y⛰ /QТWM]L$yba*b;r +XE th5* +b0TT|NV?4MgJ9j٥#9zlYlEeiC Bi4Jx&hoADufsGϪN؞oߎ*TJMC  ݲ[՚OP9MynD 0kQkA2\=V`ė@̷U͈{C'+UK6SՋ6GZ$Hd`}s8y&*8t((4\؋UjWяs]UޙN+\MaҢ\+ު/`'h:2Zx \mɉTW3QtB" Ip݄c}txjBmՈg-2ղc.cA4i(F r"9lVGI[BQy`ܮM뎝U_0@==:o +ڑ5g5S.ևu~P}G~٥ȵhj^&PBksI{H.FBo@W3÷y})2?,m}ˉK9:q~Sa`AJ,j7RF@:ה U뷤„p&9 heZH삵_*톰Yqs$Bb!vp)Ĥ9rHF *+'ޡ: HbxJxK+c`>̽ěd7pIp}/)W FZi/K05 +]7a߲mD~|v _YHHN =n^RvDn PM:)ùHT^Ct'&>{Hǎ$_'kZwY'R eĤDP&k%'"A"&G< + ᜠtNPuNOT&E!M6WWwg^VcZ;.%hslBf 4ec8_YBrKe$K1Dyx GyOfų5vI腅ء,CxbAky0,jKA\˟#vl7J23uq?>O1jձ$.i[&6  4٣ ۔INuU-TDƢ<8{"ft)I4$l +rww#"F 4V$[ay豣|)'azq4r23FRiq0r$"A'F q>'Hhد,RG8v.cdW "UUrP˴kKYХC$EY}ze2A^wk <*)'bm*v3!,w6'3e I`ڎDnCQ츃h@aT1- +"s^8ΞB.ەCS5CBX~|f kg: --!_}OlШӤ:m`斓&@:I2Rܾ鹇5Bs@  ){] @ƹܱzy1} j5*roiEee]wf ]K^տb^Zp0]w fGKeu>I:i-s~P'x&m^>#uϔ qS`mȨr-]?NAK/ ҙEFq ZjE&O5񉵘LbܱpD@; +h]qGZ)g4-'?/Ϯė:vÿ( +W yM)aO5\ I괾`{sU z+`C g#TIR,yU +co`Nq :u ԡty?J%d%9IG;'clslrmD ^l"W @wZ)f`$Bj4Q:CYrP82UpCz{n׷v ۢ)6՝m{6ϳ|~t<=v_v+Q w#[[4"wCv_)?M_1n>F92Onw_<|o<|M?^5OwD1B i&D5e7G [)6:/pM{޷JLF貌-`GqG7@/ܥ7 0Q9*S)a7+M*adR (`ReQ.֤Kk0JFK~4Nl=¹"ziA+Y,jgC2ڸ;/EpĨuPs>ֺ +fW^~g8 E@! +1^i^$ºlcX[V Z`45;M$ppݠP6z;`tؿXs+6{$$`3( t$^:g +^i:ZVAYY8Ėy. w W˚C:PGQWYX7*bh kL#-2kZP(#fyYܜ&{QK.w)KP  s{C) +8k'C| +8Bxظ2^Ċk-UVEboSB"xNQ0inI&uv6`έ`Mؐn9({s#ـdsܖǎW +:RT[SP&˔ax>zPH{ O; [maE:A-InFjgk>55 ڑƻ7RPuxH>+q*0mӥZ|mCHיȣ*_to'|[N7n˶4)Jj䗧D1GǍa}NK A$AU62v"O{0įh.Ig +Kc#ה\!Lt% VUjkf6GFdi/.fV͐(4 #A }f魿Ƴ,ݰ&&-ӾKleYT6Yqmrn"͙0҄@pYe q \%"2dNČQ8QR/@jcu`kcK(dYPjjRz Rͧ?OE]3u; + ġcj3` k^b3#./YC=3+Ҫ8e;,J=.o5kDk2bAi߅8 Ӣų= BrA+xy.i (F}dO@!$iN3~IǤ78ewbӯ,JośSb>ڨ|S*%$ Sϛ8Tuũg@\"|6 dvlrJ픪]Co;ꪰ~rE[\w\'l\r1uNu x˩׺iw ++M,lc6F!:AԖ zwBW +xKP,;Vl7z^W|_K'V,n#)*x1\)Ԗ;j{ĵ) |;Jz@S`2*3$.] +\1_uabzKM_%²un2SH (jD驷еoF\l× t؍Qn 6lY!$oqaND>fAk،rulAvIe]͹u-Y]}4V΁MUȦ|8Qz ),r\L%F*K4|IS#LbF=zx](Nozw,eI#NZ]3 Q\GeE{$Y[!p'7 5g&&z\1hpaAq=E,(GA\֪0=)q>"hgZjJ(nnҚsG2\MC=41ΡiC\cTY-v}B;|A$[я˪/ 2:z51 }a_Z Z +}32,XGhGdC/bI t+-:fU}[.֣RRyutz£[zWnڥ,vfŴRs>쭰6tZy;o8@tfmV-f>KB aǜ(zQ5R嵀:GQ{[o:ˌܣZj`SwUEWwo Π@wRk]Qu@Exr^Q\ZR~}5 NV%1jveQNZb$B  >#ΟBO `,[FʑnR(F(KݐZ3`׍ȶ~["~gF@_,i;oetD]>e +P2[ZmI+S[|m tSq[NK;<ےo_v_~_ʿTLK${hKQ[T^0R}Ir!-ɗ@_ +K+g/p K+ԗ_/~i{/]-@^wa.P)]Qus" 刼wp}w?ċ;d jw +1Sٝ, +p1g+Q <)֢鎶@=c(L uwS1;D x*|i\-fR0z! #&JzPܛ]?-n]\"iݭH;+.A_fRP gs^?b??yV5b)B" <$G$t0|#ҏ`>$p&NT+UGИqtqr=.2C3Ah2H61Gx£\qHĒ3ˌ4(Bp8Xr:F*c,YP %rɮ<-">@Nqn(+@Y׽ٽ{Κ',Kkھ'#fOal!*Jjm'П@$qӈclm[PiCj- 'ְa,BKT*т + z؈-RyqW79x&ҙ*1*.[X&+idKsuhZeؽ="K\e-:igjj\E1梖| =(B,X^5芺b/v;??׾Duf\Y,c$Ps9&G8<;k1X➩rm}e{inY293q'ZWٴMLA]򰌪v'dmBL"/͟s `^ԬK=]!?ʓ3omrl;d8OH1s"W>g %o/a^$f%l3kLVHnufZ+~D Cyud{V8mv6y`IȵЖS@RTZ|mpO[0(h{ymfu-EU +ݫzŽo^~&{KIҨ[R7i^8Dķݶ+ީ jKBTQٮB$Hξ(g{l[0I:)mr eU̾ W#ڊ0Ul 'AzpH%3/kU9G֯"R$ʼnncQG7`Z]NqW[)Őz9oE i6.^L6(VFUR5q=8a#Zs3GpK5s3m7ȬxuY1ʖ:-7ѓL=9Jd`|/N^)-[],5aC&J'Er֔ +0,HƔ դ]+ ۖdHeVk9ra   + |y3}onm2xV/Oʣ11 +`rOHD1R\ +L Hl P.t%[ihT+;tl&ꕃf![tBatBa-p~BG쒷u%R?zۀap&G;#-0Ҹaaa<00pa߆uү;}v on M +C j FВ}R0 w# 뒒㒉{s(t]sri5T[ (aWMI U|F +_rI$m& kyYwԼ6Y2n8}zu4KִT2ӻ-tvxH{Eoi17xEgWV" @A-%ej?BU:2i0iR.ueζWl-m@AJ)+%g7].< @Sk@OV muHW+LI䬊.Ig0T;>"EY8rSVdd^S5TΛ!s`hG n_gm<1 +ND`oCH8d )F&#E߲?ɾyq@5Q LGɁzw-f{=:J܂7l։K ypv +1 +3ꠋ@ +#T@Bӻw |9JH{u/0Of@龁d%&ox13_&;V +Z>ZyхxAx

TVBn@u`b4:/Re.Kjq!\BfЂ\UD&XJVKGE^ꡋ#ZQ5m'DHw ;>S,(8AdQ@ 1kC)E\ 2gs,J4,eNl+|:!e9Dh܆XF (X_b4QhcH؃緡7xsPfi$R9Ⱦr<&H->W ^@[R售AH܅1Nw؄fcd']sL"!z`OQ#_Cb1CGQA-QT:x˄fQ31Rwc#AJ_Z03jϻw߆0Ju2<*Rl$JsOh Y)ya="9\ ΐ|GvY-S⠃Q&߆=Zet98($*EPZeh$LC%Cl{UIP%UAb5q܆Dzebh$EezA1UH0/t%ZyR'p8p2q'Da"͡ eFC߫hCɶQ5+@Q9|2!"dab5yCW(.vG87ea|Q%wKp*L +_^\o_*H0R, J+.&@TRb?X> z0Ĉ/rz̈a+ĩ~8^J@ v@/?N^/?`;~Cd?ttظ~!F_q9>p^~|Aeo0:H6p(0\ٱ2 >~&4`&}~iS( ״AB[D&vd,Mo jp\[PjCrMJl\YF荳\%O9XdM4O0èHAtGiW"hM +Ձ#> c +,@?T}AYOJ?D!5>[ +8 (LՊUg=D)KS +OaϬ*%`N5^ 7K`?[%p[%`xm'q)i?>=[I1jtsd%pZU`DeD-VH)=\b5FcJ44ug"m 4*e>Z*1qU^( ԫgX/,&%hYըN>6 g[G_M+Q))S>7 gP ֨-ɇRj6@W)OY>,k{~};uDC؝~؇DE;V<[߀Li46㤼'ƋvxHo%5 ./C-!JY@ySdc GW7ѫRYyV*g>s(]9pI 7Cj+ {PYMOq|U9Usze'us5M8z-A + ~2ݸg\EAYQezW&vY4qtUWTX@JL>S$24S=ߣk #~p.Ķꃞ?-s.Zj Պdd{j.gX}[@'x, #qT-+ȮBK}XЍlcuIKuT gz??׃xn,c{{=|x1Sa,UWs*cx. /9,X׃іētHstK._yR{| b'ʲ7? *gՙEk`N C ;vgTS0m⣋Ok~\|b\|rB ٢7.ˋkMĕ kuD6%a>|7Ed | 0>.̃9@ À>_NA*1:N{`>a?.p $ +-0?3F,52?|1W@@lg8AID O\jOi^_? iMͨtsk#x\p!U'(>Ì|/܆n2-;9wa;w?`p~XD@o6\+y@bP+b&uOgx:6 +ND~Um~IY;z. +  R[ԅD?#6i/WvvT2 0i)J0(QZ +dp-mp3*]d_0ռy"KoLM;]=Io@33>ëp`ds$ +J @:Mt1S,ÍK0I!Bۓ8HISH%7(QX PyD(N0^#zftX2M)d z9ݿ4&| s%swayG(cH[rяmu!6ޠ\@ؔvQX >R9q!!Ĥ?pp$ԍ*4{( tE茆8qjj iŠcϹc[v`I!Dq42,T6%_y" 37fֆJ:f,&B !ߨ#9Y@18eY} f$R+ؤ7 LGJ"4cOt8Y_K;U.\>%¾Yp(:|Lebơ&v$^D+Y߮^w 9 U,J{\˺ɘt6L&6n$1*e%үKmw{N)Wc>zJ~k? 1[oЊmd_ϰ)Pď[X"N5Av0r 2Ǜ3-Ϛ4Px%Ae7\Jm:'Tv犗ؘFz{'GB(,L+` 狂ܴNԼM~.=f`7\[)cJ"'P|Tp +f5^lx7271v{\dtǵj7d>vlte(FΔ36/IvYZxH:5 =]Fb sc_lq.r\OJsMsr ǏE<D2/?Q 9;J;(͡լ]wsi5*ףZȈ#GSGO=p#ߏg,mRcZo>)66{TZ 0sD>ZSSHXzVʍVA齽t.Ux {g;y Ax:'4Y%]i0%2ֈx%x܄&7 h*uP~Jӑv8|(⽧ 1S* nģ>Բ 髵TPCjF8L3j(BpQ?ӈ%VMWkq艭`?twEa%~p|gS}EYՙ?+AGPߴ8F40iHސd6ʈ zn %6ډ])ܲTsRZECUv^7|3/zEȝIML=!NlO{QwaZ!6!BƋWN.W+o/ZqZ!mKj fi]q6:Faݪ@c؛ʊҤYb@j+[l[@h%_K7XB5o\n~3uxؙ! C{5 HN0-!>b>1G{~_ rB߲Y t^&quƇ9,nHo&kF +Z-um w,9*!\ZT9jr$έJM$?!ɢߛo%]TݚYM``OF??0G_'S΄ RY_+x8XCldSN(^7N*f׬ѩ3g0 +#YYh͓Ug,*x5QBhwZO_/ Z-s(ϖ>+@(ա&ӫҟ zaUH("#UX᪴s y*DtVH$,YXs33cG_ ؂Q v/:;R?km7z1$G/g:uJ݉ڨàD4Pl{+   +nFVɇ9Z: -S&;Q \Ur~Zn;zl]b;(O】XBf +*b^٫2%_|Wɀe*Uq\W$0 ^+$/ 0[y7xam &D+4:8 +&i5@4Fϱܓ;~$dv"{nO=NNXHqk`lb )B-MTW zy8Qx\_HϦ񷋁hZ5yh?2& 4<_m15@?];/?쿐wBA2l<fjRH$@Qj\S4Ȧ\i'1p]ʭ>w2f +:aп.ݕ"?{- "7}@ Q/ ;7X ` ~`>ᙘ@bp^z `"fй+#;ub BX-@mx*iv!,3m^/8].|d\1̾8/Bw( J%4K0kg#;50=Rֺ2hTel-_`,7S+3ˈ]Yk#j*8ua,LRc\|*3="@lY$p Ln)MU h(u01'E`?;h/e;eV -FI*Z߷)cMyIl/I=F7WoN5a=h)]߽, **>ӡTmk]q'x +.Qִ] ֢fJZB(C1IPv]( Zg,8ej,,PT|n!Wkin@ĝoYcu7izRh`|ۂG4mar3jA:Vּ:mwVB\xt-B27gҳ ]Ŭ#5: +TS0RY78m&fO*CX{*+wyPҷ ]m'n3f(豻}䎈!v" nXWyp5oK4 ûz7EHp{1R!a;/Gb،1=a9.8Ovfiyfy {=bKs8y8!_S?hI(/xNmѴl^ nE=vl|Gӷ1:th ȱ!vcz^s +>ՙ}|HV5=8DSZu[Q}HkHH}Ж 9 Hdz34\g;Ȫ}IFy+ 4?C77|(׆ +廒8]E~ٵy?ObE@?|qWmdfx[QrHy!/GβPmCj1;EĦZUA"XoI-I"a5C}@ۿ 8‰\sm/tI6x _w>ߤVg{Yɞ:hV9W[S'Kf퀬2O{˦KB!R6VT"EH2ހm- PC Aq(t% Cs|oq1{E6ws<|nc?@sbbJ̠>Cnʤ'!ިg"+B*f%f!,&jHӞQbprC\|s-Ʒ|ƇXO!X#\Za)^#*>#,T&e|fIGwKnyH0^K~Ԑ-kTb&@_ʣ(\*6ɷэJ#Ț6ӖH[PX\4󋫸TF-tzgžsQJQ0ŽS9 4"T:^qZ7Oē%qx5XL@ߋ6ABsLTS(" ;-.U2rQկv5x (d𭕱_< +Ǝ:M̗ `$xZ~2hJ|qD=Pтm\=53YXETKb mdE7ke'Gd]S;PJkBΞ9HꈈR#  I nyQ[gXݖ +oD2pÊUW>KzU 2تf_;g-X (Tw6)"Y=*y7og u5K4|,4#G1T梢DG*۪텋KsyҶ7!0*͌F]q9yer9|EK=xLW|em1 e/gMڒEDv ?wp2^#tb"MIaD6RTI6ōp>k:2RGmv3v`o/AIe#-M2mpWrPx,tH$-T3ڪ‚(, +ᨩLj4a˺bOX ގ/L,rW)ӻ"7epʴV 3NG>*,sd %f{]Eo2LD7[44z~.NITF40 +svβ?`5ߺuYyTX +r7/@%y M+x)=6P; sH-|ȟ@>G4mCr\=c3CoÓ ؃:Пm X.vAxl8@3?9&;<O y~יa5GQzb,JvڡEq+*Qd&,ܵDRxsDu1[GT/lFLyߘ0sUrc:[ 7 ;<L1u28ͺ F +c挷38j nGEbg&3u兦4̷l*edTYꃇdi[ѠYȞD!Fj򙒠;n[o~RVy*.gj)9m&!d2k[fཞ\E+-f"EC#&>-TZCOp_.]z[-Û}Uej\ƒD1[#uRUh`6\{!ɲ#y%N+Ԥc]Cgl;=`r* Z`QL A:뎰9`wC?AɒԆd4Ҧ`*?ۂW溿MT`~pN9Eu ?D߹hގFqKMO|̣G=r c@I^Q2&/Fe0T2 +f3gHd[Ɯ9eƜ95` nLa0p 9c v-r Z @1*0AgI[86 ˳nƩ@ +FgҰAеY2 Ơ9֛X;Q{ՁQ{ +W)9_`PE~(5}x.[+&9. Ѱ޵4~ sAƾ5JֵidEP9 |@tζ*Knbr6,ߺsLukBaNĵw>0K/19^p-d/sҿT”'e:Nccp##^oE鐅WE6R-]rKĄl]WZQҡՓPn,iK&pqd=[Eʕ!X_҉JQsC6/_swS޿wD+ʼnG΢vT,=SAIRi +B`U,Oz)\KӤdG.,D5O/e͖qXL1ːetem,˘`LG\f6Aj\/$K4(SiR\V b('Ś`{z1E\72Nb@Y޵Bf乎-MDLKoLRy*I)̭3weC <"jN%zBeUN].}^5Ͼ{sws WIC)#3`^]ȧA%Ah@Ym@ڐ&n[o_dk;H%{[ +$\-R ИbK}ɛ2kKՕBL]'sIa@QFɻhWmmޮdpT+`*e֔#8<ik|*}pjcz}  ++Q@d]C-թ(*91zk$#)z#ZLȾs MߩI3j֫:|Rd)Zno;o_V=vs$ǧͶC"_f ɧ93w4gH/-*ݟ5IT61* UF'@%9O]$h>nb!= ۑuٶ[^a> +(3>3q q`1 \ý8J?p@SxM ouդ6X5ӱl>6yuv5z yA"ü.-Xl#Kj-ll*-+쫭*uVZD1SSw|sHud,hXnԘFsﬦJ2<*-+l47-Q7KN֕yS&K{ebΦJOaWEW;Jd`x+zWY.24 &麕*a $lbe +倐4mU̒EC,K{EAļhUkA*gCVuB:&y/:_N!̜.p $#VǏi (q=}'jk4³FpF÷Q`o$|Vud?c%]q+f!"(?XHUuq[*$;A8J"E[O2fcj5?fO;8s}s?eV;TVh(7Ԧ-\}]GNSn +b^,[t¤Bρws#9˹:7&cJ4anNBljuVʸ法u`+VjǾQ:YWi`+[vd-laaFDg[1HOl/f +mBK܆ks<z`:q fDx;BRq .~Y"qmXZu(C,!@ [/R%10¸i Mi OP5 6:7y'"a1kka{5$ +ҋPAuH.֢3E'gdE78Ă#O9< ]j'v40'{1z + LK'S fFMz@tSgĮ37 DŸ< fOe'$Uq0:GLxK ̱qp|+l`,zgihI>i@J$%Ib ++W$VPR +ϗYPN!a|a'~y+UE6^|LU ֔9"PWV`ʛ(bLAWVDPJVddMxP-GNŔ|Qf0:GL唨) Z5@F]yh86KL9٧|zHNnLe{99Ic0eج]+b](]#a&0ż1.X&u@Tcl?z/2LSI_k"G{в\( ":{OЌK2L*fT +vjm.A TaUUJ.Q]I uP ^I ⠩^Ifl⓸H9)rvYUhJ6Nц+j>[:Bf* A /6ێSo:lӂi5xs ]j%㔖 p;f6OA+U\%N7qGYHs~*f +ΥH!ݍn.f‡._ Hn]Ir4!Ś}Ӫ>1,i=&Au#,&Bf֢f_7yCTmm+DWRio`3IGA=Nm|QOlM낑|' +qִkstxCG%LX)N3nX4d㪺3r@Y!?kƛrՈk擱5@W$ q\KFtM/>W$ eO#A]w~Y*797 ~K.w~O ]gu%}aOf3逩TiXanm՜ dL,)eg"URM ܑ֩ /[{ZY-C4.?8[\iۋ}0Zz1)Y!.(bM Y>}-/RaZ4QӱKD*6-nP[5:d"i=62u>-Hafԟ* &uKnЙ# 7 (>Mܠ@7A>uˋ> ^l^NFv}.t:n]̼QW'D]V ڑ6܆ $e2e *f*ltٚLbUw]ٳ# Q-Y&H"}l2=Ṉays{1z}~}?b#rCQoe?r[nŝˡc-oωE'pᚯ(7s:hb4+XCssy2)׀vA.2nw|4f_@zR.ۈ"?"^Q/9^,QXN8'>oWeJ~ &0C}CרvсuH <'CP8l5%/SXp8螨 +Jyr+y onb2ZZXϚ\p*1L*YP*l> 0lx+4QQ'!2W-vtHE?q!hkZ5x` S?$G eY!\QP⼔`C R%6!'ypr2"<ﯳYij >Hp2ՔJ??'-Z5D9Gr[nN(| _rnG|֪0[Ev"W7ueq È@C,Ls/xAwiqq PGJAhb& +l'$QuLe>VHO k;*NRswZ:A`BOBTRv|(FVz0M;˘/"xr~uK}1Jy,DJq&Ɉ*:%ńly\;ݧ@6C@a@sVsV6L?/˧OQDo;,NJ ,x<$5޲m{>QfHQy<7l۟mϯ$8\ vߢrK"C +%9ʗt-bWW&F_&:.X6d,Kťya+_BVap9ФwFb]*$xNF'XB13'jWCl/5%$7`-w=n B~h,&$B%`G᧘J +y#c{r8p|덧/._`D0Wej߻DmobѱHG#eܤ 0֖Q4~WA (w)QitOݠ%P8é{>uWnpt@/r;j69Umm?5GmcJȃ%;j%lKO\JNjR[߳Fxa0̿?@fjQE#)b˛;90>isW郟8tFpXfr}t90uf +\||x3W Ƒhukދ6aG?eXm,Y4圳 +gBV3a{}Kq!c9℞dp4+_g=KM8/ӒPKU +f)xBn+/x|_%Ň!zCe{0xŽC%Ka$L +un=t/-[5U>AL@YXHN4'jQ[_Uշᛱ/ YB:ecXD)|J1_xa #RH)v +{/=$KP!ёfI\O\R暆30.0$;0!䗳 '%Q*Ȫ)У,2A)B;/Nt +"!R5H#A,SKBF0f-M#e`mG jIQ#Y;Pp&'j,qq_!)%(?ɐ*~왓'd !dhB@a`I&C3 Jj)U-v4dbAZFڊvVz;3-:9~PeIsTH.(Xtaee]Q^5[4+wǡ8R$9U&*ЎQqU.iD^3EWbH0Df[]Xҥ1Q9+b[v2%*uKDi]a|8+-*3j^2rѣ=}ea,uɀѧP|t%RKZ.';.uIw7%n3}rw+GethFivFm봌K¡ۺ.—xK9S˔ںģs]}5bvFIQޥ;]y-/yHr,F[EEʹq_*~u:RJY+C}Ufs]2}싂缄`/$ 뼤Ds]&D9.6W~tw_xPq(СgAX +d&W^YXR!A}a5`W~Nr^CJ-СA! +ݲ$޽sZT|m5PVi*kuUԐ2m G@Bꦢ)cUM$q̼=zg_YC3w;tqǓ>sTW;l1 %l |ԜZW ENLW=[5&#!>ȗS=UPCf31򧦔@b'5PiWtb{}lӉ4DqgNjW%# fi@i!뗆8$d埡|Zn5)F.&tyt~>2}2C=wI})s>h_Y/Uc*^ bTҽBjeFfsUkz@jցbAxFMr8>B^\k5+МbztMonlE4Irg_!Wօǯ,I>:"-ᙟBȉaF9-] (BO^:妫.vUxFP.hj +#u7,cKN,\hHI1a máHk4amLa3E!aLҶbI3 .nS^5m*ئљ75kX7,D +bO܊A(O'$2N>!b!fP!қ+_l.:A\:XJs_cd1Dɷg(Ut|[9)1`@X@6;z.KYb0;WQaaK7HGx +aog`^y[XblB:")|]s]T_lX\ .d/qa`rCwq oڱFzYpVsDZ PyMYGHdT0c'P]b[eLҰ~#]r}ȍ>NY =I͏&:_0wfJ$/3!ގ}lǛFƱ(62;Ď-ѿghf"bO/cY?vE~FඐkYxfY}mρ&צH]VYqFcmP,X4t(sNnU +(E$ߘc-c7*08d3)U$&TtHEwhIUW=m}rPX(/=(|YyXWY62k:7>&NTXH'2n=ݍdVF#BA\g.Wg'վRsrܨYGaIʙ4˙T(G?D8ӱLb 0SPaڕcŻU- LKPP49nnf1Q/N2F"}VRp|,H+cSxH< w;q^i+ISc +:Zџ\4 yPӂtf; {dz*cN&HFenzh4]4nMhSc?lCgI7/n jFFOWTi)IʺҖWU|:t(76،h:?~.!c粍ah&o@='c7P֯`RG^Kh3GnsXYGB>(^#N ,Wbbc"?,v@8~ U~*}Xcw=m^N _Eh@772M<4n9uۘ"qBQ mR +bnD +]S/grsbqYyQ/K 2C sw'NPEE8є-Ǯ9Zڛ[ +*X\;׊L7@@]k/n57xN!񝉠& ہ%IѼ^؛;IqLDT7#wt)|fTHp*'wQ!b8cCGC{0V*'6*hA S2i4'> +ښ)* Y +'=5cSn'R")V41u:'Sʲzk1n! 93ʒT,E?;1: yXkoFsnGܾ wcOWjɞ},6UQǂ93+fsec8Й EF*Ќhp9Y'L WKng +zFfZ)aS/ Ҩ >d7|¼S?SPÃq%̳b.ygW)ϱp`o+pY&א`kiQ OHۜlb<π1ƨB%xJ8#bc{fQ'i:3'3&xG: +M≆V(\0w*T,ěpP'hFIp +iSRc\#E-,¾C0d вj['&LtgLtLt&DLShZ34$0¬?7TvƀE"JqF|ЪkEj46ҋ^] Gq58" iyS=qł7n)a ([sJeFlA=մ.}_auwyg:7~P:ThY$E5yF*yzcQ %-doEve+%Jߒä!M;|$6u^=i1`s;`- eOݹ=9Z :::N;Ff6 =ec@rt- ah)Vb, -jM{4VtJxڏ3IKZ rӯe$6 +v4 e[JZUC ulTg^+xRIЌm"eV@m#.䦰7g|O̵8sGٛNVUCbsˌzh6vQعҖ;2Um}8CX,C]7Xas*-F^\F)^(UNWL6F$dflxME҇ qm"M0qVB$O)nvD֬ۍܢ 3y6q nۘsgg1grcƱߘsryy|#YOͱyyzFP2TNR񊆃2vT'oXxju#$ 3AYJQo!e76q)U{2vbv6?tɎ6lM !s/>Ϙoc: XTWgumuxzKL+.3ObiU + +V*sOf)  "Aa!4dV$ə!jzZ5JڭI*B;ZmZԵ_{ɠ_'w9{͟f!T@ Iqy :~>!ɤ8&rf?˽Hrҕn _gB3Ӽu9CUy8u5hqփˏx Tr=`'җ{; н`x[}4ҹU =טgNmt?B?XJY%7nA92͟KEVBE;X8t6מΟ5NI{L`\OBO7 ɣNAIoY=yC[ 롋yu3v^ؙevfy>8zBc^< K.OzrS}?bGҭ{B%?L;BؽzT;>>Uaur=Mi ߆T?d!@8ƒ4JW >jm!TEJhDHP\y\iM![.R*|)tJk*Ä%K ^%qKP]COH%/Dms͔q L-v DU~Ĩ ETU**U[T$]=ʈbmґ`ݯ,r`܉8Ň'G!rM7bHh gk*AlErisЯ*BËUkQ4Xsbt9zddr_)p!\58dŒJs$S'Kv0$ Dy^!r؈WOԢI@Ө. fsjY?hтJ./Fͽi4BKiV$C@-4]ȜcX}7R`GHc,KZOtdӚ[DnV%j!E/lVt@8Nt؂ډo2GSJb#_]"}D*)\IDa/:ϔ-˔U(  kTѣReA%+@X$^˳ZY$h_s/A- i۶m۶m۶m۶mvڧ<~|ȊGܹbWZ;E*IWU}1I]jɉS@% +](d^F@eɰ_*˙&K4(QX?S.B`#>O:̞TyWת-]3HrQ; +8<2 ]Yx㢫('s2c]\?dm58eHHo1W+u䒌mݩR%)cJPZjAG,z1 xLTd`pkNSeedۻЪy«A/Fc2 a]zL)3%9[VTMKˤ;Lcw# ޜ9#pL;쉗(  R F` ¯(eFf: -y.y?cI1<栥+cP3oR $f6Ed#?B<}bf2 ŃKiLkG>X@TXw2o X/Gf $g˚,?ꌢBC_$oj)%`I2T^GlXCʕXncD ̸䦀lx@ SgQ'u2j#nT LilLݭ/cLlY5Let2GTD0+a-߬eC4VZΆˣmu*bX=ayI3*8w1kD\EǓ̞Tñyle-:QTbQp܂hZr_4E x,9+wmKq=Ο j=']*:},3QLA"RYC[e+ɝ͇rǞ:IӶwTi,USC]TnOwOE +cMA{IZ7K6"=]v T"ځXhOVܸNΕ!m@ܩl`;Wkb6>"\gYV?+B\TLa$ՎrJlkwɄWĒK*[£Nb0oBGw!%G(ZV兢M<^g=ǣ_r!\<ʪVԆLa=ўgZCʘU0/oI6utuև4QvKN.SBá[;zCYaC*5z;X6}A,G]!ƪ7UtUi|"kp{icwELڭiV?*6u}fgFsK-* v8IniΞ%nͯo_ +yʜܥ-E؉JVb"xJ /(xx~e;)q4mi:~]Ҝn萧Kx7=!f@3SG9ADV^˲ͣ#_+c[bv7*_.Vp WPL A(w{M94OPy~H +M/! +sFA L. B~/#2G§Ir/ؽ KlZw8CEox(1˷c?l\B&Y +g#V9ZJ$-Y`K Vd1%v~sؓI5h ?T $<eF1kp'Ul W)@uA /bccц&˳S`KSgގ' sGT=Qdʞ?6,u:Ki4cF(n2v*}8ȯQ3;}[ p /K0Qo D?pnXik Tlj +odS2}졞^cU']ylhߍ2P :s.=)ô_=0ǯ!irx<NTʴÆhӌQ$@sĻ2DaFطXoTxdoGGxɞ +Fb(v6F<< B2$޸X2HHG?x3GCkPPPa(1:dJQ½oD;dGsPV RX +qUr-aދpmͨ,Y /ᐿԩ*rPͯZ ,n}_X/}V~ +ëG^r2RQW.0Hs$$FdƵ:S|v;E{z }>Ɵ.~ezMgi-%J 6@RS[k?gXI +D-vk{W|XY\W4U8L![ nڄ=FLc R2N+ D渔![ڀ+sB_RiH;/ Xu AR>G*3psn* +mq$'qsG#Ңe713c1;竅@"x/FΞ!hDH&xh,H O9$Ul +ܸ ܰP u324VOfOfOL@N@fOfOv?`:VQ[91e 9`Y)ӕ1gj#%E=Mz֠Z4Qu[&N 0~;OYX!rr +h yƪ'Z0_\/5|Ip~+0 +u4Fr,uh7h |JϵOQ4 ws3(EM9FRغ4W^6DwN8eP{%o[A*Ҫ'qE13?/oGӱ4:]?:)(m ۭNaօNJeu_l)Ŏ61ĀBåIZDQu/#H?=rA;@t\ODS,.4uR1}dGp/HA~/Sҩ $.8A#L:e|w$۷:!ۤk@6;}=WA%L%ŵ +1uHat݈pJ7Ù HF7H-}A@˾$ƛ/F\8}Ɏ Dh&`gmAϐ[ )&'4%Fc('<WCU,\dwPn`vQWڐTU{yz}= +5-4NM'u 7%͂kS_%dmj( []syp[[k]躓*zٹ<;ӑx(yR$ٯY$A3ƽ>|E%1*iLDFx,SI'5RY/)illns zLW)&b%FCTﮠ}dTc}(S5}yٰ1w.(Rwf `IW,ڕi#DϘUqds7IM!Tcaiʼn6MC Wg)3u4k7)男.:$(HFNf+̠5{0&P&W6VaR<8?{R;3Vɘr 7}ĬH8gXtX)6]]= rE%#jHc@AdwÐ0 +qf&TjLu 7]?Zи^pLWp[ \cS]T*3;Vb˹!1ХCXGEM:U  JhqJhHFJ&EtIĴ|iRx7 mUABf|e{Y); +-Ff~&x[e֬Qn\6\ú&RPUb? +Fٍ'EsDyC2f`KA)q~BO:ʤ $EnD-AzD9G4}y]`a}\"ڝW + o+)f0o+bX]KC LeewBVcd?rE\K`IO(2l%|ڞ$;?jٓSa#&k}bZTd Lz:"tXADm#˭JGh "Z9"cA \:m22RM)y aAH4Y޺-2ʧgbj!=h`'l,-6u '!-NƔS6 yq&J܃]SQG&+b,4VS@ ڋ>İ2$b 5/]w- Kb@!Jgla Lg*%nE5]0'k`"0nho<+ym_RBӚE6}&,,ٱ-PҴDLIX#o}WN'E}MfH;3OۉIK0,[8I߲N#%A T?no%\ˡsGdd?b̝_[FAUn2VT2WCSI ZgA}C!Zpdξ>Sm6P8%Gj<5EvM/Ӻ:`bVty(C׊bxpŰԥA ΛEdΪpN O@&T1hRcWqԜ+0"#r2kq'GS]rpdtqg)49lӢ^f/?R{y`%['t+G+@*0=mX9At9`Wj/KNSPUv̏aG- &=3ђp2S> /:ɻ0|7& 즧uTY6CITY>}R朜zfbB0yW AOhm5AX1bNr#$k= `~Rt?VnFvc׸TőPܪF0t[h~9d3bsH t^Ԛd4KK1qЌ$DËZtJ[D?w>K瓥f +q҇.H6ZGNxMo,^P矝%lJ.`(Dx)~l#`=zEg2Ggh"_aj֑Wf1pDX#h:1 +w8}D,IFy˜2JuYQnD 4W_ꩠٌTL|AP8/)|Hw)Ti340ᝣ03hʩdraX`2ITkz^8mbӿ?-~GdK~<,%:ƢU}~YoWg "oK@ov7 q9|FOH9ek#~y" qx\"}bievy44CgmA6`2YVG[:i)>l{d v@ǟ:m1Qt^?u% ͍k,"Uc=,SV(|)Lc + Q})],2H}A.L> +ׯM$s@W~ vBJڙ6wŴlͦ[0>3۽|VՕ0JӷH͜j-Xx{o u <ث +-0j901obX{0hOKtP/kܔrh6Լ5[]hTHv*E\SQg'ĈuAj#Wưj̿@y*L\I, +k1 XWg\:fs+6Cų8ว awk1y>Au͈莂먏 Nn< \M]?iꮤN#gb޸ ۵+Vk"}DU`PEnÂ_C93KGw"=hWl P_8xu;3o'my=bQ'O2 CC G_BLޔ)G&bd;8R)\9smi4U}R+Mrf3IBT5wn[ ;m= "VFAWȬD[1ʓolOGhɪ5@]Ў퓥b߃B=D͍`0H0 K0 Ͽ)Z/nԙ#ޮ:>&~MVF*9imK33WStZ-}J#hm|MNS8@¥:uerޯ)ĺW?zERb@29_L*TIsq42{ muAp MsCZ66~x1en^rBʯ,Xr4MWJ"ldD~Ȑ V2,vt_뛻fCbpZ{ϟ:|b4h#L,8 'z[_|?^,\h1;mmuDX W;RU6>#0./)#TVz`h?>!*C ?}l3\AjCAH͹>m +!o{ -0Ԍ-BU S^J {~GH:SlUyDc5\^2ڲtK*N3DM'nY)NTJͳk~K*tE-2/5F75d?1CbDAub97E/ oʬ~[B|}ʜHC.#>(2{vO}GpIr D;̌ayW&Άdq)'eXP?A)D0#ܱ#E #fa RFߑ/ӹKy][}L~ɣIX~$g.n6gS~\V,E#44D_5e8XrNa?Lʪac[!VNŮV6+Zv}h+2Rn I^<?)D*}7dd>a_-|Sʶ'$qUN6o՗COғQÈްy3l 0^O܋Wx=F8Lx=UaH7sɆ7 Cd~7H pr_01#X_#GcF_x{tdI!ɛCrYWA, r!FsW]JA\eӴ`G2' gCTyOUˊe FJ)!0*8~^6!łB\{<@9MБ rJDt>hdˎbZbs2IZfeB=#[ߍtSƸ g'X}0^*siT>hL=F +hzLi05d=fL}x7Ӟ#Mfb'- d~ wϽrhCW$G]Ti:O+xL9(Swz)Lf{K#henSQ[]cf^!%56:͎gU>ScsZus5s)a|"Н՟+g$R "ԂǪO3bjT÷.88 Xb9IMx8G»uLrs^MilxCnU>3{jǎquvF77d*b<=Kd}Rhpf޲ɬrQ?w I,B/948[wHh8sq!N/Ɗ5 ,sD J6k{&D B)W> z8Jǥ=꺨]Dk, цfHUQE6pH +^؊ĺ.LFZc98_)6RfၠCn\iD!SjVhq?{ʂ +D2A^ x9Ut;0z Rʱ)z\+[܆Y@oo?SeXE 2mF%>IؕNwׂswݘC5S-|_+47Z.no(mґ,Sh81j D?L;6:)~W]u]ap1سG{f MATK֥Mc37Mb$H ãCW8@M]<*F aW :GCƮ!mWj\&^j!#C:,ңcnc9Cʷm\GPZM \Hw(я 4o$FpֺL/=lgs>ZrJyMT}8q?f|Hu/wA>oz$=7rsuOs5EK|U 1y=ޥ&H*H6H9H9H> +HXR9 bؘp +ױ_=7H֫-ѯGҐq1saZK%@v #s)ǫsd_{'U7/8!W*EܘRŐ7zP [w.~L'%Uߡ'0ZPrh 4RMU1UM{K7!:AS˜6 XS/ Ӥ. DZjDqUa>A1 '~yܡ$4Y]u%*1rDB(>Ğ+/&C/Guq$ڒņf,5LD `s=TbOn \dg/;H2!Ur (MqR5sf(מt[OՂUӾ8.p^(nEЕ؄.{ѾT^Q̒G|u;]ħc/z7qv+(L{֏{ɜ4Wy5~ ,ܨSQy+Tꌳ)z܌s&ӟ/i/H($It8M9/uA1R_|MEb1LŽإYe`g"GU?z1^ +K]h #(USn,O#KCgm1m4$wT?35!9lm)%+Z%sKn)I_Ӛ|:DQ9qJT1ӉtoF7*렣zC;HZn5|;)`/ a`7!(sq]v!i4T\W_%jYf&wN>h`ʖzGB/FȈ 3Ԡ,D@I]/<6 +7 DF[$CyUxCO!78$ ՑYI,rdIgV0!ZMU\59 ١ĵf\ {+c"< 2*Y7,|6 HziSf0 HJ9Asڠ:b@4ؚLw+ZpG'#ƓRRc 5:pnЂTʡ!$h.~򈟩UWOr d_&#/ךEʡtFZe{<%QST̜Ӭl~ +};"!zt$d*؎& 1%M%rici֮ur@!`.R"-|B1J +͡ +HA E1h;e??<ݡ1Afg( +Gu&,du5r/:iX͊ @Fܶ_=r:iHY&4]zfT(`~ToU zy."d] . @6KC13lCpՎM,6xnqEĪu'A! 6cTS՟0?[/!}i[[LV~B:|6wQ S!DBU kE;^`E3K&(n }Ihp7yh&$I)QSfޒ$%Jy Gܳ0-@ȅ&w+Z2?ӿ{?Ϝ%tvyp1GaLεΑ.UI,WhaE.l< q(Z_$6IpS򒱂qPTDg3Lk4tsa<[c2_g>'Elnӫܱ'0W + ؀: ϖX p?k7:2)!}, b[6of_4!iFLRF-#10{E a?[~'Hฤh(%/5IcNxTZ_lNK0aaZxK߅2HaI_œQ׶&֩wjz؀lHGöbemD e/P>?ޫZשG7i8(n\g*Uf 6X[ˆ9SeO<hnuVmI㬤KJ崥mGW-2o8fM +>X^j^v;>7q)Yr}nz=n<~CؼCږnވ{"B *B hȭBqZʤਸυ + `Ǒ!ȼ-.qL`f%O>B= GfQ|T\dc +'Nǭ-j*38ن <w+=s5X?m5,NWt[eu|F{³υFU;P]1Ye6&IQc[%{wΦIY+Ȫ$IzZiM("{N+,8~ÕMG|gw^~#mޒذ>ڛaǬtp&X'SYŐ*[>OvmP^Vi94źlAyG 3:@_+h֩n|.6SʶloDԂk&3Kdf($)߳C2[ ;5jGcww):4%%juj_%뎉E4*޸.8sPA;!ᗟj8ܠ?eP +b"?S~, +ȾGܷz9#5,b|7=A H +J ߫$4GDx,̶ڲW^볨H`jE#8)I0ʰ,Ѽi*=D6(F/(UV3@${M!Ƿ4oVm"V]XRGt꟫9OYLs!|[Ԃӯ;O}N^ Kwڷ_'-tכ~Dl(4ރS\6x]"2 N7\t8yp$aY/swUAͧ&gAx.g+?yr")F0ަ+U}C 'e]˨pO^pۘUVe>g>dM+z,)hF|tϺfwퟪTPe$m>oәD?Lo΢MoqkGyz%r"P_fR yŠ; jdE+|7^ Hcvg "8:vG3EFO& U27b4iR MihUt4@UF"Qk$s87!-d Qtۜfiod̹4/SM(;6Y\yI|vg,x+zW=2,>C!FM~BOQ)4+< +kܲE&&#d[|ZB)S飼aک{O +t.&]#0,\o7== :Q~81`R,rJ5FryhVjFY+<[~ֶ7st?j +Qʚb r=KZp12Bf?E(=e,= ]2)%Ǯ?8`UfWw CB%7ގi*o 縲#t X4Ldy#U,Jũ jB11zF>tQCaΎt0Rϴ#a!ޜ"YF=x1FSv=*:=xQ\9'g8GǞ]xl{fU'1ʢ"3n*<A*8`*;v`F=9ԾϿ}}-#2v%DN?hQD|7d4kT ?o jCT|/ F. ߦ\N~18鯿eco DZȐocpj8iX^h3jjԠB4Hͻ;ޗi>C|aK;/pC;3ڼDc9z(,Hg̘5qȕK Q`"m&̢K\#51LؓO>w~<#le:% -/ 1Kb|\(:]O#auR]X֩āۓ eZخl| Gچ ':8ץ*beSX~MGS (aݑr 2Tm\9WOlh9*rs%LX[4SʼnԽG6V|݆od50Fh'0\iӆ7黅oӡXLnD-tZvK8T}"m?5%? ʼnOP3U 6` +d2E+ lАi[e'ܴ7c~(cWzr$O@*g]EFO`U v _ovION&KMC9B:yZˆT%M37w`4Z%O'kj.i?O,r/ѷQI%E|Ssg +0誴g7ȓ ΐob~fi $Xh;oEQ'6[[Lv;MxXF6bqRݛrKH*!${tGzȻ1`=&K/)2ʹ E;{lB:ErA˿ $[_DM+[sQ9vEOC<MKc^Lt +v{ˇ텍M9NX7Է"m,>M#a"QޒۆpoQbOfuߢ+$mي#Ha&l-,4=9<T{x,l BN" d)W.y1muWt"HU7tBjd*9?)pFTs!X;WqzylAJ$EU\]VFce-D#$HL JK,KTbڰeJ̨/ZՂxҐnc(HaєY_dM?Cgۇ:paT>!>*7ӣΞ>7"Hcx͑թz-BWH2g\2pMTKګoMמMSk MeVȫ{ԄZUR61aZW+2wTKY$ " +E ے QS_}m9Tr[9x^->Aq]lZAzG=;`-XPmGצltvd!9 ˚Mo.fʵ֘~6FCHC& š[7b5"N`}`wgqJ e J%L,SaU-L#ݚ֝ 1tkܝ߂Q@("[ [?^|$00P1Xၰ@܃ Y@%z#'+|Nы[3ǫX',>y@i3ÕT3=?LTz52 J#C`BG;ó;Uy<ܳtU?nbGƿD|yRGae(oԑ{n[10gp.q](6Y#C/޶^αD% IȗZu-8%,E(_~JC#k6vk7>VGotuMs>Ae̕ ?rf `hϳnJ+Wc]6;?*9%按1@Wh7T^^oDG\ kvn^kHY3DyknHˈ6P=" L_Wod_uzΓdp7$Y(.bLWwRMM̀ѣ?B~"s{"׈P~@o;ۏ-ߣ)W>J.;1Gf>~^4dZQg刿B *(7$k&Xc߯Ai.}dwk$VD{^.*. l,PUb}]7Z'39v-֒|y9S )|| |(_ uĜY8nP4@ -FOck on5 +ogD$_v>D!UKw:թd{89B@Ii'9|v>pm8WpdPMȨ&Gmup3}\UCOF&D}.<-?Yc87LKףg9{'УES&~PĐXQw6Te)?BȨ&BԽ2#Mf'=4fa/xqi G">(@rD4c͉vtxdϑf +pswp r[cݪ +YՉn8"r(ti#`:` +/(ͫfĺ@WIpMf9`㕤(ı:tte[cCo6u= H1uXY=q#kZ5142͙cݱu~iJ!5 G!FKZ&K2ߖ9ւ<Rr }mhfbSC~s=[ahO3YXYImV9k2}o9ά:H&Kgb%7'B}$:h__` T;9U0"׾i +rNS/ܸq7EkDL/8 {@NkV$[k n[on^i& y!,>6KqM/P9F6uJ`;p~q(MK|b4| j&\:AbA=J8hҎfL9:?9LfYH(;3j٫;D3+;Gsr|M aPqS 4ÄrOT+"*bWB.Vq֪m{8qjk`Ut#Ռ-tLTZ?vnS[L3"]C9 e} gW2$޲H:'fA.Th!QG}3*{S1&L70Ya>|Kua/}e o mmҬ"l +&uGyj#W-5rv:6&,،*;Gw%z:y.[Vh%y3r\W ]eM'4븮 (I䁐%%PdzTQ(!5b :`PK/J?ũlKO.g*,1Hh4І]iv**o^-d:İ !зeD^Eb]=t;r*40==d#AT"S茭I[Uy}&^JfIY򙆪à:$7l7#*cAK)x-oKE:qObhW-n +rd>-2#6|i;jcҟxI #1y5/56hǔ4n+ث +Cäxb Y1w]y $0vAG̨8QLy&?Վ9էצ\95iFʧ aHaΏny\aJj.=Nzpn~cÑR@kEtpı8L vh{p4ʓP<3ʳ8wP}#$ 扽/YB֙LWmtЄ 22ǡ瑺3桛걛1 zi~k/ p[I~/ $) w<_!lՉ,)VgiG.ex/PWrtwS@/(9@ϔC\E F+3C?8ݬ:t66L]҇FfxLe"QD~R°VC-ۇJ:LvAW.vI$J"u|d>ŕ? 랔Ux+ (3iɗ&|)CK@vp+^v-bvtFaPZ5?b})ÃmC k7Ń܄tT'l K.8Ÿc>j# +wXiLQ}@{ 7`.e' ]^Il>aJoQKJi}<*ևfԆ{PD#clU#}S)Ԭ AC(Fn󾷂kځS ++~Nx4~c)8dX[`1v3Wj\ :Zh[T) ^al[2}ztO7SWom1]o][mvp=1O?>ܒ]YsG92s^I!#l^Fb}6fHդmCŵ*x J}k{\:g~Uā9;kF)mābD&h[oGSYU]0IjnmQ3[R0+<F9LceRÙ_q!-'`{s{!9y_M=J6c#VN( /,g-|]IÎ@[@ˆ5۞.HM8]@IVy*DNAǰ?ůbe&B@& lz@<{~J??qEz n0Ly$_4 k#,A,?lAiG`نO!lwhZ'æ- v8eyMQrV< $D<+-@^+1UxcGywx{bкy߷t07]rTǀ,tb{b@`4?# +7&_]IB"k[6hu/Q>v[@2빭KHDٟQp!1v(Qb BUQ3?{Rÿ7|dwM"X+>#Aup芀֭}CBxCݮ6ek@3Ў7WOϡoQ޷ǯo@'8{3r厽17=fv̇+alNLI8m(Muj^nL38j7/f:P9AwY][pDM.XTYQ!*;^8Uwޓ˖BEp_N} a AtXE#jƛE A:en\/ Ud`.l%?q>MJW2$/`LI9")34PhkHq8u_|fRZjPp13cK3돞 1e&ikNCC/ƒ|ٿN@yf;IRfYޏ |;4_I{ Kʷ^6aE6L梱u"TO]ӕ/ g!CQ[\(ȟ普QFH܇c?nHt> M[?=1u W!@7,ݽ&W}I?GU^Byoa7_q&LPxx}5 Sb/6-8P"-" YOEBkz ?6gwfs@n&avQGV(㿛LS_8u;}B;qcKBP߱Gia8Z[d1RK}\`F.꿍ūo|۫7#yelaOh}.H'.s:N#Sb,1gOD:xaiU,R"wd!Mf +q: E ߙWisjcцYӖ4x6Є'Λ9jYػS{}/]I5C@k^:VCF uO:8{/GŽ 1; @r/VhD誉82 a1\o194r۩]uC P? gL~WoPoHʘtܚWbɊC1 + YQX,?DG6 @' .B9ZyKv;؍|E/)?D})E q3DQ[pHLAbY)#i=x:+RJη?1R!lqr.FP3m`}VF:0ty+*·DʘT*S=!nQvmc# +[_ \ZYa%$Aɍčt{lSj ;>4Xv2uNvMi43 |7b?GW,?_[ےH,jx%M4z8l=2j*xǕ+JRmXM$4ν-ΞsR;꽈ܧs:|h?_ێ9(XGP>yC~Np{&5{M/}+#.ߑop SsqN< +f^Y8#k[4KKwNa9 "8]8 3kD$Z/[d(0wy^Gf8MGj,TobG$]s=Zbia.&}eb} ՜z4aW÷]4l_#KI#']\l1szɊ n҄<#MoU .sn*%j*1ܯĢ6/9Nimuj΁Gg'qU$.ng}|3iX ؝~*nH[/;EjjFaLUDT%⁈+1:2)EId,)c(#c]"|jM}rF.vhV YDOz~IV45^u. AKw.IF*o;egJcl#)vv8qWI,:DE:ڈ  +Ln3i^UϽ]F_d;RJa\Mf+PsRvMgŠ5^8 cyΞH&#K7#.c GS7~~IY_Bh9d/+XAR^}mz]SPx a3 (~Ka sZ {Istu.UWӢ m݆f !EûuB&!`S5ekR{re;`{a~B1ho.`27=ՐE 3GbLd~~hL O1wD޾L]#ۑ|ͮ'$$>J;!p],Lw/Ʀ/f7|9LA(ّ;PuܙK'"mE#Qy2V6wI_|bNTV1ii{k&gsWO1F,ex=SgVuxLewmu57M9z`\{ƇR %h"H21ha`(D7'L -@Cv*8]溷*;e"-,eH^L1}7&萤nA.x^ %[ de[VLY67Ԩ(ne`:WV䫒T#b(RTp_(wiUߩtӠFieg&YS) ufUc0Vd1yT~h5JBq@&p&bhZF%$Ȯ DqW1h("7^,ۮAb'!=oԬhH9WCh> Y13MSNqkflLCfrݴlg)"ִFżmsv -[/F3ǎ\C`W\IN9;b S(M=ʓ$jOK)z%)rikL[7Ω )+VL#P[EB{N84cZ4Cf'_0y'c.v. %:zd%@t;@?XP8b`CG\k.% 1ˬlkm4@)IZ0o4M[o̠sg?#h69//okHh;O]/8P.!ӇLNtx1-0I܉WYdN8'yiZN(VgIuXo$` 0W\ݥٴ' +MaZkb8ˣc8=QΣ:{|9Q:{ (I6l\WޏvzwVM,KZ{y)ҽQ +*e diJtwz Ъ,9҇L+=Q[-*Uw'ӇϨ}J#ĚEH1][-\-żiVVn71m0Ms6 +#_w53q053aЖRsa8[9's?>5=1T>eָvvdwR(5"bzBܡ=!o=a2 A*A`UU4 P` 4OYSakd"^], +w@~F"LI$pGaNASȒ Y3ZNK-&ge4yX5SMKR2/ǝjPn(12ʆjJOgsiY Yeg?g 't:Ql\*[[Y^)cStjZ]3 -,g'RJa9Mu1 V$ 1I;Sv6ReEmȠu$Iǣ2fo~tWئbl OpYd?!<A(\P?|H֡=מNA6* w$pRC#-DcOQboX\nR#:ue-ww`ríLx*K. +G@XAiKnRu*WҺR$5tJAJ7˓=\ۙV +>4;w Y&^Y_l~[}GW匮wq i܀x'9|ðqbcwA)r5Ԅ0CXDR @'@ rI80V`DDQIRE?z>#} Dg􊥘FA(DT^gQA#|DGA;c⽵J6@ƶAQZrr(A.{}-zdgnhՐ<#'<Ӕ?+{.pJJRBvUG+5cGrNA{66I(mMH6%O&QdMX7= [ԜũP˶+/pa`S".+ĤEƬߊa^a Y#gGɦ_FNIo^ i3ZT;?äEw!286m^kUKt'ۛeZǀӺ82樔OGd'7a+6#])SLd'mJgSceHqLA-i}VFMe)"jbNqҧxj`Cu8"V!zxw{s2VY{N>or+N%3V ⇎hP$I;oTD3, w㪂u&5֣{)x٨B…f?G*F$]ߪ[`M,~3!M9d/7|oVn>6n_|SP]ɐ9iX'vjփʃh5O!ء'fsub&IX7!*Z,zk}Lj.\}3$A!sqYFfW#7tÌT`P.W㾪 7b7t3sE`0P0k\+HQjyVzSPL2=?Pl}DF5]=lMlWߌIQćc`mlPIt҃$$)MP&lt%N ]hWN735]kD"ںHT-_\w*8)_5m]<;qOkr9 "w4>Rm1Y0@E{3`!j+z1BQg͋d_͆LZDs&/%h(&:'̴BoBB/\S,7w61tn_v'P0+aC3y{+_,^mC;@NifSjhXgb5VTbk1|/Ӛb͹jkoXlXkcJHP>p?rb]|q')͆f y y>Or~rilU,82xsݪ?| ΦNZdyT ("+"(OMRȟ˟+\[hPtm4vE 'K@:c$cuu1%ZP~WǗfq'{C)D]~ /pCU%,_EW2p!$/QZ'h W@Dl(tTeڅY%T +#hYkв!*K.T=k{ZBEһ@ N6ZK =!X|:g/XOc,V!O VMR  bDfK[+;%gi:5V]BD7;etFqw\g[`^QVkiPqC#x M2t#GpP9*?(j@=UQ.F 6޵ċ&5.1=׽j5b/< s +ͧCtV. Y"kHZs,oak"q:j#: W}AY7hiڷfQsS%/r0y!hNNy}Ӧj=:-Ge'j #aZMͫwM ?4LU1_gԁLLoď*+OlT[sx͐~Z~=Hu\=;?vV7l͸to12sWZKUj|_q{h}^Z ziLcpi` +JO;} Z+j hɼH@@vS}sqz6EN;:h AS7>A\5)%:,hgVHʼ:[JJ$Qy*UpHb֊)Q MOb:ϐLo7`,R/It[oD$GWu +XĢfu%5jA@m_DJA-icEQfdHS☨4;qp7uzd5Ũ;!qqnccF$e4կUx[_.~~ rP ;_7 vOn<]:3 Bo'bUft%̓%R*؎"Kg3[/&ӡQaGZV_Xw(7k` +AVĔZEH;$y[ x< 9-Д>[g0S/;g"ā_gs C0ea1d'xzo_*ߴ7[{V;(}[}_J)xi(ɿNA꿶Kc :3 u喪~jtD) %ؙ6݋ 3xe,\ah _^/33Q>r cS}~&dBzXg "2RxqF{P`c +M'(b[I?̵׳SQxbOJkd'f^(F&) f~b{6a*["W[Xs{%Ɨ3abOhjy0SG(۪ ;B^>}͏x#m'm8O{  .'+ġlv SDT8A'iE#BI2M+U: j1O2{s:CHc?dLśk{,VkQ`Mc ]+!mR,Ւ%F= sxrC65b gՀqzSxZZ 2weBS5R̻m{Ula} >@U"-90`iUɲ52)hA{{De 0j/#ŭ{'TPG]Ns~EzbAhB;Ο~Ey;S9NJgRq{Co2<ynOpb雳}0obŬe [QPb8‡Ŭ5QO٫t) 7[R hwG. +̦cޔ3xsh[ኍFUx|{OQT9t;vR`&Ɨ@owMNyȧMޠ^׋ /+9ֺ3zuq26XbaسT)pS#.'zmhiYT76`_I^~ʁ-CGYvmPc1%*;|" G?4)%*S7֔ENNlsA{!,ONL.p쪒j|!Ho-ϷSU _E#ۢTZM Mؿy}e]:/~ō%F&F=ds;& @] "%pLQ#qr{(6c@Ym'4>a'HWz`U{20KzS&h7q&E$YԎ,ZIh'`^pl+;D>b&M + +&bŃK\ '?dQ(֒Q;MwiH}FvO!a ǔydVW>ǑVEVLcQ~rIpGtMdO#:}d7Ta̛zN1d{Xv]W"~pha ܆pK}Ăx=Izca~h/N yE }WmtsA!՜`%7nSBrJ3\ +EiBK~jQ[~kQ7˝t{ /$-ng$s!n^N`k쩚K?SNrKk[ĊuE4{$;qGQ!UH(׿*tW$q3D<2so\-l{`N\dI>hߒ<[ݽ(&&֝B*I± ӽEx Wʴ,Qby361M~tp"*b[c/G_?~;*ɇCT>Mq<1=@7:Ƃt5~~.W:8^{ ~O7?g1#/u,Do%tUaAf># *#9Zt)fR!. 5<{ًIH,u8%"|Bjz?kXzEwϦd6qӰ"s6Oy3Knֿ|c '#f},HiSD|{6c9D3 _6 +sL *;1vaui{O?@hq>ORYrDVFĴc3A=9k+/B fJV ~ nZDL3风[[ȶft0kRFVћw1/FcQIF_rFIDs>V/;1VW6<idM|dzBuI@56Zx:UkCq)R%0QO8XV'#/%ŌsߘKJj€[ m ̸YKNL9hE1qҘQB2CWydN7:i"#E'ۤ Y".GdZB *z{!*h&SJCί$,#vӂ?P/IJp]9442N[#:gSJu3ɛjc:%Q/#eA3wRSp9rNC`\F+4NY~mF 5ֿ92o:+}'U{cl z5s3w*M˧)wϔl`%K&$U_}`]מ.o"?K #K).Un>K gW2Ux5=A`&HBNj>sKj{%X8#uF64$*{4rOyMtrˠ:J]"CY)Ys?a.:@SIl9 @ E2 bPm|jnd??ߛ˲=B!p"Ui6bA!0wDxhh^)|Nf1Es=\Wx{G+k>Ȥj:tu p8P@9d&J BpgysC[n:9v r:c}A} +B JC +yqHg&?ڥ;Sȳ8S} Kza_>D$$ +9@x +(a +i|LP/vh~ j~u~e8 +.YXn%5 3|CiDCX־qŊaE.A+5hI]\]0x* +SZ )[ g~&QF=ոc#S3qayfiSTT o`0Q `v<Ԁt] 5sfʒ J(IdtaɦP8qrq9v|ԟ/(B(ߕ胱Ui$Yu }aEHf7<55sdft3]gjY#~:PjW–@F/2n;:UI?[oB3&$ z[qE + +0-bSRx32\팵$3:Ii8ݢ13Z+ #FĪ`{R<)gsNL#`^D;aqt8bBxV No'az!#^y\( +s$O`Tλ':3ؚXmDLL  cjc>)|u‚GΛ%1pNNd8B*o*%h 9SW"՜- ܕ<F֠7 yZ7X;qgK 0 $g@fw42vtTtr014XiAaBE\r"XRE#:?+J Dq*}Kx켞X1wy?Ȉ22=?usI#.搑DTw[0JbwAxZ[ HP_ҡ)(|r)~kUW"NSE ~4K^e#pd%iޚ9{>n6o{;q,(U(T)mUk~^ĩXSZ+&+++*uVIj 4B"kZĂ$Ӫz##(hRFeoC4YyQM::\Iy*؛=gn&sҬ/ԔYr==~VcwEF8g '$01F|;KW`Gaf]?Bs#Cycz1Bn&]S NQ|*z;Y,U& a^>&2hO%!p<.i8|_Z ؑG[3hd.6Z_6b"#@+B"x/O|}}2V$+'(g4HgM zwlyYF7yϵ]v!a|Sؓ,DJw=qڑDG>^= ʃWc?UF^1}>K=Rz.1^VZ'㥁Kcw1954$Z{~zym&zYR46!d3!o>MGТмlWf~x $@qȿ'קVοoAۗ>Y燽}mZ."%FWg)k;"-9MKHZ툲0%Rd׍+d{}&Q>g])cۍ\.΋r>cbӁDn9sxW`K>e}}0۟@uE1+r=pߔ;APZסtrCD ?UЁZ WA)q*@HD{u*(iիFN-ciL N̄]yHl*ϥ%]}E?LBIieLjJԸ1Z/  Ӝ2*v[Ӛp&8a^o,k3zbVt4аӗ^N+zXRqGh @K^c"ν~$Y1i Fgl2  !fMQEhы:-# i)e(D%#gB/T_@%읞JxL \Œbtϵ7QH֖]lu @Eʋkx(ݡFb +jr~͆j +H&A]O/7=!3(~}iټ|&痈}PE eo}CnnƇ'ض-݇TO8"2s{g+=]2^!I;Zi꛰{~8lSu\j8^_*k*q6ScfMI"lB5H@}ĂG\Z{O>W5# iwC@mH`} &w謐 }b= 1@@o@+p3Z%,yH400?}nn]N8^1tqQե0R$#VvBFUe̳;ʴ5W8m!c,07,'@٠?ޥ Tq͞TΟ9]v4wY-LdT2 &td<_rH3Q.儒ChJDV@}JUi);[{Znq-2R*|~A V~As \ʝf;0 +Ik +xW/KjC``L)]88<4IԷJ)2(tkZRμ;,!9V_yBI,\nFP`5pz2Pp)A&nenv?3n0FC,Ww=,Nf8CHT៚J,9.H6|k-xvc%ngsbE9###/^LlWg"&^M 6I#U>%h̐ 7dUE\^`@L{/8H ;"d*yBK`HJȡ(NʩTX&)=S/gmg̀%"":B⠽9/B WvCv障k$ym1[@ufu u'hӕ2*VcN('׷O$\4h9KX6zLw6?jk +n*#EEg + 8)gƮh 2o_z>{7U=IE?W1۴TH7?i^^So!]sFƞmoXqaYmo\<MMqj4zKUbPp 2)cL7Z>uuB ' +K#c(o`\EbJKZ|2*"e]8y^(`V^X,T;iь+l: m#9az]yDOڻ|R*շw٥ ܶ(k0]Qe<"جQLb@d7Jrlj- LZe ƄJ+꓄[2[+,Cr(3=`-MOSa ObooX["O +Ǫ߄_j ;v>EDcr /0'su8; +9en~⏝|)2a|~i$Cjs==q;(K D21 Mu0bV +;if;pFtk3Q owz-Z42[8]lb}@,f2[-yᶖU5Cu7-Xۆx"1k΁ʈ>d>@>*/#iwhRO.'7АxoEc85 KΛ&<\Wn5(I6/~6[^F;XlvBT}I4#,,srSm%~b57TsPItjt)ɳ4O03ŝ I绌 bkT`~O`[ ]0v^/'Pmi1KayF>[p#( +pk lP/ۯ#xUfn]*C) +DZ]͍LH7Էqw$7qr=HfJGXX >Inq1G/IX-! vFV3{m6sHMI~ܰpP3*$=VǙ߱+D*ja>4š w2f}r)X4M?D:_ND@4 4[/qQKR`FG3]҈7\9"ߡq<_(~5;v|Ն.Fbyh"4|ۙZCz`YFlq0 zGtәn)cabKӭU`|)M; ;#,0Ŵ_1[*݇lr>[X-e3jױ @D7vN!˒CNK[-MK*)B; +&0Tۑ@YEYp1aRdaĩ3 HV bü)F'݈Ԥmȃ=޹nQ#9#R᝚x zW4u_ĉ(=<Ƒ82dL?Mo-'~YB&Ll=[ص=-8 Re<1E!TlV4ˌ}H>ܑ0X/*X.K_/pkҜ,e]DH֬:5`~F ?@9ے犧yBQFDdWW霸^) Y=c(.=2T:bcH*&oz#C:ksn .hHCT%P)lotKGz1l +˖ݳ}]C(7q)OA[ImFՕD(nRsۭz~'VzˣGϼ ?Hn8*7Nzy.̈_=[@myRȉ9}S 澾r%Ґm&ƾewmzyY3 AcRp8P`ePVl8 9CPG7d۫X;m  ' mQ-ڢ~.{;p^o r5ڏ qq B L:~،BF+W!(Ӭݢ$?qK_~qZ]*#gXW5:{.nټTtԇS1e7ƹ Hos>T}i&UXLZʔg߱fB3jQft9sءAa9vB2벋 b/rFln +zn*B9}YW]Fۆg?"Mk$h=iʱa(Nh23F#CfJc饮!ԓf4=JI\H%JgN5#FVֶTC0W̉x[PG A-ģu?~oSwslP^jd4lJi) JE:6&+DíWz,fU&aLѺR_;ędɩ/2>uq$Ӽ fևφ읞GO&C0;o-!C(=KT017cW%p7|Z>|\A +uq!Ӫ@z*'lMr'بdYO 2B.F4+7{ۑ/Ɣ!w_*"e g&`n$YxhS+B<ϟ?u.cC$Ő1"Zp+38+Xn-3`T{\?>"?Yv,݀y5,ESsf.-A$O˒ܰQb7U쿸 $Kj?geUK79.1#[7,1S %- !סc~ҫ.I6o zS4^.ji!,h'cШ-vC / qngtaTsi'G?vvIʂ[n| R;2r@,dIu +Kv)85B(=jL%  Bz¢IBۑ/_&E_ֱ\O_(D=v7AXH-Rıhi(#C$3Hw%#f%jQfIT+o՟_/ :92.Ɉ1AGEԲTM+}u]+/Tm?LāCMҦŎ2.}[?2"mQqx 5T뫤*ZL麡3>}i8a֍쌂@UqwLwF +&9AmV>tο|=XY –OURɺUHV Gߛm;JyDF4#Ž場8G3fȖGH1KBTG0|ͺD$^jy**OVzO 573lPXS'DGz]IZ@潪(&L*WLRVd^aGҖbCϓj:^A[J=0Rʻ5H,-VS4_)%}f :{,n:{Ǵ vAIMjRK+#s_FGAk8bMW)鯒mjgEU56wPJ%`\@h-6,Jy_) (%x@%C޴?#aSE'Em)fݩ, 2:=Ljɫ7mWPHƟv?浍CAFG;ru(QWZbb.+v(0/'ʆ'o =U^N*7AkzeI^^5ݞi;B&dWN_ʵҤ߷v^)!H,+RZQvQY 2Ca:1Vgïq"֯oBo:i& :E"!V bf)[¯qOަ]} +="YulQwZ6xLҢ5 }蠳k2 %KUj`h~ɔr e"\O,="+76D-_>F 5"~{Ij߳u-`!\6[k\BqDŽA'l":t~;AX%w [ZM>z9t(ؠ[䟅p-'d\[ߐyL?q紭xx-3Nõ. ak6!vD CA8vfVafuH]̴aodb5_N.2%{/`yM+(6W@  nrӀ6Y^ns^ P ϑ6ߖ+zd@K b˒>I+.B@vzɲGq |5=^FQL¤ .,1汭R2~!Ӻ2ʎtcNe[,Ŋ8.NN9S:$;L6M$Sp}IGKBؐFo$ b]'gɩ׬m]=G@JQgyڈz>ut0KנœD*ac'N )HrL^#D;U\ZZbhv *M!0S/;^Z;ׁnZ'`xw c/1?DEC[++sH*-C<+;$0]pR"Hy9( I#xR8RZi*fNSY-T#7n-rʶ~J;Ҁ0]5y +nObh_Mp >g|/%{ErO6]|gE/\CC_~C2% "DjI߬=l ̷=Y6|$R LwcL4{!4oAˤ65N6OL#FO];s9ǴUY#祻\l8sK Ӱjm:PpFj%zjP'&EU8vA{g5be8RVΠ2.Ođ96il`ޱ# c#C`l8 cf{Pg*F^I(\95㌏BZQy!9>ޥ@Z_ksgOkw3yNw]abjk%i;mRo2X] @IX$|g!U?`aNWR k7 ųtUaH.c%"hZLR'/k:xޠ"M$X ˢ  ++ՁSpIK V6~ġ``.a0hD帩V3d3ƫs2X*1[D=RYkL?r3Dcti4۪I֙r3h%섓G/)rgM#Y&^CM1gz _}+FG_>SZL$WmZbz;dBbҶ3aB%ZNFE=52;]"#o} Y xa +h㔂MjֹJ?f8\~T`D}e;gՇtQZ~[35,-U'3mQFH;Hrܗ\r*GoХ[.u .!}6ބe~#y0F:k6sUekxzTwgYx[2 _cSY*95Z +Fhi9XqJO:pӯ. $A1 7^Jr;͍vt%|4oi7k9T:Z[!$b̘ui[=qYbG wV*>c5[ĺC\+jvn|0>D&GwltP츚a߂↯DaD9-Ʊl?DĎCRHO6 Z9J3|'^~v[]6BM;>);'|h-&Xڒv1k%q,۾<-7'Eٶ oS'ݻF)EğB6ǵh^n/rPG|R>Kޔ\̿ڦ-}[w S͉ׅFCWVlg#a_qbb l) p9-VҎ̵EvzU [d&ZN~$v/6mH+&)(n9೜t0Uխ +p ҘH/ӱ:wۣ:Ivf;EƫDҸ-8n}GQr qQ3 +?;Gĩ^Scw#WrNtbZo-\=z֋ni4h}5H[Cţb@Y kJ1T ݚP,A:~=܊VӅdǭTpvZ& +S̿Ŧp5[4ω(vqqlu,?ITNómqUYݓDCWv~4eFWQu0ٖHeU fWk/#(ίAп}3.4/Mp _b +B4QfXXm SuY6>ROD2& z8%*luS/Wq7oɠ_c䥯ݞ`UAz6N%UI5 PM\Ԩ qB ǘ9/LU(U\xc Q8<4sDiE5U7ogbHSNTOhr4n@84̾ܜ,p:b=|&^E[¨O؍H'nrq ö?VRï l{ +u=.z^`H!elş44C +O(2 +Ci Әn$X!tExDIߤ}wcplePh.qC(/hF-[m އmk݆]<{sh:}i +-_sɝ_ŬSHWyr ^_b~+u$dR\o{Pvt3#4s݅Erےk;EB;Uv5x[Q#^W.n4VRTc ~f Cf,~f]!)w.h2˰1F4\Rԍ}Vf^IQe)D՚DL +l[m[aΒ-0,V+Pq.o/qCGz,L9S'l<.ofz0]\Sjq\>")a F\M_<1Ux5F]'`/41i3@P#D9'2\d7dW)Zd[LH;WhUfJ||~{s){4ۗf*ƮvNhGCu}Ku=DO_eZ}+1"Chs؇ DB&Y-eo ҢfbI˥sM[{WfZ_~Yծ.wfCboT! џ$;h>9*79J2"j'ͿIh')i"VwhնY`AݻʁfH +,LC@rDإ~9;xnPM[|b[l|" Y:bh]=?<#~I+lrNM'$awa4s E?=Wlq͜xy}Trss/GuHOe;&Zu-Z߶[ nZsu7 +֒5'>ÃSQBK Gqh4~GNNZ07/bsJ 3єd#^@Edr"KR5(Z'(*~3li?p 90 pkP ӲhMRtD5!8)*f +Ǎ5ѥ~̯ a-/ЎOGfeǾe d>D_͚Q7Aκ;UO JK1n#vKx㪈8XI^* ؗin \'[:媃Ƀ3RWa1{u:]ow'Yg/g}‰sD1M=zơ.zrB!]s,Pbۦyh+3 Se 7BP @>L yUL'kRԃ);,Sސ~O@!i"pua2V̼}tFp6`O]c9OM*Z.?ΚCvڬ|-OB;[jfy k784Jc}LD S=`YJvr4IbUݙ%8߉)j)ŢiBt 䤜 P+[{!e&w +Q ~ 1}8=/1U -D3@hiؾsǵ*ofemIj~Ak\]ım *}][@twYT(A k}|}ˆ-\x᪖0J_񄺯Q?F~3vq!޸EՎր->-a*JۺwyDmgj]i7 g1opݍZbW'b#Th}$i,Qeϋt/($"^g$K;N@E^~O2Viɯ|z"/#3ЎE0T-4 ?v=UM2 W+Cު}Y("|-tEKpVFEWN3Thկ?d]}}ܣ)y ۉDҾF'+e7~Q?yQEIkBrò.`co*>ǟKzGmT#?,!y:HyŚ[? /bWS. 'NbuOssEnd/qUj +J$,J$\GGca갡n'\$D)MGl*Uw5''sdtBT|ޅsoKJD +WBk&iVЖ4Hc +N) -+|Jo௎sJ4gPL~B5 +dԕ}:vnwC-ȠST/}GYBF37KgFȏbgtcv|:kf!V&ՀnIkwYOXNi_?B4m;#Z~"-:nywOIB'H3h*ゾ1.`/8$?H\/O-?XYj^Y 2EI@$wUkgjEݥM-?+,}F pk 笉LJ]ʜ!=C@A'-Ȱ͈j +ڰ7]&43 "d8f$ȁE.6"J(RU?ĤATzi~5m+k9j=^yQ%|Z86L/\0UtjP(ےΓtŀ lkRX_k +og(q *)m)VM΀lfN~\Ԕt\-"WGʊϰJGL𳂕Pkjt3QW.+o&pU[n|B q~\ O!܄֖Tt9xv +KZ\w\lv(_5`_9Hm)$q"ESvpBjMZ9&īFZPq Q؟">0xDT=5hQ4*lZ-YhQZ +&^DBsX4ِǼBxr ěOz@/b4[}$~f[D8ilFJ6N9P2Oy?0+g0rcǺkNo8.wm̊M01t*pѡ]*}+ĸT\y$x_P)v>b+ʮo6F Nm{޾.gw 5/)mI*ACUAiE W7NЩ_vɐv>T#P'q7&ޥ%X>Q;֬U֑U/>]] =%DE9%otDCJOJ@q!",5e< +U!SQpa1ԗ:]wӑ7b~kr,\4J s[ٻ(T*,+նVHmt٤su̜ +ސFRY9$ ~z?K@*ymsc?r$ط;y`_T 1  afh E| ARlFe{m9e¥lȀ_X-d6~hDIJKʼn`ױ mX[%1AWeލxEXV?ĔS<4 o00c:gIs.C'M7H<1f sX`|EQ5No\D+5 SĄٽ7$R2@Oq I +{EbJaaﷷ + $Jƪ#ѱؑG+`&X"Fkf%X-<^EAeiA~#jDwhިQI7]amm5!a"DyW83H!߻kfɐTwDrH<*?ox.|Ma^p*;rP,;@]4 AԄ ?v dQ \ޠE;I,%KlD87f!Re:=S}]lG;ӬbGXtc)o@W6;4a +T)-XlcDh'M}q&G:ܤ/=~\I8|)_&,؊дCQjkMK}Y#79fKG?}0 CiYxcL0HķJƩ~i`%\"j,-Q:Kh=1]G7J;e>*#['tr}/bO[YIb-@TYuw\7@zJח@Wp(r1(z&;~>r%+yoK=no>uX]`ź@BX;7YQ.4&lVHAg31(E؈/e3w([d\L9J夣ťq :cK6- `wS@@@'}~[߿m-`b| ߐ߿&/#."D#- &sov DZ::}@s'c}'[Oeфs"P7*Z> +*JmR'ؿ__ܝΧL ~7BV(lqɾp_^0|+[} ć'4l$ >_@|ݙΝχ|vzW]p|GVFop 9hTѷ27P=¿_A__ 7ʀe/%_ŗn c>xWGvv +&pr=$U}vH2@@~lH`̙Ʀп:*p:Ȼ)}k?wG"'I@H m]\aWexM]܊ H!0MTz|8Ϡ `ذChEyBɈ  l<o񼒝wq/Sf?<3:3K d)Ū8<^3ed hE)sSI_RO!>aT7]΀>H}akW~c$Ḻf هAO 6v谴(]+7prv21?w/7Kx~ɕ[,Ùˍ#v=N62qtzn/{Y֦kP]I"?jrs:dJ=O-$68 @ :>jL y\.#ϒƇo34d|'"FUr Pґ_^s-Ur7W3Jwsϣؠ(~u6<.`A}R/C1}p xy~{ɥևwy ̀~ +Gɲ*~7~{*ke`Gs+s^a$R.?zhl(5KDg r3ޥ.W0 +7ls}sݮ !C(?{Y0zŊqݲle2}]M(ZJ,n?XF?hq#W]>` Bߠx8H\۟g%ِ3d'6.V.2n2ھ5zEY_} n,nG?1rt՞ ۹?js 5% *=h.`ߟnt(=j)(x +4jfޏ:aǡVNƌrVΎZ}L̥Zwy3^{|]bgp-*FK3x`sL\s#ce;foC e[H' @߿5ȃ ȈggbgϾt7/Dd$kX[!sgGs[GMBOX?h<؆_p08eP`R韞?h-=k ?8sP'ck-6?8yV߁O[n臾?(#{dy'zs&`K +.I_u-=*!odnlpK-ytxAs)'yPM;lM5(ߞ=~ wE3=GU]w +I揝k'TGwԍl-4@Aܟ^?Jq1vx<6z~@crA(3Jٚ>j_OVu|i/}"=t~8a߱5oa|gJ3=׏r~셱ԦQ@N?hH>| +]Q߯} +EUo?'Pck;2B$`cd|X`_}x +3B`1يG +|]C?Bqsa~ΕzA3>\r[-rO9 q*o 4 ƺT:?5 wtp7gf 6-Vנbs_IZi|z?m/` <6}pNó望0g_\EnȒoݺĶǣdm?`/x|?h-Љ<GP36Be1t z&96SrsgVO5MXBb}$Z}?oq1q$f?4[ ;=1㌢o%lIhkG4`VޣxcGC'֌"o}I.#%ρ?hu*D,*!(cĺqCw\)x|GS(Wܧ)uM]s(T L G;8>r0s"wJ h;[ حoyZ~`"p#J-QpĬVݾ$Ý̭Τ ^x )LU揇f-LC&?sğEzRw$4AW?)!gknckmh>7xO7F$;o>lp|Ru47#7b?JU}byGOs>Ϣ?hHal/yɽV?5)."M&3_U_>jq׻tEQsZݍγk3`ʔG9. q??ӞC~EDG@5AGFF[Vyy §VwG%mm؊(gzŽϓЀ?:IH|v &4{3뚞C~loZus=ρ+E`s8*`kԐ)o{?!(;_"`?Jn=w7,YǕG(# s%UlZ߈wQxbgNbbE9`ži%>n{m?i.~r⫏2{a/k8V;=τ?M@sS|icGLRdB,/O~p6c* &>A폇-~Mغ}Q1su1&Æ\~p!?jvǎPx埡(QУhp.M̻GB7F?izK>vz掼UMBr`KȂw7V?ߒ3bt+4Obpp =c/x%h;yܞ`YKqտw'(< 9](:sq ѿwз6_a"N!J>DS Pp `C_(<) o;h%'wxY L mUm=pw0w2t#r6)]{Pݡ Cju^+&gel"ç.G)v%z%UuáaqcrR0 8cB?j[&ݥ a  :D!*8O@fc6f?j'z(_{ VGwc&!%@"ug43Br7 \W(E;}˘գ`;j5 )ZA6`iMz ;< Ɋ`vcAEQHP~=&xtʪ 製mf`;DrE1ۍ/*}cX>jG<ȣ|b#N TǿxZAi<^??\~2z.8>ܓ/x =j4a.y+7mgp]< ׃{ߕɇ|<K.lG#8w~0x>(X]7Mq:1Cﰟ;-5Qݕg N[DL"_f?Lc4 0:y!OZhOFEW@@ X5SuN"P$ 7#ϗxHwo-c.+{\aJ X.O!3ӵq&4%ǹ_ļ9b+^D:}{ߗz@_&pE~Iph(P/!!ْĿv? +S{0>%TuZ|ine|{8pn%bNwcHWdq߷lwǘB RE95E/i>Wiqy9"G9rʃX:TQ[kGtCgyc\QqiR@@SDF2|Ⱥ*:ߟw)wK"BjO@97n3y@x$zC+g#)}7$x?`Gj͒|=r>,N3(؏+> +8t!RnbPyYCx +_p3/|~,F sQ寻CK'{ƒc 0 TDXu=JdRF {4Q)&:8ZBNXA{y폹C/1$]-~ *ekgSgG*~_Gh}qݕu~1`@ݏ~]809o]6Nm$ܡ]>,(/3tD~ZY~=~]L[ +8 +޿N)FgϢ?>8;︨'?(E,vA(bQR<'wxQhL{5v%b5jh,#F4֨fm?lݝH`bP[֊yݧPʇK˯S"|,\~?'p=)ev] D*,jQt> 7;Kaą8 >:rV`K]A9} [f[fd2 Ko:KfH +8 PCquWC)tw>D'8\CקE5:gf.:e36L:Ҩwh2L|Av+!+s®r\t+a+27ޯn*hmc,>^U_)pH֢>EH8Lҏ-c{`W+@ ǯCK57_8qْ^#2&$.ݹ0Zz#Sf6 b?ͳY@Ӝǎ/3M[-Himp)b;?.>^o7olf;̴ +D[Jz.YKUa_Q ٌW6L_D)DJ@Fvض`R\ZRI9j`iG`%1cO.(g7ws:izkWrk{EQrO[}q0NQ"hr> +^} +'4O9ugY*iprH1I~q{sK:mJƱ[f6+99^Z`n+9-չ896%ycGVha/xe&(PƝ-|۶Kw(PuYHZ8:Qr.4mcHv<YT&#=7Y}g$`~Д0ⱖUVr]wFb~ \lcR1\uzk/k8^b#r$r0!gGaI'z̥)wNm8 r + 3rUYuєb9ة.v :ngFL 9 1THȿ: aǭJ]`K\ ۙ+]ZD~{zN(0v/ Tԫ=pinp+aѽe$Uec @ w("bKkڦO=៕t@Ůf+.n~aPm0ܾJpOx.y>~Ac7-+/+]Bdc7yk.^TTw=}c|k3N4<"t8'jjl3SyDVt)/u`[Aqsr%=܂Dh!}xAU0,4\g/+v2erga:rΟF96"ڂw/p sn^۵0Nr|9vvM -NOmu3?\牞EЀ#&iD^P$G ;_}uN\km봀ϙ4^$8I%|:ŨָL5]˝+DܯAJlK41z]n5i|KrOυ8觃ǿ +$X njwӦБ\q`N{.@O+JY`tV?N2pkיڡ'8nj@+IwZd}d|lbqMj\vth2mEP n 5H1J +yXx3X%stgϡ'蓲\NHo>x`eqaLFۖ=Mw)qv\G+V4=*.]IsљVgZB8v $zӸxs.bVvrmhukd#vMTS-F5fJzC1$(Zx$M҉uo tKmq[ a=MR@M7yp]A8+L*C|ѰJGOQfְJ@&t>]v޶`q  \踹+jxzA>c.8lNu6}s>j 8zq ElN;}UnxtH9&O%}lnx鿾ė %WY6vm).}6|ZLBH@4ay9Co@ЪZS75|- EA5kQ ”l-Yĥޯd<zEQ8Y:2qoY:g(w82o`q=|[QaL2Q3 YNt1KWWtiE?=a&&[t!'{i=]%BL}ChУ#t5)>euKz60WX0LݬLn3s+n,/aXuYIeбf,:us X2'PBUT~ 7EG~v/7_IteTDTERJ>~xܺGĆ@deR20*ql4|_;]SjVb]XPJ,MKA7Qe{"$Pj?[pM\JϭCxzL݉/LT& ZU8W7Fxn%߂-#A{K3X|l#ۿQnZm&tnx6Ei/-Q$ۻڲp{g*_^: +g:f]y3[qhxzwQ1%i, ׋yzH( tB$7Qiw熔1\rUSӃwdh (1nϚ0 ۩4boѣ3k*:KvLhAjXjYWvZ,5NL: fV`8HZ 10!utQ3j]5|K<Ƒ uv-̈D%hn@kG/g&-R4FӉ-EX&ÔlTv63 aek:MPCݯZaK~l0nDٚۧ~g0.'],GÍCg7t؅> N_k3u?&66qN*ZCK<,D a&ϞyL?%2c%DҎ E*!L>>HH + +:D$jC{hG$mI0FI ~|0}qh6CE ʲMQl4(j{p22KsLٽ0l |L( +lUԀ +b>;{p|J+$ 78SK6-kcӉoWRÙy:Ah3nʸI5(-(2(N/r@nv\ȪBz#JNeZss:mow}ĦcKZ_j#s9l*ֹAlSF\jI}DZL"$=:'2L`1S ] fas)k<ǂ2$6h 4z_tl1_ЪǫWǠMc- +ˌ$z߁(#,xolq|zr $U5©EcիsWD>#y1G +ylx=| yr&c..X[N쯏f%62Xi j]:Pz/4q䎳8Q/fҩG{̙Іr$~NO 43 4ٵ<6|$(7%cQ{,~ Qjn>>hl1ōL$̴ {?L=q:Dŀj&Eg49QVDg ^C42#S n#s l^H->YFCRkMcn^U05hSܵ~D {DZsF'2(,gzF +Rh:Y+25V6wƞ !4fJ]gxOpZ:tv"-O$֘$P7ѵ`_qv[sw$zDrei0v Ns]P7WaOZt +½&x7sJ:s59gs\{xMaKV'7b}Ҳ?@qٶ '3l^Ԯ׮ ,۷^$,<,B{@둀7j(@$Vŭ  6wYe0ԦC?}T,/}ey:#F;iT7ƳLb"c"i.Y.;a:ĶɃUSVRdK5Xl;+48XoƶW24jg6 mN̄MQhZR +G挝R`NlciDXzy@,N&Ef"be\:e 9EpYpU:oFj7v=2+4$W70I:G{@DێW.%r'`/}`\GJz-C\6 _-p"aUM=]Q7DS;Ʌ$vSÛ YUyI8[pc-bNh;w>|}%}C¢)5r-^6lؐ~λ `&{z i(*"w?uG ;Du>~ K?}Nojv@SvQb=gXS*\N?33uz +hm͐r} oqH/oB)%EtR(}Mw}AoT&}c$ią΃n6-'oς(z! +_hGu$1UnjUTTg_i_FJN}X -qN4|Y΄8\v,ӌk]"mb0moky5{>'X__p+gUוCQ$| umȁgLj0y{E!}6]kDԢƔvnPId +~0;AaJ*Cf?F0[^*. +As%MJ%ee#>-s>' +:nVq? ωC>/6Sp("%/ѿY(."*g:"d#QA*޾"}`SL:؟6PVh(5.24J"GDzǮX=6Ć,DeUݥ(#{]4QcIDcѠXbIb|,aޙ;3g̜ipx mo ?~[vGD۵_tw&}l?uJQ AlAAT![XSݭ)199N-Ak"4IZ CuTh*u=q |@HM:Q%KN({q +w,$"9y9xOi(1<>q{y^$dɺK S7\LlB\8UX?k5yXQIiL<XSʴSXo.q'/ĈUh{X5iFCբ@CvHXƂS5YԘ +c@*ix:OzEs7ͭ. +xy.VS[7wt%i4q8f('C'4`=m4[eKNoVSCD]qw х.la1u_E]Tg(cEx-7.T,oO5~LkOγWozGgpl? r/~gN1Ffg eވj[D |xݥ7́ԉ_ };+/tW7 +3Fޞ܉BN)槒' +, Y 8b42p< _lRӋAŨokۥ.qjtE'ZjiI@}93X\ @Be@*1<|b6uۏ AIZs/2Bdo9_ee^)* oui᫭1qzL7a5<6=i6BYγW9k.\-bL-.,2s8BU yT( cx֊DcF6\4pmNǸMYdHrȽ^(vii7 +r6]j%=U3,?G^b6Yj:DĆ3jۏm!(ЉЁ;Mq,s^D|$DEMv+$9 rcbTj&qpJ&DŽ4U=nZzt06 #ԚC]TYjTDEZȺ8fdT'E= wz(L&Ml hP$t%;~tP}X*l@4RD$īab&TL)ڸ '& +fHG) *:@ѡ'WO+IR3j'% Sg2"x4Ҡ +#I4Ɉ#_XZ)|y&3ru&!PtMyվ os-MH2iWBCө3,: EnyR(rJ*;t Pf7Z׿ TFdb5g)M}~(S{?*F%Ϟ`baXtu(aF,)xцDxOS{<##{H*t] =??lxtHeC,#/@\bW~Srv;_8w=w;j߮uGk`d7I[7*Zg{M n>^?{A;Զwןƒ6\Gؒ|xKJs`10w+oͰȚg~u܌: G ry%v2 ~%cȘkbfCV 5wEU%l:MjMO1'UlQ1SNW2\'p/ۿ {x15y ْ^l//OHONuWWYlcS:G']~LF 1'tQ=xz5,$2Mrg6WAΔCh&ސSșoP&9B4:{G~YӜu/OAF}+d`J?M`b_9lYg:6M9$j"(8*l!#"3ɕ<><ᡷmD+W,'G6Pv9,$4 듴"*l +I8dNC۴bsrzMMCڂB6S ױ7^fy$^^68Ғ7Ъx 'lSajC:2ɪh4IY;N/I;2jGK~<N7'+_qjPR 2CSȅIj)e#dGRj)+ "-Iw! ^)ݒ{3ZWk-)KH*wpzz rϵL^LV]Er'dC,o-)x]YsW>UKds 9s#8Kᳯz+6_P2rWAKbQv#砉ȑ8> i *Â%pW3=|$5gCܕuzR-]Xd?Vt[lGIlΐ.$ῠ>9?kJ{R+MLcHdĜ ڝhc󫣠SX",ՖelbtILɸΒP<&@L1'7 +FH!1혲| Kuxi +#*xB"Bfyl9P+Ey, +&܎& +Յ30SI qrT?ٚXsd~Ą$9W∙>`Nq7)F*' rFpGl mv+d^Km%^&/&Uee;YYh;0y he-q'Uc<#[v*QC7ʊWf3!EWqUc1D&KKwL=R f?]fK{YhNRs{PE\E? Ư%s#$ƧI\ m0Ip$)W(CQ 6>uZn/fid^/mHY"'Ц4Z#kWZIɛ@% _3<6y|hN̯` }U8nzeE&)Kvr<2Txڞl XtVV)"T1\"Ԡ#53מ%#N:zcW o%uNߕV)*׺s,&^qXƣկz];Z3;:ZiD]zԅ)@/xt_} 6''X^,FaGx!#BrZX>&}ʝ<l=[1ˎ,89#j+KmQWH{Gq*->bA%p mx@D6Q;d}H;2M4õHM= ,4:},hn%,|]"ZBPFe[ WH+%g*!7HcIX:&g뿉!'2Пhu7=ǜ'lgJ]&!Y?ڥX25dxȟx[ vJ+EJK4ύNQD ۫A~e%‡,j—X _u0='EC +,})G~L1<$| O53z&^dպ861Dϓ:> GO&+ 6aU! uؤ]M Sӊ +4o?fydmH78Î| ]@G@&˼,B,vk71ıPTƍw`PD_v1c=@pzs3W;Y<c6cTp{Gߌ].uŘZ]zmqmP) +л5߭?/–nѦDAhd#ƥ5S Y/1AXKh'I_DР(gApEHQ /;Shѓ!_vfYaA|_0\:X_V: 0xZs +?59w,$Fl \WsѬ1zuVu_ D)c5zx't"v#Qh PyTŅ,FR$0!Uyf^8TeK<;B}ҹ xaRp %F'}w}(;|׊ +WCoxN(`eέQ0Fu]j`2cnj2 +ڵi,mIFGptAOل|muT2Q] CEkq_0%D.rM̵͖·.oߝ7 c2C!|P`7lQ) . Ul^.LoSI$҅ +JY+mb̝1l<B\25"Oη5d! %D)4m֎!DK$+myx0_1'l^e.ݎP#r $CQm7_pqbJ던 MK%@kQkLv!13D:]C05'N߽0"0&R|fgR,!xQoƵTHBX U9fsE H*!k&sG /X͒!Y3;X׀e߯@v佮&$ 0ulD?̓QGV)/8#r*LR_}$S4u}:?]T +GHfQZ1ʐfj_[Bz;S"_<Q' +}ϙ۷K>r!Pj +ۓ@c:Pۊ!S qr0"]lxQWs}'3ۘ +-Q捆TlKو8.G'2/N? _akiZm4eZ YQzu?Yw/@?QR`@ v V,o/2R%'-r+|jHiqQ ֕Tx.b)d˨H2ądxvy|/hLSllu{(wsSh%nsRg:oaTi!T+XпZ=kJsԮܕKwǒ?7# FA蟋`: +@ϷFv6N.6&Fv&F2"cW):FnQeMuOwc¬>\khq)EqLGEhX‘_Ȣ `O_T쎰f-j-|o¹ |-m{+T@]&J&&V&JΎ&I:v$6=w A6QKNgДTkdm1Wcp}X@@XːE71$tmwOqɡ9O8g'o=8ߏgԧ 05`Q{&RqhCڦLj)է#=@qsQj%dM 6 U뷦#,Z5jpuM{F]evYWpp=K3F9CUFTٞlWd.4|̦2Lih :L4^cXhǦLNOa34YOuM+ot$Oit(Al&$ iXu$Anåu [z/x~n3!7 rQ8 +S~`2E$JM58qG:; LlıR{Z6;jЪ,[m;hYȾ4iy.l;f!I3 YRVme&),<rN:nsNrC3:\ptte'!iSb;TT Eڨ~ ]-in!8~s=ĭ<ȸyTQ&wfȀ o[7Jjyؓ8QatD2 + +#m^sۭGfRo }kvGN,^s(Hز]\/7|ѷߌb1/1ީ}6`=Tm7%R.r+o%d ͠$T~!˅6 `܎2zD;g-xr=ăեDֲ}@/nq3:Aوv갓 ;g=bHf Itm2I3+9OD8.Eaŵˀ}{Q1pR,ngc?SPҡ߆_^_P7 ?ڤ߇fQyuage I +󼓃w"a!! w$(F G5[ fμfob[X  .q1q'2+@i%9%ʯ`v ejCE\HZq`|˝潙G&Bq ;s׼0&.<2cҹ ]^y6}싷)JV8E'qTbGFԧ$υ wڣE5j?6ÂIѴTTNC,>q? r N!&|N^3Y^vaLlw!k1C9drLrw"{|~nz)wzC[̷}ַ7] t6Cj#0)I&K{ՁWA ӟ^nG(}lwP{Td+×H5m1H;q ty )s[I KmxM +ϣe,tsͧcSpl7jE6 +t󺾃<%/L1fԷ2Q,ō r%&+ 5?3 4AyƸ7La4Bd뚒MaܟԠ! .9w|(ՙ*ʞÁoԅHBh3{&<ۭnokt/tuBnq1.02Sf-Z[GK ͪXmHP5H:͖h̪c -k ),*9- jf ]$ eQΉ +YQ3 OH[i򀮬ym aSy-6i^͖XING$M;<6kl:Hb3R_ɛ:&vNKS8?#k̶@ ~ဨN;g,)HO%P~I taB6QBEg//qvvtb> / +C+Jt1`e.Gw~CqpǾ#?ד|K pCTǾL2V HkEݥ(rJ:Aьnc[HqV귻 HY+{t4{|YJ.7dŻu4PE/}g:Ǥ]H/e!'O-Vл>s+ Q5a__¥w綼B245󴓼!7K/:Ck?Fˉq˔Ԗ2GS=i7oqSU][N'ybͥ#pO"i*7 b[dgr{A(N;$uCfY}gWP儘ʫu.Cq 0 "i! '9as+z# -י)_wmIb=T8dz>34T8Mskf]V+GΨw +y!yV}XUzdN@9)/jjqU i~'(/&jw镌G[ʇY=A|\hwUFB2OSַ T{&[=e:=WTg Y;GwHad08b|xd$4$:aL}ď>/G;ogE Ewٍ2aWޣkBKS%C&鲖y?p'qȁX>&I/V<ڿL)68Fz+i^3ep˻a~g"og g>fSIbMC_>,f7a_ ʵJ xBc9\k-CTk(k)0w_^!@,"ojzFF`[K9Lڹ: = ^u-Fg_ݐx:‹ۋv3`ӊ>7% 5`٩qۧj`IC;CdW i!eθ+ZGvHщ:)r!x3,lJ;\U%}::@d\rEyWcɠ|1)We4=ejCV΄jbG#pL`jT>T "Du?kw9~iMƳXyoW/m͑gP@ +Հgh/sHu +dc]C,!4huQr#L|ш/txkƮz[Q=(U_y~CG@OPk{p_-`$\, /o:BvmVb3tf-|^,\27͡"mD)Lͱ^wF|+>2BTSJEcxÀlp6::d5LH Zl#e`-_GYɢdޤvˎ%ϫ޸3;诀%dR^Cr_g5^5HaH +n!|][_ZbWt) .˳L9hsau2`hC]2դoIÙn~q!'f"ޡl iÙdJ_ˢM ]ɵ$6d>\Cy4{\)˄X<-<;5d]oyE6)T> +lT#fOj["kX\?}sjDZ;ځu;W:[U˥ PԴoWd/qWM ]ۈw[nlk^౧Y8feo_a`z7Cc'j0hveZ%n]0oY$o?bA&B +MrCHe&FY3(%hL@ϙ"]m +:SHoTx۷MohyOJ$/8 ̙r!Nzڠj:j?̶u!b]{&v+Z^|tP]~eTj~A5s1]st3p4f?eE|55R~8%\8@C`'*V.a*Tǂq* rrtc٬40*JZ;w/y?kw}${b|;hOdNrbNsʋRQfVc]篚7O쨊2wͽ4o>/ k-(r6)RgBYUh~7W(5r|1k5o,=W4=X'd јJaQŜ} -1cs`cH8Y\=^[]Gqd(#o?xXfԚTvT}0cӿHB (%#k̨0 _0t%}`](bϝB1X-gtLP=c?~zvhQ^Hڤ;ir#Vgep +{4RBDM@HR>bq&y{d98` +Q^-/WJ+w"V49w-ͻ7AVPؑauΟLҘ[ Lah1400k(+ +?Շ?Ф1员4B_X>Kz- oz`itaΊ/^LƘ/[Ds>9&eg[I_r.)Ȥ&[C:{he*}oRCUI!]ZC + 3?Э3c!* ΠOH0fH +DI}@Gj>iOpA^aHRuooϹq I~$b k,eI4+0/; /5@/2Ÿ@4(etH4 +)4J I |TKK?CrYN<[3i%U(OniW>Ǣ}K#M.%K֪1Ӿ.FN4z;H0of4V46bX#e2G3A :$:?[f] ^<(FC4^u:pGΑ,$.*9+$ĻlGpwxkBu-.xa5#*%\1ƽ16|ʩ,Jŋ&JTNq,bVA>s`<"3UZc$L&Vp6&c"LSl M(!a&VHMqqYzGܪrDn@Skv4W)1oM'r.t/2'2on3'vקo<T-/pEeVsӔz,u(RsRMZ5Dl`tos_ G!ulc +_f׈+HX6HD#^6)(KM2YʒϘ8 Gw6 B < 7 e2O +)=4qsCy "%Q&:xv^ sʮgnI 1#Z_-ù\}xo;׽\v0$^suj$^vguިQN-JM~K[7 ٤oY8s$(GxGp\lW_B(Y2." \BMڻ"wc=Ko$ƹ0U51K֯jn H 2޵|^ Ur!jLŤ mdRre_<\%o&usV\L: N\e0:Tr2"~<Mm۞ùitlxcà>/ %G9qn9' EIFM«tqEֲ)C<)E .削:B%+E=䏬)vYF|+Pbt#FU4bL0n^CC|WUdƹSm.m4{̶cm[urc?fְkn̨ݺ}CrLۦs W>).t? `"Am)y1#5nocv6bB6#-0HL:`OLN# ad![_-m=.V6>X [Կ^pO <c3P12]"hv 0lа^.FCW3Ah,WTjnFrq+!^>Oں/]b]l]?gκ͛Fwϟὦ *zqsxOb gzBN˱MO+ eIOeeݚR>X7!.J1ꄿ}/g:2ys]rqF[eke+Ս3r6ҶvW'pi)Q5ub6W +,?_7⨥nDhcg?7d]ĖKVI7d \ØZ{Zyݣ;ֶC{7W7PE[׳z=*8/@eX_񃔶geW7<ó˺c}~e(Zʳ^|\=*tQbwe]h.et - <@UpDjM5"jZθI8"bO(NsԾQxz*UG|}[cPiH3} FW DOrBD7RTV]rw4w%w&w#^]6 +[,1Oxb +6E% i[ҴVh>G<)G9b DGQq"~խk SJ//fw R]l HWv +jWQ +>0NZyLF8B-=6* rbߏģ)3}Y?Cݽ #V!kf\Lsd- Py2htm2{<҄<24T#v,:@-%oD^7>z';Y1{&7G(?>'ge@0{\T)Joj1| +Vῤ8VϛUM<9Sfj^`[BA'b + + hy4#P8gGCB{/JWK-yaJ$V=jTnl +-&%sofTvhi5 +ߧRCåt^uULX'OBјdc+N->VהּxG7 =Oil+fd? +jHJOdfS}.Zc$hO)ވ:OsebUruޘB3]hYEjH +|FPu;ʍ2 Fկ`=N^ Z' BYпeH?lxxe6]bVIckgIs`2qoF,\ ///;΁\iPQ $GJP{KP)gn٪&֩#iH@²n/W9qJ4|ey٧_C$^n F_/|&ܓruH[\4E_3K+cj\TEpٲiȬMN5(җ),ccX\lk/gvͩ͂7P]+#篊y gyWfb#>_#|INtQC9wDIɅ@-]|bkm QxXv,3JE\ދAƌ +|o@'J#p&oR>3VM> \3%J2a賅! Jm ]%\pMˬ=%-ρ;N9ۉX뚟0VY[7ܭuw:њQpШdJ!$Ym`_POW#E&Im9IZ('+^kbƦAŘb |x?X89RfRfR/1RōNեIBV+$qږ<.V$0BȰ!=J>cj} Xq1FS +uh4NU?Hj*|3qd{j{G].lT?CU#.p$/jqsn!jz Zaى%X)˥   /F7Q{ir:Ð`|M:ꃑ>`fD;T=[b -dxާ9ߟI~̤Uq@V! uo9`YEv_TvԻ*HEpVM1W^5SEpj U.(CzO3S@f)o@ӯiDr6g3跟pq~N=Fq{9 y+3覘9D=2NKvt,¦;𘀝;.*WKt5Zş֖\kH*}7v)"#l?ҝuMw#|kxSpr}S%Ss[XL;]G+UI&-Uvu n #Uݟ ӯݟyQo{!DF5صw hH&V8g /qlQ1҆Ag3.i n,D1qjb5$]?rh@(ޒ in+YȊ:RM\o;D>!#6!)ؚ 5/T…6m !L'!dqa)0!Lql wǪeVmDGbp1|ٓShMw)PP,:ӥK"ΙĸO%hb@:ӪZʩaBbtJe: ~Ȃ>/'^?/nuM[Z<éQ$ 5 Ejd `f6 +ƗjgLÚaL iFZOYQ]]qDM1-FvREFsnB͍мNAL&YivZh309L+*; @8L mASMLJ ;I|[;>+B'̊ٓ`=R̨z D?^q3u"/*K^0 GxbqX8ߪg:;$[|_&Jg=3e,/mrO@Fvmg%55{^_BqZGAs"Gd N$[MңpX9љ8&(1RjSL^>x'FVeZFZ *̉}a4sl +lR2y+*xxd%u2]\ڭF:2i !nrGbkiL Ǘ4A,Əis~_}jrD&GprA-&d+jU +aoY +멯]w7ᝈ/ym{ \5*p0[,}6!tV0lh"[Li]kE#6GrUPq PL2v #1wQ+;+ΩƽKn 2 Pi-&m͙V}jLÍ H#.@¼~`Ci iY-XZuH"iDEh"&]-;܆zpYL ʼnLt,0(%jno"ϙ0Ct^o2 ZG"r4VKόPYY>(?}/H>%]sL MҠ6|ttƾ# S*y;/12P (A䚨к;\ VrOz6_江'`@(q)U(^LJA +:jhS]UlIQT +Y+؂숪TH3Ad)vz9IܦiUYm^(Nw?mp_7??+'5Ȁ1;U8vO~gz|1hO9bjI?^("$оO=_#,1>(bɐJwWz˒b;m +:ɄZK^7nu`mWfW:]P 7=mYӶV{vr-`&{ŐI7 Jg1Њ$F-jlsYT:́&c<`z9*#Rr ̒^QAex 8OnQ wޡ,j{+jқQl< 8YIGYQŤ)U #.PR&i'.sӺbvAd~/i'}eBMj4vvwhO%>=F󾑢N.kX'FvKfs;ɠēP=%H *R8Ɨ5Lh\')T8mPe+ڲ:'rḽ' .& +&QyF4z©nLXHbv6`{Wjׂ ؔɭ *y Ô }sճ_ƏbzU.H5LVx +S jo0~@@TYܒ8ۥfyD,,=Vw[&9l.\)G[[*j(bmy{ "ѣǔAx?/ -"G 'C7ZFF+9I\dٲJjTڹ04=cwABhvlyM"2W/}2}W.Xf챂o g?5c>!\dmwupM7rsb6[|?fnk]Ĝ(7g:Oqtev +a> K_on#?CD寴Ξ!z୯}89,Gr!` +ْ XB4sE9q绋悷t9u.з1 }1 b+G]5S8`>UPa,4%򈰂or.,Y@EЊ8I9Rp1;-h9C0JNUEnNIoUO =Z%lNV刬k(ڊv۾[yM\nTp4nR֪Vɦb-YwMbamV1?řu9uf0*7̅U56=M97hC1[E# J7smmskѰ<->/(E=\ٌL9IԯDWEfBe(I<*`F'ZCʋmHKT=֝{xC YH5 pڵ9+WSUoSnf,ɳu m.5KeZs˷LRVCʝl+2Q7<_OՈ"U9 '3J21#gF?@K\ _aJu%[>돚 Ԟ[=?i4&p[ԣw.hC&iǏ\ OQ_Ȯҩ"}Vegʁ>mpfUàY.*O-܁ϱp.WN_`NBiD[|'d'Fd-a= +x 8儺׍ Jv~vp| o|Z2aH`3,&a KXtSJ JHF .YW3Mx O ܕ~.Oƨ=H=J">lA# UOh!!w,Ct> (o4QԎXK'Ohl~\z 8]Ax ]_\!L(8QT+nPDrC8h\y5-ǔVs-(4^o``UX ]fcÓhL\N$SLwG! 8 SH>Q% ~-O[PR,QN6!W(v +x9X_P KLOߙwPԪZ$bѵ@ɹB/Oh\*֙DuQX!'Tow#^1`BN <臿+`Cr88~>D9a7$T5"V Hݗ lq 2{\d鞌 w< uȰk 3+6o<v/t{?sPsMo%Ywqbj eN."I\t%j,a;(,i + +gbY>R0V'`MPYl(D:y:tU$\'9~IB +g5lBM9C-+gO9^5d,qf 8PJ[);5\3㻇Eyr 5l*2u [<9YmԆ/c4t#k$J&|޷n ked컎bq=ܝ+_֗RQF_M3K}Jlm&6: +2ۑCu<\ ufMHn=/k^ad'RKtڐ&n%F ޽v ~Xl?',I"vEg sxg`Ky],2OMx wa`]e?ޕRhL*6&>ξއqJf]HìWΑG@.(1շ%賓^=>9-gX@lGԮ(>kllZg,[/# [=~Hvko R͚L>c;2duPQzRfP^#XAzG^f,1:w,7ѫ_4EU#haNȹ1JEhIl*Tfup'|?*$?Jyq~KUKԊFO-f Φ +ۻ:Uhf~J,{yN42䥏E1# +!n_1t1f*tꂼm8 jB̎հzrC&ݛCu9"(8oA +Srt[sF-[bJs > AIܴ"S\hyP=>+d),l߭3R^Zux{;{Vn{xwJ2;bCR[7"d 7:9qd\'Ȥ!u9wG7*Z ~]5QNJ5 Ba fVa>+C4 lpF?(@X@VdԬ."h[{Q橎Y-2"ڑ9|cU(%玐 D4|yi蕆Q<8td)=?if6+W ;J8<>&#YK VUAIHfnjs<̌p(TSu[<,JgS đU5 |%yo%f]>sbuB,堡' NT&LP~PNYec]c֍-!}iB]y+G“{27 HsBю& t?L'cmp ֹB^g˟Ͻ"B4WT'kB ߇e[Eg5.|#iCHBPF"ZB Ȣ-:;M^@$x UvN7@_;+ffv;ǙӪ ]B6xL{%oT zWB=:{@;P |&  ݩwa$xho ٷaR 8.UI>:F‪K@#aZQ>u\AJA2MT=ߌ~hZ6ɠUefJ?,__YɫϨ H2=UvNbQ]JfɵR7yT +\RX¬SԽ 8XB; ()PH cN%] j4VYgO $8hA"89h$ҨPTYǬ˥5Gc|e CN9B= wb]c88kOAFaW9:;DD^s`c~@fXfOeAeV Cf*m ]UfƲQTGY*~ =|5~@y91> /a_t =39 +yv"[i9/UI +! +1owbDFZxlaepۤӂ@b\sF{0o6{aWSXb`<`?>x"slݨ6A ̦ VPja ?a1vFQgKȩldm?hu% U {?8_܇]`FC f78hs(7^_Qew/u0RYed +~Trܒ_jؼ޲J-/F 򶪐Nb-V>5$̫/2566e옘ʹ]dH9=uGxЉfAqx3O'O-^[1g^AŲ9"b$HzXAC]b=j).xT?1e~Ch|Mƫ +(+!?ӆ (xB[ PyTz\nQ5o|}$lCdþ5z KW8DʏnΧʊܽe?oE76whSCPtv#CTTH2vHV&ptvaO:6HmȐ>E}6˵rTCN=WX/oDlqPNEb]~9+~ia6pp3[=Gx8KbPڐF>I:ڹ;J7o,@5;fK^@p#̶6A-j@׮r6G!]bBF$—Sae լlFVVBZ>BVkaq:Áo}gyX[+u5:5F6.M,NԬ=^͸]W+'Z57[ [G,,JWZP/WX4<,V:BbiDC&~@m,21±Q :\?=(da=+ _^$@=Ih=⨅X& zbf,j_lMFLB3eA+dx$3ҿC k5VÆ} +`rͭJGÆog׻:*k[Y;3eZUZ6G؅ 5#f=lIzXPȥ1I E]+UMK-,nZk&wads8V*-M*0cœ5N;Zj.⛍=:]a]]`KSV1u{A#!uZ#,.ៃP3=i@ӫEZ,*ʜֱH y_p5 ("_`ڈmamGoir\'Cw16Tox)~}NGz}L.KEbZsȨRcaU8X0Y584"N[pyi;yY5,d,7]m?">:;^Z_#F`W{֭.m.9 +7 + 9'n/ 8 6Xw5_U;7]<,KP奥Ir =" èH/(/ ,|E)(C'X`gM玉a8½ViՄZ,僄 /JF J;W^2׵cΦ rƯwS"Y8'S{5IkXX,)_(!0<^"; a ϷKI9py1ѣx?sDk7Ljec@xو8i"%G0la֘]@3+:8p1b8_ùosdJLl*}?KImy7=sG)jv;&ǡ͝1RZea agϳX4^ K*HI)j>8Ma%(F1;Pw-e^Ψ}&wpb8&6S@a$~e^ꊊ=Cp^%t[WpWV99c˚ Q6¤rJpZ'ptEq@ѱ; 4Y4q*%7@n2/DX4u‡rՀB[%IB{\ APdJA|]Y3;\%Qvp964L_y +o2ehHyQFX_~}~\ih"^+L7 F΀wBI a_@F1fRvfRJ P4u|O~gșSkRqY(%8,3B1$K Zi3SJS8=d:*&b̹U*+;,Ä9MꟐc;!VZp(t(zbU')'t+md[S0cw+K, +ΚKKϴ@$M[U9v8? ^$)E9b l +Z㔥Fa +x}TzN]#u&6GVA}YG[^aÝ&#L;XzEۧ %`ѾSOeU%v\X5OFҪҼQC̅ˢF dHKu`.\nmP+KF{kBF1~xUމk)Ī>N+DPu88no-I9E;^1ȱRūZ]ϞtjAȂ^NzRwOd.)P4Wh yN 溺Pug2Mo%-?Ϗu✰R"}7djpY!K?**+=jJՅWg8}N(%OV=^m+gjeA6~3+ g`q:;#(rA7v'EKS 򐤈QԏbsL„FΔeTS23jjꯍ$lPR:@.x@OL;% [IoO1OMiSp2HPq*ty(l_AM +/HRrP +wh7үn5E,j31=WɮGk hh m)=v*p - -@n@v +pn;4Ȯ] +>/XN]ev~I# ;㞵׭Y[w1mKQjuQP +;yqqEA͎ٛζsےZIGN2 +R +)T)HJRbvR[΋S{<7Pb(7*x,ӻ^ơw +FM16sJ1_A: \sڝlpOLjpOO&?~&P8O\A!~‰{pze!z zrqb~ԈbZnEq]J~ σ="C L95 ,Cg\ @dfXB4CxW"3i^U[1FS]*xJFřر׀B^INث"[BC4FMb0[•#[5EdeyhL$.VXx[){.= +˘]_[-FI•mI7=v1S?¶ 9 7X)r0-nߠ?}8?xwX,.Á]Elw]qcsbAZ(n#'ќ.Xq35ݤ".V5驡VkBHI}!$gx'zԆaqFUب}TnaBjA_TSϯ]Y峎G +JNH ddlߗ$v@36ltk^Se7JL&uvq2P@i0To"QeAPheoh(b\TGiu(擅 LSמ)M<}Uҡm$ +&?mW CcHIi+_bRW< p$OHKzY~ {ZD9R.|ؖLz8T +o$R9Z@uIVxbH(dY=զFkqbEB}(UE29>{^Gi{c]BفՔ=vۈMܦ'Ÿ>iU +@0dwQ2o˳e5M޵Ge eZ֍4vr:hwjbª0-{."WL rr9//nZf[%NP,!!*ב7My-C}7,f|GF.Owy\{GuϵCx C3PwrByG3>lwzG:t{ocK7RZ\]( }q.b Dɸ56MDM #w?)3Tb̿YrOd+FU1d|󕢊Tqe6KJh@}tRd<%ړE]/:u"kMS6h# %{?I=[ǻ:RNURJL|Fc:wn4Uw=SAm=fy0}wPLpLְ:߾}*{TG/)R_T~6#&per<)r_M[`aD bSe H%# PBq#҆H+'̈pYݩ)xc`K)<Ű??1lAbõ\s#g"+II/2b-Ҫ@.aA$oD4|HpuD*uNIzH RqaՏ +Jl+l1G;_7̓\&rLTCe Lͩ58_GB&lcݵ}i4}V57t(m\iUC5/ԙDǐwH_N$T7@ߏsT ZR8~0 ~bieMehe~zҋ_-sexof%VT>0RFLT;,LVj}i,~N s7%h'δѬx5cZKQ*!z؊QDbهBjWXBb\`Ot;j -?ԛ1=69.&;:!Wa̱#Y眗L2/-ŵT5JR9`. WC;>J#)c…  Ʌ Vb6 if̵f3Njr"/ nh[5O[FWDj1`)E%;u9\4j|,Y1eǠ{*C 2>P3z~ VLg,B* +*EIUX# $ ڬM:6@%Б|Cz,>Ov0SD7Bn8_p#؊10`"Lp XQ# F\ҌF_-ad&5BZru9Mao-SٮeJS"a&tz07bFmU]5m&u*b"%.óզ6BTX'm꧁Z{5!**O]thMp6 0dMB`_YjCt8 iT& A12IiޱWB pѣrpY4UchGZ16: +w`aaQ׌ yɭ@Xyv +uMxjB^U Ha}fH_Hv1}qpk,6[;E^O{{5+PD/pRW8XtK +zIqsde&N*ٳؚTEMV@z4$C5s-B}Mu&ԤFI!4r(A(ӌes4_#s;؟ј,5|`tTDBl5AK:uyV"1ᆀM(UCz\lz'i& M:Ph DxcfBC xLu>镧OyFvK2iݺKS-`|;L.M]8?AaofՒfl6!qHX y\sulŻ(UYH%꾧GΚswa^:A6[l͞Qȳ6 +VL-eڣ̕zSi{qXHi}CuA`yAMO iS*1h 7֧,}Ɓk`/|aCECQ ¸7 b@VZLWӗ?YR0QjU"S s-;[zX1ى~S~kBvItH9,ry9Dh ϐDer9a/1{M8B0Ac$1J`E2Q,qpbZ2lp)%4Bb )u.mHi'Xrwwʘ{@ ?|:$:Q#|ʢ]>_FBnѤjo*,*8.MMzxթ +*^ڢj vRXH9ɝs?]RAoŘV˨?7FRLaD` dAl,YM%ȜDžu# +6z{V\5WZ=7nmmI$7sn968=>z!ƃv8\ދ+hE~aȉ;^+ᡝf^V˸ 0/8S0qaM81 wg ?3|_s)K5+2ͮtA/nϭvXt\ìCU|,hx}q_ۗJhoViktK'ZM`^c䎹FmYT&߈#/m~76Vϻ5x6!$DW|VyU4-"V^/J3OMf1& +Z9 +!Dʘ wpoR/vX5Sj},PQ%5Ġ_3B+sZgں.we;}p4C-;J3%+-Hr"k$ڶ76>џ@JqɎ畈(G*R!.jlz[绯XoZ0qc~jD~X ]]*, j4T@v4N#ڟ?Y~PT-x̆tWmf`iNJN8!:%/:LҼo'PNθ'=]/bSCLj2=4d쾨zR'FǶm۶m۶m۶mضm{Nn*=I^S3USݽݻW#y5G"bތg{˘,D?As\IEG9䌕B18^H=hVk{V'Pb`LpCtкBw|VfiߞR2;@R4ؔ3PnmPkn2lbJGNpC;8:}ܭHr^7+{RbojgBV̟ܫ2b>4NYF>) * cDْ +An77F_O5bY+n>$[maoE,QCO[o¨BBxHGB/m=ť3h9N&hB֌pu;YnVՍsOlw1OhEPdF1+6@/iS$|Msy1~ n gEꓩA *֡s]qFFĔ+Oefj{y.,x{9;^ԄmL(V& Cn.aoQFJ[LXثP'An&7ۍ׶ |MCCXړ#p3{Cpc\R( )_ +ypiѡaSݣhy_^|ӓ j椎ƅ{b8sa `M8aA3/-%֝ ʭcW܂j"0w}k5Nhv-gwQuOGhZ8\z|.]$*]b!QΫI4.EDK r?wţJ*t,O.ϕZK0`=Yߑ˵Nt^ʺVE]4QbzY${t4>VP{~^7bx|(u#8>1\dDU;- j!r7l ŸCn7uA- -c UpރмӉޙGo>ͷcپ=lL)2LSD<x2,L|SQ|y-=}s{ix'Ʒ]c5V(2( gK'8C' ,DPC"}P$IddF!ZmDS덟5~9׈!R$rW#V>=ds Ё1@JƾC5彦w1-$D@k7~,䄓' q$*_@૆/%7_$@s(^1T  ",G#rw Erh Vy+_ 9IlP%!A(" +Dr0%!ƣE/a9izӾId̃8>t{ {*^խпLvʙс![#*zv| +~.X/wQ~eDTը"c& O ϥ5xs$ȒSy_58 +dXG&߮],3?R7>|wu[Dv~ߕ䭬|e l(珥5ܵPk7q !S* #%o m6#a>E7Y^>oa?ZEw.JOuLF+}!}5@`_rCݒFp:K*4MK@XU6R1DBP%–sAHp~!ii>;u"r0+jƱ *3giR LF7B|1ۻR?|}I)q)ObtɬJ7.7W16M}Q>h""؇CG/A4R椏N#cKMykC5jguüX`lY0k _t^\忼ixxyc +88uz 9+4عEUWK;žXUkԴ;J-Wiެ8ˀ!ԧ`:&yjT*%w.vF"׋W;d,*mvyņ9AL DmOa? }6|X^U@'' +tn)K<^BGl<#\AH(g@o?:d Ã:NkqGC1B301Rֆz$ ư 0v;*PJ~W l0H9_QnNٲCD{($Ho@hMD !vNI#iKFv@e1l& iaַs@E>[pVD8e5)e?[ҴAtVm}" m^`|NvIVTQCZ)S~rIGukmҢQqoY`ٹ9ͲXRhG|m0l`^tm[\M،IxXм"loٹ1-._ !Э"SUQZXX~bȱkK`q58RڶLԛy}ek6|nm-C0 +H-U҈τF:`逺RtzBfy;)Uɣ_OF&y71>HtƣW#:Ku3 n?JŴ(e `V/jrƻ}v9n9((#RM!Du%#wQ=}\7ᔛUM31یNLew.{bI17JK +ͮش.TDTڪTёR@uԥ;ezV!#SNsz>Tx"O`9\Rq!%C)1l1V[F{wu aZw4v_a oe[OVp~R_JOfzWşa&l?a| )ˌ6F/:XkwK$ϵi/*'gdnj =A`Lj,vI2Y;Z ƭl}T-Uu;}:mW7C֥w&b0I{>sOo~"*3i(OrMԖKKOq,w^{\K'KMO?]@=[KD .ek%|v*zdfTvn׏0]fȯGdڂ]@P;OJ.tti4e**dYʏ0%ƠC LYőLU $vM,̢Y2eJY Ifa,̥Y\s uO]-8QBؙ= }F6Ǘpىt2r[ۘWqb_28HP]ӳ@m4鞐<-+TȄpFPiwvde>DFm.{LCbE,83$svG5eBg*:p4+2s %-h@(62#`mzhQ 74/&G/dN̍Ygj:X >ؠ2լ04Wі*u)MIVl2)KC+ȷ#G>f~E8bx-O+(4}PЮ1:QjX +8Zt ^U1 luJLuѱcFbfn~=5<7iBBÊy'`jWmEDqmd=JMۍdwHtTm[MLF +㘲jJ ]h =|UW[ WIkhQ35RWeMVb&0d3x,!m_0Cq#D3Hj4"BDʔlwshrduk(%p|Uпn12N5Z!Lq6#"Iafف,FBagnbaI.=<:ȭam +i2"8!evIA&''Rϣ!+E]D_]%@=zPy6R`%4lvW7z+vW7ڜ-t@BeLy2\={1}}F Lg%!E`D/"c +VC{ ?hٖDضqћϰz21\@o(D:P5a/IX-v-gaF;M7{p<8=`.?rk8.3BM;wn@NV,:Yl6՟1srK? 땩7mpS͠oπ nҝ?α}f?uL30wa<ܰw$籝:?6 ,>GSx>x(`R2yEc +;(܇#gTYp))M"4HwPKҲt//螩gT+"U)t8bV_o)9< >렆=e{,561|LPBb#_T͢^މKN-:ڱ[v+6dQJS;G)'F2E,] +?LQQI_0aD ?OʺƲm*I)KEI-@O!mf `h82|mM G׎E dڝE*p`|՞ HrVa*״&uILlIX&T*ʓ]X'MJU?.J2O8x%D7YAh>]e +#ՊuĘzU^Ӊ5%u_&q^Y|'F)b[b BݒŷC%9_92I HEƫ +>MIbE;jJMEca{.L'bcOUNJBum kuQ1x2NV/|ls- գR)>j߻M 0v T~x=r[*b*?;EG* bCO)khqyD,PbZF[pM3[Բe ]UF-\>6m[3[Pj`jZv F7a F  n +Bof)i[.M+SFo}2oSolr֮$WU/i/eKl.$V1o1l^E6W=,I^la~C(g*Kjm+t&JO}}Q쓬n⓮†^ #7mrM{)ʚ=_E} gZQ*J\[TT +hn4 ;F,D`J +7\ꤍo\j,/ݙEDU׋w~.aU 뒈FVHrE!ea|]@1jۗE՛&sm4}awdyl̓w_~L5Աγj Gs[?|mq{w`K5ݦʐ˧?d~4vnf+V=rQ>=vgU\>DZ/`Ёf49N%,"w{~%G%@:VnԯYs˺*Z a3Ѹg{P(]0x<1}4z%Ok_L>l?iirvm"(%iQwU6 d}2ԍ Ԉ @ziղΩ_zo*[\"~T=~Eޟ8eͫ[8u2?(a*^"֞-ph>pM?QLp HMX`K( +܇/g&1=r]B9BK.!|eb /x!;#p~0= k|XۘXkvo +3/z;4C;Y[ KQ(:BݗbWc^;Wmѥ=):j˫;֤n^A+FQ}ZnŸ;rWP^ԫ{DrZ6ԫ;At}w_앯ni[r6wfy!yȖ$Xa'ְ-%[n}0=>9o3XD 1)ok?2>r(Ѓl?\C#rn܁pLK2d-YNVc nb"uð Y&2>ԮjMW "zI;&"V AST'p'k/bԔ/%AiĶR3v|8xU;lPnWsnĺogbW0?øֻA.=AgsdVryCć1Ne^ۄlbQҥ<8Ļ&) H3E;f۔>2Q_ʨys9f:}ovm#(.QPsj~Z\z~MQ_ԇ7 nŲp_ J6b$uʟBz|y2^H\wWdOqae (Y\EnPe +bTR +S597ÓhbF:y_6!l׶\+#ߢP(Dr.\iZ1L91VVP Зz"l!!K <@u`HЋFd?#r `'8OF:)K]yHi^Ӄ?SuuOxM^o^@'UL'3/I"b"T,Ǎ"d"X\Mp˚xPQaCdV`,: N$JdED1Eǖ<ޡ im^U}r?N)B<8SF'gH X,6)B] Y$+) %4CcMijxv@Ԛ$aL#OOVYaLAsٴ#āfMzS3nZZY ,A +os='|@7DLоF[g6Mk]ͧŮg޳6 OMsc,% !_9__Wg|OtB-tVplYDY=J~Ĝ<> Ҙ Ș3ۖIsll;雿{?Ě II$ gDD^PXA '򐧖O8^m<C;)QzdIav5ؚ=X #bD 4Ž98ErlD*֨ط8\!rE|ZlxٗDcXs2 4Ls4 +-0nCD| +X׉^$8ġ-K#[p0)c:zp$cxC8p왢#9N ʱR8(/>RrO0DihJ= pN0dJEˍFSh ;-@7P@UM  u&,tQ'qKnWb,+ɈrSA!Mtd8hoꏒRfvo2̴H!%'#:cX3`fffcꡥLdYLz;MRQg*\10%NB} +nU߲xGB^ON¬!&mN3;lVW?vCanjoAY1*:Bqiť'뿨 gEYx?5e7-9Q\un57ʺTKNq4'H,> "7}L }kb`7>"`0HDMyn 8~`+|SBd'MHlj:U hB:*Qلv=Qqnޑ<_j\jNDwȞHy^!Xg(X+9+*o]2EhS Q½'HNl¸W;QQEf]#C + SEYHh>-6= '\ԓ\ؓ7wv)ޮM'|='ctc*,K}[Վ9G(>Cj fw0 x"Pu|sxOL2SE̼-L^ViqޟsD(@b` pWqpHќ7b  a9.hs}(Ute CYCJ+ +씊fQ?BZ[ts\UGs XOj(k݀H877 +%T3UW'EPͥ1 j9ẗ#B0!@#F10)P#FW s>@!P#V(o0p%m-Y= ;{ +3@-.͈>-\,wџ;i%ʯOlVImlxr'$M[JJﺣkuS\ԭC;C\40F ܨ&F!.Svt:/ FY;;l!;_7I/.^ՖR Q1aQ1$W7"}ʩr +Q[!##H,hniS=;ǃv_q:/}DzˢVT!ldɡ/u,5(HKR[kiE+Ca|sv_NoVbw:_/?A!)~T'Žܑ.INP=Ԡ&$1ciȓߴ|0n~<#'$(d0RTrųvS`F貎`Vu΍)F>L#%q $CFlGtHA)]USÇGIF+ +, cQ Mp%z}QéV s +]ut&0 Gn2T0}Y*?AMtx<-ë ] K"7'oe9*Sy=HyYMR`NYNO%=Cb.Rϥ [+BRUЪaysZ5%Kq3EʓPQF`4EPcfTzG4v2LU'$€Wk6D~*"4~~YXn EycQL0qژ>kI3RAvzaĜrN+OKe 3t-U~F& X)U Yjdr !fSd+wRfg+]:^? ]-I˥n."u|1KmVOR*thA|bMS[$FZ;8 *P%ph-aó,9 +ƴ&(Ri14BI_ULLڸSz¿Sz??)cop_Gok_ǵcrUп-v y-KʅCCۇ-ﰽBn(wQ ɞzv_4=:~_M9PB +V0y]w2&%tF`߄ ༉PlZ;G"CCP: +տa(T01ȾK^{}uۀ5}$/wpp0{F#R>_Roeo<#=݇7=hȿ)(x÷\ȿ1?)\SǑ@⏃7oGyyX.|6+J=е'4s % `Vbx83(=~4H^@f hD^3ppAu`XnaxEi"2TK$ڥg!r)i8 ~6HZgv\^u9)蓆GK =Ϸ'rC7<\l^5Zt_NHGiY\Kģe1LMXCP k~(=jVaja* ݖ>>@)R3qXcis2n8 + "qe1oVR?4Un*XU|\ +e+J.+uUUeUYd^J/W+Ŗ^a,YyIJse%\6 ,d䯔MsvK^4KgiesĶ9cW k6ݻ'ڝk-u}ջΨ򳬟Q;\p/;,`ԉZ1' (?N{c=裪Qc!|vԃc+/* FP6UDp_0k)U+q’*W\S{@g ;4u115suPp254#+ӦȍSWDDY!RKkk-t`npp;u, 2ֱ!4zzOPDRRwޝkͰIm6ўZ2RߋAh"("V>5> dI_u?ogE + +O2k;H խEA.[P$3 R#4ZGvz`mȍw\",CQpgH'O,P(8Nv+r٦h%Pu"3TCS2^FhNUm*7â@KT>㐸~9T [`ӯ]YW'{-K +ґo)4|` +wb؇*zV.*zR'`羮L-``,(K7\̞;֞o`ߡ?_/Тs9^^7xT21O+(bU5a1V;ZI V!ƥ5P@t?$gE&8 Э2W [Ŭj%pC>4A}K8;T%-=InN9 i2f+[ ]`*E^lƃ9g-E>cia 7oqWSuP֠:kR$f'0Τz:G]mٿk\R.5fi!4j{{W:k_ΘEƁK/햾Lw0Ijk[AO/'qNoA>)b9*r-RDr/Spx'iP>).V+Tӈ3ҋ邇޼!Lx=["CDk5fQ wI#Yؿ c낫)oKւ2-bihgg̲1` ⦻Lo" |{薣Co?`$4{狃7xlVP~CBJ(7s_KhuBoTͲBث[Ip7u1֟JJ޴ޛ=,ȶMH$mf-jr*(7Zc(jY*E9CyA;gC1diPGXSH΃U4Aӈb+{y*'|(+awns='A{ʵ?bv48%g=lh}p ڠ_ +Ypg2BBcoUdpȨʣ$xqM߀n!p`!dg 4Xwl%#s ӈ@^lgjjoI [Ħ(p- ƁNmؼZ$FWeKZ=We_I44]vův_, ?-w%45s{*8V!B U=Wi >j6 y!.MѫI-l|&T$A#DG +!v?,C푃Y"" LX8:a]#`亁s:3֛c-:~a2~U 世;8L.4YN&b#J6ii}+^X,ЋYtQH ~: 3q4MNaO={G.S/∡= oÈtf4!\{RB_f59g(=ߣOuJ"v4i"# ԫLuAt xA,76Ԅ:ER#?/pʔmZt#藲UpLJ_i[ط}y @2c BJٟ +=$߷;Y`*c3ÑKTQpS߄X|h5!Rc{@Y:bj,nch! +bԾB{W8Il1[/)q#\ϵ,]ƀ#ʣFD\V%%9ߙ@uaf +K b ؉󒑛8]Y]&hګnͧKGN*0s+ls%uX3y*lFػI3ТeudA/,nت.N.~C_>$U! Ouݤ{%|%\=ǽRcCi9xq^DJ6g8Ը-SGJB+6&('- w'AMT QV`&mNblv-s6_*s[=,$j7bM_8GFIױGAg`2+]DrNPG|o\ۿgT`z*I<+*^t:; YqyP{3/ƔD2bˌscܛ@kHzB|Ь|<jڂ: (֍:ftG*[k ȕr5[fm%ӏПv2A&9R 3~&F&yZ{bן$VY uVa[ ݶ_?B?NoO31ẽxQjj)Ɓ1P b:i+<n[IwP,VRi;֚]I$2e-"Di{ +8O[]\]]mcrtJ3}w(U`/TѨ5W+kZ>,ZuX<FMkk9X4AKkL< 5&j2Ȏ* 3Ҧ}h9`=g%N,`fw~؏t|Q>M3GϝUrإ3j{*3aɦ¼|$(=s4PotfEsw%&.Cr&(P,ˤT3(L!?z0%V(3A"+D{ cE(ӐHG@q|NY:ƭO+At2Ҕrh<9 byx*J,dTZjrY(=5L0cBN̯?`* +{DoeGe,"H12ɚxI+D9vtLbDZ"V Pp .&z4Ԓ_64p7()B2NPIف7V(ڀ}kUa2hb(&"[1rwraPR@ν(Wg;Hra~sc55+if㠵ttU-e5]6hpuYd,悭=pP"4pzρkmt3P,aE5&,N ѩeŽ> FP +сjI2 7wf45#w6;uE0 ,qe0p`n`ϣO/ܷAZr- S  jp]=~u`w&A(c-&k?XIP_s(520 +1EboXgH.|b/uX/mdO +MQ/#|O@ѭ5pzڎN§Я )JaR^_w2G!-|+.AȲ ^}y$tQY{' $sT:WV`_& vHC[d$;Y|l5L^ׂ Rj)Pʛj*DmBi[ 9 Q4g\VIQH +\'~+hHIŒc}DhN\Z=T|iF +ؐ,v^\_ܣ9s@HK"W?ɣ5]& KAˌwc؋9ASZEo +9h*fQtTb%c~@_Ni0ELYýAR,egѢ4nha%gGs˶"wZ O.ŨoK_6 +yɇ-Җ7ROs:G[UW"G)YFTFU5r/@oNPHXwS>B ;AJ(qSl<aA'a?8?3(&ț'Yoi |+JLK +/ưB b y˽s@5ԆKp3 ~W ?}H0P\Q-{q[CFӡj~+b}}p]'Q>1vLo|/$RZ;G̣Mɟ`.-*ZbͲ ߠ/Űoji9#>ȗ*~JRP].fzgN` /8) +.p|Ùf9A8UP3!mWQ&LoKBN!ni#:[e,.H9ȭ& +tjV~e7IT?ݽ_ RO*kCrHc*MgHbZlKJ. `dwHKh|}/&{x'/{m + BAn +TrJH;15o Ɇȅgzl7YAqAD6~Gꔐ7uP/; xF+/ل%򐭒y[G-IdlzP"c h,d 4x:dh9,80)2S) 4r$'wTպrͩt],dD@J# = تQL \Q2X97qg@S-cۀ|h?:M˔\³08DI;c)wԊN+"O76{ot$غjbχ$CxW#TPrU:fs5G0.f=Km C>p#Z+OzZi ɲ +څ[soΰD=-hW%]2}Df}vH~LV;'e./oCn"%>&$ ޯQVKr2\G 1tN\ޖQ_b6= 36?vO)hC*@a-z9@*&kؼ3tA{ŽlrbH!eZ9@C:mϊmL\hWv9Y!;>-f6Y8ԪĈ]3A^D~@X980wa%Jmf񚺂}.᭼;!KV})Rv#L&߶(>. kd+ma,pʽcf=ڞA AN`ʱMPWX^HVA;UM[YW9fU(2b% D*!:f?qߦ;mIFSg60EBKݰv:(at@lkw`r=P~ڃ?ޅ?%6CXN,ΓBcyPz()Ί|=(,).]_*UNGFEM*(=f8Б)ar]Ldi%/)+V]zB3]DnbPYmiHxY̭|siT'ibtm׬_ +hǸ$l KthKN&+m\hn b\^֞r-*Zd#]JnIIJnթqLRt R<>2}5Ǵj c>sJ"՛4K'Iw;o6&z Z@NUum{c%t86K3"چsYrrpK&S}Ll({ucG(MIGCJ0t3<‰Ch v6 a13hnN [[_r2?4-3wf 0UfwOj +30hҫLgq&XZ*Vu;hֳ|rEN_m3hmʓBppǨ\fUmC)) +}ndl&$,3]--Ě R=3Ө)Y(CJT%C9[;biRa-iIkJw9xƢds:/9Fm3e6 t*v*ʆ͵ +_)|xY+ 5o]6'f%Ecs*';U Cd㪶;Xm^$2b̳d*ʵz@?ɒnSSUk8fkSI3|r"WNwl}So):"JQRVO8(An.ޓyMeu7u/^i5W!5'w~ V]UZZâ֪/a^JZG M Gx*] xPwĥyP|Ra2*'%͌Dg64r<p +Ţw`muJ/ ?uN9vKz;A|KI +yu>>(gcT\h]˴򎔋YuF׬U)/y.xs MO}ci'Eډs4}VDSM I-Ms @ǛQЩOBgL^2K*Q>c}7OC7 A1lP6 +sJbvNo_sL 0"!H aCe^Zٌ"S +p*aVBP"̄fV "bM/V[`ݛ^^Z' uw+k9yUuMW> ha +f+jSp`)u%iއUǠ`/qu<@ p -Yd/b: (@c C%`H(h~*CF-j,c* ?v|_߅g15Vx?1 :#n{{>H;45 Gq.E! pk{=nXYK)>nЭ:oCdƒ4#/RGl||H 7}=(gV}_kx2}CG9~mGf)_WNÆKv?a,mmbžxfe}:*[ +4Wx Om2Pl ԁT@}ēhP`Cu$S2}s+0!V6"{Ja,-lVCwMHYNSG`G!I] + &CcCa~/l騦Njjp4Ux{;(o ?Bn7"lq,BBL!%p:lH9Sq~<l.9XLl'N6M¤n]:M# +ww8EdIL"JR1U'Ga!wKUeE&g-Hy'Hery>I!ÿ&"B Kq BÛ L`}7rw؁ufR{:G7#BdlID8|2x}bY 9^u/uM!߱ZPhy$hJDDis,hKge(yh:H3!`iխ,ÙbPV +AWQe\JH6eRSt-")υq|Т`DCD +PJpPl`VE#%d +*\b 5 R:ZIl7S-2뫭$yBH٩Y6JuUNZ*9Bb klXTHZ:A R Uâ%UcOB*-Pc+W(y[8Hd(1"%MdSĶsӥPKAB :+ސՔC$Lts4@/r_ks'&Cd0qK=4xoGl/[ +Hơ&fKQ_KCJiY9I;+d*,db"4:L>lH5KBtTĽY +"?  ݮ7:97P2)ĚTy2l/ILYMLh|$ABc{:`#[dm$™%-aJ}.?E| }. <8coS) +UŕJv H0s.h j\~1 Y9)4:&xJC?ӽnk]vK`u`o:Y0[=G JMkP5&B.ւEG =m^mw26)! CQ~ry.Qï}}Kf|´[5*"!f:jMc)*Pm7]2A/D ApaZ#ASHoل>`EyyŻ߇ r? >FP&4sP)9$ ZU{:1>T0Zq5u3X,C2 DJ)_hD,q%Đ}bhe6n>20%@&7ģëDˁ#?Y._1R\ٓC2L[}U ?eB5`&U7VPebK1i[ɤ r] +̰3B,İlb H{NNeD:r(%,\0@a3d@%'|㝅Rdan`&0ڳe&)u9kc`3$*Nd-f{i1HMIU9.z%\6!"N[R&n>B,L\ɵf ɼ !oXl+BែFgò+pYC+ .f7fLS$9Ms5-3-wY]C5NQ`S׭hO<Oɺ ky B1B9c؂D/ -uWHIOE)ٛx&uisGi6̐k_ wLW[w}×BgPO{ht{̧G#8vzVj#;1LæWz ]6o`dO3 Gߒמi]r$;kգᅲ25!/~^;uI]QxyxoX|万dIF9ѹwαwO$q-bcYcb +p-{ڧ>N\9tυ ?}sGWByA%> q÷Py&$QM)H>݂TpU>Zox3܀In@UmY9b"&lK[(LFP,n5Sn '3Ƴ7D`*mqߠIDࣹr8)I衂G4Ѝz9& TH@xHK`ukTk4<[uGΉAJGnz"j7kHOun"o +94ڏB1e+Q4~Oְ#WL04R٬D."8IfuwGA͊qO|U.z=(XJ7_K;o,|${) Yd*^I#U)bH񭃑mlo +q$K@cjuJq#eĠzPI =㓿?fG I +NWB #SvM~QHS+1Ƕ;!xLmH͐Hqb䘀F!RL%R)R̄ \vm)~YVmGyi`]>D=݋e@Iǣ׼=O8r~JL&+OڌȥM0/X6S"ȦV[er(.RDRW[xV(PDfQ*T@e*tq;˔r)6Pm IgVkefžEʑ BäFEpDjHEZƌS|\m&&r%JF^-RA{&&4"d[Hc+9qC>U=e*nBT\h]+ua]irb/K,1<`Cзxɡ8QjE36: LÚ.σi@I64 h'd_ ȧf:`HHuyu1.ruȻ޳nG@m0B t {ߎ:r ގX:φ}=6 ԅG3w( ;nC+azdycA5x NM7sa+ت5 |{omA7 Lͭ{s~!KR:k=G:px3!|Z'+S۟vbqP؀ +OqyT@|$)Uuy9ڙzb{1Q~̘,/Lv~gi&cnDxΘΈo/Q`Z%Nܘ%Z+Z^kx>+n%+Z/N %2/e;ӾK-w5(0vpEL-uFm+Vs˘c+eύ:N4Nۨ/v"/zQ~"0b6C8CKce`EԏN^s}O:Rs_AgN1:CQmXyxtLSFPu,{bzF-cN;Qv {#vQ-!rhΦ{Ku|QՀ#:+t(kȾKv4kߙV=7~w=ݵ-\{5+O$~nm7QȽ.(nx gَ/vaL>DaƖ4`ґ ǡ trsH Fe)e> Chsy?Ȟ,YÕP}D:EܱW]pKW6Ӱ/ {H) {\J^?" +YXe_u`@`{`e{ް|I{}U)UF.JU\п2MzU?PVuO ~AXI,FED@gTIXu[AAe%M4נ#{V-kmBZ]șMV.}Zn(Rh G^#;XǢB|i{{~dzjcDt0lG+" +{* 9M+U#GYT!k֙VyeނO +(^Tr)L:EJ&̰fGL/D~Kk7%RՂ_;O +㸠&0aRT~*Mrh$:~. +1+ 7f>d 3(oV\,W/j.HI7[|7bĵ8MOs7RCW]LГ"L%@0uTE@9:b +כa4MHDJ_af:l~׬Ud,M]1v r".;ݮ4C`gvW׮$OL S\{xF等u2ud#};MdxyiyoH^`lڽ2fr(3B7"y܂f xk {]>v{z"@ؙ 4|Aosy'eFz^C_O \Sb^cה95ܕJfL?jA`5HxDfP?Gϊj`N#<̙uh|2?ȓ3X\_QNM#+)e[ +Z{OYG5a\oJUr28SKӉ%Ua|1KNbVe +KjJ:|bgfR2UMÒqc Hb\&ᚁqh@c0{%}<KrRŨbPT417uN(2׈ _ґN%P :+@)r yՙ("f>#E?J(:6/&L}-p-9pD/tN+XB˕kN e]La'd mdM[z@OC Y|S)~yÊx.Yذ] Ǣ\)G<{*KWT5yFmGLNCuIB=h-Kև1D\tB%7 L!B+g!@wO\̈́*PShŋBF9dP絆X'Jذ ͕O2D;@S,Dv[Ʃ􂅢 +&.@RVuAa֩c]xi46إI0xۂlm[2Vh<]s).G3MCoQ_0h2e`hqum݊ΕPjS +qUt BܨU N|+QLb'77gT<T+pYV->g?UmхةQY-UwS$[l}Oo,׮W%3rq2* !ȝmȍvΟmNbʎ f%SM/Szq4E@GZGMػZ b~Ķ6]ك04a qS$p\(\bW, @E(&"tqns:,*S5,O-qd&'I>0X:m6}IG&H#J/P ]Y}Rl{q12puk{61eD~Mn`>%ujۑ!ny#H +ӄ4AnDG~ًx D{[ 3ٙې,t+DT%/9p.9χ$y_|c_޸&DV+.s=".Lt@AvƇ yHp̈́ea`Ҥ1cP=cA- S ܨ{v\='8|~"b@DשGNl嬠]yؠlglkM kFlq5F_"kRRV*3N劍.s1lcQkho4'Š/G:9I^lGLP Mj4vIt~7!D=NR*9yޮ9nͣ{ Elp$py3&"f{Na(ogR#g·ff9;{ci[.ن*؞a_zC1k +έNUn=W.u39tz$X)e8fA{.npZ +" F{Yiˬ?+=jbw/TӾp>yүt:/VĒ9x8>o/&]P +b [Dx>G<%X|i|a?!?d$ĵC?ZZHDԮ1nuPtkAG}h4lwgd (=m"I׼P'`~e3ܘ3j~2Gg(,%(O7'QΑFh`?K\GքS`c_ޑS9z߾5o|pGB?}s 1#>hg܎4k?!3מDD?ܹ|XyvnO|}ߎҾcU ~YCƢ>[Ĝ5U|ɚoР4*ʪVui%$ǒ-Oc1Nd 4M!S'%)fE'zR+Dilx"kPxA0ǟ1]j%wRYeL  # ̈́e1m[q D4;+0FNGa5kgl* =d 'Ɯf sXL٠u=LdP~Juԣ# m UK4HpU6xz "#?1ngMvq9~| Slcsf hFdtGPc*B1Uk<؟8lٸZK-PMlᦱ@Rug:|H[(gl$jw,X܊Ƭ[ěVr6xpmHϨIa"I>_K_̄ނBݬ-07}Ssi[91~#ZF/G^&n{364?%=58'AArҘ<䎱N: ҄X`>0iLPpe3v#:ϑ_+OHoeEw/Y#Pb!?ڂ"L& C)"1WS픃n=urݫ/.+:...=UlL{oa{jTpyb ShaRf޳UX$<ܧ ckdLyΉ } ~ߕ];{lǃrS}nBȼvb"6: pXH*6⭃YL:a.ӰE X6w1ȳ?ђ4Ȥ(FC;?; 0^0Japaⱛ"8Y'HXA]ÃL Q@qT"pQ-llDaR-b<~ t |vd l~2Gu5d#i$=QB񎏵ևՋme@BgL +Q Jn74 Zmg_d6j&ҸT-MTocP r +d\]8aenih!AIfb2g#$%hommc^}BfU~ +]i +dz.%Hp(5ԉ>gS 1.MKЗZWW+߂F^]"z|p׹kSfefk`soMCgd\܎6I +V⫲̷R_7©$J|Du1brhx2`2L i*i(݄o`P޺"}ܚc{&yT.Bt8/wB)0)ÂTZ0]Hҭ_sn\9>FVRC7rLCɔCeD]HB~ +zEѓ%A;#e"T[Dn>].AQ4:/%kr0FU!T>+w͗=lN6 XP:dd1(7^=Ԙm.ꩡ3t+Y,&&TڲOQ_YQRӁr`ڭ?G=ZCˠ:ןLJ;VWPfa1 ltz6<`r^uRGO< 3@$Bjr-\6YqXQH}CBS?A*KȊ|KT +cfy=^8Qibrd:#I핝b~GP__36myx[Edo'oA];w'p}EЏC}'%{ڶ$gsgA1.>RQ6XJkKkŚyI*YnJ]Ŵk%$n&TT 0ZJUWrgM]]Rd0d0v_>r J<)3 g Yh|b-z+Mt.ՃAP I3kesLOkRqڪ} ?-}8[`fYef(@/^U;3HW*$Ğ*U|d/VCoUpp`MܳO{b0RUS` :x4TPUE9CqNd~UlKIo6\bn/]Lq^yU[TbZ8hZVL1jo$+5XY{40nЩZ _'(͖4j89 :@ |ECV;Š C`W#]LP=c&Сd=b̔>a\IACQM8368}!sX~%WIvDV%^!jVMa5qHvDWNE~@J1o(OUu.Vm[x.}ḏp/Ehs`A |ol3Tw'Fneug +ȡm}0k5֬˶EM^˰CeGH9aӦwwT; +:5R#% a+-6PX0ft~KC|Fg[j(1!VfmIU:GR_T :5m=$m@neX(!ԐzOj\4L厮s\kI( 3 %Ñ>O^F#bF ϞT](NɃGc܆J#oöjCѿ]P[1I 6džAb;@m ̰sqRڣrwev#W  Ws?pF7ۧm;@sp Ⱦ',JSDV+ctOrF1:g-i +-u- ڛ[O (r(^K8Ye>Wzo;G  Mf$"F,I׉9TFPrgb$0PScQdWf>_59ơV8dcFi H.<|^EfO I:;i_ʊefqQ׿-T/5L; +H1Lm7 +lռӮ؅f +V?jb匼vË GPvXɽ]M7B➂7Zi] Xd7]Bv 7.Ƚnr|kļk=KƝ^TC ^`>Ub !՚8y*paJydd(OuD8S.:|.N چ~3Z11Z␤ ɬ +Hf뉲1&E# _h9pmOy k9Q `=d9zߨnzE(d6&`|2{X-F.u.rqd 7l._m +&|;a\(eAxoW-Zl1*X w+?²6]日(8* [!{s3zjT𛞰erM_dL̑bԔl*.~%"S iAN 9@҇ \K/q;`C%/hן`=@ Pk<dKDǢ hB1VRQ@-HTUpW*sc XMt|CX]p}4<ֈ %l/83rd tp ҅2CF"JAeq%rCe$aLZ(j'ujaAub֧iÊuԈ8ÎuYB17w! CG$V*tMnf ØVHÞW.mr"Ep)eM_|IC~{ +3#fщbL+0"J->*V[F[XR+*g56aB4p~% -6`:^ `f[Js~'I?Ao/(R̔@/P7hʆihN$ ^ + >8BO\0=\kbC[חfgD:x`Q:9.o4ql=M¢JXQRqAʗc8 s%ipxQ~WT#hQHi=^6^ݾ. yKq+`$K=Gf{rW# \=S=#O~ .=/T24V.87VHIcR|X\?]s)O=tH@A@zܭ3bZg' zBB0e$ՑH\AL!C dM¿LC/{>V"2T/,n +A tF@)e񯨾^LTR#'kei#FP9OöU-Ր%w-]׭?[}o=AfK.3=;fY[Lݷv+j HC;<B *V̓t@x!c(\ U K[;A '>ٮn}}Zܶ윯] I߇oǶ] ҮQ +JKH![Zqc dDKQL.J39,KXUT*,;YF[[yYp+dppWtfśUw Һڅut\uNy0MR05W'S[iB@+p'A@zV6d7%rt{*NT}".M"b<~b*6$'%Prge+jFkNK\c&XCxHau_˿;rArh]lM l k1)N*(cYfIԏ"!"zɊZm׫3f΢# +cklb~ZƎg_\g^~?anIb q!ָFRa3oh)3݄1MEE#E#]$D#XюԄtY1uS'3Z%bgdE|r7:GC*_ͱL8CφԖa򤮓MtB[7u`XϧbRmbUJ S-ewejI SildMfH&pLScRҥ2Td8j?St,`מ mVOvd~s;.KΔSLQd6V}H}Y/X_”` D`:V8pV74{;b+ц?bXLq֮qdDc' VŅ*?@2CIDknWs)>2Tf5Vn44u4*Їp;]Mƞw +X@VTq3 pB⒉pq~ +slb>_a V :oN%lņ +]U3v&U4F +2hdoO$_͊5R~uY[rWѫTqqvaIcQ9nȔ8YOݕOcghhbED7{j}tMWq=:*,&o#@^*+LK&0?/3JSm=OOuHGi`_!+lU xk^.*ۘ%wviz%S^*v-X\sCXv_ H{=_w4{4_WS9:0ċ@ʷNx=Gsj]:{4ĄwAKq!ћ  ͽ +;ljhwOn32c !)@ )̛k YF%̧SwӰ}kp8l˯гVL$n%D:^#4tm 'VIN 2Uk^e vk!C/=v쯔Z7S)o;;; 0ޱ=JׂC1:7G]89a4nL|sZݸC/uf!߿ذBP'/g kfI Gd5DF?DQFHZ֩ԈG xD@Bxݥ%xHtŔ~y⎷4S2W^n{;LOwy~n0ɁRQiUJ5]<2Hš1Jm@DDm%ksGgk\HGR|̠J1b+\"Wzv*SDJӄS%D- s(9Q +Vb8^F'B)"k3I[`$Z >&3Q9b>V QТꄢsYVS@EyTOjcjrbSf۔SIs^L"LDsuM&sul;%u1DhrL 0F.i]2m7Ѭ1F/1QM V:E/KMiP- ^]푼UP-嵓 +-|NS'-j)<+h.Eu8?Td2%:LjO%64FwpqU:`C/j2Pc*0|JzJ Ma~q!a#BF6QEi"Ce>n'>0#kRhk$-]$a}Kы&<}a_^C 9w(_1G0RC!)a Sl^P)~ +͕jT,YlMZ=MQ.S)}":j5욟7@籷tUl73o!*Yo=Ƅdf;; \ssKd\r %ZYmŇLu#-/zQ{b%д*_?|3isߍW# GN%,{NahG;gmD]@Bw2þ}^Y>@=? 7R?S_Oͨ&JpBbE>ѭGoobI Gwyq`FبdoGv 1AmgX?ԑd=ׄfdM) g2ϭ ܱK"nwpFAB3f~ûFc"0+h"pD k% 1q3O re&aXk5jvqijg2L"QD^zUܬEm.ۯ6=2vp{P)E@r ޞC@n>}'Bݝn+`Cf'ѩ+ +6,e4՚8sy9v 5y_CAO,?ѡឨt`US-Rq$ y3T38UhDBbc@5+ _E2iIikig9ٹj`^S[;=^[ﳶ=@C)iZ}Q&tQo 15H}Q)CSd@TP=hQ"5ƘҜJSLezGب1%+#an 6Y ϵ<;4*SV0 ֶ9R򡽅&OM\m3[IT;{ZA ţ0F,6f[DuʹXh2XfNW&n`:fYoxEC^}Ԥ+3P,8 ftF)۪T._Ja`,"2&wՕ7 +01=]0x88V:NO.GkJ+.9Q4maspSRryf{|bDq _`6߇:Ab[g(6؎HC&@֛kƺ%r{{I)g5B6ֶz\0h%]rKurjq*M.eѩ+@$  ڵ ,hK:3ssm#sbrvgwϹQ9e +jIRdZ, @$`<Ӵȶ3"%e}lZY/c*Y<rrdsn7": 4H&˹P~A~])eC >yqykp̞͜<4 IyHva9EϿ0^ x7q 㗚?{<8lZMBc/@H?Tša*[tEÛH)pW-f;˯sf,1>jtF~/,ƕ5?E|rYc~4>zSة8km ,lFӚc+#pr)7'G;PDlFX3X`܃6p3(՛m)@r]q[AP͚ȁD_ڪ,,mA$KU 1{t?Ҥ’ɕcu(Sd@@ww[E\LƨL|ԁ"r}0BME~6ZwՍ~<6'd5tOZIsM"_UyX/|kU_[Mr+fJ/e . +'HE\gB 8 P*uJ@X|*,@Hf5=/HĘ6R^"W;^Bs.nW{ /nk"r`I0X" 1$ikL!ܲȩtWDΪT1?3?O1 ZJ[(? +0v(!R'[DRmvB\K+ 2dӷ{ζ_y{ZQD +T[ŋq3^#+ک0QY nK-./ՕXVnxj9`2)K!r8B66NbkCoOV1 Ms';nVYVoH%M*K0\] 3hFl%\T6\DpdnRN-r +-Z +[} N;(j1 (j$ +%#HҴڞh-khuRN缂Ezabk@XЂA׋o /cBSkopyPޚ*wPRhkUZ9⒘ZYi&v%m-7 bMi/Y}C3[Jy\uEphɘ FM׶P9oSWfpBI{%g=VQ{gi[A?dO`I\{PaJYR\'):(0[ȠS"{DjA-cD)+'AELV+/{zndD"߆!REMI[OwQl2@X0Uz*Qevv6՜㗇Rcf,@Q#\/Q6FSl;o#}9|EQ Vn_F>f%HBbܙZ&]wdiͭC/Wi!1xYdPg4%>1ہFGkO1{r"G//'5`A3˜({\ST&W9#fw*|\En~baߌs(ᎉ96xX☏] @HC#aBsQZ6Y˝3KDКU_U!OF+zi~OdviyH QscL_nR,WǯSʯXjOX +C4q@iH2ovwJo^VƇ)^đP(0( $)+x }t>#22CC+h/Mg q\͝&KJ몎M\F|^lٮ׿ko yPѦADt<_ ϐ^`a؏Oэszﳱ碢ÀtG*C`|/FeSغG@} +~Fܕy~ ݷlF4gJ}>iP 9ވE=Dac6X,-h)TV&.#x)LH:ؐ*R]%oSo4mXGlN^G'bl,c6s7KV_ +ZI>1_[FuAܦ$Uog7CIajC Ŷ]WhiY0u%b_SiP)u$H>mزR.o H L%$g"JLCp ?D:[t3oz]goO^ݚ7 4īaÃ"#beԚ{H0rrLYUZ #rtT=`9ҠDQ&SL Vȸs QSQJFQ(%^ݖ묪JMZ lEi]xUġ#|p5:6( OY^ANY,܉ wkV@Nӯ`J796Ytĸ =f kIyJo2lGh Erexښ90;Cwqn0P31Wgj^ƹ?J*䞶E o.MP7$Zh@v JvtvjE`:j>+k0]U]<ir65t6?jYMUS`GeOn,Hj7l| $Sp/FEuUEO,WPI~b=W1풴bDm!o.D.pr *ye=piJWvfsC˛!]2g8D"+J!bp@zћ>߬װ~odq8&$fq{-32,K3jLb5Jl8zkz=6"`(oX:36m$oBH0$&;(+"ƐIcĶ d[[uG e`18̓2DL +QDٴ8_r{؂hPΔ!)FQu&gx{)}yGGg +2hҩV}䂽 X,V\$Ȗwm4aab2[*nS"f]E8P>9FR!*Q)tٝ<%OݟwEj;Jɮ}47#KlQHLdչq-iKUq+"A.r^sKp/ˣlFZ߰Iq- U"p!; +DAɻ׾{q"yqu9-"B$Kc,U;GHyԣ|1s',0wE,.{I4Rtd%"Uυ=ԤQneOYj{ +{L.*bîα@[?b)/bڀY9,IkE}Or:I, ٫>db,(qIv +`)J䫠#tp}>T)"CuiT288d"zm&-Dnrk>0з^l.b9eaP:roSɼ?^b^2~4K?\d:頠_oip @44k\};~ ˶&fp1⍯a.u3݀a7\1ŃOn} k?1ꏒ?f>1'r8[3ї4mvE- ԑvϰI+.=NͮC4}+G$qGkmg!fHNY}dvalåH#kd/ug8H&#w)zPhd$u]=3p}&vo:YǗB2[n4FE O*FV//34\=}64V"+3TK9z:w]f@ҹ}]pZBG}ҭ-^ú[ڐ4Lcu5~鞕ɗ+uL]C.x5̔> fa5BY#%vE_]ҽ~əpg铛ԭ;Sgs)\Ί-pa f0t(с{$C:6B 1Aۥ}|j жu~?ºքihY{;wx=`K%K8CQ?Z k2JGtʁrZgƋԔNΔgNNh*󆚒RǶT*Khk)K:δ;b1jJx5ž,yD.=hK3|EHJ hY3$_Û($جERY%d0 +8xR:fQDjb#3h:7aKglB-[3Ҕ!<~}]d{I-8vkH+1AS8^:ݮ}~lIUM:L8W$Qe` ۋЕauvr?u4 NӢP'Riߞ_ei&j" 6 +diq$4^68s.v5Ŀs섰<k܊d8۳- nF4ÿxA~2 +᭝ 9rECjO%ƭ^Bd|9^+bDyh'ЎX#^^Pw{W ;V|^p,g +vE1}єUOC=/"&Yg#x&f|2]RWc[BB̛liZ)rri+XpL=B$ۮR7h{R/eGbsD)j:?@(kH1mfλ2VH6X֙=)nNi%bW:+I;5%;PL 𤡻Iݥ:qkL#1v? L:p>7 .uS]Ld^_Xo7^N':'{ض('w˟wI>V_`xbm}Ί뽖; W[Mlr9ӈ%ҵ DtȰٌ̅#->}+cI$<KOW;̈́9ֻf180W\D?ʯ"GU# 7W #m"9RQzri0{TS=s{u6X6z#@)ڨF} F-Z]|_ܔͮGmkj71oOۃvYSGz?0bNt|m7R_F8}"bؕTTRG%T?9@+ΠTV0a:&'ChUJOtO;VgWA9P +FakPV.ٷdc/o-lW~Q{8_O޷g-[w}\-gό]Rൄ? Q*)1)4(WhXlHX(MUX8h +Uu*ԔU=˶ު)i}yUF)*IEvEQiX1I'"~<zde0Tmp?jN-L-sx,^lk9pϬ]lk1KQ{"\M M.̍եͥ8k[°q9t'3- ThN,iI-qTgdô9ysT:NY2e[NNN`:'1<9q|5Nȿx-9arh9uN%0{Md{5S{GϹSS?QpF^e^Ug(_ן 9fNJ]2/6)D,cd7XQ.axSRFSvq锷Zqv{aOdFlDnO ·Hݟ %J]vDP=xҝ٠# 9DP=¤xʎ<(}p\%ƦJbdaws1חzY}cgeK j!=vDRˉW1ՊNu&vl3q:Eݍc- x RhN2 #R ̂z7MnkcHwIsy7mtVF%o( Svń)gJ +H!4ېBGi <:6Ə M"+8nc$aL.˓4o&ķgǩ/Keb&5kFƏj<0t~evYwQmƔ%4-޹hҁfNuT%Gus= C8aQ:7L; 0! ;-;'vCAz韭#\C[LKK PlP~΢3y{o(|q"0MDz,S7#m`%(?s}^<8s{9V9Z5[/T|±cqFUm vޗ޳<27w.G+&5xʲQmq HBkwZ* z2؁V鬑)ueAbff)IJy)&ɩf9gRaqh:d 66d sJgzv!*>wfCFRǀ'L6 =4'_bVo +k3Ko(HpKۧ#ƙT{,W2I&%5 EGqi-{3'4 4mr@M  o4߂*/Ribfq]_ok"fv*TJ5lBCmMv + ;.l'g Z?RPGڟyF!aQs"u+Wb6e~dc͈yſ{V|:~=b;;jץ+3$nF^~Y܃YU-ȑ\YPXPa$t ?U Ù{{Y 좦U@}#Bz1V.wǪkl$`^gXl+)F,uq\I3Ra#vĂؗ1|P1*Dq0Jl@M+k4K앑gXz&REe3wGAy<[qv0ޤO-8pgoWPMqK<'kA$x5Xb=Ht y}=Yl^L( @ǟ=S rK@`Q43f3en:J]E-xj2F2g)ME-9qWRIJ0RpL+&iw.[pxV.#c6kxl~ a$U]}# GP1j"z$ +B:3__ g=ڣ cZXgW`@ؒD (x25@lsC`?HC5kILn?qܶuXoZ# Xf)GlÅ i"d](TjUl£$>h{G1|1& (TVoy;#_^\+V*ui skPA%.Ȫ .M~R?1to(>HNi#3]ǟ5vc>+#Z"2\MiѷJIz[P@Fam@R 8"'qImrߑL=He%@|G=-yߣ,/3A{0PC6`XH G[J[`DpJ?j̮.u/81ŃJE~Fr ,h h$-h=a)PeHdF %d 4`gx{8RlC$浼=(g\4$=8e4W^|^^zy)b"AHPMRoY&VYvKݓ dcTE'!rK\6VZ!ZF䬏e5E5ƞ?pq 괇4ףٷէ{ZB+]e߄ n)85= 9@.)̗k"{&<S47׽ŻVLa>K?8[ ͸TwaZ@ + C6hl) X} O+ѩXVAY>SoYE7$l+ e;DuWwBRN~렐Vc>0ByV֔}uLJNL(QHJ*<s'PI!ދ8pmP}6]?БH)>O A|1pCcȵ,YTfIʋϩQU+%l _YF`җ@T?RT-mY` Jp Ƭ6_V5zWƢ~bfkCI7]N|~} C")C#Ax#PZ%FLP+ P+1F͠xСz J4k;Z6E+g:S99+/OGcL٘64{K1W s:xhu3mW]B=-`@wG\}Ⲷ6ucdCD5nKi_g 9`@Ȝ<,hNuVi*5-]f(-]rL2:Hiy9LfW/5Sw$:7Tu>dl'7qCe+ޭC{Ks.v(L޶acif>~OͶ񫴉VB$5|XlW`%=U)ohgKC#$ +QAnuL1P9lK%uW-.'LG~NO ঠ@sDZ8'qvv~N;у[172ƻg9K!6AZT^rLPm.nSidǺx+i>l$H\#j[^2!D4>\-˿d^G,r 4PSG^+5ExaxV!#c&8!T*RA#n7oZ?>rpX2(w?}MY#X̴”:f#0yuypx7%F8oNʎnL=&c9 +#H~>.5b(p)).ZX@:A0?aYVC j(HL?1v儽8y%cȥ$H*Sk`Ejlu!+Z* ԌbzY +LAo)hƉ{_ w.]vv=x5z4=qV}g0fFZEx28"%lsXCjuNZPw`u(hl$!=0 {>>>jQXp<29x"(bQqd/01Wc#ad!Eq.;rS#MɖBc'%aQδm{i=(ǮZ uȾbRֈfɏk&V'YFb;Z%TojTWAx +ZfOf)6DJ9P]G&W#wNCj^'=DtA\!Y ;T +e wH]҅MƲ35c|IJYB͞Q]Wr7e,>O4n]&T=(Рix.;gczGPccL%YV5}ˡ8_ҤAY׫ZkS_U }ª=P +(=qR_Q͔iyŘ4$O1Vv_,ASO;>}Jom8s)#ע8t;Vt[}?_ +_2-!'j4eǎ8.B:> u1|q`UqmrTA5'vNy#k֬^ĺeWn=hRNM + tݱZ84x¶H=;XS/ֺ.6IR+uH_QFuҒY}Ҏ\e mSJ->b7:MZlOdݻ]ݝx8gw35KZl+! ]N_4':;C'~YlEdavjG)E23[ĂӍ[IU2-!aEj_krP9L_}d`[sôLg2ostC7H6j!;S(/?- nym`L}@5n^KK|:҃;Y` ^Ev ;+wH9sg7adLb +Iܐ;(~/r>¡{/w1Oܼ;tn?=ao]!OHڽ]w>˂8>%N0=ѦuB[z~Ο [g?[Q^nwpGwnv {Bt"By-qr GHaKR/\,*[nm;w&Ryl/*]U;wOzCv$6IhYqoT4Y⪪[b'DhXhd^_gQ攥Ru OFFD'Q2SqWTqG[.2Y )ܔ%P$MZBhP6tQaЙaJȸ!WEӍJRb.Iw*Ȑ}[FiYߟ`SXc?v!HƅZ``B**[ jxm;l(73mWnkpm[j%hr!2JHV)W;{7h,s52T4 +ni0+Q1-gb* a_\@VG;k%􍈛4]qOOGJHsI& +t~_H&6=wfjL"q]Ԙm-[#L*,!2a(ǀC#8n|1dE&uu5YKl`8[&-PQ] `+]͗KƘ2K-W +cKLQ,>5DRsͱ>b\Eo|aI-Vqf:z1K ʛ@ +w^kk 62|=4l{a\|xMx$ +s~6A +;ز6(d}ihJ)zh v +ad.k+;:%cd^ѹ/oH)J'yYl=44D6J! X +D얚{II$<:ʜdJ&X˲W9A39v/t9]f.N;;na-?zr nz~n{X,Gb#pAu*5,zkG؂ۤSa Jv6\;}T^)w^8hBtB}] xleh__1(FPa#r^D?#s!FXh}Ȃi8hT}h؀}+(qPC@xɡ#w_ѡPTu +uB=n=k&mq;}$FM[E[gGކm%8R{-S.-̰@%6 +Jl8f58;tYPE͎Ĵkc%ZntQTg@[YCh@c@r ;:..6$Z-D3 4W,=Gqld<݄8kU˨tk *fTseFz"24F0Zyø$Y*zrghs2vR*xb+4kPդ}1$$.7F>&]1(Y(nfZ:Ɓ@.IDzggzxpmnvY,5X0A;T9ݠ>,q]:!;5TRshSwTt+CfNV|;H "!3 bq +:dtiVh 0"G`!Q Kf8LUªѵw>JĮٻAa =.֦=-ڥ(]hϹ;B'[5ЏsH4h\=0'mʄLBFJR/Bl(4Gv6Vk͂ +ꄘrfc9NcNuL:c:uVgDS+[4N|g +jE07817f e +h2d:>oU3v- ezZ~EEƜT%zeU К Bzf2)*g% ɘ#j:%qjDyڥLKg%J +YDV$hQ"w?DJ. A\1bY W[Rw%*m*C'=Lf—U/v 4p@a̔Ƞw'bIrdW)o̘3*4ݪa4va.{f #g ӌ,e%E奍r["C7MUrzaMĪF 8ncI3hDV|aANh fqnz%jݗzy2IQOCw1$kSOsL]ȓkYcG1j֡6{vR hERI;%zSTW̚ ->" xW% sߔ$ϨեlzznUH+SUFc<,v &O zVFAmOS4/›2dk|VvPT\> Ēީu0ٕeS-,ƸsE2%ezT)@l YÂ]C|vx!erZWT嬴3] DU3 W~9[4e(sZĕ8w$c+1a?p{Žr!=~hz:z1TBJ@~KQ3VBZόS5zO> =vnC{MB!2a.cCWD?WћVZ}Ij"!.9;03dO2D؎A+6t@j@cr-!P {S=@#g%ݙrBl1uJ)SˮS{מCBSfmWS43ᮟy֦c-BQΑKa|ғ7%MF$;\_7Q,GQg/=!'_);y.;XB>uj 4~=svukhuuuuUnv0\!tX=[!uvO͖D +'qڟ_G4F~Vd*jx}e0?R$wz]R:>x&/+g< 'Pf_WYHP'/D;Yv<mtly:pZ#4֑9s8Fp[!un7i'z^Yd}tM~{l/ǯa\79)0F)?T;zuN,L' e TDquZI8yÂ<$8e~8:X]v u# y[ҭ>]UnJ Ux3IZ:v\Q0Rǿ>g##jpgA:%gyf˕&nI#0,z'GBفPfѺlHfBA@!YH3qNu} at߸p#aBu9},<w*fгV}>7O LRm\Ümς蠶T1̷ZEBe&.($`,.ԓX=oLn#.NZ\kLe8pԍґ[O }pVAnaHqa:C?v YER}Y#إBC#$2E2۶m۶m۶m۶m۶mLNrN_#YU:)ώF Ƿy4 &4y1,suse^-Crݓ98DGI$/#-uq;#g(2D >o0c,n;lʦؙBi>[ f4lLV"* sZeڬ՜5:Z,bdnф0ZT:Gvs{ZvlDVT̾ό=XIV:¯0˥6I~bM RӴP=z?{7緗F&ߤ:Īa@JY4g xk.p6x[p-3Z대CoMݔTUB::ȎxDW;< HEQ^D8cUU*Ge&MXOlnN*X?gs2H B|M!E&bM`Dlm2Ӭ Hc/"nBl<R,.nn+6 j%3}=;SLcN.Z@q*R@W/>KB^@M~GoMgc(p=<ʖ8(Uz1$-@* yA獒 K&mU a#L 7ގލ.4N$; -$h@n|/Ώvc~F7owx7YdeH@~rDƳ׽ȝA u#dDJA]rv.j#7l/L҆J*Sn=.}=vo~0nLq-OX )羍wD5),W_At;E04 9FQ焴c-m-JYS 08#(nIAayJ%#,HJd.KCJLͨ4ewt\bmyw/h9g8t᣺cL˨Q`0i-ۋC՘1GaK\`XQDjBPE;(P?\5E<IL?˖ĬrX= +&\iYh4ZLG& o/<7k& Pʏ]&g /1K#16^-M(֙DiD K#-B]]O' +)-?nxL)cMWEX:h}`=Co,ө9qMbRI+JsXp0`I|Fѽ Fo=MA. Va@uxF?i3^LӤ'g:̹^P+-PGCFt_Gb"/A)KeiU%Prs%k9ጧP@vbI@d\ly]v#v7k8fLҘwmlEW~qZJDMJf)7M`T;:zJ=ֵFMLD .L1qjM4= U7jt̞"Mq4ˍFjxd3[wO.MqhzH`o/Oplm=މ yj="e5"#m\f_5zX cʢD؍ۚޜak RoA É0rɰ-V#`?XyQvcZDo%{ZZo3[lpWV Z\䷐l&qے\М)Ci+}_+[]o*W݀rFS2bÖDގ s_K%0 Z)BݪӶ\`płnَ}qw\R#;>U2P( <]5Nn㎬إ'> MwL0I8e{쎼u\QU~#mۃ#LL"X$еn _])qmAmV#Wx,^<{Yl~Al~,JzoWMa6*ѹZgHCI[M"$͠utLZ<&Pk75K`Zguf(Zׅj}e% +&3yuq ha`l}gM+%O{ KTu +$w;?VS4.spźxa56OS?:o:[?l5SN#xy+2Ms?xB2G7Fᷳo'[:Wm' pM4m4^U3=wV}Kr2WEC‡-f8,-=AGgٚmyWqtOa.J,. ؎@׉>x#H` ^GЉQr~f-4Ta.`^<z~cu.vȒZ/m?D*6?:Mςi^n~.0=HXD lM0;Kh HrcȒu:6B~a)%)]PPV@&D!0!6Bh*5] K|Ę}/' LaFm4"hh@U>`()[p|?2NA~Hb.<7 BgnJ$A@ ݰ O`N)uP>epVNC jN?,)T(\Dec0dIL6a%D4>g(A;PM2M--5ᑜ-7T2)xehDPs(ɟ/}j3rB}(X}hɆ+-ݗڿc0p/ٮnHTҶИ 0 Һa^Ɩ5h Uy&}ޭsXց-}|Dl*+`\BXTs6!?[` :{p[Tff6͔8hHD3QIQICI5rhk) L4Tr*%rJV>D4=LAW7K^/a:rd6|2KQt*Fe3x0igZy-GGy,D5YgG5+K+[ix)(FTC],"-U@% Ľm!A*ntkA&/,Pߦ+2&7\htT9-@_AzSV@TVA*\.Y]l5{,Oc uP̧`U&+RUe*Ou=}%E4tdX'P { TfqhգPQ+mcF L_@1=aV@RWUfU@JWW@1ģY_`کq,%\(m,+Syܜ}^+-DGӠ"2Q-"pHc*#;1_@IHQ3b,k*DE$%.kK)+gьʆ=ݟWJ8;ȝukQ0Ko+FXS#K"Ū0O . o.UO06NTPΎ +.wKuyl4qTd x)Yq +$p1pA-1=8ю]QblXHCΌѦ ɸsSjcn퓆6iɢoCkV@TIfc))¸iaA*V + MיOU2m/.}mmmEeG5k;&*Վ Y +i!@*PPh4wҭ6  ;s*!Ar kgL;6`V+Z*u*B1jp}/_Vp#+7'}-W Bc*q΢(ub*F؟"{gjaOYi`VQGXH&A:!+6;#gK'ATB'EbKH ;5e(ȫSK/WTb9+'ޮ!M\2 K 8 C(Z 6k] k`>x#ZAd/SP ܷ8e-bqҒ"~ŖYpJ'Ku(R2 U>ϗ~Y\T0LS)R\Su2C] +S|cTm> TMU/lKZM8Fo +qD ķ1|K۠D/'W٢Dy„/WSQf ^&y%L*LSW@BtEn&'1a)W*+WM B?P3ݔX.&R)yZJ,Ԕ&$Vt3+?Xz6iJ4E7YrNňj*ɈWϏ&4% (.."-M&0pC etVϵ5"Iv.zXv^ʞ:U#l%-a7hBF{ل\˶j"[iEP݂̌u)HƟj ⰺB"l"]N 4 =mv7\o*zk k@ C]MEx(nÍs"a,- js7=? hE_LX+S%W.52lNZ7&R;*RM 'cxf_NX\ԯ)SU'9,0$kq(:).rqb0qOtdR<łˑbbxHsgcfŽ:Ҕ7aADxw-6L!wq4Va 8$zT.43V)P"xIV[5Bs&Քxid,jʬN +r0k0Y v5& W[Xs$%6sd5:mxrU5v0o\#&Lf^3"|s'M)\J*4ft *mSb KuHAc ke~YD*aJ H"e"H\<ia]8!u  r[D /?b(qScot{K,hXڎ-G?f2K!ҥ<$N #EI|5K&Ml[lqbixX.p1<@Uw0n)gt$Q&e;NedW1zUJFNdp&5L[oMwW Kb̴NxU1f&4ҏdDo}ՇбlHdDkGj1.%1)<H#RI?# H'y[DbO6xaVbț^?xP"1u{nvqexS2}kgc#&K;*{&@I;&@.2^ƈv ^߄s7Kͫ.W$Y4 +r=餼Di;:UUH$6=5P=Rf/r=)yʣ+"P +"rMx| +|js4|/ 󛙊0-`l8姧,K찫MHŔ2w1˳&I&b!> ?ŕ=`V޸=dI}H`LAD+r0g\fM9Mam,S$vR,қD;X73L)#6rJ&XLgLLRTsM+e2J>8;TR*^0eO +J'&PQT + +Qq6x3bYV8TMdH34uUv?q|\cbVyt"@VA.pT^TS%MEmPYl^(ջ9D;tO<pyl14P]EΙ@6^u@;vfX4G Era 00:Yz–$ qS ^z`4K={!ۑ}"wiI j~R\6G>)hcT 4Mu5"[QkaO Y`e{$?o `dү4dnT@ϛ/S5Laht%&ȉ-aQR]rjՄkPpaP_mbW)@[ +obpt^W6ԫjȸݹ.a6|!YY.5K*r;]Q83gub :*=dIUj$ڸL+oP$+ńy:$gB'sN_mlv->.ٻVB72tم}]"[daC*XP0|jX*^oQ4*0-ib!hvYQ;{5//Do]9AV+V0\$x٦@,ΟoqnPVYz~2#P_N[uT$7[@Q#vώ|3]ڀ-Μa6([32u1 9'뎍4'oLVBu7~,-r^i$vъD +RIYZ9[;%lASRɀ7`XҧVjs#\5^65U憽|jW!M8en($5pܜj,|Jf=$nT؜9MJzϦmzD'gSҶ:S](g׶>B&/u +6DSJ'YM՚Rn^ |LZڪ.6]ua^ ~^|>W?gPU@.p%RL*fnaflκr^˽6π=_TUg~fE}K +^~{톇CFcX:KJݹ-{*>z0 .u;`H_zSuՙfWRz F,jն`iR1Ԭ9sX~mEP%I (Զm'7(mDhX3$+ :TC]P*BS7ҡz!Kq$Q.7Y(SQ+Cs\SP[-'ggˑ%vZj^ƨf2.idoC}iY7j +=X`a& Uőx2/tCBT8B,m0ǚm8Վ:BQ9`F|i +$jȬ XB ~ğ͌Jw*,$&_J0P,$2Y}Cd)Θ@d+م*_JI]" }Q +G0Gfr/k6 JOX~d$hurm_`[ܟ皤wrWѳpcjߚJh,ќ4[ +>7"xQ?Nw/L\Z T 9go[XS:g'376܆(vBz G"ԃ!ԃ x_:VIfØ\Dh,*y̔}iOB|@VmBNj b?^7ghB$̙4N;:6_ \8}c+VJ*yZmF'T:rFp>r褔犩ghOݗ(N%$kA:\oCgvC> 0tC(#򆉾#{i#Ys o_Қ + +JA|2=}|J5=ϜS]>'h6gt"L2~ +=|-} dmh7^Sw庙Y\yJ3`{`v==`MDFv}lMc7:@W3{{θ93}{:[=̫`F%RE}p`%l")pMC3d6Z>d%܈&%>uHCiaeHEZ6s @ݿ(W6"uCkv1uCCs1KsʹCXHڤwCm7rCfŞHk7m[;Z;%! +@o:WVu"$^pY"{SlN-kyUy^hP,N|&h-)f!ˆ+kXg/(W^zLA-[Bp[LF[)n`WGεϡon#~gmoojL pɚ&pĥl,Sƞ2Uәe uT_$N(-8mDkpvKj,y@yX68_7n>.#n}>WH=*T̵ω|w5v2R7N˼CN;x܆XugiBo 6w{TE*ha2rN ݟu\{ޑW@[;?z/9 tyaY;/[4d8dw{laSEǛ W +/&a(rZPu'K?P{ Ob.qNiQsA'$q vp=QM}+StQXxs X ُ\=,}q ˮuS{ffA/Օ]%ԙ*U}SKj,TE֢k/y [A4܌-MjK{2I}VK\˜WAkh$@HĪ3ubZɻ]ϖA#U, k:w9\k'`+Jk(C< LLg5eU[%u͘&L9]Ŵ` Xx9JUH_>8 TAd\V3jVD@NK]٧UΝgX aEK8>)7{ʙ 3Vtv^o$eJ;*KK6Pq=' w!7HDK-GG#]ȄxBޝ +RtpCx2؞Ct{TtS➅2{:u=;-x#f}35 t~ +Ki?" Đ+L|af WWдhǗxʏ厇G3P sFω>o #/o0\ +BFF>>Zp!%%:|4|]1aTLγJU٬kMK,Og=@lľSy !4Uû;,<» }zJE%RYoeV\nX0XVB<Z7Ķgxa$7B6:_ZW#MzK)"OςbAHTAF=r 3T3=JTݱ^QAh؂k,uSW{(tl,)[{ϯzہv"y,Na|d]7IpՉ~N9 9T\ +8<a: %&5U@}W"G?iS> xƼb!\ꖻ,j'ߒ5i0|ݓ +տFwbwk#0OB?cޓtO/7G*ʷn^oWvx[L'qm*h%|8T,0E0EZ4m~KdKt+HO('H>xc8>Vu>;`bDekq1X:?ʥ7Tj9 ,5} Ȋ^D c:,:2"yKJ;OQgdF4iࢆCii1IhZ!׉YLP#j굶 [aRNi+pGpU ", ј#(opX$'Q +FR#=!q+Q?5HoMR@UəIu뫂|Y;j0~##ʧ4i#/kɰz9yk}AaDmƁɼپB捨TٖUQbp+ +Rt3q^p!JByõN bjPWSj14@dufP +^ewaJ{hP4ǀI"(U ࠫ6>񏴠̊a;F5}tZNN[6b`G؝žsP2f[ &<)VNK&Cp9`(uFnZG)tH7cyKz,јO<XX_6)lÑ:ңȪ]hzW[!FUҀ q^rp8&x^^VTZT:DY)@҄:iߚ66)_'b^nEf@TLnu1ɜ4eHtI=SkJTݔ1aD1f*}ܐ&)}\z +} }들L2x@V}F{wIL :Nxb^6XtB^6阂^&¾ZtI#0H>2~8 6ԁ׉xP#bot +jBcLjY",%;fo岿l}oA&o"G &a2ūϜ IˌM(Dqv@^9[t''7yI߮pW4r8H#Jn8B.ϱF<\#zc1WOUjC Gjj:QJw`7tɫ؎:?w-(>]GI)Gx~*A5@kP=$˚gX +>dAd)I/2l %A8!u]97W9+-J7Hű:VeN"O, ufz/H}nfµK+<=}4-io4O|p!eO"1y;VSPݫ@?S+ K EYtÐH,L!C+㸩L()$V3jj?zML>t"TF#{(ZE.\$O^89|xa5Hsg;'.|](z>] G̛LAG^eGڔ!GuZz1^ɱ}vDG +eGw^`4:65Fi5 R,=á-h0F\x ?,6nW +XKw<r0n::dU8d㦗l ;Eir -njt2,XihEb6j_|ll8dO`4׎j񆙀cno?W7g?0,f-Lf6 fK,0 !ܪmu I73PiRB/6e͜+ +Cn\ +Ck\]5NeT:Co74XqE &M"͍㦜?K^7f>Q &?y+ޣ|S+ 1D鬉?MYϳ[]3@WVR pR-E/-{ @CL'i.5e} r~DBW_v=)5"7#BDxbg;W$Dv@(rJmQMˊ*_3-bX0cpW6Ge>:LJ&RSFˋQY x %_& 3uҗYm[Ha2rY>2`` SC¦`3ݩT&'6aUhut6Yя:C8Uu-uo,XX,J^77D $ߐZbAJgi[d`y6 s=6Q1+AbI+gG]VUQ .G +B[b]]V`*mt,+êȀʜY)IڭQBGX,TM>ɞu$N[sOB$N<\Ѐ&Jj?8#bO@ ++R} %䎇oo49)>Xwo@-RE wߺp"|f{(=QKD1 $b1ʧ0;W}n|#C,A.&4M`"..z5tVIqň-`67Q#@qvy:$Cjw\bԍnNQttln փO4t30 +uI: ;PeK~AzVʚ[A4oZd|֭w1F](1\e.J \gY_:zN'Qؘr"pQͺG{=:F >T]r>eb/peT_F$uܢPx 8(0\8lΣJxmflwչ5Ӆ4˝fi4+MtV+Mͬ5%s͠^E.:{lQ4~μH{gPAF6wtk&.b.G:PhcUn;h7X؃PfGƒ7u&3*2ZM^dMo!cu!IKҏ~5Kx190n+#lkc&Akz@3C=. X&cX3b,f*$}(rHzf6%M}VC+nɷ5Z#|SzH5!F(Xe&gDURא+*O[c +EАYk}Co;*+5S7!}5 XJp̔+I<əxUs3RRoTΰ;̃E!S$c>Os(9iӗa(7Rt$*msӨhnA<ּkWH]T(yB1c;hGGG "`JwN!|"Ce ZVʱgbU'cp!V&LRZ'u/%!z`~n/Ds~/KZ?㏦zXL ih}/۠v@'}/Zw]߹ׁYOȅY/Uޘ_8)ҋFo"jk/VY89]Kuo$ko}\pi@ޒ}5]R} + q@ܬ2(Z2eQ߮m-Ub^j.( v̌UF=(Q@S2qKJ5g[Ly PeTߨNt ++8:I-F 9]g>b@Bh2B9Ll47L&YC{iwA6*TQ 7) Ӡp.:Ox'0yw~i+ #$B?X(Qy;f'w(15$ +گWܭZ'Ybʶ䏨 WD}Q 9qa!Ii5rnԄ)O{+Y}T@S!3!pF퀦("Brlf7,`2U4|`-.gu='ɶ.[Qn ` _y +Kc]D7.GP=o!2@(+JE ό9J@zVCx=C7Zm ;`|-#\}1[ʛG.u8@&*vy?AF< #7ǬEZ%zV>Uc +(?YR]{y!M| :-?x"b=xj86•0%e`M֦gKk*nO_ۗ ..o_qae?-s ^@Zx(fv~OI)ﱱ4IKڼ60Q@7`m+-}ϊ]}^~@[T]}֊[}z ^'N!H .|K_Ҩ[}(OU˳?OVd!(N~~&Y&|Quh)ڔ6}IU_ }&|}5&Պd(S־;-}6耚S^g~sR8&@߾. ~03;c{͉{]Ó_PdOqPLP=ݹ//GV6`>" e>bj<o +vȻx"s&5 +<?A|&IR ?J\ #H4#K&i#-LA hӚfr.!̰e%ԕV&99 +[0Z&тdQ*41&U5l$}i KA( BEWv] ' %-Fy Rv5;M7zS /`c, 6tW>]l0kI,%L3Q`ԁL bx=r(%V2s0fH^?+hV4خU#bKs9alSjPC3ԞBBA~?RM(x MAgNzQ,*{y[*D[dzF >l*eA![`tmѶt2E[CqH fEZ+MUᚄӈ+LA'3TE7U'S~@Q#xeF䚬pNkzfdrYk\SύL+LtQ`2r+Nt- h„@ݑލ96{7z + 2AX_%uYFM]ÁQVhaLJ>mn>i\,cf/ndz+0=6/Xg<{)jYUĸ̒|?RB߽_Bm2qyXig)TMetYjn]1%PxW}*#CcbLۼ Zw}לSAEib9-eLN*TkWՑ)? ^'S*2Đ̅Ip]ZA6`Z]M5{$U3 + og"E$Ƕ __iacn;3iFK:kh0szU,##`^ @ωe=Jx#=DE;mP +fyhyiN,R A$39'/b(zlp]⍿Kˏ aqp)Wg ,qi\[r=l4I#f͢"t,pIWI{b)7S"2Mh7UI@hdtòWs_IDp*x!/ 0lq sLiPŰJ _:e$&u~USR/|_ZƥḬi1Wo˲â&HA%EӠ*0NJŲE.dE\N[pnS~eS +.n9In"˸Rh)Ik\NFIRkl_E +$l~EC0wPT/h^ht nmMUF-;5uS6Q%yXZj;F3䃵HN)˺%5`ʰuiU}SFxEatU4U5{& +8sNH*;gڥ%E?UK6ԍ$ӵiRK9峖ϣ +I|F-k&eSȽCgNuʺEI'..>k"ڥ9jGettQ4M+tҵ+b-K^kVl yߪcTmB/TT/_b^?"U"Xtc".u@zE+P쬓b,o̴fDCeV2酳RIzxx2tUC -.2"A +j;g^bȱ!" `.V%GU-6),] ?K,~g!ٓ$o{>iF8v5[цYvug49K,eK&U9qQ\ icpO*z2=\,f 3Wd*mngHξē,̐*7\PxDv޺#W'^RGOK/rßߍ7| 3b`]۸:IPzdR"hA6VٙqzqjAOfX2U ߺަs2duJ6~Z;hka=*OcTkݷɅD{4C"25n̷[eOdc%QGeSJn1yT׬*gi Þ;GN@J׼bLE%ah1T1OK?3<4?Ϩr"6fF %BFG^T,ۏTE=WR1=m])G6>>7Nr&:F~F|{e]Rghi,T33Y ᰶ$|G-!|p۾no͌|&+w}`IbCґHU&yEW/ 2yO3Ol@e~ }GE Hi_ Ѽټ~~n\}\dnxR=PdiN~=7HTN,r!OҙB*^'pR9Yy߃d 5! "Aao=}l@k+NQ_ %oyC +Z.%?Esb#m'W&|8º*d& m;Js3Wyi0w[Njx3O!BvH#O2BlHpGI& /Xr.d2lG}w{qmIBo t- ؇E#2J`krend|#|'|@=e:T%17 |= (Vxj +ʞ `dR  +XZORz}Wߏ1II~0ZEӹVy0ٔ#O޳^9%hh·K⩈ +u u+[o@tY{*WB $ט9%ʥ O +E',:JzO’jӘߕZ'X`J=Lf ۣ: җUpQ +C[msPV{,-P ]̍i& .=:* +.܏o T{'+i\llua(V{pm;vgXL\`X&Gz=\ +\_S2H7rxJ,bV@ərxR]`ԕDE>HR? ѿ莐3/ J ˒"!:Hvٞdfx = _RE69io^74*-isa;jڝ/͊}i vJ{_ky X޻Y Dn[36\9XkQ% dghD!8M}q/z߉* uQsp^ Rd@lfH>iu>Hn>M3FIѶwQ±Ĭ^#F_\鿷Oܸ( )i g84$"dG 92 Fg#qa%\?Qw%sFߐޝIyoTacgܞ񻥩9(AIKiBhCkܠ$*ybرClѥ 8eg<QS0,8 w!=);خ`[⮙@w ] +LkM0V, d;L}%lcKY +U!¿|_6GEnW~X"PX)ǡ]y61/& 3D#OGlr|fRr*@b!rD[Gv4&L%6J:8.\;g%6ɳWy]u64[cIlENK(bkOgG 4Rf=G<}E7hN7ELjԣe.Ig[TE9 +0D">f"~AsfAsM|ůIe+hI*+8;b}xC_e|I +%Ofyye2geQ6x|2uBoLH³{Q_U($1Q}`-^xhBmtu&,ݙ@ۂ I~v1m6as$eLT5i%mr7sw6[hsmmDuOL-[r =DSt.7+K@9M-U +Emalkc2 $1+X2[PYqyN0Mh!L_|2_L2ij"f)mådfyqgie@뒢 L^%fbWgn<p_poew:Nr q~}GٻB~3mukDī^ SqO@cFb\REٸ0-$Uj, +b'MEOVU<~6lUS/R-_ + UB|_V|D`c`G@]psy;8 +vw~FRUFc_*źE/_0Um/Rm;}Ou@0~qeeF[#f(>@yCi #&^Q%QyRүަjF%{ف*>Yg8}R+{{(r۲*ޡ0PHLxء`bLikT19iN+ :VoAQEuIFJ<;D{Q2~X^ڐ[V|NT,2K(p4 Kέ<@eYΐoZ`GƖ 1h(ɏ:z#Jfl"~r|zlu>yXia7!Wpn`/SCIfmmƹBuK1♅b +0J Bajh cHqb~2&KSR X~ZbakY69ne޶z~ +SJEj&@t>8K"wYl2m"z- 4x"O_% I9\VY(W)uL=W4K`_=s[?H,W-FѱnC.qמ7G>rGSNE#џemaѭ'mQOosƛʧ73*znH!55Pe*hJՌ +u@ؒVGsi㠓9ˆt;JqG=+H$׎LC R2۱~%EM7%.-Xw&ʨU.5Yӷ8Š}<9'ܕ0>1A-`' +ޜvl_#I6z&H\z۹Se^8Lݺ1/ƀdgAF4 Nb'^S D'|R;Í[ FEmmkO\(˽={95w0. kG@))Sn7m$/H$r2">>AGE5Λ*kPƶ*aBcMZޚ 2*Gf|-T^9I7K$4V7V6\n,rmM1,ŜRML]UfE/?B +o7Ľr=vAz~~xz |s? +RxRHHa0 |;i8d8g +xPkì\jZ.#Ofٖ]vx"T-MyBڕ=o<͙]E"xW]wF]QyF]`=]X#ح=x֝u0=}}wf-ܩ@|\}d)|UK.Vt-S,}wɫ]U\= 4 +\-|Y^8}bT)ݝ=C]:9'.]|:`yF*--C=ou*Iլ]x.]*ڭ]^=y-w==|}*߭]}J4)Iaq-]=?|^є5RDiI5+!#ΡX + J.(v=Reff: `oqNՌv9-T+@u' 4=V}Ԭ|}XΝe!fRxkhjHT?~$&QV}OLV9ý%GCR4I<'RMIUvS*()}, JsKyN 1$zz$ 㞍;ulrZOqu0MZ&!#J%=! yOZ4qTTY7 ad>YZ)TZT [ kKز?ϫJT$S0ϣh ov{rrf;8yC1`8 9pO+ᓴ k[ a89İ0oUX(SkU+]Oi: յ':]QBQn13Thi!f @jZ;Ue%{ OAhh_g)M6,McFTjI%9\fT6*]3ЃEYLdG124%royIkkԅA6rŃ,| lw}|~WnM݉)U}R:uy}w&(ziKIp+7_uo%Hc}+mʄ,tj;o=fCu%5M;rQwbrzbZPoCf 3ݣ +B%@vTwKJ)xov ~+V@r:`ԎV'1F2SK1K;l;iUh녋O);s] z5HGj[ش7|m]ge66ص+[RWh%/$Veoh3ͅd]ni);Sq G ΁$ +5ܲ*" ++O 7B}\}sb&7E`1=sa dU ϐ`o'E[$/ohv{bB"Y@JDhq~^ufIk1K:cz8Co U AD `d262HGVbo7imlR..>i/A~X)o-@{no [R`KS>@̛,cbȈv?`.K=|/㝰L;Io`h_EwG&遻`?T]'5H7(!}MF;7"]o Ae>)="BA >rtU5Bt1C +Ugٺ8(YvK>yzvts;*uP5ff+e0 :T]L0Uq/"p Ɗǡ*((-qΝmC(A8I"( =anBTa@gCq(H('A'0B4*VIKj0Bq{ݪEP#f؍"N-F+-SM9@ ^*T'rS(CqPqNosX9 e=vD(ƦOydyv\py LISd=Ō%Dqa%vv<ҭ< n,Qex]XŭNuc#wǛT1aHXKj696R&[wap LTa(Bwe9LE'M۸ROU I~C,)x3'd9QIܥRe뼍 +ݧYq&JHaS%z#gh!ؒ[ikF-"!8J6$wۺJt26>, ՠme4=L(\e=cVq\+PQj))C{{s /j2U[05M1}& k{wKo٠.]H2=aۂ 8v)fAZI g*`ݦ85qWidCPbXT)+䤱?1[JP +u#TYQ"R%{tBR+uQHUݱ8`$~%5S]7螈96f3 +LvaT>?g| u7 lr~'paY q51^\TM=-6=IHѬ ^0f +m+DRcSU ? ])CuS+CdI3޲iD쉯*5)P=Tu]aSj3CKVt׉t`N9Gsȵcvi(H%%jJV.q5ռ{I:] +u)|dfyԘ;crɮ<* tY"jo>Ę ɖqIJp9ɰO|f<`ZyBs*?FqĘj!d:c[nȠ$WŌ2wUXemur|(>tt#'YswAE7 5*Ce+Yk{5:{ջXdz OVkx9+Bn~J6J·QP1\A¸h9scfMkū>/p}A%d=շ^wVAe}fgl-gimmginu:Iq-m;'󩗲w۫âǟl<2Х>ǿl 8z +#}T^{ՃlR.u:/0K#) *3Q:U/])<2V1 &rqxeV}S566_Wqw6as. H1AWd% +zNQldԃb}p]3{jan KXcT o$[iԊDwFуs3U ޠG\(mzD${0^>QԑV;hMi=[-U=@#YAvPb۾'wہAvx;0ܽ_.hX 2^{9رhQ#X X1x#msB}b@k˜׸>6cvK -QGۈ,f=6PNȖKq%Dݯmg8D侸#ӵZ*ܺ3.5;i'8)kWU\a+\h+726$} dރ2xo'>-gSD +SY=Q>3ts`.NqnPlJ Jے_hłZWi>y,zՙ'\ѫW@f e>nRJmTZ@ A՝gZ;wS~$ +PLid٘|^ +Ք7f=P'vm=Z?WY1]Vg==N;Q&5UtU?KFnJnX=ZB^*\i$YФ֋XI歜ߔ,Y^NB ;7eG/CpSŮku [:):xԱ>+:*:&"!u%9Dst2X*VIʿ&/Ln|:T5"g}.;qno>D7nAw:>}7̻/Xp: )XYiY_xE'Pߔw^JcFۤG>_IwWMPKxy. ]=H/<_[4E! b2Ǧn{cȉaGgcȶuj"f.LEQZepsB7幟P 50Q3Mux,*+qSe0:8mh ° bzDRHjPj3Whsʎ;TydF3RK.s˃-i;wIi(,?}O;'F3t?:n&"4>f] _Y62~ɏ"/uݘ?`AHk5`p# UF[+ӛο {qzKO$kb-+kH94:*ޝ؄$R]0Bg 5ISZٰZ}Q[O$M^B77hͺ˲;̷xXfS ClV y'wZ$_r+s0QU9He[_ B.hj_"+T9,5pymفzVXxړЇ_/} z̒AM#$_NBD ^X 6W?ceA.iO۶mM۶m۶m۶=6w6|;?{='2rڻ"^O=YUjHxu$~-MRXCYOU̙;~yTb9Ya߂qMćD ̀SZN?4"">b;@`-me-3gB6c#v_\BbՀ'fUǭC.^=32[Z<W P%cs${{a%ԙ#[pb#\ +\ ͕g{,xUP3﮻ y.k K|TS:9vd&1$?Q$=~‡FPNjF(GPd=4[ +[/E +ԘHh!Du ˗j\WjZ:Z 3ƱH\'9w99+GMq eڷxّ."_{Цa&\dCˎáL +<Cc3v|Q3.>?/zXws,Xrg6‹$ԍ-L)pYi0FI\/)ē=~,s[̴ө66|h.+C%[2NzBڦ^Ves9Dns8vV +!7wl;$3MXKS Uċn? mjt5Y1UCuR 2Es?P-zDz0+,I>MT πdR+uXOkqsM>Lgpɣ:<ӴEov$jBBJ GnU]2! +K|B`Iw.c#$f "PHX!ta%c@!J2J yffy걼LY,]Uyc BKlP.)Xj{JzTƖы[LGPWv lUҸ/إ|aA% VGFxL:r%Preelf(C!RVgzMxi7{$8!2,'.0f +"ήV,Yܩ{p7ZѽddjJr$ZyUjJL-ӄqV L ߝLG̛ jTzUcyڰGA_ҥZ>]MΤI"$rZ,g(p89 O&]҇hySr3(^t{K%4w玸dOE0q] }1 ޤ[ù>$ΞG*{i(28I:-9G|8|*54(R%p6o N _VI2‘:ФZKx+AJt">UܾWWdѽ\iQa:~N@7r7Oyj6d"\» t).cȹcجV5.jNulF=`؀XϬ݆(R\f0С>.s4ZB9f Ŗ(ţ&j^b#? +ףvz%q=^~٣뎽}M3`_1Ȧ;%Wwc_r!SCim3=g!QUEjR:nWw`\0߁ke]P6Q {q4b/:&{Nle_wdSGE)383|n8.ΞnA Y Jha8"h%4,;_J'6kLpMkq/'\';ȗT E|҂A8"7] eZ7s{JCC8idYiʮL's[0uwkֺmwKkÓ1ʙW,6Z1jv ^;oQy<⫭=ȬD>ӗϯV gr;Z4/F]uS<]`S6BgM%w,]>Bz<#4/kq޿B9)!h6s\ oвr/X|1Q2_h bHXQщZbVrzyKLkjaeE,7b3I'Nua+KťpXGw7* s[An`=7fZy.kevŗbhoUV*hnַw@wJG=VҲK4ds3,Bt::oj>S2kS1:C գ3oNDs)/7jj"+PUDYlE+(TG+3l(nxfϐ}}wRpl7>j:~!޹g5mO|/78AfHH>>΍smZbixskEdY @MB_+gN䙵%"3Kn>~x?1$ߤlFH&  qT!j̙X >[֖ J`.0~z.v] IOƘöXve=b]j"׿?џ|(y*oa %P0ָ4#0w<s7Îz1T(J04|QhG1:N |#S^^)xNg\HD`Mq|+T=n8:^,9Tu6B|NTʎj'@XHgiI뿥]6n˺+(2%|bc!b%:dMLNM((羄+{9^3Q 9c9P0_h[RA餃Y +D}/v&Ѵ0TSa  ʦv&N&ko(ͮoN৥ 1єYe0C?uNCRZPjN7R6ۗ2Ơyr@㞃03]c/nݸE{X#&= #9?xL3qZ&.iT n'~6TJœc"EwcnJPQXȸ⪲8mszwX[]5^*U*!4~0NY5<^#?knjBAi5@ }9.EA)G)t޴LH}MX᷺`kWb}~C`ƥ[ J ҚJr=+zWs>RqCt'ox兇s޽4$R;E9d+kzI·d[ϵ /4I@f%Pz=scn"qFŒ%^~Y;zMlYgĴ\ oLb=vvXLͩ#). rn" ᢜ&k:V4-e;~2DCUR`)' >P3xoA5( 5(JFMV DZvL++hf1 Ogē%A]c*poەP +lNMYd#ԓ閕\3≳lPS})!y ktbfhU-s՟pj{- ׳u@pY6wr ouƑqw_M4+/!6 +WT WP2`βQs1!׊gC6ݡ^5_eL8'R'K~ .'҈ukO0]*LFPt-JJ{,;¤) Ox0q,lW"PGv4 +--'TCsLwRJ}U˛Ǩg}M5xۥ$ÎlK6-B][? ƞP }өXU)K-A*ԭC|cq=J sQ1ϷwEH9C(QvߣEO*e!CNKU%i\%/D~L__&% aB">lgPm'$ItE4ڠJO(L&sZeE¨_[G }ںjv?g[/BDTꌜck_lsȿ^XGnnnSJ-nJ\="5\F]Pqi|:*Bv~#Ѥˤpd4ER&]Ke?-KG +Sh{&q] bB#*QOFcAA3^so~7tE:N @[bl+x<O\Jek6݈4pZoZz^u+? H  +^Րp^5}XAKpagy1 l(#`Ѽ7R5ysS0a^L&:%S/*Y}6r\ ?mNt*j`N}.׭lTw:=pيLŬQ[~U)B\֏[mu@kGabuID*y=N@߉ U],eOa8W?KOJ"0ub©ZUD +~NNdbq6}m+]F!NژKǑA%+@B:UG3GīUO'i*ဨ).P =?yNO~#I|hk%ijD-y/PW@{2@hVQ#1HtԨ%M\hCHQ +Ijϗ#JLF$ԳLZ{[SpFwݷ]I9^qԘ'^ի\L`s4u6c8'ymk~)U wqtO{2EjڶiRadՎkyr ؠN`+GɗuT2V)?(1DV̟*I.)/q]j揬TE`(B=SζWᆝOZNjϪy~YI],HSs2&DZMwjY4O ^(n\a8z #,Q?ko"+:`D\lu5׍ Ņc欔Zh뉌"RE}sQ"N$vt(8I +"9k hCJqf=osͺ&hb`8[:4#?s:YC|D)s!ш9]OBKŘ W")9/d;~۞/HXb81S;COS| 4&c~W5sGE-G+CYo7~APni8 eه27n;H;J[ED_|.B" LJsO:aM99c7stsiz.u C٭Iw0>*ա"s2tĈӱU~ӜI^B^p(`$daiBCga.*0p9B'pIC '[0S5zQYA*5<|6P\9oAh: *{;FI6nO$ZO.)ux9ۦliomKQj&>4 +$ʥ>,"΀DWviѸ˵!<_vuA}KQࡼ~ݸMCתܐd()/7(-9ᴰZ?PY)#7,0ğ'l& H_M cBBW4G@klPD.8hFC'OJI+CN,.Ign#PvAѫȱ]O~2Vἂ+ᵾc_m83BB0l.*ui ñ*t\g=[p脃IDU)quš/2*y<3} i9Nja9{6t,o=$dCbц$d1A]x}uv%:=1؈zGe.Íz+pΟmL +2Pa)&1(tzTdy!Ёmņg}E ]n{o]_2 ߣ`$d%7auRfaH_$I>ap2D)Tۈᢻccvx~bӊ'k?FN"b| _{n%lS`hXY:qXECO.n#y{  ! ;!5Tz#D]!*hW LBa#0:=Nh;%3]leSXfz0=novU= DgyOcd\U|GL|o~m]iu've49;7Gy Dh%RZfqڻ}&pk;ڌY33XWcw87{z`О}qa5LxֲxXX{LW1 +dk%95ш56ML%1禎E[ +$We7995jLXLOؽͪb>ߟg2w85݀`[!9ٍt> 4?x彝FBG7+^K2'0L'#FB=/զt:rxhE M7x"YwQ$MF2;Dz`S@_vqCؽɻJ}EDw+}xTcBqZ%)/=ݟɜ< ]nr8={ "%bn(Hυi%SGnj5_bſc#:2_# e zT}^ > ]o^T4SsrQMtuĘIVv QږLT[?2,T>C0ؐ&˲v FS)Ͻ +uE1mqRc2<у'f)GSG F=ԞH!أeVNZ.Aŕ |Կ'Aܡk"vsOTJgsyW(zR.\:QEr$j^Q*NYΕBJuU$lNڶ ]ڷw*_yCJd bJi+stzJRa5jJrUOlcliluS+mѓ,TAcxgN'qJ8T?.;:h:Pylb51k%E! y>uB`` 3 .:/"=7sۭ 9HVa!.p)+d sZvvK{v+I +NNda IgFqQj+iTf8NPLQ'R͘gN8tqNMGYgN3Wp+GZ헶$bCM/^C}崻J!󼛒$$bé<覜*k̖֔H>gu1'X@. y+Y)7J[" +7w+8髒6oY|WH]TaV@Klj&{x#n1Iap;aTӒ ]ɹf9: ODnQ]-ɞUr8ȞWN2 } +VU,؉]SrGF#S7}𴦴ʔ\'ݔQJLORBC11z#ytQ02J%͎] &r܍HLuZK4331U{;˜8kG%e|3?d}3`5.| {ݦO+b&EhZ |D&[? ឧ]r?#edA7ma:@0m=i{(C/AZM%T[$i MgJ@ gzg^='xpPUDp8CàxM&vݣ'q-]RAL|9SO)51vjyR?ݧLaQoE,ywŲ%v&l;.K#8PD$[m#Q;.Ŋ%9Վ`Qf:xTRߡgrҚ7Dn:jM6"SmVH+ƌ0hh],x%@BFJ1wn^W, Gcu 0pk$$O;65Gj~bLJ[Z,ƧNrX{XߛEfWW穗ͯ)}av>ّde٨=FROT=}kױ)7 k:jS1K\6(׺I6|ƙGtiZ ~ +JsbOILycSr%dE3򒻺9Cm4yҾ ٿ&:0<<3\9^.;k[뺢7Sfy}gs]exxE\ϭ +C. -n.F-ҥ9ɳncqk- +@z}B!~9q{:Y^3<۾,约|_(,;sk#]9*+]T֚8we\A]٭_pZ\H\6w_@yfչ\k6mnp4^enlymL :lw]^o==)n}^:wSn^=!ynI@_9f]5Hp_nc-Lⓚ(5.e?\+m{S ::aDOt pӏv[|%JcПT_Wsm̜Á^O,(B]_ 2{IO2_3o@Kf90](Wv欂*U;v{LotFQ՗P'ݟ6ۉ2nk3-eɨ|]uMau8+i2v +3ra#2E҆䝘zW%+=18]p-uWWV U]a,-l=aN[3=qG+ $Pz+亢 W^ =Y.rCK'Nqson=tW6=6W&ذ+ Cf5]oLh +Y33Zj 46EXR1cDݖ/%1zZEL4(socj7vFޚveӆ?yy l}j X ̽>BnJ?3SKРcCȡRڻz~]ϕUCTWWEVW[;g!i煎+!~ѵ+C~ߐo%3NYgL+ui; ULglUC;I|^,UC;i5gЈ 78s>B@\Bdl* +ZT31ӈJ;8Lσ@LXxa3/_DIG1Ȧ 4w0D2@.9F \ѐI ,DrnK[ຳ=*Fd(Ymݏ3t>HIVzf}޼։&yb w#(x,~Lh8,,w0JSDUUZonO@HVhJ\QMFiO+SDD=׬va45ufȥf --~j]!%Jmw꣸2(xol4vR5LNi6Z0׸)Ϥ}EF7LRQ/όJY5{Y>QKm7KJݭ<B>6d>gC/g`%t)TQH0KCЉ Qc'my{|bcUʗ7`1iy^Uk~#3iw<%!Y_;ޖ%] +w#!6Fwb6RָJx,C|D+WP|Z-Gv} p,G۟yƘcgFی;NwTo}{wa52"pX=4 8IJK .p[qtqt1aWsٙ&ݱq5ie֔Qp/vl̪mdX +=g~r1_L©}[XT1(3l=S?_!q(~|ciTX{0|8puE>8 +wG3E|t ͚bҧtZQ臄Ηѡh)@ЧZvy\C{U׺<{:p<5Q[EeZyZR[ؖ<9gQR9Jy:i 6*B n8fmy}϶ aZg0+q cm{zBVORf_7&ƶڐ_}?TjMk"9Z^M[үf/ThnV؉8ِ;ZopLUz6fއm9ݛ XgxWUv~_4rqIJ.R04e7)ㄌ.VWzƖp|[Ahl&ٚ^Zy5I0[ieFƭrF$#{,CwJ(GW.>(LT +OW "Lp]vM6iu_"-!Q7˽]6pɠw#I8۲-̼~λ.=|EͨUځ:a+= ~ ?`#ԭErY૽ʜ<:NF5@ @+J1Z 7ǶfmI̭:޸w,A>8QfÖd $_RTe){ rD?jd ɫMmm0:4[b ^ +^ ^dY `-F3׬Ɣ#gÜQU:RTe,eKrrijʴV᪪f_`*'e]X hR51*AE\yIS4}Dm*keUiռV2jSkҟ״Ÿ7ղmng?̽'5Xy+x+MK^9#RJSOEũ2z{{e{\ X {Lp=9+ҹj[r{a9T5Ĺ39g[(`k{4|?R;{_؃=9+ڹl[gvg[ +$WbIv?3c{@@xx3@&p(=PR4fj_Ac24ZhX_/ʠVIdy,p ]J+kV裩Wp Yuk.׫AT\'PT ~pVhS&;N贋(b¶Uo,R,)V`i .hPʶ1n֌x. v[,;\b[XG~8smfE| HgXZ +H?lXoC|GO2tt<|id2KCv @#+RMCZ =W}v|naEW;SE| vP%X2(cq!Ǝ{LB]aҶ1[}S]{]%GS 2TAFSZ +; tVyޢ8aPZ*n*8)7W3Hc)2TT8}", ^{oΈUCT*R>i!c~ʗ >W҅D" ۜ&1C,19.*(6Ӝ{I%65å$ۿ8X8qhjaJ,Mj NItZMx9ήnPrOډ.͸969C8@4M1\(1TӅ \q؆_م<ډjs`zNFM]F`FFj{ݶqumDxqȳߡ! yz@m# H$.>@ ſ n ^^P|{  n2C~>;a/5-׃ϻ7;8t~?vnX=ƀi7/|};׻7/0_};7H/|0 + >֝B<DL1X)I 5Ճ5 Q! aeC[ 5WFn4 9 IW8nkJ8?󛕪 m`tz+pWm7,yۿZI/6õ̇pc7҈q)Pp13q 1PL\xC~X?w5=Vܵw=@Cv=o|OwM?X- 3itHp6}f`?3gz:tdc1Yݸkܰxpwh д#.Z=Oɫ3;D 90}柩omE=rl~:\~\~:d'nB>׷01?o@~+zDrL=obZCCaXq8l&k7Q@!{mnS8ސw3!M$Pe<8l+ea&3v av Abff^^-.IZ '6K!8ǢFOVUEE D F(JDXEEDdDhEEpEtDxEEE6gfZ + + + + P9/@ dIw%`°fA(n<dę֘hw]!M?1>ĺ b̺`i½iCѻ#iC)亐uAU% (7P07f`:@+]vmAvmpAMhkѽ?D pN4P]0>XƁ4 ~/N@FD0p Hy%nп#ot~@7߸@憔Z"[@wbc!գȆ TU Z1AU Sf ?3ı¨'⨧BdBYv 3\ +uҺg~u ƒ"vƒ +r +b4o O?J2 +p͆-;=@B@>.BȺi% + +@v0}0дI t;JmҍU;TmJ5beŃU>wƁ.( xyAIwc灴 {<hǿ +2^z^@|~^C +xxa% M~xAn x/Nn oߓKg2>4m+>f25\!cbD:O۪|3}ά[[dbGSX,<ݠq_o3$B$4JR$J!7䕒)I J"&h(dgu1decelfjfkfihfnfofmtaFGȁ7z{mxݘ]agRDV ;JӮ ;?bd E(zg\Q~s,) *ox;sS+=$ +#,8[iz 00ŦmDRSRyf_bQ ;}j4L?}N6{ F2;_;)UlVM]F]YEUQ'!=&6FVݎFK~ݍZB @E @Ї 9r=`nr]/f׍GJ1kv6ή_Om/9[r/Cn97W}CVWlfObSx{m`{`i'/i4]렧=O?_ly^t#%?7KJt/78Fn0Xr3DC7$wC{?Ǐ dK; Ms2DSOS e\S j=H G1k=SP =h#(utTgP|cЭdb&,s-xiu4*So.Đ\C?=LHᬻ\pGC`\ ptaλ\HpAHb]!roGO{}2~}rn?sIoQPbDg&}(V#&Rʿ._/.~N}}|+pܯ}?W+㦧A_ie0hwhxh$lDlDg(!ݢ.0 !ݦ>H^X!ݬ^!?X8b޻4BjWdJ Aw"iZd~}ʈ@?5<'UsOa<6MR5]sz5mIEySmyM\#gmeM\> ~vQ>+v:\rH]-ryNrʜ0KkcyWRHA`CH Pd10!d'Y^Rj[ nhmqՠޑp%~v?38GE-\b)5_>yKtv:p~ nKQ_~_yhYQ)i&܀^>vEs7CGf_ +w^x72:B1EYŁj'^dL}& vЁٵ`}{5 ggO'ՌRjP8{R0gC+:vsR1踕O3e Q"jF96gP7ٺG1;д֮.ViMɬ2,#%rD:0g76?KDmy߂n _NouO'/&@j =ﴖGwtB{#SΝoݢN*| ŭn2h5s{3vly_.+]ƻ`WϫSGҍ7qfAax*Wvvz`S>:x8{YY(} @576wUMS1i^>\bJ>փ&|>PBAdžLk*X-%lSz,|| S.c'C8O&O*O7ǻ77˻ɃG7+xZD{iwK1UjtUQ<މiG [*ܽzSU63jp8MsWbI9!U)(ӣJټ"{EeB{6@I M\O1Ҋm+_C`JYM\KM.Ԋķ,e vHCTA?X2c"dM>: =污(׍1^T R1͂O؜ܜyQThJrtmWXif{!:﷖Y#u*zh*-п'i|MjiVWM +&teάgE7mx*~cburlN8 o1OU~t߽g;vCqLH79S^ ]|$_[,^\,;.>NZ}ᰈwd >!W6i_ fuz#F ݋ +˲uB@K[6FKx5R]&PWRU6I"qKچc Cy#{)*zηB>opɢou-ʖd%RWU%Ƥ}>x\/7>ңۊaFHnԷZ_q.VQxA'wRiC؏w[bQ[(O-,[Yw#Ɛx`[ +u|Ic΂S6_ J 24}kg0sy/:u&5(#=񖮭%;R,E ϛb3m27u"^C4;`WOމW}aE̪MV0?U;!WPx.{>4 ԻBINiN5d."kI[a)?=)w'y+&SFMNEjf |ԏ*yGrp-BF> suˮ~yd/ +xq8`BG$/8.!a 8AInl_"וMl'\7|Fz}CCl"يI%E8J75ժ}SY5NTcS먮i:ȻfꛍjiYM$nL"bCyCL]uw5'B]~\:󄌜%CxuD +-L!|R8Tl}Jyf/;S6g.S{c^Ơc޴_O=[i7q]g?ڒ/K`~`Z$4 amX;ra3 T!vzB'@Sn}Q[b"RVPVQVQa)d;Z`Sʰp(Ux5[sfU|\)SD٩i]}7/;׫e\BʪYdmJ۷}呓;8fww||*@@Q(_X(pcYI/V*Yq\*.YAP+BV&'NOYQX5*%mr+ l 6ӍDA!tk!uɹKLE"{=7ؗu׾9GrtOBQq9"!Z(H օW~Cg֗~cW@X{.1И~Cp(y=| /T~0?S)% D+Ty`ip>71jk%3[')H(vY,I`7H/}$Q[Ҥ V$VI6?LOA%fr2*u?ԧY9Ofl2^<>Q6RE8?P.IE;}:1PP3+?'/D#<80?o`A@G~390A`ƒǢ+ +E z'jToX&t(U2_LSPG e΁> tbFP吩 2M4A!PPu_Xl Dl`DPՐˠӿfaAfw~#Bd#@1@`27ZVx4ܠ(9;h7;/z琕}7@A n'?U )(duB1ѷ)>"o7BQU7̈́\s誏Xlr] ަdȟto_mQ_m_niv޾eD}OOa$ssRRRRW|W|ԗ`ͦ: +f  )$_7 +vQ}w'/^JᗴgK[H.cYə ++Yə3=Y4(#9;ə)#:3Y?#bZ]' F.؏HH{uEۿ#"+ˋO=rBOIK.*򕧮^9Yժ Ȗi Fx`o8 sI :6w5N>Q&H5?pP+V%!>VqKAȪrO툚uepSlZȘ/ +z[`ٱW6\{C>W9Ϻ#ׅ_{UQlԑIZ {(EҭBY2^|؅i\Mz"<з$J~9c4aL x%M>xUBo~~@x+~qK_|'|n~ +|kpN bucչJLP}ȼkxQom#&TƌiXgpόJ(Ӗ. ;5L,L35-3VO+We tir3و\35? diYw) +Bp|E< c3+3;KIL~/K-{}RU6HƪF1W10PYMϟLQi'sa"eoI{pxɮnӪF4īnl.2*HnJ: HhD +\~LpfH,,pͥ 0Xۗ74oD_UE@m5SO *fb[^]k6PM-$9g|RP5pL$-o,c=W/mfGЕ!m.sդjR#a@GmseCmiF70GheiVr4m } J  -,$IߗwAPYq?.v fHg {qIEh_ieZ&5zZ,5:oy;ӛeEM>A 6~jS"̳V7H'UQx L^$9*s.U͞RIE{'e=䧯RCJ|4e' 5G1)a-dLuojdR<|Ɯaa +gShw7dh 9i.)y*Ǫz)~NsmLlBLg$niJ8N1 {XHE_D;V`E)Hʴ->z~ɍYicC'%BJZJ2sԼrV\LY\ׄ%׶Luljb :,EfG(-t-T"+'`AS*x@n3MLJ?!V3I&AQIOO.gD@Eed.6ExG%2;;FGq;e( 235[2f!u\ϻ_#zIA{߰{05w0,fP.rc3ıMOY80mad`V)ʋN- !TX՟>?9 }#vb +S0Sof'm|'$,m:R%eE;dguXhW+zNeO(u-(*jScaP[5ٔ?rw2ؤoV7x0]zB8B2esC{Y1"%N^Z8f$O}s^!'g:Ňl .)4:T G%nٓIEGiQWn_#aEN5ؼ$>ѡ˪^ųi1 2qk"ˁ͚Ȝ} iGhU9#(Cs(CL\ڽ \x֑'V!I+x9ݓ\{ŋCSHGόGaRPP]QF*e[V/(;͚c2KE~nS`U/kϵAu1O4EH5=aq#d(jm)KQ]SM_1 :XH0<=eA>ױpdʅ\)>pkWQ)ub*1?rtr{N~ilrٞ,Hl%JhG']yqebp(Qc=$- ܭi,.U swH=HusԚUb(MIe*JZK_Hь_PYcD͈A qd};/] bQN4 9ILJ/4TwN> ;>Lz9ԃ1*;°x'@?tM]#`g*?FDOin?QR_zڛ:4gitbmrtzpD3v: +G3&:9Egh}^4o2|ŒSrJY/>Ԙ%-٧u-%Uj&>pVpqøot1b]v"`Po..n].IH¹h͚f[jCA6#SL {p9YsKta 7w$|"6\+&^,7~\&{| &1hHEBJme!t^[Xۍj.BL,C}KcJ Z7SgT/b ᩉ8ȍ'bJ|?D!G񦝡Jӄ8<>:w8FVX|=V/2*§`~o]9_%wRGgMaz%Z6{!c ?yOܨ4lfZCԤD0L~hd烩+V)(C돞9%֐98nTC:#4+酗͋aΉVN퉅$n.L7[c,U4-c_E\ .KyQ)S F\(۝+N/'D2JT윔9Q* a!ҘE$?d`D[_Wtޝ' هz't1I­K>uąKYssHo4ؗȚ_ÉtLdFMW ?4sAR"ӗn1Pc6b Ahx| oYō)1?S00%]۶m۶m۶m۶m۶mgf_݇IRAWӧ+'h+tq\-Gf͵ 8ou#OoA1$B I MO]KEc0)x# G PYpd䈆7yU)8Rڭ}9ɟY60T玶 Rq:elp&\V̗\ߠͶ!as5Z=T7 KC7a#H~յ*J'6 =!mOB=O/ϱ]=Y<:"0p#Һ{U8 | F>zx ֕Z֙Bf_Ñ_ "iItQ֩z(cM qvZB}g Sh$"s܃~wM"|^}_ m:Ө&k):*O|M@d JR˨܅;j9&Qw6&b + vV{/ψ}9TNV< 5'*N5V>_ yv*ڞo{?U݇\uK]uk?=hUѭ>h ׭>hr-ОZ|Cp)m̭>:}|lz}P6 ͓=T=o|[U}xg=|X&b]=q=c||&-p=}f}rIM1~{%x> +1>Ecv6dl|F=8&}:}=AZ!ڥ墦ޙ .dmf 9ER{+,,iSzfy4'?RE*Jftf| #?y9t4J~G_EޑQ +\<dꑭ~!}E<88:e^k)j hi_o2Vwj۽  ZѮ(n֠i^ 8 N{G(|Sxzワˇ@sԼ?bϥ6Wq +vj׸Cq +PnH3.Sjȗv6(O*#z $ыR nD#GN**U2nX,WEcB@[gsk^\ܢ4 42" >OXmQu\4e mlXgu`ȓ۝[-:V;_Sr9?1imx|oCD;ls +t +^0KNt + +CLJB +%BU>.JBvURZg9jW}+ Jy~ʙw,1?9juWuqO:tm +i{)&_.r-R`(rk1$M)Kh-]3w@3ΚSGy^T @y cm֭J\ExxCQnE04AA} N LtG?&%z#YV|t'][Yu xt*qGQV~ݐmA(OP6<@4nOb6%^[&uw%JMs9 gHXb4_vLO;g{4אַ.7\Jso*W̖^lLpN+Z;fnAb`FL{H(;m}dcfw7N3 9 +ttlJ&ePfhtQz ܄e!sM2mav˳˟5ߥ6 c"Ɋoɷd -J,I`LPvl@05+$,ۚcSf|]D77|QAOk +[zo6sҴZ-,X75:쫄:pM4E5Jf\#ZT!Es #$xh^U٦~vj"V_谞yK +yo'z\LƝ+C7D2 p|{CK:Fw$Ѥ%)Ԫ[<&:6{KpNcta%`GSxB6w -d}V"%<3sl7WIC'61AI@ר3;쳕-;2*"3e8|<[r* +⺾5}3w̢Ҙ(Íe*&͵ӰKaeL8{.Yғj5GuʑKqd@{uI4x {fAMO3;X[R#V>{|窕Jb 2& +-KyeA9Hp uzuuc"$~@yiCO,0o4nG8wӤi9[+]X)VׯpYQ ϕBg.gp)l .\rjS9c}$zh ]>gjX`s#Gmi`ըmmH$؝OحKV9C 'K@igcv#As6:^{f I?7:q0:@fpB=>Z ^hlHA/UW?ugQ0< [UMRB>g)Rl c ŹB;'@<' 87pN:h NHqhNq/ [5eDl7rhӮ 5U/ >s/M_7 'G=8lW]FW?pܺհD2>,x$f̸!GKb2g]K5f1%h1,%[hD'Y[ohCObj*ŷ[bNq*YӄN9+ٻW cRO%-mW☏cn߱*dPu4ۤ '?1EiDDء۱1h *P0"D2]FxVrd/yİQZrDIУD9-$]WWAV-ؑt.D2QVBeV1)ywrdѤرC\@ZV|d$ñ1WVVpRhfhf)CCCCCC#QE%RC.R'YDSCF\)ů)mY$2汳SCGCGCGCGCG߇C~ƻ7߻ZOWOWOw!QO)9)[lJY`JA&*HY١R/R^+Ʋ534 +k%UdfWR?HNu&ZvE;ޟM9ES9k/a^>OM潹y4nHE@Azm7|?q +ѯ 9چ`%[bou#a + yFǶfq^ +[d~ 큔;S ѽ#}9}+[vK`"]%r5K`]:<ɺ [PL9z& /M—-*k "Q48WbO@B: j(^`gJ4AUKsX^c54DXGva*M|EYi5B9SO1*\G-#,TڜVYe!{. v^;ݲfjr_o)>n: n`NkWA[|7.5.)<'-Ҥ?V]N]Jo=lӖFdť:A* mns~+6_&U-=}#8YD^6ڐ;Yw`g6y~9y5SUkj6#s+%bz9d,SZμ_Cv~7 ;0L.eKh@gS{" +Kha &DR|h0C&$75w B{=||cqCgr+y!+PSQ=}jWtC/T$vaK?aćRD_>QQ=X2Cn^>?6IIpvhm ?HmK +(-ÿ$e9K};;?҇^寏^<~ߥE^`Rz,&ő>epՙ=:71 Ht璱5>*D1iA;{.N`g/O5(d[|掵[Kd73S{7p᧰o?Y#ʚ{a^{g2z~?X~Q^5PW|?j0+-SB!}ږC/ D <ˢf9<OHwyH \oy|M,͎!"db Ao\(ۀy/v%ʻɟ rcp3Ge2Y9:10=SJܭviR#^_eN|z +yv~י*JsՄ7ykx?b?ewr|\ygx>d= "6]=&XBZ׀H۶Z$7 I Y Ӛ+IPA9k)dרm)<奋o-ӘȠ)31!=;~oaꘚ:we:^ a<m幸jS/$4H]jI1sx>f3˰tmzao^@4qQ9"ʨ6(TiKLfHke+VC9 F80>dO ~LZ<`36PCKEV's)kJ.%u!)eJJPXuΐ'ˊBv-i4Xxa^՚N:je+xZaX=$tdl]LG.Z,[+ dHByyR[eիYiNru13WCmY-Cw0ӘMLQRgध@qRu6?gEW\?v0OK4qep XI()d!u Fӵ"xWS bLMJS'iEo轘wEZ9jVcSg(&HP}[#aƧ̸,a6tx{1| = {*4 2׬C`K+t,HlGzν$54(s: }mWY2.ik7ߵ)̶¾;&.i zGL_ #MyFl\I$zi5w)>z pC7=]-\jWvA/}I/!x-N[!zi8HW[.W`-/a O0 Wpl"-" ,%bɼȍ6I42"cç^/xs[,ɳk9(;&[ +gp`ӗvN DGmG-!Tb-v45ܹF%GɈ/7wM?;vqd1cuU$Ի"i nUL4LU:bxU>y^V ߰dg7ȣ))qF4QP-1 >pb<0bd1>Q4`@'(|~.HK[OciFK,*++?m_oލپ + #gp?)K=ry-y@87FsѼ!J +#7yΞyQPpOĐ#% +CTмDVp*S7c>sLJҞ4ᢏ]!=k,1 `:5ɺ)yRFyR9cx}IQ(Cp}YIJ88yUΰe_]" },@BF#ۗ؞hp}1Ec2$Df<9hQN_6Ax{sgj֮AD{""Asz-ْ +u aKoiЯ6gS/n˹7x)t- ݋۞a˥72`wq0kCjOnDH[zw}zH[rHEN-oh퉬a[ddIgt(d.On] ~ܕљMnA}A_D /$.qg00rwr/# | _ <GVGڱٝ>/ +=_X.w_V\!f~EyU{}l%O"f}[_e7ʞƒeo!_%JCV|>PX!P>\X7Й750m|||bHV@[euƠG +)]9e +C8K $K5,ᄾ1 9rBc㤉T$4^d Grtb2x) +0P0 9E~'2{',2(nD9-56?z@r.ׅ,S$j2 +lH6\:o7!("Ȱɑً46bDceDpyjʡ#oUy;w_%yfo_~w9F+x_vcdWtueߜ~5-`{Tlf|#U!I 9%5mJG_=Iv u_w!s>\ uf J`#dq ."*$ZYe(jKǁH{MFqW֬ڧ&>Ѭ(lm㛕3mhH5ï)1p(VpRvwGҶ|T˸"Kܣ1F,(խj|?mtm"15ÑCVl# B8]<͊Y *˸`/v55 4dʸIm)B6 v++"  #¢mXOVVC66ˢ(k7Sju1˭bO1432^ Exm͐7RQ,d5$SK|144У8Ʒ /+k/QF1&^FQ۸,Z#aWŵxmy(aqA_dzqHPuX:-jm:d.168I՘:-SնILE88 D͒z&%텥֙pmj'CUrqHiHE =f"c@5EBV7&:ʧ$F .:Qe='i X5at?B_h.׈@Z孼GHj-XZS ^ f"FiU6*!\݅m~ӗ9'@Cpu\rՕ+ȅ;f"ȇRQ +W7 b2S]OmA4!]#x1&>,C^Ӿ3a*Qy½K;y,ɿoL/\ +P۽;iea_q +MWYrNN^"<@QrKQVC5΁SvTKFdݭ +E-Q\ BOKS{Pa IXti$qw(­P24חQ56+ۊ)^̿nNf3H0ib*cj]•tV9W\p&)v2&'SQ{S81F\zp6ivte/4i`6;P&37 i34yD3UbB6vC%lN -h(MY֎&elcs%=6ސ3aX#p,w|Ƞ~E +$bfՈFڑhaCE*iR @dG +BѩC/\L ‰酠.)E#:ǙSYFD`"¶X)JTs]#G)=O@+FF+F.  b-DD`jB!~I_nť%2(/'RBC'|&Wb/l[W*ј! 1 A +/ [ NQN:(5TB4\S +'7 PQվq-!PF:gǢL:ũلkjoM_˭S +u‘)>9d1M/uj%_Y&V~^s|MЯYE0 Sң Ћ-O'KOW cd lʑ(mjNWh9kvTIC3ifCE#Oe:1E‹ %>2GaB:'I+=Ħ\UjȖF<Q0[5£r#] }OjWѶ. ]nE?dt{$捍S}Kvyo"E Uelv`ɸc mWfvu!pW,9שc9]WM@ Z032\qjAn:ڎ4̠wKh%e9&n*m{f)Sg uO3#Ery'EC?TxH'EC&3 S Ɩ*.2mkmdFbEfCKLD0IK'ŋIl5/} c /Ϻ3-yU,z~ MAH9OY%2r@+qqij3۞Ck(\'~!"Qk qw!sИ=X&DtVo9GMvz Q.<(cH#k(("Rd2N A?+L{8SOYʱv́k2|lx>5Fhc~P;aVhm¥^0_¸.."[qGJ&peHS7#\$ ԍqYܟaL!aU5KjJh|iRS8h;9^RhA8>jf7cY +Gpo,%I5oi sΊpbn28h1tM`]y*%ڭ8Xp>sls7Z9IHtsef-]TloB\շ '-\%r栲B)LNI`0x mky&Lz)%Eq;Xy>Ȑ*t xKlidܐvA OҊO 7+sm>oipz'ڕËqu3ޚw{ϨޞRW?2\g~~5\D'3[u8_7G +ftjqpㆹ5,zb'ХvBZB/⨱1q6Y6IG o`~x=-^)q; ;E,jV?i+zO?d!^24!/[#0H'[c-@ a>Db0|TҁZҺq0Q@kyO 'L6xY<-\ME)ei/s r!71:NAݿMF'2h2cA0hbcy Pl8%r:)(`2zXvg]v o{Tu{Vlzl~u{\z,Z{/$KB(~vd/;ɩWuHE*y+h(~Folrz@m^zAVVHzBhx&Df*uEmj vI&|u)z34/\mIט]xr1uK4biH}Жxe  _Ю~Ĕ|(PhMahMGMZtX+oaGu&,~&vU8ް"aUmhpLIh})#'jck;]tnK6j" F| v-h"Bl$qz$Mm)o!'-Q [,I۠,(FFbֵI2C~R-$8bNÖ8Q7Bgbqd + +V/o f{K.o +Eʤh@L @_GczCFT@'hHIZӏT{ (K,0TzdԱs5<&Ck tjaXf؈D4 yUBVlwnZ7I?XmBSNEfW䘭Z"R10U?J!0V +Y(A筳B֚L !(%dV q$UR(s6\.<.gCbCz.);\3x_z.34ԨӘu&;zwrxwx5ůI],MW[3iӘm< mLoK +Zi?$zw$1. ˛4/\gEsbo#qŔΒ /܇8Hf\E|ldqp[ƩH۲_ F&L_~:fYCܐ.Z-[/'¡Eޯ;VN=x #-6be0z@ʲdo[X9 +, lc_n +[4j>+rgy +r0Ƃ!9#\$ѶTku(03sB!ƗXhȋA֣l;#3údX6|qI o5$ mL9^ԃX%%A]D԰>FG`40| +Țg;AsDf821hB# {BJtǦk(Y> d,!?C?ۢ 5?" E'XLyۇxyL<3\@cR0ifD}hzy3rUNT`-&}m@&Խ$ǽȚu.pij(T3#q(-7_lޗ= +u`#G^0\_cm(tJ- UU(&)0Oum:@YRGg&I!p٣_<BlA_/ + dZcYږ_>'M&r';d3sbd -n$3Qe =mHTՂ H({nLF5 {M{XӶB1{BgaY}=d+9R eUVlFY5t|d{k&xfE-4JE)N-[#Z@s玽ti~)RvyuiUԩN= g)UT6V`3قU}8H䅃K05?Fl8%f4p + | Ix) UޙEQ &U3fڝ̑3Vd&}cq .}/{XCvZt ByaЊ)q9CYo|@Z ?ZV#>=6ਮQ +YcSgOU&f#jæLzӕP- Vit.YQ@k=RKO{g"BhQZ8eNLW"z5FV\]QrE\A:jմ|tpA +yTt˄ +(07#dBygHrF:ݠ@-8MXq~W"y,URF׀-&Y!CHׄ0%v]Xg7B.,&kȓBe~YwRRfE0@ݝDyNg7zQ^ZqէhtCl1< 1fH_}]7iFU4^JW5VZ9J͎FcE?6?kTWAD `Vɮˁ]Xj!Ş5˩(VW)7- 8G|X>.Z4LM`1@5 c6B3Y $6WӾL-_?U^ͥUz?: E+÷P>R/v-3)ikf~gRtD36 6\z"<t`![{yY;ٺ$:-9~x|YN ht47UUK QXn(=(9}n_VGzR9LxƇ^ 3>2$y3p=Uފ(ߤdo4yk).D іG%[: 3<;`?:huU2\kpHoqf1vA>yE> y%Δ] |J.:>ټsb:'YR2g\V0.9s:[=Tmohj<vO=#ۺttXj5ƾ־޹圴}{y2gкþ}k{w|`f{":sn>jn˾`|l|x|z~0~H<߅r@0FOr޿r>xrrrsxt戾显榾派漾ʾؾ_lS#n,F1̣Ӊ'e$GI3FXdS8FG3` 2,Ӑb|!3墀R>tubE )xbEnb}㧎g#D⑧<|Ɩ> xF. u3o[!/֡y};~ X< EE!J~+~'缳<=d v!DTBDnqIE<څ*$D^H`H@?@RuQfnP߅MߑIƾM˓_L L*HPH(%_H,%w*(7+SHWx)&.WOjMpe=:J/`g=9j/M>LКh8rQ3L^CLF%LH<$jekWUK0LQ7)l&v5~{LQg|d%P&; &[QD)g)Ri)VL)Z&O)Rjig4 +l6Jl$4jtPh0&U^K{hv𜨜& &%{yW:>ȿ}Rx(yL-Lb0I8=p}Lfy*2Q̩22)utȸd&U:nב˕KRY6~ZfU>Wj$gJTJȇ֘V)ũʏF@uN畯O-k?Uo>)`X&Ul^uk {U E*aJ+NB_p?!4'}nF+$q7tj/cY~Lul Y1&ˍjQw]Wq٧v"'mr),1ܶzkQwFkAvukVT*|-+}@ lX&u7qY#;q$',l?kh<{9ar?ᦦ xY+uP˗XgB)N.vQ)oX3c< O@JL:A']lA=o}WI% .ޙH:["ۅ\XTJ# !OuB2Dd$2aVcK0;>M[;2~X(U +" r=,XUnԽ3mkvLQk߼-!7=F˩haGED8=A1q-̣i b`1M<|,nFɱImVoжЙ#k%q#=٪9B, a[*IJ%lA& +oVo2ELG!5h ){T{r + v9՛.pSאѾr%LNVrmlJ{䙾8G؛b ,M75TGc݃B?zwk&˂]DWJNnd>p+7D72L#)ʧ&<$y} gV̟r>\Q?;i_6# {a 'H۾9q+6ߊFmVGkۊL7[ >ۊWܺ7+8ag g(k}dW? EzĽpgg'4nLW3+_h@FY)ʵw"u]qM =Z̅4lȍ"Cqͱ*1IM/E-qdN yeW7"/͠ݫMQog+'z^.%XéAm*— qwzNkhm}|;6!n5wLk=*˪۪{@='(&.lϾblzK-0ɚjiY@kDZ R+N#'HZBB?"\F{ 5IɜѼG9{u|DsOjǮHEjfYiZhʱ ;[х @?v/4%}'J d|޶2;b[ɝOm6'9W܏ v7:nݘ%k5;j +~Y] I,= 7[d?7] gonL߾w4ֻ ?LLP%ّےǼ ٰm:"Z\"0b!^u:k%FYf-G n)֣)!%"X[&_!22ѣMiYYfV[&7Z a@% KXVg ]!ׁ~1NX*@MvfbKp^AuR+|)MApvY,MrMsMZMv AY}oޢ^Q&?ʡ5Cr>d0 qJv$!ZhvjхM*s# =ZiAYrzcl$,AOm*]aX㩓vzwqtb +my{Qn e&j=ܐuMρU=5.{UOY<UJU@d t)fV4Mv@KZ8LZ}` +9O>m–q"(Lr> íN#gjY,wլliW^j<%֑ؾ:|B +zeEiB(ҍbM=gF4W_rHu-EAϘޟxOR(+Ywܮea~6,K1[7!okV/f_OQ2m7I[ڼpl~) l΅0RϝS<,95n lVˏ_qwf^aG1E5n+jBMޡ +D<:])Kr ZoXoUxokt!BLn庰yG6SS\YuT7cm }oPSkw&Cmȸ$rfo4J\Ѵm,=otWX4Ѵn ,čv $&xUǖ`fB'C@?f끚6:d;òUqt4]bpq0W$f;FBz$Î:Ć@][CCO?>_ Ⓔ# .c0~<_8Ҷ0‰>"s ȬOmz&u:Whr\@%Q."Rܛ$}!30gFc`dY`Xy߯!b\ C-6T-Ka( *]Ly~M `dɒE(bXpRn-H4!Tow276}'oQn0sTo#_moIޓ^1têZEwK{@z6nܱ6_)k|@F6c^Y|݀ +%X5DlQ}̌zbU-sThRU+mh˭⎱^v Ǚ]A\yBv59'T5=3]b\{{0a< Uu,n9~R];Ӷ9@\W"!m#BGSu9ߦX˹ΥT GJo/3ڞb^6'}>6cTc2vLl6x @pd=2[@'5GR}epzo^ɾw`Y8AsUa 4+AtB*>Kך 0_˴] K<ԡ,V`Yl1ujg(/ff@’qzg "zW䃔],.fs:gPy.R=ݲ2^ 5@W_1zYDGu+FNٍ>OO X\r,tG'4+L"-\ɿP/ vaqO->ue4Tmg'c5@". !@f% Ly&+V4Tb[:"7+ymbzظї?: NKD>(XwvQi\Jlg_uFGsC/JU,$ +ګ})1Iˇ!~t6|L/g dB>/zVU =za惠] zYσh2<_d'oE] {y:{fE`-23ZֆE{Z88;d~z&֡N>uO=,gX gr۸{IxAvl9d @0SHK>v1{ Nf/UJ >:?27ʵ$8UD\;SXхáD;챵4 |BLOV)j`IǓx|4ꬑt`?HT/U+km5۝2혣j6☛X u[K M {:7jV%D8aڎoe t0. +{%Rˡ#4^ f0"E_.9TUT +9&\L:ESee=W5(wg8Eh۪Yy{MnftEyɽ>ޕKt{9ԅr4D/|{SDiߛ%&/+RZ5tpH}I8ܵ˰ ўO5>ߗev-qEp҇ $sG-5@x +hqHAS"}ܾAQ7'9$KoNJIѻ8*\BXPދ"/f֪cr݃vދty/ b=;6gȐg [@˫ r-;NH*;I4[w4ʛͬ%蕇7;ևrjl9fގ|][05Lo^wnlL$,=»h9kLA)}8 aE_f/;Y + Dc_)(ڎ;TYe$qx.ANWy:M9e'Fn0:]6w\ =8{d.^yzk75l'n]:26#3{ X:Q^Z]#S&/9d~ %׫g4ϐF34,DF&[)ĤTƐRlZ0IU\U&\.Z%KIG*MBAY:n^%+΍[]P8m/GKЭ; ֈ'YjVi+ZWPKYuo• 4K џW|"Uk3zf,#ytY*l}]R|J,8,ltN+#HKX7ҙE`>~x= o`wY*XN!okCG٧6872k3 n\51iI&6+?`n>RhlP@ib0sUX~=X %m…DŽxG"H|aO!3Isz@$U Z +pS;jxN/bYZI>-FGʁC60ByO%KjptQ/')OU+cHEfH +vuJ~@sAP6!,}(<|q"YM -ctD)*( E>Z).S[ % L!] s0g!HOL[Wpc,Mn[B!<HyoP}Hԉ:@?@/,eγh0`)=HL Z*TZ .7BMzH|()s^ ANe8Z~žqʵ3T o0Rq"|t4.Cl8@ͨo(j){n.;Q\A;|TRR8.is8HhT>͆JFMfYz,yf@ +UXݎy*q[}$@vhTCwR)lܠ턱I(8yUFRʴBPD- +;32~ pN772QZ {.ڽ1|"vf^"g4Cuwv 9;!5uKqe{Lċn˅ crgFY/ U$eMR'AR&kIwscI `AsςRq=r\Wq4_jɡh]DM UKxFlԺW gc)oh'Sbxq!41j%he21KT"-@lDQ*̎8+H5U(0A% +-gXl"m> 5miWgEeuy҉hӚ8ew,y4(8V VjќM-O$Zajg},{JN5m mmxrBrl +M_R,mqyIf#Ytd#k*bnEe˚ .E$ahMdln:QQju:z!F*]9{(ovg%b8:aJ&f؀ +%OɡHe6/:ٺzq!/d}bdڃ˰feu Cr+4Qk{rw!" BĈw㓥Cb7{ػxDJwߦWa{Q-I*4.˕ e;Ni~ᩍNuU2\kd3[ԧNfs(N%|zi ʑp`BPa!v;[:IQkD +MaWxw]k# GD=DkPffv)63W+''$s4Q]rtלÐ<듢w0;qh靉R[DB-qJKD KmQK;gуBu4QJʕtj +Ғј + oAKm6l ]v'@q\ 60%ڶPS4["B6uofA/TDG;ubz$#T;vYϰvFv0_ʈ= ėaw_e!Y2΋yncRy"I&*[ގSyĵ9WA[_' 70WyZR=R= 4 ݛ>E7]gofh +=-R;7R2;{\63%rge w=Y6|)~eWS{dsQ &b34_ Y~K;KIHHj=pe8GX 21:5}x"AWw^VJlPΰ)waSNxov|aeW%|=AT;t%7%67\҉2r2L)%^,>&#L#)\~%g9BG ?sFJa֓e,Nέ8rgQe.Ԥ9 ?調y$O5ދ~wT3 E02dK?2J&AeHO GXKܢJ[]ڦHY[> +؆M܃^^ن\jވ&Sؐ;ͷTA\v1}%ad9;pC*0B!6|C!B܈p0ķfw^xڰɷw{;/߈ʃܷ7ʾ!娙!1G$w8C,'sWaV5wϷa!%#jg`OV:R y V + DV-]H?(u(C}wat+yI .f%Ѿv'ѿWKWLD'e<^26@APG: A@A@Ri5 3*, {Ж,z(Yxnf9:|YXshPT/f4DXk,3se pζ|O nɍ7 !h[lҚdwFwvoO.NnniYIhߪz%F[IDR-^A/!ّ 'E`J#?CI`Jp\f]deJz/mMnssMMFUް}ҭ6(J RuT䱞>YĠBG},UTTw(PmL %5:c]8B/]a{YuUlcx\]xD])Q)/f|u #88g%aG}U D_MENځwəA5ERyMZMaمEړ1ܵf u[#FǥU߇H?U`!(.~ \7[[-\7kXC{&)ab0iMQ$tS]H@UάyfG^ͯVitw![C~}Oߗa*tku Ӛf3p<|v >xm_9 \/]Sb9㲾̈l.IuEqƜúN%]a*H, :=wFF0btg*fIQig +;Bgo}*0$"n_ e\RMxP"$Ӟ^b!dSN /\Yae$^,(&G~) }¹#xxEUAj*4Y8~~*1|7gQvS\GKG7χ&sξ.u8eYQ T%B)stXZߑ5WBnbcWm*k}ea,V>v!΄mS7/SY`1$1yf%YK*iզmUWųhem=r p}}bU܀чg '}==p9}3l_QܣÎֽf hp`ܲ 1kZpC֜QFoyfO;nj`O(ҽB:A46GN90 9'A. _ص$n&$ğaNvfoJx _d¯ +~@wOЧdx(ʇy'fn<4~~g@Z|cM7hP$WBĔŕ`Pcn'B~TOK Θ^FmC.Eh!{N:S|95҆PEol֧lq#.G\r'oZ8A6A$l {ZySZę~ ǀY@O*nl):$1$V'rκC=cxAL}.Ꭹ൧ZC)/wݩö'.𙠜XZ +pk4{ lX`|Q3]F^#K$hEX@z5q멀[8E3dF~},.x&I㓛d}$oڶ^"[8Ev{avYb0/{5πKQF/W[IHQ"}eI+{:8T6)N=`Q -n˲֪ŪDq0_=wş@[ʈ/77n2ryU|Ŋ>[sa3])uoBG-K5%x ?!Z{xLNGGhV6<D޷ɥ?;OU<<&D6Lp: 1cq߀_x|b9}EfjV͵(|_R-j[Oa>v:b#SڨO cELa )u©9yѡ 7V_5_g[r~Nf}FuF>XmdPm8XUe{+Ϣi Fw}=. Ф> +{CQYԹ"Qu`ޜ긧kV!9(&ű9ķ}Jwq\m#}ma\fuEE_SAi-m?,*Fb᪱+p $DS7cAQJ;?7ε}s^#xrSek46}}V*m$,>]o` c~Jv}HZy捿,TӜ1-bcnG|;gP2@ۻ93'ݿLZS9PV=|1}dcvD"#p\;I/^Bh#^N*+){b~!?9޷5t&DRʀ$r΀8!df;,7wr] #NRᯚ/6߭K/!]~T{#dΗf&7TFzv_L\tU<{~E6l U5Gy,t&ЗCL Margh<ps|/xA!}b'OG(OcL$~-_;=~RSvcUw???;sIǔ{p w.Þ$SJ +R*L lCYH.jL)*ڒ!:K k8렋`u FӍr33لӷYe=8ɬ47_I8例ʼziU>I_Nxv2M豋G˄ Vra!~!B8AL (!@5̚ C͏7$lb}r,<{34YW̔,׆Oq]$~p*M0"o-f|R=$Pل>H H_%#(S&{a-u,7%_H0Q(pj*Ȱ +֋^\;ydRVxW , -HŨZK-39uu(pՃV!>sY*)6epड़46d髆mpֳDU0cok{){q ū;K"cVw +gLn0 +]K~0ېlCS&^ ] :P OLӋua3T6pnCblø n.߆:)7/az 5=`=Avm|ΆkpLi:\l}q,G MF ),9dh`}1fhLfb_h7|0ߜRO)od&hI]77lijzd`hB!yem$W +0؅} ,h! p MLY-9vZ\-QGG(YcMv8d(Jc%ɞXk,ϸY Ɍn#3]aVXmfF{mZXN7XuT, @^4q f*gN5Ƹ}'uA$*5_er-"ڪ +]m)iQ]aS2e2Iu7؊_sKnä"aR&*3iF澴,ɱ4jh}eDU'/{[=:jFw^i1dZu3﷢Z:f➭%vu#mnV rl]х$s徂|ADq֠)f0))ML0._Ѯctn/`LW=l&̰'P4X+rYSwA_'r#le eni#ѱ0^h/x5[Le7">;)NUJ]E:iNƆUN:eX0#k sˋ-<8U:|dziT,=bbZg\8%ۙ$Һu8 'ԡݐݐA.30H#@g|o`-=A8&ԉa&5!JgFu v8z=̅G& Ǔi#mP*)lI,y9'y>9vtWEZ3?*;u7ƨ̵ P_vt;W 6i bzH2SlF&͔.,>| ) QjB wrr2>ɥvXL_+.cGRzФ']'IVY"B2d~!;-`'9mE kgbprBHhǍ`2/}_!9NãEƄqA5Cx`xp:4#|l\nC{0(ޱ=GDp||'Z)g 8w _B` saMߝ , U7t1CX .YELq1X p8Ȍ{T!p vPD;6b3-c61b3%cXDF ;:ɍ[68Ԙ&'~ Db4L`:FK#TcCh#Ũa=# Ù#Jࡖ'sq}TQ3NUZP>2\"nVj +hQDg +iSOL+m7ڂ!Pgp3|$\H©^ ܯ} +'#`J!'tM^ yL >vZ}(5-qXdꅄ MGgD 5W nR2SsR2X‰{,ݕ,=yb %ctݭ\ +bP@Z-*yS;pVU2Z9)v)2&p;f.V4 Hƚ3s#$"ɱc 7} j؃%CVb>hNsf0l>0Y!>YUGbޡG:}(}|Yk0Mz#׃[F81KhzSgO#sfzV[bg?ycM7s&q?ٝ֞g[4ƺPcNgE_0 0b7E3JCIəSͮ cfyBlX`1&3 ϚD>ADmBϵ +v/;1yl_f󘿮XMmpj4ܲ~A~X*lf7~ s۳nop^ml3dzS.7>=3O֟AF +LhP"(hLucd쵘t9YR{Yav/&sv?lmfN(;1N_W:>ՎUUU'XV5J|%c r9Qhk'6UE\ Oya{?bX"|_".c0鲣n+Nf~3==߹ YP.3nϲإtOh;&CefQV];osY/xxD"`ay?]a~ ~P  b~U1֜=Xa,q:2Ý7>7]oY2jT 4ťm]Xxoe_!g]|6%͵/q;ߴm'vq4PMӆv*md[hnLN5?h@@[ /~O #~9$-s>s'̍),ZF1`*-0jlm\rZv#m6"ELj;^/~}J *ϺP 7!!Uрq4p`$D$k@@IE^=C0ԎI/>v=NNN>,SGA>vtvoo@C.q r!'(LU=B"4j 1] cQ#c"G".E#y. !xk/01x/@I{k.PE#_>."Qz)HQ~Qz/ã^GEdϏȋQ|+/E|/E)̋QK.^?B/E)t?R/GIDPE&j*EUY2FFFF%p"#R_UMTVdVF-+vEyQN)P#/jB1R\W+F1̢H  +ȢO^"W"h!j"X$$z*Hh"*UF%XTUFIReU5JUiFC7L:̡Y.C(>"TMEB!bK?IhHP"Z_,ボT>?w؟q;.6{'VMWYÏmD R@h b "**Bm,H˰0Rtm1Q}gu9sʿȿ<<+3z@xAK&"y0(쯟EFR~:#I5VՇ00,#5H$_TOmOJmO-UIGw'{2)و(q⩜= =&2fcꒅ` (ycN##1S {4pS_>LW<2Wksyc>{iLRkkrv WGҰSsrol9g g*$]i`+Dž .3ˑ&1?RTIE\3U.y>&{ Pu ʊsJ|742gV.KyhyN1)4 |X,d cBePIa cfdeK墹r\&S8t"Оlb.Lb# +I-kbOj<;(~` ˠ/E86;' NK_ZbUJ`-`o$#^˳V+ߩQa)O;Mo̿ɤLc9(e8L 8YKnJ6)KΙX=gaDSDyhf7)d(ǗYAFJ+*vcF>^- RUC-= +xU=GG8,vV&Gf6kPkakk ,WΆn ҺP޴!=^WKAk7Fb( !WqA71B Ž} vvRxH|d  +PzaBQhKWkfgBus^_`F9+\Wl/LdB.E)+JE#'`VD_o@ dUe۹#H0ϕZ)&l'9ZO5Mo:fH(b` D=7MǙRS.6&Gm[mhc{G8{IvV57]=JWC2K5+J%iyh"FaHVxOd%K@dx<Hmw|I7ߙ6gNn)g7@M^-g8V#PG֌"݁f"dUZrB޿eŵRnd*=iax&)~C '_ +{fsM&>,t`uRj+JM柮enSާbMHfH.mɱXoW:3f[T1AYoQ:uZzgXMaUU@}FҶM-c:8/.1܁vΰ3_1 wCen@ۮ]{xNɸ@Z*ӱt6-q rH̱ T>r 3Fh7\$#q@CT_G^Db## + ~u.SNjEY>Rb?lƍ5 1Ԑ5 r hg,&HvPڃ,))?au)\jp4/\/u#Pt5X+^1LY?˭(2}~C6(lw|:&,0Z.c U٭36BQ+\IZ`Ab7<b,4{)g u^~J;aD[4K3Gea%&7)H ĔI\ O(cFWvk(%P{w'LfSɶSx#sT>9/}>t&Ppw0urթ(+:}4@Ƣ#!!!"ǕtS''cbGqr ޜ7" "'NHc$rNS 5 P:S$j˖UݔObq86Wu )Ӝ/c\>gRɱב#Cr" +Wl7Ju!h,5QĜ\qaDV( 4hL_iJiLG$HDEBhNUGӦp51($M*5xYYg.8C ![3cFBs nҸ ʵ9w'Ȱ<l3m=M1Y,4ݴ ltջTzWj*-ӖdmXf%3)+>!` o `3!`@W>=$yO^Zfmyzww=_ g2c?dnrz}Xb;$|؈a8Y#WCx̀g9v1KY!g:8z06A;xhYc<$b0$ 9؃XNzݵ{v2)+MϞZ2-p-\8tuI+WjTur 1{V }rI;w$I[9][Ny0KWVI@lvR Rt>a6RԶ{kVȿvxE ^goE6Y8~<<;{[+C7qM +r2o[NV6ϻZn!UDrsQC-N&tfc MWߖ~S@N2Tb^f댢 :@7(Ѩ}@5JNh3$_FN\()*wvd04.&H[J7W|$R-7RhZ= -2S$[q" ̀\ 3.wPގHZoz~W'Zpʛ$"c3(Mg࿗j1B{,z~~i>b5Xk=l⼻)I5O]{ ;x|7ɠi? 'S硤֣ctFbmX9w+uw|Ҵ:/Mi(PGp;iFu+VRu90\O^`YQU];8&,Lkb +K- 5v{83pRwBxo< +S΢՜hc=jD \SK$W>Mby"n|c/tx:g䓱LNj/|[>buF:9oHgT%nS[Mi6:0귵tRϺI^>0A?ŋ)%8y-y;hNp~J ԇH-O\eܕRhEDfP%0^mN{X #5R3bCSbkݜZh(e 묟 q N[I*R?tIM  T &!LԞ6|>o, +מA3#ѕAO^+9ȔB'湣[>;yI /<;Q!wZP*+X:;yڹ8@Ҷݲo]V.;QH + +RRPqǥX2''9IBCX Oi~fnnn@d7IC(Z;f +Xajᜃx@A-6<^Pټyuځt}7gHʆA hڛ2/r CMRԱ7ХRs>#ϪK-BKfc%6[wҺ"#*T@o3NFq9N\llA=nvZ+o4S^Qspiy5k>:xh%7R9xq_Mnh{l)5hpcA[g00zMf[|[0ڥ˲ƒ8J'՜h#']Ep!p҇0ITDI# +iJ+BpI[]3!S~`tu XG< +[ Oe#|c lhm]qJ_![DU1~Ԇ u'#e#fd|9rՆqD+gvi9Lh˧+'eZNhHҫetLX}eݩMkv' lw]?OVGe5o.w<7sDxFR$!3S22hD,)Y[U5Jc@p:u}vKuȵ}nD;?{}sxS"#`(K8ʱڀ0>ՑO'p4y$OD| +& +M!U~ذj-)EYQX4[tfUƨvg1'h'՜bvyH :4Q4 RFQ舒 +Te͞ҲFoSn1A*OLQeka]A,j]]% ++tS(7m-8tncӜ5J1 +-6aIsK-1 )QgPSRUD"9E;3V4sa~ac WD$.yuc[}&xvcVՒ"Fka]#Tz-(w7V[*hӲ24A) Hb_C+&DR4VUvU~(V7w(Ҭ/Ε-@mO+B;jnD wHi&jKiC?Uě' +wLL@鿛.p77)6c1,=h0dl"HU$hˤ wk"PZGY+Vc&6q6UFr¦8hX/ m*5@77 qjy?WR %:n&L@bɾne"Ā&X%#!"Yos4(%Y1C AԤT[KR겚v,0!Y'`Yk..nrʗH̨F :?V”&Sz>[IeX/0H@:H\`+Z]+ {;&$mfb7כȗf`f,b:\!S'K(__C5uPZz9vgA_j,zmܨ1nC &"|erqHme=TUʃҭpFS238pC@wD-M(l-aخKXYC<vG0%-\ƉH**\N0lBo|>W/X邍Q4w)1%3M^ V!^lGv~({9.`ysg\H$5ʘח'8~1VA?z6>}X1cPB'cϴtЃKHU4 ɰT~8GDuc'".i.? h"Ѐ|!r%"zmrHQ .yoî`"2l>SV7 Vxp9.8ep9ʁaЮp5 8p@x@h^gd_dhvrIbeC7z[킁 )G/\g -w\_ʸ-w%\{4 / Y!^B=җ<} +3&Y'f$P+qmtA(4r,-U @n472hki=q>Y}lMB~SYn 1ӝ-SA⸨rOs{ەkr M<E^M[ 3ic׋^s4>4 +ڍuwn)f |ۀ[ vs[E`\'K-yZ{uQwaZ8Gilרpslɟhst&R|`}}m}!] +)PhhX] z Oj vVfӖٱauM'uQaYB"ÇY䵈(JxPuYRknWo5|[V%Kj)I\:V}WsH~jI۩vO]ОSr'?:_RZ?VW{:i)#H7&$lKvL5M:Qh$wT +1ɢe-0QģE9CU(&cDE4SN]01&ס6_~"rQy"s|WUIJUp=yջZ/)s hqߍӀnJDB;<g*#T&OH2\ +l4@(}0dLB343~tHsi0)~d +oG7tPXhX~$9e$Y_QjV[ld2=i:rNX A5@a^YX-5BirV]ڢ\SбeNtnZr nb_p7SYc\FZ`X20!SWޜy-l,Rf.Y +X"֬YbĠ0k#6#+ݳu!&g1Ùus$%#$ĺdqw[ut_ n+t tq(euII``׷Nl +^.t\ ҃&7r'"Irm&ͱI#<ɠ=}5=,Y~*|}%ʭz񲌄 1\@.ccg4O M3%ˈeN`b [ڌfխz]4:f%˟B + tx31gg<ÞQ=U( +Q=0~ )̄<0uVzr ?EY+(.7*W bnR.b[ʷaS(Y'՞eYq`ԛu\.;3aJ$ +hDJ=T}/8/Wa:LPj(~μ87 +\Kd5Z6/]ͥ_q`\h2 tـtLj +v +HuT5{Wɍ*0ҋxf<V!ڛmQ. K%gU`]㑚U~^{Yނf50VN-{p 5, [8{ߔ8-K"~cEW FJfQ=g<=֪(3$+Fqҫegh'Լ؉v dHo$ *trx&[Ztԧo9vsH츽y "OO)uD?M3ۿ8=m$2Eh{:h)&ݸrl=r2)a=4!JRQNiDQiQ,V_&uivۭ)N| `JUWy6Ȟr4l^XMll齱W^.jnšܤ0xXߓv?Rx?hCoc=%ֿy6w)_ZoGs̗̻cKW`)e!}bE(q%}.瞗xb-gmgX)T1[`5S:>z|#e y)B)SbҪ)u5U+NR\bޭ)NuuД}q6"޴ק+^#fh" H}GsԇD_R?9<>ʹ +pMsuu3sQ6Om%Dިju~&' Sa$ ^.c0 P S䤈@tHm}ƗEbT#˲Nppyw˶vw[H+zk9/E2e?ҹlswZ)3d<9]hi9]+Hy+#I˻t*W8E&dOSǘ5Πl,eyiyoW`WnMXZ+o7\ PV.b nN{udl 6!:e'gʮ7xlJocҶFfJZH@e˧K%M\%eM|˧&͝J-}dTEQf;8eS2^9}nͱg>S_ei4N I~.,ZJ&F*g/M+m31e[k 57o59!#`m\j80̝&9K^IٽwY +ލ[cSQ_7~~|k7S4x F_ME\ߩ~8 r [nWop7(nЈ/VtrO6 +7d!C[x4:s1wy'p9U[GkFǜ4T>Nt|`OȂ6 +q)[sL|Hh{WQa&Xc-~2-o+fiR?F+{Α "orgh`>8)e5NAPJ ^%](S1/jKr`;?9ƇuA_jD|q0dbJ/9 @/R#/Jh,p('-F,"h8~3?K%V0XnLA(s<}AU0,sUӫ!BMZxx-6 +e=AʻiÂG.H|Q)21Q?>xjg>ƧFQ?irFcJcaC}M |:qe·y @.ߕ|>_g_ j|j|me@rDP9'$i7Zhe)c.uR412{W&{&nko\wjT7&(GّV U v :*}ݾ5,"GrX'oT^ܰ` nJwG7=..谞.3 :_PjX gr8C¬q\)g2Z-a͗N=8:h 'n8dֶR }@ѧaɮ!Iŋ)|,h dׯMצOǻ;lHu|u㼲e$H7  +ѡ5 ,jVJۅE.3_Uo 1e =\RBLRL΄RBi:aJOaJHAIqH# 0|]iRPEZqI $5)3y{0a!*l ]\2ʘHaI8HjLE#-ʽL#-DqI$D19K* qUzI)h"7&5/#40`VLy%<' I$Kq`9]&P#zDAkOC](O}tg͗a%8hw]%:Z%^_p/A턜lxwY|l=e'̟П=qџKl[?ꎨ= ϭ?{rNb}`?"}?f;ۃ@o}'{RXd(N9Oݤ }ϗAl`S O%PU~yc=sW3τNZ=c$/&ƹ{f1tExq 4>PSh5N2QLo+뫙1%գzPu)碿VG{b+mv䍾 M$  HGr[kHH̆ۀV)Jxi9}yx2,4MLQh + ņ $Mћh +68DP$7́Elx0HpUx҃FЦ)<"̢媔rQR=2Mzt¾U{+= + }E_?Rl<ؽh|Ѿ`kej0rO[>[Z90{ޭ$ZOZQ Y[hz[׷DM!iìУDjӬG}P]Ptn@Uj!(m sϪwPx$yN$w.%mFbzlBhr#iԃ|F$~4B`U<`Fԁț2#q?0%l HG6(HGԁ~E&f@NO6N`4VҠ1UZ5.8rfG ;>;] _ B:ÍvOr>}N`-Ʈ\*}w޾WΕ7ũȿ_>m(߭bJq[BnO u<E@le]=b"ކڿ awJ]wDc!-W~}ii ﮪs*iQ3>RQ(HlJ*7xM̬ZR)itT_MK__XOd(| --tɭtH7/-_^e0 jT$,}آwu׼+^nsg6I;_gFz2N^{9e_XJ[j!%M[/ItIy6$Hr\2ù87'hʹWGe&b]4#>do[bd7O}.Z XRi64Knp03],bb(jff$bjdclǮDPP1"P`a+k6EJ5YCq5">n({ӝ>[Vgmǻ{},Et*':T_' !1IZCt vf!4]0 }K++ķmt8g؄)j)l +qY_هO1r9Lʞ8~̓F{Z +vWy"5'ml!ף׶#rEH^ Vj/;MVS:Ht%t1'j!&thi*H"wutSlk/թ6i&MZ  "W颔 mTk%k2EBB'LE#TrǚEVC^la$~fH'-KV^iYz"JQJ&+Rɬ5=+.K5Ȋ#."~ 32Qdh6dm  yoAi)^?вѡwˁΆ `!'3k,H/ho,E3lY1z-z/Aa\at +ߏ3bUE}9.S0=لd}<Ƣ>m/PGƴxpѤV xu%XRY\b UUauP2nv'x`~D5p + 󳞜 +^8jo >ʡ4o:J w\m;!'J>"+= ģW_0ǵ%QFaZ,b}bgm{d0t+sX5Y +޽m{M_?jp\ _wC~kD~5[Q6?#-c/vЁԂvVp ]Wd? k[*N!eجy bg}Dd~ +#J3?XLYIL&ԏĊ?VYYïMyar4L!E( JR%BIEaJq)+/- YW%pz'3 ʣZgQ~}F.9nb֯gy$!U %TXx((6F#8.v^p&^a~'Zt$PuGUu鼂[I ,gvi(aSk:~NB 8TdR{IL(7YCk]Bn%ֻ,u$s@8!)Bxb-;o4A qE:2/NH~լ wazuz̆QR/p'V{5&lՕm]MuRuMnnl}`6zep V)QHཤ!nR>Xa .*'ZU@ܪ-=G= $lm{bu'\\o-agڅUkD]C1V4%=Ȇ36Ud]ynp 8,&Q5bfwA4#Lxev?Qъ0{807Y{~IR .iCHfCqTy$CCԝ9p,EROq0&PVw~ٝ6$X +3~R4R|btve`ǟ8_ Og#_-~%! 9/=6p֋D⫶xGɾrmu4{e^އw>Lqo/P?_֣\z,²?[{_Yu)u[ߣ6__7&߂7}:ZO8xo%.5xia~ + +iP-Pat\goA(L%X S&lَ'k#'lpH<ΐ/`\%(l0%]\GsXGuX*M5U#,{>J>CtFư?wU^wVgxuGcxVCq,Cr,Cs*B3i1n`lB[,a(3W+x3&,{rsg%wyB_Nr%]Fa%~MhbP+/nfLb[)'S|XY,d]yWLI.Tŵ""mlgy1$_?qWzV s$Z33%_e+;` nfZ5 J~B6$FEb"(.Zd'ޒqG?oE3L0 ׷2zFt1z'E37c~1-OMM֓a& ǗL1Ѩ_ X2t|L˾Mp٨6YZXR!%V{FJ-1(OvXHH,-ҘkPRi]Xr-UiH;ˆؗQMhʾ`+/MԾj BZ.B}F)н&*f|mqR U:TxTs,*U8,”Uz>ɄWFh*sɊ ͚rX3bPzUSH#dGSy*);Tҷ@#Aw传+'cg(NxIwn}9x$.R'(drY`B5 S#<#f6I",R;U=H5g5AÞ6O PRpavW'j g*[Msө\F^ +7(BzA('4<ܨ;RR7#{`g '1_{tmh]G1Q%ɔ^BDj@AS6)զ;r%Q +pճ# |z^=Pwu"2>d(6nGK>b?kvՏNJ{B Y¯ +R+*[`0n&mB9,z._t72[vFҐ6tQԆVRjHŮ٥Z,w a4Ɠ +:Ӹ͌`sjViɚy鉰tN2VCY`=.%Zhݾ]b/] @N>ֽU9McUm[},5- 5Ozx%"9vJLգFg>olZ +tEliKLأwU]qwB1H"bp,8Й$MLCz<.e&lny\_(SFm{*J\?3?xb+w,].-[nY,'ӟjšRre2$ ,Gl|~{VEp͆UqRqY^#:B?WrVd_85Wgt޽څ U(Ddrנ}cb%IH,b-(JHg m@JH>$M 0(ޅ $ﳟw{<)x/KwhW!Qޛ9ت2hCվ(Aֿ7{7{LWD_} pJ}Ke_KYXB__qŗ.ѿKclv} Ռ4fvӅ1t ̯ +?K«de<Ӄ/HQ6_8ɳ5VƓaTٟkEqʦ[18I׎xPr>QSX%+(kABs>]+XW0G#ѯoCY,"3HJ6}$ؔH +.MÆ!W {xñ KJ $tNl=b׃K#qbSqhX&9 \ſt8g̨Ff(2D`CpۖVH>nBj02Qŷ-5mlD(e8檺6;NGWg0 +S4x< VXAUqYf.UʼF=T)L杣"3F(+Be`|r ՜ʨ +5%݀J;A8\ +|R9u`$2hd8]9~C3VqnnC ˤHk3Ֆq6;%>g*AjFČZBqLc@[]Khj x*AԪ bp"&w3I#{ۨ%?Q [4yHReh@rYR5grPy#FiNg +"%z%m\"JKraL})M,hU_S5JHj 1k*ʸk14^ `:''zrݗZg8Keޑ\ZRQ^޵(h\a=侤ɧ!zW.9G\̇8hgV9Ύ9b悅hDžI.hRqtxѹGÇ kkېab :{Z7oe\CByk]5uWȑc@Q\])'|% IAc}` YLC%cs^' )aL1t:f<,t6+,22uV  +fV'0@ҝnUĤȠėDm +F`3ϷMĤ^wOA$z?7B( "tH,E ġޔޒq%QT|x,p +RC q5.lYYi[,ڊVڔܕӫ>`(Yk˫E5g!m+#Z;ÿV0Wl ;X t}(tҦt;F U=Doؔ);~̞Eޓ-0sF狞.}ѿސp\0K;MH>;Ԡ1ll0[R/msy/ ?ixe/wf=-W  #ٜ'u׍[NԢ;S@7z+m/.ȇkUD#rh B`7þEWk j_*#( PG!F)u%Ү[d3;lb̗ͧ g#Qwຩ6Aꌮ8.tթV Sd /qL٢?umWݦI|tS+}[ gKwΫ=i!LE8BztAJ뼷6`C15L s^"%!?O/)> |[/z#"kmA`?W80Qjd( /itXs.ɻ}U_n~Iy 4{SkG%'(Z9CD1@PŖTs֋Rp4( +Dizһd}_PW ;kQ=e5׿@DX)yS^@\@ym(To$/d;-܄ P^ߪb%# +߂7J{i/oiOon6Nc 8p\"c43;΋Ŭ@qi2?Ȼ ӝPu m}E?Rޭl{\K3E{?_ggV{SKn6 ]HtRݝ) 9߽ȧwuϳŚ5k#IxpA3+MB"xbjmOY4uBtݪVֳF!67F5Sm,ȆhAj +aјL +HUEDHs0$>?wD FgyT'ب՜zȘ\6w'o\Q+%7<ĻU~u(%BZ#D#u̸2hgP|Lb GYl-2n~gkKU -Q}ʱ Db=-E*4wLz:/xl>m7D27]&X?/|OC}q Ƃ:a貎Vk*q.FxG!1N,\є$ʺV!fnQi +0+0$n!ssXY ~AB:cgZNq@t$rdrF2pxlqxb,jNЀw~u ћ=pb3+ⓤ^W"` +`|rJ!ѱJ]w]5^6e%&֥]B`nzmYEyT<L7Ѕ;F(j!<(;'`<7Xk4U_[}]qd[=p_63~D|23ҋ_k3KdUKgl5k-kTɵ@Ls|w6ZPfi6OHڜS,J S/^BwhQ܄F2.D>y/B|9= +tth}ZjD[V=5@= P1=sY$GAF'`gjDSs`DxΎ nD%Qz#7 %o{7N<4p$Gw@9dz!U"(WPK]b_CrS}mV0Jo_G".m!ISqǒ: m*wtZmjYB2q$@ 0vÔ ? gByțyH<*[VRKۀ!=5omRki A_CcLl +>( T/2O =6W6<_9:iޭ@nuE/~@ +$ 5j((,ێTte:WKI +8'{zdC4* YY'32/f;Ϳuk6vCvcemYvynyNziIknH.OÅy4}⛯sy7 >KjS˄K;#!fy1};b?~[hEd|y[uS&5¤ +x;-ngH=IJykψ?)MY4x+·!B&_5뽁{ޜ {m~ڠ* UF{\ɹT8DL"9WT+D^>^_yjnuu[ [;¾fy*^\f d j[޹N@fȅTudpi$g8AZ:^"llGElgHF?a +ۙDs|Z~aYE,[ޘDVl;hQɍb&F+70WeG͹"hO6$Sq6O+Gi#H6&K-w[v O>n?Eu~V%*{)Bs9!h'ܱ +>ƻ |"w. }c݅?qp7ԩH(z +4SH_tK!iRݘxknAœ鉇ngOF9?GBTsf[Qz\2av~NZW(BT{@ny +xfV́+ wqUl="w*BLm!g y2bq\dO^TKY++* nGlVLa: +bcKcNJ^fDL19S ދr{6"v69〪]8/)e#"/cʜXC 1Cg}&X6$z8=JĎn ir ))5'àG%M!%=0RiXHU`HaoW(ً P+)UWt2ZkG>H|F,m@ +^QdX(]~V+SrD (% 4~a+HON +I>O'D"}iՅ򂔪83l}%Q0#TS_ 2Kd% JE%FFmFT'3oΉQ!d ňؤ lLV:keGG?2;TpN }sjdlA jB甉G0kz;7Y`!V9 znw 3 @.k^edڍ 1N Wds +Z+y+V3,ne BB(TNGj^օSu@S4$2]vM+ ++ z2W]k L%%l`/H92W9,|lM* &|*aTN}MM~jxkijiU62-5n4lE* ̈:mgs R$J#1 +0\ DN.UMOkn:X[7Ҿ&?'|ͱꂫvc^>:dV?u?8p{p%9wL +zmX=TaPh71l\ktRU 0na5&!^'!$Nӈ7D +^mO0_G +uQf‚h5|zglඤd΁k3|L0#("?ӷ$>;Aiн6s L^AzP魆ոvͲIrm[pi rXBǁE:R +X|g(>AnfԓE$!L-tk>Y<,ڳƥBUjoKmGj{:C@Q[ؑgW++QHxax k#r=R1!Ta8 m< + +^0 ۸@q%ڿ*%oqyAt*0&AD`isQPal'+/2X瑾H5RhB?k^ kjkgvsq>/,濾v +mȷq`){).u%SVWI˴|rB~M{y ?nyPBWq7%K9T4$_:'m}Q +V eTO|@5[E<>4+Iulq8X]^.db}*EKQh#MH:AU5l!NU:Q^ nu4fr\w.t`QH\N-s}-yAz h H wK Oo̟"羇rױa+IZD?xgQ5PVđs} Jpxhԙͮ@D}Z1 V1 6^]?_Z6Sdz.Tf\K˭?C78-[ +Q8˷dLokKiL $+]ޠuj +(R\x^ojTn*|5KN.Q;76: +"){Tgk-qb*X}l*l񊹀 Xj%)cQk8Q(Ѩ? A)gaĤ^vXaQNMVl,{K'B5iۿ-vy= +@@ A@X$6hʒ2g$vwp00XG@}&8T%g9g"a,x{U|Yc+4j1PƶTS<`Ö֗)6')꽆HR]T&V"s'+SSL܋vB̴Ϸ^4n4/:ӎU4k `[4Vw8 />w/RD +/x}%ts7USE#k*+ +a5+7%91sEZ oVݸ]JLM-nDm8%1Z[ Dq63EEaXt`HFS, +)li%6H=>{WdH7*Wi|a7u^?od.O= /z2DұD("Jp#GPX1+9or`T}ש! Zb]!uNc*b l1htrΨ{]֩e}rN]ۛXA:g˺%o7N_ΰڲ`dPiltMӃdh򕪇g\4JkhYr(n3tCDǖHu]vBp"xY\z&Sz_)s 63Eq#Tx#Tl[t9[= ;#ZkTdDagsĵyݺ)l[4m3ޑV%ȴ_C5ArN`_C66@/ DU J8x/ocxݶfz+ .׫R9*!z8{xc_֤<_*}\u{pG2[e,.KdƧ/Z雷uIؐۏ`8BԐ%POb/ !U̡iyW &ܥ.S73jJ)JiܕyO抣]V|eRt;W.6< + x4uFФ抪͹R5Lg`uŝEٸj4*RZHL42N7ߕX듡/kaW`|=v'n:: +WlT3K3))l\]HmCZSK9#=fPjB@'d+!s$>tM(5LRgQQ~Lct69l^U!.XT$BirEC-Yj^5Ey(_'j[fHs)@w K0}qJ:0M qUuNз+P# FlF?@c +V:Ǚ`%*ˠg~c2RQP3u֑2% h>Z\ˊTvQO"t*쾼EnZCL^› ZڬeN=:O`T[ +WM ^Bbof On~ֺ +́åFi}10qUfj{?ܗFk%;;ی!WoCt_ =Lj䛲rqL(II9sU=X]h\cb*w%|pX -MדoPAYa^GLq"J}]n? E^Vw|LjSE8VX2iju>MCD±*nS=*>q(%]5+(bu[DŽ߻`9BiؤG{E֠"砙pOJzASU8Nwr*jŰ`ta|aWFYõrTZ]6/y5y3Nu ilЗ粢~A.~^mxï M ƟnRk MAxsɗ;6joptڛY?G#Y43WR-YY ^@K̮NW/Dá][0mYg(;j&a7L}.a8ZGa;Oi?LsmO^}'=CO_P:;:$Ǩp'GW>OEZz~'̆bK[+@CuklItu_xo>(>{4ޠ +oB刄E*#co(ŗVܱwXZv>V]g]miTUZ;4j#g )wrh+͉"Ǵzqz©9g]23v6 +!KKuN "".'$!Z_P갼bd!L^fK t Ƕ"!j5>o0 +BY%QqY6c?:*INr\E`sЅẅ́!xL [- ^E]Q%D^mإOyRH\enmIK|TMK =IMu%>Ps6}uDC눔 R骱gױeu>/[?~=͵3:χ{{zy ؈[(;c8\tS|Zk֡(i$$x&l1)E2'׺JD73KzoN +QgR.`u(KeZWS K4|jD%Iq5W{s[P7 K^׺D˪E~ \usU3T]Nu45"[*?O/ZKWTjkK9L8ht_D=c>)Z;g,bK-Uq6 FmD(DI h$g2bы vx :tn.wHU+ak`Ljh%$40Yݢ}K%/fQt)3RU)gkj~g!*'wS zº6XzzI;%Qo2݄S_oԫ-Ol|c\DCUGzցq Jz `~z1̯Aڄ4),Nsdͭui*SZ)ko[Vo1Z\]fI9\C*ZK7IɏVDY,7vyDs-&˒>W`b#0̇qe|Jė{8Ps=l5H[ZL _MɩHMc_ZH^1 :+ɅW9cfڈDŐPENPX"6ĚEi>YjmKosK1puWc®R.Y5u!g^WhpOi +q3ToS\kLΩB u߅-r +5H&HVmmz]+V H&JBdZ4*&)utш4yĭUc^8Ɏ7Duә}ʼ0&, + ae3zK7W#\qڧcev#7GtSgv],v*s$\<ۇ5yr3wVJ5"Cy=g]e_vq~j94USưwU`lC4`6⌉nj.bSs_x'Y( ٰp ݿ19?^#C:''e;x'U.f L=$b&"g&E:qOT8t0򴥫TbbqV=ND/^_YdN`h L?*!_%} Ɉ_>yp6;Zh öeW8k5daZ|Pnс[@К +=@@g iLҠcN7_s╮R$MOmQX0/PO)Lؖht + + .U]pf)7 B +vr(Dt&7.(P5S[06I! 6ȠDU "V`gVUVx`E7R_v&fj sKƞDRԑAeE1dpdϧC4^t_!8K~d#դB))BVg @f˙B Ky_ho7NE8Æ[,>:ʳ" w$Vv׼a + +˒ +TS#)\Ka:4@U`{>ѽvF` BM*Q.3Vn]Hi*u>@| ou,Sq|N3Ch┠^^P uȨ츚Q٨0WyϘ-">uu%U!*^1X`'b@@+,W4l W\']{H+^J U|&W.ۣ+C{գ+uOZQ~z Ј+Lig)C9qcvo`S$(za˿bW,47BYx&*]hc*w#l~HjhZVP#54@cvw4Qǽ(!uԠSRܰUHio,ϔWa3U5Hx*F8rG9;.NQq80"Pv;4~(/ ZA N{V?q_eD"alG F%Ʒ* wUJ-+.6OY2Ȯ#vH0I!V4CQ'.ZbZ3l58)ܢ|sMrtCB>k6˱}|9W= uۚ"5%M9MSA?k=#P4ص`I[x +,sy W8JƎŅC6s _\jq{M>}k[!ȤN,c\z; ZO׎eSMä$5Vp,@ٜ<8S͜BE+H)KMuaőn,r^NڹQ1Eɳ. &h_l?.))F$)O2׉Ͷ}%I{نZCA_eZwf=*^'Fg]Ƽ |%v֩\+f1Ǫo >r h\0:E@/oߪ`/B_ZQycOA0]'Į;DUU-mnli~J4z@>Ss]hJ¹ .f|ĖD WL,ms3 }5`z5I%L+Ң\Bj|Em`/z=~%t1uEYo6ZIf*#O =jX8 Z>~S)XƗ|r{O'΄,8JOb[N%" =8ⱅ Sn'Nn94WgKƱlWv:#Pfy)8k;U/GsA9hrM\2i +v?]t #|NynQGcc;f߂㎯;nםĻm ѽ)<D|W Yb?f>Z8cABFKVZUO@@@4ƿ1>Bzh|(#ds+c!}C3?1>҈SY$"Q:ϋ0/0PdJIst ?TZLc?7! 3xkr3h[ yP`Pg#6\-ϴ@W?}hs:q%~Ulc7G;t]@>yI?bn@C<ϸ?_6~]ګ>5[R^D;D +!:qo= ퟄ:h5GL!2ZFh-.)#k-RԽHy,`}_~-"/{gݓ4d G5L~{}|pkyw+( 9;H)C{)dsaQ`(ݮLMG/;o??Gz= aԃzd|@W266qѷUjaI6D|?9999>V#@dݳ{cEu~mAb$`H,Ⓡ85R> YJMemxX@R-,!*tkN^ 2AAu!x#^mf~8}!?\8Z}G["͏@[8)['^@Y|N~-`dnej p0yH&~G?'!?~N͍) !`GY5#z{hՔmV%E-0]UAvO/70؏7?b~sυ['}=[_CsI~aE~GG8r|?rpHkiv"x!E#!i2OȄ}V~4s|_~ =!9Jh4&x8YT^!4NoGG؇fg =}lPy0`a*!xȥ-ب)x#=tW?%tGӇ0ʏͿ} ,pD}s9poc غb\=;=pLX?q?!~MwyaiDxHLP(c hKE\|!5(bxg->XoZ'ƤZ; Ra{+k+"'X:( D:2_{"ˁՀag~ $Z`C.e?{=B70rs^*z[k_[eϸ*ŧ։Rx??Zו߶-eZi +;#Fosz{FQ}A&M'EogG3@0+I+4V4q)IؘZ+ 0D 2GG s,hY𣃀 Q=-tzCz'!rnyXj[XO.!_:&k>-|iMGxؿ~IgBqPCQ?Bç#^"#?{j?lߒ?`%[(sH#0?aJ^ +`LBtPK+5;ejre/lib/ext/mlibwrapper_jai.jarUT EEUx +\-i۶m۶m۶5m۶m۶}=뜍saOIzے7R@n1X?2"4t?W"?lm,# +!*L+#WHJŒ !Mh&ő(udw-Zm{;Q> ?QdI'^H!Esε< D;\Fv $$0I?#jSW;g mC7hEzYXPv5I>/ zM)6S+ aK^nk9/p\&Ò{SWLw((-ր,A( GsrE9ƓVHK?X!䇜H45klmCJi[/.<Cyi[</_IHIr9RIJd3A^:hDgACd^kz񪠇R i1 wr. FOscLၖ,qm +9%+73;Ge7UK2TdH.g;a 9xZL$7W{OcϸA!ЋdZK]Pq6|ruV7}-%Z8tNeڣ }`{^w"PC('2(vzgV(F^F;nBTg逽CuGYP'saK~HR l,X,ffj96;y- :u|j1b>LR|oXձ0T?ՄC.|Z Z|gP(Ŕ5y&T@ⶸ7_Ԃ*ߡR|<)6ێ+iT8yՑn +E@>Lq;؏I򵐡 gh +Tj<[ c|'muG/." IOtD!ȯO,Vd3^+WCAAG9(L]9z=qFgB_+2ZQ^ \a6 Iɗa8|.~.B7dD +CpՌŠHfbPCn1Tx;e+ ~Hkroe/6VtUړtk9Na㯨nWuËYCӼWlK85OGnf>z.L>nfP0@;@@XX[8ֈ{v WPM Bv-^׫a GӿV@P#@yeuwPUv& ãL3fGvD bw}_GkWX̝7VGujopmR=#?dm~$\ӝ#=d;&&}3|B]d˰}n끖/;,m_w0YY=-7o8[^#@1hވw_8Woa4ϱW6ʲnT`'J_!dTŠHB:?~vKn@Zd}$/-DfT)N< _;eH_U~ =}24]ę}BPݛaweT,V6^QE|M %F00&tpu<]jr* 9|)1R4;>. +sNf=3d6eFP4P/WLʴ`vØz/M<컧+.PiPj^!v/̲t5Mbp|iu&uEͿ}[SpŧLrt}{ɈBN4Bf$r\@X| e _M3-4*gߥb i M(߬g%?/uIZY)M!nz+MF]z"kJkj )l9`C"SZ+xUEH$UdR f0> 3ɢ"Q^3vs%{~>$l^k3%4DK 0AjV1h3 PG +U %ٴ]|8\<8ϙϝTƫwǻSMLA 6^uⱀٱ +P,rQ/z!`+w?SI~&N~/a +R(i:>1_"? bpqM!ij#Dh-RKCAPBwdR~c=M63xt;}##\Zk31sC$ (6^4tuVɾMB1}!G2ЈmR[[Hd>NYVXf5t\T zE`nƻ@jE#z^~MWH%N.  60PC3 !ߥ$(y]3My6Z:xR>ϤSaFb'[';_!ju잏E8Ȫ{؆'  |V6Gn0Uk*v2L rE3Bl!LҧE)z7A6hcD)C(Q +MzJ"-by͵6#xj~udw6gIĴhZ$tvD> ;58֗3QAM U,'T'CKt~Jb+zha!F +57tcot]WW02Vԓ,#Ph)P!|(3lJX*y1:-`tڙҼN?Hk}%Hi.EKuED6AV*0,UmczCn,J =kE.ޡ= {b[|.0і). +}A,Nk{s,GG5kcѶ`TE{54u{G(] +]ۨk(-_^2axA4=۵8W=7W>G P͋G2p*`f +. +^G̿ȸ΍ b&gMXjĘԹp'uԀZBۃ/܇- *hPC̔ZVFШsGtx};DI + Vi6 \;wԍǜs\a3F +_>(F'Gl#䒬aj78*g4N8ߞ𹐋EfSK?ٿlZ]k!AB;d=&[l/ B1{!A։6EMFͧl‰+.3Ⱥ۽͕ۑ]Ѱwro6l0e yХCttzPR0 Pùj!|K1:QBs:J܈yvg<$P$wh]hpT#%.Ebд6֑< ;k.h{2 'v;=|fH +D|;B3B#V%Ul[G%#{eX4x$ bh-ͩA/y8,\2 +*Žb ڰ=qzf +dҔ:.3!n_YjR@4Ń Nخ f4-yks֏ YZOz7F&MxG:0+B)gl^u?ե Bj;<'SAmH+4[ӝi ֑$!+uVsZ3.*\ bP-M2[E_&[Y{.ݺ3U\ڻ2df2D[Oط,(9Ų:̿)8^apZ놣Iyk."P@0B1?{=. &rԇ4cvyl!&>:rNrͲJoX12dG-<,z<LKSieHjtk­\)5T%+Ii=K_= PHg]3siE1 )r73FN0[+&nH-_s +O1PsB1za0,4L*^j:ed=!/d"o`)/5ݻ$O]ԛh7adjJQb}>ZBz!9V/W1ⲓs2,Df;&.Nfx#fb.m`;^W_nu[hmU!4RF{]8T ;+w]qXv$ӎ3ZyH9+ k%96FKYq/'͢GL'_JlFWy[Ie tܲ +Rqejn12dJ=O-!}k- +[.JS|c\kD1\-Yzܧ& an;Jkbɨ:Iw%c6(*NM;޴.ft?241 +lƒzys)~cG=rj}} +-I$_ҫjV?zQªZylpfN4BcN(/|#K|4](]@-EM1˚|l/Z.dv!m7})ڪg:+T:ۋw.\VqN;*A )>vv7'G7Xh-bo!PkCI޿,&%T% zY򟢻: M?Mn9D*͊A{6Us}uW̧<5M:HP}Ek(wM X9-rShK|_L[9xZ]bϧь;R$a*k'Jt:|<G\Av#o.Puhc%Ԕj\‚<[E~$@1wbzV8n֍XfyN)eД0R6:MNZTTY/. cy65>^cm': 6[DlIY_?W\rRf;akĺJ-8xsڂz4Ywtiy5>_#OV +5ݫz:1_MãJaZDuVl%^lւZqzCr.?x>9:³Ģ24/_~ê(QoNo07M a:8HAqmKD:oqfoA6 +Ɖ,'3js]Q RppS性=نHpf/0BЏ +Δ$`/P(sh;N&<9G8(&C&;9_ >k\d(W3|4pƹ־hh77I`=7~57ʶUo+=7~d}]'}===h?/?7Vp^7~>/QP;3o;=9]7YwY]'}O >C_߼9<䏿sOfȟ<NpPwt|oixA_Vq?{dwI~topwqѹޒO#MsL(_Y{ o"t[_& ?)\>*zAL@=o40_q "wz 2w p|_pQagxPzw| >gdwJ#L~o_wjwVoIK .VQn (pa45r4/&/&aĥĘI[;fL>Yӝ#=TH8vLndQ㜕q[N=-0L`=ڌ;-&k~-e~+TΙl>Wr'=؋7+R/mw}o Lǫ-,I3IGWtr)>=a㜻9VxJ1_Hqo%Jڹ3?oJJЭЄD1QӂQlu9nljќ= $c0P~E"sF) ŷ46q8tb\N{$ܠnP#nu7;G`Pvn&{zć;vUTU<>_E}ש.شb'uGnq u&i ᰋƺd>Te$Zy3L50h+z3?#`%рSHI7lglJwSm ;[ ApXf\{#upY$ezFI)#@rḻgz_2IBvNN#Kyl3g4ID+"~G5xtlmNug_-lh({`>%z>o5}NP30_8˦(Ia-(\7Ot2c*ި~&($!<ȓa3Jz f@ۅ\jAr<,>sY;5ˤS!ֶ#!a c5=zc +&,e9hT]2Bdv{,ॷZ9dӚI%)2TpUM217Er۳Ǩ*ojNaF{'YIT3rLPsqK1;d)';_5==GiI).T^2uو}}ooT_Z:I ?9 }&!dőe6ᒓL֝޾5m4"q]vGHgFV*йL+%$1׼9 OD}Uԫ)Wlqr7pr&4`cv8g͉&g~QigC}Ho=* +y{ȱ3g+ejbgFu|v'o:ƌ[>^,7igso7w k*U/RiufJ `$B Z5mQ*$Uyr$JO-y T|N\2A .n 9IoTwE?`t}$=oh:Izt#nz??\ +, +)"_q0 "&`e |`%Iϓxrܞ +Og,>{eӪmUߏg&&p)Vm7f?(!-70Zr5zD v 8:9e=q[ enCSUrY 6ZqԂó(Gp+X K~]$b'isڃX56 +9ZsۉH}BM)*=ȇt)xYۈ0uz]C=#wt8X9#gtѡQzV_h6]uGr큡LJމvmD *eg=?i +/'y#GNuGΝ@BϟNC9%?`@;˛ޓC=6xL%őmƃ30/;9LBV1_] B0t%Ctv]ͰUle7(.C`1y'gYMeAx. 夒>h%?B!BUJ]թ˄9rJe*իe{VyFCE& ѻbxE{EENf$,k+#jgR%eWUjoWR$gZ\]_pܗ_5%6W8p޲F Is޳Nv2 +P +cCO<{V~Nr{*9;Zؚ9;ٛ8:[8/Ym;}Ržl. i{@f}L{ !?ߒuje^ ޞu3>Esryl!LwY؜ +*N3+{W {]  qA6>HFW)WYOzRAK!RUHlj,1&b/XyLB&a gu'Hԋ BS`\!8{^>zZU3:K ~2)8\^hB`hhuN8ex~H>Wg!_Vӻ")izk0j,rPvxT;ۡDo]!yl`ӄ'<#'ctމ;p΃5-*qђIFGSa/\GoF/fC\iuÀʳIS[-cԯݎV/O6hv%^7^'_Ls;̿Wf_c/#.Z)w*h6n!ɐ[d%HH΅EԁG-^}] dfY~NE eA2#)z &HBZ,\:E08b WZ֜f/E Kj>jDB/;WFhb?Xz|l-_'ܐ  K Tk+-]5FV19nDy#pMֻ*_UA_.l.؁w.%=*˺>Sk3JE;z6zKTܿs.kWj)-/h@lI݀'X]^BV`Ey)rI1p T- rrE`Y}& @AWnd*=tjS$S:yvPǜP]tq)4b:1yQi8cgf\';,qymdv#jҠthq4tگT}TarhӓuzIc{~c$i],Hl%iab%ivhd-t2x%uHor^ͺvEAڨ-\Կ& +W# ؤZ! j&qI=[eG RQQ",P Vbke5ZO6X :r<4^K:cL1ȯ1V47v./C[W(#RVd"NgN %o4lMTUTJ?+L6\th"g1u=nx2^Z&|+8Ջ{Vg0/!/3 a lPsI9$&I|q/zȣT8*&gQ[C1xK1诪[t/@RFpEOCKx(:8]hWdCB9FZNU[mkP-+*O2+64<;4.\04׻He\KKPb!j m) \ffGOL!1\Ln&NHtuxlKwI?N˜--~}6[3TS $_YQIWb:5Pa2D6 xW6fO k s t#KRUƎ0IA`XoDI2ҬLQ[h㼤rΐYJBZ`pM`~z<tΪ~8}|O@z&fvPu-@%m3D3'B&qm +_ɲ0JwEsDn\]G<] +YZz{@gb!r!ҤL=vRG>,5u€"P64$zZ:zzjlL#%k":(R- +m\u(9O3G 0K|4[LXPLIbUL0@<&Os5(̗_G b[/dѡq9uP8Sh=w=OI^hg04E5"daqm1UF 9tiC7k#[)dӹxyH*4K/ 62Misd샡unL#|p?pZ)`\gS3T'JyYYdCr%GuKnITҦJ>>y- C&2UU]F*B4..ۈ "cF|uh >AXA 4.M#T>ص 1zwdQ#r!<1F$>4z-nrATKCFk!hJ+b!]B3U{TϡeVlK,'FOXoYؒMp(&K +t4Txf> +>aAi>ڗW:޾v7/sFqބyyRX0+~|pU?l ]TIocoYrĠ߻)8MK&)·L}E\Hzw_W XnZ۴۬Ym{ uX iEG݇MywCw3 ܤ)$u3e˔_ m/eͣpxG&ʓp ILHiTi.S/n>Chk&Lq+J:S,+SWx:č#^Cv ?,OlϭhqN.:'ǭ|Hx ox)6q8hL2qsnNF}ܙԄ j +MDgs Ĝ!oJHJ\0lKT,Kx5싥j0قgpQœLVo[;RiYŹ ֵ!>w% +)>7LJqfקt ѰKM.};7rL[J1#dxޘCyo4`,6} J)ê5Uc4FC#c6ժmqژo9K]Shti%.(o‖#Uu'HcϪBUmwt3I] XWbbl٫EXaf#̙M|7{1 +?2EbgGG;9Y+}~U"]ڷ9 ]%1$Eμr@k qߊ>Xu v +<͂߼+wEjuvaךT36,pD6lkrwu_H1y㿽 X܌ ˘dA6nPR1'S(qEb{Wt$8][Stq[ plJ°#Y`_Aq l羾uaE(}ȓK;kn<|\M&F&UsDY^q\gRq;}}} [f2x>û(i J]:w-"^q)펻/;ɝķ9h(a pآH 0T K{rN-Vd"S6,j,e "ת=~'Lk +_7m6{Jn._q.B+H65ꕜ'NkXA2z.=6w(];m-9Xf--~xWM;dA4 9 9\#$UUD&Ð0b&rZI۰-$2}="Urڂ=evʎrO0b1vr[ Edubu#Dz_v" Y\g}mΐ@;O+~Xy4C;,W mK*F?ܯk.K !$-QnzmS[zt `Bqp;#&T2zU +YV_anbi +6* "o0@t~,-Muo%QU d +:լc)^Blkt4h01 P0nPpt"P;hJRn K7"FpL>EHlRRS#ǂʔN phT&mq)_z,mB$ %|{qW-2^g+8g&a=.7]&5Q4S[=dݘc)g8exqRn-i ?u4¥ιbj70!z-5e!gVב >: +gXב r<[5e(il(ϢT~\vQ>)g8 +jEgZq`\/<6Z̽*ʼb!z]X[n6~/ tYapVz*嘆ʺC[|#ف꜏[F;;pvd2smx{/??-ߋe~x[q?e-b +K~|#d )tELbWFۿ ~.E^Ci-\'"sCX?7cziQIid ]Q$knŸƻ] +u +\ a7/7~|.s0YsMbKi\O^%x.Y $jKtg|%: ;iUoEW'/xE6UB=>tC|ںlB㨗 \jWyթ@k-~@-5|Pŵ.9h@J=ñ(] v]\jPF^h~Ģ"-}ԣ⋖E@?)Y<-Ow^8ʼnjP8X]\X?r=/n5KS8 | ,S 4Eefc߂M i6Ůw)Yel^܇YMv@[viv/Aք]\|2x'6L.ִﮆEhm =+LvmK#4SNh1L ĺWH< YD}'Sr1QUPMlA+ؖyܵj|Vd"ٵ&~g$j%t}ƶ}R#Ly`|& /Kt~g^2=`nJjd_J`j^\67!_ ަ^ٷIb;_.^9b b쮪g^rDٻ +EصACiaRrg19oS^jAɠ۩+=gmM'G.U2yedbg::r5z6R(׶r ^4.9?>z<3_S-fdش9>hm3m\^̒Tdxͫh% }e}EF11l%+% HsS4.Hb7OWsVB[bc1|t/t^[rQݱK޳6RvWiQ6bfW$O"Gmqr.72Y6S&f.}vWS\wʻ%jCAjPH%24K(g]4mA+Zf ܑ\I J|.<^0nDTLAKnēv .:n1ɾ}iG=ӾznbfǕc~ϫ7ܒiBz\HsHKuC{e⸩%E=#ʃu݉z݉{)*]%+\øyjt߻0BxҰPZ87,D8PԇvA^n3/7kG-rdNvO` !@|xD:#"9JI|-\I""ŗ)jWm;62O/7MSgmm3`=՘"-[qqٴeڝ@rr+7M+G|k~\G+nTXk4?7au!a"]o8سZuo3Q(E})ݾ̷ n?w~oTkp^U/Ъf Uo.Ԁ p2&-pZ%mܰ,Hj@IX"Cv0 Q҆ji҂P1L +G 0R1m#[SCF `pF +1Wl'y +h1،^!) +!0v[E].Q'h~ۉi,aRQ'U&.""'536`g *vg鐔k+kHv`o+ +/ \Ţ!~,#skyC%~*X>)GMqEїmR);FNQs``S3 ):0k6BgU2jDNs^䵃e<4"ܦ˰ТhB;Wz^U8˪=휿eѶqdu@G}3a<4j 6ZYd!ƪt~PDػwizPnPAXf%AxB΢N Ԡb$.1gsq֍8qb ʘʄdQ7jnW6.o@ڱ&x܍Q{ouP{ݎx OK=kk(&{S;[rlcMJBLt>3o+}GA#NԛkdWT ӅgE90<* 0/ 0bQs 2`Tx>@1,qr7/,NoŢD1zMl+5 +KP +C`B\69hYtڡ_ YޥOWn +5|Q[m`]kX'].Z1}M%3ո`reYTk4 LVȰվ⮬n-HŦ6>BeeVe(3heT yd!GzVO0a-Uڌ& /,XDL 8"A +.Lf &D:a6PAĬEK1pe [`O&4_Kt|G~ڿ\U^RKqp7f  NPiI/>d,l}FJYz|ؘ5p8ӫj$o81vAi"x~;UE>2oNY&\$ J Td쐞jN1 rn2FS_bZa1CQAFmɪK7: vؠx띃22X+aj{_YMfYezsZU>ځFV)\\wfff0!jX\:Q1q`Z=t0q/8L,DxGB6v"y Ӓ^!ŶCvy浬5KKwE +ub=mʁgF/']ی]]&Ǧy|SułֳUV̿͵VuZs{<(,+ K5-lx֍qR+Yp$6J=IUIP :3 )NY RQJD]:цֶ׀_:=V.QRrM4RWӻ : +8בjjРEQ5.\\JorNq[;6= 0xt.d. +/.\\&YVե)j;.0܅ f|-i2㝷}ٷ%Y![ sY1LJJk/Ї0O3o`DmRF348k~џ?9m$NغWiVH(U]R (c 8@9 k]V4&$ d6;fr3FJ xsa63OBOBdnj uLB1W^3nGѠ)7W,ww;$Fd5T.{iJ槝Xt˯MNB Db6c"&~zā\VµUBd1R84faEt +~##tJ%Ix #F% %I g] #Bq , +Dd3𑚬 I$k$׋xsƃGɦrdEC7,3uJn푅`;$"]E{hKPF1SS#: N J2! B@rPURۃ@8@ȝ=E@ ~E}UCa_nLWE('jn0#ڷ&͢ nL7g߄( WMQfqG-m|;-T!%n&A"vnF^xD7isxy0A%*)šE@&rW)v#+SȿXh פ%D%-8+g&')L$N/ +QQ ~UeHmHtTN}d&^ QY faQGWq&>] l&xw/ +{yT)$V $T@*^*<Ϗ7QB]Z EڋYXDS^k*:{x-ר^s-bh$$*/;BP7=4>}/ նo' ;4:sZW68BSg1k 6nl^ )4~08, [eB 4.~c>㣣$xA ςկSo>Xt *; ҅Ud4 L1ҚO> &fmz2m!]{AZ(hWa )U߫WMKM%nJ׵ӥ)q>s: +auBR OVFT=l>G_B_- b_†D{Dq}vYM6]d6tHtHY^еcb8}%pp(lDM ̡,5V((O椗<UJ fq*Dhm +8RX,z@N; 3X&}e%AO"\1`Xe>v'+L)T"sx# azMl]f}ڊsh=RS$X&q?F~]gn8K讃Vh{4taBtB6՝fg(ˋiЛi=pVdgm!%]\O]]僒 (h1{w)"x3(Tdyʇkr_X+љ<DP | +~G6!ClFZjV~hW +E񦝗ɖi4q@Z1(7z +z2[āzp2"1 ,ڜy.͏06~|&f犡f5;`;LW#۞Hw +{Ngv38LAv0c6n+,9tz~cƈ_j4mwEj6:Z$S(t|/t<B«(*HF+NyRT;ZU/fAB`_GSC,çY:+.<8|hmς5nG+,#L4[Ν3r{@u>ڟֹ8`]m/k=5(P> +^$-tVzRּxT﫮Ul*X=5W>< +uX'y "\(ȷ'\?]3'# xY ӗ: IPnA؅ ^wEYV/#i{]RpF Lr`Gcd[@6gxc)T^bR +Մ." +n1X $RC#$ Sķ -!2 $W@G&`'Kjf= PHEZѐ[>^YC[![^P{bɅz $`2^ "Q!G\Q!|$H T +_ ]*'5 +@"Aj1< }Psl\# u T]iAMjH|A˂J&@nI]r2"!Rṣf%k"XOﲣX'TEbۊ#U7ƫC鶉j/+mw-Fpc>;R297?}P +xx~4D=~Tu:{yPuX j뀅ykf<%t!p0\寰M2q +( +@Vltb$aj"Y[GC{H}: +feUl53Hf>̓LX'e gPـ4W_a:1>Fe4'd44d[ҚiȿK*1t.={ +m{hnB6m\噰!8;B,Q#ö!1Cfpf Q+v[|Z;پ^? fG0JCf# E:Vؼ@QISP5ǯ^p!?* "f7%Iė!g*Z*ؖZ8G,I'0 ̑t4g/DK}\\!ν!>?,畋<瓀F\̕KW\HcLnT)I"fWIŘʨ㍃6CKHd{V#:rUwMK!LZ26Msv;ɑፙ>=KE8JGN+({9ngq OI}g|D]OFX8&y.XL.Aծ_욨tdyATȰJuS+ҲW 7-FrI56(! zxvீ}P +\>KBx8Pp@c['v:GSA8|A2l^bF$`9I)|&E9dtj&Ff`$WqkOE{\YaV{OŸvj5]mٙ WTXJԙh_n`A-(qy>EG, W!&hZ}PC{w0nќ q;LDyA2 1&n6KFkm#JvY"zjv1=3MmRpxI4U-$$3Hzpy3u1!N#JP.P:ei8Pz ++,nnj6JvzlE#}]諳5%tH6Zfhu44EnWf} :rBѕ!fx?ՀDZ + ʣ8J.Fh(lV(Z"%bXuMu&)a,]'G' {C! x?`< {|s&rū+E;N3^uYogId@."#%| ~%J&ɐ0K.@3&*Ig&A5D$]hHAj +j +ޔlau)5yI1}e$YMXeHpfy3nĽLĕDȐ C:̌Nk/z@?B]eWr/v LL7dB^xxJǔh#, AzmnBEe:J 'BOOV" ++Nр;Uo@020dEg _y&hKS'hX3eCp>^@pKli%(:}Q$9w(0d?@m?3ɓ'tPP h`cOz>ޟ۵y:G2sGzO'a܊p/N ",3x"xmSU 3|aii XchiְhHDюHp 89YIͬ~ZTn-Mn%;Q:b s'5o$9 :FYFo> A0eȡLg=6ds6<5i X6kV!M?t'1"|^#^ WUcC^rߝ.tN]R[ɜgi=߱)6D*߬_ԓuKz6ڙ#7 C.0j“K.,[V-AW_W~fW޴N7Tk =.Ƙ#aGuA-Iu=`uSgK̷H.wt '[\8Pm''I9G"Zvp>V؝;+7/,)Wm;4G/t>)Gw k`+^Ѝ^ҍA8'[O9t,CROדj^=w :wH1F8~OKGqCOVg~WѢkJ@*Jf JpI&֘Z5pg\ 0dki\ª5gQrX +w u&^3dXc7՞ PZ7W@z7W>׺cOZ$)PU:4퀒3cӫn57@9.KɈb%߰˟z]ξ&0q2d W:pl b- Ôp=a}&pLL %TVKtīdc|k)|m)|)ySrd5 cuJB _ҭg؅ +l)>fPþ/Ԇi)QujBur0W։2 V,icN,ER L[ڕ*)c[t Ljfä8&8&92_**͎LԐNd=d6"Y$ra%wlnR %mzŷ' Ij)^Uܖn1 +Qٚ0Lg2#~ްy 4m\ۘp6dEz3nI)p/U}l/u3gnBo}A`+"p;OL]>+P58a00< $1_u~ؤC~,SDqH*c1Κ$a|SL-B;;! O 6viTyLC';nНG@)3X];ܧ/[ SnA#o?t&OUCɱi 9tGA:c.] +RoBx#|bb1JF.}gSrޱw.iƭ<@rg0{<{ }J;ν&rֿ`|a{N)jERyz5$.UP}bGjSpOkXм<9G3h}ö0}t=Xq2M$L ){~Jj!HOLF]a9gpw{_{sC3Dl͕.eU]u-'sԙv^:bN;L;Z%7^:-HX[i݆a@AGA @A~<>CۏSo|mE=a> M{#9 }}g*_GjUQԨ!k=5`.09Rȡk:);My_|fP +伔y,: #$"X5cb{ABB>Βck@{r &7saHrN<ܷlR@z?R Yz9|nG%ؘ:ĸlC;LsYYxˆ^_sʑfiȂ(#gv}៹B#' 5Of&9d/PP>p#>A|0>`_t|4r4tdxduiVkŃЯujbEAűwKzjd$!O~\4(Hłt( NņKaDDŌ M8 0_$FF$,=d1euSEWpTɦS<˃_RF~9)KQfI$-dZ[M /]&ٌvE\ +S[;I~IgXGp4 [&ac\lvu +$T֌Cעi7Ġƺ{GiɣUZLVil$x^\K:b0r^l& ;+>Yb-]rujHNnj3ۤ"sWAW.~. ] B9Kjv88K=-Ԫo~0tN zyj7փ,u5_+'x6yZbhێP‚6vDN?lZ6|_-_Z6rLLξ>ؽ|(pnp_is;FwD &(:pT|HOXtQ: +B^Nu`EA^:_]o cA.wA2`G^<zzzΈ|MwB%?G$AO$w[$@QV&h!AcL0^% 9p@&ݕdAߎSgAMzӅqcJ7P~xd 环_yP,/?HL@g3<ٙ(qI{qiWo['xiQP\^˼~* +뎲xu~Aܒ{M=q3%ST,RG*HBd&Hµ)*dK&aQ'0OdL58.@S7Lϓ&[LN.NR#4mIUk$bV.pD]N2wD-nL4v)ӭіSV]Laql٩˥`k6psضnhHQrOJh~ϬB5HVJ]'DH 8c DTPݼ+\Lf]Ŭ󖍗+JxD`J^6tO10l+V8|\gtE'΁͏u'' uIojdR pQ3*|B-= Dp_B` amg15~*- ު.-uMuEiTⲔT9C/߄vJ40kÚ*v!({4|h̼3D,G엠>x;1!P5紎('J#%) c^z9*%%} 4&sw 5]b{g 4=Dtui|;(d*oX*^Bz] P/5v~t+<]e>tnN1WdC/϶YZ\!U q_F.x2GȐF@'@q0nHxLcB$_uXrE\:Ai&v'jG"V!RWH!9z\>AJPvكgUN,- .w5l Z;j|9jPm-裐^(HBT7Z;b%5^l ?_ ۇaPĞ!:0Eՙ +''eҺxYxR)Ӷ%*OLaY=Ox5rлؤ꤬V| ǤVwSN˗-ƺْB d,Xp0k~?L3PR %ZrT3"D+qȆ˅wUM. 4XhoI>o ^f7)퉮Z-,y^JZ S2TbEB!"|wĐuVH^e#j0 6Epd1n +jYF.S `{$\M/a$LR-ȸT*fPa!- ³. N&7)I<`Fz.\Bs?#'J3J + BG =V}X͒ݬ4-KATURwʥV*K{Jz+*)d`;RZ= +::e.j9.zPH_%1QwU6e޹|1Lȴ̴Lt!~Wk9*B޽AbΪgUg} +~#;g05Uztd!3ED?R"VqUo$.Tqe8TK4 &av'5 ۴N +A&)g\!6XcY!}!u1L}ja*q*?87g2Ry<'9)NEJ +Ӛ1~Ml9j9VJ}s0mOAMG(SJY_JBzdN﹟Ts<׉ +ε*o(KwIFԀU|IǪ*K.ր +Ct5KieeuN` M )-љ[f8fQ#^u镥d/B̪ѯ*+$VcJm2OcNه\K(^O?F_u^<ԟ-~ od0>ϸ! <.:S<ԾsĪc99.VͭUv]r #cMD֊떬<Wb\Yw$B=4 +@3' | ?4]ͶZLyf@1%xF9(~ݛ.Nǒ~p"n!*95<$(ڣ +mw,(v$T[Odգ  ɺ姡sJ~Wz:bIB*+jB7@d60$:{;*'ۆ']P$[IU`턟.MvbB3.sSGc?$,%?UېX I9,vNH_8{p};\2r)'?F=KZVO:o]vC]6]p?[цa %![7 7L>~9.ozp=\}P>OlyPv3+[/LV"rV7trb: ;'hIll(0kbULE^M2 }sh[>WPF 9UX;&I\ׯ H7 }(-[vEB?S?ZjA}'Ir;&w 쀵k6xԃ[L?yw2gՓAO %}A3h&_7.0MJ{HȚ5nߪ[C܁Ww Ծ@6#~ʕ%Yx4c}m(ѾHĘ&ɌtXy[xN(nA躔sQ ro{zX*#r,1[2T93YT/E03l- CC$sVEa gVY*n#(qeQ Xwmf7 +PoQW8Vܲw"z='{%WU^IYK+}v?\4TUuJe""#޷Fzd)߷1?> oь2MNE׎9m}kT"4/6;'mp!?CbN@k7ٖT`pBيr!r2oW~uAf_?jK b̈́R3asdѕ78>l^y>,qU& *53wFݵ~O=3kG HF;$GkuQ-xUG&/f]>R +ۅ75;z@BԒƞBLc/)ZօKR RvqYSFJr֬`QRb?ޚ"p@@Xzw+C;]=9D*i[bd\{[-t V{# +wSN-Uvє&2 ]:,]eROy}Ss JN 7r583)n&Tv 4P触<.a1&n"E+J! dӍ2q?қtvWDTWGnWT2()LSVKʙņ|~B-[mT-bWA\O?*{r O$}oI[:P w .> =\%4Ō} 3^ƕ䈃.D hǥpq35̤%1w9k^i^}b PRDMZtZe˜'Gs|IRKG\F_Z:I6 +D ii1]Fll bPBt[Ftz9qJ%* PMbI8#EJKmͷn)|&On/Vb MP4mաWbQRe~S=*>lKCOj1Jjl:]<hBQP#\j# xmD =i5n_\_]"N^5V 9IZP:ÓT!$(tɼ hNI]8/59c$tmc, mfu:WMndNfq#3[ژa4ɪSȲۂU]$6Ϊ/j(]REɼah+NW8J8Hu zszr#S`>~fAv}zJwRL(m+jJׯ꒐#N& IxN)(5EEf[Y~c(_mۃ@{ +HC%(wASX[SEg*\>+|X58PwoE&L@#J. "m;j=pRs&<{O(;go7HLL>iT(KS,> #i͜ō#%mn[GET0ã[t% `g&&݃h V:X/ia@qun8Єք+[ +Sc֥ӹS+/qI#ږNOS˪h8{*YSB^9 k&ˇO?#Eir~ `Uw]'kݱ:z֮Z9^ lMDZ0JF֕|RxIV^":,AJܽ }VULIC RO "GH[`E -:Yqo N5ȺhvpGm'"-c-$ F sjrsh&i<2xIpl* +!1*jFó>|Jy*G2{ZDs춬X%:`(%4>Dh3-]s2]R5F; Ϫ5Lw ok+$OPztk;}}(InڙG@Ka)˃0pxѹņV:}1ڦDlk؂zI'+A}#bj.бh4TY>高-]HZ؇A+VzWJc7!U-3Z¡޴ڪݝvkF}*cVJBDȕ_cBwD֭Og>[4q .Dgp}w6ZH=j]z<8w)$c.7E|m{H2h&8.5nVuD45rD.Q~9L/"*xpw +EWZED9a,m> $S7TFrw,?EfT/P҇bWrx].لh m8}z>ݬk!6I/{=hW>?p_+Fo0q^yIcD:g:mݑZBczϕ\ɟE0)Ccz6}M8B@ :`{{孮Wdq qr /59T_t ;Eol|)EGWM~L{:7ÐATgUl ؽ]H>uqzx,0F]oP C'|OE010`;p˓љdL HPaCh̾d(9|b1R2o`M_  ICcc쀷Lf!Ka @|;[ ]8e~I9@pErn\|HFb<.c{=`.MY_ !Fm<&%YIό$ +~^PK+5 :s  COPYRIGHT-jai.txtUTEUxPK+5Q! ~DISTRIBUTIONREADME-jai.txtUTEUxPK+5 +[) LICENSE-jai.txtUTEUxPK+5ΒnD  THIRDPARTYLICENSEREADME-jai.txtUTEUxPK+5}"/: UNINSTALL-jaiUTEUxPK ++5 Avjre/UTEUxPK ++5 Ajre/lib/UTEUxPK ++5 Ajre/lib/amd64/UTEUxPK+5,g7 ) jre/lib/amd64/libmlib_jai.soUTEUxPK ++5 Ayjre/lib/ext/UTEUxPK+5iDvW jre/lib/ext/jai_core.jarUTEUxPK+5I0p G+1jre/lib/ext/jai_codec.jarUTEUxPK+5;e 4jre/lib/ext/mlibwrapper_jai.jarUTEUxPK 5 \ No newline at end of file diff --git a/rpms/awips2.64/Installer.java/src/jai.patch1 b/rpms/awips2.64/Installer.java/src/jai.patch1 new file mode 100644 index 0000000000..379bd6ce48 --- /dev/null +++ b/rpms/awips2.64/Installer.java/src/jai.patch1 @@ -0,0 +1,17 @@ +*** jai-1_1_3-lib-linux-amd64-jdk.bin 2011-07-01 10:33:52.000000000 -0500 +--- jai-1_1_3-lib-linux-amd64-jdk.bin.update 2011-07-05 14:23:31.000000000 -0500 +*************** +*** 1,6 **** + #!/bin/sh + PATH=/bin:/usr/bin +! more < $outname +if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + + sum=`/usr/bin/cksum $outname` + index=1 + for s in $sum + do + case $index in + 1) sum1=$s; + index=2; + ;; + 2) sum2=$s; + index=3; + ;; + esac + done + if expr $sum1 != 2131832391 || expr $sum2 != 1668211 ; then + echo "The download file appears to be corrupted. Please refer" + echo "to the Troubleshooting section of the Installation" + echo "Instructions on the download page for more information." + echo "Please do not attempt to install this archive file." + rm -f $outname + exit 1 + fi +else + echo "Can't find /usr/bin/cksum to do checksum. Continuing anyway." +fi + +if [ `uname` = "SunOS" ]; then + if [ `uname -p` = "sparc" ]; then + ARCH=sparc # solaris-sparc or solaris-sparcv9 + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +elif [ `expr \`uname -m\` : .*64.*` != '0' ]; then + ARCH=amd64 # linux-amd64 +else + ARCH=i386 # linux-i586 +fi +if [ ! -d jre/lib/ext ] || [ ! -d jre/lib/$ARCH ] ; then + echo "This is not a proper JDK directory. Exiting install." + rm -f $outname + exit 1 +fi + +echo "Extracting..." +chmod u+x $outname +./$outname +rm -f $outname +echo "Done." +exit 0 +ELF>@@@@8@@@@@@@@@@,,@@ @@@@@ Ptd@@$$/lib64/ld-linux-x86-64.so.2GNU%5 +-+#24 /13),0(.$ "  !% &*'x@(@@'@1@'k@'@I@Wg! @@P(@^@j0@8@/@I(@'8@ H@X@Bh@;x@f5@@"@'@ye @W@@@(#@'e@'@(@8@'H@8X@Ph@ x@@@'@'_@'J@'w@1q@'`@"@@@:@n%H@@(@\p libc.so.6strcpyioctlstdoututime__ctype_bqsortfgetsmemcpyperrormallocisattyfflushfcloselseekchownchmod__lxstatstrrchrwritefprintfstdinumasksignalstrncmpunlinkreallocfreadsymlinklocaltimememsettcgetattrstrcmpsprintfstderrfputc__xstatexit_IO_putcfilenofopen__libc_start_maintzsettcsetattrmkdir__ctype_tolowerfree__timezone__gmon_start__GLIBC_2.2.5ui @4 @(@ 0@ 8@@@0H@2@@@@@@@@@ +@ @@@ @(@0@8@@@H@P@X@`@h@p@x@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@1@3H}H5:%<%:h%2h%*h%"h%h%h% +h%hp%h`%h P%h +@%h 0%ڼh %Ҽh %ʼh%¼h%h%h%h%h%h%h%h%hp%zh`%rhP%jh@%bh0%Zh %Rh%Jh%Bh%:h %2h!%*h"%"h#%h$%h%% +h&%h'p%h(`%h)P%h*@%h+0H1I^HHPTI@HP@H@fHHHtHffffffffff=UHu6HlHHt fffHHUHLHHu}ffffffffUH=HtHt @fffHH\$Ld$AHBHDH\$Ld$HSH|$Ht$J@J@J@J@ HD$HHH˺Ht$H|$|$D$ AAHD$HIH8HH@H=?.MLƿ @H8 +L;\$I@HEt#ILH+H_A EtILH+H;H8uHII;t IH2@H߸HcйH޿`@͘ +QI{t%ISH H+T$HD$)ЉHڹ0@EI-u BxuBunAL;uH0@B&Et!ILH+jH AISHWH+T$HD$)ЉAII;tH=Qt8=ܸu/HH@@H߸UHcйH޿`@w.YH[AWAVAUATUSHIIAI/HD'AEH}HEH€8-HRHHBӃM$Ű@t)H‰b|lOeUtV-G3t8 )H=H 9u.AAHHEHʶ8-9H9t϶}At}DnJtk)H‰[P tqbtt)H‰t˵t-%z\t)H‰y(n2t_ +PtE6t t HH+EH9AHE8-wt)H‰FSt)H‰"/t|)H‰l_AH@HAE~H}t HU:- =ڳt=u-=u$=t =u=t>=ijt5HH@`@H߸HcйH޿`@A=b~ +V=wtB=jt9HH@@H߸?HcйH޿`@a3=Xtu +>EtE&I/D=QHH@H$@A#@A@H߸HcEH޿`@đ=uu=u=u =tPʲNHH@@ HH@ @H߸5HcйH޿`@W +zE&I/H[]A\A]A^A_ATSHAHH@H$@A#@A@H߸HcEH޿`@ѐ$@&@`@H߸}HcEH޿`@E +EH[A\fffATUSHHIԸH$HH1IE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HE0HHHH3HII"MtE0HHHH3HIuH1[]A\HVIHtB HcֹHHtH1HuHcIƁ~L<HHH=+uHHHH= tH=HHffAWAVAUATUSHhHD$@HD$8AHD$(HD$ HD$HD$HHD$PD$\HD$`H@@=>t?=6H5HD$(Ht&D;-sHT$(;-r=t>=HHD$ Ht%;-ԮsHT$ ;-rD$D$4ADH@HH@@HH0@!U @H0@qD$f9{,DHD$8HHT@HH@HcйHH@`@ߌ@HH@HcйHH@`@AY=z,tD9DO&=z,tD9DO=z,tD9DO=I=4uA\A;-sIHNH4؋H`@JtAH|$(tHT$( +;-ЬrEtn;-¬sIHH4؋EH`@ItAH|$ tHD$  +;-yrEttAHD$D$A?H-yL%xD=xD,$LL$`LD$\HL$PHT$HHt$@DD9DO=)z +APH|$(t +H|$(H|$ H|$ HH@H`@H¾p@HH@@Hcй![HH@H`@(@H¾@ HH@H`@x(@H¾@HH@HcйHH@`@ AA3D$4H=wHw H5Yw=wL%OwD=PwHD$8|$4|$\>|$\HIHu[HH@@H߸'HcйH޿`@IH|$`H|$`HHD$`cH|$`|$\u +HD$`IA;l$\s HD$`IHD$`HHD$`;l$\rt$\3?@L#;l$\siIH@M$LpmÅt4IT$@@LVHcйL`@xEDDI|$L;l$\rLH|$(tv;-\s_HH@A HD$(<u;HyHо`@H߸HcйH޿`@AEN;-rH|$( H|$ th;-sQHH@HD$ <u3H Hо@H߸SHcйH޿`@u;-rH|$ =>xHD$@HH+L$H= Et7A#@0@HDHH@H t @H߸HuHH@Ht`@+=t1HD$HD$HHu"HH@Ht @H߸t3HA@#@LDHH@HYt`@H߸?HcйH޿`@aH|$t}H|$@#@HDHH@HT$@H߸3=u@Eu;Hu6HH@Hs`@H߸HcйH޿`@܅H|$@uAH|$ QADDH|$t AQDNDHh[]A\A]A^A_SHH sA($ЈA(H sf€A($ЈA(H ²sA($ЈA(HgsHHPH]sHHPHSsHtHPtt(HX`(&HKP( ʈP( H0H(=r =r*vn=o;HH@H`@D rfAifACA(EEHH@D$$9@ ==@ HH@H`@:HH@H¾@H߸HcйH޿`@ɃH: H4@y=y=YD=q=^*HH@H`@D qfAifACA(EEHH@D$$=@H¾@@H߸f=8qtOf=.qtE=ǣHH@H`@  qHH@H¾@H߸sEH"@(tU=uuEHH@H`@HH@H¾@H߸,HcйH޿`@N-nWpHfP HpHHH[AWAVAUATUSH(|$$IHL$LD$LL$Dl$`AA9 IDH@HH@@HAHHH-oHHHOH%HH)II)H@HNo @HH@0HcйHH@`@NAI>H=&o@HH@HcйHH@`@HnHT$HHnH_H(HHHOH%HH)II)Hy'@Hzn @HH@\ L;%pnthL=PnHTn H5m=2n-mHH@M@@HcHmHm)m%m+m)mHcHmHmH0@"$@H0@xHH@I蹐@I @H߸fHcйH޿`@AI>u H=dmuH=XmoHD$H8`HH@@H߸HcйH޿`@$H= mtHmHT$HHlHT$HHlHhH8vAąuH0@uAtiHH@IF@)$@H0@tIHH@I蹐@I @H߸7HcйHH@`@U~AWMAąt:HH@I@H߸Hcй!H޿`@ ~E=-lPt5D9DO~)HH@H`@HH@J@H¾@iH=ktH=kHk=ktED9DO~9HH@H`@HH@J@H¾@H߸ ==D$$|$uw=l/unHH@H`@-HH@H¾ @H߸HcйH޿`@|EDDHa@BH„u=5l/t|$SA%tA9DLD%=-=8yHHu&HH@@H߸HcйHT$HHEH*H`@HHHHEHT$HHxuWHH@@H߸HcйH޿`@{HEHT$HHEAHT$HHxH`@HD$HH@$B(H=Lit3HT$LMH0I5miH DiH= iKuHD$HH=ipHCuHD$HHBHBHT$H +=ƛtEЉQ,HD$=uOHH@H`@ HH@#@H¾`@H߸=ldu5 b=bxHbHHb ƒtH=ydH5gdHH@E H=HH@H`@H=Kt@#@=2uH@(LIE#@HH@II}@P@H߸HcйH޿`@)tf=-b @@+AąŃ1=הtHHH@H`@!AP@0@HDHH@Il@@H߸w/P@0@HDHH@l@@H߸FHcйH޿`@hsA,THH@H`@HH@H¾@H߸HcйH޿`@s=ޓu=uT=/btZ=&b~LHH@H`@HH@H¾@H߸qHcй!H޿`@r2H`H9`=CtEHH@H`@HH@H¾@H߸HcйH޿`@rHH@H &`H_@H߸HcйH޿`@q\=t=uJHH@@=u3u/HH@@H߸ZHcйH޿`@|q`H[]A\A]AWAVAUATUSH(IHHIHHD$ H^HD$^D$AHAH}HD$HEH^IEHG^`L=`H`Aąt +t3Hch^H5Y^LdHH6`H&`fA @@'Ņ=OuEP@0@HDHH@l@@H߸HcйH޿`@$pDF4P=tEAA9AHH@@H߸HcйH޿`@oAHD$HT]D$R]HD$ H^EupH _LH;D$tU=QtADHH@LD$HH] @H߸HcйH޿`@%oADH([]A\A]A^A_SHHH;5?^v23H='^HHƸH^H)^H`^[HH?t":w ^H@HH:uHHHHHpHzNHfSH=3\+\u=HH@H\@H߸HcйH޿`@n[HH\$Hl$H`@H`@HHtHHu3H`@H/t HH@HHH@H¾Ц@>H`@X@HH\HuHHH@HHH@H¾@H߸HcйH޿`@2mH\$Hl$HÃ=Z~HcZHP=!m~2Am‰ZHH +mH)HpZlÃ=fZy +ZZHcQZH;~BH=y HۍՍHcHZHlZ)‰lZ +|lHcYH)AVAUATUSIA=Y H5Y=YYu +D)=Yy7@HHHQ@`@kYHY H;YHY9GAH5'YLL/ML% Y)Y)2D[]A\A]A^H=xZuKH= H .=X H5X=XXuX=Xy?@HHHQ@`@jL>aHX H/XH0X -XHXHHXHSH=RXHHHOH%HH)HH)HyBHH@@HW @H߸HcйH޿`@jxH;5WtE=W)HW H5fW=WeW3~2)VWFW+8W)@WHcH&WH'W[H(H\$Hl$Ld$Ll$ HHAHHH=VHV=!H=sXt +2yH@(uH=u/H=nX!HHH9=/HH Et L-BXL-)X=WtWWH} +u =WtHWMHH(H9sW: u)A$ +IHD)H9u W&z +u H: +uA$ + :t +A$IH‰H)H9rM9va=u6H=hWLL)HLH9t O0=t"LL)L`@guH\$Hl$Ld$Ll$ H(SHH@H`@HH@H¾@H߸HcйH޿`@AgH H4@=yu bV +VV2[AWAVAUATUSHHHAIL40ID$tDu H3H:HD$A@t!Hu t A~ +t +A +IHHutH}lc:mlA Ht$ +iH|$O}ht.ExHEpEp;El|e@HpAt?}Dt9u+tH5Q +H=@Dž}hM9A<$ +tA<$ u ExExEx;Et|D$|$D$ExHEpEp;El|]H|$rLL)HHL,H9H|$!DžMl$e@HpIM9=LL)HH|$HLH9…H|$At\}DtV7uH)t:H=HL\H9…u("H=KA~ +H[]A\A]A^A_ATUSHHAԃuH5c +HHH=HfH=7At"*8< t< +t< tDxH-DHH D&ƒHc‰HI ă9rEmDl$`@D!D$I);\$sI C=CxHCHHCƒTHc‰HI ă;\$rD$D!HLl$IAMI)Amv|c]9sG OC=HCxH7CHH*C0ƒHc‰HI ă9r`@D!HIEIp9sG B=BxHBHHBƒbHc‰HI ă9rAEEA)ʼn`@D!A)ʼnI)AE9v D) +D);l$Gl$)l$DD)9r(DDHH@HH@8AA H@@DDTTAAuAuE=xCtHH@(DHH@D$|$A|$q!c9sM ~A=wAxHfAHHYA_ƒu +D$FHc‰HI ă9r`@D!HIEICD=PSL%QSSSD$H([]A\A]A^A_AVAUATUSAH-#S%SD-SAADHD)wH @=@xH@HH@ƒHc‰HH ŃvDHwD [@=T@xHC@HH6@<ƒt,Hc‰HH Ńv%A9 AHAAwD ?=?xH?HH?ƒtHc‰HH ŃvD@H@AAu==AtHH@DHH@0Aƅu.AHAAPD-nQH-oQqQD[]A\A]A^SHH=+Q9HcDÁ~HcD Á~HcDÁ~HcDÁ~PH|$H$@I@A@@@ tHhPHcDÃ~[PH|$H$@I@A@`@ Ã~&H= PPHOHO OOH5OH=OHĐ[AWAVAUATUSHHH-OOwH s==l=xH[=HHN=TƒHc‰HH ŃvAAAHwH == +=xH<HH<ƒhHc‰HH ŃvAAAHwH <=<xH<HH<ƒ +Hc‰HH ŃvAAAHA A AE9sowH 2<=+<xH<HH <ƒHc‰HH ŃvD@D@HAE9rAw@DD@AAvD$<H|$@HD$?u>*u=;u +>tDHHHŀ}uw[>`A;!t;^uAIcHHڸ;t$t:\u:]tH€:u܀:] +;-H9L-aL5`u!;\u +u;-u KEtH-H=+tHu9HH@@H߸诡HcйH޿`@=HX+H H+PPPPPPPKOKOKܡ=U^u=P^^@…tHL E u6HH@H+@@H߸HcйH޿`@ =H\$Hl$HHH=[*t HI*H=Y<tH=P<H@<H=*tH=* Hw*H=+tH=+衠H+H=+t H=+耠H=)t H=)jH+H)HHH$Hl$Ld$H5)H`@Нu-*@u tLH*H)6 H=)u&諬H )Hu=P)kH=\tV=\tM=\s\H=[%=~ =( +T$H(H(H(H=(HHMAącAă=[~ =X[H[H+[H}(Hy>HHHH@HD(@H߸*HcйH޿`@L:mH=2(~iH=(u_H=(tUHH@H'@H߸ԝHcйH޿`@9H'Hx(H'AH=[H=I(=dZt8=wZ ~ح@#@HH@ܭ@H߸LHcй(HH@H<'@@H߸"HcйH޿`@D9='1EAOAH='u=&u2H0@Ht @H +H&H=H'IŅu4H0@HTt @H軚AtYt;HH@@H1&@H߸HcйH޿`@98= &&E;H=&Ņt=%fD9DO=%DH$Hl$Ld$HAUATUSH(HAH=% =t%ߚq%H5"%=\%W!%;S%HH$HH$H;$H=$?Pu(@iH$HH$H;$LH $HHHOH%HH)HHH)޺=$H$H5O$=$脘N$9HcH,$HH)$H;$r9H=$?Pu(@蝘t7H#HH#H;#sH @$H#fBAH#+#)#Aɋ#+#)#A4H#H)H#HH)H?HHIII ED9H5#H H5#=e#И H5#=N#I#= H"HH"H;"rU-"H="?Pu)(@Zu"))"AH"HH"H;"sH "Hx"fBAED9E=Uu =VUt6HH@Hf"@H߸LHcйH޿`@n4HH@@H߸HcйH޿`@?4H!H+!H"HYUH3H|$fn"H|$f_"H|$fP"H|$ +fA"H|$ H2"H|$H)"H|$f "H"H"HTH([]A\A]Sf=!td=FT==TuR=TuI=!t4HH@ @H߸ЖHcйH޿`@2[H…!HH`P"H>` <vB#H$``(=mSuH`@#w$H@=KS~ H_H( t7H_x#tx#t x# tx#uH_H( H_`( H_`(H _H A($ЈA(HH8H\$0H*3 $D$D$D$H|$fH|$fH|$HH|$ qHH|$`HH|$OHH|$1fH|$ f{H|$flH|$f]H|$ fNH|$"HEH|$&H<H\$0H8H(H\$ HX3$D$H|$qftH|$`feH|$\HXH|$ +KHOH|$:HFH|$)H=H|$ f4H|$f%ft(H]]HBHHBHHBHHHPH\$ H(AWAVAUATUSH(IT$$HL$MLL$AD$ D$tHt +MuMu +L5I|$(DEA9]UTt3UTw s)UXbUx AD$ EMAD$A AtQAvGI|$H¹y#H|$1tD$uAD$IWA|$$xAt,YD9w J<':H‰مy|$tIAA6AD9w"J<'H…y|$t IW A|$ uAD$ AH|$I|$HT$fI|$A|$ MtgAI|$qH…y H|$1tD$uAD$IWI|$4H…y|$u EtAIA v4H|$t,I|$ HT$fI|$HT$fBAAEID)~DH([]A\A]A^A_fHXH\$HLd$P=Z,HBd$ HސH\$HLd$PHXHHH\$@=,t0H=,L$ H=+藐+H\$@HHHH\$Hl$HHHT؏u!u#H59!H=:!uHcN1H'!H!H!H!H= 1HHHɉ 0yHc蘂IH;HH0HcB| /uB0HB =0H`@Lu%=@=&AuL$J0iLӃu]HH@LHH@H¾ @H߸cHcйH޿`@L赃/5/HcB /F/HB HcL5HvHuNLa/ +c=c/~H=2%K/mH%HH;@H= HHH@H`@IH@HH¾`@LRHcйL`@tH[A\USH8= It {lHH= }@H`@lH HtHH~HcH9tcHH@H`@*HH@H¾@H߸藁HcйH޿`@HtHH= YH= H`@(=V>uAHH@H褮HH@H¾@H߸HcйH޿`@3H`@Ht +@HFH=r EH= +t-LD$5 LL$ H +H= +-uH= +HD$u +HD$HD$==Hl$ Ut$ H`@Hh~tx=5=t6HH@H胭MT$ HH@I@H߸#L$T$ HH@@@H߸HcйH޿`@Ht$H`@H~te=<t-HH@HHH@H¾@H߸`HH@̲@H߸EHcйH޿`@gHHp$H`@xt +@}H8[]HH$Hl$Ld$HA,teW2w0H}tPH}HH@4M2U0HH@I@H߸~HcйH޿`@AHuH}}tNH}HH@ӫHH@H¾@H߸@~HcйH޿`@bEDDu(H}q~tNH}HH@tHH@H¾ @H߸}HcйH޿`@EDDDH$Hl$Ld$HfUHSHx@HH8HtffHHHuH[ffHo~H??17 February 2002error: expected central file header signature not found (file #%lu). +error [%s]: attempt to seek before beginning of zipfile +%scaution: filename not matched: %s +caution: excluded filename not matched: %s + (please check that you have transferred or created the zipfile in the + appropriate BINARY mode and that you have compiled UnZip properly) +caution: not extracting; -d ignored +error: must specify directory to which to extract with -d option +error: -d option used more than once (only one exdir allowed) +error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid +caution: both -n and -o specified; ignoring -o +UnZipSFX %d.%d%d%s of %s, by Info-ZIP (Zip-Bugs@lists.wku.edu). +Valid options are -tfupcz and -d ; modifiers are -abjnoqCL%sV%s. +@c@c@c@c@c@c@c@c@c@c@c@c@:@c@c@c@c@c@c@c@c@6@c@c@c@c@c@c@c@c@@I@c@@c@c@c@c@c@{@@c@@c@c@c@c@c@c@c@c@@@@X@i@@c@@c@@c@c@c@k@@@ @c@c@7@Y@c@c@@c@@-dXM skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) + skipping: %-22s unsupported compression method %u +%s: bad filename length (%s) +%s: bad extra field length (%s) +file #%lu: bad zipfile offset (%s): %ld +%8sing: %-22s %s%s%s: bad file comment length +local header sigfile #%lu: bad local header + (attempting to re-compensate) +warning: stripped absolute path spec from %s + skipping: %-22s %svolume label +warning: cannot alloc memory for dir times/permissions/UID/GID +warning: cannot alloc memory to sort dir times/perms/etc. +warning: set times/attribs failed for %s +replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL +(assuming [N]one) +new name: error: invalid response [%c] +At least one %serror was detected in %s. +Caution: zero files tested in %s. + +%s: stored in VMS format. Extract anyway? (y/n) skipping: %-22s encrypted (not supported) +No errors detected in compressed data of %s. +No errors detected in %s for the %lu file%s tested. +%lu file%s skipped because of unsupported compression or encoding. + error: %s%s %s + + error: %s%s +not enough memory to invalid compressed data to inflatewarning: %s is probably truncated +%s: unknown compression method + bad CRC %08lx (should be %08lx) + compressed EA data missing (%d bytes)%s compressed WinNT security data missing (%d bytes)%s +error: unsupported extra-field compression type (%u)--skipping +error [%s]: bad extra-field CRC %08lx (should be %08lx) +J5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@V5@i5@i5@i5@4@i5@i5@i5@i5@i5@i5@5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@i5@`5@i5@i5@i5@4@i5@i5@i5@i5@i5@i5@5@centralwarning-VMSPKlseekEOFlocal[text] [binary]testlink[empty] extractinflat%-22s OK +׃Ѫ++++--+-+++---+i++_̯յݯ=ܫꪼȺ<>̪Τ𽲷error: cannot open zipfile [ %s ] +error: cannot delete old %s +error: cannot create %s +error: zipfile read error +warning: filename too long--truncating. +warning: extra field too long (%d). Ignoring... +%s: write error (disk full?). Continue? (y/n/^C) error: zipfile probably corrupt (%s) +%s exists and is a symbolic link%s. +--More--(%lu)--- Press `Q' to quit, or any other key to continue --- ;Zx0NmR@WN@P@S@S@WN@P@wbbus errorsegmentation violation with no real file[ %s ] +*  +    + #+3;CScscc !1Aa  0@` + + cc (incomplete l-tree) (incomplete d-tree) error: cannot allocate unzip buffers +unzipsfx: cannot find myself! [%s] +error [%s]: missing %ld bytes in zipfile + (attempting to process anyway) +error [%s]: NULL central directory offset + (attempting to process anyway) +warning [%s]: zipfile is empty +error [%s]: start of central directory not found; + zipfile corrupt. +%s End-of-central-directory signature not found. + +caution: zipfile comment truncated +K{@V{@K{@V{@K{@V{@V{@V{@V{@K{@K{@V{@V{@V{@V{@K{@V{@K{@ + %sEmpty zipfile. +[%s] +E@,@{@{@V@{@V@V@V@V@V@V@{@{@V@V@{@{@N@warning: cannot set UID %d and/or GID %d for %s +warning: cannot set modification, access times for %s +warning: cannot set permissions for %s +warning: skipped "../" path component(s) in %s +chmod (directory attributes) errormapname: conversion of %s failed +checkdir error: cannot create %s + unable to process %s. +checkdir error: %s exists but is not directory + unable to process %s. +checkdir error: path too long: %s +checkdir: cannot create extraction directory: %s +checkdir warning: path too long; truncating + %s + -> %s +warning: symbolic link (%s) failed +warning: cannot set UID %d and/or GID %d for %s + (warning) cannot set UID %d and/or GID %dwarning: cannot set times for %s + creating: %s +rb-> %s symlink error (warning) cannot set timeschmod (file attributes) error;4 C`p 3` Lc i 8j|k@k`k$l*uxPP+H8XpseN:1(Hŗ* @Š4Ԣp(M`Ī890Ҹp:tŽ0XWHQh3PSx}@@  x @3D J<;@AD <\T@@BBB B(A0A8D@$@BAD $@@DBAA @]D @D,@*D <\,@ BBB B(A0A8D2(@zAD <+@A +BBB B(A0A8D`,5@kBBA A(D0<,X<@[BBB B(A0A8D`l>@LA>@43?@DP?@fA?@D J@@gA@k44{A@BBB A(A0lmB@DVC@A$BD@D0T9F@A<F@BBB B(A0A8DP4I@ $LI@BAA tJ@J@eA2K@ZAD L@D@J<N@BBB B(A0A8DP,S@ DS@)\S@Et@N@^@n@~@@@@@@@@@@@.@>@N@^@n@~@@@@@@@@@@@.@GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux)GCC: (GNU) 3.2.2 (SuSE Linux).shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.data.eh_frame.dynamic.ctors.dtors.jcr.got.bss.comment @@ !@p' x@x/p@p7o @ jDoh +@h + S +@ +]0 @0  gP@Pbh@hm@@@؁s@y@@@ @$@@@@@ +@x@x@@@ @  /PKdbM5نB COPYRIGHT-jai_imageio.txtUT /E/EUx +UrF W q;qgzhN;nq+АR>[Þ}J6͒ A8~o)/Ҧ)^ssMo<֒ڞxr')oo^7au]mߓɔ8s:prN/xՈWSh9!G&&ͯ*ʞ_@OQ/-wrႜGM4x,1d[;" HD_?8W(~NrI +2$qF$ZE#w9S 5_sw@ޘ)w<}$x|y}0 Fd E<&jІ!V7q[kxbY<1nYCrab\c"d@%v}jhEey8{H3v|`?PORd@5窯l:I +Mznbh[#9аΝ"gty٪1'8DNq+ 5?B;Q- bk#"AL i):< te!HgMF}:_WǛK~!f>NG4UwW@`\.&̀vN]ٲRҎ#6c21f`D|9YhJ-6(6ySoT{bi OSŸ$xpqc1/xU}fKcݕJ2lWJYpE+=W0c^Bד|6Nș+AU4,jEyWiFAvO+:.bEwY ɴTMNauy si} PRC)VIsZaa/:j$@,uj_$Hśg²Ý4uJnJ^MV&煢r -c"L~E`A55nOV؀SaޣT+xAjc yy\ iOlIOf. _v Me\BQ@\ұw.9 +i2tv!7PKdbM5@"DISTRIBUTIONREADME-jai_imageio.txtUT /E/EUx +Tn1\B$(HA*UD@+]ς+3y3㙉)Oƻ|:6fzx^IȉҖ*~?WSdu朡pqtc4$ư.X4bUoIђO|u3! rUo;;@p4ĸ ϼ<,YA9`"=)zRsHʸ-GkDׂX^i5/#0!Ӑ: +ͧhnrM^*p*, + THR(`CfT&\_ tTx.G2~R855h3Jyq~h B^[eZp}Mm.Րv(`PX<'UL`rqE\h>{]ceѐ_+lWS4;j(_3o1rPKdbM5i ENTITLEMENT-jai_imageio.txtUT /E/EUx +Vn6+ | 6." /="~}ߐbY9|fP/GCL9^tһɌV_6@/_yEϾrɤk6vtTUjUe%Pa%O}%rkZj'Ni}6HȎ6%S,Mc* a8wԻCp7{C3iFX9kZ$㒪v!!Q$G]u^/i tGt ? Y/kSDm8%쐱Cd=Cx<]~NS~;(]Ld_5w5rHҞէH׽dJ6!8gcM K;N'/z2jK{2)FAAQVGo~$`bs5[*§:ԵXl:Pr7Bt +J2(w: t%09fk/:/T.ʥaw W84;9^lyF$-էo.uR Ar' A?lIvJ%<*_#_s2/qA`UzDc]oNNR rUYPKdbM5U)*L8LICENSE-jai_imageio.txtUT /E/EUx +[]{۶~~EӤ=^1kWܜ\R$$H h;=7L`>-]֕9FPMt.WmyyzwVZ->?Gx0.?!)U\6ysTNu;sR`o:m'&IUU.a}QOTS/UK_''OLudMVӟj]UQ7NuԽiB]v' zIWjL,(d̛cp _%-z(|7: 4 `y dtMJJ"AIZU%GF̈!: pN״ȴ@և8|WIՁ74 +#9 +~yR3'uތ*/m wiEs]^Hy*K@KA4IG=Y2*Dwd iIDDZEgD!t_ N_/MݶԕN |u쯾*ڜn5ILd(t!9UQTϐUY5[7ZR;RO0]6/#aOطƐI#٢7't9/8eMʷN_*3G8ݝkП⯐:$uC:U]mUe~KX;>!mKk8`VuObrT7:pس'),J.L ֚WӲeuHX#Ȭ*V̵SSi/۫<21d %R)63X@ :!7OϫV\me/Tg''NT1C$ 0%C԰Лxp8pǑ@v$Vt)-G(Oh7᮪^61 /KHӊxdRxFNYO$F ƥ2- 4MUh^tk9ԬrjlI=gRP½ʊ͑ߓM(2M#B =$D= ",9 %2cYHywuLkM`Cl>&Ntf*WI1ER㾞\sЩ|dKf_M~)Ui3z Qj/Vj^{խ "7!10}Q "']O)_f Ń֋2RӏhDqZƳx^.qD ͒?_Gq,ۈX\񷠆/e^/*Zx>S/Al3TD9z?IwEr|$m)Hl,X DT r69$ϦR]Sr菘(RP'Qxl;^]E+)&`O-dw!vm|n^zVWzDbNCKL "!"0IHpe, .RuR )!7V!t.ʛ$,Swmȯ7#oӧxN +ʕr\Xlm ⱡKyB >tqK³sCdi +1':Æˠ]dG..{TȊ#h6F~mD) !Oܥ 1)Rp D7pL%g+ *b lNa s&KjR^YFCm$uBmxT2A #i:yDAoDH'e#At&+P=qX'TTjs͙=x} <%"pɧǯ:+7d  Np["BU!J_"Ƨ+}8j +mށK%% HT|5luk`>{i$Y2?#Ag/AwTplS+^ 8YTqdcxVgLFa2kB&PdxsJuIȡݨw R%i"emmr3سiɽZBu$+'PA\#_ ガO8%'PH}EvVetvB'J PIM '5@M6 ^%HHCTAD_ѩM PΣ)ydhv"e]y +$.eQ%YXetSTzْ(}Ukw~j#8;BQnn ܞ)ˤ37*>{az=Q>k$:'Usng.7iÙZǩYdk +"򝻕[w9y3Nlr~B)U3ѦǼ6 kdM?vDlz&+NMI;:K;2UW6gt`akE`?&yteB]Kdu>*eR;Luiъ(lA \b8DU{TUbUk#9"F5PTGQm(nB y]\+~5/hEAE@ +ʰYehT0N"2Mmyݫ/O`Sj8=FݚCE&.a\HuU/dR#'QbH|9:=:)[4*QnF3ǐ]_v{Ϲ]jKAusȷճg˷TSёcOO}U ?$#JYD`SShƃZ#]C1WdK#.8ݡ2ŋ@Q%ݓDyGϝkHP݇ݥڝ$zlx%61߰]%(Els` >:݌ 'iطfD.=W 2-]+{W2-n6~..)jE|?h}Hj<4R(rh7pI ۂ.q_ +svnOan(>n\68V*~+V񱥳Q?zgfCb`TI2 {+0&stzxf\foC跈hS#Ҋ$;7z <!X>l{W{e3rc<䘃-IJCzNi/ 94!e-~n~'mnCH~x!|?;f4ab $?** *kRu[{kqA8K|,}  +6%_I>Is?e zA JXdA#.*osvR]}VJ*y'}w$lzMqboH*] m-լ:I6X0|u7|YA6΀7?pdNa1Y\®ލ]̀οITlrěG;0AGM2x[A3׫3D0˓3bqj(q9oI\"@(l)Zˑ#~BK?؅&NR0g{1T3XC Z:U8zDAƄ.UIj;sr3TסM-WOO71dPC]pG|ᣁ‚{/)鍆H6.C)$d<\ ͡q=6mZ`[OI^ "[EsDIH/dsDmwEaؽߣި,Zi}_#)ƕ"ɵVr-kZ" +'uf^S F@ +"5*y:HE!#83lU١Ӳ 7Jq&6, v]aܵ%ZPJ?Ǐ!<}f ;h];MX,`<)yC(h I86&&lox]]aB te)J%lG[~,|q@^b[|6%Ij[ +)U%r"Ŝ +Omy&/}tzꯤ1?*Q2X⑿pJMW68`<yeɫ ʅswUu PgA"%l¥&%\`U((It +]Tρ~۵NLHu%`.ް3r!:>uvXRtwx]Gᄊ0ūZir}1^.x4?Ge4_O+Ƴ &&O]"a: zes,Zb~|1=\a_j2]g. mfIk,Z*X\>jDG4N {O3s ;ዚE! +z?,(,00>$ mXIC!$ |7?1425}O'2,t nvXqģ&Kr:SnŒ ˊSY<(z*/s^q7ҁ +I6hWSK`[HMK26޹o\k\ l4v$(EQI9}9k \%2@Kq>AZ*ܫk2G߹t|dq_jq޼mۛo|9>x Kj941d1a)%_ X In.ҝy#ʪ|M.VSϒg6ǮP" Йd"\8)rگ$EgW|[MPJOоbg[&+2o N)L=GȤA¶d2 2+&/߆_ٜŜ*)Ā|²ڪjVԳ~9;/bF4qs[\e|l#aY{#RM3^*3,cK('D.rӥ+R2*xfvͻ՜@u +ZU$j\$59wo]]! c[PKdbM5Gd!'THIRDPARTYLICENSEREADME-jai_imageio.txtUT /E/EUx +ZMsFϯ%TL! Êr +DB" @)?ue'JUL~xyvR8sJ Vvzq ]{t0%'X݆z<%۟|ϝ]/]?o(i0n]Fiߙ*HvEPٝM)ft_EumJڊ}5E}֙c6t(7YMۼ"_ge+V|Oz\ώur*o~ߥ U%0d83Y^#*]Z7n(Ur "w&KO?> K2ZUOYm)]1")Ǭn{6oTvwy +inҟ_,4+h$7鮙][gMV?fcl+GmZ%l0˦uWmEFOiCeZj=fEwm몹pݟCEQZ)9ODOy<iAlڼ=2qޖUQ=޶1M'VzE MsqF"O򂉷"?%HM;s5o?+@WCv:覯ڦ裇ǁy 9zZDPݛ֧V8Dscx6BĶ]ގYCu1.os:}ua.,w]U(EpSV) +=U![^ôDV>0pQ]PImH'%L./.kAVR*2Ç"S3eSG\..E&umf|SZ~'u1N.g%Z&-tb&gwh 5(%`Q(OSX۠!MKCQRSkdmxi:?%ce0-⡐v5uT`3Sw'a]")Z\.;kզ˻:㘊z.=KNFFZzj qIkNgD4 L1 g,zT4B7TRO\rtӢ⧤kʱpfyZyZ%a|iO'oY׵ OtN"+2HHYo몟3#;&[Qt xcTB];ܒuO0ԍuIȌPUedBMT +pWP9bR,2qWqh^ rRqg~f)gg~›\U6/#5ނ 2:90d4-fȔɰ5wxfo(!Mj9+3q$G '#HiGO?`h0:A<@yh32#gHΕo 'C0viES/r*bX?!M"miuϔ84EpR< +!NeKawGsL\=TH`9-w +yE @}cr9[|r CRkR]4~չAqB2.q/CCo2G#9g:I~uT3wi5Ă=<@p 5sĤ/:DvcU;9Wp,m ,=0?f$y[gEUpT!VX4aȂwi)™G@pK`b >d6 |t)^6v?tXvFU!Z6$*-8f%E dbGQ4QW:;%. +!2a4f-8ѡ,Cd{x׶N-lክ1P._ZFIMM߆RKn%ď=w nD :[Δk +-?&L_=w'X!Uir@r: B$mnU?YER#C`NF >?,Ԩ EI8Nz&ҁB>Ru()ԘϊS_L714N8 (%nZ-T0A w[&>^=˘% 58%sv$L\%->ush4L:p8" +X'4G3*x 8ϽfNZ+g ǩ]Ą+WI{m|5PKdbM5c4UUNINSTALL-jai_imageioUT /E/EUx +Qo0ǟ.lDYd/,FЧh"ePP7lI/w߿M;e ҕ{˙9T [(h}:=m1ݧI@E8g'.l2NBg- V=PO $vUxԣA~O2*GgΙpEWuAo=D wi䛄6omK#G8PK +dbM5jre/UT /E/EUx +PK +dbM5jre/lib/UT /E/EUx +PK +dbM5jre/lib/amd64/UT /E/EUx +PKdbM59>nZjre/lib/amd64/libclib_jiio.soUT /E/EUx +ԝ{t[ՕoN XItR*`($S,YD!)Q(JD [ +e0vU30IgTjZn53G>1ں_uνsg}=su-ӦigvVӪ1 ͙h|!j??6]55waB?cߐ#eԯ|I|kf1umEsN6}]ȓB!r yDB:"VMJ!__HBr< +yTcB m,ktn![㯅BzrŸnrA! !G \z!;&$'|n/ !K^?넬Bk+BBn2$x b! +y^![~=B-Wvr 2s6'Nڢupmu$vJI^_)uY{# !U! f!:^$Oȥ&: +׵B.d;!'Ե9!W>!7 + +9W!W 9NB $$+!!w~!w@?[HJ Bnr|O׿N! + %Ib~f[4Eq.xڬ!)˭ ++~Vka+ުuZ,tmsgϲGLjG\kkgVC?݂yR߉/)y]?ua\R8Icau0ں+In(E\1b}~K +\k˚v? >B" Wa< 8r +y>#uo aݽ܂}:o1aX*ܨի} >-\isʷ{5>kˈ߂"A;yh^*yZj8sUy׏0i~1gUof9܏8E U72q.>HTUW᧪Q7_jxzoV𓱿6H||:FsC>9ck_xN}| ` jN/z=9q{O/??@v^Ds)[ ϝ<'y1n|]^9w97ӸZ:ς?wشߢ\{ ^؏*e-zS=pyu!%W8dqX ;o"w͠uL#?=O؏A<ڇ}W¾{ȟEǃWq#8 a~gpy!n.<{HxCu|-\">eG-`:]OIA,$ *wD0PT'y$`?}~<91?GQT^<Ѻ"p|Ru2oWFƺh^O/W8T^-a#y 5ms+KWWa^%$]\qdg7,'yu+wYOOJ'ő׭Js6FMLƣMv62TǓJs EFCcuЬɡ;_`:4v=mC4kLk$kz5ƪ딡8aDP{Ư].IdԵ,lYZt>ѢwS5d/ #Ds#h,J)=1pn7{eY6ٵ/1szL6{k5ԛmj@EvwW͝Xq/t{<,f5Q,nXvoc]KuX[αT{eL}2z=Q#;uP^2yZp4Mzz]4֓L6}ֆҡќND{6YH&јØl%S9ՖLZ4FG:p_ɈW $V}Ms֧m_# ӉX}w6Sw\4\iT-)hw(-sa ޛLZxsmKJO:WO@(H5+VG(^]ӡxO(sNm C}}L=Vb?|]I&'MG8{Qώh*MN[ :Խ7蟢s%C88yEw,ԭ# GC4G-d"kG(i}J^f<|}^C3/}+qIr7W$//폐K<>#%.ǝ%yx/y9G>~N])yG?K_?Gc9ݒ7`gCQcj5b݉K;>⹽w?vċd Y>d`?^#U◀0]joQ~D3/NzX珏At`݉6/GN<3s$$^#{l?q!$eH^!)yLrWN!^ļ2l 0#>=oÇl /C/ϕzQh_!Γ6ەN=ċh% G|;ī $>=Bu3mR/}0A!%H}>J\C=Ga݉~[Yk}q'mgw؏A7>K|$нzGwWI< =h >=cq'9y剫<0q'Ey<W R6[M\gU[ϫ|y<+C<=kc?G|!%Wm[[lֺ?tyw@o_`7 tgw.[x:nYCXmxz&nЇm6B\MU}mqs:nн 'ޱ:nijЃ fTq >q\h}&n.W6qڨ):nn~6ywBYǭ=f 6eO۬#>qM܊+Gl6J\sĭJ܍c6qkuSr[Cz:n>A~u3;qA7q>ඎ "M +Gmxz&ne⭋Pl6fc_[d7"kEqk'~>6<?I83p >#?.⿽&=įo'K>O |߀x '!'Gc;%vƐ ):W]9yafs]#ǯYӇ?g߆σgOijKMxqy7+/!r|^yp߫a~=⠽HߒEs坛x1y!nıOgw^eDž~E` >$?'D?7x^lgys8'Ϸ$yx^"*|y7qƾ.}oNUqW}k%^kċW ϙʻvwzyٟg?GKyeW߇3 ă~Us)~Cp)p|f;݃e?{G:NqX +y73jOW m!|Lq=3q}j[{'Msgy+qu^7y˰Cx,;Ϗs/rij9'>vG}'?!+ߋs(?ہ7<0 +>1|u>g?wWEtCB$*#(?nj֣AXu(#a1Y4a93{uuQ\GM?!W( ];w,G}޽}UR?^7^~פ7 |?G:*a mſE`;~?G&E?P/"wP/ DSΎؿ9//J|X!g 7~H%JP j@o/Mo|].[? 6oo l_%M˵*gCqE aW D?4Cj EW= +iAc ZoxdM{2>w;Z`c*MCg1nlbC:i/_}p3iQΕr$19vãXdDfbzýUO%px5"!4l5u˦ ר: UA_="1aAek@߇f'9T ~j1.B /7@p? ũT{umTPߡQ+g+~ WïM~ Jyw!i0<| F3+YHʑaL!i*+<V> ɴPmBg^c{apk4l$W죰iOh!I%WTs/ XO )DAXQx 5.%.AWX +8eaU*Q;b&k %!`8L,Tx +}=\9M^⡊4 +wQ-Y%?\E΅Ч6ٿﲍ U2Z4[QM[/O<,@ 8,? @3FF$.x 6*Bˤg헂?T ۸H0ݥ\@_ ePjh1{@ju-/k˕>@v/8E׶;ܶ*.v%G]Pa݋|^Cv~^v؁7M }jFƸjq7v-fY-Wlp հ#m,~iDcQVj*lE_Y[}bאA/A"?%ru~p]%MxfY O0˶{++.վ1rsh[{Hi!7@1~%2`$JMQ^03;>l"h&W0v÷(u#T;J@Gao<u/zy4 2~UC0U?)dAf3&MU00 j l̶Ld$+ +%J57c5kNK%0},cTvWexժFilxmT Jx2dXfL͔<6]Q[ +3r +#l >$wXMƒ:(Ps]L08V;DŽrfL0Ov;QhCLYdO vgٱ +rFf??.Vcm#B|,i]=?%W$w$cFxA{:3Ca>QК: %J_1^U[_Cޜb pfY#^NkB ˥<+?"ƣmcO I!f<>5/x<͕#3w'S؏g2*X4R@&LW}ػ-2螇FGlwlr*'LK"9OWҋTS/}b:g>4;3/' +'\~~?~m/Bt߮Xk9I2Wm\l+(|5.J`E+Ю~XPMm=sbAY&i6b}# k;&QП!xo/ᰢ.$\"BI{.>uGs`|%7'q7v1s*V4S @/Nv<C2Ι#+xj6T +'fgP\y]9 +3j3ۉyE/Lx|y7P^:TOL~'`Ǝ7g}˜];*K6j܄ &pוk.ݠ)ޙ`+ܜCϻ]hF7/IzZSVC#A\gz5?$Ev?A +[H4y5'X|y ܃ЃD/븛KKo +v+ˮ g(?h~QȖ1C6:RSJݧ܀3xۧ?qc PiX:%i5~:j׶6'>úcQנ^`=@).~!1.y|LP+n?+n5fQNY; T#HW`~N90S?}m[Pl08Tv +ƫ2nŲg *r Qy2tU;ĺ1 y']߶#nm7%/w~CmM@.#2[.-C9O91V}j' 5Iƫ +; N +Oa ǡ_ +rDERaWsT #_U:$3xuO@rIs^VF7/VtX˯,q\}05SoLͪSn ~Oh͑?]9=9\ȟy -g3^;̟-C<~EtO:qt9K_.BKeN$:ʜQ!sNt!sn2h=FBa03\!sx m.9|#oN>v1n7 v I$ +N+%G ٫`)ܢ۬T_B=}X#;>;4rB9XOln_IĠ,>:##f5 ee埦Õھe˺&/Xܐ.b]f㚒W]ykzڮՊ J)h8mINw6UW񺳣Jkh,6GK|Y3KtFOg4Ɵ=pje\[ec( 4iJ?\cI%uᬲ,< |/?LC@`C t?@qДTPuTP_GSAbs@OqЦTL ࠷SAc9ha*hJYIڌOF_xw{ZS&ge/8%BUy6g: } S%O( J\/J<.QK%9-JQ$O%(BO’$񠪹Y^%y@Ag/F2F]2)+$.2)#\eS"^/SMn/ǔ&ǔ5x3e{ۓL[b{$7eK-`~,j$=b-OcӌkGB>|>Z6š#M8he*h@KRA~ N[h& Oa㠼Tv t9RA[:I +hjO7{*GFt_H̏Y(oJfW7p /-p{}օE ;W_<.J y\u8[Ĉ^r OHIժnꢄ@Lo%$%v1%d%ZU&\LmJڄ0R۴;R! +LaNQJ.!gQQԭP$s.]6 #2 , h['AF= ݼo# üe0VԝPo)3lPǥR^0ۡ>" :~ N\Z?)C\?09vJ/kwraj~J2y&)S$/~V}l9*7r*~*02^:N/)0ўkʼn!`E iCa^%_7 - +)^(;lM|F%kU6ۼUg/ +==n|#`e"o'v[裩S^| +7:zZ^m{+/Tnlz?2h;W? +,We`+ϕ Urȸ hR;".ݩf"{smyOЗ(?/#_pyNOKD4PC;72'j^M?sIGCvQt8:Fx,T%XBTG1<@ͭd>O@'"sc̸;Kw5uR *N|Ha;svg=8a;d&5;>@ +b&=lڑ#>-H>~>iy/qK)ã͆urH/Mf<>1#gX!5.+0pJZg2 5j&H 38 TAi-DQëhEV{W2Ty#y̷I~W̙}c^k?r3[#bjy-E}1cbƲl1M"gH(&$CE62pʅb]L+<"J¼l҇[VngۜMڷ0Z ]'g)lNjz ф9ڳ936߮w 4Rɇ֩9ţبn&nj>U}"Z?}9BG]<~?vJ^s?}~:`!F J㓁 [P@^##e9㗁X1 OD&lAQu W˵MÎ@|>\mU×k_Կ3|c%8 5 YcF`Í?8:YAbh+#M!B/+<`@-Xhгfdr}+|?/ <{$=Bj49iUqɭCeuPݿV_ zU_:B-2KkC|"S\E92FV4sYOYhǠ\!Ŝuz̚[a14,6#GX>4C3Ͽ8auX $4n=$P+Yl:n9sC)~J0 +F&aKLm^dnr!ED6 OM w9ednZ$y(?+Nj1'GSlb>{>I f\ 7 E!S-ZLt3L۲İ|k%"M{s^I~K^əz=֓81?zYeBBd$v2.kY(,8,>kX&Lk)fJNEq#P3TZ!Y=ѹrܒo"%JzYe&2km%ԟEi D@7 1~Wr<L!. ױf!Ժ60_ /'ob<G$;h' OE1~}Zog!`93B8oBQ;}Bi<( 1[WQՇQ S>,'l%fX=/Ԗs&4 c4Q/J_1a4fvM>xv_1[(3q׌yS"}Q90[* Qr;iۚsRQ S{7[~p5( ?J-1i;2y_bH1Mqaĭݐ9'{ ?}$@/ b`d~v^+Gz M$7nġl}H +P٦5kVX@(+UqU;1u! `HIrHPgx[3uXWwRGRZv4#) ;%2u|^4Lq |zQm_Dۄ.T 64x_?`V_7cv8{r7™ȵ hCTnJCV⟷R ~[Krr㽝/}%d||Y~<cHONM-6Q#M h85JodLVxNlxR#r@LFb䥌zpl>Ȃv(q75+ltR$&M/CtڇO5u]<;מóW,~+mbÆ͎ϴ+dIOv({U?,KW<Š*&HfYYx#Up2<_`~\TY =|]BiN3I%],]ZpobYFC due&OWMxЭ$o%´!<2Nڌ3è_=Ѓ4"Q Y0M;1On}U'{Gq/>[d3a$O( VVgV;pS{*|mANHfXB/z5W +__SS-\gz)4HS,#"(C(P:$c:^ñgrc.{O۾ sBI~[SQ *I~|31RHE,-+#WԀt@`]vT|O(GXk:|뇜jp͸R}Wƌ^:a9UsR7~wb<xC1tLVyVЪFED +w;X0 +t0>L?<ӄDGj̡[|#a ̠tޟwzi!d᳴RS#Tn닋m wג. nJ +ac_8|yQφ(G/>cJO.|}Ϗ&>s|?>G_ } F;Fl/ ܠ \zRfa2.Ty78 +`ėFAt}3ix.Nuc>YXe_ "fƸ`=.Kv`N<< +:dgD3`O$'? +9V=^: w %L~A{pYXY_$,2ELW(~ zZNz *鈽_Dѻ Yz4;xt /ymvRvlM1;q#E*˄/ wp8|`˰C_$V9oX8g|6I2o:>:/6XF:JbG1y5p>:S:Aɓ8|qHC>0qșDt ܀/x["nw"_"I!W op$:EqS*9OY]]Ͷ8D1B=#+D]nؓEOrnI\ B26GA#iX _6IȐ[L8齍 [gRɻXHeSfpTD`3|! >.%&:$I M'79{jIT#HK~$& C:. V@NP\C.[cI"Qor&ހ5K +M~nsln8/>?LJy,IJ>/?TXR^kVX<0E^N# <]x/IyOM3IfxPWt)6݋lSgV'U=S8+S;nREy;š< ~mھJ;$Ϡz#\WtDͿ{075\tE`M!pXk:P8.PNo|.|? +DC|V4o*?~D{s5|B/j%  @D8'g;Gc\r`Ad'}%Y7Ie?D /7NJsTvP]q1V ޯ4::hHH)N`S(KNhϻ| *R2_pO0J[Ey-6}^[AuCT .B)ܬc9Bu`6`Q%,M)S2ĵ&d?LH"%oG@=xEӼEgQθ$xޥոG+3Msfx;, "c(x oحMn ˾?@;ci&xj+@~}':k`^at-IhO=O:|Q@Qh M '3/ ]DQ>G6ejhzW/K3-RF]9mi 9Tk0  hwB ]NO9= ϙ(5rJjӗ{>(| +uӅӐgJɍRF|Fȩ)riT@wG ,wB'a\0}:ٸ酕/s:7X mFS| ʞZt qtrΞq: n>bo_-%0kyZw0zԞLJjξq}@ecIYۡŷȫҋ_QBQ\/>hu|61 ]T* h6P?5 t(JAOs2J(-Y% A/J WJE0_M8 `._ +3Št7hcN9 ֻdxn2>NE_6`ChqRr!Z5J2S||GA;$OL2KR +g &e禈B9ͥ<5]?.VH%I g`YI`%]Nq +1zWz/ Pa y|J+S#ZĨtTaKE&)RWA@BQM"ׄ1Ň3CVE7LL=VǸy`_;3#aL6sfv!fg|oZn +2hu͎}v6min\T[(osv@Ų[J9cj)1`5p:2:FŻP_.{QGKCG7 waP7ei.#Ӆ>e6&P2ċ9θMg2|T'C#B*x^@3x%`N"ň=cx*Y5}#]P8xZLп>F OIOa!/XԎP,jk;72ewn Z?3'b`+U`̑9In@) fdcQV?kH{=*?I*ѥdȐAM Zɗ[y+gkoP~-pKy:~&l]6Iʧot;٘Za"~9σf`= <+"j»EO -Ra1[i-MW֟AC%K>$Yh8bz5H99KXQ)Fԣ ʕ4膇XD[R^L'4%ECy tXg5Fԫ!xB2F5! +˛ =Aߤ(粐$4>{jR]>j3iោqo3aeD5z(Q=$Dӌ$J"ʞyu6Ҏ|)]psooVps0 +]&^wfŽ@Ũ[ n21öWe#Lӧ6UFG፷9>5KRRA)l2 @8i t-C7$1 +:VSf +݇1$1iЉ| P'@u2}*2I[5&\]q(>kPdiӯh^URWLp `,2X)zNBq1Y$VKH'{ +q/piS$#N.sQD$v{=򖋐țkN4J]F&J*6&0!I,J4H8 r!@L%Ax+|y99&Nv κKO +gyFg .cݻ_BO1+oJf)ř] \Ryd4G%ԇP2:`iNL~RlG\2Lc 5T'elx7vj|3w i'gay#KǰT3 K +S9H9Es#KC,ŋEwin1c&4gfLn@i0b͍[QK9(~0҆HCRE4F+M?+G,ՙr[cddyК7@Wh60h oG#-2]d0,z"|P€q0`>P Aoy2O Nt߬y:< ~a(~>^^9f +dJNCCwXw8̡(br~IeNji?@\ ɏ[9 +gb2q6Ӄu%Ox|)bU:v`CgWVc%y8٧UfHVzJO#L-C?7(.! +5 glbAs,k>7ɱ1:9)m5#=ﴤ\̾1t(oW)$ul4XP*ô"۔9[Dh{\vt)-_{нᙗuSh +úlJvrȓy]ʨ&sxz..< Ւ%Si䊞hQ +$ ACmbj +o`qxr{̷~4]f@}'e9Mk0*i,cPO1]S.tz-e#I`}C`HQfI~5Vsal2t'fгϦ3߸Vw7H`f]f)>9 V>b tt0Cˑb xFc]lD0+x`KR;j pS|PR̗m8"bɶE4TH E6gax.pʄ&)y4x`y1f/{k"Ox.z.Eoq4M(W(q7[==搳])^&gxgqDS,xVo}b+7!K6QZcea ) F1* $$;5ÜpZoIx`1.Y(HX͖jTT/f_;"xECV6p*NE/E[p*߇S3`L.L'=j`VLX5@D/'il^?`Xbo^Jfضz6Yڥ\s +Ӄ:7:'Q.+ e@:KU9]PPJ9Pb7 +&]5vcXHL=]/!f潇=1]`=X̿_2Eݰ6LI +ι7āR`Flb<1~$ +̑[%=FulʛG|NY{=/xFen|OXy$<~B`cWFh߱FMV)H$Bl0c661iے:.M(N0xep;Zd?*0?@_ g;a pq9#wDwǞ)_=6FUx#gHBx73dۺCtu`MG,#,e~%@@l(ޜ`V7m8EPÁ" VnoHA(L2 XʵL,Vm[ ":s;vCZ_[m20mb \:n,#y?^Bh{Ԓ Ē?2)=g/-^dSqu   j\ AQ.Ϛ# N +R/yh. ƍ G ٶD.FDvYz\f%oJ2\r;%ZЪT$#O/YfޑSm(m+KDX2 سm_9+WPk:rD5}?<ǢE%]@>t-پ P?Uqtu)t`jTKEmfOSt$`5YbG|'"s cP|F8+'A-z.u44q fҸH:ҸˌW\{DstCJg1VcO ҵ FXPl{Aum'qg.`NI kVwm[ a&\J/ѕ] IT%@z@]"VHXir'e7ڬvy!ɫ- yeFW[@`y/q:y$H"hիILn ӽ%9|=o&@{(m0m ȈoנlɷCگ},qgmyir|Z倿XoBZr[g/1/{ɷwbҁ>A%; ;Tb6j-kp3p /W1 ? SĤc = haR±{>CD$dsj;`P{/;zx:d-zI/ae'30A_[NEh1t!E5LFZ9x?Z|/spfćlBIHL5L )h&)t{@5.#?$J/%j']H| 9[v'##`{} ZOHĒQ +ܥ ]笂`A'7Wc1rPf8^U'?1x2K\O}جc(l((S *LdXlU/1هܟ..Ro1Pẋ=Z'ra#@?X<hMY&,_70Yk$n@fu`ϼvksL>Va, 9PiNp/Xp4]%N.cL4zZA:zoz46ذ>T*iH}9E"s8D}χ:$,hE+"@L7IwAo X@U*OZ6{ҺtP%÷=<:QW@w#:.'ly64Lm@5va| Sݞc*ܼgdȍ=W6[Ak2j%) Ki qNWm;h/IoLͣ.V2 [oV 6@& Lh7@n ':i@ 1sCXK2F.yGE#Wл%ٷP^c0: _EOΆO>DOhѓ0VdN9@lrXdc%4 +% m4F~&Pk4q͇y U@:;ׇ`TBD%AaB1%i0bx(Un0hoF +FRBy!5 8៍h|oXş]"+Sy!ʃ(CiA@t=bb_(!X9-Q(QLnh_2v8q)[Z -qQ N(k"#){H9@H` 3lKf!O D-l;Bq3@h=rK w聁 cx`  +: Γ,}qC"#V,lY]KtXd$(F*XFu;xlTi12L45@ \8Pis܃؜>lb v7ϓqC$atXn!^8VNք@#T@<^ E;S@ㆄ՘&lj&LaXw~ySObHN@Ss%I|HA3cdt}x)p33{8:J9O[5( +Q,ezԣ=\>}+AD)=pX8`L (rt%_xV PL!ڱ>@!A!SC%WDZWNJtxd2@%<9'tlt>ZpSm$oⱩ7yGQm J~a*&?qCTy~,/MXtr(׉J%OirUi5o<ݶJ M?cʹ724HMeG@nMq20xIO~XFbrx{vP|a~'ǂyY2ܶ<tjK4|3r)dI- 3ÆaO +L&^3,\ZjX7Ӯ$n"l&uMtFj}{ MlE{Z>CJ5`1VK=hᙶxQ`qhD-邿 ©XḦP;xza.J2{n[L0i.IM1}7x޵,a47Z H?g.]Ν`l{١2e6V'4LxR 5j* n)1 `g´sP.ܔ]mݨt߂IGfj1M4}`FWbO>{lZ OAKx"*$SJEjWB6sœ0h&ZJoF, a _- a%2q;b2lx^ytQbSOS@S9mBu64֑ȭQKxIso\A7W։^<ލy{uj 7'e˱7,#ΙM YX#>4 vS]QBbm1*;/@j۠}&o_x 뷣~sXgɸ;]F=Hho}`=(nZ0c6b{DCFWAm#Q#^_X-'JX\i`]r2<@ȶHLXr3|izGAgnI +u ZJ<ՋHbb_Ab ۑZ<)yyXHdnjYX@ɱ_ۏ?U S}xxa [%]a[D/U[~tTᲕѬGFSFKAv_эX0^krK4^3 xͽk\6&M8qz"n>qَ"ApN3ph O]BΚ#՞}=,kh陡h|mSpCZ09՘s`9sN]2nYÿ3HHl܆@m]d| +c90?/yЗ?,MnH>Wlks0^y'x z=QLu0{0:6=6z[Q-E!%^3ìPf/357sCQU( w _aG= 4+h `^E6tWp<ƄM]!<=Qa@0y*l ELMЧ jvV{p˰ҷ=3é&̱# ipITE:1<ј(.|S#d<\ZUw(C2arx]_z:ѿ"\npF(^{Is5e#V咏FejZ @֬E*V ICì]uNg-CJ0fll>'椅d0<i]B@S&s2 Ք~L^ T*6ml d×%ms*6_Fm%Y@S*1XEޛTPy?l5OyNR':$%S(LJ3fk4CZD }OOa/ )ͧz>^lLg;uӫxI(%sꚰ̃RKG]}:n;%ΰM@]ݶOGB:(,L Սm@-%ĻkN=`w-Lh<R= qJN>5=z$KlkPZC:PN^nf<&4 ]KtD(j^䀵A']ڌ:mCsߋ#W`%m(~:_}ؕ-aYj㫢Hbʇ6(m&F|YI^p1uq۬ăr#V6GAhѝs`b~Sh-;x|pM%?觼Yѷo&3]< %:ʹǒ xR^ӻ Exz7dK`.K[XuH翰=P}[\+>ău\`\ =j~%Y/?"xj3JRM/l`Fz~P`Xɇ̛Y a}65TȒ7(Ph c wW94S~Vy;fs܌sl +FŃG1!bilmt1r.%{{Nx@OGR{LK%`9ee>`f6ow^c,O냙?h=a!)Cdu6~>gSy4!Nw+#LW/M0X/ɕoYXZj/ʀ$4%yL{YAK͘4-ݩg%ٓw`3ڈЉrbMs϶Lv3N&Źhf3S(FaK–Ih,؉Eha%kd2‹ʼnhw ("o‚%>$k ˅ӣX5^H#A^f oUw]ЕY|.m.-ť xс{(oϭT' +L T2V@mV|H,Z'_C%(]dKL6c Ѿ;!,p_y^:6sXa'P`RӗzǨCƓTZ 58G_CgǦz6V‹~ }JqXq Fq,Ζ",{X!T1 q,^^2.W`P\ #j"IFlDZVyjl Gec0wJ6c9s 4IU_N);$s 7(ZJγ:TAoW4e),߽\%cRM FS❁{`NΌySw9&@|0\tkBx*W8լ Y =jD.eT*T , {Pz }cCBY/!O- {fa+ _hI؍FLFF>K>w؉񭢱%bJĖx[SY/B +)Ln)`EkDrUF({ o,d,b+΂drRčm5)}5e,Bbb_첝u(1{^:ISIy,ǢsKz]-!rODbq-&_16k2*fh?Rwwl퓨n".2vFOmзyv3Hybp#PҷGAז`#4M{xkk@VeanTT'ٌ4D>DFݴ^ sJ;/) ˆLEgFFFy*|eeS̹ǎWBtOT}?np@ՅBMi+ +Фg6;%VuݎLVOPN%WOGOtSa%Wϫ>򪻊(rޕwhyտYEgyхGIh7ŋ1G__c,>Y!6_dN|b :}JT##wʯ'< *@+|} +l%On2|2vi~P^z}\~/K۫O g1L&BQgA-' +@W +i}jm@WW}gҭ& SV}㞏2XkS1ɱ k7-s)9vdleEqE'U :uS2\TÄU$]& <S9p!; +uu$V1ymC0ܫlM=!aq/{pn{uNyZRdknm(Uln~7;ۄwpD<ۉװ4U|h[17\ vl?]38Jؗ4 +u^e Y"IO^S8\902V.k;$7+Vmn IZ?KX58u1292+Y}k4'sKjp%7.䩶V{j3'0>p竸φئܮ-zWˬecls$T#ݶo"㵿LL|j1TPF9M"MM)oo@֙p+H:<Ӷbqݨfc#m" Bm ɡ0Q:.JffZA=Z*Q5,Fr@1*56fLCXZЏT*ZBu9SEPZHQ==X{򛑿=CT坨ayd7bSHInbjV25SiSz/ h+,jo:7I \Oê6 X"4q& swHȣ#/sc?G6˃R.Hq% &'rJ^A9d~Z Pt%R21/)~%giG46xNV }>B2ΰeJ( DH th%ɨ ,0T+hC#&K2t4cf"nU\ɖ~)',& )}NRuy~q4BVn8ʣٺ'F,u@9> "Da y9y.okzL}7*:4O+{X|| Z.ڏ%hq[ 7Wq3!HZVbB=1 !p,zíϫ޾qUK &"AC3l| <\ax`8oC#X3(=rrP tj7HfquO3ewOrҸҸ#2gMKahN߅R^rnj^Å.J^ 匟9|m2{iGmU[Be;dSUJRX1騰Ml r~ U2O6BzF* Q15 z\QS +Um|ҥ,!]v/e"g`q.ֳXef~d3b+/CEVEl76dA}aY.taZ(~eZ%~KmwI&-,ĂA?% O>qrfɿ.ۅ'A_ W|9-w䄚?kMg4Zf@M̀ւd:Lq?f@TnW̆~fG 7Vr}/Gv '&Kܺ:vnElg޵"R>W!<',CxNx 9!hoFqMIn hc-Ct*sSm % 7T'(kzީ[BeEW}4&hUK2Sy?*00;' +S +UD9fL2PpmزYĔ|Pb7ɲM>CDb5faIx*,\ߏf@m=Iz=|}̡QH2 L_ waFָhm!ƯAkڽ5"q"db8Q^3jz3ul?jߐn9B[OaakL +Id<95wl~\Ck[ka\v +ohKtvZa#KVQ̌Va蕢0n qꅰUȣF~*YW@6&ׄ嶗@@Q[nmrL 8ٶF ϩh&;勁`j/p4%Oȳb%y2 v2+Mo:+Xg?.\1}*qyCIqICAzó1߅ߟa-IDw^ev>x| 8q2qRPuU^ }ޅvoRK&3a$* >dV)_æCڊrJYlh1]>"x}Im=GDV&_XK(׸_ Śyr' +&}Ů5l[I1r=Gb10sz,3 'U'wQ<#R?׾A̢JTINnTZ($eb+zxBi/S}ʶv߲Hb,՗mԻsĖZe'`&cYɱTz6&|Lf ߑmqVfVUG%P\Ԇq?9ZRl4~o9PmxLt4l[2lEn2@ +KedNO6XX)JY5 Tpg*J~e6y }c3N(QvThe*r=g/]@"!YƲj7rpO ~ewVO~B@ߪ?%ɇtQtbDV{6:(V^ !ƿzԇPȌ [*;Y٢,oK?fu|(ݷ|wO.黻lf0X\]+YlPWQ4=0|}bbA$VF!WX2TzK%må#~Jgb),RJIyb`d ++%- VFQ `3Qe; w|8cvht?7+9F[xR Oӥ =:Œj-> +& Oі49A2g0[aϯsEn*)I'eK vף-^W(~ >sB.rN4;DFw=n[(,c7QY@$ -8aI ^ƓdGT^'Ȝ HlR, s %t1@DeL /0S_x^^3-g^,|CP6waw7{Sw"!7U\H;@ VH8j-5$B``z?vH<> <~y" ~;x呕q MדN +j?:Q-Ϧ(c̞Π;v0irA(o;+0`c94=Q8gVo'@䯻3 l V cmxo-c|Y/|?MrȝЏ,fjPـix;]qy_AF!S4^pyZ/j_FjUPMNlr[ }P.w +VkʗGOmPi"Zɠ(MlC.JYNrAtPY0ť8Q;w_߅!2O(f ܶtbJJǒ %/j7#'hQtOk6Q//IOorog?a'嚆kiD!"Ljl⑤_AXV\P,;t0`mmҳy.iCZ$ַCvDo+r@9>taT5粱Jwx267>ѩxJ4y12V~7Nۓ+ +*C=MR+4e/ug /ΒюcqJa}1f]>/ַ3hLI.Ą؇6 <[eXٶ~o1U>VqrѸOi"r *^Lj]Y<6#̹ Dcǭo7>S%s$a\P `ʘa`oR3}ʨ"=%cj[>G=y d돏S0VUPَrXSK|Լ8$1NIۓCl׸Y݅4VTX=B/vC%ӎ4Ҧ|krKw% ca pfKh?W2:V11۱C(7G&Ãlbݷ]ߠQwa>ۻ ݏł`4)OF@<\뫲E5@89% 1BQo7 lo7ߪMj{;~O ^6ӈUv+r)vtfp̳H0-rl7` Z](2CD*p=]Z"5}}WI(|%Pb4,zڂvy$;$JZI(mD.MpQc&J!Q2F `<ՄK XʒJ $Ipo3IbWQܥo(y&C=.\=<$.-&Sb9)3Pd],Jɔj>exY ˶.Ơ.; GNmC5 O ;PooJ;_/zEǾ~ćqv8[\[!Ot%ƶw(D*8~koa`R,5)l4X<`ĪwqTٴ|]|Sgj M'NcD&+%RgYԠQ+7; +γlP0C b~ CAj\ť+aG5uAwl\@씄UAq;dg F@]+tcߝ$gpM8#B-$XN\aeQcgAb]yf**&>ry;D+X-+^0NJqr<턯yЏV*Y 'yC +6IngV[-GrO%Ƙ r-d5EB)&(mYI QbBrBJ> +Z#E;Si%ga0z1O80c6VD5֡5b*oŤjI􉀵Fs00eB?ch@',f?-qtc$z_SRHAXKwD%Vď{?jـ@brBڜI At I6 'A2/K,=}Ab_D!0x.3~/xJrc$4?˛aѨ1k[9Y';+5`C2Lpi&fNui(N@kCʰ evBrcHٱ>34:/dD]46$UGVlG1ᭊSә,(I(0c`K {}NI1MgcG(KTJ36P{Kx=ߌ~r +o8ʒ8 m9$ }_pz{㭈1ߙ`Z`[@*CW+َYC%X":If:j*#^ֵA越RDk vߋf!id/`ϼ L1! 浖UvQ0T>t(Vq5ڱ8 !N# }6=%eLUӽaހO@UB Uf ~ oR(?=eўh3e% ߪxNQBGG6uymӭ}D$R{)9}So}SrJ2yG֚N_Bq]Cbq 8=^gx$""F| *JJEs(%G"PDxUP6EyJt )CZP8ܢi ߇׈?W<A}CFVB;5)); eaHI W$b<>v.`o ʑZ^uvҾ EbEAcha7 ZI؆1cQÔ%BU٫1c(F$vaDb e%0M8q5[GCI o5Cɻ_K\n< +2bԻ5 Gdk#C{8+.ϭ2 0g5v -! T (8jVm7oK(QN|Fa'GE;~'} `=QBhޑS5w x8i5 NDK 횥-Ewb}6%Ƒr2je''t;k09a^${q  )Dh ͈H(~$5Yʾe_Z0fUwTzr~YAfo M%iPugʨvE+8//Ldr>|s;p E "ŀCH>``Ŵ$t` ]b/'$Vˑ/\@W.IW݈56&"}dF $?Ud]Ek%VAö{)Ab| xo#50ӟ\*sDqMpP Lmh#pP/C53=wq vI-v#@CH o6rDlbJhYΞ~+vzaўQ|.攤]ZOesިc83=`SVߩ˱6} L,uJcY٧p WsEkwFԄS!U/uEhenx+at%J ͼ4Z[b߅E&Q 2|c8%{;2JȦz^o@z5F(Gsj ` Yag"]D811D”:`a*^|#\FL&1K!0=Z!YUDi"ёHxniwYK>XϢ.r"٩Ol2go0ذ?2ywnDww+Ey[Ym(ZS%1_Ȟ ~~Yډh<"ӭQhyK; ]9P4xY*ȹ='?3V={ϚûKTIsoyHtb)w8x!XM3q':G*9S9Sءc˛FvvC6{nr:'L0ϳ 1;|;:LșflK.&Ε+AhQx ݍ.|@~)U?aaxП97քK1IPyC6jR&]5R>ݦ}P^`,BEΕ\YoQ&qΏZY.MT:zPb7JC_w/\C/ЦPj +p")cL.'g)c9ܷ%Q`X=[bp܇1hIi0;FXnd,-bYw ́%%<ݵCAl~ovoVigApD(-w(ޥX +ͣyI=G7YÎnHAR!45 2Ӓ%w[o %c|MgQOb^B=!ϩɣA^{Yp֒]p 0f=G;T8gc%Ɏ!(+<#%],NIJZLܰbQ0@g]A*?WQQl{ESx:IJo˱oJK7HxKFPdZJ)y~Enx>.4a첸tN ?>Xͱ8V:0 ^M K7ԋ1*>9 W -`\{ ޝ7#`Cރ>*'UvO(wJG;%%vc=]vYՆg/A*̵=ܢܓ~lҞVO.?3{o/#pA%nH(n逇 tu4^-Jm-%)ϭv9%'؈g.sPl\xy+z }1/ s_1_8"7)[ҫv{cx2F1tdxȿp~p;%{gn@Dؼ_"~H_dwwTAH;ޣco- rE4!4qo +KQiU; ̝@ï7)HIգZQWtc`jmMV!Vg.&c{{}#v5^_&d_ح~hMthg~ݮm?,״)YPͪ@õ+kR+b*9C@D-;`Gx?z_? \1F.x *<9l +V5^m5^^$Q=X Q,!s]($f#g~ +rv T͊Ń~b/70'&UCLVa0b04F/LDc;cB; ukjP1`=Ȏ]B̎KcO%cM6a5Ċc."_H1 HL`mz&e.NaɵxP7ܨ +yr$ vt(CAΟB׹T.S0DZ$d< jBCdPTm+gP;AU#} JHX.,UA5ti_ݿqW SKU"KUR%qWRdh"9ĥ \ +q)|\*Vg.˦*qx7DuOX2-w-<4bETsSK۝gjGjYH@|So70t|Z't_qBbaDհ zP\-{1*Y~ˎSAySp[e6Eyt{N6o /@x-lqgS&W기UDž:\`zNg%1mV ,C @{&{ +0QbK=v~~GAC W}+}+i9Pl"}gwHۼn[/R&XP䝱ZO1ZR,8IQ>/`txsAۮΩoS(إ+znlgOכ&gO}sq'ӫOmkwl7ߕ_Xxn_.϶]w=x(Q.wnڅ/. ۄlvkWm.@ޛ'-("7!;${h=@C@i^'iȷp:]"B+^ҪK߅م VV];Nz %6V>$u\L{,L1"Y +`w% I*Y +6Vl#S&} y*E V̿FWXVƛ}~U"YACTH\KNb5x['"[!'T!^Ggf.d|&ݧ"Y֦{Hom dޕ91or~BWt%ǩde?;Xɔ=]?=ĝ"戉X=zw?~$|a*6w7d :ox;N.&i41c QNN"N*FtkT.qz|+/t,4T-PvrSq3x> 6?Du&1K,{H̕^ØL 1G;ߪ`O/60u9Vߊʒ`lNtD 9O&@$MA]{Xh ad);e)+N=5Z=3UVM˱&=Ցo3g莸U8 $haF^YpQAo<]#XΌ?CVu;*QId]Cjz(--=nծ})w'y߄Yvd)b9 q8/xsz6(=[ +\Zpj^ހVRKw}/\v"Ȝ?3iiM:.t%:o`y7VXGFp{/npηL魤̼:^U;F@u @]fkVaY@fqL/tѷv +b%mHb>`Km=$̶\/h] 7́˿7T52/OS#m%VSv'1"`ꩣ`6jZ|Py~Zl\/JqP_F$EVm[ma7+o + s5gI 0e;̵Dbr-7!`Mmv%cp@1=]uF˒i#'q.!IsFt{ L?R~**oW9fQ]x=OŸQp4nH;Q朓|O:Vaxߘ(OHjJf+x}tXJ(*Rj[qj1EmX y `k4y `k p +A z:zE0qؽu?2yLm&Y@qc)ʁ(cTr.S˴U)Q3vЅd!`xt6lwn^2`zb+T~ZaXLwD@DNZ#5^W v83ްwz_h;[gٕ%ݮ\%&t]n+90Do_H{KOFUMEvjd+ZDH (k@47Vp&(,]| +j3CuWke"1VZyY%)wcXˮy(`Y~1h%@&p'Y۩H;W+x|HuGWPh5WvvNPLe ;7>%a$jO!=Yļ5SĻ}+]>BDčCfI~"X:Y~"?3-`ijuVh-eS̡+~2eEX`L<fhcﰺԲO ]51.o2X,)o|80Vtٲ08aOkj}fJ,WAqjs SO;)\!.̴9`<ю%z1[5V?L<,K>;tv[$^8=[xs`2[V?t1%,XYq3pv `"xQއ%hn[s=&H޼=F(> +F -1Q.f7)1pHxP$X ꋘkAK`=`NS0>pڔ@MvKIy~e"_cZ|/2 (v,,%"&^ȸ~ {u is"6 Q {CM ^ȈXLE" i@YKUa>leQ0Lyy;6p` \ kń6bB'؆A݊ >f^IdۀᕄPg΂L$ OĖG|rYAU*"SVE8_)_iUޢ*B+*B$ׄlЫVE[7*Ba@ ,Z#Ay/rFXv!XUX+ +p6 R >_5 bZy;PQǖѵ+EA,[Sc%V*W)=]1IW&e؇ޡ;sB+U +:&}eΎRWF%KJfXjZdV\G=|Y ^'d:W[dՑ{ZϴAO`ҋ +eAa1ywyCPHNZi~:A[mUZ |5Xqb01A}OQ>\D/Q \>0*y_xʞ*4|z]uAB?C١jIb̶j +VNӬʊPA">^bVvM>̍ ֟}\8:H/\1=;xGMX+Y.i# KLxAWyW ^f~JBq4<ߣJL C<3 Z0;XUDC4B˰* dŇt +`]Ƞ+yȠ \LHUZ~~d媴6Pa5F҂ύ?ڵk<:Z&94rL2Q:zxAlp0_ ڡ-AI^ej|ԭ&T.fԏha*=A| aK,{@`dqT;CeJHSP?Qu:ԋI V`%RWinW֍[uP7*P%,KUoJBC{ ӫ=yN3 O +~uf!ؤ/D5(M;ԊsT&vM/[Dr5LBMvg>Qg>\-i%O[YW-yrH +_kZB˘ŖtCS dΡ#S8ܫw- P]08*񰕋Cߢ^ bZт@E &MGHE h3PݶcvKwje5Քj5,aYԪnl=a>.ra +iOxqO&ioRD"ih7w4A}Գ^i]*;lkvt9еx_HTƒc\k؏ &pLKi8ߺ.֮P?t?)W\+6c4htz95,rTr -2qFxB! Fnd\-sJAm>̌,yԄ mT=!@ax/_T:J7gy7 \*>v

+^ૹ<_@^#"U(_@+±K2|Qm`@˼C.g7"Xr*?,~9Cv̕&J0tgLӕ.kW!6~ +f&~ xS ?)b\鐽iVCB@.z٨mI\՗B$ o`.%)ى/%l1Oz>ؾzp2`\D֗ !8NR;)_h}_}_M8#Z#+J=ٙ8j担ocsP&>{ rRW e_#+O |UejO!|nW"lo(ӘD^6\ H'NvG/&o*HcR_ፌ=0HrdO2nEfl*P(:S»xOA -xeWwT,O=M|{P%_VrxZerm .Xm+j7r,:_GrC^a%t[akKl;bE۲c2Q _m_8$$?]+$/$BÿET!ƺ> kg+} +[jB-B?A8t$e +o *HC+6]7Em2dۇZ>t1 +墼2ſp![6;Vޞe3R[7?yvEʏwgb>(; (ӕ7HKj˱| UBLBi,VՑM*["x4\oFuv uԃPz#!_;5%oO JN΂ (SO/Vjoƞ&,Ia/alJey: r( φN(~׵ y͋ȅ[gE%( JƸa"oިC,$ aw/*]ޕѨw"^"{a$In(*_!VմP= +4H3Wi}d_C>=>sžtb0\.2X^[1\N[Nlk͛/T!?tYL<ҥ39u7|f X҃,ZybV&&trRY>dA>RLگI` yʻ,KwKyKayޫM?Mrz6խIb&@TƇS,}zZPo*kT?AW adCǻo ~UCY o7* >HFGxgP?+:Q|G,$q!A 0ťD,9xW&{:LжUctx*ԍ{KޅKMyW䮎}2|[[/׭ݥ=nMvl3{\5"dA hx2[/UݷME5/ K]/\?iV{ڂ@T/џZvifsȅJb*sN{6p$`bϼ9;܈ɧQ1, E,Y(p_@y= uJ3?zE X00b-Cy6_Pf\hRAK6BI9 + +wW?hq˱n?2nǨ2a-{uU؉S@u$`CMz81ek,ZgpKdP6Ʈ۶(ɊqPP*458InHo̎ =Oϟ7E<3~895lYy* fSIGAK9͢LJ̨坒{)FxŨA.Inv c$yŊ|Կu ɕzAG|/Ϡs=q. ujqgP-Wa@VzBqW~C+D4*\mvMco:,1y<)Q!{<]>O^fM\`&6))K/%wd͓=2‱UWGdz6Эɋ=Э'%t<++Et8=eP#̹JY.Vg{Omح?_'iDx'BY趮WgqBKމFCqyW!OaD#W#/֣}Mބ&v_9I%o%+ 1KXQV 1(cfS(^i2 Β+5u#$GF%\H_>Sr-jk#ފ֦rrݕ65 }Ll^fǰ'c'}N,,؀43 +x78bEқ {'^cP}(&3_|-@m#eSIaw&3?i%!'IA!6w/#8Ljs6Ȭ}=h}/>6;f6$3" NcX8 h]/cFo㞼@.L$/zd+flϝOl2:RImh`8ۖ(W~g'JX9*4}6Z ehzh^;1j/9O9E +IDOBg(BeF@pAP@YװaEN21a<'N&() qϩ.Io 2r2yg4 ĖZ4~ ++FX?8 +_:{$eCvy:\itFT{;Q)PV=,bpLΘK4O(Y0/f6:y Θs_Jr `sx afi_W'QFf x6Mcb -sXDK0' +@kk<+V 5JET&Yj?ߜY𬇧ΨW^#(Җ ]"pC +;c _ѼtrM/b6//حߨcVXXryz[Ѧׇg ܯ"z }KnB 3ij8)>ؖ6,;'ؙZ^r}nGt/:A3?#;J>kPQyP t<2Y2k9m1.0*_ +V QγUr&~.OMq́i;Pu9>sbK6\>mr'GbQ30[؞ʪ&Nxm|bͅ &b8p\s'ϥa0%jШD&5Ӡ%o7dYhDAEhnjֶ.~~%U3 -dQdQxȮIX?7K}d޻.{{9-e]>>OG鱖眜[-7 DA +6/PA~z &ˠ4n- @kBĻiIzgE3ɽ~v1˔jg&TeEseN1g'fS15Vx1Y3`Q^s iXEl8L#ѾC1fTYCKh.VwL^lvѻ>].:daj^h2`HNc [{ .G9 ߺSo], :^a^ߪ%Q3- +O_fPHV!$⨝@5\gLBǧȻ-X"yc0Źѻ0.N|Ĭ0r/2Mg9l|TR$Pcy(/giw # ,Gh(@0oqQ qOk'D9'r ylBR8xScQLy)1ulz.'&ԵdyMkf L9̪803gV&>0XQ᠜,B9+c|XwDq1RLJ}9{`9;jQV>"~uxa!Dxk|Zg(b̗I9/5 &[5qw줨C󳽬Q hL* Y484na+`7 u0{ z(\xI$N$"ԡ((խ6K-[iM?v#tzGGbaԡo祓'F>eU=%dٞdwXG/Mخu)飼0#1 y9g;PS^ru"D{9 1xst&j L ؓ+TA` G+/i $+l2\w.xڼG3^Y)4)?r]`n2ee!@[[OPEq{ȥv N)f=)]y^v.H,@E0Ro<4 jk.hP2롸ɐ,_wh hpOEy$'[(B;$vXՌ2\Vyjޑ܄po dJ >^eI;z뿌oO.c3ɿhSIa-+2k'ʩTt[*0D?W kfNABdh@7zKNrprKB!'G[&S,zK:!= SS7&]2ӣ<#ǫ£Wr6I0 p#@o +{ajƇȪ37£Ygm++`A|@f[uYj\/a*lz[ F&Euq̣߃A_Z {yrj-C%ZU# oN M8"H,2{EC%4< xqlW j-Sڊr䙣 2ʣ`u!UI6 u>XdpIaźξ ]A߮oAcN!tU[X=ozucrN/Jz44:aYh 8d8j[OO$"Q@3ѳ~8ɿd |_VV;;Љ䢴` VYx14]uV!F!(_$ېEcʊ$>(nFհ|ҋ xD8ȘYNeʘS>-xӕi)i X #ψֻ0~"I4qƻ9 Vh7U酞8W%{ׯk ޗjrq-R_$P4ײ-&iO?Og 4p(k F="" FgQ}'zݵ<I,ꆚi2D=Eto7գ=fti 37BhzeʃL}v!,=Ӊ.;҅KtDN|pweq5@l[}<{N7 X/ѫ?Mlկ8pw>F DT>c- PMe%; BFߢ;&)c~ +g<+,~Pa + ׋eQ۽iMގ8250:X=q Ae_eYXEw_Ҏ";9&7#l>+!Q:z}e~5-ʁdehHx~ru6W/tdo %V:>䎽39פ$.oIN'C ߢ6;/PaKq4&Z/Y¥1ɉ:~Ό\)#"|xAao9=Tyr 4dsTs"#_ +1GzT dΑkE~ +HP`i&zI⛾^>GA.y,?S"3Ղ)V9A*F0D`k+rc)^_/`o0%OkcL~|ל7e*g +I. f}Mcַpr$iQ(,MEjVZx4q譜Qf qE߄R.lY kDꙟρ'[o>@cgo @F9"B&r{ECRy,^#^HOK0q;w/t} +=5W gӎl`T泣rx6~UeuRV@?QQ='5(+O:} ;ڃTs!;=\^|U^/P ΢ ~?7+Cggפ9cUe }7oqƯ\fz@ q YY/ x1짛pyjȐd7UE"CbS +>w][իMP]p͍QBǺChԖ;a41?t-b+(OB2ŧLχ|آU+ڰ/I8ӧp/oslAM_N@di^Ɠ4*t((29&a^OCOSGemYh5HT#Ӣ!zWJ10>3D+PP#eV auX/ + Al^/N4VpNnhj!hH4E)-Ի!usPjc +-=aO:9|hE}%e] ɧ.LZtOzUqt9wtdNM.@7(P&Kz]40ۼ5Ev99s[p8 +:1wA؊Ag`HdN(zю 6vkHrxatA AD& ߚZjŹ5t*Ԣ$ck?ay0Yn@jSI'e>cȠD1sgG?>1 Ŏ ǙmM؏Yf3O̫r4o:_-l0kٵ=xp9]f4Eu3LIP;9G bRjo!E29oT0gSœ|P*FƮ؆ ymu*@Y^Z  { gd:>Ifv_.<<vbBh"L_"DONČE]/)DXWb|'T2b'樀~-V8R؀O +qX}:!zßq^Rk|%3fv xQ'201x$/\|.M܋Nva+7#ȭlX p0ծn ,{T<<ױ?SbdʭC~v59 3WB&G=Dt +[w>u:-σ/@%POZ<&fgu>]D<4~Lq ߢ_q2`6J~^8>nO~5{R^ĆB+ćim܋';Gu1Vccqmq]GO{'ǯGIMQY"b1DQ"DRF +!ߢF$^e/ ²V1ߋYs~"J9=|GvKvOB16#DW>_#;H-̔RPyPI0TچUHw_ S0;O!̹]6hU2\IC.ySһt$ 1ֻ99ٻC82me!|w(8Hq|wA!|W0dE;ӑ~! 6s}IC:1Qj=>!qE8R`I7 űKlWg}DɃ <ızvK;\GJb:KMB͋ صTͰ"/"ԗjY0IB8~OR7^ d9@X0äQ/5 üUlè_:@TL^vhԱQiƺ/7+a57W- W`ݜ&`pz@l"Ϛѓπ6!0[MQ+YLd1I,<*=tDb.n1T<_"Y/ KB )o?ZbJ6n;]d$Db* ~b0f |kW 5EWQnl,a?bD[$v(\w}1PJ*.]ٍkB\[:E@  Z0\O +"pģG*ȫ>0&V+;UR:zh_0@[\PTXW$^dh0ZIøݴ辜&-}&mYXgFE-l6ҍs^ŐD 1Q' {!H2"_q0g}bWF_UGhw$,<(_du`?<^}[Z؍7R>vX ~w@l޴ltX2{n&$D7|,Z}Fv]ۼl,^$!&$8C &vmf{7AUo{ز7,v8tAv㰄;A{Dސ/k٪okfN7uvhk8oy"p_F_C줾$ +&ѡ>з#RoeJMF^Zl%'Xs4F,; j#|^/Ϣ0sN#gPꀿ1`a4Ԩ?o'}@r [Y&8 U[Co˛ .+Dr*丧?I#ikhcQݲh&LwPr<)bVb'OF6a\%AsNNvJ6 I2c]Y7W-T(y|,о|C~> {+xNB,LFIi؍B<PCUNiDcv nϙ~p_ @G9ZNj}s9tZY:_ 6k-~'d}Oۯkd%l&[٧%j={Y?ܯs?)d[΅N < +4Q 0V@K@Clyre0 a> dua>ǫP;Zkgo%!K?F?^~j'MfN%z$͕:[A`čjw[+(RGh.EWߥx,I>at"lXQ(Phخ>i,B])Y\dQLPֽ*vuVծ,Y7u)C}E^g&bl ;)K/2P t4A2k N3Џ|xq;Z"H9p؛q} :Ӡc}U}ba`3'5!W(J)wTJ{Z=> i: U(ww3U1L, r@ۗVm0̋!'P=}XQ(u9  B_R 2B@5/Wv`j4{=2=CY17`wp<:cr9|䆊nɚ4SlKj<(@Ο}jz\TE*T`6YqSI|4ą{r?%Hf$"dw6Lqfk8rH/rF:6l"nzmJ+rWQ<=֓hm;[Y-bhl;׀C%wiz`{MTHl6gLD/^xL')L~H<)bBDSt=^̵+s=-RfTi˫vHL].;^kpY*g 3O)]ǧ1VZ&>A/,O +DnBǨ_JwJ^s&v\^VmޔO&Ώ}0Ya4_6(%J8^*/Yzd*OPfx<< 0Wψwh S4GEn9qk5/ ϡJV~63P-p{sCJX[G7ƕc$Clk-W.OQ'=4@_Rs9]@sWln֠\:"#&fҕ1Vm=Id͐+͢Z#1P(['t֍ba@ +K)h_OO+댃<];@v6cQ/I2}c[OdĢ;@wHz: 5 )@i/:tgA+y@9'U@LBZRx φ|$@4Ƴ!// ?S +0/QF/ZꑔұBN]_^#:.8vIC,d"LZҷO#a qdb(1UFAtS2τ|Ƕvz$[ݚxGwny#m-Y]:EFk^5-익=|Uq"͍N~gH(Zw,M1z8#p) ޗ؜(38^ƿ1>$4~N +' )aVudyɫ{7^PqTbUaH,'lluYj7(J*Sb̂U'NBNBQt\Bª P!uNe;f [vPyGRuO,dA̜+|9sp) +K1 = NP]܋؅:A^"r>|eaRNeh,TLenNzrv.Cf:ŠGWJJ˝3 x9fŹRO:UMKgŅEdQ..hP"0Fs`xnMNH:eKlA:C;$Rm9C`ֲl9%uYJns= 4 |qE:_LFFh.uEL*$a-Jqdޢ[NZ !}!xHFxQDwK̅<^7 +=U95›s%ɼͣJ9b'Xa=jርcLcC|~mQ2ޮ›ۭS(sYXxsh'Aۘ "g1a+IeUԉmBEeS^dgDi0~]B@C{]kR[m[PNțTWɿ 'NƊ<Ó+@9̻{@@yul'n{ԉœ9^DX0V*!"[0\^:w$,:Xk烳qݰ'*V$/&N^3!ǟ_=4ڡߛ;p|l%GC0E[ڞL)F~ `;2h)}F"^SfP?_w߫oՀll|}E/k/"ʏ@DF"ݹ>ż|E7W{Zdu,(Z@m+Qs>*כ~sUg^W +.Wg +: _ 1l˸gei}6~)k,) w :tF|q謠.'lhd_ivfl]hYD&PwL> cZ:q[*:ŎIh?`HުᚦflDptEp9UhÁ'bD$sxD!y@U)dXBroIC$Nُ%2SEVؕt/R o(J@ \p 2 G ȠL'l7:AGnF$Wsj n -AD^5Ox>\PJ-{6#ѧNzTHˆBV5iv#(~^j7 Ay3ՎWCӹ çF`R^jOBx(ظFJ~ >/|oB0! "-3;iMV}"k;'e~޿(t1F7"!^Q:OVΎۼ'Ҳx>3wN7 *s#IrBoXO_>dL>R2ֿ )InlPG}y6h3[ @?W|FNu#G Jc_(b>#=hjM$^痓z`C4n(4Jm)dSN`5dBYZ&GΒq*#3k^cN0E'd(M }D""yDb4W ?|zXxZ|>7[-D3x-3=ؖ?|@q n$>~us2;׮uӎsCG@\X[IH/6hf' H8§3!Z?N yYhxsnƖX)L1!v)-MO\1O' R +E z61mJ1g̓aZD+ewP-PLV!$4C jPKHӃ*xQq;~3T%"i[|x?YGb\\ewxxGa S-Nf HB i[N3 LAͣBaF3ٴF`Egb!}oB6a&LH V#@LG4 4g]?!3eĠP1OZO-:)BtH2Ɏʓ2ފeV*1l}sHgK!n<9E36zO}t$2[J +={aR{D!(5C! K`((sУGd+SF:%)a]MiC! wb8){,Ъ⣾<ˏW nM2ڗl!d-x#D#Bi=cPZ(mCz1vE&E{G<\v!X_l+^KG J?B4>J%E(Iz׳u)GoigbgDZ'N7O[ȟz+>EAb_i!j&ԻUR=xj.} _4?v@Sd11ebNX3+ MNr7qDc +ѹ V*ԕIn^ Gnnى1\L0cV$@G=}'50݊ߥSvh>; +]nY3 Z+STBЩ$<׃*{$ 2jGK)ӡ71L94սh]2zq,| zo"1@iD1t% '@̢ך߉_ o'zR tB]H Q v>s\hsmfΉ1 SGoY)/H{"^3q:wqd^BVl~;ao ,#aQ>]Jz1]ݾ .[V'(c>b |B'EF3QDt\αìGf9/dY},R .px||Kq. Q%)ZGCqdz5NRA\bVObX7kĻuw xLl[b^I,b=}TRO}snxmq/Oe:Xa*%.NPC7qzo:D`Y\/:"ߔxΝCav<{}.<ਹt+g߿b.AzzުsO Dэ۠xn(?+}n*Sa"Wy'7Cb'qݍI/?q $&.D~^(:,e&x_5.P^l;0LyGX$Psڋ}$=OگvFN8Okip|9c n|v!)ޚ\lI3$)vXf$Rț`YېZ}=@O)B{x Ȍ ]ӐQYNI[y͈Rqr%. " W*8)E7pSωsٜhW"#{R uyz_>j'o)\ߓze_ڞ5(vx}xEyl0\0&+I X fLy/=CHt@UĔ7!n Ë́'t +}JR1rf4sR!aҁ$ߎ Sѵi <Ϙ>k˘IYC}օ4%}q?ߌE%^{.|w⻥9ȿ=(GInl 'd + qCGV[@f;vXqbX[Z!&یre@u@1Z訩-ոSx'g cGǂSXk =8|/s917\lP/^T "u.Rĝ#2ɕ#=&xخFeC`0NEQV }kIy?1Ni/g?T0vY>?# qt ]sєjM|L"d] 6Z0.mDuDɪz}Hpᒃ2 7.Iy/~gA k;IK(r XMk?U¢ 7y^'vMњ5\ZN_`E6YS57u}NCi| VWBߙJfWUd;\Jlki{@lU{υ~'d M[dd١FW%ӔX@||ڵ rem a 7}:zŅܽhʀ=щ-Kl.J60 m/)Ivr~”Zi2;l| fVA$HD(JoIdh;šh֦3BƱ EΉXCu<)ԓ6qwLT3&Տ>6nJ@v`ZmΫU7/CI2/AS4XS`Tj;!N M99`ݸZ Z|>e2I7R^t3Gm + c%5l4IbhNs[O%XzRp(v8MFB? +Ԛa7 ^46jǏ :mV>>=̫/ԡ z\v}|#zn/俽 +/ ?wg,=Qm׹ԥ +7uI=EԽiNR{˩{Eѹ`Aѷ}fڽ9%B݇||@@:^ZZ"㷩qwK3P{|T)(>v5[;_kBf6{ uv$o &psſ* Ps$Ō a> {L ;f+(6YA6Z_nǥgCDq>Gݎ[mAϦ;pTc:> +|iA{yZxyS&'z4aS.|j`{. `]ܓztҵV ΥD|8+{|\S0ݗ*L9D G}󝗈_]{)nzIyGTÍ6.椰(nr_g۸?/K}-Oy65߁q$ TZ؂vP3=Ywmi\ +dxۖoȟ'<~_i|.˼e' HD\ED Fs 0>ӺrxJ6แ^YFu*ia#*٫W=t=FC{vSX$+Kk"i3To6y~+E +/牗p􇵿PFBW1<gIsߵ'0?6zdN +Np|KF 3FF(܁mӯOHL?` +;'7!BZoMo/B=3*)W,]N8i2TƽBFJO42h<@Ed>;XT +>)jOE + Aki~x-n>EA!D`%TaG;@[i~Vz`:]+A"a(=#=,W2S긼_~TɍS`4"kV44Zc˃|#K)<s/Έ=9Bk0u"1>]g:-K(pO+dλI ʆ"_8hZ{L2,3ۜIo&%{iךT, +Opy G头XK/ 3*J)g%bדXE"2BP'Ok(J6$uBk)6G`.ƺFH:Mk8'IGߗBx{/w&{f>>`J=x(͞7&Tb=c)_zPIw 3г}ld~ _Ife岇1ӭn~m&>fIs؄Q3Ĝ-l*pJ}U%!W5Il]xs#RE+j2.S3~i|l*s";`;C˦ȯl |OGn3@֎3zk |u) ?E.ص+fj[MeG]jWfN5=eOjνZ=ٷh^^/=;X쇢Zd "zZ$?j*lk:|f!ՕtDԈn ;EA=@pc|S5=TU$^~g}5oK1QroU&({g#Mzb{.Mڎ/'~jj8=UmOɧW۳wKwk' yG6&4yߺzqfvv :^,._{aQ+bԼ$FVwD)K *FJC C*nH)$v_V3L,ݰbԬ_`j/j'Y +uB-+m,< ͎yZ-#!phL `sa󙛐o6H~`WB,ªaƯ;%8'7zJ}`#VAEUf/}Hp#yȼ0yRƫ$at{ x5*T9; 竵w'0Uc +1~IJ%h>^IJ,kE.>|ykgnC$ܘ@B|4 ~)}SG3pʝںAmL/NO%65l1}h`sNx؇خvge›vVRyk\C!fM7vn>UxYKp_Bhpsp wTP8>[כA~(Bc6W 1g|Ua=|'*R25k\KVJsPH.!wpo8<GliDb+y%gscYå 6WI;+HL~.Ԉ~ͣ1ʜ/~4g!z3Yl) 4Xf7 XXb_&I isei }spߵ Poz#xZֆ:˖aʅZ< z8)92'}#9l|xIL6)nSUٔ5i$l-4!Xyvό|sW@̝^O wdQE@sSܐrYoE]Cb}K p&/8:SSƿ8 +CP|)ۗ,O]1]Ĉ|>%@_[m.>H`-یr݃kϡ#XS+6<5{e86Ѵ侞#&?S%Tt/Sszt)[0M +[ Lm2R\Do(2U,sI#BJ!}E_tL"b&5vo]Ր//>uPjC[t69WqR=hCf\IIC/kwƯ~9fb=֠]k1~E♤KG]U#Y@Hfd$CCJi8.URVۘ w9QMŧVڰS:ٗ)0T†P +l'G#}O9[cQa'VE(e-у3@+=p:^ +˪ষzRF0nбૄYCwpkqV +n,<u3Zv|[%L(E4S%ƃnlBmlr=a?;;Ge0V%X m3nnƴʯۡ0y5O]]xxPek~ǩfXV3e%#eVo9=Ǝڍl2;% \ .Y£Wu7,=N` DsͲX[^SV25t' E |=w:8k\'JH ):E#f +eI#Ϩb_Ƕ Y>" ߏ:h5Q&LR@(UI(Y^6 +[aMm͕0;n"VeJi6gBɽWbe +wQKD4>>̴̈́C6OvzrvIԨ^F9qxj+)+';f|j^vM1.Į:Ad5=@áka/MNtӻP1Zϊ3|y?Xۆٷ<£6crxj'"f5`nWp̾<݂*n4Vt1A99 K9h㗋w"z  cg +qeZ%tոR:y25z)sʀJզʠ7l<p2믎ږ<4 kIȶTT2_++JF8g^[ۤ /%;0$vjmh˓$ +k%;,!)~Ĺl23v}}E75>| 'Ak`?ͩ,mC ĪrA .m^VhQ/瑁OYT˦ /bg~Fʉg&$44}բZ~ +J#{$wO9;Smz`9:H(-ëի) Ϣ>O / 1H JF/&͕LߣeF}i5Rd/#}4%B(x2cN;NlF 5~%Ao ns{[qđ>UkZ js5]^ a6.So^j6Y8q8֧S%ykGh(6ebr!S.)E٢W jٓl̋1❂-}nVtcUXQ86U١򲁠ՏSB/ЁXY/>[B+0S'؅~ CQA3pV jTh(Dc:79IGOF/|'Ŗre >h'Rf!2 b ^?\hV/ńRވ.uN (W*MPn07!l}c/& -4!]RǛ [f#/C +:JlBRC'-N5|J0&;]'f|8ۂE }C%<)EN/kꨟjEqN +?/Z, JjR, 6G.m>̚6Ftcy`7n&:՛hj + f +R5OXz!}hNȇ.m4f7r0|ЀcE5o̸\#i4y( θ GSΥ'필Թ4: Υcn:8J7~g? u+[I,zTҷ{¯} 4NT@F'?nx1A[o?'YPqzYF8hk#P,v}icv>*35}~aB h\Щr#6a-#ͮ|'Ylɩ3^}w9?N%"f}PCRvh)>u8SJA`۳5˸Kʖ tՆ2Ks_(nC?ŴLxR\QkBγ K6죾3NkJmvkṀ&9(Q&NSUXtԅ|Zh@ZS&>2nO63א+l|_bOXAS:pE`A`)>> 52@B30Tr2~:}tHsa>xOݟw;Y軩.K'CA1!t˧9v. O.oÎ:'!PQ¬}@9hq;բbuNdU/U7^S@?#QZNR.tOy`UF4#AyG +kS@ ӃA1:}zRk[{=*V_ `TK9$2GN8}]h zFz0L]0jA +3h]wB3 .P%y$P@B19@2WS=*qah_tHJ"t%x7\Mnq>.~;}c?b'5U?MJ _(L|}^ dKJk.|#?@ +q-(ja5gEYYyfA]" _W[oJy} l?55>~@?ӆpz9z9z_ [[ :m!QOX?.~>S)zK(CHxiW/ꯒNJn`]ϣS~GJ0??;Luggߖ_{ќWR( +Yr@T2\{Yc}}hSDAZ:ZNV^~S@m z9Ü3ga,CC?Ԇ}O}NDuCXu5S-5=wd +k-"Q /. t<Ј"1jDљb&ZT+z@˷$GpOZؠ#jLqNT ⮮= -K U,DG5C6V  c.Z%uJ^:A@  fS6.1,,³=&Û\9ʲ,X}Uo/`O_Wh4CSrl""FsP[d<dEgD7& 1Fk": ܽyl?DŽka7 +28X jfҟ>=>6M8#)gӥ0"t%xZ|XMư0Ê#bV4(7'iPRo:0F1KCZl-@ŧx7P|[OkحaqW7։( >[G5|ۢIsMLg<!iO8텫8i+Ҋz(> Ŵ6OVܦX jK pfY)((%mBŴ3]Lf'%{BÓV +>)mUyXڦ^4ctJ_. ЭK>f,~}!O<b.>]٧O>]}&٧,,____N:x@pu¬-4IǎNG(!LDiDž:2 YÓeO9t-w$ad?APZh4{X3̍_[p7H&1oyaAd{kIXQJʹzfK-X @o%iܾ<USܟ𰫒ceukLlTu؂Ƙ=ԾdlVեDlmH[8ïBi,_+. +;=jŽNxIhX+Y?o}>ă_&*Ft燽3q@4m3bF.!d`oͤ5jPc5XWf0x3ad wqY[i,9 AK>|"ej jؑȟ]*YDK'nߩLڎ69elltZI]z*29_ª"C.kNf +I=si詏 sQxP^͊i9L\.)=`#t6gc )7BH" ,2T_Ŀ_"lL/ +MBԠPLڛr:Cñzo5 gEXptD dox&p檉8#̆BBHupF 0SwP?EV3hXe;\hQ`W03٘O-N9^ " &[ܕٵגn0|!| O^۱z`wkvvP 2w VJ Ĕ,WlQF<My({ei3H 1D4   r4nt}¶ DbvC M.3̅MJ3@l +cSyx/]F2Ήf jO˫XduIo;>GL񪋼%6ɥ[VxF +їfOVSDWGnQ줘Kb3׊#ۥE$[$vvݶ5W{E<T[>:M Wrvlk#tUĜ-J#b+Q-RNr`kV\k|ܼ":@q׸>\p:xK~/Iۄ̇ wHl Jl{pp5' bUo^t:9Uy ,7k[zA|9<_ԏ֋zV G^ӈ QK#O(a1wMDWUKAfz3(ɵE7KtA%hZlL`bڄM)s1KG`wF>T.朄w$G@&y2/v0QReaH|&0c-Y6NF{:ٜTe'][`Lna\]oE5@fAjB]: +D%}vVUf oC;ٺlwz+},~j 5#S=5oLTgt*vĶ +7H A:`pq:-v;BwV0iy#5oϺ&Ny͇ Gk:)*JU2j;e{j./U' 0aDb'f{ vFȘ[0^cGte//,JZpȡ~^cb}| +U'_(`wPNOS` S?2IJgPnvS3AXr+RĦf@abpj2aP7Dv޾GqM6΄H^8PX_1F B HvLyI' Wؤ]Pq+[&b)$q(Q"|7f@Zdb ߒɆn xFigrbpRX]ш<aYG' xM-_2#6C +ed1.c JD2eSg̞h(՗~?ckŵ|ѣ7#KwoFwFkrm6cu'k-4E/.3+gwaV}h|)7Bh/n믳0Lr()z.]~ǽtAE1KP>:txvz#ȸM;ޡ&J-7oj>ʯ7x @Zq;PL jIMyGX3 q?ifo",`9:A%&s?̓}Bb^^L2&a,[ 3)v>\Fw.%VȂGkpuF7"́OA2@x$_+HrT"%z5E +ufw +ּ#=l!LqxWnMC4azTݛ;8]exgdeiwT!U]dٸ G,\BfS_^ر81XXO3}L:ra"q/I՟`GPتN1KD2_ծqm' +0z1igi"BND?`[)qlR|ՎTǤݵń/H?ȯPO}L +wZo3 ]BaL3r4ѭԣ+.j1(b[]wM}!&6PcI8I֌[ sW`tL R偁fjXd!?[eg0m3j +ZV%0poD$3=R +<9{gU@eZ_\L-0 &(ILWKDn F)5 OĉPW>>daH+r%;8v)Yo ZfI?;{N +$8r&!e TpLLKLO~LR#z:S #ϷmF@PydPLNyx ߑ17`M``~$}]B ԤdX4\nW gfbi(LDR1E7B6-CI4$ALPJ(4 ġu?\[C.A=. 8S3R#0N&a\$LH0͓_ ڰ+ b> %`T7'%w1C XqIzQ1E;WPGPoGfAm7,{ϾW*GX9 U'W&ia8-/+LC j\6_:P,Z{/4?o|OͿ;ߣ/ ]b#b5qC_,e(fP,YxJVNԲn!;R8OOr tpK(M]OWԥvG?B)}?^7E_2 +@$zxZ}jw9FL;NeJDsD\7Y6~xWTPex.*%Q>vAWT]biMgEb=R߸SB~?['&(IZ%^I%M 4huA B,㏶4RNqEbs+v{)|W3e&ge>,W*}"\s}L΅?FVS#xл`KTV^gV6[T^r>A*^BE5QW7x\||x9v7;#N,29ݧ$6!Sb%ct:ZȖ;D,C d%-٢LefqlVR)\"T&ClMq)]l+^Gë,ǻ-I"J Wn\mZ řo dWjc-uS HGh`[2n +uWِ3 "rKxř5r}mE"gEHӦ2xYl#iڴ{&܊,+(LDXO=UʕgO/lհ}'I56MO:ab$M\)h.T(4̍bZKh֥yMT9$uζ䵋]YDU2{N@CZd0ktňH~i39k=to0줾 ++ELq8=ʬLQF"+(S2<Z,z(ɕ_VZHP10%!,B}QJr#k A熇r:_PA?Wjn9ϊQ2c#a%S ρEb\8FP +*_EklkY6ځL(!#@[Y x7gJ {zPW55r 񇧼еGD.&k i* :S2E{;*lBېt $c-qIFQ(m0C/!D+80@, g!3 Yh =!;|eLJag0`gTfQRr.uxvՊΌڴ_(Yn ֍Hq!'uHZ'>J_NH)IL*[V i2tdނ_Nt9,FIqцތ ^ڋ3q.)FAz`RyUrw2f=.*DeYn^Ⱥu~^P(es.eS8#ViA:#5gѾ(Pk"0t=?PE(%bri<ywbܧ!Ʒ+㹯羒r *0lKvы;_}9?,FgP J<fw(k8(v%:؅..ۃI7 vJC3R6HVXSu>fToT~!8ZEIDIĚDiiiE+A#Q qFz|-bM} H}BN$Sj^1@Pc'Sc7褛P.Rt7sv5#(ُ+n/+EԹpQ0cG5d}|AUߵD 589@h΁a!o^MF, yͅ.7Ri/BZf(c=J/^f+O]֬"!lQ̐1ݓUJȭ4:Q\~$wz2 \}[k 2LEZނYsnE\loz+(-:Z~Sd_sJla)g?ғjI +!u}L ({~i}\ӄ㸠cQM J `STvx@yabe6~OT⃱ƚEL*e/9}+QR>ckaV3f%6B~*NR2F{aeV>~(eFA +v*{Aad?<O?a;_X@ G~͝S$u\4_Fk@6]afVR0lgN,ͨlN-H23зڑ5J\qr}nwLP;9Uy:A dmV5V ^6 jK`inRn8|R 0#eΧB[@S=ɵw򪯽:w;b{]c5jSQl·k78Cf|X//ir0N8wwtHJYoq/$%vIH͐Y+ ^]fY-euS,Ȃj顊2Ttf絉yE3M`K! +9@#c]ج5ièz +(AEӔlG`,+3˽j%0괲Сp @JQ: +]G4ݼ0LĎ2r*Ƹ5\^:2J)IA6`( FOR&䗜#EBbj|/-z_3Eɫ(RFѻo|vmrʷFlzV\F[ a_5VqoJtl.j^nq rSr3u},+؀v><`2Qrf]K*%VD^yeX5k!NehTwR +Uq+@. xxn6PA+Pd4sEv^.G +^L*6ƕ㲐ZI(ZHY+~Rj0<5(hmpRQjg[_}%4Ine?Du&CV}(=^VͼKy|'"\"&o", 3 om[|5?>[ٛxj ?`l:CD!zk|ۢJ]k[l1#icT^^o/%Kxj+w$ۃ^j70A[m5kD !], '5C#"uCεcoN=dTq$K:7fd@yPF*0Mx?Qb7>." ᛼ A܇%0jY:ɷ!-g| d+&[Q+-2/lL 5 +͂+퀜zJ._#~"&N=sx~:"k+ʘ/ z6wQͳsm^8`MKZf3N"1Zyqzwu"4xH 0^#yВK8,I Z^\%NU̪7Bq5w-Ch莢NGd'YjbHpFI)HP?G!FC?Z>` +dN [_Cj\0jo $Jլ +Z= +؎hآqZx&i"t3csvEn$r떽 -ؤᙱ>܋mάv!*X oq͵;M Y(WDjCfn =>{%y[ U7fEWAjH͸doc\ OjzK"WҪ 盪x%3xyLŊ 8%cs53Co!{Vu,|e`,]CaMdi#)"{%`}xժkk:6Mo8sVZp,/[ˀԗ/Mvh*RnAX=Vǭr:}$}7)?5h̙:E_F5Vr%j\]guUV>e]R`UxOr + f;)V1xYA})}>`>>aIaӡDͷ $=_;ze3E<6;120>BlDcghi*ҟ't$B}TTb/h/S6v$qaO}c~{ӎg.w79GRf:Q3';6SQm#Mc5]*qmO:Ul_Fb"v(TLUٻN%rU?/-#cG'SL\ jaD<\,#C k] ,VKSO?N( k,?q?QY[\ob/y9)b)RuR!*\L0K&>5 .Vg?V%y7,dK>Z#'j1X{%h;KLDkW/!r)́+[ +NHֺS&Zg6R̔B3DmJpāJD 6Z\W"!rf3zb%jw.vm/Rkn[%kWD.EV I>Z]lK~/ u&ʹI-bZ)'OÚSir֕5]oCPgPBMwcMX˲I]fY*k5&k ?@1Ke(de@Qc,ڧq,ZE$`S.6#&>1^^'u];忤J#jP_UwMeܧdX|փH] zԺi(ՎnYMX%kƕkoM35Ry|k>lNn5iJ~ w-㕱;Ee v-m^+|`7+3!F#eD[=n&:pr>MʒLO"6_mL{ xWh |PʳBկx/[$+K*RR\u\voN _0GN\:$ץcQu%UHlQ uJlqPgV|'1'0spSj Ҡ~|"Ըl]\(mߖC꓉Զ ֵ6^V,˼7O*|0-:: X**I ,=ƒ~ [x*(RPE74z::U&8˕y.35<>.n Hi!DtEКNs]Tfyd+8QIԚZpDϖ]UX ]L:Pu19AOb(`*,UqWzj\sZ ^`ơŒ wY'e 1++ڕE{ c +ñsȗ"c㓧m>ez>)ήz99ЧL/3.A<钁BCM]bD1tjW(Tlh +驯|WXSÇjv˞l`>mg9ܸWƺDHybQ*=nN4X;Ɉ]oYĶp"YGtyZD؆]_JKf0,7[!-Du<2U!YBM5kvBݏ0OR\O2Hh8Jb;;a-K.:ag,D-nxɏX_H )m҅Xrg2S/# (x)6w|U3 _^61ms`两VhȖ9<ʒDǢzo"!*by.Ŏc,SN<8,)Y%Bʫq=l^^/0Y;@=6q :PFNqWdUХ=&u4Md_I›{%. X04'aչh5[d6hn:>w:v#Mʹɪ7syAs[ BL6& _I|>a?ѭ2eLl&_(q帛BD +b15v *ގf+_|r95ܪV*F-Qk?*Vc/0;01Eby.yChiQ(? h2_alrwd;S**r]ޛ!׺Or.<72,nxt,yŢG%O^w:bo;‡CR&J8Ȗ3G72S/㺮,P:=Zҝmc8e{( zBmh& Zh gi\cd(F\#߉9b>319РF b5}bxǭyax"OG( %=rXro^nF3Gt.8jQTI؝ǯy_Z? u|pYM)6"<h'E%s71%z7p1Ւvbm.`"ON 8|O L'0\s[ E4u0dM0XȔ2le;e|< +=:Eg;f+?z4or~yȲ1L ӵ;݃*fsƨ뫸vs{8@tϷ ;@Y\Zee +ۃz+ʕAa:<:R %$>#ΨJ ̺٦BDð(BO|A1ƫbw߆ˆQK޷ѫN nF5z[׵#=J eP 2N cT/#5JDPRmA uv4{Zdִ%ܯ@\\戝u.:y *u ]r:^muUɋ[}P7>Չf2!t :B]Y0shr┡?gU`F4cÃk>*O *k柀FBh&$yuOVBPYf0QPY(UBaGn{14hH gˑVJ/7nX%.!s#>ZWr#!3GK#;ҨuoF}ܫ,0εk?zXYN:i-q55B\q7֗_ɰ k#󷅠WCg 4HGYI%*z!^te]b ;A3dIB\ѳSGrO!ߎۿ(lŴm2K ; j+|UmJqS' \Tȉ!PnᤘuP-v@iՌL]uR +j"ڼSfGs[㋡`݌cq)\_re~=QޜqKyٯ_'BtxosM/x!FOwʊXTOXq4B'OqvJx[}TKlΕ^ry#900im8R/@km˼ ť_~#r'dA4ID ,<҄Ɇ +P +*+j-\i*Ws&|x@]W^ΨWE_'=%O<y:~1$ki-r@鍁񧵃 Vi/ 12 "I~hAc`3W(ہ`|+^S) fB zk" Q$ʎlR)⹽+Z2bW(D*OXnz8BZy?:JWez+%uw^=w؄,1j(jVR,. *FA!n;i룶UZE> H"ov@I+sM}Z{{=y^.UBx57iIBӘn$7lɻ @n}ZvLSH5@~Kՙitz4d/ %嗦9.* ++ԪgNgN-^% j(olZW.pl%ʟMjI>$"F1GƋՇÃkOѩ.ʽE9CAw|\0՗EP %|&iuSDtE:B_- ~K >)Xߨz2'36G^o~d8}7"BX96h <wD{/(fQeґWUG2Qs^XǗ?X˄#fcmeGz!ʃ +r8-sJ3d,<{g~)r a] G]U¦r[yX1a,O$/NvW-DqV1[딾[Ja26o6r/`"0 +j-/N^=V2 _ nQJ}j+@g<;χk }JW0T 5o,QqqP + Qb2uw<=aqߨ˧&.-<_BK@mG4z+AOv +]7єq-ٟE7` ^$ǹ  %7OUϲEeD(kpI_09[ tZ7FQyB'"1*֦8b0Ř}QU_ @%}B0.K"iuHFݤ"x}z)w9\kX"My8~x|J˿&lɀa^${I* V}p?nk)V buN(v*03W *>]>P؃S^7DBa|esR4~f#h| '/ELPl|QqLchVU<3Sq[`o +[*UCʮTTv#;*M#.=}QfRIR[b^Gu N)*>TZœҋbC池qGatwԕ_œUx))"V,< , en׈tF2( +*sGW<NMM  "T=U* 66c|ZO0况,mP6.Ƌ_E\ %oqz༢2/l"[ЪY;&3[!Y5lb%t"5r-.H,}IwLfsɳ E#%osHGW+_C29Bb̰WA谾6N/ԐKRo6!_64E{Tee@ʫYh^J`5jE5o pX9gyt̥ 9ENd./}+I+{f 8䔎:!is=ÛrOZxG nf-=ee(݁w6& +cI&$P044YcSZ a<@aPemʘ‚Rl8e6Ʋ)ŝF[:ĻoYO-s^gդCTt0yENnb!0Zf$Pq|}[`l;DȦRsU7,}=(_PL]Xo~'"o/  ]q Ұ*]Cl@\| +6Ӝ6<m*u%\՝X wvUe:pSr0.寵%}6r]*t78p-B\dbxkuKώFsE`Zr0ݒkX{ -He\C1ۛ|_rkDqBG ^,u ;O +pF"9Bp3dLqzRP +^)= ׋fʂT'@Gg +C285jCt=%#WX(JZM*檖\h0TM\U.zJ[`[,܁L+cMT|3˙w$0;EowF>ђ^H~ 9Jߓ7 -M~_6n굜pstVna>q1_J(V8<8叜/#0~V"#|ҎzN`N nj!FfbO[;6<"_Sױia`yya?,B[&g);  UP)J*m GrՇj_Ii]1R(/x@0 GR6Vzbrح 4h>C5Mf,h+B5=fqDzs +ZNkQ.r{7`qE>|&x#bs=@jg$ [  5AF34,ql`l,mlu5?\d_.>x.'ӤYu+3l{.Fq7&kF1F5*F*,3.3Н3On<̉47G µC0"c]Oa֑H)}38ܲ1 qLuGFEcC`CB> (2 V_x aܲE⡁iNWKyԡ/Ct Mg1_F`=OI͆cA}0-|`ԓX]+x)?e#tU-45[XYOfƿZ ){UʧvvW+KWeyit #21@#4U/̰qI vNi? d ,t#E̩2믾%|lq&|m.锫&Ds8[H`=U;s3-@> ߸o!IeZ{tC?t=JVWq`\/Ȟ\N6p A#86;5Vwb|Yf 橹m܎{xn7]8fvÝslATeX/ ƥlb\ @!:v fAxu''AZĵΪLե[]->P%7bgrmگqU2PPȜ& +G06~no<*mfn⵱n>s{ݘ%i/>WGK7\U !ٰHyDg/zY,;%]٪~ ӑu/%ۿ47#鐧+9ruMs[5oU^K@V#əgj( wsJ*5" +YfJ_/5nsAl+ju')O:ָ 7[BpZ)푎 V2rC5TSnu:6Sbw#ĆJ56 pednr<<-%i!V|+.:t}/1v8h-\:Ò=qpbUor3k꽯x`aa"c 3?(ruSqdP0 +yX#R7P8(}27`C_Pz-PeKFTH˒9eqֽjFAT= Of,D.j9?\+~>nBqEa'ޤ?DxRlJXzS?c N3& >- dR ZNf8P>Ό Vw3uCߺk)} >!|g0@֭XP_U3Dl#u =ord AhQ, ;*s8iy`x7߅f]VXPޖR#Sh 2zbt!QfYq[:^LjI|C密aaSR; C4%CPPo܂L)/?gbY)5׶֕s%b뢋|R!eNC6 ˎXs4SĐͅȖFN1e~{ަpDl]+Ya8xŕ ΃6Ʊڠſ-c<ٹG$N_LocdIIűϪþ;p=Z.J)qY%ӽˆ;F76JOX*2 VjxX>)3 e.dGgCML~ JGu$1$EEi+M=Wv*yČByMG6C~bC7M+Ee!"%G1X^e)+sGǾf[k7R+*Ԃ)VH)|ʰNXt޿,VD%)x:B*Mwe(UvRֲP<@7wsQ^!2?LN4M–CBp=LxZV`kxpQh_||' +vF>jdV!tRHPG`S>Eo`H:xk:v^eЄ#,3YƵD OdgNc# lXr]DP|>@<c +꡶ZnsxyI%wߠ%O, l' go&s)gp}m3&/,Gߎrk'S~[w[أI|4޺;W|>rm9*6LPkAxV˚ΆK<Р1^zN M\ۏ/ ʞ5<]NTtvz->L﫚T#E}1,m󊂗?!͡:=+< +5C.~Ja4]K$2yR(-:j^i'=_B gXE_Jn_78_?=]2x'KpGW 皾 Kj&NDz'վj]`bL[voX疘nehpjQjpU' cX9oEHJi8.˺7Ë`7l;"0M;y,z4|hT[KufSkZļnžMt;v6c eڃٛQuR LaF3. S0T@̙@lkӓ?SQt)Cd۱,݁n`5V BRvDSf]LOvPwmҙL„ǹ {sa" LFߏTÐRȖ[P3c& zQsK-0 3L-vk=<0E<%n +ܷѮkp#<W0e/{[gu+eTtݾ,+Y̰\U)!AwbKS֭_!z{|k]5 5vxd8tk5NT|E 5JEfwJ)QvԐaUw#^(*cAt\z73Fe5p| R^"e i|.k}s>w~.{sWIt{@~u\̾+Rs.6mU6]"66MSMMyѦ6Vb.̭z +qU/#I\ؑsFڴR; 0u(ecLE(Z\5yc&uGq14:%\U&QLO[Z=<7zAD"@BLn!aWE)EE0?Q +=n5si9X{,rm\p`cc!8gn7?c˼I@1G/[[GuQ8%\OT0~}`/HT[h`4`)1 f`0?@v~r RT/0~Va/Fo+ *19_, +kg24eWdN#1XC8ޞnL)r5ha#Y{EA܍`/ G)ÕT!0+ vsG[x#ws,l+ԎvD>"bs#%qK[[:vl5䙌`u o""c@DBjC"3?n$4o\0&qQĝ}#dao\\l}}Ό~.{S@Js:99HiN'RӉt"9HiN'P6Fi86rտ {ܩujhTWۻ3;|cR<@\cgx5NV9(b6 ֭g-@_ji4cyi4o7Lg|F3>J2V"hU/J3X׫?Y"";[vzgo$P  +Z}0o#nprJG-08%,PV ,煖fuuI2CwzgA6[V83a{}3<[:X73Od M \K"2 l9RH-lc%gacIԬ#.c\|BräNWLE:tΗn)@n9aQ[pHEۻSy Ybnzx3C~3 =g4.zW-BFpȇƦa1Ɍ⹗ Hl9&5 k7a{`&%!aA fg+9w_^:,C||Vp|W= šP]M38׀3h<l, CtA{ Vr=L|<wBײ/ԏ}aqASy-{ag ʖ#1aKiLes?*͍zW WE#[ﰸ E0+~QTlBHÊ"V"k|r"G3IWp +'Npٛ:nD7MnmiXzrFm6H/Jp?+[+=iA˷AS,J'Ӑ?XJmY@|3W5Lḉ%\k0$SxQ_o~!InLǷu2XGfuKu9?+|A gr%u*xJA}ZŖk?~N@1 x#LA T%`Հ9@lDWB+:L?UϘ>4XخʽrCg `_=Z++J( Tm[(6=d6^x,#9NYdFC28W8C,n88A]T]_"-r%6-<\ć(bйOwyqw͹ܤ e䞿ԬE7pʯ ]\(9殩m¿ǝ$*j7,hen {ab{`ILGU8E|]IC +Vr +(ԡ&f|i}qjA,:4*z+1-e"AW%LkZqoΑ}Ǻ 8usn!\=78XDv?^+))";Lø^ d[JHހ#=,0f]=*'[cϲm0:b_9;X*^ˣuރB/WxOoMyM=VIM)Õ,6e;{, =-eӭ=e_Q h,m"'[RȚFiKJe\71dnת +5Vf]ބcy["߻i?| >0cF0Çys~ Ŧcy\`(+1{)hxʮEN9<<;pX<p'Xi4.ud2r>sP5&j͚_⋉3]GGwx+&Hne.-CE;x^؋}fMɖb˻KTe͏]@EbڄMwзi&j {ka VANa5Nc=Ӊ9-3pnOLBQ"݂`Ao{e-\uY+yDp<6[y:8)㺰 zᖇrEw"="_h߂p2/ߑ<vʿ VKgnUW`+8hb'UbBAa~Uy/x=Q{9eTW܏!%.w!UrzC +kʖИ@f"Y-0왇p`d6/(#D|qx?~%%U=nF39Ӫh=;Q^GO, KrOcĀP?S\oe KUŷJIR_%US A5io(w\_BW?T%ClDik)8QSE%DDԬaWIG?[*$F~4&Npv.)i09&:10);g bYW湰p[޽R//9KQ.^ %z[''c3']5-'tP+& |2LMrLWEt)Oq~AR+&1?_ s6a0 TQ/ |jiH%t06RbuT&f:|wS 2< Sr^yʲY4`"Xw߯'pUdR7砩(.xĠ; +UNTXt#gz)E#D  rA̶/:J>&$V1+Dx%z +kz`E~cEވ^i=%ad!RޫArm3 zhʤKWeRj`sXe.3 s۱؋; ޚbtø.EX?$PagYP-ś({q^a[y8op{D.\ʺbUoxE44%pWKFN BäGA/q;zFHgՠn^a[Ø9Y}Jx-UBcAv b9` &)OY,='^«kJ+y3$d+5#>`Zu@Yd0痆J.~k,t+-3P5S,Fny[reҋT_M24 \2 22UuGc]8eA7CS6 n=Z&g@zMQ"K7"{DZ褓̗Is%KU"Dq|#yl6FFۚnpށ;ڹ/O(XK#(973Otb+fN#3!GAjNdTm6d L"LF &ǃE(CIū86ol<| 0#,.Q_8 U /ɤwe . D;YuCL!f6G^ O3;l&,4ת<Հd\~rrD } +&> ᕯy(. pm7[3ΰ"$nᲥmWVFi1gyv¼Ճ?܃bCm=xEp] !YRnm C] +Lf`H`aty&m 8- _܁bĠۢPAtKXn>FXh}==lҬ'YH"h$ɆBCI =v:2-B:apӕa d}?"]{vC'lr[C V &a_D?/_poܑ20K/܇M"oʹnA)GcsiPܯ*!yC|@[8!{W oCbꍨ3"+ -.\k5D8)d_e$bw߳{}'M?Ԣ!"*TdQ{c`;{5{z$U{|mhNK~ԍ7Fmt6/l qlY.t|'mR cX'{f鯋XZGݙ47ix+/5:ƢeD0̽Z@_3Hnf.h*Gt9p|&UPCK\ݯ0}40wi o#gP/_`%qC~o8^~ %*f9QKmS&N];X2ؑS,&L) +f1AF9~GET8qSB^x|v6V[A+Lg tnvni 'nPVz9eCٖ`_3+lD4wKP Ԅtj +;|F=@_z/^kJ!RC^c > ec_b N/bbvVI_<ՆԦCS۳s U꺳l=[r,!Y%#azmwi2l\Uq)3}w=ޔإc;L{xv_]) no^tQ?e/kVfdy'9\=NWY{n@[z, +eOM!yX Cw0@U?_N;i.l^NVw kaQf؋|<2Rdl$f)~ ya60Xx;ehʃ)7v*p6>f9D̰3p&X)~iSuTSMK^j䪲tf-r)יEC}7US.5aLSƸcA)G # +!gzTBӛC=aLk b+ސV ۇO +H 2-R"YkJHc`ǙI2NM iusިsi4h [@)ec[(O|BA^Я@0u^R,T,.\K1-N: +h)|oo7F e9߉h;SXG󑭱o><=}ktK_D C6[Dt8>6,|h@w2TG46| |pco  S$m7m-orZ<^VOo"3"6 SVXB }MlAN'aqb~Đ#@ɞ,wa꺚m&RXݝҍk^q#hɍPvX8q -s^enɮt-.؋Z@ `1b>%pj o( IǫYXAKͰBLGK{I ݃7yQA5x7rܓH{;?~5 }7 ] CM7d ̾1/od<km,L-<*xm Zdf==Di5כcl2b)+F0"w88ѭ[UBJGC~ ãSuO߾5xwq4+G}g1O˿ɁlYި`R ~S;jJqk0j$"7ꌱ8R& +(/IJpy_f:!"Bo7RYNӉE"h ){>S0UR 0#j,N,r cnzjXvJe%$5nÈXb65|'}O[ݲ+ao@a#m^O|jhz N`L3)ӄ7L.o@6T=hd růZ4`hs0iJ1Cfc4-"n^m68E}QE+p6=_%LڋhhCȷEZh HsLy^PrˈGc쫬~ P/ɭ+"5ĉKhW +7yf,{XH!PJBYY D{r$S{MU}tiU@zqM%EJ_PgC`zQuZac H|),U5G+pb 捿`ƕ2r8 jz@D$4amɄp,mmcR~.ݺ^ug;Kԏd؇j\fAmc" jD ke*mB+Y<-y[xt|;P+] .8pF -CvODas6XrXߎ0$WHB҇jCaYkc^C4[UuʎDfVmVew<0c4P憐4?˨EV@5:-#f'`ja|JTHoB^ +}]fV9 q}#\- jWuUuOt-̊BZ 4"~W C0#r2zJv,OO (\G) f\*H+ɠ/O֣]X[5CzE#r:.q,GdDP $\]J~i&[s˷MયсS#V$@'r%RgOμH ,J*1v{Z6آmbuŝ8xu,<2'-S%d4Sѥԑ[pi0^,OT\b`A4gwE_+*|2p!ti [ذfjGON&n*v^g0[AO%H qMId@f[4ɱգ p! UjO!dҏy/*)0")yMda0%kbyMGIڣpXBYdfz3=>r0 XsΦ|)_F?[Dɡ +o;qك3٦F[<Ȧ aMrq t +pSZ#r7eh?{Yi;PjPFĦW|F 4a׼ʽ"ҭҫ3) + p\ :rw;J@֭]*BD rPtELtj(J0N;fѯj,:^Ht /XkGUDen2~z~|i 7Y]p]Ț{ 5g]]3:&_q]jRKK.Fgvy3Q wͮ͡=ɫ]h$g؊g%nuSUϘImŇq_qq*-o;6zR{qyv-n]>1.;%HUM4=9’⇣8Owo]3Rǯt +[b^[]-a8PK ~?nk;_#{h3類J?E#X$/>C%lDc6Zίd[ vrq m])YNZ-.Ӱ˥|1).{̲!kӄ$2à4sK:Ը)7$*o{ EPZ %i>I?l[cxywZ6ߜyb櫡YLd[(cg%pE\o.rI7zV믊⭹1#O@Uץd]\MRnLV,ZҿZb)̰K+G_|kie7MӤBˏ +֒Ri)H=WFWuGߘU}ױ2[>W&*c.5oi)ZМ|IiI%%kՉFQyp=.;\"4pTU#PLhIHgu\iE:eFdfӬ;:; 0##?UF*~G0ۣ^Of4,][.lWcw0 v_s>GC(1l),&гMzd xY76ҟO8ݥw>dkNhQaπIXm<,3Glty/UQg$ 7TaȮ{اnhwl |S42fC/_&pkfg2w⦙ةeJj2A]XY1żv܁шǦdg7Hf)Z,$YW2p!ڔpw-X&{`i"KmU?(/3A*||\fՂMMdK-Q_nϫ?m]/fr/ԉ6dn-sFVw9,ms`f bGb+ 欮sk(4/s[\`0%cBtҵ-aޤAǢ=ԁiCӒiwEYRCΘKS&ζFgscHΠ=W"kGD3N/o׶Y<ލɖ=~r[ZI^(Qzˌlᜑ)JãR7*]i/ށAceFp{9RlWC"@+3 &Q, +,~)*'GҀ7Juw0Xބoҷv?gϿ3|D;_Eu7qkߜ%]cRo|!؇1}NF"cLog}ͩ ͗R>-xבϤ_jH|%i'7D:y܆:7= %xo,ʾs"£5zuh4;":E$[dR@g+g񤝚!{fvJA,BN<CCW&8@-lkO)d3t~9M4ܾ1m@U# ܨx. 1nDIUk-uCemn@ ߺ@m1'#M:[bm:uWt+G +FϱYa5]z>'@Ck&4iҚ4 Aok̰H/nK|j:ٔ/|l9pUhӇʦ$7gI]\.ڑSuw$o.J|?g|ٿW1ʻ"H]cX\RSTDy4*P^jc#HNq@I4{М6ା!`lpetK\3ke6z4Ɲd!k3qR$aݫ X"^)ho^&+˽TXc``e`pz2 ;1gdY0O8E;N-l""JﭛŒX磯 @h=؈؍$2T hmPo0v*)-t_XqQGK:UO!3Yg7ҧ35+sU&}R|V-K/*%@.Kq+).F~iŹZw +RK oGT(DIS˖5@C<@]{$1is̱$k'X$:Znh`Z2w8`Xl/BceOsDc%e1PwG%|taGg3 ݭ̫KW5B&HrUMXW G@V1JV)pdfRvye莌K.%y ͽNO1ҧvbwYvzfMT窆. fB,ted=ݗ<]T[_1Ǹ</Nf~% +b/u?UXԁoN#UDG}u-vQδk%p,쉨dUR[I:RJ&lݭY;0[5^.ݽXa_*Ҫ0'լ`V *rKU ItK-6lѼ_qybzKAy1Pda[Lvv6$<ޏy6@~~<7Xū:XzÖ-BRCTQJ:O4w53dA+v~_i7B/Ux~14mD%yי`|"* ÃXh.װfjB%A퓙w3tgXϗ7 Hr($wE1oh3wb/K0M** +`?uzJ#P J/L4nݓٮo~Hhzx7}hՂ_jJDN@K蹤/)iOc3uz mǙޡef2XoCKRI'>5@蛈#nT=z#TCq).\r(ȏ[DiW$zQd44:QV%eݢs-fpJ JN,.l_]v(cź[uZx_F8-1&8#Ga# Ed0Oc]3MޣllzF-؅B_i67>f }P zgj*fb0+jE]d"ud$E1xlW26A"ŎL ȤS_N竬ߐ-* T(HX-=+KkpYX +bJ{_C/30>8']:.nq[t%zUws(;;bsty̝Z 7)v#cږq`Q+BCOJl=ϒ=qt;ԧ끛)Yb] Ɔﰣc lnءSB7_y֡ޡ%4w{ f\{H8®?'ZO}yo珧/;&4NS$l\;#:9ޡ_L9kR?Ŷᶔ@}vhj#a})?7٤2[pOAMޜz(Ԋ۴P9S‹$]ʳ =LMqG3E#-8rşқSSy'~q˩7LPՒtQץʖ4'l?N_m˒7w6o;hw_ҞMJIć֛{\=W&7hH^ǡe~1K+b TuvW4>cnh9Eb&cqK+<$y($I6T>\͟~P3/gb7XqBG޷Ⱦ2~<\ wI1Xl#mt<|-/Z=j ^K^}:#G'laa(?ٳ\5:5i]d}1j6aryM.eXє o,7)"pˏт\U_䪸a4)Au=-˿eƊ+鈍!}GvqU3U ꄮd廢Wcf麸W}#*2c2w&E_,LL4_em>z/Dhr1v%}x:܊Wti/R7 DGxpn:qJRh~Ć)6" ʂB=M +zպ{mv*gAq.1M`kTLU#7X >kwF0=%p$xj^Ej=ϿA;.󣀲|N>og +X^fUa'KRXFMuތG_xQgRkK7t9k2x.2_锋1L lܲ`8wi*4iV9$ +M3S{ĝ\x^k9sJU3H)F"&83RhE Zi<VP:x};+8'$RHTo4K1(&u.3 +J1CjꌷS9T*bɑϜr{hOtBنÆrhf gW`k7WqQaM5gv:ݮÇ?ᇱ+ ;}!BPcjRk+SgN{ΰhBg Ϫ7l]U#]deMNԂeлУkQ0=EK՞hw+0^:-ntR$^>^z&> Ӧ׏RF cw}:3#Uet$ipF &9z{G`sR*|Sjm4K<۪U1[%IUTTd6T6߉*/Lhb*kl3R5YPLy> OŦ]Nxt'JZ_Mj)6E:qwgTIX$S1~T&~~_{+(zy5@GJbź:*{>mk-m:޻۩!==7Xfħ^-/HdeݯAinsdM:gWGک ɣ_Iey>e~ΰ0P+)-CR=IG⿽4 +_Ā܎P]!#fL>J6wo|~v}m8ЦEwKsbwoW2X-P]RM-+풘e7u|fvgNm닚+ي +Fޥ'=64w)&h4 w}ҠObRj6") CSZ訃G`U/YoO];4#;VFBϥV=08\r2}+׈*yͪԁS_+࣬e&P)$̠梯%uilp)əYJd4 (Y*tFAvhjg8N2scY2Dth!+e7v`! lΨsn :K4xɼe3ΟF倲?A=C?5BԿ<\r P33?ff B>gοX]5ɯ4?43rohNX:$ukע՟4T&7PWƤN*]cQS$V(I=& W$^QHF24(PKVT2UH噋ki=Ϭ9x&ҡ2RduqJ\CĻKI0[SB,t^쒾ᖛVk'=Vsi,\0쒊:a;lk|Fӝq>{(wsĚ=hqPK\o0&6D-b"KRfCImkHG3IS{7|u嚸x(_^-l" +zlFU20)2]R9:B'g'k& _jYaJ.eZ<_z4"rxiP߫! Uʼ^N.=Ύ̔o +:ekM=:a~3\O_Nt4z)5y)7!jzé=ͮ%W[;E֟䖎ɵG66 d`4jLgtC2bh"Gnvny +_@[EuKC/{D=?߳ +䂃BXP?HO~ va7!lRI߆r6LdaoEyV#/}le*6^̏ +ToՌC.2%(3Ɠ8fa1+5 qLL)PBO I0zG/M0%L3ԕ$D15%][=K?lv-B tLc4Ԇܙ^Px ٯR XJ .~}|{ ŷ`Zw޸t?Β[>\⑮ҝElS;!؝ݵ|~V1Gx1F~s, {d꜏b)٨ÏԠǪwP,}Uf`-`t"yf!#Y_} +Nb)+j)E-/s/-!b+cK\S 7T7-V}8ƪ;,zIgkĄ檲U:=Fs5օz&-p8 a! 'or OoMݛkVO}EGnglKFPD#|޾Ānz'̵n>9 I7vhR3^ۺvpA;e49tF'ZU`R#~)RvkK(K٠}<=5Sťh].%e_*b޲K DկW'w$nL.=n!~CAXO^icC a-t{ņ$ĆcWhMP b-K`JQ<БKD 4Ci;zqRA!%{xҕ"ٽF^pB gc.{Y<~'Т=@]ũ#VO %WMmtoc{&hru.16R _ܔ+]%*YN^5%ypcI/LN?jJ/={ vUy9YTncsye ȇ,|-Vݦ b8%$&*M"<*F.nPKvcTAj +nY|WI@VYCD"wlk8NNw*qv7(1\wF Dކ +[= )Ŋt#} &^-܍r) EI^2 9jѿZ`a#F,g؃r}nLtaj"%׌X> + 薾v"L>\ϾU[J> x ?Ar 5T՜Քm]gOc3mR)YtL0?+=շp]:nY1%omkç:Cn 5~Y U_Fnn6o+Ϫ0}t MH߅#f1R]ݥǠygUXS`{\ѿ*W݃slk|%ҦR`%Kv)ٮRٷjk\KBfT59u(!*lQV½TL"r ombo܇(RskR\R w.wW`:U:n@lg9@+\贋( 1ga +_t{,׺jfqςAwkU4NG\RGj-imj%{G9[j BGf,r\`^OR_?2^0%#B#CjE2 F[p! *Vc{]Zh2;Bf!o[yR)!-(Zؽ8iR; KX]~ZOvVr/#q/=J0kfݫ{mJ0ɘ%T9s eP4xEaYk.RsA|Z_`AL j$aAQ~`BX@}bLp[Bn$#tn*`O]8֓=4QUvNa)+*C^~~6QS{%Zx,}BG& +i!v:@*$p0/eՊ_@F ][4}BYaTł$4)Hv8Ɇl6n Tc#3r D;ނdr n 7e!sJ]:ߔ.O^kussySC\<&]Dd*ĀoCoi +m2ܥnfFopd/ =tsi6mgRm" +@,h`pI$%wݸ_-% 82֧`q#=h]?<TE]H 2+[IzW#Ցx)s@лr/6 &S'G)_ ס0RD'bkTH@rH DR2i2ML +y2vckkFɀI|bD&ga}L:9*٭MkV>\F)90qJp/ `$mWIe+)y"oM iߥ?+T=O3 Yؗޡ:ݱqI8#μHg1[֙V+rnsms W,՛bKq/˅:f=-.2v/^Ad5v/5_@ eqDJyIӿ_e=Rw%;tӸ%| ۇpP/G;7p_@R&9#IɁ8pA8])IoyH@l wv$uDl1 -#,6s|ϫ4 c#q@T|vnC-'xa8)[4M3aݑ'M%Nyv[~49g[s(G[&0[ r,Ֆ,*x#6 , J5j0Tw,h7 #sa9#.]"Pvd2A2p 0Sf}mD&`0qScLLv27p˻7V]6NтL_pG|x-X؅f©\LklKf?Fˍm.G_Pp?]C~#6?ʋL9+\[yN + vn+ Z[p"C>ڕZ|M w"\$Ansf@IjSy0|2C<]l@E>|8XG\UQSE3쳝Ӏnݤ.ꮘk!omc[zMmg^l+ +עfz /Ҋ8d=Kxf f W}uwpTŴ=GUW1e/=Ӌ~b%Ͷqg,/#oXP-zfNK&ҿ3+ IGؑˢ'"|V4;tǑs1ǜms3SfWQޣ1WOL +dtk/-72іG\1=` 1Va8>ܓ-n"E@EAiy`Nzw(iaM4-$'yxpH],s JK3PxX>ۏpV + <̰|> oT@x8vN'3fچ+Y~Qyf2Mkd]]=)CirJ) w BHgijWq]CFY: DI?3'Ƅs%3 ء- h\:*i-Z}|2Jpm*+ \dȢn9; 6t3#ۻ,DxtR 99;]9yuI</p6hP@,aS` tW&P/Ow%l?;}u6;c#}NiZX4sOdJ,S˅x|<▧:eWna[6 .1+\?ȕhAaNy @E{;!VH ךLk)Ơ& 4R\X:Q[&V̸l;" ޟ?D(O [[][ +Ģ3&k"[z.,8ec/ҬD4j-!n=KfJ9X ܂FKiڻX=V[w,)G{1.#r˽&#;奦*y̌/9f3+Ӊ{OeμnnYMri_%mrﵹnW5Q A`(Y7TS%ݨ TWe]%< xR5UZLFW7` yV}ޠɬK Iיc&#sl4H)꣥sOX;Pu.w'eQ826wտ$#A 1._Kel{/mQ\"k ٕYfKo{ Ȭ=GƥtE׼y0,"Ԅ,Fcok^(< oc?b!͢<Y]>Wu1tAl8^ Ë穞Uv|~cL %C%8\ +j =H%cv )IA+)qR`yۥ71C={0M8F3GbwpGr4֩sGEQ,pZ;q ug+-1XLw*ԧC?x: .J<:}e}!lWO/߫ BvOynɎgDl2.9]PsQkw.KibV^ع󇿤{:s<#-Mvϙ]=t?v$kU66̎e,!DQ$?|d7S٫篻e)bPv,6ɺ ooߵj~-Hf]I]Xfb3"b2(ÇVKh}/f"U\\|ޣX^C-u8އ],DdyzpQt `egJcSi`/|h2-pL|=V@\LJmJIHxGAjv~ôV2 W̱`\5|+#wؒqX_3EI5.5]5}K:Uԃ|0A 2DNx~6iҖcIHBp䡼H|Kp1'tQhBmZsJK쒒ziWce;Ԯd?b)ov{$Hǝ҉=ѥh.)1-mȂSj F\~KKA o3lXygS(_KMZʕ>JRst|.Xmה +Ґj?gܧg4HиPWRaIhm%</t?zg9Zݑi0sb55̫@Cbn +fe҇MnX$ `wh^b,"Ss7%OP< OcO*:_2t%`/:_:91U82`\u\:;Q]s>kO?|l{SI8_gWYͧ/m˽DE['<}3 ӓЅɃw#N671<eb +?&41YDa`,WULLn5"`f\Sp*Re8kic*&YFu2AD{U=ЦlKĚc|M%V֞3t.R]¦*qUiee[ҕ +,UnX$ini4N|II*v94@*:yX_eT/(Q͎%ȭ Pr4NmfGMYӱS:x6zvמ ;ٛ(e8;hnsE%Kɦ2XDGsE!%}JsG\{S?CڦiLTfa˴]˔ѕv'E7/ek7PVAr&sn\l(2 +"KC$튠u=3!]s*zߤn&bu۽Dkq^,zp赑9r/&55r7j#\203dP >t kC+vCr? ~!]ES>DZv &&mɛ?Ii_4$bٞ&_(#*̎cOj|޴4o  &R? +gᥣu%Wx^S3=ǎ&I&{O[踑|2mP)m 'QMĿRS)R8v9%+A_^d|K4O2Xu?%*#8_*2EԪUu-?N$4puV6%}7ߖ9Iֲe Ӑ$A:Hj[%WyfK7O~_f䐹 :_Dp>)錚~ 3*j5z>ـom c's_,{s  *@`)Q'6G(vvI^hتn/unTsn+d=9dd0Ƕ̱m=|obL8%HXd% 7fćͪr.$JaUؙZب+bsaIN?*zT\J\稂q`\DZU;{'Q0_WC2[vL)Qm3|o&]}ENMYcjBn[%٫BƚGX!d`?[2]SX^# iGc](,?=3!0AF F/#QF`4t`E8|[T%d4EWYT[TN6`@@#1"CM{=3L3ɷwAfzϫzUU0]x+վk螻nG^׾/Q#j ְCxJ#Cmo<?({>>5R!M?{FIjڰvӵܣrMXц.ڼ +]*pK5ݐf5@ߦg *yQӧ33C,t33#_]Zg~]7FczIcF}GkFE?㟋smso? †׽v*.oh~[{r${F>>".ҸY7p{x.YuO!k0IYf^ό tP[?48¤ fŤJ na~"aȓ'#pЀA:%r}YE\MAq8iMYay] oY'oi֟f4V(xk!Hm[T(XV(/RJ=Z^-XkIzʿ0L0Lw eIw[&^Kgdu?pZEgYwNKPMxKs7o%4&;qq+8+MM"\"? +@Zh +@#lE3㎯k_ĭ]忲Wnmg>v㤱bc-ƾC +z*~3ڣ7alITCQl FEW!'=QDL3'DA1%dhBǢhZҹ  +<u-&ЯkTTUVbXiz9!˿k بiiPD7[HJ| x# BCOӆ7h:w [:ߪLі6[JSbd&lguS]ԶQY z5g5zԎ!ʄc775Qa3ώG\?:0?5ABR6t:TOWT +j0[@,Uwtט}A_GoOu)l7k^e8эʻ)t7qq;7BbbQtS#IPwQo}Xب +TdoxIM x4HgAorQEw}|vzL7Ţ͉~&GŢCK7$ Cb+'j Nʅ%- |NS CQt݀nbGdT)ID񭱏73DqHόB~!|fH2D|hp@-g"¹U;`qDUZ>9G/B0Bz.]\b]QTnlSfnj/gLXeOcX\ЀcVH\/7çPgAxȭeE9+׀a䆲[9Lą8HvGs#`+#k Fd\%,*?}aIAeQjl,_<ޥ x+X] M_vy`gKko[M|&γ^M{Oc?xċ=Pa}o@xT)c[[mUz%kq㤥2'N |ps2κ93G.HrWv.{ (/^Ns} 'mDǻus/IӘYkmV86ˉ9k!sip`NHLk!ٚM^ty#r  D#xkPְHFH,]n~#ıh7Er994Ñۂml'0H; *a([:>'Ys1yfہ~9æ_l<ȱ5\7&>ЯPNxGLf^VJؑmI^slO$Y %TӸ 77P[r8FD~Gˡg;`g{96\ MdGC1Q~#qՐڴlxi/`G܄0!vAL+:BKM4&#2hfw+(E}uT!贏 jeN{c0 Ǝ=M{ k*0~.lҗ߿;NVȋ%sf 6^!}w?:G8G~vA/;ufٔLF9}Şp!qVw#^rLT'!N!*CR,%I/sTn>h}6XO>0OfB`60xTx*70h^֋<&zſ~jT*AaYv|xd- ˉ{@S*؜;ݯ떓5y"S]( TA4Wx2tԮQ8JM )TKL|!<䧂1f\lz +e֣`gdMdF&["U +foHϯ|bb^2?BVvXZye.a=bQ:nEo.צO=q0O1c6T3BxԖXﶚVuXS~T<v:D'^(=DȦ:DqJzw&HTZWIiF~}7]F_wz TyVq /mtr+[nߙ tg%cxdzf-'G7@ii,68ǩQ4Vm.Ef+MaB'FWD.샫19pLM"ù[5Z@Q+pdw"5oR8,cP"NUGcHO-2QMyoHG EYZG]6okԩ{ 5PILa'PVQFq”  Y>b41_JU,A =tN?PK)[nmSE +fihK%ԕ4; G F+D m c+Fa*xjʸ9 '{]d6&Or]dGrLuί8RV |E^Yɣ|-<.i@e`zm]NNdW ﮇl ^y8 +*QZ3H J\v7tNp]oٚ}R m֋gX;*^ d>q6wA9"eű1PcF} z}"@_:8Yr2p':,-`<<تv:>GAKIY'11Pڭxa:aP#xawmYnO +CJ$L0>CGZx +~qY^$ :󁐗1_21a=/ͦZErD_71v |7.Ț4]S0$bFpd7HJ3prO56~? }.rf1ANdDo$)<|!'a^1F= eEͻ-n<#-SUrX_arޠ\6iUnq҈ك] hMu 6_B3˒xq2?!'i-`xHln'n@EhK7{T'J['-M4D'TA5TH04FPt; +Ӛk 8F3$(*v% s3OҵܺϹ;Nw>=S`xy>ߑg/PЉlbsdڤ!||a)@`0] TTy6mBJ>֫\LXtjX:"["@Os,u z +]4hOM))RQttQL7Kw)ڨ"+3I[ -B(oP<~ItWϿyVIo25cģg-By}_}~_kCKC&]x.FoA; +Fa]#OI킾QQs0ױM+0TxJK`kWGUwtSf{ݼ[2-`-jM¸R0ќwG7e7cxooNz9 QnC>oaP +j/b9O qM_%?sxdJbReRe[DGʥk><]򁝟ɾWrve֋Al3C@G>S46\ݠ|NQ I.S9RCI wcX1)x&divSTuoaI)?Y5(j`3*ŚBmP#$'Ro^ #7 YF=N) Skp-p!0X[-`4X={V6 Q@zgp[?(T +k̓4 :kdj8ـMG  MGE^ü#cs8M@e~ et k8x$hڐ$=G¨Oۋ3K4f%!oObn>׋6ݙ|2 +~Q.@k- x/$9Dl>9 Am`nK?@RCGsjЮVjl%OwMM&v!t{h kMm4r9/&<-TU!F>?<";J'85ʏ'fG;emf`kyVPuu|d: k +>A3g@HkmBD?BHoF?Y-1Ck,;(ς/ ORuͥ-KwLo_ Fo_Y%rx',9*oJ! \ ^\Kݖ +eMpMw8 +<| R#t&me>U@]7g[tx)lLE7F:MAb͏,;l\EPhLcuN@?Kx0?G75ws%%;-z H +"=7Jק%}b.}'Y#df6'\V*^c׿<@3s`Jπ2O *=(+GsQCea*Ut tߧ +4;DgQkdz8ߒ0 z}.h;0};&] ~]b1Lgw;)s zF}77%F\.>;yt=@mM~YOn<, <}csZ T7'9 +$7.H\rD;hE^F eDm(ߙe^$? +HJ[Dc.Rӷ1R|FP t!Ty"YGE. F +BtGu*;n8ڿtIPAEk lBZJuBShkD7KAݎ1>jPIYIz0q?v"~h "_3scL +6f.dXD3֠qZ5~Pn̘l\#1Ѕh=75 7NzCt<|>tPS’#|1< 5tG BU*ltwHr82;]-5%7#JEs/!o='6 +"e{yG,1Q|0V]1&CMrɥ%=,R;r*%m&(.a2$u#;&)UYE)$'w;%`OD!#<hc4bt|z$K=?ƘsD +U^ӗ901>Ͽu24cN3R;`14OU 8:XPmO,Q|ԫitb_[BR]0t]Yc:Pdvt&Tobsgc14sc]! +6O p8X-]3P,8lTDNB=P= +;;وa$;r쌵\$F򵴏ͧ +iwU?D}ZsJif}"ZUW@.S0ꞟǀp$ 1"Z'ZJ^^ 8&J9JROD8@?( z9Y(=]\8"., W tθ^/M(XuI|\ftp=.EGrUt@$Ng҈Bdb蠄’NzpEgP_b|xtokF ZrJr='f KK`|掜8tcO~ aHQhueuAEVN.M`y ˽^7촎ЮGLh7z0 +vjnaMhE8|rWi?5)#U\XЫ;ҵQ7=ݢ> A>FRCq_\.V-ڕH_ͮP@-Oa)v!B˴ Nu# U]>^ 0fU> $R6/8 -ʮW tr7=\Yn[lW[֦B;F lh]t] ᶔq4PcJڹ|O`qcxw.NۺHMGoO +/u뀡Pp)OrF ,]=2]-N4$w7uTwӊ59kzFr7vxybbˆG'nr)⋑+GץˇJ|խeab!Fý5 iO Kg3HI`3494A75Ȯ`G>va특9(cۣTM#of +%.+O?Ő\;єղ|~;0HnixeA>ӦTe0&X(YScG)icl]'PM|*vs*h:7jF+#/D=Ϣ[>|VwHF^, 2@KS%mOW]vM Ke?H@+QExvܟ(x1ע3sVNڀ2/:!)T=ѿ.`Q݄+T474xr/$v4ӍR:T@?`EBJ~07>0w&[Ӓ9B4w}hӕ;?0BPEBnyͨjWb7C;Eu@_G~1B6,ov)K< ;#Wt'ICW񧑡4df"}Q"S?fv{H lm:6F7Kx )Zȷds'|n-ٻǵ.d\M@l0~ȼ\,T}(G Uos*F sPuǩ ;; mWGJqj1t?Czߩ:|e[9o> 18/ J +[P.}*HL DWD* IBz 8P EQ!gBtX5ߠ-An+X&NzL<5^98N pG![[@NχV!rf +gLdݟRלcH5btzzl.QCXE藸lh\SkHJOV2/Aqo,8UUl=\ZKYI eZ9Xr10_dr,1lP(ٍ#ٞCmOg9^Tv +[DbtzBP +Uʐ=C/ t3kfIxm׿h`&yCR朥, _;a4Fw;y,?FT +ƤuZIZi/ˉ/>A]q$]Xл/ _s(|"`v:~Kx ?im+ ={1>d[E;p p|#DžD3_\!ǥ"_J +9.jxTUj/9G1dj'J# 69?"fc ^@"!~9eho~K(\?d2(~RK% {i:\\b xDU2KuT%43Ӝ->vg TE%(lKzsc,ak%|C0/rQ +=(||oS^2ťSb,JL!hdIL!ST'iRݐx)zBL/]t s )ƆP=ch + )S@s+ +TzBLvak pCD|#AQ0Aa1~h2q"ILJơpX@qo%m9g2A$2TqCi[; 04m6dp kcMkb.<;Pa}?Q$^.L!i =ozBzBZҎ Q?>7:\o4/yV:`/FCGL5 v#F-HN%&C ?rdT+F@\/u ܪ:ܪ8xzQ +;tbO:W#jx29 svP)< ߹8H֗\{ꑸXbF? DE TAdQxy*[Iu*4XmrI'*^6Vw O(`9OTCϿZ PH FRo6XJ*PgQſVm2._YJF%LMŲsKjNUʳkRRKE:T;3> e IHp-nL``VU>vն v9U o4GֱVBׂL.nń# +xDP;_tw9#? a6\09% P[ k:xDJRPCPs־LЫp=zt:]z0Q?( yh㧢>Ȗ\W,4myKqbwBOs~D$ΨB+˿B%5XH1Xb]Iy?{Fq6:_jE]N"cq| ~vK ;qi|jri4?ƋLEҨ."i"3y|EwTG%x}t=j.=ƻXKSC3<nɉYD 8iK*PuOΧ%^KمK2'=XDx>Q\I(1O.E2DJB?3_}r=O6"sxL*;T$3Q$h4=ʡR9O>5R]z"ѥņt^$Xs'F̥`.]~JcD2-ܳ)%\(r:bھ:/oTrDϯ$ $c,,fE2O>5'z28g&/ȥ7tI]??0Vٰc=?XlBWt!"1WiZ,^dK>+psȉNtp`>R>\IvvP7/k#~B:pr5 pZLW:rWX{t]|49V+>q'h=3>nKn`,EV=Xi!1"%1&PuuCX2W=Jr(dwPUWR;F\})͓P<` ~gm;> R7B1}سvZmpԡ|`|cPcBGyv0eֳ<EgBgh19 <= nh4pX&mLxm= ubthܬ, qA5]6=' *g(+GF;6E\`*'$=xSq# 9?|IΊI؞yB&HLAYO迱@ 3 c lqE.c|j0uqtǝ/X-qvBՍ!shr%&9Œ~ʵg1^IV'3x%>+޽%^X2&$C4Rr1OnǹsVAǶ9cAAIH^}˾b:!_÷;nί_cҝ&_@A,M_/?k_;1!wӄhrݳdVZ&>Ga9dž IMܛ&?l]HP\i~JhKg"V'%+G+%mj?߉óWfvA -C- 0t& ;U2\z4gJ/UXqP{J^E(O^dIZ +0qw\C&鏍pJ]MnbĦ.hqu^$2-!T=t9As[o"k _ɜ2"߂9=,k$=G8?>D3:Ќ3:)A|>IXlEY:6Ï1>G!K6b9s'rH\"gV-ƙ@{M"Y~M^f>p!xƆZcײ]4eMsۉSok>4ɧ9sW dd>[s*IU?qҹI8@':%XӢH3#2X{=D(>Qi4?Clt<%e/s/s2f@q1 ,?Bݘo9f䴄gSCSqH'j &sFbVK4r'`-z {0>?`V(j3r[ĵq +''4 K qdFX~yIJuՠȪ@Õdb2Ƙ#%QIXpUo= B2naXL7$)9|lN3#S{w0b$&Aej,-N2ɀFJfy^Yfx7η hě8]ycJ(Y9JN1/8aBG3ǹktLHCuXN'( N-0g K\Oӓ,!ă\/m/=0W=+Nܻ KrԆ@;E#y'FBy@j DY*T~|' }f=e$ԙWg)dv'ge:b2?G˕Pg nNz 2Rqv*$v ?Nj}fEʽO^}T 2CC :56Z^7r(HwLwaL-CMz r +z}5Ii vf#%6 `3 +$!'n =Wl%cchAUu`D"狼9!/žUkz,4tgIg\ǩIR_S J]&.TD ݡd9XBƄ1$ crȡo#2X%adh"Vs`OЫ6|NmlvX'f)L8x4/X)? Tu&R_ ]PF$ ȿmB#kzes3ܶklj&ʊTe{SLɠƘ~<ϟ,9>NLcH{zUX7^4[ӌXg:*$qIѝ7t|#^L^K3zc T r/Ah%ר,?NTw*ɔ}/5H☵tP "Fak2 U1{:Dz|erޘ8}M!xùjNx *oU,fgig2=Nf^%h9geu|\ɣ͔hXY`ث + .cϴ`̷sA;Qk,LE/upǽBPCc&°# I٤8>[qxD 5ȹ MOdw& ϱ)o#)\g4ԝq+SүDe|'4U&|'BEm!1HHIYs(K"@Yhy6%}S,MjpbvڑB{ pt_o MzKyQ +j~w"? #򏓜"Cc̯ч\o;xH)S?ům!֞Ƞ. +%1-DV­}:%BAx~ʌ)(?%L ŘsH"@<zJ8-,E8xʬul. *Zo],*ls={BSaQlx^Pg& \.uM˅`] Q:q^¦(lFja +isvFJgBq[T&>ugZaE>|˶S$oJ~jzv\A.cofrucnҳM +ucTG3*?5:'uZ э-ρ]Y`)|Exxy-F2º>SoE_]++q9VlJTv}p7DŽiE /!q_DP;cc=ܥ'ɛ+cq)|{* +_:]ez3onFkEnC]Օ׶&9G:Oubj5`Kah +4`{y3e&{7PɟMv,P˚pP0ص/P#" $,^3r|[0]gU3naIt_Ҕw)T +JY܊żӶ0 N8Je>lg͊66w-QR֊*"^Vܟwwbo:LF xC_YjY+\j-4!UzD;S< n.MFbl0K 1~)ĆRa"}x4o2$> vG3`eS=D `(IXNx+fYkmkiSM\Ygsoa̾Qv6:Bt7uKNoځ[^!f7(˃{졖q갋|&E?gCpS"gڗB}h[[OzW[ݟSݓx#q@ l7Za- l7 A 3bNYXid%F5HNHdIK\, \K4]Md_(V"ƒzJTCPq; +$goT;TF.xp'n3χGsx|w,3PokVIXY#ט&G'0.!\_g g?A8`^xx1<}+"-H߂WJF8GkUߘWA":x⽈oy%7531K7l6`<?%B|]5e$G:%6- +΋D88>@z@BzxpjcX,?Gc KgA<3QhԀ-qކPpg*~H {3>u1+bGL'csgΆsY1oc' skI.4Wn9 ,$H@X '] +=y( Jassnȿ"_Ѯ h@=|et[f;,9_̱?Xfʿkt<  ɏHiY#.eYIn[/P8 (&G[/9m-&xhU|$z1AO=Aw8?-`{](d]Υm_ 5~xAK]CτW$OڣE?.y'\S#~Ap%I4yWqs g݊c,=z9MS#cO?԰>PqF%:Pxm*{V e׫Snѕ&Ms|ggm[V\{K R8Ih ^t\o-ikbnÚG^s#ymJlAaEMdw}>́-jؠ,fb#VF-'v^fO0xIrm:>\Kl>03bs(˹<̹<2$_3B䣘]b=<#1ŠSTg<L5܎<,t5x9tpnXfYB~go;\Fܣb+Tt\Uw>#-q5pf;gcu#bAb՝\<(y 󊃃"J2y^`Exp_k*)ng*Oۅbj{(5|tQX1@#[n\F"{8C^SbɥȮK8ǭlѷ7-2G{-z bI{ gh݂o3'ߍX%$ UlQ@Bh)d7W*`:o'1">-HJX!kEQ[%Bnka[HEKm%ǥKڤh&Jl30&x.!fndu+X+%@q^b 8M"66,HM2k`ػ;ݤI'l2_Fq8.),R"IG o-%[~] +,y#@Ov"I :Jr4:`2|` : nlqr=MXBp:G2؆xKnܱ8Z:aXK1kxBZñ&gHRpEި]r?y).=r¡ + Qg 4eׄcv0OvC%/TMdWɕwg)WbI\kAypsd_&i1c [^p#_vܿ+W{FL z~O34jf/]|\b%l!7/ø{o_, aT? 8"lWz."u*+~0|ԏ/"(PSk l̕*JaO2z? @pPobVa}dQrH.趕xG^{27{5,Fh7U>d^"ڍTQA\=w,yoY/iEFr#|Y_Fl]JnF&+T럱SՑ'\\}FCaE h|E_ZgCgvv7Zcw`koZCAGGͿ"?ɳ L#y=c|.F|alkH 7䍮ߜgכ4o=?rbm⥳7{ۇago3Y? k,}Hl/(?z9TO!hjMc}`AaRbD''x)Z gI%J<3R{5l-4.ђWC^jRk`nLzFxK>&j.Rsol??Ľ {G]\f<{9{|>-DώN$&WS? ) +[ώnF ~W$kE)8-d[b_<$1境BZ0F7Iw.`Y;*l%jyP \MLRפ~9S k9I*HqeIjPZC[K3G#1ܼg2WcTdz\O&PwO8`#6@z!2{āy0G\S w%y1spcHAPZ Պ_u~ɕcCR'U3'ӧw鈩` L%mNNe߆ǻ@l.A]T*Po3n-]/Adi~Ʒ ƻ o۫O!xZ/$)NP[Y69EmIE薙"+N{5SsHfP))cL7?g.I_YBj QPA +Q %Xpb>WAPre0t]CH(qfFH`ၰ,܄ fDД^I+Si*;LV^}g^x?:tኟYTZʂwteK+1hӆQ`kb89T3Q[tvza?W~ +bOh>@t ѽ%NL’]qBP[i40LK]ݸc#p{'dᱏI*3n=z6{zJLD&o/1 u%>+ąD.v3SewrȊ:nU|{4pL ֘; (}+]QHEh"4bt 2?•_gIF\nxx<(8.ʯYTT+UF VSSoQN8ɳQQO'W0 J/V/ErxoOgV#Dy,T׋͊O=c}X\lBY4G6[}RDrtmbgcq |Z~wv-{1 m5 l4]tU$Z4c oGq2\9/OهqՈ`>!356F7 +e}EY  #(,}&`9iJh_">b>h\DfdfoMo`TbBs\(~Cy8*j?_a;x*=JBNWU^kۭ,R57<-Iה6 q_x4=|D1īdEP&jCakEa,vghbG%mVAr`t6 $jl\xWP\²6͎'-Ny-`QX-Bm>m*U9ien>پt(6U-+o,9W]I wZ*iWe-[xVѝ-eL-2s$lZߢŬETU6Na#kˀXPlnVv--Nn3&y ̦LAToYP1,-䬺̧fy_5z\f ̜f +԰Z2ocͼF'CQà/hJ̔NIٲv >"P)2طbpC ,E`H %Kl/t72[{ËulRˮ*z%31?OJ[LJf}ٛ$=.s.?+&C7<dNПʒMz<P$OXnT'GEs_5-2ʡ@ roa%;8 5PTg PT).ăFf`5W Ǟ_elV`c\*D (fz"jnz^b5DE 'y+6@m:$$}O| 6X{4x)Ԭg-q\5I볾¥bSRlwc?U0\>ս|棆y ͽcDO{GkrBxB_zGUH3 +IĔy Ava3aŁdATGt"pzJ__MD/2(bޏ'׭IJ(9ŕȮ +dc [@3XMϷי͛Y8>#hͽ/- nf0Ip\@}WmKЛ:+nWkQWOu/j3rc(2,sC5֊f!EKΑAYtkdK)|>GzЕGqWfE +EE1x}ގn0V5JaI!Dݒ̞ෆ757eQIZI#)@I?sɚ(#%BPSpQuz}\k̍"u!]p0I +ShHe"JBa:dq9O u-?@' N5Hȑzb1ـ~NfX +ȄExsi " TvGܮXnk/;Iń׺خa^ԟo0Zs=*"Yp3`3zSvyĆˍm,'=R)ai~LivIo K C2 zL =޴+>t8.Ÿ O'@{EO#[bq(}Y*{}E?qZA&T|aぬ}H +&4^uO7 +mV>&Oe.y>s8G5y?ۄ%2G.5T1x.,uQBbDF6qkSVʶG~0#6l֜.otMIggi3.'A&,H]ߺǻxì }ʞ1޾{ea9:\F~s_v;f{πg ;wG\(c8NCV9*mTGecz6GtFcʵ~W^5 ƗDW6Q#]ݛNziW`,UV^C?bɭCLoQn&eax՟xý`ݘ {uѴ2WpTbx@zZa3i3~eTf'^6\mS`t/\%vp&xNBS"W@Kdҹ[ ^O&k[k-y{ڞN{4؆%$0(f4l2(Muy'Y{m@+6x^>~{dI~KoO$ zQBS,Bf#)OӄDΘ(+FHSf\"h I)EH @D?1Zj63& ,J3vp9|lg iPN;N9aG >CkrYSNd:"Led@?oZecGw:i4Ap +_^: tèaڑ{I')Y3L⑳7D<(ud8aNI!$p 8IM(2O jsj@5s#=+ 6˛O{,OR$d3>` ySvN5|RҪ6L D"%Zd4c*lQn6 `RׂkR4i)A3$wCLQ2yZS4> +X_܀-]d>h30& y~Z +?B+JH,`@QG~eOnw$Df`N88p sBa3 =-(k.GhП6 5a(iҎ,g^U]7?ÀYv؞+C7#cP͕^5e(l^`%?x=FSC1n$O ƾ2Nxo(,iѸgza~K~aX!߫ cƾegr}XE Ƽ9m ,*[ZqDYF-(E6A4vbiKc?*nYXV &¿hsIX؁sPFNhs[EMuSIg68d:\fGϑ*q;1ham5hԋ7bL˞Nb$# z)1} ~L؊{.{º}J[iՋ߿^c2݂8P*vy|{5rlٻD!WȊdM +Oڎ^ C@F^?+Cg3XnZ[n*,9hn7"{(&` vrUwM=M_=:a϶^/|ڼDcE?^3s~~=x-UzgcPl& 3=xb{?:語{б!k͝=~ADF/=ybwc=<_YˎUh?aggCDA~sxԐy o1oG?wu{KQ&[ىeHK=_JPShuzOhƱB,Z0D7!pu3@XDF*:& \%d*U⫆Qjgxk +>\[?/TWN^< Nݞ^:ܨjZ쪞?r| ,t«yZ6cc#_9% _%N&e7遅Mo#Kq Kp5UZq#uZr}LW+t?РLԧ4MН;UO n|ևoDIGٗVN PM36je$,UW"f ulmp*^/#K:5d +XljGSY Wڮ%]h\ WK] +X.sTE27xJ3Eyj6R x%4&BGb8-~E eаdX# \ +I$"7xLK%1eUPq.Ї[a~te*l`cQ p\hP-,³ F"Rx-չb;{&TY~DŽ#@0ޏBjM8N$%ݲ~ъ %_})T8XD!GAvOɓ)"[/j~RgWF,0ʧcl["c 8A"AhڊsǏzm \orLh8& +n:&d6Z牬 NW"kړ^Um(-xw&vgڮ~嗉l3/jʇŪU =iֆZ>t]|W@.)2G4Z*WцI"b7W6I;oRx(o*JZ <~Dw!y\v5<yDEvaգ)nȃjcҽ8DmMI}B 4%m#јT3##c({5ɣ," +qI;;JKh,HC n*XWѺɨWUYPԡ2 j m} ey`Exm>-y}хƺ2 +. 8²9haY1.,U. v3)rLchX$i-:h/3d +EeM-hQogEeh$et!&TZ/JVn̆I5' *ӨT%W٭L vvuG#ٴPNuaq,dM`Dmݧr`Ll8K]N|uڔ 4r>.ᗗ4×VGdob[©*[CMhf;Ld85"hP;EFAWJ/ 3E4t. #d)֤*hEt#{Ӫ<0LYth;v0*=OPn.yfʪ!eBEP{ n +lÓp7 paiZU2mEiA[@9 t;XiB]*}F`Vr6hT2j/v/؈Ve_)_T7X'k: qs` +wPvR^^ NBw7y;qH +5{ Z$x  |2I7Fׁg* :ſ3vw.Н-n; q]"'nً`QPw:P6Jq36 +,\=+߰Ȃ5댍xzn9U&d!9$h|tv쎂 ;[(Uč5Ɩ|/̀{`ݠ%Zx]V'yZvvglF;8B{V>Zp:U_bǂߘóNzGE2,'nTc79bx=' _nX{笧"TNbTz+Q)DX!(盽~@K w !y[+m6̧mo6KAjXs{ R뼚mkżC4 bmQ v_:t?j#^VxC7Ekk9kdz؝s-0(p6)W˩@M. SJ8^N*.x6*mQ6>A=雝#U֢:@J;h5p_{vS)*ѽт=: ;i'x"<%$<*VAQr+-`Ƃ"&h9Bӱ^0u|W  9 ^!=| *+H}2.6iHЧͷc[f9DDW$nFbKx5ʼnJl$j&0L|TcpCWЂ,Lf NQs;M[h1c(JD=`3?2I{P{=+|&Ա[mL`AF +!MV!B>Yo ^Cw{S cz%/2g[BƧXX#\}/c4` '+|ت7zMstIeʮֵS' 6˕ BUz6\.xRؽ{ s0q,S2@bh>GT'. PVx֕V*A?M2QE'9`6X= PMGQ=: +ƒwOg8ݹT B}P0eSa4k?{툨Ŕ~P +=-ύ\٣%UZ*B%PkPhQ":Ƒ[B6621ta݌Q<.R +9UϬ_6^dڔthOJ_ԕ.ְ5*l|*q3q?aOvmzCMі2}ɿ[u?ZlѫctZ)g#"._ cU@[E,n@Wpr'*k n9â" l7(#FmS2o Bť DUD5jd[۱tb+'zDRhQ_}@r([ֈ[>' +t)%Jrnҡ kcScB(MmI={|j.@(0g%"T@\nP&lĆ  cC{!*.=-<ޅ8J,+X8'*-2Z hswC3u`>KbjJ՘3AuO{2@5*RzGa"JxDtA:%xsnQ.&"$p\ +@1 wB#ֱe 4&{:kt6l籩(Ŗ}JPIpQ J<> ;J >Qx-?\kV"_s8aG{0طfX]?Ps$5]Fgݖ=[-H'ceO#oqЦ~ۏahpg=[EwU:ձ6>:Ʊǒ_j"縝ul?M]ռ``ӨFg+d{CAo7Kl̷/l̷VS{4;~xjw٘}Fg.%X-Sab->{ո(ƨb^9wNj1tB +)3~^iLTPqm Y7Nm?KXU[kTq7~^-w}.x3zd0РXcM8f_Fo /# HnӢNcE>)u^ Q5ei4:^[!Y+k":= ^۠?{2Gb- Uʼn|}x9Sz8<7ǃ0zbYϮQB-6XɡAh8q[)Bd@Sh"2#rS̠.М9NݥV)|5'& Mۂ +w+TU>l=tuMaDZw h+!k6F\Dv +KH[]d|b|=wxiV#ճcsn,_quFݡ2W7F,XemmڶxQ(CYE_4b;u#6e6t(,aa} {dר,slAozI"C#)"jNpS L^8VgB_e}Rfuޔ0cZ}h>쮂 .B[f,wid|<ўcTax4Pۍ%Qq (R!͠-BK;&B(%j:EvI{sL"+QZU)i7 a oif9o +Z2aHG1KfyI+, -2>)T:5)d;DCw4@ڻ^7"SdVJ$bbJO4Y` +\)Y`^{I$qRۼ\ Ǚ *gMsݫf9]zCliHE;ل@y6fTtj4<^e{KnlGgz1ChQcL\cm\_NϪ^N6Y]qvx+ʼnY 2dY=}QuޗG޹te$|i]y- B/5Hi#>tWY ʩ?Ԋg49 @…xMfy>mRJX盽>b?nߚ%Bi>s3傊my-TZ#. OEq'v>H_` +~k +ZІL K`^l~+3_q :"+gpMs_<1gJ{TWi> sKzwb7F,h{ON3soyq%f5f +%<6Ka 3 +]ۄkB/o-B.>';TH2 (T\ڃ~+.«h'ik0(c/Vh豩1 S##kӎ#oQg (`2znj黔M#j#|Eبr?t#^4fɭ11/4L{4#1|u&-#VX"^푌h]+N"GMwGOwFpwWaQEq'g}U\'6(>K IZF9Pm>T@DgP]VOI2 ɸpG=\[?g߾B]%[vyPYM>c]x¬;x9. +w/E(k~Qxd+ Yr!`1"W%5 5 J0N}a_l0Fϴl2؝HOݏ-Mwz9KՁ,,.ٌ}3X.NH6^voy5q.\;$FߢXoN'Yxs|2fPuLo̧2ڔTgUNJ? t:D-H*~!N)ŎIԋq0f\0%]e`v x> 1Юуkr*7fpK"$9;.tXKInOgs!ddvxfoѓؾ^Rr0]dN`w n8BuL+cfp:xޭo廻tt4$1-PU,w]Է?HyQ@GNRJ{"{; /qyb=KDVD0$g;ܐN] 6t+e ܄8pЍ[B}|Tlbf$yYXt5n+v~4CL#sxE!7:>cH-5pU 5;. \ 0*pR~*6,*|d$}"|Z=x%%xZdm?9GCC b;%frnyh6rZ/M] +t?K:T*t ȫNy 3 ;H?UfwaJ9LV{"OLY$mʿqJ?# +n=?q8m+ouō| 4tnH IZ{E"zߚ ?_"{;TejB kqqwQ8?m>U=T*Ii /\jC66gL8 i\6P&f%Xn +T܋hZ"+|7^e01T| +\U<~i* +H^MMc䤘"n,C,Pqo5\%C?id$۪c$V _r1ZEN_0"\0'UyVS)uB<zҘϥgPgŤNF=o==ϊ=xzqkwO(QpiM=Їd#MJlsP=x.k&[2H2 s=15FrLZZjr@sOsT=[tJdFy +p*. ´'9;Uϱ"<wX^-YS%͊N)۪; tpFOÉh +?7T2YRhxd*1a͒=2WUٸ";#Bo(2- i*lTEh~U ePFP eD,Ñ}40NY(2 El%%2Tm:$Q:tLeӠPڛʱtvp쪧DC>v`gܚG5YpM G E{N51 eL E3 M PdGPd(ZhqlQCoK\_sd.!:ýybk?xD R/ dh$~cdj 6 +IkD:e֌"x$~B'P%T?6pˁ>v+ӮSti})E=67D0P-B:U^>x?!rlWC| l"%t0p͕kseW:-*=\E6@ +qbD5杯 `J. XjOZ͛"Q~"1T{>h:SE>BGޞ5S6|*Q qё3.E2X5Wyƾ#TLܚq-80^ +P]B{xm؊p/ma5-~ґxBPtkS0VN<Ȍ6a3#(ni_%%@hSt]9Fm2 c0#e-U2A[LL:zkvh\m(42Yf^qgyɞdOuDZIPkEF%/8إ$$/o@/L772PY鴛F Q+/91B6wxX<6Nxd>|ĭ iXl9(iwJ.YV\Ch =bD,Xo p-/;{ը5B.6-=tK7.(.zwtUf AZ^dG7ЇH 28;E_ӸU\-,p,2^7Rd1>y@`>Zl`̀!5(3D c5 WڬQ&Eh,x*H @u^PYЪ}b' .Us FmP[ ?~ z!ճ;P$v_jA4*DOSug;lI<{[`3<=tژUHϽ\aP* Ҫ o̿qlbQc7`t&% 97 x5kK8KHi~GlZ)|r +h'HJ_d+@o-3hhu|[~EmцRE?'/qg?°׿7{7_R!Yh[dSzH~hJF4kKa&J0OD(uQq^)T&J ;w'J'm/i8i7͚< 6=۾e S@r%JD-Ƒ9Jn>zgt&zFtP"iy)t2>?QV*Up+B1:HA [f;G1 kMȚYfQE`n>iS+ ?En]d%sڮ6n{ +W]1k=* E7Ý] ~~hW̱u' +./B"dL:1X?dpgA5ɡ&dA>MV'VDtcaHJ^shc cxq0>߃8ݾ>) Dz4^C\%Dd Qc{ʥ$0lx +>]7~Bj9[:Q+۲ojzBWaA} wM5䃵 *AD7l@ ™ql#q-u}m\ `zUp⛾՘iQj}ytą#P:= sؚAC5z4(HPP{#G8_/xAnLcuYudHc~ uQ9Ramp\%:>%6nc˃c*qf7uH}>B#p|z|S, 7ᙄR;!Z?].)Y=r6|atpVM"y8zIƚjR]Jks\PUSw▯%Ky=҂ +I$Ջ"Nȡ%v'kw1>*TdqW֊ X'f!G/Ū*Q=?{ezNJ *XcR/ȱژ/8WNO>BiςQV'>D40B#K1U6ONyle8#:pt`'JRBmjeW*9!'cYǦrY`djCb{f3O&Id ?-%U+ElZ‚)!lч0{$Jl;Ii O2 Wx1OxfMpM*֦eDe̟r*drTv"%'g|n71$ ݄XO*"yRF<Ķ!7]Ži&/˾ Xx֔aHe^vOH>J1~eD"DxJ.SSG12]&`c?<9^P8;yR%σv^%/#<}O8eSUck9SuTaP4Lr/JüAsƓ_D9/x:ɹ6uFHu|*,FA]һ(cvz)YyLNm Ԅd\myzAEO+{5x@oHZ*u o*H#DFaPq ׸ {ŶsI*^lSTL;9Mԝp?QzV*|7 +9SCf(qzغw~1ʏTYO\EcES抮f(:8 R$F@|ʠXث=PWK/~X C PI.ͧ=&`I<ܷ4%L$b0$ S\gnNѦv;NNp'*I)B&T h=.Oj%`_J]~V[ :"K~MLT]88V&h#UdfQbde&y+RD& INfwEb҅ +{R@ޮv`- hz36{54_s-ysK%U: 6cU$+1Ċ)L&8/lR\aGwmDV-*BHNjJfta~k 怟r*nxvDv|mU.VM{zz},S&{F1ZUv*4 |"s T|jMvkv-`3T*#(ezI7mYMh―f2^j hqJQ.>2Ti^ +i \DifqH38 -"dv5cu2m#o{GRd EFt;%kS4FNw# in r@LY +pI’[SPqm&++CO8ߖ݄p,(r(C jkPh8\>a^Fռ/q.q$qyArpQ%n6ڤ?lٲ_4[՟z@$nj0 Ǹ^KybLSL3͜ho0OW VjK%hPq:֐/R5ƅ<.UEKq:u\*Aj @yf6}.Y Lm@+ FR+ 2׬ث4D\8+2^}n:9d/k*Wcky{|8y!>/!MEt 3.Tri0*6B]6]+ތC^E"F~ALd_NsNdU׻af?. +֛cFFY>Ks خ6\᪓Лs~JWys*'Q.;@j0<+\s ++|G*0*,>U;ip•kV\DXq(Q*I5S0f~䧃/~2I$X H`)8QFWAiEKi%3+<35*_O$dKċg4)YU34=bi$h/uNY~ƙQdjS쑼wG`E@`bs<DDŽi`R7hse}#axds$$ F!sOOOJa_}0.Ш (S|2F3p,;%}*ÓR{@8p SPLM@7=w͵ht q 5 tma"8G7%M5TV<lՠTJg䋌:,EߦUma_=C}OJxx{4/i`6FSh%JYǀ1}X1jl:xD$'NGO ,ObdLԞ =-+{Zx#C2Z@̾5novIQЀm ?}jy&EhK%[ 9-$7;EqG+NAbd"R2x@Wgj0s I2&F:?y=?U>AmG>0^3T"s-T<@ B%$zZHv1$y+wjWwSQz7w~ӓ${W~__%/3QpJ7$`:Mv@Mx?Gո=F\P;!d_gk980%Y-M&+ 'ISP1H  +W:Dټ3%W&TvqlFv4<zd-NcHc?8Hz֓88 :5?)gvOS$VImJg ]/*S,JL#c#dl&=jc|AW+m1x($O6a7DI$`M/DfP"0F@\rxɹ +O#2,p r2p Cv U1>+Tഀ:]ꅊMT3eP2#Kwҋ)qHp?_[2-κw U0cIcSk;: {\Toܭ]KЃQ;.^r%)?4;qgqgqׯ]wx6I `D:;Tmv1{ 2Dӱ2Fc?:Q|9 +AO!'3R2!]Ɠ5 1j,Oٺum5m-^NwgG1kC@΁>-ytͳ}{pKn}EX-vx^d{{F/faͬٽYSxkxpŴ:9fcBqr7oZ `S'yf1XcueY^9_gA-߆{1&'9+0ݕ;CͻnЖv*6Hyح猿mO@({0_fnsquI?R?3'ݶzmixAvSqu;$[aj*Mh5yKôw"UfWe@o vX +܎/a*fZp>ÆMPKW>.ŏ&%}Ea]'G*o VN0WNTN^/x*>AP$OS'Q\u5Ek@yYysǂf)hςψqZsx< nPn:F$/aLTV}w!=; Kw +C-%3Z$EO c{b|~'Sl>%Jêywt_ߌKQDgV%[?=ER4iej|L +`[  I*p/S>EGLm?6|I-Ƿl#,iy𲡘MoO%?;EJ&AL9d~qTM 5*ˁ- =@#/BSlFke&g%l/pR'6~ t  6(˩\ל x]ʒi'o)^Ov ;Iq1jTI3fRHޜj)@"y~9T*ECeOm mg[) Ұ) {:&ri3X*ѽQ}UT,{bI8EpZ,[3q72݆ۛM_wwA؎?c?n ~,TŽ-v C>n{[{ +)α +i=&\ '$ኽtkihLۅW8h~)~ ݘ{%,-_\T9CׂA(/ΒFWϗ}qqꘕ=^bKSI"JLK/#W;tw?(ND20ڛ eXVQH)yI%=Hb4TCÏ#.P&^Vz**"r yMy" ϗ rL)&/.\޺!F=D\A:pi40wf30< p8l%3`ssGLœRsOěLZ@c1'YI;! *8mE.Rk A+@IwWWd +eN\ə.lp7&Ы&ԴV +U1F;#qtV PfL +Y8LP԰ :t +::q8-2#N +08]ېC*:&`YNª7t&tL`IIiDW%h;O'O7i 9 .Z)b9Rc5{QPf tu-Ƽq̔CW~'="~\]~g!/ yT@J(K(?)pQB\NOCU&of^e# )ȿN~*#eǣL7 #x)aT=!ê Nv$AB1GoƉ]tˈ~oy Z DN,Dq9pE.I/ta3=XC=Nr4çl[tH8 t(Iw\VhI~ /ah,;S*wNsӄ'ɢa] X=7\EX+2Z9)A&I-ZHJccə̊'ZV)h;m$A!(]z@/svï~#>X'_=2@T? QI)R`DM -;4>H t%Rr[xg|l:?JWsBwz^?%@o ^J/r2|1Ձ ^4EnW^kb W$nM4m 2IԷBk. gurCq $3^5b "}sDW'!-U#$=IDiwU6"`3"T$HJ7f "hQD4 &X (]0d ގX]mRկ1J- 5v 4(曝Z i2PC.;Ŕ`5u+THhh2AZ2V)@ eMj)&]֞%1 0$75[]^o +gnK~>WrMÙ]Mcvċۓ I^n’ETuBp%Ԟ׿m¢Qm ?1?)} ︨Т-gasOf]mV%4|D]1^߰UK㕿G1nm[o|V{Ǥgl[%T^`0SwD9`h<,,<~\9_h4$BqnQՒ HJz|ڙ*VUuٿa:X]1Wi*JFU?r&}]/U9iOby3sUL:Y]](x7JF& [`}Bپىyx!L?W2"`A^pձN/e|CVח݌҉BYzP#!@-'JYfqNdQ^۴*t|[`~ `nMg0 Adx̍>Zj.K΂>F•W@Β|mO o8gVwbnUe:ѺW _kEX\u:D5)~sso|8 XGg^Z;(s_N?`sRF.74j+D$3`OA-uo&nWNB*=`Db--)@]NEAG9MFݲ9<}*﴿ SשG;pWy#>ǝ~_J|܀o*F|퇶g߷b3=OLʆa}; CaV)檗` Xd^먺o0dqa=@XmV"qU BAE#2`|0:Q9hP7n;Y9o*17&$+ ~a2>Hʁqp# Si724c%ЪwǿYH2>xM,VN4?s j>2ZG{HV_e|Ś3pf9LF=(ldy ֞ƭ'nx>/ʹU&v"FVV0* V4G^;I󀺝\ ԃw/RagoOTrЙ>DžRfY]S&+.?7S~V}=\x0g.ZVoS.A@RcVսꡘ{܈Ϝaۍc-Omm/sWE EOY2PysػL:~D㒁qrp etFiٱ$lYWBiYyLj:2ww&l*ړ0יs7QE +.|h4EݔX GO¦hOݲ~0H)E?Pxc`nUJSx4NY`A0zD-i?E!8QϮGΘ hR`ӄ-39@1uO輾aƴ7cZxziߘ1C.1R35?Ϻ|(&qor?7ʾ& HSE3pŪnLIOvsZ3: _Mi)N .@F|<E Yt?;№MG#\32`V8!POE[ > Ԃh٭h'y^0SF ~ ]myxm^m ܐOĎrpMo/uU몣Oww8Vٵw7ިݼZPk~H[=xglJv̶j:9oUm2V0t![.FPΈgUy0rllϸ18|یmgLwo1pʛfLO13/g~ńO1,m +=y{sgL?+nK +D0. -֢4?,F\=$`4˾e9GJo'A TIZ")Fزh #xj}$=nFWE=&x/⢌^Cq"3/:ˍz(4>:0Z{ rQU?}=53jcհ[$t='ȢuKry&|{y*=R>CwOE~_hEF%qQS9",M6H3; x%^P,#U]-A=m>2YVUg\!0Q3`zzxN?#‡zh}cKؚ;rg/ Ꙝy## g9f6C }0@l/1Ǫbnj_Y-Y\dxornK[5iƉ 3Yy]gNʼn%~a,MQrjqr_ygF_o_N'.>-\?'~OS$^ E?ÀT !4r bx)f61i뤙Cƌ._;-\Vq_<]oN/dLdTf_a?`6a+G7t6KqN y`Z݁vPgVhge\hF#"֝wRC[YvꚜzX$& +T<@sgOc)"F3vPlt|I]:UWDԛ HwXp 9/UǜdoqPmT=<Ja T]t1;+C[] hzA~eA0Ne\&V'FpVh$jwا:T@Gkpע':;'y8KL77X K}ŰͿ7w7䌳S֛[s7ooo1\i\Nۭ7yx5 sXſ-uNk2BsZnf*oq@k?~XyJ&i~F ,.;R5[SʸF(mY$7zʟ@7I10pƤs31n+= pf#sOd7c^1`z QK=8Qa3(oIz2V-c&R+HvYblrOyz&Ӳ6o J]7ֆ(Vv{ 0P 6MJU!uaJԯ폓.94ދmF|4lg WtaF*q6(΂ho;6?_qVkL˫u曅Xn~ARk;Z 3% HRD4.Y}}GdlѕxͥF|S^"[L`\؉mӋv欖 + f>Fvo JS +լ߉ѥP +wVxCD-D2_ҞĹIWiFV +Z% gҢȭҺh:P"礒xx.Ie9D9.H-ҍn~ã>e6r_!i7JK:lVw3E :bli +MK+wcVVJ42"GTۄ[-<}*~@a>Z7Z ?QLQFï\}j#(Aj]&FbaI_HryqHյCޡ.6xj'?^LO3+o &06I[G exηR),aQx8# akqnǘLH2C%ۙ>E5qI4տQzɆ3.:ܑ"B|n{&4c7KmNTZaB2>2L)RݏӀcE@:+V#.V=Aa*`| p1f`I|}ʏ}uc2)d aA\EQ owqcC` I  Y 6ɨh +kLmYD`,^ptS9z (zEŜst6B aDtark :"]7k<-嗳wمvXTEϻb;-~wjTQq~'ςW;c vrF|W]=sc1Y$P^CLɁ5wz,^_=汄՘  v7#xiSėWZ>mgoNXD?W;f#2&D?kGy7F^o%=Ρy(v-5p3̃'>UoCU WٍxU,]f20;Æ'zCUxbͺVÈϧbGcwsY' s3?DvV ٛʙ|n sgD ]v!)Oo+ݚDz&d󼁤)GoW9YDnf:O7YӜԙ!0a}.u{kJp7q/f]P +K*zRnPǹ.!tǪ8p_%.?d|?dQ6ӯ#]nP6&,/݌?]/1'x`ٕ.v~lo_DZŚ>ʛmq ]6of7sIXYl^8i{x揇l%X_䋎Y˗aT+U;1;695olٺa!ˢ8CNwџNsf̭;"=xi'~gOoͿ?d~b{ +_ƉeP[(HдLR +PU}^-HvaZZ7Q.ÒB@ns N,w_tbG%)oPD +KnD^֠e'Ca8λg&S\#q\3J5FqW*)ARJ.IbZ(M`Vb ~fR6Mu-8/)FYcʲ[놽 %̉Fa4&\J.GvtET#Peq3Z`7%q3v]S"ԮtzrE%_6'^]L[kf3J?ryJUbBQ{2洒sg؀5O49=' }"^|6bu |Ǵ%ho6GRN).f>{Ѳ +uhViXzmCK yDUßG֞bpuF&{}Շs]_[ m7,yA) 5Y"b%/Oj7X`U~ P>Y֞0^mK7g#l0^h]DGl [:`s^;x7,;Dl h;]A }`A1>jTO'= Iz:P; / c}?d-䆀X5U_Ȓ35O93y͔9e|Ky+>?x^w&+o'캐A4C4O\J皥ug6>4 m{s9M =lb]>w{Lc#QBjkA9 +w;b,Mq(_v:evl~s9W)eQ%ә0'bp{z,ƞGh1Nl#giـZJ#NIׄ]vyG]*ړIi.ng ӔU<(Ƀ 6U`Dc,.zOe] shj^_l.C="#x)̨eH!) Koǁw-work ̺X t vJ ۺN=o'Ɨdma/)̇^QZՅ+T+1lHV_DVx.I\BXAJŅv|ÌDO]`+Zh؍YUT]v8eD =e-P 6*OPTy4bp)SeQEFӰ_Y/R&;"͒1k \-L ,]VKƞ= ¡ N"|;+qS 3VN x:)5067& #ɲowXs q +UDc(Ƀ'SeCd^:0LgBCi,c@a@/>V/D7μ&Z(!6#h#4ô{&(dwX`oӵZ$Ne )VOŶo !z:av7v`E."D䬾n<:l#{;Kr؟f<ygpgj@}b@rxf i]v_#*Wq*/ۃ+EѴKxܳ8,ذ~n-./->vMO@3Mc\%ëǸk/R; >R"UFi-J|<: *y!OOfST!^qhs*\a'N*>N*'$U`_U.u*u26d[C,Ri4&hnj]OV>jhCwo㔅׳"e~G)d^>ѝm4¯\ahƕA!卝aF&_鉙d|Ü#EE~x: +|P[吝"]jR܋j3i.7!}pjSTi(:D`3w7 JCoZ h.=[H!uݔѕпNEO/vK^ Xw_ V8;T?>0}Q x'4점ᕌZoq:Av1G٘-> |r^`Pb +<eH`PuRW}_̟{$! +M +ށsXV[aRRz#AqKjyůbVÇ2TFʠY!X +ԣ>gA\T@5BλnH@ka\6N0&jp7OBRQ[yQGN%xG= )(Ґ Ϥ][+xqY2 KV ;̂aIp#rBA{~m1Z6!h>vٍg/ڋӾ yJٓVŖRvk_M)3 2!%#C-n.֪Ó2\2WJfɨ7q]hI>` Ě7PECأcN|,W8,} + 'az#У6J 9MW\X<_i{yE"1T#AW٩_zQ`@#k'(qa,^, +y%ezcQ\`@Î~2Y(QKFi?h}d>uL_/o S+1qz tĦ$uć.\އ5D~>=K97*Hdlݒ^ NזúE[;[\V :|H\( J+Y] 8xUGV{}b=K#t:^M^4ۙb]l~9p/6{4pq1sJĝo*=@p^WLc{w_J"j$UnݾR= !nh/CsR/f"}d1A1uuc+usAu=Yw'MRz/a׋ntQ嫵s_ԽR)GkCdxb QO}/K\b n7>^9 LkG9?<$37*&`hlGD' > b vYᄺ?v~>s`wrsa~K kQcֻ_fu}}M^Z$ YTKT.oC:! VYPCWEX!{3~e''%Q#dɄEF2q!"7ޡ:D"4b:.4pZ|N'9-nhq6Ƴ}xTOdf9/ +kPߊzBEc5/'(Fxe*BC|i;_ +#;F+MՆ`~㴒1ji + , L t`:bg1 #&\!ԙXgE5bm!%,4@c#P:+tf[jFP#U˾tQK`,^UC I1N4(½P\SL(ኺ(<ͯ*(ayD LHp{/zTQ!!KVLZd.bk99(͌߿TS,~![xKQEn6%^pܦp=KZm nE:$4ej"]3[(5,` +"$1Tިܴ0Z! "2 FZyZ]*x|3'E⢥?b'#xTt3Wp KODK%-XCS)r؏RCW%,Uᘱ-FfsnGO`Eglwa QՃΤWa&g +|g994AY[PCֈK7c +H%^k'0D2՟#$ߗWBM dkFàhTJ܄1 cYT[hml]Vʡ}Q?ͼ6H}n uȻ|̨OERW~/V@_#iv:X;؁\Gc(&tGXS)w9Mz_;ڠT/2XVDHdc.E}qгjc*?cT_ %|U6_ {4TV AqXƵfY`U|Kz"ܬ:cok[Ihٰ>%~:WP!44kv5-Rէ¬N*6ɣ!c|b Wx_c;jz1B PHVk4Ԩw@뗩8n*~IfJ]]+*䝣(DٺQ/̮n7#VhPv;&оݦCc:B@Ũ!bs%3;)Fʇ{fuZ`sLuPå!F牌GoAy'kUX7b0*Wjx 㡳Eus +-%JtMI/=׀u֥^RWj F^r6}6 o)-,uCd#575v^`|益xYJ1}Su(w>9-ë@gaZzkIϣg<!x|10HsyDAMfw:cxPME-~gN PՊacS, I(,&9aa+T2du{lx#A_xH쑘}}XUGzhL픰{6u]cŜtn": ܑF%{cCciTjz _5.CUyga!H\W-E6WbX21 +IW%$ TxO1b7$Mδo O{!uyH uP꾎_Bd&ZFۈQ2LʂDζ jcLm,mi/q_smYkݖxZ4Pj4ŕw#?pUʍ6ġ|7.h߉(~|vCey?W#s!Ew1!rHe?9ɑa ,tjQiUX9f gV_2O K ooU,t( EFSA9Txb> m"NWCp+-+XEVK`Yajf=VٚnlUw`=Ym^_ ~q>.S}]mÛ?3 3&4nX[tb hO1[lZP}S6aS$B!~tBcId j7v|Pd{  ]̣v+L3澛C.2Qt_kr8Zƭ{6=\=#?NU"|OʗRXGf:)F#|oR58KO%* \Li +S `lfP{} S $2HRd_`ܘ>@:U[S{')DMNhInL_k!kDnUa(BS r)lSBicʥ3؅3$G?4/#_]58א}Djb Sij/f&{ԓ2ą/2nf (.L]UqȬZh\d̸sTL 4{n<jŅe;8*9u\,]U6=ʼnMͲ<*؀ vF5֚I"jB/Oo5$rYVۺ-&qP0(n{,R5蛚5lY:M[,f;^,>1 |A8~"Gse]HS H(; kw{ڽ +R-HROA>(R{pmI#Y3rrnj#m]y +Cʻ@w:OWRv3nr!|ݎ㈼,fXlI/ԑ#::<6׃ͦu#8n\2]7oA%cǒqF&d+Lu|4mx!+Nb}'QтJqs>&b7R2:*+GqRkGp9f-=GR +va\s$fH +W9L62ߛCh1`Q +0"Ab53fL(M A5K,<Fb_/ಀLld wJsoӡ~_^ ! i%F]6?,;ɩ+0VgԅvO3;|縭ÁerG⨹\C'? +5FIPR7XC)Tk%j]#`7Z#HधɋtߎY*f/[˷e +g{&rh +[Ib΍VEP+0j +b<ݚ_-5 "1N5OQf.N%+ UeIBjK"  +?(gR_DfsÔA2ņ}PGQ11ETw'eu/%.AH\4FGjlc%8N\$s@#zߔˈ(3Ϛc܅Mk rZV0_ㅓY_r@+CQAۦ1<Ѻw @.֔m2EklՆbv{Q9}bCowQX(mU;\/<)xXCH{Ŷ3W#b0 O}.Tee_]DHnh$6M@ [iD'i9/:b'tS®r Lb] nC|=c 7R2iS&%V+v5$Q L+2)9 )'9+hޜqP2(HFIδPXə`D$͈vHu7|7 v,B.QO#*rOS˼}R읈(ycϘ EAERrΣp"ܬRpjA)5}I~^;ޥdN{]HA3 E!JT"lLf+EV}V8:OTl`ΒK 嘅Jfbek)ppiF=$5NCEk{-QL/.zo/@7LdR|_Й6r1rX{)|?/ID2%̐Hjtk >vB腸aj 9ХYK bKw` +W͸GW)0 {mFԐYP^z(荳7NՊaWM'7(IPFz2ir0rXZddwJ!1"LJuiT44jއ;PENH2ӧʱp>uI|CEvͰ{rHx[}vˠ!?9G)\hkh}cV +`AZ(0Nx560l7a_FL7;IGΣ /f0[#kaėA_a1I)o۴)އL#x|[VKmRc!WJC%$`x 'uAWIm%CGNUdd T|WQ{`ٞL>#0ǻ/ ?@^ZHoHoF\sHoeއaĖ%- z1NkLڠIkoMihm޴tyOZkYU>_ED$4HpU8f<;g9y>ݒݽ̣<^TH=9k49EC=rW1z]=Gۜ_9zR [/Q yHU]NbuB i,ϭ%\9 ;rqDzp6L}e;E1dve?䞐x 4s݆Քi VC3Ԋ??)7L:sߡƔ%qҫ'I5R0ϱ^m֠oM!YWb Џ/6!Mx,Ϩ=! W +nk٫•'̮qTlƠp>WQN`PR0vZi%_3;F; [fKdK˷,gJ|d1W3 QD.<,F'k˥givIabΑ7 61 z-) 1i ;R1<`9zxsWah +cM LV;(xnrrdr`x3^w:Ӵf9XM[(o śV^E=2tb< ͐G%ϸQF/:F 4(a CSrHwi86>Q~iB6~k629D/tE<3>=>Hs G >eoX@ѹ){=s\ 2Z@bM_ۙN3?_rd8pp 18,S BOOaTjg HC7 +IS$a4' ?9}a:pC}-/ax  D'x%:| Z@)9RS%0Yu^(SN@13Bb+!P@O;G}7V6!zsd|1v! %2Mͣzޅ,? +]b57D8ڎ݋j:11ϻe_ =5Hmל@]viΎ*O;byհ;EQenjPK1}(6MKO . mEX'GdpV nfIB J'%D8dBD@=)$*䰠Q?I'Մao;:hݶERrCf%uXl'G`cHmo +%7ڃP]!*q~z~lQ1T/XvMth?oß^bq 2,Qk; tWQowbF:`3@Ɍ%^<Ϫ:!F0)<[tݗ>EbָQH!7Pg`~Ev)7R,7XY?ҩ>m6 &{e?1(>蛞Me3˰ =) G(& pL` Y +Qjӄf"%|UZ̈́OBh@ 3pVIFtCU>L.DN!1z5AvO@]G7\SRwí͏Fk1%էJB/΢汏?eХ>H ^}&I\:8- ,Sl*6ͱu<oe_p;'wv{G +^GzDz~%6ኖY;zEKW5Z=Y(.Js7.T^fhSҧ R۳O5=k+15V -.rO$ue!F[\tXݲqx3MY^th&gs̾hm~C y=Eo{.E=(4f7H l,4mh+(Wxzge7[rq|3P"&#Xc-wn]*C^ ǫ`zD7pD7Ev=ǶGZčZt#wW^UZPI= }@aJixT>\ӌ~9Pf^s7![&" ~k<Pz gVAɑɽoNP\ClbR%%@:izǽRN@?R|Y~U+I}h*9C-6ǶEZ773<>QDWQ=4wm&^Dx:k #9 4FsA-h-qgXMKP>?eA5ߠ.of$Zd4ꋯ s5Ϯ[g==="qߋԌQ6?nn z}/F: +;/Mg%מ| J6ˑSl6ߕxsc+ fx N:^3ІqB܀L<Aέ)'CBMXaPRJ,L.3'?ϰ~V)=J?O@&HWMy~n/"]I>FR2xI1weO1F tu,8ro#<9R؈cx ۖ//< F{*Le'~58ݚF'eyuȫ@S],(©C@VxX%-˛jknLef{,E0d!VHϸ3DH_ t" wgQWn>8y!; &wu?bpMa*G\4¿_H#_sdn˙cA=›F.vbiƲi|D=e(H]ȩ>?隼12Vm,HRe%w,HpRd\8jٿ eD|Tax݈0SnB2ME}]Zw&F]L%.jW^\ |EF1B>G %H +@ +)")EAgbH\ԁRuM'N8:]##%8-v1i.Is,R-\`=\Hj}d##w@?0 rT戻+y\H4|lb7I[\F 1C"rtThRPH!) +_ R[@Hl1_\ Ş2b +1N;&G2De4QEXA 7s%M41'MJM CB=!!dt]_Wz^ `yR!|4*o5FSndղ +~L~WQ~7M|ݕՏiO? aWTʾeRoSգS$`+&=9Sҧ⋍r6Li+TC#ꯞO,INItcjC>{hI ,C`_+[7N!cqd1>h "6w}mZ"d4%dOd=-ϩ}qscXpw38qmlFhnJ?`2Dw;e42Ux3w="5vA ?4Y .Cf9ٯt8&5 hW^@fE&fb64{՟6a +S@b z =vkL,^DUJ2ftש[OkL+Yor+j\H_EjHu a1{+pryZ3}a+aտ@jMҥ.6vNŖMx룵EkA#XK}nu;f^4.ŏGm֏ۮ,rv;7hWm-?o򊁭OԵ/F.eBD֟Ӵ|1+cYm5=SV<.IEjoW}[J 6.ą!X`xK- m>!՘>xU3.h YQTJzD y lfyy?l(x/,Yu[++`XF/ʰ +P>ᾰ,Њ~RdOL>Pp"CSd"&d4D.6.F1->AP8L-{_^*لf9I]ݍGc.`~mJ/d 6w^FD Hc&%#ɫv2!=V<'E2N4|F/`G ltFPO1'V2՚jV;N`d%*Tׯc"*d~LN&Ὼ-RA +QhbnN4w(=GLy}phȾ6TJ6'z^nN-y[s/P?^cf6fYN}kGȣՎgC5{cڀ`J !z0K̉;dvN&=!e`&S1emL >H\PTm(ERp@@ȤɅi*Q =rúZjZ@ S3 +4& rwbZQ=d ( {$Z΀KJ)&OB%̯_b8ݱvCVa'l^4;+;ܨ2yҲX4|4 Šq`nŢVw\6]E:gz(k´jm}ʤ bykoslof k2, iaIie/"PuNA/ԇ1;b>ieU絢ֱ8hc?RKd22QJL!K_1gD\q͂T= ^A +1S6IF +L^A_୥?sG'9xlBRTWc|A#~| seط8rSZ]u 8; +Фh6a +90r6;ǂtYL]NK:t*aYYЦո^g ̕wIZ:wƲ7Ͱ9]w|5W&,oDe+4@m؀͆Q}GYP}40Oo:aedG?zExÛīV9˔HݷiseGR.)]V\ǿPy ɇ'er[R_/6>u`|c/.>Gb\;Zeȷ&QsFJ09e"9 3-|U{9\/+jJbZX`Z셤1FVT`B8&)+671Ę,.\tgtľ.ľ.Zj qgca XmfXWh$w%.(3SvnWxn%%E]'x 7:j>x% +CawVyEPg̕Wx$4@^npW vV>fM )QuI7;*!i@S &T]w VTf^X!OWT/RkQ02y/p*X- (Ue8I=>nKWG\k#䙠XNG0.`?唓!@6UW/ \QfLv#pX +aJ# q`QC2|cښXļ;(c\0=]\@ [ 06MNk֒I-[(p¯nn9#瘳PT= p jl8Zh -_]W8I;h̍uWg8txfaYvQ #A8]Gƶ)֤yv|]\ xA(c򃇔pT59\! +Hˇd=#` +AQQu z.jUf 5M&0} S$zV! |7T_'sjYʙ6/Ff2fb1~ +qIdKw_@W\5VSOS}|j}y|PvoYv%[HЯ+7?HRۺQ 0V6r5:`~ +AEd)TV_}*]b\ o㨘 Y^zBzuLJxM`hP4PTc.n)w9@nIBLWX]zC|:~A~Mo})#Hҿѿoo{pH\kW3{X:Wǥsj}]~s]%|ruF&)?7&Є6mun1Jp0#J$GU[:Ym}fqv:鼄vۙ (7-gS-,`?~a3f> jee#`nգfjބJz98aDv +Fl$`ӀA"VTcP{\4X v䴺&ֆ6"O.P<Ƚ00JC wC).ܠ]T.ÿ&>W.biUX=CA:#Vԙ4 cE^:t-o#-1ך w[.!4̶xnIc.a]nBj24ǎ[Kngn883]%4K̦b^&e~}ꕫ/% +)f8ao({&P"K|Z~X +y:BKeצG &AP9=$~̲%؀y^u0S1(/$(q:Yd` +|p lK-1 +¶GL'Lmm,@{ u`(Y*F1QS~mLHzh;!@5"DQCGf(EB|_|[z!S|I?xNH1ub_}|Iz.7>}J(!~XeQb<^H#? PPh 1*,S]zH(cEG4ZPz]vY O+gLP{]n hONCgh`=.?h{q܂Xی|be~>lPJM!EAKZbg9Acnw1)o2Nzvl=1T >gn@oնnϏ!X$ۯ ~c3GK[OlUK%O{ +6e#G|MxD_ WbAj(b[=ԕB@/NzSxv8V3 #^sCf*P`}TRU46L6Yt]*`a'O\F3  c(p+ f{$c1zƈ1zްP xj9,L:|i%8U31U>vkv~uNM1\ؓ,{|DI. &u0+QFfVNe pd{O{sIFߌ8EIHmz*XC Wc׵ݶMF0M9((>Ul`q +$Ă-H|1ksټIo?px֠m2 DlXͱ11V_<66ۿߑmGc ++ߓ_wcwc{~U?ǖJ>f_ĭM>ckGf|Ɂ<_DsJV]ӱ 6[Ww +qYұ>[ӱUWn^-Ah HN@ (g +>c^eu26syU{u@dQ2 E/ef +@aa7ߝ)ض=rlSl1Gl{z`kB0SNlJrY3kYiZ_lK֝HoRi2G-h"ӲSnhuh-iaΙjLe3,D(>W|hڠ SeacͩdGJ g GㅽӠe/i.i:i:XxW]RmguvZ9:)Y e6ϖlC"!rtet7Oǖ>4/|ړ% ~KN03"8:/Z vM'Y.9GKP(9wvu<´~aU'_̑{n9x*b؟`A:EcKFxb^OX4{7v5\@H϶%=IQ1³ g[Ȣ +5^vǯc4|`l aA! 5#w1@䨪 N +>PµT;tzGtGԧ*6/!"*j#;%qc@7YXG]=ǯ.cq<6ɾ oF4 Rg8gٸ \X\,Āp3v+;1T/gyB>!,+QR +mwe%!o' 84C5),IduCT0h},hSa,M Es8\p~am4n~071psO)s +0t3ͳ( ARnf+?yO0 +sb8͟OwgJgjgR 'Vb8[ΠDek$Q 9e E7ƴ =$ЉEe ۑi7߁LbltwJ:bꝈ|Xf25I{#`4R:dg0t6~gH8bUnjH?(Bt +w@>4\3[07g<|(x՛ _+ gk0Db5(X\\hB/>-=dzvu))BifNDҨ/@sx ͯ4kI Y{Y M{䐏f[fz^=h ee^iY2.JX>Rwhv\&7Lk(n.]c N<9芌d9UFޑ!D@3Uqq#81Pfbv -3n3+VD͢:΄UPbM0,<L!.[X(7_;¿<_T8$Eaz0GN1g a25x*~n_KGW(}&pXY8;8KwV>L| 0JtA w5Kbn]Jb1i6%BL3M_X Z6bQZS.k3V'Erԥ5ox,<bc]+XX\M1asٟNVZM/njEc <9`4]z#GAD1ПXl @LUVcXV +督}FCd"5'PԿvKvU%k,D}jV16u_[,Q!hvʇG +6-d@ Yy)ܤj Kjj|fɖcO)BYA:.ΠS B*[y\= +h܍-@кv i\B뜫 A3{V`zFp=A_ϺU =FU/Nai_/UP`.a@M>-5މ^\q0X F$PiWc(6"gFT=[N~.%"E*d~ q$;V o`ojYp[¯OR\FgרLm?U^_J1]_||GFM]0A®)wIFBLHچ IUgief`c @E}3Kv*pdۗ}'3UMkؐT=xZz?9Q[2LP 7wZ6(M-My  dbR:&kO-V=TnT[w8 ZwvPWjƁ9^:cCS.?_歰¶ dNyRx dȅ\nsϺHT]raf3+ɸˊݦ0bX~\j YzSlh3Y/ALҰR@稝ôZ F[PS)F!ҰT$%*0Pͺ- +-P +*C) $b 7'8'[y0NRh NC0@PW:hBra,7Õ%Mv+ geS!\E +-}(n.A:*kn )Vc7S ׄ@\L>8/(ma?#X։Z{sWQ\o[&iWIIX$i$$پiUsmB(q]=*O+L^8:aaB6YvۘCarّTiKƶQ, +f%db3Ռ P4iEsՊ-۵:NcbZ1/ƂyPo*O.&JDi(=)BO)F"$lGPÔ;!a]| SOuMN6֔o* Y_/o/́"c&qNI/,S_CcU|h*Mg[D2ILbmjFZ!S{H݆Qctj\V7OYl#ͨ,2+kL^|2[Oqq+:ਇϡ.g:mCJ7'j u JF⋟(0^x7Oeg14A(c>.!U:Ln;(u +W7wh^тNMlj?ǩ݀S򫍡Jɨ`89b;J|] WCu+JK(2Nª"..E=*2|L, '!}S) {OL8K&I(7H ֠o@#;Lc0!x#@* Q]/悂';˔|C +0jU->^Wa. +% F~HJitZP+B |G*H'Per}eDW<ٲyP=ʧ0E"L9+`M풰*1'U'Keue(Eήo4sywRl> Jy#aQ)DYcoRmòZ5oYQͥj%$eaטs6gc^?YD"H›⢼i \3%髈P)?4_l'T׽bzd/Ŕ%؈$4HGVJz4c ZBI(?prᕬ*t퓄F {-!Ίz?a(<"ڲSu]I+Iu˿TJ?>Sȿ]=_)R϶^}˿.. /_./5y-]_u}.<:I2н$s'yħe`goy*ه < );{ܽ'n靔܎\u </O<<>]mhB"@$RC v~btNP2aER:tY݌7ł꧁hמmŔ<SZ:i{zRgxZC ~.q~F썳7K`zӯHzHZ7 +z``ˇr9z]\\Yw*@q!R%*~LZ=~SU/y&&s$摚^\fWkPNfqI"^JzƐl hJ9Gv`o&E*oN +R0̙2i~f@* __C +#*DAQtp9&E^ոY 'GlxHL4]hr[(gH^O9|j)CZyrd܆r)?:~?n.'F ۏ3ȤT: e Q$pŽ){S'n]nמHKx|RN#zeC.r0 \_h]p4̉SZkE_ ^7YG6A-h1n6b!Lng覺Y9vvj^4*6tM7 b!q#@X^ +(eX~5NR5؆ ?ƬF'HY#̌bTkU՘R')7DŽ G@nb'*sqі1ZW 嗋>^uu9u".zq _hZX-v䕘΢i084Z ❬t %9TU7U )J+'(ؕX5 a#AKQC4890y5~;J_qf?P8M2oA0o=@T6 3x[cY41Yb<Ռ~D_PAQPYxG欤 +u }%Hzj^I=wfy Y%cq_]w*^\=VHXB^r^ ǫ~yݯW?a{ Z?*.kU'ƣ7p>'LwNu2=ș=_ЅZ5;} ~evm:46h vˊ/̮@m3MWe=KrU@ߣT+99A<`9Z _nM~{Q[LXd(+c@nPeH@.pc I aj}3fC_MP6Ќ*5W;iXu&^0zގUTr7f~PtmPxc + XpX=ԛi3^$k י91b?Koͮ'Mqa[,.z&G"EiH;y`ezpiYe YdG=Ј#EAȮ`s`QxwLuLÒh2gzLW7'8h; Q;Ā^YXYѴ6K +sTcsP +D^}7_H"]jKEWd{h-ܢ;%a"e ~H'|"xE9Ox@م .`cwA)db+a4:C5l(povֽ*^oxqOڛ3{0ӿEY!\,=uwb'_F;.3.CP׻v!F +ĸѷQ/EptM6ٺt>hr0hȱV` [|[/gK;2ndVr|6BbiLy/G&:pUrfBVg54`5^am[ xXr θb,n&gHHK888S:Mm2Ԅ#$;N+oy/o{4K޺CަmMަ&N-o;lSWv!o]SvX6&om ۗರ{/o뿐=ֶyێVvw;ϳ'YԮH׹,ڇgWvv,+f#Wmၙ˱FE͎&gl}"|ڡ?{J_?FwEK摌 8=c&{GQ9Ҟe0/2s!:6G9?ԦJï~3U 1vP؅o&Yuی_t0wRٕZ)9I#5vah%t0f(OoAu% ة81d@Q=|9Y-PHTEiE5Km',us_mC`.x턬~ؘPdya8"/7:Q?,g-En{秘G3,gk:m'7{zǏmqwRٙ%ڌd;vjp_|;yYR)2xGYՎ{4/c':qcZ~Ll7D^1g;Zk9[ٕI njo3kg5WN(D6NuNSy`ϴ'ᰨ>$lS[Chh Cԗ D~` +>Eu>EųL u뫘 RI=Ȫ;AS z&zfT1V)Nv:? :9"Q#yQav#ZɾjKSWpH[~62c:;EE <|?$yt'0Cnd׸]aw|+>>f$1sWc'ֵ嬰~R +yFͱ;H?iC6:Ty򲱈R{eiD9TyŽuiwAĉejyy\qiӘN2'$sӘNrI^K ^H'6&Gz\[x.Hgi~ik:pֿ1c7 +u FSvƒ7TC{Ԩ?Td53\Pe9bP'J}#{G g2u=hn> 7&z~P15+V*^^x>49h<<=Qh삿w EY;M8-A`fY.ژo ~4=Gs?T!sKɴCz:2l.Ie/r `(i@,C`'w f-| ]N3)gmoߚ0O,k|I3HI֢M|݆7{o%+NHRB@]mUd7I),X"˜/9(djwRq$rGO/~AL. `~[ZzDpwlyu>;0ujHKR,;.S>@ԮB?or2W]sją ȃC@6 \| -44XDt2hs)66 ,IC;+Ɩź?D 6̔DNiLddA؅PQѾ>I<+HϻE(WW };p6t?NY1>23YIѳ%?n˨B#Xq-Ӧ(8-vOui$亍^w;C]`(@߹B$$v0C[HTo>.QUWI2@D 5Jc(Dc%5 JQiآ*jI$kl[ޖjdF@b@.gWdugnI?<9kkMbyXp`@+\Z* e>[:al^g +8,X(k 8bEX,$kh ,-_灪C +)3=^\.6j7)]ƪ.В6oJIe B^Eϖ׵E ɲWJH 9 <2s6fQP)Tz_!b '~ l]` DZ3wc-zdlq g˸ih2〈8 1gOVUyBEI~%ɓYjrx򫎘pt|'(+.A^4㬩ᕢYIKDU_\#('A9YIЁ!zƮ#i2?QA璸GY=V@Aõ'~PWJ +@!0 5-«y ^H=6HʇυRE/@W 9+3 t;+%tI6x P:tR/BA.ꂙ-\4C j *n7i 㧽HgߙF%+Y,V.=ASÂK17f!KXcJs4>A1L=R8\ж@| k?g6aҴZ49U;~ذ_AW:+MAdh +azfHGg,Hy赽B:c8ЀG' 0* 4W-Lʄ @|5DS56+EREBkXI +Rnۛ i=b6{~fS'.[*7;3 gj +3lrº'QqӠ۝ҙKxozUl.Vgϵ넞t<03k0p۠\b< c\Z F0˻@4+K)\D-D+O[,E_$Es(ɱV4JK8Ncq9hiܢ.VyY(dQ!%TGZR:R1&2.eDRL +2eP/g߱[SJ|LnJK"ۄzb֯}acVIUDI*[W2F_ʶ4^ekc??' ݇BMt7\f")]vu4VhSÄ8-Εv::!k'TIъX:>R><cB[$9|!|iGL'zxR̴;-v/^wݷiGxB{ҀA.| d,&޴az0Kk;TPa>vkPWHFxf +ۅ3Ͽíd'Qi;.bYy6`/`.O@>#/{098459W3R*BY>;3(23;Wi)5N"(0DL,4qQulڻ+Gr ?PFh#euQ|ԧ+8-؅xTPy ͂nB`_ ypy$u\>p0LdH!<ړ8ubS_XY>-"ES(x-tC38DE^: OqϿt֙T,ZF('bar9" 5l'uò5\xwPKK抷M䊏}\ 'fxg"z9xGp| _ + fBL-'@2H-?ڻ*#.e*F? + +?HLEAZr]XJaAK*PSJ(I_Z|;`jI.\p$ ;`gGLwWpN^M㧘޳ ii?S- [vP+Xכ:NpQt]/-+|Jnje@돣^#y! +PyJ%TSID@tT@-Ɨ9mĩM lTc8 ^u굤Tg:iQ$SpJr$ژ/ g!m]Wj5F7?+jX̱vuhGCy?I)wKF ^IOp.K%pWlD/GxK~!Ew7}7a3 bgڮهzp -wE 'ތx{+} L,o7Aaz=tnQ (kd\PD.5\,,h4(特&UI>IugBEBЛ-qC>w=&ܾmG"v:g` WVӏ6'}Z^4K;WaY/`#&*{Whe^y_;/8 hAdHgP`^\3s=.9I^Le]~/{o!Us)n%&ށV\~M.N##Mf3y}w/L3T/o/R:^ +L-Qy"6o +<߷| /l>W] 3&qsr#@{:Nc7 ~7T6p2fm +L[ (vbmEmӐNO;D1Q37?q%RSBJ#acu g +we?-9NU⻉ +g/0 li)M YW V`,)8`n 0'סҞ01sk z0a:hޯ}]4 ȡ|nQ/]rb|\s a$;Aq a {Σz_mlEM/^E3)F8[;0;yޤ ;iJznכoKp5·撮6)ߟ4+rBtcv ͏KpX2LT%_0lǢ`Yc8: 7cʌA]xF`LwCI +T$fY,:VƏF_:VXu1 +DKCZE-:r6k](m3*fU2iIYowFd9|hݞQ,έxM#J5enE^52N7~Y u~3zzx!lEѯWj+-?-7ȴˋ-ny1=WV,^؊\Sx.`60,"NSi> PM>DJ`}P)I up!Y$JNlB @pfsԚHE +lCB[jȳjH+]р]jIY]ʙC)Y45c@P d**nM]51ڛu-fb8o#L"k!G>(`PsZ([kt!NkF#B^0:k6=巴OV,e o#RtiP.Lޙ^m\U@U.1S哾uҺ>e ]#I@;x[ƫh3]h+oK6b%=x)Fd,s/aiWuMZūCͶ2|.$z(A@v w)2f!`^z\kGzT2Yt +gPyقې?}nT #Xєֻ_(M3҉3~p +G^[f8mQ5@xmdO~"WB«"VZ` n#C RJ$$vf&NP׎WNT V#xYx `PZ:]`gЕ'v Ќ"T_EP«Z+.ӎҁ#8̚H 1PFV=@.=eO*#nqU%rO 1"Bq`0/,>ي:Ota}jT("4*HޏqjǽxÁh!Dcg"^#shhf.zVYeΨzꂊP: Lp]f>V +ݎcb+f1L$f,q*7K8WYG ZSOzkz^NY=vjt=h vrҳ` `29H1x9ʩY|yŐ?ԡD`PVVj.ɧ +Vy#h;pC" yԕwL1*0G0#iz8♫7`gSB{l6Ն;eo0s-9<]iWmJ|fOjJ5)"-/7h40M +-mqi_ɇ\)|~_VMF3p$'BrB %Qۡh;Co/7ɋ]e0oθ7Xv{Fd;X7y_yQ^9I%]pZeJg.4Yoߦ#ňzt9~dRMXG<EX.~t69K7Y`evZ#EQb:*>vRT܌|J'e%d?<Ⱥ s-UV$y`| 22q9?6 Bb$,1T+x +25(>DuL!,bSY% +ߛd0^azЊKq^KKW!҆7BOUO}s4TA+7=BxR$tw@tV3o2^I˚ɉꄂU?f"Q=_j&|.@t:DГ<[y2Dͫq̉7B/v6r1mXgߡ̨zehh72: ga|pr7^iǫGll&n&~ 1nzfm +6ѩ42W ,/P#J Fu@tXَXiFL.DM.q;x N6?.[ý[v$[E.~Eܬ.&?{^=/.Xc4N;v:w]ĽE\?O/DGIut҆e$nl`MKIv D,(ﴅϻ4Jp,DqQ^Dp5oٝ78Y|!IE6rU@C_8iz>m5Âe}m'/mX{cV]a9L`@XCNx 􆱕# BӉBrdx)Pxԩbtivºdom[ S/lDZgEVf㴿B~|l=><"| QQ~*MwYNxuM1{-.v,|R&$)uV\n?hniGJwR͕oiw"vj3kc\kalr>Ws"vfp1 v{C+DX|ɋן/Z;hsCnh<-2opt,׭g>[x7\/5~W6_VA3psAZFC}3u#U:J#Uߍ +-,~oŧƍܕ[Q¾kE Rf +]Ho"E,IUCJ%Q=u _uUn*ЊR|7Fg0;wPLhog>bg!/q[̢~#~EalͦAWOqP %Tb30e\HֆT&xϿ?x:IdKd :F*=TGPDbE^fi +d(}w[e}!4+1׫]ێ.c;LׄnW$` W% +=!axTЯ.房E 'e!0`<,k-~=Nng-V u9eTQ_i9-Ҡh]\h +E_ρH#nne^#nVY/9,릞 OcPQ b2ER%A]zx_1aP`X+*h +n%(T52"dO +M]KaNޟZ#5GZMFlx"*t7*?hyV>ʿz#tfX*eZѡaf*Y*l 8 |f9\HV9P4 B @gj_ĥu@(-t: 7$5^RHHsXC{|}" X+4@U8+N|>T *6c +6`Wq?hR֕tnjO"grG%Hau'ߛrf8n EZQ-XʺaR1,*nDt{jdޣT4oqn eb\fb\,_Ѫ1^|]OUZ Qf-@(,έY#\w)Z1P2D vAh]lIpvbMߴIPPN$ s|+0o_fR:,r RA5 hMDpo `ch!T=A{%&E w%9$W+[yEE#@0C=Xdr,ïR +:-!CX߂v+k-#i +N{Gڧm^^KPJ}:FӉ=ZBF*u28d,N@J` ϟFYkץ9_̎.j*9?X6XE&lb)aZiДQ|W;E$7V+R dvq9a+{C%ReodRx4¯kzE_0„ !ՉжafMږ4.^qImUdԡ:ڃ=9`Xs9{msZ}?,쓫сie} 1X833Tmu؊u HrТ@)§ÃTv,CE}BTWJ rh4mUIx%.hkr\_y4W]t>HXڞF_K?㸕XVw@F^N,.D_e9Vw?q e4oNCoXz!8&AeL@'ƁGC0P?9DwF7YTi|LTāp:(g++|/}3CvPEd0kkг҂jQF7>fʫ +G~|Vt _{6+}pʺoiԄ +oKC%0U!#G )1Tb$^QjWB+Q|H%S Jh_@l> GD# ,\ Z]+uNI͞>+@DU焂# +,-B3B +%t'J'Щlnh_u'h&&# ՎWP6"! N^\R >ՎE)]{><| ;=8F^^-jЃF2ŌFXųtn#wzIP0icYOJ>灨!gA`{kT{\7@0k-8b kHD]wr!0Ap^2Z,zuZ1S=QBGn>r?k. y]!׍?yV}if{f &ӣm0i[kRΧe\-K1D)NkK[qNŪKЉJ-d>BB_!Ky =/nRbd.Gisdtqb`P*I:10pQT<*= r2FaY}yq`5m(wvM #%#Rp-vkFsaXK]M#^j&# I'evK.U׿ҮVK񭍏OzKogIs~ZQ| %t =@XZK(%4MkU?p{$ k*p%r99jD~IhXx5{ɺD#t;^`HŭK$le691#C(CDX[%W.©">"K^/e"\+!l =|HTkW%^ce@:rGVkfz++jy@cyqlswGtDt'n_hPRqτp rA 4PfJWEϫg/Q'RO6UKmu;ccb+;\/tvJ ;bjmk`fZ[8{LC[Nj4(eդͮZgf|{Z{60iOQ9b8Ieho𧐡uH W_Up&|n(ZȮz}$ӈ *))_w`g['u cėA0WMq d=#KwWJdƧ]Eؙ걪ɇ^D^M$TKD܆`cⴱu6'g2i\k;v!MXW:.&` hZZcIyً<1h\WmD.a\F˜WĴ e"<vm E8W,$R["y"B.D^nE/#DS"*?OE1"W*·w"9LPɞ, aO&|w.T1me>TUYvBxֵ0Jj'̽*J)Ӿ3/Q6+`ȽT0m &N1n~ Qvyp+Z+ \nXpxD!InJa̓35NxJv>͆ox+.&j]LX^rO,R#_ Hf/nېi.ȴ@x$0'b+jŮ ;ސѩg!^`Nu0:@j S!xD7\W<(EgyOQO~EL/C'vv?[f*~X]&²ozO|7G5fmEx/"<]o"|(S"o::/9}ȿK~O"=71ȥ}W>TF{OҨ֥\O.@r4yה^P WA菒tXBޕQZ#;W˞?H?ŸTL>PuRNIC|-d儥F;{"a5%HVk/5bkXq˜$E7,VX`Jۑ,jvcZq@#3 %BogT:T| X^#Kg8,Oo-822eOZK2DAd}^2;0 ^`;#=Ҩ%*?`-(FE1~N1d/Chրrk@^'3peiR)Z:$t3P6p֖tvy >|]ꋜЄ-/;)⵾t3"g *KXd\*)t%_35k:+PZ=zZopƁ)rYUO>ƚ#XG9"uG㰬?DWR(#\/'6SROqm̔t@MWZ,[3"hh +mcĴ,m䁇-:a;zlR0ޝ%^:};f/h8bag+Gԛ'AY:$'QvNVVazu)먯T'DJ÷SI_O4Z$F l] %fSE8lF]f,"6ˌXhFL/_sԦhlj-W>C)ͥ,>Į@T>®D(MY| &}hZ\-C5Uht&@CY3(TS\-Cɳc=Iw8iq>sIظr5,%k߽vnGCH +@Z\J{%E{`P,@IAzՐ=;HmJBQRS\HXMPmfgUBnZh[_ME;Yi;TR}2,,|p*|n%t ej3PMd=fdy@5j.ԇJcmio8ءffP>mԡ!\g& U/(h 7*OY%ܼN)nퟨ4/k5W|Ud_aiFqehn"~$]}m6LR ZŞNEm7TPѯ⫋9u;اvr\)[F4>?.U6J,/_jϓPv*Mŷ;iFa_[hl]e!Z*Egp ϠJ}|.-NJJ -8C +f߄jSS{k@븷E18[ HB帴nxYE[ 8h\e9TWE6TGtG} y[P[_c;ִGyB-9J\UvN\Ԩ=̓vMX -}ǿAvuK^I nYm'fV{9(4gT=6 ~x:Xr=- (J,t:؄|@^ێ0%.3w.u;~ǿA׶pA-mеXkq̮/fg͖^ge;M;r ~y +"Ņ':lS7*1g笑⫠aM8-7H~Е<59=v2qܖ+-~+b+hЖщ + e#@lȈƘ(+O9[PEM7cߪf_ҩ~N0z|eTwqQ!cvEW(K_7U"LYSM~M2H,Ϝا#̈}>bOA>o}ӕ(f&>o&͔F}D $#IP>+H gCʰC,z!1EEic֘F߉4`>ު^XOʛln@ -P[uYYouy]l̶eiCmڗhpk[wC}| ≬A=ZY kUԼMyYzn<}CZAaP=陒<{dW7RBa;Ɓ=68mfcwƠ"H3hRKB=.'6U#w |%#/\^nZbZd5Jj.V!g|jL.sPܲɜ?0֤m 9 '&qF1`"{`ij^K ! '(g/8\[KzoZ¶=)NM +?m@|<{rlk,J2QGq]/*@j|  +;m6ea` ӌ&̀Xؖ'S©Ia+Ж+F'Jc=[2_Xۘ(;_Ab| +GBC@:P t:(Q R pI$Ιy8o34)jQӔ_M2}:c\ yv.-i@sb5+PC^}P,?s{WMWk!8GjT\R(EqeD~ezG?=[f.Ƹjvɵ)AE+ю',A$yF]\0յqs7' )JQ>V6ꯃ:)ע4w}g`FȺ"*#m"VyOI9d4ߡhʙqN'< +!W5`l=E#gbDEU6)Z0=UѶXh'E|N1|0gk3W!_]'WAUvA#'O^Y-l27G\\ 9fDZ&l!G~#GrH٫#09~EK1VV^bOTwMnjT^|gT/u"X2H1u"Az9F@3E|=Adĩy2J5q}P>>Cv1xA1f5}9erdwAm^8ذ\ϞV TW/ m։69"`!G D:Z?dP0U֧Y +vDP K)0¦+(0./\%M-r6gIR1Zb Q>5Ѓ؜&Yh'1ҋZέcQ+fn̲Z[(MgDs@TT7cJ?i-bOkgs瞹P؀qfz/%vƍxJ pl,'2'-\4'ptCk&fy[AqE˓ >菉ůkFvI@5_%O8~w@}? +ޗ *Y5)CR'1c2gaK |hTm3KV?ߊμ!~4Q2 U/R**8Wsx1/f%.C +6'\ɕ{`H}-Ig_Owju9y5adc[_oWDuxXg, L@Gyb X#JF|Jm4ҿXI&Ws {DCr=^^Ƿ'$MtN +X%TB68խOv5ЅflEԪn=kGj̱x]6VV5S?Dw NvBͰvۘ=zv*D& Pj3k!LTP^#/JF"eRB@xa19q `xA9{JB6z)!sslp:4 +JS;pv$tӌ+^ `$o kY&hs1\r>ڐ8 Hx +(q>OM=H{Ta&eHi?eb{"*ɷtq5'+wCR@"Dy~.m,It5,Ta*M-4cT܌rr$X((?%?a﹯ {}'쬔'쪑~ńo>55qª(TTvWm_M L#@^9 [= ;`>a? he4ET ;'l)Lغɫ* RwԢ,[gj$@Q9uRM f&#@梴uV.m,.i#j*9ΩJF^h_*|zm n-ۡ*Q`鬩-7 ėtX/"{[j?Sџ@;h~&NU;(m"\t滴C'JP_ t4.=+@KKELHղx4 K :_:$ui#~ +3s'p$đ(M ;覈xe؟"&JvEl؇؇؇b| Դ5Ǟ^=1yx-$:Υ ;Fn|OGG/⭋$QI0~ݵ0)S2l7&[}C9v椬Uu6 Wv?6j`w;`lj_s-3B4ơG*fOefs[#+-h_SWB2 µ4ӔsCRb]ͻw،\ΕEicCnGcw;Ln1p^-QT1k-QBazMw3GˍHZL_ u :9GI njhEU*M~ut"u?IDLE<_~8q ӛ2*;ZVOMʴ3}’AlX<чHqMx{mD&_mƎa;Yvka fZ𛊿R`$\} ,2vN#wUiJX:Iyp,`v%}:-u >g* 'rf'JU~>H]_xЎRg-%4d|D.U8jhN8`Oŋ_!M4|DRsH'/f:8G3Ճg{$5 5Ta;9kKJ˺i</rȁ)BVu a5+q†zIPX#-âY1ǎ6)%bK<..5x…@ƅA/p0ϡ\ @7~pL繶3 +?S/X-㈍C&fԙivo%Þ/CLp g^iWjI!69&K5^%|yiR[$/{5[<'K~Y̥xܤ|c I~I_ +}Tk-9IOgXX?'{t_'sY{TSa@9תB;'/z9&v~O~KL;dαp@pQ29ma}Bх fH67MɬyB!>;f+ +y67̏jScrpqP/_\z~HyXχzr=ϲZqO?$ه#MDIhˉ^GqQ@IB&ӳڳvHb|̷YKt"^^b<|MDP>PBƣo75ցR:S'7P+?jY?L̅H/F0CN_:&:yFq+Lii:@,(1cNF{@ׅO_VP+alz@7 =ӅWѝCjE׃xMzGq b-[qg⓪~I$or -R#eٱ$J7MP5]g suERCVZk8u񷩺=C]`=b(} . *#^G:Ld*ei:'4`deQ+:V>[BO3_5 ;c,tϜK )QJwKXhxtY0=MoKQj<~\%qb1B -k#Pn8_4<2a/kb%/i|}@nYVHhwC5ђ-pou_@Z"Qy_. ad_T' qQ= ,Z泮37G݀E +iHk'k(}?%ʅwU'Qrg&pY1*Iҥ<~`b{7c{w RLʗ +; +0zRG@_'ω6\"IhFow' V&P(f@ ȈEL`I aa\(M~z5y:oKr5F7hl7`;ܶ^֠JX -7Pۡ^g,w[b3U? ކJۨ<;BTFNAi_-5_qlڱ gѼ[Q&&E7XkoSqV~臇b>Fbt3؛ *̷&;@Oe`^VG'lh7kd\2(ov#8g@+Bru +ɪ[}0AeDfd qxg`ױ,+Omu˅׶ _x\zHzf! +7LCFgiqms_a&W,d}D[cӸYl:nmr9 K&Tf쯖CQqH4˅IvyLǟbǴa]om&A6y_'6JZ ceS*vR^btg9=)khbP⾢=.FCv$w64F^ !rbn7& +BoCbZ@c;`K_YPoINI= +s[A{|>fʃq)x` PZiRZh4@z/ďZ7ZBU384::(twJ&'6#d':gǣĥ/ӳ W-tO,\hONߪS%^CUJ@RȌڦJ eb ׄN?l#AFkdchn?چtsHc(!]QZ,gt),#T&xP|5DtKaCΏtaz )ߟ\b%nR[P2 +(/Ucӛ(xܼ` +C|UxG8˿3Q7yy_"f*1 { BADMQbI- a".#•!BGV%5I.iob!Ccڒ8/E6U S(IgGgPs +kOd#M 1 6Bk?OA rЕpg"|-7P3@Q3K\FHh/O=g6g߃B\Z38W8J}z<byV^Tttpm歲u vv3 +?3_pR7q`cQ,捬yStW׿rewH's 563_W^z芃6n5JϿZRk 5z!sUq[#NU[&^{^ MId >nLϣsS%*+{exSq^bS1pb,nPH ;Lf|ܹ|_ܹ1+x(AmE;13JJ9[  y4 qȗΑ3;L|{9';#sCS酷f +ƝJ7T/d3ũ)g~O7e#eڄt~{.`1ħF%Y.R!cڻ8[,DNX|dƪo i쳻Y]tMca9II4{yX4ƚ^4i™~]HxiY3*2 /"^8HDi +_2 UY\  0w z#(x.s%nECvTi{4"W +_at 6Ҏm|ۃK؝RN5}FZ~a];B0p5JBҙD>z\mbY%t{n~tnd$1* )ǡ94i- 3(QɡL9=pܓ71~czKwvÝěZZڈ;H/(4E/p9\d܍C CH9RtN%?LṅH9~$攰4GO&\`0q. a@ a @  EQ7ƌh_ރWHBG%ARSUN S< @'kь0Cfh5znE%(NPo@093' L"23:q];UHd$Yќ-FzϠOwPM *tU9f^bK1sdE2]+a2CfK:f깬.+Iָo0 [Z,xu-I,l=ɀtUH7qpNにK kȊ:n,hRav0E%Dt .c<(V6qK##ylO^ s +ks51 (8'Q0`̋q 4a")|Fqa7WwĬ>D3"56PJ2Š^*T&ۺatm+eeMuC\iuf&TS jSgoB@T5##5\l +Wst2B;3!#5⽹ G,6znn~IŰx%ρvS8{DEgu)_siQK:̥rR͢T\\ +B(qοf:ngR +*Ed@b;2݈d-FR>+ΩN+.1)?J&f]['ﮤ|:;|OY[`t׷A=1>d!+490],w'8tWp\i'ei|}kpX%B:hĒ p t?=s֣}k/(@ mC}l$XT1Eۭhy[YZ5Y]֜: +zwx^xT"_IĘ:Ċb?11N: 3 OyG1x2N[aF\<vk^Pf 9/&7s-<`W1̕/UmMf΍=ں}A.>h3zY`HŽTfE>0&zB@b 1}ob_;e|S̬N1Sc(( +M1)Wf6kpTNOKJSQi0붫Zߜ lU{[yvVy^p6Gph +׌#-~T@1 :s=u#t'gykrPluDo˫*|ONti-'ʙZh}{d= z>18k[qgଽٔkgSVt7EVC>t_o*ɑ[ω-Rm(P.v&l/{+%BwX\DV{>Zp=\[OmTNMr)R@l͂>%M6 FƟ"hv֊v B/?l'a~at47Kx hϿultyyU 4VUEd}/ %7MUe}%c8qlyAE!q|h|{ШA-y4h +}줏h 5vΌ VQ2KC6n~&culIh0wwauxG/M(gi)WDOA\d}\ LP}a kN1Cxlm n|4QUPG륏[}-bM]'mCA2Ol;NV<,]EUy&zI"5WϼLS` ,},Z\ўŸe8D$ ^|- p=6C{cSrI׿%z}?@U^ U@Ub}]EqY~1uMOO/,`u0 Hhu@9#ʐ]F{`E{,`-b_@z( mhںWY esەZe@ZyPs_ek"m7fa3~ dT҆ۧ6]f:grpo}l+걁F{ʿ жPRBj%?1Pj3czE.m-UB)yMrC֙elQmVRr$ oտ!dt(R鱝!]ui^i:,jK} =vK[ƢG4ImF(D+_k\K#W㽑ϕi<J zZ+WP̪z zk +WI_{?uܣWxGvy \/̲6Ej*@gU#]RCD_Fr_E2_=ͯ%.=]`ռu @)>,8]n7ؠ2ћEE-ZO(8^=\0N59Ԫl3*J]0M\6)@M_+7 VZ&y0$2+g +$;XPB-uޢ+ PH4|l$KF:P% X(dd/T {aߍN˂<P:(gp{⾪}sbEZ e|&aZ{9!G-8`JMbJoEct<:9fe8 JMOzS7qCȤC ̛(TS^ArBGa1phhm:M{y@(:&AyZV?ygUmG="Yӧ tAZ/kCj+nPCÅ`A3B4JZ Q5*K2iξFJ(Pt|<P]MQEG"ahȯWҦ4Mw*QJprv\_w[zF 5;=_ &i&-' Xi>dV:1)[fUx:䟶Ю#\q;أ5֜80ųV{xJ4:8Dx1ܬ_jJPHSe;n .݅{}2gfnM*Sс*(=PGno+nRM&:+qa"O|tdOI.JSʜe}~]O%:A'sh$UwF$Ⱦ|?T^~4&y#W~seq@\0wмk(j+<{ɏZtx;%@GUK;:o5svZؐk.Uƒ beHuzg^lZ\mѿ5g[hNy̠{E~ PTF݁)9'͹诹+wNR!uW<a^{cL/=%nAsJh"mv0bN: ?tDYpۂ5VkTx6Y$E7v\jm͖mREn*לz*r#P ֑Ouk^dE%`"!8DA <>a *zn,myyd.3!ayY|Պ &bfªWю<2zF\:ퟒ[!?$f vf? X9g\T""Wk>[I!0k4L/M,x|Ѷ6Kb&͇>afutE4*Z:@@?IuoRmYU!*WI\k/5Okz3r=٘<}P$~Vx:z Sva"BfvaXAk.@S]Yv .zCuCc ("V 1!MΜ,'"ᰘg+8 +[}QY(h7hq=PB)(gGse k9@dԝ̗&Pˋ˜eL7L[DkR{;|6쁨MEʯa=jQ$oxI g:>G\ $Nym- K$rIY:EqX +dL9*>AceE^gBY*PE[>]Af1oTctZj-C^x]VHQ}܂$L(JG+|a6 R4R;,d T$1 #4˃Y./Jy!< AG& +psn߅^ܖZV%oQ.jC9o\:diE/dho~΍zZc*蓎x%&S֠r=tASJ.jZkjdb߇F<nW|'}'DS,L+R[N ]hI=(ۅ4=|U(NR</?װwH~d(>E^J4% JU UL)5)rgW7twr%~=Nȇb +NE)2N틗 :A[tIO(؟J#(=#l $I0,>Nrv^zrG(F0H3 ށ|mMpB>Fkg8$*_*@kQ:v!@<Xɷ/A}͏~ͻ|«#CThv.u65&W EqQњhDZ./WK~˵!E!Y3H7V\7EB尒ȼU|9:B尮ȼQCG9 +s*hC&]+٬+V%VWlq\ dê1'ܿiO,0B=o t +lOL}U'd]E|5 w* ֳV-6[z[tvU1uoCyjzY*Z8_sZEAV Q-]֔I=xz0F몶ߤm"z,3G-sۿQ̂l&ݹ>PwUyoREzk}:4P|>%́hFAo9K!~(g^tKH0HJ{x*wN+^HAo*oso:Jr yT= +*tE$դME_ʀziDчX!RB''Pf5lJVwQX\7$CbJ1 R~K^ۿa ptCyq/Z*_ |na G5PI~y %VO:hT^Q|CVKc=D0j(>l CZ~<(Q+`*#x^(H@\@UҖ_GI +0vi&Ђ&֜k<RT<4aL5ĉ>Tr+zRYК8\rCO[~`SQ _vS=XCAYk-غR&AEߠغlz~`F?%vsfS?u/l~R0nfA|3H.$/F?G7 ڻCA^?]P?]@?h~~~Ik􃋫/^?QvA {]~6֭~`O>\TAp+ؿiSI"AT[) p"*/=p"4cߣػzBnwΙMIE=&}ҹoRvJWpoV_XA8ߝе~%nIr(]3Q2wo{ޕ'?4m$@WY$+Yd8+Ak5oY,0m)o{Ux̩%Aϡ2ȱJ|WЕkxM Fi\{=le%P(Zahs&a@VX&l^Dѻh2A ))Z]L' +U> b4VN+jYgիwm!NW#p U;kU{F_X2( +Tͮ)Z9&p-K.}ҜP~k(Ӓl'e4IZLgģ>&C`B χ[lo'|HʩRTp%y^K(cP!"1"7_:F \sO5Ęޖ)/˜ݘ$~7GG(]fV\" {YyhMKB1- q0XHDKLH}`ՉKNTtN]X_:[NDo'.Bhf}YH>g>aZHM'ںDwDEmOtڭ>aZH7􉶘>w:YhF} m'.Fh}})S;mOۂ|>֝(oX}k}'aQuO]PEmDyۿO\SE DO'DM}.O'ݙ@SpĹd"fq1.:'Z/O~>zD71{iB; j2tARH}<ש>^cOWvWwuyVK'DOmC`t!5PĝwV(ZQh& +E֋Q(ZV(ǿk}'m$[/FyACt~YhN^>ڵ>o DK{(: *|,[;K`'./ܦ+"nBXB(Pt'k+QxqȟQa;ϡxFL <-gAj4&$ ҉S$pVTg<"ʙޛ|l=Ppf{x\"kĹSN< zAw0嗗R WeƛD>g-|nG-ex=dyn6ٚx9o ؕ:KL1U]C|·tlfההN݇[(֠:Ζ睃<H-@3w`;;+($|%Wg@>d+ RDʫ#|Zg.3dB> e ٳJw0gF,ah@ijF6짊]-bP|l*܈{WmgZIn*Op9Z2Pw#x#@T>Ϊ6z0Y!JCWZ. zWG桺.H,gؒeV4dgb$5#IMJdƼj釦7glw[Yz]Mߌ|zm>R+MK8WP}%Cx- ާﺑ`m/:"`tG\;L+Dk=mg >f87'ehT +ڗMLIcY qT퐫* :Suktޏ(6ܮrq%/D n$XGe#!wԛp/tI1=SPOI^~ b9&L. +@nUьDC,~;Rwr|͐MFJ `]y@I&~cF>s|n,MOٞ||Oa{Rʶ'8'jfI~`#:=> ZŎu˟Mj{U`y^cgפ R ljxOyDu Cx |:kM(c@l*Dj X'8'볠.LvRLD7,|R 4A;lU!U"wB:PG5/j\zx1r>]2b*0I1H>^4:(LRNV5:\/ q',3X8@ꗗȶ.?4K,O\T 5ѷť7QK#5|=\k{t_<i*!Wpy@rAWM[L F o8>5.M M oU`=ax:ܡ6?silzdmΫ51lY<@$˘quP_' +יϘazf.ң&D FQ +!9 D-#/!ulUC<@oB?U8=._|^|rutWAZϪV:GljY?g!銶%/Y3[녙]lz*jP^~,;wHmvgǒ|~#V$?ARkϯzBH7v +2suE pf`!zU=ӌo +n$#C`>桵ٷV]AUL>: M[`" HE5+0 {V u" FuNxgJ;2ayX0/,$e&!cAr +|qk/> 5y kV̕e_Re5D(N/Ń;ܫ,(k7Kb51k\ +LVq57k5c:8>),+6 +Zs0e+j j.=TpgCFds"PH1Og|8oX;W XRT\p0rIrLȼj$Fݻy r)aELg_(]%84}w.8"|* z|.ghIvfZ=fJ +_L #MUZe%%=(/>֋a'-vkx>YM/15kY槨kkN5ۑk{\8TC(64TJw,>rKQ +j"J;JQW(`DC ub}4T4[N4o!okx ǖD ֊kLGjG7(ćpaH"n^@7zV2!Vyt.V L݆JJo C8MS+1um]^L BjQaUISEg!v0q b+Z@q0 +ۙm<_JqLhP_GI+ƕcpZԂ@eM`zfmYͶs1V׍3$M3ƒ8iVUjr*UBA(!گPzatx!@Hzѹ2+W̝QZ$FB]hc~>l 6rfR#g |,LldhH6 Iw ELu=s Ȗѫy|J*_B$dH' ( %[+NPC +XϿfT=ݵ1 +-&P}YuFyqۿc4l[3W J7!R3_ f8`=S\_vV\.3*X>eY@1&&M{p!\]O Ap OF,~AnZ{KQ71o,g3ςاҽYB*׋XXNS;OĂL;oaYY; k|/JE+Bn/V›n_c{*A9Km"rfd`Oث/r"egAӺǀ”N#X#޶rXվE4eW\^3ceø]0ZZm^dO V`uJ`z~ +^9\Y֊ ̱D`F~œJBZd}/w-F~ +!'@YR|Ja}+.q*o?OB˜ +U^֋܊(˂֨+v|+wpt[`=pC^VXa3yه?*Q?XЬM|"^tȟ#׍pqqcS! Uݏ:!Rל7s'r3Uv]jZد9ZҎ%[ph)?g(d%*_dp(iNӋ6ۯ:4%x]ZK;\,4GVY")`OG,fvUj'E־ +~8ki!ø|SyQMdraQ|,,[#E/ $F>B5f_edŐeat帠Eho3cNfU`k  z+5@ش ~X_ᖗ)Ȱ^b-E,*~^ٝq) vDp|=53HxLw[$(p| +yYU`#U_C\H`gAyK!OFwu]f;@(X%ԋn{qpI_x.`ҞO͛ ĥJU֞AqXTBr9+,rxM7b尒UV+/H\S8I7IZ@'LX@LFIքrS#&Pj3`FڜDg7]KѴ*oeUN5~VL +I &.ʍk\[=SSߎQ9s_Kqo([OtAq῜o:7P-R*24> Uw +@I~NgN:qfuӓ_+8f#oD-b5g=. sMʽIHdѳQrʩFhkEB[&MH0!ښV҄Tc?z44kE#DƏhdc%6%ϯҜvJR*Qt'CǁqHxBWR>VR_\=_n9iSD>E7:H#:<jvpEu{^iCRB \+αZkkYh@稐!9Bs|i' +ﲶN%bi֥.0F/_ُ|f y`u^i=Tc4UGK*֧GzR.:> 5^0XXDL ;jo$wz݆>|כ;eߒСmƨI xHB+@']@~$E&$ X2$xH>fɝĞ\ Olw #mQ[b>/ 9.8*4g͌pWJˬ(4kV`oFT"PM)tvWGEA:ms5C? Ps 'TT,n*4΄۸WMYh$h83MٲJ%`gbn!#  q7"Z&ZO=RGBhP4wbTy٥>:m |)W@XՇJ򲧭JmI;lO[ 6>YkˮRj')P̓V/jH[58%r jJh֎x>>"J l'@(.P"ʚ5T:p"H'%Fb:R^V."^exPY(HC;҈YD65ע2s`:P;gƫVVA9nFUЅbelgpP z \;=:3Ike?'QmhU*(ZI*_ƵZ\[ ĩ*\2}9wZy7W(S>#Y#5O1H/)T36gqK%_{HBjz=#)"iR1/+ӓj5ƵLl+ITJn+?['/E[ qr0TJ@r*`.0nJ 0Oj] |e +JLbR- : <+hxE>by4-gb[] W$ hɪ.cm]קiJ~nD9@*%'hc+AaغW+sjdHߡ?DƋϐik Fw_d<@;RڃWtwGWw`D"]݆ +R7-92F^ȑr>krxV>2+gq1ˢQVtgjFJ|Xv/m>H `.mAE>@(k +#š +۹@";Ρe0@o='92>%c6+fF0ED_,9xx!ߐ\ +2w8fR (| z뿼na` ~ASob}}!y__ .}?|sH@w)7.Eɹ:;Kb+P +Vؑj.X RL=&yK%X;#:kv%Ls ]ǥ%~ӄcp"䲺\R|!Mx*߿0woD{^ !W{݊.|753}|4F>#,z9h>RW~P|Q&eܧ\6,>BD2&K"z3Į!WH)Nf.Wk"L'tDNWjB7dtS]\g34ʥa.>9*9_'+-?w%|Wqϐ|K\8JGYw@ +cQ@+\{U]X\3w +7>>vC qL㉴ܔi*دQHYZֈSDHVW ==OZ^ "SgtLrE+lXK^ +$N  oܽzK~o]Ϩ$hl8Оeh~.HgS"͍OM,gҼ7<ﯶ KfhS8UDk]PA%,#&4FuJ#=m^^|ߎ2ii ^NI:%Iӏ?K׼=ڔ85][!ks;ו8="G8ӿ!˗?l, +r1Cw/`t¨8sz$ӹ,ONJnnv͗?5a4 . yc!OWpOiszUg,e \|S*|^YU:Ib[DqO˫%K!q.W6-#Z2v+^Ya~ + +u=}֣%9(ť?(dM!HgJ`q+<=%] q1 ::<mTȚFn@0,>nqܡ)ǑYr;3ْ t%7ӂ"CxH x s\iG#i gn fKo2Ek0߽0SUB Jv]q՚^DgWl)&tp= C`vGk km9ߪ]$8xeN7:gV`aʣo:Tdqja7] }m*/^D/xWTkr(3^NctKXh֔:^QÍ^!fg^MX4bd}n>7[@spHHG) 2c6֫tfJsߎg^fE6AD}66MSQ- M^zZH1P"Ch#l7[xtuն$Rd `#HbdtHW虹CQ̠Y +г@Uh>\:112؊{>~>B8b^{EEcJCbz4k\* z9p<QInF##F`;@Qx`{8mL6]=QT467ҁ飢D_곘ۢ!K7wE^A 7!RNzGaRI٦6rXDcZap@ko,Q1:Ш!K/@1&4d)H3y3a%i@@s[Zāqbkr1z8PPd FbG\9vɁJchk*0Qؑ0 +eBrqvOx 1kynōkzr=uf*vPh +u ޴F;]đv +M3܌P)i. VX+knGKyAkt$q:N+Qѳ^u*Wa xCg}_Dz$r _༡* _Fa_'|8E6_'<5~h-e%6>l F/M砚üP[eW&ihne4̎-&6-<ھ0MD 5HWu[nս/UNzO:7}~%gP h+WԇŊzVZNJ^QW C| !C^|$ݖi_Hb) )l碁c@,xl)^"t)U_kۢ^G#w+ŢsXtf̞bmS-{0]?'- ~v +sE G!AMQBըP= kʏJutqb[Ai^SOL4^Őh,`(@a*~B@> +K12bŦFMT*Db\oÈjVXYG¡6|IՔ/ni> +d|n=܎ϼ3++ +>~S*x)ǦhinttޔL^ !`8mt8vw~LJ 4[\ۛkG۞֊Ah~^62vģ#)x:q˝/yB'x-:9x+_ᓔynj 8SSj'^iK\-mOyA9[ <ۻm4_˸<Ãt AOhW;Ҙj6Ty.x1,O +f]5!꣣|mh^;,0aaő,iաm3̈ QD:Y.̎qpV]YU<u5!IT"$S 9Y U^wCe;"|a "!ݦfIK #Ì L13bf?8,Lh9a䃳Ǔ/'d}0@0#zlL5!9S#<3-D5\ԷjSkC=?fu;^.`CfgP{xS"sO#ꫪkG{޵}(`/m$Xozoy(E_H?ةgOOE{*FI\j*b>u+>ƖS)O݁Om]"%>U˟:v^W{d{^nГem=N$j4,e/m|?3TxR׊Nޗ7m!OӞEFu @}"*HR;"Kno̢k=RYt/ݏqz*`Ρj `njJ'vpҙX*%䈿Ӎ´7kRT 0$, +{*XT; h|U0#P*tm/v ҰVH:膺"Xi.4V$(87͖ۊDe[hj252p!*􂽀"T 'پu~H؄X{2G xY%8Eٿ %r3 Ư]䶃fk"c^k G?Lj/(?'48&~F".nvaQMWcixN5 [lm"ۨm|C]%vl7'K7 y s+^dqW[l3t>BU!!~8Fbj; w>LLF1p' +B!8+@udMAp FWhluwGuo„Yם nL.B&s2~37矸Id1yPSŠd4T Œ>gw97`[Bv"ۗvG +fLQOfu]nYt/L靘EVdz>qM]@&^t8QN]3ž +2+^QvTZY=;XQ}9yI틤HoTh$8 t;w~an CeEB"z&3O/CSL35,&UxvR I\+5Z!x$JY~ZQG!4` +A0دJS?\Ki_x$GF_;B)-%(op 4ۨ*%Im0cmgm\oY- mKi6dֆ{\Ժz 8C}^^I;wU'j]WkXְFFj#꺗ev8\!FD/tkk [U#{i ѳ.XCͮn?P6i0?yT/ I_ӇNw2p rP,UV +( YP +,AL-o0LyI)l9#VP\n*,đFn6'0La܀9_I7AAa)>6Z i?h;'7:v}*[S]S4^.ѰCs]8֬obpn]t Zr)+C'3j\ߘEygAH`·CGkQ_[HDmgc}@v*Ǒf + 1FR^7Qgكp %A,0P%;ўiDύRBETQh"x4[Gq#W%s'NYle[#; r ҲY[܉ׁn2 +$CUHt+xqؽß9|9̤dR^2)eB9tٿ5~jf|b~ck_";J-RUmf;O4+^Y*ĸEmhmbGV#7=x-tLÙI99 +,74W{Wܾ$(}.}+ҲRloBH?$R˜b *D6Pj+%&_VOM•y8+]ܽ2Qrݛ~2QPMp|aGrKѩ .}ԓ$g@ɘ0.b1dr3DpYHzk`XD~\LSB} ;s䷄D*`=H~vM +ЧpPKEiq(C yLq>K/Pp4_D?,Ki +yz\ ^#Dl-۔I v,fqXL_l͓ؗv$粝vW#[dzu*G7.:16BIp룣tt2itcD_<=da*4#[R 'b—L2< ++0m[q׀5[@ mrYh +:丷a8 &y{G!컵;f1o63Vdpp|IyWiGdQM!z)|RB)f^Үr8 +X ~8W2R'L3ꋨeh -5A9;i$c( +ef=Z4*H$m]0WX̭|IʗAVrK{%| P V08j_B;UA"8h2;@-lca] gnZ $v`a@h3X"cGRa<]_|NCPo'%2u.*6%։ћʈaf~+8\&oDf،u`rf]O0;eTrsF4E^ B0ܪ΢%JZx΃ցǤ.Hg\R J=TtxI@JYmfIxM=K~2|UbEJ1JtwayW2J2yv-Gs2pE l̊ǥ.5nCy{z2=g!d@n':y(ge/!lwB<!ԗ7oof+9("{k@%qnīurl\?*yBi +B9iXџטU[vP=[XsL^FhnZPVOaICq-ߗv=֘`MaiOFM!iׁ !Kb8sho5)*P㛖pf&nSdE&q陦ئh9<0s,q=U@ -|>~g|} +7/S;1d&o/~EԋJZ4GIs7z/=_ޭYEJ?spWڰ!mV1^O'Ǐ0.OzmJ]=D0΀BP'@= >7v|!jM5j"NƴӾ3~Jf9㋩b@ L!>eY7=n7kVh%^ _k%\oeWr]M)x6soѥfuǩ#B>InpFo-)Ԇ2{i|H)RmXM6@R~6L{؛iaܞxS,08?1tuףS퍚-'59ŢgM@̥?ʒx!%Cqa-Ĥh&6D + +8qTH+ͨztm9wcm;74=,ػ\Boy_|1TINY[Է.Ju?U?.=Ɇ}kW%j 0bQ+ѨJ$VNr3XRji݆5lNF{ֶ⽵dȆ@Yo$+d9gfv-맯 BɂPҩ T_BBB .S^z 5 /X00 +D$P$NA"P#Pp~)%ހKX۴d:9J)_G~U\_;g?Bɽes%In-4+Rn*!_)yRr(N/Y߯d_g os X( +n 7@N@DT`3.Ȕ +D:Jiy'OZ( >8(hGE&Shbm23+b441XkLʨ7i'qُ'|2^y?Sd>”MҲC7DfDUDl7\ @%TbnZ0E;G dQ?W;*{ o .۫2'@'Tܟ| D֥k?W2ٴ' +T_zy]tDP|GFքJ%?Gsos?d VH"˰^@wN؁_ʡ*.xZ o8GV;q6SjFJlBxk( +{|Y">=M 2Jx6 +#WvUqc@jmʆ.P"MKLX8&Q#ۗĄ5)|@ VØ:>Q2F*/Af=q3nFdG#ȔxGvGO6O4mto<^+aʶ%j++RsewU`WAXk# |G$et`|c[a^Gl/mg|ҭ1/WASMxJfw3|x2JKq IWPq lw/\7D3:EUN\W#&q1B[p@T\Kp2^<k!,RHxqR,|_Do={ȫǨh0R 4Lo1`6kIlDnI 3As\RCi80AU_FoƃHQ;}ͷ6JҊjU潋y|1jƦs\g97@Bm55 g(FAR䱋[*SwPYﷇv5Ģ^"~5pלdj::rۼ>ŎkNc[bxS턦7qmCe)eRp~ +3?r%>H#,lAnY&47ɽ~@8 d2" S٩EˑS`?ғ|e!΄NB%?X'ܮh_ /б'Uг7}3v^v:_S&DPY|dV"TY FťS5=kD˲Aܧu䘝`m +Vmb7I|#Ved]Ot4f삾a +<|n(k:4_J k^UMfn2Lx,z:z]cPë*UPښ)ݭ?l_K.O-tA%zk8 wݜ$sTʩϨYvih%=-puWQ~ATiQ2WP+Bk[$ܧwL޹UC:ĚFяWfi$<ٗWUlVK_:o&oT̈́={~.o@ͪqp<CDL +1-!h1} hp>zR%IάWic]^9^VIBt+FB+\6?S6pfAA¯@|J?]inPhbjXtKgй.Sf=NEfUHہh 4=HV͸Ubg~Hԃ9kqC^VUwy;oF`;Ixw`jQ-Zx]Ɇv%DGW*Uؚ2.Е%vsӑ~7TBdd/1*i0h>S7G,jq;-{RA +Mlk$-od1 $3FE~wyeh[܇` 7;70ܴW|,TlvTʣոZ%WKv[uߡ7.;qv<=zVJG($(s= +\=$Ѝr>r^B~@ZYN*Y(2gwY7 YbsYrAfb^uM,1&v [;8b ˭)x8PX0щ~S7dV r DJNT$$։H$6 YV+6~UvئR\-dT ACDVK딌jIΗe?qgxY ؀'m>;(xo8 w i؄; bA}&/ԭcX=|zL](0~aGSĢWx %2Z /YR3.KE\s +řWP: hv),apuna9H}6캇~ ڝv)@壞z'[,Z쓸s/~F%v܆z*c-fڡAچN%Ѫ`ﰥYs(zujk%CZ[0,(Oh|%=ȂEVZm ApȮUo4 +۫l˂]ê& ˪&瀟~C7~ÖA%{'wfF_W1!HA}ɔO9.W0еYN2 ymLr#Ai))S F#Xgӻrzgfi&UPFq9-a@^7@܁@ʜM  n9KMP4-2%ށ뢇IP6'(61})$.>iD3P1u~x gw 3"y/\gO}EnuX9,˜?[bƹ`=r2L…)IA{*[i:& gD?r-luθLYsp1n_YAv]n7頪_9mRJhi}7h =.nn{M+[e"9n3?2_F9bQb,q1W5h,4c~8lgwWcYLoH[YzY#u=4S3XKdƔ_~`3(GL? +fQ0ӏ~`3(GL? +fQ0ӏ>wSe 0j35+wq4|$˜L9mhhdK?\ Hjy'UFa^:DLY_O\V_(=Ğb [^X{Z{z5* +=n/~c7~7 ~*fo=gUvEv} /;o6<q'} +0Ӳ44 +Uzdq,(n^gOù|oE+ + Ld畯:h*[ fP&p^X2dOT%g*pm#T_z(EV.ƹPc`kgH8Ff8r~ˁB;F;i@-O.A +F.픋W C!x$EB,QCOY%hxU26gTK샧pD)B8ĔaC i]aioهAp"ZӑӋE)Z)D`[\1DڙX%g;n qNWV4auMuыVo>~ÂI\RD+Ӈ~7ȽE֡nhyQdٛ*JK=IJ#Gk2ٜヨxs |Hܦ+ڮ}?9KK^^OG+9gp8dVm/^ehu8l*,hJ9Q-^2fҚEnꖚ8dnD_/q5 ٥O˙H,r[r읿!Km-Tд>d-)K9)4yieD8㖼*O !8`YSgU ݞo2{!L[ľ09|$)y~Yk\d uC)~+O%ɬdgz +{+qvH,wrW^9nnib| K +Uuۣa쮰ۥW8Kkyc3pMpupf mTDѰ bSn:cT,+s[Ś +-yBy WccULݿJNk_-;ಸn3VmWbc^eb|#kTf_9Ul}9d%un^a<ĺAg0*FKfcV! +`3y}oyQi7d[( je'_\W6u# +E.1Ut<.T+N^}8JHaZ_\^9׈H<; ~$DRU˘ Rt8 a#B\mgNs9%I/N.f͏c A%~OvaP.Mq084 ]@_op-rMP];gnHYv^m5E73i~&[^L+n[cn~-wݏB[¼4>/dY~/JR\s.,#'HhV^ljN.qD>bd5& M=RqDJqCQ +V٥N9Q-jt{^4{@+SX="nΈaY Jce&VKZAWΌ"Q?0n:H!9KMЌŠm(.lB2@ Ů Roz$7@h9hESg$T6>{ @ +ɸ T^J@SRU@t^XP2oM=  + x^5iSRJb,a>w>k0C9М*.:H& Tp%Rd& d y-֛>íL?,&k-u*`XbUI0G@| ]T^v9{FL9ܷG u*2jޭqܼn|c(ʜCl6nYST\E-Bc2%{bhiΫpXtDvTEi[ɬh9UНN!f ';U}Jj"oW.uz;NV=:N;ҙ{Z4^p0;l;xqţ{J4Pm` vc4wdvF4MbHMF5d̞hXD0OlFYysOŢXx-Ks̮)iPORQe1F(՚^q rBwcsOA<~!/g>Ltz(D'}3BbUBAS .[2ԐU[r黟qw67Fтy3Seqڥ,m:˶lSK^߀T-H#n-HlS FC/>,Ez}su^Ln}L G>v]tV6@N.hS=Q1>Ffq2бR,>hӺIۃ>vFU=$-@b`]9hᷩxMNJ,|cs}lpX ?cVP}KW̢ٛQPx;|9H'>MA<^nd<:PUaљmgCU=oLe ސeCyU.YڳơSS8aZGϫQ,fdv|cNxNyH|Ӂ|T|4w^vH,EW.#l_g< + pcc^}=QS¿A5HB5pZ~>;Qc}fgp)kLTRm^ehv*j/OvTv:N /t2NJtV0_HUtCz ;ũ\)ʲ!<\eUfh*Z]5.o F]Zv> bjAQT Tm1"#TO%RX LDz<1Bu :~>"Q,HՈ_}=&-ۚx:-yGZ]=YGW.P\ccIE*1N[ ٖAj:XW2Dd(tڢYC\}fO iH}Ӹx|/MK;1ͻliӼ/7`%Owy5}֮֡&\8`STnٯH`qHy(n +%r)ewƹbq7RhG+FI/SJ\)`پ+$)X(Ar%1V 5ꂪ?+9Q16VViB8zڣՀ3ǡcЕ?d5Z ۢeVaؐ8L/ӃtjVe%L|Ub퐘' S hO_O waO c1u}lTq!Fۇti8 ď~ˮ4W%ܞa(i'^;o- %:kBDԳM]"}$ _H z#2Ͳ[֟'/ } +ո{N~/U+z@oq~ {nF=!K%9qtdqA˟؅<,g-ȟžȢ-*1wu,#xqgJ }`!8ŶyTq=A[9Ci@{- WVŃwBp{9%ۨ 孯s;/Kv֠9&2R͖HP4AidioJ !gр̴)wm$d&Q}}\QgEvƂ X\,psK]qWbYQIw"~/:q + +˃6}e9My/)W>_ ~nxNE|qMG_u]˽~F v|aN])IjT;G۴r\TJ r3VpuM@S8wS8 k36x>y +ňb}ŷ'h8 +l0g*?? +CQh?] _وy_{^PUkRgkෳM +!Cy.y6 @ ېg)pjz)z {*hԔXsΛ in$&>Ws-3eG05xYRVw?{| :x#̛GwԷ)H,;(A_=?)n +vҙiuw'y̲!($T!XV̳_u+IſsSxN?Z2j +ߎ|xs\ZN-e׊eߴKkƛq6w+伹:_ry$@ێs=a?ce/o/ڼ 0;5 vsZUR:"\T㣜TȟzcY;ZѨ)#p+;@Nk|owhq7RYD* iŻin;Nm4`lw1|(!&vA{BwR#mc>vq`KjCqՁІ.0k|֩N5/Z)njuPm`LLXuyU XZ:V\SofuѰ"OG(p1 '.wfB`H!;ĺt9TfB3˄1S4ަ*_ǪN1("2LJfICvFl$v!mbVR w])[C%-Ns`Mz *|5RiF>˛ *5ܛtTNbg:ӸY\ew475#k|6'tgxeB0:om*!)@W+MQ(O, +'],WDD/6A,zN05,,rբw4,ow] F]+\:x 'zg* +/A)1X*!͗IdDŋTrUY* +\V)F7KjKQ*EtG.'.!_\GB `&m<)@?mkuMW%>0 1lہPd*=IT&!eDEGnwns+{rnM/-ULu56+ݯlD]h>)VYa1sovˑ[^Sr@z2,`Q"/B=H]P=1l aR1X4r.cw.\}mv ntj'V~#0gZ)E2;aPq@$q`y)DUM4p"CL^lK U oNaWƲE5z}v.3X7${̨RZ "0%W%1%z(Ge(aUH+cgAA ۹g*I Fx_I&pGϖ_HS`e!l`h`hN$gŨ3 +VfŃA$}T~'w?GC~wNCNk#TJ4Bh_xP/+NkL^ ܤk(%+mRgR}??-iWv#[ uV=Oޯ ++\G}aS^2Xa%`X^W"3"Îv$ؕMaE).2Q Y8Yppp p:>r׌k[o??J!{yY3i?ۏs~ [GeC˃niG{"+vQ=%,2 le0}KGb9c?rp )YsG[$'c4C}C !bf q\c9Hq$hU`E5V ݪ U8=)qcK [>=-byj*/'w-CѺ_R"E؍vTA4"`9$7x>&+e>{sܤ| 7@߂u(U'm(U3JBduܶe}Fd=\^xΉZUaӐ~rYY8nq,Y<M/!29[^8Hi36ny"$(/EȹZ A jf%1o{J5O ]@fyRWN\R\̪@hL3;$&;.&Qա+.Ee%YxަdEq[\ѹm6f/&I=X@??;dPܥe*awPn_:(ځ}wܠ8ȸ:oمL6Rl%͉JQq1rtͱ#s| R2&/~_!1 I,I<h$OX!o7S'ATW!XxբhTfaakNʹ#9J&;a,^CZh:IbI0T[?#'LYYh+[yG?'𴢅Ў<& ͦ(0~$0"RҫXIqq ¶"x)3JGKT*D-fJQVJQVcdE&J) J@A)EA)BA6 p)ߟQ1$ 2Hf7j0ZXrNc qZKFY_Q@{5q ڔ<|D!+ rۭN] Y.BwH19祳rd g-\:X1^W?1ۼV لVDc%TgY_zi]DTcDx +ѸokU)kq + Wr#&OJvD7]v˞vdAM3 +6}t׼\0y09|NknWp6u4t?PgޠCi` rbxKXn#0d00փưx +!oʥz nЃx䬍#NrS|}AƘxE88c!Klt[N!GU?6psaUQao,^Lͱ#B{َ'mx>?)x~ύ~Umgu[Lo#t8J]@< ]ޖO$vzk \j+F8Vt{Lcu_BigV!36_uY8=[: vexz?%#`wඁ"N8̋l?֏pYa]'pcڈw}Dۂ6D>+w>Ȼ/Q> (xݎOd +\_FާdfȢ 5.3,S] +INpy>V:|m(\bsyb){.]H[%շ(-d%Q!V)ETj0 T"Rw\3o3< (3 qS-**UCŢ?|~pÂYJO .kM.{&98ъ}sU>.JM#pk+,+fbo X3A/?:y%Y\D}dE~Af58dŵ%a3j]%xbrxG)&ĕO޸ =ΰR=> DA M>8Zߊ !es-}٬^Y襼>s1\@Bg&y8&YRQW>6AǤM|&? MT =Pa +kt VCcE=m|-=GԆn|t!ja.Y!tcȬ#ofH!UM aiqvi +p^ƶw5'IC͉EI%gș*79wN7w{4uLW2>"G+z+ +rmy?/͊r' B#,;ֵSиB7 SexO<\?)!y,4 {/Ejٛ +X{ fd͞ ۀp_ |:~8"L +bߣG5nŶ9Wmk{SGR:;vN $Q5]BOƂ՚ =( TOK_}tSio\~TZGlYE,qŏz9/딂 FZ萍9U\MHj^cS$E"N\PE ؝T}t5Kۢ + p$i|Uxq㝓ˏb>$%װ=J0]o >$lԢ$wKg!>^In0*epԡ$:kw9r%8'x!bf]t+ :XV,v7g'ݚ_HEsܭyܞStAklNDSz/s𴓿Ru q(s\R.)؛ĩ8e# B؋U" KlcH>;fI)9iIT1)|evPf[.?HʬO!-(A7|3|05|4 cmrr>)'+=tIi(K lj:O;٥;\K :@;ic-K\?;?&/,,x'jKgS{^mo: ֢T nywHɽ@g)y;Jt>>~#y+2tTJ(~Lv8t?tK#BRF7^ +Q'e^ܖ{_yg9ظO!p]gps_-j"Yzky 7єw)SJD$M}>c,wf7޶?b$ˏp9$@!\JrDIno0s+VO:'sJd1U>ڛDHɵx<%|~ ^sxJI>/ +;%O2g(Ƚ]I>$Rxo‰Y@,~wX +ۄ`.9LnUtp)WaK' q>zN%->Jp @.b1c)VWK +sRIR0j$(t(ɇP?;vJ9)x6#1uQ,^{8-c`9gZگ£/@7H;=g|ifo7&G:┫,q{/ƞQpN9Op p-юD[1v.3bB_V %*$];4WNA ]E/HOs.GQE _VNm #fZ0tn4 %t>G`n#}?xH;NkMԧ>$!gB$693 95M=7MALiY%V֕f*wӁ](hu+ ukH/ϩݟH/%H=В̋rŠ}S/@Ө]Ν8†R ?DvރE5 h ?9Pg? +**оE,+ 8}%niç((jZr#  [hT*zKfD# %tV pb1pL -CKA=Ja +ptRr[jx([ uMKg1DBdY8,7Kx-.Zr5[݁jٝ~$Vٌ$rX]a0ۤkwe7A +c`0Uʢ +hWʈF10m^D0,1&wӢ`)ٹ^vO_ԗkx0Hm# ڭVuLO }[*.R2NWlj$ +\t X2ۥc-_xcxJUh< rBfRYgyѷ'[XճrӁg/iU8n*ujI$xjVc]n@Zebx >IF7cpP>FqNp+6Uhi >n̽i]+Rnjyr=d +mC8MڈZpDD}@-8F}H>Au@@uQ3@m5YP KmM55u ؕfӐP ^ M:I:c<6"X15S>Fqm\R"pE"~B1%%|"AExP\|RpQ}SfI0f R6)Q K^:M{8r~ +ѣ4^N\{A6\(PᒓĮ3b} ,t +aYZnu`D{tn/-H2(3|>V 8 +8 +Y`V1_Rp9r EagHH@EIMKAa9BPe~y-,sNƏc5<8B km`wqZ| N`v]ןA(-"gG6[+}FHa +kVD<.GwTㅈPƉɆ< onD MKZ8ԒUjit%%]. +R9+CHNT{:fYzq% +c~)0ވ$E?o $,pOIGƳgZ~7܃}ȖqU2 V-lfi3^j$[(Du!'|QU%s7pd = {$qF<6 ta]CEsv{dhl'v>,VjL< tM9,to.hrNfUP5|AemY$4BQci9]Y`1BX`G$cP:QXҥ)!. \'[5sKr9'lVBӌzZ #% B.E\:AAys1=sR;&>lh}>&s/6 |+CzuWSpӫf@RY>mly*+PYRF6Sg<Պe }>ttMKZ*B<5t3 +LCx>7fF4U$j~X,#AŢ&\!)mL%<1YrB5#]3EKeNb`ŅY\%xԑ:EL,M7*5f?M;ewyIyJU:WL\-ZټzZ]9 87y =}z  +(}L xqJ}k7=GeIo_~9cꮫ)OTΩ3Ϧ&yٿ, (|=^>/𗗏OHǾd}f6] +Ե%xnh|YrCGט:VE1Kq'!2^3ΖiȖ[-j5ZS/wKStHc#Ͱ0ne`8VR1C*{ /pNӳTT(rp&ȦHQPqzsvphXfmӥ$ ܟ B1p*P1G><>x8[VPx6!ӳ:|fuJ! +wt݌O9N`BS{jp 5R 4-|5Znjl4=mQu)ه4[N%4|zN +)c-^Pup /fX_(H" E޼(xu= 0uD@UϻL{v)CQ/DqdbAA`\`o.yw4Nڀ@t"%0Y 8(eb {dx0U/Všf<n2|;j鄴n_s{>ZnUb)|k&: = R; vH-X`%HnoaIa11 4=Qx/݊ _HRrwyRٛm#Rg/\PC P/@TLг +)] +sIfs/ L킑2!u$A+x|d|0@ȓ{7Ma&8{ǡ&g5xB}pϸ` k^/i""Ceϛ  @ЊfMdtlDaa.&6A>63v.|AyDA;$.͔yKp+ׅөًe\NoOӧ? +OiDt%̜Ԇ`iǶu@Xj%x+{7o9$8_ݠ;wq7 ^41 aƃwl<IJ*˻X<|"@~Qx$?I8tqAkl|(7E +I9Asc#5{式iG'Ț4 'EW~K)tb.ν>:S($ L)i!QF + +َIq(d9|O0 tLճy {LvL@|l1P2U8,e+@e7(_tRw<@7ak@@ Tڊ#evrͯ# ( JF4RBlD|4fidw|qO7ү1#|ېCS Y&2Gr@E3fj7Y&4,Ń!1D+4( Gh|=XIA>i[21C0fQxbQiu&n3LܨAܨF;/sW&~xD1LX@.Z!F_cf" p'bpP@`?K:u?Xl?n\q_u?ۿjOFqEYH RMO'E{7! GOyĽ +nM3-WN ;M GnjO}>@^$ +YǬLhPB%rA`"0sa<`B,EAŚρ}BCޟ(ۧ~:&!&: J|=m|x <.<7t 8#8|o = `#^!Ebk !忉_+8B(4xPs A.Ćݗ C,j*H'gjk~/ZDZssU zZVA9Icg^a;gK(o[Pz:qg_Bׁ +)U<AM^%o%8 .$Ro0<>lqc +~R՜ӚpLm]<UR,[cd͸< + e0kTBP4ChJVqtSk蟁tlC>`%.T#%7lTԠ|m=p=jl*聡}/GU;@6 kgq0\o4$u>HKb]4x+ňJяq6m{(N%XesnSqI0Hvhn/яLus8 h +LPaHe RqГ0vR4p!>@`Ykz(;^eOoۚӚi4 '25r $CoM׳܉Ӈ +ʺ̩ +kl6M}M獄H̱PT ^28؊hlD\f," +y u&dR{q.bNa}0рW򃬃r[PTq""_P[3`G plEM@iFi{ʼnW/A&e|t5$#Z'czinh +N/N9j)>pT,k/&̱E 0#]8Wŧna Exn~}NZK| +c?HB8 + 2(>-#v+ V>UiiVpM죸i7ơdH|bf|)VA3?{x8-q AAҡA8ͧMK7g9,ѻ˞+ XF<+e@1L57@&B39АG>Kp1Rbe﫨j'skz;0g#m@mظGpn&?eȸ&W}`R6yiB)O,ڵb횮lq:ꅳu˂HBxL0(0gcA>A +@As j*oh@.G//%Ѱ%(Ѩ1O掊V]VN2.u[sx$4^wqmr+/.-0`HG{G7]40xV|I9jVeLUGkU(+]3F OunBZc~ +ȏ eh,ʮR @)+RIOc!v祅n igRZ3x/O@gevNҨxC4brb55fSiXi'O X+06ϙJ9W˹n;GA"h3 !бKs<!18؏Q/(rob+5[e=Tcԇ[ݮK|_s +9Cwhl4̿R4`H!qT;1/S[ ?gC,SM ~{rh˩Bf}p]ԷASˡц}qPաoO٣U[O_źA?@>N]|-K7|4ħĒ 4InlyoW I[:,O.zO5 9NL{W>COW|ap.@iU[{I +k r@6rK߱;0#؃30=|vÑV\iF\|!Хit}Atk7DxJX3ʫ;} +nhĬ:o͔ó%=l@+tP`Z??7JBGO>](w]4§KBu' aq8ng_pFLINXYyl42MOkK~F/@ÃϿ3Wr/5 V^3&a]Wy; ,znx)ځ$}C)}>5M:BCٜ^ϿR/x'`ym _UvB ;7T=mt >a4;'tq10"eH[`N!ZtA0lfR;E݊Iw +5))$L5Ҏڰ +ʽlT# +q],s A` _{`4N@IM^rȎW]z},t!q%D>~ߵß|'d@RF5'޽LQ^(xks0#ZG sU4sHqaD_pfDdppO"p| ʯ;T~>_ߍͷʬ*U~?YԊA*k5*;VB?_uK:uuog,/g[4aߠ^ <, iYĥg[|bi"Ŝٖ ^h|EͶ BTXtx5q?DrD$)0I_`M [ALă PK pa?Dx#NM @wcG$1tNr|VJnijj$_Ul^dx4ߙv\cf +/x|k+1[cE<4}< 3^y|=Ϛl|Orw_e:x5fff7qf fwzL2滋|i7w»ГE4$,˃B:}0] }nm1k )%A\i3KSX=tQ2>V?h(p! yЗQ`ۈv +x>*iLqEQ&k(lIIvT r^AY*B4@&oOw?GW6i(6l+bf5-λçq?јpK+K&DRo@3x̲M+:@|`*!6 Nh2u?ܝx_%wF{D$𺝋.6= = \PRn).6TrfnaIg4uwAWHժh`vzN{2UtVI6U4ɘl?V&Q%['ԃDž}M=2l[$r^mV ;p =wB *z hbJ ,'Wgx\#vTPr&j揲=Q'aMrFXG 6OYփzb= YIC0zzpY[#UnNq?MJӸӤ#'pJ4*ė___')&f"=jQ{ >Q&-Oc'xعZa )s{Jn >ZT-~$7f%h4>I`rbP, Pf<*+QP36V0z#NdI:A1,o]PXzg|a/v?ٛzG>ڭPJ*Ē(VOx?axn&7maR{^I|%xTdF͛|~xFEOla?!W#놢=Ap4&b)dIVN ϕ^ W2SW?=eׁ""4 $0wXzʡ/ O3KRnhs뫲q%Hl/%?F*gnd[}~Y|D7r?WEoU ==`1RHmb 4)Y-;ޢf !n𤏙_I/3y3OZ~ЙujgMr<ǫ6M<}\]4٘ v;_@Ww{}Hո{ڳNTK6<0:T_a%/C? ZY-Ӹ 4m38nn0ݟW0-η6Qk >ѡ}*{:և'YoR0*/E7v +%v/h袡uRp[{tVYU>ꖓ6<>msx&-G $rrĶJ˷ZRCe. D7n慍ѝ܌)f.m٫js[c ]~GkW=>v~|-{TcŵSm@q~SCÕeK!*?<`\ ly G ]ٍYE rk+6%o䊽c֐k:§AMm԰j8!qm޿k3Oћ_PtRq!i yXIPY +DCt4~!#YsMWH7&,r5! mz3:A'; +tDת$QSO )tF:coBC~"JN՚CQl<ԼV'T5'y)CIo(؆ǰ  bmT[:6 ft*JJ*bCVyF-ZZj_}dx+hGŢQow6(세v! =,ta( +| Z}HZ u G6k, ÿ\Áx6‡JjH Hb9f9,g6^W]Buqhdrq3O,%ĪUQEnˊŘWV6%󽎼 jVc%p)w򜜗f6Q>3WX/`^ +RryJf y)'. ԁu޲WaE+ghE*c7~2/OJ?N|h~gW(i4_)< U8X.sa:زS9 +Rh4MHϡ)W8Qs<-G.wĵ4f(8t&pl5V9nĀߎ2X=$Q1nd +ET o;Ś~(zL*j:w<縞t'lKWK Ɖ?PHP5d$G;_祦ryaRK)',SD >-rpW_>.&!9XڟXH) 2Вq7b^ݾS~"'f S?D8oslw'^jl(1JsVEMPb ܖ2:Q@|mj~KIĽ{ q"'gI(}h_ho@,}BP1E7#LWjn$;JM g?4 J-=%$IzM@9Xo4-WN2{_K9l, ЊZytϕPgׇI̩z80[ƴeZyg~D63 s]~"EDCc\D +z0?r-L_܏ܿ 59]E\/XעRBCb~:=9>Ŵ` DB3^ǹN܏SiЋy[u΅5Mex9" &`Nuy谸; +nzHlO>~\<+tK zFn +I8zc$E}BwHHGWXwp]ݘ`rDЭm ޢYwfdpS /@/ U`gE 7!#(-$``c@0_bS|0 x!5_t~ +? <" (,~hbL\iOc|E ]f2E,yR7d'}y\mA>cwEF{>||'ى1>&cwէΩzP4#ީF@yY쀸=߻oSF+ :?Fɮ["WIһѥtQ2~F˸?mDm#ѥm^#k̪5agӄ=}uc`OĒ}MW _܊+xE+x +4 9EA̕#||A$n|"|hc|zyqidS<~| >0Ҭe>D@8^K _rPƙFU6UىZSӝDZym&ۜKSPx`AO z92i'H2%Mʬ+Uʨc?Ylˤz:*U( +뜿hti<="T+R5/-]*%# +Ag 8CORw iyr4b cO Ǩ%w4l +ױ5b_y6j_w̏_% Sd NZ.Ny5>s $ J)V 3z⊟EjxA8v>bW4^8Mu݁8i1V uKB&4:f*c>ږY3go$~gB뫱_\34=)A5 t:Q )O8%xԗnz g"MB9mY3O@.rWq{fN @jBg;Q@Vo#Ay9y<"Hrr9MY4:)^KiSv75iYf0hw$rTJr_jA*n^`T3(ևÎbHBg}99͏{~zٸ _T另v_z_uDThLE 9O?~׏7G6oI/ 5H@%a ]}3N[1/9BЂD#M/^~pxzg:CwLΟNs>njii%/c+^G<sAw% G|v4]ޭd7^5IΟY*B"TB,TGkzPsHHY;&/xQSx.z9x4(s,İ;΋ }f1>+kPGo:Ճvg/7H,eߵؠ\ t4'O[$ZF,epkqsN gY Sua{· npB8fB.C\,=?Ooٿelp}.߲-߲W3N/|_"6+F~ [ [E nG1tjF|pᚰ+TN5TU`.g!] 9paWSaכ fy#GXLC<+Fv;  }^on#\C@.%h߹Ĵ9?ޗS9~WpU #?g6h:kAlwXKQs W!g/EӒ5EbU|d6%,^ hI7WѢ4E0Њ5bp Lhl2ej +svs.Mejf +AY8dW 0k9簋'1IҘ4Ξ GzSQj~?<I*!ݳGJ:&~.i騀?| P%T6̎2Ud,BI:QL%|r$c0&߫d[]hm +%|)܌Ou24;R Pho=l/]z >l˿^R:/:[ck6>ʙYsdS$NA&p-6-cmqh0ږB@G[ L;L`JD3 ۿ7F|Ckb g dޭ!Ł[7 ¸Yq_\]6\/ߨA?rhs+eW__?-cbQ< D6v O9e`' d Li\ Ks;!ӄ6ل4k34۸ oŽL0l_Y~~i,o_P-KG}o i}r ~5rMcbWŷ]onq\}&=_GeFȯ4}?Ao".\?p$OGd{O0o8^_:u 1Pc=|gЙ]s`QՀA8VutX6pZ?[g*T'Mu4Һ.GG\딌_/+l.T7)l'˫$0Mqj09swᤋd4P\ e*<5? .V8q]];lSկRI*(O?~7_z +/M߳o RJ\OP;a UPtq:80|Ə| ϻ6~ePc']Б7`IJ + bZwMk>),zz7WzM99_/v\|iÆ;F=4_SqYs[R7FE1 ŗFBTKe})HԏSU}iXdX‡bьa%Y5ߒY߼~ep] +G^v>.enc +2j}irx=egRӿI珪l}N6ry<g:1f.ys:-ӭy8]gB $!Po O`tXt4$'}T໚ua&|醞͓R4 9)؈ ҽrO8 | nƇVx8 x=g<`e?÷b0W+O=uNږEp&kTiN?UBĬ*&D&#LV90 ]Rf#ͫdBmRhJq Fz'B8BtЊ?P\`@0`ƌ5ך|1IJACn)a U󗟵-ט_Mz*+/- \[ZQu ň܃|;Y+<,J!]Ҟ!,w!= =݌}fu0B%Q2b1cNnj $%u,,21(9k_%Ѓ?L#0Ă@?Qb0d̝13 ñY_B@AT*Ts1=5L9ۊDwu')ҾrentjX>ޣwN}_7._xuyWF8Hj"]r{x3w˙ C5\UG#GaZH~LбHpg廘M1BgS'f|S`s&]qJIŷIøF4Zޱ o2Rntx +^XjZoOvWL;ݠs;d co\8KR(^G([bVx+9v(DV@)xuXPY{zkoCXh<ݙ]+WһMo[ +Zt:9žyM5nݙ촱 +?*Fi%n=Cx1}kxNyN+Ir%3!,/ Wp%Jqe +>ﮖ=oGG@ +=&gFWKGCnvVa 3ᴺ&x!K)ivB |6[gb \*}gxqA[]#sA„r*<}J$x|azL%AN!hX"eʑC:' +kZ\*XV;VBg,9[ky6q-cTLrnXc__:uh/_TҫF,^ 2Bd H R`:˫2xɩ# _XCӁT#?v#ƍĀ66y O %:Mh>W6(DcH|[g1W㚱5cjL Mw~za^lMzEz1"䠓i٘ +KTLVk3VdE*"e}[ΝZfwɞJn][eJ~^Q\Y >_v4whHfllmG!S)7L)NɔsEÏevyZ Ѡ.{t"Db ]┱XĊIBGyF'ʡB]c'c* UL-솴f2́i!St;&/0# 1:H,ӅbWfA _& +rɤbɣlϜh0ۓ%; +=s =s%XVm¿ˡ79E*kk5{[5#3R:p$kю53xVc>3pZcGÝܰhA.rhݢS_ϛΒ%Y(}NF\-ȿBGw-Fq1Q[%֯IWGxB*Ʃ .,d`(_{+3^PtKˉeH4 +0 + +$IzYnYB7'p +@x\8-9Q3V m1A8Ca ̈́~$HW\`\!I"q=Fh(( $Jo5Me 1 pL;Ul PiJ2tDُ/t< \Dllምc +S\9 ; }%ęgy !VR` +`) +*Mip/k$MP$!D>I+XF) ѓ!zIudET}iFJ*>`]F_l,ͬl)tnt\ ? ̦Ǝ^.;>noڟ,{\ ]r{ +O ,BMA4b ;#dF ÔD\y^Lv +[ߴE(O|ک$ +Qi,zE<Sjjg9 §|x6 +s~_VC8[h"z*w|e=X <=vH}<8O)jHvn0'92x.v+R_ 5CO_3 ҟb܍U^VHӳX24=%K7׷r;1Ks!1S{} `ӧ; /`;C $KBzL4ޤX1+)[ N@iE"EAzD\SsO&iH4Le88$4(HPZR8Odd/\=8/T01TvWlQN1!B@dˆ< +qtFݸ :8☇.cɘ#3sVs"kܠyAauh!eZsRAyuC+Eݿ(K䦚cY3vA}qB}y*>fXzg E މ(jym qq=Hbmf! 7ɔv[/7"z w5Z/_Z5N}O[{TKv8Z'x~ox{z~y)/dM}}_\z8u] n=хL}d~wu"$twLW# ݥ,k3L܁Gu8iz,(H<htuh涎K'r^i> afe|GX5~T7[_Doz?~J1?~o#p|ܞ~wӻ%e"n RWAZM2W47kLv\cb$$"b@-qq":=Hm;_o x"XKrQ( Zɪ٤4~ƏN<хG?nf;ObʹTPAè'06pՇh#uS["hmhLzuM9R/oUdRVVi5 .f$N{Fƾ\-ZrihVkm~;lN.{V3˺#sGUJ3>dtV5H_v~Uxn#'i4xkq:6&$Z\}PXon}#0RCGfC];,=[)rWL qag +n@еTά {Zj+t'7}r?eO|rlڃ/=z>{1#Ԭ*VkP;z^ +~@j6KޫG7͇],<͉6Oѻ +W>tV_Yy(9H&uCV{U/W̍(X3gKٰ{Hn-;)!ag7t zO,ßM;%z}-!Xӭ_7vhj"Pפ>vƌjxt~ζuEXHfUӖEcm=Daɱe2Hٔ=29vFq2h9(>y1:&9LE߰PA.PNwW_ۄl@wǏJ;S#ԍtҴH!%'}[C)24&[&C/tM@jvA6Z:[wh0Ic3M>q|luyuDWV4 j.L8.:d3 bp,k&Њ~v(\nKBXHʃbMЋvU?n F[C> EkjoOLj]Cp'Bž\ă ӑC/ FcͼFܥ㚸a^NΏ(^3,##j+оhc04}%Aq⣠y`b3Xt@ljFuRXwU֍ͯz4o ++T`[m5vkͻ"-'E4&i`FJ(I oGHx;8) 9ЌB˂ɕ*P}fNo6ǸbnFNhnNvtkoDKWW{h:'`cf#dNu?D\@[{OY- 2jAM ɥW5"|Dػ +NCG,>'GB>}JOɥUU'9,D hp&XjPPԗ8B +a'^Jz˥*Xc]+XB]4J60(\CZ[`ZVZakntR,6`o'9ar~Pƻ[{ׇgaޕ +25|*}~j^Kw, 7^嵝_rBM_":+s RNlݖOBGow,'ߕ镓%d]OO&>reF!_=?f[ž9,/!vpz> 1c&uH#r0mĻao\8}OJ<Er2_nx/'4_1}+m7jxYpސd,0䮯n݅$nX['1 R +x7~ +м.[aRŭyN;AB֬ !l,Z}!FFAuP? 1qihj~K . +F')gۜw<muФYR{5ʒTr&c(2(g;P{ jg)n4KP) +)U'@MU (ˁ}?$Sk 0]?RvaQm9=#L'*lL΅_XvdۛNb bM w`ȶr(n%1NϘ,=T3st G_I垚~G7f7DĊG?^Gvt]ã]ݦDn=AN={=)іsۻל<' 8_$ƆV+Z7褼 +DȀhZ9O:2r "WH9hmV=:.>,GFJS>@ʎ{:r@Tr@!>s8`nn=߲7sO۬Fujuܩ\RӂJ.>TG68@ג+#.o@-: ^zHȃV~#X'swB]>:"=6_{y=$\!.B3j('KAsxODj^P,xx*Djkjt6' 5XFo"JMĖ+;M'FS R{vȳK3*(g9Lx'O01iY8/>i`Z &"'whYn9yY oO0γM0 f O0Cy[y1@eN&|Br97D>~n#eTښ_0]G=ayK7ryZ]0x+%keu.cv1&zq.),c}Q0Lؘ@؜Ua8,֨s~"ލD[iB=OLCiFbyVE7Ⱎw^@!m﫛ɬ|g!ˡt s&oŽfE\(Jݚ1*&xD)3fR Ơ Dkc;^zE`xFG8JzhrEkvd<="wМ-` 63s1̗|mL 2JRC^}"k|WS2jƿ4ixxh*ڷj?шŻ4aQInyT걎+RW"[kd%v&@(1Ì{ʔ|51'hi9a .uc56_{EV__ #L/Os}K}CfyרEOGI .| G%1&7D͑ujKL\JX4Lo9Iܠ8_#z⡏u@0}֌lKM8ί!R15Cԑ&Mp$O0HNJ: p,9oj ՉK4`l3hh&m[p1L-wp"n@U'~RE{> 7+AVI2hOYQIU?LlϟqՆkC` ,af,}ՉI8},L +{fYK+LP'9GvI : :y,}SWPt`u!:TvYt8;v +DW"I_ / lj4đX)H}z|. vKQhx<9nRyP)1dw_U[3E{! C * %8O+El)_726#qf +\*SEľc♕}{3$͉DM`͋rve{|KBbLKMfvhģ&4LAoĿ!3[ɂeL8ͿǦhuʼn}wܵG9VҌEW~@[V~`t\(͹}3^ᅲad):{gsy8.OY8`:Hej/jkOqB|{ /qj:](lZ1{  e"1ogkigXK>V Ի!W'WV*mB#eDH WTge]mwYُ7=${6/\F60s> XMsET d#[NwV!ea=@ Ov~VvшZ vc\fcVB{]ckHlY\X,(mY 1V'{XDc𛞀5{L7A #B2lŰP[C.Į /,wzɸ棄\={ᗳ(GulWS`?뜾߸qI2NQ7d*܀ mۂUo,4Sȍ6x"0V䢶G$P{ DIq&lܖ˧6nKmag?[f[ao<%EnXnYf[',HmrIYn~Gjr#[[Xnأ)0t@ic-eqkR@)mfl8nvL-BK%;lpYBjIBd L4v_ь^@.>&C _7RWKkv#EU41+{2|lؠޗlE1o%k UL]vwoX40x iqevb _=L9mB7sf#0bl#$.1,c*Hl=uYDn jMGlnSZ> y?`b lѲi(x]%7[Wy/NUVNCvx*ٚP]f'"vD_͖b(ljx _R]\\+EJ O?bui;뚦gXh~ʾrSZPs;wq>Oe?c&O'gLI+Wf9c4-i}O, ;d,k4S'9'yXJmASz:A`%)'=BhgkLP;5Gyv6}QS!MFd#b^Pn9+KJ7*XA2L'.\B]LrۈfD0*pKweO.s.ES2q"b_""GtջB[H>ΰ\Z9d#tk|7SNo{g}/Ԡ5H i{bu"Lvޕ;^5Qqf?yP$ԁEjHuŗUQɀCn},vq AH-gqme4k.XBO a +Jz2C{jM31XmOm؆Ha6]nIz] Y%>EhɌۂF/^.et.*iR* gԗ4o&i!\>0"ET>\4炢5rA'ҮG] &vflFr՜*6j!\o-as2t}w c,U-REi!7s;H+8H dΟZe3!,b3JHLhSd՗SڅNZLlP]/P6e;m|2?< T~EUShHAP3(:TCxCmOgLrI攏TR/;ayč8Wx9s]/y׮EauTWˠa16K@_v5x,yr}@OMOӳc|k)-{5ղOPɋ "O>H0[ia=-\e"~kM*e溺Pu8Jk)u0}km(onn +oqv#x5/~g/ڥ\J`zvBK.>} ,c^(Ż쿞N9YlL4hkEKTrQ'z9xSI$O舡P {_P˺8ku_eWPu8+IJD+I{ C@tv:(eiEW83S&z)5ݽf{%VnE݋N̩+^E/^ҬN^NLlqSD3և]VY:wMs[sYyа?ϛg@m/tqzs_gU!TBHsK-BU: -I*4?B'rIiw>-qkE\r2޵Ώ䁩;j-Aq<,iN]h*_uŊ]TXyYZzGQ 퐍)~W%6|[׼aN}Tmrڵ5˧,u-.Gs d\E&N96#W;::wzDͪe)oݯ4W,B{ +JѪu7g{. 2r9ҋN՜驞}5ճ7S=P>lo7$oלV۬nv-/z:WK(-Pgrp]p]kC1-}qtMETATi:KO`+ݿnT@լ.JԱ;-9z#ݻGN'[#:OuR}CRRJ3lNgַ7]QYWR}*#T6"cn\n'p ׃a1Y1-sJ)#fؽxSFedY؟2|%|;(熔ˆLgdzU] ԉbs:KBPkp jʁ;v/EDuTG(jaIjiewQJ>".w ؍5tܦ]lɤ& +l㟫9ZfO&b5(Xht!~h[l(%P>ăde'uY|qRcg؞CW^h>Fθ{b+H%vQ}Qfva(|[f@B?2}O){dƈ/F>++ZN4tE|j[׸ %(6vHb`l,K^ϵ}F0fg5)[i""Qyqnf-Tpn],9Q3D3 $4 U>}AqZu&dc>?L5co zI7NC͊rDrDGHt FFaemv8\M1 u=9K +Eq]RΟN͌(py+eZ{#|(]ͫ S FͲBid1 fM ܔ=8/!;3PA)A@BfqO=V~#bnu(!Hsdؤ/9tDnYvxDOG頌v])MqgAK仚h &)qGÄU ,9_MzI +ڮΖ["b7Ί'DkS=M9#i/8d :(us9ԄiDhIńӛ)gպnI:fVh߭ZxQuC=ŧ Y$;_Sk"w0Ak<'3-jd&扒 60ijښâY/OĻUhq[mc34n61%ih>a4xu[)^0r7)+(`N(jbӲT=i}U 6;_!@¼?L"s6)|FHL6Α,їͨ؋؎#8-x?"=p +*>.)@+iX DlAM3<&3-00&'ld3Vu슰 9acZjlVj/ڬFl&X& )A様m5ú )`K4e@lɊyWI<@ k{Rue^RGrA_0`+4V_I@0$y7+V}>~$(@ )㰁 0ؘЈ5҈-h!6Rtd~fV\i#UPEa|X +1ch2 3_] Y_ʚ4;]{)պ+0 Hq.hM'Oi7L7ÔSH{C#ݽ]N}Ò( +rOTD 87lGmjM+]#$*"vZ"p*_MA8D \q{Bz d/)"P#?6UFFѣK.!^V$/E'6#1^P;y_Nv#t0-PVWyMzvG@VzjN(לFFr \?=6(8MbJ6&U^ʚrTފ; I)Cd +e#:NLD "Ae)_ =8x *٤FĶ\/ٮM7_! f }ITߤoM%{kLZnY0:GDP ߍ%uίxo?/|M I{$Ś96iAp.kp#>VkP)=@EwA\]L"1f2Kbj$@GWW.彇Q=2x귑PS~&KXp">~Pdz)sВ%Rgo +U_$=lH4QssQ:[7ܟMP'o&G1c0G,EOYC4亐r!dz A\D$FfͺhwuvWXYqYY28kN9jl,F(H&’'er)2C2"s(2Ȕ3! %fY"d DHyM~ؒ,OI"-#PrB + [*r, z^'@s K%V\T!WL +1דǻxW?މc.Xg_wx؞B@*u)aCOYZDD(AL tW#Fᆈ1,*?$@(\ QYuc(1xhhQ~$Cac AP@>E"/jϐe%#>d,a0?$O>CBpe0?9|w:Y2Dޟtis%ndŸ.zGg +*v%d; X\!.hO39MѮe;|Aȇk!|h!څtv!FOrDCd uip`#;AޚAO9X}Rb$D!oTŵPgZ2r[m۰ 6mΨ0U ٜ( Fe5;U7b?C;2̲ +6c)ex4ِKƚW$[c +u3x^tiS8^\5+NBH-n#ԚЇ zcTM˜+d +\FPQDvL彡BUwg Pca"G;dd!W+wrLGQĪvg0<>eΑćiXqYzbph:mNKb$l +"ɩκ>yͥ*zs:]\6w0WX$ oB,s K[_lݯyW))G_&ddk9sOd5IrXM݋ + +ޢWV Pxt/qr>1oouڠV s?(p_GYRkb!{BQ6tE{nnNNDA/+U-!LQn:~BI8#KRQfao-LVn]X+&I6,V!I fMt=M-rRQΔ7KáYtEYE"Y>SE(4{RTN8PbXLmm %JIҟeܲ)Y+q7OYp{T? 'vbNP9*źh%_F%,|j~z5>Fh[5mWouJy8&"qfް8PgXycMeꜗyiidZbr@#kXօayn:UrWGָ<5,`ߒ:V!T}Gְ>՟O}#C8eo"X.Y%GQ`mruCj=[(zn>DW8$bGe~G*ZW!T}\ Wpu`XK8J8SDHT0}Fh^ +bcI * mzKx;VY||Wb.puXr,[pıWW&’J庒>ms;~ҷ-UZ8~L.ih +VV]o|.gW^S+Y-E;KFi =XHqps;q`ˁ3o|nu3{+~w3{T;{LZ}_E^ ?%_ eJeeQp<|4ZL +;7]V><ˊŽ)i.+lPN&n+2Ki_/a{%f@lRFyJBMib,,px7 c"Z\ĘdZnשs~)I6xpިf6cM?W0$Fy(/㬝2SH:DN^-xqȄ/FV7Jo!raMFrs\q煢Xȼg*ygQ{H8VG]@EqÙ;ezKa}}K-0%D5|m 4:>'}"xI=ή*>as}LLSB.VP?nh> +.'!Z!WʈL7\X)Ce_-[>+!0d `?;dnveǤc#Jb+;˽Jg*¼ J塒CP|i?7.S^hӌ?3ῦ:X/v7)=RB} gl[$$8O"]34&"h6q;~QrMD6qXeG_C=ȃ-428}yO#;?A3P>.UoO8窳;~Gpֱ|tydXgϓQljSǚnWջYPN~U^'b?{#|X$=QvF8}?y7N(&.F [vr5yhںlg Or$|=q[yȎw y +SxKr0AC^ad{WL/{%ee,|҅@^,}K %/H6F`pR{41ڭ<( +qgKi$|^ă6s[&Q/jhKW5r(`_%&rdjr8Fc8 +0}R@SnbD4O5er +7t'Fk4 +-Imώ2 +-T*723%g; b]d^رF h${ fBtm@9BzcSVn1IYNVFA<+>_皍—41D3X=夒:lM-#746`$ l['J%aa%(3A|){Tsdi6MZ+]$A鳡maK"Й@%F8.X?Q`P\?;R/1~ѯ)d;xR^X_-RX^tڋR/+Io *NM? Tk +rl8.wrj9A94϶'KE/NofQn埠q~O"[%˖`OQ,#H\BF4JiSfd6BpcfqbsKz ;l>*1 SFbg鱗:¢PDgV#51BTa2 + Uc>FM-0PySoV iT\}9%W@S(X{ϐF 1-,)<ʿ*ޗn3=_'ΐ`0mZ*̏aզxO+$CJvjEu[oaPam%Ft+ivS5%e$&!nH72|CJ 3^x?( jbO&7Hه?mzP4;]Z_l+d:+d2K@B@\c zkZS2w|/j'^V*[QY ' ʆXn3Ιg`x>3q|n~~wg_g{==xg~wxO{#'=Df`,O9n3sl]{3얍1 +1rl-2##5W> +fn1fa[&|:d]q3鴇>zTO)5xˆk)P'`m an0zPW-tq.@Q wzy*I7N9?!|2c$Fx3fn^3K +߾>9[A>ϸOnxVc! +8CnB]'Oby"m-pXͼM^0\h9h.y,3Z2A6ʱGruO^}A'F&y#7 +jG3s@/~jfr3~N#^}DYf-="VOgtۺ7ŐOE<1,K|H\sjqM7yT{`Ptaj{7u\†YC^M!a|/X(| a0?Ub/d\! {`WԺ~|'žqo S`eobN ]]z[צqdg,s3G +mvU n/Kwz{sB^SK"Ab2!ZZ} ;7;Oy}ħQ<$-V0B`]Urud4܊CڎV3{0i˞{'Q:%#XonuF֩6Qظ(lyxvаU$xLQ\Tq!g_!fU莰JpnÍ-ͣ)+t.?;VOp,s>`}vqi?GC9owLBT8#U:n65(Z.wd`f &ܑG)jNʼZFn!9YAoͼTP%D29k!;ͺ9*IEv/n,.hʡr]7n,P}?>}t*R(j|$'G EWJHtHP&8^ nCUn!vMMlQvi5O/lb566[rԺĎ'顚y\7_ /܆LO9J|BK2\fVp\<)|ו&mf[Riq_W^^Ffu# j 56ɓ$Ƕ7{#Bl` DwEu-X' I7%P,VUᱍy9 {ɀBJ@1pVʴ]1 =Ej{ vK6=4~91ccPf+[L +j]w܂ZF]/ =EƛBnƛ/%'x^;ykؤG*skˌ{)czZnՆƺ!B꫚,|M'.CckN@S Ve.te xjZhNtx6^4d/z!!BCN̒nZ:8=[Qe5q̒{&XdQHUXKo<*jpL֤8D0u7].]Ƥ7[H?bp p>t1٭rYvຟ5F\[jLyE -BI|Ԩ|E7*a A< /!Ua]/(1܂Izr,Fk-<s5%ucaqF{~(w-Q)kEG,$XRl Q.4k>ڥO"<ؚcΊW-"yݡoJ.g5qy,{~X, Nh@Lax +yd96, H5k%b-eZuciTn4VoKꝚOɀVo"A(jV0l&M,j[t-v\A*XI3 b4{bu"!ȠgS#gQ(.P@)lM%L0ig!|m=(1!)kP&vm꣯KuSC?@m9'9_ƿf3;=EXkCqWϥ5Ig7]L|}M$bzFqE\/BJ}cĺ=qIVbie@l8 P$ I'$`~d?b'aU4yTIVޙH0lYj$Rù9ӭy*H\PMC +^]&8I6 +ޜdU?n4!^4l*֏qPg?zUGYfowřJ9eN;)EWZK׉ϭ|*X{0t +<]u"'H*~H\1b|bߺ(=uvZ&k^V~RTk_;wNVH{wX';dwK\[5G]0xa#Z9wLQzA7| .z^4˹Y/Hvn?ꂩ Q&W# +l3-ךB@+Tމ|T}?t Mj$P豱N lId H{9֫jD&B*'{S/s FW 2bx&XGDD q !DW#Z_qPqƠ/[tBsaQ*k gea"Ƀ &%ZJ*xؽ[6m6qtr\Jj^L@hQ\;+@*,2Xj;X6*C4o@Y (+Gu_g 7U*P};}#[pAJApQݍ4q # b0y\|ciUvڍ}'Ҥ^TxO=:3 Z +=U~jP +U}gj ?/5(K_E4{O*}E=?]kK5~a~$r=RJ?/ETboc?T>{U4Y4]51igۤ>GapPCSߏwǻgi}?Aߏw_Q&GΚ>.WsqcȝR(f{< ptORb$-wѢ|AKy|g| lwGⅽ"ϛې>irS֊`2[2ta^v o!Ѓ}$`u60Z}˳K(]B?8w(D{rXbCG|釔Tg|C"1#:B&-cmsh"EOQހV17ljQ(rhGż>ae/@ab}ҧKXX[M86"ćLZ6P{\e0VD n>)@Xm A8ĺˋ*˵J`uV^^NBeG"Nx%ZwFy*ok8bT4<-qMźG_}\RL߽ +/ ܣ>;kyu",L2}qD= ޵>7wA Y|4[H"ʖtw(H'xՀ:|`.&9Ɵo!?h-b#Xkez2@6\gvW[ڪd2ws(|8|26k9. 2jo*|BEfqeXI' +1B2UJ.\fvD>x$M[n匳{vnxܟȝ~и;$_fEBүOd~brM~* /(Kƞa.44O+Ǎ̏P[b֛U˭׷Cjܫixy$u=8OY0}.)^>ndb;V,||$^YT4/=E|#m{١<ʯš|Z,>VNrA FOeyCw켸Z4$K^hS-yLE>Au%R΁Xc~˫u)_ԍdb'ӮĮ+.S`nǮUJ6[RRrtc2yV+BfcZIؙEF7pc>qxuRnjeSefu= }h[1MM9%fY*M6jNF3_VVSQ=,'<=Nx8qCuϿ-6#PLF4%vp5^-q4uMKF.7gɧVF|a70{)9`Fۊ⠅nS +^#GZ-[)Bx,ȍEj9 ̀1W4G?kEy{CdEd,r]77,h+#=zA]ڽls4pd\? +Lx(M9,_}^^`evj5 rp^Ni3iobDb5._7_NXLL_Ŝ(loC{QJ8s+Jr# kBD%XӐƿEs: xݟEOġF3O!CCѮRw'liqx{}/|gIOSzۇJt.2&rGP-eU/vI|½? < )!3 Hh!bzYwxQnAwdy93Hlcc1P,IYu'dܑ1ȍh_OƊ 4D١hfhJMQ!Y$:db+ l#}8M$B_ +e{vFҾ;Q*vȈU(FD@ Ap%ơJ5yo8#?eR&dxJv *.˾o/),R Yn4B|EM^ +q$Z1* 1: JYD53%'!M3:3(h*AzID|*!ӌKS%IJ sP]_ue LR1 _6ƭl@P ױ}ji3Ѩ~3ՎJ}AB/VL(88}ښꝲH:ħӼ!sLt|YAVBlj8ܦ8Mnx/vLP g$_q#,b~4Y>̮_•՘ںY)rA:F +ݕp.a|uz=*(M.FLjPl$l/6^3wzQ"q^{V"х @m2^ĬZr3 Q1'8⢠zx"4\.!0dUB *(Z8 s_kL1/VqCON5gt)5&PY%51 (Is6}tO/T} -# v`J]#dB{a(I LOgܰ,n#lj㟟8);wqK$_8w?;~;ޙ;ώ7Tl=UTqr8{1K|R`q}#{d\{[2w}XnmeKovHd]d:AЌCdfpxlI +I-`$S{^3}]"p2H@~yX LαX# +@(@ +eΒEAvM)p'˂ڥG*ϣZJ9NJݓ)!P/wNHoyuW@<` f]C·˗*1o#?2}E&De`=K H/jBob>pkTgYZ FȨdF +FJ'Lk?.>^u +pQKlY?Xf[0QN2Gv5mY>m`úX>RdXOuάA +;:BKo.[,CD0$X;[b۪ N#!x?+d6|I\}-#Ÿ9î% +_U~HݖY2ZD0!cKK3 +ef"[YoR0~!IW"WHm˸,;)Z[Xm'+.a{ZvWMdro=Hn4-Rg-AߜnqVKx.ڰsfc|[v -I, +'bMC]@`f4h3kfVI=ƗSWq =#N8nR֌?i>){d|H- +hphGܚŎJ+FzSkwYDD +?⣒T&՟QT~YKLhfxeǬ oeK z&ҷ(E5ѼG U}6if1=@*.6. ;](W@TF.TSqcN S;vT%"R/ (Fo#?:HY.?AAej.hN.hGq ͊C=z3,}tJVDX(QU&OG'dܕOjG,Zw#R9>D@/ݩϳA7(Z7 +൰^((h5N+v95Ӏoٰ#faˬ>!+d^a~VT{f@"g\pF\2& +` p(QVT/fp\azLٛH3kH]ʗ 8G<\9| Y}D T}կ1;g`JMo;uhupmQ(("B..r@"/Zf-ѕ?EK#Fnȸx𾜈qK.Hn eђLgq#\^jx[ Je-nOp ?i\:}~H.!{k{/1ݵZA,5F@tqU!ʼa@%Q%Z<2M|,s1W1/ +8@EYsW(f eԅhq*wh,X!Ul y;Bi|~\^ljrX4R%/R)_&*bE7J wo1nQH߆d\BѦwibHJAuܴWL Y'U9捶$+ %V*3&zĔ_% J0/!;^S'MUJ btP"hk+#&j6G b%!Lwyř\Dp8FCnTHGP! 4:\ߨVk+]?葠p-K.qjD#VVrkJ {H#& +>6fݿ_i듾jE^~ͺ7ٮ̃2x}@m 7)wYdQ֠&vd rNkjXWR,mB|z<௻!^\8~\aWp%[8cY։!FIyt%3>ĶC%9Ň8RKw5X=ٝZlQAxu)Vu1SWu7쯳m4{A(|m/+=|uWޫ3~+34?I6ȑw}bY(|=iB EљfyqAk*b9ֻJg"ogDRK223 3FVpKpk}RhK`9^M߮1^R|()22JmG\Hd8Y/Y+JP^ɸ0sO¨Z@ ;U#OqyXCCC"! +2}J!e1=c K0u\ K' [ +e"%3x%ߜ)>gn r93KǙ,Kw.)|M.#cwز{5J36):u}l35.+,~'"Ol;y[:`FU{ ؟xޖ;:Qfwأ|8eڡv(P)V<6$Jf=9& +->_܊6D}7&DkiDųDqy3D7^moBMa3x;M{߲89~HAfIz),~콌[w socZ}LIl֎o =6VrF_s#b1(]׼r1'hoo9؁! !0'EM=&%8@()D[&\`Tpau Y.AH@ѺhNE9{h +IDbEcҀ @`fG48/:x2DF*nH򷏗b0)K\8Nsneb~SI7dѕ$fx Y)ną@L EGA&6f^Otwt;wGƗ.aU94IS8#-dEí12_rWh:ݠR([R}w,;K }$Ul&a&ͼg`g&Ȕ7_{.~/UD=lzti +,R.kEKR*au UUrt. 8}7b2Yr@(Q&vÜzyC<+iT>YªЮjw<$aߏS0ʓ$=ħY_= MwzXVΫźDKNvST߸ge&W[HH'=z$jv`͉9DIƻ }U]0i#nʽ%}=q߭%.D{;+J]{*JQG"弇2WOa|;0Jp&ѧTf/ĪnO懭X W i^6HaeBKV3F}(;&5/k*Ň*'IQ[Gi$H" `f-JxdԪ3$`'OD!KwT/}N-Bd'dtD.~OTXQ^|ڃeu(jU܎CҮ=O>b#S!$ +8jG?qd/FdQ&(D?FYշQ&G#￈~H#$J*Z]Җn/G3COϵV!j$o4̒DGn2hMAaG?e?(+J;W=l-s5H^C]N>x*Ul!5\e(9).uBwSiFz6 gzTIC@lpŚYN9K2Fڭ p3oF/jO`cu6BZ)A^[yqǗ)4*HcGsv<,h[طCx5,!H`,d$[5׷d^34'M)3HI.`{zZ` ݖt|(Moot=SjGe4nF7|%ңQ5s&BZʚ4vkh2)_r,̘Q[&8RkK4V[jmߟ{j{4īۄZǵ?wm!q+kW ҍ }浻;bU0:+X?y#g AHU󿻥+0wh6j7zs ܂x3 ɗL-={T%ZW0xd`<ܷGB<{NSX?ZsПOWOm\" Q4t,ľVbx3՗ω@;Z`Jo%N&%Ԝݵ#iRlV*"ƀ_tL%p2qF^UfED^Co4*:6FMsmww/`"pĸ'" F[9QJU-Rl(}Q@ Q%=}AljeOC~~p11yۼBƔ垂䬚G_oT^Sb8.劈r9diz,qby{e0z&֎!u\-1 oHuH\yNM]jT(U݀Iz'Q&??K57pctRIQ(yh1 +=^5y%F1}.vT-n}bMXNwj9nܤZn򁆰Ukuy'Zv2PtH5oѪ1, j8l*ө`[kH؜ݤvBhp)1x/j=͠-N㾖;ٖS6َs-ZZ;|*YِAGf}f9-snl-V"ZuwN@sGV5cjTQ8Jߩ0!ZxƈFpPt=RU5/%|bY2qtƬ]%bh) Z'Zȩ̡b7p $VSw!UJsK(y<+(S0("X^ H O~G?vEIx]џ pM5cy9ԥ\j=d7wFbԺ=ܝr=cO"x跳،lDA=7zi#zoM}jAaxkîcWsY=6'쉀=`ýn-6͊#&v'H Of^{j؍> PuA;Svz, =6 yZ?:Lu.I6`}!`POw{Ns'UQM S4ZDQ=x2ZZȂ;L!hl ܭm8Mzfj2èjYfZ| +:?Tz[x*s'[a[Oo9c _B@-}U;j SZ#!"H.!Tbd\$IT{7"rexFuH(A<Lj@[^Y%:%WcuQnK=fFYܽ1M"% +>@ȷqNӵH*TŔo*>=X!l5HM$;^!Mdl;Mok"4˥&rOgMbD*T4qo8#}cI(}D6&* MdA_* k#R餍IwFBXIIP𭒵6 +BBX!YգBҏQBB. +I10h8?INQ% +8IED1#:Y#^VGP4TGJluv(ԑa6_ik#3ȇ/ Vs@ϭI9)6KYo"@|qꭄ*#.v̱ԑP;k"AYٚDSG}d}{}d?w}H#O$;_BA#iR#!-87#@M9~M/*/VApBT&LʤSe5ϳn>{ޝ\,=TJUW5=_25IXekH'.zϷC$%_%:^+WlKjOA%g6+i/)$3UX?R>?RIi< +ts+U[3I?eKc?dS2$&01YdK +y%- }*Ѫ[קW\;szUu{^l|Amp&߭W~,)~h>׹U)U +M5C\ךel(}:J7hb,5:!M6+Hp5# /?G:?Fl?Gl{Zn`Ӗ +D-^thHܶΖܑ֧.f#%BCR G:Ut "(e&`hX7ؽ9Jq`{S`sN%Ճ}A;Xj( Yhͫ3jPA+Ǝ_؜ by1=K$߈[(Y8 /mn`V@JP agY7s[>W}_g.owH6)J"G 4n(b\=;+n9]N _r=#=W2t5\V 'T[)/,fSQv R_%H9kqǮ2g~I.=Δ_?W+f>פ1/"<_!?$Y?'qWfYWJ| ;{_ʷwGsG{aG +=S81M :PΔי Esߋ^+.ǫ+G|X^:n"9{Av.;ev:Ifח!N ڒ$*ҙ~C4h6iL!hLHc[;AɄioҔPtLkd;UO|XreCRW08bYp^x!%O uZ_`@|]`#a5.j >Us3Ǹk|x/~/I'tw@Zo8ޱ\5q:x x!0BvptLϡmNLH.!%a;gZu" RH?y$_2e1m/DK%dp +ъ#@ +RU?eQ>ڟϭ9qm웤y{iIc;a{A|G~ +z'z?K5mʁ5m*ִeͭF%hcQ[FO ii8=mrf M˸TpC7!~8 [՟H//r:#+fh//Wg\r^_i`KjtM/G6[!ɠ^t@5q\׎.1/dc{Xo4ąOʛk )TvXtxX= +˯ER߫DC97L(72ްODžeR|ǂ|EoA,^{r+[ҨP-r8:?SZ=2A#NI?:ӏr*WTˍ);;ӳ[|0+# EGA%E=_ܓɳb{ChPeIxUyC5'; +W#*WL+N?vK?fmZUo~b1mkb#;޿{Ns .btfύ $ p3s|)SӲL!@Y,~qf@&U-$F zw1,zGtXA)o>DQ!~L^&gT%_/Ge[!TWHYSϮgws笌gy2%1ᎎ e1ʎ  sq43BLsd*b`+ p8`oL[3ؠ$%t42vlT)f+⇌7gGXiU! ]ٗGZ.aʡoqkG.BoN]DkZH͢!њ֭2Zr?5.sXVg0I]|-tz\_Tٵ\/BAA\ 2R>j72:p]?h|?Sc FJ~J.Eׄ/LqPC6%}TY8y+'gnseZ~CAmExvN&Rm?I9=g7? -6F;sr$q*'3oJ 0ѕMaD+ਧA8r- t-ۘ.c[7&z/{Ժ"zV#;IXj. > + Z:.kJWupm6s{sE.kuFܰqA_){FXKDy (hľD\@5⸖h L"/﫚(| ~DP'nqg* XTF _08߱1s) YDqB5|UW5c:ocd2Wl͸caDT3JbЃ ]kt#/FU?s 2Jbo!:EfnBr+mHRGxO.P{WtY7|oP? l^¬.vD]>jy?#& f +b(WkQ_ZW_ +教ދٸxpf]ЮsJ3kƓ^͘֌ɞPbbDP-Nk+^xHW+u 4 +h^l]޷}>Ci rRg)(&O(EQo*xw b@,,qTJcu a_RRdLJ2wz,&T*3g]pw<&:$~)yQ|6gp&ޯ~ }:"NJJ|eDWֽI߃~/Oo$kHRȫ2Wl7CݭנAm$]-#dl~vtA5jBb㟘@Ӽ5^/} qM|  5 (Tk05d:HFII?"2n~k- .Wqq^#!B%DEԾ"DXiё&t#(7c_Ĥպ @]4Sj!!Xaςc\hna[6r(%r6I-#ax]LJ+^:vؿS3)OYD;97Xu VC@ӨӚʕſ$VULs^[WE4͡jFģ^ϘU]F AT?K0yoߐ=3ckMf1uΞt +v }[cOfD4b5IP߃)0h\ΫVQ415.+sU(3RWSxZpriN +vXHw/Ow\R[|HPLkz[@,7Ebx ¡bW1]qg7Llʚ.X1U%}$0p3WW~˼_W)W란(LmH B8IOcDOw#,'9Bb4Wq\3 +gsWsTnL<`h{pSQH|no"IذG칍9,&ݡ`n]x70. Į lV s8b^g h`(m+`]G|A AfnX9ku%5^:I4ckɡ)Lw?peԥQ{\_I9o9ڥp\Q%` ݰ(*aϫn- ӬN"N8-]$BW^B㝚 7hE;iC E;˂25uH2gnXs@݁ŚYd9+DI NlB\k(65Bx*ģΪj/ (1 ԗ@~Ua ?߯woќATfvoOaQ~'ϓ9pRY=ʎB[Ѐ~B M "5 oOs,K=)RY B"hm!tLuf/N]9 +rΪ ++]/0>avN%똿篠X;ԒFC #|Hrf^.E# ꬻhjdcp^8Y,c/u71INUj$6$jKIlǺ-.uc  Jb3M)5+@7)}qֹ5RD@ɀ9 e7f E)RqRAdOxS Q%Q]U/"&qa哰r* WJvor g4I5NfQ^VK\JuJ 3}4f2cuI Iq3F~P;P{@u`bSˑ-z={ RZ~`^\? 6 QQ/}mͦ w.$S`}u'SHSOZz`G]ae \7Nh¾!DŌ=*cZ$Aw&I~_/i> &}5#p|>Y7d/D~;1_B8ͶZ? Ga@W_MwI;ʥUdc?uN4Zb+ma#N;{e7b4\ؑP/?SA)[ Fk#. bfQIH*A aݏ"}TT8z'Տg1xuܽ,g,g#p@6QU]c^ qBsB*d8z*|1ѲӲS/egPQuȴt DZI[-$ՂEP B89c 2 .!q a@a$G d ݛ +nq]̗Hhiq8$'<_F#DRhsw8Y .B]=C0IhW@(-? +Z˃\h\"H!C@6pQ3)t|u”~s|ϱ %9V](9VNDV#uk\:HfI2xŮ1YWDH$nwoNv$Ǟd,RNheKoAF|Tb*7XMHnRp+UPt5^PAxr1NϢ]pxuzosOof'g%WRgO3jfIJK"mb7 d {<\H8$H1_+F(bQ#ӿ +zWsli1J‚EED~Bb"lN.WkCO}͖Ւ(GQ"Tz!h<+qE)wN;rK* gHtf0}{/t,ho 濙z]~R(@lͮ@ޛ)p%Vp~Rpz,Y9iԫ )l*^>IjХԄW.z~Wfi/s {w3J 6c?#s:W{^s/Lq~?2s+ҌL-\fS+D-rM$]SkM~ZZ:v0=ԴF!%68t0v DVUloZ=peq..m\'(O⼨\0|߅ ]3Yx9TMRE~4s&[K{vɔ)7ɔFw%P٪<<{ w$m EW^,QW{oE5wL :@ jA d&r 8A&N"6 ("^뮻ˮGPD$p&AnE@#g8W=9@t6ꮮիWU7wh}J͂1l6`;7qrmP6Vz5.bAqoS$,SshL -HlƋ3udINBAA_R-WWXo퉈C}GߺpnϠo>O3d$paN +@?].E {3ĉ$.]%7 pkϠpy@ pP+Q8OѸ7h@D$ONe0Kƿ]w|g:c`J))~U Brw;^ҞQ/$)J̳)p\.D~uJK ^64Ӣ?Bp3/0.#na1sʂi[vY qf#OP6oJH]h댶IHےi[JMiH9J0 olZ +k->kuDF\鋔8-* ˙\PR)J+j= |iVn5z0&}Gy(#Mt($P "v+8BR!-m"SxE%Ui1T:u<^Tz`V+Λ0 +)ɛ2=_ VfU{i|(*ݗ-}_Lm1V'l&#*c-siEhԤWO[Jm?#2+nf@Yr^5FA*ޓt~bt^ھ$W ˭yꌾ3Bb^jhv܉a%܈G+kEn:ߚ.[U=|R-Ho+#)L}?vQZ7^[8L>,5,}@#vN7Qc^hr&N=feO |Pe_vB$&?2%nC 1hQSs^8`I߈]/}2(* +сϒJP!@@ޟ !}&yjk:eMz @/ӈ$GHq;N>C-N<12vU_Jc¤O|s0 \' *{n>h62šRl)zHY7~9P1=F[(H +VEż1i*}MVǠbl C)i6i_RL8/}"{@㮇99Cދ(>,śpt&:R9Hb! *#A|¬Z z pzg0'񂃀زи$2I.CvG-,*e9g7@x g_9BrtLo aG8* ~63YìUUUBϒC?#zoo!bNXw ޱ|⭠.OH!pW nm?s!¯WV1 _Pdץ8N@ q@4{M|)^ bfꋱ@[W}W/窴S$bC$xOy3ꋽ@9UH*2f4Zl'a5AulͶD'rmabX)PlLosEuqKDK2yy$WB}/Fd@@" ǿBB6d jy+tUEWusM,um;D^g$;QZ@cu`0]s5v? NR7R]VnLLu29/vb#0 $5>'MV^"TGM_X<,_v\=G$6k!Ri +rJlT7 5סnMW D47[l۲ ;XlJĴ4_@ze1^)y[A=xlRԢ|j(sE#  !UmvIѻn9jQKwc&H%\9lU%K55N"/kRבm ŷzIM'H/Hzu@zDz^Qt kSk˘5T!Uޠz-2K'_7'P1u:l> AbDik /(vjR--zTH9]R %6V[!6HQ PK FAR. 5-Ǜ\År̖T\~VS|JAfx먏+o5XF\YEUb" SFXԳ'fVPJmY9͟J:"MJ'Z~ni?K I!;+D~ $䮢b6(ՈW/cdH?F2Q<}PT@`s]@5%Z+5@X2oOJ8\T$6Mݗ^;(QAX>R|J pϧ-<;o>TedzUR[+Kj9cE AmՉSJ ޥxrm(wn:8CE 1nT/]1_)s򹅇 |OI{NV_+&EDFCK}yQ9.8s*'/L212({ +)(/7"0RQN$q>|V=O ߟ/f= [dB% (I\Z\%Ɂ?A*87]( p$|)!oL5-Nڨ4ڨimۄppUP(蟁%]b6D(-:ikVvێB{-I+si%a"1S. #`ܜl%m .TVIJ%lS.㪈}Fc* Og\ s1}Ik~oH*)勒~l5-G56y.r_虾!Ѯi5t=;w36J;7ʫ[#WX "hE@-,VDiNTbM(@yxAPrQM8zW@_1O"< Gބ iˡ&\ lMv?-~rM}Ja舏ՑSVZ>HM._µØ:>Hҧ 9V:`[>OeN`Sp>DHKNZ; 5H/;Wv VЊ'qPhe;q?;pw:l"|lmu3.ZptDʱ@ +zڹ:[l}+[>tőzZ·_>k|^ICp #<?oгjOJ>VOGYC߷k4U=${3Ub:= hn3!ױ3X DpԷ4 uBrE%Ya(eEl XEt;!*P[ꘀKՌDd8\ xR2caNkIEYLt/nSTt{03dɳMDZ' J4އ6VEq|O%CyE&;K:סHl_OXel1Sz_L I=e!yG1ۭ9RǀnύQP q?wau%~nȟCQv1+ʓh dIE -k3 ^Њ5t:'FʄXl 7$j6 L׼`vwruƦvaW 4xrauf$6 W|lʟ&<%mIvlBQwI|aN4 wCNEQ+ryDO69dlOo?=DQ`֘L\AiTTh 4ZE- Ȋ? c`m1`[^&qUDm3 Ԓ㱬lؐi V)/>8Q"ʮu?.ɢS] u.`$ Qw :GճBIXR,5-?#\:j)y7>oJfN[|]-%o=RL! +O RRN ;O!xzWK9%nJ{^n|@c1-6-ҫ_ce460 qكyo"3 98cj5X i*uqHF]2>W+O$ށ_6#TE}1H=jk3.VA+2P/ϱGmQf +} +dlyBI'3??OcofmŲƧ +'r-`xćY<">!29 )30y%$wC(|?8 yHH +S0tO&und+-\?:0LgK^j$RSYIo<JoRl7ݟ 7= 7ml7!?|?Ioȿ +)8 +}ް{1^t1%Wq\}+/;Ds4^]O K;NVKIikU# ok\餻rdf!zF!yY}Qs:\"IΎt١s$/1DO@IJ5BX$z9*,%XVJ-ҕ(UOp۫Tok5NPϤS’Qޜk+;yMB57cK6~jM] :IBk5^AqI9n|5}&_ py2Κeo%+0 IHa]|o⫄u;q7EU2Pe +yo@b;/K{yZ'N+t UKx /1L-5C/@$WAyʏzI-j7g/~1i<T<k#".X#9auq"i =yQ\2Y +|uuSRUAkS'H':(ὄ.[0Sŏ..ֱWϟga  UkATE3^y!|QVw| HmS$@i^5)lo13ϰ:O2DH-fj-d1EM,CÒ/8]c^?0%kߺHZpBE=?u΀?#߲0ױ pJEtFwi >O$ 8[j1a>maZo{qjFFhAc4AcRΛp&d +)p ,B16%$N0$ێ!q*Rpۀbj|:{-Nue.LrnѨ*X9$2uc`^{w?ӅOv+Zx7Ƙ6!{^,TBkNcmHF=LNqY#4C?yMO³V }.(fC(V&,2ž-<0"GcaR4,.Ou&kӅU{dNI,I8T-t2P$P>ɠX6ތ`laR,IGσ2p|~[PeISʓAe̤]Gp6ygPF s\ƺ z9>#:*FF|d})R y<>'*+ѭv%\ P[ 3eNbjCuWM}ud9,c}$i,"y Pܬ Zb2^[u }-$`wLlĕ +f_S.#?_bШc1OmXhH$㟯I\7.H4OĭQ;cc ߎ.TΏr}QBϘh=vb ]D{^6!!$Id?GkQ!mi {4H8bk1 mwq(67Fh4w pސr%͘74(ę{!Z-aD48>۰a}HeSPOKb >jK8x s~?h_/AF[ ֒8@$xf&VjJa;l@߶[x rQg_5FjCX|l E!01!䈰Zg 7.[| ᰙ}#<&1`ul1tt!QFRطؗSfy%%T÷s ra2!ԠtB[ę2a ߬kW40pN`i5uӳ!2jEt}V`?={=fvN`%ML'J|VS-( +`zq[#Ce!> +>>W[k 6\['}V0ah=/uFj +f|gBcTO0ɾ@'GOF >nB@Yd2a1Md rEDrܸT~"x_1'u3e _=bB1K?X`h꧁ĉl8<sj\Wk$Wajx&ÙϋtV/KM넹Rԭl X54moH<[&(lǨB^G-Di㖙s*eә?C"YJYtjYxoYN*!?v#0 CogMnSrǍTRޅP9N CBzi=tt4YEj-WTtsߋtd.U}@j(n&):Rqɋ٩aqGOgJgJ/'5!}DЪc4V'y%fhW;2w +au0nn"Jh17X@׃TH <剕WT#k"ܗ-4P5X+E+_aL:ux8WlAWO@d1r&ӎF8vU㴩&I(\B{q#N?9ڐ):bgsh+Η;ŝH@Uk /ڋg;>t+c ϥn虭K![6,"S7L[B3$تX!:D =-0 XtP{61Wڼ0.oq;x K&-#M{X:j,a$vT0g%\#k@:nV +br$>*Zjqwկh>Y-wɵQ6Cm Xq9  Z\)&LShY7 am +hL޲MVhA&d @<Ѧ7xd{]\&IxSX HOS`OUAaLa aȀAjaQM5纑KFh 7#"K`V#5-J^񗞣>:-$H!g3(>>}>dW7h{tcqoߨ=DtZkzw0~%hw&` + &hMCcL9AƍC. qC=j==}Bҗo3Ǎ߾}u@?^>'> : j#,q1IEjڃxwLaF EF;u`J[O[Њo76YS$db55EqcF׺EXfNvfWܚjYUϫ6.-P cĎXGy|ήt p7m?JkCRLhz4Kwv#q%UTvnJ.WQ)TVfS|Tr7EQ+nt5y 3&8R>^ǃM\[IזCƨc#8'omRƈ(EqO!L!qIg#)> +?g;Y2DE| c򾂅3F5ܫ{vձSF\^C:1鍧NKIwBDkrL!9~) Es5:܈%*>$7 ] h\GIu(wr+|9yEMhZBYB^vkȤR~p|<&gc1<EY  +~ֲ0uMTN& 7m̠;T2g M~\KXJw:k@/w x**dyIyIMlRzNd L~cLrrWQ7 +Ոf )<)9$yD7,LhpK-ϳ14VcQt]4Sj',ՉȥRZpU:kx >5st_Z6TdVo[ eMn<`wKrT7/ޔ?!dljaAIQBpL "ˈH x{+$O1+s],ڝ J +%CU恂ZP2VmtzoVE%*$4fE /A`$뜆{0WT)Z':\<錻>yI-Ych2SAd(BF[m@bV%##^grd9Ӯ+huhU/M͋JX߈XF"!,d #xJO#.^Hu@U$_ZdS;x>b.J CBidQ4A*=j#}4|]-WBՌ#59WiaֵF#us9p-MnkhBuCձ-x1C`ZjF=^}PpցG@FQ]ڛ: B6`SgQg %4묶Hu(icu Yb1VZ60cWq JX)To󺀪kOڎrjb; Ku[į'°]p[(@vS:(pVfW}Bw;1=> 7~42+W lBzp3IJJʏN!:1uc|:)zkS݂? {润wL\#w,E|Mqπַ1$B9Vhc# qRyp} -?붐7ˍb9#?n9N58ѓ|;$6Q5Q%-Ȁ:Mx/|R3]Aݸ.oD4F 9ē7 +}gj/1zBoΠ!&E-kjg׈^ +N 7*txc+^H d+㭉xX[ D$\D~(}4Dޞuf[ն*G4`xт`x6^bO؛ N4YlE~_3+Cvx YM>fpL2GJ"$ggqU %- qtb"- + + +j0ߴtAЦ&͢mSiiF ØQ:p0b`F Ex%Wwكn.y#ufxEM-tRߢ7CٍY#ꏐ ߃f8-|\RkHwDÅ )-S^dM@xja600Ѐe@"]{)/Mf$^`~ɔhaLi=;Xx7 ;^ǁRG|T>:o#FAݼ:J[ \-B!v EGJjg.uZ +L#_v_޺ȶ8^ޑἍ>tb*6j_fl?r{GJ%y7V-KPE"|C BI!˿ + p^,iNMK@гBs9WhCh1ԳRzEH[Z`dl\#szs +HC)-{0O6>Eȶ/uuc 21dRRtytqMu zEva} Ch^B51P)zSp|g)kJWP=^2ȁ8t'0ƈhtIGVKS-4`yT\P?s|_%;A[LJ7xMِFFx> "ߋkQ;DA +A8Fr 9Wjh "\pXJ@;@0'?KFPɁAp-wFbK1=T-9#^4V܁"lfS:?E$u$`!2_1 +2QG H'c[E-bB4ĥHd"Ab19M=JP3q < 2 Hhgi +U%:_2ɇ0xHAD=z=peqa @$w!&̾1ゴl VTFT3ffZE/[UC:Sn' 5yXX=dF H Xw[:*"uŻ}X]%d_U DeQtZ+w]o_$Lh=_.1TjV,5wK% 5)ފͻ9:ܟA70=}C/P3")7֌ulHGL^3L+QB3f'{j2!߭Wn 9UGɧ,e0xM[cZ=FfGh!oY`֬ 6_~YyY>,h43(Ԯ7+AZ؈ *iLO5+m! Җ3Ė@gŶUR/J-m{l9f\ )RKC3^A!x|#[h:ݨ.%e亽 x B=Y)vo5GFο^Tb0ã}G`la>=t]R)%YJDԍGbA/_`^Р\3I ;Q +qKڹ)u'~3Pa֚\i"@.əʀX39fsoE`SY.@v`yTl*Rhc;.nNXu/T.zJ(Bfe]?RRf ?|a|Is= {7r:f4 +褷TΊJ ܇Gu .E)QJDzCI;b;ӱ*4VhR&F!]:Gv'/SdƔo+O=:f咲#)Y +If^Ӳ;Y\ZC5.Oj[|?@O0=?Is mCdVω1ޡz=y̏ƅ! +Śc_6 ŕy#Y:ݘŕm=1&f5? +Mqh'@( +9Q#j'p!ssO"KGCPa  BTP +` *O=!w`Ŏf+S`fO FR|VR]^1$ l,H5\.humATx wAb'9Da׉!-R!;moCU,ygыL +vIX\+g,‹Eࡌ%rdO + D0c{`N @Ȁʉ 4\ǖx юVՠ4?,~[/G^Q?,Gjݷ]B_cVu:FOõ)è$yKsRi[e./Ejt6M,XaQ{f@9Ł^4+w4W"j8݁#o[CԚԳ^^s\x@mw0ZHm2EodC"L)^mfI9+]g`ͩWwFo[8L,,Cwe٬ʀ|`" ccSzo B|BxA˄p` +7>ŧ}eH +e SOoy|vbeN'e- +#0YȺ ,Hfz-*⽎h_/0,C |*k]nwy<3ޅcqzpzA$EaU&qqD?LqT,dO@8`JIiA/᭵ s Ex̟䨌f^H6%W!P]]S].\L*d\eerUf)y EW@w5tL6窥n_6"Vgl?y^ʷ+za!Q8+Ԙ֢3!sI/SD Dj歀&8d5R_ Az*޶ԅ4͛_6!B:Ǜ3-^֙_E9zףNzJ9c >lH l%wIgN.T zqxPl'9UL(9E1 .-)x+^T;d~I(/&^6qɴUCWSjefSr%t\YXUbr)^LޅMѻL\v.S.WvɤKe*]8OUhҷR?`R{̒a;Xh*Sbh`ƱD%(vHݎ/ԞP9 O%d/JMnow9\~v#ұo9+{sۥn@m$.:,xNxj~@,^Y%>^9ɬWXI}hEٜ o|B= jI(m1/ރn W۪,GTR[Y3d|d[l3~TM}4GzHo&8Gj; ګy9rg< )S)ڃf1y=d]{ˬBF@tl[g0~Lf.C)^wҰ> +KBy(K>e9|pcPcyL>w>締w=]_| 4KV,jnD4d)bSyGYe%V ZaЖxY+ ,J} cP:֬LWc>1>X#Vۉ,/4VOlIK}踠=%QBj6?Q1:i1pU͢v-B~7}P)i?]OR/YDc z&J`;ZW@;@jw)AMZe}5k48{^ kW3낒OyiDXY n)},#߸c?S2[|h%ȅ'tAK&ɚ}#u׻w,Poiy4{&e٧hm8_8&p@@߄lNXeĖc7ۢ+ +`u?dɴ Ec5vB Cq~VA;1-f@ȳI9b)+|\b|3& E8@⣔e$|Ny 2YP4?L>f#!)cH8 ִJ \Uc`v*BC#Skz6a'͊=.-BeoUPó(RCT~PQ Bx^t*߄oaQc9[c=4O '<_ s9p+< y` j-2X~'=JQ1Kaw ǝGϲcdj#j3`8.|}1BsGPx5 ՎgCSA6<;cWgMp.+V9ʊ56."UALI~<,ݠgPlV0 + VYD#cID5n~ÂOD(^RE]6u(0~g ̮ b;gV=Fה~͘Ͳ Z'&Ha92i&5n(:n0.ǣ>Dzd+&vs)w#6;6A@KgA9c 2"mC')FieVX8__(0U#ya}I_XsSxa':y"6aM7Bj )( +/?@&,1౵ Z㆜lr9q? 6uH:^,r=iXC<dƒW V %l=D%XM_⺾)sSzMx'`hooR_K={yQ_;^ ifō3CpRd6u0rNxdw @bnІo^s`(JpG8-h?#y4QbX:Γe< ZM D@slSk΢<0&AkUt||t"UyWC MYlZ O3\>lqFwϯ EvP8w?RhtgV,:ǝS1v!^_ndxoŭ2 iv?T{ H!2N8,MuĽ3 =~'2h JRbBZ0B1u/^yu*`OXI(_Pߕ +{:V[|'?T\YX|^1-jvo;a(S2!0|2)]f9lO|E>˦tqi)0LlC(©quN\#_bR&-uOH-+n1.Zy:o^=詽xpvձTEDžHz,Un)Mj%rI}M8v&5+ҹdja|^؆⇈(8ѥߖrtO\xA% xvA#Fn!x2 $iO<m@R) :<4A +KKUt= ff’xSN.4n'9k ]|&P6R6vŸ8>[}QvItw'0[I\$:1=M韛՘A]2^IlwUCKp7 CGF-/&Qnj>z.4!'J1!n)"sq I zyOEQdo@8 ^R|F4VLxdkNJw<(ѹ]7Mw`yO'Iڐ?h*,jgR kͶ2/՝tɱS#aau၆ၑ5bW Zbqdb{̈˕:;ըg%hMIAˎ"H><14S~ mK(&oA 0{j##zM0ֳ(&}Eb䴐ȑZD&Y^jm<!~T +V@BPuS#~.!I.R ?:QWYK# #TZ&hlc¦H |i>譪hpާ7魯shC.301Cq}Bq<~u~?uA1iMҁ腢 /jNc+|>W{_ j4Vk"3Kj\}h!x5 +ьbhZ] (5=*k7?:"׋JZS/H Kr,bA- ^IyC-yl%n$gl!}`pނ7=/Gqډ=bjxv ӀۆABH;Gm}#$j${q }3"cSɀ:pˀ$`#OJSxoSؾnh '?3a7Dp U 2xkMyA!ϸ1Naa%3ccd.$vV&VP'%bjg`GD@뢄Yknv7Mo} bWߺS?Q$2.ʣi! +VE`2 +ĉ+Vc# ƖcAW׉J,fZz7p03*463Ho X[xghP8ɫ;h:-hjnt4+`"d8ixئ݇ BWQ#ܯeՑFǦ'#jL +=ߍ[/AS,Ǐs[;V8[fXm0e TƳ<ɠf[#qYcI<|#[Y>7i'v,֋|B!HFrI=+&kGT9nPf5M +ū&{JD| Gt51Cr>3 HC'ZYA |"f`_4?G+9ROds懀=!4w\B3rୁ O|v7Z/.X`lV"-nMz;PTBQKb?s2 vJbROl2 =mиi`}#̤&v3cxo|ԹϬ/ʮ˵UIr:!wfTy$HV%]-Yc({+lP_"mHY'|X|"j x jru|a DD2ٞ|LL~Or^]%C{붲v̈́AUu׳Pg _(gG$#$yx}LsV8{*އ%!ҿs@|g8qGl2l!93y z @B,jj0dA#'YsZ:,YH%&ƺ Q(9J4- =h K dq7>L3x曰R>B$7{\?)Ԋzc:=3/A9bZ3 {bTI3'"gUD}mhw:/nS5TGAv57T#=s>bȌa<;mH%v Fy! %Zt]cE4>u(|(9 GZB61A+ LAgH361H>Pfʙu!L\Ld%Q/Hr%  +b,;_TOЊ6mgoAUC:@:BZZACPS9T9]|$+ #@瀮1~ Ҭ2Rcg7sVy#8}6Ƴ͕:{'Cg ڟ?ʔTUc3=0*Mѣg땡yG?+IM!aC3xJWT\쎕OTgZ\^oWIJp\v]#='pU:P+.)Q[ؼiCjϺ\><9 w *nWJCҺp3'7uX@)߆ + r]u)l^%#2 vǢQ4-h,*S0;˕Ð 'tʪXe2}ggA +uxi,;W OfUH'\Olf=)$txb䭲EJ)~ѻQӳjTPn2hhGY=j:'c if)&܍^IYNP +uY֦!哰YIxԸmC.5\oJ,V16C譴=2l7YISS@}'߮4zpF/@RmUO#9T%#fM,QkSd~'6 Inaq:odݟ4&!Ջ/HxRoR e[m3&%G(MNkJ-装`]đB&!^ƚRb'c;*W3 aH7Vm>"ss}?cuIijL"kS۷3) wA %lR޼p:tC2؈ HxW BnJ#jAb f̱ҔoV[{D4I ciԮ5-b'?M6'kuhAVBNEڽ*k_*hVśOoTMRLFd3 ʽT'$%7fBSɸ;T%?(dp! +Ի1߮{~vu:I1M! +#^ER0Xmx1~*u}je`>h5:/a3/\th+_#z$_5= +LgdsCRDv QrGOyg7~ xfaQ,FR4 nkONޢg[pUޞ0:0Pn L}"EـΧ"L f+!Zwyw #у$ S-\/ #`j?XJb[PgǶ /U$aI@ᓶ,7Z/Y\5JQ_B\狀w6QI(sy} >3pG޾L9-%%ЭeQވFP'g$+#t)HEQ sD>+ӻٌuRO%1\F{ݐ 9f{(OL?Ʋ>׾ŞJ6feL O]܄O +Yo1$M)1~ %P4xXz;=B;DԳx8SduEYAIH^n&yhQ~:.:|@AH ;Z+u>C/g9Q.hisJ$ךLxI>g.ŻtHA(9$-9;'Ja&BĈ +)Zr‹^40?ˮ};1v]5sŋfW d fE}HaF #U;,"-E bHb_/uPXbΊB,yzS}pyn;NH>+t%l(.3GfAk hyX êPg1r13xC>W1뮲h6;*\lm?Guάv)0s[B/^ ;mQTR3#E)IJ12ґE#4۬|KO3o`A\D:Z*x/Rkp%V{ߏ(i7 sWEC(ZA]h x:>)S5|OL>K'4HA $eS,HS9\u&,5-8Toù0yU=h;djM6z:HMvYԹHm@5@-(V!*{8[Zkl7ھZo1V4R'@-$qY& 9j<|U.L_#*`B+qĊ,3WX{z% *Umկ`F19 xAsB'kٓ~%Qkb[{;i;OSuxK+qwXjI':dЁ}rϔ"p&Y^d @XiG)yaq>ȊnmU"]D{%:}cd?\BͅZ ?ʬRQ ׃aJnR6`(.DP +p teF#/ ;}$jwi[lHQy(‹T4~EW*a,~X}HWK㯰Ǹ,a5Axq=Ȏȣ#X`lslӉK~7z1%9[W̌mC)(u\IUNCJ[ @uujojހ'U"i>҃q#V_݃$j#o2yXыDE\[Dwؽ:"Fj5Zs5tEo8,%oew JNvIۄ7Oit$MR\˂ՂP_aw +22_nPVBĞR):zxKG;!.Fi2*Ld/츢^Y+{[UUb*>KyZ Q_ML`E$^ 6~29gAT@zhV/lx]x}lYV[ׅ`{o5xi퐇sXW0;֣6Q2ކ<3 x^uv|;\Hm~9Ll9x3m'B5h?~k,ћ'a ymU³tn aȩW-Yd)10NJL ñGs߅090ױnٷp`)X-?Ɉ%Mf8 /wWʥq/8:>AiX:oO~E5=*T): z xG|Y|tB:1$Fԫj@I7{yoRGIPYSgwL-@x2<[d23{?p{Clc'F.BeA Y="eL}'t33^6wN?|yY{ b]3yQL1d( wqK^{)xZkL-=iQޢg,a`a%֡iҚaUf5v`Qak3)rKڍ\[3vYBZKP~LOfxlM2'1UM3>ވFhp\y5+tKYD.>:JkhȕZppZpǢh;y!Z5~ϕO$YcVn čWH/&lcٔU*/mCש5TC +S6UDXVC՟]97kY,!;qGfK7vʃҴcJ n((ZA2Q1b[oVf%@yI5dA$65 Mx7n>[הߗZ~$SkE_\=_3c!Mk}ۓީ )LԠKJU 5@ĢwTZTqYTYax! `Q +9u$yb\Lo R3 y۝ r5f*-4GF1#E#I>zp6aJ/F _êL>cqѡ+Dp:B!jYmz9 q4MυIh>Ʀs*AlCL`ʱl*+z_J`J$4EW{c:XWQYH#M[M{+H+e3+y{"Q? \j~* OcS)Jk.ז[xotm[` 睨+N|.cHO&:S7yvN/adt)q ~22v!lsykn j3Ϗt6Q0k7ڲ:'D^/`v D7DRKO0;0O4]zts)19PL~P{(OݷL7S1+g&r E+4V6[sV3Ξ_DFg U7 D +pĽk /9mysXcayuj{Vfv"㐅*i]$N:2`Ͼ^'Yl4W4`crhYhěw8 +7(c>o>o<JWΊC}j?:fY(è||#QFi \nVEvRN4u;!ca w)URo+Ci9ݵZps<_[ +qj23TMV/e'K~@NWLBoM{#i:G[bkZ&^7/t FZC %Ssp%VA!jZvNtz|_Mt<^Rg,Ts?F v& 7qH-,ѳKTΣ`+ɇ2+ _"g0{5?E4?A5?V/$7 EP5,P2ĢLY5ry?`Έ=p f_ `2WJ)3>HB!]G*~P51 3e#!S6rE_ʬ@xдNjRt;<3Lv8 (H,&oR n:T53tA=8Z U4sR*Xxs34JY7Л,m)̲ŷmB1*6ոqx%Lge@p\xz$܏.zg^NH +z x7==뱧tSzą O$Ox͏|#KA6g +{\d5+OggX# IG +#lAΎ rCt*#6^k7Ac7I/e!!YY~okКМ\ødCfm0"DVwVH_$Ta j ~vZ8 +KtI j+Y(K_ QFGY|@a4Vܳ1W.2j(;bO;'fRk>CcM(+H?~ w-˵kY)Fk'qIԿ#۶Ie +?XUOm?ql$004Qr򄒕(dpTI23*+%y7')ZT՘Vni@EEKn,^),ZX+!yєCZ4 Em.~28f:c%&HJ{7f:Zy sG0ာj*o5+op 3i @@RzǨsμdԏ?ȠK@;%i>-:mRrEIa]Q/l`98a"Hɞ,UJ:0O +z k1f$%v3],y5qP%׍L݄)#b h RJKf3+}g^c1<d Lvnmt}'5kL&[?+c7LEy3uQNx歸ls[yhyjJkMt$Yjqe P J&9$os5[Ml!V_DEK>"L:`R80S)}Y> j>7O{UXm$/BxCLm0Re\3o,zQkQ` ƛ K+9kW>[ПY~n&o4R3naʗlf{סnGIYeW0Wj@3%M:xۏSmrm_`u1 +T}:Pt-)_`; S,RL$L(:ȡFQR7YXAԶB6(|@u H[s%L_@%:<ĥboٳ1ੀEN sR%`*HaHnPDDY 29y^٪ S6>zbS PP" $}wDe M\7&a6}mu׉2E2l>YI= ![yW24% +$(ARg:$dq~C)o:&:%+Mr\[孵?5,\߄> 3{{B.ĀJ̿^mH^< ;/fH5vAn̑ /2[t*h%G |ZZZz%T梩J@g$1%L4*OïΊY[?OoJi!2AGQpa}?=Oa2"I5 i,0~b:QʧgOy7'i:6>[ϔOJ?YBJ>zJEA0k3lV,38vpYOu>mIׇ"3zf6ul+k3!_5ӋpAHy1(f^ +f +Yl +\"pZ.wPsa ,Cg[m[KpӲv8b +k;iŁ3< Y'! Pz2Lsɍʝ ]cu/ WX5XJj)'yu.O/lAzIaȵ68*",M|i, B g +idonH>ZwSV|Q]R\j_bN--r/Y1Q =!"~E@x#Zm_d)l{50'(4/G?MKSP",{@uo[m . v 7{//:=}jڽd Ǯ1ŖuvA>o[M gX6t{Դ晖F-/Vr;ࢡ݅:Aq"ѕerǐ/7r E;~7fr ’ <}e͜$q%y[ +U|"^$2\& :/sI|%VkT Llԯ;I'_å ?LJA1P*&aTQߴɱF5. YiZ&"~>&y#bՖJVF1G(]P! qIP". s5N=<;-&̬窽[-)Jy `C^xOJ:`g倶ZР3.8b @Ilն[tuZ[BB8*tZYWԕ ٠~S. \Cznvp1 c>I0z/V!Fֶg\J xV:UcQ'*+FڂP41fжOpw?d;#븚 Œی`͏i%$ ]9ybn_MgVJ?) ;" J鮂u5cy"sо*T`i#uGC a-B5YLzEm;$Z8o2v>+Yf Z=8Zx*t;<-G9/ӱu/״Vlƥ<Y8fhv1aOYf)+^D`]0t/vPZwn2UYe y ;}10Z]f, B\ulE^*->+(UA6HBHTB7`J>̥'a"81UńtOe8 &K/ 'F:b+Z)Ɓ"9RRG’ +TWMf[~ +jbVrc&/2uLK`uҪr7O42Z +KzSCʌ=>^V*-.he?C\;j;2[V$yÐZZ5ȇ)ZC3-%]ע?cI"W(Il +KHTŪ~U[?!Qg{F!EN54j:Mq:Mq:Mq:Mq:Mq:Mq:Mq:Mq:Mii~ʟiiiiiiii/NSNSNs +a:Mq:Mq:Mq:Mq:Mq:Mq:MiiLG>&bFM_اQcP?)vSb3@| 19 0 +btz[[=wK9 >6뙯#%8a_hO@dLFLmXK݁j/;!IKVM|D~e{i ̐Da>Hm潸v~B&y3]F۹<3Wh$O&KdaHUw!ֆ)$6?"MMFv-^k$>Q^pencsKpJ<#s|̸%1"yNGok'6Qr&cܪtfE^kg37:ŽE(.܌kͶȣLα8OKs~}Iv-PrmGEoE-{d<:Af5#h\)%f+%k-GO{R{7s$Ԫ1q\ˣu *#NV\nO?SOfduL~߬1ͱMa<} =sg?@λ@.uGw6|D:/x=B\-YyLF~jXG?OJjJJ;RRJIOM3~ꄻzldm>avJu{NZ8fK3kSwt¼9vf޴o'O86c2 㹉?2eT=ɉSΐ>wDnGϜ0q&7F&O9&@U'qSϙY̘$L{Y ;`)rqE8cnc&(̘vϜ:=:ix~ρ勺v'wyRJl{orkKN맢x-= ןlZ1 pk?j.7xv@߹'ؘO 5[?:]7!vuO%1:O|\~" {}=>1~/Oi~;O@GPqDtcyRR3%F/=w,cnLc'[N|x3xW~Η_*nF?lA ^OyLwnd kqiv; /Z +Eo){nB>ܷ uxnf#em)* po|퉩@?_/*~;mFn.ߚW2'я|bH[PC8r@%(snݛGx|æ95 ܒw_B?ָ}1ԇn?Nb2]8~0{q?οNƙA#?"r +O}i#FΠ_Y}'\xo3MArlG#D5\aZ4JY>N7ߵbwƋJ wnG1,/~QT>zx/n5HEOC!kL=A~U݌~llKTMل~'D GN7 DM{ѿ*<}ήJ;4 [}p}~b))kJOp|扸C%6_HN?jv跿i],۶}~Q h⍻籩x=~/Z7z97#_oD/-v-#sN7X9q#9G'.@tBH/?c;+xj/2l~|jv,ڹy˫`lwo?`O>I5\wp_G~x/z=Z@Yo踳wSo]Nilr6y$fzw:4~W̎AADFo)b8] |}cE]e~Q!{zǠϲ hG_{|[,,пֵ?5v#9=3` +oj_Oƽ"V;Vn#/kfy˓׿$9vEk?榏Ϣp??;gu<0"xL gs<Ƕq1D&>}SHs?VjA藽OGMB\8Tnd fOUعdh'hڐ{9{ԧxA<\ٚ,(oA"wUAy䮭'? u =:rGƣ鮟4{L?k:s_C|DFK0uddDĕr飢M\x\-SG./t'(ES4#.?>k|BF„-,=?/i]kkvK>{$2`ԜJQ ʯ%~5kϵvך4k5ivͮ];Z!ײ%{İC C//--C_9Z+j-qfwfݵsךhvͮ5fca`z""`F^n +MH>IM:l?22 +P"ba,7tQ=*}'P9&PX}vhx.шqg!{k.TpcK^^WǮ$Zuŏyb`cC'鄦|\Ѿa폫?~z]Jp\\n ,;?~10@sۏe|jjZ־k]++[_Z/-?=V+ѭ4}Z;Bvuݯ߯kk8[Q.R'NƤw&_Gs E?N.a_}`?yϿMkc귶̲ȡ/_s{3Oxn[}슛;;*yl%inx|6_(~6W'NF˖M=m(6m߷_1|GϴRsG>^;vˇnYu-[zx/D-ʩϏr䮻W>',Cܻn7@a &EL+p1-[ jժ1H!@Q˪ńj(Θa\`,5rQ 2DFs-ri]gzs\DFĂ҈\?̈:q "K#3|)2tR=g0,02V\GN'w+ww;s˵RT^+u㒸dךknW]]up8F7\"םk8ќ"9TMz'M8<848DGhl֭6m۵kߡc|N]w}.n5[oot7'%ң筷ipwqiizuwާO_\s%I&Svv8UW qVknAr} +nذG9rԨѣ7fر4t]c5v#ٚ]u]kv.5f]kvuf]kvͮ׹ +g4FTy/L1w@Ģ]*i +U$Xr. сΥp8[C;ҋ*n& |ɵ:sI{Pu&P34u3J#r\*^q8@݋R9Xe5GnPO֜epti~ŤP} +^7DI-MzNq!U\۫v!.Q_:\u q!S.]:.Wq7!.Wn~⺇B!.)%[B\WqB]j#y]5v +qwޚK\ͅ_]'2B2BL!.;Jw5_v%1rCܠ7XsC4wP p͍H͍諸ݘr7qZk٬_ܵZ5_[w7t pH=2-ZH'~ ʫ rF3.àkx[ꕖn#CH)Tn7rLng'Pn7{bN&BbmN{ZsAFgi_vܻ2 +j 1|7B[#p=ffMIjO M+p҇;uGBck'p]24$4N'",uxHp: Λ !>0 N!y8u4sme!G}|aчG}|aA,  N!y8u4c!D 3_Hp>o + ZCX} a1'ta ]G?0х. ta ]G?0х5\xHp: Λ /) '",`B }SHpc!>8 '7BB410k + '"$P> >0>>?|F0Ç>a?|F0Ç>a?|F0Ç>a?|F0Ç> WCf!q iJBB'f|a'>cO0NB ͦ8Mu aBB'>0> >0O0MLۚBB'6OCi}pHpc!> ]G?0х. ta ]G?0х.B.. 0 0B 8. 0 0O( |!4O(|BO('>'...P 0 8.PB.P 0 0 0 8......yμs#%宔>N+M[kl?~vNfZ_.f]Zӟfwmݵ?ͮ5kg_[kfwfݵsךhvͮ5fk[h[ {S! |jzѯͿIOBJs~i]o~-|kj8Ҹ8|~8_~i}m~jjol?ܵ_~-~]k_kkkZZ;kc?Jo?g7r; +wWlv-mk'mvͮuJfO5X5f]kv]kͮ5f]w[~#)g7~vfgt~vZZkwݵOk_Zo\k5)l~5Ӛu`l~upHj_H8W7ۯn_l:4fՁ!WBWBW7ۯn +i_ ~uڕWIM}=W} 6k9,9ǵ5Hxǵ8ͧ54A9::cu{]u?yoyw:iO2yB#SOϝ1M'L8QgLoe>s/ 2 ʴO0uTg&L<>~mb¬S>e?  MENl8s۵  :w:uނuyox/-3gN&OMh{6q"fO>m̹\ǧM= :cY 8aD=yڄfM~ +ks&ry:2U"Ҿ.Gy +os!\%L7e}bBmݙ5}ܙdOHMOu+靐;~ )P$x~zg~/REi?~-_KZiteDo+ ;R'o<υ!!2!*Cex(Χ/~_K(|B +/ DžO}C8,#~xWם , ~8{ ~qu)&̝6~d[`9q"śęe9W_dYs8&Na41# +Ԫ<2̔0ͳT=?m-8çA)4O8>gd42MnGif ~h?io+Wxw[Ri_~ooq{~wmد~{<"R  I'O0 (yBR0` fF d2uat29>+agZ9$++˚>Hm{gőF0 b +"(p0 i&j &1Q7&j:L +"sGcO 8ͻmϏo?]UUOW=O03d+H*pa%EfGEqq&%D@J-Vh +1IJWK{cR4S?4%y"4PZ ZIڢbfXO2e~˟F߸-pG<2 +;1t^WȢ tjF:\j`a2q2ebYB'ST\)1u:=XOt?p`jJ։(=+^n1qG\3O SȔO!y^s"~d-MJCRERA$F܎K.E''QѠ(vj|I$JlDb2%iSH4n(Ů\ fNWפl^ȗ28yVT:@7j1PhQOST"Siyūe=Qe%%*ż1D(Py +R\~>9mXM2\.]_=/Get1[^±)`Y񂒎Ώ$*}&k>NZȥMT+דZ7|-% +XZ<I؋NץH(Vhp9C1Ip^',GZN\5_et P _)Uz+ڵ3vINAkQB'4ٰ{*?--WҴ~&H@pZ1%v;5["b)RIφXaM"i[>i+@#XbZ '3!;m`6ˆ6!dx+O#v< + t +)Kjae&#Hv +ZM>Ɖe/ƾX\^Ċx_?"ĺg<782)+9z߀= ;)UYI6| q%'&Ξq\ͲػSwG_g[ ޡ ac=[}SW;_]s⥆kMכ[n|c[励0a ~違"yTnֶubc;ξoC~0 qzE^uKn=Z=p0*elV9)Yѐ ⍒^3~BDAS%eΞ3WruFreO,GGmxٍ誗w܅z1g~vJ=7~w컻~u>;{;kТڦ?bek(w8t4]-rfgɯ tV^mMz)Yz {ĤVz'Ҳo|oN$v akd4;K5̏ϛNN,g.:Wm`gϛXYۊ:2ݠ4ml]]fo#7ObǮ~ ]Vl~+]+oSse7' 1߶YHf@Nyd YLTd +Glx{Ӹl1,@W< -QbEWG%H$~T1J䍚OeǓСwQ3<% Ճﻂ/PxI 6^߫<%}_e?SA7+n**2v{ +znM/V pvmO[PIW׎i%ݶ1/ͺFXzxUa?'|hOs;G|Hy.s-Ўs4ϣ5'O>Oz|޸tճV͛3n=OV7<;;մ6~ڂjknëcwO\ _vYRCO~㐄zyNh mojX Z"!t߼ `Ԭjs{-%-goߨʓ\{ +/R 1π|ۉԚs s:̝5̉9/KtgjK4we9vzlL-׍Vt6T2ݲ"y֩SzÃ[xD; ;сkߪ J}8׵oOs;kȒ+t];Wߢ,[OgE4d5=~]=uwIu"b}nޯhvS>hE tk +襨L!oCmWu9>WmkR~ˎ=5kU&rӺCv6\ZhwiX8^X ߗ@7ܸF[z~~~f=VmkHn\?_x~иhnn_ϯwv5ӄ]WxPϛgˏo3 +a꾮XB[gwН?vȷй}_mZoNluN;m'tGBʐHo/9 99 D!G#!1PX8dr?MGeH92 !I)Gf!9dGDrdC!yI=RBr2$4 IGʑYHY$Qa{eHi@\l# # HrdC!yI=RBr2$4 IGʑYHY$rdC!yIX}u3 ƻ2i* Fok lB`R Q I;II򌈝 M|pv婑# p{ms~־ZkͰOLRޣz-TW}@WG^[ޯi_{Uoާz)~{TUzUQW}>0s4βڶ3c;cmg(n;[ C9Im翺Ne+Yvlﱝ Y;vjc;wl;mgҍ_~1$mfԕ=G6\%.<ۺZa˻ +wvxWs+hU7K'}C]8vp]WgNE\):> }9㽿ٮi;a{|?2d:o?ѡc_VV7*'*XU.`UѲ*`<Ъ`V*Z.,=6?,, J`V%:PJVXack:!JbVuH:QJVxV建:[Q a%/u:;ES9je膫+M֪R`}FmU)COV6D #hT1DDKuuzlMOpؔnp]q5pIt%( CI)"bPXP4U@atuzlMς.~.ZgtS*sguSCt +aQQT];t~sؓZU^ *~=:"KGV9 iӧkMacOQge2tt2а +ؚ>;N[#u:|Wcknzzq)ЍW>a2vwB7? 7?Qo~o~NNL/K9) )(QdC  PEP (R($rA@,ԇ Z@kHDHd@o!R! `"d@&̀Y0O4BȂa1,lxV`5uralMa l|vNn{C!"(cpNB~S opC)\Kp*uA.HQ ա@M!@]4Fn[ mnx4h-^h vtDAgH.A2zAo}~a<a<!PxRa ! F#(H c`,<`WMU]TyUgf:{Q{|ou;7}I>7JK>˟|&Hj{Zv_;#/]'g[,\4'=s뾘ޔEEq_~ItiՕ2O.(sco~\:753?ma.8/,ڒhnO2ݑl~6734Rsi&4gV2Ѭq.<]iVcYR6ˌ6Dy|Ņ YY/X.5gg*bZa}usYNv*Ķ|g33Yd:ӷ~=5ް۸|{&ěg7o6?޲ܵu+7w}isΝ~a޽恂sȥ!ǚKݩufۇYki^T6nU+?y5UX觢DeEu*y5Zj r72)nˆ#^qkE*rmsZz55quqgAol630^172&)F`mh?y8!b)ExGPX91CLX.C@q)"ItmEK\ċ8HDu)W2_ |S|->w.x+yȹeor9b^/?ϳY~gtSy2O'qϏ#Qi}Fc6%7i%ArZF% +LYЋ4,Ksh6=OLAieTB)&ѓDlq1hh$ӣhJC{ Th( h @~h}z[/l݃Ds[ru u $:}uR-QuP}EKhTkTaUES__ ſ=/PP'[:TW9W/N,VIRE_, +ٯ_gCbd쁩8 +_z۲vP,ʱ3Ι,Ͽj;9ޕ qL8pe3b ?!~ƹUP89sG? ~\P甪>W(Gkm;mg𕐞ey10A}k;Gᣚ[d 94{?π+ʝp:}A +-A?G $ޯ't1x/x^m V]V}u|5S5;4nלRxjל \s^j\ۧaóNoSϢQGwW"QNeE@%J ~֠%{2S' 8L1 4R1 p=t7Ө.L;1i4 8В}\TE眳., b>-IeJE( ()墦XPYYAYZY&ݡYYY`ieOEg\Ͼ^u͜3g暹fv.ӻHlFn/L0fXVH,|`sEdAcg[+cKblXc+܌=-c_1 +5[ c?d{0Xo,44 Ff!s̶gO3Kp5yX[ ap`ԤV; +d5gX6p ;ecϲ4{*e}αa ;rϱ"P1<;vi <;Rγr7. `,H"Pvsw/wV ~g;sA(bA87jؖ0[6\PT +1O'ېրm?YA_kby!p/4o5 +d5YTrzԲQ emP-<.Y(u, RzQ K^]bI`ʆe5`@b,!841N GcPDaEaEb`FbGJ2berAˀHa Va@.(B)nHb ̖r Rʀ̒Ì @"PFL6>j |bPêĪ#MT"pP Mx5YE$HN3;Vh96_v$$/+/ž`96?v $a؏j?vFDVlG1(faő ¶:Am)6ئV\0T 6؁֧RPa:,ɮ Id]CSYD;'bׇ" +ٍ즨r=EOH=lR԰HDtKRtkrnKuI3 +>R_g/\ɩ Km<),pȃ'R.yȦyBybyxql)ߺgeqϪ| +vYS* 2;fZXGLe5=y|驓E9lTX{Tds`Nl/6oln%bk[m7Zaѕ>g |w fb%}+yoIw{|>;ҷ%Y7߾~`h}XMk>>)~;* @'#{^ˣUbsNmak*+jb4T;[~ 2r"tdK,?Ƚߢ>T9g9P%t8?W' #yJ@M܀|@m{.eTHU~UYjXj\3Vߢ%VY_zjy k]AeJ`-[|90^>) l^x|`3{;\,U$1ngekt[DluaKmwYovۍ=nmm}zz t󨸠[&:>=(zbvS)A}HP̂AX2*xA&'<-?tWI6u4??aHFr;NsJc IDDC#aD"HviN:AdT)!. R"ϡO1 FЮIo (&v%㿓(%Xs(T!j#*INiSjQ@@lt -Vw62D SRbqH Q^Է-q8FT +'Nj|nNZ6SeJMYH`< Ts*6Ww2,$縭ZQ&+֠iG8вqDrty@21!mJ䔙&r8TA)-k 9atN;4Lㄺ} |2B8E>36N=KO&168 q9R\ͩ)4+pwOTsSv̸PPaxx㥂EB s K5,>jX"pq:b,+0rwB8X8P< 9P]}:>9%~0ΎIUй8n +,غE_p[L殂D9iMˉ9&_N]x56,IY}~'|#&?~= +8Ӊ~9~Q~Qy'n3ktʉe)g:XrA͘k91rN& 9]-s[,'6[ +[f>A81]b` ֹ< 6Y?s?q"`@det%qցӉAATS`B +k`A`Htb`hf'_[gVmX;YWvd7X`X<Fl,RX*¦,e9l!s%l9{bkأlȞeϳed%l'Ge~f3aLe#IR"JRgZzF%EKi4H" FIIR4A$MI3R-HK2iR*KgWbi[#} }(}"KG/oJG'WZ:/!-]d(M[mr'|M{ɷʽ~ry(*&)-')|N]K$KQ1+%PiRQ+aJtS+[ەJ$(CNe+=le2OOy@U*y +  b-X<=:0։.v|;O_E_zcxM@633 g#Y"ư$vOM`]4xT: +ʀ_f·fûlx|v?A2VGX>[V=gO'O Yp{*<>| {b?C1;_z}>~-BNA.EJ=^-ҭmR/FChxcL Ũ!%bd+#dtFII4c%)S<}=I{ +I{I{II*qwk{s, Z4^U~EthrB+@~ϾC~_ſD?gr>E}>_z}^OKڍ}wﰷ% ބ/v6xxOي+;[ ?zzU{gmOI/>\:xZ̍x, +>P+r,Cl)?Q+>xj!F}||3VSVs1NY+i+y++++++}YD V"t+"EƸ'" aɣ0aO?։cA)is5QǓhB hWDdx eOгE|P!"OSi(!7"NؤR+;aR8Fu11Z0Rn(qHRc;R +CtnD^7\9VIk;6YzYď77D2i!OC"|-}+}8tRE TX"k]"rK9TFn/r||Coo1*qr!"b߲*+IVtV*78Q"S$%YIQRE TJ,T\"+zeQ)T^P^R^U)o*o+2}CV~P~R~U(?HF+ +3")=b;~f+E~!0G$kbA,"~2 >([D]"¿K-;D.{WtID"@9ψȾQD')?NQ}kDD_M="zG\h=/=GDr8~sӽbxiixzvzxvZr:auKg'O Dk0Z0y#pi cN@}2 +:6"x+Z^b/!=zG? }េ"ηjQ÷ai{7#1f +3E|n_/hx.Vui;"ۈ|o>WZT tVDZICGDo'w;=I)GI| W V|/uiefhmgiuxDx7=Կ`֩,tAѵb%/-Nd>#s/!(ZcI3xJ'm._5~X7>$-l/V|,"yxm_X#킟aV)K_;"}o +q}/&ል OH|Ĉ#G=z̘ccܸs„kҤԴɓLIO:uڴ32f̸{̜9s֬ٳά9sξyYxE\ŋ,Y-[w~)>_pi\V\Ϧ.8|̩3҆͘|{dϛ/;{j!^OPz?xQEuAJ-ʠ꫋gM7%lVِ)aԱ0} rC'@KjeKW]+߼}W,_.&Ne0i߾d$I"i7{?'lSesVjC.c?|? \ r$HO!?u!gCΆ< y#dGg!9 {!c c wC\RT!Z @"N񩎉%BA29?A:I +dgX3xLU?3|} [˗PhCk ki:a "ة/® ZxG?~Z!L%Bݿf:/k [jGAMHv*h>^:fϙ6>uV:6#s}9iE"=-;;c{M1eYSgΞMfꜺ SfteϘs͛:gٳG◚4 ,A=mƈv4ʣ>m}*i%fO6=}plCos-ҮIFMnk4xQMuQ>ۧRJIEkh,âIM=Vt0(<Fͯq BzOc2j~;cwDvh%41 8팍6jF{Sw@TLϥѯ]ߤ_G~~}*oЯh_?R~~}v20k|I 9ڤ;IT)o?6?q}*I; )HH:^A}HL2c`Md/e3HFfy$^M7>$_BVo }6(*@tdBiKIƑ$]__ +vd1_HُR&}&nd/d>ad+M2yΤC'GO$;}eI'qw> MzBt}# +/#y ?HHi$%VJ .Ⱦ +$ُے~ɛȾVH {-k8G= k8H{XF2QZ"K2앬O ײ~53H^Gwd?$[r=[T#pO%م/SZH$ϬH=ٟd $kp$y#ߡ^$/piA5sI_d@Y?d[?I& d=Br(g 8=IJ$5Jd<c $ k8!wM;ߣ^$G_ƚEf$]$dw|?Ě(< d?î.Ț/Qk>?_۔n*ɮ.Ϛ/Pk>?ʚn*_`W?aW)T5foY?Ś߰n*ͮ.g͔n*`YK|M?OYuJ7O=k>tSldtf>~xxx}# *2Ƞ" _i(e:D1Bl҅t.++r׫rR式9bzljr(WJWI9[Mt +\rM>"ycPOÙ6S\o?,7mj(w?,g;U,Ga +{^/9RY)/tT.32z3oڬ\P?SDNz9\Xzi= IFpdI㑤d!RTn$͏&^a|z+<: +\!(7VD&GSx;M|C9>&|#~AzL)o 勤Qo~>W#MN|(_yO'+|[A>RW)o>su _i2OlNKg;\D*ۅ>$Rl`߯(YKsK4_^}ym?tIEi;S(VDyDB?-B~T_H%{b|ً#ޏ1E?/,~~&VI}uDUP0^אDׇjm O }AR=ϟLnYHonEzjt_zZշ?ʃdW;$Q#S-<(u}k.v=ϟ?Z˟?Z˟?R_@b=Ͽt}8kz_o]N_MzGH7Sd]ߊS?9="?{^HOlu_-.og~35hDJgx..eWBڟ+"īi|XԿz;WoG:R;w~%8տ̻;_HzOzI*=I +HK-%hJ)Oi^BϩzO%i/Ѥχ/ '^2ڬZ5^aσvJ +J'zSZW,7ͫ.*5?5?^yzDzq+SOi^1:B;6 '^=zՅ򧒾C/zZRjIPZ^O)#=)KfҩzmI/y/{vR)Kg[>6ޑ\^z䳸C-/fyX!I#wMznz~|d1 >HM<0]۱Cp5YGvGL|0||8 t(^|Cʣ/NWә‹YgF˕ gsW^r9Y+ r]9Yy.g/QgeX縲2x+xԯ W׮"#kA.?v\_?wE +ԯ˯׮˯Xϯ]G\[ MfxzB ; na)ɯ4\~as돞˯<0ͯr#nj=տ?O3S~ԙz;|ZߥO~aϤ^Lr5'IF]r!z7I96d.g2V5ԭ[m@}a5"g\gKKLu[ʒQn5y~.oږȃR?OQ;M:V|?Jjί˟VŖ!jß?t}l>}`t}S`/]|N8ۗhZ{8UGk^;d4W)='7Na?|y;Y_ɗS85M'MC:/=Φi'\^jŞ`J9_YbUmV5/޲׫kh5"{tqa2u*^72ѭ>]Op574oXbLȺn˭7aχvgO^~R74}-A_܈>;zKh⭑ܾv{j~v_ޏ;y}`y^nuAXCDyG]QMiw鍟W6 Q?g+?쎩? Ћ=_^_ojIvMOثa /㬡qVnJ|5Xb{i[mhggKew@s[Ϗ #_/w[Nǭq|^eJ^ |ęV_o~qm[۝n5ۓJyar{ܾ :V+`YytI!t˯C_2~ X}2׷18}B#a'6O>BSѯ>c~z>sw /66L#q lkoMo&yUNcIxbܪ +wk_6^8yA}-Cw}Gѧ@_1ʆ$y!k?9/[wo^xX?5ߠ=Ӵ=wko_`^~[b{nOvarJx&~h3ߕn%$wP )OdG=~ʟaX>+q} Y,_h4zQȗЭlI,l~aO~.Bڈ8z'wS~2ߪz_%/2#o ~>6uHKri]mf{9eu`O]Vyjhb"|/d-b7#!,q{˯}Ư+?o=>/ޡ~G;Xzy$Kީ:y[}f{K3(7}IL/@<hDrjzǡ? +=~K&֯1 *~ \$+7n5z}?'Iǻ/}ح甹zSܧa/xqOj|Mk^b {mnN>5$_>=q[`iX1Hk=r;-7HJu}faJP&osR6ܙQr(,/c%zۇrћϊ~!>Hyִ?jQz[C'oq"j>EAo~ŭED>+xSIxխ^ ޿W@g{oسZ[+y;D~qM_NV H%nsThA9[Lz+( 8ϛ{)GXxkj}G㍌$"N[8{ވJvWhgڐTuBTRB4rV"xڗ;#|)uZ7,Hs#!ߧ?(WR3XzyiH;`?tj5FK,u>ejH+ϻjԸEqJ#YU#nUK|&jS+_:i*/ЧBC/ֿP]i}vWj^x׿VoǕX Sh 1TJaT#JCH<'@<RGrQ[}ZXſ8~a*4n}/S7Iz=;|A?q|Q`) +kq˽o]ґ?J=ԭB 37Wa/@q29A_Wb?QOsJ,X`ڠAo^|Ok%?u%}N:;~,lßiQ76R[`f]$RaORߣ{_bPr 3uTua(W}RZ|">/Zb?wUo^Hc?W/.%juS⋰UYjOo忡R&Q9}C!UiRx8"A_ +n5(b=%XT}V^=4JN[9=a?j|<}5|cG B\$:JQ^?xπ>KB[{鳡i$>.[x7A~z')^|ۈZTy蓡|*U|y*U|}Ҹ̆z>R-6*Lbzp}At}M@WϹDkϟRpkχU{Ys^/k(U^4 TҧC;;To#}!?@o Z$yzF?o|B_}K/=:j=_}OPp/}6[|Wx;E!b{,8ށ|V?~Cۧh{u8}RU{,I4B{N`g7UwS`/]_'!v!ݫT p='?=pTߏ^ۼ0\z]۟7RH àwj/BmQUrfU=۪uMϏ?Z ~o<׍!U]|<>XvixI' R߮;ٲa? z^~/y{+ЋA/탾zo3|CĿTNHg䇾!U 'F);φ>zz}>.oЋ-guEa7Rw2#}FYbDk +Ǥ>~WEAXM^S=AW@?}Xn]6a mL]|1S?ϭ:.hx[UZ|ޗ{Drz ^L##%^?尋}]{]4ECEVw|]VqBliE%(i.ewvG}PuVUKVTtA%)Xi$-4AC,EEv;w(iK z}=se{sϽ{3;Z9C!ΞU2xEϹ{=;ȯ#]i$=k#$x{Q/A~;"G>?x>ě^~NzDJK?'_jvWG?iD[~g<Kyv3uso[2?KÐk`tHт1GحqV04䍷X^{-_aɿO+/~kAr/$&{nSmqk= CԏTo$zx^Ux5}<~s.a*Ey^ors?kH{@#? +3N"ȏH 6>e=S^ O +/9$QětG?buٰ[> +y8oB>y=jy_{8ΖD}>J zwD&[q0^guB>Uߟg _qv)_e%峐=q4:zX)<_W^mۃw<>>M>K [:_/yxtz#g-o|o,˖׺.'ot?+OلO㮧qt۵oֽ}ʱ' >%[ y䩸Ǔ;Ю!7! ?yӢ_yȇIrث_L~~eȻy}?6ߋ>)phO_#K6HqU@;v~0NOQZP%iR&/PWx>^|^/g9x߹K",H_NgGGaIa^pH YUxl7Ay!H]XZM{amxK¿#ρ +z gJD*G?li_r|FM`j+F#~ߤX(~BnC^o<녡z(=\qH|)[N gòǑw&~ScBG6W ُD9BMЛE;._숢5E;8|OֹtczS\Y/ߋuGUǞm|JSoH?_TOşh^(}1-?z(ח㐶JkG%ؕYJ{!=9CQ` SNԹsNW) vH7wƛ? k^Gaȇ ȩ/W}B~xWY`xtx/fQْ,MOsHk\mxʚP=R ,,P,gug9dZF]*WV'Q¾Hz.PrAoL]1s9q85OC,5Y\NzX(]V[/oWuLz8|J]iMCں|\^W{{pNj;7}sf* ͟ >.q`f޿w<'_3%y\]ׂJ'xH׻`D+q|'C]F7Dy +u++Zrw3%ݐ^'=J՟Wx|-B`odjW?qmĺuk\'+l#Ыh6 =z~&ðyq|aG$qNVxI5F*I?H?qac30洟j:_kLzbC ̒gYuu?_@~ޗ͑] Siy#|{ k]ǟWdXs[vgzc 6'a㝁%OA{;l0WF$q/s/"7m$TCg&{lNM}۰ίLГG?>nXM',0Xl;J@\.Uw?d; R2د]^&!܏t~ss; =#WB}ѰMR{j7v9Tktc[NuF`+ToW vfH@:✘>t ~+&1^ yz}46o*~X4>^gvo; yO? 8PV5vyQu?x06(ЃVf>wG%Ƶ_6L% +#Nޏcr.Փra UuھzopE9L~|g׫qG /aiŹC뭃I߆> 7!_}z: y#-v[# vS\w~=s`gPìɹ90@zD$+yu+ݘddFEXx%/!v}.WX=pU y=ߜdϜ..{*Vޝdk>q?oޯ!_Ƨcc9q} ֨ +}?p~H ˰ޙI|^M`.۳ +=}3 X, +O{vA|ЛL ߏ?ky-ɾs~_&/^>*~dyTҚ/% +^z.7ֽ_IÔNj~ʴ^UMWc޻-,xC<_>-dEk%ٛJ>%If* ^^c_p-窻TOeOl VK~ q~,'.1y?S Mfz+&[MVhVT#6ӪOrt|4f9{& =e5LR}-/GJ3JjKY?}&[~!Wud{w,y6hM|VH]o~Z]Wis iAw|-^` ^{*XMܖS20SO.oWx%x \]O6)~d +H>Mp\+o25N.'(xaZw,/;|s|Д:q|Cɾ!Ȱ=+}-.l{qzUdo+a|G_gc +_o\3x^Y)CӯJku^  C|$'>y+xl}J+x}? ޶Q/g|$ϝFSQ u@/|97G>>{|^.?g-$*ǝ/]b83(3wsmxx%ނ\5zSll׼!;cz+>bKžY& T?qR mŸ'g=_؟{fgݑbvծi=LX8ceլWWcê%MzV =b[TÎȓ)6w/:330[ozL&8f ?"%ݯR_WRVdں6k:/~|| =?߾V"_M}~54,GɤLF\%z~վonM \"*A%b*#N=P|sJ|ă7v?Lo;b'+9NsgĎI ?[R90_nOe")>}'>x1>Y./y$b83I-{{X)P>LhC|ސ[`{xy We->oG셌!nzrΛ|ƿ`ݳø{;͜?ۿU=ν_`N-A|_~3 lX`y.'r{=lվCW`ݷc@zQHߑ`ݯ/V؛i.SJ7'#d_')gë*"cpE5l#jԬ! h +BbԠC5j(TFLkݻkvMk-bV=s Ɩ̼s望>OL|{q̙y}+xAq%ľDsl>&_g#|"ǿ02;? {y'}-{~۟ scnl@>?5 1\ {QTݫ?¨z:o/Z;tO8\> y˒қq9m/G{-*tGԁ^\ot/?W忖i)뼠 EQ.;ωZkO-8tkaHo9 o?QWkj_~xNg/s~~o?);sŐ`^߃QQ;|dE;߼+_dF'5/(?fkRv ^ߣQy;&?9.OO`r=/~e6ź\8MvbF +ާl?#7{zۥ ע|) (ӣoAY/yG#~[^ZK3ʟ}?~G Xo3oί?WQw ~;QPJQ.O콦W:8D{?^ 8^?8Eo3x3y#Cy ?~p~-'DyM򴃟ao ?~b-DZ܁GQmM_3?z(8>W(p>~K )+O&>HKDG?y~? gQp?E=vxuoUw9"C}> ^'VR? YC^z[ϒ7/.[ ~>[Nr'=ob;p nZ/L(DߝIZ~IȋcE#d=E `aLn҉J9!^pL_4jz/W^vn/?K `/w^eSc9Q;e\m. ~ +Nq_࿈?Bi޸tRofzJFfAz\! +~ܿ~ ބ{+0'Ϥ+(]8h? Böw?x~._>Xf(;.o2AR(`g\Mf?P\=nC)[-~n6x4p$sf߽yBjCݿОS@޸P\@^Zj%yj+[ }%p9 7I99!]oI~^}pVpd;; ~v5 ^~ܤؾu[:K{- +xc}?Z.g+ O+L>x^/^\*n"OI'u$pߤܯ@_ηdB>f~W W?+j /IiEo:GR$vx){ĺc[A~`s;x/V ?9W| 郧3 +^<x wuUxIzۯxdm~En\ O 0{I&S6aO̧_읟JGmw~j^ww~j&UKmŸO~`w~JĀ_3o\m882x-eDxP?7z!wK[6 +/^|B1㯎te#73k&?S[=^烟^ョY(SOaj?r͇cɡ'7xfV1γtݓQ?iqzf}W(l}ѡ/?\埿!v}g{5Al?903B\~V{$֣63 ~]\_~}o +|g-2C/9'boRwd|n! އG0_13ϫ~ۣǟWJ_*򂺧-~qƿg͉OoI/zG͌7)S }I-H CO3W,y~lS/~qS; Boq[7 ~^I0~^"4 oe|ڧ^S>z1~gB~tq/1~]S^8K5x6ZVʔ!b G(ϭ47;Ny +s?WKJVڽA~53i1vaֹ{DR g_yvΥ,v2% xO 7O-a(SWt1̹|`?W ;/Fp2_KK.cy\iqT;?L;!̷KUW75<x_!njx*S'2OdzD4<1^~c_NFCcW$xnj[/S=x%0}{ߦ{f?ZsCxa:_ET]EJy/? + +e}ZK}&>x<_מ$4foRS)|3_ʝzD[?NlzcB?Qֱ{!3;i+mEy/O>PR5<x 1k//> |7<.g[Ey_7׏l1eg"c6?ƻmcCߐ7Ib?"3Ĕ^bo!o3Sug|52"7~ƨK9*?!^3X!YIO!_|&cǘmڲl+//2䆿s>yƛ>+))/E`*?ugqOn̏2}\ھ_yy&n?ڱx9\ ySYvG::ύwQ]=OwBݎ'(? x9tRD{O4PIq_ݴ.gi%I&O͋uȿ Lew_:&ދ5/O퐷\hkIG?xL,{[_{eėh?.~Jq}OD>T>z=L1)<y [d +m't }.C_^&/vbS +y?e|KܻϟM~X_(>fJg^(/xI9B uE?@%O &?0¿^k!`M͏Lnw?k}J ψf݃rOwohz__r ;j3~ya ^ᅳۧy͵:w[w󤥚]|f-Mo~O@/7"4`d^Lr& :ATgU[J~u-;_|C=ne7C!?O.aߑy8fSzBxcC&v՟47&Vη|֘1|$>h׵6|<4B1G92_$~F^-N.m;ky*~s5Wǥ !kXk]LրP|FeϪҎ22')ܸڍTUGmвAh l~[.SBmz{/^~ +7S +ߥ($<;©^C +SXNf +wR}APTFS8k(\@r +)LN +wS7(|C愕}{r,ԼBCοH/RՃ2zFNU-wDUx?qGB_|F5eūUm+< +s)MWCS9/J?g33VS/}G#$t0o|Qt_T_(U +J?]O?LyPūJ}T)_z*_6pΆS{uDjSaN+:ʇOۜ5!*7=O*UX</~*?M,$*^?H{s w/ᓬr3ZLTQ}R*S +D(^}_moxGJhftTzjJ[@j'S6j$nc;U9d&QY_ ţq"Sx}pOo5=GWr,l* -ڸhV8USaxX<,axX<,axX<,\YBlے[vHƹűxG|\z +sogHwl+u~me#kBlm[aN(V[y#=< +xAo[`/ +:{ݒ)\/s tnYk(͢]aoZu҇˾P<zZt^V0 }O(yvo%dⓙ,[nŷN+ѣXŷo+&Rh^/B1ጿl7s;v\\wWK;Ouo'gU gn8sǍ';8؎ude8qJgXS.檈JHܐdH&jЩA%e*7[K/:o{^z>elp9Ǧs|+XjW+\}ŝݞiJoeY|ſN?u^.RD=5.3qZǫ<'qˇ\>|<OÇ|ts._]&>.߈G]S.ߎ/s~<_ wy]蟻4py|I79ry[a>ۓn;n[|?zoRg)'9yB'w~⧊Q=ΰX1q/ߩ <˚؏R_'`D|.w$bROkK_b^ÃG}ӵ3Z@T?=Ͻ^[KO돮7?]^zbӤuxjx'<z{e]-t?doϷ7gwis\~;Ke[F O9q[Dv`=^-M%gZ~zzC;3RO$&giOŸ!ϣCs˖}y_o-|@mğ?s?{1`{P|>xdxa < fSL3X^>.2m,3dK8GO@=?]^•y3R3%omH|t߂]G=vxouʘ#>L<8j=x#|YgÌyfU?oߌ{sܞ~Yϝb+8_ o onC9 >kXp6q ~3aǕgUe|KxxW/ ]ZR+O-Kfx{xrg`UXwp;@lwZ|ş2,{1 +&#?牷_82O6l9N&r ͸x Ia{;(>㖉v[_햑5r CߨT#y1qKU,#wxc,vW u~BF,oY|Z\3$og,U{7xW,>Y|NUpNo|GqOZ!Zz,[||5~7y/SuQ܏b7[/Zb9Z<\ߋW^ |%~-[KHu,HOdc\[Z|[YY|/Xf~Ń , xf,>3-csR;,~GY|ŗX_cS/['7xo,/zEoe,>w[|ŧZ|ux@gX{mɓo짜_%xs[㏋ڇpq3O +Ɵ92Ju׋_Kyߋ+&<^u9k"@=y]xx+~ +յy6G;y@GzK8ܢ'H^<pNz-_ OOkޒ@IK<'w<ߌ{6K L?>'7Q^}V0:4nŝ?J? OƵOq_M)F4S E9Na3m3 ؏4cb^G?櫖?&v;oyY,xgy:NY/-Yx1mGgnte& HbsZ," OX^}?'z?y<{Jۭ#k)E3Nޗ&2+si՘h!>ߕFw}|"̔èg$)㑝-<9]Xj_] .Was\s_/PNא-+ (es+<'~p}tq{=58a% ')u~_= 7 MίxrLNy)<^Z\ϛxwpߣ"Z'{yw C|7x^Wooٸ[m(-Ϲ߬p\~amw&3xGcwݟ3@T$y۵~&9y~0_śgoa6j~?#Wi8?g"R-k{PqvjyWi'd6}`}M&>[}ypO%;PF?LSGefXIBsxXu>,x{>l>{N-8i*y-Gـcf~sO<Fmkn҆j^퍻cH>788`;%OឆsLq/&]2Oģ ݓz}-/&b| [cr|/.ד\.\Y#hr }5:dW߆9Nzle-_H4iW۫y ~*9 ]۳\Kl<1^xq}/swktxx*?\EO?W)7?;8,Ձw_GyV{!rŽ<3g8N7q&a;t\=AaY~4ZAƯO4*cOă<H׵R~+#Fa>7i^ZoZ; }.8uo6 N#1 ,A|7ܳ]6h}n6<.ݾFRRle%B<ꏹq݁ҟ YZ za<|L߀wٴx֋̓?^9xO>o弬}A>XKٿ$^R.NC\?\F|GZ?~{'I)|B'S7Wz +㖑dzUoh+#ăgyهs'~J)C?x=7Kz!Ga=y^{y@8znr%%Mݸ:;{z՝x{o:'yrH2SڗGV\Fpef:ak2d0G Pt_w5ݝ$\.9wC P +( ._Uェz:3իW~uu +oNfLs]|f&W63czҢo|Gw;KL58q ygcrv L{cm?e g~cXr[s8O>a2 ^:nϳ4 82=Я s)?_>#gym.Ѝ 4|8I /> i>}y\OƤ?q=;|]n{]|.a{/Iz{_X1s=|Y0]' `oOE4zL>|pn|SոjOin"gz֙q.X /_:ixwOΫqyѲ +~斜p[_}*7~>hׁ_zx "jKi^~ pv[ΕWs9߀v1ơ`г=/QŜ*ල;E&?~uۮ˱#$H7AՇd:|0_zZ|oJԏizܞg5nN{9^!n*?A'O1=҇s- gs +(' l\+_orfල&LPS{?0|zK'/ =ۛ81RY*šr7xc7p=p[Kn+x v끗8Wx%|,<m(75 qsQ8ܞs_'硨{K1o:9-ofa{Vz0i`nOY/z+=C(q|]@ٿߋs;5eE+M>{n߭ȣ|`'Aim?À7D ~ps-5s7UWowOH8 ~39+PyYw5x^ӏx7qU>  x澻x ~x}_rۓza^N<ﻝO=,t5zO!RoByۿ>z޶2%neOG;'`8݁7^.v)/$<$3 +Jp89xp[~sQ3eW?0s틳nk}O_H?^?_s<^P޴ꗧQϵ'~Ct.#TO{ٯ x#~{GI=4N +P~Qd-q8r|˃|P)y7 +V_FSSyf |:~P/s{^vG`?OK}xSx^sכ |dcb:qމ/EyNo{﯀Ox9縿/9Y|Ǒx<;5PDGBaQiտA\~.'Mޛ~єO_^ޅʷK`Wƭ8)_M(oQܕ6#Qωc??p[ v<_ sϔ_%ww3c|^>ya :s5;sP𩝈^w~vkM?/Ӻx:F؉X~x& x4!`cs8<m2$? +v}L?ۦw |&.A=mП*B~g9w37XQES~ q?É y3ng ONhO2v|{ypX C{>ӁOz_{>Z?q(`DgON7I@^x”>8/P=CN3oD^e+)zӁ#I7P\?R8sMF@>kSo,ơF'Lg1þg=ۀO^C0~3 %ˮ=|nrs6pFv|߹i57@q;QP}0"ޜX?| O'_fYiGQ`C4~\(߀Dhgq2ݾx%Xn}x?bܞh$| +|yn;Y?ܶ;OO?CY_>vYة3>|pۿc9/Ha/]DM\1t1oM<!//^.k!yf4ڳsgw>xs "v99s=> +|P>&[ƹ~tr'Ep-+@b?>u7!oO5u_Nme͸O~>io.nGwCހe_ҼXEhٟjxl36+>w>y|xӦe7y8z\l0>VԯОAW44`xu)3LN>B ;g }_#of=/Hv P~, p;^r._Tj +=RަJ'p=5I2඾m?ǻv#wO6p;.GG#4/mt4 0[s^Wᘣ!Y~磼P)?>N/Tw%~xYxS] Ͳ7 o|ʟz'C\?꿙tO> |j^rG;si `wSz }B\A8IZq۔0GS{x?ίrI~$yR픵nBr'pq~G}ߋ/m2~yt*B3?g?% q5G\oPඟᏁ7o`q~Ω:G{n®> [!^D^¹v*ר<]]|q#1>?n->3y٪yݑq_*|~5-ۛ3p$pߩ +H<~x燀=ް(2.cߠX?ϻLJ+`ss(?E/g9|7'ӫ [9~~{x3Q^2jr5+O m{^~I/} ۩o>k,(p[{ M~rak~o n:|ڲ oʏy +w"-?ް;Ag|un?PK܈C:n|7M̞OMNn_q_| QJRo}# s z^D㒁~j<}aƭOE=i>kS;d(v, *xis_ |:~-/2/r;?; oӥ]`~-/r ~CӀa!mޝȇY#}{n'؏O#Ko7Dq'FyR9>ho{Cˀ7C+ ||^GOn |F܎zz i ï-<$gi%_#oom'=m4QlOx%T?Aɸp;O@~J[Xg~1j3ya:IC0nLJ|QMv.o3x'[/r-چcG=d]ex=qˀOb;'9s<'ǭ|ߛ~ +qS>4^sv9o(?n8Vm<tIf7¾(qۿ e2o:/oSGy?}WQ `}kw9VE-=3h p~c;_v u2 |V߀mwd&!!ӽ_85݋'wAs'L|ο~O"^ETw7mM:s 8O ~QôSeyο +a@~LJZ?PcvG{,r+qZ |S]Gw7Y~J_ g+ݙރq?ïOnC8ADa_c/ NAmTSO]3u(CQZu3m}ԟqs;[c)ӷyځy?!>7{r1ݨ~w7lKt 79O8TOFX')vmx h-p;xA+@60 ~𢡄PcH?|i},2ϾLs#6=.J)8M'o%ځO#{V^*~/zo0iqy`/{j^n~3V{ DgPCy;??XpGL {icwޏsoo>79~/me[-}_V>b]ۼg_ga'ppJsg}c?Vϸ_V|E|0/;4~ǩo{; Ǿۛ(A>--u'Pv;yx?Yn7W_Q"S x7nKcG< gt1q^'1].8tgߒ;^> G7b:˴p_Exos3;z-!#DWg,S(o<׹iL*SǙn~x~q3!/t (.O^dگn_}8"sHwB>|jZo6xQ~%Ny +>\o_ɣOt~3<ޟ݊p=?OmOa=NgaXvƏwXj?QnǛr=o__rӖN]~oD>_o8Ia=Oninۧ>!/wB} +6CsOfꥯnulOvMsNȉcYzgM?COA?ybьW=Ǒ \ |=f^~|diOέm?_ӹZHTy5 +{#!+|yX~\Ї_U(?qv}A{@OyZ~T;['p_OE0﹆ދR\r4ʏڝ|q[kc߱ ^?st[@W-qy.b43[n~5y8ǭ=M^r\/+^ca^ZB/oE8K J~xַ8>d}/!|Ć7b/WWQ {^[8i\Jok#ig̕(t] r| +2<xfy9׃yxuf<]'\r_-kogyp+LǏ\άg5򰉟 +bu͕Xo` נ>wYJv27 pN<{Y? k^o;_E4n c +ս`6f5۳Szna Cxj>y{=g/DOLbXY|v>T"Lg^c} qa/4|[z.u/ʗ58ǿZMZ'd%k^F; x^G隿ky&8pa83~Ϣ|8|WX| +|Zf .sjo3e1Xlf;9w Ocq>*Mh0ws{aփc,o`݉>$>/N^!'kq +@A s7_`x9o9.ok7gBk1,_|z(?|A|ۛ0<~x#' A`<&;O}~֋h'^7cb|X>al}o൱?o7#?^4W,Ƈ>t{t?C[z3) |)O_eOjΚ[1/Pt^t3 k| Wi{݆zy +)E|^\|_fOY8{A=[կ&_ 1gwO~}t +_ӭz,0| ַc݂Os߁Y7Yu{`i;f=2ә;~YG+z>>V=Z.o*LJs<SZTI^%m$G+#|K.LJ Qrc<&h>&1J)D%[4KH(!7NcKKُY)nn 0+. ЬXc5c51{FKe{T%hΗutC4c=XJ+<=%Vs`湞͍ٔY"CXn,lQc{Gϊ,H%G痑\#j0D8k_V*_,'h8j.kQuf\n%4NF՞-ddUq`̏y|) +=Ɏ*$Ss<%@)qi T+HO`r5|3qtU4WN,mqZ.$Cf:n^kQOLdDz1Ύu#S<c$ T,G-S :1Z WT!7ӰYu`,3KJtچ;< +U=R}&iيC㠊---^9T:Jo_oH|"/S;ϋ"E"^S6uk{Ǚlݒ0i=towM^%ոh~^qv6)!KnHYS~}'[$/|t0{6YKTѠlq֒\*V*,\@>AVdK(c7R$ii&4Aytګpk[6\ >:^[J51ytgIŊDFH$ADZ0G 7YS7!5Ja7U1!vTLI*)'tKd5[*eruKt.m~*^s! (wRf'18Q I+Z4պ%#Z'S^ZtQ Tgokb5 4y JQ[sfF 8v&j8O֊[IDVWsuU. q>J}lv`ׇ(yzmǜHFA6w+B٠+T8-^9p@rQ󗁲 +6Z}6WFP<,75W&I&T!;bٱL~:귴yv3{1z}Dkv?1X%iPto s QKf t`Ff7t*\ȐQGfȍGQ*WlKYb]| TTV1Az~U~yo9DxNضV`9H`-:[6j$ԵbdrR+RCJMF :zw#AY2X)rd1dc2?Ѯ+$t$a.NaAV.̋i"uxsIGi-1ڷ1%O&m;juG,wÞ=U"8uQXpfK.N#IJbL)KPaJA<>Qށ*R%8Iq3g*:+Mr&xҹK$ڸ5^Rbru]D.A&R$q>zzYTeϛkI3wʻ舱fD4̋AKi +^v"(hx!. 1PD5+X#X!j\27ق:^hH܇bҎ>91P8/ yO |`V]֏]㐷~WkD*iߏ7X"[ƤŢ\'!j|e`H>%{S\cjY::G5T)Sr]ؽC$nEL{3Rh$:XӾ#zTl} r0x[QUG10j,KrMɂt8+= :+T2#:H!̫렘j2J +8Yd}tP gF$(Og$#O}l;xUur d]>f깉EJ i$~!RT$2w+f=+EDꅗsmvQ4_bMtI⵮,ar +sMCmP5Ul:_,<] +ʖ\l3\>71^.BgT̻yNpDU\7V>bB4Ocn1\[9aRWrc:\=$C]uwV*6K~h`:s)Ap0 Q'YRBݰZL+/CJ]gb6*EF#:0:*`aݑg >r{wt5Ѷ-H$?#<Aeք9J, 32Tʉ3@^ v)UY{MkSU>rjkslc_Ubi9N^W磛轛` eGGM0]0m.og'HGf>tZ*Sʁᬛ'pl]EyH`h<;/񝅕 +5HXx0KY/UN"1X67E] S-V4WK?+ʩduoD!_WPCP:9bM@ώ,yi[,9kW2 +K)E4UwzhYUt8kg]zdo8 G -AdR- +̈ڏz2:ːT2df-1+UyWA2F3)CnS!FlZ( sEy,\ T"3\ҏpT%9HUҢ04ڲC<&]HbFU;,jh^9J+Tlv gN_{c w57$s u be{JEم8@-:uɷӳTZ+2x 8x>f05A.Jz"/_&;V(1>o_ria%bYxh3(n*C‘+̣ y$3ki Nʥ9ܜE+zC?6AR9$9 f .k:88!ILHor+$9"YgQD2-VT0Qux^1P1lxk:$?kLx)?f*\" 6Le#xex]gC(¶y 4\NhZ7ܨ36dlrTIZM%\&WCs@Uq:a v$s< +ۥ):)DH8xpфR5Q4i&e~ (ۚ0I[&TSQ +2"̃"c3$ՄC(?jD?qj22MN=/Hgu"~riS\s.E]oJ/YC#ΥCcg!TdF`) 1P=T!G;u3p5+XOЍ$KZJn?K_j̃+9MSoDNB_tu|Y>XqDsA|feQ;_k려A6[r3~!t5/sIiZDSJR{:e_ü%O p[7SE$⤗"u 5Me}.\w !O|:.W<*c:h2ݝhEW:{-ېfYn]obt}A3Pog~R#%ƧPu (%?sES--̚ٲz@qGXiEXjۍ7i-rLDQX +$GYw9uqBX+RHDL͕隦+ZŽjS9ݢ55("MZ)(E"o5dwGnVFs,AO{o +Qr> P0BFpHOs8:ߥ.Wr̔H N;1Hu|ymԕf%EMO5[LwtLID -Ghś坪7} +jxٸ =EvLIʪBf4lۺ-Ψ=e^@9}(l+:.8uϹϡo…B.XYQcXЗiArqPʑf _ eρ j{ +r1YdYJpǶuIe$mf#+x,S5f`;k q-*VrD?D9(/U3dlZuԑ  Y=ɧ5pۺ/1G1R9Rx|5!P-W,$k}t'K{Zй+Ckԋñ}!9preGN髥Y2t<3PitΌIh2&y( Ru8ISמB$3Ho:jkRhzеTuR6!>N,+$yoOX]v퓖XuaX ~8L TXg#T72<&Bw.m1edq_XG&㝬򧙁cV.PӫOw2Lw Nada>wYS24QQ-& 9]jkI!mƪ ) 580MBu 7IX}W7:֬cÊgA]FpZ +l&WfA*݂+&nŞde2(Ot^(벜fɨV?k52jz QJ,ZXpSZ,4[ͰϬtu$7-A=i͢7OxPQ$Q"KQ&xQc|d0;$0g"~0_5~+jK7_ ,~z7Yr ¥i2scM$^ $F[8X"6YFLAB:]˗1H`m*%%p]i/$9K,O/z*Q̙S5mm+Vu/H_l4FLT v2HYW * _vZcOaT.۪ ,Ɛ(%`vǢ{+7җ`)zOEH6&j9A22OYrlhմ"Y($cUkuAXSr1ZWIbE%te.K > E7[PD};7;W4w.om 'j*jT+krtB!`j흅 +vbhׂ /=i6$Ǻ#bt?ҕE6,T^: 槱\)'JjH@,E'%lY [/>MS|Es V!F|geBk2!Nf+BI/|i}EH"'Q߫Ue(oKSElنTzˈLR0&@jm\jo17z blV^󥬵^E`W/-# ) b"鲸h"[4^3,bkCP<=Qu]ʉHٜ-k嶺EZ["X4SdHRY$s-3ث՚T#MvQ(9+^eXF%BHf3oEg cIcebNEELOR>,@fiKf7'zY@~q%kPCte$=ۺX̊]42ńZT+{|ň;,H҉dcd'i i[ԦBHb>W\֚3|sQ7ⅶpME!q:;XFSՂsbO~)/BO0/zDO9XE"c83yˈ@ғd +TRB42=H屧~闯!1I^)Q!AyjI!.NNOp,>>(Ufw֑to9׆>6lkQs(13/pJnո%iGߑ],VbKpR,N _TYp~`<ϻo[ššw\WڽdTzFx+FkcGuu/Mq- +[W<KxBD[?-߾[ /?,hO ;g~V 3 +0 Iʈoe[{]4'{,Yc5PͲOk5j!ӊ]9k7'HO8i|{zA GpOZ:OKjMb;M E AUyg'8ّ*ۏ2VV`40u0TcTkP`Q' Ԙ(JD^)BX3S%2 +2*y@Xic Qe3 WOd ,DEq`д2B_ 0loᯒ&3,T"eZ]{PS[TEħ)fBL_8ydy).^=II d? b?aOX E !z±~ bo( PUɅG Ku|D%Ë ! IPBDҝBD;Tj*Yxq۠5ڛkz=*Tz:,sd_="#:ȅJzcP>F%4Y,e5?nwt@=8\+h2)"})3DzŽ6~9sMh*K Ԓֺ2b=m涆g&-GkyZ{8-TvvF+z,j`aCVE 7`:ܜw,3`cHz-,܄o7ΔЯ ՛$(| +5`G%l%2\'xSjHD}DQ3@9`Rm\Q)!j'wP*Xx6C?A#)/"gHv{74xaV 2sRP·HgE?A'X1B=8tDXeMvH٩|/2,.Knv*yB|w`&[8qow<S䒓rEE>ش>@y![v=y\HP~SBHPoPxGuG[7)3|/lN rxƭza1sbDx8l%^LY?a` ރy1_bɷ|w}[>ܳn@]`G[q5Ah) 3gXKO6Lbt0uSEW Yafem&Dw>CK΄e]t{;X߳/{y/j٥̄bdv$yãQ +[Sd~gZ,"W7HI3ҟTw1GeG!JI LwV:RӍrF"ǖg儐@g?Y;NNWܼ7,%HpXhOd +SkfKcSVL{["^46Nmg175,fDXŒfJsfݘXR/7-AaX-쭴#7wAF񌔘aiWͩ#ϩKWF@r,^,>zh&ڎ8 AWGNϰ_v4>gA\k}x~(6t6pE$ӏ{ߋe%[ ʰ|s%մ>Ւ& Dm3[SOMH#Sd ,O?>[Ҿ1pi3L,AЋm FZ Ͷ{[efsܲT +ݵۏ|Wc,̓RQ hV85kA[Us$ L1J828@L#{ѹ nG 񝏩 N>a~sdD_m'C98;|Z]C(_9T Xaf50gD7f3wرyKPSt_IJݞ-L~3_d^#ٹD 0IluqC˻<|hH-ސ\vk#}shu2 з9үʮk\([Dʊv{'[ u@V.`OE'X4-n֒Vr_~n^e昶:mi4>yWXE0'dHkgV&hj t@ i[:YsW 2(]f } aT M]${Pr6RddG"mE}} ?@?ptw$ھ`Cn֌}{򊽱LIxlMNwꝫ+ ª# I"Y X1/cGV6TԮ2taR6 f (|rKDγnroWo34Ro&})0q@\SjvmGi1R .tUh>Φ(X|N.%)¨E~k3A[~Z5f~IV~c|Sl` AJ$e{,^nyiFhD+!?LϡωM #=MB4ok07( + ) y_b ;_d_»Pz'4hp$ ?3Yk֨O.iKp޼񌵁\lA[4<[nMb}p}FYjif5UrդFOUm^11PЋC;W-<&:, 쀨 CNҎ0X 34*Hm>Q!ԛV]w.fpG +T}қ1:AqQ-'^ޜqfAݼO6DRDf_R'MXoc۫Iأma$k ~ާ[?Ӂ +; ; Tgv RScpS{C|F腃 V^ G/yx_?JF w Qfo8oHmY]Gβ^|i.8ۍfBfJMO!ܯa(O Eb%J%&ؘJ]:Cہ&:Zߎ/@(C^4AC@ 3d:$/.I߀<[fh TWMvfcǨ}U3|ɦ \9ɼĤPKhr \bxJZJ&0߹$CdO֌/k~\)fq g4 ~ i +(U%y .RM\J׾xSpz"?07Xm#t=LྕpN( RRj5]2GxNK1m U_WK9@߈Pp@6hcaX M~XE=م:.f b97}qvrFz_~y98&ۢVXtѺ'(rɅ oPq@GJx$}Lh^ P}qzx7Aq3S$b(]yZ̯0)c +J:gY*z0  D<߾FRy|߿+h='*dUf/O. t8ekoV6;tQzng2t.$. č~"n~erB8Ө/h/< ܷgX9PUebD9-u> k!wƬ 7iN]*Te،o + 9+s+[I]y4KV[S2R>H ~~$dݴ.0wG{P`՜1@jJGJ[qXQ`eEG,ˢ '+ 1-QK}]݄5>JBG' LAet1q&O  m}1% +O +ۢ~+^( %69zJZuQFHghoT.j~!I<1Kf6+ٜ&xY˫w%t +1^T>r_A[m9Q~~ ĿaZݿֶ;;+˿x2?ecDD-) ܅cB.;&<%<+vUQꂇR +Ə׃ī#M{;j\/F7ϏN&) ͒nQA{taHe:2F@;+ThNHGt4SBwqŬiAq͝5rYh$SS! +`w"&tG +>r,rF)Vn>8#!yVoAǖ7܆ axZ|LYS Zk֌3a` Q~Vݠq2}hJ)} ^f_hrz;|-@eVapHozw\Fm&n(ߣ[u3cTG7-툭BoBAKjLbmɒ+lB;L|_;& ׹l,c\;H; .x)bC^6ȹb&W_x_+k[#c?%Jqٸδo{HռkfIiB.Q*zm&/5f[6SaS0zոH<tN +>ξ}aE+Z61(;/enQ$,EDēC[&* R3sq!Q B3â<3=eo 33uKL;jF\vGDUCWah +v%auͪ1)8pVa=yx/0D0,R,$U0p\g'SUch-t'iS#lyX0|#y 3гQt$8Ij"D}j1 q9|ɓΌr3ǢNj1Ԉt'=O%w"oNf>@>FY6\,.46)( c0As:Y憠ؑFd`'DoS$&QT_|3 ׵eCJUǞ%9g@"#n Ą;?Th] +$ps +3(sT]" e}J&}i 7z2g? _HK""ZL3O{8JPd^(c H}-?Ȯ_]}ш[tnבۨ@XLkz Y5hžl JYT_ΓTs/:ɢ61,tO4RH>@dX'-&( xaj+w ]v&ͱ6Qߥ:)x!b:gW9j}{ݩ}1ג';Ftdw)j#=ܽdRGvY'ZpRVew? +W.\MF)VDļ Up8\42k`Wh|v"-iHlb@mG޺u oopԪ?|CBfo|#\sK"u@qtb52'iV4G6cAo;G]sC{+K?κA1`Lp'x[Χzc:ֺџ J 8\^ hA\tNtwoWњ197:Nvk?$ $%XĶ^b +,lj;y-J=~=}/a8Zz_릠Fŗq!B>2١M@9`Sќ .YU~fɠ N +r86\waE$= ,o\NPql14)5^F116eQkym(ZAd/og#"VviPK.鷼/<q3**! +/Th&[Z]kR蝽 c-3I°``$'lRl=pJR¯fX'^ L7+tSTv Qbh貗.*i  &:/h _QM|=ʹAd< B@/. g0A?|Z9&$h%M/pXMnD|TDdšۡxTL3O\po>Ĝ|+f31i|)Ybˇ(ȸ,d*Ys R>q)9"A $Z'ze:u)Sg`roX15C(eҷTsN6ItOBq.@PJ K2BI%)kRB؞施3Afdef4s?PNn6,OL zYp +t椫t GC{ͮ^_@:~" SZ}>` vhNs䀡G`uՁXH"w[rG91 ++Qv\$Dbd%p}9|WXnk*ii#1I8L\E +ŰnWGOfdcdS@ +ğs(/8G=3BZ@9fۮTjosPQeT6јAԕ.ne` JPL +;l?/~Zo?qRKI]LA\1q(ߒP* gڐ5CEǷm7ݸXg6H?2˥<ry>,n%: D=t N ~Rz Wr4,m)ݹ[RxAU2aF.9{B(ʹm )+ҩB< +(8cəHDkt6G3sv$T_mP\xٙ*CrjX?`Ϡ丒Z[ƍXŗ<z|eG&U8fr( 4~aGd/0^o|7O +C!˕;phS~; yM.mvTc㭈h2R3+A!vHB9&@Mu%l:U(_+O/>vR1 +Mh H>\.ϒڧ?wOwX# h$q.[^[H_Et~ 9`H}?GV&/~.i;4 +V=IuKʙݜŰYj XHq +=pTԤ.Ӗ0 %#SdY{#Np).sݥjX!22_HP[˿95|{#-&#(˯LR<KpA%I~-AgZϭ#9Ÿ$xFT OGJ(2(ʃRsȨ-K"҅SŮ)5567 {C1]ч&_%4>~ZB͔m ~pƩ@%l+ 6mɲ3ܜcE'óLMr)|NP`=y׀ϋJߢmb6CVZ_˙tLruK 7ǕڒkUʙBaRd?.o$nUoWn}E>a~HSzF?`}~ ֞X>|aЫ3*A[n-V5L nmJ& P\$f_sڡZKN0Le)*q!FŇ_\5AVf4 ~2s"Jo/H +LmV36O +*7ttoUy%V^3P&· +ҟȠ`e$:w +&RU,'5&TH!;~ +ٸ;nm<3/ 9X>MuH zA"GHD-_M}Ң?3g= E +:P<02j{B~~]mpx,h;'F~-qAѰ0+M#/;c=Ag~9 )>r SJCŵ'v;gՒu)$Mom8Q#W\VQC^SB&|dJك֏w߬etOnHYĄW= +dpƩc(&AT"jɸkřM͔퉋?U7J&@ +s |q`~?EuܯtdJ~k:d5~%(ڢISF{Wu^sC֟mZ`;;lseCDy^IbI毴x^i%&&Z0@M1 mR=,$*X*X}Ch #똳[ zk7n*d@~W:%mfaw(8 b|F{d534MLb,;=˙ަݖ6Wb,Z^+IvzEyiJx&3ȿ5{ $G$^\GlN Z"!qImq񉹀GH"#1 ,K.NnywPet,Q_/n{xz[%C%0k(ب)z|Ljhku6Ẹr`˒d7*3i.' _GTh\*CA T&t~d1aS‡ʕN*Ib=$7$Yǎ ½t z}q}Dژ>t76:ŌwrV&_7I=lÕSQr_g5.}۬Qϧ=WZ '+C d3Ֆq`q2eIFc4g[[3FI~WGE RӌEQ0ǿ;S[2jUѹ XIt~9ʏ!)(߯ 'kbXX+Zޙ_嗨ƿչW*#+;$9Q%;0v?~=+;& n{yZY]b74+H*ݒ7 +' )>r"'U݄`FPcdQ4G'l/I'^DJ&yhRA}#Kah@dN0)}$}?p,Z8Ku!)ݓ,~u @%~BlndhR_; (lF @ %>0`EIg0'ɣ YtJ*nљ{6. &!/~^H\ƕ{:fR=cLYۻ]~Vcuxly`9ǜ2|+tbvaPA@\[=bT-hb?B$s*^[\̒Œf6=!bA5i=Q.7>bk7isB`#X#naX%VNK"n!kYt a K)ɴ> 0ѻ͜ѱ&n nQMV Ҋ#'fĩ +ʃfcZ}.iW6qՋG +ܜ>ɍ+ފL5+Rl?wq⃭`"U1WFi!M4_2yr!#.JX5Qjoڈ鼞˔H XIo7YЈ`R(?ݼy 1ݚ&o~fR +d:Sܳk G pH;OF% +tgWuST)􌵶}kK/:f6K"D (3ě &!Oٲ$G߉A `5<?$U <ke4wlE2a}%jeu#UϕVK"`^lwaʵ' @ +i$?g,. UT<ejz+k)4s}dвAF#a~=ޛ? :/:dp5l+ͅseZQ3(R$m -KI z*kG}Gsi~:C-?vNB*f*S# XhcWqg rN5pf#5W$}y`nz4, WjH|cM_XE +Ʀf MgͲ^KkL +SC9L3j7&w/H ^|#5=(ߌI-=m,l5:2ܶMYIqhߋ<y"k4Uf.L-7^ߓ|bi0֝яRPS^ލb@nwr`a'$+^S@DTeSUv:2Z*%/^ܓ@,)z3Xn Kh#t] _LphglUʭ1\e!Cۚቝ;j5NwoW<7uv4̀׽s&^x̢Ftne3I]_J<5qHlG`Eg7"Д"/~+ϞQ1( T~GMpFzo:Wе i]^g7%vEy\:lŷud'hFN4_LhW/Bh̕x(Qr|HYĂ1מJX+n>Ϻ7)lpx (0&y$}L7u ,FH s.|QgX`*_լHY 9b];nL4(2Pp ۑ8d緓cxDIQinND܁@xTM8җT]yҵRFs"0ة]Йcek_>p;0;9Q+q/=Hb]rX;!ՙD3ȄvZ+|")@ (q^W48y֪{ +n_P̀ +CpSj^r`_̀&A䇃8B`Ylazvcc2.-o#+G01F8Cf&tSJsBZ~+şڈ(~!?'ce0wQrbB[t ,اhsv/Y<ٓ7oV|Tj/]o"a/6.9'ꗃ_Ȫ۫ &OhG%21&Z\ e +R2 +*JYBU5L+kAlU-,pR3}8lÁ%cU2_ Rx3Ǽ==cu:'7~C3X4Wie># %6CuaXâB:M9mL}ZeڦAr" OLD +$b?M3DIlPBoQ:lZ}p> 2Is k<}օ׍I; <.HUчuEem-OJ攺k!03tS 5OcưBm>@sG/NJjCk͡}$Aҭw%Y<H), K([4I,,&l#׽8K.U"\h?j@F^ڠA1e}01=Ĩ %mN7ӕw1=KbvT 9VO9m-p>O>5-K^*V7_W =*=lPoK.jeۢY{hDi!t :(al +v7l7T 1q*P-'}Eoul ?BYbh*8_p[] ]0}[%8OӦ/a_! +;bkF- @u) =ouNfpZT"/~7x|̜(V7 9!$H"Ev6@#j4j+Gu4)0V{ b'9b=?S #6һS0)ְ4}}m ^ s5RCXj.^vZIj@rXlߵG[0t~J`փyQwpb>N|ipLkY~\{dE6KY j=Ƣ%kb@e_xP ^5yrKRh\9j90J*,M!+0Fv?毸 ^}GܾZmT$FWFX%Zpyy[w6A14סաc@G99S&թ51-XYO8:`S[xo5 LVb E~424m|OU36DdN k؎ڃ>k;,dXlF.utB^A +?\~yT?YsC9 #~OZZ)G?`- +م7&?/h/2a[^&uXzG>"+>r+s;V,JpY/2PjKA!1SSs?+#j55m_Io0;RL \CT8eýԁgtJti#v]ah5GjTL3m_o"r7ȼ2clx4c|1le|AgҞ^zqi\ y֕n^R[? S!×yb_csMAyA\`D@壧}#gjAީׯE=݄&)<)Yzȇ}yCnf8ɮ$ 2}gIJΏy~yDåhI=IVػ[dYݩf ;F*ILU왕%wgD Xaa@ځ^k t:N#k'e/yPY;XUh5܌ |.G  $QT\Rז_Y}gnlӹ & O'FA0 Usk3IUж(Us Yd4{erigbn7\3Fd>IM8x8^Z\% )#"iAmK6>XUn;0AezPNu!~`Wh-^1]cOHgɁ+SmХ.wșV_ƯjK{e5~ |?{>VV0թ3ȘLP8ΓŸeBP`w}ɉ, EY@jf-AUkx[pO_l +F.^"|ee(cS NC(O)O~##;s[no*|pp$¬ +‰CNUqY_3(,?<*+[p}F0S RlbBɟhLuP.G(%aLiaC!RNMdzCU96eͧȜ\ʲqu͉/ 7EN3#^Е6[?N#z#&n@gu2FX0sJ k(p$ 6"!xnfMq +ls)]/J骕g9MV:!-9d̠|[)6,iDV(>W6WX6t`PU5 +G8TTsa; jd7IϋrC-Rgollbo5}m1c)D0"h0ߡFjh6*̿"R~vLKQ?\I $*6ضz&-} C F|`{J/4$r!~Ȅѳ +&!hb2pF. U:v!9Jp'+2Œ,O;X \#W[F3}`ipd9Nj*͚JD5[m'ݑngE?pl4 9U(S*p|DA/ZI'BߒW/2(+2wx=1 Xŧ|XX?y"jMI3클'7(^ZH(~y'\׋FC@Uh+U>y!)HS~Hgn-HZpj3;mb' ^րP?>3O& w(;`tCE^7b_Vl޾q* [i0 ;ˀԾq/4(`yeqFTCQK& =H@M1QN A1Ko(muڞPqdj1dpb%%+<u,amOQvz#]SYe7( w8wwEQt8]b`J3ߝf8 PrEe[HXnSG_  +J20.LaVy?W==y,ߤnf_j~!"~5S|} +byYb@g gYRDĝڠ=>W-j-Yx{ P M-(c{2(o|͸డ#\}DwF:)Fo Z/*J'?е&mAe+Y3QYKGIIR%o8Lor/``0>cxaJ-!$II4#! ̠u:Դtn̓ЎnA69 +Xy2F;VB$ہ>Bu8ȗ,DdGT5XPi1(&kAkQM|Ezc. L QbUVX=\o+*}QZW43d}F 8*WxnZ6ͽ^U!ʺ5E{,[UfNkyo +eK.!{]{1GPN[è:3~kxƯbW툀B%6J=0`[˓:_^*ZV)޳t6usi4; + ;L=9QU$ɯ +% +e^1 + +)|S&p/ï +%@(d>O{QHRضi**~L' Rw,tBA}ŁgsF^lfGtgݓP}ϪkqT (qVҎA\h!̊Yanc(p82.>`+R'sC(/)%sx-?&>R1= c~4GvmIJ/O3?8b uj'r\Xᆤ&sp,JG/n?[s_=]pFJ@æ}jա< 5IyL]#9j> 6ZGD-oϡl~#9ARPM +^8?3_K^8gāy{E73o J-̡UҢZ=ϧRqw} K /7tda\xvႫ%0n2nӵ/rc%{mMK՚y/=HAxl@;Ĺ+%2,s12PtDe$nuF%a^Xkn4g{Pv9q݆_Tc,u4_hW'"}ץI7bW!XY zӮ_J'/+NEq6Yi +٬jiN)Y* R<2wҵ/<5Ȑ>P!(U󾱢q6~&}q`8Yټ$ێJ_^;*;[6LВ}7͒gմw5I.)%~U).CVn?aI%I#&k4Z^vB0ⶖN5y uEfKW@n䂔3tkkHŨ;F_kXz8cQN.S<@63ޑß8 e˓ܯ!^췐*j* zo5:{%D!Es}5lऽ ta-[L͉ =?1AA>eִo$IoG e1_,ҏ)^mӍ6XU1H"tI4jܪ||[Cdv0k5μ IT7Z=X'8Z7/^eNK;o'jimzU5y NwX65#kU]n:ޒǖ(dm .+ıt8ʯy# l~WȼG{un;2!3n."RG1mӹ61NyS +m] ƀaƶvlkoa +&A +U ͉QȖ>h8S3([g,pɟ5V<* +詬Q +oo+'P?&Z7z/!$an`,1^y&,sׄY7um ^*}i >}f{1o?^IXQ,nHrbnrr&#JݮOR:ƔzN,6(9, P'o^* 3޼(Vm N}NJOL ^ ]߬O1b25biQB߯߹ٙ>55\|{zrʊyvڽ8߭i]U,z "SP*SU/jk9 piB+(r ؚ:W]TbsC]Ym'48.myO!AZԲ7oGҨ5^ĴS@?h +(U +Z2 GO`C9`B٤lM/Vxe\-Z^@̿yHVCoKO2%+1/2˜ЯΤjwnd,<3bZ]ֆ-Nç ϒGH km36F + +#g78!Q6-灊c0#;ؔ E(̵>`=4Ej'LEmyuX$rh߲֩4_c[WM6ٰ8~sgM"y6R_kuެKLkN}ͥ扡$ۧO$h;ׅRDl#>^7VUpx֠ˏ#~ZTQ$kcC- '@f%fmk'wRvQ4g&_qZQ3b% ̈}W\_bϬ^d.:S̍CU2cal辟SS(MށsD_- Z4rJ%3}[?W̘L(Xz isr=YlI#|]~<>8󮁟|E)a@NAbO1T=t`nqm}UL;D,m*w4:@[?aDy[07+huS_RK %I'5x.0ټԔEdB[ 4aԭ['u<ƞ =Nd>Kqn!,Š{(5 WZIjC?dROmkjM UIJUm/] +*)E7y8sB4ܠg+uoBRmޥANt|v{"aaK:)'YR\9fK雟;X+9t8zQcq1&\VQW.eWPN/q]y\vz?sy_$ȯA'Nx{_慑$eC}"4 bLOPmK˳ ʭ E{\;mjĨx]ryZ Iw|.1A2XY3m[#әF5'/x4.g0b@:G>]0aFjjL-b oJ^##ĺq+ x]w.mB_ʟR$26 Kw}%%lVb^#6h@ŜFQ@=gd"pY8EΑpL&`n>YsVqz)>=u{W. w?ʿ5:/Fr dbɥ|#c娇^2'x?gkp^oI,gjDg3aC(L:˜H~[шbbp!#^b'1jDZGg.Zq@feSQSq~sx]$1**=&r $}ּO('=9w,GK`ez *- 8 +8KV0IZQ1aV>kw?uv(Z9rſ=YT50Bc^xΑXNcʇS(ڢsHīΞO(n0(4m UEN:eWMqiVvc{h4 +5r;DC_oWfxub?oWḄzub_Ȇ߮D +u9m%'Ƿ=x洳%@<`<v +0A^8AٴZͳftZ&X]`0fFFŞ5θMzϓQd b X_߯7\_G{I߹ ` `;,x?ǟܑ'>`Ui:m5Rٞvj$NыS0:8u%D8b  +~D7e/;lExwfD\ucqD b=1J geJ/, ˉOs7%al;Jr0vr4C{rRIr7'I#}w3j(ЖMGbS^oSMCpq8?ITP7bPj2n}JZ<?{~JfÝLptཡ() :h~^B:4EQ~iZۯdѧ!!YPI5jh>JBvg{3`KOQo +!K(JX5e dg+y'Ez! [[A_&7gH˫Qo~$b }9q0r(U'72.3MIڳ.@WRmcM1xH_8n$4&>׵/]د#`ϰ_VѲYӝGp<hx'y]1S(2D9!T rdd/˴8N7N`/Dq\!Mʉ@)V)L~*ĪkC`ln +=S`6}L|*-Du럛^+x__gފS& DҌSVufк0|;GߴVl1\QP@1 H!Je"Q5.ZA9+ Ku /VԅY"O&N  #{-=j~x0^UנT9|*]}ϳp͓ il jչ"\yWYmYm<(h&mZIB~NO2ۛ#CA}܌P`^C PR2b\f&$ߚ=FHt^DoW^[;:@> *[HЊa=B@?=G3q~xq|ҁK!ޢJQF?1åSA)_昌^3~W&`~v"Q: @468Zaz. E G&6_ɶZZ:$K/:B6׍Me-/8J#ԖPc!VKVg+64sqg_@pH@@J8Tr[)Nq77 #BKnM{ 06u}yrbbdyT0y0o?0GWxͿXڼT,Ox\l8 .-N/?Y_,2;4p&U*P)tCnjSAS\HXB!r-0UuQwG(AXO,k@{8Q.|skiLL[9APbc{B) +""uN7$i懘(u_7D7[kf*L(7ג[h|-^p(n@P\lBvhqMc_\tSS *֯e#M/i$R8[5#Y䃿הSG͠ ]Rxrwbb)k%m@~Unq"gUI +hQ"˂"4*ltiCEIıAl#&>7lVDAe4O޹oܢ{}J b +E2br>:GW-טnNI\3[{m/9zua{1Ѿ?b bԗҩ1:IyCwMT/g@l\iU|Z$H({c<%"9tgf}ZZ8%ސgCs' эݵdbLHŔdmQ-z;Fc$u8;M^Ą*qLEqD=d.hȳTH +jX/UBʶ H +2$Kmcڋo; jr!+''b(wI‰C#-}#xڨ`"ⴠ$Ӗ!׎XlnMeB!}y挔I?yN!{dd vu%@-QX\78PjTh]} 5qYjr]y.2q&βR5%];p?blBLaSfNٱ䩇K]*yˬ~&۽9l)%SSbεmRB -"߻9{9 \|>JI}*NGZ|D;u/vY 5/Pp_s?E~#_H5Xp`KD }dc=H Q?b86,S1%W)D/p,F)Lί\}(;kn-^ 'S(,pI&Rv_ҩ;euC9cq(WE5 q( {adQAV)ⴗyT^;WOLËjsC,>nA5v$s_/P,C=؅ +*/@tF@Hg2ݛp5/3 y9JP2L8*%] {psG=on sXR'pee?J +%9У0Z:unZoD`̞:@6n2TAT97,8v&s " v[W +*ꓭ[bvfăԐ31!:_ɼDØ+W+}9;aSCwtvyfV tdg)n4 0B,"x +i븆+%'C8h]\/ yCg&s"U<HEDe.HA39AXa،ܛws\~Ch3opo?85r:瘱@ƅKqwg̦,ߺ_ _ԁ<#"$!" %B&: i1crYpROrE8~04wpv砣g$AbRDЃ>7c0R*hԧ[tc#`[w9HI_&\PA=$cex=4d*:!X&7}sfh UXk[@@6yS+ĝX{8h΄"5B~辮pt(8Bỏa:`Y ,eZ}c a7MYcIjjSVlLU%e3qqu\~~v`Nd~4QcKmr1hx軧$1 +Qrmg `SxUCFr~F#튆_IAFj\?pL$]Ejvc;Fđdpp( +av ij$iy=ݠ +TREXK*+1g$5Be*&8(34d!Պqy_v#P +snvH͍vp/3P/Aϵ'.*.3ؚZ2lEVQ ݓK7MJaS /ޘus =yN3`6Y`d_Cau}áW +6p/H w_] \P=sZv柞pxcR{:hc [1O1xy׷k%$0_#4ϫhUZ$I h}OݜgQ]2 ]?ޭ\zRm49h +8Tf{y>(tJNZD񗐛DGnKAGx-2Ju% +Z%,r\'ŦKMyW!Y%FPs|[㜨GK*5T`%Fk'rMa 3w>ml]ﱰҗqȕ=J!*W^78NT3;hHtw"ew\TH s5UCpAaHK{[~cx{}bx4JDsC4x]ԊO^JO2 LQaT2(G9>`VX>"/\Z3؆~l(Fg5jRhՔW]ޓeY3^Sv; Qqxz-D +g ոe3OZ~'`=a,, oMV,Ⱦ-MpG-kx;Smu"<ømX~x:.f.fӓAux\WzyCJF~NۍjZu฾"9.( 툏]զ&gUꉟ&3%tz ˛oɧhpާ᫳j=,FE+/ԯ+7'h+mVz$7ao.@yRlܷR^z^3<<@xn8t|]VٸVxG +c~[VzG*@׃ scs(8 xBڐ鼩^{⼁ +xu6JDCݦx2ӳ58na/qXSBFNAFKBJN}o338:ֱk{̓sLOn^T&nc+2~$i~֯Rd`TQX`qfmTk &o>6廯WQGvk"!GFG-HV^Ү=٫]= l0}5"^(݂]: Mq)ԫ[7ҥځ+ta1yľ".o +kqߧхv+ -QD>+oL䌇_k¿>Q5 ׂDͧOЮ(M`ODFF 0ޤ ށ4?I}z<%ۢϘh{>} + :a=]h0l ~א9#Shn'*&,"\V` +70i| w%et0X}^~KMA ^N1L..WvmOp{3ƅv"6{%{B0R1.B j9IYn&Դ&4` ÛpX؉%h 24Ӻ&eʫu}-8'Fa\zKOuO5kڕM! +74cd -tnQHoXг2JuaDF]:6c.PowxQǕVQ yC8 +3Iy 8DW_B( ϕ%Ҩ=Q/i47,Oi^щ-厮Wu_WkB-Fq蠇Mu9&FVS>sU+5|>k;2LϛH;@T#mxࢽ~ak3?_TDNX"Ք:āu|y`u~Kok$»즶XE _Nx<u$ǥg F8*"&x,? +mJ}T~7@"{Vk$F9/LW^SMؾ\;kP&4_6 rۈFwaW}8S?`'W/SPWQ`o"q?vaj^YhY}b|0y+n #a^+{qȾ*}=%%v鋶Srp9:6"r{1\)L1"FXGD2Fҝ4dy8 E<#sXijnM,lHLIf(MĘ6VLK0ĭcE:ָ9./{͈dx5NG:T??>V"X{ttA/=X<>6zPEeB +"HdsTs-6Û,.p~ܩy5(޼_ rxV%}7yrS3X>X,B@y cyfShs򨗪pŘTd͢`XMxq[O.>Eɣ5ʿHNv~C]ۿ8$=rNg}|?P+{?l!zx3#HEaKr-sďT[d%gzUcQfأ +(YS$gv9C,xv~jO.ۼz؜LXDRSMj,3Q 'JG7m#̓3\iL)Ibł{ u 6zP͞MkLƹ3w*[( +f4_m1]~ojw"4˂Ӈp\FW7gE , +@<|q~o灊|D~J6L+-6`v+>u^_&BE"Xv(-2]G0o_ 8G k1Wn_ ERڂ! Hpǀ8#?,t*"V<_Ǽi7ب{prmyC!s,DlyѤ?y'S)_|s19?:nǘ_\%,|/UրQ?2 g.t-PN˛He]cK"߼ uZ̛2'|NJ@*]Cn(c;&YѺ몦ҘTM1ä?Pa}aJZث[T/ԧbpHu]xs)0(p_ޡ?C? m9`J +xot 74nMK u-p2b_[( Eu"CGUvZ,[4@~71]J6Kxǥj塴5rzNX +,@-%iϩl]8#)X44Ip"|xR +qfT~$"cqjalB#M`gAgHCEoJ *!|`(1 l| +::g)- уhniw3z,{Lw+|;zҵ#FˑRE6'dXZpU| L*@ەr6e9ek͋YwȚuL7gQxǬ 22YO~dEbg|~1Y=?Ipo? ۄzCWN=Q(~o/77#YpPOPѠS`jCʤ +P&!tb [qoN ]" +7EP LaX2b uH^iײ Rp&r +w}*YzqOd3OcJ2@%. au< ZD@ё^񽜯îzanCr(pGVz"O{4dhVG,$a*SL^rtqǯ u"GM;6OR-GnJk|yU2Q(h>,IR3؉Ii~͑* ‰zV_2ViD!Do Weq2eȄ{4c&Hl.aK6քr[tz{lf=؏D skYh#Qw2 y4lbMžFe?7 ڇAGeTA`\/]z;0V-)Ro&O|{|Ŕ|>F]0nQ溌E, +[cf)_Eg-Yuۘdkx c3L3d% W?j--k-apL +*ͳ Gu J4RE)4$(Q>:>5-ʒy&ߵ +Dí _ ~,9 +=w^fwk^DQ0ivv0Y{%HP֮J"8RsF\+LW6mPӖpi8\ +$~E?3ec?&ry5kG$N$NXF?5X.(b2mK.!u| ?_”LG4iCKE~Tjgڙ,Q +%Q0ms: ho.&/]' ]~Kh z+.cƍ_uonY~MBonԼ qB@:%)UUCrlxpn7轿pߘ}H(ݯr,leze$[~$ 0e_5o9^` [6 +F65nUMlp݇iͯ_}`-?u謳n{VQ\yp{r!ĵ.7[_>~</~n\^,{c'puGO&k?q_"I{71 ܨ}EA-onM6"+h )# đ +X;Ϙ +ccjdQg㧾CvŠػL:y] [oVj<,-"p p-w6ZLqY[2ҫ Ŀ7zzC_½OO -Ukq(ipT5Qdr mEaDW'%<˄0J݅(7 -=Crs%&Z4׷.N.[Ū%ESd0,)fss&eSZkCe/,SBTq"mbDXP7CK7?"jǚgYKNՇHRkJ +t;@x 7]9č8vA nS3M`W4jbF\M=,$}WYJG>%V"d8@ϔz^%hVA8|H^烪< !.sڇ$/ XCB[7~mGDaҤ`5!Lޘ#ٮf_ Th_uv!!) +)2\4͕2zB:BVg1sZ*Xcqkki1>d1uPnD1RW?Av[>uey|%ʈ MZ6Fޥ~l4{y WC[]l.8 '7D\3˶ v*HeIyR{be\08383q.(xlD#U$QhrQQ2{OKĻw3)zT} a5;IqGiO{o2U5koF$K&b6'4bLܚ 3a̵=FY6*?fKw% ӹ͓GIad)dñ'\4rxz=rxNA\<I8+E" Ne>AK|`9XMVC<`ze(h9;򹭽P06~5a ىdLpLcwDԟKa.Q5-RF*&)4cdSKtx}oU۹G躺vcb؉Xn9d6v=^v.%aIv #Ql5kbZsMO\6F OZ_Xƀ#4JDG s!6lgo-]h~=U)"ߏI5k*XgnR? 7b` o4F!A g1q`kp;rA!/AHRv ?FoyR5e@G"CTHB[)Ir޲⿠:φ ҭtsgYt. j?TvvI$# +_U; (]OQfOE,/bh)Jx*fđQweMţq?;吨R5JfW:/7=$H҄r]3Kd9;FE_;8lmZ|' Yz߂dPyZu EeCg{ǍXoQ0mG0 +C$6Hp29"Y[+}C;;SKc)C_8*OBܬj';bXg8> ? .}&SLsWxYcxe9q9[%E FUr'fm?%;ir*Dxw7-8QV&2h2 &3KH!t/V哮 _Jpk`o9`P`YTj@] ѻ:J S#0܏`yX"cԥ V% +‹/`›3[ÚFUjVRE,xJ5ή6&FXT%'rcbG@ +CssS2_h#y!(J-l^p`ɺ?|GG{d? +f/5p 6)]Ϻ2VYuȪV`CXF? ZDQ,Mk/^Bwhȡg'Ft v?yӮoό{=.]U4{{g-@C M=y:c&BZ틜1A;5CKH0wroI(<}@amhh<1=}1'Q"] $lvƊFYxKQԴVNYy?4kiQwK9g!c8Lh1)xvrSD?X(s$÷4k0`PSvS򆀵AS L,"Tl\+x(8%%z & axKܸ`~?Lb4ͿL0GcU"GduY _6<[R6+573Pq e"AvP1o5Dij:k&!]lwE><]Zza͔RHc|sR;fDb4-uCE?2DGd!!%ǰ&t.P%/0&87PÇ; NS)>Nq -&sxxv@k|5 ࡰ $NrKN5N[U3e_/Gh4r%p!]/V9יllĊd}Hl;lTΝ#2LI} .,T*6#Nү +3V9HYg};-. +~UǛz̢GL&7r؊8En< ڗ1F_E[/LEzKUÈX]`Y0d;u* =>8I"2Iq|xMj.  Ia~#N-EVmOSd97_H^-O^^-}d ?F&(sQ#K M~^@ \"{:1!qӳ?`+Xm=$:cƪ*+zdS)J( +yUbęܹJH iDꁊX7Bq\,eT>8F&tթ%+ZzeWnщ!K\!yh>aDd?h~%]sI;|<[^XR3e]T i=|_@u,jo AGp\-$nzLgӎ4۸P3alhkgje)&84$sjZuAȻ*2K8 J_ǽ6e )蘒"ю`/57r2jm _xYXjx-v_aB>dKws`eˑTJJE w+T3 h9(e8j?GݖwyՋVo1Ynb}SwGԓkˤE2ķ%[S1N([2O,,9n7(1 DUxeC'nnoU;L7dLُsR$0VȁD12GIa+u< pTH+WīUHgLdTUa2iЁecNH#.W4fUT-.gin͞(VgcŒ\ЋQ&$uT%PD/4wIl_|;#Jk #l8Sb2R||E`;mʲGFtZ1=  oyv2X㒆\ +nODw7Pt!eT HD&C'FLk`2OAQӉ88gTWGH ͍0  j%BL Zz}MY{&p3"?JHq˖(6$-T}Q9P'W֐fw,D!&o#E;:CTɢ:BdBewtX*ix`N0%3m-0Dk73 +pc +T +`B;aK]*pqT,m cs@n$,U{_zqps Q_ޢB_⫝̸5&.5{2 fb_"O*`/]zl_E%R~H oemԜLspYyZ5$Ióm``U[R9Fdž26cgrƺOTMJVMgK&UWU0JK6J#{#J'`ÜuAb#|3DlN,$xPZ36fFÛC{- +wh +_HFHj +kҳekIܚxu/SgD|SnPuJ*6&/k>[U&w7%~rJRP@of֜Ȗ6?.0ic I0Ge}~ٳ GѲfQ+/%[#>m[t>|0l|-xWx>ϯ\ixjm\ao^dlET%}z+Ƨ {K}sGs ~E}2|BQqBU&)0wauriJo (T&⫍!zf\Ո7h'='>xW|K0wwCrE2`"F; *tؕ!ژ׆9D[%mc06gF]lGdb@,b g. N6׉w M7wak/NrZ^Rq)J99;DrWcIjxJu¢$A^傞!kˆ+93jRa$Bp ν +;eҵ[9?ϧU>^7;B&ZL p{^8^r.:p`nx {d^o 94q:<}6T婈7X<69D3F:p60m0gحZ!19!Z?뽯d9y긬/5΋:[VWub &+kC[]=SsSz40tQUZLi(G<^49PBO":OES@ ZaA}iniyѩ ?[\U7SoR'Xn1/.iWH!3^Ω\_)Fs/!F_3 2Jbt*6R$[Sټٓw&x}TXPĭ)8wyyYK:,`^xk{q$wWՕRc/KR!-_hvp}wH ;?Vә-'*2s}Y\*sy@ h,ʠ>Y>W@Rm$T!CӤ& 45pXֆΈxVһ/>>R3X0gpP +*rFQRO\(/ ]l rly۾nh*9( d;^aSKd7Ȋ}v 6Z5{xa.+w=G˵t0p0CYF۾ÌSXS uC%UC[ccgFeT$½clƽ;my +Q5mѥřEc9'~ժCIT)G-'.nQ{ǺdD!X:R1&Wj C~A5)7;!HK˱@Nud5+9fፏ<=˖Lh>1XOrF\4ܣIݣ:j7\cH3jTOҼ}"gܻF&+Aުqk5t~-5E]41@ f\H6ʞaNU9-N'|lY$D[`: m60p[>oFU$1Y|- &v6rGȌ +LFF 4zU>ʜ公 euA\ؿi>F_sR2_C\.?sa5 +lD+;kٶ&] &e7[vcƣA, S/iV=9,S{KqS9m n _=7uė3f?*_?@,9u'F~Kmm8OS]w2nq^7vo۶9aMa_vgCP睊K5;֚y*o6l`0%,&&z\B;_`CLN=#KU1 DzAl2e^3@X ^UIB78u]d)6̟E sj/{Êc2O[?!~ƈ~Jl SgPZÂ,N?4eua ;D@K 2By!<X7MMaz" +P=l@"l1MޑI$/yC v6bwqB*I ͌6[*zgiaٳXI yaMplHͽOHbs 9/35˛QOs>DQϷovRa&Q0J&&^[dNV}na1Nl;ΗlN# m& ~O%2Ƹzs;<.ˍ#5MD:!ҦbuqAɷYOd&&EMPb♠[ $aY~Sc>X + D+p^sR_V̍Pkm`~g0(HLTn/ Ye„.h$hzJk[jƛiې 3h+a@@ZowHֵDqGheIJJ}jRAW&x9Rwˮ&kR_`}V7gz< 8P9s$"sLw"ckz}q7Um.$| 3ifKb7s۲Mn &䌁'X a>Y]Cַ4S36p>д]5ݱ +Qa!-m/Al U)dk*(U[ +,U{LX 1\"(~D pFUZd6*d Jd/]6pnWy Ohd +ushqIYSž>RxΫlq] (3={[E60xGbn+`&]Y1Hý\de=r>k~ 7/]l,4!rxCbene`6|?z fF +&RB]a@-u[? #hc!{in:ŅjP|=1 AԀ\SineP)VWbV?˗"'4.mWKb +ڜ!Tj +.9EAm$}}/t7wd4#1U0WuǯYY-e:G'ub_ XH]R^(SwZu+Ώ0RYwT +^?zۿjame 2w425C$=ƾ8>MK !;ϏYhR\=[bg$s`rПN|^ &9_]8Y-AX#jQxOVyu]ɺ+O|WF{"#eq84(<+Bq/AH='H#RkV? V"|nRhu"eHܐ)mёjBC,,)l*a1]=܈ w1b ̎+Y2S.e@r b%g b#)' s +fsҝYac4^0s:oU<"uќ-Ǽ{mYď`=%KcN)+Rסd2x"fpeslnR#`q*X?g+҅ȸV X>v +Nwz$i9lR w?Ɓc< "?ۇiho +55u24/}BE/&oh> +'샪q#*M:sYq8nWk nE;CMi=kXJYh{.i'{ۧ*)˛dM̪]s)ҔjJ" Hi6m '\j`~F$HY^3wi\g4>g6i9"wuywLy ^ }:ЇnyE|wb'Y0E"O:XNMceV7'"h])+^{;/LYmjڊǩ& \iĒD2X"Pj;UI9G!mZi3'6lg?2|frPZ{ + ^QMmaJ"%%Р2XFuP +`FX I'8g:œpEkؖVF]ub>U*Ĝjޱ#e1j%#\G.s`;sQD3 ޽f&W_Hn]wcZ7yak`teILX㑹fM"СgLZY_f_ȕ/<1W(6ˆ^C{Ad5-5KGxr>pMXXW0\%>pc MQ`xYU#et3ƈ CIvqJãT1茏GQ՟L_L ^̇}{;0#Ǖ)lX'T6ZV{ \v9X 6HM@\xӽd`]dvXgC.އ@.9aY:yejs,wEM {"2\3d L ~044ӷ5(E*;>#Ԋ8-ʿ` WPd}NvNR255gfd؊7 hd+Ўm qmJ ((Sbl"D=t&ݢ5MS7L=#5LJl& Dv/ +J y/If44u3{=i'>$J?q5]bʛ{|;~sZhX(iUGG^WfNP-kzwUOAT.UuhX1 l2W6wըhQ~W> n,?!лkn@ƯAi&F~Diƍ#z,=Jc LQI`jw]HoTzhojPr*n;}O's.^%4 +UdNh.5|4벻%FܳYUm1?L'_lX$ͣ{ ueC!M}yf:w>.<B->+lTv+# U)a/mO +X;V9ZD!1p-HNHG!_}Z)mUSb'$.uYɱjZL)n(9\z6kX-u3m*K]J%!%B!'k+Ѝ+G%?с'RU8Ga@6Tk\m_!DBl5'+r[QO\XMp~cD>4((-Q\=>>0H bdO 8/M_=N1Ţd,me軸g6[JHcGZQ5-]l+]E!UZҽ@ri)X: :[QĽ8,ć (7|(1䉯ύ'!/R%utޑtNvh"_u;@դ@#ƀdM1ج@;LJĀ-`2cFh ~ \&co :./0'^_=]Ft0 E +%;= +G2X+z?7cb>tqSɯUa wJ2G"zO1#휇xbA)qbD'l;QLfǬ JQ~",<!y[aK­ Jld†ir_v_ RrZQȫe +auЬ%yj혙gLO.ϻdw 2? L:D[FoRVAS˗u8:bNto^z<##1p˜yϟUCsv3dth *D3[ec5|B(㑎5IcvcԧEx'(q@3{Vv^ç}5]Wu"xfh(fU߄RC-Qhy\ۢ%B*pO|G+*0D<Òi׽M)w!hH +|t&%Lɲhz1\cAd5"'/1LgR+f}= Qm)<@$ykPbYDT`1`9ݯ)RÕU)52? m9JԜC/T=AF`t pY[+c[_ QoPNy(I 4s(,rD):$l Zߖ A?k; )~˙y9,,5X]m;H T\TU.*U..`d6(_ )N|$[˞D/򞄵7%\4FnwB +B:BE~ʀZ~́== +)hdkP"xzV>aX6 |jax7 n2f$b&5 #`aoE!nS`r^ GEF]9[ǘNKWp а $;,EH~0ҩQnqF(lg݅/lxJot~0.xu +x[xkv_`z1BMX?P;qfS +)Qh(&]!7܁P:6|}JMW~)Vǹ;zXB-pK.X4prJ9)1'!r1 F=ss(yi٧Y`q;V7qx1cx9ށXFEo  S*+}pqL+[hW.d"/|44wV \ϸ$7LeN HU +꿻.zD&IE()#SG mw8xz#B<q9. <5З/)-_xhdLx)7"xf ~-Ωj%[^Ug: f2(dn>Nޓ( )/ֺ1+7\-#܄x +w`~>_'r +dQ빥pzԑS\{l/Jⵀ-W8{:*]׼L,1L8ňkfѢ6gX.6 򋪁щ [(J!cϜT21 1Iup뮧-Hdx~Uס`fc*uo@SĔʹ:)gy=f3,'^-HY.?E|QK*cn:)88^OfC7=֩u1^!`Pofuzpa*hr8 G'q*h:6x4bY&PT-Q8ibeمއFH*SֶK +Jr~ f<$菅D1IC|d:  I5.G?c/(* kQݨQO1 !tw<&ļ8 +Ju +sDa`3nԧ L3\ZTޑ!5ZW7斐Ҹ?G8;W &gRH2/EcO!%b'D 2L/z/>>KٰgKCKGꇰh՞U?DOe#:QDb2Q%Ѯ/q19lz/i_7+Y"n/2(uj 8S56R1 uklD^-9̤tϱWTn7/#\1ixLȚ:>z(=^ϗu5=dzɣ[V4p^]SfCK3é9PpaP#?y&ܟ](ZsrL"Xs1 ˂uVI@98f*4+'PXIJL(D3DE*cQE +*L|BuFY=Lc\5wV#@NjGdu- AK%KS̃8Hm^($JS%/JE%/RZk: 4+B+˽> +5N`|-B]#; ꃓvo3yV +ŋ`X̍1Eׇ(iYZl +~AeDaWUpq12 +|K]A"/۹S39:[dD&¹}|l@hz|~ Ż #,(TB 0E*rxc^ݿ!39/fG.X= < +q$]Ζ20Ut6?H7sT=^6$+$<#mrdl~tP{~ؘգ= +U* )3Tw_}_c=;47ΘN $nhB wXo.B8FsY-55z66?QHa)72KoPQ_ǀ2&DA[D6Q YDŽ1&STn@]-֘=rօ6' v-skdʶ>NJ=r0#9`Sߙma굲eun> aH_!{?j8*Tm%*$Ni}k6L)562Q3IiZO# +1RB?4USS&TWbh( EB@\ELx Jq6?Qc^t}2'c%dfk>VtR R +TO%12j% r#%R1R\6jrMjvC6xE1K=B90u`K!&$C_" c?K^gގ:TY1O|(l*YF]xZBkxE9@{<Xs)c*jUrE>=BSܸ<S!I~h"40_KFT˼Cf\q/0McKmXnW=xꆺڠ GvZY2<-'^]sDg*hc5FJue%tQoةnT3+a#6߀5/kGJ(-3ȫ +s6U~Sĝg^ӡ 0:]jy>]{ +PͿœ3{!lx5E4slD]Gͺd+I2nou#zAq)gs6njmGH}Bt /-`"Zd*>{")Fs(9 [3,։Jk‮YSMA +uk30gP=s(HUqk CPĉNL )-i]o^R$7Z[hAރ\@s!i:FKkߒu7o.!89qyx[ ǩx {uᤴM: n"%ReÜ3:{_:AG:}[&ԏ:4gJgL^pk ˠ']͖,!ǽ#Cƭũْ%ݫI2µ`,h8`GE{ 3%V,WSuÝcCB:dh_FvGZLj 0P gj{ÿW8mhLMu!Q25^TC4={D.w&X=~¼m͙k(KVH9OS +J²a `ԛǏR 0gd!I hEhK~19U[|KbF)`8E-РEۉsE7(ɨ͟5\lqB)tTFH2Ȧ8fYQ`+/ڒ~ɔL! e"5BΘi^ջHn g)o ,S+u^//AzɈ ȧf≽psf,SfFNF]Ej=_bv~,sӶ4!(ҷJA̓ٗɈp1|kk}*3ȨfR+ᄐr8ϟN3V˜`}O$ΛR=gXwPXۅYQeT̈́Ax1 ҇'EjSm>_S4-TUJ-l#oK.o;t9rJ)rZejDw>̄ R ½XLƛX !8~B$׳8Mi +]x>p^DQfB䓠Ƙ¶ !8A)?f8=s 8 1w5sExv<ȨR +. h]a~Hy 93 ڞAv}JV2t'9uA(+ezh/hcaʄ&VQI b}kJ]nEt]mWÒ\ءyXx$-mܷF}!|\WW%g9ˡg /x؏ܰ$sq` awnW~:q2ڻ8a곷AA2t$TΒ;h )ѵ W,y?12 c=N]J-8R=ڥ1 hgTFM39R 3GoBʻ.".X4KXP`5;&\bӕ8Jq-X;*"+4Milc+3B]_kѭXdB>c@ڤ #p˿+V:̈́A$F+$zD2#AZܟ^sgPsP2vWR''<.L, v`Xɉ?JyCt>c1lo-ټ\ FuȲࡌPuOˆ-AT4% bᐱJ}|;KQB5'P,\pߑ tד۟c^z?yh@f*C5-Fy`zw@Е>2ZOAWg5\n+d8U5MeL6U5gI +!G^*Gu;dsx5{IP^JE b* SJ$v,%ϭpl!r ΰ$ ۙ)*Ѳ+\ Uynu[D1ņX^%I <9LQ户 D+6B8sxQŧ]!̪[*\UyВ.ɥ ,8o&B9ݑy/ƆТ Ioĵ̸`{;!YYZ|)E ΋͋k۳KX/Y:2/wYua8juȾNM?*HH5F^iDEƄGKV{BoHwp+jh̘.>_ieMF.LpR/wSTZCEAe|ovsOZ g\+f6tnK['%gcݥ0²h2v.!M44/W+7ҨR3!Yboӆ'3quhd@DWBt-ۜ )LD52kJ*9^P1@u"@>7Q109 OEEo:%!gǹ.d\ݜ!Cr%dgdzdVaޭdtƩ8D ˛XS!+TY*[j@LIS+Fl8#N\HmFP] zv~Odg Bk A3! F QSvQͻOdf3PU4sY 䬳po_βK'v$!ٚzhTU_x*hjah&ArI^<G#j4"nmmPb߄d*sz7Xɟ +B~ A2NykB@uJgE"Uo=V6oAE8THPefu6Ell$c4XQtx;z>@#Jޟfh°٤aR~@MjFJkX"_Znkh|Fp븤yz45:Ħ.)fU}[%C Ύ swLtH\`hАX0SfP(!܋rr $gŰ ,}b]=lsyp/.k * n$q#uS +pɪkNCl|t39r R2zS8OlJ 5 YV HI ֘97i.JI&4!yo?/_eCTEcA00\> 6k\$ FTX2t]f5jκq9P`_.mF`@3-=꒝>iI +6@'e{, g 脐CUK="X|,^>]}rWrLYJyE?;tVF7 ./c%a{۠ƒ}< +\r?q'6H|f(cmBD-7rKa JŌe H:۴,*XT7,U.z|_m6i PUfXBiLJ ٳ,)cS1gjDoh¨h/v owU* wrS1h?~{r]SN@(ADɉxզse"<4/b@>p)yj~uXj(GbMYaS}f$x169H_̝H w$B$0>*T06u5޿kYC ҩ_)jgX\|0%lg +-,6U'qz$ֿ7I;9R}T%2kk0W+Ąĉ9dc(ҽ"<9zo~R;2p, :4m" ]`ǟq-)(IznёKU}V92}+qw]DF;?xI,S]؋kifV`S_dUZ5xP3ǠnW'$+l6w_+tm-LSSw lv ( +3?(*b-럿& MF8\j= d/as2+ZsjKpuUM: cC^ylt6="})$}pd¿V#͆$$XRĥKGzBjC|@(ذu7AzPܠ(<ȦhdM15exY`^EʧK2IB՞2|G{牱'`]}VܔYMY YDgx@ :+&DԵ8^&1=Snvоn FP] l(b={*}*ܶ~rzS,>0~|}u=y݆dO|Awr{s { c[ǰpP1v]2!#EMto .LWG +& ]ǭoGow}QNWtB1%&GCK7k?Yzg +܊bNPcDeQZU%t}UJ+¨32Q|P0G ':YY([#z(Åivh=}u)g; +7A,!&kٞ0b/&@A V`pqYSn" - 'W$R)% QqC~Ɩty^iOuį`P Z;Y[Yh-}b"3Hz/ A +GޝV+ -@v/pWGZk%2GlUyN2_~[FIRu-C>V1LLœx̔os%y] +x\PĉIs/(q.8Acw>P+ϟu[#fX; +AT4ULFp mzLBbx [yf 9Q3L<$(ySȶmt5nh. [a ~(@n֡M7f}w\:&bi\"J +dwٱZ>0\<"}zG) Mn^!H2Q3l_#؉O@ƎRpLȹ d7AH)< +>|Kci[[{=C"Z:I:EET0e̺Լ (IDN^G4Zg*`9m):@M(|v:*|ӕLƁMjZ", .o F=EyJ{Usd9Ԩy1,20H9tN `j8j"J +nag4{̒w] WB*:[8vix=i'#eOYP*1[w2/Fv$^dbsC78\9qf\v†X%*}@K9]hZZgP l{ +PQV.NcJBxu-]P)4d]ܵ}}\.7 Rk{zk_QcfX 8Q)hKZ"S&0vZUE_bnSNȑ||7C8Kq%zf}Iaʆf + mAD<Q0S: 2Yl9Pse8L_P__⹵QsJ iB1Y2loҟK*-voOSҤ[Uy +? /гW`!D ՚= \%h !hwe<' Z0y\%nY\IL5VCG<&NγqY6lwت:`3^A-U)(WhPH}(:mޥ&"kEQS0޽Ę)E G ﺓ$#3@^w%K7!I5 $F.EAuȲr}0 ŘL/,ԍktƸJOGBYXvGzLwiPy]-)i)IYQܢBt-<==/2]G%j>[2N"|09xI#@5P.i$"!`Xf_[Uhtn?z_!#ε*r1(ڞ'^(DqXe-P5R{ )w!!wJe 4N_Ǻ4Da,B1D(<8& To\1DzjY rhUwũ'a'c9H_-~B"hjеl$~&&G&5ˡJ'T5aVGUxBFϑ +r8ʽaV2fk>5z:Dstܐ [<ܷ7*̉248yD*-0lPJ/+sCqbEbJ _K ʉ>m4~f%.qF.:u@F~  %=~1B";OV%S?~|b+[Q72ґFxvlՉbM-|"k-,ioTmOCO\il2p1߸Z~E!?H |StCNLK#bvyw` (Ns^G!B45{~wv/DE/XX2t +Ւ C}/vL)KFb7^I GeWqSfJaumx^))2:S #|%6K!4RA].^i۶m۶mgm۶m۶mwUyϏ'2fDcFdh1['?BzޖZt?&XUMMz_no*/o'v|^Aa8Tf +v +?nQ)[_֖U}W}KJ䠿$%ڥ[%>qXod +s gLпJoEhE($T詾<ޚ +'TD*1 Ne9}f80>|}@w: E#M4#Cp:='LD+ӡF+dɎ'-wD_?ϔmmfot +5<Pb%-D628?>l_9trjV.17J;I]-$6 04z9q 43R&5~ U<@]4*?nA|H7?:[l;Jݪ%}æ'H#He_gpeg୧Tl0Ol~a1Za؄|D7kɲƻ[s=H2"ƲF3"}U 4-^ify; [.2bt2O!LagS-Gp;xW\kWuBbHgl0TyИ"9ՙ!higK>  ؒǒ'ϷPfO?i"d Բ{PP$1}Q6L1vҧ3Eޓ/hϜ;9r#Kv"15䡬s)XW~ijv<\XM^tLf\LeJS Meқ;2-~µ-UJhT-?+sPUC"U£5TW17)VR r˶DA9?Yi +&Vaő^2& w' [&/4jA#(U8E)@CyZ#R]̢MjW3MXf^ 5j阖T'##$Jqs\m UPҗ$W{iL]^Ƣirq9r55w̳$k"Ę 5Dܿ0djiC] 73KH | ]~^X +.i"DCwMJ]nm ? 1H3Y D'7g &1` 6PP\E$/g%J`!J,+)BUTİ3zu]@ +hALF~?)ύ﷗iR,yUsea4Eċ3lӴ (9mLc/rm?Mg/0#Wsց r^9٘(Eޙj,raJAh~_bMaqUS \P)9u!deIcލ0CTԽxP,3VP`}mbˊEC0[XGu{\ܰG/|J{GH#}fGyXѽm Cg$oq[&&B=r׶G\ZxUpOQ0>[T`x/eQZ:~,LWؔt<;s.rr_v.`^'Tdk¼if4Gޕ&(6X(CZy\l-[!i'\ڮA +`h7aN{_<;H+ +W`I3<4%RVG?D`wglaǬC/p O JA yjUQ [ ^$tTeBmuax@3_B"-l~63+fAjji$ς0z'. +Co5,2,CroXj'"zD@n lp#VK&S;Y&^)UO!K}R=,uHQNIJt#A +5F Z eC_mD%w4 !K&9DkE^zW9ytf7JM| +^8屘׽s+ P Ð=7jP. +3Է4Z],"^9fMf7αt'T#;ߑa319#jӈjϐpwF5f._1) nT ʭ*2̪䔰|Ù,7Vz3 [.l[˥i9xj>N? mh޲6or0pFZnڱLfbiR{x9]vr'*\]͌߀ IkJWs.Uy63ʤ4C#BmaBؒHZ8C7FY3oCji:ޖ1]+9խJfȐ/püpZN `om'k +fspyM.jrRgte_9cߪC i;{b_†k[b| 8π7fL 8F"bw9P2;MwTUa`}#`cV}Ѝ jO%kvuC +n\YְI)gy N[V*v"BMEKMy~É׌d+W+F|MCy DXroA›J8c[H0|XFj3 CAm m/G`KXVs>ژ-( +En\v-U'Z{;thYHYTS2EU*va+i-QǺ[9MuQyK/Re AۘlUNk搾}mۣFO;-`; F`˩0_+)8žG !}/xsy45ќnG-8"t52nPpyZt{;f2[rp_>Kgg+#8:"m\Q&V'%xeeE:ƪ I |asFRV\}yݕ dX A2ף F\ +"`'#2b&3+:>66MzF=yحT]axxuma} 8{-ͱteA U)x>_ݱԼa;{te&}}Ds]?)LHUjG8R['[s +9}vMԁ |$O-2{Pp.taDC*t +'.p4_vϣ]G6?X)?? ?An'w;woP?o~() Ѵ`5AϪ55ȗ-PwєܯyyQ_2X;A}-6['2>.~P([9;l?//߸?y^}C)^> F?Zcx)R!>Jze?oI}s> _=UBW3{Nho;{hLelL|+7k?@H7b<߲M`dQ YYGW2l@)ZhLcfa!& (B:8E…ǚŝúǚFjv+ +E5'ɦ{dwľS?ZỎW1]] Q{ Cl/ȑ>]y>h1_w X9:3wgl2~~:v#(R}f_b{A#vFw}|_THP* UNc;ӪRZj+;f 7Rx6H hjPX#4/ʔuikbUT%(̻jV$6i8su=wȺolY?LF[^Q[UZ+Jl3Rl;:'Z$6Hw6hw0\b <j+^uV( R?HfhN̛^e̟`MԆSV?6Lw[c\ + +4S&vH'̨R& zH>*}1vJE[Z判KRTv!@֦UZ{졮 +ӹ'U ZQv2<J溟62R~RZax0txp8q>2:=zb;-FnG "Б|z%[ +مHs +1=45<ۑ7—D tgNx  Tpm6$17 p`V}v$7DD7D&qb4 W#WVp:RЌL}ϿX}t7뀔jqNxKm Ils,4*X}U(A$@/m22tIB2"+TZ)p݈`iq3 y3V.D]){;n>B+AL{aϚ\~JѺ?fR+.UE)u^B+yR3q8n9tl}]?`@_LtCnW}KtiynRنg-R(6oY'*-`;)};КC4KawIV.Y|:/I"f3άf1ƚ!o>ByOWoha?UY d)'g +GLcrsHFF{_2.kmNWD1^ƶglhhn.otU7  ygyHMP Jsi Κyv¨h`!\kkG-:(B14zơvbPEFVَmS[-uA@>5*gZrpߐ!ږ0&e &ŝJ}wTrVgGa0cK*ʩ]gNor:`"V_ la5@źm9mr]6#ZU ?_GY}S+X~0%T俆r_SN# 7_7I\RVQ}bÊ$$vz}'qyOoL}v@W^øziz/0ql<1Y՝\bBI!&0JcV +"&Ts "᧦1<s +l0FdGpa_cC3xFόKH*f}jE9_m{YAk1k;<^> ٻuz[7KCo^U8K>q}ͼ>Ȓi?rj/PSqA0_86lb QzS A"|CSU +-, /Y+_xi@M{=.ɒhͦ{WlZ_;%ǫaL*}"fwFI]sF1*>۝#)'%hэز 0d7 ubxJH mٰ"p?3`٧YoE6!/Vپn,tՖ9}ba%Bg(^VkC0J"+a#:C#5Vm{rߥa{<['J5Fz!DQ +_0bR o cy{q Lb%Xמ.]&5UDm1@x@v; +_!Is 'a]'K6{0EÚpj{ʼÞA(A-&UK,K}G[kI-G'O,{ĝB׬^܏?X^]LBYO`zGv +X`iT֐2HMwĜ0@ rdȃl#UB/tdf4n\\$E'(NZv\E7^o&Q>'>//V<'Ӻ?`*JGrv/ $ k A +h(F;Ij. SVm&-m]o9SnU <-c_s576A@L6\Ujs(zF_͞3u^t;k5)p^cRl4٨~.YiުXȠ3K +Fdh<2iKMLgT?uj&;RP1dU$Ѓ5\Vm␷E^Xj&_ayLt)ō$"BGEQy.t]kC^E8VN.A"_R#yuY}t,Ɲl#~԰O:%ޚYdC t'egb}^=t9 =58y2=QY!Dzj<[ͳqlH9-ɣ/ 5&9Wp5wρoqA vsO[]%LauSOPLn% "*q:װ_&.ľ$'ѝ"'= #']WHa$,ovhSX6.75Ass@ן,R[:>}%[AbAV#?3'l1h)jd{Y\og]R3 ~7,H<6w40ŜǺk+hN_v8[I'P79|ˁZ+@03Jk03{PE'PPs{k&_~K)xCvƎyy0unMųɫxXj%80M 5j\a}~c,rC);Ǟ ۝ZzHIcθ\yi +D=X @J 3B 6msNL?ZF發ۣV +$>@6nkH>cM]g:]|Pdf^B"LW8{~DV0Qs!c"/9\|`Ā4Ҥ^}niؠ,Q䲥μjkXq# bji(؎&jlmiR'Ȩmjҏz! IdM6ò\s}&`ǒÒi#dVX}1>1aL5ѭTu8"򜍶G5w|l!T$GB ξ F +&/,pPAq_ENEL0FѮ>9Nx#?dkU]aO햽n܁]߼}T M= VK]H{6b$CPo@=$EXh)y; /i[d}lL}oPN֘k-)n&(pwW˜fhWAmDlJwƚPfF`_ 쾦~~y^c;, πra|>$\ݩ!Q6 ,aa/f/H}lUG,Bi$Z>5-Zj515,EFŲ/I}vҢfLg7x d(Ӵ M(r`&npD#=ľة ʾQFQ{MHSPoW.L543JLL`8Cu>B.oa=W|`>-Y4q;@a\#NadȖAj/{񠧱PDˡ,S̨|~26BU (|ϫ% MǎOC HK)!vBȠro}~!^(;[m[-g祧S|Gƭ>nk஀}!~GcQz&e%iޤպ2?"n^rGu[eF_ +B D72?eyJ5̬"}.2?# `| \jF}i]z> 0}f| 7놽ÐÊٛ@IU;ʧ9lfEFBBd.'λAr*GlW1¸)9Cr*AGz,E"?ׅ|=ICuG"- ׂKG.C G7C1&.t$O4kƖ3)q WY:@P[oQ"UIb:W*kf q =m&o-+ )#vUV$6xw!-l8DKȾ "!*%/(ׄa)v A[$iP0$7҂(w(sG;v Ӎ?)QKx"fU|P8kXM+%1XZ9B -T5x5R9,M,E[4_Mx2?rd"4Yj\DS^zp{2+qR*2r-IQp2:S@Eyռq P7KXRJE):sWҴlC:g%s0К:B5K|{{AOsFkH "w,Ҷ\r\F2{}8Hl:M(IfjPk"Ξ*Qs4r_^\REB +)('Yk}m.DdҢjV!F=j #IF>=>2:b=%E8Y° \}:XlCxk~~b0bѽr ?L$u*{ xHYpeJ<:}* pjJk!v7}*{㨽`0dg$}:"m%BqC9oˡ> + t\A%@.'N#fT^{nKRE:ش1,j +EK" DaAcpGa#x:ΤkV! ex-yy~?n# @iTB>F5.suU#2>R&͋P(4\ն8gT$ǀ̙ [*ϋWV{wIeʺ[jK+  V@.(-U#e, jkŭ/N)iEHZ@ wixGKWeiyIps!fZDL\yqwFTmW ]WmTF h*4f['O)7sٶR˔U*`SD%2h(Gk!G + )OjjK%ªX毚-5_* 4=qDshV ('ЄlF\?sِsؘTk&k5º 9oZ=slpީ!e 0bdl)հUL#z|ŕC4WГ?0q~Kcwcn95p(Q +>ڗ*7ţzK R)XaI +s #4*)s, R\ٚėWOՠȨD[NF\DQUQ3,*(!FU#ɇd-wKܯj˞|6gc=Ly~3vH-{xKV!9Np+ IPִ一7M Fl.d + 5ՐM Kd +1sJ g?P'ٜY2D(cs@sD:H:#,YrPB#wBٺ-, x2A_oIyf}<:2!bS^w` Ze p8P!ԯApo!.l"dF JHxY7 )A+Wh+ Ö%Rҋq |`wD"lO|ANAw,W+*#A-D̴}ڜ4#*ǥmD q/Ȣw6TVA;/!C|k#*G۬/ooi +u):B-6U1V}Q^xmB֕]xFs4\ߑy\ݣu9;?_OGHa : !b$̶mJqBjEntY`01jף#-7DCD㇄K/˿NCԸuf\<w~}@seKW%w_!wn\.ؙ]%q1@Ii~iz`0)Vuu٧{ {E| D$;펹iY5q pzd|g5Z &OӐދji;'Bk}gj^c' +]9Sc*Y>sEUoı:n4wH"ҤgHWCp@}[76 Z>^%8Fʖ1iFN{lI3[*]>z 3S3csQZWZ(!,%a1 +w1l{ `ӯh8cȡ &`3G#iWênQʔemEI\|L9*4^FM;T +cM;hwz=MσkU^`O:@٢'7Pxfu/toXԏ ,uC@)yòkh[p=Dm Ok!%vA 'fu t>֝s F’ǃƵ*lɖr`(vgQu}[^,Knc믣h27a&vEga窑-9 &G,>WRY4ҭcl^YfNBSK_g=_<@/ؿ89kFc4;'IXɊUuČNEƖ.7I7!} JDc]Jٷ"gƢ8gky  S`2̆:p22 EE:sp!|": x8d?~T"ӲEtd pU|#\]畐6d>{.FtٵG_PK"}/sFݐ_| +pqX"[1ݒWa$1P6`(@h =Mўa4){Vx:Dtfxe_مz%†]6|w fvs_X@Zy$xһwYu lゆ@\Wb~/}\SJވ? -owsBh\,Ul25''`-FEew>0w)XV3>*ҵK 1gP? B 8`[3eO$Mt6]+@ 6/ +`5 +ru.a'/b `Ҵ5ؑOiX7?)X)^,y@/jwVsc8\h wQBXGX7pA\r{,~j}]Yr7vljrRvERdµY& +^,&2(T|x|!Z¦0q vUMuu ΍mqKi!vjQm?!`60M66Da-؄ݡ&K|ʜltAyc-/*CWOI`O6O ]،W8.li˔Iʐ9cE5 +٥[Qs*:C11C}oNͬZ)\Jķ̀Z2 e>Y_t$@6zoT9@ǯ6G L,T>7KC,Z=c=]Ӣ NI$=WCļ-[P^YQ_ݶ 8_ab׼2Ry0E=Q#w{:m&U]#t.SO| WbuTUQuXF$GL9VDUHVvh/ټ Aȱ#`|Jr[#kix'zg뷡W^';Te"OL [@! +1`QP-c6Щ?3Gk U˚\$6 ,7[?̡x:Zp։7R_A^fOu@P(_ئRSn +s7ljsslIqӲ[ӕ6OJ'߳|a}nwT{NAMGÞϠ!{sT p|"Em{b"c cIXc!־$p_)舎JP]{1$\#KU7, .Gj;4n͎fxiv0Q6 +y_HeF*:T*8 #9( v'|-^~vlvs(kĆnb.6`l6:kn\ڈmWIcʦ1~Y>qVELFb\SU/B`I8LvH {pܛm>z`Wk _ +K叚F9dDU}!xk^Щ['  kRmʥ5-`-*F]W5Q\#\*1|ȜA!l2;Ћ?Մ̇zfPGPwV|EI©ax+%RvalCkTF,(Mw |1 jm}G%R/N9nyxE x֠-@Xڡ67oVa{uo=qD#XxoQjo3Lq%D,!`Xqi +X +PT٭uqx3$UA i7V5gqd^'>wÝb]uCh_ |#5\h9meqɈT J1WU\Kt +?T7'aހ(y/.*PED/]f"PfaN) +9KI1!Q,SsЂgcV꒿6*9v=nkxJ7|se<K*^ :}=uRSl-RFD?WLCV"ukeGS`*xԡ}&Yc= +6-yPP{VaBnSFA1^+ 7?j泐hIKhXm,I>4j1}^=B:@PEJvʴcj!SVq埌ĤJSz`ۤjqa*"qd?IQՆWV&*U*y*6r. YP._(u+$żR*ivT|I&!~̾J@jݾPW+ ň)*k?*GEH'6d8$1ЋADK# $M lR+ @&{+M*m#5$ZqӋӫ! -P׀KCkiI^2/EVRev1f*g*/b1Xo&E9fPIՍ9Xo$c.YR4$xWM" uʡUM-A9pq.YVprQ&E#Lthc?=UK a2E>VlS5/DnJF5,];{׉Ȁ[qǁ6J*I]@4lRmq/l/ q? 8 ?LU,&!へ? w sqzᔀtN*+HcN+t53rB.@AV`\KOӳ QK5:g=x s{{7{Ѻo2#6Q[4uB2+,#sv~4y9],F Asb@mCZ~-/"߰}.~yՠy@^B=XR:dܟ]Wأk5Wl6C*z4oI?B6Rt*ѣ:B,BaOӡ6Oڢɒ3GDmD:'Z^DMMD;oB_o@e(~H[<;Js+xdۦ«Ņ Zm2F9W ~G0VWu[]Oj93^T;8]\qYEz`DZ$4>ڻRדv0 +4)A M'}G;?V(gGxjR_;B:{eEKCt+~pw#2}s!As:nhcmH6r {rʴ;5DX;. +Y05Y5+é`^SfNK.SLJ%e}:etl=#%ѺӃ`-󲕅6wo`C1 +`Un' N"YN@فO1ZO6TO68M~6nO&<U{]>a^-/Fy{z&: ́-I J嫋|ʿlQ[w_AcOcgy߭_]jcEMCj.G8q.Lߋ* `׮ 9J+`ߟ-a:=l$PugTV5҅MP)}fpPg3Q6^2#sV j<8eer9c:iy0ڙfڊѨHdGQYyBy)ysKh"kU͛R3@U*MFoڏ^S̑IlezZlY_4JyҸ3̒\rUD#hܲ&eS~S3 %f?!DVHLmuwVlD <~ ]͓QgFWF'Eoȉa#_ϦPEwʏ~U^Eܲa.ʿ8Qg`4:9; +g4{2X.t$5ztze4 ސHmGxtcSG6^-(LYlPy#=U>G\3uӉ{3+ӃĂwI/yJFb4E4m-nmud;o{Ԗz{9*vm#QY+6aaǨQ6ܣUBN*䷓/C=VOxJhr'<8_Z7A8|Z/ +/cmXb?uui􋥎neEd#GB~832d@Aq߶W?&b[ah&08I|qd\qand9l+D&akWHm U Qs(MDaHlrTܗ-T-iedHLNY1[ #:@ߏ.eaG/Z;f 3[{^3i!$nAk-:zEk3!cJ\]v;C%n >AxN ˽=D' ڳti{L_M;q:rELy99@:k8 e[,⇉kmDc#敇UJ݂ %+p rX7BVz$Lb#ш| &`&?sA]Yk P%`awx=nGU<>!u9;Xp1Q#oߑwDn=V\S :rnt:^Øw  n6^9%?r(I/Uwۯmo w w!w;JIҒCd)& g8N, ¶ ̞ KH SrTL CTCf()邃MtlD#SVu2\^Ѩ=iJCSa&銋qJΝY2Sigj%Uw]ڶӊiKS S&uZ׬iSK/SoT=,KS)Z mK iK&Uɖ7 siZ+++kՖSOS0S#S$+\+&+`(+#j'+Ǣ&+,cU,ڜ cfEiE4U㝪% 7+4,pfq 7,sS_ǀW֑3S5MS8!ONJt󀓼k^:9fݹigV5KǺ;K;+9 s91g395z>h/"oq#dUh*Q6)M.Q(-#72t -cÞä69wAw 6=g%Y[&[76/t4v/ '[S G8z gn4} \x%kz8a[c,ek4b[ +:8w={w7l&>75;o?nٞ\WziOxH'HD&O)q*P8X{[nլ3^zNwk+6(m0}Br9S5Z^^\)ٰVIf>ŬZjf Оk>ZpAWjVOZ^BjmhQ](L̗<'E_D7t=4sn/Eb-V8/K]LϽN5=Vg'lѮ_hAS䏸OOS /Q<3ng 6,쟁ݢɘ=T@yf׀3 =̒OӔH_vk:dn5Fjswծ~ p5W?"U;;JȽB#zqw-n7bK-;y35u:nOޚK|7izk5{rgf.'v)arj݇'>BpXK-SkK'qOS#xgvC+|S'x5Ityk#9|%kga^GVL8Z䱱M?>p.Hh]G憩2P蝆(-N"6'h}y{ M_.ȣG? .χ1\DWrq ac#6LDr.owMz;-0~@{eFˮdcU:G{ 0}l/,vMma-rhuF,H1Hbdc8t$ +ݍX`(=#Ej86L]k +sQ- +,;C;ߪne Zk2wp|[x; %jPq@ų\N?G @1Us'D9OGHmhme9I+6ٹTiY=&SYնLNKaEfOyiy6w7 ^pՄ7v&- 3FG6EI&u&V~rtAA)QY(CyɓEJS׳st3]uYg981%#Gs\KO^n:;wpnf@:y#*\XGshXCUoRH1|-_+-)AO.[%rgEݙ-^yyߔ܄;6 X K`ag-piQZeIۙ:ѫh`\2Ei]9 +c~Z=KdJ+ʱV$[Tc8)TC6~(NIJ:.2GR~יR. +( bBTN^^DhZ,gnM~K(T,)CN ϽT@5s]ȺN̐5]X~=Oh[ +u,*0le +)^_-:[Ar͓|=m),pD'('Úhc"}#bqB;gdu+l"5-||wn E2a$i!-cOZr%ie&D5Tx˒G֨\--d]=;:ȁv`Ad +m)s^9Zs^>GUT=y Bo_6? ꡵ kX>&645 z~%Kv< OLK9Tq {1Mw)(bAZߠhAD`(xu\ GCnydjl8jxqtǐ hq#r犎zogU 3_fo LX Tșp7B[ +)!T[o+z~sԼ6O*ѻ27wOJd?JcgIŭ@kKV~$ojA]i߽@VH(vEoVJZMg0T6 p|a-3 {)$@E8R k5-<(Y7dq#KL9Ye<VZg13(OuLӀ;gsizPFY5Y/[q*yZ)aj^K\V+cmS#C~0HOT +[8uKI` +&z2VSo6I]ʠޞOG-ӄ)Y=[nFvRzD|#[Dlԝ導Kr%ǜDحÑph90QF^(9SFGhpQlf7~R +5ЪZi0T͆n[FP n=Se. EDkdVSH6VvhҰUt=$mXPJbʬkq7m9"]+开wfi"vxKX}9mIďq(X6&ѥ$b Q ʉRI2fMҪ'CNفybYjQN-HUp:uMLvqكs= +ב, **]dcn |gsXj"SYυ]gvkW߭WGm{P|YN,wjEqTrI +U/M>|rl$7&AAhQa`z`9hgJ/+1~n$Lgγ+I]i\6D.Yu*\>O=ɩ){΂ToD6TJoۭlXiđ6 ozGy1ٳ#K,"T}>Aje[ex C#|~~ڧbmw5o%4[ ;AŸtGtlɷWIJW$׃Ę_"j풣HAj|+VD_wW)pH?Q:PnJKM+یR*@ÉBˑ!eg//ՠVkgY$kBMjְ.ZyVkzZNx1 [OixzizHH~**ND\_F`Bz C-ߛi[ =%|R0&zalޫ]~aͬ*\sATWZ2jl;.U;xh'̚SnD#)0֞s@n*/o*cZdS+m%'A!Q@Cr(pF0>[i-l*a!Pw7ʷi!`n +,ȷ([<*ijsϿ+k|)R ۮ.,qQr7a?kp,*ރ(4}ɤ%0o#GFzW1\O]g~Š7"1XHՔ(4z)TV:'RsŁ6>n).z!~v >-_Xmk +:(NIMUru91h?nqr 1bM1ulC93OwT {X [wxrbcs0TƴcFCM"INF:—,v?=Z Cv# +)F'7tl|(7hwg8 I7gf9biSj=Pc; +A m3XQvuwk|0,D<֢J Cs!q4z ߶K3CR9tUvR9*h Q"lRӒr"'E-ZXAjԲc>!|$LUj"f,]y4t֍LrRU%pӌyq!,cL*Dqwnfb#F5Sܻz/UaTE_D>'RF<&Zz5-hȘc +Er"g NmQL9v 4NMv!Xx[N%XAk#Gը摣\3cJh47m((+"LPA)%7IC5Wm`YN-Xh0] EbDV͉ŏ箋a{em0 '"V݆vqi qʍLh(Xqy"eqW?WFYUL(ds@ni(Zw@\֔Mf_&|d,N'O峅]i{Iʶͩoi#1ԃ7KҒS-<K^ Hnt#hfg#/#4#s%/՗=1+(/>= {x4wY3oY<1 +x( Xӹs*_4uJo[P?]ycLue⫕ծFü)v%"PIt4ͭ(_&N)d2G+p6"a>7BUqzl콄,GOj8#)ɕ'i=koLp$&T021)3C[@5nC#LaTk njK9 P{yҡjj?쇴 s.:65"UluUȓW8ڰJ> +.T홱svq i g8kcr4W\ѢqpŶs>Xa>Y3i@ӱc.oZDsV%#yesSf>6Se‰um>9}RZ;FK +Ejd  7W xҬ׀+Zu..~/p[(ǿڪ8g'W-'K8`-'(医Sg-'w7.[JȂ.1mפI(@.XDWn?+.#--D:dr-ǎMr_F1cbx]3_3ya+ƌ\ܡvi~ZVP%=>z;pD=r iwY,A:K8缑yծ nFٰ[59 A7g:>6]IzRJJ? =.0"Z³aCr}EH Lȭi +ar$iw9Zk..5*1"m'`Q!hZG A A^Go P6ZR9V4P C pQGFf Sʺ]V*òم(]V1s,jD!V93i~z5fĩHK~ IƥɌZ}D8H_ޙkCs*M׆_i}]~7L|TW)|.W=qX]0z P870DC~zAm5tA:Q 5[]lB x]2hwG|=:ԸNvnV;-L6uZi0ԒK$mJԍm_4Cl3hBR̰w*L_6J:g]Ӥ۶m۶m۶m۶m۶my{:uGQ+̜)9fU@ŋ8gyȧMg +dMu KT3_B7n5L\9?9\@ v7"(ܱm87|M4?vwo2Cg*M^WiPd-ҩ"A 5 ]Yi;eg=/4_' .8@^h`±JPJP~D%zQV*YN?ԊV{% Qݼ8:oDy81D.8jl +B2_nCӖ`AK68 6r7fȦA).ON*ixSbqrTD4?wX"ОHC !7O[@9VwL5;t $v<;l6oᏕ#`ص@U3,+cs1: l BSHuWHu'y aV)QEvzҚl< pX|0Wi;tzlnPdS2(yzkQ_Qw?n?Bu35Cw4Cg?x6{3P{"gN 5O/`#3%Kٞ4οc|$+ηcnrk>nrkƘ{JRg7DZMPoKVU* *{/j;y^7-^y?<8>>za7Xz^W?>l׌}wQ c%QswmmW~77sm7.㵟`e@xr@t6 QazDoAu6Es\EZW;Eo+K~oBq,2˲1?BhM^0֨UE3 /Xa~`}eL/+ttr[ ܰSրq +M~2?_2uR1=KWNY\{#OX;Nֵ=~b*h Rjfd_/VsK<}c;q G}5rE[5xXV'V̻`]3qvA޲JCzn '=Nd~͹X_1!=zt'PWH*=N;ܱ>X[\8v㌄kg4זb(Ǵ2jOyM-Y`o5pZwb[ݸ۬mr筳3~o) +x[p]"0Юo[l6f,go8VyC}xrke ytq$/pc'|{v}sUmeLBElks)bo5~Xp'>ҧ2%ۿ<}g|Oc߼~/sN/&H & +ݯ&v`4y GP_YgipI8c=?YZjYO S̡,NGOR{"jൺS_7Hy#~w9uWq%A_I!P~KD;Zt8h( H ddv RO<> C2)_ +yxMˉ2'9,|~(i,'QYJv r0c8-a Utp㤅)XL:lDYaW}bkbNaWvϪ}_1T-Mi-Fa'e ;ǪvhفMG3Sӹ Ȕmש;BKJPg^N0H 1iuYCmkN˃SoQJc7pbH +#)Yc`L1Eu ͝?QqD2G.jx+7wS4[:F~@VGkZm&{ds>Q)9n?yDxލ~>EEE0TUNaą9m /2k:_4`i 5#mf,7ttWAs5 +p˝S1K.;oaI-T- 0ߓgQGe@A٩NR)0 B{vps0Ϊn۪CL3wNӺ/bl~U,\ q3d#Op n` Uj_}+"IA$tW +&\e%%B`p@/7̙to}Ş{93 +uŬY. " +upAGF ~!b~ ?1V @+AYJ5 +2l/QxJVn#J1sPl 0%}y y^S #gsOOǂr]ʞT\֎ + N.Q$Q~m61 P `&7n5cb!rtP(l&*K8OOo]i5K*_V{_gz>ηD[?'dwb;'1rMAӋu::ғ9DKL& Y968۞A֪0ESfJVԔe/)]}(,)O&&*b1[Jg+w'xANX)ʓ?Ҭ.K3T[d\LWc{1)7_jg1-W1r i+{aSp&UۖwUc&w +RqU&6M,$v d֫c[EBUrCJ**7՝t{VRV);GVЊ䑽CWָ*j) oui-G?3k.STkhW:3!u2 0 qfQP[dtϮ7K®H}/q2VFL,7@h=t N1_O^EFeI_^aD kk?O;n-ef|􅮐m:-B=Q0nuFBZybȦOLGq z0}G~Bco=SVbۑ[?mH#gl3솨&c6hL@ cdn L: +ދΒ`wĝ1]M2QNRA!B_҂CdüLs\jZ\+.鉍t#؎ge ւIF9 \ r,ͭ)òkvͯß"¤ !m$$z*=;Ē{%OHr(ӧ|= |x#6Y݅Y}uK ͂EȖTww|8j7+T +@?߇xC?JWuF6E3K] E(D #) (mc+DPb-,c~:Q>/eȅ;`/@;Lg03{$}^e;@yzb'wI9nn(҈ G/nP݉!Ħڋ4ƮmrWc֢2 Kt]wlj*9bTXvsa!sI$.$[ I 01R^1 +>Týv$!Z %N>ɛsVAxyZTT&\!= ILL͕mr<~QYIb*93/՟s!,|aT543o =5.8DuĒvF8C&˪6Jum̝l2sRVJNȣXO[z Kk:eD+M]YmH8n +8!\"̳SntیCZW3 âݮ1VӳcS=6e:ӈ%8RX,O({oMSMN ^ sM|bY i5w6/PhXF爕kOtD8KM9 "̺ʌ^$RC`6'0pn#ǵYunzDQQ͉-?35g&Ct2g͒cxڳAX^6JsFK:>tsYֽCc š#/JrN_X>5t˴lF j* QZvmt^E{ݖn  $api2bcl`Cm*`]p +}\ =3^@ y{{0#a # Cƒ>4{8P#a # Xߞ="Z𜦚ͿgiY&|$XYX. ]pH+\M`챆(!H*^L +Wf E د,ߟ\,c$㱏1qsx#?u&K9G_gbHInvZMQ7YGj1ӄн#%pV4)k]ܞ_pnFa.'& eE/Xv=5;\ISk E 8nk mSy4:8?>zb=&b],n |22SΞ$qȩUx*c&9:+{6fNۺa{4}l l?F<=n{%xO@:NA>J3BbD*uuyMP ?q;H樱$=0J$wLi]WtRO;  .(~q7hnpwgQe1?.]RR+AQYEV,FY(tJ*hGr$IoV_\nZli/LpS썩ت(~t4AZ@vQHmiѓe9.~RJݒl99_2ɵz PZePU7"Ƚ.>`RBg +ey!͋W(aeʐq2))絖0a>g!si~H%k08-UĨl48|c'6kʸ)&+q8i\Xjqkq)ԸcJGF xIYg h_Nb4,5InK Jv7} {S\ڹ5zo1-_ !8{o~nقoaogy%άy"Voʏ7H?YX? %L|k P8_~Uh1iְOJFTүrj1څ z R()1 [:~p5sB*~ѩsc 0SD(_cyؚCQ%i@Vun H7D3fcه\bb_#QPNw¸sfLB1-A#l~b|ٶ'.Eұ6.^XAiNEkX5ZMgO'NfGf^XhG3;cTN*sOIм2"DMQ iwb[9O>fr[QQiSn +Mix|ؤ {>oc1{c/#o&0nƏȯɉyڽ( e=Gٛ.STWYZ^TnSzNAaQ'](zU۔#{ +zlN$:C6n<0w#u؍W03;W:bxۭ/ui3LF*NjT"OV*NFWYc4{T^degHCP{-m^dM6{]n*0R&duʸ&+>^fyҺ1hz/ҭy 2]A4-T̸bTQԉȴ(9\Xaе6918^.еYA酨4 ar=7.|PFD3daPa,Pi1䡅 "? L`.P*p8/! aHiȂlamȂ D5D3 Ő?nQYj~B(V8P҆9rP֒(sC>C#DG8- \#](k(kbplpphPrh2dVBC`BBeCheC2PPꌨuT:bT#2lH_eP\*pX@'4ʄjgB3P̪tW6$W> `T6r5@f{y;o< 6=Ju\^E6#nzUޟVFdo4BO禝L!Դ|UmVwe&j/fykѮSݎYib_<;D3 +X=2]R[ s5{itt bS/c[2rE!=򟅈Kk4R왋Py,۪YQrl0h=;`*mO b3J$T`oi⹥>+7f䐒hC$R)v lIٻ8GPKU{h-dJ-ZկukjVյ/?wI>|3s=ٙ{08Fo|ˣ(Ylhj;f÷nGtwfu'GxO~aޝ7+wGiN[ãztx'ow_ {jq,ag/DOˆF,,u!b5Ά+ jsoM +fZ#)pckHH5}6ahȥ'֏  ƍnpu8 /hj-Q0oi]\w9L|;W)8.J̢٩Ҭ>jwLw?ԢS{SmiB[z㊳BӛwLFUtSpm~oG4RwlBr+ sz3ZQDq6WL!3:SkES5$ U3TEc*kR A<4EHxq4vhJ-I4Oɨ +Z@q0F5X!삁TMqwJ|iCOUS-QMAV"iDEM bs{!z2.O//To9|@9Oi5 +=UԪ˘/#}Ia+r>nANeP"}'H|1Oy;"WaCR㗗ϋ6q֨f\Qa2Ṭ+ẹOqaHA2ۡJ|L /_ee2y݌krg8kXJ x=>{_1aI(G3isS` +82nia`z)i#N~ +p!V / %Zi4 :dkz\ xWp,־vuxvPT'Bqi枦Yce+JKRiVJJ;ͥBQ+[Հ9@࣭xEo-MSBuk j:$Epo|+`psZX|MRs)ˉ'cØ!bbqпP x0Kx͐F=hN@vrjÜ/(/k [( B^e|_0fe[=Ra}`zXcd˱lup]ǖ;~1p:)N*IuGOJkt)zcﰗ-'1w1iCO*eRE +q]`Gqqpw!:wِ 3C&kEVt?W-H7NR4?7 +d0F§ڇ8GZ2όk|g*Z%qjm*$l&7)91UTxd>*@+E3HL"Ub +Gj>*̈́`Nf2By^fLBA^QV +{ۖT}2'w'#u[()4,2$h$%y|]"vC-DaVqdz([Mm|XDuO᜵IWiᚅn.$'9w44O'C>JaE+P!df #)xPb cXO:'aXuu^hQf#W,쪕/g~4KW *6E`!,5jhƼP +{4V^3k5`j6b78LYJd -O V7v_l3e8e:q.g K"K9ͥ` a akBb`c"@3 e1F3 l8(~,D H鷕"V2ͷ84Pi<¡jtD6 +$k''&!xkmLrVU0frZn`5<@CݬvZ>S`V9@0@G:}9,YutƬ9h9 kHbc _@$j0뿊pSd~R 飣ާf[~2fĖBj͆₵Ŕ)TLHۭ1J $&ԌA}UQPA@G?m$̷;4N3E A텋1`c,C:,e&p +f}`/\r%k.' +OXj`LƒM'UاI~mLӀRzo^O`(c~Oe8f #Y3qeh 6VojV/N2G93VNƒOUnA/^zM.C[;GS{ضƎ(hRf*aJcL5|C}{DT +0_亊L#6r{Gƣ660?_ͻn{^Ծ#(~Gʺ|`~GsΨ~tQ}krبGwQsUQXa~o&zdIi='wzddfIkW2{Im[{L2(dhdjdldnTI89I2#I2"ygF}ThCQhQF z~ +X, +ח@hBHüf3;gq Z4̈O`Ӣ;zrGs3DeP'2aOw.˻8УS$?`_@ HewV,"\݂@M;ndmm& z2:rA<oJ73rLi Cvc(. :[:(nN`Zrf͚(a]k#عlVEEQFUQ{[}͂hre-9nf]omrGsY].5hn㵄pWk1Lƨ R +.6"D2z9 *,+9tƐ|cKa:E +$XB8zUԟߋoZEZp>EbEtKeP74ֽ6lѷA6n*/cS؁S(!ѿt'0>[ ,ppphuW>ZwzDD4 *M_2e]k ?ɢ-ڡs6J- JouoB-;ҝ)ku9yII0.j[6hޫ 4i9uXGR@OB"/!ʗF{̻z@~0 9a6π2 FΦ{vg1mOj* T٘v &aB/Ma[ uCa OCG6 !xX2;V RٖȮ@*i)}zL[} +N&ygm젟%Mp 5sib]Ɗuy9SANK4QZ}. ja)8%;f:oa>E9Srrr}+ܖܤEgO>3ZxֲFFv±[y{8pB(ΒG-vA3|c>Sk^X/-n S5CbTFL~p&FGJ[bk^jmfvE~$xS~c)SdK>rDfW]g[AnqRJͺ{0=,nQ +/2˥FFӕ2wvgdڢ^=H2.=C I!!MC¾s=撲dڋV)oFk{Ū_T(1@,(qA RPh~Y]`Lw@[ߡaw5,MCG,/K5'-KU*c4Mm3J5< EnJr +6`$'Jl +5aI-MXBW%a |'>^nʄztoagpۓϿPIbЩݝ\ԩQa1KiOR4v [48 +/tT-$/tcB|{J\[-5`=@ xcF)qcBkxMcD?\ة{S:L@wRӟ!n>0kqK4e*dBP хV4J:Hs ! ah!A{!AzʃJL+XcU?N۴'sfL })߮ҹs Դ(lZqC:V{hKJ`R`9m;#Inu!+ 2/2-{cN/VqMJ{ kXa!X(Qƾ"JrS+kyL=0X9ǺpBR]w+ČpǥbG,skNlv;!wyA\@l Qc7lQ7 +˺kZUN}5Nɉ?t:JL0Qk7At%+:<@8 dZ#PȻ@0eH9٣;BB> Dx2<u;>0trv( +X+0ªq wYʻ{Sሱ8u0&$q?xaBYU.<(/DzsP s}<<+HPp`P6.ܣ|DEjD2m++UxC)TB@@ ]BqPxOC!11"!7dCgMG{>eC29ҡIӌ5H(S PG Ƞ#z25g[")CRk +fwx.E :&ri)~GɾP6jL#^EOw]"SQZ=j9>%7y95,#U'U|QE(I7dd$k=3 +;kח}ʓX0w;4H2X{.xv L7P@+tƛJ0) +)NXB !IK;0.{-QT&/lK>Du^O ya=Å 9bCIǜɚ]okBkw77%2):c4@i6Fנk5?芚tSk Z 7q/'u E2t.5ѥ_&,[_vf.ѥljlR^>P5&11ܘƝFxl@+ڃxiڝ) Tnf`J?'5`t5[h _S=אQ7?f]>@G=0vfɰFwKU IyD4(^/e_¬7+MbI@?׀;7#)/foSNvܒ$e[9q[),ԛ!ts程"=" ޓIR/S΢Y QfRi&"Kt3Gn=Iޫ7F >Q#GxsaYϥVp!WwZl̨[O,tE4En>4f`*Ŀo+Fs_E߽,QQ~]tUҮn*6,@!v&bnP^^T@zJB_v\\wZ<9v?rϷ> cFB%/,Ax^1ZB. ▹0xO;Mò:P{? tVhlWqcc˕"5NOab-OשG=ΡQ,%1qტ#QkF[x7Ҕ[wk0e'e tNJR~=G!J3)--B +:4 E2#ٹ)땦27S*:SzM d@$sb eYI  pN~uw Pmw3 xRw7 GGAVe-lE>5R첗7H[. GE$A4I.91G=.^la:*5_TȲsUY+Vbaj4~dh ki{FM6#T3n2ZB*!πÅCȃ/KWG*LNW \L7d%Wa7nCZeBb7fKhF&ö[t27_# XcP'; +M'Y5r+C1'X>U tߒsF%zD:,"T: 6եxc_Wjk9h^bZJ4vrqNEtRCHc'U't? q;" +Ҵ]&Gkk®M(`jT +0fk㳑DZC-D9:d3QlKqqnsb{x]@LAa1t'j=#Z]e0 +]ekGZhc&~>񄎒8[gZCaqbEݯ/&LwȁoξDjI*yOvڵ]>{ hwRj(Ev]*t'Dw,ÊVl +/$f ۢDtFzZoLV]´fՓ0%gY]"OYŰ,y9\b]f6d9gajjl +P;>E~#noO}DA,ܒ[b]G)[A t7L`ًĂ&&UCw1#z5 *G0#!M`@b!qdSY&CLwzfؑ#o'uw;p[po{wtwγه@w:B` z(1Ip΄,쨐@`3D:ad( !DGᖤ;\Dž| + @Y"CZ0}!6E7WA/O˟`q:+?ZԒ/Is5ػ4?5!kz e {3Mu#AXv +R{z2z|]0qx])\~N4W }/\O'jۛsЅ ;DŽ PE{V~CZnf°I[kh1La4D.P.Ɍ#U>6dt.yM8Q5Pqq R{JE!W1^s"/,][Ig&;TӒmB CA$ + +M }Pi(2~P`666Cjbyw0J3^bh ainH:edDҘ5A昐Ćp昁5|s"]7/Z|>U򼜰uIS#~ZR|OD>+.VU<Ȅ{i'feKCrȽm&|(WxY="Nǽ Ά_juMg~efqwzo*O6B4jp ;sv׸0 +j/;ۚF=qJﮜTYNvwV]}Xl] +ԮԮ>TqVwЍ-*X3~@׭\jԈ +O 0Ev*=?W*ek6u4߸ 䋩pA"戂4A,yjneYӉq894/Ygnoz@#4#8 7 -¤%}}fP쵠lKt#4P78NZbܻ RMtNuNu*PBiR9l<.N?B } 2)k+?TNK:;QNѶGG=5O aKhkCn:+?YUwVfaMK떛} +jlNXџV!BFSq9b/ DP\Q;ƒ[;asMLǠ3<#o Hz];`L>ބM;1YxCr?MP[DG높/{~Wr U&6kk=ԙ:`zYΉ_jJEP'U5Uzx=TuuMcn,1;ecͲ- Lh[%J-5tKRcv-HB}-[^H/68! ewėdw9yR_S Y74a+.`-%{B x{6~[N蛋R6#=5Ć0tT6 8p;S2bc_ʕYb=/jN|kGhH +0ڮTBd^: ~Y|9`u7x +78dBBc." p| l/hmG 0jkQߟqÀmZ޳O<{=x svY8ȲTt%)/_1l-]~\KƓF/j 1,QUK`@>D+hv?p9nX2+F,Β?wڏa{5Œd4fLE 9Cb~ 3Lz(:O+䜦!b/Y1\hЄ#5Yqʮw( +4 $9)ObI?@t77'4Ȯ(?~˖ih +t{kw1CMt4ThUMt n]0-eB$V,b1z ,1}G}@EMg;g9_}G@/f #hQTCXSDmv*\~*hruk5mN7]L\8"xʵ\hP튎]/*z'Aʩibg-0ca(m4_(jh;a2zNZncUAmnӨ+iRzVXjo;_ft~%iz@ B-Z,"L@{+{}EoX|׭[`ovi7>zJi@yUVgs6Q"j!k@ ]%H!kDQƐ6"uܜKRff4K2s =DANrsvwLR1H- \%DׄS/{b M +2JQ=Vdb|Gu`)s]nH={`3+oYy)@Uߔ+?O\G^>tǠ$3D3+K ) \[(oD3Y !{K,Q7$WHTH(>BZ!WL>g](k"o`"alŒ' uu6eH o/{Uӑ')\=|0W604/GGΔrT@ZmVGpHCz9;pN1;r<f<4Ծt_gaUeifLEejsWq st'H}A *1mMp:KD丮4}ks ~^RC=3Mԏnq"ܲ:V-2Vz'뫧A}!:,9WXv,$yМ 3d Vv֥yNse2kިYipwHLQEU*?$ay*z!N^>@n!}Y(.=(6NyGҿ>:2G]9&K^S֪](8PW'qGN@#Џae銯(bcU7f<*VˇG;VChC1pX7C,A,OEb[V5-+)aR46ekMl <ӓ+`ӕdi`;ڗpTqҦlju|}#mXV%yV=B[(G)P  3%Zh0)5PB4(i՟5h>bUEPh_:!x?ay] tPxѡBP5\Lă ĿJ3ջ:)s@2M8;uF!Qo  }*s|r(NXz=gZ(gy8cETiAJ_j3^ ZUu9AI"JH2>:$HYm2`E1LnۙI>[ˍecaC?eDH'P3 ߚ@;7PՖ~D k뎢7M {@rcVs*3{QdJ w-mSZӎf{]5ȲXF!EGۄ?fZʚU1Cq@!5<˞ܼ d$A?ªo7 +ʞQTPPQ"cZIOP#`^氎9z'l2|梛sIkwU˧Z]-k{Ȑrm;3E;J#O< Sۦe"QDҵc *_j{ceG]0i ^В`b |ϐ߹\d)]-'=G&R|i𨳸}7N3o$OBBzɤ#5C2/ >J[8/1?<:άk0nj*h٭v/gB>^Q3= 7d_"_`>{LvcHDƩ$Ѡ 4p܏C\bI9iq q _|X 0,Hi]a:Gs x..utm0iWA$j7@fR%0@>Q| vJ␗@9tL +ih gsu/6%ey[忯QoHՏ<&I䝄I AEBCE"@"30d i;"A\[QVVU֭-խ5+߹Nw2a7D;7{yӷ<u=iS=aݝ3W$wC螓3Զi\e/:Rw;%>qSoFR:٫"ʽ/Epzlbn+.:xq''{+jO⫧F"k^}_z6z9<$}RMr寥}`ꛗk韟q@r +mUCWubC5Z_T-5G?[J_m5=ۯGZ>A>|Y{uK?UrLL;[S*V*z_ulcޯۧ^ۣ 1M rƤ1P$^:OWc|l .Vdk̵Ul\H&Ʉ^w=\{l^͸d&U/rѲLxh6gd>vHH{ڜK& U71GĠps7 amkyEl^flwf⚃.  =z8w2x8e+֋:xZ)jx r0lkFc )Lt*"nljn&v4(C-DvRd5U]^B$S,\!0-(e.jrC]6W69E>J#c[Vi+ghGA+ڗs0u @#j@˩5W"Z;mhq#OL[aU>7 +6% Hwf{0f4KczӼ`Δ=%)ZlK/5[+6DDl '+ru +{ { <DncxC"';;r٬]6M)ܞC$KZ~P)WV$:Tb t-p]iomkr~vT*2йT-hZu-tk'uWjĶspɅAC[9} 0p/:D&,xՔ_dljn#13g $i8jlI5+V6u#]t:KdiU}O6HT ^7Y/Y,lORmp +Y ,;!:0A:I^yuQEM5Zwl}iqw9}HxN#w].YLSwd>%|Ɠ]]Um.յͰzY%VqEbbl5y^n0Q|H'k%ޥuҡ>ju4ӞU,CdnVouiaWت๰A`%BԂʿNE!ê6 ß`掑X::;04Jw6U7h*8b P7尛!!!IVT!iKXdKk(c.)3 +fUVoq[JIiÛGјs9չ&?{E e *ΟM#Fn\*=*{=E֙mS.W<% P)E'pذ)eͧ<~ScU_kP]Ek+%9J+M7kUf \:JY*l qF@pW3S-8,jGȊpBd͛RV7K(SUsOq br`.)7 >Jq:/]C29s@@vkbb)eKN{4Ls"{b00rldM-#ܶ/2.7]-rc$"mCITʁ YUS0% p/~J0S6rx4#߻GA6!xTQM^1.:njHʧHV+f 9YUxQ r|VSd% B8:[+e8L$\^h{[0m5_.YD KdQ4MϑFkʩkYu"+yŴN52yQoNX `dtj9i YY`Mj.}Q"&-ڗHZ{l*trc< 29o +dK΃ r9t#ve9$WA@"u4j{YH+ͅhʼn, * mE zj #Q-\xQXۨ9ϲI/s`,$-;hxL[_]$tJ)xAٲQx;w/dSR'ۆd4?͠6q;gۡ^GVUqk[\k]m.-npW(_"֫w%USȻG⢍Jï^ 5FF5#G>^#tUVE]h;FS6GB/#d:GQ-:;R?Hu +* +}f<)b<:ON{K(rp|w>np|^h0 rf6^$'ur +O[V5֦ajQ -fP>:sLgĴ`."ċt":*P`>g>7)M1Z/&8>gp`_'BiS!GadDYPn[!F{;x<%کdѕhGD$ +Iܝ'w?vO7{s] Y-V_xs|Ľ_ N+ +6%(')/%|k +0G/Qۑpެ3Y85y։dOn-AcjyO/{j V9W)/1MkzM kOܾ a:iў*F|)1lqҴNZ}˂Ծ:kEb2A,L)l?a90Q@93-tڮ2%Lˢ20DV S:0z+H:{=eVգIMqbDfK̄rI} +jNvk$S\.T" ӥ_Η~D8+"lAB+'ܒ8%!\B+O|I42O|%R~Ѿ?TG4~ ٫7< +{|3gP&!g3_G 3#גּ%/4xބ1\3{s:g4`+@\1лi?Xv'ܵkR vAفS7" >olc2$2CcسNl1K$v8E }'}/Egۓ(*C!4D-at})4k_'7Qsɘib&nJGԛ2!SR ͎(Pp na40(c,!(my;?. U yPyca˴K—/H)}6,RbFT/lT?hseۓhu.Lq%a@̩Bm'rAi;*.fA{XND]+ԺymJD'(L( @QVS* 22&ӷEc?fR9Ѧ\V*# ,eeHKq覒;'pgBK +rPڋ;hi%_5}%ͺ c%l-E_`%& +ǧ0Zhj0Zvs L4Ԟ^-'I5,Y딟^9*%y c# j}FM3 Nrpe\k O*H_ͼy|IEwmvblyFUF8~}PBL3DtNμ0#)Kl+aǝ(a s+D/ɐ;G=,ZL.[rs{ΐ/%&_X{<_ [}/|L挖?荡?^LRw@9͟@ꌟ՜{ᱲL<[̟wf柢!2;sGE&9cL[`֣ G}iT^<-Gݡ^{$sӣ?Aӵ=ϪGn̮G{6{#}g#?eOEkq٧?:QMrI=Rv{̿MLyߟQ??xƺO3?cY<cK|k c˓q=MSuE::x m'_Ge@r#닞xÕԕ2@3~üȈV!S+Y{h~xѵG4|jqdTw&]D<D_pE//r6&v2_"v N@qe _tBGx5er]X뉑+/f2u+y*"O_Dew\+[)'nj$ۜ(e3=fj>X*ltP.&@~:w ^`_)k{Ը0FM+d+G\jd[) ޿nAnp2S09&SV[|IBihoN4FQ@ZCЏ+G0~J_ E//s 7r?F" ELw^(CGRSm 2٤t5 ѷ]ْC6_ɛSn֔,׾"{6=Oã! % 5? yńIE{0S6$=5ɢМʊN>2Df%4+(wjx;h>"O#Ѩ>"?uG#Q|b5F^+Kߘj? ߤg?Yz"oB  Q(x=<%O2ȢX:DM>x:wȂ{O'F(aG䉸b,[U,gڶh|D=t2)1/cNbF1S'b:x0P`(8#0;]y`|wt:hpG{qҊ_kxrq ꂹ9,.Yn26×%$l=XXH 쟧Ndh.-RVY5'BQhUgK )ŰV0 U0[~bò3Ev7 HЄK h.v)-k4/o>ZorJ%&(4ʝrF@lbRk46P~cO;mLsĚf< [G{d/ɗ䟻}wZUWU 0]45ݩdo+LŞquny= -wCdv z@Io-".P< 2n0SC|M s/>AG-=f-ݟձ92H)ڮ2BRȯM9>%.N(vpU$5.met·>Q 6,6u`t(twP^N)/i4m~j8>ţm["CCYI 윑.)K6UשL)/7àċqdO1J2 b9Ls\r œt'0#L9l]dmxtL\%qy܍#j!Ž ms` zq7_F0;߬ zA9z1q\q@k$ ŧT8Fodﺏ{jČ*@@eS\7&^I x+38 \@Mw{LJ7DTC?ypmz(P _T1g7A_+ݫ¹׾aYS<`OP10h`>(c b9vN̽%FQQϝ=ٷh1LП/ڝY=NfjLj +9-o#>"L0/| 99x@dԙߔ@a&-*:Z2>L,U uk`voo l%v糨fN,]c1MG8h 22l#KzU#NM;}Ck3~PbSB&I3o܆WZϐDd:ȈTKRs8M9tIM'2C2hJ:Ñ!yI.ܜ-:6aT.)[FT0[2.)7[*C$_HC Wu,Ԝ-y!SMC+gZ=KA)X搢=u׭;15߫zoq"ۑẹGƉuDK8`}B6+z^yFZ}BV[[h86gh*xtv #9HXG28L)y$`u7ZqŤ:Œ?'?Y;Y2\3Y_:X.;C\Mt}MVCoc)zeuc`L}OЅ Rg5btw㓎P =cXnhU#pӋܱyeF +Dg1<>[?3 + vj(Ngqhw4;PUr\N}u+FXɀWEI=5Qcn8jԊDAW+}[t>i[s">p;N<"x)nM0(6l3ħ-P{LV){lq|>8'lMbY@h8u'}+xύw9={*%.]>~$mK-==e\Ӳ +cw=0:nc4<`{ڦ=`#=nQ) +4_ +v83hmgJuK,=jJ)m{о$_Co/E?`xNunIog#:{tMˇ2o9p>Ļ;KNյm1@*] ђ>3|ſPȟTڻ}|Xl `/Folq>ୌCigL';F~^*z|_^*"KjS|qQG[_ I~rȉ hPu$Pw{ż +p#E6ت Ҍ/CN:?,zXo_ 䞹kGLE9+dZM5Lm9y2'cYF]Z==JS m `@ȜCIuN.˹*:P(r!M8.c9"w^<$ lW^➥; >%? > <H:;CS?-c M[0| +TaxgvAYox xŢH/9âx"ŪxjHcYc652h:Ϟ0ϑiksDavByF_.!e75xb6qyb@B\\JLNV˿7*hFB\HZdBi:ܬer2eeM|le*-LW-Jk.` aK^?IT."c]yHi : zNg$`^=(bJB}"B$nOk;lb*b=,VGV 22Ȯ"UG(nLzQ~q2[Ps~D "`AE"eڦ40B+>/4\1B.0Lv\6okb,8VlmCo*ːmt琝5 b:zc4BDYa8]Lfԛ"!|9!-ux)C}AL>~?\v#>auzoGs";LP#6:?%}yH>+A''Gz _K9,D vGzWoO(m_OcD#4F*!FitP5b +NZl%txv˰;{ jxcC+%!:AǦz![A{]|`gP`zr)CF6ij3/A 3jG,%u7 +했,MpY\YɅѸKP%xKP\&U/1Mvx=f;.3G R{c.uE#ma<⡤HR;;u)T噣Nsܽ| +x˝#hR7(jVݢdEޕ`91Z˦0fo5,?foː3E .c{WZm+ЙÏLc$c{F֔{/ǩ:9)܂U(eox84,&r>ZU/+D(f̭]T+k[>G[']e`~тg*a^3 !3M2ל$JdYC2$rrK2$N9L e(MO2&i4U'yu!"0cC̄@[!GR( Y3u)pʻeӞ̹X~cF=hWi*F'9bO27YN%:6&FXWKQ朦Od.?f3k?.60X,ʡ2!kxwkjN7k./9s RAa:r'8nP֩V+&ŠO)ĮTBqwoe#>G}'|)ڤUڅl6{K,S F+P*PQtv&2/q*NKR2-)@ȗt([.x7Q6Zȕn.(^M3i1+e!eA ʦ Iԑ=\WLhyuIJld[:svvs9ҫlXjcuQny, 5w^IU Ԑʉ~E[sU Ma-0דv.m]s*0(BxM:Wq˂h$xPf^y4W7v94@$I}WQ`k^lIk$XuU6E6X@6@3M6W~aQ{ʊwc:46;3Ok}4FZ2E}k[hMn1#|hGZʱk'`40r$;ɴ}%y@qԂLqʕ&r<ѻ(<ŢU)09^rlގ_!Lp+KW;j,zeҷʒC{a9\qrIt$4*9 +f#exёEᔚ@%cf0 ++s\Mm:hd,R&.$Yk}x*P̐AD oNKVɝ֕[lװmY];ϑ'! Yx=Өq-*m zz Ưb[τnMt-k)'mO<)rll> +̔ ,7jߡG'\+ +Zp~k\@(ka{mp7p{.۞v_;GFá0 {b󐯐凇[-RitS BYE܂mɶp;kzؘF=Q=.P9xoɧ[~sV$)G2,Sڢ펈*B(*dPLaL>B|O53e;]JWʊ)8 =!>`:1+=!ȘE'JtG}18v,J{{Y}{Ա,}c{*aI6PF\CC؞]Ҁ6p)I΄=yf +hWd rFKƯ#=OOgw؛TU1ռ˖T’Fe$+xEGTe \]y69eg]>>n/vU*[%+LnycA4nQn 0;H(&dgchd?{(Gǵuc uO+𚋚#(,ɛQ0I&L t+UgМt0._7x&߳ͳns<^<=~?.DH +ݔ,eݴ$8EIL=7f"RQI .kJ^!v# ڋ3(S)F^O#)MTY3 +Qed +]cS볆QJHL֧5!q?}JޛT7\iXf_d[-=!C ˁ=D%2bS{F^>t!3u.72Z"0 m*GDNEfڤ \DK ƣ M &a\/E򪍫EhIp~b7XYҥ%y(6mW+0g GJҪ5r;v{`^S41j:;JP3e[oh(kIq Ň`=L萣1ۂqCclD^7݇7.D + *oIa#a9L3B!~tG!{9euϒUC49:'Ʉq@ 9*i2<{j+&W=wkTP>Y=>3?~A0mὮ?7"3c'|[HRF[ݳvv +X lvCp7C)hG /Y34G!\o l2q?4 +T{T yK*֨ nw$bI̡V>"UTs9VRkg%҅YDc&bW~4ڝyPEMckBWC _:æ;I;ؽXqmglw+ %KI8_?6I6X98=EoXQ&b+l{ܞ(w8 +A5ҋ K7'nPo,ZDYQ'kү(W rVTÖ3W+)D=k7u(e))}1.k}YYޗuKL@0t'74h0XM@Srv5S60MRTp~j}l/{J׈hKd#\t12zLdвVIe>7[꺠K!+= +7@" :b ;dǀ{{}fvG'ֈg0a<aF Y (\DM ]*:PdAHHCHDݰ> ]Q>{V5'ԊXVsvRDLT|~^xIBor>%u8@iH:r𓠯iɦWFG6߫4]MͻEms2 v- ig?o7@~s8M8M+Q')o. r.ZG50p4TKjՉ6ב*]TeJ T ܠ]&jӝj*gy*-~̪WPbĘΪ:4Z'-dtol[,WsMS-֬!ڪD3GfzPu-sN^*iS"=1X4f$BP,Nm}& %%{s.)tI1RtU2uxr@3,P9xʭrQ1x< +rt9!#" ie="YRR9]Z1*5׸W..V"812o\h20m?|=-5R>syF7\-xUV.kFLGnaؗ§bIªÓc#F do$ӝ Iӷu_FnL|t|#_~det~_/O_",=N( d`b|;Ar`^wSpO]o7:{Pأ-s B4NA }}Q WKOS)ޒD#dV߸h0{nI`E@ с&|Ux#٢!4yx<0ei۴f<X*h N$NFTFaz|#|K4|XoN޻-o؆=8&#p`z`ދ֥~-=z:K5~O˾,+i`[eEe,e"0rA;R+;ZBOz eynjz\֛߆ي'aO0;mv 9/Y)T87y?Iʯ_5Y={_r݃~#YoH3?fto?4We"V)Ed'&̤N Nst^p$bp +&o̤djU:AX/? l;FXbbL}FͲҮdz +-N*iq œaf*g˲"Fݒ#G)Ƚi0lh4߃H)SUk$9m=Su?XM/P +y\!fݯ}v@C yt\GM  Cb±'-2HB -Ry([=X p?u> +/)ԟ;+N&ugٴJ)[M6Y*juu+c;VBi +7 <2FG +Ҭr,%'!?/&Sfl2ڂ!ȞTT4֤,R55x̼qUpIp_0}5pH^ti8Ecŋ`~?7]C\%ZwWP<Č Q+=:RtE2dߛ-xI NA3ZgZ|>e ӠrK"{ol0F +X +";cH eYq6i cfHmGgKHf:RE;CtF8; ==>;ZM/eD]l#V%6 tā. +L15j~ѐm'K6JS=xNj_c3~ͅ/ Q(>A=asIץW{/ 1^=ضsH, t;>o0E4~3RhfM{=ַ:@-Gq|r#Z\Aw٢#[@~o-RPwq=Dۛ+u=†r-ܴFV;F#淰 '췴JS&ȧzF\G]W3b[0D>wUۧW{9r QE4ɵ weRz.\62B> {eCb]EQHfMn׳0շQ-k9 WwDu߻r/XB)1x59vl_ů)@\.wJ埒]\njȴa1L3u1GF-2: -L^c`ljEK$wc| 9#bV_hPϤx211ddtOhݟv|453eetbvuoHj 4w$ ohx3||aWSblpzoTlA[%~e}C 2pgE @~eKrG+hH`I.Iz +Wx$#W(#FG-U~ǒZm6,@'F6*'E6h etq3 1S2^&l.纍ݷPyW#́Fv_6捻>R)l˶8kR>LvbV2ڝfvjݎ'4ug'(8i(A"'eV7.VvHqCQmQ^-8>;pF\2w.?Yi~ry\ N4T8>ܬ(qF w.a-bD<DO72{ۍJc1Z[\ eS..&1YFM] +vP~-Ыf^[( 'g- Xvl UIqЉxj?fȒPe#T/(NH= t%bۅ ? π7+ ؓJ/}݄͗f@HZߥ۰qjfěR;S#&8Q5_C]#w +@S)PZS{eC_+1v3qXg Ŷ%L<'C Jhڱ r(㏳kŒ(;Z:Armbn~LݹFг;RH ؽ~{:/=/0oFc͖rwSZS8iΓJeI=D1d)\Uz?.>O8sش Qly%! hP,08#nJk峮K| f=?sK|HfyՈ6Š!z +JހVp]'tlyT2\*@B*zM&?.m.w^ͻ2PvL`ɴhtƤEVqPNc\Oc̫KnعgwK̐NjXm"{V?f9yH_醤J%qf>%a_-}gP5 L RuXMXp5\d`CpVipGs P=\T:!5ڨjSSU@ +mE;)-[`]SQ'*ڴbdWMvj(yHU yEm= v 4Vl*l(Nͧǐjo ua,_wŭJ.CjRA]R9!"amQXja{őd?*Q3ulV Kj3Ij+ "ɻTqyYMi6 eA|*'QЦNuXndEYͱ)kٚ䓙I^E5rJ`Q*3hI`$*d-]1ɓ@h&}I(g Jj􉉫n +"zB<=Fq0sWcyXl c uFDo2YH-bTQreʍ|ISE:S<]s:L^ D%PG?MhT45\.OP`"X p!Y'4.L\P& 4$QO11j> +y"gDQKOD,^Z4vOBg;n"T2sX{P'" xvdaЏ}gFE!ކݪ퍽\FHdxQp&(khqJ¿.(8`vZ9#,.ƣɥqNiE7cK +rb)EaE;"vst2f&8/7;I3IrBxP5 +%t-nBߓbOjA{nAwuD!et}Y++1`!Df<8b*pOG:!h@\.R=ǣ_{ܱ; ]Y +N +~##%n~TlbV;/܋TIqfT5%ub8]NK0Q7v!9z}ɹ ~O\/.b(NVɅIzX Ζ*Up5 ˙ěy& $L-S&*F8;EbG5Dg}!)ųYDmэy . \'+ݻMh"ފ_B;Ő_sY-xźO5:mlgN=kZ΍7R .)q>C'm) @b2MlMkH!1Bǧ_\:@UF A VA ?6؅)$⨬]nT-+ +qT6=5bZq-+Z +Պ[L>_ƅ,uOM{_^q@-0yјI|?@q +pIvq H(ұrLX{$N(I>@'e|a͝hMk8չw𢣼= +H3!{w!c +Kc|JjKؒ=“S!> -:a~L6| ws#B}gKmcx- O de /. Fi#u_g!:kC%j_\H_- mJZltTԼ3M|}m"Hf^ f+*٧)%⌛Bj^ܣ:1EJ|"jAT;$Za4L0.5.T*-ޟg'ʾ [e6tF[NQҜ ae>TқӤH*d¶!+f%=vvKDauC}ER` +UDD5.$iX!mvh>?-?-Bsa)-ȉ.Ni0 J@\6~x.eȵc5H#mᒗC [1L&cRUĢ&+g"MTy#̮dD E1VyLg~) ڑX<9|TH4J4uK, +iou:P D7D wͶ*=.WIo.DmIP/,ēRr`Jtyf쀬U%y|Y]F vH)PrU /K{rf"fpFRi3BNBVvSD RSFό\rdrH lRHn~<<%4ŸHƅ IwF:( Dj>*z[9ǚd7aZ\[hO!rf5R8'F;+Xe!MLLH0VԾJ +!rʳrxPt #B@73gD&60%!2Ҧ9dm`\Y%ͥ\:e=IGBYZI[TM!KQ94٫.bF~sWXraEP+oʟ|$"(TÄkE^løaФKeSr;z{ +8dTo628=C[gƕI^;Sr#ff,>ƛ < +j7WA-4ףA_-:ڰ漅`&0mvTnva zX2$i ^.LCga4֤tSYESQh[v^!L2q%YBPSlΘʿEGT0xߴ{JLFMn@ cof& N?3C|#AAZ) +Y ,\g\Ӭ2%w-` x8Nrg7z}]rB`ȥb4io^ LI{ 8MݯFD :K:3jKA2`fqrd417P0R^jn3%74vp\lQ'2&7Ej[ 1<]LX#KE"[KJ`䖠l%p2# @ؖ9ŸMUC +:t޼ܱFs x = AC#%LL$U}"ry"&TC0og"U^dֺ]kZg^s`E ͕I#V :us̊`́x` Af1TRBG$( ʜw @6̹Pْ*Β{^Fez:%m8Œ F9mz!Z+Ss9DGwX(rHy!tE/te?jWחO]<v(3UK8P+(5lܢ`ڏ*oɸ<%Uዎݼx3p5=^yt9NR11(6d_'FɢQn 'ia)D4p5b]^{NW^/8b_7ݓݗaa Q&o1[j œjSupLC#eKGS_WRI.RνFn@J0ۭhb _Giф:(/חJ TAm^tC`Yw+ uzqzp5'|7.„{(2̀Q :4bfK=}+W|2tӺANtnFP#E5rGJG}-N2T+/׃;|YTS, +[]>h#SKXu}YwԺj]w/>;M#ڠ/irFԒ6Z"kvAǜ̂Ezb^ R="{̓2Bǔ@/XLE;$^ ʝxCvFM[irfZ} #^oVF~U1,PdxSd,k>ԓ=hAk04G)09.sv؇{> +Q)v'!X]ÊYˊz>9F? CVSVZTTy0j(cZSb6Sjv M4d>v׷P^!bʮC☮r4UP Sv/nZԇCHwҤ.bXkI`0hiU.S^ H1Ql.2{q1F~kV5h(" +wR]n[ fب2jig`-TSݛԩ ` LU]{w8t΁=N!v-@ߍ O6(𼚒A#ޝk?/݁^K}\\,6).D6\z'#DfHj1vKB N[7s mUHCrl螹Ű&oP&EPAtFvp]?4 $M ̶s*~u8޶{(Z+h0: +TB̌z[!S?mh%^`2ybBN~Kti!WKq l r;6l:Esj%;@#4|Kr 6E][@en|X~sg X+vC;e]:LK+gF]WwƐuu̡G\ӨC+ޅ1:Ggqs휲;^Z]Aghg \D!S91hP@!*#{mE4}p-}y:]][d]pexG7g@5D)c_(J /FD_M/6 ,WT/Fqvx4q~`n# `9Ŵc$#aU| +{w5YO3IPܲEb@f;uqdǎ畇K1kPT5兂9C`rNZ+ 끗`(uw$W.[\o Pv礰T8 }n_ABiP*1"6&&vfуHIR*dMMthq2_W2q.-׶b_j<8_>wS}5fFk߯`jԃpʰP1}h&ѻ`?vSYT&CUE6(% +siTS2JS'7@BsXz/teC2LªYLGG+]u5N6Z򏣆 ml:egsZ5s:$nj F~J_>GmVZ-8zN*k[WYi -A~!]>.=>Smy[J +Yk\@ +bVbm$[uQj+0-{(B&i[wL~;5'&ᇰ_8g; %ј* " jM|*ׂ-/ؤ+IlxCˠ[*.p' +85{iNXA̝*rAF$K9%jJOM0g7Os><Y +\P};լd(j[כ>IX/ˍW [A2R ;yZ 7roh!= ௧D[J^ulKqHŜޜ%j{б_u\ӳV$NTV]j2&={Q^C +,MB`5V 2OZڱ "ts{\-~&^1A9X$HЂT @sa\B~ fSovS2﫻l3{.r(#l"bF Λv3i16%^]Dl0va3*;~9l"< q7A8T陟Kd/ :p0?-pFvu-0,4e0 Z̑qrVI1ܾiG2zTC6!1Z7}~cDl=cJ{ Sn!kFqjp3b ɉ~….&KwZ;GNF ,,Ccz${- $w6JjK?!.ejclp.^Y +n|k&0/ 6!\5"5%q }GGt]}̺~}Yu!>*Kёiֈ齙ljV-~#Nr%CK2mq1YuA| .s;٫c7>*Y' jl0,7]D[ TgVGrO,lё]ա1}\SHnIcО{hڃ0S]&gN}"n0:s;%YC'.A;(6}TM=.c/N07Qb}o#Sܗn{`{dR{h;_7ID>1ySA}zJCNOgFR +:8 +e5*,^"2@@ٌ? FUV@,M%RAK;(Ќ + )pmi26,mm)a؊D5E&f-5S8c1b"=1Ylb&ggm%_b''d(YjõP˱1ŷhu9ՃT'&bh)]1Re` }]-O"%)Sh`h=$+,-)'MU=X/Ut')* Qe \iQ"KRFb+`URʔ֒'fa`ΫnY ++$pyl7w1!acPoB +Zee>ys>0⹐D( JK hf2X9_REDN'#bCV "LK3Dy@R5ټHc&r1ϢR*1 +SJeE[f=ѣ #67OY?"bJ5uCcn;F +ɐ笨99 +YZ2x- uU&$DF@%,WHeixfw&fmMn4f;HKG;Vǣ;hap }J#9$B1~3-3O +kYt~sF~~e|A}Jf{֔&,K&wsʜ:6Q⚐6~ƨZ U]a#quukt K|r(?o'O%))G94\b9GLxǀ(&5*aJSeTwEUua0B +JzU5)EF9B@{/F%z]99aj``%fl942@2m+Z~CviԹ&[,4?(ꬢ?bLiZO,j$%e^x+kE~u_X#((R_a'+k|DhEA#gzI,WSN.cR\ +j&Vr&Z҃k3]ߢ+1[AYa YE?"cIq2]xµc F60(nh"(oBOYQQ}ԝEIZ}_J;˷yq_QSBe'ګ2-YY6n>zа XEK$SJmdCl~XY%%2"2c=i+J*FY4`cM!X3IbW#DG(ףu|c*B}WLNjߖ.ƄS$ + +۪4YYtc3Bc| j +*'uhU|9p(8vcDQMxCVO Gi/(~| S|>u< hrސ I/zo@U=\&5y&svU\`:]C}%F,hg"o T;KIc;=\-~9^WB10L>#XCACSW׌Hqb&؍7 +ޠyv" S9Cmܮ{-n1\?w3G 'L~*ht<7{ VWO!U܉@F nve?yeit[8Ñv +0o_l^&TK@Y!iلF,宭A&Pp*p#nJ嶲!Cg;|{ Q:|e_qzO[ep Hv"\ٵmQ:<\Y {`J]fa|J I! \q?(`Sl X0?js-4* +Jb'ڀQ?Isjuf]CPʬ4bc֖bgvC'CR咳+v̜[Pk%5.ӳ^êkCU1<VZRz98^jg| _'Wesk2ˆo|c:9tP@x s1{m߉h<2Z!4Q+oA<‹ںbMU)!r$qY 6'k+\Oacs2? +jI ' +s +ŗh[M|h ٗ@MW(@| e +%Vl7Y1V>ǥ[_;kO܂־Y-j{qܝ#,OT MmgĘN"핞`VLrkHkbfA/Q*ދ}AUVjW-_ tG@VidPwetyXD3㱏jRr/رyf-{»l-vʭ{»m-n +_OE-F\w]kĤ|r/1__cvHӳScv婅R)llG<ג&!B$ /` +)j@ +eJELB`b~?] +< 6;:UQz+NnW(ƭܓ.E |Ү|X&;`Xnܠ{ +;$fv&zAESx"$*jyvڀmXN||^r;p"f +..51oNj]و\ܼ)H0dHG!FE6!.@ȠD@F}7;/!I443(nK!.D= ;YM]qYfh/0._LJ53egLX2I t<؋SѨs9!L$^;h&Yd}XDqkEqMOeV]s\4dXYTH-bl{$Afu:"|iKG;?"4[c|',l' `nm / @X’C\ܕ[uA('i!,0.D[6i!TW \P*]N+',weV(U \R/0##S=Y.r:٘X]1F/#`m9w/\ozLmbqy`þӣ+CmrKGڹO|aΡLM,QY%0L'k#@{{n0СA"ZMwINI\I:zamt#ji 5k-m +u +!۞'QQJm#S-m$i$Z%E\;ʞ| +nؓ;oqeF_9Cz*Ҥ}8=ܸ(E=((= iepxD\[LY(y|X* aIr^CGM3!vAe4h:KW,TkWXZ;Z RM7D-hv8>+"j˅"z~z4pȥf-fÝG֍n|TFc-k(7m]6JdɈIyD{X L!4Yt74%2S&[t?FbXYzvU\Nȇ`[n.Ξp7bx/-ԗ܄.>@\_+]azY)&\|g>{t~]9ZkBVӎ{.E/-йyHcsL:GL88O< gH +wPK`B39KU,qq/m/yl.-[T=$v bdBrraEwn1\cw%yIn*A4^PW&ꠠY1!J++$8csXB&;j犙w--YUb[w%j}Nm͌n{=,ƞv!a dB|+SK* +ʕ/5^[8d5M{ېyYNo;Z~ ˘|ENrԚ F FC؝w*BuP|pE;UaEp쉫9]%Yw~~lVA>D{t ]^p9;R?tC366o}&Ko+ǫzq˜V<@^[xڜǿq4^`)z^@*z^Pt=Gx4AeG򴻡G wM_щAGkG-l!G/4CڔGmjm>1|b\EH>eRo`6qy¨8NIxrE(y ʘ +RВ4r݀t^`"2}'N[4N.wxjd蕛w͵C)?6O܁>H{van n; +C=ꡲBp8C&a{{}R;pCKoY<w~d^^d<`hw??drQG|t33 ~\+p +V_GT2+u + W0 `=+bط^BUSUQBV-ۿ ql3ČZbê9Dg;VJ+ˌB-#kוXVdƕc Y*8=0Uz+Ϡ9\:/hȒzC[XDX&kϠ) c"TCL ga|-J0쉐 }?/$ ҹ $0/P&PɎ-Z@cy}/_$x3 B?E2B)VL[uJBdix^h3m/ +XPbg[2ZLEj`ceܚ9TYue/\;Ool)\?p%\?cPEe +Z][hJ `G fDI|@5j@. /RJ@/:FE :~k:~>3fzץřECvHy@4T@&H$Z ?&HԲzj ˥z -S4lJN +˺0 M ϬBVȜVY9b JہnJk%췈 KA`S3&==f6ȏs ];\/^)άh*Ŧ:uJ} +*yFp *T303&^.d..˱fL5nF&b,@mK[J2H&"x1+S<~d%QXzῧ#И:F޵A+ 6~3WV5Z64ͳݓ{M;LkVeSw֕/VLǿuK= +q>qOdU`KŠz"zOhɕ#["Okչ^UO߀u@uв5JO +v(je#X[C^[Kp^9 O>E̎N Z8Cjwq\DHYR;=&7tK8V뭧 F3O8cnG[/`.d!6aa8FC6"l6"c|(cR8b5 ˙JыL<}s;7K//faҝ6Dnp-}wuK2iQ[.Y,mb?`KxBtB +fYa@fEqY 0# xY0jGnED!O+اR1tG#mWc0P`̂X){OZhmhm ghW>dҁPhk)V0X)k|c;nxp)#wZ󪐲)"Qc[!S,HK xjBX5t5TTkfg_ s]I? +w󆥱v.ܓ"D D( +; +/*gM/onD< *cUaˊydPԆt`m b͍<bȀԅTC}Xdk|X#kQW.LR~lI_ +(W#BKL佦kC0t `#j=a,pمd ȻZLj\LA{2. 7R`t2@w!^ɘ8+%ƥʜ +D Y{o#b)T(U=7ae<7<<Mt(Эh>HCBd]ZێE.P{5|#Tz Pɩj r%%Xjy<-i"C<5g+2\3K$4%\PѠͳbTq$4y6h2++v @Pb÷|d3JZe\h +TF10w\l Y“Ȋ$BóSwvLӀ@iRaZ#O콊RN[*)+ÈF5Nb^@k +;)sJ7Kk6'1|w'dCGzw +yިN =m?n Qj$&A\`H/z) = ߊ:tO-$ !t$N+,4VfP壿A؋AGP%8YA$U Lp )wAa8:h2: "::ٚy`Npݜ}VKʟwu{] A<յő9tsjy/Yɓ퐍3Vgqb֞XVYt%A;*FJԹȖ$H! e]mhWΔ /l'rL۟cJK#!,//dσ ~UaG@SZ6hMDX1/rͤ= X[?ŀ e883͹ig~E4;qr;$ȯu )X9`Գ5])4>W&u]뀈)jσ`-3~ތtv4u5AЩ.vءYn _4`fYS,t4Ѵ!Si,b!y.jVYt!h5SСi5CZ_zɡjܴCQ/C]L7b5\ޅ/H >7V3? HGj_M! O:PTAw;5x/ WPV=;R)K@#a17ly}@C11M{`C5VYSIƃW7CG1 b[!Zw>?4Y;" 塰"vލ#5!wW!B(xa:0ˍ0iWrM?[65,7_n9-͂T>Dj;99;ጿ塹!~l5{3HRբEif Hg0gt2G]'Cq5's0ӓx[]*R,'m`':y+'Pn ^;B$o7]o;'i68R`t#'ULBw8;ZԻ fT +-o||qŐhCNH}u!y9O)Xџzcvu $a['k|uYSwngK׫rLɰx 'uO]3޸K֭=Eom\|W]Bsھn<t[adagYعvw¬.<е]_@XPq1u?"l( 'D7wsIvi¡n@3do9UܐTC3-075+;,7c^M -VsC &3AΣ?C/|fiUgmnr|N|FKvИũ? LQ9?wE!, QkP=,ѽe P95լL\;-INJi,,7[`7Hf^΂7*/Ӣɡf Cܩ2晍CTW٨p '$-60l +ĉ"2m{Ȼ`yxjHV*-#N`dX$50R(VtSV".fi wkR972I##U+X`r>ٮj{5lu4\Y[2D7\JU#'zk`*ȣ0QkO MU֦JGR1m,0v*9:VZ2T})cţ4 i;+i dK,IߪlEgBHfXB+B z5Ly,%BE٣FAHQ+fB>OoC,QQMW~mꚶa;8w'*'{r7T^Fxașz7mEKL\"Kۂ-dBcv46(ĥ7 %UoSq]_[ݨ^mtMK3ma8'v]'A*D6=.of#|oB^o ~YiVhB7qhp +oO`׏_{#==n~};& RB_0vR h*7ahˆK6Qd>*9,B G`bE~`kѳW\|H7WعG7nqfiqp9Nfc /)B[>p뮳jmq6N;XDŽUt~sh[H {Z9?6KΈ.d;6/3y -h--~xaPAdD +*Z+(v*듺]Bf/xq.tpT\\^ӳ~@@W! ԪB=K 20jje*4FԷD%p|ApGNIxU3toI軎Q;@q~\*eƝ _%w&A8Ęh9U?%"yn olj [m1 A Ĭ6Ai@i,x!ƨQs'?u@9J:VL2n2)]j,g!CE10`$ɵu^ ,|߇p#Q^q:uz;=oUPdcEk~aSqWYͥ,1$.OT2G7}b}SLvz3fR+hU<ن\ܚTa|,9&p1ބM\>Jblj%}wq'V8U⑻VY-e7R+ q>:>,f͌sTC(DS1o}檂[_7H˔-=ħ ipޡNm=kymY}l(e\+j($s@.]ŀ#rvo+;3fEW63*uuip/r )rG6ɧ`%fU^1ξHVfͬ~kOz?i-A}V ִ&]ٴ+jXc(DcUjb2P2+COHHb_EQq"Ӫ@TjqC*R<(h }/4T==4.{t<i?-sB-wAM(Wۆ{?OF\Wa6c#?-/Q}/0yj 8+4p!zV{XZ]ը,0˜nے*xia٤-eePHσPVb Y ++?dt1g ʭnTil9F9@AvO CD'X"*ItO|L%>dKySИg7~KjWzדYZh$Kz +u$e28|uUdCleC3^s# 1菡__6_7no#8l<8kjj X>45W/8&p\HJV/b$|E% %3Y8mL_& b]o*` '@}]e}l1$d^ $7R0 +"@r̵_p|}nnʕzN}.k#86l66 :=z$W706M{yHǽ!7*=v~w@Z{%ޓ&[{RT;kѐOX08p:=͘܃mn=Ĉnؠ]zƟ_=y;pZ=wAɡ"?)@H18ҏCX~=hJ]EM .Zjj-Rb3ZIɪF&+ lFQE[aW<4T{; ӪJe~O= +%_oF+NF!F 6'!8n>rVù׻BR<%ZOQ RUedž)Ԣ.JZ8:+єM"&t{vN> K)HZS wSw <նl 7 kfQr]ss ƫp@UF5/pMn_K P7r5z=2AcյZ<=5/ +Z2^*+S\8fχB<-Cɫ|[O3gæq@A+#沐"G[5rbNJV`5W5@蜎=:r|ި;U˫i(U-E&lűC#0)* " . +\ |}3ic|ܤ) +hxDXpq\V{?)b!Y>47#: ʦkZb$~/1w*QSb,"t "F! "He# uƢx{krw +!~j('!ܸ^>%&&u@EWĢԩ0d+MjlXSVaV-E̞*n{7VsK 6QNްzݦCW0wCZp%IW;jt5jmA TRb+sgQP褴ͣX iпaψ¬*ڧQӢTw$V4V*;GlD)j D@vŒ0%}4C71P|hP IX79zhl4 '6MhlOFeYiosk|In[GxFL)fZ [_:'6 B崬ǀkir%NkuninBh]ûhip'7Q#*0lZC%2xz[Fܸh|2Ĵ}cl1o'I|2UABմI}֌.`;DV0Q".ꀱAͥJd8xR#a!0[KL`umyڊBZ@jt%hl2'HL! # -X4j& DpY2d%4"mF}3$Xgr*QYgPh&lZon0꘮3*6j(Jځ@hXն"$x^ll%n^a}cMƒ7?8SBh^r؟35fzjlºU=H[⍌46s&Pv%q(i0&L9&n4Is6CԈ: +;4q5EI̯ 79 ʙrtNY*+yNo(ܦ'"͝ALs&H] 2yvn%E%jd3,16fBLK-R\JDYx&PEEp!^j(+(\Hꉆ`4ʕ)ngHDЃD/vu5a!+XDq0他0}>;'_ itQF%ȩ|2a KdعҘ8? pp;fN-=1~vNyAB[a&#XAhB[`I܌z`'<\Ŷܮ 'ɖlM2`yI}M '5AtHt[y9F 3_*9G^HpnSi`}ޤ|5H'ݹ[ˉ4jv-h*tԙe3j'Ҟ;pvbs0)Lgj*Zհmclc1\KO5*@2r̖-It{J}DH^Yc8}YM6>86(PHÏ +7'cgmdMl"@[EAqc*rX09x oKɪhK CذACrNm^||lKxpYZ֣ kБ;#BfF+HmXR3ߠ!t{ޅC&厽@|s=xFr:E iCCW$'3ZW:Y +HT0ȃ!LZY \;Ctô-sY|0Ѧ{W^l,Z~/DlyY_׍[F<ԑ9$L)fV ;&9&F\1/}"˙sǼ] k>LvØS`,\y4f2~\){O쐚P?[_%:'}@/TC \^:z,`{Flt%g_pʋ>ZǺ #OcPL("oG,zIDOqObVd'O&< DEǾ߄(#wD">Wre֙Pff"}/`\OT@X 6 +lMdgGۃ:^~ +7EPT:f`P8Yn ,#bs.HhXv9&[4Cd +҉(`F6 hǯ]#6ґ?1޾*/M0>XbjÅ6o?$$cJ'mցŸ^faL?1atΕm/MJC!N,32`|?Cj1ӊj1CϓLsPSM!M,މElvii!CfթkrJN&) ˩iEЙ +piJfdx,xn I7gZ^"6gۓYP ʎ\N-@O򴃢ωu~9ߚ$s/z{~mov1jT޷,&lԋZGq+Za,6n((j,kdZ_^_愷A }:O[%($o5|KjPַS saJMǝL]UL~q{VS ~!(KֳIߜ7ߌyPfje1y^bCܴHG$NG@#ڏB2m,ֵ"Np*>o1 TA^pdoEQ&_%NS +Kjg; ^Ԯ&Z lMӂRAsPNb$MbcLޕDɦkkyqgcM^k!`'cG,.I +l&u@1gxEF1K8 KvbƞU +Ӕ= 9 UL$#&de:P(`̙䊇xÛǂYh` Fȼ#H1|ݹ6D8D4Be %Q&idcjܷ\!4 ]phdP! +L8 j=#S>ޞ_p8>\t|?IO{$B^,~:"AX "(!a~AtUSgV+[]сO-5h= qt|_v/Y2pq+[vC'# qwCރI!i6%VlLse(ӫz-.Yoz-xagp*@\ sg2~a,Z%{8oxXlDV| l_t3I~W :G9H)v)!@`6ݻ1'{J{ c.ZA+h,.!i@aUU$H\;t?G[&PA?bX +P+'ǁK,"d@A+. `dj\c*KvtnI;wjX;zXFEŎJn;% vYGW䞶~B<,[F -7=vnP=KNaڮugn7v:Ms/h' oè\=rڸ{vl#Xm*Q#^o8ڸڽޣL|oձmoHڸ݃. %FJC2,k}2nmaΥqVN[Ӄ !j B[Cf֊7?Oײ{'aѥO׊\O:w[B&{L>(o> Z {"a(Lz`;(9@\{DV{A] {BWtw;fz/:,*ũ6L C +5i8[SŹI.gY`Q-)Zq֖HG8-b̙ +4" aGy34Â$jR CtU<4dT**altjQpCK&.Þ +ukȪ[Ȳ'C\}qHu 4ш\!\HrTJ.Cf,rYJF.!@[wH͡\aCÙCCřCșTSOb!f0.C,<J{YVX.CV}..-Q-؈Ꝕa֛LW@WWx-IQ/!ĞC][j?= ,߃} ݧmΡ͞CCC]{[]$w:|{Wwpo$CZwԹ][2gb߻J'{Գ܈lnWXlB+4FF.!zDvekc+EcT&5ڗd]r Tk^2Gq[b7(l<1#>Ry.El06IK|UyDiQ2㌌I=kaPwX%_[(M|1 04|5ﵤMP}-yx$Yt@.T~-!ԧQƲ--<5wG|`o܃ i9kC/ *^a( !p"K8n4e2kbq5+9Df(#P55ymzCÿ{o |]!}|n$ d\잩z;oB /CS CYFź,l!{vrtHA~/clޅࠛMja"{fwJ8#{jwPpT4CWXJkYZ409^TCbѠT>$"-& hfMHCCh?\Iya +؇@?lQy%@/^b-;HO g[7V7R ;nlO 0Ϯ}m>/!"L;$44/' +` ]k]^ܡF+X濐̠x1l̢|nBY: k5nCn G~'|'DhQS%eIT#쪹N(/ytjQ09rshnS~b'!&ty[ieژ5S.A݊jS14kSE؄uID/AԩlqeH3UJsInS9:wD"|pStE`)q:&Sh +0t(,y*0.j:{jjpˢ|alp) >=]PeQrlCx;,:Vm iC6qh?FHѯZ8R9_wRaA{|+uZ\uZi6M +ujF{c3B'C|⽢A.MX `CQ`B\G0JCك+&xD`W.&y֌rW%P,)~( b%U>DwÖ2jdOGUZ]8g܉4Dr4xwaI tb׆cۛ孬E#D#0_AsV0*CL1wLʯ,ݤ/ʫ j73wSb/=:4m= +\\Fbdo9TW^ߟE '?';2) 2r'YF=⭵o/Xߞ'ŏH19G|B?%8dыBt NޏY|Fnk!Q-J9q?tVvTU`V7DksHvͭiMLTUQSSq̿\dO3N!_L1IzAk+.)za/\Qmǃg 29a4A5܀~ǹ-Kbfm81+<]#.lU# rvF%2ڄR K}#L mZ:|g&bJ=P~tc41萾הa1B2Hտkt,kpRQPfYxlp)w׭#5z, xR!#sSQftlP0vYPu%.i Y(O#C+Ț ^?n-@V=3G5vs=c?v !.VA3bIЮ + f.Y8h9sAR؈b}{A!:* ޿}Y' $G9$t7٫>0Z y0}L.gۡHևq#u]i:۳I h{qht&ja+ub,Ks@DLELS :rzu>{Z{c"Z`ZFõ!]塹0-żdEQf٠(F̃G+ U1+X̳a\PY&㬼GFסfKB=BNL %;3ཫ.Lf>@2HLQv/EEATϓ]8] d-|8O8hl"}1v^KI8F27NT;Bx:Q7u:3wLzJ&h^ ܤJB? Sj%^cy /9xE82i7W3C6g#3třF-TLTsfY5֦h4|q"tg:OhYmo2lNJε G5Pm( AlN|% ۂ'.)ȿ0^PܐDldZ/%%dρ_MP7#2BC\|{ED~杆|ixG&r6l̓Tq~蹜NwzN FE=da\ vQh)ۋy.wahbt%!9C7 !!!!kI7嘸^tWΜi0h6KS.乲ڜ: @4b3哘;XcSSe$sixhwn2kJGB:0L^2% &iT֪,&_]/>3BViZ,n31:`12.j(^|rdETA"5ÓTϭ5øWF[AȎp*S?Vg;f@̎ڳ:W\Vs+ߐFuN B!ţqi p]1àvIIn[i.1{{xM "R בw`DUaTyD ww+zY5.?mQXSv?uȄr-ٰ2)~bY7O# +SU$yv#q:٤[Clca!u@z]y Lt̚ +3eNs̓͵Z˜#WT+C +&,gvwhdNRz2Xeh\noLOBZUlS\G>(<ƌ\g]%^ +1x ͿZgcg-%>x}$g+LK 3B.B;A-%Q""GXIǛrzd+wa4u}}=};}=|$UΛW: Ϋb}G!ܝYX$5܌PmaI{N]0P%}*PE{yO!U;Ϋ } GI O{ 1I{ 1OJ{¿emP]{ i1L{.=jk R>@[ V[[]᠅>*+ +VF3' +['${܋>* +յ>)$fU8+fIqaf~&am0W"swQ2-m~opU}}lhS0~~Ј**}\*NHP}z5޾8[3`dt̑a6舆{vQ*5WNy4{Jib;b;ǒ[FZf]Qv uȌ>6;%C7;Lԫz@ݾv-]}Z{>|E{^ajdüyyDlVqyQH{LݝThP`fcomp5jN<$Cp=ͺ&䊺;+-h7ζN6mJyElXB͡aB<MYr~B{)Vgjĥ{xFn+gf#acp{" j58-43d t=RX_EnpQ?oRE$o1eDbef2b`$8GOGY U*_8J 2 @ +%^[UIE ͔$*`^0Uh<2NCDFGӕDe:Na/Bm9THeN+K޺f@,֑kMpiՇgH1Xs1`{o76-LIwJTie)ș%R-,jH }}@R_qJ97u6Rme͵VG1^lyR6u\ᒱY1:. | b$!Թ/- +k<悳]%:oGcHj\Yucie@ٜ2" ?\%2e\$% +_Ll %Vʳk~6񦣩@@ |66 +r o-ц[(xRy1 qz`/pҐVeaIu nw}mdb2M&[Kbae˩ "c +]Ɯ'RBN0:}G'yvtdG6=dv,psf#B-+MvvU&JL}b 0x{禾NyuT+2>e v!HMM]XeSFB% +L7ɵ'IFUsII›Jo+{~ {&SZ:Qjq8CD(Y0Q;k-7 +$ ([}#,UP g~#'r gl,z)ӥ8RU"F?-Elz:PtbSq'ws7Fa <ʳ:70aŽX`J#8 _Dqh J-F$ssFޤipLA$ ԅ-' siG8wQ +8l AoGQ8 +HZ2#C q + Z*4z{G_8<M]Oj儠& + S68mDX6eZb6eSL#=TB6hLY{B3u|TKvxvzcfKDS}i`qYUtj@W{j6?eAseu$IޯUƂՌ;{'#Yxi傆vaV48S#-VWg˕F% H(I {"q"l)gm98Z,y5~AZkxx[4xS@T etѭX]#ԐCt;*mq*{\g4 )yݩjh[x#gIyzGe1N'&DTBڻ&2cgY1S6gYa0wVm!0IF1do)%B_ch$@u-9YT}d6AS:naл1V^8{,VvI%\seTm*fVӒv u;-VcͩMBM˜(gԸ(V9+'QWj7R4RsuT1r nB <_**넙 (Esr !1kod"8\ž'^#_n%Q5)Դ9ؕR6)>vω@o{#wb49zmn#Ѳη45Exv$ɈR̢ {$rr#ZqWkR ke?s(䅙buI(݌'#A*J +Y-a jj%AEM4$M 4KpT/9lύwl޻4koަ.9AZ,0Uꪊ"qY>s]1I2d'( ^-VuAw^(mx0 w8h3eIX&dPkUxľ(Ol=Ӝ(\Qν! \<+{ wo7{$,d?r>Y3ﬨ92>/@:({*D=0Z]E lC qXӥIlT3.:o8(vwʹjMŽx4[I.ak$-2Ckxgo?BK&u#w-li}N:ͮkH F!~=_IBYW{'U7י@v@ ,Ʃ-ocXu:8Y|y?Z)'U؍h#[..3>ߪ".a(ECxӣ?Pj3{[{kbZäZ ȇ?T4XH02OSoDXp +~؉#yc(d'3|`b?Ĺ | TKuWW2fL+f>725 #6!bk $nkLkf:Dg?&@?e^G%?ar7DW68¿e+k%_\L;2TL7wA;h\rEԋPl7^fvk4}S2ml7%Қ_[ +H;ifF9AZ9|ZSDRq0(,TG({m/ms:$Wꨢ>!kp}"~EBՍlۓFgӈo'XW2°a$*ic:$Ypm "2;Pz ]fޒ;s`@8i>x=O\| Gت ҜZi |_,ɄpV3X /N`7Hp(q Ş8DbHD$Vs<È +:?AkV>Kf@l-}KXwӠ i 5yJi5Y#\tG]>"*|YѼ% D3,uc<Ťf +YVbCg5$14e~?pV=*{3*S7~^}.|}$3 0~uazA!|K*ˡ-~\vhvjymo:^v4jmx.ms0molwh}th]t9^Q/^n8tRtF*>BA.3]8gJS;|מKoe8 +%H1;g#tބxo{Hc ]!y.{ ֳ vҙ(u². ?C Pî:BXịO& 55N +وZ-{p6v342 |ENkb&(%WxOGz H]MbA" C #0F +h:(rQTی^yҍܰfxP5[ ;w~5ZnreIA~3^PxKG>&~N5fA[m*9!wҖ[a/9Ǒo878h"; O~"  o{DeL8|8xAakGXh僵}W" +*n}ܯH +n.8H'g 8Fjϳ1Sb`]]ww` <<߱ǖ'd 荠q&/K;qCҙWcNȴ.|tO/@n۴?ᒠ*KXʧI f[H.O*>T27H@1IW0%/<7mH_ mJfףt Dg{:P_J:HD\:m;]p nۧx-4-:HK282&."_gD*wAV&Mo;(H4C0I##ɓqjJjUZ+ښ&շctNZ47KHM +Uzz2+NmEG0UH|KSfNb$g /V o+z7H3IeH%m X@;n+W_fj`%8ȊW*]J&|Gm+E1%A4g^,=ѸqB9OOz +)L|Ž Ԃ<U\glA+7gͩo\^')ٖ6X)FXBf!XCAZ,-Lc|.pLG9T_kЀ>aߊLò^*#+d݂gqȮc ?^;j ^C3MxJtCl\ae3y)9ukÒ&jdj%҉B&1ބA nOJVcȌ#b~)7M&@XͲo~Y8L:PW>$ads@"R<.V%l1ݐ#FtަGGaK%/O5fKd Ə+3bP}I:،.EJd`'}Y׀EDǦMKCuEfLjj=`'sBu$rpv6 %4 NC>Xkt{aؖjog\]0l$N{+$サb!#8>f5]6 ;lnkc_x?7kuTP}RF`9M(FlN,QhFQ=T8h#X_C ,{ aܪ%lο+"]ˊWZR9o]UE VG6!04UH8(5%?JV$$2 *\ğ|(>KNOz[COG⃍ArHѥ%%mcH,nUg8 Yri<1z:`$) $C|o/=,&5RJqS#xG8\i6 +D:EShb G}g9=qsEeucm Fկ/!c%p҃W3u;$ΒD&4ij_DG0rk=y )> ~&^7DiߐҬkH xe⥻}ˍ#̀a9|wIa=ar7!Fk :}N,AL=b¿M:0δqδS Yg8Ⱦ9Ԑ;":xt̰+p~e%.K-Hrv3HY]Pz~.o_8 E^d8,z6b̭|,N?O@3'}As=ݵ_uV~܂ڎ1K.(4qm@NJJp&Oz%{90#jd_0{Y;[@d:|0G +!>S*ԡYv%g/o3]]bn-is +y ub^ˉ0f ?~oW麬Opr/O۱|F"d>Z1 꿊S7X/[gq̣S>vЃ SYÖ K5:bio7l:tDz:@pA_Eզ<`L&=dC"ۿ(DVp?(DCzv`EU8&j=8FqOpǤC'9Ѧp9tVO+bW֎;HYǩ]wOr@z@R=iGf;FX;@\ɺ7 Wݎk;xrps' t;h ~ڥAMp{>idy͈:N4o~hˍ%'K-;MR'rD⥴;yoߎ: r /{@%5;I{FKۇGS-~o +VyY[։d[x/i[<䪄S+; +-^=U +׺Wj+q74nDS;DdV ׫z ccbEsx/bcҋxbc:=%ƌU@*&մPj,E2thfjp6J{h6&´{fM8H~ȚfL2k675m>nwe5m6`Vye) +H)XOm(x)o{Ӌ^jONV#p|"흂D隴vn۶m۶m۶mm۶m8̯&ΉOET]ŪJ=re>붙a?Ʋ\C^;ph^@ )sj8Љ¬}Ȳ{ʴa ǒrA&Z.mbרfekCՎ=Bxuv'\ 8',t>e dW8DPLIP64=:o᳎s\=ZĎ0څo&r{eڡnF=Z!O>e <9A_ߌrzٷ{#%c ʳK 8H +60)FDcd4)&ߔ$Ki{v3=i 3 iԁ4-<}n,(}S"蘘>\}Ww?{w宎 T[ml0-lt6Ԟ!9@;zPBͨ}vA;ށ̞!LM- ȸ`<N꧲:ȖX !R\ R&PrLyN +]&hY҄^i^&0i ^+Ӳ|Lh='xr|ꠣ o"ZDž t|K{2k䞦 ZegVO/}ﴺPD/L`!_C <œx@#DMY#f^(;NqUW3>[m@nXWޖ8 1y^{O2E𾝱K%53բ?w ."w+d$ vmwGxX.ѻ %xԳDEdwqYb]y77r'BO#:^9dNWs؃ ŌYMȍ#*!QYv.W`؛߁ϰDF&x1*י20mgMٵ0-`o[)6jFV雩z/B׻(ߟ]2 8糄`aUZĨFZG@?hIؿGIWYvwDcIoQ@2J8R< +rkf\#RitQu?amm3Ǖ*B mmm!m)m1mt.-'eAU 5)r ۱3+͇|{Vak29c?Y`hpxHyYG>/ <\>܄fBCaf;C}X{~N`L(5 s1p](6ohp2KNEK3NH(Q"6#܀4;/ne8k6ĻE}Uha叆!H\4ҧ9,é[i;E G%^5 hw4RH8DWW[HBxMFfz/`L1l=@(!%RΔz <сTѦ-d1*Y@#,0""i4_{+!n@TBiN0+ .^E:I?iT"|xO><"-6H,ϘWO"yOjeN?o+TUZHkcC<,d9K}!vG䚹)Geï-\/OֈvA!,QtY;~Qc4M '$|\Qz},YTSJ*|$7 . P hJH20%4y˾{|#p_}|pH叔Տ:3tE2Q +tסĬ1k[Y2%Da +8rqeVE̡IHγwXIHLX3a$3PZ=6z jL%kתּ&l;J+{T/z)>PW(<ظ7 FmV}M¶ZȠ ﲮ͉7p4Z8cU+#ۯ3ZɄDة9Y֩نcRT5WP,l>\=u>4,obWk85[$8) .s(Qˣ*X+x Y"C6)P:?b 8M>xM87C4d;u|]+P ۛVۣ +CPG +XE`%&&4'2g ƃo߀ ؄xw# +cR$Է6p`yi?OxVX[{"|VRoلM3¬\':ΐiIE#MwI֌Z_.jlv8v182ݽ", #݊js2x2B";v࿞fZc`s D:emYsIp]ǴCw&s!sn` aesȽOk"|'RK!88_ZlXU{$f)qYy`?NQTՁ =D~f2ls +ڴQZxPA WrT;2/v0d$`LQT{i">Zb)ʚ-3dz%j="h!QJfg5FND tC-c11exxjN!4E'W"v ~G!ZN,8|<ݛОZŌ`_J{V'"yI!egÑICp5UO${|;jY4Ϝ.i)}M8U\j(}ȁ;LoM_nO)S[7|V }E7h 2vYڶBv=2xl=B;>~X?_Ɉq_ٌq%qK:q9,kx 5kx!Izc;I;Az)-} #mKT0#ʥ{x%4/ܳ*C:;'@a@U C``+ $<;,*XrxBMz}'Zo XD_@cέ_}U^A(t 紼y( +Xa;q(Fqyw.Sg;TL32gbBCiAzFvtQƙ[G9L̟ DdRx*"d+Ĉe +CHDPC,=C)VY뭑}5{Е_ q&U'OX\ym}E yk.qիz,|yIS֖[H!:7nD9F<G"v&&N!ʛ>j4đģ g .Wɼ-W1)FǗLXi-LSfELtvX#A+NΧ^q3E2vﮧJyJ{1˵n%\a,H@%Q׸-om5V]" +q̺\ؑG=& 3]]Ԑce]iu{j C#=.@b E̛#h0Ҭ,M['L,D.g9R4<4! bI `=M- 5wt]~%^@0B΀|:$\zŰ$ +CpUwCy2-璍3gcDS~[V9 =*(J,EomЃhMdbD[cnk܀D'ۉ%J}n68)򫆜m7m)vww@2Uķ^A:xn|jvK.F beTԟ[͕qp'2z#ac$gI1;C(az[]E_C#k Cu/j(s?Y}!i ?hb`lHdgm'lhlJi;B"Q<Zt 13 l7%;7y &ߋaZIB…39~r}@[f7R: `d(W@LPlhnn9OM<;g&M0QYJ]X W٘ @-ZVX$Qؓ]mAOOrV @A +==M0@4Ci幼H]UuAS|%Hj>X]8h`U:~Xƙ]Hu!%`qø[ +J-餺jDjnBjD %0+ENK+DZ+0O.Ė:,cf:[/@m(H-Zv907:\âƴHeوg3i*?P;O.bNGg=~szAX]dFЇ:Fc XrGnx>n!g䥿bGg56s#.] @E4`DGOnlFС>Gu4貀#%4N2!G^ʇ3y_-C$Bmp?# [1U :xh ux-ưrO(O/Y2%n @Qv] οVP`_{ |w5Ȕ +J'@78/8 $0\t<Z`Jߦ!uŲJ@ 9Ƽ2l~fVKk{crzp`efwˌ,Tosƭm6×)*wO_ +^Ŷga.5K4hclrKWN٩*Nݛ|˻9n+*^?+kGy6فO8:)@uR c4!T 'Hh}qar?NV]V|1rTm ۛ9nR&`)ߒX}wG2Ԩ7]BVEm &wX]1-.ͬWOu<ƩwSkG^<¾n\)R/ 83@בvr&Xӏk  ߺ[dVE:y&'\_ ޽IݤS1ov>d_~Z"Pl,*5@DĚn/^M{á`iyH{'ח ]B/Ao>]ODDq3aĈ31,YM(p=%ǦW1#W'kd遹[B",bR9gf89UkHkiQd]mʼ'/W'Vnh ċO%.yx(nYxӪ](ʚdzJ5hNK}2lC{+mБ64t@ʼq;{ ovD'ϘBr!:.:C4qJȠ#\n4?\)۳ME{PI],aa 4JeYwEmh|HQ6Q@IR3S~6c(Xy9vTbBJ&c[I-NrխLr˭QA43`iĉj9UIVVJ3=<8B>, s طzn+)80 MHx63 +UKQD# bW7 ض aM^Eu|){X=FqH fɈέ `7CGFC+(*+Σm(L,mLk|d +E-ɍثX}Q#/MԸL/e *7s쬭g2"f,\i*-k`dczCwj 21rc[ + "'6]K+jm-N#3cV9u8ey`>cGv59L 1I:HʜͪU!}Erӛ׳5oճ4R3HdrD8[^Qai4sGJ竿25SFt㴵Muކ>V+l LcjƮm +s1HM3MSYC*Z`xI5ތHCL-ۉcGsg 3zPTĆ4tM-7]淈M($%e/YP>VUB$Fl@NàI#1~ILpEZzs,{19#vGD*O;&EID Ykc$:U;2zda1mɹ8j\C]#@<V++2x~ +n]/ȇV2ʤ b.h(VK'fa@ʨTRdfV'w'4gΨ-H+WY,OVjMc(v䔚VxL_)9v4`窿dB+,yB- j8WVL2[-6 +])N.9YV*-Xf.QZ,YYX+Xd[䔮Tdn=kj.`xf9EI~̠a$BY; )¤Z.ѦZt)Q1ɖN>> .FZ﫦Rf?#aHHVlYu>o˘Eة{SLitCWbکyzWFg8D$i}ڍXҨ^|ZJiVg>:j.cnGc.2}G=3tZNdhT8c(D$%U>*HsWАI5y(դA($q56hzs(_:Z*GĜ;9CVZ rn}] 3Vul#$gkt[6zZu2rF1+ +C,eQn|m(Ju+to㺽嫡X˓(b[.ZbqCk: 2(Vijx0`S嬪2&Pju^ZTU 3CExt..wyZf<:'3U!Qc{ؔ.qS@"en4v<:9XQ/ eF^vVH܊Vӗm?~ +0,7.@)k-ڴ%wp_*I*Kf7͜3~Y{7Gz= V<0^5[9qrZ* YS#R)]j2믲ѹwu4x߼گ&?Q^4@MetbKv-1+ g7>$?Yr~ۢJe"O^VZy<A_1|p]J/~i/5 eúؒ wGr.WCZ.S8|~}NYAi2Ͻr2em9IdΧ>K'wPhs=xhnm%}P fm% YY{8I'1phʲT jyh+Ʉ^zCع` Cgx9C|{np#{y5ug{* Pm ۺ<MjBBƯja=y ӫ@ϟ7yfC%Qԩ_,SeNr]dʾ!w/:g 'E(}O t;F#vлw3j6UN=D+GxN[v%ewhW뙅W֖shRtu;B;]uԮJ6@)g,#]RJ.}A-:\ PEp)xVB[ y#3Zk\GsfQhk4c !4 ++x/wM_ vJVE~@&3SrQ!Sx%xzi'//.\7~?ً,ұQ rA;~)h?J?wDTi2 '@hiֽ'4ĉV6I~@mk*7y E ؐ)PlЪAH'JW@{6' =vbp(?H>yrD ԇln?4V(M?w9@ϩn.5YK&o +Z4Gqy|\AAB́94eB)G@gY5\1=T +5w-MVΡeوmvk;T4~ǟ41MX▵3;RM/.'N.7#W%bb+39ѡ,1A E6Q{%wvȽC/%.3 krϟHWRi]r:Oa7?fb1Z7ևvE0 ext 6 J Y|Ӭ]t*G,`XՑMŶ<ֳ؊n#;$P۲K& !6hF9'B g\%qbSKVRMqL'ْۧn'Pa'4 \wB&B ;eu1ߚNB˪k +~GMm]~{(&C8.!7/JzK/z/liN:.|h6\lf<+灭 K cȫpwe=vGSOK٨R0|ܥccLf#UWe7/3pWWTNPn鉵oaw)vN7hg&ayzZJ,qS6q66ٝ04)8.*vd4SDxFeZFi,Rge?J{D:Ͳ-)jcʖWvBD2SXbEdziXa5N%v@Fja:eGIR4e?$enBJAgSuu YIBT`b4y#,+Edv&-CnL{>3Nu%~.?ooSG }j|xV>˺ ]\<AVxi_L=(ْ~{F_āX9Y9Z9]+]/|Ew䩹M^ؖ,}*O.•_.]o⪺UV<{ +|,/Zȋ-I{T.)8 +m HhYds/rK:h6³gqDM|O9VH>sHホ:sc}Wj݇PžJJ67KԮ +3W: ;s&$(PSݽ`FŠ)] Sc v *A;jf$pSOA >'O:`&@G_NK-< fq8 #B6a|cF1G)6{nP5AҤCVa%3ańw,Va.PJJFFEfB`俥mFM,Q9&SW\YDD0)4v#"Goh=3Dcbyd+8B# ~̝WȅaGT@WΪ2iZZDöhVh6nr$c'-JJ +>Go&;87Og@7&N"*LanD+!QD%mpn Sja=6`%#T̤w :'[\%܀Vd2a^jT3S,,8W\ 91fǺfY [r{rgV$K56tKQYJ&%D: ʖXqQ4PD z`@*ҖxZ]taaasIfÐJ#e S1smi^}9W^Iɑag1V+z<{^Gw l0Q+!L0(rY>2Pͮ,9TH6&2V."ߵȕ^r20bれhU':T+6?E9XܪB҉bspðUWI(E\7a}>|ðGDai^mPde)gZlhp"db礠2`7t悳Pa;ףic,iu^T:]b,~ ﰰa!0/?`0̍  ӒZ3^Zi_/)1p$wͮd򆏉-:k)N)d&7#S H9 $9:<Ќ#S2 _Y:e{yr upx**^&Fš%vCLJc ̈+!4r0 Liܧ`seÐ.!V&eǕs*ӡyJ,nբnWQBx7<6X6-8~VϏ:`KX꧆ T/C1w(x:Zx+JQ!t Bu T0tS\L*$D+rCX ^'])bWc^iy65AD|H mGtBy@E]޽/_,t;dtR\!sԖ}ʖJWL9[gT݉tu)wU1t! mO87A*MOGēj;lTfD;ƟQD&.f`η,i{ђ&˂1i:svp~%Trk$Nn-Ś')U~|.(kE)b籋-!LoT(>3'V߹B–7((>J?0R 8'8fF_\!bQg:]V#w07Qy{<ңpm#¢&83oHaQyز4"2@Ə +ie;rZ\ +xFL_:Qy(^C>Z_<hTVi4"xcwuwQ2&Vc}ts]?lB-XdX& 7J+n.Q"4Ȝ' 8j-KRb KE ۣ؀Re$X/^ma80+ˀsy1*9xR4.MytQZf{^ye&ʫ `"^wOa9nW b;UIA\)UIA^Kl/ 'ፃy;g!:/?i]Et͛$|GYRɃ.tofG;1Nj)ʨ'~%۫u<~E-[Mϗ0/l6\݇c헓'ìH!\1'`E0˲{qLzq@p2 Zˎ|~P밝d"H&ݗnkh84SH`q4D5 r#1~×muy>^9v =80'Wϴ5S}VOvhb4])kkz!DDY{ Z~h[rC+qF{L=u\% 7`;g؎ֹg:y!g>]+t"3䝂ѹ8 o8=CH!E^ތA3]O:HݓsXCy@WϤs/E/~27:돘L^E%x^E3#BVPg804fg3yݍP'|,q:wsST0X=”ol>80AMPHpcCA8KJI J4E93pˌa49brBOyqG(wRy€h8b*\3RT2Iq9 bx^ 8/rb.>ğ:@Ras_6{XoȆs;@ԜaC2J[Җ!K'ۖ,|1溚!(Է+.l2PF}I jyt$!gf,hQeHKBx ]?/ 0͵p HfĖ +ig‹Q2E?lO+|ru] EP|ؾ>hdm~K +Z{)c_@80ڐӚc9ҲK{Ak Iu82!ZSϫ=>\O;/t5`r?˟gxI0|L2D%^v̹=ʛrpd/;ʤ TY`+}؆MGOh9nu+՞j\X1[R¶%ftj[pq J'.tں` Pr?8w7BwJcps¡ΕTw0ͲЬ=zcG`MOx Kpm'1 mYɖ'yiôk~~=:?vC( +D2׺q4V-a'R_\޲_ꡨ|BxǾ~vrԞ?BNayl[%k= +L}M6d&ht{(42/F_X +o3I9ã}/R甙D.fJwshfV%Ȫ3g'1~;XQnWo(w}*pG +N3a$N-ǖ,-y"(3h4nnѴ3, eۛz-W}w;}nYXG.28i.- fXr g4L=^ڰKn4Iy8K/yi+UN`0s$^QP1yZyG"q8M5c(o휰!I@"Fv@-PNo}4`z82|-E}/\͜g'WOfezZ\u(V׼q +UvC;d9EWJz zg7^j~%%)D߈0 +ůX=qvy1KTK&]EB)÷~})p.kՖq~y6S"ɝ(PߪƬxhDIgn(t(FXbP^ +?ʾ3T̹~WB"6N xoxGڜRN-$H~G1+q~CCy_2jO"g;tu;^귓%jZyVdKqEe{@l˟`03+LO+ѝpPMg?SJiB!ٔE]'זh>VP-栐 n6<վIlp*;۫ށU&.c![{g%gGc]ICVDU׊G9>J4ҫr^- {0 Đqef 5 I!M@9l.m@)X.O!V˵hȲb5H< 0 (d*s݆yMJuIeiz\;q_)kP+VA6JLuR,8ȘUQ2uQTW;sD6 F||I Kh6)A-僜rHs,G,b'yg?l3^#j?GNH*2T=37dDI}`fi'.G@L?KA?س@[96k4= Q-mDf9Dfx;%BE)ɣ^RaxDa9Qϖ j0πp,hEN˙t@^2*hBt.&ՋU6Osʆ8 {W4kkHi !p=֟gu!5.fvBCRM Mw%dG?,NmS`?ٍʌOD3Lm\K+(Cc u#sqEEyd_Ms.y~a=ioS{L@֊@!÷%кc =;1n*'FpYY >"nz-9!-{ONk,h$)}/A_ +=Oy(qlV9!0Ph&\6?[}MW8h""_̽0<2֎4Hp_ Rȸsp̚TWoQ DkVɧ%dEGn,_ sIcIELͧy7PV c[0 -=ӪɥiF4MFEЖ|QC(95QMC_T3ZC? y0N>O~KMFúȪmA~T@3y@)+@r3 +WLq|`(x|JU R~:97.yrĕ)XR[Z簞im.Hr$}=l_^w#Aöa9H&q' ";CӪrÚW]wNƀgWO'/^3 ok tW>b~_s+/l.Qk 7ڲ"Jc[`a*<,+w"D|ڢBRڒ6G2"2Nb%M % LLxU.z~xq_g%) +)NBqVK;u|-8K +҃9GF&da|@Q<"d&jSŝ&sO7BCpn-fal% P3ؠ;MIz$CNݛXB7ͣ9?%{?#k M]!< +EV;D䑘#` M~4/;Vcr%=.T90S~V 4?!>؍PCS D%lLE뒶;TwCq[Q{Q3qíױO +;/q;l!tk_ Z،1 -!sK~>S 1zҜ-1_Ů|߱֕ tc; ؖY/*v5LFÔepZrMS@ټ"-n^a 19V@^So4f +ZO7~̉깎E&}^E%_V{];yw].cjMUnD2dDo1M+nͩZ ߉5曦hi?t3C⑯:c!:­H. \eE.fŎ낤NC+kCݭl67-!16 &Z]^UXI -˹YPsANk L,iEhd&H+vܺvlLbeURAuN8}3S+tƚbM:Jt32&lRus +^V ל>~A:}MXĦjJ*{LԟCʋ*]kW6 K!4#-xL=c.;&L$vuj=.dF0p!=`AYHzaM0"MɮDfSA`eœ)Y(UR Oߢ/VcSD rZrO MU;=.K"ƶR͘x9g nolI1n.f1=Y.#^>XK!^sk g0^M'w Ӊ_:%='z> !z +{ptᇡC(Wx[Ja%^=PL'e1N9OS.x1M:t(zwB +! 'G;)+j.U&R̆v9iA c2-="ՅR xT$H IwD Mh2 S̶t3Y zЭylMd%.?i'.#H BeK;aՌ? ' SY^YK6$'LoVa .;7uɑ:̬[.. +Kq㩴NagTY'.ƛ{D"tgȵz]1Ĉd'vV9R'%jJ +'7ίEߌmk3MΘIBڙ`=E5)c&x"z\7o `z2gv839@#d1GξHCѐ"Nm%04c5e:z7,`֑qawVwՏ'2ur|M ~Knd6L1ic7@c}f$/ r +EPc9G<|2|#M]6)"q '&})B5jej9wlY@++5[Sqzky(Rn☢ni +=@cb +h,,S9fX'x/xwA~KxNwq\wfy'ef#p\g:Ϝz*Sz! +MbHe+?ñ`D}3Qa 8 8'(=u+,+E,kFKhL;Kd(Y3PiJsdW"C c—.ؑG,IdNz&Twׁ,)U#tr@5LUX|X ͷ!lTĮLJq9z1 osq gIomSf5]_~߈'*^9`.T\ԡTVk +PY)P[s7;]IdV)%vʼnbkp%\ qK7EFf=zVv)+9_W,WΟXUXJ9P9(`@wAe;en├4FzG!ԅ.8e5mM*?MN*[(u㠙^m7)^<_RaE_3&%< T׃B[e20(%a ձ[;:YfzVF{qAf`htn o,,(sA1;leB;E V?}$C[V07Q4#K7OY^[UEU,.;w`] Hatmc1rTQes*f+F5%z z248 +_:5Qr$I܂@QBLG'ExN^P`: LP(a ¬nEl& $Ȏ˘g"^hΎ/7ޙ˼>zg WO|9xv= 9ٗw0ӓ(!w _~ܛo5ғwA`އ鼄xke7UgO-W8+wS-g7Y +4_8%Iݩw7-S + 8TF=b99^=$PkCP9Z\2kHOʚ7pu'UgBo8Տx'nR@Bڮ@ԛ9OXٓ¹oǟn2_XdcOasik2QұʹƆtDV"l%HkkR.Tq mYٗ{V%0. NQ`1dEx\!~{Cs<))w#QM$-s4RCE\@?a9"xlaQ16>/!͎У?̒ʥVswU:.Z#ۻ<0Ew +>"EQfܞhrQeggOMО]'w$Mjrg6 R45BifR-rQXum-)j m[6@nm@n۸#h ]cómkź3^mڴmbY676s_6{|?{~pM^$'Uz2R vwc䫘lb*"!w3hix RPOY9(ņƙ\Oa(Րf&x1{(^TgKm; Fv[ז6mu/| Ya ZbX!ﮕ{\ `f=iDJC$_xָx8_ǣg㄄ 0Ѫ1.w'B_L\|[o$bPy]GJ'wҸil?P1N!} E #w}EhG꒛ނj1HuV+tvؒ1ݟ=E#u,֎/x>`lP4x8N9JJ**{?}>M>|:7EqfT=(U-|mo-ن6g][G7l7,^/TV"~V +4V_,ù/.ȸ_%H?I"!L.xqmij!""v t:\B.x1Ru W?!66)O8;TTse`$đjD4ZH=MwmKMh}|Vڐr5YUMϒ- ;ܐe6@F4ݐ6x| =ℽr_j5 ;u;tH>6iJkt5ؗr>J"i =,I\hHq|'B;S簕|1LNiu$Vk!,٪~KQ==Jڔ%Kybb"Ox^JmcI]ahuhu# M-V-, 6vKɵ_EOӹ#1}XB%B mBY6A:nqozeaA{XKJ.ԙ4/78S#۶^o ,wY$V3s_ya;\@OWX'7 >r)a@`pY,,8Rbrq/CY3I5v(tҨm%0qB+>|ߗL! "-l-g[Ab_q ^CPӰ^\0SUSp}۱bѷ +9|l+]'"rwJ-}ȵZ7fC $UD폓.gb\6Mq>r)zaճHADi7H'vՋbϘyy$gw梐c0[0˚w1 tǴw:mbD}: +2''SoJ4툧'#ǔCuŵ"՘q's{R< +YX7iP 7x?u:ΈNbUg42؃DXxZ%j?G=AU`bEX$;f0)˙Ywx|%" +U% "埠&/`TQDE#!F0J& a@ TWbHD0+ 0҂R+[Foqi_zx1=fŝE˱33lah/ }|xBfE\ÌF? lwl>;4W-j ^dN';.էI+J,AHV5BX)D-Y Y^ ,Z EZՋi@+k]0yU1` Ӏ6pN9DTb= bm&DFB"9GEe5GΑ:܏ Z^bIƂR/39n絲sl`¼=|LHm0mutBľz`h\$<r1ah 3'BwEQQv` Dbf }rd],Ą#짞swM"?1Q*o\tkp1D mwFqDwāB!cjԁQ{GobbmwQwt]wu]w.;H4;h<oDqoL=oN#|7gK2 +]aǿ ,G;cvZb1:ORO;U?n9)X\HHR1:LUr4 X )/|jw&~#j~Pr>ik>;^@.=4b֤bUa/~ mw,8˖O`ĤU6L)-Հ8߆!fQdbPȁsM( tfu>.Tku qL=2mDl +THts=q^q$r-Cgid"xV~b/Usc6 =NhaI$bM@;*(c\,lj,DWHLTbSHb寡³L9dRy857`ڣW \wX0?mqV0P疂wͰo70EIܘ,Gfs_bzɝٌ l$N) FZ7tUlR8{-aC% 7LyNMUVFUU^A ! ?ܘ>Q@: 4+? +9ⓅDHq|UYL3ùB\4ec8+L¤qGʐ1c_F)Wzyc8|+tL)+)Nf4dR45N教#W̍#Y ,}{8 ,#ǐqiXִq+=ǀq'XdZB njqtDCi0 }qc$#@R/_8KoL{ƎT1Āhoo7p4_gGmy3A[)d'P%ZHgl  ۛ%RHЏdZ To M;z ՜nyf?g[Lo%0&,Mق;qMsPQԖ*r׭^m5_Y7tӀƷtpzՖC6 kxUj^:.qil:x~<6o$\YF`);t#R7.Y.\TD7A8^㹬QAbW10;3+V":78R@} +$x!DrR'7?Mּ=}p5 STj;!JS):|{(ٟo@19뱷v=ADFȵⶾkQ"2|УQTIbhg<3jqc6j odq BcG ,Q9*1\Q(A]'7vX9'udMP,7Xprd{lJjFA:B*{*BŅJpu+KfKWϓn|Oמ Q],3^'|bp؆UEg^&ԡU/uiu ZZJLHФEtK͟aD0{]=)"GE= zu{UL)F#SguL힗Rj?Z1@' &~ଋ|W㬧x6PC gz65C?&W雛^^xb.K,Wv#Nie>^-HT4~4 V#|Yxb_Q;'&t*QIx>3Zn;ީ +\vF$ +2.Mz:#~@ETiI +, 93Pn#+ҧy 1"j[8&S6f80s~4iGfz p +&41\b@OTFc`aO~ڛ {1SPq/뾨`] O<=n,/QҰ4tXE:th[^`dhL401k富iLD0}c9יa7$E7ojrjʥl'#Vwk;Avۙ82~֞M @1M"?,ètq.1SaGŎٱNM232-j$;W$ʠ*xP&-, sc츾.!B%$"h +DHPsn[\]fLaz B_F3p tZE0UBN託,bk0u5oWR{(RQ/Q h(g1ivjlRx+_Rkyn "$J(הlo.W/1 +ۻ ZL=ZPo5ZVUcmSZ10d=nρlo szw&þP!r7r?r9e1ɨCZ1Ŭ>=~Bu|zp<0n>𘏄Dü;l|nt#I6GshmĎx{x|7dsV"2 )f5'2!6Lrg{e(ϤY(C{x1 ŝ R~XEVC[X3ʙWx:\ym!t֠Az9o@rpr]9y)ΚPK wOYLC Dlc]ge7C*23X [)#e +@vX ̪Af1 +U8߻&ҠJ!&VὩ늁1Eԑl퉂}xeɸ!DBt#=!n=+c[yDWqVCv{ ^J lQ\^X>h iYZ1Tfo`qn?v:`ń|B{o] ~ #cJUyz1nBʾ~x$tZ 'A``0d'CLdA +}^e051#G tYM4B/8  m`1 +ZWZMyK1tGzKj 5DcFf@ p`TUW?yҬ=q2M{?aj +fWj5x׊5liu23\|w +x2ᆱEv|?}(=!ųۍA:klGD7fFhoCqiX|E~ +\>e5@%[1ϊp[*dsPp%Nj$3sKofȩZEBM\wuuteeFUZBsȖF7N* +2mPRvOdycHχ`T֌_ۜԮ .^ǰRUrxk뎿X:\[6fbV@W"+`c7 1Ŗv6BZYk;;}|6[bp úCmQǛ@/v@;.tUo3nk!۪zĈ2p&&4ޜ=;RO畗gkjL;cYJf~S?RV F+cwkוoM8/ȶG~wd$%NTUMlr tH[=>!E5],j] m+'Wp;uт; }rMJU{3YEݹ)cgy%vʲ YLV؈襊6H*xƪ IZﴕlT#fUZΩ&1i5PKy;:ataJBo?nm:HR&ZxLyUg#5 Q*Q¿|DN(W{>F hQ4coHIJPvBcʚKir,L(i[ #\S1Elp_a>Г6ɤT߲{7ݻO;SI?$b`Mwš#嚈ف &9CA'\:Jk3.2ۓZN. cmQ<].N3Qz犕#QĴ%SO5U:2皚2k +:r苰6ZwFѮti, HZRJRPVR(`yUs3ffS}\8=t7Dn%B_>6۪ry 2a$]8EQT# Qz!U'9ԯxEb?fK\w@\`AT֤#Bz/ma{Q-Y!7SqaӮОs +>r-Mg +{im_G.:d{,J, ~EᢙC~aŸ7-!ЛR~.ʑ 5c "\F7YK)ukoh1θ,L%sB2(l tr?]h[p^nGL&B]eM߉ Ƀr{S8Q-g4YRX +qķtуԌ{MC!=ј1`w%!t$~'K,I%k̻d١MkmIgS!y"i}NAtEcrB]qZ&YY+JUC#xJ4>s>_VfHK<5]7aV`aK떼=>Jyu.Tc5Ju/3H+ABa*{c59/EЭ.bjL;lƆ@G< M*QcV] GCa6F!of+wDWa12[~:Ƙ9XKJ@|]:(_MJqjVٿglm8|"3muqف>Q`>Jd%Qݘ̸,B+W[#G8:F$C"p * 0˕$X8rTΈ|0SY"0[Xk+++T,r{'`PiSE .0$.Y$DEǠHY@2PR 3xKړ>& ʙ´Jgk]sWgQM.|&tKo>& Q~F$(:*-Cw[UtJCGjn'._('o--]Д*kPPAK6<>dj߶ݔLU=FČ [+i*RT֘5S*xV.``hW)Q]TYCj--X(].- c8u0ʨ8+^9b'Zbf,Q6˜k.hrzDw0Df|fig h(Xlə p֓j~B7IBQK9%Hc,=?QB}xY ^MvQfi~xU ͆“;A@ ThYE-4vɞE.S +8ݟu7PETH0k JVjШ8ZT b,N]^)KsK|{]o-Pe uEYIH..FgoV_'NVԔJIJ7O˽HuQ^*&4KJٛ_w͆SzFEvj,HY gRcf'4$xSr{$XD4af1˘F3HD&}5`zvxegB Iܨ8ed~xsfݹC XLsw3sxqwpT9K)HLI%*ј0М%DޓiVD 9x~&֐ KW/@_0[ыgJw(lBTMwqBPVM7,/{X"_(nE+ܫ lkV!h)Wl3ӎD@E&|7/KVX0XXD.ɒMˤl}^`H{lU /RgM/Ct喏[!V:]] Qh,IͅbC_Y9v1$D+|A].l# q-c/M!6:Ф*HϢZ@!.4$LG1|.$ҒlGKA|]dui ԯ X϶CoaTUb# L%7y$MGhvLBL I+ +<"@iFYER"v&l3*D*Y(DrL{joko]LVއ[G) 3t V\] \ӼGpG(5\S :RV?*f j#-L-gj]Jl}!o K Iՠw+oWWѓP# ZaP6P@H9~]>=,3gPº'pRu6ٖ~Ӵ7}1dOI?O:]U=m3hhb7'vմ~|toկ78B0>,9Nc@Jt)9Nq/O1  >DL)ytphWڦC>6LM8;ztyKV:ZS3u + ~]ΧN%@zߢM#c?b3(C]<_jMLbv]翄23/aR~ʠU8,4^i7'}$^&U݈ E+sp*De@3ѣɢmFS0h Bfװ𒡌.\8tSDqHgKu^)nȞgxHS;לOϬ4ȼH7QYDۊ^ +-$aedu_t%.e.SRӯ}=٫ǑkYdeNl8)7NKv.2#{Ă*JSbW3` eQf.l^], Ŗ&oqtfI4hSS;ol)B\Er66@,~XIevܶGWmR(t1ӽclꯞs8SRnjM&rFVEIeRiE1bj5SgH +-U]תgsV#NyŶo8;j uѽZpw홫Do +O:f%X1s˕S1)"qԅz%i񗭃|j&pa 5"֕J-q$~ ~gĩgzi~|(Ƒ3ׅLEYooKC@ `^MT]jcu% k]d{{J-}C{Q[[gVn]IV[n7[ɮ?(Eg-a7R[]zxKzŸHea#I_khf"_+Ttk Hmuazf-m#Лv#Q]7>Vq ,}゛{%٥?$VΔ[.qu+M'j|_'>ުwEF=~uSK2u:^] b&'=D墦OPWzo&Gnd&G@ ƭ.ºCd(W]7!!gV'=F9 V[?X&;P..UVM)q:;:p^ȣkZV׼xH)4^(v4OF>-yy;uӦ"8<{9Ԥ.itkL$@_:,µ,\CtB*+at̟+`Q+,+ |h֭+4zT+dLLPe6wȑ$u-%-DW.Й-d_Uv&Q ;=%ЮgydZ@;rqgir=3Pb"nQ 6ˡ-^$F^[f+iIcٺGR.GӪHcCU١mZŹLGVE/+N[_UYotiF- U%R,MR.AQ, exꏘ2M|PiٔFLqeY ə]+BӬѓde ֏2T$nѴ'i^S,Faz>>I/fn i—vhh.ٖ p3S]6?g\1b]Y-2@9YStNIYL/RJc q/0{6sxVզP _z6;Mؼ]|#5lime%EU3Kkd-;mYF@XϓD'AÝgz #QÝ^ ֓L2񷜥" 3̵Yfˠb4㕡ڙ]fO|ͫ/_!n`?8[JβO$czQ2RV9X3K۸+,We][_ED3Ηl_bK"O{nTFJes?bbH A[?ؐs[=|b/r0TsY_,ܒgs/Nule]aM- +p8+В9 W@WqL? ++`oDi6 6Q9g uzcUNDD6_ѫ"On_/5/9?d"4^z:O>1ջrДR4}i||{c``)ޓ|# CʍF `9 +A=͉=h\{SpTҋ>8 em /,,9K;XϭMךqkf@N))u?s@^~1I:wjb딞edftOA bȷ4A&[nGM.b8=3JatVw%4$v{hQ7vWX*3,1FJQkZxiହ~2}1$Eaܶ.RŒlgH.z2gl`tBT.BV W4&"_A+c 7]1sHԚzrcIgroS}B0ԩj>Ж1&h{$I~O?A38w'̏*Sv2c蜃3S$Tt OJG|gtmC'%?>0Vk +ScJ"ԂU_bϤ jE)=5z,\K_ˌ2tE0zAdJdQBSҕo\RnJplOV +$UНNܪUa֛=k)3F϶7eUO0]@MmTls7`J\o5H5Mm3[y+zaJZi5UzW= uG +}Uu{-ˌi{|9Uڷz.艝-Z9&o*Eta)\?v!p D= nmf =pfp6aQq+/-yx執G!~ =[xI}]B?O`=HrDg8[X J,rbG(6E}Tg矲7;0A.%BoKu2T%̏Gv@l-a%YtOIϔf`vApY[jܣY/"s{{'[q3ؼXۍh?ki'Pg<~ٴ+iB5̓'F%;ԻVԻmFEf:gN=#6A*{UY f@u3cguK<]`p!{ӘQ ufe4m7PKAؑ'7faWQe ݱ!y1)P_GqD!L7rV^A=u1sLO!*`% @ +GtO 5=Z;?n%K;jwrƂg?|Š|h/=hŷpWq<ú]o u }<(F(m.amti)2ј|BkEDPH$P3)fc}/.lu&mpu3Zύxdʊ-NdmdP|CLn!U4jmvБUn.9"Nߛ-.)D7.I2rEh`)nNEшK32ZC &dgÜT[h֕=gl'5әJo3Edgfe+`hX6r_HNAj7ru+rɟLvf38?ufCMD`it\̔]J[TKp΍k7w%ʖ%!~IȹyMj)n1Vu}3)-aXƞp]k!xf;oCB~T͟  i=v$p%J1O`ٴyǶn5$fT\F6=\;^XµdxR`ܛ;@6HXnmdn!x~׶V5M:Q%agEsqk12mQcYLF|IؙgZ-]$:rX,`6;Uttr:kHI{sdZu>%s^6^ra iT4ƫtdx>7}0l^(:俎DTjI3S+x58fR(r_uWK#NLju%q,o#2o $J1N%#g `BkK:P% 4Ư!ܺ}\z1+6z.iݴZJo1wؤ>b{-ܾ,xN 2Ogzժ#Kz,䈤]$S2 w@&ӵnL]M蕛̦n\ۣ1"7n쉥ml?rSPǪ C=F/Hߛ.元oT6Z-HB\O-]lv Ɗ]=/^#L S7jVP;O;,M+9*OJJogLx`u13#1:s$F> ywJ@i@wC{ +zcסSY`J~<rInKd)^҉,9lM`ż<sҀ;!Ly@MO[`#&z.jv\f;ex{{sŤ.WO\u :M1PIV ټ7Qѷ8ɪf/],.&Sm%DM8k.^fcᬼŝT8u]B&ַ/< 8޼W# m[Nz*ZΰKN;hHYF]Q%Xi$dU L?R1hPz ӸKmFk'}I}qpEJ ^7Ry)(1Иlx=Hrϴl)w|P} +? =,4ڐG{N6ϊPj%F;VMX'$K[f{N{,6cE6tW:Rsp\*십aT2heSǑB&ޘ=X+ 0j%dpN-É2҅a{uGblƖWt2ΓU|y}{!zקgKdvm=7e|\|دpĵ(hة+jmM8Gh=k+%v1mIiY#ռB:0؃;8uEL +cKhU)B;X$ +bfNfNf@P;dH.A3La>ռm>e)0y%5y; oM#O߮L̑7 9Dgggѩ̇xbՙ.;8=u*2^qbIq_ nW`ұxڛݥw>?Zݥ.B(S+ovk9e@@a$6#@ zdxHɞk[jivҵjjW#RAY֨جTجִnBb~-~xeUݭC3EXc"; r B-y(QF2l4'-{qF3 mM,q +zF.|d'-q8䧐eq\2OÈ[Yev)ka~s$)GekSڪ~Q]TYjp]mQh%c٘h-7rjP,ǂ,oN|3qBu:٘ArTtJFJx8"zԺ&\~ds !`Je!s!A"t'%X2RSПt4|1z^Ż9DF"InHZ^Ҹ#ӳ#&[jiS"KfsqKlp9cZ"=u=S\[1F>2Y19P|4VO0+:ˈt$i" %9gR!aQC6u<ܵ=,T1CQȒ +?܉Tkvm4jp +B{?g.iW Nnb#j]l=B;s<'a+])BW":r\M~ub< xUޕm;a)ك5^p:^]\xWNgumɯUbQ}/>O[ ]Ɇ7g5!Օ1tIO \$Y6s;Etj]CJ2 +6_Lic!yj.rF!F" ΐW6|:IVfDĢ!s沴3F&md<| GLʄe_eK+b[ۨH9r2]j2] t4Ap3OJNz}#{N_G\"USpcXO[e2)='lKMK䷼mjYYzoNA +0Vގd/gNmWU#)&~R4鶗JX:( Dzsrf,ՋH5ͼRe*9cZe,WU;T>L +=+Oo+tleի]M~ 8,.eX9z}SUoڞ` +JΩe4fN`;lc0a +^UfJ!~Ak85 oiM= g Ί.pV%\dHEk7o`|2'NZ_dc!>&gk0rmn?ѧ1DAv#0wK/,|н<p?L" -–VB.$MsQÜmCZmp~"kZy˱vxws[ %M-EDU6fu\7Y ʱP"T5pR1r9 „;gD1}Q%swwodkwbз8]O ݰ{VCFŻ!bw9ǹC vۜďCqػw}VӌHM%.tVɥo Q"|Ipd#R{^"Bݒ +W9uNt=i:(b)<6%t!}y 5 \7 {y~5򼪊 \}l ^_buh#v@5 JWVN>5kA~_ $H*2eksh4%,DC%Ǘ# +3 )r+,J;P9pl Vp9?veܵcyGqۧB+\guԷ/+E+H,J4gIդF*P\=P"̄=r{|l颰jWlg%>uuCѝ\."j M ݪ59yTW[~ǫE}8܈E~HVb, ^BS0;ֵ^~WPGug$Q=uӱt{ev[D,9SL.BY w m9i1Q9لڔt܈Q>YL3LJo}k @wS=%l_:qRdfMyMɏ@!Y3&M`y>bZfE̱v}}sg`<ַ?{ngWz *Ԑ!da8ck X cpp8X&Gggۋhpޅi콇⎎SW[x'+I;VGTBHS*$>sN=_*c)?`kF4Sw)1@P^ w*/a֠Kf$TUW2s*6`-ISh>sQV53HO4e 8PBL(8UmT<~z5F2YV"uk2қMT~4 ̕ `rR8h/ܶVť6ElK;/FOɜ,%}J2j{U?(u+_Cr )S!0u!^ X;gu/:a6`>4HʻL>i[ڍk{&2u!'Fb?E4l_Mt u*\{hX=s$[OƔa/{&Da +kZD@ #x`V}%/ CTaI)hP\AADwpx\ٸ6CMESyh>cdG0Byqg'HM87: DHn8ݸ舥 7]s(b" +Z΄),ѫRK\~>~eٛ-b u aj3qp!MTKWj?T_lHT#J_֭"۹ވy +#0j 79rHlP$jqv0 %v5ʰUW>t,1 +1Y#=+g{/]f[ݧ8Vswex,:5 +Rz/'!cLseGI91~|Eh߲+J&525,h yMl[EfkMy,띋21{Uw][~#&3r[lܨFMMY3n~vn [i? :PY0 @[EQej&SסRбRUxJHTZסթPlָvQ4ܰV-F+k8YrEsvx9Qٲy#DJ q°ٱm#֪LprYsswmfi=!\rL8Q~ \:IN0u}x#tL6ցqf7͌=Eݲ rF‘oH`SR4PM}tɮ3%Kl[2]8w8 cLz87dtfHc!uVl=%yT RZQAY-c[UbBs!haNwqh s9$`&R' 0&vb9v S2!'[SâpMvXT*'U7>QZFD&ɓę)y8',0kIb;X묺QPnL2 WZCg'5rrpWRk1U;/HZzH[԰לtkYwIrEI= +bN. NOEK fN?{̊vJr.v|șw/+F1NZ!,+wtOu%娉;Lދ4b"IE.cv%9<9j3^Q~i1hi/+CߛM8jG6qH?DLJo)oDOU5PU&$Ho% z>1T&>bE4MEAٵEެy[)社|(NOh@@?t &@|mR~ '~N 'Si~/{p'6"--@ir`z3#(){U|,BЯyF_E4)#zː~pⅱ#{Efzn z~|Ì}YHml73B޵3XΠWQ`{Af*oäw}-*e!y^lfhҢr]̤V͢LK, 4LIU > >G{]fq]`ёnA +Z(UІV" H +h.d8#H~{!*@qw ;7ChK2զޣ%+JU QM(@vAI*|(Ԩ˝nۣ59O94+"] 0|&*VaV$M zR-gRsRs iqQ=Q#6{e 53P +}fǞDM(gꌯ?UjNUkWwU廳!(Lys1gvl>cl'ʼrwۍi81[خ\-3P+DJ!^̰u+^v?=֍ڽrِmЪ4'}4[ּWrChzK~w0&ww^1B2yEEA}P%1 +x9%yw@0ywFE%8 삽C\[;KQ%SKrրAMKouq"N +4!Wfr%٥ͦ^ t#Z5?. 5EQS.5%Sz ^r~ԁޕtۣ;mg-][{sLrVH~U5AYge33OQܚ*{|4? t[.wVn=ߤMAi[&\o&M#n\YVy[=mV:0c2+MNIE約lDҽQ_~!NWuYS9g,T2H}lZrE^}YϙC[.2CMx~3DP;}ƀb t +Y )A+slDq:^AaY]!+"ژmNGRua(K^.IS)Qղl1m1BaYiF)ig ںܖY 8lO|xGԉR--ϋ<'V +j 5-%oYOw +-þ0팰-[}v*wD -Pri[pbɜ?;s ;Y@oFTS9 "ԓ9P֫7j7|vKAB3ܦGbp!%~0;68s/5)M1a~TU ?ʠ:̅,Uu J9eF}yP/.P}f|f\*{4$@J)QqFQC&K F2J$şG4BJτ'/+PzC9jh$j; T͊cl.rSifӷ^۝ۮ],`z\伉 mq>\!CO)B*Q1q0>97:OA(7( O|딻(1MS/ɑt f5{etQx(1NI/5X.>~n-^X XTY{uUƚ%[ˤ?*+Sc̡`ͩhʋ*1mqڬN'ʖAeNkv&bʚ'D +N^NFc*C&ɸJDg:aN̪؁ϗR,qتXIߓL,[4rSf6-b)');>"=JG/L~A6q2Gp)"QZ.(3 &\j [KͩР@Mg^QEU(ok8`=!%-4ZY.ˋ2%+hmrJlUj۰fϜ.ٲY^.JFµdPV%--L5)ͪE`xU=﵁w_0M,0X+$x+)0\r~#P}3(8RTØJYam-񨌔}ؤ>H.PE>saaPG0\Xqt3 MPCO0|Lm8D\rVƵZw.4YNWeR+x05KnF){Uob.\G UߌCXR*aԷ QiXH 5h&/X +B̸֕^aj^3-;_5}X&xI'7׺XY' "׊;k-[ŚT;Td43 vڋ.ԴZ{r)"=HtMB@j'l}<ԃZ`޾ɆtV<(~{pLAh +(kG} +q#?*mY qZmJiv]<`+eFG +z/'JLZm# ?dh7=wb9[pNj;熋neފ Eln =y0b2(qJhg̥9?U{i1YhX_#V. +Ƥl +y+_4=`2{-D* +i8 >Ad(%D汓Yƅco TS{39釜JZ[[j4rqm)9d"Zx?F>,ҞE 'A7co( +u#c5wIbIrD >Ԩ/&x$V1&0xy)Ǐ`3xQ,p0G8OIj1RIwއFb`2Xg2֔}Byun‰ +eL̩Hvh`J/Pl1yةAI1I>LoRZg^{gFVx) PH :T)N[E 7LB-,&ƴ3GB]ߊMC}}3;2măXiO(8s؁RP_ D5G JMꃄ|SQnyS|E8EqF8bڅݱH4Rv=Te%$- ejJb0LGDwg 'r{3J+U&DuV+ԹR %L> ~wn'06 wJMų7ːhak$ZIt#WKTc jlL%P[V"%z<1A>i mrc)j}%:[ܹTO>\ޜjݣlv;-D136$l*aB<T3Gt+4EK3ڹEQ9< =TKzw[Gv^ OoPoLVMwwv;jew5^Uؚ0u [$,2uL+>AU'a 蕎Hq\V=B2IkD3oNV6%J#>jJ*<Вs^_ +Ofr$>;KJ(8&Q;rΪMeb>*)&mRj2KvvZZŠ5)˒è9+|~.Zڛӷ SY`0?",ma()/*5GM \9<ێ))- AҜ2zD9տ~"hb1пFJvePRbVasmsFKʪfMo7+FqFgl歛aWpZ[=G=NU)=6qba(N",vgqjc&nA<u{qHo> x`H_C~oq>- oin '̑~AY}c/6ŏb+exL]swzS7hSpGdH䑹S?-2T$mbre +u3Du_5X4ɴFBMق-t57N@fct +)CDcf%LNuLtMuԀϦi i uyg S+ljЀSkF èyk~Šݰ;]JcZ:c0Uj53$u hj`#+T.֮:ald:NNi9SI>ˠUt;pm}`Qd=сh'PW~{v' .rV15}jԓ/K\}WqmDlY`E)i[zU< vaN5 Z igQN /ʠX16b.~#j +[np06d6S V1lMUY*>[i6C&<ƒ nbiɑv}Qa1AR= ^yME4D\ "HtQiuUW&JiE{늆ۛ89+^D ?b=do7ZM)ܨp$ ]@烘Ffls$}PU3rj)EqmDN )R37KX6ws~O'˹zپ6jV ԇbzvVn33n݁KHR,>bwEj=6n߈oXKwћZMzj:G#=8C9Qmj(;/҃qN|iz;oݐAFM $Hxc $lN鰬bZIw *OJFߡWg`t 7! ͛9Gb=>H%9LhFG'R'vIvJYՂx4Ine4VUPǑ}Њ))2~Vmhh4 鍶*Ac +<%A +Ap[֕d"W/xU<$XUt/K"Sdlzecb۴gĘa>~Vu)xבCxӊŪA *'zόr蠩%<1@IP>n7Z'd(bZ;_a벐*+̀5<ҼGN5@JMt>ONiGF?RBT2Ľk]c3Oݫnch1 lڐtIs;[ӮyY|[7XcE|Uiʟ|AbqeΒy'@TP7;2c֑SNTRD(}cY3A=Qfe=WEByJy ޫiܘ#<‡T Exzza(DwI_ wh(2*+l湃8xN}sn䴹* G)ͩwawake +'z%g +Ȕ=ъ#j@l@'Ba2^¸oj/Cw" oeK=%KQ +^Slʕx+ij!]O|.da'bO-n{zK8ĸ"*ГDC_ ؟kފqy@8ȚX9HES#K 6"? V—T`m7M7Qpi:"0Ok(]YxD+워n)"N|qF!=J4 a+:)̸سhk>8) XIGϋ(e{üz@U?gr,F#|Ni-=# =>QIz% +}Kyc|8*Ju<5<1܈z|))nD5)?, t HGf! EJ"l!kvjX:3I^ }ՠxD5;,*lX;ҽ/xStIX'+,t'= +*WHsɪ1P `ťXe.X+'!k ɪn-À8EH ߦ1PZD[ hM["1eʨ+>KK^j7sG B[X2 S2T#C b2 RϞ:}|U#Elq:tO?w/KssB[RA<ҠPmR(5!#O͌+$\&V,;Q 1W6!d9LyOHP28Մ$dM6 ^*6v`O%k45fiD|!̦3@ ̫ׄt@ZqDpz4)9H? ΆLtĢ"ӟ -'EJNC )U)o`crDX|ԥV*wF{_<ŨNc ]JD)]|IgerڗXn*bVAN<"}UJ@)A|sGsiy"" ʽD^O`p:"'^ioϙww3:ۑ' YU&dJMeh>+KD>2A.2qL,=z^~1ٻxL$MSuf؇W I+&+"KP4FMMGt&d b1hO]h<[Ds38،Lc'$Z,U6(1 +j}R;L&r 2kb仓 Op\ l gK;ZKwZ2v5*4hN%ErpP0! mQڛ|)y IU + ["lʣ E\oq[M|..o֒ Gri) L>Nh{i0:++Qĭ 5,ۮ_˪ ND0|QGq1F}01ߙR=Z="o~j% kƎx+Jyn>k8k1 Bֆl+Ől-斘t%1)jsv[ (ڪmDj=3=[ڔTHAv|nAvpȖrڭv[n'~v \o`3K&+8G LW4zMze-'ys.%wSFq^T.~cø6l) z{-_mT-!qj*ܰ6^`8]Bvr< .+Whw.2laIVRn/VXОgEy4 TvʢsnU\ݔDDLV%srߒ1.k9u^G>dXtg-E\Fú@>s›zeYphc1z*K9)y9`~QUHW܎)*W+XVGeL8Hק=|gJ͌'Fd=VDeEV@,Q#z)*"]Kq@f; pv0B=+_q?{,3Gy?8Qpr*oh`Ul\/u")PfꦐԔU&zf'!$v~ V[a3s΃9yhj]/SPx)[ӜS㜌JC~ZjXxH#![kPp[0KA@U%>"u/hGSq-"W0a49mLYTi;-D bj)gTX][ "KͥGoY*9j-RѪRMC3{2SX#ka3!MYr .kMS,!*_KQӢFuN>nNs6ZvOrM5J usҡMl%2֢b?ބcjl̝Uj,*FmJ̗>&Εc}5q)^%r1ʤynqNN3 +EۨȪ!!.hHb:ޯ!:,Ȥ5,=x402냈7Avv.S-}UVHPs 0'{:[wJ)eK.[bКXgg{1A,AenU +;_Oמ? ZELk]!VVRoInz➭l:-$^hH|dy =sCMx 6 ֿWNxujwfP`59A6xN7lM9`l%) G3je8umBEJg9GIzy8}51+ +2O:"ybHԵM` ۾˽c ݱ&CzqvS>p3}~q' G綪F+?74т.>J5{B_|Y0Nmҷ$yIlYMKvv#[‰G?mq--d;ҹƬ^w:Q΂ +_g[$y J_ĄN%\*m'=mmц+g›ʖk +{S}flk8nBs)玧dB!{(fvݡ#Ю!_m6a_ tmߖ=7n]14/;[TcGRq[PxD4. W4}EvBz8u%/)5^ytp&Oh0 vsLޖgLjڥ`2 +d^4E0^nDU[ dczTb?q.T2el5T1f!,f0J D.$CB*CP޵x"Fl[0. ( vIPaËgIP5]٧AնسlaDI[j$ +LYJT74V3$&"fd.Ṙ2/-5_Ti8Y`0aJeuR5,ޞ'l&&~/dEhYjS7'ŖRƯO(0gZ",K9R[7b1[lJ_hV|&Pj^C]&Z箚2"OZK3rH!S*f༌0q>vL&8p>Y%A]IJA +OXo)GIzn_C{]G**|LQTeN # fWZekU/Ubv1}4Mݣc|ÂtG)ˡMm«|c;(ÒQW3R7 OQI #FBVQ%= sPh>iXF}=+SDZёW+*;*9E<,KCR{ 24快k)"߱ҼNib,$WUVZ5 ɰB/V9 +P0R).rUKΞ61)ooRuyg|VmZwIf]%i+Yt(H[0O$4ZبGJ*YdJp_dPR{UI(bL %: +nNW.L4:K"*_mQ-9A7Xe7SX4!md6!X5]_8M"&|L3휟4TWJ8[;z)PuGLMs(2ұ-Vn#Em"~ )nU6d©S mlYpoV?0jAa?-.PgB<î[ȋQSMh.+3O$ mye)5\lZ N;lU4 Ph>^)jtak-jl*,ik׊kiJZ}/ТZ&j|tl֒m\y Y'T5S-D,n1.h +]+{:)MǪTnXddtm[ȷ^kݤv׎u5Į4j@Kjcv2g&:Q# Z@:!}/nI-1c9BI}Xu kRmtdZJv&>N]H$yVig!Ķ鞕C_s`Bvaxg7ݎhy3 :^)nv3ɐ'Q>aDSczL>U3jX͙"sIЧ[ %abq'iE2 f`Vǯ1Te7}7g)gӑ3`n]'w>xa y͖pIJ xj5򆏅?u9 +PP[?wKU/ a;d֠jՈ{s9Ͱrz},ُ,*ĻSTA״d9f 3L&}ڤ-?uU:T{&ېܡ^G\e8sd,%&νq6q}o8?I:ICdvUMJ`i=&ض;ꄦ͌o`Сp ژ|T!ulk}1wRڿl|ڙ5-"`wsiٝeq@.0^`C;.y^έpىs_ZҟlN'i'ré#G;ܡ O˕O,!܉{@=ݡhf0 :@<n=Vl'n=`XsV8!8Ppw9 n1g~CXdX˕bMQ!~s5'=_;;.&W4JizL1J}YڀY'A{fMxdƴfM|Tfo+0J1>^VFJ33KeYzbp"Ӿ]iQxDOd?8>BEukYj.ԢDQMq)mpSk6h%Ңk}w;>û*QU10%/k幠V>gpUm&Sh%m^ɍyѮ0'2i-kr{(~kT:g/\2X|";TZN \A}+UB>/"liR.V[x:8|<¢[:;:(BGl"I##Ā +A8@]'! X i;؊0꺐}9䑔;TZC,o<#ij |SXCs|55cz +sVw!5Ms;P.r1,bNH\&V0(=O_$BEInZ\u/^V7O%L%R|27 FLݮh2nm]*&޹u%1/+1&8P/ɬ]b;4Oqbި/ +8R:42) t3kEv>[5-=2x[[6#gHb3ZͺL65VkL.. + BU9=y8@?:ӌvdZm1C-1=3^c}1obà&Y~Cl 2 M}5n'qYjSfC:8|-{,wnk+7=ƅ3nߤ;]tBk܊I`lOC=TѥsM9@::pw}k۲JR/p,%{Fhّ(CFy +SH;A郘#V:鋝IJݯRfDb ༄Wߖ<^ F,D!ϓ,E@qWp".^`[^xo (ij}" Ϡk{{G" 5b$DG5q(Pl;-Kn,l18a$k&b`g!(wp_k !`M@oT*/x,UْC-ij)2PpnG), M& 3Uk*fU{d;ۨ` |36rH~y77,dZw=[CEq@1 +Xr2]L13)={TC.bnQE*/ƥx@9a'i}VDLwz{t@q*CM*H/s&OEi~aѦn92st5Cug<$)22י-߫<Z׻q! qg={:$0/7w>ͯ=!:/q`>ķ>:P{l!@>"DFYOaĽ0b{ +ds?Cb"~ߠD GAIl! *6"e6M2BკҚe |3/e9iwxg4LAIdQ4c&ac(i]˰jZ&Қa~Z*R5QkG\O׹fA$6c1]0tM0W}KK{!U)nY-BHO~OS vuoזѣc VH[cps[!(|!W!"!^7M<aC6]9CIh(|桥2P?w@P-秃mE%p?<eEų%(*̷2zhZJ%:]2=Nl*ev p+:I3t9ZJ:sD=UV" X \L =-;6л0ֻ )r +gE.o O_X㧣i2,{2 KI$K<_Pk0Q3ӸgKPfހ4[gQ5[GՑDF ^E$5Tt'ge@O\šgS=+$t9 +Q0`oOPz$u.GMҌ0U648Y᭫言?9TsDt{[ߎшi70A2OW"zay\hH9;\VcTh1tԊtSf4m$Q>SgÿְXDEKRڄ*/KFNZ '}* ^)}iZ6K@`-aF VEZ`^G gR#a+[)Rŭb!&f +ʲֺ<ǨXNq01uh!h*rN۱MFT(kaҚu0̨X`<0L[e]FgSI}"n .jT=,J?P @wv4 ++eHjL~Z?ȷ5yS@Ⱦ?3z8ʨbݾP, p30akʊj>KVƖ֌i@ hG,xsE2\.NɫO|ˤF =T)}Β~0-]-(/YJ%x[]%,X+^h( eۢVG% wc :TOPÑ"!{aS\%[Dʒ` g>M5?6EQB!šmgWX(cm_} +"jꪙ)yh%Z6T&NSlNwhnf=hV5#o}]X$,;݊/E/lDR8u0qͱܽ>I i lUip[QQں|d".Iԡ +N[gQibqP0X"596q־2q]ʦ dɲDT-pjEu?ъ)]qűP )t1 +цKZSR랋Amx0*Pmqa'P&_?tBdMT8;5TQ@=X! rErѾ \zPnVGѰ ONHL*l|:q#х(kÄG#2FZ/(J07.>t\p)㺸V5t5%4z_hM3.m*^ٙJ;*m,?5Vd|IX\]C6LWXZ ++ոJڴlq[Ƞqg*j#ed|2 UVXXC6P%%\MZAǕJ:< 7mFjvb>FV/xܴCe MEmƛjql:* F ٫ilue?F@E6@9ΔmX!ʢmiOδJ[UEf.GQ +8JiHűf_q.lszYs=yXNlQ[o?) $i||g ;:wc^4^8bTոr0̐CaC&JӪ:]?^?Kj{\p4\`u~[f2z%ޭWVh{ Kچ/! |Ӡsdq{@>4U>D{Zz¬_{bP;JC6⿔Btl!RyU>CEl;93'Fz.{!Yɪ-{|߮착c.W.qk608 /DiD'oLt3v}V_sFTιj}ŝn.qȘH!YgN{]~k${C"p {wj#ڛ+|cBAzwko8'-Zjpb % +;yMlVlUa}qk[E7H;z-O1Q[ \8GX)ܲ1:w6ノܲE~#PutI::\1joNf2J.CG~K|fWχ ='#-#ɓ\Ry)?R'UOlopd0~Í+ O 4E=GT=_=5g*}5er*\tSz[\rWmZV/UyٶPA*:dQnfΦP`FWJaIӃ4 g!ZƍY`ts& +7:.U/s?5iڗibILI@>UC@*T,]>"Ô|cc +C(2rIi6 PaʤzBn0zRe!I AU&Gb.GruKcBZNK{Zma:5y$oq¥(v͛8!ͪ'\BU8hk2UB=]Ƚ AVtvI /65-]>W>~Qt +8AZUSi2*8.۴8%fEZ|rq*vAmF|g98MbгIh 1Eiq fa~" 3K u 2!EWwRWDKvҦS|cS6SXdQlAOSc:|Ұ 6 $"~rAS,֦rѩ[ !{X&w}WSz`ZX]d0IBvava1tK:[:թc*̘aii̴ݚYL;,o[(s,5*}@񙷪k0$4e=wͮKHezO?SZ ѴGN):}c1Uf׵Gl o!XT"ѮO : i9Ol'/ēEő(MkJ5әLA!_qgN$eTĕjD4e.v"T fåN(3{ G ..M(iVHDnD;|Ywt$M5t(G4#|Vq&uˉ꾁V+Ʈk!Rz.p™vل߀X](_xReYl#w#gH%Һ.]P%E愺Eļc!t(%g:>%:.=t`z!ϕth\.z1H;.vb#,=0't.%s D?=@:GEs<=HOϠEQ{:Ϣ;1ϤtJ% N辠 ϭN Չϰtb%V֛[vW[{37GilXP ++l%s~@]{E=. %wbyoGz>J zDEwcܾێjpwYՈ_ y6$w]qiO͛H/__w}7z [(w;WT ܻ~Ɩ뜛_|KK)+KsX|}&QCgw[yV3y&۔s\}~K}x.HxR7"8yoԾc%qɷك"$0`p?HSp訑591 ?#~Wy7 +z&omJqꠠhl{Q%>߀ғ`ڕvK"xDS"@peN^*X%Hyw"(\472ǖYpe 9W V A:097V4M5︝Zw)3oЬ?"&q# CrE/Y /r`'A ę~sq68 dׁ'IdHbc8`>>7LG)qdl֕RJ.sV94vp`V4 )1D6/j_쁅)[J<ʺ +Xx!yͲl0m%U~ ӎ3)h ~wEmy׋i:;+Oӊq%Yރ/`6 \A-f +G +D>TAm "fY-0Ɇ&1D9._N-ƍ +V2@l=ZH4Nn3$0&H^0&[[f~0] +>u˒c,]hjڃgZbeQ?ﻮr(jC$9b3A؃SKa` +供 +`Xjs^ r'au]LU"цS-#鄺&y|#Am 0]P^md >HO:2V^0hTD`B,sߠ^@jDyM$`nyqI G fU? \|Tƺ֢e< 7y5i>~ + r6ȵh.J +ӈݴ@q ȔPa[@55r2Bچe'}#d i k|v; ߥEzz /rB}9T0Hqkq+1n5Z _݉W<{*C""x>1@p[9k{ӳa^*.ЩNV!O7uqAm¡5tx.-5ƙLfy D;8Jh7bPr.vxA717?.ڡmg>,K?mT=}v +77ILۣol̎6Y)!J ڑuO[$j Y4㋩:3VF$j[jCF=@hWi3E(Z$ӵ"rcUu-;x#$it i%6$Xqe8CZEMu,Lt2+G8z㇘% +a0|EwGFZOG@ڢKa4ܩsmZ0SPYlC8|ϕr ʥߓSC kWO614t;`ͣՁ{=z2d|-Q=){9qK=/;>p7|𡀾7ǟaK70`ˌ7"aK7ў^A7R ٚ,o2gy7Pz7DW̟՛=ɛ5N:{?{@?C?z? g펼۟?zOΧ#98;(yKG#~/5Ay@1SjاrrHӑGjīO{ G5m'=w5R hy8>Y|=>5=}}L3&șOf4ܔOJ/?o~ ;GX?p7=9V)-:e/{J.{,z_A-_;ȯ_nn3Чw_v_wWivlx7>yҧ1H~/۽8ivuPd*ű!Fv rCj"Q[Z(tLM,>WէFQ^!w&Y9jL$<2(3V3#=ϓYh[-њ,>zT[AxfnIQ)<:̄M +TPAP"\9E~_#/6#\.0-7e/v0٠fI}6O=kku'+tT-tӡt}plՈ?1F\/`L ڲ!E 6c1]s"FXsj x98s΁a&nxוw?̂fyگ>f4.'4PF&Ku=RPIO w&]8[ 7䙷9'je_v,1wZ#dɘ[8Ë&_|cm`4r Zw㜘L "d%JR*ʠ7Ƹ˰-1n2m;nQzI6 Ժ?f9TAZ>1feߡډ9Nÿu@4qOmgۙz +Y>%&0tϿNW[#{Ҋ}dS." L(97FBߵ%![ER{C#mnD+&0Fv4j~V̞|n[ŗ|?X7K{ls ץrb%[HNqs0"0XG"hS&&yL/PUX1OxUJ~+#/JF+T%^)b6j5B ow~P.wc*F:u .VT ?\:spdI9!|+R}؍?˾<}T _`#>FRkhcIrResDa@pP䉞öZdkIK 1k$k煕p4ٹS nXQ$kM/pWZ +쑷&^XAk&!@j?*k 93PdP8IڍT}'S=SJ$ VD+pVt}QsR/=]D`zEXʮ>%\/ggP`69@#1H#E|&U\1h5-f#@-vԢH!%~($+ӗ\؈%H*䴒%h%KOOZZm6?twɡNJ[@Vf:S]G+̹< +tr֡JJ/j2X#$0T8@ WnĨx㖧3fn WYWO%`#UJDf,O : +dRɓOșDRIMS)*𚪱hTʦ`XN'^'{*&e\C\ۧL뼄/}9U~±p I&uUM{ǝ, CF{^DO ھ&סb&̍@ #}Fֆc #"r̈O9bʥ gQd]!qWTzgɍ-.)1d?*N8`f*]4Cr1mZFL*E!~>eb535ybU B*}.5 +Y< _bN;+ dեz!5ecһ;*M~lbogZA8}I]XhJ1_2 ͻ*~!9N\7˱k5R+4kW s@q0:'J_ל9%_klx"]zV>T۰I1M/GLP>rŇ:a#aPIvӄO4Idʇ|4!ULp\+;} KmMXu(huȯa#7a%6Ӆ< ЅgWhvΚyI'Rk(uNAk{N +tt̤7+Dv'Ѧ7>jI鍭N^myoQ5>)MMpyJn8˧f{(X:qѺ|%_i1$_bGADDL`M!% }\D@3 ^|˄D݄`Z?p}}՜I7>˵sjI d}T=d<zI|"K,Gv מKĬz'j?oB|I Jf%!3'MoiWV,]1ZS/9)LT8uN=ZS:} >rhBc;:vWI+ ?,Neua9:;wf\OwC>3 MWrHʯO{6ZlkHÛigu5ŞAQ_E/ ,R-xf Ʒ3U|{[M&O4bvD,yO4{+Ok%M\] XXQa8>K_>' |Ơ 7>a~H' yD)Щٮ@.PSD#deEK{)}{ GɜB_N( i;*ּTU.W7yj | >? 7-J5ٚXAڅ16}".d4{"Dth FPL(:v bQ5(* +ƬV1hCLjkwHH;{jB/) q?zp6wAy:@eVLe|sTXX]Nw#"0(p2LҘ 2gd/=|HaTngpd3S¥SO(1fQa~:f;ɘ&KCH$L+'FJ>ncW6dak>aG'4P"S""uhK +mf}ՅYg֐+.}{ޡ[e)Ӆ- jb8"^ꭗg/tme0Bl(1HeV,ۮ +It%d!)F\ۛG흧Fkz.JEey>gH9! _mW(ΘWCDLX+D !y jVkNm5J+ 1}wbi-m]-6hCM S8K%|׎_ 3(K!(< .T/N^` ŔS.(;i%Q ^o:xu+:xgay({}}|od~ɻW还TscCFkn"z`+W+\qϑI=x nUWuX[a1aBMB7Gm=<7⫝̸ۘ+cr'K| U9E*^#Vqw(^qTl1S85|jvR\vd>RO4ؽ7;ώ.1{Ob *^AT{ vͮEi35="*wB?w@ΊCg ł* >Z> Z@@P8q]`T8u*IV TgBmxJ;*Bۢŭ}F^hiWƽ*V[/Yr*5CgΚiΚW6@/";vLWZ[n疱^czկ<:Cj;cݕ۟`\vīb}Z6WTmON.QZc*n|m)s^ ++?/o+?\Bz%iN+ _PBZKz¿tb"|XgT,-kU(Eh(EJ/:v}*(G^?D|tG]dk*E䯴+Uݙ{W}-;5}JU~o ?*%c^lcL2#}Oǘ0sUu<^e]ں(o/<ٻF-U͞קa/CT?n>[P( r _Lw=ܳm ?8xzpg 5}Į 2bO с-7{qчk h@߻Fgㅃ&R|l=7"؏1G=+,nEtÕ|>r/T2}P* M_`񅗾/7K؋A= @.k -$iH[=Vr?"`fMm9F >9rT*.@V"ܩ%V?)@L\s)?8WU?<[}}CE+pS^~(ʿ |9,뭇w(xr(Y?Ɔ]1`"14.@5@ >/=102NU+nY|&MS-Y?\DԂ̉?"Ƹ8@ {$yv8;xPP wFp{5%>x!|"yr̸ +lȦG6tB4{TBx}t[Jl Bx};!~.%ٿ +aZC6l -p%F{XG^>`#9;pؓ]%¹uH3)F{XMwȱ4KZbǩH @){:cH5ȘeboLMIƝ,nƻ%{mEkW[YX'V'&88;:X:[ Œ}QbUHm=q`'~vY×N|lӾ3q#g@x5a[RT0c/.<"k mZ΍ 0Ę \q|+k2;uVyT |qSa +o\͆/ vL-*ҹ *,\,;QzIi&*,hQhy e0nTdǫ) FhnMGa%NŽO/PwZ -*hDУmJ`1S2[Ӌ^zڿH@کAg Ү3ko{&npsQC~9Y]oُ.F|z{)s"==Xϼ{ZbMy|j+Nޠ޿|}oO.zf!N}rޘ,޼>}&]^;<ӳ>lۥ>p""ϐ^A; Oi'ɟ<1OboROM|S[~ooE4|XK[cu&M(; +'f;@4QcDURTX_Aee|fS\ܕu%x ;|S]I|Ny+^l I|ԅQxO|=ދ+]ȗ|~S;mK0A`TH T1= `4qDRۈe!̨IVaT̋,`Hd,<10lrXb 2 +4cFim oN*)go.Hg0ErM‰dUL&Y0",m=AeWn_=ښ嬜eZ/(y^b,\LH+.Ƶn\1g,8ue Z9N[ؐ!9^@d,6[ByDnD,FgUO{0wF.ќ?=ϗ&\eµiea,A.q4wm,ǻ{]xpҬ[ #6mt.İJ\<o +Аv5|mZ*ͥ'.Ԧ; ^J ڰ1q~44C5_hZN@zMKS_UUPF]V! 胚_wTSP5  +^sʔ5dΨЊI~WuqeZoiN̲eP[C\ 2s&f`9z@FT%H+ʉhЗad+c dF^9h~;"A@0 33cBl5rPmnLQ6(?!+žX.˄ЩjǐC`hV]̧,њ"vذ5޲CMִI\&XʤS=s˼z ̪yfQ~\)"T3&jZ0f[VnG$m UtH4t*OS]NT FshXpl')[ԕZee&dyaLKB$q^l3Vv]p2ؚ`⬺B}yo MqjT&IdHhKțȔùo\T\Mf*ಆ}?&Ž̡<.eIj|Z +i,XXL04:Rن\߯;ZV]um [Хy/ӂ)CZddA((?_Ks&RV駚 3#}N #A6 P"ߦ.PىxJ0# WOL1xMYF}:%rGދD+ -U8e÷,3sv:ZIu=aT!g`r@j[Uȷ*!i.yrJ|e=#Ԥ 6V~Wkd`aXՑ02)r9%J*ee}~3CFlCs7ә +`( 6L^ZQ.?bڋ g~y!^E4F^xUmJo3W*~.gSh؉ 25uٌN)*&nk~{RhSz-]fv&?1L6 \-hM> <ΒhN?%X2H1bt"a&3ez|sK٦m-+1,tmyM4 xi]SCɦ^g1kX*HҜP^WiXS|ڙ焉U|ۺsU.)Y[V5dW|]y w 'Q6QESѧ'Y#TUSIjeLK6bn1bȊ'<Ӊ%t'Kno)xڑkOxBLZsf-yS ^/FbW1SLZf-~ ^/Ŭa'XѯYѩLR{z/C幏 ^?{<^CEm)E[9j9aPv߆|Gn';ޕ`{>_{]OvwO?+ +?.倭*.̱'$ezc {3*pX-g 4e_ nK,nL1`K{w^ȥT^^#pb/QJ/u=*.1`` / rsnXZX"#Wn!Rnw%[Tbijb.b2i4XSd})\"xÝ 2\2Ccyxc::R9%MrI$C5w^r?羟/V3Il7Ɵ /1uQŹ 68w%2dOcZI0.-N];y`7J0pZDY EfS:g*}kj-zbpE9>d5c?*r}s5ak<'Q HذY9K4jZ~` " te W1fz1мRޯԻ 烜U΅Ȏ{@x?}ۭ Qo[8qVrHfO("Nn>Ѕ.7&Y\A8`8m};Lmñ9:gTnFz$ϴy[c[p:ڽI`:ƞ%[p}-qP*0*O'A FawEޟ0{ a`܇>`Ӭ??ʶޔ[b:EX*n `vݗ c *}eLi +6skbP& R6^bcilil^4s __"piAɶ%1[op>}me\'2FPE+]1(@}ɚ1%IW@zc\{&(o۽xhm'}j<7E;} |5~eAqI~3g #H}4HYqRwb_يZWt +'ga(=r_>3Y +`%i8]>@( 0%>K}d |1K&b!iً?aKGr6UD_JjIsvh9al3n;]i< 1th x&`g5=Βh@uZmD$wR覵*CM ܱcjjfYCdѝ[A!tA)jN;t.(]Lb&|0Ӭi@}Ǎ+5z 9ח~WUyO;S:zxv"s^*4R#ǥpWu-5SvyK'rF7=N|tk&w= `!L z8Dsh펐hB% %=|g~We˂c/~VSeȻ"m7 |$;b'p`O!׸9~Y1WZ~;F,a "Oԣ3;C0jęgK*A?PsG @W^sCxN*ʂ4hN$I^/>N1&07$T;LgdѰx:w.;NH]Xm;}sD!]b7df;jLPp=gKb|1NTb|]h "Z^ହv-+๫1755FST}|j2 zNWU,S@nWu;,,48442)QNpK*\ugA oCwJ7#]_7^=8_7nl7_;%t%`*9c'Xɗ_g6A c >%RF3hBS .y|βɱQGc8* 2G%זWq`V| gDH!](g^hʤH!J^B@ј4:CcC%ly*s،NX~f~YGih]ImT M$z׳Ft"?]E"|ٙ +Vɩr%l=K2Qz4zB1sE,dB'aEOQ2k"T&v +Lb"q]ꔱND>”noف$7Gҏ/T +W͘ Yl C4dEڥY F"s-sW2UdHr;TYۺduk_d +71J{Yz[foKPuھt9)9RjT[nCji}!>Y@h`ۡz~L?.Ms[orQ'0+y6.[)KQߖYqem˄仭Z3[q1 &sX1 mJТ4N/Z-=1QzǨn'G*w6]I͐s.˗I2$I{D%Ťh-.n.#5-qJ$kj:Xv VNUcyԳHvz^ ˋ92|2!OfF"Z&b)$<<;X#|/`Fŀ0Ty65= l >h~6p 7!ޠ4(bkbOsR:Uu9ZLGpl/̜߱lI>-]]5 +@:]&pp3OC gGLH^6c͏43h. h2) )'01fu 64P,fh$W> deŒ79+dO- c!]i_NFSi יV?$1Kvw<tNbMjqFLMp"WM%1I gK2.41FEJX-Pǧk1UMa +3訠F)>,PVHj Xh0 QsG~kzԍ ]4B\ m?F4\|)@t3 US?ANv>JwӕKb> vs[zePa `>w!nˎ7KLj77Z,_}`b!~,535Ʈ[ (/loCX;s:b@dL#oRv;b|sfuMnYGqGn _:R1YnUv-1KJBWQxFv#N&#j27CiKʟC-RZ/E ?Hc,򆼮S#Sza#A:kr!QBL:5bB7/7(%,2wX=e|BזHp08#"E1+43P+aNCJYﺠ-QeIM- Y<9B0 [b@y^ZUj9cB^ZP#gQiRå}18dDyZ.ו4KU[֥ϘjUFZ;GQ\Tt<# 2Gfp+b([+k67 +a=`W&3zeC_ߚcG0/ +3EDWx;twD90}s+xS!"uZR =r퍤G#*G +-@7܀7Qw>g^;+~_8Be #m8Kf<ռGY&tQC;ǰAkZ}jo14 3H9 {#]xe $ɝ!5-Ho^+>Z$碁>r`>ğ}s(/Y>a`̻粖'!‰L R!:R~)!B+ܡ 5(ECG RW/) I*̴Z5s3uԮ\v*g'x}/oϿ }3> oFMt*|>Yl;B͈HjRԇ4 ;?^X0tP%K!zD&^܁(j؃#Hf/v$nNt!N /y)~5?b+oWaë\\,8meGJM)-@q&f§L88)֚[!6B+  }ɳ#ϕZ'9a\sw0$vb{&ܠS@"̯| R2iofaƮk 6\s)u Bw/;VbSq;w~~%J.0%J7_a^ZiKvnё݊;Y&ש ʄQĨm1 '?-JMlTeo68۬ -GITsu,>FZe?ZY\N,4."j7ks% jւr.Z~5W87Yݵ@,8ڣIuka(BfubQeyT]hoY +E}kD4Q5WAaf&`SclIs&2.wףM==z,:lɂ>&|+_P>=CQ`t?%j^.0)W_[v'ț.~@u)$=;=p> 00`<CYm*_Zz_0y4 7y{Ӌ@g/eе1 hw:x$ڢ\nɹUw{(D8]L^uq=?*^C8 uk+_˲l ݊ޘa]&]/jZEj:jrnCjILw{KҍIˆڴEP +xVZkZ DrÉjC|~8,a NM9|Tt*Au '0?+Dm  '!f'Q(ӌoV6Aܓi9gvRX%+Ş )$`)rF [ȪFtz4: e#'7 %'jAE5K"ءj/"McqQQ"DZ,FsDsDrViV7J$.CKN[=/+MzGPjWLJ]l"L"g4Ӟp1MH#xd_?#I}x}hL<ž#nQl4Ek(/aK k¦ ɣRizCgeu>J/51I!U ;^Ieոe>EuOhF'ǍIp3_<jT+ +IHyf_Aok%oKYZPWJ<ȚحQs ^{\\-zOK&ۓ͔Y!?}>W/k`ig\p>AוN7oŘ25hT5JT)7Hё^{dLf5ԃhoYQZv)\\>ЧɽzD$˕sjty: +~W7BێԔx,'~@(z塙?(n`Pj~OSrTCf _YQp;' 3TJAuLǃ?4@7'gI!O,)]f0)<U?!"`_$,>aa'k.{f6HT{[#|{_Qm~b<[ږ۝Lkr*ys,/(?aZ +<o4D HXU}6k&lu\7#7;}⇇Hiu$%8{%iz7ʼF3k/d"xRnaҢkt9B٩<Ė_J@@8zۀ$|D(RSۊ׊&XJ| +8r$8Yz5͸jI* I'*3GɱuwUBI/vb҆.1>alda>%]ap|soHsa<coڏHHdX֟wLY<ܳZvv-2(w jfctc@X4Ϲ}_ح5َ6 C6?/q?~u|Iʇ"[lPIPHc\?V'򋌓)#|0J╄uC+ܶeXU3󠫳La E|[8ޟ3Uj=4"7Y]]20gh_񻼒 yDx jNܤC]k2R"EGxWU"+댘:S,mAj=4!V$-P>]p_7ˍA cgP5뿨.Rtm_=aL)kڔkwy}kgh$zd5ʇ}ot!ۑ{_ l߲\_RVYiB3i^0v3 ^>F^@X܇"{f''Y{Օ66jaMoD'}esw]䥚/p! GOGؒlq/k&gYK9H}1c!@s94m>uD"womJ,:.q$f2~k26c)X'^21t1sqTU$9jSȪ8e&.P- +e%B#R!@K&2x2d ݗ迂t+w0%9C߷?{G_;_G3 ^q Z0c#2r&#&nlK9z<Ú9ЄJ9<ïF`h,Ǩeh3I(3UAMF$6*&:cTeʭRJI(SڂV.Y_EC+C'ݒṰEXl&1gBf`ƐлL}rёW(YZ&ȩj R"O4_0&ڶm۶m6k۶m۶m3MfݪT:IUҝyss F]Vds%&+ øe A ƭRSq[4# `$Ì3-*/124QR]j-G(OmW\FQD wC1V׉ˑFdC-? +u].Z_t("[Ȕɕj886Z=rꁸ\$HqEUjp"bRLU( I_}WsY;U<֩=wC| sQ{*%9Eqh;CrYOU +M"%gyqZSں24wɴ +s jI] n,;D}+3[HRQ{Pg?H Zda#>;A`okUꥶޞQ 6ݹUU񿌣ؒ +ō:5+X61teA[[Bՠ>ݾ +2{\wk?E4o4@M=;a֠V{UGUZZ2bLs%âiU!" >/x/-KHYO!b*nǝ 6Q8,R6ċǞ)if7!f1T֍gIuL(T6Q7]e Iצqv:hNR DiCI܂a xA5?X(8<ie4rfl[ߝ4k>9c,ǫ{v&W;lV%Ae@s}m84]Vu?!;IJJPy_<{ er}6BUw^8IY27zK)U?Ey0p`QYit)xm:biy#`k5\(tCOZO^Lt_b i2,硤B2GǫΛsa4Mʖت~aVSӥ) WB'șŐq}c/k%v'k * BޔCMk֩/ѕ4!)4 A$+u"\>5"HҬ a%=/k^*+U}(CE'Wo,{! '>0E,y1iM^Sgj~'=dLa +}JQ}?&.Z+}} -V 5E< mv1fyFEx ~FA,]H6)J +\2!'5|,EHNd$ 0-I>4qiye}MA(T t7*m ~!Y j:Y!}&^|zfF嵩9W;(ھh*㾫+?ۍvɽYONqހ@bz +]/[:}&鯇4wKAW_6VQ"W"h wxоW$ѝ`u.Ӷ6[@P`'0-]W-o:˺AwwShܲWTII6qb9H?=f>@< 4a_ HG}t2"(1<\bg`B=ŭ]_y&{xwVfvMӞoCAi+7ߚ%Ni/E2j<V9k{^~^M@"χ⢂D'Ji%S z`bsWJ 2vkgTxN TU{*F6NiI \Ue 3  m;RemGv&qǓA0\K!ŭe_!Y{qYr2+UYoUΓ5ReWy:c|SO-5dHɄ&a_K=i7O4!(+SU,6pwx?%:.׸9~ΥWWBXǎf^(@ ?AhA/fJ簘8O6ثBr;'j'"0{/ov3GNqt*+] ̅b~detiq@ v /]0DZ}}0!x\D<7d;›#b2Cb-]GqD)mmM#F!i$Tho{]%}̚9ě+Λ +ڝ1V9U}Ff2D(]B/Z#-8XЄ={Zι#1寘3Jc󸿧n1{n"K_O䙽I^]k9轁:4 ?$[&Yc<ѣM699> *1loXV +I?#@{v'h.[2?(rw9?2a@xH-{^c6~vZI#﹆>oU_ +0#4;D [WJ쩣_zJn|2)J &bTxc9+Տ?)+ K( +'nG)g(O &zUx_(kCZ&z#d"B6ݞ`mi]!1Vu|I5:fh)@Ƈ]fIv]#v>wxo[;5'?ʧAH%%Ҏ҇y:s=T=~9ב!#Yb`@*k"e+GX'gj?5uBҢ?Bz6&o =̑ )%b/>FB.x%<֤o!}'t'/GԫP~;860{}7*l)]JcGz'|Xfv/kCcn6.K5"A +DƟ p= Ԥ-eɡ+ی6"!S/v1sI_7Eӡ"ʲ%] c%z u˴qC^˛ƶ?co΍'/bي`0HU:bnaU0/ vц .  /MA 0lElyc7뾟mtKg $*}|~[||_y(xAFEp`ݘE@Gjh#td"u5*eրnCp$C$C0j-&xm<8OX4Dު %ų\%L+mezVS, 0bEeIUvi Xg [󏷧䍚0" lFiL4SUUaO6!Q kb\eb 1$)_G ql@EO +COSkESG.&2FFDxS^ILB1x,^?nIs2Lu̲lOc M3psN4}mB~n[cdx׻ &}B0 cc?"܊4O-S0 LRB .+sF =J,ʬ]$̞: F5G"W~}?wn iٓ|Y +ݶBޱ^" +Uĵ. +qFxi,#,?NpnTW-<oFXMc ax--K` m&XkQCg]J.]Q,y"ՈH=".X}p".#:}Xt &ahṷ̊ ,&$lny]iQp91I-1j*ҧIR+6n<qEБboe@{]:f{uKѠ5ؖ!9 QqTQpiDv2\qJI6ԩL܅|yR[hl*{eBjJCMr_3K]d"ݑ +D73U/%UOgӁOiK?l}SEؔ[7:=#4UJABdyH%)t%_@y?ڠ.mwJvKDp?>bsRDh|==+/ QO>4.˿}L!x>&J [{g%gG5G{{ +9$u%].0ȧkeB P4~P3WN_ 4sh=¨SU2p)nV"jl`4~iV't3'0nzmtirA8n AEfz_a;8Ü?[)@*IV4ݩF0Jb<k!-['I׬Э*2kN7/f5OeF6̩ĩpO0ɛM2vb;k-+:PƙmA[y6 Ie(NcƉ) >*() +?gS ;$ ܒFhmS!T/Dd?~@Bi*ײun)=J _X$RǤrRDVrɑ{?CubL6ԌMFMOC ?',$[D>' bcաF5:n 謖6?.8$-mI;,{R",BbU]P寊C֔U-ΨMK9n7 VXTt +/w!?r@wf&8u.5?Hfٞ00]~\7ie$xf%KפXcmJZ^!7s3:JElb? |OHT + E>sNRSkijK(l֦ [Jl4T"M}R:& J9=G +Bt0DROu +Y%d(_ B8"&eMNdSߓD?U<`u%vu;qF{5@`wP`1h +Ȟ.?[d9<|Ae.gӼ7&./HfkŖg$0F ck͸j)mmTᰣ=QYm+;Y(.B JKR]"]xe]ăz"_4ca7M.XIAS&^>v7$ O)@85d^MlLP:,UsLOНTpX(73ݽ}Ge(#+\Gg( m6QPo WwD +$hޫ/3~}Y?NŲg[Xʭ N?wXZl},0 h󚀠#:>61Xlj%k',ݕ_)-JP)Ǯc*? QFOmK30s 4|X+ jʪiO}db:{Y{Z4xAO k0#m%4-#4l 2E mDNA>rmD'~ .UAWٶ GlvCjkg٬H*{, K(KN+B (P6O}G1ܲ-! Yz@}]}fK0Dfk%&R0 "Iy[%Sdʸg+#!uzaX, LBB|WTxi"QͤRB&t/ƖRk&+EL+QQi}֠`pFCasWe<7]t4^V0JL_ pLhY!n <3#kO&CxػW4$:S.ly~ٌ9e 3wu3ztPxCORH>W]#fMUhI s*js}ּ8w2'z)ReI(t;7 >peǐȑeD)鋕` #}S>2%GiG]XpgfU4q, ȒcƵթńyH#:dLoՔ}ʽs ҆ю< Mv/ ?V'#& xIkJQ ḫ񗓄i +r +O8s<$m+͟sg9yysXy/d"9vϟ!|;l{PW]8)1yDWT{)\TN3NZY`jPcgO`=CϞ0}ieΞJK%5| jL6eX4*?N3)Roڢ+cݦW`wf؂6NZvMj+y*WMMB(Hqt*N\QD΍s"ʹL+N-(48;᧗EJhOHeXo8jf9sMb%\r/24׷OJC2iRL\C"G E=wG<1VBۜ9yv@ՙWce^$=\&SHSz؀& ;EJb/|7+,-=2^oxv;%l}\hD]Ûtks48^c C#:1nF +~j +mym oT_mx5meÅ +{#ϢrŋZGOFō]" +嫃˼c |PMKp_ȓNSg/1BemX/(-v" + +ʐP!l@;M{*`]Ty8{{c/ +1,D; +F\P8doiU4~E;ʩF->U3XUOIvlg:!t1lSL_ +K6`}݁"103prrG<&:mbHڀfuvփy! \ſ6ngM'\ZT幫k@ dЂ/ztRNC\ Ɋc)" sKXLU\girz EPK'UtA^vb*vY\~ e_/\SP>{$sfAC ms4Z软="ɂ}*nօ#q[Ӛ(6?GiqxG4ѫ6Xޏ8&d0%Gu*gϥFҍ#KvМS]+ETq}[{Dv|34m*͌_,w!v[&0*f$:Q8ZۋF'(4}pvݵk@m̉nj>ρMJM.Ei=t&0CRl33SAh-hf-7Ocj`ּD>@Qd,Udjf# HLw Z YSY"9Cɼbʁ6vp# +kyG0{j|@O9řK L8ӀQxƉ֊T2ufO1z+]+k=*Ž̞tᬡ_ʰv_ BLۊ⻗{ +%s#˴v2}/`'mHrǶ1 #A D9s&b230|ȹ3\pk|lBPA$D894'p͈Ց +iT:񃬉a#iRsԛUvWE7hĚG=+lF/`).9 >#i>U^{(mhⲑs.oW&&eg +Rޥ9uq5fgKKv˪T]K 7 5#lt/o~ê쾌 "p(f ɐ &ܼ+E.4.hFB,[A WN_قo߲%]Տ/SNHJaW&igЁL/k~| +R3aϴY hiyWm5C>Fi`o8T;5:'xAByz_{J cTvv4re?ooޗ00BDw,j j} J-m 3*&8\_8ڴdkQ3 @IER!Q'j'RO OmѺT'Lb;7x]r | +b>>mEzqf?TW+H)$\4u.|p{4+n;(⻧\?`ޣ.APA[8OPAk ͧv +Zd4m )~Uqcۿ[w^_ 'TIP ӊ7[x&L瘤?@Ǜ^2_"l=~GrBL% `W#~%F@:U&mqV +WWt7(kc:[QKUN }w_o %j`\}gn;eEBq@j |ʦFwG'N9v_sl4 ̙bh?Pї0V Ds%z]. %[ KdjVӺE*מVʰI%:5e6 +t[p MOk͉r~cz#=~ؖp!l#Sg DdK)'m *}z.N3U;Ⱦ9gtL?J\(N5%]]bF/1u87Cf@OOԻ^oMid643 jVÀ++F)kV{_B'f10ޝiq즢`h!Yȡ$J,0zf(rfX K THeEVO:MEGGPPS&(VG2/C7NC1=g4u0oݶqKLK'.(]'rs}1zŹzP x9뿥xۃCS#Q=o[]kO-ţ|yb};myA='Cm-xUmŕ +~=j ]䓿S3*~=o#J+-K=օ/r(9)JE>_9^N]J}^&_Nb~oZ4\(,V2*1G̈́<ՈZ"Wz =|-RhI* jY~jֶ"xT4d cP"V;S@5_]eEI>CHL!L$=cj\VbMu.pDsKɨĥe4_ηl-?/6An,Hk cDh]dbEFc>U/f {\¤KvNʉ4v$;q-spZŷqbך5ڣ*F/J"<JQ>媭F^OD7&KT9E}E'ތs!f 48h_TH9M!ur2idKzpi./R + +y/ilBʾ5db%,Zob&-O2ne7 {25̍5Sh.h{9G:Dvnxѯ贘q +dxň؟z;#Cqޑ8MML'JO2IHthbڕ|p]P _jE4ۿ|OP.bg̗S>wr?aeY> i3[ٓێKOYo^AeH{D|iVjktݲ#_>TDr2deh*h]WSڕ}D/1-̂`)ܟ!P::jEy6QnKqK]wD2%{;H݊ߡ: ӈYO<`tFf5obkZ,`ya?'00"ab  }ٮ<ᘠ6C- orL XB pvi'4h6 Ȁ 74cP^Hu +a< hOIC}=d=O.q95SB +U>J)L*;t,d?,D7E[U[%UhV?zė3ʺJ1M^̄JKM +MHӘ/IuH8MR2:R< :dHHͅQ qt"$M2.r85 1>N>Sl#AR@"dԝ4uJd<ˌH28[H{,5zn% #KZ%оZr?}pb%%c} &^j7jyYJMUOU| =Qv c(YEнyݵƊVձr 0%2gd-,BsHR|grkZ>n]4'vَt3Ьm#gF;:Or[f5Z\rP$oA"@"NܶKA1l+_)}S13TtӺ$`lAۅ`i: ҩqꤒkJfT 0Arˏs~Arpͬp8J+=g`nBŗu9M"-I+(+0&x'O x91wޘ4>t +G5rm}>M6{W ;7FS8$TYGUiVO/ƷmEt#% mBrf7vNUlmG{¾L7-d~r3rtn\}4Ȭ$L\m8Y4 % %9ٔ=qTEm@TZeeo{lr(gH뚫Y~(U ?x1nF(!H:_>dxYukZA4N4LRѬc/fqxT>J'j7T 9>˝S&[Da4D1%5W+_;H~sKrKqgiwAtBp_;D-9zP}*\RJ".T^̴/YMHk` +LLi q5<0ֈl fPw[N1ugHfeN7&8Op !\@tw74*Q|*w4̱LgoMH$RBOgD} fa .Kp߿Qbw` y?Yt䎹kOկxigJpؼR)@녥9eGNN}dx'DGo,ah{|Pr|MBIΩsd~.JE"r[XBd!ZH.tPy cT_[47*=n1}]Х-C!GP61x-E8q,LjT=d̶W+vy&qc!d(`%_]s] Cr?<1 n XyRx*YB2q?U*c`:G1LZVZ(qt!#u+$>$]|W}_ϓgӵ|n {Mls4&Z+;YuU jU#0sLz8wv_ cNOdZ+dզ>.6Dy oIDrAӢ+F5¦#`Ӊ¾z]v X%%u^K`kʂcc m\-٪; V珵(NmAy=5Mk&ʾE܀ew3^iYAp~&:h;}'8Uy{ʖM\ƿe1 Q I8Uݦ6C#Eώ ,+/.{W;&KeAXem-S E΀v.t*5UjMQw(P$k]yiaL)]ɊiLL'y!_봁 +'ZF#Kדz"qw} Ãc~=&F]؊d|NNnB_\/gxWH{.wK0u1%8=ycK(0巺*~VlxqL)FΈ;1a"w(5Z|G죉@cL ϐM垆˶ CsAO+G6grn˨f^_Fc4TƇ&).5,Mݼ VZǀHwSnI>]SVo.t25i+H /)h<ff409p Hdo_K7,1愕!aZ٣#` z,Ζ,QdnLKq*f+@s"ͦ' +f?}}}f~ 3WB§WS\\p~sVH܊g(D((g!#cuyC֑%AHI yeߊ,y0ӭ>}bH1洠 +Cn*(r$(Ï]Ctk%ث]CsLtgY&H|B31H>;Su+9f@%&b1!LWL43^Ug6l҈G#KH' j3 zGᇡx(d9-fQGu7zhTH^mKأKt70TJW ,%: +H[a];%kYZsy}FuD %oPkMg}湁l|>[vZNEZ(91 +(Zx[+i?$wZvbJnYr6(]Kҗ80O8 y֋ӗ>ST#S#1(C319|Ȧ,2 &k *xUVfnG5f/<ߟ|6 AW/棓{hF ꜩMya@Bta# U%U'8BG xDwF[)p.Zb̜s̹Oj#_%N22ޏ\kfZVtEז[P݂_I&n?ӵ^H-1g^Рt|@眣˚&NDh(Zӡ#B{~1 +撵isl9m3Nx&1SPHJPPPINQJ* eXJr@ |{_yٯ |,uGzr݈Y1Nw2)bQݔy3݅$}֠-9ՒJP" ̈́%x4h+ze8dR0)b*&;:l4n:o츮FHM3mq'iVyWVVCQ Dpdep0dfdbkvVjj>F>ʹ% G[r +(<\[ov[SQEކ*,f9@Zzgj> %Qm<*T~(^ٶ2_pUwjl&ۉdkP# =4$M R+b,@sҐ]/[܃DM\xHm;M6F[ANIM;ɖyVf]D֔F`k8J +9NJdCH_R!DYInqLSF)KxP "Ûa?%`€>}X<'r8\.}x0-lt{~hκ4eubȬM +^p6 ErOƝ2x%V{=8W5ql,JloR ga/p=>o i\ñ8qùt!Q4ZEAe1O!#ЯG{(s@h2 Zq=aK )#KMPllxSU5=i v q𓮐"KP3.a K uc7/CWSvkM^0U.ɮՋ-Jw+z][s?Zser(mL,Ӥ\.ZZui#s=_jtr/ +;Hp{77_4bȷ.>7AC$ƯܾT_ؗ׭>nY3iS0"`tZbow~c9!.v6ԬHm9M('=g@B+mt9Y@Do\s? L3j&;7Ȋbb:t60)X<8!\Q}7$^@op^2"1ЂoB#1Xrn՟ \s]sݖF5GJ]s"6qPb=AX""nObPbQ\xoI\+>ɅTE#!|wE#%}[wi9FB޺ ]iý'܅}Ѷ?5go֭٩, Gc,W޾%<;f. Zx9, 4 tGSVlV&ⶦq6 I9. `*ӎrT8$A' +! Ra3< wx4k{mQ x1l)^k"67)\c1 UpJҋG2{x|:ZBH\StRieZ~$r,Պk7xSp_9bB[<]67Z$Y=$au[ɫ43? #C D=2䐺MĬz!,|L$+¯Pe/yS ^iR+gxZk19Nu֍n3LI +,_V$%EOv0ipɓ5zkar쥵GofxK#ЇTP-f*LB"hD/=a!"bN{˦JIbgٞJZlʻR^c-|RT/9gt'F2j;آlY1:'FF9b6!.@1pOo,M-z7~9{ +M)fL*T Q"]dp%UL3Ԯzi+#YiשzRq)eiW@)BCK|խ"nJat~Dg&FUlǓ[)"4^yەEgc*Z:+)&Lՙn9szLGzh#2덝csL +謈( !|ofrɜU!BhX˺ZemAqѮ?o-[m%0lӬp܉ 4[mcn}M!A[)v 6U(2L۟~ͤj{G^t.0PJH,A.⿮/!.hN~OxTOnc(ؙḫDQajvcɗ,8ur^ҩe̓ܳpӈxk'UߝG}9|#l9a%GY}S#a qGNi&7p7{I&m +pr0oFދkUEՃB$\;aE% ̫6Hexwl#Q=.ΗbLb;@f/* Č d%i@4jWn^5Փ.* cg2jA8BbTb?,JC# U|]P6  k*RzPFh*JB2t1t j*X•1C#)%CHb ?gӓh: +} ௨69h@`WKhhW.h3Iy@@Lj Qԇb_`įUOc\fAI{k'UwbUlwYEGP+2h8Fۆglk\b,r3aUH \ +:n\OR*}" M,vF? -(f<[^\M|>qm?暶~-?ۨ DNcڞ/T>×%hgʌ~)k+ʗJ{ofI@4+)=zÔ(Ud-kغu5|v} +ג%!a$Ɖ2_h*P/~тp;;;¹u{Źw;AfwL? ڢ{T_oZE +݊GTH."A!kF@d}  |OS|):P N*U$8{G6 cx7"Vك!dȋƒõsz=~ǹgt~蘒迸pEx|?0J􉿀NwAvÀ4A4}O<6\#,lAðRA,u]{1B~KKC;*(a.@./j 2d΄/^0AewcM4snlYZܷNoIL7TಱlB|S 1h0 0  bci| t,&x e)SJmnb!SVC`FD%J9(Ƒ$4cD!⏘9 +䬈C%P>1pi(/LMWâIfŋSYhEzhq޴,(兒O0 d'}EJD/&jmEO?DYiQ48Gb רhV2,H׉OJ2ZOҨhWŨmz.A:u55j*`3D)N7ض0Yۗh%:Cu> &B/YIazAԨ ;)ܞBh2%|9F>U໚1sk#ڲ*la] +NS4߀zI$"/ɚ*IG&'L-JZ/=sJHM\2 \-8Zpv[g@tu\\^ @3x`F:9Du7\|[+W:=z#EQnID urjeBB#[N͉R|fVuV7x8:i2`X9sL-o:Öptpr|`m`j,sXql-EMQ|kFJJb9qIg䳜:kKecL by(J5q`cG6յ>:jK'J'#zD6ٱ:).J +`==!{7ٶ:9W53:z}h};@d 7HU+d%SѼ^RNM.CzضƌVMCNk6i,BP7V!),,$|yX|I_ mI*g Ԍ3u3=ęE +|)Lxt]&o:8=]tۥ`,@j Vq'>/>4faݾf̥bhDMÊnthR6:ie͘!u@O9ot/Rz8y!M8?]TKYpS-jr_Ce*9dcA JFIR2$n 9dT-+L]\پZDX9~EBD%Dl;x'i0J[@E_Ub-;X:vAo]h٠*Y0ۮ#+7e&fHeGM)c0lB>ĪMcrΉ KѭgшHun=l:gglcim^)cV(u{ɱ>v}}$vu`В ͗ ='ڽz0 :=mb-j=xK{hzxK{`֖іQ_mѵKriKhjxIKvW(6r3ΰW#`Ɲ*Й)z3{u+F+={kk-7L]Q;Z7 ;~w`ZMcSqOic({;d7nm]K갑V@EPTt4U+un; ۴l)DSgF\0 "._bw \ǔO/i@-j8` }5 M>ZrLl~eH\(%V}Ykn쭵|"Ԋ{ZރUuL ܻ6X'nX[KhK{٬k6ët``OEpxt24ټ)캁 9TJxfѴ4pd={bVKI4RJV#s%8:wS4 0g>ޒ&ͅų08ح;/Ԓ. )ܘӈ1B`ݢD Y&3OGG$#(Wyn޸ +\} w䩀bϋQ\PrÇ cBm+O)QŧLDDڳ6nJSrg&yp3p'ьs a@_ +w8$TbgPAQBoH]^ ;6&X%Hli9KI" SiZwքgΎ~z:_b|+ICp ى.g}b DnS/mgqwź֟j~e!"@u{t"$c:$4[ u o Z;9߆8:JBuMZS"-B|:.'lwN3`\&Qȹneaݒ͕=.Șdask ނұYv'}HuICvzjr RBȘܽ7H@A :{^t|lsw ?Ho0o~S}lxɘѢ7>'\Ȧ4 څ_58Cp:;pò*^QnI礫g7%=XIʇ$qQnhuzQ2R̐y!oKTz"gߐoRbM?؜Pƾn؈~\Q{{rwp\=*`I5WLۺ Cj8Ό j([cNGD8| +1w`pULh ;`Mˆ`˦U&D:]If='`w4#0F7؛P= +22 Th❘z^= VO͞^]p!WzߨW2̮=ZhJ- ' )7.6#Z?.cVE{չ{^E3-l_&Bo~\/.*3gE;rȞ;;_A?7118C [G8/=6i1i8HscQyPlf6|7mil1S)y@L4O|s$bqE\̸9  i1Lmۇӑ~8$H s@*ie%& +BidR +ACY}Lx9 L1C4Ri 2P'z M:5SbVBv +aphuYW::)ٽUnKղtZ&=_E Y!d! P;y\lUЮsHZ:%q^_]њ0b-gMz7,7~oZ_E錐sOtf{!d pTtcF`2;P{I~A8^r@chT`oH{N L0$Yuz&ʀϏz Y' aكWoٿE&饄w%o\eE*}F+{EIA=AWP DkD(hJC/dIx5O[saQxN1u|?4}\됧7tluBYΕRsz'*#'[w K8ep%֕Z%vfvi&&ũ8$֌_n@h'D8 tݷ +6-+8mlgw02ѻv14,!;' ʎcWHF)鯞,7-5C֝-yȣ4)e3M +@|K e z/` /԰op&GAw_ią'gwC|t8]~xIP}aOfUWgaqO}|2%{# np\7PŽ}-FEZs&eW}mC'} yܠZJ)\ u$+`r菂wI0=0*# oeB2/cZڭ]@qn А)Y/А)\Jp9(K>0SU͏u) mx#=2/ʙ0%Xˊms=YfTҒeDh:a2~- iG3;K%3bN/x0 CV9h)%4Wk7?TU 2\6LT蒻mxASvQu$JV݄v<܃8U80IT<:1bT𴒂Bt"Td 3t[%_-X&4'Ү0/gokʔd8_Y(>|kDfTlCv6z⏢Ekj&֥͘{AlcdY64P9֝eг..>exq=WێW0Ya+)_9c{\W5@O;-f鬁]j)'Y˝1|45}v!tqS$s8v0jDeuhLϔsx96>ñ ྭD`~ T-u}Src\%KKZʘlscᓇk:OvҤvS#T: #A "i%WR%-6.̚P/ZI"dNh]eyJ^`Zz4j`0%4m0-n!%ضm۶m۶m۶m۶m1so~ؙѕYYB8tǴ.% ܁$,%do MزL]X&w<[J:84Q&>~i]9U ?*`fpg(J- ?T(g*-T&< sU1)=n&3VOL :Z5T^Qd5p&' +کWT8 k//Ĭ2VINteh&l`Ȼ(ȱa“=R + MA +ߕҁ (!-`aJ|~aqQ{Rƿa~aa` #O eC9pt355ځP5[@0EuA*YPhʎꁍD(YT s?ɩE! 3!j鶃̠D lsB)[!ovG t A];ڕs n#PI 9tIg1%[{¯Q#"kUit㼆xFx"iwiz#ߢ `տ|U8ғ1cॕW+IX=TIظ ?H)R׉ŕd=/%Iݿ-J@.$ggZ) : U +7>̥Q0IVI'^[ӽ"6H~Cҥ9K6h^T1-)ݍcy^fd:m\ȕ$LH~:M>J Ѝ8n`鋕o( }z2΢KB^oKz'%tC`S36tGWӌ%9~OER~xvCJ\\ C!BA 27C}B R`> >}CG'B&@g3jK#HqKV B rʗJ~"x”&FJ]Kc'ǿ\,g SP.gIa,S`UI'P7}Zc9(ݐ=cw0&[X@LYz,0#|KOvi649~g5Sh#vL$ԁP5/p#Mwa~qWtYK=)nӌ(nS(n) uFǵpA[ +1_؊nI6lmC{mI<3=|pƇݕd"I=DBw &P&`ϋPϓPΛb$)z)~k: >j|Q?)~KDE6`[ ۖ3; A.zrlSpl9*vP(xJy^ū]*>V^@kp=OGv pX0kGJg$tYsg { p+9 0KF.rlKC(F 0˚`` ŔA$ǐB0kDR,fSV:-8¶Bf85"[ΤrTeZsq I wJ'ZfA z4;b]&L^(f RJ6HC!O*?uYH4(#,Qb(gV1@b InGK)cB6Fu[_h,`8F:-| hϋD7[o.J$&dEZmUOT#>~Y3w~Mϴ}>Ep*Q4ؔ WiM=z/dv^~w^~VgUX'|qV=x/x6(MpeĨkeN: +GW 5}Pe [Pgw٤iڇās0ur2[] Nꛠ21 7à Ĩ/N=yJ.*AE|Gu9*["qkL#t ^Dc{X? lSZ y>ϙ6=߅76(YM SUf Y" ^u'ͬ]a؂&6=FE=π*,NLLm(VVFBS/g(#4EuU>lhZ.ꜙ"=qZú;Ηq1lս\zTZH]Rd<[}աM |S&L0V\/ +H +m9| >F#`y XGu)*@њw Gfeu"+и끀RPK05iPTI-1¹ArB۔nK&:(N~lnQaF>K]}`֞49 [SVr]U&6Y +|X=7?ׅu ˈw0Qtj2WHtޙQKT5" +fTDGAZ<ƔԦV`Xnݦihg,aZFp>ZEsUV9ߒ4F,Yy_MĤltrR qVۨ~XIYI<fZ9=!3wW7582R~Xq`܊qP8?WǃYY$WAMyٽ݁ l7JGQ0L"/6nogGy~VyOT{>>ItS^]fٻCD_A_)g/pܭ ##QD1Àn("Y@Yqeo4;& +VBR_ ;`B "{Pzo8#\.:w< GZbېκVtJ}q؉ff4G ^oL~GeU̸U,R^б4R\,K@x|n<'Q9 |]7)oЦ)QԦe{&"%*["c#v;IE:{xJaqygREbw% ]x_VDp C|Nsy6|Av~A'#~>ʸ68T6]4{ЛOޔe G}bs4+eu5sK Ǔ/pN-lg~caf?V6,)hfjPG,RTr2Ub:wr WQoyMb98g?7himyRs=;!Ka aEr%$U*cLIna4Kw5Us$\$̞pHlRpp%G%wk7 VϺ$M )yZa 94 z3'>iQL&ZB3i!:hCaj6Q3Ceu;x)wSǽ75͞ncI ??d9xCgh Qsi4ve"&OplEV{։O"z5u;g(mΪ8_PvFOMi$o̺. e¹'Y&_"~Yyy\TZ50͵ix}%eS}llэHSp@Ӂt+a@/oobA|mVm;Mc1$ ]fl %BPp-jQ6ٙ^3rcuiauq_ 1d&8wN2oG8q)淅u5r54r#?)O4l6uQj{,l/M}`pXM+jxDj?-OF󦂍KBnoVTjXzmXL{h\D,\gi~ N ٕL}Efsu.HM$5+RY ,"#,;KM) F<(D]pIw@v_Stuw gƷwiN}^\SPk Ʃb/qBY)xe/Gԁjdk:[4Q0Ipn5k I + $gj?:sPd?$ +v (-˫_ 6H7+_I6 B|k@'7iZU|3+ 1Ԟth#[my0:t=@wt!߈t&IM|#@gt)h0aL%ɀWdv(R0(@um,Am٩]g^7\f9jݙy26j%sgPߍ5,"P;SvQϸ  @03a-j\c6D(@&R^ ~"2h]{q_]1(c3slԜ5 x{N~ 䨱mA1$u 2x<Qр#xM< uqMX$Mbm=rD<\|bAWkzbQ) RցOA3: Ccܑ1LkjKK(ilgr8i~2e2! +9KS{2SI: Yƌ)V5^ ɒF I*vkvUoۙZ%K@3~xFPEv3-n*7Q @1ROh[B ĄB%#w\`Xr(OTfA~{=Q(m(=K!SV'RsUrxB%a>-\bY14sigҲmM_^&FB{1Y:{ֆñmn*{M ƕu{fV (ꄣuHh^! 뀓,,w/6T&aTvʩAaj[WRLX=8!!H/ *eR]Iy$فA.@.F6r x b0`oeƔ~ %5/%6r ]^RxgSDi 3KBP.}V#ې&YZ}) APY +亅,'vYjYqm!Uɨ@#&RJVIcjeDGȸǑl^3g\{|l(8Tnh}Y'̼zAZqxAt]<^Rn4߹uUep\/oP~|V ~~Oض#RآT}FvpwG&xGYJFxAtyuFﱞrpRBfA̘EK͸Hҥ\ !F<ϐtE m7;B-4իC`즖_R^Nhj^POob{<c`c@1N ryQPψkh>jICtmӃtC05]/0GRܱK (鱼د9e AnlCYK3y²+I`CrJ05rGF'o2& XGGU_PA6ր>P7"Q\O6;<(WN)Im:tn@ AO+ՉQiO@Wi׎Yi>X1Gڼ05A4 bgWw wҢdft9-B J1d85AJNt)_KYu`+~ # sC.8`,Hn^ ."B !/t` H."dΩϴϘ Wh؞!@ պ`ݞw5}KA$ ,1J&WNG&}|ޅ%57_SÛFtBA^|LBHsS݇zG $Ҥ8Җ88;ӾL8 P=_LZVVn +~$RlMi0&k~*4iEAXRoRZ__.iLBbR,6kGQZ<\i}HФ_R,WI%sJy!ZMI$鞓w+lX˜rV̂B_ҔҞ ꞳE#Qa6PIW?\߄K[$^z\bJ0flػ6aBk c-z' M 49 '{u..IYr X[o[]XmȮU溈r 9;!U7';cv3H{չbw.93O$۾3D;i)dMAsJl sm~GvNNsm)og +=Qm6t-,+9>w# wO$DX %QGbCoԣ-В)Z3$i$HU$ ;ICȞSk][˜IadM]K;bK)tΘOy{cfL2J{qHÙ͕P\*AajL ñZAͺMzuڡ kCbΐo?V]ːhB$Bum +ㅝ[l۾gZQ>'7]S,^h7ϮDjCuH6-_IהS$6WX\eZ{k`TξyoǗJØ`ThyD{`?۸VF͚}NH-Z]g] z-FZNgiCLY3W/u-HNat]$tRգW5 'V1ս=gl<x>~6},.3H{.8ї2= ~}K%?Z[7oM56Z0bLiNj[-2YA<- Yq1EB!6)腲ZYKr@, zTạ5m+s`̥lģ T,SOZP;UGNy[Z!}+3ׅ@HL1wKw^J=)mjmsDætϮkm; ~/CxpЫEsbsﲢY|`sqBRAaYt&,V_+T4,Ȓ5̞J1A,[Z,mOm8 ,q?oÍF-l_Gtj!a*7;+ 3%u ݡ/5(Z4份uhoW]#VCtI0oH1Zݻboo ݬCjfVBBU{j[9kmHbf=R UmL4E濫hc!S:Ѕtns6.W*橪2,"|j1 p[(R4t=M1<)G*9ҖW9YM4峭Q6%##l}4k"] ݩ".$,;LIx#iyx¤i|QĪF+iu +p4ipbi?g"KV8Sx~ H'wW}*iD~!F-hUp+H2tT#E(K&3%ĮPepvb9cS%1z!'(rj+},D儧C,^آQ,Yz@d ]T D e0֊W%{nm .uHP!1 iɈ"5G L+7=g{U2jw!02˟hh;xk޻/=J3ϨcƒK{X/fA{š;!JaX89w!LDw!Ոe + +~eRZ0w-uMyd:8bve]l+)G +/&SFfS/5hNiR#>ch?40gN.Nxsk t\e('e %j-Ӎp,Zn<\R ټʑYFyV&Y6 +DVh\V$aFEcݔ8g |ݨhɗ>uw<)q`,ɝl?0xԶ|B;@Bm6+=nαkP# 2#Yٞj)7vYce̘3H@H#lMrD.b0T`Sjmؗ1 + n']9-0"AEDizUf $`½l"?A~=u s 'qlRm#!3>s*hc ܒGf@Q9!P4f\ +E>9IpRz6@P|@&*3y%u_jzCP5F!ޠ% +[~krRwR h1)9~l]y>!lAKEMV +$3b}M{M,Dy/ArgWfsg7hh`}4o60oto _;h~TfX2O8P"o7h5^fD)񴔻 Ҡ ]CJrrig_"t֘WY2 Z:qF'yt&Ĉfv |`pE%E)tnQgv m +L'CA ,nq_HQ%#@0JJ~af2R;=J^('{ʢ!RtgK%E麚C~}u Zv_6б^2W*Y @H:+&-4 +G+8IQ1CT{`F tBb + @/EHdźxJcÒ2MeJ4|qig1nZOR[(SvU_akr]%,)BS +%vlvo(Kۂɾ`]DACݝ(mEdZ:;<:h~os*G1nUm): ;Ou3t܇3CA|⬹4X]'G8ܨkcZk4Hss&yR0<$;|~5]Mw=etsϩu +-BV\mLO]Ȯ|?i":2F 2yE3+|11P4@|ⵣ}m +yW|C5ͩCFu ¦4>ɶGb8G^vFuE'Y?,ʨkL'tU7ΰiq iz̋.)b9\4nC<JĐx[CKImͫ 6@04ȝ- +J 0kPfhT1,)m] l#矴*6!Of"5~A Ӿݹ.a|b$VΛ/ iъMj՞Z4?p8;$g1c/f,*_kT U2&ӁDeﬗɎ4)^|=->Z_Z;C!c?eAZz0\JFfus˲ūUo'CZ^%m,'㏻1-|O;mDw栆#+-{n;/nywwrArZWnʪ+{9mbUM<輻7M +o[lȽ/.cth@/[ +!ģ:{rn| +OsWiwg> wjn +`/a 7&lϯӜ(5b$oΎ oՏ/OgpH\iΟCoSaƷ[T"qo*С[oꟖу@\32&$JhƤ!u 1E\ Irfw[94^KndiI#5JKOe^9 J?)"-fV/nB)e}ey)e{eqxI"XQwڒG;FL +A)l=1 Hc}$8/1f)4#wl&sek XnBɢiEGrY=E(jT+IGu㊑9D Ko <feTKgu:9%*/uE3IuE* +La +שGw zIܖJ@ѓMVP e8Pnf@$wgc]bZwvAdr=],j1K(gTwvT=Z;xΆuP"Mfyeu=MZeYt6[ $N"UknA6+(3V9v/MfԘ9}FQjF3U?ݓbwѮN>m5pָcYi +6AGMT+ +>zf' g[F鿩QiJL#L^\]WfrtHU+Vpp1SKGlJ"r"΋ +M1ଐ0VcKDҁ? 3kt;D 8p6 + HK? ,q>U +zomPun8E=/ytu#?R= fM +Ԉ渧YcqΕFz")mTܕnR{`•NRjae2- !EҀ=Q|OfR](a+Lqm(7f^,CͲ8@H"b Z +t+vKu @:kKKX1H30),+¦딞T 3y$눕Al)dk1Hʭcv'$Y SL7V`~a7ԚQ=Ě$KU C`2p[3b)Cb27fuK똕<{uL OlfBB˖䷇r;QF'BMi#Mgf~g+Lof)z J +Ll%Nj3ct ~JCp p71%.})إHiN-ױBϡ& *1 +Q†9Y.P"93-ML(x08h,aF4| /:&>J: &N-6qc3ܔMbI)TQg6+1 r9C  KTDտ8X3-;A˷mƱ=P(211E-t)payJxd9;E߰RYӺLKO&D&^H+ Hpݘk>e6[teݖ*qI.0;\ "6GyRěբ,]KˤQi-g*6`WZ j4HX+k(*1p䮪% +ʹH?@gٜubDh_uTwH0tMkBi[AZFV1fcC}@aZUE#,b 3}Aw@f6GcZUqxlmv㶤 9k7zHycLC:3V\.YfPʇxM Z:8 !T%% !3h탭DۯPb2C)LsYEH8FIKcx搁K>Bϝ~R}j,kzjY/>Wɩ3aͼ9|]h}f9yf2ޥ9]]tW?VD,{1&7 t#_K\Cww޸/|]6WJ.:j>VR.)Km3t658:7jTN9:um(/A1oh.k.g+xv :/~u2H}Ұ|=9&5{q/,};HlfX?fp[&6σEE%pώVhf ` *akmR1tz[B*q_uКu*}x ljN8/bo86jP\v\ڶm +m.!+mD4!PP}} B8/^U|XvuM1N'4#}Fx' G@~ =˄_] &}_d:?TLr9>YPLቛ(P,PMR+U߮jzrԩOR\Z Dzs9X{l^ &E{'uծ#:$]+w_¿st}u^n67tCGz"P*Sjӂ#sVWbu)sfWم tΈ qI3ӨŽ:uٻ8wy>|=jisMcg>ih5;-\]$rãʽ{)vWG— +rnC D } R 3\\ +T7_i վMs-P^\gP9Uz)BVn,޽aaFr;% +OҾL&&{y?AAU:tb&y3.tƣ [T:4:3?dd4z[F,Qrh[|yJ.bq8/ဃd'-PXy3i7>l^1m2kJCX#~W(1+cE1sIK2[W̴+6ӜzLxHBjLaMg v\CF}]b#_-Ͳ]Y|[\q-O8k (K$:t`cD-sAv \#B=StSnr]~2!SyMh]~W"t UgE ѣ" qZLVqn_P<51Q#; ance4sHa$7IYcdLȳ {t-DYt9Nn Lv(JmC3,rx"P SnI$A)ȗ^E֭Q}%ݪ |5jŘvbaZ4EV.;1NQ!^?B6I$Jb}8'78Dіʫ3ٗWif$~g=CG͔IH7G8u mJfp Mt f6h^_'\k hT =ߛey}*F@SyC$7S9G{, 8{M3\4-H< Mr?>- n+>Pjj7ԏf}j|7.-Xaà(=$brcΤORcSA03LgNDg,s\'PǛ"~^"6Xl9YRN$WYM Š8(H RdiRkyQ)uKiFƅPs5IHWx%<ʩf(S-Q :qWOSzl@SVhO \QG M ] f,ezd72E90Wygğ҅scOpW8y͎LtQMEbgd;ygh/^O ;,O,7^Y;}g1\1ã9mIO*⾇g7] =O/g! 8XX]T󐏔 ä]ji!9pvZ%ל)>٢=o bTHeIK pf(oo?Mkss`& +kY_ᜅ()/@Z? / +iazBf@N8pt 8TD)ScEBǻrE'e9lpۀ)o׮x(BCsmA#ւ"_Eoeְ H^-B^0,`à2.Vpg#Np25["K\G{K[dPҽ)lb[镎T8<<ʪ(<g hY%ەG㌑ݢ tPZ.vP֏he!:ʸer)Yh(e`TA(WDɪֆA 0Ϙ 8Γ?!? Yd*}d xk8\h|\;B"^ xT&jǥ͹КxbC1Ks"%ހ4GȧQf +fKa$u'HR|njnܝYT!2QcxW}(Yyuݷ=JPzY*wuOiBt?c}ȝR5ޙYDԓ;ІF)y`&k$EzcvI"hB__i>=Q2kDo`H)MKٍiXx{Ibsy th|ɗ%_X]UxB/xKTA +̩[Ύ0[2ٛ6L;b۫oi;0]P;J _ݡRK!3\M3@PBk8(4- m޲Fq<-iThLu^>_܇*}D @b"?dǓjփWOIb7% 8q5)H]Bt&P9G_A؂^N0'I}ۿ KzF>F> ]-#}# ºl=|h l?g=>|C_yB}읂=vyxI؝Yjiϑq+A{r%.!eY2P-i\UTItsP&ʍ_r\<̍R`#G9el_bEM>+~tpvBK&Rڪp/ |Ea 2R4Gͯ;SȵQ}-!2 cv{٦/|8_C##t@^ϳ@ 9}ҳRW-z;0 ')pHrli(fg϶W5W +Hxɬ%0Z4 7 ~ $n GWjFJRT$he"gjƀ2GqƋ7Ik:eC~c pBTC&ZO9WqtM"գL\[8VϏz\wRd":RxLRNԛY,RbRW#S : +d)|"ߩSlߩOc\ꃤl[÷¡τS$ʛUEi `1Ü7fm.r#ܰe"nF{"? +Ǯt, pDؒ}בS׶3IHSS[[X-"V4VgfnG$pw])T+5Kڠ؀222oqYft%WB9tѝ%ҨBE$SYRf9 [r"܈>_2G(yަA3/^ ƣE&[ OGCyLTqȽ*Ȏ}%8#"y +V .#"M1VSl(?q/)]f?>.zP"׎mgpr2L U3-'V&5ҥÇ/'|!tr#vS-\mGDK𔶳k=3DҨ5΃U 3|h9cYqUC<1r"3дXmхFam^GuſG_ɔ` q'ؑ%eqYG8AsBZbWT{@AwG>Żd `Y`57ƓЩap*)G4Y 1+L[{TYnKM9d&Ǘ_&A7w*} +~\3H Ǚ/w'F*lӜ7qEkFlEj1džF?\7 ={$eA&kԶ(ռY|q)e^Y*{-Vu.ڂc ZvNBSy"pW\)7f uZ5^9›[d{4NSb!YTE@ˉ$ .P&4I9I<܁4fᔄ>$rq R/Y+ᩙ\.=O32άs%L 85k`f!=JOiH+6f.;ob< +!vA$Lʹiha`mEEpoN|u@?,x>uCsf*JFWؖ݋霳lR1Lχ0T{ .i;o'(a,9w)m)-ȌT*=AhB*U⿞W|(ѥ$dihSf3eqH^Mk_3Pɓt.%'{b X *mV.f?;?K!Ke<`ZE.a?fF`E`xRj~"VZs1OQ "oۓq.RW6.3(Yٹ]97i9Pcr3Ka]n^PNNL,| H9svp7UD\<Sl% PXC .7lRAһ JӬW96n|Mʾ4Q\~p:(|yrnVѱzRkW.%Gę$9F!1 LF5,A}RF6%]єofBrXfEDEWB{)3fQ3ft(!];qI?]r%%s41zмDbAG{N XyCݯN,`$[v`(67.hyd=>>y ! wM_NWtkg9/]\.shDp28&q`p:d&)h\$',̋ѥX1ʖ +1 0ٴF48`usEz*G=9M5!tEc2Ί7HXi'.6rѽoo>>Q*:jU+&P \LLS_+ܚoO+N[ZF2BhΕXH *jd$o{5[ *i+u8Z)mehet-sPn,SeNKgeٻO7ƠZL +.3 q:I; ʝJj;,=`XQ +t[BB!Wb~*"٧PtiR SRA eߒ]_CJû`|BM1fI +{?_ލd2]$&Ji@A"l<1N`7 m^[/䝼P|%z*_X|EuKF~&0Z 7>4]UN`S%(? +Mꫴ<}a_%UHz|In|uҶ~bjU[޼}|`[`u$vvG̳|bxPF4u`oK{1XH!Ӊ勒V%Lew;k1"b6pzw] muy (u@>'n%>2(WHA:#&E}*`Db w"$85ٿE3h/Q`Cd#-Xt(Y2K 򥗤+@݁lBmt5K7R7` mIMFH\FD@=2ZHNt& +1 L0@-7H (SUh~o~2bDs2K7h6bw>f5p?]G*jhc?jPZ*~^i;7V7&;VM &ZkEq t[3UB""FXHؔG%Y{llDIF] ƙ| ?EGp(rIgDMA`?G'Mk21~d+*G]ɒnT딯Dۦ17 9A]$tjtdz bJBOv(iW2 iaDX>Q_<Vzfs\ǣ_1™\?QY{W3*㐱}iýB\#j +:oHޯ%+x,pѤ&/UՏGIzya {&A>0)MP[+i{vը 0qj .:hXFo1m$5z>[P<ּ| +Q=RT9C$Lzby'\i0XHm-=ɺE#2[u w@rVO/%[~O,FgݺR"*N%|Hr-a;9xJC+Pfk#.)BD +DAY7ǔ ˖&Wv1N4($9]_w ي/|g{`x.p.{sdcp~fv4؇Gf/-LumQOXLS! kf_K(3@f b }JOʹF.΅k>arr3^" L؞y>S= cg @ȶvm܆fp%4I=MLx1ەY^5EW4E40~,?L2[&l7&M1VhI +E n&34iYX:u DTi*+O"u9ht%hTj[kXf,/'5Y0dx)D'.X\h`ǰ)".BG{+Qb`Inc`23N뛵B d#f_RA/h'.A CaFc@NB4n*-dჸ|ӱ uWti18(zvӄѺ>v.P7Qէ;y#mOYho5Xp?.O|NIMK(tE`Z:|Ӛ1l8-j)X 9Y hYs#>!ɔgp2Qo}"} 1tg} #HFf5ZW)<'O> .V:QqP/CF$Pa"vdV汜$'9M1iDe9Ш1$y']Ս '@{&b( [˟*Q+;[٢ 6 PDV*>r;}pNأnBSO&|Ҩ'`sM1s *1/uÔGCgg41qlٻBhǂ?[Ő"iUd+5d6Aٍx +/4 etac:r9zwv PUu0R\? ,?L[|MjKP(k? `p(˾$cu8Snc[MO鵭kSƮ]Is(Oe^YCmR3gWfT4sVEvt㌙fs’a)TF*@sbEʒe)4Ush)iU+3ƒi)4tVF+lsؒl)U+ÍPsڅdiU+ ӍgsA)4XF,qgDtY,ΐsfΜ3R44E)s $1CYgƄ)$ItI4RH)DDVȳy=Oꅃt'RFqVzriO'RSFгvO4'RTbiCOt'ҍt'̒Uسg)}O…'ԒVk}O҅'Έ3ےWسoW:o@WAW'XCO⅒t'Y󿥳gR: *i=O̥ށgR; .=Oܥ gR< 2i>O ߁gR= 6>OgR> :i?O \c 9MtfY b7ni󯇃' jQZbQ)EK& QnUl<'dTІ(L{>M`{Hc8ڊU,&HpبFM*mLLn Ձ9>ٛ9 %n +5y܍$5$8 .yW1OWbF KJ)jX[ҧڞiVi4eyx%k"Il vM^ݥqc&IТ҂l f&ҥU"[ +tmȤi]Zv)ΑRȻ6M;&' `NsKe r҄-\usQ^;i^Q*w+reM瞭^sJevawJ''R/#YƐQi `?]5-u75K a:IF( &V6ʪ[tB. ;C"%>7"0cUt6%iG]KT3 +ebeE ͂si،Th"^)lXEL6yfV|~ +u>u66晬]7mF)JN&v"$*΁_hvIe r%1f6(˖ŮWC ` M)7{uc#nЙ#@> +i\}ZnRZ.hvrc-8-E*u#בp/^<< +b.ݯm lP:ݖv qOAIIWknRm.6Sk՝yl5&Z`hǯ]*}U.~v/4uJ|I +WDSҪUJ9cDNmHF&+՗yT5iƂWkiTȶ^Ɔ߈rsdU6b|E]ϩܑwԾ'U% +r @'!\v\cǜD3>w{);SH/v+(4V+X)+ KRJG&XޣV k]W9IP<7 W]}[YYu>bm/K1=YsEOŅkP X pJ'|lJ|u*) y-LOB(Q* +1;)$eҵA/H'o([FHjhAp3bU +#}fUD"ރ\>]Kt2w8^?f1nb|o0 Rd+ns%-ģ.lĴ )S +`4\r I25 +^^K+.x ._xU$/\M/1`iz1,_t.kT?mt/ZE?p,nicsE%&']U;6LwKN3BuTK7@N#҃hWJ)IHO.L ʠ1$8i4g +YEY_f +(?No/"ɯ) +m4Hſɟ +ivOʸ#_ۘk\5pmKտX2Epl̸&^7^Go7^68'*Q`!^ >F"}^)> _38h3 ? {ܔ`-@Qd-b#t"|"(gHt3P+$#8+8 #F#~5|"5?@-#18-~~W6#y< .#z| .#{0>(1 > >1 +~0#e@,˸,,G 1 pxw9.#j<ָ8ڸ86cL|-(qP-1>px>`x-P>@¸/cR|\70D\4 /#G|s<?/!8h7~`/J<g810ݱhƸ/!h0| >qq9~_DGmc4> :HA_G-x;~_8EGx@mGx mG@iUڎ,)N`,̇<kM߻<&J&0yq֫q0!:j_?D='A]G/4w"{9xn*A]G4}o"}w; So>P{oI^G7_ >NJ1>w_F==_c)=_o>R/ppwq|5k68x[YރĐtAEdI \7q$2uep⸸OE>>{ {Ƶ20O- }fuyy!d"P%ɗy^u@ +yFdliI"QssT +#Eu`1X's/eCCaAҩEhA|J!ǹ%^ n(xBn;_*H̋O֏sΉmj(Ϩ0ۗf F-6r{H{D{|Vd[LDƉTaJbI"J SH{†^xy jڌ)s U4QRtG^n[B6Bd⒧]C C į{LT%+K o [71!9k O%+!)1zlL̕d૵DG&֐@CjF ~aV9hz{Kw4ZVVɝ@Ppo J0A@-2`%80=UY؝63L;x¼ʶASIp4?<ᘄ 4J)ONeKlQ`Re |IwoQk3=d4,]Rr72tln( =F $@3q>dze yE \@;&b^>74 S)E3DY~ygiNP 􆲯H)n"[J`0[Iaf/wР\Ϛ|0<ÃZ[}QX&q(t1;]qXa98-T/`Ec :i/uk4rLqRyȾr|Jk7E]Ħ"ff&t<ղtPq"D,l_B$qQHsWi)PoE3F.+;o*fUq3՜D)8_*تS;zipa 6Jם= ë*N^89N<)8 8A3ᡘNV2<^ KSb L3Jׇba%p]ܛae~}o5d +zvr}0 =Dxx΁ģ>׳Ka1_XYa!62{ ob#7'b"/Sg΅BZހp2Twadlw<﫷G弓Ɓhm+g)٪+u"?:d5 t噭+Ѣ:Y>T.n-,~6%Y`FGhx.#k%j;Ҏ[ l<O3ӑ(@IN|f8[)wnٓQ `E2%t+:i6 'M5?̛JUittQPLgJ+uۃ$}co[Ǽt?SXZO+a8h^I!@ ؈no/z& OKK=co tJC(fF3*:sn#o#)VjyPJ68f-ShڒLsJF +y˄8Ar z /c!o~lh2KWF߮V$}du^ uGxg  7B .ROq!\ sH1J")8iTy:W:\u46Ɇ )!a=zZN0X̣|\6Y7į"nn]ˆ ݙuybހ@K2F_u$dz_. (%m9Aj4(%*s;iqirhM>NԼU,%>MAfFe'xayTCzgXwKUo-;-A8[vA^}Gk8lD7%Ӎ!v9R"Q'홳KQ&aeM "un[`yaz", '|<4ka 3s%7? +˼{28Fq(>#e0'k"ؾ 7h#; !v{ ޙ@soa $O{a`$ٶ/H}:Փ-ҕ Jث`(5 ܓ-Uq I!fG@IL4j 1R긦F(t`ܼCVx̝4;N 萕z4l/Xmu6a ')_Ni־P!pz|a(+ Mk{zahsdEG Ze6Ã=ڸ6Qji-5,}Å{KG͚!|#8U juK}215-eؕagzo\ָі3pnH嗎,cYe_oV,]J.(=6vnH%Tw9y$k ǿ-7dk"=ݸwIv)oOxk$hc%Yp-KAPm#c\L`tջnal}#؁Z QY22jkٵ>krMĸWKMݗn'8t-"d"kyeenmbK'$:bhNO.=f~40}{ݦᏱ\T,*kf'?f8ï7ͣ`{נXDp?!)jr/n;P=] qVc`,Q@_Qn(7{@r~)+_/O8P)O\?0oct~5U]>ch&l&褷2o fU[KD}s +sg@b8MqZ7 ̬ch~_ۦ{98Ki*ZD[r\g lm6Ďؔ߄S] b)0j,iy!)AiQl4PS z5=mk.~d"&F)ꎉR[({ESqS.{P;6Eӭ^$3SJfx[1>\;):[~gxD73;b.Ӗ4Y~Bq ;XR +|x3AD\̻tw ;wػxv#zҙ/1T)$TVGR4N'X jyLeLmfzقl&u&L&ؙsbuQ@s]"B 紘]^LC6TV| By}" (ٜgT"NOv='vLQ'_{Эy0baH`bH TCrVqD fDTC b7~m.*ʦ8`NAׁԶ<(1۰AxSXt`,ρ +㡨`V84ѡ.ax L٠NpgPAJDqr 6K$\9Lׁ[G5e=YI̤gQi7ЧU=,1C>$0&|C4~iMڏ\A2֡h .RamQ +sn.UkmscI:\<͗lbxJko b`l]m`s\ 9#`Xүz2X8ӷr~x({}$uwH?]m㪆ȓ?7DڙlTo';0E.-1-c_ڝInAUTmdpNb c!Ծ߸q ݬqlHԐhվv}̲趒E(tPw$2ʵG٭\R7h 9j]Lqe&MaX˺jRU2 p_}ȵ&ܙnOƀ U_ DQYd.nw2Mr2P^W#SubφL4(-#'S5aɨ[U'YpEп-&fidRqv!>ڣMFq &o._09tnyHiV$琵.j-HrwSMLlO[zZPS]F=om~1۠(Wǖ\͂.gय<ڷFco;WlM;SjXc`J`|RUagޛ ea/_?mt;0? MdW7&gp# j75c0F;!7.KÝ..>Tِ>j)3ZdWӂ#=vvAB1o,˞'w d3bVC ܣ]fXi}jf Vvdv6)%ߞIfz"As2.QW _R x +.?e-) 5Fd$)]zfdDc)(l7H!j7pC9YiSl)Zvk[~>셄wcaGD:Q]H, I+c#U_lKuz+ub+ +hN6ō%-{%]X= +(22DF_WyQ3?0 jHW|1!pcDӃՆAa[1rA7cic,d fMԧ I 6u ;QLťalN~QcmھqS@clt}p2C4#!ч`J G9u!-/CכWO85 Kq >8 +k(G 2 A&is_Eձ՟Y@!Œ#w w5Էߨ)?ֱC9y6ף1w,k{myh#VÎɛ9ɿG0Mf2i]ޙU_F?'nS _|+ )T }UZ~jnqn9y0sYm[K{Y#K!M:[b\ԇ%:ڥ~՞5&Hڀ>oX!L_KA곊m*m 029Ҙ*-Vt e<|Xax(-j +LqQEh?@1L4mv'̑Y-o]>A9S(vڼa4/yQ\D>Ju-]H9=' @XM2}Mq&[D>J\@nEڽ֩3xq*=0Is5b!m`f kv"8uhk ǘsC<NiBmO*M; r] s+uh\{x-iqc%yЌR~K܎6uiy3:ie:]l *"dtͿd8NNoAPJogpUJ*voܶ쓋4Cw5̣eteTrI_(c`S}$^8< +Ue1M?:aٞw_μ;% :ڌ&hXOs]1mǦs zIsH8:I%o=LN#?INCP7Q<k T'1V#O87'\ꉬSo782uV[wyµ)3cBe-S9?$p_; ocl|ǂѧiЙ{{oCXdUcf<ڳMBvdh3vaM}@Ast~O?HKSyU)Al"TvdϨRw=QA<ԥo>MBq ?iKdr c/tzpu?n06(R(q%=&1.ңmg=%̖bPe|[/Qi7) +=YW+ + 0ʵ7K!ST@)VA+=S*cU},XRFhTAXd,2S+&,YrJ+V]Z2+lo/}]7 Nɔ;<5gTת,{=T#,TB$iX'+F]2WF5JGk,*1DbSpW`@r}>K޿ʼn]3"U];])EnUd3|ypy^K]CodnU(D3t BD]^Md,1tG[|2{ߣ)}˄ʦMfK}v;vOv'v1~rlwZcIwNm{\cMv>Fw]7L)WŢv"7M3E=DZCbtHBez +q!b[Z;|8`&AG8pCZ1Wܓ͙N^FqwFɻE葺-`2Bw5tebO@̪쫺C6C& iU"T_:h`N> h5(چ)̚}aƟp[>\|ɾF\VL2o<3?SprfvjpPjkUSֵ +xRðtBuXl{nGXr [tſm9Y9MIL!,VО29AN@V9-@ŕvB',=ǒtm0OibYdTWP.ktTriֻ6(0.p]=]T]PBDp<2NҐB%E]O6|Z/BߋZm{d}ݨ``D]Ӈ@{mz`g 2!Sǚ{hQ%[F=ꩌ3)FL?q(">ߙ8_WCcIzwĨ {` l`*nmk܄2]%GzB* 9ZY]٧x:m\j@ J]K [;ȻD.*tU5H)"`ЪYpdw@6LU(bYu]#߭0KptBx` 8L;[SUnSq +q_qks?:{a'κkařI7d7Ry<' mb +T; ]ryL4gT-ߴ|\lU;Ao\Q.5MVQ©9HNLrƘ>-2OM`*gIO;8bȰ;@F7+&c@Dx;%幤%9sf<z-O +?06a{yƞ] r"J`VfpiJaaP40Mhj;$2+' "-vfKIm(I;6!HKX)04F) /$Oq,L-( ,k]+0Iu )͎믶7~??ř42*- ]7Z2ӐG>_'wvB, +(eÙ\٫ojz2C1'Yb]*7!SUf;7_ wBQkuFxB1dPS + HgA+U|}> RpN PMu这 vAٌ1~Y&7V_9o$d{<}d<49P.A 7ēxX<7qXq_4H? 0AfxFXXK㾠p :}}%x푑5*H>SgcA4s츛O `VVY]<חj1Cb +.҅$z^QG?7]E[I1)&}80HAՂɟ:D1+|eyHD9d@i}f5!2mpM.߿ +8]BsT8kf*]i)TxwTڄ}$gI$dglb$ma>&tWYTٱ;!s54)I'P Ɛ`$1ZZa :RYUYXA?~?:u]\K^=@])ؼFhsO1h7;'Fla@qzhوߡ: p]hwC\Qo{6a[1{oB8{ܺ|:~CޓBgFо;v?2ܚsLTC;EkR1cʲ/MGnÌ0e|3F@0&3 +Q0;.Pxrҽ?,z2hpa00Sut6i=#KՆq C RCw2Td*І92lЉ>S~]~pt{R]r1HD\ڮW^mA(U(ʰU0֙vpd&8ud?[rqZWd_tw9G@UH);ܜТv䔟#]&`cZv/\5GbzH/ Y#Iu0Yupjd pA˥994`FD C9D`§]2~ZW-H;hiԮt.VO]lGeih7i4(`Af* {EؕY篶1WZ( *?=_Kr?"H(a7/uõ[~& Zչ*lk(Abz 49kXPx"`@0(^gbz7ԕUvP) \lܓ (uOˆb' N_-!;N\eiô,LY#ſD{4D(̏U&G =8- +>|5[&a1h7Dd\>T,J-}EFȨn?tLNB,Q?Ch!hќ.ҘN*1٫~]^~~@_b`zG)BR__/*{Db +G7wu*Și*\w4AG538%`(uV*RZ _8@/( 4JY-*kؑYagY@޷D =+7^INM߯* Kv:dd/mE2Je,¬zs&>{""Apc̥+JPU +z֥=LT`$| xNQ|,/EZS[.+ ŏ' U.;D| }#&fquUGtvR"L(@JCZCBcGOsY5xÇ mGRmҬڗIoho{#ݰHQ!£Cxyb`RoT?!q"ڗzg<"(R8#l֤ ]˭Ug&N!wvBp-VeVMUeKNNTO"M@J³v*䙳 #+j0 6`۾ =+2̇%{cאyf9}8dOIIƩ}TC~q gefMJ"gwb.YȪnM!+8Ǔ>_r#"mJuPT]DR~dL8pLI@S !<+.` rلSr50y1{X^UU?fDnTAE}0gUGReftݼF]f˚4NY2͢Yu0%jc貣2ax!2ߦ_e8_J#*:o-ƣZʸg"|Ϡ +R:('If,Ɖ]= ug8=x|jʡ:$\˓g-'RrȺ}cH bUg1MݞBSTqǤ" C:lcn.9d͒^ ?+ΉL +dH+D}sEc +xU!RH: + &r) ga&?A8 ǕHAI`Ս_IRlWZQhWӝ}E9 1 ?W +| jlIɞ/ב!%vdsь[dMi:2۱ 18 ErrT!~wCXyf``6esqH#P;F;t Iy0d۳w6Yd0iD9 Gmc P@ Pn.h#7 -r¢bP>YJ`@(Fy L`gǐPNˊ~а?qN-2qb ef׹o Ɛ8vȚM Z&*L`qUM}}I{vi4/ ~ߋrصAMAM[ ) 35ĜL< KP۪_ iΡ!**=$J=&j=C;y . C6uhm.~o+u_=/ü񡞶78.*J"h6 'x` SeG6/n`xؚl|&SƂ0l* pU];C;`lp;P8AEm~} I%bi%0B&M9FYH9)GhtH0mH&I&J# o +&I -`Wa}Jnl@ܯH>21V9.i*l iWn֐9U>˛YzاC\נ_mk{Hb~:I#܂o׸Wu;jr_N_L۸q"Bﰪ +p*LDd؊D_dMWLĘFZC +$Z?Ħ0xS }YkLU{;]h٨,Z|*D +6LVyt+R"WدJ9"qq~~33T_E0t9/)Q7`=!w7#F<47VcmiN! Os#qM*3s  Wbkٍ/ù+*V0/"D&-nLO#;b{ŏZGcI9 +[EcTAeOj4/FAĂׯ.ҫޛڝ0vvaMfÆ%|w4 Wf'/*TqjʉRuAa{\9bD^DN3]w\EnbikYUѾ5opOq_A"d`RU4fjUYn8|GOiEG&A}MD+>u&E! +Yf{ C#7^uT6!33#-6mEgV:Y$KLaC? 9LIC"탡ơQ_ /ׇ9q/(*?ۅև)"璨; _o308]0)]X''N|UTRYb' x;{_{YU}"W]0S}A[T󮹴E}R{8$r :3/_Zs}5_iS'ȶR{MHhYd.u(N4ZZv31Gn>I6l8]n '27q2u)<&ĉG~#`d@ ]7կ,cl|yFңIS*8j>&f˹z Cl˚AC>bB!lU`'3E֊NՖd "swA2n먠N "ȸ.2%SbIMgF ߀Hp0ZigxmgOu_nAeۤkDQcgstj]ɖjw DՆYǡF(~t 1PiBk ׎ Bczecp! \)cIJXiXP^t'Y?OE @m+q8. HZ itdC%4 U'^Usz0<>+=“*Ϟ5b4tYLl▖ݞjdF3KXُNNS'f u `VKc~CԆi wo GQdn1YBdlgF~#X`uGwtG%h ϰD_tazh,Lfi=&rO̊ Eڍ;O zshI97hN M}52q_R5OҖG:1 Wُ.\Î? ldcmDSaV %P+((/uZ̟/ dFpzs^셏啠2/:\K5 +-D!`H j\MU8ra#Vl&V|~| loGAM%S 'eĢLZcAQ$3ƴ:"` +M:xgl}.A50q B`rL[2C]wE:=ǀ5OO]t̀V;6 FBḴb{=K]`<8R*?C~OLAŵf.c[J[UAvH;FIcU[ꁓ)I7Qp9uiEWEb "k~y_VxQ:*UI۔}Q=.ge0ehmg02"Em7bRdZQ7t}RabY(jSIGeX=8 ya6hvR}#qsPk`ȏd3Uʙ7\[ V@ԁ!7 +2W[;}z+њ]Q=8v S2"8:-> \z077@NIj08 )KZK?YC2&p*Ul(eK=EtA\sn_z.>@/kf5JaA&D%K" %2ԥt(cWNZGk=F~ &[=4kW/1ϥrE#; +9dVE1ե|`lG\;d52,vs(ЭR=5-b=>8!D27$p`Hr4w.Ek xBixs̑5#CLSexv`/90<&ڧP{B6SEry9'8b`O=|Wt- V:hhkSD/͡Ž򓼻#@˝weQ6 ƒ)@6@8Fz2`++-:jμR<tȱ8t e>6.̺!CG.cD-MUfZV'+N5M"͓a/T, +$V4 t[z)Zt yZ0sa_O/ÎyPUĺ`?j˴K#Hm4Mfپ2.UvcrVkDFӷdؚx[Fq(_Lۯj}hC] IulQ#[SmvmI4z+܅`v,ܔ&+Am,mI?tJ'6YW HpgYl|XJҎVQ6U@($5d6~TMN0RH][MZv[*S;KcgZX!LJ[usʚ2;n,ao +~bIr {*҃ה2]*>33eY~-%(xڤr30eY=Fߌ3AcQT?=SO#78kF1K5?E ji T"~lY`ՂY2l_%56:XE3wSG/h1n&q"Es("D -84A"4L5!""$j6/^OĬ΁ڀxOΐ  u(l{˕FSm09$&%סF[Ӈ8TpenxD2D w V38DKXO%?0ۄ9A f':'WS׳p>b4g% 1O3x'pTfkح+&e$frDޠ:+jIpXeB86mUTzAojR= M4a;. 4j&p/dUX TU!a3hL!1GL7VK`P7TgHy6t2Pu]A!T]XL3P9MK L<iYx`a}b6QqKSr>J8HTT8>8W iQKWa,ۜF\-σJ,EH]Np<մ7e0}\0 R\q?da`$Q@jЍ7Zn^DH>vuiwAY#nئ?m/)sNYQ;͈Aveb%|l~7G8iKN7pm _T;WVj{4_,l +m@^.\$ |\kbr<۝Tb +--8|dX!s̺sA Y +TF'8yiUVJZ뮞b.T,WTaW_ 4fPMG>U{3ըk*pb೵Cc[ԗ!#"G /@B^#<䰃" i:&OjlG照ڧ +|Wsc=ƯkG[dCSsHmOb3@EjwsOL-%S гdvj?PO$!E "<$-Pv0LOt_t lŝ5Wȕn)f9g;47mO_Ovڡ3axO4ypuɛe߆:v5XX;,# ".8tz68FDM+&#UZ >'î1,F1R^)fߵ1v]XVanNJ |8('M)>g4!晍&` `U?4V<tt[L+a#~ukP5nK:!19 [˹OkB!4C,"L}J?$u~W:xk]:k^:/>q.6k؛,偙4,wDm!*5;Svk$=u7:pN N؄a5=U6cȈO ZXYRmf2oHg.vl +[ikrHv8.xBfH\qO؍{t;8OBA^nMUz;̘m"1: j;#B Mwx:ț=HT ^EApsܐQMR?f^Cmk?b<(ls@3 +pNUH!O܄7)U0s>=QȪŇ:$ȥ +\KA4, R7u>UDD?meaTS3YP%k7jQ%&Y~|;So[9*HfC_Mh960V]޾Yc&AtaXe+Ak~9JV՜Xu0(EHTbxt}Ik_]S7ΉO&uԦ~JIF:wv*[{2EU=Z=8A5biP|&Hl.i2$mh^64f`K<<}K4׶ɫT^P3?~~\u9>hrs.S_D_mmHH'~ %Xʣzꈑ ~ ỊA%̈́%yn%- Hږf/.PIY8=Bܲ0$[n9x^%]-yQӭ`2$3dz}" +O:7~.s3Q\ãc;ɒ9B=+wC,LFg}no]Zsi7-JYNHk]#Sd/+z`1f Rۙ%]Is١L1hby-6/k13^m^mr_ou+$眸M+Y:0֐fDh$nĥ| ;8 #WxcG@<@Я^/tlX.`,e1ʪ!6n +]t:5>;Șu +ھ;R]6iȡ;:rlQC;][Q[9vWڑl߶/A但/ML_3ФB<Ѥ0,sJPnUC,:ИCM:iڣ3jű]L5QQ琲-rˤElQ+anBAj5D:P)/ph7NO ۡ٨a:n-6)AG?A|e.GuTI#GR4r8ߔ c.1#n|q߱G6՛•I#FaljfbT +E&yn>٤fv[n(Pl{@lMѾ7oD;ncX=[w|܂E{ICz۱+YC[dP w&rqm!dJݐ](FG̿ݹC8z`P-f)L(2&"١}1J{G2$'mڽ#Tr7m7a|0Aw +ˆqn{ _Ĝ=nJԵ8b8A(3VSMi/v'('Ώӣ: ^c!((F^,Z'd>42n9";\I0KY62 污 ~M5<"T6ˮvD}aa݋Aqi]IN9)EEIos&ut9;w[q߀/H{g_ta͗^%dh6Mp뀢rWeM⎢'|P)& xA UxGD /*!tB^X-Qpyeto7ځx׿㞻vw`-qw_MXu x @(܎FyDb30 V& =طhl Uw) s^pt@|0ѨW}1}'K=.ܳQuM^Xku(fwჾ Z3'zzp;6K -6 x#F̢kʫnawα@ UYqrE22"ma(`dddX=!ݕUV8ڲneřYŁ4')&AN1F@>$I^Ypж7F`;=>)N{ը\tt<^@;KM/=/m?,H; 95ŊAW7{8gB; V0XJG67 -!Zlö/oU4=:IAS;WZW\}\לY~?&*fs2 !-*V|*MmkS#wƕ'-fsBm}5jyȊF(b;`U"-QĔƤ$x!Uaߔcmͩj#V2 ;Y0[ MMF:TE"QAl"24{}e 4&?O%!]+-#]zZrPPAgy%`Cy|c~vz&.ju\/Mdyl0 Ϝ<$IȊIF5Gϥ?ЋA-%k +"Aīq,KдP+ak(3ĥz)֖0GFѨMR/(QAi8#u%5ԩ ~K2AV/{ #ԟe/z!GQk.ʢdLHޮ}4\ TRt;+\nQ!+{jKKqz(TPH`Me rALAB j/˹ԍB,=z+VL^VY xX($%vL"NewpVާ +&4K9cjS*+8Z\{Oy`AKTs6Y9 fvHÁ%vz88}H&ILsjDTL)&@ #8yn%)Qin1"ŇNAJJ_>$eb\EpYcJbburjidWxۚ&HSQ *&:2~敡&EH-t湈tQP1fٙ4- %q{SȖSZۯMؼ~?.eHQMLcFS6w4Xk{["ƄvxfGIK@l| $"%^\b`fUƐQa]HPXD:A8f6rؾn;cޭ]&9>IJjʜ4(|.#Dd]JE5qRT(*-x[UBTvo)>YɵRiUTXQSN28ivo²i zAnpܯپ۹/l:ڞ +/ °nC!Y]dth۷[XWhXLl9͚KYXw];!MAqmXq[˰;S#>=y5Nsł_Nڐ&Axq"'pѱJ^^F> SGlkRA3JD{{|1Q2`zFūgV( R'_3s8 ٰv$<`P:r{D߱l#Iܯȭ]ln aQ=3#L_8s1_XpNXe{;:>{GNX~c#^lthuWx?e 831GD?9"q0u{TXT0rt U4W@H[a?ъtt5Ã92u,}SztR3.@ f!XZIQb|髍HXy{k3!IDMP7 [e ܺ +>8@BB]l$B5mc Md$ ÖAKy@oIZDj3$An3"+cR3R9yA&ae>f,d[OE(W(SYRul[-Գ v2] ꆷަ%IԧvuW;'F.8"r$fOШ?!|T/C?C#}ĵ}izk}5Wu Vj~6THk$z)w,}~8/uqW{?XGl +NR>>Jm~}<~/l/w #|q ,:H/UrOEx7_8yi+yiIM@U6XP lBw-J[fZ֯29g׼_3.xōC~ ~!J6aoDH ~!(Ck[vL^ ݃_ݓ5DCt{g6'@tdm+OTo$b0kGYVdje0# CڝDp~!.5F/LcDimQ N|Wʷ ]3D>{vmw$Ņ@2ìA͊(AOv}!H͢GWgV->sY9'Z(U]H!6:`R/)@`XR,g{^'T<|\hOx6^`Ax>."n~ɞɎ"0 `cXC8Cʣ we4X# O/m]XZy¤O!iq7EQoIͦvg)h܂Ȭܫ_m'$ǗYR +ϳ_1SnBy.! GeEqhn@@ڿ ]YRKPp_lE!G<,)^Iʯ9r f3*gNQ'\a;HO!|&H1럡.:z(2O3Ǻ'N;ZjEΈ盍u@l_q?@>ų%:E;>@7Hŝgϟ@@ne7jG[Ȑ1]_.rL]O;|;g=!=.2W[E=Q/ A&#Jo/>ףț /_̿FxCtxXix&&=erH-)5R"Y[ +4d"]n ͐CzKq'W˦D{=wGqte fpt4Nk4z\cA5sY'KSkyqlQgxgW'L6MXݛُbzh~mGQ,Sa +͔iG"]xFL dh1tp +U +UǻN 0M$<Vy'1؞e&T:l经%3yEbB_4Ƶ$MU><<:zQ}Z(Qh^yر=&z_7M8m`<5} R=_X8By̧qH<:ӯ`: `<6_-fJmB0 q~ ,\J4X>WoG*WA) "($*OVd)EsXY𖵅Fk4!4yWDZ$.~rl2,JߟB2W\INaH{O"r>WV|(.K+5l+3ԪqC*p*-T?[x-ciz=鬸 S~[:zNiH.xOB='D9aTf U'K\.D[tMtv7k.gL0[Q89B}g>L!lZ0@nL;db24@P~<=cʓjMay_Q KU M)Tf5߲E(\9B55 D5ʖ͆!!Vۇc]s9=a/&[`D$kDl,Rx aޓcɻfIfjQbʭ/ _Ϝj>jX*OS=(D+ucVKE8yb$U !!sJ* L+HWV\z*=e}JAhʆ̠tmP?F#}4=ێS&+^",E @#xo $t +R@4#dc-`_ +S~)f>G|NT1RIHx<UU_q!LNSOLۂ6 eٓPU񵨂0z#zD[ZX˲>`ߗ䓻P` GALpIIYM5:'^Jgˁ"6r.[1{~kV9=<%z>n KeY )Hg6' i9cLʒVڠJ:R/"s V**/?hBcoyRM;3 t[vaӟ?}4EP}rZ%}i*C>+0Ѝ"y_⌯&ԫ)ElePؙ{I6¢]^߉R Vu`٥ӆpCؠRڝt@`6`H>@Me]旕? +dW{CҤMPa6'1=O49S"l;s{+ }YF'wiaSv҆CvԶqd[EEڎώ(KfɴEa7÷V#M w5W+pܱ5ƚxvK }@Z'Kfltn!ܪo饳J/0Cl). hpG6+qQyZڛHM +"|LUjMYfL_oȠ[ۜc?;S8/d@f0u⩷E/)l?;&-Hz1'|7^<`xu +]6ǣ?YemD #74}4Iw vp#ڧO|K{?l~I{i\|0b*G|k'e҃@%^fkj.-JLה(v23J)VlmW#WʥK+ITl#O0LRV2EUڲ Iɬ%Sǐ mODRLRV>Zge h˓t8Yf6ՠ˙-fl/ˬ4qkPp[Y!2cuִ%b$ u;Ƶq+Ϛύ&YƤTEnRH%UMPʢ5~LG!VFV6 Fr&e5ke61bsi$/NU9E"ϲdbZd䤽PQWFdXuaikMhI#<\33=47h"Y&ykuPzO;/rOVB]˯$:;cRSA!EŔւirI$Q:cu}]:x;G5UO>,{c~(8gEIQ71 0a)B5ҥX :Ɇ9Bj5(*ٮ;l3 ၐ>gOJA,`Y#2D <վ +o8~5deؚ2[]T.D){ +oY>ȼ@ iD^ve%X7ph\4=w:˻t ͻQcS=8uC7]dPĀQ-"Q=1K'e)ǩ Z),3;U$F^pȇAn+e%d 4p4Zyζo. +W2c`SeF*RG/HӍ9:s~HJB$HӁ4_PYtsUآb^0]Kڠ>|=ks Ro d.Y= ˤqq@[r\[lzRyc= .Ifc53nW:Y89Vh I[Ay9S|Gre<27wu03T`vzNĪ*/G$1h@V;+F 5#qY\Ģ5{Ozjl#%Ou? tmݶm۶m۶m۶m۶m|}f>uQQQr\}3O$SHT$~ĂIqڸN"PL )#ǒ߅mLDgc\cXzj\ `ZlhĎ̈́9+#e -2-Fɗ|HE{)-CtUX#,gpa&?AXV`=%1`}!{{pZRX;|S`P5SЃwdBRAsn:M:&De+:݇~k[5` S5MfʀnFL0 [mT~UWp[η_p/MMJħ7j'ok[l/xQmn?oث.ɭό=*e\+퉱ROdcC}3@71 +e1Fv;Gh5;`l$({YV/$N m:,A ,C91u.DNb@#F^!cݚh/.$ָ>]Z7Q^ORkڀek'WΖxLr +)\Z錫#b>R"#&s]Teq~5qVqI"Yx]( /^Gl +ч]7s0duN-R" 8B6'e˜6ʏԈ10BҿMej%s<#3D2KkHnD6mȞ6 ]F2IEtScR?nqDZx=hZ6cbkB merm1zyyVA AJ_֙ 5 nOHk,rv|@5PcXBwVcaѝB6O`cZܩ=}lk57xxsT[XO'ٞ`J.Jx(ȣU!Q 8K`g(,s`?<&0ojM +o[@jʔp/iYIIEEYMɱ[Uy Rc\$O/yČ +4|bԍ0vmW5lyڃd)P/v _SSEUT-5P.WϬ)E𳚂ԝߖ;-d%؁Va,H%O~Ap)@/0_iL"IY馞]dU]`̎ FEwO z%g`|R>=)ƋE+焏h :RU2F3砊ɿ'?)rm$GK ?_mu Xz05K>ҡ{>{ԞQ|tؗt +A滲 +;vk"= +,36Q|$Ϧ>P" r"jepldO.- Vk©M-@;xbc!'dbB+84lIhMB89- sA4A&4U39]D:SBBUD.+rT|b/)b}0ZIEKsU>V8+ KF(&\GCXwK[-YS}rF!~Wf*buXJXsr|'/c縅>1 'վ0!(mdvUiW%K䓜a8"4X>i: +q4/ަp +!P]!j0?z_XM8F"U,'ZrdՇ tՉjtBŀ1 j-rupv6:aswy[^ԃVh]Yɗ.^awiG]:pmWÁ_:7m ڏ c'xy+S˵[}Ds= +Tf`}z( jLX{)g[Dz/{6MI&b1˹ߝqۅ;lTr;2}ƒn\}\nړh5䨮ٵ5e{voޗ{_,},q-pCkBCFWfzWh_={@4+>4|. ck}NpރPƃN^Л$\Ӏ^>ezѐ7d{֬펐 7;cᘚw/ܖaW.Iw;ioЙzFw9{tĞ=loy},o{Cl|{Elށ.X} 4XN; +HbT&9g뻶s=D7UހSxmD{+xZ 9;F(5ynebOPpj"dc +ٙV%7p!PR9;{1u*#(Tl #-Cde2gt*]ΛaFf9#KڙJ2z)kT{(g4!vPcEZ1h :iMnGe"k^P搯fo^ό5p'q{==mT2Kx%}؂jR +hO|^uI9e?tDC8,S9G"vLvK}-o ;X +Lc YW΁|bB-d櫫ejv6(>!di規Uzu"0X 5IN*Lv!QW +ZMX'%zUPURUJP͚FVeV0_*ƒDVeI. +̔IܕƒLV.)礛H6 +͔FF[wZ`.us.mwptm4kzK|f*PY6Tc.nЏ[r8㎱th;!q#K!O=OAs„Cd\d[o.w{}1"Cep_!q{d8 } +8|I}%}l@~tТ"<-㚗㊘y㢭 \pUԠ 0k%Ck_2'l_:k^ґSiU7Zr!|vUp4=_FQz9p`D_ELYx[m1ߎwHՉXK윱QCOc֓(aP.>1ܛ+<<ߋO)챕. AewH2uC%!/,s `\ܳҼ‚2"eZ 4pL|`_v9{1/%[+ +,Bs%z"-2<=ϩfڇM!B"`B *!KuM(Ѣ"/LY3Y"C8$mjO &6%F|)ΙvNPj|G `(@g@,'wr ,ĆG;5G Cá'W#WNvI0EЛΙNLX~ZOԸv֬)ȵ< 7l_L;iwɻhGPZ0kk4Hp~xw-P~&mTgtV"3EPo\Ò$8[iz3T|^DiOG򭳐4GgAe)=&VDeYat,rwPE3676=z@;J|ǯ4K:> +R OlpDʺDh 7]1Zlh͓#S)8Ax $3b5Řu4o]2' \@7_v9Ȟ+@*8| k֯t<Cib%\JhY7d-]c1K䗎qգokƓ&l3S|L Ħ}{d/7۬:2a9t,SC|1EbآSxLz_k^Z-ciUg1#W%Mz/dUޠWrf~F3(jn `=B̄0B<;$6`8p^r#-CdsB,PrA#asvq-UY& *t| 6}G5^xM{@\BXVB(ÞR|,|"# NCuMw!ۥL!c̸TJ'ii%"an:3W* +hd`>aS,MBVF ;'Z:׮Wo << Q刀 Ĝ bP#8-lQLaHMĿ)b`E7D1wHO(ڃ|@RTT!Aa0C(0k_"Ƒ>i +E&ڳh۾WY` ٿ!m)J6F:#ì #+ڡGéj )H2o=OC͖| eudO ]F;:H5-OQHt8 .9Nxd/K6[C zF5o@~8q]rd:WꜧȁJ0>_aU`'|OՋY S3cc06zs[sB롃,Ӆ=@^Q$BbRL}<8ûތ1 0΍KMwY/},l}奸/D7#@s[[qn%ޙ[w^41O_/ts$I۲4VGI_ʈ%I?^O^60~l5(e&Mm]hʍ^mlog8G15z_ͧ69XXզLǸoDVGmiS\+}QAJq&v5l^N2k_6YLv(٢_06d㑱PmTKt:>cV>֨xI`0e,7t比"FVK(K4R/<`0݁X׭VBMB:X2֣a˅t1K𗻬Q7b7ڧ]7&E][F88cΩؤ)x,O˶hoI a7 ?*iڟrI> rW)ۧ8zf7E@o3/mzf%fKEEj}gF+U=k<.R/6Zs^zgGc2yiSzyܓBAq8f;_ڊEyI(, LWaC??:,G@!SX`S !; \j?wBp@gv ətdQklT(ؑʛҢC0OolQȮ´u/0"Ӕ{LK8B$5YZ-WҾA|4/0|Nz$4g0ܑz{z܁F,C8T>mXRYu_c^zLybe&4n(FxLo:,,"5zn=ũŋAQs %Z +V^~5SG+\z劶6:,b[z/Vk0C}0ܗHJ4lvbb/Z3DE +ѬJ͐tHWA?-@{X(R`xxcWqlqg@B{hvhZ &+8 d粚6Q1T6S\ +۴SVFY.Eg[h +E422EO +&\+uj|+ʌ+ZZ !蟣U1 3̩fdyX(?D^)$0s[ѷ\0{o]}an>ߨ||BP|hwe;!yVL7WCt<'$E$Q b[;. nfLj 5%5&:$p`)TAt>ȟ$$I^RyWN<GZ2 S݁_m<[YQYWprgWeҒ>L,l ]$d-%~?): #KSbIr|KeOf+%Vo`o 0䣍U}̰_7ǣ3;vuo^J*teCftU`g5 1E{j! WkL]#N6KBc,Gb' 5T1MTePz.:˩Ɯ Uk$x 7'ZkeD>1:bgO.N'eչ +83 6]mҽí"MZ$%[bY+$-#\i;V3b! izP\(F;!x(Z@/LCġo@S<- J +YJYï֧ncz*Xw|C;06| ^(?MgnPa-FhL hdGm"8؏f KuO׉!" uA)aPddLku;"xk@oϸ˸aPi bDe`T;B7x~\],Ć#Rò ȥ+dîpcrX6oLufZGdz߭ "IQRRA %F uY\GP@jo62ISd$O>44 ~)+uSx˕V:~x}zGMܡ^u5s>4ure /L7 }aINHi >JIP]% n1Z UYv)0"!C%8V`"3:)2XBZUQ*5\ + 7(j\'r5"~nU\t +07 l2L"ѬD*Qq`Nl:̈Y՛ @,E* xI7DkH6^= )g4)Ui2\1.VUd4"YʖRbpYI +0~-,,K_4@ήZVQ +N@y."ROhԇqC> &j.7.Wtglr +i/ ^«ULyB$6U%:AM%L%|9ҳbiŃq]$ (.bExVeَbոfZ{Cgs(鹇js5Bطtʭ)hlݫs˝#ig1[Qx@yt&pt34ozfqP,^ܰԢ[}v@U${\wޏ +BcFp؝O{1p ,4ELj0@'F'_SS:{1GHiG%L/&9fvA;8nKYvO-p$F/셇dk#?`knBSQ KPO_\@*whFΫqP-QIAQXdvAI4MY9A ~7Dj]tE/94`ac_Ҿ& ٽFW* nr rL$'!ׅ;wx]KG[@Àx(O+Ϗ6*L,pԁhX (4=I[89OWrCJpZp +֐Pֈv37өgJ/UL˒kvS|GuzZTUnx}g}Ca! vV {hvU3K(3GFHFT5Dd3q$ nqH%SɆ,>ҺYZ Pqe]=Uxp3jq'1) +8}c$xq @ӧJ;h +|U_-d/%aWod+o ?&xM}*o[{p=`T=6}V>S)\u81[B{}ɖ1P =B׌wi+cIAb8'Z }ea6lgbkODb4A|͈6 +̬w%Mi{|pŀt+ˏ 6M{6l*z/%# 5{CQ%=m!D5U{WȠ:.E›!"Axe; hK55{;%-ARD4{8s.x+mW(Ɓ_.7VQ^L(n'o0z.Z3qfIPu„@ƽh +!<Ɏ/h;z2?H׎))IJ_6"NvHm9wFN=O^iA3+3):oAO a6FA*!%%wMYGAљ*Znjȿ股##ͥAmʚV9 ؠvyq>*^-%p?`?L6o hRQ8s,ͨ)m # 3SNiSS+p_,P.7\ŘZC)-191A<Ć\`FԆ޳ށ,#]Y^&rRIBYTiV;J0(9+`CƜtY[4k%;`1z:O1r)pJrΧz]=d#\4콂v#=#F~?5w/Ao: ::O*>D2DAD#pepJuuj'*ϚKr\&qԙ ـ@:'B fE'v8ύf@NFe'&baHNPzyGl\?xG!1V`yA)~c<#E-ôK `#/uI2{Bd+}:#M{vrjJm +D?b!܋p: p.gm_@-/PM-LBTX}ij81QO` S|JKE[ \IԖ?%?~}̉:7iOc8 ބd͞?i5mMC QP[12l -s Р7ꎨEӬ{ + )?P9cYB } &(Y;aˎ*8#FEy88X(Ci +}3[U?ɟJ(Ta"k :p.9iP7pI8>*OSKc|n E1W(  r.O"_Iw0BCzbw;g"{+Ҥq!Pqt=pI,2쭂6"XHIUǝ vϵ+HwDWhV)5h"~yկ_52OY h"Z>x{hRUdxk=#?3]PYsKK.? J7X̛jfmB>#۳N<Wʂ~jMB~/\> +M>M xgbfr+/3w/Xޔ5w+#y+ )@V8ڠj[F o"[ B ~e^"A"̘cnx +Y k|ث T3Q!"/!R $HXߛ܏w q +c ٬p +% ߧtR$OYK‚-3\_,DgΤyZE3!D & _~2V9;B/BۚWxeoɈ0^M M^+;nfL\섈ԗԪѝ@ŋ59װn99(-U˕V + E5-<<>^qnw״R@fw{n}c9i\bX(8.kF Rҷk*0j aT$0)WΊ2C/.BC1F9{S4*Ivk['a0視\.m.!]'8Xu2ﱱw^NM6 {t2?xCp.mCA˯5󌮜y :8$7F&9H!~ r,zn5]f6җ:$I2٦(`5@PG4섥Vcd d _MQPߩM @7ȴC:%[7 .KS.^ؗv"aL㤐}ITK[\ٽ&:e%IBSN?S!_iH^ij;VZAOZc)(Ѩ ɤtdV l},()Ô"ՉDWɗR7gNG[R+%J72%Z)- ^FE$n$`Î`A--ٍy8ʊgM\$@qKn,~a@[k!e#psq(Cor@s@s``Р1F0}M57V?#C`XM[B`Aݗ_Zkތ=zVg6T[H738&{~3 &n/ރ +rlLe-W!2_M҆$cq֕#*qP($oTx>}Y 4%ΜrE.k[n,z>hSePs8p杋-`53N"AZ.Zx( -H3N7VRqA-hڮƤzR&ʏx?I!$2s T.Jz*bUׯspoR`#z}'O +H@Z= (sgUhT: 15.E'0t9<(5#@:OOsh;jsFD.U` yo9x y;w bUG8“I#|Hcwid#}$c^ ` 3:D6pvz[G\|JŮJ42-Dؠ@RPp2c%>F0V g' ̤C 01ړm m3?WTT~ Ȥ[Y*@]2i-?5e]HP$."Q$|YʰG,3!9*y +'dzJ~2{(@gc 6d9䉇zo`5lY"Q(m3yʱxʰa3u#q0-CXA'a"g<(m13f㭐 ՘oc`*`7J@,fKEIH.kyxWf5HW7?G-T&Ywv%~.c1k֎۳jGq9ڌ,AgMj=0Y궳yEߢ"&oӡ6E.=Գ#Ņ?S/֎%rs4p \G bU%bVr 6"Ogl'H+ëL ;bTi>zF8U)]SxV罫cūиZBÓZB;L5&LhP͡LQ!En_/r&"(&ė2TᓄqH>^z=<>J(|7Ϙd!'g!@K%ESղȘ?=.! xN???~~ha!z>Mn?L.=*eEWgmiK?.i ʼ4ava~DY17 +͆u]ZGFp!ԙvh3lNMMx{R$caEy "RPR$6I0ex{^{z$ȺTH,_XcIji갼dpt{: +ɸ -N!tTRf"LʭЬ#0!OamKL͖,M%J/_).%'H`W`씋Y"*Fe,K&V,2FV(p(081G1S4Cʐa.<둣ʸt5"G^Ry6[.'Jh" <Д]nҫ]j>-mО *BƯ0@_|ݠ~V/xNmM̵M&V_]-j.o|ܟۇ k'rvw& +!a _GFQ©jYx2-:{- +g^eEI<# GJ JCĭJ87Qn_z%cMK?:q;};Ah#Oa +6]XC[+=cX!liKy' e_,p@ c/&XAJVb |=`!SHy<^;7ĵq/9;gc2]Y%s 3j< w @{xcn65-JZYoX\6 n0hH,܊]zk)5[K!.bgOHf}J!%. JUiƭx=$7.mhh5tH=鐜;}zJeJ/HIB;!'XW[w0*E=x/Y4Q[HDTDccA~Q2lہȰ>hCmy]4}SlqǗ Yv`VUa}#㌵]BܦmNCsݰ,:B˶}BasT jYryoPO'K1ae +645/쌏Mf}G%/\= _rѿnO8Ci6Mv_Cg[ +d+~س +F66s[b5¸#ꅉXv#ta1GbÕ=ވW nevHy2cFd/UGm,HXhۋ`CPCAF@w{MJT=dּ+h}<3jz"CJMTlVr#-kCk~rw0xâF(Ud5S(64[{W.4'Ձұ IF[F`0[̜h`m5&꺸hz蜑Hw #p,<M\*}T{h5_YhDvPCYkpo }[uuKhJLqF:N@- hUV1Gb\d K1 H }P\sC虤2jf5{%XcQM2b˛ܣ w4" ,oYe5OTRA$YVBFԚW-#*w5`]Q&N0lP4H]v!ח BcE!GoIG4fo.sxPt_[xWZ->򪹷}/osG"߿W iV0?Tɝx#p uN ֯ſgڦqMLQTkqWL*a?zQZ}|Aד‡5d^e5yE5qh!_ 컬!L/ןO^_Ejk*9(Y*rG2G_'tLrLS)&W{D]k=gK>ί)!n}Իvމo[qZw;/F=잘7$I=̾/0̜W[;''7;[WZ^D;k7nIn)un=Vw؎Nҗf ;WrTjQ49"k[Q+cWne2 BQJ2mWfQf|Gª|GXiGXG̅yBA( "ʈFؼV ź0J8C7j+H-^93#]I2fᒑEtEVlTo7(;Wj=ZzGI5bZBS~F[Q/NwVTrn mt]ˆmng{/x}FϡMpg$Fŕ]S[.4vĿ8q(M:jx)z͑]V{vgA M:̜a%wD鿺BTۙ05! +gHGJ {I0fxxYc}G4Q8ܑIJ}͕ ^eRЈªD'"gٯ.[wNc{cuc%IGQFѕhvmI⡈a"kjCˈqse{yF=d[/hܐst_]4US(Sʬ{퍴 9x)) ޖ{/\gYG2&~_V'L|jKti󡦒kDbu5y$C*TO1z x z-JV+ųxx, Y !,Nq<\:/OAsg~viG6pSUbIaάmG,T3J_O3! B٢p8@ (1=\&%x( +EvA/EY",Rbvl*w!򶏗% I@gI>QS UqlzVK+OƗKfܺnsi Vɬf~*d'qؔLx1lURiDw@SEJudjasb/v1$SN[V}el> J>N P3A>|Myrbur;zpܑɩc^gyQlVn Vn}h]tӟIRs/ msLsݯ qs[/?r{O j\t(9rW:f%{j|X7^2k@S0\&ZƬ;b[Ϋ:knl T"Zcػ(DY;Qp2۔^tٞ@~79P1FSmo<>JNlvuv=vvtvw>Gr6SN|tHI)3# Ye/W04]"ap968ޘ&hkE J^5X%M1ȉ*Lsk%(`xǙ\AoU=ݔ3bGtg@VFG,Mx$&$h VQ56e=BqJ*}̕ 9)Ւz +1aa%$uYgz!D6VkD) +̚DC(-XW)BE˗;;M1^KƷx?@ʁ 7BD%*܏L\T@b.[pi.`[HNe@TXw/r;P ǯIT ٪#,ce%"*ofd(t-oӥ8IP.STWL:>Lȓ72;ேLIzDԹĪU+Z\& "0&1FVLkd'`oWc% _92N+JoDžLWċZ :+M扲ZO^o5,RbpI`# ?&(H|Y_f~!z|¼t)b:q:BiwOtC# +D걖1$&Ey\0.Q^-i;2~9~iy!'Ho?L^20ހف7^W`LZ_krqK>6Hh_ܰqdƈ^ c<3PјKTW +fM.l%X@'-&%3fT)fϯ# 0x +X;fLq@QĕC1xqc$3?xgcg>`*#<^vHvu+!_cQ $A6^6xBL:r~m^Oy^vx'ӂGbS2tˮD-v5owap ɀ޳р{Q ,2G*&,ރyHe'&!$TKJ%H}[Xɳƍ+$GSfy f 1TE[KaZ6d[˴9\ˈ74\ S"w7vxyP1Qo%\_(r5JD]KE[kf 0ba9pIZ 32ݏE;,$28 EcӚg]Gҏ7*d_)pnS$˲,"2c$2;4AL38")=Es."Eg]DFKoC##/zbj7 (Gj+Nb1 gkYg$$;BHŴ.JWT8g$LQK]S)y"˲>")*1ҙa8P\Ad3Ad[]&a8̑$az б:%ɿ*=;?K)vNWl[ψ2bp8'ԡT&1<no0ZkszwNwYD/)>}kLd%$MEoӕ?JU~OE\EEf?^ω +^a}) +#3Eb+L+JbDC0SNΣ0PnȫTelhVv(D[Z(g*D[(cmb̖` 6oƊ0V6)D u.ҮqPW3B#Ӕ{Vz 龿E_(a)T^o )sb cn0X({+ LX+x0[&+`7r;0O$xg#)d6˔ B1P&zۨgЧ;?˂W~\ +^˶+ʠ,+h.  B(N;QFk.+QVRW" G[! K+!,Ad I,,o )U>^z@Ah ak +NvВكkKc@누TAh k㟰" sq]ڔ -oZdpZdtZtK)[thٲS#zle%/ qMv--$دKzO4~*0(2xlRLZN(GHXŬlb"᱀H9YUItDTZQPI@T6KWN^S(LYU:*~b1hNAx%Y)&fdce7HPY^8aSSo%9ˬ_ILghfcy}9ʚ:Dz*'Fo{XQ-,$|$&Sb:]CAWJ)XOy\ͨNb{Lp`*^_kH>-Lgy8;=^dQ 7zw23wF@dqѻt*Npatz&gq͠t?NBi|G;FEvIn ?>Թsv͚I8+A:o!=v5o^$rh.VI#! +^ (Eyz%"aQ-y|^ (ݔjlQj3 ooH_S"ZYrd)`ACE A%YiqZi +9_Gi\P24cm68RB$,,f/^E:E+:YDZDJ(SqfxU[ZUU4mUx +Jupis"ʮ>]Uh|(&M%YKѦ ~yn\ JErrV}(cU[ͽꩦ\ͮIM*Xlukq S$Ѣ|%1'r\(Dt"=:{H;֞JUeiFs=fc>Z f8Ttu^U1tKqq!IZbfa#P2BNu,5yL]i7\P'q8w1B Taʒc&%$a Q ++%%ₕL" JJywѤ a9 +yv&įCm0MҰzhv$U[zDHqp{ܓZ7*ə\тg˝6l5sn C΍71QhZK[UEՒi[1m2 [0cUl8pgJ;{39E?͛=RT"|MJSd +hd*vŔ+˜H =hmP?vP>"M1/?u\Zz^g+D֊8.P3\4%KEs TqsjXuu?7i1PT@# ?ޛwu<eL3. ZX:UeHRYJ@FDdTJ';yT8Mq 2Ts'74(@|jںmU_e(nӋvwm Br2ֹ4u#'mqfoj[jYֿ# $P4$_G$X"jt4\,J*s'" Xҕpf&&";8 Ȇ8Z8#D )~ ׳ \<ܘinVOXܓ.0(,Ph>2/ E9@W 4?ǣ! aUZR3΢??䠭1=kSrS΂pE-xA&]c T:ӥ+$P %Na&>yr_.8TP=2AQ:V ^<?$&;X0 e,;G4 [k,#ik¿brĺ + 1)*2b0|ŸI\cbghg8C'w-/w:bEB΁%YnG-`(t7I[[bsO"mM`Чw u&RDUknWE*~?bf»r=L,s8/_2>W YG+2sNlǂDtwJ},n5Zbd 8S"%%'vzYxiޢgKu4mY%QMɈI%q,Azěe ]g}1PԐmYrRDdd]~#F*b-{Vޛ=f\[S PaT*9{%_s5hwwWp! +ԥ +=4%#ˊUq]JVF2:pGy)\s(wP0ёqYz$^Yy覨8IekT47zVe#vNG(`R}WI>cbk%Q +q3UEs¬F+N 9ԍp3ViD$gVev}ff^Ļ1 +ms*)RAw9܂E)v$ p_%ykS駆 +R3{9}f 4]k QqTF$:ߡ&V"DYpK $}ul.1+POՋaoP(_BޔswwBJb>ptr#2GyGk?r/L2P%*vH~PnCv6zuBn Ewˠ)"o }$u.}M;=8Wc ;liF/aLſ`Bu q@g8;O xsr_97Z |V:.D׺RϔB^ X9xݏ{B \U ++"o< ^DJ[)7̬5 3gnUD:j(玆Sه< +}Wȋ3nԼ=F˰?J+mkp"Vn#_VjZn |Cw,p`Zs/WuȎJ$D9NCaqeX*p*r=uEe;b$Y/)IѺrnMD[Qd|P7LCf51QZI2-8WЀ\OB?#*J)ՂeQI"I =3Cu%5N+m6:$tr9j蟞Dc`Ӗ84:ݪw6pBb!Cq¶s$D¾`Fx=|R϶[["P3`q SͤDUa!NӭEH%'e2R7e jC6l|ҭ+=N+YxrPygũ0oc4:"BU+DnpW̐F}2MତrIw !ųxgO*!ޘ-aH/ '1WoKђ`g=xQQs]-;mKVCu!cn)NMxy4yXMXmaP5ON_$p7wROWX:1/'삫h Z7"XlFXv+d8[-EX!l;!R[L8/~-֭^-h 5BE4>)"DHO !uPgm:Kh++)wC"| +HcWM!>j +ZiQ1siQ gow[ci\y 'xrlI?ޞv ɻ]:*~27L+[)(dV+CM+ohyN8C$ũkgOF/|.T/9r5to)l)^RVWgsÅ[kNqN"},V5NjR*ckkl]`g (ak DҎ#zq^R(SJѸY.?sP"pª**ǔ͘UsiJʿgv'yk ,m!Y7.rxPdC|PE!Ob|\E!Ћ*] ι"!OVg]Ώۚ #H_  4 +տj-MKX 87i3D ϶m۶m۶m۶m۶m}3Mvf*}o*IJ7Cr y p8]0]( 4 jagE@vK{zhRFxJjLIB;C]O]yD5j߫?P}ym9u:,("YB˼=beyu\L8m'".48qCP%QdX pFt;MlQ|3q᷎,d ڀDDg]cIX.y/t +𘟋|K;6|½> _D D)z؟_4Jl\Un,'׋;{#^~=m\>.0 ibUbjv#l%ѻG|<.z*]1=O^jl3-;86.jqb1Mj 5N+د[xhZze8kTq ;X%蕕Oa0bQS0<zDqWdXȖǽv;jc#pYę7TVCp2!ĸ +?S]2F}%g[{޹xw$kgTG0G4pkM,&[ܦ]v?{;q$lERU=7r +)-Go (RUBn}U3:^{NU<ow׫*AЬIg kbf$Bڲ?L!5E?<.q>94:Ģo "=~၇`Y)6n ~BHxH8l#hjw7RiL{|xecc,k>\r{"-^rIy^PY:<圵<< Ÿ_x>/Ѽ."D4/cMSy@J8Lb궈.vJy^Pܔy?ug,p-! zr|-&G( PX01o[_8͹]Ƚ(myӇa!o[ \ԻAUXi+޵#[c!\7q$D}k4`WlMč$aVRƊ&aqV9c-Ff MW~,@DGqCL&t i~?Tjp$ui ~Q~kj3# uSjꃯwU/Vcn QuF [W~0X,]72M6AGI4=_hCd+%yUF.&.(ƍ('Unس4KI7x?t{SUG)`iQ.Xe.e O2=kR#0cLy '9l"'̠U0P䙓TD c' ұMH\@؊=HdeA8ʎ 错f̛k +7:0ASgY%8jM8PE@;Yz9hiIb"kys3ys2lGL3`  ҩQsbTaYGvnXY)H2%m)H]@A%Au Mi>-H@ @]9ecXJ2H?V+ FޡB͡_ROBL 1ICz31!6ǩbm +ZJvE.XfP-4޳M޳Nn8_  8=84#ʕJZhJ<؃U0P0!6"!خLZЧd\dfot&[ʯK zH[0k b,_5&yMeޯ [ku5VI>S w@\t zVl?\@ ë}EθSΑ +J:ce5%KVy +zX.V:ޏYu >ҭ& +~ءhû̿]3:jmǖ0O3 Z"j& [& oIoM~!5&{,pbBU#z{fJ8O +I;rXZg+[굷qۂ^k|^Ӽ=^:jB4k K203gɣJkg*KYKil]n8ȍ#Bhc.zv ށrtEn8pmh>}F-t~ǽ c }GV1[iD!*oE/CXkf4cNۤ"9&Q9/i| vFܞm(Ĉ ia"pХH3pLҋ.dPt/ʦ~򒙌ҦgX𽃃sc?Z32..n0̆~KAk8SrUKs3`^Vۄ|4͈rqr2u|PFo¡%]K%|qy'H,9穇2*O6GM faRFQ5n!Yg/H18 R]}VK5pz Gi]c1 ڼNΛ.Lb{##;FDI{]޺stQ~Jg؄;1PsQ,-1x5$w9 +,!1LygV[/xG;3D@w_v-̃`_* N<v'?{: XrG=:@rg>!Gz7tM=8>XF|Hћ|LR 9#kbFf 3A:(k썭9vnțhoڐv9Dkқ=Kk{?~rKl;˚M5{;̝I;i';n{JE{ћI;Ey3 }eK vxFσy_*DK? 3SޟU~B6i裬li}r%=Fz{+>֛ڈ#z3 KDzsS=P ӞK4NRCPE%V>"%|ZPE$VTJ%iAQ[!٬< ԉAYF^PAQn8V^P!qs#U"!,W{eA}cAr^ߑ^0LEd\A&zfPE !]f)ECAzv1,U^FO/ȃgzoՙ^iM(\Uq~<|aW&SaG9%qNZbbZUlB;z6cVlDmpjD-1.yzV۝? -ڲ n_v4:s n9SyH|!C&wgiYDG]fqr\hFTXfK.&45^b)an]NnL_:h݀h_" /9=4= vzFjm /\mّ' lṞ\1Xb :]9` <opGEk0~"5^wA7intAk8$Q%5q!Wl[g9q r!5z|:z-~qa6mdڡ`˿ɯbZͬR\Ձ5E н_YQU''x0I%bI&gٕ5^xzUam%=J7j e{\ph6%<rAp2@8}FDWsE]եݙBD8:hDZ61M-~i3 |EE +~YF͢`r 3&!ݽ0;нW:K +f%&P%TzѢ>)Zy}Y=\`JVr{9;Fm/հBM ⩹\9/ z͜pAvP [y552N4ӎ̜8 OcD6kJ𤠨Qa +Xwhl RNԴF:mAm[|L83QPg 09&/.W啃grBBKL]zQL U:S +=x #NL0%q=ɐ= l +w:0 ةN6hg'R`;38+s+t-j1=Uþ- gӵc$#caѹi\ۆd=VOT@Opu_9B8ML!"`CIr~1v̩Iք>/|g#ҌvZo -"O*<7hbtW~pc L1J<2:X뇺5,ପ`6L(Ppz]nnb֢m4́QxfY(,>vܼebq>2J'L/g5LlEԞdO˦r>DEh1*b0I =VwJkKhȪHKL7d]Gʳ:"'#)BRf/I N\yת\ɵkWlͫdA+uOVuB'׉7eW +'Xm [ry@y\w\+ش=`#1Kqid +d ev4I`d9 =1F>AHqpW:`l +7hFl͔Sqt,^V[e$e"4Qj} [rXr y &;40(ֺT`-k(в)w v;4+%1(p'fhU\ k(\'%s5Nn9Y]'ol[}NZ6)涩HHVZK|鄑/t{J:X:ҹtw޴(N<1 +![#[Q jnŕz2zUM!uP '3jvqL ?ߖ- +VItֆvrwEs-~-56Ső S =%J{H\h/vgE4X$+h QԚ-FnBrD Hbxq'{ZyPC8(nGbWvߦB@ y[ؠڑ"]¡+=-kj8\ۥ`ʜ߅Z*lIKy 1Tx(M#jPyK1+b"5khxN@[Vtf#Gsh~͏[: ۙG3dW9|? |O{8"3sqvDdN51-^ԃ4 Dd'|<ҏj9&qfxD%yl:6%Cx0 E[p%( )myݦJLYچ*˟#*.~r vQΑ2nKE=ג-l }63 cb\fZWf+T3l RV0vt٪5ZuUUk|L1SZ|).`rASkڙw«GZaUڙ9z'tSl ʫr}ZٜSzm+=+ +}[zS /EYV*l;/E`P!HV|)%W(qhT.EB|arVˋdzEz{ zW!U[kL ]k,25P..*.lX(r,^0赥x$Iu8u;W}ّ-ؚsVv߻}$ۑ-"sSqa[QuSq[2+TYаLUurCYYVѪYY+]QܩrZ;7ZSQ&Q[L--[έ [V@ȭzf[.3l-?z~2]E[~I-[4ӹYX=u9h^ʮXRRĨqͨIPٮXVzc|ʞ{ȏu 6[q`vWB?E>8'\̚+7dnrg^P//TmK7lcxɁ^]~}!04b]znxqInoKB [rT?.*(6Y";jP9ϻ0 7 Nvom}VH~_TI쩧 }>ziF5bۈ-5DڍRBڡ9#ɐ߆ DL+j*N޵g#@7ރ*۝!!c;%˦J#'%Y#B ! k}4qazBŸE1:udqNoL3ึKI˿gmFGǪ)A\́s9 =XIkԤ5*66ż}dO5&":V8E?t؂YRJ5::40+q_ +7ũI9A{VYo\͞H ye1 o|u VlF(kػˠ~ԠH48ս/oڻFlP4an,w:䀙6齺&v9F?g_rSq{qt{(MN="xa$ۑq"phn٭nC%|Lǟ]{l@]ȉI1SNclNs<9!>TzQꔟ#5Ơ>TB j KZU lb%-s!u5?T 9+g?Jp-O䀭|(CCn< z$ҟ)ȁzeŶ0f A:b wB6v0z^xqfna L:wN^= +ub87͠68?3E0V8]y5+1H-HH!v K3sTs[@){/z6X "CW,qEu}i-/JG۴'w _`P/9 +T}adBξr./ڎ~~mU,/G +q %ƽj&֜KenK A)—hMZDe 1Bာ3sL&t'Y-')6oaC=PLf\/Ն ]/0ZI$I +;. hTSsȹS&XL+ jdidiQټK(*Վ93TZ٬]}k{a:-2'  qf@Y:H5䍘!E5lV6,TF3Jup6L !GW2iH1GOU&-} L2đB`kxAP9$a,2d¢kQQqC 0d{$7ͤaꊍ#><5I{bqH䥖;FALJ>YQ\3l}tC Cf9x1\ z}H|;TrS WQjgh`yeO: Ddya>v9:sUsCgdCܹ#1t-ʰxyP=|˞޸g0snWs@dƪSjB[.O~1M|.ı?AQrԩa>ok:n 3X^8굧+ޛ%bvav+qZk^E+z>{On3猋uE^4CHr@t 8D6 {H3}GvS'Er| bdZ'}zd]+9 %Q9dRدIoC oHY|wiImԚ4SqoOG3.Get Ml`;Z1R囑Yn@IOEK-5t^ݓĮ +}!)|^7K?Y]r"}lr^ o֗(e9B~NQ B'2 +3M#Na 3FKwb,R Y!~>d\}24IݤGqzGzC3pgHUj 6({P5؛lk!抋fPN*jr a@UXhkI$gQܔ+I-s_#gQ/J/fBxziq i2;J6=^9B<> &O OI "ӕ8wDMayDR2?:&+T +zNeCDFڄk@rjPrd->GN AJK6׌5mIXH +;ǯ;\^i[4MWT޺#KOl[[xEm$`j!}Zk3덺sW$7^E["lV}Į"uÎZa@.$/=ЭW1ĬMIoonStM\zSq/nވP* +U&ĦHaTP{CI{Z.$@ zTucIH6U@SȔ-!L}0vZbկⵜ/G40beR;.ƌ g6i:W}]G/ *UVe]Ķԋu*Cgi$49xw杌ewnR4ӈ \“X>jLis5xb[jG8fG S&<}{ܾt,./]U0>:.N5侨+s3K140˨z\sO#mOkki Y>U0Œ VV+Z=&i*kJ\d,L联C>v75o9mr*,d5y]C>pA٭X݋,(M'^@KQ{ViA;;z*tqDyz}1V,Y@p (ˑRYBo*m#LЈKNz?gwY G]S|t}OkV~5" s.U"㐊9Qykř"1.̒c9EeBtON{Ȕ<Y~3^ "g=]!Y˯H0&)Ήsb9o CONڵfGaQ'y#ViY'$*S $xL?wS;I&OEj-I&Tgk @q4mNDY{EdU5L'k[G']YVόqLNd[uo NlUɰ422MqŎ \qM͌ڸ`E'|NzNz? +oɼY >R>`&#oZZe~oΞn{'[aV6X>\yZsڶ0m]V΍0xaEvfG,XM7wnnGKP7*r,75Fi'6:F jv؍βx \6Fh|f}M&2f^[N񮯦'^_N}^C^aNDjt{CqVry~l҈AkIkw_Mm./Ŭ[OUi?Ø$XnL6ԔQ17c\.S*9S瞅S*rS+Ѐ=V@^7 %L@؞Y6yV@Z6 A$`?< _~k3j}fg[ +kF `Ï[}H] |]ƾW G៳7(Z؉i0(zvpu%Qd2KO![p2r5e3ox{lή%3Ŭf,_Q;4eT0i I<.(qPQ+n"TȓWQJ/UZ`Z6hpr@2og  y(jM$mPXYZUi쉫ZFƪfXδ#9}R@Dr-y5[7o]PܧC#_p{W<Hse{8sEe} =yhc3,3"% g3 +\YkRvu5`OQyFkX0=`ԩx71>{_3P娎ޟA כ1Cga~ /6i@̪(M,ԵϯmYYݺY҂bXty٬)UB^hbޢ83 +[ڳsdw ܏L fvw>L$KhjhK9h_֯-pYȗ֬+qOy.O`a_^o؇=(Mqܿ8Muop./OKvWXg|s?%/XMp_ +ooM_.讷uM|‹^+$m, /H,O-(К-R,G=if| +Im_,=O9Z>jHCZPo0g܂eSBgfSRSxy)BGkv}\}2UY +,VCn99bZ@V=j,)wi0nJ) ^!#4ڴMen;aw ՔQ͖YT̴k(%!U#DITJ|0_zPo)'*xTUݐy:fBTFCvF,j~r7NcF$8Ȩ`ƔMYS87qe2cJ"q5\KֻK֙6輘J9:u6`b$v5w3?f& 2'V.!EQ8o>hh<˄J)bU3]X):*w8yRvwUm3šr~,"w3i?'Qcof;\Q]fMe0FR(yrayQalL_lPu?7ovheMeAb2bKP3of=j4[;aJ=,tުj + GYM.(Q1T[ð#\9Fdc>2B`/HRF/h4MtU@Ih|i6"\t2㞨@y* +/Emilua6(7Ȫa]kRigV3a+dj+0~ + {i#PrԖTjA6udv|~SW#>f:pNtJ$m >L)DC뚔H# )5R39Xf7 +e]tX`k?A6< )kb8g $r8}Î>;5=]a[}ؙ2f,V^ֶtL+{Ic6֤_A!Z]( +fFå CfFf[pTO#ғ=[ݹ^| s@M=^©H t ZKY #/@-s/ߊ7F{hpZo_T +mo$6oWm@C&\ }o e|lۋ}8\Ad; +,p)8ru&c@|{}d3~Q97:А^ϐOb>@yd>8+(/X+5HҴғoTe ZO6DNW|oҪhieē"ӫΦ% ϐ}  WКu\2{ؠ2OXgrQ"^2++M?ϭ&anPmi1X:ljm/%V~m?`yԮqhݦ6K󱜗`2,秹[)-`sqfGt_Y(댲ov[>7DZ +K0VhiY̰d,8=hҭX1f*جYڴi|R|)D9ASٳ؊`PX " z|3-AGN֧T:bfY.Վ8S:/=K l%*i *K>$6J.`Kvzux\9aߎK{xd~;Lh c63#)~Z~`VIU0wQU[dg$Q+ |ThS'WqŬ#,?Ui҂h9o(Yٌj %pi&/%y5ɻ9CM_ ]TxdnϨF^vTth g]ez k/ +8vOIX -:(5p,i؃-c,W3@߃-֞ ˏJWX6eG{f +fZ7#V֧fZyb#~"ۆvogcE( P6'@y7 dħ q 'wl t25vYA Uvîicls?==g}N =h }/Vh$!UQnX.sdV$?IO$+8ٹ88oK3ܼR4߉%&$[MP4VI +5I?Sz8&G qXmM8v%w5Ң |lw=rٝLg =IVkЫU *FeU˞nr#umo^tk$]|.62ne,byIq o|~f6esQJ^D:<1+MSzJk?0S 3cx7+ t)eyZ364 z.Q)QM5-؞KN-MiX|m*aϴ*zxe̬&κru;{+1r)HmX}&{06(MZ5=K bz$Thli'CC]’}iA TNb]:nNV%|tB,5\8P2=Dp1&մ3iW(*Ta7ES +XGϕ̥꣢=6 +} ,#q35uTWn5: +"Yh>ʏb~V_G{٪CcFkS N# W+j')-UM=ko:@|%)ExE:uVi~xr)hGXbÓI+Y IR䧀Țz(Xe֕ ?YL+ +7Kđ! 5_p)tR-- ՋoRi&"_%M5_eIJAԻ4gM&ڜirx[Y%SKm:lOXjlvc,5ɇtG˥y'XR"[[^O̭L̫ŅÒ1UQzu4\'Qeoo6 +sm.E󚴌ZeWܐf@l& *WG_,a_8x_BN8nyfQ+]9#ݢ_>ɄGk+$R+P,+HhQMږHh1zbBP,3Zu0nzw%XĠAۢHkS[ +Nu"&]uP"};߈"ޮ0dq~F+QcY]5V΃U}3/kOrY]R6v : K#bgbeo.修C7~t]wNfٌZK.߿w?2BFXޢުdBoO5AܞKA˽3l RbJ帕>?y>#Gγ^־pP:[BͻjBӘ̟pK/_y~iTz4\P'i0|~.0Pj}2М4q6qfxcqsqY @ N:a` m sF޼UzV[EeA` #ָ')+i:\\31`!ִ =D#F{Z36LBS0?~J[Z ɥʦ8'XKfrk!;#FFeپޚFʏAQ'zeȖ'W(l & +XEekB^ 7g%r45 ֬u˞IvCWQnbmww7qt0qr@(Ϊ1RWČ<1{ʑidHÅtJxp%)|0"<@4L +Q b+͕˞DVrgM$ 46!z[HA+p3| =UsTFט*=fXJɑABg +A2h !H^r;V^C9yzٲo+׌vq8Cj68>`:؛ 5hw_0}jߓbmW޼y 7 {7}++2MP;lԻqJ]M=*:(:xM_'rr0`OeN İu˯d[y.Hf*[tqmHzUe!pZu{b V[%1kvhK_?ӓ+s|'1V `YPhKȕf n:bj^ Ө\M֧tbW@5!C:2#hb`l?F6yajȐa1*V\IJN$g*( 2營ډ0[kz(/;ek"9Zӣy|s/tfspG )5H9Ў?HЎ>,Lbr2rdž`"Q/]TÞ6$4 f͈Ж>ٰ]3̭Ԡ<=f.&HԀmf^0dϝ6wP8D@. ԑ^v=[u?"==B}[dEVnPeꄰl_Ϊ_JcOH0,K>)Zv!{C v{Swv^N^ME$yQ@Th}=0JUXPE.Xxkii@ ,]C\ʫWi_l ⟤͘i:;BmDԦTL{ (EIk#xՈTU +uW0v8%F =a?8 5N{Ȩ@9 yw~xkڂ< h4{ G9K5W3y2F3&7æ~F;iZ6Q넃 +9DEaIц.AM}Ӧ1f2:|rV,*?|gyА5!"Q6uD0kl,Tt\W:w`} զe,lLJ:ׅ3YOQ"Zk\ ~l !sLc@e53çȒPn+m:=U?i{,ԗȺ}=@\6Xt{nUG;*6Z)]ce>NZKF;Cݾ{W@;,Yvlx9Grao^N64LwP׽-36:wH?-#t첸Rhur-jua/ +/~79ݖ>݈D +tE; L[{*^.G_ j(h--C͏7[bkfW9O["q(ߔ=iJ ]{Go{ 2oP3Gh3<{S;X~?B_ ={o5o={wT_^64aGjvҰ 1dGfG^5hp-ҧcRh>QgdO W$*|V.zP cwW w W +q>'?z{cү$p>=')b>4 ?8.&-m Eq#!]󼳶7C6/c!eu>ETc~ dQHT\', +~ݝkۼy!C Z^ SEY\y[9^3|7eSlkPLگbbPwN̂|ilUok{=_8SThhw@<|6q0X'v}QU qX oGGb{xjo;u_iN .ӽh,\t4gt:hL v/pdQhӭIƟy b` ~.%M 7UL8:?E O44Q88]G3^ s}~^WGg 0/ms^ih>Rё^m-Fs=(Yd){5Hf/xM $P^=VeTHVe'^WKI_z[ +y{\VO@gz^_ֿ%ّf Px*l/^?єK 8νl:&>)Jr/Jɬ:'>9~=J/ɭ:arD[Ol\,m ! 7 ']):$O>Y))biہnkm#?- @[߉'E◣;%x7 +ZމLE3<ɖee!TCQS6)Wt`lfN\ʡ i7Þ$ePÕcCoK#q@ CCJ\7?R_)ڦXܡS +іf*wC_RĽ~EJMIWz*H@WZT Ul|ssx=$=/QrFڂ"uy[rojldF a}I̱߂ n"tH1GXfTC;ޒqCC^C69T31V42NDJ/nvl!t Vwqg3ة-~biJf%Z㇧K+Vw KjӇ^h+\kuze+ltsC_yZp"7iXBpBv,ǧOĮIK}o2|I ŽͥY^Rh]w*$c?K^ͺB. LXֽ6>CR[CEcR2Ѕ ;JN 0T#W%<0Aԥà,-mK /#F /VS[U SQ@2g.5c6qy$|5}C rn1k L ,pK{G^:\==V}6wOMq*(A }vzPD$cJf_z^c8 +dv=|+?H˿e-ýHzα}iJh$[4yZ9Q!$ ޅR2]x_d"b m+;:Qo\ -%O[9aS.X]4׫mw(OrFy[ F'rfҽ2tnfl\/Ce̮b*[%2 }@TcmHC6D6}^ԥy-:3C?ib=JZ#֤D-zG{bo)iq f@r""l 4]Ah FZ>V"Đ7E"HIt;ge,KޥMqpo %Jщd*6 D& ]Ei/l$"g| R ȅSg~%5cIꑠ-;OЌ4ILf>Kr)gSzvu4L枹j_D*O)ݩG$ÙDJiSI(۠,'dRM Zq@F +i:VNi.ӏ AZũ^+q4y ;J&Ra5JUeq$ݫF[i%#5O`j~kGDv--YJfM"bnNiEÙ+ka =8%Sт-j{[fF$AӴT. +QI]HJsNݜRRSiתuTiƝ6 +ӓKIF5e7.$&Nm"8|W M鈇,9䔘Ҹk:oH%cA=bnH,"+B3~)5T|'LR(|5kӢD Ȉo kSHΌR,7)IZc }N+FC[#M%/uמ4sn>%c8U1pI/ս~ɂ#>"@>#?C1  ?W1=lX>1kl~ҙ*Am"X}<#cw-bpeLq7X 'zN2Ⱥ'jčُ3Hlq3L>!h\"P.:YY[s{nP.=0=xpL!ZeшMvdhv,RRsBURL櫑MB-bSˬM9DZc&p5u+t5ӮZS+nNp5Q*(5<5ڼ6@6sW7K\[]v9 [d0 kO{W`cY>"CD.)JӰgA69'JʡC/Ԉ援C/@MvEao~_"^D!ꏚC|@srwYdC]ksMaI-pPn_N.Z7>wإ +քaW.KhX4aݨpV9VCq8 5YY4Q.miCwJ>7..r:ܰhۡQ{{۲yP>n~Oj!6 &|)?Hl4y[9:E=iK(ؐ;ZKh޾V7¬J|Y|e[Eǁ{&F2侎o:T1A[I6"o* $xq]>o!C:_=qyPFqV{E%N=*IepDŽj!l:Z't G2,#>SaB`*ep}/#c^Z<J-yH):%=5=hHbtm3SΑ~h.px}K=ӁāPZc 珦ᆐӞ8}dSIMmEԚnE uuMI FJmY kc>oL=ToL=L٭Nņ FVKѴ8x^Tۃ}Ip|bjPAR2=@'O ̊u'oOiVD_Xmo JiVMKG0>ܷp?=ӀnmTW.1M\Mb躬_λ10H6!c4#M;oF='sؑ,Ŭv8yuK5>2d4K dB l9hl9ҾhIBrA Zt6IRgأً{f:p tѵe۶m۶m۶m۶m۶m_cwT0+Jf;#sIxeFk|X[H7W|xS("wG25:˳O/jN/rx.Bh #^2>1QUuKuO@ gψoȮuHn;9;IW n$z@-.,|Dq`|9ּj-ðE2PD Fs=ܿQ>\E` E9زZvt}91^̐u[_E`"/ڏ)K +} ernWF>f=Yf;^Qz\UĉɎx>9nM +=MhK,EsIwGX)bsvS< #k_<CiX~%5xS5$ԭ>RD8Ho" .=_a"oVR|V)@]"3ߔ}TByz{Q ؠw: lvA%LώX|FߓO'9 +d:8'f7!5gC! ^O}hL5U(}j#ZKq>B:1<\2uǪýD@:ؕ-U-5$5PDapMMP UAE|B@iXziႷ80=ŭʪlhFԯ47ޯ;?wPiGY.X$l2t#=Bc={Z=B: yv +B10H5tUdm%y}zulݸL^'؄Ss\Z+KIY7*nW8gnjVHtîjkw1Ib!%Db–БFnjx2+M'_zJ2S-ʒjcJK e2E2ԊY3 |H.-(Bb' +M2C+-3t؎5L,-Dzn~| 'SPpd͌%bL͗HǁQPBERIƜTtYJQg?YA`G XVR{2tcBf9l 48YL_f'/-} !.-8OFH ZݨaY nărX,j'G` @ + tNz! 1P#X`#toTɔ0z1폱`ҼO?ݲvE13;'o4Z:K*%hmLFfpdboc2r!:~51쭗tj%'MP:b*qՐ?lJ,:"6qt.^ࡸ0RLߘtVgucՉR^G+[_iIg_A_t>6z +fS(e%K +ltjNw92a'JV,*,-ҬLHNZ͊y%DY9:4m*laOt_`#WaOfu%C#Upbޤ5%Xtɽ g8,p]av agH<|\؟uTLs@>ygfIw*),gd2, k!ЮOQړ: )Q*~n:#wȵ`; U+M:#R!4ݹ}-|!p;{_8wجwQ[z^Cw(6[}\gswHS[CN1.ףJ߹{͟w=JpQqvԷ#]T#[s٫|,'UG'P6LlKOl'L4Q4Zn lZ\P.9R|ϣ@7b>ȑ"@?6;h`"W?$Q/#ư.SwF" wE$G"EQjšg:X/;x +\ n F"7 v\d&]^.<kHV2eb-j'F=M3Rju0c'  GG\@,ڌSI +Qbx4斷[Q@~a|bDfqǻ9k^.B:b+&Rr<oU Iq{&7 O bܕ~qȚGHqls`qȺwp \b@ X[@<Kʛ xH\;xOcqs9gy—%(%:2n~Bݶ.p _UVn 熓"m}e$4IaL9ĶmLflT`]\(H~@I(<$7˹hDn` \]^/#K`l3.|񊋳fO+-| 3 JV1 pfaWbϜypMpf4P{pÙ@ & 0͹+\0WHQI<hXqqɏ4N>`C bBk l6A D/0P;K(ED$nқ;ɍmt~&hZࣞ$0I_뛢J-1n@ j^WRwWQ +^s\VgG-$ߓG:qntj#'8i6Su%1ʶPkqc3Kje g_YuJUGEi9LEqύT4X8 *6b8i +#rT, tv m|-㫊r5SMuep@gaWe +2nME<<=Q "FM3t&h-9d_;ؽ\ ِ) ?Ux9ac o\1o4AyCqUɔލP  ޓ䎘(8Ƈ@{Ѡ}%B qğDWd@{!fDu0=תhlX>ĻmJ'7Bj"޳E̚Cf׍q * ۆqAOOj(c*3J1RuҌZQ Wg $#c +_'@1#ʚ|A4iqcu@:bu0ZFDG5#A3覇c-򚉒0E lFQ#}אBb 3D*>+p)r ~ߑT>5],PgB4ۨ#Tu+788^lgF!-3 8ΣLR=Oqla˦|jmA!C8cK F;&|nB=>@3+k1/↏86Q7^Or:VM4.oh^Q;-Fr辜M!b4FD#\WLdU&[i[N6VHXX&`6PsUZJT:#SzLX*՘][k 9O xTd('\O QQ5R:n-;6R-e^*>:\TnkMУgW6.i.B7*FZ@_'Vn*[ fAdwvNX4bk|8SKoóc^Kbv&!;$!CkkzG*yV{9RhtՇ˚ +"PC(rrݓ}Y\dY6ۻ UR$Yd|0]&\F][IJMlgToOW[bqcW*QcqUCjǹL, u%6|W*xYd^ +iFFB7:2x^ +}r(~۞NgC+^AV~ npo=ykw 6q} ijQJ?EHB!k7O70 3Y\w^W^2PUU&i a؛G#?NjIU +\1s'~AS,:eSB뤝Q7l^ Cb{e /p$v֏GM"cQ,:Ҙ*J)?;^؉hwZe .!= SZPq[tC@ɑl^BK9)# {6GV[TGd@LI;X2J)J"xtJ%)BB;AݽcV +&2f螸t֎BT9 =t& y g0%чs|IZ oYIs0IR#aZ>$ WˁX Ĵձ(y+K)Ä7G*u6J4ħTyFݣ"K>RE7G-H?f _jYy ,VQM:3B "ϴkX Σ =4U ?ꔙ1 3EE4`ʑ2Ӱ D?sqAK {'lw>BJI@&DYQKv HFfސjPwq;qE}(Ϋ@4fBقFjLe@t[1{eКrϡ3nǷl}zE A&1T .'d3>Ionu};7d2G( +h5~ =,z!- )9ģC(onYbf͛7)clշ-:Omk|-WWHjJ7(Ĭ>fzUؼryLKIhiXcy8P=T?<_1 ӯkc +E~0sҨ̋ Ⱦ.C@[ cFK4ΈArTZT4e:ta.02`7=s%yQjxl}vE{?!4dL֘6$Q(V}ni_q#pXmA7x-zF7lŬ־x~ /N/֤iw~[SRxwjD$P+*M"2D'&X=Kbz`/b魿cZ|\;5J)%˔L DH$>ꛁkf Ph \ZO)㈖mwvs@^<[Z͉DgX>{PI ݳjy1#UwJ䚑4"|,Zzo b:*VAAuHD:uc h`ǫM&_sǵW8IP"f\1,JbŤFP**2,g ^$Fo Dd)a֩%c7#dCiU.~K +^FW9^/$,jf2GX,ug h#-Նh&3DUն~ *߁σex靱Dt^TP:6XnuIh4HbtO+d)Y* OFL&|i!p*;tV{&RX bƑq󻰴Ú&iNyu씜 |K-զǥnMח〶g52l34$f2Ml9J/0};%M4oןWTX<_ϼ|? 񐲋79}Jn(w'>}4z8_}kw}A* oλ^YнŔ'ʻҬ~8毸{+4_a"!0dz пLFyZxH[Las4І¼GD@dauaTeDƤ xaݹ9iq1 LD(T)Ŧ- Qe- +ʢgՊԶ"f)|c1vGF։yGi+A7+9$jU HFGdMjUX8O4):$ZN^ ˻F&3M8IUb7O[bAq>=S`#8kDzgb쳎C8rGpqbi}*~f5b8xngwf;<0yOrxމb7rfwޣ~=\z8 +_h78:{Oh2Pj XP\g:4Zu"\tbtb:p崻֪;C>}c(A/#9eٗ^8u+/ ʡK=+ѫX.!nP=,ȕF.D"H7LL/Ƿf.1oA.piƇ[V\^yr] )+xBզlӅt:ڃ2>c>XWeqӊיъXM&A)X]E NN„A +m8{߷N3Up?M V>N3!Uv?RqD! RH?VkzW"vf։*ܲV\Cp%<;"\ +UĎ@ ѬsX'J}ǦxBؼ^)r=y"0>4ix=]odP9C' Bt_;泳Sޣ#3Hj}bMIz%{n{Gn|O0[k߿r-ȟ/%yte$eCijE<4LE6Yxf'&/Xa6^|n]ib[ޏF\q59$nBen,#TȷV Q}*}ᅦ׍=j7_[~w]]g@g.z( .Җ{tWWƧi$[vPy7PNLE"] +G{Q8-jqmKھa[7} +lWzoˬ +. ^31y*ęqUI0&;CobOpR!p20fߐ& d 媔~UNWȗ=&~p Nx=0.Q9PkAv +),s_F:G$|X48 * +cV,#i>ci{8 ݄V^x=݊i}Ry!a]Ucy/0q*S'Bk?as.}p-J\La Ùk5k%oy];W9²4s&~agQ)hտ 3rJ +܂tJ$) #(_)q2zcȄlo6$SIJc"$9p9 8Bߔ/WyĚ QD`ߑ o啞YR&6&~z`c$``Vrqxh$ښs+ŖU +ׄVD~Jʖ֖&ʟ'&]<9mY02?a:iP*:]JjǞk880Njj頧W/xT1|80FLªGI0`mӃ\\,2 1v8HڶtaRFR&$d+t2iI'>J<+CeT0)^KFܦE=,d7ocuJiA=&Ed`́,K/YH́L2!UD|ҁK{T#j0Véhv)۩xSCބyaRNJdڴVpBNSa%tm;+TQimlLe7v&֮s $|%'a͂L36jhQ +j Tf֢&$Ku +3+-ҭYB{(fu#*ⅴH]ІEMNJNBy91V K9e#u6S})C^ 5zB^udIၫ [,c~V&F>KK+)V _iZXۿ!y +{\m^!4[nE Ўlh2U(fZbV1LcIaa$Lz +"ǀ 㦯Vsaq l;bNί vw2M,VCLaU*yF>_,FS[L)R]\\=܈:V{A Y5}M?GRPM!lm&k{ec;pjjeOilvȍq-dY[E}3sJ$ECOZZXO+aQLk! )# ]RSfAWX$W>$DL^>.$6QS{vyVX^B#Su_?xdU0Id@ܠ[O<{v4z~H^B톾PjWZ@@G0)ѼgPg]-­Y{19lmD\bޮ,Tق_/7hۧzǒ鍬{g!{w!՛cá@{`_/e˷Yiڣ- sFڻ>ВEݳ|y#Q]3a? \-߇%'"rzM3= o"S};ү _z&45*[X%!82! Cx)| +z+WXv$`D3NOTx;ƃ$34_62cLEpEgJlA;َ%}Lh,:ˍ  訹 l1(Lz{*ҽs~9#-$N9bpW>To+ *Hޮ.:wRQU2h eH j[SQ~M D_ 4p+[=?|߱x6q(@tf̐{goǍ\; x?M݋Â[0z3.Lw9OzY ѿ.o՞5ۨ:y>UtLʞ0D:?3@ZQR˒&hިPq6VQF]"0\RɰHƞ/wO/_Y@Oȁ3s]&BpvB}YyyrW~:p-rVՉQ*_QMQM5QNdž>kCYFSٚj&_Ӵ 9tX)1h +;iE=0kh/`x~pt5}π5}K`"y>hF]'H QH?BrQYp=#=s^_CgGQo(dKqՅ@OC i D=ă dkfU]K-5cOĥ~A~t4yh+CSj'zٮۢUo@ >X)K6gB;NtppEڒI2g +abKBgGQcKg|".(k-h,OGy*ڣ,N]ZuyWqb ,lb{o}KRb[Ҵ$O B,vDCq6rAE^'|^#f5V[/ߘf1O1g̡Wnd6q6sd7̑ e抠s]=.0xyİeZYx92\,\`] +3E<4edyRb/U2vA +aғB5;{/bbx%A"ٟS +l3qʖϯ H0V\/uڔ:&>꺯wqǿLƽ@{ua<w~yϢⵊf5MؐբUY,} X>N0N瞞cz\;EL,jޒ;Op&Ω"H>" {q|o$x?B'z%rK18{Ml(8( lFR~Id-5 +sC(hn8n8tmmeb'}/R{߼@8͏_N!k Qʃ9@UЌ[JQu[^n ѹzUp.|5:x̛*lܴj8^"Xȣ4M/ zlc%v[3zsw(gL0j65 C8jx[fs|Η!< +W$ b{ܷxƗ˅s wӟ7?ԫ-|b ~zߑvmeQHٿߑ7 $ņ$͠VNj!zkx] lǞ y2Gv6L,Pꗫjf LKWuD6 NC7o&!'. ;ғht:e6'sSvQˢP:`s}{@ǽt d74]?jKmk)o'u%cF@`U=u $"0G:~%ȹ +v,>r5hsa@ᙔr󼠼ndZ +xϠ~A) 29Inn=FJ6ZUl~74^勵Kj_}Jl'vLXCwk+45V8 `aps͸yn` +ycIX{JDu"˷2}-r+gy/޿& #mAz$1qe]JefybqpLe5_N1BJJ`Vhw~2>_9w+Z^S^ב&S7 +z(qeAƾ!DP6ڬ.?dׁuuHēƫd4CH< 9-9>UZԘ׳ O՞{(GQ{A8XHֳ zUc?NU]p.Fڞ_?K19qDH?FVߢ`Ok}ۘhijty :o!ͪԋ?dy(#̟v. J5--Q?цؓx8]<%zPfIE+X/Cy.{>94ٱ,d탳b홆lN-:Y๛ǽS| P畎o`gEN[0fZGǸ2gS0AA!lP$.or.|?2Lyn)HyKOq[itq[}"-n&ka[G 0l}.zSL+$g5 A1_WMōQ  .@ $QGI9tdV>r9|2l]p\ +F +?ʂY𯿏0τIDw㮛iT#/2 !$t Z#=C=ۈi +5WK_3OF:'wuv$^Z$ QkRmA +(Ȕ\ +dgjSX%dhA3O2vY3,Ϋ&{!R^wv[{z!"'.?T`n">:X3GWwn˲;vЄFF>(iyBy@ >O<+̬[q4{>იʋ [Ӧ +߫zS!* (ыJL +qd.m2Gl>xb#4Mexͥ;TB%Zh.iS7 `4qa$&2̏aϕ&LN#ԱVn6PdH_}CHW2 +H{̴>+ +yٿSho38]wzo s:x :\cIalM%}~pc%J\~Z#Ldpu +}P@' n 2چY:D@v  RBeu(xsp}cG +?,5^bP;Pe%ZIrGP]baIu +C[(Wx>hĚvNv7N_B<śT$0E X2 c=5GHhПMx3rX=t2wʳ6o Lh ۹H3iFv9d@^O' 1 )1& sSV7oҽ?"vxoXD+庛AhA Qc"e!ygDhhY3h!bsa(i/rͳ, .3Gdv`S;u{+FeEuH~<^ϫ^=qSI Z%9|im}kں6RUA쑈_V(ӵҕƳ)yQG|Rdy*~GW&VzA?jgkm̜-*yw^ sPb>RC\`፭gԔ!dl)aԊo(#e\\l%5uܺ$`6`>d$^uB)WqBm7X"҈v!JmyFkI]y+˜a;.&ځ' +۾(ag6b %f}i!FG{PJt;PO[^P.OKw±#=<; +w5a2w$HC{`^y82R=nY7P;; ԐoپE4\SQyxK9G!)gfSc(/Jۘ;Yd]?NA˂tƅqt?- ށc O⌺tM 'qL0. aj.VFk=p[&Eq"Xb3ҵ˱)FD=?W|~;zpG!ln#EkV L |l#=Ri)pV:N"Y ⢌IO׵V$Q93ΕftkԡD|%TLbBթ6[K,BuYIыOօ$[/[r0ŋuO6g@Em2ܘ$e#葂} [vާ#LyhcX{=cR0̦lvգ!o3ܧM%q֛zq&-UeƤtB:p3g֪bN[Bѫhf2znt|!`rm,آ9`)CT[:ʡc +aOcncDZˎVq xu(L9 Zɳb~+ͷx+GNYڒF.jGu)tdK(m\b5Dxz?|+98XE-(y%SP-gɀvjru ,˗JXec + " FvcĤj$X!D_ey[7x\F֒gI͞"2p !Pufݞ1"W(W +5f%s,?+ 5lw(kC0}c0wbuo-4KUCxuUpѐ%@V6pe@PQ)]yT33ijPHcB2Á=A,߹twԈ^:0~'ưaҏ,~߷㗀=c[H G g)yب U3ˑ2IK#2@b9se%X"2>Sݼgk|'7~wub+i[#a +lmSP؋èhJ :<5((oHP¯*ĨZM-ÿBdPy@()*V" +O9 0$v1c{B#"_4U:Jw_KB[2qtS mk>6p'/s~<æWi(:Z~?B: +d;dRC߁ P 55x<Ԥ[ż?`.YogTB1Sk_XhR;s!2Y2ǞkvnjZ[Lˏ^q mXkwZx3VVxse8O: s%ndڃ6'=bKRSq:4U;t -b_:h@\VDo} /m/@.2kQ^$-3RM h%O2Mʂu)=u}7wFݔOe)j ۙ.Jw;z#}KHrO5r gaK~MWf8jHGy{{WAc5>K⃫\c[Iwz8B?/ܨ>l!NQo QP;$H[;n* &z7G9 oT>-ND6lOnie^wLHUYDq'VnuI4aSbdA QW[̋ڱ]S{6""(Pj¿)gGnKؾ[[CtG+ Ss4pn}iɋS{;̜QO3d ֍ eoIU\ȆK3#K!Ԧ[Qn!YYd(JnUNN!JFjy >^eOCR[gZ4,49ܪܺA +Ӊۭl3A%R&gž 1›~YVOSk!@g߭T9GqGEȸ}T xiY{58.:C +jc,)i? Ox.~Ԑ}W5 `Z[4tifIu_C*\t ܌Cf;:zl}GahgU;nS5B=*xBp4N!xSjCb"CXD!2Gt@F2UWa۪4AڔٺDRiжp +_vBaF⨞4D+KOƤ/QGղ^eKWgtNR)ReƦ(9 shj~欲:s)l-gvt[_u}?IWH#l;jMIۥlOH^]{Aj4mU}ue/YzPI,Bhr:C>vx.Ѡq^'QOF0fWaBixZ+L|aDtSfXo[llQg@^\}p.T7 >%eE`)M9 NΐN,2;(4Vw8C61,yJr8diy!)34)%7OީrmlE;yR yt[bNjJRq)%[o_{:]rYj'vGUe_7gy^$:ASt G 6ή3f2MW&K'^TҘs2ϼԒ,pYKv\ B3xP3<5\O׹AwXx|WxPV~Z(!ؗEq 7w4pS K|s7T3^m +9DpC2$-6Ң$ZԿ U _Ts*b .ޞUPLQgVGY  O.4o(bݢ(~삞ֻ ++.ek71*OiYx5g28_ S@k;Ę2qĐԄY֡qpGvAxb5(o6lXm!FN {EF@8C댺s~vKM#<N6C#h^v<_(PBPTY@1\Σ{&gDM6kkv!2$tr %_{8!ܕEU^vue ۃ0f 1Ot\V]5S" 7J r}뉪t}T{b ]YoJYoϗ.Xl}$RI:鈃ta(rɢ]i@t mvXt'x?[(MCpmX)NmwFZr|`Jf9%3qREr!jr|dr6d&Er|Ѐ"kɃ"M +4,Q*v9s jrO!O dhLl#ڙi}")ijᛵɇi$#+Ft mUcFH3:VbOQt㬠`mde`oCUܣ?bll`--vQo˰2Xn]٪G: pv)bp1vh6MÜwt^')*FvwlP v:"}6@<$x @yCcYA`C@UVS1 %K8)H57h'!lWiN+|Od WDK}Pe5TX3*[1xK;Tpc1WpgQm/CA!#i _dHzrh#ǂf{]ԂoUcÄ-wOʚݑ \kkթab^A x(_`R@g gC^QcSUTл(cFK cMe2֘ՄYV}ʳۍq Ê@4XɡʜL31:i/ʣXkbWI~ۍ4+o*ƭ~$&KՓ" 2-ΐTO@(Eg +.̿IOIT6[k1J+aEBւ7/ov,oLH^f:Gx # j*3K (\'jiZAV Q V6SzW]WD} +NqsKp5.>5qXC+ qZis.q gtff q 34nѤo^Z7ecXG'!xVDIs =^W[0n\Me g_H^7=$YnT1ov٩5 f~~ ڪ`NiaҝR?!,a6a3cUyđ82R?AzKPc;Bs ˌȫ6X3VWNʒ.N葝P@=Ɓ D.Al kVMU(:=ήBQhҙE!'KW31,ߘ%VP +Au .lXаmkaw}reLNxL6nuJl\(Y utS ڒB.V,+YZ!3}#|v[q$קQRi/TFo#IX/fA8۔Z62'2c3\OwS6o49T|sA!4u+aݴ#dO LP> ǂm#BqZ&w _FeàzYA}D\<9w2mE +%,?Fq3zk)r'"s'l͌H[!ꪠt +LZrgkcڻ ek +$m:#39fU ͋(9 6rJ+GIN(Q}5bl{S6=ϯcvXV@~;|t e=5OѮމڶמZ.EllL$:e2=5Ν%5/ةܣ+\șȞ yE4۩WڱA)oAl 8,E:¼N4|ݐy cZ͂J=Q)Lǹ*P6Nyŷ.PbmSa%7e=>NpSrHuZ;NqsNCHƆi.Dڹf&rgܥܱs=4Rǂ"2"mB|<_so0WOYzl#-nQP̪QM)HI/I~UZmrSGjefLc=BqOb;C 3CCQ-;Or] )Op{~:whVE'.٧9lmz,9ʱWy3&UV >F'/ %7Ƈt@t$9lsĆ]#l44V3;=zD! tX&p2LPJjW&*qne$e5xMmWkD5F~sD;xh9I/N=Aš)]_vM/B)ҊmwUߏv%9ڠٙA.kj*n1 A̘~+|뀶Ah=1暏t3+]2B{wZDڊ&' kT{ġS=Y:Ix+銡1ޗy*Fk˛MxuYO+buM v*=*g(miZ?TՅ;E{fk#5 IBn&/Ւm'>4.GpB@zlWd+$TZvP~{qYT4\KdZb 2k̘lO13]݁|SAU<@=;Ϯez,%8VQKE6#N/oCXYHBB)(hM8O RGMT> HIh0d "` Y;ɴp?B}x;ԣt_'Rk_*alSǀ$S"ml|=VmYvMxdДϧBqy$3.6v;aDk)òYz+4{bq(YG ÷bUV.& eazܤ2N=v=Åo.n@NН>6lꞰ.Fm֟.́;`mwP`;3;m_ہE;=vP@nta˻M{^(ؽ;^SˈW9ޮT;^^7^wQQ3?fR;NwHڹwFw ݺݼw6V%ﵬ{K_\4c}V- pVWH7]|ku2-} v-di-jK =b7fɅ>R8JJs>'ImLryR>/ y?I0j>$0Y徰0Kt"zDTɽ W5v>T1 m ?ewF9~tK?8|Joy ?R.SԙGG8> KcQ8MGơre&/4* Zc6ΥGo*f 8w9GvܿN'eg\d!EOȖs-Ps$αO{4:۲|P9_gGLgQ^9ipNytg}Bez=A b}F:6ӦE_4U;ڒ[WE1ܢmryhG&;H;إ;ieS7ڝS,1>{,1n3tϜȲZ$B*ؘc +(d"zSم#ez:|'*u( QK~L ] :g,_ٔxND\bVNA_B^^9 \GFl#cEXV#q?0 icq:hXVcc8x^ļSnGF{qq>4s c:c/KFZyVmt>1VPtNEy-I?7F5v˶bhB>Ϫ6dXݟ6`7Gu2[4nZX^ zי1J:L*2]yKʔA[,%gN2pJ9W}VtLڦ1=Q>l&tq2!V{Sf.7i'RAh1FZfҏ~쪗W kح?g2ic].)urJ>kH.i"ňp:8IGzϜ)d#ò/#!<ܮԔPjz>*|U+Ľr/dvt3I}cKY?NlM0&՞J,.#eh̲yzbG6bO&^5z2oڔS0edCE^<=/zy[${3qzyW.@cʟ6bݳ;@n{?T0D.+55suOa-Nq/Ǽ`R3fc+}O-M;pk|Ð|Gt<LF?%{|"r|bՖ܁|"ۼ8,,|+8>f +iB@+,Se5MiT-p!:kWh5XC,z.xoW1T"SfL=1>KG7rÃ->.ς5^Uy`:rG(5q* +O9HQt"g#%Dh*U)!NJ #7!ᚈ%)#}#(1+ٯ HR{JЏRX/}7f/lԁ咾݄t81=AɾG-F)~liCogj9V~a^)'^Z&H_#{'6O7!95&^T䤥Q3b/$xKM; Xz>F_^jI\~L=1R>Wg&(N'S\[*Kp.6?HYG6'7X*!^E@ql/@7NDŽj?͟A- [ JBU)WEEO`$xQ2OI 7z4Bbh kq :9b?-kMcVSwreR/?^e-Bb +tL0-iH:akg 4'X;uNbI/~$Ct/=>A_E!1Uв~i‚+U`Txֱ]{mi3,uˊQ=ʝVUɇtS7˦gղfH)FŞˤE;(; 3p ]kr\ڇimš\n~^6F{l9u _]M:kT'Aڮ=y$jVRPr_\yt ecpeb&eAȬMC+((Yz֘A O4tj+w4|FnZ7F;RBU:2%nVO?&3xH͉uBM +y1\ߒS\@,O@2gN&'b =n%Hom7l΀<}R{|m~ꎕ]Q4{@)Gli$MQ}+HYP2ލ0Y 5d|O +S$&t=4w>1R XrIf0 CRasVmjYY4ӶTU)EXi67OO?[d!Ԃay.8Y()q74$Iᖛ(Oi=b5S~Il~>%4!k}xiBAGԴ4(a0w:Ft(z<؀G^D0e 9$ZY*apUbS{(Z)sD Q qQzh`AK8yhDX Qe,hrNJ|Se?XGNmg}'3^"SM^ ix)?^zoGVOP@PA Y?{Nvko|]Uz ]M=Y@ )c^_ݬ'Ќ_Ԋ޷nu oF#]_! UGs +7^ wR0PjX՗lAsvqҔ8.]nuyvSc7tQA)@sn~ɉJ2BM<01I/9cNxK&7Kщh (PkVc .F3Z@"}Cv];;zB{n\c_N*졉źaifمY1`8+?̒:آ +Z#b&*+>!mm۶m۶m۶l۶m۶m;INrwnq?jYk +|^vu52ԕfÓd*C}*Y [r*9r,.*,2fZy,MЮ9X޻>ي-v{ WJEXn,`d<<3+k2K/Cb{Xԝ.mxall\difs>Xf!/)+2&,^Z(帄i(iYH-.=Qݘ;ĸ@ݚߑ,(\[}O' +|iyG6eﳢgkmSx۬nwLĕ PZqؗ-HPLZ5@ƩNp@'.diguGascbCOo(h?Xݡ20uvgwq[# `o0ecYlZD F̲Ї ym~ijzcQ.aaU%j\)/LbB=ixiI9{3>;Qjݲ8 ?7sK`ݶAgEJ(nd1 pwi2oYWܧ9h|flɕce[= 2XֺaF[2eg[l̵Z^Zq=9:{"loP) $e5Cϲ9vb˩afe,\y62@;fe,3'+ꚳ08Sm-7ܫ)i8ļXͺ?/`mן#UxO M#;ևg/׾@`?rMh KX-!lL@ /WoQ8h g/_w&,7#3 х_Zu2}a߮}AxXA8(0~1hXC. )aDm/@Q'Hؔ#%ڋ]clIE>0BLO; 7+KkkKgf 1e-΢% Ej_.tYaٻ !ё5%0뾰m%v7 RX-]477v=r8mO:ٺUʝaODH+Wjᲊ4t/YqKvND~9%''YAa*Q񩕐HMΥ0AZЧ;#̶90l.te綨 ڪ@Pjx•}+j;X>^mv97:w4u̵

ǫp.G;8UKּؽ:P %0kL}4.rb8Wz[;zlcoq{a5*:xa\[ ݃ITF5,)+LΊԲUXIKABle*s:s覮>PY˕ݮ̪s"nt¨ƪS*w\Rh+SwݪsˣsSCb%y[++ A< ) +I`!8‡1\wEehF ]&m8];$Jʔn`{w(!h{"ٝkT+ԓAw tQ07ٰ.&yLx6 UD䥯~8'BwRg\߶^Oe:6ZC6DZaȸKO|CE^}g{|1K3&{,Gz֣pQB7_v*|6*XLO^]S^c mZ?vU3*4gmS%{I @ʆҋ "W2NJZi-r= ObMrMh%tߒu#؊=qW:Ot敯i%\bw^2Ϝ.ʇ'6 o0?:tF}@Q ?[!5mfO0!u:m렀`+oGϴ?Ngޏ'&Yz$e9gui<rD?SW 睺:/_24o^|# x~(G6C+&Bť(kUw=+WMfL!vp]EM|^?!/$eQ<ȃ< +( qoG=`L_nl8;-; ;MLkt!7^/)ʃl':NvO''쒛q5C aj;v>{2ZV2'^r0\Y27y&V\d{@K:W!W>VeABg_{N +,Ƃ KZ'Y"rLs2<ĒLYKڡʣI)fEپXX K^X5܌X)Ⳍ@y92 py! ̙UC ̸LU KS)jh -~0s>ؘDt9Lo2+j-GlAt WFW\YVٖӦM9dI? 7LPr&M_]y[S#1'&0bcF&8VA-HFSmZ-Xu܄Mv60kO6Vņ^OiiF2'EGIA^O^O Wl\L_g"NG,6'̝_;?nID 벍GOG +a( +xm$LTWuk3tҝ"MdjZ ݼҘ[͙&΍NT~yf\z3O, +02% NTlXeg,[4@cZJ>{bvJMd9go]Bt e?Ve庀eJ*rJ|Q໢j~GdRĒYf,e5{.\ٱfVFie'hyFo1^d2AgUo +6P74K ZC䊵.9lX^XMdN,D2:GXtf~lYY%.{a5+]6DMp::jul5ʛP@_ߨh dѶ+d&l43A 23aNѮQjRoa|*VKF8(05Ps5kjrpڅW&XW6Vh*QE z \ +T +:CtԩOهzK̷SC\B>0܉[lM!5W+m: .G~-Ζ8.u@Ȟ";?0,|?PEǼޜ&Do +>%=mu.ΐDѼ73>-JRGIf\ˎKVy|X+=#a`8+aZUY?Mw,7f͑7) gvk#f$2 Y!&q Q&uYҳ%9jO?b&z:dB]!ʬ k̏8Hq&U(/l,ȕ1dN=ABWU(/9M=mK#\)ɒ\j"ɔ1 '޳ASh9[/&#*^ap!ᚡǸQ|uHu!)yCQCDe> oZTceTEĩT:?<ѺVj =X\zz9T-'+|\JsIqC/|Em4P0=1Tl4(ܘxx%ьS01Qڡ4R6Ҝ{y=w,tOe,ي;bQT zƪjUg#j" -n(|/hQ&ꈃO03A +AMJLIatqb˟V(&@Sǭ&uDTI: +[?q&q s+fE7sЪ7'Bgrw=ZNƀKn]nq:Xcj1uhc'x[YnY}"|4meu@’( l+j붧:Ѭ'ʾtgęUr3\KLqL!ӪnNi8\HY7MȖ ȗfU15W䪣<(n="!Pʺk[5K~4RbHK%/JfN[\[MU%Jړn[jT3Y3_ C̑ $jNӧL# (.i*&G)iE ? +=4qBAD̗j~(P@ r{ +>UTPKJ  m??w'r)N i[P\E[Dg9\g9^[&1>|^{g@`  )ShBk4 HWxgý^8BPC9@@tb,ACƄtubK4OIZ4D=אMk]E$x?y[̶c䇨lF+[]csѻG#@ǘuC~.(ŽBH7uEphI#9PU )feۅQܣmvrGߕviw۵}"AS& n }J(9S5DCtbMeߓyR1=qR|$߽?{~i?8$[OGY{B}iŎ795囙p~-ʎ6OS`jv"[5 lRеw AE ̠ R3i1 ֲ%\l4nX`uƸPvݢ!x%^I2n4;P|B3䐙 zSؼqv< 11(l[6|(ꉿ/zw*-סCo!umE޶ ;}~I7h+PzEr֡|2!ȣ^9f]jveס|G3x#[Gz揺:$KSѮs +!8 CX2 5cjTf^оݾDkMnCjMr{Mu52 >2ۇwM潋Cx-x6 k.sC-=\zzyGyN=6uyq=C繇#}KFOl8Ջy8yȻGP{PPslCs٥s%sECs%sХsEs-XxG0Gy?H蟁sO [_sN`6C}GJy6>4'.OQ6e̴LsbgX|ѴQ8阧HI KڴAˤf3ǩaX.*41Ixj K~R9-ݤ7!ftBCFXujٴd#u{}sƩFy3Izl1Yy)7鬤^KB/d;v7ŷ7GGN//i}{ml*B}"k{]j[>Z2RBwn@v7 p m|Y>u|lb|h}>v>v-8R?PU}ֹk?䥡e׀ +h1*B7 +hqԱ;Ű1;vJM*cvbp睄-魎,WG{z]l:HCRU)K̖ͧ-B1[60[cn2ُ>Fg\GuEF|XyŪF%c+}1b +t({Ҩ +\oJ_t^у&uH}Dy֖.{8 JcGك )e:ɣܡs~ [P@R 8k?|q+wzb@3 2`yg@=e|~߻~k;d:V +̙ԁ:Z+VғqZXP'.1cwE#KP5WsQ:R_}t?|/OtPٙf&JF|ik[[ڍ/Ʒݡ]yLjE-{viwf5DYE-j8Ȥ/ +-{{oOM#y\%#U Df_xw; +. Ǯ!9dG 'Sދ}oeH,?,X-Jݼ>up +#7i?e>#!Ń;[D %@^X~$(epp-[HLLHۑJPmѐ"5PJ#c5ˑlG;ض#0Z"!'Q"YbRBM+^pRxJe"F+A*$ȑ`A,`|)g6``>k,"a@/Mܾk)K>(hmyxxECt^Ӄt'%h%X?tۣ"zVc y7;:s<5T<%ƄV&k2k{߹7ҿ~20}s?OS,z^mn U 6wj;2`e#b^,6jjM 8q<*Yf; { h].Ke@ګggWFGɄv{2\Lf=%Lorc5t"hZ4a8/ʽFKHKBт pMC0("j>oOgM|[],'Q| .=!.Sc)}E)ׂBOtRƟR pٴnOܑVg|ߧu&̺ff>vݹU  LŰ 3 C [Yu@[鍳GXphutuέ=˞CS^ |&S |{] +t=[/!E%pY16ޕ&8mA/_ś֞xY;€āvXU.e 1][7N܉gߪJ<̭Ϣ +Od\TK<~8u]GĨ0ќ2j0l%/7GÂHB:XCaLCaPC,C0Ch@Կ7}}G=S-EߩPԔؚK% ԌpS~~1/KbUq RUɱ MREj,bTg(NKoPT;Zn iXJJš)x%"c̘FA^¨ɊL ]14b C6&c 16cǼa ^{9ágN{.liEvvi;"POb9M]Z)iX>XZ8bK axʚHXhp]J#loӮxytG~=/8ufaZ?dQ +/KŇܜ] ˜MQjNug0gPlP*1풶j_⾧O`U0ݘ]EB\)|rO8>Qtqq3-%_YP0Ֆs<-3‚Z(ANoFTiU~@_`l>2@1_[X. ~_$\Pf zu3)+{Y|%AX#,.)Eg k:mj`^=wSN"/x4ƭFتi(wS1ωF]ZY||SʟFI9N-G|<7_#Щ-|M61Gϰ8PjwҐΈtzѰ #3 3`¡: 4Ff3(4hj->!"yOpM՞߶&c?oLr f/S`DpeP]<!_'N}WR~<}&%@ EE bdȚӎ/L5[Z{c[|GQ@k\\ۺVvj7[򺴵k^fHLtr:βsbziN<L=݁!ހб~?o~}=7~/'`Rk(a`~3#)`PW@_@ THP Ē]9@?Dgʼ-eJ!0pe _ (L~~{ĭ-یT:{u*"u,E~,L5ӂ-=DJ%C\d2#jƒG>tzi0A#*zfky:jl\#6Q=Fu2DiC>j-+4}^4>ogI2/l-̭;W2VV#oBS*>*AiP)҃lTҌ<=jcSڙ*kbѸNkNSvoՔL:<ˈu$BkiCȨ,iōT,ǬZTp$$ADDi"ᴕ$&49*:n+ %{jct=|1)|xú 9^ҴdŐrLlMUFSH=-g?LK~e|=3dA`dK3qv0Drg:2Mki|\ǗFF,Eiڤi4|~e?]b5Eb"}#F)5Pazߣ ;w8 iXB\|*FETLTۺ9!I+KC)G,kZxi!Jv*nț)EW;Bl@%命4OyU%ʒh&x0ϥ1yINTy4 gC3W-O5{"z- Y=>-d4-ӭ Fw˅OF?tHuw()[0\;=O3U\mer5\dx&WɅ9j9.?Ѯ> tK󎤭P+.EϦ +\kV.9rȎjOꔊeWW\loK;{#Eخ.;K5.YrmK:ٿee X w.>kqi*J<1CoPH\᷸EhBIוٜ̊Jaq9eIvUfZ4;%|zM»tk|Դ YY]ɺ!;QQpYYXAQie`_$6"ʇ> 2VxJW vO1k\f0|dž(2id'K/Pv>~ S{Mᜭ[;%;\B8?3{+ +?L!]"G`b[!kJw~SU-iYjȭt娼x]j꧊ cQM‡{OXU>K)6~"7ݜ/TGf,'%\HطtʟNZn6YyNbC6֧h0OֹdַGW m*z)ߖ=b5]ua>2W;(?VQn[u7|KX5 2}oZ[57o,lׂRlDC_Dr Hz3f ,0˸T9Ll+ԐoDu̼tHz7PS܌k֨.&x3r#&_|sZ^wٛlApElÝGχ7`7ɭn3ڍb A^)Dg90*nZ+L>= 8jV ΰ?5@e W5 l~ͪ CIfWXm:kKy~vv4(ez "; Oӄgg^zTJSq*$z؃S!ߡL[Qu*ڌd&zCK.¤cA'Vpz)>7mDEGpu~o]V\1KR*\sT2>bĵģa T--tt{TDZ/3h +{Vu r#vv/83ӻ!@= #c]ؓ3ݸ&M35{p =P?}j1){c)kGaNnQy+Za3/:>0ip:8,]=I0r]Gn3M34ϐ{.$ )'Ӑֆ}Wf8_' ǩ a[CE 0-O~d{HP{Wf v9JۢʶqDbf.( ^TGJpoe PeQEs:" m 검ec!Hٶ|ӝ<1Tfغ'wXdڍ'gn'jVڃT[dw[tRt֡KsmJ|+/߹M̆OKdRxwݔ/ľj-40&{>{;Rw)*[/(>8wY+Fxι!pJ}kx{q[Y4=M5.WM3ql'9S;lPJoNYEUˏ©Y8ꌠf%M:To<wƵ氏@aY򹃼{dg2Oi$u@) qwc) QDr +|~CR3 -TL0 +U_XwlQwKs`A{.aIQC#a{{'a{;7SO *ƏWԠu5Ôʘ[!mybK ӶVmX af> Q a~ bwHi:i牛l߼ﵻܟ!c;vg1 RA'퇸0\iK}!RL0;]fؘiëuȵ-lv_|Y ++? iuzۚ@C] ]ǁ;QDy@$s"!3b~?$97EK#KafyIrleBK`=~&=37g-FدL15t"<0eE1K )rChʖ:f:ؤr &FSGapYHͮR⇆=HX5Ʊ:@Au6I6N趩gi 1㖦Zs|V*o,ˮS[H?hz͜rmT,o4VMUN\RdTARF1]+"wU\ .<02o{PژG|z'qG`r|%.S +_{'햜.aݷ]A'P=H޾ ~SLs)uŨ$Ʈڧ,' 6$˧uP8ࡽsV82f5Č9`i%6t+H@92y%Se2qkTn>yjdgYߌjY z; G%}hs o{ScK#1CSDMe gg9@ 1Δdp3:XB-Iifvlf<~fLNIBQNN?Ea!IŮb08QiPƚDBSo[:ް6T'NCA $2Ta7^ChH r,C}$9ivc&<>L=i>ês&O"'$Lsa n#~C(&PSҁ$8|,G l$ :;Q`@J{,g˳ejw`qڱGx(&o3 L"S)x5iΥU։2]6sÿC%TLOv(J#AXxYfZ-qrs޷Dzym3Jj)n6ѩʒj2gb8FS%*3RRSmso +D\}֓{)͂!U +:E Sz(0J +k!gM&Zk85qɢ +L~d\2 +] څl6I7뮑 ptl<yK⨠z-4讀35TQyM,i)QơAi>SxH5k0e3HwE.9ؘQp=^6v(8"9B=EpW~(J jz\1\C3mdܼr0b"ǎ؛CV8[_Dg'n=Ov?ar+8annQq=V=5ƧO +mGٖs{:٫]asիG̝AorI}7ס2sl6&C2]iNZT5uBƊ@uߏ%8;Zt-PiKD/(@{:Fqr<d4αjԒ LŖne#=#35w+E^xu@S(\o*,F+0:&dz'PHZ. )_U_Mx{{i5Hy!" (5~UFL[Y]P {|6#i!]πO0bb1Ds'+|ȑ Đ9}&wX'Ve)kOlO/q + +l<ހ8Pqm8ؿ2T˄5V?Fb U [RTWT;m}Un*szm!TO" ZUOљB1aO::o'Щ% qCHviq;U)ʦv쪮;ӄü(2ѕވ,qq6ңM2ꢈiHP,f%E [ȚUN2מ`QV$8fl -P6ڔ nw yɃB ׂ:p*YMv+)Mv[^ +xw7;Odށ;O* iaW!xkաCGD΀ⷜ̡#X^^{/J  \[cs=uCl FٝYŻx0,ʘk9VTPn*/=49]pK}쒊!.1 xEZIĵ + -`*Ɉ{eS]g((j" ǘ8ʔ^g$ABtnƇQ @ddc2=ϓH2l#ѽ޼ n}B#`8*b`F b8uā cEaj# HKehĘĠ$(11#jfR.[HX%sYl-GΦC\͸\$WYȐ0KZ Nd "u0kI?*妚֤,TCJkQyA{g{'A6-I-"3-ت&.ݦlզʕkG3MJ͓%vEN? r @> ٔh_Qձ2A\-Lc'" IeEZλ<³Yj"Ze2Rͦݵj#6lδ62Ba pv4t)32Al\9!y'b6EbCV[êШM5AcضmFqL5YIa6 l{iq-sYoHXZωe:jghkpYYvk[lKދ+aYfR{2Cd,2BkXzKXFbRkr%+k}:henx:N. 'F% :(?O';:]@? ^=]7 +l6^G}!,׆4'ik;]}gWt󟘛Nh, ݓМA$S zb (~AϩvL:5Şg͛ y,k/Xp +o)Z#=A*bIq@'ېf29C^&ȆڇB 9B7\عb>pJa8GayK.!^FX\Qvh09;ֆ F]V@_$l85q8}fZE΄z2p%*X> 7.Ko+#]|HɊz lXDvd j! #R[ĽZQ9Etpԓ|-5]C#K1k֦~j`ߏ}\?ܕ3d<Ŵ@wH7=ٔKr$"E2EOOI)I!&{E<T_+xSDw?JGmSj +c|oPz#Mf+jkg+ )`A`woyJ$ؿOTa_S['ξKN̉}TWJ9r!:2!S8~m͒>@! ^⏂!9zgRw鴏i[@ ab:N*c!A""an +%B^h?FrG#DceԼu&#M69D&KBiU؆YLiISTyNGεƗ0͓=c2Sf Zg|:x-.{ $ҕJǭ%9ThӒ)!e3,ϻZ!AZmZepFs%w G5&)(yX ީץ"vϕ%+QN%gq5%hB@ZOj^|_5TŢs#K&tP0<0i0_1 T]] W= >􏖨cf'8~F(sFC-QI<̧G]16x%H[I*f:hbHV>9\L\xt2fԫBdܭ I[X +7t4NpnPF+I&hcȃna- ;Sԉ֞IZڲx4;n}LSiq꡹GlLSt i}LOr[zI-ֺa:9_ON$=]a[Ç\T׬|3ҁ{7D s8p8gn6uy3^Q;^(_ʲ[_GE7i18Q}{2rgq$9?#_OXƈ&%+,PM7,LR{M9 % бXu#@=Z6 +a9?c^@3lKW|^m2XS^I;!jٱ̋qݶѬ}ԛrڗ {Ic jVbwRAɐZҲD{ÝXưlZc;?,/!u?d"W?zON _403s"]Nu/\/XCj<€yBxl=mIo$=ac0HCi[ŋ'Nx8wTYSëP|k|4Wc$F,1Trb.n DŽ; Rihv*7^8N(Q-Hr_ @ [DLl ]LbQfD:BFT~ (Ur\6dGkv%Ga$|;=v6 +YDF[aaQ-OD("AVĐ.H:.B򤎁U+_PpW_4 \} C3}֔UwŽ$?KȋSx>sRw:iuEdR, 0t c + n64.R>OɩRqy3gv.c@}1A M^ Sc rPDOǧg6ά^DX`` 7yi f5f`@ ߯t j+꧞kٰrV=$[jN{18ŸRmrWr"a)L> +F{Vi凪􆮐>vUBaQw9QhQmH}[)(:&vSrow|AST\͊ ;TCZُn@ո}u{`E +~"z@6v:,/jQ-:{,K`X!čY cx' '_>B%=|7!֡&>QeM9hX+pC^ Z3ti;#!jWї^?i 7' a tֽ[>r%oLݯ_U?r_,АwE,2}Y}rzs o"}Y纵uғ0_"SRK>)<2SP;Ú/'X^dUېHCWG$ D%)U X@=E21-86̿'h?T:+xO5n)'3% gx70D!,+BwqNNr^WU_塍;,ѧF-6sWE"?b;?Ajq@d핞.ׅ F-LGwPR]|)&1(RNc\St]iz砃}WAsdlNcYr_#Ӆ(;Ŀ'?#UieUvbɩ| -d!Pm ZvDɔALCv"bFXN8Kw;ercs[32;&}L!-Gb?Sw((Aܧ +qS'!:aL4iIN9#P(h&3ٶf6$q)ayJMjK$_5'8(]A6E1U{i.KUDzUw'Cb+viMOLіM\VŶVZ`SCx̕ɓ%ڳ0UKfTe+ nfP"W4Q +֞*Ru3q04jRQy!k]t˪ꈴyEc/٥1j#{M8dN,BGHKU_g8ȸk1maV ZKiGزS[xV YdYJu[$=&9/}V)Uj|#Xc]ME1LBa-2sFkָVKwF9Q_QTgļ91ڙ5Xkȕ֝ c~gxӾMotk};lg/Q\Aq'$`mxz#>"i >F!$!XC^y[ WM(86,y '-hReIS GeTXAWCM&PK:264eWn82=a|s Be.m#qIU"c{Wi-p +4z8k{s:R7;EB"QpK;5WַNNC+Ϲ݃I'v H ">Qah bŇ2,[\ۚet=IWŃvcXe _sgHsBK#8P)4},lfC{>$>AԼ0 ,7omZ+:f!}XlV.jtI-R7(䝳cAnCx/LoH]ΞeVi>Ŧf(͞a:).xj޳Fi)n参|rn7<]'7?z{@J<%,΢bwKef 4dU(ˆMJ֏[k(r351y}1SJ_8$1[J6%h!A!Ыmv5㱺zF'7K:y,IL5" O4]u:G尭*k';:RT9iiO@wBܹ>7~y>d)hG7C Kա鹬^h4֚)W(z>8M1q9e'B3Q\hxa&l2uX }^`S0}zi/q`z~h~^y |q@b@h|J YPgAB + c;ɸ*G7YjBLCg -^cMTg2[`ދMa53' \\$Iu JjJA#LhJJ62_;*x*`o0!K>aFθ|T~ TE5bskJŌpTZX4HxhjJ\h9l͈i>MK[NB刍hJBY;c者szUtFaǺbTUA+KxMi݄CwA;#t ZQ[DvPЌ.ۍT (r N}~j1P +StxGpg0W$ ɗ$x%$Lt mMqSe.iUuǂA5]f%Y +nC8IW ʁ,C'F쪸g)k,G䩆0 +8V끄qqemm0DŽd}I{C% QһEqne傫Fcx IjPQv6M MLZW9d[)1޽c3wMa?@ d\ PdvDlcFII q΄Qqi82Em-X@j\+}l1P;NyRƷ=^Lj8Gp&2 +Gu] 3 喅qVvŁGjfo8`6v {Hvt#GGsQVjEF -'P0.8HE Q5ԭ&ZZAy&$z&1YrLI4,C}CGdCYW)'7cY N OsϬģ]-Ii%P`Zj +T3:{˒$/$_3dXyJpAb|7<~P|ؾs`_ӈjOfܚѰqr{=SnӘzv(Uɪ3ZL\"K"?>/߄e_ND';nD޴޼]?~~ɻ~ٻN^&_^_^\=ZFmL7)Gk΁Eru^yZ&S+Iwxbs샨E -.AJS R߉t/u'8-{MlK {Mrؙ;^ݗqKnZOՖߣxj;]dNJz;R%)+ny9ԴR}ko' 񎎍|fo''[kJo+ 6}[ljx۾dz(2__* S*p+Zq\kbW.*m][cjKsQ.츠ΰpqj zM:o; +֊/ZASfgMa,*wH" (\`GU +*b KYT-B)/cMy}_Қ)UW$)KǃU"K\΃ ٽ*tNRӷ@^$UaZYnZYaӛ2!{`6 eŧcH9(22&oZ%ݺֺ[g]fnuYRt由*d/)@FT7.ܵ]Y8gɾz㻪KHKKKsMBcx7C[J\LkU]WgVE7b$"8;) +fzlsg1]1jُwj%QmHjV,Vwevx@ beTg +hrsX)X`ePVMl3вֹ#̣k 51zU6VԮ -yGUAa:₮=fV)98)qmbmIjޟ5 ]mHcqnPOm- tJ9+oaFDIkx4Sj\ʥPUoVU|]|&_L~o`Rw߈0/Q'-"rV}mN^rX%bBЇ7QJ QZ0dS9eONͅj1-H\N^WdFk&g9u8w\n\Bs5;>ˢ[NZO[xS2ɿ}&ϾOY~-F4P $4`ɾzrD>O=Br0Z|N;9jQ!䃅`,q)j [qHXYkF1}i!#ӣGG!EQoS!ס!֡!(tu ڠRhtKvk~GvnRݢS #ۣ"(}kw+oߢ!ݡEEE3F + +>yx/~`|p|`?!:L:T>.!>d>l:t>|:>>>T|Ho|z~h|Q.z'H~7?qy~Y:D?֏k.߯\ Z`V6_4{Rٌ +_ 3,fl+biHK10o3bk܉q7fb5c%61ZuXeqZhmKze7&ٚye\!ΛaZoY(kxm`Lz`q^0k'c#y a̔e-c;Vk*ci˘D0J:>IzqV]rq͘c܀yMbǽQzrP6Y.4+F@*!PBbPAbAbA$%/%)BB@Y +,$PO@Y"BXEPN/"I.tBB@ i +RR,* DCA.T/I HHӤ$zi!i H I$jPBTSIIdXw'%>== +zE"EƓK}A^!/IRyi}>A^ܑHI$ }(=m@ !BS#=U4靜Z*m %k)x~=~uL,t9]ꎕ\q,,dRU>ݩR-/9u6xfMRb*xy ʛڔUcvĄy}<J!^@&s[;l{nld  + + +C/@B&  % +"v@XhDzPGqu߹]?s:fod].> 3Xc~)J]c> #K=T #I> EJ+@&ݓ +IRU!AF~3*IaM$J^4EHB,"UJ`Ot3F>6D°`Z)fƗUHgXglnN!zė1WsE\(Ꚉge#*Wĕ{D"D $e4[0N0deI(24dsU)/ll,)S{)?Œ[lMAG +KUyRPV-SQwVT?ox gi=}eROoPs$ejsq#$ ZYkIx\KUyUQQp-49ZzRM%٭RK\n{Xx yk93 5$Mc9ɇ%T0 t5utQ4=$;;sCI臩::}uuTnc*3[WKOun+K8g.J<$N}Inu0RPХ_T6k=vpX,5)ֹRg\#VKpT,:g3,*B">_ǓE5)0mLtR1T ^wTf`_SuY&q̈૶M}1iϑ?-X¢h<(/gōpǙyCmʼnd?>OO% uؘoeq9s|1C4:DnXKR?/uWGR)bTR74IHj +tM %bDܧ |̣nb&Wʘ'P|c"x.>cFʜLjRcG`цU8bc u#gnUO{QrRTSqs"Ձ5rW1C=7sZG.v,zg?v,*E.X$t#pz($ϲE'>GڐMIi F9vУnt!m e$@Xw!'=NFۤ}*v`nnU.׍řq:G +HZ ;jH(QqQ3Fup-jJfkJ0gfDgd83gVYg+[&5F9-`:ogr/ +ϴp6a;;1ᏘrgNkεEy%.:XrGo+M-&xnR +I4mLMxR +'-tu0! ׶|,8Ly.jK8zU:g7rWs#bRw폜UCMqs_` Xײڼ܅BpdBVzj܎s]Ѱ'!R&F2iצB^N[2IXz;"o Ȏ-@5RhTC\&,NGz\'XLaItF\y@ g8½^K 4wsRg{Wȟf+7ﷃA7WaV_wvˈxG]!frDm6=q萕"Vtŷh[Ǖ$Z=~} ay̓ ! +~NeS6E-ᛝjH!Q;q +7Sp>ú:چ⑫M0geP_ wnuq#Y˭h=wWT{qj.J!]^B 㒴ɡ)몼,^nסǮf'SYjZOظھ_bظޚߢnTh\)}Ң~ہ$n'ܼ)}ѝfu~!72' +òMuP:wBCI|8~cqj9ݻ9gg۽} %;|KrF=;̮@z۳DqoF}GN3sq4%$'eQ"֨óI}vI4{unTXmMi~y[rIVK٠M +Sp֕=?_ B]%W(o jRmޭӡ9+BÓpQbNsr|[QyoM87`[^GoԄ8I0 /dIu /?\PbT8/xJ 8Sc >H2{2 '2 $1 [tjжTbi3T+5Rn5<j3qAS-2 +=T jzQ慵5'ޫWxxVƞpKUvruLJa k+]pGq/y8)}8i.GXtz^ΐs_]޸uo_Z\]{F>ّh㹩~ݷ'9wwspFh}-}[خD>⟹B +LpU휭$~cUsWh-[Vo=ɯqUh/j]}ZᄌQ$({,XV; Fqu~}u7|nN:Qo}<8ͺx3\zmxJxd1t}PoU]]* [PAzײ^Xr}ֿYFCx,ay&U>wm5 ra1j?R\\m.Ҭܻ`S|mAP̖߂|0{b[+wsϛ0}i9 P|W}{Ԟ-)AݚL; \]ϣqZ4 g/v!ݭc;xK;Wxppሥ)]*u>f=ucFvrjf3WdDrCw9l`#Lh ށEY.Ƈ=@žJY]2j}bX˶QS>tUߠ~S8Ct^b7M,h.vQShË F +ҧD oVVaRtE̸qC%+ѽqF'%, maL͟~og%&Eգ=N-{1gs +͟7=O,cMe ]7KCx]9Kƒ$EqbT8B]$}8RH8݅8 3 zײ8].1-^,/]O~OQg5ݞei kWsN|c+W~ڇW?G??W?ܗ6/4  +9P2#'Ƙ@ۦ3 ÒN +bshT3֞ucۭVP;MyzZ4mgxާлrݧ3G{'z+K~Fڕ/֫6Oi1X!3f?)؋F|g|uR]3>]Tuo"`:ZCRWX3}C! KaCem6L#U͠(NY^g-Zu ɻ:NMT& @o~ gyxY AɌ_|25rBOXwGLقT G! Dz!1 ΅kzJ:|gdt@igۡS)w*>sX1I 24'xf? ֥BK}_@[k'|i +ǡXoqVg&d~""iH&}k;%FƤ3gL(6`1r2.Ñhyz%Q-k%yok̙rV"3S{Ρßgu;N~7\G@P%C ~b~Ǡc@ܿ -XǺq8G4f|?ɹOgdmeJ45-CӼ"6pR..P>Nt4e1m5@<ې;cN^.RddS,u9%3wn%\~μ|sWspK>VG_V_K˹Ri1q:0/mШ&/{0m 콉7gDH| %_dO;z\ǹ"o4?G5Q8v42,h%xЋAՕ5e +v_h'9gcKbf +y0xI['bFx{&rs;J_fr2lnؽ3lSer[O=^Wh~'N`..h,[eNYgUNv~c(DI}&JOgO._pJXje:Enbh+ +ǍtdJZȇI,(0Y3vPrׁƆOdnƻSJKX>k)/n:>?2r7!2צ]"bnnɳ|Z/im[}}OXNjݵʈ^ +LU&-_z D;VHե%Ԗ+~UG[$z+I:RElӜYRlܭÿ~I6eSpuwb<=TM纆Ĝk;V"!\r,%ț*jR )z)cj[\C66}9ݪG`zؤ/f e]NKA}4 +J[,Hb킌&)eE-_aƬސ">r$| ?J쟐٧^zz w+)n^ͺ{_u?d;؛Z(vұ[mo{ 8𼒴: R_`/J޿V1-">,o)H XIR +fJU +SPZ.ߪ:zDŽ\,:6)/jY>TmgD5oM]<+>u!/Iy З[Qu[ҧ8ulڧ +T{vR+K^;/{<z3ZSR7 \S3FARp}{H0[Y&Q* -U֌|* W_.z10UgM[~wTEFQL%Tی?i9s jڑ|HG"i3.jBC $5JʐðP%}-%3YI`M_g]g\,`l!]oFϗ^>IR605~_ri%TJݿ۾>򡖐'/FmZJI* V>V>;ۧЧMzҡ GTIO !gj+T +%t2Xt3!8TA㬝^1 WB`X%r3J~2W VW}FxFs'5zoz:7F0/ݸe(k!Iu~d2fH\seҚϥ38yn{Mfg%@`avF&<ӣ eю2:cx@ϡ(ȇ,"w'DCTKߞ'_E+B;>ݓϗB^.>Po+qST`}AÄ6>3 p}lr#ͬR@c݆q )`\RJ@+&9#ѯ¨VT-|S84h1 ,\$/y) +P,؆^>?uh-{ʴISoUšBguɮB^4ԉR,<7okأ }7;oUע̏B^z9ȷ",B! ~#mkyأ/6>pz(S@_ke +@3%kyh +u@^h>~߅͠,C۟l~m{tB^ +"h)]͋C=B^ȇκ;߅c,>tKR*> p) +0|uB \n껴Uɶ"B~~ \&drY ಧfLpFdg~ҿ“'ZH6'I6jKgm/PޙҊ#-xGM4244'AZ:GŅb=Q# n-n0izf%V2sskم]>915fR&fFupM<LB:c{`DtD)&@$@է=knnHHH,/w8c TA24ӎp4CNA=ŬwG*tuɚth&פ4jUN:FN䩙GINe{wm9,{w900{.D]z PB {wQ}x 5{)wl]z0; [`=}Z{(A{'};n! }P A srBKYײJ<߄ُ}z`K<wC[y9;ߐ0oBszv@~@z PnT\`a!e" eAbaMhq¶jTX^"U\HPCU 1`n0:h<pF9%}8w+wąK䤆)ddsCR$+6e4 #D bj qo&`p_F1(F1= .:s&y&43mqEm$!ZU( x`V/X|p޹/Hl^ן)*}~;f.4f].d=4G]Ձ~͟)pP(Tťaf?`V0A1[ +y n;`v n&qZvETsYF^{cI:m^cC1&Vk!4dr o{x(>\j4ؿ?SLi{JMs&&rhc=wB萤M"*-V23KK#K:FipM-::jj:[Z[kp mn 'ZZ>nn:GiiI$Drq!$p}r!Ira{*i=08F3P@3qtu@u&^u'΋2zׅ'ozOzgׅ^sz"oO2/{gkڿA:@Џ3{7DL~`и};7Tl~};7d`};7t};6?P0};7/\?};7/?! wo8_x?@!{Ty8`xgB(2AiKxALk쁲6,6t6P+up60k@'}u(W}5u8W}9uWpuW0qC 8CSI8aI$;0gpɅ9yp"#8j\97|΁d KtAfW߱{tjg;le{ptA}}1C R%QbEߑ1@reѽ@"; |Aޱq}A}@ q|@yJ갲sS96m-"IzhV g8$|§'턍8mp +ɠNL_T>@w m;ft&7>F7wC3YD\lM +ItZLMOlZ +6Ԓ[FmLP9Oz||1!;@jl-[|2HHH1ddY ) ֤D z4H @ `ttx\X`@n`VW\{ )- ?g$d|zW)FVfVl?渝g4OyYg58ygGDS-4IeyY6Ϭ86{'zZ) OW"0OF\tK*Ƹ7|SiK1 :clK-k1#lk2I X?eTW1[+ע!5œr@82dV$ݪ'T hloQK=ufp=yrB=@Sijuu/7[sR|ܛ>8vl|ώZj1ܽCo[Yg݁w]?~H'yާ "iDK70wxI_a=7'k>uc72wyw1ܳ~IlkUfOIO4O + BQ9N-Gh: ;g#{g!HkO" PkY A҇I)҇Sݙ'B'wwiZ3X|{ކvkn=e_ĽZ ɜ>~T/x{_WO^s1(m髾k鑷 繺}_5;mQZcomJ@,?|n@нŬè惹Z]2.P1.IЉ9êr$$bI$jR{e飺ImC┾)YzJ5ZIseC +fuCl zIx,9OMCx y績 wڕeC!gڕdҷ Wߤ`xv.tqKqCL\CBXf#$L\k{rgY9FS,UiYV̻GI3Yㇲ3 sGI\G:I24#br4ZMH7–_}\ #bď0;؍-̍:<ž7SF~;VO K*KS9{:1ź_ +Jb5P5BylCQs7&,m[٢A#ZDZՐqjZqV-Z|M-z6lI_~OKwh>qoQl^ppj㭏ks/U}epky~6Kh0m: emNhe"[T2m87ec~OyQv -㯝K&Mc̾"ÅN/@pmB'OMc(B9_ +cq!$G9{NӲѨTi} t$l%MUj8E r"8,EEII[ٛȓE>̇f%&~bg͋-lllj2l(1y^>_f PB^E4-'xf-gNdkXb+*{<&]H},t1CJNĕ!fǎ4; fS3&c>wQ\H準b4ٸ#C[1߸7Ti5s% 7Lj*Wjpi _.vْ6 -'RM?3y[P9&W[R9ޱLWyUM&ԺVQl"Y8?FJC,1G"pK-5BmKa+_fO4rtf&fi9:'5 Rzʗ\ YJrԵ}ʗxPe'V׆k +&HӘr:Ħheed4YR4"Xh)KSBd3YfG'ϡrǞۑrVpMoXg"iBY;2=RpER0e6r LukTm&-m* WĮ)2Ӏ;ydrv:۽xy:/$-Pu=C| {ܞ|c(r sqvQdYW\sq𬧟F^xKʍBԋ|W6ښ.@ngd@)15:X<(xq "g- ͠8Gm :D 䮌p ]9i%ERUM.|%s{Jo盞lNux_^>Cb +=Pn +7Q6lKNe:OHQ|Ԡ_N>OUg.YA 1RH +%˧ +xh%S.Z}1(nS굙]VU ֫I8J@*կr\{\Wsxb뗧IG3k몗Ckn=ɾ7:d9nGELWef[82rII֤Lp]fD\G9x>*; ˏr|=c.sLI6ߺý3}bEus1 ]z#V4狨ߝK Qr"s3]D %K~y߉Ũ7XʱwQmLDWn5v& CmN +Dl眍kםn1x{n^YB%+nC"Ws%/UwR6=24jf@kvN<_#$X(\g#UTyRc Z^3 D1oħmPU4ƃH4V Ѫ]sÙg]R0bMũ2!^ |Ӹjg8(.G=*K^R3g26Rز 6Dz+x!݇}Ė!5 4|OI22ETQ m#/X2S .f ԡpPsS+;F3õRS)lUx'KkjβT:d%(;|n\Iepzbq_лVJiGu*2+9U2x5ff$ר롢"\랞]vv)4(bW(xFt?€gP0\ 0ĭpٶ(0벭c3+tF*OB~uFg n[CDq?sA͓5 #&C;JK d@9JI$0n¼j3m-de #%ɅiKkɂ=Bs$}O]9$zx#KtFSz蟀ѻzbNNc?t/_ ;%DZP>*鞍]Iz +JaDMA"BCD!2S2MhQ+`UQK!U;ʪj[V:-*[?s?6zsn9vx~FX`߾[?Q|ymK{ Gzg*uatf oPtϩ +"H~ ~+Zϭ[** ƍ-0u/g<~_CK1B'^$&iBG=D]H?gStHhT8))|-}CeP_yBfe"Єi-PTxU*rΙe`rM\JP L QCۿڝIgk }'uJ\JXvڹs"o&K:ӟTs"KeB,sJa͈3f`tm.,pL7 x +u= +4yY<5+SG +_,is*n$\/d|&pψ#؝hEP #kdiO(yM]6<W×ബʳr B'+P=mkk~ɶXĴUw )IO[5\Y7Tp-sI#6|G]+.NY&œN?+IŴetj;5BpyQFNv[icV0Wnآ>?tbg>z';9c1xprʾ*c,9%7'lri.2i?ݰ Q7h+s >Nq6@kλiXm)# VΓӔ((RQ,iGd&`^Ƿ"{` !1u^駯D폕 @g[FoXn2M{W5cnQd붜.)e{L,Y8z1(rB8efWD.8]7 9[TqŢJkGC<8xOͣύrf +𞞡%9rbKaӾ=Ψj6<̜TϋPCf5i +[|.S-naXW03ebw mzbIq!;ێo;9WT6VY-R_30[ +l[;t?x@UX*a0O=@7qsdveuV}k9[pdw8u8f9&2e?e C-qe;ufI8B\ڂ۳%we:/u+`#l:QM.lcdt%37'MǸ&!QQ@7{8ނeTa|N=ɨezjO4I/?pqs<|'_˚%˛M)}K`˚r=vmsO겴e{b924j +*ewh[nfrhwMwIԴYH2`\Vyo&$AXNydcJpTHUK9SUÍ. Q@u,(aAy$'cUa@EIg%)RT^%fS$hWv+?`y Ult|ؖϧٷ֭pم'+JF^0y3TB}h8]$si3tO& +u5"p0d7Os" <@eB`on5 EFC7*6HUOƟ-, {/lYYnL+ RXktN)]v"GNX٢V C"Aܣ5I֢3U21DPK0A|UE<2A@$˰R!Z@gCj3ZF8YJ_䕍(yrofsS'a5sC_!acQ9K h$ bd̠PT/auGz쁝oq~xM =8%[83r80`q c '"Q(vҒ{D[M).y!.qy*M|O[H{Y8`kIB'm(;yWdV[%dlI!7%) 悤 =1.'(V,mfK+$-:O'49V \Ms5mT ʖ@P0;pmEt=Iv{wS7 +~i:BX.#=hb!ϭKI# ,M>SsĶ_~$Zy]o @޿UtF?&!(%(G 6t e.?-Ԋ"|>;kM~sYC;2ك TI0- 3C l %(5i/. xphϊ9U^2 D^ `aXNקEGEV6VN$1#l˓|z}9j_r8 D@}sB_hB@|[g+~4gymtb1UfaJAnQ)iWX${zrWyD./ԸGڅJr*@~S@,&dZRF9hA3V_+h `"QO,Uhã!g +J0H,r]V]^`O$ҨP+SpKžcN`ne& 9|0 CFXI/Q JR.םh)*"12V'1xI<{`Lߔw0hSCyr&DDwgG%@P0ty.^aZeͦQMjw`M MF^s+QM퀕=F˽Opb&nЦр8'OQfVM?{c9`ciPXňf) #a ?)oҚ- v4HZjkWSKPl~7ध`Y /ӗ V_&wec+E)J'CR=0h=,( +0MΌ!q=RiJ?g݄9~]‹NK1LuɯM#YWV!rSBw/ޓO|`čqSb^)  H=+Y3fl + _ 흳3,(E7 BjlR!,nu@3J4NS 8sM&ߕ5Mc%OZ>%#j'W񇺹^8yv0<@@-#aqǻWVܜ;_B_f dlCûp=U9o ^(c{!L5ԯl(Z ~;NZ`(77֥v?I}TpAY)аj]^ +moL_2+4א$;`Ppԣ ֞h:3uz($IN>a]02W(9y@Mң6\d3Rɦ< P&1mr+#7)X#R'lfU&WU[~]r?@ Q$7d[m*{WX>ɍ`ӗaN d?\ *z2\6ԫ ɷ,ߊÕ<Y__5u141t1>k vz*ӄyoh<@Р"TH@pdXCB0H uY0՟f+Y+ʕbJӝW3'-תמGO?bw k+}iUߪ^G6yxG` M0@ +6NݤJ&RjÈ YcɈNͼ+z֭dXC|ºAqX էH2ҚvJ8豔]BJW5Z)PU{EόL::Ϩѩot}=zg5*Mah-Cnn^G0})zO凾],zQ&[pK^[-ۺ^@׶!{cz~doRUT+ bGxrKsM y86QnGe iЄοz\ұ`L3,.;54H KZF ak1M7EH}o*V^U%[~GU5lyʏ%t@$(_v,K,Jښ[]r񞦦C1$o GRwKU\t^zS8֙1K3V8R뮊d'bS7$`6ֺlͬ`츎* e4&d&XK0+8:E!,JBznk:?M<:!å5 iDMMo.e#nH2wR$K9bX& +TJ"*aۤV6#@fK2| +G,$i"1>0.Hl軈6D 5E37+eو F$p//vMM Ky]'bk+%U)lAtD12V=dR;[++]%eŬȰj%MMe`hIN VbSh +Xا\sZ*o|c\Me]mSm`#+*/-\/kc[cZ.-&4VQe}Rx̹eehX<]ä; 3X%twrE:ڧm%.;%EڥQ/􇽾de!m䭣jrIEq,-#ٗ%~$6Цlo,*l1LѬ#e:fO-K©+DsJmuVxm["͛(JSh,KqH󿨪&ثO96d-mcoJ}dE"fmo!Z]8ȎΒLN9jk*s̪ʻuɞФRoZ#75oL[2SqH1tI1o[Oj7yҊG( .oz7ؚM-/p/62-cLʺ^?7 }bc+9npe#dx>7E`Td[^iIkDdAvqi'jouzgs>rX4Ŷ$fx$J&g,=Vy(nٺRD.//Τ#{f-LO0"y6.I}b>нBg$zD4qv?mZFoQgxOӮŸ 0k,34^0U`;.M @.aI +xPJgǶCԥvRfC7ii;qBV):lmݼX"ki^R.ߞ׽趘CnzQ̽q(Wd-k]5L4C9[F)Pc P.P2ޭ5zO8Y T͈}7@V4#o\a.骭"^^l< YR䅬TLh5  grS֩ob +2(NΦƪ#; `a"]@ \Ė"W Gb^\/, W^6(p-z_k %5Ki+.mzȹqe[S:O*b!WMhPNWnQH]3"+A04[W$J)Yv%~p!ΨN~X;!:}3&yY=|V%UL1򧈙A4pIu6v?qĮr7I87X5av6S-LX&rs +,nx \{ÿQg,glۊFMHEO[mn>m2&Ysb#񂈯HBQJeWR%o2{t{J( +eޚ?pn".Pf"yŔ  36u;Ӻt̩K9jIT4IntxWAJ%Z^,\:JU9UOJȈkO@yL!7O-z?zgW70; z\P)/_Ύ2ChvͰ05:J`# +Hcn1sWE2a\MdeR VPiU~IpTV NEWt2np2Z9eX:46t="dK)LHdKkeVOfZڟOYz %xt@5Φ;8M_OhQmbxRK`9]*LzBP2Tp O *Pv uԵ@cw0ӺQy?kw[so_cHP];Dq 칵ɽQ۾n v m#g0@C<Ӄh}Qi;O,쁌h:a,̛^4LJ LbL|N5 "XL(B/N s`#J +P4E=ӃE(׳C\.] ŅC7c*bj6c $ٵMHܤ +`ZXN ̏);tDZ({-O'Y;jn^Cw/1V#D$z{ +LMeI"_l >CHf:'v}*p"g"<2oBH"rqȟ0 u+tG*CndQ$3VBD郖J>CbT߶wO+g_/ҳQVۂ'#Y.VB̂ +@fSuT#2d6Y~ y R7GX|('UV3t7 Y)<9{Cpr x{@NX  7D B~ 7?ɭC!xSDPEu|\> >'i} ~Ir Xc\$ 5CsO?$#'r*\Ph ?2Є|ċ9FNqSSyKs'f];_hhTsCm R=HMԦoF6R q*/L~bL5#ԩҸv@pi>kf&Rx ~e\ Bp" hz 5:$ɂ,fܑmP:ݯlJ ޲1nuPyJW:%HLMv3'mC<[Ev57)Fm0PZ^j:_X qZN](x[ٳь؀xtx>-e-P2B>*/Fȣ!=)c*-끒FFU#(I\$>P`e8ŝ tdZJk!22PElÐi] Y64BvXEۘkuAer}W t}^rcՊ|U09jl nB,ʿF:{x a|0궾E/vK:*ϼǒ o!x5j)i5XUSo&/\98 !*Rfc $Q|Y_L̘ݮmްȊ 1(S卋ТXڲfc1~0/22TZ ôˑ/t?!; uWfeĕP; Y_ebYכV|tD,O8AvHԭ)~<qfRU[7uUqwU:XWE5mɑ5;e A-Q<_c jj +mU.+vj΁& g.f_kV{y[tr7 +ķ"@#A½[7 tKOQ-X9^z,!7dC/.h7j7%_K /P7oQ{!7s>M} +`3.u毠=+ ݿ=7^c)Sז09SmHa'h e?qioܦb1ڗ+U,@\52oM 8csC`%11ȧ8lP,e*mKr)wZE"S{uf렳lr?a`h=KT0B)twXW'k a5Co,^]҄&4l艔UU+ɱM,]"h-LlvWT8:hF/\%,$ʢ[ĵ7u{7uX(:xmSg*gqv˟e07~Ӛ-AYLv =\˱FkGiMbLc#Dl>9`ha#e ]09`֡5ء;"(yr̆Հ{lx}m}K + FJ dG`YӦƋ%S4O#NN먷[@k)Rzӳmvf+ *)G/MCsľBW&bg5y2cLN$tFfam<`芚`5o^2 l7ʮJ,*u!3)EnT:I ĺ\Aje5'(E1Sx7٨KMTXa&I*>7PA9A YL^ 2`fX "ɝ Ψ57ǫ-y8M%=f Hlo95 +ްuR U0ũ3Xi" -[6,RjPPxENԹCU[HV<=qI+ k FL.:<..Qݍʸ-^-j!_Jpm?b}A[F(8.7|6+%$+ߍ<2r3o,QZX(Q! ֯(B|2%2dZd +hL!u(E IXJ gf jU6510KI>QtS {xnpxx>e#9n$7{#5 *N/ȼx߉i< %$%UFJJ)㕦( zVN A^B7'!A땼sgoQ;_ +^<l'2?E'ں~~.nY FE RۭtȗG;m㔁D vVZM{:"qW7⋜(+dc3DߘOiڱ254_iy[~W=I~ #]YD?@b࿶*,r,Z R}oJBWUO\Ǧ"翵.r25%L@߱Ԯ~5Ԑ30 +`as~-W8TW%;mL o/j <"xnP<{.-d1^\[D^fOu>=;~P3iDȓ(V!zCfVJef9}:A~[Eg+fH煢[]Wq3gN<LFCFCF"L0 02 DdؠIJr @I| ͆dw,`)&0)|8l W{ ݓ5 / 9 ){aW1e%'w(& ~xVq E/-.7o6Uӵl^80[~p; STȪ1𠀚&;D;<_IQQ mjFɂچ2P;tq@[!.Ŧ7_Jczo 9.kBoy@ET4h׭&ňJ5 [i<m.F"uM 88TjR@7̵? Ǚ ]7LCD@a~Άyw'[iZAA /g2`#(\eMRp>4Ëj7%XoH5c$B)u4~G\g: tv%$ԢmTQ9&~[.Aqj H ܃Vu6OC-}Sэb B (K򿖍ê@"}X@j(/Ilؘ/ bdSp߼8c(#d% +M^Ig:yl{K&3l)ľUkA0xF(*GwzDzM4@ghB#E.IZXî]q$BP_C`R{Dg}/<<2]Z=Gq5Rxq 5rC}! r\I `L6hy~v@B\SÃ笤'CqkiFi$Bx#Aq[Kq^ʄcþM +]1E)P{e,JM^gOC| 9 y7h+{+{u|axϺ<. 7DZ 6<Ћd_CKXo!+CE֠n>cߖ [$ZJ͙{YTVm>SroC陧 cAnW&^2'Eij$,֏d, +BexH }lU*y|,!0wVժOO^Lpo '.0GsZSނ ̜g$MUsN3|c 1VQ$В+7ʠ-U4"A})sUgH傁\obWcWÞHx^9s}S bkwk(eifw +#Gm[[B + Je>P.'S4qQSd+Z#?B>&#Ļc]A7QizRc>zrc@=:ـūtԮUBȋ"ayE^%,>VL[*UL[lUj=e!csf}K]KEO4 ]!=VI=2zhd֏4L Or)G 1sߨsÕ'gÊt,N >:@ Z~}em7ukw[_{'=rE;ع uPF0{r*0i~ cW2 ۽|џ?}y64I5="{}zQ @9{x0"UC}Qx|C0m՘A*3OMEEF,S17@s_72G0I,2AtFW7k +8q$|{?䒄M(G;P&G"=0IMzS#Ꝣ)ԣ2[#ș4wJƼU(Sz|eRk#y¾e@hFv0`LQԯQHk7*WeQ`a6auhlтMv`M:~p&)Ysv +4S(8;Zz +@QB.)s*ڹdF-LFǸ}5z̨]5gzsHۨmG%!su$>S~aد2cq$B_+iR:>̺cC%RY5R9c/ }( IdGd7x,̬}yu9 ž 7Am9Qkӹl߹QdV7&uk^bQӏ;ǽxқ?oV$l5^оc!ppǰֽ6tL疗k/C}#}ҨJS],}cWD4n,->gw3w lKit8?O $T?' +CʤܾwXd$=ô>&z'uHgkֽ:%G~za]iѤ[ja8~tNmJ} ТU +D?޶ / I'AO^ՆiFA5Dف]17YbD'w"X;N*Zn"aaj06ʘpnlݖ:S(s}ev;0A#&|oFnCһ>0.W;u:Ћ[=xpTJXc8E1QŏS +$7_Bl=Tc$ P'1O>DiôI3}#^`FA,c +dNh"0z2A~*Ke 4zN]u+.u=wƛ+.{G=1_X:EXi^*e9n1%] +ʏelynHXS ud_ufMз: gM;hgefM XD+7W=7VΜ=N5tS" a +G :]@-AZ6kV zv_sw{ &͜1-,H w#cd` =eWyO'S<'G8yga=>% "q15t\֣^}j=%xkF~cNp~$1NY`A/#dI[`A_gؽU΢&fT#$A\fMw٧pphwё=Aj/ 8%'_.^dB9+ҧ__/} +P^rV_=_U{VhM(N's($R^Z[݈K؅qlΒC eH֚/0l.bNcH騷pI]u'uөz[[{ D{!>)xU}z!4'Zy> Cdi&˾e~w|< X1gͱJL1xܻFBcFFDiYLD?5D0ޕnb¢p DFK٥KF-!]ɥ^}t>Q̗)oVK`1η͕S';8\f$Ѷ4GW }T]6ZO +1u \ +EnrG!ORwk_19PG/h3֕t(_no]р<} +NԦl0t3bc Xh,{Ȉg)"|Y,1WnM!(䣽@U YbP;tVSbKgD@ `"5FQ,g(D`, +sf1 +©e56B ۾ի]H^̟1`Ϙ&.?.I*c|IOhg[Y:1m+7y; |)KP[90=|?s۹|~sڹP{|0k@p^2WE`IlpfQ)⺐jkVڎT|Qۨ)7`IQA q62Y+DGfr:rK= 'Mهޑ}?@f!a9^:Ռw,t\Wӛ^c!r,Q뻈#:?ڠ+•Ӑv#oVra_ +W3I)+IQ$nO50qbJXjFaa@& +5-5-,3+/++?4o^F;alDp)X /r4ica2nHK@ RV,lsFhd4'([Z C[lSL$)1M !cꇂ`R|]Oxy~yGXi= zP,90@J#$s2c<~ )} *@ouN8K~H;V@JyS‘s>y@5}` 5kkspCZn:1hi]尝YޱRˀvƞ<#rՏ[R0VWiМ]7{Yl՛8 +R#=SR̮Tr]¸Pe^刑%eեMޱel_Ye0P+9m\lÍ3 !d;14Xpmag?:Bξ@ezN$uV=le7_ N =$ /2!(;BΡBxe38Aʀ@N菘eڦm[\ѻ%[/mgŚ{=oWlc`m^M,OfAjujl^ ZJ X1Le~g>NM M',x߁Nj%ՑR/6:_1(q#!v]Z-_)\k +HIjZ԰>qՑvXҦylj-qpwsD;EudzU8-}iA&Q*U _&N0_Fe _ls.Kstn([.~+t]R*)+%V"ƫj.Hl5|ӸNtuKjcAی7B]wCSij~_#b+XPq+nuq #.^.2-Kz^-Цz`|O´+ +tzoK W3bT d{ +N;T4=D +3WMO ]XP4ɠ$Q0}{B[rPK] ȯ4ot箵r2mşt v;@R"dC5Ŷ;/zAf)TMxϙI;FyA~Xc\eH/=/;dpMdܞ_nŚt႔I6;6Tچ%5Uuc"@+]obR[uuk&s;66OK2>DcͳV? ;#Dr5>|dިEMٸPBRqf !&8mB1nv6QI&sJ1W\Z1^tb*}VQVMOGJe88MQʼ~E|N>8im14= lfJds)k!HVfYJT: n]JP$d,(^ /ABAȌtBs"y(MG1! vfRpI~f"[;8*sT,IoĂݼ{I[ j% n P&)/Hr`Pj9ؕ7~Џ&,!~I!ZH+{4HJ2zȼųȏ+Niq!6?`ER?p0Zx+~<Be&FKWˆ5Yx$q, wXq,Q"SJkr" DoCݬ(5[Ku(B0eYF!WՈ!&FH\\a*, +f9EKMX:JE$4⒅>8-<4wj+XnnF |K +ޏ\Y#6Gy ;'萁U"]" 6LM}ʰʅfpP%n ʲߋggg L0A!%IJ\~? Q*|0LH0Ff ͌fFȢ g .2j2 k S2tƔFͤY2$VfUcUFHcf*2Όf!c$WWQ.gQ.+֍12Wf: &q" tE LpVs& c.2 tb$q,2vF Byc͊iEiW ZiW+&DcU6ƋU 2L%)Z3^/Md +f$KRM My4+^{m]H°i$ jhH ܈D.Z4MGZQ,k4V~*jZUVzw2=޺=LOgj}8O9AÙ1(9*`J.d'Ku35Fق,XaN8Z`N<A]8sG 8 \Q"J( 3 + +Ӣ`FMkTQ Sf̛\ 8 !l/POp QZ7 Wǟ~n{Rf[8ȳ ќN<ʮ0ѹ :3(аoȧק8:.RxI|g;0=qf]{ m:,M0Ǘw~lO_qG]pwo#ugڳ ًueש#ÆMыdH_܃ݘe⸆:n:!Ĺ8F- %rlF= =8ޘt g ]JdBݓz':<}(iv:pS0؂6\0Cp\ȷ#Ǵ?\"'WFFk~{8ն[t ٵS~Ca1I/AJZd/accr`33H +rtN52ic  }@a ?h2D؃1qvԥBF"n{ .pJĚKO3`sE <{Drx5 ɵL-eS t +pq-!gq.o:1gӚrh4[ko9rŨj 8v,ޢ݇K%0{4a(3g +q3 y2\bИh̺N8byyf`ak$Ty]7 +qX:hGǫ3hYWBL׆k`xǹ2j5OvEݡy~\AI;06.(sh>l,,[$3h~(aM#kg]ST^T4.=33DEMeS o?і!MsEǻN7fU_A@߬|:jxʥQcI`9E5~PHMɷ"J^iP Kh!!PR)|gN&4#?tưRZ. ?DS#(>r!d į?#gwg]x{{%wNU~airƗ赹hI㱭\48=%hx/%Cü6ݸԠP7੆RudsDr_bҴӘHBE Ď֡?Y,!㩁*samKJPIɪ2pF42 +AGa~04C'Ms,<$ +Sr 1U)oS7Y\7۶m3 +i:ae}03RIz; =]7N~pG$H|܂3NO^iFD*QG8WQk3p`GCQc$?E Kɗא7 xf8s5C$4W<7W%b(z%b;5]6"j 썆_3rNJ+U_Zڡ t3EaM֩U(0ˤMX޵`/qA6ܓX0rse7 Lo!<-t)GfOM1qqp j >T[-nzIc&vv|N訣K|BMT ɝpҭzmj2㨻t + Zj}ցMROkǮJvJ林]FWtwk"#:˸DL}rT1oXmWFo`&V,V>\nL JWEC{4ibd5IE)lK6ll>RI4H-s?CR`\׷ !|UcMYM6 Ȝ_WħfqrDZ; +g-m.ѣ@ Q;+Xerj{MxFSqWgM<($0ӢjK枚~-{0 ؆EGSI}5CBcQ NaƯcfRwLrL D9J؝ByD+4fSRl_'FgOwV^]|Xmtĺ8m+ +$IK2`"3e;qR<9 2`OFN' DgCO }_QdwPFl%ƬU #hII! ir&{Vǧ3@TEٗr $ b,mB.Cdrct3*_E.:֦+`J"`G,9v|fW6Z N3oT/&F'[*Jy*|cTp3 )1 0<,2L% ޲Atl&S/j>V~fڀhk4q} .PXRp:ql+^4dy)j:A 7 /].aʜkE[$]1,6<(qm4_!4jmB`Pȓ2n-7Z+=jQ]3O^0HT8TŒ1aSpL rp`|PU4_3,efdRH-$>-k ǚ~djXD-LQ>!o=қcdnE, 5`yH UIsF$DϦ^nt) t 1)m1VPܦ[MǥKv2Gjڗ58}VII =oU|7.ɪRmwTbܨPoy[ gvgv$ &*dDޚqU^;WK$GnaPQs8wKvޚJ sƫ!!;,Osk/%U;OS/{2[\[ ٖ"4S^b)Sfy J~5äaiXuD$DڗZlPe| j~(ʲeؠ,ƒ5(U5(o?JG!?&Ey---TJ&߭܌XXьz%mnGc>z~@3Azc?k%%na9fu/1ݳ%:;Pi evmR5N6]n&M/p01Z3<3vq4ק ~MQ# )h#9Aw \m7/wc$o8UVgp{Mv/QWn|_V,QQUɰ6tG ǯĻ=4rwzCR[v`2>vuc,4O|0dF;6DݨmK9 ~vy=n3~\!F%^2A0Me٩a="lcs)Z>yÙ n%rE~z{m(zkr fCdUm.kXLED'N2W𙍟@z'T '&O2 uzj'N]ӵ"5*y, d.DrfccO|{51xe[j3hb43R3=2 +.= =~1|=b R{xWWJ_ζ/~!LAo~`SuW%I`:m?a]d#Ɏ+vߗ=/$>+1O@L">cue7!߰ǥ(Ι=a1L`5V>,o:ChBlH~gSG%-0xh>lńaL/JGiJ'\8iN(:/$\2`f:ehF0400fhvÄajK)SM~P 㸙|>CGyZxPA+MQl"QiL>Dk BPoF>r_ƒ*FeER[;Rfw0a\ +wG*֛0k7/؞I[hc^C`FgV}^CtY#eE{^m_ AZo"5w G -yC >n!WHRaR xI* kC}a%0g7z1xz9 P.a] Qz?-gcJ)'_/4|{J.W%cеql(tZF^[/!?:xv=+ص5a[`(Κ]͇ \g -S7bѷU7j’IkR.H. R`ɿ%~IQO>xc䷏O߇)lNF~y)v=[Jpn0 +#]zbЖ. MGVK}ܳ?m7Yֆ|;V&w࿦j_?/jm7SI3Ew_j3R_,9̍9㦡Pw{t tEr+;sSLt߻ҋs4r3pnO򎃿b?SdM_&b?N0DxcjglֿoZ16$"r@hlKW$xܧa 0dKާp^ ++Ϝd,@e.`/Kk-zʟ5|sSfAU;%5,rRZIU=SSrcT:%j`l?Y5*$jG$jJjCRZ5,RYKpPSSB/0-sQSv!Ort os; KjRa8}iZX i<*r6(n~0ٸ)/? "xU>le=վw:6Ӂ:(v-tǩ=mw=.A3ϞKBO4ctUwu w3 His7k=wD}S4^}fvRĈAZ{3q; H ufb!*rh-G(Ր*wTp쬙u8MHb6:xk4R6Q5GE{}Ȯҋ6ɓ<FN;ˏ"}@nNay ;2qIW?(g oA@87ʉO3y<^׿?|„RPaSZkEYA9A:j׹00Jg1 (I.jԣad`uz/G!kրݻ@ >.'}m)ՒG`]CGI͞lژjP,K\L 8I9&~xp +d1&KD+3(d * Z*qiWcCdw'x$ѓ5h;ƢOƄbyh ͽIdNmX +$2'13l.-VSp!2=pK.s֒e%[B7&`2']_1sc)8w3B1W +[j+B3\jWR0 5@7Vn6c,{<"d~*eo#I) _4b P&.8ʤx3$l# +2G?SG'H R؝`Yf9pdFq8^)h-y6z쌦=Cdafxo p{}z{y2D fW.K.g,f,*oFsۧ%s1dh#(J/Բ fRPY h 0kc LSb)->Й /6&}X&*/ !@>1p v{lԏp\V2FE8 v6{LHyjE8mhI8RLHqBpzP~Úi,eϛ[Ԋ?Z T!Fh/EHIa224ctgKߠ2@uc.J0!qvCCJ_=ґ#_ ˴ovD (w H9czZ jSy ݖfCßX{yQ~8Kvzdžq𕏊V*T^3T_ZY`m:k#db,q5Dߩ)0/% h.&4I?(^^ ϏM6S$ 1tS%btKN+!2\dJ;P!jBz6e3q +IZӽZ^NfL +є.]+Jk1Hjw:l~([>ހZ10Wѯ -y{$?"= Ev ]q`%6}GE=̼SQdsDOe-S-IJ[1T}Uź we_mIiR0=#] +N1`"XuyaXNJKiޫ5M@&』,#}xHMUKdO/!DAKEOlLdp Ny3җrN˙Jw!9QOk66thNlzMꨒ8;*E;Z!Hj]U ozH- zjAŁ. %4V9q1y3p~y|L-ɍ6p P͔SҊJ"\ƹc R%& ʕ uiɭQ;}Lm1WwtfPgWF٪.y4k_T{T_qұ;^{ H_3[FI0aa(rV4kOȊZ!cȞ,%A`(IW$G,)(eNd5}ٰ*cf@\Cora--%e`,1L{Eh{xvcw(ӱmf{Xj]l; o@Q:%vAO*j$6pȁAU $(d"ThddV&Ł dHTdLlR/㮕 tW֋ĨB/M=8HsؐȸZX5³-FZ>\\>VZ.!-Cz|{x;>:ҡwz]Խݡ䷴v^{L;^2{8ʃTqkv + ְC6hdGN6kdšj6b׈ʡ 2|СoC‚k$a{\C:nIfŏ,ifiq*R%r[~{͐&"\=D9Ȇ !Oե7be.afhw@rRK%yEhYН=7m7&lrIo2==xB5|?jde ~K MM:Q-$:nu8 AwNYMzw6HKEvmT@K JX,"gIGqd4 +[Zqڦ+¥[]k̷Fdٿ0>RմجGhN4r6fi'ܛRe,W\:U\sCqD6t _(:B_H;b 5~6E8 uiwM!eN"l }LFV(4XaB`M\G{@xdHDp)ͳAw(N uwq{߀ϒ~SG] -}Ddߊvځ640od60!w6ZGn"Oz?t4mxm^R6aʨF;҆K,aYG&$|T}бBk/h fL&ÔQɨq.V]_DBR 0 ) %R"QjٲRS{ +m4|4׆F:pRS`aҜܲQ]B2o㑟!רSS`BlbwM\#Q^iac?8V8IJWin;{e"|Rp`#0%.I #η?$_7-Aըf8;q=iqj<į^F|a u\yG<'"niߑݜiav$PR8t_Ɂ6XݰpjR}#iy廪wEd3'Do#&un]*ס_vP{?Isdjm^'tsi𠏂tD؎҉8Ntu!pC% ykgS+z1+v|z[:(N+7!P(bj)~"hA,/V٢_#~#vH?mbM[+n⿸pPwsJ!{A'kyqt'R퐎b_PAVגkA8aüى +躃XPΈȲg9(,VV2}xW.xo޸{qoB{2y>?/hLf+,W=DrmQ5ת:jGP|RYl+MU i Td9 ۟GN eY5T"nW?㹇4ZI+RI#;pVRuWyRJ BwCm/Ig(螄x>*Z2WO~ǞN#c2.W[NO_IT=$}&:Ge-t|&gXQz)e؃^I r> ݒ!K5DGo~vQ5зv2*v%B&b|iiiܦC +=L5T3J%ԦCA:ACՂ! MNj[ȒTSn"DzMߡU4H ڔQFVC=sQ1Qy_ݡrhn͠cxv(6s4/r yj1Q)${.6u_y!ʼnD8n,RF!*'c5zҏ_c`5RxFQU-*1肪@k+V꿌V!8(%".6Fg%8elf7o\o'x=๬J^#P4Ο7<tE*Lynz +4<$*!3N\Y}^8h# }p@}%Վ[X)kɳYi8x=pݣg!hlq'bd3! P@g*?9kG΃/he)\K0 QE + k~.cxbY Gyf+Jk8A[:–t!*)Fta1Y+mJsy!< \#售\EePXRمqO +]Nŭ3qHP֕ + c88xE`<0WTOaC!ظ ZH#c[Ƿ@-%ҟ(iEO a˼kXg1E%: tlQAId;:J< +ZaAđC43 ۓq c./ +t" sb)>#)&]b%mXQ)ɯ -rt +5D9o*wW'U+k4K),80iOJ +<6 +<9'Lw[1RDYXWNg::@GS7:)d?8X-V5]˭l6[-Y)?7V.7pIƟ9b_e;aj̇oiF07W}*^IV ^uZA7%uz,Tow|b,!߱z;`v.\%P- +PiZs;@4E.Fvh_Ƣ^{ ui_/Ǧ }q$t).O5|ZUR<(W&jz՛,6>76}2T׬/b43nfU}:\{,׆6My m[U4z5t,,,?A7ewJ +..A?M>>Q?)&ѕv(?W>A~zdjqQƠ~mP"&9sn I05`- Qis> +ݕw1b E DJ)(Hz]3SSjmB.5@)( "à¼NidH3we48fixjLQd-)xF"4I{zS eQd;.hd$nAQ{,BSvb5p5)ٔvŒ'u;:?OH 01#6lT$Y0Vl*MU +[tW{WDm f'k/`G{ҋC=z|WI@ܾ;jo>vm!}:-"C<%vzthm3Ke +7kwRbd*Wpvɋ(=od&IC#s)3z(lRS67荮j&_6fL_g.!^ whdpil^zIi|Ӈ_*͢ZhZ2&eO wiB^:3;wʢ ^!is[whsqA?+}fd5q;FYp2QbL+QoB̠+ݼp0nqmL͆ع{4.|E0q?6CN31967|ҞKk.[0{RN/ /<+J.{!D>wnzRpu"Fw6WG,]D'^/P|%QrbG8ꥰD1PURFvJ!BfFwPT+ib̼.\Bp3WW+ǥke2mNC'R_98pUZ둫\5נ +~` +E=gڢFg +?_D>sF _+ {L9?$v0Oj㲹[yv}t;4"0O $+1]Gd 2nn#TӇ2e0f;Jk~;M׽7E/ギ)KAAaQmS*ع BlO +xuS}S}S$:rOȊH m]o惰؂<?xA(+GJ>)j憱Ij&o&T\ +}C=i џjFoFٔڜ*} +C\UJ~0JZ%CZJܛ#+ix_jx_.)@y,)1dR ؄}%^BNk+ek+C>]]ߗں +GbA$/G@I7P!~/FRG@)F+d) gJ*,"7t}@1wt':W&?+= tUrfvצ( C +W2:W3XCw''%: b-#Ǻ;8F8Dy0d8ıfL~zSl+sH`f&{ ʓFJʐNj0erwgĖ`-oU-@{vg #2Db}FS6|E^tT rS:^e٩7L JDe؁6hD.1Y1J .\ќHű@̘=\,,YIY0V\! uIiXY2]8"NyhM([pDD1D>bVPD۠X4ܱ.0pH3Ğ*!%;Dray->o_JH42—*TCDWy=5iE5L +` +Zid XxE.6R[*Nҗa$8?AOAWb>3EO>җ}OKNRRBkTC)悹xoVk6ɼ"% 2EPo`^pyƠ XiQ`Ф}-dǍń<[oNȕͤI:j2Izc$YGfVLە>јy~&1Ҫdy +kk7(,%:)\&b84EoDjK%ERMSB%Z Lh,:w;dI4m6{BÏ4%X4%SI'FԲV x^/69lO9F 0/hG\?oX]6%aQ{K$5JGIQFȧbr`5 =lz%ɪ0S8<#L[ 9M% Vt߾d06EF|r!Q]¦ +Zu9|81@lQx5uMqkN?W"ʡ+Nv'5E6he%!4V +5U[AIE),E[MNמ%2eqlhS UCQkM"j2N"݈ Ú4Rjq0d绋ƭL +~h(A$* Z,UMS\ڽ2:@J[e2X"Yӻ 8*R#t,*o$!I>_Dh'|>Mj7B%-*\KaL|堍%Eܜ 1EKG_+TK wOw*>kasѱ ,=wtyRT~I4QtQ(Ə64/(Aumm9MM&^0λKL5,m--LPe.QWoap*b -< X +QmG`Y4f&nPJW\ -Ai(zviWoR*^En&#U@՞ +2cVS|wbbby i:$zv1Ti֔bRKd;R V"@ Cj|exkyl Z^3(ⅾ%t؆R+TQr9fhɾލc񩻏7rNG)#hO"VTB4 Lb5w J6S3HMͺbcma 4?v{rz!( %e;o;vf]+:aͥu[?ve&/@8fN{܈U"j^#;߿8lpv#QJ +_P(zaKm-T(N ?"otiOZl:$D9aMH]X䔮Kؖ6GX8~|Al퉐X5 dHŷ9 +uӪp.EPuى6͚^x|ӾMHJde^?s&qG'.J4-,;S(?34\r|:U;M-CwUӖ:{K +VhŧVpYgfM))t֚$t.8O/-_~: =/f/ 5U>6%-̈́(s)ٞIkG/Pq jS /*g8T-;[kN77_vM6(u?8BcەZE̊QKm3?`"RLG)튄)_(xvIJq4ΰ@dS*'/kJ̶CJGZE13>:=#Ӥ߉aL"N{E e93Y^{#(ilv_Ctbe +V*.4\6eo@ +^ɲc%dbE31{ўFG>aU~Sw# Ԛ&fAJێs:\2 t˃-Ӹ{nN6y e.ݐHkIˣ7qLoFeATE/%9) +<.QتwNiTO'Sf#Jιvm {]-^•F#! +kShgYީT:N:#i\{TcW8TkERbW:{³*:X_YY婫~* ƞG`QDhTm<1>wKS!9gQ",\Η0J|K3l8M:0kԕ?月Om1.[w+sϮKŶdxUdd &yCtWC*C /ҒMcTup7ChIjp:i`cߠ渹Lhͦ/jNG0 VhA>CSD2z6իyELUiVnMmyZ"ֈbC8[B +mj(INl(k:q 9WIuv) yl MeS +Ac592P&5 0Sѕ_PI䞍B#ҕBÚ/Kkf,'"ǪLpO₯L`>q\A&*.!]#?lNPw{X֕^{"x=ZI\8Bo$K\`kk3kTȤK3[fJ6K֪m>%k8xk>xJE|$hOHO!%|Mߜ9RzhJUd>;SyM,Md`շjǫ%;8Qހm({?}NievHywϦ^kU [|K Gʠ@Rv ijo>y4bxDublٵu/> +$% DvgzYI|Qˈ-A˴n{вO̴CXt5v̤ߴz +YOzK߲im!z+,̔l^cέ?j$s|dL8ikmf0:L*]fݟYc<_f+cq!H 됈 ~@?dḶxF7J;jxSCK@p={ +ۺ&~mK; uߩpRcq=N)zo0MşXI͛|bOc}%=vCDw|$Y*.! tq(qs E֫[F+Nvՙ9~׽'>t\FS;V>ɯyYCGzFx)e5Z.#x-Jkb~ cj0,(JlZUB),io%(Ћj9GqxhmQ%tYQYqw]GT$cp)$½&,Frs[t= j#:'T^K+BTWwvd4[kBK/0^"_ I*|a-h͚"zRkʾZ薜] ossbW!bia^ُfeI˸G0w*,|.eKsh]ѷYX2e [f.ZZ, +Y-ao$|u5۹-\ܨ9NU;Ut+lˀ**4s +Ux+=itӊ~DOD1Y}1,E&gީj-&W +QR5;pLE5͵x(Ln49ͦAv଍&|* aplYmcq U.rSRjRp,SO@!^Г^B0ŵAṮ`6A)n|[uz9+*v+ȯڝY%HzO$e]$>V:[u[;b*C[xwv\nٌ@wutaN^ ihB`Xހ<ųqʕ:Zt#TGkMi/kxn[Ϊ'/]jknknU+eFwabx̰Q8œפɂka||~?%\YW/ nTq*IZOe4>wow>QX*ewt؎z;úRLD!miFėԣKF'vawMgSI|Y;esa*;ZP+R]7 +ٯ^=<[ŕNʨ +ВAWR7+h%m)^ap'US{ΚCBB![~хUjϹД +Ab Fdh~Lj뷽CrG"0neR+ַ|49OxPXLSz[dpXoU2x:Ǟ"s"?RO%p3)mܖ$iz@z#gZP/ye>,+|d?oLVsZ!4fO^SF|Y|sInewaGXJB_垧[7+1+ݪZ *vj=jŞ/dY&K&yD nfuu^s%mMWtS%nλDB̷nVi?$= gK^uZay_ERPwp͸`6kO"7nVQ+!P~3i9Od +h6g~ ̳ឡVbl([$VETf+|D:q ESd+X9t] nNX-!w 2ZZv?_+P~|׉B +y}T}"_UĐ#&IGExceeZ_f@SQw:'}+O"E7M-~)u!]ŅTں솀O\V+^6:wm盼5ߐ aaǟ!S翱mf~;*$+.]F·Qiܐ ;u&+;c]|hfLr/~i$A^;kGd^;kKd^;kO_+B_ká^;;N!{R+*]j{óN,aԗ[Mnqn[v'{HQOdrWvRU{aJvͥC`ݡ6C.;N/OؽwWHXm;w&42E˵2g Jz%J{J@=:(o{ৄJҭRޕяx!Eh|/i~i-lx *~MD 1Xc j?>?y6 +6}{`)a'#@Vǁ5񊭈@)% +#PLdQ +khS\]x0@X7 +zP`zS6C\m݂6\%?mނunt+wg c UJ\tèTsdT=aN7 +4w!6(W*M([ QΞ7!=yA:,'=oa[};1;vblNA>o{0=k` +wq{^$ɫr#RkdE.6 j`y S$mCsXl +k>J챷#1Ÿ9!4WjC^B|`  @T8p]ID[1ld٠n Kbq b\ہ}I)m Оv b@LlCPftk9Kg-X :[dͩ鐱 L NUV͈a(8W nE(E(2nрaפLgNeAlxq˜[7o5OFU|W,Dy@Fjm3{>ݴL! ZIX?b4OC 2dꏓQHcwbc 27¿2SdדQXh|mǠ;L^6C#ϫp!qk7zRgъ\m@Q9bM7%},~O*>拐SNz 8@S -#;涶mB巇"HdbL)D2<IJxT&Q>/6Y@M! f$h3ɃgHKƈ职-F2"%7f#VŁ'TKѝ{|3Nt8(~u;|b{ȳr @Gs>G=@mӧCڋd_)2J5R8#e +=Gdi&K' 2ԐW ab^i|)'+n.oīža-.HH+ A,rƘ} +i=Bgφ<~C i]'e}*%+=jȾ}GQ x*E :օu+0IF~ǮK٬SYN֙=Q;]k="+Q몡. 68:xGs_G>Nh;׹fBä%d~\v\b +0߲ܭq&X} )$@4decBbe1SZe[PEv4׫˵OmF+Fgjj@oj%}{~_/b n_ vC b)p$P%E~v6>pTi)1ښEBpESe6е+Cb<>Z(y1(3Dz/|$o:Yq?sp䳘L_.qF s.C,䊩g Vp슜bpwk QKR9>W\@VMG-CU J0INO4 RN"`ȡSB4 b=2dWٽ[ǠAb5A$pWj{fњԃEC5sil?*;[J2HE} 6J圴 TC-F P4:v`V!: ܡ0azYXPHS${@-qBG7Mm/nք#bH^|J ᑜAO[4xlbD[pc N*Gys=$^L1 8@ƌU7 H% +0aXCTJ*6OYk {1E~yIUJ~C!§p@Or.{kΣ5ͦ2z=p#м:Ck0qՃ6\g4T01/%(`d{k,ug3NVz)\3Ԝ>3;>aar]guJU^\nr)",u<޸-Є$ op&Ih}b9*yC5ەd_ԁ a ?N=Gp;Gd\.ؓd:҇p i.Ӆ=V + }Ƚ/P=e{ZN7O7(Ϭ\7{L\=>/\ Fu_!zǷ!کZg,HoΨc/ք=7+P_V䝉Ɨ7W޽͵߷+_0/Ә;ބ7/LtG7/SސCG7/_7_0I>yZ7:m_^ oXj&ڧU)pS31VVI՘efڲ9 QMkHjN2UOX&^rN#CzA][#{F{K&{^{eqw{w_J#a ~7y/ykz?r#HiR}P9g{6l~d_y;L3}b_Iz&ZI6:[Lkiz#x4]"Y>׶^DŽv7Ty^Sv_k|jM7~7_vIbqJ?8&}cw c_$'ىٙ,d2 MN'Yi()OIS!j"k=\ +Iϑ<2iϵrl$>id?4iA trrRsxTjr$sds)jQIUǤ/O'iUvVwk$wkvһ5ݼ~vFYJB||ɉn%0r8dyneJjJؔ)g+l ˶m۶m۶e۶m۶m۞=39~ߜ$uw;+%?!7YtF>.L_ZWM'lW[EC><S|pU&`ϋQSQ2z Y䫑S/W]Q~Q~U~.n v>Pf7oʷS4]M/qejիĥWWJ/+Oev9QQvV['zISLZ1weVWs}>.5yZb1. bN +0n$Sr0!.f3 x>[U._;!;`I$HZzY%Snjmyq! -Ҋ':mӳ^PMo9q~+x 1&?Ug|y .5xm/4޹x W$3SU=ިA9'Oꏼ ݐjdN$̀$}R+3cn@ML %8MYoQ~R~UBUz,%}RJeW|Eэ]ݘ*sf@Eoc/fW^omVpC#.;aZN8Ϸ{$%wO ;pHV7Sj'Pc沞{wQ @#Af-0 +ڊEPi_j ď4w✚ҳC?X&߸W^Po\oJYOdˏp)7j'SbljɇԻ4J )KBZew ߦySyM'nVc;̘K5{8ܦ?Fs9҂x#̀_#e2W7 + Ϳ,CQsjkVdd(NLOt @2JȤn< i9opۘUΗ@[:H;`Fz~uJN’"ѵX{[C;$!}n;XE Ȁ'ђ:*7EIU G+dVOGǂ.H~xҬKu5̤SJ ĭtE#$38j)s/Z@RtS#K6}E."i2oV +1 +e#ܩ2:C%p +ǔd&\x +&MotQ]H.]ώ&1nz\Rp5B)Srk&`,C<$WW.X9 + bLYZ@_F.x&k)uʖS<'m`.q]Ob%7X*iȡ|%: ã9pYҭ|eNۚ +m0Q)s]w!{D9!\yG(.Ak?S$1}o.%!33"r1Ϛ52 jS?s@FJfGIܜBhs+VNL/lTWک T Oѿ/?LXݺrhc }UmqppЊXYw` B"z] ];go)o,;_Cz)>^T^6))n\~uױ:3]-tU7hWZ&Kr7>ؐ׋f] Q"]t@ilvm)-LH@nv{NDknVMNky:e)WnX2 D}[p (]8e?wO+P?:.[>od?e0Ce6x_`Iuo Ĕ%ah*Bֶ:oi=ekbLeް;bh0Z/M>xRf5FiYf=3> +e0L'R~G13K~ec3G刭c-Wr~6- +9Ǡ~gF?rfn&9о2.5ʮe]"[.DDn:Rpptpӷ)Ѝ=juŪXekǂj ڤڼ%-d=E&aEÍ>u?efC#2j|(MFnym1!cC|̋8};$>ڋ;R+da2i̫8(M6Օc@fdM:0k1-QXIkK|[J{D ck:q6}qiʵu[}&4+P7G;G4^.gb=1qĩ7[g~nlK cz9V>uAbe5cH&<51SX)99q.uzsulk_aò1 yԴf];BRfGO8}0k Xfϐ^0kD>)fcÞ)9r>M H,lMɵ3M/I'?G/bz$,Rp.tV PvKjE|( 壢 ttWJ;7B14iYP~_J, N\3#űeJ?W+یYvڗޜڄŧ}WH* lqH_FXN:P- 1?,wo/7gF*B%PP_4Z( a|DT7g󞬴so= J٠R["Fۡʠܝur_]:\uϩ;/%o;\bd`\gQ{,EޥB0\6 =hpw7Vq{װ$ /Bi{iFfdJfJYJn|@ޅ"aIq* Ɠ9gzHS +cCoǼo#7;V܉.E/f~})tNVM,s1˸z~?W'/J Ef6& t̺8wqw?lg7Oь/I1^V+ i$9@$@(?%j@h77 H} e3xݺK [cּ{c$`Ù巈oG>o9#;oI^]O'NK.npey-gؿζ5xi^F +,nXM^N>yG P:j !v*u議֭]@ߎt=rH;O/zƃ)̍uRNjfMQ;ww8ZoMUQ `X +p ߜT +5"-8f%/e9*t,鷢UcU4߂/{YM  fQo}!rv KMMݾ.Y_7n k2]1 +QXvE*GhtEN&7_Om%Z퀍n>*CUwԧlf*c?XkvvVr.pb̴!d0- +emJyJz;O[覅.PSjͲ?pM`C-p! cTST܁5XZG!0٦1aRDMd5&qZU(zc4_㙐{-)KC54c\'O|V)MFրY&LU!5 Umh)タF+ZURR}ݞܚ꨸QBпQA@fP L`Pvh@Z` GS,fxjR?^nR7moMWFZ`:O>|/lo:HgE=jzޕoq݄GMY xE65KR02_ *-KF|.5 /U¬rvv;t3ӂ˩I*(si IX`XnR V+x.8#y_1lVi:ݱx. _֔z5.e~sGsXcY7ţOf돚pLJ3>Nw:ɥXڙ ?975eо%^yCV;J +ŎK>?c62]hQ *x.xH[d,^Xf~NO!|S6Ϸ2lpTUܙ~}N]Ѫm xATA>KND%S틊]z\bu[wYK=~2,_ibw1BY4Գs=tŴr9ųW}֡/ B%|2)陋༬Ɔ}ez@|Q0V'Ѫb(rn]7^3P .=diGVߨWm'  +Safc|u GeB)ҽ2Y ޷ +rͯū?Yj! u1m[{O q"+@t}(pq R9id1OpZfЁD _!DF'rF8zpV%%eHpX3t:QUȓdh3| +`<`!d-۹,‚TfyJwK}3A'Př +{m虌+fY&uH)sLsyzFG4pV_|z*54{F1ZQnӢao;Ѻ|/_Кa:]>t͇ }(˕x3ݐd_~+(fBa]*+V'Zݪ@Kh'f-)x'(n[\'.{j} D'nm[ }H _3YFdK&|#5-oM˟*TEnv a01!=0 , %Ճ&$h'ڛr܋sOe1ׯǓWwegU>׃sfN|sঢÐ3gO_D6uG9gm4"}䅶wgo/(sL|ZόT+%Xh50qKIUMJŖUFZI]eN+,5*J3*JTsUխJSj UWnk-CYyuUkVk()k+ך~f9s~MΕU,\=U2˪gjO+TNh+3=-KUΑV;VQU.pLemQq[ 87 s ݑ&k6 +I(]#u_b9gMg7Bu}(1ƜE>8CƩX%` t(2cAxtZIȉq5h6Cc ~1_nj{c6Un6UM'۾WmtoYjsXs68c]IExԆLuB} eGjD{Dj S{U]+ح0 $b)wi%1BXFQ"4J 5_k^P5`%[p+$ֱ ZI00+6(H]Mx̔Z1ÜV͂DXKPݦrׄ2 si(Ur TŒs +v0D2#vp5^($SOSC^Idnə6_Zawoe?,?PTTr3D#d(w /t.mA\gE$ȅd6XЦ>D㦦Zꗭ#F %'ՃIh0BfԹm + j|Y0>ʁP,RxL2|.V0p+lB& E %VaL4xl1(6%~MpJC;J)4\r)vZG`IpVybdiLS~G~O{ %yA{WC}!pd{Cq [}-lR؆=5Mn[;nX-Eն֭n\1vkY܈GU +u{_} hpN0T\JX  qEuiAb}U*oIxu°ՇWFu(.|u(Lݶ}Z@j6*@ hqEv[djΧ0WɅ]3k< +SREL(pzx1~LjP'idCMGСP]'ֽUL)~cMӋgd˰GM}1Cz_԰BɕV*,X*dRN/deo*001MH"/Qe51"#7KbO_.dJxʷDQжx-Ș37ϰ6B#. +Maefc0-~=9H1~jf@㋞a/ l@[?.yl[*;jj_3,>lݐeN?)0ڃhӐ,u`hئ 津B癓Rw+rގ`zayc +Ujnײ"q™`0?]G!Qiu/p/^|(,Lm+bE/( ==QϲɂeLƹ -N߮mXŴRڵjNqzgA[Y[jui_L [%FDLxG8N񌞕Bw88p *`#pi+?dr[2VлN&8>zC$xDA<s,)_-Toz,BjSˠ}&&iX8 :WuaUqa->DgII!(!iC4ؿs!yg is#D~#gGL<\~r%pON#KPMpmyb,<)H, a{$ ah>lVIlmދe0z@{#~mSeWs&˒c෱e]jêvłb{Β-m햰2kNA|M?haɛC/Y7fR~]0>3̺E Ҝ[n=tvq|G3 +r]^9+#ґ 3 'Z+l]zZ1h_~W?>+n_|z&+G365XPk1DΪ,t.jHXVa,X䅌asc@d4q`ig sg}>=?`PN t}m}gGݧ-{Е͋R.֛ڦn/v6<,?%CkCRN"_l:jLڶj9ЭuLF;XcHqu$ }t_`Ҋ A" $+Ee& : {P䦽0_Q)<{G&gx>߰\R14F"(ّM `1wLM;Z=X /hAԋFzNo7aЅM PFSse+q^RS&=Ɏm4!\l% 2 &l`b461A.4<.NЯob*f(f]Y+e@u<`"CAzz%Y24=4ln{,A e-l [aU8U6/^g2+/&IrFi)'%we "O&a3+yX?@\+g]wf|M{5 QS=!\*h3ifXD E(Wސk=ӣk5u(:`U˝g%$(S؍$.$rō1Bk@ ēwդ}w~'hK_I{;a=R;t&TA߽%x8fPKqNY0QX/`9"i{`j`l;ojmarq2ކ\(MϽyTݫyL-ԺWu_V9/[Yգk>15;Uē$ׅk٧ j$mSY{sj!~KSԻV5v}e;ԏHb^vt1efloW$lLvX2*&eCxsYbم57Ƀ%FvZ{vLh8)6cԶsgJކ4; Ӱxyu8anW0CR)H/EIOwOSoj{t]OaI. +42eK%"DOH>U$L q2sK-g-sgf[UǘuO N xzСFPU + K Nh2TEDCx?(,Ni@1ʴM1I#rR.kDP.3(kİKOlDq6vK!'G$vgTJ=j;,iE$5r٪0=onn-R*]C2"?fD4̃yEYkjMRk44j1MIzHEXk4V1Z4ۥXmP5{HEbgb1j.mM颻] 4ᡡO5 PG">li /vw6 ..yqYTayȨƨm5P4,h1ed  |X>.ceu$c7p84lij'ɌYD<*10t8kwt T̕sJo>%SfNDk½C7D(UY %l?;"/29(`(acD53OSF?/DS`x/_jLfʔYaŖrLeGgػ;Jecgz hgˑ8NyJV>c|$ޚ9ZK8rNKR'Nh'5XXK+r^ +r.aViW#il-HıN:Х GyGyeO} aÊ^ʲn;SK SП=ZiAIN4Q!mS&ӽ.Annӕ[Cptl̐ ^tԬ3d_gP˦-y7v\S[gdPfPgĥHn՜,ylwbS}_7:̷h`FB (-?mZ\>rl#%uM/|7*o9GÑ$594W>6ᠡx:(WoM*(Ww;3 %G[nP3ٰ] 7pY`8"`"n&ToA'*( ]NFeYj.D+xj Q2o;^zr#VigQyUW$Njńp8dV4:HɜG9pVa3K =9U\,G٠9״\Xaķ xYËq;q'x<6;c22/32r6?cBj 8ŅܢjwC^]~ZJNJ)aK]I "eXgbBgD(i:#[A1͠ vVɼ؎i:KQWfW;X1=۠:hV8+!ls _ %W 4[ulQ`y;JJ6kBEd( Q$  ł m/ox?_1&i2rrw.ߗ-|҅#T#з}jC*l+,'lq=+hcwlT G/6E0X0iaJ(<ь=6/o5,եZ 9T7ҩ|̓F"X#jij2WNT97|"⊒"@]J !VT¬))U2 +ʘp x(TF0z2>i!L ֥c 0qR>@Hc C +|DK aLp**J6Eɾ߬t L!Ӓ=U %<(W}VHq^q=CtrIee)֥/(JIn>0od> iy9yyuQ@ no'FG;.;xuG[6W3/`&pzɞf(W\D\[x7|Lh;/~tPE5lD =1fč=4{c]᧾o52zI&,3ľn὾}x.ZqB^ a~Nr 2D"lA@?}XtGE;X_$lQw}X'>BW0yTD5Ϝ@!<g/K$QxWFh_ X Ruk,0sg& 'ƴfT½Y+=&$"~\$T,V +rT{ۃ8mJhܳhB{/ :yS? +[p3_A],k?۬E2h*Q!jX(J) :8:;;KeI1KqXM= J`'4mBVhm .ˢD;xP'wBѬLI7@(Idc錳ns>O~W|€[K/H*<& +!s x.@^2u܃XQ̭/8pmL^ >~̕ffXo( M/gYB]K[M`eI?}5*^}+tx ;l +#ZmƗٌPbf߁Nϸ< c$[W" ̑xB%N<: Ѥf=%:y&tqc4QHP!59VqVI#lh*7%:Hfw ҅REHLl2la.4km\#JcI]\bv*.B(^.琤EE.ӫs.R<c4?MEd !7wtα&o@v|V}ŀH( >hjPU[D8QBLBqKb4ʇۥB ת1&~SUa8:!Pk?UV H߉ vzBP@9)A HJ|WROHx] +Ue -m Rv4V֑9˸ތ &xӟ;?gaѴ뗃l=& 9-kC1e4OyIM|7bJ Ң ٟ^iLu;.{Ϩܦ8%۵GySsm2x/IW'[;0ǧicF>Tf z)[VP%k)gٙT ᱨrtŚp8bƲiY=l7cxZSUCs9dI?l'+2S: +PLa1LZ i-RRYՔ!~% A|MဩՖi|V=CT'b)?N%޿IIJ1N%Aj\!lXmE"%)ej|I&ϙv鸣#69:ep^ZeU]]$ +A nUVk&!2,z`ҿ t5cU R=6(),}S[lfUYYځ5D6,e]k"tx҉vR}Ϊ)6QEt'G8ԙ]JDH5l6؝2E5FRFSQWvD"&!#HD"6TD<;>BrKɹPs_PYif Xkgy0ka|T:x_- ӈ>qζo;g6LpgeplAckU8b[.믢%`3 GsiV}(wQup=鳩8{q{Jy&%$UqsYu^R<,A,Ͼ4.^dtLBԫE+ԲKgiﴹ)-?ȕ_D35 /ph\y8ĭ(N7 IDdHdOR`b]Fk2/m%8 %# )-QuȊEMV8S½66#Eozjچ{D YfHqHWM Vz0isf|ĈaHL'"p0\a^c#l&EH +?2> 歠r\m[܎QVzi֠bbƹy6BճOfP +m[6yJIi{ung*-x8^4=W +3_f[5ɡѝxڳY&)xn Dn+C k'Ov T0n(kɛחºz= +Sp>4ct?{=0-od!0LA@V:n LǷ=~ $}rQharhֈ>ATPdSnB g=hg]yg3 `]t 9cb%͘VvXh;=+ O*7Y^7A>Cnz>CfLu!0>rC>!䥥yW(=AYnQ i*C}DZ\$ὌT{r˨,)iqMt!%S W‡JE'ٌnq+"naZDMb L'"5vE3A T{r1{q]3đ}¥hLXb& +dQQl~Q;KjG; +^9"B +Z#\*Q(~(s$MbcBFAp5X/İDAG/vgF_-4ڦ@`..i>Hk>w㦷NRAUQDo12SE#,#gY{ooc&FgϽ{kvLdmvt'< i=8 FQ̉1qx_dc2T/L +Z3o% fy#DMt>6]ہꋃُ(PP9ڏ+Fc_`g"<h$l*_JVfa<+6`|_/G,z>.Aif: 7JǑPWnzy1B>6,hM*֟G`I ZU4TK$'v#g]JۊRQES|V:DDaCh ʍ}iZY IR +7OA;SY3=zMgrK벱XnP;uF&wrm$ln^9PGvUss]+z#ܞ\)Xmn'Zʒ[ҋ ZRYKr_n\^ߦw/{6*&dgS!J4Iv" Ǜo*{άۖ`f;$7f Z+yq 1j +'44^ýԍ`#d&KIZ4x)j;q:Zo`V;lsjDH$;]=L,6A`ۼZoНGĝ;A)ONY{rLJi7=2>(4.:;A!7_\*+^R֐4Fged&69$Q$4݉7w>22( VQ, /tlćg{qgvS=ixNNA}"*mrĊ+]\Uꄽq $X$J' !k+gyT%@ޫDO"z)aS="2ǸYJ1P@3t8.}-NPṚk8k5yKg I⊎\U՜Sēj!uSf˥XU2oHs3OFF5b~ ˜v>$(x3y.sn0~˷(Kw m -$KG7)SXH(svcP +Hjrzp ֑`k5Zɵd棨uwWrW3:a_ i{~=9?6q0SOҵ3*>wP>L&HQ gּ6Ŗ،y}NCy-M9b`UqkWL>\.6|dZf<ٽE[ h +uc%Pb4 "Ư+*#͑Lg }2qz_4h`S{ SgTխ:m3?5pEf ˴"k^)W745c{ABc7o&;݃78/:␾W$U|ϲ 39)-nak(2mH2;cO/Pz}Z :%Bɵi Wsj*~%3lv>%W=Mu_,ǔ -X0$[M;iJ(8jON~_!6EU^<5,U(-jBasnǻ#%1M?b%÷ 2miJ_b/cs(J!7#}zɷ. | | ;Cp'r-EeÔoceoOgl.q_)^Ǫi9Q*Z^hzZ +jѩp"NJʤEQ6Ǧ"wb̈́Ϯ:؉J\TЬBà^fKjClZUUasTR6'ؕ}5n?.kbԡ*gZE䙰՗I5cF XV!)&]IsbS)"΢D9s놌fŐ>z-ꪩ90Z?^s8>Gq>> OmOnW&q-Gt/{K}e۱tC"?`@!LN ){_%Xh|Ve nW eU2k蟡:q&G Yn.LX]v.">nQ:Q>|Ml+cC5ro<"4gh"cE]0ީUei*#>sVKqբ{:j糅xqw + +2k|2lt򅇾x+HKvbʿ4{wp1*egE}!\Cv:jLW#Bf&goo}zC3Q+]lX&LJT+v[>R-kgu.^  h kH?N  wZSQ}563sUGu]BQP( 4(2s7wfnƒ%~](p?ZB<1F; +Yߘi} g>CBbpFˆ0B9|I NcphG[hg l2*mu` q6IRy +e.;Mt9(e8WI3P*PZSmL]brюitVIY5"jkgSYk1 .ܱBf֜c|.o++ S/αx[rIw˲ {%/RW}l-QA7[lõNLH4X'52[5J?C6h2ul1SHGjߙ=8SeQ*mғ\c5DtI9]3UٔuhN$d1>qO5Oq11X6|:@L*[ب!b$>P,.e6DGTj>*c4Sw%''R}TUS(69I?7udfAG ,?"Ĭ6gKn#~[T~%iZk Q@!'G*ߒ +iyC`$1e!ӟFb)\v +Bī=FOAx6> X6YJQfE ,CV.Zѕ0nykckdL\ƦmF|^i-oF@C4wuu4/C K-+nSmyٖHZeXZ{MjMZ#TiPN!AZ7v5N@dyq7hv*LsAŘLKwۿGN\BZ#UE@E}O6WiDkE\M;:HHbogǴ]℉Du87\Z:yR_^CI rt3vl.C68h`yӨU`o:!\L!6q-h9/h$C` H!,,e!* 7NCF=66CǮ/|)[B*$rߴ!zأO"Nd 'FD>-F0'!2l-=IKЕRo +'8҆>aPp_VuG ^CTWBlQcchWirdtlfgzꆖКdfS 8hB $IbE$K:@(XsGsh qm#,m.烏TAAj\ +#o pD!go[)_rsӀ!Sm)^w@.k:r '4WnWkWv)KŁ:%9a'hܔ\SWg㚱gh/fe%=Y+IVqmLoT9+aenryGjGUZsgLa')g"%Ni/WV:Y ֎bb_0 +cЪ cVoBC"("=*yc6=}Q_z|B30W1wl5pq5\7ӼpS=ה^rxS!r#U> U]Q`ňLHgq*b?Ʈ-(.+rkO>oU [2FmˇoA(m =Zo pG! ohڡڱ{7L1u\ F2( 5iiM5߃sj[|t pMH[(Y3kh.G'rkv +ׅa (mb-_FTCDKqS\v( [,-{bibgbecv{8*q p` j.SF9꬚Fp nGzp{֔bXzM%J-pHgu Lhv4{r$ۓf`1xyUQ#FH2^rfZ8X1GlI(CǀH-' o[zJQi( 3W505TU}QUy@h? %|9`hvK =ͅ48!}|e!G#G@Y&Ѷ`-oOTٮ{:`b#-qxfT6&n9+HF1 ;bT=c}̼?l?HdIEc:9BO:d&ե?-=82~X d)v]x9jibzܖE2Gj\݉'\9~ӼdHDP|pΌFfZezdv`|~|Q1[ƹ\D/VF.\\ʞ}nS@tjtxO>,M-Tsw.^T0Sbzdf_$ҫ% <#Y%KXt}PB87vd~҇:WV"(Qw&ˇyY0$]ؓuiDn + ˑ x'zFc^!&f:RzT-T0cM7n`JMq$*IR֡%TbV +J 7y!h26EBRӓER?ZE K³­$sr9:cM9.Q>.NĝO`iV)OϪ+ːW-:}\s.k/;z~/ /-W2ULVRK:kO鹲Vda.{R6N11-["P,Is4NN6vusTF4K/1k ʛxXXR6(kfqFu-SVnҶP`,IH<4︺ *IDRʓ5TT"eu +K[+KU(~4[Rf=Y+Kxߦyr{4eY$@ qPEx0R#N(c#0 pDeD#" n{<#yH5` aY9뙊 j'mr(u&ou` P^9\2rYefؗSw1.[Z~¯u?Ep۶Ǥf':GC?YRۦͷg .슭PzQpܩ[5TnPRu>&p?urhc&S̒?40͗s +?&)udnwv~r|ȅϮ#Zq6FVlapshWhT pJ@9.y JҬZ綌@'_ix:-Pnp0R_#l-KBo;sH]O_ˮ,b )!1qZqAc +q>CEk0jQy wݞ<T00p{V5רթc7K s#Xvk lP34EDm6* 55ϻ)*rLޞﴳߒ$9 ,VCkĦNv/;?pl"}0lq 7jj;ʷf@! +VV XRإ`(+8/A:3wMZN`OQQ`VtQlLiatcB/h◡4[3yVѐtFoA3| @HLl%zN}_i0_{?Q=bOj'tNP^+(yQjqQEdUWѻJ #8!Xp+ȭэ!gGz)~+z)ZωFJߟ(c+~yfی )ː# ZvT5W2uU!6\\rM1:fg.Yw}y0?EtyEfD|UijX +(`'_'߄qgRHZp=HJ|0fg49mI[@]_'ēTAiB:W+@` &%#ٞ"M{ĕzΓm;]) P;95}5ᕁҫ5C(E{Ö&U}ܟ62w녤9jf|D*&tF|2L1Ez!u9+Lj-FJjeP5W[xrp-&ѦvsȹobCf߻Epʼn]& +E! \`[[⯋,_oޘ߰C4*Zо&^;ݞ֒no4X] ij$U кhO[74^=pDg?]_ImvexEX}B&њGFI'ͣ$K~210LX[OCR/;2\騮;qo7>s$ͭ+ev8ڣgf/5l/Gy<&k~] +LsJMBIǥ>~d .&.bN.OXOq΍ܲI6dԳ^UVbId6YԱ;K| EDQs2_A(aY%2R TE@/* mvzv.d#l}m|+ݨ;;(ԡ2W46Q;j7Bd0\Djs8}l +,{C{VAӕ!_+=+,[ǿvM6M{C!F!9tCFF2ә%|:~<<9H9@ nIa%-4I{vH6)ZU/VNZg/%H2Eb'0s/!W~ F .p$/ˇlT1SQ#+*-6; +q}| ɉx-&.[=7Tjt2莥4 9i4A<Ϥ1- ęD_:s"8B;f޲zO 0 ;cu͖F<] |@nY7g -:d"„=A _/%i~~Mٲ&(q57-tk]Iy.7ߗTĜ­5CI8i??6w@&9ҡ;ىNY4||B7 NĎ/36p"Qe%ޝ&0匧mdkXQʇ\$RzF)Y5\-&mTgj fdty#@us=A +g(l^^:Ȕ`l [:纔6+^Ѱ*mjp^u-]95g>ąWAdFPc.SqGsRf&TqRQ1ƺeS":QD~$#D'JC|E, 6thMQH:BUZ7 +Ej p֠TE1ɏ]8j#KDrM~t=Dk뱸D~}Fk9[}P4S >[>#UWk{CjX"oHP{1%6}O>=F}+èކͺ4| uҢBzoj*PD).Z?AIȢQ>+lR4+[X/YG^lUuv)|.%eXږ=.$u"nIF>!. 끜dd[!6M +za;@NH_>i%V3{G[Pcg͸R><;Y Pm3,/+5I2 !ݠ5BSC!^Z@jZ%B>S(%cP%Гjl$7.|Ybgj+Hr)$g<:C.nJ*@.!+h5Ղ#n.#Q(l= +ݑ/E$sqgdR;EBICIֲbġm"S 瘌4IYUwbGȒq>cη_Ԑ +[3̃O<+L̫ =ϐ8*Foܲ4hk$n[xa.zlVYd߼8o쪇_d|M0u[\ԥ |`ꍚEԥ0uS0{j޾'YAGZ(G*D_-/h e4e^@ v^~X0gM2.W|/ *YJ=q/|sZj3y\2{ n3-lu4AAHT@;K&&Ly\H1Ui?~REK&}EͳޕIJҕq[NV:C)z먞vkB[Ncj5f<<R$bR҈dUF!uqds`4ZW"\DCA8 ͡R}p"<#\Ԕ3Nv5Ob C{xB]0Ja>Z("_̽+O,qPE3 Π;F],zq MC>b=ܕB"b[kc{f1c-n(hR{U{g#gk3;2m`Se4Q֘uZÏ݊ CmU&NC_Pmw`C:+tOlѶЬws=h?dN_?lN_&X&[zy=i7;'qS7[l'j"ۘ(DH^i9O +$3b@0Dq O 0!xO4@ծ]0FA\WBpoTѿqt-;d +w<{ݴ|So= wzʾ/ sC;4]N=.A?]2`,VZϋ$Hg!Z!5b +sRxX`{&x" +Ug*Ѧ aƨD8z}\´XFo@ +*RC"J+--gbF#7 +֑C (Do\9ղePb9P!:T}弭sp WZFQk[#C<*#Np T}[8v(Z 'ć%9傱NYUOG=xw zGlݔMI .&&cYH3'*rHQ4)!hg{<#sJRK{G b<2 67|A.]_$ \ԕ3PrU?SQNߒ +46hrkE%I)u; FO77'H s&Ϸ%b؜ߖۓCW% +[dCsb%L* #&"ͷ")@^U»*VbI'9ykcׂ=RVRF*F +%s67ֶl|q> +"@KRRR0b;_GYwLȸ +qڣaJqT$*O2C4*9W +DDZn^|)ȶ9gFD{ n'1a`ct@iuliU/1O! 'Ѿs[ !0׋2U{x zN͵ vU9ȭ@v"HA`Cl-hbND+Uvx)in < +aE-T6()IpzLJ'63q4Ǖ8h8@iL ׅ|9Vg'mUk(IqZ@-Pp495.'<'@zdWn/!@楐i3M-v~-n19ԇ 2Y BM2N;,l PnQC_G@{B5ݬZ؈jn51A@G994$p/p@pLC$ /lXny[g/GXVGx:\Q4d^vakpĽ+ ɫe 9Ux1i(|W ?YlIkxBΰ_iFDHi$CZSD)`͑-@+a`:kDM"2/QB,&I!kDʦύ q砌5q F_ʦ)L i9ʈ$a/!v#kUo>:[H01Y2fj"#L"E~Z`+n11Jx/Ŧʃ:1ߥ<hr&PvPDW%śto+D;7 I6ELoFx:2!e%S9%;D8u.,hQs?SžD:tb](jq@p2Y:@=YW2aaeōB7B[vSXЏcKȰSn,J%Zmxx\" _ڂ(P D3Zn (sX%G]` EL+^(`A(fKEԋ8-$"YhA/(ME/.gu (2sM9]a?BJl;TTu-{(p fk'ADP 0Yoa5?1.7nh??|vKH..u[Sο丠G\ (P +Q!& UI=lvhCL G<}?^g+K nvg.JXs" sAgmrgnQ;_ӄX'>^[gntg3r +5Rā%qO{9a4Zp2& !ȱQuc%xc۶m۶m|m۶m۶m{~=3vߞ'bWP+*+WeJOMlS^ۿh~M8[G_f:YvP! tɎ#74%\yk M@; +:ULw`o0~hQZ&-U.{cHdgαOEl 4crE& b<2M[ԋ $iݼ<6vɩScg$^oۛ0'FLj/^c += z5 \İlm L.;M1X/iKd|h{X;y+lY6Q<{Dۉ -oǷxn$)_aYSa*؍>rt%zNIaf8w1++˺wY#;H-%r$h[]jzkFϓŇI7yJ"X9CxCL}cS$\Vb=g/[| ]n;>'dpdv@V6̀ r*lUgg?ϫX}"oZ{/Rg7 oJo({H7=,Xvn9bbwșoڢVo`2}JlfپmvwPx?B|KjoͼpwZ<o=pgnPK(?ρ|?!RѾ&(Fѕ"zlӄ!a# Sl#coQ. O' #*ș&YzY9t#-i#"s]Y?Y5do)ӬyIKN=OـwDzT洌 ϓ>OuW‹XQf8amsp5!<àyskCqMRhށ'Hjpu'zlO(Si/Ϸ67A\7S D#!']"' U#a@&YW@a#iO%NYeCۡE`SaT/mQK"1Ӽ8LO$q@X6) )C]O9FE:(dM@x & I-@o^X;@VyV׆5IJFz|٥[r@Ēěh%+Q"+˝kt^U8/+Q7|9J7#UWf VjdD6LHL'@EQ8mhV M +ej9V(U5a5$y瓝p H`B1ӿTy^ޙdSh@3m!aՍY[Q/PiKnF< [A +@RP3_9B+΃"8zyq~]U[s5G\𞜚ai0޾o@|R_;~1[ڲhK0XָLt;DdSJEi:%qAfso' +m$zJְlޕ,ߎ'^$D [?>^U/78)wUJ;~& |]>Z57Qn\g+UHG43z>.޶[TA_;Os9v9^Nw{{ @Betg}c" 2 O 4 2?GҘ'UN,̹\,3ϝR> 6eUNS N&a;=-<[k1pf:,z/NlJ9kx(J-]"ï{zw w=pAj--9ki&[[cU-ۧxc{\ Ҫ[St2CQk-#T;QD['xֽ{]b׈̇TgTp6R6{-7+9 2Yy}[2EcgBF.t4F.=cCqu$uB** +԰j+jDMS껕biFTZÇ_WQ,a +E⢋rYW zEK;WU +l~1¼<}<zHF?/%qӡL!=&G)xgŮ2ifrF2 +;g"l10m6r4 >h͟4RzbMp(β7<0!ZzD2ٖlDGiR0&AND, :u)2Ji.Ԉ Y6b +٨3 ֹ̕.䜘4`WkdU1v'=$\ Uh}"9x݁j/Z*ĤvƘ PWS/~f &IY\GE+8 ;?tT'߽΁ٽdtm7}i'# L4y߲uDyuڢ3el HHl [lT(k` tݡ E<+P"ސA`"YBd iuvO֐2*h &֮CD=l4+cꢻJK6{x +HuxqAsUQE|3M|U ^)n% *uf*$s\@.:eQOlZI46_s1lk[ڪUͩ.=n4^NNjſM15euۊL >8G>p&4$F L sΚ£\M@fE劘Ov4zL|HFBxNa;I#;C˜NP]KK=׻5Txb:=^JЌ*b=v^鲰 .y| %T~Dͺ~O=]PgpT1(Ƅ>yb݀gOq ?sاk"N]S\ zMɲ `I]Կ~fu;dMdyE'0HK (h GhIdB"JwҢ8a5mQ": R o!@א QU jb1@esXs +plY|Eݡ!d}M(".EwH.3Ǔ짭% ;EUDpeL5"BD F ZzTO}uIQʰJr@l|Ϳ;@ \‡zé[,FRAᔔ6q9lN`XZ@<Xkcz[;<%>??WR_զ6l/M]F,H$ +R<16Q诧ظW{`hSi7.4۷E)a/pU;u9|j?E ;7OZGOL6f{F[,ߗdA}Pp124tDXwj2(2ڸYT!_׼%Ces\P8VK=Yácy9ݺ-;x?}tpԺ[חl)FVҮƌ&Aj +kRf9AsDPik]6TM=d*X,t=F*Z%)Тt>Tr͜[w oµV  Yr`w78yJIll+sjѻP}qG.S{$SK?\/qNشfͶ 2O-ЊNW$'q NMvBOyM~6wJđ-|K+C=L XI j`6="8gH\9Cg!*a8%E7ciYN?E)eo\C"| _ߥZ irmk񎤔 oTF2R}ZS' 19hd1OP +5jkMs73<0W-~1EX8Ͳ-b=QEuSfEs(&xek):3 T!8-Oڔ R)B`u}‡#%MCnI=!&.խ5XkCtu1sebklhbߋᮭcg1~dQt%GhC#(!o1ŘD/'_ ,RM="Di χA#89h44a:>IsK39% w+f񙣄wv׶ogk_-bGq+/:W1!A?#N@IRgjh{bh;:sݓ?k g<.yOXgz {5Е{;66"?fDvq yC{4+  +oK?RўI^] +3&=7 uEׇǚ/V6ꢾhwNL #iLO6VXp6 !ᙂ9&Z3QSѬ1wa"f"(.4dS٨ēUZka۰XQhiEiP[bͫM0ZܼQggih`OX $fa=s$e}&9klQa2(ΝpIhYc BE3rc8x2c/u,'*#@2ݝMKgv_BHD:qS %RrM='9Jrzi-fLHo;+4MbR'R^1\x0âݢfVV/8iLj$ )'.;+&M:ܘr΋ّc&E<%QHuuq,raiw-kHDH>۞}9*gpO +Iy23c/CS֪61rRg2DD4iJ=}cQ{ c9'`piEGDsgR>g3A[W[sf$΁Ja$9C+QQƧb£u]j =d \EϮH8n1[r-=5([LPJ #9uJޚ#vc#Ҿ!t] +ņIKX +v+{HhM)ǖn+ވ~[VEE>BpU=Vjbz߸~rR#JvT*#  C+H* %+E0'ݒbTh)#("Dy֯$mW޹mk+^5m/yE +) {(3=íod}I-Q" Uhװo%YxOwI|s q/L9akIauO-!=v+}uƎ$6mgUX5\l\ J4۹bo7G8`SK't8iNuv 0v%6V5d\{vWR670~/Y8Rv8BLX똪}CmF!UM"]d)yqܞUuG'R̙{5]d5LQC۱=/ VP%e)glN5'6-A|mau ~JEQVa- Yfk>ڽs$zޝјHE{lz)iu 'C '[p0"oz {"Kכ!0֞'N]vW姍+|{O.pJ!^iK/_2MMa>1eɇ`2k= ask`Nyw}((If$ +^FNϐeSėWW9hPNI*8zD_PݑYʎ*eoxjj@}Q@@둵s[o補Fp,8=53RfE83?((^*"Xly0 @f 4أ=xm?"έjIO?A(| #7quy">`ͼ +I( - '3^KbY:`DW;}iz Z,ͷ_W&?Wh1Y&7n0iO#Mڀ'(bMΆAj&P0Y}a_5V<5=s0Z99lJ!uEl7C=pd;8$8 t%8gq9,ck(ZHN]{3rX!+O\wx]sVJOiɴ0C39i%y\jCN#T\N򵻖Hh2J:=qՂwk: =tF0}PP+|赁` M<4н Vgj,)̛i$s).E}*  % 1k1QW7H 2i-iE -DilkZ.ǓaxBC-5쯒rQyڒ4jR1 +Cq[ҁ)y1v@gpP 8]QjAXUK I 4c@!Q^`Ye 0@&X^ߊSɌ4oŲۥٯއ Ts淂T0bތInw.'ˡF"cZ2SC {;`HUT$onsЬ(aS)5W>Ѭ{c yPZ[ d +NŤuDS3$$=D8zF\xFɡe W%ᆊ(z㡩4\>̶ e=Ӷɢk:ww-jyb Dw#"j̡T2$9P jk77bhjp@gtxr.[N5=u)b21"(v6ڪԹ&~2UXS$8A+xM_xdZeLn',5.K` +F:q] ýqc.zl3xلN\ ]cr[:\};USX"U.Fknzs9Eo >x g&"EO,Q +!+<|P.p1? +aNLOرbC_1N5ɮ'T5Xoa=Czo\b,1iE{<تXne(i"6<&RKWGށ[Jx"USE7eKIEpOp4j(]=U( Lm9,GUѷ!E%EeHLTw.5Z +@\I>N.aD,O]=](9et]ǷWVnCc u[/[͇ T*q<\boف.X4OO!&/ٌ>WOO nD[Ƭv+,g%8k.dVȑ~_e{@c}h]UwEBgwKwJZD/do`) $̡D՚{El%.P +ۃ^ rW7D(geUG!"@+v6B"OV3Z@NJ?t3;u3Pg7k4X!%, #YЛg2A9P߯b݃Y^5t9aPdoBo%V3HHW[;r)V \C(\l=]MŅ~2hCӊkyFB[PuoDjNW$I)kA %r\xtB1BCZs/#DZ5]Uץy6w݃ Bv£UL+YxP 3wGNuGn|rBН +v,Ӭ]P̒5!^X4(gӭ͊0`g Ĭ,Suj~(Ą*e,,'1l{J6gw#4[?mzVQf k8!ƾPxO Ĭ_-ejA a[H:/hGp/k]λϙ||BUJ1Ŝ&c]w3wM4Kr2C}o|}O 2SN6T K1• &eGiD3dGTK}C+1 ` O(A 7|$U")+4D)wp%jG`AQ\ĀG0A~9 ).Ұo1_Ox?LhdhdۉjE+$dmc6 foye`9oh|i<ކ|/doܛn'I6ػ<PU.PV-! HAd*\<үM^8sOJ|Yl"P "!Q WO1nC|71qPR( ҖvܧϚa3{_d0mbI#9bcs %sOS]GS6ɩA?+kgҔ9cvEw!4o*`yJ+BZE.O7zow+ez;(CޖL'1c):>T Phk e EA򖳗4BohWId${d2K],k+~]G"`x yuQ<02T'Rk8-Q(611Kϣ"׫#e#,lBmxн#[r$u7T"I6)Q\ QD +Y_ AL5Eu^-k8P/L^2Y!K^t{ES'׬#!Q6ɍی;y忿{U@oryСEVtJ(7uFR4Q47>:8#3%A6J2<8q%E)pT2mdy mc~ lZJ7$I:/$2A]1L:GLنc '+y@ixe3X:sx'4J2Zد]3Y#p?8YyVVLN*Y>P*hPZb˩tzKSQclnԙaGqc눙ՠ`hug+ BE&+Y}4tzmϯ[ku5UI+ƪG)8%iJI*`v]LWRAt71 WxЄھJBct9/+=A%W ~M޷@B\ { +Aهg !; h},P2[!CwBs.Ȇ.\ @a5+!O۽²~|$T~{4{;#ŲGe;XP#)$sZ$GlEV.-l ]|\4R +]4Ϥpn]??ݶ3s.Ƙ0!~. 0OBVsRĘƞ q&ӞNC)r&+f]XEn:\'BK&%FZCg2L+"wr3Rܬ'hdls.?8DBs .Ltz~[#ޑ^8$ +_1 u7+YxX 3}Ow\45{5ړN*|)|UFڧrp]&ᘃD]27Ov2frPtز]]XhtYH"vaokl_#tC_]"ޢx|~viiqQop~,NA^{YjsO7n#U#޺cEh#!"%#L`Etp3@ +,u,g̑,ئ5"uoc!H TY#S]1O}6ʼn Ianm;3 񗆪ʳ)\ srOٍvL yĤ DSQ]R22 +HRVw3wea +U1+}iҡYOdMH9e!͔tA=a(wk\a}#/@KDzDF#{ɦ$gqj=J8W[PK4:O V|>Kcw('G:1q[ ҥ<* 6=4wiB;7`!iO@mCUqc{Ryx:M7-K5JwV<*k& +Iz4Z-B{CJp{>%ҞRn,z\,iorv7w) v38iEbF"P}N-7+,%񜹤̛#B E + Ue"f ./(2AaL2OZSNj+;&%χT F0\ޥI&ܛ^vo{asHl9K.Ef,K 2ư|4Kke}'*8eF~. @قUI,}]; D[h +Mh|<0*CiN2?WevtVVT=B4@3NZ ]D([l Ql1 h ^ajf@Dd7Gج;`׵tA}Qr$ѼQEؼn$!y@'l6OrǤ*ͱ +̠'jZZDCAfrj3e<;-"F}s`yfzg"4.]k*lH.`B +RbQT4g8\UH(9z fyCF9fn ,#1eũLe[ocYEMQPLgBJXBՙ`DB*s TѶ5icGe,\dܢkTQ8ƌZdeÆMF2O[c:i] (Kc@3Z_\lbbG14Q92ْ3I:*D js1(fUW`Vs~bKX{540WQQIEaUk,fciWگ ljs(Õd OY)Bt[(V7b1` +{4B5_bx?aS`Z! +_=-lVնx -K/1{ &}]*^Zj<Ն 3~ +[7Z/7uDYN{[՗7ߗBD\Ǧ"{ I3fŁ(4I> p?.U_Zh +HX|.ai-aGn-`ɰ  )p a6uY{d^C܃mm 5zS EkȉD'|!X'@U| P5%O  &,M*{Iu4ӦhjkP~6KLŎj ݤ)i/Ո k`t5B:!A)Ի엵=- Ba.w80z*3݈#N%^#1O +R(|tZΣo1'r[d<vq֢Xl%}|,9﫠srUM52*G&Qs0i8#(#*;4jf1a7G'CxFFl~:lږ*-YyM.52@*5AAx+/?z0Kmƍ ‚cJ`cKbdOgJԡ5l dY@LМP-_Iii٬Xn^$&.{o?޹rzKvz{~l&Q;Ox cx c^v7welDpBr{'"D S'?PFFRDFsȈVc/K4fE(,C/PD!w( 3EBDE',PD0 W3 &>:aݡ>_ uCMY!P &C!$lnN"5y~gcqTCq%p ۴np +u坏g|:nȥgX4^^&MWw 1e]tB7)ܩ:]];Owڣ6oW_*yvix #cNs'x;`CVC"siD, ]ZЎ[ #r҃m I.R+' PiWl +K!+iN^ѽ)99kRZC+je&vdℴ*VhV <]P%å#9Fitwc)9yzjvq dP̗ɑG\&J燖%>CTGIh0f3s(QկwƠ2Is͔BD0DT[I3Viه'JdļO66Ui;}QP=(ݦV&GxscddԐ\OUŁf=sųa~ed=D)9oq%MEF*%G"FDܪ0(_89K2hag߬L7 =;X#qͧk ɥ"vJh/GWC^Pڊ]eGG,:l澰P1S\/W%FNoB|4)+|i*&%=eOXfOR4JƌF?ӓnilM|"CqZ}_1ьwy4rkqfTyyH! + e~-z抹ut ]N*b(Ry;%BMgR'qE0R~+zFvRE}-:\ӾH{? .k| zO;XV +%+8xrp*6xG{LifSq:P"dVat*>cM,gւ2LjvwKDCoM\"{P;hMH1o&{h +1 #bBJ@ZfkR/qD8kO;l҉ +J}| ; E &f-"FFmtM+hy0sDqKrt!l5)# 9t-yc2pumBT쮢k|#Z=#{Z"!V1Kć?!llAG[/ɶ]˜"u i& ]P(u(("DhV{%Wrz(Jt_sjl;ddoy(}oαq*cZ7`w>Iͽ*qą  c;!F%; TeJob?xF*xFwSnUb}eڇ=M.FtT-7ר7[pu~;ct|vnQYttR\CmdtlnD˥+\OfuXǬu@gm:b{M( ܴa U>.Yh)߳,r.T/ɢu"%޽ghnp47Z6/-.վ,ە[s9M$\^uR…G~ 9k{wq-*+֐Lw+!ǮMF}[3 KXXVG3BU&uS.U`pݏ"0(4oC.! <z t􇫼QDR̲^nm^a-z {l -yJ۳Zva<˷TgEHn:ָB?,;OSOT#A@WHRݻ^&|J#<)k&+@PRgg*u*ED-.x`O{@= +E@FӡЄ%VYq^ W5pۦj*O /"]xG&*aw$-Qzش sd+A<'1,O5-ѣ_Fѵ(QK?_6NaTN'ԟWe_8Gy2 oC<~ڠ-N>lULMg_ptϚSљ]|֡3/ ;3H`*NVT,brIdv]gS0(^nB$1![-VՔ57qĚk3@vtb*S;5oPjp[gS|6+;TnǂNͮ} C:/2O'L[=s}D5y=%WC|^grJ#urI-+C5ޗ$F0"83¯^N ?HAVn}a~:Q=0 *߶]a|p<,xEN6M6"oJQ,0E7 8Wz6'TwEb"пopa>k|%D/6I9PsApq3#kFGk޳CЂsoI")?/ԨW,PS!v!HjD(Oҳ D~FA1: Oq 2J7Ǽ$ƸәqEQu߄+ʿ_(€cD +M# 8sO +ot/ :Hz0zH` +ey@5EttxP&! 0 <LjkIFqtxD-q}kn@Ǡﴈ?DTn=ƤAKAMe ×$9As+1PJ`^m)@AQ;%2<7\p&ZӠR}0aC(HV+OF*gGؿ|C)j<QűM}WO58)58br;f5LO)&+ W5$ł׆\D0_1=`J1SW=}H۠{Jz|9!?'3;"Q@3&3uHpWL Ԑ +ԄˆpΡ_VNLo/|=t%/vm)d GwR1{4\ 8I F{n֗#H!0$ЈODll=wBYtZP%quF{h3A "L$|6eeeTdd5mC&}c n"Uvn 0E$X\" dD*d+?ƘA qںۡ +6ݬ%Ɖy]ku5伽DC>\ugE ɬb\$ݝp <ɱUKu6LF\D鑰)+LF-i5-WΝי@$Fq`Yv൳mN,3𻩃D;㺔SVf.U#ן-E+J=b.)Fw# =0&> a,7Ɍ)y noCBowэEo*N4w\όb3^YG'NNo>>/ӝQ؝YMq0wNk)^ߤwֻWw w܃7{]}3C/_;:d2Zc= +w=e7 _Mz=9!.P|o:f0?q9GُqZY=c"Eo ?32f*٣<{p_,'uiծ R%;gHs4ǢBTet쨧R>2`=,"U\ uQ-e]羕 OJ #"؇&1zzecfڱnt`hxv2gbk/1I!Bݽ'J uM-LhbmnI؛4.!ÇSx\,JvOL=Fv' +.\qIx)'s|2z%݉pxv9򏁞dY@]ɄG]rwːB;di~3+jtZ8Nrb\`,LY<;}!bReB|_ҿohG")Tes OJLjXPFx^3bB|2B % ?EPokDD]^Ӳȿz}!1C0#%plJ0w%0x™t)^gsfMq8F|Qgs0? w/oA> )I?`OF+Z6' K^jWr +ia c;VܗB)Gӈ}_dϺ-:cHINToߎE3 /9.d2I8_m$0e'bOۂwJw A950-E?Z-rn`O2.g^ZZ5%rݛkm׏T͓Gٜ*1[uv;S=`\˟lWLfWQ`ȱ똨 wEV6I;!vstb(I'N|aa:?OAJccl)k:0Ċ6vqV\]V o,BYSVq񦊼Kww8VDc~6szwu}E+!ӥP(02֕#D4O[$g,7~0rZj%8o}e?1YNrr#y?D #{Ōݕ]DW?{*)?2$,DRSz)sEq8 e0~BʟlW^po'x0z*C c.[=G8$w +Ot7\[ +ugg4,[/apD1]E5;%@&סЁP$9¸b1-b%%+gv#"\s1,ӂtgP +}c  B$H+#q~ucyb +۰xSݒ2!]BdH)|h*(yJH߸kJRs}2֒JwÑyIo%lFu*3e+zߦ!;hij1pjW1_^^ +k9OeϬpzE}<\׉z,6M 0-f7A~0eNX돝Ԁ;S˵EhbE0}f^Gvx.yPX zt "ဃc}RI=S⺵iP-."<ڽ7F^+,gMJzQg% 9i*!d&:y!ꢣ4{ ~LTlc>DyC'15[崃i< + QyW #m_GWȐک + d1%]'S8<*Wk5( _H;/܃;)CLХy}a^ ɪUkIk8Dʄ'@ R[F vOe+!e?A) g@O|L@״saϜ-/4OE.(%RRM0`IjiH sEI\KvrMڈ}01G]"ㄓ3*J;v#x,eDS.W'ψ <^S@je d7I^E#uiLOC5N %ѡrٓ7Q)ܬ-<3֕j=k +uM%'j/UX̐a"iZ`:LcB1 -Y=rhE$m1эzj}\;լ1_&2&e#& F-fb\ {DkΚKFq[DG_hrѝt֝r y4QHjj$+zԝF=GaW[K龂$lG:Tg=zdt4l@33,`</q(b@ڟ\,ЮNU":ubP&nkVԆO Xer3/.1ŝWb9Y̼]43Q|ҜhRuӀ?2f%qI  ?>2ƈL Gc(I$#+,–6~Nn1~Ol&E{U[*^ƞ%19M BOUgH5g>:wU(ˠ&hL2l/g +"@_beQ;^Pj2^~#$()a KKHi)_N]- +Y:XF94˔bM\^iVwjd@"UtѧW{~7™%ׅ' /26w<_(ϳ§YoשkͨVBJԏ/֡}v/2N 4Xnnoj̗ŋfr6 'd\B1Vy7]?r "Vg *F# O7ga!0ykD}n {"ɬJ-{#:`8X)a,h 莘Sb9^s GMom.A.k95'RKڶsܔu(=#8 +Ew p?'>z]k0VB; Tz* Qbn*e:sj#Vb`87qɅx*1_ ɟho3 rvۜ> U5zMòϪw/ %]}ŞS9n|B.Qϵc~ne~S܉CFa=RCo~yf/:pEN ֍6z݇ʽec'n5fgOc0}toMd >מݝa#+?ZL@RUG/LVZ1H">R۞D&=Lx;"ROKK؍E~VU_+}W/% $ZV@iD-m~ N䴭e\KEqd--M|{}ܹTPiD_ ғtEc+>յ!gz%|$ ;~7MZ!|&T(vvDX08bjœ%)(oJi:0\ ys;@#H+|wtK3D\мʖKp(ywҒlOങ gG\KCaꙏzMD/oPV_#4ʼ}ڸqPe +VzMΐ߂az|.0Wތ XnКٷjTӮ&zDJC @MI8)!!I|1Ҩ$Ğ<`#Yk)Wv錝hߊC4LY/i{VH"0*gf,w7kmqu;>f:7(Q34ad!=Nݛ-(?1#`TCv 8e,}};/ 0brZтJ+˭ +q˧3R5bGVw gs9J Cdc,j0 1c8V;>vE{Ot +R{'!7Pk᧋x +䢊 +j땉Gn'E&9XNȮ‹9{ȫw4]ts]ku]lM"Mu50oi0dMF(M V#]RKM +xL֛:3 ghRWn)ғM +ՔebMMjgs82oB$j&Ȋ3:bdȳä){B y .ºaR9;S-QT}%+ucmhmܦITQ՟~ 7.]T:njz-,F3F,8I㙖d$`!a̭^5ܩ?;I}*W[c'%FG'©JݨZC.M@~ _zp%f-)G;o%"t%Es}7BuSq|)¼IJW+AT%rDZZ Ѫq8Y٠tYRo3}Arz:VLڗim[pp#xV⑰zty>h 6 ~S- +}eCFё),07 J1&ʊ&J#83+:(g'@Ĥj"H_81XPb([5Gvǖc΢sjMy5ОEZH;rUrd+D% +Ѱ. (y&$)A +Kd㔚}ƲhAA,WF 7k,΃۵ol>7wM* ;0i}$֧vF 6ΎbmA-w xg^ + I/C$1rEX7 o:HmIY)}S"1GGFws@8[Q9>@>DA-hqpV Dٔ]mn], `' +Z0wa!#CdlQ;ЌQ 40@_`wo?}Jb܁TH Gk Os)  +1+*~C<"McyF +IAd! _}wg8$S5G'gY]{tgygBSSʋdoMte! +O]H|M}bRm]glXhB/<[@E&Fϣ88Ir +WZɯHO+ko{Cp`p.C"\?dan(%h ŐO#@uKJZ%҉B%@`I=NT0vYv1銵EI сIcC3f2 sI"ԪRǂJg&?䑓d#="!֒) C6A/27Y9]q &$,#JR2T +QIJ6UlGJ; (.5^qJ% Ti3uSoI790g4B8*Wq2gDϚ&òOo.怟ՊܫڙKW#]J~:^p/|8W5,*sьoI{xL\7J S>BSC\i\MVtr-e)Y^kHYjZ^d/ɉhИx2IW7S9qɳ  +5ǥHY:FF9(UVmZhIpZ1ѐ.j\p; ݶ􃨃'//# +\|>MSnQ3hfœ>enUdn>CȞVxP%.KY,Z-f3 >$n|q^j Mqt9j&pD' C?]bQUm8H"W5s3 ;_Adhlr~W1t%+ܮrg&gM8갅 9d"`.t8<<*D(7檂0bS㼬j7t˖t(s9ʍf +nrӦ/ /6O# Ӳv&XI [r +rNF^ֹu j% 1o*^#o){]3f2+N(ߡǨJwjۣ.0\Bw 1.(ޗGJVN +KӚ>"_@+1Z 4{pOU L߶K,9sΓHv]~Z>d%$>4FiM +`Ou"nu%k(pIB+ 'ΊQ$ɮ7Oڢ0sI\Wq/8}T4MFi +Z&: :h.?AB<A>|]tga+@|Ftύ$ +v[Lvx"J̟_!Py^Nt1K+:$z&J[pO xj4Lj^uR1?b5_ +LQÛ<qFKl-Z3i-sofh-vcn^$/^toU.UNrMJmwow/|BPf1 woFDGyac42PChǹ1ܽ}/gUXZVZ$ĉF. aTӖ$"Ƣ%FcB+X<teȱÂ+ --S> Z.[9?W2p9V. PL/4ndi@h!2 t+Xz@ CiB|*TQJݗR?j*j^ՐBiV4]?& +v@F4OT @SlHlhc{Y\7جh=kݟTQmv۝LUk Zr 9hC*9cL$6 +ۺųPu(ERJˣmpMZW75)Q|_ϲ)wCeIۡ>]efg@<}P@%߳K1܊n|1Het#lUUhJA!#zMːWJz!sBuMfWݛ >c 43F= +IIp | MiMo;A R;鮢;`KQNѢ۵˶m۶m۶m۶m۶m$y&97gV5z1zv.3V1zN}9v\ꎝͺ+B]2ޛ8C<&D<(O˺R_V})KUƥDgOƭgWP&+kS>Pgu =Z/,RA>%r RΊR^L:~SŸQkdKË,7>5@ZE҉r b)/"t9Tg| -cX5bE"MiؒkaIfNZdL۵莠'VOK'm$/66PE,QRŽ!a5`1PBnP=C 뎽_9I _+]1G]ϔM}bkcLAъM +u،_cЄ3nhz6%:OPeHؖ8066l b"gYt/i$[t]\蚨 \Ja 9x[ezyΨj䪭~mq04[d_eb~J= Ӧ {L@Df nmӄM3M GGfqxg(1YL&7ςMfȘi[sw_`Uݹ򹉷c.Qv}4t=hHb!ZB1ޘ;CVYIو=2Q[NivZr`ؚ6҃c7:( +}%AِwyVP=rVmf-*]j༇*S|sݕ6U(Mۖ}&nf;m{\} ]"#^Iкk,x`6m$Ѩs lE!REAJ;"dj>9%$d~ cWލYKvcʞK-6?g*Ӎ< +xKq)eu!Xq޽߃ 䢴SVVl L0yDE BxyY2"Ti1G$P.=Õ%Te%#PDiN7rF1 [yPmQ+:W]0˸LN_Ǜ| \I!r[)@B@e4tgX4L2]#+j :MO(ReEuT>62*jI|@RJ4Xv R~͞/t8sQ6J;O6}7Jg[3bUE qRI4r!P3eQi4:k5As=&'bUx5sN\='΃v90{!u!/~x|"yń> k]YC8'bȀV;&W:mrS;.=.6!79i,'B8+S~ Xyrz='jD*1aAcً1`MKoպ7_ѳ=}sρ1w}) )E>ޮ:\Z[]6=~Eo,ZhI~w)9Z}lnC0!&yf}lXH}aL8f}mR'8PXnp7, FF +qH)2@wie RO _3BAZӾeRbW:یw- SYWtgR8&714sqrB7! Z@}6 >(}OIؤ>)0^1ԡ:T2h6:I1 EX gPC!!q/;!!:$04ěH #o]{Co:ډ7Aw4!%#Ҋ:jReviUp`2sI骅ff:A~DW.13{L؂bD9҂sYztDufxscT +ihZrSܴTGUJ\}/ѩAp!D]SHSv~fу'u- +c|=f֧D2JꙞeLђqږF<&aFن24p!SQ +b ĵZQrOAP-vjj2>+;YG&V# e\3tFCFl7Z:C tzgHLctTcޟS&rٌ wsGS +5ta@a="DhsA^ 2ӂOF.-7 ZNYZ3M7y)q^0pb:L֡s`"kGVE2TC|9oP> E{` U !QD-!Zsr$R9ljzELg wč{ES4P:4:tqZDG|~`ߦuIhl8'ھ*c'tsUf;v6Uo7G(SFc>]r8IQGMi0htcIgRŢ.9AT*ʓF,q>N#GA溕y|s/hg11!GE;uCaʥX坱Or~lej YqZb +ޅ Y&fKQ%ۣ''&CCO(Fc 醬"g'ECIgY7Sv|'$N=㸟,~=aFm"-:4$%Gۃ_Y>5g71$_sK2ɳsK,ĤiiwjG*{$<<7y69Ӿ*8@8lۜu)$2sO6aqwyvZo{]o&wG+GGoX @ARj)S H Bd7ԃA༩1yPɑ7aYʮGY\Wn;9:r⢱dUOHHyR e_cQ}a˶UK'$2gݤB6tq']Tv$^i3^1A5!ԄDPaG@ڍk;tfxYaZIDM:NcAގY;ʋ#>m^$ +z2H4jMKuͣD6\[6rלRth1&2 +jJGh ejm5%G*1̀nCgɍ[meێlr-薽@riD +tYzk4u F(/ê4^+a/ӊI:֞E6bہ-Q)1 D|c5d@Ʌ! =F'uC}6ib֝aA#Y.Ƶj30֛4Y>u'TstRf2lh.{VdyN‡YQbt^'xE2atџO|)|qqMq]Y޴chUwHhB(\BR#BzIC~Bp`L1{LцX kWDnw}I̡DyϮ|EѢ0{ 5sܪ?['lw"{QD~qwOy >(G8V ++e;1kW}GO|]Fwꞏ=t;q?k]}8zFFX0 ϧ+44E}ֽ8o[Jkû4f~yvtjûΆoh%9=6'֬|0ֺCP* =| ȝ?n}*|Tqgi+XGn) ] W"闻BaԒ O~GйU!+\YbGJF\Sea?s:.Q`WL걤ĠҾ<*\A Tn1*?٤ydr %襗ѸuosB&?We2s57R{2Mz=[`2ӎ>9/>"O& +?yu/GWpJ>q$~6 + V^m"ګST cٝZX='hN9'!oН9Ȇ'O߅ lmM#akoDSj% + m 4  1SB*ELNJ[*5a_V쇯gdRjq;eΥd:㚷ckvoxڀO@j ʅ9mWO =Z;\;az|  1ѳB7e!b W+>U-je{~Ɓ tm=S`!2M 8%>\5vst ǿǑrd?*cv[J&=3S"vW`nB$*SC>D>S`qg +̣\K6}~8&(1x(ڪġȼ*TWfG-uU8k21IiʀŚ؉rx^\d n~j\Cz9f5sd~G&+X0 -/۠ ߀sN5e9.ԗCB6_)p;z}BgFZK7 +ڄru7i;8sl_;m 7db(6[#P>M +fu<[Jط#gݭ]t M~^|D)~UmaqV/\9Ҧ9VץU!K&}G9Gb[sk_ >-ѵ*v 9#C|I'_ څߞxT!1Q@䫦L&l;7ȗWvhzլ)Z~>\>$'"]'^~sv؃iGBEDaF3DLk܇kBcETxg7 d'#"ΆYa"L@G5GGh@6 el ɂbK/2pdI쬑.nЊa%/C6Ru ݟ6hetjcREV`*`Xq:[DdVa\V!O}(]l3HmIxif(͝->ԜZur%5T8gjl5,7>.> BZʴt"IzI^86 +N3p(iOzpXjϧm*3S1* wN v#\gS$3G6GNup VD08jVkC\;lPJ0 jYƥ2Xς]UjLB֡v\8wSҔn W>BdQe9wXcu-L1 +, #ɱ12->a蓩SEdpHdzvj 5Ns{=;զ ؂X9SNˤkhTSZQ,lN6Yp9KYK^pCƝEo)i)1;`3=Xocp_Lw_\wznFala·} WJ=t_0V@ WP&wbGc'Xۮ>>+%'TETMHGcQ J:SU[BAfb{BAWiJЯ9#pQL h5ܬw(Z PT(ux!Q2*ڎna9q\PwGmse!mi];4[MSye:`NMϔT-)B +#twN{ݎpYdvJq̹S]<:]pDXs]Ks%Ƙ-2ۅ 8D <@ϟ +qF +=?*r`_2>c 'N% ]π6*<y= 2mĊU"xk7,[2乳}&gĮ~o ̌;<;6LRrvCs#![7dP c}D qlJm[ ?n5ydEG:"XHk_H `d(X?Pe$P\p.?Bԛ +- Naƒ + >so|EK.8p97 i{L_r;bmR8AyQ XiNQ#wpC[p]OQcGW n|nʾVא--7zEnaUY1=q"msSk+|fO]}17z0v4// U6dn]G `}_{"BaYoC}(;A_{8v3>>Aѻ8՗k +% 4חK =UfX3JA<ItRf*nŠRoF՞@1O||.`q{=q {׽m0d'>*bAD2?Bzz rDBjhB#q '=q鳿ByH~>CUWP < g2Ǯ:Qd`g,!S6#f'6+d="Ps!sgu/5GYx B7P(b>Fi q#+E_sB놂5 +2\^F&qh"^!tAq|`kLVf"rrR$re0`8jyadA*ku`(Tlozy\=[7>c Uc(+xBcxC*qP8P'#0u 0eGAʌ(gF4ez̒5%Rn4*0/ZIe\ Lux!pQwm*E1%fLavQLwA Q'8wv K^K|4ΥZFmGOJeLbRS¿LB[o3"!{XHuS#(T5Mii &5FI͉FN g6J[W:7ozm30Fs1( jvh끄Sb3bY6\ŷuݡF:!)u ɋ?gazBSR eIH F6SY4q!2ĩ;`\Snm |FeƈuUZu}.G1*c\7i38|~S6G^Ka)}:TOn h}2(+ݚw{AcQ˒:S^uT}"Է5t9J>E00u7SG\hEk=z@fH/OsUc51AH^|/ė`1`ƨЅ+񖽋h 0.ZCIIͣIxxJ5dO9%lVs#@V:f)$w0dN<-2{>Uތ Q{x.{@a'n}*nPW dThCH h+w{L{[=9w#k ucSA!tu,!$cMIJz8~%}㖶.Qz6ʊhmc|fbvwmsLֺ0~=&߃+'̐P\bJa-;_Ⱦl\{bNd0em7%. bb IA$l +׊uyTA5-^V +}4CO3񵍣9Ͽu>;}tĊ )vtsX)O.(@C>ph,`Wp}ڪ?UY+ LGI"c$ڤ Tߐ GA"ґ/GQ4+Xr8+P88Y1:/zyy9W0;jB+Ib 2' + +M6 ;A-a:Wb_P^.S2bְbsrccֵutfЧ6ɯo(P:{_=7°&.+b`lO{< /WG /,=# /+=}l^H7צ] (=&`/>7oMl%_0=p8=E}^ȕe#OO5aC8~GlI t6iB +" q)e g` B# LT3&a +fD(@FSLEnbMUɚZb],iV||(L͐PmCHb_jc!uW Dz\ΐid햻e&P]5un]8{C)ffJ{"reI-%R0,ŸI]7źP">/8(F.7U7ljvZBC<قO[c̃a$[/8 +AT[ RR$-fMk#3ΩU+] v#PcurWӗѣ5QbFr&*Lyֵq#\7$Clc9ńWψd=" +ч380>qسb=P?2ȷDmI⎋Ak=HtC[: l$w7m.#H/ VML/Df + CdI/$(B)l52^>х#je>ˆĨB 8%|,uYD<3 +|Xlg6V +!e"<.: +Jfru^{S .n$8o\ 71hÐu<)D$'2Jw5*{AX̌yy"17.$(1LlD?x^O(o=f] @T6C {_h2UO + {$Y4|M'49[ŵhܙm "xV'g)Y/2&7qcE\j +ŹqYA* XuB/6?QquYe3Fh:{=oaq&o{qw8hۊZCTh6(cnhRM䉛 rIrP1M"bPNqBVwBiԦhIzq ' Ǎ#H+i%{HY'<f]_Tg5j"'8%,oPluo~#qwM(ˏ8Vu?.*FtBPܢ.Ƶ캥Q_u/LFJx)Fm'N(7rU\ldaG-@/#.h0waԳX +NA;o-U.="4\o݁ +Xvy_ߒo>VE꼫zUtYS/*^Gp-UpgfrmQUtG?97K7nFn\@~#*sm$AsM({c>_6aFGkAXb6hlf5#~k씏=6d%H UBjjA_uC)b;~Q4|T#HAZMNe7 ",SIOaaҙtt-DV|ji` v\pZ*b ȢiJ7Zi-;lqH}ny^KY(_r*zTzZr^3?/cs>nOk!ߏAN3N֧2N jW:qn(>@릱etm}`K 74 <_RI)ˑIk*|a@V'pU}UYs\ MO#|qB4{kXsWD +QjZ)89ApMvXo+<%/ɋH{؞kBpa]{XaIxT_j+t3dĺ-퀝#y+ z@ $*~`#)rO;°iQw#ş!4dZHd;@푪ưK:K qrUidL`<ОtvڴJT<8w +=*G,d!HD{d ۇIm~-*^o\|syE-=_Y' L  y@ތD8J[@xfJWgbRjNh'is/4py]3Ө}tY,vH\:CDXzHzxE^/ zB=@ںƓMzd#z gWxuLyW/:Һ`QO;y۽ͯdv]w軤8YWTɷu@));{^H;3OAonΫog@g{b!Nh/[w'9ݤKe؃=֐ˍw;ǎD*I#3/}J`Q*jͦ;{a&H>CN%:}3Ry}=qoj ^ČQ.5菭ӻ9A!+=ptCZaB]HEL@>3_Dc~ER!s +P-en~Yw68(h}c ee28ii)8FdqvezbF# +#T# +L$:u?Fp1#vU';CHOAeO.#fO ~{$hs沴GBfcޠӳ ԛ{ 鬓,Uen-3]343{#l]`/r53x6FwӴ:5 +cc8Oa ^JU7!(~#->.Ih3f̔t!Qk޲ ::qN +I#!NՠP+TWH:5.v|;g7.uE/uT场ӗڅW;fYߣk8ԥ.K^z7^j(Qwn{ ѝ2G=[QkRz+9`[U#"cuUN3,0@`^=`}6mqJ/4E/&kPJ5j$Y}T> ):+մ4Dzޠ!B >=w،y'*&m:&- 9pU4E# jD1 6Ӂ\_p XBC)%8-T +蘜YD< +zP*jnʣStsy2 +0B T$4(tXzjkD=Z$^9n>:~\ + r<rn*?kMamx 8JJJ`.I Sv=|1 ]1N=jʤ:=z3H򀈫5^sr ApV>EkR͕Ƥ>GeĚݯ_޽50i0e;A) J  +Jj!1>R51DhnVў> ћ`=E;N=omp劸i1#ݳڅm8Usq%d0@ }ۆ='q67=Cy6d'0VΞ׏TCD{ +T=;D+M)^ث(}_uBs@J^4'z%$ +L|1ͩF}En9(C'|Gd(wPH7s߶PQ׼G +\෌İ >0*$E;?k+NƢrg%8#_pݨ`ռlg5G +>ܰ' +Vq+moX_&@%0<[0Ah\ڮ-3qmm$h؇AU*.+ӝ!e Q+(Pm#4I``47wm)!B$spzjlA,6cvfH.t7`P.7^;--HaLJ7o,x!~YTXjGIӒ9iUKIQ "@ -oo~'T(j)^0>fn}?:*m;3><ļC0<4T$PALik9@F&?9c4e+7*㱢uOtCsNmhL纹ќz[Q#Jjڀ581uk ֏<%Qk+0}\lc"$F"9 srro]bEc&V)rr1ك xQKsK5 쥮+n}iCv17Q/iئ&Ck3ڵYQ02ݑNi4KEq[aiMpU_5^9\#YTfw,Lޠ1oV_!9wH:Kwݵ{d\!r.=ե{P#*2o_w8ot9~#k_ѡ0dE'Р_S={Dmneݑ=wо3ucٿ~s)JSoSo~cSCXm45iI :]-))~пPqwy t5ǖ[|ppsC@+ {1zifʇH8 +B`QRYƝWE.!#! @# ?b F"&*$3OG D'_/'QG !af+eZF'/rfKzE378J.lP$j:T$ 66IFd5~#nFFdK[vO|J)Z"vq?s[2n$ӧn˙PCñ0LK3H4mtsLX(ALX*UwtTE|v&b +AUfZ1]X"6YR0P,mכKŤcmWԺHXAσ's\p)vR{dѤ>{viG;zWj_H^Q^H!n<Lƶ8g+]^G/uJ;X ~&P˰bVS׹\(W6"5gw ΫΑOMinsj4q)N8h]FO~14]1IW.-^ +%ae )HO*cBj}+}4\E9eUR䙑͟C}ĿD9+8mN!og3^_8aL̕!dC1 +az4J <Ći*Ҿf<53b,4$lxD^Nض/A;wMFb?s<"%%Gc2Wlݝo2iO .Z[C!TRY{c6qvM$Iu݆ +|MckGUVQJ:*Q1ZKEyܵ*^v7e$RKjteY4-t"r_i{99Xӓ1Xq$v %Dp<#ڋU0 Ԏj!OΙSٌƮl:xW%HN'4Eo^_I\פȔ4\,\Ci̝) ;csoz00|8>xw ֜zV} ^8`<\ Q/1$},^1N ˰x%]pDJe5_~omB?q *q!S +Fg nkI9IKT.||TSՒzq]?=%i2$#I p"2P$R_ DVjgnhd,[L^c%#^2K; ALc ]ͿC"ruL;lwR7LKkUtc'r~ d!ʋM ob#xܣxy'2|';per# +i*J'k#l.rHgSr@ara CiGrS=b*jY('=dflj<غihdwGE1 ghu!`hu5˘vQ'd<pP:&(s"/ȎUQI HU)Y Ȫ\He㔎+yvBf2]' @+r*^(C<3`.hPV +YeC%@솮CG(w1"~&;bA 8B^o1W`S^S))J7[9><Ɓ"1!O=^'q5vx&sЙ-$ +gk&W]V+T}>2 +׼ל<먀eм(`x^<|PcۈX {Kzm:l]gi˘4ۿi3q$R(GR )*/dycYЬdP[;;: Xڥ6iXzEUEjţzbCCTْckY7w鰞tYx!QDu*I/0ػI|1V% C=q` 0eYrG{՗R0an#9LwGsG1޹q!WFYӁ;"?Fd#:xv8oP]A{pӃ^`Q!p_90oCjףbp_pK#e&uFhߐ]8܀x +y(qaBchĵi$C&Q^тN!AyILѱ;_!?Iþ" C+'88wG~e vۼM>o s{ )p@A6+P2kb!&SJrᇟ{ƻ]jk~%t{JW7V@3HȬz!m '~ss'$b}1^@l3k&N*qFmɚV4r-mء⺴5n +IQ ;T +s:I$-]4>y=+%0fGXٝٞ*mh\hUg)ϸ0ʳ$k(A\|Ikv2: +42' F-q#kܘX!2em񲖜0-4e^4e{{7%.t-w"g?C6ۘ;EE?д%Ɍ# 2˶&TL\-jh1Ja@JCF0ݵ˃Yjy0J"2q#q)ItG&\eRൊG&P5u2;h͓XKXe9Trej6[E5(w(>t3>hO.d=}ÜlwpB@Ke9o%Oɷw+B%C3В*q +7h7jA2Kn@RM% }~\ݣ6S fC|ps |!q6ai e +)I5GDY4ZvdjSM$m$ŸdLG'^J]*c\7Iiz, K z[IL$%QHŕEɊvhUhU;C;Ok8(zp̟*M >e1o{CS&WC!Xpha4Q*@Wz"+f X}aҝ[ZQ{'M#Д@%ڨ,ȓ ߎ +9~-?C 6u۬ўwjYL& +kg*~0- Т̹)yx1_rqt <]Y8KQN@oI,6\-R#ݼpG9-K^?qÎN|pwEaќf_rrb4cpʉ$)Wp oHy3 SY5kp*?'Vm 0!xڃ|Ko @H +ŨG?OX囈% P]/ǤoǜwO+>1 V $@M̘Ůt36IPAo߇%\,5{l=Y][S]mz%62KVTݩX2H[=[ZQ]=%!T5"R VKK \ALѱLL8ntxn= |]wwOx}gG>oـuR$;I`yLTMddi`q?{yi| n;h"t&a"DU3!jkClav+~ب|ii4poBYSc5/N(FMVd {c[mml1N-_oh0|T/oBXL??KUHخ,!f b&HpSE|'*dK!b0HL)tI ;y9Q#Ĥҳ_tL~6浉udژ;F ;V1.gj6ٶtv<hI|W:Nz٣ +"%:ESY|Kڞ3tȇ5&BΕE1[D#O|WD9PQEtF+'8`ʬg?[ԟ/F +VVioGh@^ Qq>iFEA?1:31Ƙd91١Xxbwbb6H 4$?F˹F>s5ezXlFe~ѻ+RbA-IEY!m`P=\ӭjό@f@b 6"B^SeZ +\qE7(֪c1zȂ6_JÑ`IذR[r|4VP_fN/.&LZ=l|P erHDnQ4LzTv郌; d)8#%7.ٳC,z^-b| #7f=tiބ0FM ՗p 7ݶvLKR:v:2iֶԬ9r-vn}Vu)(+#8X~&e[%H0u SXP8f\Q{L' +YV7P U pRE7HFUdŶ|CjO5vNbo +=V]wQv#X𴞠9=Z{wIUS,C(YQA]x2W3 +sH!`Xی>%rmpDQֽQ}/0I}(R-2hA"p+0#̮L$gʁ:qfP1&Mp4i!:j!d坝/"0'| p ̀ t([O>l=n͞mwHtth=f$jxèDH}=s$}K7X8@!6='2m= ]|L+j=M>π Zy}\ rZ=" + IZr}4 A[nE[AFLAZ࢈Ԃ`pzj8a.;lKP.>`)v^[6AUtz0jd1:rԼB#5QUa /ܶl^8'à=Ea!`RtpkSy'|4o­F/B/xmۆ I +9cF7D=MhU Faw +fD$iH$Q3?Q*z2[Q'hB+ʚ`$7J$4 */No 5RSS\R r +mYڪjfҺZ+͘Mк6f7۵fd}D^-:~pJ}L#K\>E$O:/CN TD`x Jd)IY!:9:׃X7`-lET]:U"z|1"Ēy< +̨|S:,©,ӻ},Jbΐ{VAu! ѹ2t–3Ǵ<֞{-SH6>?̠@P#֫#9TWFTWO_EGWCPӼoۙN  >ch9*93K+ܹ"k%CTKك#Z+ſ[Ȫأ&Tyrytܹg~vk{]mr dxaqdPk=uj<]¹Kv[Vm`ƹ,3K6(8 +ZU,prӘ&cn.%\jpap]&Xe`Q? ߽f݃=ܓ|d!#XҪnإc6V1,KhB[XA:+nDg_R7t0vTՈ(J9MfI3S ،Y@C4 T̓|=KFSh4 +C>кu©SBF*D>E]f1ZQzp2XFRjFB> ryѰhH0*! qxFvN 0 +}j֭#IPI eml(&XrC5bn V. +,K0U~:C + CԦx\^VBlhBX+biԐ_V"^R$NRn{/̡!aI¹Z;k;Ekiu_mcKON5M~_/UL⑻! eovR^/MZPfiS4G͆a*dz.ձCU){P'b XЖ)2_0vd W#*ST?y%z,c WQ ͣd{ +8nSvEjv &? +9Vݹg<,2T Z3MtSmۈq Fy븲]: Q c +<#Vjl|4#l4w#aZ_TX[;|ܾ23{j*8S]:S.mdQCFU9/QEgmIgYU +'zً;m̅)_i-IkoQq1r$Y IwיNh&e`m3qʕec -'h zUQ6U#3K\&gJnÏT7֤zh5"-I KА69@G6D8ONu T㻍>`'.+ߑIL Pb2XϤZ-YEG;+)QK:A$%ک걤_CO.l:Mf'oxtw[*%XZ]zU>1yaApw-8+1jzX΢-5vz'Ϟw`G!Ш`Uj.[\<67Y.i*gyo϶(Bgy +&Ԇԣ,uo܄Ak Гh&72) Ж\(NC] P^bCBnKVQnK,O('mqz8bF03[6I|}8-wCژSu+R/giU(. \\6O#kަ'\ DTcZ,c\J,ICގJh.JUr("c䛑T&= f$O'+5@SXsX7<wX)` rIL'GhIT)$7Z/W\q>@\:5U([mBl*]ҼSf8ؿ!ܞy̎P{ +f~5;wbn1 e+ҲZ(i8!g />,lNpdҷYIE\NR Uɘc?OsJ +Cɼ3~'{yEeO,RQ1rX~sW-buS~2̣IW5f/c:̜u@HڱzWDԔ7쀵[ot?AR(mo:KYvՌ2alÕ15̓@k>Yc5`!~iSՖkVf0-]˚ 4c-bn lK#l b9P4#vsWQ8g1 {գLp85s#]De,:hs1c#k*a +r،ZGЎ m7~h4Bz2y A;c+ r\$ƒ{03kd+Ը +S_Ȍ ʱ ;8} c( 97P 2xTbEI7l rk%#rJ:2"# +E/ŝ`* I +5z#4qӮoFbw+-Yɖ!`O{$k7<;(R :PzݴGyOĆnĐjR{|Z_Y7gkܓgX{=' 'RruUJu3-cr.}v.cj=bY%gE9зn?H.crw&xs&"ӺByZv .+yX)&o, x9Idp^Zt[$'qW"{54l+gF}dob:ny6tmy6? /꽜=ZI}:&}&l%fA<%RyҝYY} }*_tJ )x_"1O(7ׇ=63h r,YRƱ?wsxxrԴ;CuA{.fׅ0=yʑEL 6 D}EwO@zY.7f|Uz`%YEoZ +Y +Ogܐ=vXPh҂ESB06_mH'+계%=kl.fMƧ&%3tsv%^Yl*E 4ˆ֪kڂQgEµy:gmTPcy SkDqLsYaɜ ?sEB?Ndΰ #Q f`0dadA0s1&m ݢ4nL'69 )\*KKKmx_{l; q847وS܃'AiO&QڨW{lbLjgg qfna-+_)U)O]i| Ex"ȯCQB}k*׭jg*M۲HgdneY4!YڗLR#+pГb'.qf +1r]%.醖,\p+ӿe1RJ0*ՙN$e"LnYٰ{`YSt"E^* 2A +:DZc3e!b KL>2&Q|>BHi&Z*Seҩz%2*#yNLD#K+m`RdVSGUW[`tEqFWklt[HSxǶ;*#ixt_6pMp\#)x0(C1Hcn,J2zT;:cZZ\nӰt_!g|Ҟy)!ea12SCE/t8_ wrp,s xNb8B~{æ. + z.Dctx3/;4nR;)=֪7Y ӮO etnW{a'|Gs*R?ykl0bFIiMS]|2M:Β!W{4>X~N"ɠXNI܅mf7b9E +)'U!8F.h? Yrc_'Z&֊&F&6&Q X[[vJZlSVH +fBR?9FIP1CF7c:X?Ж:p +&XpRE!0К2<䮛McmkW n Pɗ[7E$ L}]!݁va[. .ˇ#Z/ћOo(?F>(~|~vѡizozHvjo8=vzpo!}*Φ >NI':l;7u ż m~* o?7pJ^+zɡ/ hM G/DowAoKt7Hk5j&Ƶoj!4~lx +őmVA|}{֕<^Pmu=QڀBY-NJi"@qf(3A{&<}a74jˠ+Er3-9ގҲh5R/&ծmm}Y3ɪ(t;tH/Uf\Ss F4ZU +KXEQxZTŐ:۳ڎu Oo0]MAEPBW 4d2-ԈyFZ,mfOE{F×۫:ds}=!Ar0 mDy#rZg]uۈJK* ']#'S?7HRVB1Q!K* s,Ng%l`Ajsv͍;acHKPt{MʕzJ4ȰUX-:h5$۲J8׻_[8Qkun ,w91 Bв/3{3i]Iz$ +ѯdKDXr3qXdJ <p l84_eOGG,19o8{ҽ ,Ê}}!ss3N_}4wŃNHj]FݬD/"--;" l +$#fM&Xeߐh2 \Pߘ} 1e0ߨ`Ӭ/#@snl܇v3^nv5475T62H;1x~mOҿwm|>_oӿw t㽍9~uTBt Dr5tTn dwZh0Xv%*{[s`߸jyq`  +xFl&lSJ=7ʸjc,wB:k ^k3hҰ/uW0Q0- Fl 0Z&8`un5}rI&>(%1d `ϢadKەkxZ*u ZѥdJtMa ע{Qi&y'Bk7Sj2 +KPz:A$ΚH o;ݨ +ɯ&쥔_jHⱦl s!ZKJ2\߲0MYZZ$uߵΉ*$, $=#$ީZǀ=0+Eܤd {2wFHj\=DLjK{pSޘ}Ecm䶷#㸀u&_܉<)N<,Ӹ7K=SHSع$]CVua ce +{'VkÚ]au3]fu}RNhRX8Ye #WKx]Pl]x *Os.3bE/\PA{nd 6PZ\sa;EtSsc]O? )g b_ir%~lE5,B2f'Aʂ0- :Ňf|sp{&!itRn_hk#{$ 6[m.|25@ߛQ1᪒ȼc2DVSlKc84=fjDkvu|{7;}F񋸷CGP⮢‚VW+Ou_z9u)]d讦S)bwRɵ맋RT) =S̢ĥb9aڪ‘~XΚIRCv"WWUbb9(FԨ#4 ӭim۶m۶m۶m۶mvծ]==Oϼq\?Ȉ3 ^oAݼPbʠygcZW06޶<4ɥG5PV +Q-jEF %7"R2K)ׯyK*jh;:1)%ksnU>%M&tLxk7j̶KP,b}^*i#ϟs~"RE2KRl+S@Gք y:VM)W+&D)>R(Q&|"Cyd57CfKr#a$ttS|[s3魟(=˥Ctaw;{:Ҡ|YCn8F!lH:ItMŹ)ZI,g$:c{Ou)RcQ'V'|zБ5ɚDQ(TMc*ҺDM#cX5I]zXd6]#Q,6]GH-}GZ6IzCp-GdntG.Rw]5iX]F!ݚu}|X-+ݭb#V_{;V V`".fK ha -ʖL: e6BYK{[[V; 5tBFRzݚyL#ʢlv5mNR<;Ґٌ  "y- 1i jLa!;ŶD~eBTm8 dDj<߯Y޷!pDY"Ne'0{/bƁmw +L5L &Z I aV,Hj b5sLżXXLDdCQ/*2C ل o5B=fT"bCkꠊhe6ÊM^ƾy~КA;bij>F6g +6< 93 @(RJ"Ra&i+The@yDGo-O$G[MgZL`SZ+Sg]|Z\fJY<EejDd#%64hBa a2SDZi]X~sjkIaDsM%S#}<qHӘC_:o?LM9&AōS}9OiBId]Ce qjt*p#iDx'5Zs%Q;r(Wgy2~Bcj_;%O,L!"EWUI:dzʜ;=[M#āK:L/%ɋL᤬짃]f=Vfŕiey FleZ%Zu6ZKXrڃH1CezɖEtF|ϳ^cyⷺ:x+@Dա4AO]G'ً},vߴo_~_9 2>^݊}ªKТܟe{}{:n=&w׻٫n'JvXV,s!/]?}Tx(? v.Y@fWD9PPO;X:~WUU >jV 46o_j}ncuWU[+rV?+Oy!WJTlBA:(DN@J )ãE@\!]"Jv`a(3`P|IҳbEf͊"+:#*,ɬ"hEfGEfՊΐZ XVrS$K"(#R(2Df,"ZAfm%Bw=KW;M{^p3 >B!/冲>7y}!|vҼ-TmzDvC@}n].by.?*1X6`ܽ f5ZVTUd~>d宪8F+w9ښ՜tuKPYuŹVv͠LBj-n MbvfMn*x xA.Oo$N@Sm/t z ϫMC*/mjr2|N ClyAsO)y>p7 =ou\WatnS9HEZ$rRNp# ¯#KLԼ pfb~QC~Ph!#.m|#ԣ. "a^[Ax77 +|taѹG(_$>ZG7\?=Cj.I]:tM༢Fm'){Q1-J`:E]1/hL/J~`=[ Ol*#Jp6.DG32+*NΏ*9 %hܨ"cueC +vTOiȚi{GΉ@3tp1{XY|ƕ ]|RIl+Kՠ,lO_,)5b(/ K1F +C~zTv%wvGZ!G]FA,оtgF7n!T(~IumȽ$T0a V`!V~-7m zC-"!"csDHh; :UE/AD#)|C} ި1c)Eś`qɋQC` 01PBD@@KrhǨ:EP 2he7AS]'ĘDu$]rqgqv +E,F-x>`ogrr( 5iN2r83˜Q )es5̻E/'*1KSE+Aw<}TV_idH a3$ l x&.LrAj[[[)*+:V`AZWz?3C3o;ssNy>l݁lLejy ufi9A#x d<('y@ CP?G?G(٣} G@|? (z U9'zPGX|M? w[3pw 71+l.37j `cxֆ*{{^kPc{vWJF=atׁP7 +|Q%@a : +M:!TF + V<05@\z|:Ua ;k[s(Ae: ^3IYNin"TzVef jhV,1䑮 }jxg ^3)n{"…i;ITo^߰.N1IOsx4Xl2(12)`2p1dP@\e`oP(NWaag}ׂXV8VhI=z4[mvG(#q.5\U&Ʊ3Zۀ:_.DɺvRS]vRJx/=IRV:q=2>| IhLZS%vwsEV@ۧd 9TWk#-43HVtbVʘM70Kbf fFxW tvDV4PsA?UP ]DρbKƗ4VSIyKPA#P\f>nh-ď`vé+6\Qf"*mY,e[VP6"߉"/ѰaXa7;bd,åDUEC6j(| g7XKAL% +<;R(+Nm݌bqBxlkWBr0V׌!k 뫻o55#QZy|{RI1VSQ!g)'#[e)޽!u:cEc/a. ;xrd\[x A~6Pm[tX +Hr/:gQ>jS]s(kJ2܉0P)@0*'ji?5V!+>dH76So +Vpsv`B7VL̢PCVl]@*--}&қRxn]KgDMm\%0I7 +S#y)cZ$Y)[h +!?á@H#:0hNOT"P7o,R97YO?Q7YZa$1|t)hf7O;o(Oةd=98]E9UEYRK$׾KY "S,眊',2SnKj{dRzӱhzghr9J狄^\%B) ) Fz%T&aLSTư#)$#k&ee+THULk2P +uQNKt娍5s*T(1x|`cY.1fOPk`BSZvjD$NkӺį ~Ȕb]i"]mmOǾ--9O;uEMJR-PPc# &̯x1M ݴ ጂCcϐfͫ0L0ӺY&w4c4pL0ӾY&c0CMfSwErp;3qsUqq,fep;3u&ywZYojff?wq-~*vmw7џNj{]ʝo _ '" 1Ҟek {,伉rLzm< $9PV,Jj" ٧Q#C3>Lx:*>JLiv"K4B7޿gIR)=ZFJu6u\;E(ی +?yqr>-MWL2BwD@LEa.QaQ~S2LlI:Z(Ć-lad|d[ɭNJdND4*eZLZ(eCC-g=YѾxP74%4e.Is48cgf!湘/M2y3ˣge'x'xx5(?rF5n@^<ڜ%Z44Tr*ݼKIԔ34yeva[^3rg58?[ Qla(j { )^-݅U{my6OٰS+U7m+4WW 9 V5ԫ3UN:V Nzx6ϱ] +oi=LLfdB7 vg[4^?w6|J3\鮎6yBaԽa~ǯAoY3HUpKF$߄r l mwao,Gy?z ;SoT<>ZBc ΋fi$aYCqy25Ѓvtqb(?vڇB>@bnm6e={W<KcZ~5 w[׃Xsyd3\ +;+ + bu`,WhHpDƄ`+sYit# ngZr]( \N,(Eǡ Z6e۠܍|lg*~z; эQwKh7Hvȣ nlu Syn) z#nA|K]W[bYOYʞ2ebu.Ƥ-Ω譮YWOś˭iu).TjWBt + iݺ)oS"g:E)''*oy'P`:uK|_ +o&Zj^ݪ+Q߮>^RTwX N$iAhS(@PbGM'BC;QiA +vZ Sj1hC84N#ͻ >.\3|\<A;&\sT~3Yz3Vn~*վWHߓܯkh7{zOB=EeўjJqPq$PȠӛ~wUЧBK~3mLGx03zBIvbt,٤y# RIvD2A3~bIv@pg8nBrk8;" %\kd;"m\z-c^cx#إxu)ZUgk\v tt>8(N.MݹRLn^΄f;4hۣ# I&IQ_̱`эzuyb֫W/E>kA:Re"(dio_*-#d4 +L6f*qׄ#5Mm*^ +̗THsp6K%h2}z@5{W}}x%b@{)`O;LăV&'"tѨj_ɟ +P;w1pcѴ hm>Pj5݁p >eY=q5L&3UU-U6W 抋GW엍m\CeHa դ24ҍT +,Ctf|ӋGNU.Hw0UsOWr:S"4["cRL.r*'xjVĶ\qbSt99JԙK.2)B6i,tI9[ Ԇm;|^)Qa؈S֞,ډ?C2C + 6RE"zFјClR@,>Ai]9&G@0dE0~qhҗ:VriGȜI]6N&,W\#4lXHwGxRR!߿]0qjMV6(mD{mRQ`!8ֳ.pકIJՕ`ܨ9^FRWR$uL[%L6ܳ^I| .P'ZԻN8Қa ?he;ȗUJe{J M[RO:yŹ7JHlZ8k|/aO+|I-XE.lC/Qpq3fԺl,yY &dD`ņ_@d?1 + .j~f%/#y8)pua1/י50nY̤+f Gvrsj53cp +lu@ "!ol_`RH5Lvi'a{(qL +Ib9c _˨@[w7 ^L<.4eCMT`ȴ1R,Ϟ!JoC,8ByUƅz>pC`ЈzLͿt(CM \5x,Ngj,NpUD SdK^:v?md&NOUs߇2Ͱ\z=c6͎^}B}! akZ\OUPF$B"(AdnKH׋)As9+G <Q0a]^8b 1GW04Õ~dJE~6 i_&ɱJ|+As(|f&CsMk 'L"!C?EfZD9%Xnh3bUopqCs)HTsS(Fli-5Bi2w,~nÊ+5Oy'AKxAo<Ѣe]:/zgu?t>V=*\4+E& rb7%7X  azsRiدa|LπRڴ?5:5Rւ +-Xp<EX.:)L\Ccاr.,X1}r܍[Z>hmu8\NcAKkk?] V7(2aBC, ,:}SEӧ+X>\$dc൴ uEV2PIk>3Ic(b|#|S$K.]qmFW(# rJ{o@iL =upk"-u%ǷWOXC2p!u*i'E,8Ӭ Ph/_ Cxb;wUIo5ww [1m$q{`]X2blgt`wCBCP.!웩j6NX&(wbgiy,,VY \6g.m`4VVL 5ILIVL-Hw?a(58:QI?N$Yݬb8 K +@)B6((rpoZuR(h`o m"!oTDm )/eY!/99wMJT9Ejn،nXqw#ZRr4rÐ,m*nDJr*EKJGe8R"9>Ñh))n!rnޤOpõ@F!E\UMOCh` *toŚh7NeyP`"Ȉp0[Ƹ@]UUUbF4$biѐJl%Dk-[CvSu/7N#ĸ]JP#/p ]`fgĔĸ4X:;H*`@%%jpH9/Ր27>3%$J1nƔYrM%éˑ5$lF_˨0 o,Be|j% W’I[ $BRF0luh CfT*;,LX>n04ڔd{cI"JUJN 0֘^d 7"j2W-(GI%l?V>0ԨT7Y]eA͠uX};57DNWKtcrϾS@F^xԛ^pt?6&ay; OzuFV f/3o۱ *,)E ye3-'Q\iaQ#6G>Seaΰ"v70%0yu46uCwsGVeFc+s#Z밐sxgr&}AY-@Ɨ5~2M6}yE5?v@aCVzO*.cGOx+( +`dO*oLgz},4tzf{թt V;Fg+WpꞸ* SuRkk>Sy~0u޻¾BW*?/4ɖ#`5ѲA̍//۳]rW 0nNDsҰR[וoi3q/(Tj=wWt'5 ueM [MyU\Tk~S$H? , 7i}5T]ʹLF9eX+ps-@茠uEs ьs 1{P,]RJ@5nķz`;l?5򎢭s5a6{So@o@/Aq﫾 ZCsKR2&~P [6brPlG+Ot;eAE?yBD)qDGxY?[?עC:wdQ 8E}@_l?aҒhCet1]$>])NCXHgNQƫp,N<0:C&oI'j.oA]ѐ$3 @ / G12hP6 ?Sޙ DXohJuʛ}UgO6 wyucT_>Eɱ1bGïBSn f99U n6 +wOÙ'dCEoaGp v C!M+Z,@ݻ#p]Q -6|>Zٛʈ,XyF+<67wm3J &(gfTʜ Nd`y )-M sƎ )l +j5f!ܝVG:ZUϕgRr +:b{8Oڡ%tⱄSlu"  5YyJϜ1[' \RB74{pB1VZv!`N< DoLO:F _!wC7f! +|ur(ӄaͤSo9 3yC-Z" +:Mm|: +Q4@`?I?z4):c"Z& Κ8'` + Y0qv%KIUay?Dhɑi,!L޵M> @ׯ>:LpI(e䪯 .ęnK+pV.Hhc@+sɋĕ͡jS Sq>r$BW Gv^?ˈ:vœ6Sʗ,ߨCG!Ã˾9zd˒YnZeS,+d$Ť -*YKF).d32Wu7CAwSåTJ*nТkDtQG]Q릃ɒ\?N_?;s#` Ef|1_RM0$Êq ':a<dr#rxohq?D|7>a|"e|kFe|G  M?Gj(I1ގ?#3>_QC ?o꬇b ԩ2'ǒ6eE)CmoB5Y9Pd|[Y1*sP^A{atL0[|hVdHjb7SUmwVu +Fns5*<ݨtר8Z[/U~ ėߟTe]p;Z3Q$7b4>:N4htT2Ef :?EA1iܝiow7&$ rvQ2}weŞ4qK[r. 7+sMdizcƳC ۛ^6x*'iҽIC7-+h\SlM șh̆VTyXR$ve#CD)DR +L>J&zX13/z2cԻZhSuѥI@kqɬ 7d4$}V4EC 3]*[x Ah, +Y90*5S Izz2L +4m$#0Go6-vƟ{nbΖFsMT먆ܨuE;+ro9$aM2wЃXCI j$aH5~P y+1!j}[J?Ouu^?a/勿Ҿ;"hMePajg%sX H3s| o`Nu+NnY^~Μ?sZ:R;WD/_A_R ^ !=bji)vV_s,\i3q?~D\6tUAγUPI}k ϯA^cUOq9m̔:1<w-Jwh'wrSΕ^j)mIhZ]lwxBy5@vUC]@j/FgRYA`VUΪ!+X+j?/ZEZRXv5l,jb"Aك/,q.VӘnb׷62H߬8U[C\)VOAsM#g?[&&{ʂ}vNJ^ ;͑y;t8VvW!Q~{Vlff70ҜkC# w հnu檀mPrAB7wutjs5]=hj irvsYʭA"YR@vRv UхWmoR8#5m5t[EsFϾ{חн+v7pxb' 4 ]p8<3,r3 ߰Eu fCpԂqjnf: ѨAY n <ƋǖHr;1h1=cC%4fz8K_:*Qi|bz oV}3ox8=2Y1Uͅ {٠XUاǰ 7N@&tg+c3pZߎ* [-P" +A`Vph;ͬ& iHpx>X2#<>v{{z{ fF+.\?/zV*D:3]W\INtYi C/ϗ!i^ +^ +$Z+6ua/KkiYIDgEx p W.}C,|Ӏlv)cQ/LwphJݫyP2Ȃe)JFIL3NV\l&#Ɇ$5 35:)X[H6Ag|@HԞ^igL4vI=/R:%y-eݩj(F0<ʧ SF M)IÅHτsHFt.^uY9rXT%AO}8Bc)1pGQQL?92|-YJuJ _iy^^5c8JCXqvFC-7#:!^HL6*&6bܘ+0I1܏xRwo%11ݍlME~Zc$}0M}@MvLv{:.m|aY}Y*OYi,%N3s,S_je*v ;j5VdNcGhT[RU73Ӧn +_kn!DZĎN*n SGnUb@R07s+e)<7QK _"R IOp+EiKӫOOGQfCoT-" zJe[tygoͭ}x5Kk,vI;)".- @7(e#$3cm[I H_!Y+7$)4Qs^PB8>" 3.iˈw%Y`]@V7(ǹHGT]Fpϣ|~qK9qݯ?B0\'%$?'C$M.6A\[*b6= ?^)KT""&k=T'k8fdl#{oQV ~ko%{݇PZ>.]͈X IR?)g_dEՓuf qن&!!W]Ĩs1b^>'1{J^ƵԴ#EQ; Z)JX'+ah+)oxQ>iUI1+eDk֠5ː]'Kƛղ Օ`nT(> պpWu,)/sB/8g_+k3b|ueT(n!=$q4kp5" _"V)` rqzjC~2Y([wv3$+dw@n"+$d?[vr?r?p Fr{w8z]"P&}$>A^;"& @3Ȳ%oG|%Ʃ1&4voRP~Òk`s3#A3jGwxU?t1~1 _?2Dm3?''5-J +X&6K'VGR\WWg]|eI;Wp<[g/p۶-8}uj&9a&Y㉻"z@^[ P*0]!lMGB?i݈v[O'biQbQ]9Co~1giUtb7A 79_wrc{Sg'SCQaiVe3,0a!ka{{'xUڶ[@pLO[)A!AR(cT^r DlS9277@&rɞpIFMPD?]O-*0+K@+s*7/ӫd +.BKmoqA|{Gi~$"᏶~R9\k|="Lr@\~qHPnVte@Fed/멙4d.(笼D0ş*rv]Uh@?b B[?Z_xwԠ~Am ]_f'I'K!&FI{ +|RM_['m"=V`C==dGmu"sO e?^F-옏;SKc]FjS0XTTSVM ed:W>uT"8a?#[v*/)Q*40 Q +{ cb]u/lAmΤ#=|;0acs9u,i<90((<$o[jX$A{*^$Uי͇* 躎 lͻG&hwޢ|NP-KenծMcoc9zkJWc_`l;kkVI>8ysBk(:sp $XnҥY jv!l +0؃3(|;,< F\v&=` X'S"~rE`f +)Od05DcE<@}dQ{-jZĈ2R#jUŘN)(eLJ\򥂐 qչ\錝:(ǠF\ԇsHr/GtfGa2 rrru N4/0(J5E]Dv; H "2{uvLiH089aAdwl_?`$*iR:גe|}^<zb>-dNf>_ض4eF<&MBdXMZe֛´ʸbgO]q&Fxs]o Rz(5r;S2o´BcKo3=x6GZqa+X-oA8nDA ?nm F3vEb[O,?2;"nH%L MLtIդQTQ~:1b !8$3d<&C"I0sKyyɑZ(t*ѻ +kUyRʡ+R Qׯ:ym$sw"6LybPRĠȗ$jN<,H8AԮ20AcAd t@҄&JT+hC`j +^5:L ^s*WU2ıbZ@%4ujpqpfk4?g~:X;R?Z82[Cb7 pۨVmpL®.c2jo&2UF "  t/a9켎xs|Dn̼ëj2eܙ_@6{ʩѤ.|ǚO,VTq4lk4dJ:ߞZOaLM\=\_ +-{HKîZvS B^]i=p0 9Cণ8Vڰ?ޛ8F2tΝ7na[r`4$ff +%3f0]6PzD6T4>[4*a+>Lt Sa޹7r-7[y6jqZg#F/6HY f$ YE.ll$*hl:gmXJlrGr@*[7~ ƒ5 qz}K4Y +gDH9Ixw`N܆x7hock?}!z /ȉ{2~=zi4PS[e"?ftvkYvFp[̗h#͛S"yg7.[fa}8S?TB K +7f0jn.`>*NT __Z^o-Z lGgnC+ [̯_13M9ER"J;5TvjdIʚE[- 6ǬkֲE+boƿzޅ i#xwЎWs`1ᕱm]_d t"t(?s3RZh fhh ` a1'4fZK3ֹ 8GG:7tn9TSrT焪@=T<\4bKH_1/z,e ?1X*Y"+ʈ22 RD10)(5TJ -!:: ,9>`C(};<C? ħ} !~$ W}W`|-CH[ApCُ< #_@+2O:(QJG{[)RRZQz;QdXӔjeϕ{Ͻ4T᪣5/`/Uɢ?*贚MK= M:#k +#ʪQM*76^3CHH{6;Զ b ü# "4*;`X}bWS<Y6c2l"Wp2eg׮LU95m"%8ͱ.B-g[mgM—L }PuQc}~jǕG؃'}ܘqڃ8뮔G;|vm:*-F*U YlżĖéBnRv7?7#_uFT ܐcV;(:W7 +)'洛cxرCq6F07Q6L LdN:u8 GҥY vJM]98^=cc|ȜDE֝^ <9)j-%9xLCILPtoVp1Մ֒clV"|lDY|\L̹|~Ī)V}b%^jN1LM Z-wEƕc{q8Ta'gjO+V| FfܨnV9!ILr& >[^1裻R^Aa#?|:Rr$Ǹ'"۝;ibId?l5ZƷ8!;iOESyzps<$<Iq q HpI餠< +x]n+3J|X#MUd- ؋~01!Z{LC^~ØV9p;]fb3`~!wY=]%=~"ƈ1w/=F|oىGGvBXsM%LGLlzm ,khY0 txȁE5;*K,/!ekaB6DO>%l|3kF9b]Ս)34d̕3n6!uTl…j.֘6PEcή^שVl4^e{uPG!>?~A}75ʆMfx3=%)u\orpǻ C9G%y8TeV8ro~^_W!'t3 P8ЃTtJ/Gg_vsgn_K r\K(VQFa zEd?Ҕa-P8EЬb-yH+֖łx[Ľr?2-ڲ[E[(f2--ީI[W+~r[)K~-_/-Kß +.pğ~ѧ)"a`Cy ۯY{R1n?YFH傿|kkmCY@כlʂ?o- ÅPjv@G@KAE-:)jdHHB>9Jr0?>OY$Iߊ#J @gfnA b.V+ +ⅰt,ќHE})IFSDHÊTb4#p lA2)\dyggN„ *9ЦFCƐל@ĝ@(TXfqZ&GYjypϔf/ibS= f77C= *V%g,kV,O4Z4"qE)hٲ7,-|wF)cρCMO-Y`8U^%$P]dײRZ0~s0%OE// +W.ϟ~w[/"{PfWݾ$_]w H;1J\&/_(IXnqjP+r޶#OqIs"hQ'\GX% +w7s|) K'E%/䳟|Ŭ/Y |zgM&BNr=1)~}ۭ(zEJBAAYX3X룸jT# ;{ALj7&BuI1oMDI?MDW~YO}I5Ups$ +>rߧF1&CHfmKe4pI(=BP^iYhD/ݓ^ d1GL-0L%6JF,hD'QxLp7ɑ;j" c(7}r +DTA.oT +fyͻO +u> +}һo|={#{Ai̕n3acl2Tqm~}ƝHu7lSWc@"@:ni<0j+uˬT&cJLJhN㛴veǶ~~;HOp# +I u#6ҋ/=2ޮBc՜lAwtgO:ITj(륩{qAwQ_ TE&L1b 6Yd.[6,XܝmAZ#XiW9C&y QC&G2B(E i6>QiS W?(X _Ep )gr)oI;~a7W VxM PExZjnU#4l)ŕDУL μ'qwd׈_51䟽j= b)eAy-|+icfWfڀKab`|Ԕ50@0Ro׏=: +f#@%L.Hm`<$-VVl$S10fh)I7DOH .r_󾯻m{7a^wѐ(: qti3TEbfN6Mβ +AWPRPSP~1أ0* 7#|,2/绮U1i15mjmWc*˚ A=[Yv]=N4nZkDdϳ\NCvHTmN s@AS%=ꍶ˓ln[$}`3UWo &U X&>)ODBg"6.NGnraJZ|OOgՒ6p\kļlcqiM9*C}OY?*$Lwsmr`k⮷ټ5P!&F9\L+Z}-RZJa!#EigetD+iҁk^zՑ [/ g}T$7x}{OKk8 +rѠԇop`ȁx&DR)&)ROW̑ ެel2/u/>i0?h:-8Zs~pR+]F h+ }(sCMD~h*c 3_e"<5Z]a8eXxoQpx_JYLcyn#Piɓ)jZG\ޜ&&ɦ/G5(Oeee1Q%ߤkܹ<|jw T5d[oʮ=*nw3sv6Ÿ8k %‥'EMQ7w-7Kne $dr#!|`H,G@##!cO^w79g|<_Wlv(a<~- jA>~ + ~x(*a ++gYquƒ=%GOQn*TJTKTwKԂ!a(9 &K`l I=żB'q\ Q4HnkN\sfI1 xK֜\RNvk[[kyx[nїhŒ )<&?-^#f[> f+2@ C{9 4;Kb!KcVoְ +[H0٬4Dmɲapl*MsR\Ep1'Em廉o])/P!e`SܮV XĀ5c֔mW>/FժdQ,7k&g*-d7f3C=wIpW*#o0%jbyE&:D^sͧK!ͨaFwd-rLo( / E#;}u_l('[=ʾ9mۃmPR /"x|# E.of5м2828udgGo]‹'x[9.,d.h(!ƣI ?fCj)Mm\}`¨-+0**?&C¼dYh+׮wpང?6&#$wa:ha^, 1VIE焢WN#s/hjyi]=zhH#^r/%qM'7Œ|RvQ +|҂GC#x2:GHäP@93ߌ@sh 2 ϣ_N=ڧ xR2s^էaz#q"|.CjP)k#f|}dgвv'YRW2E}~Du*g.A=C܃%A#,V5mGEC^޸s- +/Ei+J]fR-ƞXm _¡P{b S,̚[cWx }_\l $忏)M4> CǠ` +_3;A+⣝\^;B >DW{z~lT6+YJE+[?CvpvF +)*&K{8/j@ĪǔxySǚ+Vr8EXx*mAm` m`9Ήܢ#9 +eeX--= aW#|WJAN&t~GNR<9tj҆|#2ߙ|n܁Լ;򊶯gZ0g czn;k7l`*uB렗"wf1?M^)I){"cZzd +@=F帳n\9,L5gk +}pYld^aˣ7=!x j6,/y*ȧ:Bhـ=J$ CQQB? WoGͱ&DYg?¬n8hoRƛT+ghSJ+=IM:yXt?6bȚ2P 7~/rvNcu&Z?=~ќba!󁬱+vB?bEi1rꅍ S1׏ ܇D%rgmK7t7NGwvΗpՆw ~sPB1\*ٷ(4$ +~WZ]L߇ yw*WiI῅BZRĻ \C̽7ũI fpy&(fΣwPO>wMs\g>oa9r8M@ Λ@xiM&L#6Gk3{iI'9*aO%Y{_dΉ.IÜAl^ul/t(Z3m돁j{RkaܮV4f]1Đl].ůO5ABL2)Q/>Mc:ryXd.9CSh +%lϤZ9S䛊aHD92ک{TQ־_du͢CxeK9@1#a987:03!tB"'4ʌQU1"7D+z CL{{{^:T3Ơ VpgQaŽ5 +$rh:$tm4"H@`@  Him=nBC9yḏFvG7ixgi G5RrޗC{T3oWtDҼs3dCi;b"ס0F5›$yX?F\o|g*{|b8$l#+} <0qsyД} t}?AaEBKb%qIJMuhHrP]ZRbП|]*toT~pU[-cMA&wmE}Yuqo.HREB+WV1.ٜ09 h@:T'ibXz% a}g!ى ㅰjc +b^i]5K;iP`V_#2Imt83fUã L(?+L ;kRFP 6b-tP1&S6uqB0Lp[0hfS+b42\Xu(t +Rb,5ݺZpaDKbhMmzPZB} ,3Ҟr';mP(&.Nj FQlhUզ pWd&CF:j݅A]JG3I첋6ۍ͜],1b,PxzMn}&g;"TzcHy!,kOT'u)d) +-0~T 'QMgE[EB ^*H,ѣނ}5 1  w0@,ÉӚlD4OH '\YFL"?YMj3b>b|>y~ռJ;Ƥ2j;NC[~[jeD[@œsê9:VC B0h +PK]*3;gdd=k|S%H;rc@mha}f,˕Ie%3c/d2;$RX’8q G_'>HR4 C^l `Bk Bq&ѕhg,~1a@·S@apwto_MA XuǢ wk㕙Dn؋ 0s [3dYZw~<1+Yp\hʹw+If_2ѼwzFTqG=r%Xё?t.Cd~DJyvTe%KAMi.@E=Xa9 +w*ʞ&8fLޤ޴1;EIDt?f}(dW\Rt*F&l3$$y#HJ3 #+u0}|?yyC&|BXT~J']C؃Q\x#=Z0|n8QӗX]/хjyPp0#R+ IbdYN!\ +7.#V"Q?b"U t|JUp^n*I_T{i<U9+D(Zv˲ 7#/y3JSj0XY҂9 ܾT,1S6fVgRȉߐ0hTS\0~Y7aU𨺈Cg]{Lf< %Cpto?5M/~[UC:o؛([+%iX{0 $ta } +1|2-mYbf9ai1\xF%*RƬ`Bb%Fr,lςl[/j,[9㛲t/@і&D9&H;f{Y\Z-lOMASUVFyiĊUUGi*l"7ʤK+HH4=ʞvYٽipq7܅Ekaoچ#0ƜK7{ܷW; H.X>,3ɓOԤxa_pUwQz3*oqj;.MR} F4K51I9X\_+#XV5v/>@Tgwb0ɥO;!.q]ӞɜXYh1J=AOȓBk1J=^O´Ib- OCFKYxO2YC'kSái JH$#9DqRt$D򦘄&Xp%7\ZC>;nǿ^>~~S-,ڲMX攘َ=]MkwU/7?bK d8ݩ{]$.rP-CdD5Q@JÚ+8ۋhZrNm&*ʭݺ"Yv B1-YQ] +PGA<"QE3{cPD&g3[G9 :sYR}vB;nE Rme])vFrJ \ٜ?C+~ Ps_KKo9@؊ȩsf֖Y-3BUY5GsHGINS(8Lr ֖vvXoXZla_.:ATwյˇzOKkey~*tv۲jyI|?3Й7mnjXnziȃeƶe҄2ju'pgpp;wLڧ\G6';t<#KKDGG՗vGZ}"d8cyO ~#a,ˍGpIКNCs +Z3VuK?ٔ#XͶJ;}5^ΨkɂnuJ~}ڨ1 +q7PmdjR5ѡûwWppܡsJyz?#mN)6@XojN?Q)ybSaOr.> + T;sJ'CD-" +iDDD" RsE%K\6>a`݉hөw/:\~~O9q`.ё!_q=jX]'ǧ +[Pc,7|?hC7B2$1Ѐ @SDI#ņ +iT՞ r@<ݏݫTT:xM7|(i=0|!LɦjӴiijjiܖO=MF̤:³,k !JN4dMީAOك*Xz))iI)SB(U4dfN6nmWiyW'd䔟Z55R4hUC' O;G[H7j1$̪P ˬ6^LmR=6e\ +qVkjW^5d[EI_9W'֞˥ZP=ʒKy20FШkxj~3<浞cQMimϝȼfz2aj+*^zRTG)?ٷh-7dRflp"ܾ/vuh`qZh>}P?`8{*<,̑Y}|ߙrgBL\D͝LSp0/Kэd@$@݄?omBT!lG "Q9(>hpwwwc0pkjcDy7Dbr嚁N@N.Tv>IFaڿqj3t5s3-L%{Z8z K[3IH|E>`֧Dj.%YqKpҮbq?.<:BZ ?s $nt/ 9ךpA'}]H +M L1Z(@&ԃ0g|$0e`kTioϣR W[mV֨}im}Z5lj}c"Bey7yfw0AF +&FAd”>ngTnL;Ai5lfFQeb%P-k̐3cv?S\hDaѺ{b\&Ⱥ>|# dLUMxfr@m +l{R>tT`MT7!Ϙ.T+3g[s0bMg =y,Fg6?gL:yfp% 6؁- g,?Á9/Bc_.>hv Oo~*!"} (${Qs̑ۦx0Vh=3!˒khCl +%b# o31ٙT~OS xbׄ0Q{+ixԈVptF_-fAHҤ@P4Hø@ to-'^3< &IqR|n!i%q6R q nC~>,xBQ}+b^ZR؈s%éy %KQX`~UY8A na\OԳU e! !Eʏg؇B5Tb<؎'7%wMdh6fjo 5N ȇ5 ' N#kc EuqJb$$H!P^噌t^(K " %$L}қOD{ ,DMgY :dT3#q|rL#&\)|Z5ebҦN,;%;h;FƁw)t69IRs߈kyDRWy! U@@[<hވw>enAxa^:&K(! 7*s'=.׺OO7*fA1x2h+GxiH !#VWKCwTv;z-3UEFFpIILHPӦa} ] d5t~Ä[ ;Df^;\kfHD0VؑRAL1,f(*[J&YWƤAw4t! gC6*n1]f5_ߪpv"V ujZbmH.޲>Ё6 +g)owf(Zw`9ZWn i]uj4^\,=a@́^~{l]!(@[/`ƽ t/q,pA?(c 1d"d>(=7<@["H['="?TP ]HDTnn%@Tze[9'ES9?a"`#I:1 0&64&ꃓ{cؾui`0GaqA :xb;" iFWQ +Gn9K,,D9xjudu+D{Xmw:{׵ܺ{nš,m{Xmm6ƃ^7wVvސW\( ؅{O"5  aBx'3-1EM6ZgXVzLw6 pЯWwBO!CLJst gvQ>8(aB: Olj,S*pH;lPcRvGPGk3zcW=N=)=NFUzN"5 +W3SbZlAXLGa +{a}+6jMpVꙨj6,n b8nZ +}\.cz唅UęXEz4j{b@ȜTčmbEipsQ.,Z5W ̪4Xu=Hkt GڡN7#s#tHC`O163ڱ]Q?! օӥ(iP1HlV,+WHYlFΓkUE7԰'jjȵuE[7Z;Cm\v8l^-q Ʀz,8&̥ce m +ИqT; 0ć '9'D7R>P:H\#`]a" fx?@xo#QhShKIII3TxL:uB=CX Q(jy'ٝD̢5rE;-a:N2EHAhrijd/4FI5@s)CV H*nLkH7Mv5x^K?p9zOQ΢:rڴ*̦͢EnyH93 |.K0LS>h{aKnx_+)l--,Ï-#'알uUy68NjOa"(3+v; /zTCKHe}9b2~hO +) +n y ͤ/ʣw\@H8դ*OW(HZP(EY-{Z~Tނ+P 0 o)j-흵0ف~›U :P_z'b+p'O*Dž:?#y(&F,qa{1i_vF1uȯ6Bg)`$yJw RS8kBvE撛g0YQ3TBUW6Op\+Ȳ,:R>wH\!dWi`: @P5vȹu =ޭK))=8kF>udigXO2l +lT{Ԟ]< }\i + Bk*뵯"ik]x fM\O߳1f!4]MYR[F%pkoa{5P q9àZR3_ny!H^&S6.I| |GS;}i|_ {yQz!UgGM|TjNQX޸*tyHNAz?]7b3PqO]k>?R\*!1?0z[|Ӂ[< slj=W/@wP#*-b {"ϐGЍ&-*x*oT.#,XdUE]UueaP_tM;V^ - oZK'CauWuy`(~F\tCeV1kމ +MfrvO?G>t }Y_3Q9͈;t]{VrKoXp̥(:869jyC_FEyice&¨x?=҉NfE-R&SWFbt҉6PF7 v)4xSJ;C4RdđMsBچm9Q5V`~om ~lFFq"0fXL<iSYwMmPk JMrk (m^m08ĺp?ץW9.]юjؖQpSX+׍썝ijKheaU^xN4PT^îGXuz?hvqX{8؄K6wYf;oF*oFгRRF̝|մЦäw$˻iO:=JKޭE'QKSn5r r8@CfE07-$V,5~7l3u lf+喬c4o' +ݪ|䛆vAW͸WD[!QO:E~v d06T\c(fh˗:J:[O.} ._0TZC#2!wp#hߑJ4u%j^jP{us\[o +/K^J* +{xE / <$Fb6[V9/;B% 1bTdȢL.ACZ&Fhgdb~jC}.[Ltƿ^7n C40L>bqBfx|aҸoQ$LqH2 QY6ބ,cc[㶅r{\>XQɂw]_.Y_㣷/,] {Ə> G cxvU-G9Ɲ}nzx5nR|Ə">3C?͘ oȤcLﴉ<>_wf\Ƭ"e=^ i2WP5CU`~3nk?6IǺDw7o|~I~F򲿘/Mago"$ uGD{Hoh6+VQ~ {/>@20W8 B(PLH H$ɔw$@YR/9H x"ID,/?PH"`!"|iWDv0x 0H|B8 KsF$Dь#>4hh&@+y7|cFP2Ք2,2"q/'4N8 "DLY8D"Ɓ2gCDN3EJ*EEbɝiF(ۦNBiXEH+G1c\"RT-ʍU;m6⻻MSRWRYYgF: IXX0[k*J +I*KM,EUuUe}\|\+7GM_PU2>0UQI *M白AT]:FSSTYP*6 :$U$7I1Cpp-P.+@[9kO + T]@]qt?]4LHI:P%h[;7 XIU[ Ejs' ._h +i4đW8 +*ZmX,ͪBG%z3Etݖ %y) DȌ=k*%]d[ꪍ5'@db5S +*ӺR/2+@zKG#1Cr$l,8/U]ZblF2*_\j)\\f*jj 9m,Y'&n~mhS25w܂T\iUm0TUa*ʌlZUŽY5Qy_bƠ6_ vJŕZLF&<_fF0Yf*ӊl9R"TkpPz'[SU*$/ %97*xtE+V WҍnAr!d4H~o}Φ/ތ%mD`}1vIJƂ hrmiA=RaMW+2# +YJ|5>Hdi*t֍iEZA.dZ=?7Ԭ1s <XSaS((.)]RYbð%Ii)( Zץq<(c:!5 ^,e[*WIiFc=TKX57KdDZK(KL +`L[[vq03^`.йW10mNlFܟ)ũv/\l|ީ(&]xjY<\q4$A59oLRa> ˤfab[[,vҬX[cD +T ++$,".- (U/Ddq{ OQUtwLk9$Zthv󰥼R' B6!`c4vlOJc@F ,숙i.,]Tb)i!B]QPñ/ecO^B~o6$S(Bϯe+ AUѭ)n)$WZgE) h]cR=˛,T1QyL4X,@ @u5EMZV*2>_Z0TXDFƺn/%q|2?Ev"ճlqh&eTmygI;Bg-DLER3ojeQ7'G,@M0o!.]A U/*!vL`A4:7?!ž%M9N D4Gieش4RJVA6cvʱ@%RoPjjLkb/G_Q);"=̒,.yV֪Sݜh%%e,)+U_YJ46G9,E4LX[$՘c|cØuj>"K$ФD4L#C|Q!tp:0K<9+;%/8'6ML-g3ؠ\:(Ye5Q-m]-x75$|aF84jI]Qއ>Re=Di4^JU5J4PjQAuU²_6:Jc2";'hT[w>UVFF o;HUܕU +)IMfhi>0ȱ!Ow%Jz]Ej.y9-P\`!A x +\a+s,ɺ?S]ZPcEjT +}-aޮ?4ok\(xX-fej1^>_ MzZEbdq`6tLz %, E g9_,bj+=[x̹Y[)a' 9m5teU9|4c6#v;Jd_׻[NT`@bJ{%T2K۾U+#?Uҹ;B;ơնvwKr9uU%n1un"(_?^R'IτL.̆yҺ?ݲ#RR'"^#{E0JȀ[ ;\;|ĪRJCL3ovKBh)%TI56բWp O9 J/h Te$f%yP9E$s8#M{>OeF u2+|+PKllu9[8mtMdoi RXZE k0)t(CM xbO_Qז^a]ăK7 + +55\nn>;JNQ#ާ^䏠 0b+ l.@R;Q\Vt!ɡJiLs{ E?L4qH0_קi; ̦tB&P3ǁ,%Lr"9ⶃ n̸=υyo=$ʎ&D=!1s0`GpTyhv9j rJb;[xGL +'~#H^ $~aIH$h6[጖`2:~q.L__])>/R'raC8i;{rM2 +Ӳu5ΊAqRWq?n~r@V8/0[9ƿfd5%ř@YR +ӆ'P!d'=νޯ&X+ؾsJĕֈ'fV"$yneT=Xo@P1$Àg;q^ZMmSUUARS)"cJYrTD˹\e +f3Ŷ".@ +8c +ccѢ&7G+KZP p6uH ]\gm?gWڻ+wy͖R;Ԃua]?_w,bO&ޔBJI8g3lDcVu+WEQ/!z9IWdunv,&E|id%"{Tcn:s:ê9$-7ugKba3#2EK,PDX.VLKɪ |C8Q {B2j:)nK)ʁ@=Pgek:k^/]$Yr];i]rG6/!Q}S`5wjj+:U_ҸX?1h@e9cSg\*Z-o} +3z h9s1wuD߿}9G49ŊX.|{,@/"*2uO֞]ds(uN:G[Dy砺n,=ݓ:\`9qE{&rT߂S$ؘHЦp58y+~{jyiI>++ʏ.joCP_pyKtʧfV"tה@**c85DȬqZ5dsggz>CbqV*7F 0y^Q(Ps2ܿR/u,#byLTԊs6wnG|!]G6FjV0"֝1m*4A[a8G/U\,(.8I Ń,snƙGp]T簄?Wpy +³>eݐu|XrbՌ jeX+ ozFR&WUUI3Z`E!PPD@ݣDtjsZF1#FU֓7Wa+b:X%ܣ)]c r.ѩM .W"{[eIC; L:J#򊝓‚E]sy᭄JKQD[J +z -\Kք[^p{f*# ծxD ٌx{(6fy + vؙ|PU 'UV@M6dIW.͈*lԼ0A-fλ{Ռ9J[B_,w6{ϲmt,J{0avɒ}BjUVtv*v.Xo6|av!칤 Y4 Иȩc7qֵ+V '+ rHWsʻJ>z5 MHʉL}f`Q B&aKQ!$JC٣빘'$YbbmX.ʅ( -3$yp.O2gkɇX⵿/_f Gz{MnMr58=S>1,{F5il񾾝)wYީۉ)"FD#/Жc\+cXxE~mhc@h}+8呃4gÃbu۩C3$6JV]PV^ޱqoħkb +\)5V#KCFP2\&ҦAVqRmخag,TNoF6C6S"2 Im&w&mޒ?޷ 0-)&[dV.͌Jq]]$v!=55 +|]D{i^"눣}Ey4"J7TC\oW3l@ p +Tɇ5;C'Qv)Xc%5 +[%!O-gZC+Lmi nmX`CH-7ОQk`Z"Q$#+ +̢ j6!0b2ʒjHS7[h r{-BNJ76~0S\Ø?>{͡RJlAÃX7T qASc+4܈voI +r턱 !9pgRiubٺ kzctA']PFk]hmZq W ûs YCɤvv܎A{#b]vU^,fMp"oě #j^m^ֿAF y׈^3#u^6_ѼcsMQxz=E^)ou sE[pEL\с6NX&_|ESd:"@U 5Vޏ`-h}E6Ndh*oWQFqR ݐw W4 z#gaRx*W)z˓w -0Z:B,wp>3E.l c]qn8`OπTt^Nw!E95>ڱDQ]෎)I QIma1=_V X6a>&8UU(s "ِ=fܜ@  +.HZ0w\~IO7aXl0!o\xh[= ̲q5&wم ܩ6d`ƾ8EAIݨE*#i\h=0PcYNHI|K s3S*+$)2GXf8؉[/]Sʣs[3p~[b`d)V[KZa{ ޿uj],gZITu>2dˢ67nqА;Gz"Dm +6ղa DskyG}z낱1U];xH{0, +ÒU/1Er`5T2xpZ 58\.b8zNxТxb_(Z*M[_HbX{`N +]V;x KXBEӤv.D_ge-h`b\mZZ?1W9 1Žoc~f  leuٌ&7t/Ӯ3 2AA8ML6 y-,_@S182 ]~VO=@6DʃT{@V36?w=|ۏ-D$o,?uΑ; o$ +7gp7F;IDPO^- :ww88x>Uç*s4§;},/Gs Z;DQ2q+P}F-=(=\ӭ=05-dsrGwz(G{”>As=Q1U+'w>٭(ҫ;ir}ا7tu<ݴ=}LOw?1W见=ZOvT;|skfmKFC" 5ʩ3;=Ҧ^ z9؊MtN rb!E,ͬ ||(ឮY8?;OWi<ĖMrkبxѿ$f_TK7&ENbHIqo_)Q?rB2#z"?PGuœ?l??6Бo\= /r6$197 6ǃ Pl`C"~_I7+IW{ƴ8F+E HO0F9چ+OMY,dкJW)7ЎeُOn'LSh#Vz \:Rxh9': +,5%sq_[h۴5M4atc"4װ/*cD7ިf\,$H0;>j@4 ̇^ZpR2H 9HQN6ʚLT 3 +Pm;z񧞑X(=<(%"c6Yu ޭsl6Mݪ,T_'(-<"5jQ!V FUT*˄V1\j]HKa<5"M؍d˒qx5 h1i:n8BӪcxHs܄mvx 3sHGLvO²3L§37ꐘ>NĘSØ7WQc'Os5B[̑G$adAJ$ܠb\$RlXaѿ, 2Q(sRM#=K<闾mڊj9~{N&f :(R?8~Uqt>k]bnCl>ٴ^dCȥ &WF?6w7I+-B/Eڠ M]k&|n7]O(2 +-R0T65>ɔGM>v-b؄bSMϰY~;u Tpm0_J#Nzbݹ(felq{  E`Ͳ hG{FHp:7T_|+\J#Ev H֊ Ꝛ0tsñ%1[ '8ƭ1"GjTN#%^XI[A'9,F}:몤?9fM̺x);! r?9zI7Y&RQMcײ}>WԞU՘zq/vHkw)kvrA)Jx1t_Ja+bFFPkh0#j+{i@ϯ4ba}yw7k'>pxM<^` ֣h:70ZTU}n 졥uȿw^DACҨ4j&)?Cak6m]CC`x]R>-^?$Fő89Q<>=)>MnKw"̉ +hQ}ضg r"S$ 6Q0 D 2=bS~FWcx0 >k4 YKokJrfu] |0wW"'f!>D'JIh[x/YJC=u(%Fdtohds}_8"ݹ;3 *}ƶh4p4'WBe*3yx;R,[zb ffb.֧cLu-J!KFW#pV0:}EQ7rUYE ,mry)UJ2ŦckܲAN{VJ OB炫ǠNjL֒\5Vrg,{l3]ĕXhmWdN$s'‘N:CW&+ 去(ڕF\Z'bw4p-Ct; ԎF1 '041JyaJ6X7tllλlP;1tMSboI4~] +̗ē֝"p_W N![f8O ֪)>տH`?U8b pAy? +n%ћCy8B؁lU 5nmi4pn*Y\Hha| a[x ^B<6x1p`ynX7I%e`r7❲%o7U8cV>i)W'FAl7EbzX ,2 +wER Zx.23+G$$u%큲vʤykctP-Gysc +Yƴ$~3ܠraIZkovn]*J/Zl?,/u9ϼcg9oX;rTho=7*N\"B>\gZ<]n4B|f ZJ9]0yG"js6Qxn$@I ye8_喴MWs;ΎUm*! 6yV@Bׅ\h^^inesJ,n /!7F +冲C;C7 3)p.2^Bs,'2WHad77$!lISrda* 2.mTd\b+d\;wyf[` +;m0)Ej0Q3naZ:DI:3Ho;(i;ҳVX~wd~`05 +i@>p!hqA`IBwy{Y?iCNa^?@}&5 +S_ ؔ&֙>Nꮽ?ۦ|lcX'vY^kKx3'|iZ <3Ǧцxt-ZŤO-y=V^}>jtZ{ŧ-2-5*6 UieF6+q +[ 5çjشFǚamc +Y$ =-LYqII45SH%jtuT'b5RvVZ9UiVdB9Ŵ+r\7,7(]REWZU7};E?,,[ҚW@݁`ˆLy_HMR좛4@e?ۀ|uaP;5iAC)y,]?xo@Ə/ NIA1+p0vAw %#":ё͆sƏϻ6ɯAh6ogz(Sn Shwl/"nr7^S#H},YRQ 4'{HGSyQ ASabvlz^_|B3ݦڣH>~vls5_E|r;8.נk ǡS1X31hjv>+0d{RBpP/쯝A^bO@|q#Amk{w"? +O^{(Bԯz"XbO "o{יrI|'Yne(FeQ0 +OJҊgŪgF!#Cͮw:X}F ޵իzxW&@+{ux:^:j. {ugׂAo׉.z]@TDl ]kuӁZ]/kx\A]`D׏)s)[(דoOPafOPXnFG +oBG~2 vq_pjtlD܈bG.u(R@o9P1 P!_1o|@Ft(Z+:|1hm#x +́~y m0>"ӷ{[nQmnpݚ'D/e!a|HE.fe1 Q0~.a~h4J`i?9K~ka>K3}1k`w^ |YK. zS5?]hr_ 7d|pS "k^bZBvj&ٮ^6>uauZ}Na{>$?~ Ϸ>>)/=~IFV^??~~q +>?DE 0wD߸~wwłb9u +hjW釣>eE> ;?5UǏ`(1<" ؾ̆A<dI&b5<-bXl[>-,HoLX,Ӯְ<6]UVZ1Ǣ[̣0v {xBCicrz}rzӅpkQ8y)€^OׅxPKÀ{`e3ϋ}L8?xޛ~j𠵯 +xP4BD@n࠮Dϯ"@{&v!gpIĺ87&u2qt&sC!O{Mh.N!$Fm= j J.N=mN^ͬ?D%G(*IvB!shT.V Y;RpUkyQ[7qsH(lGXK+;#//FePVM.S fⳄ81].oԝֹuYyu.<c0|-F*h9 +U-Vǰ#R0qKF<Ctce29@|~'*4Q8^F+ }F$<τAco6m5H.ϵҾS?h; 2U]{5]=GuE)vl~yb0J2rg^6eŵj[ +,$hT]}<ppIF\uM:K޿),bCHq{pDvCn٩oc^8m `F iw0H؜+,Tj ;UV4ώv} +FXyQiKwxx7Š*0 J&UT1힨̆c=ܸXY&j%:qѾYG +D +ѥtV(7ҕuR^G^"M[v4*4o/&F8GwtxmL|v"q/s.u .f]OκQQ1wۓp` +c෡h0фt0Gz"u/S. tfX4|:I۳K ' >˾gNlYITey\Zl,{2M,\E|T刑/yҚ5QG Uݛ/n3E 3 E3p`OQX$6cMaݲX&)c6c<CeLg3JJai92ae3yJŪZ9jlO5e3ʊ^jiOc5\Whijm~_~9RnYpgH2FiO۳9݊q o79džpk3)n}%}`C;'y/gE +6AcpaCiIq:U&όy?aȋԎ{p_W1&eE }fM~"{8&2˶1aFi\6mG-c$>c!>c5Ko$`ތ^ ˈ؄ij.ر{]eZjD>eZ^ej&nޛdz]Ti䔛c~n8E)T7*7A5sbVԷTZ޻5=5AlYg~z"dJPɼ1 2~CU:M-vhE+rhb>01AUo_` +^(3j\6B}A^'YpbE]ܳ]D0~.L ܤ3fD=o8uws8bW(piT{oJ2w[tk(-evDoR/s4IC25NNuKeѲ>_{Ѻb^YeAl7n\ane@Ґ'4-P@?J[+\_F_Нޫށo'Mw%•.{#y?L:\!jQkiy5_i17Sv"' +3g)ZCGT6Z<Zw^ +LJZWO㎿;Z'ih:ݘ3[24a \whƙP@T4ÅC[ϩ}ސ͓VD,[4͓XXjƕ漍y&꩘kW.LׇwS +=ԓe듩xs}4}Ղ1~MnDܥg1yX{r i盬y/9C>5OCf/uK\/O[|dQzhrW>[9ǗK^S{n.f!Ka_yp|] \[Ljm7=ɮΑ1ˮl76f$F)&74`rSL&Sʢp S\ +VNhIA75 4$ƿflH|F4٫i)wW +F&K5(UfL:{>Q&f[ HIe{`$qP rT +[; 6}jkD7p4J\\i۞9U7"KڄffN9%7T&cC[TYeS/ :sb oѯY$γ tE˜RHjzhas`_;;s 5ed\=[9cYi`6[lФ!¬zӻ +k䮳/Xw6}Mγݯ 9هBm0Mg B"XÚ9;8DUۛ+WpLoxUMYp RԆ*9" ]E%V!xhk)&۵R3WGmdZ#3/xZQv$$h|S6#%+j/!.jMNۖ&ۓ&F6 ZZZ91Uޮ ?3X3 ]5E=3ZvH^;\=fyZg,tۭPQfO8լi-QMsͩ5RZubU{+_՞CVqF5Iʫ߸W0.5h9ԋO". th5".tP5DWT ӝrFv5M.EM5;m9jYV;tmv .m ;ղi.y ?N/:F)eZ[DW ͹k5(?\:g6k>ϚEHk^Sz +ab[W<;WvsmC[Gfh=~B/ط& 'Y8eZ+ ԫ }ߖ$wBu/2xɼ';˼"N8L\DMeN\zAzˆObAJb>+7ui܌6^at_4·^2y"衟+s#i^䁃/S +tTbxL0=V2nh~^3zϦ7xƀ%C{sm}[ޗ8@A'ݛfCC}A岿C;A ݯ*5 c}Ӣ'?a|߻E!6u0A/r%~L,cpA-}l۶m۶m۶m۶m۶|TSLOϪW{O뗼}(8.0 ]A 4^#^X1x,q`<,`78I^9شH?:D[&]:9Ͱ +T.Brҿʞ(&O?Dk>, APxdAː3ʎa0-4,Abv /v]Mkڵš̔@Z&i2GrTLmb1,Cl[iXL]o0܀L6 ).1j|`B&O/FYU@7$.1D^EY .vuNMOH^ f2̬8/<̌Eh^N ݰ o`.6-kh@Ba3BulYI+4|AJ*A<# +(~5]D?r8d86,*?@0vqIW:)@aŠu(-;AҺ+d~FBP:g~!\CPNJW +'=C+L?Tq(*m*m0PE`4|>V>ޥsPGYnGK?l_Cݗ0:ݷGR#x:E_k3Ssߩ@Acʈ/M u "tK=wW=qТ"tyx~cѴjZ y LjOɐ \t.tgU:=N- 'ыSYB;,! +Ik*xM^B: +͝|m{s7pԸ "P@0̝䙙 XӌUW@5&L6'I+Vޯ_b^`d + +Kt|e_ث+tT4Ʊ18.a*qFz69~OUT8A)#e]̦eUTg/φWT>OPgs$'UXtU4 ACN"эN(6K(#gz #SK "RFV32LPw> /ւ4Xn5-F0ާ_hQf^UGV h424D2[TogFf2(NjՕb/f]a $$PȪJ[5 +pBW˨h@$@̌3Ld_?)-יCZTi(uPZҺh^*eq}U(30wtll.#(jrMBkI@0$dAI+oo^?-bFl߇~d]QءLOz^7u5i@(J N:eu[2uٿ*@\ƛքb<$r8'i+,N~;{i GL1]WJ+:M=ٯj/T{J8[G::E+ccTiV3[޿O}k鈈ln~t1Q:U]UPq`@smK'O0~nA 01NĬ\K,#jNҭu(\fEĜZ܎owpnF/[ +,x%%0ziN]}W0W0adDCVg$v6Pj1eo>\fƺVEfHʺ`h?V!eOj@tt’(rZU%g̓B{9 h¼^I;Xu$h:F<Z%+ "_UrhH%y67?NR=hϬ^ +%QK2_]LoC~Բt*ɵL 3k,KUQm|ef4Ȍ^a+q62Gij9*gf T=A_8!B(Bu߆QVV]e._M YC%h^h="YޕXRk^Ǚ҄Y8ks d#t]з4wR5؊B`SNWgf6mYIq14 nM?諏X jipt%XwLCwᯧ첱ɿ|"Ÿ%uR߉u۲rR?M>\HؤapTtecnFu_ Dޒ~;c)%IrTufk7頴t;[F91LЉAv~PE[Dh9PS_F|3r4߾3pZ֬a#pG! +o}Aj ҷ`_ ҷh 7_\Z"ok+,G49Q4+Zﶀ@¾kɶBJ(M+gkƷx_5Ys}*<"gf8B|\1UahB k3yY2aDž4 gae&l^{Ud-Bwө<`5W>&KfJ 9KFʒ{xEZ\ݶ*r\FZm )K-+ƒxGUe맽Z- hom6֫TEjn3dwF~߄N؈~@ ^-eBi)xTNZ=աVS#sM$fY鞤 [Ao6SrIBOX,n +7rVD^Bv qA/ÙkX1Ɛc^f9rS)ZoT5Kh:b IX,Y*?XZOi3[_Z\W}!)@ۋ [x-aW@_A L"\]}ZQ:HEZ3?|yLzD}#WpWK"jpv6l°z3xHGu'cޠ^ꪸT>Nj3+:HZ˫f*xMS?Ā{)^mų7" 9BC{X,9vHe[X8M[ b®lP"҆}mdlQm3bE=e[KN||ӨEDp2f10K{c#We[xF[`a*=}֨u>TbY) +DȌG +Su[ !2i؃pIGY)kFF-1 +5ml*DS\5bkns-kӧ +\~4z*vL^yZǩvidT)ZԉGKu&ǐg7Q:YJO|-gF**1l#P-Q +Q2|7qn?O3{' iyBNt7 pyA`+>QxXx5U(gr:͝Pd ^b؎p%C +@ۉXe +6a v'!hl^o۟fftVC`)OK=LbO Z! KeJ\gRvOn׵*)zLW/98FTشHAQc46m2lr9ǩ 2%{H2EM?^ϼF>6Y6$|K9qӒI\N&p}lZ\93b4ێM=~maξF4{4y{ +%Sҹ^Pn~O.L~<틨JT6Ir)~OUe)8rmH.+~`נ#@^֩S?jӖ3y k!bwc*,k!>2 G +l;uUS4C~V+zY&$ȅN*,0bjY:"c fM48}4ui[ )sú~"3H2?AM*e 0{Of2 }"M33 I2bKbXZ˺Sɾ TCU:UDq5ŕkdeWgawiiccZu$VgbMQ,>S>)!?os2w{!ݛ^S9|qjp +0ρ`^ Yش՘t%[4ڥ / viwHYK̜^Y +yX"bL"]>KZ ш;j-;MLӛ2Bskq$M 5s?oɻSʒsvb+U$"?iGᛝamڹ&tmUCKJhw\,4zr_q? lw3 b{$mNsyrqRwt_uIszuڛ5;ݯiڕq jm!k0,RQ |>Z7𥞓5{<#Q~wlC~S-ŕwΖ!&D +QsJ)(Aiu$ut*oý:ne9*]#)͌GVwz&l}씉ݟ^gϸN霬^Q&V_TT2%9%-#XC~Y:bRۊBL+%V=ɗy +B*t9uNe߽P,ɕ g)t#U浤`Dg*3PBQYzx8]WT.,t.+s0qZRׂH:CwD׊ϑ5S׌IlZj6͇Uځv.ԧߺ>>'6cAo-_-6o>&?;/G.;񽰏/G8}_7^'810G>"ʟ>#0w %?9{h/\:J߄wW:[$C|[:sy5z,kxkA¤b4%$f׃-/\]"b].(35TF?jm dbW |6$ּdW1xU5[q=Dpk]О@#(X^ІI<3/_zI>㼒Z_k 32c[[dx_I [BĦ +YfSO%TCg vTesMt]-`o_j!KסRawn.vӊ}i5 juc\ew^n)H$\lGwkc7߹^ӍeF}\z9hHigpu0t+"k#Eߎ/6DŽ +$x$/v@Ca;B +A ʴ*ڈiџgknaaҮ pCvZ"{@ֹٽJ xpߵ_t^~ +RcJzI~b{ES`BȗaTD!ڷRib6'>L0A8dT! _o8aGBnnG#h!,$Ha@ +2n5b7Y2%ӌc@αU$E̴MpϚ 3|Q }+Ջm!mb%-r=%^DZPS^4)աI= p y H ӯ[r4Q/(&Ƈlz|"gu#Ѱ*::pt +MO.H;v,N -Ï=_6h]= .(g.P> /biѾ/wL\;{l.o)҆=oԺ1o +DYCHKL5.]58d6SJ(S 5˚dil ;B.DzuLꆶke"*w uY~,XVv8QZdZd@ +.Tл#v8@Ձ.COt`J ة=]-uxѰ3-sX? z ʕLyaV$]Kegs=:QLWubIl0zdc(Vvu㜐j͆>x@QF`M{=cbql!jW(Q[h|6SaflIy SsA DP{h`mO׆AMY4ax*@yIR<@4wcqڳ񆪾ȼ^9~IRG {RdiAXXȬh]MD@g + ZM"_tZOH ?PD""? 2"uFO‡>. If +JYrLy ITO~#EF ^~4,Sg5**[qi4M (ng)@OTp/QDw(Qgs=0`PxW^\7PP3|jPZQW}=6*LZʣ XJG1l»Q:xF@ qdђ6sÜkes\_qׇ rH[.;<¡_RK"Aew [:% Ly.ǽ{Bb93o'.0;ˇcΉb^H)Xu w ψ]׋6AqEU썺%P+7ېfcHG)Ol) R-I* SwQՆY@;8;GוK1uLhw(%1rq1 L$RX +TkY<egG5#0rq3H.rP5d/'_V_ةjB-x>ݷS_?dBzn퉣\noA*5A"kCM=-0J#Zl#ӍƮ:&$gjA@dwщe^/ˑpτrT#d{mQ֡ߢ(@Z%Ŵanu\!YYŶg)Gr;ڣTůEoɆETvކM^3C~u:Ӽ~GF>$">dXԽF>~ CH|O>J- U. ۘ{#3(S vzQ]T'r kIh}]ぇ˪ea63m@Xд\A-fKL;4MfhR-脟Yߓxo|ь|½fمKM?Rs&4]Il62{0 w\O f2l-K-cCҨxyosD&qK#5cF0PG1+<+ %KG:jW,5TYP'nLr裸**=;TZBҌw69M5gf;F6(:Nm${d~_Ǖt4ZVY7n_~i] +Ķ48dv87~gUqjM&pzEG +1 zC0QFN{sm#h!y* WF6nb,u(ey]'D)SX.z+#ڈPR"a2* O_ Q5t5k\7jCeRKߢLNC8Ji>[3]߲7r$^ 36|s0_uNy KT.!ƭzVy0ӯ&Bͼ1q[h:xU^OVRhm-=sOV)+;ڲ,-Ц)8n$A9heXLE~# BgxW0 fgg +mCh{0\(5[=8f1۫RRU5SVn'k+W<;|J7&yG/,%s*W7]9+q${V9{6rp=Ӈv?<*ԙ T/H@ȳ +~'-MG`:)aJ-M'vMf.]Рt 9"]uqh3g)tZ6LhRJ0fJfȑ +֒ۨ{ER-tE59*[BHaS-EڷɫSo9"h*fA,Z#ΥUR ' :r-Y" ݉矄YH]8ݥ!f:tbiׁި sS^@1ҟ|a  0nM݉Ffφs vehhx-*ɨJ Fb[ )zڙ@YM`;Ch[򕣞MEqXȹg2 [GBgBA6* +iQZZXW6̲z4ܠ9WF1b *vX(WO:B\18o;q'5A,w~@ZGwj?=N_2oI^LP/bilɮAfQL +>5]*?l]*gtY:jYֈeiZ"g*vuֈe5d@Jk#fZӵ͕g ΂%kJK+F_ϲe]+m˽lgj%[Enqe;O+nt2!yO+go9AKUz9 lfQN&ْ11`e^?kȞ{v&ʠ|cl$G4}ٗ9isxm 2gcO1 t9 < ECD +#Jsv&qxozXn7XLt[aւh#eZ+jO8w$av}B`zڅ0K=P7Q]5(<@s{At֝GT,"^kQJ+uB0(&o%J4w,.d7FTtJ^ &32Iw1LOR&MXb;Ģ7Ȣ̢7ТXɟ؍1qpqmqNhQOͷIUi!-bmvT%ڬgݢl {>h@MȼXnp]\ "Cgڟ;+۟A\R.C[=M:77vcXYCalW_L>@655EȬ|PυssA|el }ETlWXa+ޘ@ lٗ ڂqw' gM4bӲ' Bز4D2$̞3jZ:[ɹ6qm-d7^fm7amH\\ʹ! +.(LWayA)LGqs Fx1 0ݥ/L-Sˏy'#@ C*S>I~hۀ?Bu'qPlU0øSJ 3W@C>OksQ,Dv5e/>bkY)-S2(-իΥg$Eȶ'!47XבrT>A~Z\&OVOR{"Cd_q_^ٞň=@T_-5\f|__)_=-=ھ$0P`{잪d~L63HJiP[-uWJDb7EZ7f?Q3,o"A#:im|^זM!uiDKMPt,GR6\H䬳oӧ]p(]4<$qUDH;v:NO_>΂4b $_@ 4G޹1q_C:tCoaŪ]Mwrxĺݰq#"5|4SL5 &wAݪ& un^]ĂsMBBją嘜i廚: \4^S|Vty>T1Ps{=ђ\!IbDcri@11!ҏ_MR d"ԔE>+29/s'_*9TW@E~``=Swi{ݟ׽xF| %|꧗xR=΋ tzH1a˼&xd'i+2V, -9{Do}Ž-5JkG4:~۔-{fES_1-+L(Wvh_(QRa4=/=/7(/n˚A7Q//_LOh3h7ߨAwبbT}++yɌ͑NGFn"i~Fҡ M+FRÎpUK6k|E*9EaI+0U0Gly:uTu,YiM +)˝ONaeiB'}gu!A@F{pI밺u$-QcrnME@/mI 1|k!\~kV:-SHz2`&5+DAҌ +ע5+O/CFt0[I{.m4mF[Sdaqh-kmyZs`]y$CꀩM^}XC\)ѸЙ~r?y")nԾw>](sP'Bވ(\ѳ(R\g2͢: y5 _͢֋zg5kVoNYݕYܳS{ȉ޸= F_*SwGoHbۣ Շ菥o/L@_^ݾUͷďocoR_Y3o/ޟd__!1` ˘ݏ v!\ɧ]'!J֋r,@x/7`iyC7ƀ@s GXJ7WLz,Bo {D`?kD->z`P4v +h.p*k PX@f@^;@gݓ@O2EۦDGV^dXrWo51>:D_];> 紗.obnxڙr77)C Ǒ*&n ?܏SǑ]hȓ`QY"# +!d~Qh/[ܱI=\pŠgg秫Fs\zl%c@~k] A2@b~[ቂJ1̛baY=򱮍7Xs҇͠GE\oY7p#7F1$2!auaxw:ӱ>Rc"pK֌"&*1>8\x71DMa8}Ј 1E|k6zb2cn3-QF[4EH`Rr;-Xmh;HvG9E^NG eO7E%\t7t?z;9H !bI\6 Jv'ifB Glc=c=t >%`3V'on]0|3r>W2H1osߪQZ2j0֨JGN|6jcsv:!-Q@kAd]6(aPi +xmH%64oK_ΨIIY4P >PȢglizL\yp^@xWtgTA4jToau;%j(acG7Kl}:A?d3 DƨW?RI%8raGX*ø=Y7ø9ze5|b5p>j;\ثO=s y ڲe53:kʎƳ>9ʁ坨r0.!$S^ai7YѠyҘtyV҉hޢCjm_5b͞W}͢D9*wPFG7fJvTTSU߰J'Q77;5$ƥB71O bD.%QdQ\э㩴? KWukDVҵأ.3qduO(ru~rDo!Wvt/2F;х:Te Dr*E?]!Om@m2P?}t> }MV5geÐR( +!{vk,GDkH*/DW n@>{\,}_T^E@_Oڇd!pȜBTӇG*7%HНQUmbhꞭ3ECY\t{Μ`7'@SK~"#ԫΩʚCwqoJ{^DWXMA+u _GZ_7mg '0VaOIMubiZѪo׆&F]f[O v1M=HQ.?Mexg27[}2}<JXWD`\y9_랏tg`G;UYsitC+щXXWSdWtH^3t]0 C%va؍Tۮbv.,9kxe0Ͷudς'yv6mhGp@8g i~b5ł1C@S59Kn*K.~\j0!rC^k:Bc,/.(ւ`Zxwu5zIڭ7Uvز'iSs=A(*ټ3țx+5\WXZ_w~ei[Brj<.Sx5)Brk~%i=~^:`jZki.7:Xߔ^E_7Fbo,nn1K+IzCAzc9䂔^pFɑrC{GaO`zMCMxCR9^py<0e{m=k'B"# '®PX 6Ӧ(kEJ쇆kj! zH\*j)XUڝn%S?~}}NOgxr09zp{K sv 23ӫs@[WOj¹7B@c33g ‰6T8WaZw=C]CiYh@ZDi#ҙg(toRQk̥ @ڷ yo@>Wm O ^t bul_IϠvcna|'~A˂1oeC!la\@ߺ(>mO|Qw qO!=)1Qү_^ݓQ{gF|(9miG7iNJVyG LAS1|r`u7iyxqy xA@1}i nx_ͫ"} u;~N,~oiA Ȭhk[T=Va &+7/&^ҟ?&$|[n 2OkjxȚ.K*)XII5k+4uInZfu2R ue``*bM\'vdrV53gB +*857r5J V?|jt!GSXJ\(iٖg)XR-m8]w_._1ߡ304釈O dx`g]d("tM0[R=Gr`yC{ޅmvoq f̩bȟSd#]iHIp1ä+O-Orp{ZS J# g2}ߘܓqeL"}[~S;|(P%Dlt*cyƩ2ę6S?G6+gKY:N Eaffjb%ث}륫,+bVڅ5cW.rSeR 0`fda[ۺ`jjL5f _V1GQPn>`VB 2&9W\Wk4KV;b.0|,79Z.+c™x7;Ck8}?G_A] IJsslPÈ= l qC<)iAg5{Z3_"DV^#`r%* q*luVQy2&8G [a~@2BaYf-hYaaRlay!;T` 7d3Ұr]te:SPOww,a|$PѦ.r_rgpx]/<`_hSZs9rۃTFc[X/:o$f$p%`G]JbIJ;er8:7N*~d39!]=8wdw ag`]дTc&Vbo^d~hJ9 wJr::g[^` o`೷KwD& KSg=dV|-㛔bEnEεE~򶃾]B2:Cz{GvS%ŋ]"V7bvC[nN%;SGM낢Wsgg,AG?P?sw| t[ٿο[nHu2#`GA `%~GF9AGBG'H 5˘5>pCY +q_@|@Nit1tWׁDz"1PC_1ojI4_D/1\E[iO>5ۉإF]9eਵZ*tfbUUh6vd/jK$HФ0άOIS/ +\Vxglj_QdeگE;f5x7DdO ;@?;ƭ;Ten;@Wdwnpnp$4 Myz$.4qHM;@K7::f.;(6PaMګdU:%x@⨯鎡@_5JQv{rh2L$JqtYG!fhzc(su㏩?0Ow˚ciCw Nh[_E̩Cu hkN޿R$g])=upu kn4nw^#z,`w|еAM z8p/rI>iA;; +;Zݨe7hֽ&7\붸끌;O;nF7_=Gx"oп6B pmG8 pm2^adw<Թ#Co{^ށqfoὩLnFĵ<^#G oވ x>yoyeou}w~eOԿ_?˻w9=tw;#r_+1! " #̂`khwa?}4S\B̎AVSk(ds#Z +q&pgq$9P ~~n$q94wznvo^w{~}}B8Αa[ 遝C^U!r~tY;a}w0Q ; g\o=OAB1{B3oeFjFw8C(^wذ aqr R…1gzEĔsh[,Y h|I m +!2 :1IyaH,dbp +HK盈z%V~)*cjj?Z!uf!oPvN!n"""!PPOoh3oe o8#iGvfy]vnNlAuN#guK_YI(s+%'8y9k/8s4\ +OOI/*%b6y2ZgS?9Yg lsI 4;z{)7uxwGG`=C9^{C)?twM 6ϡ~_{}CiJ/ 3rw%}WJ0lpd}J{|w |`6&>67ʺ$?O+p5yjkWe1D? 17,z_:ĕ|/a/Ncz9sg +qit0Arʵ^aqrqTw. `J߫كt>øO؎ϑ\{3g8\SK9k<zTRT>oZnù9fF]n{O<<5^hI[zIKzKKxLIo\S@>־$iZӭ|9bY5M\A'Y\Ayj0/6fNv}PT7)'6aa]` +(߁XL7U6aB[x7Z4R+8ib梨(ps e bY L9ckHVae9XRMMF*Q.\\vH7e 'J;TQfz">74UKXU|\"<1voD7T(#vb=..`҅@"3>+0B !n?eqb8 u՝p'<[0ӒyRTTQYlKmI&*BZ`(՚lpU FPWI滜G7]tH5qN4qjUO@D;m|kp-lCDoC-h"w`K cBbb/E/X'[$u5 i5Wm:iG=<Gr)uU4hS*aȻ7ҍ' +`!hK>g̀bq>oW C"O퓌 :1_:sk~XT!w-(dzym/D[Fi4߄r2I]u􃁴Nb_Ԅ_R>Qu29 }:W}hecJ4=`jϬN(bD^wIL]WI Wf=^yH3ʟ45Q['*ŷi] ½r:El2 %a+|Bb J[P=^KB}Z {kr̨a;)Yݐo8vjSLCv҉g6J01VcZ"̕75OlJBG#**?<60O>0LrA#[6$] >n ʭ wuQ]ޠ= r$w'̫~'i,v롴 rW@ӊJ;Q [{'_1܊{D'B~%`ho\tb婹]?6ÊWTvo7({j ΈH 6+RJӝh-UΞw;n<,eV[:2x;o<ǪR6?/?;ň)%p-TZ'8a[oWA 3nZvh?t1'l>V.E&UW}wg)hSpy [S16VHcYaS'Y, +r5/Ftgi?7)^(ґ|\M=`sP'B*M2SRWT+<ʏUS^ϻzr[6׃my5/mHrԐq-0椋AGUMm cKu%֍xFF){U6}[ +0h:70kX4: +ċ% cPwG6Z6aۗSJ["?br*F %iO喪\:%m&oa/ԫ+y&9ifTq@@,35L "|!HjN]Aő =~m3Q6K!V1׮flymTiQbyyAU1Hh$k6GM:6BxLY mԯ,W? +])VUgHaI={DMDgՋwkz'{/ft;˜;wO;wh&mゝbꑇfsTzj5K(7=shod; *e:fOCսv5}Ni?YW^Ӊ%ɼ;(X;$Z1Pe"Q)G/.4O.sspph[u?48?==̓wrZ*農^Rt%Xh%Ocid 3û3xy߭rΙAFND$pt |H|woH֞sw^g>yo{>F8dr,xp g] sli 3GALfJ#ގYR3@Gcz0Fi4隫+"Cɋ}ά6DWAKB# x c4L'K;ƙå\\CJ:dC@BYye2Dx3JD#D{cX C#dcu& L=+%0#(ё4)Snb4q(B+*~u4R#3ޜ\P4 HSR< y%2Cw"޺Q_NGhsDtLf4rL,1|# +XK@'Q6:?yLXԡIJK+ 侍ʝhjt"tFu6*0cQkղjz34OTjin Ø mᝐ0-LpJ#d:= +z@K)UؕIE4G=řG-D5ǏZb _L։\tCj/aLJJZosrGYo]k=;5q?ů9 ,:ZӀ)PʆĊ+*i!9 xV@;BN\oaSZY~r[wO]2װA<|)wQ'V.IF.S~LGzTF>GU}Sҩ>6B|oW!IдVѮM,7nT(I<؂ozt0,NA[yΣpl.Y^vTW1P N}}h6H C:A^=N?g=[Zv2Iݣ; ,B)vO|u<}KZ@&BmRQ/A*x۴ۨZ-Ӓhbíc +DBuyl7ZUj˓I;am;IXtLZ]ê Eڛm17NMwvdt}4kZF2 el@mIC;u1&Z k@~9+`Dةu7qr'tvrXPy{W +& ZEf +^3PNv@7+6J9_ӎː:[9qҙƋv0.!ɢZD/wUl)Z$,@c)f_dU$Rr9 S ܼFT HGA6`~YT1TCÍљjډn+#K(U0=@JN"6<&W:|:3AD u>o'g9LU^ *8.ɓ!UP2 4$z  XgȖѶM3s,@ +2Q kw3QqZAUkl5 w'(X՜JhVc+LMCJMp}_Țؤ3*u漑{gzyU}:m:_a=@'AX"zO"եg@nbl;W@A6S@ #ZȘj!?IcIfF"eV`kFHgJ8{L7 ֳiMx /WIpY"U3^}wsCtx5{jڈf +١ 8mI1jq[`AK{93rgH;|RFGhWCPP?<ī|3_ʹ4V5JgVu}Q^d.&o 2*L.=A#%eŧG#s3u;&N%KVd KG{!t&YQܺMdlVQnieHH=%Qm GV^nnjf 4˝C6R5uJ*UJv!H ۶ ɂ~ >k*vH]~[c\o +DmNN-igyǯ+fI{1KgϬTJ!Zb_7-DShey09΄l5]mipA?ɣ萰炽A"vKÝA1efQ@${'F]u7o٫S;Vma +ӛMm NTW3٘2G#Rò>{Vgf9dS7|p8~WZ_g?ZK|nl^ر +k#N+]Qaa`RA4b` apޭ,_iGLc_M{9=C9C9'*\HXP>CM$~aznG?89=[{Я,}ޑޝ\٢ki].73]K4|.m͒ $gF1Ց%?!?;Yd3@D2h%,o@^-f/w6O9Ww_~tt-[ph|ONE91pMqL;Vkפg#E@ J%u~OD *=}ѮABGO=lOjNu/s93l/(n`lzYn~LT(CʑLwN{ffl+odGJ&xMU%1ΣK#Е qό0aמ@2 #,W+CFUS.'g̚ӦEiLY{܃-zEg2sd%P $ (Hm,@k]cg-hUO O2vQ>(C23[|>AnSF׾U^\\5tj#vQ}Vd>Ms\ѧ"JT.5 +j_OYԦ&OkJF/x/q*&2Ki'^$VKrJoErCȡ&*ySN\(II6&6sh%:-ks%>C8kOv=gѽ PШ}SjMwaw&NԻ= Y3*̶n_I4['^2wCvkp> ޳NyOJ&|'Ƒ|'ʑ|HO_;IK)V E&|HzQL11Ψ n8{M%zMMXqy=H$>/Y}HE#lEI:I4*$I~ Ɲ_N Ų$WmqoE PO4"%gxX +l8Q),GY 1Da*%r*O]#j)QyPgWbEf%xv\Xt:*hhP>u7rʆ%ZF.Jǽ?lQij~/JŴ_ ²4O* 27H) Z]X_6(?`z[ܶm۶m۶mٶm۶m۶{nwvת$3sJ֬1*3(fA!|7mQH5vDfT(hy{ Og8\jXGE +>ͻ)/Y4+ǹY9U ClµLߘp"?T1T~U2glE3gm &e 85ژ U0<X%Ui?h+I0*0+LiJadi,C8?<@TK30#C]~nh(gFVV- cGei1qcR}[a&uCqB̶>rURKM K0 +h((qZN_gAx#6Atͭ..yd^vTO\o9Q~ݶp.Hx0_K.!>Hj5 6/D9>v']XY S0T/CIW4\΋nՇ{{{ں }I>)!qSiSǮN{ '9 F}*Zǯλ2`XgXojN["!?'gw- CQ/%4J\L|N.H[v!%g./tf SL%zP8-+À}Ǖ I`yVĽ-Sd6vLųyRu~[1dR\e«|^2RnMaiƜoKېG3Cc{T6@@1":"FfA1KBlVP;KT⒑GWF{QPΠ`_3V!>Qsj8`@R-/J0 +6*%449_y耼$u5 \6//j*#+שER"wyvg6`uI P}ȄS,|\!?V:2'@XT9!O+ZeۨL/pi~$ =:iv]Љ5/[#I}9wyd)csd8W"[QN+ĺ1\&. 8ng- @TT3> ugkW MJY+'ǕBc4$%BxSEswԅ?DԄ[6p*XXseU%޶'p`P^Ȣmt͛4wm3Zm^Q +t}HL6>BFGpe0b\941([yMȓ$= $_ ?Ne fWu2܉7Ĵ/ fr~h5|+},"ΡNܡlaW&ܰtC7,(qiliə5(ޜjGg+6Kuzݚ:Rx遑_%@Zpfy=x`r< +E&&qj25 ¾kkVlڛ͝mgC:c<tEh24aGct#JXЩHn`c >AG`HMLs Uh8P*b >ƣiG7;; ܻʦTOLuTW d@Kچ0%5 nZajzvnud<p7Ip2aY܏\jZ3S6M1W#xc0Q#f]M#ԗ'tCچ*jM4WLU#eϏͮe;EqI\bo%-P[Y6g,&ܰS-@yXT4EOVsN d̓ú {Fšg|,چ`.QΟ-S*ݱ.br"5 3I9Knm{T)ylah*l2P]&kձ&kn\gTmrm;_u79ٍm_.y(o҈-99P]w*F?g- ]8+ݨY.^xZgcy$~dp|#8C>G.4bS(Cm8>to~GF/\w/#U:(~㨆VTEgT\ER[;_ٕ6%3.'z$tU}A*fK].억ѕyC>/ ;#\BΕ-ć^-BzV$~pRoulu -Q N{-,Fp 5?9wGru&WXgJdv`sֳl#$$}ӡ38/gq+kW5wG{u7»#~ڏ 񟹺n9 zr:YcqUs~b@bf]S>U;QѺn$=6 ijʹ>1]xJ(dyA8lg @q'0y:}h~<2"m5گLn|jlig']O˹;7kX3 +ZneP_86)'pcjhM6~uEP5S,V^enY9gκ}HvهyoxoiL\u Op,/1>ӆ 6CPkGbaU>Qdޓ[xS@mQ/@y$o0 p}:/͎h3]kŁ/c;HsLV뉰@ەj?uޕqvF,^G-G$ +6'-ex]SF/JC7g]z?J?W|j.WV-U*>p*C__z|ꍜ./㟛 +]O*+~=^yR $=s֮IoWƛwKzt)tj? ^=K{I-=pHҖC3c{ۼF=00ab1ȻKO~rM;>pg3W>yf._jh^nciqoco2Y+% 9D`6\ {vM)8u7Rk62W6$V7O[ұ;>S3'he0C-XQMidݷddF3O~tT] 6 kzE, HfV2p⼩^^u5]$ɓ~ 8.=h y ^Nt'?ʨPQ{=ҟ\Y~`6y>KԏDMMһƠi馘T W? f"Sbe"4qWXSg7h_N.+̘+Rs;VA3 fTFXC/ߩ@B"|-E[ƪs7)-& +>$>>z J/a */S*,X =X@ڪ +qc0yUfmZ#oVpk +\ WIm\R+,_e65e+*et'JS"9%O^3X[+Y_* x+BU TAW 8F&#J*o]Jh,B(P(aÆ:֊8QvSC>\![Lh2. 0a 1xAkeh-6لnx0K1jm +Nlx#Ax7n"}'j50)6DY7Z 3=^B$^:čSy65ʤM킹=mzd}]l:S%րꍦ4W}r2\8Ðwl{cV_5m^ +qȥ{CˤYnJ[RdcSvmaYuŹg){0\ӟ9gsgy RW?M@w^J# m걒v!!:ʿory ? w lۦo,)&9栽F$޶j-oҽ:3 ŊoM}uv=k$:[#MpɋkGR,[㘲ҎB:<ψ22p ړҘOם/kUjnxjN x0˚p\BP$}zYlp=ぷanRPXpX72*/X siQk{ >{)3]{ISoV ߐ wxɭS:V? /S)5-@ _r5;l+l~$%Q^AoJ[5^E/!I%6O(lJWEA;?T._VΗ.&WBѩW:ES;Et3\+wUΛ;|n˛7ܓ[&_,_V_vڅ 鼯H4>` +v"(gUg4;>`@n9Js53TTگ\De3k'W8Uзʋnka~=0Š &Dkh},1$a/4kzE5*#JՎSC-yR6nHc#6]<"5O!<tnwx\@G4?+*#a]{JJS + +}ʔlˍj-#D/'2JεCEtx-wm-Mk۸.dꁋ:zÍg5ŠY=复9sB1%rvI+r`MIpBo'M]Ca9\ۮN93xAJO+*+1޹ z:7x 5$J6x^uЃ4zʠq"P" UP6.ՃVj>` S6).w%mP׋ F~dţc? Se?i]b?#)S"Ǔ5`v.zgRv1vo[7 -e~C '~ɫR_0ɊU_IYWɛYǟo(/CLRM rݦ'h +4pQ?j/!<8ᑍ1J Ht:Z5?ӡ1 yT]jH7ݘ`Μz?sF.@"|n=1n\7^j 3ފ!  (/~lœc'ۿm6 aۛП~; \l7e|AB@ҟF~ԜU + ;0b3eeUc5.Rbp4{$&-M וjc|D>Gwa~l^$>Ian5%ٮGL'syurovtx[*;5bf&a߆,7flD싥 JBO[^8]+foZFYpެnk>vKu3` N0jI{̜xo3_G12k>wCijxt#Lvh B}n?dxEt5Vhtu}5BڇȞN1ܑ<=VgćFy&&ܫ {877UTfJR6:SdʅT ƫ?xCkF:qCmI޳gҟĄ`YYeqݓ3ĿPߙT?`-KssBkzJzڨNrl vr)0^¥#׺,jw}MDPa/W~Bx13D0GævlAHErٔҸcX `wzMi { Y>7yNujwx1jWHڏA|r߄guY1ufA35oCM*]&_28|F&>y9q0|qP|<'>N<;|%Xv!9u$xnoe|p;(˂n)FY/la:ElX `?y;|,q3rTg,UYTYF'I=_%'GXBJc'=}v6f3/0>u/I!,=Qkru"TjC][LY7P2gW-$5k%XD|>I[R=|fM)\˵|2e%_VJ[O6ymEa{R뀗j*3ޚӈcU]p0FB% ewgD/zejbm.lDTqνBZ`FNZ򗎚Fs^ަAy38iA +.rs˘uݙe8Kxo(M{]lӵm?z[ןe?z~`ע Ȝ FYjD&6Z0=}U}5x[k>q3zf%dZ +IelLばC]t0P-bCQbj\4jheԱ„FOӨԹ & D +*! %,*l‚ +K5Y Q, +jz;KjpA z2eTeLhuP19r1   +) MaW\zE +Ag,UԝШ ֨ƒ{qKa#q(/]U]* l&{ejMjZ-4ĔJS  +hv Z6I,ȅsq V[Z:bEJ*+E a6ȃv.|El~Ơ%eТ(ۥS5+4"DM(Cת  zBRE]%UTxO@"uae$T +Y[ŠQ1&ֺDmj6auA8SsOؕ\ ߥQ˷NՙE +R +jXIjԄwӔIi,مZ\ Rusxj\ WU*EnTl° vm,\Ii-D==goAsI!ۘ 3VTUhyMa /^zsԋpo$9^i܈AM ʚ:6wKuMĊ$=_LK4UE+g:s06EfRؗ }\by +PQ8_HEQ3iT[[X(3Ose&Wrm~D:-Y&/p+H"b ,Vlݱc^fKd2PlIRٞz;#N8BT 1)5%Ϫ ̚ 1NA1p@j3wޠcɃ̆9X$;Ԃ^v`5܃mu/ fÄcbx4ͫxT]߅жc58Ctayv9ƅ/>: ,$^I8ՑI>Kގ 3Bh43lkY('2LkGl5%Ox%I=)^SlJ!z\4BӁF ßy19OC덮pY_\GoO|rdO~O%? {+!^YҮm ƍ:pA#~}ـꜶIjeQ7uvKnl"/W<y?c'V| 3;;^*ZUci5YK70oҲj$7` ƩAYmF҈=p, +z7(e uYvh6wTz:ҚߖpI/A6Ol"A3fB:=hvB4%3pe±6Um*&t'4a+Očds#QRթm(돳&qU*AN n|*Owȉ g?oRSʖZ /b~fb c?(C=P:س{$@LK[Z_:҇rSnOb:[Oˮ*q+m[`8jaU<Ο{Jzb Rd{ҟ}/4~f"H"Ba@,0&8Ga+v1QO[x%lNDxY2a:Q2S#ZB&RbQ$T@0*. +Ck\7ՎF +^H¸)9DJ3[OWW +_RaeX8I'wdr*8<9c~Qe}(Keow]pT{ǒƫ.yZU'1hX}ZBU5|RM3Yc.B%~)hL;i_XXUzXʉV3\ЩH̕8Tҥ^7,; YJ ig`Ⱥ,1x ]6|N$$;Rbk'XJui٫S()" _EYqH6O?A㷞[[\FRd+ rݥ!>% I'[TG#%'~2 'q3)bd3 +jDz~hG8̢b ,F mzd=HaHO>5LY1NPF=:!O)!74xA@z'J +NfF7l- =؃y}.Gcڋ8?vXBu{K/(Q=89f{hUJȢ:SY=DL{f<:кEpys,Fx_MR>(~5$x_TV@|7'-C~ Ӿ%!AK6I5e;]ɥ0fs7]' usCa!pඔj"F=Lqp-7CxaWNd[&CDY?OP*p8#~ËDjK@cIOt$ңHыwF.Rq yp\6 %X{YN9ƹiYuw'܍ͅ۹It$]ymEMm^+rn +L|*0%8qM`tBXH 600N|V@ tCCjX{V:{+7~;=nX\onOq#nRj.o!4HtG?;/Q*<=跈w;v$H0JwrZԼy{SD=nw$yzkV8ّ{MwDaoؽe"]^Խ%{__|1(+e_`Rм+}ϤwﴄX}L{lcL<&+LgLf?y7ƺQ=3̷&#T!htM#T3)/&\E2>O/-Ͱ3ԋFFܟ3H'*+a0)ܶoz.w~߄&"dz i!̟u8Y6h +\YF +3,ܹ,ugtjƣu'R3/YgW_NB{n`o9h#UH{${Y&S5xՋ&UOy%S)6)>VR%>L]tBcV vE>бؕe-Ы^FyAړvp!Q1ڣ er=C Q@i _DhpX2y}1s XRym9< =Ou<= + {'!efcˣ!FՏ}w/{w/wp[jRk=,!ưǰ6~d~aot~P~IJ6=gaq-UXVkĹTȯ}q[ҺO|#8W <޾XgsBJeYd"# ]j>h)Q8L4!4PV ULmsWM/=2W?B5a +H70xo^nΖ+|}\?OTWzE +rӯ .C}I?BlٺHBfy@.N +z|p(3 M[N=vmva.ҹh=?OS +߻=)k8;;w3+坃i-Q}, sA&7Nm+-A,0 +b ~~ hIo5HY@ݬwbKު9JmDlcX7^!bK]f*$23n Durwf7G,jzYNxc)JQr]Fn\z7MzE]8 OQUi=\ +78_m(g[QBf[m ڟ)8H N6eߝ|glܿ9Ѳ?Ja˦g +uC|Űv4 <_ͻgQYX Z +9E  oq{r4Jψ{d;rўU@CQYo,o#}uԺtA7 ۩"&}w |11>nS4*75++9߰{[E?7Y[=TB(IWZa6IPG*B;V!ʡ&E5mJ]y(!x>=lZc\#d/iq7P+ p6 oPN +sW|/_xϳ^d61?ieSK_9[W_. |!DN +d9AKv'O}] ۙ&OGE3n&x +,z8_90[XpFd(w q{ƺDUMɩe5@QK>_mmv.Go>gҷvloޝv?itb&LZNSo' 9sw!~_E\aL 5rpg3/7~g5ׇ)Hu7m¡ד^cZ \ׇ»72oXxV]z$տh2zƚQ~ \SG5d4Io% #$8dY=h][]M%iʛ/i{3rf>[jI>)xw^'A0g`?$샣?!oC?SSw.7xC5w??%Xd wj-fȥ8=,KQ<´KtYőV~<ڞT ?y蛑Gwnէ }ַ.qᆳW=sl-ucӫ5fyu[;Q{f-`Wj~ K$X$Mo|wW^7A)'_?ǒ,פ8g}2 =*1Ǟ{kK/?;q+k {zM ˇq:tTNK GEW=ᕘעXFaߛ|6N±&x(5hH7\grZ`:ٵ^g +GD +y4;gC݄˦}6Δ3)/} ,J +ƽ,-2!iʮED- +t3j__ om>ʧ +1C]`}RCbZ7֡4I$Ιe`!9ܱ(yN(nzY֣(#(ЏOh?P'ȣ$pZг+;nWr|4QB.y|dTjeҋD*T_iR>Ac~K94 oZt +YiW[yw>GN YxduIJ.a%V;QmQ:ǭvެMrX#CDݿiu){qD) v|{ۀ_epD&Bvr3SIwTOUX/V--~P?\w=?pBIŋSZxU{ hm }KKF9V0ζmNi 2pgu:0jE?P#xvVQlTYE<˭GA4`*VuMe+E<`BF{qN6=(䬢zlCR{M1QS*rҒܵeHBr͉'`NGYn*0ex,!s!@x^E?rvyO&A±p|m+qB#w,ab @wfXA+^@0HrȰ"lqUO&hƈ9>>6./3쀂w,BC3zˆfmAı|tIbͰ[_͟\=[~(RP(? +C&_##ZjCM G-Y=j?|ԖjU M#NkdK^`}_/Z@䆼j0:}0WMz >5ZػA \\jQmf^uΣ8}ytnW:]O=!m*Ϥ{w#L[0<{X8]K%~htÄ9rXl30CtNv2΃I<_z[+ "%O+rĦ|DW3/?Ct$'f6uPC 9JKF6H-F4a#r߀^CTx}0#G0cQTn2ss.=Ixku w!w{/r{BrPq+orM\ggqw9%R?%: +lޕ:2m,QO\po> -@<S⫽lˎ>p 9sK~Re;ؤTkQ)[ۭt=I"ZINRhʄ7e +9m +ʬE) ,YF +1ŒG}"ߑ@ՏJەp =K3͇crB=eiE;P;A;oA:oI⴦]\g]˔ ׏;a(8䎋$~"Nsjcu'Cג +Uo@5<ۭڥ|۫s4f5oxv9rz4g3*C_]EL# }ŗX5%pdS:(zK|W|p'<@ȏ]Mf%ls UA嫨,_NP=CsW5\*$r +l:Z"9'gL5+$/.EGL쎷+ؑ5P56x6:B>B0p`VTmKf +SUjbk TUk⽒`ʧrEPc&v٬v9P X0|A>azXB IXz'يҌ~a=> +f?2͐9hc>o\`v5ƅ +.ͽ͖]l&_m̍o΃~3ɢtMU]8k{~=md YչmiqEVN4VggeUe%UWZ|$IYnolIICܭogwfbȦGaģc1n4FM}qek&3Q8k]TYۣٳȗ^L9j)[wkVA¦:bυۼ\-GvN>{i$N}d(\U`F/uQ4@DFIuYQ#_Fp2Ce<j:氊S? Pu +HH[EY Z Bt4K7Y)F]?tKtеMT"}eg2ɓ +=3@y-,`=0qߝydj MR_ f +Y˫yZk8g[ЌjH>R#vވU!;|Go^AY{wgyyzibqc ׄ7܄*{@Y"}WSBܳXh{6f'KO$tFE0A f U0oYl!+fA4:Γ/Gy=-}E|6ryw|*k,a} }e¼ҹ"ބFHREIZx3tky*# mE}ڲa_qe%P‹ %@%G?O90[ UD4`L>=[M, +mb)\n. =xw̏0 +>{p]w9gG9.]OO\O 7d3W m,si%oz;~חĝ͇K^jV*)LryfF\~rz?s*8]PΖ}s SdzqLmN!2%߰;Œ^J3|*~cR6[װ_كQ[G?,l7ϡ%\e)BRV]~%79De3>S$6cv8UKVǕ\s(>o>.7`5$&>ꕊK Fn:3J[B|ӹm2܅xyK'xԏiG=^?$#M{s~Cⷪ3g̩N0]UVz[.=mZ\bWiŕLEmxw4q+ d\aGtK!NV^`)VvE_@r];}gTKfvXP00̤3 $?\MBaims\Ԃj,N_ [}ŅQzE2_)#& +!163Mr%~E&K\F".?1ko‹d"> i);;?3)_dM%mAHmȡkFi{[B"j]4W3e4R s7/ >܆"e٬gY LD$Z:1),x`ED2`~3!ڂ)H0rRF!%{S4MStRDԇq;U4svf=cP4tC)]G,}nCZ5PWUYh DC\Q Q2kYMŚ_#QDW ѫi0MZ%[f9Ymvf|yF>;{UV&x-jBPua$lhY-u[Ym_gמ,+!bMU^ȰA`MRŲ0dK)EbkT^zƓϙL7jk'ǙYU`8S1TL"hl6mּAi'*ce&%9qMgeVFJV8}L veB^Pi{RlMJhXE% 7֘3Y^Qv +bJ1*T +7܅rng266z!$>&|71"q0o}|=,Sk͠, SQM>p=%&m! S Sq_^}߈!/ ɸ+3fXi0&1y.%UmfZvT?eHFLW=KF$* NLw:WvJf|"㶦R1^`?R;ܳ,쭥WfҲ@OÏ'鑞Rg|Wf/^msX +' OJKJRg  +1S⣆J@v#4T!cQ2Bސԣ0iCa@)$_$׮Q/](8PeÿX@s(܂f_|ij<(nGSpjQ: &%#Gja zHt ca*#.p{+0-5%B5ǐc"- JBdO"\Xnώkؒ4Wr F1N6-zCyT0qM)P[Ci!{pӶtw-z}89nO;7B?/@|CRC֣8O[ qmS;'{KܦiAB6ʖ^+pkսTNPr6fN͚$5EAGˣhPDvfd_Wvl "zTHP208\G1F崷r_}vI6,޶ξf?^c-ٵ P l ]"hth,1ukt¯r`\vs7`[9vb +:ooooᡠ!txh媑A=dDoP s ['ȟY*՞~( + xJ!f]e˜:6t1L@%MkXԢ.xA"ZeVy +qhK.0*Dm/04 +J_}gܨt!*IV)4e}zħjolll`^^BseBCrl6+AAb zWU0ѣާ,Uwn=v9Woo +b_^u*r'@YEorOG%Nb~t⪢36_Ր>qnZQѭ8Rl? vv_ZıLu$MtC OkzĔ7ț@o?3Nc 1Vϼe[!J aGϙ)bÉ `!*%YnOǞw&ؖLx!uD}܇ \5d'G_h&,V/;T5OW"}&Y֙UYf;0,̘J Itτ`+F^pCuu~v@gdQ`8wMC9ԛT34E~HEn!ϖIuUYpjӠ4yHFX `ib3Jͤ7RgMO@ݺ/oCm$ܝjme#$M~+eGVw6˜Rw>4is7jGgO[ӧ\izL (ѓl1r}\+5EzY->E*EVT9rl jt^"fYpJ-%z9-[|$kf3dj4zmaGUPp!!3aiNR +n۟qf|.PGJ )m[ķ&x6cjb]ѷCw|θ#E$;V(+F9A斀 D 0{Q.zzGzx8 z%~85vcY.~]^Pwiax?`wK[=qwY\}b| 6Q%R™R\y:Zan8)jҞT e1:{'G +)-@:O bSeASE.q^Bwڏ Br3/@Z%ߠY{Si(뫤mdnPMW9I +BxH:m js^1/4KY|e: `E2 +.aBX->1~"+9(KBRր6J h\dN@p2p$!_P +`Kxi-?zb2vԍ>xUN6UVV7fբ4 Lt EC%_fjޢYsnE&w!]U Ӽ&$ܙ>;kwMcn= +$ӛ)uhd5=}f}5s?ao<#Aq\/n!WD9 e{YDLC~c0h9{p<_ȁa?>%G{)4{m"2P߰/'ScK;cIvZ}%Ȳ'͏b9&$e<Į<b{mnhUҶ4R`E¶Yhl*RkU^ut(rT2Ts؍{8C>倅$OoH< õt4v4gRvnv-s$Ytux6T֡Hy|pE-鐄eq`xM9#WUcԤ)o d#(@hVg۳rfl:L<r*ck蜂6sNwM0~`>%"J0Ł8d˰E۩ +M4ZÌ]VfuUJ[R09Ln|dF>(,c↝܍Mn,\-&u[k@XNC-!̅lPx* 85(<3?Ү:9ݒuYOdJcYw.1QRl!E$(0SP]H)zC;@ҴŒn`F N1D9CdJ5xx!(#*u(W jڮTy(DeD%3Jh=uP&5@u-}#*)(_WR/±NJ! g 0 +2%D0ĝd7Xlؒt @v̢yMo2+؁bO%w+fz@J7 +dsD3t]i +Rjò ] z!I7v|x` {<{-1X4\{C(YۣUX˕t +:GM%Y^{2ox)vKDHKwѵRڌWz\Ѓ[foW}f~܁&9h#3ͥj(R{)2gʹVD nt\C)Ӫeh!ho9J 䩧a@P  {$]FTӴ)HL5-6u|њ@^z^{r3hҺ~ngZu69WZAP \hcSzuاw|V׫Lo9;R˱HE`|J?,R$ w3g{y`;p@Z&09l- !h 4k38&}6f-w3RYmmrsf'<>8ʡt%d|Bqд&M ti<D2Z.poG(Iv}SRcӚjק:$Zyǖ5,C_k#rRYg"9ywV3\z5Tq 0 3F3.KѮZ$Ys_dۥoR4B7m'u뺌j;~#{ya p! E῰(@WO ˺<2b Oed׀% [;-jt9 >7ģՉ({*NKȑ7g^z J~E'X 7ڄRct~SjOosfls`lsdϸ;5sdtw`;0=6=4yf?98/<-?]vfdђGAH𬽹&T*[K(~]-Y\dh"'(.\>4Mc HId|1, {,Kt{}w~/8d͆Æ`1b'9<q 0RTF!1M%9H\`f')$)Z +BYÛ:0Yex){Ø44d~ou̦L$Q rp\{lK`O:l,-j7VQ2ݟF7ZJu@LIm5RY)tq"mi9E}seqE$̑0QxϋOb@2{Y˸%uM+U]% /%[O. ENZ ҡK]TcQfpqP -8#IMkEfRm$;9EժvfgZ]ROnfR +I{49V2D1 vy*MuN$}]#\alݖW +edǬ> g ˗f +c ^mgoGVC~ny6;'O97a(.mqZ'=" ۜ׈xSA,H jWJ.=qc{/]=I򵵫}?}%:!ܱfP'== UukSJ묲}}XGW^zvhg;Dm5}n 5gb*< ^,6]1dEdShh;-B#տ|sA3PlmYwDˆ'B{Hڵ[~fx20 +LXpao3+ e'_1wA,@^Atjem*21 3i^* |ɃV6ri6PdD]eH۫)ÍdS_bTq92dG2}vem0(tݟ(ٿ0 Wf)0dgzGנ4Bih_sܷjSp`#[Qfi~_ WN(QƭR҇>8"9/?A,5b\+% p`y.A-o'jQ<+ X/K^<PL)5Ng99A|>U9Ux y;M]W'g`~-3e'd1Dd] lB[OrGlɵ'hrq\\]v3ͅ 8TH(c'Ҽ c$ZSw!lɓ ;plhZtDkv]Xd\M_`1sU[=E/!c#颣;x;'z~74:q:?~͒јÍ=Sը1 -Y 4U׭kNL^ݎ:K?9`9"gR(%. ($M+OO(dQ-oYWGb>CqEbƘT 9O pIꁪꑬ;tëW nkGtmݢͮ+sM&ySce$ѤtCkTnTBpU"sXܗHFsʱ-2hEAj.K!Yw,yEqgߩ3 &IHcT)E]b xYLad`Lr;+S:4Z&2kl9'լnK:&X=cNG;E82še1 DKcvXd-#8+P Ѓ`bC@/X@Fh):-ss,B0O靫#|1kz&K7Ћ$qLEM(a\0fX14=gX22iU=!h)ۅ=f"NZ{cmػිubr&f ڜȵb|lBƜ560qe؜urb3e&s[A1s,a3׫#dvAQD:dܵu~9 Gi5Chdi\_4#J߬៹B3m6}}.26w[BҔy1#J%t /_ ueWCch)h\K}&ڠI71DMB۟6"BG#vA!9~ESħ +Ҭį,K 0o_S 09PXI'=F+ib쬅:XBҮY#p-h-HH! +X'۬\4vVBAw':G$Gsg;ٌ$Q_ +h {al1<$OСҙY9HAet#cռQ'z(NY7f)Y&Gq$ hοU+v҅,][zuG\ɳR/')㪺6-Zo%CT($Sh)'$ɨfI:iJԔwyРM[@>`γ$PM^^3龄BPEŧ!2X\yv7ַk#qڢF]pO;QZDžTc]:J[˟y1 +ꥢLQbvn8Ӭ,Do!}붯\Ӥ~0 #q; |y:=CIiQ7(" ]@[zU$n*8p0yAaGwE`vw-!*rLl˷cS +yoNĻ|[B)&ns$Ȍ'Gl wmL2QjegrtW^Lb9CyB$l~a'T2_/;=b !*ʰsv{A맒bN+=,<)ylAܧlڱܵ_b~,]j'CF̚'ַT78`6bR~ S w#n޾ qW{"\|k`p +# $e[As6FQFYQ80πt@?(R^$*dEZ -,IAKQZ  QKNkl7Fҡpt/é7!MԍP$ dCr*C4ܨAɤK~LfFS}rC:i"ҒQCB<P:Dv{Cٙop@oP2*əy6EQVCWq:PuCbWwy{J^ 8mZuJֻ;9S*Sy}|*E5602$|ј 4Mrָ :Dd5x;qthHY@I> l\CY<_Wb|V|n,YI_{Evxخq ޯ}pfvt߾ZI1$zq|`Ih,?HnY9&=lX&UP~#U[;ȍ~/DzF`xw lۇ{n>kO Hĩ}Nf*Ԓ YBBW"MA펞eZbe]&Ȧ`,D@ht^~BvDN "(1z~¨rg L]J  Վ*NbbpUԔ盇=|96Hp,p5,8ϑ_]h>dCjiJV}w.x0.xZ|\b{T{ ;+9 +~Ro^F$v" <"-[sՄIщm8<33) ,. D!HVRAN"%o9aLɠr5u<^vX +v#a/~\ +x[3uuRylSC}Lx'rn1-WlGuI>H= Qi3 +I #|<8DG<@^R`)wJо + J4 kE4T.7EC(h8s)O[pm)ID)o\[[Hy smM$) fa}=TDi +F . #f=ZS- Z^7[dѩgQ"BG;2Kw5usqgr%V+kYv䫿#4(( 3\p-XƑv|/}0tJ}}Xm͈{nN5Vt!!vg4 {b>D9/9voٗ!}54,hV6㫍N| DTX8UceRg5v6˥%'K-Ʌf1͂tFs7ܺ03g5 PV.4vB_WZ@Yk;(h>)heuQNѺz0 =Ү [gN Lrʼnd@W#YR[_b# Got9Vgl!WAp#iS1sa|#Č AOTIINUM-6bk^d344qH9K3l1WU{0jgɹlZ N9JiQKqfb7f={ +򹠂KJ\Õ59ȣ&(¾px)/sv; +z;N32/OA|ZIT*P)*\w![  z/<t9J V~.6C^J|)!gzTJ^^;$e&vwWڍy|KnF{G&yW'JM }4jVZhΪ4M@Y]|Ob_|墹CD|J"_7> ufeߪt[ܠ?3hcQ6)Wtdf|ﭱk徺c3.uo#N"ԣ{~W8v6ͤ/Z٪00Uq?PbtO]~w[yF*u/GiL] ;i~a'`}lo u=]䐴_ͥ|bʃ;*7C=o?1-^;VK .SBCSVA)fVCfs}JģaH;5s|?g_=hc+e۫\-#ɑ%B{h:澄{YٚHvX!\"z6 thqֵ^{'Z +KHHwL'cgZBT/iRƫ^$فչ]}&sXzg7fxTe̓ȫ5)3_rk=A'4jZa6\/IJ{ !Afe|Me1*WyF@-c^)aa6w,]w<Xt5ph޸ x4 cAj9Z;.̈́憷Аsnp؆Ql^. ]|-#Jk.T%`bI#R6N'mJvQCކ/r .@,?*]1Xٲ]FZrv/iz|/RqeW;ؠ-z^PH3P3bMy@gQ1 0.8^APJ5x˷KĨ}wwƑ(q ``g,H @ N.+ŏ&EOJeVGJf^Ӡ?HUYsD+aiZ4gGh\Q jA,p+Dé"Hai<4>&5YQ.릓33.K+y>֊Rg +>Cw_[';U#c66Oo'|؅4^y ^/ $! gF9[3S)^x +tRG'DC{ļ8+e_݈^l\Ա,xk!SF47Q29Q{QgȏmXAmQ2dYir!gMkhY,2fbgw_wv"8xxqᇴ8|b +UkU.Avs|M6;[}U!-W~pf +`iw#ض +IQZ6x#T-e8H͉.% NN`]F9(nOySUC_cO&,HVyK[Mx$>jvCaPOVДLWzerY)utQq$jhk(חQ-'IoDʪ?a$hcRZhvB ڰjĹ}leSt͊x{bo=sV_FɌW}(X{e\<#ilB(]ߧgy?um݅'t3•+_^ |50}d?O`U[HԁߥSüGNZ;MR>S$,J~s_Ol;ZN9"92|ͯ~.y{<Ƚ5L{ܫ +!l.} >ׯiu$1{GX֛jX?pyG?1/uvٽ6jKRtF 'KMMyZ^ M8F rJ['okXqN]$|Dԭ SH(lRI~J(`13K?H:F坭b'2oHw/o0]=D>{p㬢Υ\XW ~ZG%3 &{.CN [n:En|?%RWL\$ʹ$}A,Y»7CcHQ@MSM/_1e`Ԕ@푥T[C[] on(I}8i)zjS?ЬomMCCWK?."g/li&y4=R)9V'J,>-*);%ZKnjKFY2-̦y} 4x+$?ѡxm,(ih𵰩'n[-*-AKU)O6KaP!EbIQ{mM: P>hʼ(! ;WIwW}Vdݜ Ph=mf} yGOA :?Z-nWj?-ܒ~}1 `j?}Z|} XB]"A=}) ݑ w #A +oj%ٺ!8a7rk5"xavϙ: ^ ~`vݺ"@Jji^zBJu}B#آwBˑ|! +}1!c{}a6wuŮpFR^")zng,vJID!,HjـPPJ +!cĪ5 Ld‘U!խQgÃyA$h9lU"$% ZvBZ_y \YNcT[P0[nBm02aV!f%p@C<لg-PqMYpa|1)B% $@n ssCr72x)"!d#CrSa]ϑDYd+@}YShU`a'0m8 +o̕O +(/e;fT9- k5IUs 7l&a\Gj Ԓ[ "zH ;q0Bf f>^)[ښncW[\U[KnPXc;Ui]rUlW|IwWR|Ýo|89|9z#<^йSG]~#"(h"nmYjnm^%fGC^oz&"x@X zf!.l +o2vɰ$H}AXxJ8f:H|v@8ʆCX"D`]̠]&Tt\_嵪dQzW`2M}m?JJ0YC E ؁Hs>3N0H$Y}@C:Kz 2Icg^4)\J9p8ٕ`z°[4i^zNrAh)~$ #N'tB9(QDFB6dB/d9PqZ/j\1T յ<W nSa4"D)",:ѵS?,y:N;Qǜ*(3qtQIQ1tȼt"O3,48,N-zsD,kL)Q5VphHEJ9q(-9pz )]ɧvX(ef&eTeW&@!FUؐRbR\AP˝J"I:,Gk~iު9|~ƺ$#_1n%D[-?1j֫TR<ۣ]rRj"M7 J5 c:G- + +OXMΌc SV]iu8{p+d,$I9ˏ +ccJP T<*S.8@4f! :-@'>Fq[Fm_՘BsKW>gXhF=zS6k~ǥpRH))V=33kJa2vyX%S=Zh3IJu&ѻbGx]΂E5D+0cGz̳ԧd#8V6gqYKz^W7{"V1tY++2s ЙWyxB+!?L~]Tiz$ l9⊌e~=UL "DӞ%,U/e<\ơY F&GYL!nY|OFDbY_9xY +jQ'ajJሜ$xK9|\yf4cէB{PjՈ2(9FhQ2j2E$bQyS+K19ŕ˓e_l\ذ{/&ϱ0(GCK +"zWèf|gy1>L0'fR(?:'+AWSz{5ř;D=WIUw-^ÝBn_DR뷩S*_ZK!_&FT"/P Ja P )_>/Y6`eSjs赶z zet &굗T& x5ћ&_&a&qZ^avU!B5=5\x' +ڞ5nNT3b&vDfS5[ nOW Gs:U}4GegGo7Û}Gw ǚ,˂gSw8be[uLjb9F?H̶G +cZ8#yR+jIjkڻGN6 ~ _ I6t,i_ о "!3F.sqeJ[Oi*4^H~f;hof:Ӭ'xؙy?#edѡq`Jޮ瓨C80s Guo|BώnrVbp*A~Wf:hvc}4ۢ#5~t5=˙ke2W{SZ7k)#x-6H'|:}c{,@P|>vŧWOٽYpԔlsçĞI}#s${-4ܫawp+ %'($haޤ +eήq 5[ ߍjq +b([}2K}2ǔ@١U3Oy:yS:sG +ׯxNb,W>瑒\oPj.䅷 ׌uc.W8X t Wnf;I=3IV~vڥ]xNMmx["Va7NɅzW Z[JiK _zv)z]j~jݺVZ哤K"_vŬE㚅7gi9Uޔ˹ZG7K4fo\bN)S2޴EWBQ.Iѷ6^ݙ 8_% /o̟g^"]WS^U~ao)F_M"_sao5F_%_t ߰KXj2,X +!+fTѪ05 jFцyq( ̑ L t"j\%,@1y4ld˨ CcBbu(y]RјdF1ɇoGKE=L2]nM vuy<(>Mw$$X ]j=YZȶ)G*?霰͈Y''|>'](C37V1Jl`}!2g#Ԣ>YOGs*r*6Y|]SCBr%@?op+5\Ź4 +f+)YȜISQN Rc XF9LZk?; :1\Ȯ~& @{ŷxx m?ϏGxb^cŲ2(lHȐyISڰY%ߎd )rO\/j9o'dB_Ko|uIBKK Yo5U,`',|l1t:}R%LƩ +rNlzJSSi$, 09>hVx $$D(9GެdFS- RsH_^4yq" CCJD'ȷ?E`ts{U!܆NMa))SX I4\YW!G`vHjEB -Jx+~vGW`8J8MVZei:;X׽fkz9䲯CMM V^7;\A@Mbꇿb䒹C":/lDrɉEa0PLC0{ˆY(M9cz 77lzw , "Ԍɴ͈̍7'ģd$WR~["O,c kѠ-nX85PX=;]@v2gl.DZFTMA^>:+SDT`4b5ӳa<U$xDHkd$ |H!9/$h`JTTHtTݎmd +V'zN,FM|k,2J>sM[k*PQ[|!Y֪)Aҙ 0I@ٴAz6dbC wn2Dc fZ(aXdCEPsM"@I}p:>aR>"G{f(bayQB7Y27!4;5+}5"N XIW\\^˜S@]ϻͻKk .@As'e9;wA + _`|?(ũhqfZP@ x!spp?(XX"2Ѫ#,=_u*2_z՗Y3sdi+WYyxn+t_[cWHFsG`0[}Ȳ/dWiy0 Zu?|7\U '0 2)@Fb\(mb15E| ne;1oG,fZ "L}[M;7NSC вW1S(M"j"ˀ\#MrK=!]V]0~hJýe'Зw+P=GtBOZW\W_ 0yET^Pԅmpe=!2Mء'Ҕ/#f<,oQ5Tq%be.`y`$̔zЯ۬+H0R ξw^؟O=v%7}MkW,C;ȘCFǮoNA707,L@6hSSP4 t&phq4+=|Gﶊac +rbb5XЂdp>Lx}wgYt +yKbrI3)u~_3_S*eNx6|NnN,%fZ1_.Y㯓޸D‡;-K@l|T9%+i! lbCE8>Z!$BS@H_lZ Y"EaydAҳkL;||_#Ab0g +$tXJ3so7;-P!kK0Z`0X{4ꊆ-B>]AihhemkrSq,%K:z)Z#S>Qb=э1jϤE%C8.l!lr>![@]p֤Da>j"s6lu tG\5jӌ0}JTӟZS-ҀC3v!͛iRx"j5 'Wv&nB`B9yKa¬H`SV}#/d7/dM%Z' &TцQFtd$"4(E=sYH3?i&!tc'g%޳Av&#(Xg~0w^F8Kn\C1>2 3{4yk`-AcDlӟtڰT?+OFT?X߼T͑nuEdK8Mw^+;fj`E80|:bBXd3a԰%`J(.xځLg4; WDֺ6 +!5 *jY%'ŏ.{r޻H{",TUZڅM8bib_!mL?̈_;lU+KṱʼP -{ [}_&NNJNNq+5ԟ8!CY͌zj"h5|6kRK[FB`B.'y6se +?QwVXt34g -{Mvd9 +CRR௷ NvG7"5+ϱ?ViM_ "*rkR6=7`ȾgmG b H%W,2lx5hEP{p?ednWAk/ǝd$m6vȐQ=wpO5FtXEGF+&ɄnP#lh^AU} L"v&m.GAE"8'0*e)`-s҅SCnj߁L } >0rm̅}nؼĶzO>ڨGs,k-&抽[8UsPc*M6g5֠5-\dg=A8&+Q=8u!|ܬHw4'9*w͞^$X*hAu\6-Ík6+k0cC a :Ndl1kÉѝ(Wk[oz 9-SlDKר{JTg& <|fO+7 NG/F>"<$VV|'Mۛr=|wKf0_7M!!XXHeuo0=!`j2!FZ*flAZ71]G/zMj@Xd'1g]*wD;:>-'$tGMCŀp >~Y8쩇15wu-kLXKiQ*vZ*oI;4?A ́Rs#j vDs9(lWH}+"sy;WLɒQ @o1YXX$EK +zSJ?D}fJO4g΄Ί/9@GBŐ#l!})s]ni#[t~XKGbL4aK0T+&'Xe]Cӭ:J)IJ.D&acJcU] =zP8!d)/I*ͲxW+DV|)AǬHQKF˜CaL AGB0,oTw)ݿnG b`B?*"($,2rA-"ߜ 8`HȢq86Shi5ZDryހF%eLv<M?~@Ƅp?iq&"D $1Zձki2,3ףk0/LOLVUn'DhItI2|LjJ 6|;k ߧXS>";%l~:{CCM|9-0 ?3E&!ZR̵egl;֪+,o3tS?`5w7!o9_wvoӥ_i4 ` &[ A4+FDw!FC7! VG`UT;[6,Bf}~NZw>FnyܶpPzvӺylEEtЮs׍qGjqEnXlݜp`D:'jAxZ{gg~v աqMIUx-^RBh6`x|DںK=MrGvGUv3:ռg:Xh>t_ G{*x;ۑ}_Kx_!o3]~29(#H`Jh PGS༶ylUd[Ԍ AJԌ"Ѝ۵¸1aB~A 091Dq y ārZ_$QSM*Id"qRy pnsvbZp9<^WE< K0 @g[o1N#-ڳn-U;R(O` -l, [OUZh/.-/6H;9Off`g9mMGtBNJMHJII$B +ohm*hn Ч3_mY(q)bcl.8)§ *NN[Y-,D%MYX[S7eg}-ɕg(GWTquD0ڿ,/;Nx T/R6f-u gyLx/qBUjsX4Q.0/; [/G*BOs{WI(d?oiŵzZ8;Zj D"t5ZiBWsFƿ]7 M?$ht`ǮZE9)7X7g{ejj/du"wo BaᗮZTn^SwUQg:M|NjIcgXHe,djf46ZYSh,,ih^4ZlZJ!1]sJj/!{iyZ0VZ4e@4XT IZhYd98')VVZ- ~Iڸ>%'W[[g+"tYp7]S-hT.qH(]:d_O'Y$xzt+u.GϼĔ,R#k눪Q#Op96Ok\842 UjEfa\i +*ILO]SCW]'U͇M BX ="PgDZ>&V/j4j cm ȐʔƯ6|iKדOr @^MRm+% +WiK-ט`+`vnakGGv-רm"0dhimjMnYТ>HnuoO:8/`Zµ9N_9H^6EDŽllhaK ؉fsY/-:2#244%^`( +@g;hq_zu :j*MJY@#m:laF/ї-4uF_a#^Ygn"yoqd-_L}N*sGJ0pvR$X.D$C4 ZbiAEI:WA2Z &o +Q(}A9}!89S2A{YΫM;nM@(-LQdp,jTCy~t3m4rKI(,Aj̽R.ǐ=s.TuWA뭶ɆMcK]\U3=An[\`djZ*uc[}/j5D*;8'reDk@_ˉFsvm)%V|iF;:Ȗ4rt5uC|U~A_&-^/[h,ug +T3VlAt1 { 8ڛUЋOe`Xmൃ|kmUݷ`6N¶ C ૉt%prV(|kGZ^w_ivmۡ4p"Q=SLqƋ{Cg E,,n@$X֛!G& {*C'$r$]#=t4 "PSN_ï{Ϟ%xcU=yNyqp8H28CFwVV6dZ{:sC<X{4O﵂aii76QJY2XK($v/#ŠZCWȌq5+YXɱw̝3uPՔ4gdфUt&$_.G 纩y"<r_aYZ%hq7Tɜw 4.b wvPjӢo@rEJLR 7? *]̉͜K . =5cNU}F?f#x{) &rm-[JŞ3pr4N\ӓoD48zrT[3nnƺs*L)- +M`g(5#^h>$[kl>r%\hOv[Ȝ+deg|imUqptV}` +̦,5`⾽oTSNCq-yĀv':qtἽxJyQΉzQ9Z.AS`M EqL|ѵYВB\wR@QAY#c3`}wI* +Ĥ8n )n#4Y_tot9jWgrά.NHVw\tccS]&*CqbݝV& d|ҡ$oY_ȷ!E W5-o&J`~/+;U'M, +\ DN/slUv=)YȢ-x3A톒oƷ{}cRNB$ejnV.vh"ϰ9)3Gn Y"@?i\4sX%mJIo{>*, g& +Kԁ}|oLKh~{ z{LΒQnJ.H33nhC b#("^9IIovÇY㉗d.-KLhgI ,sѳX72Z\x`P݆v% +D~!>qW?QV:ْep!}u -VI~g[[o>.gon£\>89y\>X.#! 7?Ź秔ߛ>盔߂ RuR\>K1\l{P!,4uXk ?R \%:yr|%Q7v [zF=V=*ނ G2*k:<cM߿I^ֿ)i\6jΚObG`)(TN%`6LLq /ە>oY위A յ-OIr-Me$#{Ug!6{Ɂnߤ|1+U +n5lP@n.^=ݖv=]?&1:Kī8<KR]ܛpVߑ2&7kpCH,Vd0=Ti=ǹk{S2TDM+ϳd-. ۮR˶Lۨc+8GDLkma5X)5s$&1Y$!$=៝y-8=)N\@O;3_\K5WBx|Xjhh\K"v@՟nJlk_mot| +H#}a.sxޱC2*&sb%jdMiW2@ef d8 ֓'lT@=F +b n*^M/'V Йvj//:NHX8!ND,"!c(vh:AZ4?Uz_/w 8THIRVh#PuU.$P $èsA)S.@ȟ-K5RH#'߁|K<$} gfr72\(b(dP!<r$ \C͹HǩW-fsyiٙNXaDIuH_ddBl@>UC@Í>iGBZLD< 7<._{Q: ZSeKz7&di/l\wjHU"Y2gjCJ"d3|\`:zo"܁ɰ61<qL4t|h,ZTip|N^A"ZoӔ:P 1)c6d5$V%43؂z*q=Răb9K +̷|QۣoOμjإ?jni M3)z3Rδ F,I3$&ElŨ!{cKV'-=8>ćS.]D-[PJ}>[SG+Diw8^6 r~ QU,/ةT_u+bQ >q7go4wjNm;b#?|`o uC}D^hwgP^6cpcge_K/o|^گ |m~ .})xA89P[v!Agk奄<ǖmø&sw{o_#ȓċ~F*3 +ERFH3 +iѠr+?*"\! 1 +>E2J> h(и#PE2" ?3 }  "%DdQǤ`P P"K(N%]$oTgxO%F;rPG?XF$&!W ++T/t!#:tɜ2mOcԁgquJs6N6>@i_]=lm`˺z͙!A4h + (Vc !")1U;iOL3 v(l 3 :liCjÊf'IꇬE;ᰙ*1>tXNٛ>ҵDhE?HFLK |5@D@Ȣ.9޳W$[2dЮcG•B +=%E -gg;"¡x䎔0m+`Z]oJvēIva*? 2EU,v5o*݃5sGs]t=[a 2N-㈻G1,#_ú as^LH+5ۀB^zkT|m=lkMI?' ,LVw unT*gqNȍkEN]霑YH T4$Y_IhuѶQI ʔԮ0I +33F'1qpS9Xhtm;$[FZ̐m{=etPlTA +\fy┧8ñ2&EE?8jC0 ӆ1pd: Y6}Ц 8FRLJz`&eW!vYG;y,fL m>4BMpx_+uoxGʽeaq9^شbZW9) +n6[nV4z&l:w:,\bC4R`>l*yFFb Na3%PnYhg%WdIr 81Mk"G'6vžל9|Ev= q*Q%Ass%S-NGޘl7 Rh>q!P61ǵ::|Fl` g4,w9TbXykaXX`Enf4kJ9Wf'r;)Yk )S!LDn{MYh cSuMjV ye*љ` Zehnp.p>%o>u3P`5\3.IȮv2cd\]ԁ4ں'Uڳ;Y5NW=[O;<Ŏ:g3^98ft%V~pF_ePFUxOsc׌ Vϴ +$XvfxqJG :R:UJs88 !R:DE 1?!Π,Λ3%y_^'6#0:NyuG e7]<أ>^x v@w$3ޘ1bpD{ߐ$t_i_QHyBW'R$4`s0B`L80P8ApPfɡ-4"`v]8}FO9_2X2RDd"Ɛw 8pNlJǑƞ*ti#W""hr"l h#]!}iR'ۥ4H695\8bS)3KxdrHg'rǝL'9 +\w~4gǠYr}0B eG,_#({pp9:PfWD`K!M*ؾߪG $qB.ƥS}wE7vY&nb]} خ_oߝB˃nEzE9 f 9\+RADb$vl|D!D7UHs5ސsa(2ಉdnt Y.=Ո`]9mF9R/ڔ3BGg$f@ ݉R`V<;9jaqՔ>Q7)3!Q%[^q\8۷).1l#7Z1SH.Kwhḋ:d=neelū1H76;ȻOQ/NG6[Vr_Rbϥ#_]ؽn>:F];:ᰭFߟ>J(IyVɅٞYpԒqޑ?չfѲ1V0 |q˿Ո>| F||OI_uG-d/>;7UջA$;uw@(SyJ:g]lI#}HaINzosͲ[#Ŀoʢ`k? >P$3掦A:>Z%u)m3[<&ݞMwVHd.;><-Ŷ7Wc7h! h7"8m7:ӳYyXS/CzhoX`Y=MdP?6g_`TK8i! )YJA,c]|eX5؞%7%7|)kE =2Iy+@M~H Z cJrIHrP5_QbҲVk).C.!ew{e|Y렲JH>6Kj"pV񮝙Y,E84y! T!u-Zr2`ea-ͯ0\4\²fM4iXjY'fTBJr:FLBPR?S(FRqj\ 𛞀~Q d +c`*-;b͏SU-Q4o*>ТU $o=CprwBm`udesdua*W*D4n xc3Z}m=dr~S=l$fMP3 wMYHϾQͅ9T9Wх9_m^^ʊR{CC(sJӼG]O9/8rihoiETϪ"#!xN&]7܄\G#.3-t/b!a|"ܼ+8&1ˢP'뚃3 d?a y9ͽY&9nvF!w#k/6B֙[f*}eZ9!|NVfh!`uP#͇B0):Pn0rA:D +B5oE*J*Y#$a 17inN$BeMqRxOI7m[ +䘄y>(ۦ7U^Oɑd%ilܯS;1'ui4VcǸrtc*z ePS"h*v!l m#n)\wlom\zc:~e(cͪQEҪaKri5 +5` +UCmΑK2ZHÁhICplRʽ tmZe((}.zʱ˲jLK]E*KE' +KKZʶ˛be5ʷέ۵?U9 +QBm*f׿#ey0 b<;$N8F8(Kqf kLO9J +utc$ŞۄbV> s +"P*;uD +(e 9A&G(BDkkvIzmzmm%zWmm'~vϊz+vH{ooiH=7i4("}d4wl.\K)=\a n0Ifc,nğ1g=#ca h&&БƋ+X{Н. -rD8e:co'EEq:F8f5MB'ai y<(ς()`R'PaG./QSaG^T^e@0!2em);GT S.rs8 +I,$,5$1ajS&ƞap-pLjCR yq(ϸQ4A xlضm۶m۶m۶m۶hݘ'+GIDTfS7xi.c= W9t+dQ#"Ea( ی +:)2[(/#Gg/;Ō0S6qoREzD.rEsO1OQ􎪓ر&caMϪŔX&:dd,[A:X2*Jń\*\2תaUAG+-F\J ߲ڪaET8T1lo2Jp!ˈ `-W;a2Da=Pihw~!pfe{rW[n/nmԷMߠ^ . _[~f꒮"[6+StLStQ$(WY agWR8stƏT<U\叜/Y/v^UVtzU \毴gTIY, _^:v=pd#a{HGDHTRC_Rt)%!RC_)%ARCdfE)忔R#ROHq!3 1p$pHpy| H&})bR܇4]°7ry4jifsô}&4u]4k!?*C=|X1ȟhw׬ؽaExg~E/c9.@t@rzT.a'߆l7Q |n.w{o{gpn^[lchSbr ǤQY)[*y@@eG&nWވN}پ=L gb@ ] Oox#QG͑rW3SEYķ^{H;$7gʹyO+警,>a\mVFjURz|e/gwyBU.m o{ 4E?CM҃8s^~hf$,#+?hZ5bmTGވ(j`蛥,kn@~5nA/mz4oHIuoInݺ7jj;l[-+{7)oHtϡCH;d{VBBa}Ef`!l? sLt0LPm]/h$m!:l]8kBTg'O;%g#&6R[PI YLաP/ _ͽɀdbocz4^0-pp~t|(x~6@zsD/*.cE%/z~fn-@_)x c8Ly,? @R` )'1[qCVj1nIàxrT V Fx +)gIC7u |I?Bc3G3D_A`ǗkrACebʴkg9=9ad_^1Oj1EsL 0<vqRbNVEVP^,,,,[ɛͶJ{Y6&Km֝6Km62{-^>}|QE?Ngt\lw+4` &csƀF\ --)WJO9JV Pukiz| /FllLm!"-W1߮9׹pyrϓ>ڭ數a{4zΚuGz#w7Å6k!~f w)z +1%Y.ʏḯ3@]-:$pL[ >f:5GvI fWP٪D`UOƔG[!^1%IT4WhoW(l+/eٙ8+Qߚf8(-W f=+)%Y`=IT*ȒY nxRjDJs ǯDQyBm'{xdgM]X5xY:Św0ُK& !|>iys[Svk0M)v䲅absK ܗO"4KVOΉye9eK3Bn]EsԞcm>9*mԝكDJ䉒+o* R:Y-yVT-"s +<5O4}wiD0# +qF U5JO(xZ; RTJQ+'+5 RU+js9?n-+"{c,Y~E1];Ho'+W.U:=)?fkdB!yxAᕢXB`>'DlO9ȬDWA0L?u0dM= R'z/UD-\֙>5!Pzơ ۆ3B ߆һdjG`b :{DƵ}:faLEhRMb1'1WI=_Ele U4}єxBeUH=DCHP.: l*gP2[%1@E ,#4p]am{'_@]@=E>+6Rg;-3ta +Ztm5rj蜁#ӀXqZ+v$8.ek :4D<+$t3 m+%|yhH}੪vʰz |}үk +'g _mo{ju%{dܯk,J ֯(i@I]{1Sڃ9)̚Hfp3Ʒx6xpE:/mLNH=Jja-"rh9ҟ2ɂ\PVЀ%T2#DF +;Jgd`7`Gu_^zc8;;YwB5  ZbW?a `hgъjw8GֆCZ_q/.5:@>֦x +/DB'h +ldHF x\BI'EI:3Bgt[ufuSر6@Ρ9)" |Q$rlB""S1´Pc&*^ep !-t#] %+䡙i;f{Ek,v-hO&4+9XU6eӊ+C yI[ڰ965h9m1' ͹يI.EFAʅ0wV!…zķ<TmT#<07KguFd*iH49\;=°tCʛNQ=ȍrYԸ52 @abq%5/a+|=3bhm/y^.أ6[-h+enͭ/)N8 nIR>n<I;9(w+ݮP|. ڃw{-E&`c.3Oxz53T37cirvv*[Do`/2#0md^3L^Ya3Q'q_ֶߝm,FԻ&Oxi WT\Gr )4,;q}r)ѾwfZ|#Z_ _BE%N&E+mpՊB0h켖EySnf'RNt8nOB3. CBQ:9h+Ψj\RTU* ,یSU!Y[K_og_/xVN+Å" bX1'=1+> +A3FpE)L F)0T)&Zhs4㍔*s7 +[MM˪*f1߻H8Iؚ$T~Wwc% (vX9Kcd)"%ፏo`t~/qQ"UKK$#)@wZJ8޶>ψk>oxUF`CjzP2h+ x1k~wxgV$sݟw; vʋ 񋑧3`Թ;6Ft6ؑF\4hH:0@<]ZۦOەJ<1@H`-(}O]Joo,e?"{w~/854Ÿ^%^[gYQz܋h%lN V?9_$BUӽueu#z`s:AoWńs@9|7I PCSshjA"K'IXa5$@t33yrg\r0 o#G[ h{ +G+= /?\Oa;힌wPzto}sL##{O:<=QN4Rř*[kvsMOQuʯA\ =C`";v"8wdAm + Avȍ‡?LJ{ 4;3.;%T'OQ<AFj:ptSx\Z,<3%>i)d)fN>!g36ؘt7V50nrҤ+jqI|FğUUf7z8S *DW@UWf3h]Ds0kSJ6n-_ Zn#i*2oq'Hbx>bXE5tWp2X^W2v38-Zf.\POկ'l[]i3w6$KjHtapzgtn6=^xtRxAV%n)-i鎬hG kQf#`#b/-Ku0ֆ7IY[YWHj/e@R[כgMp^b:zJ{*\TĢ{dzCfMexԔ'M}2i~r`^F cܛ@jݭUciLUkz #f*S[j vMzWQFb<؅L[e}NYu?=/ypgy=v%}P8DS̒77?fZB7XKIYkqͷjܤ;aJ5*`vŎzRzK4y>'x?1AFd*yl͘$n~|02yKc]fliy( 2q؝Z_LbFK'vie'GCIFDU\4.1Lee 9 XN2SvTd/_\]]?]əbOTeI5y=G $a4Ҥ`Ak̡̃->{Gr +UL FbzA̰"f +3uXY1drXȃ}RngM<'!( 5 +z \`{,Og1caGbBW]O'_#F7zN}x +g p6'8"'^3Z3`wt>(yXLy)I(hD`&8-9Q?ZOYxinH:C4ީq Wl?ϾKi'p?43jWg8kӇܑ}~ ,[3\1IT1KtvDPpmֿ)ˍ^ߔVBiY>nCSF.(&5BbaʦMk.֖ɧbVĬN{s[w.O֧tQֵݘ%^X^P?ՈwWw`DyG&%cC䊎iP9>G3nA8g`sQu1-{fXEWuQ_g*򛑥gn{ҝy1gydQx`܂gr9sbѣ L~G%eyn PMI:l–gF( P_ūg`ϤE;sM_)./x+\=h^eOq>e^B`^%g6@NᩄiMf8*;)%i*GWb.)RÈECj vK(NF^j*io>yR'7ř pjZSܷ۱&yt_댧aw.%-xawydclpֲ0kSM f-2i;l7'| Xyl߶rǣsⅵsw1>JlQBJB +EuE1,pG*J :9ܧUL "@2*!W+*,Etv7?تLJ*ayUb9qo ,xxUߝ *ё˄%+'2 +h0,ɳJT潗BGm}Mn7zw ix ^+4* +\pN9z@Z0h\ֵkk- :PXuWw>di 6YߔpP.kUȚCu|ݍ `ba`Si.g]8euUm&erH- že?rLn e]\YݤO.x:x\ܳ,PA9UUl amzIâe$|Y]]ݙ _Zx@.[T9Hk҃ioMv kZM{w|0t7j6Mg-@߫Z&^Ѽ$NXDkC[,=۹_5 +)"%`H{jiԂ,S*Ζ~A3f/ ٿ *s_YATJs +Z5Zq0`{aA$ G.պKXv{%We"T$E$ګ3 Hˇabzo^ Cʜjc0AAqu|#c<̵K p#l\/ɣ]^1YUvUR6UhR|ԿZ6Z{k>:j'"c㺉ՅȾAߴLrUtȍUgˆ̈1UfT o(I~>T3w~k#C.cDI4ˑ4*E]._W}*f5._M?V-p(l y=9A}mmX|AiSC[ R15F_Mlc13sGs/r8i%sfvVDViV0ktd\x?[TQ/'ؑ_GϾzxфWeo]maQvϫ +>/b?WF/f6?Y4+Zxa/ WJ؍CWxۤݖZK7C^HmA]8m9rmLky֘FK7ؔmN9bzMO<hH^.A1<-a' 6aK\\7Hb9%b +6I-lMyviKIv]U&Nu<%K]*>.qrEZK]ois!Jc< 7 CŠQΠ \ϠʺSrդTVZf1+g!͠`ˠBNr @LCF+Y٫¯%CChLGdYfK% 9 G;=h6siAZ;w+$2i 8 'sx%s;2P)3dSL\si;AC:&ݳ; gE;x7f%% 3 +;BQrDKQ F>ЕLwb+2Ve(I'O0 LQ`X P%|dqc ^,FXF`F \=|y|%x +qqqqơƑC +A@C|x"RPHH*%hJ񾂟!0 B` #C`АP %Y4綡"v<8h]Y*=c0/윜l4 +QG^C]K\OuIG7Ė\[TAiU”b)aY>^Yql]$7~;9pO}{'+KB={Ϡa:w2 ȃ_2LV ){'. BLPFibSNaދ\t =R{t͉GFd a>wE+0#zA+8zLfOmn'P,?$'V)&$䱓RyKfe8&+&(6iy^~*!ش5o,q13|8v{rQ%B5嵴Z{"=";uu%8W);a+$ږ3bȃβ(fg嵲5s /rsa>W @q=$+ʒbn ٿ^Ui^A~軱-H[HQŭ+P +&% T!_8ŋ^iǪD(l:mڭ'Uû'vf(+q\h&Vcm_% +x uiHz:҄m`?|4hit(2l̃؊CqZПLa`$Nbt`>a#=P񐸔n "nM. \-秤=N)b.+&(W˕072V@40æ@æe閡3˰93Rv +}NHcb 9V'Bw|S/qC5V)sfZ20l]<# +Uf'(vpYQƦ ?*zhS-%g5FqRW&PQ@_" @9ty;sbH[JR ,: vv& Et:$vVcU0ؖcJ{J# +fGCH+55gTj a$N#Lo8n}˷@[qR9c Zߘ ˏc8&BU}ɊaRBQ6&pBi Xyr$%QÀO&-ɼVpEePyQFL)Ѧ3nv`'~(&r4ENʍچ'S>UުMNC=֧PUg rIFbIp +WH+_N!ؓ; +*c%I"J9@hUCR 2̽\- +*,VTJ4-R{,7[)27Y#2;,lɷG$Tѽee'j2eK,Wq9e K{{+8Nĭ[ZԨYiY*;Ȗ7e%B8DNK HƯSٗjLL^(:1b0圳g@@-Aﺃ@XEpʁ9&Ƀ7}o]wx%$mԷmK-<3ngp6K_مRMKC ;6(FEB`R)Ώ_U*LcߕYE]8 3mG>ԛT|6ekRRL7Jܜ-`U(sgV`o\i%TZ`+ h6NJO4%%O+K 5 5T IS6MD5'A2f6yoz7>Ʊ7Zj?{Toi3Kg}ĺ^h]MѸdDgJX)+/p{w† .Rf]a!2=t6ow:SDv5Ј!X'Z$zM p<ڳSm|'\㷅\u{Ku%?M +Ҋ vIFE. 5=pmnR$҂w (+nA#q`srn j%_'oyĥ%*3S0ȴ{i,7.YaA5[UY{%٘oܥA<^Aiu:iO% tHquP[Yr[,pt,\v@F@dz[牖AQj +YK* -ۦ];mm;,#KK;-'[zY&-aÊe58Ů D5 xv6D,0ӔRX +C-G,5la S a[±,ԥF8mx[`ˊ +scL9 0ϋ͋FL=% {mK r=ֿ{"q~;/Y?KFl~aەE)oZ £C +eģlP pd 5mqF ScewsjQnJV#IMORRPA cTPOx s2ŕ 7J5G4ܬY$a=waT9)ݟ)L4*z92Cf Mȿ׫=sd\ϩ\&C?$G'+?QUPR{KT ҀZjJ dS\C[/iؒ5*C%tϾ<{.df}rP~`mzuױuqT/@iw  6===$=OOM=9ӆ~@] ؅ R,0H dI5ar-jܴNjRēĖ*c1K-ԼX|CIܥe< ++e/q^R_Ŷ%]0Jfs!?{{6!LG(9Тѐ%t8.kqtaDŽ~5|zSzRo랻$faFbnDG?uŁ\xI5[zT$$*0h=v2M4]GCN4ɉwH/EY﬜0jsLm; 3 ^-K}liuQ"9J#fqqs$hzk+وklQKTjֹ{TfPn'Te=W,=hzAN71zikQrBT +LPƾi7Y/%( 4~%0g9aYR'JjchY )˳'l|NJ): ש*ͨj$'T*Ve\tJ=oi^T_+0]Ea#AyLq@պOV=aM}QXq#d|T -WصDGB7޿XX7M]-A[%0Vya֙zp< yՃ_ [ +;^+feMoOǗf7-Cg,"oHl`{mU GNhI]+|,3&lRr q鞆HĬ-)}ЙOi2̸굩\/hM쎮vRSǙ "υ?4"N ss$TmpYk_Fn i7 <`J|>?2B")9kcg* +u1@6jc=٭O\?7_N6dFY/?pLDU+i_=qȮoӜ=Af]9Wmјc8B7[G:k^^ ђ 6y6$~ Rp>n"'C\[C\[\|D2 2o?ꄳp뵏'0o :7c:4)wʖ})[HϜ]|nm-aWD_Z;/*r52$q'xu1ocÿߟ០q$@uOac&Y_l1ѼB F +ڭkDCxcstUS&¬t b$П2a^Gpoci@F j#SG-ʣ2j=䏴o ?A=A<ߤ?w?ߨ?wݠ?{=:VDv‡[ys"ܷ<09{bh4J`'e `j[e B'~}<%BSȲhx|s߁oGA'љ:<ޞ.m CEIIKVeSJv$*j $3\4 Ƃޅ3×%JIJ2sFVtM5p  $Qɕ X齫1hk4`+AuY^POIS1_gv"34UjZjV\'W*z7Kk[7iiAa)`ÔL jT8ZꂇE(LJm +HS9 }t/#Y!r,Fz'FPc.)h ~ ǽ0@,}~P~zӬ@Ȧ1ެdd1N]@ IFHJQȢc.EeܴGKTFb, E&m?6$łX-f}A7wJ\(_ yp ydѱ?Xy1`XGڮU 5 WjEYImNlH4V5R6Y&ybʨxay o]Vʴ" |EjI%;zERzbbqR. 큃ñqh\GFEͅ].Eqj;+)ma=}p:ВX;z u9-D¢+DtU<#F\"EdX<# iB〉d_jյ3lLj3;VH {Z +FrB]q(+Hgh%d$N;{i<4$tD 5bQ㪼etTUz6.++䜨=}z9Gc"!8e+#&$0s娫x**!l"B+IlHTb&vW('T9>>vwHD* =Ky +4%FK0p[op`: +X[Ͻ +D\E$&AĶ[vEVL 0Ckb9( +ԣIx4p+8o3~Oa ih)*!}ftt]HfQMCQ/]t +m; ǰtD\-Y$ĻM+ZT +]]ijC9>) +U T^L*j2[ϹVHŬ/`U8V~k9̭yW4(N'5Lc;% Cw+ՔxZ]VxLuIGU11q~ 8S,3eh\ǒΚ11)[t`+`ʢ5-|$^)/.0 ?lGծT 6,yf4706(lL1ܵIjW31 .K'uՃfЛo 6In9lc̾` ԲyK; Vsn4uH&kH$O*hi?FcG\O%dºۑ(۬Ĥ\X*4)ip*W&w5N#L= $_tNIyqI0zRq/[ cl8໏(d}}pvWPѱ^Pq6G ߆ -?2*ubXְz˪v)T6sNsim{_Dq:`ɝ#x:#4[{lW^> +,< +\e㊲ps2KF :IײiH:a: SAruiyyPO1]QJipxe80]؄En'!ci’Beξ:!ۊeu4"3nONxJ!GScҚNt<0,@^[-x(Ð`p$F䄅`.b]d%aYyHbB( 1@cMBlV/tFS?SOȕatFN]7UnùN!/'Dy [q1A.c5]*AU5s:dD*+pM-U4gGtƶY-j::Lrߴ<1&&7ZX9ru-z6UA \Ǿ\\7)mYmawxI~ԓ0ZN'&s ?;({G>Ykı1GAK[M/UNmpY +ct +[K;t "Vbl--"T*JZ43f)ʁo輁쏾B< "m5:(cPE3 $#x ҞQxAHHKA<^^gȟK''(y33VXYl8J{t.}봹'G +}8-ߦӠ'PgDJ\)F{ t'w"uR3$z3sҽS%~EYV^ƶԎA(b3%dZ*M(rjh{ m; d 5N\e>[Gb5u bmi3`z= Gn{% Qrtz@Ex<D)P:h1\f$H:N»y*͓]2-uX#=fr + +QO(4#埇QtT.| RV>#$2e Ɂ +$jAh +xv„9'܌-:b@bJԩ5& +ǣŐA5)6h; q9L('Qƨa+̏.Yȃ. t2AYn:sg~O5ΤF-384IaH[\ĜhP6,ë;ɬͳósL]l6 nu蘢Fmګ-R/$_c_/92'=#e.Z^y]nXzUhYy$uH6f^‘0uP3̐X?zSUp̔uhy `"`\>}ވ*LzE>MERw#__H>3-@*{+hlV\j=G42M%J9wznWԇ*GZ#P<']k2WqՆ'``vʦ jᑧ sF0d&A3RU3|/ʥqm<Q1XLypX,]8 I1X;XpO̪AZgغaӛ+nȕ붅DiŚ>vn i~Jvr(6ijHax~Wvm#^5隁 BT20 O(JyIri:lGVYlMֺba[ȇ9Hw1%=X?xiT}`/]C3Wױd´}3rj|\6'oOYUwDqi1DHq|.>RAT7_=tjzjCGFP=U %˸BQrna=ls+ RHc­/?9xˋ{Q(er1&cKLMrn&uwLůҟfxB86W͌fqBmgϤFUD: pĄMQUMy?teV[C!gӑ&_>~t!i0e}Idf5TFOr)THTfCp'TڐzTj,u&-u1*&D\B *Tl %3׆'5ö +&mmMa^L=$%7c-_?[Sg9n +<)9H|1qTW΂|\׬"q7p踳`rlk2%-(.1F'PƉ]Q;1V O ׸Xc_v yN7 m3JiBP {8擸Tz(Σa1ע8 Q:⎋KȜU✱\HѶ f0RoYp9ZmuSU65]U1˵Y)@Qm;#kTY\ ҚVZjBYrB]eH1Q eܚ׃):D'S8h̯R6cҾ]$oHQ80B5LծQA\[?S`̊'SF.>r2eݦ- +%} :l6)Vmcc`3%eח0 i io^׃f4XLH!J g +; [Is*"؟bz$  vBX03@n :Mcς;jP&8($Y/Ń3s^ 7AHAAq^킻\dP Vb Bϝ?tI.h\BREW9u ] WUu}4gFq)B];Yֈ{QU;4V/r%ړZTgs)IU;Z^;,9V>q+VдLnsIpwWvYE(#6à +/HWZ-ic}#tXwCrk=jeS ^f^N{ߝK^NGVr\ЌД=ȇXNg@skZvǁON$bEùz28封W!16|nŌӤ< yQ4=jf&1{ew52w9sQ^"h-$PViV\J9?:‰@l u5 ?֢IdZ>̤ȱ,D1GwRBFnDAv +xin,3t)睻lq zKY60F9T5P_D_ X ;`oT#~H-vsc?dm@zx)i%j#^gc>dck:prFkTNH5Q9FԓicfnĢ@RzXv -B4ԈX?j] 2G<,I XqUn" +\- ɋl-/#O/y~-=xM&()$ĝAwk\M%JZMcKAi=+M TVtT+}j2 W͍|W8pf}Xָ*?eo/a6J\g9$F6䢗|(j1;KO2]|7D+a!Zw;sCw;EȞφ0*w!Ibh^]:9eIFNHZ9ʗI(PNP6b`['όR^95dgI<ݚLeOC9JrX¼%:ŹY%+?5egeR>ߚzߞ^ʽޢ=xPDsU jم#͸ױ1i_1f??ߙ;z׸td[ݯ*Ju/n60`ofN߫~[BV2‘R, Hn?Ġ$ûOZPp;B B0>u@sЫYٵ`qjY` X๢G i0xY׍D1D9aL14-DRm so'=r͐4FU-S3t,%e(G[֩F/i`^yMxD)fӇ^1NNw[&)s ^EyL? У>(Fu[F; xlװNڰc>G1hF0>FcɎLbHͶ)c+otbDp֩C1f IѵF(F [YsF,ڷ\#ׄ:MI\1bFF2 +Ww" ߣ璉H̽ =ȃbRF&N`O$ȫ3+ʪ_F(dzM<}M S>5&z(9+}<4ɂ% z1q GG 1Mo- Յ2~]ӴQ_#I¤S + _&(<)OvD<NXp!$͡n07IMe "]S!ϻA52+"h^Cٰd\7u#2 b> `r dP#"qs""1^"vQᗺrdȤFXB^r@AKT?^M(.ϡVX,kѨXX@*/kƮ@PNژy2-TH^yGx9?AG# -t ytM:J(w7tRNU/C]=5Iq~x,> +e%@Mp)fd^.GM9i6>-H >%^wG%yUB&UUC/= fnzWjJInPNJZC<m 7[ԁٞ,Zk/מJuR[˛ΔjEF/ֺhցٗh΄P'k[S5kYoXWV;rwEWfܣGђG(^[`COǞwÕwSL7ޖwoݷ^w7ʞo|H~/GL= 7y#]\T@ԝMSAV2F.@ĉH6mFiډ8w?{@9U?w`3KHc3:#-j jݺ)sJ#HcnuZ kk ÊA^liu;*wIn@nLT;ɃΨ6 +U0;-LnMq7U$ً-N5H̳ u8jC]wb6*)t%@ +k+|@ Od³/ 6^dw耹rdj<7) Tي_ʜe8Mh%NPD^e# ;FxM2 eY9x˦;dLBnró&/ll[lb7̢/Νָp~4\8jvkV6[(v5{'/.e? +YmEߦOT]QAb9XÜjVԫ +elҘjnT +ڹCS$ZEebxճq׺z9fUՏ9ު1B5ckUmӯT;9T Zz̻߰9UcȻFyಊ;XmI5mWUchᷫ9ayvϳu 2JrRXrnCq5 +_uzcFvKEIscU!ſ}S}ێ0flkuPJ!E&'ҴP}J늦vqSGG ̧6ҧ"YsLsb/ye5nRdUnR&/Z/eU*oFM1&y۪jwKfKuڽGkS⒡(>2`G7M^FֲfGEmgҳ3iGgWt^1|nKheh¥GiE+zuEn5i̊l %&G̲&Gk-F rmdǵuv1횩EƦKkN7ZԦG]9ՑgMQYgW>HXm#RzK''7'qnnM= WH}Pms++FU ('aw}w0ݘF%A,ѫK.Ni@wfe9lJ&1Q$=>mC$@ ENm"I܁{S3m?ŝ2]z݌ʒV2 +p'"4}-ݕ4g+sc:;B3n+&\] xx@5'9Y/[7׮sd`ٽ.=N$hKh*|agMwyIԋ9t,?BAߜ`2"g z^GD=:! +< 1 Y@QқCa ]KEbZ8ޞ殢mCbޖ(Iw̦&wOUi Z`af/j 敊~nнL6t/N/,( b9 Bݚg6ۛēm>[ڑ5,m)pA3Tπ#Z.--}9C gj}7#24 4[WܻԵ:!OlSr4ҩ֩u&_?^cVu)le8>QKͿ~mZ=.`h+l`o,gHz/1΀臬Iԏ;N7:ď_o5oqgi]:ˏkGoެ~5į7{1eH=#q}؉>qIYsuQ ؞S'$]C/ܸuM/+]{]t‘$4][!BR7l;-Џ6>S* =ϛ97󳃬޶f7QbŠhXQ9`'s泍0.L1rNv?(Nkj7E + NbE_*<({\7oJʗ>|?_GA} +Y]rj˽1{v|?cF/NȎ?;qc\?0CBNhDMhK/0lv_FŅ=wĥnD:үN. Sk34ED*H؃`3B5.a +N絠֝uSF(PKa$"&CZ0S+57IPe~n d1$"+\Ry?!U_tI Z52A*ItP+M! 5tsgNsS +ʡ3|k~/Zxݙ.@P/_eGw**(t~,FQO[Ȏ`FZ@f/ +/ +CO4#7Y):Yr8N= BZ&FHH!\8V,!\m6SG`:Q,t̏C?i&Gt*Y i $f׭<;tqߑvVʖթp,o,SZC +ݍ|]/:H&PA::/ S,y%.re Gd-QT?1c 3egd~cM4Gs>2rT{@c 7x 5g0۟g\X΅;0t՛37jӋl%7/w`6'+57M VGf7!_>O/.=W-~O%0CP5] ‹ZYZ!`h܏pP1Eܤ +d=zN +Ga" 'a'e0 PBѷZ-OKach /*2b.bP +ac(ze7]J/X~hav+ +ʁa3ƳJơK+z,2' Z%PHeah2[ҲB1/i\ዌ\rU^xeZBIIeMQXMyyڝcה㨜?/ngWVA>/uϚl>oЛޥ'XZ@ Tw;~5]eq# 2MaQZ71H\ѱ=o*Qow^߾{L^?=k3:Khnv>k +ڹ856NKτ462ȃ>F\a\3Ic.ؘl2kE誒,dWZ5+}DLqg  h@O0H.\A7 +S YH.HN3oQa8ʐj jC<Vx` 'j }rcdfQϔ4я^EˡMf)bE +7qA5E@.1 U8̟5 -od׾t4{B˥w[+NGRoH<[c,E6~Vq‘U"dx<[B71ȶ˶m۶m۶]l۶m۶ʶs{{_3#bֳud&:'9O˒b-cPHV}"QNo~2ZG m +LB6euZk$c@Yimd IU)QRBQqR3q῀i悁ؠfGtA3y`\ Nt*\.$-(E ]EnqKnhQR:t)CJLTE, 0Big{s&|evg&Xk΀Ş>PXowUuu֩ho3,{__w3[LoPo_~o-m{{?z7?O{?e'S?k_`@E +T7]pрQ9iͳΑ ' "D +4ML IϠ/T͕n)]V޵iJQsmڡТ^uȰh٘{;sa#(\o&ާ@G5&&^21;e#@O[e;,ToNj](i~/s3 FN9ǎ$h  +On 2Ȳ^P͢<+sML ]Q (6)AH,%ٲYFHoX tQ#i'$р0&脌g +"PFMҠP2GC.T OYUeDيYXed j rvI0$2ժ]y8U*сVE +-g +A28҄D} a +>BB(йH"+JD[|MB3Fz' +.-tV$ЀK<"łZEzB+Wfxkզ1.GwhSw)c.6TXEU,&\DTDW 4p]B7=p !9yXcթV @0 t_4JdRrV8q#JΔw)O-͘M8)/2x\_).{ /,w[Tn7),/mq445((QO61H-m9XIFzƕY) XD(c[#aS 57i]mS;NqRaT` %qgU ͇~f^QE1Z c{m\ppx=ՙw!Aaxn]-a(29u&{⅄ 7mN,(y6:UEkF +։W'WEk"PD9m%H&0f#ՆNYC|i;'M@e^ĸ灗nQeWA{q.GUP|PmZ N:,5lw-d#}8 f[2&;biWU ?i.w-1W JڨĆ8(2e}I3;vWyu$,,Ȗ60YtYVb[f^JTg9 2b2{cᎯ-΢Q iX]<9>BQ^lQ.xiG5`7/RVFr %FvL"$v1$WB H"H Lgr㫑#N▨g:l:!=>qR%M2-Y K)Ho$h]Jf zmw**"rx9›E*,!/{B9 'L] S l<+w%Vm.f*]FBwѮo؇~WG'YLJeٻA:장0Do6`6M*C8hqG}֛WMh`xBǀ"c_]$ ZɪV^vO@(n=n>V} 8+Vzpc?@NѥFk%sTR=)ȤO²Ȉa7ڧCg^]x-_FBG.~D"~r->IGz#v5;>U"6'=xmy/JQKzWy3 - txqg=my3_2Gȓ X:FڳNaܮL/;vyِ ˻bɄUŋח nmbZ6oX9p +չoϠ!cE!$ƨX fdz-&63LkS^j)ܰ'N!Ml%= l=zϙ{5 ڠo}n&_ ^_'.`:cУÞʢ1|Ӛao&cX!haof yxjJG͡ +TU:hs;l1j7 W<> +9r"źV=K=?n;5mC"ܴx+@#v0U?1"l6f" ۪cDn3&W3=D9lnSxqӉ?b6 +܎w'v74%~tt89vĂ#/H[t 7䑛;;<S7l=BVB[;xA-q)W}#ڷGB2a!q%Ҕ~_5G>#kTm4W3nȬf kT6wF`pJBd|^dQ8jV>"06$_zNQIa;eA7`.tf I+U;ƨB;ryݬmHyy²]nMf!jYchg**.{I'>t|M>Jv;U*f*F^y@#en3Ih?s_2'3dV[>+#")bbbj4\r'{GUu[zokbf,0^Q7V(鼫j=toj3B7m>٩&sYJͼ fI{0E;wKکp+tx*mH=?ɵA|7dĥ;ӐfۆzMsQwsK)tƳJVc &]=H[~ovds&թ#.ل vNa=6E&56Cvz/szgrgt'|,lt}:<(ĬY glgn{|6,ozTtԀ?Cb"(=#y,=Ս~?G*?-@p7ȫV %hx#{ ިa3R/m[#'D{M8i^hS甌X'ټEM-jMFCޓq'kU-᜔O1іNSٵAvfd4vȒ7%,w/Dйqt ++ +6I)%+4*KkAj忷xSvx GmM:VkJd]i.J~vbԨmV(@zj r"s+:%nMƕjamJ\LRo+?jR@x wzbg!jZOjCKՖVVµt,w陑Xʌ+TbIVd55 VsjCO%CXdB -}+o4(judyKez}ZUsd:]yŃe,Ys:;QO T~-o2MF5T_%/OXu!,EADW.h17hϧ$1JZ 񆎸$<őHϕ=S,(ŏJMSSYJD>*aߩb ՚T5"f*NU{/",:!c1ewqTaƙj9I%DC03f8z_`؀^H<]AYRYu]sIPn3IC1Yݩ1/@=ٓKR4:ᾷv_z'["3r÷3#+Cl +P6t)+҆9Q`A=raCDsC<rfAs&Ԃ,[nSewZ[] +vP߉W}ÞPWu1Uљg{Ox|[/⢍%l zJ3lYB7Hzȥ+Э#+oW*B҅rs"2j&2UGRf2U0#Gy *ʖUnOakJﳱnٮ:2~9rK!*F~2(/\Q.V8/ +jyR k'Z-yѾ 1 j8XH^.Vo=͟ŮRawYQӝ+W_9?ݝ,]%oːPP #\n鑼7.Mb!Ka2AH"$iCF:1v Rf]Ყ=S(*$Di]eQZ䛻j <& z3=|]ǫD O32dPAxLGl\GnLGp=-YMGtXfN.EmKЌ1*\[wd*|kҁH +i;ѽu<[gr=}.s/6Zl /R9dpֿ;j L88V̔8k cǯ_>C/6Y5f&uOf,/3j,KU$ e4JnkʩX RnRWfr +Nl,eDd9RYm8իRgH͂f fFiʹs K&V,G[rPZx8*曾RH}36շ^T:5Pۙ .8U|)`7ElGkioQ'==gB_\^ӵ'iIո0 +M?eV(‹3#ϖ.- +]Ӵ"J46a ˡgeCZPkB6b2)ڈR`BK0Xx*Q#\\*c} "Ğ ib2t 5BH쬢.9_V:LLDq+X zfJ1/Ռ70`E;dU6{`p zMK=QT׿oKH8?4W Ftz &N6MdN|W:-%θ$wM6cS TsNhnFO.iiN#bÞZ8w{z:vmd,HB6 1. ef׏|Vp!F.peȊDxĖm4ӂG!J@Ldci`oDcT bNHTK7$D E + +pE1ۍ 29%BK45]Ū7W7Ȧ;<6 + +]VeZ;$ew#f/K `¡Lwaˀ"c2 ^N(0C(W;HÞ^K"Lԡe6_[/5L0`&pUglLIz6:oWg-CTv/dbo[$Nvz]}(U9Fa¤>RlR;¬x0]d˽'߽QWy-YnJwWf}s;4,Ց 3Y9a +vhH(K1V[)0:k 6x)Tsa蠚i:hx(ؚQ6_Pd.nlXW5h`W@)HQ\aC, Im \PGڰ(8UsZ)Ewb;cxTRE]qCPM遹X#wpK+:}#c/O;.Xu=vx[JOs]REeӍc3F/3-q[](Ϗ·yRVfD~_ a6G>yސ}'oC憜r@Wvl܎T7:?68dbC}& &$l VT,}&I[I"RWn$ dEC'x1jYGEJg~3fRl˄_D' aV.F&>[،vHqezj8c(=fXg$L//i+^{He)NOP99I{Rڲz.= &A1oFPV$T{B7;!Y!rkgf(q7KC}]*WX "W qplU qFd#]g<[$:=}"4m1-C.^+㙫CpQmL}ޓQQ67V2jt؊_vHǧ/T5FFc '^fd0xfiov1ur%(ɀ=EPz8^׌53KmWZ)_C}{f=9KC,6Sг@ YiĴHPhr,GHt"f |@O~,Gൗ b`‚/kkL_ 6YD{"?W$utmgK) oS"^]Y{~k5FT4^X!ӹKA A#3_*سxbϩxD( 8QWx|pQ +JfTWD4FRgz]dp"WxL/t#_w/ȬL2JW EdLl4[UT"T".gpƍ5U<;IwVcaE;_Jy$Z򅸦9z$B6֒".NA"]幡|FD5PY)rg=(5y_ w{[[ ]|rꂢ & SI 3S-}t*t͎b3BSDh +q +F,Kr$NeKrUw-j,XxdA NPw3xC2wVטqd x5oKy}lh‚„pK(Fi[E 0fvIO#>͙^}J3)ǂ"Ɠ"Ťn ȖӀ{йpVcCeW =\|'HiL|eh +tQ~̑wN}^0?ŏgs joS Efi8o>ܞķZ^,ӥڃ "H2lZX8/]OurttBw؀wpBcVo%e.t6vHNJYxb9q^;A@:' $Y'(1B9# {[n=vY (EiQNr%\NARV@[c>(@`I# i@|@G- I +i=FI'8ַ`dhwP}BE8wVpNE7ߢza~>C89ZˈV/͕|dEVq _qq|cBG? ~jġ}JEb?r]3#)APw + Ԍ> 3>wfaWЋzfG)NCK)K14aiּ+vnLr׏vud:3:7?&k cbӺg:uACa>*Yn:0].3oSb; +:]b܋3vp5d %PJEup Oצ +\jӻIM{-ql\Bѱ[㞽6ĸD˖.o9"攮a0M+@CԯXhGIAw6t Rƺ +sUW?=TN8T41FT-8Sglg_}UVa? pu c_U[ǂ^';WMvyp!Ik1!Fl4$|4".#L(fӍtN klczBF6.o}"G*z6>Bݖ{ +,\ ax|naMju]M%y<)O0l_qz8%K_ knM?tƁ}&,<bjWxB/&KxqO87dCl~{O4P=I?|0fxbY) .mmV,1,34jy{Ei:ñأ|yc >pt&ugo o[koԝ;Kms[NEg֠!L]azp7ibzab1Tm9b#M*}_?m}|{Eo7=J,y*s oi._=Tkm`z+*,*6I.3\iJs`^^/HV;rs d@@K:bπhC<#XWų +O 4qO3%xOrgi2!+$1e`),ȹ1 [131g>FqFȂtTYn!" fXX8ǼkS-;nDI-a`z Vs*De[=];qfW\zZ( |jl1`.s6|q\Rcբz Km~S+koM!"~>TDYG! 3= ) Qo[Ѱ  @=|g@;a{Yp4= ]+W::Q|#dS'4_qnP`?ptsJ:ˍ2!T$H=r2[JD<~˻Lʦvh}a7ak$; :Y'?JQlaņBMpo"_%EXR,IU"AV6G 8Br԰-yD :i ۲R6O)ǏMWd҃ ZLl* +`l)[,ɋHm'sc 7n35ֳg5^k)$Bx#0 8`i X*Sش`c8MAoĶP1ݕd~c+||8q{47ȧ*~P~*~hAE'O%hbR[1آcĔj4_(Ð dzc cqǍImSqopPUot|\ncM7 UdoN9܌0g cNq57 <0h4x ='5h@ѲN4=Dl9hvG*U4hhE +CBt9SjxdJ"h*4Dd#s_຋(5=uh P6,KlVI핡OYrnϒ6֫o !)0 Pv`H)͎nU.u[)P䬿k2:lNV^`za"y`GniɤW:PXDƎ擢A)ՇƩZ]!on17XUPqYW /Q1>QgALn=[mܵX6 j8ٔ{@߆5xl75@%gp0M9Ro$?Hn;hH`Uv~ vl?0ïޔcgc~λg~>GЅ[e$]$L awI$"jnI\$2=~6)lqU@L~_ 'OBwӡM9nZ9[ӑ !5 9%3F"$Gvn%qjz\ +n3gj2' :2YM6S=*K/8^)j΋W>n*{nS*&dժQn I:#>7 7JSRnݹ KsLi[OY֦g2u}\Ymg:谌ܦS>V鯏;kURRa8fG$8t?ȁE#NX'kx*Y5:"'cն CS +dxWcbRfH$K9^~eJ/e@qE*)&C,9"Mp9neLTWg\қ=0yPئP%Tuys$8MӘ)wjFrLk9?(%TM+oMnusۙ,1JNJ^R-qkXl|\w`:ϼo؞]W&,G$,l֭Mv4kcLldf5kǨMNiL$ՂꠣTPW~'cnTur@GA2:IZ(*M:M5#1b/DX[N"̆ɮqF60M q;z3V0"/T}j~ |0?#j3L;&t ACZSt.cePeIWz;Z  :yLⵂ.}RIeC!:o(#V'udsUI/7IAS*0 mSL#\=T߈9S5g6w5pǯ g q߲@ -*h?dYbmʵht)\hתTܹ>㾋@x +csp@FOؙ歨E`gtZX =.͟xoAPYԪǂp,J]})fF\=1\r{z Z_Wu"/*8n[M8$M?%B{{zdULzN*1 v 8?wd,"sÃ%j? |G䟜Xwh~3MثSGGܹ{2wU-#u)1o!EdO" +sz f17B18ϵP1kumsԟ l}6^vֵ]`9lv9[QmdZ{F=o՝yh'ڶD[ (%ȄGa` p?z +eRG9?Sgky{}.a8JfNa_?,Is H2zwGM[p$Vmlo T2AWdI**-6%-Rh6dKNlbo!C}N^ʪ[߀+L.&~Hͻ>cV*F0Nt +"V}-es7&%13AW1Kmv(G?[쐑fC?S + +KlD%kiϼvek%N(S| N45U]F1VSnRNc7 u%g(T(}V,%7~+c23:2-Y'Ձtu1CҰ֨zA)‘,oanY, \eeXd-%kK| Jz¬ +Y]]>`1aJ۝:q.Ty9KƢl+J1`ԋ9ftdFb6;ݐ.Go AG01;bdXx^>Xo_AM鬡|pi*T koE.Ĺ0O+]ё(ov>fhL,/b{bثOo屭d`k 8+D[\{. EUrQV:n]-V[(+4; zhAR:R$ƈEUsSG`:wPZ4T/&.xD]dŠ]at~AQ}#M;'PTǔѨ}=%}#2?iC/DA}h!yQ?*vR:#Xqp9R><.q#aWA,Ibxc+'v?, 6@y:Yu_]C'~uNO#{D2j<%ϛ6}$ 1˶--`ND@a 7aS8KP Oߝ I3&OÉA42d p1U$ȨPZ;G&OC&-HWeH I-u.*&=uY_Tl9޳mYlv߹1#e}nOh]ީ}70w ;^0w.a=Fcc޹}=#>wc ;  n/ +|#q;Q-,#}";l Dv!c8L}ItAoyFf\ӻl蹦#=(QKӼ j /etakA~(0ڝNj3ۊ%/;Gigy61`Y Ngk&>ɳL{DNЈOY8,b= + j^ȍh>f{ CעIWBLhʞ3/垀jJ(4E1o\#^qVݭpEQ2X%8_WyML+AtX4XUh!!0^g(m$T(%$N5+-5z31b^ pǎQIs"(|y\߭D_1? ]6WY\P4Rؖ\K8j9YA& *pܵ2|O{t)}S4 "ja;3. /Mt$ԣ=+]<3$C~RhsG鎊|Ep:TdR)Gi'\us^ eC<7ȫ7W%kY2pb>{b]Ļ-5P󖊌OFw6|R: adHhPʀ6Zmㄭ#~vܾv|JG;`L34B23%]~\٢VR$ ?ʃkUZe*}`ww- ++7Q>yRoXX+J-6 §ZDŃM1}fUQSG&\ϔڛK{>,9cBwd7_c(y:'.stGfPaV@U9$Bڼ%2kW, v +2C9ȥj_y@EeCU°EcH:,HY7-ĝ ru,^&{l0qAT5mWI ajT5Qn,1ze ΆhjK,RAj" FSnصtB5=ZB4ҽϴW/iw bvII`x0C"1190ƟWF{'}Jbߥ^RN/paf-yh?063BQP +aNݓ$1f= UCAuޫ<TkK~Y;NV)ҁdZB҉/z] ;w`S̺Gq+;b))DT9DmEhۗu?0:i2pd[!pb* ]LV,t"A%RWRˁ 4eO2<:_AסRW;̘3Q]0/}0{H=vC(=^Pd~+Ť-TyzIFh DNFYXi1C1‰]@瑹hZu_/2یOaΤeI4{,ǎْ5>C첂3^#< -bdEcnmmI\WsDie$T +&uYVBSUOC"֒ xIHy#X^5ʵ( u]YF6iWj>rCFܗgV6s]O|O gT0VO7 +}ȠWf7:4Hn䨢n\8L<;ܥCXuAtWGՕ$l1ۜNwnVY]S$|7T{Pª +Ҫ8n`KwςWFR+[sƱi29;∳4]LsϤ$&'t皤hgs)L4Pf![M~H+_6'ӻrZ$K`Q_g9_֡ycx +/i[HHf>ބ5k) ɥgizGnjVevXԼIR$)Lu񐨲1 Qql0 xD- +Iwƙ,܍$o}KL2+)w/KDsh7CUsBE/E=fn2z ]y ۶4EyK.y$JZKc+{00D!vb+AZd.L tIVJd@x3{'wc{[l/MR>HX?he\sz$mf %OL'D ͸PME@oG}'(NU)o _wz9SƢUG4sw{fWn m8EgQoM;k`\!\{Bgji~uG3`muw1\@ U6Xd؇wyo:Pvɞ]<xd_Է*m?¢>lwv +m{|2!" 1J> l6mN^R[u0˾|]BLiؒ],Xrw}I`&܅ۄS6Mfd v5m둊c0;'piFOXFA0߮pl>&Ki?l, qs.MGOOeYW& G&OP(N ÝQO(~8ʦȒ8ԧ??2E&zʶ2kFDB5jȊ8D aDaJ.,6XO'J8.Y !N@}Z=Ze>S[8C,ZonF)`b?95#)LœU@z6kŖ6M|RY`>>`AS%"r)4βk[`afIyulIA^z ;j(Q.}!N8r-9Z f&.me'F#Hȥp lfٵ@+DHі61T5,=7熄;ˌ!o`%ʢ`m^}(Dx,Qb\cFq r!=}<7 1*s\6GV"YW'nDxɍhppi1}Pz2`H݉&N|s`\<:  "Bycp> +e8M-9MiY!,YƘ1>]sJO% p3jd)vPp;] !عzhv 9v ~xвAÞ \k;Y!;lN[,ع;!hPm"!ӕ7 K;vn,GHpDvtDtrI> :[7t^pjoG_o;+bԬ\ ٩Ҏ#ܘLIp3ff],{çd݀]=X#\ ձ! xN>o5R6>_^ ! _fd\<Y5七Sn!(z vMYX4 #̔H*hoN*X~95 5Ƌk."D&šCU.HDֲ0H6qn"NCTs{SnB"4lc/;{t z:toD/>oDnئ\3wq#r'N.˝).+tn[b' i~Z[$=4ˏgGB%=n3P$;y)L9}.km?;CD +j).bh)ɟ*4 +)7JG||M1 ;rlB@]̨D:SxK1bŌ}ҕxFCޜVn$mܶBA5. +NѸ,j JW]L)I'E{T6෦3vPr t|mvТƞ^',a7@C{΃MAșDoYvo wH@4a^zS5yyS!4 \Og)؇:Y :\caXCO -*o/Wmkw\Pm%NiYR?݀[zÝs%7#:3 ŝ4mB%),1/i(]{BټS*u\%^ьa^%i_ ǷH.Kuvc$kV?ش? 9LlpKi2NĄc䃗x}.{+QBaӲ"hW}ؕvSE3,2KD*J6+@uύ|&t(&+]$H8[,ep,v+)S>{.l%xTZ~[RT.< +iV&c e W x4)Z_@\7Ʌ#.ѧt/IA,N^8(8LcY^:( + CNs:,:qp:Y,.7ۅ9dUwƪa/dV;x;%VJ7d Ƥ©jO{;Á%(#Co1=KCFx}1J. Ŷ#<uXlXlXBԤc1$c)G'WY=Z'0d2g&f4O6N6l1!  +yQ@#TW#yOTL_Pfnn}I?& H+Uk+$]م\&/'+L$0BAfZaz(qͥ% +@Q +мrClQd9Zx@Ì`ZYL68ҋ¥9Ex>)%bh.RHW*7`N%o0d.a>Qy_koshOvO6B/@Ÿԓ:9;Rß':l/&ڜ,!eB&`tS,?jXtjRWc!gWaȮ*!w+C6t2uccڽqjoԺ,jj~h /@aah!7Tv*Ugĝ4[BZ@YIfmETPvS7 yKZojSJR2]J2.b##=xx6-')#0U_m-L ʬI'n@}Tm@EZ9@ɩhʨA^vTZ zknSquݝ?xӸ ]0Պ,TGJ_6HA6543:yzqzTU$ jIhy֘.5Q0bʊ |IMK +f=x褫f;u+Y/xdYaEǚTۑd^ nC#Iob䅧 Ȟ|ǵN/{r4=fxd惻_=̾o惼zU~ #rɻO{Wtǰzoa?wvX֎?tXpnDG\Ia-JL%IXJ- S(M b(󤮀BQ6xF4>yG-F-rG%=bAJG,yE=̼OJJCism>f-3ITK?z둝xxG4^e&.䄃xr=`¦e# 2L79SZ)5~ 0I5AB*+@xk RsxB +hdcuq à Tm详TF +"/Ӟy`HO$Wz֨a,'P^:zb ?-N[jK*=g/%_;"Uʉ=FR_Į}wl+NN:=%LES Q\zt lgPƠvzlogJ8jR^40yljrL)CcIy#M:=]X0<ͩ`X:<mm`c5l >`P\:~>cxD H~aF#P=c#׻z I3.FyU V +e}pug^8?J;eڛID5%:J˂^aj>?*6Jljsp}8su#t+tnU#xzBX^5uUM<ֵFC;*#IZCR)9&MPTe` +GveUЕTTPW32pTu(X9ê)p0zrR#5ʺ?(RVrOtkB$U{#1JBJ꒘0j.{6=P\&sIa9SUݵٕ$[uGBF]s}{L%27I}xt`2+'c^1eqyNQׯTaz@i=kKώuޛPqHO +6$%)T: P@j Er.H>S*52#p6Ԩ;<ݾХp AB<1Y4J~ + +5,[hj-ojRѷRjplY;Z-iT +C"lfmֽqD 1jq=MDүا3$.7D/Oz~k@:ߟO!A-~߬25O##ef<bo}̰xݽů=a{8¯}5eKnHf!Z3$y ֔kX '6oMkH얮.NўoB^]N߰"Qըƶ;(u<-MoQVe-%Km +[BgMڴӼa}o=W7ٴ2\1y 1SahD:0cV]+1#ే54,oK+j6,e?R%x]Ub( b/4kmJ9lv<4űf\e<1#R0hHׄD'}]Akщ;.c/XxX$Jvcf7R\>SZXB27,U]5+'kD^ƆTQ\qݮ9JKvD\FTydƳ2{e]1"L7OL7r sD8m͖#g-Fgo@x,?,%ゔy|tSzBMU!A3LeLJ۾5aP&)}t$Ĝ`9}L1X,,Q;&d5z'XO%eEE5\e(/4sTxRS _R*C{nd"ShjvTCH:r:KW7صS ]Bn>e$֚jsL{'ozPQdm'h Qd;6U +'µ +ԗ!P!\(ܩ]闃;ƪ!>$Է3.-/@Gm?QNoY 4EpI\#U3&vT oLeGBEtMo|h,7tWm*w4434ѝ<:o(8n/9XCJ&D$Ul[v!䁏Rq N|lٌq~,Ȥ*vYH4GTׁ5$5@69,Dw>[pKtJmu;-KCҏP'!zei*G7x>;ւ?`kGwGp +R|P|l>PB5hoLhV#[֚`l=m(p (c5sx#ק)R"x53|B5D !AxhQfǨp}IiCK߅CUcCfkC{bmxȷDAu! ~is $;dqN 3*V9">FNeд2GbkTFl !3n"bd!㲉 FkxDH +dI^Qbh JTlJ$H: ȍ FC Qooh7q +py{'c(E d\]oV!ox{\\Ql#i/q˺+4#EI{S68$ϰϖ78#zx侂yV)ׁLZƒj!HC5i}4x9~YЄG@s[}wl͢n Vq{s9OMӄ;Fa3[>N]cB1؊#gE,zM^,tpQYrup]`l.3j}t +0R\BɘohM<7CK[^!M$ 1gI;(=lK~D[80r>*|tomKvGpKtdϔ,ϙ- ?m[E讥y))u{lBJs1["(|S GrŔ$tBiɋ,QB9daWҘdp C}IYBΕ[!NiVtH*CB2V%%]VS!^!Q˱vra;GU+\|',>Bi-k77M:9l4lӃt %[ 'HdqMf>b;%S6߷T,zP)/~Ud'^mw\ʴ6YT,Xٚ9uwT`mZ +|kw2jh1TSqp)^Ύ&b8[d* e{bTw.LitSM0˜Rޞ[$=Ǔ+dQVnl;) +&]I pКgLhY ە-Am쇚pمvI|53aj%XU\ 'd7ѪæGS1ITǡŜ5HG}HPsD\O7wȩ;wD< p Igkώf4|=Tt?45O2j믕 NT{г]EBݻEV>?*T/{B< +pHqц^d2|IyG O3iwXWDqz"7x!W>t>rts7ߏ;d=SaKF͠SE)>{&x}^LH$&ޤf5_5__s={%&cH}d| 4)u% n Max_0e0࿏LEV/==zAk:$R~7 X<XüĦ3%cmzMX v\\k55qy˅;BM󅴇0|S>;<@W` (|o=Y)0hZ)$Ǽb:Gfx}M !S]E@UVVm*ׂz&vB-LBD +uURrJO-'į!Eo4R_"TwG\lɑg}x6( cp¨ƝD17=YZv:olQn6社Zx,t2sz +x:Y4*p 0t=.4U2C5^R}eL8OQdcݎ*DE +Ê6GXRO޻c^ +B(,_=* YVO%lvuJWXhϫZ8MڇxMC{ *!}j bn~:[d׷+9!2A:S2]CFagcjYSS:&7P>6>[ ȢHENJ~A1>K}(W SPP(8Kv4:I!'G xJPY]d,0* 9D}欼HrJM{F5֥@)zJL,_ŦT͈ӄ:ژ"ERTPU/)WaBm8Uw)tXL8m<9H%Ig\Axrk 8)_r{<ű$5+ƺC!p(>ШgmOӚޑ5C]{QD^f"Hj-Zq +QwSIA^oR1rȱ.u~^XGת@OpGg[`ab6*2ksK1!#%ry^7"qc}JQ̉_lwcOWCyS'tnm)w)>s"0+Kڹ Hd߾^AD`UarBHi$bnɳ.X n.(ӑĊ@G5E̍ ճ^c{kB?nSϕUz=^;a(J|8p\r/qpS_Le$ř6n๮*nǃSo1=W){9^%=W Ap[Sxͺ9~!w=Wm~mA!/G SqW}aMi=6sۭҳi׾pQ#}dk$OtYJwH^BRufnOv!!l~DM t^z;8C>Mh(^̴M[VGtkO﴿[>L +w8~P7CEO:cO 붏kq_ h"lOѹM/مjrt+**=KGTp]Y ӻh_ޛOzQ+:EU),8I|##* :o`VJQ̄]ö)qi2y:Nhtrһp*МokK`݊R [SN&hA]Rk [z?efj-ZeZ[}0\*8LZ(BC3eKA9 e$? S*<`AYs) +n5#Plк1*[;ke" Ze /`lU醧Ho?+X3(U0͇a`~Ѯ`XRW6oΊ(MpZ> "9wLk]J)5fuTNkM>~3Qb  ('{!("a\ +_'ԯ#\CְR>by|_L_/*!nu8),lXhKE׿l۶m۶mm۶m۶m߽n}*rD䬨Cyn@b-me%Dc{|uԲP[I"Rź' |9Z*ĞqxEHVFTF1cˋ#P_kiʠ8?]IЍ/3Tz2{bU Ʀ*"Ֆ%Ç!cu[bj +rIrJ#"]/'WNyDfȧAP^S].Ke?qoE0'j!/at$YGxMh~ClRLM)qbiSUeWpũ7@Jo0o$泭TwNj#?꫐n$XۧkI2k 3m2P5j0Z[OűVIN;KJ`Lz ~fɸ"gK~. 9SkeE.;o+VSVdG3!#F-1*۾'@E.X'}^x{YX>ujx!^N> gׄ3Kr2%g,J`6Ӕ!F] +҆otJqtEN;rT!m%H/"[y$PE+.z'.mtW[s\cO{SCWÿ9ffcN7kܞ?F4fk_:g^ 8n%L] +LIʕ x # KFKf-e1JyD"_ :oHxWހ~oLwhS#ivuQaq@c\oXoz=.'hm.IO[*a]c`B&`"A׊D&M*h\ўo=mU}-O_.쀑@l3PҚ#5@&߸ W3\CX1Su뇠{t;5v۹|@Y,Ch,xH*r3ѾhINqE3z9TbRCD>ϨnvdNU mbs~mnTmmEvDQZБ!^汬Śe(J;irڦ(؊BMtO`F҆#bcٔĸ\mzG!4 Wŋ_22GbQCV1}MIK9 lQ4Eۑ 5Jq}sOgV9'\B9ԗ+cvUPƑ -}nyR2۴vLY|.J&L,jW\v-7~FAtbsE_Ѓ6N6johRI#jXCWf;+;;7+4VW-6IJBdtEK1(/:LHR󇭄܀P9l NH7FSMM +TgUX }ߔy xnN*9hk#9ѻfO}[*&㒝0"볬?dӝoPg1GlI(1ʯ譊&/Fc`/שh8(,'_ k!" II'梔1ƳV D02i.f[.dA_2]BsWpڴWpJ6n:AJ'Z=525nه5:AM3',(#XB)K,%.yQ5k& 6"QYYEǕ8&IVBɭ}I{5mF5i+TaQw,݃7 ei0D&ls@iOl[R4<.zs=&ݑX'ru@Hw#\>NmMKE9VGj4,'_3]5JZlHUȦ_s(Z5}q%*e;`Ɨ wj]U%(&"'Dw8G-g#g YDlؚp=KC";yHA;E;帰MJ`>u>jK5wfOMD7JzD콤gӐp++1fAffڷر o۟9  @_t155q41V45022qrg?HURRA8g1n'"WJѥ&T^b72WYPz?QۢZp8 g93AjPݦ~9ykwxLq:х[=-c!Bhz=oրLҬ<ߑ(x 2\\cx<^{‰d]@hzk_ I ,ʴ^xAW"ek*m9aմBiѥP՗ۜV)QBUGAsf4"1V+2NԌ,k UW$qu,N$}T<}*cg]~ʂk2y>ҕɊNs 1! WziF64?,Zn oN1BsBgP2K#ט@f24]6)@|,jԑ`>jc:R;9.M|Wny# [=n'8W.ՁO}%r5i#LBsKh J^yr23rNDVaN~ +{cPN`$VӪ@ɺn4IҎ%VQ]-м f n1p u!kOddU+BлN̲ :Unc7@9Q)*T=KSXحPLCdE T#?@wr΅ bk"S,MaV6: goZ^\;C(gY(@8y>uL]-S}%.Ó@zL߃ R݇ C|ϗ{n^Ymn(PnlLL]ywe%YB>=1 *`-T4ҾXEB**A|HDTs5|zAJE_5H&*Al~px4_;]A0Ўp)87G%ٻOM,)Ȅqk,+ԇx#+G#S3dn l2՝ év~**|7m,|g xۏ#3DYjk㌎9XAq ^!}F<9nMb_6 c+mb#4Z qvDm>Ĩ$.D'I" +sO.4!Ds`w"y4?=Ҿώ$xYkh$aL=y!T1! )e.-+:Kg<]<)U; qaw6^fjMIu*Tos?Z ,&cyyL餟8BMJy)hZ +F ̜)a&PS/E( V + [R晝1R;= #I wh3+# 6݂K,ih.ڛdoWH +"pl%u$6;5%8 T1VHWr,w!03$[nҋ[-\vM07#s0 1nX^ت\yW<'.=d>H5\YiJޅ jgf+6>Iw,.>JOdCpwpm *7h!f][E| $ 0<`2Yh k%lP;sT/yMl{yAj{ +P̻Bry$'K"ͳ +ah +Pd{C>i9$TpΔyCP6K¥Tg7isU=*#Dz=<Ϲdd3XFeGm3f #FN&=FxI5K + œ(qWj}~a +-d mނRb@mH/2˃>RnZ<흏*KG@a`kqS:fxmk<kukR鏎5 x㪸?c 3 U̎-|Q?CrE,?EOp9:`Ģ#V )TyG *3y~ENn}Jw$g5@/ɁfVL*vQ帞"ib45HKDHI.8 %lI +VLVi~y9߮ҠsDL'0Lˁ9* No#k1Y b"t/\D X`:Q^SN<"BKFSY瑪IYIS1%뾝rvv+ۍQyE&P@HF.*OQ>:FO#MAKew+ md qL<^iKum"l4Ω*Px;`nj<0'~mHzQ?V`5û$?l!jbFgT.%Ow&X44M"Sb`A'ƬmVy\[hXB-JSUJZUd#ٖ(DiPF88-XtSбٰtѢ +cI +pkqb-mҴ`!!|-ĥ>| qw'v ǠMLPW!#29'3]EG&\ +YF#T hԽ9A99FD{9@`n4m\cXpȬ.rB7$x2QBbzuWh E^?PR9_5= v&Y2 [mv GC8tjg0?fw.Ohᐔkİu*ЍǴ[p,LWr[x;"\gjYzl~QoXO /M&ޢ J +.K̉feT `x zoa-)T;'3CV;6מ a!f6X2=~N\~" e'7$~TDؘ׏bYuI$fR`Z?eT(ʅ-_ +<\?RKnH. +-tۉPZE@{ɞ*ytAhx +HuJܟvr[:[eK8 d7l6B6kP֭}U`XNo7. SB’6 +<Mbix6!ݵQ^a=yJ\[g Og ;)4D6xF8 Z8;:Zb(?/z X$ DلWц$2m)5TRjj1?wHlMȚW6иS AqsuCʉ u|:|{^4_ #mFniq, uކ x/ OڞS1͗Gݷtʰr{!FGe]ՔkXgBH8bH9&a# c; .gB5Le(HrԞYx6'YxoK2&uϰ,HXxki6!muW5ilD뙅bUsMA#-3%;?D>E97ȇLxt2W!%UF#U!>;A5."ʑ_W UV겗hX*3#gJB-`ԽJ-C?? L.p~(cL꒫$B^(gb$VL{73?\IZ; Ug{E7Ze/Bu ÛFQpX`pc`b`pF5ֵ ֚&2iіyXr{,fVg; B>ۧ:Ga H#0DdYA'k7 Y'1Ke*ZiN1ݣzMC%3߻d%d0@>E;1S ]1gág<`#R֏ 4` RO`"9_fg$d)lJrfLFDIcOoIzY+ BNȘf86,3پË{J}~fOި®vӣCd{@I/ +䆦] >|?  Z]'Vvmcp{>C[HN^'w}^.TG-$Cs5uYm +<4K5>٪\D?Z +E//0Z[fn+55`R[t?Z]_>pP.t<7ia#bf.cC\"K~}}%fX]C}?ɕ^1K`.35*嚧{zX(#|~T"%ڞÇGhocBnB z0B: 2!Qh}E"_=l{#THW~?jiH<@'AwSO;00е]3YFoӇ2-avكnkޱPWmcQ^옪A{%g'yTv+s̗sp';@WF=T[zgeS7}pN*Xu1\_uNw?t5 )(9+Yxg}eszA3DrHRx="jT0!ma1DUtiSHh0ŘL:K6GjΕ3 ‹ +t$OD YY JiL-0ޥs)XVS:i6u4'ٴʣ†YFӳLD`z=j 3HE'0B <}4N:uၭ zxԡL˜d,)\_6NK?n,P]%vo+a6HՖ/j SV18}_\*3Lܤ +PÖSރtܕE+ '#({CVNJ1hƏY4Fk?jw3+T ZHW]Ý@tFN 3IeG'PU]L/7{Uc>ӝV6ϊ?ȒFsPBWs,U3AKHX@Q9"ΑJpE)Qˁ rXD|+aɞ[t٦$\@0h X4؂4Θ5Jh*=\?' V{]u%i,AToG']_]m o5H4hdͻ:X+ZxoaH|D"FIJ)a<j(qT;"^: k +[h4[^*tK>N#S˱zysbh$yy@ocJY "e[}48݆{%ihsW9/b`%?ca5DuQ[Ldt/- ӱ  :;tl/5(#䵉r qd7[?aWK7DWHg imvQZc`UjPa퉽"4ѵ='^6 RIu6V^SJȖvQ5MtҪ6AۢLI00k]tKXnn|.sK+8*a9|dA=meSԐ_57UNqB5Sbo8M +a,`u7|ܾ|Y&VdI-YUNMtjpx[ 2^Ҷڂ}2`5 +H{B۰KafކS@/T&#}nvϷTC3.X@XpnD>|駼!(/},?@8#lA$YA2_ѳWO{4 yZä6$(v"քFCʗ=z8ps!"vd]T^mx0p mƷ7^a8z!7&p7.={/}2Ix;\J{'/m=J/I^՘D_^{-^%݁ǷD,(J"kal=-,R{RBlrT8ñ驯k.؇&ٯSdTH݋Έq@-qD(Haql<ާed2/Y,1,z'/ +*-I`.(a1/a:'du- ʶN6tqݽ9o%*W. E{};kuu(Ń/uu:,@Kg3:Pܺa[[,V|ӝ^H1Yʣ{Ewz ʍnl_<-#løݿ^QjBaAj7z@̎b)*\kSx +ђ#EVCFgQҠƈi_$`XGLj=07i-~Q3@6)E|*c<v|cr)dHG4a[QbYBƆyTEbrhs:$MM:^Y;b?jΣi^p=/URD!kr~jZCIVCeC&a@dBQBTVZ)Q!79uB~}m9&YmAo:%hOwԕ#ZADWܳ) +aFAAHXĉ|xu!8|h?/uz{$j>aWm?j dAwtнJ]$-s1;}_g_|frma@~H;CZoh;|ՠ(+QUyD.Y1UĔc91B`\ 6AjwHW,*ڲCܑhȲ&cpRkGa +DsGS +VcPRAIXfZ'jnV\AmHe-d/צ[O0JEA]JԘ!]LVim%LMy;ك)ZS{Q Ha2BJåhBbZLiInzf*.%v$,͸Oq/e +FPK Uّ -kbi8)(Hwr}-*JXG^cz\d3%V`b#$Saqh + +L"lD8gV!kK5)/0?. +f +* +J+ +7o&7JpAEAk +[EAMU %L}uM*tU 5EUS}SZ| };80_'YER™:B4íhoRG@HxAHI|JFi)Y;'nGnQZft 'Uě +#{~~:] < +q! ]Bn Eq0,rci{B;LЭHafU[0#X✣&c&kSM4KuZHiܬHGXcEfvEH% +dL5LVų+UW0ş ) ?ko.x1PC[ +ӣi DzH|p z^S3h0S뢚Nޯwx`QVĥ_ h bXA4*>4_u)$Aj3`-{ys!l6S/ PTGK|huA/7̍2ފ>5OB=Λa -l+O3zpq;uǹ42@<|6ރVr :>o,>2!*46[bneP}j9ٟdr7`I]%M io ŰD3Ir;A8YOYekjf_f&Q=fm>^.;gy;fxo>a \-v7 +9eD3T;_3Y_CJb'|{^w763GPI2.l`M\oF]wCC(y' V-?Yے`6I!+z!vxTtjvwYtM3_yXJ96[u_D>>Ag;C]588G6{|nyM +n)Ep$!x$dN{#R,T( qfVf%2LWh +oS 0ϩ\UMni&V5b9nE|QΖQq,%Òʌ㎎I.Uʄ-4eT"*RF!,BlJJ2t`5\\>SN#u Ʉj)jՉ.MkQqmeqltH#TKB/ ,Y"G0RSIg^%bƫrNAٰR+nb̫]}Mt &%;"gu! PE*۶z*K[!ηikRӅymS~GFٰthHS5~;7NF5 ܺiϐpH4QF_+%c'K&lUOWF Y'3\ # VEnc$y36׊TzDQJ]}S^~A:+x{*pwC5/QO_*W/٥C8̟0W5İWްq zst:Nnj/7& 7GUr*|?E;t%X;7 鶖oo4&WK&D޹ՠǐ촩Ab'!PYw/FC<&g+Iˊ:H`ځw+N}9 @_w.&ͅyd8r-/IǠfPEE4{sÊ[r-M'xtmͱNˍ:m +vE誖:|n^ްkԻ)ظ(~yf A}Y)Zu3Y)qd+1 9:Ph@4MwȺAfZ;eXt`*__ mؓ&_8 x6O]ynTx/56e,v2shcyuRB`jx˰!Q3. 6 +ǃi V&Þ( gܚX BK2KBt`fɋY6`)g6hτվd;&J,k|0yNMt -+#?\VdZS %n1pӅ`F_`[fIqpPcci% ew ғ{#*,C6Xđh0Jw~ha?H~^x4p1?BWo0eާQ(ا/B6 ՞QڳSӇm0k.; ;Nl-7Sӷ(nuU:UM qı3f  {nPЊBm Gv> ҭ`(HSy)ԉϦb<!> O؈`tҭǁ$ ᔫ n 2+G'˃*,Bs11;٧dY~e[!,5)k ++)Y0L3,v$3^/XJ.h^, bMfzs7/'gVKr11/ʚ_+""y+qH6ArX~ݐ<8^ X1j"3I9hҋ&gn 'A(?{sm*1iR.5lM˃Tc͗uk xFo{`.A@a~8#SIwԥl>nVj;?X'l̼[*b{%gzͿMt{g8+$b*!" Qێ^]6& +daDDTζBY\M;aahb 3ʧ3xWk`nܼd|h'|$n@{ٞ\-6Vq|S#.ѝ8PMږFT>]Z^:CXBxa j+dÚM G)Э$+!(wJ֛Ft#΍JB8+֘p9 rm3~H5=0tE +-9-˭[D|Ų)eyg׸(l qwؼr ;Ttx(}?7Hu !+Tf_QQvV[wCB7`n7G$ܤ#wǺV,Âh6b2K*4I'D&|2^9_OexZoԷ$ #Fq +m@Ɯg\NVM4omߤ`H^,%5&ңx3JhĐ +q2N7֮!"ae-V̈́7|\s 췄Tw>O]PXwl#oZZ ;i97=aM0>9?B?-He-]рɔX_͡-O=Zn,j^k'~゛j n9\Oz/sʆ? ?BĿ~PonG?~)W|)YdHƼf s~:3;y,B}I{]zC㏳:o ~i +|i:mI肿$A}@iKlo͵.'ZbN^^ݖܚ)cQ0dv:|uBQS )  9!fJCJ[4?>,+*++?,[Tmk6cp_WUQ#Q6_fHbo#p +~>M'̀{T 4 PT+lK""dTY%_WRjT鵗+{E++/̝lmSv"4Wd+66@?}C|&!m +,6g{]-c?٢՛ R` E!ykR6K8 9*۳xr̬L[xAX=al̡GA?"u<¨irsS_=פ`G70tX7G0nO#A;%ȣ0Yܑ~5&W}T[#LW[4g{Q;]Vvx5 ~'=ѽ_j\syOv\iw-sQGjt4r9./j5Q`mi+2[´jHx$k[*hZ,N*7)Lif:B=^B;+o+q}{]JŦJ?Y'fӏ`X(ԃ(T@jPw/`gEp2P"ܢ31n{bg$_g2Gd_g@x!?F Z+}N#רCĤ)SnQ4"0Æ&wo.p'潓UXY2 c.׶V3/>HD] L(˨W̱;r/VQ +&kԑk&`9$pP'Q+#>;,I=WK%ghfPY!١ؘ'NB`9 B`U;)cSO/O2j*O's;bXܬkr7S$8MMN6(z*ސ0!qiO+˝E;+x'asT=ѳȏH r%`_+Z$ +ط +7<hϡQ+L孯$p9I> +0?Rj#?E/]=#`89TΘ)[k aty 9L? z3JfTC[i* +<zfKCQ_ >"Ni nVf[4qo^יFQ32|u[n[HO\o|7&19qeQG0ZGZSïU,T)*oT&.R[-cZ?65[Y7T# y+ا-̅yS =]e:WAQR"VO*nsK ]#^z6e zAJhx`kмf; + +g9F&=Ƹf FǸcJ +QDL#<`:DnǾ%=I%z0,Sv_%$GOMmTY+YdM2($򴙊!KԮ ־O nH4kHҥk&>]vg 4 /!oXܯgD!$_|Xe2=%Y xhLFrB6 z5\*1zmQ\7z|I8T6 +.2l]" u{ &F*)eN^8=JqN#.JkLEՌ U[.& +2crxц(lUt|Ρ JWΙ-knYӞV:UH!x,H"[uY y.;. 3=Xc}YYYy݄Y: >&+eFs&잀azXWu+SqGP=(9+}bWhYє~X,ESu!HƇ ,L[K4-Sd^JY*Wnu,J]#WnlԼ|qW0 i7lY)(t(瀂 [~_9 L^R(lڰ{v{V;gqNQD9ђXb–ZpA=)wˣ +Ul1;R qStɕXlw‘qEID|)C[`K(!p}<;1}LB*Z9DZ-j0@yaq8[H@kPRϸ6(-\PdJ1nuJGLnuE}7UIY;.%Uh qȢܷWf[PdZVBLTE |J斸-m0'Gb<َzy}ponk8v-½W\ilu7~B6x~Z&Z\m|d559dk}!bQR)_:Py1_@jPQr2 Um;]>[qY9(l[E%24O@/LQ`̑3.8C1rѥ8BcV`2S 3v𪡳OTM< }Ƕz`3S20K_-0H=KrGoM!kG:{]qUz[szT9GSj_ [G;Kufh +@@_/1pW20u@ #gA vpAxZII|2ϧ߁F١1czعL?xt fWԅ : 2v\al>Kht]R 8y!XNiqve=m!kʞ$Á2qSOwⴋ;YǃM'ȢnÅ_ 7Wh$SnrJ4/031hBKe;¦|{l~̋%hVh #.6o!PQes/ݥ&r<95JpMu-~)j 9Z͌_N H,}:r&JF?Xm igֆ@{0,=xmt2)8)e55yeM=%5iD:$פdLH&$)yOMU~a/{ƭisƍW@+. D"f B&CBRhX9uK|Ta\L)N0`4/ wmuu=פ2 n7[ԭT1.G*Q6V99wn4lM +,L6Ǒ 9vK̖Bf/e6 +(9ϛ,OT¤$ꀾ +A?Eq4 +EGNʨv ؋lĴr(~%jKÎ* $MB͎,L:dd F1,!vTcr7ӦEK-h0f.\קz)x;?dia<Ś"NTEխ +G SPG/PM +R|sw$zfoW]} Jq#j(U.ɜ}:ˑ߭ARiwS# ]NϖA'#,6 +6& -* +M3o?c@ZD; +P\};4kegU|Uk,-Fzq G/ +?޼Y +T !5GO7DK;td񨓺=8MQ +mqʫzj:QcȐk)B!aB}AHkB@F䐣!$d%R%TACJNW (`rSxSTv2S3e$%#L#8k):M-(T]ě J(U^֔G)r,W,R_J./XgFO|t ͅ LJc`9R/!57Y(&y+T7s/wXl3V-[Ǜl {j4u\o"sTTm3c8mX͊:#=`(ryD 3ZGۜь|(9/8/O·vmz2?epC(CIEqDQl:9:y=Y(1 } +=u޼0gʋA#)$Tj@&5iݨ}]^uc[u rIJOvj|IHl&a>֔>ߋ͔uVHS}3CDw˟'V{{u+awJ]L +}GI}Ǧy|M'~b3REb>wCZa*ZsRw6KLr3~J+J'A`縀E!rSe"l1bd xD qJEkX3~HJ1Lvԣ +ш8,;NL&/jZ0~en'to̽cEUgbqsEy!5^t߳@J2f@20: IFHaMYƼ70l-!_i2}֒ s8/iHta!JH_yJiX+_rP o]/y|Tv^GU'kq|qrsZ8fѕ%h{2}h%/ {UW=vFT3YGВ7Bg"T!3|0lfXu̳MbY( +/Dl!JaI@>NV^U %?_ ]נlRCYkF;CLڋshQ\gY0!/eEM$.J+)Fl/ad¨-̓ 跛4B#v7yDK߁!)a)_ah.De,mxXיP`9d%H +23&2p{mv:ny~L7Pa=6Z숪{/\lppu'!̤ھhC挩G+iNJ0=epMO ˉzu]:2wضQEKeC兠7p!Ow2eRƄ+\+\6m=Dwm-KPOKztoK鶜0 ǂξ^J䝬B+YJXu2w H26u.YBlIyBm?^:wvNKbE{3yg0jtF~r;ϡ>:sa!5nj@3aZ3%(ngv#s>K>@xu˵t38ifƁ90>58=PDQ>1aGȊ8mk0>&{=9%Z(?J5ƭڙH^2Ɠh6͍zzv ˭h` X+6Q"r6`)URdl8>z0M=yWܞRZv橽dy}1nWQ7A}iËP1F-Ɇ7Q9mr zk'ZSO-0Y{65U2 Ɓ4qM3BhdJ1QCBҿiI s' u@OXU rcQ_+N;<7+\yƹY.ٔ|1vYv$5 TII̜)> SiJ-P:$[ͦ#[bŰ[[eNR=ڱpgz剐װGl~Ӈ-smmW 2L#f 3L)iltS)n{qtCOU% RՄb TF"A5]1wz 0v6PvS˺HmӆSQPi\"}YC_J^de6y)57InF{$<]aX5)hhSt]3*;Ug0iE皂uuec2Igw\(j<;uKΟ%F(2lrm%3(=',\LK 5gܧi&9vbnjWؠo(+!ŔQz@J:>6.8%>6IŜ^wtȪdW;`'QFQ9;nvks` ɼT7я@Efƒ% 9Q'i8Q# +X QW^-օm<"7jCo}Ea(oa1@b +9G(C9HÒLJTXoą} w /h^a ^"Q =xxbύ$?Z|$xVN=rŴ0Y3!h~ſpL?"|ixKإq("zjެ(DxVn(_L]2dD%ETE>~VL{"Fxٛ"q1{#';+`ABsyĄl!0x[N?'iFs[^1W~S6ݼzN}^ +[Ht)D=/}̻ݠc +G'l" +-j +緼 dȔP[X9k$\+5^ȸ""uЍHj6&zn]{d@XB0揞,c Kf)eډJ\3?̴ZiqfA5S9G||ҌNayfJ,VކarPFщ&JBޖan6a%Gajo=iWVݐm1ưe:+1'KX[Ipn[pCgm6'rTؖt$ki ob n"eX[E68n5-L53y`eH?inh&lɝO K?JpRQ/ 8Y _3o}PjR#hnYN&ost(oJbogC ꬌokTgu4K;'{r__aU2W$%kZ྿}qSJbF ?2~sEwa;5jw=z|WS[(Nj`?,F3a״n&>=}Jay ӷ85Fx+9nQrߨ_ˉ9NӶ"G;v Jt%Nb]Lf᥎w'ޘH䎓Ž%zKzXς@tvާGo%j ^k[Oz )ŞjЭ.0pfèmAOR|qPUx9Ov섬V7€}:w%͕>+C @qV1r;LҸNau2dqcNӂ4}֞鰥z.6,(vX>\sIu|s9!fKU s51-ddďΔV%Ѷ)Sz6rRmvvcCMc}d lp&՜zU\0ad\M}hAMێfLW;ND3y]7HUqFPEICgEWVWn6siqdQ V1#Q +p [ OmԜ3!Y5ĶPYS% Yb\7bGMw[HP5x;[@.k_RQ^J1ͱssr +Xq\17yA[P:ĩ?ϫH[fs'SZN1R!Dj\kk+:\}Wܲ q!t!XNz/vI [&/>|ۏgjl[ ۢ>󢋽nfX`i*LI1)#{h iG +#WIbAx"zJT3W"dF*gw, 4:!Ty+sf[`ԑOn\*IcK|`aݾ7.>O\ۃOHF6⇿~a'v~"=/9)۽m\A iҽQ͇hYO:Иspd-(e'uvS[;ovƁ}AIHOCKXT4?}=T;1BkZdxpUҹUىg搬!Lu4yUӺE&[WDAЄNt'$y=8 JcI0_FsT;j)Ya[i^8k.֪)Oe^UZI t.\Wg6gұj;y. +8+#폨8B 3ka*j#J+p"zlJCn;4EJ,]^\$8P(,t:&6)8ۛihWU3=fR7| ;3XITBi泤QHzL9ߙ(< ff + Jcy}Qf@sI "]E>h%"G8M.Z;\l[1{D4|V2&-FxdġsĜ¥ CR* VLJMSNzdv6>'*x.Z'+CL%6&.`%Np3i>]c9mHF'?+3XS籠w{fkJm*'_+RflfϠ/´V65qWD"I"q ʂb(&!s*ZtX]cZ{:>II"6C?ۊw*dkt?|sp3eyDpn-0{aȐ._oqޥYnv,UγG5 ?moVc{!n68t9 \gÌ 1ݸ=vxHbDYaJ)tDoY)?6Ca^u;^;zmm? ;?V T 3;c9Ή,ԇOw'  cIt^:@xK0MsvwFWlbm EZq3y[ >3#/3*AD=@`a>Oۓ' ++6l[(:AkT#+"Ј$pT¤pQ^O~R'̜!\ondկlTſlt9sќ9!!rx Ei*BR%v,{\h\4 X(-Xr)>?GZ~2_SjA6Rs0[89`$:̊۩4zYiNjE~̗ϗNʅsp`FMT!YɱX #3vcO\ +1,|U!X*9Z. x+beY+vE_ +7 %X>~!9է{fv#HpCoAXX9Y,3 #PjWCO Ҙ$oEBwQ! + pOԦ.+ٞ&>ډ5y%OYVݙO]i䡽eB  KΛ̧)[b]t==Vv0<:i$TfZ{ A}16j `S vE;*,,[G4*ϧ"Q&Aef .n^z57&N&:e;v$yy e3HZS-Po~ .`g:P{0zp]{s>=tԃ=NƵۻ\?g s{& x!}sM R=bMzByTݭ-+Uf/+˘H/=4U=]rSvW'_>Jr|H௬9=]HՓ|TlycIK$Xfۡ@j?59@!; :Pt6dJ\1zY,sΘ59˱[GeC3wUƧf٥21c ߕ3iWxSM4s| 6iϴ=Y7"_;glQ#E^FY+lj왽R/ޣt!zb+/J Q@Im."ٳb$۶݉ f F!:g9\!Q4eDQSasS%W]y>]dBFVށhGEę>1 dX{t~ɲgy} ^d?-ܿp&FN*BhpJ+d ╡y&Y2;t +r<`!7m\SSƀb9W0Š|\~ `.:7)]q3L6?Xح ҆qj"Aw&_iȒP&PPJP'i(PBU TOs(PVG>AT9ىxړgTRjp%M[MK\dmͭrTrd_O..6la ss++t*+V:RRJ=.(Nihjͤ:0LɌʡCej*Uu6λI tQ;+wƹo_8P7Z7ݶ/W3 %$]^8u]tEFW6B㭨[mݕHМ +{}CdMXlRj\bC)̰ *ֵ;ToEyWAOKN3l4Ⱥy_r+-ϔSnYѼ"<[[Ld'ښ)ݒ~\Ybiij^̍F4uq;.D!4|RjM2ܿq.**1ˤPSNgK|ւM*Mxkske;b3Yh='K/6mAwk'ӄ7C =miM^̓!<(q`r߄m$~]0.%Mp="}{"oe8RNߴfc@h~r޸}:*ovgm-/פ̋aԅ'F(uicVߧQm&A;}YRc%:DCg3&8Q>0t{,`p Zrmos;lOt.XytTw x-*4-o N5rJ-vngbgthwH2koP!w 쎧'v 8g(N+? ܬ?^jd|vLK^pvKӶmc>H=P$'R\80;r Z<1\vtk-p[ucx@Rrb[C$1Gx@5x+jW4# qj`ΏM Vڪx]"MLVPJd{7K>BT| +-It(^Z$m?7FX@47cu" +rF8JGȤ:Vij'a#@tCw{/ZMfj>4:+ >h`՚T2 |Kf 6mB=ìQ~3!>H}xtg spی +bw`3c8˜a<Eg X6{ӥ2[ r\k<7\cCG+?M@N/[")5X#īĭpi/:H}7D]h,+6|gʽjo3m.q-]TA=)_lB )-uB&Y&{BJbVC_6r}i>&gx. $-ύ279W +@]̾F݄6][ /$  + aBEp]B~^.3)hՠ|C}d}s`[g/`4^{ΐR>.Q({& +(u{4k :96lSk*l+Ķ2mՠ1(4$obeb3J}ԳxI˜r9 Z-RG1ٴ -adXtbH(CBCOCoA=o|9̍ЙaBlٷN3~~\+Uw]wF}d l֍}|!Z-0]gRWyj$! + F'̬6ؘj#STBRRfffk׸JU1, aP5#B9sdN$*HmQN,r /}FOCQ9D,ZVU;6i㐄b9i8'> ;䙏/*U>rYG΃+S%6Hq= h{}}H{vf +B~;_$]wX UgxPtPԃ@_%AP!Qǽ+ +)A*_[RӫqR%c젴|eֽх_uP !BoIKIQp4Zh5٬;+>)i=4?B) =oȸE*;E%M4KOVſTYD +.BgA8&pUdQhSy f`$ NQ21A&8):̬sJ)bG}ʺӭ"fAerYd ;;MO܆1N1n*ʯ\{C+REHYk_+xS%#ܗnwX[d?ud^p-KyEU=U iUˊY-7 :˫C5/O2' +Nh+'U.t6-*uӚevMh(ONnOrl*Z$QfuHV@ +Ql,4,^Xל{Ք?i_AC53BM#bMFp #m}ئAT>V'u} +`Cv:tM+i'OOX}K`H7n刡eȷ]r6ÈX# + {g BJaJO3soYzs2YN wŅȧ"~VGԹsalTuI8#S \{~F\3HAY#j2["?}իw|jfuW^XÌaay 737;{fB)H=ڦ#_~j\/HBSI >Ɏc$@ x1D([/e d. UƦczYdC )= .GG|v Pc`=g͏61mMzCsuYp\gR𝺤r MS{:W3q4Banx>!l jb7p/lj1Rd= =H+ =;.MlX4uF%#*5P{X&`w'[䣶D &պnbv+{u֫Uwt~^k;ς6_eӽ% 'gG[ {ͱ5C'/t&l9Ǔ 0\0 X'@QmyخTE4Q! Й/_ԮGH.[77ӥxG~x0ͼϤs2d;ܶ1|q඾9`٪8f&JQHT&p'Y?y*\Hn$Y>P߼0Ջwbvɍo7?%W_pɌK4ѻ1ĞWp=%7}UxK]&횿~<[@_ ^n5.&nI(?$wI <5ǛstRj䭗:{7*9k&0UG%X< (i"h`js~"-PLg3>'7= 4$n +wWió"aETD;#TDDVvHBY$8`]pK' LL S"&Ua\hݣ,\&G}0wҬNSFMC +Rl$$zf&vِHhv)oFCf> 84VTj`IJH _&͸$oâ xH,\5J!+,F?^VBR8-()RD("L ca]>ǥg򵨈$aaר Z^nr\p+ +G( IV2јI S儻&BĹo!f@t1Ѩie[/ʰfnc/L/H~'Airt?d +W07Y_?DyIehaŎ;:8A&g)'jˣC7'd੟2F2.Fm!5f,H|KbX:yL+EACy}me;/yXf/g*&\Mut*E5*R&YsvsYf"&z1v5zTӘJ;֎"̓*Օj*FT!C!؅2 +}8Etn4u%aUMLA6MJyd2܋'/Y~6O%Z>`ѭQQAoa(C+ ZqV-CK\[6뺯͏r^ !SȌJ> ੎SI [f6K5!93`JiaE9Zbɗk'%#e;d+RU&x p}<֢Hx?$ubXn\ R546gpuܱI_~Ds8M}Mg&G0wh9PZͭ(tq.2";G Ah oo: c)/}%Lm&q+{4)RaR$ګ>Jnm{2n ^k6ЫgfPZȏootˢ&`*Z]s.i]rRs+^/~t\i_O?IQjdN*d ^fOiشAXB3+]IupC2 D/T iGns r^\eomz-c׼]fu-.uǔsX%2s7ﴱ8oYi39}:i`ҪXLA:}s(5 CȝD-⾧;p`|IG:t ydؗ}/s~{/r;71H{PIY>b_b1ab%?$QE0؄x29BkHbt B\HE:!gL\ s +Mr$[D,Ȥ$99%n`2aMD$lhzDJe| +=vӼÚZe"NdzUB< `/{L8=t(*D{['#EN`kF{ݧkaḑ"w7߸ǤdZ2&p(K nmbZ-iu lۮT)Й!kޛpYk|-Z\X陫GZe2c;! Kh!<%jYI[3Mt׿ +6^[R#u$kd9^{m g8d4C\ 434 =IdVL+<"e"C},ȳ٦lYx/ +/JAs

wA ^jU +dCo¥VǨ Njg_`Vn(k ։ԡwDM)&_\]U%hgp[!Z 4f*mܼ̆(r 7 8b"1+h wĒ6%T_KHg֗]OK8Mp[ ,5ϖ ݮy Cc2;32RѾ7L~\vl;WOpYW\xfZ~'Фcbb(XOtuA,HPT54Кa3Q&v!xhH85:=sji)@@;buCT⿸x"Zl<wx?د? hǟDs1}&Ϙ2Fbv=}ۂ{POXd?Rn oݩOGϽvddž Of׆2{ \rU5>i?aocڧn>.PH~ӟ<"i8[d+]_NJOH.jqt:2 Gy)w=|}Rzm0l&M[DnO_9h+ :vݕE>8,4uznyijv/ۺ +pwOҳfjԶ,D (jl)oۣc{6dȻ,s34ѫcބd s$ӞM J~7>R!u?[Ϙ:=O%u'b̕ˑ$Ʊ=p@uF͛I${x@9|,O?֖IuJRu{k-!bxJMMavv sJ(mQ&ڤY` +X'لUB 3Id_v?z X1# k g[ VѱCG5a!< + UmLBʳ#Ӵ*o4=dŷSV!(j2{ek= Az3U;zA JsgkLb>Wo ^8GL_䀨G$!N3o1I&_ErYj=^ h$ˠE-|JҤA*u`2ZXxt64Ej^A1kfߘ$揿bDFÓ-&wVCd2cɗJ'Nz5NsD8 LJM-ffhaE"|=vzL#ua:Ģ9 fĞ4ۘ5fǂHmqLgr@ d)F5,cqM> +8 8궊 ;f00F0Q]ɭ}=iY-44IJY4mS[Q3z5cHfdw}0C7 v mҎD 1E;FpX[u:lWjyrj?GjSfNFl}W:"\qkB7QۣjwZt[D)yF:@Zz g{ fX~ֳ Gr+N&7.rL.V7:`Nq$}~~9#o<}0sۛ_.BOG\{ g,옲Ǩ w; 1[iS3O$^1ïKh +`&9!Pz<70.;7[ac:p|_4yJ7fNO;S~t#]<)/Y8aF''*BNdiG-Md %E[c;A##'' H2fe4@bA?ƤnˣfCed_)TO$L%K$ ' y#H|22}Θ+Z:Sv1܉kтl(af&Ǭ@V bPq0dih:J<־13S#*s}(~Ѽ3kV 4Dy y_&ױ'4j`p>`ZPꍉ}!3ir_OBP}d f.Zsݞruiysel,(7P.Q}uui)p"rٵl5KRq ^fui +XψO>,y!8s!|oTPhf!B qyӁQ +[F&~f՗­fSpDT⨬jqss>Z\E;Mqg]*9O'g1 4c",0H,4`rkPV0uIHƜd3SM&b1^18ł}gmn@+V~lMDwIZ5~U rCIȀ,3/u/{ĝY?K_^ ٚ$\yϠeHLǹhngYG'ʷ +ilΠqy@0,3 OLb[ǐ|{7C+xM1NM;I̦sfd `"&8ؗz/2qB^ epz~l!to1rч Y-7Ruz4D^S."W8`*,qً&'ʶeG!F +r%D +qn4 #UUbt! ˒Iщ x\0eSɑ.AZ`k+~>qOn~wCCƳP>綯-)sكw]Hq*c4'jyNDATAUiȚ^=؜+V7~)UA*]kȥ[8SZt;qK͝,;5ћjOr(y[uƆ3Z h_Y3E\H}ғdViM6;їk~7jrI$o7+m{T(89*e=@GzlUzWDrtҧjd~6P[@|U%Q.iM +1 +n,UDZȹ2Cid.SC~7lٰ{H0{h~!GWEVjx'mʈ_FF4LJ.Gi.l߲O5J#U%_.]Lb+0џiZ44}+Fil~WW_WDžg%ف4e*@eՆ;֫cct"*GtG w Dz[khH.Wͻ$O#^5/m=`兽Gy7XWؓekf&$rZz(\CVH4y8u0zHy`13uZ4<2)`7C +0 F k* = lwۓ6 +K3"S^,zbM |F4 ̇2O#Q{AP ٴi-mﮊANϨP:U W>y7gjYF @3)hPilQkd9/BɍW8h%K0R<U,ր0_skOlc(jPn[?4KAn+W+n)Y76YX6ېzMW3uc 6Oc>>p=Z^H}0  :,*#ٸozm;`&^W~2#{ʠ/3Oɝ=?.>^WnJVm?+%,pIVuBVAa[g!,GqܢL+}^3>7kަAڕyDy,JoOZ9O~7~vv ʄumsƍTO}Uh0`Z=``>Å8~DpG VCZ*u̵u7Oʮr)lyUt;Ig*IB2gbORfGf{OFșfPQf^T j» +#hV]duRjz20f>5k}E +˦ڮ<ѶX;W -K#EH@k7b +/x99lz,FKoݱ!qY~V̴!bGRIJ]s8=R 0Ap@ iD}u"s9Pz»2<^N6^`?ζSLCkhď=$4}P4,/Cb]^d K9>X챀@Њb_1Z#=t=PXy|nh݉rDzBadxh\Eq{phi'A>NA46Vl6_DICPu{6SxEZbmptG<΅ŝM>m )">q Q[bO|OѰN솃l{ΐѻR,̊ϡƒpdG LuiWiASw#ɪT/L`< y fr&k x:+=u8qəOٞvAU(E9ޒ._[\jG\-r.'?f_?5sML%L&ePB~Uϱ`.%[Yۃ30yO<@:03pJC"@@(\ucA{ {tE +#¼@|F2x6.'0Ƒ㇗&yjM;z4(1j>CcaLl^J *N4uy{> WI{<{N,vŝ94ԽierAd3e,윶sPN +߲g;Z:oPK';=ø̦n MSKmNZ9.C,D=ح"w'bY 8:P2x2'ۂ ЇRӽzy <Ŧx@{[y}=#ϖ3)~wP5:J ! :` I)#UlY_U:G:d~z0F4T:M;<ā9 f>8iVG @!qg +i1gC^ޢi;bNKLG&N53Rĺ)3jW$NЎtʾ) vF5zG0r= P9 a9ZXrfHweThiLbܨVu!WK(`3d_#;z nޗnpS'0)=cߣ'v.ZVeSdC+κx"[ =C԰gx%[47U6rgoY_>Aȁsںp (w!J AJ~p2t+aO"U;1Hm45ƻ{>t1z6XRmQ!#$?[#9z#4riWvtqM/ҧG{*KTb_pR2"!/LSd +qCh#/bUb\x7/7R4-Z0Ea]]&Me\8-ݐ0Ccnяk + wyRXRX\ ́w8 .ܪmmÓ+3v򺇁1sztGd` += +Aw GdBw3;g[ݽ +ll cPߦu:ɬG^ujĥsF*NtlMp(L^.& .W3{`7&M^>m_|[ j#;Ur-(;MTgnP~JocXXo ]s@ڪIן$ohMm5llz !}3i̺_xܼc#,;*_pZT/6mE[ 'S0lM֡zNQ*O!=.7 `ȴw {Ғ5o +$:+xYI*kljdjad*[oduC,suE(fd96!TCh݂{OmVI +z?eK] @ xLm4##ed;ݶnq7~nVaBՖgj3ۣ^t燲3Ԕ: ߥHB~zxT*~ѶLu.XT*OgQ-DmYc:P8ruiRHj%?oztijđ2x0|dKv04:K0icKXܮ'YTnbrxn3ڐMTˏ=\9d26Z*eN~9[ ?r'_aqʧYAJyB*H +Po(c0(fZyOQp]p(=Y33]l@0f98qFKW6(jt +'s,O+x-24.8Zd.Mfy4åVafufQ.\Bˠ."]n>7$S>)Z۸S'T)Ț+k@}rS&x?D8ic(w:jX3jJ€\dl^Es*v + "9JaTȦA,DsSz3߼fMZMJ;mu: +iZYw%Am@4oc71C.by~30M}5a;0ugp1YXtQskzd%lL5YDMѦtQtjLdӦ?X?Z I_:&z*8@Up78nF8Թ͖TLEuy$ۜNe4NҺUWPC{,c5v`E 4D/a ɛf]*X-|Z&tM1x qjop}a{o4͇qFAl8GAI1@Y kIgW]@E;L_@ +2N$ZiS` 630O\+U󑣾cDfK= Y-=Epi5Uw=aaC4>&!(*_1{L|^OY.ʌSʐL_2lFs'VC}ŗ`-f_kOC1NY[ vv$`U5qTPxaaIh⚰X3PLOyy +1|*ۚP-$T4MD.)kR2c/uvn{d< D9T]ۊ.uк8@Q +(Kڛa+,<آT޺GBLG|0""Vc 0Ph 0\/P_a< AHa@Fy;pu]7@tmWCYE&OpT.: + hɗ/si)b=θ_I##܌y4m; +0-H/s1*Aݞ}{YGZlqtarĬe;10'?T3c㢑<c4v{ +6=PDOaS'䤌43tQQDMt=:H2L JX9 չE>r}cFd*>lRGgkbb/Kcϑ"Y:&uһ;̍}NZe{\6KQ6X?jw|o{=!ހ.DQ$Bܗք9&AGi-F t>c>TO\i(hvq~}`&bW4zjL>yNS IYP4 fNhJuXΥ]HRh+I)  Imf{W.KPG$X& !_E+ad1YDžUlBl"s,;5B=;";B;bj0i/K<65K}9nlkMn@${^|{KˏxYBCS5鑎(_Pd se4"tuX1WE2;G,pYb}jUBڙb8%nHVG$ʲ+LNBtdfJ~Zή'O7}>g@JxL%jSRnWxZdkzdZ!CWkֆ=BzOKvJ2Vѯn澽2aFwHU纣꒺^7Ǫv@nZvAChGa7bo]睸ș\廚WM>J&XRR(RZP/_2QSDKġkr5-6 `vW)?S[g6K5UlXnp}1"B0)f@'&'Dn74FO<K'-Abx 2gU^Ꚛ ^- {7׬nOǝߝ<[<<#oC_,2X0CL|(owԷ.ܻD߮rmWF9/Nxzw +#_z'jo3jϬ=7Bл'j#گˡo +ow\mџ|Ld&_aGGu(H0ӖReI)6;ˮݕշn7N:գ@iq! h!l+ rU-GYsq0-,1,:ZE v*bFA4S\Pe]:,_@+WL/,Zi`r773ZBc-i-.Kv;71B +;+dbuJmu졁MeTiЊQ`QhL̍4pJLm:~-b\k2/ml +D9?Eb:5 +d2K@e,(G' ,ch:G3vw.$k*bBar`0 +wV51 +r)к+&Heܒ,kv(%Io*KoRPE{I DLsj5V9/1&W)TW8D#k [i%s%gGBe`ebp!m֢)t{k5d,7 Nզj0w!-Db-^WWV<@EkSCƥc1/v!+z*pS\U +mԇzxuJ-cE\vUy]| ,%|KuwQ:Ⱖ8-z?q3涰JF_IͧfO2ABC dwX4T>mϯ4ĵCSBB}4T$_IG=ǹnc(1\3s +x(bSWTX nShMHqc"`㌭1혨Ѵd ޗ[̯w#<Q=> )bẘD1_̒øHKxbzjXxbjnMZbsWI|Q9 uY[@U>?MS.7tPZ-Ohewj"Cԡ1=G!LA.YOpgu?e/ FFrۉ8$1k" Yʩ"YK" 1ChsH WYk5jU׭e*>4 P?^iwq> SJel+k87]: +} +o%oA:kch{sa2oJ8ť;`C!/$p J,+Xꚇ)3ANa,M4W z瘷ujٜG"eԜE +#fat{{>䈂sNi<2BB^|۝USMV+ËZpJT8csrXQNDVJKR冺Tz~c _"qV]諺0Tr)L7S&Ý2L.Q_Mzdo8Aqxof'gﷶ]DTc(;l|'FwʃbG2%Ż=I$a[8޻];8ZGx)tUj O؂zE0I*9fVXrxGlw.Pɼ;*he6!pBs"WTTa@"T)d ʚ?S2fj`kغCa!عc!foDm"yFi-CSV}SyqYj1KOJ:z3 t6YMmhЩ"@kT}9}X8i}i%$QOm-g1 kgGeZ@%0 FACi9B`C5IH729ww']{<2C/_dPb*ߣqʹkC6נ'zHuKi"5({^{ekJFDEEC8# +HT5;S9lְЉjN}Ul ALj [%"8Um׼)tÉ5nZ*잙- ;<䂗K~m `g:j"0%LR0@u8Az4ki[jw ?N: :0BҴs5W4L$񃩔ú Oq,-ܳK+[KK+6ZRa8VMRw;HfU:Ēs si\T3h)Mݙ4Tue^dԫ1y12qoј93'{X:I1\WS*A-zb20 LϮz016nh4֖e{C49FV!CMܓm[xgy}o^T+*cմGxƴ'tZ^Z65ic =E/B*ڥ ͒hU E*㒤DR4J ChFwhwܕӥ+5n)_/mwU1F&O?` RE;H0)^D&3X|RR)+J瓱""p' +|_ѹYjo(GՒr' ;r@ϸr{j\%CY7>,[ǪƯw ǯj/V#!``NƷK=]X]K>'i߇rT\?1$Ay8J)2|r* XXÄ !&!Am&I +nCu&U]@v,!ciHח^A{d%2 JΖ@w@-\">|,:3'K.gQ7$, IYpk-ɂDmNE{59y O)5{0Z>g*YwwB2 2.,[<;7\ƫk@O%Ԯ0^[=M$AͨQAKr۩܊$ʺ.M7 $[_{Ne<[B"F.v픑@s,u,T O>ͰiS|ZrkMB7`AzFނSw7Qk6k +z2e:쥋k~6Sf nk@cL!Og uVq^CȄŨcB<; /1A #''D}eKrXE5m *6tVWoO +#b2O8',ŘpmJoz\+Q{ ?S\t6\>F1@^i#'8bW{A%{љn0-~4콋 ~o_N +gBKbt'44u z_5LفjL5m%dQj~i73i# Ƞ +,i'KƁZoJͳ8FY7 +Ss$8E%с)fko(F=Ca Ę&Cd6ea7 $ \ee}8"BB;=-s_,w%87(A{D5e#;{%{{%-3VȦdJCHVF]D(`XcDF9!ĆbQP*)GG$"'ϬW~"Q:nkvc9_4CG{QH]A8mw:ImCu;s_$3@60MX.3(Fb"Օ# (MbB0s_-dˌن7© m'PjSZmbRYFwy:Jfvbf%cr.ڲ61R' gӀv+E"B]FaYe[SM@C*VV-ҥ{de|qi'HzWAK q௘7{fk֠\~ҫkYm#4f *cՅ!ȹB!7X}+ourܡ7\گB>+qilSWv$'8&y-`+8mQ/ȹX&zʯ' s'H;J/z'*}ڰZl"&yJ9 .PHfWQS#:OۂOB\se" |( |!NGį~hxIھtyo[Qe..ٗFga_~9'kuL\P[iF*gfQɽ }; tq3$OI@#` q8*S*.tw8;7q_q#S&ol|%xSFm4{DVLz35no]-,ۨAQ,[a( +4`sdTP&~WNpAz2}ǰf.uM1ޒ6}5>};5 tGytHD-3 u](yyŒt'ԝ ,EF\Ts/ݳ?Jw57<29/5ID 5iT;FP"a0f;0ְ o8g12:/w0zZtX{cQT=I y>mk1ve+w>/nYf4v)@b5jQw/&/PB_ $E:Egfmq~*0ŝ.qS@wlH|C&])%k]P70h +YAR=.7i4OzB!^m`>ѹ%ke=2śWJ +$l0`#m "8׏h,LMjuQu2xmۼ~?Pm-Bp9Yl{ i7"Dq}!N1Bx~`V3Ms [fJ`! +i?a )|ߢuԴLykmqnn\5N/!(,F?AhZ'kx8&/0)@]QLr6:KVQAu{˷n~_C&ƐJQOGKzCMOC +NԔwIZt1W~ [OB*Gʝ3sn?{gq.i BwFOM쟡&DǪV*5ghbh+c%&Hd@"]:ѽnx BY `PXn4I}{ |8霂s-eeeUx#Q8w¬-J]/Ӓ(mmKn4 MstݣO|P(캩&mddD*E^4W,B;OQ>Mxko.;[k' BJfA^4?-mS1gDѮ(JC;@K4km۶m۶m۶m۶mۺ߹s93VUQOf<+%f=*+PP)_D )ϫ B2#B? rv//lb+'Yt?B@@: %I#jt]?:pH1j)ooc=FS|s}@H9 KAՈ(2Qb +tᝨh*z1F#1'*VumGaGiR]?uG&IM?FHq!+QC-:IJsN芸4dLpYΫN] v$[1Bi5Yp_^m6MN3xӟμ&ig >1dFD1&UkMۧiMgrЬavtd _ʕ1:eVF1NRhAjlKK9ѕsڏEU땨\V"28yx{Op~*sEkک` zq!sUR( ++R][nޑ;ȍRLj.i$6,7&|/;~`ED,@P*QRhr-O^h89n<]DX)FŽёuo|a-Ik'ɕk(0 h3+OTt-NtAP8a34^ܮhcc?G$L OkH Q!s0}0B,0E5/Ȳ{!!Ѣx}H;El&lw}Zc* +/^ +;9gJRq> +vwW4)\(U V1lBõI9Rѐ 8z뢠\{hQ N$H+Ӊ}'"LLFeuأIuI{}lե "-ON3eLۈ0;";l}|a/JK"5+mV.I( +zDaX"Ǫ)3> :MCq7ȉ>A.{dqM{ bKrv; _C#5K|78jJ5=A] 7N5,+Yg8o:hJء)S ij=7DTfsH-S1f!un]'a9Pꈊ}Iɮcu*[L + SW'9g ywg~ +m_uUzva#ْ3;35(d5ߞmq*k"8@ + L\bb~&$mkW#W$pk祆kp&7JE)jjE1y3eK1|%<2R踃GNt-[Nྨ+)AŴ3 (08_Ucc/S{o5 V<=0joWҏz~$"|>؆m㒒 ppɛP)V&3Q\i#,hr$Gn,zל%xNF."'&*)cmhV0!$ +Kgj^ԢzBȗ:*_.Tq+OnQbfy50xbV9|GEPu,D`qaiVnzזwyW?pD?d>67->h0q5;|z LTz<>O7濻GqrXzzb9@b9lrq%'#yڄW vGjS3錫vn;zO跨xg\:V6^(SAuL\%1\W]4ZYa'QO tO29>OCRJ,a!LdEn +4ggrjCr Cjcr T"0 jQ?=nטX_d* Gݟ _Wf꘩mLGӥqM"z+eBU=+nsf:U P!)[si 0qeAv/_ ;_)X=zy& ~@QaXg&$ ׋ab_SyE0sV 2s8o 3A8>> Y`39XE_|9|:Ag3|̞p2 :,$/ ('1c2dya!GOY9Ƹt?>?!͔{̩kiRЩG޻O>&YܟaO盨ChJ,~݉H휈bݩHm'^SnK"3գ˼x\uoో1Toe1څF{lZ?>L8T j+Z 8b/&"Y['I95[(BUb2b*y Q$?h>%4nf=ɬ[&^%JE7n6Jc6A 0LEXZ;A'w>ݹ^HmI1GfP$GDʋ/6zؑ%{s}/E9>oP%)%F7MUT^ȓ{s޴QT,^yf~)ٹDS]{҆";(n\=ۢ;/0Ws1$e2 gV: SUIna0D\(# zq< (#+h+ 'b~U n2siyGr%KֲE5߄IJ\ >V2jէjY6Y{ +wA FPH1$9FPM$sZ}tUC0UUzypJ#9$e>}oUiE6#9P<s\.B* BBe蜻Jt@u e|.f~9Uca;^jEč JU?x^_ +ntgy1`^6 +Ϣ-߻QQGU㤔}H凯 c?~Ƒj_h*k7Y CG}J,ztOb>قD5KquJ3vh/aļc{@ ;#dpi5mڃmtPPm1tan ^m)*V R#SMU @HK +$sc< cRdA1'JȈ]2ޜ˿JYYٖ-ĺ/!0e2)P1qZK%1m'%QTSX*df!/:X1V-$*^|raF3aC15PR;$, YU㲭kn^gîiempl(7 7j_pHE,!^H2Fa-p.1\pY0LIDd,0k '-WaL=Yt(4l?@m%@aiWncՕDʩhed`ъQs> 6(OBޟy.f/).(2^#iv4kqAFܞNR|.@TްGYɛ&W+ +g0\gFi;dri݈,~ye;QFK3^OՋ +E,gG?NuLOWga :nZO#Q邰捘@\, 7QRV [:RXo?Y?D +(pS8z~n#WK?Zu+[ C\e*2~z|10C?rJGfI6p=Q5S6-rg!&S]xɥ;K$p."2NH73g!tlM0Kl9V\b{:QqF7֟h^*xz3Pn_?J(+-b᧸j2/Q{# f;ۛ?#ǥ]qo wMS +o?{MoZ6MKRDOCyWdvMKZ X΃LBY5\ę݉~{+\yD +\|C@3H;}wz=kLJ4bqs`c0SOP?Fc58҇ī6ѣDVK~TgC~t/&7u 2~ȋf7aP]-XLY"6I˺+CvM~C#U^oy93ڎ$CFқR]c +!CEL ~7c\ AGaۿ;\}h]tAK+d[xQ葵yWp`.z1Wba|aT .roOrN%V.|NZ e'~{11,ߛuқDOӎp_爴vs;uqӵ"Q%V.y<:N'C LVg~̧9<;\BdQ(LYB]fY#8Z\f\:[lz,!!QZܜXS<,$A! ,Ff{N9PDqf8E1v#)/-w:Nj%y4nt8.g|k:{h6CyRo}KU19;W2DMNvRaBat2br,yŮ/:C >;1+PzsFH|)x8܌*nuLb2sJCkUp9B`qr| t;Kw]$*ŪU͟cRء0@wJ]N[[]PNؒ J+jc`=V"P\l>"Hi>|*|Eā:66Т??pkpB#cm0l|Gf|5Gёgc8G'X;^i Ep}SH{m8nHԗ!WWC!eC7DL¦׽uDFDd.Ga=k:N mo͘Ԯޤ7-uI`PY,[h#ԱFNMF,˗}y˜3"X}j!OÖk߬ߩylRJ -ʙ,ygBq+)ȴqȂ5 H$U_xSyT>yr#n5_rP8R;&Mt9C{CD |m#[.Y|y8XWx6MHzL.VFs+d[0fX@um=E㺱!M%TWR_ Ɓڽ)x2zbdZLHp|= 4܀نT~^_l}]3~$ y3h(~ǒ +d-WыԻ"qIsay9xt[sfw@"Mz}rau%!yUmwF2&[J_IJCT'~˅K1ׅbMMENOPn=EҒP^sFOKiUuwiVP,M ̞:e.cee\NaEgv][IDmU1|k*4ITGwGwA,)sh}~JL*༃IVk)deGE[9/5:tfPhfbs ;T:YLKP TUX ׫]ƀD̉Z6oBlfՓtnP'~mVs[][ned{k I w0UЙvvoU +EY,ε "xմ oJ12EX({VJ%vS"nFrPE=EC c:,t?3[c^W2L]aY tFt <MFmyGސp!Uq@(#hƄ $3|f#ޢ3 Yp,84?ϙ<Kp{}ž"|gC>Fމ}ߋƿ~jɏד/ݒPfKK@+CJIGe(8AK=-uDCЪFPDD,l"'A-)t328q; 6Ɣr =* r7mad"ձq%_sX.K,#Ah\ ?HmդLk>ΎD:C =}@P _Aɨq}>2k4^I&|庸^_ +mT{hz59 yWKO9a9(rH[Jrt&}zmjfYLjc,0бE(ib +0:J ' ]bOAo7~ cԼZ }wOX7<hpjF>\aab).dsx$)aQ*GU,vc^=vɿ4[+ѽa yt_قkr'=JR`-qg k4" 50nC))--Y!" P Ǚ{.ټ^Ur͹{0tRVikF8"ؠӱf!KXPg{[$Wm<0( 4^ql܇=S}>t߫I+#0ׯFq HetիG7 \W'qED|NR1C-a߱McwSAsa-~bQx>qy-wК'h^Ƃp&rU~_|:~~,PN(%\Hu#hNTy_O8#9'<}qmGЪȯ9vC6Fv\cISښhO5T2Ԍ{. eoiEh]ߗc%C.jZo41QK8e2%I_Nx͐Itɰon߼  GHku-)  _=C} 9o6ڵ*2L.-RMzL$+CgJ}u[jn0ja&6?S +tC욷$CsQE7X<+~Nv:e9 +Eh|<<#ejopgzNEbni#:Btvnj_)^@.77lujx>' +rk`f%%huK#1BӽT`Kksz)IM9ᮤ%ykp4,ꎫ%~E^gKkمfLL;/dkzx$ +}Y$50 8نw5gҶLۖ +}e?{}۟mX!Ci`AqV6jb`|(fi M'e]G/:&QAFwd<4U5eb#+̼,4F/ewH?e9~GGl*8c=Kd@ݲUHVu| %< Sіy~]b1΢y1am8Cf(RIMPDJH9>(;^ _8*tht5obuP|f'7=5%L@ܦ vCeub% +/}\cH" T .oR6/y/Yiմ8l@3]fs9pdfx\H]ٳh"탙%ǺJʚf#(fH;Kcš`XlqglK3o0@훓gPW4|Ƕcs%KkN5;37< O5Sg@D Ǐ pE7j4;]ƁEK:e!*e”AsIdfhUQ$16jx&9:eL9oOQ(ŅL:H0", +bmQ'r#Je(;RwGH2V:vū]vIJ(Nƹtyx%TJ'PoYriHP"Ԩ2^EJu&MY,+: $Eʐ6b ƪcen5 C8qG +.ExT A"&WWiȟ{c-'VK\$]&0~Mc] ļ\7)i؀6<:2<5$}1˂㪋_ _1z.QSAV9X+  S+_M_%W<],z4-nl=Z +KOċh̅uC(YBήOUW_Vf1Sy k zq@_PguF;QiWϏVSyQ VXQ1_{vDj6 9o$} q uܣovу1HO\0Z"Z=?MCpLBg7h`0g%B⥇oncn/@';Ϛv+fcY;P?E!m>>7昛߁2I厄k;%kJW}bgKuv@- + +.sVʔˊ4mxsN*^5eQF!oizu陀df̺ ɩ,5ə=*,3v0LeNymLUq5KvZNSIԆVWJ(~YBءjMAN5Q 0Cq =.E,g\,5OIBbcδbm{po3(>Ǥ &VRR/:6Z$ y)6 kTYZB.?(6rӧJŃ>mapli8@dG#`\xu+ibql6].QZbpꂅ`͛_ s(Ӝ`qWeۤ:!U8DїdYBW/qV\ءr +Y ô%Ӟ+4uSN5ţ2<9&D{;aVtk8m9qv8w_/<>rC^64 +zw_֯Z>;k`wRqҫ#B.ۂ;¾0tv&xI }OpG<z`*mJ_=n7bvhVnZ8q8yg^x\ސKp^fni}ފaX'9ypbg/ްyO]@ +,= ѷziw'Urz˥&2W܃\qT^4iP;'laAjI7חP,¾A/֟ ܲPBP&^e,g01σ-k8b|es(McOq, fu|n/Ԙty5 |g+6`j튲@$eKuT$7`ͳu-% +j{b#bYn"d3>wj[jDs,X[%g=\|"v6VJN7gRK2ϛ0BrI$~M)*" ZwOXSXZARDTQVLR#*J(яHAEm^(80aX[4dVne^$]ƥ2XE{VdRI@{~hJ_SN|H(hS5 A ?3<`R\9ځO?p"+V am5|Xü~g5G'Db6t379 "*A_JGJ^fP.o]9SIrV5_f Zϛce*@%n22b2!'z! '(gV`u]R< >TȚ,d[d 9區{x5+FBHl@6h};մ :(Gi=7Zeou5,*($g$:Q5SJf:`=}nC f|tmI +Mme$$ߖS/k=p+!sK*2m2 4U/*eՏfK@ %in PyfkqH0}Ja$lo\ %L'Ҩx=cnEZ +\yE3Ayv\D}x2_"b&ٹt3%=O}IlcȆ"Nu-DNgb'[ļ#Yt ظ21 +IVhBdsgŜqJ%o{{2+N]aL Ձ *ALKI3ȈrA2[ɡ9yF +Sgrn$ +D!^H!NKs5³P7ó HHo;?6Hbq؃[ ৘1132IJIrmq F`+~[J9EhXQ۰7S\gIoB4`61E2g n/TK\7gMҷ!`HY+4LXQrBd\5B[BAIÂ'q22Ȏ0# +6L? X vrLnP)4wU-9d3}6k 7n:vʟǚQ;J +Γ A3sW85áxcӰ0mEЅBAan\|.K!,;:, C_{w>͇1_Dd&xc*lދ\ D~ޣ aFNJ [9%F*eGBHN 9zkߣ̇EXݳֱݍy+eסɈ%6;$ Kvgu'K] 3g&|ˮP#?:S~`B(FCZa5:= K=VC.}qI= {ίB@N #gѺi8#- q;"TIu1b YB*%JݑֻZ},|\/9 I &,(&@&G?e&lp\ W/@-*2z 4du^c:i/%t.8H[HRu +D RU 1,4t͸8Y(pA+V9  +">hӲ +kˍ3GnEf·XtQ oAE~ջĆisCE5`! GEaF FSE! 'Kf!Fe'eQ:0gCAXVeU){ٍ1e4P5ksؖi0ӈy,hyy{dˌKwOQ}ZU-S }Ϣ>I'QHh޼'G `yP!Q@ث]U^œٻA*CBnhI-H,]J{ #M5*azJj7M!a.j2Ho| ouOwJ^uV\}*QI}j g-)v.6EB%W>O;H^H,XLaID*"Xň:l_$UޭW;7 .s*+cyb]1vV6A>rmU.=+m>Dibf(#)qxiT_"VԈ%=(v~扐BȪmj^5Z..j:D1"K$F4vb?GЖGe?CUxC} $`M~*MRDcxBET-Lwm臏h$Fm/@ (|x iE: 9L՚"GuMպ:էjcׇR;Glb+T]+o@ :D9 -5(L)튲)0LQ"ަFktӎ:; Xz=pUB sEI=xV逫@ 'tEp=6l>|ʗSfKU z6/B"rs ˊӅ;HW">%EOOs',^I%X}r A9̀fźP*z;ҴJܕ?,ytZA]3f~uHF?Pg'%T:觩U$:O'pi?R4,q_0Kc=+rnshɷLBJ¯ew_DޔNԽ}XrBمٵR3WmR"%RϙHu\2ܥljshX- zl=`ֆcU.~7W6]\tGsx iCR{M"YS iOKuɏFDScQ?ӷ 1Tzoh߃E*6ɗѼ9kaD f.ߒloF@!el;i`7+,Urű1(''#qU F ] Z_aOhC0&b}~fl`la, +N'}Hlb, *K2֜}A&e-rKḏaE_$4T!k0OCJ7]9F< l$)4b;O-%jH &W0x L|NrWZJ탻oz/<NdBgG $ 2mK2sC,on3}>gBn2}O"QZ=LO +bY9JIV󇦯 +l 7ӬRkX`!gSu鸬(!C0SO@j;艈]>{򗨛oUjK^Լ^Yp6sM#jkM :nKR #VQcv'{Ȅj,&+\ 7m6*$y5n`BdFZ]>m gܯPy+ OTfm݃Y#! +PnmbS]pf1@Obgnf+ LAE\BC|,.]A dMp_)s,Jwvʴ?*̠n1A_t"E'B/? +{(}Đ}O9`Ʀp!"3osxHW)bBcnWo,V8}0;$\,cu +ЛPay%Wq'[]WFpP8YrC'1,dH#gnq%lwoFoܿ/Rw/G < cJ†Rp CMa ODXI#*%>Ĝ%E̥ϼ7<1?ugcyL.#ϿW{?U-U`C1BG5% (Z`14V19jf5h̯Y.̯ưX~Y, ~ KNgNϼxvﰥr!SɺÂMCO  401)̂flSZiC0RTڏF3ܩ.x=Yo@Yxâq&)-PZPo`Ltaz捻=$&9߫}lY*%h8@/bֽ=FWjA z:L=Cl +485ҿiH+ 0m +!Gs5P#c 0%A QnV$-ʖh.'6T4z=U_B +^ +r"\_N9j>VL_ZRZXTYjRy7kgtߑ}pRDS/S/X͢i E]dǷۄ}|"%9Ît5Z̋89zXLx'wﵾ^k٣y/a^v;A=>6ElG*E؈t(oIl M/P ՝Eux"b-Nq =7a~\]ǝXh!Pz}d^K0f;l`6Տ1}ȘI`g’.I dlf(So&qR餚[gMԉ5_`\i\b[%PxZ)o+bNZ*`}!M-+91{= !Z^y6\.]I hOnIkj}VoN|>?4YIAs ` :BO*'B 䘸guM8cVu܃eB[wLFq `- BkWRSS/0I=#05s-޽cUjwb-OF'/_7I 2)mhr!@.e2ի:I?͚Z-r>:.1f0]X J*8r>_gƋD]_m+JSfSZ2"뭩9$`,֤ج<-'+vj33ԕs^/Pd/קw2Lo{G24&ahW? +<j]>*0_Tpy9A(/4{Mʬ_#[| GYud?mka[{"ᒿAw\3`np^p9aw"*>7(r.F-6xk9| +UC@/{:|ׄxQφe\OrH*'轸(p $;gēC%Mk&T}є(ƞi6IHhm >&X útK˯ M wGoϻE)nvQv 27} # +" xݭu9X2V<3 c6=Unq_v@D̥݅/߱44ln}vji6wrW/E65S"q'4Q︨2T0Egj-^du i; &nwG

Zv'c_+P~+!e-oG0iϲ"mj}VuEq}5ό')g,V˚X.HmKR9.iPZgj3b +łq.I >1f%J+d9s`+ .7t3zQj}5[*T\J |kj̷a :Z<-ŕcwVmk.0 +N.}H'4r=7 +!PpAtF+>K@&* JvUxd.Il=vmC*Cf"R ['z"4.Rdg#R [7m +,e'LŦ['_Kj}k:]m+|[uHfzI>Ӣ2A~~_r`r.Ok +jrA +\6ΡsHӤ=7Rnw8&o{iP0)3RR͸@|x&ʽ1[v)F'3۹]0mTrh[oU(s^GyMRCne{Ҿ&1m[`]`}0?y+R.(tY *bר{y/-~feN?%B2V'f'IL\_.bilG"ol[ָ,Ynniujy|3F|[6׮]u0@exN@0Pn=c},q@80x9;bXP n@>@7_ X?5& m:_>8Pn2Y#1AXh4/T=Ļ8IR]CL5;.4`h]P6/i>-FY.願}…, _=@;pw׻O/>}SN0w7K!X @ͷ{{|û$M׿6| n@?q)oJw~L̝W)<*U<(Re"58VRNJVj̢|] ZDZꥌYSC C'.2RF)qjv̋W#%v9M:9 _9 /%٦KHߞ6% +u{Yxr#L# tK-*9Wͥ)5$VtdFTZ᩼U,X&78-șKdVIRJo e%$ѵ1d3TFrfbdkL4ċrCa<-vAEHX8ƔyC]՛7#כ#bICj(Kŕ>)FFAV5m)Jxdj2^@*5 E,H͙4^ =l$4ʰ5Ea1`^Y2)yr }5gLcfh6]_@V'M%8Rخ)\sS0;sQHM#(Xyyy}y*3;nhl2L*gk *W bd-w{\Ga=L)"_W]޼m3`=_ 6gw ~!`s%sclƠFPBxkYE Çڥ@5l%y4Z=ow}9҂wd{۬]\h25RpOW<}J].| +2H]3֯y8Z+va@EqrғM[h D3PBNazH:X|'Ksm3МwLj2^:[}'}"@\j#,niO +3ʮ?'*¾aӞa,>B9|ӁG' Ф M JU6GM {U GbKbKZل|8!?/nO*jq K+5j -;+Wl nvꅡ5$s%@HbIp\ewGѵf2~t ^#QgFZ;A'{aguD+ .'>rh +,9yԎ.?@ąW evAOtܕKfjtsj6{'g }24ѻ+mdmLǏ Gګ >¾, (r3,m7_M$`ph|`1cBÖPO͵RIM8Ӝ;O8#=F2X!/Ruc`S^9/9/_y%oЁGCwN0E! H#β߼(pؔh[FV7*v=bu;SSNWY:d S2Se.n2uQn@+UWnBI4[)U=}7 9 :֔: o<]a'Rjٵ++#HL嵐ٲ$Z2& ˈK")ŕuӉ@ +gs!3X@6T4T /) ٗm|7wEG.g82tZqNe) ] JL!@IF_ƌh'Oث^@m +ԛL{0 Tr ~G Lv}8A;—c;/[ڃ-HzPv4|hZnqr ἇCՔΔ4w  e|7uZR * +LǥuV'00v]Ǔ$Ѹ0s +Nh#Hs=_o-k'[gǰ䆪C"dc]FNJ%8{j67&&uԿT<Ɠ/9K?N?^DzwKhxvEVwsږޢ.}EDGF=bW}SFTٰWDI{n"8#xe; GEIP5PsI-t}ۧf;˳r&Ci1ZCì hLۄ!I]F!m}-mT`ї):~n<}5+<+ً$:蹦Ţ"Rs:)8ֆ88g b̸$qC:286WrEE߹m? +Vy>\W[.Z, ;IAZ^5k9"nd +tWK))MEx{"W܁`]zEkIсR3^PwEeUS:cv\1C ibdi+lY'\Tf4 x6QMb[o ,_ySW9xA8/B9X*D1A`qWkicU !Xh`R{3p]p;oVJ Zj +1SvqY4gLvg7~Ж&-?m0XՉHH}gΪ^/2Q܅av,|(9OrKig|Bkdc-GYLTelFkv} {XH+s0̩`'Y#IF_qRWi&UW)Y{ ^P& _&w!Ij*D$fRPnA-ʹK)lA 3=!+$]&MO]ӻXzx0qWp#h{U49Qд; !?w0@<_1?QMgLD렢0J3L`<>̫AI3X +n;!*:hQU>+lո#Oy0fTK~.n5V*ڋpƕ`zqX=#y͆ϟ:NQiy \|}n7v-fMSuL<1ۿm?Cn| k'sJ=䖦n$姛_-.yq9 dIh}*R7Jz9<0\R$ؕcqv]+pg%\3bݺ[̞pVdR]+YިZ^Aσ@_ JU2G:!J 3`d +&ΣZ% 30#+SsNPyu; <xe)\*)mmߞ~7 @0eĀ5vd5}AD_q=&u֖uj+&"il96FExlip$SeْGghّ80u(66ڔTd:1XD{jL[mNSv ՌSN!Y#֙@]c7F[omknRnr6痤c,ވ-B~WJľib'b8Pۜ98!@><'Bz@(A!ZL啪J馲VtfGe쓰I0p wDubgx5Fb::@C1),>庀!g_?fd|T.T{$O pos>/"|ukdX$p}@C {]fġ[)FExXny 7CM{쇋N΋OEJ"wnA蹻KG(VءWX>Q_b^onp=9ᝈ4`eo*a7!F4&q^P~SR"BLe3MO'oNW?@\. g{G7t6/gnQ 6tĂM8^a[| q# n zZG5fWk$Lq)G +{rr`(1@[OcKf (ڴnִJV74+%NQU.9G0 ~M}tibD$]!@e[NF2~b?TfkCJ O2xQS׆ՏbbIFUMJ^aρ`p {. TXjDž`s9 +ِz/_%$D*t<0ZCdY %&==i/°\S];k_oX6k:P7rI0?e>~ ++2MrfB1A0תU!v]D"#XBk򛥘>tzO$)o3ܖއ(DFSF,dgo ǼDNm4(wL"R=4NB#5sRaNr)Q6ǥ&󔚯CBk3UM7Hog 2y>ݞvl%[CipYw\5}>Bic".t&f:V+N{h98bCawD^R)T '}S`"v[T)v!" +a99*)ru饰H)V1C& xuHl :/nDe\vw_^5@ְSU+k,ԟwnYC.lY <6RRGsE%sL +0ą@ `x8Wq( !p6p\Hx}0v il\יE>? ~rέ%­*έ7{(%LFn8ՔjJqTAUppNH^bSRx8kcKh'9%[SJ+z=]{Jؓxk&^[#f|Pg6mdWuLC5:˓ +zSNlKA-Wˋ+h<#'QyJ:HXdO9&Dž17 mzǤdq0PUJ]T?ߴ贂P&{&2iS!RlߧmtRiy &'R8C/s +̵ܸyf!l)5)!OZ5|3 #:ԪR΃|аeg蝣DOY3@'~(P5?H3S3ӲOS3U3P*|)ys#Ff)7ߖ[`>%'] -CgtKf ?OErx \iyzĩ\A$/HBWˉp.ՅﶪQRxbZJ$8U*vbQ  J4b^!vn9Mv/>Zļ{zҧI7RQ*Տ3#!QoJ,(.V ޛni>hE헩NbkTQ>asr sQb4' >Z^6;/hhg|4F8PjWŮV}e޵hMkT+V$!W==nR'_aC|S1chak2̇T2w>Tp}RQrgO뮒3lN^9\d{ jշ]*4}ة).3Mjި)ٲ>)2m Nsoݳg$-._8m3߱9SCy,[s|C>r(]Nc1ʬ>%^Ҋ菪 9<"4ԍ˼VRxj}iY?iPym/sx#L%M8ܭEnwhGLŧc Qʆa_fWDLf) 9?oR#@kvډ0M|A9jS)d>o_,0TlimR8I,4aӧm}G4(ݟ%HX\0_&ukggh5L]^0[vrT5N +뾐&vo?r+lUx^|``YFGd"MOޏ fGmsbCl~M6aa_8"b*Tҕx`@a Сi6΂ytɌYE1[Ɔ +Ry*r߱0Ζ8%&k;A❻H,ރ@tzTt,I'EvlN*)Yrm;4XVQ)ioU)ƞc-VtܽK#N&8*}]GF -2[ƜHnJ2I!K gx۰CE,5eR󿆗<.W\w薯bOyyyH)?>iX\S᭽\C˻].v ?P"s~{X3Uw%bv%=8-}&>W} !Wus#C~MHuU]K_ +s 2/u1͸*xO!N}XwV}o,+V|Vz٣<Ťrrfk.^)AIc߫]=1OnUOvHy7?yYm/;R͸AjXaw d7K{~3i djF-8{.hߎ'[ꂕW=Mӝm>J;sqqq|߇;jN,>,dzI3\wӮRos֦7>F$Ӣp<;xd%E=j܊,=Z%ATf파Jw񧏦YeGb ljmWyh#ߑ_93c/]='ɍ[jР3tڧ7 SךjtOexE:7gìƯ_N]^P>6q24"ZIsKS1Uf3=uzY>itli_=~ߍs'#-sB,Mt^>{0Б7 m\LsQgތ3hqnK'Cz} \wyE,dI'Ú S7q1{YU8+L`I}٭v%j%OUqoźn<>G}7B߄=5XTS#XI΢2JCTQVDصثagFu ۩Fޒ):Ypjc.iܽM=Rsu)oMƷC#jHɾN +i,ǖ:s!+΂,3ͷPiͷaڷ<j8ׇods'Uרɻ&Kdr$_-H>Pu'\vawPRCF4m;ɱVgOiL_l'Qױ?" ;I-rX)ŞDi}?MG#rO3DsK8'%"4K2p*TFq'gѝ{JiW tax{S=ɳ2U^q|py,F&k|d,([7>n™M畻nb7/#}NCTpDzyipH߱Po81nOFS;ŐuzeUNq^\?V,a{\H˞ɑU ,M}@$rZUPU.c͇?_$$iՠ)F= ?vv`rca= +K3}~T9>k)>DWncy1S#GU؞:3Ŝ-2pӇqr42>O^~Պ>\\ǁ ʳg &T5%'.>Sb\>i F)Ulg|BsSkv/Xι沗C.{\.>?Gjݪ-&[sB7gMs'UFMR;9lYY։̽ V৩Y,TR5)EHg. -MvWN&hw68NtHŠ!DA)dBnϔWO;J$A4g{ {0N C] vAN^1w?+W 1FU6il9եH8Up[f/B߭%M}| #M֛}l| =Àݱ"tۻ=ReOӶ]u +Ρ lFj쌋QiG-{8.x^ז+S`|MEqbs$Nq)ͧ'vr2Inru"5=Sw2kUVǵEdJH u䚍2U0+3Qoyu8}6,ԞAY矽D4Ĕ zn CpEsX,[^QO5q!_nޕ~9ϗSHv㥛ܕʟdL>y +/^43eMe{so+SS<@ѻ4Q6a5K5:'uk ZhZOӒ_dw1**N\XJ`G[kV U=A?Tj?ۿ0i/ uqH )ʔ/rHﱶlh>O<+QO+1H0ecR6^r'YxkډmWʆ]l"~t5*)N0eHc&ńzT~O55lbg v1&m;ݫGIel?"Õe:Y$]=ɿoKZ5j,+ȱ~ݰw?,&:q"5KOq]^6͛ұ]ra:9؁)O=-^n֡U]䙾|+e +t0YK2 j_` +-\)Mt+QEifȨih\ Ja~0N.4n)d</ ʌл&ä/5PkJWװ\y7&뵭K2;·ΝCύ~~X*OO-, 7JoXD^u2P",-ˤ񱈾;|"nL jz7LoJ_[xLwlg@gk.0Xj?{R34U1>Ǜ=|筱ƈk$(ְapwL !ec`X +iDc1!+9U}M_ ro6m.?_'Wfgg;ȳވ8xƛùs!_׷4v2^bEGګ_ CeJWEs'51[݄ɿoPPоO7 +&=Jj1lmzhL4dt;Wb}l]ߴǝ`O I~`1GeOO׹w.r?r:hFuj'S<fuj(ࠉʪP$mEzK_PwhA8-@Ꞛ2zTdJ [9Hy*ꃛowUkZ0UR8g 6L0Ӡ#AC<;u%_:woitޞ]rn4}-=,U>۝OnUSO3Vx09d*ncOL$S:$FMb|o٤$$)u,L l ۬Sn(_鵾A @|kϪo1|+oTڭ.w/}wdSxAP'Ǒo,AYdE6wO'~k?\Y<]sh+k)w5Q =~{IdG>sGZ z$1(bpM3&#a?ztMXr+邍EC@ZIYGp5o04}GO[JZ3oO_{ yngq?_-<8#8~a}uapngbhhcuB2S&YE`CcnD{X zA3?^miα#E9% >|F4˜Pt@,ћx/hhW +GgE`^6&س[z֕X> CPY?%YpDc ?D[/.>ԠS60' +s6^;م%c1_zS!VbK?W#;LamrR @A!X*%)V򑭞QZzx A~1T&I, QH^&BY˔ }o `$* [dc#l @EcA;Rg[z]5*R)䈥YaPBn `W-=j[4HLnVD& av4yC]6Ie@2tcA<-W É,"K\zM&rC(6b%n&-8 xm+Jم 43$g$OB uc,=L@uz#Zb@Z @(sctXXgЙ4HQ2/;4tVRO] V +C2>d8bNV(ޅyŜ_xF8}MO/s ڈVQǁIBTiEd!2cW(bgd j>hju. ZbOZ$538h! + K)-ޚH̵u L lY"lPq7,$4rJVÏgua&HԂvl V(t;2z8(R"Q0, LEh`z! ~&@?Vڋ#@'ƅHmIPwZ8,~Ru/nOGcaH7SO5Wdƙ"ӗl*=f}U9ȦfUlIa_ :qMR(ml.{n*`c.<[W+\SnE@-TL" h]:[K|9 _#{@R$7$ؽԧH^u aמ2[L٣6qdH1ȵʻ3bm{aSDXezcЀ ؅ +NeǘD0 \#൏̓%|!< 8$8Ezñ^(wa+wi%k '>>@J 5jJ &)-zmDp8d\RsoFPSE;XcE9ފC'<,\܌7;׈-Cg2! "74Li߻\Iȱ}" +txCC9~Gѐdr:;/Lm-{Fa 9"u ЏQftx}n D~ +=WX7 +FRn)PFNK c''! NY~Ml%SH=3 +u<0i|$H9pje?9?^nP1G Rwk@y-p͐'bz:V0,0b/!g(o|(xt #hNE<}}HBu@_lg*p b!`Vz@ |oıX H;6e? ޅ7|'E~@&!~笒>!NȣZkֿTP$))1T8x<Ǔ}U ȉ] ً?=3io*[ +;hn y<:(`0&FZ6E2@"I-m +yxQ>F) HhL0-g6BAO THQ?Z@4t, /HBC\b$hHh/$ K`xt`-*LWF൓ƙr5gGwwϲ2@1!ƦA;M 2b#5 NX{ d+y8`l@%!Y~5Em }}"0(RM<fE46 ~JjF6<P%]]U ыC 26<'mC WA0u 1@[_%)@@h G588 P%8TqD^: jlNru.("_=D9"!E|`ȀwNdY xco $I:L$[UD DQpik~Yp!|˰:G!nwT 2ĐVrN'} BB;6j_ "G4t_Aff +@m>@n!mp$DxAX"1T[`Qa~A9>^+(s#z048Eb c7  M%s8X>9 x;wZ-t fja`!W} +k"&N!D`C  1p["w4G#h%]p7,2XD 9~S2Pw@epNQA6Tpc5S ~PDVZۍ6^>QU2=- ({,a(M7$A +>>/>[w2IbI)B6bd3 \ޜzI@nAյ"j|뙠[)1Fzk^X\+ !<\zm BCz}Z$uA a.܁HM+eb87n"xz>pH%0- +>~?D  n@^k[vx+3Qۦ};w"%?PbQfpr "fM鞄>GR_뙮L!☦_PZN12+D0Wn XIl`"Y@bvBgR@bC n%ADe\kfZ=9C;@DrhI+˸RuBn &3 +pզő +u*k+z@w foiz>Z~Se@Ȱ 8e<^7!jN61^f[Z悠+wQdҭ 7Z"HIWGM& &m\@YqMS2j^9K:}B*ɱZ䐿K%z^0$_̋_jˁpwd=hX&ʇKw,&[}5(Qd9vΪ΋4j Z_/k{RCaخ#{9 2 m<S$%HM>n/^DzMgk(~%]=*;􋮛ہ\}+60ECc n9q2@_"~N{a"G@(x5/ҫԽ S Kᴵv=tXj-({Q. [/]hSZlgZ{@wE`|i$Cm h36p- LNiowS0OmxgNbz,a +U+2t3cjIHpP0@u\+H :ϖ>R! ZHr4•A@!IW7"zxB.0qݔA:p,qc~\Na#S $$aWm j!CQ Hj%Z&[p{N|4fsw==Je2rc"!XV#idN",>S9t5qfbI2.Q1ޑ]y`LW }X"B!D)IDH"H$t$fb2ABQ*JPDkWZKk/TEw$w߽o|ys9sY'*'⛑s RmJ|SJAS~!Aqv7$#K \ݾ!ZmBʰ1mzޭI]p%hC*FiyRB `ck> FV"4S P2lLvldpńݷgNZ0QFO[c>o%!3ajԓz(Tl׎I6;eDdKV\/(^`2egU0oʀ+0PQ!XO9}go <ɵEY ꬂy͍7JK1TEѤiu]qKGLw&7.*,_NФhӴy3ZgC'ro(3\ҙi,rΎVĈ{OCuFCn&o']ê`PEl=*g2];Q1k@SEL=M3%g 4Vge~+^d"o"<.VK J4 l,?dcbاW/mIs堈U{/y՝㖷&K{\uJ:q a/y@q%TTM +Ltv;7e3wu?Rjշ,:tJ3:? 5[%X9އ`+ #QY|od"iqٓ! ёTZ[ mQ{҃ 9.(ߣ*A&V/!_Hy005]i#UWBiK->_zTZ`e"c&r^Z)x|>b\ \&V!%Z.? YAZ$(_^=I$seK7)lAA[f;`zUSL%-J丒DrǷRtl/uUrъh#MyC[B:{Ν9^mJhrc`8ف׆nS"Hꑢvl>(k-YgRf>Skv7ŤxU!;AfwN_$6H,0ޭ+HxtTD}?Yu r }>|\tsЙ!Ї УyTTyx~ .D-֛\ղ[)ߦ':?Ly=9E;|l ?))_]R*1? +A2Rib!Gv+PA0'ڐq$boNi15Jįm4u쨷8r9ͱ#oK}^Cr1ٖߵͺ$a'Y~Vl嫕yh,cHɣ$I&7eI_0lxRd0sscKnL۶-6qKmɵb]"BUxh:Y 0wPu{r|2ʊ^#zGCSx$kklDpscma i!ܤ~fqƷ|oɄ0|$2<Ry^#5E!4R,k@&;r:>iݹe2| -FM=.4OpNo2~$z d(Zऑ1Ka=,2V}^qN`"&u)Slq]?Q%go\>kan`$%k< +85% iw)^ƌ=ݬ@Jѭ3٩rC,pO|đ៝mbep8ݝKݚԪ,H"Mqܬy)f.Ȕkrhs7]:Җ4kw_ X)[|6m3vd^m7٭&6ct JUIEqߣ3.:6nyE*AM' Z?-;HVgϜPL&'e낛z 8.".Xk~GjaƊJ{6v4Pdr.)czW/ d:^S%ݳb]a2l5Lc]RxE4PBd7^)"̔ӆ4-픒I׹s:q >:F]TyF{'$[ROEx + ;D!ӛO"cćSx 52m G苕G'Tι`O2.rY&yh[ ,KH ^6|kREuSe`)$n8_FPUR"Ѷ34nz&rPpCRWz:*Ecz6ZI{rf{pS 5A,bO|l];6E <;u,H:nM⽹UIܵ_ ~ PH\} h|.,H[2pcT \{/UkZ.c | y=\源W Oǭ]y^{^+O<ĠA=|-b\Rxtk[ŒT24J'%t'p%ۙ֠IhsW#b >r,@6bi + Dڽ,`i!͇nq\AKr72)(\32Ey/(D &`Z9 c1==8T2qA/?Z}+H?,o NTnXxVb.s~{SVa60 +pyj(ChO|:&<(Ii-XeOWKç'$N[ELimnQhƒ0@.!E,2:F* Kձf e!:R\ AAg7eW}}U@A;o&>wq6"ch F 8u|^Nם.P o O*{RX< +,'!A`j5oeҘau9T %@1[>X ׍`Pexݼ(蠗|#XuoCM Bğ' lSqNzW`kujC.9#F:ۂfu J]/$>QQvywQ8GȡT,TAg&[-Ky)S<9jQgzA͓ݺ@(a9jC*ϰ/m l3jċ]"g+KсQ,Z_8Ғ-\A_$M._gep!ASBLpł1-|,n/X(N9!騩900;ZNr쨠!jugw_0ܹ3ߝ;3w9HwZCI4$Rwoi@AB𝪠D.W#(T }NiEaPLL +ym ds^ +M RW(BzH>I%,nX胼yUE(-&H7+j _S)f~4lZ9}aJk9ܪ{CJ }Pȓ`1sUZ[TW!䏵L.˵ ϊzXS.Qz.c0HOY>4[=bVxu"Dje$Vk/ Kx MU-lجwSh2*:c+D] 4QK*Bf6*#|nŜbІ)i:^Wlt! 1xH]}i mU6nqFZE-6G_0B;9Z6m5LP\\ֽIeL\(3]gڎ6z84d&3r6'`a]"L}P}H73k選|s52<.<$y +cNTAn gTm'3m:bC9XFĥ*kW\-)6MdlytׯǠkÂp9zopƗM5[HdEE#p׶\Dv3<7gƑze{u +1l?nqF ge%:7t'Zc`bb\,% .W:4^>!XZ\uSN)MPmemo%>1e75WNjpٔ8tbF>, PKdbM5W jre/lib/ext/clibwrapper_jiio.jarUT /E/EUx +5ϓ. +oݶm۶m۶m۶m۶mϜs|s97Zݫ3WGœTVGU02?_ &Q-!"TFed%DEieDCxE^I얅+X]*ץ<ӞMa?ng8^S&L`BwQ⣀V3=){4d&7. ޞE,V qNb,I.S6'/IeB$/BBR dJt΁R;3W7RGKwߺe idgCN.1100/čMdiaaGGh +:9:;Y89b Xa_SE4l4o'RDEA0:_#c8;9yfu,~? ~-ސQ[+p +"Yڷ+piT: F<0*qg9( ktXWZV3HOZ_*c77Yкqtl75J=V@e$>' +Ί!iCzf[0 +ŎZu"^ldo1c^72b&vB /ЧMP!kM +RӿXSsLa8#zX 0bdcO)"^U+/C-5NL5^/]F PuW1oYEϦӣQų +??m&"\fo‰zJXs0 45mj#ղt@ʼOjGwtN +w!WLXБO5`A7Z~{َ<*cҧT&VO5|,8q}\PXϞ'`r@j$pm(gՁ:g~Sa{MmH>==+*y{' Ζ؍Ͳ-qgש̷OeBٍ>(O2&~Jx@CmZ-IfRձL8ij{s\FR!sꑪ}$v -y f8 ~jOW/]1Wa2bPN]b#,-p-N.qԻm@/MwS7a9K{Mb/Jߚ<_TyTy_N̿ ̻GdI?r +>3j"+КԚؙynAFQ+$Iei)0+$t,͈}Q8ǾJQ"|)奈Ny3]q*x _W߻{m?1/8} myD??q;}>v- +}~|E|  }<|?>kIof`U-~CdyڪA!6K.!Gš2Fe\&]26D>Ez/b|LRŝr6^s油Bc2Mmc5RcEQWO{p?n'@+ѠL4I}~@qƠn{VMu=P$ʀuiQVe)WbCV)[lֻ϶a;UuY[XV |f~*7敳{ s;A r'ʹ">5V5!(څl[I'%Pb׵p6> +7&RLKuOwu,6GLZSu/o~|ez)r=u43<3zǐzCBI{IdV=siܷ%dXQȹ猶(\`kb`c!$HZ@X?|&Y-L3XH;#}<Ɩ##9LqD~$˂t ǮRp-Xʕ +NcSl2m M+j Ųj|TS[b8jU7|^J<=:K6/3ڮz[ӹ/߳콎>o|3HN*x@RPpf fsBHV +J[lUa!Xs@#{l]NrB +Wv BADoP}譢gٝ%SnLD6e1i%̗fԽ|.òm(EJpA`3Ґ+a!ƅ`#粲)$miJ& u d Q H&NXegSL.vS0#N l H +w1 iJw!+1%}HʑګbXZ]8zg~îpK1ʵRW +22+[rRM-ɻքCHp, #FF;dr֙ E:Gn:[GᴖX(P֙efi@9Nq@og+GΨtGKiء[n{PoL)K9!Zgn]6h^Y"X4.w޲6 t7?l,4L}F^3~cV9E=+hєL>&hn3ݎO#`:e#<0fSg6<殠 @)=!+Ă .&ɟB-E>́ԟR D*X~dMr(j(Ɏj'FÃFVpFrx|"?~4X|T ܒ>.9hs 9X9p0$s?Z4Zkj3N`ߨ<]°T4n@iK7\GoU^'󄹪=DJsh;ep#qv|T$;MARew}0bl(2Y;،s,3A>qu>&,R8zr=H +R .勠Qy#!U0~R0- +!!eB{[n4W)]7Sv'PHDBQ6F[7vܠYB9V`CZ} D[tbB=!@6lrXYC}H3Z5*ģGnY&Ib/5?}w z!k۩bEⰘk\԰a1ԕXhQᴣ hhÇZ SN^ gKjo&ǖXjⲷr7 :湖b"Tz&$&NMa<ϓe3,KGtA1)N0cŊuUe'MbMdʃE0ZCbP{4qt"3xֱ&>A.c䛊{)7Y*}b.=1ް0__2`7i^}0=U{^#r!pIp%bBvaA D^Fjg٢ŗ +!aUP\>r7R+1ƚ5䋊 )t;oy(&*ƺiy PÒ>9a9t "1ϙ'Heh-ʝYCx}Zz9â-15PJܰpgSo +=0zUI0nmbxpAwfOAfft\svB84si603zB,^+ƐٚQQ /< &4"]d 2:-d*$CM]yAH9m:nFHISMY%O3 0OޖU!3T|soVhfcVu_ H_o!@6 91Gw#o.`sY%$ ZU9S~T{istU.^LXbnL ^pt%jVzsupƒCa += +wI~(*0z7UMEoxpA+{fC"bukLf|x.Dw)Lu4:%'o,FlV+zSGc<4_ՒU15F}bueCSk&f~P9%4I$o!@qQQWHcrBhie3ZBO5Z@J3Zʖ%~}x[:}lh2z7m톄(~8λmE@;4&z#MGiZvXPdu۽.#s]#ԩa{%"=yK q}cWqKvQ;T%/s l*G[gJwŖ]RA,Fh:O.MIx$[ ~$}*RmF_BUV0u.7,eaDm^S9'ɼQi{iм߾1iC Jo&*.kq%t&l_%%3.(FgGP{j_宀z:)!{[O/٣XJ#+w1s05Y[: ]RH T[1&hf#{:޹ot7Ln+`M(^'H:@!H9*<159{2oaHs~Ne %=]A!)!Y%;%gt;żQ bq9D?{ +s_oV !Po75)p,oEe Ɣ +j.eUCT7NCw]z>Pڵ gJ`n>1_0Y'+ǒ7 x4tTB%#\n y$@ +7[ Z(tt-G RhߢPЁH91oUˬ FAf2ڱT'pp^2oZcH&rtd_p#Cw%]37[?;[OCC9v5DE$OFą==G,b/$Mq$TWNDA a'irarZЇ_+b u6'R6.#%%NNe'b pP5T4cFO)NNLG3RtVW[_ t++lk:ݚ[pxDje#G!S8M>d(Z>[ZhUS'XlI6tZpМKK~mT==sA6F"&=g'61tx}[|@H C468~O`A-Pʇ< H*C}PEp4jg%E5a%`<;Ny=_Ӟ:'>S(sBPfЙCrm+qۯpVlݑ|y9^.ԣ-YcEt,#Py+>{;dv&e3 {oEf|N04Oh~ =otO,*X+•^r9hx؂pNԒ̾+* va?9qReɫwFrvjK|V i3KkVf5) "rѪ ,2@C.Ø8C*-c(Q}* Brr|W8$K0nKzIfDNez +Hu IM ͟ N8We/H_8t}J StnRTݩ%kIQ{:`}kThDW:o9vǘyGtpM=W|h؇ՃzW?Ĥg0 {Ogg[]3fX]'B}=rfexIJk{ +1`3 oo2MdFיvkiq\a~Q"H*s5`~z|j-DE*a. k,͖~:"zgKD̄ zu+m͕o3ZKΐG[F( p9z@9Oai +^5 G {}"Y6M4_2k}T3bx`M8e\>xJDr܅6y0SX߹2*ᅤalpɟt;&;ސ++{?CA $G%[ FE$)!'A@QDjiT' Yi>(lC#u*UQh5kR~9^}3@-?Cz= 7bDc'Js23^ S%Jf8%'H &J{vF3]Q|w%ї%5_E*u3[L/2(Ȟ1OǸD +C1 FP0'5J6afL6KPatha@Fa@Nq"FffAV:d$q0L\Cnv=*_d1 %1}p78VB`6e MmWtHКFL6R,ʵtd&d1fA}h0R)p4ʍk0UGF.6(RT !i$U0RjEƁ#q4D%JaJ!eDL~ƪ:2EAACoc4%fHQ$ȡ#j25%e7hS%bJJrjrɬ;b|=tlF L K Tef{`SrBm>=^c0a tnVN V#J5ң٩ +~g ȩeM%jODdžG0Gbhn;.+[c;8`;FIgES%Lw]sj'j̳ +3KhӃit7 d{sb(?FٙI^^#22װ7i33vs4ņIuYH,dvV"Xq8)e 9SpFI7uҴڪ2k,JO* Xd&s7Dw%fePcqfghD IZ qt&d_H))Tx;oMkNm +T橊jZR3ƌU8+ +t5lJ,'9N{~)G#c ָVlh᫠ETUY GZjڢ+qiYQA>K _H$YhaHk1SG% w/cI!lo1niPhbP톢I טJ˫A[y]m kTY㮓D[.UY/!ʭr2 K +ı;L:i`=  ko(/iK<2~p8d$燿upG}0ƭM -F '(n9LIf(fџCCu_sqb"OՕƨʴ&mTK#776t0N ê=tu@S<*ҵklyLI];cFe<,^4(mr^wh_+Ahwb]MO -:ޱޒ~4pUߙ2CO7VVSY3lĶ}%Ppp3cqvMpw_ɓgK<yMH2$RR&4瞞8tʏ&+ <7_nH>@pKrT0t6U/M2nYl%H`6TQi@-gc7F~]8ئ.(bѽ0kݢ.Vb ZPM$#bHЊGv0tLZO <mW](5NV5A l,;jf=0G ?/ȅQ'1+@C=wOTWc@8Fr(T!g|[Ŝ7(ܸdn`9j,kizP֠l3;b9@%$wUq:Vz:ȎŔ (o?/&-xnKgnA"G ?5׍Q\X&JP~t`G.!4q<|"Ah+\XYrVMQ^&2bWG(c5HmG3aVP,z>t(K[!ZEEzMᔱo*R9:I4Eqqjjkn dӧH6St\0MiA*=h;$^B;[![!FP!_=pJH5\]t.JAzMm]?J@vڂ\b &鼿#mU"LU۴~h|U:&YӨqQ *rHc5APeO]#B(MZXrA4Fpw[?]y[M#qO\|DymoZ(|bn <#trۑX=gj۱䬇 }nQa;봾1c#vwi#>Էc 0yawrQb JH}(fb"o9/ jr zӨnt$K6atk٦UqFۇ'EK:4)C; 59;X8,N/V &WAV #BV6:DJ!g.S~PҖ$rVT|?N,pV"I"(#dLlL^1k쭚Q0޲1'_skPqk8E +ԏV 5f֘H(LjDV5auS yCu$}pΗHohnYmgglf,poߵވ)~*,2;0Y2Y6*4!EVнU)uD e QM5jBdiBsD2tp@L2JǨC5nݛlRAj3xјBiu +^-L5ׄ0ZJ(Q%IzƘ<8oc|v__0ɜe1c^Q[i^nTjO$i~rWF(qI)h4`'щr9^\['<T,JMpaJa6|gA$k4<鉟-٪33yנd@'ʃB"P8k[\3VɊh]S0{VPFO:TG.eAhV3JβxZ $Kx`:&zDLQfąǹG#FB<'Ņ0%pD"A;u:cpU&O4VЉ˝ up"IC ϾjmjxJ;੕\XjU}C0*xCϐU:JyռQk+{G6"jzfSo~ȝuupQ]yR>bq |D+q¡ƕy͞]p[I';r0]':`IYl\-Im)k ,+)[J,6?GjŻ<\6bŎI7_,.,O]k+ `xi3nj:X@T +rEc,-YfW9i:4ZfK<VQP4ٖ͗X4.t4鶫Gij41a)%FdYeYg"5e2Z@(-lnݩ:N MYVŀB(5 #sE#Cx"c1rI9 >N4qy/MP=Q꾖rP B; 8sτ08xj1>8mFnF09~yTQ&ݬ(z!*HJ1MUJ(U~~!MܥM/ ~ = +*^[m]*ejbЋw`ZQZLw)TAe"e̦݇&ҒttבۀK>*B5HqD)k \44͋|9/ xq"}-Q_FYtqR|*ŮƭT4nV- [)函VB4d˖ܞ +z(5B+ th/&X]#tM}%0+s2׾Q26_ui +qDę-,I~ +mӂv9Nji@7ÓWIpvqnL[zqʾd2g^2w-׎a'?17%ߎ/H/4"KjU/6⬔3-኶aȞt>) [Zl>C k^!TՃf7@+E/۾BVh2iZWh^%'+7MtGB[A\/GQ+^Txk272auů a"%]o8zM_3Qe})̷݁ wA_Tkp!^Uf U\A#v;5Ш%LF +PK/AT~chA(;4۬HhB5rfB#(dus!D#ZF(`6 u遠Qu#"vC"h]#"lhaQ-zXvA}><4Bu횁FAQ>tϤrrjȔX.JKghgngDgFg($gNgKKzgRgX|NIyX$eSnգ in3փqiA#Z`>6 Y-vuKsf&7_w<ߌ2=k75{޷|'ӝ,c#V IA͞6liؤ ށj=S. w!&kCT*so*q%ZSSpn(q:5*n@sF;RUwjCG@}֤["mh!~l'v7Mu(;oRR^|̰\5?f9ӻw?=?& }Q&zR"Q| mj%R@S D+l@rAg1$Dm2ꍥ9NLUŴי +I3gGNʙ_ f,J:QDZV߱}xȦķAIsPq~m}*?*}{E9s4 YACҍ{}'l|çc.YJ2qv2/Rgfvn qܶ9hy//{ _p䰜ʶfϳ&na;5B#uovnnbm/[q'ٯO 7R1F0yFܩ5 vIE{FKVN0{~WL7+|^LU|W|q XeWVP7sæ>>JmfVm(3dmrr\uG׬RM(s)5dq!7vL߀:M1+mѨ뙩µLye ?} ^ +O!8k^zkBoTp(wssʺj%[_- z9X3لCW.WSˊ%B nǚ}Zp&dR4Ϊ&ʡL%fO˅x刨 +0OK8)*xMS3-\٪TzjʑaSE5f!E[_~NM%Z] S)}a[!hԢW &&XMsU?ʅ)a%quJ7)bu0EXkXߊld/2bȰE + t +n!+:5&wl]^,WZPL:\PGh1=v8IZOc! (]N0H"Nvɰ^埢ʎuաfɚf]mIY}a4݀7U홵QJP,AkK +I 뿮5k=ͺiͺnKt&k#=E,BWO-WUAϡ=`681^ 씕5F.6>O 9qZxQir)Wx)[e>5?%- +d)h]4gD+iHiŢ"/\)#ۛ o=kĖiF!͵J׳ +97Qbjkѡ]!Дu/%΋w6(^_DŽo[k;n: y6RskuIb\RK47\ O aN16.Qt0u.]`a ˀ7V%bҬ9;D͈KzÂ$>1DMG[ _ÅIH 0GLFϊFZeY6WQAv"CJBÏ_Lx+՞)HPޏ(F +P 2?|]^DjU'e,5-8sϗ7Dt:tI0 9E<͇iiRݛ82NIK +9.ʛvȾh/7ѥH_ay/k!;~o!8or{'Lmq\H^<y:<< + (ZH1B9R>\w"Ua|~r:d9qyp"T2"&4IE!DSEL.EaRmtbmtqokrbU-E]<`9qSrK#-GNb :|oR\}~/ZeqTa9y$arT0A E\}]??[rlE&Nuu,Ϩf +gUoiC !˺y&NT9eCGf7LL5;LfvEu/ '=fV|,{Kfzp=l.C06hY,w?GcTrGeYfu+]|unQ8^lEZ{I{M~TtjydbS9Cg*d,_FVʬ6_4P>p1kY>h=~m[,t_f+=% +4P oqgYƠ:ES`<&=2DnGp=Vp)dJ&U韩o)T*" `1g9hOak]uqzH ]PlvՌ@9Nd@'PBK9 u$(;b)YNSh& 0 a0ћhٺ 6 (g<*[?! #BN֋PARλ(%^tg٥.1㦰ZjLzBaJ +QL5֖zkN + w!@Ж27)#ӎ6挣F6GՄZUsɛNYh OXM<ʘ~Z8EF^9,(ӅQA#2T3ۢCD7TP]lo/[cݑǻso`s%9uC- Ygвگa6qLNS|,2eLY"-4wOhOʤ7> ח@@ MQYWԩFk):TAU 4Cݕ4_4uf-vb55nl}噫9r)bxjݩapK;X5tyAe<~`&Y\D~aVЋ>a[V>}D[p)WAI]#2ů| +DE Ս?<=p*<Pcg [ +: *dX-h[pX"ns"L''V;gLy,^ Rܒ{|BY2)qA +mfaЎ3\4E( Ի;<:Fjm:%oH A0@TX>x?[{:F>&fo=͌bM=sCM_IG8t <Th Kxj"1 iMޒ,͌M|1uK/k"1&5qTh(L4BM85^S8D2qZhC8*1JaTL~h2Uge|Ч/*^"wjEyk0~|JmM`f;%Ig p ߖJȫJXǤw}~TWy_Vd}sMKBer*n,ad@+6J? hDv=Yk1 fw/80n$Ԃ=Wו0#٢rTݖ1<8zrqkSKݬD"*KU˺8\^k(mK[m{on#ADQz~]NVi2۠"C84(~,OK +J)G`X""e: +eӽL%Sr**ܻ_];׹2B'6C!q+wC=B`*~|)~t#%xG|P8c8F w-7:ʗ逌ŗt厊,&8a +K0 #3B֗0?9x^tcGFNI3Gќf88J|'ֹ KΓoK"..I#WcNF?:838kF4X1yк1V31sIZ+ ƘQOr}ʖ~\ĵcF1^G\i x%w9B\:2/G4=!#/x>i7&c=q- ZeTɤEc C +g&giMD'Ĥ ˎD}E8|΀Y1Htc +b?N΂)(U#UmŒpE0ѡm8)G0Rp)  -, _%]1M77u1ⷋŭ'clꎜzlߨraܹ[2iq/6}-9@pʼn5QA@8 bȣcؕAP؍a)ܠi ;whDrC>vw `/h*"nTwQԜN9)_mWGhZY%E\kHQ& lQ 4GtOZ@”U$eاI%e;8S##)(U뫵U Q3(` JVl;6!ND? #?詑Zu-> [v!b[nDiߖGՔ-$9vД|=،_1(cs2y)2qǑ["pIUշ+(:Dq9K:GF(gWV>?(aqpf&V52!FXNN o#$p`"G0VL5 :k@)1wT7ǢG+GOpg8}j噥ACeP̚ .> knG@[2aMv^}*r(mWcꀹmvǺ@|}l4ʾMXǐݶQ>k [AWKB!_o#‚v gSg +rG1½\#jekG$ +mUȵriɽmkͽxk K3o`Ф|G%*weʹ:/Q y7"R4+KF]OvojXc=A8__υ"v4g9^<23iN-u 7V^h9[[&3/ J[h_Dݞ cua6_Yj>Jmwjn^[B`ГKP >+f_ړ';Vp=/j3!-QrStiK'iyk\I1ؖmƘ':k\Y.blؙmC Tnl|Iї[W.ʘ'K|0WC.Svo x3hW:3$GpɊ3WHI7?mb;6?V8z'z L)ք' t-=w xQ/U!:X\Q0Jjq: lGcj-kֳIڟƘĚZ@Q̕+5hk,h:gXV?)3V$lݙI=\ZuIl,hÛ7iHw,]{uA+7#gZ\kě+oK/flE|AW2c*c1 [VR:H3@g8=ԀlT(S-+݉Qu1&aJ|IuazD2&Cb&q]DE꜍fds[ +$\ [0P KNMe@fnlXՈi911B(iؠAeՕ8DeP<fA>)džU12+dȥG`q3fWwIFBds2!b keÆ$3V~!lgy_@[PvYԙ|RC 冲FM JdǓfy|\uLbtr ؘ&ڵ;z /~KlOJM}n1d1(1"ĉc6]a(E:>Ѡ9FjdGU.8VN*;Njg:IMa5QY"Q@8)aB" jB"9r]C M +x^*%AhԂ~ N\hBi9<7^4g!VY7#Ѯ4R;q0:&;gpKM:eJ{&ky 5b*K)"_8v|[sllYB ))3/2Jm-/㰽৖^iXM s]uiynG-M;m7vݤzjo7fݤv0cWBW.j.r +Y:OkFzv:O5- iv`<(:Oizptjv쵘qGLCEai٫>OXoWNA<D^669 l¨1Oa{=a=[']NO֩ӵo\R=o7aVx3c!-KI'ƕ`}Wbvi)D`])s` %>a-:4|MWG]k}e'DF4Uo?O>ݑW0=@1yRo&t1 ='7;';ԗ! >'"4Q_wzubv;iP2P)0n*~+G#FPqv2xڰ2Xb$]GXl1q6 2D +GZGEW"ɠqGe\ڄE8|c ľ ?: !ޔrdzS~|L U%82INniXhΙf.ߡ7$J,uiN\vJؖMM?8wugӕM-<T+ij5fy,g\lE R ZGB4؏CyxJAEFJsa{:,"0_{Ix\C2-˸ 4? $QP.=чu/iaŰN~~ MUOcSE;—B oΟUT H9pRdSb9kɷscfJkuͿ$livW ˟u@*%~XyUS?XqŅLC(Ab Oyn Ok}#xnF|b|(jj˕j&Ֆ*U+ :C,Cw)|;/b+mQc#ł4K+/f,Aժa -eJ5dIĞ)Q˘rvJgKj˦%B~s%+Nji:X`X X\Qm&dȞtԼU֎:'/rK +vA_snhBd`}І^z;1.8;( e7ZUjVIVs$bw?}}WbH{ģ0$&2v5T+k+P~uΕ- {-4Vpu!d-hE; Xg5ž@Gj zLY]+Tw7OAg^UU l&6{>K@M|M&,Ygk,?cuUԋ=v'o9;!kԽ%;Zf6wzei.gBѱ[vE:{IQqDdpL&>s Uuδ(a"*#kN`N-3CVįuG;e-}1{Wİ?mG?@mΚ 3o9ŗYGKؗ}kn W*xB| `Yn658M"-PRu-S(+jZT-* +]6;͟Z87o[ -[ +]╭K 7[p"[IAԫS9P6hE<׶7R^57z^~g/75=qkdzjDyGt+VG6Љyo,DH @`hHG C'J]"8Øuq;⦴< IeP^9Ó3R#ls7>i }FVfqyoI3 ]]/yͯaq wi 'tw]Hu8)}9P o!>ktæparǮХB#{٨IB{)+_;I&]tc,Ӵ*V3bˁmWi:geV/Ss "Kv&E)t0 GY#-(\ס܋rQ778qלC{dAV "@iq6\_aSG%$5b+NsE=وe8 yTk3z,)d¥tBDXY80!+uÑ!P=ok*GmJ{PCmy -/'j*.KbXϪ.VS OFf؉X$?ceQ\¤TʹbFr)Y +%J}aI&"rzF:ꅂVW5|c12S5BSjty jDs B +71OЯ)KrrvBXb` Tz 6Ϩǻ8d}A)V' +:՚^E] [,/YY}_o|"!uP|Īo r(>Jy}sA4o-O̓/Hל3mWTCLxBRȴ ݭϛ@;Vf`Hݝ[y2&4%̏+:pvv$]mP{S(`|>'&+آ5DTW2BSCs3yZ$[R-ݸ+x9iˡҢkD۱r\|nF߮jaF8}]Lr\T!ay7Py+xDFA5 Z!GeE);GOcr@6Sr j0:_SWw!JǰAxOƓnz[{!*#5eJ-Ưw*E݃M@PкLl4 ڈě6zj$hH&uh!Y+KWw܁@g'RoH擓-4SoBhrpj42%jgb/M.:)N0 a(z]{ +$%\õ֡ȪHM×;4ѝ[{ Y#T"pAy"U&B[;Ȭ{&vkkt +Mu's?-7扳[{x7b $REc?Nŵ244P an@3:$ܽ=@t 1HC}W`'uҤց\j/na< 0z8"fӟAs*6jR͉;bd~=X>o(s5L__ ,^LyЊOU_*ҶR=Xz=hs!Y?׫О?h.}}{?h$$j@(V򈁟w{âH{#+ >I2DiȦM>)i5X풸y>}=㹋uWH}3=pp DA/g|fh4n^ȓa%6.a5x&@Ԍ1v4ZEmJEoDZkbm>@5/ߊAZ'~ v 26$kHf12Ϟe2| bH>\.?dÄ6]3?gyeA}gI}X~Dߠ~iMcMUØ*nS@xt^RJB}2{\7K_c}5>ZPsmW/9ϡȴ&Aˢz2ySbft)- \ /S{؇:S_Ǫ_GS/Eob6|)db|66m.:D6b],5,5C-K-spLf~]'ߝ\]n]D]<,iHЩ5i:ӌTi^Xx!/hIiܗ[^"#M GuX,8:6p|qS^ӭB}r=fبi)O5V 2>DgFRdي2nL$g>Džo/{؅/mȃrfJ6QCmehoZk?kF>:v$NOǦlVLsŊόھՉܾs⤟`M[O1 @_Ig$/?F`gEpw=36ԲSzB9C0q- a̓A3fs^_lCb/5ToV {] +yI6 HFW)W@zRIG)Z]DZlj,1&b/XuBB&a g}'Hԇ JSh\!8wQ1 +v V=U;:K ~~ v 4)S8< CU<:Nj22sla$bqhCȫȳXpL+[<=iKc $;]2^P*#c/AW@^ Q}g[hZ&oE* +E[D[Q)./lp(ro!o ەJdGXo񏊊8ӥ%2Vv6B:go2Npt_tklao +7L|Xqt{̚%)o\(9r|aA)j/ʏDV[fTWn&Ju_^rSkx}_ 7[iǨ%Z3J8f2EרP9%Vz Nlv R<l E%[$SK쓠fw1ja 8- ~c<6DWX-xT\&1e +t~[ȗXISs%rd>|gJ (cHIQ*Rf*|U\ZB`)a/ +,q=9jmmtruI{W:CX'+9ZK'L*/4ʏL퍻̔k Փ5i~BwiX{eϯ3\c !,hKM?r@B:(EO⺃g5DÂE2 +bYbK<tCrE &(JC:̬[oc7mMc۶m'ml۶m۶4v}w{߬vue<眭8B]ᙻ &|оX[$gn4t-y6C͵ACQz:zIZs +\8޷@jqǿ +XR`>    x|% +nX^>ivKIIm.X,Xn1(  '5~&9h҅2PHj;J2>NmgF'OLrܙ8s7݅rT l.\FRh}UAl#I ?n|JD{*0P@D)]SơEV[m)pڱCYdyM FZh&Z#~Tb!v~}BO@#,8bRZL){ +BdD`[ӮE4׮کK}N`:Prop +$֧ դ:]̄ݹ_r_w{ ɝCIL$իh\:Cȍn<5 ňr +t̕2Ȝȑ9꼀j?vQ6ߖiTT4m(ڑ?}/φW,j"?ʐ;|y $ +"mV#\ `Pܢ]~ihV)aےWbCQb)n}kV>%j[O_uZl2R|eվ6F(ۺ]Lj:XQq2L 5Ljb~],0ID-ZEmFwcgEo`Z(|jcUm? +|:ԇ>'Ղ4IvX'$C,eAz%'ݻO tb ~XGЉsYs_jH 3:X' +͛lyZ?޼ZBPwO]E. SA!+o +hA+4PHVSb<C5a;;W[EH(=ѐHFTD6m&K#(1/-݆mY{~aDKFJLC XnVc:/%grY"aP칊)@nuAA^yצeJt,HC~_yhJr<:2}ăH.Ho (;#o>Q% Y6i6xK,waI֨\C;IPtu7F3O^?[u%MBa~cw^dt&@=O ĒO gNbmyq9ח/#$ ߅)nNu`@ px RNa# mDșjX|"<;aýX4>Ѩ8,|j3twή-$}}''c+"-)'u7_OC>hNek SKn> +>h~9KeMz*nm=%=_4 zkIFL~Z uP&{xFxE yF4M>c~~IT "0cfiؤG|Ʃ/=jh(Hbν·hct +#RIa uN%gh$vsƟZIQ 7l(l[Ԑ +ϗ  0@h+^}j +|$dnmT|\_rJױQG솗QGsB( .4} ~lJCJ:bGOpzn7~v݁쏼*֐_/h'r,幖s@َl2;48/=Po>:0`(>]`{7 Šѧr$ <4= pK +^ %Ŭ5ek"6p#b/#u;sEgS7!H7עIquͫźyfѽɻ͊rMk1čQX3 _Ʃ)Jm\s'mؗy@srhPՅ!qFIi͕F7Sּ,jژrBXkT3RI욶mZiaQ (k& k[[QQb+[>5} +ҭw,v]"j#^ɱ"N:ؑT +V% ~3UO -/΀ +gB|*ҿzI To#Y.gH6]gw>ffy:faU a߱]4ӯ5{wQc( +9Y\ΉLBO0qЖ#̼h} ۿw>tbC5BԂxCpO^m} E`Ws +ʘ% +."f*cM[Vn/c7U ITg{n%-H?:>عg:(yYpL" DkQomArzEL^.Z]ܼ\;ttFHt:A1A¦55L ƀbkʈo.;:P{22 /7/Qβ7YK8wrƝ<Ĉ3^gl›7SD!q#=^3Ŝ+3ğۺ_ƅŇ& +x5̻"&ney>ҍ\m!0F*[!%m|;\:b碕YCPges##h!%7qVv&܅OFԈCXvRﺸ,rpCǙJ1[ PS㊠#PN^I,hYZj3 !+l6x)lnifQİ|\9yg/`x,B!1gZӛH7#yXDR,F۝me0^L#j:8msRg6z- ͋'~+ѓIB@ ;;B +d%+sWSI!GϚkXc9A_R)mS?zdpPݛD ZSXZX%v H2r{~HJ9*b~+/"VTc 3'BAP)# +1 +5;ſP,Tg ~A\j ELhh@lB~CauR %bc0A:D5v O?lN ?p9)fTʋbvGŢæ J$o~$2K%7j:<aD\ͩ6:]")H/)`S3dkmD_ x@.h&3 |~i=UԑgBjt!d/BDvm0![X-SVȧO[I:d*&*sdt}~iB1(ZwD:b5LUƊ:j[+};;Gig;ޡqob.cHO"FPX`'eOğlKA4f"h +YW U6g+t-]ԷIj_DqIFvڅéEjCV&XPX>yFvJ-C ^fYR0rV#GO!)%em|0-4r+9f-a!g1'YUZR\Hس`3S|]"Yԛ5HXr]~qf[W'`8jA5CI%78OQ*p|_N MNV^.` +J;& MW`E =w+L8W-+Ȇ.HM++n6#U> E:|^2m7h| +ۂ)u[XP@j͂%"nqJ 9 NL)ǫ/anǨV0mDŽ` ;OcK5b'En#ߣ`#`+`3TءHM+&xP + &yLJ҅؃ ns$s4GN#8fO8Nx@^irPqq#sbzgv鷯=?,ADi4c*U"ߊo*N]]6OX;c1)s)ȽP'7c*s]ioDb1 4WҁC,&_X{۬~ص@:^ io"YJ + UHZ<6aG5IΌ~}|u0"suğ,B) cPK!T :nږ2/Xa'Ž1%=q2#^oX|Ucc6risj{o 4Ё<#K|i#|#W[+ 5/6GM:}s MUw {1_2i+K# @1܃ eLng,]m0l A)rD[OT,;ȑ%91YeJL&~ ]՞wboi(l ݗO@B @7I{P IIRia+.XXؚwuq=j`.ٴ2.8R }QVr o/C1_"GB{!#Qdv{p>b,0KK30JL d 1GF[rsyryT:XXޘs;tJM,. gnGJ*4+Y-ĩ [t 4 +*g*z~$DSBh 0FF.b8[Ô(oK߇?oVIQ.I7%1XPd0 +|, 7r?\Cv>#%.R|Qʩ,444ʔ"nE ZR5(k7oI }4{l,g;p ii^}mm$R9O0dHl:hD }6ȻlVMn_bb [CWtbEQZ>3gLԣ3฿zՐz,/J2a3I)9a(!sT^JUU҈ ꢓ  +KbfRE2AJ-W f{T|M`jmVv% 'K4 KAADd,l:">c1Nf4GaЌ}1zJvSGSӑ:*/qbځ,U8?mto9qlpY}j7|vf Ք]**ʍIG| nz7f7#32Ekn_-V^jO* f}%MOˉ?!dJu6'=XL_lloG!0ҳjtٷ{\? I[6VG"Duo(|czS+69`'vAQ Z`rn'rm03%&9$;"*i%4Mj(Z_X4&Ksf4O "}YЦtG@@uHobO c@-X |pKܧBrw}K2C5ZYHVr[yàZ:LEϤڢ %uGBbiPO{Z.yp$N26J"kC O ar6z ]- 6Y+XĨ[%.^{z%^dW<-Y/[YS멵tQ.SLrGlRt ;]"l +hͷsuecߦ 46)͵BS mKe}MHٖ  ^&j5^c#C"nD ۝bP092RɂZYƛsx.0[ kT)(YjgiX>dsz5<2N0 v< oLT  BJ0Af|M6|HQf\nj 2Xf՚ Vrd.g0)1Gq-O[FL*L9SjS_4*xq#\ŕ"IpHG8y{$3=Ha9g- H4w;(SBGNpaTvЮP% XN4>cun`ʰk~[2׷o:J!fT*N0bYY&t6;OPTPeXeU =tR&,PngLnMvCwJ>7nix@5 _+lG( JL"Gÿ=B.* U8%qKEmʥEO?\^*Coanr.Ȧ2#޹!8*jYM>qj)nrun>_Hsmw,jt'YXH*R7&Qg#W9Kᲂ` 4o#=$\/U<#N0cz'`&LE.V|5T?8"w.(H!Cw"ҳjnwi6!醧q{H<Ȗ]050u{}8VH$3GނQo,OJO[QizL\V-Q䇍,GZ|+l)-FC[M4:7s+ :ҤD^aezi%U`P#<{"S!r}K\MZN'4*NOP,|PH9ed N^*F]p.M +ZjSE ܗc/R +~ +I +QomOhF-CFPEpA=f*z|| +\cw%{څ(Х'К,Tl]sJîti%0|v1~Q~(0->O] *N/B0VhvZ\s;ՙ4Y3t1T֧ ](?>w]Y2^@2#Ǖh>!ĵF' wx2;7::?a\夕lMjHSNU@楠+bQwI}n4a!s-qׇLT,4H؎߄:հWt_2c!'_NzXi%-ΫDCuwXî8D|S|;h g8tVsp]CA!_ +hz`f^@{QtiIhVt t={(]^hk4g^<Y& rPn^%2(LY :ڧ0A2&>]k6ImO£INUɁR"3Fj#"jhQe2ks[]>*N +$zeQ,zCeh&^R%c:1#WKoQ`e2\R0a<4L=bmC4fg"qbe$sgs8vW&L3l0\{"c<-_9gI=Ϙ<5-8.r?zܭ t߼~{9䨃&$ H7G*oMʼIKF +<,PN+wIi>'"kE_nFNw\cƴ A7p\aBzJ&48*h0 +I:T?k>ᬧ:)Lf!y' l!!h.UѰJZzOu/X.xCr@~\ +zV-^fS}MdO Bb`zϴDpe_xGϤ{dxqz>ln:h(){jRNӑ`E <'\!6q,訉us. ەʝR +ecB}\6N}2I v4dڱZlZ4SswBEGFň{Aqf>Bkpw>_v,l#Qt]=ѥ j0x]iEü =w~yx'[3Vc:l{OR3wmw6mWSe^zCE0-!^;ϐ9:`Q{=C5;C=Z},EW)Q'iq>v Ra"}RCEw:THLDC~zf^LUsI324qof&"Q-'O]#,|*y}D7 &,ͿToELyƲA}dDh1$gm&#~]eC4ߖt͈BRԻ"P#MM4$yA;`Okɷ @N:` Nc3|LWފ[8]lj"تG'E3fhj*sQ9EGa{ѻ 2EӜDɷsQ@ V^놙YX%" ( 0<U1@C}+/4;׸_t1 J rcm"yp/x0&* {e'2K3٭P{Ks % +gx[I$Q3;p%b&lkoMcܸdKŸ1Ƭ ruA-A\)ts'&Q* 4 4w[R+䮩>IMhqa,PeEx?aىe^f:flR<nj3 +b-]'7YbEXSœfдFD}YzkEOIZ'b}@n'/^Y}b [U%@ |,U$9;>%7xSS툛=V_|e=+aPdt!z`op>e6\Qz 9D 2f}-"'ͯFLa^ILӏYZS{ w}3f+vɑȨq`b*3m#e6(@@5$%8%;42\#~%jkoCWjtq3JfG-߹#:qݾ}$kBYeZaJ ;[ZL9{\lP[Nu<̲N"? +@saʠ{:U`LO/fɸфj޺)dIYC7п3FK+eÇ~k΃tՋrB`NQ9h~t[h,)=P| +i,hI3EhFluU#^זq =beIn4cx +wk0Z$ ^)?-Z y-ZQn =[G) &|,-w _p%VP*WilGP萳d^oq@SuǠy8b+&5P,!YלQ@l3%,^K*wѦ:Nga wnAS4 R<:B@7JP~7d62j̙)gGGu; +)e[Dz._ޤC'݀9A{ڠH+jWc πsmHEӳfgN[Gaw"Tt){ܝ8D )MX`A A"CWZ Cb +@.=Wl07$}^n~zsVBa1-rlև lB*\8=PVZѮ.#H7 ʁܔ$@͐e*Bt~ͅjoh B션q3s \S;C6dq.竊ʔFs #d@3Xе,*H),/^owS3b*PQEfDyy yA͙YVۊ/=O MI6"(tFQ}dQ+mAWJɦ QòB֚́ɋ4FHH,8>>{jzǵQ(,b\Ē)^o;4na'Cj eZb)?Ġ꣱dϩ*x4.OX)=R#hu+'ƖkHk-(V~.mi9*LJNSE'{ Fe`_b6Oa=gfā{g`w& ;i80^MXqs!D%7fO˭I;;/|@4@Rz>:;5▋"hk}/Jy/"Ⱦ7lJ^!Fe $PrlnJ^R[#r ZԹ+XQ2 +e:z$Ւ=׍y. +H#֛:>>N!z;Y>QTC3B [ed\FXjRD͋)e+tQC.:C5;Cgx4xpO +3}USbvy=1z 1)e9ʕL PB%sqF; }9#ሙnإpB({Jc5RrbaduՍ4[KcNXAD"x=0 55Kc*zO*u1CqmGxAWW|G}pfiXr֘'8 S 4 *q(Ȇз&6ʔ16kzQAJDo13ҟsIC 8KXt Dr E4҂P-w˪Fj<|gdnǶ +B+9uK_Eg A(hJkâtH4ıGnӒ)wD\F;iPSF1vM"6`\d γ6+z ѨJc† H?H, X]#'x$Ŭ sfC@c0:J#!OD<"'+iS##PzGA3]}v5E_|DC+m{GT2ZUO{BD"m;#N!]>$V +A.dR{TLwYN!SWLSI9-)}(2¹Ѻf8\ .! ZX.d0n;S FxU-("V( ˿H<6FP>`z|l4/1 %i[(Q5ܐDc}㫉VJ9NPNQ그3Y[5#:6;#?Lcto]r}AoLG{F36tUyM XrbbSvx ?>~ڌl؛.csk)u kiMĶ-J/W`D.1./?e DL}M̬Kܰg R^sB?5Қ|B8p}ktPw;_%gizj|p4J{vᣉ$\1~TsY5yaëej ĞLpCg9D gATiw# >/˰EFܨmNF&`+Y$" R9</z^6^6*B[-̝py +Xң;k:h0lw KT X>xWM92!:x9j<۲2f} 5kHZ>MUJͅvLel]eHS3LJ|v)DZFD|NWY'=i"_)wu)~D3G.Ԩ93?96*<UM~c!IwF5#EЫwT8MXIuɳǴbw/FMQEMWW~6(ZMǥe;pF4 ^8XVh,(܄Sʾ}פe "\9ǠN0ʦr0O+TQL~Ro-TVb8\Uhd yBQ +.u3iK=,#% ۹D~25^uƌZY@1Yu1gJ芔s{n|k(0l*[P{T,Pȑ/_*Y +2q+I@7k6{_!e(Qh%k71p(G1 'Q-w zsP/3Ɂߣc>+OGu'$' ]RhMwa"G  5*°A5?ST_ Ҕ\VqbiEzMt*ٖڦ~K'GuoR'MkH'aIݦoRW\KP'$~3GS,W'k1M0tiF2Bf221MXww߂y% }7L6ܣ9Vgʾ㵰 n}-, vw܅Hi>yr?Y = !$34lϋ { itf6XtJ3( Ohp Qh ql ++do3g0!rOq.B+tfoԇ5JDq~F랔 myM;Hà"AF_'i@0fT&#fT#h͈g p+pv!^r؋ zA l7١OHW|SwQ!/߃e=2,/b߉P>J # O\I\ƿҼ (;iD"WG*޳k9V͎PXvZ/iN(.9O:=6}xu!ENg[&oI/qjREZ5#a)=|*)ش(:@;*Sȩ({E2S/րc +Vc)7F^;vo[pϞkN[Gn7i +1W[Gw+ߢRB6kg+.7꜋zc208Ν(kS-@Ng߳ih]$,!Wp؃ƻ§磬m98jʉEPwSl@{+n](kQp6\},?Xb^bh ,2yjNYu[=2GCJj^ײbEgrkE/21<>kæRdk[jqA8Iv4`F k\Lãŵ|&{JE-ӣy#z#FsD`…KAޕe 2}ӋQRb}4x GX%wBFSF=z +Ǔ)s7ۓCCA6=*)g`i_ "KL W ; + +9 %YX\[6'ihȄyjRD;"#>'44461@3^S9sہ* rfO -̆>'Te;Kta鹦4_8x \Yp$vZ[|U22rA2i\@,mIU Efqy4Ӎ(/E ;(oN(AH :'$ވO +OC CVۈXԲ#{7.V/p U>OD,T]E捒푀sm}5@P{ ;q _;k tuu+f5o8!^,˷ߊYZ/|CRt0ʿs}ԋ{q +դqοi?@q&1 4L~ j÷3A<;kBi1PRvn]w*P(M+3) +nHʎTJh6i)57 C~Fo PEd{kmHypG'.ϖmvOq*yҜʋ*3|ǍEW=y;oItM͉%]U uQ|-zuqg[]wxHL*#Isy! tM I)Q.)Y2u|[#I(+cu3've}&',c&'|)ܖZbXN2NY~/}|4mT}PՐJA+*Td2C=}8h,Z]j%E3 ~IΝ]YECBCI[3ÄŘ8=bs[zѣДh4i}Y7>}ہj,}^? slSZ3=V[: Do4;sz f=NoJVp ک]!/H;V͗ }VjFk;N%[n،$,]bxro>v;.B]%&~ HƂH c:_MXU5[Xeӥ#~b'B=`ɜcd,* ! +"=FՁ-vFF !'N,Fϸ=zݹy+],}o糗b/*n; 7H5*XhsZ6ae'"/|`@ҕiT=:/|?ոK.êxQHr,8!?\kTsI\UXΓYa_>yzhqY/>_x`OY_]w\ } |~4!Kp{FTԎ.T-nPC^:S'maɺa8[h1z?{WB=%{M%1Dֆ̲Y%4 D]gh ͫƔliUS3$` +*LNW'Мۻ$ýG9i, /RfIy7hmȍxbGܢtg[QnA b7[ S<48c+w1u5Q{zԥbB-u(}E+ C +)a!WP/C?|%:Cv G 9c4g7N.,B3/YPϦPJgۭ.%&Ų)>ɍfVCJFȶ6:'Ĥ(SNfq@d&=> kƣr4TGD80~xWؐe>adyqlW +{UjEa*C&RgD J9/5#yċ>Pc +! 3v +Y9dBL7)X4'hozͭN +-f޸A"+[ ݘĀB~8Tk{ȥD7%}(zwFڤ#9gpmu&u +ɠxƓH곑1(ȯx䷓f}4 E^"JRow ))>G0BCw.!"gbY8ofͯ$aH>g"Syѡ܊"1- DzDɓKvk?OgRWaЁA챁U@s"kࢼ\; <<\jkW +GCJ)Jp(RD>4ZZU|'!WkU.c4eI`EMx|5tlUܚ<Ƭ@ FAT♥#K -kmFqAMIc {- +R=.qilNL8*Gb8+x#2i}nusFjX_U=>2K8bK!\tPh YLɭUNȔZ(j9iJy^_SEZvc641F0a +HѤa gHFzt0 BtMWV}ڙ̱,331( WT?F-RVu[bGL~Їlx@\`+=ČơpUe!t<ֹyYNte uqH*ipl^QmCe[^VG3g=Ls2&ridy SSStF=JghcSΦ:'2s7MkL/E8jnAbUi$&>vG˨T + jhN*fcI4°b˪G钜ól`#ȴOx:ˡ7,VqɪIĦ,r [c!6Imi0H@9pl+4,VĆ>~)mN6N_Y%y^H djo#*KiQН]Oŧ +5vrxx/{.Uޖi||bNc'@`NA(ω;Gװ]]=y +-z4BHλ/eb mP#I{ +vXq;ӶEV һ_on2AjX$ml1qnWW +,UIHs88KLɓ9R跟q # +=)p*:xvbqYb rM&1W Re>HOc |<$HDa[t`hzhXƎS`Jv&iv_'V~Dl:LWJ(Ȁubr#ǺC`3^b{;AJ;wM/!0=fJL'wIݙ~pw1BəJhvpH^ϢdVRHZn66iuP^4K"]7XP=}yPZĒ~VT[,![X:Ź^ܿaCc>`HɅq:sD W5qK!W9( VF>E_$aܸh9Әg%R* $ܑudL]j}zsI FP؀qw(M܋7рJ57CSy(!#8-sO v}Oc&ժw,ToU RL4ق)Fn5V#hZeȔj6'Q=Rƥ P W*g rcVF.YMa$͜ 4N5JY-,#yL71vדּA0sA_+n ~Τڎ8s& p:Ѓxge@57GZ)z{'xVܸ( >f?F2ъ)4Q C2Do8-%9 qb"k:vaZ鎲L,K&d'y]WSwz^?CDٛQ13("I,MVMDULck&1sCDt)Z\cN~;@X`A:X'#dZ7vA2&l0xhXpYN\B\ Gg{MDI?vޢL'V}>zj?WKNTu1sPA_}՘^>s ⯺R sWIEF9M j?̃vF-sh%K'VPKdbM5نB  COPYRIGHT-jai_imageio.txtUT/EUxPKdbM5@" DISTRIBUTIONREADME-jai_imageio.txtUT/EUxPKdbM5i  ENTITLEMENT-jai_imageio.txtUT/EUxPKdbM5U)*L8 k LICENSE-jai_imageio.txtUT/EUxPKdbM5Gd!' "THIRDPARTYLICENSEREADME-jai_imageio.txtUT/EUxPKdbM5c4U  1UNINSTALL-jai_imageioUT/EUxPK +dbM5 A2jre/UT/EUxPK +dbM5 A2jre/lib/UT/EUxPK +dbM5 A2jre/lib/amd64/UT/EUxPKdbM59>nZ ;3jre/lib/amd64/libclib_jiio.soUT/EUxPK +dbM5 Ajre/lib/ext/UT/EUxPKdbM5aTg ^jre/lib/ext/jai_imageio.jarUT/EUxPKdbM5W kjre/lib/ext/clibwrapper_jiio.jarUT/EUxPK & \ No newline at end of file diff --git a/rpms/awips2.64/Installer.java/src/jai_imageio.patch1 b/rpms/awips2.64/Installer.java/src/jai_imageio.patch1 new file mode 100644 index 0000000000..843f7e8865 --- /dev/null +++ b/rpms/awips2.64/Installer.java/src/jai_imageio.patch1 @@ -0,0 +1,33 @@ +*** jai_imageio-1_1-lib-linux-amd64-jdk.bin 2011-07-05 09:24:04.000000000 -0500 +--- jai_imageio-1_1-lib-linux-amd64-jdk.bin.update 2011-07-05 14:34:16.000000000 -0500 +*************** +*** 1,6 **** + #!/bin/sh + PATH=/bin:/usr/bin +! more < $outname + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + +--- 160,166 ---- + fi + outname=install.sfx.$$ + echo "Unpacking..." +! tail -n +215 $0 > $outname + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." diff --git a/rpms/awips2.64/Installer.java/src/jdk-6u27-linux-x64.bin.REMOVED.git-id b/rpms/awips2.64/Installer.java/src/jdk-6u27-linux-x64.bin.REMOVED.git-id new file mode 100644 index 0000000000..3ff30edd1a --- /dev/null +++ b/rpms/awips2.64/Installer.java/src/jdk-6u27-linux-x64.bin.REMOVED.git-id @@ -0,0 +1 @@ +6cb2ac170197c848089dae548835fae6c31d879a \ No newline at end of file diff --git a/rpms/awips2.64/Installer.java/src/jdk.patch1 b/rpms/awips2.64/Installer.java/src/jdk.patch1 new file mode 100644 index 0000000000..66d68bfe0c --- /dev/null +++ b/rpms/awips2.64/Installer.java/src/jdk.patch1 @@ -0,0 +1,19 @@ +*** jdk-6u17-linux-x64.bin 2011-07-05 12:02:18.000000000 -0500 +--- jdk-6u17-linux-x64.bin.new 2011-07-05 12:16:55.000000000 -0500 +*************** +*** 67,73 **** + ARCH=64 + BINARY_NAME=jdk-6u17-fcs-bin-b04-linux-amd64-11_oct_2009.bin + diskSpaceRequired=255193 +! more <<"EOF" + Sun Microsystems, Inc. Binary Code License Agreement + + for the JAVA SE DEVELOPMENT KIT (JDK), VERSION 6 +--- 67,73 ---- + ARCH=64 + BINARY_NAME=jdk-6u17-fcs-bin-b04-linux-amd64-11_oct_2009.bin + diskSpaceRequired=255193 +! cat <<"EOF" + Sun Microsystems, Inc. Binary Code License Agreement + + for the JAVA SE DEVELOPMENT KIT (JDK), VERSION 6 diff --git a/rpms/awips2.64/Installer.java/src/pydev_certificate.cer b/rpms/awips2.64/Installer.java/src/pydev_certificate.cer new file mode 100644 index 0000000000..e4463b923e Binary files /dev/null and b/rpms/awips2.64/Installer.java/src/pydev_certificate.cer differ diff --git a/rpms/awips2.64/Installer.jimporter/component.spec b/rpms/awips2.64/Installer.jimporter/component.spec new file mode 100644 index 0000000000..568c1c3f50 --- /dev/null +++ b/rpms/awips2.64/Installer.jimporter/component.spec @@ -0,0 +1,61 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python JavaImporter Spec File +# +Name: awips2-python-jimporter +Summary: AWIPS II Python JavaImporter Distribution - 64 Bit +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-jimporter + +%description +AWIPS II Python JavaImporter Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/awips2/python/lib/python2.7/site-packages + +%build + +%install +JIMPORTER_SRC_DIR="%{_python_pkgs_dir}/java-importer" + +cp -rv ${JIMPORTER_SRC_DIR}/* \ + %{_build_root}/awips2/python/lib/python2.7/site-packages + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.matplotlib/component.spec b/rpms/awips2.64/Installer.matplotlib/component.spec new file mode 100644 index 0000000000..a6a2936a3d --- /dev/null +++ b/rpms/awips2.64/Installer.matplotlib/component.spec @@ -0,0 +1,85 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python matplotlib Spec File +# +Name: awips2-python-matplotlib +Summary: AWIPS II Python matplotlib Distribution - 64 Bit +Version: 0.99.1.1 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-numpy +provides: awips2-python-matplotlib + +%description +AWIPS II Python matplotlib Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +MATPLOTLIB_SRC_DIR="%{_python_pkgs_dir}/matplotlib" + +cp -rv ${MATPLOTLIB_SRC_DIR}/* \ + %{_build_root}/build-python +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* diff --git a/rpms/awips2.64/Installer.nose/component.spec b/rpms/awips2.64/Installer.nose/component.spec new file mode 100644 index 0000000000..d9b91c7bd4 --- /dev/null +++ b/rpms/awips2.64/Installer.nose/component.spec @@ -0,0 +1,88 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python nose Spec File +# +Name: awips2-python-nose +Summary: AWIPS II Python nose Distribution - 64 Bit +Version: 0.11.1 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-nose + +%description +AWIPS II Python nose Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +NOSE_SRC_DIR="%{_python_pkgs_dir}/nose" +cp -rv ${NOSE_SRC_DIR}/* %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* +%dir /awips2/python/man +/awips2/python/man/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* diff --git a/rpms/awips2.64/Installer.numpy/component.spec b/rpms/awips2.64/Installer.numpy/component.spec new file mode 100644 index 0000000000..23869cb294 --- /dev/null +++ b/rpms/awips2.64/Installer.numpy/component.spec @@ -0,0 +1,128 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python numpy Spec File +# +Name: awips2-python-numpy +Summary: AWIPS II Python numpy Distribution - 64 Bit +Version: 1.5.0 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-nose +provides: awips2-python-numpy + +%description +AWIPS II Python numpy Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +NUMPY_SRC_DIR="%{_python_pkgs_dir}/numpy" +NUMPY_TAR="numpy-1.5.0.tar.gz" +NUMPY_PATCH="numpy.patch1" +cp -v ${NUMPY_SRC_DIR}/${NUMPY_TAR} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +cp -v %{_baseline_workspace}/Installer.rpm/awips2.64/Installer.numpy/src/${NUMPY_PATCH} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${NUMPY_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +rm -fv ${NUMPY_TAR} +if [ ! -d numpy-1.5.0 ]; then + file numpy-1.5.0 + exit 1 +fi +source /etc/profile.d/awips2Python64.sh +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +cd numpy-1.5.0 +# Apply the patch +patch -p1 -i ../${NUMPY_PATCH} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +/awips2/python/bin/python setup.py clean +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +NUMPY_SRC_DIR="%{_python_pkgs_dir}/numpy" + +pushd . > /dev/null +cd %{_build_root}/build-python/numpy-1.5.0 +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.numpy/src/numpy.patch1 b/rpms/awips2.64/Installer.numpy/src/numpy.patch1 new file mode 100644 index 0000000000..f0355cf9a5 --- /dev/null +++ b/rpms/awips2.64/Installer.numpy/src/numpy.patch1 @@ -0,0 +1,20 @@ +diff -cr numpy-1.5.0.original/numpy/distutils/fcompiler/gnu.py numpy-1.5.0/numpy/distutils/fcompiler/gnu.py +*** numpy-1.5.0.original/numpy/distutils/fcompiler/gnu.py 2010-08-22 00:08:35.000000000 -0500 +--- numpy-1.5.0/numpy/distutils/fcompiler/gnu.py 2011-07-27 14:51:34.000000000 -0500 +*************** +*** 24,30 **** + #_EXTRAFLAGS = ["-fno-leading-underscore"] + _EXTRAFLAGS = [] + else: +! _EXTRAFLAGS = [] + + class GnuFCompiler(FCompiler): + compiler_type = 'gnu' +--- 24,30 ---- + #_EXTRAFLAGS = ["-fno-leading-underscore"] + _EXTRAFLAGS = [] + else: +! _EXTRAFLAGS = ["-fPIC"] + + class GnuFCompiler(FCompiler): + compiler_type = 'gnu' diff --git a/rpms/awips2.64/Installer.pil/component.spec b/rpms/awips2.64/Installer.pil/component.spec new file mode 100644 index 0000000000..23a309c6dd --- /dev/null +++ b/rpms/awips2.64/Installer.pil/component.spec @@ -0,0 +1,88 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python pil Spec File +# +Name: awips2-python-pil +Summary: AWIPS II Python pil Distribution - 64 Bit +Version: 1.1.6 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-pil + +%description +AWIPS II Python pil Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +PIL_SRC_DIR="%{_python_pkgs_dir}/pil" + +cp -rv ${PIL_SRC_DIR}/* \ + %{_build_root}/build-python + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.pmw/component.spec b/rpms/awips2.64/Installer.pmw/component.spec new file mode 100644 index 0000000000..cf9425633b --- /dev/null +++ b/rpms/awips2.64/Installer.pmw/component.spec @@ -0,0 +1,89 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python pmw Spec File +# +Name: awips2-python-pmw +Summary: AWIPS II Python pmw Distribution - 64 Bit +Version: 1.3.2 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-pmw + +%description +AWIPS II Python pmw Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +PMW_SRC_DIR="%{_python_pkgs_dir}/pmw" +PMW_TAR="Pmw.1.3.2.tar.gz" +PMW_SRC="Pmw.1.3.2/src" + +cp -rv ${PMW_SRC_DIR}/${PMW_TAR} \ + %{_build_root}/build-python + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${PMW_TAR} +rm -f ${PMW_TAR} +cd ${PMW_SRC} +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +PMW_SRC="Pmw.1.3.2/src" + +pushd . > /dev/null +cd %{_build_root}/build-python/${PMW_SRC} +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* diff --git a/rpms/awips2.64/Installer.pupynere/component.spec b/rpms/awips2.64/Installer.pupynere/component.spec new file mode 100644 index 0000000000..0807a4619a --- /dev/null +++ b/rpms/awips2.64/Installer.pupynere/component.spec @@ -0,0 +1,118 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python pupynere Spec File +# +Name: awips2-python-pupynere +Summary: AWIPS II Python pupynere Distribution - 64 Bit +Version: 1.0.13 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-numpy +provides: awips2-python-pupynere + +%description +AWIPS II Python pupynere Site-Package - 64-bit. + +%prep +PREREQS_SETUPTOOLS_DIR="%{_python_pkgs_dir}/setuptools" + +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +cp -rv ${PREREQS_SETUPTOOLS_DIR}/* \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +# Ensure that we have the required access. +touch /awips2/python/lib/python2.7/site-packages +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +touch /awips2/python/bin +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +/awips2/python/bin/python setup.py install +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python +mkdir -p %{_build_root}/build-python + +%build +PUPYNERE_SRC_DIR="%{_python_pkgs_dir}/pupynere" + +cp -rv ${PUPYNERE_SRC_DIR}/* \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* diff --git a/rpms/awips2.64/Installer.python/component.spec b/rpms/awips2.64/Installer.python/component.spec new file mode 100644 index 0000000000..36e53f46bc --- /dev/null +++ b/rpms/awips2.64/Installer.python/component.spec @@ -0,0 +1,267 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +# +# AWIPS II Python Spec File +# +Name: awips2-python +Summary: AWIPS II Python Distribution - 64 Bit +Version: 2.7.1 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-python + +%description +AWIPS II Python (64 Bit) Distribution - Contains Python V2.7.1 plus modules +required for AWIPS II. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/build-python +mkdir -p %{_build_root}/awips2/python +mkdir -p %{_build_root}/etc/profile.d + +%build +# We can use the same source that is in the 32-bit python directory. +PYTHON_TAR="Python-2.7.1.tgz" +PYTHON_SRC_DIR="%{_baseline_workspace}/Installer.rpm/awips2.core/Installer.python/src" + +cp -v ${PYTHON_SRC_DIR}/${PYTHON_TAR} \ + %{_build_root}/build-python + +pushd . > /dev/null + +# Untar the source. +cd %{_build_root}/build-python +tar -xf ${PYTHON_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +cd Python-2.7.1 +./configure --prefix=%{_build_root}/awips2/python \ + --enable-shared +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +make clean +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +make +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +popd > /dev/null + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p %{_build_root}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses.tar \ + %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses/ + + cp %{_baseline_workspace}/Installer.rpm/legal/license.txt \ + %{_build_root}/${COMPONENT_BUILD_DIR}/licenses + cp "%{_baseline_workspace}/Installer.rpm/legal/Master Rights File.pdf" \ + %{_build_root}/${COMPONENT_BUILD_DIR}/licenses + cp %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses.tar \ + %{_build_root}/${COMPONENT_BUILD_DIR}/licenses + + rm -f %{_baseline_workspace}/Installer.rpm/legal/FOSS_licenses.tar +} +pushd . > /dev/null + +cd %{_build_root}/build-python/Python-2.7.1 +make install +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +popd > /dev/null + +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +# Our profile.d scripts. +PYTHON_PROJECT_DIR="%{_baseline_workspace}/Installer.rpm/awips2.64/Installer.python" +PYTHON_SCRIPTS_DIR="${PYTHON_PROJECT_DIR}/scripts" +PYTHON_PROFILED_DIR="${PYTHON_SCRIPTS_DIR}/profile.d" +cp -v ${PYTHON_PROFILED_DIR}/* %{_build_root}/etc/profile.d +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +# The external libraries (hdf5, netcdf, ...) and headers +# we include with python. + +# Retrieve hdf5 from: hdf5-1.8.4-patch1-linux-x86_64-shared.tar.gz +HDF5_PREREQS_DIR="%{_baseline_workspace}/Installer.rpm/awips2.64/deploy.builder/pre-reqs" +HDF5_TAR="hdf5-1.8.4-patch1-linux-x86_64-shared.tar.gz" + +# Copy the hdf5 tar file to our build directory. +cp -v ${HDF5_PREREQS_DIR}/${HDF5_TAR} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${HDF5_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +rm -fv ${HDF5_TAR} +if [ ! -d hdf5-1.8.4-patch1-linux-x86_64-shared ]; then + file hdf5-1.8.4-patch1-linux-x86_64-shared + exit 1 +fi +cp -v hdf5-1.8.4-patch1-linux-x86_64-shared/lib/* \ + %{_build_root}/awips2/python/lib +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +# The Raytheon native libraries. +PYTHON_NATIVE_DIR="%{_baseline_workspace}/Installer.rpm/awips2.64/Installer.python/native" +GRIDSLICE_SO="${PYTHON_NATIVE_DIR}/gridslice.so" +if [ ! -f ${GRIDSLICE_SO} ]; then + echo "ERROR: ${GRIDSLICE_SO} does not exist." + exit 1 +fi +cp -v ${GRIDSLICE_SO} \ + %{_build_root}/awips2/python/lib/python2.7 +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +popd > /dev/null + +PYTHON_SRC_DIR="${PYTHON_PROJECT_DIR}/src" +LAPACK_TAR="lapack-3.0.tgz" +LAPACK_PATCH="lapack.patch1" + +# Copy the LAPACK tar file and patch to our build directory. +cp -v ${PYTHON_SRC_DIR}/${LAPACK_TAR} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +cp -v ${PYTHON_SRC_DIR}/${LAPACK_PATCH} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${LAPACK_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +rm -fv ${LAPACK_TAR} +if [ ! -d LAPACK ]; then + file LAPACK + exit 1 +fi +cd LAPACK +patch -p1 -i ../${LAPACK_PATCH} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +make blaslib +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +make lapacklib +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +# Copy the libraries that we just built to +# the python lib directory. +if [ ! -f BLAS/SRC/libblas.so ]; then + file BLAS/SRC/libblas.so + exit 1 +fi +cp -v BLAS/SRC/libblas.so \ + %{_build_root}/awips2/python/lib +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +if [ ! -f SRC/liblapack.so ]; then + file SRC/liblapack.so + exit 1 +fi +cp -v SRC/liblapack.so \ + %{_build_root}/awips2/python/lib +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python +copyLegal "awips2/python" + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%attr(755,root,root) /etc/profile.d/awips2Python64.csh +%attr(755,root,root) /etc/profile.d/awips2Python64.sh +%dir /awips2/python +%dir /awips2/python/lib +/awips2/python/lib/* +%docdir /awips2/python/licenses +%dir /awips2/python/licenses +/awips2/python/licenses/* +%dir /awips2/python/share +/awips2/python/share/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/include +/awips2/python/include/* +%dir /awips2/python/bin +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.python/native/gridslice.so b/rpms/awips2.64/Installer.python/native/gridslice.so new file mode 100755 index 0000000000..8338b6cbb9 Binary files /dev/null and b/rpms/awips2.64/Installer.python/native/gridslice.so differ diff --git a/rpms/awips2.64/Installer.python/scripts/profile.d/awips2Python64.csh b/rpms/awips2.64/Installer.python/scripts/profile.d/awips2Python64.csh new file mode 100644 index 0000000000..9d405879fe --- /dev/null +++ b/rpms/awips2.64/Installer.python/scripts/profile.d/awips2Python64.csh @@ -0,0 +1,15 @@ +#!/bin/csh + +set PYTHON_INSTALL="/awips2/python" + +if $?PATH then + setenv PATH ${PYTHON_INSTALL}/bin:$PATH +else + setenv PATH ${PYTHON_INSTALL}/bin +endif + +if $?LD_LIBRARY_PATH then + setenv LD_LIBRARY_PATH ${PYTHON_INSTALL}/lib:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH ${PYTHON_INSTALL}/lib +endif diff --git a/rpms/awips2.64/Installer.python/scripts/profile.d/awips2Python64.sh b/rpms/awips2.64/Installer.python/scripts/profile.d/awips2Python64.sh new file mode 100644 index 0000000000..0675bb8ecc --- /dev/null +++ b/rpms/awips2.64/Installer.python/scripts/profile.d/awips2Python64.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +PYTHON_INSTALL="/awips2/python" + +if [ ! -d ${PYTHON_INSTALL} ]; then + return +fi + +# Update the environment. +CHECK_PATH=`echo "${PATH}" | grep "${PYTHON_INSTALL}"` +if [ "${CHECK_PATH}" = "" ]; then + export PATH=${PYTHON_INSTALL}/bin:${PATH} +fi + +CHECK_PATH=`echo "${LD_LIBRARY_PATH}" | grep "${PYTHON_INSTALL}"` +if [ "${CHECK_PATH}" = "" ]; then + export LD_LIBRARY_PATH=${PYTHON_INSTALL}/lib:${LD_LIBRARY_PATH} +fi diff --git a/rpms/awips2.64/Installer.python/src/lapack-3.0.tgz b/rpms/awips2.64/Installer.python/src/lapack-3.0.tgz new file mode 100644 index 0000000000..a5698b2f8b Binary files /dev/null and b/rpms/awips2.64/Installer.python/src/lapack-3.0.tgz differ diff --git a/rpms/awips2.64/Installer.python/src/lapack.patch1 b/rpms/awips2.64/Installer.python/src/lapack.patch1 new file mode 100644 index 0000000000..c047033609 --- /dev/null +++ b/rpms/awips2.64/Installer.python/src/lapack.patch1 @@ -0,0 +1,125 @@ +diff -cr LAPACK/BLAS/SRC/Makefile LAPACK.patched/BLAS/SRC/Makefile +*** LAPACK/BLAS/SRC/Makefile 1999-11-04 13:23:14.000000000 -0600 +--- LAPACK.patched/BLAS/SRC/Makefile 2011-07-26 17:51:27.000000000 -0500 +*************** +*** 50,56 **** + # + ####################################################################### + +! all: single double complex complex16 + + #--------------------------------------------------------- + # Comment out the next 6 definitions if you already have +--- 50,56 ---- + # + ####################################################################### + +! all: single double complex complex16 libblas.so + + #--------------------------------------------------------- + # Comment out the next 6 definitions if you already have +*************** +*** 149,154 **** +--- 149,160 ---- + $(ALLBLAS) $(ZBLAS2) $(ZBLAS3) + $(RANLIB) $(BLASLIB) + ++ libblas.so: $(SBLAS1) $(CBLAS1) $(DBLAS1) $(ZBLAS1) \ ++ $(CB1AUX) $(ZB1AUX) $(ALLBLAS) $(SBLAS2) \ ++ $(CBLAS2) $(DBLAS2) $(ZBLAS2) $(SBLAS3) \ ++ $(CBLAS3) $(DBLAS3) $(ZBLAS3) ++ cc -shared -Wl,-soname,$@ -lgfortran -lg2c -o $@ *.o ++ + FRC: + @FRC=$(FRC) + +diff -cr LAPACK/make.inc LAPACK.patched/make.inc +*** LAPACK/make.inc 1999-11-04 13:23:14.000000000 -0600 +--- LAPACK.patched/make.inc 2011-07-26 17:05:59.000000000 -0500 +*************** +*** 8,14 **** + # + # The machine (platform) identifier to append to the library names + # +! PLAT = _SUN4SOL2 + # + # Modify the FORTRAN and OPTS definitions to refer to the + # compiler and desired compiler options for your machine. NOOPT +--- 8,14 ---- + # + # The machine (platform) identifier to append to the library names + # +! PLAT = + # + # Modify the FORTRAN and OPTS definitions to refer to the + # compiler and desired compiler options for your machine. NOOPT +*************** +*** 16,31 **** + # selected. Define LOADER and LOADOPTS to refer to the loader and + # desired load options for your machine. + # +! FORTRAN = f77 + #OPTS = -O4 -u -f -mt + #OPTS = -u -f -dalign -native -xO5 -xarch=v8plusa +! OPTS = -u -f -dalign -native -xO5 -xarch=v8plusa + DRVOPTS = $(OPTS) +! NOOPT = -u -f + #NOOPT = -u -f -mt +! LOADER = f77 + #LOADOPTS = -mt +! LOADOPTS = -f -dalign -native -xO5 -xarch=v8plusa + # + # The archiver and the flag(s) to use when building archive (library) + # If you system has no ranlib, set RANLIB = echo. +--- 16,33 ---- + # selected. Define LOADER and LOADOPTS to refer to the loader and + # desired load options for your machine. + # +! FORTRAN = gfortran + #OPTS = -O4 -u -f -mt + #OPTS = -u -f -dalign -native -xO5 -xarch=v8plusa +! #OPTS = -u -f -dalign -native -xO5 -xarch=v8plusa +! OPTS = -funroll-all-loops -O3 -fPIC + DRVOPTS = $(OPTS) +! #NOOPT = -u -f + #NOOPT = -u -f -mt +! NOOPT = -fPIC +! LOADER = gfortran + #LOADOPTS = -mt +! #LOADOPTS = -f -dalign -native -xO5 -xarch=v8plusa + # + # The archiver and the flag(s) to use when building archive (library) + # If you system has no ranlib, set RANLIB = echo. +diff -cr LAPACK/SRC/Makefile LAPACK.patched/SRC/Makefile +*** LAPACK/SRC/Makefile 1999-11-04 13:26:09.000000000 -0600 +--- LAPACK.patched/SRC/Makefile 2011-07-26 17:53:28.000000000 -0500 +*************** +*** 277,283 **** + zunmtr.o zupgtr.o \ + zupmtr.o izmax1.o dzsum1.o + +! all: single complex double complex16 + + single: $(SLASRC) $(ALLAUX) $(SCLAUX) + $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(ALLAUX) \ +--- 277,283 ---- + zunmtr.o zupgtr.o \ + zupmtr.o izmax1.o dzsum1.o + +! all: single complex double complex16 liblapack.so + + single: $(SLASRC) $(ALLAUX) $(SCLAUX) + $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(ALLAUX) \ +*************** +*** 299,304 **** +--- 299,308 ---- + $(DZLAUX) + $(RANLIB) ../$(LAPACKLIB) + ++ liblapack.so: $(ALLAUX) $(SCLAUX) $(DZLAUX) $(SLASRC) \ ++ $(CLASRC) $(DLASRC) $(ZLASRC) ++ cc -shared -Wl,-soname,$@ -L../BLAS/SRC -lgfortran -lblas -o $@ *.o ++ + $(ALLAUX): $(FRC) + $(SCLAUX): $(FRC) + $(DZLAUX): $(FRC) diff --git a/rpms/awips2.64/Installer.qpid/component.spec b/rpms/awips2.64/Installer.qpid/component.spec new file mode 100644 index 0000000000..13860efbbf --- /dev/null +++ b/rpms/awips2.64/Installer.qpid/component.spec @@ -0,0 +1,105 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python qpid Spec File +# +Name: awips2-python-qpid +Summary: AWIPS II Python qpid Distribution - 64 Bit +Version: 0.6 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-qpid + +%description +AWIPS II Python qpid Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +QPID_SRC_DIR="%{_python_pkgs_dir}/qpid" +QPID_TAR="qpid-0.6.tar.gz" + +cp -rv ${QPID_SRC_DIR}/${QPID_TAR} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${QPID_TAR} +rm -f ${QPID_TAR} +popd > /dev/null + +%install +QPID_SRC_DIR="%{_python_pkgs_dir}/qpid" +QPID_SRC="qpid-0.6/python" +QPID_SPECS="qpid-0.6/specs" +QPID_QUEUE_COUNT_SCRIPT="qpid-queue-count" + +pushd . > /dev/null +cd %{_build_root}/build-python/${QPID_SRC} +mkdir -p %{_build_root}/awips2/python +export LD_LIBRARY_PATH=/awips2/python/lib +export PATH=/awips2/python/bin:${PATH} +make install PREFIX=%{_build_root}/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +# Copy the queue-counting script to bin +cp -v ${QPID_SRC_DIR}/bin/${QPID_QUEUE_COUNT_SCRIPT} \ + %{_build_root}/awips2/python/bin + +# Copy the amqp dtd/xml data to share +mkdir -p %{_build_root}/awips2/python/share/amqp +cp -prv %{_build_root}/build-python/${QPID_SPECS} \ + %{_build_root}/awips2/python/share/amqp + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* +%dir /awips2/python/share +/awips2/python/share/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* diff --git a/rpms/awips2.64/Installer.scientific/component.spec b/rpms/awips2.64/Installer.scientific/component.spec new file mode 100644 index 0000000000..ca6b2315f6 --- /dev/null +++ b/rpms/awips2.64/Installer.scientific/component.spec @@ -0,0 +1,87 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python scientific Spec File +# +Name: awips2-python-scientific +Summary: AWIPS II Python scientific Distribution - 64 Bit +Version: 2.8 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-scientific + +%description +AWIPS II Python scientific Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +SCIENTIFIC_SRC_DIR="%{_python_pkgs_dir}/scientific" + +cp -rv ${SCIENTIFIC_SRC_DIR}/* \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* +%dir /awips2/python/include +/awips2/python/include/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* diff --git a/rpms/awips2.64/Installer.scipy/component.spec b/rpms/awips2.64/Installer.scipy/component.spec new file mode 100644 index 0000000000..1ebafe5dd6 --- /dev/null +++ b/rpms/awips2.64/Installer.scipy/component.spec @@ -0,0 +1,100 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python scipy Spec File +# +Name: awips2-python-scipy +Summary: AWIPS II Python scipy Distribution - 64 Bit +Version: 0.8.0 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-numpy +provides: awips2-python-scipy + +%description +AWIPS II Python scipy Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +SCIPY_SRC_DIR="%{_python_pkgs_dir}/scipy" + +cp -rv ${SCIPY_SRC_DIR}/* \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +export BLAS=/awips2/python/lib +export LAPACK=/awips2/python/lib +source /etc/profile.d/awips2Python64.sh +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + # Try to build a second time. It seems to work + # for some reason. + /awips2/python/bin/python setup.py build + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +fi +popd > /dev/null + +%install + +export BLAS=/awips2/python/lib +export LAPACK=/awips2/python/lib + +pushd . > /dev/null +cd %{_build_root}/build-python +export LD_LIBRARY_PATH=/awips2/python/lib +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.tables/component.spec b/rpms/awips2.64/Installer.tables/component.spec new file mode 100644 index 0000000000..6ce20f6dc5 --- /dev/null +++ b/rpms/awips2.64/Installer.tables/component.spec @@ -0,0 +1,124 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python tables Spec File +# +Name: awips2-python-tables +Summary: AWIPS II Python tables Distribution - 64 Bit +Version: 2.1.2 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-numpy +provides: awips2-python-tables + +%description +AWIPS II Python tables Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +PRE_REQS_HDF5_TAR="hdf5-1.8.4-patch1-linux-x86_64-shared.tar.gz" +PRE_REQS_DIR="%{_baseline_workspace}/Installer.rpm/awips2.64/deploy.builder/pre-reqs" +cp -v ${PRE_REQS_DIR}/${PRE_REQS_HDF5_TAR} \ + %{_build_root} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root} +/bin/tar -xvf ${PRE_REQS_HDF5_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +rm -f ${PRE_REQS_HDF5_TAR} +popd > /dev/null + +%build +TABLES_SRC_DIR="%{_python_pkgs_dir}/tables" +TABLES_TAR="tables-2.1.2.tar.gz" +cp -v ${TABLES_SRC_DIR}/${TABLES_TAR} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${TABLES_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +rm -fv ${TABLES_TAR} +if [ ! -d tables-2.1.2 ]; then + file tables-2.1.2 + exit 1 +fi +cd tables-2.1.2 +export HDF5_DIR="%{_build_root}/hdf5-1.8.4-patch1-linux-x86_64-shared" +/awips2/python/bin/python setup.py build_ext --inplace +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +export HDF5_DIR="%{_build_root}/hdf5-1.8.4-patch1-linux-x86_64-shared" +pushd . > /dev/null +cd %{_build_root}/build-python/tables-2.1.2 +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf ${HDF5_DIR} +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.thrift/component.spec b/rpms/awips2.64/Installer.thrift/component.spec new file mode 100644 index 0000000000..126970c9c9 --- /dev/null +++ b/rpms/awips2.64/Installer.thrift/component.spec @@ -0,0 +1,61 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python thrift Spec File +# +Name: awips2-python-thrift +Summary: AWIPS II Python thrift Distribution - 64 Bit +Version: 20080411p1 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-thrift + +%description +AWIPS II Python thrift Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/awips2/python/lib/python2.7/site-packages/thrift + +%build + +%install +THRIFT_SRC_DIR="%{_python_pkgs_dir}/thrift" + +cp -rv ${THRIFT_SRC_DIR}/* \ + %{_build_root}/awips2/python/lib/python2.7/site-packages/thrift + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* diff --git a/rpms/awips2.64/Installer.tpg/component.spec b/rpms/awips2.64/Installer.tpg/component.spec new file mode 100644 index 0000000000..98d5effce1 --- /dev/null +++ b/rpms/awips2.64/Installer.tpg/component.spec @@ -0,0 +1,101 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python tpg Spec File +# +Name: awips2-python-tpg +Summary: AWIPS II Python tpg Distribution - 64 Bit +Version: 3.1.2 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-tpg + +%description +AWIPS II Python tpg Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +TPG_SRC_DIR="%{_python_pkgs_dir}/tpg" +TPG_TAR="TPG-3.1.2.tar.gz" +cp -v ${TPG_SRC_DIR}/${TPG_TAR} \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${TPG_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +rm -fv ${TPG_TAR} +if [ ! -d TPG-3.1.2 ]; then + file TPG-3.1.2 + exit 0 +fi +cd TPG-3.1.2 +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +pushd . > /dev/null +cd %{_build_root}/build-python/TPG-3.1.2 +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/awips2.64/Installer.ufpy/component.spec b/rpms/awips2.64/Installer.ufpy/component.spec new file mode 100644 index 0000000000..40991af98d --- /dev/null +++ b/rpms/awips2.64/Installer.ufpy/component.spec @@ -0,0 +1,60 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python ufpy Spec File +# +Name: awips2-python-ufpy +Summary: AWIPS II Python ufpy Distribution - 64 Bit +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-ufpy + +%description +AWIPS II Python ufpy Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/awips2/python/lib/python2.7/site-packages/ufpy + +%build + +%install +UFPY_SRC_DIR="%{_python_pkgs_dir}/ufpy" +cp -rv ${UFPY_SRC_DIR}/* \ + %{_build_root}/awips2/python/lib/python2.7/site-packages/ufpy + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* diff --git a/rpms/awips2.64/Installer.werkzeug/component.spec b/rpms/awips2.64/Installer.werkzeug/component.spec new file mode 100644 index 0000000000..d234133cbf --- /dev/null +++ b/rpms/awips2.64/Installer.werkzeug/component.spec @@ -0,0 +1,85 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python werkzeug Spec File +# +Name: awips2-python-werkzeug +Summary: AWIPS II Python tpg Distribution - 64 Bit +Version: 3.1.2 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-werkzeug + +%description +AWIPS II Python werkzeug Site-Package - 64-bit. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +%build +WERKZEUG_SRC_DIR="%{_python_pkgs_dir}/werkzeug" +cp -rv ${WERKZEUG_SRC_DIR}/* \ + %{_build_root}/build-python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +pushd . > /dev/null +cd %{_build_root}/build-python +/awips2/python/bin/python setup.py build +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +pushd . > /dev/null +cd %{_build_root}/build-python +/awips2/python/bin/python setup.py install \ + --root=%{_build_root} \ + --prefix=/awips2/python +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf %{_build_root} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib/python2.7/site-packages +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/awips2.64/README b/rpms/awips2.64/README new file mode 100644 index 0000000000..fbe492e86c --- /dev/null +++ b/rpms/awips2.64/README @@ -0,0 +1,6 @@ +The awips2.64 directory contains the build script(s) and rpm projects for the AWIPS II 64-bit rpms. + +If you are running this build manually, you should update the Build Variables located near the top of build.sh. +To build all 64-bit rpms, just run build.sh. If you want to build a certain 64-bit rpm or a subset of the 64-bit rpms, +pass the name of the rpm as an argument to this script. You can pass one or multiple space-delimited rpms to this +script. \ No newline at end of file diff --git a/rpms/awips2.64/deploy.builder/build.sh b/rpms/awips2.64/deploy.builder/build.sh new file mode 100644 index 0000000000..40970fa911 --- /dev/null +++ b/rpms/awips2.64/deploy.builder/build.sh @@ -0,0 +1,283 @@ +#!/bin/bash + +# Build Variables: +# ----------------------------------------------------------------------------- +VAR_AWIPSII_TOP_DIR="/home/bkowal/rpmbuild" +VAR_WORKSPACE="/common/bkowal/workspace" +VAR_AWIPSII_BUILD_ROOT="/tmp/awips-component" +VAR_AWIPSII_VERSION="" +VAR_AWIPSII_RELEASE="" +# ----------------------------------------------------------------------------- + +# DO NOT EDIT ANYTHING BELOW THIS LINE! +function prepareBuildEnvironment() +{ + if [ "${AWIPSII_TOP_DIR}" = "" ]; then + export AWIPSII_TOP_DIR="${VAR_AWIPSII_TOP_DIR}" + fi + + if [ "${WORKSPACE}" = "" ]; then + export WORKSPACE="${VAR_WORKSPACE}" + fi + + if [ "${AWIPSII_BUILD_ROOT}" = "" ]; then + export AWIPSII_BUILD_ROOT="${VAR_AWIPSII_BUILD_ROOT}" + fi + + if [ "${AWIPSII_VERSION}" = "" ]; then + # Determine if we need to use the default version. + if [ "${VAR_AWIPSII_VERSION}" = "" ]; then + VAR_AWIPSII_VERSION=`cat ${WORKSPACE}/Installer.rpm/version.txt` + fi + export AWIPSII_VERSION="${VAR_AWIPSII_VERSION}" + fi + + if [ "${AWIPSII_RELEASE}" = "" ]; then + # Determine if we need to use the default release. + if [ "${VAR_AWIPSII_RELEASE}" = "" ]; then + VAR_AWIPSII_RELEASE=`date +"%Y%m%d"` + fi + export AWIPSII_RELEASE="${VAR_AWIPSII_RELEASE}" + fi +} + +RPM_SPECS_DIR="" +function lookupRPM() +{ + # This function is used to lookup the location of a specs file + # based on the name of an rpm. + + # $1 == the name of the rpm we would like to build. + if [ "${1}" = "" ]; then + return 1 + fi + local RPM_64BIT_PROJECT_DIR="${WORKSPACE}/Installer.rpm/awips2.64" + + if [ "${1}" = "awips2-python-dynamicserialize" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.dynamicserialize" + return 0 + fi + + if [ "${1}" = "awips2-python-h5py" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.h5py" + return 0 + fi + + if [ "${1}" = "awips2-java" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.java" + return 0 + fi + + if [ "${1}" = "awips2-python-jimporter" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.jimporter" + return 0 + fi + + if [ "${1}" = "awips2-python-matplotlib" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.matplotlib" + return 0 + fi + + if [ "${1}" = "awips2-python-nose" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.nose" + return 0 + fi + + if [ "${1}" = "awips2-python-numpy" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.numpy" + return 0 + fi + + if [ "${1}" = "awips2-python-pil" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.pil" + return 0 + fi + + if [ "${1}" = "awips2-python-pmw" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.pmw" + return 0 + fi + + if [ "${1}" = "awips2-python-pupynere" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.pupynere" + return 0 + fi + + if [ "${1}" = "awips2-python" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.python" + return 0 + fi + + if [ "${1}" = "awips2-python-qpid" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.qpid" + return 0 + fi + + if [ "${1}" = "awips2-python-scientific" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.scientific" + return 0 + fi + + if [ "${1}" = "awips2-python-scipy" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.scipy" + return 0 + fi + + if [ "${1}" = "awips2-python-tables" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.tables" + return 0 + fi + + if [ "${1}" = "awips2-python-thrift" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.thrift" + return 0 + fi + + if [ "${1}" = "awips2-python-tpg" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.tpg" + return 0 + fi + + if [ "${1}" = "awips2-python-ufpy" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.ufpy" + return 0 + fi + + if [ "${1}" = "awips2-python-werkzeug" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.werkzeug" + return 0 + fi + + if [ "${1}" = "awips2-python-pygtk" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/../python.site-packages/Installer.pygtk" + return 0 + fi + + if [ "${1}" = "awips2-python-pycairo" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/../python.site-packages/Installer.pycairo" + return 0 + fi + + if [ "${1}" = "awips2-cave" ]; then + RPM_SPECS_DIR="_BUILD_CAVE_" + return 0 + fi + + if [ "${1}" = "awips2-alertviz" ]; then + RPM_SPECS_DIR="${RPM_64BIT_PROJECT_DIR}/Installer.alertviz" + return 0 + fi + + RPM_SPECS_DIR="" + return 1 +} + +function buildRPM() +{ + # $1 == the component file for the rpm that we would like to build. + if [ -f ${AWIPSII_TOP_DIR}/BUILD/component-files.txt ]; then + rm -fv ${AWIPSII_TOP_DIR}/BUILD/component-files.txt + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi + fi + + if [ -d ${AWIPSII_BUILD_ROOT} ]; then + rm -rf ${AWIPSII_BUILD_ROOT} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi + fi + + rpmbuild -ba --target=x86_64 \ + --define '_topdir %(echo ${AWIPSII_TOP_DIR})' \ + --define '_baseline_workspace %(echo ${WORKSPACE})' \ + --define '_build_root %(echo ${AWIPSII_BUILD_ROOT})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --buildroot ${AWIPSII_BUILD_ROOT} \ + ${1} + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi +} + +# Special Cases: +function buildCAVE() +{ + export CAVE_BUILD_ARCH="x86_64" + export RPM_TOP_DIR="${AWIPSII_TOP_DIR}" + cd ${WORKSPACE}/Installer.rpm/awips2.cave/deploy.builder + time ./build.sh "${AWIPSII_VERSION}" "${AWIPSII_RELEASE}" + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + return 0 +} + +# Initialize our environment. +prepareBuildEnvironment + +# Determine if any arguments have been passed to us. +if [ $# -eq 0 ]; then + # We will be building all 64-bit RPMs. + for dir in `ls -1d ${WORKSPACE}/Installer.rpm/awips2.64/Installer.*`; + do + buildRPM ${dir}/component.spec + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the 64-Bit RPMs." + exit 1 + fi + done + buildCAVE + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the 64-Bit RPMs." + exit 1 + fi + lookupRPM "awips2-python-pygtk" + if [ $? -ne 0 ]; then + exit 1 + fi + buildRPM ${RPM_SPECS_DIR}/component.spec + if [ $? -ne 0 ]; then + exit 1 + fi + lookupRPM "awips2-python-pycairo" + if [ $? -ne 0 ]; then + exit 1 + fi + buildRPM ${RPM_SPECS_DIR}/component.spec + if [ $? -ne 0 ]; then + exit 1 + fi +fi + +if [ $# -gt 0 ]; then + # We will attempt to build the rpms the user specified. + for arg in $@; do + lookupRPM ${arg} + RC=$? + if [ "${RC}" -ne 0 ]; then + echo "ERROR: Invalid RPM Specifier: ${arg}." + exit 1 + fi + + if [ ! "${RPM_SPECS_DIR}" = "_BUILD_CAVE_" ]; then + buildRPM ${RPM_SPECS_DIR}/component.spec + RC=$? + else + buildCAVE + RC=$? + fi + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build - ${arg}." + exit 1 + fi + done +fi diff --git a/rpms/awips2.64/deploy.builder/pre-reqs/hdf5-1.8.4-patch1-linux-x86_64-shared.tar.gz b/rpms/awips2.64/deploy.builder/pre-reqs/hdf5-1.8.4-patch1-linux-x86_64-shared.tar.gz new file mode 100644 index 0000000000..23dfbc4ee6 Binary files /dev/null and b/rpms/awips2.64/deploy.builder/pre-reqs/hdf5-1.8.4-patch1-linux-x86_64-shared.tar.gz differ diff --git a/rpms/awips2.ade/Installer.eclipse/component.spec b/rpms/awips2.ade/Installer.eclipse/component.spec new file mode 100644 index 0000000000..89a5d758aa --- /dev/null +++ b/rpms/awips2.ade/Installer.eclipse/component.spec @@ -0,0 +1,177 @@ +# +# AWIPS II Eclipse Spec File +# + +# --define arguments: +# %{_uframe_eclipse} +# %{_build_root} +# %{_baseline_workspace} + +Name: awips2-eclipse +Summary: AWIPS II Eclipse Distribution +Version: 3.6.1 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-eclipse + +%description +AWIPS II Eclipse Distribution - Contains the AWIPS II Eclipse Distribution. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +if [ -d %{_build_root} ]; then + rm -rf %{_build_root} +fi +mkdir -p %{_build_root}/awips2/eclipse + +%build + +%install +# The location of the awips2 eclipse source directory will be +# specified as a command line argument. Fail if the specified +# directory cannot be found. +if [ ! -d %{_uframe_eclipse} ]; then + echo "ERROR: Unable To Find The AWIPS II Eclipse Distribution." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +# Copy the uframe eclipse distribution. +cp -r %{_uframe_eclipse}/* %{_build_root}/awips2/eclipse + +# Copy eclipse.sh to our build-directory. +cp %{_baseline_workspace}/Installer.rpm/awips2.ade/Installer.eclipse/scripts/* \ + %{_build_root}/awips2/eclipse + +# delete the basemaps and etc links +rm -f %{_build_root}/awips2/eclipse/basemaps +rm -f %{_build_root}/awips2/eclipse/etc + +%pre +JAVA_INSTALL="" +PYTHON_INSTALL="" +ANT_INSTALL="" + +INSTALL_PATH="/awips2/java" +if [ -d ${INSTALL_PATH} ]; then + JAVA_INSTALL=${INSTALL_PATH} +fi + +INSTALL_PATH="/awips2/python" +if [ -d ${INSTALL_PATH} ]; then + PYTHON_INSTALL=${INSTALL_PATH} +fi + +INSTALL_PATH="/awips2/ant" +if [ -d ${INSTALL_PATH} ]; then + ANT_INSTALL=${INSTALL_PATH} +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Eclipse Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Java Detected At: ${JAVA_INSTALL}\e[m" +echo -e "\e[1;34m Python Detected At: ${PYTHON_INSTALL}\e[m" +echo -e "\e[1;34m Ant Detected At: ${ANT_INSTALL}\e[m" + +%post +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Creating ADE Eclipse Desktop Shortcut...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +ADE_ECLIPSE_SHORTCUT="ade-eclipse" +SHORTCUT_OWNER="${USER}" +CREATE_SHORTCUT="true" +if [ ! "${SUDO_USER}" = "" ]; then + SHORTCUT_OWNER="${SUDO_USER}" +fi +echo -e "\e[1;34m Creating Shortcut For User: ${SHORTCUT_OWNER}\e[m" + +USER_HOME_DIR="~${SHORTCUT_OWNER}" +if [ ! -d ${USER_HOME_DIR} ]; then + USER_HOME_DIR="/home/${SHORTCUT_OWNER}" + echo " (Assuming User Home Directory Is Under '/home')" +fi + +if [ ! -d ${USER_HOME_DIR}/Desktop ]; then + echo -e "\e[1;31m ERROR: Unable To Find The User's Desktop!!!" + CREATE_SHORTCUT="false" +fi + +if [ "${CREATE_SHORTCUT}" = "true" ]; then + SHORTCUT_TMP="${USER_HOME_DIR}/Desktop/${ADE_ECLIPSE_SHORTCUT}.tmp" + SHORTCUT="${USER_HOME_DIR}/Desktop/${ADE_ECLIPSE_SHORTCUT}.desktop" + + if [ -f ${SHORTCUT} ]; then + echo -n " Attempting To Remove The Existing Shortcut ... " + sudo -u ${SHORTCUT_OWNER} rm -f ${SHORTCUT} + if [ ! -f ${SHORTCUT} ]; then + echo -n "SUCCESS" + else + echo -n "FAILURE" + fi + echo "" + fi + sudo -u ${SHORTCUT_OWNER} touch ${SHORTCUT_TMP} + sudo -u ${SHORTCUT_OWNER} chmod 666 ${SHORTCUT_TMP} + + echo "[Desktop Entry]" >> ${SHORTCUT_TMP} + echo "Version=1.0" >> ${SHORTCUT_TMP} + echo "Encoding=UTF-8" >> ${SHORTCUT_TMP} + echo "Name=ADE Eclipse" >> ${SHORTCUT_TMP} + echo "GenericName=Eclipse" >> ${SHORTCUT_TMP} + echo "Comment=IDE" >> ${SHORTCUT_TMP} + echo "Exec=/bin/bash -i -c \"xterm -title 'AWIPS II ADE Eclipse' -e '/awips2/eclipse/eclipseShortcutWrap.sh'\"" >> ${SHORTCUT_TMP} + echo "Icon=/awips2/eclipse/icon.xpm" >> ${SHORTCUT_TMP} + echo "Terminal=false" >> ${SHORTCUT_TMP} + echo "Type=Application" >> ${SHORTCUT_TMP} + echo "Categories=Development;IDE;" >> ${SHORTCUT_TMP} + + sudo -u ${SHORTCUT_OWNER} mv ${SHORTCUT_TMP} ${SHORTCUT} + sudo -u ${SHORTCUT_OWNER} chmod 644 ${SHORTCUT} +fi + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Eclipse Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/eclipse +/awips2/eclipse/* +%defattr(755,awips,fxalpha,755) +/awips2/eclipse/about.html +/awips2/eclipse/artifacts.xml +/awips2/eclipse/eclipse +/awips2/eclipse/eclipse.ini +/awips2/eclipse/eclipse.sh +/awips2/eclipse/eclipseShortcutWrap.sh +/awips2/eclipse/epl-v10.html +/awips2/eclipse/icon.xpm +/awips2/eclipse/libcairo-swt.so +/awips2/eclipse/notice.html \ No newline at end of file diff --git a/rpms/awips2.ade/Installer.eclipse/scripts/eclipse.sh b/rpms/awips2.ade/Installer.eclipse/scripts/eclipse.sh new file mode 100644 index 0000000000..50faba6b20 --- /dev/null +++ b/rpms/awips2.ade/Installer.eclipse/scripts/eclipse.sh @@ -0,0 +1,80 @@ +# usage: +# eclipse.sh [args] -- launches eclipse using specified command line args +# eclipse.sh -- launches Eclipse with default command line args + +dir=${0%/*} +if [ "${dir}" = "$0" ]; then + dir="." +fi + +PYTHON_INSTALL= +JAVA_INSTALL= +ANT_INSTALL= +ECLIPSE_INSTALL= +CAVE_INSTALL= + +rpm -q awips2-python > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "ERROR: awips2-python Is Not Installed." + echo "Unable To Continue ... Terminating" + exit 1 +fi +PYTHON_INSTALL="/awips2/python" + +rpm -q awips2-java > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "ERROR: awips2-java Is Not Installed." + echo "Unable To Continue ... Terminating" + exit 1 +fi +JAVA_INSTALL="/awips2/java" + +rpm -q awips2-ant > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "ERROR: awips2-ant Is Not Installed." + echo "Unable To Continue ... Terminating" + exit 1 +fi +ANT_INSTALL="/awips2/ant" +ECLIPSE_INSTALL="/awips2/eclipse" +cd ${dir} + +# grab the CL argument; if none set a reasonable default +if [ $# -ne 0 ]; then + # there are arguments, convert them into a string + args=${1} + shift 1 + for a in $@; do + args="${args} ${a}" + done +else + # set a reasonable default for performance + args='-clean -vmargs -Xms512m -Xmx1024m -XX:MaxPermSize=256m' +fi + +# setup environment variables +export JAVA_HOME=${JAVA_INSTALL} +export ANT_HOME=${ANT_INSTALL} + +# set LD_PRELOAD +export LD_PRELOAD=${PYTHON_INSTALL}/lib/libpython2.7.so + +# update path type variables +export LD_LIBRARY_PATH=${PYTHON_INSTALL}/lib:$LD_LIBRARY_PATH +export PATH=${ECLIPSE_INSTALL}:${PYTHON_INSTALL}/bin:${JAVA_INSTALL}/bin:$PATH + +# determine if cave has been installed for TMCP_HOME +rpm -q awips2-cave > /dev/null 2>&1 +if [ $? -ne 0 ]; then + CAVE_INSTALL="/awips2/cave" + export TMCP_HOME=${CAVE_INSTALL}/caveEnvironment +else + echo "WARNING: awips2-cave is not installed; so, TMCP_HOME will not be set." +fi + +#%INSTALL_PATH/eclipse/eclipse -clean -vmargs -Xms512m -Xmx1024m -XX:MaxPermSize=256m & +echo "./eclipse ${args} &" +nohup ./eclipse ${args} > /dev/null 2>&1 & +echo "" +echo "Successful Eclipse Startup ..." +exit 0 diff --git a/rpms/awips2.ade/Installer.eclipse/scripts/eclipseShortcutWrap.sh b/rpms/awips2.ade/Installer.eclipse/scripts/eclipseShortcutWrap.sh new file mode 100644 index 0000000000..f3cb177699 --- /dev/null +++ b/rpms/awips2.ade/Installer.eclipse/scripts/eclipseShortcutWrap.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# This Script Should Only Be Run By The ADE Eclipse Shortcuts. +# Any User That Attempts To Run This Script Manually May +# Encounter Unexpected Behavior. + +dir=${0%/*} +if [ "${dir}" = "$0" ]; then + dir="." +fi + +cd ${dir} + +# Attempt To Run The Eclipse Script. + +./eclipse.sh +RC="$?" + +if [ ! "${RC}" = "0" ]; then + sleep 50 + exit 1 +fi + +COUNT=5 +echo -n "This Terminal Will Close In ..." +while [ ! "${COUNT}" = "0" ] +do + echo -n " ${COUNT}" + let COUNT=COUNT-1 + sleep 2 +done diff --git a/rpms/awips2.ade/deploy.builder/build.sh b/rpms/awips2.ade/deploy.builder/build.sh new file mode 100755 index 0000000000..ac0822fdaf --- /dev/null +++ b/rpms/awips2.ade/deploy.builder/build.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# This script executes all of the scripts that are responsible +# for building and packaging the ade components. + +export BUILDROOT_DIR="/tmp/awips-component" +export RPM_BUILD_ROOT="${BUILDROOT_DIR}" +export UFRAME_ECLIPSE_DIR="/opt/uframe-eclipse" +export WORKSPACE_DIR=`cd ../../../; pwd;` +export AWIPSCM_SHARE="/awipscm" + +if [ -d /tmp/awips-component ]; then + rm -rf /tmp/awips-component +fi +if [ -d /tmp/ade-component ]; then + rm -rf /tmp/ade-component +fi +if [ -f /usr/src/redhat/BUILD/component-files.txt ]; then + rm -f /usr/src/redhat/BUILD/component-files.txt +fi +# Build the eclipse rpm +cd ${WORKSPACE_DIR}/Installer.rpm/awips2.ade/Installer.eclipse +rpmbuild -ba --target=i386 --buildroot ${BUILDROOT_DIR} component.spec + +# Build the baseline jar file +cd ${WORKSPACE_DIR}/Installer.rpm/awips2.ade/tar.baseline +./build.sh + +# Create the ade tar file +cd ${WORKSPACE_DIR}/Installer.rpm/awips2.ade/tar.ade +./build.sh "${AWIPSII_VERSION}" "${AWIPSII_RELEASE}" diff --git a/rpms/awips2.ade/tar.ade/build.sh b/rpms/awips2.ade/tar.ade/build.sh new file mode 100755 index 0000000000..d9e9080ddc --- /dev/null +++ b/rpms/awips2.ade/tar.ade/build.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# This script gathers all of the ade components and places them +# into a single directory so that a tar file can be created. + +CURRENT_VERSION="${AWIPSII_VERSION}" +CURRENT_RELEASE="${AWIPSII_RELEASE}" + +CURRENT_DATE=`date +"%m-%d-%Y"` + +CORE_RPM_DIR="${AWIPSCM_SHARE}/awips2-rpms/rpms" +ECLIPSE_RPM_DIR="/usr/src/redhat/RPMS/i386" +ECLIPSE_RPM="awips2-eclipse-3.6.1-1.i386.rpm" +JAVA_RPM="awips2-java-1.6.0_17-2.i386.rpm" +PYTHON_RPM="awips2-python-2.7.1-1.i386.rpm" +ANT_RPM="awips2-ant-1.7.1-2.i386.rpm" +AWIPS2_SITE_PKG_RPMS=\ +( + 'awips2-python-cherrypy-3.1.2-2.i386.rpm' \ + 'awips2-python-h5py-1.3.0-2.i386.rpm' \ + 'awips2-python-matplotlib-0.99.1.1-2.i386.rpm' \ + 'awips2-python-nose-0.11.1-2.i386.rpm' \ + 'awips2-python-numpy-1.5.0b1-2.i386.rpm' \ + 'awips2-python-pil-1.1.6-2.i386.rpm' \ + 'awips2-python-pmw-1.3.2-2.i386.rpm' \ + 'awips2-python-pupynere-1.0.13-2.i386.rpm' \ + 'awips2-python-qpid-0.6-2.i386.rpm' \ + 'awips2-python-scientific-2.8-2.i386.rpm' \ + 'awips2-python-scipy-0.8.0-2.i386.rpm' \ + 'awips2-python-tables-2.1.2-2.i386.rpm' \ + 'awips2-python-thrift-20080411p1-2.i386.rpm' \ + 'awips2-python-tpg-3.1.2-2.i386.rpm' \ + 'awips2-python-werkzeug-0.6.2-2.i386.rpm' \ +) +BASELINE_JAR_DIR="${RPM_BUILD_ROOT}/tmp" +BASELINE_JAR="awips2-ade-baseline-SOURCES.jar" + +mkdir -p /tmp/awips2-ade-${CURRENT_DATE} + +cp -v ${CORE_RPM_DIR}/${JAVA_RPM} /tmp/awips2-ade-${CURRENT_DATE} +cp -v ${CORE_RPM_DIR}/${PYTHON_RPM} /tmp/awips2-ade-${CURRENT_DATE} +cp -v ${CORE_RPM_DIR}/${ANT_RPM} /tmp/awips2-ade-${CURRENT_DATE} +cp -v ${ECLIPSE_RPM_DIR}/${ECLIPSE_RPM} /tmp/awips2-ade-${CURRENT_DATE} +cp -v ${BASELINE_JAR_DIR}/${BASELINE_JAR} /tmp/awips2-ade-${CURRENT_DATE} +for rpm in ${AWIPS2_SITE_PKG_RPMS[*]}; +do + cp -v ${CORE_RPM_DIR}/${rpm} /tmp/awips2-ade-${CURRENT_DATE} +done + +# Copy ufpy and dynamicserialize +# Determine where ufpy and dynamicserialize are located first. They should either +# be in the integration repository or the workspace of RPMBuildNoDeploy-Delivery. +INT_REPO="/var/www/html/repo/awips2-int/i386/python.site-packages" +DEL_WORKSPACE="/usr/share/tomcat5/.hudson/jobs/RPMBuildNoDeploy-Delivery/workspace/var/www/html/repo/awips2-int/i386/python.site-packages" +UFPY_FOUND="N" +DYNAMICSERIALIZE_FOUND="N" + +UFPY_RPM="awips2-python-ufpy-${CURRENT_VERSION}-${CURRENT_RELEASE}.i386.rpm" +DYNAMICSERIALIZE_RPM="awips2-python-dynamicserialize-${CURRENT_VERSION}-${CURRENT_RELEASE}.i386.rpm" + +# Check the integration repository first. +if [ -f ${INT_REPO}/${UFPY_RPM} ]; then + cp -v ${INT_REPO}/${UFPY_RPM} /tmp/awips2-ade-${CURRENT_DATE} + UFPY_FOUND="Y" +fi + +if [ -f ${INT_REPO}/${DYNAMICSERIALIZE_RPM} ]; then + cp -v ${INT_REPO}/${DYNAMICSERIALIZE_RPM} /tmp/awips2-ade-${CURRENT_DATE} + DYNAMICSERIALIZE_FOUND="Y" +fi + +# Check the workspace next - if the rpm was not found in the repo. +if [ "${UFPY_FOUND}" = "N" ]; then + if [ ! -f ${DEL_WORKSPACE}/${UFPY_RPM} ]; then + echo "ERROR: Unable to find - ${UFPY_RPM}." + echo "Unable To Continue ... Terminating." + exit 1 + fi + cp -v ${DEL_WORKSPACE}/${UFPY_RPM} /tmp/awips2-ade-${CURRENT_DATE} +fi + +if [ "${DYNAMICSERIALIZE_FOUND}" = "N" ]; then + if [ ! -f ${DEL_WORKSPACE}/${DYNAMICSERIALIZE_RPM} ]; then + echo "ERROR: Unable to find - ${DYNAMICSERIALIZE_RPM}." + echo "Unable To Continue ... Terminating." + exit 1 + fi + cp -v ${DEL_WORKSPACE}/${DYNAMICSERIALIZE_RPM} /tmp/awips2-ade-${CURRENT_DATE} +fi + +# Copy the installation / removal scripts. +cp -v ${WORKSPACE_DIR}/Installer.rpm/awips2.ade/tar.ade/scripts/* \ + /tmp/awips2-ade-${CURRENT_DATE} +chmod a+x /tmp/awips2-ade-${CURRENT_DATE}/*.sh + +# Update the installation script. +perl -p -i -e "s/PY_DYNAMICSERIALIZE=/PY_DYNAMICSERIALIZE=${DYNAMICSERIALIZE_RPM}/g" \ + /tmp/awips2-ade-${CURRENT_DATE}/ade_quick_install.sh +perl -p -i -e "s/PY_UFPY=/PY_UFPY=${UFPY_RPM}/g" \ + /tmp/awips2-ade-${CURRENT_DATE}/ade_quick_install.sh + +cd /tmp +# Remove any existing tar files +if [ -f awips2-ade-${CURRENT_DATE}.tar ]; then + rm -f awips2-ade-${CURRENT_DATE}.tar +fi +tar -cjf awips2-ade-${CURRENT_VERSION}-${CURRENT_DATE}.tar awips2-ade-${CURRENT_DATE} +# Ensure that the tar was successful +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: Failed to create tar file - awips2-ade-${CURRENT_DATE}.tar." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +exit 0 \ No newline at end of file diff --git a/rpms/awips2.ade/tar.ade/scripts/ade_quick_install.sh b/rpms/awips2.ade/tar.ade/scripts/ade_quick_install.sh new file mode 100644 index 0000000000..0dd798e611 --- /dev/null +++ b/rpms/awips2.ade/tar.ade/scripts/ade_quick_install.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# This script must be ran as root or with root privileges. + +# Arguments: +# $1 == the Installation Prefix (Optional) + +if [ ! "${USER}" = "root" ]; then + echo "ERROR: You Must Be 'root' To Run This Script." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# +# Check for existence of user awips +# +id awips >/dev/null +ID_AWIPS=$? +if [ $ID_AWIPS != 0 ]; then + echo "An awips user does not exist on this system" + echo "As root:" + echo " useradd awips" + exit +fi + +# +# Check for existence of group fxalpha +# +getent group fxalpha >/dev/null +GROUP_FXALPHA=$? +if [ $GROUP_FXALPHA != 0 ]; then + echo "The fxalpha group does not exist on this system" + echo "As root:" + echo " groupadd fxalpha" + exit +fi + +# +# Check for user awips in group fxalpha +# +AWIPS_IN_FXALPHA=`groups awips | grep fxalpha` +if [ "${AWIPS_IN_FXALPHA}" = "0" ]; then + echo "The awips user must be in the fxalpha group on this system" + echo "As root:" + echo " usermod -a -G fxalpha awips" + exit +fi + +dir=${0%/*} + +if [ "$dir" = "$0" ]; then + dir="." +fi + +cd ${dir} + +yum --disablerepo=* install *.rpm --nogpgcheck -y +if [ $? -ne 0 ]; then + echo "FATAL: ADE Installation Failed." +fi diff --git a/rpms/awips2.ade/tar.ade/scripts/ade_quick_uninstall.sh b/rpms/awips2.ade/tar.ade/scripts/ade_quick_uninstall.sh new file mode 100644 index 0000000000..b12c9a2dce --- /dev/null +++ b/rpms/awips2.ade/tar.ade/scripts/ade_quick_uninstall.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# This script must be run as root or with root privileges. + +if [ ! "${USER}" = "root" ]; then + echo "ERROR: You Must Be 'root' To Run This Script." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +function removeRPMNoMatterWhat() +{ + # Arguments: + # $1 == the component name + + AWIPSII_COMPONENT="${1}" + rpm -e --nodeps ${AWIPSII_COMPONENT} + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "ERROR: Unable To Remove '${AWIPSII_COMPONENT}'." + fi +} + +ADE_COMPONENTS=`rpm -qa --queryformat='%{NAME}\n' |grep awips2 | sort -n` + +for component in ${ADE_COMPONENTS[*]}; +do + removeRPMNoMatterWhat "${component}" +done diff --git a/rpms/awips2.ade/tar.baseline/build.sh b/rpms/awips2.ade/tar.baseline/build.sh new file mode 100755 index 0000000000..1c5d665c1f --- /dev/null +++ b/rpms/awips2.ade/tar.baseline/build.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# Check out the AWIPS II baseline and generate the Javadocs. + +function checkoutProjects() +{ + CONNECTION="${SVN_CONNECTION}" + if [ "${CONNECTION}" = "" ]; then + echo "ERROR: No SVN URL Was Provided." + echo "Unable To Continue ... Terminating." + exit 1 + fi + + SVN_EXE=`which svn` + + cd ${RPM_BUILD_ROOT}/tmp + + PRODUCTS_TO_CHECKOUT=( 'edexOsgi' 'cave' 'cots' 'RadarServer' \ + 'rpms' 'nativeLib' 'ncep' ) + for product in ${PRODUCTS_TO_CHECKOUT[*]}; + do + ${SVN_EXE} export -q --force ${CONNECTION}/${product} + done +} + +# checkout the +# make our projects directory +mkdir -p ${RPM_BUILD_ROOT}/tmp/projects +mkdir -p ${RPM_BUILD_ROOT}/tmp/projects/awips + +checkoutProjects +mv ${RPM_BUILD_ROOT}/tmp/rpms \ + ${RPM_BUILD_ROOT}/tmp/projects/awips/Installer.rpm +cp -r ${RPM_BUILD_ROOT}/tmp/edexOsgi/* \ + ${RPM_BUILD_ROOT}/tmp/projects/awips +rm -rf ${RPM_BUILD_ROOT}/tmp/edexOsgi +cp -r ${RPM_BUILD_ROOT}/tmp/cave/* \ + ${RPM_BUILD_ROOT}/tmp/projects/awips +rm -rf ${RPM_BUILD_ROOT}/tmp/cave +cp -r ${RPM_BUILD_ROOT}/tmp/cots/* \ + ${RPM_BUILD_ROOT}/tmp/projects/awips +rm -rf ${RPM_BUILD_ROOT}/tmp/cots +cp -r ${RPM_BUILD_ROOT}/tmp/RadarServer/* \ + ${RPM_BUILD_ROOT}/tmp/projects/awips +rm -rf ${RPM_BUILD_ROOT}/tmp/RadarServer +cp -r ${RPM_BUILD_ROOT}/tmp/ncep/* \ + ${RPM_BUILD_ROOT}/tmp/projects/awips +rm -rf ${RPM_BUILD_ROOT}/tmp/ncep +mv ${RPM_BUILD_ROOT}/tmp/nativeLib \ + ${RPM_BUILD_ROOT}/tmp/projects/awips/nativeLib + +# Generate the Javadocs +# create our javadocs directory +mkdir -p ${RPM_BUILD_ROOT}/tmp/projects/javadocs + +cd ${WORKSPACE_DIR}/Installer.rpm/awips2.ade/tar.baseline/javadoc + +ant -Dawips.src.dir=${RPM_BUILD_ROOT}/tmp/projects/awips +# copy the javadocs to the baseline javadocs directory +cp -r ${WORKSPACE_DIR}/Installer.rpm/awips2.ade/tar.baseline/javadoc/build/api/* \ + ${RPM_BUILD_ROOT}/tmp/projects/javadocs + +# remove uframe-eclipse from the projects directory +rm -rf ${RPM_BUILD_ROOT}/tmp/projects/awips/uframe-eclipse + +# jar the baseline +cp ${WORKSPACE_DIR}/Installer.rpm/awips2.ade/tar.baseline/jar/build.xml \ + ${RPM_BUILD_ROOT}/tmp +cd ${RPM_BUILD_ROOT}/tmp +ant -d diff --git a/rpms/awips2.ade/tar.baseline/jar/build.xml b/rpms/awips2.ade/tar.baseline/jar/build.xml new file mode 100644 index 0000000000..9f83007263 --- /dev/null +++ b/rpms/awips2.ade/tar.baseline/jar/build.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rpms/awips2.ade/tar.baseline/javadoc/build.xml b/rpms/awips2.ade/tar.baseline/javadoc/build.xml new file mode 100644 index 0000000000..ff28a5bd1a --- /dev/null +++ b/rpms/awips2.ade/tar.baseline/javadoc/build.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${javadoc.document.title} +

${javadoc.document.header}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rpms/awips2.ade/tar.baseline/javadoc/conf/overview.html b/rpms/awips2.ade/tar.baseline/javadoc/conf/overview.html new file mode 100755 index 0000000000..de63b935c2 --- /dev/null +++ b/rpms/awips2.ade/tar.baseline/javadoc/conf/overview.html @@ -0,0 +1,5 @@ + + +This document contains the API Specification for the AWIPS II System. Documentation +includes both CAVE and EDEX as well as contributed code. + diff --git a/rpms/awips2.ade/tar.baseline/javadoc/img/rayAWIPS.jpg b/rpms/awips2.ade/tar.baseline/javadoc/img/rayAWIPS.jpg new file mode 100644 index 0000000000..7c0fbe56f1 Binary files /dev/null and b/rpms/awips2.ade/tar.baseline/javadoc/img/rayAWIPS.jpg differ diff --git a/rpms/awips2.ade/tar.baseline/javadoc/img/rayAWIPSSmall.jpg b/rpms/awips2.ade/tar.baseline/javadoc/img/rayAWIPSSmall.jpg new file mode 100644 index 0000000000..8242d4d41e Binary files /dev/null and b/rpms/awips2.ade/tar.baseline/javadoc/img/rayAWIPSSmall.jpg differ diff --git a/rpms/awips2.cave/Installer.cave-etc/component.spec b/rpms/awips2.cave/Installer.cave-etc/component.spec new file mode 100644 index 0000000000..c6da7e74fe --- /dev/null +++ b/rpms/awips2.cave/Installer.cave-etc/component.spec @@ -0,0 +1,84 @@ +# RPM Metadata +%define _component_name awips2-cave-etc +%define _component_desc "awips2-cave-etc" +# +# awips2-cave-etc Spec File +# +%define __prelink_undo_cmd %{nil} +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +Name: %{_component_name} +Summary: awips2-cave Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: %{_component_name} +requires: awips2-cave +requires: awips2 + +%description +%{_component_desc} + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +if [ -d ${RPM_BUILD_ROOT} ]; then + rm -rf ${RPM_BUILD_ROOT} +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/cave/etc + +%build + +%install +BASELINE_ETC_DIR="build/static/common/cave/etc" +ETC_DIR_LOC="${WORKSPACE_DIR}/${BASELINE_ETC_DIR}" + +if [ ! -d ${ETC_DIR_LOC} ]; then + echo "ERROR: Unable to find CAVE etc directory." + exit 1 +fi + +cp -r ${ETC_DIR_LOC}/* ${RPM_BUILD_ROOT}/awips2/cave/etc +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Copy of CAVE etc directory has failed." + exit 1 +fi + +%pre +# Ensure that CAVE is available. There is not any point in installing +# the files if CAVE is not available. +if [ ! -f /awips2/cave/cave ]; then + echo "ERROR: The cave executable was not found or is corrupt - /awips2/cave/cave;" + echo " awips2-cave must be re-installed. This installation will be terminated." + exit 1 +fi + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/cave +%dir /awips2/cave/etc +/awips2/cave/etc/* +%defattr(664,awips,fxalpha,755) +/awips2/cave/etc/aviation/config/* \ No newline at end of file diff --git a/rpms/awips2.cave/Installer.cave-feature/component.spec b/rpms/awips2.cave/Installer.cave-feature/component.spec new file mode 100644 index 0000000000..1e3c83134b --- /dev/null +++ b/rpms/awips2.cave/Installer.cave-feature/component.spec @@ -0,0 +1,245 @@ +%define _component_zip_file_name %{_component_feature}-repo-linux.%{_build_arch}.zip +# +# awips2-cave Spec File +# +%define __prelink_undo_cmd %{nil} +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +Name: %{_component_name} +Summary: %{_component_name} Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: %{_component_name} = %{_component_version} +requires: %{_downstream_requires} +requires: awips2 + +%description +%{_component_desc} + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +if [ -d ${RPM_BUILD_ROOT} ]; then + rm -rf ${RPM_BUILD_ROOT} +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/cave/.repository +CAVE_DIST_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.cave/setup/dist" + +if [ ! -f ${CAVE_DIST_DIR}/%{_component_zip_file_name} ]; then + echo "ERROR: Unable to find - ${CAVE_DIST_DIR}/%{_component_zip_file_name}." + exit 1 +fi + +cp ${CAVE_DIST_DIR}/%{_component_zip_file_name} \ + ${RPM_BUILD_ROOT}/awips2/cave/.repository + +%build + +%install + +%pre +# Ensure that CAVE is available to backup and to use to +# apply p2 updates. +if [ ! -f /awips2/cave/cave ]; then + echo "ERROR: The cave executable was not found or is corrupt - /awips2/cave/cave;" + echo " awips2-cave must be re-installed. This installation will be terminated." + exit 1 +fi + +CAVE_BACKUP="/awips2/cave.bak" + +# Remove any existing backups. +if [ -d ${CAVE_BACKUP} ]; then + rm -rf ${CAVE_BACKUP} +fi + +# Create a backup of CAVE as it is. +LOG_TIMESTAMP=`date` +echo "backup STARTED: ${LOG_TIMESTAMP}" +cp -r /awips2/cave ${CAVE_BACKUP} +LOG_TIMESTAMP=`date` +echo "backup COMPLETE: ${LOG_TIMESTAMP}" +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +%post +CAVE_BACKUP="/awips2/cave.bak" +function cleanupUnzip() +{ + if [ -f /awips2/cave/.repository/artifacts.xml ]; then + rm -f /awips2/cave/.repository/artifacts.xml + fi + + if [ -f /awips2/cave/.repository/content.xml ]; then + rm -f /awips2/cave/.repository/content.xml + fi + + if [ -d /awips2/cave/.repository/features ]; then + rm -rf /awips2/cave/.repository/features + fi + + if [ -d /awips2/cave/.repository/plugins ]; then + rm -rf /awips2/cave/.repository/plugins + fi +} + +function restoreCAVEAndFail() +{ + rm -rf /awips2/cave + LOG_TIMESTAMP=`date` + echo "restoring backup STARTED: ${LOG_TIMESTAMP}" + mv -f ${CAVE_BACKUP} /awips2/cave + LOG_TIMESTAMP=`date` + echo "restoring backup COMPLETE: ${LOG_TIMESTAMP}" + cleanupUnzip + exit 1 +} + +# Set all paths required by CAVE before installing. +export LD_LIBRARY_PATH=%{_awips2_java_home}/lib:/awips2/python/lib:$LD_LIBRARY_PATH +export LD_PRELOAD=libpython.so +if [ -d /awips2/cave/lib ]; then + export LD_LIBRARY_PATH=/awips2/cave/lib/lib_illusion:$LD_LIBRARY_PATH +fi +if [ -d /awips2/cave/lib64 ]; then + export LD_LIBRARY_PATH=/awips2/cave/lib64/lib_illusion:$LD_LIBRARY_PATH +fi +# Need to use awips2-java to do this. +export PATH=%{_awips2_java_home}/bin:/awips2/python/bin:${PATH} +export JAVA_HOME="%{_awips2_java_home}/jre" + +# Use the eclipse p2 manager. +CAVE_EXE="/awips2/cave/cave" +NOSPLASH_ARG="-nosplash" +DIRECTOR_APP="-application org.eclipse.equinox.p2.director" +DESTINATION_ARG="-destination /awips2/cave" +INSTALL_ARG="-i %{_component_feature}.feature.group" +UNINSTALL_ARG="-u %{_component_feature}.feature.group" +REPO="-repository file:/awips2/cave/.repository/" + +COMMON_CMD="${CAVE_EXE} ${NOSPLASH_ARG} ${DIRECTOR_APP} ${DESTINATION_ARG}" +INSTALL_CMD="${COMMON_CMD} ${INSTALL_ARG} ${REPO}" +UNINSTALL_CMD="${COMMON_CMD} ${UNINSTALL_ARG}" + +# Uninstall any existing components since the p2 director does not +# support updating. +# If the feature is not installed, this does not fail quietly. +# Determine if the feature needs to be uninstalled. +${UNINSTALL_CMD} -verifyOnly > /dev/null 2>&1 +RC=$? +if [ ${RC} -eq 0 ]; then + LOG_TIMESTAMP=`date` + echo "uninstall previous STARTED: ${LOG_TIMESTAMP}" + ${UNINSTALL_CMD} + LOG_TIMESTAMP=`date` + echo "uninstall previous COMPLETE: ${LOG_TIMESTAMP}" +fi + +# unzip the repository +cd /awips2/cave/.repository +cleanupUnzip +unzip %{_component_zip_file_name} > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unzip of repository FAILED." + restoreCAVEAndFail +fi + +# Install the component. +LOG_TIMESTAMP=`date` +echo "installation STARTED: ${LOG_TIMESTAMP}" +${INSTALL_CMD} +RC=$? +if [ ${RC} -ne 0 ]; then + restoreCAVEAndFail +fi +LOG_TIMESTAMP=`date` +echo "installation COMPLETE: ${LOG_TIMESTAMP}" + +# Cleanup the unzip +cleanupUnzip + +# Remove the backup. +rm -rf /awips2/cave.bak + +%preun +# Do not use p2 to remove the feature if this is an upgrade. +if [ "${1}" = "1" ]; then + exit 0 +fi + +# Ensure that CAVE is available. +if [ ! -f /awips2/cave/cave ]; then + # Even though we are not correctly uninstalled, there is nothing + # we can do about that because of an rpm bug. If the user is + # uninstalling then they will need to remove what is left of + # /awips2 anyway. + exit 0 +fi + +# Ensure that awips2-java is available. +if [ ! -f /awips2/java/bin/java ]; then + exit 0 +fi + +# Ensure that awips2-python is available. +if [ ! -f /awips2/python/bin/python ]; then + exit 0 +fi + +# Set all paths required by CAVE before installing. +export LD_LIBRARY_PATH=%{_awips2_java_home}/lib:/awips2/python/lib:$LD_LIBRARY_PATH +export LD_PRELOAD=libpython.so +if [ -d /awips2/cave/lib ]; then + export LD_LIBRARY_PATH=/awips2/cave/lib/lib_illusion:$LD_LIBRARY_PATH +fi +if [ -d /awips2/cave/lib64 ]; then + export LD_LIBRARY_PATH=/awips2/cave/lib64/lib_illusion:$LD_LIBRARY_PATH +fi +# Need to use awips2-java to do this. +export PATH=%{_awips2_java_home}/bin:/awips2/python/bin:${PATH} +export JAVA_HOME="%{_awips2_java_home}/jre" + +# Use the eclipse p2 manager. +CAVE_EXE="/awips2/cave/cave" +NOSPLASH_ARG="-nosplash" +DIRECTOR_APP="-application org.eclipse.equinox.p2.director" +DESTINATION_ARG="-destination /awips2/cave" +UNINSTALL_ARG="-u %{_component_feature}.feature.group" + +COMMON_CMD="${CAVE_EXE} ${NOSPLASH_ARG} ${DIRECTOR_APP} ${DESTINATION_ARG}" +UNINSTALL_CMD="${COMMON_CMD} ${UNINSTALL_ARG}" + +LOG_TIMESTAMP=`date` +echo "uninstall STARTED: ${LOG_TIMESTAMP}" +${UNINSTALL_CMD} +LOG_TIMESTAMP=`date` +echo "uninstall COMPLETE: ${LOG_TIMESTAMP}" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/cave/.repository +/awips2/cave/.repository/* diff --git a/rpms/awips2.cave/Installer.cave/component.spec b/rpms/awips2.cave/Installer.cave/component.spec new file mode 100644 index 0000000000..319b94d719 --- /dev/null +++ b/rpms/awips2.cave/Installer.cave/component.spec @@ -0,0 +1,321 @@ +# RPM Metadata +%define _component_name awips2-cave +%define _component_project_dir awips2.cave/Installer.cave +%define _component_zip_file_name CAVE-linux.gtk.%{_build_arch}.zip +%define _component_desc "awips2-cave" +# +# awips2-cave Spec File +# +%define __prelink_undo_cmd %{nil} +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +Name: %{_component_name} +Summary: awips2-cave Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: %{_component_name} +provides: awips2-base-component +requires: awips2-java +requires: awips2-python +requires: openmotif +requires: libMrm.so.4 +requires: libXp.so.6 +requires: libg2c.so.0 + +%description +%{_component_desc} + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +if [ -d ${RPM_BUILD_ROOT} ]; then + rm -rf ${RPM_BUILD_ROOT} +fi +mkdir -p ${RPM_BUILD_ROOT}/awips2 +mkdir -p ${RPM_BUILD_ROOT}/etc/xdg/autostart +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d +CAVE_DIST_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.cave/setup/dist" + +if [ ! -f ${CAVE_DIST_DIR}/%{_component_zip_file_name} ]; then + echo "ERROR: Unable to find - ${CAVE_DIST_DIR}/%{_component_zip_file_name}." + exit 1 +fi + +cp ${CAVE_DIST_DIR}/%{_component_zip_file_name} \ + ${RPM_BUILD_ROOT}/awips2 + +%build + +%install +cd ${RPM_BUILD_ROOT}/awips2 +unzip %{_component_zip_file_name} +rm -f %{_component_zip_file_name} + +# Our profile.d scripts +PROFILE_D_DIR="${WORKSPACE_DIR}/Installer.rpm/common/environment/awips2-cave/profile.d" +cp ${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +# The AWIPS II version script. +VERSIONS_SCRIPT="Installer.rpm/utility/scripts/versions.sh" +cp ${WORKSPACE_DIR}/${VERSIONS_SCRIPT} ${RPM_BUILD_ROOT}/awips2/cave + +# testWS script +TEXTWS_SCRIPT="Installer.rpm/utility/scripts/textWS.sh" +cp ${WORKSPACE_DIR}/${TEXTWS_SCRIPT} ${RPM_BUILD_ROOT}/awips2/cave + +# text-workstation autostart script. +CAVE_SCRIPTS_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.cave/Installer.cave/scripts" +TEXTWS_AUTO_SCRIPT="${CAVE_SCRIPTS_DIR}/autostart/awips2-textws.desktop" +cp -v ${TEXTWS_AUTO_SCRIPT} ${RPM_BUILD_ROOT}/etc/xdg/autostart +if [ $? -ne 0 ]; then + exit 1 +fi + +%pre +if [ "${1}" = "2" ]; then + # During an upgrade, we need to copy CAVE components that should not + # change without a complete re-install to a temporary location so that + # they are not overwritten. If we do not do this, CAVE will not recognize + # any of the features / plugins that have been installed after the upgrade. + + # Create the CAVE backup directory + mkdir -p /awips2/cave.bak + + # Ensure that the file directories that need to be backed up exist + if [ ! -f /awips2/cave/artifacts.xml ]; then + echo "ERROR: The cave artifacts.xml file does not exist." + echo " Your CAVE install is corrupted. Please re-install." + exit 1 + fi + + if [ ! -f /awips2/cave/cave ]; then + echo "ERROR: The cave executable does not exist." + echo " Your CAVE install is corrupted. Please re-install." + exit 1 + fi + + if [ ! -d /awips2/cave/configuration ]; then + echo "ERROR: The cave configuration directory does not exist." + echo " Your CAVE install is corrupted. Please re-install." + exit 1 + fi + + if [ ! -d /awips2/cave/features ]; then + echo "ERROR: The cave features directory does not exist." + echo " Your CAVE install is corrupted. Please re-install." + exit 1 + fi + + if [ ! -d /awips2/cave/p2 ]; then + echo "ERROR: The cave p2 directory does not exist." + echo " Your CAVE install is corrupted. Please re-install." + exit 1 + fi + + if [ ! -d /awips2/cave/plugins ]; then + echo "ERROR: The cave plugins directory does not exist." + echo " Your CAVE install is corrupted. Please re-install." + exit 1 + fi + + # Create the backups + mv /awips2/cave/artifacts.xml /awips2/cave.bak/ + mv /awips2/cave/cave /awips2/cave.bak/ + mv /awips2/cave/configuration /awips2/cave.bak/ + mv /awips2/cave/features /awips2/cave.bak/ + mv /awips2/cave/p2 /awips2/cave.bak/ + mv /awips2/cave/plugins /awips2/cave.bak/ + + exit 0 +fi + +# /awips2/cave must not exist. +if [ -d /awips2/cave ]; then + echo -e "\e[1;31mERROR: the /awips2/cave directory already exists. /awips2/cave\e[m" + echo -e "\e[1;31m must be REMOVED before the installation will proceed.\e[m" + exit 1 +fi + +%post +# Remove the text-workstation autostart script if we have not been installed +# on an xt workstation +if [ ! "`hostname | cut -b 1-2`" = "xt" ]; then + rm -f /etc/xdg/autostart/awips2-textws.desktop +fi + +MACHINE_BIT=`uname -i` +if [ "${MACHINE_BIT}" = "i386" ] +then + if [ -d /awips2/cave/lib/lib64 ]; then + rm -rf /awips2/cave/lib/lib64 + fi +fi + +# We need to create a link to the python shared library if it does not exist. +pushd . > /dev/null 2>&1 +if [ -d /awips2/python/lib ]; then + cd /awips2/python/lib + if [ -L libpython.so ]; then + # Ensure that we are pointing to the correct shared library. + rm -f libpython.so + fi + + if [ -f libpython2.7.so.1.0 ]; then + ln -s libpython2.7.so.1.0 libpython.so + fi +fi +popd > /dev/null 2>&1 + +pushd . > /dev/null 2>&1 +cd /awips2/cave/plugins +# Forcefully unzip: org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c.jar +# : if i386 +if [ -f org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c.jar ]; then + mkdir org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c + unzip -qq org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c.jar \ + -d org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c + rm -f org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c.jar + mv org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c \ + org.eclipse.swt.gtk.linux.x86_3.6.1.v3655c.jar +fi +# Forcefully unzip: org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c.jar +# : if x86_64 +if [ -f org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c.jar ]; then + mkdir org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c + unzip -qq org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c.jar \ + -d org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c + rm -f org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c.jar + mv org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c \ + org.eclipse.swt.gtk.linux.x86_64_3.6.1.v3655c.jar +fi + +# Forcefully unzip: org.eclipse.ui_3.6.1.M20100826-1330.jar +# : for i386 & x86_64 +if [ -f org.eclipse.ui_3.6.1.M20100826-1330.jar ]; then + mkdir org.eclipse.ui_3.6.1.M20100826-1330 + unzip -qq org.eclipse.ui_3.6.1.M20100826-1330.jar \ + -d org.eclipse.ui_3.6.1.M20100826-1330 + rm -f org.eclipse.ui_3.6.1.M20100826-1330.jar + mv org.eclipse.ui_3.6.1.M20100826-1330 \ + org.eclipse.ui_3.6.1.M20100826-1330.jar +fi + +popd > /dev/null 2>&1 + +if [ "${1}" = "2" ]; then + # Restore the backup. + + # Remove the files that were just placed on the filesystem by the install. + rm -f /awips2/cave/artifacts.xml + rm -f /awips2/cave/cave + rm -rf /awips2/cave/configuration + rm -rf /awips2/cave/features + rm -rf /awips2/cave/p2 + rm -rf /awips2/cave/plugins + + mv /awips2/cave.bak/* /awips2/cave + rm -rf /awips2/cave.bak +fi + +%preun +# Backup the core CAVE jar files so that they are +# not removed during the uninstallation of a previous +# version of CAVE during an upgrade. +if [ "${1}" = "1" ]; then + # This is an upgrade. + if [ -d /awips2/cave.bak ]; then + rm -rf /awips2/cave.bak + fi + mkdir -p /awips2/cave.bak/plugins + + CAVE_APPLICATION_PLUGIN="com.raytheon.uf.viz.application_*.jar" + CAVE_PRODUCT_PLUGIN="com.raytheon.viz.product.awips_*.jar" + + + cp /awips2/cave/plugins/${CAVE_APPLICATION_PLUGIN} \ + /awips2/cave.bak/plugins + cp /awips2/cave/plugins/${CAVE_PRODUCT_PLUGIN} \ + /awips2/cave.bak/plugins +fi + +%postun +# Restore the CAVE jar files that were backed-up if this +# is an upgrade. +if [ "${1}" = "1" ]; then + # This is an upgrade. + CAVE_APPLICATION_PLUGIN="com.raytheon.uf.viz.application_*.jar" + CAVE_PRODUCT_PLUGIN="com.raytheon.viz.product.awips_*.jar" + + if [ ! -d /awips2/cave.bak/plugins ]; then + exit 0 + fi + + if [ -d /awips2/cave/plugins ]; then + mv /awips2/cave.bak/plugins/${CAVE_APPLICATION_PLUGIN} \ + /awips2/cave/plugins + mv /awips2/cave.bak/plugins/${CAVE_PRODUCT_PLUGIN} \ + /awips2/cave/plugins + fi + + rm -rf /awips2/cave.bak +fi + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,root,root,-) +/etc/profile.d/awips2Cave.csh +/etc/profile.d/awips2Cave.sh + +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/cave +%docdir /awips2/cave/about_files +%dir /awips2/cave/about_files +/awips2/cave/about_files/* +%doc /awips2/cave/about.html +/awips2/cave/artifacts.xml +/awips2/cave/*.ini +%dir /awips2/cave/configuration +/awips2/cave/configuration/* +%doc /awips2/cave/epl-v10.html +%dir /awips2/cave/features +/awips2/cave/features/* +%doc /awips2/cave/notice.html +%dir /awips2/cave/p2 +/awips2/cave/p2/* +%dir /awips2/cave/plugins +/awips2/cave/plugins/* +%docdir /awips2/cave/readme +%dir /awips2/cave/readme +/awips2/cave/readme/* +/awips2/cave/.eclipseproduct + +%defattr(755,awips,fxalpha,755) +%dir /awips2/cave/caveEnvironment +/awips2/cave/caveEnvironment/* +/awips2/cave/cave +/awips2/cave/*.sh +/awips2/cave/*.so +%dir /awips2/cave/lib%{_build_bits} +/awips2/cave/lib%{_build_bits}/* + +%attr(644,root,root) /etc/xdg/autostart/awips2-textws.desktop \ No newline at end of file diff --git a/rpms/awips2.cave/Installer.cave/scripts/autostart/awips2-textws.desktop b/rpms/awips2.cave/Installer.cave/scripts/autostart/awips2-textws.desktop new file mode 100644 index 0000000000..8bb01e91e1 --- /dev/null +++ b/rpms/awips2.cave/Installer.cave/scripts/autostart/awips2-textws.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Encoding=UTF-8 +Version=1.0 +Name=No Name +Name[en_US]=TextWS +Exec=/bin/bash -i -c "/awips2/alertviz/alertviz.sh &"; /bin/csh -i -c "/awips2/cave/textWS.sh" diff --git a/rpms/awips2.cave/deploy.builder/build.sh b/rpms/awips2.cave/deploy.builder/build.sh new file mode 100755 index 0000000000..65a3d1e960 --- /dev/null +++ b/rpms/awips2.cave/deploy.builder/build.sh @@ -0,0 +1,213 @@ +#!/bin/bash +# We Have Been Created To Automate The Building Of The AWIPS II RPMs. + +# Arguments: +# ${1} == Build Version +# ${2} == Build Release + +if [ "${RPM_TOP_DIR}" = "" ]; then + echo "ERROR: You Must Set The RPM_TOP_DIR Environment Variable." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +export TARGET_BUILD_ARCH= +# If the architecture has not been specified, default to 32-bit. +if [ "${CAVE_BUILD_ARCH}" = "" ]; then + export CAVE_BUILD_ARCH="x86" + echo "The Build Architecture was not specified ... defaulting to x86." +else + echo "Building for architecture ... ${CAVE_BUILD_ARCH}." +fi +# Set the target build architecture for the rpms based on the CAVE build architecture. +export TARGET_BUILD_ARCH="${CAVE_BUILD_ARCH}" +if [ "${CAVE_BUILD_ARCH}" = "x86" ]; then + export TARGET_BUILD_ARCH="i386" + export CAVE_BUILD_BITS="" +else + export CAVE_BUILD_BITS="64" +fi + +export WORKSPACE_DIR=`cd ../../../; pwd;` + +# If there is an actual version, it will be given to us as an argument. +if [ "${1}" = "" ]; then + # Check version.txt + VERSION_TXT="${WORKSPACE_DIR}/Installer.rpm/version.txt" + if [ ! -f ${VERSION_TXT} ]; then + echo "ERROR: Unable to find the version file - ${VERSION_TXT}." + exit 1 + fi + export BUILD_VERSION=`cat ${VERSION_TXT}` + # Ensure that a version has been specified. + if [ "${BUILD_VERSION}" = "" ]; then + echo "ERROR: A build version has not been specified." + exit 1 + fi +else + export BUILD_VERSION="${1}" +fi +# If there is an actual release, it will be given to us as an argument. +if [ "${2}" = "" ]; then + # Use the date. + export BUILD_RELEASE=`date +"%Y%m%d"` +else + export BUILD_RELEASE="${2}" +fi + + +# Prepare +if [ ! -f ${WORKSPACE_DIR}/Installer.rpm/awips2.cave/setup/scripts/prepare_dist.sh ]; then + echo "ERROR: Unable to find the setup script." + exit 1 +fi +/bin/bash ${WORKSPACE_DIR}/Installer.rpm/awips2.cave/setup/scripts/prepare_dist.sh +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: setup failed." + exit 1 +fi + +# The RPM Build Directory Structure Consists Of: +# ROOT = ${RPM_BUILD_ROOT} +# * BUILD +# * RPMS - Our Output RPMs +# * SOURCES +# * SPECS +# * SRPMS + +# Arguments +# ${1} == The Directory With The Specs File And Possibly Other Custom +# Scripts That May Need To Be Merged Into A Component. +function buildRPM() +{ + local BUILDROOT_DIR=/tmp/awips-component + + local COMPONENT_DIR=${1} + # if we are building a 64-bit version of CAVE, create a temporary + # component.spec.64 file for the build. + if [ ! "${TARGET_BUILD_ARCH}" = "x86_64" ]; then + local COMPONENT_SPECS=${COMPONENT_DIR}/component.spec + else + # Create an alternate component.spec file. + cp -v ${COMPONENT_DIR}/component.spec ${COMPONENT_DIR}/component.spec.64 + if [ $? -ne 0 ]; then + exit 1 + fi + # libraries to substitute: { libMrm.so.4, libXp.so.6, libg2c.so.0 } + perl -p -i -e "s/requires: libMrm.so.4/requires: libMrm.so.4()(64bit)/g" \ + ${COMPONENT_DIR}/component.spec.64 + if [ $? -ne 0 ]; then + exit 1 + fi + perl -p -i -e "s/requires: libXp.so.6/requires: libXp.so.6()(64bit)/g" \ + ${COMPONENT_DIR}/component.spec.64 + if [ $? -ne 0 ]; then + exit 1 + fi + perl -p -i -e "s/requires: libg2c.so.0/requires: libg2c.so.0()(64bit)/g" \ + ${COMPONENT_DIR}/component.spec.64 + if [ $? -ne 0 ]; then + exit 1 + fi + local COMPONENT_SPECS=${COMPONENT_DIR}/component.spec.64 + fi + + if [ -d ${BUILDROOT_DIR} ]; then + rm -rf ${BUILDROOT_DIR} + fi + + # Build The RPM. + rpmbuild -ba --target=${TARGET_BUILD_ARCH} \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_version %(echo ${BUILD_VERSION})' \ + --define '_component_release %(echo ${BUILD_RELEASE})' \ + --define '_build_arch %(echo ${CAVE_BUILD_ARCH})' \ + --define '_build_bits %(echo ${CAVE_BUILD_BITS})' \ + --buildroot ${BUILDROOT_DIR} ${COMPONENT_SPECS} + # If We Are Unable To Build An RPM, Fail The Build: + RC="$?" + + if [ -f ${COMPONENT_DIR}/component.spec.64 ]; then + rm -fv ${COMPONENT_DIR}/component.spec.64 + fi + if [ ! "${RC}" = "0" ]; then + exit 1 + fi +} + +function buildFeatureRPMs() +{ + local CONST_BUILDROOT_DIR=/tmp/awips-component + local CONST_COMPONENT_SPECS="Installer.cave-feature/component.spec" + local CONST_SETUP_DIR="Installer.cave-feature/feature.setup" + local CONST_SETUP_DIR_FULL="${WORKSPACE_DIR}/Installer.rpm/awips2.cave/${CONST_SETUP_DIR}" + local CONST_FEATURE_DIR="${WORKSPACE_DIR}/build/cave/p2/features" + + local PROCESS_FEATURE_JAR="${WORKSPACE_DIR}/build/tools/ProcessFeature.jar" + if [ "${AWIPSII_JAVA_HOME}" = "" ]; then + echo "INFO: AWIPSII_JAVA_HOME has not been set. Defaulting to: /awips2/java." + export AWIPSII_JAVA_HOME="/awips2/java" + fi + + if [ -d ${CONST_FEATURE_DIR}/com.raytheon.viz.feature.awips ]; then + rm -rf ${CONST_FEATURE_DIR}/com.raytheon.viz.feature.awips + fi + if [ -d ${CONST_FEATURE_DIR}/com.raytheon.uf.viz.eclipse.feature ]; then + rm -rf ${CONST_FEATURE_DIR}/com.raytheon.uf.viz.eclipse.feature + fi + if [ -d ${CONST_FEATURE_DIR}/com.raytheon.uf.viz.feature.alertviz ]; then + rm -rf ${CONST_FEATURE_DIR}/com.raytheon.uf.viz.feature.alertviz + fi + if [ -d ${CONST_FEATURE_DIR}/com.raytheon.viz.feature.awips.developer ]; then + rm -rf ${CONST_FEATURE_DIR}/com.raytheon.viz.feature.awips.developer + fi + + # These are variables that will be placed into the environment by sourcing + # a shell script. + for feature_dir in `ls -1 ${CONST_FEATURE_DIR}`; + do + java -jar ${PROCESS_FEATURE_JAR} \ + -p \ + ${CONST_FEATURE_DIR}/${feature_dir} \ + ${CONST_SETUP_DIR_FULL} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: ${PROCESS_FEATURE_JAR} Failed." + exit 1 + fi + + if [ ! -f ${CONST_SETUP_DIR}/feature.setup ]; then + echo "ERROR: ${CONST_SETUP_DIR}/feature.setup Does Not Exist." + exit 1 + fi + source ${CONST_SETUP_DIR}/feature.setup + + rpmbuild -ba --target=${TARGET_BUILD_ARCH} \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_name %(echo ${COMPONENT_NAME})' \ + --define '_component_feature %(echo ${COMPONENT_FEATURE})' \ + --define '_component_desc %(echo ${COMPONENT_DESC})' \ + --define '_downstream_requires %(echo ${DOWNSTREAM_REQUIRES})' \ + --define '_component_version %(echo ${BUILD_VERSION})' \ + --define '_component_release %(echo ${BUILD_RELEASE})' \ + --define '_build_arch %(echo ${CAVE_BUILD_ARCH})' \ + --define '_awips2_java_home %(echo ${AWIPSII_JAVA_HOME})' \ + --buildroot ${CONST_BUILDROOT_DIR} ${CONST_COMPONENT_SPECS} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi + done +} + +# Adjust Our Execution Position. +cd ../ + +# Only Build The RPMs That May Have Changed - AWIPS II-Specific Components. +buildRPM "Installer.cave" +buildRPM "Installer.cave-etc" +buildFeatureRPMs + +unset USE_JROCKIT +unset AWIPSII_JAVA_HOME diff --git a/rpms/awips2.cave/setup/scripts/prepare_dist.sh b/rpms/awips2.cave/setup/scripts/prepare_dist.sh new file mode 100644 index 0000000000..a29e6f1756 --- /dev/null +++ b/rpms/awips2.cave/setup/scripts/prepare_dist.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +# This script will build the CAVE zip, the p2 repository zips, and copy them to the CAVE rpm dist +# directory. + +# This script is started by the awips2.cave rpm build.sh script; so, it is able to get the workspace +# directory from the environment as well as the build architecture. + +CAVE_RPM_DIST_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.cave/setup/dist" +if [ ! -d ${CAVE_RPM_DIST_DIR} ]; then + echo "ERROR: ${CAVE_RPM_DIST_DIR} does not exist." + exit 1 +fi +rm -f ${CAVE_RPM_DIST_DIR}/* +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to remove the contents of ${CAVE_RPM_DIST_DIR}." + exit 1 +fi + +if [ ! -d ${WORKSPACE_DIR}/build ]; then + echo "ERROR: The CAVE build directory was not found in the workspace - ${WORKSPACE_DIR}/build." + echo " When it was checked out of SVN was it accidentally named build.cave instead?" + exit 1 +fi +cd ${WORKSPACE_DIR}/build + +# Build the CAVE zip file. +if [ ! -f build.sh ]; then + echo "ERROR: Unable to find the CAVE build script." + exit 1 +fi + +# Execute the CAVE PDE Build. +# The Sun JDK Build. +time ./build.sh -eclipse=/opt/uframe-eclipse +RC=$? + +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to build the CAVE zip file." + exit 1 +fi + +# Copy the CAVE zip file to the awips2.cave dist directory. +CAVE_ZIP_NAME_32="CAVE-linux.gtk.x86.zip" +CAVE_ZIP_NAME_64="CAVE-linux.gtk.x86_64.zip" +CAVE_ZIP_LOC="cave/tmp/I.CAVE" +CAVE_ZIP="${CAVE_ZIP_LOC}/${CAVE_ZIP_NAME_32}" +if [ ! -f ${CAVE_ZIP} ]; then + echo "ERROR: ${CAVE_ZIP} does not exist." + exit 1 +fi +cp -v ${CAVE_ZIP} ${CAVE_RPM_DIST_DIR} +CAVE_ZIP="${CAVE_ZIP_LOC}/${CAVE_ZIP_NAME_64}" +if [ ! -f ${CAVE_ZIP} ]; then + echo "ERROR: ${CAVE_ZIP} does not exist." + exit 1 +fi +cp -v ${CAVE_ZIP} ${CAVE_RPM_DIST_DIR} + +# Build the p2 repo zip files. +if [ ! -f p2-build.xml ]; then + echo "ERROR: Unable to find the p2 repo ant script." + exit 1 +fi + +# Execute the P2 Repo PDE Build. +# The Sun JDK Build. +time ant -f p2-build.xml -Dbuild.version=${BUILD_VERSION} \ + -Dbuild.arch=${CAVE_BUILD_ARCH} +RC=$? + +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to build the CAVE p2 repo zip files." + exit 1 +fi + +# Copy the p2 repo zip files to the awips2.cave dist directory. +P2_REPO_ZIP_LOC="cave/p2/dist" +if [ ! -d ${P2_REPO_ZIP_LOC} ]; then + echo "ERROR: Unable to find the CAVE p2 repo zip files." + exit 1 +fi +cp -v ${P2_REPO_ZIP_LOC}/* ${CAVE_RPM_DIST_DIR} + +# Finished +exit 0 diff --git a/rpms/awips2.core/Installer.adapt-native/component.spec b/rpms/awips2.core/Installer.adapt-native/component.spec new file mode 100644 index 0000000000..44ec6af8f7 --- /dev/null +++ b/rpms/awips2.core/Installer.adapt-native/component.spec @@ -0,0 +1,105 @@ +# +# AWIPS II Adapt Native Spec File +# +Name: awips2-adapt-native +Summary: AWIPS II Adapt Native Distribution +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2 +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-adapt-native +requires: awips2-edex-base + +# The two python native libraries are now included directly in the python +# distribution that is built. +%description +AWIPS II Native Distribution - Contains the AWIP II Native Files for Adapt. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2 + +%build + +%install +NATIVE_TAR_FILE="dist.native/i386-pc-linux-gnu.tar" + +/bin/gtar -xpf ${WORKSPACE_DIR}/${NATIVE_TAR_FILE} \ + -C ${RPM_BUILD_ROOT}/awips2 + +# Remove Unnecessary Directories. +rm -rf ${RPM_BUILD_ROOT}/awips2/setup +rm -rf ${RPM_BUILD_ROOT}/awips2/edex +rm -rf ${RPM_BUILD_ROOT}/awips2/lib +rm -rf ${RPM_BUILD_ROOT}/awips2/awipsShare + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +# Need To Ensure That We Are Lined Up With The Current Edex (Base) Installation. +EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` +if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: This Extension MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Adapt Native Libraries...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/adapt\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Adapt Native Library Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Adapt Native Libraries Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/adapt +%dir /awips2/adapt/climate +%dir /awips2/adapt/climate/data +/awips2/adapt/climate/data/* +%dir /awips2/adapt/climate/bin + +%defattr(755,awips,fxalpha,755) +%dir /awips2/adapt/climate/bin/Linux +/awips2/adapt/climate/bin/Linux/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.alertviz/component.spec b/rpms/awips2.core/Installer.alertviz/component.spec new file mode 100644 index 0000000000..e149b8436c --- /dev/null +++ b/rpms/awips2.core/Installer.alertviz/component.spec @@ -0,0 +1,194 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-alertviz +%define _component_project_dir awips2.core/Installer.alertviz +%define _component_default_prefix /awips2/alertviz +# +# AWIPS II AlertViz Spec File +# +%define __prelink_undo_cmd %{nil} + +Name: %{_component_name} +Summary: AWIPS II AlertViz +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-alertviz +requires: awips2-python +requires: awips2-java + +%description +AWIPS II AlertViz Distribution - the AWIPS II AlertViz application. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2 + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} + +ALERTVIZ_ZIP_FILE="build/alertviz/tmp/I.AlertViz/AlertViz-linux.gtk.x86.zip" + +cd ${RPM_BUILD_ROOT}/awips2 +unzip ${WORKSPACE_DIR}/${ALERTVIZ_ZIP_FILE} + +# Also Need To Create The alertvizEnvironment Directory +mkdir -p ${RPM_BUILD_ROOT}/awips2/alertviz/alertvizEnvironment + +# Create our autostart template +mkdir -p ${RPM_BUILD_ROOT}/etc/xdg/autostart +cp ${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.alertviz/scripts/autostart/awips2-alertviz.desktop \ + ${RPM_BUILD_ROOT}/etc/xdg/autostart + +copyLegal "awips2/alertviz" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II AlertViz...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +# Remove the alertviz autostart script if we have been installed on +# an xt machine. +if [ "`hostname | cut -b 1-2`" = "xt" ]; then + # Remove the awips2-alertviz autostart script. + rm -f /etc/xdg/autostart/awips2-alertviz.desktop +fi +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo "--------------------------------------------------------------------------------" +echo "\| Setting up the AWIPS II AlertViz Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II AlertViz Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II AlertViz Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/alertviz +/awips2/alertviz/.eclipseproduct +%docdir /awips2/alertviz/about_files +%dir /awips2/alertviz/about_files +/awips2/alertviz/about_files/* +%doc /awips2/alertviz/about.html +%dir /awips2/alertviz/alertvizEnvironment +/awips2/alertviz/alertviz.ini +%dir /awips2/alertviz/configuration +/awips2/alertviz/configuration/* +%dir /awips2/alertviz/etc +/awips2/alertviz/etc/* +%dir /awips2/alertviz/features +/awips2/alertviz/features/* +%docdir /awips2/alertviz/licenses +%dir /awips2/alertviz/licenses +/awips2/alertviz/licenses/* +%dir /awips2/alertviz/plugins +/awips2/alertviz/plugins/* + +%defattr(755,awips,fxalpha,755) +/awips2/alertviz/alertviz +/awips2/alertviz/*.so +/awips2/alertviz/*.sh + +%attr(644,root,root) /etc/xdg/autostart/awips2-alertviz.desktop \ No newline at end of file diff --git a/rpms/awips2.core/Installer.alertviz/scripts/autostart/awips2-alertviz.desktop b/rpms/awips2.core/Installer.alertviz/scripts/autostart/awips2-alertviz.desktop new file mode 100644 index 0000000000..88fb884eb2 --- /dev/null +++ b/rpms/awips2.core/Installer.alertviz/scripts/autostart/awips2-alertviz.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Encoding=UTF-8 +Version=1.0 +Name=No Name +Name[en_US]=Alertviz +Exec=/bin/bash -i -c "/awips2/alertviz/alertviz.sh" diff --git a/rpms/awips2.core/Installer.ant/component.spec b/rpms/awips2.core/Installer.ant/component.spec new file mode 100644 index 0000000000..acd0b41aa0 --- /dev/null +++ b/rpms/awips2.core/Installer.ant/component.spec @@ -0,0 +1,155 @@ +# +# AWIPS II Ant Spec File +# +Name: awips2-ant +Summary: AWIPS II Ant Distribution +Version: 1.7.1 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2/ant +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-ant + +%description +AWIPS II Ant Distribution - Contains Ant V1.7.1 + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/ant +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d + +PROFILE_D_DIR="Installer.rpm/awips2.core/Installer.ant/scripts/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +%build + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} + +ANT_TAR_FILE="apache-ant-1.7.1-bin.tar.gz" +ANT_TAR_FILE_SRC_DIR="CMLibrary/Software/OpenSource/Ant/v1.7.1" + +# Will Be Extracted Into apache-ant-1.7.1 +tar -xf ${AWIPSCM_SHARE}/${ANT_TAR_FILE_SRC_DIR}/${ANT_TAR_FILE} \ + -C ${RPM_BUILD_ROOT}/awips2 +# Move Files From 1.7.1 To The Generic Directory +cp -r ${RPM_BUILD_ROOT}/awips2/apache-ant-1.7.1/* \ + ${RPM_BUILD_ROOT}/awips2/ant +rm -rf ${RPM_BUILD_ROOT}/awips2/apache-ant-1.7.1 + +copyLegal "awips2/ant" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Ant Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II Ant Distribution Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" +} +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II Ant Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +echo "--------------------------------------------------------------------------------" +echo "\| Adding Environment Variables for AWIPS II Ant" +echo "--------------------------------------------------------------------------------" + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Ant Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Ant Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +%attr(755,root,root) /etc/profile.d/awips2Ant.csh +%attr(755,root,root) /etc/profile.d/awips2Ant.sh +%dir /awips2/ant +%dir /awips2/ant/bin +%attr(755,awips,fxalpha) /awips2/ant/bin/ant +%attr(644,awips,fxalpha) /awips2/ant/bin/ant.bat +%attr(644,awips,fxalpha) /awips2/ant/bin/ant.cmd +%attr(644,awips,fxalpha) /awips2/ant/bin/antenv.cmd +%attr(755,awips,fxalpha) /awips2/ant/bin/antRun +%attr(644,awips,fxalpha) /awips2/ant/bin/antRun.bat +%attr(755,awips,fxalpha) /awips2/ant/bin/antRun.pl +%attr(755,awips,fxalpha) /awips2/ant/bin/complete-ant-cmd.pl +%attr(644,awips,fxalpha) /awips2/ant/bin/envset.cmd +%attr(644,awips,fxalpha) /awips2/ant/bin/lcp.bat +%attr(755,awips,fxalpha) /awips2/ant/bin/runant.pl +%attr(755,awips,fxalpha) /awips2/ant/bin/runant.py +%attr(644,awips,fxalpha) /awips2/ant/bin/runrc.cmd +%docdir /awips2/ant/docs +/awips2/ant/docs +/awips2/ant/etc +/awips2/ant/fetch.xml +/awips2/ant/get-m2.xml +%doc /awips2/ant/INSTALL +%doc /awips2/ant/KEYS +/awips2/ant/lib +%doc /awips2/ant/LICENSE +%docdir /awips2/ant/licenses +/awips2/ant/licenses +%doc /awips2/ant/NOTICE +%doc /awips2/ant/README +%doc /awips2/ant/WHATSNEW \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ant/scripts/profile.d/awips2Ant.csh b/rpms/awips2.core/Installer.ant/scripts/profile.d/awips2Ant.csh new file mode 100644 index 0000000000..b0d5da3f7d --- /dev/null +++ b/rpms/awips2.core/Installer.ant/scripts/profile.d/awips2Ant.csh @@ -0,0 +1,11 @@ +#!/bin/csh + +# Determine where ant has been installed. +set ANT_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-ant` +setenv ANT_HOME "${ANT_INSTALL}" + +if $?PATH then + setenv PATH ${ANT_INSTALL}/bin:$PATH +else + setenv PATH ${ANT_INSTALL} +endif diff --git a/rpms/awips2.core/Installer.ant/scripts/profile.d/awips2Ant.sh b/rpms/awips2.core/Installer.ant/scripts/profile.d/awips2Ant.sh new file mode 100644 index 0000000000..d3ba27f5c3 --- /dev/null +++ b/rpms/awips2.core/Installer.ant/scripts/profile.d/awips2Ant.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Is Ant Installed? +rpm -q awips2-ant > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + return +fi + +# Determine Where Ant Has Been Installed. +ANT_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-ant` +if [ "${ANT_INSTALL}" = "" ]; then + return +fi + +# Update The Environment. +export ANT_HOME="${ANT_INSTALL}" +# Determine If Ant Is Already Part Of The Path. +CHECK_PATH=`echo ${PATH} | grep ${ANT_INSTALL}` +if [ ! "${CHECK_PATH}" = "" ]; then + return +fi +# Ant Is Not In The Path; Add It To The Path. +export PATH="${ANT_INSTALL}/bin:${PATH}" diff --git a/rpms/awips2.core/Installer.aviation/component.spec b/rpms/awips2.core/Installer.aviation/component.spec new file mode 100644 index 0000000000..f044089670 --- /dev/null +++ b/rpms/awips2.core/Installer.aviation/component.spec @@ -0,0 +1,83 @@ +# +# AWIPS II Hydroapps Spec File +# +Name: awips2-aviation-shared +Summary: AWIPS II Aviation Distribution +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-aviation-shared +requires: awips2-edex-base + +%description +AWIPS II Aviation Distribution - includes *-ish files required by AvnFPS. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/share/aviation +# Create an empty 'tmp' directory. +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/share/aviation/tmp + +%build + +%install +AVIATION_SRC_DIR="build/static/common/cave/etc/aviation/thresholds" + +# Copy the aviation *ish files to their destination. +cp ${WORKSPACE_DIR}/${AVIATION_SRC_DIR}/*.txt \ + ${RPM_BUILD_ROOT}/awips2/edex/data/share/aviation + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Aviation Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = /awips2\e[m" +echo -e "\e[1;34m Destination = /awips2/edex/data/share/aviation\e[m" + +%post +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Aviation Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Aviation Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/edex +%dir /awips2/edex/data +%dir /awips2/edex/data/share +%dir /awips2/edex/data/share/aviation +%dir /awips2/edex/data/share/aviation/tmp +%defattr(664,awips,fxalpha,755) +/awips2/edex/data/share/aviation/*.txt \ No newline at end of file diff --git a/rpms/awips2.core/Installer.cli/component.spec b/rpms/awips2.core/Installer.cli/component.spec new file mode 100644 index 0000000000..60a9ded92d --- /dev/null +++ b/rpms/awips2.core/Installer.cli/component.spec @@ -0,0 +1,176 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-cli +%define _component_project_dir awips2.core/Installer.cli +%define _component_default_prefix /awips2/fxa +# +# AWIPS II CLI Spec File +# +Name: %{_component_name} +Summary: AWIPS II CLI Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +BuildArch: noarch +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-cli +requires: awips2-python + +%description +AWIPS II CLI Installation - Contains The AWIPS II CLI Component. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/fxa + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} +# This Is The Workspace Project That Contains The Files That We +# Need For The CLI Component Installer. +CLI_PROJECT_DIR="com.raytheon.uf.tools.cli" + +# Create the bin Directory for the CLI Component +mkdir -p ${RPM_BUILD_ROOT}/awips2/fxa/bin +cp -r ${WORKSPACE_DIR}/${CLI_PROJECT_DIR}/impl/* ${RPM_BUILD_ROOT}/awips2/fxa/bin + +copyLegal "awips2/fxa" + +# Copy our profile.d scripts. +PROFILE_D_DIRECTORY="Installer.rpm/awips2.core/Installer.cli/scripts/profile.d" +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d +cp ${WORKSPACE_DIR}/${PROFILE_D_DIRECTORY}/* \ + ${RPM_BUILD_ROOT}/etc/profile.d + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II CLI...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +PYTHON_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-python` +PYTHON_INSTALL=${PYTHON_INSTALL} + +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II CLI Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" +} +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II CLI Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II CLI Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II CLI Installation Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2/fxa +%docdir /awips2/fxa/licenses +%dir /awips2/fxa/licenses +/awips2/fxa/licenses/* +/etc/profile.d/awips2CLI.csh +/etc/profile.d/awips2CLI.sh +%defattr(755,awips,fxalpha,755) +%dir /awips2/fxa/bin +%attr(755,awips,fxalpha) /awips2/fxa/bin/* +%config(noreplace) /awips2/fxa/bin/setup.env diff --git a/rpms/awips2.core/Installer.cli/scripts/profile.d/awips2CLI.csh b/rpms/awips2.core/Installer.cli/scripts/profile.d/awips2CLI.csh new file mode 100644 index 0000000000..7acb18a229 --- /dev/null +++ b/rpms/awips2.core/Installer.cli/scripts/profile.d/awips2CLI.csh @@ -0,0 +1,15 @@ +#!/bin/csh + +# Ensure that awips2-cli is installed. +rpm -q awips2-cli >& /dev/null +set RC="$?" + +#if installed, set the variable +if ( "${RC}" == "0" ) then + set CLI_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-cli` + #if check CLI_INSTALL is set, set it in the path + if ( "${CLI_INSTALL}" != "" ) then + setenv PATH ${CLI_INSTALL}/bin:${PATH} + endif +endif + diff --git a/rpms/awips2.core/Installer.cli/scripts/profile.d/awips2CLI.sh b/rpms/awips2.core/Installer.cli/scripts/profile.d/awips2CLI.sh new file mode 100644 index 0000000000..f5d0922a3d --- /dev/null +++ b/rpms/awips2.core/Installer.cli/scripts/profile.d/awips2CLI.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Ensure that awips2-cli is installed. +rpm -q awips2-cli > /dev/null 2>&1 +RC="$?" +if [ ! "${RC}" = "0" ]; then + # awips2-cli is not installed. + return +fi + +# Determine where awips2-cli has been installed. +CLI_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-cli` +if [ "${CLI_INSTALL}" = "" ]; then + return +fi + +export PATH=${CLI_INSTALL}/bin:${PATH} diff --git a/rpms/awips2.core/Installer.database-server-configuration/component.spec b/rpms/awips2.core/Installer.database-server-configuration/component.spec new file mode 100644 index 0000000000..398960c6af --- /dev/null +++ b/rpms/awips2.core/Installer.database-server-configuration/component.spec @@ -0,0 +1,53 @@ +# +# AWIPS II Database Server Configuration Spec File +# +Name: awips2-database-server-configuration +Summary: AWIPS II Database Server Configuration +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-postgresql +provides: awips2-database-server-configuration +provides: awips2-database-configuration + +%description +AWIPS II Database Server Configuration - contains the AWIPS II server +configuration files optimized for a clustered, server environment. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/data + +%build + +%install +PROJECT_DIR="Installer.database-server-configuration" +CONFIGURATION_DIR="Installer.rpm/awips2.core/${PROJECT_DIR}/configuration" +CONF_FILE="postgresql.conf" + +cp ${WORKSPACE_DIR}/${CONFIGURATION_DIR}/${CONF_FILE} \ + ${RPM_BUILD_ROOT}/awips2/data + +%pre +# Remove any existing postgresql.conf files +if [ -f /awips2/data/postgresql.conf ]; then + rm -f /awips2/data/postgresql.conf +fi + +%files +%attr(644,awips,fxalpha) /awips2/data/postgresql.conf \ No newline at end of file diff --git a/rpms/awips2.core/Installer.database-server-configuration/configuration/postgresql.conf b/rpms/awips2.core/Installer.database-server-configuration/configuration/postgresql.conf new file mode 100644 index 0000000000..579d03d0d3 --- /dev/null +++ b/rpms/awips2.core/Installer.database-server-configuration/configuration/postgresql.conf @@ -0,0 +1,471 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +# name = value +# +# (The '=' is optional.) White space may be used. Comments are introduced +# with '#' anywhere on a line. The complete list of option names and +# allowed values can be found in the PostgreSQL documentation. The +# commented-out settings shown in this file represent the default values. +# +# Please note that re-commenting a setting is NOT sufficient to revert it +# to the default value, unless you restart the server. +# +# Any option can also be given as a command line switch to the server, +# e.g., 'postgres -c log_connections=on'. Some options can be changed at +# run-time with the 'SET' SQL command. +# +# This file is read on server startup and when the server receives a +# SIGHUP. If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, or use "pg_ctl reload". Some +# settings, which are marked below, require a server shutdown and restart +# to take effect. +# +# Memory units: kB = kilobytes MB = megabytes GB = gigabytes +# Time units: ms = milliseconds s = seconds min = minutes h = hours d = days + + +#--------------------------------------------------------------------------- +# FILE LOCATIONS +#--------------------------------------------------------------------------- + +# The default values of these variables are driven from the -D command line +# switch or PGDATA environment variable, represented here as ConfigDir. + +#data_directory = 'ConfigDir' # use data in another directory + # (change requires restart) +#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file + # (change requires restart) +#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file + # (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +#external_pid_file = '(none)' # write an extra PID file + # (change requires restart) + + +#--------------------------------------------------------------------------- +# CONNECTIONS AND AUTHENTICATION +#--------------------------------------------------------------------------- + +# - Connection Settings - + +listen_addresses = '*' # what IP address(es) to listen on; + # comma-separated list of addresses; + # defaults to 'localhost', '*' = all + # (change requires restart) +#port = 5432 # (change requires restart) +max_connections = 300 # (change requires restart) +# Note: increasing max_connections costs ~400 bytes of shared memory per +# connection slot, plus lock space (see max_locks_per_transaction). You +# might also need to raise shared_buffers to support more connections. +#superuser_reserved_connections = 3 # (change requires restart) +#unix_socket_directory = '' # (change requires restart) +#unix_socket_group = '' # (change requires restart) +#unix_socket_permissions = 0777 # octal + # (change requires restart) +#bonjour_name = '' # defaults to the computer name + # (change requires restart) + +# - Security & Authentication - + +#authentication_timeout = 1min # 1s-600s +#ssl = off # (change requires restart) +#password_encryption = on +#db_user_namespace = off + +# Kerberos +#krb_server_keyfile = '' # (change requires restart) +#krb_srvname = 'postgres' # (change requires restart) +#krb_server_hostname = '' # empty string matches any keytab entry + # (change requires restart) +#krb_caseins_users = off # (change requires restart) + +# - TCP Keepalives - +# see 'man 7 tcp' for details + +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; + # 0 selects the system default +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; + # 0 selects the system default +#tcp_keepalives_count = 0 # TCP_KEEPCNT; + # 0 selects the system default + + +#--------------------------------------------------------------------------- +# RESOURCE USAGE (except WAL) +#--------------------------------------------------------------------------- + +# - Memory - + +shared_buffers = 2048MB # min 128kB or max_connections*16kB + # (change requires restart) +temp_buffers = 16MB # min 800kB +#max_prepared_transactions = 5 # can be 0 or more + # (change requires restart) +# Note: increasing max_prepared_transactions costs ~600 bytes of shared memory +# per transaction slot, plus lock space (see max_locks_per_transaction). +work_mem = 64MB # min 64kB +maintenance_work_mem = 32MB # min 1MB +#max_stack_depth = 2MB # min 100kB + +# - Free Space Map - + +max_fsm_pages = 153600 # min max_fsm_relations*16, 6 bytes each + # (change requires restart) +#max_fsm_relations = 1000 # min 100, ~70 bytes each + # (change requires restart) + +# - Kernel Resource Usage - + +#max_files_per_process = 1000 # min 25 + # (change requires restart) +#shared_preload_libraries = '' # (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0 # 0-1000 milliseconds +#vacuum_cost_page_hit = 1 # 0-10000 credits +#vacuum_cost_page_miss = 10 # 0-10000 credits +#vacuum_cost_page_dirty = 20 # 0-10000 credits +#vacuum_cost_limit = 200 # 0-10000 credits + +# - Background writer - + +#bgwriter_delay = 200ms # 10-10000ms between rounds +#bgwriter_lru_percent = 1.0 # 0-100% of LRU buffers scanned/round +#bgwriter_lru_maxpages = 5 # 0-1000 buffers max written/round +#bgwriter_all_percent = 0.333 # 0-100% of all buffers scanned/round +#bgwriter_all_maxpages = 5 # 0-1000 buffers max written/round + + +#--------------------------------------------------------------------------- +# WRITE AHEAD LOG +#--------------------------------------------------------------------------- + +# - Settings - + +fsync = off # turns forced synchronization on or off +#wal_sync_method = fsync # the default is the first option + # supported by the operating system: + # open_datasync + # fdatasync + # fsync + # fsync_writethrough + # open_sync +#full_page_writes = on # recover from partial page writes +#wal_buffers = 64kB # min 32kB + # (change requires restart) +commit_delay = 50000 # range 0-100000, in microseconds +commit_siblings = 5 # range 1-1000 + +# - Checkpoints - + +checkpoint_segments = 10 # in logfile segments, min 1, 16MB each +#checkpoint_timeout = 5min # range 30s-1h +#checkpoint_warning = 30s # 0 is off + +# - Archiving - + +#archive_command = '' # command to use to archive a logfile segment +#archive_timeout = 0 # force a logfile segment switch after this + # many seconds; 0 is off + + +#--------------------------------------------------------------------------- +# QUERY TUNING +#--------------------------------------------------------------------------- + +# - Planner Method Configuration - + +#enable_bitmapscan = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_indexscan = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0 # measured on an arbitrary scale +#random_page_cost = 4.0 # same scale as above +#cpu_tuple_cost = 0.01 # same scale as above +#cpu_index_tuple_cost = 0.005 # same scale as above +#cpu_operator_cost = 0.0025 # same scale as above +effective_cache_size = 2048MB + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5 # range 1-10 +#geqo_pool_size = 0 # selects default based on effort +#geqo_generations = 0 # selects default based on effort +#geqo_selection_bias = 2.0 # range 1.5-2.0 + +# - Other Planner Options - + +#default_statistics_target = 10 # range 1-1000 +#constraint_exclusion = off +#from_collapse_limit = 8 +#join_collapse_limit = 8 # 1 disables collapsing of explicit + # JOINs + + +#--------------------------------------------------------------------------- +# ERROR REPORTING AND LOGGING +#--------------------------------------------------------------------------- + +# - Where to Log - + +#log_destination = 'stderr' # Valid values are combinations of + # stderr, syslog and eventlog, + # depending on platform. + +# This is used when logging to stderr: +logging_collector = on # Enable capturing of stderr into log + # files + # (change requires restart) + +# These are only used if redirect_stderr is on: +log_directory = 'pg_log' # Directory where log files are written + # Can be absolute or relative to PGDATA +#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # Log file name pattern. + # Can include strftime() escapes +log_truncate_on_rotation = on # If on, any existing log file of the same + # name as the new log file will be + # truncated rather than appended to. But + # such truncation only occurs on + # time-driven rotation, not on restarts + # or size-driven rotation. Default is + # off, meaning append to existing files + # in all cases. +log_rotation_age = 1d # Automatic rotation of logfiles will + # happen after that time. 0 to + # disable. +log_rotation_size = 0 # Automatic rotation of logfiles will + # happen after that much log + # output. 0 to disable. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' + + +# - When to Log - + +#client_min_messages = notice # Values, in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error + +#log_min_messages = notice # Values, in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic + +#log_error_verbosity = default # terse, default, or verbose messages + +log_min_error_statement = log # Values in order of increasing severity: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic (effectively off) + +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements + # and their durations. + +#silent_mode = off # DO NOT USE without syslog or + # redirect_stderr + # (change requires restart) + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = off +#log_connections = off +#log_disconnections = off +#log_duration = off +log_line_prefix='%t %x %d : %h : ' + # Special values: + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %p = PID + # %t = timestamp (no milliseconds) + # %m = timestamp with milliseconds + # %i = command tag + # %c = session id + # %l = session line number + # %s = session start timestamp + # %x = transaction id + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_statement = 'none' # none, ddl, mod, all +#log_hostname = off + + +#--------------------------------------------------------------------------- +# RUNTIME STATISTICS +#--------------------------------------------------------------------------- + +# - Query/Index Statistics Collector - + +#stats_command_string = on +#update_process_title = on + +#stats_block_level = off +track_counts = on +#stats_reset_on_server_start = off # (change requires restart) + + +# - Statistics Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#--------------------------------------------------------------------------- +# AUTOVACUUM PARAMETERS +#--------------------------------------------------------------------------- + +autovacuum = on # enable autovacuum subprocess? + # 'on' requires stats_start_collector + # and stats_row_level to also be on +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 500 # min # of tuple updates before + # vacuum +#autovacuum_analyze_threshold = 250 # min # of tuple updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of rel size before + # vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of rel size before + # analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = -1 # default vacuum cost delay for + # autovacuum, -1 means use + # vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#--------------------------------------------------------------------------- +# CLIENT CONNECTION DEFAULTS +#--------------------------------------------------------------------------- + +# - Statement Behavior - + +#search_path = '"$user",public' # schema names +#default_tablespace = '' # a tablespace name, '' uses + # the default +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#statement_timeout = 0 # 0 is disabled +#vacuum_freeze_min_age = 100000000 + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +timezone = GMT # actually, defaults to TZ + # environment setting +#timezone_abbreviations = 'Default' # select the set of available timezone + # abbreviations. Currently, there are + # Default + # Australia + # India + # However you can also create your own + # file in share/timezonesets/. +#extra_float_digits = 0 # min -15, max 2 +#client_encoding = 'en_US.UTF-8' # actually, defaults to database + # encoding + +# These settings are initialized by initdb -- they might be changed +lc_messages = 'en_US.UTF-8' # locale for system error message + # strings +lc_monetary = 'en_US.UTF-8' # locale for monetary formatting +lc_numeric = 'en_US.UTF-8' # locale for number formatting +lc_time = 'en_US.UTF-8' # locale for time formatting + +# - Other Defaults - + +#explain_pretty_print = on +#dynamic_library_path = '$libdir' +#local_preload_libraries = '' + + +#--------------------------------------------------------------------------- +# LOCK MANAGEMENT +#--------------------------------------------------------------------------- + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +# Note: each lock table slot uses ~270 bytes of shared memory, and there are +# max_locks_per_transaction * (max_connections + max_prepared_transactions) +# lock table slots. + + +#--------------------------------------------------------------------------- +# VERSION/PLATFORM COMPATIBILITY +#--------------------------------------------------------------------------- + +# - Previous Postgres Versions - + +#add_missing_from = off +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#default_with_oids = off +#escape_string_warning = on +#standard_conforming_strings = off +#regex_flavor = advanced # advanced, extended, or basic +#sql_inheritance = on + +# - Other Platforms & Clients - + +#transform_null_equals = off + + +#--------------------------------------------------------------------------- +# CUSTOMIZED OPTIONS +#--------------------------------------------------------------------------- + +#custom_variable_classes = '' # list of custom variable class names diff --git a/rpms/awips2.core/Installer.database-standalone-configuration/component.spec b/rpms/awips2.core/Installer.database-standalone-configuration/component.spec new file mode 100644 index 0000000000..454f92369c --- /dev/null +++ b/rpms/awips2.core/Installer.database-standalone-configuration/component.spec @@ -0,0 +1,53 @@ +# +# AWIPS II Database Standalone Configuration Spec File +# +Name: awips2-database-standalone-configuration +Summary: AWIPS II Database Standalone Configuration +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-postgresql +provides: awips2-database-standalone-configuration +provides: awips2-database-configuration + +%description +AWIPS II Database Server Configuration - contains the AWIPS II server +configuration files optimized for a standalone environment. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/data + +%build + +%install +PROJECT_DIR="Installer.database-standalone-configuration" +CONFIGURATION_DIR="Installer.rpm/awips2.core/${PROJECT_DIR}/configuration" +CONF_FILE="postgresql.conf" + +cp ${WORKSPACE_DIR}/${CONFIGURATION_DIR}/${CONF_FILE} \ + ${RPM_BUILD_ROOT}/awips2/data + +%pre +# Remove any existing postgresql.conf files +if [ -f /awips2/data/postgresql.conf ]; then + rm -f /awips2/data/postgresql.conf +fi + +%files +%attr(644,awips,fxalpha) /awips2/data/postgresql.conf \ No newline at end of file diff --git a/rpms/awips2.core/Installer.database-standalone-configuration/configuration/postgresql.conf b/rpms/awips2.core/Installer.database-standalone-configuration/configuration/postgresql.conf new file mode 100644 index 0000000000..42b6429cdc --- /dev/null +++ b/rpms/awips2.core/Installer.database-standalone-configuration/configuration/postgresql.conf @@ -0,0 +1,471 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +# name = value +# +# (The '=' is optional.) White space may be used. Comments are introduced +# with '#' anywhere on a line. The complete list of option names and +# allowed values can be found in the PostgreSQL documentation. The +# commented-out settings shown in this file represent the default values. +# +# Please note that re-commenting a setting is NOT sufficient to revert it +# to the default value, unless you restart the server. +# +# Any option can also be given as a command line switch to the server, +# e.g., 'postgres -c log_connections=on'. Some options can be changed at +# run-time with the 'SET' SQL command. +# +# This file is read on server startup and when the server receives a +# SIGHUP. If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, or use "pg_ctl reload". Some +# settings, which are marked below, require a server shutdown and restart +# to take effect. +# +# Memory units: kB = kilobytes MB = megabytes GB = gigabytes +# Time units: ms = milliseconds s = seconds min = minutes h = hours d = days + + +#--------------------------------------------------------------------------- +# FILE LOCATIONS +#--------------------------------------------------------------------------- + +# The default values of these variables are driven from the -D command line +# switch or PGDATA environment variable, represented here as ConfigDir. + +#data_directory = 'ConfigDir' # use data in another directory + # (change requires restart) +#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file + # (change requires restart) +#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file + # (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +#external_pid_file = '(none)' # write an extra PID file + # (change requires restart) + + +#--------------------------------------------------------------------------- +# CONNECTIONS AND AUTHENTICATION +#--------------------------------------------------------------------------- + +# - Connection Settings - + +listen_addresses = '*' # what IP address(es) to listen on; + # comma-separated list of addresses; + # defaults to 'localhost', '*' = all + # (change requires restart) +#port = 5432 # (change requires restart) +max_connections = 300 # (change requires restart) +# Note: increasing max_connections costs ~400 bytes of shared memory per +# connection slot, plus lock space (see max_locks_per_transaction). You +# might also need to raise shared_buffers to support more connections. +#superuser_reserved_connections = 3 # (change requires restart) +#unix_socket_directory = '' # (change requires restart) +#unix_socket_group = '' # (change requires restart) +#unix_socket_permissions = 0777 # octal + # (change requires restart) +#bonjour_name = '' # defaults to the computer name + # (change requires restart) + +# - Security & Authentication - + +#authentication_timeout = 1min # 1s-600s +#ssl = off # (change requires restart) +#password_encryption = on +#db_user_namespace = off + +# Kerberos +#krb_server_keyfile = '' # (change requires restart) +#krb_srvname = 'postgres' # (change requires restart) +#krb_server_hostname = '' # empty string matches any keytab entry + # (change requires restart) +#krb_caseins_users = off # (change requires restart) + +# - TCP Keepalives - +# see 'man 7 tcp' for details + +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; + # 0 selects the system default +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; + # 0 selects the system default +#tcp_keepalives_count = 0 # TCP_KEEPCNT; + # 0 selects the system default + + +#--------------------------------------------------------------------------- +# RESOURCE USAGE (except WAL) +#--------------------------------------------------------------------------- + +# - Memory - + +shared_buffers = 128MB # min 128kB or max_connections*16kB + # (change requires restart) +temp_buffers = 16MB # min 800kB +#max_prepared_transactions = 5 # can be 0 or more + # (change requires restart) +# Note: increasing max_prepared_transactions costs ~600 bytes of shared memory +# per transaction slot, plus lock space (see max_locks_per_transaction). +work_mem = 8MB # min 64kB +maintenance_work_mem = 32MB # min 1MB +#max_stack_depth = 2MB # min 100kB + +# - Free Space Map - + +max_fsm_pages = 153600 # min max_fsm_relations*16, 6 bytes each + # (change requires restart) +#max_fsm_relations = 1000 # min 100, ~70 bytes each + # (change requires restart) + +# - Kernel Resource Usage - + +#max_files_per_process = 1000 # min 25 + # (change requires restart) +#shared_preload_libraries = '' # (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0 # 0-1000 milliseconds +#vacuum_cost_page_hit = 1 # 0-10000 credits +#vacuum_cost_page_miss = 10 # 0-10000 credits +#vacuum_cost_page_dirty = 20 # 0-10000 credits +#vacuum_cost_limit = 200 # 0-10000 credits + +# - Background writer - + +#bgwriter_delay = 200ms # 10-10000ms between rounds +#bgwriter_lru_percent = 1.0 # 0-100% of LRU buffers scanned/round +#bgwriter_lru_maxpages = 5 # 0-1000 buffers max written/round +#bgwriter_all_percent = 0.333 # 0-100% of all buffers scanned/round +#bgwriter_all_maxpages = 5 # 0-1000 buffers max written/round + + +#--------------------------------------------------------------------------- +# WRITE AHEAD LOG +#--------------------------------------------------------------------------- + +# - Settings - + +fsync = off # turns forced synchronization on or off +#wal_sync_method = fsync # the default is the first option + # supported by the operating system: + # open_datasync + # fdatasync + # fsync + # fsync_writethrough + # open_sync +#full_page_writes = on # recover from partial page writes +#wal_buffers = 64kB # min 32kB + # (change requires restart) +commit_delay = 50000 # range 0-100000, in microseconds +commit_siblings = 5 # range 1-1000 + +# - Checkpoints - + +checkpoint_segments = 10 # in logfile segments, min 1, 16MB each +#checkpoint_timeout = 5min # range 30s-1h +#checkpoint_warning = 30s # 0 is off + +# - Archiving - + +#archive_command = '' # command to use to archive a logfile segment +#archive_timeout = 0 # force a logfile segment switch after this + # many seconds; 0 is off + + +#--------------------------------------------------------------------------- +# QUERY TUNING +#--------------------------------------------------------------------------- + +# - Planner Method Configuration - + +#enable_bitmapscan = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_indexscan = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0 # measured on an arbitrary scale +#random_page_cost = 4.0 # same scale as above +#cpu_tuple_cost = 0.01 # same scale as above +#cpu_index_tuple_cost = 0.005 # same scale as above +#cpu_operator_cost = 0.0025 # same scale as above +effective_cache_size = 512MB + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5 # range 1-10 +#geqo_pool_size = 0 # selects default based on effort +#geqo_generations = 0 # selects default based on effort +#geqo_selection_bias = 2.0 # range 1.5-2.0 + +# - Other Planner Options - + +#default_statistics_target = 10 # range 1-1000 +#constraint_exclusion = off +#from_collapse_limit = 8 +#join_collapse_limit = 8 # 1 disables collapsing of explicit + # JOINs + + +#--------------------------------------------------------------------------- +# ERROR REPORTING AND LOGGING +#--------------------------------------------------------------------------- + +# - Where to Log - + +#log_destination = 'stderr' # Valid values are combinations of + # stderr, syslog and eventlog, + # depending on platform. + +# This is used when logging to stderr: +logging_collector = on # Enable capturing of stderr into log + # files + # (change requires restart) + +# These are only used if redirect_stderr is on: +log_directory = 'pg_log' # Directory where log files are written + # Can be absolute or relative to PGDATA +#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # Log file name pattern. + # Can include strftime() escapes +log_truncate_on_rotation = on # If on, any existing log file of the same + # name as the new log file will be + # truncated rather than appended to. But + # such truncation only occurs on + # time-driven rotation, not on restarts + # or size-driven rotation. Default is + # off, meaning append to existing files + # in all cases. +log_rotation_age = 1d # Automatic rotation of logfiles will + # happen after that time. 0 to + # disable. +log_rotation_size = 0 # Automatic rotation of logfiles will + # happen after that much log + # output. 0 to disable. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' + + +# - When to Log - + +#client_min_messages = notice # Values, in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error + +#log_min_messages = notice # Values, in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic + +#log_error_verbosity = default # terse, default, or verbose messages + +log_min_error_statement = log # Values in order of increasing severity: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic (effectively off) + +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements + # and their durations. + +#silent_mode = off # DO NOT USE without syslog or + # redirect_stderr + # (change requires restart) + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = off +#log_connections = off +#log_disconnections = off +#log_duration = off +log_line_prefix='%t %x %d : %h : ' + # Special values: + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %p = PID + # %t = timestamp (no milliseconds) + # %m = timestamp with milliseconds + # %i = command tag + # %c = session id + # %l = session line number + # %s = session start timestamp + # %x = transaction id + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_statement = 'none' # none, ddl, mod, all +#log_hostname = off + + +#--------------------------------------------------------------------------- +# RUNTIME STATISTICS +#--------------------------------------------------------------------------- + +# - Query/Index Statistics Collector - + +#stats_command_string = on +#update_process_title = on + +#stats_block_level = off +track_counts = on +#stats_reset_on_server_start = off # (change requires restart) + + +# - Statistics Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#--------------------------------------------------------------------------- +# AUTOVACUUM PARAMETERS +#--------------------------------------------------------------------------- + +autovacuum = on # enable autovacuum subprocess? + # 'on' requires stats_start_collector + # and stats_row_level to also be on +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 500 # min # of tuple updates before + # vacuum +#autovacuum_analyze_threshold = 250 # min # of tuple updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of rel size before + # vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of rel size before + # analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = -1 # default vacuum cost delay for + # autovacuum, -1 means use + # vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#--------------------------------------------------------------------------- +# CLIENT CONNECTION DEFAULTS +#--------------------------------------------------------------------------- + +# - Statement Behavior - + +#search_path = '"$user",public' # schema names +#default_tablespace = '' # a tablespace name, '' uses + # the default +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#statement_timeout = 0 # 0 is disabled +#vacuum_freeze_min_age = 100000000 + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +timezone = GMT # actually, defaults to TZ + # environment setting +#timezone_abbreviations = 'Default' # select the set of available timezone + # abbreviations. Currently, there are + # Default + # Australia + # India + # However you can also create your own + # file in share/timezonesets/. +#extra_float_digits = 0 # min -15, max 2 +#client_encoding = 'en_US.UTF-8' # actually, defaults to database + # encoding + +# These settings are initialized by initdb -- they might be changed +lc_messages = 'en_US.UTF-8' # locale for system error message + # strings +lc_monetary = 'en_US.UTF-8' # locale for monetary formatting +lc_numeric = 'en_US.UTF-8' # locale for number formatting +lc_time = 'en_US.UTF-8' # locale for time formatting + +# - Other Defaults - + +#explain_pretty_print = on +#dynamic_library_path = '$libdir' +#local_preload_libraries = '' + + +#--------------------------------------------------------------------------- +# LOCK MANAGEMENT +#--------------------------------------------------------------------------- + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +# Note: each lock table slot uses ~270 bytes of shared memory, and there are +# max_locks_per_transaction * (max_connections + max_prepared_transactions) +# lock table slots. + + +#--------------------------------------------------------------------------- +# VERSION/PLATFORM COMPATIBILITY +#--------------------------------------------------------------------------- + +# - Previous Postgres Versions - + +#add_missing_from = off +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#default_with_oids = off +#escape_string_warning = on +#standard_conforming_strings = off +#regex_flavor = advanced # advanced, extended, or basic +#sql_inheritance = on + +# - Other Platforms & Clients - + +#transform_null_equals = off + + +#--------------------------------------------------------------------------- +# CUSTOMIZED OPTIONS +#--------------------------------------------------------------------------- + +#custom_variable_classes = '' # list of custom variable class names diff --git a/rpms/awips2.core/Installer.database/component.spec b/rpms/awips2.core/Installer.database/component.spec new file mode 100644 index 0000000000..4cb37d6a30 --- /dev/null +++ b/rpms/awips2.core/Installer.database/component.spec @@ -0,0 +1,555 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-database +%define _component_project_dir awips2.core/Installer.database +%define _component_default_prefix /awips2/database +# +# AWIPS II Database Spec File +# + +Name: %{_component_name} +Summary: AWIPS II Database Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-database +provides: awips2-static-user +requires: awips2-postgresql +requires: awips2-psql +requires: awips2-database-configuration + +%description +AWIPS II Database Installation - Sets Up The Basic AWIPS II Database, Creating The +Required Tables And Schemas And Populating Static Tables As Needed. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/database + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +PATH_TO_DDL="build.edex/opt/db/ddl" + +# Create A Temporary Directory For The SQL Scripts That The Database +# RPM Will Need. +mkdir -p ${RPM_BUILD_ROOT}/awips2/database/sqlScripts +mkdir -p ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share +mkdir -p ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql + +CONFIG_FILE_TO_INCLUDE="pg_hba.conf" +EXPECTED_PATH_TO_CONFIG="${PATH_TO_DDL}/setup" +KNOWN_CONFIG_DESTINATION="awips2/database/sqlScripts/share/sql" +# Ensure That We Have Access To The Configuration Files Before Continuing. +if [ ! -f ${WORKSPACE_DIR}/${EXPECTED_PATH_TO_CONFIG}/${CONFIG_FILE_TO_INCLUDE} ]; then + echo "The ${CONFIG_FILE_TO_INCLUDE} PostgreSQL Configuration File Can Not Be Found." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +# Copy The Configuration File +cp -r ${WORKSPACE_DIR}/${EXPECTED_PATH_TO_CONFIG}/${CONFIG_FILE_TO_INCLUDE} \ + ${RPM_BUILD_ROOT}/${KNOWN_CONFIG_DESTINATION} + +# Copy The SQL Scripts That The Database RPM Will Need To The +# Temporary Directory. +DIRS_TO_COPY=('damcat' 'hmdb' 'migrated' 'setup' 'SHEF' 'vtec') +for dir in ${DIRS_TO_COPY[*]}; +do + cp -r ${WORKSPACE_DIR}/${PATH_TO_DDL}/${dir}/* \ + ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql +done + +# All Files To Exclude Are In share/sql/setup +FILES_TO_EXCLUDE=( 'lwpostgis.sql' 'spatial_ref_sys.sql' 'uninstalldb.sh' \ + 'setup.sh' 'setup_developer.sh' 'setup_server.sh' 'postgresql.conf' ) +PATH_TO_EXCLUDE_FILES=${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql +for file in ${FILES_TO_EXCLUDE[*]}; +do + if [ -f ${PATH_TO_EXCLUDE_FILES}/${file} ]; then + rm -f ${PATH_TO_EXCLUDE_FILES}/${file} + fi +done + +# Copy Two Other Files To The Temporary Share Directory. +cp -r ${WORKSPACE_DIR}/${PATH_TO_DDL}/setup/lwpostgis.sql \ + ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share +cp -r ${WORKSPACE_DIR}/${PATH_TO_DDL}/setup/spatial_ref_sys.sql \ + ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share + +# Create our installation log file. +touch ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/sql_install.log + +%install + +%pre +# Verify that one of the official AWIPS II PostgreSQL configuration files exist. +if [ ! -f /awips2/data/postgresql.conf ]; then + echo "ERROR: /awips2/data/postgresql.conf does not exist. However, " + echo " the AWIPS II PostgreSQL Configuration RPM is installed. " + echo " If you recently uninstalled awips2-database and purged " + echo " the /awips2/data directory, you will need to re-install " + echo " the AWIPS II PostgreSQL configuration rpm so that the " + echo " postgresql.conf file will be restored." + exit 1 +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Database Installation...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +POSTGRESQL_INSTALL="/awips2/postgresql" +PSQL_INSTALL="/awips2/psql" +AWIPS2_DATA_DIRECTORY="/awips2/data" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" +echo -e "\e[1;34m PostgreSQL Install Root = ${POSTGRESQL_INSTALL}\e[m" +echo -e "\e[1;34m PSQL Install Root = ${PSQL_INSTALL}\e[m" +echo -e "\e[1;34m AWIPS II Data Directory = ${AWIPS2_DATA_DIRECTORY}\e[m" + +%post +# Get Important Directories Again. Even Exporting Them The First Time Still +# Will Not Make Them Available. +POSTGRESQL_INSTALL="/awips2/postgresql" +PSQL_INSTALL="/awips2/psql" +AWIPS2_DATA_DIRECTORY="/awips2/data" + +SHARE_DIR=${RPM_INSTALL_PREFIX}/sqlScripts/share +SQL_SHARE_DIR=${SHARE_DIR}/sql +if [ "${1}" = "2" ]; then + exit 0 +fi + +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II Database Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m Check the installation log: /awips2/database/sqlScripts/share/sql/sql_install.log\e[m" + echo "" + if [ -f /awips2/database/sqlScripts/share/sql/sql_install.log ]; then + tail -n 6 /awips2/database/sqlScripts/share/sql/sql_install.log + fi + + exit 1 +} +echo "--------------------------------------------------------------------------------" +echo "\| Preparing the SQL Scripts..." +echo "--------------------------------------------------------------------------------" + +AWIPS_DEFAULT_OWNER="awips" +AWIPS_DEFAULT_USER="awips" +AWIPS_DEFAULT_GROUP="fxalpha" +AWIPS_DEFAULT_PORT="5432" + +# This Is The Log File That We Will Use To Log All SQL Interactions. +SQL_LOG=${SQL_SHARE_DIR}/sql_install.log + +# SQL Data Directories +METADATA=${AWIPS2_DATA_DIRECTORY}/metadata +IFHS=${AWIPS2_DATA_DIRECTORY}/pgdata_ihfs +MAPS=${AWIPS2_DATA_DIRECTORY}/maps +DAMCAT=${AWIPS2_DATA_DIRECTORY}/damcat +HMDB=${AWIPS2_DATA_DIRECTORY}/hmdb + +# Add The PostgreSQL Libraries And The PSQL Libraries To LD_LIBRARY_PATH. +export LD_LIBRARY_PATH=${POSTGRESQL_INSTALL}/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=${PSQL_INSTALL}/lib:$LD_LIBRARY_PATH + +function is_postgresql_running() +{ + NUM_PGSQL_COUNT=`/bin/netstat -l | /bin/grep -c "PGSQL.${AWIPS_DEFAULT_PORT}"` + if [ ${NUM_PGSQL_COUNT} -gt 0 ]; then + echo "--------------------------------------------------------------------------------" + echo "\| Warning - PostgreSQL Is Already Running On Port ${AWIPS_DEFAULT_PORT}." + echo "--------------------------------------------------------------------------------" + printFailureMessage + fi + + echo "--------------------------------------------------------------------------------" + echo "\| No Instances of PostgreSQL Were Found On Port ${AWIPS_DEFAULT_PORT}..." + echo "--------------------------------------------------------------------------------" +} + +function create_sql_element() +{ + # $1 == element + + mkdir -p ${1} + update_owner ${1} +} + +function update_owner() +{ + # $1 == element + chown ${AWIPS_DEFAULT_OWNER} ${1} + chgrp ${AWIPS_DEFAULT_GROUP} ${1} +} + +function init_db() +{ + # move postgresql.conf in /awips2/data to a temporary location. + if [ -f /awips2/data/postgresql.conf ]; then + mv /awips2/data/postgresql.conf /awips2/ + fi + + su ${AWIPS_DEFAULT_USER} -c \ + "${POSTGRESQL_INSTALL}/bin/initdb --auth=trust --locale=en_US.UTF-8 --pgdata=${AWIPS2_DATA_DIRECTORY} --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8" + RC=$? + + if [ -f /awips2/postgresql.conf ]; then + mv /awips2/postgresql.conf /awips2/data + fi + + return ${RC} +} + +function control_pg_ctl() +{ + # $1 == pg_ctl command + su ${AWIPS_DEFAULT_USER} -c \ + "${POSTGRESQL_INSTALL}/bin/pg_ctl ${1} -D ${AWIPS2_DATA_DIRECTORY} -o \"-p ${AWIPS_DEFAULT_PORT}\" -w" + +} + +function execute_initial_sql_script() +{ + # Make The Necessary Replacements In The Script. + perl -p -i -e "s/%{databaseUsername}/${AWIPS_DEFAULT_OWNER}/g" \ + ${1} + echo ${AWIPS2_DATA_DIRECTORY} | sed 's/\//\\\//g' > .awips2_escape.tmp + AWIPS2_DATA_DIRECTORY_ESCAPED=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + perl -p -i -e "s/%{database_files_home}/${AWIPS2_DATA_DIRECTORY_ESCAPED}/g" \ + ${1} + + # $1 == script to execute + su ${AWIPS_DEFAULT_USER} -c \ + "${PSQL_INSTALL}/bin/psql postgres -U ${AWIPS_DEFAULT_USER} -q -p ${AWIPS_DEFAULT_PORT} -f ${1}" \ + > ${SQL_LOG} 2>&1 +} + +function update_lwpostgis() +{ + echo ${POSTGRESQL_INSTALL} | sed 's/\//\\\//g' > .awips2_escape.tmp + POSTGRESQL_INSTALL_ESCAPED=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + perl -p -i -e "s/%{INSTALL_PATH}%/${POSTGRESQL_INSTALL_ESCAPED}/g" \ + ${SHARE_DIR}/lwpostgis.sql +} + +function update_createMapsDb() +{ + echo ${AWIPS2_DATA_DIRECTORY} | sed 's/\//\\\//g' > .awips2_escape.tmp + AWIPS2_DATA_DIRECTORY_ESCAPED=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + perl -p -i -e "s/%{database_files_home}%/${AWIPS2_DATA_DIRECTORY_ESCAPED}/g" \ + ${SQL_SHARE_DIR}/createMapsDb.sql +} + +function update_createDamcat() +{ + echo ${AWIPS2_DATA_DIRECTORY} | sed 's/\//\\\//g' > .awips2_escape.tmp + AWIPS2_DATA_DIRECTORY_ESCAPED=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + perl -p -i -e "s/%{database_files_home}%/${AWIPS2_DATA_DIRECTORY_ESCAPED}/g" \ + ${SQL_SHARE_DIR}/createDamcat.sql +} + +function update_createHMDB() +{ + echo ${AWIPS2_DATA_DIRECTORY} | sed 's/\//\\\//g' > .awips2_escape.tmp + AWIPS2_DATA_DIRECTORY_ESCAPED=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + perl -p -i -e "s/%{database_files_home}%/${AWIPS2_DATA_DIRECTORY_ESCAPED}/g" \ + ${SQL_SHARE_DIR}/createHMDB.sql +} + +function execute_psql_sql_script() +{ + # $1 == script to execute + # $2 == database + + su ${AWIPS_DEFAULT_USER} -c \ + "${PSQL_INSTALL}/bin/psql -d ${2} -U ${AWIPS_DEFAULT_USER} -q -p ${AWIPS_DEFAULT_PORT} -f ${1}" \ + >> ${SQL_LOG} 2>&1 +} + +function copy_addl_config() +{ + rm -f ${AWIPS2_DATA_DIRECTORY}/pg_hba.conf + cp ${SQL_SHARE_DIR}/pg_hba.conf ${AWIPS2_DATA_DIRECTORY}/pg_hba.conf + update_owner ${AWIPS2_DATA_DIRECTORY}/pg_hba.conf +} + +echo "--------------------------------------------------------------------------------" +echo "\| Determining If PostgreSQL Is Running..." +echo "--------------------------------------------------------------------------------" +is_postgresql_running +echo "" + +echo "--------------------------------------------------------------------------------" +echo "\| Initializing the Database and Starting the Service..." +echo "--------------------------------------------------------------------------------" +init_db +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| ERROR - INITDB HAS FAILED." + echo "--------------------------------------------------------------------------------" + printFailureMessage +fi +echo "--------------------------------------------------------------------------------" +echo "\| Copying Configuration Files and Setting Up SQL..." +echo "--------------------------------------------------------------------------------" + +echo "--------------------------------------------------------------------------------" +echo "\| Creating a Directory for the metadata Tablespace..." +echo "--------------------------------------------------------------------------------" +create_sql_element ${METADATA} +echo "--------------------------------------------------------------------------------" +echo "\| Creating a Directory for the ihfs Tablespace..." +echo "--------------------------------------------------------------------------------" +create_sql_element ${IFHS} +echo "--------------------------------------------------------------------------------" +echo "\| Creating a Directory for the damcat Tablespace..." +echo "--------------------------------------------------------------------------------" +create_sql_element ${DAMCAT} +echo "--------------------------------------------------------------------------------" +echo "\| Creating a Directory for the hmdb Tablespace..." +echo "--------------------------------------------------------------------------------" +create_sql_element ${HMDB} +echo "" +echo "--------------------------------------------------------------------------------" +echo "\| Starting PostgreSQL..." +echo "--------------------------------------------------------------------------------" +control_pg_ctl "start" +RC="$?" +# Ensure that the database started. +if [ ! "${RC}" = "0" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| ERROR - UNABLE TO START THE POSTGRESQL SERVER." + echo "--------------------------------------------------------------------------------" + printFailureMessage +fi +echo "" + +echo "--------------------------------------------------------------------------------" +echo "\| Run the Initial SQL Script..." +echo "--------------------------------------------------------------------------------" +execute_initial_sql_script ${SQL_SHARE_DIR}/initial_setup_server.sql + +update_lwpostgis +echo "--------------------------------------------------------------------------------" +echo "\| Spatially Enabling the metadata Database..." +echo "--------------------------------------------------------------------------------" +execute_psql_sql_script ${SHARE_DIR}/lwpostgis.sql metadata +execute_psql_sql_script ${SHARE_DIR}/spatial_ref_sys.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/permissions.sql metadata +echo "--------------------------------------------------------------------------------" +echo "\| Creating station Table..." +echo "--------------------------------------------------------------------------------" +execute_psql_sql_script ${SQL_SHARE_DIR}/create_subscription_tables.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/fxatext.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/afoslookup.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/bit_table.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/collective.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/national_category.sql metadata + +echo "--------------------------------------------------------------------------------" +echo "\| Creating shef Tables..." +echo "--------------------------------------------------------------------------------" +execute_psql_sql_script ${SQL_SHARE_DIR}/hd_ob83oax.sql metadata + +update_createDamcat +echo "--------------------------------------------------------------------------------" +echo "\| Creating damcat Tables..." +echo "--------------------------------------------------------------------------------" +execute_psql_sql_script ${SQL_SHARE_DIR}/createDamcat.sql postgres +execute_psql_sql_script ${SQL_SHARE_DIR}/dcob7oax.sql dc_ob7oax +execute_psql_sql_script ${SQL_SHARE_DIR}/populateDamcatDatabase.sql dc_ob7oax + +update_createHMDB +su ${AWIPS_DEFAULT_USER} -c \ + "${SQL_SHARE_DIR}/createHMDB.sh ${PSQL_INSTALL} ${AWIPS_DEFAULT_PORT} ${AWIPS_DEFAULT_USER} ${SQL_SHARE_DIR} ${SQL_LOG}" +echo "--------------------------------------------------------------------------------" +echo "\| Creating VTEC Tables..." +echo "--------------------------------------------------------------------------------" +execute_psql_sql_script ${SQL_SHARE_DIR}/vtec_initial_setup.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/create_p_vtec_tables.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/populate_p_vtec_tables.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/populate_vtec_events_table.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/populate_vtec_afos_product_table.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/populate_event_product_index.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/populate_vtec_event_tracking_table.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/create_h_vtec_tables.sql metadata +execute_psql_sql_script ${SQL_SHARE_DIR}/populate_h_vtec_tables.sql metadata + +echo "" +echo "--------------------------------------------------------------------------------" +echo "\| Stopping PostgreSQL..." +echo "--------------------------------------------------------------------------------" +control_pg_ctl "stop" + +echo "" +echo "--------------------------------------------------------------------------------" +echo "\| Copy Additional Configuration Files..." +echo "--------------------------------------------------------------------------------" +copy_addl_config + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Database Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi + +# Ensure that our data directory exists. +if [ ! -d /awips2/data ]; then + exit 0 +fi + +# We Need PostgreSQL + +POSTGRESQL_INSTALL="/awips2/postgresql" +PSQL_INSTALL="/awips2/psql" + +POSTMASTER="${POSTGRESQL_INSTALL}/bin/postmaster" +if [ ! -f ${POSTMASTER} ]; then + exit 0 +fi +PG_CTL="${POSTGRESQL_INSTALL}/bin/pg_ctl" +if [ ! -f ${PG_CTL} ]; then + exit 0 +fi +DROPDB="${POSTGRESQL_INSTALL}/bin/dropdb" +if [ ! -f ${DROPDB} ]; then + exit 0 +fi +PG_RESTORE="${POSTGRESQL_INSTALL}/bin/pg_restore" +if [ ! -f ${PG_RESTORE} ]; then + exit 0 +fi +PSQL="${PSQL_INSTALL}/bin/psql" +if [ ! -f ${PSQL} ]; then + exit 0 +fi +# Determine who owns the PostgreSQL Installation +DB_OWNER=`ls -l /awips2/ | grep -w 'data' | awk '{print $3}'` +# Our log file +SQL_LOG="${RPM_INSTALL_PREFIX}/static/database.maps/maps.log" + +# Determine if PostgreSQL is running. +I_STARTED_POSTGRESQL="N" +su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data > /dev/null 2>&1" +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| Starting PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${POSTMASTER} -D /awips2/data > /dev/null 2>&1 &" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "Failed To Start The PostgreSQL Server." + exit 1 + fi + # Give PostgreSQL Time To Start. + sleep 10 + I_STARTED_POSTGRESQL="Y" + echo "" +fi + +# Drop Databases The Official PostgreSQL Way. The User Is Responsible +# For Cleaning Up The Data Directory That Was Given To: 'initdb'. +DBS_TO_DROP=( 'dc_ob7oax' 'fxatext' 'hd_ob83oax' 'hmdb' 'metadata' ) +TBS_TO_DROP=( 'damcat' 'hmdb' 'metadata' 'pgdata_ihfs' ) + +# Attempt To Drop The Databases In Our List ... +for db in ${DBS_TO_DROP[*]}; +do + echo "Dropping Database ... ${db}" + su ${DB_OWNER} -c \ + "${DROPDB} -U awips ${db}" +done + +echo "" +# Attempt To Drop The Tablespaces In Our List ... +for tb in ${TBS_TO_DROP[*]}; +do + echo "Dropping Tablespace ... ${tb}" + TB_DIR=`${PSQL} -U awips -d postgres -c "\db" | grep ${tb} | awk '{print $5}'` + su ${DB_OWNER} -c \ + "${PSQL} -U awips -d postgres -c \"DROP TABLESPACE ${tb}\"" + + # remove the tablespace directory. + echo "Attempting To Remove Directory: ${TB_DIR}" + if [ -d "${TB_DIR}" ]; then + su ${DB_OWNER} -c "rmdir ${TB_DIR}" + fi +done + +# Attempt To Stop PostgreSQL (If We Started It) +if [ "${I_STARTED_POSTGRESQL}" = "Y" ]; then + echo "" + su ${DB_OWNER} -c \ + "${PG_CTL} stop -D /awips2/data" +fi + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Database Installation Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/database +%dir /awips2/database/sqlScripts +%dir /awips2/database/sqlScripts/share +/awips2/database/sqlScripts/share/sql/sql_install.log +/awips2/database/sqlScripts/share/sql/pg_hba.conf + +%defattr(755,awips,fxalpha,755) +/awips2/database/sqlScripts/share/*.sql +%dir /awips2/database/sqlScripts/share/sql +/awips2/database/sqlScripts/share/sql/*.sql +/awips2/database/sqlScripts/share/sql/*.sh \ No newline at end of file diff --git a/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_32211_acars1.sh b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_32211_acars1.sh new file mode 100644 index 0000000000..42a46a656f --- /dev/null +++ b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_32211_acars1.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="updateA2_32211_acars1" +export DELTA_DESC="drop acarssoundinglayer and acarssounding tables due to schema change" + +export DELTA_RUN_USER="awips" + +function runUpdate() +{ + local PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-psql` + + local PSQL="${PSQL_INSTALL}/bin/psql -U awips -d metadata -c" + + + # Drop acarssoundinglayer + ${PSQL} "drop table acarssoundinglayer;" > /dev/null 2>&1 + + # Drop acarssounding + ${PSQL} "drop table acarssounding;" > /dev/null 2>&1 + + # Update plugin_info + ${PSQL} "update plugin_info set initialized=false where name='acarssounding';" > /dev/null 2>&1 + + + return 0 +} diff --git a/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_32811_gfe.sh b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_32811_gfe.sh new file mode 100644 index 0000000000..21602a7c3f --- /dev/null +++ b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_32811_gfe.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="update_32811_gfe" +export DELTA_DESC="purge existing gfe hdf5 files; uninitialize gfe in plugin_info." + +export DELTA_RUN_USER="awips" + +function runUpdate() +{ + local PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-psql` + + local PSQL="${PSQL_INSTALL}/bin/psql -U awips -d metadata -c" + local HDF5_DIR="/awips2/edex/data/hdf5/gfe" + + # remove existing gfe hdf5 files + cd ${HDF5_DIR} + local COUNT=`ls -1 | wc -l` + if [ "${COUNT}" -gt 0 ]; then + for dir in `ls -1 ${HDF5_DIR}`; + do + if [ ! "${dir}" = "climo" ] && + [ ! "${dir}" = "hlsTopo" ]; then + + if [ -d ${HDF5_DIR}/${dir} ]; then + rm -rf ${HDF5_DIR}/${dir}/* + fi + + fi + done + fi + + # re-initialize plugin_info + ${PSQL} "UPDATE plugin_info SET initialized='False' WHERE name='gfe';" > /dev/null 2>&1 + + return 0 +} diff --git a/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR2469_purge.sh b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR2469_purge.sh new file mode 100644 index 0000000000..9772e59675 --- /dev/null +++ b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR2469_purge.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="updateA2_DR2469_purge" +export DELTA_DESC="remove unused columns in plugin_info and purge satellite, sfcobs, bufrsigwx, and bufrmos tables" + +export DELTA_RUN_USER="awips" + +function runUpdate() +{ + local HDF5_DIR="/awips2/edex/data/hdf5" + + # find psql. + local PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-psql` + + local PSQL="${PSQL_INSTALL}/bin/psql -U awips -d metadata -c" + + ################################################################ + # Remove the unused columns from the plugin_info table + ################################################################ + ${PSQL} "ALTER TABLE awips.plugin_info DROP COLUMN version;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + ${PSQL} "ALTER TABLE awips.plugin_info DROP COLUMN retentiontime;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + + ################################################################ + # Delete all satellite data due to HDF5 path changes + ################################################################ + ${PSQL} "DELETE FROM awips.satellite;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + rm -rf ${HDF5_DIR}/satellite + + ################################################################ + # Delete all sfcobs data due to HDF5 path changes + ################################################################ + ${PSQL} "DELETE FROM awips.sfcobs;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + rm -rf ${HDF5_DIR}/sfcobs + + ################################################################ + # Delete all bufrsigwx data due to HDF5 path changes + ################################################################ + ${PSQL} "DELETE FROM awips.bufrsigwx;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + rm -rf ${HDF5_DIR}/bufrsigwx + + ################################################################ + # Delete all bufrmos data due to HDF5 path changes + ################################################################ + ${PSQL} "DELETE FROM awips.bufrmos;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + rm -rf ${HDF5_DIR}/bufrmos + + ################################################################ + # Rename grib files + ################################################################ + cd ${HDF5_DIR}/grib + find . -name "*.h5" -exec bash -c "mv \$1 \`echo \$1 | sed s/00-FH-/-FH-/\`" -- {} \; + + return 0 +} diff --git a/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR7018_ActiveTable1.sh b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR7018_ActiveTable1.sh new file mode 100644 index 0000000000..7210222a43 --- /dev/null +++ b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR7018_ActiveTable1.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="updateA2_DR7018_ActiveTable1" +export DELTA_DESC="Expand ActiveTableRecord.overviewtext hibernate field." + +export DELTA_RUN_USER="awips" + +function runUpdate() +{ + local PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-psql` + + local PSQL="${PSQL_INSTALL}/bin/psql -U awips -d metadata -c" > /dev/null 2>&1 + + ${PSQL} "ALTER TABLE activetable ALTER COLUMN overviewtext TYPE text;" + + return 0 +} diff --git a/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR7018_Warning1.sh b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR7018_Warning1.sh new file mode 100644 index 0000000000..4e3f4928a8 --- /dev/null +++ b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_DR7018_Warning1.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="updateA2_DR7018_Warning1" +export DELTA_DESC="Expand WarningRecord.overviewtext hibernate field." + +export DELTA_RUN_USER="awips" + +function runUpdate() +{ + local PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-psql` + + local PSQL="${PSQL_INSTALL}/bin/psql -U awips -d metadata -c" > /dev/null 2>&1 + + ${PSQL} "ALTER TABLE warning ALTER COLUMN overviewtext TYPE text;" + + return 0 +} diff --git a/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_pilDelta_purge.sh b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_pilDelta_purge.sh new file mode 100644 index 0000000000..f2ce8911b6 --- /dev/null +++ b/rpms/awips2.core/Installer.database/delta/B11.4.0/updateA2_pilDelta_purge.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="updateA2_pilDelta_purge" +export DELTA_DESC="remove old-style subscription tables" + +export DELTA_RUN_USER="awips" + +function runUpdate() +{ + #find pgsql + local PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-psql` + + local PSQL="${PSQL_INSTALL}/bin/psql -U awips -d metadata -c" + + ################################################################ + # Remove the static table. + ################################################################ + ${PSQL} "DROP TABLE IF EXISTS subscription.static;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + ################################################################ + # Remove the replacements table. + ################################################################ + ${PSQL} "DROP TABLE IF EXISTS subscription.replacements;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + ################################################################ + # Remove the subscriptions table. + ################################################################ + ${PSQL} "DROP TABLE IF EXISTS subscription.subscriptions;" + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + + return 0 +} diff --git a/rpms/awips2.core/Installer.gfe.climo/component.spec b/rpms/awips2.core/Installer.gfe.climo/component.spec new file mode 100644 index 0000000000..da67b13773 --- /dev/null +++ b/rpms/awips2.core/Installer.gfe.climo/component.spec @@ -0,0 +1,128 @@ +# +# AWIPS II gfe.climo Spec File +# +Name: awips2-data.hdf5-gfe.climo +Summary: AWIPS II gfe.climo Distribution +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2/edex +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-data.hdf5-gfe.climo + +%description +AWIPS II gfe.climo Distribution - Contains the AWIP II gfe climo HDF Files. The +gfe climo Files Will Be Copied To The Specified Destination. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/hdf5/gfe/climo + +%build + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} + +# Determine which version of the climo we should use. +RPM_COMMON_DIR="${WORKSPACE_DIR}/Installer.rpm/common/static.versions" + +if [ ! -f ${RPM_COMMON_DIR}/LATEST.climo ]; then + file ${RPM_COMMON_DIR}/LATEST.climo + exit 1 +fi +VERSION_DIR=`cat ${RPM_COMMON_DIR}/LATEST.climo` + +GFE_CLIMO_SRC_DIR="${AWIPSCM_SHARE}/awips2-static/climo/${VERSION_DIR}" +if [ ! -d ${GFE_CLIMO_SRC_DIR} ]; then + file ${GFE_CLIMO_SRC_DIR} + exit 1 +fi + +cp -rv ${GFE_CLIMO_SRC_DIR}/${climoFile}/* \ + ${RPM_BUILD_ROOT}/awips2/edex/data/hdf5/gfe/climo +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +copyLegal "awips2/edex/data/hdf5/gfe/climo" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II gfe.climo Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" +echo -e "\e[1;34m Destination = ${RPM_INSTALL_PREFIX}/data/hdf5/gfe/climo\e[m" +echo "" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II gfe.climo Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II gfe.climo Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/edex +%dir /awips2/edex/data +%dir /awips2/edex/data/hdf5 +%dir /awips2/edex/data/hdf5/gfe +%dir /awips2/edex/data/hdf5/gfe/climo +/awips2/edex/data/hdf5/gfe/climo/* +%docdir /awips2/edex/data/hdf5/gfe/climo/licenses +%dir /awips2/edex/data/hdf5/gfe/climo/licenses +/awips2/edex/data/hdf5/gfe/climo/licenses/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.gfesuite-client/component.spec b/rpms/awips2.core/Installer.gfesuite-client/component.spec new file mode 100644 index 0000000000..3849fe4791 --- /dev/null +++ b/rpms/awips2.core/Installer.gfesuite-client/component.spec @@ -0,0 +1,77 @@ +# +# AWIPS II gfesuite client Spec File +# +Name: awips2-gfesuite-client +Summary: AWIPS II gfesuite client Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +BuildArch: noarch +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-gfesuite-client +requires: awips2-python +requires: awips2-cave + +%description +AWIPS II gfesuite-client Installation - Contains The AWIPS II gfesuite-client Component. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/GFESuite +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d + +%build +# Verify that awips2-ant is installed. +if [ ! -f /awips2/ant/bin/ant ]; then + echo "ERROR: Unable to find the awips2-ant executable." + exit 1 +fi + +%install +GFESUITE_PROJECT="com.raytheon.uf.tools.gfesuite" +GFESUITE_DEPLOY_SCRIPT="${WORKSPACE_DIR}/${GFESUITE_PROJECT}/deploy.xml" + +ANT_EXE="/awips2/ant/bin/ant" + +${ANT_EXE} -f ${GFESUITE_DEPLOY_SCRIPT} -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/GFESuite \ + -Dinstaller=true -Dclient.build=true +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: ant failed." + exit 1 +fi + +# Copy the profile.d scripts. +PROFILE_D_DIR="Installer.rpm/common/environment/awips2-gfesuite/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +%files +%defattr(644,root,root,-) +/etc/profile.d/* +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/GFESuite +/awips2/GFESuite/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/GFESuite/bin +/awips2/GFESuite/bin/* +%defattr(644,awips,fxalpha,755) +%dir /awips2/GFESuite/bin/src +/awips2/GFESuite/bin/src/* diff --git a/rpms/awips2.core/Installer.gfesuite-server/component.spec b/rpms/awips2.core/Installer.gfesuite-server/component.spec new file mode 100644 index 0000000000..4299cebd13 --- /dev/null +++ b/rpms/awips2.core/Installer.gfesuite-server/component.spec @@ -0,0 +1,81 @@ +# +# AWIPS II gfesuite server Spec File +# +Name: awips2-gfesuite-server +Summary: AWIPS II gfesuite server Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +BuildArch: noarch +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-gfesuite-server +requires: awips2-python +requires: awips2-edex-gfe + +%description +AWIPS II gfesuite-client Installation - Contains The AWIPS II gfesuite-server Component. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/GFESuite +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d + +%build +# Verify that awips2-ant is installed. +if [ ! -f /awips2/ant/bin/ant ]; then + echo "ERROR: Unable to find the awips2-ant executable." + exit 1 +fi + +%install +GFESUITE_PROJECT="com.raytheon.uf.tools.gfesuite" +GFESUITE_DEPLOY_SCRIPT="${WORKSPACE_DIR}/${GFESUITE_PROJECT}/deploy.xml" + +ANT_EXE="/awips2/ant/bin/ant" + +${ANT_EXE} -f ${GFESUITE_DEPLOY_SCRIPT} -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/GFESuite \ + -Dinstaller=true +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: ant failed." + exit 1 +fi + +# Copy the profile.d scripts. +PROFILE_D_DIR="Installer.rpm/common/environment/awips2-gfesuite/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +%files +%defattr(644,root,root,-) +/etc/profile.d/* +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/GFESuite +/awips2/GFESuite/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/GFESuite/bin +/awips2/GFESuite/bin/* +%defattr(644,awips,fxalpha,755) +%dir /awips2/GFESuite/bin/src +/awips2/GFESuite/bin/src/* +%defattr(755,awips,fxalpha,777) +%dir /awips2/GFESuite/ServiceBackup/scripts +/awips2/GFESuite/ServiceBackup/scripts/* +%config(noreplace) /awips2/GFESuite/ServiceBackup/configuration/svcbu.properties diff --git a/rpms/awips2.core/Installer.httpd-pypies/SOURCES/httpd-pypies.init b/rpms/awips2.core/Installer.httpd-pypies/SOURCES/httpd-pypies.init new file mode 100755 index 0000000000..335b86f3ab --- /dev/null +++ b/rpms/awips2.core/Installer.httpd-pypies/SOURCES/httpd-pypies.init @@ -0,0 +1,126 @@ +#!/bin/bash +# +# httpd Startup script for the Apache HTTP Server used by Pypies +# +# chkconfig: - 85 15 +# description: Apache is a World Wide Web server. It is used to serve \ +# HTML files and CGI. Pypies uses it to serve connections. +# processname: httpd +# config: /etc/httpd/conf/httpd.conf +# config: /etc/sysconfig/httpd +# pidfile: /var/run/httpd.pid + +# Source function library. +. /etc/rc.d/init.d/functions + +if [ -f /etc/sysconfig/httpd ]; then + . /etc/sysconfig/httpd +fi + +# Start httpd in the C locale by default. +HTTPD_LANG=${HTTPD_LANG-"C"} + +# This will prevent initlog from swallowing up a pass-phrase prompt if +# mod_ssl needs a pass-phrase from the user. +INITLOG_ARGS="" + +# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server +# with the thread-based "worker" MPM; BE WARNED that some modules may not +# work correctly with a thread-based MPM; notably PHP will refuse to start. + +# Path to the apachectl script, server binary, and short-form for messages. +apachectl=/awips2/httpd_pypies/usr/sbin/apachectl +httpd=${HTTPD-/awips2/httpd_pypies/usr/sbin/httpd} +prog=httpd +pidfile=${PIDFILE-/awips2/httpd_pypies/var/run/httpd.pid} +lockfile=${LOCKFILE-/awips2/httpd_pypies/var/lock/subsys/httpd} +RETVAL=0 + +# check for 1.3 configuration +check13 () { + CONFFILE=/awips2/httpd_pypies/etc/httpd/conf/httpd.conf + GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|" + GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|" + GONE="${GONE}AccessConfig|ResourceConfig)" + if LANG=C grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then + echo + echo 1>&2 " Apache 1.3 configuration directives found" + echo 1>&2 " please read @docdir@/migration.html" + failure "Apache 1.3 config directives test" + echo + exit 1 + fi +} + +# The semantics of these two functions differ from the way apachectl does +# things -- attempting to start while running is a failure, and shutdown +# when not running is also a failure. So we just do it the way init scripts +# are expected to behave here. +start() { + echo -n $"Starting $prog: " + check13 || exit 1 + LANG=$HTTPD_LANG daemon $httpd $OPTIONS + RETVAL=$? + echo + [ $RETVAL = 0 ] && touch ${lockfile} + return $RETVAL +} + +# When stopping httpd a delay of >10 second is required before SIGKILLing the +# httpd parent; this gives enough time for the httpd parent to SIGKILL any +# errant children. +stop() { + echo -n $"Stopping $prog: " + killproc -d 10 $httpd + RETVAL=$? + echo + [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} +} +reload() { + echo -n $"Reloading $prog: " + if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then + RETVAL=$? + echo $"not reloading due to configuration syntax error" + failure $"not reloading $httpd due to configuration syntax error" + else + killproc $httpd -HUP + RETVAL=$? + fi + echo +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $httpd + RETVAL=$? + ;; + restart) + stop + start + ;; + condrestart) + if [ -f ${pidfile} ] ; then + stop + start + fi + ;; + reload) + reload + ;; + graceful|help|configtest|fullstatus) + $apachectl $@ + RETVAL=$? + ;; + *) + echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" + exit 1 +esac + +exit $RETVAL diff --git a/rpms/awips2.core/Installer.httpd-pypies/SOURCES/httpd-pypies.logrotate b/rpms/awips2.core/Installer.httpd-pypies/SOURCES/httpd-pypies.logrotate new file mode 100644 index 0000000000..ab3f28b269 --- /dev/null +++ b/rpms/awips2.core/Installer.httpd-pypies/SOURCES/httpd-pypies.logrotate @@ -0,0 +1,8 @@ +/awips2/httpd_pypies/var/log/httpd/*log { + missingok + notifempty + sharedscripts + postrotate + /sbin/service httpd-pypies reload > /dev/null 2>/dev/null || true + endscript +} diff --git a/rpms/awips2.core/Installer.httpd-pypies/component.spec b/rpms/awips2.core/Installer.httpd-pypies/component.spec new file mode 100644 index 0000000000..02060085c5 --- /dev/null +++ b/rpms/awips2.core/Installer.httpd-pypies/component.spec @@ -0,0 +1,864 @@ +%define contentdir /var/www +%define suexec_caller apache +%define mmn 20051115 +%define vstring CentOS +%define distro CentOS + +Summary: Pypies Apache HTTP Server +Name: awips2-httpd-pypies +Version: 2.2.3 +# This Is Officially Release: 22%{?dist} +Release: 27%{?dist} +URL: http://httpd.apache.org/ +Prefix: /awips2/httpd_pypies +Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz +Source1: centos_index.html +Source3: httpd-pypies.logrotate +Source4: httpd-pypies.init +Source5: httpd.sysconf +Source8: centos_powered_by_rh.png +Source10: httpd.conf +Source11: ssl.conf +Source12: welcome.conf +Source13: manual.conf +Source14: proxy_ajp.conf +# Documentation +Source30: migration.xml +Source31: migration.css +Source32: html.xsl +Source33: README.confd +# build/scripts patches +Patch1: httpd-2.1.10-apctl.patch +Patch2: httpd-2.1.10-apxs.patch +Patch3: httpd-2.0.45-deplibs.patch +Patch4: httpd-2.1.10-disablemods.patch +Patch5: httpd-2.1.10-layout.patch +Patch6: httpd-2.2.2-ac260.patch +# Features/functional changes +Patch20: httpd-2.0.48-release.patch +Patch21: httpd-2.0.40-xfsz.patch +Patch22: httpd-2.1.10-pod.patch +Patch23: httpd-2.0.45-export.patch +Patch24: httpd-2.0.48-corelimit.patch +Patch25: httpd-2.0.54-selinux.patch +Patch26: httpd-2.2.3-proxysessid.patch +Patch27: httpd-2.2.3-proxypmatch.patch +Patch28: httpd-2.2.3-nbchunk.patch +# Bug fixes +Patch50: httpd-2.0.45-encode.patch +Patch54: httpd-2.2.0-authnoprov.patch +Patch55: httpd-2.2.3-proxyopt.patch +Patch56: httpd-2.2.3-proxyoride.patch +Patch57: httpd-2.0.52-logresline.patch +Patch58: httpd-2.2.3-ldappool.patch +Patch59: httpd-2.2.3-ssldynlock.patch +Patch60: httpd-2.0.52-escaperrs.patch +Patch61: httpd-2.2.3-eventdlock.patch +Patch62: httpd-2.2.3-hdrsedit.patch +Patch63: httpd-2.2.3-dummyreq.patch +# Security Fixes +Patch100: httpd-2.2.3-CVE-2006-5752.patch +Patch101: httpd-2.2.3-CVE-2007-1863.patch +Patch102: httpd-2.2.3-CVE-2007-3304.patch +Patch103: httpd-2.2.3-CVE-2007-3847.patch +Patch104: httpd-2.2.3-CVE-2007-5000.patch +Patch105: httpd-2.2.3-CVE-2007-4465.patch +Patch106: httpd-2.2.3-CVE-2007-6421.patch +Patch107: httpd-2.2.3-CVE-2007-6422.patch +Patch108: httpd-2.2.3-CVE-2007-6388.patch +Patch109: httpd-2.2.3-prftpcset.patch +Patch110: httpd-2.2.3-CVE-2007-3304-update.patch +Patch111: httpd-2.2.3-CVE-2008-2939.patch +# Rebases +Patch200: httpd-2.2.3-proxy229.patch +Patch201: httpd-2.2.3-cache229.patch +License: Apache Software License +Group: AWIPSII +BuildRoot: %{_tmppath}/%{name}-root +BuildRequires: autoconf, perl, pkgconfig, xmlto >= 0.0.11, findutils +BuildRequires: db4-devel, expat-devel, zlib-devel, libselinux-devel +BuildRequires: apr-devel >= 1.2.0, apr-util-devel >= 1.2.0, pcre-devel >= 5.0, +Requires: /etc/mime.types, gawk, /usr/share/magic.mime, /usr/bin/find +Requires: initscripts >= 8.36 +Obsoletes: httpd-suexec +Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv +Prereq: sh-utils, textutils, /usr/sbin/useradd +Provides: webserver +Provides: httpd-mmn = %{mmn} +Obsoletes: apache, secureweb, mod_dav, mod_gzip, stronghold-apache, stronghold-htdocs +Obsoletes: mod_put, mod_roaming, mod_jk +Conflicts: pcre < 4.0 + +%description +The Apache HTTP Server is a powerful, efficient, and extensible +web server. + +%package devel +Group: AWIPSII +Summary: Development tools for the Apache HTTP server. +Obsoletes: secureweb-devel, apache-devel, stronghold-apache-devel +Requires: apr-devel, apr-util-devel, pkgconfig +Requires: httpd = %{version}-%{release} + +%description devel +The httpd-devel package contains the APXS binary and other files +that you need to build Dynamic Shared Objects (DSOs) for the +Apache HTTP Server. + +If you are installing the Apache HTTP server and you want to be +able to compile or develop additional modules for Apache, you need +to install this package. + +%package manual +Group: AWIPSII +Summary: Documentation for the Apache HTTP server. +Requires: httpd = %{version}-%{release} +Obsoletes: secureweb-manual, apache-manual + +%description manual +The httpd-manual package contains the complete manual and +reference guide for the Apache HTTP server. The information can +also be found at http://httpd.apache.org/docs/2.2/. + +%package -n mod_ssl +Group: AWIPSII +Summary: SSL/TLS module for the Apache HTTP server +Epoch: 1 +BuildRequires: openssl-devel, distcache-devel +Requires(post): openssl >= 0.9.7f-4, /bin/cat +Requires: httpd = 0:%{version}-%{release}, httpd-mmn = %{mmn} +Obsoletes: stronghold-mod_ssl + +%description -n mod_ssl +The mod_ssl module provides strong cryptography for the Apache Web +server via the Secure Sockets Layer (SSL) and Transport Layer +Security (TLS) protocols. + +%prep +%setup -q -n httpd-2.2.3 +%patch1 -p1 -b .apctl +%patch2 -p1 -b .apxs +%patch3 -p1 -b .deplibs +%patch4 -p1 -b .disablemods +%patch5 -p1 -b .layout +%patch6 -p1 -b .ac260 + +%patch21 -p0 -b .xfsz +%patch22 -p1 -b .pod +%patch23 -p1 -b .export +%patch24 -p1 -b .corelimit +%patch25 -p1 -b .selinux +%patch26 -p1 -b .proxysessid +%patch27 -p1 -b .proxypmatch +%patch28 -p1 -b .nbchunk + +# no -b to prevent droplets in install root +%patch50 -p1 +%patch54 -p1 -b .authnoprov +%patch55 -p1 -b .proxyopt +%patch56 -p1 -b .proxyoride +%patch57 -p1 -b .logresline +%patch58 -p1 -b .ldappool +%patch59 -p1 -b .ssldynlock +%patch60 -p1 -b .escaperrs +%patch61 -p1 -b .eventdlock +%patch62 -p1 -b .hdrsedit +%patch63 -p1 -b .dummyreq + +%patch100 -p1 -b .cve5752 +%patch101 -p1 -b .cve1853 +%patch102 -p1 -b .cve3304 +%patch103 -p1 -b .cve3847 +%patch104 -p1 -b .cve5000 +%patch105 -p1 -b .cve4465 +%patch106 -p1 -b .cve6421 +%patch107 -p1 -b .cve6422 +%patch108 -p1 -b .cve6388 +%patch109 -p1 -b .prftpcset +%patch110 -p1 -b .cve3304-update +%patch111 -p1 -b .cve2939 + +# Rebases -- any changes to proxy/cache modules must come later: +%patch200 -p1 -b .proxy229 +%patch201 -p1 -b .cache229 + +# Patch in vendor/release string +sed "s/@VENDOR@/%{vstring}/;s/@RELEASE@/%{release}/" < %{PATCH20} | patch -p1 -b -z .release + +# Safety check: prevent build if defined MMN does not equal upstream MMN. +vmmn=`echo MODULE_MAGIC_NUMBER_MAJOR | cpp -include include/ap_mmn.h | sed -n '/^2/p'` +if test "x${vmmn}" != "x%{mmn}"; then + : Error: Upstream MMN is now ${vmmn}, packaged MMN is %{mmn}. + : Update the mmn macro and rebuild. + exit 1 +fi + +: Building for '%{distro}' with MMN %{mmn} and vendor string '%{vstring}' + +%build +# forcibly prevent use of bundled apr, apr-util, pcre +rm -rf srclib/{apr,apr-util,pcre} + +# regenerate configure scripts +autoheader && autoconf || exit 1 + +# Limit size of CHANGES to recent history +echo '1,/Changes with Apache MPM/wq' | ed CHANGES + +# Before configure; fix location of build dir in generated apxs +%{__perl} -pi -e "s:\@exp_installbuilddir\@:/awips2/httpd_pypies%{_libdir}/httpd/build:g" \ + support/apxs.in +# update location of migration guide in apachectl +%{__perl} -pi -e "s:\@docdir\@:%{_docdir}/%{name}-%{version}:g" \ + support/apachectl.in + +# Build the migration guide +sed 's/@DISTRO@/%{distro}/' < $RPM_SOURCE_DIR/migration.xml > migration.xml +xmlto -x $RPM_SOURCE_DIR/html.xsl html-nochunks migration.xml +cp $RPM_SOURCE_DIR/migration.css . # make %%doc happy + +CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +SH_LDFLAGS="-Wl,-z,relro" +export CFLAGS SH_LDFLAGS + +# Hard-code path to links to avoid unnecessary builddep +export LYNX_PATH=/usr/bin/links + +function mpmbuild() +{ +mpm=$1; shift +mkdir $mpm; pushd $mpm +../configure \ + --prefix=/awips2/httpd_pypies%{_sysconfdir}/httpd \ + --exec-prefix=/awips2/httpd_pypies%{_prefix} \ + --bindir=/awips2/httpd_pypies%{_bindir} \ + --sbindir=/awips2/httpd_pypies%{_sbindir} \ + --mandir=/awips2/httpd_pypies/%{_mandir} \ + --libdir=/awips2/httpd_pypies%{_libdir} \ + --sysconfdir=/awips2/httpd_pypies%{_sysconfdir}/httpd/conf \ + --includedir=/awips2/httpd_pypies%{_includedir}/httpd \ + --libexecdir=/awips2/httpd_pypies%{_libdir}/httpd/modules \ + --datadir=/awips2/httpd_pypies%{contentdir} \ + --with-installbuilddir=/awips2/httpd_pypies%{_libdir}/httpd/build \ + --with-mpm=$mpm \ + --with-apr=%{_prefix} --with-apr-util=%{_prefix} \ + --enable-suexec --with-suexec \ + --with-suexec-caller=%{suexec_caller} \ + --with-suexec-docroot=/awips2/httpd_pypies%{contentdir} \ + --with-suexec-logfile=/awips2/httpd_pypies%{_localstatedir}/log/httpd/suexec.log \ + --with-suexec-bin=/awips2/httpd_pypies%{_sbindir}/suexec \ + --with-suexec-uidmin=500 --with-suexec-gidmin=100 \ + --enable-pie \ + --with-pcre \ + $* + +make %{?_smp_mflags} +popd +} + +# Build everything and the kitchen sink with the prefork build +mpmbuild prefork \ + --enable-mods-shared=all \ + --enable-ssl --with-ssl --enable-distcache \ + --enable-proxy \ + --enable-cache --enable-mem-cache \ + --enable-file-cache --enable-disk-cache \ + --enable-ldap --enable-authnz-ldap \ + --enable-cgid \ + --enable-authn-anon --enable-authn-alias + +# For the other MPMs, just build httpd and no optional modules +mpmbuild worker --enable-modules=none +mpmbuild event --enable-modules=none + +%install +rm -rf $RPM_BUILD_ROOT + +# Classify ab and logresolve as section 1 commands, as they are in /usr/bin +mv docs/man/ab.8 docs/man/ab.1 +mv docs/man/logresolve.8 docs/man/logresolve.1 + +pushd prefork +make DESTDIR=$RPM_BUILD_ROOT install +popd + +# install alternative MPMs +install -m 755 worker/httpd $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sbindir}/httpd.worker +install -m 755 event/httpd $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sbindir}/httpd.event + +# install conf file/directory +mkdir $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d +install -m 644 $RPM_SOURCE_DIR/README.confd \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/README +for f in ssl.conf welcome.conf manual.conf proxy_ajp.conf; do + install -m 644 $RPM_SOURCE_DIR/$f $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/$f +done + +rm $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/httpd/conf/*.conf +install -m 644 $RPM_SOURCE_DIR/httpd.conf \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/httpd/conf/httpd.conf + +mkdir $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/sysconfig +install -m 644 $RPM_SOURCE_DIR/httpd.sysconf \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/sysconfig/httpd + +# for holding mod_dav lock database +mkdir -p $RPM_BUILD_ROOT/awips2/httpd_pypies%{_localstatedir}/lib/dav + +# create a prototype session cache +mkdir -p $RPM_BUILD_ROOT/awips2/httpd_pypies%{_localstatedir}/cache/mod_ssl +touch $RPM_BUILD_ROOT/awips2/httpd_pypies%{_localstatedir}/cache/mod_ssl/scache.{dir,pag,sem} + +# create cache root +mkdir $RPM_BUILD_ROOT/awips2/httpd_pypies%{_localstatedir}/cache/mod_proxy + +# move utilities to /usr/bin +mv $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sbindir}/{ab,htdbm,logresolve,htpasswd,htdigest} \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_bindir} + +# Make the MMN accessible to module packages +echo %{mmn} > $RPM_BUILD_ROOT/awips2/httpd_pypies%{_includedir}/httpd/.mmn + +# docroot +mkdir $RPM_BUILD_ROOT/awips2/httpd_pypies%{contentdir}/html +install -m 644 $RPM_SOURCE_DIR/centos_index.html \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{contentdir}/error/noindex.html + +# remove manual sources +find $RPM_BUILD_ROOT/awips2/httpd_pypies%{contentdir}/manual \( \ + -name \*.xml -o -name \*.xml.* -o -name \*.ent -o -name \*.xsl -o -name \*.dtd \ + \) -print0 | xargs -0 rm -f + +# added for branding +install -m 644 %{SOURCE8} \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{contentdir}/icons/powered_by_rh.png + +# Strip the manual down just to English and replace the typemaps with flat files: +set +x +for f in `find $RPM_BUILD_ROOT/awips2/httpd_pypies%{contentdir}/manual -name \*.html -type f`; do + if test -f ${f}.en; then + cp ${f}.en ${f} + rm ${f}.* + fi +done +set -x + +# logs +rmdir $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sysconfdir}/httpd/logs +mkdir -p $RPM_BUILD_ROOT/awips2/httpd_pypies%{_localstatedir}/log/httpd + +# run +mkdir -p $RPM_BUILD_ROOT/awips2/httpd_pypies/var/run + +mkdir -p $RPM_BUILD_ROOT/awips2/httpd_pypies/var/lock/subsys/ + +# symlinks for /etc/httpd +ln -s ../..%{_localstatedir}/log/httpd $RPM_BUILD_ROOT/awips2/httpd_pypies/etc/httpd/logs +ln -s ../..%{_localstatedir}/run $RPM_BUILD_ROOT/awips2/httpd_pypies/etc/httpd/run +ln -s ../..%{_libdir}/httpd/modules $RPM_BUILD_ROOT/awips2/httpd_pypies/etc/httpd/modules + +# install service script. +mkdir -p ${RPM_BUILD_ROOT}/etc/init.d +install -m755 ${PROJECT_DIR}/configuration/etc/init.d/httpd-pypies \ + ${RPM_BUILD_ROOT}/etc/init.d + +# install log rotation stuff +mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +install -m644 $RPM_SOURCE_DIR/httpd-pypies.logrotate \ + $RPM_BUILD_ROOT/etc/logrotate.d/httpd-pypies + +# fix man page paths +sed -e "s|/usr/local/apache2/conf/httpd.conf|/etc/httpd/conf/httpd.conf|" \ + -e "s|/usr/local/apache2/conf/mime.types|/etc/mime.types|" \ + -e "s|/usr/local/apache2/conf/magic|/etc/httpd/conf/magic|" \ + -e "s|/usr/local/apache2/logs/error_log|/var/log/httpd/error_log|" \ + -e "s|/usr/local/apache2/logs/access_log|/var/log/httpd/access_log|" \ + -e "s|/usr/local/apache2/logs/httpd.pid|/var/run/httpd.pid|" \ + -e "s|/usr/local/apache2|/etc/httpd|" < docs/man/httpd.8 \ + > $RPM_BUILD_ROOT/awips2/httpd_pypies/%{_mandir}/man8/httpd.8 + +# Make ap_config_layout.h libdir-agnostic +sed -i '/.*DEFAULT_..._LIBEXECDIR/d;/DEFAULT_..._INSTALLBUILDDIR/d' \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_includedir}/httpd/ap_config_layout.h + +# Fix path to instdso in special.mk +sed -i '/instdso/s,top_srcdir,top_builddir,' \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_libdir}/httpd/build/special.mk + +# Remove unpackaged files +rm -f $RPM_BUILD_ROOT/awips2/httpd_pypies%{_libdir}/*.exp \ + $RPM_BUILD_ROOT/awips2/httpd_pypies/etc/httpd/conf/mime.types \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_libdir}/httpd/modules/*.exp \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_libdir}/httpd/build/config.nice \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_bindir}/ap?-config \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sbindir}/{checkgid,dbmmanage,envvars*} \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{contentdir}/htdocs/* \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{_mandir}/man1/dbmmanage.* \ + $RPM_BUILD_ROOT/awips2/httpd_pypies%{contentdir}/cgi-bin/* + +rm -rf $RPM_BUILD_ROOT/awips2/httpd_pypies/etc/httpd/conf/{original,extra} + +# Make suexec a+rw so it can be stripped. %%files lists real permissions +chmod 755 $RPM_BUILD_ROOT/awips2/httpd_pypies%{_sbindir}/suexec + +# Install the module required by pypies. +install -m755 ${PROJECT_DIR}/configuration/apache/mod_wsgi.so \ + ${RPM_BUILD_ROOT}/awips2/httpd_pypies/etc/httpd/modules + +# Install the pypies configuration. +install -m644 ${PROJECT_DIR}/configuration/apache/pypies.conf \ + ${RPM_BUILD_ROOT}/awips2/httpd_pypies/etc/httpd/conf.d +mkdir -p ${RPM_BUILD_ROOT}/awips2/httpd_pypies/var/www/wsgi +install -m644 ${PROJECT_DIR}/configuration/apache/pypies.wsgi \ + ${RPM_BUILD_ROOT}/awips2/httpd_pypies/var/www/wsgi + +# Install & Override the httpd configuration. +install -m644 ${PROJECT_DIR}/configuration/conf/httpd.conf \ + ${RPM_BUILD_ROOT}/awips2/httpd_pypies/etc/httpd/conf + +%pre +# Add the "apache" user +/usr/sbin/useradd -c "Apache" -u 48 \ + -s /sbin/nologin -r -d /awips2/httpd_pypies%{contentdir} apache 2> /dev/null || : + +%triggerpostun -- apache < 2.0, stronghold-apache < 2.0 +/sbin/chkconfig --add httpd-pypies + +# Prevent removal of index.html on upgrades from 1.3 +%triggerun -- apache < 2.0, stronghold-apache < 2.0 +if [ -r /awips2/httpd_pypies%{contentdir}/index.html -a ! -r /awips2/httpd_pypies%{contentdir}/index.html.rpmold ]; then + mv /awips2/httpd_pypies%{contentdir}/index.html /awips2/httpd_pypies%{contentdir}/index.html.rpmold +fi + +%post +# Register the httpd service +/sbin/chkconfig --add httpd-pypies + +%preun +# this is not compatible with our environment. attempting to shutdown +# httpd-pypies causes 'yum groupremove' to abort and leaves us with +# an incomplete version of httpd-pypies that cannot be un-installed. +#if [ $1 = 0 ]; then +# /sbin/service httpd-pypies stop > /dev/null 2>&1 +# /sbin/chkconfig --del httpd-pypies +#fi + +%define sslcert /awips2/httpd_pypies%{_sysconfdir}/pki/tls/certs/localhost.crt +%define sslkey /awips2/httpd_pypies%{_sysconfdir}/pki/tls/private/localhost.key + +%post -n mod_ssl +umask 077 + +if [ ! -f %{sslkey} ] ; then +/awips2/httpd_pypies%{_bindir}/openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 1024 > %{sslkey} 2> /dev/null +fi + +FQDN=`hostname` +if [ "x${FQDN}" = "x" ]; then + FQDN=localhost.localdomain +fi + +if [ ! -f %{sslcert} ] ; then +cat << EOF | /awips2/httpd_pypies%{_bindir}/openssl req -new -key %{sslkey} \ + -x509 -days 365 -set_serial $RANDOM \ + -out %{sslcert} 2>/dev/null +-- +SomeState +SomeCity +SomeOrganization +SomeOrganizationalUnit +${FQDN} +root@${FQDN} +EOF +fi + +%check +# Check the built modules are all PIC +if readelf -d $RPM_BUILD_ROOT/awips2/httpd_pypies%{_libdir}/httpd/modules/*.so | grep TEXTREL; then + : modules contain non-relocatable code + exit 1 +fi + +# Verify that the same modules were built into the httpd binaries +./prefork/httpd -l | grep -v prefork > prefork.mods +for mpm in worker; do + ./${mpm}/httpd -l | grep -v ${mpm} > ${mpm}.mods + if ! diff -u prefork.mods ${mpm}.mods; then + : Different modules built into httpd binaries, will not proceed + exit 1 + fi +done + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,awips,fxalpha) + +%doc ABOUT_APACHE README CHANGES LICENSE VERSIONING NOTICE +%doc migration.html migration.css + +%dir /awips2/httpd_pypies +%dir /awips2/httpd_pypies/etc +%dir /awips2/httpd_pypies/etc/sysconfig +%dir /awips2/httpd_pypies/usr +%dir /awips2/httpd_pypies/usr/bin +%dir /awips2/httpd_pypies/usr/lib +%dir /awips2/httpd_pypies/usr/sbin +/awips2/httpd_pypies/usr/share +%dir /awips2/httpd_pypies/var +%dir /awips2/httpd_pypies/var/cache +%dir /awips2/httpd_pypies/var/lib +%dir /awips2/httpd_pypies/var/lock +%dir /awips2/httpd_pypies/var/log +%dir /awips2/httpd_pypies%{_sysconfdir}/httpd +%dir /awips2/httpd_pypies/var/run +%dir /awips2/httpd_pypies/var/lock/subsys/ +%dir /awips2/httpd_pypies/var/www/wsgi +%config(noreplace) /awips2/httpd_pypies/var/www/wsgi/pypies.wsgi +/awips2/httpd_pypies%{_sysconfdir}/httpd/modules +/awips2/httpd_pypies%{_sysconfdir}/httpd/logs +/awips2/httpd_pypies%{_sysconfdir}/httpd/run +%dir /awips2/httpd_pypies%{_sysconfdir}/httpd/conf +%config(noreplace) /awips2/httpd_pypies%{_sysconfdir}/httpd/conf/httpd.conf +%config(noreplace) /awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/pypies.conf +%config(noreplace) /awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/welcome.conf +%config(noreplace) /awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/proxy_ajp.conf +%config(noreplace) /awips2/httpd_pypies%{_sysconfdir}/httpd/conf/magic + +%config(noreplace) %{_sysconfdir}/logrotate.d/httpd-pypies +%config(noreplace) %{_sysconfdir}/init.d/httpd-pypies + +%dir /awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d +/awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/README + +%config(noreplace) /awips2/httpd_pypies%{_sysconfdir}/sysconfig/httpd + +/awips2/httpd_pypies%{_bindir}/* +/awips2/httpd_pypies%{_sbindir}/ht* +/awips2/httpd_pypies%{_sbindir}/apachectl +/awips2/httpd_pypies%{_sbindir}/rotatelogs +%attr(4510,awips,fxalpha) /awips2/httpd_pypies%{_sbindir}/suexec + +%dir /awips2/httpd_pypies%{_libdir}/httpd +%dir /awips2/httpd_pypies%{_libdir}/httpd/modules +/awips2/httpd_pypies%{_libdir}/httpd/modules/mod*.so +%exclude /awips2/httpd_pypies%{_libdir}/httpd/modules/mod_ssl.so + +%dir /awips2/httpd_pypies%{contentdir} +%dir /awips2/httpd_pypies%{contentdir}/cgi-bin +%dir /awips2/httpd_pypies%{contentdir}/html +%dir /awips2/httpd_pypies%{contentdir}/icons +%dir /awips2/httpd_pypies%{contentdir}/error +%dir /awips2/httpd_pypies%{contentdir}/error/include +/awips2/httpd_pypies%{contentdir}/icons/* +/awips2/httpd_pypies%{contentdir}/error/README +/awips2/httpd_pypies%{contentdir}/error/noindex.html +%config /awips2/httpd_pypies%{contentdir}/error/*.var +%config /awips2/httpd_pypies%{contentdir}/error/include/*.html + +%attr(0700,awips,fxalpha) %dir /awips2/httpd_pypies%{_localstatedir}/log/httpd +%attr(0700,awips,fxalpha) %dir /awips2/httpd_pypies%{_localstatedir}/lib/dav +%attr(0700,awips,fxalpha) %dir /awips2/httpd_pypies%{_localstatedir}/cache/mod_proxy + +/awips2/httpd_pypies/%{_mandir}/man?/* +%exclude /awips2/httpd_pypies/%{_mandir}/man8/apxs.8* + +%files manual +%defattr(-,root,root) +/awips2/httpd_pypies%{contentdir}/manual +%config /awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/manual.conf + +%files -n mod_ssl +%defattr(-,root,root) +/awips2/httpd_pypies%{_libdir}/httpd/modules/mod_ssl.so +%config(noreplace) /awips2/httpd_pypies%{_sysconfdir}/httpd/conf.d/ssl.conf +%attr(0700,apache,root) %dir /awips2/httpd_pypies%{_localstatedir}/cache/mod_ssl +%attr(0600,apache,root) %ghost /awips2/httpd_pypies%{_localstatedir}/cache/mod_ssl/scache.dir +%attr(0600,apache,root) %ghost /awips2/httpd_pypies%{_localstatedir}/cache/mod_ssl/scache.pag +%attr(0600,apache,root) %ghost /awips2/httpd_pypies%{_localstatedir}/cache/mod_ssl/scache.sem + +%files devel +%defattr(-,root,root) +/awips2/httpd_pypies%{_includedir}/httpd +/awips2/httpd_pypies%{_sbindir}/apxs +/awips2/httpd_pypies/%{_mandir}/man8/apxs.8* +%dir /awips2/httpd_pypies%{_libdir}/httpd/build +/awips2/httpd_pypies%{_libdir}/httpd/build/*.mk +/awips2/httpd_pypies%{_libdir}/httpd/build/*.sh + +%changelog +* Thu Jan 22 2009 Karanbir Singh 2.2.3-22.el5.centos +- Roll in CentOS branding changes + +* Wed Nov 12 2008 Joe Orton 2.2.3-22.el5 +- add security fixes for CVE-2008-2939 (#468841) +- note that the mod_proxy 2.2.9 rebase fixed CVE-2008-2634 + +* Tue Oct 21 2008 Joe Orton 2.2.3-21.el5 +- avoid strict-aliasing warnings (#462877) + +* Tue Oct 21 2008 Joe Orton 2.2.3-20.el5 +- mod_proxy: scoreboard access fix (#252024) + +* Thu Sep 18 2008 Joe Orton 2.2.3-19.el5 +- mod_proxy: various backport fixes (#252024) + +* Thu Sep 18 2008 Joe Orton 2.2.3-17.el5 +- fix mod_proxy symbol use + +* Mon Sep 15 2008 Joe Orton 2.2.3-16.el5 +- mod_proxy*, mod_cache*: rebase to 2.2.9 (#252024, #249534, + #439842) +- backport changes to make chunk filter non-blocking (#454098) + +* Fri Sep 12 2008 Joe Orton 2.2.3-15.el5 +- mod_ldap: fix memory lifetime issues (#440259) +- mod_ssl: configure OpenSSL dynamic lock callbacks (#462044) +- escape the Request-Method in canned error responses (#445888) +- build the event MPM and fix a deadlock therein (#444643) +- mod_headers: support "RequestHeader edit" (#428253) +- use "OPTIONS *" rather than "GET /" in dummy connection (#367981) + +* Thu Aug 14 2008 Joe Orton 2.2.3-14.el5 +- mod_proxy: add ProxyPassMatch support (#449159) + +* Mon Jul 21 2008 Joe Orton 2.2.3-13.el5 +- mod_proxy_balancer: allow alternative string to match for + stickysession parameter (#439218) +- fix dist tag in Release (#440615) + +* Fri Jan 11 2008 Joe Orton 2.2.3-12.el5_1.3 +- further update to backport for CVE-2007-6421 (#427240) + +* Fri Jan 11 2008 Joe Orton 2.2.3-12.el5_1.2 +- updated backport for CVE-2007-6421 (#427240) + +* Mon Jan 7 2008 Joe Orton 2.2.3-11.el5_1.1 +- add security fixes for CVE-2007-6388, CVE-2007-6421 + and CVE-2007-6422 (#427240) +- add security fix for CVE-2007-4465, CVE-2007-5000 (#421631) +- add security fix for mod_proxy_ftp UTF-7 XSS (#427745) + +* Mon Aug 6 2007 Joe Orton 2.2.3-11.el5 +- mark httpd.conf config(noreplace) (#247881) + +* Fri Aug 3 2007 Joe Orton 2.2.3-10.el5 +- add security fix for CVE-2007-3847 (#250761) + +* Wed Aug 1 2007 Joe Orton 2.2.3-9.el5 +- load mod_version by default (#247881) + +* Tue Jun 26 2007 Joe Orton 2.2.3-8.el5 +- add 'ServerTokens Full-Release' config option (#240857) +- use init script in logrotate postrotate (#241680) +- fix mod_proxy option inheritance (#245719) +- fix ProxyErrorOverride to only affect 4xx, 5xx responses (#240024) +- bump logresolve line buffer length to 10K (#245763) +- add security fixes for CVE-2007-1863, CVE-2007-3304, + and CVE-2006-5752 (#244666) + +* Wed Nov 29 2006 Joe Orton 2.2.3-6.el5 +- fix path to instdso.sh in special.mk (#217677) +- fix detection of links in "apachectl fullstatus" + +* Tue Sep 19 2006 Joe Orton 2.2.3-5.el5 +- rebuild + +* Fri Aug 11 2006 Joe Orton 2.2.3-3.el5 +- use RHEL branding + +* Thu Aug 3 2006 Joe Orton 2.2.3-3 +- init: use killproc() delay to avoid race killing parent + +* Fri Jul 28 2006 Joe Orton 2.2.3-2 +- update to 2.2.3 +- trim %%changelog to >=2.0.52 + +* Thu Jul 20 2006 Joe Orton 2.2.2-8 +- fix segfault on dummy connection failure at graceful restart (#199429) + +* Wed Jul 19 2006 Joe Orton 2.2.2-7 +- fix "apxs -g"-generated Makefile +- fix buildconf with autoconf 2.60 + +* Wed Jul 12 2006 Jesse Keating - 2.2.2-5.1 +- rebuild + +* Wed Jun 7 2006 Joe Orton 2.2.2-5 +- require pkgconfig for -devel (#194152) +- fixes for installed support makefiles (special.mk et al) +- BR autoconf + +* Fri Jun 2 2006 Joe Orton 2.2.2-4 +- make -devel package multilib-safe (#192686) + +* Thu May 11 2006 Joe Orton 2.2.2-3 +- build DSOs using -z relro linker flag + +* Wed May 3 2006 Joe Orton 2.2.2-2 +- update to 2.2.2 + +* Thu Apr 6 2006 Joe Orton 2.2.0-6 +- rebuild to pick up apr-util LDAP interface fix (#188073) + +* Fri Feb 10 2006 Jesse Keating - (none):2.2.0-5.1.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - (none):2.2.0-5.1.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Feb 6 2006 Joe Orton 2.2.0-5.1 +- mod_auth_basic/mod_authn_file: if no provider is configured, + and AuthUserFile is not configured, decline to handle authn + silently rather than failing noisily. + +* Fri Feb 3 2006 Joe Orton 2.2.0-5 +- mod_ssl: add security fix for CVE-2005-3357 (#177914) +- mod_imagemap: add security fix for CVE-2005-3352 (#177913) +- add fix for AP_INIT_* designated initializers with C++ compilers +- httpd.conf: enable HTMLTable in default IndexOptions +- httpd.conf: add more "redirect-carefully" matches for DAV clients + +* Thu Jan 5 2006 Joe Orton 2.2.0-4 +- mod_proxy_ajp: fix Cookie handling (Mladen Turk, r358769) + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Wed Dec 7 2005 Joe Orton 2.2.0-3 +- strip manual to just English content + +* Mon Dec 5 2005 Joe Orton 2.2.0-2 +- don't strip C-L from HEAD responses (Greg Ames, #110552) +- load mod_proxy_balancer by default +- add proxy_ajp.conf to load/configure mod_proxy_ajp +- Obsolete mod_jk +- update docs URLs in httpd.conf/ssl.conf + +* Fri Dec 2 2005 Joe Orton 2.2.0-1 +- update to 2.2.0 + +* Wed Nov 30 2005 Joe Orton 2.1.10-2 +- enable mod_authn_alias, mod_authn_anon +- update default httpd.conf + +* Fri Nov 25 2005 Joe Orton 2.1.10-1 +- update to 2.1.10 +- require apr >= 1.2.0, apr-util >= 1.2.0 + +* Wed Nov 9 2005 Tomas Mraz 2.0.54-16 +- rebuilt against new openssl + +* Thu Nov 3 2005 Joe Orton 2.0.54-15 +- log notice giving SELinux context at startup if enabled +- drop SSLv2 and restrict default cipher suite in default + SSL configuration + +* Thu Oct 20 2005 Joe Orton 2.0.54-14 +- mod_ssl: add security fix for SSLVerifyClient (CVE-2005-2700) +- add security fix for byterange filter DoS (CVE-2005-2728) +- add security fix for C-L vs T-E handling (CVE-2005-2088) +- mod_ssl: add security fix for CRL overflow (CVE-2005-1268) +- mod_ldap/mod_auth_ldap: add fixes from 2.0.x branch (upstream #34209 etc) +- add fix for dummy connection handling (#167425) +- mod_auth_digest: fix hostinfo comparison in CONNECT requests +- mod_include: fix variable corruption in nested includes (upstream #12655) +- mod_ssl: add fix for handling non-blocking reads +- mod_ssl: fix to enable output buffering (upstream #35279) +- mod_ssl: buffer request bodies for per-location renegotiation (upstream #12355) + +* Sat Aug 13 2005 Joe Orton 2.0.54-13 +- don't load by default: mod_cern_meta, mod_asis +- do load by default: mod_ext_filter (#165893) + +* Thu Jul 28 2005 Joe Orton 2.0.54-12 +- drop broken epoch deps + +* Thu Jun 30 2005 Joe Orton 2.0.54-11 +- mod_dav_fs: fix uninitialized variable (#162144) +- add epoch to dependencies as appropriate +- mod_ssl: drop dependencies on dev, make +- mod_ssl: mark post script dependencies as such + +* Mon May 23 2005 Joe Orton 2.0.54-10 +- remove broken symlink (Robert Scheck, #158404) + +* Wed May 18 2005 Joe Orton 2.0.54-9 +- add piped logger fixes (w/Jeff Trawick) + +* Mon May 9 2005 Joe Orton 2.0.54-8 +- drop old "powered by Red Hat" logos + +* Wed May 4 2005 Joe Orton 2.0.54-7 +- mod_userdir: fix memory allocation issue (upstream #34588) +- mod_ldap: fix memory corruption issue (Brad Nicholes, upstream #34618) + +* Tue Apr 26 2005 Joe Orton 2.0.54-6 +- fix key/cert locations in post script + +* Mon Apr 25 2005 Joe Orton 2.0.54-5 +- create default dummy cert in /etc/pki/tls +- use a pseudo-random serial number on the dummy cert +- change default ssl.conf to point at /etc/pki/tls +- merge back -suexec subpackage; SELinux policy can now be + used to persistently disable suexec (#155716) +- drop /etc/httpd/conf/ssl.* directories and Makefiles +- unconditionally enable PIE support +- mod_ssl: fix for picking up -shutdown options (upstream #34452) + +* Mon Apr 18 2005 Joe Orton 2.0.54-4 +- replace PreReq with Requires(pre) + +* Mon Apr 18 2005 Joe Orton 2.0.54-3 +- update to 2.0.54 + +* Tue Mar 29 2005 Joe Orton 2.0.53-6 +- update default httpd.conf: + * clarify the comments on AddDefaultCharset usage (#135821) + * remove all the AddCharset default extensions + * don't load mod_imap by default + * synch with upstream 2.0.53 httpd-std.conf +- mod_ssl: set user from SSLUserName in access hook (upstream #31418) +- htdigest: fix permissions of created files (upstream #33765) +- remove htsslpass + +* Wed Mar 2 2005 Joe Orton 2.0.53-5 +- apachectl: restore use of $OPTIONS again + +* Wed Feb 9 2005 Joe Orton 2.0.53-4 +- update to 2.0.53 +- move prefork/worker modules comparison to %%check + +* Mon Feb 7 2005 Joe Orton 2.0.52-7 +- fix cosmetic issues in "service httpd reload" +- move User/Group higher in httpd.conf (#146793) +- load mod_logio by default in httpd.conf +- apachectl: update for correct libselinux tools locations + +* Tue Nov 16 2004 Joe Orton 2.0.52-6 +- add security fix for CVE CAN-2004-0942 (memory consumption DoS) +- SELinux: run httpd -t under runcon in configtest (Steven Smalley) +- fix SSLSessionCache comment for distcache in ssl.conf +- restart using SIGHUP not SIGUSR1 after logrotate +- add ap_save_brigade fix (upstream #31247) +- mod_ssl: fix possible segfault in auth hook (upstream #31848) +- add htsslpass(1) and configure as default SSLPassPhraseDialog (#128677) +- apachectl: restore use of $OPTIONS +- apachectl, httpd.init: refuse to restart if $HTTPD -t fails +- apachectl: run $HTTPD -t in user SELinux context for configtest +- update for pcre-5.0 header locations + +* Sat Nov 13 2004 Jeff Johnson 2.0.52-5 +- rebuild against db-4.3.21 aware apr-util. + +* Thu Nov 11 2004 Jeff Johnson 2.0.52-4 +- rebuild against db-4.3-21. + +* Thu Sep 28 2004 Joe Orton 2.0.52-3 +- add dummy connection address fixes from HEAD +- mod_ssl: add security fix for CAN-2004-0885 + +* Tue Sep 28 2004 Joe Orton 2.0.52-2 +- update to 2.0.52 + diff --git a/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/mod_wsgi.so b/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/mod_wsgi.so new file mode 100755 index 0000000000..cecdd0ff11 Binary files /dev/null and b/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/mod_wsgi.so differ diff --git a/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/pypies.conf b/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/pypies.conf new file mode 100644 index 0000000000..db909d2778 --- /dev/null +++ b/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/pypies.conf @@ -0,0 +1,18 @@ +LoadModule wsgi_module modules/mod_wsgi.so + +WSGIPythonHome /awips2/python + + + ServerName localhost + #wsgi is setup in embedded mode, Daemon Process not doing anything + #WSGIDaemonProcess pypies user=awips group=fxalpha python-path=/awips2/python/lib/python2.7/site-packages processes=50 threads=1 umask=0000 display-name=pypies deadlock-timeout=30 + WSGIScriptAlias / /awips2/httpd_pypies/var/www/wsgi/pypies.wsgi + + + # uncomment for Daemon mode + #WSGIProcessGroup pypies + WSGIApplicationGroup %{GLOBAL} + Order deny,allow + Allow from all + + \ No newline at end of file diff --git a/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/pypies.wsgi b/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/pypies.wsgi new file mode 100644 index 0000000000..2ed7d1430c --- /dev/null +++ b/rpms/awips2.core/Installer.httpd-pypies/configuration/apache/pypies.wsgi @@ -0,0 +1,5 @@ +import site +site.addsitedir('/awips2/python/lib/python2.7/site-packages') + +import pypies.handlers +application = pypies.handlers.pypies_response \ No newline at end of file diff --git a/rpms/awips2.core/Installer.httpd-pypies/configuration/conf/httpd.conf b/rpms/awips2.core/Installer.httpd-pypies/configuration/conf/httpd.conf new file mode 100644 index 0000000000..c1d1363356 --- /dev/null +++ b/rpms/awips2.core/Installer.httpd-pypies/configuration/conf/httpd.conf @@ -0,0 +1,991 @@ +# +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See for detailed information. +# In particular, see +# +# for a discussion of each configuration directive. +# +# +# Do NOT simply read the instructions in here without understanding +# what they do. They're here only as hints or reminders. If you are unsure +# consult the online docs. You have been warned. +# +# The configuration directives are grouped into three basic sections: +# 1. Directives that control the operation of the Apache server process as a +# whole (the 'global environment'). +# 2. Directives that define the parameters of the 'main' or 'default' server, +# which responds to requests that aren't handled by a virtual host. +# These directives also provide default values for the settings +# of all virtual hosts. +# 3. Settings for virtual hosts, which allow Web requests to be sent to +# different IP addresses or hostnames and have them handled by the +# same Apache server process. +# +# Configuration and logfile names: If the filenames you specify for many +# of the server's control files begin with "/" (or "drive:/" for Win32), the +# server will use that explicit path. If the filenames do *not* begin +# with "/", the value of ServerRoot is prepended -- so "logs/foo.log" +# with ServerRoot set to "/etc/httpd" will be interpreted by the +# server as "/etc/httpd/logs/foo.log". +# + +### Section 1: Global Environment +# +# The directives in this section affect the overall operation of Apache, +# such as the number of concurrent requests it can handle or where it +# can find its configuration files. +# + +# +# Don't give away too much information about all the subcomponents +# we are running. Comment out this line if you don't mind remote sites +# finding out what major optional modules you are running +ServerTokens OS + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the LockFile documentation +# (available at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +ServerRoot "/awips2/httpd_pypies/etc/httpd" + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# +PidFile run/httpd.pid + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 120 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 50 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 15 + +## +## Server-Pool Size Regulation (MPM specific) +## + +# prefork MPM +# StartServers: number of server processes to start +# MinSpareServers: minimum number of server processes which are kept spare +# MaxSpareServers: maximum number of server processes which are kept spare +# ServerLimit: maximum value for MaxClients for the lifetime of the server +# MaxClients: maximum number of server processes allowed to start +# MaxRequestsPerChild: maximum number of requests a server process serves + +StartServers 8 +MinSpareServers 5 +MaxSpareServers 20 +ServerLimit 256 +MaxClients 256 +MaxRequestsPerChild 50 + + +# worker MPM +# StartServers: initial number of server processes to start +# MaxClients: maximum number of simultaneous client connections +# MinSpareThreads: minimum number of worker threads which are kept spare +# MaxSpareThreads: maximum number of worker threads which are kept spare +# ThreadsPerChild: constant number of worker threads in each server process +# MaxRequestsPerChild: maximum number of requests a server process serves + +StartServers 2 +MaxClients 150 +MinSpareThreads 25 +MaxSpareThreads 75 +ThreadsPerChild 25 +MaxRequestsPerChild 0 + + +# +# Listen: Allows you to bind Apache to specific IP addresses and/or +# ports, in addition to the default. See also the +# directive. +# +# Change this to Listen on specific IP addresses as shown below to +# prevent Apache from glomming onto all bound IP addresses (0.0.0.0) +# +#Listen 12.34.56.78:80 +Listen 9582 + +# +# Dynamic Shared Object (DSO) Support +# +# To be able to use the functionality of a module which was built as a DSO you +# have to place corresponding `LoadModule' lines at this location so the +# directives contained in it are actually available _before_ they are used. +# Statically compiled modules (those listed by `httpd -l') do not need +# to be loaded here. +# +# Example: +# LoadModule foo_module modules/mod_foo.so +# +LoadModule auth_basic_module modules/mod_auth_basic.so +LoadModule auth_digest_module modules/mod_auth_digest.so +LoadModule authn_file_module modules/mod_authn_file.so +LoadModule authn_alias_module modules/mod_authn_alias.so +LoadModule authn_anon_module modules/mod_authn_anon.so +LoadModule authn_dbm_module modules/mod_authn_dbm.so +LoadModule authn_default_module modules/mod_authn_default.so +LoadModule authz_host_module modules/mod_authz_host.so +LoadModule authz_user_module modules/mod_authz_user.so +LoadModule authz_owner_module modules/mod_authz_owner.so +LoadModule authz_groupfile_module modules/mod_authz_groupfile.so +LoadModule authz_dbm_module modules/mod_authz_dbm.so +LoadModule authz_default_module modules/mod_authz_default.so +LoadModule ldap_module modules/mod_ldap.so +LoadModule authnz_ldap_module modules/mod_authnz_ldap.so +LoadModule include_module modules/mod_include.so +LoadModule log_config_module modules/mod_log_config.so +LoadModule logio_module modules/mod_logio.so +LoadModule env_module modules/mod_env.so +LoadModule ext_filter_module modules/mod_ext_filter.so +LoadModule mime_magic_module modules/mod_mime_magic.so +LoadModule expires_module modules/mod_expires.so +LoadModule deflate_module modules/mod_deflate.so +LoadModule headers_module modules/mod_headers.so +LoadModule usertrack_module modules/mod_usertrack.so +LoadModule setenvif_module modules/mod_setenvif.so +LoadModule mime_module modules/mod_mime.so +LoadModule dav_module modules/mod_dav.so +LoadModule status_module modules/mod_status.so +LoadModule autoindex_module modules/mod_autoindex.so +LoadModule info_module modules/mod_info.so +LoadModule dav_fs_module modules/mod_dav_fs.so +LoadModule vhost_alias_module modules/mod_vhost_alias.so +LoadModule negotiation_module modules/mod_negotiation.so +LoadModule dir_module modules/mod_dir.so +LoadModule actions_module modules/mod_actions.so +LoadModule speling_module modules/mod_speling.so +LoadModule userdir_module modules/mod_userdir.so +LoadModule alias_module modules/mod_alias.so +LoadModule rewrite_module modules/mod_rewrite.so +LoadModule proxy_module modules/mod_proxy.so +LoadModule proxy_balancer_module modules/mod_proxy_balancer.so +LoadModule proxy_ftp_module modules/mod_proxy_ftp.so +LoadModule proxy_http_module modules/mod_proxy_http.so +LoadModule proxy_connect_module modules/mod_proxy_connect.so +LoadModule cache_module modules/mod_cache.so +LoadModule suexec_module modules/mod_suexec.so +LoadModule disk_cache_module modules/mod_disk_cache.so +LoadModule file_cache_module modules/mod_file_cache.so +LoadModule mem_cache_module modules/mod_mem_cache.so +LoadModule cgi_module modules/mod_cgi.so +LoadModule version_module modules/mod_version.so + +# +# The following modules are not loaded by default: +# +#LoadModule cern_meta_module modules/mod_cern_meta.so +#LoadModule asis_module modules/mod_asis.so + +# +# Load config files from the config directory "/etc/httpd/conf.d". +# +Include conf.d/*.conf + +# +# ExtendedStatus controls whether Apache will generate "full" status +# information (ExtendedStatus On) or just basic information (ExtendedStatus +# Off) when the "server-status" handler is called. The default is Off. +# +#ExtendedStatus On + +# +# If you wish httpd to run as a different user or group, you must run +# httpd as root initially and it will switch. +# +# User/Group: The name (or #number) of the user/group to run httpd as. +# . On SCO (ODT 3) use "User nouser" and "Group nogroup". +# . On HPUX you may not be able to use shared memory as nobody, and the +# suggested workaround is to create a user www and use that user. +# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET) +# when the value of (unsigned)Group is above 60000; +# don't use Group #-1 on these systems! +# +User awips +Group awips + +### Section 2: 'Main' server configuration +# +# The directives in this section set up the values used by the 'main' +# server, which responds to any requests that aren't handled by a +# definition. These values also provide defaults for +# any containers you may define later in the file. +# +# All of these directives may appear inside containers, +# in which case these default settings will be overridden for the +# virtual host being defined. +# + +# +# ServerAdmin: Your address, where problems with the server should be +# e-mailed. This address appears on some server-generated pages, such +# as error documents. e.g. admin@your-domain.com +# +ServerAdmin root@localhost + +# +# ServerName gives the name and port that the server uses to identify itself. +# This can often be determined automatically, but we recommend you specify +# it explicitly to prevent problems during startup. +# +# If this is not set to valid DNS name for your host, server-generated +# redirections will not work. See also the UseCanonicalName directive. +# +# If your host doesn't have a registered DNS name, enter its IP address here. +# You will have to access it by its address anyway, and this will make +# redirections work in a sensible way. +# +#ServerName www.example.com:80 + +# +# UseCanonicalName: Determines how Apache constructs self-referencing +# URLs and the SERVER_NAME and SERVER_PORT variables. +# When set "Off", Apache will use the Hostname and Port supplied +# by the client. When set "On", Apache will use the value of the +# ServerName directive. +# +UseCanonicalName Off + +# +# DocumentRoot: The directory out of which you will serve your +# documents. By default, all requests are taken from this directory, but +# symbolic links and aliases may be used to point to other locations. +# +DocumentRoot "/awips2/httpd_pypies/var/www/html" + +# +# Each directory to which Apache has access can be configured with respect +# to which services and features are allowed and/or disabled in that +# directory (and its subdirectories). +# +# First, we configure the "default" to be a very restrictive set of +# features. +# + + Options FollowSymLinks + AllowOverride None + + +# +# Note that from this point forward you must specifically allow +# particular features to be enabled - so if something's not working as +# you might expect, make sure that you have specifically enabled it +# below. +# + +# +# This should be changed to whatever you set DocumentRoot to. +# + + +# +# Possible values for the Options directive are "None", "All", +# or any combination of: +# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews +# +# Note that "MultiViews" must be named *explicitly* --- "Options All" +# doesn't give it to you. +# +# The Options directive is both complicated and important. Please see +# http://httpd.apache.org/docs/2.2/mod/core.html#options +# for more information. +# + Options Indexes FollowSymLinks + +# +# AllowOverride controls what directives may be placed in .htaccess files. +# It can be "All", "None", or any combination of the keywords: +# Options FileInfo AuthConfig Limit +# + AllowOverride None + +# +# Controls who can get stuff from this server. +# + Order allow,deny + Allow from all + + + +# +# UserDir: The name of the directory that is appended onto a user's home +# directory if a ~user request is received. +# +# The path to the end user account 'public_html' directory must be +# accessible to the webserver userid. This usually means that ~userid +# must have permissions of 711, ~userid/public_html must have permissions +# of 755, and documents contained therein must be world-readable. +# Otherwise, the client will only receive a "403 Forbidden" message. +# +# See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden +# + + # + # UserDir is disabled by default since it can confirm the presence + # of a username on the system (depending on home directory + # permissions). + # + UserDir disable + + # + # To enable requests to /~user/ to serve the user's public_html + # directory, remove the "UserDir disable" line above, and uncomment + # the following line instead: + # + #UserDir public_html + + + +# +# Control access to UserDir directories. The following is an example +# for a site where these directories are restricted to read-only. +# +# +# AllowOverride FileInfo AuthConfig Limit +# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec +# +# Order allow,deny +# Allow from all +# +# +# Order deny,allow +# Deny from all +# +# + +# +# DirectoryIndex: sets the file that Apache will serve if a directory +# is requested. +# +# The index.html.var file (a type-map) is used to deliver content- +# negotiated documents. The MultiViews Option can be used for the +# same purpose, but it is much slower. +# +DirectoryIndex index.html index.html.var + +# +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Order allow,deny + Deny from all + + +# +# TypesConfig describes where the mime.types file (or equivalent) is +# to be found. +# +TypesConfig /etc/mime.types + +# +# DefaultType is the default MIME type the server will use for a document +# if it cannot otherwise determine one, such as from filename extensions. +# If your server contains mostly text or HTML documents, "text/plain" is +# a good value. If most of your content is binary, such as applications +# or images, you may want to use "application/octet-stream" instead to +# keep browsers from trying to display binary files as though they are +# text. +# +DefaultType text/plain + +# +# The mod_mime_magic module allows the server to use various hints from the +# contents of the file itself to determine its type. The MIMEMagicFile +# directive tells the module where the hint definitions are located. +# + +# MIMEMagicFile /usr/share/magic.mime + MIMEMagicFile conf/magic + + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# +# EnableMMAP: Control whether memory-mapping is used to deliver +# files (assuming that the underlying OS supports it). +# The default is on; turn this off if you serve from NFS-mounted +# filesystems. On some systems, turning it off (regardless of +# filesystem) can improve performance; for details, please see +# http://httpd.apache.org/docs/2.2/mod/core.html#enablemmap +# +#EnableMMAP off + +# +# EnableSendfile: Control whether the sendfile kernel support is +# used to deliver files (assuming that the OS supports it). +# The default is on; turn this off if you serve from NFS-mounted +# filesystems. Please see +# http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile +# +#EnableSendfile off + +# +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog logs/error_log + +# +# LogLevel: Control the number of messages logged to the error_log. +# Possible values include: debug, info, notice, warn, error, crit, +# alert, emerg. +# +LogLevel warn + +# +# The following directives define some format nicknames for use with +# a CustomLog directive (see below). +# +LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %b" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# "combinedio" includes actual counts of actual bytes received (%I) and sent (%O); this +# requires the mod_logio module to be loaded. +#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio + +# +# The location and format of the access logfile (Common Logfile Format). +# If you do not define any access logfiles within a +# container, they will be logged here. Contrariwise, if you *do* +# define per- access logfiles, transactions will be +# logged therein and *not* in this file. +# +#CustomLog logs/access_log common + +# +# If you would like to have separate agent and referer logfiles, uncomment +# the following directives. +# +#CustomLog logs/referer_log referer +#CustomLog logs/agent_log agent + +# +# For a single logfile with access, agent, and referer information +# (Combined Logfile Format), use the following directive: +# +CustomLog logs/access_log combined + +# +# Optionally add a line containing the server version and virtual host +# name to server-generated pages (internal error documents, FTP directory +# listings, mod_status and mod_info output etc., but not CGI generated +# documents or custom error documents). +# Set to "EMail" to also include a mailto: link to the ServerAdmin. +# Set to one of: On | Off | EMail +# +ServerSignature On + +# +# Aliases: Add here as many aliases as you need (with no limit). The format is +# Alias fakename realname +# +# Note that if you include a trailing / on fakename then the server will +# require it to be present in the URL. So "/icons" isn't aliased in this +# example, only "/icons/". If the fakename is slash-terminated, then the +# realname must also be slash terminated, and if the fakename omits the +# trailing slash, the realname must also omit it. +# +# We include the /icons/ alias for FancyIndexed directory listings. If you +# do not use FancyIndexing, you may comment this out. +# +Alias /icons/ "/awips2/httpd_pypies/var/www/icons/" + + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + +# +# WebDAV module configuration section. +# + + # Location of the WebDAV lock database. + DAVLockDB /var/lib/dav/lockdb + + +# +# ScriptAlias: This controls which directories contain server scripts. +# ScriptAliases are essentially the same as Aliases, except that +# documents in the realname directory are treated as applications and +# run by the server when requested rather than as documents sent to the client. +# The same rules about trailing "/" apply to ScriptAlias directives as to +# Alias. +# +ScriptAlias /cgi-bin/ "/awips2/httpd_pypies/var/www/cgi-bin/" + +# +# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased +# CGI directory exists, if you have that configured. +# + + AllowOverride None + Options None + Order allow,deny + Allow from all + + +# +# Redirect allows you to tell clients about documents which used to exist in +# your server's namespace, but do not anymore. This allows you to tell the +# clients where to look for the relocated document. +# Example: +# Redirect permanent /foo http://www.example.com/bar + +# +# Directives controlling the display of server-generated directory listings. +# + +# +# IndexOptions: Controls the appearance of server-generated directory +# listings. +# +IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable + +# +# AddIcon* directives tell the server which icon to show for different +# files or filename extensions. These are only displayed for +# FancyIndexed directories. +# +AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip + +AddIconByType (TXT,/icons/text.gif) text/* +AddIconByType (IMG,/icons/image2.gif) image/* +AddIconByType (SND,/icons/sound2.gif) audio/* +AddIconByType (VID,/icons/movie.gif) video/* + +AddIcon /icons/binary.gif .bin .exe +AddIcon /icons/binhex.gif .hqx +AddIcon /icons/tar.gif .tar +AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv +AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip +AddIcon /icons/a.gif .ps .ai .eps +AddIcon /icons/layout.gif .html .shtml .htm .pdf +AddIcon /icons/text.gif .txt +AddIcon /icons/c.gif .c +AddIcon /icons/p.gif .pl .py +AddIcon /icons/f.gif .for +AddIcon /icons/dvi.gif .dvi +AddIcon /icons/uuencoded.gif .uu +AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl +AddIcon /icons/tex.gif .tex +AddIcon /icons/bomb.gif core + +AddIcon /icons/back.gif .. +AddIcon /icons/hand.right.gif README +AddIcon /icons/folder.gif ^^DIRECTORY^^ +AddIcon /icons/blank.gif ^^BLANKICON^^ + +# +# DefaultIcon is which icon to show for files which do not have an icon +# explicitly set. +# +DefaultIcon /icons/unknown.gif + +# +# AddDescription allows you to place a short description after a file in +# server-generated indexes. These are only displayed for FancyIndexed +# directories. +# Format: AddDescription "description" filename +# +#AddDescription "GZIP compressed document" .gz +#AddDescription "tar archive" .tar +#AddDescription "GZIP compressed tar archive" .tgz + +# +# ReadmeName is the name of the README file the server will look for by +# default, and append to directory listings. +# +# HeaderName is the name of a file which should be prepended to +# directory indexes. +ReadmeName README.html +HeaderName HEADER.html + +# +# IndexIgnore is a set of filenames which directory indexing should ignore +# and not include in the listing. Shell-style wildcarding is permitted. +# +IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t + +# +# DefaultLanguage and AddLanguage allows you to specify the language of +# a document. You can then use content negotiation to give a browser a +# file in a language the user can understand. +# +# Specify a default language. This means that all data +# going out without a specific language tag (see below) will +# be marked with this one. You probably do NOT want to set +# this unless you are sure it is correct for all cases. +# +# * It is generally better to not mark a page as +# * being a certain language than marking it with the wrong +# * language! +# +# DefaultLanguage nl +# +# Note 1: The suffix does not have to be the same as the language +# keyword --- those with documents in Polish (whose net-standard +# language code is pl) may wish to use "AddLanguage pl .po" to +# avoid the ambiguity with the common suffix for perl scripts. +# +# Note 2: The example entries below illustrate that in some cases +# the two character 'Language' abbreviation is not identical to +# the two character 'Country' code for its country, +# E.g. 'Danmark/dk' versus 'Danish/da'. +# +# Note 3: In the case of 'ltz' we violate the RFC by using a three char +# specifier. There is 'work in progress' to fix this and get +# the reference data for rfc1766 cleaned up. +# +# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl) +# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de) +# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja) +# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn) +# Norwegian (no) - Polish (pl) - Portugese (pt) +# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv) +# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW) +# +AddLanguage ca .ca +AddLanguage cs .cz .cs +AddLanguage da .dk +AddLanguage de .de +AddLanguage el .el +AddLanguage en .en +AddLanguage eo .eo +AddLanguage es .es +AddLanguage et .et +AddLanguage fr .fr +AddLanguage he .he +AddLanguage hr .hr +AddLanguage it .it +AddLanguage ja .ja +AddLanguage ko .ko +AddLanguage ltz .ltz +AddLanguage nl .nl +AddLanguage nn .nn +AddLanguage no .no +AddLanguage pl .po +AddLanguage pt .pt +AddLanguage pt-BR .pt-br +AddLanguage ru .ru +AddLanguage sv .sv +AddLanguage zh-CN .zh-cn +AddLanguage zh-TW .zh-tw + +# +# LanguagePriority allows you to give precedence to some languages +# in case of a tie during content negotiation. +# +# Just list the languages in decreasing order of preference. We have +# more or less alphabetized them here. You probably want to change this. +# +LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW + +# +# ForceLanguagePriority allows you to serve a result page rather than +# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback) +# [in case no accepted languages matched the available variants] +# +ForceLanguagePriority Prefer Fallback + +# +# Specify a default charset for all content served; this enables +# interpretation of all content as UTF-8 by default. To use the +# default browser choice (ISO-8859-1), or to allow the META tags +# in HTML content to override this choice, comment out this +# directive: +# +AddDefaultCharset UTF-8 + +# +# AddType allows you to add to or override the MIME configuration +# file mime.types for specific file types. +# +#AddType application/x-tar .tgz + +# +# AddEncoding allows you to have certain browsers uncompress +# information on the fly. Note: Not all browsers support this. +# Despite the name similarity, the following Add* directives have nothing +# to do with the FancyIndexing customization directives above. +# +#AddEncoding x-compress .Z +#AddEncoding x-gzip .gz .tgz + +# If the AddEncoding directives above are commented-out, then you +# probably should define those extensions to indicate media types: +# +AddType application/x-compress .Z +AddType application/x-gzip .gz .tgz + +# +# AddHandler allows you to map certain file extensions to "handlers": +# actions unrelated to filetype. These can be either built into the server +# or added with the Action directive (see below) +# +# To use CGI scripts outside of ScriptAliased directories: +# (You will also need to add "ExecCGI" to the "Options" directive.) +# +#AddHandler cgi-script .cgi + +# +# For files that include their own HTTP headers: +# +#AddHandler send-as-is asis + +# +# For type maps (negotiated resources): +# (This is enabled by default to allow the Apache "It Worked" page +# to be distributed in multiple languages.) +# +AddHandler type-map var + +# +# Filters allow you to process content before it is sent to the client. +# +# To parse .shtml files for server-side includes (SSI): +# (You will also need to add "Includes" to the "Options" directive.) +# +AddType text/html .shtml +AddOutputFilter INCLUDES .shtml + +# +# Action lets you define media types that will execute a script whenever +# a matching file is called. This eliminates the need for repeated URL +# pathnames for oft-used CGI file processors. +# Format: Action media/type /cgi-script/location +# Format: Action handler-name /cgi-script/location +# + +# +# Customizable error responses come in three flavors: +# 1) plain text 2) local redirects 3) external redirects +# +# Some examples: +#ErrorDocument 500 "The server made a boo boo." +#ErrorDocument 404 /missing.html +#ErrorDocument 404 "/cgi-bin/missing_handler.pl" +#ErrorDocument 402 http://www.example.com/subscription_info.html +# + +# +# Putting this all together, we can internationalize error responses. +# +# We use Alias to redirect any /error/HTTP_.html.var response to +# our collection of by-error message multi-language collections. We use +# includes to substitute the appropriate text. +# +# You can modify the messages' appearance without changing any of the +# default HTTP_.html.var files by adding the line: +# +# Alias /error/include/ "/your/include/path/" +# +# which allows you to create your own set of files by starting with the +# /var/www/error/include/ files and +# copying them to /your/include/path/, even on a per-VirtualHost basis. +# + +Alias /error/ "/awips2/httpd_pypies/var/www/error/" + + + + + AllowOverride None + Options IncludesNoExec + AddOutputFilter Includes html + AddHandler type-map var + Order allow,deny + Allow from all + LanguagePriority en es de fr + ForceLanguagePriority Prefer Fallback + + +# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var +# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var +# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var +# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var +# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var +# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var +# ErrorDocument 410 /error/HTTP_GONE.html.var +# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var +# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var +# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var +# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var +# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var +# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var +# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var +# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var +# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var +# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var + + + + +# +# The following directives modify normal HTTP response behavior to +# handle known problems with browser implementations. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 + +# +# The following directive disables redirects on non-GET requests for +# a directory that does not include the trailing slash. This fixes a +# problem with Microsoft WebFolders which does not appropriately handle +# redirects for folders with DAV methods. +# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV. +# +BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully +BrowserMatch "MS FrontPage" redirect-carefully +BrowserMatch "^WebDrive" redirect-carefully +BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully +BrowserMatch "^gnome-vfs/1.0" redirect-carefully +BrowserMatch "^XML Spy" redirect-carefully +BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully + +# +# Allow server status reports generated by mod_status, +# with the URL of http://servername/server-status +# Change the ".example.com" to match your domain to enable. +# +# +# SetHandler server-status +# Order deny,allow +# Deny from all +# Allow from .example.com +# + +# +# Allow remote server configuration reports, with the URL of +# http://servername/server-info (requires that mod_info.c be loaded). +# Change the ".example.com" to match your domain to enable. +# +# +# SetHandler server-info +# Order deny,allow +# Deny from all +# Allow from .example.com +# + +# +# Proxy Server directives. Uncomment the following lines to +# enable the proxy server: +# +# +#ProxyRequests On +# +# +# Order deny,allow +# Deny from all +# Allow from .example.com +# + +# +# Enable/disable the handling of HTTP/1.1 "Via:" headers. +# ("Full" adds the server version; "Block" removes all outgoing Via: headers) +# Set to one of: Off | On | Full | Block +# +#ProxyVia On + +# +# To enable a cache of proxied content, uncomment the following lines. +# See http://httpd.apache.org/docs/2.2/mod/mod_cache.html for more details. +# +# +# CacheEnable disk / +# CacheRoot "/var/cache/mod_proxy" +# +# + +# +# End of proxy directives. + +### Section 3: Virtual Hosts +# +# VirtualHost: If you want to maintain multiple domains/hostnames on your +# machine you can setup VirtualHost containers for them. Most configurations +# use only name-based virtual hosts so the server doesn't need to worry about +# IP addresses. This is indicated by the asterisks in the directives below. +# +# Please see the documentation at +# +# for further details before you try to setup virtual hosts. +# +# You may use the command line option '-S' to verify your virtual host +# configuration. + +# +# Use name-based virtual hosting. +# +#NameVirtualHost *:80 +# +# NOTE: NameVirtualHost cannot be used without a port specifier +# (e.g. :80) if mod_ssl is being used, due to the nature of the +# SSL protocol. +# + +# +# VirtualHost example: +# Almost any Apache directive may go into a VirtualHost container. +# The first VirtualHost section is used for requests without a known +# server name. +# +# +# ServerAdmin webmaster@dummy-host.example.com +# DocumentRoot /www/docs/dummy-host.example.com +# ServerName dummy-host.example.com +# ErrorLog logs/dummy-host.example.com-error_log +# CustomLog logs/dummy-host.example.com-access_log common +# diff --git a/rpms/awips2.core/Installer.httpd-pypies/configuration/etc/init.d/httpd-pypies b/rpms/awips2.core/Installer.httpd-pypies/configuration/etc/init.d/httpd-pypies new file mode 100644 index 0000000000..dff20cbce4 --- /dev/null +++ b/rpms/awips2.core/Installer.httpd-pypies/configuration/etc/init.d/httpd-pypies @@ -0,0 +1,168 @@ +#!/bin/bash +# +# httpd Startup script for the Apache HTTP Server used by Pypies +# +# chkconfig: - 85 15 +# description: Apache is a World Wide Web server. It is used to serve \ +# HTML files and CGI. Pypies uses it to serve connections. +# processname: httpd +# config: /etc/httpd/conf/httpd.conf +# config: /etc/sysconfig/httpd +# pidfile: /var/run/httpd.pid + +# Source function library. +. /etc/rc.d/init.d/functions + +if [ -f /etc/sysconfig/httpd ]; then + . /etc/sysconfig/httpd +fi + +# Start httpd in the C locale by default. +HTTPD_LANG=${HTTPD_LANG-"C"} + +# This will prevent initlog from swallowing up a pass-phrase prompt if +# mod_ssl needs a pass-phrase from the user. +INITLOG_ARGS="" + +# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server +# with the thread-based "worker" MPM; BE WARNED that some modules may not +# work correctly with a thread-based MPM; notably PHP will refuse to start. + +# Find the httpd-pypies installation. +HTTPD_PYPIES_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-httpd-pypies` + +# Path to the apachectl script, server binary, and short-form for messages. +apachectl=${HTTPD_PYPIES_INSTALL}/usr/sbin/apachectl +httpd=${HTTPD-${HTTPD_PYPIES_INSTALL}/usr/sbin/httpd} +prog=httpd +pidfile=${PIDFILE-${HTTPD_PYPIES_INSTALL}/var/run/httpd.pid} +lockfile=${LOCKFILE-${HTTPD_PYPIES_INSTALL}/var/lock/subsys/httpd} +RETVAL=0 +PYTHON_INSTALL="/awips2/python" +loggingCmd="${PYTHON_INSTALL}/bin/python -u ${PYTHON_INSTALL}/lib/python2.7/site-packages/pypies/logging/logProcess.py" + +# Add to LD_LIBRARY_PATH, if necessary. +PYTHON_LIB_DIR="${PYTHON_INSTALL}/lib" + +# Determine if LD_LIBRARY_PATH needs to be updated. +echo $LD_LIBRARY_PATH | grep "${PYTHON_LIB_DIR}" > /dev/null 2>&1 +RC="$?" +if [ ! "${RC}" = "0" ]; then + export LD_LIBRARY_PATH=${PYTHON_LIB_DIR}:$LD_LIBRARY_PATH +fi + +# check for 1.3 configuration +check13 () { + CONFFILE=${HTTPD_PYPIES_INSTALL}/etc/httpd/conf/httpd.conf + GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|" + GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|" + GONE="${GONE}AccessConfig|ResourceConfig)" + if LANG=C grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then + echo + echo 1>&2 " Apache 1.3 configuration directives found" + echo 1>&2 " please read /usr/share/doc/awips2-httpd-pypies-2.2.3/migration.html" + failure "Apache 1.3 config directives test" + echo + exit 1 + fi +} + +# The semantics of these two functions differ from the way apachectl does +# things -- attempting to start while running is a failure, and shutdown +# when not running is also a failure. So we just do it the way init scripts +# are expected to behave here. +start() { + source /etc/profile.d/awips2HDF5Tools.sh + echo -n $"Starting logging service:" + nohup su awips -c "$loggingCmd > /tmp/pypiesLoggingService.log 2>&1" > /dev/null & + RC=$? + # TODO: need better checks to ensure that the logging service actually keeps + # running after startup. + RC=$? + if [ ${RC} -ne 0 ]; then + failure + else + success + fi + echo + echo -n $"Starting $prog: " + check13 || exit 1 + LANG=$HTTPD_LANG daemon $httpd $OPTIONS -f \ + ${HTTPD_PYPIES_INSTALL}/etc/httpd/conf/httpd.conf + RETVAL=$? + echo + [ $RETVAL = 0 ] && touch ${lockfile} + return $RETVAL +} + +# When stopping httpd a delay of >10 second is required before SIGKILLing the +# httpd parent; this gives enough time for the httpd parent to SIGKILL any +# errant children. +stop() { + echo -n $"Stopping $prog: " + killproc -d 10 $httpd + RETVAL=$? + echo + [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} + echo -n $"Stopping logging service:" + # Stop the logging process + for pid in `ps aux | grep [l]ogProcess.py | awk '{print $2}'`; + do + kill -9 ${pid} + RC=$? + if [ ${RC} -ne 0 ]; then + failure + return + fi + done + success + echo +} +reload() { + echo -n $"Reloading $prog: " + if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then + RETVAL=$? + echo $"not reloading due to configuration syntax error" + failure $"not reloading $httpd due to configuration syntax error" + else + killproc $httpd -HUP + RETVAL=$? + fi + echo +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $httpd + RETVAL=$? + ;; + restart) + stop + start + ;; + condrestart) + if [ -f ${pidfile} ] ; then + stop + start + fi + ;; + reload) + reload + ;; + graceful|help|configtest|fullstatus) + $apachectl $@ + RETVAL=$? + ;; + *) + echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" + exit 1 +esac + +exit $RETVAL \ No newline at end of file diff --git a/rpms/awips2.core/Installer.hydroapps/component.spec b/rpms/awips2.core/Installer.hydroapps/component.spec new file mode 100644 index 0000000000..5552038863 --- /dev/null +++ b/rpms/awips2.core/Installer.hydroapps/component.spec @@ -0,0 +1,104 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-hydroapps-shared +%define _component_project_dir awips2.core/Installer.hydroapps +# +# AWIPS II Hydroapps Spec File +# +Name: %{_component_name} +Summary: AWIPS II Hydroapps Distribution +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-hydroapps-shared +obsoletes: awips2-hydroapps +requires: awips2-edex-base +requires: awips2-edex-native + +%description +AWIPS II Hydroapps Distribution - Includes applications, configurations, and +filesystems for Hydro. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2 + +%build + +%install +NATIVE_TAR_FILE="dist.native/i386-pc-linux-gnu.tar" + +# Untar the Native Library +/bin/gtar -xpf ${WORKSPACE_DIR}/${NATIVE_TAR_FILE} \ + -C ${RPM_BUILD_ROOT}/awips2 + +# Remove all unnecessary files and directories. +rm -rf ${RPM_BUILD_ROOT}/awips2/adapt +rm -rf ${RPM_BUILD_ROOT}/awips2/lib +rm -rf ${RPM_BUILD_ROOT}/awips2/setup +rm -rf ${RPM_BUILD_ROOT}/awips2/edex +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/share +mv ${RPM_BUILD_ROOT}/awips2/awipsShare/hydroapps \ + ${RPM_BUILD_ROOT}/awips2/edex/data/share +rm -rf ${RPM_BUILD_ROOT}/awips2/awipsShare + +# Add the ffmp_templates directory - part of the tar file now. +#mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/hdf5/hydroapps/ffmp_templates + +# Add file for VIM - part of the tar file now. +#WHFS_LOCAL="edex/data/hdf5/hydroapps/whfs/local/data" +#mkdir -p ${RPM_BUILD_ROOT}/awips2/${WHFS_LOCAL}/app/ +#touch ${RPM_BUILD_ROOT}/awips2/${WHFS_LOCAL}/app/.vimrc + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Hydro Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = /awips2\e[m" +echo -e "\e[1;34m Destination = /awips2/edex/data/share/hydroapps\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Hydro Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Hydro Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,775) +%dir /awips2 +%dir /awips2/edex +%dir /awips2/edex/data +%dir /awips2/edex/data/share +%defattr(777,awips,fxalpha,777) +%dir /awips2/edex/data/share/hydroapps +/awips2/edex/data/share/hydroapps/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.hydroapps/delta/B11.3/updateA21Proto1_ffmpTemplates.sh b/rpms/awips2.core/Installer.hydroapps/delta/B11.3/updateA21Proto1_ffmpTemplates.sh new file mode 100644 index 0000000000..140762188e --- /dev/null +++ b/rpms/awips2.core/Installer.hydroapps/delta/B11.3/updateA21Proto1_ffmpTemplates.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +export DELTA_BUILD="11.3" +export DELTA_ID="A21Proto1" +export DELTA_DESC="Removing Any Existing FFMP Templates So New Ones Can Be Generated." + +function runUpdate() +{ + # Ensure that the awips2-hydroapps have been installed. + rpm -q awips2-hydroapps > /dev/null + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 0 + fi + + # Ensure that we know where awips2-hydroapps has been installed too. + if [ "${COMPONENT_INSTALL}" = "" ]; then + return 1 + fi + + return 0; + FFMP_TEMPLATE_DIR="${COMPONENT_INSTALL}/edex/data/hdf5/hydroapps/ffmp_templates" + # Ensure that the ffmp_template directory exists. + if [ ! -d ${FFMP_TEMPLATE_DIR} ]; then + return 0 + fi + + # Purge the existing ffmp templates. + rm -rf ${FFMP_TEMPLATE_DIR}/* + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi + + return 0 +} diff --git a/rpms/awips2.core/Installer.irt/component.spec b/rpms/awips2.core/Installer.irt/component.spec new file mode 100644 index 0000000000..36120159ee --- /dev/null +++ b/rpms/awips2.core/Installer.irt/component.spec @@ -0,0 +1,132 @@ +# +# AWIPS II IRT Spec File +# +Name: awips2-irt +Summary: AWIPS II IRT Installation +Version: 1.0.0 +Release: 1 +Group: AWIPSII +BuildRoot: /tmp +Prefix: /irt +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-irt +requires: awips2-python + +%description +AWIPS II IRT Installation - Contains The AWIPS II IRT Component. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/irt + +%build + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + echo "\"/${COMPONENT_BUILD_DIR}/licenses/license.txt\"" \ + >> %{_topdir}/BUILD/component-files.txt + echo "\"/${COMPONENT_BUILD_DIR}/licenses/Master Rights File.pdf\"" \ + >> %{_topdir}/BUILD/component-files.txt + echo "\"/${COMPONENT_BUILD_DIR}/licenses/FOSS_licenses.tar\"" \ + >> %{_topdir}/BUILD/component-files.txt + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} +cp -r ${AWIPSCM_SHARE}/packages/irt-server/* ${RPM_BUILD_ROOT}/irt + +# Copy The Configuration File To The Appropriate Directory. +IRT_CONFIG_FILE="IRT_Config.txt" +CONFIG_FILE_SRC_DIR="Installer.rpm/awips2.core/Installer.irt/scripts/conf" +CONFIG_FILE_DEST_DIR="IRT-operational/server" +cp ${WORKSPACE_DIR}/${CONFIG_FILE_SRC_DIR}/${IRT_CONFIG_FILE} \ + ${RPM_BUILD_ROOT}/irt/${CONFIG_FILE_DEST_DIR} + +# Create an IRT bin Directory and Copy the Startup Script to It. +IRT_STARTUP_FILE="start_irt.sh" +STARTUP_FILE_SRC_DIR="Installer.rpm/awips2.core/Installer.irt/scripts" +mkdir -p ${RPM_BUILD_ROOT}/irt/bin +cp ${WORKSPACE_DIR}/${STARTUP_FILE_SRC_DIR}/${IRT_STARTUP_FILE} \ + ${RPM_BUILD_ROOT}/irt/bin + +cd ${RPM_BUILD_ROOT} +for item in `find irt/ -name "*"` +do + if [ ! -d ${item} ]; then + echo "/"${item} >> %{_topdir}/BUILD/component-files.txt + fi +done + +copyLegal "irt" + +%pre +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II IRT...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II IRT Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" +} +echo ${RPM_INSTALL_PREFIX} | sed 's/\//\\\//g' > .awips2_escape.tmp +IRT_INSTALL_ESCAPED=`cat .awips2_escape.tmp` +rm -f .awips2_escape.tmp + +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II IRT Runtime and Environment..." +echo "--------------------------------------------------------------------------------" +IRT_STARTUP_FILE="start_irt.sh" +perl -p -i -e "s/%{INSTALL_PATH}%/${IRT_INSTALL_ESCAPED}/g" \ + ${RPM_INSTALL_PREFIX}/bin/${IRT_STARTUP_FILE} +chmod a+x ${RPM_INSTALL_PREFIX}/bin/* + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II IRT Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II IRT Installation Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files -f component-files.txt \ No newline at end of file diff --git a/rpms/awips2.core/Installer.irt/scripts/conf/IRT_Config.txt b/rpms/awips2.core/Installer.irt/scripts/conf/IRT_Config.txt new file mode 100644 index 0000000000..d74d39d2c4 --- /dev/null +++ b/rpms/awips2.core/Installer.irt/scripts/conf/IRT_Config.txt @@ -0,0 +1,16 @@ +# ISC Routing Table config file +# Entries: name, value +# name: purgeTime value: how long to keep each entry in the table (seconds) +# minimum value = 3600 or pingTime, whichever is greater +# name: pingTime value: how often to reregister (seconds); minimum value = 3600 +# name: useuntil value: minimum time between getaddr calls (seconds) +# name: doclip value: should ISC clipping take place: 0=no, 1=yes +# name: mount value: where to mount the service, if different from / +# name: port value: the service port (such as 8080) + +purgeTime 7200 +pingTime 3600 +useuntil 180 +doclip 1 +mount $INSTALL_PATH +port 8081 diff --git a/rpms/awips2.core/Installer.irt/scripts/init.d/edex_irt b/rpms/awips2.core/Installer.irt/scripts/init.d/edex_irt new file mode 100644 index 0000000000..9746242634 --- /dev/null +++ b/rpms/awips2.core/Installer.irt/scripts/init.d/edex_irt @@ -0,0 +1,80 @@ +#!/bin/sh +# chkconfig: - 99 10 +# description: AWIPS II IRT Component. + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +EDEXUSER=awips +export LD_LIBRARY_PATH=%{PYTHON_INSTALL}%/lib +export LD_PRELOAD=%{PYTHON_INSTALL}%/lib/libpython2.7.so + +IRT_DIR=%{IRT_INSTALL}%/IRT-operational/server/ +PID_FILE=$IRT_DIR/tmp.pid + +# Verify root user +checkUser() { + REQUIREDUSER="root" + CURUSER=`whoami` + if [ "$CURUSER" != "$REQUIREDUSER" ]; then + echo "Insufficient privileges: must run script as $REQUIREDUSER" + exit 1 + fi +} + +start(){ + cd $IRT_DIR + su $EDEXUSER -c "%{PYTHON_INSTALL}%/bin/python RoutingTableSvc.py &" > /dev/null 2>&1 + routingSvcName=RoutingTableSvc.py + ps ax | grep "$routingSvcName$" | awk '{print $1;}' > $PID_FILE +} + +stop(){ + cd $IRT_DIR + cat $PID_FILE | while read pid + do + su $EDEXUSER -c "kill -9 $pid" + done + rm $PID_FILE +} + +restart(){ + stop + sleep 3 + start +} + +# See how we were called +case $1 in + start) + checkUser + echo "Starting IRT Server..." + start + RETVAL=$? + ;; + stop) + checkUser + echo "Stopping IRT Server..." + stop + RETVAL=$? + ;; + restart) + checkUser + echo "Restarting IRT Server..." + restart + RETVAL=$? + ;; + *) + #Print help + echo "Usage: $0 {start|stop|restart}" 1>&2 + exit 1 + ;; +esac + +exit $RETVAL \ No newline at end of file diff --git a/rpms/awips2.core/Installer.irt/scripts/start_irt.sh b/rpms/awips2.core/Installer.irt/scripts/start_irt.sh new file mode 100755 index 0000000000..4985cacf97 --- /dev/null +++ b/rpms/awips2.core/Installer.irt/scripts/start_irt.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +IRT_DIR=%{INSTALL_PATH}%/IRT-operational/server/ +PID_FILE=$IRT_DIR/tmp.pid + +start(){ + + cd $IRT_DIR + python RoutingTableSvc.py & + routingSvcName=RoutingTableSvc.py + ps ax | grep "$routingSvcName$" | awk '{print $1;}' > $PID_FILE +} + +stop(){ + cd $IRT_DIR + cat $PID_FILE | while read pid + do + kill -9 $pid + done + rm $PID_FILE +} + +restart(){ + stop + sleep 3 + start +} + +# See how we were called +case $1 in + start) + echo "Starting IRT Server..." + start + RETVAL=$? + ;; + stop) + echo "Stopping IRT Server..." + stop + RETVAL=$? + ;; + restart) + echo "Restarting IRT Server..." + restart + RETVAL=$? + ;; + *) + #Print help + echo "Usage: $0 {start|stop|restart}" 1>&2 + exit 1 + ;; +esac + +exit $RETVAL diff --git a/rpms/awips2.core/Installer.java-jrockit/component.spec b/rpms/awips2.core/Installer.java-jrockit/component.spec new file mode 100644 index 0000000000..9ef3882af4 --- /dev/null +++ b/rpms/awips2.core/Installer.java-jrockit/component.spec @@ -0,0 +1,224 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +# +# AWIPS II Java JRockit Spec File +# +Name: awips2-java-jrockit +Summary: AWIPS II Java JRockit Distribution - 32 Bit +Version: 1.6.0_26 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-java-jrockit +requires: awips2-java + +%description +AWIPS II Java JRockit Distribution - Contains JRockit JDK 1.6.0_26 and +the JRockit Mission Control Utility. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/build-java +mkdir -p %{_build_root}/awips2/java + +%build + +%install +RPM_CORE_PROJECT_DIR="%{_baseline_workspace}/Installer.rpm/awips2.core" +JROCKIT_PROJECT_DIR="${RPM_CORE_PROJECT_DIR}/Installer.java-jrockit" +JROCKIT_INSTALLER="jrockit-jdk1.6.0_26-R28.1.4-4.0.1-linux-ia32.bin" +SILENT_XML="silent.xml" + +pushd . > /dev/null +# JRockit Setup +cd ${JROCKIT_PROJECT_DIR}/src +chmod u+x ${JROCKIT_INSTALLER} +./${JROCKIT_INSTALLER} -mode=silent -silent_xml="${SILENT_XML}" +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +# Copy the Java "Extensions" to build-java. +JROCKIT_SRC_DIR="${JROCKIT_PROJECT_DIR}/src" +JAI_BIN="jai-1_1_3-lib-linux-i586-jdk.bin" +JAI_PATCH="jai.patch1" +JAI_IMAGEIO_BIN="jai_imageio-1_1-lib-linux-i586-jdk.bin" +JAI_IMAGEIO_PATCH="jai_imageio.patch1" + +# Prepare +touch %{_build_root}/build-java/yes.txt +echo "yes" > %{_build_root}/build-java/yes.txt + +cp -v ${JROCKIT_SRC_DIR}/${JAI_BIN} \ + %{_build_root}/build-java +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +cp -v ${JROCKIT_SRC_DIR}/${JAI_PATCH} \ + %{_build_root}/build-java +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +cp -v ${JROCKIT_SRC_DIR}/${JAI_IMAGEIO_BIN} \ + %{_build_root}/build-java +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +cp -v ${JROCKIT_SRC_DIR}/${JAI_IMAGEIO_PATCH} \ + %{_build_root}/build-java +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +# JAI Setup +# ... Complete Patching. +pushd . > /dev/null +cd %{_build_root}/build-java +patch -i ${JAI_PATCH} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +chmod u+x ${JAI_BIN} +popd > /dev/null +# ... Complete Installation. +pushd . > /dev/null +cd %{_build_root}/awips2/java/jrockit +%{_build_root}/build-java/${JAI_BIN} < %{_build_root}/build-java/yes.txt +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +# JAI ImageIO Setup +# ... Complete Patching. +pushd . > /dev/null +cd %{_build_root}/build-java +patch -i ${JAI_IMAGEIO_PATCH} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +chmod u+x ${JAI_IMAGEIO_BIN} +popd > /dev/null +# ... Complete Installation. +pushd . > /dev/null +cd %{_build_root}/awips2/java/jrockit +%{_build_root}/build-java/${JAI_IMAGEIO_BIN} < %{_build_root}/build-java/yes.txt +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +# pydev certificate +PYDEV_CERTIFICATE="pydev_certificate.cer" +cp -v ${JROCKIT_SRC_DIR}/${PYDEV_CERTIFICATE} \ + %{_build_root}/awips2/java/jrockit/jre/lib/security +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +touch %{_build_root}/build-java/changeit.txt +echo "changeit" > %{_build_root}/build-java/changeit.txt +chmod 666 %{_build_root}/awips2/java/jrockit/jre/lib/security/cacerts +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +%{_build_root}/awips2/java/jrockit/bin/keytool -import \ + -file %{_build_root}/awips2/java/jrockit/jre/lib/security/pydev_certificate.cer \ + -keystore %{_build_root}/awips2/java/jrockit/jre/lib/security/cacerts \ + -noprompt < %{_build_root}/build-java/changeit.txt +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +rm -rf %{_build_root}/build-java + +%pre + +%post +# Create a link JRockit Mission Control. +pushd . > /dev/null +cd /awips2/java/bin +ln -sf /awips2/java/jrockit/bin/jrmc . +popd > /dev/null + +%preun +# Remove the link JRockit Mission Control. +pushd . > /dev/null +cd /awips2/java/bin +if [ -L jrockit ]; then + rm -f jrockit +fi +popd > /dev/null + +%postun + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/java +%dir /awips2/java/jrockit +%dir /awips2/java/jrockit/bin +%dir /awips2/java/jrockit/include +/awips2/java/jrockit/include/* +%dir /awips2/java/jrockit/inventory +/awips2/java/jrockit/inventory/* +%dir /awips2/java/jrockit/jre +/awips2/java/jrockit/jre/* +%dir /awips2/java/jrockit/lib +%dir /awips2/java/jrockit/missioncontrol +/awips2/java/jrockit/missioncontrol/* +%doc /awips2/java/jrockit/THIRDPARTYLICENSEREADME.txt +%doc /awips2/java/jrockit/jre/THIRDPARTYLICENSEREADME.txt +/awips2/java/jrockit/jre/.systemPrefs/.system.lock +/awips2/java/jrockit/jre/.systemPrefs/.systemRootModFile +/awips2/java/jrockit/missioncontrol/.eclipseproduct +%doc /awips2/java/jrockit/COPYRIGHT-jai.txt +%doc /awips2/java/jrockit/COPYRIGHT-jai_imageio.txt +%doc /awips2/java/jrockit/DISTRIBUTIONREADME-jai.txt +%doc /awips2/java/jrockit/DISTRIBUTIONREADME-jai_imageio.txt +%doc /awips2/java/jrockit/ENTITLEMENT-jai_imageio.txt +%doc /awips2/java/jrockit/LICENSE-jai.txt +%doc /awips2/java/jrockit/LICENSE-jai_imageio.txt +%doc /awips2/java/jrockit/THIRDPARTYLICENSEREADME-jai.txt +%doc /awips2/java/jrockit/THIRDPARTYLICENSEREADME-jai_imageio.txt +%doc /awips2/java/jrockit/UNINSTALL-jai +%doc /awips2/java/jrockit/UNINSTALL-jai_imageio + +%defattr(755,awips,fxalpha,755) +/awips2/java/jrockit/bin/* +/awips2/java/jrockit/lib/* +/awips2/java/jrockit/jre/bin/* +/awips2/java/jrockit/jre/lib/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java-jrockit/src/jai-1_1_3-lib-linux-i586-jdk.bin b/rpms/awips2.core/Installer.java-jrockit/src/jai-1_1_3-lib-linux-i586-jdk.bin new file mode 100755 index 0000000000..2a2607782e --- /dev/null +++ b/rpms/awips2.core/Installer.java-jrockit/src/jai-1_1_3-lib-linux-i586-jdk.bin @@ -0,0 +1,13517 @@ +#!/bin/sh +PATH=/bin:/usr/bin +more < $outname +else + tail -n +139 $0 > $outname +fi +if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + + sum=`/usr/bin/cksum $outname` + index=1 + for s in $sum + do + case $index in + 1) sum1=$s; + index=2; + ;; + 2) sum2=$s; + index=3; + ;; + esac + done + if expr $sum1 != 728064359 || expr $sum2 != 3545598 ; then + echo "The download file appears to be corrupted. Please refer" + echo "to the Troubleshooting section of the Installation" + echo "Instructions on the download page for more information." + echo "Please do not attempt to install this archive file." + rm -f $outname + exit 1 + fi +else + echo "Can't find /usr/bin/cksum to do checksum. Continuing anyway." +fi + +if [ "`uname`" = "SunOS" ]; then + if [ "`uname -p`" = "sparc" ]; then + ARCH=sparc # solaris-sparc or solaris-sparcv9 + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +elif [ `expr "\`uname -m\`" : .*64.*` != '0' ]; then + ARCH=amd64 # linux-amd64 +else + ARCH=i386 # linux-i586 +fi +if [ ! -d jre/lib/ext ] || [ ! -d jre/lib/$ARCH ] ; then + echo "This is not a proper JDK directory. Exiting install." + rm -f $outname + exit 1 +fi + +echo "Extracting..." +chmod u+x $outname +./$outname +rm -f $outname +echo "Done." +exit 0 +ELF44 (444H,, /lib/ld-linux.so.2GNU%51 "+3).!04(#,&*' -   +% $/2},;'<@-L~"\=l/@|8;7Wx.̊7܊l7s Vy;^,<L"-D-H-$\EJlD|myVL-L-!s=P̋q܋;h =,7,<!L=4\;el4:P-T-|1G.|= ̌__gmon_start__libc.so.6strcpyioctlchownstdoututime__ctype_bqsortfgetsmemcpyperrormallocisattyfflushlseekchmodstrrchrwritefprintf__deregister_frame_infostdinumasktimezonesignalreadstrncmpstrncpyunlinkfreadsymlinklocaltimetcgetattrstrcmpsprintffclosestderr__xstatexitfopen_IO_putcfileno_IO_stdin_used__libc_start_mainopentzsettcsetattrmkdir__ctype_tolower__register_frame_infoclosefree__timezoneGLIBC_2.1GLIBC_2.0ii ii ,3@-D-H-L-P-+T-,+++++,,, , +, , , , ,$,(,,,0,4,8,<,@,D,H,L,P,T, X,!\,"`,#d,$h,%l,&p,'t,(x,)|,*,-,.,0,1,2,4US[tuv_x[5+%+%+h%+h%+h%+h%+h %,h(%,h0%,h8p% ,h@`%,hHP%,hP@%,hX0%,h` % ,hh%$,hp%(,hx%,,h%0,h%4,h%8,h%<,h%@,h%D,h%H,hp%L,h`%P,hP%T,h@%X,h0%\,h %`,h%d,h%h,h%l,h%p,h%t,h%x,h%|,h %,h(%,h0%,h8p%,h@`%,hHP%,hP@1^PTRhhQVhU=u>PС8uLt h+]ÍvU]ÉULthX-h+]ÍvU]ÐUhLjhLj hLjhLj E hp-E PEPU..E ,.9tz1u1Bu1BuR;M v+,..t&,.(.. 0.E. 9u. +.-V]ÐU1ɉ WVSE E0E8&PXBӃMd$0A^&t-)y1-1<t&-,t&t 1t&-t-1-t-1&-t--1--~&Ej=.t-1Jv-8t-1"-t-1&-t-1-t-)y1-1-t&t--1--^&t-)ȅ}1-1:v-,t&t-1-t-1&-t-1-t-1&-t-1u-i+u^;uY~TF8-ukJvt-)y1-1/-'t-)y1-1-EC}O~8-Z-=-t u(=-ut =-u=-t?=-t6hhhH4PhH4h-E=-~ +-=-tB=-t9hhhH4*PhH4h--=-tju +-}t"E8E 0EP&=-9jhh-jjjh@hH4 PhH4h-Ѓ=-u$=-u=-u=-u =-t.t&.E8E 01e[^_]US]%Phh-jjjh@hH4 PhH4h-Ѕ%PhhhjhhH4PhH4h-Ѕu1 +]]UVSu] -5SVwe[^]ÐUWVSRQu )Nj])MӉʃt[F03F03F03F03F03F03F03F03IuF03IuYZ[^_]ÐUtP4]ÉU WVS=uNhDžt;1ېٸst Hu~Ή=e[^_]ÐU1҉LWVSEEEEEfEEEEfD4D.fEf)P'Eău6hhhH4vPhH4h-E.~APEt+EU;.}MEAM; .|. PE܃ EU;. t&MEAM; .|p ED.jhh4.tthURhhH4ePhH4h-hhhH49PhH4h-EfE JvWÅt].1jfP'Ãt7;]~]~*hhlhHthDPh`1jfPc'Ãt4;]~]~'hhlhHthPhL1jfP'Ãt^;]~]~Qh!hHthPhhH4PhH4h-fE=.tt&,.1t&;t7-PPhJt۾}t+,.M4tf0.t&;t8-PPhRJt1}t+0.EttEfEf}t7}?1fMڃ=D4jh4.7E3fE|Uԋ TUMXEE9U +EMEEI=D.D4D.y%)É)ޅhhpPh@hH4-PhH4h-E}um=tdhh`hH4PhH4h-Ћ MСD48}%)É)ރEv},hhpPh@hH4it&;5|tijVtPc|h PPtPEX hVhtEPCP)ڣXPT))XTjh4.uhWhzMQt&jhh4.hWhEPhhH4\ PhH4h-E}u =u=}hh`hH4PhH4h-ЃtE t&UЉD4y%)É)؅ ;|tVjPtP|h PPtPX  P)٣X TPT))XTjh4.uhWhzEP3jhh4.tEhWhURhhH4 PhH4h-EgSÅt;h!MQh-hH4fPhH4h-Љ]1jfP!Ãt>;]~]~1hh~hHthPh`^&tPz1jfP Ãt7;]~]~*hh~hHthPh=-=-t11VXÃM}U؃utttu߃@@)@PUȉЉ+Eȍ4Eĉ 0uGhh@ hH4PhH4h-Ѓ}ESUċ2PD4Mă@D1 t(EăPRPj1fPQ?R 1u+1fP1fP‹Mĉ+EȉTuM+ETT+}1ɍ=-tUĉLE+NuKjhhHth.PhhH4PhH4h-Ѓ}Eh&t, +t gvt3]=-tT}J=-h=-u.4=-P=-t?=-uhhHth6Ph!hH4PhH4h-ЃT-Pj h9.9 u@jh!hH4NPhH4h-9.N}uE9.8$--vhh!hH4PhH4h-ЃT-Phhq؋M utttu߃@@)P<2 +u0ut&--&j9.Ph!hH4PhH4h-Ѓ3&`- Åt@;]~]=`~/}tEPT}t UR?EYEM9MjEPtP|h PPtPvU TM XEf}}G}EȃPƃu1hh hH4PhH4h-}u +Eĉ=vEU9U}EċMAMU9|hjMQVuEE9EFvU{tm1fCP1fCPPtMhP1fCP1fCPh hH4( PhH4h-Ѓ}uECPPt?hPh!hH4PhH4h-Ѓ}uE1fCPPt?hPh@!hH4{PhH4h-Ѓ}uEPEM9MVEP}twETvME<uBj,.PhhH4PhH4h-Ѓ}E EU;.|MQD}tpEMUM܃<u8h0.PhhH4`PhH4h-ЃEE;.|UR=-h-}t0jpP}uPh"hH4ujpPh@"hH4]=.t&f}ujpPh#hH4.juPRpPh@#hH4[ PhH4h-Ѓf}jf}uP1fEPh#hH4PhH4h-Au=}u7jpPh@"hH4PhH4h-Ѕu]}WE f}t]EQTjhh@hH4|PhH4h-и"t&3f}t }uEEe[^_]UD4 B$ȈB D4ffQ$ˆQ D4$QˆQD4BD4B-t +t+vD4`&t& D4Q$ˆQ D4H=4 *=-1hjjЍf(1P1PhthHth +PhhH4 PhH4h-=-#=-hhHth& +Ph"hH4PhH4h-ЃT-Pj h9.)9. =Xh PPtPƒXuXv}n|&hЉуtzt8(t1@8(t,@8(t'@utttu߃@@)PRh-=jP| T .9~6} + . .T‰X)£X +X) .T X%T]ÉU WVS} WEPLPL=-}u=`t +2dD4@uN=-u7WEP|PP9=-jWEP}t +55=dthd]; +u +=htChE9sSt& u) +HA9uh,t&{ +u"C& +u  + tAC9r9vV)=-u9SV|PP9t <!=-tjSVh-1e[^_]ÍvUWVSE ]E}؋uENUt@u H-E D-UE@t#u t Uz +t EC +@EU uzEPj +UR EtI@tCju2jt!H-Pj +H-P4 LJ6:G,(> +P1w,uj+]CSEPUR_P69%EPLJVUjh'W8Ѓ F;ui+]SEPURP9%EP*Utf@t`juOj~t>SEPH-PqPH9%u%H-PUz +ƒ1e[^_]UVSuuhCH-PAPE PH-P%H-PG Et.j8à t) +t$ tqtQut&j8Ãh'H-PH-P1҃ ڡP-DPt%=w@- u t&F> tFӀ>u} uID4@ tt u3=2u*:t}B:uH45>1<u^C[/&<u"F< +uF< u~ +u FFCC-H4=wtBjH4PhH4h-Ѓt"=.tjh'h-ЃF>ajH4ShH4h-Ѓ}~ +}lj@jhH4h-fEvEhh&hH4PhH4h-f}EWhD4@ tt u-=2u$р=t}A9uD4@tQӀ=tC P-M@-E쐉 BEDHt=wE C;uD4@ tv=.uBBuf}Ih1hHthiPh~hH4PhH4h-f}5| PM)Ћ T+MЉy)Ӊ)څ}:jhh@hH4MPhH4h-и9) X]Tbt PW~hWh&hH4PhH4h-Ћ5| PM)Ћ T+MЉy)Ӄ)څ}>jhh@hH4QPhH4h-и9tOjRtP7|h PPtPX~8P)ڣXT-) X]TWPu 3t&Ee[^_]ÍvUWVS}}P-E@-UËEDXt=wEދU ‹EDPt=wE 9ue9taEDXt=wE ًEDPt=wE 9|9} t&?t GE M.1[^_]ÉUE1]ÉU]UjpPtu9hpPh@&hH48PhH4h-и1]ÉUX~ .~, .‰X)‰Tt&=X} +X]ÐU .9X~8} + . .T‰X)£X X) .]ÍvUS]/u@h!hEh`'hH4 PhH4h-Ѓjt& u;h!hOh`'hH4PhH4h-Ѓj=PtEPhH4kt&jURhH4uE} XxT%T t&s ǃvĉD;SrZ Bs3w> XxT%T t& ǃvĉD;rBs XxT%T t&CR ǃvĉD ;#r +t$t&BsDž9P +=d)PRh(hp(hQP0u +DžtDu0=-ujjhh-ЃP` %h)PPh()h(jRP uCv7=-ujjhh-ЃPu +DžtPYPPPP|u,PRPC1v[^_]ÍvUVS5u7 XxT%T ƅtɉEKw: XxT%T t&CtV ƃvȉ5u K1t&u K!t&tt&[^]ÉU|WVSu\Džl} v lU1󫉵X} ,t&XXOuE 9EuU1M t&}u,Cw<t`E 9sM }u,Ot<th9vE 8DžDӥD;hs*,)Dx+DCɉD9r,)Dy +D, +1ۍE0Xhtx|(8OtXXOu狽01 󫉵X1(0vXXt<2G;} rҋ(810\U tXDždxH8T@h9`u`,K40d\H9`jd Hh@HM )@ d@9vƋ`Dž+Hpى@ӥ@9vep,)4C9sB҉9v+t&)C9s9wڋH;lvl9Hs+HDž@ӥ@ \@PyTu"dt8P@@TUTTMB8u&REPWV1G?u߸'[o?E-1%;uP-U@-Uu \u +-u +1ɊN}t+1ҋEDPt=wE 1ۊ~-tg1҉ȊuЉ9wUU}t6UDJt=wE9t &9u }t$A;Mv11F;u,}uGF\u 1ɊF}t51ҡP-DPt =w +@- }t?1ҡP-DPt=w +@-9t&19u Gq1e[^_]UUM EPRQ6%]ÍvUU:t/<\u ztBX YP)ڣXPT))XTjh4.tjhh4.赠tRhhpPh+hH4菡PhH4h-ЃtPly)Ӊ)څ}8jhh@hH4PhH4h-и;|tUjRtP|h PPtPX  3MP)ڣXPT))XTm9~ރtPce[^]U,WVSEux= jjtPCxPPPtP)X ;x\PDT9ET8PujhPž TP9TsvPT)‰)XE…})Ӄ)jPtPi|SPPtPOX 9P)ލDT9r8T8PujhPG TP9TsȃjPPP蚞 ))ޣ|}?Ǿ }9||jPtP|h PPtPcX = P^T9rRT8Pu5jhPuPT)‰)XE TP9TsjPPP莝}9}=-u =-t5hpPhhH4`PhH4h-Ѓhh`+hH41PhH4h-иPT)‰)XPT)ƒ|.jEPEPfEPf EP}fEPkf EPvEPe EP1f.13e[^_]UD4=w1B D4`=-tD4@ w$D4HD4t%B tt + tuJ D4`b1]ÉU8Ej*P,1EԃEբE֢EעEPfEP f EPfEPf EPEP EPEPf EPfEPrf EP]fEPKf EPVEPE1 t&3]ÍvU(EjPu +3EE墝EPfEPf EPfEPf EPEP EPxEPGf EP2f .$.tD4P@ .1]ÉUWVS}u EEt1t&UX$wUTtt&UxsEE}^}T1G EEt-}v#GP_UB &e}Et$Z;]w;PUeEB;EwPUBt&e&}u EE}v}I&}vn}uh}t*GPUGPyU BM} v2}t,G P4UfGP"U fBME|)ƃv21WfÃGP1҃ fFU9Ee[^_]ÍvUjjY=HtHtP4tPt PPt PP]ÐUS1f=th-u]=-uT=-uK1jfPt1hh+hH4•PhH4h-Љ؋]]ÐUEPhTj3uf}t 1fE]ÉUPVSuċ]VSReVjS袓e[^]ÐUDSt,]SPMSjPe]]UPVSuăVEPܔEڊ]ۈEEEeVjEPE jEPEP諔Eˆ]ۈEڀM +VjEPߒeE[^]ÐUWV1S1UD4@ t +N1=-tt .|-1t=/%-jjg +u +Eƅ=-tj/hƃu +FtCDž/twtLZ;t5SvjP17;_-Džt&P-DP@uB~wC1ҊF\=-u/t+1_GP-DBtC1DBu;uutttu߃@@x/jV=|-tn=-u-jVh@hH4+PhH4h-ЃD4f@% PVvt h`Mc\u1jVhhH4趑PhH4h-и"jP!jV[^_]ÍvUSE Mx-1ۈx-Px-PAut-x-)=~hRj軏= .ut-Py,vtLjt-PhhH4讐PhH4h-Сt-P+t&ht-PuIjht-Ph hH4EPhH4h-Сt-Pu|-`%=@tOjht-PhhH4ߏPhH4h-Сt-P\tLjt-PhhH4莏PhH4h-Сt-P t&x-/x-x-1vu;t-PQXt-P跎x-t-1Yu<x-Atx-Bx-+t-=BAuuЋutttu߃@@)+@Pƒt-u + +=+~%=-up-PRi+t- t-t-x-uh=+p-P蕍t&x-ht-PhhhH4čPhH4h-иc]]UWVS=x,5FPÃ|P褌 h: h?|tPVjSًǃ9tWhhh@ hH4PhH4h-Ѓt S菌|P<|P h jShe hH4袌PhH4h-ЃhSߋ thl {S|P茋t%EP]S1jfPR! 1}u 1fP1fPþEuEE=-]1fCP1fEPhHtr=-t/h1hfCP1fEPh hH4n %h1fCP1fEPh hH4GPhH4h-ЃWhtM=-thhh +hh" +hH4PhH4h-ЃD4f@%Ph1t h= +譈e[^_]ÍvUSD4P w,$\ +1Yeڍ"؃u Éڍ $ ډQjBS:D4!X1]]ÐUS+=+t Ѓ;u[]ÉU]ÐUS[([??-xCďp `P0HPБ@XMcentrallseekEOFlocalwarning-sppppppppppppPppppppppppppppppppppppppppppppppppppppVMSPK[empty] [text] [binary]testlink +extractinflat%-22s OK +׃Ѫ++++--+-+++---+i++_̯յݯ=wb +bus errorsegmentation violation;Zx0N[ %s ] +`*(incomplete l-tree) (incomplete d-tree)  + %sEmpty zipfile. +[%s] + creating: %s +chmod (directory attributes) errormapname: conversion of %s failed +checkdir error: path too long: %s +checkdir error: can't create %s + unable to process %s. +checkdir error: %s exists but is not directory + unable to process %s. +checkdir warning: path too long; truncating + %s + -> %s +rbwarning: symbolic link (%s) failed +-> %s symlink errorwarning: can't set UID %d and/or GID %d for %s + (warning) can't set UID %d and/or GID %dwarning: can't set times for %s + (warning) can't set timeschmod (file attributes) errorT@00TTTTTTTT+31 May 1997error: expected central file header signature not found (file #%u). +error [%s]: attempt to seek before beginning of zipfile +%scaution: filename not matched: %s +caution: excluded filename not matched: %s + (please check that you have transferred or created the zipfile in the + appropriate BINARY mode and that you have compiled UnZip properly) +error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid +caution: both -n and -o specified; ignoring -o +UnZipSFX %d.%d%d%s of %s, by Info-ZIP (Zip-Bugs@lists.wku.edu). +Valid options are -tfupcz; modifiers are -abjnoqCL%sV%s. + skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) + skipping: %-22s unsupported compression method %d +%s: bad filename length (%s) +%s: bad extra field length (%s) +file #%d: bad zipfile offset (%s): %ld +%8sing: %-22s %s%s%s: bad file comment length +local header sigfile #%d: bad local header + (attempting to re-compensate) + skipping: %-22s %svolume label +warning: can't alloc memory for dir times/permissions/UIDs/GIDs +can't alloc memory for dir times/permissions/UID/GID +warning: can't alloc memory to sort dir times/perms/etc. +warning: can't set UID %d and/or GID %d for %s +warning: can't set modification, access times for %s +warning: can't set permissions for %s +replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL +(assuming [N]one) +new name: error: invalid response [%c] +At least one %serror was detected in %s. +Caution: zero files tested in %s. + +%s: stored in VMS format. Extract anyway? (y/n) skipping: %-22s encrypted (not supported) +No errors detected in compressed data of %s. +No errors detected in %s for the %d file%s tested. +%d file%s skipped because of unsupported compression or encoding. + error: %s%s %s + + error: %s%s +not enough memory to invalid compressed data to inflatewarning: %s is probably truncated +%s: unknown compression method + bad CRC %08lx (should be %08lx) + compressed EA data missing (%d bytes)%s compressed WinNT security data missing (%d bytes)%s +error: unsupported extra field compression type (%u)--skipping +error [%s]: bad extra field CRC %08lx (should be %08lx) +error: can't delete old %s +error: can't open zipfile [ %s ] +error: can't create %s +error: zipfile read error +warning: filename too long--truncating. +warning: extra field too long (%d). Ignoring... +%s: write error (disk full?). Continue? (y/n/^C) error: zipfile probably corrupt (%s) +--More--(%lu)--- Press `Q' to quit, or any other key to continue ---   +    + #+3;CScscc !1Aa  0@` + + error: can't allocate unzip buffers +unzipsfx: can't find myself! [%s] +error [%s]: missing %ld bytes in zipfile + (attempting to process anyway) +error [%s]: NULL central directory offset + (attempting to process anyway) +warning [%s]: zipfile is empty +error [%s]: start of central directory not found; + zipfile corrupt. +%s End-of-central-directory signature not found. + +caution: zipfile comment truncated +,2BRbrŠҊ"2BRbr‹ҋ"2BRbrŒҌ  ( + +XX8o(ooGCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.comment.note# 1((p7 P?GojTo((0c XXl ``0u X ~ 1 + v , +̛+Л+؛+,<-@@-@ @П@PKԋ+5 :s COPYRIGHT-jai.txtUT EEUx +Vr7+˚Tbɩ] O_o HS*v1;=2Něm?>7~\{WcDKNw=P,-M3KyS`K?\߼aq[IkdJ.sB觸s).ޘeGzr\GE`ELxK~w}lKFS.6 6 w!;䜦i…]yGS;C֔n?ha|$|ᘾ4"-%$Chv ڣ&dSa@FbwV)n:H {.!Z'#i#4=e{ +KpF{b*lcHabzE6zxڳsfau#fiI'(@z#jds [NLv/~o@W\Dw'PU;6X7lDD1̚xA"[6Ɉ*\iæ#(B,(h$ӄa=ON<̼ VE35&ISkؒ| ,HQfYs^_A@hP1}gl}R91$C-wɁ>S̓1ffՈӜŀzɤ!_#VXQo\1F^4D6xkJjżĤgPW=7sr9-Xg#Q,o4ZOY^J_6m%FhǛjJQL3{^=>==uit4Ś*l)mSî pAS)FwX Q/6f࠼0_S|f'kHV#idB@lYHd: fg}ɨGTA5ށ\KL[/`>W+8f2¤'{0Q_q(THu磁d=T+ItNRcq )ɾB{,lHF=̲U|%B +PKՋ+5Q!DISTRIBUTIONREADME-jai.txtUT EEUx +TMo1(U[n$ (MH9U^{y͒BV 3y1!z]Q;MfE1na:{?.f`Ֆ/(#DqU Ua*\#k6 L6FSHY#Z&cP9Pq<jQVj% ׃ ^QV$AWUƂ +KŀcU8ph8'џN]\@[ +޽iQWX6*UEYeyS{b-Oj,6ڦ\uMiUE"?r#/,+8brS?\Y@IkS$ZE7kVzyΗ\[W̢ٯ%VBϳ<*>&K VԮ!3-ա,z5VjuYSo$/6̩G/@؀6 њؾ05tX-"~UUf&*Qڀpж>*Q'+HaYeP:3ᜣJzWZ_rh~.B[;>=j:-" ) +eݱJlg)Uce5 ,Ȅ wfej'e +_rm6@5krc{8-T<'"]kQ>zD`>$ueT5 tGJBo3nM@WmylNLS'TzdNڤM})6+%"?{(_ưh{cꂯb*Y[MJ@[y@ R@>_Rq*ҽB'i5](z;PGwy/ '/mFj -QЩ)8Q壘#jDJr=[~O 2q;7*%P|9.-@@e|-c2p(\?pX1;Ԗ4<%k_ cNIL +*ɴӧ8#`H@H<=&_D$ r7Db:YΣE&'070>/Lmzq&WuI#ar$hN) "K~ 3 RS JaVD)-XI֕S/0JiMS՞XBF錾,63@>u+XSPΡaBQVU5?` +kq2'rՌX-nW:POĘ qj>5=Ap՝!@>Q'@Ku[׉+srEu:q`OIV^/ݰhc#BD;/49++- wi81a,2|V!%BUU0^ q@D9˷ţV՝7r?HȮC )(?w#IҮzo^`-?x;u 7҇N|Hr52+#r XtG.6Yɜn(8}K/rɉle30 N+m(XsD@{+k6 +45d'Hꖞ5 +Am~hEqۗ +Q\w?AuГf+yP68kcnl*D`c8P?I?mw\qAuk_.A%!$]Қy%-tٰ9~0e&'6~>ڶUa~ł{Was149}첁ZŭSW:WS6^ZN㜻N7=#@7j _KϖFxtjedJ9z\ +m;sdzy/1SxEQ?ώts(^~8bMg͙lt##kYʝmg#+Tߝ_\_|ٽDJ\YFRn,OSՎSNXUfgR`}]܉[ITu[.~|+n*U͘u6&vG!t%2e7/W Zvtd @?a jis覧ꭺ-O2/\Ym? OAB25NC '{DW#QkIOEvm +XNĤ*s{7a>+?99\EnTu9%r΂ndL@ +4>zzUku?z3N*K83rRu-Õ~ '_L|PI ķ OˑczŸ:qݎ{37WNŽاu #wTG8BȮzQv#k'K +[ڙ鄠D8s>W+05(z_W#fKoAr:ݧ[̬[A7>Yf-qAH^r +sUcRCvR @Hj +A.̎ƮsvCBU,O=ֻ=㶔tO;8zWOQ @!۾GnF?EhϏhDŽ!+OW +2/3qY(dWׇz0H<@z+fo]ϯ;/K{ ۞.G9jmzn Q wm&%:\?M0/6 +e:=C Od3q8ԪK?uUlbuי`ްPw\HkWv_>Qč>?pA}ud s3Ʋ;4E4C +]UUcv>Ӗ)Y!%_Qȥ%PP5i;?7GF}m}~ aǬG9ˀ3sPf"3l3\oAz?۟Tz>ּkNFN_h(B/ADXtrh|g)_ddQ>=*^MDR>Є-oŕ*8 DN$[k5A.xfl2UCT4}@6ͻo߽yu+s77oPKՋ+5ΒnD THIRDPARTYLICENSEREADME-jai.txtUT EEUx +Vn8+$lvHl6FKcJTI*{o7i[`@DyWZ|q}9_g:_^u>hY21v y[*s\B=5mN~jU(>*h[On<]wrSx;v5pW;|d +*F2s+FV4zd ":jDhF˄3ޔz/4Ci{e׍[|/4 P}R!DqsL?,>rMu-lh#]ej[wb,x&"iC)5ӟL-KjzͯL$B^竌Deln*mfYˎ9o *(]j:U0ֆQU܂4Uhy0R,ǁ.2(Tn׭1]Am ulV3ulu9dNhF5s{}ǔ!:qpWؼ< +ݰILxقn3<c{ z%eTBα]KMj^uzy5#و{e1sjGmi[Z &{&m^v}V,b=/-(רWpBBb.)c| "juRFGDɟHdY RI݁pE>ZcR6:& +B{hm'?T{{?H9 tEa`pݺip1P?˕ -V2)֟^xjU3ZAS'_*FoNJA7Z9~FCwZ ++l5zb_Ɉh4t-z+%<%NK_;NQ%LˬaZZn+ [SWz,BZC|'kfjNw>)-}T0 +q8 dm.ś(],J,Jqqt +PE%" ĩ[)&DF;^ VᴕոCNx?Z`Wԏ|$` Jbe7v&WAؙB"{ ~l+9~޽iVx[ ֟}Gtxw/PKՋ+5}"/: UNINSTALL-jaiUT EEUx +o0ǟ_q/A˒Ÿ\eRHA柿s kswkھa!Y6B&@R,V^@zJ{01зíN)ζb>gZqD^q͗4)VĘ)<wզꂁD0҃Jx<䒀^ +ܕ]vYs +lW_ǭt9< 3ƞuwuehl5ZCEP~N$PK +ԋ+5jre/UT EEUx +PK +ԋ+5jre/lib/UT EEUx +PK +ԋ+5 jre/lib/i386/UT EEUx +PKԋ+5>o8jre/lib/i386/libmlib_jai.soUT EEUx + xTՙ@AkԨFm2`G1h2  !;(ֱmQEkTj+Q5ԍ]ԱE.]g͈rn`xMxs{|.Xd2hMR +O/U,)TrɊN 0K1j¬$fE);UQ2VhVZzTEςD_͐KxyVWCNTBO @n D#ɺ\LK^/%Cz B_(dNH#8]ՐE]׆n |2߁\ + q?B0 ՇN/ 5$ 9 +ޓq솼' ;!1(x-d!d&_!0vmJ,]^y<^@~cp,-!a~ o!Aރ!_@ u2z0HAKte[ X!=:>lf!!ʏkF}^ 0}$B~ d |>\9 R s 9vr,d#{: u y}#d/Sȫ瀼[x?ge&KRfzz7ILQ{ P92i/,C y.5䃺{mb/?/#-[ϸO~Ql26k2?6LIvTYXL)icH$C|HbU87;i ljS3B^xܨǩ & EL~+ " l=>c`/]aoY siLuLk=JXT q`\bw5}?FM]/OQuJ*y8,">r3:U7Hw;n\_&7ik6ް(2ig=5= VǫN>7a?NC}lMJ?3#XRcbyb|p 5̤LW͢"> D}P.|O 3)Y׉z_/Yuڻ'rI RgGynjTp@5i{/zp֓:Ls·۟t?zY@'W*Fb +Sz=83MڳxNďx.ړcI{SSEFq|\tCJNy8D#&%ZϾ ߱>b2/!~Q<}HԷ7LJ5F}2hd_̗71k_̷)~eLJ{ՌW ;zwD}C-^UׇG0SIy铰_ڶאQw͈ "QbUΏ_2:JfѾ31/W [{٤d{-ωx\UhOFoWc$ /1^`0?/0~Ub1G/`EzI{GVPYjC| R2G'*U{{k1-G],\Ox9(U7E'_]L<8MTq?)HؤoOX&0o mu?W7BI:O#b}?[}@c,̑|;w)]??A{E__|ߦ>l4;O bObDmNj1cM1y?Jq^[Kx?/1OGg1֋n1U(=8V(Է6V.5# ~ CBw>Yu\&r~v GX_1Ѿ+pw^7/Dt-~O9On%=X>ßy_/~o۫#G5SN3w*).ꬢ>%2Sm?>P>hR~ esb<#!7fᯫHA+ʛ}XDM4^#{Y1Q_c,DT7~_g?SX-''Z~T>|GMO8CbR1ژuذ3ZhKIH)-'EMQjiTZQ iEyB孞 +y"CK+󴸤-SYֺ͡Πj% + $*TxՖFwTZL. eZ3`SI=Io0.匍+z \MNiWV8niKYq{n۹ҘNW~J[~K$$-Vܮ@Umn]܀:e +HK:eYa?.??*s-2wsз2lhfv\c^amVV~0RtA2}W^$V,vwچbr.K.r{ޭז[%K=%^9-Y{5{ ƽȅp^$G0sy䮓rRnLZ64]݆Du=k[#1h$SOspTn:.mlߠjct3Hg5Z!Ewn)aH c s'xl{\總٠$_vէ +oqpx K~eOt_g3"(UL՞ۈgU9cp)I!y)1eLR>YЂVn4jC [Ѹt\Q5d^KvcR%>2*PX/] Z?դUqU ؠ&PrW opԻͮ&_Kiv{7(JVLkM^5+W8ݸT^iŴԥV\kեJs+YP[C~QtActx+7*}olZ0A0w,ƤQѺq,lJz9&m-lݽѺ)kكJevtm1lUdlOfiѺ%*.'gZZKwzLژ1)&.Nu$5O[Qp#˫:ӠQ4?vUYQk{mI_OuJ똔۵bIz]J:\:?of/!d.G,$H+i#dYA:*!z~2Hȵdl%v2BvNHn"7Qr Mn%cdK ~r'= RYd6C\2'-dYHlr.i#dYA:*!z~2Hȵdl%v2BvNHn"7Qr Mn%cdK ~r'= 2&s\2'-dYHVM%m,#+HYEV5dYO6O dNFrIvMf2Jn!ɭd!{dO$wqr7  +&sH3K, "Jɹed j#FC "גal#An ;.r#LF-d7=d/#ɝ.2N&dG'J?&sH3K, "Jɹed j#FC "גal#An ;.r#LF-d7=d/#ɝ.2N&dG'ʫ2!d.G,$Hi' +AVd YG֓A2D%d+F@v]Fr[nr+#{^rG;]dM!O ؿd6C\2'-dYHVM%m,#+HYEV5dYO6O dNFrIvMf2Jn!ɭd!{dO$wqr7$Lyd>i! B,%gsI;YFV&kzA2D%d+FHn"7Qr Mn%{^rO$wqr7 "sH3KdYHmf}p\fwP+p%v XvV'eYZù|wCiډUOWy}c~]?|}.l&tc3`+avb7{18QQ )L4ppӘ,Q hA+сNG6b6c bv`'va7#؏a1 N <.`SKi`sG hCсNG6b؃~!&pgpp0)a, +?Ўtb=Ѝ؅a088ILa`WppMY6X.l&tc3va7{18C)L4,<.`S<*X\5\G+mhG:]؈Mfn cbq088E\eLc<*X@ӫ kь @'֣  ،-؊>l.0`/Fp8888 9Lb +q 19̣\U\u4FkhA+Ўtb=Ѝ؂6Nn cbq08c88SiY%b׋q;p888 9Lb +q 1b`WppMykь @'֣  ،-؊>l.0`/Fp8888 9Lb +q 1b`WppMoE3ZЊ6X.l&tc3`+ ;؃~!0N&pgpp0)\%\4f09̣\U\u4IkhA+Ўnll6Nn cbq08c88SiYy\$ppӘ,0 ++XhF Zцvtх؄nllEavbvc{#؏8QQqIN &1˘ f1yTk&|c5тVх؄nlEavbvc{#؏aqIN &1˘ f1yT+kSkь @'֣  ،-؊>l.0`/Fp8888 9Lb +q 1b`WppM&X5XfmhG:]؈MflVav`'va7{18Ca1 )L4`SK f1yT+k+Vc ֢-hEсNG6b[}؆؉]؍aaqp'p088IL".21Ya, +_-hEсNG6b[}؆؉]؍a^`?FqGq q'q +838s8 ..c3Q*:N3khA+Ўtb=Ѝ؂6Nn cbq08c8.4.ȇGCu FC(!}ICȇD>?.!=%N,rȇw"ҏWjWV,?>n˿y;O%mܖU-v1u[w*mQQn?v- m>VWr^n]rۦnSeNժ/{IlʎGD w_X3cwTϴ7l)5uݩ[Wu gŷѣ{e36km/mc9h7<m&(ǃqfH4hCI>de>?lD,C+V㍆sg[wh_(>()S"KD#>q-s#E3.٥'#z"zTɋ+b"esYIHkvh&T}JCN\!)-1o_X_7,gwlVy~OJ;*~uo=`\]}Z'%?h\} c>lJy1ٲ>ھ#__?_R?rW#.>9эbS_/{g<^U7Nx&ߊ9= VOoү?uT{o}h&Ֆxg:KMUˢ5)5—FݘCZ)/Ŏ +g9*(E!qɀ-hBk7cIYњ_GC͡hBkC_+F.W_VE +CU\6#R(Z 2 5"yS8yS$x!6#ȼe.!b+857. 8+B5#tF5Lٯs3(vd&׾$I$ƽ#q8T@ҨVKˤ=SPcb^FQ*n;~v3g]9uT=[1>< @H;BC'1WEh' )V㕭k21[YIexl>Y.x@_Nьubw?{7Nxp^tx]^7^CWxh0^n~s?^xsxzn7}j7ǫcxloxM)1GuS7^7~zGt#EqGJG#r&Olt6Wn>wSi+郎W2^u?үnmڻxunWWk%Nje+wvmjޭ_]|9W^=e}.oDmݹKZKrY]{#EE;W2qo: 'sUNciFd=\#d1$KX0'>jKeƯZ;C %9=-=L^ws6Yb향^vǵ#cK"+ⳂvF. 6Y!PZd*GvQ|b00 ;gb~|>S|>a<>ٻ܍O]oq6aFw+C{vlene y66&b%;7w;[\x]vq~8^o78^:}.둧+8^l7W\ƫqme7m6+k {VG+oqăM"+JV_-%ӗZ_UN5.>v^FWHvsi֎ȢTjiR3x[ڤ?ey֪Ͻ\ϟz\]ژDmA l<2f?٦vAԘG9 !gFg/ ELê>1ʉMW(O-Q93|-kWo|Y}"OxYh+}8_|M<A|Jνo3Ͽn?T{W矬fy}Zq<<3+ onwCћ=rhgPr##yvU,(P#v]v[iq֓˷U=e1.ZeE;jc(2)ћ`?%BXXJ'pݡ؝ٍ_; ֒ہy|_0_bm%"~A2~ߖKu`A įIƯavy9JYWpx_ZYKXqR]e6w O|(ohғkhțXy fkL@].M7hv1崟KS/lrw=iqe4Xb=fM,J'-@sk;sJ_|ȟ1נcoG>hUq>F0WW>>I>fLHDFN1A-eeO9@<=$m.|9r2/F9W<5_6(S'~Qij̢>t (rL -k h=>_pOI'dcu#szW9T돇z^7D| . +h$*=k?HnoSηe+!߻vIcD ~0P`0wR?WB`p5y2u}G|$>?(B#"m0|W;p߿ 6|g8|7%vw }rߩE_ |o遲`S|#ewO |(Qoׇ|G@=>w| #e~n{(D_o2߳zm<o>wY#Eg~w0Y_ +|g? ?~2_q|#|/x+"s?; ;{Q^/_zM|dsz-{1丹߳<.^%=As%@|a|Cx? +}KmW{; \̷{(?Ͽ).s,]ap'|~<}|7=cT9#r|P 2=}w˯ |?W滞 ?ϟ>G=6;qW `ΫZ +Mo\%ouMlTf2FL~;w>@jq{9HC,QSn~^? &+bG6V }p;/XI\܅NMh=i^M G-zԯ.p χE O^QIHӫ~I(ݚXCI_ +{?^g%} {\g@hU4"3}?ay?eL˗p4+,i+'~?/3?>_ы\lMr0Ki>uD7?=E }A?OvFjl'}\?awϱ.} y&MSq0M[lg|\?]wS:%?]R ` rX$s?$?鄟?as?] pw_]<+d)p9т+tA_UC0F`{n_wZ3Пol ӕtLl]M5Ft/:'XqNvϷ!2 1^/ɒ3zhiB2{nCEʶ4մs>8+0|rLˑnϷ۫xѣ=ON'Jg{hsonk="=ksy!!kel/(,i'~A L |̐b> xļ}M]1h;Wtd4Hg^z`I,0쐽E`j?EBQjz~)5.(j??RVޘ66gd!0Q]7&;J)1!H{i6jiQMj[3_m>{xzsxxNo)VM<TMx߱ϫx-Կt!ի͚^Y)udK >.3jӌV$:S|||36}nH;^ZW>=$֍Mll 79쾔$$k1{vGS% ~_q?&߹Of?asgM-wh6Cəl'aUlѬ Ww_T$Wh|Ip|7yJ(Fod +ܠysBA? ?4)OG7NE@4*O'N%SMHOBp^a~l7?i~WkX}kAe5| ˏ|:z\>"ck^b|Ti2wv>?lZ(N]~L2ӌ8Fow^1wI?bgJ,m]"`= "dvc?`!9O|Iml2x}hf,v}K7AW 'fH~0:#uKw Y"#َ-{#V*Dmۈ&ǐn3>gi'D5b@g,#_o7f,: ]tR+6fѤtcgMf,27d[nNnCh.T'\N*0h&|d9|Bؽ c̟6I)u$=Jd=fDX%ɣK8OP@%y+-Dc¹h]kH,8oQKﮰ>pX7Uwdoy-jw]2uߺUxF"#vߥʯŭk&m4`yo\EkՊ +5^)vwν} +;J7ZU5im7x9XaoZUxsDKIծǛ{uR*heޑ/] ]UzE]RWJ']\Vvrx7Wx3+TxxbJƻxqxKa*]"l=^ww%!]g|jAϧyޢ<Λe3b1nyMB|qzb28 ?n~DZR%n΃LYx >7ڊdp:MbZWa'YR:'Y긶b&1;npN/)4%t?d~1k?s~U1\G&4f;fW2f?n:8y@d|3'Y}vP>Q~G IV*{QV*.2~u/cojۅk}Zw_i?qBȊ:m +1m4jm4} vRN kUև_,ԇtt~481%q|t}~oh`k?7a߱m$3m7hqInL hf;Z̰`<cȸGC* +9AїʏG}F;>4箥fdWdF|o@8T j}Rj&ї+3#r0lɔН<ĐlL >etc6XBSdxSG(;m|O~!a"f `yy?|dVOČF/#:fuc=W,#lp8!diD'q35$yFZB=b,)KX 4RQ$tAi,%"E'gH)KR$YAn<ٝ$+o&wTH>ف2iɹC/Z"=%IZwzsfѿ'PF3 +l,S:լ)!4ca|EN[](|8vBd7Ʌ|H@^A3#oTzUg%@ kf_ +G _=CDs,]"o^!~SC?yYr(~S2'XGw%oZz[R=+ +{J)E7Y.wtaElfbwbSR.~Rok~%BnⷻRߦ(K}X_wxaqV9n2d$,I,Xh"Oc%hu/'uvO b`8f;~ZB,+4Ƿw8F=)ؑ&HYMȜfHώ/Nzif%zJ'h<&$[t Pb$Y:enKlKY:!Y%w:rUbV":!( +Z*X#iV0ReX]=Vn+9iUR[{s6,-WJhj9w|~V=ܥR? g!?,D~v}}<Sإ[> ]ۯVѽCCG.kC3e>|v|wj|<*]#_)P +Rg,icQ||_2U;\GW-G6m*> D>mgRe>*v|Z2k|lM0f>dJC!U6*_OZ&q[:olTX1Ǧ"aM~(-A+8Xtto3.[==]oi$}P9iO؎/%bRVөZ/] rm:Rr-R&N,$t N^b-ξ,#7hލm I`\o' Zj޷O8m{ʰuLd'c-Φ +;HbGqLA­w`hy ])dZNAd28'|+8ބDL˃ +s4+| ]!_X( 9)$}_nZf W (D~ֲ˥}&Kn7;6[CA+r&nSVz9w[skokq|};_QYբȅϹ zr||s Ubv1Y +;*" $,!劣g5LUˠY@~sŊbeoT[ar/KQr}-1οZ*%p{;X}aRmR8%.˿u_ b[QDQZ79{ S7lד[K[{i@ P ^@/RĿFRm)d e +oNo/TxcH_wߐ0Q;bB*ϗ|6{O&w/F} +ojoa>Zoh/~|b磍d Xwx"wZ en6 +fV?jTz2iɌ1-֎1?t^t)p@gbLc{aV`@/L1tV(ciZI- Ʉ +E,5$%uwkx'^&A3|* Pՠ$_,)[*ذz!i9" qUy@&U[z ~a*lU׾%(R#2a(j!Q@Z}yGgJ->/~ṄZm>OWlp +}Sg=:{?^`[{Ob=1~Sc.mͿzU+s2ޏw F'k(-b{{?¡޵՗i#Y{wucX{Aǀ>a#k6v{^u_?QUb{?T`Ǘ2ލ>3 `oﳪx{~r{?ຈc!3P[4Q +8OM+IU0E9#q.>|JCaN}4ȣ>7#(|5ڼ)YL =s#T׏"}RGCA/49]ys闕\AF:8Ctš]!4\Hx4BTĵlhIMF<9+&eENɫA/ /OJL":;!tzd>E\N GxXQtV/vo![m=YLߍ0ynTEbΟT7|HyIi )ETwN)b1̹ޯ)h!u?sA*u@~Cox_|;q}=}P-}j3Ҭk`O OJ"^;Z'^[QO O`urO|{}ަ*TMv.ɮi蓼f,6m? 6X{=\Sv~u{}Ӛ Okm-V{HMvq{/=z4Hӣ۾Zioq{_[;".?i! +r)mc4Nǔ)`WR[0U>KX?zq.HnFBS%Z" +uVsG֯Q6+#m}.5~wP/q|;h^._-ο;5ۍljwsj凈. Mm1kBc4wS[ȿk8(s&'pl)%E'p(_#)JO8Lj^&"YXxg<~]\1o<;X;<~b-7yܺZcKPcGofyy,ayXxqgs(Oc<6˻zLOp4?:M'_M6XgՋ|9dTc9J1պuİ + )SgSdèn?~lfxlJmI,Q6m,lB_Jؐ,Z=Tcfǖ3xgj(cݳx ]D~e|] ޳f +aRS;'{V3%g/WgYC/ƀxX.3Z|{nF ,!@E[l`5S(AuGې}yk}ɢwZ{StL"58[.b]{j9 -~[.\~3,'Y~'E77demH-KMOe~5yz'тwzDv=cBp=㣅#  +3[v/ff=.me}խg䙘hn=c`=f!^?'Znc,qؕx*PG$qI/xW4ã3іw<> ,%,<Y/\&xG9qR|ۯ9׼5__3 5m 05r5x& k*=ܯ$LgC|3 +V=>x(|~y1Xys2Ra#e:D}o3D<(LHK%QgJYn:Uy^, eWg;Qp&}^ +ד6R~[QF> 6RM5\K"X'܌3s+1'g\@sy^p}H_7UaNcj@wwY׿Cfh0tJu&fE +sSrOIuy`j7_@aEfҶ]z~?Wno1 +j*"64҂;n`E0P0=3҆㮰ZgTu˴__I-FLے,@H|?:J%  +ՑdvѺ<:O^$I J LV?ZV BiZQŊ0ɾ3ZV*јBfM +vPT@hT?1W%dx^}X{4 |<4ZEC (ջ*ȏ4; piB> \1>Nsnq;HlcNaB48mѤ' q2`la'ySyPhp)e#)&,T}(A򟅗l0p08L#}3n;!nu´PlUHs8iLu%\ۥnuJeizD+9 +#z +UA,c5l8WHf(SU݂Җ/jI_PbKE_ 3|^dϹ"B_ޗl~Y~7_}뗱@,%/93r|/;~,VO~>W_BjF˚i^6Y֌@8wP̛fbYeedf-6/럓P^NHa6%ѥڝSV792ݓՈVYUOVm>[j]Rk (b 3HIA.~vFcג b ) +0Yq o8OĥXTaPwN \,= C?LQ[]p؀moy_KjӤ$ v /)TE^?E<0sɷO`.[qsV<{'kۨ 41--#A0ɷПN&^'N[34+Veo@9ReaL,2 7ܔExk!7:1 .Y?Iо/'!ccqFBsw=Q~$jdX%l XH!$$B, ++M|` ZDQيe+OgzB-古IЈ)M1(FM鍬J)Q޻ν $9ofiqh%#{΁wH/v-珗i)=X1G?ǙZvW-h3XK#XEZ.~s_1叞:1[cx?Tci|X; )P?z\{|_[3`9}}[7xN2a.gcB}?Z80ۿ}q.yH%)?+`k= Ztn%}!P9Tl*hCdhOEwC|}]뮫B;Euʀ +Ҏ4hs6]9-9`7% E +v`Sڟjr!ف&|tw˛3fwC`5rtBsпD,,|0.>RX8tMwjЉg򁈳5h(8?7Sg>i C P_%) q+w7ze׫,Bgѡ6:{yr6VHDZ};Q ;i_|tJP>jwOcܙ5|/RW G?v `G!N\09qTpoc(¤<i?RZQ_w&}OzP/cVG[8G GP#Zw&4d3mԺ 0R/wIO#bS-"Mpz%lye&믵1G_:t#@_F*vn\7U]lRQqYݸZ<&?@%ϢkϢ( 7 vyd2 57I >C´c#k],ϝRЉ cARJ!GsI`<Tkz:J 1E$"+B<&Hs%ʣ qT>E:NAet-* TrXT7a5)pN%ӔaOK+\6.7AE߼cð5rX Dfe +DX.voi9]1!Z UzNaz +&!5ȮaQ{?>Ga/)Z9C\W-/bruua*/cAVy۩_a9/kcWNi,b/f0K_kY2c➢_~Q_~KA/SY͉:Z%:_ޚ/ Py)/)s&錔#?)Ž704KW?]u#gC&be'85?fteZ<->-V "B|Cj _SGfnd3a z6?^!u>.V,wD Ƌ|Ia:2ŭ2&}Fն>KHs~xcP8g N.{=LNny,ѐ)pN!I :PrZ!d !"?;?g+$g&5h p!]W.@y?n8 Y-%s)ns'L\j 9Pvkuko|2FQr?*VAb*D1 S#{HE7^Gx|3=X`v3/e%)MPnEo烅|5_'6xw6Н!4\l'm-sV>pc`T&_P3E>kS}[A P5wmni}q Od4Bi AXXpJG''l:x֗K$i?D}+=U< +|t QV2 $/{#6xs#~V?@><жݭWu(qQ=32aX/Nw@G@v{l ;9PУzMmy&xT<:X_QdЯw1l$=ת;OVJ>o EH^0 Ep"ɸ9*p֎w@FkHV/jq'n_qqLt\& A l>qG=w`PX+$UNts:.l!x颲y󣰶^\cNhѥm2MGʡ@wx( Hp{|$Iw|k\s0\'HZq˨e@h+'RhyBJBхFRdH#`9Sl0w)6* L" "zk0_bڜ*;OokHiXb1N?M ^+gH 6h A|RlKk}2 G-ǧRۼeo񩻽9>W"5R$l#f0no(IPhBXo"g`p#fG{ֵt55~0#uT3I5|ࣃ.Tv%""xe> +r$$wfqI>o#v}+e@`_>R/CuR((̒_X>2AE.AF. `{ 3N#?j1ho% +YA +-+|^5GqYJ/MM3fB501' ßQXFX#*Skէp_x!u^jyŇՍWtϞL)!;1 Jxv/ +K)i*n8f]ө4rvkH_S&*1Kٞ{,*|fQdj, - F2+os*{ +ߟC|b݈+CȳԤr;I4UC&s}ڎl#8˩FPAH'6iJYGY^<R?Lߞ}=IbzGccyW*?4#!tniP:Z"MGwRwjJ@B0I4?CbbIN)/EMc/_4}F@cci\(j vh/݆VH+CQlkv@hLe.tA1SY)/jMU6݈:O's:tq*eUPZko d͵Iߧz[@:d6QtI1)lL[M/7<+7IR}|TzR] f.A hh d?_)ЅO1E(K̄h { +gM\tJIS?_MSg 5@ R95$nn]>yіCH3LOYI$}we&LH!UHB/U|Вs g$y j,0$/#_i ]HZǡ$lr# q/лmIW' U8ɟCmq9&1se6GgcT&3=4G՗מoO@pQ0sK`Ip:{%x7gQ>C RV՘+a躆 %v5/"b! @nC}$ށBUus4ruRHX13$3iRWVƋ Fi] w@bfr!X\/BVtl߀RV6VN.!Vt˜̍Sʅ|#0k"+ + 9]$V>|e!>t 𡋯|b|+=W.|d\YùT_b^ * p s<!}b'&9T\{͍Abϥ0!mº˝bXP kj<_o­e +1t :RN9mW(vHi:1xVCCWb>[ As@do??.~F-~JߟJ*=ok~TwG~K+7<ߎ ?O +o +&QO6xKܣ7ox͗o$?M+?of yFI5av!lp0SLrݪuzrVm&虤囯يg9x%]cak# %CNdgH17`{_ y4c23paYٱhݰGg<Ŭ+`P( %0NW_bd?+jEвjf'A0.n>#Y(O%̙$kn'QkJfW&urZ>k<=iX{nO>_o+_5|x㝻c[c_>g:xX߽ ǎkq]_5|Ϻ|V׎uu{4=F{=WSW __mW?ўNٞM$社߂;c/Vgg^[k_՟o( Tγ04MyWMB=-JQ+5u}Jg/PƪJwt;xn+1.nf+{Ee1ONoߞz6g+$SkULIfj׋3n#1~C +wEgѪ}$p6^ g0*BސrQV +=Io%ޜJu +dy4Xԟ?vGY1 +0$oϒFfHh,4XiLA}+ԗ/rQ c뮱b5=VnW?eQd,;6ʮǭ1n<4ޙ1R瓽usO\a 6&%e[*'W%KDvt aE R.IvIY*{XO/HfHj& _ugD~Ft GDEkz.ieҊL_K'e?ăv%`2 ylw\z (1(w= nV ·]n $(=0{[eO7X]p,6]"ׁSQ+L[SwZ+ATk^|vtO߲xwwwBw&wMiw;'iYBOw}`\ \ּwP džPĕׇ3э WǎȊ$)i=(Zb+yr Rʆݎ2gs GRnK qٵ'A6/OzA<256O=ͽ}Zvcƪ5,1/ᵴr9Pd@s J뎡ywzMkg~9Z_hm4Ƚܺs7$ 3(9õ4ohqN>üL i &C x΁[˫ygQi#/3e-#\_jcC*U`mjH{uQ4M^}ۇA6 +WM8Y5,b=(RC|PՖ;Y!| '6@ܺAo7?o2E gNv2ۙqA C xvjǪQhЍsBhpЧ#&ח}+m 8{C٫H N•qiOxpA[uNBT]:9X_܎N3u>7Tԥ\BrC+89QNiCL 70ĭj KT.SCD,lfö|I67adڬk+~)rݯH,JoZE0Oj]Gj6/G`YHnA @Ύv)h +/i[ mP\8> +5=RКx(usuz1{Cdߜ}GQY!dZ}]S+Xe}Rx$!6Qpw;}imCi3!UG<@B q> 6MJÛeR8\{YL` ~^e|o\}YYxȧN[Pp篶X`).8=8` K6B|!NZq]+1q࿎'m`'(ꨰk7^]ܻQq7yª,qّc5x}zo>*?FC\5.UVep" +&@ ucWv0/dYIQvZUn?fBCEfyBUt (mܻSPZ-RZ-c>Z|Cg`5룥0|Х]RFMBmDoA٩Q6AP /d ̥s+Cl.#8(r=9UIĸJSAahj0:p$n1]CFO]CuEI{DOR yzhd2a +Հ{ ldvьD(m/_<MGvה6LB +0">/DCT/N71;5[*MgA8.YL%6Gk"l~%Ճ͚-2Ibz6ALς\$ n9lR4kl9 Ic54 prd[a(ߠ@BW/5 Im.e3%M)lƮSqy~;5>i-~m=\C& + +eN0% +h]ApB \u!gHvΟmӰ4ˬ MP2:֟ԗй: +Np\GO'imF >g)L#@w`͈5j'a }cJ uoˇn{K f==hSc+\awU|}ѧ<@$DA[q:qt_hKܹXE:BavF+h!t Qn*Y{ԮPljWSn@^_տKe)) SqN&8kibTgUJg Z̵:E'OUs|)ç[O ┵1x!g7 S'ןtA!(zիm0aP\Ad9 餎C.jvarm01"?{$=k+"U>w:It{x`Q́f=H*vWTm *MaV&6sФX 1N}:\Cg /.4S`7&yn;Qc 5>fޣdjGNZQaBpWAː`VsonC v3 u3WlNϞԟAj+g8qѶپ JG%=qJ'su-O_}&;_42Q"64 i?΃<ؠ@7elC`Ȥn}IKVJz,gPPlvNɆv햦v\-& + q)8~wf4/hm;{g&kO Ml_FitA{.|füZsYd`0,c>nƗו  S.nc@S[D+\8{|b/x 0'iGJaLǺ@_ ^Y$p&zr-qPqXbYZqN`o(z*mxlÁ48O Zͱe>`-69jǍoo] ^ǛtCL@(N8A4-B2v +o0q+7[r +~ h܍L %@+g=P!];t@+~>K:;t# cr7>98|6۲'ig=kJid)' lFI`$~l4cj.D1l0Sw{wbOf\8t.9!Ѩ%TiÌ땱e=W)>(>^9JS!\ +K'pKޫ+r`)~Dpn)ؿ*޽?P*:.aޑJSyX(\(=dmNr|+ o] "XxތWD7RZXZݫ .)4*F ӟӅF\cbH<] X7}Ex&wÌi6ԃZ LPKT:prg[m\y_c+ cR /W;)zO0a5) X)b/ӒM@iiYK%a."paV*2+|RKh,LZ0GyǴ0- O0H-7&S&aM&LQZRng3_ND45m2Ff |P73$dמgfM, [9 9ӺT:NԲ Qu:hz*2=p9;CShg c|cgO+16F'a=6hE 34Ō;S*Nmvmvɖ2>Z>]uˑ>kD*]B4uC +~^!w>A< +&EN?p菞ÉS6$OQy%zԜޚ]*8Y,\#&_b5b;yrۯP쪫⊃>=!{{B~ +0{c;D0`@!kН_u9 nxxu:P8N<>|rq#|ONөNܭzòÇt=)?x9 ߡr>7O a}ȯ s;0=ƬB ^Fl+̸+ HavɉZYȥdECԞF;mUA' ޽#M}?CetTC/Àԫ͟<;}D|u8ۇ[t2A;6nt $xYPRϡ}1X#^7 24 +Q"A']܈p:Y:ƭ6<} *5\eh/Uyzڥ6<}Qs]| _iUz玗WlK?r9'gp8v-beWL1~>0Q?n8۞zk'Աm}G@ 3=6xgιd;X"%Wm;2}T}z 9Uz% +ˌU ޲4fca3g%%\#hz0..tX55]i#cH2`R +ʃ7Τ^eȊwQV6\a)jI͗fj?` Ox\<1W_7@)h3eTf3ӑ2*eP&2Q/ $eկARЖWAH$t颇4Ph(~ܒn`i tgL!tZE1jc`mr-˪sPEcFFƌ<~1,Ӿx4C9d1F$3,$ݙd# 32ŖwI +Y=+'Xrwd„ 0@v`B~aN +C9')x!gEn>i'@s+!Ƕt10٨n욍[ `Z,U ^FZ(2@14!{sB3Gj);Qu7:[n3v[!OUh3#,p[έ?yn)ot#Dc>҈7wk¸R,"}px5늷Qun`ktdXH~R[~-!QH]hZd' Oļ1UObA|.,?6H͘V+!4$4N +TM_%+5 <|DeD!^2Gǁ=x|:O$\+x wy|@,/)|F +1i7w$>d{]7r{žK,Q|1kɼۮD7;SD,yHR;/gK_E; #]1CǒE8]H~<$_2A&ݎ%^En7Py az|-*s.7,'z ?ڣ|)B0}E:Hv>T^h`db6"Tf AŏK)nUs?M 8^N˜k$c+1[h :X9;M()`rUۍjjZd(0P>CBs23_.vXEfNM!1Aى;.=xyϸJ O'S0_ݩZZG]Fz3zCRO< ~'f)d*.`@y vu2.EQkӐۉ ~! [)w/\AykL)[Ef[/9ikt8i}e˃1A7¯fc5iZ~jʧaKگaGorc'a9)4 s6ri=ebO +|cWiƓ>kH&$gX<N{ھǗ 9'5m]x>. 'e 9zq{{\eB5`-TB/xI Wݟezb8t|B"3S2)ل%YܥTq*t?Ɂ&׮/H*{BH.1O W'WSN#txУ]gCq<ԎͪKrVσRafB!P뎞vO $ C f`f阋\InfBk0%H8 eݥI&p |֍xX Di`$",&wUqvK"5uoRA<%DW9@ + W(wAz@N;H;P|{SHG_㋸NǮOJR'&+ҋ~i +?l+Æ< + !-v4 M,4fod 15gdE7La4_eҔlR}"W= (&o}*[GCt~sO%Vt.IQxGYZ{ዚ5{"|x >A tMe 08Gso@uğY`<%2+YUY֩WIw&;4uexTsEZ=:>$jA-/?wB=})f{|'R?#v/!v| Z ")]d_J`("v9;v꺼q%AgU^ yD@hIS0I$+-#;$M4hA4@㶀V[xJ uн:[G"@ +Dx3rVCn^@ +@Y} 0 cjBh3`a'vLb`/!3pn5$POAL#$`Và|rS`> }iY%5f6&j50{kΡ݁Mskdb?5IXV߾E9H?zyFR2egLX}Fd l׋t/`ta=ƍ?fɁ'0XfڌSAI7A f#cq~ d~s\JȁDNCSau@崍$(UgixAcѯ<zV]/?@  4M[D-8m0d{zNց6Bҭ$xn=o:KNP-O$Nz O,%`0&Ss> }>!˭z}ϢٍS@ :!Ci C| +$JD|bmk( 5wmǑ|1mly:D8EES83Xmp0/2Q6eJRT@10{O[`O%{N{|]?5FFaD6upr)@7`CJ2#Z%r1|(,M&L3vM"s+P[~ps6V3}^xNw@E{Ս\5P4z@z@& 푚8BZ!|s#6Ja ,)IhPv9Y Qn=er;LnNN>k3+ntUa/;/ؑM嵺~c_]r cαdѥCGTxOFBOBF5 _!PRJޯ  FU@)6H*VVNCZe:@jk0yI\XyK,jw\{;|;U}|)*]Bne5s:7Awԥ܁EvcUO V"oU,S7,E* ў`^5DpGTmjXxQ%1˘e^%q[`+^) vxfXlw8nQ DD ܁<ъA<mUMao 1O4JR4VVUW_<>3 Pux2'lUqw?"T턟'#6{kpWD :.wCUW,܇סWظ1RA4Yݗy;jurB%PjS}zU{erX-%4NYOP~C'!sBkG*,yn(c}JPEն +BeCd*IhI(!.e'x+Q+o,rԖ"Kn_.R}0w]E^r 58 ߾=J&:k)Pʔ6,^v8zڮp;O21䁾;o^"ix R:ʲKU]R?SṮ/\PvTJ`g)W`|ME%n-gTL;8*}Jx0REt`O\CL}ع{Ȭt Wܸ(mUd0-cT%N w Uf49Kn#[(mO9pdGTJ`5}t5؂i7f#Mhoep`# X>d/.m-{Z MIj-+wƊ.(m8P÷Gq 4[o] cmGo;SfjZ۩z5Q:k:svNSvZD}F 9 n~#FnY|H*ɀbm +4͂TӲAfA3A3A>hSfA#|l|t|8>hU;5ڰLi< _=6,0QXdL*tnC׮5Ig;0{uMVਁZ?4cfF!ifF#Vӈh/̐ RD3ĩcD A4Ad Y*] h\mjf}޶ǨLݫY*LѦE,fyv-.lm8^3cvL 효].+]#ݷvS#sD}ZA4 ӏ G At mA$LVCT E% 8жͅR4x,dTi_ALAm8% u#GYR)DBz,AV( _[|SX%lCVf* ǰ#w*YIYO +doXcur)Q:XQy@op׎7xr%nczx{i&jo5xS(*LOvrͯ[Vi4(uT\ZxBJf]Stuh}.SF@=_PS-v6z|ʩ8S:SJFГ|jqnqqB8|''C1Ľ4\[8evfw.C]]fёuh"E,(ꎦ nrrY_+QDp*-GD{ +(|PB:q%X)}dpu"&~U2 N7$@SJCmQHaJiJߌO7{hfBimZ)UWKr a6tTggY** +F6BEրRTAԼ, +)Q&P(??h WVm?U/46Nf}mw׌6hFpeZDq8_qB8|MbU2Ew/ _Yeq,mZ|Vy(Y(dA- |YG +ωڮTi1V**\p_@}ilb(\ɨ(a+M] ` %' +qqrtfS)㵋Gg|K9Cvaxh^/]0|(H!|+Zݢf+Jw _h-J*it3rsͨP;t|!-.OoN/Y:?7Ad?4A~?fqcp##Ǻ!Dއny; RPX(Ov/cfmOa:?1,e;XAh??N|7?nQ||DR(֖ 1uY B[Go~NKM+r~ݐw@>'p3h7?nbC=8j?5ߟp +k)>եr$WsO^'h ]]ub5yd7B Ѭ k6o~M0㡧tƯo7}Y<v; 7?nh7?)|#9[ҕ?./ XE3E37@Tb ى[&K:qbF|Ҝey|-ܩ/'r.\vL}y.;.% +lչV]^ +)aA/ 2VC`^v,:]pyI'L`z$Np)LKHV'G%,JB3 GR^PVø3̠L, :!,ld-϶{ړOt{ߟKGA ߷y_/ď:0A[HNVA_9Lń?O~$*v/>Dn*^xPq*H2KiS7p3Ƃ׾ F͚4М_.r}?x Rg\B:)>,7g]欇C*gUhWq5[`?5"hkQMZj3K;6b(!wq,%ߺHjuqXz씳\[rыa1E&ǨƕT\˨WU\nQGM؂ |L8yͱ:lSu?mN|E%,=]|BC\شqy+Zn6` r^pH˵ije]n#n;ʭjݾF×EZSl<߈'% *TL`pG"H?C^ޣE}ډ̻>e/0sf8\1| 0 +6wx2吞f0 x2M@dB D1ͷH6a?M +$ Bwa^-ӂB W:q1SPR塆&`ehNhK--,p09R`a1w3|Btl\N|KS&S9EiȎ$ߣTNӭi *W_tuJLj~_.LD7UB7Έo.4 +r)uu ;SGԲQ&vo%J{;'p=dONU;x1CU)уS*Wi.֩s8!v,)` Ch2O4^ +g.ܫRz(~IG\Į}#* _2UtA +!։Z =|)чԩHv71f F_#G4zkDW %0Y2vpOۿ_=sIE`]:VtYU섛Hu0w 4~tQ|Kcf !>$WV<(ESYy~DS镃Za& VB:1>ljJԑ}_=|t~ukq S:{n\,dEosO6V~ue1MG:JjAlzjt\/ Danˊa/;j;yz0aY``hIkYWܓ_ݨ9, uN "| nS*8>ɄjRzx 4R_/>$ZThxp[:t$@$:IN[r\VRhgՍg0d_u]WCuLrQS,3t!%rT"{}U"&yA}Ӈ/F0,2cS]1ܪx +Lwr2VɣxqPGe9m}@zcb$bWt͎IM@( ̮\̿ATn~@0XJGt`Fe}GɎv{֍z'}Dff;ܼjR}i#X@ńIг,Qk'8=2u%1B.uxewUI͟\VaB?v!mӄ5|3N_X^']!f1!8r=?c?hn_2|?Q"NX~=/RN" 6HBNK1@-PCjU֫g{?3RS +s&OIϗ1jRjk&x#FN +!9= ߙjKW! j;kS81wc`F A&ן78 +3f#~21Ɓb/# +~%!/Vz|;t;s~2uS6zOc˪ܾqD#kY7B}>,ȿK8&'~\'/q|)M\baEVZ __"9mB|pQ'È>0&o3"9zMG]#'0?qUNܹ>{nW'9p_O?H^e||6rK\"4 +#zXӣFCDL= Pjqp~&Fu1GHBIҔйzhJ(uҧEpߨ^d|dWL&.?7oС TE.E .*MRf cVȥk4rҐzôg7آ,26p0:Qb%MmVܖ'^23˝|QL~T̞&!<?xzɲQ5 +e<Ґ#A6L~ YyO'mTW_;>Ҕמ"&%rq*3x_,(X|jʡxV>t9)!$(Cf#z5wQGJEO5bUȈH!ƒ!S0`5mLxwS*Qq̦­-m?H[3?l/FP$f+!#$9޻T_>2q#;b傄bV|[ b }%r>$pN(4yzfߝ~m|;~K_<"98GHgRRjg|+!x}ׇ,WK?B(̒xH-y8-R9}I Zle 0 {@Nu6Gh1V )V?y;*8)~^2_; xQUgh g#A*Rķ4Ψ~$uHӸ 93anGf7/8+kes~3.L%+b)_t6>-|WM@D+P "; xz%n#oELF(sp0LL|-31~I>bZ,֔_r,L1G4mAv{cIS{Hv([6H-YX ;["w GWx$Tv>Z u#R\ZF"\{Ÿvۨ]'rUOUw+9 dGԽq1U͚Aޮ:u*Y5lU[3\¾ף W`lmԆ"V -RX7 EWc yI.(l +.d4Y-% 0`M87CzPr$ZR4yТ2 &B;r :TH3" ݭG!=Z'`syA /8FX;DFߒ׳`.XJC' + Z*"$ +<"PE1PirDS"u'9p +ogl/K_H}4U5Vs=.PEzcy4,C˟ +-"_A,GBMa)n'eJ<Δ5{fxhg[6pX[1%Hm%n8lqiqb1~pm<3g5xiRQp혘ƈ}doI玂|NL&fi4igk}*W]E8bZu9Aw{^}+lSՆͬآ֖ +ZvEe˺z =nXe쀹O=`ObmbI]հK,n%:[Jh)QYX,,EY3PvB;8+3TtY + T%=~ ž!/XŖ$k,2'Ern6(HrHɉ*'HݑSɬb_{X,3z{!\Wƿ1SZprUD{ غؤ/,N +pE>SD3{ +ejcRhF0la ` lp )8q.WUe5鶻nCC]_VerL~gF\A~'!ΐ;C̝!,[oڹcMkCdžB)_dA+ksks׎4%#z[Ё]C|/IʭuBT%ziOx)7mּ(+.sYaK9h#FoDt#bوFD5"& 2cRV,Z^"lT~L\cpa|r=A`$YxˆhN qԴϸf5_o.FG1cfIIV؍TmdU='+%=Kʞtw͈#Qv}~199o7-/]R[Fl>?Q:Bwy0؝^2m}^YLqX?@].s+\ +Yk@JCYD7KXb]޷ +sբ,&d,\5:X~x8 WaR9 B#x{/4bvn3e@ wcR$anP5?>{ZIVf0! B F ۬)к>5>~i&|UU2Un<Ӵ0SDSx_L)W{>#h?Js|)#ꈟU-Ӹ]tnޏxfzO/L:CjOh3ݖ7%sN+\&1B{>׸VYå;-W\>ۡW,]є'7<Xe94Pj7'Q(tvLb(3 *qt*Qf;SZ +CpDnfQж%9@ +C6Dq.PHqF E_nR|$a 9 R +R\B"MaUKKHA¸\{ H[_"x:g)|CKb˨ UeQcNLCҒBX_Q?{`|O=7O6Zm.^&_ʕfsX, ʝin%s +}LRJS<6/Q<{m!&Jّm|?>"qdn0Μ BSBS>BS(i }~@ODT0z;ζca?T6 ;޻3a=mD3\JzBUH l%^ӋY!,ϑ^JC~o*sP?85pũ+N \qj$BQiM uj-J؆M**xܒ\A0ꃜt"wWNce2}x48贺WOfOIf>Mk߳|),L-{ڽP-!6eWFlLClܠ pJd +KnAlO'4l}ZM}46[hKP:12Q_Wt޸vSJtynUЀ@iQq:s_DetZ|S>iC}:ͧ ++lŔбpѽg~w:\y6^ྔ͸#4 U€0*-`ȁ"=F"-]3HDhj7>1GBF&M軻BISL()dv> H$MVk," tDc|*pUZi&GZ,0TѬ [*U\.lIUo?~#WD<:ėW +ōf]H6tn>YGxƠO bYmf\Fkf~2zG٣ ACP} TߍBP7]ڳ1 ݿs\ٸΜԝ}A)Sq)Rlo&Xۓ9 %Έgtm{kjµ>_|_eEZŘǿ}Vr|Ǫ^uU=M,,X"AE9%&8 Y^n^dӣHU_CU9-z+2t\'X|84con0iYaowpQ),_zՓxI*6j //F1M4,Џ֭ӆ+ABzONtNrwsq BFu_C K<|g + Lؖ681lᕘzO.E\h. +|]5ŕZ&Ɗ|cfȖ: [CP|όxfrO +nr+w7I!wr`q>w +Va_lTo Է\֊:|DӓH*Py]p*rHs7[=RԼZ&i݃k0I S}T#ՄoO@#? +|)S +ƂJ7W.]z']G'/b?m&\eS?X(l_np%|ψ?mG`'hDxI\[v:=Mv'CoIBq _iIA>̍zN @B !ȷz?6e&Vc|L/O\:#RwE_g 1qN +Ѐ54IN5naOpwBㆫZw ,ej)#*j2q7t[H."P(ZwpWX꒎As"LnOנz4s5+Kᮈ+t*tUؑ5>&Aqok+oUo?4jlRfiJ,yEC{&} ڿq5 +~^&ϹW Llv W[}O$'Qȵיd <wZ3d7>Cr`t6tLّ9 s=zgx|5:|ܗ[Y8P?tR+v+ QU t.+e]#lHX>T|`~bk,-\V.7I'f4(?4܇UP@3)QeoVIq:4w7H-R#H1Fkћ/;#T"Ft?$ݒMںH!qH[n @ a\ >(_ ]M!U>b084hyD㷠o:OOhx'Ӽi&);Ў(} ہ[y.}&ZԾ3.U}3n3^Pbg<\kX~MeqsL^\0̘4&p%K^/( 7m? AÎivI92S6(?ZjT +v6aiҳa vql9+}eje25lu|C c,`nx^baa}~AA=~kqU%u?tf8⫌0o9@2qտO'zKh"pWەZWXGipEv(0|m\P|~i;-2p'0k7Jԙ;a ,J]0+dJ-sM`KƖ\b$i(n7X&'EB? +g#KXQ&{\>"" (9˻+Ufs|{GqY1snO>{^^f##6V F=P[/) `'@-:;$y=|% 56QalFO"$$ZkWT¯ybHa|%Q4Nt-zH@ݕ_u&0ƳQqyy(f\ys1:?J'N\ZDi5ؕ81@5q3.CZ_` FT*$sz/tR:9ZoٵXXdn.]덡$w͝?* +BHKNsIoä9ïpW~ꍚpWBe@/-P +#Cm|iLOaJq(SC!h<P?tfIg`u޿*Ksf~oh;* Eԕi PkaFv! +)z$aE zvn`2L`PE5l 0;2OnwUo"zĖh 9>YR!|QnC.7gv-VQ (J~d5cʝo4Lpj@V']E;L=q sCAу_u4{}[/Lo5_G\mz!ݝj +YBЉT,~VW`,VaӺ1$OTT0!"w*MhnQiۿ&Ҿ&rtfX(u@t7dDm+uuOqp(Ež 8 +ZQll) +q&O"=S[jN:2]Dzn.+f]6bnߜnߔ)Mil*1-SqrR9 hn5s i~kv=â<:"r@Xm"ncՔ(4&po,HH0uA![J"5jUFTtNR T9e3Hhߌk@|%+Bmzdl0M0@|F5UK30q{'\茢6\E6Oa4{KI {@4|(ӝ;Z5+ @{V8𞐠+MaP$$]aH +ڏtMSAIwֽ?#מhQjE$~RHN,D)PL $t4 Hi(:𺊚/l!0M?(}A;_0>pXbpP qBB&sSdwS۫ +6RNDC"2wy!?m@W&vΙ`R!Lg!WCO3t8O?˱~'Q1ّqט&OSeeLcS8JLc6qG0Z.QanƙZAxR"z0$Q ǮF2ԔTdG\rAXIN7f%s'pLcEOh`hpM@Nbvjƌ\ A-Eu(40ɉ;icwXtOYnVŠDD|5AޮC.ue&OȲJ9͝&Jx?@$âk}@YAZ1.FT\]>DջF2PS i\M]9.熢fiT]_Ec8IQe#ּT'1L1sEAx2ޅWVF\=QIAh:z.-ЍuհO*ցa3e7as||0|Ywvc;7/G<|70;7_HE;̙۲wdwwo a;̿| wo;~{Uug!HK`ĸłd-#2UBPLɸUjYYyEI>NFL`ЭVc?m4L ! BD:C0b6dyofKT{q={μӴzv@O#-#m_:ڴ scSw;?B~eo]M͏'柷ߛ{c _<_p~o>>Dta*I9:f4Ψ?rX`dMj^N))P"W?:[;;~%czoB +Ed2~ȇZ `\o y ^54vdzF/^g]xdzZ=>>!kdw0߰q@躀bC&"(̡\D##U7*8A$@ * S `?/]@# I4=IwuxڈҾ*xJg%{$|oWoX~Y,Wg`@=*k*i> P)="t^4U"%oTJ[7n*˵M"]Y-2k&-eCeo?2! +E),džj>o l/:6[oEmxkUݼo虥Z2"P^K؊W`-#b\camZ*,*,3b{8J({x.`2f]8s٤?5W/#($ &N48(73Cf^"7ɰ5&[Z$5'!VKL@M;\YojdU^o9ܹ_OcYhbիC5r +F*zSQ 4Wn@%KW2i&K&$򞙖?S>{'kɦrVymX×yT2'|X#lUsez{OR~vT@Ugyt4A?wnYJGkh[*l?:QGͶ)H Ʊ}U[Y[:To"Ր^x6*捲P(x !ENz*}c]u7*ʚ$+/ 6ʖU5B8GV[ejB 2:5=b£E6OJIԓ#Jc5ˮgIdvR)+u?t{ +26tFٴ d]meMLzdt`/yEhzfUjCTq_QnlTR7)d2ƚ?>ƃJ'}OVܲ}/Ķs|bV[߸DG0mLR64tPl- PЁ]b+a Aӿ$eKf$40`sy*Mu>o]rJaDUA6 |~zzS9o_:ze R:tTв 5LlwGuNlѸ(s7,7 \deo8b ,JO(:0d^)ZL.luI $0 {S%yLD~*N̿_:~ہa 7[jM_`ìoA}!R63K܊>ن54G|M7~|u4{G;)砼ɣk`ta>応m[B7ЮZ:Wc% ^ +@hiȄh_ъ%vp}-A1sS0Qسf*w [9.ky-FuJCasmBRHb׿g)R_"n=uG[(9/|XŲQT7&(6"Iܵ#5y-nQJ//^fnQi'̟w;a 1|G/;4۠R+ɳEb0I%a/S2 |w&3v6?K%p \)@lC,\ҿ9ѩǃ睰}=yyx GǛDCO"sJM"HiJn̛xZH#R:-a}Yw.gX[7(뾑ܲm7 [=ϩ[=S!F8/dn2we"lYsŎj_#(x +yܟDq۩X|(0^^{u&.ܻF,_L,^ >EG[=<Y6UB,/=^{(؍ܢcBtR]'KӬeSzt,5Э<j% `c%z7j!k(I AQoM9rA}2k6n~ӺCl5N OK|-7 +30{ L${s<<~n΢叫#ݯrǒ.QH3`= 7awAnacĪ4M )5U!A_L7,f:LG rGY<W~JC;b/L?֠o0ʓIJ%M(aBP#*W~|1I.kt6DI +?SZ}lT[!&"v:mh't'L DCaCg U7u-q͇T/9Rat8  ܣ=z0툟_Q1=π3PN+:5:LcG +1/RxVUUϜP>\&ICPjkVQnI5&`dFF@z:)qTΈ_$|FSWHH -@|LjV!># ܌`Ҹ#X]%](}3v24ӓOhOKze%?X5c}ة㷠sw])=mDw)`LQetFLёgb1L)#QlG<%|Շ#iPQCdXi +`LBŦx؉r9ê- JZ/]OcIJ`i<~GzyFhb%ɝ4"&qЅ ԿEg<T]ߚIo;64^ܜ06{ &+N AeBmAY-DF +px=rY1D^qɘwi\x) $U6kxCA YU}kSRJ/[ɞNhizDo]5fi}SCE%Vaaocc,|sHo֋biy1NԟxRgZ|eYE?<8TWk]6FIH,'8A.M%0eAagZb[ +j.(5J+Sڐ?91weY2H® +ّRm#Pfܻ?{993s3g6gؿx9]?ʹeY';_ŃZCпAD<Wk E=|QK3 iV|ە|hY] +Nd^}|eګ<?4nr,kTqֺOeqӎ)ė7pW2nqMx݆';D)[~6_ɓE۟ +՗$q}}6]WѡwusPjF a-E︎_8܎2GVs -m%ZTI9Y8z-`3d] ݑZ7&$| [-0+1 jqt-V7U}(wS k~]a8xhs\u\8GvY 5k/`Q5@ +S^CߙR{⑲R.D!uL1*5&8u#]'ËHyw>.c^zoeZnB 4/gi{@(^#"I[J|/dI> Ȭ&_[ww +HgE2@[Yej}%֔qVZp0tnPT)^of{TA~}(<+@x=qb0Ԍ8x\A)`h{N>l(xRh"/CKbzjS^&uCCyڙ*w=ڸ @oae^O`0k_|⾔-s&$-Gu5\/λK / +bQgES F񄠫kBC9Rrޢ%l qj8&G@>?cV9$+F:<Dܗ'*z8Goe)loqehtUqbSUOFGW^ :4ze&Kw{dOI@b e{%[xX e8vg0OQ)-x8 =@󘊈"՘Q]2"9`Hd=2Wb?רP)YP66vމO71VkC$I-҇0Zn$iJ8ůÑqǸ634?"?m095Ѧf_(>)FrԈfv8fqzf'8k_A}á[T*nByB #*:GŲ݊֋Gtk{m'_ű/n=DJT%A#n71Gw /N1L:fnrQ^PWMs{^a`'l?wn)bdX EQ"8TպZj(%.0+T= :L!T$sůWxϵ BR.ECAmeE$\teRЋf+kH7_'[ʂr90GNCu5 b +`8/ZZ}MV* ^C~K~R?ocw)De<1WQk~V>&m]ej ,5 ȥG 01a T 0;ON jGO؟+U Skst=ILڥ32sT<J&8wS*|9LgNԃ1pz.]&ԟ*uJK\:<j T@[x)ޜ3g@?`_Uﭤloa!0P,{uAr]}q㠿ߍuJDwp0iv~GN9N;Z]hK{O :wz M1[A9N`_>Q.t]3@d"=ٛXl\:Ntt _=v }}{;&Ok9Jq%/55z6"hDMs' AJzQSAǕ.*#RC35p"@7QoEo]o+1I"}(ɏ$`嵼T1Tv#@#Qv.7{5Qd&Ω}<g&¡+BRD$@fAZPm.n)Kzή(A~WJ`}7+.uD,$5?n.sI!@*m @Ҧ6 B2-7aECӉi%~.CNڏhNFoc$XTq< +hB_r3uka0 F|Bg +Zu~O#8ZqgG@Ks\~>z21 Qվ\N }:b|i*h(`U曥NaT*_Hiڣ$ N9%A⹟HЃQ Y\9g|׀82 _hR=&_d9&~ďP V S"6u`4c&xBof.U z`]|vo?{X:h@.o qi' ]f 9ŝ1q&;@uİY X44o s5v0l*;Yܾ.PH&3W_AO+p>#H`Hi>F91vw $ @%U; /zJog XCmڂжKP'c*&;?/?cǜ`Ñz9cv*;Y۲cWн.t3Xrc׾*sYX {(M/-6L6aFwÆ;UAeNn%\^嬍O[%|@".U;v|-Ov=Vx.O{Ԙ-B-w# D-s++택9-kQ,P k=+F  ϱex}G1[ + 6v.Le[qLncߞi{)eq>c:w/e%YqߙvȝDȞ{-pd7~ #\ U +J &bXE`u/o F6HΓ<_֟FN79N䔛z+eqcLa-P;ƦüTB's5SnW$(& + Whj«e]pۀ}˚5'|VOGEl%<v?&{Gm\Դfw^v:_Q ;,Zn X+ D/7K`׊8D틽px#4'v 6(+`V}-y" ?RD7 pРRvw>n32!.//`C- +n +Xj"w^Ptz~=%0bt_x$ 4۸EtWh zܖJ;s!JE :@Aڋ@77\ԩmt/q\'84 %1G| 3n%b;E+ n) `I6,TbiB+8 a|!3_^)+X3 ]gPa ֓سhWF^w7 O`:*ˮՐ\Pb䐡wQ31PIuE?${$n((Y-3ӰervID-2Si E`AɼrE'~%VBSRh[>|8nf'q[:fЭkDCWiLD>^Ia~p4|퓆 +~ &.ߝ({'U+pIʏ0hAp?6յR#w`qQSl*=!OuAAqQ/l,6mYevGs#T8ˠ2 \8xw[,a#F\KO+8Q>HɁUY^  wB5(/L`pҗcWZWh{38q 5kgMg)̀ƆbR;rz4f<ڇA`x'# +L,p/}?G4WZ 8m)jF[{߄9r}y +5FWu2a%(q*_=^8VCٗݽ <1` 0 $G 9IGXbzm0_%kCl$q*׎Pˋ;0]G{V<?NPV(*f*ƜgfP@JCzn?L,`.M^q3Q4!޹\H:1"{i{u`һH> Ջy,#[tlcᎃ`a  ꢸwr:7E$?#^*UzKyP(3Pf?ňH|O:GȴaR ~@-E巍)c\(*%js]9?;{)G|~+CM\L6q IZ ]{ٸ}>~?: {GLK cw4 =ݣi;) ڗd]8񉕧P`a ŊY…gJzij&90js_Gv+ϣdlv ~ +R5aN4͝~uHwŴmACB݃E&VC),ov"I 9f!QẎ`"b\|~Ϊh-6;?#b\'yqҌ耵 C[F?`àKc:G"2`!̋A~]9joh$=f uW@j[[/'^uB^:lΫ&,7GFmdz &\::1ˍ?2R(Ǯ{S|Fn>xP7 #~yb#/>csi6Fc%D>Et  "*[u9\SmACB ر-~1`G cE^x +\DC?гUͺd0+:rYZUԅc^q+c`tRq-fĶPyHa\QF?{5jѪ@W&k7F&TGrdz?NPPc+^ &pt3<'PP(n3`zg!١h_8Km6G5 j~i%Z%~ V"jᰋC$8TUY~y( fa&9A`ZGY6G_&CJ˚a> gWONT#\> +&Hv.m:b >P;Tͨj4$"|T4V u*CIHTf !,G/ s7#<[iX jɷY58@dёriQf,&) + k9R65D:) A2#95J1J)'&KPr*t7 #h,H^nJƁ+W%DhC!YT0SsqaE+g 7`HpǝW]uh^)Iט6Uok%;Rܑnl sQP޹`$wf]Eb0.z3J_TؕUVa(a R(;i`?'{7jw֑ 2ֵ'طW}CTEWc2TyUHh/PY !M&DRI5L&hߖ8R6ηη򔰺?gBU4|R˭8tÇ*݌CӞ;k=C['bmУt1|!x l(< \兖092wdtnY{k%2N:=g‡Vm_eD"XbaM7q /r %]#.ƿ9kdgVe0m}߇n;MF:|Wl=&n=׊(g(y32 +ɹ\ _oZV@ OgTkpM0=`ZAKzfͬf95fvq݈4I'XMFO5R3w$kkSRQQ9=q ch)UhM`:$7|/\Ch`fz>D>YF} )dM\n}@Oj*.qI=$;2|xxW*[ +#!e{etbrTwf<ۅ{Bxz&eFzspݎKGHxވV|/W:o 0+M;lL h[ƹ)ۋۉp5MbuRk Kz?)OOӕmxMwۘf> ϫl5+8F#X@5զBNg ՂRkRjoYF|x\ep|سZ.)'q`))DBTaQJ6A՛DQqE\{T<^M<wh$[7Ϧ kHDKg!$(z$tR'3P roNEVe52'?נte5#Ri{3|ʎp^9\L8HO.: +hy:oŖȢ`caE)sS Ix~ ElOc3pF30wWhUNû 8_Xx#Zp8$-ǙHdIN9/ _B-»/La,0HG^Y]<л&!ޥc XJX%2"rЉsJkL$|RRIxn E\P8J\D97@"ʦ(Q6Q:o' +?"lLM3%N2o?0hT2,@r qI@'iJ$8{-V"AfD' H@(nJ 6$!pd&o"qxKRc"0YMp½Zj5"ٷIw Ľӷ!nkG:ʀLA ⟣;o_q[b =Ј0?-sDmhKC6d$({d4̄%Ef_v2 |X0$'vX!"ݸZ{^ƃ)j<SaᲁZa5?:Ymv^ _;Qcrkttqf|CeG[ۃV,NvV5͂1;\t(܂{v {e} ܮJYZu *x K}уi^Wgg|5~/`vTGw9bM%fj hya^+ors8B$;\ц> :HHV4BW&h*aVt(;իg҇i8`kuؚj>1tD/tSoxŴ̊G޴treoSƒoWl068cS̗ygJ +oQ{o1n~N7%|S%Xxx\TpЎA!Rx ڰTS sA 3S7;jþ@šV58>O!x|Yw.S3*FV<ǑJoyWY@,m+e6aμK2x닽 ΐ"3ŕkJu?~7Z ɖ𦥦Eő}|;ԺaPS?|.e5Z87B%F +5>7ONNJo H=xQoB.XE|ܐ5@)oS_9BZȮ56U_ꗏP/ xFf[0C_XZ|=1B~je~߳mD>C?+FKx ^dN ?B;,¡%X?pkӬ=т6ͼif(fOߥ@x5uXƳ3,o&]BZ[kz'kkJ + IA>lDi;핇3Lkck&ĆhKg:s̳q\.M?_Ew_ƃ(z6 +y#~_=ƺ9T56hxzOj՜b_QS$l,RjEjsw -9Dq͜/S`uv8"uӮvҹt76V_=Іh~ Mb |(f7r {# <5x9` og:!*+ Q =,CV2+E8U]y(˪-/n]se_Q^CgAٮE>SIˬ5V^ec@E":ąI`^e=YLVgPP @s5+: +Pck _ծ.QzL_PCs7joo"/}X=RHxhJiֽ*EԀj( x挿M!_G%ZJ7 :Ԛ \5Aq"dxTW9oLkm9iֺ<5-_拤&me}ct}uJ}&0MJKeOӟkiP<<5WX/i/y n j} l=TY`N+y =i[>0mQ镦X=prNV}_fb ,Il{T~$/Ky2*RH?HƟfҒjM\qIesW2h$-IĦZֿj󗦥Jo#-f^{X_H)Acjg|;YX hV@cNPbȵ4Moگ_EӴL`Z6o6-EbuI{Ђ|4Y>&^' +Z)0EJfH^_^>Z \Жavۇz);a, l{1zsb%8W .@(@UС |A-x5Xٹ'Ofd6< ؾ>JI1f9",T,'Q{b _΅_LӀhNGoޟ0&o319 hAQePƠNz\V]9.C|5h. omH87C8O%. FlCN.KQ8Kvjp,S)t+]Jƚ9Ìq[rvx=#f2xQ #䔪NP=`/_~@?3;Sv"(".I/㑝:ߗzq1-:D^ĺ c&vv"$ ?ugZxwzFl\2Zg[Cް~t*hNOֹ៟9|[ `D >N'ǚOycDz?JJf#>}>bΌ)V|&WizQ8r} fxҟ'c<;fc i1Tal=o֛bL%W1zn`{` r3Î.._%5TFP +`n:4B/9NΨ~^cڤIq h:+*({cw3LğngbC[M-Jm"~ [``Lektl24s&g[6쎩@ycڶ%\Q*[My 8_? ~y<9|ܤ1H:7Hr73:f$ ?~ui6#P3sElAW0-gS*W"gGI{0DVx2A w:9{Ln?h2& Ay33o]Ӂ@io2d 'g~E)FA!)`BLEdx]?GT*uToOx!3}OZtx27T,Љ/͋v~DOdzB6w93!`2鄀I*/C,ȃ5<4熍2`ʳ7?΂ɇL/$v!ތ94{2ݍ/D-'>-`N*Z[DLO * +Dֱmbx;'xSO>_Oo='w߻VMş}s8>9E%\.L߇S +n] _/tM`1k%'/sh%x +,1D46_Q?weVn0dߵƽ3\TqGĸuߝQl59H^[2obaWTؠӱSO ?'ԟSTA֋' +.>w>$Zz>ݴIo +mz!ڤ­Jz*,{#8u=zvx6N:8ٿ0 +Į P1 ˜-R>x3w| +s?;P'b>JYSp3s!=% 3v9Ox֯:nN3W۸Xda,(a:Y +dSʭRũbqCdvEO͂bxu(fIM+~?~y$I([h?sCZ&L11ɖ16/|?t1G1i/L- '㟤<2/g _zDu8KC%l=mn:[ir ?ǽz~\̣s_9R9 v=CD!rl'k8?/zeGuϓ2< )I JKOx"u*kdr~)LӕL7;XkebHk"FZOrY殏GȹEF-A^ +fLOï~Ry4eGD$y'%$σQ!qThzgx.Aw-\hawߣzW?<쇳y&T,sDgI;?d'xxNt 7OmlI޶+Oja wb%]efrGfnh ۺ3. [r4s6Ux +N۶]Z1wAq]ם]hWp#FK:VTx-TOLBV5Q㤝'Z\ljM5*&hRV*P&*Haćs}o/3ؽ{9sϽڶVCjl'kԷNu xx~n&PD3 U' +|DxQm$?4RPt4!L(iMDڞgT.gs m7B獴Mei9 :uX[1&i; k%XmA,~԰XD:">+vz굼O W,'m cSoKCF=ix/[2QXB[Xy\<(8`sޠ#ZfDxoP-@? K?kZHFbe\l-b`I`6&6j]Xh Û?bmDN2ӈ{Uyқulgt⾥귱/7D7lR)Wl'}ܳj_MWK0ݒ/˯ +Ok +5U-hyn?[t<,/@ĝUyZ4nR>x&~ߦoO{tf>z>#|GX䇭pzJ[vǾ[.m[qq_W.~~-?YF,sXn~ c2@~~=_~tLCd7<|73i?R_&>qYqWޙ/cl+!D6ak0G̈́eZT! 3cc$,5tdAe-ߥ3RCR6,c}4a-Lyc0}cs)%>6fԓ~|cRR&|lNM񱅩+>6o}c|l2%=$l*FNOYҖ勏[_+ْؗͪY}h8t즂gͥLlcsS-LYyR3csjVSz|la:΍eʒw- ~< }y=$}@R2 {?bM>lgٟ 9,?92MyڌdL(/& BUeTXifq&ɬJ-҆Gc8v塉PGݞt+n-RӰ z#v/c1HY%gՓ[N$l!+źjqIk2sĮV]wwWXkDnMj 89}M׋?u>^CS9_κ.#@ t_?56I1-Yj}XR"7|>EI@@@.$c9!!x7tB@Qﮜ]J g }Xy(óUaWHm 5FB{8&'"nDoJ[?Dn*8UM{9+[j/qlVP}˼1{[:0 Gwb!gǘԺ椓|X|*")X`l~͒WJS ]|1uj[IѧUE=ߛ$}*G-WA,W9"ᄶ9?hSB޶Äm%NLC]`\iB@{\}I+ " ?"j jz * vowذ:4g=E4.U?XO㩬zzzqCZ> ^:1YiVa^D}~i]7Ycå |Nc; +};XR.I0n!+l"ڊ:rMseJܻ7ל`%Xō瘟Li+w[:ĽU'*u۝tD6]q$ΙMLAdW y +v +H!K-?<5SBY<%0<!Mܻb lsc] ֘ +EŸ"jKkKDո*j7nvZ-u eFPMANI˸>ݾ)P}Ky:} ܼ義6~̹f8/pO~r_o'lAxY0&)pz) %۔NEao8xݞqa\SBp~;P~+0ͻ78v6ׂUkSNr©w]G{{B_3x;)`c/@hZytt r"(ٽGTr +0AqB6F| ϋ c'Ȩ' 7 /r5q7W찻AG4h&>w}QFk^5} ueH?T Ffe>LdFL0Y 8A.w請!pw3Ⱥ W1_߶$Ǫ&WHtz![ +Ч<ٳ=BZμߡ3׽A*Q> יqkD!Bǥ`51orcr ZDZ=ĩ Fr +1΄5cZdaryDy+cy} v+ҹ6kLC/AÚ+Fx*b`CO( )3 ̏kB+',mlg{cnOΆcۀ :c[nyFh4 X(eiFqCIdXF _-B*1 CN.Cd`:| ^ḱދa$lڶrEŌt(ΈHQgrk BC +H/<J,!Z`%Kl&K"%JψW[bcx Tz2.E@(5j;{mkPqݥ[+()K&xǚBPcI&Y%?]ܛƸǕ>Q}{͸:)C~X^w7#֬Qk٭-A=VY@h=jMeDS0i_-[5x=AAf mixE:eX8\P`Om"w A?hKi9!vu\(<ѫ:e/rz c!";6khح7DGIP2%R~>%,&zFt.Fv϶ yGh[Cc,SN@r|ӰH\U LLH|.xh9KB¾)"R3@e||PEf8j>xQաWid6ӚOpycB 9a#Q;ϼCEI۳V δR7w96;f&bk0}7ƙg GAw&`-p-Vq| n%W>Fz !'ri +EA +^p$ dǹE 9b9ZyUG&q1-z¡p,m38m nqL*V8m8SvC/v0&luhJ[)dr&RB SqgtQ&BI6ÏʾMoYw,U(йqٹ1#!N U#6Fm#~Z>X-@jX,aٻYO#i$oX҈~!hIVs?kRҖ"+%qMtB9OPNx}į]R'G2aD,i1d\v5^dI%㢎SfB-e +v/u:m7<϶jNU 'lb$OGh Oy7qA0j.^'&ަQr!SvB H2U&.'櫟ļ;VN egL&d8yUH)RiZ|vS6\C5&Xj,1|XE@Y/ CFjwΊ|aTaJ7O&!<503 + G>TQ269nFV{}36I ubqgD>hK*&=luܒp؏Ey?F3n-#]k 9xϐ9i=Xϑ_=mDwRi&j ui{Ԣ=?Pt. t#sMo?1U1/I(LπS~&\8q7Yr>wmew kY-2H[l8~gC&fqqhZuͭk"(4ѩW)I\bc71Z=Fsn-aW8Ӣ_fe$F2:FSM.8ێι:vpt{-tֶў t #?@q0qū[1FH)>S]8i]|ݭ+1˓DgS>/VHơ\d/X!9\\#C=Pη71R@dtu\RZ# i->+%N$giZl.|W_~1 𹖳E\W"`?F[F3$0 `&4\r2S +q!#-:&V~9ЌS͗lDd%:'/9x֗萣7ԩH=ya/_v8 +?_7_x-/G\[T/ rIOȭoRm~h.ݸ(\<E_gL3`LJ8dǙ~/v*[z_\Z}0 +[s kFA_w3E~oGT@hF-/y%%oI-OK=l5;=͒ цؕu]\$Wh"u}?3X62pa5!#OAozDkR䴝^ډ +E4w!GDŽLt[EC74D1F{j9|9-הh!9IY><.z}㉌gE7`:5QP5bh{|NUw$@.u2nX`׵ ƧſG˫W6b "Ҟs ?ʼn{'c[( =H~Ͱ +amd!SOs`*0+Et,`+?AN.&#$ +gL&/>@JZOc !eRO bjK-ȔK;vj_`Cdhlh;d;5쬥Q8;йSHܕ[?E*jwď컂!wNA_8(7 7+eqte/=Gi@*C߲Ɩ`} +GX!y7/go~%5:m>R ḇ ³@FNdn'7Qoo.Kkj}P*N|*pWeNʂ(`D&m]N&S$ 0uVlu]0<.>qHwաuGͦ Q;yhAxʤp-UhI2ithYJN"TzdjSwaH t}-s.uwsiB]YEù!h(͈P!rVȵ Ed{P&;9v:YHe;oC5lzʲw"S\N iCRBaج' +e6jT,2ܣ[qW,-⒉ˉq0Y>#{J|E\WC5^O,19v0X3qdB, 1yVky9̈́GHنfTr]Ge/zt|LIfBuٙȐUWK B٬AtPWkޑjmBӋ"r KQ˭R=),فĢq?Fuө] D޷Ȼq;\#5Wp~?`,{RJx< ^yxǛIb^;NSz)w8u,MIco3@. -V4ۦJ<%{-&i[#l.%=Uř@%&rLJag]n|lem/ {JY=ge,ͷm3(pq@Z'PRvSB9[(?D֛<@ҐX҃M2㻈6px4\5" +[$rиde?7ݒL6;\ijb~b#slsi0&gݴ&R"XĐ7h%W;?mpv`b;?c3v~j? ;C4o O,L|LO[ganfs,5GƐoyq;opilEci.ݺcqv2FފNߣr(4X_lNu>/k6Z);ӆcP1thƽ#ګQe*-QD=bpAhZzW9,'cJ|lK\L{u|*{կk 5ߢG/d6@M^AM~Ah{vX^+ ~-ګc]{P#S{:=zjqHoļ)}*"JbS hT}ȏCoz{ƨ%=1+# Lar2b,yWV}.r1'ߘ77. ߰7Gh1Z tt w-ӦaX$m5?I "W8vǔotS^ǷȈ1gGpF {iD c&5Ral$ Hws$~xPLKIz e͈6 9FⷻE!ӟ[Mx۔dd'ci72:+ݘI#h); [Y0o˟6yÑN$Oɹ8َr1 xV\b6w0B6cB6c!)Kc$d3 + i[[ijB6c%!>lIr v5e2gxJ8xQ9.1-J%TY™E I4g1L`Ԥ/[KL`Ч;8oHgrX`ږ$'Qzl<^ؘu,SR2p<I'Aq'ñI|r&^y{7R ;ǶQ^xۇi|2$TOVN)Ir?|ul5'If>>˸d7m}!aF)t) x +M=Qٸ$#y*?lzE~'k4 - +ԀM!@4dlMN=z.?洚S^ hz72ZjXD=r o']#6^߁?U%~F~?wx ?C/oC"" @UƝ+K*{PkrS!GdY[!Z[!WdY_!z_!_dِ+r=o6xfI?KoUpЎT䠍>kU%|U+vZ--׵~ԑXH\Li[3~̴ ).'~"q$-G"q-k=:WTRU^[*))l%AБ +D5PgF&kDnC ':ۓl5lg),:?VUlaZߊ)L_nrp$-R̹E>r`_K^t_K~ѥ"ZRw\}ʤ=ItYXb]!Y+BnA +$L}/T?}~|aO|v^oGUYC{N߃Z3n1vnNx%̾HZP*("iC)H;r F)I;]DVk:/EL,8ːr -g>߉1\E_c@H~ +N|@*d߭.ץe:/ ׅ<ƄLXFUrAlNFZĜDDry_ l>_ZA*-2ظD\QI/W1?0o^ $1 sYߘV-~M^-ƌrqÒ2lРnIvKwib$5+XSkJ ^բ3lk/"Ǡl;:ڇb6D˖ea01ZN`?Fe9hĕYX/`aXVM?!9a^*%iݦd_fnnILʍe"{Pmo;}V)1B+~ILsn7+1K;(i\ߖ$mO>Hd+"L +)p?~lͼ? U5[1{J1:_s5?֙}5=5_af'kAm!%UnFf=sygd^5CpT,}C)742XfPe%`ʌ Ŗ"&!TU VEe_K|l1`R:bKA{tdwNu'˧V'{"{/tƵ(Ƞ/тKzv6aQ/+c_Z&+L @'?T< x +抗f.ilǭh/[Xe+z/WdBdrއd +_lOdMt)1^gOA9ʩBg%&Tr:W O8M`QYkm!L?Յ9FJ{B>#<)tE&\Ҫ0{_`|[3ݯnNb1q%kٛv\*ثmV{en?m5kl%5Ir$i؝)in1OQcIҪKM)],?H[ռx;a]bhNF9 +4qleԫB DiP\i]_>iq]+#5^K덴&̎DmGQG; ؑhx֎Bãu+sgF_}7_כKD&*D:Ad& t&%ZNi\|G;YeNbs؅]Qf,luڜej6cnsc핏s{nx s(#&3 +ȳWJeIϭ~fb<i0ySMkRӆ\2ntD*U>Ϲw68^~8dIJqFiO߳o G~zq_x?0>n^pݜNF2X 7I-v\. TBz$N":&::;9m068en˧ ɢmw FU *EYq̿OF mXtdd4NY'_?3w҉ )Nz)2e6?B/xo`zd;7\55SI֏띓Rf`P>uPV6Cnғ 37ԦLIU }Q^12-Ho2՟[3)MEil*JkfCOH? +ai`I d}I.hJCO W uMR"MISᯋ1FX? d4": NGӰr&5g[NH)vUi0D8)U|Xdh.Y]|NC\Z~++吏w?ğ{ |g;g]o2rGU:pPj,7";#dݍ&dѣtؗa1 ٸŧT Va8: G`8QQni8x#%0|\0|iƛ}wa%ҮȬ~aY 4jˆhkh+ކ +WXASjGHuCCuȀ3pjuj$V)*0`QdLإTh TEwʖM&bijs2MBU@DlK6NR߱}4{]cb5_FGЭl?k5Z qgCݧCghՄ|X#'9)P`%ϝ oz!;9q4Y7U脰@C_W/@"i tdCI*'k9%ץ|]шƓ{dgƇm R zmpR6<}?ح?gVnn\Wي 2a_[.HVl=I$aW[M,ލR>)z>gCo.UP]i9Vw#p -`T u,392FFn1v,h4n5: m؎|-JAz5ˍf`~9t}(RT#^HPRW !Cfw8U:8]ꕁQai`o9p"U>+ʼCB{%W_= E ǀKFOZHo#?ΦO 0 Yl۴}^!2Vԗ- r"Kq y|ShA|>iZk_-a.zq9(nXh-'Ձv_MvJ佰)GS+wkGGQS;R|S{m~afZ^jb@oȮDdRq|$uh:8ZVm~mSk~LqGq+0A=Am8ugS4~o1퇘Z +sJiLŕQ3;Rw>ͩUUM1kx0 +۪s$DP *5;&; {Q0YƮeimfmBVO]dv<;xYH5m(kDP%tU;H$!}I%ô{;gkLsA z 8t)^6 ͂|5ݣGd[_m :qz*?^U%/*_` oX `\>cwbmh?lGzn2ƛ +?t->'k|}F@ŵeDI!mU1mS? 8x||z +l;s[蹖7hjsl}g[yMֈöm3o.C='mFTJO +>oԇ N—GJgDXҿ=spަvlT4ٻi5wyV7[-n[^S먫)Tpr:n)tCcuMձT3ɲ_;Sb"(LoF3r0S]=u߼Ny>"5gu}/%m #3xS/zl=Ѷ%s+ ϸ=xmbkŏCE[os}ǩ_)C&4͡[@d듭@sZ +&Lnq} +W28@g8}ki@^ڨ=[ѡ9ȢB#S#BsMxٿtZI{noG?O/LPPT ejA 5X,TPieX8õmZKIPӰͽ&zXgx- *ëm +^m]_A7pLR4酝 +d,f|C`Z1dk|H8T?Xe!ZȟD*G?U$ļoҮIe75q׳RЗVxb#@3|;9ǩ`x$d#'Y!'UL_8Gd(d$Hy Mѐpʑ`,.U -UQFC3hhFk\p֮quqSJou^zCwF黋vJR͕*ŝ^:)QFZcegzsO_bjͤUGe%ń#RR]Ǭ=T (X I{T$-z.}M6+;Qu_]< +'CY4WB?)Cͺ )8c8'?hy_7;ۄe~^4INH8U!'v!LB|dUlTU,.Iê/0"-IO`DC{Z>qf?Dubjj޸-z3pM3ԀgV?ZdKzޑp:wF'*(mSì3]:hjZjOvDHg +X0!]'zi{"oI#Pc["0.Դl`?wp!N}f}a!åvL[88 +8E`Fʆvz/cId$*g oM,O\YN)UL)G궓VהZMRΚRNM$)").Hh}z櫓STZ/h]d(g|o&A"0yNz"gԄE2ߦK% &='r^/>6l 8aZȨo+81C7Ny2=0qޡ+} Sʈ+0Bf}j/JLtw;e2+RLr-ʗAZaT-QR4HZ` TPQrW;L:6!Gbrymҹ- +Sޡܬ-ASe9%rW"<`g3_D\ܱ]  Bytx*z~𹁧sw;JxH U?[󌁧4x\Oe_ 2<ِ["+S:-xZiOU+-j ڕLb+'u+]GbڕIVk 8 }Uj 52֧˫:1^웑9O9onIzi]!m`Z+zv*)S?D/~yȧ3{Vir `~}i> \0@ {6g'5A4-ؑw&{qM$&_Y^vKVj$ϒ18G ->E]sKd5G6\~,1~ת5ԉe`hòmLJsM})׼=sV]0 ah@mR|(Ӗ C9꿮:|b(mRd1ӊߵw5CVqT +e]94]#8w{1(7Y9J~=x؃VEFiDPoEI2 W$\$CtEVk /g/.ڋ[EA1EKUqʗb_}hvTM*YÎ\QemO,)R"kE +6#}2ҊFPLU|0_޴խ޼n7ެisZ%k؝V/_mte (_m[te `{te `Z/tem`Lҕ5ôO/+Kej՗Y^j>Y\b_ګ/W1j,g-g-ghRNUckl=;Zn.KmZ+; <O`OƨfaxXFZuT+ XFeT+ XFeT+ OP91xQM ]ul_'{hn#i|Gg; _"c/SkgiFc$I|U8BqI/;"@z hJ% pԓ+yR~ wL3+n.dY *KLDX"nbr5!GM4Rk m +e#GZh7lSMdRdaR 0i:hO+^W>zƣzy6+!jK`$v8χ#~=N،:g.l|Lv2}Z{vДNLTI=—@i^sf>?I|YRbө ˗#-;]v#-;+q]TJlЯ S?=-۷rOD3s!;8#-d9NhiMx7nYI)-0j>Ztм#?%rlބ`蓜 _AcrSku"(5l u%EF)dYw\[nDUc~v0Nӝ r$54֨!X#ײz[/I۴Oq)!d0:To:b{$#ߐT7ЈO=(V#g|GExT6And^(}2 +MJaHk*'Zi"C" i(Z+BAE+B4mCn,cˀzhx1|V jSZC"Xڜ׆3^PmnslkTN[#J}J M4)(t%p$ =#! B~DW⛡qpзahq2HNuTI\"eLP]zߠRX%NPST=Q 7H cO9ҚC($ '!K,|O_/ +i[/xZ9_~|ke|Ah h :юPa~]9U`jN|暅/8 ewaS4:MT sxWzmK7N] +ގ|_=60Pmݥsy[gnޟ"$x3~տeK?Yw[; |{x+ 芓'~3C?٭=qj3YT3?xQD51IӫP@áD`!Q>$iD]5,2G$HR_$SZu9Gʛ?Ӳw (dI +q*'b< I` ` ]gA;$`Dd%CeXŀ+̓ ]qadtgOI9ƹubsP_Y?naS.Ò|$C'ŇͫVf,Jn|f@Rg% #%{]jK6zXfʍZ}bcL}htaĈlQP6z6*>3oitni4-ڝ#Ƌ-<ZxQNIi2׼MUO'nc*ᙗ`nݶ-:!"8i+}Y[s>i^Y>jhN.a=x,m $ZmN/Qђ1&u!91.ES;-@ηfo(WWhvj4yh&0b ˜θ?IK/] K'jRŖwQם;B,h02iI11S|PpdIIԵML2cw6ttwƷ:Ң PLZ+N+;bΌ +p*h\)(0۽f&m~~gq|vH_=@K3*Z8;χSO5v۳R3{3g7v%g%ϲ_D76W$Xj"AҨ (n>J$y .bfU]N +*1WKxL3Yv}D5AΩs1=rµ|5QѺփe,"@%9g0tR G໌lH<$R̃UW* ^q^2xIC%<:ᒬp'd#.5 +4Rp :5􎀼fu:d ڸe-Rw9!fk.hÍ{=hAQN]I:8(d}4NaDgJfQQ=o{Nhl j=Ԋu D AгAP4@{F#il%|2pq1džFIܸE9rv`dp D^yiv4kC +\@)j0%`);}aF<,MYO|E.7سI0R&t2yT5y.Y<8)ɃBILM*dI1fϼ(r5m׃ӯ]SW<'Hvpe".If#Hz>DSr'>Vv-~C)r5+Nph&B!<$R09^t ħOr|->}~;i5 yC}':u*4Y.O6yf_\i&O.D ]ɓ C/j'w'SAQ;n܍x}<%щǟߜ3w<ʟikKV2)+v*^e bwY;Ϭ؝k{L!87yj'ITq?~ޠ'egt/?5GOK+dMOX A'/TTchZ">->5׀g[s7%Qs)[7<=RMDgL31xFdb& ;q1`\W$,8ҍ?ZWjP! ^J e,[ f3"gbO3VgV<fHw7O`(-|SZ/U/2Zh ЮøȬ.WsOۚKt0ucLTғv{sJ[w2 ym^"rHZkk{[G:F JJ^ѝY0BW IU2Q@^Gʑu_?wO<9^f7CbT.3zwv9ŖrNO>̭}Z@BXʮàsl +#(Q: $d,ב:2bFD=Y n1t?%N a:s@* m/Ѡkgn<bjH%%zHhv)G##wt)}YZHc5L ") ))kRR,d0Ô2sڬq)vf\'Ŋm4Z'OR<@P%(exiAPC9F>}f}4]i ?#u~M??tt8#+ijksR׬~ t*.%h +,{ DΥg :#)nGSz:1tD+R6]ޚCFkP$@ߢ9Qڳp<@c:!}BS<{@5󡵋>K?e[$3jh4*K탔|.ڦ[n_ܷL߶еiGh,u(J %w?OẅҿwtAo\Dz:}NB+"gYf޽ E}tqUt˖kJaNmk+vLT;?HOO9TډT[ Deʎe3GHNcT>8k&/\t9xTfCR$wvrncx%jQ/rt_OT~)(0ictٳKb\J^YQik#-:Xi3rj@Wfv#*V$K2+̑8@T~oT߰Y|'T)%=zqEAjI[c`.c!BsR"4W +fijpG|l-9Gҁ7$VXM.2Xd \b׮# |[xYc$CKBBEuVO]CHǎIE 6ʾ3<>)jqQnVymvէ;QȅcgVOyBj E,=WrI .~6ԟ!L(8)h|5&[@1 +XhQ{|Zc1 nX;_|NqͱR7ɝ0i21z> +4"ŴQy84,潗ͮp r!_?XQB&x9k\\Xmwݐ[!."S iL_\O_xe]i_ut܋ɠr &_}Jc39/xN2\qX`*l Gq5rlO|福rd]Rljj^ $4_ɾ89Nk!ubxZK-Nl?f%1 H|RM> ;nodRJl4M>jnFMG +^(Xxk|\Hu.Q{|́m2&&Ťbq+M~N!2> <|* RrCuZ!"kJ[ <|z 'ox-'O+j1b-AKHC^ V$z?WJUA]S//B\<\`pƆ:&:7Nt#?oyD>,Pىe")w+6,md4u玅yi"JaZaR64Ur 03v.HS5s?L\{R]􇉏28ocR9Ge4H ovuDSWeAf V&Gc 1MT6ѧ3_3~&J}LoQw; _ڊhaw[`4MoK&-VܮGa2}Š#0B+N4hӓHo2^?]K?0-;^}^C '? HSDϵ7߳+\핍>F8l3wmٔv_9bmuWs3yu*s04RK=ôv[4K1v:^ Wd@vx=).8kipKk&D.ЭXG#-LknUP-c@eg&lt 8h3T╘` Nrr`9d+,4̓3= YpzEPq! HQ sg ]VX$Gfkuf=>63S8Z^-쭹fm?ϯ?9I2c /4҆} =eh~K|3  Ӷ}76ш`t:PI:.8's9 ^65#QƁE¥T"!x"r^B:r#'SLmcaKf'}N·Vdq;{FB ^nϰläZj"U($gӣB= w }x0Š.F=SceVrTrҮxd1( ?+⃟o 18Ui%L5ל*2W r9|MV(sMM>jQNY5w4kD͍mM;a*F1,s{jnZh[}n^ؠ8fjt\>#o||d3"Ti/bIWwS8HAY`KmNƮjDž:TgztwYdxu 7ɧdi/.O{R'Yq"ɲ,ذ 7EݝPYˤ8nDz,D.^c_*F" j3'r$!@SE/T/b^|aVGi׎ ?HXJ8r㘚u UD8d.&D]Ţ.cJ?fJkCͩ*5bLm]V4C?*qKe珸u Qh=Sr/wQϴW>G:zyx 7"Dc!YaUD+*3azVx`WŽeLK3EZѱ-vT uBFXnh)]K&)A1a> ߰J!ԨA]%cmaXJ](hOBŬ׮ӳZk^Jl4Y D <B݈4ԂՅ&ϖl$.m+Sw< т51%lU΃ HacMYx KIq'evNڴ4lk8]TduwÚ}I޺퐥#NVM_Y_[_F}bbS[^i/,Tݗ݂R!×K*1p˘ʺ|%|Ys"'eM̓J/K}e4Nɫ?^^ax?CŦ,,K/j@_ QAׯԂeE- ĕ5QhAX ̄Ip@ vYPrgY` Ԃd55g!}p;Ybh9< E%{r]&`<]s TZ%֧Hm6p`(o}hށZY`1$cJVP˲>UlUDx5NcLRr$, ۝`IçR%W+mRFOH)lKXlc{3 {񋽲_L_H-ZC4gwC*5vDFW&}TaM6BYx6t^jMµx"6NΝRˮ {|-A cݩIB*p}|Y`DO +͍T_z@+)OU_u -59,|W/8DV3U\:x3/S"-0Ief%6x}s\aFG:tW24!\W@{}I%v\ĕIcz&7;N4 -Ǿx_.@Jo#vcM|nd= /GHD0Ȭ~u[~>GWht{>$2uƯak2?څnXgT)$ͦ~߇Zv4}vY+#<% hQ(l&[OT5Dι_d@KFدλ?vu3S2}DَÆ9T/q]ڥcsJG j$22%i 'm HHH# - Q9R樛2%L.}ڐJ%F$OT̠ɋ_]9?o< Z⺚5 i+dc9V"n8 S=-XL3F;-ȔhE3$dR&DuE~xrNf~2D'Hs7hF; Hm#e'f{iؑ&xiFđ|*џVbTd~La80@sӤF)GH̀5ݫDW2ʔ-QvU3.F?Ϳp9jxY{u +_`P7GJZ9xܪkW.t"~u/ӣFus ɠ(WCt*oO8F~]hQw/H~G򦽢QID=>G@4&aﲸ7w:w/ +'WKxᴡæ#2UlĴvRLk/V 2>9_>OFp'󈟆ay~ %_!w:!6a3&CV sNҡ{iu$XM;>Pp]<:HQaɹ3e74w%Ljj )7tW!& q]㜌7%eYOz&sH;WR>OiF:C \zxrtvN+ķtJS70Gr6-S\*∱g9'1ﵤ2֟H X@W-'c8&mJBD6͎ w@EK)0g{iK-5^19|Z`FԳFO6O'Gd iJܞ4}TyM5kE\΂JmAC$jZ|sRRh^p=*}^s"Ո_Kw9p14p3հ?0\w8П ;MÎԡSLGbj\kx{kN5It=kHf +*x{P~@GaD~EWڨ5Йq/c7v/y0TI]έvt[eM/zQМ% -8\nch!Cȓ/ c+?&.K9ZY?_C1=vq4mIf&̦ͭ( 9v[0}&:z-0Np?iAu?O9Ab`V_OJB.G'_/t/PTg V=C̦~o@/f o[jt#-֨ΊMؘE!d1awB(p7upmi~;z9z{-`B.0Nf'!|zLO}j6 ^~FF,s|u-(H7PH]mDž+fJ3!AkLؒ {J?^w)e":jTi1#b%~M0~\w=?^,,˗%]Β^#lȖێf;ec.a~b%Ap*/,fn1?Mnd㙨LRR=!FG4w8^A6XdxŚxr#nO΁/4Rba3"E"n,VB~?7k"DNC[RV,~xf UY~yߢ">Z̮%Ӟ6 ,"~pcVHoo 袃Q}~ЖV79j'o 2֩9~JBu3n_\xcˤ\Pk[z=63  L=z Eq6mp ]ES&@`3Լ +IsOgw«$|v;&72\e% +̪ pZ%/spH]Ívn]ZFûE2{MѬ}ox6iNVfYI3ir׻2Lr)mHf Oz‹a=÷Pq]p{oWhnJϯQr}UVY`_ƙ {u3'[o Oh| sk]wu=To"/LvehYZtTsțvR'ؚq?@$} څBi׻!X- +cAMm OP´)ș/E*#43 B}`^ 6)U铆6j#`Ra{]zf[qV2,kUVڧ2boVޗ jJPZ %Jmj(Qвe@#1|-7?˄iHr%y=f&c)"tr޽+], /l>=]3lY/]&] 1{F$/qe\+ngOsH<4U;䃃}h-; i0 E00p `D 2k̉. p!KaEK;:,i .BAA8@ 4lXZ2F`J)oDE/)6P)_ C <Džvݐ\C|ie(e*0k8#o\,QXCࡐ(\j(ꕽ<5ӻoUMUCwꥫ^ݻ\5n,R{x'z‹$EZLή.iS1b sb +""Y,-TZ*\b,iq"iA==u>im3viSQ{u_CF~F;ҳf!?O1[UR=wVF 'eDʗXA;`uR/ɗxn~En˗SNuBaDm1ך@x MiX`.v]nl{d,s̘ WpHE^>40񋺞xwFCoޮ[6Qx&8y:]\ SEq# "vMܥDB-&+V{ͽs.*6ȎqSr|՞!5|{,#rO_#[.}İu7aW ;T)b 7KUj;[M1z*)`*ɞ.Eh@F[Uҥ%x3m3>`K;Գ dlL70=PZ((!}‘>҅J y["M ȒOp{o#t H-O:3.'ղF]#++45p3IN]1+3U>W›C"@ +eYR{S$TQL4#kA5W '-kr5=1kA}BvւjZy*OqjVH,r֓|aw/ѮzEѲ0 LHZN&;fɦ!$?ÞM{yegTpfdmʸ]ʗ̸3L2Ñ D+.}qvud`=8}9 9avHT0>"Η-yʱyN%;Yu4-קNqS)g@qw^:I! S y6I}:gq*G\-ŻhHw-[=l?Xbm'Q;>s!}J֑vĈw?'64"ܿ`) dlO$ nθ !ulD1ȯ`nqPBܵymr~日{SSSW^})͗e+ է/KUkW&}YRzz z]nt^#)z7z^ZW#|A#-Gjw{^%3 W^T5q3n8]Rso;)DNpQe+V}!>hNՏeż2g'HT@$Wa:g,u n.@C)2ɫ.ΓPBŏ*dySğ!Oejdҷ<#F|iTҗ 5>DdXF|ir_}Ls)>3|4ȓ꿥<`+gn9~0NǾe~d|$/p%>)6dAJ}}I >W:IF%$iO+Vwԡ~$U}KU?//-\oȡ`?u)c|@ޙgb gFAޙ gƁV~a0@ '6 KY`lT=BZ>? # a/]ѐ c|ƃv>X;Q.Ș5o]~ ejPs9qǪȁE/~g#cGz^4bՐ?P[As}4TȎӹ-Ȳ7]DX$GҼ*I>:.-0/!irbR6,θ7n>T:Q'@ZMC,P!>5H\( Xc39{ZVyךUDKd+b8tPVjcYEUjEw WlLP {MG]="QVT"dȖ*d +7ÉXjEьjEjEjEjEc.W`w"iEh:cׯT_r{f~i+F7`~E4 SRȈS\,7S\7{b9ɢ%q[!5Tbp3'1G|/i.xe.4`>[M7|j쒺_?gt(VxJsw.>~Hx]AMt]21].C[1/$ +YU':^~v2$wqJ^!cbp}.!63(o= Kc)(ʍW(K-k\\w4]ԺtJuz]x]7]i-6"\0X8Da!9ƐeHz1A/*H?ΞҠ\q쒐Y=W1D F5JYbP}Jr4>owTޮopx2*N:(#)BIYN~FEgg MoJwvӝ(V 8In׹}P8Mf8&X$IH ^C@<{7=!prO(~K@jzb $ʣ?)) B +s)|W\MaBm4BMb3q/~\&:Ǐ@~@ڕWLj2oxTYAvzu:;%UaMcB:@aFӨQ!Pa4zE󽈿6Ф1GZ  à bH4*$;y{/2aH.>[Bc_Tks/HcD]Sg9uYEUu*G3(ilQlD~"'o&o/7*~FUz=G9EWg'P8~JTؼ$X(iPp搞j,Q6>֡cyU(TPk4LU3 O4&~c5pGu@ mLg}TNB5zjʶKPzm(R^ᓕvs`"<|RaÜRvQ~KKgtJY/ԋ}Z{Hꖷp`oʀq~3ă%bk\Lզ! IG8|h q .(\KZY䂣 A'qMO]~6vL +]FM×DIQLaE|^irJ)}nni6-RRlծ+f泎x Cc(o۷UָM?q?_a5_b~KU˟c];ck鸌x,'g7`Z_bWL.#0[r ,mň☊O,M &"ϡ+!DሙŦJ\Ӱ0c˯ HG>/kjSNcAZh7l1D+J1P| /9W=O,'|%kT'qdwZ7LLnD<;3 K^phǏшW9تMGS6ئx]t%tb^ƶ)F-M_PJ?obcLOi_="~titj>_\Hi4"1["A4%mXhe&@Y%_ z,biM6}ZW[lbp]Nay?sDhI!\ڦṘ9#Z} G쪧5bi +Rz +9\i&31 U;p3pKK1J hR+4N]5UMɓJ+!}UVgWqZEN.F rlB,2-6iv:o_w +K1s]-j؉!99xOkW\f +cP"VuEЎvZo*mji&o`xPWx0$r&GQ37c'h?Mg'iGk{b߸ʫ#hzQDs"s?BLS⽜qyWtz#?N[@gɅҮxW5񚁾68ZBV7i<sN'O)FX㞗ckBL2#)5ƣI%5.J\DlU6,]PSzA4Ҽ$X6/9ċz6&uQEe$#HgUI:'6ɝىtB,+' R^ ܮxQLo qЯ=InK;TvJZ_PMø獤X9}a~?Mƺc =y3S^eZ㉻6Ϯ]`{g?ԇDꋋR- ]!3RF)}vEeѻ_+? PR9:;1BmqM[ZDa]d3S2KCX&v֡R\Elt鰳=qZ; ̂4NMRp(|}?!tl޻s=^lB~)ݢ @G/ #G\tsa T00h]5 oKTW?bNi'daWdf)gvVL|[U2 "XlS4t)'mH A6͟SLJW<b" }kd'o'0:։@,>}X@ m#Vj}bw[ PCv!QUa2C~uJ(^~h|_?GrT eg^Txjv3&ܱb?(nJN bXmJd@, rHnklw.)^{<Z8w~T59323{=cy >mV~4MxeS􅶿m,n&JᣤBJ/e )~h Τ\/<;9)(Kݎ +ۍ&pr}{X7e_6\ZwKy|Pm~Nm݁=(bP5]ΐO{wAo1sFA"r9+[&p]prx-\'ܿe=ѐa*TC[QZ[˶7KPp\!SadW ^(/w<ݥn̗wA/d? Y^put+(jvd ;\$W8@ +KK8\/HAhB +2a#U&t"?)\` JµgC>+j?ϧXDyײzbně:G];OJ>f?TKC?,5҄Imj^(-YÍ%(pO\i`7dNYXBDu!E07;S!i +Qo 9T,B6sӬ5w ;F֯gHi׎ISm4ܗjup(Z+TuSv'Q^i1)MC_ZihjiyC/Kw0uw˞\H'JrYk'$ġxo,_l j}:FB'W~{9<л`E61l#\Хkk׌E4vritU$^hTݣa\6qf>ɳi5EɭV'!ȃ?bFN0zZYB,Tyc^ŲKQCk3k :-;1JEyЅh.OɊƙPf&DE",|zeQĢ}+RկGU'DUc~$>T"5ea‹A~y=`'RS\>pOۑMėzSY!B.fQS)+`R9w{CtWkj?#((;1f W5;@+j؏ݽѲ./T~IKq@S /8!;delwawoi΃0Y5k6"LN4ӑihP>0 ,LtgZlb06Jy[jML&TVQV^)4\T~CE&B2BD&C1CiJڥz?iMh-VԆ/QOmh.^flxZO(%" +Y2*ci#}@%}zB(KFTVlC-1RhD.)ZS !3䒥\=\>U:j&EְUVIVP% ]PJ8NfuY:UND\gWxqgѮy#',ψ&tY~Vo 9ׇ|~hz3V&p }EAyܬc \/{ɝ!tS9 t\:42M&WLwcCcz|c\enp:MO\Ϥs%) j \*;~:'U +9U+YzD&񉪭C^>QrX(5C~!1YjS #\(AnwJRu9]pO/;V +il)ßTUg>qr|yk0X˄¶2ֻYu?/U[qCKNFTKpwQyر:C$#} "j4{ԓfaf25dw22`JuUyD*}JDu7O߱j,S}uV^aP 0I =Dt%ɾ󯦫Aӵ6&#t~dD޸wZ]Lb| 2r;rpLj~&vnʻVx5n5t&<:_\d{n-~ؾF GESmF* +EKKe9 (фos؟Bx[T +~KE3KS4%=j"/vJÈO&h{낛:o|uɉ +Zrn??v6ؼ٠u6Vv#\iǵԊj+u5屼%i==>ܤ^urZ:Fǵp:du/P졿Ж0/Xo+Y⪨^z^YPGp]=v]w@sTskldܐ9 |zotxh=?vu}X=uusno{,_؁mV.Q:X^ *֨Q¯Y5$[\ \6d +cJ=Ц:a@%Cqd4-jyDva&ep~0YK&Jr,2)J{\G6rw}:rT{?̓dDdm8VuﲇF٣ݣ:/TLj]2Bt$,K%;o.OFY&7zQK2F, 72dRƲC>3 +=ɎX;v8CW"X"kXo3,Y +eF=4'jczSXkHL?[ql>kJÚ-L1rs…R W0p.7/GJPxoGQQtc|eT瑢c}'z|d<$jڬsGp7N)#ݠK[Z}5\#B<|^gBjA/p%O%Qy7֫OvO[}2㫁>A3xf{GJ3?Uk"O!CNpO^wrMj$G g v-spl6sFcO>2b9>=UH++wziAn^83FpZ ( kmfy3jDo9y@z?Dј$.~)+ K9HK62ׁ#!tU!!"|3v-&*(Qz ++;"Vb%Z.6)-X6Py`k[g+15٫ٚNf*xH^oKZny.o 0tm%{Aq<*irPJpnb.F61I\A fz;aK+EHҹC3)I1~fTidBuRƍn{f@{p6}tpXo +bԛo7EW'Vy sd?_?񜯎1S 1צu{d~- +H|D|oK|0skS4x}j|z&_k4Q冴̟Nuѡ;wm73k4\֙yTbO R:Q-4X&Nި;I +ULx$4|41ݽt:׎Öo٩ۏ +Ervj ǦtTϓD^;ҍhG5Cxlw?(}b)/H'/'.;wJﯛ'Hj$j' lnuؐTQTz'v4r'O+l3,>uG 5тт->ڹ +&äO"6=D:D7"͟"-"-;Dz!҂"-^}Ha&82p4F4wTÃBSҳSߘxgwʧB3 @yJNZj8z62b*K{^[掗6-^z m~RK?cqGpqLPGV0NIߧ}^TMJVӃsڨlæIlGfM?/ B Ry_YHq'PPt֫a`+>W^W +<}IMZr\pµI8lapaHuȶ1x(;y0i300;Ց0͈dJL .̴&dTf`c]%[ײă [/NT:;Xr4w \F(kGN)Wf'D\ꯣ Bڋ 4MzN*d9a 5ߑq@bGCD҈: +b6-PcVπui-;&٥[Nƌїdm8W&F,{8 W|8*^~i$>&.כlg8$z~/$.'GPޗeB}"`S@W0&neXJd& +wrv26`& !τj/_he)|QIKT,fazmWE7۶ G:a6"jS^3D`Z0je"K +v3bB"怿Q )+} +[{i3}smH-&YT)p\(}c༐EXv2|cOk?ȁTHil?!@Hg2 fYvRuun;kCUwpAKIŧTw0>ʴG7fJ7g&/κ*M{CC5E7Y-DCݴCݐV!b8IHC +RV>!B +zD`f2q)ʅ 5p S!MX1+@=33UGښ99z5=#n6a Ԩ"om^ 7(Pd$9;C|!((Sj@7׳ L9s:ՍU^i\],.$DUkO N2P;N[ 8ygF{fL`[xB\pZ$bD2)$޽gVGqki 롯ffLj90*3ưg_5wQl%xpmbMs UUGА gbn׃P\g%,7P&$wNj}F'6 +TvTim8 n~śȦM=vn~,컄ĕ(',Nx!B>uxֆ-==e:Xl+Iar6O@X)٦:mY9Vs7Y8Jh4v0 +۪9f\^8j?z\ 'y'¦eaUEQNb$0$nZRET) ^QTlk}f+s#DED`sl貘uN²1k- +OT: 7lO_q\y燎[TakLaQ,NɭF5^{y>oI1;VlO{ޖfs=b6ǚoh"oT#$- R6&5 zL 'V294`h\֮z[&:)$j+}Ar/V` Sʯv!]{iz2Ib' N?4S^e6a^X\N+,>ҩ@\SC_]zH1\t^٘6=͙>vO: 5`Tqɳ5&{D%2pF6/4oF$xD$#Qrj|:\ؒ}bq'O4-"ud*WX1>to╻9^ */W5<`p%c1*62 (pFdK4~8;y!LVe%@-/Jvp' L"Li֋ai,,z!7_bILM)WX? 6Mpy1"¬r[&\!W:g%i\>kִߟ1~oxܨB_H/:j{'9t>wl0r_Lk3Vńo3̐ cdp|{\F3rHh·6o&B NAl[PMޅ)\5I\x c[@q O?)8y0Y܏L|`Z11)XGWs5bc[%*!t9¨gkSOOϹ9 iL1gC%Qaa&3~>hm + `9 z9MW &OǃәF-wAa~1^oN=<"'ϋP7@ݳcԏcn7r7H_5 =L@陁tQ }`6 aSf Hs=CЧu{wg`PdE0@COL3aCϙs$\ZtDǸqeܔ(kDY/ wYY:n^:2_['_0%p&:pKC2xEy^ID(}wbb80÷7"+Yfo㟻: +d=0{o#+SW'#PKqs~rOX%'{6"[U•򼖟AZOqx.rIuc 'f 醱7,}?Cʙy*grg)tJGfLJCQ(PrkroLFjY;Tw=tw,<4. +YWn0KY߫>yޢmwyNe=2]zUךz+؁}#Ӡɱ ^ˊr$4Nxr[-h 6ݙ=aٱzr0ДNc9C?pas8Z eS쀪's7x-&w, ؿ;(e+9I:Oe\f/븮 hfcqc*z뙔x7z8Mg'&'@~SKfPo RS]ӹr;9PǓ;#IIg5#;s,R1Yf@Β2o)QGČYsLk.¯5sVnaF)oR>38z ޵wefa5 x.i9MҚ:]:Ӛo 7r=&,mwKlq} FUF0' D㑻.ȶlc]8pM"]T163)jZםYӎM)`ԱzJ~ۃ%%u1R|S0VZn/I{d4PE|;Mu#-'Q>xdr(~uIyv\(3o1Y;$ g;/ ;C?GG[d2hq3U<]"άA!yxϙq]/VX&ڠUy98۾A7Ft)!<+ Ⱦpo@nOu';v}4TtS?)[[7&DPC;8Зs+K{WPI7*^,炲a bM_mAQL*: g5nmT97T t,IHؠe@f_B.v|حxw 9e4A3t,Ʉ 3G$L=K/H&K$e{$jbYtnW%(zsS?*T?+AҚt/TO&clo=' +|:v(T(]5tn#5q=ABC? Zեܦ +"7j-2Öcp3y'?? Fg#)9P瘺ͮ;%gt܉^> փoܯ)֠/+@#Q]ˎhnlhOVtw +xSKŰr'n#|{m^oJ pi ߵ_z1غ^;0XNja,B= q_) ?_S`-3zbiO]2G`P ery7S79O!Tozv,îtR&aa aZ]/-j[[锈Ӂ_=:$7gxd?JʯF(_Ú2]ħAM!95!H&D:Lx#I$:&߁C> + 2F0#W(cҿ^U Zj~B ;N#r~J9t"P'xNj]@Q-TF p F Ͼ @63m츥 KuN(Q?"_%_EgJ>Y:c5U( d9ݤ~EbǏjog/zө#&0l1v/фZ ;n ;oYOo}| 8ZTYGT嫗YM!P Rz: ub:Cy`H;(&*e ׫ǃ(=[_?"u-^Mᑊ"̶4uɹqVďbec4;[Zl,4Ne 63wH-NbX?_qukNW^O(Ccw(s +/ +f? 8NoYA +g+j yra.b .<řxtr!s]JO?<+:vHi +\ |%L"O; Ow^"2' O20{RǾ)ONaZozm7-8C` +ljӵĆCζ#E!? ΋My6L0zs0O8Vs#A˿=hZnZ@KP*jJ;5WE +v*ayY<ޏ! "(,<>&/`UXW)|1hy֖FD!f@L@FU:v)V#1vJ*G $ϝgu;'~~_cԯ%bl]"vKe)v;XKf@/ac0zJx-or30%4/&~ _*>;+ñP>-a +/s΂1-pOs(.mBIdf.fϱj!k* M| {7w@<'NCLu28tD7%@SL&3yZ³sύxpv'#Lx+=*P';ᕘ+ƣK߃ɽЫqI\S⋂QY$!eLt=3Ƽg?txB'"216U%w֕Xjgi" O5&G1dt^h"ٯ[)C"dk>-Z|&P,0vQVZϥl3-sw֢4[),jo.h$p J. Ȍ7U#8~ОPh7JQ*q79rg_K:4 ?NrN`֨q6ʟ(Zw8J9B_XP~q-M)qU)nJr^|:z?cNKitɡ6BCzlx~'4gDp7[<]w¢0Z]Eڭ +}J% ;)`r>.Y載A쓓-dke2}Y߉:;>?JY{x/lfe \^Ic0tRCƋ5gN]{o_78!F\_se5D?œ e(O "_1z[e**V vR-ʵP%T&ӗ$ww-0S~y -'ǔol[7…D |Mԍn<۱;a_SB9#{?EQQWcQS: eQf0S3?[3˹6v}[>+,F9w%0d.)5X!SVz-NWYKNmt"fI0F;Y +aK:B.]K | ,u3:-.n:C{TVgsWP,=7 (elHWa"=ICןL߮>]AJ⪨ϝ( +ͷ){,fK$'&wOyvہ +-Q{L3I'KOEU䚽-jI7ZO4 ś[*p!} Z^B=SA_%;NOşhlZD ʫxmlp&UêX~Ja`#vlnو( +l /,koHlhƿ;n #}9bC5NX?ׄb5-X5W0D"24?jelkZpۻdF`ijl(Iy3}kxZpfOF<'CH71<E ]]o杼VEp7 Ϭ 4<'LO8N\~zI2*3isqngC3VPe]!P C#Vb^jp fp50xU0*cC~jl61oVV(v17rR,w[~1΁!Yo~0]+{f{m왃%u'n'2n療&ϪmʎOK}aѹgU*YO62&bq=rS&}+e_kS%5wώOTTKĊj\%N/z|3]1PqCj@O qmK}6=n dK~udc&v+DAG읅ƾ8;vLsg0 +q) GL(j:UU%Tgb3^/xdVd;h3af/ +# J*õgV8@ +__'R'r<݈0VG[/^-%v 8jI>kZh[שuGp|/?ݴ4ԀNÿt΄f&y 3K*"\VBςЙ} +d5P#H$d6Шv qNI9A;4T tl&hh7v `vTPͱԺOiu3=ױ&3XHpY-³ @6p7vj?~F=|R E8I +x 5G dO ]>Td|ёHƅoM8@bJLT{kGGRթͩ L=RJJqZ[Xɹ;aF²gS< |%U#z5u!DRŁ%B$2j-d4/~p3x/q:y-z&V>{%3@4g09X@B=rCB^tHjbC*Jlw#r5Z1"hIc:rtTmy0, !G£{5b):qvTt v%LvUcWO`I*~_|ϳM^/ۇl)քamG{Wpo!2g! +| M0Qkv _E} ũ4HVj%U zF)B}0gu0T3 Bs:lRdXU4)u(9Wj0p^$L^ON~H lFPbTh݂8Ph[=nSLiX]DbCB +ݬӧ-\&s}#Qd*cFڗT£2G 8&:T} 0;@B\r#] $ {TMI*Xw9atȋ l(@r6XP؀D#4#"K3>@CeJ #fӫ PBU 27uٍYp`cq0,fC* Dn Rb&^M^8h^ɏ{6GhNN&TdHB#K- 51Phwb;&f;t|՜?; Z/CHSKȩ PQԃPEquK~0_op~<bټOo["4l<Ք:AOs_Zmiٴ9Ƿ[ۉnܫD̓r{(6c/zMkoc/h646BFRM(hZppnq 8S|'\,Ze bpr \5fzz:gRvHٙX 5gЏTn $Z?>e3 P8 C4neC1z} =kF|_٘N~}DQE3W\$F +* ;H~BJba1t^Vg) 瀞{CN~:ymd_ +03Jńk+Cؽ%O6zZS(R"f'w9'Y`4D:h(:9R_ ߒ3BtWr<hG?րQ.]<~ RRi!ZλT *N}(S-y3Gҭ[pߝff>Zsߢp~y\u{xh7ۃNh^#p qwYvԶl'/.N30 m-\;sMU&_az9VUۋow>_DnZyy2iX5dCd',&ǵ|]MLԁD>p>_k=R2+opt~f\ ]^8̩a4?_,|341/Y iR\yyT|/7+(PQ$ /o^*Yn!lmFw:  `f^4Qe@#9p [0饋.ro~ +Rݿkj>̇rڇV yE5]mDPsi 25P,b[&6mW۸&#"M8]&0Ϫ~ĥ4pćRYZh$ YKwOb)_3Re\~ѝufrB~~,yM-_#F)D9؂;tmȜ=.8>l{Ck&jܮP})݂,H1sַL̽Y?cQa(l/e0 02"41O/?#xOdGu" Iv.h^{Ä'MFd|Z/1꘴&xx*4she>_jVDhR7s7v6m볧H'D(h4]rB:b=3uf!?ߟsf仄,6b2Q0S%̓o4r!PG~(C1 'P!âwTG^ahHDM"ኹ-,^*|?h49_e#I X=p6Z`+a˖[Ee䑉"\ P #2*|fAV?txz9[j{l(:Sga 03]$cEN)E`-w4'g{D(ėq3)sҡp?zz#o[?lZ?s>is>2Q 앲:ikw,ɵ4{0I'qO>J맯3y] fH3I qkj]E/ѕ^bv.$<"PEa"-MDz$, )4 dYBAX&'ػ +:n;|v FJ[mBl3ε[c_|d,i~Zi`/+&ض{x:_4z=|܁QE~{7P߬qcRqjdTz >'u\s|Yĸ}Q$G ֤-wijRE8=q{c?|Q:fmĊu{Cʣy 8'qviŒko+s>I<4߱y (A>hzGPXHhL7 3-2M]wЂfeWf>:v!9o+$xSx(0.b=tH NZŇi<|_e?po <\<;{?hB;DhfLjCksl`}2X2[<Ͷ^Q1&؛LiOW kx9DdS©amZ ;&S'hz)^z*YSi u3%< 23ѝ~`}E:P#!( H9pl89QO0׮Ni<#^,ܱ.0^ v2nh y4 Wm3 {Nf)I.dɓ1y|Sf,x{0Է(=ERttDfY%.Igh DMQx }ap/Ϗ !g&*97\[0Bʞ9H-Y[r>+cfkjD9s.gDO긌de&yv3w3]̗䟊l!fo!"CXu'eu=0d I<9:ٖ? +=|Țڃa)oF:1cnq;鳹H} +l]LHF +9g͑/ZR__A9eE8msZNc7C׃> oU"|R(㕐)A6b@yާ 5ݞ/ ~KQu#VK؊Z7H:HEZ?'iG\Ci_2x*I,l#r{N_3n?u[Ow-l ZԱܚs +-Q O2PoY]2TmOϾɪy-;U9)Vd >g)wY/=i˩oK2ۂ3}+,cu8'e+,gyACӀ?1&SfYNFЈ"58yW[̍xU: S;4Z(Ø\XBi}bPJ\?W*ཋi%HyB&-C./_͚N%'ہ~Y[x9[K0Co'?qOqc&гd$eJ2b--Mź˜>cfjD.z@ xf3wtw|8Y; ۭ:݁!&lc% >qLqxAEaU݉R۵?XEZ 1XD 6(P :m?]/+uXI(`}+aSrxxOFLt6pietţk=HH$$d3em*PjuF "Hѳmth2f{$b~Ν縧t}_r|w{>Y+EN=Y2^/.kq %60"#}ɽp_)uq~k9bJuFygfL3ݱV Xd*yuX0,VY7גř)lm31T3CԓV ܵT;D%+.~bѹX%1pip 4K-f/<_]+~+^+ɗBOhѿ7а8*i%@=Fo)sIF@t|TZUpcSlfH PřٲɆçE>0CzD.!l!Żd/i XNKcKxvPj%rʿ(TֻMߛUQ"P0]ҝ9NZ^Wq^YAK?ZK7IqVFVr!Ry,dB,`7-r#JG+/0Q!NcIy*?Y.̨DD*З=j|/:DO/v֫8QxC93*BLũ>kP!~B(?+d͵"`s' cu!?=I@,0]X9B i Sln>i}8[v1螏+fn߽C!nzR۽ὍIuGӻΣ'k rj%E/ ۣ?KO@Z( Sʩ/L.e1% Vf'`%R ;d1I+^uBV_5K Bv T#7R=s-:+=xY_Z: +fGxqu}aq@dƎl| #;Zh°Q/,ضz .4kd5v/!?[+xn!>ゝ؞^%#tD#x: 𩚊DCv꣔#- pw(/D1{3yQ T7ZH|2rmqu1'7w-= >lk O]+([Q~[T?/]sj|ƮU=ZEnjid0UVp;pW5F%=1qy#_PCՙrOqUGtrQt(:MqJU}3SxS"`G}>rKs%*;Za`ūOE%M~)_֖~)܋[*'kg0f3Y>o%~Vv lє J{%-1kjysbd\!B,Y؍d-K쯷󧷚f-dLgCT8U=}+@=r'5C1v~JwfP#gPO/__aZѫ@3H~M_1)DY>3%-.H?_U-@t:䞒5;$\FN<'|R[RY s=o0˳UWo=mz̲ZB=.Ygܴ,iZ,զ런%j3JY]2`sdZ# X <`*MCJ]|깞Mk-8O,` @ t>#9՚TlRN Ep|όiϟvVɥcnf_ +_+y}V{؂. +鿬;)+]_y3_^DV>_o-JbJu#IU޴y7[싞ѼoW +lYM^";5["l xSè$@+dx3_aTo1__&>O-#DבkVa9HQ;kc7e=һ-юEf'DɮǼ۵OAb `3*soTS'8 רg-Y(H!b5-AvpTOQe'"Pp90=ag)F{ި{sT]6(ߌe /Tix`AHROV"F@Tݷ$MM8ܙ;rƫ(^Qj-f{9es:'ʃ1B\ad@QİF'go2(>$Xu+a땰ձuàz%d|z Hs+a=FQbh(*z%l ^)0JXGTnFJhz!ov^VNJO464j܇3VV50 8=0aY+o[mёrz\a WtW JoFwEXJc'tE^ot[Pf^ԹU+Bn"Dj^ FSI':5;J땽gW[5%F=Kd]W$Q+^+$ǐZ-l0WdêWi89> @/^S{VɥdK1JA,ޠzI:w@.^ ^ zbzZj +6-XL.Xz%GIar̝M$:Fd2`e:I@joz%zŠr@=bJ;,n2|B] _ _˶y2qzGW>ke+̗> +:_z%߼땈+"3OvrQ8Y"!2^ {GYM^"*-gh@q̣K+,($ zE^"EaGRT,QWVXJخWH;k +F;tv VPhG="atF'+e +"OTEҒ,*Sm4eyJlGk2DXJ()&fIsFUaOiD`佐ҏY_ВԻD _CSʋ~KDz7?M Tev>+׈2|NS|j$TW|ESb%poV܋dA bرW +|ۙp,H6- I"?Ɵ+Y +@Ƕnط"gjkSW}?q +֚ԕݢ)f-c.ҶÇ?Ϩ ߴM*=RWS3eﳩa%wa"ٜqs+n>7^{*~4iH$L?Oo{}jvEz׼hƧF ^5bjt4`͡/pLg>ެL_epOj =ӒX7e6岖hbv57;Ԥ):o2C9fDc]BqI +jPiZrۜ4TWoc7 ORZ\ȁxheL̎qFnFc-q.`l5ۜXU}`% +!:K7$Aϱ$ ǎxp4ߵH}_&Y%,=V,quIN̫='.s8CRl;)2| +B4vV_^.-1^ɢ$g>7BN@!jIoB kPPQ͗`[up,%g }FXi +v5wI62Trlgm"iuji#0ЅMA^Y눨y힨Y7xy ,+"7k@xi۔zmQl+Q >5ezjtlrP>N][S zejR71̓#+$O3ui39~g}Pn&4](~N7.A[X;XasdP,ǔ>N`'Ln ɦ0o# F/‰7ťs}k EM懤>iw/Ge_ZuDe\{4l]޼? (`Ykh ;̪yBuPb*Y +!pS1 {ե&;{lz_dMVFw7wRj. ^K*p8=JO&[3}fZ_?Mד|"_"86?*]CQ؟f[eeFQj)oiְ2AL!H쩡tSkƸc!{0UT?el=HB78Wpy+LwW Bud! +F&|H"%)K c@%olM5؀yfaqﶮÿd:KX_Hnk}߿U'/FŁǍ-,#gkSI%|j,޹O<gz5U5r~JM9铿}|TՕwf2buB7hZhגJX$bm~ng`tfܸ%k۬e۬k5I2)LdFjbSV@|{ߛ7B@?fo=sϽ=:ͪҬɡ: l2WMoX0܇L2uVD ;\P=ʟ^zg}[UC^;zthɣ.ۈiEUb8| I0Jm0z!-E`Oԁ v/Ei6CeovfC3V1P7+U ,؃;5NXY'_fjFGζ?IOPcH C@^~^b??3?4`Ao׊aZ0ACs/gn2ÔrZC0#$6K`]C_C_C_=]85]IiI;p,^Mʸ'L|H&^ON/vxJn^0iGJnP$Vt*ߣ``gMZm|ZQ>o|&LٜY ȧʧ'mY@>o|&2fJt(+;Yk-^#}l\ly?P +'WbfOS5/# qI +Ђ"0vH)9Sh55/DI\ B)j/9:1d\=T7RPxSXߚfOϊͮRB'C)K{Ę![xVe~2/?t2,ϧ7tAX⣊]7-s-WJ~WmVG~ER1ʃ^ی*a>DUw!gJzlvUWzWҰ + T iw?=^Ŀ ءoCi/ZG/F&Q + +*>C1dTYs=?gM˨ TW5Q7, .QL[ϛlF+#j0.U łlIҥQOUbtyTZL7ghyb*ӽ@z|^ձg +s:QٜڢdJ¹g7 F,_M!}Fa L=xqpÈ߳>5E88CP0 uCwg0gop)#+֖,?6y/D_v1,PXq, ݉=PS 84u:"e X݂.i3ܢ +ɶ_궅>m 7d$"5xԽx{p ]=b ._tZm[[5wxKJ~-_ʹfz=+~UOʇd!F-5>S LTЄpSk=ۭ:WO6|?YBUx>ǁcH)oj$L*_ Vbd(.IZ"O~#u!%;zPA+P5د/Fͫ\TPr)jdd= {j rC=VrgʂZmFnmQ*C^2MkXGoҫrUQi[Zq ph I#;sXzѿ+xT@|V~ˬrX ˕ر&n-@Oajsnj8$ @ Bv'*+0+S֮5V >k>%85U oB:~C5V6<[l8[N燩ec88xh9-zp]+R@J M;QD uEjӽXmUƈ;)'nC+T0|R'peSiƫUJܭo\q;\ `:O*v;xYL~3zHX2ѳY\_=ڷf}XxV\wJݩ{*qj5܂S"%Xke8}yu ψʑA +iOYr+ĝo*ksҵuÔW:BDrw J[04m)?["z{1lKi(`ښKwkk2+ d6\9M6qu៍ibAI}ahHy/RD7ӆ/}҇U3S6pEv0HYSCٗNH@tPC=sWF$ +!b|#pWVz#{~o;uޒYNW߭ʣC=Ӭo:S|(e1Q_y-;N[d[Wvé>*,W} or[bשJ \WJh $&NRm|=PV¯5e%׎MڢzՅף.M8&/2oI)pyǵIiۣ]j7x*#Zš8%4ȝo+TP}# *5׍2)Z79 bA؍{ +U;zۙ܍g䄪ts~CA܉ܦ*L)cM'S}蔝p~pޣ=ɤwt*z|6󎸷C2U"̛lQGf{P ?Kd᰼y< v<;W&EE y3iKC(~miʔsk_M +!)+}M`}MaaD%}狞@p0$hz ?Y7ꌙd +CRr-᫆YBM]NJvkfA$" !'5(ID>oQIQ)3yYYtdL ?w]q]͑dUOAf7.% +_¡⢝!~M8Z<<8q1?Law)RQ1װxDZSYhOǘYwkCFv*|m/3R,]}F 5Uw0GSo皪ter=5yYhnXJ!i5)nW\yZ#.A_A[ML1[bس(]=x>baU\Ǭ's}!-~T.LY?ݥ6Gdo6kGwj h|X + ?z#K?$ELTDcqDRa2`_s\i#K:!,0S\)Iɼ^xX!{Qs"`f +ȱU8X$\HhTd/khWuz5?s`%Cq0'oYjЮT-&-;6\pZ-&&$TAl4}"ϙA{/R|қ6PBS@2 +/e%Wa9bD\?kpH^#S#QWT?! D:|)V tE2?Uoh4hP(VUi7)yJQ!_ ELEKrBy<'(b_ 'ۄbCJ]HwWvj1Fw n4(k`In-a (r|怉Ty  Ev>^v;ТG<}k +W:L{^VfkIIhtfZړkM"9T[W~WC7вBsg/02":ہ=,:Ԋ2Fi4h-74fc:q4)Q+mRٌ+XcJ9ᗱqv$lźCZqIsrpuMh-EN%Vi%nMX49O6%i/, +j8|'VҒz[%o%u\6} z [<4+S,&W "NG?GXDX + +ѳlfy~Y7_W+/= +Ё={8ԉ6&Qn*_QQBݸ؁$R0=yLv@,V=:BΗtt) ٯu{L?HKڠeo8N,m}˴F5CYD).qP.Q-* +VɾRLneV0vSwtvUiJ"qBTFkeKwJ2v\PuhQgw;ETF3o,|!Θ`v%HjZt -Km@۬BOP5&oE]sA)t">-dNYuap?KUIw&} ,To"$O{a$٨@: &4y\ /\LU c0KTD hxY wk!=LI8<؃M. Ebڳߠz[1٭<;~?P`߿pan ѽCRL+~3]i+{Qz'ZoNan:Y=zgߛOv>3L>֘_}sҽsiMCG2cS- + ;g [J|ƻ_֐?W=.~.]g +={vmgfo+8C~Vr==|?Xs|Rou<ʯ2Cx~il}gc<_g& w73@cg ߽<3?Y'_fߒ1c{gxS;[< _k篙!?7y Rs +;?j=_gmg^h ^p/wqſ$ ?׈i5<{9xU6x<L_5^..:u@2]ﴋW+l6s@AVxf7/пǮBtͶm@?Dv~f{{ ?>'o)Y׾3<mwxr3:#0bz~ħ,c4W]>>?S<]w IqN#oL%7OcIJYd < !1Mgq}GAFiEݏG9K@h,'{~CFJ(ƨT4JNе0zjjWA]J=:)3ppxPQJ%<8M%`$:r#H-U.xK%=Nxa Ec{rh*#I8w~C4dsYbhgjaҭwU벀Lk>V~"U{7ѵ@l]y7CU} t\@ٯ;/2`0*/E q|J~BO>+3F܅)v׋)-4U][s}pWjU0mŻ]A%?g *eUnVf|&maM(^)exڢ&m\Gm`Yw\-*b8dlU_pE'rL+n FU4z@j'>@p]tD5o ZIWUJG]*LgԸJ#G:E8Y[ԃѓsTIhԉL _RׂLjǫR+[ruFy=ђ==l]ERGAdwR"ZG;_g+L2e=ѱ0̽{:u^㠴&޽ɑL8ycl~Vc^1\0pwzFZޚrp5Kf/>9Ŕ$PjIZ]r*ړ{X)ꡕmNuR@,_\a`eHg<g?-Q }验(ʩ5E2_--\>']J|i`PuYh?n!9oWLG>~Yz\R@F51}3Ih>g ,NJGT؈H]qyRfc mC>ܝq9.䗟 f2ԱٯYn7&~&l3%;qVj  {wb.a|>׿Snww"%1]cJr# !RnVtKϷzv%k?b}I=D=t=()&'q͎B,wR$Nis&ݦG|[[Ykvb dOW);@,܉S|Z>U}}ZZ/*Id*cTޭ=P308%K@`bYtfAT^(+׋Β^,%tym3әvVBt]h)Y?;1dLD`Pq:b:@gV:e| + Vsm?h5*$n+ưEU.-W9 90_ U\|#]Y.rLEjHk(H9頏_kN>x:<1u O>|J֫磏I{uht6"[Y<F4tT[nUI<݄ +2ԻA +SToGNNh` +\9A!5C7.k%S:NV7SOysT 3VSv,=@~)JcWa!!5"U 8rUn`8 W7J&r*R3/L6#J{-*VJȭtLl|#_O]]AG"TrlL6;㨦 AE[qɼ q$R;zҨNF']Z'tEP@yBAC]L88,8*wk E Pg#0BAH`H8vV)60# +g RJ3"Bw"ĤV +%]4#EW\PPMLj-VXB6fח6»R3U +%L2_l^/G,U2_ké$FMBDcIIᤶyĄAr#d~߅1[8fJDN^ DNNcRU 0*qU?B AP W\"qV ))lfopݲwoߠk&|'<7Sg]6 m6A8`7𴄃LӭgYӬg)ඕ.v欃top~?p:ؒs?{CDNʀ3{L\Ys?;:]gL@ulZps3X(`~~^~nZ='y39"wϔfZKvOK@xar:~ͻ?JL'uN@ͧ^[' \jK@gB-?xr) A{u 7s~hGִx<_PD*jZs/?8x?P?0F%Zyg04g>06QƤRP"Tj_[^F{ifIMaȈL*@ cJrxwDM"%,ʪď3 BÐ8@?`(x\ jdlAP(IvS1َ?t;Hm^?b^OG<3! )wc*<r쮣p<4uZIy٘,XTyETec<`&);bF1vG̮]a׻plW96y&V7bI? |Ӝ#j4۩<&XM *iѤ#bI",wمx|rLT(<"x4?"JGocE'5N<pX⼃8ӑ[  39M9 W +4Z8hƦlUs}y:f"2#8L(#hPnL[Lo7聊S~qHƊG'QBuj70ԨrbrtcJ;&-?լYaL}?R2%0R_EO~:AhC{27uʸ~<>{/KX^zt̮Z$ ;{׋ZxehX _Qw`"yLO@ +^7]PO b\`rDY [.t8|#l8DRfP oqF#񵹃~SWk sףyG1H(99SJ U)YZ{A8pF <.9Ƞ-51W! P5S>e{pW2&%7r'_ކIqp&m?3Q€ +B},30"I9BZ6zjޜDZDףM3ZQrfҖҞrbL -? +'DQMO׊O+nv쯴Jpצ+;!Z.` fi Qa2xi !\auA0ւ6^"R>d }N!2nhh JF+ v{GJ :$N(@\]Rـ'4ú$r\έx8 ++`',hdNfyn5w|VlPX`Gf' FGϋ>hQK1衯"#< + Zj6> Ż2B垡Wn7oz8UyTJ!Z%2ֱ +8>>zK;' )Clru/5NWttl0zx8=]rY$heJÙf(ӈxwcBŁ{<;F{'~l6Y +AEֹ˳9u~ս}MWyGmt[=俙Vpջm셐Q :˚gwj +cngi*?riFv;rc?B9HA2/cIw#xͅȅǫ޽ȏ-#UtTrk#q(w{ͼ|dGL$ͽd!)k[i:7%nܛtAG?¯E Jeo*jC$$%H$mqIŏ4ĊHCVjϰ$#ݩ#_2?r4{ÏPُ#<XRG4@$S$HIHĴa=ArA(ʏ,?rIǏ#K?BnIX>Q2V:RHHESC EC~`)F!>5DH"?yaYGǏ"΀!3)#Tz1i7ўtoy bA8D[o){e 8&4-)K argSFѻif +%q)]y2!?,a7S:I^z8ap8'$C{6aH8O +R\S'y.Jt${)J;>4']JgYo kn\F ERn~~.d\hwUd1¬N.1s)EpQ$HwRT!ڔ[QP,KK|?"Ik_cK[BM<[ASۊHKxd#r7#_0I[F꽖v&rN,$"4`xmM}>UH*C p{-8DSq.˄F 5\3+`Q>os-f%:MhRA-WuahDJ3^A/0^i㕻cq+l03^_)mAFXz! J[Ro{ԣJ^U=Q mຂZhqگB׈7+$eUdh,n1&Aoiỳ  Te*^٧վ޲P)MiiXcEEi uf!r$[5<^:a A<=䠗4CXS OOʰǻAKʨU> ]*Àb ,kc +b/XO%OtnR)M>[bU4l@(7"A:J .f! ʆI;E|PP\a1[KLΘO g&QgBԿT p> y#mSzF)j^.]5ܗ)];(qrG"`IX\V*R Aă?Cʫp1N!H0tB$逆1,{($HAH%I<Y:͓>̓`4&jXVCkXWZgij>^cQE͗γ)<ʳ¶\@nN-;QߒO'+f+c)j?CIoyw҅oٻ /zIدǏ'/vhNj3]rxY/2 +^ϖUq[露>tO9Bb( q0 H000Aȇك:z,#K8iJ OdgIeRfċvzOFG|DžP^$5Ip4s3?Ol2Sx@6JX aר*"TJC/)쌛;\gt^~z1%W:#9s#tG;V_ Jm¦0_ +SLmr]Yp<&]֓;AFOTKduBڡ7z s\5f*k~#C;:_v(|_|,;ϼסY +NUzP9>>\9>XkǯCY2WA)6LD_m:ޜzh}@h8r!^M?'oxyЋ`l`NyO6;,2Mi/[`aJ^/ܚͯ|_8MJSOkAhۄ>a|Bǔ<}O9O@09AxhLO\8aq[vIP;|Yyvhj8 {$n:$^(C"^gG"^VuZpBi– %6O ֵ7盥4wA`393l,$ԂzQCiT]£}zd[FɭMb>}yY|6{ iQ +WP|FUծ-B#{֓u4F@~B1V8z^@!*/ Pf^@H·P/kO#Ѝv)wf@5Ъ@h0jd?%U'n Teh TO>vr Qƛ5b]4f@dvAPcyҒKPǪ7i^AMP' [Hg,N4C ++DSü>B}Z}Pom^( +uȮBMIBUh3H͝}PIV͕p{Z</X稖|O[g״d +2Z?9%A|KGM@\;i. p>Cwf p%6 +r)%r)SE}NL,5He=?y}N_}YCxXXqɑ)>2Jdď_mO q}ky3]~hn/<7Z 1ɔ{UQ{fL!~~ETW4;\zrHkRɟ?9ȟӒ?Q=dZ{\ڷoy3I$$LzE%~!Sx랩eIg>H-e yjP 槠>2UoZ ~9t +SHNڟz*Tz@,@<Ь@ + =`<*K+)AE*Z/~QOv_׃sEu1=8L4:i=~~7xÁV\DJJfdmW+N.7s)A¢_IUιiԋiŸG=7y<6R ic ulԥXr519]&Uz.(6xn#` uɤgQ4-QGzx)1;5z>)ekf?kx?*~ f Q Tr pu mRf?x՜G=?xra;dE)G̊ +* d8 @WOg W@UJ#e|5Ro eg^Tu;j7ԏR[Kry"AJ,ԻMH*Hh uHDt9 д>QSY1[J??j?*}QK D'oNMH'˼w߂՗yS/32IE#042$EYKҗ9cQ_d֗a"`6fNun߯KsIk.2Oz<.2/{2?K/Ӥӗy6̋ eΖԂCrfE`8 ]Rm \;⮄3jfz3yZ=s(0 "TfPa挄1-Ӫu1:9_>e.˜@_bLoXYp3[#0} f1}`e5utϗ-˸qQ_fQ_f+,ϱ̥)̟#|\e$3f jɍPkc rUqk&dS#ti}H1)s@r-CMu#x⼡.}E?_x-'g:pQ6b&&+gC;F :/Re*Ex$PÉ5KRcJY?q M]dfIOtnřЬ.7R\P#şz?f@]vq &rP2TcL#i'ЅieR1̓adw@LG1ʆ=滔 1dKNapTˏ)<1|lGa};`;12Xc\kt(K܃,93p?\'Rx\{sxa<00!058c{p[3w{oM@|l/ȍ_eQ(ǰVl)h-=q.4*$壗IX%>8V=DEMgn-dh"sk#,X¨o^Rh,M+TACNv- K2]Q|p!gJɅ )ZCpN%e9{`Ö{Xv9?NjMy܊cqYp NIha]"p/=S̢=y17=sv|#?Ư!uM@uwr]2֑/M:ެG|{X۔̎$⟌i]= A?rW /\1HbpBٜIf p#EqB,!KFeF3g!|iH`&W{'&24Bm" d_!y\''|7TP޵PUu0l\qʣ4Z, + Kyغ@*c$KxLǺ4N8<0w©BXJqK0;ydz,cB_y~ taOJ0M2V=~I|%Bu\tW"V +ƃiJ/1D5^VJlF^̔Sm Ɣ +m&P̙͛<1Dž:TktV4Qr ‚}ILW1'6S6 fJ7+E,itDҤii9s+.c-aq0\0#eL=Srh鑒K>I#r-bw8m*Un1jDKNUKx:M\jI"zm9>='S$ '|<\3h0 xԾ1 fAVW!1f] +V ugMbL?ƻؼ/).P;۹6 +dq \( $@y +Cl٬,pi'ײJt@ldY _t# L$LBg 3vH .%&a` 'hsW`noLA^>R5#(rݜ(-'J신<(٠A(Aʭ'D BOQeZ EClh ; +;'iw^ n}-w_ E]Ч  ,(OВhrʬKăBҏ{ҩoc x4nYç@#S"!{.:eûfdƛl(m64*!ڄȉn]BV.:`FKnf@e4[/6[V +h7k/zeFiVOz<$%Uo!oFNQ:m!kQ!P[2ihC` EfAf46)A"9ʭ4pz|>qxD/ ]vCD w;o7p +m`SMg o`#}xÞ{f< <%;\u3cL H9a@ J\pq_ `~5* )[1a|A Fhiv$~t{篦DȘ6_pX|2 ?}2_x2p4 MAlZaVvd-7`>G-5Mc ;ZH?X` ڪoq?e}phlVr!zZW&Ȃl:+Iz*=2~i/_y^~UݯI,<@(/H#1d(CtIݠ[hG&HpM^ұ89Cئy"`)`|* x' ~*#l;>)y6d(s˚aXEF<-Bhlb^ӂ=[.!5W&2Sy%*t}?衜8a;P.P\fd!<@,]>,$3Ae>j:x=[OC'cYdXO&#:> 'Maڂzjj(q {;ˠ@Ev6a#p#3X*ɀq%w*YȂ4PVui`n#)`~$ۈQ"e@:f:[a#gd3VxU +U|Y +C멪ň|* R[LW, վVx6 +{x N}K F! r?zHD'?L.]`c#ZMRw4m81`#t vR;}yfi;;E +P HXm̛4RИ[L'P_w6k]f@ULK3 i HmεN/w{vàZ%P!0=mj"yTf=ZxHbΎ)e/jW/uBXS?r4Yj[{n|ži ^^\ |3(\^1sͿ2"}]S/cW(F6G(Q?Tb4_O`QN?NF'qDA +T2/%od[p#c׫> +ïDFv ;`<" ^6Fg7 qB@8IU$!fa\ȉ)UaZ6 7j #ʗgۼ{Ɉw8LrRP!C+1~ <Fj#~Oċ/"9E~a"a X^GxY!,\XG n%f]=mZߟG3WJ< Ȗ4JR=V^a>X +tX~a99ŠD? e|,V%(`,GcK =>Pt=oz +9%(dlˑ?9Tҕ 7%*R"'9=Ob3O;Ik0 px,gRYF2nCބfs.=sm}=n $a+ FQk B]=2G֡D2mbz8\=UWcQգ8]s A \=&kl08HP~Ǖܝ**t8K\ߏl=x nZZX| O{ʼnZ[rBБH)+MRԢߧ"#py>qk`{-{ζiHs޴ƴ6i kb +MKWPhci]}&fw/B!W2WwS+ +PeN0/ݖA;G'yT8꺿66xTc@'hR1dcq<4PNvzKuZ3m 82#gDFZ< , afźn,>=igw=ܯ;/ךo_>G2s5k  Y}:Y7|fVki#Oi؎yɥ%g.]n '>>m|&d&t|K9[;-86iɱ$ ZJBAp8$+Ԩ\O0] ŏ{ +3a[?O ]5k䏎:kNV 5tLMCzS^KzFBf3ָ;`O<9#\57py\gjbQ`G896q CuHFnz3 ~炣'uv,2ޯs3<[g3?=Ǥ= 1 m .,]npr _2f8df6o(W+ :L'@^4o^&ٲ/3怗eePA^V}d ٴW\Vqq+X7-X׎`2>cqlT-Пp&;}qp_7Toit ޿]UC^_wNt17:>&삏c|;>&c9c,YĻTL7UQثՀ1ScȳyIOBr7ʹ_z17;9u*$`Ǜś*d3䆏oek⌖7"V}+x >t+cZ j3G|=JMz&^l2q?zR&߾\uj5#$fS nb`kn?_a2MGhؕAE|&5l1qE>`V`_{X `r;_ _kmph;t|IC~vP{]C#NM7`#^8 cV`+`& bW}Ef TBP+ma:.4j;>@(u hy]Yb{.ٺ<dOSoB(Bx Ϙ5x^(6;#NZ3":I-3 ]6n7HŠ90O9$w4@}[,_N8o[c oW²-Le[8"h>g,3)S:n U?VZNyy9dm) 5R'z!y=7AbO gXVb!ޔEgv2 kօDڋZ'LE=:Q|02v VSKNGԳ2q ?cd<|22)} +!%;< gѢeχqYSᯟnTp P%#m*K%ͩyoi݉=E,}}=W. k<*oFʘ+UUł58.{.9,#(V\E\gcp(u%M겮Rw],2?s7Fysjf\a Y9QfVW~qyW~\$N.*Գىna76b-tނ[3o9fit '4swGʸ7d7 :]jװMWu46aFKF`Ш"}OgK&S}pHdjB*\{5\Oz<7jx ²{p5HCUG0>_f"^ vtR^c !-CG‡  ?~0 cZcP:l"J +<#ln85h6.l*tj mrm(bnȥJʊQg+skyՉ)E~}׍09q}C)ys&o+(.6U۪keԬ³s%[Ky1ܔ@ĠT  E{ETUQmWZy~6[/aֿf NWFGCR&~:|uthh_WH;qq Yǀ,^J QEN.J%ei"uCVWڶ0 <2iJdm?gϖp?W ),\U)2|YRi@_KHIS=)Lj Ma$HiC4B1<1@ +K~:V<6?8D~wt!֘ykjBڒ/ P^յ +q: +Wb3,D qM+؞gOqU Qc@U"TԈp_B!ÿ 8&OɋEb"1(Gcv-;uk4-1d6&4z?t))=Q2 | ̽V< $¸@5ƙt*F̓2MSj^ ==l!}e~{ScЇ/N)I X7Lըޛgi=ʹ.fDQ7 AĭX)USbѩ^q=4 4Jѧ)Ełl%*{(k,v-=25,w@51eE⨌]ie#1L kieR$):ӔW4KN\b]i% ,]y 'c#r~qTL7lb!Po#_͟{pMڦ:ʡW}_((؁:Y: c>ʱlTH#'_JjU_Maߓ(rp(xa.?s/WZͅ\)pV\ܨ`Z Lám+jOZکd3TU6Ogdj4)9j}JNh|pU uM)5{舆YZe07-UB +RNNcFw i ?>igDOhfN?ZsH򔨈^:W''jelpvNʯvlH$j+#jR Yce=b >gT;0Y \bfFܹZ]DHֿ S 9 Ci ZmB+oVX/㡆@ xfq9{Kw6AMcM`)$nbt>˓{K{Oպ^:pqRe+v&~BG[`^6Taوtq@8To6L!~eyso53*鋗72 pv4v higbI^D\l-,|ʶ/Ge׳74l@B)AD%iV̜Q2 e;}k>5\l2Xeआhl[lVWi Pj_1aXB%5'6[CFnQQ$¼xUln{*q@+y_s9{9}9l0t;-D69'Ib4:"[Υ:_\e\`S{ pF'_>BZ?h꾢TCDZ"ÊN+CX Xv\;6nEʴ )ӡHRYU2\ a 9JL L2Rt(Sw*S,-FE* l7!f&l?3.NقqnI+N|f +]& + +,Ipj?+_R J m+ H'H2I<3$~! Dž!TF +x Z#l˦3 8&a4jEA5SyjIm%j@]"-||ŷ'7833, O"0wڛ/C +ٷ5M̞ Y"$dܞUԬ +eWf]}MݗDZ4먢38(4kXѬB/Gm<0׬&:oi+;,@IU WgҝldؤLUd_3R~fJNUuFT5hVgՏLիjV*5LƘ̨LI pufЬ +bB7f5kĚhdh֌$5c,%:X(+@J1$!-YuLHvFM4><Z9]\rxVBϚ<eq] +*MUZZߝ_%J|ÆĿ$Y+(`xV ϊɳ(ԼYCWijr<<ó2)NVY{]cs`$Dv}d uh?W` YN`35fţɣ(glW>>L>>mcHSO :.azcN>V)ɣ2J8'CS_䟉H5D]xir# +K,(~MT @U4.EC0nQ(Ŝ1o`c τs*# +] ßJC zDdUXMk[cVB2T01 +Fs*פ +m14k3OY~^M#8l<',ڵ0r儁!E!)w9pV,.NJ5M C.1Qp&7݁}83^da?=.Nق"3UeЇk㽀) 00% +HD\d3ƒdU&;(QVH1*őB;Tw"%N1^Hve4>0(~6њViϛfuL[TNȣh<'ȣly4K͐G4y+r][*evhí2RO]J\Jv,k\1& +ηK(B5d#𹯜 )# +#˔I50<)q0 W"^E;Glcʢ&yNErhXsE2γ}ւ{~]gZ=t܏yj9 uO~t,rvTVmLܩ;6w36w@{`x ګ܆!/0]MҠk{0 G妱cy(,2a2@!`MnZG>{ |(+v||8TFEhY橹zq}Vz=ZHneh0gS1ux\S܀FExj&zf| +3r6S驃&#UB܂Ť8L餤ك,hdBRL餤NTII5#b\gV̪̊YxyQ<22k`̬ g_,D?bRl`T| +I0=ʃlwTk!@P܁BT0;tl% 1g/?(sykvTC`RFO‡ iM!JZn07E 1W($R@Ϣbo" NE^]tS_S$(!U{0LpJ>?XRcd<-jP"^N>{0nͳ >$Z>^œA {=VJ3<%%ŰF&U *#r PcIP!w/ J$F;cf>XNr3V}%NN<5tfqjiC?-r6 Tx>*|EfG"H ׭Q#Swjx,SF؄[O8WhGU5EQq\^?ƒΐZ(` j 2>A $&Kj9Wo7a +,ʋ`ڨ(XN((T1] sj#:j:c5,-i5r [YaBxzqqrp Q:) v((TA$?a`+!k`&I!4ah)# R8փqY4k#„ʑqH* aE_ +ү +1Rq'g{JJJL\V>j"oNbYħ>L:S4vcRK  "t#67hsW-|& mؘ~;uR:EB:-jEe*K26XT_*T;Ir2pT +UVتMB0mVӖɏDޠ\NorzINoI2Q0fP 6 T&Vbr.&2*ck**c2YZ. 0*Ä rqqr#TgeؐXe*ßTeTFy2Q>O2WT)0Z#T$ [VIJeUy1J"Ϥ$LJ"Ϥ gRy +^+KC,<§ޙ#dw|C&h9WHalKPMaRQ$&yj5Q + +#1ީx +[%1wnqZ e?8J!BdȱM\ +?- \ΝI.nR jr'y@$i­]: zKHTY%aؐAd".v?Q'Q|MUKghEP5l1p%#nhAX_mXxp,]\h`#^HVU[R+ +h}VAyg԰ +jpq$4vӲދwOT5FU{M*e@ì6 +`DɉkrF)k8#4/h1Ki|M8^3 63 3-R J a)N|f +]& + +kD¸*)^&׀LMb5DarkX9$wJ$ +.>1>U^2R|#2éKI7Ym3b<]wp&y "D2%Z+LqvFy$=jD2:<Verf:O8-X AHFgCQ/JJrW eUٜzm5;QY(z +6ba&icH`U@&ߥW pxdaf0r儁)3rRY3pRijd_0& +[˛D VcقՄ >qq +>F V  #7oP"ݗ(2"}$ RhPzk܈#F)P cig"Nj|c R"jYT 9OTW2ȇ7]W4H W+/0. #)U"5?II?F5a*R-H-6nVyV1T0BNୠ]#BN{!cF9u#vThtnj["7v(x9E7 wE'nf)o[dDǕU%h{LکH BDG6TueOMi#m` S~jZHZ_U#i?kzxgZ@Ler)i3G>LNj>R>S>׮υ٣LMͤ<Ʀƅ:q;mހ9/T]%`1F2O[LZͳG\4LD R&4H)@Z셖,݈=2ߑs\/.zZBMEAw.,:djUJB*j *]]KvW*]HU ҝ^ӝʝn W{$s@۔N'ߊ +pdǭ#Xwa$be修=5"<:Z"%6&h2\|2T݀fEӍC)bmI FB7JB 4 ji+@+M`ԫ oy0.v +W|DA(DO60o\F3RM=5ׄ/ʾ&W^̄g1[åi8F_Q։LDADBH/Xl p+=]{JSta1/%,|K E_?lQXxe +G[\KGY!IR y_ү=-佹 " s@I +9(%?qx?{˲! Ot|faWِCdɘ2E:"[..Hy_r)ĽRق _>B#Oa+ OK5tIE+;n!;";Uo˵nVL2/eZ)ͅn&ۙ@+1ͤ4E)+L7qqK>Uw";oraTV+/lf3-GvgeoM,?8&"*Ő>_?Qoжt.3K# iVDAQ5밪Ym4+HYÊf5yVTf5\^dΌWgq ͪ:) v((Y{kQfMYFf 4+!NYGkVe^)<7$"%< Ψؚ&i$sArxVBϚ<eq] +*MUZZߝ_%J|ÆĿ$Y+(`xV ϊɳ(ԼYCWijr<<ó2 tTˈ9S\C9OP|JP`覒9#Bw`}yfPa9&SR%~0;`AnN>Gs KTZ5$cLlDߧ/˷?Ź߯PlU16pQ4K GAY,_TԶB S-Җ[5tk^u֞SE&4aYr^aVCcAM`LUʭe!&3d?"&A&p-g^!rggu8{7jI2OՋf:=JZH܀l*Ȧٯ {_Nx7OmގO=xj3=u46/b +LtR +NL1r()QtR +NL +0a&aM +NaN&DcrFH΁7(80,eHކV4DcRo`d23#;>HWKZS#RiϩawpyN(1MI>xBmφ%Kj> j*WB!X)(Æ&}9MDo-7nlVFEПbHUGQgQʲ7jD"/E: ŽjdSH1'ܹw;Q5(5 +x/R'GJ8H?IY#; +/vYdԈNm>Ԑ +1$DlֆiLJڐpdvhĈZ@; 5.M'UD:GedM5jqJN3e25Q܂x±,0wF(=(ϖdڎrf:rjN!0>y[PR< q ?6*vDKL`ԫ0,K`ڨXN((T 2] sKUjlC<,-i5b[Y bBxzqqrp Q :) v((T B$A^tPƌ ;I:RFMKAuCTBm;X9PA/F_5@4>FR~Ji[~UR̊AS(R]Wx +qƷRMjmՇ){D*t[ՊX/TPel "U-v*cfec.c26&UL`ڬ-AL[$fޒ@e(`2A0mL +\0MUelWUTTEe\X#Ta`+U 633-GNo1 ։LDA!!U?(7d*|<*ßXe+*ï R* aF/@I( 5"Dj%gR--W@PFm~?UQvޙ#dw|W&h=HaM+)ly&*7A:A}$;uFoBoᰃ+J5ZAנ)RV.БנyKHTAryTui~#\T"bs(pS%#rsYNLjtm.[=OrLi3"mF͈<*#2*#2NUFg|7rsYl٤˴1OtL˴I/6ic~#Kc7l.Ly沁fjS7=:2"n2 &ӇZ6 +qyR(dI($$&^G6mNWPŐCk7X_3R$*c;QҫC8lVJpx;Qa9rn9)X 8)45u0^M۫jBzMO8Ef TiA۫LOq̈́T7(Q"LJQh(])FA(%6nʑ(HNB(}ׄD38p5&U +1Z)nCPr,D*jS+.l+^ef$_A*AHZHZR#kxðmGUqO7+<GT]*eU'VNU}1EkjT:Q̑wBNOt4cF.Ej b컢1v|ҳ Kʞ]:2J=fuT$ۅdu!LD~*O2 60FOMi?5Fj$Fz 5OnyrI/?qIY#˨cg(nT"/e(߶'Y7%Q<ʕGty4 "ߡ$.wݎ`dy+2Wy<Uv@C;=r<˜ҢcsBnNK_r*uxn@Qv0ŭ0Y/a”vl҈>;eK 3Ju[52٣lLv?6WjJ|N:ݏ5;}pe|Nʰvi+:U_+!]]Фeɷ,; cAOǘkSk͏o 3ef 5_NP\uK854 r1eajy;m f@s>^|m_QdL;.s,=P --#$l2CI.)x%O + +TE*h[X1@Պ*Pu +T^[,=A#Xh`OFjDqj+ YZ͢$*G_ki5 {h:#tގw1:5l\#Sµ:U_S\;UE@$ڃډVfv׬: ǙZbɘ \BB]q#_O>o! +bPoKV))$S\trѵE.]\trѵE.!Nl!NSc9 +n0sT Gu9Î:Q6a0sTGuM4& +yNZhkL|p%6+|@"81?TMUeMeY2}ޝMjs}R$̃69[}rlꓳ'gOSv4K͖G7ȣ9h!~)CR K2/e_!~)CR K2/e6' <`;IÓJP`;w0 &u]:K:^N7;[Q~ZCU$i)|.[QM¿x[74Z&A+ԓl$G=UO'Փ,dzrz2G=WO'4UO9:BX&zJ6zO40 +9EyCBz|,nf!-V|0ύkg; wqbة\AE&I9(RT".I*BZWLdBGZ|NUxE & `)dgг e@n #ԘGKv#zBCҦm0 U|+m ŠXD"jBA +)PjBA +)PjBA +)PjBA +) -y^`I8Go]#5hFkf4Hi4F5iY#5hFkf4HiEs3=\,ZB5a8lVݎqk,{Ӊ 8_Xj(qf·Ձyc/PPKaH?5{|sЧ}"2t ңy}ጒ<ԗ <󞙼-'t03K/=g٧9AAv-o=)oуV0*M`l(``{ 9G#CWx7Cg[X* ]c%W\ZUWgduͻ[^pwvIN^o+afթg2Rs|3y{Nnšw-*#^]uV+71^$P_;_ȸgww:ڎiސ˞]UvB=/a*۟G2NwjxpwufvshҊ9ꅵe:zc!qaV 7k"x&6h,\\D\?q9< jdN[/nGx:KE ;0ށ2Qۧט{fFgŮF`y jVHFd|<׽5L܃b{=S4{==Q Aa. +^8 +wjzaZ1QmA=30]D[fZhۅ%(nJ 3>@@s%$~|VuEbg J/KÄѠ^:CgE{f=V{PXpN(Ϲy +ݏN;ؕAU쯻-l,i^3|{s6YLJk:ukr.򝛬n=BҬՋg=ӋiܵLcj5%ε(fDEX_{o(N?`΂ 䅿fX0ݾ>ă"g饮*$/a Oӗ`-̨9]N 4{\pFݛ˜ys?oX^~|/Xy$\ `"FF,xu$Jzu1Ѧ\v=^NqIԋQOފYǿB.@-v8 qL>5M_ȝ̦9 fya`H,r 3(>Hx + ~h QU1 9[ H~LoeVB@u,63>&~MulV!Nu;W8Z<׹V3"Sp[Â?֭՞q6,q%ƺP;v?" j++{iDs0cw Qc:[˜ ӵ "@cDZ^+**$fKzqP Q<@ 燑Z\˄J*u`٫jֲ(O_7"yD_<[W[\B[-%lhBbk;p&Q}*B-T:&?N⾛KD* +[0OwE~_f膛17.Њ:KsluXlB7ĐlPa}R7$<ӓL?{-CE [813m~,&$/d"6O^&1؞W2l2Uw,CH{a7/ *_q#풦Z/jVS7T3ѧWOw }7F,r"xz2OJRՋPU/п# q~3ceBα0{5ux3@8 s0`0T& cawgCdYpj^d~cyhsS:\xxү)ӓcC'>E +6Ƴ0DO9.nԡ+~$x.؊O g72~ҭp pVk=9s.( >nȄh>S} +p;}NF%W3Y7e5ΫQv^5gBWفSoIXCju!ܸyٛ!F½UN] 5SvrgU,;Xp=12׉e9=Z_+FmTc/P_zw7 Q/z"{#NMi~Tw;ߋ=C=ybFyv#9zd31wtx=KgvŕZq6RtJ[h.J=9XZiH+ܛ]y +͊~Wo`_+W36OI/ nsUy¾.Qwۢcyi<߳| e&sC3VLf'Y3;}mY}lyϙHfP\_P[Qb/Q[?Bzns5X\qVخ{v=1fFW\ 㙇*HQRX^qffzaՔ(br:> wrW yE +wZ@-Nn,'p;}>!lBb 88eŻ0QxI=GNGla|Ud`|pp]w}z׾Mn"z/͉oәu>jO^zAXwǡzJ^30܏U*G:~1̔ui}sٴ }- 2]f‡qf>E{LL-c= JQ yC]L õ\aК(b衬f14R׉г\ e#245VM"hjR4D2!"ȫ1Ѽ )lչIA9 .&s2YIrg^̱;NXn"w8./F8cBSY;ﵕ;;NE;SSS;_hq wL?O)3N@h@h%y0Qîdab48chD܃oߔŦb9iphO2BlGZZ ua,&sCL 1:q[MŊ_;Yk~-ӯ3 E9U:Qs`ZaR`wvϡ:TLr0;{09ySkg:sShwSdVy=G@z=~b "&4{C6\ϝ-s+akb<7,)GۂҺm;Tv(/ϝw(?9†[L J{ HR7M+ļ(y_9B~Vm!r`&LzK֧3x$p-WQr]~.!W"V&A8:́( _,rٙˆ[a4[,EC:{[{*Vw \ݴiWa&xG}*lpV~ *Xs>~a"nVD~QHTJ!яd-0bWpWfGPU rLDm'R<}fR*UZWG 0yg!/,mHteV5j3f vI $p&i3N+8bACBd.wK A \ !&Y̡芅ŷ#CU +g*0W_ժ1dS'w;}?z8r+2zZsm.Z}SkXUVܮI +Y@B&4oV F~6mƦniJ_9R^}Qc[b^c A5VL՚`O\6Ɗ uFo8B_bK)m,fM҆&vQܗ,ЃpmJq>[3圎 xE!5]o{ >#A%՛ɴ3=-[y:`[r+ӂ8,ȝ#Z_z6]Ԫ!UѱnpJ'5e@_q/֫fyMJ\oZ0#z ³ؐhnf;bMc]pICzžϯv ^x;F:>\8vŚN( F!!}C6j&&#'?*?*{D鼢ʩ{+ry*D\&FΏش۩BkH5bM46g([s+ kv?vc+p~t6P QwDXΏtļ@kKH^#>1L,+!'+W8jT` IGmAelp1Ĩ#gxjX[Й Nr,NU(qǢi3x9y*-f +&eћtl#PŻ32pL/#=l1Il@.k%M>ǶRF,@Ick-Q6{ o!䀠:kz|Їpl^}[;koߞ݇wlbF2\vqV;tL8O6p^b5SG>\N bs 30qT0:{i+4p05-Q#%ƿF+]rArI,t>!̫:'Vvŵ -笿Byw1Aa i?ex)GxmLp ԊN$Ύ-g_^yĢ f_1&Z;5,!Pv"g0r2W}yE*$͘'@s13 #)R-SU[HGt~IPt[T?]"@%=Wx]=M1s] EY к`)R\^A]TK 7܁[@ΞC%RZfeNMjC5,6 p@Eհ3 bV"aF85 } NmX/rFaVHaZ`dPSڠ7VǑ79~eTuٺ?J8Ef" ⌑ twBj|R /cneC O;(g_2zhӋCHdVؗxjv F;g݁w@Nq^AJCDW0o, ecomX77o4BQze-lƵ(8c%΢Qx#n|c֢l []goԜxR ,4:饰k;x@}{;Tn P$ Cf\3@jhY?Ikol<~:: NΎgjFc]b`I3V[DAuL^eBz0ZǃrF>GhDŽ+bcc ;A:"&//>2xm˗]}̑WNfg]$&>>Tq~<}LDŽWKfb:JŦ>N>>N>&L1A,>;1bcU`x1lدE6!, N bOjLkP7ɠ^9jF_MYo@4Ǝ9v䷛Ɏ|{MlځhMKT(ܦ]GYwdH&{܏wIGx|Ji?e0d!0e[ Qק:+9 1q= EnNI%!*gGEE!»z5ngejOҒ%s/Ym2Ut~,XsTY`$u+AA aa51VLj5x1,dg p1˙V*X?5~^| @8+ײ~ 01Vx.rj#\/U+2"y+p,WK0wxh 9(;Նh8\ Vpj>{:׽"jc7B+Vv)b8B&oȟbη* zX7v562.Mp5z +O%+%#C%H 7^^BXU5d@VDKID %џ(3̒ڊpoL"TI}/qd%K(['p˖HM+RVZZNZ}T:Q;ayϨuj~<3 +7Uwe  +_ѢV$G ;[G[(MkbHW)ыoҚzoT<|2W~~~-8pRPŏKO{~sH›>P<ebAcY)v*]i= ƪ +1Ƨ\c0\%|C7J~>yz ZȖD987zc٨eEd[ +Ps[ɕֿ3œwwLj `| Vu:~5z\Ʈnres +:~Fu菒$ " +ZK n'a S374P$:j>3JQ:]za^ c2ZLRP 0ѴY^{[W;-@'N p< bޡ)^B9v-RIg<+<ԖAxߔhlgT%LJFnpt[Y5w+T@₨9=ag,}WXZaG߇WS|Hb`ث@ÙqIpłP$Wt +]n `ʃ}?]|G)3k8SgE/ޔT @ .̭x U<t1C=^ۑG6V>![V>i⊚y:Ɗ +q2w$o+cfcf{HPB( \L.²0oGa)Pa)@Xޗu-N2% MXh"O4 Ԁܨ,guRťԈlz*\KIuR\7uF!P~z_?bnQosq%T]kX Wp7;zb*T-ǍR,B" 8`\݆9nF9ziYnݫ_M *Wn ]o +P9`5_Az%_Q_CqQWp_5e\W]݂QB´BLW8>֘ꯠ +rhر$W(+*$K+|RÌ`_ir l+91S^W32L>_;k,AiX+JNa +dl05ga +0UpvmY^4"_ SBȺ}DM`ndb +^/qjx/%J( _F~)Q`t!_qD DYƋ]Wp__qUe~ڋ[K3Ɣ+By ֨94WF&L<3a5EToIAW(!@SSL^_e) -笿Bؔ` e`O&blPA"Qa~!$_eY+4Fʓ+믦TQ5~% O1S &VE nQP_J쬠EW4ŷDy~)>"OW(6cF~zR|ZEi".RĚ_JQŦ;#" 3©Wk,DS̨º|u_ΙSr* +jͼQfgpLsŋMZo+ž +Q>볢h'7o =UhSenfi17/ߍ{{&Z(1HWfWIc ;A:Vm2Mn_+|PőWNf_+|T`8qW㵏1ZUd}x_[Y%cH50r%2J5_.1aRNj7y4ǘ#ꯨ0_БĒ1+cQ>F̈cZOfl1EWczPlZc},R }LQ>;&2ٯW-.._Ͷ5TZ++ՎWX;3QiG^]_6- +ڴ4 +VNrC_8 +ex qWj_Sl3Ÿ qoS@RmmBJKIƘ&*YRUkRƶR_~3`&~mLG D 3므 ++!Y6W4+8* 躰3QI$et["hBZk]|`=+.SeéAKW+Rbr^ +|@Q* +קVR +7UXWĩJ%d_MXxXt̗eX4&B_s%꯬Q;aԩWbgDnDԴ[!JER_I$Jrm4M+BODrj%ʯZ!ZЅ%W'&CTLXsѧ"^uf}k͎,sUϓTru +^eWP4eWveW DeWk]XXzwbbԏ䝆f# +4{dMA +2jQ*Dd]SC4W=T_AEGw DTrkE ?Jvu+P+7~FZ",KI\L-řک!}@#)З‚+}㔃Y{ߑ8`C#MT_)sL;j.鎊,ny\(z)w񧼓O1]rf-SSQ굢oߎhQ<A4hruI5ZjDc^VRj䊪abEO+j([t<+{ɻWF3ykjNL-XiPƐTVӑeb2B8`NsGUMOl'\}i)V_YR]TdTXJp)5 Tg,%1׵rJ-sm.˒5X1j?KUcQ1_A_>W(W2Il=G_Է֚֜@ 5ceTC?|Wzr,StQ+TP\uY^>Wy겜3Fֺ,̬uYziR|$+!'.VP oԊ6oW}/9XJ6:)Qk}ZSy"Ҧ{Zi-_:( +6QfFڔÌaVZ{M.-F.x5G`Cin[Wź6꓍tlr/Vd_7EK/u=HTwB^5@ޫ9ڴaNr|tjnS%^++cT _ :N[Gݏ1~ `HB;J%x]p+&hA5jZ='S䷐Q(s?( `^|y21LK֔mGAAv@G%IM~3ӆukpJs) x47.t1ASZ4z!/<go~Hᱣ~R0юtr4"3Sg5 G2,3k?Tk9t|Tի|pHܒm*r'g903l;r#fr a%M"Vu3 j,+A絼!^X:Vv %ǰ> Q!Ko2Ͽ`.2bTRVHo'p^8v*nƏYȀ;%|M{Ƿ32&Tٴzڴ1^5R7T_ts t7_g)y}%W{+rRO=|+oy~tf~agdo37( +f^9 +|<_ywy~rmG{'[moO-7G次NoU^S/r2[ +S׊\F} >ĬU6p@hSW;ZImw,͇ܕ˫9GcHwַG0F#( bi8KX5za^߈wi!tجh8I8XO=mY<M5w蒲"x{PiR{9H+Ηc&Sj~I۝yLMPi87L\5//7טu/**4hW o`d?ڐѥ3+T<:_77XW'2L_DϘ ]_Bp r=8kղ,.:l-mo+FE/ +BDu Ѥ}+Uhu|Gr} :agrH$2^+ Ƿ&/%'OI|GETh ?v׃^8clזNkx! =8 J;F؟*Xa[B_Uֿ5=rգDy :!rF!`]mm8>Mw2J0"V+K CEB{PrDQ"@S_SԪ!Yqիp~<0ȝf:9Dd\CJ!B#G 2˄9`WDݵHhv3_'{a'QDB%y IqiICA>*w@G%󼀞y(cBc$!9}YRTofOkrZkwwl&xgv܀cfq"CJa0YR @B4>;m}P&b_/?.0Sq b(r̸/1%gj@_j a6|Cg,Ͻn'$=dxӯ{s|FSVܧK#/Oܶ 3E?F B]RmOo.N|n/(>i@Xgi"ڷD/&OC^tKi?4fe|66>Mw~5Oo^x|H"_1hIX4hȈO!zrct̋}"OcFix*5';;SPL9@ ym󯼄XJvR[!%p!`W3t%o!tטxWg_i/.CROo̿~RƧj|)M5>)WtoJjs8܁O@@F̖s&01af9+aLFPc34qL:tu4ukkD$" %H?17yDF1Eߙ "V?H=߷Hӯ^@DZD7LFkKx""MzUTF7"gE NHE39qDtq"ߜ#KȟJ6MDţGiȏ(Ш 6ӓ)IhΎ! I/ߔ q3h-Sbtk/VwEkSZxTFk'|9'n4yŊ|fLdj.<2D9++-s޻eQ!5`o<><>Zx3x1nGx<yS4q⯁sRpS<&1Opx)^7bՄƫ_{lx^|?Z|7'~3⏱Owx/8 nU(1ndℤDs,LfŒF"w,:9dS0DA +FX dŵ_ Jl +͒2Pd))4yFp>#Pf]d MBVbVaO4d]duVdaMJ{af,dzޱЅ]] +l\>E q0IDAKP981ɜf +]TFjB~7%fFriF0G[2E !XTQ[&dvA2{݅Г{ +v=@33G]-)s"OAkXЌ9~؄NY?nD)-| =ݚ燄 +gèLj?h[L0 .uBM +9{ I0ܗiA/4#[7S}ƾ h +\^2 '26 [2 |cDv$q^J |_ĖL"3e_̼cÏ: 4hQj\L7C)r_NmI ~Sw?DK AćP!T{ tO#BK.N.7$iA=AQCN/L(4B܇#a{[.Qhũk M1lH@gg#Rl @B F|%CϺfX"jT]\'tqE0FdAÞk&n%ŞkMfϵjշ'uQ5\:Ve7[ޤdҞƧ\HKsΪ]m&Y d᛭J3E?m.e$2Zǡxݹ#Y܀1r!"P?Dn5Xs E0)cbv*u %("y6qLr(K${D^jz9IB+.7B/Bp!YZ$j +H1:^)KYA`nF1ҚMdˠ7?Kr_䟤d45Bd8TFo~~pJVOI1=kH_o:&$Z7* FVvD5|:HTb&v_"bΓ0zOZI&ÙaJ7Oҕkùd0|̸Z_(b5^cD&.OqɇH&}oXOM>HM\Yqi?ca|J|7G6WH% !ywqmBmXl+7.VeܕE\"S[F %>jL_;iXD2&9=h*Q2'4iOx@ƐC&&1>F۲!UAˏy_]nRqG#Zߘ1tYfawEw3^6|W 3\$fXqz> >A[i*0C%'30߀~*x|e&$00(M`Dn``AOnZM pY+E}w6QԿmĺ^%\?JiY-M}򃠉^񗩱-QnyCQuN XziT ky4&H\e;*πo}Jϫ,ɳبDÿBa;9/]0V ~J "+G ] X1R(߆_W_b@-3guV=aէ,۴:{iu[WW mhY=Vm` +TN7A6xb? ,Q"_x∸:F*MTI# ?"'.ShPAw_uF1j.+ FG2,;S`W<l +;g6 ;b',>6`9>Gy$`OEyɃSe8ۤ:86R8EZlm5o <׍MV:u{mR6EJ?@(%dR’ L$|WR $4z f̕)ŐnI;ZpG3TmԽavȈ ǭ7G^;kEW(vP$K@گ,0引 +wmmI+TBkn[ #j|`t(r[oЪ17x>YWllN{'`Wڃ]OK^õ)}#HO| +9}!rrh)?@ ~XJ4ihdfe-܇ӣO<7%(N3 +}B²:T7 ?a +PWƅz j%pkx!ĉMudtl 8+p$$mn%->U瀤mgtaqE;p$w?CzHȴ..ig(V)%-~IPf2SfPlVfѮGw |*>eBf3$fU?ag`QE:v$:&i>C|6-*[Hj#d4dL{8F>w7]*%I.aifk)*=XBP/Y-BxKKxlq7 ʩ}unTv.2|S{d-''dܹ Q|_ԫ溺Pƙ`E~JCOuL7\uN<.MuVL +s`5zw׆wK5o(XڠS|>S:B_9e^tL9@_؇4 jeEsaצy?5SN#-^VXCO2&-7SapD3 o +pנ "za; _ ;kA1gٍpb^Zt]Dģ"} +}"g049^4ZwOa  OpSap,H3hZq-E^x[X?/U+_˿9v6t =*zФtL$g~NR4s%6$tEL~3%@ Y2Ml,s L hy7Zae8r7)u[|PP!ێ7QZh°,׷hC8ՂλM=v3Ү@.K! ϙ.5.AY|g,w@獘Go{ 70 <|ΏZۏn| :s?ȇ:)|u&ז9&[DQOߨ;AeUHѿe(Z=J"fL􁳑So]r0*p+O^tWOcvGB np0!Ĝ"a˱E LAVkN5zl>nك5ľŞho%wSh)R)(Τ.OATٙm)\y4Q-sKI-Ox| +.>5=]jV4b ٟbOsW`k{/^{i +M R'>b'vEN.FИ5 h4Us}I1O23U*U81PgOTF/?AdLk. fw'wN]_gB`&JIBQL&08g@8Á@cE"^q $7ɍw>o5;$t7jq ~Ё@wE7|8\8ɁT H +~qgR|";_~[+_p 8-cH zhIO!8jˌ/Иl31_ *By‰R_'x=妏c +dطaŰw%|S%Ø\>"^shdxLo!xgmΡ;cxH}n|Mo9s)G|2|qʑƷ~9:;| n%k0h0Y5_]-*ŋ*@Niϋl#gazyy4y|\:Ď:+b>(>pQx˛!#c 9qO'gd?́J0_\@8 KGP"(Nta2XhPi(E_( *IX 2ubn45ɰB@lوuYV=2Zl>kxFLC&6eDO1[k]\ 1y~ &1, ķLf;! 4¥oWHB ^_r8҃IwZVު0 BxKT2o|M4l1&6JnVDn^NwFli5"*F|D^^1\\<ډ^uc"M(&#7YS.<]*xb"I*vR&akOB+&T5߉aojxQELcο2 l_)62Π"~J/^1I[sR|^#oZ^/ۭ{⪖jiMAXS ,]`yz%T"IBu/G>OQY <_˪T$\ Y? $ܯlp!#P$ ap`ŀPxf0`^+qc{X1b4 +KLJCE܈P :ސS-m"@WfX&[ǔ~;1 a4 -?0MBd6%ag1|#W٠ٚWIlXôD$ +O޴a2 -U@u?M:4of?J΄UIUz3^RBK LuYe<n{LjB&nO|Tl}I%;_:cPjyk7q +W"TJ"c^jaW7p 0^Őר*ƃTUz^vсvr"<3<[BVz0uD56KZe׆<|fFPIF|VTN,nޟ4[ +m:pTVYqNٺz춮^jfuڳV;e\ylZ;}+v +?3C&6Mrg6cm!vlnI6׬+S^)!J1cD7iS\][_0Ӯb-W+OGM3qGFdߛօRutA\TL$ݖ%ji~-N&s4Ek!5joҚ ]zoTa2#PGuQ^GEXN?;yL? ,X>=Om6 -䮳?s0@_z>~JOSm?`84vKG٩)S=瞢$Nw(~Kz#=Ɏr؋5O> O@뇞_:~Kȥ3;jeA=Q w3S 5:֮fXCQs|y$"߁I^<]R!ɝ{Vߚ5탽 ؇%ג4 +v۠RKǻř76'mlP7tscVL.Gq6ꋜIЅϳ˰d8K{~9žRF}Y=ư3L(َ9TsRV ?Ac1m-p qØ,'ui՚? +&.w?0 ex;hq}[jk3F`X111/[;\2ePë!b8NiǺ;|xAx{{$ yCE~R Z)y{!v>8kCy09< +{s)gyP҄U*^h [TG=X׏>Q9~F7X5A5 ^އy7P w2phLyŔa]Lyі(Dy@}("}Xއayi>vv\QޑO>Kk*k>}@]~c*Gn},>n +n(;}8!+D"=1Qggѓ}{WF" +%~ߦcQbCQ}_(*HJ}^M@0rq E:]I}D's>.N}@S>.TF>.҅|\ԥd/.a}Q>w*Cdw>}|NX`N<SwQ`(&韛DSEfEg c0'PR!sM}+Osy}T߇sB7s">=qFz.Q0‡XGZTOh}B} q-}OLJY p|)=]}} +VsTg}2u~}ȦIx}_c{;50P±! pbIx}d <^8n1)8}Q߇%ֵOv} +\l5'eHQae!fRL}bspYpm$Cs/ר}7;Nf;kC$ OyXыMŰgizQGhOÔ/L|L}kaK-6\ucְ\5^G%ZGp;m>@jT)*Tߧ6%)9> QgQ߷;:S * 6}D#?3֟j}`kJA k}Q>w*Cd^Z)KP>'0ZWXyQpwTOXh Ɵ(^L\]n*`!IT'rs%u `Ձ0!;|sq14F+>r Q/2@BCIRLBGOO:(@o/\//>DR 0/?y}_B_Gpn bp[43s}AO,}iSG(R}_@7f +)nk}_bTÞi13pMSu^Gu)-W;kk]{Cs{=4Qߧ:>0i!&~U'B TGr,܍!V>ZbuYV=2LZ.QjJc|%AߚZ%r}IbۼOrQ=$3(RKȋTg]+\o>L%~!pSYB'.ԯO MZGj7TߧN7kL7c0ZgBv1Tߧ.^hXQߧJEﻰ2S"kHE'IvC*PgVH}jx}RZAMJ#i}*㨾/_)62ΠLL}*ecxb_gZlB)+ƯS%kH('IvCB=xsK(^GjTgǒ|\5è/ ِNI hpuD}LV\"I2ʰK~/W S5·i(1PleP82LE`#)`Z y$vw?A}С+fYXߧrhxL/e}MFSc:P !w-ui[HWje} +#F+ԫ-F8՗>}0M:tZMBvr"@}ZYGd@QC-WY|rM AY&TL=U7OL#Pߗ&/@}v>u>cP3;\)T;enT?Yæ=*}*Wn4qi2 Yߧrp[hmsIp>uVJidRD})zq>A=kZie>i1d}PD}PL *&#˨Oi~-N&s4F}߬hl}TiP_Q:(dbUy^ՇAt&ovh/Wt͈ڕ<#IjM yQk`@AmYPOT3i8>M5}@!^ӷ9E|-QS} +G/uz`!ǵkB> D-渃_"Ok$L,|EzFژ\NgNL-x޽]V -E|%ύ`*ۄE|p *tK''4ڰzo 4Gᆯm -mco;-ʁ{jPi58? 6u*KAQQ!UeHPב_M0!,.xmkABʐWJ%Jd{T-R*aЀW¸NRfwX-M:$*@I ^C"PZ䂋 +]k teCOaBHj"T#F# +y5*EK> ,)Y&asIhook\5*ɨOu|Tˑ K#!8$qkˢ-j=9sβBXHq!՝75 p 7GVܪR\ 4LRנ#*?zd:ZuT5X!vz0 +Z(WB\A4/9Y??ֳYОVmRϷܲGEX@u8[b,DqEԨKb_@%P\n +Ya~ud|z>Ȗ4l5{f^*N$}k/w[\LIkMF!2{lĴ*0&|~}L+Њ/N䦸ȯ_.gOƙizQ1+tr4eнs}UQ/ BZi+AFXuS?^rh=mǺ6cP攨\5ejMePG9M/六ɦu|=ł.*waGxUoX <s  0zuo^Y/mS3uoVZ;歫@7{u2ȟ>0.fL%8!Ͻ?TA3[ċMT=ņ]OgA@kX4 P _F2 S:η(3bV?w#y ˁn$|"z5qˆ{By|/u;G% cJ(r&gjƬ` rpALj^-w 9QiG]ǟ:?LTKp1-x^Y㙫N1g.sxM0:Z&oҐ1@8;ڸw3O{-VvxC#gEx>cO@^TE5("o9+0lNIv/ {5:)=7wet@[`N?ӯi||脂]j}S=*|£B&' 1{xi1{h~{'`E*bc\@{2 +x.<ɸ}o]VvoKA&ڰ@vӦo制R8^G2vǛy+mw %QRz ȉ =z'~mDn~勤siSY͠d|6wvg8#8Kir=0 +mt7B\qv_MGV-wBP`8e=+]k t;ir >^:i1(9 v8rAH;pxcmPFA=Chga)v`d{"j<kڐaGyeN↔!^L$ +)CJK&B#[*57B|#6~nI3 'BmڍJЮ]"$nt\Ue*^xU"^*D CȲѱHEh*E ښ F(u;ׂЖDmEh3")BƍP;MVZoAh}"nEVDd2~up`Q$kGw8V$bx^]djq?B ӭq~u`dj_ ՟G$π!1&g$g&`X3}oi3GV:RP+= Mq?c1ǻ\ μq{gM63ݐ.Q.,M4<t~˓c6NltX'6N5ɞA1{ؠ+X{u=p#AN19s<ǣObEW>*cg}t8N|{8]mFoc|{V?~=N|2^L|{ߨgo;ۯljoa&Mob||kƉou[<"#Mq|1}4γV'S{`0>ǛoE?+?~KbboP</h/|^Mdi.Z&;{L rXlwt54fmrʰ#lLI}~L{2ת ,))=H/#,nZߙ "r˸-W#/F(dǪ|!^2 05o/Ke!\;%eZbHa }CzYC Fr{xF NOpBհ\ )[077+ x^\R +T^yIo6^iMÜ +!.^~2؁pV[9fo+tE"E?|WTlB;&?G +Rr1uťˆٵȋ/$.&nXIqOcQ` W67ͧdXg. Ӡ; 9ϠQ. 9IutVEҘ}5:Qvsa}- +L}* v0ذ)F$ Қȧh@J %Gz;)I9;2ҞT?;t%OUF?G:.xR3 +y4*XdHJ4 >eespE$Vex +-U"S/Q8iK1a')M*rʝjǻc$g^?ehAQ1rCϜf@]LSV&*6mvlq&ݪT%hų 61wMd; )pp1 +\fkDig7KUS3Pr(;YXvioLq Xjt+ q" +G")V¡.pbDH0)VsIyR +m[C^=(kl(6 +A<1;6{bc*Nq&a)])x\+֠"+4{̼BEK]Yao8cbV78WxzFB2#d#35[mk(pQ jOi"z?C?#{Z_85$Z3p@bC5+\ axCްJacK7 [`TJ_Edj省ydi.ߴ 6PӮ;,#9/WRwq/&尚iy Uto"!EcJZhgMG=[9d~~"/H2oWT~V3V2` r4JI3uRDhAzs|?s"y4ѻYoccZۗ~k+Mlf~LUMG&_lTPѣfgr BqHfDw!gS##b/ML@s7h+ +| -+M\MX7MU`@QzQMZS7^tF3<>F {Fy]x0#Uqе3߽v=O<>*;BO:8XG +0=Oߧz{aa~/ jkD6aSSi?穞}>706n9~"t<$ˮrΉEz~;| xǟBh7a7FëmA= P-}H'GojnݽL6wJ\}eܳZL~5^dLMوڀn1,(q~.vMpw8s~^^F#oʽYQ4o9v:g$et޲b/֊]e~1kN:2 MN \}{H]2ox'Yߧ}-h[ W'Wf?Yf8GPWg LJ ,~ ʬ1(#PBԠ+Rǭe~_@[ɽ%ܣpn,39nzP2 [U$nE$Y$Nj>dXGeB­㛇[m9݈<%T:u8p^}'9geΑ 9csN\9y~9/P +Ę%iQC5mstX#kvD{u[@ycOBݙG6|1지ƙQE)}D  + r?I8 &bT`Y~ej LI4Yb]K̋9Wr1@?V,/G)adyNH|2˭,OH1 G{ +Dd飩 bag4\VXaEcEr4]w(r(r)y^\ wtTaXAޛoEQl6 +Lĩ겊'8uۏ)JD3<ӰeػKk-AC7U~3m|8Ù|ax}>1Rg,ւLm<% +gNEn3;ة&lEv^Q +˝.ey`)[_qo +mO?_J|#.GA@T~C"Ve`9p<4xfxǃQll(aI{NJZf|?~\4s.v+/ť;wQq?xu>jk1(=}&KZ\rdBL{J8:L>u!&Ƙ~'?>Jk{*p =EVQ|) J70t@avXU%Ww@/0*lytK_?ί]=N~%{ v63ԩdrONy%7s0ŴN B[75gi[?Î"_L֢ 37-w7gOf#w`IaSLBY\uœOL>E侁*ɝ\܏ e6i(oҟHjO??3S0W/Ÿ}gΖ[5-}={%MZIubvg)PPl3pнmAo7;*#-vm[[Tɵ٠ݝTY|-N[;- +f;p% L ,s,s,<߸&kDkm5“=;9V}K_M-=Bsm{Ox 3frV~BKk +;rZ3kv&w^<DIqCbƸ9/Ɣ1c [5O/s5Nų4OhZy!7ĜuN!&&6ACo8}'/fV,n>sLҿbg dygssJKy-|)a|moEU |򝌟N=p9ؗ1f"*8=78(r:`"{|7ˀV^R`;tбr2| {%SRyWw(df/՚Jhu2? $F/=UP?QܷRT5GCL}]S22ₐ?-lìAw`TAvѣS% 0.^;p<K{ׁ:.786s]e厥z~U~W/u]A<ܑ:>QkɡoE#emtv-#(ʙ?$2\C4|}`v9onwM]ٝ' =*N?wCYI3ȤݐN )ݵ +I-c*FWϏ)0S{鐩g4^lv%ؖq@YjqX&xH='Y2ĐdC2wι{=wp(Dɛhu!‰FM՘v+]M DoX}| x%rk,NdyI/$KM!yl>)Y oY%IjdFŠP(Ų/י5Pa/MsCPw,J+z&h5ZJ/,«SA7G5!;Ćx%B TbkDCV+0W q`1xJ 1Ry#D~9[kzIUC  y C pg 5` o( U-b䌳D#ΪH$Kxϫ!38x//Gq6)x57N33AX<r:Sߍ n?=2o)[25I澂E-351y9(]xvy`$YAALHv@s +|K- aɱ[@mt/!Si9>d* +xe;CC:`@r~=J͂?SA 'gN_t6v[Ѕә>X[O* p!4Fq"f;p;9!y@=c`N&4NxTo#,pjעyԢc1ע*{[cQ2M;hko`c«^ٙuN(T8*DM(:H])t%-U279,.˛7 +t.E?*̙Bp&N(#QFA3iO"TLÀ>vr@iQD?37b>,=);af-H:ɴlӁ TdD? J O8IHB]Vhej$b3@P =OtA#BZy!.l#cc堓j8>ו\LJ+rgƒ HBjH{N`jN|&2x%s%-܍̊̏m}ZG+ )LQP@+4\Yl<1G K\)}MtKb P\ G-+B.tT02>.w+]>(,u=,Gydd]wEi)؅->\W^댾)Ǵ݂_ 0SM xr^t$m=ymQ F?lՏi ,$JI噯|| j{K_I__̈́}}jf~4c .I/K֡"u={L]q=62ɢ/۸9r'5t]*| $%!\rWhiنy /_6mjiFniGn# @h7CŒsCE 2,vW۷.~s+d|G-# C\"k>3ſ?7ݞZl=s z@sz,tЊM2g艄!X2! .B &SمAHPWr^7ه ~^: :j1 {5j︪~gmx 3*X?.% G~60+!b mj fDPP)ߧN?-i˓όBXRC,8BoV+k*ShUw[5kVsk<@QK-gv9dR07ݛoo/ز%W+?v +ʏA+* +͙儇9e[G)e)@U; &MiyMLtd@\%-NCm r_%G.w)~چR0RrR&fsk'TF,U[!: P215a +~{Uܗ'H2Q]{*6"n%#uv }x@q^֖sv1(=V1uh9FT+Ɩ8^]I㵜Z} R0Jr^Χps]*]rdFC\'#la]ݹevSg УJ8cMVN4O-ʈ:.]8!򤤜/ sggx!$B +8H׀y!yFDF@^ssӅS0O mH631kEZ̕Jr9,}Ѣ ]OvS0ںt2NVa [[폾1!r&ԅd ۰=T9XLGe "AF?/lj| j[[W,!p0A/x* +ӒpȬ\ŏ2[%dIvj=%5 dFtFlӖd<w=~mot{<۩{3ǯ =M/Iӧ/]UHpoe~w6p[X2>JY Ӡ?a}:y8 {{!rP6}hO+ H98W%U9ME֔*)Ui >2ж ! eb-C|Ɵ>MWwokڬ/Jkf_uCڬ? mMf]6kBmm_9,fkn63~ mWͼ>mk3o6s_>M[7_qTyo{cBC^Wy%Ld,m}fsfM,dfsfacfo=fx=f1,cZ |BOh >2t|?b9kGjiOdCB-}OkpW{!=jy!;}=H9Ϥ쿇TLzdKgn='i)¤=p97d)Ӱn=z9Ss 9{a9d)L<{9۞%9ƞc>{F9[f1̘=p9o=3OGM܈p%ГA\IO^J#oʞϑ֫k. +4б<֋֜Ec@L$Vyau4F$;ɉu5PJ{D'vZ Ut|uRjhHݟn!͂|喜2L7JZ~>ZU;{ :qR4ujmnayo񰸅B]eekRyFxYx/D +*4q%. 3g3mH76\5c@4=\J$luʇ~7!'A4<n4lD[y:NTCԥw +xt<! Lj&NaDi{lv# +ugrvVkƥ^mZ $opsb.Vn\ 2_T^. 2A6>;_/p[Z%0j%"jpu2-#YF^xP-7s` -rJD qbfHEkp>P"Kąh߲Ǡsh|T:(5i l|8GFz6L,tF Y> A})[p܍1~;gg3/Q.@#oVz6v|~u=Sb@eDdӏco|q9Iq#Cf-'y1х&N Bv"Dޅ&#/~MIř`ř2"8yЖԼO47^k>n_aAxVX勪 2x\T<0Ƶc9yE2r$#mق >D|ﹲl$e`g֯"=BСr7=_;\<=cz +BCsX3XL<87BЫЫkķELM: qS{2ߦg*YJVIjX{ͪD>HYK^= ";N$WrëV΁UgYȍP$V&9+NɈЉ@7'wPc Dv:[";PxOI *^^Xȯd#T?fomԚLmFgYƚu`4rNٌH*\sKX=Mb@{;Uj$'A<aNY:VW Ҝ+=$;3'g{¶е>,T?$>HmI-.;\k;ph<`sd!r$Vi3f=LltGP)8ܚڱc( WY@X? CK@c"-CY~ϽowP??νKl6 =_qRlh8naܳd0NT/qo|7$c}pE :hA# e+6-:M{Y-\GԊjΰnQSZs:@#Agus}-X,T|b4N((ſs9>],-DTy쎪}zZkiD*R!E4) EhUP 0S $A Q6ֽ[bTo]!Lȴ:?'vlgZPԝTֱVd/ĺ˓(`@4M{b"] +vJiN/>͝{G_Nqrw-2zm4ZPK9H9wO{a{ћ9DZ~Z[DzT 8 zTj7-STQpXL2S܊|L4KtP)IDrfEDUxLjmF~OL:71VL3 +716BTH}V(@C/00EaeM ͨt4OҒIӢ֟l5݌[ViEg4,54$ͭS(W&kB7wtG6=zI-72->l{[xխӏs2Лvv6%K [xg`GgVD + ZN\4^E᪫iL::m,uƢ[VeW`0Db+ŧ'j ͽ| Pt],-g}%/2w>Q^o( ڇ~%>!"><^}8Ftw{C1$^WK[ۉ𛶵utcnӡ[:.Կꕎwob}~5iڌ@<ʤ;١RkX>vXZ{zŷPi@m`p\4G߫] ڤ+n.lg^̼=' ]"xU_n :%IeS( hخb}P|RgFUJ=o7ji'4?$b}aNJ@dH5ΪfNBw*e1͢`{Z lBtWWlBdHqCtKV>zg>`%")V}[d>DKCIq,Cec-)dV:.%ᶲɹX0h+h l3v lSڄjwi]WkKiԬWL)IO~ 3cs])(aaYfD؟V4/bwa+sbH?#YF||w +GD%YxY^X$g%cx ٪gqlFH iJt{ָq=XʘCb.G8Ez(d\esp!5vx>Kk!_[q4uk]G>;5('TK6+LXxCZ㔋6u8wT`uƘ5FQ]N9ˤA) 1ڒg i#`KFue8GE;CA\%TeNֹQh(\m|պM:mGs$7QީcmfKߣC] RVKwSõFr5G)J{ nBb ؞%zK2XIL)u."T3R"JmCFccܭ:|·kvyZ9jj>e-Tq\Ѹl{Qfөƌ~E3Xhm]\S#Sb}ʰ&#x;r@mfDmp͞4nrkZK%RwŘs}S}쭔)>6S e85giՔ8)q\Abtaxa@*i!`GuQ.<ƺaVYD|t.h,5|嬹u.z?BZ+_-TIKz-?X5$I:O=F=B8Cqʶd 0Am>i*ێ|NruHC岤NϘ.0; u^fqò5!:KY$4R,*PW} +QU[j)jbQ+hUX˩֫辇*l7RNZbv՞?mkWCT-z/K s>\>4X\rg/2c!P8PW@cǸXt;rcX/2q٩I[6hɞj)Yq hw0ڧ7DPc}T:ud#ZкACܺm^H,26lҀg:=,Q˚|c"U4X8YJH  Vs1sX Mĕ]&Jgxo ^Plȿd|"&yBpv_Ƒ]iD*'ZxWk/K{ +FmEhmK 4+S2M@5%=ެh t%9+*iީ)>δ[~Ƅ F#HZء vfeBIvP"v:+m@E͔#Z({"Zz*"^`:l"^L xid^}߻.6SπZ-u36d,՘ yܱ +rk(p$󽌨h׋K/=? ꉞ c!rݺ+2ZG&kBynټl +̻ Ilkޏ˕PpY[Mq)Ή%-:4~%Q-C꿏1qޱdӅ"Zp,Tv]_|KM/N!#i:^kބ+/]so.b]T~c1(wKCg2C'|jz}?ԃ}?Ę:c^d ;_-~iv9CZ.>qcCǵB(CEx^'@=ocJdz_i7V>lf G{J)^/kZq|V my^ܞ8aX?dSp}=_~4B:Pv03Bɔ}Xoze (IM>PJGn^]fx=m@b{0Kq7N;R|tvl:+_WB9:˨+/Qγ(UAۢr7l篵KPc1MK ȸu/pcc|`K E(͔ +y5/GdVH^=a5}R#vZuO8>KmRƒ9,'7[hux j'շX}oz]BUyVbo VYf:Ø{Aͫi d6|Yt)\2qzH9\:`7h G(g]auhRCw +r\͗Vg'- π MK ^6U FD%[gXJ582R+(`Z|x#zZJ,!!Ee8moo'0R!vҽ`:Kxi*ƿSbzDѿl9*SwzZQUfrR캘]k/aϲ7ZYMogPZY׃xnS2 ۩29UXCNq.&#h <L}?0p:&zqlV7:v˯p魆grdXۢ\Ǻ<s?[}l[UKj(Ha]8ܭVkt"(a] +%#( N(=|XC > 8(2P}j)nVK?srUW.tCMt$? 1lK֎JDv1,?z'\G|;qqgMX=Uۧ,Iל{lގ5M,Oۉ48K =wY!a-'CnڍWoЩ+6cؼ5z hu)!G%|hAbjBJVf6w})9O`o'Tgoh'3+` Fז;Wx@688׋Aq5=/ߘFdU$9SԘJ6.痮߄rK `mYGC97bll<Ќv{(r<ҋLO_w,-xJO/(QRb>bϔzcQ;E:WyNGKYN눬\,8 +\Q*U Q)I]~uܿ&yP9KMֈn5>8"Ed ?0<&hr8HsVhzT[YcA œZeTs\t7QٝAY D +voUhA^ԿӘ>}[b?#q/Xʚ>|dk2+sݗȠm?ͧJ\)%*WB?ߤsxngsAHhikX$) m̧Mv%>0])i&]'c^=4ĔQM6~/ нtIJe%#@dU@RF$Z]`27tԽ̝TiH<ōH[hQ%l[Mޤ- XI!BTH6ZHSl' r؄6)Q,đ rOrr3>ykt{X4IbӚzZKȬݠ[JQu6Ŀski1Qh('p'(w_*y|tOaWs%,#yr!Y@k/JPɓ$w~f|t5Y +P8+=JRG3wFMz]`OVSlm%'D|J8,tb5v|4|džf5u\I0'ibwֻ9TDl +BrmCY h>Trw,]- 7Io&Hl4y7<96!@/TϿ/w}}`@xsj2qu97Ф`C82&(^1ա=?Pd` @'wk \~U7Kl9F<FYF a!$&BFZVul-$`G:Ք&~6F3lhE Z7nXyᲆՍ0hZ-&#=u20,ȸkjlL LĐĮvsYkـhh +!qŸCBW|gc%.MB sUABo=WkLz%Vה|:=B} ︡/ s@).Tӓ4KBBc N<kY:d^Oe\zY a-<Ƣ.uDžDR8^Cy"K^CSf/@WL/5AgeuL$\6M) Z*R^8'õ +xXmΓn' /0gOarIe!$z0X>Ro\_O/,m^P/o፱>BX$65֍q:J̠̑߱ +/. H.!ǃ&=*dVNd[h)nfFx&<[an:&Q +uQ'01wۄ%S씲Tp&V-pl k <ޓJ3$rV'auAv[p ۴1izS(U)7U64FH l ,$Vn +7-U2KͬKTjRUKQf:Ǖ6<ޅE~&`o[e{ckפ#~J%]G^%xRjJ?,om똼X qqUhup x +tR1JBC51\B?p+0܌pe@,pKۡQ(J};з/WзjWkAFL!o+z[з +k+YV19KINBjL??Јx=#hr`!ՕōoD#v.6#oXV6>[>g^o9Ge{-s5=v~#3 V7v`mʭʛ-J;.hog II- `[bv+ nEUc0%n,۳x9vn˻vkM2}_s"]ږW_yn |˵:S'WTHOvjnߡi*+N|憎44,Z@S&ij?gĖ@luJO8pO_ TKGG#Jq{\ZBy ҎhvD8=2}evH9YedG PA,H[XҚx ma HkUl`4H;`e;rz5mwyCߪAx4N}1Zþ Wu_xfZ&j,I 8][x]8̞H0y_/N Eeo#rp' ڮ~!gbАx%H*ϾT乜,B ;t: NNt)I9@GGuMF4IbwP Lc'm4IZsͤ!T".Cg.c-c +Zc:2U&dz\brZufN;u+ ތvo(qLӔ?A^AjvJ('oAj2c,:Ij"%f +HMlt[GaHMCu:f{> +Σ S~p1~DՔ@.Hs>4g̻ >AH,H}(>&df_D͟)kBh+5s;Mu=.#l mPKQK_$a)[__e_} Qwi}?WD`^=)V-RDBU"T+PՅO:f)*ͪ |LR"Wh@ٰ ̢WCCYh@(+rZ9u-?tmz?yM|/ԦԚܠES.fʉ33d +y Em&4gBɀl6o$'D3lPבv}&PeY2OXuldV/c/m* wJX>,4]jI<S,y7{w+|uEȰMݦ Xoq:aE+K;P"y#ɄuXڞ1hd=P)Ø:ދ1;#YH3fh3j)cvF3Ƭsʫʘ<{|1cƌ6ib5~u#TC\G39SqĚ}wO55Sqq9.n0n ub K9.͆ Wn`68ꗰWDm}[ `?2պ ּޤM sR<&0S{Sk:Uk]3f~y(|;f{SԶ>ި6VS_UVꆘqNy ;ܭ*&[ɽi׏P猱jsdR"q%W|jpN9ģ?~SYbϢM'p9L$~^;WѸB};?ƔdhGO(l(j_s\>e+Y(jD(yHm1\;q)*q5ّ qE6 7Mue)4hzUOW]2r$v=KʠI@Mas.p m$Rqg^AWAnӓYjAe;/^m[ ,+xЩUmk^{1{5?!%P-E /qQ "TS"u\pJ'򪱬hcjE+Yb[bֺn:͛}}nm(6ᐻsd cg}wdn;!e,uǝn#^bQ)mo;X{ ޘ ̚4&(HC4GN6E&KK%\H]L+(~Q438 z# I9>Srݪ~vG?V{%Fb"s51W;xώJǃzsleXCqc#bnjud +Eic%1jyN `Ҝrh_So?I +HD&<ѳz颷;qokEa{(ijŶɉ'D27T#zvsSp<kr}O@&{"B'K*MKYU~S..xT$0;S4gA5Go+>V:vT +h_9y@C thxߎ ,~jZk;OKW^W(0, dvqUsRQ~~ +Qݙurrl59)b`}&U@n+`Ws[T)pUF 0DO+tMi(Q8xhFlrZ!7/ u<,-P^@F)=-R_xM{N턖>xSNY?ܨ2*#%_N:l3 +tTМq +ˈ<4_ oO(h:fW xyJN\g5ka\'xԾ)-tc1x42Uh[%2Yc?-jo<} +vP+p9U5gfW!EkĻV*r#յQKFyJ跤'Ҁ|tӏq WĘiq򄰄a +(Ѹ+}2[nRv]+㺔}߮Q6Gh"*7Ʒh3yT$:ށ鼆jnZNׁS 62·𒼘찂zuhە-?;9*$BnHcƂTXޖ3%R\iªB*$6 +IX:&V኶iy zuN9R1u\SU)mu `:EۉsPSµփ`2M ٹŦ@e4) +OH)I~hw$bwU3 am_*C8`0&p#vvޜ> ;HF<CP*cWSі73R^^gҤm{1;ΊgF0,XB8u•F_9PEr,;y\n`b׹:ƅ +GppǏf =yքW,nl%ixv]šh~$J4 2uvn3CkQWR]xYo&IQ~DD'HPʔr՞R)+T% +2,| 9dhKR}m\ŵ -{wG(=ck)p> {-CZ\=HQلL - ZVzcŸ-*<)}?S(1DLhNz;q5֐IWcTWڳmEu%~V'86^Oxԉ#DJiuEEE0? & 85(OZQJn-󖤆M{`"7Ÿw(;E%_3BMr` @hTO }EaA_ƃ7g/W94-Z5!l;83ime-5o=d *A\yT+!)r$v[R-u檋0T4}^$ +WZ'/;mqW5^wTnJ6&hƳ%V{N}0@ 9I} _C@vV_K_ppa{No8IsUwAesk(_ $Av#^/Uj;UR5”CHYZ'Wb5E8 ~xW!kL%E7ꈽca!"lJԭjP竳@MAqQD:IoS R/-{4?LF73J9&< PNegcNΔӤ(Ĩ%T˄j!*0LahzuR8*]ׄE=mR2DrAGҐjmV瀘V7 X&|f`xW +wSftؖ.-ՍSҚg衇^m H$m䇌}Z-<;s I$t;7T,Cd1'mfB8[0#౩* oo% +R`ƧFCF((U9@u$?e:*bgQ 0eÄ\<ڶ3̶21dؒӄ7(Ixm5x%~:%IH"qOMˉtHFi' .vfx{ጜM}b}Ik^#4κTCgK3;iݚx hA u/:Î@P[HyzRU"vgj0OԊ]+k%TAu[mT2w,s>ө7$黟6_cK!FoR1IrSC1 RRp1<zޖҸ2`짦i +΄3|Qj<4&Gq#GG=?r|oheQ.8?:6](/? +h)?ZtؚmgOx|07Ȩ&cBTfT7giVsCflNz(sR~Ǧ,>%gɒ KuY|`(cP.Ov-\LRTG(_:)miRQraQ*.ľe "W[ȞS,4koxZ bWMЖeIST>#WG$[(RNR5..I~:wUuOx= Xʽf kNHAY5K;YD.5r"} _Df&֚U+5 +AzAMJXU"ElЃ%EH(V&2rXk [@1fMp=wt+˲eK^Ɵpnh[gU~RK2Eo\=.?O8~q_!?;u~v ~]__s n8fO;Grt N"7я/rV@Cpvfhc/fdƹYXE}D\c$N5> +~:`G Y&Y0[)w/Jd3  Il 8z1G7׍Y37hY l~[m CN }lcU kh*]MQrS&e~+ALDcisg90X3߸&G7+TMLvC&W`7ڶÜk<oىT7CЇ0 =i-j]^ < VZJs*VMւD|f2&r%&2S/I''iz& %(':냈rWyrWIi~< %c>8ߓI~[ Mf 4E}+Gϋn$lArېDyx_P>ϔ^Qn 1孺^P􉴐t4qau&Av֠f^ +J wXr[|DfJSP`>LD*nϡ%]%"]:-wC{W ;wZTW)ޘ_Rͷ5+9ޡU_QC-Zŝ] \銷0٪Sgߤ2;K[EhoXQuH {h-wʿ/C[Iz#?U=}ToO~gm_~auKA#gpV)ҫI]zwx WAqYzm#|_ީzu6}h~~od@5m9; ڮYVר2Xu ^ݭzںSM4McEP{Ms9BbܶjG.;zb ` +ka\K.q =eTؠfo?Uy)M E`ZK[ܭd#mm5\ѩzZeOQQU9jn/d@ծ;':Dq(U%Uc)jв-Sh+Xk"̶{.˶^$ae.٫k$ؒ[CKM`A(و|ygF{0zs{+׏pr=ה uWwLiySIo gt+|-쥷p㮾E*]&ّ] +lv&d\L,e@aNB)Y@zєWY)k e2­.*ĺRup[+$?y1ȭΝ{WY([{$= U7)wvTnhEDiX#kD[1*\ԐKW\-6>?ϭI:w|Sw L)3>p;&zx{Z`,2)PFD|ԟݺpQ_YJ FWXš!EIEèhHӬ5z$m\n1ކw|]:yոګ"<~Ĥ-ȸ"vgo?/cbRAW$:hp7?uWs:Ǟ*É΍Pm@/reR=ފ>j :ZпA Մk0;k_v-Vf2R7vՍN/ehnB^au03Rq?-e^y]fK{fePN[וrPTp@KQ]|9%HşDW"HoT>P}DɈ7eD +%׍9{+.nq2;Qz5![;^=#pe2MwEL), Lef/A@8ec-MɅBs^ߙ|]DZ3LcLhofK #MAԌ_A)H g#׈^-^(3%pUJ]#1T^ƇҁLeu3,@Rڐvmb,R+a:Kr 5&(%3utdqyJ +N2aOnÕNBu)ݱIѫb"DžJӐIdhp(du#R;-KD#0m86ʕ?ѫ^F8*b,׍ "MYlCv. Ahߧ'yC8#M/o`י@&حWTN e3(UxF!Rx0N<ȻJ8N'! |,A0J엝8qڡHڄF}Rp8Ѓ~tdЃ.$4JCOcnݘ'|։Y6#mT?Cyݲi,@Y+Ai+r=<άH|#b¶|4K!aNBAȶN&`EMt+6$% L[-35pW\|gu87>:e2U3_8~ELdxFSD_^;Óף6S3Vu+FE=7zsF-TV-0Zˡvi*o)ڭ÷v VF>i,穖^o&nk1M_4̈^W=uh`d. d-VOB[<?_m'8?b%4 %8j]ϲKn2W!wp8G& C>1[±ZгVAO0͒.+T}]82HE;pbl +wf:pי`G`VDgWدpEDv -j߮u=]&Y+7|{'AMQ(Tw>iЫ+GY3(!Z-KĮ?OҜ#!'*gbMsšǯVo d_KьR +\*eR zߌ(FkpUrDz^nңnF $G1pl{tvgT"`UDjwT "P+}ՄSGj=2}/ 1|yu_C_af^hv$번 +e7C5)OnknxB.B=S@#[D]Lv$"AdX% +WBT뭲d7X+!Zy@\g ^WZ v)LjmƐj?Y_sCIm'R'-ʹU܅y$}X3KviI1eh1t'*wόDNSPƈSŽ,,C 2} :Nא?}N 'lⶂe˧1}RTWN=2>K9GRX%k  XpO;y:KH;k2mO3v>eofb +{(Jy Q1ВAJmo:곬kKL]U2ռp +7K36Z7r3t7[xY2S:" +(C??A\gMHu}9f%E+l 1@ /Om>i(d.~'\5E>q +Ԥ)Wt5Cjk6 +m^NwtyOoG~N`D,ً>\8*}pf,_4PU 8nR(Y0dPXrHKي |u^yK/W̟۾dF(e2ywb$''?L>nɈe$># ڴc㺝H7q~'sa>cm +)<=< IGmH/=]K YfɏrYˍd(K]v|"GV[ R˨OY'WwSe)]5t]M 5-?= +9=4QbjKc#e}lpcȍ#%Zn nr)dm(gFX@X7D4+B{(N=$Ͻn"L"pqAk {G~#;qj| yɣc [:mbeZMtrq8V!M4R'Wmu}{]/sYį#ޮŷZLl.\^[) 䃣JI?iºy*+VVO=49xh Qݩ ͖}S]<|c׻Mnϡx/|'JP#q hZYg;lԟqu,l?+]}WVP8HlT˗0g0®3aA67W6IdNKEFsxjnkg\9u''?k/rY2Tݴ% O>\~fwRj;HDŽJY?|Y kKMq+j _p{ +A,L1Q('ʓ&V%'.\]]5҆yn"p֕4x>eUI{8\{5Œk"]%[Yi+=$ԐbMǿq&<<zK" Z]zfkKYJJ2ghѹMKY42XUn K0&0,_Ș=-MdĬ*gZydn>]wñTȫ=~˭mqx5yN*u7HXHW +'^A^餑e:d6d +&Uf_l"q8L|&JirfKK82wX5mSue!ؓ "tdn"8m + >A]6Qdhì2]~M#8G.svb;y#5]\O= +<*&8_d\Ə 7OJ7Tj0^r V$x)2hd~"cWG`0/bL￁ҙس69-%jݾg]4ˌPE^`9rnl\kKz5\"@XXzPR+}Na]25b*%z-f^cIeB;k`qK}\YYA%@tP<)L5x~N.ާ P=͔^RRfO50xO{UҋNe`~=%6RN5m]BuPqpzl +%,)[S=p^S{Z_7XԶʏ:lmN$CMB^nI =$`gR~Iob"e$)ls05w)u(̮w mCNq)Ap <F*$OW&/Wgs{EIZ8zs,uQeLxCqFGjP?Un`Ⱦ{y'RBK{wB-9 +4!W2Bof{[EnmO_I&j֕w^Qt^WjVUȫ,,Œ%h㮏eWDX۸R$$^v\7^'LlO;"ݺpk[_;T(H:k H\=T Sxi1f^n7+n7++2+҃1SB?E^6"AzPG8 u ^ X. AIWڦоTéYkn=Ŏ_\`G꫘!퐊tn!A[g .5"X22έ +XA#;,`[U#V;;}ק{ J<|O6/_f 7N/*vek #OVP;fEy濲%:Z)P~qc.jG(xYsK/3FMà a +:JC~` Y&8a 7ٞ[YTV]c#̪:H E+d +s>gv ԏȧZ;xEXw'Y VQFkcpOYgJII.Te(m& gUpz1oYyphGZl!YM:yKn'ױuIVxR/jIPe|)9r-POkp+춷OhF[`n'{/mTnÛ]m[XnV~_0JBgt&W$8={+ OKm;%sZ#:.ՐB Ӈ>ݝ5ٱXˊZOofr81{2cʞ< ~{/tXr ~[lv48TD`lǁثZl+3^dr{c`#V^^\QhS~v{WƖ>[ݲܼ1saRޟΟɛ`/F3~/6-o@عcvgO@n\GgU0g| 9˦ o!^tN }?*/Eben%RJM +ǫc)\\0J`v.@o8(Y{b[{7k.4k+8HRHK- +կA\_tXB XOȺ MVu~3y7'եV" t1@?B/ gꮪ_͓ʮJD%dPLu׽UTe}X<1\j/R745ch܄qH (7@#<_&7!Q{!\Ns{!nm}ÍC{GPTN7%G!Tμ`dO@35bZ=@2Uh~Ta358oXދjo,anhPcYRߝ直s4* .pl*3N!쟆1WGjXaCV;h5V.ޥ;fGjz[Ãz+LL`4DF 3zS(+F2Qۍ:k9m^>te\bFMpLW/E2dl ;c \=DλB) 5( 2Knݹꨭ.0vKcMd>)nqGF)= 鏇]T،=^b v?`jM;``ԍ IS<`ںyP؎CɧF*y'nOPPypo6]!-L[: sC{Q͛}%R:ԓ`+bR` gg:7~iOG Ĩ=NIBee P'dSD*뗃wPp}FE?'tl2 Թ:,k6LO YLj.Aj 9ȃy ̰ +H0[XG+ t +(bV$'ÓzRljӉ}@ك#owFe,d,;d,'ww]k2)K(OFܩ?G*M$y7"r7* R7Vt rQۼMHWWz.\2a}Id/ +S# <^GwD+Fo^i6TxK΢*B]޼Wf]x՞$xOS_ ( .o^6JUPW7y +ːǼD7]&Q^&qezIvsدc]]=Sqz9/^WZ/"HA\ݼ%m(^\nTAbL;ϲ4v#}׻B 4D/54qL .+ Zy3'szq!;VM +~¡}|f&?n*\ȫuK{}ͺ_D@=~\oE0̌3̔wAC•z7hޠ5lhsyk3前j3.v2Q?KFhH6|.o3+ U#=CY, =Y_i[wǦFh* Iٛ@ [3ĶS^Y7\e!g2BCN^s._,Ҋ| + +PD_:q7i. +{e0 S>SyEK3}H_apy9Wu?vov^ޤ,P|(h~av0;+6[fgwr +!w%nlҍ^g2dϛ4 4p,%rDlE]x]i80b^uhKzC^Q'mևă57IԦ Iq=3&֍p؍}h:^Cr&ubri ٠ۏࡑ$oE)@zK{GWǚ[]BMѣzH{:ؑHS"}7Q!p?pC{qpD/ +2A7{X7&C1Z.k1 DaGLI ]-/!b +qS)VEkD pKDOS׵`K;6vcZ7`"Vu^Ltҭ GB@B}0a ΍A*-Gs֋dxЂx|B38- +:xgV0y{72آ%qO}h43bmWjspdbAΎ(.^oi+wh+B+~ٍehӦN^#lوs}L#pehTiɅSwum9JB'"@uRG/_}tD +0xb \#5$]9ƀ-&ra[#6\kCJsaSo[&?l⸺Ϥ4<=H3_q:%k''"#E"δLDGO>şCNiL\ TQ >M0t%jaC%jʡ١t6L݈uP#2oHX^=&z?y$qA5N"=Dđ%nяNΆJDq="  A7>@:Pz4`)*Q;S` b*B2*o,aqo$d.Hûc1 AF-i#dfGYHcbM8pt^{ 2bdq%a-vxv?MqwV!m5[F?DpuD?GH +C;3B"[‘Ɛ wxqShLB1r̄> lj;D@}sNdA)A@p#-nD8^nfWrm(-Yf+{ҢF;.mKXu{BX e`3SlWr* hmUf?:]Y,<mZM]_ N*yҖ``tn,P><0`9\&5_8GJӣ]֕QZc仑ێ朗@vuGmGRfv8E +vh&<_I_+Md0?m+8K|+E7y,1֫OO%Kd0}/DIGg~ȿL v7 m"m=7'RQK@м<yYDZO$f}ICoH(]É-@GaSۯFA@n;%W1}_^C3O`/|B;|B <5⧟'6^(0QӌEf/P8lX@Xi _Bf`z&ySQL懧Zߵhf8͡2R5=,vjX`/yQv'ULmJo 89FÑPӜ%%@]zGZn 9>uhƧC4cN9BLP!7SY>3u8׻O2F[_J*!hlY[.e=A9>.5Un]s8*5j +Z 6mʿЄf[sӷ zke|tV{-U+ W:R@1տo&r$i yR)J|W2\:ϊ*a.QWDԀfkil: %RÚ쫚OvNf *nlw/X{jtr'=i)x*%Z ~6xh&ҔSXe-(&:fLC9T`U<7 E-U^zk6 wOqjcQjEDV*pIcKD%SIo9Whꡙμ( P#GE_XWG`}< sꎼ+nysAӈ?) (uj +kz, GS"( +[-զ$^(˹X5׎X-pU˭Pnad{3VsbTg1@W`N +σ9xS7_):t0NQm\~;&6~,r>|55,m8E|\8ta8ESjoXG{\$!Nk5@3t33 0tZS<"gMO`Řjt٣lVmfrGSgm5__I=5Ӷ=VvvQ٨eLLt[pDADk?j5۴gTO?hs62kj@u?hSVm{ʪm!;pv,pa;%w<7۷, lKqCXE=O +#s2lS.QWJhMo GmL vm i I>Wy ?,^e.Hq*ID/c|<`.oaYD!5ts!zB͓G5/=DNՌQOS]hjeOaײR,}JDee'$ iw\="(t}ymGIq Cv@e@~an~rR{fG⭮E4V{;π+4d;\\wĭ_6A'v}ڑ P`PDҋkDVJ^HaiCH!Vh x+1zL^Bz[wY@J5O9z'??I|A5!:M@z ɽ$P {6hl(Fé^)Mf|CTMҝ& ?ŮehkG~,~xJֶfǑT1+dAƒ;ʰ "w]hQ1\ Ү*'~0pnnb?RvV %FG 8Y!y%G2oH_t5,\je0B[uxKl<MO\@憓51uX$\$N6f<ߑPMXQ t>DF^d S+fw#-ܽ0oDIA1,~ -"FYX͓yQ]< xJnVB0GK^_^Wis_]% .k>YV~õS&/$>6򟅇vʫqV>O_^5c :钠 +'qI,"Fs 3݆h~a~RM( *~[p9%]~_/*/(_JW~i)^/Wڛy =8Cw!́iͧx `8Kn7\9ל@lkЃ/q^,k*tW_C7D }LAChz{8_x0*W*a ʙxGn搛A׺| 3dy;)YfvpKw8xi5\j`z_ &0Ag?! TROEنB#Bcw0VHx|IꯦWY('Ser>2/ƬG3ftI%G䆋,ye*1KcVavbw|Y -JQw:YUE +S7F L#,@Xcc!!s聋ݧV>֎uq wF.x{ Fv`Ө=r#-#ieW +xߖNoHK#[ÑHob7lht4Ho9$n +A(xo)hh0Dhok0DVO閾&!"[A=ӕRtXo/eE:ۥL%_2z#N3i9׮*XܡQ1A%2h.ёC#Ї2ؿ)>T/=ڗZhGCǼU_vkH*P׹ Ig 2羞K<)VGl4';ˈ%^dA|_ +>dV-}2:2yr-`WkF'&32jo +HqZ.tL%UٿGky\YyH1 eE`L($G +\` `+^S7pjHԍzؒҹn fDrs^闁w|K>ޟ?C+E 4xzC|\h)#Mut9RJ,]6J{$ⴋh$?}ޝЮ *f5@5 +;g۴ $hQ:l>U2@,!]ixFd󽔏uz&>p bP-6~kX$B 7zVm{nd<,?Sw23axsN[e'e3 fePpe/0naIymóZqxcݺN&j0`̰=z莄AM--9-G}g4r3zۊnr3a̖&{Wuۜ2m oHpWLpJSDCinH4Nl? '6&p30HϨo w&ǔ +q@-"X:_&vn3E!y0v{Rx \f;za|G+ gr20 .P04c04_EqmE6c=iz`>_e +AK05`ǹy{߈"#v02b#Lt@1;.I5 ƹIhCh~3.<61@:pNnvY/w./M)IS׎-#~ YH~*Ǚ1yF{8O+WdFVa71# Á鶫3X'X8C~"j.g클^e}kV;Ҿ6!iKXNLџl'v~86Nh:@9nG;0]ӡvyG^}11XO=.*'(r7^Pݡt~IzXI]+Zy>522avM vWT[7hb^ ]SyD`~ꅪ3JqjiM>rNX:#ZXto薄notOC~Vz-BuVc~ Lj$ j l:yI>_I h֋ PtNc&g?cl-VhvT릿 +|k30#ME|G28/+ϡRGy3O,?MWϸnJ~`x>{< V8B; vP벱YjD vLmC.`SjMoJW/0㐝^p`,/bqE*-xUV73…()uHga1xiߋ[k()N2}3zlxxݽ|90m{e5k|? `3X#*wU5l[~"lFK`**ү#|ō +9Mg`a`TYz N).BY_&(Z%.LP+SnhmnVɍ9iiv=F1]r͍/c 1Sr?fKnSB~. +SWzYg[O*me)mtWL :+OWnq(w&H{4eJ?T~Wr]WM]US t1@8z{S\zH] ylն? sW\*mgJ ;:ؿ. (q ǔ1+ dh&0Ͻ|ՍDϐ _&nFbeAuKe59u0bo$,AV6?&hx ^22Xb "$PYS)H"CH_꒛Քk*| ^jX c}2֛5:i[F<,t|eDeJCzLEqہ|da,])((T2gOO&>d5uPK0ӈ) 5bDga*&6p[1{PqC h4:Μ57ωg]tvG{ⷁR^J|@,W\E\#,HrK̙[ow(p#y/9BFttQ,샵@Mo`,3<lΨiP߹zwc dBgR݉ 'ͼ73.V WWhU sO ٸrĦ@^Z +%9@i|nviƵ,"8<*@%;8M ә]{璳$XC¡ګGwaTi0Ņ2t9 3qClRr婤ĺLNaq஘c ȧoHk^c8-3rL{zFe0x/LV@0s[(!LMTfzdG|%` ;>KQBqn%6}53c>ezlE> +GT;reaFf 0AgS yiN"`W^ǖ x"1Ʋ>s +Q&$.Vlq7-|sF _@Y]}Y%;hVV(5̆w_ܘ=!!ΏN0bxw?u\T[sld$T7;Ci'M }BVU&Y?1@m Y_߹?D.DLCVV+h,?}U͊ϹDgQ:99T'&sCS;Xa9 `[IT\0J=ߍf]~]q*S||Ν0>'Kj\=-<̵>2L)sgUDaq-wХXdiNK 5]T,oWvGFDqq98Cв:$]:a񇝬gЏpSɈI˃Hq8v)5%TRJ\2!Qe;I[\E4'Sk)f|4Fīi3 "p __ +R8 #v`Cn"j/sm&pi~se}W~tGMӘ^4Lw!o}Wߟ{ &ȉQFDfR=O0&f%Z,2Q;c"~X Q!l{Gc?.6 4O}fFT[F`i#x>mXP*tGmϾc~(_PcW,/}݁Tz}Cyӡ`ל}b$ u;6a#pFvǐEb;U~oɁ@[vcJ_U$h{ʑ7\[qkdXByn0WN.RF7b gٓجSaS),m]ְSL~ԡ;ܟgTJݛ](?_iCr@jn[fٿpi/qnuΠUw;w;~^r$t M}V8n!Wnͷ_xTڊKT.&uׄĞrs/N^ qnc +:po<ꆡLjeROd?*[2i;q[[ۙ} 9ŷeȦM~JZaOQ7̔2̃yAu2q?IF(:TuN 9^~ ~K-y}ӓ*]C zKyNj")4lаB~K"Dsp,5l fR܈5-p+I7+wqte0]*T.te S?׆ԁ=dP'ZZpS޿ [- OJeRo?h .<7 <\Q8tÈv_\:m~=H×-D)6$xϯKoݹʐ"bI+cs'i4IRƻԙْ1.( +=w ROLJTTY8T9]9@í@(޽-hO^iԝ6uiJ׽woZH-Ğ*@]ŏS2fBE!q)7oS於ZȢ'i%Uzrt}]S{Aw0 L݅ŕon}OL\zJHc& j/9*V J X{#2!#3Q+Ƴ +e.vx;] d4Z//L4U}= tO?dz,=0sώڎ] #Gv-lH+ > -H%tA<_C2)YGty뻿gSйoOAÈ?Iݧ%HW-*ᄔpswD' }vN_~( I|SV[I]<elj&YD8ߕ֛آ'YiҽVq8N5ċqԻ8%65*s>6{0 \Ll`"G-qq_Eb&¢b[&֔' M:<4pD>V&ID_џ-2e鱅O'tx$0b̘Oi?q[mq+ߟi>a ٣M?vjgυdmxLld[RQB۟ oʷ{ +4G\_ 5#Bn4+o/BKɪԳQvP:lPOy9+Yh$[BSX&ZڱJHJp/zA1\o\ƽ eͻc{}a@ExymŎ߳wَoԻ J. 7DX!jW|'Ը vTlڴ!{,$T*6M23~,LmUj;zvEq_CP,V*O%&<]R$em>/2'7Mlw[R vg~U-̳ 5ԐЮ'߶j20ސ̛9hAL:` 2@_~"O{[KE ʎܤܱs]X䚛t"YB+pQv1#w6˿V5&ɨ +SQƑ}^_dR٠L76EjXT$j)Y/ +M'D@~EcPd?rb|HghjQRKuŤ#K0٤/>#uܴubi)*!пϤ-`mE/ " +iE/ g6N'dY[,]u>Ic+5kJ\|eveJL,~sUN/$o*їz& +n?(WYffU;P^a)੬TzP|,~m=VVd!kn+3yڷ#`Gz?0~rP>O{ce1~;r "Ayug(ʄ?t$-7\jv5L/?smn˗p\k3v Y@2^eh;U7p09o}L?KkFD)K-p`)j>n:"I?b$[MhԞ/s/ů`Q.ؐIsL)3).P~Yfitw&ulǒA)3N5[Mq6LY6O sS~.{=7g!pJܵwɭ*q#e{>D1 1imf))ʬ2ĪL%mט' + .sF`M 9pD7jr{WvkȐP&m= LG8lfeIM\[WxYqYrexH9 e7!'ͫA\;׳<8 TP|;8vAy0ฃR=Աq)~aAΝWQ q8pM-Qf!:=] тAqg5;C8lmuc=h<9m8[W\b1>g*5Xl#AY*hxW_Ȭ\t&jD݄r$,= +5T*WĎ[ei=8c{ +[A1ő7|>iF2O C .~ +LL&vY = rM sǹ9Wv3YۑďP27uwbslW!֖qƤ蕮Һk]OYR6'$TB^QlqγL[c;'DO)+}xOnk:&eAlK;U%fI_`HXLPB I HZX4_PLSCiR<%kN^<½:='peq9azTJډG3q抳5:Cv:7r+%R qH40S}i1gyɊD {$H >:S0"[UQ,@ !B 6+kJx((2pĪ/\^[9?JM2xlt7 +×w]kҵ24A7=8\9ꞩ̧JNp?V"ĩ$u[ezٜEA Zq2gfj\gW`wVh漣6ߣ2vʵ7.ǡV9(p#'C}g]mOGJ3o/3JNei{Sﺵ# +7OVܺnUSWF%롽# Iuxc&RYK7hqWs ~)Z֍uRzS׉rWZv[9=;c^1p#.UI8Ӎ]mCI{7:9ʞF‘&\-.=w{amzǒ~M.vLdr'T3E S׻M>HcZ̭k6ujVb[KvvP`||;@&aDj4i"͡"5z)ʬgLҤ31?ar;[1^<˲zMWD/c]}٧6P}620_*uamjk֭ߘqX.&*MdtjE~S+};jbIAYCțD p\ 40>WK"<LCȞZ;k51if:0Rz +.]K&b*fBDqqc)7e*ƛk cKLb h3m5$!fveY"̤%&g5)u2XK`@H;)ފ`ҋGL廷Ca jun/DjԞ[}Q+F^N>\Mt|. {* //y]A~6evHλ/n!r,Oȓnd[{[ AcPs ءVd87}ٿFa7}3Z~eI[ +ndIqEޕHwzo~t9y{_e9ثtkQ >8Mi +~WVpkRG˵^z]7 G4H͵,.4 T!VqPi(},jd|^RbaWhv6i?=G\afMӚ)qzf.^+՗VTUcu{hhsf?wr7)=M٘U٫fjΆ9jسmlmlIupdy{ I^wwڏmqk'݌qjmG:lA9 a_-5|Ip=m1ٯf*1 ~s%Lm2$1`8&ˇ\lE?}2c&hrwS}_Jg>ف՗2>.J{56ҞzJ5ǽ*J 8!B7k1\.,0i|4>9{A5QXjǽ F4Q{7`*TNU,#PS`Guq+@=4 U 6Ws}[y.Ԥ0}֢IJ'uig ȴgJSaj1Ҋ-ikis[[0 bqhbUH[ELlZ1pnq%ׄX|qC~iKXjL~mz +9N.Wy)݊ib&dZv2u=ۀp{kr|_{">)^:ޟi%"|-8^E3-vxM SEI;B+_/ nt( +te򸢎bm{Dg`'rGߝm3@X}LrAkB(߇*8ˎ'x4]"" 2=EU9E +1Ƚ~1P{XiXtDϜElU#xY&WsSjHNeH#lT8u: 3Dm2ǹvܲ`tB᳌bq~ >*ƹC{(&~\E"n-&P:̶`m)vAg\5+>:6S$c |@Wdk")bXwH(Ѓ?'+`ۀ}[q]k>Q˗ߵ|Mh;A2Ē,կmצq+!=GyIElL5V((*M_֧qT'OQOe=sSœ*ӤpbNs*lNB9>_n$s*/sN<"MӮ&MP9̙dyLڜNOL׍J_ ;}Xc`GL LMIj6gw6H`. +@=kݳ=kݹavٝf&eb9~ 4.:u5 &[qqY^U}b`!:ê5GMWCI`~`&G.3h.y$nUѾ@81gѠ]낉;vKl㡴6ƅo8E\zE^u׾r)Z׿/+rVRY@%o[kWx\*kAoMҁ N`~tՕ"W5|`w5?VLu(}/3A F _(K_G7۞}+!\u5o.iI?ǨcͿ7)jJJ)O~T6}r6₀B]rhPP_ZyL:ɻVt6c"43\:ۀ$6( !r7[ɴv"7 m3RelD'K-¶\:]k3&`l:jG,FVԎqncOOQCjBf+z_kbi?en9.qe 'sOV|YV{yp;t4 ;Jc̥XF' qlο%q'L'(|Q yrkrηm~1)X +'ih=;il!_kZǷfNOMLi݋XQ$ wI1(eyi(YYf %qUהX8.b.*tpR)M`NfE2`p&~Ue,:]v줳!5*"2RO-^j|/SpMh G~!|!̷*lkEG5SW8,ӑD43X袾B,saHa3 ^6&9U\h;>>'9`}Xik$?1҇LF^yz~"'RԖ+Fh ;)`Em=/icw<beȷ4'[h-ƛBC0* }U`EϹkm|-_lN?]?ma/8eޚe`wr=#)~=_%ֲ/ՖQ<+/Tqm[QO@),ͪ?M3DUj|eZ7V_*Rٺj+THR +]-bf_yR_V4 dkO*#mM wIT3͹jP5\grImj_mb[xzZ'e:YFۮ:Դ~uZ,lUMnT@#)7z;vTf~̎ +SQzbGUeG_Wljl[ڶl[jm-f[%,e5_ih%OiPڥNXJ;s٫U\oioG6S$S|#BطDVD ƾݎaط</}O?^}+nqo}}DٷI`Ӏ7zA|h9uF}k3nQm7?<  XF}pW>rtiq{>YӝԂ?ԞaGi7;y{~2)2B{>,_$sEk&hE+鑴3ʁRW%XrJr\yqN$}'0M 7~fk~ .`T~&FcWKL%qt=U$sV~<_uQwxA^h/vxuV]xΞ{J휞zbe2q#͍aоHMJxG?3/w1kF1NHSNgũip^]q44 wGz`^/sQJ/FGʬ݂~VɐJx"h%prkR: \M̄|"yP\I1nUpM](ha#Mn(An[/d<趄v@MDPt gb-v;EGDYf=iAk9dᰦ3~[5kM3m5NL;M|YU&@ 3)E)PWgr:")X=[䗦ݨqڞ7:;:/˞ gڙmdIฑDq3C +gh33&\s3yy˧hOvRr~x^az%KJJF~UI"Oj &H=J_ƞqX +NC4)de"9_-H]3N){WO+[T`GVEHr< mr<[1Y2Vb!ь:,&re +h);r+vbX&[x֓R9>[\!„0fWE?p*ťy)Yaq+|S6m9bqJ->OXZd9 -@9/\4 5I(Wzϫm_ߦ|o`$m|Wp5 FBT.s`Ty'\)*"*]ʠų?YΰCp`Gs+ W~!0=>&eM3땮5.=HIlKl]1niwuOR 7|ȈÏ'8ˌ& 7v8k@4wlA`J>αnkelct#e=qO9_`nXo>& LE |\EEn؄pG8K;b_\_Ye8J"5oXS@x CP7KӜ.S#T#8DJo0ѸtVkV +>AU֖wzo l b +3;&cU!U_vVۇ81{\ +L >^!\MvPc QVtx],{ p#/莲@2c~O87,Zթl{y#?og)Q]02&{^h (8=8}4_ ݤye%D'òuk[`2Ӽ{ZSq9#,8֯A>;Cu޾Kd 0qmu +~FCs& >JG]3\gqN+x$afJ[7V gؑQU"9S0>2i C>-B}~)oQB,B[9L;WI~7Y/~#JW1|N*_%;@*Fas'l^kN(I:@IcC/U`!?g6:MR68Cs/,rn |,Qf X"g:5>w^6pØp+5<Ҹꛧ2ƲWx@STYhtl~"{B|ŵyP.)qīb~ag;[*0'D⼾#y'#0̫iR!O dV@hB} ,̴(C٢VEE_F +2}GhQ:jt~$]AXc3!췲~@hl^uouoy )+uyxuvQ@eģ8O\xm'#TPl{yԻ.D'LߥkN> +x\g)Y 7c81qojl A=Ӑi+ń>r/S'cDP8fpϸLeOMxr; @π1UP!u䡿nUBi/{~_u{/h1Yp^M% ~%0jyEv]Z2S-߯eLpJkޮ f~x'wMHa3yme,Kxg0S#勖yolxFŹ s".l~'h{n*\ vV<ȪE,*ߙW 'QK͢y^z2 A8@dn <]%v]{F{<7\Q&oi@F=~DRXWdL=q`糶l~>00vTc&68WƍUG&T^WfpbQ%3 }RoE<" +wI;G| 0C;2nwN=E۶G{+\;3܋!ve A"`EC0#)~;Ahym-`ˋX=ZyL""J96LT8قt KzJj$\.\1Pd+u!͍VTZ=Uf@qY5$&Rܯ+_a-CSSzuYC`T-Ԍ|;rrؿzeOd萅iHξ p}; ݱ*E'QȢ;&qJ&&8,WXIP.mx88R(<Ak6(5˩Ox _=r~:y2O_v +f*wAP:oQUiw +SOLsVY+) b:ugodÍ.3,&;5~ +E;NqejJPE8Ț$NFg1U0 +*Iw_,3\=S1+?J%{x+-BVthT]j BaZ6<-C5͒OZʧc*r򩃒b;/SkTd6-gMqiʙ:iϵ@O\͐0l{-Le=w77Dd$sǃkeiq~tFQ-t~L*.Ǭǜk[dhYpVݤ6!lVqLdsA +* ^N䮅-jTOLg/;/Κ\k\3_P^"d!z*Kgc;.mqJU1@9R KP+OXM^C54|pjGԤV4*_.A)On:_8d]Ǭh +g9>[/?dj,Wѫ ZHcT.<5-4#cT5|rbׇVSl~[׻ +^b+Aw+A+Lc\p=><}8P +pm,$zWU]aHT VXE34am[ +4r*| kϊ!S0Pc&f8qQȦ%PB(} iH(Q(w=A ŹPeѶXuմ)b2e2Sȕ/"9mq ~\Ft]a=>3pW-R?9_C +V÷p@13(;JBty&=- q"=`^^J +ߊsc)l}P +P@0 +n!I.8,z$c ;G'+$ŪI =Vh"ϯGbA +vN#0ݖr= +FZ)|mF}M8ϾNbD~cKU/|sV\FV llwGd,Cq}/ sԆ394WiXtgaݕYo(P R TB8S Q f)ܩ{1ycT~gJ)Lk7Ɇz +h{w_!(S&}YBC'nZ|eSxgݼ~p,~!{7J߃~t s6֓3]JrI 5R|+v~gOW^ѝȻGBs)Haw ++p>Lȓ)P'eZ)5kXrD=dWJ 7.=Oi*B:ӘTwyn \|h},uP{Mؔ/nҨw|<.+ _,$wn{7|'DhʑD}!Id`p%ϊ^c"λ\D2}{gƧf0=v+Cm܈[Tcǔ]zszNs; (H1Hg37_h gw<`H*! )x]-|D+6f'Md֟+*~[Z|OywY&]Pbz^Jw,ҷNy8G+ú܎ +Y6&V/C&R~ id&ACxBtA&m^ +N,* +BtB=7m*N)"K^qʷq|WT>wCuSށe|,uGqx+1IС}pz-,y=<{DBJIfWv @_َQ@& Hп +._q/M)7 +$nwl^ss8UCgcA]Eଉ,_1B3'ln|`ffE>nroYW'ݿ1"z`ƍ1rQX7@#ǃ/ߧ*U2oz 4t^5$:Lܸb-$ϻ mcTr&B͸ ߙzˏ w-rb MM2Ԇ]So|ϲm痝ڇ~[|bA=F-#q<w:b&p﮳m#hW5[:e +v!fxW\TO2vdm}辍(ypk[2$aol/sib?&s?YneT:xx ;3eBЬ,qAV$Sl*ux~N*ne_Zަ/#*+n +_GUІp '.+aM.Bw0Xh9}X QѬ~x[po =vpH#ַbޏ5k8p e-^J;p(cgxn$tܦq4=I66$uHS!N%=Jk4 ;>v$ a5=9upœqPINw4 #;Uz:@\S7zJVnlRINU9K[@cMlzM~K}U{cox,wq?vJL({8b@*q5u/|_ysYk8G޲/!z}VNpޮXsʔw@ACnܖߩ%5\v6dr$gK9Pب2_.t볥d'J\ДYvTyig!Ԭ[”hL?hz+S>~$:ss:|vT,`n|Y|_C=ŭL㱧/#_[_a>tĵ)V8cE`$31oq'U~uL^f{;yTuA!̕¼p?_rC+á6a1ϾRPہkM%DŽ!uYq㔵}}P*DڣJ{eF|Tad]#m-]D+_VwvUJǮO椆`dNzJa/F%f`K!K lQ]vevQ^We}ς%x"vF#+̳'5uaǔ]Gi3}eVՎ!ZvZ՞|KuY1t./F`HgPz8\zxMXxLʖ_ eTBe4-u(ϳ} &g{?rN6@O(+jZk,ط>&٫=sZ{ 3[~luCqr5P >܍ww/ݠxw6Q޼9v\(X iZ&gƀ%w[oi_ԞL'631UصohߩK9b]TZb|=2 X[%Ea"SVOu㞠^K[C&D`xP`A +̝grlς+eNkre9U A7}$kˍoKժ,-xsL`JMd 6dͮWd1×pە*JIga]OŻ2}b)h5qzgU@9˼:h}Eɖ`/ =|%VBx3ぷf&`&RQ?]&鵼+#afCm|o?*s; ~ܷF لe&eܝe}k[83 xs60:?õ` dUll$!RUY-j+.U +#fҧS.|+uO半K`O? y&yx?)WXέY;Ϗ>/\DtSr*췚_voX_sh3m(+v/Ε9{̕{^KwcΝM 7\*]?qkwGr{BK~0'(}ZII|9Wl$y ]ޟvS߷-yG7f{w,f>v͜; <+/"M Vr'R֕A;%27_OeNQ[O/EEf]8*d9?\f䷳uįq''&0vkI%]ٱ\<&3S]%WM8>wFwp@[/g d=kvqBtIYtOS jVXbk Z4\2@C_^Ȥ{L[9B+&t +&ZzrIǸk~ޏb'lė3wYUޱ%ZV +";6GASWkܜl5qȂڒ2wROa,d\|.=IoJ=|Y_!p9IQ}RfTs'g*m-zӽ+C__y6Jljrj\ Cn@T0,vW?5š@Lrh7󑢢eЏ"uEHJݩ9|kz{nu08e+y sM^>j| qDV~ԐV$8 w$b3ۉƇoi9?=WQs]'݄;Ħ8Џ =ooǜ}r%iegY%J acV~[։LӨm8Ӷ:jC"b[|'d]P5y[t]O|:=ZJ {݉[%kN'r'FlԐꇿĬwAh,ߏcIHR ! +ypjPJWd=HPh;=jg6j6yW()<#!on?epG4҈83pඦ 0\?Q6[-qtqi.䲯cu Ͻu1a\'Ϣ2FAFIl +.iЃ +$Q,A)Hod^>Ɨ0+u"E^ D{GyrBDK*mw^%;)lfǣ $tFBghrf!*N wn0M6 #5ߚu# +}*(k-rEEĈ_<$=Ζ ' ?rTRz6 bDwћͶ ?l5͛6.E))W+ oFb 袓_8czbgxx ! !7җ\t> +\sG9IJ8Jp˗pR?z@D1$`SR5(GAVJN/se1&7~K^tf&8\dwq5[ +2g ?%&vq!sS~;*]# XGqr:sxq{H}n&DMSg(PS%2u{9Ԡv1$=<~aәxPPR16Ӗgi!!d/K!h-ks' pz D sR(0(ժ6TМEP12mg'Jg Ǎ ΁;2vz;&zoEǿ.9R.BIpPa//#T& +|jR``@g2B +0"ʼd5k9צ)E¶ys[1a(<\nVJzw~6 QA޼]Ug>:+ +_g_,][o%㷣!5wA2uҏLL`@"[2bZJ_l:ij(0Z?eiYg"8O gk|sbQ,4Xa* +5sh~b#P"S9jH5F]_+(=8؆NeFujD`շ8U *Iv䄬tZE +37rH5\bYe~]pWnڮZ}yN& \ _%uRdCwn5j^dS;9w,ocsD;调nv'o{bw[7@d xU)?6\_t 2YO4dLԭ5k^[_u~yϭ=unaC>%otkufSYtk& akccÂun>DsQ{VoWyhs5m췆~֣~:%RCyE|xwDTJ7qR{ o0#51j<7~1x 9zj}f>5#I3QN7]iQmF3ЌiF2q6"Y +) #l&w!DMछ¸p%#k\@Ljru܍~;brV'rj~Lz;gxXiy",OQo-vQm#@.4y\;sHf4bg0nW#"wM+[@ExG^fsX m1s߃KaK i(=LGP}A{g,;EY}ίVW`P!&^96i*+^Nȴ.A_&Qbǀ[. b&@7s]u+nQ|bNDJ2bųK5`dP]l.,֊*Љp8N6G"ΠmY5k%h]! $ WcbplvHoHL]}#}jVaѼc>p ooVOxLa[Lu|>u + "ݦS\9“~w Tk'MLO*1NP,>XADr-J}k#T1,Ͱf%r%b"U `&.!棡ߩCNni܏U1^.3;q+[)uYL)m#8+6СG1|4d躮isz\R%^/2in![1 D BӪӪ$+8k0y^"`Elrp0{+]-*YGx)b[X44Ghq#߃F$}`0 wCUx<$"$i$X0YrtF_H4NJ=n)9 RFqJBdh:\PЍO'DR'jVV,=9X+]2t+k2h=oz8K(MKsK}VбR +[Di.vM zF%ɃVGDAOSG+;^ve1ʻ$?K6ywy>m5ؚgiJ JƗ ZQd〔\ilb׺<zO_DTQVgDewbVE&_[Яi\ƘhXs+ cEA_+c  +Lc7ұv8s?iY11a31May䘘fXc0:[נSxӤK&eiHmJN7!rӧlVg7`-Ċg5=~3fl7ͤrf"1.+jG'5= +CX5 3Z8>ldMHr@ ΀b~<}C~ Oc:l'(%ݨ[F63n*f3vg3N0F)MqtEd1Poϧ1R8F+3} jz^ -s,A_52ҼX {z-}(}-Jsݦ$K6Ꮿt1SX>RN'*Ngۅ'l؆!}H|`!؈Vx޴m|ybV]#\װf٤h0&Ym/"9g{oz +?l>@K<̡z||`2߳=S>)(q"q4{j'?}gS>ތO(g|y8|Y(׿8Uڒg'?D>ԣ "05X4Pc23>NQL]S1|h*(SBzJ&}IaƁwOuT<-<I)"/p.KVI,a)ؤ(v*I:d >佞gJe .vXBYhvmn/s,Na$j׋ێu9Jt?L$c^\Q/Fb##f$řY\PNH5\RA~? +%2dmSoq-u4썣-Y :)_rPTܧ8ŕvpSZx+KlghaVdšuXZAz%յʰZvTF]ͳr$Y`l<*.8+(ɪXg%M1;Y.mfm&am2kWt!kL8b_TY1?3հ~45m7-yΒoɷS΄e>%?tc9]7Pȫ.Z~KmNZ,,tx3 %mR{ojz:x\vw2(=iIi2!'b^Pkf<&6ioC=,ydyvZm=LL%8w಑k}LZYM*|7rL'PL8 bH6{+3騙26"n9iơXfSV`FTIMi=;eMm?޹t45Bl^tt"h*[QSD{j;\h{wKyϭ%5}xk[yR *u\& ;`ڼsIӢR7"K|Ei XQK+=H~:SnSuUM!FQ?z;`41i3}ez:5E ܴtLңVrw@)X^{wƝe뜮R*hPN+oo"V \"3;T1BiYZBcݓs鬫%?RZ[[nw#ɡ^ږ7roω!aZ +\aä9 _2*4Vi,\q^i؎g] ֕`p"G}TN=gAd| ÓCf2p>&iXlB'( +H3'fD]aw=l?Eŝ,~=2j:B{b|5ŝn񼮞9&q<‰>NHՇxxBYO +<GeOIo4ABHHYDRrcqozxqg|\%{s ٓ["y 9~\*mh⻱# +*-c)ڊQ3Xu4*(*'nz +T!pP{8)_`UVX|u1()/7xO|Qx%[2ϜC;K9U[Bw2W/s4t6uUi7 +7BK6DYR6P Dh˹ĞѝJSRsW$<# Ë{k%)rbrbh~}_"S2*geSW_WTȴ˘P/z37Uɜ#tO_lz;S3͛Dg`2y*=RvQ՘꠽\[ Tm:Siة4o1씘ۅ[ dxKbSDh܅m8y+wVIga< = X)q#FwㆶA,pe>_n̎vlcdx# R1}B.S$T +k3Hl4P;_QM%Lc4I-ۓG㌹^wG9S-8z[:Fc>{Qy*E%Yf=,X&NySaH7C,Q[%>G2*%>K,S۔:%>O,TJ,U8&*|VE<[LfGR݉@۽lAZ? }gLdxF?oN\`71b3RWJ)U%!c/:?9*U@C,NvBz STϷ2Gblg/aӜBrۭdJ͒.S* YE' ޢ:);kT3&)Zä$ũbʁ#TMge嬽n%89qus~5tA{e|8 R^7Q#n6NA0L93Bh,-SZƀdl(b(EZӧ\!CnH/&"Lz )^1t{ː^m{6Y(GIM\VYU V}7yhd'bs Z/*t]SںrrEST.&ZavS_gG\)j;7aޔlx#*Y ̆Oxf7(@EPQɃ$jD${1ó|s lf&Zp'; MX^$2lflK-e&[A 棅HʫfKS&R>-@E13!Ќe+v1z8mħ?>~=ӫCvV~!B[ Ù&ER,il&+2:f $ΉO$a~k/ ,=|cLi3vg >Όwvph/ l^\FiyDnkA0w* +qoH ꕻ~ݢ2H4qUe9 +A.qGKoO [-a7dKOŝ[?h6AJ+6% UoO9P7cJ,fOƇ*2/\;+K3yCrgp%̡1C6_$>YS.rǣ'j +>"*`w*ŋqv2r޲Ʒ 7U*M89Av,eJpUև>I3֏뱪3އo]Đ X}M|ޭ`vdhnVxhA2 )H/T32M]/uok\ ضuZ _궵 f<DP[,ܤiVmf%^Agd\r rń02*].(~`w))sWf> ijk7A"WtoI^T1cOy䞰{ lc$B2A}ڢkztu6l&JMD6f/Aޤְ`iYEMPf#\2n%o D[:O>{ǧ;9^y:3!B2GNt&Y[Wn1ٞmNv$3'G\7cF6?6[y}㣯|ߌیq7/k3kk޴ W^ᙒojwž:<ez,jTnVҸN iɖ5B8 I<Ȓ>HP?f'c3 +`/qLKB,a-nx>1XfH,!$čS 7U^h ZUy XR,bmZʥ~`ITVr6s~jj6ʵ/I(XfGޓ[mF"خ"dEbdEȊ"=c6p{VFY/,V&FV"{[V\6t"$̮(vԗMLUE!kp3 kkaSKg^HIvz7'}O?&X~&H=WDs;F&gY9i@V**|ۅF,nƩ,of57\us})]y\Pǰå'G\#ͺP1͌,x5J|Y8)btْ!e%&ebP&6>5L.߃cUK-ޜо |Z h,Qms,*f:t͉_2]lOW,kZGrk;b\U:ׇf%78{YM:rXi -r9redj@`& cR;۴nC S}ǵ~ݒFEeb˟vhN3qH D[aNUI恎] lIl^k$ R\_Cݜc{wz~} /ā8pqv4 NI3vqw2{6(^=lx=|f$DS.x2aG[aL#SIbĢl,$3{F;d;qkJ*YU4jI۠ R>)Ob&sba|zު rg2\zhB S74/fϴQpA.ǽ^9Af!\X49#nBdcNՉՅ#FVkKc'?5cGF>!d4/ÂxyF;7MQ1r'B{rv͇i_g, +7Gw;paGXW䳈]]{VW7a;`X$~60rSHe >kpBaq5>k k!'|{3+~Z9} 6]KUiSN_X(C{Z=|32Iji%tsř7ꔵ:5~*H$;d@JPA]!K]w^F\o"zfx_E]4+pQlޗk6clOma[νSn;9i6=< `_0Gl4t 5)o쫂('Dމ'FiQqUE۳8@L@fNv{O@9&v܀(RS,6RMoglԶ[ :gŽygܲ0oM1}\<o3yFς[ClȺXg6>t|+s^{]{|·fۧUF@6#>exw੶a=IZJ#,i6uJ+ iAFRqqQvwxRKψ2ռǮ~H9_9-(za^R Jm <`0, +~9, ( S3:.C_i߽y3wkguk֯ܭD'nMMnkz2;~aﶪ[6.BK 9߹gG>qxAr 7awf[^-oo`y!3vw pX~fq~xsOl+,&jL533y&i[fK&7 1+ KIXY~3 +fhFEcJw2#z5?a@X_}Bu2ٶ1t3lI̯Tc0 v ixGğ #1S}Oͩmt$ɑk S;z?V1ogu$Y7lV[uTȥ}ca팣[5ty=G.h+c5`b=ә$>F&'gG̼Y~]<}޿~1;9q |IK<;s18"R{E[ D^o(=YI"K+l$B=\,=[G^zUJ! WY5,,&)Ѕ_ClS78LJ!JVh_$[ݷo{/IkmEc_<Ad͗Rq'Hl +!K'C땘F Rj259(W%v.r^Pn;1}J!@D9mƔlVI0̺bDD&$EΪR;5l ;G5n n.(Ma-["AR帝@ũa$ r_J1_9-n [jnT"-#88$]۾RTר޲e֝,h9-xm(D{SQr%f*I\Hd%:JR*)*գ~CeST^T`;#6̧4ڶŸ ,VO)h/up1,M+ $ 6ϷVl FJ~8 A~Ҷ 7}( Pm-m\w)rY>+&e"dȅ͂%|&,븲/ZneI*8F"W4h}d@bGf쪗̬p'AAT?)V Lh/2`yBNЯA 0V{:^V{k4Pʖ 'R>{!FY؂dO E,<=wQAڨU0rU+Ҋ;tXdp\US`[hڎ/qHmW5jgeu$Sۮ-Q&=#ls=}^F^.-4l5ȷ}t$þdR|.RgmQ]L@* SJqE.?3i4,㣻e9*޶lQc膯\4h]K\T"ކ5=15vJ m*}+@Fb"r^{iiDI=L ] mb7qNM<%ߦ ZVnjV$vה6M5D/`wBX|X2~d!wb-dn|7!n::u-/ JiF}|#U갯x5JwT[S$=h3[53nw +ETYi}c= mi.,Yp+tOknTGp<>1A&FzݡRn~"}P [fZsڋŠ*h ƻųjZ2¹j8ڟhPt1 FYwd׿d(s~l~IQd+ NL"Oz>'zi!QܢQKORˑk#ڶ\!f҉xý7$ZX;. h{x`#Z1JfT]!W (LT+ր8:Z_05% !\fx7=03%Y])@O{"Щc ;sȽ҉d {l NSy[8E~x<v=wZl\Z;&lp.laHstMD$ 1s3 _q}Š7a 8 f >2W5 l(|lwoت?CCkT֧X7kic?3KO4H7] +Jv[VE`bۯ-Q8m[_Į03Ӳ-:tZZhK9vff9$jCdΏF?FnX1 i6@FG6˞ 洱.7n_!7^޵zX;Xnj sϳt̔U d~?,Kn ,458« `?n uYߣo9`ٰM{jQϋ2Q芙h\c+kS٢{w\;EFᩴjٮ!O?ʼy5*\PÎyS{hL`A=e<)^OKdn5ʈѱS[cw&ry DP{ļʤB &-KdZ#KgDTh5y y'D~LYo#C9d j #%82Z +skϫͩ0[7l +\(2$5wtuxX&}rb=~,V10t,F}8gW|!`~4 ?lo]|8ڜdK;19g2Jp=}glKnfgws4=/*w`NMt&lMQ;̐5UyԫhbDB>\/>?w]Gi5n=pssvn׮%YI{J _w3~}+/+*Io"IOBw!N.Վ LNXh;Ya, m-{ܹ#=bqiPkNbQNI:B EimRi4X.,Ɍ) r픭Xf';I~}{Zt`HA{$ć7a^L*r_rY$") OLrQ. +9n[{ݐVϦo4j2bILt&WeKLQGvF##9x7^珔'񚫂Ƨ)X*yu{ %>QUgxn!SoM5JZvt-c.a@_G vܢf* '9\[F-v]ڲ]%6Z"f!A +3)ΘH!=Ν?yɽ瞿yss<'"ɈtRrΙM{7s-HlA#:%b@x^3|_D󏨴x!pmGd q^u$1Upa;@px[0"8D_WcʫNAthcC͠1ȩr(ā|w R\Sl^3*jlDgv.~b?1p]Ng@rSIw~f^%V8WcJiz}BIpcws=[UOrnr-nO tih&Z@,LbF4DF@3WZh"ADaF-Srd^7 uTdceMRθtQ+-⎱ă~۾V_WߣO %9IuK̸ŕjW<> ZL-Iό>]@#Z z;ou\ho ~݈/4J_ԕs7bb",> lQG{|HOGR][!N~Za_m,}*;ml>"ĵ2 +(iBR1tzŲ/gI[w&9`+Ez~Ex?Qv҈QM/Bry[~?/Y3!TX ֻr3\U^hЖK,4@u͋c<+e*@; .(:#Ե8%[;{oMxkk}[0'̲W4ƀ%OUL$##Kq}izi?jE&Ľmx>͹N;wRj-vFŨjgVlbe89i)g 8x~N0,yFlF;VSF#!4NL% "@uhq(Q: ś,Z +I>s +>ͭm H/L\BES6r6:&@;?`Ƹfųy'ݧ l ݪO҈Y=] 0bE8;?Qѡ?c;{4Wtv w/@zGjGK}`;&W/ = >`+(Ս# +?(FBogK+}ApWkS|73^7T'Pִk¹7Ya.!rNI]9ũŽ>]G:w#[Ĕ5##6< ׬2 H3{͐v~J6sOv*!NNΓx[QЫN debae@CF`BfݳS1N#9A[a߁_}[D$iήl 1 4zat^VF@&z8ܑl?sa8N@nbG.qEal݃8"a*A\qLedo(+j9ŋ89JQjcB<`6q]Akvo4.?| x<]96tлS.jȤ_>p + ++xe2 +ȋV;+1!o@N8Oڳ۲G=@pЭzߟQJZ;#cq(ϕGWNU.-J7zȠ?VtpHwk i8ǿ -ә?;^ BC˯zNo onɪka'6\Xk%;(:U/VC-V!Y `tqik?]E*_Rzh.ן.4 Bْn0nҰ_|ެc̒ؑiǽ̭\w#ec5wH8ZQ;8\n\Yef@]uv`yy*G2b8`*=e8O' 1ܱ t2`eY3Ukōrb幢<_J`%|mm<z7 xyU6vedd =D-[ ^MZW~쫏um3+*ʣxAWdw}2">u/d!OwtB8[4a5o2̒V1R7: SK/A`ҍ֋b$O†-' ?!~v^%h ,7!d nڛn ס n +Tp {)u eTA +Q[)$R4h0H>g_+3ȳ [VY%#yP 3gm}<4 ǿFEՂq4b<*z(y5]^y-zvTO^3P +>jȚOX hnOLܟ=\~ӛ1y`՟vqzKJbuI |G))WI[b7O֕`!nr֕LEP3ۧS`VqT7~ D/wp87(~آ> yRA菅In hH)C#~wheۿ&a?-6oc%L+aX ʏe9b5H6`$t$ԧ٣4{18 +-#)kp\yK.t4ݒkwqs 7o7 I.Ah _4,Cs1fƏjYSMZPa~9 ~x.}BPH߿;<μP;ŷe D9ׅr=pR7-SzJYPg_UetCaǞ7k*FEiN:U`fAX|7uTM;CY 9D9}Ȋ~'19-I(B!I=OJ"Y _cz{0xbDI/7y(L!]$>/PYbUn|1[}y"y"ocGd)h' $?Eo*8274]|,3'EWNԙ@vPuÅv2g Gg(_UǸ g3(zkD36 +Ϡv,mo/\{qPs邢Wbi9U;!(s ok5l)Ei/n G'״r:wF+wFp];#~Hc'#]itDzj`(7"]kr"=5y5Yy% I];,t_=A |opBb֣#_{h|Ѥ7/gSb]UiZ@ܗx3`_9Q9}:+}a>@DhjEOZuFD>=BbY~?Eoo1qc`,YNo~,p36!~~UNUs; J+j~VHȁa NtvWGӾwЧF^Cύp_=uzܳC(є?@˲uw-I:.yY.nq써3~ +cGQ,Y{vu.zΚ~?%?WH'SA="C~c!afa?\~l2k5*.QFmCgQI04M3́L;v7!&P~$q'R3eT~3wp{Q ,Ɵ%Peʙ^@q 3U\KqQ>0pE׬s;f]tzG~TZH ak2ge'= `|WOolGa490Q:o5e5+((Vb8?,-,B/l ۧ%K|m0ioNVhbך O3̒&AxLYs&MT0_ptx?qIh;+o=k ۩%5Iy rk&d&֎1ĸ񝌨-z}[n腿Y1kW4dxݑZm Uȵe|ĕK5]̇Bt=vU_++Mz/S> Em0_tThY-PͻDaR 12REsa2}4]}8FMs!;e*66ɒg +dsʱ昕IoA\Dms/&Wy;MbB:7 +*qz>30I isZΑ=#o] ]&6=Fsd w؊2Tm)1S8iM?Jυzs9zpJר5!6ꯅ,c!T~JV\2fk1^6Hj}J }mgÀs_\`MxE([$23k&Yitοk0E.+!I!#VuǴ÷xj/P:zzp:ƪTC:}h(:}W}ooo^n:ƿ+$&7O1^ BduNX1(|4Ÿ!f(8I3w $溦x{%GI4ΓO\r␩u:&VhL˃'38 +[0Nř.ǸjXb~])Ƞwp{D5u۱b,Jzq0W W:Vb%B ׎S+X{V%UQҸ8iõ&7\tēǓH8k~mgW[=kzZPTBym#gzT\y&ʇ) ^O6WqM葫uZm36ϹFq*4?e|c9ۑ9ef@45ypB i{uɉ.;wD +Ynɲ/>*]2?F/fgvF@Dh!V!j xralG)RTyDK[I]h!TyB "$QP$8g^=aɮ-g/&'5AEW8WzjH75/oM~JhH_*7w'hgaBp(*Nd)lO}|=ߠ 7dk) |x6 -Sx{# 4P4  +^+ok/<\vonut`qsR- ̵to]I!+\az}i 97)aalV׏ar!ϟrk*B1Sq2Ö%FF'.N1ejaq-A lNxnL'Ž^sr>ޤ2;֠];,<;7 9ilIw3$)׎).ߐ́H4=q}%}ۉ u[ +sn_rI- )[JĆ#>ZJ-kg<"?тO԰v|un!Isaµ?WO쯘a Ja2{1wWElp1tCЈ' +ЈSwnY,[aDI:Iل?ߢɜ7keӷO6::"zqO^bGPILD$ٴ$]z^a_ؒf^BVLb괌N;iL1LOq:d2.iwR}ז괃E]N;j{iӝiW럴Bo:-RQ22S=|"fiT4u-iߟKΝc4)tSNΝNOuN1;N2͝#:6괬Y:6k23:Өi0ɗiݣ鴱"I6-NuM3i'zd P/RBk-NOvB~~ xnJuZ촛q0wm: Tׅ6Ko*U]O}v=mR @$\tKRLX +qr6I+Ȓ2[4dzQ5WQ@y~* jbMzA' q6Sc0y [;JAH;!:ع:i2$C!Qmz]4hэx)sH3x9Ī~+@!E~NtTD۔I`JD;KqkLĮ>GVeMM+kR8ZiI>ST +-И^{DLu~7Id:Bg=gTFKbub@nܻ!lwtzuca2e}P48}o^)I׃Oo'>nǟb\fQCx$!~ms|DQx[I?1BG?lv0po¿o ohXyۂ|mUew7[8{8>~|ݪ +?7v[8+mr_C^1TmsӼoG x2mx7ڌȏ.{y72 +ll?Aǚ9L\[VւVK?)2LA8q'1,! +قV< 2۳&^Lzb QIv=g26P`rA:y~9<>; +~0t JFMde5ĥ+e\PfNAF.@RɊ*h˾j~tTdO/=3Ô7v{03C~X g\s vwɫtULU\e᎕gU߸k, MVvf<0RRn H+=ڦe%6OHʬy> )Yal{V{ձ?CyCT\LrCW,YC iD^B<4diZ<#:3u#%VL#%% .Vzb%E58<3\r*d`yed;Hy~ ƾ!q^?̪2}j<-ғ #FJ] ϩʇ߹햏og☊s^gn\Ǥ;KL,쩥oyz4,ϒvz_Y#K;chm}"PS9D@狁:J GՐòܦ?Ƌ}>wxs`75q+wE^o"(]kCөhw ݸKk]cnzH ;6N"pK;6E2U(Z0IbnTz|ͽwș/"mCF#ZkZ`4֊[J1?R}قZ#."!rR;^h<>oU=ގw;C=GQg~,5y!̾D?zs4nēMۉb FѐWlA0o4EY؎.MJ?'}¿w# +}0 ʿTә$:҆시kB|o%2+%\0gY:=``.# O B0* + |yҕ?U0^dU1̸{Aҷ'{4 sm4&&tZw "Nl~p{=qGmOE]cc]vVRJ1NG5p+wq'\{ [taX//UG:}͉N uKY4Ş9kB?`v.1o2~}'gvΨ-q7雿}s+%o7}%雿͌ރO.E߬Uq۬pN]?#sSr_} +JߛU;!rlCW+[T򥂿%ϯC +klp-yم;(~p3~_'̑+&q04Rw<lzG昧)232#Tǔ` C{]vjUFMX(#yVZdNm2ct܏1j|F#-{սkίuc\<4mߞWoz[oO/:WЗe+}iP_rK޻4*'i#~V3OC'ZaQ6!u%_IkqI4U._DK-Kl<7|.:STK~dž7S;T6Թk_B` +]7DX7jz+M\RED ?şG9]l7axXj֝,&.I="]:_x9n_.]]o ztĹt{ H ce6񌌑lj_Fk'ofGQu35,f(6H\-/KX +£g#`p<1 H@uJK ;'uGD;6 bcc/b5 ce/1=ݏ4 fVz'L65AXs;JCl:@Lvq^e; +i.1Ͱ7'\m^b \8aV nV-,AďyzJIA}pgOmc>_T*3pRWG~ +`G`͌`"asSئv"֓jd%3 /P<֟e~Fn>Qx@EK:F,M'Y&#Ǵntf8mIGE u#~uMHMľ/d Yi|Da-fځBЛ?~Q'kcֻCIe=uSyXiAE2@ EPE7#QƳ^:vҺL@d fĚߖ :`?wX!c^OWb(S<94g'gj4HmJЌ'(Is@$?O'{&QQ*w4Y7 =;\ H^R okChs0=%JyP㳹!Kz[ACb=OPC,ٳ>MxvxYzZK=5&SAy)&"Q{6#yО9:gC3 Dn_IWAL `^Gx<2]/]x +HU-='JziNOeQJq,C d`peNk"5x8#T{ +Uag6B2Bl}_\+m7I78q2a#Ӊ.FK!Quru zЃ~`؊7F}+ڿoߝ__im<潇ҕsmm}_ NQrPw|tn2[ SB/_W˕6V|ru\ig}Jm ^{y>=.*i_Ow_yxq9R +,.H{wB<»Tͺmv6(|CK*WyT}ƴ@z [w5gv PAR'*w'qѧK-c0o,[n"-K&L S yMW4j9.ѫ5HNzk :{]-I"3}i) .ywM(0x"6屧~B啟ƀrނZއ2RxY{z$?G0'h"/GݱIjXP;6 JSO_;Ɠ|2]͛ͽ?f?y)cK)⟧"@ ?!+,땸hLyfa6{mA︿؇ 'Rri_7s Oڼ?z2qWq_B= +~_-TEÆ Ŗލfqz#W=8 ++T˷ G?9~*x?wd¶2;A2:,D n>% * +ڗ?|om$ +&$FcbDNGH?ķg$VheE 35gS"at Z6;3?=OɱZ:!AQ?8ߨ[X43)<j%f#D 5 +1T%m-jBjw#/>ƕMj $Q*u .H\<`5Y>$U+=gH~FdC!59E. zg' x!aܚU1SlA>Zmx;yʔ$\[g8m>|Yի9^ +6B-ŘФVhD*G1fcd]2(_Ɋ"C9A!;iQGwA3V +dCL+"l/aƯ ƑR1z;AzlD26k +f<<-jh5nGHX6nq2Am6M;jvvRx0F#̜T6c5Hᨒ]ҬhiBم1k:,^]5i%E4'U猑G#*;/aIp1+k2sܗ^-I_ D1( ﭑV}Z<^)]'r {= k}NڋGkBBɨ &gxoKU IE`ERn;Ěy@=jY#פk]n}?ƞQ%jm4j&م*z++EW"&Tk鞻0KzT3j*t7?C3Lp&z*qjFR '09H7R1%=4#D^(=2=A5 (&3 eP r0'p3Ta݃|jՋLʩr&:|^z~Mi gF6P/|k22y Vؙ;%q+YѯEk_6m=7h>qF1\M&Py1>ٷ_:tEMaۄW:{o"e~Iz6Yڭi87)bԈgVLx<8ih5"{%VTIse^؞KkXCS,IhbulAݓbéf(VL:< &Y~T3ԯaoǛ+1H QNK\_KM?Oa$ã,pG#0OmR`vXS{ +c]Q1}a >t[; +%瑠|*M7[3?u᧮rX@ +P%hǁ ܉< 9(yD,1>t~>"7) vC*)ۇZ7 u!wp֘jRԆ!hjUo&Z OsZژMEZP~f'B{ڊ3mEZ1DT-듕R{_5lJz в0ald)TU`:7RfSVHܳ@XQW՟bl:* 8*D L&->dј V O29ФAnva[6hf")67M;y R2Csq og;.35^074/ =Yͬ2q^dVժAB0EqvbЈ;U/s1D՝I `sXH?@a+*cmWUT +Cm(SHp-_~4Nj(FaZTZT? 796d6:LZ\- `t#\/!+l2`v*:Ȼs* 2"d4ȀIB?3_t}iz*T_LYI,m8/L꼥 E= +-9[t-^I^;~Niސȥ-`Slawʖ_2n*W 1)=umZ5G4Xlf]Л +Z6pQObf0q t!= 1>pB,%!(\LJ'IT8u1PH*AgwjژA}B$_x+}SoCɚ+VؘX| É?De:N*Vf4b=}HDaU5zQ2sTEU +פƶ9)QeXdjGv, M8`19 QG/JwB:!G?s;5u.;]ᨻ.9jtUYMA-diY@#UԽ5ɫ )W=ERn_h|@n ҉1QJɒmb |?_. &4vsfIk^[?Vpȧ7E&t%O *w&QrՠQ*W ԠjRp0qdA]W1& yN2YEMD%?Q.?A&].[m+76JLM"PXB1e0fSW '|Z/3ű$%DY-l#[4ݻC7s!zi 4J ia: ak̵!ZB7=XM8?%2շ0韇3Žۓpp~M2Sb stAIC|I4^D +B||`B!F}GBmOqZ|}~[ 60SbSU1%#_@qN7J7HsvQiST{Lqs:G #/{5>dkLޕkJ_2W2g\Sµ\B7Cs[u?;T\@ށ gfrNqxSq0*&3긥lv@/9 .ܒ:D)\GUf ef8(>daPޅً o4h?u $;`ȣ Gw) "}O9{sKg`&"g`=}wr/f*i1O||)H$Bc& ɱEȜFhϠCwpN`ϊбi070cʏ cw!}n,  !r6iaƛ] 8[RK) gj8 +g2b|Z5$\)"9 L};8nuIVn䇹)yE[(3;8 P^y +{'^ݨpHgpK. _q! XtXbHEwA(Q gc2dA;R)p]Lً )5R6,puJ &%I) cG800]a~MQ@QRCo?g+H{bJ"} t gD{_8{0)p1isRi! [&pqxoQ| ީICIզa\!Kuɧʧ7i\ZVB+̺Zi+$JXJ?Cl}8%TIV~NL*37x+ /#3q)bL偳> Y5<9asrb.μ8{g yٗ yZYn~2? +"$\+5ǬގM&BלyKȳbK}~_[f;|Y++3ȴ\0 *-'n;ݚvHO'rH,:Sie7m0:4. pǥ[;:2?(x w>na:@5℻a>)wpgXLjc]KܱTl6yU:w#0NcAkMPճ/tnF nIFōK7xbGsW= hzc!G#gGc~68sH/1 cxD3[0i*sV̻(~X^PKŰn-)s4q -Yb&D;`W4ܒ%jԾi=u'^|Y\"V@q\5_Yˬ@;sES/} l#ךTtB6;{/8nJIx(Ej?›9${"*l2,`){MP JهJ0-F/4qri7[b<ɦ\)R&eZjl J"@mI-P2w8\*g- Y:DnAmj@ +Q.($8 7$9}崁/cHCD9zoHa]$IJvȢ%M⥾"( }]7[X ) O^8IE/(B$"ċI6#^Cx'K>cS"(nKE*&^Dȥ" NƋ8^l?nf[%nEt("C *$!JYйH8HBHJȒf<(COPi77^@@O$P8ߚ)OKµ46x-4?SLɳiаAC@ RN4O4l8>2<7amM S>ܼFwI@ 1+ +M/ ޑfCpU6~ů  Ih9asQW48nRiА IRАX9ѩ`bJB.ZFe rmBdI`~B|0r #,-K2 T-@X># 51=># f + V@kSz+  Q7u+I +.a $0U!%i +dI@X}< Su!@P*u&s*DrBwu!"t@A)@o)%)@Dmv<v3H 4L kakt@^ĀC5e*L"5L#}K†DL@YbgR%6BϳBb)pq ˮe9 1 '. !~%@Au: ix VZZ^ lt..E *͎5NƱW m<* V^ZQ Lp-.<< ++KwgG8ȏ8Y9H_GP4Ψ|3iJʈ+t t%H + i,Ϫ:+[IgJ#AW?YһDڞPz2W47Ae+KX--$ diCaÓxRYKq8Kc @a8PU M\:.Yu9AwWJq?t񟣭@n%$F&6ix u[EEl׃^^fy~a$[JSUj. eUoIT (^%ߖ)VRgpDp!R%LGԙI ɷBQ^UTBGTQ[jERT1,%&*ЎYp0)0~VWXAe{6!ܽg)؋*,4z~^QC Iv +&?yտFMŠ7Ha 3SZQ +eXo-KLVՂyTKueb6 9ǣ*oUUX厔64[k*i<0h2.] UaBV;8]Ek! z Gx|CJbGϥSJy8xњ  ~|o?zJ\Kh+sYe/ Ƃ&~܀ϓF){kv{v q{v_bx؊ͻE+_ǦChNv%QYs,~cb 3g}\P1E ͭ &xs72T"N6nj呁4|VnhZbHB"|KƦYqn] +>os&Ԍ{ZZ*" EICpp_ RXZ!ߟ:]:~V9B]tAEY $&ؠ2:jiE%BGnӢV1 C6 ޴/behb8?]))رAR-F+xԍ [uSZ iX}DA|D~Rk5d +J,149+;3G!}6MZx'zZy LH[i8 IVW;C;'O[he:0A;Jk s V>1a= 7%aT@HL)H8 q^lHARx +n2!!FAp=О*6u: Hb_&1w1)֓X6K˓%%8DC5~vƿ=[. 莔[Y/plU5<7r-Uyk +d2et8hSt㏃֧0^[^k_^[>ݩ5 @. ׶/u \pځ{5q&מMkw%.R}r6֯ixnŭ׆ux푋㵿:R;yH;>2.ݘ2=+R&ya֐Dj84Pʹ?vc^Zy`k灵~vg}v{jh_iE3/,狐i,-nU-W)EKpٕTfyEg1QĵHoK딞žV9nēFjωsajO<"IZ=dẗz~Sm\7}&n.?̊ /&q[d +9 +M {&3lgK+fQx*OrWf=3ൖWf''.Rg?%~Ix$H?TR?[;59  aSs ̓+Giϛ(ѩx- Z4e}Jyp"ZFڏ[7"DZcfmVP{dRJ8tI؆3Ӎ~9Y)lEk)[Mex9KWϙ-K!6ssMNIG!pª1f&&:wF\)_0;O.9HEY l2(+Y4\Wb/dy90Mz26y`?%8^GP~iP6sڨ ,hUY=iڪ\*\]a]M +ZLqAUf[Xe7y,νl|ùKĀ_U|!jYlUK,ƯT hYh0 \ƅZ 4,*wK[ȌwLYhyRa+=Np:4ŵ'?a-Zt1 + U'?%n +t.wV5eh' }O[^D!ˇ>-OAr2L9s#\<)ooNi{6Y}8s #}go~,{?(ޙfug$C_;T0:t} PUkѹ )j9Z:ԫ6sf굛E2f^;GSn~ENy5ýUKϒJe +YTI;x{%m~1;2x =om0<=lM櫽H 2;F]_C^tA%/~{ `[sDK.ơWs=Qs\-o^#<-$^e|! HٗOTHp d@-6m-wN޸ +v_0AȿK:T\AB1wݢ̅6bL@2:(y7 +zD=o -u*l+j5o0 /*ZF'_Inc45nq fg|8 lfM(J(sd +#Tʨx20GR=PUbPOp$q(?HR zǪ#wzi#1('PaLBQ헷&F~/Vqa8iqUkA@0}DIfXghըlLHJ|kcZ$6!ق!ޤ%C(6s|aZB}F F_Ep0ځQ)- +&MǯFxȿH -T&d$>m!sLNn +L[h¸zUT.`))hHFۨH֡#_&ҟ h6wnJM4HדH}!o* 2~-q82J҅ _8ϼo ǟ{HȉȊ-:SB "NLDt[Ep`NMmD\:9ʲcFZ6-%)FHWB0+`9)`X۱`4 +.E Xv=T‡~OezwhkH4 +pPB𔠿Ʃlb#p'5[Pj%*=8HЁL N׎/e 4;j +bYV}pX;S5ƻē,`ErL.1@=OSS9HfXB<4q4Q;,d f ? N PTHkKh|ƳO+P2[tn)4_'qDmp0px|%Hem~!A)*˒+qb@?1P<責TK_Ғ@ybGm0i`~| 01, b)E:2Z,CDi] PM>rk=hL4~ժwZ1>u}!ޖav e>LE{țEF[M _|stYNR}~Z;bv r#]_d#.؈=,ף\Uj>*8=V; Rjv~p;2[`:ɞB^/ʑM#DIjjeFup NN{ZB( ' Egx:)ԍc,on_~|+iONx'`LҦP!*s&dbvR*j8ͮ#=d}%/lJڟ3I]~ŰAIOM r J"rAd~Μ^[tX5P fiNVT%ǚSb>L+S IK&gYB2:(WD7dROR.j}p+1+>8#F'H!5J l$ґ&|f5 ~R1zAna)]ĦHA!RO0%10)j 2hqbچcȹ{;M02:7ٴmxmQGYΊIr( :~PC,T`R +NGQjooxcȿE{֞I;pN i[(OJJ$}5 wTaoФis27[D Fg1 u+6frѫE2޶Gل@z5_j6˪5 +]YԾWY;Ibsc_ĚXH#10Ȋ +[?d]}2>:3Tnd"+#6.56f"ݨA hEK4l*~TM'3܍jK+ׄm/L&? Oܚh~MF/5}>;"'¤mE[XwUZP *}Op)iŃ^ fG ! >f8d dRI5-$O߶IV{0SHc@~Փa"ElöGe[I n1~T!ӊUo TazwT6p*F8hQh%CP~&lQrR7< > W]ORyL)XS)(]|ϙRpX~%/r; ȿ%22r*c?>]T NtyOnH?|oY&#H+1hZL0b6m!j`R 8M"e6GM=P#A6×ԑmY,V 'flv 0ͼ8 qMM)ZM)S$Yj&gf(w0hva{E/UCg) YN5Idih,"1g-DNgI=lro}vrkiřUOzPCY k+ctmA yxǂQ8r^p5csvv*\ټ1 &5m& Aߐ7n Sga*:v?'ܵ>AO/-_7 [9unIa*xߎp}Rr=\.gz`E_B!?zb&Ϊf~1 7(f ҞIjtmA8B/jm:n @6f7@WW>׬9kxmU8kCKkB6O̧7x/ Q5+:eS\ŕ&n ]A]3ןEG!36 +zW) +Joptn<݋ vJOl!oGy4baczYL] yo y`daOhYCڽK;Y\c2/SrOY\oisPTuD.zq.{?/ gKz".amS(Qe7ɑ ^n^=O0Q"ulmolz_-@p !g1R8!ָp6!b^9~'~wEҸȺv,_HY :+ ٢NcihԂuFsѲz5a%%Byr~rl S)o@i@Em*CnIgFmgTk}hNOax?J +RX0)C|S ق/&}WvlAiHg# D1`Mq# +X``bKfI6&xlpg;plA.<+Aч Q9wf ~q ȫoH$A(0]M./ƹA v%VzfKָؕ>bo, +Pz'R>tgFq< Ƹrc\9JR @Br=gֆk&zCU +;MŠh3IER۠d;MXG4%(ȾIHcLfB,W2`’Az7y}7)y o29J,C&j了YXhebq@@t,^z<TS֧r)UzTad V׉`ApBlہh&hiu/sRucEX2E/qxx\F +o}/Szk,ˎG96K.0rspA/hmr@x0)+г& V2}㚠g{#6ަ?έ!$pK + ZW w.-CT/$NhpWKjzgX** +;E=z,9v!7?hHOh=`95;0X]7z Sx.Bʑ@8Uѵa& +!FV{pucuG"{qYي%wAxb6`VohT%ь']یǤs4r87[rifi`T!g X6pzYth"͞( zvTpCoP3!CxE 鄌<ӷ(aBL#HwSݦ:()ߦ! "tKzm:+BN=r{D +GnG=r"탬X&FL\`{2:bTY`;Sw?GAIn!D +܍|N6>"ZUug9q:Z<@N|[%@ +avhUu,op""8)l A8Ό~&|^|m?#yD$1BSPS$0#/ zJB`1WM_MubC6Yc1 :/uNzntJO#fu1?cط +˹L>7b`z-؊_A[B=-LU47 3ޙ̈H7Zx\CH|0g +jzF(8JAhk~&|M bbřQ9r, } +pGQ=qs)6_7¸e0=84! % |[VvՇ3V4 Z᪏ )?8Psn J'6,mQHFݺFtY"5Q)]Ds0̶HB[%'Hҙ)VSpߚHpJS#jB[o,"Aݦ" P4#D&0o9JfFЈ;l +(Jf\ɨA =4!^HAoj`c +HHaZwSAiK$,1 " ުG !7UJrUF:.!>oK\u&?G'im + Bh'MHL!!f)O7R8!#͚/YO\ +nm&N _o%|}1{X-BdiJzKT)躁~ +]OA$,ߕExOkzBvzkv_oEפ0M6l]()蚓kRt#kkT4QUbt=D׾9VtPN:D_!Z&ܟ w-)̻|j6&u1lhB{&6qm5WJgHB87Cz!c[þ1!\ǟC"8x{6*je^=[`roM$oj! "@k&fA6FF4YLd$> ـI 4ihj3m[Rݴ̺삗h-IVQČh}аU~×zi O1Pz\uhLU(s1mKY. H# Ԗ0Ҵ--zi۽0ʔ^i^'b +ZLz2/.݋υfsmSBc.'*!5yକ)GEW<<|hG}kH/033?^::WZLG!d3i"J: +sH=ٰ)_#>4*rjf%* G}<lrm??=2Ed:pO`D;O.U#0ef(2*'9m +fa,y|ูp<5\634dЍ0m,gk/nl9)z@/(sw[b>&h2roS;6SKM$*bڟZ-x5iP< v 7឵26Tf ]$TVZ"咖*c׾8  MtM uMy:JHAD̝FԲA 9}We;J5@X ]SZ;{zծuACwiex+mTG_tfGm/Վ=%QmFz-3 sKp7qȦ,SUìBOtgL1Bp["r9EdI%m{d߱ !SuV_|/1G5O:ȕ5[`;4!4hDy hp &1MM)3p6sԾ4J2+v P];yWLDRӠ8s-((ިl` eL`lGm?cv{XJrMLW|oӏ/97¶GL# + +Y- (] ʀ;Ԉj-mq#.%'SKjJeᣙ0GQbh OǣO$`el6zTw(4\WW?'dN䎁FL +]¢2ULf/_7\.p4C;.THW Tq^5W,6C (.8+ݹ9]#yF E0'xtch%y!0Odb7P8{߁q_L*А:F;K:C u,!܃+݃УpKg/ {xC-O)@m=$|Bg8ï5DSƱƊ; +aJB`/D,w, О=Go;k-`^Ff'WSz,TZU|I멼 [H_zSS]G_O]zDz*)juSQM.\h=sM_Opz*Tr7JT+^OGֿ^-t攟@3Y&lW)Tby۔9nGqLl~ؿse(I]}b%}O^ +11\M68aLSĖ撴)xe +m/!:;MM׽.uʙ%Ra'=k/`C|F䊖st= ^oG~.eY-Բ[@c `ԐDߊj%J;rq?)o2%-+-|K29F[N(<}=Ic㬺HEsC;dዣB^%H*Ni]2~y  '2e ]JWK2~l.$ o.+k1:Ηt]i_S.ڈl.}Ĺ]=x? ?DmHw7LNdM+u{Bk7ږÄG-6n gd!0_^w2/WQi NeژA`,]0in|U| +-T1zW#]KE,]' y\[{8NgkoіBt6r ˫2*:؏ig Ԉ\]ZpϽo\.m;'KgES?aBAþ#[AP=8ߜ:ݼ7Qb14ഏHfEJm;+±e|֥z{{퇵2<79 'UZ'M &V)@1 +?Tjc ߉ 'K:Q-a Y8Yح +Aj +ĀJK +,˥٧ +^LĠIA~87A}D6tk;MTEcK+>Τo[FvCEu\z&Mt| 1 ]kZِyA+IYDig&gas*?#9"tgTBr}%n+Mn&s5|?fHضŏoo!(CVoe~)Z4ښS}e66VBrg7 2YDfh!T:hR%A/Q6doA:`WUWcE;ONhWcy3nYfuc[4R:{ L<<̜诌u@?BV"bCIs~r膄^V[KKAYb؛#seM:%. xHHˉI4;O3ӎCc|}CT'E {ySo<ÅvS!ΠvNuKxrʇ[ٻ t՝jm~t>S(#IΈ"'Add?O&2'jG-5q)Qm&ؔE ;rȝ`=;ӂi۟d]j6RJ$"ZVP7^gn/M}E^"ON&=kpzp$g"}"$#_HvC! K҅xINbt/K*8Yf!h0ү?Ԗwze 5QPJۚ҆z>L.;[>9hXw^yCByK&st~:WCyc e Ost)䛔<9X=Q [9:Fl򏗘+In{*FWC\Ʋ?KX }R&L sc6x2SCP4?drI\4[TwAqB^H`(?Wz1lV5lK 'DpLTO8GUGkD ~y9K?9GPv Jxҝ'@ s[@0O:t)J/W.!ҍϙ"ȉLl?dtJd8)L"/3#;\RXF"Z0"HJ4PXYgW|Db)bCٻ~ZO Vd؏XIIձpAuMtԔ3<[͈.R<. HQX[Ѧ ܭ +RM\8cЋ3dG̐\xx` wYy#~5ػ(;-ҝG銩LL&Zw<ʘc1YNLI5%e!{=ijɡSOBgHd*8<:A%!!jNվAALNI`:ndAow}.- ͂3 =Jl|1~7c1c^[>Gœj>Ƌ?Xcxc|#s628R(\κw"qj4ik~۷O۱\mz #t m[$m(n'[w'_޵)F?S7^<ާ(hGH͝v6Fк'm]mnTr|@%ˡrjP9_}TQ9'oNxt*#'Q9F4*G️fr|t*y*'4+canr6:/D砰tj肹e:Gӏ"͎1atY׃ 0o&:xEL_)TC~x +2cuDe?s27t>~NJ>ݭ9c"F;R#ؽ/a[X~xxf &{a3n؟i9\¢ooi '#ci H 3z7  d_q>ȋ|ZuxƬdfB +']߂y`+dRYwϢWv2K9N'w9At!mD qy2M ղH#@-/S5O/bWZ*U`r7J2}ʦ`cLD"Jȟq飅SءBw4{O/N>.>!T1$(x{dn0"bۑAߵnbнMnVٛVawB9Ct4D쐴\p~ dZq.>ܑ@ +IƏcE]uޤm] #@(Er׈,O'GaJGgdR +Uάp6Ҍ{>K\"?3Ar`3(_R!^<O䏚5v3ha5xΔ /яED-eϗ21__q7=WVgyp(l[TX^lƲˎ)jm>㼳pFN\E+rNH5+4=Mm.?gUBɗb#-\\#dU;N1R$9;.6ۆ\RtIt0$޳G2S>4> { 48ZmG.]%,V~5Exǁ3A & A=gC{ͯmђnA<{p"i@E=>ԶS$'⠅>BuqzPE䃾>-pVEM/yϾB4ؘ^H8^/Hi;e^?99GS!弋qM ;/Mڭ2ui7" 'h~eq3bp?)oK|jߢaؐ77ui(d`%#>Bf͌䅸vƐxg) b°-38K)D}hGA.?1bbӖѩ15WN/c +Mvc~g2'heW9hrvf9]өw^l3_ 5ށ"Tm[n-bcb'ܿGO?&k6~|L0#n7gͿygqKo?Ov6KU4Yo.SUeJ4jmͥ{t*ưґ^M!يs[EO +Wv}g12J,R͊Nh!eψˢ'-fJpzh6 sG&bHES.֠&'ukdVCZ64v0өc]yA81 d@,URV6%F'|b~;m18ff(КP\[8`Q J +p!GT)ˊjh& +yBЖL)ϭl>ҔuBo3(xw_|8BBe);8ZJWOLŮُ=>!JsH)g)}Ľ* +]D]dx$ڤ7"9B㩫q˟FI`H +=MW3F}aO2yEك[ +nu+k-])0ݎ*Y8f/i|%ZTў(^H{%T~: / ƗÍo8>eve>(n2 +%e_gC ;1*:*r "er{㫊+7>7%)ЄJnh`qzA.L^q.q,nPwxtob0ށb.lD6V>])Ai%ݨӺ6J>+,J ,^*zԭIk[YNwq":}VBA=WszdG`7-=廾 {~]Px aNla*"ǒkNCBhTWtH,hX.eXVѤs<*5Aat4l pQW`ABa`a`05.ۇjP w*)֡IYǥv2b5Z^:\I&5(ɗY㕼0`a! %(bZMY' *? rk2:(&$ʱ&\"U$NIis܂S PW!8L!+%F~*޺]G饈*NKqBMqVV.ժǴC¶Uƺj*U9lv_lY3k`w6w>ZgKi 0>=It@!>d'@I㔤x} +9$Fa֪\+uU1mF$ĤʃUd>Sp!QTFJE,N=(-" Fq4ENHI\ H:#+Ol4~VZ9" A/@ +`0Il^ū#Mt"GRiVqX"VY"Si@Nw1e}1 r P89|AY&j12JDaHM Pя-S&>^1ib۔".z"+m @qxl6pi%3$1 >8 J8tŢpދu%4ia^%> &rP +$~U, UڥqhBFlp<Ҷ5ӟΓm +Ai0r揮 HR:!Ed:ůbYqJۿM]?ԋ'#m8$Џ11jG2Uwy 6? ZJJPhI\̝c X: +SQ  )sֻ/Ru;P=BYz ~ h|\;=?NwWC̤ϊuq;)D"ce%A$H `!vJW5/AKf}1(Z2(sO>s%`J xs +'\qqR3ŊQD3]s+X 5F(?#tRp"rIGuҝwRjU`\(z.!L%T.A, >W>&[ 2ѣ mrN(4(,y9 x*Y5Of?ceQ%^mt9D0]P"<˲XGOh4y2? Gx&6a B2VajȒjWZpKDӑ~epX)i'l\!.&`VncߎʑT;|>K]Sv9ShBR:d +=DpF*j< +jWohc>5RpAmyxdg&@-kzWIȖ[#8"Nqb"JYspM]qiP܉ xS@q6= x:!@T3 ȈK/{7 ͖y^o``㠳aaתjUu1ZU j-$ڜ/pmbzjw6NipJkcɠpA D@0(zkծ"( zZp|V"yjPڨhюWAg9?n9UBuP&0e1EM4gmB/$nh6 + ge nv8a +1IKh4CiJ{ȻZa ȳ<Ҫ! ɫ-P S=6huNyIxDˉB^B@RgRx?㖷T> 2P4jJҀ؀& P +~&h$4/o1{(}VcpVS~7=lqѱփ'bv3bo@s݇HQ&r+Cw3F,K'44qi|{Re1n4:%q'fzP 늴Q'>z~M*%j0xZ]0;qq^axbX&[h{ 8~@c: &T'WLH:] <hBm0DE !j ې[̡(̍!#qDcj4 fk=xn(C)"C ^TUo<:֑hǞqrJbE0FI2}(HꟴM4urmGcu@nM򥤡)Ų+3?0`fˎb ! Hz>g4v{<_gkC>$yㅇ]HEηo!8؜-:qk Åƙ7l7:N/0{`Lx' $n"<M뚎;`[Tj_XcYw}sK 0=ux/!4[v,ƍ;Gx4Qcฯ?`{<Ш&SEwI&0W/S͡a(+|t+ˌWOοq]-aZid:l4ɋeCZiK2Jf|I>͐|{"0MU9_ uo.%mĊ$⯵FvV)?MsoR,t:diD;'9؞EMGUO_b;\vaiJ/ϿIBCSsӫjkva_iK͇s&/k@ypPub,t.`s!;CȮ|M (2[>r +{yL5BVrḀ +z?}Ӻ̍:Vt f_չ^jziXu;oک}67yHA +۲[^/}54n|b:-2ЧEa8>oRN19 +hZZxqIj+72JSͷOTv6WBbuΧ<}u|-pEo53y.p7lYU 1%dV{9m KN/t)BG[H'lF+vV=ɪ7v舺zm/Rھ۶JdgK:2! ɷAwcEW J_#+g N aCwDXW #/h +-&Aw4BPWC0)T&z?ڲ΃[D`O=&i8f' oR '>MX%8s!Qhm4*,*DUǾ=SoS4܅`,5&E("8F +~ +:UHU XR/]TuX"(x)ޟNrʚ` ܗ+)gL5@fR (:|y?1^|@dCas}ʞ_&"p/j3=LEtD?cTa287+䪍;x DjIz"bx^k~}%ܸ [}30jW-[XLL~]W?k?f1"ћ5EDV"F:[o*uh( H',)5tK|*+mx4mm7`@ID ZMG [GILO"h1FB+D\]*q6&4] ;q8+;@ݗH?vpQ +Ct>?GH|Uoj6ėNZцU'qI0r&Ez.BFm80?׺BKo0R$iEB $HNB6%.%m`͵{^2i*~Rܩ[Rxg rttӜ=u +n<+k$ 5qղZ=P,:Jd[Aw3SU9K䗁0jgc|6 nŢM/ɫ|ک\1˴ԦcoY_ ]` !K}MY:C%/qO32i|}#|TPtiP^rSxeO 4)u`ΞvU=MzpAY5G}MbG?[4'IsKQ'GG9+F dk'~2ɝ=u#HhD /o&U-`=p5 !JX@4knkͬmk-L6X@Nx +>U/ӆ._f +0%Kz"̼re[dVJ4ib]!qdW.O-~0S9 )oЦwdgm[o'$ je>!o_ +Fitd_Gb,%MT.@k{Llx8I`!Bt9͟ez,v#7fKu__ߵU/ugGKwELtXNUcֶ4_;VFCZ' ۫&[|˱G78īI +oxA?M= =Dz`KT1("x“"xHX8U8T[Jbx 0 `!ʉݮ&_TAFζ#.@~c ,QS.׳]6IDc[qGR$:b}*DЇߏf]v~ ORFZy,> I DOHR=3!y`(´+OGH"[#^>q`2#AeL;ԨMlmFL"0L|Ь5F9;Ф=az3-=gb-:3O['o@GaAOX]n{໗X2gjaCD~?!A9{c^|w+ >iBMdb٨#q'4`[;zGmvڅ%78xUOpYJƝzH|WG'>KL?7]ki ha޽*Y)Cn>I^\OƮ;#p (ܠ/"bhQѢoM`r=oIb#O7Ak& u_7P>v( +ad1P(Nk^b23nR???UmZ#?F-]5{!}!!(*%O$]t$>K[qѝӐF +VtJ]FM0|o:yef 7w2%S 59_<:r^ʋ}N/k"π;5y^\qԇE~, 18`[1sհhV`晖yshaWYv&1vxCK+tmK(S*d`{~l*U+GC+[R7ɿqf~dKcK +;9 SÛ7KKך޽ݭ]_cC~k,xY¬!)u‡Qq4 +P|zBu OHa_u +K}yO`]u~Ӽ_$Ņ++4^y [|T*X U>=WrC!Mڹmc3mLe0b.SCعRe08|땕`m+4u#'?nr]4a.b\$ZwBmtm{KREڛk'.M~/:.uZi2?Zu9͑_aFqf%E8L/iAHmȵbrjAj=̞0i][zFF\6n$.׳wsLozI "T#|ZaqZ_x5wAh5T$fB E`6N9"]> +/JhFu߅w4vE]mώ^ۛXC%#;~>^^Z-A@E.^ҀRC|[ .l}ۿ[ 6vPS7jko\].{xpNwzUK>Z `^jDŽԛG?%;pNxߩ?@Oj K̿v!{%ڙo Z6n€ڛt9C˕~; +!q[,NӧgKhQ[oad:7U7SQxJsf3Y2p@$""Å  C֑:d.'&Kr%._Kj>4ԋT8?-PN$Fn#Jy*b!lxȉ['ZPn*ԯ! ۵)Cq|Μ>qpuKUд#^ς/uG*e^v8?tqpB?^!W^gTXb]Gz-cB}JT$ێY=bݧ9w&ݬVݸ+~ptց568A?NJY ߰vtzqD(W!V -5cbٚKdZw#ģg~k$m>ЌPW_ J8d5EDTa,vޯB_.ZBҧ thp.aخ$Odf;{ٕmw 2z3ϥ/Fuɘ,Ho)G$nźͺ_oY|Y+D[! 7[i3AijqHsUQQVQj;G%t Tҋ;_c!;{V2 rPe-ax˓ ,qCw ~V.Ze02gڍ!M6 b),4;q'7|ls,yҺtzcެ~>!7k;uݒ-H؆8-h"cn3(=~I,>j!ȏA A=@Goc{pv ІTb ]mv C9Z׎MKM|>u01Bu0TۘV8q*۸|:0[/U\/8`:7 4TZ@*5kt> )HQ$㏹v%-C&RWI "6?`{FR;TՖi5k#"&0ClI +1H㉑Fe8 ĪcX"dK5]>Zo9&|}ff̣J̭wxcgm1<F8ρ'RjC+QMڈModOr86hGiWu-t.{Mt-]|F_Sn֒C{y)JH1&pmg#oq(C<:Z@)r5Jk;w'GM3`6<y*sy?h|G&Jف@Q|ltnN"F? `<׵ 7=sLj׺-N/|a ƹy]m \HRϺ; ‰cT=xBz17YjW c6`j7V/ib%>YJJ9fwiC."9.)K"@h Vw q$89y5<M]џgqjRl@z/A= +yCr>E .&g p/4qʿ~l_P CQQ? B8`z{6зΙcle$8C,O$v{ylE&v俕>>}T@LjY\K^ۯ6PG8 O JcB@/Cvr]N +? =7 +~sH*bk)>3F#.j1?$G'Vg 0gV0d@\@d4&vnN /.֝'xgͼ8@ى3rrM>"6J0@? aq=YY6ƪnɃX҇}+|1l1N~ 磤2Z` ֢g~N%stz +ױ +ҡ|@]<(4o +4F1VZa$V=؞ݱE dt[ʟ> zNs yL$#sY4ot6HG:;m@ߵJSS!A_N9[_m'闫qAP:s8z,NzqTvӟK nmܪ7/!ZֳiXJk[V̹9ot.Ŀfe;Dӄw7'un#vznN:Qv|_&wa +8Zr0!SCY,]]=P$ץzb`ͲZ߁U/fz__9lJn1T"Ҽ+hT w+ +1vz¶|.ꮽB> _8_4NFܢOtȻh/Wj(NDv{NWZJ/.!zpAkrjYbP82v k㨘?L$ÖgʄMt[O˧8TG"W!E:`Kq4Otu}iH? +8yM'g|Ӂ(輕|̤wօYfEH tUGpG#K.<.CN3L`Lc[&ii[|PkbD=uY!WMgkn= vOƑ? p(ɂxPX0 fr;U&ǦIXT\τѧsX UykrUgF]!`H+ ])Y Q6*.(c1)\vxGKã c} +ȇuY$]IbԀ~99C`MlLp5L~uZ wIqU2NMuLjrw䨱&Č礷F>[uTTD bUɡ\sf׬L_=U!J_.Ӈ?X! +BnĿBNJ7U~5jB*Tu#$TgՈ.rs{LJKG?}#G +mD> OrI+{*#{ +v欃R.9 RuU |RD]݊,ǹ_~3x[WJ~nvz`L$xZv>~r4ۊ5degD]% zd2k[59 \G u߰ЬX& T\G39KIkќW;m,Vv+70O^tsu6OP}F=0W8#vp,yduju ([WKKʓoh˩8ʅ8lw7 !CkECq8~{\zݯ5-79)ӟatE.d;V:j!LP5?~t{N2\: H6$;,+{ay>E-U}H%5KjD\rl C۷ӻ&I$rNnNhfHݘX3%VY(ڛ G߽'gPlIDvh&Ux-6^qo#9Jo<;v \\{<?mT'?&Oʁl.駿0_RDl>1I ]"0?Ŕs՝:s auk ߺ,yj?@4pbbୁ--gWsπ'4tsV۩o%b +9n $/1>4 +Tg$/g˕zd,镛62B۩NH --vJ|K *O.Ilg6*hx. +vWxܕXJg?T2T1%BB髎{w:tKH׏; C,dyM! YzX绻rDڠi4Y]-"o=mZroU {$C4.ƾ`[> q~ٮm|rk7>3ȴ=L~L}d|LpU"cdzتZF&H{Ӑx!%_ ̎>N[ڥ%O/&fM>?j$k"o$1 yڬڧEI`_AFL}5|_ӘN}\!ܪ $?3M7݂U?:Ÿ?ddw60' !֍4E/A2!ү ͆Hz@ +f QX-W& [tz|$| <ח!0}yDJBBZ8|RanýakeE`c36*a"߸9IXw@_BU#b(?ˇN/ /g;CzGwL:fQԜ@.e+Bi>C!0):QY `@8I'gT"!RmI̤ +z!X"La W_v'6B)oޚY=yH»G<wmN֛݆"'xHɈx-X1nP^)Cꦿy9#^8%f;ΛA`9S?8'#:˩.፱S!DޓʑF ,htoR{W# `g/nV 'eH +uu)<]{(!*U6uep5q^xV #7ƃ5m 3] Ҽr*s/x25IճLWfjH9!M?OdC'qvϢIP6qoΥTW3]v"e/+\E'djWĉg(_į +2yEqтxSXïƃWjqHn)d~6QxLbh|[cvl5z/eSk7 wrB|ۅ!.\</ e&KD&_V MIzZ/BT(O^Y\<@Nب#Yq\n}ӄfq2W+s;d+Jk!$T"yS37ިќOgYY{ѭh;g60 t)K2*8Wg KNjD,9·ts!cbNFs\q9~ 2{}!<&?)zv@_ Ԕ[B8*1tӋRo( +&u "~]+RVe'cT{4qmu Z|`2;x"t헵/ka@}˓!u+*O TŰ"z"ѡ@>L4KJx A4[\\MLbe,ep&)[=j_ [yL<цKM &2[LJFVNv6-~ A"Ulx>vj~Tm% E“gF^7.1䯝 +ALJO,1kWa.mb}x ok.6I_V*eTV=Fp4`(+z lqfe6Uf 0[H]DzaX R-AwŃ!$A_FpE1:j|tSp;9qxIߑ ^@^\J>[qީ%ܚ [̬+BY߽nyկaqB d^̷H?x4juРx3&pi u->i]>9+aE $<OGFi؜BgK+R:t̀t`<'dB֎d3ZVjrIIoH56~qMqRW⏜LɠꙐ/ѭnB@_;!`3n-@U7J6;4挱! Ygɉ?*ӆmWlY&ۖC-mׄ.|kgm ۾L6c6ԧPX콫qN +_/}^{w+m[] D3WxKr9E` +[Y gv)] +${}N`H}ﭴA82}knG}w}}ΰ4{m1 L.q˸#jL$ |"NIB6(X>:z@> \vw?i"X5%cwǿG. +qYkwbj pS) }ejyg*`m9GN([}u4si,'0uPI/}u)~;4N[y,ڡVvNCo+p9xw[ ,~GCۼh0Xzvw1ifS3(f#K5j|Kf8֦~=rB x@w+2 $2pi 6D<6*&P,#dN=`4< lm K<0 Z<\ZGT .d9!n Q:y?DJ +W lL6sM>f/IAd $icf0[lGr]D5%0hkThIf` W_֞5N 5ZU}ܨw14 7қP!u k uK?>}@e6Pa%Uh $6 W8V5PX놾f}Hx~c4]x59 X3$ɍ*cK#f0`}f FRDؚD0f q67pwŐھI/w6luIOيµx0UBX[YrRHdaꞴG;G<<-̼9w;߳[7>{{p0fUh7uypʹZxroV,$jipC-[)p2.&I`NC;$ЈgKb鬯nK`ĥ,.AhڝXFL];R/U |KB뤩@2ܐyvWHM;͟ƽH=@[^E#]P^lb)vIep`1O*s"d?0}569j 嬶5%JA1M[VfmfƯl=vZyAџW1_19H@Q|cv-[L42HV1YөPzt>?-o^ Mp~_CGIM7rfanpۧgQd&+:O-|dW=N]Z1U۩?F䃵fgyc@&O|4W|xcOtCy_:V:۲C2;8#}׎X9/hh(2jVY`_/#̣pZy#Xr¿ ~{=Gޚo~#j,\R.dC-Ցe+1Gd8w"DӾ$y 9DypZt1xY_ý5 :Ffa͑FLmy_oY9>?L;8 K3mv*j= //Oc[ +P:?5ka?#ɏQ*O4U{9,c!Vw5~6F}YÉe\=V>|p8)7˕nAZIi˝o`q5,?]ufqSJx;b>";`팁wX]oK{37_vgQփ;n+^RǿicƳjf>u|E0H(V@E,~(F/ԗw8*؊x/k@$S5%"Le;L76yf.mow^Gyסڮzv,Ff'ol$HoC@>|S:Gڭ󘱙#ܨ% +<~+U3K0esʳA|x Ӻo$G^2yUyҷdz WTtd4eCZ.gxތ|oy[.O|AG.4\Ŝ$9ZL`:A\$a1GAvT/+k +\1*Y*[X{e3I"U$, z1*7tX(/$0D 4bk%4\ư 6]Io?H)cTQ;Z@S(mlEGwFjnDjIe|?KsZU{~I%s-­vRUEJ8hoF\D} )AWh>O5MNİL6rZ$2O{<+^)>y,"qb}" m,tfDG'Vʠ(CbLa"&9O;]8(Qơ [!{/(4K4 R: }b6 2Fx}d"J^' FEēbCF8G"lp G G<E:6#l/+ &@d?c3=Cv&`)MQ4ˢa7,6"wE hX!d@p7AzrjQ5+"atoDFQ?Q?~'9xg .c&JWЯ?ͤ_FRi`A6$e`` gj`gҒUu +/N+FBL[ #<Ğ-x8M A[D:95{4Xb9 `Uj#2l00`HY 6,0 < 0O #>KxLV p$2S"1"]/3#ڳ/) %G`#%A`P;+16pB?5:|1ل7:qL)6qL)cJ])5O94>N喘"9F Bs!tX;l7;au70(68 4W9 6,86#pP@~41hIRe*, [ikvcrFo}J}oqOzbFh]bq!HæCi2G2hL3?ɚrG߼|}\fOKnWSOYv,ѰM"M>k&J]oL'4ӛcg~R8v})+ā6u  +/fGҸ}`˛8P&&B5| @ nuu47՛|@o(<(ޥ4_GÝʧ"Vx=[Vq:^\N`y%}&_vdӢ#6f, 7^[oE]VVr߷bq1ЋC]mof=7&&h uoN:Mxy'p35haMh4aL* U|y&Y<{&uut!Ol>P8:Jj>BҎ,7ǰE |t/bwL>چBYufI\ـY EĊFd n U!܍ TrK +lamTaeekX{ 7&@`S3vڵ<֎ @}IAK~Oޫ+5XkjPSj6Ki8󭘻 K $k^ \2%bl[|[հM6wY*\[V.#0f[a~爐[0T7zqznn>`ַO=E5T6=(ƙ aP.^VCw}S5.$; j֦Wj4.F> + yޘO}ia6qNKV2=žK=>6 +2k qByS9'k_'7Rp`>34$-d&ic˻FjWcDFS5?hSHdܽzDa4Ж=.h*im_#e?,OHc}An Ґk, + b_${' <`O@sڦF +fmVi*o.XaVc+ LN+1Heɓ2۵6N&ֺ]xH%*<2;7 v{{NDzp9®hoqdZe3ex@s[+^H<+OEVfN +}n6_@f}>n#B);p<*otN5$] f$.Lo0hpI“0)\jO¾o]oIl)Y@&֙>GB-41y5]/Fr"ZUi#?Giq9Zqup:q=ayE B~[N+ŷwl5 \Z jMf^A7}V%6m3 +gGN飤 +٣ DZrU:dET<8 ضoBUZ6_D4 s%kGXc< . иv@l.,X;4;veD` pu|ɹ"xO)E:}ffuk/Vl|Xa=у'rVQYH~XpFlഘ%8հ#[G0zݮ)V>sإAL,uyKǖs"zt"YCۙv!F` |;9'瀪6??v6 +6"&'nklX[p"U%v3gڂIwhpDV` +#Ŏ#  ز $2l|  ^SFɭ*&&Ź[irZ%eȗ+FA@a +(>ffhQE۱|")$UR.5K%P ~P,1T7|:XқkX2ʊͧlzc!dFu8h[Yf4ٗ[|`Sw>4il("USgt{>}@\$WK]+p#urbpa +Q19ڋfɓC 4-HxFj8XtBjV ibH'DZ/DO;Wx6VMTJ^҉UoЋEQ7+ r-xpE䶟 }ѷO8[雱Ţo\$mܟFtntt$jN!q g`'8oA27hFDC#p PI`ŕ.{M'H4^WW?Y +3huI +.f!P&(ߖcfoP3?dg4&QWŶfc)|;ҿ_BLJhe\uzϠ|Ol sMw?5OC2G/t_p +D?}Z4ihܲh_;Cwe{jO#A~CӸ;Ʀ䏚<;5vD䶷aUl+?#6xX"Vj$1}Lb7툇EXݧj!X79a:534\tLx*}8ezu"BΰUe~j|'2%8Ei]w}q_Y IWnJ|t:8BTSOFsS{Lo^nbz+ ;=@'|}ڑmyX3AcL=z +ۂ'?m7pLY{s&e)/}m6(}nF.F6cW2ָо'nc˶^2j 4qrSR&;TU{p|/ +pD}vgJ27CK:z[1;yK>=ϨgӐ*W78Y}#ǵP͔#)Nٿc`;acl ^)ˇ;l5:94)QIcF~0CLA Osq)l:w pbvN՟nupH.]w^>U{}\%XՋiq '|bC+`Cua2ڽBU vU{{I!JN ՕLrk7yfWN +8Wy`GY +y|m3]7Towr2 fzDuuHf܉Zí]("~0Ŵ3Yyy2yQ K [ +hKNx0b#jeDΦZia;;<v oݫ͇(_Z.`vN5IG0dIF- =HWYIMd`X"t ]^{e#'qw#y7wX]ƑMbAp:Cv#"hیQH?Q́ޮkǴ7 Z#ZA[K[ qtB>ѲOeoA O,$CE\_ ay7o֠DPy#ogc_{3C;;iȯC;U)!y3f$ARcK|6B(6@'0!+4ZW ]63I~,{"GcVɛ$}ՋSǷ9 t+^_QĻ/#il1Ic%kZAkSwuu\~eT {F}J p > ++yO+|(_B!8e#.K"eNH ;ꫭhdQ`,/pkDQau41FQUh2$Atϓ&:ѢCWzƚGZ \eNr)}z@uW5i ]Z3nۆQY؉:èSu6qVh;C_@\=>8EҜ_\"To! 3l VP 0$6[,vSS/3T,֎La$zanvPhu)HՔ^'<;:mKр +4WV,~'wB51\,\E?›NMJޖwHwNdBDQP먮~/]ԀPl"o,{02CJ9*>^%ز[%m,^)I/ q `!W&u,Ly?bHJ$.aXg5'x?RBm*#D8!!F+G.pn$ q\Zl6} 2a\yjW5a࿴U l`!bh\{"|F-iz,j,m%G_e29#3#NA9,=5?b_:$,8I($D%|2YyY>'/,Z8G.PE끤|!hZ27! ?TarPS%`, +Oۀm'qi1vkdkSӹ!8*;OwNYuP8'PBk=z.M T5Ce׏o:2t j]m7R.Qgvfgia!9kdiՂ~Fiijm$ҩޙbnMEN6l6̭c?Sk!klŞYѓ'&;:~ mi#ٓjj$2Z34h5(W<¨wһXtH_f>)ByBDyj(a+G1#[\Ǩˆ0uzsСYbꉶkia=<"bDS-,i\ƻgvs-ǵ3E8+8]YRS{/W~48Qܶpv#d`.uD6[H +ᯖ@6'p֨߱n7jdh!c@S7ޓfll0gį_Et%WVw9<"ۭ`v-~?7|ya߇'Cfՠj>o-Q/QHͧMڨ5K1aА3O"E^HXjtZs"2îL/VzCVM^RMQXj‹h)SvI!j.]x'Lå\Kxf_6lj]6on!yXu{ =*9ޑRzz%BO4&j!3eSoۭw7!~Om|?ScnbpR6(2_h/[U<Ǭwj/~X+YV6U q q\^X1uT6˰)RB|=E<Ͻ3k;1?BW4tә&t&mCybK3,B=LKvԵ [憎`5#dam.fʷd}3+NSd9(?ӬsWW^ +$3o3ꑊMt o6|0"VWREc&D-՟wES^ 6SdsZ-e2ZɒzibFTiRlU<[2Pbj%ѱ{x`{CL5-Һ}o6( (4T(c,j\ݗҘ0 m˸f]Yv;-1tۍHr9= +m֛M8t%2 SuX",1"JBa33-pLR߻5I}`X + *z?z$ [)$9r?N6(r1>:9M/B8TKI? 37Tg7Td77ʻ4Cn(5TY>/?%nKn ci7|ʛp>Vc+Z$z1[}ԟoѯOO5UաؐR2f6Ġ6~mr5v!;?_^z,<"Z(BgGy.s+ֺ^mrQf;f5YKh6ęWzX/k˒HAd7td_>tl~]̮n6Ta'w2nhWT<; ƿ6ȸ2ujV}-.Md7%hml^Ѩ\gx]۝jdr 2nxxőwGе-U slyUOa=/kC/\]K-Nw_rС+V鶖8/5ל1iޥjTʣ*i|YN<o{P蛛dV 6\0V[ Aidh¿WDD@^-qυ,@Bb.$/(iBOK]#إ鶕zz뽟XlѹI { +t6"1t>|F?yyH2?]d@6Z}TvOL՚ +j*vيreC3?.QUT7B༪D%^\0NlgQ+^Vp5Z٠lU޾DUbSwq HDZnϹzT7BziȒ'W'ydM?I< ˑ>Qt; ȁDtjN}SԮ&|T3ټV0;nA`s*ރ]VܱvmFݗ|>^SF !NxE:* /]ܻbaK}#OBdPntd6d#ze/!`|a$i[Ơ^y/צ=Խy=S9m܊ R?(V\E-zYKhq_;@;mI37sF T% Kz@A  sJ)ء[;Fkiz.|V?[&`px.<"_׮zy0nD޼gS;00 q2γ9QYWԸ0hs7 +xXY˃=zLo?O?Tx[>UΞwS_pp[wx/aWeO:C٠īiW捬kHޱ":x#"]ZG0+˝Ux~V42~hh-Ugdۨ긬92C` sH :JP/:! W%\G! J.Vbq<\u2L~g4@YfJ$!n [lQ{gn #: jjz*"dn޶%灶5PqF۹Wl a1xW)kee(ѓV_K{C`hJCBCh}'/ Dj&[Ww0ךPݦ4>&bEZyjVXBH#D[5g)D.p +3lc zo]O>6KCnֈ_Xzک[bk=jp.6 !fj @Vn&5pi|RLyYjB,O?>tmwn(n :%U\객a0F&=JX0ZBh| R!vK#,q'7*'9$Sk]Ϟ-wU/xlL+|F#.?lڂ2_ }s`?7PsQYe%*cBm/OuzLmT#]ۊEgTy?rĻ HNdO>FqDETp)kP5 xvA;$wAo@)j.J+rYgDv߿Չ>jz !F}ʻ\|!Do01u|?x#?~ORP| ,FP04aV.D$y,d˩Ѫ~dOڐ]ڙ5XRQb[-rQ[Q,CfOAӶw.QC:RD]=*!w4bk˒52xL]e>җf4gN˷T<œ?$6t0N^+t5DUoN]*o=d`337^+[ #Cٕ_6~6vUKq==ypDX[^3+[7v2x|<J/;3oք-COr"{VQCm +!Ԫ/ǟoImg>X;<_ ?VDm߻۵!3Q[U(U !qş#9b#Kh9-]bou@I/F^dh`3@㓓@H1y{>g75k@hav 5 ?{9Qp a.^#{q5S.瀳C}`$4,:Zm6Rw۲)awd]¿cwVY";WNg}#dUHj7Q9s'>l[ l(ai@aUU5;sѰ>|;%O3>H|֝,Aa%1sp .[G[K|Cyj4ÎČ6)A O7ZuO+[Fk8"?see0J[w֮_C^KVvm[Ҙ+Q%W>P?|\%k%M}⑕2YiSl +?m +sp5y s/YBuwӊJ%KT4|BֻJ\gKEn%6dp Vu#n.@'_P,q:2s/4xtψN4{{܉{*&H+SQX6G<OsŦ;`pʹ>HL_yUf3,&b")ٴP%[M,ꥂG&xEƜ:awf<:Ǝ4M)[70⹅ZVfh*' +=p)&j0 tH]gf a(|xoN"0@j ^&{?M!Hlb WoR㟗mPj-StA+q,ԔF?{d_ +',jG@y7LZ,)YNy;G;\{SBJ2qvD$F +O&[-~C2@Pf:O".<u~+8\`r\\rx,yrkgV%|ϔ?4 smU_"H+U"||%1L爩oUMIx\n\ Zu/G( j4Jo0ㆵ{I0.%}OZ#ƪm%nvMR8Tp9Z!TL %v.HXzU}MԪR/Ij>Ob5PQzy (K!-"HT鈉߀Z3p[:}Z»c6hm/ ʦs#e܇m':4d\AaAW2MOMfoqI%o`,Y)יI +)+(@_ TH}|mB {a>5XZD lߏkgz +y +QBMI_X%7]Ao vf +A؞FjG?Fc3?&},>*E=G]45wC%XFTDK{)a S}s,)%pmY'`iOwZ/ghGtD.kHeÂqlH^ *$ +h 40` .7~f[}{`LC@fCS;a<2`X6p*<Sx$xOoVp9c=?Ao$0 +8E1 и#.܈*k3vrk׸(TV=i+CaUXaӰӕדXik5F¯HB%jmm g`E&)v]CCwH6qot%YG0*\,9Zc2*#Q˾+gYb.8D3zUc [rcس17Aqj3 B1Bm{rCsԚT9(ռ4v٦\eʽu\;^ptJ?qrIlpq^0fW~\pslnLp:c{e,[ECxژ s'ο%F1r-ehe̵'ќ6[4DmmPkXz.~BIu r IaoWc,I`G`g@lcF =yTcްJ}J5|*#fKŚĭlȷz;e2{K贿7 RQ,q+u-la]) ]I-H;/q`b8f%~50Lt[ 5ʆCÑUԥj >LlnLퟰŲy'6䫶EV%ٲ*[Il(Hl'6 lI +=aa0XYH9O 5&C7K&nC,5e4]l>D|0=n:-]08*(æ,q}+;n.7;Dț/%N-C8Q"ľvdͻ'cb\ ޠ%iLCDj4se77t}(}c=[}a{ە$폐?ʦ7yܬ[&[ZٺqCnv +vo &jl٩F]<9_ǷInPnmLPo9ͶC}C c7c'<<6n4O!x`[K-oH6ߞs[hDJ^N,1@n5qb`8U;l#9ɿY&E_ql#DxԨ\X{sM#:"9fuP"oguA4tOпE ]ڰ_El@9Qـ"b42E_t8h|x\ۿ[ +޸k?V|l$)0TPpg~:8 OzLy8&A\ 8qYxz<(˕7Ѭ5k3 < aO;^qjI Cr +hglx+y/𜑽Zm媜]00v 75z!Ch$b:\V뉶ͮE"^>*zʝDm`;cQ QZcSmՄ%6*qMIo?.\;SCgɞv຤t+=m^[})ߞͿ`µiD׵8C.{jЫ@kBt4:Oԫ=P/g yd@,9;* Pc=K>Zy[ȼ&hao V1,xsIn4q[6Z pm+7vUsQsL~F!wih7fNBȀcV34429YвVܢ+2utVh-qFí|\'}rx+m Ddلzsf#3>郸&V៓vaPZoow!'fGx4/Ok7ӷs+jDKMmPeT|?xL>%VDF.D_堞b=MEbC6h Ay2!f.X\#C:MDv0P'X\)n<-$N"aA$xJw7iՐD\p{'h􃚼%Od/4e +JZOnY7·M#:$ƫТ&oJ@Xyaw0v> owV"?rM/ZDv&8YJK͚NV)lYGqA6'(ܕKszQkGb :!!PvF.d&<#ټǞ.ha#ss:d5uz"1Et9Qաr6V_u*$xLvS" 5dyw2cK$7lR.՗5Wpk{=~GZ13տ`Ԏ_uKlLn= QxMxI4:_gt[l̓ \ # ;xx<`nϸKs/ VS>N`ݫ* +(cӭ +*]5*^m8]ͨ.\ĕ\S?g$^`?S .C2\ߧ75_FH+ cb*-SXܶFQ<$r#ߛ]:MfFBa4|ZiP&C[i^FJK,mLJ9>>9d1FyxmYl/3흖mU,Xe4ycGl:_k])b A#\{ht&hܟ!a$&HZ(lPz'vYFT+)ĖTkT|v㴋+TBDž oW`tR|C9mP2ZWfq6զ:NUcl#uƨ<.!7uZ.cS4|jmыe^oF4Dzs8EuJq}-x!\W <ǡġ7ᎆAyNC]Ni'qkďr˭VFr|]3isMZx's1k?gkj /e=Ep.\{N|J~g\-/ag|_cz&|]ȮxʂhgC6X{h:%0Ff],9MbBԮ֚ڇ_}|Z+w˻Y?49oY<2_^f~x /~K/%?PdžslA4bHS;Fr'ЗN2D>" [ZqE_B?J,v$㽪IJCMSDb&j&zs꺡h`ѥ3GHMьTE洟g6A#ڡ5.+ +Ⳣg͗9f fiߠOv|cԲ=d<+X/v;iǗ=ӎϮ;mk2{9-<I O :WK/3ty[-qT^l_,FXR_z-qޒVILzcTJh⋖rGe.FiK DzY(v Ya "}›t={Q.Ǟy(?hq +c3\!c8ms?hQ"_j}I*$f'׉7L{JU.%HA,C@}ɧ ܵ=Fo\rUZB&5qVI,DRFiX;@ C~}<gOXme-. ﴶqX|c4>N=椿{1[ K +5Z6^ +xNE8Bo؉碫?bA>p*⳶s$I  {- ;rcXS!@66OR*cjLz@v"x &VJ'b/2^qU;p?VZv}r#|,uҝ懃!_O}/#zǁWXfڝ^5􉍺9HxG2*ըJ:W+lח2pk'_T8M.5*SF7ʖܑ|2u<5+ӻ#3ݛ@? 4 NƁ:َΊ5^?*k,.S1K} rg ®ă]ϞfxIWq h gZrwܑ5Gm8AEcm.KxSܝxS9Ȫ*syUY?̀}w|{*XLm|l񉲉ƭt0IU7-W&z[H7E̸2| + gԬ:b0.i:t3T1{,1FQr3b~WԊ1Sߓ/ֻ<X$MUvIc; $O9F='5rY]4{l.-q#NΫ KE_pU[ 50-0辛m,#bhsp }>/{1( +2v +͝LV;U6ňNf)ddƼJ%N8c v);]/b#]n!r?@1ӯ? +ĩ$ũ32T?NDIAꍤo 0srS]|_D3 $]tL*pO?|7&}h3e̞=f)liYY~4OYX_ƒ"ydafŹ47M()u:C(79Ե4_nrB^#4a\FyEn_QB +Go!H)hp z`{Yj?`sdz/xOώ/_w/E&ReЊXGąC‹B76&*eJ@g*voMv7v]W:mb9U i3ƻ9g`*g쩰%^eWKv{\mnL.nMRmOĩ;hKuJ +R54Jm+TpKz{b=8?8fx*o;ޝԗ^䑦?xL܂&%J=y9v8{·mPl)q9װ~6wEx71̅=c.6 (u93^_i~S~b3S_ܬ/kҟpצ~ki.(3n\O`poDx=wp650Hr].xc48Lw" jI\ vTh z&;<,OI$7~3_?rlIF׺'|T|wQs&.2bD39yͥJGw/2ylOyݍ:H?^E"sppT#VQq ]'],F2I8|q^eWp#42zل6iZz)<#[猪[svrmq>,dӂϻ.& GC"5ӥ8jg +ϫs`C8Ҡ0*:PCF U{Ց#Vӑ 9MZOKHE ֦ 8CC*mqp KZ^?cZzD-X`T{TQ Z3*mA.ᯏ\Us"yI" .$9Z +;3œ#'$`sP@R]VhiU (:蔼4:r,;fi@cwB;_x ׆u9uZ+[[Fsy`0C)ˆ䄾fɂCUAqsNkh*/s:+B`?fN_x`bm5[5jyp~Np.5fz6n>3m)r C4EDj/:l%*jE*p؅9IgZEoCVIja|@јXMԃY bL!ZR$7ajH~Z2EP)1ªGEtqaEP@lA -EBZҭ9djW  A)m(/dCjKAm#8N/K +G v|pnu9 cm T4Dcbu\[vvPpD(:DC\=;_2pw0 WhŁmA +bBDt+^,.XFEhEWjDAـ +G+"pĢ%k.bDE<: DCŎg `σ Кc}DHk2OoN괉?w,%িε,/<8h 9hR>Y3~]\@ 5t6!u 'ILyocg+7%2"͋/EB-"Bc4̃mQI{>ҨWr0foG>p5ПeUi' B\ @:Ey_??#"R߄~޾ i-jfSD>0KQmr%mNSXy*&닕 j=&jY"DW +T.ZrT b<5(8Čj1ߪ4+ ,^;ًlY{^W0IJq3H +@bϸiM L,S3xi<=[04*U4 Bi7 5B v"3#$B@Y"$ TmMh=ڛz+1{bK9h[ WCfDjB-t&k8Suq֤Lrgo0ss"1U+a{=(:y=9=-5~lfUhnYdљe+Zϻ?my8ҽ8eRcYm8gPԥqwzhQ>HLd~o +gMٸ=M{B1H 6^m#p8NS0[S젂Y&*$1^e"{Lٍ5a!8)Qѳ̖s ܙJs DCJ" O}~e ݱ^-bי)YfOlt +Wrƕ )&@ל;z鈑XYv0;BT&w!M xBk;c?Ub^zBK$BNDc~%qq3@W&>O@8GF2%Vr(@wPNtWօzaX`7[T "W"z <0!p!&gA ~IԀ:pX VPD_6ty罇\<Lƃ,IVaOcYMLFg%z 5Sb?3G""4}J,3B+ -g;RZu(E(!㮊8'":01z_I, 6NȀZě׭kf{U BS bYWE>kRz[Hi Nҟ5Tv%̡)wu=|b95*D \IئˡGxb+Ba͞=̧^߸XO2p +sټہ6u?K)|y+f5AΝmw$=gI*ळu^ +N)K QfZxxCp1Õɧ4LZpL9-% +x]]jɉ JDbH酉X^ +@0FWm~QRf7 %jXZmCW ?'h;n=.mq?3|οe`,hb{e] N۸VrE6ȍAg\_?&L)oZ2?T\;{ﵾI3U_w*~w&ѪLMtDŽl @f Iv1Z/3@3Y%2m_T j hض rZ<Zit! StJVI/h;B(˘ ɼ;ʘ^ũ˧Fub`Qj]mi_*,$e}$LU^{ۏTz֥RDI8&QFXjne +-8՗k-=vvb!2zZIyƲLkp)-; /IcV)׬gp[~9EjWjܝ{$ м8J &YU3'˿ǐѵHJӯHKӦ,rqRxQ.T(5`INnĮ>kuݲԉ[6*e)zIĺ_T}-MN!>y '2ܐ)\ Ӛ?RtYX09,Wi @dn8Ү~ڎ0K%y᪕<Ư 2EB!Bi-FNFFrhRus 1.PVD>0B+^0&l@M voL|Kzi{D /?ư'%& +#&сetw 7; jO)y>~w {b)0FԧJ}fUOʷۙZDoFzb&жii5etުԴ%:>ow vN+3Ơ{c_<<ww?]#/ 0^Є϶ѐKIt-X<7qjP MrJ\b#a;Wujd=.\ΐ ,B5:|2C_!wIhzImFnMX>.*Hf>VE빣Ff/<)F`S4K2 o4h$N +Qe7@ze^&^uD9K7pb #M/BZ\NFGKS1twE9epW?kis86gO+ i$`H;xeρ%+E}aT^uW}D`AXI`׊3G]7Z4\s{_3I8qrf_zz;ֿw?9G~bA#/?KNvc] +L1gw* \7^$ %(O Ɣl9f-vԂhpsRŇ9-^g,n) ?RCB{_a33e$Gu9ۖI ?pOXDB@_d9("kD)0Ws-fUtȸt#8zΪu0Ĉ(c BOmG (Ũ4G~e"+3Q_x}Jl¨N*q[9]Y1\`<wRLá,+R~z3Bv@-uNiQS5^N2c&dhzxIj2ccODf9LEK%| +[Uno#AxJgڥ#D~?8?$ S1Rq["U߆5aB^cyYx蒪8|d~3I y2T=sssW_'~gI{{IWz3D g3n>N@c+8i(@7l W~.<>LŴVp?^/َ/xr}܌ +ӿbֹxYL'.<$$Po{m[`Wjqqw?UFpٹx!r+n60Eu Q@ʳlR$ p㒒8PX2#gΝZg D~zySO7w5(<톣䚄6Boٱmfd#n'M,4@UZbwЫm3G$xmMh6 I=́1諫*'3K+;Mk6(MaZo.f{ζFR;6.i6Q6 #Qͷ4tMtQݤ!(T=0On1^"֩XR^rNlZz+,ue/Mipt)+HJ: ZV2B-+tn".s ``S@j:3@.nu3*]s]?jƤ$w֔ΔTfKgyg.$HـNN+Jݹcא^ɔQ ӴLj~5dє\\J\UAnVk>De+N\pKzɔh<pX䀁IQ2q!zIH5%ǹ+ɷ]mAwtp4=;J۬d#F^嗃ʨG76jJVۖ^&X5Lfw@9M%zvHĭ9QԞY#XƵ&d7*Bp;kMg$FfxѲJ! dP +-=KIEw-v{H5i[eyIޮ횝 Q\~؆eorߗ'WzOgƚ,g|ėwj幓7ީyfőS'crY"͜;ZU)^v\҄H`WyNݯ٧$Dw#tzf{kQq?w]ؖ' CӿuǴɧ?~p̚/CDxZwRfʇ?ą}_M-bZEr8F.UuwD,ݥN Mb^"闫D%v3CB}x9ɀIčQ]םU9%6IڏJDZX8 ccԴt?Ind=kz~ztn-DvU`RfQ5a"=y#ɿt7{q{F=|DF_xfLKӉtD z|1s(%1"gf+1oY@Ա8`>c;D Ey"Gp3>!zKK5/"h*%<$&!pOtG-nd*ˁp!!ѽs#Dw%Vo,qݐlc}7y$j| +{y,o +ŻXj%;1y`FR}(:s5;$qhHddsI$DhF"אD;.2HCm;X=ܐdC{rʾ,`KjN2[Bь,2h|JTgp/ n4|)'ǹr?m'qI36{Xz 7RIGI7yxC_O:~鶵_~!Ѥqj//dN8BGE[: cd +NHfdMOEOG([myo6$ 3$7$Z[q_2f$Q*b- ;=/?%% 7EBU8f9n/o# q7`}U)½j+zw7ZqvqMO!\wP4qxWt޻WBqqTƇ`TkSi@uҭy.qsre@q›2q8kHʘOmHE +hBpq"F"#-)>W-1m2x'Ǣ Y}aL +kU)6-AYb\Bò<FD.aHnP"/'X32PPdm_k5$ T%MLv0Lׂc;@ig!^H*k/_/`4ƨNq5^ĸ-$%}8:§S)*C~W)vHJ'Ig_g_[3ϿBptEܽq#lű ʊGS\:KΦA]N <424eY$,"lVH!<)2Fiǰb8,GBi+mhcQ2+(%Jf%q|dPP%> ,qBIl& H7Lp1$T'&]}]s] ڽ8W8]UiJNWս.klL@[4>05j6N* )UI +ָU W ];#J}_ad{SՋnӥ^qIT`du & pS_?!4|':xiGa]paxfI$0y{<>&ܙwa,0V~"qX+O1FN0鹰s$. v sj^" + +, +eeH`O˓<}q%%Xr TeOG/G6)-g],,s,5+}rX5hcsN5pOO bn}39v wbSG%dd.\Y¡!~uako-(|}1s-ć +GNWp_(5- +;&ojB[egH2I/XCZ|/~Sj9Ւ*H? Xw?RײSFK6pJX}$c| -]`UD{4eSx0W ˎeB }TZDZ{7RKw(*NԖDv*bS٘F*('>Jc@>Mk\^̩A%bdy}g|M>PKV ={_I6vOanxD=%3óɓ}N4Y2Rmpx~yFrz, +K +BYĸ9YؚӑxX9ڃGy}̋%0׮[{W`'Bh w%+^P*|&8Z$̕>>pC$fzG-/BhBKuX,ՙCoz9^u2g[%(m(2]CCpM[4=*=@0݃Se*0 ?^G2)FlrQ$ћ ML+Pn6}6|h7i5I$VI>peшIrO2*r 5;'I=`"Zr}Bzܒ_ZCb2҂uܹ|a8@pa&u<|6*I>5xҭ=5VFhZHô!d| +LPԐ2 TH)ET Yy<]I @sƺg|nz&BGwEd!Qʊy q|=g`otv?Y,2t]X!hY=BɅx׌=D#//ξz6O֫ƤFYO;n(brvZ )< 2`SK'. @s6VfԶQ@[K4\VWʣS JRap(boB+d!O $(;IFQV҄Եl"_P@4cOȊhPu )t/5N#MiP& ++ +7v2!YԀ' Ta+\Hh_(ȴSy*3O"JBKA|JDX$A{z&&Km~ +JBVƧ'M& _V6\ +cbv]-4(7ub*ZSխa9.s fj.ݦ"`G1HC4֊{nǼ[ak|"zQֻ8Ӗ=A'cmEۋc%7zFZ ?s w*O>k\jX(L7P(w(%ߥ7X/0ybȅ2ط}&`&60\a~,$tQ@{U(BU䓚Vm.h:~Ŏ0@$MEVF輇lNo/-4Lrw0wBn>֛থ@Oa]>鈦~ !ܧ_WpWE:IZMfߠu>V}{N\X`{vХ)|D!Gм5I>';˘?Z髃,UW0Z|X?-@~-׎ OY?zS|}1^;XֹjZpd.e1?i*r}ּ=t\t;ž +Jx}a}-G=1] (92LǨsn%Wq : ۛ;N{*i$#ﲙ$BjU4g +DfD_SAE =2?=010rY.YJ+tݬgX_9Zg_kJgh:"mi,}+ _[ +Q͊4e|U#D 2ą0`1|>Kj%>}HqvZSMR1`%I$y7Rb[|5@Te.C7 /ZsH)q$@ '2 *8Fl+Q_vkN%O+ͻ2ퟁ \:j[܊5UlI,%?qW36݂u6`_oEW6fD9q}$U'4IAIzjױz U_ q![XOOވ9VVIY|t+SFZY[sXVbGeyR _ab,:΀d^|?;#|{J^mzKA k _^=w5r,1  !.ͭ*s@1\3P^:ͅ"R1J'߯L^(ZZ4Vѥ @YSN +MML/TUp@0)x7k|յ4.յz-+/TxkxJbQ +PҠ^, ٹcc\y0`5= م~6{[YI~A?uʲzŦ)icK1_)y?o^듪#)ĭU+/Ӄ~j kWR̪yĉwaQ/sa@XT l6 +rVj=SO>ό(?cmg }4k~XΩb{F*vL?9 %pBʧ5^}oEѾXq-~g^VɁ-;[hoε/{߲NE<x,`! }V^'G_{XPkڿ-jW­cȉ[~c!DV}oIly<-!aRö8 zm:Ǔm+ר+.Nylǒ\I#HFm0kݤTZ?lwBЇØ+i +j0Pm|r͞K7_GVf c'j$'t +!5zAe$HdЈ﫮!t0(lxg!F̻fë{*Mp܁onE_TE_TECMe>#0'2~㎒X8%τip5"%$ǖ>K0qtpj.ib 2aF \~ww[loci;~AkU)B7fkРn\1{[[Z@_õ{ vܨ0 ך[sއtDWT?npfp4iTa=9=v|q*2,њYH +$;{3 TC :=vzz͚_)e&Ak.wzI}UȬt?9E_kf'V+\16;~.JK˃Vτ#Go<]vxZ|1H?b7+uTlM}=.qS_ zxZ:NQ+vPu.N =ՒY丨Ɏ\Mu8ԆFKNr.umg{NIӋdIt>SUp@ Rb#^3cK]S,}NrT~-qC[wJ¼1m[ןgC𜉋͉j#oCnWQl7Q5x_)'y@[}0M;V *Zw9tnЎ7!ZT [uCm̨v'ԯe)XI.DkX\ZWw>4mzpQ#=49:lҍ"GD$=N}") _s3fM=l$،nޗeoڼ促ޖmo%'l=m&ܩjPBl9qwG;*-^Å]6m.#7nHf1vIɈ;lyJ2{` +.'RGw~LlMډN2}I4GGS.q )dy<-G!3t35U|0,%6a+KI~'1 +crě`I:zݪ?/M~Ɏ +Nm6pjϩʩmvzf8ǩ-=NmZ-ʩ >N%Z q +GTP6]$u4.GĮ~M) i:2 ]ɠ}A0#s4dG3襀[l8s"*CNc`}繁hnxI ]3檏 ;I% Uɻx]yy% X ɑ V}h-y* ~I^dlCᓜHIBuIc}A;k& aLW<+O 6l2#$~gIYM>S;"FDΉZ!TaAz԰e7խa^A [NlsBc [kܕsm8BԊ伝50&˿˿VW_YJ7c5vr<${k=KI(*wa1^9};z'!O|5c60X?H4A +zsE'q_"Q +H +K? +!a/>W wl$:yoOvP[ލ3x{3(,k\:jn:E:$ڝ1EZ4D>9<9< ^GfxU$;"wF^ I+506 p̗D衴CC Hp{#?! m"*EciG(*#lQxL67e\/J!:Į+Kcr52eCnbwG^)E+(˾"nLx#Ri Ef\, &tZb75`|W^)Pw +D+m1T{ְ)<lTմf*B9F#Y8)ig,@b.xA{3-q*14L{;겓o )$PNl"(H[t?A#1гسg f!J#NVa<7']-f\6h ҁI9$ xRFtRx[n. vR8Z>"Di,ttRQ/zYA e +5}X3ՍȄRs +:)%x6ɿK@b+(zEz"1# .2ߘWfG|0XB ۴ǵ.Qg2" C%&!nJ!NS$/'3͘f,]liDjFUn#M!z"e|L #76?1g]3 y_90d I6>QJ]wC}oQ?4 vϭ k@uJKȮt=83N?fg36S)3'&vR:CJ,[ xl6[F9%E6Mo9_s u'@ƶskJhd|Yd \`66j .9i6+&asZz"n ϭWAuR>>۩۴WyZԍ،t8^<ԭ챈cyG:+8fWF#s*j9S -[)]f +/iBTAvZg"c ^4˵'*U2N2^5᷶;hYjs(m)o> a뿿vO y/ArLÆGLMG a(^_pRHC\X B<̃plv;?~@@pIe`"YQr!!X#8ZqUK{$4!IEN\7!g#?)V^AF? P7{b9H3_t|K3xy"쬫uXCRAƮU2:vUZQ{uNw} lLI1gI?--3;{x4uDH vb9ѧklttZ;WWyWW[L&xg<1mN`)Ѹ5m%6$Q hg_Wk*yQ}Huf?CIڗ3?yfvH25x4|~6|/JMֱ7"o>asu>5A՘dϒ`nԓx f\!\Ώ8Iْ!J\޾$`,l]cxƼìyHdtCZzֺElS2Ĭ;$M"aV?D<]QiJ.A*z6mhdFlYc1L<%ٯgv;Vl`h|=+Ǝ'Ӱ3d@n{#=JgYzRѳmY;?r+{v٭kmk9hl]mh_g""w#^>Dk"2aDTO4kiJi6؟͘jQO-OY0ںOMRI# paOKYv]z _Ө{S^Fsr``HN]$ESьzfoˀF\N;!g/ ,>a2DV%o (ד(2G"G+{#GdfAs{mX8,[8 ԳC) +pb'_SJz!@cޟe;+{~Ksen~mnh4ZMg{RMbf)X?UwK\ Yu׬Ǫj̪;ajP>7t;:3Yu{`҇Ȥx+8$"ktpݶ f&d3񐙐-s'di,]frk)IOiN6M~W5* Nzx D':.4't+XoH~i`o5ut#4\ rq]w{uGHɰvhImLH3>ID'ʞl,O#%ROp4O#;ژRxQ:Xpn)[42gȣ{!q`&!!9i޾}}h$S)%3C?^-Fu {[ImuF!QʕƱ˫'ۗLӋ,iRg!%>Tl3vb,π=d/zxT1f1wjFߋmk+c؅9U&" +̼F8}KpE(U&幧`|;÷}ťh-BFN=Qf16>-`|%̓O ç 3l9'O^\V<վs)?l"T"x~NMz=kddś^:ʘ{Z1UrO+W$8yi4bg+ceո \(W>϶rQqX='xD[G+=E4scqnК(\TrFcԢW8m7\9g'-`YߩHK7< ̗Ę.5r n- <(? !gtx۲С(?l:+ZBIWGDɮjoVa35.1~~?* djEgxw}Nc/դa!He_I  KRYHou[,1Px)*C/ꄩ?MutZRއTߛ +Խ*8T5DjC |Nuۑ =8WkfbIɾtqiۂhOÝ( BU *q$,;Eexb)XT_w3m,^w\ w؊{v6 eRw+Z+~T9[9%%ҟ*}Wu ]/ʷ}l%፱HQx5EѷE.yƷcۥ#oGj`\ɏkD1Gɫ8U2V]vr>QW{55T5솝|eVy,k W=E]1cJJf V*`q'OYb},Br)V ++P4m ;1x0.f٤myUs-wmS< +s཰mWrrXQX'Հ1ssF/#/y| QZrJ|p@Z6oWzmlL]>BTհz7l~^-([i` N>qVWTO,3t7֨̈́+t \Ͳ.rʫ +'& +ĺrW=HSDȵJfx~T6kvV4 /d 4*ElfLW4W F &A6uW;uir!]UňR +mqb"[\%5[d5[63$"ր(Ed6-fc>"+=w>F*xm3's.d,K벊?K:vw} .0{ȷpl]F^}߻@?_5S캸Y'~>6di +p${ gFoa篼 ;v7]kB5oaοm#ηt]˿xd$^JЦ&e(61VKqfh\^n&c&*Dg?7jz͏&2C6u cR1|NMĄ6}l544}}"}X_PFխȸSiŭ&xRFEihIۯ*#b=. hfsEK[ Y5bw_Lx5<;5hU%t!Fhd `' '' $G_h.~T`JLSOsׁBG^1xie"Vw'jOtP29ϵ>'HE +]tZ[ n.V:'ҙ.}I--Wԋ iR=DϿm02WB#Uf6){TLU[Vòk"@Mc1Gl2`ͧ OᔂnzNo3I2ˊ?ш߶+ +!F*U2k"7Al>D*&&Н0zuqUS33ÙԠ*S]itJuJiUTW"SAI?betkβ:79_-gM)?:Z4Aȅ}Lp\!0Lgۢȓ,2謙B! +oAs̤H5n7o7ޔ^FjDě|57H&ɩk-N] 9U !eVs7~}N?9l Y2!E#X'ȹM^kE|R{Y@y^# l3yPaӚf_3  1= 8WMێh.? Kz cJhE VЌ {uޯxP&w( bs W !i+د1#nqM&g7BwHqK( gįﱀ5eCWWCeS[m񫉧hŎ(ZNnFOS|,":@_Kf(g5nlkt waK*Ȝ"uBP=eXcfQL@c(CO :EFX b&_5&_Pb.)ێkhgZBh{Q~T1]gC؜m,QS MXtF%%Ty.\c2IwrzHm]cF!@n?2.n>j GVmxɂ}/IaP唉ÜaR@.`;#o(4x ~C`̴ݷjZ[kMY8]F/bܡs*H^u^{ 'ͪ ٣awmxW6۠"#,ZҰ +Ύ٤l40|ёc!34r̻mU ]]gD-zfU"|Cbd7$hCd˿ {=wbſr0;@ƯoX +s~-~ 2ޣLouW7@Es/t't9]3AHMٍU(V +;5Q!evoR hsbކ4p$so'&o^ 3&`e@H4| u0q,d634>v'/ 0 -Gu+z*86ށ<`PtQpP" +7*ƃ+ܮ߸ 9)u׍~sDlܽ×o_랻N5;wb߱m]!e'K<7X6f]Y‮}/7Oݵ]͔e޻q ABbzH||2\ֲ LOԤhsYť]qup|q薃YKYa#؆О6%mLC(W OL۬>i8p-'H}s3_t˜(kݷ]k\mJfx`~f|N; ?t/yԡΩkf##{p8;\<-r\~ ʱle,fY^b7T\nJǓh;tr'Z:  @e'ty+-e{ѭn@ӭjzqDj;JkXI[V 4ޮ6\]KNƓWЎ/2-hj_{he dLv- D9Ma-k-Uq!.\TdJ66U9O˒@ly\ ;>8u񣱡'\'?W4$@2#w3 A2H:+(ņ^'1I1qb Fq"OTc&i! гf1;x$6c~;6['ʱUV#cC`-,_¥l bC_lON KOQ5u&cf!{MN +b5-BA_åN.D`y~'Y?N0׭Bt}^nZ ;[/ɠo[ +hZ/rZ l]bMs?G"~:)9NǺ%mIy{d|-]y>W +~z0ʰ8m.ɽ+l[}, 6uCMdžFqq}(.!@ ]N +ЭouRva\wcmI=CtZK? },݌.+A:@Pۿ$p_D5lz'԰ÆR̤Π[l 8DE`[Ֆ`$' {g] nDN)ku>pO}Cþu<&'vbJ\FY¹LL4AmGbXB?ZU~&'zdŌc 7\6h5Yڕ:^h>׈⇠ +`qORgF6_!-5_@Sߛo~:2

j> [|W,x6{-kbJb1ZSa%n]H榈cj6x6΃L|A&VZ3$i<s\>>')%ҨO4OAiv7RHO7x"9z_ݽw(nwLk:׶̉!*@?b[`e<1wZE +lUDu[_A&S_a<#z^$~5ۦla4EٰRnZ__ԋɭ\2ro'\r0RGE_R'C+pG"R|F"na>6]"4__Y5-DJaC{o˶$a_Vi-_t4 / B?ޣ*j"J [gRQ scHG+vISBgu:GJ'T(RP uBawvtLC1f3MfMHD3xSd4kI#z$ .aFSw #oDMSS#q֓J"w7ыX)U[pJ5DW-t"t2Roxa8F\ow邓'j`KϾ:2ebC^ķ%6xJplC.zbqH9bvt68,a,݊|W݊AIyhl&!/P֬Jt==ysb'} d9)e$/g7V *f$ +S] +޵A`Slry +S/HO^]~\蓓Ⱦċ + @᠂A CܓWU\*;xt?;b\ܖB=#AKl}Fc}C8!!gǟ<|w> ? >k٭xSzT`G>SM{J:,-9w?>ubt AiEJѠw PW-3O1A Kk6"fj-VkoW˵ZQ#V+Df%5y2 D{~eg'/](pO<il`>&aj?7I;NA_XU{:sUk/ 9:ȣTra|*???ph)u?ROg!pFH4_|l녆L Ts%Xu*spûZ^s-DhVƦaip.*п(D^h$dO7=[CTn/,;+$%͏-2ۜ,]{]wI,%H"aqKx;-l}}/]u`W_/U֯U%m1fA!DNϫtpWIVܚJ4 Ӊ>(W|^2*dg5q%]}! +Q)X/YW`W(#pWS.SNyS.Q\9++E7swiq69wSy#9yylE! VC8wH %}3QAyRdq.6F`X.A~:gbrEw\;g:GK2M5lOU_t5QW;>x41j=I[}Y:س>,V;w 4!N\AdD,%vw=]~az5| %iWg>"|7}ЮL,i >w^czH z-s:Čhv<)t4wa }0uaI{h!PuSS>9̑'Lqd N-=>y &9Lt':"^=XzEԑ` 'VE` Dsg E4#F# j 4.`)m6b#waFDžܛfӠGo㛐(?F~~!?wV~~ SkvnAb"Kf+.2N&ebqi%M{/?$G;C > Ug;VDkߥC.J,fLtBu}"]\(?]HVn/(9QѤAXon`ݾ;|a D̂3`>>;;pxk?EzJ*Lg(a!5! %Rv5)/9#8{="bEȷi_ԇ;5(&~Z|$8v6+~0i3y+֚Ii,OScEtP$AK--"P.STggFtdܝOs65W(r-M@^T=3Od!}\!*! fog^V Z{"A][t?7i>pMcB-A0D555za@mi<I@ZAE:&pѪ||6nWh@)HQE2@e/ƹYm_ᕱ%;G+cm{S;6SQhhI}7U’(NSH8D+c7ۙ6܌qAqF }dzt`c Uqo se_6F~taSBZ2Nt[Xܑ.&Un}Cw1K\(e}(YmB]*Lj\㄰ڤzNEȦZ07éw5UԊsJe 1닋(NQf\ 㚗MzNS>6Djn-TN$z2Lm\RqڊQTk#P& }Z| +/μ&&e-}"46z"lS ۴B=zyy>O:v)]C ~KAJ`0ˆa*7AHkv$5nv۟,eXG!-,ϱ\,f'ʍgړ1cfy-1Idmr% úԍ7:ϠoΡƍ ).O6:c-5: w~]GZ}R46X59R<(cr+svrz3 Zk$]7^dqDc. 4uppCD^9xjX9ʴ=0#ޖxo}Obt(Kob7_S\D=5w=?E,fn"z5R=TE\S:khwb )eRz+V6<XyH(#P/U|t'M[V[Q6>)vs6P+<6LXƹ9+4;ɒ,0#Lkw+JxaG˖g<ϰ/ݼ1K47Ɍ7&}fnEzk2iªr-Q7wssQx)Ӗ23mQqkȻuЮ6$c"~܀ޜR7mݜFiFrrs7V1o?8:PjO`0?pȄ3qlOu."&ZVj5tR::`o]Y٪B, 1Z[ϑhm,I}-tOC~s{=Ób@!%[jvoRT} +Y-'82]Vg׊_>VJ+j"30\ˣاBu +{gl?:;9u|Һ!3_-Jz9F$<}{ bUH:&9tH5ݳۙ0o^rd yʗ283LY|{81nE;@6 K{{{j߃,o"/"g}f/V8fUb T@7Dxd0ߡc<3G]}V"n!{02ﴹ}AYt!@$z[S3H!\G]']ٳ[r+Kf#>ZDvp])ƼAU 0&t~ǎ rCS:?2uN9ҿ7>~Jo[Gq^Ҫ[ !g"RdD4?%NQf=+!!L xB& +w0jLρޕ1>X( Y{wg/UJ㜱17E[`lq"oG_FZeyk{h +/OSx?1"/X~|{F7mTY2ـIjvXOmDvZ뮨6f=Y!z*3чQ3V!{uz Q) K~ͺ)#u`ruR$r$PaNP<'(o ZqF!BO;gOMT6TE3>W;S/ba(:Y,gy׍=HHCؾN0ZizF<9;Bܹ1хy5:"6H/fZOE3.$UiӵwUxhk'8S6Hz-iq'qbN52`^MUP0U-Ĉp 7GMKs=ÕB>f +]m}:u.#Pyŀ +XnG_E4J\]^hUĢw.H $gt#5=hQgx:}"ϛa鍈kQ?YtrD֣ g-d,ϱdHT,HEM 60f /MP `W؍k8+Q J!($I]C>Bpૹ&FSi򪲾E#x> rωҍ2h~5Al/vJgx䗊>I6⢗d~5n Wmn UMmO$QQI$}rOC0nb(9gS!•AjQOnHm"F[z +. USF +(CܠFY"4Ae=]iE0U=I1 G> Upô3$-ϓ0BQ6,[G3jMxċRM-*' x"<;scF p.a\r/ۅ|[$wj 4Ԭ\㜥۞\ț6;\tL +ٜcMݐ?LO C^pQڎuӎW1pkc^)OwQYcx*eO慎21rɌ}I"8lō98x\+?*Np^KT|>gk^S:9SoisޝmLQqp,vܞg(ɯ},~j.s3ZERm6MT i/z6qDZ6@-VhܡAʴPJ{)9Pf?fvzy> 17B֋{u(1Z,V;2šlVC<&TFxeNh"ѡUbøQ0Fh!m*RySb ҐN4!֖뤷-Wxx&0ΚgUҡ\dC8g~v6#3^Lܐ+gZR:{ҰPԐv<]7hlW<6CvT;),1\\8V}0ŕ.udpzWY(pQRpCtUl$PջxUBpn3E0@dPxn@ 1bƭ܎sD2."Y& +x#j$|7dXF7C2is\òI}ql!, +ROH΍%eU jjN}>ja\ MmSQk޲o5v"PC*@iY",qpG4 a ԮJxZDez,ADaD0R_4t $# j㤩#]^zxy -T\`i hYtWfjC"qfNkeq e5h0\&kO݊wz"qfR,lWpIb9\N"YGpPh8lUEo 91<,s앗3?}؎^!(}jFd4yÞV'-': q+kP b@kN" EmT((G/bM -N2׃CVѳNV"v#v"xL)Q6HxˤtCه [7TЋ{Q_H/[K&}/z11_c}ir?/{y^/}(ߠ1QFෆjӭztO&kzH/tJJGQѢIě^&5}*zW E/qT[*.4HVYDM@t\`24f94h>駂@L5.(.2T.LRAGͪp"6SGB|\9IrLTMtN4Z[JȴߋVĽG/ +R Z/CDʐ4DBW9)p8 llS5Toϴ"ߩAۇ+&5ma'}l*ݧ6_?hu~2t@PrR)5UQ:JJ.n]X 5W$x<ĚrO%w.Y̹vk4-@jaXSNxGAbMkAbM{a(a4!Zy +5wu-a1" N"m\ox6$qq?OF+H Ny*-8Y@B:'cdAɲ5 O?z~j'7b%Uk&ZBR_N S6KVX5L} n jwa% +Ig[}0tٶ^f"zʭDܢ'c0:<طٷ[ٷۙ%Z=nm'?c̖TRo̿)wbFQcKkqY_!lnpϗ2vʿ}s_{S̯Lk?q̿]ۿt +_HkU=O/*tYog}z2\+U]x7^9g%;0^9G %);Drm2+WYڱ Is;qw o`nUe=>] 2xiosT LdRK[r?Q#ef6rȅԙI%Џ%Mh+7x\)0aWe/e2&397~9+dnd,jkڮukSۇ"0VN_09o= &X*m +Yt&_#af^H(t(00cw쓹8AԆ$c$lw~Cڵ+&G+V9;a>ItSkhULbU1M`O$U1$5F?%n8DiA'rU X ڛUV(^/e"* ܵԙgeP|~|P/e/}% +c]$˿KERG_fZ앧y= $#f(Z5ɧҹ]?xG;ߝ>DsY*z@ "7<P'H/.!uTB?F)k>u&M(muZ|WAU0AVt: +F * +栶 +wGqZ&(Z'/mqIs p.qu +}FE .__'3lբ&Yq@W/h1'_3A?sӔG"9oseVmX `(5[?y=|}(Ɣ|:AA"1 \鞚G*xvV;&yCii?w8Tj,VI[/ѣi$7*0Cg/tϩSfӽQY3Rl4)Vb9&z8ĵ)JVY, 3,zz )2ٟ`:c` FF;z BE+q S+Q6|h7^mt4wd :蠶+neN%3Ayh9^u'|.@H4P|ߟLn -zFƆgrxy҉1Ѩ.K͘GO7E(U{7ȼ<7?]LW~[nR6OTD{^]1b/^su+Ȋ*KYޓcyS(a;RVH-=EG%f2kǁE"@TPQ{}ofgvqp;3o޾yy^=갏/wXA^UFR٫ ,NQ\Ԇ⌾z=vUH:6̳+}l}X!>۵PuA&}iIbɮBZZ*2-}IچԒXz,'F[j_O[f7(#|F_2d°*BHM#5VL0ti,$ }5|&ců$er0ُ*u/ziwY\):I Ɗ^鴎W[b OvIvKwSOoO?)>9ȱ8/9N2 Peh(Oiav9p⼈2ZZy;p%t Vac82Pa﶐ +\Rc$+|sVK˜HqIR9R`?6#a? +WF$Yse(TKA-KK"N >Z>ёG+S'͊,=i&T+"u6U'MUu0)Y%(+dJɋvc،:N h//l)ڪ-R[,eEjKjV[^RQ[٤f:򙶥ڪVjc7jXmEsʊ4!u5nj낈Y?A#c\l )h"(-˰ (nХU*װr. ;lG>!U6W)ٮb3{v3Zb 26jb.sK艌H +FR.7g` +π=v)r!s'VdkgS+vԊݡh؜r4+rd"H +(J_PI)s$2['ў6Ӳ9-{ܯ'4i,X%bŌRc;/n#V$Qk唎cb %݁u!9o-=kVE E`DF#hhrA|n-ޙktg"nxie7Ow^5/3KfiRX;^EYĐc}H '}b%dy +PPA_vBo66B9qW'(BO:+|6&IGbq_=Xd5_4VS'rYE +6l5?I;>!WiPJ_UBWi*͊-nxyE4 p$=rJ#?v(RM0Ij|Vp72A!+#"\CQcP9Glflfl˦.p$+{7X̳83 X]>>Cg i7vZAK!#X~m~RZa`u{.ᐷۻ5ùT63Wsm+ mr-T yL|Mg/$p"RɃۿR}қRrhawqSp >MtypB?\_<}ϒ LX[Wsh96E&^Co43z,~lt[ ;e,Q='g1ITHF3IC+`(漤V+@%R+=UB j/=5Y#4||| ̿!?$I*.Wr{Ł7L|/XDx~*# +1͂Ա?fb AKbHCǚ)"z4#2%j"ml+-g/|m2TRQڅBB(Rb9AN:t pب([U4<X<)kj{`}xUx(k zmzmo- Eĸ`&s.RԋŁD.is +@m vB<Ƶ7IzyPw[cZoDS̿?&MfyKVDƮuWJSd oS19sZ9~qjLo/7?0XҐ.iZޤ_#1<֌M6 U0Ρ_n^.[i6/K{Α*x%ޟ/~3[ې4MfHxbջUofVLww?h鵜ߏԴU>Ypi"J}?N63H=by8H:\h +k7dt__?O9|.ؘ`pTg1N_^SyPe[" Xݮlb؟e7K(Y~bq3>@ff͋0N>%n|ѿԿsO5r8!ٯ.aCv26͆rЉi3ig71^ڷmmُpq8\^~pG':x8i'Lf?1 8y +~"^Ž +KF5+-r@cO ԦYPF(YkPSN85qjԸ9N¨+I`1N͊o7K6ɆIB5P5ѩS'b +J1H|-ʸruJPP xJSPSPzuJB,*`PqbRK(FKA5 A*qcW>:1t yLf`JO2) e2ve4,Fe5/[m= +7Ĥhj.jN +Ԏ< +v/r7iϭpПP}8ve#\}u),~kQsZڜs8W/ +_nkQAmv$j&jFu +Ժ@} ' +A=Վ;$2ebPyזfYRyIԽP|8۰6^-y8pgl8Z>Ƚ7HsLNX#?:Kϒ +hCmH\^F8'8!;}{uY]w,;KNM ٙίWo:mĴݕc22PAЌ]$dX,FTƴPSn_h}B_%G7:*kTω5hgߵ;M,9$7,Z Qjwj0bRmw! Β_ivTHUvP9a.ڋM#UQtc'+@@.Z4c;۱Rzl 6hlcH@_ҳUԩ A8g*OM9md#"b@OXb. 훀k, +[U.:Y?z־Ży1cMաÂ#)vY̰ШCU51KƨK>_ޔ"aHolwdf+s+"EIg)vZD;F-I<@fS瀦=YRÒ5နUϸ[}q9 WA, /р>XhMdP.:o~I4yCyD /Ua7N\S'$,;Ir?4π.I~Mu o0Nz Nࣦv +qfM }dS}qa€ȝ&2_7˶\ s(*3=|J/-+q``goX1Qp4X^1cL5~Hp[rXպ(~+WXw?ZKP75l8|ב(pBV` ;ZLF%WnjrUW.xz0"n3P^ݚ +qԃ'V/,cEru_ +jT:r 3jdp!VuaƃYYɃcDf@D1ɈQӘʍM'5kZٲQ`$gFoA`tTQ"Ȧ`d$F)"93L'H`ט5+Ht?)H0cfIa{jljBfB@?qxC7T$yCX;p$E 1Q>TU"&E؂.Ck*,O%6,anդsMCJe-L2aiR?DŗWZy3A^7s}"+/PghᴼY‘!A:(,43hV0! .RvpCa$!:9f%u(cd%.,,Ї`HÍl +˿ Ш́\lGَxTk_&q +6#}X1# +$[E_>tszBw~aOq}[3D>obV;F-&dU*U.oݢX| 9#K?1k.HsF%!&>TS9 JVsi=\iFfCў@ɇ}dMhX8[Ao{>ɻ(Νݡ} +-:=vSg߈g,*ͽ[1ÍF)ɵ"qV08$wh9QCV+ VdЇ,ߡ{DDt?HN~эJ4 /ߢ2X* ^oc~eT9:F PKyԌT6v(4eNOǫlO8 6`lᆧqZNT;OOtsO? 4p9~ʲߴ=6bmEe8(m@6K6佥gem Xh?C=&;{7|jBK~&BwL K~: +Cq16yoK^ ‹xCnɆԊL%ॊ.Džk X)+I 1փE=82!*i>*$ $FzGYOI `ǹVyxl,4`'=MsDAs X3ҏL\_}Pju/u|g? $׆AEG6=~-k*=ר_LSqVNg~D?}De\ԻUNU]%e*QnBeB)w(©lN䀽/:Sv޿DDe5zʺV ރҐ>e7ڑ\0|`__%46\x^TK*C/KGDi(R`{t?ҋA^R/=~CzdT_\{9rYZCX4oJ?%RT~5e9g k}B3z+Y|7\:3W|^Gy5;~˘D߮L%;1&:gLkX,tÞ4evZD#+ ûVsc*]T6ۣMc̩l=z9|SqG85.[+zSKũa op* G_b{tmΓ(ʩKDZHu=дG|̀gYD%CQ}saG~@Ȑu{ >gb_&`(R<9$<4B4OFx k ȒKl FWap 5y ʩD0E,)8[ϱgW:-^CY%7u;pИoя֧#`p0%1ȝ +m>ۡx/Oc#[H/`EgT!?7g+@;׌/}䝳=xT[Վ񷷌3[ĝp/'ب/ܰ \eW I߲I_r2zRXcW4i.T'jN>ųpfxb$ -Gì?ŘNV?%ťDurD+TʳTid*F ptZ~D~J EN:W DI@))͹t4j;c;s">Mdb\4 CssѠS;vDm_ p(H@qub;dvtZj_UK|X^& o%(`].ȃ 8H}YTAnZLh|@'1U re: Q4Վژv,V+e>5eYuyDX ҙr? 茪 Ϩv"g172o޳0Fj]'#j| 0 +#C-~u|Rݣˇޫn_<6-2J/Vz|5\{={QPѻ4y4b)h飫4J!Я~}_ykUJ*4DRK-\ t"j,57]BM ЄJ$,P\Y!W5, Pv2}9җ}VxfYSNU +M˩˳+)WSځ +ס|Zﯺ k Ԃ!֪SfM֎Tt*2+ +##UsQ=2B LċښvDk~.zBK:t(x{hZ:Md@ <e~&@Xlѹ-Q+ +Dhᴨ 5b;I6]!VT2Tm.>Az2lpM*yꤢNLl4Uf۷[DȈG$8C$mɱ]=[;*|$B+rͫMr%3\io?9>^}ΡN4uoԭi77ߨK7ߨKa7ߨG7ߨQ[ɢWn4oԭϪQ[F?F]\L߿o͔;^Fa-2. 7vQ)M4} +7e {# +{ko1%u@[]{M=_/E۬RSeAt&Xު :}jo!Q꩚{%tդV +r/j%鞋i$-HϠ*5 +L$p,4`J q;*f3{ R/hj`eZI0J)Az%7"}n!m_wM_>LY*b=>=Ԟ;g=VDЂx(Wjd~RnTo|~ Yf%-NmO +{Ay^,v=&d Y"0I$, %Kr%y* +4۳\;(ӵ\J)˹2]Nj-bmufKNs8 V Bjm(67RL0 ]֍31tLo: LT(4@,M kSVN3>,rr9p*z`ݴIMG҇'ޢ̷=ޢ00p9 3Ϛ5 @a_DZ+@J8?ʇQ%5EG?lgp0nx?@/NM 6$bg&G"R>?n =?JJH܅md:Gs ;okߩ~g;oSNX RźRRkHzdaAZS_NM+;$BkQ]睺k+; +`qJƸl0$E +0JFʣmfn3h̕AрM%UJڊ-'x- +d!XqCA2}hFWf-9||'uѕTBH +|VɯK6Ww )q挙74ḃrFl/&2*pz9*묓%[iUYd56}g~RP %[|m?]td%(4{o8h5)bcK%jy O`o3JyoR\W_7-E+~CWy+WQ`U_U˃PHiƱ,&)Guj26&S3b 4>]DtwEB7c?vѭ%%f˫x#;od"*<#+Wuj0ZD/YaD13qE_H.v@&^) +;✗S}dDbcfZ&N&ֽZ۹@u34PGbBQVظ{Ůd&l]TpW@O9/N 77d=g\d8z e6+׫JzG "]boC؍?cF*W]C[1,Vƕ a/t"TSVѥ}ZnWXZAY.Ua9eN$Q9<_.!ŝ<՘FgBsKMlUW«w1ڎ{]SزBO*!uӌҷψHtDkxf,vnĈbDZf˯QSMTxwM}3QHX0ƖqG-4.{QnQ.pG1hQS E)=oG?LPix|G4Kp^,:M[AQx e}[dz,ݪ/3&߭Ę|'0ĞgWϥ-JxMA"FSztP8{S_Q|=EWjqP9SήYڭUYq`YYVL+ +K^7#RʚOhoG#X#P:Zq)1DžѰhR %#/1GNmHů}`zI N%h+~[khdQ4dauk;^^4& UnQʻ`|\]4S4Ī],ױ0#v$~u k;M_V$=8W+a%w^=#HsJLS1Ɗ.&ȏq/%vBo{7z Jp*ƍHrD@S]_L?1HwtXKpc;٣78Z? '.Y7T 5h7!q(ǹ'99FFހpW +#YK,EN?4𮛴6kbv۾IJydu\ xzc!(~X֒ŝfZRFl5< +JscELPgQ:wQwjYx- ef#|5jQ͏ xJ'U=^Z| 7_۽ABy#`]կ-goO(zOxj?(W]n=b7 ~-4* i`e`$Hoġz3HN6Ra6͟gYn6 ͒ +QȽRKM5[7kVq}o_%fy+VciD3? x-Z#"7ԢU*b5YS0Ys%4s- DXGL sg^@қdF>Hى 6Zᮑ 5|ǖ}l 0K@SҀ7|&`^{D?`ayQ]ǡÈ .4j4)ZS'X8h+c"ɚ}Eɂg ,N2/f-ms? x}f=hUdO Y1b!hjB4<Ǫ$Ʒ;iAFbZo!x熯*\LzCOL-t+\(m,qg 5%(v]J>|M¬*g0 Vӕ.m&,躢Ow7̮WQ1Hv$Irk:l'%u\<5,ڵq=u~财VX7ÈdvNUC5H7Ka5JyDoKi3wh$7KWYϰ l,Jy~rEI4aEǠA,6ݛ'bAxX~"79Xl*?|i ZM%8j\C=X`b`4GdJp+6=2xgs1G;OO/F ˧v9@6[fIJ\| ;vF2NhP8,q3'F;jv⫶jJ_5S|҆?|K3GLJ9ѻ +‚.1pK1Fi4F!tK(btٗ eS/r5 +̿dS=Wȋ+ws"HhEz5^`SLWAnnRE:Y3SgNps9έ-8J7sÍv¦CL20p̑HSvB#3W2,쒗  zȓ /[Ks>b.6dkFMC;#3񤿿F4"+4ג*54\SNqdSءqDX)t._M֒ܶt @qa23m Skt6~a TE]L>f̘҃{2eNpy4F: $=``1cB}2)0H$Eᛣ~ #~|IɞEޫ֪:Ab'3ݨ_|BRD=+g)\PIn"oqi.{e7HwX/%K!My=^3i.#SKZyEyrIu_KǴY'k& B?$E6񄯓B7kIV3~?\G MkI͗t̕L-:`:f~끲%fA $aE()0я$ˢ'ly[b۽*mRh-2cD{5z^8$ ,=7>8wK._Qia5MGs9}9[D@"+D̍p+%ؖ+#*RFN8䢿} +ՠK]ydNb@>VzA@(EX: 5U|Q+u(`$|qW$bb0rR0tЃYgѰ,S˝`2K]`=lo[6S + +qOJ|OTG^~Z-G1WTZƹb=L+Yʦ?=z+i;t,z3Eq7"( 4܄2Oޡ)Vf'Vĕ+Ԭy)f[rV c'|0¸Vsy{L_k9]c$~ +@&AVGiX?IpviQ S"ŀ.mr-DWbmȳhRo[O!Wt"7|mj1.ێl, /eg'WMnbºx_3T$,Nci%5"j鋢tsS9Nny E(Қt&aUJz J䏹 V] 7h9vwlo1m_ڙjGd)d{Ʊ#tz/8ϵ>ܫaנgV}0qLlҾmO{Y{;lCo[8LҗA}=\n{'L =Dj;tK>]m>XRMfd,8FJ0'a"5SPsA3deAsFB I!)nD3{,>Aɤ}h(M:{dRi]f/(s;1\. C8ufL}o吇~CBfWgx?Xn3@ ;|ES}޷ZZۮ~,{}uk7\_먯nխoZZ[rխP_FwX_ Y_:c}{.W_ 檯VՊW+>P0Y_mKW^32kץX5ЭGc +̨Yu^i}_VyOu YHϮZ_RʬE3YZ2CW^f Ym~~*Q^}-}Xo}ozUo޺5G=mGzk[wzΜzkuzk՛RoZ:9#| +9+V\quGz֊RoF;3T"G5޺#Kuo:߹zk(gzcOz+?ʃeU-34fW]>g0s=bz7ZO yf=6wwSw\x5yz!Sz*.SmM6^AUbZU5TW<: _kK/,n'7UVXG ֡IjԬ5) =quqhq:So((dee8cqF}vmGh q3ANh`*ʅ3`D1ڂO{5^`wTčb"zݪ<|\,:@@W,ë= +"$-@܁_~<&ج r6Th0) ?9% +N׌SщǾFɃQ^7Ҿdq\F@VLǵ^~ D $I8qmMB Ъ- &ϵsӞNp(=3|x'%^2\BptexBQbHB.rfɕWѬ01:VGH?!s&c }NO`?M #;VИB1Z!V=P=F! +(f|msFç&|35OeȇExWUpA?K4?57Lƙo&^]Hv+Iuz؀eiv^v!p)gMu7uS:\ ^15WuWQ/|J~#uݮY_@xB˰d#/#f!v`:B##%9j +>硫s?==*sZKvûm4#Is>712Xq ZJN + (<[SbcA8{a/g3~\cobꭌiLGC* ܇N#[(enpCA)P̳?yIXXμ4@Ro" R +cfLgR28_dkD*@҄D +d>.by%,h.Hd] +Kf )w7:fdGd-搣=D"邤ۈ{+I0a$ eAxb8 _[oE5+"y@ ]teqi@sq-=_ײE _%,v\oY҇r21,0^.XR8]6z8 R7̝wV:a+pz&neVq+hXIV%;n%izR3s}7FGgjn`fYϴ@Z9W@n4ۑ8%_3&Pݘ4.i'zUpxIc9v&Iɓ`zy1)$Q}G2& //gSht10ڮ@|D3cΒdZ˯,ҫ)^"+C~/*e*N$R5^eī lWj(E@u;`UUyt(R~:Ror"UNE +>e[N|SΆOAG@@yJ3@E}Q1D}`ɝ"GK!BqWiS.NẸI!wK{w[lw chR\!˂F9ռe7@zF̏UIwdW$+U:'ǽHcʨ2N6/0wE),P3^eM|Uٗi̓2WmMZ@sGW񟖐 +%zZ=ʓ9`UXw@Ks2"56Q'A+pVOLT"Ţqdt4Z+hBԅqt{eX̨$ $ni륡ќ#Zmm!13·w|g|qĶܔH}̆oe[oC +E&ӛ|%+eOŕk!E_L[%A_n1-1-f`ZiL{1-89^[_3W',r( `Y =LS~DlOS+\W] 9ؕve](k +o+3{5qr8Ī$?ޟfӒȝdWѤ$ShA4}wç|n:>SOnS!|>OwT( Se9]b.~tiQ<"ISOS2l9?Qě]bEVߝ28 r$!y&'ѓ)xxT<7Q\xAdG9// Azƣ ƣ47ZP;Cj5*]IZ-CS8mT_Q~=t¹_*|f#Wk5GcCdž>aJDkp:b'QQNl~1*mJ'ԤYƨDJDbT3Fe/#0 M9$nyp1C| }Txy)oGDKKf }:kzlm'ʴ WgW5U蜒vj.nZ7B;H[ "b:J R7C!u7m 7YF8zԅ#-UŠq q4f(%WuB#iV;j%#_ +O7⹤Y > +YE^zZs=.=ސ2t,62$X_G%fZPܣCf!T9M2J: +ޏzj# %M; Gg1nL?>Ƌy/d:F-#iQ{fTϟp v0ٴ-"b)`BᓫM ėYڈEVCD?`2zE‹S?<!;$l"77h)cG8fG~EhU2S 7My" (9$k'|-t+-c >m%ţh M|{{&Z6C7]xH)(Q*< M=dr2ZY>~N FX-c(5;w&BԖzHM)s)&F'k<7ғ9t6I ~ +>< 6?V)r@7 z4-*|);y wcPYx$f@41Cm^Ǔzz'Q|M̬I.bK4xhR٩B_~ĜҿPȆ0i=i)< rNMAXg0o82zMJU7QknθbV'T 8T[nn. Sm-5>ҾIfM6 3o8SAFцBDW~>JaV>YefR01g?©cC8dY`!C*y|o*q椧gkNWyIsM[\:#)VSCa])B|mb[uJ=1'5/$VON11Xf01~8_X,q,'\\uY>'kbDaXsa MĐ쾖t枞'%V:: 2`[M#>3J=fIn 5$]biI kdI6;/'ݑF#rZG/X,d&9lpul>H-ەٕm!}l^AS|<T Y4?!(e2p+LOn^yϯ"%Bo8;h"( ]`>BP98˹PjWyCTaW`o'l`w/G󝭎XnA M8(uǧ 56E$)a祄)x3;l37{!$ C5H~D )>޳cnQC$/]ZHp˫ÆVf@5,ږvt oOl/쭃 U }is2|u Pl`l/VH0}$ʙCEN q2B/ȟdM @Zy={]/z]Ӝh;eVuD O.Mm$ѰL8Č~vg SGb¥$"\dGOR>D. 搥DrU擅|2_A*Sܱm a!&Z.Zwl͜6=ȂՎNa;rSk 3a$1 =< &!ɗZ\bQ2e"_>&P:d=fe\lT@mlskqN͔Y]N٨uiRԋfxe9~RB[<x+y cݐ(gL&yK˃Ǫ\.M +7JYHr; { oVwC-t 'slE$?3l朾)6uggBfdc|z8~&a?1ٷtCq=q3AI=ji`Z4PLz_Fwn{ ۈm#cp ,/mKrhbpf}q3N/1؏nА9^;dp8A&H6ӮʙdC ` -u Hl!6=R OO G.Gcxvk U]W?!xL8d^7a>䣑H_Ct@/6+eS6 Ekfz뺙m׻{v_B]]r(MOq>k BOUYq l~8(j^BfSOӘ} +oOS?_pjj ̩$=deQQ+eC/5'IkAѿw.v_沓g<f^5'TZEJ"sz+ya(Yt[1LaH6, h++[l##. +r Rid|xP&8 +@mziQ!7ϔٲ$Z@xʼg*DΠ#ȡ:כekZsK j_X Z~ke1c#``vg(t-("J^b[?#dUQAẁj@[y4!ityX qMo.p]qBRbv2ފЬɺѳ)-3 +\A|EeG~f^yx\ >3I|yzwo+OWi`ӱn AtAK2d PķއU)X7JF|ěNPoV| +^2zd ++K.%Q!kka w|-uG), S`.-c:E\ZJ Gx(V4gVeo2;KaSU B`Sg-pAРؤlbP¥s/4%)C ߤAc`I:l2 At}fȈG/O+u"aY +($93!Idہac-6E^$_cw8h2vTz@b2fgW"bë.W]R["x%p2K.p9:P%$ _rXB\" ^^[a:S6Or(G7z6,ɥ~4S;cǒ{ݘbP?B 6^EC&iZ! +yr-8gO("Z/#BHy|r,*15+~g@iR ч0?|+2 p" gM,O9ӑQOxzD xB" ձOvsW]DC4a6$;(U]V풹'ɼI#t+vB׷@WjMn7EMs So؅(`z_6]G*Ikm-YZ +)g/4ؿC$D%OLfɓ(֢IdpM<#Ҹ #]T{/퓌~6 $ӽ]v^- @Sya'ǹxwqjsEƀMKo!DV1m]-6 `3`/r0 "oKmع/'Ր'P9`9 V w ^I Y<(#H8y&x$$i`VV`VQX7<pOK/a -G7.V(2N| U + Sgbs" 2N"'Q͠`{-e#@֩|)fۗ Lei-Akb Кb50MYɽo9fſ.#!-L6z.(=,X36b.BD{ۃ.YP+AbkU;c q3FaFϹpq ~"w ((>ۊY{Qe<ҵmei96 @zjf$di Qd@Xx|6~w҈H%aMEiBe47)E%uսspf: <( +̯ށOD?H!Ƣ;"mʑ5 >C?xq݈} +9cr1AZ #V"GYMG+I {`%9_jC\"ꯑO~a* (9HGA:Zy]h:bof3M&%vBr[(1KQ˫bl&Q*g3Nzb3 sW9t^P-VޱOmJ6 YO*2x&'XNT# ;nXr_a;<-1lНzH&!$0 S;II't nu$!ObJSՊ(] IɻXlFW~$9 zO5 g6wyC#t+=R(GYI?0}o=`5PE5<Ⱞjk}ӭڎ#p,=Dz>F3ӡ]*. zl*  +J=`&̘Gđk]QB?#m#SY&5pG꺲^Y@ )] 9U|xE)17nƊvTps5PPy뷉MVט5~b'bG 7'Q\i*5j>Z1Sz{֮r0V¿)_?#qį\-'4K#5=q|FߨXnE7WVG*V"qvkhʁ=*G7U\!j$eXOp:NLil0C PJ/&JKm";nwtמrю#SK6`Wtr,ty{4̉%7~ϳlDMNCٓon׶PNIYJDxmJ'H is0^BgfLql`(o F7n9;I̯fhw*q,'8ط/ +Q% eс5'YV ĺ% zYk[ VX]2lp_: /#gIҨ!$PWzy)i=5䑳f.l,3^=2ӻ.kFA~Cmhm=}}[c# ٷ&5fly.̨Wj{,:9Y.Wϩ99t2*GEZS7 S F+8]MJZL.F~~c{$õw.9~b|*8h,_<>]RilQy*qHpO%@I:^.6d2cDXQrpb ԘWr,}տ%X[HɬF6tW'5LZZY/2;YNP)Ð9YN'Pbr'S(^ls ^M_-oR)Uz `=XsFsgs޺gBn݂6S^98\QJŹX:8=Wxd{mg;bO[|x mdZ'} mΠG~8W|fkͺ&tŜEC6ɑ1ЩW{" ,Gi0=b 1Knø*U=H5W2]?)ޑW&/E^jsu&sQwv ׯMgnO:?_ܟMK/?/OK$|d\a]ٟl6=Hcux=C䧵b -ˇLΐԶېxjp +(9OP&]HQΙu@L]03Z|pʍ:߾TFV{='0+ٽs;!mn\(%EEd8+_nkpQWPއ MOj"/mdpiCق̱]|!r VSTia5X4-jV j 煉f-qFjb4QrI".pWc8rjڏ~[bWȭab{ic^nrz,gPE,zб!^hћ xg.5GΙfY1=6w(CMyM*@RHts}Y_x<\Kxa(?x|-<C&4\p b:UlͮwGn0@dŴE1NywI0O~1 }^m@HD`_zɻ:BfSnE@_`[~Ynfto\5ź}:$'W?2@FjT +Wm1jɁmKزr#dÿZm& >'PB[`Z)kX*si79[W}0%HZ~o[$lިCmvu]ꮊwB滽B+^'^:~\W)_aDaɫ%1:ShKxRݚM.kwE8~y!*X&' z|u[`E&0Y6 +"F>\"1 yqX >??n?bE#BH;qB}rF6M JQ֭zT$a 4K'݃*0x]3m Emx4&.3^3zR?9Nwn@8dͅ[r)YLqX(csQЩ)OM뽈vMeKEyg>Wc>,tYCytokprW7O$R$FhZ]'`5<S (:)tN4z5u\h~l57?$((.֔t2+\RЕRd%v8M"W3S>mzowzLj2/$AsUXeUϥF`t3#nHZ3`.7zH.0bu :wA|k% #&)Qhܔ)ӈ ܪ?EK?ޜ#bV^)y?5N+䌤Ig`F HG-@.k, ZF;PA_#Цt⹜d׷/HsBk{i <]WVHuuϐqs!sk\ai՚5-sdփmhπ09Z=35] ڭfE|Ϛ6 ?kYgͥ*@M?fK}f!(br,#v*M`6p0C_"679nCI(h;K9 kuh tBjhx"2Za'z3?ٸ4R$d|-'u`:VaS88e{ph3vmݶ2 x +RwSBږKJ1ƭΠcNˑ`B8zH@Z@~8ք;p/ Zq _!()|uǃ́:sP1q(oBhRiM\oQaqT⹳p $Zs(n|Zp-Mtlr34Εyϟsw +iMn]H1ut[cccc"CŞQ~7q.z޺rV~ +_i_>2h+=̔Q-nBΦD^+[ͻw{:+%ISjc<4g65.^<_{6v}ʓk|IkmS?q +㞧ؗbؗ5&>}Jf:Zv?|Mдrie+N(,,*6GoCԼ#?`SK}TXEY{QMcI-r5sw6nMf/_1^VGoS$_^O^ʩˉM^T {iIaPvڪͪ>XvVjtY:obMm7J9ϴ-q:dAҷ_pvmCϒπT2hsJ I^HAF 8X a9RS@d2/PAx8,j|-i{kB:',|!g pA?'>;#/XOF8,r=L0qJ҉^e'hP: BA•#Kn ' VVT҇Ȍ=fȄ{s()o ~?,mO#*2"ř3ApZ~0(=JVoXlXxz$@ +x+flK*7ӧq3}*m?\g8k վ 2oVDCyF/ oBن4 +G51ʭq=+hWC  \C,GWċOg%'>߇?C@:cef/{u kX#*V\#\ڢj-Uj+IA6!}`£uur-54& J$$h{ƚ3ɨL}Gs!w}{_k2n +c:Cn5׮߁mCv^'O +eWZRZ̚ݭ+orFp}NaUi:L%Hglԫ5rKy.f=1?ɥM1G(|av=/א1mĉ-t}K ƪ7RKnպuupOEꎼnOw]n>#EO!VSgy?g4+Th=i%xZz&p[l؉35.GhٻxbR8'?[Is@zl\f̈́D]Lqzʅ/(/8ې))gJ!LwKvĤ* )S"kixQ?IUs@;k)qwcaq%:e$|$a6"Zʊ%"d#z +Kb|:O]%Sr5oB$Xƛy&n$/JZz$q`zMx zE-0YKzaR h^j~™ݟ'+'75AW2TIzA=^_NIBdqʽW=?N9c+)h }EgȂ4g{g).WübuZmSaN~4~auY!yi/);\iKlelny 3_NL˝/o߸-Kݛ2o~Wܰ /F +$$)%?\c_k׬߶gĦwIoLA77=n< +u +'x4xgki#{zx]_b;i#5vX`#_js_m#5VJ_ԓw9kD]ey><<ʃ M ؖSDu{=H:ϑbLE[Ws_ ҈g?5b8qjDٯzJR ڨFh{0uWv05e4yt7?QBuȮpxKo: +rmLtMaU eiryiP.㋷ϦYtϑ_`kzJw܊ŀ{|Z6B(h,rTs488E4D?ƅ^?b[E!'[>]\ZHi֡Ǭӥuv yD\z \ ;pǂc9%ۯ:9b5=m9f ;/;Dcx /#xF8O0p8t'i%SEE1 Wy_U~dzv |&lrwAzy"X.ir|ړʛ1Jׁr7G@Ōں.$АJVFi8), d{@@OK(s-v,L mł>61}Ɠa=TXλTre +xolt*U[Y,:#6V(X'TL wbZs/4m{.0h咴`*Q]-L9)4|ks. %˜Άc.aƔcڑ'\tĝ)T:)ڋyyˌ/3/rc&GЊf֚4):d5&!d\cYQrd2qB >@sn<2Rn!kLT(v/+6/\pמw + :9Yk7ߖ +Wfp )?szEt7^3ҧ˦džl g +[c+TWm6}h coʹopk}A=38|FΊ3ev1>ho.4cܛQ+j^X1[d2áχp(Sp<xu|Tx3xh̼G#6o$br]jTԻ+-:w}NfI?L6Fj)(cz޺$005Z/D|91.J\YЋT#p_+7` wahpTi9zL'W̿˗E%<"͟CDnRQؐ0XLO+["%o λ۶~GwMΘeQlf忿ENyY:G,]%ڟΘDAֻ2+lufԿ9]#;3LT'Wux1 @F.\}`1؍Ѹ2 yrijG J uy0(zɛ"rWr -Z6Qtp/PZu D3GŻ(J3b 6""xMڨEM^EiׯnIO%kgJx>5uՑ`?Q"*v]YreWԼ'l!pck-Tf_Uq}0 j 'i65oΣc GB/׹+THT'ސ )-FC5ke66SOZ4juϨgޯ3 ?~&֝a}nDsDUܩZpU%lAޥ_e I LÓѮH2 O!>7SP8G.г 㟾.aO$hBz# v%^d{ԏ1OEBȐ{#C13BCA:ę ꛎF0ڸvC(a]9?z=S+@vC DBIMP}h|3r!s8O[i +јHY+pEϘ_S_f_XD:8)jEkUV˴~hֵjsyվWtlswf~XRe]n&(\UHE&QڥܶEUy ^8ۨΖa'eZ\'KT% +⣵^ 7SdEثbN4HsXƜG1٩ "4KW8}9_.0{ЩߜTsT ȪJ-ROdfvTYfOРD `7n mMY*:H1F.taKI#s54L Mte ,-nhA$Fs~ \Y#/d g5݅D08VB߉-~-s児}+NFfȨD"ڑ\ x[V>I< =o]C F L;yU筵0: g%>o$$y z=o9ppRn*ҏ=d>b =WSld\ZYs}3.к1&`PP`zy4YrxFƘf>μɈhl +? >oiaK+$kk^eKJmckGz y!M})fQyUӃK@+ʔst E-grըv`r!h]/َ2Dd;fUW[3"^( 6޿VVpG/igH r754fB)ʹJ,nHyl{6ZZ^˅ (|k*g qvCc0w-Wne%M%%dP8B@nUnYw[׬CX FYx; +,saȌĐ!NbwfK>-&tZu9YEԪٳ(Q\Y<.ר"i?y :$0j\.JB30jm G%t2p9%:*A`V"ڙMA ,S&lpF06dS,Ai 66jlн$sHc/N_w:/~4hsjRXGǨ.0IJݳ+}|")*Hh=V!R"koUP_"~gd0@O(Prtu=BIdpP J8pJ,4?}X1̜ Wbx O2ԪϡMpnekE—DN*ዬ=$5tFyWL.dZycLF b{jM YDϛ4lع3̓+ޤu6 IܾBHFfB)BBILi&wus:`6yKm v'ee肝 æ=){PJe[/<˳Ak^׷PHgHԬM5J$ec.0P t0Ri/%Ph(skjHQ+q#GPtE]뼭LN,}NSkwɄw!~SRcDP0 :#帬u&TS)(wF|L|G%'KRHe"`ӕ])')(<tI^H^C!%+ GRU@Sp CћxG!jy(֕hu8ީ%'hFGό`QpTK]\p?y/ᒴr7I9|zgdl]UiU]mR[ՕHgV__"!k:ix6*= +۠"T`: +0l,E`1XH y_7,X\4{'5w'7MǏ &G#COӠSlչn֌O~=i PG}|4EُЕ}4At^vnWW5zD|ۜ?I?|{َH[E /-$j3ѝΈEgP[#oԍ Ůg:쏎EpDnA,[]6o&Tסh@ܥzEbwp3`Պl-"\~\vr\̤uBјNDljx!zP5^| aEyW&"~u(/ǔhX+z&^L:GŜc] cbC۝2 -R|Ꜽ0qr&Ƕ(a>AtV!\+"2*ThQt%,qlx;ޣYUFjx~i*d#}0 yh\wxӬ˭<=5J*ՠܨI9RYi^G} 薱LC c_ H#SصuTz5q?d8ugqxˏ 0 e49;to5q $h,e8SpE]o6{yl[kV +YEe4D1ߥg]ڷ6D0gmHHPr5 +=HXR4Ecwʂ)ңMBռ9bƓtW@9 pd.lmAO +Cޚ +◈E{0\A]\Lo}!w8EƝCyըyLVҨHY>U)%y,˙3pBY.eb^ O%YH0<g2F} 2AER4^CS7b^/7jO}ʈ=! LW h)OG N j tO| LI5/s"YEQ%s +E"c 1PzI.YW"Q7b#P@D̦yQG|D1!J:)E F6Eax4ǢC,`@l+$)ѸQa$hg^EܐГziG[Td +A"U(ZIT&5 xB@).A$y$ 9ˬYN^7HU}C5 p@>S^8ayt ^ Sa7 /kHr5'),C'1f10rh6q/ 0F I%9J30_ݑAl?vDIP +VN C*gC(2Qy)su`,ȝ@ݖgl&&xG(MT ^,lTMSZxQT۵~ZdDX[`"GDrRĊ=PZ-Sx6iӆ=9iW摒=/@}/?d$% CӺpupY: HB!O% WKj!l:A=;E٤WS 5nʹy!1 F"ÖF7L^\͈ 814(R|H" K"5U9Ѝ)v|XUKUˣXFVUn`w$jMl%yD'f#S PnO[(*;GZwZ4Jjh8&9V̅`o +lx +O WGu#+|* +\bV +w3>{?kQ׸o{zZL9/-?wh +KGoンxl<>xWqtxe`/;KmҊa Tp!)}!X4X>@ʘ@u^0nPMc@}zH"4^i@C@6yr Tڄ2O@$ $ޢp)d?cP@mRt==m&C._%-mx J'Y3jJgj11XvUGqJnhĭ 4p/w,ա0Hч˓p%$|Yro+o+*=i*q%]%n1T|_zǴ $U IUbY1n@F%5K%ߤ*qT]6wӴ9D<[+߫whiZq/V\nq;5^սKmId^p%U9-Gsض ܓJ~;#-;Ŷ"=xv/6_z+]ho \ev]9kwEuE  fK8xUúpEF3$ +ΩAn\Ƕ(NP .w5KG=}_nnsR춊"qo%w;v;N7 4#hU +pS9s?5CB֧X*fKP[eKmUNL,$R[D"0DCX2Hx܄! xW +Bآ^c_{f'd}ޞroy'7[Ic(_)`̵VD GuʡU`CH㠖p".S_bkN؟[ɏ,2cďԏ$k.EUDR8@y.v;eĻ)b00z\<{x{$ѿS"2`M JQ_Y\RA?Ng5G9d>, +lx4xGJf71l!}H ZB| 40L-f>:[I<7ix6 qF3,˛4iq=?@] qr ? Y:&q gH"yD#A*,c AH,s 5wc^Ez*doQL9 >f)~d0y bQ*|U&y /'F=y;1`g2dCzwvq,Jp %rq~_sY8^~ !eZE{nBF8d6iT?!V5UY'6h%pW+*4yI^ߙ`Ҿ`=niل)> V5t}T T>)NC:>5:xu'"S%vQa+W}zaWo e֎:i>L*B#C6 jm*ͲJfQmZiڮq)͢|.g#U<~t4>h0:z[n)&y|=ʊP.0笥~X#c@oۘ|;o|yVo~-,96oܵT[Qu{}~whaߧdT&"Y}#. gspPz_ q}RIo. F] Ri}IO3;wl4wB-gGw4>{vBysWڨuoMɶr{EC53\>Md6$v%zr"rV#`-Ur%'R 6Nθð>1 r:"2 @%VsyZ1w`m\7΍蔉{dbl^X6Oo9>"t@FY=]O3BoGh +{,F=8QFZF ĄGa]674{slG^ZB0Iǩ儦t*%.#wݖH[x6Smwaa!_r#*JL?/-I#(rSwk@FIٹrޒoԻ`.fZ6Ơp9hvO3XDR8p\$xG&L6q NqFC.n͸2ehPn$K:-4xK).*S4.uz,í߁':[";U$蓰>lQGYo=q?/jsJ=brQU$/dEDž4j4.4{?W\.uݛk<}ۗ#;nj/W46.́5dvu=xjxE3U+FliP][]eR(S{43e_V64&oZڂndmm&~C%bLA<+JA%\D ~2QR/ay4=y)wY+;ZV^K5g6Y6WZV4WfOfs<2 7ةy+Qy[vj]%sf}Es7-"gwܢۛ+l{N\QA2>36=@eR{ +sV~æ=ēH=:~;yjS}s +^m7% +{kItfV+:5(ҵ(e3g !ݟω)ֹxi浖`[p=Gc= χ%à4|cR L"/葉s% fH[+K/=^`i"<) f M qzFJ)?ēdw5{n$/ʥxe<ؖOȇLG[|r^x߶|"%İ%0#x2yߓ +g߳/ +IMBVB$q-y'6Y8.WxY0.^"7̓sO/4x1ADL!3v !!PY&wI0K $ZyB4+\,\n)\Ƥp8C\,8-Kp筗 `K!Q&D ̕9RH%[LL.@a53{p82R.+n.-gT!`)Y ~ +ښL=~h R!QR#jϿ/¢*d&־_Ģe>wo>7 Z qZz35R]3-gK?ۙMdfK@5LKuwt| * XkoSg'CVR_P>Kf"m^(0?XѼ>d'x;S=N33U>NlVYqՍw|̮ef5>JKP&P};ovrI:Mm$wݙhtݝ>;(NJu'MMEqU޳2>m=SsrA+{\=il֎_6 6/ ڌoś9ST8SxU]8LD*O@p 'i&).eyv$߬_GtFRʿc*>~YV陼0 +p'jq%~nZ -+3&DkrGS=B~ɲqYZռ}6@5c(@abVOWynn0ovpPʽjNQ:+9q]#UGm|O,==fr ++ŁV}$m(4pv< 7Zѵ )<ː'ʽLQW,M9!pa0Jdӭ#FchH8w`Pj2-^8DspvPUNӓٿSv~kN~[W+?j_C;/NMC,+"Q:uŮ+zyN4b ^6-b;VueGp&h6R=zeNTt@uYezMu FQEاP,yIt.ze%[oo pc]8c.X o['+rи z-:Hn>GB7Ow9-(V2s;ep_AJִhCXQ?1a*B*lP)Gba&!ډel#PN8ʑ EU_(0 a"/'U'#-dIA"҉K5'5u (#j \AꁦITrrϥp}H[>dTTr'.?!}}H_y%A_+~M G{(reUnȸoX G`*j0&]V]C*HR?XR({u( z1Kc^IʐB닮8|f][DODB2K0$zu6|j;!^I!e>}'dHY}gJN:)$]k3Y +X(&lDXey ( rN'LJL|&a.A*(O "_cj!~H\/_*&A#DG-qjm͒XRׇڧ3bDڷK@Ai( 8()P  EN%R$C 9Hx^Y' +6`]!Uʥ|_ [qij F$3ze|Oqd0V$Ja%(SlM*ll 3aSl(eJ.}^6 V"ȆW.>@?䀊<{Xm_[bth +cb?/ai,G5tfc7,%X؃F2?1YF?~L=_݂%ghrQf0:_To;'bQMz9(Q͠nAz%zsUiˈpU XocK _(:ZVE1ttm7r4Jl2$D:dd 6 3W= K6ܷؤl`P!&2S$ & K& 1X%z:%SabnV70W6ddPPi90 m,$+K!)qx5/rUdp]ZΞqHN#aZ? ݯ6 WSf%aTkpD`4,݄!d#ŬZZ@a9+ *̍܈148"M`c),bɘ'f_ i}zFL;ؑ/VA@նHlUU@ZY*y;5m"@ -UFê?U UՐھf!AO1*`1TeȰXR3d`*sapI򪇦n ПaߦQ-`pnf{tshl~tr׏DR\϶HBR1M,B1!.訔T e? 1ې=%?P| +rx­7s ,2qUR*KU03ry!; d@p)Bm0Mh9Y 3Y唣x_gF\WAIX`0~42Ҏ)N.osazCadjDk:c P4.e9{kt` ? wh/u0%f'Dz+B9KRl2[RXc=dPl^bFzZƖG[M< +'zD$4v3hZ8lmxq5yp-ڒ|j\ t0Tɔ#B9}Za,8ħL|zOӇ4'>v} 6W8;B4?*:#*u=TmIP¤T09#7MR<7M=H<D ۠ A6ղY0?`skuJuJ bļ6b4&d&7МxRͼ0rF;*b#T94^[*@} D$JzVTY`<+ 0URQcH9&TSabN9ExS5]f tKK_4.hF~ ,W1hjG "kEXNhP"Cj^TR3 Uz4j>#3 xz٬'P@L gm/#$G:d3t +ao9aG@z"Z=Yg`X1w~ܭKEccGX$v#1S[K3~ãj÷!yn90GU+#:zt^f+kyY)VcOaٱ14p f(|DMӠC{zcHԠ?} yGyH>& jLMqP>4C͇<3|1l;o;eaE__$&K茟1r ++5 +wYtP~&#̣Nҏ~xcM3 G0wjb_c|h2z=7*2dRqP #bhB`i1R CIΧrOIQa9A>ah\!6i|4;we"0SСxy̓7oLT,EK-MT)IN$Y8#r0E[q~o&Ń7ؤIr ˒cV<^)\Fb"rW->^ʖ#c͛z1I&)~8&6&e\)YpI0[d?R$5 f41Ԯ@h9~iyQ~z|yˇC|P|(_>r(E|>ˆ|"s|:|Iʗ ٻȗ)ekB<H|ȗsEfȗAH @B r%Scnׂe$XZZYΔ% YDZ\"XLi@LYoJXW*|A!VNnB˹)ZoTHxq +2(tcEDECZ\IK>a.ʾc9\ Ϗa|lc#z}({%GŽNOrSkVoozN4" + c <}*Vo1lKxg.[aHP_CL- miOE]Q܂`\淚? a~)C|jT e+O*.M s /\TS 7jᔣfs{#+mIzÛmXH~Kp&`z8RfeRxʿՒ*E˜(qץ!| 9nQskԴxZ!50퐨7-o]!߮ϾGɇ'nMK*6(e.DQMlVyXTmxQ^^>nkVJv4ߝ9 uqf#BS]*/<({xPeă |9;&1#<&rH`n)Dۡ G7o<U v@U"Kպf.7\83+7\*i_ό9Gz[$s="= Ws*'hnD)3rA_zl(1WtFtG֕`,ќ7c[/Fn^9Flܢz +$ \n]RpCx:?-~8v8'w#. df c?{~r,Z$i5ov6jE#j:n +>^d-w U^N}T{~:B :Oxxwĭñ+8ʈv l,C*R 綾T%#@PDsխa{hjfnwۏSL^`}>j~8o]`ǷwXR#9 +ՙ]攫`FyK)I O I$h2TzxTnpha= rm:׬ g1ROg zD/盽 y ?v +Y,ǾWWh 3r8mNBz=9G]$GܝދE~lO/uUug# 00RڬF۰&Jۄ˟LD?J-f;CA3v2/Qd5k[7 %3_KB Iɞsw{3?~|af޻{=s=w/%M Wv3Jym{(=ek + ^q{LtmnM|p¤wEI#;\ ٫2rf)ַlq2̇aA[-;x-nZ쨨" +mZX|4Hg{|̇"HYCV$(80|A%]AGͼA4e?66F|%i\wҦ‹\ S@ɸZB fXMC '*P?i縳n@=G'Yz|_ÎLm8w4m|Av7f>:CnULAMKoSEm{ۏSL'` Ƿd&DJ&fIL}BvOFsw񤺲~bUR_\C5[O[c …]>V_Kѽ&\Dd+D'ϳ~VnQ^S=kPocgtXy))P*%ŊsZRJ@:ȺV~-jˌ؏'9 e4^,5k!9}学}Ŋ'Dq̀{ 6wz11|S tZG@SZQH8Z4XDt|VSd s]LdXgZ UHp=vf2®_?dw 1qȜiB5NikYQhV?a߰6'D $يk7kJEN+ㆵa߰gkdIJi G2HHpsF~lS6>X8n}6k7R%HƑZ +O4H?UdiMQl%k+ɸ$@Ցݿ +Ȟ6>nZrH#qC2>nHuWIWk}Fe>xPhKxm?COBaPQpsU&-l7ea}QjMHǁw}ǭw(m?٭\ouyg`߸s^dE ?(NJ'וWBŅ~w2R´´zaZjߠG^XOLsZ~)m#K+]v^w'40pT?^>h`x//޾$[XKU~C}}clWdGZ}cm7I ye]NR,Pm,Ю4t`#|9'HHQ5|%: C ŠОO_~찖ɾoxK*i>0w]N]w;ax>/M0i +}nr y]#I9QJGRtjeQdJ%qyK{T;d@/% +ᮨ酰-,k +MZ1kCC ƭ~[4 +5 v;Lل?vYY LT!QȦ)t0|cgD8E1* ޵uy[S,wګJq)!LaJqnGdK}5rr +e? cׁ*l0T!]l)/ 6&o5sd!phgK=~*ƘXo7ܠM26I{U5 +fP\ +rfXٻID97,kF}STFɽ*Ll3d`ZQFu6_ȉ-Z87D5(qb*6 hT/hhV<\.<@s( IT"r*3 94H,Fg 29$I`X mJ$bē1&(U؏Cc| g@T;7F Taܯ^e- ),xXT¢:sTq괪fQU귭FTylL&LX8 ~րnr֭ 5Gx@xJ|#ܮEŀDK |$ER \ ,񙲣GBL)joRNmd{C`yc4"G삮'ztd]Eb[>7յc@ߞl৻nrAFNUeƾr +t=`pNv=(+ y}d" V2)I:WÊztoo XH:,˭pOqIi"9uSOU[I +dK/ +ߋN@ՙ݋h׍p҈ͨBdf!?`Q +t,Huq=˫-l;LdyV Q]58DF,Bp8 0:AG(v[es<W m-f\EŠ5> mXF>81V^6rL% #0TmE a.:Yebzd,F'0zs2(k9Y 0lo ' ]]u.ؠc=qO$VSKgKa|R?ژژ zBNޤ vЋ^D\@+]/ހӺv[.53 *`,Mh`kzm$io =Z.%iBY +͉G>hb.6C{U;DJSv͔]R2'Ƙo_ʢ[h=)ަ1jo3TEE)܊6!uQƚ(c^HK2.NʘK2.}厣u}1cp* /EciT>>RR[XJNe!Xז]MAfU::8`O@z3MCY/ک.mx+)uz^Ujٟn6!ij-Ljl}(5`Z^ByhdgWegb;]{DM eT f]g(+=0]l"c>h|Bވ  O \,8FZ{x q[Oxxݘ"x=QawlawCkG1aXϦxnVd nvsbya@#6tg0aGOTe59()2!?<__)uQ$)CI""t&k +@/%/ @BooWB ;9b:6g*,y\"f(צ;6{fH.6%E.ヹ=)+Vq,<5τXKL&62!鈙7Ǚj))}d,p̒LUe|uҿ +frju̩Q;@r$ c n bD +E=0*(͑\ˢx:#l&x^%3\ډ+_ +aZ)DX<3+GR{é$k1Q@Vé٘D|jGOmSP/Ax:%,o;bA.+nK 'X[ƐL0j skJdN5n9іE[B:,JNӆU4*x2t&ZuoѶ?">}_|=tGF#q"Q[1KGn|7ASia0Wk&-:7n:X?yq$|I.$eMum$`E:6EEێ[J?f*;[u +ikqL-Z}԰죊}T +AbbŷK|[.=!-ߖTŝL|E)Ir^GX }}V(WneQsj]͵g)/ ~w;Ek𐮢8*tIz9l׼ϧnqaegⱔ)E]L.zrBO$ˍ`]OP o )$c[m\f\g" UF4:!wibqz MyT(s$|[*xWUϸGpP +uRD3 +*Te.x$ N9R+AD+Xcb,)0U!ϵU<ׯYVʹ^Ui=E?fn9(g{uV,O`Ũ-EKm)hdP#,0+mqk4xaaú<=NY6p+mCY;#["5W+ˀE<cs}ja&I' w={9fvG1@.j_IY^klr%׉< hqZ~K7m.3KQk0vZ\ J&Sr13'#i#egJ[s#&[+2WƎqۈd><}s? &gH&#M/=*sNolb2Ijl5"cPY8b!Cp g~jhiA( rA\Sspr#=w5 ɛ*%kȓWqh%0w"v21sަlhy)8Vg Oile%@3zx׏w!fϒw/O)/OO%ӟ)6}Uhc{֟_-ۖ_㠻$*V]i>3+c4# ^]zWp}x % [E->Cr 9lФ?v+ Uiv[~%Þ̶veqk3 ;Zn~mww`2HQ!7m³o#|E&]V}8F˿mNaBbGݯ4wDXgǝJ%'5wܞ@Qߑ~w0(i8_#9Ҳy& 71וj Q;{4Tѹ"dž.Z2 |R͖71roD1:.uƚ.krWS"DA. C\f +ŖdRM?b|$cמ~?s]2l<'z8a/]N|W7%ߕ]3I M G UTEDۤϧNv+%ffwݟ8O$[S5]Cw97nظc&-a/9iV+%#fwBUi/Z!!m/|W^"C+滚apJ!Jwm1ꤕjS%*z _͟ ǃi1+M$\IXyU 2601 & 53\WZ,1p%b 2\- \03\eRLbhI+{G޼VL!6HMp l x QW0<[&f$~9f[3&>1o]f[ccKo])<D='[C9+(T:1"\6o|'XQ`NJuihgKާp1oڹ@d S./GFx(ŵR\gX)Xf>~pyi˱%'<)݀O c9 +! +y~ Yu5|жkc_ѿp_xj^XvM/ʁ0r0a \i!Vq-ʏ/*?B/_ &(\+B N6`?GNj@+5yЛ6yb0O3ȿX׌XuiijrF& e灍uT~q Qٰr^Q "}#B_@yT\+gF!r չtgQ**#oqtY*,$NxxC1ϜSn2kYan<hL+D)ֿ9|b@4<V@w׆]|eԩUH'jl>g VuN-"Z=StL+tz6̕@%,'pA +#&= |Bϳ ;4#1OA_x< +PO\qVfmܑi[G8*ta uoeK<=Kj_]cX= &-u0 RE\*K^pSFyl̬+&}?pr]e\3M(ݐ}ݸr<GoN=mo.7:uœ-Wwm/8L^8vt*)-4,9WXG\q-NR5I)5)!Y8\Ut;ЙS3AgznPɔ̅DHpLgKڶ` '@Er<5N#r{FkR Vf5V (~"vE*<ώ/jq +ut;vj%^0r +IŁˊʦHRG5$(s)Uwo\pٱErL;TaqwH" m;(k-WxF]4W;~Lkz"HL;;Tob + Yp-U͕H"a:~ r~IbY(ISRrV,`^ܩlyK= + +КU F S!M$g X;,Ƃ64M'lpD B?k!$xzhd[瀊%AhPQ*;0?J 2 w2) EBR`sEٟB qٌ}&V% m% +|Ԛ% +ӃDfH}'%;ZA/{0GQL݊=FN$=9J7i3=4!i])ARV +Z"q5}̍AgTa5+CIx;[F_b2K|l..,Ѻ^sny2-ypxБc[ijJ<[vF@ `Y>  ~MDp )⍈wTzu>҅Dٟ;/O/ ^ +N@o혡OC) Bj jFl߂h-ABndqS^<[qtr>|8da{JƓ07dvC4Ѳ,iIs.u ~.QjH>q?c())~aAHtyT5 $)rt\C:oK V-~~"W}ʖ\ Z!F+-ڻJI [*oCqք9ؿl +,!R.ʼ_jPצmD$AjƞdmKMMKEH@džƷ]@1rOj {ll+vQ:m UXqʦb, - ƌ +V(ʖDp굇@{5Sgvb4M Dm8hOM㥓RXIruIĔj(3M03/Wcr:3(xT9ϚZ ;ᛣygs !bm@>J%4OV(dKou6 ()e8{x36-}MѺ=xD ̍l,$c_pP +&Bݐ+lSP(k#ᬂo7<0TA$,a0?Md#bI&!H]g5TJB SWok6R8jmա^z򚺺z,d7P\F]Mm:6Ywuu s%+,l3dzE[*Z汏pGE麺5 r -Ez3ugͬ#EWGx1ư7KWz-]]ljbnK`ӿ T$Gzzo[b"ј`KBGvO"iN[ FLnh#J~~nD˄~.+WM\kƂQj@0 +S劉 +ҹ$6ejuY`:ˑH+MO'R|* 6jq n^Գ#乁ASAq.ӎ1/emlHnP")[v_|΅9KeDk~պ#9 &*( @'Ix(P|­^+s{EBO`˃A[a R ¹߿ .PBDi gŲ}Wnp8o2I DƊa˳b n# Co mgUvO"sVj8W[R*|0Op/"q3B ton*+Q9U빝E̻]r1̽L5:_?ŽUA3#&s?-k=g + W\(,L##l_^r#e|{$j 8lǁ|aHuUk+=S=:AG/ TG =CJVNmtyxI;&| ߿ޒHL<_*HUg/CE !V}6L/Kla@Z^2Kv:T̸#SOq4r"(cԥPOa 21SɄټAOَ;3/#Z/HGv2ҒL"ؽ߹J?Is={{HzߩeN J^}Ʃ!kt'-)J>=9sh%Bk.Mw8yuYN#Ѷ'&3 *HIke~F;4Tz(*y(2'>5E**7͈qn")bldN6xΖT_B/>P"/'WGGQ-jRŷUL!,y93OkV?_o\"d*l3q=16L Y7acߎ^y R/\ FoS|V(0S>v U7S)4|(#Cz"[];۹jI!C)9r6Ohczol_;yM;vuclAc0ȍ%4㽴op<`RT3uo!^~Nϵdڌ/ #"FǛUWSVh{ZU^l㔨Ng¥7|c+7˖j7ͷ!އk,?h{ϟO4h,~\h7[lC6C7iKhK_,ҿ{(י?/VjkCVvu報o>U`">'o;w^xe[Mue<~>37޵Ⱥz[>|v}/}lϭPuc|n}<K³r۶zS_7}쿓X-۲ K-7˗`W6R_/_[cl|NU_z1oR}DQ}xUViadD}<k]3vzR'ԓ 9f[/LC .U;BՋƅrtBH QHu:ի;Zf1Ƹ֜xK JhS~ƪZZH熰~ފDm +55{Ǐ}zLqy]ms(K3j;{m|w P諳ur @Iڸj^>h󺑅i Im"N$guj7[ҧ84вXK +=7a{۰txy@oZ WU +M!߲uEpWqМ>HTv+6%u,2kHY+0\1Of,̴|L&8k/z,~[?w٭R.]V[.Žg-ِi19 |ć̵ Zt ;>7[S]R|q{K]*do(×Z; 3u fw)~vRTL$SQHW4嶵 ӏq!Rb;n]tˢm_zʦnPiv9m?GhĬCI;iI.ia9`[&w& ?9˦BTD)پ +luV#O;taH)eЋcB~TnS Wd[EW*Q d $vN92oE;kW5䍉䉬(5cPc`ȥAym%EiC@m~+Jc`{B*'A y/{ΉIsY'f )0/j=vEc # ,^ZuTO#o.E푼/gσycoц5oy{c^nWtI()#6d B |8kpAB*2eQh#g_(zJSkMj!T?`3U) {oW2 RY<~϶Fsr b i Z_ᒘ8 B2@*$&Kv'7;o.v\켹YOIϜOᄅ}S&t_;u߮,yrk!؊!I9/=YJK2?~ӨJQGm eYk=rk]<['ޟ.~;sP|K Qfa˞'8h 8>iu9`mj(>o|L:#M:l:[kr'19i1z-7܉bBsĉY+VI%a/' eDMzXV/Wʘ9鄥LI[+IbIϰ6ͥV?ޙ+;ryE'Y< ia lp@Sݑe2i;Jd&(yEòS5ȋ1{4 %zN;]eT_XG=xwMV6 OLk"%kgEca:sI8KKCmQ6%$rFjqֵ*/M~`.Xʍ兹[~]7~naÇ%> ~Z( cѲ]1fXK d:䎙\b~W?nj45~5\jxC#b:6 ](t_^oߡ8$-oSq~XoGVt(*iN{'Q{uTį4Ĵ_Z^FU=j=gBmNƐBaj|D|,|0b|c:eTx_ob^6{+i$,o~ž +o2դݙC[+7T^ԋԇgzCʀ +*rP=fdj|F uPinւ'*U%GZ [mB-ZA5 OT#K7pɀqy:6 ,άMf+&ܡ>X-De73.z}9Ő!(hVPԫsvGNb~]+LroO#xtk]*m/獮pDlS9`[,h򈉖ΎḧyV;7bƙX&jw&BT6E{޹$m?sBAXLJ}g-L:$%8?vz\k#(}H~5#-ai%SY~M/>Ymwf퍶=EQ`WϹed|L281 w_3k[eCe r|XA`g H83%Wn03bN9j'OmI,ײB*j@gMFp2уoXP,J{P~J7e 5AUbWG`*4 G"eeɪQ^Sem /yiGH^֯-9@kAYƭχѰVQ:GkeW\VTKAŤs|ĸ, [.~߯22*cFFm.̢ENoctTt{2plti,C+k,'4V+)B9b=™\Jp{m?ֶ"yhw‚j]wXeiRTh'=cfh\IQWۢS T[u[m85W9VkGfB)UvWA3j={N*xBR -Z3J-p_lh dXPHM=- f S*Ď%\fXpv +PLP ,omAg 8KYhmIt|7cE.0rTcCqLic'^x1hźb/6,|G~4UQϗaTtF%|7>O$d&8DzicZMWoX'mW){L2}غ4:5ax-#$(+66(‘< GC SkI\Td&!+:a ?nNA"Ы8EFH!C#ȝv|rEbwnSWr+t+#riWVXChU%'c[ֵyP5#QD8LHa>Λ7;o.|t^kbM1j8W58[Ca A^- /S<b^b(T#LQ)h+5C %(C7J>$ՄŬDs@7E(9 1(|Y7P7Pno.Z"""-1FoЇ~>ހ~6ÐH?| 0@ڏ xkޏѦrQI +o3xD p m$ްG0\%>Nioa !~ŭFYvPR{}1{D8| NcG5C[{5XyANg!IYvSt@6{&j.ŷ Kh.PDucsQUaǪ+$->boI'PlFs߅@j㵢skn,RJSn`XS8xGySN*hƹm 0OTىޔT[>N_#xAo SVm +vCV$3wOmAJX㆝I0~_6Xl9)_" >IoOѰnm_Dܾ23&.x5 RD!xΠ&"Z(kbW's Z泓`F-X"`s;q5wꙭrV0_q ^5ab)d%!x' 4{wqPE!%"6f x@c%mP>Ngw |Qjݣ }~=~﫱E9^ωG]*Y[4I*;OZI׊u>@s΁bጠG ŵҕcv-Lc ++.۠- 6.VX`c"kkBWcvʱy+r 5ku/*a-ߏP,oӾ6N'_9ڦYx6pf;=Ouf7CB}$#DkғtgwijyhYT!1֣^h޻^u%+^yUj7>iĮ-ҧ .gbv+sY-v0'ϳ؊96j[a@rq9q&ي7ݚ}:%[l ~nxpA-FGܭ(R-]]~W,u|Ƀh7l +2BBc][ݓ["g'q\vaԖ2iIEPI--UI(yCf7bG z-[k9'%7t b23SK0S5~¹f۞f\qb^yݷ]sZ S.[͝zbw3yEݺ4H0w{k9@PHJ}Rۙ}[|ԇ<;PKle; KV\nn|E1qZ=Qw+롂,\m_AS8l׷@?/;twPG]x|yb Bw@S L)Oy5H>s>•Q«O52dw-q8;O(JuJ:+WZx,)WUj&Ou*Z㼯?ЗJJ˥zNj{RחZW@wΣ]@$ TDDb95,`-0pyjqJvPj7Ig =Fج-.l T,Ѭn)UzݼjYEf'|BfɟgCy \viLxoC-@v{f@G;4L戯:WT(ˁ۫Vrq'QdŎɚ!;C^v/WBܲ5IE֩R/ٓh^o< _;pk|0Af{F0$1|ܛ`UMy}VQl_vϡ2sIs4&y(/ԆLJ9F.H\$ ׅ?_?{o?$2Hx_)Ĺ&oHsl +dx]- eyn28Wl{OVv~Zשk~eq(w#d)61([hGXJZ‘;P[Y,S9*s K|y8,V LE^$ +4e ֘<$eQ:+Nf8;;ΔGՆ~.1CUgy|L2ߤ +g(5nTIL:HEҹP|ћ ;sCXi;f! &MgRd!䜷:riy^R3忲*W@*v__iV"w%/t+ɜ=kJҠtHU3k(AyT8DdZrh&֨(DR2q bg&Y'idLEc|wXV<)s:;ɩbKS MʑOX-;cN׵;Mqx5@ ~H?hg̨f%Z6wú~#E#_φyD])4r6lx I*t*ڙ/&F1gaikۦE8?|^۹j[5.iBHV +}VC[U[5 |{vV 5xS!$V6>% 12PƝR-_|8ʂnoV+٢b +_}_1Ҥ 6l>5"ʧ\ru^/Lv7/=(QK(b LrHA5~\ 7x]U/.SB0/JνSt!{krӚ+SsEgλz7"8,*xK)kRHg10 .#De4qIpe^( \F:?a\=8,2rw` +@2;+o}>.ԱO¬z\UH Cx)å=~hRN?9SPf +Dğ`X;n[6Ljrrv8$oqj0 .S\e41UruN@6;JC:Neqga?MMڟ^\Z9$Nm3Zڲ?j2K&Xv*;~&wz^||^O` +m!@j$ SYw%SQJOg|(wfTy`*<2g`=z`==/x_ .O`h'gS On^*R__(+9n;ߝzt>@-Y#;"C%,/*Aa8aSDc + {δ ZEW<E`'(ڧw>{W]<.#~(p &iw &s(7w*_n :T˶9Q5QSV]5–GkN;Эjt}H +:D{kaj[6?Xj>Kq3[RFMiw[6FF&_ HKʀxY1zbiDK%9FT{ʢNQ߱ypLj@ K4@jB]R][M"haR("$!rHdiJyHRܑk$DOTC&E1n9ܪrӃa9M-'aYae 7pnX;Sv}"ڂYO͹PS-2-SpBT+Q#yŞ т5-u[ɢ EHg9In5xBGB@xDTV$MoF\vSGM1zǍ\L];z-[$Yu&Aa }H;O⛝M,׻^!/d+!qP긶h?+C)/ӫ MAh c$:Χ-9xSS0{v_3ĖLzs5$Z0-Qv+o_lD2Zq ‘ꆼ>nF2T?`0) IiYMχY7 xA\A&Й@߶8m@@T8Gbl^_09/X<D/ A`@5iM`61h ,:/!JRgX//"?/qa:ơ m_!V-{A)!Ұ}* ;ї,f%Tbeo/g;8+x M>ce(_fA3-b+VxkD%~sO3S%q&z쬠&݈=e>r5W0c $K.;Ǫ! K8~z@Ls2#JV>壱>r++a_H A##ֿx!r+b{x쐼6D.?JaUc#ت_?"E,FgYqոV >3rvW7o}[ij*꣣F;ee7ɦW6rCStL%n5`1NlNӰj`w٤8r"ղb"iʨw!+XBr#Q@B&{ +VJx{~fn?C2N(>ʁOgO?l.~!jl1˼Nr\5ڒ9FZtlS7ո}'$ g҄ݺq zVvJS$ x8[jZ-SvKQc^8̢kgq +}UhثpR"jcq !a)ĴzF;\kjm 4aTR_ -' TvyWPC&+Kɮca8DEu}UJu+j& -L+1eށK;#pR p8R?%s6?Ԟ?B{-|tHQ'x{ZqDz[rέg'q?h4"ZPh%fjm,Z%i/b$2ey +{"2p[/с30AuZy'"+aAO%m}?͛Cџg"dL[mG]3L+Z vhvйp1=bCjL#=,mȿ}oĥĿu7=uw#ЂX}w2x:YBE` }㠯?^ο 3[}2Pjā]JF d9|HZ=B7wQ#~J K?%Ѳ=R@'l qX_.0jJz> seȪ.]U%Hoo є1.0Z衩뻠\:d\Z^X֙0k˛%\³)V~<Kj vI-a[!V6nٵ uJa]_B~l-%42oQ8TݓA˙D^v̯WA$AߏB<ۇ/$ wC? I[-J_Kn{ +noj)ܔYl_)/ +hewweϒ`0ԖqiI7s>Mpz$XWoC7UG_GC;ȪP.-[0o$J2cxPlLZfFveFn<}[R[sGg2{020a3svsKIfaY7Ȭ d6|bjy_3$NAN!6 ̖i`7\vsV eqlmV/a%_ԜՔO/X 031!& ])bȽXA QzS5|5"q)}Un7zI.\+guOPZV*#2n(R2v +* x5xy 7G!YJ{׸$[0zբw9%WAl5<"צ2/r+2BwHV6 WOd4K2]kPR6QF_($Uj0p3xC|[#yB#׸TB(veD?VQŴ]A_i[ߥ<~G0ɺ&x =g%}p7*H Aٚq>1 +UwsJ7 CP9PNACnO:o4b+bBkX锵/P@=X6C՟}pjmd " !rJ-:=zie"c0hYR6S1ם| c`[S %Z|Y!B4BZ1(Qz\ۛbp‚ĕJ WW.|]\s=fxj 5w+.BzE=z4Ʋ:{b)a!| q<xX_NHKS6_ڃmV:/fj+mR pQF?æ&vpUD<Cu6D=G pÍp`8Z_a׻^p7ƅdsQƇZ#t)mMe2 +Z +Kё0@s_{|M~KrU 8ba,d873=nxf*\\*ȱcx YEU)h[6GO^se?}| >F21G|d|Q> + +l| > +>:|\^h`ȿ1}|E|>ه3|86>Ge8|89X"]| c0)|݇;|6>܈Ge8w>ć{>!9YG(oHja}zCc85/ep.W feZQ6201y)ڬJM\WXZd!cqk]om +}RTբ́.25ʔ Bґ -EgZ,{i_ĵ8W: 9Bpa4LJa87[L(.-L;T+|$\hi4f;RE^}pkP \{RtM OQmw^|m%@zj63$CX@ن8S\4*^/!=g~kܡ||(ʓ\ fahS(Ws}> 㾗= _3=(gG[X5L^iLp2j,O2 ze齠J( 1a|v(@Re#(^t"N[.:Ӡl0 0Bu(MzCpEΎ8~EM4H<[o&v8Uc1y3P!/W TsP)=0ŸNUݒLYT +wg +v]H$n|>/hT:oteVCoM +T>Õŕ&%ɃXĪ:V鑎8bj{~ +?%@m*WL\|oweI(@ANqZ+NsN4~D:-BN=No n<7Y*{8^7kX}O 쓮0UJnkG-{Xu}^+qqצ`ȕ'8I&2jҏ$4{2{8ScڿZwémR;Z} Zfy{#{ >4x +0TЈVwjz²Tpߙ +c‰CLOcVe _/e 뛘ȪoȭZS=3:4R㢅?V5ݞ:ɕtO)72T3/.caQ*;>Q"i,V^è+0tEDED3O@QC>s1D\?DH(e`9/5JR(hFA XpOpq{~]H $"@BÞ1+4Լ%ո2)UAr:\)AIKkRe{>3fH"vךS1ᙼ,xu|̞P8K{?5Ʃ1Pݡ?@~3ZQ8אw %Yz1}ox(sgkITRa=-{>eQ#µYBWRHd~ד@ƏC d S L,/8D|X6&W".7EhG8S,X(=YG?4 PlZ!e24qXae`@,ˢ)TJn3Wudg?똊MLoey;{Ńpzrz?y]&f (1g6??ȕφ'gُQ72▩Y\qY6?9?.?ȍM@<%]h'ԘIiZa/eȹcs25?[0 ?|Y% zflYnjY:٫e?~ւClpWM292YU dl¡Y Yք;.t UznNOb7oʙ!~1 ?(l? ^i~\q%l\8~6,a[dҸ#Sg: Ol04=~rdY)#,ɒwr,̔TqCuL&^a\Ьgg7?kWM9܁B+>?~g:l~VY tYGn5Qlb!gg &g +Xxv~iYGV~6MJ 2N&i~6.Ga^rgQ,S?{c>gUAYsT~95LO&^Ios$skM|%J-L\ܝp}ǵ*.ppS=bҜ\M,Ɂ 0G$fJǾ$p-䴵=}kZX +[k$YFB a H$)0Lt{{w{ lDĞo߾}}~޻GI)8q;s8%_W*%͹-:WxB:xtQz&hwLt ^Y~x+Jrx1fz7Ja%V٥T:x9hHVC$-U )WڍONXR1 Y.ĥS,{j=ϩL O,5_Sgsj,ۿo.5|cI^#SN5ipj(H?az'g'(ڟn]5iKc<[$g'j/iaoiÅG9ȖJiT0o.qŴ. +Q8Ze=8ydی as&Y"7Yu*L 0qp시pm Ցd66EE r><;o;7W{@|HתQA*v^Z{U{_*4X5i_R_jѿ]?JaNcLmxyzOSW/|9J(hȟTYw/]$(o9I+^:i{&kirfz/c炠WLȰ#EdwwAХĿenЈnWr cZw=8;2pFFLaoo5tU@~`5UZ57DSS2m$)'ڑ/݂:vr"K 4(KS"Ԯ?vDȅJˊ q~`_QzK  +ER܏u"C(uz~9d.|"U Z wp jMφNn<R]Z6 $u,%E<],f2zuR.IoWF׈p425f5GVz3"8m(%8"#}"/#ЭRlSڥ\)yJfxJ2Ox) \7SܴhKϋPCBsJ("S<Li#d`Ziz+#2|o݈7w<͛C&2der5߼:U6YK+d9㇯Zn?ɟџjWАY=z5&%UѰvm2'f٪Jys*&"bvR~aY:]35ژfGdJYA5*ȹ2ez7U+\D>nHDԒEw4Wuxlg< o/ L*̧'H< rA, 6՛Hہi}"0mb̘Fzwn"Oi+ \Vw-XO^~A׿!7W?]?|gxƟ<'g99yC]*c욎ggv xοe]"N k.O}ktÔZ|kk:Ԏ/?:?;xTzk@׹N/5D E#C>"^|H3dZBFyY)P"w.]>|1$;ws[o5?q?ǝm3>?Zh;'[gO~P?0cezu&3b\B"xF[e??gm"d\G5F;<9x>2;~տ%? U}cV9@ +mfh|bю~ +?ͳ㇜'o?T|" SҼ}k\X>2__{H[_O%m^Gd")d9j/ V}m"T/PމϯF[9`-AtJ_h8:hBАn6b9ˁ.-ɩѻx,@;܎K/jĖ-J+hS1GZ6htYlPAhtY;F7YM%Tڃ!rK M/ G<2^Rcq,4h %O^x*,J;Zt8o66gpa:gbA U%*}T5䎹J]VKrZ*M >jHqS_jOn=Nl䶟o Ø^n9ZSJm?B@MIQժ_ɏY@кȐ)}ܠW}wAu˱%w0.4X~taPdG$w`# .'_XX{KZ NKrCPIu eD%!9^|QHi@N>|$:*7IcR;z:g%pR>BZu_BuG| TvM;2"H 2ezgT#>F#ߢۅ0ȑn؉L;|c4>18azewRk|mm_t|cg!mmM\ ^5jcfg80bc3H +Ꚗ"̪ FZ+O;i/=){W' u N(5Nr +|QlM |nTpQF֩ӎ$dz8Z|aX"hNxODNr2JKNP"D><89[ +#;ɱ&u,Y$daAri]|!Z%NUCEm1!+*N 斘T;&e`m&bp[cbzHc.GjQpkhqFmT|hW]{6Zx?2VԂX1ކScLX.rdHѽIƁ" TlkY+h*ɤ N[' I38`ZzW < +ACTTLT:Me/ʧ8E9D|0tW5y{h؂MW \gM.b6FwR/v7u͵؆g&}Y@1~G/xGt( +Y$gb^z1WJ +>qT kv+iD߃ 35i]#|ew &vq.l,ƓJ̵LvHtgLa>S=),s/X&+ 4&U:L$?Uk ŘMMql'gz+Pcvm籌Ma4r>FWMk|Y)U#8k|E}D 4f/!}!3PHt#ky_D]:;0Wȃ }ߠ<|}cgL@w!: ;M)z_8 KZrZPrW55^U=) 0F2k˅J +LKCE{h280ى{3ؘ[dz88"*gĝ%㦵Yy%E"%tI~Gl4ۨ +⽄k)]: {v0r=a4ʻL7ha<ʛޥaw{SP_ۊ7KĒΗ ~Gr\V3(+jbpvU8&Vӡ& xĎv8=֓pd׍Mf}~n؂(r1'ok~5HW)K^$8|T%zͲ4֞bpJZԨ4ʮ/.턯*AD߱A D>+Y7x!اһnuls=ꦴD +U7U8i[+F"-VuSՍZMOGb7 ;K-=вk2e祑0/j![  7SrbɄEJx]smpE&$WTYkEZ+mrEall4mY~^gZf"!jb!% ;Ph+Jz+J d~~!H,k5؇~AvAXek.9xma=OfP~,􄇍=O~nd4Q-jva=|H0J4K.VmY3[+_E= 1bXmz0wB> <*I$Ud;.8gԐ|Xa:JCu(ʝuX9uC76~%v!.XFdFb:gL4YpWIt=L&lB'8AP+w)%ӽeL-$2ӽI{3K2{p*qv%2,x-7uK u`C9̛?2y{~~s_9ь\-bn^CҦ }*YPhsbHYEIܕӴR} g e&fsעt )GH):su]zg]lhvU=sk |x ̄&%Nvu_.7/)_W_qKW =`Y8ζ"DL+:2_E3WL~2:(Y4Tw(?K%_k6CkR.1m2uGP14,V iLYWu .GdNBt>D+hI[+VG x'P+yI,c#f0zwM<6!~|''rOfM;zyډ^7梗7"zyo$/w*Z>{)kcH/{z'C%X22w~X:X?[ά^uy_!oe. FPבfV Sa_ +=7T>:0'Trd4Z-^V^סvemb2~:Nבn!&<'>]JؤctY]XjN0L~7 )>40?$˞=3:1B:%XG--uGMwXVH,axksy:8Ba i ybxtHu*(6ædhWϳ=wI-;P1" + ҤljQf8hd ^7v +V㕲Fjt).j(.'27^aVMI̯݀)M<lQN1SpO#B? =Crj tuwPI.e?w_}F?  +XK.apIuբbR؁9ݧ洚V%Xp˖- /wy2TggdӽP_nԣbIUc{#au:Q$K+#7IZ>CLZ +mlm72bU31Ǵi.|XcP_m2 ZLU=&.rG0Dɦp]9wVd:l.h1ˈ1X=ZA~eWWsGѕW]J@t!|!Vzw\oKx9hgݘ<VNȫVb8Hme6+e;5=HPg`M="F|MTf\m:un,J9aލ +{ F3؞T@ F҄Lt +7ounk=n_Ġpݧp=luNw~$ +B4jꉯ!4b<DZ"u'xa3+ʾ3u76'T'Yl%H}/f}![QU^m aDxĎہմD+b+sQ^7%PUNJNDPEX0@KeD٥x mO 7tplJV(N|6̂7.6<9x~ `"Jrm!n:*@CCb♰VZ+vdPJ=L"~N6#nHkMǹtvΝqS@>8,egXĦ2dJ$&YIr|dpǘ~Lq S!2)X_wS@*yEC&26g9>pRԓh.fWI}| kWO.*nqe/Jv^"xr$uMA!y"=0WjW|q_:(S_{@.:_X_;~WOWs/?f=:%7>*vS0~زrI`"6bbR:cpZ5@> 6ATvQL <2>/JsHGbSA7,O>u#,T%}NJ\ +c82 # jU*ɣauĽl|fZ4K\df`/d>-+ he#=AωƘ ֱ*Rq'dz/>D\pAuy + ӜJ@UZ\_/'B@y갳=oi4$!FKsթToG7!))_qއ>t*'L>BR y1mej%ěJ[-=!׉P߲flw+ S.)DK50¢.#_s&3v2$1+W0IOK:bf:4ylvzVTS~- +{jNAP3V}ְq ,r>ۑ`1Ho5EinNÝQ"֭Щj6b"}0=RKl) 9F{ʧ};@|'hsa0#YD<ͣ27^?˼>"Tr[:>d!s$(XǬ[@O"9Rbɟex:?\NI +)˶#앓 s[(ij %1j1Wq|xGV{$_f@XHGQcZkv3DFfoukYz&PHxjiaj[h%kB6$7(ʭW.=epm 6+1=!*l X=X-B<2dT>_ :9jff x!Br`_Re k\tہ. f/^L\?\ZuhSֹA=~Q'm 0o7AUNF$#D lz(q2?B0)RԵ3Gv+̉J vk\'5بp;2Ħ S00]k\5L4j.ٗ.p zr$[0qM!t91\s"ȇ{CKϐV&ʓ}4ErȾ.[:+;aӟL[fGyܫ#cx%luxKc$ SS1$txzRz-+ HsWr\knL_+PoB7oSiT'Zh$Y!>D&升J + +b*+4DHǛz5FfI͌U s/ QW&MjϺ5>$qОG\NENtRؚ;Af`Gh髖`;M;`/R~& + a%#/san=B3sd"!M"{~6k½9¼7I}kp[{ lqr~W' T<Жnh3{ʹ*Fբi6]~v&zVbnzޤûi;iҕUq m ӔN[Rv7E'ep:`Xկb$TZ4{Cո#QGw& $Ij[˿)'Ѓ3\_<mjD:[  G$d+n(VJ)wX<nռqD= +iOjfJ#1ydP 1Xm)˨hN 'QuX +ux4>`$%.\;2əc:$Dߪ!WQT.nUG;.Gݸ3uD6 `2 (P71Aru:n:`Yh5)a&0atr+)d]r I)[H .:& +21+̭(⾥{%WuJm@*xBt7]dk'|C'2 hcE!\ + X#2 %hzj ZĐG۰T7p\q^R(MzIn +wjTֈ8wR5ǫl62|e +7301QI۱9rfRk#~I|FQiT58DŽ̬T%fe׊N0lJV3 6As~ӷjUu`UZ͘sBT4c Dk(q5wp\n جm&>otL%uX 1U6DtDlu5|s iԿS */0CTtvF $/b9a9<&sk7%W] <94>%F\B0dsTb{eqIbEq">[,b +v@*3ѡSgfB:8jA"!3 -+tHb!vR|\&?SVZj۷(9L[&!S%V.ve`3 +n +N-T|Bb  l(jG=qY,=%3@ruOMfr9Ն#7@W= 7*3e#cMัo$cp}S-; +PsΔrx$5PJR+TB::GAl˫֍;4?E5Qv;xs +8{MNTj>h[5B z%`Y<Q=0F.-W-EI+ր0̝s!q׉M#TD'MJ4&RJS*{)Zz8Xd1'2j/Ӻyx 4=S^_s j4t."AB&Ѵ޼/gA/n(¼)^F*^\B$FTWӨ_VeG>-.7Q1ύ`bw-E`u= cH],l&N + @Fuُ3ݔ=UhL+{)-&"0!u!4!RcNP;X +,5[mR7eұ4hٞ; .i!YI<:T \xR̈*Qa/;.2N)䢃<tB ++S'e(ɞx4>fWylI +4oCOT?+chCk&RWg 3ԛYh 4xĉ{wQh;"+RɡqF{%,? +xtJZ-w=SrCJNrxF+0άj˫LP}B$9#$@ 5^C;kT,/6>Aqf"xRK:A8bF+a/</uF$(8WH}:8g$C3A %^إBq?yoceC&_K6#"9Ycy_֜!/HYT( 鶚v?`\??5 ꄘVQml(-rGI&dCӘuYfklì-+`)LAM.:dlN1_'A'М[4 +^B넡_8<9< <REdK@p 8\l]/ [L9yN$,*TdE+4.!"Dybo'ZG/-)Z"Qg\ -C3nbf$,aNKGo>毻mKs~@]. 9\ M@" -fQ.S`$Wgn<>F~q /9d`劃=SGc X[F "N-(I"TtGyfC@49 +Q@l"sh$4lm̙Es'omd + +NG ~L٬*K`s>!?$=eW|Cvש|۳#:?3aCU%sfӻ$vݘ8:!Zy®x.)ͥ }.z*6C{7nr3Ą$vߒxoCu;0*R$ +OLO+Zrң:S߹ԡ#U|53k͠U/m&"Qi~C]:,W|Bk 0owS?z/u˦3ef'aWh%`4x ڣys/M{'z9Z8(&A^;UrPg?u" 33ܜIwW&a*;=8olJ'ͫx~;O@v1\JEw .2w%crbcp~@D.Lk:<}9%vY1<eGpB]cV;2fL!3'ָ y +͐k`^϶^O;+7Ȭ@Icmxg7LAPݫ?h LkT/L-q:N}n玷gR=L ?{fcGȥq<< G֌ض8$e`~t A%F 3 ӫK9]F:e Vwuyv.lH ,EudRP)0!cO{GtQ-R$ vh0qو=,5|lmwwQXޅ]p~ey"Oʹ'X9wm6juXޅ`y]Wl8SNR,ƈ<Ǽ"O7_ߕ'>~I4 {clz"<\n:י+gEv1ۯ{1t/Ptie+'?2ss eJI|sԕ$]v%1əvJ0KSc8;EL_y ]#>nι"qQbzĶU +gwfs<}Q|eqxZΞxzӊHk0umwxD>>u xq"H/WU㦿^j!ghDžkG'ӎfLi!"?OD=ZX6VC86Q.؋CJxx 2D)|:r's.&j#=|Ò<1K]7ȼ#1y6L~̅6vSI|MW'YC|z[Q8o[|$_)7j +a 5oQnf^3/ $U9}I_썞+<&vUhVyk"}:Y=O e79*O)Ho.R*6WOGtU Ŋ K*JG3*_RI(+"ʜa!c)eqbffe*'hS" +1Yxw{G)?mVEa>Fȧ9g"k)VѾnM**,BwpEB_έ=7WG6_v9Zl|7;}}ķԶyJXG; ҡ)%rPޮHZ{<*$Ў*RڕzMSg?uSgB*̻TluQ7rCMXnj]IxBVJGz-b߲gUW0jLR}R(=f#܁]8b}^ѡ*;ԨhuxZ~nDtbqTʩ-Rsk>o+?}/sݥp.TbԈtиM5zͫqzmв4-Oku\*0C\z/>M;w|:I"Eӹny*ݻ^?.t{C>Ǹ LLI57[̫yygX4ȕ/D]ȴ̫mѲ-7̥柃|)cE}sLX%v7@En~+,M߿)/8:zB'nBud=^Q1YvIp .N}DUz$>bH5˼~_k1^Vt΀{ +Tj 6K)Cp%ht7g. +So\ +F*z׃2?zG2-gWCu7}}y>CF֩.S>yf!K1/?$<}d;D"kμpv+p|b~ie‚ǜ;i 4m{⣛8Mi1zIk&9nkfTiĶ|I3q qKđpӴpo(bŸ\/\ߦmN\Gc.Q uǪx(>*0;i(͏t=!+AP~J#áT~ME?x9בzcw+{mC57:a5qZL6s!մ=?beI.<5nU'Jc~JZ<)U$'DU̎{jǽ xaE΋܏5R=$Vҟjm߉DԝGW#vWEr91Q r.śAΪ-:c?YR'qЭtG?왲9??ǎUwlQb>R gmn>eX!^ !lx| D PC?~!E/mu\:B?X(yP#GּwauП~&?"RRX h]~Z-R DQ|AYw:W,Wx+e@ҦEѼH>9@}ߘR>⶚UX% +aյw0%sC8 +!ekBEʃ!FP"ԌlH d +f?GƇkNH0mB~|xl HU:p|y<Ƃ"7f'P~3ҬEN +6Uq(sLpߤ2;`t*jX^Tk௬' s.a7mYUv\fb6leq۴o8S;㹹') T4e}x'5 !ER2;tw~ n.7vc`7ys"bf/]|8Z}bVnc^Z\^Lڪʚ؏@j0RHyǞwfYȝ`h@[Q|MCn _;4Wnk^^+kl|kD'l;_ lRlʬ ƴQxo)bW!m7)B%[&#uSr܏?p q,g>jbʷ0k[X}&h|8E}uZGL{Qzɐ V$UD)CR9>=gl}BtfGfڶD0_Nh[aۨ8NHaF٠֞lAJe +cR?4*Qr>A~P$vB7R9jGTwޅ;?ez jgП~ +#[i1P# a0MßVڼؖf+ͱs4< q8q8u=?+Te]hNw_ur j +YL?Bцf{o^.MRn@$zV%Q߾41k!m( /4Mݗ.c=4j{bp!WLڸHS]Icj-kWZk8"уyyz8*5|W=(5_39>o$MrnbKD۴>t* gYTEQ-ER<[M"$O$IBϲN/seZ#ZpN3-C%Ls'!aכ(ؙ{1CymF=47[2Ĵ><ۇnE6t4I _`rCcl®&5d0ցaS_7EiciFqi7:69S36"hmgcCpHKe<.:)yTC|C'zT^\N,`1J%4NjR K"F.^H\ %*t-tțM;%:I#y]ѧдh@*b[J36ТG? wTUU\-Wv6iq似CʔMFDulŬORZV&ЕB`w>n_[ +ebvOPm^&KS,OYx)v"x?8t (&v۾⾖{a{w[lxkUN/=!^@^Ն2 )x ȝQF4Ȭ쓴 %;yCf'o2t2We!Yf;Ί/&oGobK8O<73_ʰZ|mp)`0jƛV6wP|!Dל-| o/Z]n2 zu2pw"2mK>էk׊_k&\$t_Qn/2*M"/,/ky]^^Ny؞&Л6['oiK["#,T qU%>(yϜӭ9o١7JLj;PɋpfDXhbǟdXDeH̏u@}{Ў6J% 0u,,ɈVi"Zx* ϡ,0UWVѥi"}gE^NX>%^5׈Wi"^j5UVZn0B z(wOq*Ni /L#)(+f0DeDX`iTi%8;fpu1oPWL{+҂ThPq"H%BwAm;y_)>%BB +T+7ruV{ű9v/oMVBUCU¬DjaXV;o֡U[!ϺPqZiʼ 6KdWD6qNsQD̄xp"#$-U=;=a-Z9%5 ox/R -SWBN f*FI햀aؔ,"1&L jbF,bL"!sЋqpk@_Z%[4N!TфAA-ViZGZilvGQ\=Zck%# ?CZ#y?\ЀR ++r=hY3O/)ybOHu?#^4LnO Ir6J M_PHkg^/BuiWjyv{U{*G. Bl$@;mc]Z̮ͦR[YūX PAog}gE~xǧ-V ~ +ټFJ1=dYEMN3^0O=/7ϯ-`a%.~XW{%tW3 5P@n\To;2{kxa㪮vko2)i5S-1i?ARvjYY H:6rq[!3Ct?νs=޽F%:uTЧWxhnb ^QFn4] 1{öoPp_ 4S.-lب$OL~rIMM|Z+{=%@+E7,j씶ZNK;'OeNz:Uz9o,U~DfFr3GޟҍJUҤլ"eeX!9xEVԕ{DoDw&Pqs{*,9s8+o FlYҸj^u#I5zVW[jk[{/G^P6l2MW<=U7{ 3\xu}D.뷖5I-ɖACw7.2x\E x3BD}Wp+"m7xjтyI1?HQ ]'9xKEכ#y9Q d^֔}oքTJ"RG?rpYZ} TMAٳ4+Gv VE6I3>:;,e+4G)\b ~/3JE +UW_óȚF" +,DZ0HS= ̆>mV*3TVTg 9"4bTôf[Ȩ3d 7'9UCFN +| G5GNR'A\yWاjN ׫y3K(Iv+H\Ίt^'OT }/," 8YЀiʃ cݽ7@3G.N2&z,ݜ7"#KoM[x)FdjJq4& NǦ !cBY9F kБv+ |Є,8J"ұ[~99Rq.$y5OLUo@fʲ,Ihy?TW&} j">HOJD5@y5|%/5܈JJ A_ 89AҾpt{P"l󒾃iJ)]tIˠÔP&!loT`EI黩 N J$־%Z(9%+od)&57(6RNr +ά\umGeΫYķXR,'e8KZ DG״aֿd_A Mo|NiA܏AG%Qw>2:}@FjqXU"7&9\|ہ܀!1-m h/Y} +8tO_*k zq;+Xz`F*> Gb !#֯h "_Ьy2#7Sg\`YB4FܔaE5K0Wi nвgYHNni@ҪR@}Nh+ƢbSqj=S8I]"ZrJʛZEwՉc{ 8.ua5[&N=; JdX` :ѹ:vc|&Nyp$!=$ӣAA~4{iQNM|aG/n^ +Rjdo;:v>2|_ kwF(Wj!^P:cSxEF!BE%:gy}6y2Xjjh P"e'IЙ b2DCXz: ba@6~ +QzְX^}(ѫoXa ˓g'6HϸSv<;8 +qN_MzT8ztHyut?hLia7T tqMHd_" LXD -Xu=oM/ +m#թ3r ȘȺ&]gGѡH~sy6Hh.n&Q[}tYIT!`P0b*W!^9w}*RxdoP~%t%g*&$jO ٢]BL!o3]^,ӻ- "h*u6jGX]:U]v)j>kGgfsvA |:/ʣC 60ajVsS[jaRZV\X8Sǐހs jME0VppnkS|j&a>0;[١DγB ]c&Ǩ?0"ʒ;BI[y9$^a%dCs`bʡ[c}yodP>@ϋ+p?]Y:0ԯu|LJ 8p"~EE# hzec7|B )CPL9%m#o\/[l kn2`4ehR,7 i/؏y@P\Re-%u@Gkq KoE>9. ~qN(P/2T ̝Jlu)#h4v^sl!%Ejy@ 2YTQ8Dc;ЋMkS#-\R^x;E7|CX[Ia^y+hH)~}ѝK8;j.%kNuR +alRR<u^>"Ά; 6L *Dٛw3Lb}Z*Ap8B$b6+1U '>% ;D>ĸ_쓓RtM?vxB?Zg? <<Slxf|R9sn'5Vc.2FY s(krlUq(X=r\P^4J-8&zz M~(ħD"9z939~q}>3E5*AME)VTG`~&| +|p8+]5>q;8_4B3 +Gptˆq] C)~VC)DMcz.(pFu $MC4S& +gd[Z=}>_ \r۴ `KE/XP;JƔJ^bcyQݎ; _𻆴 +!?e qMHֆ"ؑ?c?3^\ާZ#y`A9GqbZ,hߣ.oEu~ +ΐ C>)(Oj@{Jd8{Yt8`LgkA!9]&aJ&y}I늙,0|.lB_)tuN>2fG&rwHݝpW#3qV.Sa.~Vz 4gnބm^{6A C2;p?:Xq>. Oݥ?.k(Yl7Q{8&x{X0,oۊx52͒Ygn.#BUϛm2\*u]4XHq,*Ȁ@X wSݑ4U8ӿ$ B}@e,M0<]rANm@NtANѯdt !C#9Ȅƫ@0PP +DΆU*WeȞ|x++ +&ΌgFT<3&472ܒntO 6}, fHg%#:,Sb9!'R^!#>^*UkL +-T.oiv8,^Û;&P&mNЪYp8++w]'k{gzg}q'\ep}C{qD=_cNβ`Aj&uW}Qf50 BgӺqN#bӛmp CZ?Z\ @ +IZUL +`N@NoH*+Z:"kT{wW݋=xѻL,L+&?jC2 |!+'4㮩1Q^>H1!|dѽ9-K\tRAY:%I~7di~]S'j9&^}+:ZQ&J܁߅oQNd].T K|Waĉ hh#m$|,ZH؍>X6PH7rSijx27 nT"|7}} dN_Fw=k+*t=m&Wڇ7BPm4>lximlT"!Z5[IA*%yJuL@zM{6ܩ|rbVD`#sgF Ȍ,00'%2~Aχ1q^AD-Yq0}̷3 sFh%<>Ltw[LЙ3}MN F-͗l(Y1qbFQ513'p[_AZ,DَlY{2.XF6td2y0?PX@ Ica>ә&:L6P6"Sz8* :6YP6J-AI1l;0uAPMz)PdXڮ K%O^>/bT7S}:-47P"K4*5[E\#VuV[-[}Z@Ȁ DŝEy:(!kN%Jo]p/$tK=kznܯ*D&ͯ5a \BePjUY))褷0#ďf#jlXI [u;T8U7/Ku=r|M^73 +U~:y@Sd_:NsuW eK86R=HℱP׆ReRCV%~AocBp[=Wrbh{]]ʆjt6%d, +:c8G<w33q%/rlqJ [1uky>G,!/GSwqݻ +tkVm((I`zD W6n `4vZl]ǯD6QN Q5( E6{ "[A(Æz?f{vOOw|ܹss'<;BBi q黑CJ(gC`X @O5mQA +7sNP| h+t&%մnj&4 Xx%M @96Wx=w 1eDb0, 0O>i? g#*?ϸd\^5F>fBiȫ" 9C@~KTLٮ4 + &0ѾL{pz=D sy-|P[L@$a +B[r=O/OH1@_-"5=YDj\8(m`hNyz{0pp#EAz9qYdܞZZ)>l4h8bj1%ϐ L"#Tr5K뼠 R#P DQ43n|\^ hI7HE HAJM{ 3z%~r$#Q$ `˞/w1z; 6'Fd +"}[ Z}9ZCZsė;'F͇.it7b4nL'OKyO6};_3vU>.c=?%'ϸSj)c\Au.>ET!PL@5I A@ĸu}5jKY-A A5;j:b]d[ԃLE0dF4}_{X]蹅b~'"aE^$d +|{J_eR_D:5&igۘe6Hq% @L|2ٵ8n)(3vF @ï$Lf KW _p:"e^!~5ZH)Hyjj쳋>/;܇Zw2"dqҨJ-y \TO#AEG{0~쩼&&uy +o>b?|1 Q7:6v]]jΪQ*渌.F naO[t q.6iFP1;?7Q|Ľ  \xк2]st.dih^k+St}݂ A+4Jf[W{uƠ^IZR'iUo-<.>wZ6dOu 1R#9ڴf[!XXobd%g}96H.J GSqKj.p3.LBmc>*Ѫ3.nxЮz;]U05mK0C". %uN]1|d(nvT+8*NquOZDddhZח 4W֖&IF2 +ԛ+[q%I ) 9]|h4W6%]]4~GftQ;k570hYJxZuVs}0qLJ.^r7/1W{f#q8.+EH-Ƕ\YE"" @&x2)/:s.V"2t@lX\ Ŋ`,)sڏr>*oVzo&/WjZ[Qg=S +4Cɓ 8F+roi+jUdVanC٠{fD~ȽhHeXQ-%?C9.9 X9q֟j:"J8>C8--F EK28dԤ`_BSߑ[ҋHXRM[m{P$H-Aw%A[%-hzwj9~mǦ ދӉ⸥A|S#VjA&1F5Y-u=\TOk(zܵ +}& 7SݡA(5Äs-hETQ((njT^q)ڕ' &^qaٱmGd=,'y=rrqXe5n)vO!w!5؇vc՘j/Kuc%›!6erFѯ}~5J$[L}X&^FAM ǥMiKJ!WZ +F 0jgXo2-RIy$7,j_t:,ܿU!X2E.zzjE>wx e4(%d2o=)ͅӧ{dOi/ ګ]S>.Vo}z! 9~c#.,r;ddu +<),ո L9*u ΐ,3~3XڞG$ؼQB$Ti&"4js7IorobpHPk*qn%]ρ'DleH<\J!oZG*|o}](|Mp."YGΊB1Ӟ%$wUEFٶ5J"2V!3l^#=O9?@H6t~\ʹ c*'ጭuzki3<*҅O"]"]Kh"oh^/9fiK|aByaL;L$?kE}mF΍OR3/=lYTt$F }ߖ& AF-GvÍjT?M, y_,sj?kMwgǟ{M[[pM/.(G{(|uWהWT⫿j47z.ɭBp=W?G roAVF_OX-AxPnxkRU7F(&%UEހDOa±# ?ahâF]}C/U@P 3b^z~:dD{Jiyrf(#4͚iM@RߜM<k*Ud]*mcz籎[{ r7E'НnzniItVJ +䐱!dOИa1"`PI睽 qp*#čLguw +11m jvAY龣 |V\lTϬ:rtiGfF4&ә2D8ݠG)JhvFGP$ +2Bj^ɢ1 >-,A4trZD?\ K nہƓ݈VNzq#hpĎ33J"nٍ/ 3ZazT׺ T7IZ9NvM-||:jP?aFb\xah!bـ +XC5g]# / C5bi9˔{ŔGbڃɘE{@Ons,7;B\/nӥ{C||y-a1Yͭ(.pk@HH4+<ƈDUKI&"\W&jZ=\X߀T_"$a*A̦Uv?gA -fR!*8NSeguRo0g/<s'1wp)q0Ƣq Z'QFHp]/ZI /"yB/#aqW̸0gO+n,6:ڹ~Y%3{S @jgzؑf)|~)%}||!+:Q]w;F +:$/O*Ҡ9#af'*3O)tK.krb=Ǚa_d;~!ԣ@w !a1@G}V$,WC3Jօ-{d(Joi0IరC*At$y0U3!tr}~HB?ShNJJsyTmVo23 }DYNhsRyx u~ط1\k(v 7FA֭9yf(^hȎE~iܐ td xb8bf8b,/R"x⑗HGl}rP.k |Ӝ9J7Ydl)+շz>w:įq8a1jŽ =S@maΣߖܧEpf ݈q :CvF m5w%#E:&OmIuFW)ԍ!+b}j)mR/Z_MRwR4CjFƐԣ[Q5/ne(>7 \T[ʑ6炢gxߧ%肢Wh2]0]h(eR+Jg4V1RayS3l'0㚁5%ZF/#yoQ[^oߺ/0ĵΫ7(LV8&JLc]Sh+vZ ׿Dk_N(ZxI#ڛZO a+~ &xvٛ[fyfg7 4stTNy &ui(]d@0LEeF?OKP7nY\ƹ>]L+DK6B6@ZP"5wD\DۙGjMH"@.Zi$(Fٴe$M,97=lKf]dʧL91%g_E3CJDP0V`,O_sX>zn!RQP1a=y37$2fn --[֙BӱmFb(3= +"U\8Q0:75+T&Sz .I$hOČ'?E^ۉxOP &@xS'q˹hvyU dX[Ig1Y(/U:9wa%],*Q5Fo=jxm }ehk)'@F̶:il,$/"=:]rK^e2ZS^)[P-F[ e`b?hS2w4;ڝx2sR? Osz\ٲܪEW)6N[J#ի0ߔTQ5:4\bӏ3G@?`<@PsY3UMΌ J̗ 8erCpYSFj\Nh |-."oi>;:>{>gB7&p~t#8TMMk +we|U<"]3iUCHs:`{ѾuFChOhPo\u)Cݘyw$}P2|Y#0h ?u鋿,^ϤGOֳa[ZӹqyϧL~-)Kr+^R&sjI5n픻w\9DZ\]]- ;l#Na)Mg!ڂ 6!p򸉵2IY1] +W^htipyǁݐvwHorp+/c~](WC=C'ko#ڍ1F=9AH Rltw@tȋcTH4O =B/l7Sf}_mYPmG25yO7Rr +4r70rn b+Dp'ࠗQ=w-剶KHo\Lz9k*uAL0J*۰YYJVJS^hPjgeAbE 7jn@ #2A?B =+ +yPOLFڂj!r_,\UIBĂ(RVo,/23 ]%R(I xӂwJ>kQZ 58펹:Uh^nA'/^UVմ}Ǯ=gg"M- F,'aqViC':7= HnH@6 xZ )l ZQBA*8# H R>l,"B \S6ySڏ'B;֎f#- [iXKZhNqvقGP仟N} (M Lz/*s*ѳ*BE墭-''*ڌD` cBX5VSB("0t! $g e\L˥2rMF6u|NpX ĉ`!jb5C<WЮLMx$suN 2,%vu$BSM 夳Wd [KZ𭪮@k$qJa;_zTSf5H(m۩p u3rmO"j Ƴ8ųU/;Bo|GlNpoUmd1ri! 'Li%Lc@4{O0е 3`UO],t}R@W.,ԫ*eveheJÑDLw)8rR`%;gS6r ]zpn(INm[ +5v]8E@5G¸i];z +X0/M縉>*?^YE`鱂kfvai$x)UzF?0GΖ-dA4@}\?!(xd?ZBЬ$ā!x~NY^='QF0{z2dnww; k3g + kdWMvLgY:10pܝXJ8IG0`*8O 댹ma +O& xfm$xs*ݑ#Uђ a`-[*±{,mcw[jnW>fqkğom#-w]""xxxq;O.|p -i$UZwa\/s19C?sq.tF#'MS٣a, )^ea' L30ᔁ ّ~jЩH7P?Z9V$C=qjN=9ڍ|1JP*}֔î ĩ5@aY<`.Z٢4Gy"}UxkE0;(ď!2dn1TZ%oF +Kfȏw&(0j%]kub|a։R-ځhGD]h%jWIyd(uVqU75:0$8[CGpBml;Ф'U\QX=|E2p5*'(}Z^ PQrvxPՇyZsb/Ps$vhl$MF:[bG6>t1X*AqQ[WQHZvmv6MK0pY~lfGBNAg__h:8G*i T@eJalE.41ׇ>p{.uȂ":WΓ NMب??!^}`|gnEAQ_86>¬^V⮐ 7^x@Ýkm`;`C#{u3$ rF[kx[&~fP@`c lǑdÑ_i]x1I4v7G:XΦvIʛm3Y.׉l"?EµFf[\rL,++Uf5Z4k}#^薩ц;c~]l`jvāl!VcVC LL,ˡZ.WYvκF# K[n97[ +/@2sjFBF+]lz%5T4"3dj,v6"+bxi,+激ew^p}ӭ~i5g+Zam.zHY'/'IҁIB*?-ٗZf\w1eC> +`=rEoǡYALy2_XD>PNJo*(u.(.-AJM<47$Ҥ)_KOLK2ey_8ܷ]ȃL+)%8VnԳ698s.s\n('AB XQDbBTG Ŋk=QlʫY +\Є;٠[c7!%&zDtqpGǯp_(^-Yh^,s}oy8fـBZhb73{cq'f,g$}h˷nki$>]`?qۅs +l/w˝=Vlwպv؎&ƒ{aGnlpe Xf'ߢGryظBUulc MCX%(bLŅf.as72wtQ8~sL>?,+$,I$X'[.VW;$Y%5T"Coq6dpyMJ"sh vϑav^6_&'}.43s+CDj\kȜ<SۭajY3GALC*&_M9ǐዸU=Hw/zTǗs%Wݟ]?WXnͭr<|l:lG62@ +..;/݌эE xoX|5.IuMۓn EC̙$})y^W*=ՖOo󶛂nNmRp|hDB8OX<Sm)+[ "B{sɠvr'̚mOFd7~BrEdy.K,_ ||Wi| ru<QPW/ +GW|K;BC)d*xfcy< +~R5N%UH-t +(4V<ߥ5Sol*ߌE;g*L٠|34{cV1,ڎ?#VyLYcX*n+=VQV( \*KȐA[[fr$ NNC( +dJOx(I +-)qԅvS@_*4<[׻1:$O_k}[ykotiMwK~Hl꼝z2JoJ")=e+K)K 9Á4us,nZSe#T!] 纘0$/VPT65K_ьuP"͐qh%j#.=f 4!&/@X.y n&*\ML1v@^ qHydybmV} Y,N{n+N=$ϼ yڨK'Sۈsr_Td~L1LBAI$@1t7 c&Cw/ ^*ax b IBkvi)Bs$p /e,:ɐ7;<6it^ƻPlW?dx<p-9T` +=fy_*OL0(.]>nN,nW?MGUSPag-]ˈȒ bOȤo:>F_ i؃^H:Ef´a{}ǩg ,)ljMj!Sjӧl!.0bᘝ)k05I|dxEֶ>#~aB5$x;ި,(5%?%) +)K +Ė)E%a$ݸwm+s.\P+cBk6*9FI>Skѓ|BwJH m,/0Z: 'o'V`GZ=(S+ ӣ|`oJο/? wC3A;DR KҟPN:?͇袏ˬw1PUA=jՒrEmIڌ'('% Ff$t'ȱ; +?akCgT057L? _n|0=j~r$&d;ŵ)wAt6K OwdCB|&!"Z0BO +3 Gkk +nByU!#{h1"4HJiHbگᙻ˄7MQP6*}Sha{ QY[N, ȝ%| U@\* A7,W&ɭ E,^pr#hiD\? ց0?e\I|G[ Pnx??LϪh@ݻ7PDb# K:U6JAQ WoR8E( >[ F-PE5¨E^JÖvk2MkQT +89p[a)2]P2_qHBu4b ƓT3eu$nSdM"ָf%C@ғi r&tQ;o yR 3u vYia+#m(xCoe@ǑF,1At}L3}|r'ωt!Ŗ2KQ$X$M&V;Ǧ[GiJ {aϭpD:,3Ey3SE&ہ^=>qd|Gy#9 @dRtkϏ~VMA^m}^X{3z4e={=~|^8fǛ9ז yrN^L8yΖpFQ@ 8MyrB1~&Ў@36 $zÄ1dL2mRNG Rob6* $v:EH>)D"8OQ4POsT(BWxKAkh}GwY~w.Z_]lk0d J -٭4'hYi$? m$x+c%x `8 zI>"xjAu6>u~WR Xxp]nC[#ض}=ਏ}[FyMζBv) +< MrE? JRO+{WZm|UCV]>|xHFGhÊKAD7e[ŋ2<-(uCEgkĨCDg5ӡV㥣R9-_P^@/[M%и/#_Spqq /8ujNSupB͖qYS24i +N}Sy:\)WJSKR7 +ᔲqqv$y˙az9J +Ɯ+BD\Iv cߣͰiq3iNyj[@2(r#DzHpⰛ;PhkRdTi=AS܍Ile%QmME'~@e'5иi +jۧ綅 +Qu*=myfy}ʁ{ղOcF|$(6 .ɂs·'1|e|6URB')j fET.ϊ>~~guqpM7dۀaަo!CɆ(҆@Eg2$ƒ%;J9F%AX}{䱫(Ֆ裒D-@ +}qv.kJ* +;0pVZVa+> +@8.['0h :Pސm 700#F܆=0Bqeq6ZOpXbZdYKT8-Q(ɲİQ˖֖YVʡU|eh2ߢ<%f,Op.0LL^]d +{P2z&hA[|VZV(wZp + + +x1_[_:ǺD|̫L8}Պ1w)ؗvd`iANR!ߪ׷yUɱm}bο#T'ĉbAyY:)#:W`Z+•?. Wyy=MtZ6\l4os5ZБ«,1.qĸ+crobӻh4b餀i +a;nܠ/|O@F8M15@3O4*]Bd.Et 2@.Sd+>ɼ3Ȭ*FXp0|Ew*3[i\8:- +Ӗ +39 +d`7r0%l*2Ss:hÜ-̸fi 9Ux I1X|?xqċ ^+ѝNQ,8XdLvˑlyr8tN~|B: 6W=.EiFϱ8ɄZ"T< l{V` xl|p q4.r%9Gr] d YFv,#vhUy\T~аe4vvRQ~ܩng~N)88^'\/w,EmВR4&cM?cM?cM?ꇛ#~pV"Q7)*%aP4`VoXT@?|X, I y^ +$vI%"Diȉ)r;20MX Ysfc-w,5 ~r(bjxN5~j;mZq3@5lqiqIy+țjcK/! +Vqqꁉ'Cccua_5.>j|@x*K5V/odXhZ`׊ҊoO=fPx9uB㥄bu"a_".J"Y*Β ΞӺF;ތnpVúY9}Ս+?߿GkzGkzGkzPϯ!٘ѣ!$l=j Z~u#գ==6G*I=:G.oǵڐ IРt66#U`mz<IčK,OgnP @.Ǥ3)GT;$N +DA̒-Ked+Bv[x݁T`(3ٖ1qe$\@؜ RKLLė#zw&:gJkZeU+[/δdA;Ny} ˙K,8匀;fY\upYr c>8clje+Vp+a~ؘOҁ+AlSd_!՗lM"_U;?\J_ qr◭t_¯D-]_J' eb?/%>gy97u/[6;dN+fglJ?[Z6m~ֹԹus`W0U1%9TRˮ|qڑȮ)Xs\\ݺcz+ +tz.ס9&99Q0:H+p" QHo)qrtHoΦ,Xc ?6Q:xqUn wyy^%=uy9͉a1!|A;6ƇFL8-o h7e89(EyH7݇[UUD!JžZjM?645E-N>nz,EwNΌO1(x:{ܸa."-\0 #RE/cs pG{:RT rqtwYvw u3=q>2Ը3?t}U3\QQ%COafwوw V"(-G_01c|39<_Yqn,uPu@kl>h**fE9"Ҙd{jϷ_p\JI &=jھ|}'N6Ej:1J6JD0zٝt0ߢ/#>\ ]DGوQgj53@gɲ0 +\,%>d$p)xAŃ&Sxnjy"s-\30#`E4ޗF,CN:Srhk\}uCWᔐ +]Ҁ-sߏT :!R]Y,!rPG~&  F,ΚDz_ =O I޴TD^#KRs Gd(2d;WdhdҞ;0tf:4bD0a YeСt؛M=6JVF+:\Rt,:qJ.>!TPt؆f$ +]σ-:M_rLy +yagSpqXrA%I"I~irAye0rMu/+SY /0ςOa؄Z"e~F{ȰBEq m<7H'2?8fvB!&۫xUuNW+w`f+.#_YBX\g[%cBg(i5rsCpū5e(Wgi,NEF-\^ WRc%$V輮YHU)%r_yKqނ:/!Y;鿞庌!Tn2nKZ@>T Qb5 @BfUj_G[ީ{g[:^{;#wVx(0 =#M/UG:lO":.Zt i:ӿEgA}Cmc}Rrۈ=׃h2^Do/J,BNؐm2s%k4q3_%fktlop `f"p53гDLC;< +<4PCCkk <4=fR+  .^x_K}gH"bHO*g啫z$p#8+p 9;%\G*,/mVXMF4p|O-( wg0e2`M͓"MpsJ7I\滼+sq/͎¼DM&T0ͼI$rzqa9|;M%f  a $ih9ϷAn>oyD}ӎUkFG-% nmC o[~g¿'h@O Wt{`|~?.^Q(qoJ2}z);s +9(&MoK '5L%~+yDwĨ*!?xm&>x$nҋ!]NR])VJ4Dhk3AÁ054-9u :O1LCչplk.ezv +KfMPh-qIfmg$x>y Í _10.qg^89ox"iơ֍H89ָJ5oE+Y÷y֐ogs֟ͷ6$ӐO@R8`vpߙ|;I-vQԾq*@&X=af `GAq,!XAJ, ؘ`L0އϙ'vhu+?dQ (y@vQYL@K,CO `W+r#VȯUz%ZB~,˯<*˯:˯l~tYEU_'Ag~U__¯3^ku3*TX53tC\r2?tlpmtmA}ftbzval[uMmNA@AC,T M@F(ďA0"Lm*JLDGCN$LVݤT,LR4f#R690,p?wE T}ڇ8{;k[˦ְQvמ=XgnM0{ s׽&Èh(27摣`43qe,L>cM)p5{aGu>tC: F<'`G{w+rEjσiksU|S:sonl+qva4-<Jßz9+T)T$Gܱnsl]`iDm[Pġ3‰Kw̉!p#Uq Q@] 6Cՠ#>je6+$l i|XI)Qj>Z6B7Ch6.HJkCR 00qŽGN~~߳V`BF0px&Cv7 Й;l$$ RﱭG^~[%˞.bm +8ImbQ&0k0iۈM 0w``>o~M~_¡rG KÙ|pg7|^ùSÉXΔMK 1v7.S2:Mb:yt63ULӹWPDnM'8w%zL:?ׄO>k>e BN]D՘`#6` "c b z@;q=x`9سZx`i>ggIQ ,?|&e(AF^1]%0|vٵ9]پb>h>[﾿^{Iȏc}ΓwLo~k$"1'eOn~GAoq~42W\2OBT܊u9GQˎ2ve$Gu|Όǫɠע]aΣ/o^gS[c5V*G/OXȄ&O+!2Fo$k#Sj1g+=4:FfVoekq5Mq;x2rh Ms7ZpIތNxWeX]sXV #.~0u/Ro-Y |JtHؐ)^Xo`Þ%gFj`đq+kX]@'A'KbT[;WEG~IO#yU啸MXosCDDx׎`ϙspΫ8u\҃$qKŪ"H-FLrt܇J^Q0Z bdIzl~'}ݐV++%v&wѰC zp^Iqc9;Jpռ镉BN),nm`p*LI#d1)/΃y$-\g%ioZsn a:a>d`Az3G4 xMuL^}>^Kxd ^{75Yxmk>XCA:5lR?bM+vzz#yьOI)<=yޣF8Vsba$l˥N[ .Ed+Yamq:BBaIf#RWgEr ZDT+a9I;8 7tz^v~|3Ώ?c[ >.gE~t.i^%u>IM,IއP!x ,x]B +rVH4o-9*1*5?׽(*}j&ԯkb*qR%S2I7Fx )!* rVV}fm}LZk^oG)!C鎍sn_н>{*-P/w<pJrZ H ر$=B{G{ "veD ?BЮ|RRߠ`R A +uQ5iY}8yu7Z7AC2h3ᒍwTۀWZ"Km8i(`Y&2>TJdP".qwϯF>D~(1q7g~ ۭwN% O\J'  .qsspevo6Zou m"4o{xټjޔejYdyͼ0JFuy}o ޚ׌|6oSޤg-)*?]p1x-gsz8?c^&Po-C[⭯lޒ71$*cHvCx#˓-4 + wzwC|wwVXZ C0fFUr=sB1Z|}͍Zl_ZNjK|EqM^U&tM\Q {QGP.os'۳uzb]I<{LMӜ'D8*!ĥ5qHz2Iݣ ě6m- o.[ +orhLU+^UWԼki6›=i2oXC``Ncq/Z!Q#oE2K&aoCo4oEVҼ!)Hx72o>ކ=ކ6mh+J&dROznG -1-6%ގyuy;f&PQCRzM*v;>+"ۗ_#OyH+XEB}j=W+6*+GvnOìh֊Hz^><M,zګOq6VaG+;5/?j"\xVhoU[!+Ju%Px%n gf-W;IHu +\Ǵ?,Ww:ZQ1͸ 29#Ss(8 tULǹ21SMmXZ&o8bb%Ho/ dA>pVDVK +g_T<q{K׭6ckLdkLNa Jٻ|kZ_9ݱVLBnrZ +cwo $uLv_V:qF5HoN_> +kG9y GKh T5ί'QU}܎~&H ʧ +\c vJd!9gAW`ZE\w6uQmE[;sq@(M9{,pwU)&lűH>@OAQ88.+"I*|V%Qs[ixdFo&I!=u,2ocYlw*YĎ&%#Z@e;3+}fh_[#%N庫[W0YFZ;.MAqҍ]'j2LZ Vm,=U{l[6Cp:N==fg`5d/HOc/e=eg9q,t0{8O(צW;%W֝{ntv>!&+8<Ϟ٪wzR.[\vre&ˮ.;dw鲛kV䲷r>32lu.;.V&* _vD=,WB{xOe U=YXq+dw)WeW}ݒN.[˿,&n Wsa[A7vfSc9/{tW&kO?wKOEd>m m'O_?F/Sys x.boՀo|Q xcb5۞>|>vӀ3_dz) +CRm/J@FjFC&࿬߸weMGDgxZ<|s +4f+4:?gvx~V>o//R˶Mdk!73e[DtwT?[LI}D6Fs9t\:6guTǭ(Uo`M ;#-|I7hM v:~:xiLkS~čWG"mK**}5^xA11F^NRc@|X6+Pk T; ^K}OcLA릎AC "Rrw_h~/JR9h"ONaC]cˎ?TC%bkEڈ?ޚ;P?p2eG9.=G**15YG*2xv? Dp^'tZh/W[]T8S?|"?6*C{<^:xPP#ۅ6fW@|?X0+Ph=w#1!=ű SBa *JU3uxWjh߽Mh+h"O +q\!ڌh ! l\E9\A=y 0LSKwT\:ɻ\uڣVSUmՄC"'c}z!+Kc9HڏLҔNٻB +-KGs`> xFNID#Alx9ޕsyq1acY(1qV$͞ gBv6ʟfM1Kd;:l(xü㴋TLdGEA>G鯴VC ΜƓ|& r;&6Y.-`²űlqHֻN'0Cm{ /Ր +.xOR>tK]nj-;I?G8zyF4^)=& -DE-ې{W.vӊ-+o +Q-IE=`R6SY!-;(2ǾVĂҪ@(dS2@x# K9rW[զ4PΕs Bբ&ux>4il:$Dl.,MwNs<5 " wM9y(N"EyP >)zr,O+_F[e0,M?fCնHd/}LzaSNOϚE +u\m @%с<ڃJ=u^atxu)-ggw;9jV=jZjN2K/MueզBA@ܾ9nΣs)(;>?K-yN7&IV~ki^ je}sGJiZ:F7ôKӷ\.^m4ϖNh/ + gS#@6zHA)Eǀ4i\jл7.{7̾Qcg7{f<7coDJ?B!8+ "dr@^"PE3LW)(4`^II +x^QY_l!DW n[ Z{W6s z+Zz/5nq4`} ~.{2AHwhݠ^c>d~c@[Z +:iڏ#[(ZPN{uq',A>npeld/楢J )X[Wf]t o]6+yj"|_7o0VY p* Pi&Cm6r>E8u^]~l(az]Wfi6]D PkvtJ3lXmRleS6CP-SFOWW%#?XFljf5f;IpJA]zm5mxdL9.%,TRܯnr% .cH_=~_5^=6VS}^rOEBp!ڑС)pi ɝJ!+7Ynܷko8,Mг)^Eٵ܏y)+Cqlc?4 =FrnY%gױy=W{O%g!y%ur}rVC]ro/n*u} Z},Ph;垶)t%MClor߬b~3K;DmNmM}$%ד%ݸ*Cu]Ñ䦖{O]s}YBh__'>\rsʒ]#h?,xܷf]e{UGqZTA=?,0S=~&-˛noTrO&?{VhӔPbhۢo ,3%m?r?r?wB:ra` iRCnůӢw_B;^)hPm;$+;F +arKvCJ萭Za7z?t`/KqyxCn=CB+GJy.h}< ـ6OJ;X5wx(Toh4Ln?h8`' P~&_n(JOBnCj {O8SQKiVr[,YR~h*kۻ+?FOEiLYGGOd+گjѫ(dL9vkζ&ځRnzͩh7pT>o\ٵ\s}jCdtY=v)dp.e\z~eޱ]7X8Y]S-1ϫjU{Y %,>RqY +BWJ-дPi1tۧNK[ Ej0Č8,GʿIkL/`#;fT\qoKzȿʿd. Q%=οcʿ$n" TNο/i.xytIII3Iru_<ΑUO5y_j_"{L]_^_^y_VS#x\We_6R_& o< 5hK%٣FN/Q#zԜg| * dQs?ˠ32薂쀹ln)FZ v%R0=dRA7pE#BV1bx*@}dk#ˣh[9/_f_d_ъO+2Q>p-Ȋ<ᰚS52qVeet4GM9/5iU8UU[<*lo(r]EV-*KM3/u%x% }Z8Ϫo++T+ge3- =["3rȖAHο$toH¤ʿD:ٴe_4B0+ʿl2ۥοԳEȿ"r_?ɿ8%-;2ZK}R_q_W2+u6k{0,s3!ÕRd<ȚYm'Ep_a ̶<:q3LرAweap3 flb̽\YhdcT=m잕+#pK'dˠRG> P(v>#w M3 Sm6}ȿ,2m6οgοex_q͕nο,ΰtetFusXοBOiKDr3r*92 ~]z !t~:&_Ĕt|e'c*cYc,۹`fě]3rYc|С)Z' :8xM;rCɽˑM3r r8:m{Weunο C ȿ\YO//u;2°8-W%RȿLlr3fξοLL_&L/9{r2/ZQVFeܕmi_~/3oK:K}}F%&6s_:Oq? r̪Hlz˽οgS_q͹/;*B_{F%OLkAɌ5-*r5GY + @.OSB)McJ!FCi^O堇8zZ̯;)#rzg{3rٞ|3z_^Rrb'!0gOm-sL`_sMfeJhDDKM{_2ђw%O!Ҹ3rP+KnhY]oYh3/9GUJE'Y8ny]@f%Z/_NweLwe"̸̿_ޜ;R_q璽/3οfKn.K۴.,u|ȿe:>jrƪοlWοlɶtC`#'j5Ҡ;2ʿs%m+r?,ɳB-ֳQlTd.^yՀu:(BIQ3mTlDxQ'D(n^iZbtTc~BYWYݜY(cXKWEͰ^/( ZЀur1Kzy;K#rEռwJH/Eejd_{}GhK~fVEM4SFɚ9@nSV +{W( PLm!,z"Ȣ䬠g HiEVKo$e}R)8,gGc!hEF/?(e{ +o NCK4ps:!i.yv[tezH@YOQ'Z+|@_nfv rj+W(zEo<-i݌&P=:OI#v +}t%7)E>:MS i_ _gkT(zrAz|I[ pXk :ϰ aڍC ]n%.BA<>>]d8,kS-e/:Tnw9rp+w#TBoXwwvWgU=L|s]MC%tlj J܃S"F)Q#%螦Yh/ZѠUTz6S +IJ%P0VWYX>&wsFzS^<"oe=h>j.+;譢;JmϿlBIRJB}sMy#H6<|IܧNi .[?'$onȊ,E䖟 a[6cEM1{#(m+HCbS*& m$֬P{h ʢq7bC>7{MMnn57/{,Mn_VKҥvy]jp']6;MsɝƝ&{4{i8I"Ec@79E9=9e(2U3{}l +[e'6g^okxZ4D Jb񀢂ȷ ~S omf pJDm~?Dl~1?V#E ~SN7enC~iWӊ 1`B`Yw7g]G^]~9]w].~vsCJgAh^T.njځ֋3WoI]ߕ ٌ>0<3zCڠ SP_c>da[A-S[wk>i9+>]QϭL>Wh>_t|A + +gW<+b>W|P|nsJ+>#p<-wbss [\P;EϿ>@|/7BψNE$2gsО|nǹT[A`_ϭG5 >7|S||>|>:V>י|3ܜ6\Bx\';/uL)Bi iGVbEJ8|&v$ 9JBxْƨU1/w9]Eds3 BYfv9]a2Tѵ)6%.f̾{q2l]jqvŮRmf̾{%2]j3Cr]rf*{TۑDZ*EænT(fd]lE̾l8!~ p|_ +o_SZǁE'$v_~s7_?}>6n{c}aG_@_۶plHjtzn[gT>OBN6=*}ʕ, +d˓O +ǭ{R#$^'Ł?i:퓟* "j;f:8|NGgҷ7[ ߯u?He)UϿ69EU9{n $PzY{Ivz\N ծUxFKS{8gH:wU-3e*.]"֏Zoۊʵ'=Xzgc\œ ȵ\\Ǵߎ\_ ',U,;KTn2F1-)'z"ndE/̛$ĀZrI8E3'JEv))WSʺӜ֝&Gw3u'IKK4)iҺM)w4Н&SwR9tn +%)pU1 lfLѝGwrCJzRNLOi\Hib%>׿Ѓ8xxX0d*i]Ux^Io:e_So:Q~X+ʁ$ʱ(G#/;aL1j)FNybtޞ[.a\]ň뿐S.*1 i[î7*F\CN1ho-Fw.bC%F"G + 1 +B*#!F,FIW& <[_77fʗ b/t`Cmg J5 8"넇~s*.W_p!7l:/@dɌ3똩_R99^Ŏ5g U%v0b:~:UK~ӱ7Cx;;z[k {C'r<.r?ÁԞ񝌞a/bGGQLVKШqpO%-Va[݌36J*V*Ҩ +Q9ΝRJ[c^UaSzWiQѨѡ7Tvxa}h{DҨW25 +_bR6hRvF]M;5v4*Qr~Z0#gR3(bg(ШA!GF԰`}m;&y1WJZX0sT>\LJ2霭Op#& ?0ZO8D͢AwYL/2;\Ŵ1m[p,^p2B-pǴxZ/z tC}A 9p!Ll}O@D vPS{Ʒ2ɉr]r]vWQ.^D2\,-{#εYޚ- /Z̭Y #:dulY+.8wڶwӬeWd]?mϭYnc[PE|ۃj29[x]u<4>/5gA`iK#TFG.u`*뼡\rޕ\w=xyfo0ei>ց<=Bƌ@޺ӿr (Tǁ<+;a'i;dq8o$ 8R %~Lg|=`_Cu??4wF?rﺽp/TfC/;{Cu?;f?T\"9wwx]Qz9At*(~GƤٱwwQc;ӭIC4m=g';Ny.{{nivw3W^˔vϨ;Ҷ˻U˔,g]ݺ_pv6e639wؖ#~TNiwũww[o0qP~];;AXsw hTޕҧgn8wP;^2wgn=3~Y9w5km׽kn-gn]r;m[GVsskʮ;߭|><$᧎%%r;kp~3wJtnˆmvߝߵ/o"k!߶:Rd5DUW.E}R策b.h5UE}j)mBxkRPUQ?b~zZ5gK_PXehV:S3m}"}ľXv +f]ֺYae@nY Iuv }f~MѶIy$oZՅYz16 +~nsu.RunβauF偫{G ӼM}a'J'K1|{!{BmlC>qi٤h|z_.S> ]YYGF#qʸŝRTCjF,R3){  waX??[rT9I~5)y 'R|1#mYQrS*ms +m#f\AskGɇqr S.񸙉~k;KC7;fu7эJ}nuPў٘puIҍbC7ё@UID Z%;(~iNd)䫝"$Ypnk nT8a6G7%_4ʨLhW\sU ,Qhe?&)&2zV8p /;@5Ӿor'\lQ?!IpHLQ/vrC*S-N8oI[4W:Fbi?lgB=' $i?AGJh#o0' CP֔Cˋ ;v~Cˤ?bC?y6`O0:3E EY-%ǚFpr|ox ?'Im*(Wr[?7 k_GU?XPCٷ֟>[ԡʥ?=J3'[?JZ\֟vc= ; +$QdZ{TzGY( 7z}#}2eFyE7l7o?V9nW 2W!B/ˠ_S$ⴛ)zoB|JwY٫#_W%\7<콮JsImx(%!H1'a;%F{͛=.oo ++mco>[[jL-Q-5[9oI&M+:%=dIC-oo"EY-2;;[o_4fu//7I hc/#y/qbAV 2᫆?|eQ(I>/ Q71Q?-n55C~PG_cx.?Ic/[,ں~%j:O֯Dw9~3 gjp<4/i63Js:>ig:u1Lk5Q =_s{h$]QQvuZ&QM0fiШ&8\=V( #3\kTC{Agͧd9Kk[XPiԐQ4j4 +=KrSB-Kͷ"p$;ɜFDTao9k|'.a e" G~7 #+:q̚9(kX5q.<۳00#]b />̾/_0*TɬTiT THVV%)%kȜ@&V&trX\;7x\|Ԉ+)KMj1Ev'ob; (G1mV+$zV%Qxl,'- KSD(-CC,oGR+w<&=^ IpܴO%kX{wijFsp+mմ[e; 0ߺov'xPMeQ9J@he}w}7v"1]ϒ;<)+XhvFpm Snt +VN2dNi؞.Z%Sykg1lG`}LubEwrG5AooWSΟA0皷P-o]q'RoOyv~>DʛŔ-*"Vcf 7-;!k"jջQg4[[[4G؏";-V-'xo 7x7two vw`9;^.s*5~;v*b@,HkWGmZ^pFo2^M;&~My gS~m'~[ro/ݳo<9%{ EcѠW38oRZzO@Kyx//_Iov 1}6oo۹ ; ;toVxUQ/V-&[ ߖN7ovk6+ACKo'6є{d"lg fb>/21s\&3;| s 6[i7V/i+n=Qߣ=7(NwQG%<1XAT|#/cC2;;Q_woi= gZd}ߕY.b23L[ bN}}i<&OêOo<9rVo6\Tߣ+uro昛&KM%)ÝnK 9-Q=2O)/BD&MTÜfsZ«ϊZe|+O72 C!o*j0Ƈ&k+w?4 a|x1|#"Et=>|z/pq$XB}4><]Vu.%d7 G9]%~LJ;|SNִׂ̺eb[0IxWj=[%x@agMxƔjJ}(>0j?Im7с-- ^ Z< Zc"u,䏾SW^' @UH(f߅ y69 Y^&?/GuQyAPFj$繎HmY +E܇wf ݡ/NLbb2q*sx´k(4E3K/ *xl%eEO ޴FvYږ}w0k8MG1ɴ`֢y~ٙZ!5_~;ZWk}_W£mH=U)d');.7`PoR,5k?b6fJC{ic oUӾ#[0}dis}k7 }b|"{t˳VSu[pa}Yg#]I tٴWo/5ljS`NeD-]"6:%GR5Qt0ZK\yB|7D4wY4K&&&36ѐ8~{MLu4>lA2b<8}"fgI<e?}?ۆ d-?}w|; +,(ނ_D,2}  [V/O\5D؞jjh `.Bwrơ*{/[Iܟnm>$.!h|KeJ]/= fsD1\lre:Yz+> +ԥ)5 v7;=Ŕlsn:L1V3 (t +-YN oU\1{.+6#&b.7:7/*i_t_6 _0!/(yBL7(7ݻI9<Vct2fD#_ph6o?⪸5-AMǝ!>/«'C*=鸇X;;|v?[mv#ђo—~#o *FwD\Gao?/:asF`vտ<.;&.5_?--aJh韞 ͻ_C?JK;x'.T5>J QcV01箉W1{.}kV2Im&1icH!6sja3FgLd_ +#`0!/0Arň :B ,@S 75T̶f)[ Yz Z#iX<|R9^  &.z($%}W&,\Χ]L.ܐS*:ʤD1jhǿ_4g铧r(!\w嶶1;*qq45/lX!=7!z9&ƌ "Mʎ $F ܡOեD˯& Z5ُ<^m:hUv!`Se&`C*ՊU{ML"t'\<V<a?j&=XD<gN3d'! ]DpAFJ;D@|ȍd8i@b";l+D^敻N)O,-as׸70>cWbVV*h߾w7S) oV#or;EawM$iG7RXʂ]vU&l8U2+Uz2m _w`WinZw€,/fDژƄ 7c +v0LJ}vk\4_%ʕ{V1n-]Nډ<{ M%qmW/&#髏?@ӅvuyL;.[dЮh/E6l9+2hW+ړviML!nq6AvA킠]Iv9& 4nqhFr%#QHvv4 & h1ٴ3hVJbM;, +vy9iSЮ`+6iWE"7Vrv lYm+;) +[vx:[ oaӉ)Eyٗv9yts+h7nN)HWC 0<*qV[KnU(Ú ܠ31ZzmߣLZUSZ5KӾ{/Kiy !=%ڃ|L^P,w_QW##%ŽON'W5̘1< +n2qUfi<]rwlUe*wgc&wqwױ]FKIx i3tqvؓAӌwUB2*~lp!կ9|P&ҩ1X`C|K52PO8\{K _ |% +|%{/_q&b |+r_H7!~|E9s lĬ_7Zho]];B[I|]|+1G?`l  +|v˪B|}/|8?|%Np$ |%+_+_QWT "o+U| +|ʡꀯ0|-6V6 +3WW > |`iq6'yzNMD.co&`W^/Js#^އ)ywqy>|h<l=4\T!!aj/a02򄗋.X o\s#e oM<&z* o-y)yk&?4\S +y ov+[!]MȻBcoj+#b&!B$OFv!/AްBp +QC鍼?#=LyF +q!Ս< aVL䭧l(FZʍ<4La'Fބ<윍<|xH!o5y9`ZHrj T"i +X_$zU7Ak*b;M?JD]8aSX(<HBߨLODbBX|G5?~ɍ7E[˓S-qҭQZ>HWcFwz~v##؞+Vd! Moa6[tr}2ר(.GHiqmrKk~׺?=6֏Z +^Oa8اcTox \A6Z]nzR2NOJI[tsģ##5KQӗ"w~_ɮ>oҭ;~sr^*??w[1nͿp R/,Ţ?u[˸QM 2x#+gmڊ޷05>KZN +8$p_X~z : ODCVĸ?qj%uu:Vwh*xRB.6A:FزTHǏ#wNOn~s4lzrP]07'mǓ&?%/Smew!ҖO ,Zf"bLtv ځ6B7H&] +>xnY1Ǜ?no˓}I ?^BKFi-v~ʢI[н[an݊tn7|K;tȻ1S* \G LnX]ER ;ޝNARٵr=^^*zllCxƸY~*n?JV{C(I^ϻ"ho֥(m +V~w.Jg7Wډ51|\'49]wP]һOXnZ?Z/ +z@7b )~J٣R,$τOȿ#Rbk.:Gc㑙D}c?'CJ#T|]KI7h"oL~BP|E +Nv$)_ZZǺ-kX{kgc?cSkڧ2>OwLi5 +Y?}ZLJҰ&BwMSdX?X3A+J?o݂tWDžih7m+X'_tGYeGLRM2inҜ_~ڗnQ,1xkzy].)x-i{.JE{mE#:ߢi%cB 3jS',1k~MlZp[G弋-t#.(r*m]^]KlWb4F`4p e/EpoLdjw'|iR!"B+.Ky̐Ve(7.K/Gb|ےҊ ( JjJ.Eb!{]/Ջc"JpzʦdMw:?2rк>5ڒ}ߑ;;$EgOʎY>XNne:Bs=.Fy'`Rs/(Jdk P 훛뢕EEvV4wXGK?>.^ G*ťnFPi +5P!)\*S+J++?,T#`O,"G&y\T!{`EHm-z%h mգ !$/'G +J?_]; Uu_X-cZ"Ay\/E* yPm^ƷmQG>Z ;Ȓ7sn+J;.UvJ_W"QI8j~T}uӂsN(.R>wkyf +q'NɊbR'E?Q3/,M.Weh'& ܠWвVX5+Hzş@vQ~h/&/ +SջHI:7͖|3X{;FW}|~[/ʻ}_O +<>q)X3~ 9Z +%5rM=OХ^]YzNNvpcoeGB>v,o*v'4!K>MO9ߥB .$;lVM\k)AųZ3;OMkV5%@Ar2hfO&;$/B^s|Qu +yMɝ?|<52KBԩ|i%[~QV <C_)fVMD,A-N4W\M@ͪǻ&;+o~J.4lzuŢm-Q=rվ_R>ԒR@L|g{ΧˇEM {r7Ϳ'Q*1{X+Iu!=>{)D{Mk)&J&?$Mn}F.;~!wVW_T{$TR_Z?- ߐ~5!ӊQ54jRWӶLmYm'{- "f3Qh~r34*_=(/;jTaV]_ CG^chwL >tGvM{~"F܅'?,4e"S1yS/3o,?gb[0np&ld/,֩?rLV>bߕ8;kN\m~ʋrY]ciX~QCbӲ&WeMPvrqHY!Q3!z^״!a}z#[]xB+/AߦuE+|^kV[O-vr/[m~|֪u筶u߆8.j)&Tꯉ}Sd_r(o9ErIZr-ubLw55_U=5w%Y$%Ri]*ܥ*,\tzU6XqC Џog໳cHM. cxЖTBP?A; _F>o~lFOk + pbAadcek͊a~F"3"U6o:? RȺukZHXMe:%)YV"'D'q,uV7k(Gŭ/QdQ5 !b|Y>D-λ~\k9`%8ϼ:aVo +O73Y(7@Y( +""aW:YQa@ +˲Ⱥho}=OG1 nj|~률z!ɤ02[$b=92M{yHuR5EiҵShwAN偼E_%i+'g^kZOBȘn7.1UPdHS>"29Nhb() OiQ!zD#jR5cCOt!{m0eWDZ?xi9_xwr3hO|mNn*~ JºTh`D!UVuR ҏ֓~$ɠDѷ%x1䲟^A*)HhjY_Dmó]qrqPMJMO'v)NzR4V[=PoFVQ1\Ÿn*^>_8$Z JP@.xqq>A![Z}U ڮJ)턺1Mx5o@8}M`i:"N}E.OMs+ ]>u1)#;DnS{#)U'G~W`/,?B9m#n5iG$9>gHu{Uaej o~;ܱVAīP%MK4 @uR_ZEr2Fd/btP eتr!o3~?C8H6؇6>ԠyK,MlGnr1X|!Zkdτ`ft ÿұVTd?Bɐz1hA%+2V%*4A6kќNk(\G&=zL 66NČuF^g^pL.!PtX>8 hV-_A,ۮxn ?ɦ_hw= Ȕ,OQ<}9Oʓl_}ӵ|9#R~h!GxĉE,Z 535|l׋-&y<*\ԓ]?!{CCj=3s/Ly]ܮ_.Zp7k)->- o±Kk[)m fa(?u)tJN&rI/L&bgs׶gS;B~zΝo>$a8B?ke'>GH-)ژAs㫙;u;6%4pidb`elO'NGlMO6?1Z$^}P`TELj"vfşc^8ntP&1{`wmW(&~nfN6eo屐e1y@qeť|C+-E߿%H{V6|4,~T2ΒF'3n*!%_ܕB,fxıt␥r@ǭ=]zҠ_zϙ : 2T(!,6:cpe_ѲSf3ʑe_IJoT{_:Z7tٿ .ĪFG{~*:g!ڕ'?-~^ѱi=K\O1Q|2}{ovb_OHwthytmt!N]eݲ6EB˹ + d1n1֙\Fˎ)/<UWD0-nimBO(M32T*ܯHqmi~5L|[:v~X5@f#"?O'4,.u[kn\a#V@4CK4wL;_L/p 8{4y{5cG狆LM,)Pr^XRxvyUDCo9Lo?hy#U7myEedn_U!&Ս+9yUk6]-g^He 1ڙlpQE;#bM#ty' +lfd!Js(55X#}#?s탶Z@7FDb~>e}'yimK`]),{rZֺ_p˰vv{9@?`ߥǕ!fWS&O-a\9Ɛ(+A9LxUx;yqIˌΉx"bx62TSFѵRrVvULj{fL#֢zBd$`l_!,CC?1'̽ 72ssc,ϭawJ75c;y>:7]u7 6 W_2;S!\=E>3\.${M .r]1 +C/}S̮ҿf;cU9T%la~@Y1OIdk lJc_~ɡ@sXY[LWl9sxVj_b oodV1^e+Ȫz{ڥ\bCyo75Y2rgl˿>+Jx4-rv6pfg >Ss~ڡmF,vn/ۜ~R_/\o_#Vp*b.V5߉#=.[R4$M Q%+*rɀFH0ʂm]2/e-,D.T)YRkokOU'gmUVUv/̶7a=ƶ٦\ԾKb +C~f8b>Q1_WJU'GR֑뤏߈>G_k,K6m#d"t.+bu tst*3WJμ +P8M¿H{ܓ#֦t$:~S`jXUik(Ts=v%zo,^m9(勎4ǖ-v &ao ;`lVQYYzWʗCtEǙe`95؃yʛ[ogqVi ؆[nmK}|B +B +)bUZY2E\ܞJWU9l/1=t U; j"EL<&!&YfKp=6GOAED̔wW4 +! 9q4zo уR\>g3@cfo[~o/:'cSg`Y\bVm6+ PA~򁞕$$އԔC+!3}cX3˫̝p"#n!kzٹeuc\FB~Ӯ};R\4xzUu9Q˟B981ibuU}M.7:)L߹s =MSa}^bl?HCj@zo ՛~xX=ώXg75fzmATKA{2HQZdEES;BV$ly <?e6“kVU+[.@, E=`왗U&#MOnUX0At ֖>!r-@mT͖y7(-ޢ +㲵Tx:9Ac]{I# [Wzjꂛ`x|&e:A@f f)Axg\_,cB#J;Hˎp{·rEsZ3&jr2j:":k)^۟_uх46Y%||(K,kIU^ ‡8APQc:qQМ5z>yˢ/E#i12=Z J0:3?r항kd 7W [kP(\% +aE;iYh:ׂuUrMjyoBHhEV:ݎ))_I16 Agc}J2q/ai&Y=1 +]/|{3Me&۰j&NS3kRI +V6Ag_6'UGg8͒i:u>~&5l:JV,g:znEMz.&)hSqH4 Wg3K +?s2?%vaWںen63A2J;dMߤws(~ltBqDZYqOQۙ{G3~)< _1YMP56ull.rsˀzmoV'_4s؞$IVR“Dӕƴ6賢 uWatpQ@S :&N+KXpcɃlBFXg!Ĝ/vX<=qGgi5I^I}vgV̊DghP+Q(Btt@mx4~Gj[_G-E9]+3ū{t-\ececJr%`m؄׬ߣikqz[#˩6j +0x +jPR U rˣ嚍#RVi +Zx\5H_\օI`Ea ҏ͐7|,kf ɇ20ͪ+}(Jl{ Ʊ7c]8#XWY8!H:?D`E`I_̤29B + ygwe^x5AelY۳7.760S c@!Z_FΓW9S pVwKXc"9+xN]Dѩdw +2QW|+.}I߰?6 u²EuEe%-Ae\R`z.OGtb + Rd +z4H 䥏,JۥxK趑>˲&SFsZӓAmwbAKЃlbjH?8ub^\e5%SM$RdoB䙾aMSB SV"跊gpzQh#]pd~eP]-3IJRۇYą==+nM<%ȥ:;WtJg1~;rɜrqre +?_FY߃_~5c9IO텿*N6,[tBΓ9t5: @!FTUz/vtP&LO;SBэ(꼰+ł@ڻNB F,_R1h#=DѾ X۹"gJq2_kc d%)ɔmF-+#+X'Gd~VDs{61{g*K_566n1wb [4dErO#{g+@$ ~k{*Qp=6`V䥅`u2&[,5kz\x!4O#3垭nm˜ȟ2TL 4sA\1ysQ=94V, u/_2fzzaؙ!3`Rm}c,{r{^!>"Gmy2;(ȳŢ\ f񛸬 ' +$z.5kF8z;w÷k\)i23Џ'89n{Dqv<^1NOb OHAQY| +]%U拉ZQ${s( +Wjp#Wt}BzOlU!1sJZܪHO l& ;=lrU&ue%UTLXނSe}h|:/3W=Z ["0y0wR_GXyN%byDK'2!870j}Pj釸i47،hYlGiq*/ZYHl;MvmF(WnRl̔093!M]Wq#B5ն$6>ǵz5 7%_a&oFJy>}Ի7vEDNj8\QO</Gp_q6=MXo_f9Y&͌9+J!&\Bg Ya 224;0!m} +i֘e&OJ)[?ޔVcR=,:Hl]c"Ȏq}ըF|5O':BǔB((tvXd -8Hu_q7hs۪'m |tmm:Wmu{mj(ZYR<+A}g ҡ$;5l` CAn},I@Ѿ"G"MO: nI+-_?)g\?Mھ,%16m1//)v,syBO!r^8-{BzjJ׊oYQI6COe1Cm*)DvYk!}Q{?Mm 7 X7Vntn"CX߃ zojռ00"q.a0Rq<YpYOBSxqvq +`.*HsX+Z JUlƕ[Vihs!cFUI= y' #ߒA&ަ#;4EPbd@[ǛY[ěp?rya2* MXXa~i~x~7uU+L* 5b1;﮸W{!}K־mEfZmvmNyBo~u7\mgzϢAo>4-C:ތsq +9_ +ětӤZ +  { :o&y+rWDJ w7}a6~h_=!t\b3'yV5Oܣ#|Jb#)OUhHlg82L:]3&qד/Q{x3}l}y6^b,ѷKIPh!5eKdg5<ĥ~mřr#gXis(v5{?_<=pnޯY`xׯ +k||57q_lU\Mv6_?tlӈg[PbtHRx'8l='TrN^jV=G"oUW_c+uǚX4.Y7oo?3t}Y +{ZM Ah0ndt(MIhO282@͛-ZSlL֛sm$jR=W6Hgt XCDe;.]:G +oPǥ%ǥ:Ȟg'0 ƫeޓ5JL1j98jguh;X}LG򊎶; +B?pKC!%έssOLolXq}X;۹ 0[ v(o(بayǡ;$@CKCv9^Ţ";gDY<.rA x䝳s}r:y#2lD޹7|{:޽xoh,#WG\ 鶑k=+\/\$7ү% $XiO߷ύ[,er%e |x+}rs[߯xu6“6f"bU+F1_g/\U&OP'0etIh$}@`OC< ܉@Ox|dE_9^ӭCntF9.bĻOyz?~Hj}Nӗ!SWK%ӫx U٦W~Պ7}{HƎwX~8gS$$:'='LDsw-N*_f8:ތd$h_2jNrwnOu&oίR[^v.C5 5uol5 Y_ +WgDY Q& ~gCeZ_84vT[IִfTȕKOB. 0ЋN׾tq旚YXoӥ3=G̭7Rs@Rb_xXf +~Ѱ,~,S Td(ރ<bo^ y`U۷ʖ:}Ê/h<G csvwxzزCRꁇ=">;?JJ=pKgtLz8y}IeXU- SIʂ*Qlڍ/źPE 1C]Sa>q#^T,U"OD>EaxsKsᲞ.)d8WsMD0|x֙?ŲEِJTaJ.G4Oב7v9|RD@:z:` J˷_cᔕZz' +GŞ +pL_ fTG_xLR5p7pRW{h qǥ2DtL Uľqxrxv +>skM9rSwdW-lwUQ pa:^o;Q/5%&$/ !^ ;f{IiB2 +.-=Q2h˲vdqwdQMf;PJ͎ qA
MDpjHלk4sh:^z:mj5@bf`_{fic{y:+n+v;؃2'Luu<| +N';'vu<ԥY$qU:)D7-Rf#~4^%0Ēxu|rև]/N9_Yv ɬdLr]=`R$S?l!q"gRB(=M3Ը3:~a}Ru$ϵ:5:09,&@vcR,zw̲>HR|ٓ3rQ&̞!z xB\Rd݄i(aBŚ/? چgijntg{$h܍iLط&o ll@ۉȻ6~N`.3؄K)O\Iq%̃t_ 5HIW4>ܐ|ĕT|/ޜI,w>lS_`69TI|}7lr0t=_ \%t,}.B@2Q&@8~ ɛF_5_pg3+6yAj[oCwg' T_'/H oWO0x|nM%?2Gh>|!>`Sbtn{h$|!Eo>g7x~ n3!n`,L&-.U,Ф?gF\t߬,]OgB3[L <'By1aC"N 4s],9K"XrFN#΁gF!;FSg{=n'ϗ_}Lt͜~Rw -"Y8q-DtYR IбW(g"ˋ."6;4O9DD@TkON +I'X3Iڃ'S|ItTgo'qLhAٟq8el=*$IEDbLyG )$w/wv04gq5?"%ˌvDs0oET[N86皃R7 Y(azf6>P`y>P ΋UlKon=&68ΛJB +Ώ 9d Fz@㟌 t7G +@]7 `CI@r : 4 T + t%!`J2  | T<0AڔD-r==тfqЂL.cZgUqP-xu4Mbwl쌾]Z<%ߏԈD;|ZLB*IZi-g쫝- 폘/GI 4lc0lQM6Fٍy@@RAv#?fA:39i(Fi7I56tJjg' _QsiJLTy2/k,T10z?@qAuR ve2`PfH~tZ*($oV2R:.Rƃs.`!q~c .ڀA؀Af1q!ߥ<&;1selLNUY|=<8zKeزN>TZP|D +:mu8y A gintc +ّŦ Y+꽆 ra[׉gA;ҽH#L+,/vť#Eͥ2*bC9RZh37cIbHpn]փ-9F %}Q{O.MV?pJί3Y}ق +]90[Lo)8+u%ю\'D M%߸EH-4Yŭ )śi[:No6_߄W j!$hr dҜfZϡlox(LJ|#4(Aca?Yijƣ:Rs9<&<7RI4s3J)f +kd&\p3ØG95yT$|+8ylAMW^iV59tn0YjÏ  +ZD`~~"cCgKQ Ia'$+8\(e! ͜f{fFKHpoLcÇ|?H3ְdN4sLd\.2Yoj>i}O'{!Oɾ';ۉOl +ᓽإ.'ӂj⓱K*ܥ]R2|yO6o7ߩdg6>{medv, w>ݡtj;,o J|Kv㓽iP6toPf(v}.3g#͟F(9B(<S6$!Me }w'w >?$Ɇ%NH'?qo)>d@HtJl(]R4>@O6gڱ ;z1KT4`zD1;.V*1kȧYGz<."ũ~nyDs(#q+"hҤeNz@yO#wg9Q4+uCQVR"%('+St@!v}r_')a=N'FѬ9~9hWqicAǍZ,B$q㘪bUL?xvCXyRӯx3,oyH0C$y#'8N~94ܡx¯& 8o-LA{ iJ)VUѣL? NH#yW8c/D>C|D|)nq UDS4g0}yF8J8"#SrN p/nA65g?E W:ywdzɹލ;d>9j'4 s\)aBsCp(vW^nu̺ <๞c0,.Mg=!0B;I{H&<3+d8#y&TƧf<#CC iDIhĤg E98Y2x0v0K;!D[ZOkX:>iZhF3"62zjdژL{z1<$g${zihi#@@a8ڃhvh0-{?xD0#Ҷ]րCǐv:iXAͭ5f@;_ncҬwƞe/~ +,Gس C1.`/(_1g;s|R?HsBZ0^F` [:*s(lA 2FGV ΐ2䆑ynɐ[[ּ(w;ſӈ`d\ft:WanO>ŮÃ6{8 +/ej7 Jmo3+uqyY4|W{_|W)bǔYX>U?9-1VAjZxgWp]l"[ ~livжh 0Dcj?%bn&Br9\K@;k&%KNX&/$25NdIF6T3Swgs:51 2 2+uM )2< ,_K<"aèe'IeH[ttSRGIl/D|$TU)dw OKgr[]d9N39;a܃r&)'u%w?kyMPF$Z9>o6%s 2S}M&*m69^:邩cUJ*.}B/(A. + +LX|T_Lr 5egՓ@bjg$sc9?46pYi;59^19Za6N PpMl$ +A!PYtl)x d;"@ +N혜7T1QU7H•q2ċ>aTn'sNn2 +\kSVXLyH'Rvk}5MC!sYxy.7 +2HI +\`w͓ddpzTXhLÌzG +ӣfHS)IH|s1nv&0U7T][i~j%dg&͵H#;qifNGJ|S}`&%O=X[S^mcV媌zo`_VL.d#EvrխvOjahp+ qbYt qڱ 543p*0.Y''hD^J^l⁀H`WTI!9B!IE F8͉v|lIG~kqڤZΉOp9W֞xxk-5.Hf+8,W&G*qO +-{"$C:o`NE&_vU+lmoLnQR:ٸ j*;{ĚsA+eSņZ$*%}/]*;[ rVQw6fHA%岓,NmopnĹ.:\MRˢD1eH7X8Y$A#w 첎wQŽ^*]%pdiܰ6@8$,┒V'?~YӐhb+Ng78N.,_!izy{;Q|h{`أ_eje ifP{$ߛ+:wyRSЙ,^ byRmn导2|˓NkCG3X;ڍ9&HD1uֻʴdxRE[WYxMfhaq#6rF!3 Sa1C}Kb;Y&`1lgY"t$gjbBL R#[[Adti@_?5y@t|Qw)@ +]D^R gmXK'V/ķqDJ1KYl4])Y%دqt:Rt%9IxKلz \ O'Ԥr~(%Z'vkTmQjp8ȡ{ +t*䳿4I[J)SCVRC[3U*cm ӫcXe*kƒ[}MwF]z,51#SI@v\Ұ)~$BGk(1K!2wQ!/UG97@(3dz ?% JY&0Vn'vy7zBe nxxv3;MUob_#^Ycaiz&VpQW>t7QAYNEݪnr [#"v~cw*,3IF6ߢh|'Mu9s9kE3hUxY跳i탿Hc.f3;Ku*S8'& l \Cd,B!SC?<#O"]/:N9LajR8&\-^4Ɉs%qtFWr; {cשmYU$iӠ2<ݙXci^ifᙦc;w["<cN+(B㾰a +s+1uVʥ,y[HL]友`[b(|Նa` zĐ(8$1TV8RY:ΗpgLԄH Ҥә^ +5u R'DKワ562xxƪlUejPO_P_6D[D:kv U4/lrÈwuI:}63T zEEg;*4 +n_iQ¹?/ߘ;~?t``\͊Ή+{U온N ++(_C 2>.!9B S>U&"t7+! 1$ a$(P9Bf8V0<]G 2vx jۇsLUo/A$I\?vU +J:LUu +d*:ȂHaz=]KïCs@?5 V \l+pZ`nefIg@; fN';@;];贲;@{h?68 O՟ZSfspP^0߯>ax=8iOѢdMAşYQ`PhNܜX\i>,=O>MoԕC]O';|EyUm =M=Ǹ8ˏie]㞜~3~||vgBor~HGUbLk_ 巢[yn2CqdҟlCrSuX^o{O.n(V^2?aʉ *1z[9,;\DNPXA-~Gy*`Oe$>.dJr*?MS֧[*.՝V/Ɨt(K%T,N-:^N锉aOW~Ww򣛯O8?_􊛿),R|_]i$V9+ FJ[*"140P +0-zzT(1Ra+Z^R*&>bRR .<,^U-YW<-'h6tKЁ8}DoRM֓ u\vZ'{ۄY/bk@Ūo@(((@E:UݻfYkͬc[‹$ !o5^$٪wn1{ER ?6UEZxZ3&wq +X}e^dR c]82XiFuܹt>w^eum6Cdk ?~7 ˟`Qz$J+G$pY, +b,N]h6f""OnJ$h26e,&0= E⠘6#wh*i@S5i8h&NI' YpT޶HS-iZk*-uֲn> C d~r+Ii6  qɴrVb,"^i-2V*W=kDJ+ ֹÉA 2q&0PGJH+ͺg#yFQ+Δ>߭zb3H߉ +W]k [hM՛ OtM+Q/aj8 +.^/KU`جxuo](m0x&5[Mxߔ~x0kIg[ud< ϩo 0"&3{T5c:Mٶԥg.vuZ۴>*Ǭp e"=wGYJr8HXh.ϲڧ0O铳>'<Cwc#i^y@yZY”ssl% 6d1svxϾ{xϮ=e<ҪM}fͅCʡ[5ݓi5܇,5T]%s/ey}iN5KN "N .uԅYB)//|.rlҩ;dZ\o- $ xz>0Gf[[C8ܣ ^Ōm%ܽT]0|=eXm] Lčeqn-vVe)`O0Ds$kZ7*Z7ͭϩtcH₮"]\.n2tqp;uyP!(oB|D=U<htOZ~Wl>uO?_*`fGE Ó*)MItوDv-]B>ܱK3SbDbq;gh25n8E w>4gR^?\q/:ټr//6`)ꭳRN7㭩\b32sHVy`hh.|xdqUYj鈃WEKFYʻ`]k yeH?\z~0od.aqǚi>!,I|ag/OrpEDNjӄڊw/ߒ̍ae&cp[X=#;orN_}h/5[ݲ#sw9ɖTÜnG\̙dH]#l=%\R'с+ՙ+%= VG`6Qj0A5P'{YCwiB y2 Eckꍕ!;eu )cNlos1v9w0>m=swf5IMYBL .}j+yX}Z{Xlq7vtf tuE~jVRs[T)TyVU="e65IMD*zMiӨ 1Yn̳EgUnӬúoa7-u䆉_S/+t0gd +gtKsTcRcyE\in6~=c3ʯ"l81pFF]`)=ИgIV<8.5J-Yi2J8h\9Ոyͺn[zzJYQ,_/poZX|fF˿a(Cx1ӛaZ5vݲ}]+ݕ{# +!7 >haڭ¼r`ј7F eY7 #57Fg箉q_z9FLӜيnGF $)k$+oXGMIxYMxcMW&m :Aw%n711$,Wq:0U›,›E:ل7:DxӵDx?8&ïB} _( V$62COmtLxJW"OǼ$/Mx&ioՎzM.G.U2`rgDdۼ9A\?etnR3{_*ʈHEݜ0]Tsg^N@hk#3߽)^ cm@q0u|On_tu.dimHef.40"gR4v_#ݏL{D<9H kj3]>HR]@v,6ɆBlx\߽Ln<@?KPXi$l6|V*2z;2SAlc ;vg>|xʡ©&15>Ϛ/]G#mRf>o/'{ >χç//^>O;W̧/;/?t33g:}%DZES_x/0=/'O w +)!}a/}_;jpGc Tj2ԮuvʅϏUw-P|U;i;/.P7Mm!EFҫv^UaR>ǪǙժFUx;Nc،'4 =" ΨZxPNH _Pm{`if\kK BZ8J'AljIW8NWp t{|foԥ=2LM)͘61,-&WK5dif䯚5,\4" 6xc0mQ`fh C052(8{$71 W>YOB~k219:\~/4{nTˀ檃q Fe2F'4}i#kTe4+oDVa36K J1 }]>O +& t݆ѥAlKn\1{oՕD.;.9D;փPA3 PX)pgo`sBCzjt7\ kNYTRkQpr dW<rMlXX`1Yj ?fTg 4# r1:ᾯ<\% ILC#HG9~I{l2LJAL=9JzhzOg|Dn4gUY>|wѼ R>m)פLHܷ•Cr)q3va4%o3pc'n2_r/5wnQH]h jsP-TZK2"YbnZRϾ|R\Iz-uztn]OlO!D "}K;{bI 'fuzg5d2UxML%pFlmh ){Z݂)h2 jQq>!=kC]!j$ӣvlGeI/NCx~)E!9i*R[༮𡅦i,tԲ^Z /p+bcT5_E)hH?{#3Λ2>י<ɂ'փ[:{]+05.GE3J42mszK#_Eo7OϳoDwt71SuU:dt#(kmA2w/ޢujQyz2P?+o'D@,.B-RY՚M?̀*PWPS~EVQQFX!_V*8ְ~A,Q%[!;Vrk?D-3(j:cVDH͢Wsr!*K +ϭvYJU-3;̃b45׬yFRjQVy~ZMZTܓ|$&me{m]#/8'[leO劻 8?#wgb,7M[GS7c'?0ˢ` sl0_=E }CR+W ȯ[̯M~N'FI~ xDL- S~IAkȕ2Oݫʽ WE}@>HuT[G,!Qn%jí|MnV 7LWMGlhe]uZĭGk[yyqMf#35g,%`Q!\h~!y*:G|1^bͤU&_r-p ΙL+Zkk@|.q_LI`VN\Tds$*'Xd~1bTMش*#k + #25g[P&AgysEvPpD/ϓ2C)γWOhw3MӞz9Vn+P+viֹ9(zgR_Q%Ec rJN@4..ky~OF2EE +/uK8Ws4}]:}n̼ͨHgȞ:_CV27yp$d'38 Oc#ǖZ }M'"MG~*`%_V9fK#8(`2n*P&JL׿7Nc.w6Q9Hw$نujpG⑺ߛ͏G|s|Kl^>nUꙁ[sɫxLW +?wV[VRQ>+ÏW@ r]m^}&Ezrj5ԃgw&3Rw!FdYV +p؊ yԍߗ}jMbrqոJ&Klv+ٙxZOB7f|7L7+srǛ+uS u{qXk0##1Bq;=x3/bi'fSX$S z) +ȡ`k!-OwlR2*UM6A*oN22<#G,߲ uٶ>L[|4߀?U f >6iVeVϓ500FO;tP4Du2U wKc ^<R=YzqRb#żQ+sG!{xXJ=+eB%૊ ec|tBEM8 l??Eo|d}f uJK3[ͥt"꼅2ߟa+il쇃G)?,pISWZ+!7ZW I{P5g'Uwf^%0;WT9LBX[Gj \(T&n}B%ш0+SeB{g !+a ^KfL HSc؈U=,+ayq+zUG=bw'&svbx l{gןEu5 S֥d8v?Ҫd߀ټjʭskY; H Ql]+;XN̑eQMV ^%FQVMbD9^ɌS.5*Z*YvqJ(`Щskk[w[D$/3:xLtX;XL,#FWkJH3ԓ[* Jj͈\tW/HE.p27Hp?fᣨ]~h?˲615R9L#N,¨,S⻥eIb$nD*<1@ijJC DPJ' +pR%3꽍C2LDsiD9"{m+V^P4S@|n1]Br{t<m=VNӃ5t=1~d +CЫgˈ3B(B+= E(8b3>,7'1zN6'3H BidV*3~0xYzbҨgl 3|D޴̑L_q +)G[fP>Żφ׃(>{ezHrˍKduNeu3_QwSЇY:QV``oC**n!A&`˼Vyylct|$CK Ԓf“2i_f&LIy4ъ,#|#3GGEgT߽0!=^CDt8 +zӅes3_s4*T&_]sK VݑgJ0As}TfC#B#FVaB9NL9Hύu!g'֎)T+0av^!(wL0 ֚N}uFލ ܃)d /ҹ8KީsO,Yt:N䴴'4~+h2nz;n-zMD2_|y@Zs%-eeLdu+&-eŬir0A ۉGy|"C.!@λz'`/EA}ptGl݊ R=P R%|D/jR16<-ty@vx0QM #}0ԃORTQ*c!ULL^S] +7`O)զߜVREHP Q3'! d{s@XylpVxTC1Y<tV,rxkd +eNL|tVF5f|Ă*wY3W7Fe$C70A_|yr(_'E:fC͈!#J[P1clld<3 8:wHU~H됊7x"P8@] "S2Υ /#$ {(52Pv__h{sF7g>F³5|/ڋv^P} +?9FdeB pFX?e_Z݋"Y35Vqq|^û^7N.ҁQK]`=koeY@l{LpPǩ _pJ]wݻ IX^ao[or#8E7M{@gr6Ř썲6]$'MHI!:]:!P gD챻A4M&d8 pG(^*"p}#]{ox̃>:#D' k[ :x1~(5rY8b td\&K +h'ï`X!\l0yq#gL<5<bkO{)X])x!ʌHz1T:TiUM$uU}rӅA*aEu/?*osˏd⼇K#L6-8ꐼN t{s}#zF$Ʊ"al3'O &n̎d,Ɵrу j̹5|JW#k`Xo*08Gx2t͇=31[M + A'5g]˖>5QmFJRFɝT2՘ (䉙0JXɉ^uṢ[~I"]V>rߌ8yH*_Q>R ;jdY(Q +X3cj 3SX u /aڬ5foP|G P*,%#IΊR W bbSFMW[%h0J&Ѭ:d1$tخ1Ɵ[cޤ6bj.=$4eCi\F(јeژ_%^6RF[,14/~)Ҫ\`\Us>!x|QNϵN86'P!r#smn%sk7>a y.vrV#:qCAp_m0xF8#o CH(JLx\m0xL2mؽev9y~TkMBK߸I6F2 u?x{<\f3x\ kYE6ǕdmVām=j(Adž#0b6SNb\_(sU|$|ÒRp ;iQE_ㄥI`Յҩk-Ig!ڞ5=Aȸ + Mt,x3hDZN&DyuݶFzU^ݑ̷f4f>r.=i+1G6|$ހl%>I<_Iߒ 4G$nxsJwJۂJ +k#LWHE;qn!uZڝ.E`dO:]E.ukAO3mlS7NB8tw82ƻ)JY+u܈z +a}BQ}}75|݌7Z w# oj z%qZ.,՛Eazl1zb%nqqt7=GOtk*#17޸~qwl,gÏ!Ƌh/mYOC=Z穠 Y2ApLgɌۡJCXc?65shm.jYۄ'*|(V Zu%Ql;P%|@'D)Kc5xv{tvk?#5Kep1aY^ю^)uu[C!Oq)V3O;Ȅ+lf6q) E'*QA+|-B }OཥѠ6y4? PM^ț&pga0@@[j Js7|PeI}Cߩ))X7 ,UȆDҗLLy\ @snM 11FY[@+E{"- (ϱ lI;1gL 24m0,'蝼/&y;N]ۊ̿%HӶ'@9;,'tϮ?9314e,Ks%U>3 Rhc8:7=Xbp_ ~GO/']D|D5uja#&^S*&+ǜ䰻fss(!ʄW+>3]ȉQĔ`ՙh>%B3 ]9jWa CV|(!#S2};Q !欘7orPGDHKE KM[dɢby-[^kB^u[3׈i00BيpR.2N@h"(ԄΊ3_tb0xuꠓ<LQ AFNKq"Tl,F}8GAh +1juت5S}M='"bRT"0$6uX@ S,_k;DY ^!˥6E‡D:%wRX<)Øk߇ه +e[X˼aWo'w>T~˧-EFa\lvR/dGJoh-B?3iڜAk`*`(: "=spSB⴫ +Fjb-%;$u +=mu{(} +|(G3\P45i sgT \*VM-P_XX1|OPU['HLE +\p9hULnZ|oRWN3VṮGL}@qgQF7T *y}XT"JM W~}'!<[Jљ_+ 1g-fWl~|2K] d.l]o/H"TA@̛zԣ`+JXTW>LoE6=yq,p($I䒈oT-r*/z69Gz|8 (#?ˌ|?]̗?}Y^ȗǗ˔9˗)sEe&{݈|}bZ2Y=r K=/ ÑH=Jr
emn*ˣd:gw;ɇ'vw#C;T:3Tn!UKh.̴owvԹI=؜yXӥ_!mft6˞l~|Fsf3;>s+N9=cf1g>>s&̙ 3T8"3 +<ۑgg6L<4W",}+ix?YJHyQğɲ,k7 +Wqw%D mV5GlC][L߉?7pɮD`3P8 !&ѨUpS8QJ7%j>F>L>wNpbK}Ȳ#o3RbY~g6J3!ZA9?d7M~2ϼbI1gAU* rV(D85j;zߏƘ|/ Ek[Js#~ӆ+)"y},5M(\y<1j!9Nƿ}k.u˷L0xm?sxu7ʦ |4/'7|,1ʖaUPp䀉5HVԤ&Կ 8:nÜdݮTzB$2/WO72xod8?#sT!yTL*8%kvX1pl[<<0DI> n.rs򗀥g 9WIU+FƝej[Au}zJ;8!2oq Rh 5 +ׅB+ eE>6Yr)t=\F[~"fy~f0`r0c~xUhV]k)iFOWop~|F0pLl H +D +"Q +'CEVy72-2%f[uun]؎GMumՌ0`zW0SCBxg)!s'FlN.K:Bm%! 4;6c=E'hz:>q8ݙCfU%^e"~ sD7hg:f-bb)qKoi95 ȄJ0ta'=2\%ǖMDu) cTIK +TqޠɆ!PWfd*?6EҟƘ6¸p\J}:D=RٿMvYqa++L!*seIڠK\7[IS7PfHW 2gTvez`OjvOÑL9hLJ,W^fuZCAU) fZ7ټ&\L}BBcQ9͛4T^$ySᒒ_ISjl#f?3~sǤWߜx"⬓x|+,+>LvjDW$9STwheq,fex6kS);AY,k`@/q$_@~)-gqcf,nuSN 8Y|b)U7~ťL?@X/|.nYO8r_C"=3UEY7SUǝ9`Jو^q%BDlnebxHɃE҇> jlb2Ӫ1V711hߒWxCN BrVHoqXZnьd~RC)ubYė`}~D6z妭~%S#8͡޽`ʡ-u{2RG|t1HdYg_. ?1mt[m]Te%ፀM,=h͕;6TV>lyM Q1#VTHG-{ %y(G?5SyRfs7/@馿4%< ;y_3[MB^ WUi{¯mtt +VvW~?2sy.FZf\_ԕ2y̏n!\"C}PvO'elv%N&MҮ CѢӥup}ZݭyK%ױlU?oòƷ Xtw4t$vgmw uɚmyN2|,0q}3S-^m|39B44*EOE`(q|ʔ!*SsO2?} q-u;w?yʔ4DCMφ_Cr[ «֥Ny}]+>+2TUC5b6m<=lئ,鏳o7FD~k@$ +*GoN\0 xT|6ߦ(wzi.\[3ctS-|Z$Gw(梓U:|ϑOMIa 51`ih}<(L#0Тg1<e9we'h|ܣkv0MJ#68>x}V W6zQ[pDܵPU`Wka1l"~Ȭɔ֌mYdX&^e+u׾AVr+fJЂt|-(qy׮E99O#MS<SA`w<`W'w.rhr#L]"}G>]б DޠB*$ؑ4^[NM6Olۯ27~7"ҥV+)>^w3;q04`Pia@{N拶_f fQ5J*DtUCzlR E2棱:{eSA-}4@7O4dBoPw2?@jܖTVOdpWk^i˜cOa~-_syMb1<c:qw{O6f4=C,~T:9^D5_kOtE"+ټ|g#)8 |# +EXnRw-VHٹ7)L^|w^\k7_[]?"^>>2Gpхب" g&_ݓ[̭Vؠ0W<bD&p=\̈́vBfʘр1{GYb݄L:{7{Jou2 k&ròDro7p`'BCZXtfY]n6!{Ӈ!'K 3 du#ՉWZ?36/P%wå l@q}9OXZ2&vM/*5G޵^qs"oCÞF= (2zf*Ή Akǩaj6(/QV P>ɽQS;V= v'Ѯ:ioyMC5CŖXdghg^=9ac4a.?Ĥ ߲}ݧ>w3Qm[+5lrc!̫fۛA=Ka9ax64"ϝ\lP(4UX0fR"W5d9ӽI@ӔWAPV"x5KxV +gCG+[kC|ǁx.m?u㆓zGz]F3x|v@+`n*zG_ S/{>W1pvϿP>.ej횁[~,| Ln™b}NAv[kuO+&\6W + ' {o&qт]0ve<ّ/*5è^fW7'4Wxu`5o ,5 KӺ_>pL%-i^YO?2+~ J>>ZJ5!5 FKWզ鍞W7'7|l>Q"&Ȩ˔^|_Ƹ./*|_iE<|;>*[e8vR,fY'Dwjɠ[yg~Muh| .'v~X K>YR>kxNM*h4ςҚ?m⫴o2lgҺ`'e5B()WbGغgdn?Amq=r9Ք:<< Ek4eH$ʑz7[,u-et[^떼73wY ,BD+ѽ[qI{0E3_:íwc?rw 94YN٭΄vb[0&,<^*"̾y-`T<V{uչ/:pG紁*w ,% YD5Kvv)Ed bK {0bK%䂇-,402(6(7 X dI@=Li4 BݍCPnt1U&X Cơ 'Ȑyxq3LN^cAA^ɽVegUwIR&9,^wB^>ΚzDzdٴ9D bBlAF.l=&VejbCꥐi`s. <ݙr񮜽\7$G?iܽss׉P'&/g,so*b_8Y,pq"sVTeKRgS +|QZa1myΐ]7-4rq ,dT<J';6kvP38wx,hv8 +z9rD՞Q*&Öu[U(R}WR &AV)5ḋPt! {Lb[hh$2-DZtȜf}R)yh6;E:|+W'P9hyS^5`lK6К,N gLkcsmIqYÝi5nxiY+]Kmv_(^BO竁Y2%oazM=.` 镸s7B](t,ĐV׈Ծ5bk/1pY`v 3_5_bvճ" /4vb;FxJ/Lyp BlHҵ0sM +[ MoM=Ti`LV'8tlنO'Ͻ&J&E7Á@([wy혶r&|x7HA 1>@Q rtx?jG[xbq0ZIcC]")ةREorWIB(fq<ѡBSc~~9IgK6jjjuN%X׏0IJ0a_Я~P_dP_L},jl "H3회/f̕6!2# d˚,B1# a'q}irR1҆#ÅA  +FL ϬWo|#bʲUcd#50El!˟q{`r׉|#z,ƧG&*\>N;?d;w3~V A@-6g7_pȊW/D;wӱ\S2Lm6 k9~@sRmwty{~TH62a}NWAna"q ;kFcaX565*n]ލ-hi|Q^UepFee_dej337wʍقX&Hè9ĵNzH\^n52} \F+/-s )OFҟoFǙV(9s6#S-YKH[fF%3%AYI83W''c_ȏ 62pzi,R צl\qRtQ4Ba,^(+"xTWeA F Ƀbk*Lܵ@UmM w̫4iiHf]0C^390 u|cZpd^zeD$9_li=hJUnnAdLLԋF&WgNِ呣amsR>ۏahz,==5˓6Icoe1VP~a2GŸC?ϚS;tq х|TgUqGYgBaxJkx:+'lle$\|fQlcbDCS;xgYnۄ%<)S3Xg[>zkM>cefa1lCg /wG ]>Vdhldv)čYFƏI/[?V#Ĩ*eC&1Js +g柱R͉-S]뛇^] B6F'Mws&ǛZoG|Q U4Um*s>ѷ]6*y*<*埩5K>|bU3{tP?6c(1pv艂8?cU1~Vű#:f3huN= Q?Qhqno>?#Z.O/V/ Li6a.Eg#~d?[ ~G𸲌eO s63/IcUI:b88LKĘ5 StV5+}ՒkG^_ck?_hhz4GsPWIvף9B&L}\i!@{<$vݡ!S0ذrz4T,v%uWTwΫGP1ZFCO]fh2 NdīݨGl87~"Yaw^!A2',bwr7sQ$rW`z4^މ?h}w?wF'O|Ǭ?K +so߫|~ Nc'K&pF!Z<,52R'؀_2w|wU%Nc]XO'N>?ߝN?΁/#=L4%02zUmЂs<@sd{ 43ύ myFmL496O>/@1Ȫ$ރMh ֡AN]-y_j!,2U>P,1fw6nw^ÑWr(ܟy֡:56C~@7:RȦHTJKջk˦A_I'q5sľHXˇu}'ύf{dhqXh"|WdKs>Քݕ)!lױĎïiX%pTt^0 Fv/AұD2U=At&ܧ]Bi[pwQ]ً[!WhbV&f4aFӱ+ +@j3De=#z] 3aڐ!.$kv%#!lYZYfUG& Kw}ja{9w~|;MKzX 6 [O4Euc:QGy-IGeʌJG}4:t9-d"?nTRhUt ^p)P_YƆ%ߕEv,3p0U;SC!~|Ro''xqK L-mN}tks>=_X&\5; h2(vHHM3ThFHG/)k6ck-uDWc?9K͠E^=sycy%IMo W P@Cu˺D EJf^n\I4ixK~+Xh>"98{sgAˋjzKzz 3lZ0lkqeyaobJ}ҡeηԝfoB0G{loa| pW)] R6~LGa9g[6z%7G.O}"p|S|+оa.<{A-Z0[LV+[RnjQd^cF$1wQrTۧSKd}wקRUJfF)C'uJ?YVNXl.UD^fF;N-o D10lD-g7X 矽74rc`u8`>nh&mxpCf MEnh'7tS.`NWbQ1i!~YVNʡZ]rWC̄E=->3xm3%z Kz۲M Lѭ9;I= zLG1M+5=>υV~.ŞU/*ik11KuʦQ<{NHfާŎߎ+o@^ZƗa2 +ȑ,@s'՜IULawR$cQ[ӥ\O{J܀L_,n']ֳDNoN\5'K {W󵾤7eΧl4)~oq\%8ԭxFQ7%ԷZ_%LI)1m.:b#S;n;#R/R>#>N0A +c4 }o9d)% 6s$`9%.@pnef+tb2ReY!zYּ輡Ho_Lt34l{ra|HF/NI&;tX^鄴tx1B_hqF߲d.OB3:1݋b*5jP)Hj5,ɵ\6< (lee:΅օN{b>I*φ r Y(aARv1W 7yCSӿN5r#X;iT]SҷXg0w2uFxgi#KK ESὣEj+}\|scf ɺko;]hW9'6y3l@L̨Hz#R%o<y:RxוBP3/0,N.,1|?[ F :N2\NXD]F8tQMvs#H5iUGSV;&햱_N?3bd35/yRy:ު_<R,ݺL# +3`Mgcd@X t<īVoI[vG{#g ?ZdL ]V% [Bj):-wfI0[lVHEKv刣~UvG#=v;es +h3Ukכ3_#~<|yggsz|)+G>]%,G[evã芷ܮ_cES(k2 6k+UXc8c` % 㺑h6%'$ E\2F=FA]#5l8U륀ޚA fZa)ɾb;A0pБ_4h6JAn A t=P +yƕll e(\,F1Eˁ<ȫ5HGt@E)P6 +-O˻TJe,PXKWre,? a;ھN:If9ڎCi 4NAD5mܽ-(#7xqհ͵Ij `|5 "-l _̈́9lj d~$WWA.tƚXSi*?s$A0ּƚ=5G]ghm8 G,pu4c͠zH=_T#wwbcv5I  :ںAcԎ e*0 +?ЇQh/{Ra9vֺf0D\Q;4h>.^Tz1MFxfw)yf>H"e(Sr +mRh<lm6<546K8HmՂًXiăc!9MT7D5{ў!9J/a@.Q KATjN"9٘/d5,4d]!"J?:IVq4@Vг1,G3ȝ|YMD s!$'':djj ?6KNdۗ$ +3aK:l + *+ȡ,=ƍz]JaYn[L"c +P?ep\ ^>$D^>L ;<ɱem =ŠHIŴbt15^OL,1\#}2z#YW"͌л?rb6\ +o={g_1d)2m|iIWgM)w<%7A'AK [ )\z])7S{z +9+p5w-ɚЕ~^s0Փc^k19eĐ38FcH́cTcRn>D~N]OR.g2D| .K&5$aQRB9*əP;!Kh29lKx־l| +\_ӽ \s(.amė\_"w%| 2/3/yIK_rKǯ/+_| 3܅ C %yTũ9_W3yK-a;4DB.pPb;cI!Kt%| ƒ7Ǘb dKs>%[Y:LEcY>}s˻sg> +8mhP ;lBmfxʟxJb|e;y-mke׬)֕O})7§|k">RP9V2P ;܈vMV$c#(ހHVd[>y9iC%RWDI+(#EeD2b5FCKKKфv!f2BÌϊ$453>qQH2a:lJ`iDMz'Xꐃyu=?'~ %M'/ +>RyIQ?(ƂRD)N~s旛P+Z4?JVe?hy&+bm#=:ՎZI %RbrA9r %_OHog^}{SyWc<`%pfsdb3H_?f^\g?ca3zw>}iP8Q3 ~oh!0~ 3;3~cfJ5 `dhVeEXߜ|/u;^=݉hg'!_%%Oo__;.jP0]V[>qr(8y|Z)1}km,vmIKQzՇZ[`zo +?7`u]iz +)M +ܣTa&;Asz|SSQkL4Ejוdn%cpOڜnnb2i̘SI2F؝t1+#*ο鯜KH$4&|;h6ܹlbK4T&sI͠_#[&8#]VߊN])84.FgYfGW/84gǤm&8 J5M580w9ν+,xp8K|ͣ>YJ??\[z9lp('w׆fDVAߖswwOɁ)8YsAmNS2DH'Tf(A9F~?':={_P5'm'Yq],;AM,)LDFF,յM2p&NLj@@1'31v8;!@`t&f8]e#xGA/g|h(=0\a1`$|vt2+A{ۏXpL~?RAیC}ǃN,Fao\zv2 +Ud7JF^Ȃ,Yoog(&w*u]%+ DbNy +e5LpZdƑ /i]q:f)}M2ZypSUqX6xY&;2Q&o,&3ASK4Td8R|vgϓ;v_ףdUp((K["C_W@"oD}_?!ZQ}٥)h]M9(\h ! '@@Һ5AMH+"AbmA)\S5l/yrJn~T4UԠTuv +_o8_h^YP7!9 +gdsJe2t SNqan;eo }6"]ҘNMHi_S>7)5%Ya٣AQZs<Yۉ< LdbLrcu +#m ൽ2{v ]\Ql85dYUlt{}8aZsB$VA:ݛ=/Lyyˊ?24{cB@./c_4[:*ce)˔-Mx%1OWe氿Mq'h;ߤku\V[& ܠUAϣF㖠LPBﮮ2 vh<3+K%7 օKW΋,ֽ%Ѥ {,Jd h%ߍͥ]\ū[cW\.7B|\v+RLl8[d 5mk_ >E" 5Ê')lѝ-2N8O@ieN,7q !!hBd5tb8 +Hbs<(.INǐB@bA_Y]Xd9dC`k_ë.(fLM\v)d.⍽i 46_zl(婠 +9*a *'3{wbgo3yKZZ֧0#|PyU⤶ Sw5rK+JϥݣZVBnZ<#724䀦q*~)HѲj$2;Ƃ"#\2 1`iLRZ!NX 0`n, 6V[ ND1MGܴtoZ܄+ '{ϫ ݍd8 +yL_0A `ldqe+ i.3AƱ4yFE:Gg VRXU*Al6QK:I4Y +N0.O0[j\mɛg0K=:;E=Ծ*wgtd@eJ} +&e睷[ Up|K@7OWt1`]Y%X]>8W!i,@@_KIyq=8vt;r!^ilNT4z%b-rGpnH^9+^vܹEQ#_[{9ЩCgJp|Am0M}@V[淃qtѥ^Rk\xp1=t[o#0xuܢL]uW&=+dQXF!n/pث2ThǓWe[Kώu_u C⏁_J66έ"_^2fGd瓡D<R5:" sShbеU(̞BC +gi2& d? +!х]o=E>֏u)|/Q6pxAvѦ_ߋmq<°AT>=<4{Az0 *xzE`rR?Xm^vX)N6zPFK@^zfRiUˋn샬@߀h@q#e/6΀O8;A;cs'5 >g{ZB N +xkS x7XVMy.%+gAibFb(1(V^AC):#%IpBչ~D-GhY ++<4Wa\UJѓVJnDap˂Ġ+FKJ'c&b|;BFxt] ɞ!e1ZDgefʭК Qjvm8PP{ 6ܵƹ.Y \%G+he IT>C>>Pb-zciNjCZm)z(-DI|g7ז]vl̥#^m'2}/o%K)Kʿ+,$h$@ߞ7_# d6T~`ň]Zz勋H4(4..Tg|VT9q?7D()@!,O>EfpLQ"vS JATJJ8l{8O>9;-\$/sDeMmi㡧`b8Dit sOo}oAa%; +wfbI2MTUuΪ(a:62k)79"2c~tk_ڗ_y5n;/̲Jɒd:4ǡ6{ O PTlQW]̦3INaC)WMSr|}yF. I5'T3(<(K#$UƑx@^5!7* fSJ9@y䦸_{xTWi +G˼L"EXљ pG<)~K8TBd>DPl}ӵup> {# y!CFach'bMcK#Vf4A(mJ+ݞ,k/CbUqC6!Ȝ!͍@<0$i)% :v]==,?9p詵% ,G^ć =W~FmZ_l|\ޱq%ǪgG;' t tڤCsԫ\&]&D4,&d:(C^i[=):FiO%r77(|֨-ϥ;w=,۶Fl.Ιr<<iM v-֎BJ\<#;P!z, B QmHLx4/z{(H/ +/KBH/_@1ts *\税.ǢTh o>4?}=Po@N+ 5Ib6VOϲBRhTG#.i"[:?u ,dm-5WȚ:f Iٜ@p1g5kބgY\+T4k%cX^,Ԇ!vZFgEt>-&30>(ڝ]iek3 +.ᶑWS۝
;/qmp{xBk{ |O}ExD&i_-Fu725OA>Kv:ֱE|YS5|C]CQu?ez)3f@D +u<'4 _yn/&ݔTUsV"&9mUab*|hkTMYF?SIYN&)7iO/ya6wiZlWhI`v_C팵M+}| f} mh!wP. <2y/p yAٓdz6rԝAun^l@X#mSg61G t>;~=|RG8;t'/`!9!wrS v]/0*W~8`RdF~ɛzdz,c,&dSYq`p[^hݲgoBC^,uEp!NQVU ݽ ֐:mΏW|TV>棊z,[r28XC"pyCO98쭂9|S"-7ڈMuxuv48x]U0ۄ,݀vP>ovzq 65Ah:<vuxFs/A?i-tԞ_ODnO4t]("w +{?1ReolE֗콯q Me2N/~ +An\b+(fq<5miiMd|l_< A+ G:RTz 91<+RIg +K\jhXPBFT1Teo􅖆{U.TEe^{UA*~>ЄFr&/iނPGYu XTCO0ECJ$% XYp.ċDVDʂWxg#*{>C3bEBo^-B]3غ~fўPL>\Q)Њ!HK.!}ỡuU6Үp1^% +3R[xSkڥKGZī-7xz)5l*:%m% I8_LQ'K#"$I&|wƧ4aȮ>vg.2W|7jqTPN<~f)C8VlO.zN#mbEoPMhɅٴsW{bmXʲ|2߯ڃ\(CF@^کBt2~co|9Gcc'\H0ls2Aq){;-ح_O$WTiwbZϭKSc*ZRrSf.מJoM<~bh)LPrx<ח_՘+ݣ-YʧjY:w*<f )EOľ%Cϗ +w(޺G!< +3 +gMgԁ}YAҬфk ^c]*RL| +NТ|J;JF@L11fG)e]5Y:Ч{tN2&sw =9QD" +|-ogv=e򸔆 I xS8XU0ZŴ4i*eIVzJ~O0vQi,U0+Z{?$W'bF;N# <3w>5qj|i7K|]]ǹ:7Vnb坒c֎7vn=2o>M#i*9>8pw+sYzcA1͟Pf'!̨sLϫQ̌~ +Zk`UʧڨapeD+@+/RAμS{%a@l=Nu'@ 7͟ TQvs{zݬ'"L^>^d`,Ì?C^АOk QVw4H.C43Ce4L5ph6(YR߇4Ή`܇!J)K"w 78ȫ}UHtd\8s^}0ڥҰ8Y,N<~kmC#,%vnIaa".FijB/9p|[y݅ ɸq@eiDoآFq]8[B2)S&4#VSȘ0T ++ +V]ARHKX H`ȥ5]nǖ{4%!lMCCԄ]`m+4|R DhNYB.,91" +2 ܘ]Nf7 +הc3zH}]h)q8NM47*{ɸKڅϝp*SdgC|[_3ķ=.U2I[ږ~F%?œ&J)&ČUofϭQvR_M5vC }|F!QZ;S#oS~]W|Qq Ful Ms [ރ\T <g/q _dxI;kA1{H~׿]XYݸ jt}WNpX$?PN{D1._`zK +כlU/1+j"UӺIdee0nae,1?37&iTVí-X"Z 6?^>՝n3Jb}ѭlarká)vjakˢˇcdĖsI濝\5 _d괪)ݫ1)n_6{*[x*oUb Ļ '~D_°Av;@yoU/X6|Yb:=Y{%K^{viVu{L7ϴpEːbA0LKϟm[U'({rES*"ڑ㫎a-ڍ>axiU:ӑҠNVIՔJ~aKO=4Rby_>@Ϩ*h]s^-2q5/#j:yҼWdK'˼+a*_[M=:HF09 T4'M XZjzKZOžZǮ$M^k6{&WeVD)G97E껋?JBzRLI71gtb ·.EiLƬed6kdH֯27" 0gsrPcFs:5,ueY0z88{}5śԫeaʕ0Ň#}=-^\+궽/r4;-ȍv]k\f+if,r74&mH/0(ԆS>eo֌%%g+2QceIBH$qXyp N05E-k+2~%a;R{7eЍW QSKu)=}CJz֗ >3&DceXW;p L9?wh5dWc).+v՚"°:=a[DT%LPѻL#FxKr@UߗTG~.3+X2y$8syzݯ!O 4E:vqr_?f#CMuBN5:##HaoUΞ2+u5xV,¨Ö%ԜSF:Z`hBgX =d߬^VjRB~gI?$tI..f@O}u[Ť^NZMm7rt 5F!Q^XQR/ֱ:tZuBjºn:9sOI[5ˤeMV@ DLY~H/zJ70|eGYhfu !g! @LaOm DLaќMƱ~K@ꚼ+,E7Kv + BWgѢ )=GչY0⢉&a)(4AHgS[ !p=^e[^2,/ iҕm=Ku1#+JOk@rqx2;гʤ B'!+Q! Kq%1Clc (1b"u'Qb B&2G!GhpUsԁM 1;٘ll 8n%"vs|J /iFEEKQA +N8ij I`1"{y(^X{)0]0-I:Cᇥ]_fP6L{ۗJލG?4?PD:).]"ҮD_W6xjG>JU(U@H'Z&UcK/'mOXοXIܥ/j7*v^3ZeQ|"T_SIhހhވhlPM5 +kC5r&h|ώ@fx.RpC9ͣxІ(Nˊa%rgsYjU0P咊ˑl2\;K`/ޟV)~BX86w.Aנ)^&a2QW<#X u >KΞhTxRq"iLgy8fH!q3i\.cČ8 3v:"(/~RyVpԝr8$tšNkZ8U%mΛa>sD!@RN!4bxPiG a^q ړ! +i` +OQuA O8諁=#Ćˑ6 +|YL*0/I +-MoF$],=Z@ {`Œ @25/C$EGaK$u3Y?Y XnGfnn'LG%_~^0>De)/r1u<2BGi*Vf#R^SM (G9dO.% Aj e 0ṟPQ' |a*8E5A]Bw4,Βw"u%Kḭ$,a(IҕF\$;k4wUwϽlDӳ]\}P׎]FBK!Np4LI9!iA %Aȳʒ3R$ *aG(g!=Ch܂cXMi&J0Him +nr|}%Ś;\\Gʕ׺y'VC-@'%?G,t. }oœ׀BZrHª .}>Z`*Q~Bڗce⿐SH9a_3!^0 0i%sQti.m~T@0,;%\f$ؒ$!@H.]c/+6"gdHߔe ;8oZ Ӯ37wj&!i{o_bK9Ż&i#8uWb-.!LR>>ܘb((_C&̽ ib,8ZJ֪a2xu6aJ-UE0q:~=9uWB$7f(i ;~|H_Z*pYsоoÀ Bu.ׂ6=GZf.9 9#ԕN Dǖ#k]6n }E){1bϋ}5;ok]:Y߅ Ddyu` yo@Z{Rd3qh̵M>ek*h_&ْo̳-9%R[f ~UB`n%PKa#cGqو"ؿa<&5 U`!QԀս+]`kQ.Zabp>^Iv!8E .veNahbY(&-'E`>Cg E1kƍCD!3)|ߥ-yы4?/͒.̦ۗؐ70 s8װƐX4M tߟogЛDe4 +vN>` 7BS.bnIR蹹?44EPd +6dw + g7t `a-!}`u5)P6T)MS򌃫 ]Mr⒕ d?[dߵ'd\XML5^fEomMLk ~M辙(og /E "& +ȾeIy<웸+~ +PzFF>T X |wp}P}M残zbu VF]oŷ"\a[6Cz,uR|]LAz5人`/=~ +ثpI*S1)j2%ёTSg8z5i R6i +k*8ܵ ')*,?YuPWx3ACU,W1 nj煏` `o$KIz( D:S XQ{(&tX&"%=GGt?Yfx0pkg`~rDxT-&K0m=Χ(2N*6z z4ٝW=ʚ9C+fgz';eM3wUPB ;ݴͥӋ0XЬb9D25$CLn.VVgm\ꂃ)8ؤkr1eM'78n#(Lm +PX(XF7.r,V=q +02أ0jogT35=qˆ +oB5:C*\1jt"i l܌Рth,`1).b +b"1fa-AΡ3.Zm s8\}Uypv c21$CT"aaqsZd9goF0D&2B{[i1#(\QC9qFDfQ(l7&GC5f &`_+]xe酈NBC,6׺tYD-$խ^䵭 0@ ث^k\Ghaqb@A32;2+=Ȋ9vZ>Pۍc%}Bqxʯ?-.-m$0l:6k=63D>D=+!VC~c_M#t3u"3̠ntVh(-`n 䖠b(?8(3  iRc1=3"8|[ ,:Ķsضsӆ5byAnIv=]j(حY"p[_M@Y;亃Y;{T>OҘv "|ܻ9 +}QBre *̲~˦3z-1ۊB E- +T hT|FHpƺ(&j*:[<wT_Wf#E@jK60eDc"-殦Uıa)圅1snڞ#?a/TWϙdX+֖0 +0ʎrbh(C KֿϹb4ܚ.|w(Ԁ,)hF%:\Z wJp6,Tx'IA?l1: .Tџۡ&CèթyQ U]X1^Pøaמ#7"[5 yАn,Xׂ.U[B? aMr_{Kj[څgO88[QZP% +b +_;Ad٠j b(J-LY#R5k_d;+#PxvGA:$`݊Hժ(tmW0.r;Ed<-qq3m #bP[0YhR` MEi5=L-:1`F13be Q{xc`f6ƧUX6yJN`i *<iFC>ʒQ LFH2Wr-wQRV\FFl/L\߀=AI.D E6kHcIz +xhHIhs)6 h$F$ [Sz^@X YT+-f ~0TԤZŴF@h e)$Á025,Cg kD=\f7v#RÍ˷ l6f?4n3=b˾|9BcS +Lည2k.,D`Pa +{eTi!TKH`6ē cLw]~/@:*nY{*b ]?5{P(9[gӥה}b92 O8;ڗؙL,y\z+T<* +,تҡU@uƽN{n3׽^c[cM`Pf"ğ3_iQe;9k*h)pY su8<)[t` +uuT![5+Ұ>;MͶD﨡9#ޅN?!6j'>% KNr5v5NTW2i,K'l,_/S8|Sʊ} | (h:k" +_$~3豆3 잲cʎDQm^.Ȏ&;/Ɏŀ%=ʎ P(. Ǫc54Lf4TbD0&υ~qQ#$MË Ad^?b@c_%FX30 2 SjE L͒14Rr-!VWjA1[ٍp!p,+K6K`#Ho5T`sḧ́P]kM r0lqUBHXȋ1?߳xrϦVq`eknY g +{Vc l6gC`X==Ktu-YLel K#(,4JBXNWi37u2uxvkDs͓̍Zh&ȩDd7bvAnă54 U_0`. +zN^CwCHu +{CPX0 q0x D)Ŧ+$Ì3hb=3 sf>2 Yu씛֟*M9{6/J`zEBM2Pm!+;9ܱ;+i.mpW+s=T?G|Fta^֮cdBz-LFiM2{ (쫥gBW}YhP4*PA`_7"H p 4%Ыx8\HI +ͬFP^EMBzGF8'Dz=^o|?w%HuyEM܉_H<^Ymyh@!DmRԂvAWJίG3 ؞vXH8P^-r 4Gxܡ₦0/Ci%|h&kGa/ 5U0a¢#4A½Uz̡FTҰg|&]Ǩzi@}FYFymr q^GΫdbMtTE nžgkR_]]10_d";NYv`|IcX 8O/p7l1Fd,c#U]lūlB ѨN[叄V#F<,7cye62mi륬 )*fMز4gj EWMR4n֜2Z]6d{bj҆:57 m"B' +;uasDK(Au#ezº{ɿ x!m%dhMe#櫚w 2g$m8/GAV "j.ʋv +q]+ +h yEk 8hb L׊[걯⻎Ỿ?;|[_UֲJerzp^nPkI?>^{>uA :N_u"v'}ic7 yywk\h+D]YOןzV.*_cqlJat XEǧ/URz36~gD@~x&[_8S\{Awjc֟)w?YA_[: G-?|}y˱Waѿxg׊i%rzzNXiC[KM` XkφwuK+\:g oH +tglbv dq^a~8am?r[+ PKK4fox~ܾk/nEO};?iJ.|(/~bL_/dK'?OcO/Ml~8>&׶>hcϽr)O;˯\Ƒ_X'L;fA>lctGY޵߃G{}M\5|r5i^wWYE*b_“OnϦ8؁/S[-Etww~Io/&zƟzP3y߱pӞ/1;oq %[<~!2ϛ_wRh~=n!'׊_tZ(2o!S +?h-xI +vn0n#r!h>bv,sz=s%wz1|zxÕZOw D;=w &ygi++S7_87GxsM|cP?Otv|*37(Ვ#ב O}v2OhO'x,eq;Њ #a/QJP͈FbH ֈv G)D}4E +4pkm5Љ!n*#ǫ kF Wd-b}hpJ,<>`Oi WmO$k 40b<7?]/)Ib= Ied80SjCB9"( /]1yW)[+vt&/]{NӲޓ +yϿ{nIFst{^yn%{Vyza'W[q{Oϧ'{hAwxַ LW)LG7s <\Aexʇ9_q^ldmo+:VvuZOY%hGB#[(WȗYf?l=neap_{jWAtNwYk%aAwW-)|%,Mȫ"p)(`yr}Os̘ iSfmx=:5 o'#t]GKhWTC-٢z+4sv-`\>v,S_#g>v3&µ%m8V^!A5ε\pvxe?G|G7#u}KҶʫn;oS.6c[num(ۡQ>Ћkpy}_djlчy6w5&E\pO)ԂOl3n^A#q_Ȟx~Y،5a3dE" a"t`x]3{+ɒqkی}Z[9ԟpל=jƁ<.%F>}շ~b}vyMߗ/l8; _`|v&;:o:MGR7?V{zТ48o૔\b}4/"+qN ]FxʎRחy/xPPJ]:x~!M$䥻HϏj4R m|~=d,O1w +itFfy<'A b/Ā:FTB Ad)5B|Q0 5dH$Hԗu}XLG>!Dot~?()/ $8t;":<};ETm!:vþnӫs +| +OqO󳁟O򳎟{'?5ѡFD E x,>B ~rK-\A-ٹ}& + ;ƽWP]d0KN>%==q9Tbظm~$ea^̛3={T[}S<{gy1>ɫ#]10vvOn߱Cm2w&Gѡ=I?ƇM|(Λ<3܅yrm"&| T _wmUZV V}FTIS݊t) Eu҆w+TLWQE?[`KQXM%g_fi 2<>q2GET=)3*gT톂ir|E7\beb~?ZF[~D:QEQCaV&8>*=Agҋu_^;5@@pB:&G34gi hyDT&x^X=&`g&xyiNP8W}4BaHU,svgܽ`Woi/ tdT&?nāa3^keQ-Hy2x@E*xQNJ' @0psY.˯2';7 +;QF\Pd"ͨ *Q#(i8y).զ8 +yMM)cO-ܰ?)ð8D=}aaۃ8b +eڟ7pEMѥ8[CB,_NOhUz@*ZaN ǧ8 ӪZTG@sh݁g1C.k5e2vHïeuZnb45cr:sҭ ^qNCib5cÈH'!#(jbFZ Y`U~/}~ PF&Vi3=Q(Kr:37ij?KqLn>;^tSX󝼵L*rЫQl ]J$J4)@*˓Gh|V%(4ՙ$njb#?/OzWySq@(VraPb"j`lj©fNuCkfN +l9Ɯ=y(H\Sut|_]_Qk"9^*ډ.&Yv&^SM$ݣ(Z +.~v҂pB'*%_\29J EiQ0 O:FaDix/@mLbJÞ@y``TE4aItՍi1/l]f%0pʍJMmyK7i-> >fGvv0r:H`uh -Bbf{kf{kf{4[zz)lw2V +5[:N:^(3wEtcoiطNsfk.f;M_K*" jLV=F/Q6!zxtH!/&)e37!6C?'0hoQ˧,5wY^zP[GEɬ#Zu*@`,fcX\[8Vx*QnOصҮ T3}ium4n#i/3Gjj/FHV 2HU )~Kn% p/_Q~f~>OcO/M5G G8Ps4T<*ѢozEVOE -ӬB=g^ +M޼a\ 2Ńط}ߢnL}_19ʧkV/.<*MGe٦ `Wx:pkƾ":5S&}r$GEA{QPHUd,y ڳ%E]abJ|ǜRѰ*/ i& -VB1Mj,^1qƌu:<#,O;]0#CUET +DQKutj壈*Lu#3ugRHDY:G_ ]?g ݝ}<^Z_]O;[MZ=Yj93v峟 u+J3 *V FHI n~v(bx^Hh"i-rE)=\1X~4gEuŇU0oW9߮`lUS]3RT%h2"_}WcE>b"6Ǩklv65^ik鉦plW{fBwfn&LKQ?VƷiӠ )'JP1Mj`6߷CxoWum&7Ƥ|EYͶ6toc`@6ϫecb5KfS.X{Aٚ+Cx- mgW*"({ we|Jƫ,#A-C!,>c=2'B2B2{ Oe,Ajpzд/ W`f-΄vƦt~٬N3l ထ&L167tL8Zia\}"v"_u.+i@p04H3yłMy&O9Nm?c,WS̐Y. +#j?iೇnuj 7 dLJ/StJaʨZ,%{sV3/.Le^2ݘL3M\3gy&^x5lo ;hrFHhlu섽DZ#+aE!C_5&ιx8C+a^lu|CfsNW;^,"qVEUg)t-]:*);~U/w>Ůl$\yIs6UrȴWt.гDkaVEqcE2zfGyB88:PKS7As03?WT4q rxǮ[jXt~gw_z*iįqƿ3*Q;o%1cLhr~g?K'3XAY,wYy*bNl?s+Fw0#'9 `;f"ZڶW7 OgJWV{$$0 TZM%!O-N!'a6Ayy9C`Sc'nEڗX 4_wifnpynd-,קq=J,ĒӤ^(ͣ77lՈW,)A#نn:ɳ@F׵Q=r 69A21aLǟ,u.ᨺI1* q9_^kLnghܤJy#:\i#ᄉ KBb' +v2N(F"`F;NTmgEq"2(̎#4'NhfUFaA ~Xev~n1Mh3a$pŪhyJJs 3Rv4@FZ0"k 39\eZ>VQ$56\ѱW k{HJ~cφp/a};'cl;-ߢ&\EU +9!|}=.C9yt\?(s~ 6~y7v^0BSOVfEij[aͰ؜Uq?k8?i CO04 +g +<=hOB/zÏ]5zfj萩Ar[<|oÏcub`ƌDl:L}2uxƏdYFA2KDu_.=_ S፴h3R=i{ӦJ0O#bWf~{ù†J]l7۠9 yfNj.mœju]}J!IA9,@+3V<1 I `o+uaBKW^A䑁۪跄y&+Ȏh@ +g uFvBCvcpn +{k;]4Zj"ztKl=&1fǐ7RuߎZy +v'b>KyBSHt !!S]T_J-I?WCȉ$P2nZΈu{4l8v74e7{iB5!8zs#Q"Df޴ء'oj4Blo&%?'ZyE8 / CW-Bo(tn+Dq7>d6CKPc#"G>#Ϗ!X +dc[RcXaYcR[*&zAym7mM. +/c fԾRDn|}1_$ԛ,9?$]ɟ$׍K\Iȥknq-(D+~vK#]tҏv aʥ&-T1~Vk#Ԉ~7 ?`iV<a2`x*4{29 _ӈzlz؉Õ CO +lzKnFɦcʦP4ʬNH@MFBi)T@l;߳W,.V^omRfP_ F,h['#vEk>2cR;ug~f2.ڡn9kӂݬg49{2:o3=1f_[;U,aRm wB41E`^ 'Ӑ<휮Igx=$㑁B~ms|̫L@y̠WPk;McN>͕"8+1TO43<{LLm%ft-fA1Z\*,J 3XDC0aW~W\2djHInL"Ŵ"vsΝ=SqB}Fmߧw0ZO2+Ki?v>,2$֌PUHAؔ{PS4HA~`Dq6e,z`\+/C7.`?"[С;W|tىqosePlMtAX:ܔLÁAfrh/1<:]FǵJf 쭦+>IApe/-:~Uge4AM5pO60i F4͠\v3`fUMy&BAʠ-%ۥ$d7LZTlHG|9 iYjʩ e3aƼt#aB}W + +dNR@'5WavTJPې k1M,=T̯xZ1 8P'-Zj;?cAz14^Lܚ2<@cAh4( B!q"@`wBhF $[Fρ`k;~ v&Onr^Fٮ$΋/v)D'@L_W˷7(/ޠ<|EeDLHD e^/S;BDHTVD K կߙ//J~Nj=dhL9jv6+ kAYQF u|%ЛuRf'4?wųMg|R^.w2fD'@..d7Q]"~iYdkE+  ҮN|]-0&#Yߩ&D%3-.wI4D2wMey YvCw$0|Ғ"kA`p #-<^{|Oc)@}|h>CmI[Ƃ &Iqg|4>|``MКɟ7 a~mװd`;Hvu⿻o0, Ύp܅r,HSшa>@fi?Ԃ +߮9ЅW#-媞º'.)\eZ /.e +h9=ܚ,!@e |D>g%0rwLHY + 34)U_"qxJ'bYF m^Vg +Q.9Z +46ʻpvlQޥ^íMl b]bLv˄ v)8['m0XAс|Dҁ*ωIS26XfT-r_*Pr:f49-1v10u1oļ,6ϸJE +_cO4;5L#i-Zb1?u3̻rMEn/MZoyj'j|6ޑO:'btx`K.%oroåd-hohPc+I_f0kP +@X'w~[sD_>~vf,{y"6[5'wV.qX-K'*<'֎[x@W>Q1-KNjgDµ{= m7ĵ](Q@ ˀ+`7cm^;kiN?/Ǝ˥º{sln}/wgN  f{]o-{;>Pak*(DT0N"4d4T<MdD Cb% 6DDCXKt2vBE1 =ҍ865=Wp}P-dR2*f*7;|ow, wS * u HWŲy4 qY8}2&s鎭pݶny>bJwt;hy`QUZ^1;A{=^BT_{ˆf(>3Nx.1R!;w21F9ŽI cei m^21w,1#b|DLQdi(һZo1FzR~cB(%_, ؤPMdV4jF(<~חKx oC'-ΚbM_X8dX23FG*jHj*̟6IMFBY`2h4  j_ "&BQ(6m 5trF`jFAX3XR +2WiΠ(*5UM(F΅)UĈ2` k.[<˨wHpr,24߁몳wE3m7mVYj0mVQMUUi5<}+gY1Zmv2W]h,˟5.nK R[.Q:|6XQ޻Ŏ6̠<͟m4X*gSf1X++>M7?,#ő_C!n7*lHYqobȀA$@!Rp\@>Q=tᘛg`,mnIS-$*I8k#k2jtB3!GzN&Oqv ӬozR6&̺!˂1*2EZdV e4r6̮Nfs4+\:;z(.6pSV +"q3W-IIJ4]^%gkylv.iVz^Sĕ[3^hkMKZW%JX\љ2Vr0 Bz m$ V5M5!L!"I0V焅+NJxáv8¤ xk '=7F90|#cDϲZ[m`M{z!Sp[B9<2z:[TY{%E 54# ATAh +E9n+->@A+egZ* Uꥉ",~9yqYh_YW(Pdu<aƱ\ǖ- " +:wK| DmQt`TiA>@B1$t11\cZ1_5Q~Z}5zf4%:dΞt\PLW2C=-6[LGO ѤbFZxVn\֬@$ z]ֹXE ua .g$EUTZ2#w8Oӌ]P8G/=26,C@C,x35zU|MҳBmTFy25ߢl)[vb2u3Oq"1R~3RU((^XqqC54QĆ_qDUV@Y)'ʢ7FCThiΦhfňS-\qlm(|Đg#.GMp(X4yr^khn&C3s_SvIAuJ}ti!*bv|~a뼘Żg Ӝ׏~}jc]u{h&4O|>ns+ߛ +|Mq~"q+r\zhn]Rܝ^UrOһ9JtǡG;_]̥ZmK$si>"9#<| }BvxkzWΪ,GxBbD -6: +2cQj=~ 0\::qzJBʗ?fߎ+AlGGXR.EZ]dZ,gBmhm 'rtcѢr5iyaU*:1q)^8eKA.>.S|\ N +. +8G/7z`taN7yov?#%,ux2}zX+ NŲr)oU+ $briE(FgC"RK^Dqk>ʥz=zss(Q5%/u/Ũ`/rT-.|a_PBP}Z^%WPZcj#:&mYܺʂ~KhٵVp\2Ki$.3-%# ^=Ӄƥ77^_0pLbpwpy0;G_w7Gnwv\ߑ%bco#hD87UIvmrNV f(x.⣂H˱V}(Ufo9|ylDLngOgʚ+w{Kҗ|5se;,uzk+~uP_?hG_(cP)stYaa|L9|k%nn9<8@tr`Yl҆˨f #MF?[cO0GE2o:MhQrFbkT Ch!d`\lTp0nk +21E!vfSQ`Ap~)W"*t bJ ̨8pLӑ}L*,_/?Ve) U ~2 (f矸KZJt^Ufjyssd`Ѧ&-C\Ҕc.|9f3S"/6~v PNRQ#*C &-AMMYh{JXhANTirGC7Pѻhzҳ'}4Mɼ\ha0mZQU4h6x*Ce֜M1J3hphc>3g> G}4.|4˓H139&^hׯYXs>zVp,nYiP}8ˤ:G3o=s>k4mƩhXM,a.R|dY6h̑bljGqiJ7E YNŋ~T,\!q5i2{&hEx=4AmXUې2csgf%pCg9C_Wj=~n3-:8 227TH:5ƼJl9rʹ2$5sΨsD ތs V!ƹSy3%LSM] qPS.)m[ +wŢ yC&?iyuQ*&XsoVݙ +9kEAgi0C:z +ir8VW8ᎩSFD'a MCjs_rf y/?S,CH7uJԢq?Iy\eKfRIVSsaZt3Ӫ^UJAbNzv‚ەeND*;ԓ"g TgW09a61hbo$Mqa.U,8]2j} fhYCHQe=DNQuBz@*ڢCBs yfX,ERWM%^swBG+Mc?KL"􇑰Q+lwT:nkxctJ9tcj_t]^xcG\_uŽEhҩ9P2:`^;ټlR~ +i)rl/vjޱMN*=@ofi^ΧV {. pS2"cU˾ -OR p;D*N8grNZޜL t,<v.e~b_%$/+ j,M1_rϼVcb|ɣi"TKSi̡O>*B z#/<C4 ྐ'0$Z.H԰O>.3wEQ}QAB?9yYaa:\^E\OMX!EP٣Zg<[ f !(0?V? +y9bhs9 sh>!^OԠƆhl`E8ym ͤ sJ$Ȣ~li~9c`ϑ>>稜qo +~cs?ƽ]lvQn :J1{jaJ2`HtVVǹyi?ɣqbYsfkTyaagX7ؤ8V}جAfsTj8])Yrd%Lg`5?J9fhp?4o"%MW"hj\_-H@;cqbC3qMsPGL"0cy`pϘ`K=AaGFqtmD%g +-e;R3܄7adc4>{7Zp46 ύr.y ӲnH32_W%ժc!Yqla'!VS[~KobޞE_n_Wa}Oi7ku̮Ϯ+*=[vv^܀ td,KioާCJ~^ڤlSmw}!\]1ܹ38|UCH~C2bXwbQ(AZưK򳛟] ~N.؇= ~5nj2-'1dO3 UBم 1Hz=_Ã,s:~:#cjL#hXIv-"%]%mdJL~J8޾Cd1Z^wWr10A=נh O":5˗:oQp6=벱:9ɐ柼T%je;a5?}q=JO"kܙƓ;u:QF FanPQgA$t<ŪRkjTM5VzEj^e*v$]UQ{MsxZG)]K{Jې"'y_lȂ~5dMk?_e{xM{}avqB gWV披CVyo0Ol ڕ&`UM O3e j|;xlxn ^_Q;]F,Eb7kz1#rVRa:=tՏ,Jr.0:FXZyb~r ~ +Tq+X=^> |ް,+#h}f羴AgVRDRXTnBtMd1@^[{B l-(Z(9ک5:pW*?N~'ؗ=4q6s oEZՖ-W& Oƾ~r7LZxA Qy1,a!D%Nx&Q w/<Z VƑ5ip85eL<0x!?A'`% Zh|Tf9&!0w,Bs!b{Ka.MAdG]Bi #0sLAN +wE s*0Yh"`*{%jjز_[29N*1mdGU"ZsFW' {qUYqvB*1D&Mu +3BLUYQ$!cy޿P'gAEa+hb;VblAW'N E + +W~[pPL + hźP o('$Z&A||҂| #WpqVK7CjJ2X4Tuۥ~T)?؂?*-7x혁x5M}/( Yi+i4++HSW&d2@/a8,Jcleooa-©0zX) KF}Ϊ恷5Ab3/KXe5AEh@ѬM(.Zk9xn"Z5o8NٶM-nyo>W>WQ囃0BuWďkxvgrqjfB~bd l@ࡷt70O$Wi!IMLaBq&BoP6mI*I0Mcp4%l/LpQLYM!|G7$tFkQBkdE+$2~]O5ՃO4P4}ڇi +-i,{}Q2; xN!4tpJ 1Hނ\`=L8b1̀)HgBuUؖViB/ ;cfd\e 3xBHf +! ԩؔEmTj' +GX°v\;c޳ cT3B0ӐEgR){\ᚚ R2bޚ\ +#d87ǥF}[A`ׅhPo܅x-T`רl {k_?KS`}S`ܮ +l= _mCJcg)_~hO,OyyS1x#k_,׾`a$Zz"E];M\Kz7CFY07qYq9R +s&0Xan 9h?2$B!cr@-M~rtE_BU:Q#dF y)%1%eQԳ% {_%wѳeJ4@|\Ȇ.\Z,O??VLx\_/K{_y>{7~^ݳ\rܳu9~{{)/k'|[ܳ_W{}~_B|^XH3?]HF{J[B|k ޾}.).=cHGx\žDP>!P2AEG Y7 #B-=*1F-[; +p\5 |sV77 =o@]BG,|{a55B]GqBđ|-dIajsJ)˼&lH##&C* 骍o\ߟ#:gSE%<ġ3ƓVSu^APqv{EvRT"ǐi٨U9߲n+.X[s,DY.s[i<=m^wlцфSI#ZauhSIMU;Yɼ検P01|l*о,ҮmGWK~ⷽ%.K{jJHWư't[l!+0Z}4&o5:! GE2ɮ8rXELj8r\}szB/V}ƍoÞ]t{>{ﱿ㲅+k"[vj;Z&<-.[{3!:o}eӹġI.Y*۷fS;>HLC8.762+B :Ywr;2Et]Fݸ?*E@ ܦ c>wmM^N M ͊ ^wdU݆I)h8u_8w]0L+ܱou w,K+iA-Zv>]ZFۚ [s[e<4K4.&K802EKWWR; .xİ-oxxmmy-e~m.fǻv7W.yґ#c\:wlkӚ+M46CBl\2#߄Xo1 qc?71 {9~o['4;awcRºKbAlKoK==/3ľNi~_$C&ul_Ea<wQ:6 |zlJUG&&HgRZdL + h\ U'ju-3{#,#dGz]j5tPuUJrjlg=eБ&פsHWf>t݂gpNOk]xDk6 +WGB14 +)101FJ`Q({iWDk24Ñk?~x$>.kq+iJSYŠ Nax%zri ]' 6S bB>Gn E1+NԫApFCwpFQ/eK2.HⳄ;؏6_a^@8ۦ,Xa`<ۂo߫+8]ӌYAXα%O~⹳V$ݥk.vni4[8nmח/nwaKH*q57L=;]{l2o3ob+M<\~I vο3~2_v.D W[;.нEv\PY,>fF2dWӼ*il|>5 qALon6e>I-|]P1Xnƙ + ~&Ps=H,qW8`xD_Vރ^7]{v!͒gNlnu^uQw" umBW+Z-n'JR:]OzzVhV*dz?cGq`<=tFr[!p{q7|`T(}v7>ڳYtGiZ -{W֜lcn`rn OYu2?,։KcjU;Z;")^2k񶴨uf +?6cڤ8&2B[^[<;uxJ3(9.i#cr-4$"磦p5ߧ<{qx6ꁇˮZos{(/&i +H٬v8ESBBn}'H cp0k,5jYS(q= +a>= -|VZVs]HƽFgln=D-g)p3DKZKNjKemv VIE lg~8i0Bo=ipdl/zK9&dV@Ew>vo콃:vyU%S^c#^kwkO +^mq&?_*iG{e/&-ѝw:w\)Gucu-r΍*zT{26'PKhr{J-HvAczY'i@މםJCL*/ Ɍ)!7hi2p"NҭMhVx#hߧeeITt@FVa?a`z5@;^guD&T@ icE|<]R}*xxiӓ)TfÌDD3);Fǫ˜O3yCi~݅Nr_}>H*܍TvFIey { 'tvyhZۼ!֞(MH3L_|j jRKj4.{?fp443[W Zf6SZ."qaE!KO?bY֝A,%ԞQeiyo yG>#sXؓY^YzKWWН(X,-L8d-x iJEVAbٻxD5D{5YdV̤\$dj.f!wlEs1=R̷}/19l|4/C̯'b ?/oL\an&=qA6(WoĻgaZE/͐= +m i>idOc!T Vk-/LVK ;<gx +_n_"#,24hLȮx<.dmXp7YP8'Q颕gp ۜ!w <)b֜2 2;' _w'|f@Uyz ]2Wv-Ǯ E=V&I++E{|9?~bvxe%ZP-٦5A"#.䶸4*༐-g[LBRMyҊF1+`4Hc0tB%25eՐ2 + "*$D=9q9- ȹܫQML {5ܫ!^ 9jȹCx6M#Hz&'#2&#0tn?z +:rǓDeN#(F3 Xn9ʹCz^+fU3| ` yp<)~ڶ:ׇǷUu>t%awR*Y+pxLR?R?^:aJZŷ+ZYxR'wV}k{aA.ӀUA뀘2p;!L[NDoaN"UV(o#p歰5,%_op;W\w\3Ķ"qF3S&L΃;ELDa^nODJ,ekP.Bu$T>ZuuK}\Zx!8$e!g,1~豕N,g ]vm,G}=]7[F΄츸mvS`ߗ%LʬVۆPP\'V;mq mO] CWLv~bfYAt uJpkxajVOV!B#iOx͞a4ЀBHt,re)4r~xb۞}%kB$QNNN$!'Y9:9 ?5L)  kDM^9FND)0nNf;+)p('c$]FmYrrY LjzG"z8BT=pg"s "kʋ +ܯ%}YeNSwO![Å +J6_w6 ~t&w_ъC=4tZrN8 wi诮Vz ?_g?O񳗟3`Vhg6!]}Ϩgό=?2c7n_>' 1u[d myeeZȅ@wx%bӉǧT ?F->oa;r#[o#Lp ŖAw3<~~*ۍP_%i.-6R><tzҫs**ԝ֞?N=u5jZ`Gs/*D)Qs)Q9:H݊USZ H*4#tTd8"En)^Q> aW+)0gtJ|+Mj+v-t>ɫYܙ =3b_Z;^P+eVT0 xA ;'%mE`zG}3ڀAcH-WV6vzyJlyBђRw?=+=~CX>^MtFngI8`g)Gij{m|a: +x8JQ}Ü=jTo /K+c]Se֟MhDV I:6A;Tn-[SIHh +xc͑5G__/tq^bzʥ79O녜I=B)"S<1 o.J!Ay1BlfH·S !z*Jz"8}#zDlxw; 3#Ì* =p"x«C;i3r.oxLY!"}kuTS8Xz-,:Ү\rĐ=>ЊNEEy!IAObdV*vǖPry$l ;iHd+[ [kKELGs8yQCDePw1c + @ޥ1^)%"FoGU-✏=u 91}Ӫ y} y kwy|Pl-JtA`خ! C"r~> b>ŮS}-I-&{KY50W7_Jq&s`3uxk+z4ǥ簍fU߬'O8Q x/:i0 +5cl1Gk)tdY +MhV"8S0+V!>s m猬AnBmӭ.<:O[1t}\uOf Zތ"(sl@:&2cow^_D&Z.]ob m c]ؕ3N+ۖ%sEsr@u×@B//8dz04X9*`iDV̒=I/d#tOK?M݁FX rH>1{R +2??15"F"L;|3h>QŎ@Gf[yK=F^" +!0ôt+ 'E*mx;mhEbVɸsvo^j,a sZiJz] Ř({8!.a[:+ +lnY%SL3X1}2EhߊcxPG|+Yhp%}Zv%jOyK-+9?Lݗg^`9\uWh[5wrp af:d?p U}7/8NH1Z-/G~^3.'16{ӯφbIWwlH D!;E^b ໝQIX/ccUwǡ^RLr8~+ ؐi?: +W 8B4o`! +f(.݊r'JzPTTT My.k1tu_3W}ځDZ"BCO +6ƞЯȼ؆(8 #NaiՍeQt9_5P;@0W`Z&BMZDFeK꾆- rju=ֶ, +xxo9FA @4-OS6杣SA4xdRM1R}8w+.@h]иP,7ACIs !Hҿ>AlCtvu7{ܝ藨+p@%KICcG6}l$1.\u7 +nm0>$@^OLQ{8-.AAʹi_a[&d->Bʩَ0*tG^$P&<7ꃯYX g8Bӻa8%<Clм%44o šY5fXZUc4^vKDE%zaa?H1]q[z sM 2;ݬ53gfT5՚J$՚ZAGNUòhhOû')"O!Kxz͙3L[;N^%J&hQ]INb'N9TXkg˲qiO=y}My"׹kX&ݯiZ-򜪸H+e2*)ڦ:WH׫-[O+sp_uU)E6eU#{~}w-4\t,̢iƝh) +FUk-}̦qkɋ9igJmy7;]3tizvlkGj<kA3V,*servݛ֑Et❧ +;"Э8Zf̢jIO{clVR\!wkpGj.lf5؞g_D{W] +ňw;U˓L /Nm"4fۤQ;S͙tVMPǂU{jJq ("[xe VPPޏ㛲Kj~\**AE|U[ ~ŽA#(1%XRQ_W7+гmp]TΒf I+\GTj9}I%~Q!,NKN#Lp:Wf*{$M*rNAC߀u(ȧ9V=63э`Cb)#E?$cMH_wB%1*i6ƧCQ&Vm:dÏ +zFKV%>JfmY{^{?J;ʴU [;CHYh[Ћ3.1:,_Fl8_%# V/œg<|t{9kțF hJ <-9F@|kfR9:늋fC ~~"jVjR;TayL*`O4GTvx@MT&*R&/)H(;nJ*$V.T:(>NGURN>cj)]**Ќ7U_TU +wIa6oZ0;TB~;T"̎Y~tF z, +3j]7DAL(;>bÉhٙ贾\rw1}__|w~w:;_^@:LNu̥_Ц{.7\v9_ ~KV`޿gf5[I5NN:^CWE+拵]ǧyij =UhThk}r$&GI4 Wc> y_IK=i>߁XE ̯szrX5InEzixu0H!*fcݠ.ƪ :0ua$tWǒo`'_ _0TS?XAI}ͽqyTJXyNugt];1l^[fhPnЭ;%v^dkd܋dϓ>~a#~Uv?˼^57VDۺ4wbe[ɪ±k$# +NuuZ,y?H5]kXױ-Vb ֜m!sOpBv͒2l +IMcNlrN{m5ٽn]m7KbEց۾+2۹%pdnTpZsf=6\hźfyͭ^1嵊kw0pykꗄeDk6=U48u/Œ;(=v1/a`z00/cX =jo ._u}}F$/߲V{6M]o'#cfvQ,]캏z;5T4t[[kFGeyِaB4/ +Pd{o=t9g+<;s<'v]fnO{{Ԑ/rx=qPg*V';ygtdћ[')nb4$PuK)97ν?Ynl{E,[;38],6֭d]llcօWpc/,q/e<>c)bǒK G$~BH=.{uOCOO'q#gYr/[{E#n +tk43u*&hxzJo`A?t| !."^f,d)@ROLTIv;fy,waDnE0E3koήٟr[>`tOFzCHw8<}4Ξm+hPn:Zi.pR&6ۺE@U;nhGF;37Q ߵA0No\ҶleJ?b.2[uqEXzYKkʾN~ށTozCO(5)b=ȥl8f=d:)H}s "hgY͚D{{Ss7Bz=KKz.}y2wgP DDFQdBtPr +%V +%{ND +%F0ڵnj/z[c]'<.";~o9_ +` E0,"KHn$C[2gϱ}}l|o#ZE+QHbϟIAydSg&w t"uTb\ɭmMFw4o6v{?r35^HڸŅL[PuhjKPHuEK ׄ;=uVȬn7€Ya ÔOFJm#5$nBA!4XoP6Ry_a!A3)]DZ7(u;×|;%\1׹OX_@F |{)LF'%7yc&ka /t6$M;H<"vB P`U; + g\^QS -'QF@*Rp5q/קXVK9 ؋[3{SߎSǧ:lai F&jJM$5eT^ܫ)ϞW/&nivni +AA# X`CvK ~VoH2F;2 Y_5K$410ick˗о8^ة3?'Y&lx^U)_PUMJJU3UՓ|j4_UׯekitMgfUܫJبK̫j1Ɍ33L1&?mS7$UQo J_ωS:zo%fPIVFmfQL~=髤uf<}s͈^[DSB&H^l/xR1i&j>淧=:YA~^YLKfzcB)ijUWjH;z>1ъM;R91| &$-kJ$2䲆B[0ڴRekہt%!3xK?ȴ5˜Aأ +$wm@4.i,ij^D@تE-l+CX5-W=(Y:cVPpp"D#O.uRp`Xsyl oYt-qR1ED&SsADT V8ڳ횖Bu&ܢl@l>mC?C+ }Ê̸e+B0;  ¡3#Y9,ԤؚZ8{ #/۱e,˾@&SPpZփ/m4c S0 HϏ> +y`-k>i6Z(;•Z~!6~=@z>$H!>21"QE_GV|`x?I*חr"+X7"~n"ٴEC^dyy|&)/bɋK*x̆hs ¼qiAӜddz[3!&L;@ȋEoNVE.@E R4#&]M $qHaOռ eo,O? +Aw/'k}* +L=)m2&%(81A-wCj(D9$7lmI_! a-3~L1%ʂoB)O.]JU#JIňWFIOfZje"4L(Dk-e1 Z uMQړFZ]ƶFou:m2F@ʛmFΆF=^EХSZIeCп֭bo+e=>u2HTtUtU宐;WrS!\"SMV4TK.ǁ́V5~~8AZ;p3u~y:Uq~X$Ws *ʸWP rރ 0 +Xbğ "%L#{rZ)(?KD*L}*K<{8*<:.Q4q{{t0F7uQ)W|`YzcAjLNBGΰ'LRH.R@j~k6. V @כYJ+<"b#P-%kjѿW^N o'%3Q=^ +!5!($vG܉%0 ;"7ěuWHRC!êʡ,PN^ t(0TUrw3&Aao6yAUe]0kWxU%hpm^k=FmR|rV$0+^ ͧ|9m|[|6> 3dXB3߇＀ ٰ|AA},_ًLU&eo~5Fmt]?ֹk]ut,^"VXa.K1.<1Bq ƿH$΃0!ĭ9ކ>q**ucip/ }Exu:'Xߦ4cn0}U}7 +RQWLɕ #y0-n`=\'nrïL&5t븜b[Gt>͓3qZ8E_mꑏquzՋO9 ٮg δ!g}Vt6~ܿ(gH1ϥg]ԝ`ju[}V8wD vov?]OPu +A%knt؟|ʢS>[t?PDҺriS^<}wKCGƈ-7ĩ䥨ß ^U]T=KS~f:UҽvWͽsXsNh{C\ظ*uȺg\NЌZK+l.`yR'uş 7=]SA8%{fF5'wϓ*AUXSƍ;,B!\"F`X/^B>=cDwdyϥXN`#P!xZ$CM>i=@%g:d9iS1)-2Jidyl1njܽa2xk'w1K[$i=q;%o@\YϊՆf}z^AynPt˷><|Kǀ~T1\q$ >}O@}aqu6?M ї-i&y:skoTOIqU)-ݣ*)/ȁd#w+^_.JhpR O[!zi==Ыǧy%HU3\ͣp;ʧ#1٭6Keu">Pl2]r_.G-'ME{䮥fKE]:l +vIn +{C<=0B>2? 瀎rH\ D<MRbݧ%=JYIwpL2ӭ8'dOETp$;Z[YR>Ҿ2_ ߗӹ/g?~R㱄Ggjyޢ) K[)Mo]t£ w+Lo=[6r>Ɖxnhw`q?A!ա=rI޹떕GX,HIa/l eŷ|QfWz}b%ZbƋSs>㓚FSXwS\!F&=գ}v]h/ M~.5/Т`[NcEKz>\ IZ3-ꤥ4g+ ޷nICڰxz]|6,NH%3G/ѵ@0ZzX\stU > 7+#}CF76-͈c(>wc 8{C⦞;c #FDhx놕 +-O"ͧ SIJRITpƺ -/>oZo]Xo;w83ۗHp E  7L!7i;#p!kFAa>OcO\~ww+|X|m~xӋqJ _"qSwV\= gQe k?NjjO_.{ cMw!l_U׻}z}"]Maۓxu[Ż~n>ﳛ =',fx0<vuKyONKwӢZ)ްYŲ}3 ?tgxXFu9C˽F{4O5qؔ /!0nh +,KZG![ҨK/p$/zn*ȇVV}YUZP.Uy?/쇳 0PB 3;+s#ovCf[n\oPOtYk y¿{·zrB "/`qN&B]h0V#@3<*璃NP**)O$oqѓYA󾠯@x SLe즚E +޶iϦj ],!]/1AhaS/vJY+mZ!֪OGzp{9X̖rq⭎6캋֪D^+ +rFAAT=k=}YpY~vIpW +]܈;rjEK ۲А.ڲ7ƿx: p9x-4^OMrLƶ$rSh5$]wC*}lƧ!-\cJ^ojOy3#eLBBi#E*Bn4`K'{ez8W٨ D߳*Mʴy}  w*3+exϞ^U*F=QJ*}/'U8;ߋc"}{w.]y1>yWw#WB}ߧ;|=uQq0su=Nxw +_śN=7D{;vPqߧ|)!ܱvJgEmK:ʞensP_DG!OJ,qС=7%6 ToLk_qEtvVvbmYB`.*;j ۶y/v&z0 Mh_epT^Y{Ϫ+_|vGj᩸o}ܱ} +bCG~Ffēݼ^EGVψƗV?cm>mcAD5'n_>cZCSJ"2).+ojȦެDQxcDT WnRyf$o=ާTu⺦x%Oe²҈UDm7s2 +^~R|ӮE 즒ej Hh7fx`HdSya^x/;~0_֌?C:EBՑN5 ]+*I j8vZ P.NA2A.:} Ah:*JJIoftKaox,;}̲.uy^~?{W$qЈVf>·/g6+U:e33[Z/5y^3:o?Ϸ9 ?? 4m\iz<Ulf32iaw!pqV~ v0rn=\swO ^ny}:e#۲Cf9E-Kw{CdTP$7=BFfUͫ +łWR6ܝ`0B%D +,P ¿^y+4UG"q/߲q[ _ J]|D=PJ^0|N᭫O*vIͨ ꈬϨ*H6Vy |LZ46W+p~jUa >Utuf_1dq&%rK|KdԁtJ9D/ο99f ˒6a2̄[V?oy5-Wk=ڭE.[ע4EnF)Ѐ\͝kԋؔ8iRi J7ɥXˈ#jͣwR +sw\9h ^HDoA΅4~wYR_B>`[}A30-@O6p]4!KdGwO0Ћ\//,(yyMl\R-8 0sZ_*RX_RGgI$^nLJCqhO#EB 5d/}FuNT+>;CQ_|;x/w*T*QiT)O^j>QQ>7)>G SfΕj!DgAJqvBDSTkИBD.?;Fd,q^KI? #V#k:1Ⱦ> @/qs(n9D|DP/-P-_Y;#"0ӜAK%-+Gj2G+4`&~<!1Ka;s[UЈ'_);2\ HiQhaM'+ Tr<$bĝ$&o@a]?|p0c* 籤Ds h,7VMj?OW$8 |%#9qyh8[i;fѿbL!qws +GsF]kc٢]4N͈4/dm"yZ-cDJifԥfmodSBעN7=A]". Y W8 sdLx-iuZ$ _(Y=ՀF"L{PQ |L}t9+^Aޝ,x^óɋ*vȋjZ^k"]>/B7 ė̼ -NA`>IBZTKi3aƞiO{56-*BHxLΈbbă,W,ײ(D%U!\aQrm)Y2!FQ gM|^?˗RYd HcusK`-: #61#p.(,bv3gyNK7jdH"ڡ32`bT'6Vд]6WBȲHV/*/D9M$!@02TxFSje+i|O5%kQ,$֜b_k4]`W .M>C nyr[Hrj}C 8L0ぴxhȐ fOL?,)2|Ëk)9sPD( +\5TI \ z~Ú' ]>Y-h1n@؛5=g$G ozxÊ61E6ѯw˯;:_ ;N5S]XiJy={0$_ܟ8lxS?*}ǃw|? #87oZKלO|_򫅁6IA&Axόh !Egs* +'<ΝF 5zk6-'uFh A tS׬F.ZF)Me~:e7Bdv(By?b!l&#IFLmC2(E+>*id1J3DrۦBbFR^{đKxQ Ҍ9DaMÞDIc/ϼLhU0siل!M%i~mivjڑgY[ŠE%lP/gEuŪ^s*DkZ,yt[xXK`/VtW;c/VGevEg,|XyKrrx&1Ne/7f$gYNHd O=%^lBEk4k\ 8hμߢmΐmt~(M  +CUE3 @qEWA)?.zEg ͆Tdä2 D$DIrA"'iSGXD8dz)h-8l!a7&X:._amn4~S4:)Nnؙ(FFk=yjnpiRr57yM\ MMr:4~]5 њ Gݷ XS{;8>{"u{N %k,|.m0uڲvsF1jgepvaŒI=={6=}P;un,CQ>ܪmTVA(ŗ]Rslɽo lp^P?/NYn{f|} n54|&ؽF0wDAw"mK.?~?*8б]_Vwy@w;w{1p6HՄ@, +ĕkJ_ 1$jWB ICMcǠ 1n8+ +1]EVWWX6]S5 [v u{I·-guE\-mn]׳L\=-ʏXՎѢ:.EQioa|Kk=!v };aBl#[֎QAV;GJEqኟz:ZZjxZcB@ʌHфv04]! +)a̴%f=+;"Dpsd0e(4UkP;(ΐ>\:Bn&\:2*1\M2!kO" '2Q(̋0HqOCESZA]=AxgIїi8H^dgPDrՋ @84f'3KtyV1c-%Ҽ‡WB8մ]COBFFg!Ħ}R"F7Db]?iװjxΨzd 1EIrAࢡ($@D@AKfPbw5|A>#,07큉9_mQh@ uZEpuꕈ0_Q bI @ nT F߀Ѩ&q Q nSe50 g̬ZbČkjMOB5ЄG+úCR#>G i %Ag7`0TQ̢:%J*BE߀[IUiA5`Z0h<0 L)6<0xƜmbz'$VE"{grL6=D1!Y?'Ӵ1?G4U)& ĨI&",|gc5@V1\2vXLXj@Amro 6p!TkFUcU@)a:y+#v?EXCr1=jMܬikbZØ٧hӲY͸e$'HSj ë`Z2/F68 +oa:]i̜,|>TO \+}!Z}w*2?{XPK)(e>1-ȡ~ B%h U[4+R؟AOFZ4/CrF_.n!QM8fC%-b +F( ܬ#+O'tud֡P2%BXF%2#mnL# ۼ~Вٮ%ۍ>ٮOW$Kl<#hbVЮa !AbC`0F7t Cr7tT@M!5 ԮR<ĮAKCJvIQ5DhїGKb,cIo /f߸8T5gD՜Q$$ƀ&h*<'W R-i1ƋI;) }Y 6Ьf6e{-Vb(+lw-Cf OM b5VeD`lz)O,:,K9\bQ$ k~\j̚I i +u gWSKՠz[mTB620~ܷcL z6G"G%ڼ3`NW8oPztn"&p_ү ӡP{|[K&|hX+Zdq1$»m{PAa""ޑ7-\ B3r`)jhy)Mir:| 7]M>ç87: 0K2xp1KYZ#%u"[mC +XɆp=:#(1ԋ%7O'qFq:x`,5R%p= BDz]jg[BsMs}|w)wOp1Om~5WӼ +\/ٟxf3x^}- !ޔлX]xU*oV#ق}ܴpen +,e~fA(sh)7Q-pj}inZHsOٔX4 #V(|;۾)E^R`GdtMco2+%>5 {wҾY@j{ad="˲څ@2;0bV7+sߧA6PCq7`F9l"\W|vEZc 1!Y1j'9UtݖS|rޞ/@h7:?MSuۅWg~UTEQq޽grW-.FCГkIo19*vj"ӦsRhE@RFJz#K-GuqM;i!M3;/c7]<ⱃ-)D/"X 0뢊v:BKݺG0Rq:ewmkO.m>)LqcU"ߡ̿A'đCbЃ9 9X~r/Z uz閘P+J?MH]n]Yq@]fҘRq Y<JkJM })NhIG `@bH\霌j`Hȥ 'W[7\d')e.2m_ ERC$Jɘ ʆ3JqV}=,yqV}m&I<9uX4Ra)vtJ7j% AG&z J4h@fXԁo.ٶ?%'uܢW +IkD5j.-dy!Rܹ9E5a1+p`|Jb}a,Wŋ%\9Y{a6m%>Zc27kS (JQϏοc(*\ GXlQ 0"ӲAK>vdsibw䣨d]f|/WrIyIMhLcC3K.q 쫅Îf{~gky*b[xyRťXpV8/{_تϡ K8[s]X4Pvd f_!on$5@G6V1zw79 ?zb; eBA=N'q@!<dh08khwn0b&2cM')ŅDϰKI<8Pe&^&wtxe,ԖP ^yiK&a #{ 3Wfjg-eRh۰V"Vpgq8߇Bk7n~k~3L=7fzR(77}I1#II1> ݴeuQ,N`9H!&% sg[\$# v#tC̎[>) /ߠL,!s}:<.Pd'EWq"mh+]1P#a̛+L8MJByzRkb +lyW# ++(Wx6Dt$'YwvDg2،zsfyfæ/ G}ݑةW ;{u8oH(58+KFQ|BJ#ҭ&ngD"P1p Uj&)SH jZif4c&Dw 3yS} ~uQ*9)3$N ?" JHV렮%>FYY ff&dsh@k& O}st$pYjZ*N(0rM3 +]e|60awVn,a8Ji+56IlEWH+ +#S43^&Z*TØY\loy.7K|}),u[_ȥ- `(iv\ݒJ.j8 -g'G:~;Gdc4GeNgFۿ~ulo'rj-N.ͮwr?NM|ɐަ~"Tm JYVL2` 7ơ:3?uI qb~èd/#yw cv1uB@}]yQơ~=P:L[ +wtw[j7ٿ'?V+/8 +_xVQ)h ԝh{_KI ׸~&Mۺ϶5QpV>\ b'꽪JBj W'2Z~,ZGT.~IjDֶQ.PԨLHNzսBꞀI8C%pye")"3Kq?4N9Ua-0YBP|$@v<29)uG0H?L&Յ٠:Ɗ$BSm9!l%T*WFC;.;70:5dFA-%&a% @%Z2@9s7KBmUDH=-@?`"2 SL!@DK2V*.~wW rs)rNq EμD[͆S,0/)rf%jV̘B`AM/~.0E]53VCjaMLs:wEMl'QDKh8Z_[V_t;E)zqCb{1*żh##unVmxEEy|A#nsBx;D܆;CcNK +oI\EJ\rC#%^5(䤎䰯Euu}q],G%d}u_e-Z1ͬ,liQ(mToR>=9N1dhce$"p~kOiFIwI2Ѐq/2e3jrw~Co$H3ɺgY+>؋nRniJMUR4L}ʠv!'u*w( +hRC + +VA*t02ܺd̘vKm^)$:nrlҤ2f**%P)z(贵;)Sd +VUj~nyZ&&?.R-{1E[E(ySFc]tܜ]NÞEGCs}־H`T4hH>PU޲BY+zz-HcKCM1uc:lP!`m ytuUpou'_틠TП[P0Ca8Cnn&SΜ +avX`IeIfnݲ=$}/6a@vhxY3 U34KzCɘا#[M2!$4"#|&mt+&̖5$!1x0^E܃xM&"6)zs_rTfL. C!ہJ +d4ɫ2@%x;Cړh;RL*ʭE@,J!˓,WŘ˙d;I+7{Le,eHlHѢNۯT{Lo3$Dw\/f#ywa3wB-Shyv;$rאG쒣-ƥx4XVKӔuV2)jEJ_z: c}\Src~e;Lgd3,I.Zu Aks:c~ +p4s,ΈψlXlbrHO5Ԍis.!;]#.u%k:IVcY3"( 7.CfKTc& 6dtRnqgrSx9f`e_(avg8-:, s0Z4-(jiwVaULT_*"Ѵ2C ԣCm2A89a_΅  p $B*J[(nhQҝֺf6Aӂ)T{|N N +XPm +-vjTmvR8c*k5iߡATۗf!8C@CYki<ʍ'+9$ +AG7:i)ܛ$ށ{Hek: lbs,Kbɒ/ҥ怡Gb)g +)([B7vɧ d:"4M;l:.1SzF_.>}fP/v%=lA(/Jb"} o+*.}!,Y&h&D*3RK^ xs +yk_}ҡ)ґsZguʥΔeF4Hk^VWS]˖d'^%dYnD3g})JPih;1uq4k,]xW2ɔ);Ŭmi6#b8u~M+e3֗hunY*=;1JVJR}>f$}F`}^:{-qXgU3*V8>@"clpSs~ȾAecb_rYLSU>uj6᱀ nVcXWR8$ nU6T2![!J+)gM圿hmjyAt%,EVyl ĭĒ,_ZIꦒIu $q<11:t5o:9a!!a ncԠ8KPWwW97ϙ*&-(ٓ1ԧ>MYúsXpK2Qf7#sޔϹh$g⦪#7, }QT"zI/+ށQ붎':?n\E 2 NP~F'7aA˙TN)asD}oCwҁ^]XZsSƧ놸`?gnT_#SȯX#S=/Y&YY5YԴ^;qm܉܉oΝ;uΟݕs7R_s[0zRBL)GX$Fnkm_yuSZ LDHZ|nx#2Cr0d&nG h+n'ZrSW_X,ʕg @ uI>,X=f[dv)ɮmKIY%x;DIPw.8 U dw$ &Q-)Ic @K@H$a"Hpň!4$%+$zcȇˮ!IkR+~ys~TpcД,:^Toסo'@?Б|W6OΎo'mJk}vڼa +T̡sKc/#np`3D & + Hȫ30ECoOL:"q2M Ȝ)F0!czjl)3]nkIɣ/  Kpx8VD-(6J[A2׸aKZfծVxJIY= i=aZTҔT!13cH*aS(;i5uy)L^ +d2j)7WmS֌ɻ(y-OU )dz1-jUEQF ΜTh_MpVͣ)@rAT#Յ *Ȭ@gt;r7s%~LZJR(е4ǷsI˷Y`>?ӟŀq_6aTmD҆wH7k\hqD| `.>~ nĖf [?}7=X޴BAI!?#bXz(]b,􍘪"U[̘st@K5fEHnei:C#A4;u\J0)o*B`Q=E 53Rh K0C+R[*-;nI1l0rwkjIYl.}G4EL롐g1 D[y nѿjJ2=BN\{]?9!0j Π)[ +T`O6#yF8H8#xG"0'2^<@bIG}#~$}WBH& CdzJxGy2t`ӧK -2f5sWVSjCpxX>mSEnB5_l羾hG>5jɖbCAY*q tD" +1o_DiC_PMcȌkkQs;Y7Gd'M3*YuJهz3WdMfݦ&dbhaeaifTp\ЏZ1cټ'0}}ӭ6>Y(j2/}W;_w~_ +u݆kЄ)juT6;u݆y.+=ۇםA:g;uKEcNyo:)Pk{/2*ѳ^cwϜhY:Oi9􈭯n&& L:"oq[êv#_Mk~*(ugsxkԢ}QW#Ʋt^Jb3[Z(;T Ń<Z⇗1~nFMl<+Z ċִmm֢&pR(..jͦ7_6M8q/Ϸ6+)iMX+RY(c-VHR'>*mf|J?"ByS:juʱm䛦2\WݟyOPtT +fx0_\ƴcx3%C5{^7ܹАCKnϗ G`N b j^f5,-vKC!ݴe )1aǿ۞zA +c[J@4x] 5ŧW>gO|5euVpFTWU\-u'n2dޠo26|ֺr#z].oaUCh4D.KqȦ%~ަ[t*j`gi>~$Q3 FLp~&٘ysg&…"\<L)A3z$ | NjÉ1>ON:LFG-*Wju),rQ_$u S%:`'F mi9!x |/m)K=̈́pL1ʠL0RO.WOZ1ͤT4Xp)e]:RK3r.bOK}{|Hl[&esK>v1UMPArNJ2 I̐`M-b}"eTl!%)GmX%g6+NԂ+lA%Gĕ]cM+BXI񈛖VWq@Jԛ РiRҎmD롬`5{X4a䯩StdsInqYٴ;M?k҆/h!SWk9~zp{(bP?qD⑥\΀ iإ.5oHbD$V9fa +' *fJDck<'g=l71MG?/>( +PAa`tQ;QC4BLjyχ9ż;żZ?]̻crbܺHAmynuoPGqϔ6ȶ(wag֜CLݴS40f2*a``oTL駃1R>t;Kf&Mi:'\ MM&t.G{%zm>`kXMثymi4*,kSDGnd';6K6ڬT?Jf/6˷CJp-zzm +rDs|ÐT)H%"NRbm7%AॉMf3 !͒|GDSoE ?ov!MXW͆Ҋ%MKkW<[j^bجTVv'H!㢑Be0@7 si͊>EHžfw܌l(._#R\bDp;B2ct;G1C[~KGʡ ~!]VXĩ&b쯬eD&cKRklmҰZNRQsJEMK(nKiC`¿\L9db9$XQ=򿽹c˗ B7o@,v7/N?4'_{Y}W.UUs'^3JSׇ҈\/UJ֍W|ZQ;jd"MɑSgoeç^>yu}sNK_j}hUs[_bŢEhL)83۔SM.A%#h1?OzT3y#٢i̡&N~(Tl$=b}=#m._*՗L_]3}a 2tZQPA혇 +:l>c.؉ӌ8~y{+.xƏtOG/X:8dV^5" [t_k56}G*Ѣ5@52j+[}?+0 20ӝǪ/b&^fc>w[zpeS=Խ^:K~OpU|y;aLYrivl܆A38֝7#;S`}~dުpmhffcNBr趚Bj@[[f\190At-߭rNE]A@3+ccg]>E%dkXut]1wԞ:_Q߱㾐a$ЅHt}͟/ pl)ꆨ-O,0]nZqh:Mk)~8*>V Xn-nݩJgIHSc>'h7 ?ȼջnNMa'z+20.P^^sa3dҍ'Q,b:nz2-.<16BX׿q1pÜ̼):pXr,󘞯#<&T75Xqr|Я޷O0[ +]|̸BE|؞Hя=֍xe(Q'%##b mRW}l[#^­>oz[up^>E3Iz܋ϛ G^"k5ShՋaFLbx=b~=ܑO^|Qc1whP|XuS)4],uڻM/N̝wSvUOIf(!g>`9Y9X.KlMGrHѺy$^HҗOd[]5PhVZA{bLQ(Q[OyN)FwQ`27]l+Dƪ+WL6-߿ainX抆k1~MP50QNG`d^;Qc ]hŒIRT4#_p[۰haƉu3Kf^9uoʌJ5yum}i$[Oo [7GU>™RӞŌ7-5S2'ݺkfr^.%#Nݵkn0u!3g9^~E6Sq2w잷ƪd:T4Œq{)ԫX}]mė/ܦuμl׳ۙ/֛imclh5[}i﫨uC^6;dbQ}r7R}{ߺ +c){g;bFwةn'K=/{Ԑ~l^ gaViOgduTRgF)7ss(2ϕCm`Z^S5оuqKy|wbǒ9iOOsp.g#8^^AvZb'y'Z4k6]O|Ij&;8Y'1dOZiJ0cmBtm E6!Qhӑ6!Qh3tDЦ7,mBDЦ6,mz>M<᱑gxiqÞT Xږd6QF{ԁ R!")ڏ q]_*اUZ@xwJd/M>a];ICI6 |0){ b]*:$ peFt%JzB(-vihI~lrsxfk_ .zR\t;:1USUN)8Ku /ۓ{ ׉srI-szr/lƚrɆ+f4'~L&S~ q՗b T脄F e4P39тJ%6)(} 60>溅+j/,. +÷- Cb }ib:c,ƵR3JKʅn~A:> r\(pw'MT7O %Z)ݼe-7Pdw5xn 5KxD--U ^,JۭųDg Yn|'+86`<s(y kӚ&S .L-"Mt +@zp2B5 +XYTrVJ!˥ɷ2'ۚqxa7\nk8 +%ЕK3׍`. ꖿ$;b.@EmC n6]Gl +~v[v">ÐZX>y#S'C?2 +uɮp5ʥ֘z2x2NIM! ++ @|UJC(xV ȗ$Mk7绝x*pa際b-HLDoZh oK.HgW;kI=ÞyYd -٧#1nR۰-A ?> +7GMh1W|ȌBFŹ!GB:F:xVIQ5%}mɭa:>qY>&޽2A! ٛ_PT!|*!9C =rm# 9TWOebd,x a~$H!gfbXٶak;g9/"05t]f>#v*:V]AzRBz4ݙvh^U9d,;3B֝)$GC)$;3W Fo0 cAi#^EYEitho S2IFxy8^ةCHH:$Fy)0n$}UMQ,)0ӷhqUxJyZXܔ0 &"sGl6ֈc|5,-Z&j ͓9 +aipt2+#Њ:ꈧ⬺8wK暺ZGFq.k<ל5IAcFJm,r`d]_zКm=Yu4o_淗] jVwʬhW6x3r93*g7E'>MgVY޷ivϮ*a.6 0˽u5$0YZm'Dl( pkG>1ˤ$D~\.&0J%cBQC5&-V"gb̰/دő !LrW9m]C>/ͯ]k^/aՎ63)ظ_y\-kl[{0kwJ`,K #ǹN~M:O!qFuv߲yQ2p\ttI=N;pR/ +W'/xް6= 5Ro"U*4uo6!ӅT ŅX VQBg@"p|V(g  Cs" ̔&oE=srElj" m> aH6)B%t'Ax^t͋y/e=/yF <3p +]%2" #:\By=7%L)::gl/26wD~+0<#pBtbG +Ͱ_y!*Fx]W)Mdn1_O G:+>)9CPĖ yr42p[S%E{>Lz(2{}aɤ(2)c3=*P4}PI̭9㧋1]OfE8!LP`S:PLFXr K68V'?:@L qjC6+n**|ꃬA\K1};j͡ T +?Tde7E bY? "Y'f"AF~;h7©ԓWjO7 VJ_˼$W5mDxB{fqc;U*lɌ" 67wCE4Rh˔?*?YaP )b$#JV@WfZj8P`gOgoXX ̐\q oMSn§8u@@bx_7vs_ Ĺ㙲V7_ oF{c}Sf=.mE3o6z%eK$(X*yO*0v_9 0ֹyPRCEyX9C-r[ |-ȫzCȸb_\qYv#' +|;ƽ aN9}ay T}xb٬!&+Vc'J>#7p~nO=+ùEܳAnA= sa3Sr/רݸC~6d۰u(ïvOVaK%8"үD[qu!C j.Y,T=7,jY0bmC[0Ey P6*s#H8&W;,w9b;`9*'b ޡ_BH͕rɪ6J }dfDяYbBb 3*fx?2'vk;q2'j^(4jv^5fԈޢz 3j秽r0ΘyJjE Քvz AjUqaqPUEFu3_=VxU?yUßeA2U s MP0@![~bBYR`EFk[PM>>擄L">cWAŀPVKG|Ιlb> p'.@@kg:DY~CX׏׵ƴpwʐtknDMvEV;a33;ez!k|G j%IRIސm޼j L=r!Y0CDݥՊڂE+66q7hSG3-q >zC%8Xh&L"x\ FA˖ujXs`w;L" Z%4o&)HrE< 6 a@4+B.FG%- $:M\vޭ/'J. `|3")a1Vl~K90FЄ_lDMl&L;'x@MX o,;wwS]PD/8&12|`-M QNa!9kKT5_ SDeLHm3̞ +|U^(4V:5͚Z"+tSՂ7".XJܢ'4E߼0횚3 $5 o0K I#$g妧GeԐzI(քH좐ytK8`;/$v>Db a571xWHB`"'BW'TFgWL; +-\A`l@jۙ2Lf fpwUWUI6_wޖ/'gEOFK[ `eHDt=c+Β;¢AM+` c9= W٫Tʲ߶Gĕ3nj=i\٪W&*(g^Rޛ`kfAڥrTlZ`۲ak&بSr%X5O755 ZX5)7q=ct]x?-iTcMԿX2>\ V@si^#%D +]_7_jY/7nʴQ W7o;F%h^|ˡ|J|~|ϗs6>w3*!Ȁw"y +Dj|5sd]tP3&E͜S\L5sjO' +Eu~f+5PbZb+ xܠ*#RaLA [<]g`IĻpzW~4NH?@2A*Z4 +w*s򭜡kuЛv Q`E\=sf&͢czp\9 `ulݹLi IM.D5 +I=?artui.4"ͼ&&$g:y=Ѹq"KdBՔu F(4@MUbw3ezOβͺKofCrA 6_^x.~MlHQ({["m޴ݔ-}tE'RIDqr RӨ݌ hYj =$[t?P~(F85M{5/5 9+>!HM +9F2-5 >;5ͣҶ3~Ss%0?B(IT#oH6vCki 1;Wlј +L*!5cms`]+'ϺnCkKN9he'hHSr?3хI!-F5H*U36t̽;b)y3ȥȍ;]#CBkF5rwܠk}ӏP %1>c%x,q/e4S45 ю7'ugӎ}CN'D. n^:I Z@d5'Vcq(;n>YW-]~I& u%fk H( q tqUc䲛 +qOjv[~M)@ҥVgn]3Bn^dꚿC4Fy r˒~?8Zvc236:h#%Y̋Mz=Y&@FHYqsV#n2ɇ vH~d,耬"dŞEg)l֒/i$A1_˛L+٠G2~]: :71:.$'ăF]`,'m1N9F'uѢ.v{ +X\Bsųϯ@OL5`aSC)`N! ̊) sM0YḄ뚤)Q>Nl4Dle%|RE)s!Yv]aDw +P L=}< {?n%% ԡa:ӐKJczutnyWu߲3RJy|wqaO*ƐO,ߺ7|3”%309":Lgn2~+L#t۠zn)ʺPrd=qb@)K:\n*rW +- 惹bƘfSi*cDM}u[M1ALI#r>Y _ИI00.Zu$0`x>H*quΗ"I-j,/SBZG[ lL3l 4`IۧUjCUO0JTZ22$6i/ l`ޅ sn(fo(h,gSur\|իaę G# z^gJ?_y oC&}RO4?({uPdp$(שKIi(u #;SMp7$iq׍0-q-$-Ik_z]P vUȽO6'Qڰ'h. * +m)%9]cpbCm ?>mߥebi X0X?$*E(Bİyj;Qw a`QUY8[jT¸F1Lކ#L _B~< ;',I~0ªzЇCayad8F%!mjWn o[h)Ztr0aq%<͆'do EP2?0T hOFTF2A8iL!Z\5O`ϋFJ4R>J).1k48.C(f P_yqVְAy~9WZU*=}w&dOaCfc k\) Rw|""i(5B^CZȯ=c3y![ /6 |+_h%Epa.;G&*nrnKA [U$oq'WnS[]ˈ˔Z58A )8R_rYgмN,hM4o2hȊZ׊.!Yqъ!fy{a eS$L,IJpwfg S a>`@%` J"a͹sߦ/auЯ9ZTd)?װD SYĥHJC/E},aDhYYV򭖆PxR 4n lQph ZɨHA4`f,W͙֕NJy萢ԨrYy/Bf%{/ 9z[qL1- + lŠ2"n\-+19a=X<#H8ջ96wES!#hlhAǧ jQk Y4ۘ|?CV[A~\ Z()5(ô"@hj \C샄)-IyҢ:1%M{׶UHhk1x5Qy40Ǣ˫F'n=݆]w6cHU $PrT;(U6C +dm/X6 k .`0)*NakV䕉50۸CnXK-/W6lT\%{heNt.n1uXNg#W~xh?C 2|o뒋Z;t lBpƹڏ%#q-$sS|Ǝib\A+ +1됎Un6?!ߞ'` +axviex@?ރ*DBH?U:[y@x KXҋ 5U()1,ma BD T"a@(6*iP#)LbJܯ/_,O@hD %Em0y3Ų~6OiB]Tj@D\|8&Mۣ BQ !H݂H$'@7oGQs +nG_jZ 2?2#JE"X]Ho#h֜1 A BaZ0&%`w;Sߔ8̋Ŗ*r.JI3tk) WnccB"r`FbfH'GvXS#V. Le^ewU3;%Z w(Zz^Z"VԈ׸ шqް>`U/_.܇a=[}a ;O#!!Ӆ 5cob?NBPA(BMB"ʽJRC.VC54HhAy"݅K>j@x4\,pl6``ĴqJȚKAJ=!E25"@V~%P 0NAARxq4qQ+o؈Xz@Rpb6bOz@.z.F]z0#_̔ZzoHFKE>;EWF}ĻbUu^&ۄ P'?e B2Q~XJi`%AMX2J*X|bBd B-z!ߵ"΃33| #tGxx%D$7vI,E/p!}ԂtemL5g`Z5^'@Xy6։4(2U ]*x)?y +S<\TOEco1ٓ(^䪒ht%j#߃l$arޢ ,2VhD* eOXm<.Ν78xŢ{ +%3w,D{ #j..sV%Ϛ_8|wۉ,Dw;ɏ0Z0bө2(s~i&1U>ihi 'Fu.apVb)[m@}T^#ׅa1k=0MV5="Ob<xIMHWYa:<`$ʭ,u@Rd3d +i8\}QBFxDa.;8tn-J*\ ՉN pHP/ZJf/I~m1e LуBr+~B +׹;gy=g&1iF/7ʊ줮Ѩ_t:'t'8mݱ_F{J%8+RQ^KO< 6rfD:7}8]TѨ%ق.%>%w@z|G@NvNd6\-H2폺Oq"NYhю-qEAykLGcmmŲ>V'uUr$n+=x|* 53OyYvpyDiKRwB>^~,X4m=Sf|]畓 |PN^GfG_|!qXKMl2γwZZSk$lll*s"^Tx7cvf4J[VJp y@)WC7ꝨTVXT+E$* 4||U&|H&čDLe*Z +K($a'fTQVV!9fTedr}xJ)"Z[WLXMHtCKW(,ǹ2ՃG=hhZ2Zߨuqj ^V=1lᚅPKԛц|JVDы[:B1ڭȾ@\ 'D:9D%t:G* ꥥ?þNA#&B٢gUàOsuN=qf͇xqiд"pİ.7X_9 j<#es$ uR,Z1bO@dVeG!p"Rըє'y)hQɨ>ؗa와l[n.8/`&4l Y VgIp c[Ynxí _Nx˨&i-̉F@6Ԧ +AC9V:l[NpQvf;iyM쥆h2Ld`Dactb~"랓J-t~:iX&R,G'K[mIxO +'A`9.-is}v6kQceN z2 }g3ͬ!{EI&Q-,QXtѕ!n#qx ϖA"ٰHφϋtѵ9.y%!.cA GxOzLHW7AfT+ܽ{56-*NTh-y*@HkY"RǒY%Jk0\`9?/ Gmܨ5^s|KJ/@w1[iIcYɗU(Fd4& 9:4c) d!W 'kHVZ%ǥ\"ߋi 5!,/ɬ𘙐$/ Ղ ZF2֐܄!qw,yO[ өf\5=K5ć4Ȝ+gu[&![r[Hk}SmLgo^x_Q[6| riLp}TY7S]sA|^ )Z/*i4JU=^74$>ze"[-ޠA]\~処?{GǗJsZwt\.6לC޿>}wYN:-և,d1 Tar[fAR*P,JNJCTipZ: c^d bGMʁ^ kŨעOMvkL4r$&sau{Z/씧bT(-Z,&*΢fɽ' ݛ,8+C˚/DiB鯥‡G]*kGD]4^1>Sk4K]xY6%ĶY={X^G{N`c4T+Ԫv0FE^d^dܔf]Gbdm/yٯ _3#եCjI f仞ghM8CbQ!|>΃W8=+c/\vP:/p.4Gcɣ(ވz9/tY{mܧ ͗Sr/\,|8x;<\L֨>};tI!KkW,Qo9fV$WK. /O3%8ȋClyM}\Ag@͂ǽXwgb`6iۈ,cX/U0+x;mcA:][jgE?&^LnCQ2ES}Pt۟*K7_do\7 f}tEyTMC 2'hpx0J%?lun_k-4Üv8߳5v-ЊNEJ,>a]ƨ 7hwjJwj%N [\~K}fmOmh8d_'me40%5[Y]#hSnCsڳ{Eq\GǯBWm-c v)ϥquhpn~$ +!hVHZ,; RBŸ yE +|:g9ޟL8HEٗZyW9)'n'lf8%d(VC'ɝӼWsmkڶbB@P)U[(^Mt^S~ӓ e +n}5s̃`KNPv!Apwxç|ʬ'pDt+uǯ\uo{ 0f;vbAb3\Db) a*7 +IJ]AXU()U]0]5h)a Ǽ7bkPXs6y^I/# j2_'x {׉*ЮYlK9,-Sj mVr1Y8ˊ疚\$X,|.z+DYmPiգoDDfЭKj2͒S%xo)?2p^nUmѢ8ꇵ&}"Sz+\A-F\źDsrl%7ö"=`EX!,szg\H9\&|s^_z}I,$$"U0.:`I, v|݇%Z7s<ΡȇBYb])WC^Jx&i.85IyUQ +=bClج$̚G{ +j* LJ4X@wh5G cԉϓ?5/hR,Kby9Ϸg[WK`UکVTj= [V-ת{9 ++U;GjY-=!Fk*UݥlJ C@Q}] 34YޤأԢ&?%xGSb02#1AJ) |ɄAfy]Nk$O t}Ը,Kr oXC߰XxՄ4ЭLغpiv+2H'OPdв=T w6a&߶?XPWU 쇻I&8kW dS<)&)(%2{v%W͹5K}{27W +0eBmlsx`:ykKU7P{i M4 _5'[s _[:bZw9vP.Y ǽBPep{|b&×SEyvD7e HQPȔ_fֹ9YR?O.3Y S{:w/XgbZ6`, ItM=`\z7 w籘G =#Q1cĹFy⻱ DAB'ˆ;g$Ox>:CY'|>|y\xI1 ; 4Ы6ICx'y#$2DD;̼(?,,~{#MLfi(Ăw"FάI +ßhMLJσ߳U|$uֻ'M;U}(rBw;3-=^+LOW䠾V=loܣQ,௰g񀞘" [ +!,ph _9@J(xR:'Crw e;B=d"ъC3ugw<{:R%(lóqP%cjsr86Ogx"hOs^k6#v8G"H0g6gUi+c 07(Z^ +FFJX`Z/9n 1!.G4DQ,0CxEǀE's Sr +8?Ro/=9 0 A) +{q,Ni11.yrɡMMv_YWj joV8F,ɶ!XɌo0d '-F8<й0 +T--LI xC%|$ drN,UN;N Ťh{֝;Ѥ i)m!-W"@3m<-AZ(@\in +rJtZ=]̊Tema?W)\_m*U]{8i@gHJ=gemvR +H׌s,([.lO5 +΀37O9]C}>p_͛Ijp?~2ܥW-U˒}Upj*ZK?c)Xnq3Gvbǒd8g?k31{.f/^aɩB6|kyϯ6S6s[XdYMMl/Ln5E§3qhSV_M z~z*KN N#Hi #F>ؤ#Iu^FieAߥyg,'sW0L o3z]UvyVe͂KžKS=CFFdٞ|Ye^X5;*~u'G.kڶLK?ԫ}0 cYvd!';w;;;2]s> 3b0UYLWm*U bzɸzm!`c.w2p;%^ޒ-P9yAYmS p@3Ll,uT{L` η#'ʦ6ʣ?Smvy-O܏dT9_ѼTi!Gh&*#H"[S%U +!TvnSF42Y읛sfc1nI|4>U V>-A:F_K cfs@Еڍ|73u +ˌs[48+YQ.cqr,bzO!IUc׃`JvQvLrֿj3?NM$_&]8͓fYy5广@HH8fC $d$=s6}WQF(NHfዀ`v((uҿ^6 + o/r,sZT\dPEj#EEDH پo"q0%NP? aWUuݖSwLa^P̃?Ip&po$}ru848ă7ƮEE6A]E݊,[vlIr%%"f܊  i!X?B*f^ ^u9 }3fa>++Wi~D7Fvd[IHwt4|j~ډ3B~ۥMk͉ǟ*F^0 dzs1gԇduz-MˠNYಥSY1E jOg3?σNΘH{^8i_ճWPB mɈ7x`Ln&K<:{BCgt΍s}N ev[йA@9}-Z"ua~̕9 eaC 5H:#^0ֱVHmB=vv:xޥ]4)z % ''v֮OΚvcl|'`ל~=M76gӇm"4;Ev6([) &ð p]!LCKhgl G]% DCט3 -g!/9jl.-%q $7t 3!l]|1h`H8Kp3ԲK^Fٰă6Cvl/ֱx/1րH_h|L]Hi#ZPf:-k$}xo,%3Bc$1#={,}[a|^qHn ڻO%lK"U +4LEPъg$b}ݥ?y8W\}+YА> ;.K!JEީ?w0r}nF.>Z{B0& K`dfl%"M38*ut]X57-rhFxSWR+_#2DL^uch2TM0OQ*Ǹ-fU74]_j%yK"u[xyRHӟfZ99irVV^ +7YkwN Yd뜞Ql.pa疔ev%p Lޫ "1lvc[#^x(tHWF}0C= +W4"?8Ac!qˀGbr>Iws>aOX&J,˖YK zM ʑ!2dpl P](`A| d#fT)D34 k"%ҒKp\"/Eb؎|1,R +aİŰ'<1,a)O KQ a~6󳉟 iYr.v9ozeR$.tE ooʽt~}pZ?D$>");1R*"0g^ҳuY \x/ea͍vjVxZ:}YX˔iIRWo-DFvT>Cs Z4GpDt3^URVsYI%7.$ZĖRrz(>9{exB2On|s^zKjyjΖ^sXW19 +X6 `WȸSf:Sq+%E xeKHkٝ41bg'df, 1ybgUZ$>KYB:+ H H|N@$@CREgWH"pP-B1%%l (!|ʘ"řC%l|:"h>O/C/ɹ*12^8Ԭb`{AxYgޫгDJ6d*:<֡/RC)Rʦ>Yta6$/l7V=C'.9& +@ +gl63e4S\qFk@>}IDKǵ.n{cJl.%r8Fo3s<ƓXhΫ5ٟF6|B2t.w5Y>x:ɶ[SɍQ]ڛ|Dj.Z-b /Zl9}5u_l]>!Sg^1X8;?f>}6n[pY24.䄮tW?kH_}jӋߘ+ظ.rp6!znJ4 +Xs7m %YȖ3QDr&Yɰ7Xɰ[*vJ%!a`@ Jf=~vUbF\N̰{7 L"BB ̺s0]<-?=m>YcÞ bcLV6$s.& |?p8 ?EU~(n|1 )#6GCF?ƪ4s>@e ]Ey9ƣ$U4]vf!X$`U|ō=`k{ +PSҤQ&$J(譑XȲQem'hm)ٹ2xgQsy +:fUwՍYdb:1a8INm7[1$GaN=[5TFS!Z&N +n e庭;ב,{5)ǰgŎ@H&i^kn)_g ԡx\~ac䤖ܟ ?Ghk5z>MޥxYtWV_҅h=^1#?}'8ݨ̀ A89A]CIuR'Hy q2y[ns9Q~NRNp +=03RtL咺XŒ\,ѵL'=)_k+D:V/R+^ !,0װzy ؞j+.Kzx{mh+c   H,X+_ޠ'ȥD4' &\?OZ<8ujփ o iY4V> MI]ʄ? sݓky>W3P#SNpkw8%L-|==vO} ¹[ydFJ :=؀{h(.R2p"=BS)~c"9]K׵\۲1MdⰡ wyQ9Z%":߄r]V\o`[x}>P2 _&p .Q@>G:_^ rE~|wxDٱ|L=c[pu:rƏϖ*}2Y".jU!<`vn%!2 E/*9+P [گZ;;q`Հ[lIdmb6Uվbh6$mdHm鲍7RlH~7%qx;B^"OmLmf šj8nfmʖE  {H"i$]-NiOGkV {Ӵ|^=K> klc4 23|ܗl9H%|{Ju;[[H1EیfVOyw5%Hpe'p8lTs"#{Qe͢\WF1p=B]=^ܳgh=|;ƼuZ@末\EC~]PQ ^LAg-)J!U^&0y&ۉLde{ KT~rOGW~BCD`@6L5aL!+}rzBbe~!֧|)@#3[@޶h#g%ADPgB& V\\Ѽ"^:|7@]3whdhE +z(br-03՗aQ#û진'w@3i /+$\UaN DTnA )?Np?O:BsH"Ho[~!4ẃ44lŤ%3 F)Nt%(š&LOLnrQvڈovgOa6a&2ŜKFYS;͊H7(T;A_GPJY 5+"<Ř5oÁL>氍YVh}'u𨷦I ؽm?cϰ#`t3P}wCF{;g2m^<܍DhAQ_gmbF(o#tJꋤ-`vu#uK\@B {."X,_V'_x\5 ,$͈ι]RtP0^ϹK̒ ~A%uF2: "v Ņ`a"/tR=}dj"nþ֛X$dncH')ཧNC+g3N,k笠ފ澧B !&OXX!W{` +/aʤ8H¹Jݬݬ͊nVJ TzvS{/t"*:V 5s3)ȜTlk )\ S$3j^z5Zϑ^/4C8ߌda +mFI;m1VGUYL׍aHj%6u`J^u(coV4珵p]Rd%ywְnROXaA>3}JoJO]aյ@nu!>pO<^[ذE9 >mUH\y%cCK#@%O < +M.aW'DqIW+?}c:k+H\QsxoNc/U7ud47e 'SրN,LY*~,%T|iqN@dI~v?;nyG;=͋_4@#5#NOҩ9:jN/WoRs$8Lsn ]9g.$ҹ=xK͙pg߆Jz; [S% YIqw)|1;~1nk6R:~$]U=<E鋶ʑ@ > .}x&?v_*$y5ݮHU}J.$ OܤL{E*,I)P_iƳP(~PQb"H^]|11 +=sKʍq'0{Ll"K [jhE7Brcb{– N F'3"B*agQiCvܭ-,!Ŋ4"uN1d5>C\ t֑Nʅ!OFbz襤<^_*k7 +^m8yJHΕȫJYȫga RAW>]&6ҦJ<X7},zfŮ`zcCv/Nݢ|Wt:<[QjԺb|g=zezwv >ʆbՆRלl|qnqhUVSÎTzPͫEcyUV s`1T,>uGslR YxAVB8둿KJ6OHav)~II/uz敤wA$-K$iaȇKi$Le!i,Nb5EbB]|ry8{*Wg'=~8䪇ՀkiR>sAP||i=GH9e+`CEg`tQ\eX2I`lػ@Wn1L0n" t/[ɝmGX^XQ |(V8V哂rLl y"d3=[\.KK6y+6~ef)mLXۢLܒmRZ$k%!E&Z!QLGdJf4\#HQ0k,-tAO{"%^OM ŵnܖ<}FkҊd{@2JGOX]hBaN^9LjҒMU2Rʢw3E_|hVY֝fs"^vjg<|Ke!!|CD='hS}­PYtgNkkx +62nB0>F[ދp3 < '#R(>H-՝pO64O MՖRZh# #dfROoR2u(^>ݽJ#Ja/4E]tjRFUxGHD91d٧/ӧNٸsoN ",+M%{y f'0 +z>Γ/) +RfnV%*qs;(kP`@t +]QC2w|TU{/ oC1@Dw˸P-@8ʒAĘivFlӆ;f?7UY#ECBCghU贃>Цed0? ȓ v@;-|r䲓R?ЖC=,..BIJyzB c !!:n nhIL% +F Z +)vNGJJY?XQ*Z;SJ\.w+?z2}'YE9 +i| Δ}k']o·N߆El /)?$&Bu0+Ɋ6γ{} +>a*bOEg4SQh)5[XXT_-nFmLyNg mA@6Qc5%a-C2" XP$Y}J ʓ(HM s40xzˊ)o<: s >:l[#ܹyuN9 ?ɾܾopGn5n|} ۟ e9WR\!  ZˌvcܲǑg[ejnX@*7 "HIɧg#nmk50?on0YcO`By0V;tȬW| q5uddDyHFu +!rױ6{$pw$™W2-o l ;ENMcW1N1!cȀX<=OŦ[fO: Vv۝NRM?C)ۭ(u%fĚ3$fnÃ&Lɡr ~6o>[R7Eb{7G`Ȕt+9%WMAJ)i'O?XB/k;oՙ15nʞvk%),d4ˌI瓺OoSb^NV:r̍61o,6F[~Ǜ/wO1w4FQv*B'6Βcw!~ܻX:v=u 7~F;b[Ϻ9 N7{6ǬNB} ,&b|~y"oVǒJ%4$%ݠgg2h͆diiQB2ԏPiX[Ry"/k7pJ6kl*}uN% sdrp sP4{׬a[[BV$WyUkMQISCӎUb/hCa4%xaa8].tS’G`mR3sSSvsfj,<: gb.}fqü+P}RF7و;%mp7DZ(#M0g1h~0:;0Uoc%yS9[R~)K>M [y{f %س MX1G@ ~%o{MXB%u"y/]smD5yN^ =CbjMqM̛m+m=&SrFq$D, K 6O l-/Me~Fx0 hs'cڻR7BW9 պj޽z ˺j |9`[c p;^Rxދ8| @aKbMggs[]a3l繗}&rFP})v!JPDJb s+w̱rpg4R~DkwK-k 6O4ɥwKI^ǥgKX@RK=s)@v zaȁ.kr)XK!u_s ϧ򳂟Gb1:NuyBVR51IECy-(֚J@nl镣F2ۅ `R4)/N=$u5!Ke_pe`e'Y :Wb܃-'(ز AN"8@~7 |UuHnaSZ"Îv"o_䇧 wQ~Vs?E˞H}*<'֔~ ][3]VɁ +{T[(!sn.J:S!6,Z\2sf2_чI6bdsĜ`[@=5Kr#V<6p`ˬ0t2͊6Cy))*eoAƠȾ[!n +?=8`R n\ ,zTi J֯@>0K4au^ockUvLLaɘ`kR\O9#2nnBfK|,+Y yZ@FU=:TD`HJ6,;U==5vL rప h8Fnr>!f}P|xSo \d&q__%lN)dр:LE TC&q|@"A() p}aG= pAE1%*Lf@ +7<@`^x>*=?Ed +h_'ن9C" 3rP4P0]n/W+VmMn/Nn6O*۽*R9XQIV2._ <$訢{@"X +Ԃ .Bs?};"+iC4c;gW##⮶ '^Azn~~YagC24s1qEU,l=ja- }&} dzve)qA +ШO E9':dEi,3z:)x4 ZͼL$в() 2QJ6V;#/\=.\9 =垨+2&[X 5lE|^%y\o]/ 2'=bmYO[,!e.G`KE)pz3U*]=:b`%X̟N Y%fQxm ",̗ nCJC0b^7\@h,95L4>kkelw 9mAA|,7Bdʐ@=$A&ۛHzaaJpKNˮk^~e|õ/4ըRb+D#X _ 0sK + VbX ow,4FɢCIo`Sv*sM &׈έ-8(!p9Fw.4|X s@i4 7 >Op&v1҄/FbY5B~Y=dMD FF'wt~>O\'%y[R ^F)w bj<(-+I-6Vڙ~-B\3@)1ɧkݰ\QkfJc_،vѰ'7où [Ăt{AvSYT +ceuٶkt>k{۷rfp_kU DOaZ=fV֚1s'l6o'Sn/ + mji0 䫛t.PW8CFݡw+s jLGo3sʐQ]5s#kG,Na}Q`͓{X(}ɇ%.ClfA7t"d6&>@XJ>\`1 /;WJ/C|#0.x Լwf^Ϙ=,vg~r0`I}dgŦO˨^>:+ubwX쌰) 5nY|`;%,v*b c5]ȕp!&/ plgKf-d2Px E`! vװ +5b{Wdq{Ur{:F{jЊT"2Ё [_`XCh + CJ,xlDH$ɰ߲]Z2 <5QdO0mf`*,J*!ܕϨ\ֻP a -#aְҒap:ٺf7r3%9غ#ئX4 q?cfu~|^xQ`1a>VQ>9}+f NfÖy2A_[x ߈4ƸȵaNCΗB#as/8v?Zl;?a?yKt}(ߡE5<2}a5<.xZ]\d;]ig!~fs\ %]pO+3+6+A_Bw =Khrfrjz#JܞԴ= r{?`9 wz7!nu3%Նmb^<}Tzbnu!0ۗ艜'%]N;_n,y zR?)iotq̍]bY!e1I +.8\4 'HŰ&;yM`VMnIh|_lzZVP$aRO/ADlzߦ@Ҋ{=TX4kU|DmSR]qU,l6¨f>^!Z(Ǩfa0vlvk8:%$$!y<`.PsiUlϖ~{{7PTf: |1hV%酪Oi:[%!69z8$;KodI!혻dxxZn Q~-Z + 8Z£1{a9nUX4(|зP Qͩp+ßK+sq?y6S#  fyJ6 I-tM-[x_S~G~M'ʂFU;Wʵ;¥ +D$"L /p*\bVᒗUYYQr4VeLg)?ݴG>J{SVK ~G%x B͐$yG-2SD +* +}e Z5|gDrL Kb2aX ( G@k5E1r8e YRrhuVܟN HɵM[rB_ZVZ;gRv +vLtH:)IZrئXdFR#%P;8 :rY_J /' ('%Syh`)MV~Rcv^>/"/ĖQp1 m%Ƭƥm*)dtFKQyoõ}z-Q ѭ`[HyF-3J=FV]c^ඃWAs-V`+&trw-S%_1Y"_J#Mׂt88d.azM8Ş|w]Kh%%=haK3X|DUspYzͺ7Ğ/P,Ds\:lD!)R*=ɳ<_P2.B1N>x_ + S?߅3LP7XՌX8S+7,|j6DsS(g;d$xp1" 3aE v ⹜/%H}Q,`?H%? ƒ# }wa3$7^anV,,F~j=)y!tk ~uYi\uY6;.Gʹzٓ+./hiXZ|.˝F~w[ u'm<(ג~#6Ҧ@?F]"Z=edwZ9Ͷu|bAސ@{e:nx {y$I϶iT0yծaіn{‡^'H5}ē +} z .Fv+s[߷) QFȬ1>n~fIf/%ܬ0xf%AԪMS{C6[$ ߖO_xQ| "?eB܋V%++88Cd c̞̟W&B8i.DQ\ +4xQ$!6DS%üa͊,q  + -B|ڛp܂ @pZڃh<.LPB%)uoիI,bןŬ:1*bLS!V=%?!-5b 3^j8Ӳ"fAl&⛼!W}%t@6Q ( c aMO=-bT!$~@5hxW[1df=1eJ^I^3ampZIh)OJ☈{8J1|NF 'v sKOIOT)Q +BBP{U2q#5~D{3|F{ F%:Ird[/^ #oFc 1xf] ]I HDW H7葵}3jxfDRºdfH ˥rPŔHEvmH1($lEdA5s Ң7]ilG(slB75ʴxiI ڬO@k~aN(IKAߦͣed&ԷIf}TDZ%]D2TKnzE[e!J$l3c$w [u C"o3 +?avҲN]fC!T/`˘9.GM>qKj4RJz`S% VPl96AmuJeIXR-CY5JtQ>`G仗y emf6:ESnxikS"z!E#݉MK*[0Bd#t!>lK  WSS\W135f1MY4јEk>cnjc(%xZ%r"hM2)׉B{X %͚~G Vc Έ41NSwY߬(oV/ JsmDU?b;2[D⏔ 1jd#biiL8=wcQ"N! +LEfmDa"D6'Bl/sihmæAlWƸM(` F1&04R) Qi5kAԭQNY3 ,khM! cQvdY dfBPmѨܐ Q_WeB[#& al⚫a3!ƼL1k$*I1H0';-y75$qٳk]Y^Z2P}MX24\c? +U|\o4N׈\fa-l7mlgR܀e3!2x0b.aR[M d!I3̑@*\Zjĸ\l2/(LQMլ +I{8b ujS\HξKw.%U3",-72HRD\0RP8̄CXc&A |ohd@z7g=H&0N˄c?F$a rS&aLW勧%oBm\(d/ű#N`f&jBN(M:)^ʧKK(fI]3+gzJFex}Fm"PVE<\="@^v!}@Uk[<`GNLNʗD!o1<\̓܏1ָṷR: L4;uK>ϬOO(TȈ}\Z.i'= }ZNMR `&"01-wS68/ZQ%!~9V:Rҥ`b KN{`^ӊ,ݚHLS&n=BaLcЬ!5yT +9||',Ulcz +dĜsM9tJ`Rnn}»$ጰW xB;ݫ׶ Tؼcd~Ť*ܼL:Q.U{EA3 0&&E{(]QP7R6eS+4\ݐ$0 "׭ +<Ƀ1B/>{F zQz>Dχ7g>K>?M!^̓\ͅ BE?L,h:3a={隢m6 FXR]O, Κ\yuU)\HCDD)\:4Zl:pԮc6( -V۬LX!,|);ytλ-G͋ӄ1q*UCr|ߕOU҂Ǽsncg`a3Te +MzY}n,-4$Q)H"XȂ#I U .2u9;2-;t6jú5' lIJXBNQCpL=V|΍Wf߻26~@|*F@wZ` -9YZ{Q*ӡZxi1γ >=(S0Z' / I)DD͈``z4pu ƒK[C,{ѥ f:{mnvu.+Gd8\ 1 aY .qDU^痩DP0%RYtBao7?.@ȐKWG\"qL!I9.qͰOffdx{Z sY 8.GڰúZ+!UI2ȖfuR&Dں1L@3*Yc~7?J8S/bmOY6 Ӡ,*] y6"WY:nU\]$^P9AJ^ch=lRzâ{9Kp#i8e)VSXZhP|a3J4B1^f(m lbݤň 3Y4I +=s$xьjrU3j.3{5P/1>@T̐J'/O:*6#+.K͵' +Oz:7 =0+p>Ū!줊ہW3nyET+ +t ^B/RK=]kǣD,^YÐ7KrZp΢/Rڍx%hS,wf~ Պi#nyۊW\vad] :$x,o.\t RԙO JUu08t{"NuQlU1Ȑ)x& DYME|T F-"hB[G6K IJM0!꺬5z;V5ٌWK!]qe)ϑ n6FuHp_mH3ٔEؔmEx]Ζ "K,€S,!R[ |h#iqA=S~hd;W6TК'x[t?-$q I⏍N_ +~K9JZtۅBnr}qJtH>.q B5TUe<|hCTZ՚"#~bwtKb +_d =`aGʧUʐ%>ٸu539%@կ[g:,H>O YE)]#2@%Nf+Z *%.7{BE=S3=H>=|zhwS=&OϘɧ'\?&wFow:=nXp{iyXn>۞ThG3i%u%=4҉.s +"w5=%ȫ]3i/w%;4 +~﹣;i'VHB͵n,4N4%h楥KU:,al[f3w털xz yrC쁳Sr}|H2/$Gٖ$74'[zPplcygc!čd t|Za[K^,jbyA:sd&.\]D.tx<{!d\B۾7ELUy#uڕ2z>d?O;tݝ]d#-ܹ]m|ߜlW/[`Ñe;*=ur_?Çr>Y}ps+5uu昒 ~~gY ~~T_ج)g8i԰urY驸FXO?}f '_7&x7>.֕qCS;y'Ӓ8 wc3K\.8] ch척Yz=2`yH^mL{x{]]n۱9D-B@57.בYhQiCz,=%]K?$ +_uC# P#.5jvZ~vAQM,%3ꗏg'çba ƟkNY[Pw IB$cPu|zVJjk.~_[*xL[\[rWF,e猆ǏmX|]| UONkz5Z?xRֿV1ٮPb=Nqm,!^=o|(T+<_C])j_9z7 +d;O"*(ˢg&\.Y1Py0|l0jJ͕r:&]*~3q\ Yչjߩ֩V/(rrntAmlLIb Q>F2[q qЗq0W0! Qϼ\tV߃<E0{9hBğ'Et;v6/Jp5G34fM^緭v/-5!"ZPPXxwJ*=̇%jftJTJm{Owm[hx / hQQ /D"ͭ4׳it}xh^'"NInUce֬DI_jO%W-EӤEUDxW"+W?r zwvҟٔ&6\,Tz(AzUQz~=<)L[jZ^5z^5z^5sʫ/N1d!-}x4jFzSd-J.㚱*XPcf,D6yd G=ᣟ{]aI2[ J9nte!B]0{K|i; 5;n`Dip <ܣȺf[D.az̔77V%PH׭]l-r:F2G՝&,!x։,Zy^`Qx QЅ*ؼR \g ۭ"7cϋSYjmsl(egVЂ;zg֩Pׄh3Tn5ck7v +OI+N5[No%9 ?xN{j>xv4t*1#G R~p%ѣ@BBNnIIC>3Wn-O!/%P]^ "gM27B4H'\2 3l3kvǰevMFg%]n$t&=HEYS ^?)(5Z_Zr[1 +o/f:fM2 ^t̶YFO={J>(>0;M> g<qL6/6& uqp`Wm"$@W'\\Vy$hs"ZG&:B{h211ŷrX5}HZÑ64[*)t#3HǗarJq 9$#y)kcRxL +A8IszW\ؼݲǤsGwQewv ,i AMmmDc_4Lf?O.etg2ڎPr䛱`N%>!.DНwAg8zwV{i1 #KO \Lm֏3{fJ@:=n _=-GMkonm2wl5$א2-R-7 3;5ɚfE|6?r?XPYȨh%'}@TX:W +5!m`gܺi<4ذqZ]-t4,ù+g⽄- wl|~39uNnH َn bwmݖoD^f$i=Av;Ś{ӱ涸]<.%lCc# ;(g,s;d"v:f=Ь r{nNr$\.]`ܬ$ՊiJ9w^{ %dt<%v_Θ\ x4fBY{|7,{RyHJS/|5^%v[Dqּ˛K%zl$f[ȭ^枣E-o9/Cѽ_| ن$vw Γzn_ho(2[p.uɀnրNNQw(vRN5S +yWPũ]9'8[ϢK&|˗z"vF=:}Yo}>ު}IHxwIfmtgJCg*!e`A'EM?Bȼ^3`~5R:O5,mQ8>闭Vk|oޯSMф1C=@HX'vGQ]s J n}B2PB=0r@D$D'J +Y~O%=B[@9x62ZDR a_19wh +qZY QJQ]ܛUtxf +aš*{\v9vǰCyѩ;:i[&?k I%}T+ްq +u#\sp3SSu3F+z*Zۛ8Z1 jѶid& n3ۦFϗ葘dsjhoMh6d{ +tCVhI^J`eo_!2f2==y)9n .{%,C2+nvhI~ޤsY Ix69]tʒVy4il2۔]$%p~|K#Q7H/x&Kd%b4P:"/c22#]cA@5<#P슄-Kwx0sŸQUߴF|)t[z0,s'"$Q2}/dta^qM փV RVoQ(l˸1%W 1Sǎ gilF`N"xZYCq{Um/F'cZ1}vc|ɢ`H!7PABΐ ZX*BYP +u72o^ݢV2Kx4nϜO+uءR2qxKxZ`slƛEJx6)OHdN:\}]3NfҿVސ7ggz@7"BğX&,nꑮ\>$aT ^A h}#&8 Ŋg8WDs]V_9%swY{`>@>ǻo)?@s|7m[YɼM$1rLUS6}iXFS7_]jE͉lXm~bp/kXIG ~.4؀,Oi G"\$ AI""К=lg?ya_J9:t(HCyZ<'wcP=:LIhǯB/ܿ!}QKcs4ͺ-+!K S4[iv)gw*;^EwApWbWT}l$S :f?@T6boL+ʥɘֿɧɡ6F.Og%e63",‰LG$U@IK1.4m#/ԙnI%#Moe)ߩWDI.&Lu2Ei)=Lw3j~.lܒ2Ӗa%Q~{]$Q G>/,cQ0J!fW`0La4MSAI5!=o{ $?7a3}U(% xIĐF>G+ C 4x TvczP&)&۬B*[ *p%`NGi?4!+ev͗Ri-Kk +Hk)OZKQZKyZʓR5~g3?σb(U[Z-ݺZKBKR -E -u#`0;i)Z\9EE/DT &wRzZ[.KA5maM;Ud(2^!QMQԍCn zAkN;#gMc̾;l\Znx9 *fmrzm!$5&yXH|MH0IP1a^oYJX`}Saec9T`ܯRϱREirǘՖҒIL*o&-GIIJJeLL +c6igDQOؗ!ܗ\N/,Sj1_}bxB t*8YHj*bp$fA1#N 4D'[]ʏt0瘽%,X-me + }KjeAe BL (J +_5JBE})]z`Os8홬o3s<ƓlW14bi7P6"d48k|7tP땐g7pryTaרf%:d}:Q>Fu>c5^`/~.yCߩ3|,F-,rBWGBnf:嫟5>oy(l\98xu7%z;Sb6:ݒdX +xꨂ" ,a,a-%,;_²S/nыnUw#EF~*kG1kw.'fXyYŒ!ˆpvf]9}fe.rSH6aϏ1RW ux1fybIQ gzX2waw_2ߛO+}ًﭬ*HO[vpLI򅝎NUiN+(t Xf:X3 u"l_/]ew^ܘ=s_.W+P /ğ!o45,$rν6wewW4G;_w +yJ6_>݆SueKEr[ir[--v$mG ;nDI}vc tpۍ>֤˜0]nehFPR2biDL\bxvWS$d7(ͅ&f&$f@5X$%dKР=l[MԎk%a?.hSKw_^RyвL6c&Y& + X&3Ne${\% Y?A3kdKɄ)q&6S%ۊy^ pRN\uE0 +r38f)IVǔT qYEB7 +QW3?@<[Qx,rMKtI.=K1|pe?`sSK6~0ͷ,&ŲKcj5SSNe8 yשovKf^6\Cq8 +C8'3bh;$fl"y~kkSPU*x{7K7mDt27)϶2eR\udR9,#ib{ +w)OHB}RTfaK 0x9rfo_(2s{k.ODHӬ)ha=@p'$㻓7yt2rq?NN9A%:W @9A)xn! 3nw3S< ~sprWD30 37_V097x`sI=0Ix+eT/א_+)AȹKꁑĮF:u݃rbC}7Z;jaz |Er=vx\kZv{srÃiD 2e:ntFtx~8Rb]Qӯ|H^qxMo,1R a񗚔ϠM&1).E;A֭)!R٘-wRѬV4qT a;+]&(d(gzBl.-e<% L\BŞ!"Kxy u(e/" hLQT +홽X@1NiJ^# yw[,\"^a %^,~YqEM ̞4QrO_h Q'=/Dj[V0 +A3y q+dx@cAK=0YXsQ#S:pKH##Mӌܕk 6)~U|<)'^@+_#e+ōG_;"O%E"D~Zr\ ɪ!=j.:>-~&eV0z^=dh?8CTU2=2& +0Sf+VǸ ͩ*7}+IF%wOQKڀXkx͹\9-/e/{\TUo٢Kdt+ +RCl +ׇ - ]ϩQ ȳ/b<~g/SŨM: Qs-SO\zҢb{aRH Ğ緻(I6xǸ<{=G{tq<.qF܆6q{gK*Sdnݲvn3Vi',{TbG;QI9R!U\IFL(Zhh8sD(7epԣGyQm@*eet_?FT)/h6|w^h@? -HF sw2:6\wƭqFCZMPGF-41ss^m=9Olٟw0KaُgiP0\~=[1d񾑘W09"3v9O'Cw];D^1#0sm|0: w J 0sE(a3s`"nj[fg7 Oq(e`#MC22`TP&(@E8s'_?3?1jrGYN'?6a_|KFG|ƭ +A+"ԞpvI?<0jeOaHFO fE$#PpxȽD;髤kak#װ/|.]~ּ ~8lX0?]8E?[c[!t#`sfF{;g2 lD!(%ODM7AԜϊ-!mdm@x:4i<߬,;#Nh::HWA4$ {i Mk1f o^l wUh 4Phɥ)v%s6q<} $=/AaHlh8=,j[8D $8,Fr 8/25+ ٛ+U Y@AIc<xf1?|4eWntk_ȌiPn+Ի"hA 'g >jJ-*! }eXKC2J4{%k(h\Kb(pGhja~6󳉟sb1䂺C/N=0t17f; uIǐPwaGJ8>2pgyWbC;:iMkWhwEgt+z꽌reo(u,; o(كUYncJ>&O2q\8ged+œɃg >y'1 #j_[ & JB !!E(dҠ[@=Rk+5~#r϶LQEm2fDSzv} +OuVt>yw9D-?uOJIV8Нgw,୽GoN5(w@5frUUQH u\ 1卉 [y!ϕv݌Z؉FD@Bt)t{8j2nma iX!` B{]%Sn ?DMPBW=0u˓ f28He%Ѹh 6 \RӡsEܲv$N2yNQDd˪NERJt^0Hʳ,:!t${_nˣTYf(K4yPqtĴ`1H;¹f|w+$ δOC z*^~3 +Kd5?pC֞\`z-:f4!=]\IO,[vyky|ֶy#>fM&)N#욅LYW^fR]eGv-C5|>b +趰k@9fBYӘp#> C##r-ea׬\@ { (%jXhBkQ9u%皊 2B3yd!Z:L(Z4z2\ԩм9v+T *B'Y/`i!>|T,1A-ncWG:fԏ;*/%G0 +y\{\=n$GK~viS#.~0`m [s +Z ",Ls/W]-}vnE5zbԸ)FNz`ϐi \I- 7*Ro"ŁJlZbv:, ǘ|Y\R7qFeD:vQ\,&D,T'!qfk$R|Uj1tT%CzD zZlxzo(|V]Vbhh VNGj7O_ÖrZf-%DD =h(g+uoV i'Ƕ1>ŭIՁD( 䫯H xy,vFHAVa&ߛ7X,%[wI:3j<1.Y.3K6ܑ:=!w#߾ev)mLY[-SVVy(vyIVf0d\VDMb_r욙eOh Ab{aV X^Ȭ\T bQdhд`[\KFMm9gRaK+72rx6"V^8,c/Յ f ])a xpWoZzv_|* +.ʏ}'0p?ܽm5s޺{׬X2N,KwvV:#ڧk/>^$y )r(Km#}3{qsjK=za8ỳSOPh9nt-^'zҩvk'T8*4QS{/;S i(tEK!t[=pד0tB1nI\EVM[Ĝp>]IB՝$%UJh66M+6#߲L'uҎ:lH /l#W[{' " E'2{E{",LHg#MȐ_z' +c:zzaz9dm',9.t*a.:_|/ :aKBK,L?8/D}SB|B;R#W̋ |D ^PN/xqg={מby,Ed>rpo|n[;9Wz6#@~Uߦn %" L=~gٿͳ,or&}vM'YVW;2;v1 +9efe2c/ R͕yM~n9]aNQ^阃|.HoHґ8UCD|l*ΎhbW<Ъ-K0(H$^}"%RӋ 1eu5M:d D(-LSNq* ՅPC%1*Y-gI<M# ,㭢,ԅ)h`2Yexs%L1:b?*tKOyuEJۘ +?^4H4B')4Kl;Q#R@ 6*KՓ*y]2{깎'/T6$oHRƼ  Ř 3m$Mhe*N0%ttw#D&E8+6%T>Q /=cs'șl_Z7(9S*ܫn}$ +^BP,G(4 1n]m(ܠm*Di(؂_`%\A: sw8x쒜%_!F !S2m}-Bf^1 {G#$B}b/#fF وs1$Fv)z<E0.2^8`^FH='Fϥ[χ\E-ߺZ Iuͨj*FXeT`՞[ +;%խa9 lfjBQ?[~ɫvE Aœ(^>U"WikLӽR5ӝZ Ɍ0fM?9W0 Z̈́$aC(B3~*mhK/j1^6sʧzۛAFI73u0\ dFȲ-,fag0*Y1H|PVRZT3ybWna>%J#\',ӹKUaPwF.ۊ~|qsq&4 &AA<N=0JA=YRՑ11,C p(vU^L2#4b1*&Ę讆+ r/ c+Q_>VH㪺P?-u 8k^WpQpK3+3KKTI8%SGaۿ:e6_+ Z4/U]h*◩0OafGUMGŃͱ(ZTTF 0* +}֛bYTOPQ-H`y-S|RjubVUf[A(Q%\&flť\񑯪6p_5ϽC>}$#ѧ+sheP29ˆ9IMsӫ^a 9nuD3#RhNQ$z$95l!wL33ak>"[q(pVHՔ[z(.N;խyYQnmYOBw8-AmouJvSzm ֒ /2v b:ׄÊ5}\ ?΂f={1|f gy0)1s^J55n՚:,v*뜞V3Y7)S.1spY,0(̘hK͊7*ӫ)dKos^8YUf'z&ʧM~ sUUJĚlaD>wO !8$͛#d~ay KŐeV + +6bWֽ8+C*,TKMbiy^ /&ImsSK[ ',}7kP#(f$&xr[y2-(3.'T,08ІnK2B"N$'V>8qsqBHDC'/OTvFbE5dN ny ߔ3r{arWPm6l5D]s?҅qS}+ 7Bf +"pke_:bwDkM2AiLn˧5|L0-TvДjnra nӋK++gǕMC͛F9{NuSImc$n.df?{o>{u*ozxrAن NwBnm/g/l?r>gFoa +tcltfvKY=oX~E]=y|,}>rYҝw7ss5u'~<`,7{l`w碡g'W:'w%'fMGJ7N~n `g=n 3}_qx<0<`ᝇʻ'ЉͳX$2gW6oW[7_Uh NHlD|?lrM#`ӪlgI+s>a܊ϯ|sx>Vb~yӧl~s{Prl3񐆕76!%# ̛EaKX WWTKo;?߼ܠy1gA^-X9ؿ10w;?w }d/q<6韾g\Zu'9ҁ~A?acnO]~fׯ_|-J`~[vKkkO?hkef[ޟy$,_sϴlϯ^?+ł\??_Miߝ6j^&2'{>MYyF5=좙Ǖa?GfcU= r.5M'6O[gn}$cƍ$V1ڦճ~v{Hf '67lN +MsȔ zulڰߺ5{_lj>w fχ/msYbwKIw7O˳2 +Op'95SIV9NHL(;Dߋ|,VQ[?oDz_3kʲ"U"լVv3ͯfosMrOg'9[bg̱Om]3䮔 J +z>T3~#<||K/KG{78?|-dd}Ȍ}&m~Qf3:_rsݲ[vkr\*4Of-͗rK7͓Sr9KNUةuST:UNނ;v~\3!gyt +LOΟ&5&̱fK_?Pحskݲs*׭ŸSenǝY6VluG!-V;SN[qS~ҩ>Q_c7cG; +T_̟UuGPuokP[9/Le ;BrjzmS>aO'ݭg!su!wWٙ9D9I†̉kacNmG +ֻ 4r*SޖN]3g} J8s}-)]=ʡ;+vh[fcezdCRIu6Jܷɭn<[e17{خ]vۈEܬWo\Ujj2SYGͮVmm+U~-@^X_b4ǎ+nm[-})#\ש>h(ש?[y4ʢy;8:[TG=ua3gr3}ӑcf"|BA*Ӽw[5LCޡ_+sf_22si̡`~yzyo8iÉD?[39"0+t̸=ҷhgiy%rQ/ZQ}żs>s@gkQ˒Wl1~+cY^JsNkk_22l=CW+HV[!rT'@c/|zDw׿[26Oi(Cd{0 謽sO/Cyᷖ2WQu{]ע?"Jж)[V((tJ6]~LZZX2|#~'Hilfzlv-Az}SzfvyM͊|Hoz@zwWb~ۗgzK> l#9Jf|<۽NeC[MWʳCrn[Vlh-*N9kS_kΡ7-pܔnF_7}] 9сtKm(ȼoMƵCN1!/Z'y%ѓ+ 3_}50tZr5v"mmw|:gBka,g'maF< Ȗo_OX>fy{#xz&bjo<( _I sw¥,T$,k0I2t <c;|o.u գ֣Kr 'A}5(<JzZI/ń[if/%Ё 6t*똓uhшmmMPuуf: wcy"~FiL_Cg2WBXzr m3ȍnj+C`'2j3h%aQcngF+86œ3KRs,3>1`.??Ü f~fI7R!/ZjQe ӯ "K8D|3طp?ĄX*/[43suY n! j~s;?g-d/'?~mdFBRW %&Y*K`GsZգuW[E[ac(n MOcK`ďu{,P!"vkOȉgr:Y +[ W\a[ {\A.:oaSx1 4oe= 0tv ?1=#s^{ X'V@"mR1xuM08$LױXxj !79eW'^|Au"@̢Μīm5:&+d.j竸Wg::f4/wC^m^")rgVsNp4>e`𬓫p=GDl#fa~}iUk{{5[%%u{=%܋3Ϭ^[U"nzةV ҨYQTrkPcTߕ9&;ɔg ܐ +oك5졛Ϯh/bth(8K +[u<-\ezf/g^66/b~9GwmXТh5yfSF~C5DNK|F.~%rnű.x‹y(k 甽}z(EJdpo>׌ep?}3w[o08L)GwΣcp [`pb2JZ@d/>c;ȥ'KsT__t?H΄t{h$a{ Nܑⱃ96:Q -[[ojq)Ma r!F^={ +*lu)Ma+q\C??=3wܙ,ׄoݚ[K¦ULCُdںW뇭|G9TV8UnY[C܊B&:o9*ǭcz DUEa55;,ZS9Z1oMv%g&iNK{ΘZ" E/Q0_#WL9!w׵S>@!2\o\tNIg>ǕG;3Kf͚v 3L1-?S~-ȼwl>tS~LoQ,PfY'K"7Kisܹf>;'{QuT+<,̅f!&MpHclnE;LMw]]lWv6)JQtj-Zt6]X$!²a}׫_%(Eyb,SُV+t[cF2=+\,TULnvk9oǗe2>:jP6#7ΑW2.?>n~tgH1T*Zh ̈́\ㄤBR9H)ڼڔeg[^ϱ +S}PGl~ɓ?`dlHs PѴ_X +C5 fUȺd:pnk b->M%TdqШ#\uy e PR9DgDIŗ v4(dqhQFY-0 +z#P0~dqT")' +HNVMOXQ!#;xMj;v;Mx̶Rݽc&Cp) O4} ;:}"\:u0~_zSҧoHs :\B]KQ(6KgDz;OD:[0dz0zj fG+Ti0<R:D:trW\Z:'M{.!RST/z; +C I]]n׳+€<` /igXXɭ1GI&\2.l_Ma܁ \0U,VI5^x? rﶏtl~?GIߩ7Ԙ ?.@ntKF Jy`ѠuC*9Z x ^=VosWۀALpg?~")`#{zY&mBDXT+3A:3Њ,g Qհ Si[PٚJAVKMQyqZ.:!a׌d.=[2fBN;tqvAtIw:6~^"bɺ"/ɀ8nG*~"YvR3b):**%(Y?EJΜ ^ⷽ"^_ʆ`Ƃ|mԂrCcfj*ܐ$%ת}vn00fLeFޭ AԠd,IHX:e Iɻw~g A=;&OvqB[yn8M3p͆#plƊOXePsӵǀ.LV/۱w_ȁ`?٧.?ɽ.B3{͛V|߃ߡmX3K;`dpǸ;<)-FG]KЀ4H?3Rxj=pB%;8@I4pSyt_SVP?O( ۩ ~B3|U$Ю+A˕B3uXa>@F4'x2m w8iŊ FM w_UK~+|u&xὢEF.>&n9VvD&u ܴ%]{G`Zrr@bgM v[P8Y:g}80@FG.IN 8(ѐBAcGK֔PT2zn%۩ЅMѡtOe}[=]\^K+C.?3s,(-EK(f Q8L=^,nנ[\tN?V=X|𽧁`ϬKCeխeg*9 cOvفQ ʺЦ:"KqYfhъ%DsmmۜV@G(НStKORix.㮁8z):gO3ʍoЛMoȞpdGnr#Kqn_ +Pzޗt n:VFǜy XÕvM*dv,G9aZɜ JF)^_+?xngQKiBɻP " +hWpR덿~\$H0wl`uug0s3&Ct";%:A9M_M5-#R E,kc F:Щ?٠d{IU.P]PTHrwy$'ۖus^ 2OrȓiWZѬ]{\}W!Hy dاt 87M"B ƢÚ>}OwLqkHcD_=b_- Qq+L(nK(P5n\}kN3YRb".ڡe}S*7Fs`VpM#Zuq?\B$WG$ WߔU2Wd:f] =k ^X4G!1P3%薖FkGVRFt:Uex'D-Of:7:M-s 8VkIԥ< pK&f]i qcERrw 2{k:@4a +&a ޺D;_˹p X*!|hʺ"kݣfyYUzf"񜌳3QYS }'ߙ1Sa73D>T  WI2 )c&B 1"`W]4'zT߰Ϙ$ G3?_?_qcJ&5J$.-}2;Nf}ӽv\}$Ŋ9gjl>\Ś6 _5.,!-bI`!G-=|oi㹸/^9F)&;&mn>ɤ9am$sB$6ٯ Ʈ&~~<ɟ?ޗI&,.Y9)fEҶ| 222I%I/x-i\t^Y`7cI !!Y"NڪsCAT9g^2; hh4׼P9.J<oT9w@}FzU +\x@rdT2$F5\g KI9?akࣺ;F 3N{5iIk-EfxYm^z0m,ݵ[S% MZX#d5¡DJ$ CO bK{ιw߼7#N?4>9瞏 .[gB=4(|TAQJ:7S) ԀЛ*j X.8@`5(c=;MgNDI:^΢Kh+e6lye6<4.{U.ԙ6'h/v\؇ @Ѳ2(d?7u H^G0_;d[X \IAHChOiT5;[?<d_(fqDr{(W3f,{eFPHYY߲|=GP단4HCwrUZnlC)- yQO!M4-c3zg`sc_ 8U@J|oA~3%fJT7zÔ)7So&o~77177&mL77Yo3 2FC5|o&oM7z=I':hqbsoր`Ξ;xMop^9z{Ό. x oto3ff*)7I=ɔ)7̫L 3 C +F9+0C + ۤ|$:h*fCb鉸W74VhݨfFFm9B,YHD֧L/?mЯac;(X[ō. +U6̙J0g + L%3Kss;3e0g`/8 +n`,̙J0g-f,i)3`V"_y\C^sf;8u吙!3SBf&Afު8Mx T]\φˮ"m2uß4&2ӆLC\66\?A,`e|*J~;<1YEJqi;zAzVil[izfQ~O;/ /eNϘ"a9{-܌qKL*z?'sюg ͒`x1BMD9~F:_iބMzx槧*Xf]١&}~=M3OSoDbӇ˧|Eޛ@luJ k 󫜄Z+xyys_P&O s\Z '-~nAu$h/BtyXvϜg<P&}j%3j-7gT>@t*;b(ao; ll,.,){JG%ilߠ6* SVGǡڼ<6&̺=. =Pb@(9']|d%<4dN +,).mD +\GS<=oΪ2NɊ6٫v+NZ7%笨x iV dKa=Vhh;f;0ɲ,+ ֔e3O S.,L>uyZ6un-\D(b&VL~sطv}Dr. +,1`("<TgN{Kmh^TULE1?^-؁ +ReNG0wNEȐzL ܒ +6r{/S"y M{{sM k +sZ yo_injapb#sVdpw<^0(a|!0(a|!wP#}wP__0dw0dSe|!{+)AqK pR;)E; 5aC; + %axƵ̐zˆ;W0|Aѳߏ?(*rGϒ[ڒ 3ad OLd 1ww^ݨY0 +<0e,sa2XAC`~0KF!cƂ›w +#3 +v + +#}B<-C}Σ@!1'ziX1)c +{n_| Kē/Dl7`FGrMp/zdj?_V1U"^!b8&/(͸_ rƌ/p)[\/luk*%Wu1$B:CUZ.9<w2i48CX̛>!&Q&tqęH#'%ЛD'iZNn +U (0 LSdLڴdX z+L!3^*@J]Ln'T%;Ff0 ;aKU]"vndq|W(B:-N%c!u{ o/yOf)hdF!'4-\G- +A<}>K4bNjSoO_s"4*Ƚp XF¹Zd$ WF( uY6HYo8xAҼ;Kv~¡\F[qPK%ݣ"RA5,%BOҼK'7M~ժ+,€' p+W`m/pxI/́ه)4ɁهB?́<r8;|@h ƻ( rQ0lwXX;aѿ0Qh9\.Q +{ +1`H828qyk\ 2 yag 8Y*J=ǧN:t!T +JcO>RHODE[ӲZvޚa+OxDf ;`ÃuwuOˬW=_{T)N$e=`he{M8e=Ϋ¥p֏&;yiK^$ D $_+RYLҩPˡ=˨ /IŘ}΂*)9150da1%0&#1wW^gD%|[*&- ŀAA,|lzC+C3(C~QJ\w%$]sqj}]j^ݧjS4)h0` &gyp~{t%?Y>lEOTZU%k|]}I2 cN 9pM8“ E1$]~.g|ȣ4+kGt +(`C"`D:*;i-]#VQm=:}Xr$EW\S-'fIeuHVN￷xT3~="#[eи{2- RhWHR4m2d#wI@삋ٴZQAĀwB~;8ü 2/m) +deh v!+8-uX%2uR[,@Z b@ +]RR{Az4Z^NшEjmE{!w-!GD?$*59a|ښ Ș)讫_h5|]GJ*/]u9oMj-Ӭ-6vҊpWj^zk^g ˕&-,i~R]YT"}zS'>/ id]ՇSuD&CNhWmU4li6[,&.ODo{)$+$/Ϝ;5~sĪniv&B <̵[T=K6ܙ[9YQWrcnl2kSQw~Ӷ7T]0V';(tTOwczoVO7t]:W9nNwc=%Zzs[aqʪѣBL_9~E-Q77kf^]ar5UT+SW&W_/3%~eU삺W_^ta1PVwǨjTKZ:2+&YtA{!Vbez!VbYRx4X+%bN%Dq#UߓHY'dkN.Si^-lYdje /1 +%ye*AiYf RiUR^F,ʻN.SʝZb$B)N1\:N)հpqJ+N1qi̦pٴ\fE ?+ţ""Zn{`TV́# d2b2N)`T+PLr6ZĨL 2 ¨VADAsRݖ&Ul,)[v p+=/ԋ%~-ʜRۯCzUUM]]վ/MkGd۫Jw2J*ګWCM߻\UZ׼=rǯ/T B? *i_/.;R%_>-šO{SO[Oi]J8P+RD)'%?d}?DMESNt;kdH3GNUStdDѣ"-/ -u|V-[NMeD'[N9/O=sz''@O~SEdy-EGO3L<!Yk0cDА<z4|V|?l,+YK n찫jc=XMy TúvH!qi|S2jQΣa'[e\#غNl(Bî,(_UMNsHV yq nPhpG!K+cN~ .͏"GɏH1~D?@U w_t,_ЧZ%ϱh_Q(RzADQ'.HZ1/tNJxϟVKnLBqM1F_S%uj)U[4TgX6 Uk/SYfg'jR^ff럟*׬ε_X.fcc,1*M,zZݎ=nzeA9{Ƙ+5B6x3WT${ocHWdOuE|+bWn !?M 6}jE U |6UA _ F9&}۲rN iQ;wYL6ج#r!۫f]VjZKdL6 Ȇ VN+ M>GoV}nwU=QF_r(@B)jsoƱf#^ɺ +ɱ)_Ns3qARjS*&72Ng@hp]aaP:3A8;S 6GiCTW[6{<]Z%AU6m;S+t\٠1Ϻy邱vYc61oS9pP>RWJyЍ~i1ح:J%< }lAjL%|\qA!`ͲTZU^;eIy%^y׿a:uhGׯ0TMZUqu^)ٷ +IZJy-b +N$k%=[mC9]_ZYK7Z}zJe RqcB+ (_@q"_`}j.|Zxz{* <_`|)_@|ƋɊ4eCVdϪÑ/0D| /P+0MVxWyswoa. +򮔢'XDX%6@}r5vT@Ê˝ Q\nE |R +WrEr]ՁH2LnxUFqFRN#1TT0B^ݼE/"N^D\UmrVb@=A Y 'bL )\ċSC +Bk!C Mi0`! EC 0Rf!L(Q&DB`:E[: %mпwVyV%$%)ЁSTֵ(n:ƉN9V9]x8t+ +9);)TQ~'[QbV@؀نBV_ǝZuwlҬ ;cD9֛i?9tXX۾_LZCS(Ө _]=|v*r~ɶ~KdéåM7T~Ȋ2X3S! )uW NHF[#4W-msҶ8ՠIj WIgu Yk + +~L#,‹u+f{dRk5[.^=z4Ջ.T{Q=R'ՋF栺_a:0 Qpg/~¹3^32΄KxHm(v؁:}e\ +}WT?6IE՛MTT}]repQ6DԊעN-W=m[kMWEgRsΊ OLJ=V}Ja[=WFz0d#z*t*V6,im_* +C4Sey~.KC4v͋(̫>|}~3_$X3v7buc5*x5f*HTayUS1x*‚Of^Qiؕz7ӄw.jQAVmYG!֌2fOwS+p[?8z"//6?kW:]v{]eXy50(ҋ)֧:_:㈳?|M+ץeg-KʾtN~.弄 [k:ex&/ 3&DiQ˵7{=*nw|rF(xU**z`,ZBz9(+d!Bb;jIl"Kg pq% f%\zB"6n!N墊kזd ';Of\׆Jғ̂>0kD-O=PF >1k~2''T&*u"޳u&l{UT1m1J: =fV*Ԡe)VS9>8S*眇R\*SdSoNLǧAñdѲjg>erF*40(9S(n{H#Nv!Nu44H:* +v_kD>#pk(A7Ra5ZNg tF +V"KҢ -X0%\.sineąPuU벌&S5R̄ sЯ@??l Y +Z`~y+PfPeZBՋBBm YlQc=BBՅ-<Ů@zD]T)}mu{ڂ'[X *-_Ǩz6 OpE܈*zN_HS{BpG`i4hV ~.ݹrKo);<śyox3oIx3/<ٷ71:Ff:p?_=F?dN͘.^=L +6lqw&K7F:z.MڍH8txڅɃͼuͼle`3oO6"ؤktur6//#2̗6f^İ@^1nAq >z2n^2gg4 wagy=~ -ß." (Gʉ1C! O8zUc-.~?gOϟJ=GWFz6ٮ -fo5\55 hǢ@ϣ~oS*WPuw*(yŸs3`}`C|mP]|88"p)]ß;6zwC8s8gnOKH{v==F$ +//"^(KќXd9"^>7ެx\zzC\̭4~b +Y gOaHw)8 +iD~!ʚl.xapk$ض6OCZ*UuMo6ҫ UHuPvIa..I[ sFפ,sĘo$)?!6p +>PUſy{픯Zo'K8O0.GGނE1Ϲp^hp':ڡ 8/Wk |mpkG\ݞ+IQVRɶbT +X.yؚ"ruf-\݄e"Wf7_brMa8:% (:Zdxf2^tz$B#Zlf~hRW,khK@Wǵ7|GͼaȠ;/n:I.xg>woeWmPm8ooC߆-JPm Đ7=F)6tOn5Ȝ鈚?;c M}O, o83y8jlv_%4Q!2QPG@QL74Á? +NF4 ;@B} j +4 i0BPb3aC bQU E1ǿ(j0Dq.=\ N4ȡSA"Wʩ9Kބrq^.jr +I$ 0wqyyD)dCw1d\JdsCx/k hx +x=0AJ} #_5Xڭj"+լ"Y) $OM$g-Q=>hs.M!ԥCHj*NKPm2?D;Ƅ 08@`M[ r~tIh8(U; 0&'>eKl >|ʏGx䣗VX?If57a)JF/sf<K2OMe8T3GzIS_~RHtz%ye<+zq/' ӕB/<4B}xHnx^=svF#izy^Rex|=Rթ}b`Gh7qzQdABAj z=|㲷5~qGq㻗7#bO=ǿA൝3Vs<2xG&/3<̃gCφ +x6&& S{,vU~-z>t:~lU߃a3ZZZx[ձ_߫x4v}YOhRXxK?\U/m4߶xa ҍT?Wa}5%٪zbT96lR> Ubx^ӏ\cRH7&f5U0l9pdP2qGYlD;1 8>ƠE3 &Vxϐ5U}lQ|d;^Zգm,Ģ},ޔ<[#oAh_#zUX!_^[VΎ KjڶߔIjW뢇kgE[kWjv+u˴h׆ðDWlfϙqd* ǀe;+OO@+LԜюX:ֆ5T,OXTv73>.<n OaAcM,vHԎ!@/?COM0XIM>[ڱڛ9+ C+jo'cE3+}uˑȺN*&/wqoU_+?Z_N뫏EУM=|Bf,,W_WI +2.֔ ޵;XG4qH'nc)XAśX젞hWX Mo¢a]q2}u !گ Ka@ژPݪX'\n(/`{V\t;5ovʴ.XM`I13hgD8tFhZp7DC *A-zeWԗ~m٨ͻQ_ ҿ>Nu%=2C ڲ۵9Z7t/4%Y&+$ߏjkDp-^[7 +#7C/mV52Ȩ]꟤+d1`lP.g+נ.*.i-zWXǟlb/>mV7mGV'{>|K']k~ +O{$5ZzPY}E+y_~i/JnV~Zi%JrHW:ޯE;:?Ov9|EaWEL.+ +$ (phWrg(La~dи8Oj,hNkO׌$ǵm7P4e~7[gno扪oJ}k0MɌjlLVAX"C.X%QDQc0() =% +8Mx^?*pjk [Vcn{6EqC{FS?D@08J@r=1+w_TV= +T?L֌jmp >B5ySԌlyݬdkymǑ&d ˱0ơ'1D씞p)pJ=@SCSѣU?Ɵy=V3ÑL.\;.p TXes}GnZY{~!)׻㣩| +`#'uڙа>!vzy iIඣ ,r:%1X=rg쓁aV:?jgR [8kv[b]A r(Y3WKw[?fFۺU?|Wua{ekr IE¶KbE$%h|"6]$&v+Q>~*2p],@Հ̀O-OQ? +$uHd 9 ,1]ǖԜ +4|q÷4k#Eb$xUfRaTu@`+@H`G3@m Gnh%|ێG~H3Uv{葍$VI&W!EnBMbC qg` Io}=2FGY# ̖Qer`> HA +Co08+&ԶK"KJ}g\e*zd8̀Ⱦj2@~Lf>e8ù?( -qjE-[dh&_+ONoo0Fȋ?*UP"(p 2ozv@-\j;xD18䄶u1 UihIbdKC]s\ oy?z5ar]`ym[XsI,RdG=";G'b##O}~[L)(QbtA D 9רi/> ]QG L/}Bz# բ+Kɖ pm@LD>şl;$6U85TtIs,w+aXהHESAw&&Pa|*+@d?p:8po`:DDG$:e.Jo닁E[*Ï*`yH |)T~/ cȥPJ\%]_l{/rq:3Ĺg ~sBV Ȕ,|sI"Rs# ,W>.켈#Ox%$}/!h Lzf/(1|߾p[>#|p@?6?N:;,CR>A';Er:֧?sGˀs~ tPP UF ZdX(X.9#^Ї5}- +eH\@xn# zwnW|# :EKAy͇A΢s +)\h c+v=ZB_$.|YDaھ ;ۣx=:џSO ܹ#ؕ|~Oc .gw7T]Y$LceSM_ff׷5[r 5z"EAkBu/WuT>rHUW] %#E[`-z8o$>!k],6T箇c=\w^U.@'QcdO;qgb$@ v|CKTrH lS~hm(8&6f>*>y-^N&ptw|&} K,r2 +!5&e! :^"aX:>0ś{ ExE!}r# aQ·v ^MPRg?yAj 'O}.vwzM?A05}UCN< Et3TS>=jBp +qO4,цh6jmDDlD3|[UigZI2}p {7crpi+6o#He_>.PMw(ʢ{C,>mbhϸ89:!,{Ji C:!%y +uL hq\Ш2gsxؓsd54)~G<.D8ϱۗΟApctG:*>8"[?WD&1/&L<5ʜ*=y??B;jVӂy ,f@M0Ec@}Cc,ާe>o>NFPh}^Z~WjkQxn ̙?A/Z??"'.`̅;BPDHD|[AGb~ ׁQ[av5Kl5w'*r(  A>Is}m_xn`qwZE'M"Eb&0cE7lhZO2O ٱ/ 2x->W x +^myP?$OwXtO | i  +;R<sHsgܙ&?p<|ߙ8N&KTqŁ\6&\3~sYNYh,|@n@ +t: `:R LsJH &V;&9;׋eOxX )BP[я@7j])$&%eGm + 18e|h4 ͹; a-N B CTۇ`O;} +oײD`e6[Z–/:X،䫑\X epofjVbLեRϣׯW;`DM~ũ7BHJHk84_4ފ3yZ׋1.r kovˆLPU~fbC{t9rzUWLF|nV|r+iV5҇8J&8<H׺) E0zlE]$mP~(QBf`zxeG7gJ]ly@o>Sx[֛J=F Ε'j>@)5a׬Qnя.l9̏ݡ[04,ؘ=j|"9KnH>>A-/ v/.i:8/Ӽȱ .0?_FVSoލclE]UBQ0QYف8F@T Y36Rc&33K$43èkr^_FtXE= U4u|P\%:6[1b&|ww#f>8B{>wOzqwĒPך~-? Ņ>Ia?/G]J^*ڵk a H:†,e8Dd\f`~[KU#;fØj(@̿np2 ~j.oOLZ˨'Q5pLOz4 +~{H]Ie$X#~w^Sbx5qQhǴqN':=J}S4ߌl}=K=KGU4Q?X#>\h?I³aI|ۃEP#CZg2 }l1ȇ^|Ce@͡e]G;|.I> J2ԏCk[&$]ZtdxQjxHxS:85Er GʮEv-*su \i,Wkp'Iڟ%IއX[)X"إHt(C ϑ~m7M 9%`퓥+S~LXzXPV}}ȑBҲвz7P!AuRdCUڂa+ʬ_$C;}7tݡ׾kt6vfps}.b9dT%^ {lX_rwG0~4@TK^sWAnc~k;O][WG~Ed3NB([0 &Y",yL ez^_[r~KpJ@ +zlab %YRxtG7dG>9T?ހ/{/&OR"l;>eCx%*1AInϗ/Ò, xGG_ذ45Ha!xϠ¹ε1M*Rށ49o!Z~d+vtU)㿹FN'́(@"Ŗ-8hC5!$$*OqZkJimr/}#3$EDV,W5xy)Iu1mP[~eBgs.?ҝC7یW/?#}E%&Tzke*npR7J\Bt)D~J݃Dnl,K?Qxs~իyyE`ۉ."Țd^[ҷZk_t)L޳DaoEL5q8$NnJx~@^\r_"`+h{/zP9815ܟ .L]}+_q?mLZN$mNLJ aFӧbf+6qرO^"Mð/b{nwsX\ͮwL,ߦ}nWZXHnk=7Nl⪻90qvu~ߑ&__u(vAZܔ}qEmï޼1P(~;rr_ ĨI!t [17:-'ˋt++b&9dE*9-I(uې:!304;AwM4uG;АyGF͙}T'y ҝoTwBzέF$ڛ%TWVv}&~ZȾPDyFEe v9V8.ë0BXo}[w3Sv&e#G5&9{@&F{?<s +=I˹0|&Lj \`XԞ1hgQ176^Iu&껻Qiŏpttn^1 0Z8߫ C*Wm2|/"Jp;%ʍp'[\D]ƩXs8n.\Kw?%Y=eb+!phUwAE#0?Z¯3cG"1!Rρ"ԣ@9 y/#R^F"Nk&xK}DEŏoVho9zXV9 nJԕOj"?E"\wDƟta:!7N?YOrg]Y{,,\'uף+q H/TlNHb}bÙs;ub b$EfHJ0U}=~A8FO`7t <.C^ t3 <>dQi>D&H{DaȚ<&"hl4X?p^  ?~|XMs;h-_1oן@8CE2ڝKqYx`itx^u&s_tϧ2,WؘCw#mEsw?}D+1g9gu%InQ||HƊ-B9n_BX p2mEA,zw:d Cw:h|z@^ NJ`efpUc7$ArH2m/N+ ag + V^|+g[Ы!Wκ67x2(B[]qw +7[bX~Bbmhx&z}[%~DE`QRM;#&ٰA($_X4DEpf|.yIt(,Tt_a$CBDL;7^հg2n W{Fj\WQ\մ0zȃIL6u `/<9r?[7 +HoA]/kDb+"\6;wѸ'Z~Ivrhf#iMO^yۜV9ϩN&|vFdG ɄĎ'VĎs=Q퓕76ɽn/A{;cW{Gx5]RFD@n3 lǻ9?^~Ym]Od2YJw">~8' K"MG9_ gtIo%KOyoڊ2I;v8W~ +'(YZgf,ؿL)tsK,j1GP4sFNw2_9LeMpcɦ 6ulA 7!Jߵcf[HpEY-#Z>-?MpYP ϬI>pMn>/i拄뗕OFIGo+ݤ~nD8$>.r{*5!$ʖh5؀l!b硎gCI CNѪs I(OP:Wn.܀/֥/uojJQpYI.!L1 HI>VՑH Ӆ`zW#AL$:fj{cR:&Fc4"P~EQV@Ø0( s 0x33P7{*_1a5(xYv{ӨGkd޿ +hB;jK0Ԕ [9" h!# cH^/-^.ge5 @`r&^r>Bڤ +a\j$" zȖ;8Ge dpYX9?o^Z_}E4^8x۶ ̺"-TS$JHtHpã +wszPtR9/ZiUWH \RvB01Gclmd +}S循8L22t91oԭS>S!qtfo;0TnK|Jꉮ[8N56O O[-,3-ԋ?{ϴw >`_x[ݏ8G,nG?\͓a+XFϊ4B[E^ew++ n;?x>/\^MͷoW?">zL,s}Rz(d%⟶M7`r%[Hz>x~!FFmo/:Ʊ^(1ǧٶ| #wޏcOFx  XVXF m#2db6@#g'Z,oBׯ?b}Y߳d3l &d/";~;D030O&ۑ`ۼW9;@_ޅxoN]H]@~o0<#@+68 X~p©A}̫~նᗏRuח;BL6 +H9E<@k&A;>#H].6<7SRCNf;XKXKxGo8f֖#Dp;&:X=%^2Tu|#)!b1SC7:"/ˆ ͇<}@| :}0:]^,rU_|zdlZv|*]RXs`sey3q (c;Ѣ?4j{#{ͧh3U_`ݯ;7k%6nbQ,GVHu٣ɐF rt +;z>¯AbV|UA fUȇYUì0[ͪթvĢ bib?&: >Ofg a&||;6&Tl@tc +˽05o\;]l[ȋ}㭛[]n?޾z}&<hhpK]^~4ҝ|J0"_f{-Б鑙P)^/9+A-xW_ ~W*S]K?j~4rIjŗ'|ח_*YOQd^ +c^.DJRR=U41;+uq)> +kn?EI] 3I GԾ(fΫœGCi""KrUgۧJLrثlLYȕ𾕲|,sAXLG#T89~)L9= a۪֨2Xbwm;\\зu#/d^; [ySW$v%dfjc,Q&R>L@%s{3? 5$^ \ޞJwh E%w"!/^rijpT5ɋM`2Ekէnp%LX> O}x +7SlvC} eU!iEn~29΅Qg"r,v $Zv쒣f"L֪`!uڇ:B.A^~ca[\4ww3u:lt71~@kD"+ >GۇJܤTNB"ʋZ?OܫN.&$׋%N|3׷tSmNCgb5`-~צRb[AO\ў+4#:xrWWBA_[CVHc|5 5,E-wcO26z[]`ӈA;Nչ[Ɵ3[^XooHVJD^&OΛԤo30B9żnN$/<, ^HJўy( ԑ!!_!h:/ԙٗɼ3o("9S}oWʋ,nv,ZԹT{908 [Ժx=R-љ-&s-:ʾY?8ԉ񧎏?uLjFt-pU>oDOBW9(B¨c,=R)_B- +ygn³ZߪB0tG;I&O| TOWm)mw_QG߆ki mKbU̙+v>>/ g +wGʮ/w˰+'JK+afHeoR+;+asu7>l3]"HFwUe}"BݵTWtKP$t!+bC=kFn?!le5Y$76F+mq5/AdNog_/嗘wb)\BWԚq<(zRt_=iU`bs0U~%; +: +6o}:O0< +Q۪kVU^ؗ^"Rjn;[՜cr߮z'Kӷ:o/t17)Wb&RX]^ +\Ns@,/xO:#8<˰v\&6rs=3WB6Q/M2ka #6!>? +ݵ)c~vJͶB|n#h^ܤ.jwx5_Rպ{jͪ߯ _}| _}|_ +ZjZy11tC `2nNZ{BO6 ׅrTݫruz04]" |vu|iV(AjuL)Efmya鶠YJu<߻ǥm;j)Z m[#=g %ph= bckXyrЄH9]pP_iq!OϷ~Cp.~ 4(y̗_EUL*>$|rS |rpkcz>( OOXF(dŨʊ+EO\*Oy)O!'2ay <{x]ϼv7zT))87~HMSjqZSv]Ax%l/3w1BF"qI_UIʛᓐ7KwNݭ' GƜ+VYϬ6:{G7"E̛@`21 |;GcdF:|MHksƝvL.׭cˑa G7ʟ]Vlw7jP b顳-}]m9"2qʟ |=>ه +-(9/P8B%*i^I`o?+_?|';`۷KVHdwT>9rJ،!#?I;%#wT4ZCA7 + +bd`bE8=9_t&?~\ʏ*9: +B-!/D G ӟ*رkiEH'? EJ揌æ.Ru+a9i6y.HDunN6ЪP;-bRټ+|HKߖZ:w]HP;w^P넫ՙky!|r"$UD)*( ISX R>U)о/+>)2, h+Hö֎8 :vcBJRd@V&Cgb_t5I@_o3ޫmuoX6璉)jm-dij-gǿˋӍu 8~DD|'7/" _K齃Hq-21XGHq;fTx«g7U2-ȼ+vrVGN@ie5nl?L0W|QW%18H%VX/s_w a~e :gG +,wV`UDa}g.n +\EL(o덜 |/֍ҴT,Hc3љb=%ȳ"6CB\yۘ(17d#UQެ9tǼWxhݏ|VF&Ò1͹TwVڂE""S݇bo>f?F#ˮ,9cL;W.t*Rt]Y}D +d=ڿW£nQΌ {۞ +<6?{'D]G6.ω_ğ_L.=%KHĀEd ??fcCqR5 {C FWMNy4 W~"Խ|k]VK /#9NgȅSI<1\GAxIE >C^/7|QB)X/8 Xf \bMF6D@>Bۙ#ĶYx/=û@>8}P2nyX9/B><1 aSPOXr'owY!&D\(SFq4q u85Lk mj^AK5ao$e,%|?>vyYiiw!h4Sa:> >w W@5 +>|6"ލ>=CkA@Xr[b|1$7#cOd46@V(V\Q qքӏY'#~e;z RP+x /v&? $bd"%Vz?:G1\y s,]%8"DPs]4jGOx(bajDiK'?PN$ohko;v[)]B|Ef# +-Moo<.%3ZOGo[5:]DZ"ˮH\egf]&}} )49#zBLag:}hq! (1w[o tuT'>

i8^zUHmvĥd{pu# +n5sRb[A~m'Y>1iIaXfEv^S0-7ZO>g2GUc jf<HBZ(Xd{3"(賡R"&W{J*Ae^x>b߶& p*"y]i׼s76~Si0R+3*][ѡt[؜F$}b(5*A$TyP@krɎGEodENSqcɼT2VACiN78 LJ6RːPJDžg'TP'Fgpc1H$+ǀg x Qo۲ѶensVh?GAVd"*)<>1^A짣F޼GM(nݽhҞ2>%OIy0?#q +M2koN@}BOC>۟?Z+?u}Z?vg[I-(jkI V+o:-^p>KMD!Ȉd惴!cx +)mZ  Jlm> + e:]n?3;KP|Y]`^C_0xx6>l&b:R;O|Rbob S~VyM՘P"JGCfn5BpATdoQpňez.[f!U>kCS~f4@Pbc"?|? RO :/qax91A} 0p`Oؼ/ʘM +YHf5cX9J\Cyͫds{; +I)G aE(}? M$;]Fu8˄Oyx ɝJʻUm fƅEBm]ʤjœE +]{ڧr-񩪮'~&$lmCLq~gofd$SuƌKOݓn +]2`aŢ}VFtcɃ}2kˌt:-uKj\4!wQ8Z#AIvUa&q)`b w?K"HoÝ@/$bdt=3\sq$9U{T媤ڱ9^t䃃UW :iѕxe?~7~\>WpO|6e#^5i&挞^LFݽ#U)y(y*:*P*6W8:TUbz*1`25JMMY5rR,X>Z mcn&!Cr:@9R)s%sQ8c~kcko<#3Muz}(5L#Ss|${ 9n,=AWCLC&O!L(Xۭ`eo2֖Xzb Dct:dgF>#ΤۊT5MȦ(!.t6dZw޴.36jZEVxjۓi"CY3nn).\q ]#k}Ix~iGRC&R-c&VKVa^18*s{&]wmU瑟.i:ުHU—QHH,(z)HshQu3 41#WӮzϜLޅOU@7Wd{)L %L)Hd{&sf3<XQ15a'F +V$Hl_x&$Vi$ogN6G%#UzɵLɰqb5w Y{|`Zl%C۴1Jkֻ-|dvBY&G (@:U>~r#hVcmjbY +N͹*~]$QPf]eX)r%z + ).) ] 9d5?oVxgʘTMV޾#Nah*o6 +)B=*sկ:LVYhAկf7;.omN~M3ݱQ/u_~TvNu2c +N JKm5K<>XFuDʏEn[`d-f4ٸPkLcew'ͣ@ sy4c ԙXN%|Wl"n "AJ?vt& YV#1Yy\&RWua0~/,>#_>$3phvM8:qWܔ*~ }$!<~s$DDqM\sXRVi `U}iQkS2r' =F47Qh=45hr0˴?&M-4yV_|tdz4c=#"'g%L`>,Afx5H3k8tH " "ϧPYD)A)(sgZ]9#s,uSQhZ<ݦv5'IQjrZk紹тF-]􊐒hWX+}6MXg#2"v+# +@y0/t̄[W5Y $Hq> Kx&N犑26գqa'ΓKRFd`SU&xmA-[x)SjVʘG謊zo4x6􈡌Ņ%=HIvk6᷽9krb/# GՄ'ۄwK!i\X[,hcU./2,~Ο_k/Dxަ$ET}t}<%ֹa)JHᗇyV]:w'p+'E#iABLz>7] 7"PuUk |Ud/DA ;o}.Hv2_8&yPCs l*3N>]o}`"I|܋7"M9Maܭq&DYQ RO$(0\d~ITnxUepL4 ?jXbt32~ f ~ a.>C +*/X2Tg<\BèsH=,2C>+&?C"DyYXh!í8o{0Y -pw +M UTK|h|(25jyC]jHwx%!.rĻ%mu鞀ݧSWB;]Yŀ&6l>o`7/Y'Qxި@_oU`} +jU@xs*,@~b\1Mʖ:;1K)>Z)/В/$^ʒ{TMдhucz/Z,L_]UO@+B$=ZW5 YY ⺰5)\ E#kI\[ 5QK^eNwߘ!:b (X8KB0/K/14VDYS5&7\ڍ%iLVpΡ;p*O& l1MIi&]KT@j(B+AҪEstT@:Wd!9d\/>5e +Sa)kȹp}{ +q?BŴ6~f@l"E)䃔~d7ǚ/HyN-Ju*//wZnPJ_8pm0 {am63̬g寺̆F/''cչ9jB[ Mc"V8$:ra?5 J 1](q 'ifƫ@DmqOHcMNӚΡB%8'fvr +j/T> "Bb‘yҌA7q؎0X!s$IaI CUiŀ?ΉAEit:PuR+JR+ d7CڼA_BW= +|nz6[g:d[7p0< r$t99l^>z$غ.`eSHvnDH27{ +sS2en8beXn#Uh8gjKn)cCuK%t3ϭFbӎ$a؎2w㪍Z}WU̪SRSA܂6Є +UYɭ[-%dNSbrb骻z9ww8!RZ99zp./Lu!7IC'&ޤ;& ,I]*DLK n\zpʕ^h*^ƃK`R Z1sں^PTK!ݺu +qEo|t#\!TQ*U4Eg'p9+񼺤ת-2n@~o/X9N/ZFު7 ;fx +rca_qN\;ci'ǜէL|X䒹 E\z&֩f7;=H!_@S4}fu=Uun ƇPwDED+bOZ +bb'uzh'szD]L3Gr=aG6Pcx7XvR0hWxSOt/Na.wʣCQ:{w`3ALgE|h.EN.#ő+|Qv 0Mj9& +6W3$U*: \\~*oyE + -uGa`j#> +w)onܛH%/e{Dg%'N݄= +- 7PI%HbLޯKp8P+ʯo: /7L_NO]Ć+Xg7BWl +$܍Z&\lu嚼T#L%lJ9_mp9kjlםnfRfsauֽvG/O2uݢaePo})Ԙ(E-qףBZF^Ĉ!H3 a=ǜĀ|i*u#k{0u2mCK>7{Lg.O:˫FN}Y^$߾feH<\+<,ۇZLX' Oϙ35'ڇ+wkI1Hꈻ`CnRVLgaY +kۛI_'d;MB9"YwLN7W\idp)jr[KZb0re~oTx9BWUU?48}_حQ ^&m%zU55#Ԝ/WQ> cM}ea=2mMA.nX uFSajҫX-vWݜX*zڍs9 eX:+_IQkd04χD,&ͤ)%Dz"l$U`Ԏ][}rv8zVODLG,.v-{/_b߭iE8P|X ~oQ޸827d7ïj ~A>^1~~.GD{osȝGO NQX?2TOQxgel<$ku_)C^g`h4wC%,^u9 Y~9iHlMᱽK!`jHppсsRsZ `ã7rΙIU!0-d]C迉\Gx5v"gmΫ1Jr9-UՋqC1#յ +&;eck_t4JL lpQX3٨\}!T9~I[SbNQnƄPa>+ńFs=Hy]>6Uy@!+k@W@d89W41Y*3f1nd i +lj!UIHyL8 ,`w#}k%E8 +% 4Sl +[AYx0ͭ3"*:SR'MЬBtl4;B$y,2.:=Ո-;ܞnb,c%/UÌ࿋L"s;^1 5Io7g>';l)s ԙͦ.h*MS{5l <2^j 'pι:X87x"1_V3"9Vv@,c/رEc+B<'f:Hěo8.ߞoUWfLn(&i;寜)pKgY^u |&q@_s$SI^u"8rǎ. VL샛VbGMs#Z~ +Ɯ~=||خ_dKi?U9m/U%HJV:by9#ťHl,-RKaܹBB&2oAsBR.nyěFߠ0C.uIHW6Y'b.FlbU]/fѥ3޲Kd*DCkȔҏ?[#h9Ԉع43\_V:;?Ky!3W s ESɥ$J}eA>0~lΜBm!W5XfCxz8 ^uيܣL 8a"9@ݴcyaXV#GNUz}$&MңUtz`AoP)#$۴su8LJh~ #4H~q'@EHA4[xۄS]viX@DgVhِ QĞhȹtMi\${ӰN5U0s/] C`:,_ETD'A@D**6§Z-xNeCY{~_Ɛ>2qUüN5} {t\F/,k9\|2hQHÖjlAw^nN={YP-=x ʎ˥"ubY~qynlX:εFS&وLlAm7=2u>YFAR% ۜToA5SoPv?V{=zٹTDs\ <|6KZk.%$Ri-c&H|-4F/nYcD3ˡ;H QW< `Ғl`kv=dp!{(s7tm1dp &ކmzDc,~C8Soq( smj yPG"$Iދ;aaTɑu]A W$%˳G6K; "I,t;4IąV?OMfMFf7]TX7 jOӍbɴPw Q>̄l-K +=zB`$1;/NԹ<[܆\֓o{<}dS(Knx'2FA@u)h A%_Q͏A]ַl..dvDs6ά֏ +GJq5nmk5{!:7%~* SxC!B62wCP8Df$a#q@ Glo1nqw"jl~hte m2Rnt35<׌OCaC'=CFr, E~o7MbAPPރ&vFѲved$L#yG⨉a 8nojErڝ)bălK_BN)AUs] lD&S|3%Ԉ0mz=A7v([TMy2E. +UhG]ZF/( +5će%8( ရ+άCj/< {O-dmx8g.?B^ά;tB 8q<=Jd63pl\L0ݑie+g6;t07Z^OY5i=n|i$>~Nո' #˽6ƕ^Mr;QspP +M a=IjўHR2 +!Aulz$|2艌hKiF$ВzjuIͳM Pd^`;Ć ?1e^1$[uDW/4^.zI%0E6`wMn mH2yrp2>|RuQ#F0zH"W]1;T 7L#}?&_Е^mWJXVK,"OB:b>} ;ݒ:v}؂WqX_qN!| Yq +lAzLOn66> csI>]Y&׼q&qGb !q*G +';Y TTs&ٯDb#V>+)@z܆68bj3іϢ{AR@m7Żo +,W\_9+) S1Ȥ%fp{L}6ڝ-_;Xk 'oY_kTZ%/H_W@䓗ޯ2T3es/"Dג%^. ̓dh>YٴeTB qUAG9=g?FߚJ̀UVי@Iw~\E&H&#eV^j%^sN@p#z_dhZyuj! PWMiØæ}+aDp 6(QwnIъ]^mun:(pI0m*¸ m:sGFLWTkیE*!Lx\KO:8\xB%fB5Ю/9I{}EsE\Ko P^EIp &h6oڂi pǂ!#s +C(8W9׋:i)չ;"֙gy/ZV!U)*lzP`F8]; !\ +w+۰ΔL,KzNzZp.OI3FU +:HL'k_̂uas*cj1XXʡ4wza.ˡAuc2 55Vm3ܢe)^6V#(x:SL Ԗ^MF,}waqR8Wq-qYWv^::1duf<>7ս@a;x}f֨c}kUϷpz,j{KKprSnҌ9 +TOYzR"`O>Ad86Fq + B +жl oXAc^}_nk"<Qn3Ԥ~Kf#´c jL5Lo/eH+uU!Yo7^qXV K+0?$ZIs0 ׾}>`-"3G F8߰df>`XoZ\ŰhMadj +,ɉUXȍto9_#? pv]$,e;Um{ \4H4$n찬Җ:3WE"BNo&4q!Np<]ԝޙqd&9ڍ:>n Yd\۴h'EQh{//2H޴lCf ~Qfn򠮧l"D 4XҔKֳJ3ODMI&anhva*_%}ұ>s PN#P}uM2!1&lsCڪ_ Im[1w>.1d1Ĭ BF { 7O*>] ,Xė6LQGj'OmSyn~f|7DO Ϡ%1if@r%yК'A~@4O(oJ5JK. cΨZfMdfڧF觵٤4z{h)p"oqL6TZgɗL fmLkmLiULbu0g0iU3eMVE\Lte03/MJ4#k +kiZOBj/1ؕs+yi3֐[̧KPoq0|kz_|ikZK+Uף]M!з Jr?!%sB ?mYӇL%EhBigM|T鳦k`ME .KXSԛ5Ei}1kzi,-iϚ%u5| gM}nG,z6 &c^tW2U\#8fodVґ&ny2uvɮFģ5.ޖ-Ū~@Άߘ͙_j +QnS?)xsB{E?С)Il# ' NXJM?_\ z5~pdgf{@h֑sK#N˷n{/]k_='3A犉Oq`& @~zszOS=3Soz}Tb_vX7 3yf:%(A :ᝎF◒;pK?b=2 /YCsnWRAu;L)y?Ts\ALg~J xxn&g&ۺ +Dgr ^]jVܚ6{>}Oxl(ltEuJJ[W謞鿙[k\qQ{~H6nҾ}ӷ=%.n> +۾om1Wv{]go\|Dv}K?Ѣ$e,^7^\_`Ү‚׿4Z~?,/_ ?՜hMGG0xoRLGtG3Ύ3r7ZC{SҬh~(~(}7 &u'n&peΩi^?+x }jNYg צ\[lOY'*]@p͕pD iP]V +գ&ٙx d`+}eUD$"_ǹ*U[0o; `ϙfyE!AE^NsY@ +WyvL40VGe^LRS>nvǻ!>ޟ.Vz?Xj[qSI<6S\ Yhߥ吝.6#y^q$hyH烚 !4Jz9aQ7 WM>#D}UvC ,^?:zbOַD&pHR/(*-`-8V=^x8Fx׿ڀ.zcm<5Zfk(5҅e֕X6lW +db0z8 hq<Lߦb0:p id .ջuRX=fǡɐz[\Fin\/S07=uR'xNn6J!^!=8z-W2wrV6}+WSX|۱}4c_KKh1߇=`G55|$v,}7viutȍh)R?} + ?1B>Acc]JL m!{;F嬾*r⥬طzť%z`/W^p+̽cr{_ { VS< 2h k> 9,ACځ2%LxgY/XۋE$*:B16V$+09CFeeϢe՞xRR_ +|'φJ]SO}ǵE]j{0#X&VTcs=c|6ODM —=b8Dz5ѽ4tɔx0erBtS&R(VmV`,B.*ׄG-%63P~e/ΉMn_=OISL1[M˲i#VFpn[ +fxkskhqY}%0 ]7Xc1Jn+g_->|2~bm oiSu| 1?@PD>y3qTz FkCߜكT*^8557g(?=5SiQğ4v*Njs_E +7D2RD{I|oseF% o\w•cq4<T/:2i*h*̰Qf}kj^.?]Xhs,|iַ""'Q,E8 pc@Y9h?Rd~kjO2\""C̚ϴŋ]4셾"ԫx@d ˜y2DtȊэ6Qh"J#n.K淣0E^ Apf$'d02FPGnڼ7S7xr~dŃX5)j8L)yq h(da8tGEFVv`$Rgz \VT| | F0W t{wҴ6wϏʷ+_yq/nz7KLS`b޵LL?ޯ0]0ǐ!w]ULlj,4.e"]t{i&w 8tU>: =\lhitI_|OePf!P rۊACn-q|`%|f?Ja~Y02U[|i6B¶laD +4 6E:`]٬.h_/*D:odq"i钄aM7 Ҝ4D?oq=:^`+X|۲sV8N%y¹"]!xC`bҪ{j<;w?$sXk̬vXF>\&JrLWIhil.ɮRm|wzO=J.In'lR $ .{M <t[P0 =`LR9|x=̆iPfJ͸˅sK8E%$7MP'28!+xA#,L/q8](%KFE1^:2`f{ȝ} `͵qvXuAn|QsXn\µΖ\fm䴛G b TC;BP,l.= +s@7}J COaJMv;3nr'UrQywK5$',2z),ɮ* I>VoҾ%z:oIq 78Fz_}*lYv#}wbsX +n61:'nK}AIHokɱލw*݃Mr MӎcMO-cqrR91SW&!ɤ]pk(pac\}:d缶q pDSHLjf{>N>/kⲮú?l]QovamIoHr2)X61?1wK6N! 7p2u-0^ǻlIcStXݜ)!7!ѝLF5dg[ gֻ3>ft߆?L!S/=N +첋M^7v`n^%Zn$MH=@^Envzj7nUqEa~-p ~[t%@Uh*湠5и9g<gEy8ܮ;CbM~WՊoVMgQXP߅ /wէܚfMQ(\_K>("%%e\ƫ`oIČws9YDҡ#F0p=tqX+c=B#+*Ϭ+5=€7anmԿO3WriyлE~ 2ǿk?-egӯMퟝB& VTH7~fڮ}q<)V4P-M~ 쿃_D ]%%oC a#,l:]5i_&%.i-'O)HM͌[vFa +N` %Mc}Unh~BxpE׋Ake~R=?=?/ȧ?5ܰ[V Oix;%7HHH"{ʦ_fV6JwV>o|_5`*x3PWyh bLWț?i#tmH-Vq#@ Wv'c=ᓛUX#]u$jvVې@×{6$B~Fգ'F0ٹJ;> Q2$hu) ېEKjǭd8ObG | %ي PzV]=oFdڹM1 P`27*+V 9|",h\-x3h=S9!nw ZIuWmHvv$C&1L+uC@MDTZեPJ X܎ENoXYpVii[ * @`̕Ȝp[#0iC * Xx|<zІi祳aeBo)YU:z5d/TZ#l' ȃb)/Su3:Z4P2W3}ep5҉U8ZCsoIZ3."sFDG-2yЗߘlck'q.b4ԏ|>buf |TOe Yy^f Dr=/(ȇ|>H4< 1_E?hvpm!c,X-$P(JuE #Z%0Eo)lhfssGx椏%Hegj] 3Y.ڛ.nt\?0|AVȊƖfQ:W܀7X_$DdwÐ]bDF,)2Ed<ȸcȨkAmnlXDF\81 6.~pgDW-M}X$=bh>\=T8sחI7yH;(ЀniՃ_#x$/4gCep#Uc4_O0Utc1A)AXn?J1m5c?q\`Nsx"q-owGsu8lMðe鞙viE*N#1 >zbBoxB(AzitKtl q]>[:ٺ :~D/2 +z'?xE<^"E~[&@$+!}ab^H|9^͂,o֟Ҋu5oCEQ BVI]d.s:)=?oP8"muEc}3{Z j{9;4.SӅ:msh-͗t &MA}rcvrCr;P:7^JoTnXHmHT?)$FxKUTKur0J41.i-pC~z7]|7b4f$x`R^6۲ * +#d?D>J7oSߢDV;R d1PB' ĹRLI D $7JgV=zw!77H?6ӲFpf{qBΞ_5jw yF6Z4X9n]OQXEG L7#7Dvs,U͒1gb +b55gR*%>+׸)gg.3>rq|e\]$ViTe7 /c iѷ(uV\oao#JuĤ//4uh >XgҗX&{u3bk֮rٹӮ7Խ_(Nsې9|s1ä~&+xUƙԭ@3~&hS h"OE0$OlW͡F-޵8H{UM5߅h^` %ZN5kL[byi8V\f=!ZRPxP:9^.}"V|-BZr'D\D~!`EL%R+!64?M윝?IE̪@ +~q<0WAU?ڃ>/2@gǾ+TX!}:>UgʀMEv了K͹[~oipS0gsȡFˡNڇ֭r\)7B3>d0;f,˽G%P,DZ.TU?cˑH+o)M6*l grK:|G6% +I.Y[6.@rrI:+0”qp<f_fZWX "> 9嶞&it鞝f/{pt\fsz [oV 6DZMA)t5ۓ鰻VO}m7156֮LNt!"2ї-q @WZrLNBDFܞn3Aeo8]dǮL[ ui35n6`<zcY6}WS\kf3&;G^9eOS$Gڽ̤3{s|!_]Gyn~]X>MMz'Jڠ}qgh"`VP;-rm!;n ǖ{Y6yE;Y^kL-;>4/67'y8=6̢v5GFs/[F$"sO ?,y41Us.Oϒ$ϡ 4g݆AZ~UdˑB$8>!VzJ {\0Ͱ vcCnNCN|9D=:D^S{'RIsۄO ):.p u)y4뀴z4|_h皿1 +_eWn_L@rO4B:(jva; I6 +[r퀥e^LFZQlNR/Pq%z/^n\* rO-,Edos#htX$Ft^'#?V;ns5Zg[yQhVԘv@o(jg 7T P4(ZfEȞc !bA[XeGh%!eME+H\:9r^rbUӫ> >^:["#3RnCpGV,*5_F&mĤ"M ?_dQx߀a(dֽR']^n+^fUHVCxhz:UB}gI 2>s'zSmŔhᓏ>W!O~QsU~ *HSC:QR,jKtl1ыi,{a1T)V(^h72W+Vzvⶕߧ4$ɟ܎)" eti>3h4u&a5K9Oeܮ}`>+60Z--&/#z8y|62=:sдMIEwM+<@Lmk8Cz ܌ndr0x!#^!G<v+f=u F&(JhVy^$zM͞&>Nδ *%;DN^QTɞGd@):EgmpL~й[lf6Ͼ6QKt{4Y'vfY+m +8kxCƒr5l־ޫ%e7-zNYնXUƐd\k6ѡ%XM^a|kv,fsވ787⩙QbJ+RFM ́/%!C5 +6;V^/yS"a]7>+0mWe78\t]%WԤ\f5o,̹,)r4umi<+L?mC7k kNIL~ƴ⋚|sYV|l7g{?jr)$U?1(Lq/dsS\#@;9GjJ4[ɢz4OWvS6v<=}IᾭA Hb4v<_5l4/.Iu,|ύ 1 ؏i_o1Ojs[U7+B3.v͕nlpE7Yg\݅EKӑ/5fhm r%ɐM>f!F_{/_1^%da_ G#hf7gE@6xw 8`X8Ȧl2n?av ^4B6lL|íR-&Ҝ5}6m$dF!3N|΀8͹-Jtf>I@Ij#,T=$m3/yu™^5vD;yc ( ,23Fih'̖V`ǎJ{)R 5pˀG;3Kn=i6o ځτ &^ ǡB%٤l4 +(>Ώ-JoHl 0h6M"t<_j 2/.3Ђ9mX߬^:W$yEF{mX߆m¶ BҰ;NvqNoCr6vq{9|#}!` 4]}\S7Wcw[ւQlP'tw,NmN{^dmzw@T | '4[l6fW {uA,ohT%zKhiনЃnb7~주2 (4\;Y,|̒n%ҳ'yȧ+B3wev,׶f22sl ]6r7M{Wo^5j:V#Z?lgG9# 7>G2~)?+[Oڢk8X?TCט.6յe;̸GwߌV-Brky[6}˰DxqWsk?O#|Ay~$E#}!*J n0=緊sL&Dzp/ڛ01Ua&:/?<{$0|:܀?Qw}j?2yXd%yBIvՙ$U LbsK酾 i+1>첊T$K#s66TG|SQ7\^%f[q;4?%GfI5hSwED J$D OVJ*f(_+R%Vy5U [45Y] !3=G]Zl󌕽evԙX+}="8m-a,scy7`sVV [( 1[ `V,nK]R탙H6h):CR]q)u` A#'yv+(yWE }Ha*T4{RghcTԘ,ro*4SO}th)jOYN ATh(Gi֜,1kn{fìm=5 hc2b`>'bfZbfttЖY _. ͝p–hK7&!C _eƆa,~uAE6u \?/4a DoK$?2r{5sG1_~9&^!s{iR(=\bA\w8icf +z]i]sMk/:M> |$5,+ռP|#}M9ؐć4>>Y%>؎Dr1qF{e.MS3yN-en<R:n}߼jꊭ~YC]aۧ2Q{mcݽh3Mtz(imRWλ#lü3]B~84po('լ-|edF917wL!TXqp;7D\F6_D[77\NˀUո~ +f1t]2Tn9.@h6/ Zp[ctsmhӗoxztz]⺧]L\JUYQY˻+uu`X+V61SNI0G +{yɝL}Rr>KvswzF+Lk&n>ă XAvѬ+sبj ??t}ܺiZƽ<^ʷ[^ C,}vٚm2dwdeۗ˴WA,|u f xofcmt  XB,~lOnL 2Uqmbқa )v6}TDg&L>V#h7~7gkͱX3{j}s\MۉgVVvsE'(A \PA;7GakId V 4@hϘ #իq,u[sΘi PUW_v\)vPߜ9+3/j^ zXIףB禁}JUA2(T4a?s^k:^"(imZ 5Zj`-ziG'fkχVr#Lg@lYgG-εVAB  Ē^VX1{iMZ]b) gmͰ90́m +_blsI6e +ǰhqsa ,8^{ +r=&,D圍_vVeә9:3&mQZuN0\u1l~.bd"!,%͋"GH[%pgR"= {Fj(qWV[$*Y%$CK+H t91ݫ>; REKZ^פ77FZjھd^ +zYk= +ǪBo(qu(θ,>m=PgB{Dc]hj#6 +SEP<*+O;Y{ F cMn*{n=Nt.,Ki] BZǸK %Jt' +f:W v 뚦㬅U1:mQn͆ 1Bc|[/RiQvn]2vWh%4u0}h~sPbZT{gSItGVzPܺQXf˄!9!rX6FLt:8M}63i ڽQ't?X=j&n+B;ҬR;B]c[/8. &<3S!S7.Nkנ,p[Lk')mƮy.n]mYx-uc(KRExK]ak4mS!Z /:1.wת~/GC+|aGPGuvN^W",T&"9snKNSbHn>Uls)ܹ^Uge*/_7Ϳ|km3!{x"췃$n*INʁz )ٳΰflGtrjʷuL酿 MPOҝJ ҵCԴB.?#}`0D_qDgI_mB}icL +51XK0gR*[Z&x뜫2U{OmX70SQ-Z1CPQF6MX7l︜C6̆Ev#ѮcǺ]r3z#lu,\]6Nn>lbWkYkcYǦӜ,3Made-ѵqB8Ü=9}~1)n[uf9 `)^y:R!(Yb=!&Da)%Rșp +"VI?D4GQ|XP+S#-\l3,o=a^j:q7MQmAF\`'.sM:כd-7WQ4-( |tyy{ArtAbuotM1^-X+AgStRC&.Å$OEHje,@b%.VΦyM~/OЏRr].z { {|XY#%GRH*23R=Q CqT#Rle쀢7gW6LzVA³P-˴ڛDE'Lӥ[Qi'wN$7o1 3tK Z!KoͤFRZ##o=95_,HL 4b{؈얿z7tA3h+Zk_,erQ@$U b;o$UtoQI/l=ĝf;,|F0N[ ;9loLLЭYk}ɓ`{9nO֫:[j$nwxe+r +N^Ѱ+ "H7rE) lu.$c,ڧeDލ mi-  F1]k[)ɜϦB|q[o)=>~kkۊqoYuzj Z>dY8 yښ:HD}{p"u#9ʡ1[ZsxaNszۇ_:2C)w^rpKݑ+]N+@vKEQ +H 5ዣH^XŃ.ߙܚ)yD!ǤWT1M!?I ߈ MY[f V>~;R݋݊^]1_ +^:]dԛף'HQe'cSS1sNX$#ahkr[d}f4؀ۺ}~1uu y?ـ/Dc q-# J)悢˯EEiy l즣/ChRMUD%|.V'M MDgȤ (nMfU@-*oBtߎq_`UhʰcRBX4{[%}nѯ SC"4@w7QK  oZLiEL.]m^m3 έ1B8$uq=PRgli`̖ȁ=en rVuڐUewH0FIsF (fi`~CM0f`޳jRhf$g( ˘4+Ө4ΪϼgY@ϹQg4L>zu!7(%B EFD o[([A;,P`fO` 4AX +DzVWq"ՁSȓh#?Hk] ) +kCNiqZlEͦ7FURl-0-Q/yt1nF14Xcty] C! :ĞqUCO+44Iw9(&$4]eglBQR'{k Z3\"-BkC{!! a*;4;wOrWڳw#g&~Kn͸ӃW>uxx)>'bc;,ᇬ!.$x-\v /+7!Z5dCd B$ 9+MuR0–/7`6dg%H8K^ge. G'(zDAzlGPT&+@5Aix 3΄炵qN -js9_-[s.J UF O`Ƃ!Ԑ%1Lc ;1 uRuն3,Oa$V>Q>6K{5>1 D~=nwJ#h߳0<0\_c1p8jCi; +BhGlrV4j&_4 |%ZhDD՘$W/ $H}oҫjܙ>@ώIWϚfMO߼IMܱg̫="Ç36.i&p1Q}$iۅz2|rG]7_<Ǝ8[WeE47(Uӄ +"o]5_jդ漗4qwB5"Wi+R|Vt +ĈYOk\*3#l1r#q]8cW$:-AB +lD/b Z1Mjg @qXmnXm'M&q,#;qDX\wvn|klč+|r?h󓢬%\N.rfE@FJf! nx7/qkq7kY~  Ǐ<>gҙHYy?t%*!9qޚsVB9,F~0xՂ8r`ʁrf_Ė{۬]΍̮-5gX꼕BRʆzYלX($A욅pݖS#An3*/Pp,:n [Q,i՘iu[o%CN&4W&x6{->s%~Xd^;e1굸Hwx?9kL2o:_ٙ}@ՕBՔeg8Q$6 +s9-#݁A$eBSdiȕz@(#Ыo@КV"uΛ.^ lJbZMY˃|ܳEYKѴLwvU` QtO#b⼲c<(uؕld6&I-'`NJ%VG5v=,JLy<ʛfjE A$2mJSĠ(6zw?هJ}0w9syh:Y'"0wM3=A,: $Wxj + &_о3#fCCq,#Q[vFTy1W3hYl%ZYfqir_cO?73GFcC/*$TH{pPHK#:/`!ň7Mj*%jUHCxضBp0lݴQRxaFs(e&&j|o\^9`{-qhZ#E[5ƺi{enHOpحV~-i3spA+í-4܀zB)2KU~Mj;E[o)l]5 Z!_ ƛ(K ~q)Rܘ/Z/$ힷ8"޹ &u2G=23)>WwȰލ {e!؎O 4勬cK;կ!.l'pdzYgM}^AKYkY5蔃kKoYڒڕ|䓯|U<ī<?w)U1a# {NWTm`;0{Y@Iԫ2rE3gh"cߥ)^w ZV!Jy*9O)JjE|Fvz\V/ߨۑ0IۑwA$ijj#vlۿIG|x档\|֍E.oX0,- kKeo3!m}KpW˧EpI։8.+{-͐=},[&}71> r##wpk!xl{b7RxHq{)[·@]ӏ0R~dk}ue@5?,?dIu Y\YFP1N{au,qWmDQ5Sav w1bRC b䑧iuyH3wùPyG^(l9܌-1*lΥkmMԐ\T74G'vǿ`֍qf!x-jy:r61ƟMKa29]|{^EvB#Je3흜+/60kfE ~>~ѷ珶mM5?+Uȹ5'>PD4MA%MX܀V"z, +*LX/5(;a2gĝ57C:K,wpuYM.ZNvBsaruu*lB3=Z%l֒klj#F'%enh .=~ c&;m{D}z;`TnWNwFMz5=c &o)hkbk̠Bwf_T~i|c/I/ + -$zkp]!{P7;/Œ+nDr*ޞ0F}0Toݲ̠f< ne"Y`s\8i2sc̒}P$bI!̸!&n?1pẄ́p"z2ugT{5Xխm]5伴@0)UDiU!zxtcOݱlt\tk ddɗ#3 ; ӫIʹX9]ta|aN!B,I1UrCwMHN&9)l?0NDYf*P[B|{Dmӓ䒯%qpb>/ǜ3 ި!aQ8`0}ƅ38yJ +xk1)2tݻ,8@+& blgvpZ(3b*$6QCkjU@NRߌPQYZ K1#zDN@^`A1$2-Ģbm Cܶ)B{hj* +UV ,#b1! (fF0>f8 /Ős L.k&4Noxk otd[;uy>!Guƅuȳs1flPf^{h}RNf*)MCX ,q|"zM QOM%ƨ&Z1̬FG"U;IuI~ +5 b.v9{V; 8cMcx[Tw'Nʡʸ-.z`bN(miŒxq$]hTg'_H9pSOb,`^˻ZoCd$ W:*k9<O*4&.2Eۄ3M+5$r_#Z<9S32taw^^2~y)h<fLq|ߩuqT->7EC0 {fК:S25lkj.ԈizL{ Ӗ՟] d[02-+{տC@x/фᨖՕ}Cq7yn(O-\.MD@Xd^Gm#kV[c|;k3"fbRJsT ((Cw.qv?}X0c'=31iМ%ͽOL[Il2c?jU?s8#&/0t5 *>gԜ I1y&3R83Y8{l}plwA/Z7Ӫu`)2zb Z7"k%y a:48sTa3 Øu9B3սx\l^,SdF\*t>Nj̊o䴦Gt=ć~_>!{YL})ZAZ#4%QMx0p/y;0pO%g(ꎑB>G +l ȴNȤt5;!0q=9p#=Ƥnd x~{efM/6SG[GRBdg==Tpv@˼<_Z +fEв;t ؍OK5+NOVIKyeƬ{vu4壭^qX2kfʌjWV3s[W(1vLzGi _w +fǭis$N=(eݣFބ`*`GҌ8x\vzՍ@ì2sgwJWeWO <1чz7?&2 gR.h:CY5  +210=u{|HBPWGT52N~̬F-SͺwLF:W%KV g/Ids"dmh:>;Mt +D% \Mj +K ? ?dg 1k~U`ij*hz/|;8.@|`qHFI*pL.Yw*)RrD MPS +oQmFn| ;k YS&h +irgFOouBϿLB R,|nL&!z!{l.2R"pDLfWčzP$nKӋ}TUɎ[Dh҄#a  7{%nm/ h*#^YؤY~$eԹXlBn-Ɓ-O2C`"v} %dc걔EfnHy%OP۹лOܷuSN%g6^I_˖'RC18C.~UrJk}lhp#=jmkofbe$ h3q7zُ}.:.ķ)]a*ɶ,1PNT"3w{Dt^{"=WO\gat? +s=E9o_ٷ3m}rd In+5{I`%FSWlԭD&Bԕvo#4FzNŜf',@1.e197FY2dbs]^1gQfl9րgus,ޮJxsV5Vfڡr M$ ^k $ҸlM+m1Μs7h ^r>򘇏 (o'2ZtqH{mYUMxz@l&.X b*9c)/5 DwbY ަ:v~mC`l&!34wy𚀟t2HNGиv-5y9JcHU*l`X[2dDImj׵xb(̎@av^ѡQu=ڬYg:e&CucMNls @-]ƒt=wCƑ }\ovegbPIgMUm:~w~d]6Cˡe_"Se=ek*ڢ1*UG/G쯉irGuei9II0 +6luISl50$ )KBE-LxԎ.f$ʛ'nTV,KM6U%5JJ O u2=;|)l<垎{;{ν ?/ wP/ۗ)C;>ґϙ?{*t,D/|;/L#u%-+9kzGHtSrj?Nz݆)_{v7vT4u)'$ r Cx$7V->jq-C߰I/PM |@h*$3 ٥,ߓ:*?ҧP'>ƃ|YxY<R߹PrZ5rw6P؆ +JMxu?xo|7PT/?یvN-u^bgK􇜼[ȮIWj9Qj?RUΏר0%wi)ﲿ>WMJ)صfOCugj5~?|Z hT^xK=BkG[(}%sm`}WY?|OYӦ{wmƭ[Ar+Hw>-0pm ߉$ g;H([LѳsVSjsk%0$<^†۵_+y˖Oly >;MhY- 9HomD/,aHֻcUWi_%nJ rf3ݪt"9.ևw_jGg>SN?g!l>%ah,܃@D"$#B`v`+$ȷӿ~eɊO ih o5AsPB4RK4TYvYH= +ˆy_n'3yn=Bx#Yd ^r(68_&@s w!$W}B ` 1"tdq`HI>Ù<v֟r<%-=T$Ҡcb 7VKW B>{ɐWcd\V fvH? -|ϡKnv;%g + PM€n aASoߖ J\4rooEb)"3nG~yF~m`XM+J6et59%>_ *'E?8+PA|*YƾK,@ٯߪ-ľIIpoJA2F2Jհ_Hz5>_Ixݲ]1%Xe|=E^[:p@&M7 +C.i\ D*W5r}#Y.zA Og'ZdvWr傗3Es?#@tԎ?NæP s.5ۤu}g<%n܃-~(΁!\a3n X`]tF IH>Fl)ɻO˟0Z r g@pz74rCsY7D&!C9@ . rXʏUg !@m0_N dSYx>ME^x&V.&wq@1\dVoNSvtIa=y#Odd]@㐧\) 緭w@Ф:Gw{>z6Façm$'}*tԍ%?;W)$BsZ'O96p)YfݒK[Aș·$L#jRש>]PiWESu urKob$/6{#vH|sO{&g&5.$܊sH/2dl mRap"!Ҏ|&`"wiZj)6.":kDg8hVVm-gͩi?St2ڧ.(D6}.RcBY_H!h<)?JrⷂZ`B&8 ]&()֩N͒ewk< +O #r51 +U$o0\T0''9>oϖϓ_)_شV}d͒_A:>At[w4Kxπoϰgt$>Nl`20ibi +m.ʼQ.Ms[q义 +ܝ +edpi.of3$1ͻ}Dxw}JIXy!f.aV2=Ґ?a]I3yV- ĵbZpηS}K89Y 9lRj1@.%f6/z>sv.!re[x\RSr%?EjS]x:*liޗum>ʑ`hQu9 ˳#Nϙ.A+~lsdk}UL=&0iި9v`1]AX3 3-(e2,N@:|kPt9Φg-ﱄT6CP~n쩦YrX)Okg3xq2K L`OFT6fVB.jh)@-]8tKZ^4Y:%tMrәjJ3;1pV)no,ɵd qB rKzJ 0 +.:?pL=%~"}wj +SB)%Qhn:%zv&;~(nOeoM+,GAqK,WpOZ񈴪Ӈ>ӮۃB\E NM`*w8~ )wi<n26| +¹Tx>t|UX +@sO(KjЄ [2,'2=ҭ" h"aEGGC[8[,Ap%*ng{\UmL fl%Y>S6rdvگgjY|mf͟LqClO{ 'ZOOg sg"t?>Hw /G&-4!TZWXιT柭AX Av}}\!8}A 2zڞ?{"fJ60V +tPcSy_2_+ํPc25Z֊ 7 ,7 ߾nOXA5^yX $܏E=j 6aDLO}GPd,]bPK̦>~9Mh{y,ԥ}>E0ffv/#$.h})nqUcs7Q_c%-@$ȼVyoE~vmÚR2aйu9R7iƿY9 V1H#O&]<+,lo[wqMv{zȋh#tnn ԱőBظͬ[7șSe4+Һw]ѣ`c[-hٳA<.n5{k&_펛O:3X*{y=]Pvd5NFO5Ќcy;E%V*}IНT*8 #d-eNsa\8zG#*o3͟`LZyL~Q3uOx xktǓ8S]|lV<< 817klܠonv?5,sC)Ј9Uw}$O,89yu$bG%&=nw٘7ˌ%ʛL9$píN|ow/ TCۅl+q^%qw"0ZA!2B5cx~磿&Y|O}fzwX[[^F{azm7  +a &-{v$)9 W[Cf+;t%2lL_$"`\Gq ]l{@KGX1+UwCac5czmA-^i۝ܿKSԡ%pCcJ娉q^m@ws D{M؉,vw!{[O&c+1D{ c9a3c1JWzY`ā9+$ie&>/X!vrI +c^R6Xt5 F  b_O6}uDu#un0Nw~n6QyeYm5]ǃQ [DW(b@K ~< ؈K`ńKL; q9~q C_K6]WmuM 㟦b%B|Lk&sHy8xFnu!0v c^/c"4$BzYmtY"Ǒ:DoKt8)is)9I!ZHn1Z#: 6|{$X v7ݞ4qi*u ;-GsrB}Ib8lb#b,-p^l>%SfQw.4.-Ə1ēhWEfSǏ(O-?FpwyƏ?sďP. +y-w5b!`kWB;q%<%fl;7 "!̉?NWX2}Vp +B zS= +/ΰw+Ǔs.|/x?Z07{#e4FE>($|@ȝh"NWhV߉s)1vZ?Mf.vdJ _\?üޚ2Fe׳?qZ! g6*W NT/%c[=Kդ 4+QGO]Ed \ g>#eRc\i´&hd/"ӾUhO]4Ѯ +rUu^Tm:уmֲ>ѓ'Tx5vG;$rusFc؝ؔnK53I47C}/[<+C+c,I#dK5fKdK2>>b 9bfRLm j)񍧅f4 +Q +" aho#:Y~1:)3b:\6_ϫ )Ukǖ?B* +fp\IJy;V 7-8%yR! w+oƅ<-ZN72"|+a#rfG f*-r z@h;c$@P?ex<G *g*H  3n7\.KG +3n^wa1D7T\BAS" y(gmwPqsCͷ)Y2#rXb2B))e E\jfʩ*_#5sdrQͱ;԰;1Nɞ'$7%;(ɥVN R;s&QM;iHh0杤/^UK}fp֛.,:\!`^t.XP,Xh>x0ĘU*~JIyjՁ_5׮ +sx8 qfkl0'T U3BEɱs%Ga L.ASg105%i%hibMqq"Wf7q-i#N iix'qK:єٴDƁq] q+Om-fCϫnymr"M7ʌUJ&+}j&T2BD{m.^%NjI%$INW\DzLn٥LcZ-yY0ߦn tB=/챺8ߊe߈1FM턈icgu y0iE&:{@ŎHej 8TkLgL/XZ ?GϹZ4k77,-fYīK8 +p.E\+P-mW~;F2 +:mme2څJ+dZZd%N9)Ⱥ7k}f>, +5;m<ĎF ϔްq1|"/M!J&i} r[@R BCz QkȬgbKJ"X-k/ ysͳ;,Jd*ݤ5L@tbglh!/lB8%FVxhujzV2IUɷ- 5;csnNNd?\iȔ +B78Xh%2!玅᳦FX 잜lL:y31/`c[Ҍ-UHM~Ju8>6]1Cb +] =ml؃Uv$I{`m;>'[d+_/ϠR˼5]Wz/• +L >Y7t5K$0GQNW,뢗li`OԨT]ĽSeScs^?{,oLS qx[# 0XmNCX3µah| #w,70߶..læ^2PqxjfiodT9Ua;v^w=T$}AI[vpVɔPC8iFݝ+"XФF]Dp`C&qukNh 3f.kS]b1UfDtU#ϙyMGS2)͆o_]k +C#,m09;13a%X1"2ȅWb[QBoK}S^ꛌԏxi7奾ɕR_6G*G休.<' >5U֬#Jŏ8img[Zj3 ohs⻫]W wn Oˀx`^EʜțUO3pvVhQCrQlR|S)dXLQq&Z|d {z-ɫUL5)pd$32#dϿa^^cI^u+0ʄ Yrgp^hA<ה;|OB" +QKu4UFyKi,+iNh}ۄ]wTT* +7 mN6]ŽAZ)8!`Jo-u$g2̖nc+Hn9TsS[`=őP6h!9ͰnOWm2 ]r'+ Op8%dSw'0qZ28k4RMsRx3'ďH C'BZmFaBwfv!|eiRR?gpNlT8pC[ ~"q+o R C5LXx2ۀ-=ӮJFFZ6q &/P9+re)e"k8[JiO4=84D+q>5XCN⫣wmD1Y'*^Ū'JZxNZSciޔʃ49.SyY%-%c_5ncr2t+uO딴VK`.X3p&IљaC1nRqYx0}Agi oxIpM$8MtAYu+' qkk ZzUNi;:oB)v >tu*PQRwBS6~t)ᜬh@SN+S6o]dH:[80_:##/g#s.S>[=n|Ĺ! +)Qˡ@mo?x3$QREL܊!:z`*niqoդ ([r5P^ +1bVϳ W^ڴĵA#\T ba*Hy?X+[zy y0]گxUGh#: kU6.:.&}FlZJwtȀ +b˶۷6|}zm~ z:q_5m:PwS-ҝ3f6_17tTgP%)nhxCZ(ի^Q*æBzu^ڕWMR(MnvՆ*M@*+U+Ma-gqWKT6v;AI:VB$,ˋJTB8RNU|m(;Z8>hF8_Wavo|(ckYܛt K|N( $\V+gDajDxH=dwH'UHw~&b`|Y'5WLT58<'3/,aOIO!"#v52q<]4lQg5PvdFxu{pVlF>-,Kg;o[~M Lld̅\kbU=(=G0ר9_!`Cj <Śq#Gtc  \Q>TװcPT9:u`_B ^.w3y^,x},X:/ 4XГdkBZyJ=Bku*uÞZ&Ll儋q-H30qbJvVIs4.׷eG)2I_<˝I7̙9?~$ChO~ba0?1"O,|vO?v73:'9Ɍь lxV5~q +Wv#L~8ALb]{MxQOɊ4i)xU\Y 1Œ"(ͮ +4C%S2Dz.qz" *<U@1z,JPQ7`FxW<}"Y$#Rtn` l1혞K֑BFCKƛ ύ,uaa`@%xM)'z Gon4B/Oi\UbdB/g !` QDZGpX4Ɵke"WcDl q )hPDtPV3$iG4\qE3S*cuG@lwdެ0'edoA2k/7Dܵ J#kР' !AEX@myjN@xu3h)3 +^qȒjxbĔ5U < z}3UKuQF#dȼ n5$! g+ Pn@ereNPSAY`C$>NCUp@osM+H!Dovgy$ NLpl,>)6ޟW(oT7nA%%MxcqF+!mjɪV53I_Ν Uot_~:mrJ0-Z/˩na:䙯52kSwO UG̉K,SN'Uu:X ߟyוo},qXi^~dfF.LVDŠ\K$>;{^(k&-3@)͑8)$jN[c)813_3GN>fI4i3,SR9yt.!$e4O =#% +qz&v}qgUh"c¾Sw ^pa, \>zfDeŲ¨xr|L lHΆ.̛&7y&9uѻSc'iL9mvY<4 xħ!Q#X ́D8:Vn5dXMI-<^I*_-4 1 *τX̃Aa]U;A휧^TcFl[ͲƶfC[h>P̐l ωxt^H,UA4Cfwt5l6: +R=yT(lLDe~}6)A;%|,Paړ1NWuiHD^<ت|VXbT +L'10'U.Bvg@Q*}|,%1x͒I&4,k#0vm|(BHxFEYBaB$%Y^ٕQxW<{]5oX50n ʎ +BFDd>BdjJظYf % WPXXuyt$:Pׁ2:P%V^ +5` ٚ {9mXCseFY/#͸>]˱d&'=, ߸vh{u;ě7=d?fbY%+ky YuEX+րc 57Lh H̿Be7%U(W$zN7,4 70g ‘,5Wc_@E.?NK*Ӻ"b*b̼/`J*Tü@aYV݁֬[_ Bkaoί֏NS3]R E +R>N9f!L{˭ +xlozN=kD`BQz<̶ 4-Eh;f\L@dsx̖ΛYh!)BuE .FI3s,HeT“|13RFT`P-AO{]d&B4l t&՟]V@ ), BnQ吴(uƷzk`'ܥUC\3@M=1QMb?܃kW:^w&OOB<aLkW*eYJU-n>"z\,ojO~@μa.qףӱ6*-u~AeN.Fk5C XhtmPj{ydtmwWo6{y8]kYݕ#k|k"^s{/4ύd@Ď7Թ[~?=pL':m-!tܘu򝑁Vzez;٭x~@~t|`xNW'i|07?:0zqB:-ձc`兑FznC{l>*'D)~Ct7?)t +8ҫѾ ݣt#-W#:ǧ@'ݫ-8 kƇU)ZtxN/\@WT PN-]mi޴T4T7%%.|qî0@mW}['cәWԱDcwG6Ώ֯c]NKƺcߣ Ӳe"+oR:թg/G:q37]^?y8.RSxX1nQEX=eDNs9mAiAOixS-eF/Jc5Ki.w^pZ5 -&5KMGj.k(KgH 1\}#["HecUVU#Ty\/=atޱΪ uTgmQkC+E.cT>J|*)yQ mARAԜh!u$}ѫUgV {ȋ. Qst a?mB,p~ Xz=&鷫1k4vПk-CPڀhޅxmwsBG~!g:V-{'}vU?5} +=.x4sh̺2Y޷[> Ǖ:ZxWntr5D/Ew1n9K;I[ 3^nEٵ n#tm7#*30:_ P];{5!tbH'c7&Q-2X}H=_ϒtX/rv%@.u:@6 +&i&yw[<3zQ[ +%Vؑ-Iwue<| _eA[0|ihW=Ğy[~tGgƊu.C*;uoߟ>Tͥ\ !#PM \4%H}\gB%X8(Ik:G2L$﫿# y̩v1g;I3 lcĆWe*6W}/'ӂJxz Zxys];>Mo^uW /^m^uw X]73^d޻L" +7/S L%:k,™GʸQ޵#/yUūr7 +VWtػ QXyH5ɝmMigjN ; +@vȣn8T/P\ Tc/@!v}{P \UxTQW7+«\_nss㣊ދCzPƵ Q#dZD,$iI@-"̍F. #,PN#K>y.)TCA^z}1g_-d?PH\#-1BnY#-1Ba}+3ZCjAO 2ԬZ1BmfY.=8P + `1Ԏ?5 +F/x5,c>|eYkƚ5X 5BX[w pjV+cq 9Ç5Վ79aXn a:#:w47}Uz j]'~qO`Rj!rTu_GQHք.$"x{SOQR^¬k>vn _[㧎sQ6Tlkk,ƚkk#RX|T'Iy-cc$ź濶HGGlNc4:MrZkŹɰ-~h^ߵkfّ!s5rڡ>¿QL6r! Gj;{B%bqؤzrgձM{b]r_'V5Ciq<@mc/^KRWNG <ɒRП7 w6]a68>v2F6<8Dwrw]ꆟwAummp6D}k&l8]1L6Y謲pKK=ҔeBxs-kJɫKmY{<5tVkxFikz~tNu'|uz j`rQOӀ{9(< $uo[IQLvd ͨhN1<ۘoZg2&8"oqO3:8K=(I'K+jx-^{9O֍|}[?Xk~kz;ͅ&?ttbc M\#kў|2 :B㽄n#$? 9ӱ3 sNաVT r#4} EΈqD}E/z}x:^ء i@|3 \|/s1#$x6fぽCo݁E ] .fL$馨+4`1~@Ə^#qsba͸DVJ?$As ;7qHHg(!=OPuuP[la/" i~߮h: i2>vÞ3 C"`su-1x{%l+|6^\s!L]U;\8#: x̅0jB0j/ّ߆ F0H4cBhgyOuH Zx"3P6 nͼ_ho|gaod7ELaAooFFFy {LУcoebW7~bo 7˿`{#X((w\{Lr7E27?(D ?g@ G +kT:ޢw9>0o~OԂ'"]ԇM6Hr}VS^̥xGi4ScZd^4bYՉ^OSU>˧<Rb[bhU.WM'YO +mG!jmvxNmz +?-xf~Ӟ9;OWѳyXR܂'r7&f|-rbg#lC!=\"`b ,+UxnB}0OVb bClh6.(CYe;>흅KB + PrP뻼xƱD#W3Fj0heP64eσP60>X Fe o(xʒA]){QڡZ<_s4g=IlOlv'lgl{(Ul>;۳ƞ1ib[6pL#C=;9 nl6ܖۓngڳb`[6llml-`,esݞ?=;سbH[6i?=Ϟ-Ǟ oϖyWg~!bOCXltϸc <>7%Էg]3pGˉm'ߤonݥ\>+WK8Rs'F)ng*5"ՋC񚍆k&+>N/{m:7J{ o?]f*?&۪Zj)֋q^QfK呀eSqƹ:$k )%pU5 DmW#s/q}75)n,$kTMJ$̶iažG$ 1,KU?Сl+$`8 R/U}->y@WiU}v}5JlԂ4P+y3BQS[lMIR#,oD^BOz$C(zdЬ`;]}5#/޾6 ^7ux0N΁p~fBU`Fu?z4lv{CPl xhgk_}GFz -j(fጐnGi/ +^d6>M.A7zZW!H>I([Ǩ'ٺY9%Ax.wt+h~:pHvFw|lŇn t\3JoF}Dg"@SٲܳKsҔ&ȹK>pvIRɊԳ]:TǹW=7p'|ʷΖ9Ks.^slnM%n.HEB?N5I,-E7$kSQNY/} ,$ +d}!U_m_w^uGa7d:j< (C6$Z2 VtP +iam|mogO<~dӲSc 2`hb +! =cϛ~8"o +mUfa[T%.HkmV>!JliTv܊\)i:B$H@^7$asp!"MyhA"h<ltҬMi w['Iltt|\a(N7ONႧi'p/rmaoZ<fyFgv@?kYۡ?(' 5܅dOf֟%1MڼEF+O;Nz9ٚs(CskN SsZsdjΜZy\͘Fu:B_G8n){z +wGEd׃V]A)ne˦,0o)կ&,`sXgO#+'ak5א$Hr:`ݰ񔦣C-0fQ~i}EG}?KsM뿿Ϫ=|4-Is3䤃u?Q]*'؝IbUQZP]WO6amK$b;P8c]`Ħ]ÔRpK~aB {žP+6_m o`W/ i_AweԲ3[MkS@xP6['}澦dF99rytan_[U˟ӔN 8~&cwOpdBØI;K7EPm\/ n 7ɩ(K^glTEz6 &8ܲy],>׷*UԃaV%@oǸMoGA@p"cYmՋ~ayk^zZZ%8 :|;R㲄Usj9N$50ihuǬ*h`# cwBL┉p˼J)$9sd_G [XL( +)ѼVPk[W}r.K?&Dx If ݛѰn{ Y ꖠP +98sjz2~'vo4ak;Nd1^=C16(ʜ?c|:vxߐϻ~>yQk6ώA/\#6maɅ9yE9$Orex*rLD!Qs ‘b[8(ol;)*Ɖ.qS+!T/:vAyJ$P Oxbȥ~-^Q@bsگB?MEqpۡo/UEז.s+Tl>^ 3*A0#.WL m U1#·R ++;|ă 7 o(zUcS*Z/bXh^#mo?~}tc +oJ#jkuuad]e) Z˹j;v,:"6r.:y:sЏPa ~b.c`%v92n*&"$?>1bKu)1D5(w))O͆sԦkvQd0f7;wߘImM=cC +(R#7x"W<)@U,~~^U1OܞsrNQٮ݇wQZfZIQAq#?OC'3dnCf1 F؊(Ѷ̆&%F ۶#`AE#(Ύ s ϐ]Qc8(Tqh1B F`e_Fp2ߔ8?.H=.Y"ETNz;ڎ\=(spEZ$EݜӂO?.>B1.,KAk1Z׌ެBfT8P˽;wّ&ܾvn8vt!| G[lT?ΜdkC cmNWŤt := ȑ uΤ"|+:odT_N9'ęx7ϧJݰ4!Yw0 B?_ (ymDž;p?}X7:|~R#O_b>WR:bN:Ne]v*JNeu@R`e,u%N@~,qx*20T$ +KV\+8%/iظ NDX8d;z"/itEE0q8ќ9}S8!Tx&Hf!JPwgG@#Bh.0x|ouر$n)~DCΧ潖BvY#AqvܥqޒlmB7vѝ!r.II lT +q<оJ#ֈ/yQ +nha4NC.8yF<!*2x)?I( Y}uߎmAhPҽEu?Jis~Um=h~ϩ4 s@*!Dk 2\;"mD@l UۑUHQY+qaՍKfLXkvQ4Gs{vwUdVk< +c"'T2P=&r(LT˓Ry: %ΧsGd&y1h*9zC9UnJm!n^qEzl$a0tcKdɜogrviyF/e4`{~ci*ow$WŠ"5)g!t`k7v :̿܅@.G0Vui?!p'm=1:hKgƍnH70#c-EI30Oy"xH?\B|:w-y;"E1}*eg)DɟB:8DQ dYz4hA9琟4iƁ2A>Q>I4ś}/bTCES.ݞqRέk҈ @c3R0'蘗 +m ׈M E1Tr˪EmyT2]݆pc}mFN+\H>^К9 p"n,U+uuRp%1yA;69"4+0ӎ^e#S"B)b\,ŬE __ á:O& {kG2@۶(Qtf$w#̦4*I #,3qpi(. $ t$sXcnSqeqIq%qWGoGRM,w'F.|uIj $aq^,u TyHcLXx:;p:? }}5a#@NølL\T>'1q.݉mn\6/^B|qPJ2ЕxJ;*8E6ϑj8!2)Z Vk#Ad\QVf.oY^]V ɛ*X[C-[xWRZ埪`*w';Ƶ㏔t=g8Z1_g7ʷ?5βFſ ug0naoY@ي{ B +zCqp* N?QRiA/.bzQG)/o +);{k>r~_4Ua0'-(]?㠄x~~#>U}o݋CR_fF-eqKƜ]Npܷđo;D,MbyO 3@ J!۽{^w/gaT:Y(nI@bF񡆝gusHP!W~IOjojzi3vD:1$ȯSL`tCy6s$k،K,ԋNӼqO[G1nn_Fh|uU蔮c-PfOA^)B<[ +0s|YƝ6Z/k )^&ƿF89 #_LJϼ睗灞!?czw1s '[L 2ݿx5)`f$;{f6U]CFoݦ_b:I\??Nd!\4i@m*Bz7#m OKFq6L6872: ![B) &ߊ`}9Q +Թ`zR=7O:TC2 ,~x}i']3X~>FM`P/({+P1]%WRa_ee**Y?M^n! Zc9eF| 2U#y24$ $ + d/8D( t>g"4UN "HRI` wxn#)x>~4X1axHPV,rIy-EDwA$p>l)WO2ڥlL Q5.6O*8Cކ,4~U[5nދb-r?/ K@r;Rh0#!QUV:4vP'(uԹWw@#:־{5IP*qOd +&_lFZ8ٞ;uԼ uɠᒉ3 +iL(߸XMrNΈ%qǿHJab)zVD@VfI<~75X~x4+Iٛ؁y ^"]>'x,Oz$&U+eYU+? _r][\bE[J~ Nǿe#.|G~r+S[nݝ<-oj.n7  $_y.6kIF|9|f28oy 9׎kE2C,_QtCl`OY(֡x/p"u=g!9Hb@g Mz 1}gpqU[|p7.,|zl4ݴLYUQ9%'L_w!I璛mak&ݡt#j2|w5BnKNKYN,',',')NN3;MuBN6=7ޟ Qe9+_aun @~?~[?IQtzXkmSvm8na,Lǭq/CWIbL+{u[tq{J3ju~hG줄5G5,2N5!B;x]w`*k07"{f_dck%f Q7D\)~&Gn}D@y7̟ε+l%S]&G=Վnn0~+g*0v,s˄)$&Tثw9쨄)8%IT=4x?Wjo ´*?Xәj:,e>}lAx@ݱN'=o n<spd? W$hT?lj/2,SaI(lE)y͹o0Y6QqsVIAoŽ +}LtߎI} W&Yi{ŻhPuԯ/ yePZ7uQS>MWRi^"攏U(=f%'䞫:% w(ڼ +UWnpiN53A3-Z?]jY6 XSLքPNG 6An xb\]%^W4%x ˼P檋lX9A$QJ0{F(NDk"Zݓ=i5-߁eJsɧL#ƞAϻ -wQ!+uɠ%D5 VS PȘvtBq(ўGCW|333q|33~ ˜ +,dq_Qw'pm$?%%9{\-R5 +% + A<%_kI\<=cAh{!pvd:4nE0":-cII + 9MPYkNC#F]`˭"Ǝ~Mml=9[ +%T2˶~ +Z.6*{  0 cU 6n1xIV9LAapGp6{}X\.3E ts {l!h+kmhM}Ě'oPϸ¬sx,$)Ĥ=7mtDmTc+~F-߶@!`yEwݩu@Dl! l!oFz}t!CKAsmdvQc$K!D0ڽ}nV_/svq5wixboЊj_HKsF`MsȾOޏT3rP9gVQrI3ŽS%QRLguIɤ\rݙ)6Wx랗oO\{L>zSǽ$\w8{ +$JiDВ 0urJi1-1QGbuڶv9횜Cv 7Grs|-9R1S2*"̘l'H8p[^ +&qre W>tM1VÎ6ps.Bz";HC &ZS1a+Tw5fpt5K>#з_<sām~q Q]r.3fOINƅ OeٜeDY@qߒAQ6/Qw(|eH}Ec÷ʎ&rr2p IEPZgq L&H8=3L\a)<~ +@ٷۜz֛PUvE ?@c}n:E%쪻9.{;%J7蟂ˣLbd:B9xcgTh7)>;kZX:V\Pu\):ヱVxFq UC +_1j봠+boi0,Vkn7E%>JP*+=X;%O-nq_ & g\(ֿk g@X糠X粠XYPSXbφb58Cs-Yy wB\4Y,QT_1kt X ig^ qk4Ȭ(5NAiO9l\IX~əv=]d,3#UM8ĉÄG" F,.NpqKJ+fS|R8ۀjF`ٍ]5V2iAGw%f#kkkJ]K#$$?sE,vV#De#F[H&mJ3\YiHj8{K.$}I +#``$4'@4EJ‡j%0jjS >l`Ul8e>zlX + L OϑSFٷ#[p2/{H"8#u j~m%mT%#agؽ ;9¦#90NDGYgӑG&H$c/YHX%g~&5F*8 ڰ^3Ԯ dji6t_$WQwã5yכs\=|nl~RsJ˓5/LP!>qHH'HL +^Pq*-ٖ*h(=4EvPdk=\ǼA\Uâpoo LXD)h"kBwj^>A1j9*9K G0]6ժZaHX >"f˓bJ4:o` EXJK\UcDz" @8DXdz&dl!bRקgBܳ==R FJ +2>IH>@p;BBibR3H%x bA`ф!! C‡< G3 |#wf:tO7bEw5?v?|n{` mQy;mMlPjEIJw:0gex2Fȣ`x#y W1 A[<@B( s}|B,JcB8u= -"͝=nӸ HQ͹/ӣ.ܙ q̍1+%l|u9LVF)A܂6I;>CSRcj.n"/AM"OP)'̣>SK≴!i[q|esF>,nT X]`%w6ҩ861rgrq }&.Oؖ:3!םAɊa>P\(x'׎ tv׸v9=,S{Wt9cn+|KaR@F_)iNw`@} +ka<^`VW]9:EM6\˵sԎEY'Tŵ{l|Yoh.j9vpk]vMq8=>c\ޞ,&}ƌzg\;]W@']uu_< t҈o/](Nu2`9U4wG1cчw}įs7ǩ؂;p SoI;Ac.h1#{.98XH#ڊЉ\`Xփ‘-x<q'{޵cAOœT;˰A7Y^VjmD9ח__h_2.Ջs̼W__yb&8f +8a>Uqy&xSy0^f.B%R#䛒ȣHg~\98c&J,H#&IԠ,M %c,ڬݬ~+j.:F> KEYRP2JY!G?b(;)E$mͬ+H(Xُ4@s.=4hߡ5TNwShTGe=)=&'])dsLӪfO\zy,Q"AaWsס3y@rgldGbi"K΍GGzU* S*=3>[lv[;b %F$&3v;]h}aAwi4pX?qkG364 88cr4̘ړTSZd*Bf+èX`%N zgTxJ0/[ }-]ҋ_ Oݔ^Mfy,FO jyܲ&H5*t [rSڎpo67$xo9c4c{"4 +>Ai?gd(Og-rN,w>I$+X9E,gu>cS NOBv)G9 W +?VpHOP@Aj>k0CpU>yu^;#*14#oJ5"NJ=ΰ%<)G$)^{Jѹ}]AXWPڰWApYgx=ǥtu tU٬Eg 5/~CnQǟN#Clsz rc%T t&B<J*aU“r7'stpt'eM:=ONtPtXJ;ض+V*(EUVؚLY+!]+UGW203{s0R32+%YKeɈ2VDNjm!+q/NܤD&=s;~g+sW8;- x*FqY`800O#Ta~з*A KQr}`)5O^& T~Krvc ~좏T#K oa<<(63LD<17!xx 0ilH#A-!an&wY>--;UV~` ڴ/Syܐ'͢zCq߉+/zORbo[@ߺ7.6AdVctS Z6,'5,U ǧC۠jqhNa4tl ,y g{wSMu{P=_`?S4Î6\yK+L-凉QrG΍K^8}hFy2,(YQx陁Sa3L}vJA1;g7+^1j1CZWE/5DNE`[8Mo JvNpG ld̓%^s*eSgTS/X\XwΞݳdSPj9Y$߼[ov~6u˝Kvtp}m.Nۍv)]1tZp̧z\D&m~&}X[`QFEiTr1ה˘U.R䢏(nC<&b\hsBcTnp R'\`IQ]95[a~mR}z운 #yyF) i=>CCF>$SJ6$'22F{'N,&z*=j"7-ACdn[noiOޗUZ |GSNvN2lɧh< *(*ȽH^ +2*I Xw|1T5m cq{=9st69c/sxWggdc,!:j%5+ |-dm_25JeExA)f*~hj* vD?Bsn >5&L)*R1=g9)%|?Z+^plcad DyB(aEؤݴ.Ao-%j)d%EgI'«ܟ挰IX= 'xEN.gGsQ_a*z *7]/7OGMһJ8SU8]UFOJUF骯jWOv-[4}5r rv 52i dLg71(2&jOAt~2ϔ/8n'v3 8U-ˣ:(w3\{gh^L@Me)S.GUn!]&"D 僩e6C0yd3٪._ėɘ%T&+((}6K + +8ݿ*Bvڛz# GX)O_o fȿDK#ΤeV _g2ɿr'u׼[I!Ij_n7~|GM6_AwS45*0Mo/C<ܓQA6֑ɒ22"m';d'H'@-'&[Zv/#0&¯ّ˩,r 6,ln`J2Trbp$ + sڸEhք9\ ̬ܐ0j?Y26T}AcW}1 ?^wf!ISwO'K̍3>mOE"Z B|O[9 [Du Dwм6 +mO$vLe10~M!_A`<"Znp1R%ӋoYE\>S-sZX]LC< \/NB(N %Ut:,L-{*Њ$AoPuXvZ)ma^Ibq$^5)ػ֐q"r]Z"H-}0Sb:ϳ I":&>K>6yPkARW a|F| m&Ip; "=B26 U]bQZTY͡Y\cvn[RFSdb/5J H3$i LH֐^ =x4N71͠A7L4aauoMND֞aBaQKӐzmn!(R ,2uX={&(5ᒶFF=B.kwdqdsi/')"ʌÁZMqq%y_~xgs79ĖQUQcL.(UgG] Uz*PX|ʈ)a+eBaGY2YqcăQn4' 4*kc󚃛 +I@, g|HoD󻜤Bbyi4kOr5QI7"@{v^i +>=g VZAMJC ^c#PBeΓARĉ 9Q v>'T2Hv4‹0 ɻd5AB6H0 $i*B!Ԅʢb2?Fx_7@IczU4aLꢩTCfv֞GݧpRN1V#2w#e3b*8JZjݒ* +)׮9_ !Э}ln#NY6(EF#,FO 5-%fd#.iDa/JA^DZݓlx)y\5LgHmJ#ksLGz,KLGz%:縲N#Zp1r6>ϙU7(x⹞[v o*^V"'np_3 i+u%R ڬ'sP폏F,E0cO/9to GLIsK:pA  Zb-0*tCfAC6б +kuO;%.Ö5hAmںbZE ;g21l3 +Bd)h&lN(8sᏈ@cG'w8`[{r1vB]2Ɖ㋚ |BȝO'L8!u*PFR$4 qȚS\9 +0A8,9J8ϫnh~?wo:U<'BGBLe&,TT: O5PEa&a4Ce.**M4Cs>g3](ЌuAn/FD=|,9h=.h/" +8qL|g |lF F#+w5CN{WN#2+t'ZWi e9%#|>3)JDt\e'Z.agf#0&_UK3rk= +I 'Sq Z1&+ ()tƀ jb4n8nHN\J!'"P8of+'3~S2dIQUhh=r̷]7\Qnm#g+Q9cV-8gu՜ܞ+ii c[T#@ )zEDMT-Qu~7- K^/* xKw襂 n[j-k몈8O,̦1 3iB"YhNc.bMdfҙDnf9Y,2 s0 9Yd2 _3_[YeWxȒVOYiX>ONMsNYD۪U"~X;\Cp +He6%-%,z|N=eQHE_NOY<]Wd&w)_*G" +,T@ѢPLJzi4Wb؝56 +'| oLzm0!][h:D=+35+1陵E$} ~p~I>ٷSsuei۰p >T%<ݭK]+~:N~ۄp KV.=n +]%w@cZx;_k;<~pxb{Y$m}BkJh9?9P)<Wxo!  +C37W N[#q{KܾpZ S+{t86VClmXxBmMKdޢ9D[f|ÿjb6T +!tGc.[Z M)QExg9_0)3SMJ׼pl.+FwDc[VRx' ez-4I!Ev? ]E$rlחt>3C׿{WB./*1~g7!<19Bݑ߷M O'鷓3%@Ŷ( wT.l]!}scY/lr؎@e[XRxV/JQ,Jnm\*9HGӑZq9)٪nS6xծ~<$Aal:W܏ٴ| jLzԗ $}( hɽ_w)m/֕{7> q{[_JmEHddžSDTQ{Ñjbefd=W鐾CXIpCx,W*YY/< +w4pŠ9"}cWɽ7VUQ[bG +< 8f/OxGwW\|3E7ssT=@s^n @_ݻgA;Fo,g;ҳ]׳Iѳ_v]ϸXJwggX 3?FE.1r|޸/l %r\ME,<³OŸ n{ZdC^K +X>?>Dы#sZ>ͩ˴5:9`!6C)Ma?Vi_/xt&uitIWK}{Vh;p}}`%v~ 8,c!V؆, .{,|O Feح/U%ѐmq $zdbF5^ \wB믳́_l|Ң/ȯQjj6X@fG' oA RVC\P3`SW| Z-M:c +Jv!^ &ߝ#Fe I'jͱjuU-|rPVdMNx+Q8OΟ<+ުɃo6Q@T}fˍ(C74hB+O.r;Ѕ iˊ /_6wĝ;ASa,*?+ gD]Ge͋rckі8TQK D8-NB[t%hxNQZUREF:Nۣ 5Ѹ(x,W'L貑Ae^EHs_7Rdպ\$fA/V/VG/E|R{b49hRK_" OhJ%Z_mTh-DpDHv"[DZK1YrȚy^*i! EEBd/%#GJR9ׯ^hHc'EN KյAI):UQL63FLi13D|t)S8χ=Hf-iVY!P?+V1Ksf\=0vh4lHbp곟6x, 9h-$k#H+A"Y8Pr!-;в떲C"‰iCBE3!,`Zۊ&941f4#Nh¯.{L+N`gDƵ8ŵw|ҊSiCz5]14[U|WD~&nX}6٠hѐu;ei̧.?6C3`n[tg,33Jͧ˧OR5A9cʛ(cg;#db oZ0Ͷ5-SxҜP&2X\{;( dQ4Gӝh8FӋl 6ZxU %PHxhz)X$jdX41]NQи""{7̝؋ʋ_g]U·UMٳPziAӀ + eh #:/(q-u%~Rt΅ +ѧbM 9Ģ{ӍjU]AYQG<F@}pSN93VCε6} IgsrZ<*zVGʂt13uzgUBvz +c.|hǚ%;`)\˗iבVݮp[G>Z̖A\˗9?!q'؇p݌,[TBgoXg5ݤFst~ِvio^:ik A/Ie .?rt(Іf !l$qG}'77}/Nl8o= tIy Kq$.mxsd|CZyr؝. +oRL7Y~IP:?M?8y.\ਲ਼ yb ht9f!86EE$qNs7?kUl̈FL`lwp:[ɬ9"MҤΥlƍ׏`T |6;)Vs{iqqJ\QoL6F +m i'4 T Gz1NvJ[ 6\:-|tV txmDYHu"+ +pntzc3wS޿[a?ɿ#.ס".gpnp~k_bjϱ{u]NyQgB.^~Cwpbooᓾdſ]}\*8 ,<8^+#QNVuڰ \N0ڥS;l;uT% EvKs#C!5ԓ_V0_eeˁ3c_>r:RB#eNߴਲ਼`!F)+H#:F#h]EZC;>(;* *7ǿ|K/ƏCwn{n ݉u,Ćہ c7j1>,XZ_ۦ_3_"К׿$`QTF--@#ֆ0_Ic'$ _e<[J]v$Q|FVvIG1 E~ clu$Գuьl=e NjCeLVS^`\UXJk7ZW-3'pֿͯn?"ZQ"fCgIC 4(+мjO~N[ ÓߚX~wA< ò8htȭ16v\y-On&.i$´1}0:h9U!ܺڵbxB\4 Ca@-)tm6[@%~-#{l\<%Jx$u}˖v;_oN?ֻZ[J!WY]cw]~cVUiS~pc+Ar֊WH:W =OL ػL,Wڂ꠾ eyt~y +Wnu #HH\52[#$lĕ䭨wE}+kt8wJB]=/hM2wŪV:ҴJgh-%i=\$i XЊ16i_OЁoܧ"=k85Jϊ"Vgf\Yg:agQ?/iBǷ ]n=.!iu4hTL V)T;6z啲lAF'j6Imv" Gb}~ыEtB34p#h)\-0%Lmv^Vт W㍽_>%\b k2,Lqs0l8P.ڂ82y}+֭4}luyѷ.l u5 +Xޠ$3%Z!6"Ba8w9^0:Ƅ6"fOI?sgp 6c8\$"i i'3XD?Ŗ5"=yEJ +1Y 1lk +R6cIcQ&|6)ߎnXRGϯvJJKjһJ];d0gh642ۋgJ:|s_-+ʭFҝ^Eh--zlѢ-uJ$hI04~ּpj^{Ig ^UyJkؓ|Zb^q" _p9r[#8Qt-8}rŧD +]FڕEEl>ZT)_{dLiCvO*W <AB^hU\d^݀xUs'kݰ;4S0\$5%¸_D/zX=̙SޓfTr`7.f$m-_`P*M+j֗2d6I:XIֹ6 '+%- 9CaL5PZRԂbήCB{~TX.27@ aS9ćRz;*=kSϚqF5Ygm*z(gZb֨C܀Qb[{z%F-!f%(0ѶQ̜󬰭dmSjSx%7%c,!cߙ> (0?K4$uߟsT$^"HA;kDt"z_E\*T"jjt_LH?]}pTu׮ٰJj&!5aj5`Jax,z`&3u[Ee fXl,m'.#iĴ &ecL)6Qpmple`{>}KZ?@o߻sϽa@]vLB{Ih [Xqnj5<$pbय़Zi)uF`)mlKQFVT"]Wx˻&]W!X2ͥ UtW=1uNG*G,|QK>A !=-P(Ї|**+ŚM _ I\_I1B55BțWZ FIsCʤTfK~ eNT`9e1*sUW5ͨ,i0r>pP{D*eU>yCOmBtp1*]VUaUfpX-:Q(Ԓ;[:rXoL=guX} 尊_J~%鸚o:֧:VB=iđ -A\ an +/pqftXJj_41zsFr3`DI! +]<\NЖpQk!M衺w 20y6 ++j}jҰ +O AKm:zfϣH[uhuGtf//&wT:]c8Xj9;*w`2^{n-얊7i k_jrMO8IeŇR[?~e޺N#AuG>.^Q 䏺''R-N|b!z~UQ5[q=FA?Z;jvas=uDpRVl9VF -"JgT&|D]OLSz +R Jz+(ݴZj[UmVmQm :MU+CR +KN0m(5J̋dlȿy@ ؅o\Nn\PkuoVwpW8/ZXa6]LSbeҫDMX}`E72ݳt:gߪvQj;_~nݿ{*6W{r +wprO{`AV_H_HGL!xVtXNH^r~(Mq~C`is{leåA}YzW'SWm'P⟢XmX`r}јR}(C\ +Xa=,u }>L5@zؒ0;.W*Rq€xEڮ{wIxha?j:nų[|oj4D?UQDx!O_]dލ~}սE~2٤HRv# [QT h*Bv`HUҡ{.:JE`ĉ@O="?SSXd² +Y{RFAt~@I9_cLm:aGERB!)Q׃?>Ͷ2RI^6cls}Kc0Dp !f\tH@H%!dHOB(N+2 BzEi+YrL GHWU t-Az6IAϐa ewHA݁Β_fBzyL$1n|H`.ّf7 +fGV0[@0'D?{`LR,3@<$&M?3,x~ɭL i5ʻ*_3kKb7ZޗES&6#cwՌݑ7 uN/N@=5-q3׃DpюfߌK4vuhcD'[l=7`&]_)/\W Of򴟱a1~5x0JOS?A&X!X VdbZl 7ᙷh=6f#@I–r;!C78 Dz +N(jg/G,}:'hw"M1AF 4:$ uL<Y.Ϣ*I#%r +k,1=oOY 6If]/C>1]/u^meX=X_Vi߄KuXYB%4~%KѢ,upzWUwL, ,+DQ77a<֤B@,G/N>wuM%g~`z::͟[?mmKA)3W9.Ϡ;:,[Ο_1Q)Y{.uS͟43?i*{rdΠѮTNvqzS}2~f?6)ywNoOZWJmhO0;<Ì7n+&F?) +/_U9*_dN.{7>(ϽYw5J@X{,\\*1ެKX?;SK{ie7Z_EFԑ +H1 Bݩ!U0(@GwVR!R=]ai9LJ +X(Smt$\! +b@b*Ŕ.ENSs #X)BJN1nw++*8Ui$̯#ɯМʯtX&CO9/bMWYR0`U&KqɧbGŐss)΅b->ʷGof};´|ͷ| *$Cq=b^BʺP*)օ\{ln&R4N 4L +*fbo .%L`DPedxTD-g'3{')f|ffH1$ѳChD@kfhO-3hodc+`hegazdb9PNсpAaˠa|)Шz@!;>1 +&1!3֝.Rpp?E"#1V΋\4iŦYqg82T*[o-DDaV=9mTzdHՓ̒A'̱ͶI51 Y*dN'*& h#lN=(;Ry袼:7aN8V)9TzLRC%`$FT&8Kr.X-\ 8FaKeʹ<\p\J}#sVYsMCkGR.4dO1Fdi)c/bb!5i,W$ʭeWf%P QA^ s΁I - ZaW<>#O,rS/P 9Zp b 72 CXMy w0%ܤ7)F9 0Or `#, #k.,y8|t"R-.U2VDGy~`2R7,A`$[9ۧ %JюɁ^a0[Rb4RdĤ%VVw'!߃lW=\L=xnÓc=TxLMևʇ`J) 6 {a?VXi@<ۅ(uXϻC`إCIBLh&S?` J‡=)b26F$h̙$* +u\lWˮ o( ^"bb|GWOۯL+dJkOa?P6Ǻ0xjgdh2Yb9a"Jcf=|")2!i + <,Vqd4rGX}?$_ץ]kW9TeqI+׵"ίoJ,\o(%: YSXS ˄UGl }U>ՙ(mRWb~jO[Zv}I\hr7qbj鬒/&Oq.l!OVxp%V);e?G9?-9ϙiYϑ!O˔?Gs^'M2Ft#aF~Hk9FH4Ύ2?*ޘHy-oq=JI|)I"[Edi";%-&teYgNOd2E֙Ed\k";s4:u + +,ө<"@AKYޏ&wM:~?WǸCVaudVw#lNՑUXZ:2՝EX...&9#Z5_{-`"o{q^ >3D:ņbvO@_]wx˓%z\" +{30TQ= tj$u6haiut|}%^1j:U +a]!ubOYw>BZŽP5 / }O7nVՠq`쇳"ICz"Ȩg֔:D0_K*4A Z}yE*J Do~4HOA|Mqn 6awa NR뵛 9~#, b50Wd䤲Z!TS5As$h:I"4 f峺q֪P)H#NgǒZ)[P%\Py M$2D&Be3iZ-[{)h%?W, 25ZοdtٍCU62梂46d튒:h3 +%a?:98$h RdE``چ4 k8D?Ybz}s֗|_2^D\l>wG! ֢s!GGZ< ~Wq==u2=A; p΃N+m΢}-XbLX٣/X*Yf\H<'*B. $3 Td6eWؤZ%Z[&zKAZP)a,xvh`a5S%=^R_G U7jn-8f-ΓwZ$1,PP)rO 3*r.%M7.R>;x\t{|SL!}ZLw] (r5M[,.=`(G`~{~ףf7V B,`h)@v"/ msψ;ƹ(λS?m>9!c0QRsy0J8,%U+TNٛk1 + (w%Lh4YN c%p$N׻_/Mt_[W³Y 3(5ZXl֡ B aMXTVgqrQ_}w@#n fvԇY +P0۱ r@[Q愿~A u &:$M@#l=-Y׎u͢@չv!옠Lцꆯ·2I+hsxkỻ{=fq.&Bq& 3[/9rw* lt#雖tG{Ӝ"ML[ z:ѭ2Mj}4}~1Yۖ+'j4|.1qppQd+ě~v'1ʀGXO#Xz\/C5T'flI/o=ͩԷMvZUx'O'[0<\\U$qFnٗ8sET1uԷ7fǺSI 4QtzgUĩ'~.&g"\[!_Zx*/Ġ-6kvj*Is7=$>5-BhAgp HSr!|A.֓ؼ -죽,b o&y->~86J7ԝShٸ|ͱ +wޜ>ٰID? P->Ĵ!-2W|]|GR%,qIp`1^qr]-uaJ|!`4.YT2k8ȹ&C&L\u.Eeܒl-"8}_*wk D@Sq(*w2!m|Y2|>/Anoj ]Dê%)6- +b|kvmN+ւx`j^LIh HYnk V{H:j[QkS*ʡoj#*?uJ2Dhe(u=tNZsa'A-Nkƅc1" < `<%ʏB?oSw=XIҴ2XJk|PM`mNZ9vd[Xϰh'{DY2l Js)xYhˣ%hFܯ}2ϋIeDZ_b 5(3h!KWqݫy]R(LLHE?̵LLؘ aB^UvW# >V%K&J9xe(`V +HF T *C 9?ZrQ"i37u%ΠMɥy7e4Q{ +!SA=ebv}OZw^;?y5h5_q>$R3p?^V~_Vwv|>a&cq4=>LkނN'On7Ɇ5F&9R D vZpme=2P,BEug/E90Ψ 7}(6oJ$QK)!`.\SaU7Y+{u&r1M\EP<'IHʪ:Y*jٶC,`ŽW:l-&wEY3Fp5#~xLYA`&jܓIEj51pxX3mVkd ĜcPH~2MADri0X\ͶR-¿`hp[z%^/^zIk@V:H:8z Bg|j;_6ɎC4 |"XWykJA[xwncc 4Q~GJb>޿[uK@uevn$UQрe<lvIuiR⾔E= |+_i_W@2lC.thRoſrŸ;֢PiFђ&sIali.m2Im ?Dj^ԇdXHkg*G-ՇUDKR2-}$CK^qZ]U]@=#exu+œ/5/Os)Y00;f 1g;BdA%1X!8S֤[Adƿ7eKܖT:@Y=#k#Bd(jDCg%J"- Xk=ʸ[t[%hĈ%I I˵cBF;'N:qxj3) ]$'1;yrn)ǍT^p 28m)m x;xyR^s ޶ +2sof pu@[߆5G놳-jA%K F;]|'DkmJڐb,]'*me5ҚeEW1fE`ӖҭTmWpmKzPE7d0616SKS#F/_q۩;དbAfq] V'*ԒLUTMXOR%]&?MAiq]p)YCy)dg _@z֖ Tt}|31%QLf Zue9RgP_x*LUqS vY.TpH3s JFeI<$2Tx.A-p#xSOB +lgHQ4H9>4.b8ޯpl,;iᔨ>5#D"4ǤS6NC kE MOO0c}-zhIsΩb 11ZYq호CV8Ҹ1qN.gF$Ēo&/C\XrvMSR|%xxCVaߒCca4`>`f +Ya9B݋%Nhf5q3ę5Ԑ5 + +{IjKk)NW;Ռ%% CºZs!#5mS%V7 5t)˱`Ck - '<ȃ݃+ t Z2TH^E1#"B)28F|_ N[.m~;oEl+j^g8`HJ7k_Cmr/.kݛDaCخWjconڕ!lIUpxXTǁxxutȕ&y¨]aJlU,嘅/lZTbu/PAA>{4i'H>c +~נ,xlGA3N`- /!vϵ0 +_u"<͝j]}V9ذQo(k6b~~y!Y/7) . [߷4fYa.#=bF&'gH6iZzx_B;?(dGMm%m63 +ΊVXIu&<|.u"1%W,wb̚ ɴdi>|t:dǪC+cUꃝ3I=-)~kzrj.P:po0PMC<`kռԅ稉$y+FI:3/1No$T_romEb9,;L sXȝNjLU 'w?*\DȝhG$`V. 9,ux!P<1jD +TI 6I?.} + CvQqp4{\øxqa\(pG-<@W!~d)cr=Rμqj2t o|l΁|wzwgo +LaivghPr+0EZ33,oxC3 EM9K &Lj_^, F m[z%¡Qoq:f6.8Ka^t_|pb_4g#v(J{p{@EI R٨ /z[iRt@H?`ׁ WVc¼iU7 2^%ި đN Jr) :0,},{9  Dy*!F'm\i[~$>H?iϨa~Oܛ !Aa3! ci7M$:m)n*9߃DM=1FKG\|)P"o"c P?K"N?TWW:&؈rDV`y.Չ0H:n_KJ /PzkpF Jx (=iBق9;yX׺wPpQ/T@bNw?H΂gQQ/x +nӉAN}8)Ee(zH fqG2mT 7C/aVGpnss 9lp8SI<@ >Ƒ=I 4 .'HJ@RxZ*նT2;'\"ï4u*d:0,S )k4|[1Wg}zp8!H ]ŏ?/erKԊηr~i +镐OX:-_,凌W_]}o)Ov{S}qG^ʸ 2gh!vl2M2e%?C߶d&V4>U߶M)zIӧlGŜߏx 'K۾a#M:F CLlJMN6u[m⬟t rC1/м XE~KuU3G)UpppOިp>E٩"|6UȲW nH׺p-%okf C! ʥDN/ ˵WU+/˖(U^P*3ꐖw2:L8~An +_ՄoGgt(RsO3dP iY2\E1hQ QHM`ds0շbRf` /2-;7 ?~7La$o.`ߐElayDIu/Q;~.rl3&KnO+|So2?|0 i!iDOWo8oXa CUPX.gPhfl1LHX^%2bx&hdNQ,G ~?\\H_X$Ɉiμ\DqgJ]3d6 |="*"?|`%x)dȟ}?]~ះ>V,G,Yӌ~h C8J;4[TTIJL*Vx ǧB|g) KYOs4wW*Ltao;1ܳ %܏[0R +A'b%MHt $/0XJ f_-9a 7񷃟mUYcO!gLݽUy?,pg_g\Q\IPOZ하-^ Ơ-YU,ڼv!-2 dhnY7.v#LR[(9cx?_q|Q_zcn +MUG om +a :k&(>LJF*iJ +bV%wgg8sEIMz->fA!%4i*|y4Y0ESq/a%js_U8&KrЏKoJ8ТE 'V /TV!d.k(k?2@|ڝEl1YIH͈Q}ԖGlD +eO ٰt* +@7*(/m82 O|9bq_N@gϨU7؀nQ)3[1V(8RLΑoFo`hrIϺGZلȾT@Sy'$a֎zO@E ?N'm-l`f-z2(-KmcIA1 8ӬM"qB˨O(nf#7qನpz/8cͱl 0+ &Z [ )#"3΃(qnfBM˷L?ـh*D8<VlOܮ"uJ7 +8`=#17PӇ)bqI'?CQKG󎋛4zXbw.+}`}; M6k&Œz;"޹ho[8sxV욋b<^|nw8j yؓ8:1 <^#X=[ /!ooavR}@Waڀݿu)턬py߭ؿ7 {$cC~"z/ bAzN:MAvDuW qݢ<=v9̩B&6>`r[zY +q˅1fܿ3TkYE*w ܤviؑߟ|/+"h)cv3{a`7.Z-^̸! _ƽ#S ȃ"mFc9xE!KujyBx e|c56w oQKbF~Ys-97#3<K -/%{uqSQ&@v `bFVn`6-^!Zw d< JBK0Ѡmf`J' v%>>R*fﱲ4d$;s{|IE"~{=tg=yX{J6qv$(;>ɩş&~r~Mhc3c<$3;'xH ߝ#dz-'8x?7;Qފ=ފPwPׂ2tO_ۏ,9In?m7>d@7|1߇D?IQYI q:kinti;n i *):ݤX9ba[DsI5XK'_H܇674t{5aeL<9[jKTd96\¸9al!9[gpjsRAL$||\Ǹe)9B*'sq>~T16 460Kk{zSt#mj +xfx{WbP@4 c#csMbI3A5הd1d7ϞL0FFJ)vS*V{[%T |ѦS=RԘzB2!`6wJ{[`eG%lnS?trk2Wɚï)3C%N6az*YCJt8C-xV>([QۖWz=ThTo⡽jZܴBGSyQFnܚ3[{kl-ڝ<{P,kvȲn#˫FFBF.-JjU#%S(NVWvӭh'㻌IN2*#JjWl +-Ҡ]7p5]K0hK.Pfμoq윝\/ڞӑNSF)r3dq|iYu=T-h2G푈4=i>g!bk( B-te|GûZ!TlllgT9%ldYY1mg@ Aq`T/-tyMyo-^=@KUt͝UHgyeS,Jܕ)P ̅nҋB8i>^D-7%j2Sq`jVKd¡ooO#- YƏͼtQ>~.tikjB'jMt6G<ӺdзT/w&_45ϿޕFvRʲ3K$^߸e"],aS;,!LC@@ +/T!'".-,t\#1АXŵU-!j+mKW8|'5ڼFsZxW< +ױ/ǨQ d /8&|}?$/حvAu}14b ®_0xy?_5F՜Oz +11-2Xx9E][8CbZ.tgpGb ;}PؼB1Nrރ!zR<]F/zVC~\$?'^<:G(g'C] /`.@I?[TLؕN-:ŒRgْ؈0g + ʊe|`~1~i52\`݃Q֒V%kH S 3eHU}%~@2۾62FfۘDd.3l̶ydֿ*,RbųHMV7v>>TeGPs>R[xZt-}.EZܥ}F<_xZtxZ-*+rzhmbW۾JbV[%};HV g O@lևעy-kq}NiU EL8- ?ʍ/?~FؒFL 8ll7:/"˨Cuc:/2jfSwiݳb~a<t#i7qxA --hFج?5p<s<4;0 -SO7t4TL6=~Ԉif8}^pMft:ҿ+um>[|Jʖgai+g=%^Egi:XkiI ]>p׭'^fsznڗ^3qMzoA+:׀AѺP_59{Qy# %ԘUHuC }nl? *^V+؋bĨ乾0U;c"d񅊣J1ۂpP4`+xi!wjT!1oC~}&D˙Q;fJ6%߉!!^~;٢P?]҅z=ן\rdYC]oq t^3OnZ 3[ȧrjyF1cOp!/ :}9;X7`\&II,5%#|<-{h սD4x(9pbd̋!uy8pf +DrM3 5YI@\^$Kc3+H +M K `Ej֒ƷZƷ0FK""5 +8JEܫ`>aSon1b) Eo- uÍo]Xd|9uK|Ƿķ2ofw xnIK>Y%<ҦH$T'G(Z+'>;fꁃR#ߘ h]&Oy-Tv)?g2<B1nThkW9k7QC$5d"D +9v洆0VV2X9P5l:9qXC!&̴#sxuȜtd u`\ xz~9@;}9'?ZzU2Eԙ&]}iz+!  }p3@K?uPCUP +BPy*C H$z3 t0'[nm|+@vdGb\1z On)mSд]>u,%R>aDUM>y_u7z[dBV>W" A|b)*CuI y3FWq߻AZ]-~;o[o_)e9o?揽Yf9ror+Q~))eWa8׎nn}[QM-#1*kZ9 ǹpǹX- /ǹh wV88MƹέJ<U8W@zK;|g!8eCpZ!~i;O|!\v |X [$zc3.<7_ƘF}<|37cnK,bN3a@b\47GN^+;d6r$p婦IuL4j'57#uݣ ÄG)Kn^~;c.6^j ^jm +L 2RZ.6j?J%}?xoI>~e~&&d2C7ys7.{RrℋZ|pqX'1I%2@A~Χ-O$iC+x5Sj':I-!ęIuI pϒiow7wvEvqR3p4ܺɽ gΪq0 r* .x 8Zƚ\6a 98xJ&NddiL$ d3 1EMe]c ٓz[/Gǂ umBI= {7zyb~Sk=%ZLXc5S\qJ,PseiLWGw7%{D;Vij~4Μ&/-wT-B*C?[p,c &5Hm4Ij7z U5<lYbVD:iPK j~iAw7wNY/ruü DV1S6L0u~T +{=8g]PzDF腬MAKCVGEI\j%.ocȬN]XFdn&"cDE=Eil̙=\vgeKQN6hwv 1A/I!2nX@AUsΊ,U^tY {K +qrG| +WVPI%Y;`v{WdS^Y6I9VdeTye|pLibKpZ[ţqIpڪuJdX[áJss$<뺀OBq +5l a.K~Ǣf{df{EYgk]:]EY'ޮ5l笴WzǕ?4:5ݴ{Jc8-fkG]Ϸ{FAp i8K&6IFr01nv~g82YW@}˚lL}܁G]ǣ7ǣ-<'lGc}=ll@ݯ9hq~ 6)k7I*FK~9/[`0\DZ2(3QѮF]v?{3>F+S;rՏ+GgM76*o(%*-/znv5О8 v) 6ǎC-q8¡;c6cʪz:p84phqsB߉Nӳ)j?{OO3٥F$>> +?ǟ=gsՀ?{?IvlSxp3=Gk6PC|?}G,d k<~:,ֆׁw6;廎GYxsqSA-"x}]>嫒IdzvuO\r( q8 Bqu~وFS}I-1a)N~.{K([؋I<}tMp&~v,o\8'>nħ->VS|z[4>pN*I[ӟotsRߝGS}&8)N5é +nOqwNkSqjosv7S_hS =MpSjY!Y^Yߋ# ] 1 Zt9YkH>q}/Og` FئAk'ןqYa/iKfFˮs)H1۰N_K 5>Los|C&"J=4ܪVs|+̼^j<`5/$֞ZoqdYj9dJ\=.cr8MHHi"0)[ڠ]`8%d4>.2^RD?PRD,>4eԝskat+J\IzC,ƃwm)nߕ +B'$v02̵q k|ހ+rx(.tx4MXL|3 LfAINo fI;6u0Q 3WJwpWxw0ŒĔ23T,{Wu<-۳K;QHC8bY,m24\.MDO6zuy;]xtt=b`'N<]ӣ1V +Z^Kva谮vX{ЅmUOSHO;x4o!C_{ȫR&|Npgx&UL9,$EH }l-B)'qF(C(Ԟ7b=1:(i!jL*idb{.1Gt!kRqApٮRo+&1j?:QCJ-Noiw5\ lwJQʳUpc'|/V+yWKװd ȊvbŤY Cfj si|2H+SV M21jn;z4%C-u>vo"X_2 ]v޽ +cC&4x2vJ5K0LV+bh6NHi>dn>o% +෕N5/dBPd_5!t2f-~V glrH]Єݘkޕ$Ń dxD%<8Tjr'[ ?ȷ3ii| ?ϰO<7v{?H55-V,==!!Ar{8lRȌL[I忨RN+`c:7FtP;\׮#"-犤ƱGC?z(lc]ZC2KA(+-'.JƠG$ |zr-Q6pN1 +cY~Dl`'Zⳡ{JGz#~28,_ b3#Oc`jp^~W5̔v#N2LGbB΋!>%L/#^YΏVSa&4@wg$𤭺U B;IHAswXܺŒ \8S2<$ N %U=6:+nA Va22E?ط)Ĉđp#n4-p(m.ї?b]w!^gbuqςؑbƜJ eey3{Y~~UeE&dHيxN%eP¬Þ?HONVD(u_5#uoő.&_y#i䮐NYkTZ?_ _ %\%O1Y.5 8M#5yv'E-4:!*]B+&k:((!0VtYfAO΂!%=LKH˒]o&Ф0_'yWdvF>xOww` &#e<}X;ͅj~Pqn 7} bJ}a; F^\[x6/98 Z `3>S>F.3_ ` Elw/N>zhIеwZG5|_1 t:{f8~ +3tv׼ 5Yx{ABn1NR.'"F( YZQ +=)Q +rJ̿Gg\o +Žǡ$iy4oJN~O1 YK"|A[C`1ç>uqb'^u)~8 "qA *6<V jeGlN]99@ϵBVu2фl$d4X]Gp>za"%؟Xp{'t@~as{I1ڏ0e |4Y5ն}]fr ~8ͭgFm㦡Y9E'Ż  +bqsSL/o`q.@[/xJ5d`f9?O&}aGiגKVK8%e=Uy_\ +A,u89Y?`jsy"w≣|ˮ`Ie`PPq^0ϋ [a"fDiS@e|->wj7 O2thK!$ʾD X7ȏOO2Rt< +ix ym% =D > xx!рߚ"U`cd)oㆬX$eg@9JHuzU9ZCr:,IH#jp [I( N9Q2)0C TfEA#&aB2hEږds,E^b47;ڧ=s; ?Y笖Ef"i/r⤕/.;7ŴMh(pV]F8=|q<e{ȏEg"e/V9_Vb +W8_L _4PTb^ M5w&Z;RJ䌑r!N7;Q9) +R[ beh=X;dm᫧T6Rf_I )-.BW9NmծZGRJ{/C&ل"4rSJD:0)9!68&$4TԸSVbYd1'[G}$z55uaGz0nN9=XϦT}ivꋢ,.1Emw?5& nP*1@SGOR& n.fz@Egj5L2)mov>]27JRpT p`%mR7b qެd*Z8"HЦs*%x$p &]<6a (Vl&d>1֥hM+<"%g_σACV&A*A RhA %#vwfvw3yww{NS::NV7x ?TA~F(}% >YQVeLJd.du^;k)tBMGW lM^myk@#z<`~_8,j$ .$ޚ¢_ +gW=83syVg~ų6r>oɣJFxN-YyD~+J/rRF\ObTce#J#5jLLkHh5iJ&Vd]ĺd8}ފ:u;lqó;׎0c^O{x `T?Y^8m6[qY2N_UU` WeX`[nH!m JGHT8EJQ`x}TUmj*(iX=:|U8q,l"ƏͻvBjD%b}26+1a:ϰ52*٭άj,Oo]u_~7`{ҙ1Z?Z[o=ޟwg!5{la|0qy|&hӮBvƒZD8Xa kݥӥhăOH9qӽq퍺.兿 ?ŧ.YdwoU}aY?V4yp FC+cn`g~?oު㶏s{{f~V&^}%]ا> +j.AifmjEm[X_#5\U?bX/k<8ԫq26Լn'*26&&/FW7ꚻxb5&˾?&Fg+(]ZM_hm|ȉGL-' >zNgSQyk@+J>n\W)GM*>Mx8! #*T x8d_"׌'))@X)>ʴ0N/d %`cؗRCÒمX4PȂ)տƝ .beQW`F[%a=oPNbL "i+¯coHg?UW. NZyBW-}gq^^ăL5N}^ZlM+eUp;dQ>P[26%҇Qg3NwvԦ>/<˴n$dȀnQIQ%VuFN`<ɮSFZ(#<zXZYI +-03 +V}&21)hU-쑖QcVjzխ1ҩJ>} +ZR1 P} "#}FYc2Ԑ6.Va#'pU4 Z}G] 4o fl%+2pT%"c]2ɲ9xٯ,I$QW3?+n'Ȓao_zK%lJ&R-g/@g",-VIZ=ZHPfLfKH2NYx&gԈ,Ʈlr7fe;"Brj. +\S¤P/ +s9 +߰tA䣝VEuKGXDL,PDҠN_x;dAZ]LdPf_&z-8MP^n\6`<[a[5Rd76mE85tnY(Gc+kSWVyk f2luowJ@e,vL1kwCphU2/ՕT@_Ckvɯ{Hڵ=/pqe+vkB3]s$+H1ˀ<3y\b]4ᄉax}St^|2%܇>ZCH O +dJØ\ucՍywi;PsR2'4 GWY?/kFWU7 VDc@{PݲlYRԨk3- /j6+St@ժQ8s8^ [/x:bGtQ͕˫t#x7n~z+6/\5ׁEF5)XPugH& +-kɽ3hР"L)#M]1#K%HRX<^vx;{&<qu: +SG~{_.630aMpG.{f.|S7 \hI N{P>&aqo냠'C8G}o]9tܗ#Y-kXUw5v"[cOMZWc+KItI8H5yI_w%&3շHDmrWİ K!Y /ÓX=oE0,\uD|;T.ل~]y5WzDDK>YEDCs_3£JD}/1_5n|H%B+цO&,kKL{$V nW5|QClDLhnW6? G@-+댦{T5W4Wi?noՐєQuJuщ% O>|2=V7}bн4!OxFh֭tej$[B ^5d]v1 4y8巈1`8i_&YX9CQCQ_P `2e+I$?jo`hA&mP c|.Ȥpte{w181Cf<ͯL7G~AXV://{yƄSмU` +IW1 +h ص%_6yNo7TNnT\eMU7[ )i)dpF[wDHv ?#deK͝QA}v a=,"j5Ѽ}ylu2u WYPoh꜏M!>xnPb`"^xs¹F98T7T5o +xVfhqg4C,j!i#CƋRܐ[ջEP L"hpWu솞vbSH=j9$NZqX&QBXu$QEގCI:9.Yy6Z.QC3 ڴʔ1hL萱&GW#d)S獦X,,L/i}tzתIF^V~[Ff~cu%_ooa cK<-ic"X}tpo_ UY74 0rȔc7%Oq }vNJ륍OU[ͦ>zw\[ +vY]/ +31*w{ +7`]1Qy,xg&c1KByNN:n:!$WBlgGS#h c\2‡y J8 J<  +VwXo֥GHʦL$x0t.@HqO}dTmCFcûܨ"FKl!E;6 v%2Ý"Y諍mȫRmv m]MQۗLf3P{C0,i=I,Kp3&kݣN7PfY~ !1b#::}@ڛYM bX_ dn (' ˊ|]Pȭ$?ϭVtv,ʖ=kjKȃ%v/wCA#&j>%5俚2? +_&Vʖu?%=Ug =Off^x+Oڮݢ ~5<4?"-X<="WqQ;؄ _y8u51la:hmY?Uҝhhc=mrEm ;ִc~IJάv%^u2֠\Y/F7O%W7fi_\J8!ܩYy\Y9f0]0eqD'?ENǷz2U$[/NFHR+˚Tն ߯N3QeHj:?U(Ѥ1 -x/!SsjU *m,[! +^I:soU%HRpJZ+8-p`h9Ǝ;T1Zc0$,ieo+0w1KzyAY;X#^^ebR=3x,d)iN/L,kw1A 2bmAdסت^v z1}$`ASbFH?.!s &+a6TĎC_$n[ <4%]Q<4_㖃Sz~m3\kUjubPeg۸dxHw YY8A[n÷yOA>/-a=ucseB[ La<-\9K <ڇӊkEm/HjeNG1|ٰ!(mr ʖV3NZ1LtQS *jTjǤr=}D8. p|m)gdqܑ+Y8=X JucMW*)w+7<1#e6\s 1N2D=QFlPxo3tÑf$V֒%_{i޵I32E[+D"F:Dk݊""GaEeaպF+g7oL'ahaB(&\#&t[NЈVvp]XW؆OMwSp}+yeq<(J0紡@߳Kd66NI^qfY7 ~u.DҬ~_C3K#sX:O -je/'[1KA&fl 83 J8O%rv/K_s[2kma=f%BcVBj&hhI ',o-u橥$7xKZǏȉ@|6!bg*22a^PB ~P!I)K "YaS!M.\L!yƦ\s#ޗ}/e^O}LҎbVc6Ažs\LyFonbS,(O[s$h:94i:s%\v 6e:cnćdhkmwx)[3M'qH6d܈IΧ~eD?LV(FvL20We]&w?TNL/NW3bCsZV.K/X"8yFwfno_Śߕ韞V#~8?Lٟm, +aYPnNƛ*o6c`$=\O96cM2= v)BFѹ5͓7 +O}nS@#1^^Θsog,Bvn#qᘌ$ٴ#8zVƼqzwQ>^ |A?UH` +5JN,cՙᅢK?8#G pօ9 A#C62H ɠRt![Gc~w;X.iv}{e:B$0Ag򈸤Eي_uW9Hɼ;gs6lGo6f܋dnm[=KD{M$z0}7ԣ zfՓI}'hw^K+]qRrM_PDgM5QE$ (e@GiAw ?m<ԟcwm86y\ݮMՅ_M}a`m4)mW, +/5!t[7%囷e9KchRyS1ͳLe-E.St +il_ao!#l7>JnGFƵؾrlO\[n."ۇxK-d-oh۳u>ןQ%.:·1{su拞<IsVG;NKFrE>_~Ccݭt`ڽqFzfWv>˜ۯgWUۋWū06?՝ǰL9oB_ƜJ#@4̇o*!qTt.*O2\hEUoxk7zƫNJKVʹqītXM7 ūx~c.QMbp5z vok4>I,yCݭWfW9'qWywS+)-bRdxS * bmv3ū]azknhƀWTkIdUDžՔRynbQ6bQP(bQYݛy59d8.#6FBY< *ď%-B}dQA +?07 ~e71L&[,LYXW˔|(\ZDceJ/ 5JЍ܂& +թST_jӄ zZ=& ÿUw:ﺪ=̻G5WO<>kDTzkt||g\ƷSX)uPį|0%tR޷gǯynG=ů-į,̜rmYG.'~e +B +uˋ†>wż{1QEc019g( Xpyc]OlUo,+-~_wґyË_ʋ_9ˎWܪگY<lVKEkH,j*L10ej1? h s[YPҏB!üSؙE' q:`=z85sW:XGwYP홆Ej?a- D$O`!>(8/E%Ah 'D[G8OI!ܟ&XUǰC$Z^Rz:f7V&;27]P% q9}7X+m;>\O_ RzZL1iJ_Owf/<ӛ{[E;ŽWNzƉDF%m^>2 FWc7K/Bu1rsBp(ޅȈ076k} Y/4R}BxI\gww Y}:yC^/k?l_ C9'D;U-Oel;$@\1/&J -j6Vw|H0H\#]L5Z7TE֏.|LZ??)~ f)85|ߪ:ل}|{D zzvoo{9 Ec+dpXՇDFUһ`!dza؟t8>;aL%{r~a¬L#p!y(Y`e.3deet fc;@sFiz?$0# +_aAZi)U h*1,JSaua,֧f)|~u45MT3 NЏzb$&9 ]M^u<ܪK!1g0+(sg'o@%rC!(QgǷ=I{e>) K`6ԇ.]/([=e18PoK;)/x ۧ>C} ^?Yዺ2ҚUYk!CUIn=)eiF:Yx;z\t {2ȋP? Wߠi}v$r֏A) E.aU9oA-׵r_7O_O^Vw[}})32KnOR^x(>IgGc;\kyM$p雹h Wo'k㯜02_{VPg@j!RȜ반ZrXS˷pXgہeϼ n$qlX<:+Ө G>,HHJ@ K,<6ЄqVk?Q#͎C!/ V°r% U5$§өi<@ȇFˤ+Ul̷~J>ȖT HGQILW=@r'y %˛}gþMpDH8m[Λ}C:>K+ !s*gyř}NBi]ZRJNfs:wHH\HYvzjg[0E>Qw'*|)'wx|NrJ6# 9deAL.) s Ahskh6mh` ^'qbtިy-Լ⏚dԜGͩyXΨ9ጚfei_+4jPrrir ?|^4&IJ( Nz0 6/<#'omxyY>swP(8PJfeUd_c 3˅e{ׂ2CrArEr$ I`v$Zzo˵ϰ%ޟEzƗA9]|LMe^e= 1*i[p-}xH?Fn+J=|CX,'|qԳ33M%NwcIHKͽ7,*O/+ +4ŸsNދ7hĸav^%!ܤnISP(K')+ WY{*oYO B `yP2iǭS45uN:,8ݶu!5kAmtA'\ dk?RE~KXtQz5 +jn!yuFs9Yԏ}I"YS\/W!9BC|}4΅z#jF2%+d a-'})6X۽[ml|Ku煝oB(_( +(BhxVw󐏻uT7;z7-½9[~}Q,||ܛpQ@܏qbu0QY½آ{u5Ľ:wUw\-q?Ľɻپ#y!.&pwT3rb =y l.qMcmqzX&9%HF%،焵yni!uheݡڪ&VRgso5%83grs(ɟgCMLq68SrNqi]ThC/g͙;t{Y`Px/fgmV,ml(sRo]^1>uU> ](h0Dr "Y%rXqo.߉ZTbrc9!2 < awΝj@;\Yvzy-3T4%O4wLcġĥi6Ec i$ sh<(_@Q'СS1_'3Nt򚯓 W'Gut24{zgNt+h|>~ɬL#h!d@'Nje'NYK']?AC?h ez\&m ʡl?y>^PF~B(]ylUr'l +IsJ9lu-fe[<h_}ڧ-.[,;ݾ[jk]j#U-.UݤmU9T+43?QrtuU;8͵QZCڻaUUcS$k ruU1G˟ ;#Ĉ9mu +:Lj)` +6'11Mulri%rc.e'l3gs@a?\/]"z={Ssn4{Jmt;t[kp&}CPPj |C-cAD̽^k';uJ NyXk+1kE8Hkqe̷("Py9_Lo蟰FUlk3R9LJ=`Τxc^ ΤqJ 3) {d}W`n{z[AT} ]ZPsĄ<۴zkmz;.˺4'o6nȣ]]zS&{{nmê=;2V-8Tf }T-|8 Lkyx?h}iz7Jy_Eyu:ўkhZj#q8ŝ8HgHi]֞mۿ׎RO_K:gtWEjўUOOZmF=}V׆S]ZQe?VO}L;׾Y3X0^OtUUce:|#Ba)RX +Tݓͪ> q(h!F|NSOC4ȧn٧WS(L%"xFGPU|^IbW]' E7%r;K7 tC +66׿u+cv.ڦx5fouq^iCh@ٝo퐫&"N +chOXn`=a:%&(bq +(y:+(jPWy8PO1$3%c̅8Tt %hҒgj#QQLhQqnd­R]qU/^7(B#0 >;%b E2X]??Y]GVr3`U+2xf 3kY!q8ըɵqd )*GmBtZ22sD -Im\WWVy";Q#^E6^틈zAj1`#vfS[SH]e4.[5ċ4KWXqeUZn~% g?0 wܭwwƟ }2kZ_\f󿿴ZR~lD(CV("$DV8ql +;2oC\˼z)k+Y}Q. D$W!Hf1F:;MwKA:-9FU5of50Qa]˼nqGNcxwI ֝)7(+*Қɛ4acBakOcXwQ儞iͤgdZa'Ɣw;)jZ7=u1(Js1yxV:`z<6нx^XFzΝѢzT8ǙU)y>X[zjrw(`=yїo)~æ ]W*#R0dGn)#AzƶQ-qܿqr3lF\8g8CqsLh4Lt>~K2!8 aL0h}s`makp~z +^ʐ/ "[JT!&mscRҸli8IW%j]Tơl~J}(>C?G^> CMBЉA! + Bj^u}hmmCݺ} 5}["(ȇyzNE0Ͳap߃[$lCĶmf$$^ /1oضa@8i丅#i2ž6}{$Y)Xs_xKF ȍp6 +!T>ɽ"73ȽQM\ƾ>~m~&+7v +0DUy$7mJF˰wWo.rQI"7Lr& w,Ki?A|Id.;'qY)¯ Me/IWk{)݋m\<@R0soA4 )~=%C  !uAaomlx6/6)EY QlrW ŐLÐ~ n'_Cz"=b)_59FcH>Q0gyH>Cz4lǶ?PI[e +D]Ð!HHFP2:H`vWN&?O'OG&a"i-E n;GH1=#"U'L?'7C^ y^qß%e7PA- ?B) .4KiH;$u ^:Ҹl\JЀ&5ҕV QZn&}JJ 7a"<O0>?CY%mk7 a(7?n_/c'$?}{~3se>\|Bt>KjɭyO,|Z$ +@z:}s,l1wLqsy O"/,X@7OÆ!Sx{Ĝ=R12%"LZQ6%EӔP)X 0%E)YMPILlkJH怿E6%C$.~)RwaLY"˔\C&ɔP”&ٔ$`JQ)uA^yGZ@e)miN+e/Ji\vZJv,;%qI+ʹ)9Ϣ*Ea!r3~J1k*"a*r)I,àız4S9tc(lNsPLy S7ǜZt1@P9R{zAdʷͶ9ڬ>,dO2'!adN?N2'!Y2 S}81sc +*jg5=9G OH+q3e)?* ö'B|OQ%+F~hc/qQ̀#rdUL[6(lֹzk9s-?GX 1pg^ O5Qd{nj5[.KнKpe l \k MA c Zm%,Y|f +l Ґ%8Twa[LiV4X\-!%hZ6XfTd[FHw$kJiHeRҸ=álIJ+k +%XAg/LKNV[ +P@Sx.S&{("!DPgy!jO+@O9 +@F&aV`V~V>~V +t;@/mzM+@S5) b:hBE|Ҳ?{W Oΐ8G᯸@1y; +ϡ ՉlTJ?ANS)ef`V4_az3}b ӳ`rAtiʩ +)x1} ̠0.t0=Ypaz 4Z\0C0= +M^i$cs4*.01=d"픔6\e4.{igA)Xi^L;0݂nNMDjꁜB*aH"\)_1$ ^{A!N +%u:T؋'BH='];=Iݿ[LRک>>fR_H5y3H"u#ԙƔ-K&5Oߴ˞/Cmy~ r +C{j35SWH4T㷇&?C8rVN׀n"}I_"}q>%} S ט_"6f_ڦn(lH-&=ZD!$= +⛋%TP&=+HUA]`*Sv1AZVJB 3Ns5)˦4.mg).[i^/nۤFgOm;-A)=R0b`V BP)DP!D= 0f[ޮB^'4?K~w߀ +"y=P7mMOB +1bJ_'\ҁmܧ7hw'91dui"#qs$ ɭCiOt'fK[r"&?IX.m_PEgEk_I=stHafF-h t îtke7Rv(G&}6mtNXCɢNӜP993%-WLCB+!0$}T`E+^+Tu> xMU +^tM2+Zn DJ~h復eCr7~55A돾E_R$"rCba^;FOZYC3 $HdG.sSs3*$r#7ȀRb kZ8Zұ۷Tى:^gKZr +wIFjNg"'PV\Q %]̼) ݌eYn(8wEaVsUB/6/U#nH.ސ#ډ,ȺosXRRiF&>X~E|ܦMvܤtu[V_[tK|0smX&~o/b [=WxA8IJ!^uNF>`9,|njDLe`nA뛏 ? a-+NkМyGW`*zGbGw^x&pye/Yz 5;1U{;ZNKnG I4N@7xGvy*SAT +}* /DO @\GNU?v:ލ,]Dw:۟-qNtcd.L0C﷾? +:Ur3CfD_6Rhz/ +A8-w8XOk^Ц 4yGY:pql8߻]7C8?y]r×B]ͧ`sڔiynE[y1rVO8_+D}z&W+ 4O<#%`V=m_#X3Kz~i`ߣדqp:_d/)Tg]+ST>]bto27FSNUϔR2l +]Ϙ)1zI9ɖ]^,plbtb4ܼ23zEo]$uDv[ &0zhdO P/!%۞*38ҽ|g<3'LNQ9DȔ}L3_.A|(̵:l&vaK3Q? +?㫽vk+ѻTk88ͯfرb4m!؛%dظPީYռK@]lbR;H Ƣ'j5H(%3l}w}ԠofQ7d37{sƻ=1AC,z;ALTZg;Yr J[(/҇=oUyMoqQ[\޷<$W}w[>5޷ߏݫ>w(DyM7o. ݲ~b\j5g})yiޗ-'zv5|w~Kp||Yp\pDǮۋm_Y~kQE8,1E{sn]!1 (; 9sۘb ~7+Y3F\k|. E"[:cnyd2{6GYۓ xx,G:,8cB٥]]3'nG|Sfaw!oT=P/Bd*ߩ^̱p/Ez1!-ht,|ԾY;"v9b@ oLm1;PYzvIہҢv@npD]pR·,!6i;P]4}$JeVөz>&S}pxWBIa p?==8ŒnGGKҞ%}O{Uȗڂ똬ʒ0Oρ ^F]dAb[%leڧYv +,V,Y@|"R)'-Bg=BZ/jbae 6+ȿd%:yN 1.OZO&.x N&ؠ߷/SE` 2XNKL{ʜ c vżo}yO(4;r# +H\ù< +sE(X)5 ?b'\‡rn-| +d1*PxȻ*荏?Ĭs!oܒѵs|E-ōYWfa*)ۊ]o(y?f]X힜xr\!o|3X(g:gTH\AopNǹQb\韆7._?[ϫeQoP]![џ +}|oeLx X 17z;4w +zcq ڑ @GdwBX#&-3\7w÷S 7BhMn¹d"n8OC.C.e}E\2 +\=pt|k1AvC1< Bk[4+B+Ր/!gʹFJT 7zW!ߪ!_Ŭ-ak- K(!\xӤ!|=%5| j$_ȃW g`=o\~o"k]5f}d}*oc}ͧi5ղ( +b}yQ7> +4zx¬gq9[|5;4g=rC q-[&ݱy`>c7[#X'7Hh#U$R.8eSd{św^E$0+.}ʊ[.2g _;ؾk_2]I{m'i% ]/Yf}ڃ7_ٛ]RɪyVM+B7c:Ъ#e!@ >La ,i^~2dc ;8gOX6~.M?Vוѕ+bzSiz[<$(ͭ(iwܒCZQm}V/|M=Ecc!P+e&k`Z][ٯ[o/.Q[AG6JBؚʜU3/4Q渪8'>U_YUVɤ=֟RE2`7-(1evVtP'RW}e嫩kXzbz`XI2ҬTCŅːkBq"Uȧ3 +_fb +go+^~%+S1YKpYA*AB,MBUb,F?Q?fZU)^ =pX bㄿ+ +]~V ۸ʍ ;n1tb\YHE:>t]1@a \'.Ay"zRh2@:-9m v|̾SlPM팇Xrg,f:#B^L&d3!^XIf&e(y4FEItw֒%|:\aI(J,Ԥ(S?ji*wgNr0?:g&'enE^b8 sv>$OBy,E ,՚:RN,"QdB^Y Kk'޵wf#'￴98  O, +`2?%9a +ui6[a|/1 ɤSֶKVCL$0Ytzڊf؅o(Ѵ?FKr{l\aݐyr_y(8w0j^NjDZ/2Uz]u+ezFB*r=žJ>"bzWGYz~~DO Ԫd`@Uaz]uiUi蕳K8iui赲;צBMCÅ^^wziѣj.^c9pl NK tyB*]3ͅ^':iՀdm(-2YdG},Y9̾ F}y +!Ⱦ@v>}Q貯We_ϾJ>r$;\c:@2׾<5eZj/VS3:UV'᪈1Zgxj?PZMS 6Gq& +G<@ *}Omp5OmL4>LS%=5AAi7bSԚ)*hͳg2 cF4V+2-BuԅVÌ@ +Bn&Q*S.ZlPMԆXr&f:UB^B*glɵL2PT, Q ̜%EJ61Z;z8Z-/=uJ'E1~ٗǦJ Iac9*MO^ c:S+$‚=U*g6(wJ*h~ +J}ųeGK +xiZޑ +{0H҆^5>|q -ҙaܤFK#l-ǿ /IC^Z'LKU2Qk~f)\&dd\ sj*Y'߬5N +Oikϰit#)gp C@HrPᇃܡ >䎬L䎣. 7!A=!ӂHƇ~rq@iAVHB:Bar29T*LrT!*A@;e;GCa,s$f:ykԄ̄Ae4a4(FEPiIeÙPq(\FFw(w,DWqe<$u0Bܮ(3.6̬Qug|i9z8rÙם/=7K$(3 SW16=',x^ʄUxpUd`v%8a',9aq3X>pKBɅ&, +NX@?a,ogT_4'3$vgYo¢ b Ehuj~TQafEl<~G{ػ4u $&&K hlIL U( }04o/Vϛ>̴/JRŢh,NˡgI>2c/yu~<=^}?RR,C" j #{Q,|4򈇨;D5Fw4vYYAT5CN˘*)QVR^ƔV8 ']q/wT)v]lX{ 輘âZ995ܮWuc~;'o*V6x㕝#_XnUffn|x nQT|oxʢN7f/籋knx˴{-m6p7XɃ\bfV%cRVHe_r )yRb6(GN͉}/ o1tWaD9.g=:Vy"Wϩly0N꜊`&FK?a% [▚g*ecgг*ߨ$೟'~+(Q kܤ2.^w oV< VUVqϛ&VK`C_8ea+gMt<\Q/~.e~h&97QODY_Ewx7_Hq/~jڹ:v!ȴ+OXEP\/fP52|NHb)+r7t!bŜQ`ts(\#ڹ|+lV  NáNx\c&K(f|'rq1̙ -eޙ`^Ÿʋt +ج8*ߖ8WfM O Ϻ>ۍ'o"ŗtJq5u}/sRmN*Læ]fPo, rLd$,9d].6+ԲEM$yV$dVN؉v(kݸCM@JRI.XQR.$$jY}? +PǓ9.Qs}s˖a@ 2Iftc#PA~^!DT4_QT{, At8r` Noڪ+]}t8o?yP5 eezvN2P>wSG^Y|9D|{5sFAb00TJ=adN0K7'BWN^gzEwE7\FM4=)#tH~_~, +Eݢ~b\ə3 128O23Z_CAk+YV; voZ>4"*F NFBͨ'Cs+ьJh^ǗܻLUfمf|BeHj56k,4-h@sFs5]I~t/+4#Ɇ,gf#4M4^VhFh\Uu-C#)efkDrQhJY0خƧ$İHi;ɕaFWZ ++H;:OV*V+JܮV+ekEkT*s+UfD. ) D!Rjr7%YcfV : a3YPM˚ + 7 jIj#G4##eo*PW[~OTԕnPZC*0_LJtp@g0tfEgd.6XR#Y_v +I[hd)u @ON6z8 (gj?`0sdzF~=KخaTvM;c]N5{jY;4ޣBN5 sO; EQWma:3 'lSh-_C7w24>)a +m +g +L)4v뻍)t^S{;C7\>Ծvey}MQzgB!~MnS()yhS(` +M,wbYft{L5J*!׈ !,4_P0HqL02 1^=m43)F=J~S2Vn9bHmnw|} "pnCK2|^{y|m=x=+>`}>grn{[Ė| 9Ƣv߽_w=ws1Ԧ};n;LJwf#06 r>2aW6t6?64 +4\tgK)';aىu$RI7~?-{E+!Z8p*3Gex.ʵ8ͦLcWioZGy` 2dP>b8dX=k{beŴ86`Ώb,3%”Ź[[w8c0(kRSy;iqړ!g-ݹ,g5rYm3iq2kq(swnfq^<`tفVܒKn]@k,z4M|?ʯ'ӿ Q]in>ʸ5C]ְpGFְ(w5lҰ1Eo԰ְ׈U>:Fy Zsj~ACnέaӰ<ZFiְؙ2^g85L {8P\(d4WW364BSÞF6)yh аa8Ұְ*]iةL> {? $TBHaer6GҟadT&!EVrfqWZ\iȨ#Thk?wH}Tr`v94Pǜ N1ꏝ~K3j.#i+`HPq(L+ʑA1x +6]FFumK.[9I- +r=SՁLN.+g@O~zZ#r=|C @3Ɉ BQ}3Ok@S+HEߚjlpH멅?X䲮` OSP+&4[7i +cNR+TYER"WaV;֤8H +aHѪ̈́19ؾDѻAJYՏKE!<`?B4dxDtSNLTӍL7tS>Ltt,Lwx0} ˽.%5&sat;bFISnL7gmL7kLfql}X43W+L74%91}l:_ZmL7XBF-BLЦQ˰Hiڕi\io*$w+3ڤJ}R`E~#4Ft cp]֖q5gaVd'-N5&p 8mװ*:MװL~װF;'kXV9isp"9P{`0hB BV{nD)2f?@^*jN׳euV)}?YF ?q4K:ityhȉ=ɍ|wǼcڼc{<qxWuÿsr~~uW;z?'ÿe67֖]kɿi'4ߘEag.~iEYT[;T [FE 0ekqW준0dGƈ(M, bc\Gimlb=䲍Mml6уV6zi=lsF{l9mu^h-KֶJ6ڝem36Ę6zVƥm6fm6mϥRE ֶFFX޸ev6ZBQ63q-踶lFÝ@6 +o6Zgj6izjhiٳ5mٲۑ,o\6ڔ6aF;sz涍嵍vڶю|m 6ڙe؂mz3hVnduvz(HrvB0c0“\j)v:1uDJ].'4:(t#\@?9Pq 3ogQO$8 O(\xA~ʓO(X:Py}\|p=`c l׌.:0^.RGr uWi-ǖO{hK/{] ].JB2B*B8SUv6jj=NUU2w=tLSww5kr9UNU5t( +vUNUSc+tTUj!]שkTi*K9KTUNBP= +0AvbXo%aWjz3ec^YTkA;UYQu/wNU=SNUq%]qr + +9U9UUoTUtTUϩʟ۩ +RBGw|!fYV.S'v\ ]۩*ywS*TUvFHJ`0À M8XZ|nFݾ'Voomo /5 t:z7 t?|r4֒9+rZ.w<7+nr}&7FCwK6U$k{k{*r{mrU>{Wűf\}{"7_"C&' >b,aP; y1E[AnWsLux$YeSUӊ +ry`{)nCt +!':gӨntrЍtI JJ9}nNt\C[G@V.tw;ÁnNPFwM9>hGjt3B.D(<Zp{̃nRyǭgxRcp[y +Knqcy$l?ew5aQr@y(P8R?"mlۼlJmK=ٶm+pmlڝuٶ *O6|:V8ۆ2ζ ζ2Su lm i r\!ζM!Yggg+N<ۖÕ=<6}vbXug=ٶun!,DEP&$G%;sGm1+4ӎҲ-1WZě +Eӻaw>GwN1wvOκ(bF01+dbcs>q>acO +riSC:|8|<~Gc+JtxHb>\r>6suxzHBG;QkQ|ľϴAGD[@h#p-:цL O!яr7 1+2or4.eUpx-xsmIBu:r'#"( iiTfC52 鍠ڑ 6 ն\PE9&T;~YPmw@]C\Cp7kk6!YPmPm7ڬ4ڪj Uf6*9zHl L(Hc7k02,Tm Ը62m+-rm$T' դeeBu\j lbZl vPek>TۜPm6Zښr7TkP6ZQؔ *B ЃWyd֏ zfV8г&Bx%쀎wo4dVVZC'-P EjވZ[YJtP _ޑrLj[6N5L75pKQ2>C[Zjؐ,j!؃x@&Z[ZhZ[jUH@# ߇vV:Wkw1~CZRKBbRkoij%:}h t M-fRAJ#=AII'9΄8{P=Acr|OyO)~Od'H{eKe'MDLDH]o;HߑvokJ#OjWhWʒn{vO~PjTÓqpqq#Nesӻͩ\ppjvphNjNȩFͩS lHc5mjԜj09դ9TS,BU*?(Hfq:Go&XRɩJhr`$4R +ktp)Vh)VidSNN5468UTSTe6*wpTÖ8r +TSq ,N!?SHT;G)9ԘSxҫ'^^^\Ob2Q V` {R:Ǫ E$Hʹ:l-{ jA'o궊vns5rs1ݦ; YJ)΄PԕB k&$$D!Uɖk˒W%'f3 zr|_3Iրe] .}SSbLVbmjBHIޜ̼4Tmn+elVjm%/o':Iu 5/|4{{vQKYW(j߶,-oGK#;F(zC$ޔ@j1_Md!p=Cnn+nNNnݶ6*Rm<^ϳ #4׈",DQDPAVrP7_0$T&\ZAABP;xu٬2lWXڡ/)~s1oOm(7"M9o*g<[N)J~C54o**oT hqms=\qzɯeTzM8KPiEGuz29/7=5L,DmpSE%;YS-[Nɪj@Fb!}۹Pͭ2 _V)I~| h~=75iۺ/_9}ѭ(y_ty>jp ?/! E�&o4unoфH[?iӠxC& uO%E,kW)vn+r?dNBxH.gcď-)'ur/BR+įį/&񋳈__iT$~&~6*R$/s&~9a]ȡMQDL#]Y_A$?dzd(dFeVخв+C[{sͼ3_rJ߳nzuno +C"[vBjj\jRA>Ljרl,ٻq%>T1I_ !M9v'?#7Ub\34y&gNG%N>61'rJ픫z韹IߦI$}0E XTImw +mZ9mu[o{"#b~Kf=.){fZR6O-)F8}dt/`P-7{ɯA~2KLF3u&hTfQͲF[ethZuшFN!`4`tft%}hhT}SF\}xhnG,F#0h~ѝKѨK*R1cici#)Z9%n@)BLЭ24H|o`*Ğ +Z9fu#{\a٭}Z+~yxKriK9|VZ9[N)8rd4ҡw/9KZ+oRAcZypYrh &g\jK+,nɡC\O0|nҢ[+oZKJ+/_ʣ;%G+jґ XrF,pɫGZﮮ+J?ځagQrzU=^^R̗NkC3@d!g!@!iHA֡5~2K3iُȋlqCJZR^dͲF[6-CJ:!j6!%MCJF64!/=F77אֆ1 ې_4?i>_Q4@+ꓞWԏmC +? )M )Gh6 )|)h2MC +_@~%n4w3A" )䬕Biː@Tfe뷙w:CJ:!%٘RXZ20tRNCJ4!%eHI )i!%mRڐR ېֆt~CJ:!% )imHI37E_#{:w!ݰN)C +t!{̃ +d9.ZbF1Q÷n]»f1?'z÷ûI{4Лt(/pfsBW@s+L +Sͳq؆cS~V;R ++c&Vi]=db q<~WU)>V,h$ ++s]:?µ6BU}3 +>TvnOJL9^90\^XhB#,gmšB̨}jty`(1*(}̝A@CW5"BjW:|~=Wy]>?CZB1NԼo9b +&.~^/GO3ky?*MP:P:9?ʣC1Qs4@iЂQMQLP 6JY7 /r,X'GiqDmɪX-xP26E<(EP(?Rd "Q4jwAur,B߅2(yG]aGvfD: iv%6ztA8ezqP'L`c cA#x+^ׂ;@A G]pB vmsC Q Y\ &OY J2E0-,&4+"~D - +O)T2H6 M˭>VE H gMR$SRW@r9J+m&++<-gUs݁q's4 c66_rW_/r,X'_g=RߨU)/𼍿ryj=l6{i??d!o_f^,Ba F;2 +[fؤ#LT i8KBb/_5((N@ w Dfb̄vߤR,eq/>oշwᏃʉyYK{tH =&$N!/Hğ A7/ĕ?PC/5i`%N͸Vp#?ߔ}G9Yى 8PQ'G In2Y3uP]3ur2@ +@0r@yG]a 3"f2% &(*iҼcA#f\ d+3:vb.;6NXe`*' ,2lyXe?1!q, ,  <ȯ~z=^G*'W 2OutP5g$ +׀UT/yYOli(K +YS + R4R8kYMaR|;zԉԣkg]RH= 3u!jR`>9RkUNSfHR) .&R|R˽H +RKH"R#R#H=R JMiVyZE*PG*e)dޑbWX)0#Ro&Re&R8KMVVD́O3dL?XPTUFjBjͯR'R\Hq!HE-\Hr"w΃Ԓl*ɪɔC6R1V7D*9D*r2 +`DZ!DPHU21 0BpGF_H}&^:G327£ XD_L[Ժ>!B뎘LN A~ j(D_}&9C c%Dߡ/r,X'G)TʁRY,X}}brgQMR0c. +:(X/r,X'uNmQpتМMRpas +M)8?gSpuCAL s sQ''SLi_U(w2(yG]a ;ŒHߐ9Mq92)LXȨ+i +0s/83fr9H* +9' 1\$Y$D,ϹHȁ$W Le01sEMHHqA|#9H !I-mQ$sO< KSZW[nP"DS,5Fϲh(7ZEwh22F0mD.]iECh0rHRhI6ѝ-Ѣ_A\"*XĮDK[Ţ'jȵhﳝ1% O]?5.>vY#xΨ/g63/3aco޸נ&rymx\ήSe|bk2cG"ge`TN)LIG#hI:_Vh썵c)F+EW /{ 7/క+8~p&z=v/`t {tפOMy+Wcr 5a-vx6E[Eo30~Aq=>/Ƿ '>:m%b__*#OKF+6B'-G*7FKʨjw8RaHF}#_EPt LI ^\Y, aK6ѕ4cqɞCߗEKL=eL9!̇ ߔeQ9oQ 'b͖_}X&SGwl/rrq߹Ȋxu8D$!.o5>-yK%RbxݔK׫FWZK^)-ī=u ,yE'%ck %C^%&뽢YFYq) %rX$!2|?/9'ܿfOsHWo%7kUtn[ +Snђݻ#:+i#7Z.y>>-[' DA>C"ECgTB뇾.IHTFO|g _  Oc̶щ3(\"۔Bo<+geB;E_tpQw& +ϞQE)2YJj/RjuJjxjy~׏@^k"[~<&z9cTB[׼rBi(55*i}Ҫk>_~Y1q q`Y91A~nY^<~'!S^?̔WB + "/ˢE#-%snuEC%U5O+.}7b +.>sc9s5 ZMb/~; ^.4ds(8$$gw.<0k}[ᥞ:++쯓 +La%J\͟T…(ʇ cy$X\b/1{W?S唞ix/o#k_x{魌7vˌeR$˝%)S9׋S*jDC謖O*g͢S4ݍFlJm)rF&:.A,dP'<K) k*3V +.3po7rN4Q~3?G;//ˮX?KB`\aHRss&$ْى9Cr߄N |6Cl| +i ff'f/NLϔ] |nKG; xrdtewu_U{55~]t%f/2;!IUf>ꀗ?r\)wrS.zE}誐bl]w\m׭üu,GZBEUF3+*/J|o?}͈3~/f 40ϐ0ߢi0p/c¶ZIøj`*^VdZ#WR:v{[:y^qK*:6 *X;>?6c! eGm"03 A,ƾfcY!;/\_I^^"6egE'[J%`` +MGE`oF) fjC}04~/TY ^7^~WEXbޝqE#TJqx-x +yRݙs"N臢XpqE?{-4Vb(XWw//H&Yn %Њڍ;G0FeCs +׼,G1BݝG1FXвYΑeu`#Bv\4"i.ٸ_i- =-oh#(!2PpKNaOka8h<~Ƣ`̐owdǁdceE/Og\("BȽI0E^{Ep.QTUGVvF(wsgOQd蓩uDKC }Nki[4ߡA/"(O;$s;/'2Ա#_1L,VW>PS[x[Q7cû(74]µͮ + +/3~33_yn2|6kW?QŖW*~9EƯ-SIG[S/eKx1ϢGEtkľqڨ~U; 7=F}JiC;hyͨO#RK )+:\!(=Qq-FOo#Դ|19R)!̼68SW*W#իO3uyQ3Ũͼ6L5hRrǕ*i2-#xb}պ^juR[`@)% uNG4MQ)SkvW^o)UTQ3}U)h ^2t$ϩ[Fff.{vuΨz~"lʰ:gt3֘yG% +5ݹfT󫲄+8KvK%YFC)$ 3 +@|H NOHAMϔ=>|yǹZ{ʕOw3/$\O9%*?r)$U|XaƹDNE--"Juԕ\+bsjWh a :\u*e7Ѱc:x:uDs!٫?.c_hjl!g4lփpQ*qytAlPnPlPWTM15t'=)~ 㥳Z9(˰?55r5rkd=|8N :h 岹CN̍5-#yטjXDհ}q5,䘐#w q5/= Md+sqeU ȖWy8nw혜@Evvm᮸յj++ZNveveۿ]}<vq#kkF8,3&i@Y=%0rl(% 6,),KwƊU4NCG9{jz{PvϾbVk;F/&<(]!R((;*{řǢw +:ڗL4YSMp_h'`]tUh _B}#pZZYV3Hld_*}==%w枚X"x}k R_F%^(߲EOV"{UkmYDѻbߓsRV/^my/9Qrm0I¥6Fl+!GٖEWREg| ϰqYAl,DgYx^r|٠/ȮS/_rج[.ziuWVBN +)m)k~!-o%l)uX5`$z4K"[-*r/ǔE zrkba/Pp̖gTrD3yʢm)֨-ړ͢Q;a. ].Y壠 MDC'|>7/~)%%MƳ.= I)ql G]fmpb*Rý޷n`_s(|? cb(euBJ@r"RԼ-\)%%h\4-*$r=FG힍cسum[8*,۲=7fof8͕e%3 -6U'?&E@èn IDxW`&g1Ta?m޿?WJW +Q_!*7@ *?T?o*pqoz6DRﶂ ~3D 66ۂ(ڂ(ϻQs b[| Oq I z^ۇs◷9!=A]VDEVŬǹQ)M)`9dB)~ٵQtMw$kG/#`?Ⓧ#-G7+9#;K~nh솩[urw +X_u̻{gd=S.\|jtSYi".opln쯘xT"HJI.:μEW :<:ҙЭ3/KμPJ3[bte7U]㾘`s(OUueOCz#Ay<\@aZpU2Z K|3QX^]NPwJv(WE^=Rӎc(gjh6zbr?3e߈bvj3^m4Y;防r5Uv-,1Lٍ&=aK.(1rĠ)lMW#x\E͉9̉81^?lFpW5`( 1qVo`92.Ӥ&~9S뜹={Yo+3e \ȵ$H,vO1Ic9zJlxF{.T?/T_!'F987|׃CRF׹6*Ø~l0S@dsj +%jyA>(XY+YͷqԱ;miރ@{AgwO[l5L<-[)ntM-[F0*Gti˖NLQ_#Pvumy+r.-Ÿ{cj=0O7=8S8\<&%)zt(MJ-4$Y{i)9[2juav030 1eP/8RQoq 5QdU~QF?'{}6.KݱI TZaiYC44Ӣhha:hL9Пk)+U0%)) ({V5Z 2(\)'h6v~X~Zvq;Oa +DŽQNH9)#?,A/fJ}@eM>LܚsF6Ce"Ym0ZΡAUd-1>>Σ*|ɧ9.%QG%pym%k󣙲E$đjX7\G^C{>#b?yiiMo#yl(;!r]P\ufWlrJc zZj:$X5AScg53 QcMeuؔg|Bɓ 3S7.ZEx^C>zJZQ4K:g{[5t+彴z}s 0pr6T8Vm>rN$Ͳ&_j|i|u$5ިx ~b 2n vmJj+z~'Fa +j +b1ΌM6+_~}3q5uF:|bYL1yӍmR)F ۧGqd[lubtZ@*+(-c81fTfX64ՌWG#gz] IJ&EP/2V%yZ z>iENs2Ĝil|P .A.A֊K)+pI?$_]L8?3 +lSD%]KJ3YT;cMTқC+mx}%oY2Z2mx`@,6*[|(wdHg{K`\֬>7 {sBCo\5ІxZXJR2uNywO51`p.I2 x ]wD.`O +< eēQZ`l;[I]xD\<){."vl4$gEcN % < d$)-< A&>]<[3On\.r.f"{Euv#iPAlXM,Kob1DL)ۆ)M1%aY߼fvr4Sj㵫ؘ)MSL);0[j)&sišABJI{qVx,ħ'x~Yd`0&`o&`y|5WP=+rVį(|芅<=@&,i@~ԾY˫)3R)>LCc+#W˃4'T)0Z0UHY)q|jĖ| +?$ .K'jI+m7Ė5Z52d4H^LQle4ʌiNSr1KŌY܀7ZܘjI׎wUӗc+ne+6Z1{xŴY)f =ElbRrO6w}]#\6fL%RI,\PBWl#$:2"/(ӻ(LJl-x}N̦x* x nTf8{~gϳm' [1(Qhd Y|( K%xD0d$aDf',=1GOnN4HռҰs k;Ψ Y q&˸%O-G &a, 2X#2_PLςh3 heL!]$qf$_Nד-s,w$`R1x3") :G}q4 "Ӥںi!t뛝)țilX٪V6dәFR(XrV -.)өnL[ &Ĭl,Wy5`kx/",h]r gvFrf+8X6cqY6LOvIS~dJD%,ѴCKDV9Wk\N4+6`%41*0q=i&Fw`ðJ'^-w2 +V+OuS+xjwߵ]6TH^//^A]/">8ƗA?ߵ'+Pk +x՘@E{)xa^P'6I].F) uQT0p +cp +7\/ob/&J98$1s J у*P^RO{>J'߼x.^L +@]P$ ʝ`sB_&/ob/P ୓)OC7Y&;LL!OI"ӣ޴^. +\" \B;^ҴqLӊ/5jh>.RK#5%p!G'ɺ3xӭM?v#@DX@_M~7~h) Y0EE1 +c(}]]!'C<[h]ޅwW h7~7~W8]ބ]BvI@BN +bկ(DBٞh/p~^ɺ`j^:%sR +xIZuS+EJ:|Szw%@$ߵDxĒw_GdG,~שuİw=p7Ңaa +^MK$E!qVB^aŰ]+^a`"/('hf=qht< #ik=J i𢑗^d/2KH/zfR'i 6/8"L}E5R&ug<5"_~a"K Eww%B7y#J3ݚ6.BuXwY]/Jz,ePȲR]#^qZgȑ2W\ߥw>@Ss:3bTw$TMd?M!c5ߓ7$8KyEHyQfAʋmJyh)/4.F+2bsa^FmV”\FM/iQĦp=W)+C+=:&%|y$e,/<>Fk{H_w%82||EQe;u=) +~}.^J$3%3S6_vxo}}Az_<}]\Az_z_+G˟ +&$^3$]1 TB7"@Ul_;<(-gSaRׄz_G~Wӣs ~yMGhl_}ãiNGSry4_˛XKäY$5>̰ ~i,d]ZBM8h7_z4 ~Yjҫ%mGs0kҨ+S˛W&}_Ă_l6F7ޗ7Eyi6&Z0 ]WMRܰz_lt}y}%"ܐz_8z_H9KM_롆b\W2E}Ր)11UCwLv`_O hW)̸.O9;I[XZ"-]Qv78g^.z#zV3:z->zg{ 8s^s/*H.۸- Gt>וM7]N||ϐQ˻x- ͨ Z~_brT\?EqG6DtQxn)+ߠۃ.?E$bDh輗%2syj'οyazi=Xe{ʛՒ&;S)F<̳[<62S+[ Y HIF ܾ @j(!< j0Ir9]ڍǁĥ4;s bS9?Fx@$я2Udd4L +}]ac'?(i菱9@Qf#?(d/Y0OLl\ꛍjmK5}7E˪xok4RgT `>;0F2:Ԧd/ҫl^TQ-GnӺ5:tZK-ڸj .u\А2WAR몹}oU +֣ u_9!*wLFY*ҝ( 1{!~!J8Vg{YwSjQTT*3*m,G~q7"˞R-I1]$48AشC 'g~4@茊k>_e}kq\;1tHF;]Q۸+CpwK&1|UV\>)E6+^n_Xjnäáfw{VЍ5Da) ‚kpO PP='a4r<#PȐ4`g~ӡ3z)] {r1# g +ovhyhy3cպ$s ?|pioF4dʶzG\c%-I}ā56?괙k6i3#X&}LcD+]yј :N*Bqix +9^/^XfL1\5I8:. +(\6y^b+TQp77xJeǫm5~W2lzY pp]i:W^ +)kU\ +Y+hO5׹)o[ l@Q]yB +Z?Sq]lGs)3X!`P͟ SdA3 +x6{ιb(E3EbHўEǢCJOQn:)܇" +Uo:U?&:#Pt6r׹v/^XXqOOܥ]z.;Gup;Ja t}u@7\-3݈|ncbnP q: =+p^vh :+n ޽{[׳zY(N!iz߶hveho9S5doF4anq +;-v2sr%;-sW, @j[\}gT۞E{s?sxX2橁&8s̅y5ӶҶñԶ(_URjVFb/VWiUQ]*1eu~kQNÖE"¢%~p}{[Vxo 2+῍wmPӋEo~z@p}ڜJ:ipf}ᤶ~6N:lP5ZFDA!ҰߵwLCZ"[ΩoǻpH8ԍmBZAqrr +:)WN[A!14*UᜒAde;qd" ?}pBӼzDZ/v1w7 W7}.c.υ0X~_k#d6(naNDzݤ_kiBvʬ9)7e\sם^)Yy:['uϽcr(88^7!.4p#ݰ=15s{0!Pc|g7\y%G _kpmsPxpĶ{-,m +^UQ|83[nYr뛶I]%.G6ٜ֬EgM˯1GB!"?0]!C[|ڞ<~R+*u|VVLS֊vLܛ˔-,gVT F Ij̥U`|F:ww0-{Uz+%ΞH< + dWu6c"7+x{W;n9|_Lj/=LkcbЧ|1Δ!N녔#g,7}ʟpxOʬfy}]Oʚ3Ly,ߵViJn%^35T}?+LQyͨlCTQ? Q{5UKq0LU;M9cǵs, +[+?Ɓ0i>,w8sWTǍ~P̎kOh+6838ϩǐ}ϯo&[I+a3lhJ25tΌY2qV+DҤNQ 1."HpMh qחZV֊VV3ڊ7k6:f'"Z&MX=s;fl+f{sϽ< svlS!?>-ٸIӴw[F9dvtbN|vu~KLRbg8wyN]l:;{32RT{{øg%nFgsP򃈿f/r4;&>*C9t~/CI^A:1(8WMn^{2o/T ?10Ml($ى~D&5bhI\9 EIG#M=˹&-9+fxI9z6<RJzu*kHfVe֜جvu0Nrm`@ZԚjZZ2WO"uHRlƢZWOeuHN),*A`G~TوF}ʩI*,WfV弔Q7o7l4xҌpfn/۷&5gFVq@Fz%z?pb3Mٗ>22VD%Dx EqUKeX'ClVbXm9uNؙaGW]vGUuK_X`iӉ +ֵ4eeGxxl4&2˨L8(VEel`6gֿt P{}މC.s&9UFA86ҡ/B/+}?FH„M#J-H8F(QMuJSӵ9w盂2_x<*KnAaj@j*.x'+I 94{`jDx1!Ps0̟M|[%_~1){Ե= 0, 92Ԉ:5d Y,GD1IDeW(#׼wro<[>~;n~n1~%97Ou( ߵ"ǯOMM9ǿ_w3_w{ 9.msuw#Kû|L?g |dXiH'>31,]A:l;sC϶Do;qۡ{"? TXQ 6o\#4ECf=jLsY"='ҿ[靷 Z UΤRΤC6h?ieqq&KL:,N&]IR&}Z)1I3#=jr?{/⽢Zx]>P9?n * RQCCPX: 6Y猑'SZjljVUb'9u.R}OQSeQrEڳiv +ajs^Sj9 ƌF%4)DzU 7T|˥F'e[+Gb~?].YeIǓbxjK Uí_U~~v\G H. eҷ(էl1 FQy^~:̶ÿ.e+Jk\^x!s?[CS#k]so-q/7>N~"߆};aϘCmAϽ)RG<wƶ6NURf߸@Hvso\_ˍOArQ*D?7|ȗgxI$?!f4۠!@Ī+~\" lBSҔh(FUUFpRcĤM|S0$@|-qSpR&DqLe*xVR&Fx8@CeЀ{;RkN,Bb$hRr_Tn:(rk^[M, ZC|09=>t +sC:% hܓl†qyt!JyD?U!ˀt A +yz[ab=aWVoE*Zbc-Nb4m7m;1m;nڍ\[B3f + c|*'LΩpHZjړ 4>e,*4MK?2~\ijy1;&2$@w1 ˃: L3ztF0ލ3U]U[1JvXS/Q'+K0[yRL9˯ϑ`V؊hDĞo|&XO;V~&DڋpI +IzAiDty!5NCu pg \. +_*>6E t|A';Ix/=ǷxPnˬzMg3"dQ,htnG.홍X&FW(I~aC.QbcW8hXE`*h||$F}?ӷj"c +dx~^MD%~&tバ6Y'2k >zW/)K}1lK{&i56z ޟ,(E'zC}'@3/f@˶J;s![A}W?@~'6> pe ca fo4+0)e !0A{?ҸU0HD +L3=f +LnhGJ $PR +LGj+dNK{B`M91'V`B4^@i|% 1F+0MOaHkiR〄Z)X@`c1|CIcACc?5wZ\ IxvټA8;xOkpp҅n m#f힭`\׾|Y2bq$;UVw@ތX%?K#]ܨs:ƨ +N 26+T51q~Cc|\^e`/Sy/}@mm+}P<$v' V'o>RW K"]Z~%mN}` +iĞp$H^[e)}.+}ouʸ# x^y>?AƧcq XDr&6yJc44J7w7i~v+%Vq%óh,Ap#; -MA47"h +@6^5k=Uff~̇*5sף2m|Ѱˣ?14 Hil&I1BV#T1hVf}<`22P$ZG +tijwj6dyZn;TG  quEWӥ`dk,h]ϥJ%x T5V_NZ:HOl[͠ lC0|k }qya9MP) ׾loo*kK[c#1($`DXdsgkm;T y=6k6&|K>nμJ9 M[c^ ">Dxݘ$LR7Mc*1s5{^ %ֶ$θ:~L[+*6;} +Ngx)l!>.>7]aX;#^l.4i܆'j_+@3qEf1q>kdQ{(|}(G8}Y[yRiUϔ_g-Xdߍ_$eH||_$2|F%S{:FF/TM7∮"k]gv_]:=bP kQo6=HrUӹJuY -|y0 6brolw!v^  +nlJ1jl #zKncfLPSsgT&$m4cif{%tYO:Df>VE)8f}ʊqG złx e `,,Ea:Q`(o+Q[ݰPe]t2O}vkw vbݽ]$0.+ J +hwO{uən4C]mH nZ^4 <Mפ3I 0Ḅ˂_k%qCHeEyVYB >em*m6T@<z \Q{a#xdiyLXBif’2yKGk8y-ڶ/nC:چm^6" XS]R7?q\rU'YK/>r7/*),.}k! 3滕Qv/Dן[OxlV fW+Ҫ‰wRf]\ $v i#OI2C!ylȳԗXe8G߃"C<_Zehxw_U5 [^^}vdwC)+ɲ¦x&Gr:Rcb}%F;=g}y>v&̸>&H y}VNk ]Vs2txV mq՛neCꡣjQI`&10;%?ek43R/k +FǡhPڜFpȝb68ਠ=RiF_s +lyCҟR6(q(@b+P=ct#uƞww7I4 j/NE4kø5w+ v}$S4]5̎YAF~4̎# &8h>;fP:x*Ҷ&&҇w!mWջ$YYt8r헲菺z7 2* dL/vJV\WW~ U +T)qʈVw%"7PT +)CTݧ<4:fD~Hnܮu70?FRuv:a+X> +Q%1ؘCp:\!{!QaEw +J? ߝ? C2۵@*++hZ,C +ճ/Ĭ&=o>H{FY"eK0cbU,9A_:dd[7ucnp晓G D EI9&k8i~b6tL a;ee"@Bw U+zY KRtż.])H;!QV ɂo"6jady-B?-fVheelh?Y'D @$%z O..s  EŤ.jٮ6|HjbxגG`w`B?mgPP`|<Fa對>5ƭ>)) kIqj>}q ( Կma5QԨyOyVK726sMݝУ~l'eQEe= mO0,i3*u&y&E#s?q3Qu!g֒Nç !èT>3 ϺӖx_jG +j)N"Nw)ZǺS),Zp?ϛe\DtgZ׍;-IrwĹ:?w:???ݤIj=ׯܶ =/~?|O5_?p֣&dWٛ}Jۛw[\y_lDpaͥZyk9WNAѹs +KNJg(ʬcku];CKF%8,se=8 RSms㸜'RQ-lG~KZ3RR&5ER4? fhjʮWk7z#Iz]yi#aʪjA}̸a+%nPeOS5zRDqe:wRGt-4~95NĢsn_r%K^f (Svn6C'Y=(Tq13ld^=\/k.j Lhn7{cjRbqDTMj ׁb4Ӄ7hC$I%切*3v}6he+U\sx~cbɤ!QfŔTf] Pr­]Lc/X*I4N$a5hgRj(;(1[>/ha6™Tҩ2=R8LYEEX5LnjphZ4>bJ-軠hnSDk}Rxhe- J2O{ڕjb9'"z%|lΏI}E8Xbz"M2<^z3R/+#(w~/4 &}4a0(ԖIrnD2TB40GRs< $򾹽W=*-2w'M^&/iPFVE3WzrWgnX+ΆyRhZqSzKYy"80q*+G4;,H-vOԼ2L#K݋eN@^_5)vAs3_/bNpj¦$ijPw&vG5F1+8d +,L]7=7`g(1a[e, D/ޑy:Jڙ]٬׬]z"`&;ءI{ӓ^uUf踽Ie". ѠU{v0@5QX崚ɭOZ*9کjr4sծ4`R})('/NULUe/!3D5sJ7^IP \ZUo6R+FvtIx +Ԍ+S%W,K?wX3Wd߯`5WOCa /)s_o/I f _{ ᯸=!‡IGAw>%~}+tQ?Ց9L m첏$mO47/ߐS{aE+K(W(c?4cbL ,'< [dߩ?;-L<͵[̵Vζk *CCSjf^SW<7;!Jqwq/*ypQwY<[]޾޵4 ;Iz}|2^/Z߄ܦQv.Wk-ڍhCvS#1EBHRk`Tbք^B%Ԗk`G.N0\VMC)h,1g掴 W5wtEgc9]D1XLyS;uo*fZ#oX(gxyqOz6\Sj}D|e{$GtTz7_Zvu{ɜ)}RbF{Uǰ쬇hzBXa$p  g͊&3WZ.j\ijC07~Ԛd)n(ʃeUƩuS +<"1u'VqEV z;7_aCn3VϗB(A1[8CXE7&ZZm`اmO<%+):Hs`1 ]?aB}7}:܅4E2n y~tIߕI;.ŠjWjzR2vBpQfccDn34/nIj#d1FQ +).n +n;DG0jj|*x"tǔFh Ñi!'ْ3D~^+Kzq Bxg?@WbN߷՞K=|D* +Tɻq eyz 38pZM/t`p5_~W;oFCvIKwT/4}F6Zh7RSbf꼫Q| 7_ͬK8 !d5=Cܨ..z4\~VOxO8VSp'&Cqc6lXPYol۴ۮނj'=v.- ;$fC#CH V w(2AC8A 4NӰqV}ID"5VwDK[k]F,vA&L 8K%JS1k`^ D`8v y͹ mƉ /?u=H 6BտϙI z,1Eel"|S%6~Gmc@C=SrnP@@lZjcu޷y +ZS6ڕpa)RD18uc a?J4Qca'^?<գ^iU9dcTE8 M)z&*XQnY%8Dn܄z\pځN +S:0!ڰAw?D֝z#-TTE< +7>$ uDptB_=s1fWfcYq4͊jKkyOĕ9[nA6ۘcQc6X2~Y3n)9ߣl\Ɗd2S4_u`-h?Ԩm3bR߸Nkv#MxsMQo1"ہ n ovSn$Xj/:ql&~Zt;gijDE&;dUFL}[іbM0ެ+_f}8V,"(ENzZ՛ImM4ue@_%:noU]ZӤ`|\Odm:t[$znN"׆%1}^'1}0]o[>unYz%\xK!os-AD[Ka8նj]kzG%Jt4"_p|T wD,;.z3|n~'_Bb 5vۛkAh&#U~1|1m#;ܡ6wdd?%"QsFt  +]h'hFFzG^Nd̺J2fxN )0lb;  V-uGdڻG0t (Ɉ9#0-xN!<3爚EL< 9E|xδ )"#]‹bI'eY:xàA`Nwp 8QQ4>cZg>g[Rg9/svd_$nj1!#Vhڍd'; bh`Oޕdv gv>CwaJX1)٩LNmMf}X~gL L0gڀ9Yu'Ww wj炃\ϗu^7]q.;>&}KϸQܯB=?b=k*+%[lG铻 v'TX/L=Z5zNɪs٪yF3,nVsLMYutȢ!pelsZ5_nùTwε#;>[6ժi yc}շI YVDVN?'fBDdȰ$`HYu5h]Ablj=bGK/o,Pr7,$>dȹΣwu9=hS!)IBHbǚ_صW5RMi9m̝.ve,vZ1jA%t\ryDLjSFeY:#)]>j7Yǭʹ7b\.DoDg1 k2MiR|(v3[C&0](X=ʈR[*:7&mE$eZ mᢐکArX2SV?kow $X׊LVyo_R4:0]v7ҡB2F٩C˺M' +n*S+_,R7qUa" +oB)m +YM=D០yR&pwkx%Kje80t5<#ySFHW iNwK|;w"D)!AE,S~(\upQ/v9$'87zM>!7^^!ׄ =}y&zMhEzOX%Fp +-8E`萭v[|湄^WhHU+Okxӧ6ZwW6zME˺^7f+Dc"h7g~WNf)RE~Vevskzj)n (_m[TtE/=^'8sZБ \=X]=X:= $ajŢ6y%iNRe ^0b g5 u=&o7HZaNjcP,)Iȱ:{l匭tF3ۭmTϛזu 5R nآDImZ]֊$uXKLcmcW}/D߻7}|A]Auo4m64v>-Jvh$OV%"]zT[8/F \RVw(Bjz,AC'j_~s We(!^Qs<&Ib&>ֳ˦I]ܦިp?`0JW퇷`\/_ +nf_QGp6_Uv7Sr@e=_:\yT4͘qG$34_^L>xi0seh(Ё8r$Dg-f_fh7.34!qnNe<Z5G 1* {[vI\Dt_փSP$mz]8.Fu~POE;?Ptr@t#4q36o.Q* Y7,SFA07C}Ofps3dM V# gDkz\t=ff$'M΋!̙&oeރ oȑ#y:/#2`4MGG&wC/Ŀy ;&M,4Y|X4=+Ø-e$Y1$$Pocr10'T^xݘXN2㯁-[ߖdok mjڊeJ| mWR0gozc%7oNo-UycUo[mߦgmQKRێ fմۂ-,#4jHĮ[mDZYoI:iж&Kf^"\fQ`޼®*8E8͒p3V֞H%MԚ-_'oL6.5k7XV|/?^-!ǝSAnk~Ϳ{-Ko7YLgP?T$hkcnВ6:w۸;3FJ^guPC qE+v7#;B|j[53_VMެaپ'`khُ(DR٦Oztǯ~jj +{ՉW^ܭ? V0b!/?,21x1 +}VCMnZ+V7dsnm V)'1HBvx0a.#6  +L?,\͓Q!p$|߼(!\8긃y>]`8 QYwUx;O)[Zy5=(U }WQ"fh{^u8RF>e_oiR?i>@V)&|vp)/QEm~4ji`RmcčYhwl Q?ewKePiBۿɳkz.P١3_> +4E?"$gɡE;(X96vdW&`mAA\=s_+DZ-oo;/`7<_ +9'~7|uowv?\]4q x&OIE Q AJAH&*vp}_ƧeM_]K: ÐKG19V'F{n=V7VQdk d1|po>>k~ՃY9I=.xV'^.|CR$iIQS(m<ق`u!\v"ts;b%<}"S˖ǥMveg)mn@D u|!}YY^|vQ_ >FEt ^ouyiD lïv'ߕGg8v]ũΤc+v=l kYd2fߦZ~a&,իL{N~L\Di{N]ԁ&nFKvcwEA#((Z};]yS>7<=/0x yeؒpc aBfoaoI~iHC&~!Β9xt'^{cք`EρH>FUuKwZ ;uK7x7pX~cI>O\Cg *[ץBO5z5xzkgR&תxAZ ^331f{s9łO]TOѱ{Կ 9qjg1ӟ< x[cj_<ؗqo{U+i]+7}Sѩ9z; Yj\ܥdj26X'7$^: 7s=Rr+v˥x>Fj91bm2%?H'Mׁ7tZLl#*I@ą˫9ɌZAlQ'͞o4]d |7gah='a^'88wjx`Vͳy{$=6 +w$QS{w3ƼOi8Uv3Ʃs~SS>vB3z4<`*葨z,* qaEͳ !]1ҰsO8Fa (˃5#u:_ 5h,1LCѣ gQ)ke՝?.I8F[UGwqƼiQd2cOn MVT$}*K~Q#gu,EE[o+kOHE,#(\:/ K&~ѨX Ɩ2^y5V}7j~Qb_qO +(>;8ˡ ~@OP4~Ѩ{J~_^֣EEE{/;հw:`7~{%&3aEcUޒ h'Lm5)/6S)E2-S h_4rEcރE2Ht ڌ.~a& +h}͇/oavu +vxi~Q4(M/~wh5tLLh@Xo_T^,0$[/=s1bEa4+:z#H +M,H~Qc-EKhҀ\A,ȷ |r[{n1׆%|~~[핎|,[RD&O/Zt){KVZaq EBOPP97%9ٶIPd߿0 ~}S0{ Q-`Û4~6K&]6>нi~sWw51L$kd xP"Jϡ˱o +"nߑ 7=}RgREDް +< @co$?kE1NCw|:߲jh~'7t_K[?3-`45vf<{$$؍GrnzbRZ~eggB] ?@ +M60FYƩ^A"r]^>.Y|qRGfءJMm*j>~UfϽj +7+/Y|﮳:#o֏`)Xd|;nDsΕOUf82TԦp mZc54b7T$ͷX㥛vY|Iw{WېzTÇ^ R=DS߽ ,ͺe: o[ߥ: %gԯ2 dC0 s@?TZ- y>&83!A=?ZuL@P۷ 8D(bGe=Zc3%ҦCC'{h*%ȧ7-?/NkĝwhNlQUU\a򇿻%YY*s@E{w+O_'uv =H4Oɥ'ȱ&v;>4DN]qy\{/k/[n}R*GK!lz]c桯BG+ ?he,Ih2&ZE,VÐ!Aާx?_H_ǺG^ø4ӗeo3꡻5tgCҺy|M-~֖e̼.,\أ/~Lam 7&Su}uG4"Vwp!BBLj&2,-{5וu5;Z%O8rvML"CPGdiEK!kWzقRJݤRX{m +AUDH"Agߢ߄݉ceNj13p{XW5j(_rYѵ,+/MYQ? $W]n [ */[_CdP b#X߇a/v⓺@%;o̙O|l8}6!y$Ah7cWS Xڞed\}M.]5tōہvmZmFcA2+AlӤ-(r&vj5ϝ.W}sdW,$G0|3skBq w6;|̚ftߧ&fM$ȼ̛l2Κ?9wP''>&.i4 +vOhEMj@~ܶ2cܫRkqضMbkkiH*۶?>&+Ȭ3v([W2Uxbgk,Z!n[mrkEoۘbym&&v'yӲdvSdSgj.I[+8cʬ\Pbg .PnaicvF5ȬZj>].-Цb43Z?u-VTᛙ?D- Κ ʪh@ڞ,ROЀJnPGd|* c/fj?ląm:+%եc@}jwJt%кS 6Nd;+@*^F{zz|Ϯ3 +TRh/,y9ɸT*2&?s[ +US9yv"jơgJЪ3 ;dMgWR(k?@2_+ڊ,o!w+kJ(UySѲ=٥~-?%_En\uMksz?^뾰]wK\oVw6?~ [w7~uw˃Zw_ut}yQ߿ +?߾aݍ_}}þIW[KtCܖ=p.-]kar?凷~ @//Yz [z*sWƟ=?wC}?j_l~ֹo`ܻE6r6S{xf j؇P1wb;+|XwbE/k\rW,w }ZVkӞ6V ݂B7-U6Ч<i[E_I6-t q(gJFN*'X,]<W=Alb'7R@2BzPڹ'7Ơ)[.QyxJԷ'X;_ +p;y`ՁJ:oOh +VGuu&P +̿{PS6"cN @?߇BJx1EBDaL U+2taߡq" BLPO7W]-~\Pr#S΂2-u\/H}f矔YA'"Lf\bA\`Hc@]Oy*^;``.ܚ%WV8;`A~}Axs!T3pe~8/]\t*#e*`hGY8 +HW{牓Nzy"=@d'?_\ +E*%Oq+i QuݮXˡ@xUZM h~wlwn/j8[ʈ_slw!qH)aϋzFV!f+k\(KVaF?rExm,Bs7$nuG!FG,(Ear.x4?E.NTD7F'Es#Z2"+ +E}Yg|^D?|Rvjn@ j&ns9Drq7Ā], +y"ܗ27\;*<mDʍ0SҵC+dX7?}XO OmMi&{CV>j] + ^)h`EGVc'\U#e7ԛN PU5U{⎰/[F^s|\d*f)U8heeD׏hN@v+F$M[Q$čQG=$LC"VU{PT~L:2Q]7S*u[Qr@F=7eij0pQ,#*a-^KHSe`קJ{vDLPWa 9G."@̿)gLQSiM$GpGsVd;je$FPOʙ8$bQ cG;Nx;V bvbJ~s:[73%Pni4&${}i3*uy +|B;m*^Wp@cZmP!Z琉G߸3iSu_a9D~qm׮Qa[ v|l +it1Xo/􊌞p.Ze3^HFocLߏ9{ó~8YL*vXMI;AFڹ :' +Rӵ_>K^7Z{b\+QA&ƌV=^HSW +6|.phy:dS&z>%%{r.F^S^""ϩQ|k𝱚<e>w]>jFb7 w짶>[9& c^Ѵ lrcq{:7lf7 *͝i&<˝ZO3}_9yr-W=G%/-_Ӭi55*~63͈S+jh0,x, m^Ou5m<'@&; *p!5dϱV Yď,chTWm^J^ `kDv/4y# c2NCJKsXn@Vg?q9GE>>a,'@ ZAti387ª<r'WRLpm[T=J +oPv4.]]ap foɐϘ;'xk*̘ۆqb4&&3o=QsGQlQ,aZeQazym͚j5](PxWf s .ﻝ/[h1Y9Pu{z}=>qUb=^Sc&~GykԾ2d%bǚ&Qsg񝙀=:[Dk'a#\.kW\;˒?fsA]`Ϭy>>MC-rSYZWT;5~ F*BH?J? ~ |[=?EBO}e9+wg~Sjd_5_bKI+8~4'@c ZFtj-, \ef~ܦ;RЁd]jp{ DTq52^|=w@)K͝/ФgExt='C~9ϙ: fj1|@0+mmVOꉀ~9\'+zѽM:jţԨ`UamC7nw[2+1 脏?gʤ|Js2|U{M(/eJ5zODL@#r+2b['NA}. sf%'Y;)[; "{RcY)]R[<}Հ(@z:<4E_rr㌹c7Arї8~OEQ\5@iUP#J +(G3*OxY&mA+昒8V/>^FRpQDJe* mQMs./RWe.MPA2!,|qXVƕ#<9G7OKnMsDy'ҎafzT?W +AЖ s 䩨v]%\`*tb.f>QFhڎF=_+TJdʱ5FhR7۹ވ|瑇OMF#lKD| pxlE(1`{DDs>怭myvs\-Cz\]Lu,{G59^lD{i}lM,&v/ݻ$KBDt;2|qis셅%TY@M^9*:lga dL3doweh2ZνPmf M7]j1A4hu&ÙWlqђ2TŰ17$E˧hAhe۩}9ҧ~dJ8Ƽ}Ƥ͍ }(S]v\GwHI3JYh s zj 9@XZIxcpېGa&|7s2n\x+԰մYeCtjJ2b8 [X u[O(p!Q J~}G-/F5/pjq""  +S*AeC,s?ιޮlЯ-}KP|0T]ùm1"7r$fOe\O ˩PԊ9Գu3Ż-$hXǐrKo*<,׬ ѕ$Ŭ?\qQqS zs冱eMoeCgV4i5ws?Hnt@:4?ν$!=>Y Abv~^v}NXe̥]*u9a?iU 7Oe?ŀᅑcSQ67JuGQ~,U%냣<բmG$mOOVQ&$%eHD +z-;Sd?,[DKx~zv&ԌgG;J+ !aAJ$ cj>Zv>Tպ~{9sy')O_fSo#R)bQCϒKu.5=,I$ƒ.{q "DS͘QI5Q1#%j.!s O9tW@r\?.=8Zp/}5qso+]Ft7?j߃F Ww! \ÖҒ~^_6X++4ZK}ҸK(d/wd6Vr gP jiz} kO7m zr}bcʈ@MȲ,j ,Vr)+4[h4:r=X~Afŭ^we%K[K4/aK4Q~1*>1p&xܱ>_L}~=*_ ˙^@mM8)NycWrg/<Jq!́R@I8zvʰKB *e'0:tc 叙%k~1 !SM68s}xpKC `LH14#}^!hzIJQ%翾۽KYA-2":}2p7:I`<0ļ"0vzr(YΑ%=^˼j9Jį͜Wҕ.^h9ЩvLv_$g +v/)Lx57e`qv:퐊K! L,05XV!+UG36zGjQA1kA;€ձL@^?Cܣmc]GX`BVa.F&0N 31 +c7nPuR+M%!~*Fdu2@?D4}e'Bc@*!a)[5\5=~KQ/U}Ϙr3r; * B2r/{hMzNiPb@?k5 f5ۘ76G-rwQ|936S9D)GZUۖMpfx^Ң{"v{:nIrŲJڵKoԆ#-Iy;"E2$C2\,vV"2N6yFr(U襤BVK.fhy !XS)Ke%ӂpJ^T Ic6)8_<1U刲"=^$ic2ysǧVZHXtA`x6;< m_ݲ75 |Րlb"xqSRWSJQъRRe&ŧȪҀShT+TB Z3ƿ~''AQyeC(k}3.;fwuJ) + +VJq̈~9Ѯ_UCJKi^9⍝y4Ŷ=-I"Ib$ n71 9QLӴZ*܏+:uH2=ajTϢFlj /с.e^b=uyt7DE1}8h6/SWx-#.&47(l2-=? qV%wfFT`cZ7$'^%Fѥ[G1Eڽg/vYrYLD͏70K(38·/i)Veb,yF7 !1"d.)6j0/Aayc/{dJك#br]Y0rrZZW10BUQPv#6P«v6Wk`{QN`g+ +a [װkWuYVc…V8NWjg ltVA^;;\iHeR[o $QlLjᶌ2渇qUXVբ*!ٯ 75Wu_)W[UTJ:%Xu#^ r&Q/;ExqΐjlAgoIx7O*!Op硟B%<4W_{7觀xS~ +1K3f駹,P]?%VZ]?j .\Mb jx2n'R .Cu ,QZ?7)~e:\Q۴ j0?7LS>m'Y2be|we(UӐ +QQh2`2Q+-KvSMjg4?BEMDtGL$O]eLgorN66#/]RWu`cNv26>_H`?dUD1|9q$uMKgi1~C&k`Ky0ǥ]EfIYo/W:33-ӱt&nZ7!܍b爸Jnw'-EѦ'.h`;)@,5O "}6fhs^t BHF<,9-C43冇n Fb+7(k>šPǚ{Ys<:X"wYF3+7lײ935Zrr(XcQM0|uA5QjֹrirFت$ ֧G2~ڽQ,U+SNI* 2Rqު ]g޸LnbxGL&@Reo'oej82lTiqo)kޱuLt",:$*r"ylDp@)T|*ɂ|,bA1lWa.A=L"FXe\Z\Z p4Ի- +lP/E*:jTQA=4ԯY+jC;{' +VC_}dZ*Sw_H(ܗXNoloݭ\H3Azb "T-֩!=A&xNjFH ¶Rm[X!%*0R3r)fv( Qw,13 &X26 K;>PXꌍ͆8x4ڬ +ʀ{4! f*2#gȔgt2V +FiˢVA~VN9u H^BB(xʴDt2gG}z+Cgf='ϨV1{xwEوiEb{F8rU +Kx(|{j& ",{Mx,>{KkR3I{}_[)'-ζD%dg7ȾIIQH,CdOV'd/$TKvAVKv䨖 +/L6OK,Ƨ)|PD YzYTld0fYļȧg$0˽e$ ++e0Q\ U?E|]s45կ_.t~V!\/iu֊rWb*ar.& +r( +cӳL"jړe,Eifu ?1(UƲ ¶^`C %BJ"Kh*)lBh*Y?3uM0ΓHS `06gm :cl:arr;65{g#Ӛ*s|cW"jAҳ\x=o_9h{ =^ +c ˧;Rò`.ܰl!9ۙ$r)B.Oe-.!*jN\kTeg˂_hhfhoރ9TַtS[)eC$eq3*"- GyXݎ; _N4_h7/{79mm͝vL~CU +p̻&? QٌBO5죈%yp;a}!H_>('C]&+T|HXq bL`&K Ha٢1tS=_^}ړZ,ޡ҇㻓L;/o7sae_Iƨe&|7}▾f䌌twߺ/Ny5YnPwtd}Nv(;|ҩ$rt._rEX.$n »y%a,W6rg2 ׻yHxL +ɨEK9vIYgnO}`}S 4`5,q&j '*9~զ&ձS ^$@fWzGOV3r&+K&9Y{d'OMgiupJt"I=_ {w$p*[@Cwx?d;deU!oc^WS.In{MGA7349׊ěO ʰe N>m?˪n}iil YkʙًOڶeztPmKz[&%~}8amyo.~oZm:(\֧uGŜlg߈S{o:8*Xz>7E[֪R Q#?~e[&}7y"=UFC}2o|S|JZ[Sv]>FpmLb5~Py[K$n|/[S^UCJ_WF nI賑+THRNJ6WUF.S3zu=yt:y6:ٜ`3r`Ⱥ0UE㴋uܾ_/R3ͯm]EB7cL5>cVևR&yZq5NȄ@vK^v)Ou`:W* uװ 3^^htP5r2Pz~4t᥹uoq|{X*7`u$ҪHW^e/MSʢH0z +'Tdj8BN}Fǚnir9CBIB \p:Uþ)RHzIvՄR^7YZv8nyZ]` 1;͟y;XZꬳDKT g|r)5cX6ZUzN3e?Q:.5Ժ"}Y':F6D>Ѧ%S /=J&N`RtCԎVtZ75 EPezEeu:VcTJNS7R|2vڢH۔ieKvhW2ut~STKH`pL֬pwPx^SMӝLZÑy+E~rdɧ45v˺k [(^$$O<8h'P$鏯u݀O r.'{`b41:qO|9ոoi}[ .b_S뼊j*zt(Kr[MS䴾iXLf T^oOHDnGbQOp&Z8)hd<'GmC@~R)>72U[յ艑AX\FoRm~ZM^2GlM yfSmCvIi$!VcYE)P$ކ"xs<_ Q#qcNgpߨAij{٬~'"Fe}ahv76zeBqQ]NXr?@-D_y:Yb5$pI^,F]"FiNq2N"x@18.̋HTR#z # +nWz+nܮ_ޮ$EI %$<Ń6w ]{7)S5K Tjɥj+J' +>/ZcPe4d.N$2#rІʘrĔG}8⡴zJ [%+SE0%a{ܮmٺQ4aCi {(RE{(=⡰=@р{OS#5Bbw!~-{m>d{tm%<Ag491>L#ʒϚ}bMfMebrZ[PAT9Gop#fE4U{ݘ] +e䓴SdBd;;{d_6x^qi.}96lX~!;W%E&s +N )g?%{Two#hoF<Ї]O(M|J.NoV?CmR55ٞTC^IhhjYOxZi{[Q յۚz &\e@{+#^`#9@B ]~lCk r5R퇄ʮ˭lPR{m ˃o,ȼwx`i7o垠[myWQwQ޴i ޽.$/ }~#=y=wYZ}M"+cPJk1-y^ͽ}C Th>rSP=炼; kEU_GzQ*{} JXxeBջ dN`ӽxsD@xaʹVX U|}wZ5vJuoTJUBRE+>Z!;٢`!H!CXg Ԯv!s2$hPQ>LQy 01OCIT%$.;acl~E7rÿH1yWׯWomA Z ~ +작B`;jZ@\O-xƭRY4-VCzu kckw&MnU_4=n/X8k2ݤvXSZoՔ)j"hx$zbSM'yTΞ|r "Xԓyd(ˠ{GzC:QϙJe97чX~9a\mXȘEω@q_vCmƴZr@8@ +wș#C2Y :W~W$ ڭ(T= nܿ;!OߒA[PMY5^Q зW{Ю];#Gh1ϪBS?sp􉅨+~بZ#a_J)y6˿~XHu%O_sbchhr揱pek & I < h)5] .E:!Αi<:L07xP{<.W=Mn]ʿyB {p^Q(E?PV Ν 0~y3'19W[)mnO=äy,fl w:ODXq,`X aa|a0aMxߝ#]Zbj>{Oܸ1ClHD}]bMs aq|9)Ze/|>@>̂M>:-~zhzy֪Xķ8/obwr??gg&3~cR.o QoInJ|˴k-fI$Z̔ZmJ|᭄iByc~2W~tYc5oS7nˋg G< 6 J-{4 +U^0R H UdR$ 6 Uf9Rc;aUlk~M]W^MemM;ͷ25@ݛx(rؠGSrBk5}f$> +*M>^ObKENtxVi!w>#Owl{ [cn̈́-di%K--0:庱>cya#[Ww-l&8WyȄLx p0ccqk Wq`nn$\q­}1!k94 L7?3K}HXi/ߥge ad"O )q=oFkY`h-(:K4}Ɣf9v1}CB|Yz~SMAO-{uC;YAHʬ{ʰj4ֽh^چv70[}ʮP&*.&UnBȚPdtH:J?H: *K5*hl_|_sOϬLg.Ъ4꿨Ng/?V@20o)+!r`94]ju7vwЪf>c؀[m[Y)Ip}#Tk\5%65Y"ƛ>] r$O&۠\$hۖ,^Wڨ$sۛVa]N1n;O&}!ӆ͉^U.v;FE{γ:bLQ5Pڝ|s#]\hUv2M|sz s: : ͬ=F8 ő5Aeik2`Oc2[ss ddưe\`az=yη;emwNZVR3*H=]zRffBaϳ)uʪ rsL(vݴ/"BX+C-XAcQ\/bַVL PZ-)&!~6;B?aMP3ȴ5 ruO%pHBslUlj8 lbgtP9=e'7FN_yA1mšv^+]aYS()[Y#68"T)#Z ptЙESL/Nd :@^@lZFov +12u\7`v;F۵~[;]xU? [=7=÷;y&?@VF +rʌ?/h=1mK2ŜBӄʨ\SrCWWwVfΉQ5r+'n[XWt\uh&&.r(P"a9>齞ݣuN9b83;\7>4V2_#r ң =gJVd+:Du1{%U3 (siz@FMX\ 4.\G?m2h{o}k YO6zY@iols9'ٞ\# *>頦q2Uob%oOE*@tX9K-霯)fYlֽaLck} „zvJ|:SIٰW/_G}6D0xzk טؤG`l" .c݂A@_ + {)c3=fd~XX}vuNB~DyX҉x>;QRuc *z)[Y;x$3&ZRW$_Ͱ%g2\7=7 +7;M j>܌MVe45o!9jv +4eɩnwe{e$ m\'_=3{^xc^Vrxg#9MOgzu~Q.nzo0To+NpnffQ|ܛܻ_Yl%yJ{,zA*et__Jq¹m{inTM"5<H?2/bݍлs^*Er@J<4Na/dJps2ZZ}s>֜i;)C|"CgH<#Wn,2_H,dbexv=}òi_f/=1r*F˰ol/02f ;;8H'0"dsOb4js1)/f='U*v g˄ q>U,o).~p- M-ք?Ԅ_P mYӶ93xoyԌfե~wiG2s|.cW:=v8bau0x'3K|;9kMɁ xjBv.j>.ID?m5[Z☨S"OƱyhtؘIz GV+{}aV a@7PRs>*SUsv-o;~._K?pDu%l s2 e2RHTVj[#Wnvgya^(l_ M=Ez:"/nj<^>Ez܏MB?Pg?J䎫:f̩[+{L-)%9⼜U}C7l;;˵/)WKg'R1;~i7 Zm]`߶;wpHmAVGj)f"HgχмS$O0'(ZwN y18DȲUe [Iutubv(H9xR|Z1 }Fa[֮IL&S9*P̷*g6wUJ`S Ɏ!^JXh&ϗa!ͤpñC3\?m'x"R-K|# YX#=_TdW6=|'DʚɱGdD^FTvP5MkUq3ɨAUru%|2w*>ت]8E|үմWչ8d%K4RPnvrkǐkCrbFf97 :BY)hAdYoLM"fXbLJ.wj롉poru)erxֱXSZo614`mآQZ Cr"'ǹ `SmVΫ+c|[r.עַqp/ $oRʇ5uXE x{2ܰȍ <r:uq_65!a[ߥbHFDױ"ԅOXߑUԢx␿}(ib!o}jJ[nw>::+`1&` yLZnMC>66l'DrM(?+<-guX"C ǎaӄiBM2֚NXτ)qHTS?mFJ`'DYSIbibU0U.xE@P峞NZ@BiV.۩!IIv0?\Va"08v) (]>M0 o˹i\ߞd*nXF *mѶ*>s˲{MKiOb(Ȁ}P `H {fw7}Zs _u/ʹe|݃l`g >g,P/l&`_"gٌl|~"+sWpEmJ>p>pOAx4 }.>2hXh@+P|fEK+KpyQvܷ]@wp@,bG{ +QWh^SK:Kfqۧ~\?36I#q98N8⼆G.Øt[Qs2z^qLE rh0~!~?w(TQ5'Ȼ!q\W\3M\?D;/|?Q a:#&Q~{y(v݉QӶ3-ۺ)aȴ=]Vg.µ>͊T4 +w֋`\薓W!)l݋ADz~ mB!UJ=Pl6_w텅)!kϫ7g6`UNnї<.+ItS?vfu}]ڕ*6=gG +/HH$4bjLn5LUc +fxa+9Us8-Щ[r(,rQ=C, i,tx`}?$phMiDT x*0xpA9 i>銃nj,'\^6iBkL'?Զ"Cw_eDSX15b#Q/wIY/eSo8m"w#^=j5ݺ^6m7gd,>=ɂg >y4f1i;1(+q wV.w*n5nRmxm_=Qv 4t,% &1)lHVbX_ޖöM%uP=X .Y+"iIhokM6!g}d_ ʆL?&5={NQn/,˪sJ6y y>tP͒;Uoe[.r#ۼ8, -JQ狡4aa" Z [LxY_Dh^A6ٲ kVI kp>>y QxӂdZdwZYENYF u$ H }im} Ims h[;&Xh1N%PyR ?OiҟNm]ux?*1nTz`Ub*^$JO䎻>07v7ʂ?pHgmٿڬvkea4[)vإus[px:Ytm̟F; w>yd>%UWQzl S-0Y6CE<884HD8X 'o;Xnf9s0qpu+ 7orRS&ǮV"l]ݡ>+OmA]ݪ~]}Ԯ{UGʾ>MTo{mj_y[k3()`WN5WT V\=VVv5e!FZ_sUY|P W5SjTǮ ]Tvh{4ڞ >j&AT]9ڞU\+_TnfU}Di]`Uj\RxD`o yS١_Q'Cq E8R.뗚U}TwD²;Wi&SՓj߈* u8_R]s)2EdؗC !h盱.i'vi!80jvrHހYuZsD% +:a]# a-߾VcܨCєQy|@U}Zx;QE40f۬Ϩꛚ=Luzei\h&t׮)MlAzF`=[ySE$f(I) M#JD>i'rpMjnr (gͶȧcZGzaUJ_T7hYYxNIvw^>q-yYP=J5 V5pH<Ս"N*4+B}@)Yn2kyY(x @ X,%tB I{GclZխj s9b3`02Q+}XD̾FFÀ",OPb5u\ةMhn Bz(Nr 2}iB{6}7"|-h*m=!mmw>-V;42 /qZUIT*0b9ya䪯FfFY-n;zi3asb VYOWo<Xxڡ z7௟y ûH%͗_Orf.~&䘪]V,zfV{-N 1찎!sǛOox\;뵚{fbe{Xk&V^Tґ sJ\a;pJU;9_U.UBö8U{gĜf>}:'}e/y. 27|)vu9\zh1"\0JQe݇r9;v@-2Õ6VHaG=abOο #_3[Z/כ!sNRlfvR<]^@ܙ[<;m󜝙A5-p^QKs<܇ڣ=<φ І QeCZJkww +v{MX.B_e$X+#,eɕf64E<62>_LLlWpK/Ѧy},cqRsBAz,h%%er= +Ygٹ||5(NbbTIBfJ[crrMzhCcgpY,55x[4}08xH:=EcsYc8cƸ  jplA<'M +e@*1"GA˻:J l!:,o5ɰ102y͖Tpa {HCrFX/g>e-ٲlgkj RFʔRč8 'EpTᢃAS*DaVORxn؍ )S<]o{E*ȫ'Y6M-Cn/|$ g'G9{,^ vRފ5*<>5;?Sy2 'l9 aAUS-Ѥ;dy@#f<4K|\%e֙ԍ^L#شŅl!CbV@lFLg<1=2geIf}&m%zτkIPVgY)+YtO_p0ҕl>YuNe>;\43 b-cƧ34x9uס"Ş?i)zTRdxDYʎHj.ɯCsgwI?fqp-m=_:._&׶]Jٛ}Y\}^|h*qʸ={i=n-c:(`L.c +LL41rA'c I% +iy !?*d${@<#1Yʘ,& N1xM- odž6j`ؐwc\gVb g25 \kݙΌu740C~bp#RĢ Vҫxx`ϻ|1]/ŁɕUހ#zJ qRrT{wuP~Lu +"*) >K_;͉oL|ߟҹ~ċ/Z[ۃ_2_/Ʌj]L0KϬժެ7ikE稍5l[o'u60cMW>m&bL1I*Narʊ``+&!1̉6UЛ/"_}|z@+_¯O8S,MD*G w{pY3ucP%Yv1=t L{&Z`!S,&@PsUJʧ>ESpܲ< Oo1#r&WM4=6I8ӤAâR- +$9R )?NpJ!' Iq8Gߔk屛{ X F4C ;İ:)jk +OJ:94{,,{6dX~jw>)r`l[ObO DiOih,㊡|? YV )2\.f;߃I<hohΚ"5%cs`P{'mW.Y(LŁ7_;+L8)l1"N vN8Z˼dZ6\=qf H-62$ oXWk..#RJk@.NW G;evP h14 bW;>c̘Ko[.~Bdi S:>,1ɪL +2FWKCRybwۀFV d96o)'ݥL#1Rܓf좆*jEq7~}S=+Rå^넆Lxܜ3Elz. +TIvXC;hlE B[FWa+z^0Ғ{:o Vo0>K6SqNƧ $2~'#[Nܿ\I/DxvNrn$]Hhfme.ÿJG& ۾ v9^炏Ly)-NYyW3ǥQ&Hg| _+x)*#&oKI]+$>cC<&i C.ʾ +/n6#:/5HS,{bPI1~kKqL<*'gQN(x6a<!(|+!4)Oy͹[=gSg!mK>Yq'L&=2=>uy@{->ٴȴTyi4Nۗϊ$e-0]|,HSdov3:7-8M1cS޴#P&ӎܶb޴ q01 8c~yKA@{mbm<D6T@$x[yKcuZN>k;}v.0- ~Y:iԺbx8+Es|,]֎/ËG䎞+ć/1=jF,-D +Ȭ]%`5KmN v@3\nnuܫǩbN[x:k[>V|ӣѼWvnHM'j"YJ_U,,fWF@i$>PGՑtˇ@}$>P TH%@$>P$c`eG&]yhc^#ܻ\d+w䔌 ?1n-]jmMEvwkpDx;U̵ ͚U F)ϲoGkmt objVY*JUlO0˺?bYpY/⟍`SCKCv +U dX}{Y.+tQIO¶33 Yor#kפů`/*DZRo'&92g<-Ά8RȬLVZ)|vchl<8Ualg "1W_ ?o;0wx- ߞV8;~_(;^ʌl +kldLAq;wq%+kU|Ґy0 c)F'c'|yR۔N;^~]cR ؎y_2n+Mܚ|v귝I[FT0ìk UpiIY|`-e4=vB[fy:/ 0yK7XL R7HxVYbÌ-% kwce!8̼ `#[$l$[ 1吆aۡ;**FeIL6@=>-d#HSN3*EVX3\!KgH/$,t*M'l$Ywݐg=Bh_Iق)wEizۂk< Uh:l [,i .b8ѭ"B.'F/(Z ]t~ힰaPϢ|x:S 6MR#a.갛̩ɫPLyho%+lg/wO0IZwv1tW*f)v[{)cyBa;@ +\/R`8+3-e̍iKy7s a))47>>%X0'}ɻpPxQ0IC$`MׄҔfI*UB{Ҿ4 t͇{J* ͨ"m u9~z[4ےNS&9pugXPϧQ K&&WwO~_>MrCrȸww{7"N{r,݈$r#2&k%AnsNጮTZ!<"מ vB#+vى@FU̹Q3ڈU`/6NI|kKyrJޟp@x)N7J]F;$S w)Sg53tJ6>cDV%焟ApEC8`~X0ˌL2_+ղ&KCWB}XT<[bʒ%P3!$61A/'nmp諈pVӼ!9*qje@;grUU?mgU$Wh3`缷FA0!k*gE@0_х'i}gm 2a;'ҍi<(@{wZXuv3fVv54~*u/`.׬cZxXt~.A8#ܡwd@:Α{~-)uaֻwL7^V?*zkUTηY2R.E h3GτzgV-Jfd5Pl.On%7'7$7ISkYcwV' BYmC6hG7Ljr@/S">tt]\?bLӀi~,Eܞv c{Z+tk7 l0IX{pa}pT ߗYs,s j [y腼\{*Ɯgud uK(zk+UYoS9t"hiY4>.Ú~5>k kV/>k<, VO}EkQ֩\WSO/Ty>Yݞ4+=IVc͛)qa-IjĬ~t6;N{_k>v&_Y=ŏ?^io);gs;ssm(OtNÑ(2Pțו[K[*V-ihE OCđnSgo$,%bvٷ*mto= +!N{F%dFA^pH.Ydc*ɶ(ދ cw4+3=uOPJOl6@l$֯j@#5zi4T%l&=ec= !Y{aKxk?|rYI@Q!DžSfj{dy>yƻK}Ǒ|~ZSޝƴb\w,Sߓp=Co4 fL&~`Ü-,tA5Z݋z-o/-atN7ߙ^ltǨWat7.2=y FW.qAqHػnZ(,_hVսU QIk@U1д.64aAh&4U7ݨnD^CݾsSD(Jx~%3Zƹ<`;"ɷzJxyO Lxĕ@\F<LJ18 ߙI&Pe'Hzqc:ɐѯ-m t3pc9e̛'|{,iذi Ȭ@ kpq˥_7YB˦6ݷW:i6.{9Y˵:aN3ӻwk&z'Z4pc}5}WIejZO2-'9@{:NOO==>3 %|߉2>; nfKIncRhVF3fiVlQZ7p/=ݛ掉AD̙偹,2XrsqgϏw /9ӊZb7_-JoY{yܟDa[ZgY8Έy ?(wwcYnzG1K6d eѧa=sg7|v:77tjYr~ enJUvCzGӷZ%`эo4{Jx| +4O _őij84dYST_SSS[3v3.gˌgnV?) ʼn& QA ~@&2nԛΧ6pfv" r~Cƕ4N܌`<-`le ,[䩧]f pLWu18pPKw9X9̒EZgٶM+ئ?cUaIUUl_Jd'q>k8?_b?V"v|soArmgLS=cdzG|wR5/ +_3Ͽ{M;. \{2_Y(̜ծSFBX/$Eo.8V¢{>:6 C^Z_}#[jkx-H}h9 R/~΍+ ~ip!z{VSb{UmmsW![[m'_QV^MY0yo'k͘ ìуX_EaRtuV]I؉I^2dͶ{I7{Ik㛙t8dArߎ& ǥWlZaDZXkPD+8%Cر +w "hWb5:YXʚ$1$!yTK]KD۝c;% ɵE׸ӅJUOF Z6f4i6sm/ b%<,Mc &9fv!Jao]m85w6|k ϮÊhCv!=d C]3 <+Jt.hw~+ӣNᢈUlBAg8Fh!bu4Ga"uKBt+äw BlO',7(X{1b- m +e^z<)Z:[Ihr ,1mΰ]K-X U/C!Zv\մfaMKմ\c;|[g[H-Z^B1&Yуsoi,/\ROP^+ +zhCh:]Wަfd]!*6k/B]PnrF=פ^(igUv\vQ'uWHG;=>[уb:tWMnA1g`.iUl$a#b~i,ퟧ n{h #[hYJLw9 +pWd6E$S%Q3#mQ9\*>W4 iӉy8(| r*~T,@]qF]x1\h9?1%rΪ[#C(Wlmok"믅/&,oxH7 IY~<<wA-` @]|xP?K.:O[FQWdї)N%Z0Xcx_S!h`9ֲz-oӱWHﯹuH6\(twCV[kZ7.qǤSIi 5%MyUrBiVY=p1t˴-1H!5FWN3Ʒx~qq#"i)ȔӔ<)RLSR3t'rAb12xjC4A"'w;U77Nی=u ӯdE^pD +m 'f_B~'ssQZ7-Ӿ7P9/[*!onHKݸ],ƥ4)CAZ kh  u IvyndwU$,y;ب+{+LSo麉+9-: `6U*^Ȯhj5~σ(nRVj ;!6 +#m +vH3%{c8K6R̛sνoaw2$-#Whz_= +www"'JGz<QGPJ짽-'vX @/#= ~rc&]aeL(-yz5\qڎxLJ,ﲋm'tOwSR{ɓi>ZSCNjr6sN8-k,B>Z1c_"Z>STw W)!C~͢[rٽ>\i2;xch|xAM_.ѥ:Tߍ?*+{ql/tZnC>t"͖T_oc)Z:fRY)}ZZvT:)N ̚K/ji"oU"s499eoWqeH^xCW#q30/?~Vԁ|g|={>$AIG }HsiHXZUtK/`m>N,@lZJ[T݀Մ}XM(N|HATZ.rYilO8'Ξ#AA֧HyVڦĻ z҄6682}ϿLu1*>nƹ"!DXp5dA(C5ko[2U^c̭[9y /bzJ|u?J")ިvDúS7n)Q_zc; &κ >Gn鞤ݺUzQG:mN^2s.58p* 9f9;26|v@l1_ZFՁpgZॎ{E%WcKfd0iϸCTicc/!x~* xI ɾ͟՛OaCYbƆ9w?,=䌵Cܸܰ}rV,kﻮvѰ&w4.ٖ*Ϫ+hnCpsGV?|;&a+_KߑS\N WcI oJtt/\= /n +rh[׶c-1hh5_$9_ɿҜjGl='= QoTXEn5]6}$5j$.ڤ/L KK8b tO=lЇ#Pp|n\yM +7$Bdkw&19+7%󉧑݈BH pYeyavP:Shr*>gu0'pLQj>4%p qK|7֘tmC0]n%߀H1U_A!ͥNUH%i'P$=y"Z Q }m)E!pH(pNC?J%m:wPtIr릌$j)OT ԋ-OɿWcvT^}n$գI s} (OKST +Zy@,7y󲻓'h`|ɹ7:xKG6MhSXC[P%HÍ5㾫5K0d ͵F($5nhhDqٹ$.=9PmmڨN?p1 +C*F\h=agk pluOKsmۖ nH޾NxՂti-TZ$RJ |d% G7>bT >-S,[kA-c((~"pQO\p{Iǜ%ʚ5H;-߀^"%0=Ax&DЄk[2ֿJ즏[WUJ6_N0.KF4{m*NQQwHQumsޯaL&=l(sTޛ+a0@N_ +Dy}W,<0LrM'%#00 B.e/?fjKUFav?%`Vض%D`ޣd>>$dG7lK0E–>0eKaLG3fF$45;WR瑢nӥI)vFw/]$#lӻUO4<2% ,Q}xҨ>2Mf  #ף1>:&PrKSkL.xQQIZ4PahPCh,h ZIGfǪCٔc¦FjhHr51͵Fc4[4h6s6 ccߍBe 5|LR%I'QmÁgqLpLr1p0?eɫR@Ɖpp4?rZ1I5>`ҩ|C]Za+hVzӗ,[_ة +HA(#26,#2`و'gh} +m0nAc ޿C0|F)3ǓJ[iz3DfD M"|P`(ˌ0L5 +UN ܕ'Lj_'qaԌ0?f"g)qm}fŤT9&/^J'e +>sAu*7yR?$l`/E =&W=wo*~z]6CɁ-.mѵIkX9lPLeh(c{aGK 62\U f7~GhEQ7U joP/;!5pޥ3J;9;O#@35@_gCCZ0"þfqi˓6+S%S6K1A޽č1$鬟N Ku=nؽm*d(pU2C!<0慈0mUGV>Ìh{Ҳjdj],6 V^Զz;DW CX>gE3B H }o$4t~#Ozئc$q{ޙ>+!BE!ܖY0qʼn3/񂂚Sd,,{C]x,Sb#╩lՏh$K9KlmO1M"i؄]6Pjţ^Ha!EisP?!Ն%' x@eX,L,hpz2(1oZ mjǷA<^sDȯs'K8^!b{ >IEN,i]Z\~TA/){mfh%0h7C#-l- +# _}q;"(D -C_m,B@*OHVΓ 7k$pdDA: %Th t7PBᅉE@mLod|~|sQ|OVxʬb1Iao(eSNK9{*Us!=WqєCs]u5H&֡R +8uޞ:7 ++s%O"/mv,}p%0a%l| e~p屯ٙ[^S;bCpR?sUP U>DjX1C!M~(գ#enE\ߴ4kzymP0B0*cM0G(دI!d|%Nwe3KJ4q'P˺9kPx/NA`B + !DGyZI_ѕh`ܑ4 OF)R\ˆB#uYvdDyF@f/x|: zvNN~]N-c*L Q4_ًbZnEz6(]XH_H7J]zb/} ,b>ʦ9I"}# xE?Ye|<2Z_ 2åv)) + 佋[g28h>_e9lQ2ُV8}:,Ĭ-h}}r:Kt8ەԱ\&j}Bn}Oy27SY􄠭bK7IἸ.KP,*]Kg~[$/p3EEL%,F҉eTKτgBȳ#hb{KF cjJdCN*dv$~Q;nF{~\@[?SOO!}̢[lt|| +ٌk_QO[}DK4Q>[L,&^ +njrIH6qB;,Ј]ZF-wXva㖢3IߐgʈH;1Rg&I镫-Z;;4wR.ݟS^݇5J||gB: B,FDIw,T=iB>v֩(:WQ)+%lӇ)²<ayf#uÒl}FGReUhhe_ځ:Qox&ElDTe;bHK% +o3t}R9/X3jXwwVoZhᙏ噧T(r""tDEZe Bi$ҴɢiѾ';q @; ơ ~R kjP֥@y>BIlHVRFZiUL3!nLQ 0{=o1PHjmDz}a >ǂϱsH=?&Yma*ML@ɛԛxu0ݕ(!OS1 3C6X.X6-us%ߙ ֠Uf~mjalJA5 쉇j'`Ȩ].tRUߤoG68vpޮ3ao.jJ +<#ƲV9ojVRMZk㶸TveTKo=I&ޑΣ]N] S~ߠ8A1_ɹb`74]XfوTӑSɦeI +;#ū +pUȬ.,_6=;}7nƒXpQ\l( kcDO-~U{C Fe@E _<ֈ1 LQZ-EY[/RVGNMZ-}K[?-(tS]]gZv[ FqFI4X͢Q!8X T-}{Ͻ3#$bvѽ{羷~/v#M9l5P (tv3mwź^`zm;(JO}p˳赛+ړD@lgodIIF0#ce.zx{zper2="&6lJjPN%`} ^#[ߥ@fI+nBup 7V~c}PR%eW?2.N1F/zaQҏŚX2y]p}z6RgkD(fi͸FL `~OvYK x TBYv*f/lR++n-mU%и@3jk7wwVW)k@lևJԯÅ~MyR0, WnRƬܨGFv4 ljGGyQa*CzvWduV/ٗ* +9Kj"cy'/m˕6٪IZ3^Ά2#goxOktk{sn웸Ulk#Mܻܚ"pL_PsAY9ĕ7Np(fb?\i@Xu_m( >I-wNTb#Qr|eO={ r 2=g׎ȻC6jkyje{vHWg e6Iڂ iϬ!"̪;G-lg$g~v>u?JSi9bygFCB^s6y1hm*`3Вy.Mdٺ]lɼGc/ +SLcT͜-Ol Τ_w" _ڔuowS/Fiz79%Odjjj1O8ad-/fFvqDn VZ;E6ѐEI +:Jn 32>kˏ9Cu^"0yMC*Ӭ-P*uYȿ\=]N6=6kelnm116r8=N1t$S倒Րrp@%;+k E~RLiɾ(4hW' S׺*YZC _~M_{rLU]s#v֖b {j`؛W +H$Q1{ƞ|s|2"ngl>{9WNfz.ŪӚVuRzaU1UVO_+d!O{0 oW?]/!Y}2BV@ + B<0E9LLPnj%Et䊟#~_!Щ0NQtHqeckdjr$ɯ/M)aQ +mp)Tmk +E7($Vۂ?!?<wx9|W{֫ +nbtf#$QCFIMܵ":oA?Olͯͣ}nc1KJXI3ֵDu<+wkZO,.J7J%0%pዚwҭ +TWLlTOKSupfU:͸[(-7[#fP _>㹀4L\K7 V&9/)S$ӗ( '+Ȼ?+>}?9v3v?h@a%@_`oB=e +Sq칁e  +&h'ty"n Ezʨq&47?yjWBweWvВv %'T0 |i+UN[,}/[iN#h;1ޟ{bwC)][WMWcѣLY܄-w\"rrW;6OiԴ>o˽?]q6%nAٟUkUߎ왣4V{2ˎfS, ; וy `d's?TЪBFB~l̹_5]^ٰW6╽ᕝNyWM^Y٫mZΫmQwu\Y>JuױDi"e\QK /?3+̐m_}j:bQn.KC2{01Z신byWg'$~xR7Aa2X f2E#%,a/>㧚Ԣ7~Lw(6tNG)/ n <e_\T>-vӱ1R6=S_3v㓱/488%Ab8+v'N8&(+c#~dCTߧ'd*r]v hEfX9nļ}M_8f~Ev>Row~Z7>\GrUM/ݼO۹F7r\(Yj <{~BwP;TK531R;?D:D(niSꫪ|>L>5>Oy<H7cz}|n|Y, t%lvzc()xu}EC +ZVc0ը &rv#WxɟȽIX>UQA* iXG l$wy]ЪSQ̨zqX]9uvYEut,V5 [v合!gv1YEnؒ(֍}iEHXU (\CU9; +mS#%O4yqᝫ80~S<)D.1 ` +[CW0h، !4-x [xPk8r6z \k[ڵd־aH@y-x_ пcGNŠ_3pM91芡 uC~m|2ԏDѺı,me2kw}#`:?"aw9w%[Pۇ-t krrfru=RZýzHZԌp{<}=/ȕ~HU3$=hs e|x_7 ܯֆw(EE8x> ?ddד |Do>4LKBag{sxt3SS&G@uB 6%a* 68DoɎ<o0> RM[뷅s}9/Sj~o/m,z1ֶOYw yj-q mӉk7E`a+}Eg9*a8Eaxqp ^y0L89(݃?54ԵN$I-9t-^?6#\d}^d1ÁfͩE!_jbr~-əbⰿ K}Ʋ/mJCrk>hn{58Ç/ όxgb4OUy 3 z,+6 c~U!**g<ċ<GTy/\^4<}W*]گ ) #=Vd^@7J;K[.3+ҳFA*Pr{lk|u5 3";PgUҳEt߃|IElXSV{mFV˪⬪~GmQ}"Ǯ գ%QUSm{Ú1o\}ݥ̈́bFm:vıL)Ǽoaͮ]1HL,Ζ:tܾX[j}@mمvE.h0ZsyX$)GB+mmk|Vm;m;e>xfצTur7վSaEw[iG]6*o pCKzSB9+ "JD C+O]G %!A dŴ%Z^U.{vSPK)?XgRd.Qth )Cd|aK8;!T,!y!Q~CJM.y.˗itJ84ޙ}vk]4h|N8MzE:M#{qiLWS{͔ftD?~+ :UVc#mWۧS]b6 )b;+NO}jg|\W8u#0t|ī]0it}k悛A(4AuݩV]gpl}Vph0" MY0pa|X tɗ+&5䙚:k2Xcjjr͗Y@߱<1vEEAOhupߴK0Yv|)Cd],[[1lzk6Sf7LcNs,/x$dKӗ>//Oӫƌy :6Q=4W)Vb+L;ش7ȗ.Rf1ÃQХ.tzTI}R>)|R?O +'E =3 ʮu;FSaٴh%9&ӢY4aKAD nE=>W{?'x x b.Y:{u~.(3xp6h}FBz_˷dT֏xx3%,HWOIţxڕ"|GM'm&kn;Op=q0IGWGpAQZAKc .j[.^<azŽ6EM`-+*MYb͛"KF +b$X $rjgb(ΑqowUjMcȭ(Bd/}!4߉J:JXJ3,x$AU;myںcGP=cpA;Ts/ Fq64D {D@SEWqdŤ0D (#:vF s0x$I8kȌP Tm_n MdOJXr ޗ"#Mjw w157߫p䟬lN`sv@9qRKwGw*3dvH+v,WEՔqqhz+n15OgCo--&3ִԶǵٓA#Obۤo+@=d#*d6r茏G㹈-zK(%ՠN,GnA.jOEP.DA.imI)b >s_8uI~!5>dKy5 OxR \$JJc"A7.%|zy:Wk1i6cm;_4x[b;)$K.Հ\L=̭2ᒀ3Z{i۫{i#*=\pKǿAW8;d8=VɓG4H跥FoW e57GZYs2O[1؝> )dE\#p2Jhj _[Bk_q=T>(@fyK'>W,•QUAQoV)-ql{ Wk7.!4۶.BpzU)RmO +'[.IK}RQXlqȵNjk^ tn 4y!@Co$ N9=]  |75-R{nrl-TO3Q|Dø^ Z_w|`"-; +Kߢ3ٱ·_ra*{^g.Viro7m1pj[^+vP3%^"8Zuʈ\e ֱ%Gh1k'd(f7+kE˶z^n % <37@ ߔe#)"ץ],QN^ ( t] `/,p()[oU"Ee,B;(GCH.=@npUt5їy cNYۉ + o[wٻP쵬Sa]{~%tKRA'TKN|qz#F뚶LQl&~Bi|]G$akiAOIszn*) +!yd*2^yÜJ!3;TNYU»e VLI 4Q{ggl}gޚ=9TEjgم͡fMAlwϦy7M!3#p + ڤِ uȘ`bU#8ZT~ѧ]xD },᝜>ķ3АזА3F>>>iOy7}v2!.2 / lhMe;[[lU&uOie4:S*L# $~JEOqY~bIZ Y]8 bǬX4U$cn(K Nۡd2.%6,gG ,fm!{eY_ZW9۳]r Ϻir ¹ulIVyȞg {̛5rcanValvYrKN፲RY"[q8vX*oVE}P;:p6iVpʕ5uDXkfr9.%Ssَ,Boֿk4zB$#'I)|h}hF}gf!b{s)IL +GvF*QvG8 hoP2MfWeAG +ak#?XtDC|NHGC䆯E,B)h!m#QkQy0Y"f6]3nl_FM*ieq$&`xɎ[=[MU+uپ}s 2, .${ܛ0k{Z+8?OUXq^ O,D~EeA=-.ү* +devw?fa *B:EQ_U&4pxi"L7Rc6Qo} hpX,mД!ٟRy? tdx5h=ue!fVz vPn ّ vI#,?| +G>S륃Ҽtp7hj͑ԚpUQsv[DMW$rW(DvWz*kJV' /hϔm9*S&0~ + m^b::6Wt0@=6,5b^YC8f@C.Ϧ{ Kŀw[ lg(RBmbhYžuURm`c=%DXifANb35$lqeM:ͲqnIlbQlMbڡޚšBHC˴m_ϵ% jyP w2,J֚UX[kKo:ͷ OP5wͼ1wMݰ&;56xXic|TQo5S4=߃wt=G=;lOlhmz×8+rN_|)a*m.rʖ$'G9pKBDlB$zsZ՞cgRqfȢ%ݸJܣ$eI)ցS|/%/} C_"ƨ1II6}Rx_20SrT}qiotj- ݼ\v7 <;N'4UKU|Dݞ=9eMD|zw3JYW'REzUZ&MIc+;^WoUgLd[#$K[vd 4w_UB8;\f{B,;fPO/b8TmQOt[;OuD&Ft06<e\9Ftn>!_\ڗJsgƵch(-)X+܉ <;섘hfMu~g ;*Sre3Sk&`/[W"Ѕo)xU8qSEiNUٴ>&UJzUFnK^K܎SVS^L2JH1'u|1d%0$:Eѹ3cZ~b9{tUE| QU^Ap(v۪zuQUwB3HwD)y%= 2"m Tx\=Yʱκh$[wMݭ:Ck#hG o7c;CX:f-I*J9wN213[2 Ƿ8-8s g.dI0[ qMKq,bq3hn~>lOvq@G*~~&εos6_/#ulnBԮ9YruPS-9Nv,-: 2ZlKlYi;ebZ!I7l^}QOPm;.!q;&$ؕo^;t~d;pn4&;:ֿRk;#P0Q5.= 9Hn)Sk_>ß @{%i׆/`4!O̹%Y %W2Pi9$TyONl~of' +oexY^;7zsnԛZlOD^>$Gh8d܆.k7xc ~-ci*5Ծ:zVmR\/j.h]_] |ݞk-o延o>mU\kwZۙ+>d}|3':܀$_f3v]ؼ;y:Uoϵ cߔ5+J9REsO9f{9{{Y{_^ualgkyOJr\Ky|_G_v(zV4zTt85z-wFoBCz+Z{twv-I/b7ڼycyoRF:j/dYY6lMG>>ѝ|N>MnV+R(H.h}lʌvcM:2x0.x&D$eJ1qHk; YѿzU3fna`mfZ/dJ\, V28P+Dq֫J2Nv:q +JW@9\TyjCnS.ꏟr&CmxpoL߀,Y"& N|fvE8X3zkK]^`Cf +)Å j2Hp3BwQ6/5:%6:ıfJZ=.֧2j}kMzJlXY.laOcvuoٟfZv@+K+e5bSNl s$uM;.2f.M wg1{2SIf&I$)4ZC賀4;p9!7`hTm1\b3K^ՖVgp!5ň BO&pd~\F3,/Ӂ81sHYgap6ZtV{qbI'+8?^$=C4IQ~ dV6*6PŁx;cAC{Y〬 I* $HD21G"ܘ_KDHS}a4~Hp@?9t)I|}KaK#Gn,7 + $f]<y/?5Y$l^Ltls˲IN@{('6!&LL EnNQ@>D1ءӨ}N?Mc//C6S pȊdK(~]2\`.`{JMDj̈́یzl񽬤ؿblA[# Ƿ0@ܵ%S9KZZ$}ٟLvaAKZ5z'UN.˨w]ټ1񓮀ړ(Ozw qI/xz%Xّ*ΉF/qדs=Ƌe].y ҇H|Rz}wkqz}^B9ӅTe]ٛ*KnG[)n?.S0:|KkvCokjj[Z[w ڋ{?'j1rُ@+oʒ ?b82&*hqg{<4։İ;%uB?*^*Հw-E5x(鏬t*i⷟E*F<ƭyo47l(2,DΏr؎7eޣ0Ǵ&5baj!IM ~G1|+>%Ư/nP Bn, )bEVƟhŎoަJ9!(U3/גƬؔ<4znEV,t{vp{)GaNw\bR!e}ܽznBa͡6xW.`DN/\m1roR5Bs-4G?igHЃ`$}ʶMlLvD?NHw2ż-( WC(Ŵoڗ T:-t/6aH3VQmV!TkKRfE?h3{'?GZJ-BhI< Mk%ޖ$싆GHOې\BT4iJ'[<|$%xP(c2Զ;btdg.3p0IOr)Z?jOX= 7=f>%̼4Wao+$/t "Zd[ca\ؚ{l;6dhy+<{sQ^/W>yBUږ1'Tѿ8H32MHnlȡ\5|ߓ$ +h!2P+6i[0$$4ʖ{0PU3ZuaUM+=]F)%jH 0<[EK8!oهTTB].lloX[\-zᴊ\Mqj Yh63/4tGÎQ, z4ʐq.Jsa;ol;z뺰%vFw/h,=B(" gx3Kƹx*6kvpM&\xo`@Y"a"~s+(ƭ[`B;IYgi3M/6*I"8۬g{_>Љ3]Sw˵j[W^^_B~U3u? €nN Lw\${HP +S)+4S9B)J8G%42Z) WU=R%i7=œ $xHwRW!ݤ\\%mɑ&^TfZWm1R[4K#DIDt ]λ̩D|]X\w %5q7 O~]?3еfNRw_4<]C6Iv]V@}¼^#c6"i!{Vޠ~kSto{e0xkZaG~ }v=$`t{κB@TiNpӧO\pMb6d M9䚑9_T,ul,mn4.,jUϴ:Z=u}^RC~^=y s2UW,-&Ob9:粴lNjNjQ' q^tf'Z tLv?+Ui~zZƱ<9sd0Z6_4񤉥a-1I Mݪծg׏1)OJKs}1uuz$*aφt$g&ɾ^B:.gKro|-P&ࡍcރ'@sW{svxuS(~cV :tXؼsZ)\+e md61Y79d=0쏢CWeK׏+Ͽ+ݦ~M븯/'4i.GRT[H%4(IJqCnŘ&t*~ÄmFV[" i͗NJ5;0_pS[z'Z,/ЕCIeH~gjS9qOBlۜ˰GԔ([ >} eKyJg*߼Sg*3-V7UYsdi8rն[=.p :~f2@lѓJ^/j9)m'y:uI*껦N^|bMƛƆySV?2nRX_u4cAKF.~ E?7׬SzcH/lIrmˡR3K +t?#}1I%FvJy` ckĆ_ {Z%zl) =ذ P&.t_=aD MOԾ義srZ3*Ng3{ +}K5v';.)LD)k]Z:8RSKFy:E~iKxN$Є<'^~fUz^p-vk\d]iB< .-% #q#iX) +=-b}_b43aX1=30i[q\d+Ț'kn'vU.Xߨ,YAJXo}(@haݺv\E< +WWy] 8Xmx oz5 @Bi۵2 X]zXe\U2TK p!Uz6T 1@z݀|Z\돾0ܘXhBZ t QgAB*X^G.0δFc-&GcTk*1w]ЪyuV +3@OYL˩, P\ +ir/:B<19!C茏ltQD^k HU+->`rx#/lFEAY0c:f`zLXE<\03`#@Ѐ1z +k]-`2q֊XhO)VIKQY␊fzhcQ Q:.3o?̽OQcs4PQOJp;L2OR2)+cS + !)lfW)Ѕmɪ*P}>TPڌY̼,]s H0bkC]*9W2Ń,V0r,B}o}feL^Ox'7a晈]l u eHNĮPv:Xbuxkzb~%8[mKm߀ 5vSzD}3fLM?Wu: k Y}خ{CnW_Flk?7K2ZkFMWnqzvoe a>uӨm4ZY7u>f~uxy;VےQ>ք=t TFCWCceMsG*i=X<욨EuMSj\YP:iywcw6'<:z1L:jx36, ><yP(}("Cۭ7*ݺn|_ syq4ij}Cf=g7]Zu0Hw..>?WǫoKҁESn~{IEg1{<{gGxvmו.9 )RxuZ/$F͐^ﲣUioc+:߃&u,=⳸T{ڷ,3+ѐ툙HZ4JY?{Xk׮"d"[+Zh/d'WWIX+ݺN/c2n\|kEk#?dBJX,#$2&p! 'M1a:唘|O7y侬U C)ei_cSz*&MRAغF1ٸǚ=˼ H$QCmb/21{,'3A\19HA>K;(-lfSb# >qm*y1B7U3=ZP'8 +06J'^ & +0) Ip;U~&ׯ TJd*:8N@-@[&h# \Rfjݣ +_~2dly񷼆dS*zT ݶ+JXN z"h$-4R"&i|HWc,>"X W3`0zxC]j)FB"d@=>vT1r@軖giF` gkJ3jS~ +WmqA=.3ɨSj#:Hʣߗr8'7ֽxbm +EO|T1=5J=lǩ7D&h$7UQ߾CJ_AsRڄ_]'LgLD*ι3|U"OmcW<2I '!N\W"RK> xc^XgL<$%#;y>Os^C"ǎq-&vtcrG&;=(2RDLn}P|P 2 +=3%”rBc#S3x`| O1v9mZ&~Qj4vfHR”MJ7S"LfJĤHHKL)2)pO21jZ&k`>Cٗa} v7S/C~f *Du!z Q1x,Vā,rIIIIM&i9zd +VW;ow?Ill9zF1/Ĭ,.1f71>/IrDD}%g\)B 6s[l&'\\s(.+lUYfXX]T\Wg޲j5YshEKLcu33+^fD0x6-"ӞHLT0LF͎`R{n Ծ?,Yw|y/. ͛6] Ln8 +Hz  thuc]rD<)`L9&GH;%&g0 +س{0DMOܢ9όTbϹkio9[>2%~i{K<-1[Z"x۝K,ҏ(/3lVb 7v9pV9}F)8v"VwÌsJonycxw^L%T +0`xq 鼑E9.__]GIw%+,sY~ϚK>Hިӂ!Y#b u2G{57{Hq8~k)) 2jG"c]oNiO-2Y} jw13[=^&Z`fX{Te^X pIMrxHu@8LĸyX2&G;C&8ʔn8:ωk)lnR8V,, ]&!HƔa:C,GjT&4F]yNNvoՈCPV}3ǶOzhA5kH´''w>')nJ0i%QS ҶѤHߏߐy c=dcGp~O ,՗K&L#/:=[P/|=7Qpc/>|L:iRNVS1-L)C&6^ʹ|-J` Mj9Nvˀ6,!>kD48RFLCuIBC{oZ6#qRȮ~8,"# wܐfd єs7../ˆ!v oY)_vһ[ZV\ j2$b N +GB#ŇRZ#ɣ`܎՚- բudDf^o.{_ +ɬ,1 +xk}ʩPh'hlA@n`|ymQm2$&3P"@eQg-,R`oe' !FL(}l̍qx._p,ڊL)V(-Pk~)-tr{ ?H}F1N F-qpelbzVO~m ?8XۺζK]cqZXSmm&>]L%8KЂl2u39|ewyؙ"JٷQ sb+ȞT'e{^xqǙZRRg-1"9Igu*>wI¤0'gɰɏ-E cCwn+qs]m] WU^V~XcV@jY}DZ2 +M=>s!"઄tL]D@ƙ^-E2EUDUΔ +/}s!W|ЫNu{Roj xb<: +,b3?zU-"?ZG+/fO-Z׵Fy.Z%[?zrI52e0fH&tE(4!*DD]|M,`@rw. `ojQN ~T]l|ގ|"O4R$!ʻN&eYfn!@=N<2 0Od9 +ֈ Dʹ>*^o;11%sA3G#4g;]^j2Bƶ^fN{Ft(OQ2r:2{fdvV;LئXG`- Ԗ83rEcs N1+ `p_!R8tֿ2@2`M}92_E?o!hd9HiF)ƙ-CSKwYZ0U}9OT9*!!N{srg1~O: 9(9Z읐1uXBGos\Ѣ\?-q\Q +&Voţaba ̶4K{ a37DC":1^z3Ytk'(b9z27c$ז>AHj!\L?JH:=41d`Rx>,5r5;sr% +'TR$V܊:觘(]g?'`;Ǭ8D,NkTK$] uBk$= .(3>/BYBZsp/J~BNP8<PQIE[5r.azz'V]I3 kJ21u+3]\6]''_}2 %G +: V_+<T.J}`//x=oG<5Huy0<:Ga,@۩ U#6Fm'3ܴ^B紷le;ů@zuv| cyu1ΞӜ]+GB;>E>oۉ7P<8^if_vJu~d8Ki`b.ăp_P/Ȏt*x0mvwO. ;uzyT1,z'l0RuدvYIV8a3y60O4&L TW t$hKAg +RRN.-rbiJ_Ҕ ^J?C:˶-m"sҴybpo. g#GdSJ9mLb6 ى]"55!OZ"0[/¯EIG戹.m6rLIbԓ9mܬB`[ )#bmf\'6b9qQE Ew{,Eg7͸ͩH< 苟]Gi$>AL ,'^b ,U}tf g-i= ;)ST ͘PC&PƄ:gh*ݰ5_P\A]3uM|*HvB9Ơؕ.]<+ZEa Vԁ7"#+l'/T|`;[OEb`mq7kO'#zjZw-ydn{º#}KGo z>Uq\Ű+)O/`RfFѦm*2\r}KBݔw]M `G_&Fnẹ1W@rO+is˧jss(m2\%]-@(."NY@ێ};]"P.->#hPVH.N\D×fj X?+1t̓nD +5_ xK˱@wįк@vNx|E]jX_U^5׏5 '9Ɲݭ$"V>_@2= >ʨ3y64'3V :_~m 5"aR" )TkZ "T4r8(쿁"L&}NNJ_1m 1R'O#͎WG9f*/^c*k8g*i*\R4VWVbm,_l۪' +4; HZ*v\x + ǸuXՇUcCzU{_`c{܎ j7D]EJLkw +.VeY-:Qm*Uu}gَDc,%+RՕ(~~AjvCUܡw;?Xsjm͇c» )VzmT8pb_+-. :A>,yT6C^W(~spԡkCsuCo,[D/"Qp2BH[Z݁N@m__>RXʡjlpPV(ٜ|meqbw@^5DXmN94RJ;H8gǹ],&8\=זXL>zsŤ\}f0I1xm.z)ag5RԚmqUsn} +oKlI`ʼJ@>he4a#E<~5Ynodf08ՠdmJQtٚ2r袑C"VB<{oK<[#}?d^:D϶VpiɫD= +?bDՈ飈I#zCqJ,?p#p0 ݊Zяu2W"?M|dwж4.4 4]QʸGǎqOq2̈́P}'܁x'.湬GcW0">>B'Z߉-|l H%y'M.pww|7wf R>8% 沕жh;mO-|gqC؇碏2hP!QGg5>j>jF j@'}~ *~xrIzyL-V/{;gh/CO wcsaL"O!J]O!Jlg;2I +Q.6H .dB p6@T[`47 +H1ߪmAفT( +E Z%eRc= A@qFj:Y.6"1fA4LW6n<*)WV@tV@/B 42tI,S<8O& 7At^#ߏW0`_6NZKԊV>~,0!KiOy@%ٯK @L<;HlOq]H}>'O?K{X[>2*wI~o / y@, /"+|}_JRĝ;SslȈPI0 -5L@j.pA51#bǴM13c6}Ok@.>*T Fs+ ׀ +=!C w~I"4~߳٬"풅sAܧ&gW@y`e"6d!_ +>_.7LÒQ_*B+?Rk:*W̢7#C; +)B2s>)<<.+\ŌS#mB];rWSbd>f cPsdpyУo+yPTv✷՟(L>-qZR>"GR&,K‹܀ U Ojơ;p +X{bcԸ'ʼҗx8]u! G!Քq3-A0Tv*7qZ}uBN`;bR5I/2ơi_7Lª;A7+}*=H|f F ߄dú< ' 90l4G^ ۅҷq!| BàEA׽zR\Ri͘ +TkTa;Y33s뽈GhC礴Z@]/n:ZZT|"ϤP`o~Q.d*Z6Y^d5bbM^ξn0Q :XzeVIh&A M +&䲿uؒ/pg3ccQ_m' cZ2[oI}p{+͑Y;j4M,C5A2TU7s + +2 +ξJD*"!a`iVONzƂ|*Q:a׋7Cub .7{,alIK1ask)v,+dEB)BJ8]pY +<mҋXe(YDCg3oZX1Ѩ!0+ph<K\opc4;Pa]7zqLV: v47|TMUUĕ9p-;@ B(\dFqCg䅤_i1c VI^ͷt "Ẇ2:ۋKCTgpd2.:L`& /!&-'B.ȩI ?k )-I(`xf 8t,)wR˜T)ׇ9;aM*SI909 Q|n\B^Zã@m2*^rUWuQ??XZFPT J +֛m%! 4^X]ZY>SlCQ`u7l*೨D*(I.r pr{}biow\;:>ns_b#.5B{x}|P&~ɎH*I  Hf܆X̂bp:pH2Ü(a.+Ps7$M܈\I|Gm t)nanVZ&֢%t9E8E2$UI0+㥘#^XBk ֹhX +-rV'ՓdNtK“#p MZܰՀ49 EWex4d-_!AE$'n|iSNi < [!*KCvQOFOJGK~U! + \frWBZrRv~uMS..$to1e{+ʡCR!>y~DB},eӖ-G-}Gnm.V:tE5iXFMy*_m+_¨2YpU2؎ -QEϸz$ȍ@^Q%-U ޭBD~Q.`"ϘR'g?1B*a07o?#c;5*L l΁"h#([YM' O[,d$Mi^zV,0;-Vy d6@`d2V'$roe[9 },Dgl~':ap5=IpyB洏O m9 GDt &. gh)9UcΚkB8s_YElf㰯(86mVlp_)~@ۺm{OG"nU>K|tKmT)xVUz$[mNY4w煄g-u+qxxJ`s{slfTd8!M3t A}/,rTQ9nIȧQ QM uYGuy CJPۇs8ǑaK6/Zpո)i(6\U,=uϋ] >77T{xʳ6~QDeW8f2nQz Ԫw&5w `7;0iNfTˆtbsǀ^ "'DlY*ma%B\:n|k' +L%z劣1wpΈ/eTnOo15u`b Dpig7e#w n?`${ bZH Ŵf#cN;a9DGx& N봿Ífne*ti-dl +{/B*d&*L1euC,m7^&Ahx  WDj2̋&EG"z M8Ղdݐ]ßo2}N~0W"8N%-nU{"37UOi38ѨRCJCآa{R]t75ȷzS&*,pvCz1B󭺭|!k(op /uU]`+k5aBV.M"م]I8!zbBo0KeS$c8 (4&+ A%ٴŖ K$]C:},^1޴3g/ЖZr K%ʜ4\`lmL%X&A9~*čOtw|FZ*ϢA4f]wd@ i. 7mxKp!N@W&]9 w~6dxDCaBzF++0 1;yA;еg)+"Prx=$*#l. OḨn'E[RsIY' ;S] +C֘ڿ`ΠjYP;3xZZIƮu${,`ק)rsX@XBX݃gTѭ, h$X{4,&kv*M-e@˜X k9-H R`@<)JJ%ƴҗ^ʖ\.|mK ;Z-D  sU?؄E#1T2),0b(~ȍq?J5yFa\ *F8Yp5sWSJ(MbiG\' ;pœf46mv0ṕ՞)ˤi\ Jv{0T6qhY/w"@֙G&IN\ܒ'n5VM!xo+d}u1Vfk7 PUkxp+4%BׄFp3Q [ L8Vx`jzBZCa~^18= w}0K缈Εkwmm_Dh*_pk~Ǹ߭? tmyzDԢ"exSvr_ɴ<8,tqy;Kp͌]b +5/ᗑK]'HE2_'2ySޛ ;i.4f|RYCɂ +f3 kbl0q}xk5a#DZkxz8U8>5!&}HuZ{}ai|S?&f* YlNG=lňw:? Sj@uB'ox[żqlVxЭ{ͩQ3 gm <a`#>[@"kdI1XWV׈#ژ"x[_][Ah +MOZW03/ υr_x;]bql{ϲIo]#Dtm T:cJT.lfx5/|WsL&)F|JOF|ϭے.=ޒ3`NRGDħ#ߎv7 kZ .ýS{Z{qfifu-ë&LheQg({է@2>d_3ǵH5q}v|*;ϴjdcZQm}1p縪,o<%񭕳fd%D 8guT7#U2O2 +Ѭ?y>Rcz\Uy5PLh:}᤮,ґ˥*2*;;BiW8ԩnGMtII1O+/L2'Ԩ)QH&,Uw֓?G'WYǿdqaCzʣ TMT硹m<1H0]6Dm(sszûIG'L}5.}-ouO"Uz!b1tPߣC|z(`z>]OsazvVC>u 4CdŇNP"v{J\Pb.W6=1%K B.?u舞eֈk5."EubL❔e8Ez +%G:N%uew!h>Dʓ\|,.!t$+xW%"뫫ѕ y`:,@;QtXu{ zO!+j4g i҅TbkȧxNpc:,~K%Bjf{t(G[vjc_g+SK&Ao$(0yzMFIuF ,QbG|?jQCZjo>G&} 95ۻT[+N4:ʯyF=|T1R$*<2ҸGH-'7#iP=c!#*~=Q{X012mP,`疘sNjrdWk 0HwD *<"ie4ד1Ƞ.1:)9c گ>Hs2IO\Ƭ`vWE7D#Je<|96%E74, P3;~]4/_y$r"`zz{J_2ZʕU(uHj>/-&PYZ&0$iyxe;lݽq(V#麶Yu)QqyDnS>Oo.]vpb,ctR aֹN GtÃ1W[!2, % SB%Lmqyc3zAIɹx-^63Ch{!9 L# 3/ 5[%kpfc=$~Q>U>0`qC0]ȇ1#5;zf "e^΃_-".aY3?NqkR9O97$PVwt'v1N>ϒ[{ݡ\2FH4Ztg)d +[4iSP}*c~ŋl{hdhi~f!9̄Yw6* ϻZDmSl-.0?3 +l4 +x:X)|3 f"ߡY9F*ǤwלݰCĠS 6Ե]R4/S2Mm3#64tP FC#]h5֢,l" s,VA.r)b|$YL䉛ql;3cuьUO0cl4~ ʵF#zs|B>I:,fN>ON7̜3D/ex}2P,X6ϱpOztxrsbM^ʤ5A RnN nW| 7\}gw>[qA}C$_C޴ ~/OrR`"f2}Y,+*aJuT_6nphYZaH'F+p3Z8k&dl(+sit9E71ftbHV  >`8耎pi*1@FC4v_FĆEXC,0EFOl+mNKl})KKfi߀gk_ŷW(zŶ+A_b-ױ6(fI`8=xa4˩bAT/<<{pRllzcQ?/RHU>>]5+ W%ڑoS-q,*q^8`&-{wvSoyf H,; /??/˔*?q'=< u\ܥ3-Gtp`-z<3mq<$64u~KYOܕ;J vHt[T{#pp|@{Pl*=iG (YG:ͷ[vPcBt;^ތJ-s#\*i >m^i 2."jjk;XjyW'X,֨tha|ʙ&?{TR)t 2g9Fu7I⧸ E[[_a}v@Qݥ40K&>!LyWmꭈ8~xo3Nw& |OVDyR;c@k0ޜsO ǏwƸ%YOV.ߥGl e}ZO~tT%8éx]_ۜίk+R +ֵMm1{:(sjWuUJ#Ў{{ qv@7mPq#MFPx1]sZt#Qm|“.Hu{3 PߛjM?kߦF/lsMjM"4 +`J Qh|斃Bkrk!Ng6qD4{~E|dd_/+OPЅ/W['/MP~}spA]KT3j|MB N/MgʞxОN?0+…S`DM|17 +js5Ϲ?9VPcw,W1,H[_Q78CE +~򿯮us`fO@:7yEn,:QMJbplNvl+Vp>&K}M\ǔxS!Ku\em)?I&n-6Y( ~k O'<*Y#щ$g~TFmj޲.=#Zv^#c`3ӂ^ (t b&󺵨#Zd gt݅YVpl)JYbk:1P\B1|fJF1'w˹БEN+tDAKݪG{/U9$D*粲Gov3|B8s7tclW oDOd$飃3M <};n4Wz[_d'sd&wN A͏Yl$u+7b.p \Ƽ: %d ]C*G7\-8 z78#U\G[/n=PHIsiǷE)IC =Sݔ}Ӊ2Lm9 +-g9o6򼦐˔7J +n؈dP1|[Nm9l}#Г.V 0і7CKw. UR^҇@#.̖)=7]㫒^!VV!EWlVQYk}sPW< B^ly;fQ &S;[f+$)k! .tR*-CʤG5x ^ bJ5ר PDFS$j 7@P IOZ)R![[b~Agp|iX0RЦkB]79xl!gfGtۂ,VS5'oM<7 5(_3yZg3?``P0TkWw}&N-@+JRAbm19"frNPHʷ:o6wC"#\DŽ_0Hܢ ~wmW%W5rS*ٖ*)!^ӉuPɨp.GA\deڬD}.K 먌0WfU! HdWDUzM%k\b)k]6 dhAR/ȶU^՗hݭ{3oRJ54ʒdIdQ*YyU輢Wז@Z/l?:/% ?D9apYA<%?7o]?܅'Cr[Xd<2葢:oT}XGt]GO-#WYsHWoҫupr8E:R\w6_[{|]?Οx'g{r ymQ#[*/n0)exC3;a3tD{G#FGF=IIw7+ ΣSf',:E{_AŻGy+J[GGm%^0`!AJG Ğ+]cj|/Md9pTZ--Spn+.Q<5Ƨ, +^] =q> ưJy#IF]H-U/xM +ѱ7KrGKCGKoN-熰wlJ %c<<='Q(ͽE%@^ +1dDt˽hTV/Omx&S%FA=XG'zd]$qbGz21ҰC|B&Dbnz@{R@p|bDIZaA,EO`{#M$k ѻ$z5KFNQ\tLod~aA[`WUu,O +s^XBz`G떳8܂[+Ws{bK.̘ )OlPW砮Z9wmK3i#y%?wb$3F: bմFҺ4eId9 lsGȉlѻBg?5+옛qgT1\kJ "{(}MĖ; _<<˵ 9l.b?y:`9%|r`q@A,E;UuKY!~U ޔuMԒE1vYzټ0O3k9s\f frM{s~\- !pN/X;u׻%,A#~ I9 +J#GK0/[dXl8KfV*EvU~=VTR& RU|],W9;@g_߷T*m/}]LJwc; ݸ@' +brQuww@Wtxtى #Z-Zgiylur[SN ìjG46!vd2 cZ!'iPà)T>Ew/]-%{zB,HUIN࿉mm0&Z=ߗ^ɋe* l#`ߞYCӀshVk_TbwjLE5Jv1 :}eA[v\74bt!rGqzNY;lscFc sdc -_s7DW4xd]W%'\3M=WpZsNI%=4-Xvb4 (9Y`!?K'dXkA'] -GA+cE5o`KlPaڳMn4i%2]B!Y[a⛎h1R1)ʼn4to؜DƜbsS #'Ĝ866t„'\TD9ŷlNp̩(lNOd62ͩ w3̩59EͩunM4:&ĜjG[Jo- ىVqd9ͩb58frL n sl?ꅭd)Qd#,/Ͽ7/>{ ҁqjjFhn> j<\kjBeZOk@IrG#pxL`q8"%5Y4aJ{̓ )Sҁoj4UcؙFϙI%ciy|fb\oitETQHL4T匪ŵG(UU-B``gr/Qd{ܪ{<[ն@E^y T۩ڣnQڣsugNb˸Zͨ,Tmx[VU{"NT5ɬj3U!U|:U 2{UEU-^X+(CjP|g%CzJP>&zfӀ pѷR*KlLe[fD/9,K3ot=c[MƾlRV=# zvH |ǹzA"<e*^')ky _>%7N);_s/;`Bis1J\ υhޘ؆U"lN`bStVa54J Y/ ,6!RDϬx]~x=z8Z_c ֢-xi\/x_(FEOңK>MbU|ԫr#*]7zLXj.0+L{ҭ͆zܵ7G99NzA}Msk99%MiP)Q9ǴSxUZ.=W|: ]EOHI +ofgM{ \+)1̙8hL\c`p.4H\qLC5ww^JB'ib$~/ĦeuOs9bk~o/xI:y4Gn|9rsߥ8CN\+Ym=ǛG;Ga* ⍰zsOYEcؤ@ =Mp>2ćS 0dϔvN㸬' +wu9WpZF;dDxʺO&hΉAޤ@oБQ;kY6y 5rt'sߜiͣMbx+qA  ZmK2$sg'^5 Mm}W4x,N+# J0 +YЉ rcCvT4̞ +K児:b;~f 1zڊCRe[GZGu>ޓ͉ 7Z=any+vM<4vbgؐ3;NqR]ݭcw]QM':Կ+8$G$4ʖ9rMF6edm+QF#s2Q+ss32W[odn㻈u\+82.OgJh!-( ?egO\}(a 3EGdy*҈|^sdg[Krp%_ ۸{u%Sv!4NZZ=FNu\ߺ| .JHAtђUQy\vv^-Hlύx#ǚPC]b|{ais8cP :fYbjETI>tƬwlvt,bq̭BPNtY.ۤ6C%y1w;+Q$6AonGc@sT~ &1pW^J3H_>]Y6Z2+] tI4:D@-vtżZ_]ΔՏY/zo0Woy``r䪉۳ytl^݇\i as|%X[)БX'6\6_ +&WLW8kPTL6ϾL6_5yӳA|-l>f ayΒq&ͥb!u:l.tp|9c6/u8IpHk1 9y\RU^pw^ w`Cr +X/˝qb63i°pAYϞevT5aNK?gǃS=rw\M/9E[s8=&ο6) IUp}vEw~apx;4c*sx'̷oA8'pF?p>ԼknߋGp)BKå 9|-ؼpvÏK1ݠ1: n݉珢1 9y9\RHu{xbza:AGeA@ `32%T\x[|Yiv:Gesqۗ14ows8bGf5U:_6 z'@p+ceqG6.CANKt2:GߜnJ7׵ҟt.K+F(uWwڱS`u՗BSwnnQoΨkpPU[7A"A^ :"tu!U٧)yZUgQˎYM_yf |WȾn{=T^ޫ()12,ۑXOo5OQIJ%^ D1bDhـP@pPe< >̜os18:C})ڽTK!jxOtg|g*:4H?>:jԫv d( +wG$)T޿VjTR3S8cu[]@'5._^^ST׾Z{@ /Z_?Uwū"Ǭ-4zKB=q]WC1"ԏ1  +2Nc3ZxG^Tb>u|EzN^aVRuOm,l եU5C\uwUڿg/x=ƽ3Yt/`si7!uZ\)kg&H_S_qȑ@3$$ XFC܎R#m3Sm8E?7H[Ŭ~N1g.E'^4Gө\$w죨w=x0}iticx +4UM; 4%RRQBiEʒ,E:tD9ýNFdtC4f;}[I=Gg(浘<+k72 t!+z +*f.0Yi,S<*eRVw#oe jK(5zz;fω-2l4~c/Y=[!TW/%mz5}{(0ͷ˳Sm]tOf30pMf32WU'ޜɬr +3ifu+dV4mI-ZR˨_KTZ{>ESYj<1ϲ& +.ȀLdːҞ"$Uc+ يN[{4E=U"u )TxD4c"VӤ4hLf]ߔz_'&ЋAٞZܧN$&QT;u&Th3|4w>GSkwpЎp rG<E;}$d/隄LW>hi]䞁Rs&wa5uV< Dw[Z",y8|_3SMu5S$2U&'0Y_$U&%mO)cΗ, I vpcڊeᾇe1`bzEd"~><6^ބ /g^A+ ^sǭ]rg\<Aqq\F2-^`U,|WxyB1vG/3=^ީ,coX-^3D/n$)xyJ/X<+^^MxyLÂ,y?//XZxy%/9xyt+q1چed啼=^^;+yK+1xy%og:4-^$܅δ@lђnA p"8UqæώW"xy/cxyr5^b\^ޢ1G ,-^?d<h ^A2\WLjYPlEc^'óR6jsvR0 w 2xy^ +WvԙyK {QWt Ϛ,xbX/cd<ԃk</O@0{^J5xy˃Kp:J5yd4 xy8Y?*ȁw,a!hN;f)`<\`×Ml;p8<@fÂXHQ$K^be^:%^^S\]剓1-^^՟Lo}d0//b2N٧= xȳ_c-ط/Xen0`'!o xyK ^e<_crvDoɅrYxy@ +>s +F@Qn(y +ǧC SxyrB~QA+SHErFVV i@9p#qw/o/!㦞71\g:Da/2f9r4yP /O7|( i +.NDAC= z#_vf "q1azk|4?r3hT<as{uI.8EAvk.O0\~ py9xyQ 4lfX HύieP`^F`4:]cԁc:n @/E>~2)Nfԁl D9uA5rsAdFk/~ApK;/^ +^2xyNƛF"b-#OTq`?1j Xψik@͠p +(Kh4>A>%:10am]/+2 |g%NOf 1q=N|n-{jdt̋NWk$xG3bb.SA6Ӓӈ taF́u]6NHΝ|{'\y<<ͱ*ߏn]J>DM1vv,v5'8tz|@yXL`3{;`^0yͯ;b@;O 1T;<u6X'l<3.;`wxoAP6Mdccc .J;(yt `/;0~CS'}6v&LϢQ4NA%'{>0ԐEi" ;O>uWyy@Y+c1|;o/9zLcH67IW\Z7QF˛3d~UƬDXw#ŐN6yAFEG՚ i&,mZ12˴Z'Y91edL'p2V٦ ++lN5̊ ǴpjâEAS4MbZw6v޹*zB":V;[V\v^cva@QKF"8wMNO;?jI`-쌝w!Ld(s;`I}6vx;XA)f/vGm\0<hFF +D%u3j^ ׮'n<np\>>V +j3Pft(.e97kA2P-mc6vK:.*t։Zj|SDvԉu$>v|GSfL/`z]K9%8y1|̱JZK22B mE~^|xl'JwfP~$d0_Bo bm=>ޕ#+8V`ak.C t>u'U>j}0wJ džJ4X\PngOtg|1Q'n8 c{wNO; :(apu`2`9a@8m8^as: 4g겤H:93J~q>iLٽ8GY<؟;λoe6Th H +Q;;U+Ud%Spp{E3VD_62f-Ru {UdțԤ>W}ΪZP$^t=7=WFgdƁ$!*k"RYpQߏH;͢Eɐ9%zDja+'Jwd0i,q B͠' ʒ'_socaٻJ,,{Wrlwm=wJx" soȘP 0,L|-TV1Gsљx3x"9#ss+9{{~6= [i{n=ˍԬ9{O =qo<9:{ Tx 8<5 +j;@5k`&%/;O>j$>Y{0sdQqH/*PM>T:tlY-BYʊrҦl=p)VIzt x=*4juAo֏;z-jT11p샣W^J3@U>Yk6Z2+ 9#Cs0MΆj'N T$weo w<2Yt^a"{0&ig[NݞDzN͜5UF^cG\;-pS9r.b}p8g@8syr9\`p Oḍ28|/|]cs8P3oG;c6rs6tlۘp. IBKå )oo6 ?.8A 9z-pI$ 8|iD>=0"X:R -@ۓY%%yo ^3N6)~pT5}S9'x~9Rpx?O7\^lC\ }(UDڽ#%=R(/ o2|3u^x>h{ghc 9q'C[u /曻 9oԫ=υ-ϤޭibGs%):GۭI99h{+O2J6^3x{?ԥog0.i!#ǀkeCEq\{ *!4sԅwt̥6g}ksN"^bP<=GMA Dv GxR{D+6 u +6u4MK?st,T=;nd=%WO/ӂ00RQ~ {^!aυE:e/OAz\b= N俊x#t[ tj}f0_}%09SB7m+ `6*V`=ف񇾌tBo;z]_+l|=L3fiT[qlcl.:f!UU}IsOvaυTa ٢wPƞ+w'\<*8{zSPH; X{)V\Ğf';ؤ oO48#/]-LLLVߍ)-Ӓv&=S|ߔ_z{!I:#GN5uSpAzSvnh7(sy#x{Nv}<o/3&?6~ڠ9x{} ' n,#&:@s&D'H{Y>F˚q#Mu/grr&7Ny'7N9{\|G _./gB)H|Yo[p~v,>`$b6-k6ە;}fƗfוi,ٌ?Ba,lF /2yϾ/x|&5%}4y3gogŁt$31&߷&I瞰L>3݄doV\L>8oL +ӡ + k’q$EQG2˙Rݮ7_ϝ$aZlO晍6||4C&db:%nLS_%-}+ulL:BC:OSyPj*Eʠg=xd\ynX޿TS0~զ+kli.qn!usĤ1VӻP8EUjh93[״zI6{UduջGWI=EWo6/YGnm[rdɓyxsx9Oov;\ys2;̜rfr9yfe3sc? Zއuug>>tTU{ZxB-爅C*Wu_,j,EOcޏ/%:RW[E1sZEbX0I>]55J[PuhK%2 q뒆;_РqS0t{y+bw1F/Vx|saZ,VeRf޷4.|r)e~'Cxszro S@f|ͷufmrU`2)ZC:* #Cv^{76~0k9j+3oTfo LSx2b)֗(2[~G5 鸤u;=_EOrtwD[m^}xg;Qφs/!>&H'$a ?Ϡh~N`"BE*WSIwsAc* a|ȟ;4تa>eoƾ06~-_%c]AZx<>,/0ca^I_;z.jpANQ.C' 3a}+3 +Z|k_ˠ?%T-z9_E:ϼ7eNbey٫{˻s^{ۚ0/ߡ˻r^}ۗgg.򎜗wYY:(/Gw'GSݭEvPuL y?i$QfXp&Ghu4ĂQfIM@7! ̚ndV?`q_}?7|@t #4F=_?3գ^5K=]Ih-:$xZu[U6=Rj&8r47:B²Qz*\HjWo-P9DΤܮ*$Xs֕{;x;2OWuxsJWӡmPvnI*eevG9W9X`v|g ~WEW`ƇKD +3_S`b 9\ɨ=LqTw# +i^ 8`sC:PpUZ8MpKJ( +yF.H|(WX|M1N|` ^Ϙq@_Ux8d(y>|Q ~ ||p>`yWTh NcuhԜ׈\1ٷT<ɧ@;?-6 !QiCp̗ ByrD] ШupW/:pSSȂ*1xn>;6eI`B x»=-:}-Feyx `ָoy e?JxJ ,j`+_4kZr5jz6[`3a |^S΄)0g:ˌ%$&p.t.{nTk.!a"ȸqDu%*!upz՝ڂy'1|S2U^Wב_w_W)24Tcu_]276A'c+3ˁga 0ۂb &L hQcsuf#eۚߖόĬh3놻NcM Ag4DAFiT ~# #ǠVUՍ ӇF%>{_x7&@?J[<e%S(<c|{LN?a?P89cfZ*`0^;dvz#q#1EriOKd$cMq{Rd9ӞRɹ\ wq6Y"r2} + m 7 Se`?䧐tKI9dZ3F:Yxq@Gk "ma})ߛ|IP xEG  2q>A{1P5A+n=5Ktef5¹  +; dN4Wf3F' +T@ lssb<<WF`"CW[L 6a@CpR^x-A08a8hP t 01ZHB!t(nko>)=~w [˚rAlpg*KBp +MF+cRHz&+!PsbUu)'Ja:H)g|D^.=|g0D `fWQ&~&@^N"%X[W!Y|U}R-"IX_g4h + ̄IU7N7;R᧙D@ :u<wKP!/oD3UֵO*(T :U zQ1?fQh h^&fvyS%JܢkāvH,%i=Ad_3JŀMЃ0`N +@1Xޡ-{ +piIFp=g,1gԊy-0\;'Q̳\bHLK% |4Dj{ngPDޜSpLsE Aئt-d$/v)Px6Cs6*:$t)$RZH͒Xk%Ha(G:%w# "ถo|$2įLL._%DЍNNVQ%2iIG N+O"D+7Rjٙ*Dmh7r܋87g0hMWpʰo!JLxzj +jËKla=VN q^w$b 2NJc)}pq$ |~2 ;[>aDCUM^%M+Tתg,:H2 yLPFP.]D~:A$<YV etgIqϘX&XZ3*M'޴_ +]ilGȚIoJeN Z̏ףG1^_}D"1QNlKZs&Gba_#l@sZ$mVp%JUDWkiS " x\g`] kS9)0GÂD wXkOf0c^p +X2$uoGUYl-4 w +QAW$ +M +w"%%*дe0BVq #pwſʒ61#z+bL mJLo,@ +4y ~A,A+^bF+8am}q-K!Mx_4(h,E/Mh2%Sw<и!U\8J٨; +L< #Y$M$9?gH]m2E0BDA}fF^0MDakSBbXa ĞA,-ú|x`3"z;=% F$󄻊'KwpnWaRi\%دupœoMB $ƌ8~|?o/ u \!+މol{ ߋ+ i'%6Xi@gGrA +($b;kد8ϗ/HxS&:~MCs NƋC%,|@ wr} h­$8;1h2 (a'X( N``S*噎$Q;A[J#rԎw8%?ia ;1`fcv^i^< cvԅ{ Ȣ9vU#!v6x'""Q:z]Q z3 @rÐ͘ +ɍ.XRr["I^V;|5ZkN:euŶ -1F0ƋDBd6^, b2&x(V ^)NflX`8kBY( +0 k8hN-BP];A/VªpnłV& ʽ1 dس.O=an^}I1]xQ}R̕>*Y *\RDƈ@dp'l-̂.L }wh@rX1gW* ~xw6QMp*䗰N{SA-mМLբ֏0`[= +OH?%[r}kR@kAAi("v̩\)B("{QkAyQq(NkQ"$>މ n8K ,_$f96x@컜(w؄ݏu:S7'VN807, 1߀Q +\#c^cq/ z2k7aFoQ%4Մ ݿ|/|oV5ky,DͲxQ(84GO̷NRA"|{iBҞ1pl7̀$VNy#I JW:󍟳-GCG7Gu²,4鎘o+A*i*PC}TM=KbI"\o ƌfIp9وqK*&Pzm}&"[B̷=Cl!H1u%-PB\I7'n'X+\ 1xH`xcᤖH` oox7oP Nf +?x<6 TT xVc(xk0ހF[^8[\*e“ ¹a DTsOs='a=߹"v#˿?o?V=9b=:1x䘍 }b;F#¾O 8=Ds?_rF܌ gMF87Qc~ =#w{ƏE>7flθp.X [|Ӎ{ODX8CI'oƈJK&nh?UpUsySوS9l+{L u6qxgdX*墍h=ޕU,ZNupeĖ+ٺ5Y-*V|nj8iܱ8JeY1c%JeĚy3vḇG6x[W{r E`35_X_3wZ+zl*gLōN4܁Z< :Ksac29?+&\!vLyΞ-!X S`)x1E~!(4?qB,Lg~ӷن-BBW2t. MCOz eDz;w" A,J5Maz,8 ^__]3m<;ǎSBmCsQ)|ך~)!]0(>:=-aXJ&3$@(vX}Ƌg+t_A\m/!ƹQJ7@![@'} +*&wHH AcPaz I@`r>X.>1o\c'എa=)0%PNE ꨔz±􁿒a'~ÔDMF (Bvul }alU%x/Q8X& qʘqT+ĀE% y)>7R֛ҕ<A[QqZ:{dwcؘѵ]uRd,GlWJ0aPSf_|ؗAnwI7.6o 89> Aa4t׸dUwH?|8B kE ͐*)ÚufIM+W%ځ+ѲB %..KGKr| 1Tt5\ϱt!/4 ZHpWoŜ:JNze"4ZZ-&!H[FL]/;Cjx@$9բ&M4Y/@&M0ȳވq'€4d(17%Kr 8{Ƨ4g GUFbbUQN)Ne\ ۆmNGv:&M\}3pNdwDssEvGCf6-ڇ6OWyqv]e ؁G5θ]fp!p,qsF 823r㸸ʈ f+qW~b'y*R$:TW㎫E!f\M606 aN!4W3q$uGvZx_)oYb&UCipфд'U&yfRL#NTHT'0폌ؓ2q`˂y<(9b[j+8"`D xy\܆ǯ<>Qrx|/!GM*6e, 9<^.qǘY"$ d9'o1K*wYxBcXYCұbCW^J3@4v %:<<>hΎ?|"q#jo9Akk,kQgx5 sq1p9|)`"y-w ōcx !>9s8n7;Ac(^]5mqvlzG1Լ kyn߈muΔ):9\ZIZvŅNKsPӘA_4d9'o1K*wY8i4\zxbzxt1i%/š x&#K>r7}[qdٙlBe8h|#wOeR`L {%s{%sYtO&'n,y#eE.3Eo:?iG9r._\#岿 /J <tV.;Օ֋3lSg浦 + nc֏\pt$ ey_0F"YW/* `cb. w?"`ڐ![^үh隭>J+ӵ ~C#|بO@EfkQI-Jz!"T ƒyȅ.F<%ZyR(P4<\QnAy7-e鬣V $^y,UM +;-Yhz j 9AISc:.yuޅc?2N6gu4IOƍB< +& +] +y#¼oy{n$(s$ܚdJ~/VSð1̴5b $CV򯤿i>tg +x@] 4ͯ'Z*?>e + ŷbh焌_P䞼iPٌ @0(iq/NmGsM]k)#Z us. "5.!bC<+}R"HL.U~mql|Dq$( dtIB}8gqrA3(Yyg:>SOTU_26Hˇ֪!Gp`HiOxZOAkN!xR[$hYеͫ-ƺºr,lغaH +w=HWS d#>@F+*o(B'O/D6 `_+O_骗ix9 +!3.L@,j_]AºH!tŇbLeŐ$fG*RjT1L8@+,+#$PZE bE}*!Eo 7V8_>B=QqkԎP_`t,G[U 8;nSZ~&А3A kUJ\h8%.R!d% +V0O:'32,044m%C٫ $:&E<8%$z7H7:j)0f +d +׌ʽ@T87\Kqfv1QN +Wd."Zl.IVgթe Ȭ8M[zPo]"DIq&cT'p7Jףmata^a_̋9vK^"WΣR2tD)xkw(;KƌAgVc/}1_\\B:0U4vc[A_Qu-3ZUI:0 +h8=<H#ۿ`39>:hΡt!єt#7oG%{1Fmoţ?}ߨ3 ȤU$ni;{΄k}#Λf9DcL10 eUhPl& 66ĦհgE60A $Dn?6_|z|ʄO_R`'A3-LI4UE|RUBߗ5&:l2Fc:Z.=[HupliOdoOoOϽR/V"sf8:I!UvQܬ>e]Q~De@ӏ8I +]'&pb<a)K( gћj%brҜ(>y֒qnGLu!VTWT=u$uT4?[s3r1IxZU_q8cDv8"ݡI_*pRV~$Mu!ȏPFӘB1bIWsլ:oIxTxF<nQqI`JNJbiJ?iDd+.j IPuqQ{UWD%&K1`uqk1;12 `y + YjuMQdͥ'FQ|~,nѳis jJA΍` Gv/F5 aɈSpFd9"ջ(>[Qwsc"azԶ|"b>dFHlG͸s%iQ3l$‘K6ח]`<ϩMQ LG㌙z6p]Daj~/C<,""(TМ~pr`I5]@Ȳםo+;֛d1͟B_$B (Ú uhr=uB&r }a׵4ز2c33 '1n$[ [f/4LGOv9};sgEm#3Iڨ!yMo? c|ѮnsEr8= OӼDL??W8܉8?i_K5#]3@*'w:u)$ۦy3S^4C6bҿ3n3u$™ ޙ!䆞0PJ7'LȅKyړGGQ+Ne eЊxkfj3s7{6͙)JJK$&$-N32`,ĴCYև&r^Xa%c1,g2g1K2zIrjq&݇bMDB|MbI0Cuޝg-rj;~3,D>+\ǃ<+W *v_Md 4)԰24 Zأ­1=v ]=b~y)WY[KV't78Ol^Rxn"X?nB BGŢr(_-ќl۹\Tz 8S)7g?-g|:<VY+Xg$<34ψ:`*9uh{8!^e3NBHu{%# j?48p$'\daqo}̵_HnS, 9Y֗ءVCNEWBͤv+d/:ˮRf C=p9)ȑrӗm'#uKc^]VġLy2'?EX7prĪ|UTkL8x(+.R\! +1}t = GLZ x?1IqV;nb,_7Yzte%]^?W~^U"yOR[~Aq~R,~Pq`lwʒ##j<gy:*Q(wp]/ x}y* '>(!o̬y}̰Lj2#cB%gaJ,]FMj6d@M;Xppk 2yc/L5>*~}njxD2VkbfSrܞĬPTUKm%oWě27l/+{ƥ_/l=>~bj{c_l?laoV7 Ӹu.R,3! +@^n!͈nDOz5PݲX ܪRT)`4!<;ay"{MՑN+qn~5Igh#MKؽ)]?[|-t [yB~>]~H##vYAl=wd/1ɸbٙitCy[Z~-`}{\,KjNW9NWrpsusI7sL|Gs|"v8fZeU )q otМ_ݠWEvK(2Q,:z[Eά[_S{=5W՛Dܺ ,M`?PcXփүH]і65*\i!DGhu֫#=ԤSx2,`w znx=]q'C7"ʗ&19JDĪY <̓U4jJ6 MoctC~Jtr?Ztʠl:wf)DRQ#mHGn3 g +Ɋe9kAe=[gxwI&6uѪBYǫz2`T +V$d7kߜW$ +xv|Ӻ UKJk͎1<;g4>]jre!?vf&Q~A][Et rl~o7gЅki3K{&ŕMSaP8m +SSQ0M^*Q79vm9PݪzK#C{Kb #B{˓ Mj&ZäXw+ +a'^]t7cOI/Oy"g kq jS4ݯ"cu=:[xĘmO |'ɲblOm*;BKtߋ*CWdC8l@aޞA6y㇞ h)؝"uVƔ=dL=d,c ƚ$JʭȵF55̓knUՔV5}bB72\kfJ*XSRrR.k'ngM9JUƚt)-ǚj|b˱xm]TĐF6H#YTS [yd"lC>jW}6sL(>lhO`<xiKӗO)W1f5}? /ԕhfMOXSd_)uz +4`󩺾MgAt!]4تp*xm3֤-?eDLSsƔ"hI/E_J(u%M291#oTuӫ:_ӊA& ` ctx7l&{LvL26]^z6އo=2fӶPS&?0X6Q|YOmOog?a?jxtGQU2$q֢n]D'S|)U<2<љwϤmCFr2ZxlHᲗ$}M^VIm/IW. X#PwSJ Ds[ɺge)dn2*k +4=E:rH(Uko Cȇ3N0F-_b%5F 6m 9Gxޟ:b8!]?fs'rUxѤSix[GY*4{YWСl!N\W$Uuc +QֶbI p!9ϚnOnKo +=QC^qሷX}նǷx߆NB0ӲĻ”2+L?P1 ՘2&]O0sGoL**ǿ 32$Zq$/SR tY,9j2,Rs9+VFrO8tT^Gr[9e°W ꠮H +wPOTeLa9 ?0/x1Rﻆ0q%FKLU|߽BkYcǃ^*.i}7 iʬ\]iDŽ_Ks6's ܤI9_XdgajnF͝KBَ痄[|]ǒg yk;dzR^bޭhrߪUNڤ>m!={p챎vXboH>d֢l] 3LUE6N +ߊF$,fb)2f +QLF ^ϲWNY{rޑ+2egŷiJ$#Ȟ`7>%_2]ɲnYf*~팷)gb\?3慺[% ݢad$2m2 Sd55sZU9ӪӾߎBR&uiuSǡ|󱅝kHpn2s)'}Ĭ-Zkm;;4oB?yq!U/q\n䅶~SW$N*XaV!#~>J! ;4 Qƿ.&ɋ; >?W%,ˋʠJUr4l?gL+Wr>|z^?p#@:Nw|zl -u~{Tt}6"iq?ؙۗE.I-_~ˌxL~;VbD,14kfM4C'b]vt,-6T\,*ifpc[֕fҵIr{9{%4 r[󻱥Ef=zQ~fhV +0r +)CB!?c$NګhPP:0m[L"^u7zWlMeoWH^+eZh >6@ogE[kay~ԯ*bh>Z9)>~([;3Ldc)|eǖ`]=+kus{ڜ:%&uG2[-Mts{@|c;%9)_meۯl؞I_3ʎ޶[/Od(r뷱<ّimjؐз׽RQH_vjˌb޵Xû-Z-LdЉNL?$a5l XnÃ%Kr !G~:eKz+gy' ?oğȟOE'O:6soOp΂f];kK|oeg|nzgb(,S,]=0vUzefI L@|N&l߫*Rr.}_lM՚7Ɵߗ#a`Mf" XdqѥЅBBC7ïO8 +k4e;wmMz ՔZ~'@t2d/ (v1427ŰHt  i1)7DIeYV>!'0 +,j; |1G9\jUFG̳Ws4n{x⎩f`pf]_!,~g;̿c`~ߑ1ӚBYG7S +SӾ6t+']ϧzdM9kdOSsFۧ:eM1yvF}N0꥘`v'U ^ǨgǨf`aikGmFȽ=9h@9Wel[c#w[l:-וtd9_9e}B9+$wGoIyPvֶ~@GXl0[M֘U-:Ka?M^6e5΁^כdSmz1糥SӛO_"I9,?59l1N\Pq87lߙ;\uu-̮o%*M̔2kޓgmHuM}^NNYv@{A\Bicgc|orl½$g焫eb~Rsp$b1S9qKrd~9\sInm|D}mE[YwmzGܦw$aw90m 8q9c) )~΋κKZun;;F鴖 +sJzE~RS\:*VHX>h—;B0T!쿅Ɋ^zK7gС-gYe4]ISvnѕ*41U٧֑K:K{:T +,Qw]VzM]ҥzzYڭ/:2xW=:G-!.p)%Wccw]9udnWC(^]yRWw2 Or+6ܩC,vlJҋIbSfe+Bt2*/ w=8htӏTZlwʺz/@_ ԓM>:Y^gxzyTW/PCtE1zw?)~QV=skɣ}S Gmqc[qUP&෫OA3|R$Cֻ_[X #b0Pg*gnՎm9Gcꂇ6 v{Za\;v@4B>Q-d+LѫQTxo׉@=Ri>{np۴Cc6jt( ߈RYKbgz9(aUK2x XwOpyFz˩֪GOS'U]Υ˙Cbz~}>kHE.GXE"`)r!;Qqb¾-!#jib'zz<NJ&fyKy̿F3Y) d._TVTOgum>9OsTj68͘ S.`Lzx迄ѽɞ~ԫRHH?ZԏФϖ^cY9B՝FUr75y + t2̚m^f;*+=a7;Y{=z3PdCpm,syf8OW#_9=E9St(iz{1ձ,sIV~7J ͔=]bYeh援Ü Uw+-yG]#kcxN˳H 'Pc@&rJZ#^=kϓ ۇx_AK :B.{xyyf ¶OϖE^3%Pp/~Y;8Rm _.O7yp@_]yhhHS'h2 MefCuG90[:&|F⯓E*wf$,r?QHrQPK|ϕOɱѨ$aXt,r~h%\Y|IRɣd9L'\kAs+$y̧,a?,Do[օ)_ UN ir78ث#K$?%jY$h[e+iyIfDnz{Ƀd+EkNB^emChl.G_#7Zl&W nY/e0OPrHE"VrCt Ziӑ>ϩIUKgߤlWV:°|Seq{yv{ԧe+ \LTYV\Zf"Q"aP-Ƌ<>L{WJյ\)H/d3#S׷F^Mk#B*"?vKWGB*{I.Ughc6v8D"|Czy-LJlyjѫHHcx&c;#+Y*.YFl%d%WH_?dc-f +Ŝ/{uT +":!NPjmֆk yN%CfŠ9X5Ia*I-%|َ iSH+Q yiR)TYK)Ntk#=>ys/u֟qn ٘ 1EoA pzT`gjĔC왣_2.ɶpRZy(vB N8N *)SdHMhz?3HZ34Loq,$= =׭d ]WD ,4uljv<"zkDVQIįL\blI!$cWS#{T)#GWarYXvHnRb""F_8?m;_ +[@nS[1(Ó_Uc]z ꅑlđ}!clx{|j M|t~ƔWX4-a>[6d[-uFg{#{36?$@4%zJbC_eѾ$T- Ԃ_֐ oT;R;9qfϖ)OzxQd3Vߡ/yՊ&GSؙ.y/ N͍ `qlg )[Bwƹxt@Oӗh%i,/{$}}1ՀN?QaR9rSouԭ wkYp Uh9+,lvCEj4"%Z&C=)Kvg G_Ra:,c +gN?Jӹzivw;>!/O[֐x[ޑoswh|9m٧g+\(2WH٧`OM$9[쟇Gaaa.^8&*D3oܳuJϛiXpw:ƅ}?]_lpj0xMhSX̉g?ke2vІk̤.+Vċoλ(h@Ai(b;ZJƼSo̘;lL̷|jz6gi؂ZӇl@ {NW4udzk + +~~9klcn 3gpaG&^-oϊ 43߬b%wEZͿ~Fo=! Q.c ;aq"2ރG|Tiy"{ +an[Kp"؂>}!F[z_ Ddsq%: t$nsxHZ C )R;Ƞ=׵[D:HsaҌw DK$3,X?BS"OS35"]Nӑy )fX!")=bsZǍQI:K"/b X.x=8 TM]X ^S4 )M`8A _b z(ZzU+e G+yrFŲ9{ȭɠǸFwirz0 <]Q$A8jV'9H(Ы +@[/۰&TnA)NV +MTկXG@@C<Nz#ʐ$DUțl"d4E# AV͠</a, ӎap +H?Rs5T؇ol'c?*?f*-Ds`m_[mqg.0,s*}l&m WЃe c䑋tIztgd "(A +̐?'1mAd qm Y؂o7[8n~I!Db@|M^&XDUuQ%/͡D\u{p{8S$ M<}Ċ 9$ƒ=< I&`U6Hz)٘:0܋P*]95Ay6uN{D'Cm;H޶ZP(6dH3zA*Ոf8!'6I`-^& g._K+19?u- ^ tD'<ll4YK#Liq0g9$[2j +;w:p< *t~Y(v- ==̪<ks,ozgɊ]gzAb~'?'sҟ >Cpi[B[k8不tIer!z@'r q WzB <߿4O|Ό?W**gt6Ds)&s\fOX%K~GĶT;e.-S]7p&}=g{@{Ku\١(=L 3i0S'Hȉ!|dr7RlR½yfnJ=rjs+қioUqѭ!Z/:g/ft.8gâc1UjY56ˇ`._f}⢲tcocOT>)WǙV[t1yi1_!3w+#_V}eC4}}"G4Ⱦ,WH| 阖þgq0ũ ǾھpI]?1p:ۿ,eLO;q5DfBC дxͺ<1`hƭ͛}%5UbYRulR?}zcR59EL4T2a;nU5w%c>cJ]&n82HDҐQDb]b+U{Kk[l'FuepJ`Z) @YE jvrܡ靧lBŹ 3]aToJ?]omnR+> =G@An$ G)1y60Q&nnZuRiiq_q Ź@gYs*n֬mEr@>/ƃzᥥ_ѻgg/ɷ9uZ>" +~/"7X-ilc. ?L"WR +*Q*K,d"T6CoPӑf$FG$h58Hqh;I"yvH%S.b1:G~q`׸FLŅ:ɠ;0[w׈7h8p29)Ó, S@HP 97хo0;3T>rXXt(7TJ12諔%ppѾ .gdp)i ?s$^} $ :V1(- <˺"":xpE& 9Lp]sGGz9=_$#;pḬO67)OԺ8Jh$N T:T,vH%^&J\*T^(yp[n?Hq2;CO^ِ$XTRu+ڸOmvv$wynl;͇UOHZJZjjyFz\muǫM;|trY]nKQLbW46eIf`lM%I<"O /7T^y5gÊ;XaꙢ%{4XrаZnEaX9O2z$tlJĐo(#jBVov J|:zcROSq?~i^4ŏ A#35' Zpi}V y u:f=S {r9Tb3YO"I!&`/4!m ` +EZc:fq%yn.L}zAR9N8Q}#DLHzWEV[Ud1avV,戬RdJZG+8B1_h1ڬ_,׻;N3 +m >Id1ӇɀOXۡAFG]unXМBrUԻ4SXIj<9bh+ T#2dz +2r4꾄gz\%ШpF(|RdKlѡOQ=k+qc汄Cs[gCӄs +.2 yH< ,ܜ6& x3O5Oi#l辇s`|=`acO2HCbdFA l* Nu&=xim愋' m^ *B6 +m7yq k mV$4"$E&j؉qݔđjh1xF+䆵i +Ғ7%1vXvYG c 5ZZĖc$!ߙ{J8nyս3sgΜ9~gf#hBmayn!'LT'h3Dh3r_m΀6_:ybpy"47lSf)5ZTpYy߷ lCm[Q8S@lyN+Π^<=[~>X ?ʎzTUԋU NuEO*۱sm\;Ȼu3vmkۨ6ٹ7yxڶ;w\^g$bB7宨.h8@LÁwF hаߡa6 )Ұih ~ eӰ2) }oO~Y>]d-%o>q92¡[ߣ.}ih/UڻFlcX/6w^ 46rr:%~'flkV%-QZ@+wMu+w/Kwoi@q.q0Gݾq PKT:bON~] +gu|sB NEX#{eBr^^|/^ֽ& ګK/M:9Rp/09CĉXgʪ`owM7VNWu>e;GlDtk6g. Q2O f39uU}3O"//.l |hZ!§| ^V72޼z +/BͼPoXIb/b(s:4${9 +W'ϱœEM+Ų߹I68UOQoUhD+ +jn";֝Pi ɟ,>]kNQeI_?! + K2_x5x)lOXـ=r#1Ӿy9 Oϔ~ff?e6|(H7r_-lny_Onmx})t̄3%=g3b~7bgepdA .OĻ>a{f^V7񉼌n,ȓ['fY}>|67Ȇ'٩bh@veV_`v]4nٌVJ }S(X'_3'''O1ŋ΄y(=7GP8U,XDegDo. +_b#Îҏe{C/ wMO+>9/~pP_"|C ߑOKe /=tŮI7'LIis^nyl/}2%MlN6x94ߜ|jyɧn\u#H9\^6˜ץk8;$^o6 Ww +KuzhfEOA^n>ӣv8AkuaW  }tq8iA'o9Y<$$̔tY`PqHK>`'osʢ e<>7,4i:4YICY9id&vPiGS~ezG3ÿm_2F[)} dl~z"/e q5f"`9K^䐗ci89T OEK+ȓqx|pQ\498PdG"Z=)R"ϥd,G&sܽG>83>Xo[os.O"xǓ!3"^|N 9* sṫ:spdQ~8hz"u^_!1h.mC/a/sEd|sbyZW{5D7yA~}ߠ"'.ux9#3nO{T>CR3w$!u+ݳf` > {Ċ'o8-*T]Ү^%۰ޮ̄Q/6 _N!]{< 7 [~ +OhjmI?GݤF-WL_~sfGMI.A7s(_*^;qh:vg9X +JYUz4|_VGT_;L>oy[փ>DN{+b][A8.TX,Sc[wUǫhWƎ5*ظ̧SΦ + +۳TZKUZ\~ZETåŸ*(>SDsS稦t-_Y򺕯[XEH6w]e.%ޜ i^xJj1*6`c ucrd.1um:6Eg^zj/n[x6&YQ<9kU|]-SsZtǥ|jGt˅"S[C<ȋQf>95#|ӢC4IvUv7[hD@3GYᖝye_'07O5|QuEEB㜩*wʢTr`O6zCoDi1:_yzSGM9XS# Bu㖎׮-t#^uWq6>6̥lkZ9ϱ33?/]"F5w\ۜƟZw[7h [IV\zmqYVoe,GZ_.l +<x^6U陾qVqںŰ TEzà8V{;^Om"UŸj\ڠ*![[R'.&TĮ'PKꇜ6t@5"\/Ν0w @Yd{120}"~4:ꋨw P)OQΫ 9:Ǹe,XUBүZWUBKhx[(q&GIv'g<;}c|GfVT ]<Ďz X:x-Tе ^;TMyU?|'L=zćgk}%|%SvMoMSq7;~C Cem8B ةe&x4S3ΨqNNYYgMҪk|Ax'4BmfD]eC(u7ڟLoU +'g-OɴEi iVK +Rm9>Qa:׀qgvrٰN܏4A ||σ|Ȑ.!SWՑnT!gyQḧ=yUX'_Ѩ^;t>Q'_< i׫MgZ!EDVӒ T޴d?:?lV?־T4A̍K匛ZFtކ[1~i*X6]QV6/<M=-H[V2gC zB}Čogf L9YK#] )Y +ߣ2, ^9QxxW,fcFN8ei-ܾL\9S1XWpS뚤u,~iڿe^u/ <90gRrݓ7!oEwD)en7N5KGyWi_ņYܪ>s!_gR\&W԰B4$ N^}O, yHI{c`!qn.mq{rayZu\^8.㴍oj3es3LdyH6.5ʆ +@Q`hIRj]P"bd_8?KѠy5W K+VghȗѠ;<t A _iPheL@ɉdF(xou|? Ay6+YjsB8`Xh-qf k%) |!}]E 7>M +x[8k4y7.VO>iWHVLFE}kO,KJS%fa(,a`FTמhI1n=N[Qu:ڂ>RHPv;g1ftCZY\LɉQ8?lI{Ѥ +)^ׯFj{<@ff`K]sA {yI S ibH!.^9Րk:)/ 4/Wr@)'ݠTl/5>b>[]W'NCm1vw1N m2BCȳn_ɉByׯ:EqM G+%5`GW>phpsPp5QPUnZh\zpۏcҾ]wlט6[]`ӟѢDl$ ",!kSD`*&戮ib{7 kinLE8jP+xMpt붣␻BvHxG7:60Ќyrd,Am~o{L <[0=دlsCm2\VcRv/MVB_G54tB9fI{Q ō_\k 6ma'ë!QD $~H."4b•M]?/Sֹ]7ۢЯB%)ܽ(-TQ@@@ˌz +.Z3crX7J&7+ixjp|eF?j DJZ&]HcOy9D`Rf{q&→v@vQz+0[EEfڮʜi; sic*$8ē@Aa|qUr^x"t+ɞ2n&`nkuKκm Yi ywNB/B>iKLiP-p0M +PkGd<]8J)èt왰2ZL1vYS2oԏ[B2^,P3 D1+d>M]x$E7'B#57 }z{>\x*+Gy +N:kLɷGiJCb!"`ad%߇+>br[FZE.`lR؇ЧɃuM[tDv Ӄfĕ'[%8Ls]$wqJiEn~aioݖ+fڤ/R7a}o]_~C=Y9gݹH^ `jo N`|~ER6 8(eKY +#H"+V6'gVpw$ SFW(vgQ'a@5w3 #FćGcExJNYd%,N|iy`gr0s3ED9b# +sB @JLmH tߠ?LV~*2 2 49e\m cK%{;*1a@r&.BU{F`4]a ֏B[y7H/ΨNzǚ&o2daH +35|d3<<'"ARFBChv]s͔1jmS %^0sjB>;ݘCT[I'g?4IVfu 4M'3~rN[>? ;7XfY:z_^(QcV芹|a[|2?&VP]c0z啼}L`$sA+Vex6̋k ' ST}HS1}a{ + +[-X<6wY2k  :ϚJ,VHrըN^~ ؋ /q >q/aә0'a}V?|ċ܍ +3 x^?%PT1@3Zfo@WI. V7H/n x)ϗ%v_l~l0x3ďl(HjL RF6/x^9$׉|%oБ҈mq̋R wz@"*IwC09sa[`![*ыH9G(f`@B-3OXݫn`B^Y_>e}RW-Lla;}W)?aX53%M`m Dx Y/z{.UHtز_~2M{1fi3q.PmzeU>L̬O9zGU$ʯjK ɝ>xTnkaOsJx]99QUhՅSt<$$=drnW%E&ۂ՜t.^V}*䭥φj)׎CȰETkrg'E+w2oT#titܥ+GX4$~R8u#Y+PZK}G;f9fT^bpDH+ + /lxcXr@[ql4T=@;UpߑI]ZK+bc,BGuu+on-mV +4]nB|'OyWT囼yGQUBSW^$Tam <_ɵzIeIY6j>0 uޟ˧2/ {i%?3HUϋmup׿|S?Jώkϳ/2 , }9.j ĪRF:FY5+EkLUѓuGʃe|:78/j6ȃ/V[s[jqKOUֿv}l{},ڐ)ǿvl<1d7,ޮޥ+l/ln}RL];]K% |pr>Sl2t>zC?Zd(<ȚS[74e.&X/(mQLCU;]Tw^A f$s&{Y+߰?]&W&xܟ9D? +Aޟݮ ?s +lh35ά,әzogy.ش_369|wٟSLFO^w@A#mSę}׀4>CZx!cVpLoQs$ׅЂIq˩ſ-Æw($|;|I9T (0C A+GCsdD*:1q.!^S +qzDW >m?G;R +I +IB.݂Ӿvti:^O)׫eڶ\a_w yvAI9t@9 S`k `1"ffDHb_)do9M>K/\pA\-ֆTk^3(#|-l 5x#;A1%^pZG7 Ť 0K]m:-<AZKw兏~J*B$#ndڔ5} /Mֱm㼃;rpY\bb\hW:8\nk5~3ی<ԊT|< \o$K +̞-Gh%xwDܴV=uq2@2G{C)EK>gܸB]"*z-c޸\/rxx#>:KvL +W㒁^> +^jS`n]VpUzͽ:k8u+eB6ӣ,nOnlh۫s C + +g> jtl)â|1 A.4]R|̙?.n5ZĤu<*(\\|ν +x^56;Ԩ.6$!¿Y1~X"MǙ0f.4!_!Ec lAV28FpTAQntKGQ9RIQh`M8XG4Rש"8} 7\pZF"Z Zڤ9ןQdw\RJ!VH)6m3|,m33!e~֯mZH܍ BA/H%1{~>YB~XH6mA6ߑoC +wڞC9CdȚzWp6D;NRۜB"QJM᯲t&͞#g\vB#t"RsCP;- +bY=\M˰sBJ6WzL}R&A lSTQd9ոCkAfyƪl|?c9Fq7*jyJZw$'Ϩl)nGclV8Wj)m@?H0r[u$굖Tcs17T z˜Wms,Y\d_S7`W +.NȂcDqdsyP6cT/z! tRSё1wXB:2 %:D 5OzB |YiwW>AΉAkpDp o2O@ +l k|P2FaqFσ>: ΙpcWrZu +g`w1jjE sT:Em9G$ F. Ev{LT5):|2?&r$:Ofp.ws"0;7 +Ulഠr)'ϒ!6ߒBa;55qrcb(3A4⢒'^cb1X=a2:{I qqKAJǤM;HnP'i>ykPp]I jt B 2񸎳aPw!= RpOSu1"QiU]sAt, +sA}B?&ÆYWy,S?>P_=>psЍi&R}@.A7eh{P/Ҍ/KCd9T^^CZ;t\nBv5 +zghAc覡ݦv@ț $?@%_$T inWJ0oXa9k X߉a uHYx+xUS R2>$bVxעGV +P +H)"@`' &}i|7G1$ GU<{و"V5b>/qſd.O(Dq.mfج|60Fpvo$em+3&;QR@O!{]e\!{dBo809]w?b?MTE\L7W8 +I +D)A48Rt(ae*154η2d0+X:xsU:>wUюѼq.Dqog.:.C=.N?GG!)P>˪FS(ù0ad 0h:AǥRJ״X{7uH|"% #I5,~~.[="z0/AVKZ4Ƃ{ +.4?wU>̇,l|ѽώAcX>ӑ8*.A˺G,ӫصb(c1n|uZWG7'_&7F!taPr18!w`*=$s.U.T}2tG ?_q#T$"Cǿfhhޘ|ۙip@{ 8} ( A/˪zv\A^f)pFq_eD7QF"B3ݤ _T"6.;c?&jM00x !ZtOTvΨ-'0'ATrP5ڦlO`H< ~ !->^H#. rI%k#ט4uTNx۸"08G F+MaQ7,v5٘\-F+$; o}3)h\L-LNް^|W0tzZEvD.Gt)8*ԼOQ9q}R|{ Nw]^l:G)r mL%t3A)N3?.:Ẉ:)`/T)9.H>Ҩ4p4_eX?lG-09ge9{!?y2]M$/{@w"~r&Ij0c*R0C2L4! 6N|,#ta$ȔcU?WDwӇ]\`6w &<; +bcI2c'\RNĉ -nT$<-1g_|qĈ2`Eq ?Mq_/arS0:,|ߦ#\}6K*'!emR^ a㝣pU0OJuT*/fsֻOh{s}}F޺礏 ^_=# >ogWw"_wOw8~a"ʨx>mpv֕8Y@'lsOTM3M\|!o\VaPpx*8({4AW1`F֫7ry‰1(0ͮ|2/|c<uܜox.ӑ8*cZЫr: 6rC2! ߄,N|s [n`pb&pOp C: mG; Л9 $7"SEodVL4M0|{||C=JGWqgH߸o6+\Vu' |8n pD +.{;m׀7Wx[\2!mɄ-Eo&22x[4ႷECL' ٙm1N@MmZ07<ƕ1x+#B[h;[k 0`( ^+XQ#99^7$2K:q7Wşz@rz7f{Uꦊ:-Zd`yvԉ{tQ,`WSv(bԳ>Źpgh$B-hInA!vy'ȿ\:w`l!^g5Q&q~>eϦI^h:ïpeM<óhTY#*GɌFt=<8==ek\w@ ^ + @ +uQ~AA+Qm/o^>BX0 Cw`@U+WIKN(jCY;בB>V{a".9Au+ ȹ>-(F_+4<ܘ.z$7A]?$$5U?Ca eO9Bo()OI^\D!cF{%'gIcgKi QZ֬ j:0;t6'm`FB`!t<^@̄fIiaYA<9AuAڸ"GpFOp چQz\7Am٩) W;pfm-&<9B&c +&cemp6v^78dcNtc;2$8~138n$4\78np%Op.6Tr0 O~98NgghwK35͗x3[AEe vbNN$ h;;.c+)ۅ+s>Zy%7: +U(_EDm 8d*c\jNڥN:.uNtqR>hK.?v2z."FR7 +R::ፎ!#Q ]jRsKŊ挥]ʲK#pcu_z_Ui9ߑQ!9Bxΐ':ޔvDGD#7 ͟ԇcH/ ;qo~\;PmDddحЅdq#&L*WAsB8x=GXJY8frMq1j(-|=1e/Cǖ۾u&-n +dܠ=`IHиi@-R[%~[ +1܉1u'x+[Sؒ]>| +ѫHK8.*xJ"bBqc` 0Zlouljr\.5$>_oz( +)ٹW3\ Zm/翎"pY֠Habb2Bd<ON2/l,r 㸍LAdMGG0jobtG\FG]E)ȸP MoXES"§[]/Dc,C qp'6/s˸rE+#槿vNR˸E ƤN< JF8 rdDtqt^5-M洌3O 8[}tȷi|glkN \SRqu$|׸H8u$|7%wa#nLuƊ]ĺpӸHx9Jx˸HqwKxMV-Fq7^&u3Kq#5hy "ዼ<.^!]s>KP M,] b׊ ]⎱ow8%܉1u}A rNb THxK.=<=c"Ӹ/ϽfK ˇxLA%ر⻼^Xp̴=keN}F_ry&ĝeTp[ +]Nގ:c՘5WS$p{~ 3}/_C\dE{7nb]]>bʢWsn/3sUu]qUY}<'7''~=VuHE^4?'̷<_erv~\ü+i(W__lӆ2/aOާ6]ޘkvI(z:: +FysQMy1ntdkhtR5|/S9:rP +] ?b|T0djt[!Ja +J>wq< / )/.wH@Rӛ"[@LƷQKcJ_> @R[|59‘>13s _4{sS4޷C6'vhjïVc.Yc~X7<6MY6<VY=,ZOEW].QY`)>ˣ落7ś,y*poF!츆-Guv$aOC;! sBFӽX\o1#ӂat$ uί] n7\GSn :9ޥ=V(* +brmno"7.WKPPدm;4ou#wi9\=5ZK16y(Ecl7h>>H/;OBlFvHy4)Ȭx. }΍!7HPC Ȥ1q|̓~k6Kc0^Xʯ^BP E;*%ufC7,Og"?>^d 1_@cų"?h}L擹KY|q'@ƠuT.Zʠadz n@ hbtT)J!J@Lt8@5 +* Xvc]QKu{z"Vy?d99HtfC-dCuuFـk*+HtL :_տ4X]dr-}C{u)_;p|~^{}\JXfn%1>KJ +Do(GsqR8yo)L6 CM@䘫74kM͘{t4-?u݌cN>._Ҿ/x-iRG'dR)Ÿ1Fp=YV9f 5L0A0PÊ|S@& +* ^O/Y%on_lfeƧǗ8"6aƊ.6nY3h)*䤮RB/n,=Bu2N:R֎\]4u2('~(D:'n|}*+~s?(~ʛ?uZVCssqYN +ۋOSuɫ=|eRFrOO$teE>a#⒞E^=H?Ɂv6` Iה8|gg)J>i1kۛpg/9:Cg( +̦$!Cy7w'z/g-]sdydytKzT{-\ˍ+9h<*$w%3Rݶat%P0_B +g3ҽDi4ssA#a.dy7+6)?V&!Y%z@o33V\4@n{JCksR`w1MU:]B&2Rc|pO&",anTH,Y֡fE< +{{>o2Om"L<."oyF<f@%lHwdxPڵ|-1)w6E}KQUG.i*T$ w&%^U>2gg +eŒ]h鹔X Y-40 C'nAf~nf2̪oRxm),NF$#E7S՟埍Nmg x " e9OG`v'#<@m(u ]u>#REYQڽŜxRZ<9]&'n Hf"k-lU,2'hʂ\wr92{gɲBܞ]FߘGɲb b_(29<0Itr.@vx1[l3"ZP.xt[gT VzI0%D!d=(`뼜V2dRMB,~)1ýY6M.pV6q0e3<& +]΢C.w`.)DզwMFh"U׌l^nGug965@K6&n0^ J|.Aܹ%SA\n%"y"+sG ַ +aE%Ino1=="ْ׉ +ߝkLsZg2|xbWu& RjmF37"!!=אND `~jUC8 +Dj~˼Py'ɆvOi<&8X! kGk>#Sn o;Vj8|H(^8Ͽ,"D pkJs1wyQԧ2X.` ]Y?YC"3S_AS#Rn9VMHpXLKd~XԀ(s':Fv#Ny}"e/P.wmL]Db٩ +_~2.xRq +R,1"H8d:F"i(?E~=n5ۓgC&rgw~g^?׭8mH>?F~bԂut /2XqbnsQ=JJJ`9#80y)=L7bҡфtq o]M7xVKxzT@N RhG'ZcPd5u9ˑTWaPQkrq"Tbqo)ZO6$X$2#=M*Fi%{=EQw=Qᴨ$~x"J`}H4܈Cl_[-4J" +I[dBO!L)]*'9aȯ#<=]DNȜ,$EKqs]n'!A^~Xof~cwXrayNqlPĺK6v* =7b8`31YwqDZ݊Wl}^«!3j zplWf8v#p6_ڥfv~{|_/fu;(ROq(G]ݱFVh_Hi^q1{!M@4^^;ߝ9 +uTk.Odg% +;YSi-{!-بTyW! x%Yz$tPHK'%' uSʊ捾2Y)ŐX^&KX$V ,J``!:=ڑvxİ=}N`HpD1VPU+ytpn+?_ͻHTuekIۺ;Uixǹ-qz5^ӥ:KztI_ +_gxl6:Su0z3p@ET@gP@7e>/^t8٢vms3V3F9-YtLENx7wR +T:y@3L; =Wyh{z_DcTUR 籩@jnNO +!QA(##zٔ 1 H O(&#>|ݑκRJo`ǎirK=[Wd4WAN]=v\ח?ӷsR瑘I͵S0m&rU^}9[t4ޭ+3egʌʞ)㡨k+rXCQEϔ7,O5|$>>J[w<8I$>|N";M2oN/ftiR`q[|oɉTOtǷʃÛ<  BpomI|tW *| +LCx(,C;s JLZVlIZ}\ )h7!h4AҗL`뙑/gd$IwDH`a+7<5wvGWU44-htp|>1 &AơͿP/[DfVy{ذ +E/>x);'=I. oAƶLMH*d#s?"V5'$d?oDZ>H@d"@d,Gd2lgs<=.6洼RzKDu#!oHn9"ګk;`t3u- Z7[x/OZǘ>/RGH [oZ0g߿pϚɷTD15%wEr24yŁ47X|S|_gF6 4fh`L6g~NGo22Mi"xs4%;f7M|xLƓSof|K97ݿՙfZ |˩_e{!;<`~ 2/3˂{Q:vP.P׳QקuQ~,Ux +D554PW'ӡmr?>83-te~wi6<h8RFj(UzM䰮#xºK8M5,M[ץZg,,^b4hn7ve,ʉavj-̭$R e%0eX`̓t9[R#'!0)_`Wx{Y>ڧwL%H9uA\ٵƻKq_#77@ZQcH͍ +q<(i17sϘNe]r@;2dN=8="d⿗!Ix*^h~pCM.:Kh7ݚ@;]5+V>c4/SX DI<La6&=0;-N2Zj -dE BVM e{ǁ&z0i$Go#)_J+zt"tf׉<ȞqyݭpYD\ϊ<$xv:d͛Q^d⋟,/$/< +\:(2aO3vw)L֯NuxUGt RC-y[:eron:=ꗞi ~稟yt]5TFoep%17Y3-bҿGr=臎:꾐:ql3&+@bn M0x TG% \ +uM<˂k-bX031ǛGEZtJ?M*`l]ْ5kR`r:ԪY k*wRquh~AB6m<~ @]k;GOy-ZML&a=:LD=:a^[IWF`6̺6:Iܳ˟ted _&H3?RgBDKv#%ϥ>KC4/36&<4NINJ.b^Ϯeu`Fq6|⹛]&:mС}-dKMùkz5 1>+'0=K»>uȃKPe1"C]]@Bde1#xh^T!F)3A{ JNdcKk>1(:7L:U[Gd+qջV(6-Ϧ+oոuT㺺 3T?UGog2d=5wuErMv>'vYs *wIGc[;d +?WL)KuUWfߣgsfг}[=kGZ+[գP:-9/Cfe3ۣrCorfܭU+ܭ*$I<Ⱥ>VLaş]WIwJ߳?&NMڤʚön+CM2t9i5'1J䙲3e":M3N7r2 r3oX.kHsyar${o7352xGo- 'Yt58| 嵐{iS47`;iqq|+d,zִR9H>H5dzϜgyƝ3&MƎK*M{SvܖB6&`ӝt(H&~%\gN$x$*!؁O n(\eW>yٜ];Sچ̀/޲(BĊ)1a8Y{yv.1:,^7U]+TtΣ_jJbz8 ͠K/C6|শ&Sjܙ=|\ +z^Ds Y5EZS~]M^j.n4,;ːzؓV+c'2ӟ/\BާċmI:G̭0V3^M8mkwYشcexrwVcZEXۊa"*q[ȉ +Ѩc$\7b"妡 Ӄ,p̚˶g&Q=?U⏼i񇳐\C66s;?xNm{%+B"?SQ8^r#k}f=~2W=drR7yr61.y #0 #p1Sp׏fXk/f@okzaìCᗼat1l֗y*ؔuc_Ÿ(L}LB4USvU7u/};tºozI\17;^Lk2Yg,;]u~:P#_ȪCwv*\!/ ~GՎ +'d}P~cmж.nR }/ա'fqbš#ЫzKKکw`!Sjg +\״F_e5LLmdW%f|z 窇G1j:2zr&02[N3li5+ST|؅M\XZYxܣ }(d); сNG ѣ辬4„YLЀ6#鉹%鉛ITtoE =1ˀ&6zZF>[vX}mR١D9=/kmf~XN0xxGV/rC׹.ԽG1-G]컉wqJOzM~]6X_ O7`{sfgsy^F^e"s^Y`x^+;2Ͽ7м m3fNazoBfzF졐吕EzYzMg̈́ҿ$(}jiHm̞$YOzL9oIc9>1O#% 4Ѵ勦/ߐE3]/~ vNd  +,!*ݕ(~Q6<Ɇ<7 Ӌ뿙LVgTP/ ^'G 16gz:̏xa~$ r80vs3 +̗#R OLNM|~웪=Oꭂ/PWCz\B#l2X KM1_([µq_G|"=klCgJs6si-e|7#y7 .6 OQs@L9žHtS~ǩSz{hO>Lrt>>O颱j^I{C_C˨H"gւQJ*[pS9`/rEMq`ʹy 6p.xdr?N2 O_꼜ӓ_,ԦIr7!dBW~ܚF Dڠ[ VЯBWjYp&$pDynxu?_Y;+Ij}t gq+D'zC,U}(:*nG~]UN|WîUb۬ Y5YhHk}žNߨUrB:׶u}}{~7yv^{6C_;urJmz2՗NKIKjjc3/0 o("Lbf%z*cI;s֒@ _}G\&v>bxJg0ၧ?=Go607t4ud'rrF?5plXTeRyN ɼDxc6Sޑ43pxtR8531jnMz#!P{lMO 8J4t-]fԬ@gQڹZW>m/'xLm]-_Ե; nN٪I׶H8hW[[ueS2ؖ  mߘm&L&Q Ru 8@0_.܉*|T1L9zS-6.%{x 9 %VR],ؗWRMyt&z>z2C2<ό2':ud*Klx8cmyTxmߗAw%׉g*zK*^S4/Q)ʹ4e\Ky%^R+G>Gڇd!Ttag\LmSY"xJG0xqltǎ>=p"O7X}3/ +' |3Ŝ䧧j !BNRǒ)⡣o̬u]eHU "JΤ,>(&C "uDjxLji5LXf/[A\w.qhݖZ Z3)6WOΡum3k-u4nfxo~ )_%o׬UsJ*e&tb7Hil{e>λoԽiҀוk[M^O 9ʥNckw3߰ky^u~ӺjI(g܆"'ŁUjUD!lc:;n)DlDb@ bF Cl f ` aQcҪG7Pu0P{U;e %J_Di0\(=kKRl)A:M>9pqȜ?N0##Y伷LZZ0XY ԃ%F"G,N|B9걟ݲ_2qd `KH7OTe}rI]^jI&IⳀD 1pev\4=?0p:N@ׯY'=|_bD|i~YNjL+g} + i3ey:}^#>)XƈMWa$G!wL(;\͢^.啎-ˋXa:$ٹP:ve ر4VD޷ZK򭈕0cj#Q8ϴ逢KyqQ==~ +<KʫZbBYycجbs쉒WˠF9Zxʽnv M[w9rʃ2Ma4)iQ)/L_l3׬ Y^3sݭ0nFwg<$β`tXu֋pj9>Iҏ3f`p`/dN~*wBczT,0Ais[c'Z9 ɕ&:1J33hos\Q4OT2ՠ;k E%/ٜt\?Axt 6E-K[$ +@=v?M8rأ`x iLg*? + @ aţҲiĥy&}eXmDND+^ aU'p҈]$ţiJ׶pg8 +}yԣU#|,rNhJ:%lfpv3b@c -7*=$D%]蝇؀]̤F718p~Y+-4Cπ\PN&}ۮUY%x6DW~8'=.4e@ xW(kxL Ab?A(%9}(*/Hqd>P.n3:eĆ?;cK|isșVΌ; L9 /=84A35hdˢ f=;)8\Sb|Ц&kz%q@~5RU5V)IJԱǝIJz):n$.!wAy^ܯD_D {>PVN70{ B +,\`HrF|HS^]: l4ctA,*T{p0XT8C; ׫Ǿ!w5*U\q U3et8.o䓻z5,@BmT,YX +U|_,%jA U-uQžv\{M;UͱTR9wHVMxQ%ʃSy1?` +y,۳C*eS=|F, {?|VEɴG%.!{6E#Rc4}Y_)O{ׯ<ˏ~jͶlɳ&)?ɑkGZFڑvFa|VHk#x +M舽Xl't6~8/3ߞ<<;ykY˳#.1 +-d@#Jq N7ڄ9 4&0ϞφwlxogY0y6},_~6z0MFγ}Fbe2?lg?ur+0 jvl}(o}tEs㨡 014,h~EyGy`!.h=6@ @ 5h0 "p8E=l (BnFoI27lg{~ٚas=w9џwҟH`L|A5?)ԩ?okYk9}7j՟+'JîQN#1ՕHݦܗjf >]>Ӫ?Wq{]̨%PUQ"UhʲuŇ:C7<ж;[?sNYvnϲ'ӟ[Sλ ?vYs{^>b=If8R(V"ܟ5Gq@bYWSDnDǵ +[fCݭ,k m]}hFv}L?ˏ7g&G0?ez?k/ҟGٝsWنb?Qe g92!-s̥9/rX-jYĒK y՜ߓPԚsBB-'3_ܮ庖MOuU&#)PsiSix:˒ E~{Y SI?9tUWyUu܇ +SQox_5%[x孢3nlwO):v;\MtpEVyBZt-:NDgyGż'0gb|shu֣203D̘Ul"fAĤlGDLPov#x՜v*M&a @dg;?f=y5VzR[=s*#3QD9_ޭجg꟤3g&t{=33YϤvޡzfvzf`Lzzfvzfrk=2S-.zst=s lJge&PXE!3kk MwI=3A ДUr)5ȯ~c>{5ƫtXT! [8z,,9{#ZۭgLZ{=cIjE1F"s'LK53.fC$8H5+ZM`-űϴ2:1V (߇ui)J-Qp*-%K*K6A(w[/C*=uLQ:TpXά#HP\FlD?rw3ҧYg&:gzgŗ}*7Kn ϖg]DoyEoNSwЛvtFw#w͌aY,z7EX +*Qqn g!hǶYOB.΢|Nƚ} z͵]z3 gDq2>-,˃e*ܧ`dYEk֖q8FVrh]b4 ,clNS8Wۢ5YEGr9Ef-Tb֚SQj͛Mgɻ*Qk^ẂdګY2F|݈l?g3yvgM'қ;Ϧ?כӿZI# ljy4allNfXl̦lt,T#?K9YIpBGu~v&Шς{ga n~lZ"?3ᘟfj6fڔM0򳹾ԝ`#?jg`{שs-:G;%GkIfQ: ־ӳ# U@rTE{6c=Ї#R/ #QS %G9ėLjXv}GE,37.ѱ\,wx!aخ'غتfUAo=QzWw)$a+vF҄:_9=Pzixk܇<;a+wTAblR y@l#m5}%4u[1nyvFL'+ؖ؄OP=lȊ{Se +ܜfz`}zG/Hnkws~(TK5߻cOAE=vސr oXV*]Dtvb<5<+_EYs`/9Te%dHMdUkNA2+"MExOQ~GY(^Q.܎͉/?)?W!;ft?{εSLD{#;32V8|&MbᐸBUa=UD.״b#VH~}1gX\U5\˕DW(2/#zpܿUQ8Rx3Gkp+ի\k&s^9+ܻH%0]XIZɯ!۱g|#||6c+ex3ydG]h h hGXR*R'[Ŀ:wA" )'4ڲcV|X#xqlIJylQ߈m4ai"g(ugCfY9thKY)qxT 3tPTY)H ײ#Nz.*l{Ȃ ;(0~?{ڿ~HX-<\,<< |<*"&@Bk>k1ãˣZG<1+]Ӟfl=DM +?e{ןOsFlYPß=6U]" +S~=[ hdE&aYZIn;i P󨮯*BRk\7yy$yNe8 tp4V'8<]PyQ͐pGs>Œϋѧ^7mXի=ƕCx_dy/SO &_W76x__pT+T}oai3B+QdtS-ħw;3}Þ*9}#OuT^VPeӺR[q ̷S`c_ &$~={|`A{7WgVw/W2B Kgmcd;Jzk/}+lxy;4aDN-fQryNFԓNЎRj +XIѰ0hp )ZΒ]1a ee@&IŨ6lJD+2IQ [lc4~޻{GiɒuE{}^+607vyK.]]By j.`P 8 rR) ƭX d#Ɓ4v8o񿸎E`xyMyg|Lr5ӻzi8ܑr$E$$oxM} 7~ -M *[~C~uz mFx%di^A_O5@+osȐ]-Ym-ۅCJͤ=}pģy1z/Ĭ*HrصMy1 ZX~i(=n{4(. _ZIO>$Vg@rH ^n,=u8߽ӾT +G2hă┱aC3:U03[2_iGod{f֯ATm_nO_25zcћ̮L9+>l#1?o+j`gFpw\O}kfƷ>S9-/T!OЏ~>~*cC %8!*5\lzLUa #V`@DO7I[oflcl@: (,64lEeƆyqײ1vͰs}] mЊ7֙6KgJ6mjMj#{X?fvh)3-\~\ C#j!6L)ԔkNU mKUlܫ,dlU+͑kkwb{'ᆳ_| m'p:zPLn.HdDP!9S/vaܕN6Ş#ZWȂ6+5a҄ѥ_wOC{>b;LhKuqAbMAs{duj73% <62L)LJP +KG'j*Q@+zEˮQ+(-nl7@ګ8d"C +v_/[f]ͻ.7^q͈ 5#gnd]gy@ɺlu $wL=̆V$c;~F$Ee-I-~'q*a܌Cc\zlRMo:Be8,~V,>0#!Gn@FKm1т[EтF9L$mG +醖~oBb'ȕDqbF +х#R*S )ϛ 3$U*===Q\0)@B-T_1+>*>OU1D@tnz+z26HmPc\BAF + 흱~oB2`s kyLAcw=1Jw,RJ4Zat\D\,c\|\D[Yrľ%IuN^/BՋ] ?gry o0S6'/Dv+,YQ\Х;7г!v {G!E, KG>č*N_܉>0NH_XyXp ,!# q_FXv +0yI.2.$X1DTý$ ʼ߰%ø$ą%.aJnǐƈ\%DZ\>=R$.W.OY\\Df1xI^)#Yfᔃ%`LANP'%ٸl^uY/,'ul|.wGLy 2CFgzӝxV-Z,Pnh1ܠ-Xr{ ܪ:K=N}___CG+˩%A*$ĕm`" Mg +eq]"3f,2Z pE}\1H1adiVJYOHe$YV(Fw3 Y8LSPF,)_߅j$~i$y5<`)$).';$ 9iiod +7ﳊ[1=}vITog*I[R,1܉&)d!"!$9:1r{o[4OLjWphA//z>lO!-@-D/H + ~4)ם)9īN"]fm]v&w wr _P`aqMQ_;-d9`CJRkK"D:SࠝU$Z*=,⒄/J*,!?ǩpL + WR᠕ +*=[eg*dO4eQFW%'ElF "}:){FqtdrmFF@#sC2^i(n9PQ젧?r{gTb6!g +*>YDO;ϐgE>mXD Y9Ey 59LO*y١ⳡ7|u3:b`#xԉRȆG| Άs7 EҤcɩ=g$8N 9gxS܄LTpN8\8,ɼS;ōq{Jc})nJ1XC.R./SDwٸEbMu:)W+d:e缨CBzk>3tӀA?RՈTNU}MU+A'^kx}^Oq;mV)BVS5=+ݑ]&8Ko+ϫƯI-fkX.TyHlCssmPGp$݈dmxg7F Z㇫seT +˗wX-,*V04h#7ܫ s:ǣ7i}x.azr +#֘fm (AŁN ͥV\Ued_kW@V軕0[T +/#P.q1\ fP GWyyxs3;[)2SApi9VѭQQ5tZЊ0,۷dκIqfW5߭XO'^%tGI?zj;g#ea_·iE8*US.lmbLɦUTj_2'cynSy6{ղL|f]|<ǻ:"1ٓ=I5$xrmByQuWc_Ӊٵu7z@wx$t%UQ,*I$#$+wóӮJ~†%'Ưa~8u/ NY:ԓ1u򄲉IvhY6E̒3N2i2Ae\e ,5?Ϋ>/WNSUEZ8ezJ x~ES)bAs"TRלPg{$,f6c/GA'mS$,^vV~lŃ!Ay1^ [Ww~'iUrw |wY*|{|=<4jFm%}mjKwRFK;zr4'L QVY;+%*5qN[S_Dݩdmd{:! )׏ir aJ80q Z(qy[͓^'<ɓ'<} u (x]/$R{Sa>&LhiWdn0#4ʑiDb "CiV݃GP<+2kj]<q@'zYMfy,|@P߁|4@3XaUBpJ +YQ=if>,-xy2Uڄ ++HPEX1h+<*3FEQ>W7 c.|W#pT}1O&ǰ효i$ 1#;?dϒ/O:[#L>6*ktJ3F,TYqYҧ_LncbБkɐ#)[JdHhBݕd3~ +-xxdPO[lܪH6n*ƭdc#cEKƋt*! ԴRr%׫Diī0DH^5Fq`:!U4#no_^vj%8_8Lcj 3`^ܘ0i/hHH,HW彫0\Ǿ { 2)h$4C5lDŻƽkG-$CXsÐ3 ) Z14wNUf]98]]}wsԥ%Ǽ ;C¢(nOG$dhB$0R(-xT"7Q9UJ=Y ND{bEv iLֽ7,Ct(ȩUsOr,PR]y,d|?u)rt.OʊSnANr:Ҽg ǡ [!鄜.<ɵ鰡JU%+J"$퓊0PSz +tu,hr.p㍚WtH4|{+ Uw] >T׌N|pCBW׊:y‡2/>TzAKW>h'P(*rx"N|ۉ%o >XL (Ar8dADľQpLJ)>x0Y8+D0k{MC 9aƇya‡\а8-^CŨTt<*l}tX$;VXmgc(/A!trL hi8.PH8NJAh̼ B/BN} ϑ϶!AN CHƋ ťɕ{Hvni>1/pz wO\'+]|‰vOds&aǾLbyDc4d] C b= joZbԻ # 4]}qĹqR^LjXP#kQ5 j 0>`H==A:[pboyd.C2j{~z;M9ܢ R(tET!T0i߼yNN)::L)܆_Xfu{ ~_V*W*!ui^5׀*KIFyT\e\O%]j6̏E#t{bocFnTMΞgÒ8d|D!ׄK̦ZKI;#ﶧvg$"x٦ +YƧ"X0r,Ur !E"Xoo#QBNV~Q:"Z>^*1x<£, +>iQCcѴw-3 ,AIS[kԙن1%ƽqXPΕ٨ B*X34%w`0[K@^WW醦В$aݼ$.ן+Te!/ y;O/>aCD}v k wp$ ;4s8-ލsPw*h7nL {gCULYo-w#i敃`EM2MRVO Wtqɳv_BkKCSnWǗ?' .4]i`0Rۏ)Z!L"ʤi?=\d:"rHPkM}lPT h2$ ަ!l,V.:* fcXdWũxHAN5Tc9Ư1^%^|H} 0PLBM±RĐBȕ JOĩ88;j7 +* Ez(醢)E/M1Q uP,+BS@p yI^Y{ʔ <ң]rrx*R%@cXxo4!;7xH;x>&)}@~ɵ?,knwgX<8TY&]uo]Ō[A-;yK;㷠ojnA` V` V`x_W/;_O=ٷ::FۥAw6#W ˒2馣n[~0Fj|g0c\c,4u؄~\[w@uԳ(Xsy7{&AJb1b1NtL?/>&"S<6he8mwi@Q5wZ<&$@j2X듽`mx`S`pLFvGᳺ>kP,pA3^e7F^| kHgp@9ɾ7SrŔ˱$+7EX6N`[7`?CZhOyA7FZhBZl[QE~ ~z%~el?p-`l:\~?~?)~nVZ +񃎼Z'ǣ6Jnr@.g/`y4sԃfN^G`}),@)D"Ɣ ^ \L"&֡8sWg +o~e+ o hd-KV؛E`-"ٓI\R݀@cW)dIiba-,ƍK +~ΕrTv/X<Mw~O~_c~O_|{ރu۳5 ֬7zi2fkvZq%xZfz=_RSنs=|ˉev+ yVSM&9zz#,f/8Ɯ!:Jv"sgc|-zHYMX='vR겇;dЋd^kNQnψ'Z U$uZv5SPkSZu[x[j2OͳUp<Ϛ!5`M|RIΡz+HJfَ#ay&""v|>jwCZ3Jon/Pq43oPxSpa uzx2TTm +7Uп!7QL/gXgXA%rd1+dg3joՠcFm {Dn^gB4kb^dzCμ.}mC/9lQ#.cndq"R$d!{}jBvF@RVv X#تw(6d/_}8ɏ:+ZdoX&E Xw,'eF'\vPW]O,Ǚ.D#X!d 5/߯g9 *k o,-,̷iFwi>\|^KKA!ۚKN -w92G~;H0!N2/s0ʼd~Erȼ+ynMYpyHbMw*W,ȼm7h2/6J^<[NLv}Bs,[YGnCd +ך +]iwiITM9#$i}*zIg#4F.@9E=#AOc73-3 8뗌}tCWf0z tbMz#wGcRcxqDƑ`Drs@S HO鑆- w`^gcU:˳T.X>4EX@GÖ2ESHP'qR̪DP|kѬrvNT"b^X?{j&[YI`. w+DN,89z{;"dJz+R``+vg&l'Gf<@HPu J04D0Ve^n}din7ߊ/,U.w{8d .~`f>nT=u߳^jVYXr9~wj~RM4R~Naj~ߕ4oFߗH.~]~cU +*0hN;*+HjN~>d#7ۯ9Zf#v:aߗ;^SY +y}ykHJ)߾L~?g"KWw^mf^Y&+W/ ض5wBE"%Y4_/@~.xH%6a +/Gv9[)33vKf`@ _98ŷ轗g]_BV\r1 Cv$H^2t萾`uzLڹZ\^/@wR>H޲ b*rzbg/@GT~t|B !*+SfC6;pثOؐrnsd_[vD-ޘTZx0EٞeGKu^G}\ס-ڮMD2]0- X5oe.qh1{P۝8LD6-b"*= +'TZV*`>ے,*bBh& &CSv$P<]RTڒ.meU^嶵knYщvѥMD:15b&b.Um" uYyU~\t8&PtnNl IC'#{.¶I ?Ҩq;$wn-sY7.ck V|INUw*_W).Zx>D0,\/)KW׌ca>`~nYʐ^.>a765 {*lsH-oeȿ9/WY$!Td"/ _wo.+4hg|#]^_d!m?r+l:`N7[S9Hu8(xk9*彨ejͻjq;N,k/.Yʝ+ӎT'۝5igQg}aT*I]]Dt]$Տ$'2(n M3J@;r| b[g4"Hj̦V 'yiS@'8ͭ$dB&hLr2 Xcxf6N"IZz ٸ{yFxY]+G枔<+bxnIP$TA + cx}a9aݗLɐGz?rdjBle@B2[ÐrPC6|TnNX7#"h#TM-A 7'jX yr/r'`GlUH.P &Q]\j4vMAz28PIm c,t*LpSX185ZJv{O +p yfTWE)X^% mA` +D)x%-B=l1ڸH{ŸȋuFP#N + +TDͮ|1dYtG6Ƹx1eGSlbV_NX%cJ2N"#ORnU#sʞ +G9և;f+~W8(>`썅BTeuliSn_MXn (5Qy<;sPe&Z\4ɆrҨJV *JJdM`UUR%x/dFUhfd5`UVu$RJbhfm*%81=3R:1fim}VK(s$.ݠ/SUrX,Gsg!c,1? C!iRQy.h*[%-Ug<^_wZ̛O[~?ZMO!Ogބ⩋*[Z9ie~Ӷşְw'nڶ>,T3 0Rl :ϦDD.+duwب,9ig Fctu2i6/8,R%:P7N4I9 wx`cOI5=p$`tmN| Խy)Y2ISWl0R)n89 4OTb@uxZ"uq.3j>o/NK&O}*s*nf9So( $]JN2M?;DRQN +FqŅ7ŀJ@Q +}Q7Ox\Bygy6oKѹx /W cTǦ"fDXSbx?RcX{~r=D!$ytI R)O*$s<$5W׏I.=zXR%]GT`/JJp3iҘ+3 k%]ֲn![ېph(:QkMeDAh2K7Uwg_v߭uftGe=WsU]6[ezU`m+F[]گA-NhMtqߩuZoեL]٭ vR;{6h62 ɬsi11G,\X*2@Z:1Κ{Lk.ȴ;~#9 Ը:B`8ڪ^7W:&pkdmLv +1&}[ 런cYAϟ~0*skΞB)Nμ@i91y2]%{;vv"YC?8ollh̸䳖GZv~jQjSnizG_lyV/[4Q[ +\ymX۵ct̼glUUoyܻ2[*/O g0jKb$Ǩn OʲبZnpU7K"q%b#E(#Bm5[F 0(`墛ڭK03Q 1;IM:q<0;]#B߈ևĈnuѭ0ظytG2ŢaDZ+P6aDUC]-#*k\UQw<*6FtӈگqQiˈ:9ˈj=]m]5uLhB db2cSz1Mx@n!324`!yI^)z%YerYv/8هc/+N+,i<m?&kr,h +a=AamaCMZmHkң܅aH;xװ6rJ⋋6 [BɈ ~]jk*v`OWZZmjCah%, tenMLuL7lOQ6A۝DT8$vsAВ+8vȋc=53kumpy앝ז+8T%=WZ|+U[ܨmⲸ[`q-JhqDX-Ѷۺn)LHဗؤq[=n+r;m68>k|+;Կiu F6F ? M@kl#Y,.9]rvdf7[ᵿ֖Nvrl[_nu/}oW\ove{6WwC\-7@e +]{mejҹ6n Vڍ.S:W2osgjm}s-VxᵹWϵN۬^o+`^=u +W;$,(LaB[Y`]E\A]+s]~niw׻Nq3h}c{|L{Lc##̎oxC["+,/{y2q9Sjzr8"v%Iը} ۙۢi^%eV'P4dkx:ȸ fj1kos5lvW,hrSƲr)✧!`5y_٭K%aAk>?"=e9\ؤ%v; lDF'iL V΃i n&V [&̽Vg=)gu#ܑD3q}- ad?qڈ}J% TTY)"1@RJI?"dWjԸgwyy6~1&cU֦'V9JB9ߙT9 e?W:Wj5b._hqtɄd"TW̿Ȋ;O =9sg<r}V4M_$]vJwCY)jjWLfPKP&Od4q7*-K+{8#K㶞2/ZOUHj zdy(= K)%18rƲ*QE$E +wdPVK AGHi` udwƸrȃ0Ա̪LTTc| $HJ.%v^(ZVMeG怤WCd$ +VWh^+q|>ԓ=Ǔ<2X7LȬy5! :}4XRu; /N'kɀA D[UQǹH$0^2M<fyd2oD(*@2.>+3>y:bEݮJ )dGE{ VVp.,#,9Y*21TiP(]s6EHPNRSoڙ$]YPԀj_bvG={mX@"$;*CG0/6ܮ3^% tp"K/$Jf6޼yq҆i)ӚV)-&ypRY zʲ7 +7ls7pIlgn4 +vz!Aa@0ъ-k+=o!W1p9qB9qE6-qBxqch㘧#,FtצG`0j&<,o؊V&[:vƹ#%RWvpQC"u hލ0}3O+'MEx$ V:xjO\ą4`EVP|[|o7y]Kx;y2mH#'2fix^Mx$slyLL<>ͼҊmɧP]M$E愛!~5&~*a<3j̻݊)x32ϓAo:nϪ$8giͲ{CVd|=qƚe8e笛 'QB`.kTb[{X +,;l{Yv'YvzKτrUОzަSd:P,VsT_vG=^bUC}'@_{CrXv*-mAzX> wVf)@_"!Es }~ʥ+-v^ A?oZt~6iV>Vc@_ 8}:IfAwbǣ<;h` *tI{}{y},2S+D\dS}E)uZ9Έ߹"Z d}Umg UazUĺmd GںpbA+k%:YĹ:Zs>վuo~{7`m+kWD0\ o9xtDnxNv'ݱ$_{󵆥|&_[U:!rZπpZR|mga0_+__[[UjkuZòw2ZMVkUrWE\_kZ_._*4_q_s/]V.|-k+1k5i ;lVV^V*lڢ[U䒃i|M&5vu +5iټH-CGZ5`Q6{j]/)N”9=Y1ȓ KZS82f ("Oj'`=eNՄ50;KWڼ|לv/8ZFG]:)s_\XZjSBMS1e 5O+9c2 "=z\O)s-i5詧L9{4eS4KRln}bi],MO8՗$%,bY |z_h:,Aȱ-YZ8%~z_&U,j]T큞d#ҥ+so}̡ .uyʷXKfiO[SҜamrauXZpKkpvei\,TH;=K,*wqg ai70ϣ#V؉7yt[Ϣ[6]K0,%qTLVoLxgru4MdfѵG +qkwϢk7>j~Ͽ05n`sH\doMd3۽sKo1{zl>'DJ^NmdRn++w2dkۼ +Ohu9\gk|C9IK|NZ=](+ˍ&EBWgmN9hs97fscCM8;bJሿq2o]Q:]5gGQ:V?](JmAS:e4*6t*V 2+ަ(j,jJ +3r5ŷe D* vKuE*:o96PQ:U9t9Aq5ѱt]9Ϣt̊m*NB9E(Jו1WRS@Q:a_(Y]buombu]2VD +qj4zCSIauQeu)VP.ˑѺgaF;lh3V^'l{oTVau].V猽uY?(cu7}kwo2֕~uAvKľ&v=Nng2$`xSRz,q՗e 1ʹʽzċ~̠ˮv:$';]o~ѯq<ࡀygQ3Fy!\/`\OF3zx(54Ƙbn)h0/ .q<Ȧ҈{[)9?l&{Q.%C8gne޽֨3"tsņU:r:/zۊ<=k543JҤF, W }F߫(DLgZjeȣǒGV*G"_RA&nġ2[HRGI($Ԥ[(#P vKoTlvg +y"G>[)U^M-a -qh ɂdGzh/-[lm`-?DLz=yy 7]+:ߴpZhǫ&,k +5Ug/P +'y߳f} jԌ&=q>8_mW>j}o>ԇ$32Ϛw9]f${4/ꩦp&lxzjO5}"sM_CB׷b޵6pyZVBR?߱^|7o֯2"} z6ApkvC =׬OQJa .bĆ6RYfFOJ[f3+Ϡ:R74}a!lPcV7`恵g!/T` U1Yb]FSt󘟾NVO8TܿňLQ-Xo(FHFy%go'KIefgD`LKO㪾Oo 5jATG7mIDfkfc2`A A݄\n4 aN80d +0Fw3+QO\)m!j=ڗ}tIG #".aIWw$dV Jf{rFOwLcqW#fCWYC K8AѨ?_J$UR) e8̕T#O^ .$U|&a%I֐q@=UCvxJ[`3/m)yit߫Hi+2 *Eưgfs"D涐x>^@Meg7R"sTݘ ENM@z7̻*Mk(4ᛍw$,G_=AL_!nԢ:yq97x0ѲxxS?@:_R=($ MRY#Hq Rlqvc@5]h5U+حкT+H+p$$oOE5T4TnPehnT897ԏ w9 /N|en |ʐ97$47TQ�p#I@ī.+ϽnaA7LgQ?؎}Z կ¼"63Jj,XQ܁瀟N3-cZ:WBWٙgݺ$*w`X{M&y֤FS(&}ˑk+yw-[B̐qY>9#c^V|mi<CE7oU,PWap0R!G,aclx‰Db,!38xކ> DN!EzM!l'l0hm^hZW dϔYϗߟ$Ya-o"II2l:#D  qקea4Śt"[cp=RD(|j0)FdP  ó:BR.=+s?au]HJRB?éx6g˃yT +a8 =9Kh)dCh))fTex'?Z8VL??.nѭ0K(G$3",4ԸI.wc^ jQեn_L)Ȟr$ ;_pxqϳz &J<~ػ¨ǹ6z^y}KeyDCjB$3"cUsaÆ5eG2N;=4n&]]0/R֞(!;NDwI`8GXW#19|6WŷUrj\L`BӤ @ 4CH7C=mB +c|A-p>&N2l =qu@C8܈ĨY4pb2o;*_H!d%beiB<}ܵ-?甿_?w^HMWE~8Fg3jR'j5I(yd?'#8qbxcM$#D,ń3/RU1˔ 1O!wr e6DhWݔ +X!)7 ^.ת4Ҭ0n6*Y70})$s< uv e)h bM"vR珑؞tQmDR%-6H)ٳğEl-k,\2O'SkXj8\saS19C=Νs#0KOKOȔNGG)5/]NEML6`$bĿjt5%MKwNl.Mwo]:qZ3\EF'X(HKR)j<:*-b`Tj01!tRnB'dGN2qz+t*fIÇ7|U $Eg  =?CiE4B8&Cd@f ײ3$FDڰz>8d,NpYڿ1_?\H9׽=J/?Pѣ)N;38SO\MOQSP;L_ZGjj (M6G,}GYOqcUIx\zv# )PXCj-"xN-wV?AnZA$;+OʂR65\MV{[۞n{߾pk7 kB-K.Z4kYmɒ^5f1!Vm,& ;2eF0z343t5Dfn=)>ZNk򞆗'~Ӽ$3 OT DjvW?RVH1'q, kM:]fz3GKAF>y'M}Q5#\C4OFF‹~6F_ ֯"gqI9wpM~uv|o׌?| w>5wAO[|ytΰtN2$5˘B2G ѳII,G9"J74V-\ ={kڣKɐwE|(W 6h4؈n_rrC;%t:wo`gE|\LK}ܺ||uKl2ej;|q([xPji~0,>3$osClMq/xxl6^iȋ%\Abd*Wd&Cb9wmd49B%Wcf +٭):SEl3+Os+;?蝘Q XW9&90E3P+3t~J|k=e'y&D_AkKJy~ <$:k2!<&<$Jd%a3CY&DŽM)Zv}-Dr+G:GDtH|7l7$_<0煮?V&Toο/D1{+ѡ>#V!XJ|Lh^Z\,*6iY1Ҙ0HJA6nIPwkD*w/re&A4˛# ~#.|,72p޻ĭ );M54a<#z`ljH pn:Ufp5D @FdLNJY9C:OjOΌX&@Y3NRIW %׏Ka^i{қ$O7n$?iLSYjTn陣 #<զd8sĚ<0O867ӗ?з<6HyH~f}$4F#Ԋ6frpT!>U`#jқ[+ٚJ41h>~)4|I.@~8Gl%nBWE}PUγnĒb; +ld϶/oHyW[^|~wpH.Y/XB"޸È +l(({Fcu~{5c*؃z#wUIjUoM9t":N8Ϧb|xLB=3O"ߣ#G>zh Tzy`2|RCj1|r=Zܥ:&@x=3y={5E!דSH$!J91i ӽN,8)ըۆ~ 8优pj06c-ƺXb_CZ@|s#$ƫB|7|*bO>c|V6KVop^tS`3ؗ̍Ԉ-PF܇)#壛&N`Xk:ILZ7^5F>}(˫z ؖSQss/]m|6N}y@q5N94NY"33xþ؁=jXqunTo0ş>So9#"MpNԱ%(Hӳ5GnpF搀zfThFRl  =arkki5.]8N)^0k vͷ/|"w9hߪwD*$ ,g>IM 5hT|i5ޝO"|"'|"-x%y>ʻt1Q k>ѴOd5O4-?hڿ_'/k>t`d!Uçy>Q"|i5 +|"*|"$Ehu' Dx1k>t1ʞO4=hX_'2€YMqwA=`MI-eeCc'DC!OdATj'3e|<$UmrZp1W{7zPu٦`)Mc$ŷ`6.lQ2?a6NWٿgF*v7[_1oFZ_=ZFo |#NMg4ţUC9~s,{s#}fVwU6 F>74 `j4WkՑC]ҷ,~K8F:a '.}bk-+⥕?E@^=h>&:{p7e ڷeUd56'H 29*}ЌVF@/MgW_6.4d\⧑2̦| [ryn^ P y)BshlWܿ$`+*T$@* +}h5Sn6 ?6Bmo7#}4)[|TcRb⚾ +RzeVSҫ%üN>7Gsz9?{=~C%GG>б{/Gdr?跜4[L߄>c:ܕ%v|˿o*W?C߰w<N}m-#u RC'1 #>z9A)BEZ_; ;1bSyq8²s*vW<=]40,K@UM3#,-E߻ć>,ܴ^VӜ/= _Pzauaes?(.7>V榛+xblJCZ1 ī-8g>nDaIa].݌3t)ljз*@zw+>/ߛMtig8z"ndŒ9c5!DC^kmt,;s}?I~;ؙ+_%5+&U#웕*\|K-,><2xۉWԳ`'yC()YD8EP7-#s^ĴM|÷ѣ|4 +&uaܗ8nQ001%BS{S_~B_N[8-͵/-s W`HI*1Vzi4RJtR1I.H`7D0[ Y˿j\Ȧv  ܺwvVOgTh.֘fpq4p 3ƳzCH7=}7'94yk5Wwy\Q^k'\W߿,Y'0En2&4Y^\4l>{pFLؿøA٧9ا=g64>5wI*૴6bL2/sKPɸI1_t1sS_bO?+?)?_U;K +@j:'I~S^EX~_TYR~,y/s%_ o=:iU]D!2TsI= + ! B8c"l{h={.xRP,8D5äȳUBS{5 +EBE)~(Yoi>+l%7WremeV~ ;>:ko"74nW\p$DRp&6Rޞ8-?`NyVk& ^&IA͂? bvnBOm .omx&}wJ9Mj[otV|koXn!#A_Gpa]\ZJ&0y络\mO9y8Nz=Bu-Xo,/8]!orr f=/,oO CCpy-`i_^a!h=TrO\j)a¾)O8'l >2hhyYkH^xg 3>c= f(fFp,u[0uN oNa4Neŷ?ٲ"Mq9-(J@y!>Ԭ Ohqш_swJRl6V$_eFezpk˅Fۣyw<Ǵo^⿕7{xݷ OCzI5xkFsLԈ#a_bd2:~l J4tMgSƫxR/މ命ܡ\u7NMFSU)ak3_េE?PYj)3y- fcײn/E8v~1u-ӷkDmh82val1xw]Qѽ֘8^1}27 lxp suqHiݚP-n3_7{?Ϡ=c<6Rƫ~Ōq?fro2 +eWMeoyRvճ{TOUEa%p!w2EgJQnQnV Kâ5 <26ыsC|!ƙ۸;4W&eբ#I/"Jr*֋֑*;ecTz':8%A웒 )AJ!T r42Y;nLfN{PČb5 5#_}7`v|s5}?=ȢM(Nh7|:V`7wp#5-?o-Gc"1i/[95ӯ3fs|&3ΦO x, 19? z_HOz&*ŵ͟!s⼐;%_*~yr~Ao'U_@Xǯc lӵ9EՄgnCbK9wj3?76_<|Rw)-l`brk$ޟͅ*G? +nX9͜} —.]WV_:g*,c-h۬9DNztM^ 겋A4T#1S)aPS,5|bP}y g~NwuO]3r +b`m$KxJY'dtdv75Ǎ -q{7x%1=#~oRgngՙd뗇pنC'"̌ #T߱j͘<й=G^']^:Ư6a #R:!1((Qo/AMy[lg,gwd X%[훷:oy%-[웷8o~ /D ^oo y0p{0[oeEz;S'a@⎚qohùXdս!Fgi0pC~ō;Ξdy$(,+4މu\q;Tt'^xOϋABvL!L]'%>MN9܋וU[X9#/1O32jfQWSb4Oiy)e4{6NG3o)1rJ@#T0P1Z"ֿ_:O{1擰?_W=/<>dnUNJE%Q^l#<=%Y5vDXOY]:0uBv>QGKII.ɵ*LOuzy+K]|5 +!~؈n}h\-3U']wvlwNxPjR{F6:D=T(+IKI֌|E=:C ͗Әa~xhUs˃?m^Av<G3^%ol gLb3RØi>r8VK/itݞFOPIMս8sә7}q`pa\>˸`gn1Yf7Dib|y:yPV׈ RE)Wmux_w-iLJ%I+nSrnn8>yRЊ 8`9@oT}*pن*]&en'!*MEj3M~ H}D_8_u^qOm 8|$n ;ss|,f\Ud7T!*L\.1V~8|c 4R$=.$IqD 2('rWgɽ8|/$k[#&q5N% 5{NJ)9?q~y6j23d=rz(~2\˙AeCAېqֽWI<r&DNN}rTU_%Z"Hj'gԧ%fj{gO J_݆GLAȪՉ{8k&J2^bt㰹W܋!(Jnj`+fwêh+gX]R04%0(Fvq)K !-l=ֈ`'\|7لZF, 04{Xo&SETHϜP4 E$q9AkacJL0m< +?/'KtJ[l Ui\S쨏>k8'1Ǻ6nǂI9WۇݶU,'c׳9'i) )O@'D>R':~gOx}l,{OI鱵Lw̽Mo&9v|Ǎ&N—03[.q@E{悝I0"A!t/Iq}`LQ (4Р;0LHƀ{AKgF I|c:H;ܭ@T =?:ֱO;0ߐsw11x8/Q*FnOl_gaU3B<󉋸/iK yO.kd?y21.# W=*b|8|W|/@m]&S*y@TSh*z0;.3*dDTῷ$O8`SxP5MމQ6 6Rlʤ*`Q(Û}bALjcpfxJqgE̦, gYԛeAL=/“ S}Ǡ^b["_%[g1Ucy]5e܈B6 jѦ~셀AiDuFT=0kiKAX[) ԅO;ԅyӞqI5b7` {4P~>,{7X`?!z/c|22j*I\Ax_?vCē2hдMw9Hq; QU@r|5 o2ΛzF=3*rrM(x&Hov&cx#t'yP{OeDhݞ`e8쁓Z̘[#wXBpJ1س<2'x )fUsL(\cBH#=x\GPOɐK'&A xi}A]`GAP2,ojF&E2|y`ip)E>r niVbfߣi&1`:Qq" hԀiR"<`:T[C(t`=^vV :uO^ajN}II!R$GI$e*=$& P~GW߀'yVzz;Bw^ar>PykF|KDy-.m+ںyb<ЦxUc|C&W07ˆqmuh#q6ܪgiUChW:Pa{;2+gLV~IcDřOڱ$;瞈!K_V5.KDA< p b̆>͜{jsf5f?TrlxPfc62s:c681eM'y\cr,캹tÖ3U g~)%T^yQh/5[I*C[~pxQl_(5bXMdn_(3b3X@/^A?a'ɛ?vq`(}S`WEEmqj/75bևQqVT~:7{̹'f^׾RX Hk~lv|-4wf$W#>5m}8lj]=T݆0u |dڡ߬@w{'* +?;~ܿ/U8Wb#;Oѽ-yFL4lae8RַZ˘ W}шzjiÖ@&G(^3ol˳V?|X1&%I%ٮ#5#x +h6\^3UAϨj 5v? O1FFӈ|ˈt#rĈPeI1o>zJ K+歱v:_JqŒS]v3Ғx1YkӾ|?_5ϖ4_*K"7ں"~NۆX-f{+9BT'b$ e1nsS#~ >?_]Q3~Z8[|p͙.QI~ˏllYs|طo$wlz H3qsb=c,<߿x"Os8QG%؀QqPm7q?j[5%՗~x5@KiҞ&νȑf|28A! q\\C Ċ=h ):X1W˚d!Ha.e> ?cɚ-1(iK]r[3( UWel8;I#=44qɟ40eOA %C1NKB{(/5–l "fqQe ?>C5 RO,1<4F+qIӿ/12%MDudܑǡgoQ}zwwP{^9|.b 37E|uWKy+͒pI\},.ZQ߰<͉i$Kହ.܋˝s=:x^`}"D{;Vd߻3H? +-h NCާ^.5$ut >->Sf>HV|d>D>W  ^ ~=5 [HNmx Ʉ'+9%V(c&{OmQǦP1}o6JmOo9?k m( uwmW66`^O)FЧw/wDW辕<q8U 3:TC;P̕\g)~iy{xF*2bSl0lmN3wKw;79"*DžUu}Y̥|rmĝ}Dr\nn&WWBLCmT{!ixE>N\7K a~r&p%3ȶ)>ʅw+g}?YTvKz,5xR@;/2?$v??Z,xKWL~_%djv:Ѷ7mR]'~o~qI2?SW61HK>@sߌ@`͉bi.2k,&'y21 .fc}spm[3V=a 7пgS}UrwMǺRm7>;$ ;Atf2bbe>+0$ +.*ѻ6'*N$UW`+JLKHwX]0Va׷`b@=q|5 wSi KbOmғnK{ i4#% ɺus+/BX V3:,?(i8ځO3~-V8:wYz<(w]B(ח:6ЁW 1[ʌ#hQ}:G"O9ֱ9% jB ]+۲TBٶ~f7䖍`XWVLq_6 g:zsפq`?&E5?mUu9"xM5 +Ѱn;D>_/]ҥ^.>X 9!AKtFJR*vX=fՋMܚFl- >9|Uq5AUIztkFf⾩Oi|_e)m%l[ܘJȇLHuD+_Ch(њi_k/`Yr;7v>U=2.\{s.BAj"}Q5H^)m|r޼׫=L]EVt,_kvUEXT$@0>(V%f/$+^M{*+[P_w$^CF--ά9kpWΚcP^T ߆]"w%^c󗭺(An<o|GKV?+ՔF-8ܼD~k<;;uf|-w/:_|:~x|q1^`GW,,;EM_]~M_&\bˇMQ_ \|vfg_HZd] nl31k5`yL'V߅3^G3ҿk.csǙ&w|d] qz*cy>]Zߤ?ax[կqi՗urџx_kU ~ȺH7!AAtiwI<ץD{{n߃#0 | 8>ոCR ^HUxٛ/s#>4UosO5zk،ma5YG]o35}˙Bg{LMH?⥼yf2~Kܟ@1L?~*]JޫgjTXO9K yJ#35k>/~;|荡gBeKק̮IJ+gy+/<\_ߐLM:[25۬=Or)yg޹t|9X窯Cy*uR>~>DjqcrS9lw2SLMřֻuHMyyw͟TT]7W/tPH<<>u{ ^>s>++>i- W_/x߿^}ԉr_y}klDWRO은:t~?OԜoͧx-O=$ +IrkqԮ۞-[|?|Un[^W/*e;xwn'o/e//wB5"=9V>y\V{d}UP;_s+sꙫ]ת?T)8*kNgIA&^U+]oI<\AoUD{kZUQմC[K֏B*iWKb*J!u}ozq'?w?wx!o+'Ew_/~GrDGs_/^~|''_zU׋xoK|0>'?+y|xoE|=|ߵ׏KDrzL 7Vi+3??^uz@p"^Oo\HKSGb# C4:pxxZOOx~Zswi}s-GE> IpRH@| y?񜯒zR:_Oh/3TM@?R -~ʲTMTMzUj܏LլG>iz@aeץ>vMBS+Ճ_Ws}\Hzjzjnr"USyKfEˌg޹tt\u(OQ2,!쫊C+ [X0X*]W_ߗt2USykfũֻ]u^tӖ?W\j#TwH^5z@k+?G<+s"?(>T{ߧtg4is"AoߩrB>5#ηG[498ꨅ,[|?y@2"noz : +4'Jӈ݉-_o+/yj!MHOnwJ}p}r#[U+ x+Kև<_KS+wOŮV^F(CG͉PR9:+kO{!ytWFeIۺ7^~V8ҺJӺ.~_Z~rSŚĀE֬ϭ!g܌GM" ??x[eGcP$a̞k"lfFˌH:i}:dl,yY~֌05wAA8qz1zv?=_HyT7aOh}B81@5O7OӇeң泾lM !}ߖ/`Y3ʨ3CUO_0#'T-M}6՛>-Hd>Ef֧WtV5~'J#w c·&&2 .Fg?w$D * >$&ԶH4S=Qen()Yaψ3pXcK}{̌@֛ׯ{k4*=M:HS:Z?l5輐K: c FF2HFm\> gXhsXE)afvTU|.G)bPӺa☄2棁ėChR[Bۦm0wU68kZ`E33#4)MMxVCpjګ답PF-ګzx枻zyJøOd zٌtplNf$?K{h+y=lOyiܐ̧/}v$re +ԴzDrњ(~% tI3e'mkJBC#b"j4 CatāThm'aJCB O4Xh.4E[ \o5EOp+rc,R-u ``eJH/>zJP9%t!%0D {?xA5,VKICcM/'-ÃCrC+"fZh9pف.r+4G.;z +ͭ ٍiqC)u`M.!.!=fEW+-J\ Lu˿q)"(">*r颏Eten'[t +l߶Qӕ:Z*8,E V 3W%^WͫlqYk8]]7<W\A:r1 +F;pWށ+ÁQa@c4T7|NaWe>BNbt +a ~j? nvs *[~e^֯o4Ś<@PE>"7y&܎ꐂ8HAbl/uCУ*|q1[0&vx?[Yu)|Tl +=נ$`%VzxDǹF6$}އDLMWO?{ij +W0P͑ JW*A1bگkrG mӎh/OGC>ravykJn^IY?`yU2Zya%qaGPS/=`C9 +ӬSű|L&69PאWji ( )q1LSq^-Ŋos+Nʵ;av| L5UhM.-n'dj&SQQ+, +.AQ; +x(.xk2v S4T4R5(\ũеГX)HΦnЍ[|iAD? t#{-?}*-?b39(br^g=Ҵ &m(W +I}'SWk˨MDՄ~U8r[Ӽ@d016l~r7R'|ҩJ6CO)%$,1Oi_R(YlMr}a?rVj{t?k:[YMǚ#cvm ǸHXDa7)Qe,~w^Tɨv?ek#Yj^KC;Xvhh*I$ tI qkFWiJ JwA-(9*\>  zY#Us5k+u_̄@KbmwyK[1wǾÖ(f"ٸ7r,r/LJ 3S>&&; u\䡱v"Sξ)bֺ@8X3[0eV t%ccXJe{dZ+H?}X0@75JnUw"Z$"7|g&)g\1px&J{O^ /kk# > +KV[0ocT9=7CK(lM IHrˋ,_]FyWM^& ftj>\U{&S:!qM KEH1‡5a\[wk;$qDR0#< MGdSA]Nj8"r:R6qB:5uBZ5]N)l> -{v_ywi?^k{kK 0FY[u:%P,O)Y_({yjǼSlWүu=0Hm_@8Ǣ +,IL uu"NEEθ'(~/1+!( (^RC^H>/D +ϞX t>>kd.x@ހR]H@u榮$CG;OYxpaM{}̧Օ^=ܷ~DSz½ {uǓ"SfIr%YAa ^r,  +yK ,EO'"7NYYk|;efwS_A <_j&g@' PS +sgYu_1A%3^ NtT=s$j/sxn hTa{ᮓPCh ̕O׎@X6W_C +LnkwCᬸQΊmVH[,_GdwB[]vKPhUJD^Vwyx،b3&h/¡'L.{Ҋnr)uȧwx鉲uKVh$α8\=.irm,'gM'ȟMH9M4:Ǣ chyAfC&pA~A~vA1>c}8gha4X|2 W 1kX;TV͍˻>Ank]0kGTl%RNj/~ҚQl]~?XKJ)ByLX, ,d]2BN{G&jtʀ-0 +tj$K%eDP:QNGN{5j[X\咴Ej5!pieA@Fy)H߇ˢTf[N"L gwl b6r +}viKk$Fƪp>7Ӛštx#˷*p2Ū A ^:!īZۍ GS>ΑԊ22)kVxy+Jjvb ݫbL{ yx-3a5 V* +}s6 ϰTgƭ1] +. FfHH]'G 4u z:p~k:{T;&up}P U|Ppp)鵭Jn#f4¡2gzI`Nh]{$+rfItTh{j*SB(N&?VJTЮ*{a;DMY $Wz@ $lt>.io M(3j=TflmcySOb^#8m824a0yӖ91Bl{$W$KXZ ߉9B!H<=€YqOƧq8Y-<R +Z/$L{` +{L\M{zmQ6V.qs]e{n01X +رyM]O8> ͔myΔ)e.`3Y{D> ba뀻o?#sYWl\ĩ0 W ?b4XYȥ19%SϔL͗lIӌ)]"Z’.fH4-TMIjj#UӰ3qMP܄98BD':o|?EOUN|ϱ=pDin&iɗTOTH PCW-S r8 S §i9Lwi&oͽyl%|2OIC1{y|mHK#P^ ̆\uxnlץ9=P16@pKj~0So&H ۬8f)N볮f) +R}uy&|R70ɅOny -o]+i 5 ۛ4֔ &|.>ZvN͊f! 0SWm=Ti8O3cR$s )w 0W-|\5nӌr-|Sה/fOsa-fq0(|SjX@[e|)O.{j{Ah"=8ɞ(S7%P̃8OrOuS4qӥ'傧=i*HKZZAB P:ZA]Z(Bhz \u2T/VA~` lq TT[3;f^U}ɐL|ipEp6/dQ0?LL& &rFJH0:0^4DրY#(EP@%Up ߩ_}M{\?E`څ`z#zg2(1@!jheQ}Vd#yW;!9оRNeRf7t3N)3CVq"C/QæA):6hŮ~m!S/.Q3x +Sϼv r>;PAOk|O5B;IxH&FT\-jdEqsL*2(z,Q8Jq^\8pG}x aW@*~J*/x,}(K룦B隦+꣦iڭtGI$MQryTNsˣrB@< +ײz(>wc8CM{\SƧ0R()MSJVjg745CߡաR*uRRwR^'QYB,kUl:ѷ"S0,Hkey.bnD$t7Zy0bKd+&[:Xc5pCoǏ(&-h'iYF5nl wbiw!a0}K(P{]\Gh#'/H)ҩ +'{/HQd?gOkT<4>0gQ}c5 +-K,<9-+3@ +9.%v%R)VsHuLy(A=<IrȔn飞%}} !]G4Z׮U&}0?2 +}8GÝ$ +K` '\(vJQnO%Q> :0Lꨄu)u> cKbG5K5N28IsJdQjI0c5Q&YT%(NtOo C ˚ [1{}2`c*ʑQT#VZUFvX}OQfT-!ۣ)>ѱ.P"?.z@s<ȜLp? +EpM01(,k\Re4gmxPx G I(t=Ry&ԝI9O(rf`u߂-4+Arj\4S=J OіfAeE,YfY,1Vu 97uPf;x1yM@SRh0`!ױP! ׿A*U`O( 0kLb^f+*\N+_s@jZ]Q}U2xӯU_:*$l|!|Tz`.kߋr,3`R1:(`$x.O|8:M<EbBmm$uDK})]H[ԝAcU$DlI(ֿɮʕX-/9:XKXp;\ <$zBO$ ͜(N$[E O/8H +H/YewV :74B$xB ztcPIa1#5HǂT58RZ*%3U +%ۂȘ5AL_RZ| P 8I16:eVq5=Œd=n >ŝ!:HDec#eeE^([Fɬr}PUߚ2̕X=V]CeeV27a +y +j~!yjSziAQ#iGFuR0:LƝᔲ@/>d<{ES"uMJ=wI7$ߘԅ N/7 Ϯю5GSן57PPnw-_OTq|{-DN ".'' +4? Zrpߴx3_]Օ1Ҕ!MbjV7?_(ck]ɘOP@ɝ}^y)I{5܆2es8aN&̃,M''a/Uh'͑'3{,h\iH~,i>|K-.X[iZdݏQJ!?ɖC>lr=Fp[JA +,02Bhڤmf#~GYM,OhjLd, 4}&%2"{w"هy1-WFql%Mj3z=0:Qi{&L~{Oxk&tC0C4S/wI;`8Q0ԉDWZޖׄ)[e15-hQU&u=6V3XO%~rV?'C eXWbyZо,W-ڛIC;pF (n4u?a 0<-kfћp:j8Yҽ=%aҳflw8.R~%x:6M6jr!_ !VbJ1@ۜMD4*xG[ YqQZ!0իô S +u%zs.xF45v C@JUWz,|(IZʄȞ(hK`W,1Vw9ZUe%7 U ڄ@I''&Z`AI7,CXh@hY+./w+~=̼rl*n9ʶØhӎoCtnPVmcaeBnV<"-5U3bK?)#e~C'; l;yZUi^i鬾FGhCNVr}ɠ +~\= +U]&NZ4WRNDk3HMNtF"$cs?CpS:t8k!rqA&a3o iˆOh=#  +`4ٌeq-,[XoA4b z\/ǿv +Q 5A`d4TGu tm!f6A[V鼼P0,!mc`%77߾_~W>Ot4] 8q:@#}|3flvj0 +Mku-qZz6!xBpB8-LXFIQ˷Y,Gq[pSG>s78=-irU++C~ y-TEXb 3֓+`*Ed jJ4cdTƔy!4}6g)'h\C80ާEqu<={OmTukRc?".Q]cT#$wXcA6ܯX`.×{4y`zPWx4ypMgv9[~t9}`ah,spM ͑Y4iS+ +r`=atXe"lW  m60OjӤDv|s). F6 +cސ3jN_MQesL#_pGKe rku ].ylnDұi ~>J[@o9\(G8@K(ԛ^Fo9Q{x R!h! ytDˣ1'J`0)nWrJ: ]Np9 +d~fDAS|a/VB<4p3caR܉R+Vm-w#1@+4ĖM]`K7h!By+3Kxn2*uUS >#cj4 txVUH>0#5#i4H T !X# :~8*!t!,`!gje ˲@^Dq, P|@ @T)7":ѽ20G[TO_?v{{O|wכaׯ|rQW._o~Y4F_t7ZN t}h&1P!`cw8azo|_*؇c_!{臉ڡҶm̷FךL`rT,5 MA0W~L6 u 9LM қe|!cYֱ,[A˛0LM۸_.[-zBG![a~g9 +#q]q/E[67E{xx4v:z,_m}sfQīcޛYy&Y-< ?FslrT/s]֕٣vn\2ShN|:fJ}7/Da7 Z{+ cEXM/ pKdQIaNA54xSwPHWr ',R[z^Z9 \ +im=x鶴(`ok#1x,o>ՖpUO9sk_΅'s ;])~Z9uaD>rUOF_|lt>PZ Qφj*iH侽.=L7ΟgBؐOp {C57YT +Jdȸ&Cz ߀7(nsqUnv׹az-xe| L-x]}n->"?^U# cUVs裞%jO7/?y{z=7ƾ&qtk RW9Td+kQ U <lU1œl9sy ) 7OZ9ܠ#\Du0(raG?qjwoNrhX7Q;VH+aG;8qG+{ւ{ފմ`?0f́nHr џk${.i~ Xp aH:`r]cǪ\)ʫNO}̊&)ײ}SO aX92I7QsraFT󡏧J GRեWSa^0Юឨ?^6|tpR";o,]qKpLV̩Ƥjto 8+deGp=BBZ-'?U_V53UtW|^S#jiaWkc=)sNg_{UR͗_"Za'[?Ź(;}AB BԆ sžrfX2`*6 +o1qK'rXf긷ϗڿKvrNSj/KNWG`Tqxq27*"niXTOVr 7L'Zv)X898%nZ[9lSǩܪ nk`fj6a<05pg*/NU:H릎é +o(V܇v0z>56jjTbNRo9ϛXA@ +Q)?תܕCQ'sTXʌ4*}( +?w1A;}]Ճxky*w+tU\Nz17YX*+\XY#1kq?P,_S%sް̦p/$2}a7UxG33}MÝt-u8xS8+aNOVP=xcj|*\d0RY=gxforUpn-vooCo{g7>B(9}`ZӈPy>8]Ir@)RyjcWo]Do#Lտ%NԨ d:p*=gzVG3`k/,̹vb#Ngˏr~c ,{M~{!+qfxsB@~tvM4Q /phtUm8_"TʇWKY_3/`cڄdFzpT +uB}501|pyDxS09w0Cn#YSΑ%~L3!7}w|a$çn9T +9m%Fdoa㾨 N87e7r|¿>MԓFe*T0snL&a"qbnTHX=P-7dag@Q!>P]WÎM}z43ɪKR>إZءY!׷\ۚkNv>j=j+06K)VD +T~M8DOlrp9濧sv3rv_nD꽯M\qA~XS~ +g +g#LnUw5Pa{^M"ڐ;UY~UE|'hqZb`sj3h+ q"\)#YN]|._8u[]p /<%_ë0>S+p~Zoc߃vYbkȯad%_}&Մqrmq^#S\Cpu>OmCs}͒q꿩:|H8}6kYM?aw"tՂu|K7:bk-g 1W&3%b>|O<]2S#f +gI7}s5nZNnRE\ES.)U~({:if1>_> +"%L9WPK:elx(锒un ^ڌG7+SGgC76WIMA:IO6ქz<&At@)3+gW;Zh%GrY +_><,9(W%J/T)Nw;~fD *S j&b&: ڿ +% +<?WILr,]nnUSP@LF- no:qfeqHQKQ=,{0NGHVКz>ȸ0!GX ԽLK`+!|Z9f\ǒLzzz>.7nVxJ |p/vK.VOHT')i5vx&U3;Xp WgZrwsY!^s3 _Kwr5Rp:=cCTƔ—,4'G7#xi,v-~;}Og9L,=n> ~g5<h|?3n^fYiU)/=ܗW'Qn:ˮsnFUZ=>bE7I9rG'{k݌d7mgڜ,uo{uIgMz3}F=~55ئ_4{דzπ?u&+(׫(Gq=0 zxL[鉱bh8Z%9.BG=QW%mq.=C 'Ez.U MKUu\/+B(CqP(=~WB5\uZq +mwpW2準E quJ9a:(K>VI.Ԃh-|:bq9icc9{jQ)0HOM8W{u!9!VB"Q7.)Ĩ_s7*ՁʠݷH +$Q>}<|(I8)3Uu\6sMԮ'u S/vS*΅>F7n&70}%FWqM֨?\Ub r+MPQM:NS~q{Fo17eMֵ2 \‰Ccp dN:1kMGŶ2ͲS䃜vH 0졪|QW`Ûޖ5Bbo\d츩Gbgc} +*( 1%WAYA#H͈[ā&U;f,0OVp\J܎mp6p$VrP:$$sUCZTs^k!ǯ,rR5 A;T`mmp:Qyp*BQ"ĝC7u$W"V}/38({ )ΙuWxqK39KOST~.?N!6/Ze[-(I՚=; q*.c Unw:pw +BUNIFY*w +B-UUHawSzR`|*&ɍ~ݑQnRyEJLʁהɪ H4A<㨿TLP}nf܉8K" C `ӈ;2TE;v|2_Un ` 챋*Br;E + LJ9/r{&TcE:=vpgZ6o#Dbnbn Bjg oGWԅX,zg0\=xRՓzP ]T[9ߚ6\=vWWZ#Pj2 !թ!М>!05حڿg\L;m0 {8XɽlԃMA*FpO9sJ]ԃTQEUTT?o-˿.7'%΁iZRU\c$=9LЀ|~V;}Mzw|>P嶸zwM3z TnzP?Ղ%nn(촵~oAd S@툫)"XePRjC"FujCwW6(_AZSZMTr:S 쭠sTAR]ԟi:qT3B\.C{?N||usR"*Lr 9 gc@#: +( E2Tu +c+h'H +:irՠqAq]_Bok!qؔY䲘KMP +FIQS$fPfr.G'Ml*?p]$^q,Liw24LKxߩY{% |z.vs SUFŜ6zz_wmq?TA_\ejqݟzGo ۣr uzgSNV\]*BTO=2Kt]vxi/He2VҰ#f(*:CYbʂbeMЛ +.q땑{q N^,N{z*>v7 TW\[9U_[ű +U } 6|dVF킡DJx.΀.)tT+ߎj2oq)Td)uTR mxuuy,T1ӫu5tQv*$rr +T,Q'KErXr! +rI=p'{,Oj)8ZuR/lѴKXpPr?֓>pЎ1G-FV'h"N3`K8?y E0Sf['Ɲ y_-(Y2Hcqtv#JՃ˪q^ϫbJbqbqZK*x$A[)y,do\AGl!8Bb' s}sfj:(y e3?%ljspO@7, +. ?rVڗK*EαުY-R]lfWxWB}P '0QؙzNh8lf)J{eRUvX6K7ÚoY3 hU=-ӺY6 l .h%닣b&_sAx>q,Q:[Sq t +;9XmXX?) jOBS~=pgKxB>$"t$W Cl1Fc#"ƀ =51$J=a졐j{gpp=dG؃6l%b+'Rq06 W8~R'ۉD9#3[b@q_)HOOk>:3˱%j;u@叩Zfyo_IzșB􆔙b p^g@O?Bb|2J¯UM Q9sC2C YnxYx/ + a", +2 kxWм᳽ 4Ё' +3Es-430{B9z. +YO [,Wv3nEmEJ,ka %?]VX rEJ},6X̰e>Gp[)w23Ox<Gs|CyK|yxa!><4//7{xy}¬TG߆{z- B- 'yKB=xxUS-e,<^LȢjϢp@}s,- - +څa|xaAFD=¼L,NwqZ2x, KzL"{/H醥5 Df.OU{D?U,DtiM]S|[*FGMtcG+Vct$7e~pˤ"Td i}[Ju)ut)ۥ/-%IOg)8zK>/A!;^~k %H_Z{ %uǒ.É#fG‰އ GuYNV|?C +:wka.мS'dCo}z3IZ^_a^'>M(z}xPb?hnMĎBE_SB=SGC]&NmB}, ibg!H8TLĪ'V A_։{ AO$#F; A +rO|+w=>įGS[9'm>6rА|>wh @9@_RJ O ~0[%Ы![b ~1K緟&G}yO?'mMH7.JGxG{ꏚy_Ξc<_(u?;']ph)q~4(?Іc#OSK/|^/hm+CŽxm%y6s;|El.f%T_|ьf|IrHy]Czf_i>h:]>$n WU>$~ ?O78⃮-LaCI>$ kg~9=|H|‡ęԚOsIZ7ĝ~`og\^K\wW\OLm$.EvxtK\4CeS85uu\梳:-5K\Q0?/o4{8捲[&7'g7kިuAo߼^.!IF3o_M7Ͽuߛ=otjژm$y#Oìs$zA{yx^[u&qI|Bc>x8r̋K/\i^yQ'HBUvo"q =p"ŋS/~N)KH\B V>^$z{/X{8Lyx녎H?&xYdً_/$շ"q{wO=Q;x/cJ+Zfv(W\ђO;uv%W\P]@6o]^rAgv!߰ey\Ъ˚t!8 ]rA|Zk U.̡s\rA-w\_qq [.']rAg z89 ㊑6_bq栓/ԛ]CpWMy:9CK6=Y3qC46~l=<7}19A%v~8|ZyDon̙ra v9C|Aa;#Ь?/mGBSnGx2Nݰ~Y;/쐫Q倃vgIpv˹C}~8Ύ;T}~0;C[éϳ#|Y|j%vv7ӎ;˥R*#<`+xdݾoC=߄lGz3qEdQ;cz!#|X]fKx-lQyd~-9F[آ䶄"Cl Eq[ =lKx- +kN٢?ju]oKx-ҊikJ[ly},dگk4 ]dK-:q7"o:deYe.1rThK^e6lhK-E:-Y^˯%| qy–.[dO _6Hӱs7U6 /mAəm/A:eC -*(!<ٹ%D_!|-^s̆6ԢiGwfDnm!<S_7͆9lm u6ձO#lA[lϳAFBgzZ'?v!cF,lбYhmPIlAܴ4܆B^ 6hKy6'ڠϿs׳!|- sdsmrkς/_Xi6䴱zmM52;/PUaMx%^-wU-ߘ="m4LcU,+Ɨ)/c9e1 +2]2e7a2LyFP:L owZ9LK3,?պ݂%K"H,`8LK K{"wM+$8mv+v[5%Ԫk2-5iijL\3_?_O//{B80~?~7!_ߒoU>^nnxWx2^>O;e6x5T[K%x</͋E"xKx0^(o1/[ -yx~<_o.ϛy;ύs9E +;n0=].Owp6R:Y ZgVː]Z^iOԮmqŴ[h~yJs㛷oYq6j6YffJ.hJZeulVW-754jfa tѴ8QDf<4^iThӸqE#Oq;56kHHšuQZRcw(a5b=60Vh _:~ _/Z~_/.% XObooog`kHW+]E~p~(1!r7o&gai*muLLm7=tVcS=L1=y`iڑ!Omzx[QfB ŖJLKL?9^+w54-zci돁oM[}3}Saڲ1tE|< +ӄ$ V&ྫྷ6OK3]n{:ܧ 23Mnhkfܷ;o7M6ݹk={L<`!G8v )gΘ=}4Eci^^-4W&P`{BSɵk^M+n4-.)1sSiL>4P^nc|=3}W}1݇u>26}ϚӖ?kMk7 m psss5k57G+g;=rƂm,y{c)rF,",VXz\ "'n@ O,LU|<,oc.K,&XX,!=@,X|֗w2,Xha."rK:`kЃoɪ1>K{b ƒ)2,UXa12h,B,X` %K O,vX,`S,oKǒeO,&] UʙTb +F,'"H׎賀wo=' gGUvvփ؝ b``n{;Oڊع?{@??l,R,Xb=,=`b%L[%F,X`9<)B,%XʰTby +K-<JqŢE},FX,C`e<!s,X,Xa',Xc % +K<X’e54,Xaـ%F,lŲK6]X`هCX`9SX`9?ވB ێ ہ"џ3DPv.$EM/nt@}m^ӓ5o]âu\dDMNZ7$ۍv.oT5qџPߊVxM/dC~kݩפ7gxϵ/6-K6#/j2Dǚ +jQ2:QN.48QPDӉTk7Re#N.{Z#uxMƸbȩ'M}KATI~H _f@={V_[-YPTSzPw;]{꼿=_)Sw]&{PՃuyMnr&Z}+gצj[ӯvuD_zFǚMFE~X=Uߚz7kz&#gբޤnԷmoS}{RR}?_/{ԗtoA}_w}sd/\RTO$I_}v\*e-/w3zQQ=q+[=@KI BoAWK ,XIix{[xxxgoy +u_}2`I/ڥ} tvGݾA_ajcʡma#fϘO[q$/-2JcwLs__edҡv/UkE/h_С #V~Ag_W~A] >~A3o_^5y5t bL^jYvZjt]xը~|}w}fߴF7-NtFQ|hFTߟ>YQ/ =}ըm(]$|5e鄘ը}wQrGOpӃ?TrY:Wԧ#e =L:?+R|ECyOXq+>__Mֻ_WWl_g._я/G?} T>h+5_Q_Sɞ' g+o(eJV# +P&{yjFOpy]?ƍ-JlήoαuOn}P5h7w'{ 鳆n~Cm*7*↾ٶo&L;nzh}Dgos<;3;]vmwtGmEwة[fO[(koYT8iFow;:79_w^)),zw}y5Q%6AjnԱ%O<ӧ5ԵbT !/=AH~]A}{ǏA5kPAR4>co5sv50D :1KJ+oՠ}Ԡ7\VlA+} <> KZlF?Pcrg@E(?Pˠ'@Tc|dh%}ѭ%-F&Tukg?ڂ+V~w6Uo_:ܴܔܷ0rl-:zSkQOku[hkj&ՔZdK-z=zyE޿,61y O}~%>niMǾԢ!J~iDWk[Dφ^^qb8n|'ҵ)n>':dsłj?Ѯ^/F.%'jvS?Qz?ѽ3:z~ih{uTr?:t|nuhԡVSDETrkzJӾx~K>96}Yrסe סAczWyagw+G-v}E#/lۥU'^9y]!݈V/7rjDw_yY؈6&<5pObF8櫃cQy kϻȩϽ׍cQY 0ӂy~;O d0iԤ__,g/`y:tٚ_a]BAע]KjqK4u/ק.u [u(q*QXHED%2A.K|ղ~Jhr%J([Dexuc/*їk*߸ljVH8yYuGKܴ]lK:?= hi'%W|τy*Ȓor\~=C_pٓ% S3Q+\Qd]' (hU>}ؾw' Xs\c㓵Y}od~5UPtaPO{7l9/q}TAhgcNld4^[|+E۷<{6E0|Mr6j]hYk,R/oIhM=/oe&c~ϐ3{d7U#]6AB{ł |%/Gܙ-Ipɂ(-[SF_0[%Ǯ`O9 Sf~rKfX-y71S"8us$Z%5=I/%FE,3nj%-.y+ljaږ֤Htٻ$KbQlmX8ૻBt蔍M qȻ&AUր}$Ϩdzh[nQ%>lD !y| )m)>7 qϟMQ]"E[)iA钣\$(BM.O3潸,Krtf#3M{[\E;) v8s`W"ݺ]dc-Գ秛.:#aK^\ӛQ0*y[b{7KF;lyvdWȕi_{ +oZ%p9atIm|)hZ9!9D2ك[W '-*= mR_]*9"W%M ?$:o@8(ūqj}%S,"jFi! o +ɪr9H4m~Gk1:^p kVXdpB廊u];AP6ciWm{ؼeWIJ NZw\)R{e$w;$ +&D}m$#1%*J0*bwA$Uĵ>u_sC "q$sm@c 7nz'l͗6,0{x/KHFU \\fwu{Jc]sH2#͒4mdMAQskQYε^ Nڝm^+Y?`a%/Ah3_o:ܓze=I߮n0]|yK6{w<Wf:g2xgЧw7 LGO|A1K_&IY0/I{ZMk1t2ea0}a26Rj0Yr޻2e/,ߖ)c)#ʔj˔5?ʔ Dzj{BBW(Jc,2ц&ϸ*m6 +WríSڊ?A^BiY4R((*xFǿO R(a PP(_S(R(* +q +1 +hDrXrf_5U1E3 +!sr4rPߡolg }oV(-P(=`8}.cP`y\V_9P\P2yB=_)J=LR$䉔NYߺX*܌7`M[٥U}f<)y)짱LYf<6ϧX=xٜXfSSw#0n#kȊe.P=>2Ex,JHbd?g2n[K3?eL?7J6|a(iiy1p{}ٝ1̵WnSbǧ|:{iʒZ1̈AmhO+ҼʇCFt3O2ײS +>t_Қ_eW{F3kMhmً_e7%D֍=׻NXĂN3PJ0-6zg3Sx%gmݬ3='*5dlFzW#ٵS{"wVWWd7TAk1G7ƾf'.co rM̳l|/al=~-eLH_hWf͗2ϦS,;d|E\6(dpez+;y,yU8I1s'3/YmŌZqL1@>v0S6Eükcd|H`斖E172`.+j =,ik^.D>j!3}";Y^q2Qnɺ;,db⴯ z=̣ld}uf7Ϥ`eL ?;!9ԼS+ןI|6¼m*١Wy±sRestWʟcj3J{ϗa s龎do>}YERχzga>hb&ɭz2\6.M?`4|^}rwiF\uOHpc7%n试\;.2tdeg?1/.矮ݿ!7mize aUW/Δo6fRC֛/ē8)tii퉆[Y='%6W ȒG^ -˒dl3^J%4m,,yt&nm˒oLcַ̒`0ՙ,wSeƇ?5_<%ߗ0aG%+wfO3s0Uju'tws{z)&A^3!BQyKtϒk^At|S4Sf`MAg'3'3ǤwΔ"`B1w<9{| yqfBcCE^-~'w!1|ӜN(AnY1y@67fw_G ~ZR:#7 +s&kO_Y'l8SoISÆ1X+lY'3F6e-!] b.׾5?Wc+_F}!yE\v5MrOXg叝Vۭ1+,ͽfȭ|S~aVtnqMj3rݏby3^L:byLcFh޲G"o;01+þ:Y~`f7fr>3tAs*o̒ _;n$i1#h/E=͘Cc'K1:-Z0!Dmf0 +A̲-%{~ ֌cI +;u`V0ѯ# t30]~DccEzLl]{X`cp.8'ׂkµ }>C^^a `,`L`l````` a,aLalaaaaa`.`N`n`````a.aNanaaaaA@@'@7@G@W@g@w@@@@@@@@@AA'A7AGAWAgAwAAAAAAAA&6FVfv&6FVfv9ƶ 6 66>| #W>| -c׀>|$MW> |4mׁ>|!D#W >|)Tcׂ >|1dW >|9t׃1b # V@̀1b -c @́1b$M VÂ1 b4m Ã1b!D#!VB̄ 1b)Tc!B̅ 1b1d!VC̆ 1b9t!Ċ`+f` +1k`&Qf `6q`"F+f +`*Vk `2ff`:v `B+f$`J1k (`RQf +,`Zq 0`bƀ+f 4`jրk 8`rf<`zp+gp +1kp&Qg p6qp"F+g +p*Vk p2fрgp:v pB+g$pJ1k (pRQg +,pZq 0pb+g 4pjk 8prсg}_?{>RIg~kc5ϑ~^-ebu +<6G1,o> ٷe- 0-y+4͚ܮ^m&7L6e,yfoSؼ9ra16 {2yr/̎bcؚE'w0O?F.fz؆vKD3ayEsU,r(f ?CŴa +-ϖ3\ly̢R[{3C3f<,|dq$z5]e\Ht?#:G¬e̓o6rA˘7="8!WfymQ5ͥ(Bewܔ]xv6׹$+1/_ŒR6ZCyp9;|v& 3G grSi}y_Ǚ 6Pfjg0 w eR0`YrYS2,fg`_<^ d)?f{ƽW` ,>;q[,'Y{9A>_`C dCJ5 t2a%o]+ܙ^1;8vcJ c'wu,02va@o~ǂ.B_Xpz14^;0~g1_.7_lP`m07,5w&#h?[~awK&#wɓf<=twÂS3Z< 'o |&NKo |.^'o |6nsxC X1b3 v@ X1b 5s @ X1 b(U vA X1 b8u A X1b#H3!vB X +1b+Xs!B X 1b3h!vC X1b;x!,` +;,` 9{, `*Y, `:y,`$J;, +`,Z{, `4j,`ұj|X.)"S-2h}ɨG}!"IZْHpdx+b7HxB1QS:n,=S\ tI~#r ~K#s̕. ?KZӧ官c*#" ^1wRrM,}.HXd.ҘXzuHxbFqu#)B7&Ri/X Zfޓxiy,opyKcқo}1]z0gpZhllެYcdpiy{mz_/pkL#Cko#t>,u>C߳\H{qtviZxyinx n漹;b ˋ]CO;eTCRˎ1Vf̾5wh:rGy&Rɡh.fZ7䙴z!m\4kw;iOh:ȹΚVI%Kُ2}+EYfY7h>(ZØ98[Ӝmp|a֫aT~wKV4W,0 f`[N1X +4y?"j.2f#iͱf= ytJ'W{ "i$)}"鹯^fO?ve!TdÌ|g kw|ݓM7kysmYa2Z:nёc1gf<ݛ-҄m[A[bvr'#v'Mޏg2\~qqtfCs|f_J1͜SLltDf.gKҺWN59c~kz>Y<ĐaKf©|%t|3osQOf1U.&6wl̙lI8}5-~; +4!fw̾j&ʖMOQ}!-ofatwf:ҖաtczұlPڄzf6hȅM +g{eUa(=׍EB+#ޙIҺH-Я5fzI%g|~VufIw,c |ů& Ϻ6Ӌ )%L?I:>ؽx6vϚ(ZVV-[P?fJbwf,V$> +f',mMEO&W6TDtiPXL=R>KuSgl ,a a})J6B4juie_FTYDɭt׭OkJ-kTe<Řݨ'-l`NY@sM.;NYחC-2O֟ +;-}@7j vIoJ`fC3? +ؗZ,08Q賂=ٟ̚P{n~%ӎZRW7'wic.#I㨴i1W~a5;+sfԹ_doGBM[3BV=^r!5K:a{b/ݳ#M9,$$1|W Vw6u}4o*U)lbT-¹sTҏ b7]~}5c>iBufFfiy͒m)6oV.i^t;{jsR٩^NҊTvO9T)i4g?OUSzF%;=Lsk<(+a'\p}Dzdwz|%IO Og߱nPJG7\:M:[qՕDrEzY3͕޸.zwP8s- 2J.Mx0Å ߐ^=z}=a)ſD9}ݰ4u"gz(*,឴zvTg:<,JP& _~-pSDԘg9ѻ&S+qU󹎴(:UDd#Sj1Ϣ li:Q3ZTBZshg}`Jj%/6g+W }'=%Þu'* M`7KTg 뱚Ѩ8*VғRߤf^l裟Ө-Em2Y0t~Sr\&{5)~-U pd[n\*2wF(<6y_&;isn4Vu5e.̦}OdRWi_fygӡYGZF{`,MTٰf,VCwi35#+ތI۾Bif%ӳX*KmVv,VaI[bbZ>YǛ3茲;:l;Qf [T|wQCtᛲ؉Ӎ7vSn{weS/zkׯQ;gw-虅]%lѩ,T Lk7//>DQ ٰYl)#Ɖ,^)ԮG};dN - =F YޅMߛźg^ +f妴E.e8=/4{򨄠6L*)vy֧iKWa;*.ueTI4Ϡ5aOd[ D^B[d ;dk&ҭn_G3Ъ tTl+Yc=vN-ægf'_v6PBE -7ޫCnS ' 7Sލ}ޥR: 6gxh,2t׳WGo +Y)<N+׳#GiGʨYiY#'mR"mhma0m:vbv9ƂMKZF|LLcE:v|4/ 9}հ7:sֲ' SQ?deC [KSf_ze w{Im6 |3^RnLIgK/^S]lظIӦA4qe_æH[zG`>ݴ6^w˞}5e mtGtKG6:]Z۟~('46yvc\5 ҙ aX}kP[NaK?f.lTȶ/z}:KƥSj?(`j®7z̓f?I5{+%bvrz*\6zgۓ8@%aHaA'tEeWKaJ*$ŏ9$ղN /9\pN87\ׄkC/' +}===½=ýXXX˜XØ\\\œ\Ü܃.Nn΀.Nn΁.Nn΂.Nn΃ -Mm̀ -Mḿ -Mm͂ -Mm̓_>|3w_>| 5s_> |(Uw_> |8u_>|#H3w_ +>|+Xs_ >|3hw_>|;xC X1b3 v@ X1b 5s @ X1 b(U vA X1 b8u A X1b#H3!vB X +1b+Xs!B X 1b3h!vC X1b;q0`6`!Kl`A&l +`.al`> &l `&NKl `.^&l `6nl`>~ &l"`F!Kl &`NA&l +*`Varc[u X01`cȀ3v X05`k؀s X09`sv X0=`{\8p3w\8p 5s\8 p(Uw\8 p8u\8p#H3w\ +8p+Xs\ 8p3hՀw\8p;x\8!pC3w \8%pK5s +\8)pSUw \8-p[u \81pc3w \85pks\89psՁw\8=p{ '@r; 1@r{" ' Q@r2  q@rB 'ȑ@r&; +R ȱ@r.{ b '@r6r @r> '!ArF;KZGCn rLk (IAn +rT ,iAn r\난 0ȉAn rd+ 4ȩAn rlk 8Anrt ! +PȉBnr+)N! +TȩBnrk+^! XBnr-n! \Bnr녜/~! ` CnrĐ+1! d)Cnr̐k3! hICnrԐ5! liCnrܐ놜7!pȉCnr+9!tȩCnrk;!xCnr=!|Cnr뇜? @mjP+)@mj PkI@mjP. i@mjP뀚>@mj$P+ N@mj,Pk ^pkV5@ j9PӁx5@ jAPԈV5#A jIPSԘ5'=A +jQPԨV5+]A jYPӂԸ5/}A jaPȠV53A jiPSؠ57A jqPV5;A jyPӃ5?A jP V5CB jPS"5G=B jP$(V 5K]B jPӄ&8 5O}B jP(HV +5SB jPS*X +5WB jP,hV 5[B jPӅ.x 5_B jP0ԈV 5cC jPS2Ԙ 5g=C jP4ԨV 5k]C jPӆ6Ը 5o}C jP8ȡV5sC jPS:ء5wC jP5b*"S4B`i~%w!mнT=>Wوc/6O %QDK7k'ϖ;YXP[Xzae\ulf;k0 Xag݃\yVaT~ފ9ySry0xQbYT_,&,#X ˼cJO&%SB:<ꇴ}d,Y$!IKܡg6-trNfF_}rccXfivK9l٢.G/kLkҚ̜xy>cc譓 +.h81m(6di&y6_<|vrˮJdÎR E$mfҬA{OGߙC{}I|2Z yv$}6ɽ)ON_D5k͎ǎnÞy~qV؝ѓӡ^^`/E-פSii3 ˟Ҍzpi4;4 kR͖=!e G}[Q[&e쫭b*N*51̾ˣuXj*k0 ֎ -b#>,+[S1RuPjRq vR:҈"F{}R:cVj_XT~6[} $+U)Qz]~X`H4=k^~ji}XvRԣtL{:ޛԟ8fu">Q?Ȓޞ[F.mZ=a ;Fݲ!d<Amo[*y-~p`Tr!K>$ݱ;Z7*Oů<& ms5N9 <%-7&z}2|V`{vPt34#.-3|b_mNg)2鳬*&u}*tj֮yht*"4Wt;RolT;҅OjO]ӭʭ)m޵]q0ێwx$}U. :Pf=&:ֳ_ӿ;S_bL},ǟ +;(}![d!^@7ziNZH>CQ)3.>Z2E 5sL&ҷVS;bnn&;/iAtaG4--^@8Ioˎ\ +fr45FBXW-d.̧WoȾ і]tO/e]ifgVRv+;:&R-Z^IԲ'Z?󧃏dϷh-Okխzf?&NIf&4yϣmS_a:n]OWS:motdӨˇ紑SPEmdKGөTlض7|Q5-me}Lqm]Y+ _vB]zv&5'n>򡵝(Ԕ=1\O\ZFJ(4cG,1Z odm-T)Sv阫oJn>l';כ^nb;MxN}kL¤Ohl^'N7 tn*,A6NۓCvpbC;Ⱥn8A6?>ލ !q~{LeBKwګ b7g=ajQ[sH_;ߍ 9B X?]B_+Qj.e\iN)@6ͪ+)U䳈Qv=ۅ.=Ih+Nw=Bw?MUgvCw?Cm.e1s~m9@&LꝣwfGgyʵo,>@҉6pry!bv8[\ƳJ8%U edzG+X; CYϑ>:*n66_@R3WцmҾL7_gOǷSڃRZ>N[cg.Sfۉ eZ=-RnCmШ5M2~ř"tv.C6tjԘ~XClh{1|=踡5= jW蔡k~o&L}۽ga eC~gnSY%' e̦#[ޥ^:b(k=x6}ݽ| PspmtQf(E{|@EƯ33^FEE` e=gO+([ťO,i͖(>إ e;Y}˩Y+{C] z +i13Y͠'k?jzc]LGUREaٌZiSO)iϩ.NTBav k lAO92`wVJzMp{N:gEXLDgO'gM+n@U9f wUO?RUϰde'G?r̎=}Us[@Gf uyyvĎmmizom5eGx6w3pw-Jn٭/{oFw e3Z*C>3V_vtNIKd[GϲByY JY%c; ӔKkfO(`u97TJEنd/Fݤ+7قλu}5EWvXzNmtllu[Yvʢ%@G ~=f>D*z4!CC٘KKtGl6>Ir +vɸ6ԑd:1+y#;^3fctd|Ae'v@hm3lҷ Ul{2-t`!z lťt`W#}5&bX}ּl\?o:S jfKn֙4=YKvxJ_ߙ7fL~=tZoZ-8HS٪]O6w`ozjcϻ=5FCF/:ahWK`={_:}+>-ec'.F,kdd?v{ (ֶo|ݥ;%Ck]lL0;QQXVVc8v`'ʱkaݝݝu/1XpL86#njcggggggggw |Gw)[|o ~Fo)~[9s #8Wp9s -c8p9s$M8Wq9s4m8q5k \#Vp5k -\cp5k$M\Vq5k4m\q=po= +3p=Spo=sp="ܓpo= +*ܳp= 2po=:p=Bqo=J3q=RSqo=Zsq=bܓqo=jܳq=rqo=zq3<l3 +<33<,3F<#3N+XEC_rN AcYq(ìJܝ`\<аYlx^T|Pq{a]reuh溸N={SsVe=ԆzeyuhMvvZ+QoaǨT?ĶRdž}D;&jCȠ5V6X*T,g?6W,bfzď4T *UW¦Fc9c!FClV~UQw*BvQ#yP%pOGYgU'r2ߓP9NsU0 l3#n`1] hs1ոRsy;?<49Ƕ69.1)`n<79ӬfRb2Liǘsk5fK43}fi;r5Sf5ۨ#5i̶4!Qoͻi1QAș"MfC#pMoO&b܋niIbFX 4Xu`UNdNZQc2GYVaX?RfބYPbֆ 92)1uK vӡl7Г+Az͇zOCI!mqh(Tu{Svԝi $DeHuWfTc\kvNݗX=i뤣< +zD33LhL74UK秪H;Llb˪.TfiIj&|u% +U+T/~kj үdNF-Mk>LuY;Ƚ{½#Qu)!Veb}.zD3oʙޙMUpM1/\`Nb/= Sv2U=Vma +Ucކyeގ>ԫ/XV=ުmD'FqZh[ދƸiXF0>p# fAL&#jM|H(ff4fۨ fެi&Wlpt>3Kls feNpC5_X2qFʾ"^%:pjjY:g75l y(eNؕeqbRq/Vî#jY 'rre*a B V|$ 2w8?Z{V)~K/Jð5pgiPPN\Sk^Cu[pRVzl 8ow=uvjA;L'N/srxI@O\8`O33np(D g.8)oj dzGDp>V3Ŧ* E:q"w^k(JF,:a*,EF|Gv.߄]xj(W5+E7 ŤSE42yH|qi|Nͯƫ5䗅&s4囄MhFɳ'MFj]Ӟhi[\G4R×?!զZz?JSN uYcV>F_ҚU7K{qOmqv8zRbe~t-$NM\8~;Dz:>²ڝ. +S[ӝc[ iV`MC1oT屮wTϩ16'UeELvUYtM<%6O+5::v +cMu +SMcnSM} 3O+E$=6h'+oA&L?4z.KuU> uL>*No +H./l7Ѻi}Q>|:ov}b~ѾOt\_{˓O}䴃|o'_{+c _34_>:M^ȷxw XBɓ7L5^&{bGW}f vɏzY`ϱAxP8T+ٴS3ºf|:UQ{3\OU8xd6(. ~C( ?~S8'5G=S\u[:Up{"tu9M+ 9J)'9@PCvQ=7ćn*LD*ݛ\ ]KTt1[IQNvI +[JWz, [L=Tr~l>b}P6-u)fӋYprE`n99.b6%a<E̡V0"R)) ECȥgfqJJ4oVݶSe۝٪򴣣vSTwlCKѿRy*/-"UͳvUELuRk69uGu:/FU`}(Tb@)֐vUOkM +c6c>9b8uM\'ZݢM\?zzŤqv5i-.>d~/n }C\~nmH+5f4)6AV.fZS6}B呚:B7y[M_SaF`U$9i-%mI8]>GhrYAZsWNMiqMqHL慠{f`R|F$XQQ`5[(L} +Gֈo)aOE5p6QdL`y#DqNCBQ;hhr(otD_91)zfwi3 +/64wcV7 V`ORa'>RW/RX=:_Y;RZ|Pð:F;%bjPoN +VƲ@H\ƪ$dJJ=XZrHV{J|4Q/4$mu9+X5O$Ku M8 #4$:`ֲ@jR_MWRꭒ\JzdWJn~f %Gv:S!-{ƪ;HdԤ3P(Q=f%*cIw2JQPݢTp@:;W\ +X`lp:X@cT {}Nz_YKĂG>_28Ⱦaao1 `1 Fv.)6\f0wVc ˍa̴kF&̈|Q!c:rZeQkU&^:{SY7U4τ?ݦ<׊)yʼ#heo$R-h϶R bCLuU>˽/bMJvgEFtcOK9&E@؎=0̍2`Q>5Ä.WzDX9Ujh2i(2j+<4iP7} W2{RjVUHr]*z594:9kgo7߫%ߛ|\g^S"=bf'{J|J \)a\)YSNX ,jRSi+&ϲꦉLnA*L6nw:V$o2yuL5뵵FO~2M#ggHYmL5oi,)uR [뤹Ie_ԧΓ~W=UdHˬM$ϨТYGi;{9 bu:*cj(z`~ET;C0S݋:Tu2}xbljD:{3Ǒ:~u,;qSu(}5Su0]{:Gۜ'dΞjszO\GMxbVSm¨hj&ժjjM>Q\Ui]~v^WFnTO($qPr+V]TFy[@uz=4YjɪT߱<ƩQc{ QlKu*մj/i̕-U(v1T[)3Th3/F~`/3:#^z5Q +f9w%*Z5~QI#eS;|.Y:Bs]|2[}aQSkA</{7M~9 / Kzhΰ@6V@!55 lԐ^P@GM2\=V4c*|:uKwJ7{\HJ|Wn\BRQuk~Prv +@"dr5s`%5T! B*7P MWn BSB?4,YtX[n:TNV[7eW;y=31\E%>l/ח?lMyf&6rv/.[m#ڿm/ɝ۾m_jCvMc,pn+j9:I~uҽ[XBy:GKZ(jcuT9۲rz|Gˎ [n<^)k!\@oohe +Sު.U1I҄nI]I[bMR/|GrWzE1ŢRQ zߥ*fDIRF5sx9eVyO)V4{2Rވ{RfD\{rQ:E;B*/w +U ?oE*wSmI%+ Oi&ᅤ<8`3zj Àu,偐ȁk%^!3)WPەZFTvk>~PuJ,H]DUv zzҬ:u>UL4xTLaaFDKfS9LLf_s%LRky/VߐL ҧt"2Ç7r1u4z +˨w>+JU1=j :up:L5ث~FAe7z3:)jyyv*FjҴӘTgUVӢ1^*Ϧ{؏=FSM;$5YqYj%~VC]UUnCQmv{?uT:"FJ\wN=P v*WYzF}T]n2l|5Ujme/\@QY+5v27wջd9L*W;ut.>2]k;J뤧Fa6%4lfgi7,=,3yfuNXM.-4f֒ɡV%4*&$XYLIը,SjNX2^ɲ8%W 9e|B>e|fO6rn%? I96٠j?~.?fY~JiC/hޚ1T\l3*4Cvx)@6xyoii1Be8uN`:ajHMVNe\g3L~‚21=cWMs]r(<l;㕹JEkb 2/xkLn;PJٞz*oy=#HʶۦΚ>TxVQ\61jMY5ia|vцvvѱ +6n~ ?e6 VvC1f;Ȱy-flض sU/P0G؛ ,U Nc $αު,X}+lO[TB}E)U]X@w|S=fzC3)qSduĪ_Yz%oz#$XwL&ʲ ;R2qԇ +L)Y_57]~~f|}F~MMf̎ju~5go쫫˻kT3Y,͐sy#-r4uXiڱy-kv[gVs64efaM^UfL-;MX4Ʒdưv]kJ&7'o5r mא=lng8n9YZmsPXtv:Ŷ&5+PWVgL W45nXuԛv)5ռNmyrGW9in[.``N@hᣪ\e:+c_g ~QM^B5D&.w(vPˤS$΃UMdsNRMi"Rɪҧd4Sj37goUSU%Uɣș U'jSvC&*m@׋LjUCU֓62qUR0U've3U n#Yݻ35Y LE%U̔UMj̜2i9X9qWzMWUZLZ􎲰"}ʉ3cʠʣϽ**e{)*dLvUV:e<(|(E7}(J'RܖZOݮ$-OTqR3/_qP:1=obLCA/V,ޞ/]5ᆿbt]Tτ~Q7Q|iQsۍJ#bHD22-2ڱy1ҕG8D(siQҤ^[KMG8D_}A:wM6cջJud{H3K7>}4fظ؈ i n!Ғvq鸡cbCK*D7Clɛu!%J{9On,b#\X]z{hᔺ>9 l߹nIS7Nz4lg]t|ȼ.G:B-V :%P;Wf^iAgjWKNwn^hv4gIAic ckOH? U[*-0E^/5`ҩr- kKshYSS% UB_V7j*7ԭWumi幾Ϋ WzTMtߎmRjZV곩M˚.Դ SٮO5+kj+Kzm[_W9ݛ깕[fVoJS}2׼է*?|8jڞ3VvY>M&~.UR:UR&wT٥\PPuSGj=uET8eիɺV-کT6ECWtQ_[ e zt9Wʠ[}籲=UǻWvjd]ˮWw%VZrLSUv$/iOƓ=MKW9&e'$]K~Z+ž]Fv=YWֶ{;t[_+޹GU e=:o_Q׹CZtTU*K{ת{2Nz+;1GDUl\ǩ=| :^PP}]*zra)JaWC)U]פL.lߩʌk{^U"CS%:P:*QkKnZYyzi;s+T WY_mIJ^͚L5mڶӧ2Ͳ>]*[ljOʔmFW726\Rӵ5}uL+jc?5=[}짐mڿJZSsenRھ-/)u5li64p^K[lQY4ܩY~߂VuӃҒA=W[ =(?~IcO*gH S +׀K7WM/ Tdߞ\*VxoP#ӷKG)&+9^3b+Ӕ^*)_{vL\\號9r2`M+2 +(5TTRܴŤ͕ʯ'1kEV%R5uY7P|iJ`Y:%\ +v(*weP-t=UJ8{ +콲+u//:8>9VvHʱ6Rq W崭U?3:J=]N^u[=oMǪs풦ޫ˘ZY=C]nbI2bSjŶO&TW(9j;斺 Ц_o5'ssP1r k5.'s}k4w&ֺiYQcj4V6y kc5-CֶլwؼT a9'ϱ.Msb[^|]fŹ!u4-5WQ3,~nM_Y|RMY75)fkfW9o5\WM&,߂" +q]eFٰL, PO)ʏ=aLB Itc< nŖ &;+ +V)lG`A-==?_!Oc3e,6_QP(g gxBX(?`vcv'𛍛ש_x79l|~ϋa/'oߵf~ a߫>~~rQ~J fg厥K'/woVx_>[?0 ť! +72~]z824]zS2Dd`W+=Npj ᖋ ]0y~Aڳ "8.E -Dfv[ +i#p(>@EpxBWÁ=t ++8c5@$"e`i(o- +M r ,Wf +^u,f#h}%W ) &M(`tUy̋Ӂwm.41~$D` ]Wʎ3.z'QAfRUɷZA;J%Z.0,P -B;kq +CUUiqA9kedK'dڲS 3rodmxAv JW伽WdZzTEmN^[_\˫#d&@OĽD@Qm%$ZV ޢN&MOx& +n7GLf$eh1aWƈ>:|hwgѥSC>e,:u3SKE/Y1Atݠ3ID7?49٦t_ E1o^Öbu}nXt62ONj3KabŢ)?u9{ ik@hώ~O EҋUo}(w:/cjZ(߳_zh_]C-`΍<9Zt"*tېEe!ʞ|`17W[I=hNtxJB耟f߆֯a[uW4-Y٢M_uK/xt)P~A%"*Pתi{C>L-z5;=:\auY.8"= P^4Te[.JO^&yvurբ5 5S,\%R8%8Adkaa7pZJ:~ɟDs +G*\:aDzͧ͢[k2=B'#Wt;sD{uמ0'(rQԧ]Dsc"[6f۽ꕳtcp}-Cul< bq9 8*(gr 2bY9䚖+Ps-X ̢} YkgWΞ-gNؔ^}9Ʊ r߁c* xƖypO ϕk)*Ƿ.ʊƲĿ<%$3$hE5JF(e ^\?b:6W#Ǽ?b'I Y#Ǽ__w6&|]~.xWq6W68@t+I / 5ثJm޴Wl5%Xi +*}Jy ~{nb,M~W-+?}ׯ_ 0pAsٳgϝ;w .\xҥK/_߮\rk׮]~ƍ7!ݺuwܹ ޽{Ç=z ɓ'O>}/ |ҫW^Cқ7oBz{H>|ϟ?ҷoߤ*!UAdՐj BDA!!) )!1TԐ4 ?#|_h܉c4VE1SN#ރuN#t~oMB]-I M wOxCG|hyј#6f'oxo +VjPW?nonTp$knJ>#u.k?^qЍmOwB|_w ?k|.׃.nrDwwg,YV?m47lP9vh8bOg4bS-VXHa?|g?$سeBL?TNO>lNąEąDĄEƅDF6]vwlT;5Ui8#>ح8dlq;WnJt@3-\^衉yqmg's}{ە)"e՛.|4ifm[ɬ5^fޱ_{Ae活sGսD:6_t Unp+6)"61ZxB~Mtbv FlS<֊g^}1O<yOrc8݇J>#]*3c2л3Mz0|qܓX +і-@~ +3 .6EyR4#nQfʵ9Od eȮA94>}mұQ"^+?YrGPUm~#+ɽ>(Ė~Ė}{7~1¶,aW= v~mzR~I RH ݥumVvbB{--z(k/MI#B}N{Db}VSP&ټϛ;jYz|Q+zAN&l\|+0(/x uzV7M./硏hH.Ʉ[̾/¨OЯUa%r9!A8aaN0ABm-BS:B~ +!Subf"aBp~BLo/`'e ͛HgX^*IO1 M %̽M5, I8Mc;m`J`"nBoP>%la؃&O~ cKMY܅#,y/]Nn\Ivl6gl3xNS <@';Pȋ0N҃g>z򂹊l$[T\4||B\EgJ#g}?G/~ x'{٪ɘ +W$|;r٤ag$|GrZc2Ct)Y|vowK͹Ims|ntoMB^}NywPZJ'aϒú!?N0'I=i_IG1Qr iTB;Hœ!S&#,K!;\M?" v0);cɻ!a^ c0HNHo6NI{瓵Zڨ5$C2Xg5da~"[ s'9;Y2̵ܾ$T7oœK&uLa%3]`u!}'v׉s#}Ȉa.'s$|lGks-9Iew5֤hK+H0G[Zl<ٽ\VHF%ɞ`Ƒw%/yC,M.E&Ώ9I͏yA*'# 9Jւփ/zքIuMamx ^><ɌF<ɻ:iJA6N a͸S'q#opJ}m Կ !~ #gXKdf''v)GTGXWKfɬ]v[-5[}-7rzXs6*kXw6ְo`Yg-a ZdKX䭽-HGsrHsXޫf.H3X>MI֨ 93֩ 1Ucr1Wy{֬$úaix~y+1ְ~ֱnkِ\fِš6 r `]Ɂa}듊z)zȬu.taQWt`~t`M/ = ʀ)8߈\LVޕWC] W)@uޑ]xV7{6}}OHI Ojg~=I5lY0ȭ]x޽jcjKiG aװ_jXծ~ >XvNeewԲ |?v`_w?SJ!U@Ȧ`l( ^ T#_ـ㍘%JP hr)4 @W@+. du-Pe_̀>[p=3L0_=T@?ƟP*?]L?3L)5Op%* +tiDt]B6S(K% E?Mv0&="_cp1rلHmBDH!$#J!" \H`GBBR_x/a—%!|DF_p3o͗(K$wzv@?ėH uA V&\gCyipo6{(3Ɛ`GT#we]zD.g.i8 @# aQ}! @# +D HqBC9@> +_p} +8 힁|@Ys0zD /@Y@EPPܻ m2+>_Ȑ{0n}x@1@Hxup $?a܀ +@ +XC 5@oAG2P}k@7/+m@qˠjhRF|!*2@ P X,}"PH'.z>@>Q(3'Jy>\ >nO$EPڳ|@5H@ Bvpn:w6NЗ3o>Os$ f%`|InN +;8p%PHm C&h` s8 P?QBȖ\ԕBąHww!.Dv!,] +BQDB?OC[ p=ԟ(sA'\#Q̑(\H$r$ [@d` tGdHp$,v`}%~D=?؏HxGX!Ї3a͏(]r 9S%u~DV%#JU^D̋H",YQH{ +/^DjE Q{ Q& $pS rߓ(zIT<$_zΓIXH="58( ܣ֓( +OB$ + yDYl@w w ߓp_:@?{Cs%|7<>+}ڽI$Wރrϡ[zϣP3ȋ(EM"G/½ t^.3t H "JQ͈bfD{ࡆEKQD$$͈ubeg_8C fH7$&ŀt3aHTd9mb!Qjy*p[OY{!Q8ߩLH @B(Y ϝUpo!QK˓A~!O^ }lnlo=ϯ0sUC݁>{kKBSh덖O}Cns mB+ϗ߇?XN%ʰ*藂2v?򋠼 x euZKy5\+F Hs#"Z_<`K!|)\C~Yc~Էk{-tK(c #M_hDȀܵx:T Pxj#C zjy4 @D~ (1Np/ A?)0ސA;Po_18(?Ȁ6l6a.r|]b>]e@z%` 5@~(_eqIhhs¿Q&ԽA9 +hJ »_/Pא,xD#J\;(=/pD@((lm#RD#J;u}7їG:Pv(7u9G`ES!?GB09|h'-eS]d#)n:z7Vû;m9]A- wWPwxwGx%H~ +K+:|"UO(1e x6؜]Y4<\4Q (F$^B+0^ hhSN2V]>5r{;K +&?Md| ?率;~~c=lO{f{>w<ן߫!)"}kHfB w k"ٚ(t0(&ìk‚ %JEDI[(NP5>l0"y8 с<3 +#dD+ @DQLÈV~{k 2p| +&(ʄ1 FÈ +;Na{\?Z%+c03ք[0D7h)ԭŖ6D7koCb_a!!҇ecm"+zK$1 mʀc?shƆ HBFt!JF#JˆGG( m wiȓfq㴷G^?iҏ\>6C^\ @àt΃~gj[wCp&AT?ۖ( ,[C{#E CmrK #{E>v13(E +%( N/{ Al(ip"uj8"DN$QI$GEBA" &( t!$*,# wH#RcI$aa<@Ã{Iz}~O +GeЯ=u#AFAhh7Blp@h#a\"DYEa  ȻA?gz*^UQ*9H+<(ʿ!dqہHJ 8ɀ"@.p@ `QP BA}@ >< ! Hxҟ@[O@3~/Kg_`\_AJ0 +*(V÷÷yx +=QDAQD}إP[O[#Ψ({f9(E'G]4΀'C^nQxoE$ h"(l-yA!жt{k Q ҽ J<-'iB5!4(u% +\fDĵ!󐎮{+! ]aAY#׿(Vhg+aӕH |HEyʋ]<"B>yiYGop&JJܼV&Bܽa}xDqSo"˛p_ kx9Hyp/8N5}^ op ‰gDY9\ '?^UB;LgX}A6{A, 1AVFF%aM j[ +y`lPܻ/gpOa`< +Sp} x~Zxg4w'mu݀ܔ^Pp? $5 +(!GJQ7E +@1h $}+dONB H@iH=mspq]2k񕁴}eE2MhPnAYqJw<@H er$ B-@unZkoZ}|Kz;_ol-N[t~ @`Kh e'Ljضd! p%9pA(Au/ӷ]n.j`<0@K@7@`: ʂHhGn{2l;8[ߣvD1Wlߧh")ɂ(|Mp#d'`& +APo +,`M#hd17D; +2X[6DPeYЧ;M Ёn~ m5Bǡokxw=dp|R/l(?n(7p, j7-Ӣ3rrߑT1/&-ޠ{#h-\?gC9fϻßF<(j,6TF7`c9L+| bοY?.>1&徿i_@ Qu>!&Ê1qӊFX +縖k{ƹpjqnjqjm1SZq ƵrAĹ卿M,h\۸k{~-۾on?G}uo=8|-~px58>7pA2{qxqx1K^4~~ޑsxRun#XO>×s?8ws܍#9<Çrx.Sÿq~Ac#w`o8<rA_9G1ޕpt_8:px?o8|/_8p ܗI#8<×ro8\ᖂ>r/~p'g8Gޔã83I>7s18M~6b8|)^?Xsx=8<ûr9(_.p;pxw38| u-~ޜ[rx +l_[9$?JX=9\9|O/px8G=9<×r~o8\?pC9|2/-~or;s͏܍8s9| +9Gޜûr(p*9s8Gބ#9 )Ïs#p;y)ÏsSWp\9\9|-Kë9G9gp<_G8.p&?r7'97gq"788 Iruwprx'ÏsCpܟ9|4]~?s8σ?'r(8p^Q>wq j7v>8wsyn#x8|oë9GޔÅލ'r793Ƚ8|89+8G8O9sxK9Gބã8 |_8Wp86?0Oq>wre,ȅޟs8|-^f? oUwq}!$%A8NB6ZCN +˲k[a/HZIOëݕUz8 rC[pBR7 8`ڤ4h>JRҔ;7,ÿ{ܙ3sΝyk j"C>&:ǝ ><@[G ^?)gJopQ n?*c~UMCڢSpC|xy3)0iBXWXdGeLt`g`b3!"m1%oGGϽ@>|&nz7e;-r *VPҟ?JH'=8g?zxK$Wg}N79Q~』u0}OS߆AU?xjE2>i9?#%{C {~Gы\E~s߰V HOPL}{BT+2.۶[Ǭ==!G}8_*oh="\o ޿8}!Ώ*Ydx.Ӕ{0}Ng!O3}ojfo<sp;`sO{G ӄ,g:`|rA>WO_ilZ4x!}S|·s^-؟#{G,zXC9">?oهџߊso܏ +3߂ 8mO?ٸs 3SeWQbOC}&-gDȳ w඗Q՗VKA oؿ^ʯkOAZ7}ے,7̿m zv0{ǃ' >>6a=ho1|C8N̷)?@)ch~݀',&˯U-2C{1ˣXx+x'8vE<੷~qpj3Ηc[rп>?ܻug߃ȿ3<x_H~370{uY?{>m}/San)!g,П,6e'{-ؾ~9p0/RXYп=_% w^A8B}`9pf!Sǰk("Gmţ`A":{M8O9s1^=k1xAx3oECsOφB?xnOqEzZ );h?]1s>K@zoGnEQWV$.JI]-P}y4W)bs'U|[V%BCCJmuDĆז$T0P"5ɷWZ[,;D;X* Q) +p5޷TcǐFʘqWxV6SF]θ ++CD[2qKEH+.*DOMW2%3E ,-qQ0(s.VMRYXD[;V% +dV_9F$WRgBLwY4 6wGX[iK +hBpa$`wT#Knt>cnE3֪mhҊWk }9{&yT$5ȣ򤉲$5!ᾁ@Uт4}- jåm[sL><7?'S5V$A%  +$ulMԱ5ІxcA[ Ъ cGvt9qplcvtJ[(MmfivI1\UKbUGB2{T-tYgs,`(PPEH鶌LRMb`<1ⴖSr8T\y*qErG\*W5^'=7ORqVI|q[+AZ4Ģ,5K-`{dcJJ4GrB dqG$=ZOe?pL%b|O|+9/ +hM(_\Jexu+KīPd(d TQ |sFB/]J&B .CG\Tˑ|k4+/ˁvϓ#Pާx(:yFce#3Qd̈7Kw%)Tפ2 8fD(죂%ĔJzX1e)/&]x01R Rb_75o6t21\cņp'jE8l2wNX4KlTaUp*+ՇϱI y1'2;z(ƋYHQ%"K.mSU;M/ƨ+H|WMC7WHC,#C}'-M=[|.n!8_w!fK&VܘHcG|8rϽH0"t'{0YqaJﲇ%*u+qٶ#4XŤaXOn Ut<>C\v(KPȒzF=[8Ryy*:BSjJ "hKhwUCbL!LUSbLacAq8H֫!!JzHs n dhԕt| +T$B$/"1|owN%nͿ7G3tE[-t1e]Ov8Te l]纜滟\ IgE֛Rd) +ܾ0^BꘛT>2o.a/Yz+YSԩ[s'Kז-MVʒh;iT(;,\>,C͙|UkdK/hmcGVc@C!4lufJG"YkiB@#=e/`a˗*[z,LoOpAk[0lkхXI-zo Ls;iV@rW-RM |"Fkj,b%.9&G"ݨcF_щj2[AWViℙnU BJիhGfPN$u|J?n&Unkې#sfR h͠E\D+>|b04jᷔAÑҮDiM|]oU5J,Yhk`0'LQzj^yOix'35cL X|vMZ7|%tu 3LQAo?F778jM ]T~7"gdүݥcWg5z7lr[y xX?B6[Fd*m_?if]QfVaHڇޛj# D7c)'Mc:{*5"b`a`f9E{m\bv>:΄i3(=ޣDžeSѵG.#6qWT4?Xkv\xp dYヌzKk>I4ق#5|԰͏Vߣkwh83~2mt/Y*lIsg w9Ї ͻS}w+Kカw06ᱰrb1~ W =fwknP54Z_ _4M-ᨧitO'kߤj]s4cvHQw;]ߙ߇FM曆g`4㄂'gʵExi6}q.KNO.biƜ< FnE4q>Aٌ7^)҄{e?PK +ԋ+5 jre/lib/ext/UT EEUx +PKԋ+5@P<@vWjre/lib/ext/jai_core.jarUT EEUx +c-ϟ/ש:e۶m۶mUl۶m۶mw_ϽsoϳW^+r~QdDƖ l%3=eDh20O@ϗIˈ+*HxOn DU)i)a/kh_ }{ ɭxt0Cؒ?"#+S'Hrn F{5Le 6ʧ߬aek_.Cc?Wh?@ ~ŅFndqyW%5YX͘6[̽8BjI-7浝d=x ִ߳6FNNl24VQq|p?֖˥us5(ɕK=z$7 +5Z^~vނ=}݁{4P#Sզ 6j'@ n]CYcS$<k^eQ6 \)'Ev+qOcu&j3 qɅl<4s*3X%+Hiwa? +j│J #IZCZD[2?ԡWʖȨ$Mj?G"~[U44js˘Gs>"\"(SgTQ"9VuRX2-~+~F:xQRT@eIͱwܟgX4aG~=E^?}#[k]AEb27 ; ^MpŘ8&a 9g<._|@N$Z&G'<-6_t>r˲Ӎ/@.%/ǝkY/Y y=s=ZW7\7jg;Z9Qo(pQ~(O)JਁzEoO;)7 y<4gyj + bÔߑMS-%?R=te|*s3;2V,sGtBqaW,=^ko_ GܶׄbVQ0ª9˸{ + Fj a~!eC0%")#[eMp.1;T^`;Bs+IߢD ״ 3>_CEYtL 3cjmSbS͊@oqRplÑEG*h y>.0b{݋3-÷cs#aKe1T}d@xY:ɲj{iΧr=iOkYb) +PY=R)+4·|!wɴˌN^U+&JuK'в9E+Hfdicm%-ɹ&~WGaDi>ktm>. *l"|D;GpK^3?%Ѥ>s !N.UڶH3:Ń$r +Q Ec,yRze J2~uV[U˖fnW?A!~# +7س&QXlr:LLW|~J]b;~`ø1;F \P0H~p$>1(liQ퐢 LrT2#\|1mܜxS*\|.4sEQᡈ׀&ynQpӤ&ܑɾQ\ f6s>g}F>tl}nS(ߍƲTW["M4HE_+ [^JPؔ"lk yOh[#p|n ^i$_'/[$]e..AU._p@ʵ Dogv@fh@7VzbfkM``_x2TҫwlFž E⢍hmF9bL_DȾtTEoom*f Fٗ/z&jG3a} sg>qGPbY7>[f@G!k^)w .Wr^4i\3pJwE}ɞʷ:\7 W?cg63Xwbqkfۊ`GXx⁶ǤB} +Ê&]\:#Q|Sz%1q~Rm7uKhl YqS6 |p#? E|x_Zڵ؀͑rY(=,a :+J69`m؎ݙ%f_ mJ1hD 6/(X %ı$y]sØ$U%{b]>p5ɜ`Td;b^p>;&ؿ:|O'kTIXp0oġ&}G%Rl5OG0y,"K]n+@7&7tES=@4X~Y_?BE>{|?B4¬taϣ+mTg4p-i2PkY 襵6/GjPp7B0Ԏ5[mfͫ|ة˔80["(7 oWvtN|4PN> NѲp< _SJT:Br>%U~\CyCg$}20b7 v4vX6~ki}ڈZ_f4Z7CUj 鞶_%m?YL;-WXRS@<{w'XN y̏ + q-lW[PK;{ hW^/I{@P^E' AV.>"nBԈn7ՉŦ)AY1/XCgzP Kl74\tBo~}ɚөF͕drjg[I/Q.[''#s4Qq3rfB9`%|,_=oY?h$?%1)mi`٤,d%rX_'C$5OOݙ*#- ?fu LTV%Jc }Cx"/Ƨj&[5a`k])PƢAZ躐Ca\j<cQ X:H|urZ (H`_da ).NPt_x]CQ%S H" 衻*,6kP~۸PC\u041Ӽ۽t!tʍV +M6M!z3i}Mbr@Ϧ,HPUBUQd8qm%im ϕb %[$ +YgGy/OtlGe2W!sIDlz ((r xo[Kp݂DF %+=ÎH@ tfIEȽ£ȡ}# +$# ͆k&/%fP!,l VT(|31iփxX߸Cq7df3]N.pC5@ 3lLm|~+claũke:Myes&*780׳7^Aw{60eVhu}̐ %M&dP4 nsfr=p%S} t,5v_Qe-+/*)%,$/X7qۚ5瓔6[S~%h7ͺKg29VpKh`FpO*ݔzMbP]rgCJ~ώ`7[|AN^xz0<唩O"b0F .8Bx0A6j.0\Ŧ1RoG#`"Ԅ |_Wvl#U1}-ƻWCb&Y{^cE^f4 ?y՟[ $Z7I|aq +}̘ژrB/mo1@969\@2rƀ$13E'y9[݅sȨTL\e翄ܷ A0}++}Cȶ*NZ.& + Rbuȋ2fMB[&3B$z!!Q4X 54x^wh:$eHEB޾}{iMn󠄚(%8z~Gl u2Й@3Q*jDԱtPeZQ:TRzٱpFJ^f%:¸rA? y#u|DF IpVkA!\꓈ߕL_#zHuwQ9sg6FCc#HզO*#E'"LO&1љ)6z9rW@bDAJ/-kJqɸ IZ]/(9פAc+$"f.ަ"OƦ.t[Zc&[zW ? y,4z$ͣj5=SIZUѡ}=f(k#TCk$J55|+gB{ƨbNg]6N b"3"sBwN3*i?5ї2)WGKBhkW6ڭAԎ1w@ :pyncnCw8@1Н-h|1~[ANpmBz3`@#ޔV^\l_K@|s0UHuC=1i#TA>{vwY{[skjf  E Aiӎoe4|~wdhL^eu-%>Q[Iݴy:wU8 +ܧaDa8o$"$u  <(XbQ طtValjA_|$(,X9O8ڍu?jiYStxh H06h%.zL:D~U(LTKWh/D}*Bw3ҽ@ƫ%sk<ZgohlEyry +M`ke\=9?A6)#;USxqx}߄ٮyQۯC u1Ik'W&*'F)ב؀,#q"[ @eWJl5-FAYpXY@M '3 e3&ҢgYʕk"A `trH}C=E)XSR{9u>q%/0*@pQ՞Gr Ǫ"FW,AJ.<ew@P$ 1D8/xIw!̅'}(%T+B(1 }9ypU.>5t[«KKM5bvrʻbTF\pQ֋RbUsB A +r^ +2)$$] =}7#d$d V}Zڼ[4rn@7V$٦~GõM} +r+=4r,_Arkʽ1ksٲ>OLˎ37ߴtw#q00NqwcCLEij!2کC BHHj0d%Ķ7Zl/T[XUnin@I.]Wi_v|QwLgsqxp8l;n?d}t>h +U6Ii7A&א`ll4B# k"Fo E$\"Fx93(#r@$Jyz?zv%v|6YX'1TUK}}Ln>YN 2"k |.V/NBr\LfQn:DiHh0DSU"Fե:@MKqMz.XDKqeȥK;GwP5 .Q'S.8LDphkk^x@!}oDNkkZ%6ʝ#ԑXW:Fv]CqQh:xq5JGkPdҧFwTN+ܗ(/DAAzpЧ eP6j2DIor}`y qV44 dL%Ra|zE4JR>k +Nh*YϓTdU)>lNJ5R1K&O:TݲU5@A*GHV=r,7'LM%gK$fjfz">eZ'Cu,$yjr3K&#Lo6ucv8ɔdt)6E;|=~Jx >?}HS l)ה?M!-NB6gl+Ϙw"#<1H㉬$<;h;Ys'v0lQR +$ayqnps~fZm[`t/|F6|FgրY' 2Ώ|X@gYZJ#ATG)Hv`lE2@c%0?v:̬+s\#' *j2Q= nxCWmfq*܄FRV+}+K^,f9TqMLЎ&lysj4`4QWZmsސ0qk҇-=Wګkrn +8&Gg';oqu,@7ÕGtm4h'jCEL u9 ͂/&p,m7des kE3~#: ڬ^(C̶[C +G-lD!bUeKW7Jt}y+c Jt F3Oێzh}+pGupCKB uKzw1׿+6@1lͫoč} +-0Xc(doir-q5g(@pP6,^p6.C ܜ%F%0Xx3BjѸd, тdB!1ϢhcžnV1p<5GbtNes0K.j>6 pOg-Cj-_"A>|Sd=g͓OjKÛE}!@~A"ȈU|;mkhIrK?=i(RMtlj׎JUF!덕3>%( DH_Ȍ" +Ci72<ḉZ~ )33 =qc &|иw7a#ʻsH7#)xǠ*lVڐ*El랖 3H9Ņ]q$n(;[1映gk5/#Hx㷎Lxn)-KFRg)e L^Q Xpq:8]~ 7m/n$i3l9߁76 +ۨG0 e4}zn e|]o UN=/Pgv;EXU;UըryMM9;MAȏ%h8 yʠ6wUY2q}f}'L2:;jimUpx)-萚 ga',$Td=|RYc~tn/KeH*7!J&x+{!-gPM~P%XgZ(bCCMNR>py= p~/t] ;+^0>}.ʾro9켫]N7t U?DU6E7 |DZe3sTR;v0nRU7i]542= +1gAc(M,r/#ߍe6k8o>y>89.9@Wol1­2>1'H@p_J{bG$*S0:dE,Ea:"XNz<>-hYhE"Z{C؄Q)F%:rA\d!5V뚢eUʿ]1cK*2KC<@ztJ` F/O YK!Zф"+&REiZΒ ?/wpX9w\<O-FGoSLFRP_Z91$o8c/6xmu҉66yN-Y8dW#>Pvׇ407Ƿ807m1#Lg$xdůIya>3cb?Ct%bߑF}1IŲ }en5tRBN_unuoĿcCRFIy>{?ojMЙJ֜ԉ6m TWdĝ0 \ B mBtQXj&wTZ1/Gxg4koHj+LO1Bvouӱ#Z .iA'Ja@(b>wUJIٓl̘ *Dn,PX)nYV[ɾM&ԉ6]I;_ɔeX9jw 7Ez]j$t1|TJß n3ݢ|f-e9'n-J&=JX G@93}OyH&8z{ ͋9%⍵(P9@5FekΝ'Sz)X)Zb5d--mMN#"8"K+2>^E΍*&awrj/5۟#1nvޮ*G 86&JTU[! טg,Om6O"*y,6?Vۛ2kdP1Oq*`.;*MXtL KۋΒ2A׆m~}}VvIK ɉsx%CYD@6o$HqbP9k{OWL,'\qH3Jwvh _?-;x'c˧ p_UXA'3F%Am9-} F/DreLz'S4ngtPo*QMQO݊a" +yG<˱qOzJT1P.;QKVOS\сgf8LD޶B ZVTVDLzL6ZT`njauGU1L5p M{ fazL/Qv%'~Q[=liu(b0b(I[],W;!W|0q/j e_ERXƸ4Nx&v܎p\$Did2+zځie-?j*_>M=y\j׃"s~BdGux,ECۉ7:PISNcxtq(K64uD++t#/?djK||4RݐC!>XTJiV /G _^w}lܕnj:jňWrztĎuD< +x xqTq/j^i$:lu +ʌ*^`Iy!YXR" +$.%^.m (pbA҆NJYG'gF(cf6{ʲ_nS㽑FW( )"ߨ{ s\jx+Kk7B-kT,Q%/o Lq*TܘT-=4-+$-ԛ93Sd*W40'JTv4V6U6+u7/ճOC8,e2ػGH:BzUƐ8P/P!e(H#[4:GEBZ \su}k D ܨ#>* ]'*Yp;>[6b3N'[H> q$fmg r?_icrWQ+;Uq +s<9竘 {W3=Z3g8g|-?p*Ȑ9Xkkk?YojmÐFX(N>5_Đ6/C1 1׈)ML0I_.oLR.21f ?R͖86KMceD XyVYuIko|LVpV-*-'Pt3ι,!p{T[ͩcnmI'ܹW 79A$XE.;!Zr;!r07+罖W9F}rW7b'p^N;!K$<} $[N;!]mAϠWMX RN/64ap3]H+1GwBU!NŽk.˃901j$ɕ̫>ao'frS:r>Q/'a1BguUUEspco%4 x +8E JBFKCy] AMˁLw+D䘲K&?j zҶ\s-&Dblո$'m}ׇSOC +H016- +}TRjNg|LkסEV2ë"$Q"{vTh {JZqb"l87`qdS+T;;d8 ˀ>~|T}K@]O`1=a8ƨ)R +LnEt6Uq{bvSGu}fZbX 旆BiEkCsՉۚ} ˉ Cc|ф KL$S%$IQwBl,]]a~0_KbO^n_QR$=UuUq'C,,"V ^Sa~F"m(/m~̧p@Qlsf ~*诬4,hP^|<j +1B<[9LBzsElqD.t ¤°J@T]S%ՈQdUYHBE(j |wjO¦9BNW{EkœV+鑊 ciC&X+/"2?tj^Pڋ iKc_ж&̍%6/S&8;If+N#Tpiq8$w0)zmw0/C6a\ł,CR0Ta.5DxDXS#1 #<B 0(qokKGOC%tb<4Z̼+)xd.T5jۥ/x/x/\4\Ͷʜ.J5\- +qhQZBuiHPSD|z]m@;7SEࣆC%B酊 Æ;#g*>kx\X z:Z>k:ʓ5¥NA1W S~8ޅHϙvqniI3,c5 +3@+NHM\.b8I,|BZŘz+NEV 5)sGcd݇hxO-be ߤI&t6yr `:Xecl7oBmR2O֍X58e%c>ATA\I\AT Y )ǩ;͆akScLp{]$,,NȱqFTW<.=Y"Ȓ4,4c|SH `s-cf;6tt@pN5kq p*/q$wMF׸m.0D|$5PldtQuCz^S!-ͼ]" 8@,Q5@ nF iFiωBWh8MrT)Z6,x >E!YfU1%5IS(%S-<}ˑmbah?B'ůOg!L}2S[$wJo7UlڒF}u߈,d+ xhW,EDEE1DE1EDEE3DE3Eq\Y6%Nm|z0' tbCbHDX3AFciצ]骪6Ԭ\JJK˹bO=gY H-ceHrHJ-]SM;r>4l493kKﶫO3Yt ͳ(Z"ĭM+ NW +]Rn0S#eS5b :RQvvwX L2Ps"{ub4_̻'vC#)m}WÎv?c* 2S~r8o遴3T0Ӯʩ%+G-Zv0A6sX.wd61݃̓l,1&o]X~.ž)Z;AmЂA.<)f5*:=Ǿ[@wOQglU};;cxx(6)aA.WA > Oq0ɲV!~Ͱ1s%o$!5<1<8fdu5{]'* R`Kq"]#((LB+*4u.^@ds9n;ѯ\4Biµ'(-H^Bl:7hY߯]Cwgd(TRe,1QD-Ie(Zΐ[4__n4aSqx5v!?CY>]*MywO0cs>Hx+ b E& ~HHMEmtXiQceRt:]5+MQCV%m_vlQdf7.n廕CJ\n0'V67 hX6z6RrEv +GOJhHQJS5t袰UUpݣʿ3@)G. \vLi圁+о2OA bOX~E.<-gC8\r1ߊ"4{]vI;L 3wT< hjLt)bVEGxz]Q۔o%̑wީKI0Y_I Wهoe&;训jxXeA׆B"'YvAטܲU)(J +4m(J(O}0A61/hAS\>W -3̹&9 -K540}Cot ;C0RXpK׻  0lNV}_{yd>xxj–=ÿ +H,nd;L8pwcd m\2/w d Yd++[ ms!z C!5.W;5ﶧPNF2 hjyYX("8rh̴+U(O uhm4AoX`LjֻBXbˉ}Я*٤RF6fC#RAFn9j_BVbr +Nh  kiWTӤH͕FZo4lW&mΓyo* bO3OmɱIٜƥ_k.X} +SnBޓփW +ASqӫ,y|j~z1 D>{sHlmhڋB" m6Yϩ]E,TJБZmiZOXA0S_Z@H'lv ݌qe]0e#/ ?! jcSϿR *# +ږ+q eFaT~Py8P.zì1( >P? &{י/?_bDٹ t'Ԋmѷ8D?S?>='Bq!~o`C̚hAc`CչFonFռFr /zC@Ĺ[x(Dj8E/E 7yS两xc B/mADEF.Iձ?Lհ' +l=luses¢q7q׽67\P μ 'P `(e"'FЛŠIQYRw!@*i=-HI~NU-`GPdPדdv+V vTPvt7ùVP X֛AF{yILְXe#EK. T)ETurPZL *& + z.q.gP7عK8^^rrz^͐ aaaA^ +=nyI7Oth }>(#f-te *q]* aGyΧV6sDA<:ߩ@h7Ac|'hF[%}ͱ6Wӡ#J.2MpPUOD c +fئyMT?OZ9k$nl"nC8GbʸS/Ryndq-jrFܢHP].x*pDd1CJW@Ћn}|6CY~@zY)Ǒ 4l< g0w +RGQ#k`@ I"{ 2ջLvl$gb:B"7GOTDE_T@[#+^)xG]ek9ߌUK@Z +3^z6uU rUf:]1d%JOO9Nsxe|dq+q)o2$cl8\$.ۘ  }(Ss-iWv!(VMضxlw!4C:09DI]VE}`mk_0-=;A9 aHn + w$IP*e;tu/Ƭ5{8  {,q.`gQp1'!)og♩X#qr%Te¢[@f'jQC/t`T&|Y#Q ƨFt[N59Q[w,X(&ƾgXY R"*-F^G.Np fsOҋr6ēR Ua^_/`d?m(Wl萸e6(7($z2()5fN6RXLxTC\a8^m`d{_*nM35陞w'8hû6^ 8:[*Bg8aLӜMesrQ+mσB uL=厔o׺PGc(|=zB{/3gdPHOce@ǸPW9ѬncZ!C8#"6sý_3/ޡ\6~z"pp;;Nf,kyy{LF%fܾ#~ X 3;}at- 877Oor68 7B'TRDJ+l σ뇝KJyhR.vi҆Cj(./ Wq20i7\W\\u̳W6CѢv_9h˭TydջC(l!z2y44y$«;S!RDMFk ʟCT`Pjke"sSU'FKԯ 8gKz'j17 yk(|HP꿬nHTETk'h5Z #6>w*F5äuK#Zm +~m|u~"CSt7iYX3fÚ`4|<MՎ3դ2H8tp $7 "DRG;uZHfHyhSnOjJqY}|zƙ}ӷ5i{\%@3v-ΘXqhO!mY}Ut<ZΖ4M8n:E8B=&2d8>6E="]JuO-~ $a (6mwi>/ޣ+ KgLf`|AɥJֆetTDGh tv<Un*Gb 6. ]9Z\ b6rKIvGIu1Z1}ciz`q'_ֲe/}B*-۽Bf1*SsezdnۮdVk3zn6:&$8 2e՟Sre3UfL{i-8B}uf| VF +9»Jst+ޯ6قxfh\T5=LO=LdUv`uZ'VϺ'hZ?a>ڢ V{xiUΑUKwlшKT3'IڰAA(vOqO(< +ހ9:h%@ݿhӍ~z.AW=Vzt$W( B3fE8dGWB3n^<1$C8\Eq C%ʒtNS)| ڳR.5g\rCEvl`knavKY,#tN,++ +! #0zG#_ vdfhTʆrM ~৪a OU_A@`?kIz52XZJbJ2̇Z..,1ȜsנcJeo۟'#5uVU~FT2_tӷ'jwH-<+X9/\Ի^AI`jTyǏGSPJI2z$pq*]d4Lړ' Fa KăѬ-cЀLP@2twDiP42nqB=d>O2ZԃzIJݥpC0N39@4AP}ީMw0^w(CRX`nʘ9\'oIS&51oww%Ѵ=P&5)9pQIpI>ؘeEpEz(dֹHNR_X,zt7 .覝.Iή~n|7fhu'ɀUK5OBGqѣx*ShӛƑ[S&?ﭾؔn5DqizT.՞C`w?&n!̒ E%q(->*_T^-ULR 7Kh(<ѐ$d7WޮC44bu9A3m:S~ ysWӴPxi*w˄VK&*wz4uґ.S(Յ߭pz3x-!fߦodq)L :so[ؑk + :rfp> }0̛}zLccZ{u?  Y,vO]=7@EБ!nú>sM4q JK6M +d23fk5S;=R]>$03'=- y" '84Ki_"wK"ґQQg!p>A.EDۗ^ҭ)  ?@= UGfnC $LՌkkqE!3Ӊ>-.Lq-'͌"j# ")'mO m'" _Y)s,Mv1Յ}6M- Krna<0#?0"osdc-}l^hj^uX?}51tʫn1VGӁɗ@&3Pmbd{8$RM%@(B$b(m0*/B{*8fUq a겙)[!q`tZ^O0ӫ3%s 4c21Mvb[ˤ_nӤ3LS\<53|%z>wrPU_] ݜ!W:k*SDž+tZW4ɤTDM'ǂłe(Pxfٞ^aFnYr鲝Hkgo;Y6x_InʄMi<+k9MȖRhË \Y@WWXcm"8ƌkzt́:No`qۥr,U@&ì:z(疱d;UGͥu-msHhU0zDdh.vIoxysZ_MEv؎ Jͩey~reZY9%B5馟$gq`EgDb;Cp+ncJa7enyemIɓJXb%.!=fٸ?ڋN + 1>ȃZ䬡[Tk=_Ug ]I񐧡t9u t&x%HǞ#8f':f)~Uz}1v`!@a:Pڧ +t|̃aRP0T>${{$ ꤣ2&\two-(Xlat2qp%Iւ62kmS :^~MJ~։^Z6ё}d代폿9DyDYەGkUhC7$H)%_tNk#pydO-%AUࡦK[û" +[;zU+{]kURH^Bkxn `aG%Yb.x;!9%u<cJKa$|dL\$"gT>OxC1B,&X*~(ߜt7MP/Y1AtO2C :7}cJ7zrz3jiw +IO]xj!^t:Xl_0nW4oMH|Vxϴ^ycܰ,ސ3f4s*6'uuMXt/&O,4VY[FYX47(m K~]S,4C՞_[Y(>]k8gzaLvЗ>g%ߵy.nJuʰ!.c$pkqJ3ylД)޺|UNH>\6({Rԗ#}i§G/(hy VĻCŻnHHB8W%1?pؠ&5;ˀ\5tеy^|q4? }W@HVd4L*n\h=*6EWW u6g^G 9_KH%(35@.MS tSKif#fd]V$ԁ,(VpUפցydƠVE%]n +urN{sQ/B1v1-I2@':Kh_h$B,iIN!E nT,J=%th +KDg"^ȄW"%_EX[) l5Mj!"J5W ]EnYi6c}e}V\lhs, i$7'~U\EQQ.c]Ru##Zc=YcH*Y8<}>9 qۈ GXKDϻ8{3ϋ+F +BxJKa8 飤'cvN5$b..3^?FE-o/ +UUG7Z/(\%919(X'/u{ZE + +3ꪐhלt%%I)?10ܖ`A^Hd8I*%~(Pc8s:PCt.R\_ 1X1}.)J~S;Oi]\7H˖DZ"E~2%@o+v`;ΖkJzC蘢6 Xk/NQӶPeb4O?yݑ}&+e-7ĘHQD&1WH#%D`Dd%^YnŸ2*{H;CMO*S./ ǒj^Pۉ?F%/!ICXzC9V;-0{ñ_T5+dlc%$(ͫ\˴[+ph䁼9YIE+S8L*v*;&Vr ;_WKv'5n,Ԁw&1_=;.VQJOuq '6luU^ 8|E%LDӒ>pUϞ%N82btaw^lPYXSφ&Pl¾Due<]>V0aG}8i\UK("U1h ix/jQR-{Cr/nw55 +Vlx9+mAwA{τ ׻{d7(RB &{ xP݅rg6se[!=xj:ҡAڴLOD>$yUQZ1T_dԷ\ђ^|0l}3>9;omxz^Ss7^!x* /n#NI#3{_? +dE @xSDgVG?%86]oF+܊qZu>̚A` eRa:#e;zH]sƜ椪7@7YZb:X\yq2 ͺpAQ6\oOӞ8Mks2B8s j lZ5`Xƺv)Ky8>ټ3vQ*'-j١Q]-jkM/V3o ϰ$u4XW3:lm:m|">}l~«{m?A`kv5b4W?=u}tk,.vT}::!op Ӣ_V+rԌ(.84uo`@ چڒH'IprpH~G0,~?yy1quZ9 [#;UQ`50NDXP-_&̳OZ}1i[?t)S1خn 4ۿb<9*n):,}BV`  +nX4B')Rq62&Q©mf+)N!ƽSb('(r2oEdo +Y >Cݎidsڹodugq/$'~;J8-FGn0Ó45EX6hA.>&3Ħ ANO^3E94tBHB/#"1PR0P?vhAz) -\ooMM! B "^ K [,/-mE%HW&PRPjVh^ls]# +}p9d?LzڏEu="6ҁkDxصꕬeoA ||Sű; #sg&|m sUas5ڋ$ _u8d6د-9I{m99 efZzEJ|Ey  zm#'z0Gy}jCqH5+F; ˆ3͎}l +<ʼD(wlvR=UE[9ŵ6L9μnjs8=Q胜gf߉ y K+!-[Wx \^\d-9HWMa bRsNS%Mhr%2-E1NX"h -#L"Ry騸O,KMom<<ܝB&C11cFt$ 5xW}#5[~Vx_rT1񹓊S=pC ~aJ:/VvY70q{K\1¤rӚPِ ,Rj[7틢BTF/D,d2;L6,{ Z#ð%SsV-A  >:&?F  H(?~v}PK a0y\siX-i"u ʋs *%Q[.穽a>Kg=hy2a=kY8 R]- +*C.Y<,*hf~LS` H@ &#d=:*۱:X#l83bzH-u> бj;2F&Dvt=)XXYq))jDYfT6RUmNraLJ)c]a 0s!Մ/AZ0`Y;;b5$e,h3/=7[65(8"׈5߱hU+.cXI +ME]U_8:"h*aB=AדVu;+C:j^ ͣ)Vx#[U[ܢMM +[t6P :tKޓJi3ks;I,\;dNMn~9prF]Oek6r -i(wDb6xeb|";J*P[*ȞYlǃb/WiMۢ^֋6 " +nYNb^ +n ~ˣb~j<`m 1ѲQ.l۶m۶m۶m۶m{ٶsU1"ygD;77lKU5mb=Td +cjob:²j\#Ӝߏt=[wee *Z"bVyOJmVQIRVWv7%VL7>O +WiaKȧ84֎V_L` !g֘+kI!8-uK=K2d[%~uc|fHavp ߓKgQ"i29(T2C$G𜩆gmUV8Ky/+Gg(˰Q.JѨqlliIplbqwBW_4gmQ0XRfcqj|S6Ш-uQ&WF!&z4$ff9`1ULuLTJpgY䄝 X "wIiFQ[Զ:Sęʉ-ˣL^c:i(D]tvqV:rPo hH7ƾ\%Hytpj~b1O62eĜXC +W77J\nyGi`N#ᾠO3歿w#Wj`BJ$ȷn|@[#Sq-*)WZC<>Ql8y.^eZE(rM-o.b16;W.`(dj-Pa9kP2#z>aiish4z @[n 4 +3cq$85$ҘS+Ӵ 5iCw]8Ek4ج(-L"MBuc,6WuЖq"G.O>ʦzKlσs9 9\*(j'g²$\RiX9|ɱmNlOgK*h-@\yUW66CiGzDhi#Ht(…/Jנ^,` +>Y]:Ad"(h8 EXmP4*~Ǩ)?7. rql#9ppkI>6;d Yƒb] ^Ý +O.M/=YJfie+a3 lC|)W vS]eW+[ݑ0,r, +NXY9]ޔ.nH"ҧhe+s;8WѬ7R]5o89Oӗr }\)Dq4Tw}xDжFsΊAG7Las't|eF)[kȦ +r1`yc NQG]k3msNQlb/Q>-d5iEcXYS /}ט+G|3^):[9{c6Ѝ˱՟e{k''|Xe +:[$-1X\S.cBW#:AoK"z6yK'q9ݢP,q~%gKrRKGZ_xfzjyE9އ"wHmȞMyP|My{M+| vP0C Q?pb7$1[ku⍃t2cVՓHK7zOWKߏ}p\>8\TWZD|tXGhX?6wٟi^\h>0dhtwPxvb0ۊr) SoAACTqv@2錨1IEq2&>fVG 2e"X7Ih()$ˡ$d}%k7&UL%I2Ky~ zIqw!=p0OO^-=>cX -=ޅPofCFh$Dq XVAsJpp`/h쩛剒·D8 yW9d6$3]Yes_4ÏX÷PQkh8BAņgLh4~b6MIt2b Ԭ%V_x䍰2ja'*DEGs]4KNpsTqZJ>Hkx^dnCd[4 ED j,[lxlvBpP] d)p%T&kLWL$q4T/͊ QEE}#ORdD+&2ƥ$) +' '?%F ߈(eC +%x[lHJsS'{׋a(y%ü7~# +y_Z"D/&"4SMo:ԓ` kO߰MjMQk2̴A ,OĨ07$% B{E& ~!<#\\) a[ 7|J4hY#Od]n[f %./;S|N0X>Vld?` xM %^:<ѓ#pp}C Ks({6[gp*#~ܑ/SH]1>l&}.߄ QoⓋ|HSrn58Uo|^WQ{t%( tT7@h=כ(AdI3‡A!І :GP RJu5@.Ԃ F5!*c@ mД A!%l5b! ٠:c HޏW rPP1D; )D/DiQmmk* W Ylڜqn=#IVäٽm5)_z)7bۣkBďҞp ^+ `M 2 hD{ ơ"iy!R(֒9AՀD!(ƽy# ݐ0tl $-)Z0y`KꀏL3[5ɏ +Yg'Z ;Gv'xx=!X_yW78B_d|L`yMHtcNklVMR+6xZUM=v>*$Wt LP)(?% Tz'_}:-wq׶/3 +qKjI2; VSc @ʃI(8MsjAf֎3L۸:.$fLqW9y8=YVTJS#/v w Yj=/t^w<쩤sp]6K߆mFoL.!0c\&0jeTEA-5nl,ńx@9Rs1&_@GL; "n =t2!nu\\q$.?5Q8ſp$vL{;&}`lqO%}x+X |nl@|`N,A0[]Xub dV, 5Ǚs$4eFV/ꑅ1?@HOJG!Si驴ĺ~vD]ydmvmf'-$h-Q G|ưh'@ʭ=-7]S˥R@6Y}ʪf+2-7_%V@F{3ň{H0]m9dB#h~oe~y&ݴ.!40`^#v|lT1bhAc*o1#AkWƸŊ[sdqF vBwL\G xڸx(ZcsxT!Nkqџ@u֟s1+ +rC@J|to4cwGt53O}b| 9Am*P>V)aRU/*|J?qdܲo"CHT*%1Vy%V$g4V,{uCpJ3U_E쬀{i~qh%QV]UU"*ƨ%.VUH1U2*C U:C4;hn-["aZ÷Ku? +#ڗ,qZ|ʀZUb,ҫUzfխN5ViTB)tUyu[Xi:lձ!&g\>?R~uu+TڶЫUZesV9M _^|a4OC X\@v¹]$3E]`6$$ AYt윮prV?rPe]/`}+7ȳq5iWŌ%HJV[:\"[Dr3^->_*^h%ZaJ$H/:ؓf$s{<wD[Sx'׽ByBZj>;izȜdv@2ТE) {{"l/نS2贪Qm/n"Nr/ 7_(s:B$өn!GV{4!%':78fvq8ava8*޾s+?Y>#d';7`)"(-hG]<{ cWʗ+2WoCY{8t9sdُ= ^U6Q̦ʯnBI,?WѼ1G/EJ&ܖZa 7q>czЏRz1ˤ!GԝFUԽE . 32rjbR?f^B:[=#k x*r==F-" QtQÔ?2_mͰdA ?z[/( Zt^!vH¡Z7Bd8+/^8;{Pp{+~6}1SbDyaO˨8Z几LMSGT#(d7 u{WARӫ^A*#++_W|%;,Jf +1,vGft +dђ"v K:Zq;kh% +xC F b=WQ >Ee #Dg`ΑGE:fi3hX͑Hfa=ԱmʞLR?ؤS>:yT}n1~IcaC迠(G'1F_qNSN7 b?JűX:ja\'F/fJodYN ɸ96Dqt %9}d[nErTn)Q C55(&Z[nieӋah ,hlh?O#J 1QMi٬f9ue n"bM"'3AUI{3/ߖ&l.҃,~v10vc I);p1Erl!**F 1ކ,XB#6}){a#B<M=F` X8v8c 5}q[l{-΄#]`9ԓc0Nc8lawh' tPv dbF`INIٟXA,DaQ-bt9Р3ݱTѺȃ54Où['QnuWac +P00Q]O?jipN'8ؖz#lj77=1{p-$:r`ĵK^N%Jn{~6矹RWۈKGGJzwC_P7ew;+ᑡO"u QѲy㹧N(.Q>Dؚf. P<=܄&ܥʡf䞮!eWUѴ΋}5 _͉ |rހ>ڙ]~ G1FcЎa ]'[w({1GW>.ҝ1̞'W^<| {:luaq ׋rL1C6,ڐt} ~Q~Q?= qf|9hd}ǁo+& n!?iU~utvq㶧bzvMc[u\6#NI/O~wCnس.m7kᇴnqN]n}L0G:xTf6]ʆ4R\jܵn&jA)u8 ">;wؘf2QZwrv%+H-vDzm;=ζQ-;T-'n:m֝X8i_eP4l~Nm*#ί :@K$t&KD8+4i}M|s5b^mh  t4l4l4lٴiX铤 NGȴmHKR1tV&NQ^ ;'ɡ^m;h'?RWߴJ{~M=p +_m6GwՋ=`cU~ႊ{~~tlb| Avـ@ o/︙|@yשTaZnpA)cstDXdT.θBI]-'HW ݬ|`AQ: 8fqsJu 3Uz!+lw Ð _!hlob* ikhn6mq E +PҲR_Wp5Mp͞-!㺮;[(ǜc2&e!g= Xfy0PxB!B흝!'KB3bHXpKHMᝑLzE85MG@BnP6uEf[uǾכSYKKN\lt:li!prR,2(7iKR*]v]wfSbEyK"cq5Z5I\fj`Ud9 +isDi+Gr#spԛǭmwO5]p9⛌4LhfT쌃3B(REbrpl:$5ViaqY+w[ +F|Y.)&; @[s*#ZaYەnb9!̚!9cwB^udQYvVW$\.1.z|n[op@L7τ {w,B ȠG}uWeg:Fqb~3E$ܘ(W/Joo +n90?@U%K),6vZWsB[~Qf=n ^-ލ`_=.FI̲R}<3M9z(,6 +CB?|E3A|܉@ޟ E+υo(z#7zGPS&b"ި5užV kcSٟ*-8G 7)I?Q~jTAQKơeȄ4mmKrު/ <PeZ*YRlu:9G$q)3GX#6 1i/&44c|*y N\N<a3Vw-`WD^|dGmQ*dˏdYRqΪAk[ Avhp7N0M̅FE82qD &S'b4,ZIIClد<.6IN!9-esܣCS~u1i㋆㹄+;#S[*oqMigS۸p݄# RS"+U nP?;hy9ex. $;ST90,it`n<- +Ub?#SENMn2ҏ:nz(В fBST0}Grzi@@<``:a~]4Xo900 >`:e00$+ņV}PjXNXf2 a)pI$kt#l8 #\0dtCdÎoG#+#Eώhx" jqk2qHXPs0_93+ L裣6dCXgV_ݲ#Yd[CCqV~ V>̮~C1^2!e?i9b">OX1ԴsbEqD2;5*ӑ!DŽ;6)PD"G)n *Vtfg?/_hx֖:X#Kc&KCy_Ϧ!u$с^KҰTC=Ks c•k&=a2p!P^·!Ov_WE%d?Yx[jRdžpW#0[ÁCQl^!m>(*5K"ide te;]:똰3_dxi־&W50]:_֝]6Uu ym2h&YN4Y%Y %9 ǯ( +*%PBb٣O~4.l-R.wۋ6K2#)lm =>5;^zuxx`ztK,$/#J [;Mq%.sex ߈`I%.2DRģm/^D1_`..y C9C31dVşle #.BGLuz[4]j WnܑҴVEacZjNʲs["#$̌(y!LJB""H8ԋq.].IXq5?} SP %WDU7W&|K"(%SE Pb7EH7Sdb!I'(g +H[6Ir_AQa-_'y4VJ8}d>q~iBvf*0jUr q/_p&j¤Fxh=0NKݕ>_J\˨|TK\VS4Пrx4 `o&C ړ1+PP/@MqdFfᶖ}'M2k^/U*릺;DJrf2|W*5{>a>Hxԙ빣qntEϨ,I;5 o91[,9:u0Wk)~bs!k5` RVbZLY&t+S^p)YϨС RIӒndfbEfZdnV`H\e +N J YN wD J +@po &n~<ӼGTbD;_ip0v-k9>kbڮvvk09 0jo (67sBzĹ.qqr z衼ӴR^}OYd-j5iyՌN:w#0#/M%#AAr:D2y?C(YZXW%sʧ^3NA;KzVx0-;-oI<<7^ʾy >@M=[T͇VAX&Q"Uw \*N؂Pf*^nI +Ea D0ֹFh|$Z#7ξ#ʻ;Wh~]E{lڻ!È0-Sb[kTǤ0%3b&X$ߎO ^pjw%;au5fjM9w1XiFbqOJ +-CW| +x`dDLKKS֝Ԑn^x|H/^c^.*P[s.sg5yb1wdl`w& ܙ%E9ǧLgl'l)w`"ʄ"!͵Ar*-Caa=7:mIv\U=_Rj"jt{uzb;D`;!B1iZy#wVy$\ n$^GH]$a8T*IKԠOK XTe|$ET@*M|Uk,9M|IVc%ܹލh`}pC4334v54/jU}YoiӤt +B೘JmPKDtKXe,MqS!!D/Qa%ne}ǩ9E(YiLϟܻ׷x~+G:hÂ_p"5>YĺNSY {0`")P|YbBwBC,c̞I2N]i100i?dDVR-Ŕd_঳J%zGVi:-sr@NyYPT_:x =`XSW5E䘂)|pf| VbdJ;NLRAD#g郣ے`諴9#}S2f~K,L鋌aLC&n<ݐHډx,n]2v';EJ -)EE7e05#gmQٙ3gwLJZDRAg\cS, +"S˱QcM 4GgZndTkc E@8fbk lRr)CSRrq#~x"#2 2Dǰا17G#!Ȟ@XZ {*9)Xx9IX5S؜{{9);(/{B>$!QBеU4l0ҕ%'-U4]>[Rimm uCFDMn]*#fb'ߖvyB).#Θ=w((odfW3;8(J*2PNIQ@iog6]PkZWmvʤщ4D2N)kgS +T- NI w_ygF Tp܈aE Xizm*;#+nIdyV>Z({doz6d_/H/Á$#C#9lWomW3z7w!y31iZ8<ֲ:,k i{B/e5d2 Cs^hEy;̭]t] `9,{e?>:KaJSI k/J`/i.'uXM) C iEUt[p +x +?\6y!YǵU"p6ÏB$NhfIWm@~8K';@+E6 qir5tLt|cvx9ľrAiy`_1 @xZt&@gKnv2h)H$C+\ޔܛ٣gy(cҺasZS&%|1c'Dے"|5ϝɵ ^v6ƃBndt1Qc.?xe$ˮE+!*&(y?GLlCٱk36ac[8^, +GV@A7XJ113MXd%QDdAN%4x$("䙌v_=.ef]x^I=~ݐ!|U:ݹr8>TgLuӎΗb!.I^# +l>s0j"(D\JհJmK!~C\c s- kS8UQI5)8ԙ! #RäipԵXF^Zk86EY.G6u ꦺ X\Y2}8`wuL T5hZbj^4c%YL(1QܶV^ynOCjucg\n^^_)ǐ!v LQNǬcȨcJ{ n_<\=B}1 +wCR;{{ e.Q!ڇR<"o7؜r= }F!Wި_t1-^Ð=`t %}ut(` vaM2`yvEP>"ÂY K2ŞP{ȍ? }q{>DaC8Ƈ2Dr#w"<`B:{;KH0a@F&҄O<I e dAoYʮqTe%mY ْtu YmIddqUeZu.:gtY1*[ZBRߍKai2iOpٍ1^פ.,Oqaa TD-xm4|XZՕl; ^equ]r58Zy؉Gk|!qC\RҦ_-.= yGTٚ%Pt^P3/ R懛LS,XV2wGxy걔_7]ZQ~ 439|̽e|Ѝ`Z'$LN` q1鍡Azb;qaߟ>;ȍs,2 bw3Iw!L58~u%\2^"%?p=%8OCc<$e0^wu6 gZ_Wg^H`q|&- AqU %+DFׁ3Fh}- (:xMM)@ 2O͋e bSA.`X>fțH^E#'yۭ%ULp*K[fôoKk٪Zփ&IUmc|Ek+ +_,_qã7K຤#PP~+! +SP2W@e>U8GW4Wz{{Xw AVאJ#/j|hchCJ]ވr1~ -!{Fdb)[3,{c.z0Vx ^(W@|aen^~n?ұs 8}/'%R C +Su.G(BCzUI=҉rgR6@CӶ@ ۣ/$({oJ1a9S@QH^p劼-K̑#ub7$'rܐ%.J)QmK0c?Ƥ--q~4q TgACۥX_xs|\k~4C!QR1S`j k>3Ea{Z yW%^?lkZ/C"t‰+ц8/ns|l>;1I[g´pFWpcxF9S*ץzmx T_mד0J1Z:u^={MbwbMc &K0%cya9lI&`I1!m! mv8a=^l4LWխ}}'GTIxio.۟|Mtsȕ?$=-|^@t'~'|KN6'|{%<Crl_zLY{/]yn1## ]y0G#>8NxIt.ez AD/\9sND.+hN]b}ų"\/2gG#$_36x y ]o$WgE@ҘH'1KGRiS|3j&jWK[v)_ 2ݚɣ'pمY9$]C ٦oZkL v\ Ȋc;&artg1kclg֚HWtq# )4kg2nH3r쒎#ry_rn`MޔM,iNM1kj]nc筤)!d[WLLAV􌜉sFa'[ztqdܚ7FjՀՌlUs5;%JoO;dnXc,hMdbdj ϠN&tV6Ric +ũ(MrJ rX@Z'8zƬALJ٤{pr;nemr;ƴ{'Ժ&Ж?Lg +h +ue]Q)ԝjj^bMę#Ck6<k3u:kZdNcP"&Q{yfzCUYmN1Zn6&N=l\7W3a\P6vJ+,+oݜI6߇,Y%\Fu *7rS2}N \Ys9" D4*5%Q +&5FUP ҮK&/ڹ\ tJUFmV{"Z%6FW3ulڳdi(}5:d89}4Lc9\9rcAt ++̒8Sbb#% [wܻeS?Pf=vTo<aH&SrDl`}M˖71mg`˞' +F?xrճgҳGj؞}!t,ĄV5HdvfAݖ &gȊ}pE#0:hAuW;bjh0TthVt6OAJNa5yD65Iɠ3!y:Yo1VwVl9l#nl)ġOj@̶=+%@Jh Dݲ0A}Ob%Az}/I˲NT1%fZݛ8UZJm:EPm!Ņ"`0<; OVeJB/wj )oG6MFv)Z[֮Ll4liHN(\l|پiaarfߡ>S\ݠyU8a)dFau+u)Ys8z*˯w%[ Nd)ȋ!(WˬַiVOa[P~vk{T:iǙiY7mW߸U[>N2؊A[RE=#=:sݐ u t:/.gBzOl[pɮ +ﺲEVk +fB/{O蛉L)!-u30GŠm<.-['U?gKH-#HZt tl;o-{Qu |!|ԝۚ#' ;ta/;[r{>+[n78C!.+] a[~5l%n +?=Q,Ⱦ8 !p`8ēXpV"'輨—l~V֋+ȝL%_~'x: lG=K®K%'%MM!rP/KS/}lD. r !Vo˲F{L&cc.J$NAXDq8٫B\6VwnOz˲9^VW(3Cy!>#5~h|TYhNd[ŸZ#e+MuvbUDb@-v(2ʮpϖܣ4/jfN)vq)Y,j6޲E1{uF`P7)ڄAP`gω= ?m|e@.߅\t|g?)q_(rYdߣKe[_ʌaq k{,+H lcVa +>tlǬfiRv)[ziЅ +>+6#{3sj`u +)F&AhRTyCڄY P-c 1)*EEJ^ao.`X `Q"<8pRn\)v"_ 0{*q\%<7D0&_L19//B_79w3]ߩ:P=`_C'Qd"*Z}\.X/sA1W !(,hƤ&TG< *`x!Rj1GQxՏN๩<%B/R2H;&'<o >0/9)E/O2nۉ$|m]a^uWroھ;` ;"n)o .,iHDlCtV㕛"h +/(ER8nRi9}e(OۼcKKPhZzAkuJxvJ ;h<|+mlcTD{АD$e$VDGٱ)M@!B/k[HYt^wWy ןIR*+7ÙagǴtܿ 䍥f AuFQx-rQ~_pd<(*hhZqB:[zP쯾{"j[XDFh!%4h(*1VZbE#",CE8Jԯ#KA|Ҩ2)p.[.zfd4-A|ZԆW<0{lFL*.L|(řn`ƑnKWpڔa]Cn<)RBF vv+š)- :˭w'}󰚎xqqpu-cyiIJcR"ZJىrDz"=]WF6`ZNc7-(Xm*$\<[܎aWtbPdte3s8cr =x{Ȯ.DD0jn-"Sr܆PKJJ&I>~xc3vS Z1Au ~hm9Y*8Y ApP<<Ɵ8$ii \zV8.1g=bn]fZٴlAcdCq#N8 +dsJfmݜZ)h{xJiqXUݘC{& -j譜%sE)9"F^@5'-1PDI +.]p.|W2k:xN@ @fk*RLG[k SPj@a0PKa*e=Lm7*>Sܟ'C^T[cauPUhU j@KP\U5-TZi}6W1>dPYs1ϴCM%yjv.3NM  Eytؐ)Y:!۾HZR-,-KeWD&9GT+Gu ?-LEݜ-C-*h9 W@C=5gFYs(`H^#mwN!lJc/lёhcB½9 [6u .s}2%yQPԓ̚^^ۤ$?m8J?Q'KHmPf:'m}aH>_7dv,|e0*F|l/Y<9bQ6Yj]a tӿx(XNǚ| =}ѓ} f~=Co=kP{x ++Z*/ +3 H|;5hQ4䍥*Os[^(=U&۞"f_9+8l 2oԇ̢*@[P_E|*BڸFn˼6&I1Ax3#dW(L7L@IH\ޠP d]7ǻP"ހCKX8V6OI}ji=`yq)4tuRLCdɺTN=1 -^=d M1=%egP!F@l16cR78C#`{ބ%g6 7c1A2oe}GSԅ8Yz@)0) OkLۨ)zo 8%wٓW]}\;uuT>'Bh=8=6cQ>/GXb&0n=W6Qo>A`߰Q.(c"N=JU$ +smKJ[JRnP"|Bܟ,Za'%= +ikyyÞԙL'Lvt2;<Ѓb<jc+Df2 2yy$A&OIP;0`udFfSV {0: w^7ܣciKf]G{ܫ0\0bIx8q#$kn)pkGeAҒ[+jT cm1eitl7%ƻ^W=lKݚ•N3ʄgOtВ6u)*)-W6iaDA8g*ŧŝ {~n`C#c.oi|i20 ElJ$N!?h'8Hvb}t apC¦GYfL>aoqVD8 DIir= \LV.%3dΎx#LҦ +Ƃ*4% Foj1s\;:7O"6Toq7_J :9]IHA?:vžĀS`ӷh$nKi4$UyvNj%.A tV%?<*V7S8V8__)cdAfIqtwvѰF+de̲E-vKa"Wٻ]bՖ;ޭ)^a+>MƘQWaAcD[{-xL.2͸̶;dv$ޢ dEM10ϧQ +2M?c&3֥TMJw!usHԝu-k:t4SHPq7ۓ_WH#k.3~^ȣg; !lb7al;#]S;G듮mdviC<@Jӡ߼|8:W+ߋXl3J9R'wUM'B9l;qmQ[Ř6[`9b DL +5E%k_J(#a]3+bF~ g:o@;{an|OpZZ%yasi=`?ۡ,CC xݴؖ!x!qx"d;oyO b/ٍc/d -%!ٺW~'8TNS+rΩ5S[KW2ڧAo4NK֏ds2O%C*32bvQLT/ +I/M4SߘvzᏣ\[;wlB%}p0VkL: + +Ο=N*A燏]ZʄXT 2l p4UL,7RK ʝrP@HpQT<$W `r<4AFGb¸سQ4pzITUKf䭇0ܽ?K,!ڏhgiKkԞI勩ܔ㸅vUnDo=6'PdCMnF;S,Y"L`Ct|UV`;r:.(MkJ0*YYѷKdAbQ\_ ~$?Wg + ?1݉UvWVEJJV +.Nh PA[lӁ)Cv$޷sҒ$'*8 !bm@{7|榥5PS#6ɳ7{52,6@ &wA-Fijr`D(\v撳8(@ V9WLx+ݾO<ّKҜi Sɗ{RیA@EI}H&XFzXV %~t&0ԒA͋e}xh +|҅{q0-铽*/촺Xl&M:pZ"KHQH&OfdkBIM+ZDULCrx<ΉG{MzL7;43Uj96p>&T1踜+gK?$S3 0uIN +6"K.:Rr\kb ~S # VK,0* ;9Tarlyۀ0$6s>TZ)P-HHaƛ]%>(IL,8yTKx~@n&uM@#닣d5Xb(}%ˢi|_%%HAYA°;^MZi+$p_`@l"H {WEWF J!Ń)4c LOxSl*g > u8zΔ &&5t" .2Yel%1SD˵5jC(Hs@7J)Rx +ǁMr?rQ~31$#fOҐPR@6"yb^*ץTKZL_Kc6c+I"9m9s'YCDEU;M'XwA²;(=FIrt"J c-'e.ԭtO֐8S8in W+YPdT955YMNlѨmO9͢L +Pq4ЂRj/EeS{浔d3~7U+a#HlLI4":Kىa->C5bEfHR_P2rӠXI-|vHN']hQRK`Oz#%;L܄PBrlln.Lyќ/Ga1y,;%%=Qߨ4ܛ OnD*RjHJm;Z`,9B;ƈq>;B2= #I:kj X-Z9lLQtO3+W:WHJ_2`Z[KPLd= $7C3fRϬWHޡ7uR3^?-nv5 + 'Ch,~QGlOSdoqHntfVD]Q6&d.+Uu c8v,B!PL#%pup&ڳփI +0Ҡ+?9 +rM7}i\ד%NdDgUo/CB撬u.or(g Kx,$zphCWb򣹏ȴ=۷WDv%< GqůzH+[c>+R=LX'JZ"[^ 7Vd+O5 c*2e^@k/0eik$3e/8 e:Jj-L}R1`Zf |\) &~^bږ_yt @Bz`P8d=̽dL5JA }_0J9fV϶Kw] ;AA8Ddr|aewev/II`V*#7hKCQL@,|J))fRܰ[{ |;Hl j?'*_,JըGDN% S!7TG&hݎ~Д[ug2Z_lgWH*s9sor'>y c"MKZSӮstO?5ʕ|Y#77',㒘YmSXұ+^ O +l&>U +i_ZoG}MdDzcԉl^H6$^O1Yf:Zїh/a ԛV/ȥ^5M}B6L[ք=|u%Mf&UNG FI%99 25VV#%qEרۍ]13|1QwU/ѢƚQ|5BOtbUMJN9+տgl@ԧvm \ +Xiĕզme0>T10rZ})7TGjB҃@8te[̤!l!X"Vkd@<ѵTo!X9Xt7KVodLIT׊7gNZFI &`Y祭  lΣiж@_| Z/i-]f|.Tm5FLmXkuyҺ΃kpi2jp흹<}w+6f[Ȑ>"b#g[NwMȨ=CI˶ͤ_OҶ<"> n#tXNؙ,^QPj!Ux^݋}RwSYƖ?Ił"pY` +ֿH DA_lm"ĀF?h35$lk:_'Q-Qξ&_ maQ\# +yy[qdnJnږ t]v?N>Ufy呁\}?lZG`nVg5eqw-tx; f)=[Sf~F;`zA|n)̑Dur 9?&MVB>mij CMѳܮu:i:Y?9z= #]獃7y5^jb@lf _b &-:)/jԧR`H^C@яpLDU ,,v_]FU}MsWIhȒE:QdWdqSn#xpSje}vV_hmH|;13ZjJp((D`J` `̐;sq$&G[ g"bKWw9z Wc{[(V? EimF&s9.+}I>v!DZ9\[0q Ɂ %$ݽM`w"%_ +^įE1!z=x-j#Kɻ$`v|=L?.NCO!cF7DD1ɰ]"*K}#}(qHø`x 6jQRzT-d5 <9Z6h4^Poi_OՐF4c>HO=qHz/OPRB:jDXލ* Wd>3ش"k-蓣 ܖs+L'@?gGT` ?x!JO.sRϴE*뀟yK,:,b`g0f]_WMt%niWDO`\|@>V^,OwCIw3;_?fV>*J)[$IptJsm V rK1fzUs=gS NX XPI3'ʡ/RbAv2UԐ# &oإ\IeXP# !nRP])w oסՌbљs6{vqk )&i`2yH9>kGXt&)dIGG/qpT#2P#q +c L̷PNL%z$5Hخb8 5 *ߘb~Ct#;Aj츬CJq|,XBJ57&Rz* K2UGh~"_Ǻ?@AO-U1SuLy6!Kx|ܕ,j4¯M#6BSzh~SfJ\ pw`B9ɀiPU/ +Ze%(d"9 +CZ&BγA=gěEciSm"EBݛ,ɥJ_p7 +BagB۴Z%~qU6Œpoh^?p_%~޼O*\3 +Xb0/..#d7&Kyڲ(5U_p~a!?57ҽ >f=8fԽGaLP`rg_eeVԧg=LO%)8,[GQXfዅK~9udtJvQH֤4$l)rqT\j> Q қ)~ZO): .)ǨNJBKb({*?E_%r 7v)ʟe-}-?縅6[68>:˶ \ߕZZU n;3դ[z:=ujC rJfVZ<27΁$n^v->Uu6~n"MԝP4rlJ0 G.:97e(SJ`o'.SQM8!,)k y$;t)~5r iԐ _<V~Qam0pB~p47k˔(kuhE7"kj PZ3$~_L I)×Rފf!(}dh{FRsL!0ƶQV2>iM:9!A*k#D,3?\gn(=q36rQZȻXg#ۚ}yZnqKBgup\hz,7&ƐqEXM@h0gI!pbcJrpd?;qǻi*avdV6'paDGH bTIeχ$.Lܠ'.vfpvbW2.>Ϝ\=#g$ޏ%<&5 ϿsE]j8=v&[f|7 tqdLPQ) dLk"S۶MV_pu|ЛM xųMVT+~ YZ,aH>F͞%` (듕8h9F"C aAB$D*fH+Ɔyرf;Ah~b3me=ITVn5 +jkd ͙ }i{(I8-J=.ˆ)) %=M!^];4UϜhmXJ޸']tbus0WI#]Rtvz.n2 qnpnb'1¶j03;ӿ:B?|?]P X.4^:aX7Rs^Mpǵ%؈DSgnFHa{%&^dpc}lQf<4,,46 g9Ƙ7|.\;vݶ~vZr69RU 2Ðzse܅hbD0[W8d0cЙūb +3ݱQhWWLt!I9 V|c>hrN3/c%LOդ*jw'Me`NWeݰfӐAGy}5]66CkP*6^gilޕ~lv(cN!umFLj.??Taa },>Eby}@,@ճHwwzu6gtT` >@: 2dQ"x)(F74$:bcסsxXsTJLLnf0HD#qn&{W> vI8%[\GMr& kWddtf?*4[m&HJABtJȟRL/oa/K/8R.zO$`h>6P -췴9v$KECJCjwa5ZȦL>:Aяtq^\Q'3Q>vo]=Wgo|T/~{7#T{."WAߒSwa+;hޡK*CخUM TdWZrz=CurhaG;q.Y-lza% YEzȔyإZ=ӗڗ%I[ߵSK#Fg5Hc4~'(V&mip )cZ 9He#'#%/jzɀ3-6 Sٗ,,-KGL*MիA74JAvpMjibF)km͆ϊhDQU+eIMZvY87Zo1@tq}<ƪMrjzLneJ 7]DZih1QL6ʂqƇ F7ua_qXVlMUeYN Y L"oIM6%{5*|Q-%!;~ 9ar)*Q) +F"샲h ҶK!Fm.Y|(feJ7rP60D;i,|ĭahh7<#f4`pH(AVWc#B Ki7 Xoud/_oQؓ:+uwŝ\Zo嘫-ZEsY(Py1e,4U@\L{6tٓhV M6_Prr. o0Q9piOHrDW/?r +S:wF%.@{3sey"[g|RbN#tI^.[xt*{f +Dm\ Zqœ8$p9\Tq,I9,G}?Dtj > hsg B?ʁ;D4ɻ>+ 'ɮR64j(iwW6cH&\8B{n3Knw2\6R\>3LKҺAp^+fbam'3UAi-Ʒ(3v|5IG|5mS<(B/Xژt_.כ\Z?lL}#F} hH #-غX,@Oh6'.#9*`E 4%$Ls럼Q䟼?ģ/ *k[(]U-Eg>Hreh($WMFtAe~7&݀:٩,ϙwϖ]?w0>ZlMM +9Bh&Th54#`C6B O3cS5Mh")tKpӘEqc&!րd +~T$~^&{Orq +JR֛Y{f8qǻ]g zɿ|KL:t-FM +Jz$ m^!9 )}q:e";27ӵ:-J|sz8DL8(~nV†wE.kEt + s5"{/\ep5\ɽM={IŌ +t:p}~LpjW6MhŽ@0$v⨇0(o'ȊZlgnSX$*n]eܞȲ;幡ֵVp> | %p9P+97n!ܵQ+6DiGiN{5!>&k1Kvķczt:{C*Xo9еE^W|E*UK}`6k e3qiu +/y-Pty:FOfb=SXb?m $&oyr̔-tuyscLwHgpzB09"!:xMTdO+xa$WO]A06UE5Z>N"fB V +Z4+rEX]X& +u!WܐS>lѺ3!X"GTPz)i"㟘~-nΝZnW&S,el%DzNI%sZkN",A#J}% ! bZ򹈩(r /@#yA@C]Wd2f-s*R3;)_ϷPTC @ѝ:) $(B+QP8{¬JPGSZЇqѥPe؛V5wij36H[/pAot@qVi\'>d,қ͈.kd΃^OThcS#~n9ò+r+r/q7]5ʕe^<珕=#ͶT"7x66/`MZCRViu6ϵcz**6'pݒI5 Oʊ3^Z?sĆyq ĿD=cA$HBQx ~2{I{Zp*ЋR[@Blh%DU&H}R}Myˈ70 j &p@aKPC 4HK0F 2#hp?M5$[Ow1DE: Bk-tnU@| +Cխi" awՍ czŻʘc@P +Àb~z( +SicB.MAܞ0tm5K ( mvZ򛜷{vߚ 7 z8rC>QfL ;G#8Gl U$o@7ꝫ|dm wBtxGXn_nAdCrx*TGe@vkWVFoMFL%Ge[Xn (Ka/.k܍;e";l1;i ŏ].u=0|99r:M %|Mq'yI +ޏȋf؋t8uލ,OV%ԕ:2gp/ozp}\QjhFt~`R [AspnU)klݵC_^Q\C wtnĸ#(V,3ɗ6@=biGb) F%*T ]D -*E#Wãd 󞐋cUH4EDIep6X7>2 V"xː"qrT7BƁ4W_SB6FOB#ķlw; +DJ) }a{C3i8]f-iT> \ʆ@V nAmȎ% S4nFqV.Fl^SnD1#CrWM:7?P!43 r9:l6Ʋ^C+noi5a{ w=_ER;fD}7 MwDzB!JaHE[e%t9 sߪ:j"` 4A(M6l},qEV䙌4۱m +^KWx%*7Mh;*-?DYh!g&U` +i?*D, hBTQ*_ޅٳ**#MrTTUJ*:" hq@ wmPsBq _/jd(|6^2(}Zq[{PqDP./fԀԩ@z⏒0ݩ1bC_xV}F}[X3ʑs5z(+i<$#{=ݴX#,tsN`aof|)Z[SA 3ol:9v,XYo^i;&ЬLU@^c[J_Q0XV(QsW``I1ӕ_}iܢ#qzۚƎZgj04l4IKϭHXtT-{>[k[ˎWt@lbR29"hDџaˣAP.}JˣA5 f#u3>]0;vDrbL ~ũ`ը`'Y].}4j8@QYnX+)wƑ`qFKxgl|k) +'B%dgjgj"./g} +ۃdJRSR5 +2VJچp0}^B6zn vr`.[͂T%ZrGhT!(f(SVgvxUi׍GSoK)4ss>x+|/ t$͌z@'8#NFpiMHeh"ͨ}8B`(Ԟ G@At?3~;UcSkuѳKva }՗`ydXTu#>>L#*McmTr]bVt*qhY_ltScu6=!Xz<Hlq8φ*rP:<Q $uXH84=*6-QT`=B +i~>|9:Z8:mhpJIXGF < +kj=ܶIޥn;,i2c1٢kEg\Z짦7uX2!cߏ#p$`cb| ={Z +Zgd6xm<,G&V9)xq i3ξ #uNHOu(`QF&%X CQ6l{H!Ցϴ)%_xZbmƬnj)/=o3>-$fv["m+">l5x&gĉDZ8 Mءj uǛd.mX b2wPv%is %eK5M&q͋6 &f! |6Hҳ_ѕds߸_`pCVZM`:֢l?li$;0:q90 A*d G-}^V6i+\T2*kO#MPj +&B:B; Ŋ+59-d|t? `[4+XGƽ@!o)X<&M{V{:y^4{\%ɕ||wۄ.VN,]VܤGS Wi̊Pxڈo\{\2NQOplFTE' B9tP!:0 +mX'hLjvL^LoDаMwft%fjv|λc<*x5CrЭ%*+)aR~XT3+*ʹeu쁄3?QJ=sϗc?elkG0E v-%P q;e5jluӸ65㉀f'+#^!Nҩvtvᲀ y*./1$cf.Yt^)#C:Iu(:G蚳@IH}|γ_ItN.VZ< +AōěpC^6gnnrhYYX79ZC? B̓Z;o ^Kq-5}gSkH~H6G_bu1X92 Q/,ۙmOdmv[x-׷njlv+ *)n\Gq V[OLhMy7;eU.I^XVw40p]0Xc532ɄLMdY42I([ڗ GGiLM)#MvYh\צ$ѵx'i> +-7]]TJ@-I .5L:KY<,m9p'{v(q6lY(@͹ڀzWh>5 ︂αNM&gaA2-,nwxtu$O>1sk "o3K +j;F.%tBzoVTG]eRʯ5uXhG-ye(%8a!"nCs/\l ]w Z\hMxnjr Ёpw0 8wy?'-7  j7D͹r+éteFp-_@o$ު'&eD{K"i[hUUrk D&v2׵)O1mczEYnBt"e +<ڱKRWDWw%Wzo2Mo^#["E)u$+wVs޽& 6͏az yt$}g{/ +j6ގT٦jLk)gkHՒM ١CR$( F&1vqe6:[+piX.EwjH&+bê 2{,$h ~@bu@No~Zk122xTX)gP 0sTI0ܣ: rv2g= ff,]9Fr>rڌ1#YJ|M ĝi;XWGօ5 פ6,hhKKX5Vs+_I=V\D,){4}y'z0ַ"ޕC#Ү sm_G**4o{Cd7V2{K梫;CѶs#1y2cQŎ ?:ytoN1"6A \Pj@&ۃAC=$usSm6#ō9}TG ="Zkpĉۂ\OȫmXK™GrWMsL%DVe29{.:>f7GmܪmAEA>1]|Ջ-EcO"T\ *P(4 :HOX/~`o'FK8L=À]:1RUsJG|fLbv04V-v 3e9P!:l9Lc.%llM&jOS8`_1hGwD6SuO< Q* ($gb_mXn_zLR]U*Hd""(DgVYyk#M}X9D*tJn̡V铲zAX4i81Z$r:Eqyu 4tUs{գȸ l$~_) 7 b(K#mեPSl`fʓơVޢl+]qj.|'PkԭZi7 3Xkm.L<:U2T8.pӛlCGoxAij"=йw&дuERL&e*!nc#Ʌ[4 }3-<'DG, kKBنjE<˾b$xFWwxg$ov߬J A 4' B ( Dڞ #囟)@'] >!7I.Ĥ|Ӳlga/rhAiݤ;c4Sg!® .w8\2#ڻV'O6C.!_Zwû'bI7@Fiy!;\\aac2Zqm9Hj[ΧVTD@b[sD!Q"hFD/԰'/2a s^'5z=$7s~{ ,Ho +0Ti'uF,r, i|pnmU0%R(J7骲35mVpҢ\R麞-Nm:T&UYGg^L_=ҔnHrp^Ðxw(kez vH)U}zH6]uL5kX^uD‹ǕY۫H w@u!p\$ݜʌdؖoE*ԂNBRv҄i (ᦍ$0E<2M{Z"z 9Vz.x +KFa-Գj$ͭHCd.SNg.LQyrs*ޓk5r"25-_)xҨ҂HpӰ5OtE^Qmyn,lr]>"Yq.AZ6З)2ƭ^2:ߋ5"4M-5-G~X](TS|68M}9Tn4gE>*#HM_Oő@2jA +6<{(iQ_HzFFE5@Ba @^?JnF)y#' ]jo6I~xqĽ>)Dwf%*7\,pB9C.vKT% {JXAH[E›@x@a!f'|S^FR\g@y`n˜;"cƥXB!K J$t&W_Wjɫz9~mSY(pȱEvȰZ*ϰ3P^&a6%r[#zR>-5![36Ȁx`'*e6Sk`$jV>T{+A-OKӴ S@[Wf,I] ȴg0|eKRݾ +fM wD{j +=QVˏAGD7W$: v3j;mDf<2>o֎q`>*?~))sZI %2MԍA2* ĂkDEk%Ty* +B +7;d~[Yn7f38b 5P5 ||V(֣b:oiثTktފGL 6\lV-j6n qmNJ0.T;$D Ƀ+\SZ"7(ʙ,П˒{d8gPX4'~1ˡe-vJCRz JbFJELSprQr=\[f]ߜ.vi5[e|Sn3-{U=u>7V}%=JX^|@6Pg$]R܂T{0anaohqhOYcX6ׇR햍͕m0{#~{"`޹e瞞t٘^׋v^zwLM*@ޟ3'/7{/8t%!f`\/vi Yt%uC}7 VH_7ζcxa,A^:J?ܘ 䌤LjMJX5iw3NxUhwb= XT-YWȚdÀCc DO#F&tɺ§ݱlpѳ!%mQXר,牱WIY 7E~Tq<l趈^ 0a'Ӛ^J%c܂:5vhnsVOJVwB.Swt8@'B?ʒ9r U;*mqtGV `}(j?eXIxJq~;qf3 ?!UjaF L_b$"Tr, RadXo3a^%&@SNqD Wl/@k<"RzZJdy˭tMnL=1>w5.{;!o6QIbH藾0,Q'Xk-,`?-N +ޓI9ұ_{US(,$PfiXU`gt>bz<5%4]tnw(ɯ+#=X2aL ,<Gc`^O~sTd<.Iz|mi\?盢mw= +Əls`> V{V*8$&ɦT+X?n?v5MEcEell: MFL֤n%B!ghHq%~1ĝ,&p0H,0E;H!SL>\{F,dYȸEQR3 +@+:c\VdXكhcfxJUd,dΒӑ3 [D]Hp2S`S妆ZIb +'z4J;kGe@; QZP4t&yKMVe$/J7%ڧ5FGz:6(4?A4N_b3+J1\tՖF1T1E$!Gd5R.WPGQb[@EZEiM՞]x$xN(.X;PLSsްBR("N!~PokI%-y%жYJ$55 47s&5p$ +;&#o1&!)%Jѯwrߣ`O~VU+dTЪh#&/A߱#M]P a#&0I$!D h +hBy2x9cG+4, ZmH +U/=&[%u|kk$@t [X80[8k +O1TSz(u a\ӚjH c:*(<3q(Ё+'σXLkm&_0OD\0oAbC6@,Ѹ0*O3{\4jb,>r֨JF ո[u,UIޚ0-@9-ۦLF[aQ; i)sP[A&K =ޖSSpF5KcttWBɉ)G(o8uX AW"|V--WqPSVF4ay\$&d4,&5)Wwb.Iy$t;73E"U=@TɄ[u?<3]05M'E62ot IҼA* +ikx7{j-{͝ea׺RL%KeoJ1\z-Ӡ<ĕcƭxQb1o4;{!^|fHiZ#}ycz*kHUxTșsfid*9{}.3:yJobi5O{ "d-1aJ)1*m3u1Ţlmu=bIH(,'7.fZ*Y>q5+'(Z# ~?[g-m@WImr $*j{,^pق=2:2*{}wi[QCږC+}] ċ|9pM[$A =2L +GP~u6mZ}w0MX?0-(,mf0^-~Ǩd/dѪn*?PU܊Ǘ7nlj-{ M}[{z"*6U[Q(iT M2Wkg U:O^bgKV/}wkw,[(t{ku힭p +\.0ڵi.6+鍦7"ێz+}H^ڟQx6Gs<-D(p9B~BaF={Ñ8'+p5FFߐs +]cZc~unHj@gZg-gz[cyUpeHgN_u.8LȄ|6vh}bȝmo'~RIyT?b┒ɿH,ҽYIJhH_4BKg#""*ȣt_*8?/Y-L533;v;a۹ +3 @-Ա,X "B)[6}{ Oo!PCc7CT@3 6קH 37d:`$1~RWP]122]?Ėo!/Z'\f]PBnZã5 smz(INl*Lb/`u@tj8IO2ń\4O i60j65 4\2r4 ط*Roє˴`ǖ1BesH\tJ1J3=3kJIB"zq"T#e !H9Hբ%ks|h.,zt޲"/WZp11AfuOՇ#-4") +!d"aG ~Q76_j8υ囟 h-i_ZC,ic{,bk;ho)WqN_Rgl~o, x}Ot @6Wo}:ZEʼnAq\ ش3_aX*=7 4?+.1$1Nom3;>˥KB~>rEZ`RNne]vݥ?tڵHUex"츴ÙĉwFn rd_#/~jwܗѫKpȖ]V ^LѱK="?RKw3wU@ql_oCr年:5jJ3PM2!!^V(r\tP|Ө./9㟲<9.ޛ[봌ۖ+ת><+yyوݸ'U^К{B*Wu\eUrdrdf==ӡH1] gK <{/*H3[Ham.7e:|Z(Q{{Voڂ.vG)jDa}w8d7\1*Qqy媙lPx}iN]f!&È4z t[pD/H/{HR5M/׀&CT3d-EoQ_v&vfѮ9F7U: +5Q6nYӔLabX+E+^|mccDr5c#1^u ?qKfo + @v|[ [ֺOԵAqdoM1,D-z3ǡ\y`(Քmc3c6?t\CB&j9}%g~IA(?K10~&<_Ģt=``ݔB*BݖiH,9tT6D33b728 +6!OpJ.0,̛25M4jh9fL5`E{"}H:Ju0JuЅ"UZ)M vϝM@-\-M=l^<("Q H"UeʔT0JbD)If~*?fȺp܍ۋϫۏϣ`bsЈCt B'G◻ 88`10&ԷhB'gTZ3V&|(&$1U"T>Ё; %JX2eH#ӊ&F1)TL)nW!jTS%>ڈXu5=nNg8Z$:E9hGr +3S10bPܧ.L-W,wEXl-Ŕ*Jw1/vFPK:b ys=@7(逆:йM(GVx)YSA\FrHkE;Г_A +=eY8B_#+`OtFW]M A{dalsCf!=d-W6.ݏ!+/GV& a8 7ϩ߿i #@7$al_ ʯMtJBI7%T$6?Ku_R_cm((if,c0<= |'~yr1XiY3~ٷv@ȠgJu8 +8&Y0HPFqr S1{QEQJLfY@E,DX`Ld&gH%nAGʤH/!78q QrD43dMwq,ZC:l[U &Έ9Hk{H<ݦ +c,^E Qt٫N± +3QN7˳))Y(|;V 7&:VּNIƅ+̅43ڐDvn[nZ44Gs'5 ګNNP] ⟩1f=ڟFe&1 #B"*]fѕ#D5D)wEDR`VM2ߓՈ1^q^Ͻ7rvXw!yBfx(L,0((0 3ގ]n,br+ksXĪ g08^&vwFUZоBR` +E{~*Ñ#.5:˜hb%SG8w^VmXӭ=zj3ursvP;2tPRcdvg ,53([ ;& /-a馃:ȯ,1vpraq)_)T2&iI z{lE i׬iv\ 9{ JԘsR=@bmQNE8?^M5H?:2:yXmT_&sFhI'nZl&ڦT@/BΏ) T@FCWB-[Z^Mv߈(*D˹+fY'lCҌ& &%] X@a%-/܉yoF~[nI +bl6s65Zzf9 +LRDbzL䍸ŷ\o3U^g[]{t +@omŋ%fY8ꥸꈞމ]i+J=AH=:3[`ްFu[YHڝ;΋wR>ǂd +u1:t?@%A5 +ڤ_JY}fRYZA⛶Eq + =:AA[ IWL6,Z)=:)}eU9x#x^ ɳFB'3tBsuxd?,rwb %z$:B{ +㮻(/Fu!!?^hJQEAE5Da$#$yYB{I=E$|hઅ0uqr~yp6LRcz)5`C+J[ N`Chd0%XD"Y0dȢc4B1I!EHk7 :zccMD%}:`%g,eSA}fФB+)@GD H (% dL#8QO-10).S 1;yk@4ȳѰD%6`}}LJ%7XZlDsd{CY L盌tQ(j;,R=e + +3V;ەbWYh+ih +/dauc+l}w2bД x6ȹBԚ'\g?_d}T;j7>maWnQ`4 鄃hAeQVq 8QQѕi? [O':dKyb!+ "8'AIfih.w<CtLӭr<d/Yݙ 4MNQb=|vO 쐵2O>ʜ$ #d{5c=RGB,`Xh7Ԇ# 22qW96PE(s踬5kR|hRJPuEAm7\ޫfr| 6o+ܶj]<Mo32I47VKI:vTF 5#N:P(Ua-zb9Uҷ5T Xk0G4&,5^ɺ%p +})Dq< :`PYU&u4c_V]j Cp ΀d񙘇(?8a;cFϓh`4m%L +wІ)UfNQۏdTatZ4-HVs3u/ՏM"ݿgnV\h\68\-fSjs)YIuV o z]}L=&VBdwnK>#ۣ`sax5|?I4Վ."c'artR`]qSuYyҲ!F7'ǞIkgZBU}QXE#IQOJ!L$ZbL-obW]!nI$RP=$+ *VҦJD%5q70EƀMbc{@i{F;'(LX[9UQőD:Zm^~s^ +5" I2W_^HˏPm٣)J GUf +F/F#i3La6"1)6YV1pqxc(fooISO"$L\ґ(// tOhTJY1A4a']mݵ(S㜏 wX'ưέN( '%(oopB>EضƼ? +IS:j8 Fx9F + :#1UF$0#,l?3n~!8!@ hD˶u@m۶m۶m۶mȈa۶ayZgェvW>{}g&w{aKg3gQ'SGX-C64DFn PM?`4`Sʋa W $i4tnd1{dY]wA^R-CaֻyRiI_\U=UVPA(Zj֐uz;Dh1,ߨ!Ř4}V?(꿄<5ƿk|:J 616:Tˆsr(W[3qLU-7*$0'̋@&ki59u[wl.~ 2J?f^(Q]KĿb6zZfOthK@R[ZXH[Qi;GNLTj|'nػv6m:)̲$cmTL6reb5>r& {le%f^ +D!WY4> guL&.cc [OR z8]J\gPx-5^(Ip~(V(n]f7ŷÃ]ڭ]}:#D[_Y=}5~eۼsQ'{OXoXM h8Jj| L[ABƺoaNq?"^A++q ?*/i+L]~ݱ2 ^nO +Q'p +/0/R3,+F}ቄ0و}MXLXːaƓ H>,$J;Ozxe9JyD8ùFdDݜʎJѦ;kD"5QeJSz.t8ǗPߦg)X?) 9MB9U}fT +nl-*2&LMl7e-Z$Bј)yq=U$Mg3wa,h1fL1 Uz$#¤}z(!$5 S{h]tysԀIyF X(RY)IYTZ ;>Y0n?í-TLwdCUjq̂;Iyz5.#TpfQYE唅וS1C584Z̶LV~2u]ތ2ׂʑ !c(==r#5mEܪ%G/z}%G!ܹzJO!̙O!L¨8|S)9 n\O[ndkEGۻʨ(Ja0B"c 6;o܎6:9nܳK(Uކ\Spm5)AS_3C2s|)R`ȻR&D,Oc C® v.9W +Be6a ~4E:]RS GGxu]C+Z%^˭'7%gidȓ%- Dՙ7WcX8荨q٢9"$D=xTAnMU߰\Ww$3-W7d 8F}8|hBFh LOP Ď'q,7ac7n)AN{ľQ[N_uVsg)b2˪`K)Ux4⥔}"C/ĨpXߘoXz;]6ص+Epf8]Q#;_8mد$kݵWٔ}8=cn8͐!¦Ovpau; +[(5gإG | + 7^ y*6 %7+#vjjB_:N': } /j +Z@C|aۦP$ؖ{QE%= xb!m%)gffz_ow:|,j Y]`)>Z(]z"da9߬CvWZlw. !b0:fPy0'(doI6#5Cy5iDHGEVrT0d%ܠn%S9GnoGc\Ȅ9;ɍ8Cc b+T"u>$Ċb^<1.[I &Ma[E?*+]9Sc]*%G0űx h3@\V_1,Wrwn- KwŠz #&tWdt("`i?tϽͩR`t:[Xi^Br}":igͦuUҀ7i9_55LI]rTͅ!JൺW{oBCYIB@J%Lƹ7F=%oFgxuG[{Zǚpe.B 0x~:*M0 ԙu~Ҟ)C#J a12״('w + +.?bRkSjsjȍ)w7i-D*պpftS +pP sF&o\$*bKQ* JE*=ϙt$ Ο(ODSbJ~](ܘ)f7/FKA>byJFE+K8-8J@;#eOr +@5]s-QX7'EEo(FDO%w{ʾ#ٌpuӬVG!3=libϺW3]_H5Ut\:ݲ +W[yN7VDq,qrbpl%N0o]Jd5 MX^zIyl]-..9UokjsɰbC'"F MAc!$; Ty+rM$B9ꮽдӜ0DtI." m +<q\1qei48zUKpG26:@=~_Jwp3b_Y\^ +.28G{D3WυWpCO9pK'4I } a+%/а_qX4gФ@[ T?Obo"LB ؉Ê\),JZ:!n,,g$ ]ǥCuGetjApqᅟjx~ٵ[p!&Vwcׅ0x5hvjzB 8Ȗ,e7qFc)w7)w +Rn21>M## +mk7)7VN1|XZ #Yۈc>ى O'4Nα4hÊp@|)J;2}j4bn#rR˓8ϣ?0jrP0?*Ne߃l=wמWMvn^slLG+% 2Ah T*aDjP+&+AFekSd532_E_:k'{'K33WgK{vӀ̓>%3\xCF6kT2D09%98mh j +E# T$f &|#@c!Cp80JqUƮy;Q lk&tvQ@;z=*jMGd>21nX}sd;ؗ$-N{YA. *}[oa/ Q>bXA=F8҄QL90dثGs;B$`UXp N(Z{kZE_@/.Yknۃ)436ACrHΪ Ko[rLC7"j w;kp {O>8x_񾾇:=+oBOb=d!dL/2n2JQd*&V=§,#)qhYhfPVU5nX)4gFtF,2鞨ȷ +' y@f|CbF+XE&9{FM!"6J0S* c'YڨŁF2暪$p5yKOvQ`pv""hR|L ðdA3(IQ]r胃/rN[lBR|gu#.KWEw=,c`rr?a3rrsUӔT-߫MjI;Sdx:lSGv,ii:.P{L5~e}iF:vQe[ƴ<yPnI~xͤQ,&שLRd$Q[%]~7K.fxJn<06.r|hsZfVX\H%RMzvrHpՉs"Qe'iF2U\.^M^/-i+nnF UlߖbkizUҮ>+ҒHփJJ-{^ܶp]fr^o9LP=ImZ&ϲrTj6J(Fh(o3`MU;O/F>e1ߠɶ,ӀKeělxS;L.?d5hy3RuiRJّX*̤qtĥ[˚YDc_ !/vBD;fp~pn\!qnxp!yE{ٗm镠if+ؤ $eYpu7j-wƔS$0Z +OnAjTf+zjPsh(pWrw둫=XCJ>|i n9$%)w n=[#p-Nҭy?߇+tqPHFP&Y.2K䍂y#{2u1eKjBCr'9S{-USєb7QV)4ʵcW|_+2X"m-c <}Md-zv3A0!͇^%_H]{G~|대㶍DŽߚ*S5RtNkrhtHJkE?BUD}_jIOѐJMWJZpFCڍ_˶[uzl[\EWLٜB4dDobM$Vzw(qoE=G + ?D[}S m- =pVŽ3F +VStt$,O6Zh"":R{_k G-_PmSW:}˻>Ɂ@5QuP);ʈ2*2BH˩u35OTÂj| &ܮ︄zgO:{[= %w;g|}!} 0&!':lUpMP"|g۬;;HX}Ïe_ݷvt7B^VW:\t_ Np{+XKE3NmVwJh4Qa)^Z:Z-cʙZyRIADVfVxWfZPCw&tsGAY VZ'+]F@ Xf; o R+M/ݳ~C+(4\IňJT? lwgnkqkڅLgrޗ&ɘhm#\Cѿ'XBL9H6sTݭ +9G#Lo)d6RߘUT mKNu'A-͗hȃz!*d\UȮ,KؘUr2pgAm' 8gpuQk-j8(\ +!Ə}$%Izr8` I0y7yKԪju[KRUF]M[gBU<2/;3_3o3~0}j)# +GX +aۂh=91U"T´ +CCC:FRB,;E%`L;dءћVx&b3`z5cS/%e% ^tt㲽l.f8i'sJ@;2z=o8iӦqI1 ;,7~` ^kOdN=qmS}zq Ly}eV%sv)y׻}F v$_IZy?Y&H&p qDd3 +C$" G JĂ &;6]ZZNcLap>[ε@VFDYUF؏2 9!ݺ&huPTwWDCT{3SxQoU!U4f +y:0_TS T5Hs jlY;L,vo[rnL jruPбTh%…f$-j$9g4v^oV]M~ vm{z+=FY|RhCRQWT2TC|:2GnHTeuggNUfVjvWuLLxX|H`EY=j*RDl'a=gD☯"y^u]EȐEJ(,iʮqH WIe ^x ] -(dgD`#Y||ycvBAM e%!n_q R?c8+/W7#)q%f*=š  8M ^2"9뀭ocSH?T{q]G$%S-Z:/g`1O&H~']QXԞ|у*Q-گ}Vh ;h9Ӧw3ZvBya{'_9T:|:Y/Y&~E)!ZH{KF"`[k1>p[ߔoSGp[њ%33rrμӐݧ+gƦ!aiWIIh`0ߟHX>Cɮf&Y-3POf~M,7ÈTYy{ѹ(C FqYaEsoJuG%ش@pvo=|vޅ ׯ=ulzUm1PηOr)vi[3l*څeVj_y&q_\jY1sُ7E%H * XG"QQd w-\qAe{)}ædl^͊i8prBQo/=@ "i1DBqnC4ĝ,5gi1T*t^r ROΛn5t-RlAltg&phcl NNO;gTXo|HR`%z2zk,`u+sOC9(ϕve D*t=WCe>)=s~j M?R!Y"$XԈx`L=%t"R(5G-Q + h4kꃠRZzT_{!~xi[[-`m':'#sv:tŤ2iLްL]iv S޼Ũv[]vn<5G[Grd٢~D/ Qv[M{;6͞谲rl%`)^xN FӍSɧS qSet[IŶ"-faٍ_٪^m\|wqmd'"ʋӜ x~mQUJz|ݴ'!QdShYrmeX)92#eeS( +$-lVYQؐD:̍&f֦us6-#2)+cC .5c[(yiYU^6e*a3J 61LḛYcԥ|72I5<>VTt7TܫJB뎵ΘH& N=\LAS(Χe8٢%"LMcHXE,AORq8lMt^g HeCRv1ؖ\M] 󘱉Y|UHhڅ}}N\*|5[֗;';b&`zD} ԟ3=%bYPX2w k;fX5!G) 6SYVuN]f ¾Gƍ$fGO)'0e8DËNaDҔ/PJF= }'H)('י֓åQc#hS}oU,ז;Q%nЖ! <΢x4tBj]kע_n+jQ?6| +A[q,c!+O4-h +H3$Еm8; вBq (gȎ\;qIX=11C&&}SFo+ P/ (ٱRV)\N8#VKKS&TllEWVFgJCCQCHKQc2TrAM1$mBQxލ*. 6~'ZB_5G&K`V' Ove +q =W+CwSsk4~J8S[Q8S!ǵ#X熱EеyBYcI-`tD':72œbYr1::nsūPψt;ҩ9ԧݫaӯ7V Rg}S݌0u^IjҚQFªP4:ƌ ' #(QʟL0RF՘!9s? yW&08JBOE1KysiU?rձUQ2M )zcV 76RȚLX1ӿE} Vގ' Vr}gs~mz:`gm(|En0EXdő51uX(C;Dz"CT$i +9gg;<#NZM>gŤĈ5v_tl_]ʒnVnin&}q5Ъ`Lǃd:WM/]uSC&Y.֊mK?1lE."ٜ5Ntͻ]1RbD +WzzW[AAo-ʃމ6FֹԷնq64u'KJ (eZUq+/pr'$x6<*p^X/'k_^ܒzy9UnrN`)Gg?2}6h<_R^,^m:CW&(9GPYWF]Xl,{m~l Btd'vh|0 owHs?1z+#MCwؤhN 4ZShu̍OL@-1qq['W#IL+]@uddW`,Yn3gʼfo,;l[^ڻmlphxrkL&i.,2ѣJzps+erA)o 7q0\vTO7*pO}?5&R(=oH܍RYhHHs.Opگў +& ; +kË)|Xֱ//M.]I41qe<6!qiNdP `u+D QP9*I52w 3[rsNcWx4L(M pfǥbPXh mmN(VE`2NffLņh֨܈ʈfMГep:xPPrNHK,/֏ePfya뵻M6Pzx{f} }Ju! ^O +j}RsW\E'iXR WAS[mקyJI(%&6j9:t+d˨Ut<^c)5cg$iV:=y' +0i'b 0껚U=A2P]xޢ9`q3XhlslPt1 556Z^: bvB!sz]"D);K[/CPK\(/TtI~z'žk'||D5OkN:XٍBp|NvgJ>ѭ v&|$ +aK63Zpc)>Kb= +HkQz)/v}'Y }r%$B[t&:u=]Aď{Fc(]}]a̴u+*@>Vk $5rʗǥ + գ A:J5J*6/5WAC1'26Ck8E."<Nzxjp@O-_g(]u +z7>'\jad>HU$g0 r yqs_a:#>aA,{Qk!DaF}wg#>qV[%UN!FO3=|"i,,-*oJoh{ytл:G#.du[xݔоT34⿆TUG_8n"& Ppɠ@@6hx!D) +5\XӒ +, I @fDMc\88|_qqnSŧ/V"{<'KIo~sy{uH@S+]e nO45`X2$uUDb0$JUj ;:Z90eT2 f.sRZC~a[vP'Oe}Z27k+KbA0zKgeq|mz#ۄx3Scٕx6=.ZHn-7jg4NQyuMLI^Xt6ep3ȴP,ܫN_[U{ 6['Pu؊QR>VCVBjaj[OK,-'|!3 d\rN-uvkNGC")D 1`դhVJQKΞ,8Ue3xQc V冉n[TeE|`9bq0Q5a9Tte1@;GR̡GTX04NjelU :5S=B#[dƎBM}T{S?6IAhT4XApBk2w?[q%uASP34k7;E! IKsGۚaԩ +(SF+gf&+ 2bs]Tt[lf1N)XWhf.dNG0cW}+e+CG}M)[1s0BQB}TC$x<眄rY8jĩo6#ai2t)\ʅ~MfLB>㈰cg>~"Io\ZV`-E}*$:4fw⳻ +hX^~blV™kU4*!vB +ybV+~Bȉ YlXlINAJacGq_OGr :?:n5 ?8^a_RDJ0};;B1b8~C^ }Dw Pv#ixiARڭȏ2uz V! Ү'EP9EbDG(ʼ#-ɳnzwEhA&aSΏ Qu-]칖l}ĝ M,M=;1[OWQ$HC%tH\r&dv2ZMiko[j?#Kim%venRzߢz^p8{y{ '&ͿٙwOGw9v&C`":#dt -ICAp$DIb'%!&&A'q ?LoBQl Ł4b>A + {DzCy +&sYkbf9:-ȍ6m&R>wY`%B$\2cYR-]-qh'A [(L̒WUaYҋ +88Ad3v38^P"7Ym• ]c<$]4r>& uolJ{Ugm)-$Bl3HBB]ek9$6.;B_CzdI?@rZ94$rʤ:>hq ;s?VHo'Z.+ko do=z~˞CU}W\Vhvˌmչnr5=ܜB]`u?w6~ǹD rJ0lBup+o0/Zo<~uՓ$HA7{Tq'L~V N*9NG}HнT1xhm4+La}vRf.wa5t +K?b&YBurYD5!#_}D70[m/7[4F3 vSsa3΢Waum1(5CrIge[YSZul'I,Vw6glE}%Y3֐Rxm(ժ[6uWْKy-/Xg# !,c,!4j4a@:G#S.a@OTdx;j3"ݡ.v*@q5$Y ݘ|H}ěUݎw9EinIZƪ 8Nt&[KZFO'x stңsA1y˩ v́C?$Yt?#CżI$g_hF/ ży\V#bW/ HFdҟ޵h}\3! 2@lKjF;Dzc]~awx!}ҿw)xisoh oMo5nãVo}tr<}[{{lOQr(Sja/D4RH5n +{{a,DS {ȥXh$]gQFXl%{mSșc@Ks"}e铡E;6Ve$qjSoT>@1XJa6@[>E+jbEDm$qD]tѧLbC O>bTqhZKxZBCIDӘ8ݏVj2kkpzsnlՉ2c_!wSm-j^++y1JޣW[Ü0Eێ7dQMԩh`ѕ Fr.msn"!h1caODrJ4"Gk09W:4h%0p(C[ wH~s蝘R@[.bwZU8dW[ <5?ŘҮ&ΚނbU|fa KB8RSd۔=QsN3XfΊuDʳ%U&!ip^=}O?#wJSv]cO}`JmLk(W>Kv=:3+-. maVx*#IrR|~U NG96nīM#'gu/<ߍd56#9'9dp1߳gcyĔu~Z|C}R#gHSMk+,2}r;BlWJMJ`˹+㐇4ZqWSuVNFOګ)+9loڦ`IY:_ncic= cXYzDlZI蜼˨o7@k=cAu6O[n't6GƧA0J. RU n f a;@%MB5eMk5 x$lb/GŜx9nhWEU{\>PrfEqd%$={ ShQڥć2>(9xTOבHX:؛;79w3eCca4$D,C + +X$Co2FiVŮ@FE8DfZ+]jmk!qۓ Cx}y.f-0R0L=G +\tgCc$vOkzwKƪu@EJvȡ=\Zī[gw, k#8Hntwox6/=u ៥`yWGB6O6F:|Qav527-19>w"j="<ͧH>=00l+w!ӟ3f(>sZ4ܪkYDeU\k̙`sE .ֲpIqrFq>S,IwelƎ+jZv{9pr5i6x1U^+6E5U^!W\5Xd~WDvd w\*QUvh 6d[+_kd4@C1߂UfUphC>i\#9>`be =- '\myM.ڙLIԂq~0q\"G=6/bzum/g/vAE\ʆw( ;a& +'<ջ][kP.+YiE{' Yۍ6;HΥ{ְ +\~ [86Sr: PY՛@υ̸;#m-Kb[@Vwb%㨺L7Yx:ΜMjE!v9ZAhkexCd< (Ͱg@hOkH<F"`U3rz~ܭr1ZdUfWe0gFE\er!Yi]. -?4}ynBծG{[E3*+-Fׄ*Hy24҉MuoX협o"(hbSΜ)DMՊ4>t[FE-ۖ"؇nX6|p(ڇՆLPˊߴ=1`vdvQẽfMbV^rgnGtFDv0wg$zzF#J跔҇''Z/ɧۤ.a$Uu T1K~]3Czv*4ջ'T>}X(To<3ж14ui I˓(tdv ᴦ#w.<ȯe.<)a<`Cod竿}Sz16/K"٘y>P+_<|J_3D"/hUIL \H;9BG 8SKSX!59LS8&R)إH&:%jСY0jĬlP')kHёD.jչ S r6nިGV'7?Ȗ8`@@Y@@A6GKĥh2FBւq x9EBJjIopx(ixZj=xHHR)%(x}(,َ2B77号?" 9@mrCttCu) qq~jlLqq Gssou7;77~1И(nQ!@ꋬX& lH$OV]1'bqcj"cFU^B2*Ҭ*{LmQVEr~%rۋ-zH%;w.bXB)/&Z甖o]Ӝ'5+C^KAGid.f%|=8xLɆnVp$5*-+t֗)ϸ% d*?e +g%d4n2ѦOoaPbbg"J[&Ev%6o`@Z3ǭ@2C2V$˱rSq^JQ ASNξIRӘtƠ&!H  6ī gyf|yP;J>㵶)js&c oj\}4"*TԆO5j6օSAHM{R+56Xmw̢ȵ__ev/x=q8-{!fB>ZbUV<5 0$zQ]}M@Wh$ŷ )w]/iR5h/+k.7jKBCXm/{ٟy>`tgfUQ%]i*EecɩS?-҃p ]fEæi ܬV PiaH2qT)( 6KuU50lQy B,>8y6}Vds=#3?9T,q A cIh0%IOA˕(QF# B&TsGzY=z(~\t&tSpu㤐LܒQ:v >GPK Gްnt=ҹ̎gƀ &.v";gIN)Ɏ!Ȑ5.?6HȇgXPdbT'٠ CQgà +M` ֿt"*3AQW3m c)B8g"hm}vS~}?}8yhWPɳY aYvK !)[;!NkAh##٩, +Iy %7dB] *ƍgk=xs6j3Z"C煉 +z 'c' :Io:YHD#Q"s>&U6&-y^ D,qX):/f!XxЛWǾ c1TJ)haNI#<` YG+5^^Hq#DieHv:[ Y!  ^<֍:J4qݎ׌2d1OXD75]aϐ>̒G^]EPa\JiBƍ+7nۧ@ܽ"6Sک/pۯ*5fH["#s hfQ(e'+̓cH1.bg^cXvDceTKغ&#1f{43A֦,.0p$_$f72L;GU7S^}㟫v +u鯊VTm*7IsoPR[Po[+bA,6D( +sdZxYw6ZOvo֝HHT,Eu|,׷yVL?o?!(7i(lrM=CNKw@ۆ\brTpT گ:_%%FYs XF*_bC@~ Sy06CKa@cS3v=40"qe(Xy +*>=lݘgqƂ[YBP@z3]4ڙqv,d"!]ŢR<<ݪ^)ե/rgՖLΉ]]P2ԧ6߲Ր]E]&Py8xkXUuaZ*]t8/Ip ]Eo Ծ&Iqi.,p{KۂEWJ&#MH Hq5huO\&QU)3?e{7d,6iSLEG_Ja+p?`y/R嶠uOa 7WX*9r<kM{[ظct/VIV$[ڮܢa gѡ s}MsMe|fްŁyJ+Gn]q?24&sU~++BogE~;6|c=s޷HZdB&yr/~0wOw4# ~t4c`EGfm'Kډo;ayMc.',\оfPv.D!8y8>?WG((h=H!!y{-G4V8VA?`D:'ԻQKf3xא1Hc7a!1q oxX$|\oԢN O G,'h@@6 T_\vUǛZPپ*@ϠZ[ڤ(HP;mݒ̔6[/g{U12}?/kƶ.!c}qu~h'n}< ,@AwH&E6UGGɮo0s:HO-Ɗ:u8`URm;O)%\q*lݯREiU5P5ՄSPSEж̚o7-9hZP,h;*jb\";5.%W#;#|`MXr׶ꜳSrzn]ꝕ TS!Ȇ,v< ;i"v>}2彋imVLa9<-ö< ._QWs,S6}ݤ71ݑjxPvD(4!#h9(\aZE3P1tX㯍 dWB˦FhgQJD$`0vWhB,?|dEZn19b#%3Йɚ8 + &|7 @!vɄppzNY^֙4Y>3dHV$^T<]zIn )u7{-Lj7*TU5 B3=mFˉVgAv%mXEOՀ,c]O>2jK&L}ERjv}L0A" +M:$JKü¹maBK/di薡sג;b%Ǩ}lSYѰm-ZΕt wL:e㬋(Zh2ɓey{~EͳQEEc 3 RZ %R[yxCԆ8Qoa0(U,+=*M$sq3& QdsOb28t;Z\PɌxÌ 3tXܿII~)5E26-CaXtb`aK},`xE+=JLiw9G@q ʓUL_VAAֺGGӥns VUD\;iq/+\R EEl2 [󊡥+ ީ]i~.u/6^r-/4$tmz|\7X/.[5q%7{;O~㌶k2.+M-ܺf~{$LcT2vj-6ۍcA=/.HΖ({iM0OLjV΃u&A6v]C!8?y2A ΟV]/dAuH"ڈw]N*Ph"\ Y ?SQ&rw:zz[6w :衘Dy#ٮ0eҮglؚ X<\6׊i<2L״\z~xsvۧ[swZW\oAA> +"^PH9ڔL{&gHSFH-l__DN/O =z|2!WZP ȧ.9$ITVRp)ȇԏpM!MOy>v)k3 +=@ⓤr.fI8iBrZB_z&CS@;Z;{1,~jTҭ'< e1c? lR"aO4ǴL,kayG̬sn;_-)^b!Qҧ9t~'Fɓ:6 ҄Z'#`9Q1o0Tq07ƈ_WѷO#3?Teï>20e@@XV4uؖ[C>4M?J6-K, qǕgD黆uo )^v?gE-Ǜ눁Q LV MMú⬯\֪U&J"(5q؎QiGYLDu1& ϗiϊzE Yxw鲟^E,淡F;1Jp/_8o4fZJ2viĨAEI, +!E6U 5aW;^hkUcJE+zS5-&.H,n_<5#ƛig0T<*uov"R0٭>[")~UZ#:0o fUǛ~ߎۈW̏mũc9~|U ϒٳ8&Y2FQjXt0AlJ@?%{%zi{TvG:I.d^iHxv?#s]_uB+kX;h/#~ўK#`݀C@5jXlelE@JhǟaLH0' +Hz&C8Ne(C帿Xl3 0 +zף7w\o7 $r*̀o$sn<FiCNM:Vсl:n! +Wdԭ7 O#8CE_4`ԡ;щs C!=؍)4bSySKh7p+W&oggeWafkfZӶ3 +NakfG$O,s4Qso0(%=M2ݦ͙K#c&CޚMzVߝ}=fP&F;9O(?+ӠL"ʀn`wKLRME +9&i`%/ 3|2 l&A->MɌ$imuY_|NBrPZԔ=i)Rz D)tٷ9 ӒhIy/s +~Zd5+j]٘:a;zLsyy>U.#dG҅6C&-*rlM0+!J56OuuJĨ(gJՒ$Ѫ0@OhLCJމ$\+pV"0DxРQ=G0yQVp}JXbQZ7+O8/Tjz1Գ%KoHKo.*H!gaSJl3 -,8™]\}^=7QMAƎ0=aX!$}W #[yrP!ZF˹TJuksrڭ]1MUrerGJHjۊo*>yL` ')Ev-haŃ^.g(о2r4Уq o%]Ѿ(K"lӝ]qZ&J.GG M:nsnqІh4UkXcr֗,٫Gt7S@;CkBn"V?:&k#U)ҧ8x`AlS,3Mqǚ0ݵH5\WNTLZC7V3ΚziKK*QC(:-p*o)h[P-7ST!yqW(da-3!e/:uۢR<G1/@!LFV +6zkH'wn'OHmVʍ33rYMvy=~˭up'fd*D2)Cm54㋬]j)eQo %0_* %qEyZKI¢p+1^㋬itBw"l9b!~,H4h<6W*>}W,"F)tX:߾9zmُ4ae>KzJ|QySVH OE~fZUU; (K, ہ kI/[Qouȑp{'eۇ,t>ptyT +1Q0@3Px + _A~ʥzUQoN[kkũl5j쪗m:‹鎰RV0eL{O~MTCh3C5fr6#~8ܯ_]v}H=x>1zw:1oAIwM?2Q ¶Vt")s֕B,ԃ=<6Jݸ_^"xX!F;646Ifƺ*OR1seʡ8@.XAA{?АcҨ)?/¹ǦDU{^TAhojK`IK*[)rB-u} +=X)Fa64R8L@m|3Սۘ &ql >܊؍v`3!Ep;?S,m۶m۶mzٶm۶mۮ^皫6X۹8מ72"32 un=O=ӝ' +<[hdȈ-4 +̀%qPҡ`}82#Kx:uv\tDC9Zbog}/GMTaOW@Nm7z+IC),$RƁPv>uCn-US _RJ|+c8櫢Ìv=z y̥.EwږJtgJ,Jm H9 !5?J&IL#ľlZұmj;c `[R4OK<)1}(;ڴz&-T[Ҭvf6veXiws뿈*m%4uK KhK#( 0D|MlڨGȑ}F 21G@mgϲr8^`xVn1C íÉÊ#-e,-#GCO9 m(,Ǵj6@C4;k't٩~R˙`d*Yk +GCu@CBn:lBelYmbz!h O&Goi+33g/:aQGܦ{LL93؄jkIMd#˖ΟÜwV4iH'.,MA X/ ڜ5Qb,8b$SH{2KX`7רn% J`'&5(Vlx+L9)6ؖ︶OO<ɋB 5P)O0CA]TӍ+V=腠yGzHttI8m;Q!.т1b=бm.Hr[xM8[bO%Z +.zĠNT$lk^LuHm#X)k Gx:/`ϋ9<8C>Z>#$ą7,%R1\;RrkJ ,kpiuلNe f9D+QZ{d@&4fprKbIq"ۧ#2U7ŇV&\[5$[[v@6E4Yrfs"T HզdoKH΂ Dt:/I@yX yXQ1oy?k{z[ ]ZW*,FYBahK#$q84Eks. DrLqO9AIQ+v\$3uT4IUg(-+0I] SwH[\NJʺ:YDM^ +J[OYIjDK`m !cI9i\͔:"q&]Y^RX~JXKvKG""ĊUP7C‚ +3`S%¤q"Pɱ,q7a+yuΗ $$}(ZLyB&n@iD7)=Qa1*~AvO^cQt9lpLm/1"!!ohF|uT'%K `t>'ܦ| >P"*Ck2'f¸Gk4;2exMII%oFhStgNCbLauitBʬ [y :iτ IqF% Iz;Ъ6\)#&1!ڄF(RGdݔ_]GKP +,ĨJKaiR3&.!+_LhxG- 7 s#ى7sPc)ZHhډXlT;iJ.Lh{NReUҺ6X0ߦN)D\ݕE3-O6nMk zZ:%xӊ1uoLٟoD/z$nwq-70,mz-j+e*vٷQ6CJꢗv=JߑN>*RelTa>cணtl= y3d m e6g!PmiV#ʇee 4k/d[!&#UtsQ&kSu^2,F*zɚC*noN'qI +e/JSj!e8`Gv~B˫E&#g*hhT5d0FJjiQ%\G>Qllw'?P.Ȧ=ՕU-+8|25g|")k?IœG[ &:شnʉ&ئ*uhywH:R<&kvu.Yo( tWA_w-Niwu>KSy= R.0.aޤGsM= 44\u`YӔM:fQUI9|,:΁WhvXxh([ktIPʚS©]=pR–(צ4{㍿s)6&+4=,->a2E]5 ><PGh"HȄ9a y ,dqr`TP0!N&1"ö́Hl)lnnGʯz#fwEP˱Bɼ/6={Ѝ_Ik#*^Y6f+Ao ^pͤ Q(K0,3  Y1.ȉf$ CbξBq9i%-vSw%tt5FBRW2 3J`A-IкdR9L=V^uu'+L%aֹF/Dŭj7ݫX{@S);ꏿ,LݙGx7dKh4^ҨNZL%?L=#lb:jKn or`u2}-ś]2q1+[$S bW8&k'Yj8Nޣ8zeWs>Ţ:,#k3%@c:> 8DXJ R-p|lر6Qh3(yac^KAqU}!Qkt,9_)@ KWpYR!arɹO[(~I Q泭d6Q?/߯d +g Rh킓S Zʖyml!>dA3 #kS +n[u5I;qO_M1)ظ q}Xyǁ-D*&f2=FG8֞F@`mj⮰yϸuԚIk`_<\ÑtVY"G*8: k"'&J sS6 8c1$Ur)fmڤH )d[ԠA&K=rY \&93=LS& +k+6;-=eI7ñפ(2*4ƒF=͏~fMk w!s?2Zt +dR%Gx|P=Ydm\ٙUL1;!񚁥s͚MAG$Ѽ +b6Q{JL@{U?j%} '"˖٭ !Gs~v.1&. ("Y66J4ZotM淈#lF6j+lsӾ2O 5^UԌ5_k slD爟@ydq'$ BRi\h=̼.KĨ6!2A-e]—d@ExVkR=1K;k[LS-ޭ%3(z=Q0&3bS.HxzOYKM+tƻgw37͵iku(\|/k/a};B;݉8f!FI4W<{jU}9B@PwRA(L`>oZz(TpQ?-s_h +FL4 oMJoK6>8_/bd045yx9b#qcGN;PBC9X64Yal~'ZJIX5mx)qO:;-,=#t4||&\'7pD'xeԲpD2j>}97i#%BЉuGU:TŪ=,zQܡ%9:E qM&蟗3dM x9ɴ&()l͔Ih +uY3l㷣3rG3f]>fߖb{97\}}|Jgg:^o~fxAl!q=S !%ßF0Nv$! e":Zg3 :}ᛉ1k+$暷iDr1xҲdpά:QIoe{ѤH, :e9m*B%P.NYm.i0[t:%-jvj[>&Q}mftᦧb.EࢗIǮt@^s!`B +ު=#_!<=ж/;Ŗ<QZj`;4TfeviԴ"՟ЁڟLu8,Bo$lX]C.Y1PGNT_nT{ +5-|)Ed79^ԏ{t@PL8LZ"sV-"#,]>kMFI~6F\̈́YHGS$=vNTيUbem=@#r_i"VQnZp~z/_.=!z+4ں<]o\޿" ՐJ,.jʎeMj/h*\@eͽw +uSmfrgpn`E8}pe7Cv;wM\ +vhIH5'̩Q>jJQW-foRd,C6hXŠ;:jř~yrMC }4x  ۲$O@!8R' FP>?O15TmΠH}N2نJs.Y9`c;.bfQUIЀ6l[ׄyS_PFfW&e|:A%!᤭Pi;qWL'ϻ:3/=XHUFбd_UkGeEWIq2]oi%L&2-m6lS|GAdwmfMU,o]g⾦Q%U@ί㢜/ʨ2#KuI$?bf[A7,f=RHpɉʙ>" + /,;jZ w4z4hjNl3Q~Q6VWOC22/E"U52~)9`rI?;fkI37(X"YoU{߄YSՃY1 !Ak \R)S)3UŅ'OtѪ9 + Nh7YY\ӎ96{G\bط|ӈFEO<~R.] +{S0 (JqZk`Nc +GjɨF|%4J[)u uڶ}4]o|`M5?l~+wx*^Q8\}cۂ@I]Y;rG`vOU{C@U7([C:k-:ݚ&Da!g(qh^7#1v 9vYQR8^NUB3Ձ 03&Y5[gtu @ǧH6FeŃl"HL洴f+T͒trZ'Αl3ʟk|e]$ΕnnwYmc7u}Gqq /&aqC`c>{A~>vqp&<ڦfiXAI~B,AȦzØT>NxŁvX9U@E[eu#&"Mi+C3cՎ3WPދ '\֍Q6͞N+Nlv$%)6l.EWdvdJ)D]98IqLl+XR.p&p`bX x +R@ZIR]#9m՛,$(.Ljp` +u vن1ɌN!xAHtt{pz1+٠ l*BedBXGD)36-ȋ"feb|3JSc۝6Ya< YrP&?Ng"h}Ѕ)ʪR4i^wƩO8mhR]*CUǦzS[LO% jP˩prd \𻔩O'EێD/J&:d?Cr?$-@x73T!|!2za**ҥkV,V\BYCnxz~EPݷ#W{z>Ԃ%99d 9 dW݃P^{ZYdA8CKzcaccSOlЦ.tdq|w(ךZ850VXNpKTY}\tiᤒ_7qhE 5}i2eÆCFiJs<4j8|GL~E ;faa$bَ0a5dDZ&2=ӕ;A +Iް'5Jv &هtZqy0A $n"})xUDz50x(aE +2=җƷ|oJkOO7kզuwuE>6V, +v>s Yb +ZCQ"Z;*Z@!v<@gm x] +G*; mʕۆV^WB3)D|nPA|g!/ᙚtpm3nż/,V7[:!^XMxQŧME-0 YVpo̺Oص 8 Ksn\fUX_5mg-m#;mk=M.K/6_ RBp0_ϫ YyPpb:S\gV9/f\8e&l3|}8{n v-=gPo$3>|-!}ɘtb)Hn/@;/H'[pA>=GW}3o&CӺ\󛆍]}P|c0uTnuTRO<-/iڵ3BOτC_`xi%U>Ct,'DR!r*))9ުE٪7mqC/}6:0j#SHuq}7쑵C/1ao鷬>7 -]|:в"oxkקdD6 Eht-f:x/Z9<%vȨji{N?;;q. PZ]TG v6 :P F*> ~zz-d']Pݪh4VtRJ| i˞3/Mjǥ_>V{ˬ9H.K֞k n4]۝:YYJ՟"y8/LVggBՂnT2 oq zmeYіCaN 7Ӎ‰Κk:o&]kdn2w%L5?'*fn9\Վ'C~X +{j77^"= +)ik H1ӪKF1lF39_p6ѢȂJA^L>bap׶=f>bɼϺ 9׳% TY ]o-_ѱLz-[/iW%[H8kAMM8+;( +1:!)? <Ö.8,nWB=>o=ZoWߒ\?Kѓ/XO5E]AYG.v]C>6DHik7s;8 f TakeA\[L}TXƋtԑ^.]HOeR-T޳O$$ + Ӵ1%wXYĸ$%˜*P[hhNfmFD7~d,EYJc4d<օb 8 -Y+)"of-qY̚cYZʍ%ZjES$vt*fh?ZJ1JZ=@qm2\51Vݛ2p"qLS$Ȃsl_Iq'4)pͰ"c&Ob_w +P6:TƬM.~vb)׼$zn= EVrcF`H\H6+DRs4&>jy Vl2/$JҴ+E5IE҂ aH 7.k\PROmv4/0f1-FoҸH'4F0E[3'Rk\;gbXQ֜lM%1s ~6#q0n|ў$)$1&y +WΧΊL֖h9,{߰3?CQLzSLzU@>*;S_+: Le4LW[rpxSԕg}~ } 9~<>VoW{ 49-p_%G؊3 hmrBe @Cu7RXJ]FDUnt*7uԚemDb^B&͑`TFiQ!H]VB1/I[@%B}E^ :8icgDZpiuaUImk$s7f팪ʷx0#/ M-;(zB@+ -WE^tlT\joMmz +QM@݈A^}fږa⨇̊pv /qi[8?j)e;/w_Չ-ffC ;+8 g \3XDU.Ikuā9EvZ/w{psɝfz"Sޅmb/Dby؏*rIwlýh'оrɮrIܪ.l>rs[_ wE" SBd 5 u{xd +3yb/'vs_ +gkslw6Eu}֗em|< jV5WgAd@^ ܉?#O㑺wD &jH3SYEKo w]s-p>"$<mZ3< q lgp+G-X k|[ϕA0oϕF,e-dƖrHU|HrkRzلp-]V949y>ܛ<_WpDmlJv,o rI:^;`qۥk[0=c@4ݱRfwV2ӥGrh:P +1/&2}ڱy-ZscՊ}jĚL9],agt_mF2L m`c#\@0y-CeȆ s% V /`[#ubpCe/Ms-nkmSc'eU3x 0Rq%G+naKmSXvN䦠.79= Rm1 {6 0;s!Xi=@OF2d!嫍^zӆ|ndH@{'T:5aLOCÄe'nw%LD(Q2㫃dl_/oM4j:&.&y2[I0I1 ^ >ŞBQ~= pFQSC^Fv9ݒ"K;)p5(ߥ,($pHJ# zrRt]*J֞չJvMAZ)U(IO +г܂TP%"V'܋_ O(HK+H4ub H.<#Vzh~;~|kk +l琋~! IMCYs\ɕ/9-Cf׽)@gϕݿyEQ~ܺ_,/KdIɂuF䄐'Mx!u{Jg鿁y + IP"I2I==a6f6p}aZ{x Xf$3+nwr[aXO^;~q-I(7=W}alZCm={¬Yn~lPR1GcCNmldm;#9cYC +W2ղdfixG1EojnD= hu"q̠Ri u?eEDmWrgkVUgebUҨ| 2DM1~*%ɸ굽X"B#C8%M g&T0M@]fE.h4?[}w`N]bbN<iy+9.WM +7!%Qq8QZ.H ahX{e0[xLuYFN”-\`-_V41f==@vkV} lnn lI`a`o*+?{ =9…<ۣ`\{ ckUxhDBD߉WTK Wf@*b`.q4| +U=|#@ѿUS-!ZTE(+oD/{Fr]$ 8i{+KYc I\D lyܩkL ./K\^T˫_\^OWqyIw)!&^@)$gԺiݻ"gfB:j j8\w/yӛL/E D{vjЄzpO0NֿnAc,}"RW2%xRLW30Ȍbj(,Wx4ml_RT[6(WREqW- *R +MmqعHfB9 2S e`i{TO*/y4-+ٵ+\<Otv #>{W;I%s(:/X9VZ* & rz Z^pFKI=z` +xhf'f+LH^fa`at|eu 3b6ȇ7}ۇ͊'l2 E%{5Vy7~';KS !NrHzt=[~5,) cw64(jo7c.I_"f)H f.XW+HZτL6"xԼkE#rf`ࢄg:U}!! +߳ [%oƾ'Yާޗ}b7MNڱ0mB | fo'F_v)2r#.NJ!`dTm S }~v]A-S~,LyIsQ]Yx{L>po:Ogě&4cOSf¬}‰zpc#'7}$^,qSpX{Q=.ahN맠?3Y׶6ZPvΕ}35j95Wv۫onPUe \C̞MC”59G/wXr59r+==W^kMaY8'9,-~=N:$_]@Mq$.nhu 秠M5 ͼavwy0K I&造*7fl\%c +,,&Հ'*֗e<5li-:7dVxJoteA]> Ϟ9bM'=1Ø#=$=!zCɴ$ VR>CTKڎ-)'`Ι6(Ʀѩ݅9PKAr-"a+&WmZS-8NɜL8^nfF纞͚Vܣ)tėɆQ5enN M/)NC͜f Ñ?~5m]chGh_HVHdq-ZteyE8-_P7}@ U+&HŌ(T֋dhrd){rNyxUU`UR pswo3DpEL =SGlA10݄N^zg{5( ˘7wQiVfkg9V`h"e% ɦ\:" 9X ;Q x`;W"i +0f-C!Nueu/^)ED~ tܘS(i/q,HΜZ3*Oe!\ЙQRW[c~0|Jf¨5lޱXƮKX-dcduxм) +lhykO' Dj̶WZL+RzeW-Vn(xrtW +vSi6-c9maxl/am#7u,Wz,Z.K`rվA6a⬶RD+q\[Iua[ya^OkUT0OEpl30AYVc4B\';qA_tb3\#9 r k=^/Qل,|W 2X觲Iy4lD[C}j$psݨa̱CXDGf- +1\.D; sN9 ^;t̆w;.MItD5"@ +||~Bxݼ4pg]!K~/\1 +1F5׿xd{F (яZU%L=f .}cVlGZ2/Ř=9[N/A2w{ŁDAkhnlW"CLW=3O|$3Ne<NGg,Ϙ9́e+PG!ǕLO*3:JEmd,:v/GV[eZ9jJXCެqu`Y؉9Cj!VfUz-5 잋Mٗeib̫SSb +Ӛ6bNmpb=$m EmhqT)y)V)6h5w-mE1&nUkFFqE 0!cA,ףƾrCpWC*1n;7*hO-C|uז&WahWL[z$F!; $ Hsp $C#9:e B:\~bLQNmYlK LRfyj.ibSKY;LPj7`2^5tvV%JH/wG#F>+!p؝j\ `T5EmbfqNvSԘ̑'ĻO!wb(M͠j&cVy^˜Ni˷ /K "By졬+B9sп+E<,/8,tuH=%څhw˺ȏ%z 'sI3!dA7T(l@ !zaT٣I 9 GooY|M3g`Jk9Ԧ 5$hcqldi 3uПh DPq2}E&qlpsT'|HM dGP: Ot;=!Ny^$0 JGaMҳb4S :/.Puv#Jô3#Nڪyc}Sw${0 9:`NTk^z0%@|`a^l$z9(J'vK_*3niQj*PԺ5UaRLr4 +.uĚtwH+C" gC핉-KO30=*<2"# "_:~H뮓>0)XDv한DgٚQbЂjx9oLd>C2JzD -L`W^q$_I yd72v9-£'Q.^}ݱUI _"!wG--]yOǯ lR% ټAC([$Hl?Jm+#R,& ] hk\j +0z>+3v m!cfXNLi$Z<ᒰO0x:6ڇ+v|҆s:tm2M^"’t\4#n>,ߜl2%f>|vx^p[^€i[LRuDpRs!I۬F}m!ZA`7p@G Ұt (oj3|[+ 1?5>Y* T1b`m9+?:% Qt8Z%4F*cA?b5#nz+1FAn|(b77V =’ xI޴ +xbZcN>}ĝ%>(T<:p}]I\/F66`r04=%sI2vڰ٘.s>JwG*gNb=̍L7:Y:h@ΫEՋW[-Ajj{+t _7M_oVN^RMZeQxhS4T刅7=ַȘs۞~X{fp :DKrUq+4 [_A,X,Pk` /? y&{͕W0S$U"6T+@p6Ԭ яL /BSbw r`M~c<3)f]->ݭۏ :,#]{o?_׉;^%/05igU.g`u2z?"d$ )ܼaywtBLSѕNfCIRO{4OC슗v'*+9_O=_an|XrX5aG1ˎ܄|@@`sFxf3cWzbIĢD f#HFu +c!{NSӚ-EKrKQrHNɿ+Z1Y)XnDU폫1ᯟz-<' GS9{Sj$=qv +/Sב6 +ĊTQ,6eC?}ӛCHK+t/",f%XE+kچ WB^ .; *&KEFe?X6kPCUՃNcKzNYh9jxo,$3%bAR~ +QC|O/Z7ڴő"L<4++T%L% 厔mTVŅBzAL&- +%d,k2!m8K;\d822GpF`d,z[+Q"cnT l%Ev|TӓG.DD䜕dDw5=>ښ׽, #LAMλ@Y*B 1<{zȺڣZ,O;ǮݻәteuynŃD.Sj摇j&1sj8'1M FI2+밊FvwcX-_{kS[m5X⒣B7qB-uNZ \՚=3 T}jkX}`X]H \~$~Zc8X*ސmDb(`6/ ^d*lGR?#2?~4wL|?Np0/`.XB:@hhь]?>2ޢ$&¦v ^Z+Ѱԧco&m&Uv(D.|򄇶(F&v-[¶jҚr]5}&!y2Q(:Q-B*Ot(?Fhu6 ߤ}NͱiU;Ha\:>naK34l?L`qãXItg>"w@\sl3-9q\`Ha $[K^ZL`}03M*b(r1۞ŭD<Fx64WP +WO0,P5f b=9\q1E+*.ZP=۩_~C󉞢FB|&^"2t2+8h̚\2*[΢a0&:(X^Fn<1ɻ _('$^RYjX`:@U㫐E@<Ƃc]]4==DÛtQinj_TX<'_=GpQ!ǝg列SDcr`:AVQ&Tseҟ?+Y3d=׵]f>y9 L{_wB2;Os;η_P4-C)nA;űFj ^Yy#è,y ǎ@,2ȥkLEFj#فovO>\m`xݣTSMR1^Ub嚤Ѩ)Ur3r҂ұ[jzZ8j2j9x_ X64evw1%s-RE:RՏWsk2bC/ +Y;Bg2Ē=ʢR]j1F.5~T J1͸sg5%bF0i~XTʄ#ʛ(҆<#AC:v.CB-"<2mhA|6; k +7 qt匽#a\qVRedR玩U\%-7Bf:$ +!0z!~/RbsU%B, (#@ua2`r(Q%ۣ=jOy-I7N88g+N(dcCBCaGU Si-3VW1%!5zDw)Aʙ(H2K+ȣ+t8$T&m QboxfO]z^V*b<= *ZX dw74:_'eI< uPx 8NjXӨ; &ʳ;LW|-P&3BLOsù˫yb񣼤gEH!mTn+H)3f Gi&Ő&X⻐<:iX.pzBЄ-&01rzM` * `8 "F9Sddv#cJI[v*FV DqIv>bTv,)'IեRqMM QV"ss77UmUm*{svU.ҞZn8ͬ+81ϼ8෺<Qpr:9 2b%0Lc㩁5X\kJ1LVSYS93e3xLNu Aa6H<-͉( IY,:-яUՠAeywFzPJjr\ܡU)$He~"بH}W-qMam›M@c!֭HuyFS4;skjCLI{eҡI?Dsl>cCg&g7r7ajtv^Tʥ4RI6ex:eݣD2ISۢle(/@LNKDYfy9?E3Zf-/( #b@w7,O+oT3D?V74X V? gџNL Itq,LS AIv eBxAx=N2taOm?>{C{G~TEbĨi#Cr̘J)hӊTB:0Ў-1fD$A*<F̐܇K)9/..Bn욟}8|[#.sF#J>a9pŵ|K6H&PsEẇENa#ާI&!782*>bj>bZxn':ouEQ`i!i' +NLg=(2:l73j;)?"F? + ͙rŬmӟ$sÅRC11Tfl[u{6=,cw&Q'C0rL%Q_|=ÜOY:^;f ۗZby4IͳEu$ v uB#C'ț)[b$cG< x\ éXj5AΉ^)Qw^N]'{=*,, 7~d]'"Ē݉Aݭymhh} +†kaɫ&篼Ҝ+ʏVL:Xf2Pj"U-ႀ J ҖKG bs,Ap}cW +왇nҬؿ6CtS;ٗÒǗ"8fk"ۓ`q.~-OvzýT!,51yg6.u ^ [Ӽ^ZaF>VaZ(3%<-In 䗹~$Ȋs>Abu#@`ҭM7D:J^"!B"~y-|SG8,>f@翗m>Ϩ6D{[䴇Fx6GS6 +d/~-!Jё_(uK9Cq;FH33D;LSGpѥo%dvJ uLi{:5)MSN cԕfIAݣC +{8F]Ot^LBM[7:IE[YFLCSR,>Jҹ<ҥWH|N6JZIpDnټ7e-Ϟ\# A~HHPc2Q0'^bCxGؕsA˥KXxJ`l.E1q-KP|LLJAUj.k{ +SLtь͜jט|ߴz=5[8J,-M"5P25J2io8YOltw^rrs3lAf/Z,na l*`i%C}vch%K[;% +@=`NǺ*8cDwCR+,K@Ҧ% no岺G +ߊJTHʹSgo-+ m7ߏX8Bh#C j34xQ:JC0i} Z $B1ԧie(j$EKQ:l6qP2DG Frz G9iA栖P}R<)XWDk50tVI]s:4bZl!"ΘᚩQ`?0d1ΟtPEr~Kɇ<"'OxcSXކ| +*+b_H<=uSA\Nеܪ<-tuna v~W|񉥷4$2 6ƃ&݊`q0b^DFOu?O8Jr+=2]F˪=[`Tl>hS,L|0`Ccĺ,‘M(#bᕤ!X fi^NA ƥneByHEzZ 'n"ۺsめ. + +QB hrfP(@B6֩e%y;'}Ir鄤raqw.#IDͰڄ#XM!L.2pH~>_gB5G'!B˱vG'cwZČһ3B@X?ȌF!::% ;][;e$QʣY},yMޑɢU+q$K"kܼuT!=B'(x)!_l]虢h&;1[ bc><'[K E"YrwZ\Ȓ'#\~yh\9X.n:WUqZ-wzUQWBiyJnwS0=@Zz j3򳣩R>q׿9`9D ad U"_/cBc +z"@ +VP-mB#5 \ZA$!?t!DuJPhBc% y_S +Cą= $%I\c bl $iS[u2zQlRzڞ7Kj4#+R\jmua{iO1'$bZ߹k_k )cRX>4OY՝CknM~,k߹:U +XtOz;oBxWL0xfg" h.))BQZo2}9RГ,vj9+SzݲMN4'C My!r Fe% 9y1zѨQϘN`ةiT(V:VΪau6P}M13:{7lsjl~Ng!wv)_KTLg ݏ43YQgqLN 9-j=.z_^@;qLp{3HnC@6818lTG+]1w!KT +"=n=HHg-wV `L lcYlUi[L.:C"o/ 6Gp@/߸k0v@cG󧼓ſi@z؛y&ӓDQ`*\! !;ZmmYE>lmQuTj_^imjF}27z`" +YsEp*rh 6"ܛ?b*(.t̉ +?&v +l{{q2hվgNsmsUmg#v?ujo#veronklĝdپ暼#RY~(?WȳɍPjσ_=@B®Low;{,x04_cygl$ѻRcH?Dڤ;7UI L888[X9twjZdZÉ36%/YiO_1SndD\yrJ: c`v+{Mqb [9m6-#cs`äԦx&?% 0*7q߶UJ *ߌinJ +-v_v "hӓ(5 Wީ ֭ibEnv\ԋ >&TYf4R8]TκK3ԡ=t秨 PxS}S0dAI&xg,ZΘeS'(}%jk @05m; ʨ"=Kw]2h>vgN0h啑8"~ cоv,iiZdS/^nkk ]h.ۀ9_d9\b} @TjU^ H/8"9>8/7G&|l퐈ȯbnmOԬ2;9biNx\i)cѩ@iAU4g[Q+:^YmdPPI `hT 6g`#b1 ê8a5XgG: 1F&W@tJK T)ԟy0+tJf0jUou#r4m1ee'Fd.fDrR0fjO`hOvj AX-O`oΊ:w/iiu}=L/. ޑU=5~^-S}L >=9L\L$ ||M7<)q?gYkFsCTt?|K6V}I9Fvd8]nB PoJ{tz7Tz~ |1\ +v H7o`9SB1H#MG^+сGĜw8o 'xn1?wf /anLhZmAt/(g}aQDn2Q b[A'9$ĝ14M(sڜ+U.ƭN!i# :=/ uD;ySjSRΡ;cTfdwg:c($ɾÜJeF4숳N[75H'9Ve5E҆i!hЗCZ G1c<^J_ȷ|'b)O.Ͳ׮$f'MO8zveA}NܽӗG7#.kӃӔOVYդX^N|AXW.:Є} 3 }K28Ϧc4#B#  } "B6I &fAFՎbف$8Wx?4i?7ߝu4=GPR ,.WY\Lt Ey!s.2JK :SVoBCա8FX6Ԑ̞eD' M]~w OꭁZ#TQC5kZD~o,Gڃc7x~){NQ(ZrPS訁7DyqG&9RQUQJqϬ [b;M({^Yl9{* +%'NdEЀ\׶IROSBxiU ++'z~e* d$ +Vki)vEJ%mm +<`Q`ÅS 3tiu>69`39ghTzoZ)'+')6RSGt\J/4ms{97oJ~κ'Zn7Q_?A.e%(yQ&<ܪL8+g`l!zʍJySt6S^E8o7 ޛu#]^9>|pw11YsY d&,E3g쑡[ԃu3|waSwiб"!PF#q +Pr$8>9a^'&E+AuMjBؠ +[E  AlѪRT)x]aFFaoR]{s0ԴV`K;{2Y +Dy,4n`OsLs$焞#"ɩZZ\ԗeJDDkiPsa+qhA]5(&z PN$e3to7լ4/&q`LUR]Չ\Ө?=_5`k$VEוAt_U8j:%V0wSo&o YSb\D +sgn.'j7[)Mφ8VYW2+/|_|blwSn/D+nEA +oH2D¢󢳃4,Yvp 3xdX'V%۫"35e8PCrM;2$_M/',E>1<5NP7]# 3)[hSYg- e+ +0alw9iٞVFuCȝ4CpL-χ0Fx6Ōv帗 } +-=Mh>ztjq +kp@oXg;(}eZw` i0})Jˡη$m q&F]ޣ\3G垍2m~Zwcc0;ъ1VB9L۬_KxPwoS> nmn6 JwHT8%NLK{Hj=!̉pFk1U˰_R ]/tƐ~J'M}M!\+Aady*A[ S'Tg҂/m} +,++Js&9bQV$5N5ueP +Zebuvyf~fEf\foM1)|k!U8u~:b0" `.gUpV<IXq4Yzѱ3%!lj ^6(TD#BXZ{X' )xɅ-9`@@I<5.K\lR%}Y%ْ)^Mx9>Ò/mtabw 3Fz2iw딸w4k7a*Q؆0OwX&uPZdgοvȘ=IJ% :7ik) Դn0j5.iݤn̺ԬǴ AjdU +oc0ֺ`t_x R֌w@D;BBe`VTڎbv3Dr@QDq +]ɻop.If L)c\ϱz@xF3j̉fW3Q>aZ&-Vf\UqP !m0tByU,76r_ԥjsN37Ir+{xN~-3=E`j%E0DsR<ͳ7X!W\L⤗LEQH≌ r1D>JW@/KGmLצ?Z^IyFz+)PTn\\4p[bA: !873`&$& Ə g +JcR.fSQ R .!j/m1I*byD&05YXH[_ r)] ^uy[ 6 ²x $6Bm[\G[681>A C U˪1:q}9thc!pu]x/mcɋ&ٜj1n3 oZQ^YS.(vXhԩ#IԱ+]L/=ITAe-c+nOV8 +p7P2=A,AG%f鸣XE.ABidG#Ƌe${aD{gQwP״7PzPi*Vч} g +o}bf3 +mw]F|.nR>ʤpi(ue}= {n$2+dT߲|BUtx?ǎBl4U}@Ɵ2ztqf`SSwƈDET;qbz +OltIB)^ *?!DQ^!=l\ #|^*;6e+pTC}ʝE|DG@tybj.ihCIB"C.RM@ M7 73wfyě'?rE Ö߻`d-v+,3iŀKG3ZM weʫaqY%mv{y8V`M'tPVVҵ;%mMӽK]k&u+JT\q-͍f3`.cunl^no0hEդ2WIHɂOIh,bD0 + X#Napݡd=W3\\2< JrZ2n^m<+/^gQ +'iF_ +^vcY+5>|}Y^Lg2kl4bI} ƞاXxEX'Suf@[Œ^!:B  _ѵlj&1hY䴕 ]wbQ8Swn?N_51pc!4W*5wiV#oJ_YE'0%$QĘ$n3Mp"!-^lVƮUvw٪y Tq~Z۩> +IJV>|~O.)Qp>Hb<(>fɞi4&n'B;1+rꎐ|MrxV7:l|5[h h&x#PB[fV9*a%*JcQb+ۥ( 4vS;]pFyU7P=F̭̊ENNLb31 +ݕI蘃Q4`g?*SM*XÌGQ3,PhWm& +y;!5?vmr"lnF)a@ә=yQHQ9kUL5)G:c<" P6;~'Rڃ ))kLw\2ioנ.|cHv=]TGʁ4wZ !8!,žX/t>{SP_/|bIMS,g0:E=5Rh7Kҝa/ҝQ0R!0{v L͌/?Rkk<`j6- +oLWu_\J28<V\1e>uXdX*s-a'l@: h&otnj+E@e0b8fgjumvKN[]=?1JZ$~`7}N=F T_ڻڟa\,^~Q kzJ}`PbA8Shsq6bg Fɝ=y1 ȸ$Ulgb~o;_,K^BrqPh;Y3f_koA4?"S@xgq!<@rH5EKkWaW?]aPJa%*G<~V4a]qw744Ifl +}/zx &L4DYE`{`LO1N(B`#daLGk.}?tRqZhOlct!>/sI2؊ +?2~kYJۦytOWCtxH{ ;tA56y!.!s蠢WyDXs Ɨ3lWi!u(c\v18Xͥf>; {>W9z_kEDE]F/&G4l]%ym؈=Ij#.ҬE!*>qI+]=ƾpk 71겨f%*H?@ SɿeDQ G?qxȝ2YicO5TT55Q DžI=!`dJ{١=-/-~8J,ݝ^Y hfo:НХ Bf㏟ +[Q`GUqx`X.XTX@6ҁ_lp!vy[a!'FkbC*cLwDc1nfUTFf6<f s~H)3G +"ޛBzfa2u a0ߣńKc1:窏tz^o$^2Q!:6|⥽2;@Qb݆P*YO!rc! ?b?QU'no6v0`>{Ƞ`j|Hpl-_fN<_tn9iʿnhyۋ>$Cwj]TޔT]jk*ځ1q}Ex*y-$2nn-IUu0cxGS&A"0 o2%-EG`0&:qx@Ngsj3sģ2X"^ǸY$o{V@@y< KU8@bvn5:M&7`’+4:hQ"Ƚ2YIR2k 2I):ud]h +B1t`̰̒Sf]iZĔ>!L +mF~c 1]tbŷC{ۣBdUVv܎ []=d MWFU6O20YyU&'xp +>E\{2ȫ@K*uQ5sQd>Ӗ3stӯnϞ>tTRν%~ͽ&Z&zL%VO$ZE/M"u|ݩRo[=٨[hnX]K/z[eVgS Wf@=@`qs傶PhSM/@މ"I\ vnZ!, *!MjBQ.rͬ;e~_N#P3`l%  (q2B,@LvH4?dٌtNm-wɊn u8Yތ۶+ƴ㇔1@_jOze z@>ia /lb#qq"Tl2AzcWFu{a6:}"]xE'.n0SSh>%p3kR\9 Td4Sb{ C]0ASk+шBFAJjjuYAu 㔓W'kq+5$9RQHgp˜qbE9CKh΢RfVW#rVl4vCo.hfYw?PD2& ]x^+ W k' +VIm# ==?ι;XP-iV`RŸQ)ns#ρ|bkO%_KDXhKg\JQ+$AX&%|gd!a0HVjW5Uk5D;Mђ;sDْBZsobM5u jr"-;V|jtqwp2b.[w ܽݮ=QNr[wLM4;&쥂 +'-#"M[hY]$JsjSy [7 ڂj\{}tD];?)$(hrVհfȃ=9$#*ĥ@w.m!% ɂ1>D:KNp)nř2:vx]A4Kkv0%Kr* ڥZNۦB ^ũgXǨ.. k_fWE<[1 +P,>I '"!nWSVRRPEmi)pp29PZ=Μj=cC"OCh (.3L&rQr3ٍRVj4()ojA&5)T<%bqPTb~5bZl\6̞Y:k `h +!hu\^5^p +X ylm`nmB6p颍y + [|={H]ovL'&gwܱDwq*587BjǸ9ʉ +$ԵB]NpZ X_t񠽄a[6e/׾^5-7OT;k/\WH 2& +]ncb¡ ^=%3v\Wgp 4qZp@}˚0}J>!$%l/҅I94Cw'%|14{;ugf_޲[WME{θ ]g]iwn?!AbN+pw]mЍ7ka2Ѐ?K{'@Cu|8k:mwAqi5rc.)V㜶ii.5hKFVD20yZ&kzu䈞eZL7VNB'+L@1JTt1iq8fD BKAcc5E +uxU>k d֒[vڹۙ\u_|A=V  ;ցhB2w1Lƚ4f|7 t^+*\KbS +r %אsx>̚\hHP8!}PPhhߐLӺQ%Ze7*Z~==r +^|;T i8s,T]`+L"`:ZW"t#Mɑq=e̬3F"Led>_5Fe/Je]vth"Fxup +ag"i Q!qw‰ pQh[GrPG9& AK8n Db5@j!g$uBWw0KbZl<[$@&7أq/-f M'>)ţm2Q8t)ZsId4z|stR9F jWo\k]&-6cuƻ.F*R+WM^rU)K?`H@nݒyN%{CcNpPB"NW2k*f'%T(,W;_q!;[W;kI@լUP~do-aI3 2(@٘eNb!#U Nʫ!/iVz;ySg|oxnoy?r}ly|@ΤAӱ]1 * MhƵ HҠ0 fk|pFݽX:THcnZH1ҹ$:pf9ﲠfAXEHwp `PQ9`PT~*>oh:6`_m[_Y:SueD۩[)$e0 O_Q;A[2Q\{*AfM}] ,֊-NijCo.zX伒\)9M g8[0 fT.o$/GhEaިrNbϝ8񳶂FG:@\vfkJG?RE:Y|g#Ca%6 37O`v2"d@Jj"Sh2gkkt )hGb:@XRa3 E-rqz)"(Y<J7l?b4`7W#b[ ne”N)jiu 7Nۑ&#|N]ٺI'wBJ]xEWGݻHzcbSM_b)d<2!序)S(Uqi9LBUӰVtr鿆la,eL/#gdCS#Rd48PQcY x!AbZ$ el$M7-أYWdNVc@L@(ƾZ.Ԇ[Y sA ׃XpUSޮ1@#/kbscI.lƏ%p!v Q-h!J\j.}z!: %$w),Ò{^NEYt[sk)T-F6E*؞h(AlBN 6ؒR %/enyFGsxTFݬ@TBAu-4 y\狶&3yWRI +k2Uе}5nɐJ u;HΫto{SzF -mqALc*^hcYMyʌ`xM?{iL ;nn;r\!{(=\?K?nGp .n%qF} ,09≦=6UeUDiz)]kQxJsžjps~)g I&x_"L.pA˜&XXuX˕mSx>,2f9p/1Ʈ}/wow-;&SB1!Ի4o'$)J!oO1~t"lYj2XZ BTnHUV}KT&9 >;%Z]#4ӌy88& pqKE + b1e vbaUZM67S!1$S )7\NiWi|d&l[1lUFA ʍk_Ҡ(QI'ͲhZNxjMVw`ŀi~ ėeH -fͩʺ=oPP`vV=fg XdD&G+5SyczG*u%F.*N*1,e@''eiAWIcqpD#`5t1#d45,A +JH076JneA2NDX~1w77ŏA?q!Rs)=gGYJBBK_UvwJ2T VMWl?%{BZ"W]JKhXF 9Ԓ:/rvL垝!5\wUnZZ6Օ=T7vyd˓QU+vRb"tI:lګ%ni7kÄh9ϲeh=~(i0!iɅ?K[9%S %oC Sh:M;k)+M󦗍HyadtT;bH ܆mF)<6ZFJ嗉H,^vl"nl7( +Zp)R +^΁CC=# '*`Xf#6ftsOVt:L=< lWEx !і*>MӇ*f`/~A)m]+Ā+(HDA)a~$W1xDҥ TotI)<𮜈qH? +M|GBRewrk=5$bf_ /yN >c@@9y08MN{C;zy~nP;2^AS~);%}Vȓל݁jGx'"hE2Dqi|by|%.I)Q4E~8śb"f!G +L듭"v&Cܓj"0#uqݑ/ݑ˺/CC͊;&OVց|;CFT*y PZzp-EQiuS:yRTHK> 2}cTS4,ۧ/#;BFӒ7kڻlPCct/ Z`P=I+q*4CJBc͞4y[tD?ɭ;H25~⥬I>IuǐmcgIS %<'ivEź4AgmS]7UUI`Dń0Bd/PL3PlP`18PnU # 2xDר,E?pfuH!e{ 2=Uc ۲!/rDkϲ>$4-W2;?pvCOxpnQʮ _pڄuӟGh!XmG-eo>hi<Ҍn?I$"i`ZNx\XEd^tk5bI\jJkk J_FmhM,z6B"^( s3әկ IwqFT߃g f&jÿ;u6iGN䞬懔J7 G,6AL:Q9[,lQws%[9`[|Ў]%țS7L@eRjx-Ino,60@"ÛJ.) bd`com"jORYEK{'f!- Jc) A U01%ism˺vQKnIPZ_(IM!nāN"+Cu&}ltZe.TwȠ+PW* +=gPb>ܭ]VZHTLW@-@|c >卲.+CZS9kd*e_}B>ӖFs\Sd~fꌆūGj}\łC~[k~%.i;RNB%;AH2[Jf9X +knD4c?3LE`Y_̙YL٭~sQG(` kOiR/,hsU9߱L";YԻVڜ"#%KsQ|AkUYY!iMfĶ(#mBJ?ɓCЌ$]tEf?c(fY*^ZFҬYvdXX~asgzzr!.1rMI-g<*+P:r>XFOÛI@ 7G2deLR&v 5{vVoQu1tw,ol<[#o "H@R8~at3eZ_4AA̖0 _T0 }O!ݐeFgeifPr.n$[A?o1׮5ɔcP:a$=ٶr4t Tw"a=3PE3\Lf'S_`01Fm88[ч#I#Fڢ#BWA-nlaQLS~ppY̖C'l3XajoP%(s.0h"Q \ +/`YxN&SS}BGjG@w6ԕF+,G[6/WY ;{[7b*T`"&`W'hk@NLCXFVh@` 4J'%(lĈKf-tJ>S?h<&rCOGjht/K%shD< ϲ ZˢfPwT +MTyըd +e=h=£ؒ~D[3?q5U5tv4_6Pi7tXS(C!Hg)yu_p7da;{x9/! f!8>W0 X)>2+tFZ 3QW{eNSJ`@BAT:M"e~U򊐝ၷ`FO~څA|ԴAwo7dCʈ4Vv c,莉EE8O~Us)uyFքC$0ٔz޴ e_:`vb:zl9w vYE&ܑF\<fƚuRD3]xaŽPBO 7gՍ\O<9Y%%sr_VxNp6W/A\P'=#+!61<1v 2{et +Lgߢ1(lt4Bj?"2-Pg¡GF-)$Iؘ q21#BR2!GN^^ӼnTy#+2% bHs˾:X0W +5$IHM'ʝ-Xѯ06 t*O`[vUg0PF\8 +؄ma7|BM%NHRm˙,!@ɐN8D q9&ޥ̪ʙ,(DC,%rZ#)Kn wӯ4K03[ 4sdde.cM6"d39K.,UQE˦j(/}v֥ʱ-Mg_=ZkjX݅B MGcDLB(!3V1da[1v;Yln?Tׇ4BćFs0h +,>_͘d( %7_`6?ӊ(A0ރهKiA؋r|fJ^X^8ANY;[(VllP^%98]TRxS50pL^Ջ̚C`k+X'MQ7 T8L[x&X+ɹ +ka*j9ޚgX')4 S]ӭ+^:`QD`66 JI%)gP/MQDG s)^D (ܡXzl`+iiA]-8YjH9?6^O+ZOx4Mn\o*^LFidPO|Z^,tm!=g,p g哕vxՆ%mK@tK6uL~9յoud>P*-V1u.!*|C Hϧ}2숷q%DK!pfF{'(d#Є? Xʭ/*m'nLᲤfUIrUEzpgI-j߹?%3OF|OO +l7=?k~?ߏt9Yi!&{R[w(7nl[L=,\87LV5v|ɰI2SrЃWw3N.N vNn`۹M$!&v:VP* +6;3wsh@;T(Gظ1vz~G0ص7 i`]²up4IwR/>QE7̸aC> -ĬBZDO2xC115h<&0zE +*1$nmA=lP}B8"H +|䅆TFCe'uUMf݋-\3ޝ[VT6%St7\\B'E}=`˶ӣLnz4@sp5aw{fv-K^J anLr/W3nF)jKyjgNbw%flx]h~mAu"<Rkp;]P[(:bvX}6J$5Qv0dVx̆ ] _# }x,pһKpyĈ/J%XP#΁tOB>}7ӷBY+{DPhYZ">xyARW^DmG K %z{Ga],<˛X%з=<2pN"> ).ՇcrU̥m]qr@M6ސs 갽c2Y{h$)IӥTU؊"}GlAG_RJH?!ܠIaapvȘTA$H3ˍelX ~p݇#-r>rdʕKJ:z:z0h"4 ͍#p0-2#nfLȧ0Is ?=/b19'쥴 %3KBGئ4/n(G1ojJZq6[aqt 0hA^%*W47\ +N1ݘ|Q_+DZ=?n2J[ 9O"-(;3!-wExC405b|sj3u$kj;"8P_5ꠘJ4`*R7J} !bCT)Ÿou=D0D&6 +4v&=Т`L9NȿF11wb)f+~Z%}W97cp΍2Gsf1P#WG*dD+jUM$ pIL3Mz3T`k];ۚg;E3G7vY +y%8T֌~㫫摐"[UO)W ɹvFٖC}w!.ϵqeLY]Sۖ +A Dj:@\9Fs qSz[s=%{ 쉻{ + C} u_:̜43Fx3B@ 2[-ZEt֏~M\"ۗnoq'piq6mjY@u4쎢sK0ѓᲘnxy:b?/U(?1T Gv6'e-a1U#hEM X0?ngɔ=gPuu[DX>x [c?sWZQZcFgVt `m S<3cWE>mS/( v@>,F T2= =_I~Qcq2>xGcILT.fWm|MKux4sdW(p7'wnR*^[:.+s2b)W>h)I7cftHX.f{naèNhdQ]IT4!O'&[/"(l?[_+0S(d)Y.epֽq7U6 +F2ܥҬN]mŨ[T&eDo1\Idՙp9--?zyLh0'C^9(j.e}%pL|Rfn.+r΋5KF E$ˡ'~(ɪKsؙs2wdc/}hBC"S|ZˤR^_Uy(B֌ q&IP'D5Y|Al”G:/,$Ϊx'ugX!3hz +{'^M]t6ijp٥Cב=~ (=rߨ!w!vkzZoDoOtjQV‘Շ:Dru˪#|2Ri@RQ>xr&n@nLxhHl ML!K[B(6 EZ ͜[4KVúʊxO}gMn@|喖W;H[8Xo%r䟐ڈ ENGp~L+HtycnNdHou<n&HD'ד۬to{hZmCΐ[Ͷy!AhTGTQ# N<*a9t+J!G2ɐcʱ6E5Xs+F0+`XLWcWm}(cUdvdYmh ;ڻBv,]$BRh2[`[nD$_ ^;cA 6imVZ%_ia"1Tdh .^4!K#&b6C&!@A^h +nDfA1lzCMFVvRkibIi\jOV\|#]&n=2j,Xh:"!0&'~`ԠLP@JJ%Eile< 7E x S&.4wYV+aڵ%V餘? /7$t87mMP?Hfj$ H2t*` 'ۆOʷXАn6-HCVlINǔv5Pqcb!t6[z=Qrٛ}L]r8 b Kj7 GvI,=E0+A%GDљi1j`yԳZ%9] DLv)pFvN5Fl&*%bBzDD,I˙񎟃(~9%$ 2lMlEȌEhZ`sTcCfvrXQIJ?  FßP9~>y :ZPegV{6L@0(~;\QȄ`$|`Fn6/qϛp=jgjeg 1~eڶ,Q=S0%/<6`N^^NՕbڕN~*ڝ,OƉԉCK.e@ŻLXɴE1E˔qgflf"/犃 󳡙fS&<"e@|>]N=.4`m"=bҍx]"2E;T jֺ :۵wV5%;*34t.GU5q̆jL}d곦A􆊾+8J%)iksRM<]mZ%; ؅#bD󃵅Y~gYA5M{s!qA+WK:LGw+ֳu)w}G?umlC<`ZJvPւۏQle6eʁŮ +>s_`||3Md(AGwxEhEiN;KUؙ%Ζ4Zl|1k6`|},- -IM9YL:snXcȹhqfBF#`{Ɏ[__`~ya| + >{7΄frzhD3WBSDOp~TKыz꠵ wH1)yCH]3~} ߹"tfQVO /8nCX-2ms u_ a*bK|.$*.)f?Cn}jIhC`w +aVd o[Vd13Nm6SVdm4GcLEzóM$:ݧoM ҫ@bm2x).dwKdw6mzDg"==4;PCD-.?Aj[}?I_운YS󭓮28u율BRi8R&mlgN#0i D,N1 $P&XekK#^l@Xp^SqXDЉ%jo8=)+ IDn 7y|8xHw~VHUՕ+N:"`+WQ?4 ozMTvW $BNAFyD_8egég+dЫB"> ǛfK̋ 4)E]PII {Ș#:iF]bb40=wZ4` 6jC r-5ѺG"\jZ.-[,1mñKB"с& @y=ܝnNY5NQ/"7a/!݈4_$*h%FIzA&,{j^p%Om,^@,h$viUf -9B KNY˓4vT2$fkؑPM$^:}]̖Fێ rP}uPͯfmop֙\\8Jx,B]8j2Zv,ŖPv3h{ڕa2n6Di2F/~O7жrdXw$6i`9g= ur^G+Xmd`V,lJ6E>,&R܂'!{$ +fq+nv y7Gl ~Wp}&E o'/zk(9rcޗ]N ]i=zx|z˭z&L)ʫ30/QemIlx=;xVZiWRs+-%^Y\uvj7J6ޡe,VHI£|@u! SvSRR /+$綬tMo۽WmoK-.Uْ6=;;4}s4h.:bk9`M-S2B4(*ل}6N܌#!RW)JSV :HckGcŸ/B#fYX)Sjd]^QDjB^=]^iz!Ng_51}үɏg\5W i@Q*@ʱWl%v8oY6?N9dڭKtÇ]X'e[ +jz -.B3mXT$&`hٚ|Ц%4bvY*r}68wsS XfQe!c+8D"%W#p֬8tɃPwq:˒[jzxSffNl kV!6#hx>O{Q7= s^ݧ[N~Y^&]1"L0aHJ9N~"#ZaLi@y5$Si &MPAX&C28b;Fi23ѳҌuBAklYij(,ig3$!{^X U 9R4:QdA'DaGM3DTڱGN20\86XR1%6nxf4L!+"1 Ahn@tjkJ NLXRLSSK/j c6=25B3MQf;43hSPS89p$biJSY UQ9Tp6_1՛f+vLD +t3?@.Sm^.rj8v)tVo,ԒfbFR`=L_:h=_do6#H%L9y)0L9ͼ0M oqӑ9ZNBV̓HۺnB.bdAYiS>Vx&֭Xƺ!*p1;x~qnFx +#S5T" ^)]<|cY3T1]7EC&J;zxL#N{z )ޛ +! a7/ZŌ;0jDmg y[.ZP67O/BdԨ6/~HWmoKpM4\Uϙ˒dSJR0.r+K9kIiᧆDeD5.$F\ :F a2`_hepEsRd6!A<¢0ɟ>)5S5{XEX}&;Wوfz <`Cp Q"9d@%H4M=$Z Tz׿ +~< a +ר-f`0{|"Ď;rx:{.M. owo=/t mq#<*DtR{7 E32BTI9={rge1-e0>*eay,Bh):+.S1D< snBUgrI Sy YyKO|QzуhfnbQl'TWr+gtƈOLsP‚?SDt.!)<>Wԙ9ꥮF#Kςbon9d<*͊sj&v H4/*bqWRClŲ||q=[^>IiP41'ӈX[X PF)]"#ч#ZcE<E4b<mE$u҇13JcT BuF~k*wY7Z!7ܞ=Fwȷx4>; +w >{Z{%7 ]:8=%Y/@4=HkZZ䮘H]m;;ͷZT44;Ih5;A/[}7^7A4$YyNYj&XL79ja99zlZ '4,NWٳVdXkF)%IAWeHHH)ԴJyھXE}%5Ӏda%*]Yf) g-i(Ȍ?C[9ҲP+ӗ Ufw2^l!-`*ޤq杉).հ`Ɋ:[j=a(;}\LlpZxV*?PgS*l[H۱$7#qX|W6{O_>u1;R!C,<<\9,=i0,yz){0Rh&xO1Y@UA_|&61*A[bd /#$fΦIHJVieTZ629ITB}Vkj1fc=ORi_=j-2~9UN;{sM8N0<:FrMpvx^Z; rj'8;^YX%_>i$nAb2/=c7lkR4 ,WC 4W3gb9|2{ )9 Y6s߽\-;w +%T :(@tzA[uӼ +2'bg}&}@s;+`8WZbӕރEX"ktmvC'^O qO-hzQpobW2Z| **ڟrsZC%̺|Dkܡ4 N U[1y5{ , +fv>6QpnvE y <ʞ5i" ҄|"箏^-~-~Z^&fvPmK}^݌|Y8z;h6 vR1>]^sܞgZ/_ʑἃD LՁ2FƷ^9q ;r1w +<m dP~CKo\|?k~0?2k iгԮ8u +ݔ +XDpF)di#9#کg*^GDOƋd~JxFeOf! 4b]w3iW!dN+l%("Ihn +u7F$eh~s kp6WʞڿNChRX-)k EW"i(E<Y7v~p kWoǸHzκz>_@_h J *N-0Jc`[8M]a8o$`*8.&QC+v:!V=v&G:+fi6 z ?kQZyP`'jlhi\$<{O k)pv69Fbk,ZhUq׆ }jY!1`C,*BiL/Ӄ H](h\'ca #̷R, 3JpJa 721;O쨬ӜUW91bBT ba Tmxb aWo@ʔWV wq]Zbg,ʈzP+0clR\g?%cdC#a^2V%4֖wvWz[ x׌ѹO0uiy‰]l) +iSe'sٔQj*<4ȍLa%Ƙ{5H& gYzb-RAm}(tt}, + %"9M1~ZҖ:z QKWOHT,&s_5Q9.* >e]I2tk5LV5ew+ %inу+wNS}S=vZc:pya22kq &,Z.~]HfN,d7IS+yȚ1>:9hS)4铽-L۪o0OQO@jGe#/ځwo,L@? +i F[(} u@a.pywwH<I$ 8|"O/6I94K98{n߃2] w:88Y?Z 6Y&)u2T$V*Ԩ/OM2;]hb7MLo\.f7ynFMI GQfq00M%&t9DΞ=4;oþ{ N^q2VUd5hGv2JbMubGiTdZjaIjbpDw^ ghJre05f0\Uf8t:m]65^6[pEqc QOc^]3%t4A#͟@Bv.R nUʙѺ͹r +H9~JL&ud]h]>$h7hW*{y@7ec_[cz燴3ay*]U`tGPS!W7F \AW+Y+d"=tݗݷf$q?kPM_mWjtC(\붖 +Ϸe-ʣ_OvfoP>;!^EZԚA?X}pN;Ct2]7a32˸aG˲8t>ERZ̳K22ɭ1 +NFItb5B7T|rcr/&(EO)DJkP C) 밫(&5)l})*N:w2h}"1M8Rwۼ(c0 &?3kC4 sOı2M&rQ$\p旔8IGNGQ׈ϕΚt9(1VC͵$sWN?b%5P>|xҒ\Nwu~_ +!^ڃ'"c37sKVPV4/[,U]ط0jݝ:Zy6Su= W][ 6[ V);m9́J۹v9ϪTpeb;^XT. rq%8M;m3ɋ$,6 Ov6cWL4jKGZ8}"ͩ;ǡn(09MM=gmx~?~TjZ "aD`hK'cXdL6jfJ@iPtH9I̜G\p +#8pJOmU!\:ZmV|V oi;r%(4'r}mV6mR!)Ǥ,46eih%86nc6"reJz좃zcZTx҇-xݹb9} N)ɅP| ']2`HO-]<*Urdp&K- y<.2H4T,"~q @'0BK*mQ[,|`X{w`TbM=@{B(M?{! 4G}-u<#u +ڿ'JDKj8o:-syuhom<,DWyEҤfzEDRbzxW@sE# HҤjyaWyd䗆|jY;EYg3wܳ!Kkmv(wRxthCGhA$ox)F#3r~HUr\[5H 6. ~,EMyl|p-~Г={~Ûj|'d5HNɼE y֫nAe ={%"YڇpE{6%k s1$a]x%g(j6/EN.wi5:Ge*w30us=>; M&tO׌Jb[f;(%b}!Yv6&Ѵ1:wb5^ǀpw_oRx; N-%n5T+dхx5FLL\Xȃ19Lʡ#iͅqDEIBiZa'҃{2KƉzb>y +aWyKiX +r)tb\ Q1wJ潢` +\ &Bj_D/Hn%1 $ᤜ;W(cmt"Y5,yR5bwKMn`dUk,]o ++X΅wk8mcIX*k|6bgRLaQ9[*Jc +EŶGό~-מꆠ0w!4?%s4Ecxy&Mҥ3;ckP|DI6'9g$1K2K|N5ŁvN?58P61#|6Gp?Hb_*cMҥ*P*j9:}E%J?#u0XԾA=SB!0T0I$5֚6vmc+ŚA8lWTδ+\5Wd/ιvE~1XνXIh"`phK$`pmH}O` FI4˖Yi]IL玗I0[![a;KEɒ!mqL[ĬARRcD&(^0P=`:$D gz+өkPU%! Ӿz1"IdgUطoߍdP2fNU +Ng[HM32 ? 3vT +-e"Cx®oZvJsUyE`S:<^ѡtq+s2Ltw|jl3ffOwq|He虄45 Ɓ63$+4[vu A1e"z+Isz5,䘖p_͵M+#5n'ORo $oRƚ;u(3gQ80U۔'}0upq +1-db4FnĤE(/R=y||R~xH3*0EJbbY$<^M=Y1"a:lzz;: EGtMwz@cFp;z.;hrǦۇ;` 43G-Qyýx[tqh|[q3+gzc[{ĨJqҚrh9^團,WތQ.ؑM4x0R.j\-dj9(KS#[BSTW['uUKS'6C-R=R]bZi *Cתq;#xYŞ7`"y8Mf1;ޥR|wX+8~\{rwHܣ Wq{*+RwhNvr򆿴ݮ7|B[M,yrM)H{S셫7&&y6Rǖ*TUyBհZƼgD&^AûE-d&hknMg%D[_{WX}+7VOZe~QY~*U_ ]8,wИwt2΢*ʋtm'l卦%>7rxVwuwnyi{2(?Uy餼y^U_ _=f70<3\A,^-}uWGL SՂ~Z"[is$aW%aˇ"vbY{A*|9U@lց=3殮' +ǡX;!m;Aұ_RY:_AHmM"N۾H}7ڬ/VIR_hmHΰ<gd* "p{!8 Og1^>GM0& + NDӇ=QI+,ԋlE_c|<oHqԀV>I;8;c ԟDP)##:)TQܪJA6I"YƶdegujKs}e,)+wo/~`d mH=p$ƿl'L+gꐣ7/MXuO7]_DѮa8T29lb݆*8̗;!{g^͊tQyްUӭ:laQ^~ڭ=~v5%[>$~{{ru{̇,zLρB '|T?u Qi3vYY3 \P&8 JdI(xd c?Vwi'4eT^ +3q(l!!:UE9STS}ϞCTP '6Sna{"Q%J/F2;6g+\=C\zҪ7g*ֿ#;Wf CT)o+ĵRHNJ )ɮc38l#{}"oXY;XZ +Ʈϰ9ZX.$op/)89"ӢY!ۚ Er$'c) {\k#j!oZk=X˂_۟2_~Xsެ +QrN3f+U'QS|,Y Ӗg dZ )C=B]$]R%Ftx-,b/p.hFLE +r7t(2]I&@/dZrmJ m4?A ܴN.ւ CGec:P$v!!iT"VȑN<=NJd$P#΃2tٕE&< 2VA>ǿe9w`Zkvy1ZmA4t!m !bx$G˵6r+=\DD@;Y܈ ,G,]ٖ u/$8>ࠔ̆&L"D-hqlIm 2,KW_(u[.اLX[f ރkYSId$9TH QJ IS]¯_CSů>ДU6h-;&ԕزT#8*pV#22sPKؒbPIF$es)b8Y>Ʋxh0 T.F7' FHSCfq ᣖO9S+f νG*c86GbG3z9s&j%P7.|du2@/,ĂѾn>T}GWX(3RT_pUP1Z$dOkpDl\;>oX?F=iHh8ޡLCI`7,'ˇ Vt3jćй'gg8%k|ceXS#t=py v;M>OFt5R} \;r}c!G;G݅};z';ĺyޤM&H1OjFQD:I'ФNM=0 Ns|&% m*VbKd@Ha@tyTsHE~&C (n rlZO7gң:]:~rKR%+~]LgWJD K"!?eLަMR-#OB_:a j}ϲXm f$< ~|a߲q-uűO(hag]tegѱhuݿD ?(6&D}gY5cdɡܪXF)de6C@ DZ{o=3_iρ"Ը +"@ڑy{P%kTBsaC&!NԩZ81瑘Aԭr5q7ikS4=.l1.u~#]/iNSƟ?.v s FY'0G'Y| hN(`l?&g ْ0GÅA!ra9ZDGx@do.8ڴ]3`O5 Tiց)ԣ\l9a ʎdGwxnGn qۘO{CaS֎$sҟ RtΌx?N|w#펉%{&@$aQxY!ȥϙ+t V< +Vo_$J=O2隴2C>A +H +vHq{U'y"{N>#&J'ڔJӦLCR[9N ?"BH~hd֭)*N-3J;&ocSh"ݶ(e#҈pB~!| ;D&`ҤT0H𻲲|s/@(O/C_B1oX_Y}/¢k4+&o Y{XG[w +oE&0D HLEH%|hB#˻&tRzźж3HONei`wmlYlޢf9o_mY/|3١$l}]g ¦gڵ/:K:dHl {8v,ꁨF8i;2Rm}O;z$[t}6\aϐJCr6y:m^u th?aNq7 +t,ˇj_B)5#F@hX<mGrn@9so +h1+;+1(AaYD!4&p!fѸj/`sP2Nb(ly*s/@'}F[z {5loD K +>LqipK;!Amw4wHCDs#V`2Oklɳb|0Az/ppaG.ځlH|CMaG$ʕumT#y]Éh{W[g:T %H\&^ v ҁڥp=Xnep2RWD=CPƚ QU^Ap0 94LEF`ռ.Ɗ&39Ve.y(cu+aGNN_ą[@A)c&,jye2VzM]L_6y֨qrutySȐƼPeD؋۞Ɂ/FIҚ;Kz~Mzڴ:$0,T\5W>D0-q#/cQ1qv䝓M}^y/b5z8Zu$D԰ Vc_ gBZ`/"V,LŸY..z(gʍ{Ҽ̬nG}PB?x8$yp|d="6yՓPcJm,|$SpI88 59i! +p 9?׏5+] W Փ)syǟ +(ڝ*D Ҝ j<4 f>jOF!~>x?Us.> '/j5!eGF e•h$RTj@c&ut^)tk +!la}328^hmlr3QrK”ts|%~xSy_zu$|KU|iuuWhωl iտTkv ??}hxΛ~94|\h9 n?*$vPr{ ?:@|1?B|'׿}~ Hz+ >@tmC r*aŇRVtpуma[_ىlXMzN$ 40D..21W{Xi5ZS49C2i\Jk]%:8:8eDn4! +fv<رN~Uj@Gfb 5:ܿص,ѵc ]u 7]~яRl4 "]Zb#S +Vt(իq.yg8(#h%e1.si[22Y,X]kM{H@  Gx<}UԜEU"iܒ%ڤsu{vYpdcZ0Dd:(7s S+D me ̺C5NinhTKo0?g'Ӂ,yn;$M($rK` nbڧ-d!jr&%eESK]an޴U=^B8yZzf!PRcfagy'ADv1UϽz77ZWu,g5kO2Dt=·űhIh`(wDΐf^5R(!p2gdiztZ֊d=#8r) ȝ\X12rqNɸ,ɦ=>#8% 1/䫫{Iuz*2> +f)! *B4Qan|g}k*ų!+)\CUvxGLjMwmp:irQwr{\J#byj*2CDi)% W#*-%!񢆏B02w&Gk,_:y1Xu\}Q:hؚ =4U`/w#+ #DEQ6sr$2=XTRYtJ 0B6KZ.HfjY1C&-F*k! -/Ii{ĨT_K,ӒS21k ,@L^Y$D_|jd +e]Y-q3f,hZ;1 uL#.Tvv|vQ ;.wHlb[Pŵ[.vEHΕn ]S-݃Ԡ4F]^HG ԜVe^/k[L.냩 = BGK_[jl| OI~.(Av:T~zK^eE:s %-A3zz?tS}LnS|$H}ҫΩ +g0 S՞j@̱bcܹٞ`>VQc}x^c{"zQUgȚSWV٬$|\IߊD2hR}=ZoqskR>VץE)8vPRNV.'.k($@~)q63?zZ_SJjS|'FkyLpXS'HkQ8*3*mw?.VXQrSAyJ'(*=!Tg=G*/O2\JR6 ꜿ}$Zw:%n`0f;z9͚8# ߅<ԉA` uw7=C*7pow$aee`p0 viov~v8ibpkԈc&W;5:åبh1`J;a %#+[LU"Jcg\<X*me< A@,dIBl %Ȝ!#8ZhNhFi4yr]N>~9)JZAxbDW"en8B]"UtjHIEו)`bu8TY0UwNE1)biy6BTZcU"h*Nm.EZrAN='[\<屵2#\Vl\b8dGZGy9i# +;{6n +&hVmjQ&\Eb;rbؤt(r#oDHg>;EOIUPzw_Cm[I kx= ?≌Q'\Unoo^VsWQ{H +6gBqz"ݻwuw5uu? |8̾\*3}q5 Ja/^;䓟>^-'x%* dn*pݑX +".d +"->(?]]UԷ>Tvl~:=a;Ven6דnaU\S^z7Z^[Y0"\ld UVk=yԪaq qryPDs t簮az{clr{;Lj$iQ)z/F>!d)!7a ]ɒ@Nv)P !Gӯ.~c~ #9?%cTmT}SIwJJ}[QDт,4_Lhvڻ){bgϣUL~xݖѤ9:rϲ\?`cX0`ثdZ1 q$C-(I ӗ109E.S3(#)k³j!A"9@kʬdeNΆi · FMd7egC1^kщ +Ww*U7PGcNw<镧Kʐm7spR)/J˥!RNFH/TantjI+LH~4>mw<ͮ5"4H+QRAV.Xl3i# ^Ը٬3jԅ#,MdinTElƊЄf4 tJ Xw_7NJ7i}7;;{K8I7!Ǹne!x&aM߈0YWqQc!FwX2o;JZ4jO\ &CPȝM!ۏ0#%*GkpViTe]|g|E,c|HCLKGB[s&V`8ƚ-.#v@re>gP4ȉgp^ nx ;G.D9DKLL?Ve=pؕ}F%}h%}= (|l~Wys^Tb{߇Q3 +PE0ePcW3+O`**h +)eJ׶*rhy+FM@NO9S?O/\(Rr:S0҂ڤ5)FCylOfX͍]M9e81YX,?vB5(6+N`jm *icZ#-jg}W/l~Rr0Q*8vP:hvv8va{PxE/tJcC~dRsZ/[$>nO)𴀠Dґ['ܲ q{(3j%fEԖBN cGQKQ1@9Ƨ, QZ2c[NR  ]uufl0Eꤏ"I:Nn4d[*+:D3 K X2Kryawi?kI>29 +Os:/ǂ(T`泭#x9)@o^+ }i2(V8L;DFH\ 4&/Al%/gymKm eR7[jU$#jb| M8e {f],~p6OV qO\vOj@fsC_q#6Fguf3l,Y경Bo>A9NXXzrb=W]e[E/UQC)Nɤ _Ra\?AvOZ + TKKNXjb=\Z׈/^)UKVjn$qMHeŹofYȠCVε@^Gh*"|qHr:jcJdgLB`ǭҬ`Rc 'k %0-]&КBZTJqR69(5]r񵸩}{X<=#Pd7PLHr\~er0q_.ZWׅP7 691KM=̈Y˚N:?:Bc:#}N5U;tNnPP ̦0^Zڒ2"hq6ɾGz3 czn"$)v;)2^<)sMsQWѢ,tlȮFCOXCb5c!ni0'bA莾p",kL&-oȲvA +ԭ5+4au3\5 SeA˽+E Zh̟LaDZiVHV(` 'd(ɐ_>5~=T_أ`5vƚ;Kn0cz- (I#rA^r6]%#>RBBYlatQQ!sԅg'|"{؇Mc^lGKM8!{\iz?+z {eSYѺ e&M +b/s'9T(F:O-oW<8Cg3Oy/Mhޑyx*J+s&+z35{r\Q-/kw>y81&8-s0!8b +c%!qlG',C%i_{.oM9{QbSos`׏)0IimBVw ݏ$gsb#R_к㦦5ۡ>(+x=Z7d5O@JH +~p'#QSda + II) (%{zK+&OEt)㰹ߣB=~:?~e +Ĉh>"guۄ:P@W;_xTxa⏸U4`,o2SfJLeS,X˫3Wf{zvEfc* s >fu +qINڻ*KTE}Ve&ƎbYfUnijUZǫmpaؼ2ǜVCQuUr쇯myJCB P94}2od8]CȌ閜b PV?0!2T8UCnq0#x;  +5`(JTBֺ +4< tq:a괱[6ELv[Q: ˾trTI@VaYrΫG){es }!@{tϢJal,e}@{Q@adž0 j.r@ן.sX8bNE~%h7 Ps= >%Ej_=ή_$V,a//iȝ7 '4 a6=L#bܸ"WXr@pX@c6^L!fxS~D&q#nH[R (}72ݏ 2_x2@:,ܻ"KP@_ݽkgo/@'37P>A$EO7 $vLb]g pupifiiy Ԍ٬l`ྔq뱄\]-v}=Kx5քThŬM IMd?w`;0x=Mς!s9t%uΙޑcO葆c`w K6r+D3Q@Ue؞fŃZcJ3zdO"KxT.S PtbL= tɫA㺇c X#&8i@Mj3b pHѓ|Kʜ8M +:vxJcx z+ +1 .dj>ob\uSiC_ĩmGT|Y.䡰ޱbkti3$]AÂ4?]j6D ]eRCDŽS}Ju2҉$ @5|Nȴ!oxb㶡atDC[}^=59F؉=-Ki>{U`0C@4BLj(K{ Oߓ½wveC$[$iDB)Dxp'!c #ّQb̟m8lGSCZb8tԜqPBf8r`-aglB(!dBu&Bӈ (jv{oJ<ɍ:E%,s '$ry.nw 9rҘ8&& I:ao|P![3+f1BTwDv!CiО4jaFQG$lMjrUcIN%7Sՙ+0M9;u)fЍklKxy7u"J,d=NJ8ɛqt0l4.Ɔ-NEQFeP21pև^J;?  M;αfHmK]ai SXfȗ7lLRMdA0͉}mEk $쮜쮚P +$ť}% ]HK? K?ALoV;Ӑћ…^S;2;,'ɍnl {uPO7%Т>7u1 þS@e +IDRVq-#/vQZ Yv\p$fPrDz duT"8"VFv3y#S +1KU<u jbEHi>\nY1 4}m@E|:c0 +rY@ +x™~l[|nF&ر:ưyfuKȧ!'ǞxBwtmS"ؠ4K[ݳ*َ=( E3YaQbF qR.# ]3ǧ +|6JY_K_8};5V\[֘T\@v'6B)YY%A0E"<3̋ۤ6 +N +!Cog + ~)Iw$TRPch2íM!6Wŏ5xĐieYToûQ]`6>BP~xK6O(:?ASz>L[Rfr:T;֔v7O1A1%Rt6rÆUx:5zCWٓkB.v~.jeY4?rGl JAz\GtKǛ:b`i؉clP.wRCZ 23*b,{D_ŷM7&uJwbroǬ[{ޑsKUv]գ1;X{yd +'7)HΠ7) 99UಪpA-UkU2A/-y$C/1O3LLz9jlbmU:ms~ʴOh\VV_rjm\zhpw4UZNu1 +Lw8 jǢQ 8ި`XtiSBr{(2#dSD=N:;"tc-dF[gF^C*v;`z'22XnVuhHEu,0_zeDl`_,9k oR,SmX8MfFyB7X8=&;3IHo@@ޘersP;QE]Ox$U&n&*;@""vh穣m(6mJ#$-G\kZp] e֡Sot|}u? +yxN+ȟT5%KY sPO%}vB\)-=~'{Yo̿Z5A؞~ZE6wXgP~hX|pB3 }V?4IW[0~-pXh'p +Rc:|̩zOcX?+::nBˏ_ 'Гe2xMڥ?" +IЈ Ag+MKyjeTͦa%N9g!cֹeӢ~攔(lk,i{ ND>وCp!APzw8@Lz3<<.]n06|\$zXgyڍB/&Q!a!n΁*C w=tںNjPć5r8?RMDIfmH)G,ikS.,, MPù.GaB~٢=J\` _6h2.@Hjc!@*ݐBt?oXxuۂљ|tS}Djaɑ_E לg"EFU5ϏN4Od0{$BE[~:utd6D C(/wG^CdZ5%'mÿ́dy8Pn >/.À\h'BYJ%eܥDybɂL:F9t|Zu yfҕ<^P'4ltr, UìN6bN!e=Lh喵#HF3gVݿ,jx w@rrz 1gݧݶE ;dxCɇ +Djb/g:,7?}h˒rվTxt~ +PgOm kCψg_ao:UD4Oym`0J*8@ e@1zglW[^)Jۉ^@IM$G=}Ginqh8iH 2ܯ~~NGO=7[1e1ڙ}:=oTt]if`G`*#Wٞ镪JŶ\I,`Ǟ<\$X1_ŇN +&\H͖(Uq1iLV#z}):dqT"[SM?S#ov=Ao9Kxz:d']`5w-9G^3BىP HmŴ2Ny%Anhq*vkfl´9KE"N ڰ&,d(W<iUAy="O=RI($f{?=Y74wDs8CV (T &VvA>YaMrQ6~4 +ARg}q|IzF,!=Z"RQ1liOb|F{:ᣯ=FxU<{G[db:#g@u*gMY搴g>ŏv{Tr٦>'=.a[ڟfjt>crVW9o̜">WTY6tP GcVxn۶s][KU)v~8w.cw׉c7v=ReaKA]hz(n?wRF a{`D֎izcӂ/zO=+J+b)E~O&w0$3֌Q*>KAs +g}Pm~2cƞ)%a)ĭ^NC[jKrb|&Ff .OMl,f&&,UDOgκzY,Q +.8N.Gz?ܛx| ~~$ůgv_nd >**CX*$Y )Z{lH w^o<_`6p`ykV05-`ykXޚHlC7/fw W1RS'?3G]Z(ĚTTb:A/8(?5JT)@/+R+L qD:/[WmTٶ@d.v(ЪHZ͐xtiUXtc`~"u(ibH+b`"]XTNMa83]%,5ъ'2~Wof9wczo9"Z(t( sLqWwy(i ;j4%22j;Yj]] /Y*(c~I.]\VT,)?W] +g +4. +&֏_N^gE'VWHG:=lJ/q8?T|#_bX)sJ/#""dyWq:W/ktA/=Ba)[ةU̒Y XA ZNZO´Ule8 e&~E_ ƪ[7DV7ĚeM./+>6)+^ p WbG})+>l SxH\~!XD-mw{NiˉHZ Ai]-bwp- F臂$.'.WFh.綽QY_MwhBA#0]H'}`j{79 vbjȂVnl6L1 w jII42`36pC IQ +p@~&`Oeƥu+yBd|30ggI43"ܘtFtr6X6M@*yÜthp>hH,&Јq}|(GChu䚬h9mKRng87` ++N D\ .GSm:drY~tvqfƀ=$欁4>A\USOaJtTDA2T(<99Ȧg{$v]ۢ|j'#R $9y~ cyh}bSf_FwJ RpK-hyEuT/v&m!٥G#(p UCs|uO(0][ }ET %:Ù8XY +RO1}o' g!!WZ2I'MbۥI!bo]u#{~A {M­ LXm[ZcW6Ƈ1)vZڕ9-BwiqV>wx)v[l/E#ՇD 0eY؊ɄDi{S R6'&,6)nR]ޑhCF#/^]Q=C!)i(XTf ieNn 3CKlz[#/ +WdDto'n^[Az m"BBYc# F7{J0*w[c؇ίeBy6BR|n[_Ƶb +6Au +5{Zwt94$:)0 + =/&VxUrZ'/ d ͵6 +&ktbvS4}qQ'E !s!JzҬW^ڄ >шa 9r_!KQH6HOX;ȶbw,f{c:}y#+51׍:'WQ>TwIE)Å[x\954µ oxLCtP_b\߱e4I!aq0 +6g`Mmf;hj@[=:[S58 &)W<3֠V?ڕFr=7&Y:wy5~6떽N'um?,Nyxֈt.?x&> 7z 7@{7FF@i~6u +QTtp|rZ%8-^_!"?lΝ 1wƜUV:m.7WaK1U*]q7iQZ=ߔBoKی_2kCqh "$YurA9IRx‘$sBrˆ5VkK{\B=GQV;u!b]6Qj9/͉*-q? veAƪ\q8 +.dҾɛQ6IiJc, vQm۶m۶m۶mN۶mwO[mN{s?Z,]+wfƪ*bc%qK&ֺS-ai~MxsvW=[X?8x)j,࿴(vE{ +<,ngӜ# *P[\U-O Fjx(P;TէE~[=zq L:OMәM9=s|jz {w~Mh TO%Tu~B*cq+qഏySKӃ bO%袃xQ]E^(\7mg@.׌ߨ͓t dwLcN-֦SƆc#z 3r [y`7~P7{i9 ܌N([;&U30'K҈/>W +Қҵ+ p(^' +dĉ[RƒXȓ.;.2ఽfsq=XNs\vvc/BHzvL)/ C 1^'%7M߲z'xQkkHGSձ+taޙn6>bBlX "F63[PKʘpj湵wfW msTԤ\A)y(r9S"VA43$/ 3 |#D & ^tm` z&jg*]`?|&h@!k[J|Nt,YPkꆤEV559+lÔa @X=qI0֠[p^}Lw8PFn&7;& / me/w=担[Z Bjk:w>dwŷf?S fӱˉ&DߓWD'xMAEsFNXֿ3ؘݱz亓b +tun=zcl&ͶE3+]~=[lM;2mi |8|%&3Dļ!Y%iL>5fyu/R!([ ,< KxR5;^?]}a-0(0`~O@亥: 6+(5_g q$+-hjVs'O>mhTLϝ 겤>%H̯>^dꊔo +ؙ`3Bɹ*|&UK_ eHMr;I# }%~j^i 1 1nɕXM#X:0zB,(Qpl^Ȅ W~߂-ȴyO 62zrW_Ǒ9o):Tާ6{ap|؜2|/oQؘm;QukJj*NX\^=H:ejԕ cWoѴ)CA1fm`"'qt5Y5vZjߤ=jĝPhʲ޲Q{mE #?ܜ=(pd4q%3m׶CÕ搽xӜÁ(}zftb*o#rq?Ȗ`C͖Pرyw[X +#7M3Ǹ_?3Z߄%oleHQUptZ .M'&#H U$ i0'V'Tŏ%ŏ:'j','Ӑp4jLjj 5&~Jm9E.i +IsmDBntsj5nzG:4:[0N?ESS^5Y%뻰F%ܐ;̪YZ>dAM5Z& c:x$Cd 7qsLy^YffҌv K7調Zeg-EgI<"iL&ΒEQgS׸Ӧn,[.C"D\@N}GȈML9ô9󱁸ChC0nFDž;A/2uD4Suś+O2i7Ὼb2}1yb1uM)(M} tF<$3>3!KK%S>6U@sZK*k6-eqMJ{*7؄+L4iD<َ4&N쑃ě7YOliMQ+AjO8e3أ0IWxFgwb'12dh."adZҔXDl;v`O +9ߣDǶSSbǮd7oo[Nw9/=P9'VnPXVv?% hk`ɴjGnn!1J6 {Yeљ>Z\_ #Bv'vg8`/:N'mF:'b-[TJ2q +]#M2OamZ?M] - hgǂ`1㭩_AQËWmєNDE2ەprEx<)Z;cB[ApɠU 9"PҨ0yvs.wA]䂋LѣZ$fI"h0:Qno.+IDAT5kMer);׉lZ-07ӏw+XM8 .Xic;'R$ߴ>Ѩ~,Y=`SJzL)]llյY!U ^d#Qմb܀V!D?iF +|x?=<Ƭ; ubC:[FanQ1iHW7#o4d_FO\o\Jf٬W~_#[ u7;1y6fºMP>L'2NA A<%A-Q%)RLag͖Ra-WWVJ ėUV"Yɐa5mWnov{B dAwkhYxW?@ +bK-AU2Pz)@ Ϣf_ڠh#ohK1O=+IX\`sǿr׷ԼQc86:>[h>e[IX&1{xNo$ BymB{&\&<VG- R IWՂ^BG0!#%;}q7?P@&F?#FwsGuw,Mor%@!ix2} S2 V;Mi`#x.zHyil, y|񔅄8;"\k l`ZXǨ,qϏ1Utwًgkpt> +mgxbepɥ5sxژxWVҖW.Jz7 8*ht܂[ߗj-6BIA.@I=͸#fFʻIY=f]G:ME":O"bt%Z;f-bPSnUp2|i +UpX2 *Kr4S l"+3[a60JbdR!o|[kxT1IxU]0a$pF"0Ncp1Ƌ<0&Ip5zwKVaxg$=-v܆Ud7|X= CM];N?= QGRxѪ5:4dfܥ&ћ &4UC[~ņ*"Dd)L#g9zp0b"k]2ZwŪ@_ˍ)]-ϰ'=Tpňu՗lbpDH .w3ƃڽYW% )ʗ#]@ݾ䜜o# VCO@Um y#Ï+G؏F$QHwbRJ q޺zGEc}AӬ#3艖M| ^%pK->X;< 5s96bٳJOTDj:LQlYm Xkfy&&ABӇ*ꂥzS_?&;Y f$z +1F!_ +L%c%5Gy+VSJ qQŎ]/0'¾+7G{B܍VB&K^2Qi~{>Ь{ѯy06_1k_47< $ " @qqqvq0 m{9l{ W/r +8Gi^2 m\&~oMHȢo:&y v*ǩ "3siaAx>`B%S~8`P\A>0;9R#Nw0;``]A(-rpJ&b6,exxjuzM +U|Q~BϪ#P^ #=;z謼AP0;t1Tzy0:Z/x{1h3ahoPЗ;)P)Зr9HA )$ x-yL)t2vf:u%?L}zHr=lw(MCR0[CNPp(MK65,yKn̫5HտDm@pD_p-vqq"jlIm}ز:p:}(lzlz8q:?&P1tQQy#'N6[Aj?LzS7ރ``#VZȵs`W!ȆD HjC)x~]yI5z Q;!YSl4A4P GlG*7Ṕ!zB*xgҦڦڦP u +e/ڪ*ڪJYX1@`e4}&_`T@@@@-o)#S!뺢]oK+& R- *x+h>8hhQfDDV8Ûۗc]},<"g3Mp'ENh)uǵnuoy'(ԗ;YIxL]/\\{ ޅE}ӟ2Rg>7^6#GY Pv.k5Nʅ_D$\wO:؉ I\qTż[3ƻ*M~=婛0LKuJ֣$V rkŢ|@ s iڼ\;? u>S](#7{p&B&a}uwżk{)Fs{:J%-y$ߢCZbŕ=e 5pLa}'t+¥dyY^#Pz5J[gn;ֽ6]Za~(q5qH3>\tv:i]5}ܶ{*)^U5&MI#xl2N+CVL]tZY'XLc!{;:#E u-x42;P(xNX6CcN1YX`cnHFܦԖI9MT"|I}DAX[ͅ‚ӥr8n(!Dž7r#ʷ X"T"Ym)tw.GGEۼ*}cpIUnc\l.{ ݂ A3zVdP6s)ϪP[{ZK-9*W} hQk/Qj0F]k;3Ͽc=F{r_Z+?nH*PKXVĒLsg5OubV~݇QR+t"'胡UTeɏM KIa> icױʨdJ3'4Q4d8$#Nv9з4^J +1ܴ͑=WghƒfG VfXQ&t~f nG!5it9:atbz&O.T2nP4V@fgǹ̮76֠k_~gj` F$s*W (jg7܃́od@}DQ/W~egD݄A"}}.UneTh8`X}3| x43s2yt:yWHɳ 45thJ!;6Ge\Xu +Ejphi?M,v"+Tȝkh!G,P LW% ~d*0?* +F:xm)709XtaFw@Ђuv@4aًMu3SmA&rb!s .LjpC / `8/ (VJ;vjr38* 6܊pwoBD+x1SoOPN20Qa1_˼m,QIiD&fPETq"윇8.cFrc[6P;;}ѷ<:ԶggV/X ]fV,-vET# ӛobZa:Y-v *aJFW0 où2wݔ_rUYrCq1ڳw3:8LfS;곤FcdXÁ4F +c$)4If<3C12~ Q.J4h4жSA"ҰN3]DxHLc;}|?4l׏ U,12s܁+CT#OA疍R ]yv2!&~,dGu ͥ@F_*0]&*NEȯ΢ RGTJJ26|nX7!װ;6ecS#58eI_^!KUG{z0?}( F-GxT0 R$0HNND^r$FVc(d(`k:Sb'_ᄚ'c;Cof4kl:21.kTHǺ.?ۦFo3-T AZ ,KMyfƍ2? -Li LXk-l[[BHI:JBO +3᨟SsBX23 q@mZCu@Z לr}ccnW,ƍud wWFS_CAq[UaǼ炠ketácK&MaٶCzd,T:Q-Q-QI=ͷ͑nHx,UK9tnL \jEU~ Qϲ$\$'zƼEswLm}mg.{ 9,}z}ӿPpe wm[Eee #}=ww<DZmAiI#y-LS>‚TY`WCErl13pbG3y"5fsᚑ4OˈkJY [6k #-~\Ԧ|!J1>kkGs̛"Eͼ@mhM> 8޽!U:GY<}$x090yvv97TC{[=V\H;~f ++.9bs~Yk֭bCIʼn+`8L9r=z .jB_h +LLH- ?8Jг20L]L\@YTy=L&Vc[?t tϭǰGicP5`=N+ >s>nTҺd{&)iŇWk1lϢ5$sR{kOAGFOƺ&+lR. DKlG4%xqխJC]_cSstR[PjX,`lfxB+B,â qt)g xExŚx%\ԗ!ǩнW~4.­"IJ7 +8%L\aHqCsg" ^\|E C;gG@1ɧJ|h}I:LD;WvT!t6!g;O'>^<"q1' +.trIB+3Ě5k=0؅ui@9S#E[:+NvB|(꒣ `ֆcNWŖTZE3:Ħ]CcWs$BG +f;D|z4%k_J:J,/" YMbxftxI>wPoZWb'PfoW!Bw}w{K#ZH:>MvO+Cn9/)h[$:ߏ%gWD/Icm-+K?1oھ7K@L/JG.}Z~J|tV8 +iz(w\>!'{C` +`s,BsjNA{*ڊoy7ȩq֕ĶYT~yNZZ +C:kNyȕ93hi\2x *97ne~v^[H܎P |SE'Je-is +Aam5]]`Ԕ8ϭVf,HζäT<]O*<7۵="$)Iw̯U)%ےgzqg4[ړ[7 +1ݝ=̥FyRѽ2_O1Csl05+^2+XZ4Com` Puc7؁]vBQGWd?b5*U-\nť`Pҍygjp''f\/"l[LgYL=R*$XoH?>ѧ^!XraC6y韨@rUbZŭ. d~0ʏ`~A +d}cVYiuɱʺ|v%\_Cɩql)")F轄ÃB[{/)xӸc9 +%oDڊ1H] L+h] r6Oob7Oo:._)O&9=G3¯;B U`x+^~ < ŘPg M1OE/+4 Hʼn݂b1q<5EpNqއ $7 ƽ +8;R9x h|r +f,ndd51&l?x}Y! atv' &ѢBNKOͥRaϬ8m_WgvqfVf8lWjXL?[VWU:u3뫨ɼ]Wg((by.ybt*m:2?CL{]ɴˢwE|t9wy lbM=t2J.0f?jI zU '˹ TDo߶2ڈ~+=0L]IG٤QDxe2X.4G6 J, e'x5 +œ n]_7yrQM +'r^}PgGtCөgWtoVByetJl%讋2*s#i1>|e$}Α + +U} +ޙ ʺ4+PzU{?ABI5Fנ$gp#:1hCcTSrUw%6!t0BuDqNtĸV4s +pD /Y r] +^] 6( ^O!׊㱄[D>50|E>j*g =/zH:~$]wMd,50/e8N@bO/Uw7]_.Z8b ʐ0nr"KIlyC"KIjPnRyo"KIjHy$V㸒 +/gj_FGH R.U̦F3}taQ&T&QPj!)i4S!(e`BSe)1i@bR%)t(cRƤd)\jyN*.!Th`4$Za yl\RΏ1ؔkLLj߁Y͘MXj;t9x *( +e%)dWAR2<|j(̰Y0bvQH$nR`$A(蠤."20aRYPx"3.0:0̐$q"3fw~.0:ps KpgqlRެS烯;h@-3»x`hӈϽRSǯTGbgټHq@Fdg">?U(0$a -j;1xo*_,!GN{25@86Dyj"q߆\fmWq^[G9EJ7Ds L^)n?_<*Dm +Vm*6*EαsfNwk<(DJ$}Bpv|iKƐPgw# +;ciߍɁYXX;XX/[u7y~_o)D\SDD40&(ȈV8ۣ`pyt,4T WT:z+N~Nfwٶzg7Pd}9a/簚$݇}a/"pDkp٣ Aiժ#PE*8ԡ3.ؼXl?PU7&o;s0"8,v.80v$xWo.9:!G1nj %DTN;NtQ!Gl̂z\9DĴ/ؓ!-u{6k71:;r>jjf"r3B]zttaD6T df&Gg c`Y?9C\BΪ:0PHADU^TR1z1=s4v5:1>j^wنAoqZN/tζޮޱ`km˳6n_GO?wtv:A*K6H+E-NϮonBqb ҥyB_yaƹZֱ[lxaWS D\1XPQ^m0ЌEsD o|G]47nO?fkq-.ߝʦ[u;'ŲmY;t]'KkjwNxAUϳTS8AN]zͯ|t5bfA7۪ok:C%7s^D{}I/hnsyW fAχwW) x6ŭ-^*R|:t{z㑅,vx޾_"4r10)j5Le˩U|FR;!ڪ2+Փ`pog(aAMߢ龎۫ihUg`BHU!(ޖ_/B>6+ݗ8gs %bު>/hiτq3b~/֧$\y$负hMӗ9Է٪5x4gO s.ar|5 w{ +{`d*`6Oa{v;b#,޳Z ./J-C)ܷ+}W +@Z[nhQ訰lX.W/TTOnRW^M9k& + IM* '-#Ļ4^)C3K8"lc9{U0t7Ef"@;ʬes\aҀ`< 0IMe .1gT4gˆ4.zRZ*H[j@KD{6&R}}ϊOcj`U}`uAAAs!v5*Rt 5s`Ɲ`=p^(ƌY=.Zن+ yGU)yn>62[n7L8j_[' +mH)$;K#dxO%fh*u#G![Sf_bo\ziz0Veiqr)<@vEPd3|dd'8c +XOfӖ9RM,f6{]MOh$ ҟBi Sq;аZ5|5; 1JpVw@In_C7hM&à&CTd5[)6"Թ4e1 +KBbI@hb~;02'@8݌;|%u|#߅b vW-)Oﲆ> +x#F "մ A&xW8`XK9병fk|I=A ]_/AP?cϾ>tMQ>Sm~/ǟv-N8MVfh 5t0U#V6N"XM|}H CF{0=z^m'^?C b +O0`sgf蜋7Uq(tyͧ(\Ķ;keX{IHv 5ZcA}U$9V_"3iK6 +4㚚.)x]nđGH">uc>m ѕI,^C][YLOl&d+|ʊXo\YY(6e_ZvK-b|N涿n4]3^i /l^c$mi]jío>^V7vj7x۲tjGTwۯ,qO~d BP8CVB|*imad}M1Ífrnt+'h j2e7  ˠ `zٸ22ځe~ks/ɢtStnD]-֏ ?R.bCҝzaWt{dys9u9V|zJ?^q\JgNp +o +#VCHoCqK'Ra]RM"׉XaX@zGB;! +;^].W~.%32S2 +nN7WD MXvyWݸ7Aj NLg@SSS(ŰsWԸ \=sx< aϘ[G +N$jjC\a*D13<>ʹ7NQL2<͌_)^%`[-Ff!V-#ۑdD%?Ut&gjI>wDj6X̢dMFaIhVC@01i8iĸDN`nٴʇJJc䏇 "T/YSsmI-,ShL`Su FjA- + '~@~,0A`_P5y / C0⃸ą23%32%23%32%2y3%x3y2%x2ǹ3%3ǹ4rWC)q)ʰlSF~PȸF*rC Cy8ݠns(|:U#*Xk~9a`)qxk ~k 8Km&DÛ>SQ^ʥ ,1&=z8tFtjtƺc,_Jfh]SһpM \Q놤{\YPvOcZp(̄ ȇ_K^SQH xvP&ƅ^]F]:J=qBC&nȎmssh&ĩ(N,ˤ(]Ę  +ўDSޒ/ +D@#UdW_C^TtjEX6@tLc;ʓ8Vo6ԫbs##@dhZ7;L'] 9ꕻyF0)3ޫ P!CG?J<΃ @ftb4AtLwztf5S F? +1K)k XBB x(WPAAG}R=h>m﷝ {\rtF<6&-vfTg5UyPa?*]ˬ3l>b1^a2a3b- 8Yޅ5I>.sӮq& 29X1] 潢z8tz_+ l(D) +]0eb_kO%Dy, +r&ג(ѿ&3myᱣlNl8TD GB38$DShYX4lb4360ynpf= R܆"7e&zwF9!vwCay>w"%{Hr|ym ,DQqh(ȒRp߰< n-9 +oO6 +^ 﫮C FE2*6bU:0^w/‰/N?H9hAYrC޼ @m 1$͆9Kyf=_!Jb]ByGz@Fo3&l= +_t^kz̻CyW`2D] `=aP{%-iu<~xwlkȎ/m}`/tAoEa@ ݁$APr?´Tʃa@G8/ ̇V~+'@o/zy@(\ +A8#G)G0cDo Q- +02Zt +4 ʣ9auk \Q^1C01!>R(((* +f+( r(SWqLZ8LXf{]MaԒMX:_ҦQ1!D$Uɳ)Bʘw6~21b/ LkΨ;$_9w_̉wObwZtDž1VrKtMzbVz)'&"fQ$(&mTȶe1>M zd6i=ҐQx3m엄B7:aE5voa+Z4qeCfM16o}?͞ƾW䜾OL嘾M ~^(>J{ gU7 +ćP&Ӿ7_Ȝ7ߣ 9o k9o?朷?Iymw~b~-UUaoͽEΔ>3 Mь|o31oT\Tb~똷ȷrp߹gkmr~sZܪ{U;'ps囃-o͢?lV\=cUiv=c MZFpoBۮIPHLL7eo$>A ~  m2'F‹9)l4]3"ʤ34).44bUX*2c)04 DeixuU2T_iFe(R4j*RT"4zUʥr42Uj6Vq<)x$y,S\XǸ&]!{22sD[Xeie^!jz`ζ6,w5٥gP6V\U(RNCbR +M& U~rqtS)R)Dbt.m6]؍ƂX +] g + sz-Mdǜy#wr+Ow^op5fO(b˼@_jGe: orOfUJJĪ%"9,mTf67mu56;kms7|j:Q!,1gPPl&?a\j|T 0zFQ#8b΂q˼kXv:iz5r%7>8+TH5S/,˄Iʭ%^2ɿQL&QcR5Јś4j$ojFtZ[{Ш愋1BX"*Ԭ!T`jS_Ċb3,NOFФdP#TTHdH(ʓp ʖǨi@TeNcTl@\U\hɨxXd$|< &Ò򒆓rS1 KTш2t5{RmDOjyRl#B?!ċXE;' 28QjUm+dŴBlbI`3wz% {7nU7i6\Al٭iߌ +aZt]D0&"v.D KB.M?OB%q(Ϥ<խ@nӰ}*`ucyj'={ճ{;;w"HZ nއI.tl0,#$<VfD_yJ9ݯ(Q1YF@C]@y<]X _e:ݯ.Q%X|MF:]k+lw}w-g:XMiڲ*y1EY +Ss9zL,$_e?0i\V \eH?MS<0 b{q}|a}KV L{%δmu +L mN5%m/Meu-A&[[UxLEǧ;{_՜f![Eewz㚼Cj[Yww}SugYoS[wU!:GNN_wLDai0o7]QquYgoq~?'Æ1Iyg%^-+g ߷h.trtVG o-Ko>rpjl]"^H9f ~R, ^H>3[52;ԗ7r-㥽k"^C2x|,k"qm/kk,qKjk]h.>󩉟)|\a"M}؞SFsj啻,xi(.79D̉UUɟ)Z%Nkh|<#3ļ[bLXmYUɡWM(j-B\]PUP_crk[a-ϮnGT35++S_~ʦ&^QRpŦ&WˮMNMCXdNU x|ÒAkJ"?A{7RZ'ʁ*g,A귾O-;Gų>L6SG}_uQww[ ԥ݃N({9rf{[F_ l݋K\e\*R+&)*?Yw~9X\\| ά/zwW +ަT-Ę0\ mOG;[*vZJ[ĩ5` Jy'tU3[eI"%i̎mRڥ4Z5-Hԣfn\u8晴Ir=ET6WŃ}lv ؜V3f~T3Ỉ," cauBB WBy ; qB(wJD@z˗)P"TLN=GR&ƪI9RO)J& >$ID^ZcmkVaϊ&Ί)ua'[ o0JĠ +&悦<@ Y)"kY_IVPaM)SWiaf;3 +8Aʋ ᷭϨBf.N8Oɭ>Ec_cXZo{NYLsUܝxBS`Rass4xcW[Wy AJr7Fv&B{ +tȽnʻ̓cUpo.I_sq* +[~/5[ݝ~*VX3F^?PzYmqH3>'ƂqBGu;IN՞"2pM~QܖQ|50xTwZ5"ie-&ZRfu6!ʎhn6݄P qK5U2A[65I? d%pJg$͏"y"[]*X($d(,'wĸespT#* +a]!<*?Ŷ#YUàRb01&R _PjX\a ɻ@/$ KߡDˡj+=IB*A܀vY{j@ְeh5ϝ3RVvZ} +ڐ/?/0%9_NguE >hg*ohݕz_T=W[p-]D,k6;]B7GuV8҃Qk:y1ЂDT"U{ =0D=ދ}^7҈6x7*'cB(eN]f)_UUT}[0>]譚/%eb|MS ci-. $#Rشl5b kX{_֊;!i͢lj+}{;Pܮelj><ȷәd f +spg`ǒ^Ψk˓f:H[7oRV~kIee +*j;yݲ:}xNO[&6+M%]TIv,Lbⶠ73%b&XE*i^sM e q'T'7vӁE]SMu_i򌥚J~zlO|^>4ٿ.Eitop5iRb)|S5?S_:/\VW8G*;Qz2`I\ɠFL ~ =Љ *^|%kDbR?ѷHn_EZ?БB-ccŒ1'bF؍# G@A9S´A r객hjѨpL1;ÆT@8 Zmީ:0~)Í`/JؾX8: b3A +#hQ=t'JδʹѶnI![S$5 1,Ҭr5^FDLDPvg ӆ<08š^7v!ITc8:rJz4cʫw +Y"FUsHn΄Ug/k1 5LmG"C+=6NVĹ&+G٥= g͜ѣx DO}?K$ҤFKNyc=ECGP)[-.y ݎhCU`gY2r&@;i-BY BF&)^+Q_݈ + H 08_LDj' 4(D<($5 xc9>,,5B){QCy0B߾ ~P| +Ozd kPcDa? +A9nX 5<2(F9e, +u*3Nټwnzgw93t̞,3/tkn]KWtFռa4D]N<1m| &F6f5 +GTGpyH@7@#oƜYC5ƌB#^GY@‚%yoJtQGJ#"3hmm囯OO{CtXsXd^{8oV Y~ _#Ǫ=,a\vÁ_Pe˲WLbDᆪ w#nXo&uF?H2J5G.ԭG_bW05^|I>nQ`ғ5-+( +fGCڑZ!vy\! C^=aڡ8DM{Ɗʒ$@`w!bEYVLZ$bpe GeΚȊ1ԠhNfp_$/xĀxTd Dy_K+O =m +soJGݤn +D̛Q) Vv)/9/ݳjߡ /M9*s +k<8, *"n##A=1t`VC֌kAS$mh!DeExݠ6Dm +ݦ i^u3AGtz @xIYDxiFI=Ta$Ny`7Tehd ( +&S,|2G(Xܡ{As@akAcκRͻyv,Dwk{õo=:[wtw8v BEοv:zx>{R kH5뎀""ug@17n!3sP K Z7$0sUL !RۮyM+zoc M4@|1 &%z1(Bh\]m7\q "p{~ mAA55C% D!q{>VޡG0N~;S"WtyoR]dcG+^A+(pbykCoh6} #eAKڻOKHǥ%aԊ4Bd1G,i7΂9<G.7gkTՆ}ի\~Ȑ9ԩ02q"g0dBQr7=[r\ 6N|脏CD{c4I;θ#Zo>-vã+kd. WM,F39o'+0T3B\~!I  +]|:z9>  { OWo 1w~潩K*# 2')=V혙w~} Iɟ_"H3'&e1;d1='bQnӟcy~Jt( 3F.B@\^2d{5iv\22˙)k/]FnOin*iDԠ4_z]RThU*+Dў#T:%o}J>>gIǔJrӠGgDb%g~X.Yj'wsH%׫Em(>_L448仈|Y>s;|ݹgO$3( 9x_skfO& \h\K6L=w,==WPcp'8liTJ;.p'@'1e\/IWb;Uh{KiĺQ0m廸 B\ +uhxcIEs\\*=9gr\,nx#I;l鋨Uobʮ3JL^e.EynM`N>@tc(-5xtDܝwNr\O8Ҷ+;U\)OKw0zt=M3 9ӑa 0kBy(uImK9 y8!{յikyѴ 6}GWg>G!cB#w͚{i-tf,^ f-^ me1f*!1IEviH -]i˻ Gn'8]˶ +]6ʊxmiz Cѿa~&}Un< \P<) KWE +N:FyJ̒ MWM(L t9w:9nt}P/e_U>D0ϼZTsn^{ĉ܁9{ +.ɿXxVzsTK[vj$x2g=zS3UE̼2ݙH2`fyYPodo˩QVq4d>/iXǬoǬlz|eG-"7.j4ӹ. +cݘSzJ& x]v +c>CW u^}=K0H?0 LbS#ITZfS_PJdXiGJ䂡'`Eahv)8#Ì5|ჲ^0u{k3ˏ&\N0uY&衩Yc (@oJ ?*R)LٍAވQgF$rIcj$˻?)a='3FbUysvJ-+ͷDbճ7q#2g /ݱOMX HY+RfZ\M89-5%떄"Ro. Hqi Vbu$b~Hy B\e[h%XX_D*&q3 ˑ:¤֠W:qq5bvbukH|q j?\e[W*oTu{_d(jL~A0.)S>ɾ(io_\YgDʺlreʌgz\?[|&Uָ+s9h5lٺh1)=D@HA*8!Bdb+;b̆2llZh#&O0r;(عؗvZێGFw.H,gGm㚫_!eFn}- (n[Țټ헽y۩|[A5-W\c+'\Vpb3*Vn5CucER;CVI=6={5Zu܄[l_dƭ}: *5KiDb2\߯Dsq{}ws2*5Iy|l{b *N:[}t֪g o + {Xlz7LҬo>R+>8[[<]X3Db AOya+]je5a:qn!gG>JjpgBȷSP\1|8ԴZ63x5fԴ)m3:PxQzky:_nC}4"Bh-OmKK0doje+9y5AVireTgp˼9'C'*꬙C_~Mk۠}Jm#тƩj+kU=,>!>Օ[=KԊIP/\bM[!KxR$!Nuvw"**eA/ii}bĭx/{+%QT}NɗY뢻"0hNPMWxi$xB.'Qfv%E%twuۑi`R+ ]9U.$`  !LCmK'!]2t3Rb +p4]tS/aE0y֗N/-M7\Wy?="nxP»k$x->AIpYYY]fuE+aZte$5}/%t: tDޖX>Ie8La1:x]y$V^r4=/|!RZkI5(QWlg֨U?uY]%;ޜJ%5l bֈ\ Klz~~l> NZ¯R$,K斍'O]O[M̒;n|Cѽii$-Rq? j-is .RkUU՜*!QjEy&}s +[c ++zFD<5nçŰKTURʗR<_46@f=ɋu4:6m΍z[6Ts赦Bix\[4a >+c U-n-g_-pu-n)f6)c&vHN$I0@[)ļҤ. ҿ1R*z:7>u|< f{w> F%c ^JX D'?8{չr.&?̔'yGǟjQ1Zލ'|P?6wDoȿw֭ ﰛ id́tCg@3JC8$WK` +y:m+(ɝQa%&;.ng $)A@sԲt ht`r yd" H(ovM\BNvѺ(]+Ԏe +2]i(]kTF]ߜKѸ +Py=h@a$m[?'NDK@G5"saktգO~ `qp Hiݳ^ +p;Q;A#%' [+ 6qhj}YSE3Eߒ 䂁+E{R9E _ȞdP)$IBoqzz}}h&v.Re!8͊򖿴+;BgbqNY3OKqƈII);RWsހ l @<$ k{G]T s-ޭE4*^G'In)&cL3 +DA&ӄ(o)GJ-iclåڢLjqۥ u(K0dݥg:X wIcC;ӣ.*D\SvEvp|>QT|8ab!c C1b + v:m@s pPpF+["սYNfaCVvGAMi:40 +MיBwd%^ swR;{ݡ̢[wJ/4Ca!dOX(×0 +cwoA;C; ; EEA!"K?8loThX TCRwi Da<&u=c7LIh2@2Gu2IV`LpY\Q:R!c$T?$)³Fdm| fĒVOxdHᅅ:>I-Q&R4nqf!ng2ԩK`\KKoc!̚ a!ŘC +?q⚔iPWy?sp9 Z/ʯu9=\/uW7rkFʯ3DR-:F+m6a09 +eo[qmƵ]ndk",ϔ_cr#nɑ?h̩gqݳ^qk߈'lF+&MhB=YSG ,1S),7774V\MJ~cVm}G.LyNUO|م]YSQ;fj ǺL{}((7qt0̎y]q]Ub=rSuPT6BF`k.T;WkYnנ5S6 1f #=X_y>1Hj6S[eZ>\:3bs{x^ r]RALS;SD.rtttǸ-v+ _L;vzz jXJ3dpԜӓb57uk1ƚJmҭ{FACqeƪLOD[@cp6QC 7}qCIiEcoTEfoICWEo~.݆s7=baԗWo io!Ƈ}FƒsWar³ yó3}"=(!G$RX/^.=ƘGxflG|&_]SNo4'o-ی1MZAGL) @' !vΌpP9?N&nاϝ\CO>/ny<}PX0!/OPs|GІQ5ԅN^ᜲlw^G'ރ((/Z{Z{S";o]y>>;Z)\{*>A|g#ǣ-E8! bd<"xJ2CB=ee{^=`[.x.X VFeA Fe! 5jH +lHADٞD4pHeME ?y)!汯p7 p!8Ut$rlGz̼8wgW?j) ( wdERvG:rR  +e**\r4r*k͛{y,KW!oDL2Ee٢iD誧hFAܻx@PS̜)s4J <tp" hy22p8-@R_n܅(kl rs NTTN#<$( 2|N,\O,U9&d,ܸS+s6j,s&αgGǴW/sPW7sVMLt<'oêss'w2sws gvSyT%GdLySK GvEBB'vfL|ܹiYXv ƩésR?wS#fn ~ݴ)kKL:N %ޭb <_ IW\l58Z}'AEd,,r\ T/ Isj Ws$4qR>[7DafPĞZ92}6?rQTq\MYQ"^_ܕX]$_uLI@)7s>^ T?*),iwԦLpLwL28&hpGrp  [S) \1 ng7^6XJ\ޡux?1 bgvSޚ:&-/_5s>IS)cB$a +. $Z-ez w}{&0#2=C#0t;no t@׳Tyº}/ٛ"IPK=`VG6wN .IxQyGvȯ7_щ:P!` ]Cۼ x\כU {M/]C8d h]>l\`מp؄LpjӝBRjGF-~M,>*2+|aD'Ă,LMXZWw+=}QAY=^6<h]WaWAJjr$-b{^cD Y^`<= [xh1Ŵt:),$uqxU_MubԤHSm"5G`6XZ [d%7ĖdD` +2Z)nP2EO| ܩ7! ĩثTuAy<ѶYI Ȩ"KsLD0vS )OX*#1@Z$-OﻞV.NDѝ VHW*ok&THh"Du_uI\ZJK +:-[M oĊ RyLdžeyM&DWe #{ a +yx/b a;Ow(^q.ȯT1pgP˰/ThnthO +^oiih{iDhe1] +Js* +)P~Y9eBڇ䱔 \X~񇢖U4 *?q\e뚵ibmnL%L.+z'x|lI뚂A[)X<~LWrW \KҩeDG߮I [!Y0:Ф1vԷ0J].43DXt}ź"A ӜV+^s$ܩљmǪih*{eE +V8yyd&^n&iC1 e{xx) 2%g(IAds+F1[fXf(܄\Wgh#."v)_9_~ŒN$op^̭+}+cSDf?CaV:Srwng]$m|*[$+/5yw7᷀qރ=6l{ ÇS_>Q;o]Ln#_VG9PV&2N +;r71nQ@jOO[TZ2V!B#gL%2?>O$:ṶT%2ٯ{ޠ*:iIII?V)8LkyK]TRR"a\ ueati +EbvEUֹJ=(1Ě;Ҵa)&0B>cs輷#[g(4WnY{xF LO3:ֱzr..? ? 1 +Ms7|$AYZ@u7ڟdz&Ngt}-)>X9@`',Ϫ!5Y:$22,R6/T;5` XWԲ *Ts?Y) x2p~ +:b3ɺ[J}ӂ~wPSvW2f +jF(\X>{_20?ruB +OL+;Egtn ^9@gPGW)Q fi+3jS+S g*(IE.O`,BTZAl˳exf\hYɷmd(Q뻂ԹBI[,bKZ"/t ,}$ĴweX^aKkZZKiZx݃u+Hmл%;ѫaX<&05Ll=78!,1̪:1,D[vhe( bGQn?b>j7W%yش{3T۵T3ۏkmOUWz3e3fW^BO<`0hj:E5hʦz :]Z z HOu/8zvp:1lDHwA !p/,LII3{3g#JtˁT_k"N<99 ' 5 JF%" 1[XVH_XTeAMy-R^ۦw.l;Iohh[k:lGQ&(8/jݑR]}Xޚ,@_SzқlLȓ{Rqf:u->pY +R|a+S,JI~_u(ST$S*rG:z:@uʂC\RY[v)ey%-"3_cʉi͔tL:@I:RFD&);rKI#!U|<*QI cYA&)͕M"%}<޽(yjh|ޛBDVo'#cݍN$ Id)ʟXF!M>Nca0VG''+X=nRg4㼧ikC^%Mrk-w2Uԣe'ilzcm{ڣY .MZ+z9XbW~] =Hsoی{{ǺnJ{٫WԱ{MedW*#2֔Si>P宫aXz(Q?QqjtP0R(\- 2LNTTTX6S8@oWJۺֻZPbۺgmF5E^ͩ28'{SNi68^!b`%|9^P<宜< mmo8;O;J>=:-qʕAaQGHut  +r~q?½.+C}U8(qZ)8 qΆk\TZ{JUpNj^KeV>џ'Gub^1_UP h>W#LBe\1c>^&DH/EFkpÄjavqvW#T jlV_<-QAɮu]_Y9U'£ʣ 6S<M +=_C.^tٕ@0ԕ@ư/W3~+?^~T;0#qf)H;(WjGa|AbծQnh,,7 6e +G*BE]C-l\\F)*%׈_3[_d+#Ԇ..MO_ +C-%; n]J [*猵`aW +l&NGfWd6aQ,0yOeL r"/uFM /"AXCS1ѕd|roH+=ea%" p'QD[xG+?}'U( +򛉲&/wL2֓/}.̂- @.\!IM]W8si#!+j+1羄Z/߰paxzIjSoWxԦ#7* Z?zz=ԭ'?bc3^f&@6ȭHZ$lg y/G6aPzF>4ε+,,LR ~_تx6`ob**dM7I,UcLܬ&h[w J\~8CX^t͓u(!b$W^x:'nnǩ\! ;'⦱Ƕ6!}a/i.\5Wmo o"#B}2.dU\ v89Z+ ˼[k%Q_twG܁et_TZ}Dڷy3J ݼ53od؅Ick.܁#偤~ +ӆz>6bz|jKݭK9֩1/FSUmz%զis{6H$1^P(w_ֈK8ҍk4ې||O {gp~i60<@ OP\OyHê#Bﰼ \Al<]/>HpxYG\ ǎà=o.hK?{"έPf BBGH#"]PrIƝ+]ǰ),uW/N1D&Ɗq?xP0|:Lp zPG+Q4'J>Yһ\/S=˟re!W/٧EpCF}ŠQ]K-)?`,"6E$*T CϿK}J-'ßNbVt}HN(cj`D-Mr %M|7 +7'b7}T 2ڻ >v +!7r H4fn|;Q49o`՞L'-E||O#̉v^Nlz؝ِ# j 69"z1П'v*[>}&yOBh?#0xgzinO8L,Z,9)_I Y7hI >{ zz#yRc4p8dNҶ'iے4IV% zmqDNLʦ-2 4H/(;"'Z;mMzx"hNؗ0exx}7poŊw^iD1Gwy BX +&>YIqAx0~@e,@@1a4D+Lhh">I4 i#yx6(r:zE* xfB 9F'sCCc j"AR2a(N!5QͦN)Ӻh,Իm!ACC}UQr3z6*  GԴO,*a.Ӵ/ĻdW^`nܷpհc6Ĺqkb (~\KwC 7[~-B:l@s=ܶes4uCq/J۷R}O n|C 53gk|0(72A\oXۃ;pFN4Fg8oSû: 㽽=c?##aT>ܛhoOˊ_s>F#o|}>>>OK`{z{"sbϹCMđ;?;?;?;?;|`ȷ gP/b{)(jHH&lJ&!)(e <12hVL=HXS|<1vo}o 9ٛԑ1V^1[RmdRDtPI,ɒsI41X<;.}6L>?7[ .F>{ϯ\?>9.s}oxoɶw]vw~v.o[6]. g]s}9>ovwq].sgs}P9>Fos}w~.9>vw}.9> ۻ>g9>vwv]os}9>6vw{b ]osOO= v{e`=͢0µvUGkVGghdwevq͝]]2|vgT fip-ҳ2%&8Wl;8{ ~ 3ٌєa;a4]n7oim"߻]wľrY>)Zw\CAtXѠAXw7si$̨>-۸OX9\o$P>-3,z)?~ЄT> +,F>9IR0?DsxfݟICgpl)CWe&8\)yZ,oo[/pX"i)oD*m=1}gfV-SZ<H3^p߈R'oa gl$cgit<3 x'ޠSy߼0'|gޔ)}{wro4i)pQW $PCD>|=$}1W. ω hޥKY8xsN$-@:ew)/D%XRE+Lf0v $7 b_|*!3;eH-YRx/K@q$„~?;p/'|W Scz"OC3>]~W%ocp8 ePۜHvp9ZHA; I`! +%zy<9pi*L-[`cp8p8Esr[ 쓃rp8Á9;6:A:!Yq >͍wv;Tz0wsBYE%նa9f5jq9lq9q9pY88[}19x;96g{${r/&|RѲy4y0eZ7n|4VkJ8,%lG%˘^%sT%,^Grܽ9_,'v7fjᶚcJ(f^1KuᦀDB͕._qzI:F頙$Јxhj3KѭX6̥lG6j8˘tJOGg]|OѦ17*mB JI&u[Y"EjC~BHhE-[BVCk(@d@< %*8q5ex_r&JWC`_^@}@" KÅmb8Z cJ$Vhs9/}FV0Ɖa#Lᙕ:'McKPl`s8W$Md`1o`0'߳x)OƲĞئ>یkp EVIG2W;Kqc$%pGҔ̢ kb܎9u1+ֲcrbaF}J4j9F)L6Ko%J<#-bE=߾FbAh>8S=XK "6g԰ E"/Rd#Ra?! ZI,=CjEH~`y-%Ė3$5"-#I弁Z$ItYI4H>%XATb7Y9o;p1("e#Ka2 hTa%ժNЫf턊݄>8b']F57 dn.F\.f)a\FO{1e}3 e+G/u +K-A1{ +fFf."VF^}K&xB̲thI2.xzYPhc(tv)^$ #w4W4g0/(.˥蘛Ĩm?1!WjGBO[\H׾Hɋ'Ne'(]+̎M !\E݋gr~Lʳ̍f ҌϘLò<~g:|_0@oSWy!DעP2-r_@zHH&Ф>䘇BT)ILLnsZ_睽sbttF89!=wsRV®ۆs>7uZQþ JQc0I: %~š(Tab6Sb%/Ϳkލ2V:7UW{j9"9S-z4jNUm$xA*%W"5:oC6P;Ma &1qU8y0}r;` +u`k1*4ػB{絾?&A䃲X6Ul"Td"Хkao3ꊷp_f_Z;X.Z <ZJ;c509WA7" }Mgnt2PY*}|C(kxC4ӆ#;hK0%eᐶMǿj&d]..(Bjܹd?$\ST P4UKZ>V^-tolhca3 >ՖU娘S][]\icЉ{rl]ۛJƩ< Nu) Tr+).ք} {wbn7k+ rӓbcNϴDEʰh_bc7&WJm.]'WB|c}3ׁŒ +.(!~q+ W3 /i qXUcs]8J8*2}2X]2ִ߻A`2Ox +EQU2t\S_쁜 m][{ w6ҡMڕ)x ) u^jdm {<wg]s$$~hk~T3whCaǨ LԂSh0f 6 -*@q:hWڗMq̇w%\>gɇ35c"擈TFIMZ&#yOoB#@)rPdx7^N(WV4E_z^Iw$*wsP͈65Wqj1fp'66Aʯs_]ƾ\|O$.)ےB#&pjG40zXT4ۉZ>'#2Rt1}Ɖa,%Ye)E)o_l T( +Msh}xėa צ4rۢjłCD2͍>շ{j#ح % 4Tjb h~I0%`( RPQ |u(G85ЇS4~tY#aYo.w?rEaO诘ujȓ6\eۤטLYs}HISu`/iW[*cwޯ:''^ĊR)]38ԃi׷_$]*۴-N\Aa7of|Pb߰7[C)VrA+(^^^  +>lξ c)?xGA C1Fn|S ה)Z=`*,UɃ4z5U`l! e]0WOO<0qVbEmuqi+qOsV01{ :r Ǭ,Is'z" OUci? &e<ܜxQ l?P=6)5V+ k Sc,CY'QCۢj$xʽ`|Rf򥁈iE&n6ŢBf?q=J6Co֒KL/e.'QCRKÌfL Sl93դK~rjCe"?Jrb=)&[# `˿y0HL@9!ǧ>2"84<"=d RxKVjښӅlw.%iLKdipb7yקO%ʁ݋+[HȖ-0T""Ҍ%0'=AQ=)$1jԌDLn" =Btct}6c:TӆI1Vtk 4e}́Qz9cRH]6pkZޤ;n+\RӒ!gINE9ĨI֯D'i XLa<ƨ;-|/ 0jYuL̘针,|ЦOV=uM92Orz%=954Mf:9CمB?y~uNtkDR1D@eyc"o=R"mɶG *9ruǼu"i1E#5eR#ϡm<Nk<5O٦ȗgڪjΞpOȁJ׿q"B۶y(E^cp!"E>c˔s(O=۶y4Wy;E~=X`}4m"AS癶˶Q )ލS<9j9,O +)rYEcOu5gU;lizQbG H?S^ZMߥ +M?/JUBR:L!ˑ^W# 6FnZ_lh WmwXu+mlU;uI P Z[~g! EDQeI4nj&PХrzĝ&:;{}7MdiROӠT'N3UАGeIUUA4X'dꔤɬܴ-ܒ] [IzIl*4T02jLZjJ,ppCJCRΏR8գ\e-LqxrJ%y4F/7ɒϦU0C qBGl.i V9AQDn^0Ct[4% 0gݝcrim?ggߘ6^תtAւ( ghҘZ:f[WX-m6SuUϚΔW5 AN4岺. ?]J|m-3.g|MwfuFFՠn]gs5UrVO 6ռҺUME*+J.j&j| +ZZlcj69jh ?B.3>JJ.#2Ko/F0`nC"ikpm:rk$䥬Ej%kXn zJ{F@ըn6xkJ;3 +<0K"&~=ˆ1CuVU-&ϔBճݰ8 +ZtEETDedh슺eōHZr@[r\Nk%o5xUu6Nl'*5U{ɾtlW9>4(xJx`4E*v/°u+ma?1߯iA?Q"fO!ݹ[MT)8gfֵօk Wۋ6!%Sz(V,|F=_9.IuUyMZBYMۗ3/ޜa\Ta4k>eH։9hF-;|?GuK@E4x8 yaZr@ܽ;WŦYjP98uAC{QDp:B݄=FKxC3bRCAtYܽ85w41}T1C<ϹЩ4V}GP}U{g?wmGKu';$q}#&%ͱn:R-P<ɇde O-ʶtOS㢶i<6 0E7xXr կ8^dŤVXg4525A+7EBe!DJy[ռHk%T~2%}2S<%-#L_yJP$NyJl% ޗZ ϗG _FoIn]f_XnKPos+[oiFM`+/' M16Xm#~l֑HK+)_\(FoC_q&U`bj<]dxBp6"7V/7m:ֵ(hK<«$6WkUc)))ߔ4ި ue=m۾LJ_qi|` +V'UәZ3GjPƗdp\{|0NXTmVV PqLC\bS8C +};[@%3]C +ԑ~ZDS$zuYGJY:YWV0hU^H]=[Tt]&H0yl 0( +7s⣼_ +wy+W_cU9~4T@BC7K6JUcC8 1~_\|ëH{sF9{&%12ﰔKz.y#)m4mccylN'^-2 PDsb%~B#}*TkӞvB]7 +>Q¯<6ϭC&1txwr"׭ݡ#h)DRF܀OO*t+ye솬i:~q(wfML"W$ikyddwMεkz[ YZ_X]h⺠LywH1E.5̡ 4ki9a8 >&LqjI?vc~gջO OaiIblw<KOSsJK>tB|i7_+毣ٲu't/&ּ"J/` *p xGcWCYt ! 9qͻ\vŃJS7j3C)73;U3d~rH8ڥo#s=ųr\gGd̻pS[$᳉1 Bd{PĨ1p+lR kDHp_\faFBFK]Β0,K]d m/5-DF&ڝG)#{ߧĦ.QcnTknin|Nop.8 +S9L­TE+:P=BfBaQ?hYd¼~P UԮryG`V3g!L~*FfRO.y;웟V6d_DMW\eW\q7;]_!L-f̬'URwpF2Mv>FmO} Oñ+qfGfڞRږkÃdhUFYV%g)U%,k˽`L|z0ڔ}ԢTy05ipkNM\cZPOJQOWU>)4=8z&;WˌUp 8REGi6k, ?ֶG%ٗh"+TMt"~C &AP:cWp(lq+Zq.6 Z%FbKa9|d^#B#~GJb1|.hG 㑳pi:OϞ&-(!G{ec1K0caC &JyȁR<Ж?X҄a:_PΣvcсgfRc7WJT8%ujQ0`ƌ:;i%ң鍳6EE( +;D'"3 Cq2Qʫ&,|!pj,AaV@ mўTG&qzY4ᅭqW UeI%ۑ؉ॄ`T@UqB8($bAs*vΑq|ks%,8Z2-m~IB/yٖyme6%½. Ik{<;W(ȧ +ĝ+,Xewsɟ/B1ϯR}"%#R@U]bW>6x޼Ha|$9~ 8\DZXX6pO)9ejw\7۰-Yf 8 ٨Cª# +{PṰVŘҧص\2`.=9o3493S78C5F\t +dl8ƛZ+xh?Q0_wZLvn=q؟?1;ާ#{ +ߟ:C&|8, +PyOE/@j +PD69~rޡ>#mL}ulLb>;Splo(N 4OAZTO[p _3fΉ+f>*ysGרWɬ>UL4?v?VٳD״Wa>?^qͻ^%|#^%o +nFQ>lwKE59Ƽygv.d?ZnE&Dr\ihYbWyW1DAlHX=;J9>cCTMع: KW.&REHVDXrˑBpij 2= ar 4\'ȊG u>#$5 jʭ Y;$XR;=> ~+%a& |x΄%qM XC#IX&Nfrgq0ko8+^!O+^sq]'q4B$ś-V%v,"c$(Mjߛ*(qe{Zw,輱cNi<9I.3Ǥ1.I۶Yte8?A;~ ~~v_·2lyUoy FO7u$o6$E}Y -Lwgז}p-V;&V;" +b:?x:?h:>،?h:?l:?d:> BBЌ،AGàЏgMRN~M¸4q +:FF#낞/URQ G!EގC^@2Zql?@JGpR V}#$Tpviْ;ЁBH ĖK|͑푤|"KbOqmyюUBCJ ?2 ^~Ϥ $8%n +/CJ+rImÒ$/k@JJX]]R"$kJ}6#$cpKY;'YrKY!I] 2)އn}$ A`f%\0"1H{ѾͧCG6~}>70+-E[O#yJu h\KbyԴmod#TmkiԭWmWu ^]>!0;^=be:cN`s$ۙ {e꜔L<D֫78%,*x)&Bs"x{B +8˗b5-=9%2ݧ7\ 6F&|} ">6Hq%gT4U`#&&b$,jn^[_]xdd|[;?FU}eLsX%*U& Eo2dG^EGN8h V^={lSѡl~q [tr|] -_AyLf2d'&>CEu󳼓|$&oa35$Ɯhvyx0y-8qr8 m[-~e۶l۶m۶m۶m۶޿;޳č3fffknD A8f$tX[ȒI3ĶBjbY8~AS/D820e.żV]…lI =jqjĝNv&Ua-5Lddʛ}_u !I&(e\XD+]rg^s`~iPޝUõ!ĪvHIiu-9fxҧ6 2 &%|h)C|CeesLkRŞiYCu𨴝h޶R6$qLN˱gS3JkD +17Ed&I3YJ? q!6%Z%ⰣgG,8ZKt#<o|ө^qTZé_Q +?Sn8*dv9(pMOx#ߜ\=!oٵ=c_ٮҜg;Տ6H c^2pPd$J3<ڲlgN(ǖgh\ dgPsNW/>~|tcK5+S q` \%H']v>?3pL-$QUImo|i&J-Půox[!H&VٴTNAgLMWqƙc!pwq2IlqA[Fq\c7( Q+3v^\cGV5j}μCqUlh|}z[8e/}UOMObsWAzdsϿ-9뮼~np^|!H2$źe RԼļ1u"j.+x5#i߉fKRybMU5JظkgU +vK5 o16.&8*2PSmtBXVsC\ S$%ijpZi[Ho'%5TY$ҔZvdNnyQP>zTikb~%Zt,Uũ5q,Ra~ pX-+u#)ώ &h9nR pKFW.`ڦ`Dxk3SՋz"c,Ϧ3c:փIK]Ϛxh=9,]H_9TC [~y,q®ƬM}@ZrP*y8"Td[+Da|)eyh c, T豯y_a(&ԄA-:c\D/·Ջ[ ,&;15erHdݨHw\%ca&ǭ {|$H^|o>X)z Y)9,Ce rDJWG q~G17u5Q!p)C/Cޖ=4J-I[CziZj[z +KT35I0:RęBH +"ߛr5μsn&,A,N-' + h~|iׄ,'g*cNM0nm;KγMmS͔ñ}Fps8B߱\g<\61Nwԩ] 6nx 1= +whm`oJ[t/QfnGYA%'C}W"1,]L9C}QTDPFEr8cxĆyzqp +;ud;k?:rBuԁTXۜaLشܸannB5 |'')x˖vOIv%;?q:Ru<.)Á"V/M'6,y-_K* CzWHwdSwsJ8#l T`wơ#d\]=|lۖ + RHPJg+wR𯚞scdwT-!J9!IEI!JQe*&(OЅIH#a.A#afDi_q17Mgr΢&MGJRZ͛O1s'. ]KXH0{Jgz/P/G}Qǩ搦WOFs oshs oK;go^>t{m|{^Al]L5*ָf'T54fo^-+7h=*\S沏poiz=S]YO2ݽ"o[O52or|%&Hb`~jH(;K$p*%IT\%xlJij0Wn'_KvAŁh>ˠHeJŀhW9I6TD)SP?*2?pi*?D:_"<?U>!ieS=aҢ +(r|P|C-^>9V>x{waV:HΓٟ΁ƪ(Pդu't͝Hr%͜C԰drݳɋ HP#pFίuhSI6hxy]GrBcz(}P+V-]~lV=&]xݡ4`o7gWuS7! LE`1 <5"kFƾ<2TH6tX=Xe0fidl񐵂I`XJmnQ ѡݥ:9ovbRӮ,bZԮ~\[:Biejʣ! d&InhImv8R8]SCɳw$ϷZi1͌Ce#>E1ЛY;ErK1kN{;ū=[=[H{}^9|":KN_Z̞)M~dwA$||LL{MI\Jp>գ@ȖOa;+>b$r.<\J΍Ŕ|Ɵ$~Ɵs(ate+>r?py9=v9ѣ%j[a>CoJkYNBdCo2/΀?~2L "S +$#Tdpb5lh׼:z>:{iF/CnO`(v!Ά;RVvHAfᵑ0ў--zҙr(ٌ{ vQzv9ywX {g+W /C˿;khQ? qtER&?HCH,aQCIY lnXK8z' f )C<׹d23~bXnufw'qA}YK=@??@I+ջ+~5h)  hca6CkYгt 4۶ DD E!jκOLJqZƅBg=Y,iigj1z҆/3WII }y3m_#^+4 ˋ YN .Є<8g$K6Y_!}3uqhڢZƙpCKs_/呖[3 HqGи1,s&63ZPHϒ^h7Dw94n9JA6.;y&|2R^9[;¼.05lNrִq%ՏZhMu?5."W85l0.qs4vVVR&̜.lO%%imOԣ"7$%o_ݾ.(iFNjW+DxL.aOIzh42ù־N*a]ڽsuʵqX +tH'1=8|vO5%~'.ԭF|wp8_*Du̸q3T*&|hxKsD"F٦>)|p5Ls3A^7?_׸> 1rl-ڰquBʀ(R$o\_QZ\UVj8maȋ'®:FCd C5)M-fd,)b<=ASBIr#Y6HU|݌L<(#i)>f(!4][mavCL`43dvKz',}.-&&XNI$+ q +z$IQ+YжIP:2)u$ +1-$/$}!BܓQ`j$ erB ElB>Z}vb)z8۫PFP >u?Tx'V62vލb0Ar 6|Ø<2!5(-d [I?M#j +52,iP%ړj[mӑo6(}h[~hJ[tmXemh5tv`vC`İ+4BԴ"FTJëwinZHn +wOo~݅V&: Kk}'$" +´<'&'P e+ΒnRɴQBVQL<#)#]}x&^@KHT&PW"VR't4sڊ]2JN-6avz+'eW^*N#a8f䵽rlkHN>I8u.}#c.%4<=7L؉.ĒWas.T0ok?:I;7eB]/vha6,GH},O5y"%z@djMUUu U3E,V. k9(5Sqr-ehe>0Ivἧ0Ai$_3.)lsPpUwQ܈ C2ҷ;}m{qOI28{ +3x&9{ye挐Q|EcRٰ+"ahP XL_ jv6o]K%U!8 Lm Ե0m<4`IJv5s1״b6-T2[&q 058c +wa(Ԁ%t okr1&KPJ:ENio$7=~dn4-4>K%t)tVuWQ;;G#b-S߸CܸCبSZjiR:]5ebP9iaވ:3Pl>a;e.I,lҜf>lY###++ ++{CKK(K} [KK$k*o#lY:ȅqWvpm=.]uZ_ODo@Ld4FbempbdE&]fmbti&jmct \+]Zoޜ["N {L'  fFٿk;%U_#NvqL x1j=͐$' V.7iԘW) @#g΢dꔫjT,9 ކͿ\記7yN9NO9fswy^Mk%#BwKJ1P +D$!)x D4!cP4(DI؋^\LSdwuL/l?hCD_4$Pu/n:VJ]1.4rvpZ'`Hπga6`& +G|V+CF\nȐ|(z%dtcdMBK1[^}oooi6uk2^WY5XBHu*ftgx\G6WR듀5 +ޠ/U{oMa"~Xj@+yM0Bt ' ZӲۋ6a`}{&|PQs7]l^ȖSèSc~-̴i:M]ZVXs3& 0C.Bi.-ZݾPEj9Y"eh:KD>ک,C]'xj[~DTvRG}RJ2fC`JEnaP1qXD1xN/VD6`pLO֢ 2;9w7e< 9 rKgPO|IK$Jlqebʢ0Iuy"g6枘/&V[y8ܕo>Ūa' %ڇgs[oDg9#mʣpa׉[`` į#2x0EP}V( {Ncle袩H@@tf<0bXK$,.ԍ,uKh}A״SCFc8E>g$RGql|$CYjWLԯS-hLfˍ4P^LO '.GkU!8T7mg|2댊nAdfIQXZ蒼JP D4 ,|WsU[\8g?INY9 \@d1xyuNVl+&﷘ěc%+,<{|@l`9X9ϋt[:k +;wˬ~ 5ja*{ Zjc=-ΰ>f@'^mpK;c}`,e֜u =ξ]GtD~Kz EE>]iwv~ ;}}#dQH` 4(‰3r9pg*cg{'; ',._aNp@\SfSr11;D*1$ZjCn]1$wI)}'j+"`qΙj[F(1$cJ+i|;n+ܖ1ϾɈ_) +1ջD{_pG(P?T?,ӗA0l`w]n59=n/wW럸9wWdܟno<@ܥn/X9-@@֫&\H\/Z.;"~ !ݔJJ-MzŔ**5)3r`ԏK'gTR&cϝs8eB&gS&gi8R&efNۯ\Fo4r05{a<树t+L 0+R +2 <l[E0A +t Khwz _&ET`RPfN,3。3HW1H+m ܰ3_hH^LқS=J7.,i#7o|N|׀AgҤxKpjq_^ +9{دDaPTـkF%)I?>|5}_nj]W8h>GA'oN][^AKZ<cln~RGC@:8!?l( giI)p됼5'&>F^H`kzp&76bqَ$x.EoesE6a86^bEҸo.vdR6. +y4h ʕ/Dj}4٫ڽS1iN3u~}=0CRSkkhW0Zިۭ b8vI0e$ [o sk0h?D(le8\=cLA?m8}Ah#@Vj.GAE 0h1j{ G°}scYs >;lV4 k4։'4\4$|!sF1Ph}GPfUMߔf5K# ϟKΡ(00bg~g/DG+z;e:C"SpNwKʼ;b b28){:w+#zvq]NyȔ7(S;5-,^ ym-A|TE6KK+_iZ)@QL+ +g<1+ܛ;HSda`Z>Iv*sWDRD&KWj{LK[ ZDђ=1f~Bd,r=kح0-Lg`7o  !LLan]qH][LfYkMǣdlx}VNlcnwmh3G +v: s6B#Sb!w'kT,I]C!g w NG*Bk{-T5t!90 +@I^/!7p5iBD b,uyds .Gp_mDBZFRDֳV=A#{ iMc,U$:JYQ(24aW~[h!a]ļ |{d};zCDmyZ;H(˟Uqx}Q)zfœI-QTr4.7)gT1ܗ.`= OBdhFMz?A6BNu _;W cjNsGA^;hԕQ꟫^LUdze~Vep=.#PߤI z%F02!EtC!9D쌹$1Uځ/U爨"!u8B +bE l"xDPqby"E n%̈́jEj.8[q&$Ki'-hgz´|Vd "eT$K!DwpᥔJUDi@jk"#%5DV0I=m2Ҭo<^֍c|P`X3Cao2QP*CL5wLhiliqSC@TՑFO]S&aS@,Ol}W5J qᚉu[nI;f:òbǧ8*}2{" fX{(^&%1;NF]Zb*1}8/ *MCsaWB#)G 3!#1D#rUj}̑j' BGmhwzS +F*M\/q4]f`&3bC'\}KSɩɨKʩ)#twh z@qa?- 8E<͉Bפٞc69 `^SԾWi1zx1#|13:3 3§F¦ §1O+ Og#fC̼;dNyOE#fx"f#fZk)8u 99W)8#f9eyVB9D9ʅ9lg|qUNɘEa Sهc~r~~pbur݁,h[{!ja!,D榔RC)!3ਘS)U)e+|p 3\%3/wRLHFvvv|g͹)+^ka&!0!Bx8Rf0'x11$3y|z9&pZ跡46p(aת[ {zڱSB,׸3ifG$V_4_2M9-tGK3V+z\F|afϦ0<ֱ.Qc(5Zх ɰ&IctYjc85ij0IBu)Zcxu PI{hkMzhW,p, VC.%}}::*U5/ށGڕ/9vMƁcQt\KIU`}E}w/`ca+FIҌE铞켅,y8f-I~9vY'ă4 6 dHΉ!Q$< c> 8il6IN^of'Yc":&ΗWȒQ"Q^)Uc)+({|$.9])[)[ɱP,!s`%U~}]F*^#M@Ӗ icg}* W򚹚\ >|4R "fv/0 _.5xH70>/[eurF *Qi "k2Ԙg ӷM8l"פwDy㸇E˯r&q7. vRunmCG{ĸ ^zT =|(D{jFuMw2" ^pD e,zB1g1L3< Օf.(Iһ.FZY/̢0MAvD"]|/\2>i &(=o,?HY'2)`1 + V0D--kSЄDCy9׈n۷MƍԦS[\XRƒn2l II(l.$)u@|s<Ÿ̆lNП)"֝e\6*yfnaBRx4O؄,3:_Yzݐc;8HtB+6]T5v,!։?dQr?f<;vIgP7} +㦴>{-~35= F6N E8hWd0uz81Dsmy2Ze`@sySrեZJ`Z&[ +_e~(qws'p,E 8u_MR}f+kprV| j~/r ]n-w__ +718aҜϖªPa@en=lÊA7uYL7 O_Ŋʜ{o6?9*ۥ9P`:]~xj| +ñNBt|1Ҝk8|HFMBkYfhК{P}Be4uj/FIrIimUK4fV).%4kJAn8㆙ 7.Y-xj&7Wf[aJ<?Ja1*S6-ʣ\ߤa-\C\dԎі1 $Rm.*s>5)t_GC%)ZJ=2׌d166$uQVx +rPoVgއ>}DTQlv2HpJ٦`Ifz){yFzɟ$~!gDو%@׵=܂ũY'NiVf|LM0YJP4Z&8vtѠy=nz@\{YDl wBGK|#ur͞g_J2Xo8pR@Ns&Cμ'A)7iI:XM>IkȕAu'ӤTU\?WAK.0)RuNm <>;HLŢ!K8{|οRS^CjJ:u W ɉ8Xi~Ǐ1UfAʆvraG +/uȫŃm<MFk;z Q'֟G↓2c).?6]Iui#ڇb|S-WZjFn'{38HK'GO(MܕsR0a\$ 54XoHcdal6,STSx;ţ~ g ͝»Lsct*riljfI'H'c69`F =-euZb~ӎ>ȠRޙMr:-y㟒i˯rhٟ;ʉ *)*mKmA#l!b{!]r~;kuӵ ض2<&t>?nP\kh5/1k(fZ Ԧ} i8$쓮 BQW4|E^jNe /ZhɚoJxx2)t 0R\0SfZ2qtO.e<bDƪJpK輆xHZ>dzMRvCS?p_8lph |aR*7$?9ɢ[&ET=T^ŸMǚJɪtJKj>F(Mmt-߃ԹC-!.E ^+u\Ø&l.,E (?ǬdEL`]`KƓ=  0RCS#hf8r/@1WCj BND` R + +͔IFi̍Lk# {H T]G h5h\@hb %fu 0-:+ˎlvZEz|fqD4x ~BTpWƭy0|6okxQ1e4ڣWUvlmIU58ڏ;ux1MC_.=G-=0F:́UY#BVH,.y/-x٢<Ż~gv +ܮ.S96NJf9h{g'j@J mPUJdrՄ!$";eUzw)Pr6CXX۸) +(B(ƼRrfyҭ'JC!) +M JND8sʹ2 hH$Ϛy9^ '~i[$\3aNȓ!hr 7AAvd[n|]7AH0Aw/nGY[O~v0׹UY.71w va >དྷ๤AcI#PIAwoo^=2ྂA$AAw^$AAwAw0o2N36?JC&ɀKsf>D2昡W+uZ5P4X 4`W,POeC 7бW%@7W'T5*$*S7ӫɝ7Hd}#O7׋L[}(y(;.z敏r@hV426}H?!6mUMe~נ"RR^~AkE +I՞-tCf^/SS33S3__\1jjvHR[-u!ƬR[z{5ឤ7LG9ncèXă^P?fofGDo4|lz{c tBk7ֵR$h ق"bUC!D%eܹ'z~{kU9>?b\Z4ogh.E{ 7OZ +2VvIXm~J:P@zzAI^ =;+ƬI58$}0slOj(ܕZ]=sJ1Q;=KA|n5ŹĚb(7= ɨ橌mGpaX2nb4ovx?7繷 +EInHeڌR0RLo#(,VZ2R_ ?whMy4ו$o | 4Sj?:H/#qHa︫Y.V ?ݿewU]Λ@XI@֓[5HiI])\a)(sq'.#G=uK%"'o]_]oo_z{w@b!_*M)^%[pQu>1xƙe"L0R ɉ DD$Q HP(^a"Bq?N +r 'Fɞ?̅Hļ%6DvDE||𠆣CaL(J0*DB+CpX(,>2+JSWG C֧KJ CԚk9pioh=ZXl s9Ӓ nscDީP* 䛈!U EBH޽n[[ҷhӷh>Ħl: XEe KQ)` [!zx`%dDĉgYኣd_T3rr0a+@s6 +<~u\$tT'\7)HǴQGYcѐ$ffq\68)hA@K4Bx3BRBP`jX`ja`lh@m-]"_f?ExMR9Dr?sB#!{PaN07`tVٸ"anY$1]~څH6_wK򙟅ڤA}q!aYj:8oT?h[vS+҆3b.ڂP1a<"%ĥsi"Cr9ùT>VCr2.rknˋ_.42Py^cxOn i +, s"td3!rV2͓YK%[GF" r4:6YŦ,oօ%&û%f$E(cܓqRR/+_Mβ "[=JmfȬ%`L;"_v .B#e\K2JʒT]z<*zXiMUA Ǎyxb+μUt-Ҁ|lJ5 +ɇ5qޠuٗb7Wx:FBzz?e z6]ӼsOU܁kc܍ʓFn%w7l߲Kx?l0/ձ=o$- DȾ#ʶ48`o39b ktQ{ypN# (P'-5=A)LB89bQAe)APdžDp ބI^"\[md,AK2̲'o*l:q\2j/%<7 A+H1 󒠩23 LzB("8*s}GLqo# FU؜rOEQ9G(B`,1+@$%rPlNmkaZρ.e`";e'KZeOi4H 0PqtɉlOBNNshfldw#ĂTI\UB]lF^1Ng&r#D8JkRUkߑ1 +(tGTs}sܥi;*Q4k.SW@ѕm*)7OO[3^ݬ]@d{+2uGcrɺZ] BٯbQzrX $ls+B3X G%m|Ae.9%#,>_ӭ`\̍MtC%:?ğlw]۱MbK $-tL3Mø0UDgqY>@,Wy`9=ɯ~>6RS>锳ԈV dzZ )>\i~F:H#;|&$՚Q E/Q># 3F 4V㾥&;e";!CZRBi=9aYjFq0jooUll; +{f|IM 'g4PTƯtu~!w Heq_U +oɟRf3= ٹ񙩺&rirbs1 )8"|qK ; +S{gN#ɵ1MI0bV"8n AP^J٣d7SGBTCsԥ3d+Q)D P" U+#Cm.X[w +hZUWnlڰ|g{j u3r~:_Hq`$FlU|Ӿ+ 'bpFa*qSEn-*pGnמ6bFN +C5F6ɣ*aas@LW}G+̤*6 g$\ 5imb~a Jf$-7ańTƄ6],5/+4L* k*NTUZ8A*ʢ)#s8^}79QTQif0>cFAюkODn@]|:b6|>Yv#J„u9 xۃ1 ѳx?. $Fѧxwf@MĄtsjNj)驌yQ( +yD <(R@>/P>;?3,P]i@(=@<(2,TE/Khʥ _7DG3wC+r4MQŘe?L"w#Q:Y6pwt:50=W`ΎH4VK7f8HǨ^oۨerqՈipPBY +}?QyM3gQ"U!߀wG  Rpx+V-7]:pi`fer[l&mԵ)Med?Mw8nuFs <.&_4S+o$7pwgnN2?٫ ,a ?Ӹ^5/8GGЛP j E*C.H 6q%2kIybJX +ɜP#NQu&NNXVȠ%DZ}M AUm_+r%-K YQغ:ֆ_(ϑij'q#oѾ36ٛv +ȎB{cELn،osˌa4Dhx4Gj(^p`SW΢t,fg? |'Ɩ*γY-ބpZxoA ^L2X=&Y(԰u!˕ +=N,ںkvF@Jn#G|+ēd$-8e fʻeIf>|4vj.v2wTr:.f)-1y2̜9RN!PjU?'Rphz<ז?XZ4*P/wC +YI#Rx2.z22s{~<|A_W!AH Mg "SR"&qO̍ H\ 皀a%!RW{ %/_vQe)ȇ3z_ۆBiNm i@~jRKd⛩77eC[ '%ZUN\kI6`|]s=\&"6wXP +0ÖEt$eBoǶc⊱ + =uZ;"*t+taWD52{owRΎ獶3eLc2ioנ.]WTzG']GWm` \yW"aa뗼7G2lg T29cC q%CA\9CrبJM;;@*8La.TAx^#} sc_e}u NvlD/&-5c-JXK|}$CڸpĆ5 +/(9wCk?ft]),K_4_sP@%jt͈ R&D2 +&tC 4k&J/F|Km o VWQQQ4<[<ш~zİJbV( b(|0ߤ`]Så{_+ + .-ټ6`^;WX; &돛2:,ۚbZ],ٲ,C$킛FXٲuضLض~ݏXiBND uO^)*f%dMjY};b"f2BآƣG3 şM`wC؉*V *L%LtmV?t<| (<"3酔 +0aL"Q#Q p5Y HXp0 #T86g5L {,cXH0@`Sf*m-竁/@a}g~nJO rA'W<+Lݨ=ư}K.DdiNsWwmS9K1Ǝv ,KOa%]')sɎ(wcz6Nao@X YIZH0Qt!z!^!*T5BA[A{X +{hA۰79D'lhZUPn{ sf!׋L۳(vT1}z2y:Knräl{Ow.6 &ut_>U=€S;iQ[Tmmz VH~VߊKU //a(6.zގ+>y5J}2`Żb "S`qOMkk Ӆa,G^d$%\NkA0/ãg;JT*#n"#nr"dFMbF&QtII+*:&<H"-RXev7;DPYk m5G$f5P=x=ϧJK]g&8=inI g +)s sE&6.g>o +9#={/?cE548T6Wo g`-Rz i[mߘn0bڰNb]Lc=%4g:>v@ Q1w-c$F=esx/)k!iZtIHsĎ Nq|ݟ0PT|;JknOk^'E`."ٯ"SkYT=rC.,%yŌ 1P.tzmԍAwMa̖;b9mNBˠHR(V-܀(9FZ3};a + 0$@P.ZTc#>ʹmHtn +sFkP!tYHNݛ1LL467:]RޕVMvQa>P7oLmH7]ܳiB+zcJVug8Γ+óڽKu/Der/N~FIHԲHOk1ިFy^9'>ѺREH !X0_Dv|vw5 +̍K/жY\BW#tprR>>#Eh{ A_|CdEȐV7Fq >PYl&mCDt~I!Lk`+զԨ̌,F:_OWlEq$S_aCOdPD[Cj}]fܣOAAsl|2`azo'{[iX~ȠA{P68w ƨI'nHqZ$I1 ?-VvO}$%Qɋ5$-˂) Q5‚U8`S{" +p?ʇsѐ=oLe_^8Vh)kr/)DpAƢ/O-}詙k#i2ڗN jN#vBgLN1i7s최L~Tqm\Nwc7E4Fkw倓TGnăq<>ҿw mF4/u$g *҆ꩥgdeؿ"3T>EL!zY$`  bC+ܹQ()9[9c" +c?TiVdSG +7fh>!26Pc!օp̚ɵ߹gVHS+M>'sA #g +m$YA=v)}Vy/=IktA! ԝH<V?Aފ"gBj yJ 5oՑmt{\'<dpr-WELBxf8G}LK G:!8g>r >Q#C\,!DFBFL H!/ +7@8c4 rĶ +Zx1׍3-^u\Wj䄙r +L 4KRzz:xHtC\Sܱ\3rb\E?^Ոu34 #\,$67Y5eHt^bLNewq𼇥OcSsΦYLVO< J ZNQDx I dH%&f@u%W_QbbQ]wL_Y95l ÷hz>TO41M1Vqb]O,Fp!cja q-]nK̝ڲ?k UͧQv0cU-"Ά]Qh淉 1YC"b[UYMPGo9H\ZkڴȅC 5Cn#n+Q(BbSP:ȏ:.:oP,h:X]ᆐhٙGpZ[be$%Vx:ptme(\`ʸ`b$R +WbPۭ>Z2؄z(@rE3g򅐢Ŭ`TMo(h92ߔ:HaY#{_n2XB4=LJi^Ad `OUJjAaҢsSO+,т׆Ed6y$[j.I{GDL"8U ucy* +e51ĥ'34ZRT* a +>1 +N?G!YMF"h66U-Q/E鬑oA1%]?xa qx=V?-؇!}x?a_EKFc0xqZxč~_n"'8 ٺve^oXiah@Ké-:*2.)VZL KQ 6"䣬`Lښ*x]nJiE@(fǚ~Q {xr +b`c{#NNE10Z"e_1zDaFxr$[ߧ% }ۡ?suŒ=o_ڏý-?r.eųfmYhsmӒ>y 78l|zJp`L0-i+GpC0|_w +d. M%iJϯ4G72 藠ƀ~ZDj,frSVjI4 7_Ey#L)~%4 I(*1bcl+;w~!|4wJ~%)g +肭ukKnLh| h\ j \joμ0Su>Lh +}ݘH{{o9r+5s,ۂ}~"](aSn95LP79j5eأ,hIvcȮ>T9J~` &k]}2}2,ΣnWP(nVV1y,:juO~7avF*f\`u7ZZih)٥o)WenJVȵob厓$|@NBz1G$%n<Jzat(9ᖕcDeXs{pI)\tSzE[>Ib +Mn:mxM 0YX=;;IwH(,+F7;"W11'bV^j"$'lo@&4L2T-:z);ҕ4Z2p +Z2R9%MrVrXr<%p:MRzZ1Ge^{ٶme۶m۶m۶m۾;s羪ѳ;TQU _mF#<Ȩ'˂ZX'cR&VB;|apV*zG9 ŦS3r׫|xϰ;Wq HG4[~8^+s%M:(wE'zh8nEloRSVrs~K<4f~K0HGG9C6^';}ަ;xѱ[}!D/HvҧXg;з$& ԅ]Mjrt;hëj9>#5 Ött,Ju!!yϘ7za[*z!ֺKXOi*g3ge|b`'Uڌ2 Ӆ +A526TUv2?jnت?hx18l6$M6:X-VVQVDkp2yIWPP-- +n'l=lx~Vb-$˃ԯ97?[L: i)DI0d zc{ڌF$k_9vS:#]{fάD;QϭӸQQc/LAm>p;yHʡ{H; ܄{sۻuI/{bZ;ݻHB<ݔ;T}K"e+֢򿬩pOB2cS +i!݋, Jp= \̹-Ns7 !tLZ|{_ݢrG +,U1$s0?=g QBms2ycPXN%vu +1GZo* +՚b%8ȍ̞M7/.f/D>JxgͷΌqQB3jYt2SĻz-eZKW7PWہXCv$$%שl +K-{&#_]-SnMNaeHݙLkۺ{T JJ65匯.ed-i@bae4>*4 ڮad&1oyBBxdȂUQy̍|7p@=ՌMepH-F׏1]2l6Z$i/Gօ>!2sg Rκx<ph`d& %hoɝZo (Dԕ"nF*AX"{BBU#FrpEE8~ԺApDr㋻TKڃI |?1Ko )+}:冲Ү ʥzr:Ù\d5X6S/ v$ =P횰m+NS%L1 ʄN_S0tm#ڣk׽ E@ì(nUvYAԌXs7T#\Y L ]%@ nbyb]I=}=˽PWcc^)Y`m;[ޒi-}ASfiVD,4$dGЇ7uGo7lR>axA|h< a+Y'1IpU0Thv) xI~T xX8sQi#up` K)dke dkb|! ppSBi^rbf5;ؕS6{ $b$k/=i_&ݮhj7o 2rDWV͵G\,vy=n}>8aO +  0_}}kc'c[+k*.$)ۢĦ(*@7h{2B 4+aQsrߋuƦz^y|\mp",K37IH? rF"'MTCϡRKKK9*W<4Of~pjjiJ_0lٮݿu-*U3.p?i"fں֬Q]s8^j2P 2G&sj)!|!{V۶8 E& pU7 gNg1rG2tdҳX榦Q&ptToQ@qVۘ>Eez;kUv==6(>)*]Shvn{+بAŇD׬hp\QUh~%M$j?u9y#PvhG5E: +E;HiYCcvߎdt|fu̳Ap) hE*}>p]QW)|y<:|$;m~ϫj""(,(mMDہb\qTSZa7$'|1b\m^_ g)e4xMvџqFVeCڄdd_|]Y /5*cO>Hv4#9=/Y`ZZʄt}5J sY 0qti"c1,)oete%󥱱8} +4xqzX4lrNY:".[VyqרzhY\6;dCתĮw҄́K[ž; d?DVfhO@:_ۯh@A/Fȑwj'Ds؛lc3S_Ra _$aW?~ kei94VAyS]5VxƲ9rpՙZ̙P\ee7ݔƾ/%$78yJ,a |Z!Zz-| +]ۇ8۷?m{Evr=DAԧVQ[KGux_汾\_J];lbhtMPQŶěT1rKisԩdܻRǟ|y~S7D˲/=SIysR'x˗]~/Wn#U.~2nʚ 6x2ec9~.+x!{?:gkp:]!q|Sy O֦d!4#7k(lY&9Sͱv*PLVG0$+ġ(c$;DΖ$t]%C^HV2~tmNj۔^U2rhhE+dX<SKJQ=p8xX,AS?/_J\AёiG9f i/\wOx1gZm`r?Nȃa^X΄mfbc7;iN!^OيT+ܓc-uQ|+g5&睄'fJs\wEDʛecȜl26u wN)p%-5%uFj۲Wf:zG]ka--%ĶTcDsb²Alvc {5ornF@U&T[5 C& '7+h+:U)4w!l(ۦMk'*<&^VZB9r^zȫї8Iԃ*mA1T:T1ݤuj4-"ckk-1v#1G+8c@YhCӝ` {(n. j׃$cȀ:U~sYLzհ;nclv[ ojSeWԯ)IiW8b7T&onj+#}4*;^~mzY8×yc~UOpMSDLcզzx2+*f@[}:({+\3 +( ̓̔uɈi#36QLYskN^%cڂ>_Y$T''ʔ',cb;ERa_`.!XP9*sM'J9*Q"42՟1f@{]>654`1Cϴ]dz1Ω?rK1("?cShvt}%HY$$HVtSZF5!m:3'&VZ0_3NOL7!̫FdӬvQ0CQ_m݈Xmָ6@Wec"ӔN8sΟXaRl) +!0*ў M=Mû+ި]'%˛+-|K]Ka܇dwabZ{afga +ѰU/n[Cmz-:vro0AN(-iq6lm&>.".|oҦ` ~m9>CPJڑ ERp>ˍ:Xi׉>.zJJF-e21Vd1cKe23.\#{|]d!2ћjq!yh9Ȅ{ߍ9Gˌ&rt,k[ޱJd,5dd!B#^J`V(.u ^Ix_Ƈ{~FxjLʢd()^.̅[RSS4-hRr*Mc:[P]J8[Bc]@0'a,RZLаϻlb;R3 +q:%FrQ&%\*ٰx$"8m"x` EMO Pw]D&ҔO +WԤZ$s,Pccؓ컨ŮbEΈI\VA5䰞E%P\)L.SjxSg34;^2s+Q3iA0\hȣ[C>.ʭ1Ln>"QMb0}bJq]ɇ|P'򋇕k31`ZfSk}KؙsABA|3ێ<[ӃW8͹@uW. :Z 6xPT}j\QQ'`EzK⃑.Efj9oA:eb\qXTECX&QS}j8;މM2ޱ3UncϿR<$r@$2y]H߿*)8cAdGmPQTF9piX xwI__8VcǾI#ډz] L鮉 +'Z*&y/w0ބ4g.)}r5Wmӣ(m~TE-މNÃã-9hݝ㧂˪$ S*Q9%SoإQvjPbQ<-~>dvɫȸZf/yIlb@cStOol7+Wm +Ao^LLHI +7o!!z/u 4Qb<W2-xp/vdͦĜˈSiEu㭑Ӑ\TWR&lVofVD.';Qf+Rܪ遮ݲDwX4]]Ԥ.bS2ق=J>R 4I,|.tԐl;Y-gکVuzɶE=:SU0,5/V^@YPBvjsB@ABsءA}F +a˕;P+'ڱbzv C"bc&/cǠҟWpIȭlŸWy~&sL?7aE +t8"$ t!( l]aŀ,93hQpp>DWAY hj&cKM\ME;4^NqѬw^#LL +vbC^om=* cB|br:Blu=!X,H:ᾭvjf٣lvE FtU~l4H/Hrl9<|>A{ؚG"XG{Vnoʏ>(nyr8#rYNUWnECpih{ />%gzZZ0ʕ[V[$u[fV$s{ly=z@O`h&';h[@/=V=d굛Hcv-%\ +I+]໹|V|;HE[䒕>{<]DtL0EQpv\>> J=)l/n\ð룕Hr$Ŏϋc/]k@d[tԋvCw. ej W6!Qs ?T]G A:YVc8{3'OMJu=NU@rC/{p[PZRy,"^Fl^ !i3xHROv`&04\Z[ƹ[G>H| |wqœ|a͚͊ͪ9DU,̟Rν }[X&HROg[ԛEnm^svShqA;"B`Ta!"%{TSO< uSZM"!kAf 7I"TUQ~!'7,A-,!rA HS_>utPm;u\D*0-G/g|A l?x9`jC-mg}&yWdha@9L%M +MJ2("G +!E*Hv2bKótR&%+dYA#8\n7tE=0HZH= t _(:f:+>+ TD?YOXd}m^U]C1sM$TM_a/WW|T9$%ϔM*?^_wv e^6.`RX92?`&SXo)꠬zgx%VSˆYK+Tbr="xaIVh&?|!N#́TLl?Ci! +mY\t,}3mhq!f(pF>ɕH:J5pDgP^MLEΫSܾ?\[-PeO 3 +ɚ3֐l/GPvP|;0 .^JJ',)q}=lђUs%Klu., +G<)>RsͅiǢ s Rp1q'́%Q .#&i@xVB@}̈́Dh F1M8?9fcAtJ-VO0G[xNUIu]/lgvk>LX}lSme氇sJҨR޿<-(<: ox/=v}LPb~6}WcAkkۻRuz&Ő8cq2wpĚ8 gV p,3 W2 ?y<(d÷ƬTNo~of0 09M-\{-)ζJ' +&HC!CI1A"Y+UwT6@hPDttVc()'&Sd9d$Z CO~(7Bu(kBs xdg +!# 991!-|)9sOY( +]By|"p (t:r.>8BB K?2R!(2; \"#sv0c +]t +W((R(M +^b1c +^$?B|OQt-t{l@Dqch)d s7?2]Γ]eZqV6ݭ3/)+]ʵi:I;!3gvԊC ɩ\ZKIJ[Ψ7T1%(9%9{l)$~5*V6eP{]v+olz19^=%縮Փ^7ø7SQǃ%_ǰߓl5ME;GSZh [6 kѣ+ٜa'/C1D}Qt[w6@ bjhShlRbY"1&.9V݈S] #4 k6X +m|YiF@*Jm A+dqkn'eR95`LtfK y D/t~=4Yeא[ߘ$iD9 +Ȗkt>CN0W}/qIlK`t&pF-F2PZm]Cj&QZ ݏ`Һꗦ7d]Đb!MR*Vl_r+JbgjY@5ɌTx`ߪ[P1gP_)T΀H'v:q0S=Uv.]t{.3L7r-?w/ξ*9t—+tK~@Ŷ`ޢܔJ=Φ˃;d5a.Q9&DWR0hnҍ^\ tZV&"="_dY 5WB*oxa(ɌkY0r9 U<6ѳ|KVRkuu 0 +;Z5h_UC醦+SsO؂2-OcɆu'Eu@ZFtf_8Eͽ|AQhu&"S"qwF?p~ wve:nsg>/0r¾Nݡi޹xa/:% ?<=*>m-^YR͢Q iFM 4Dk15>`@o$~XL;4ZAqC.4˜#פv}py¶ , x*l{ť8[+p߄o +e[\iɺ$R3 Q]3AyZA3=Qh_!RZn,R%NqZa)YPP!<=&IMg~ &%ɤhR& Mhr~rUr80g+z}IsRζ1S;{{a}e~ДS Z Oc]ԝZE&=>({\ DXcpLF͎K=GHh]w\;w9l-Gv=#!^֬F~ܠi֘P29h[쾼b@YO]!ZTg$mX; DOZcj1WAiy [dj?;s"[>~XJxXX~Vo(&*@g$P@7(M7t>-:f\0ˋ|Z 1Zu_(b2?j>WlV`V"%*3);ʬ!hjh6"a{ܐON_/ +gb'kKK*7ĮmSg7m70?fw8 ƛ< (=@ ʯ=-I%C-}d jtVK߲̼gT7a(Gd~տ|nSX4~0TT22h]0hH2<}^~aN~´xzcy\I((.]S6f;q6haB]6j\t⁌uK@AAae82ҁ%1PQy*eORYVIy{츲ao8[ԟUUį~NlOgfz`C$Mq I NM'[-J,ԍ1b +!!1@pc@lH(ث`:z` x`y}~`ax: :[D,%;!pn5 ֚c%R@38[Yȳ2EkCߡ%#zvfB8"h@g\@Bޔ=ߓ6rGu)T% M ie`|D&@ J 3Ehh( E3撿$oUغ.d^xXS9Ud2mM8y?1 d>.֏h(hTxTpG'}W7㗫g3 a0O'jSN4l!_WP6X{l/ +zZpՁ0߼:069cHpqrsHQ1 +$#6agM8Y{)GG'YFMbqqjqnqtH"uo?/0,vWk5PNyg$sˋkdα ptO ^Wїg}lWonm|՗i/zitIvzn1c1'<`5e oPW کݕ.Bߩ@n :W%;]n0L_o1O#֞_2@:]3^%s2n> ߪߪ"n`8W<!;֞#s$s_" +~ `N%`N `">o|g/XH47 +{ %= *Թ`YR1g^N> +-d~t1c +\79!ߔZ%CqDaH bE9A&DaK0%7ŋ,L +ѫ<E񻺿\sEg01BZ9EY NEmQ ɱG[9VǶO QNJ G qrNHYD!wͤO4)J'\}6M} M.G}fӦu1ӨWKí {0LGvȑ$" ( %t͎M +3 +s4 r6aߘ| uK/^бbG ;;<7JF3np^)3{/ZH{J3;]N=>=W^[?_eu7o;.=M=6_QQطK?R^`*/J7ggS5]7[[5dC˭S1@V~1f;jM&?Q[GsD~1B54ĥ2$- 6V" )ގ~~w+^kͶmJ4? sp^u|}/1 υ߳)+A@rC#UE"(LEL[Aӗ`Z)ђ#qI3bvwcbyO@Rbj0u7P4)l02_NjJxg)GNt=v=_T"̷HvL-,JD:$X&[oF{V=n!>fOfNX3ؠ8-Ґ||͸Ҩ̔rN8gxYG(m +1PPT^\~t.w[mi4\:uUEzLDi)f0N ;~C)tBDN9eS3>TTGB30Ko}b"7 +XQN&/݋|,q^ +x Ih BQG-Sodb|fenDo,9]/"\gڪ.Dl\1j9J +(;A|DA F(oPKQj#r+>jA] oYTp +$GAQ8 Ld(xHW=F$m_q|uGApP՟̐?q8Y ǕjIVLTbk5gjehnK)IYp\OV2! @FNMf)t:BLhf=mVE]:J?dv?44k[xL!<|>,ʸRK&frov&ڴ[3n9jyeOu+^Z,aH`#K1?+Ti:i=+ٰr,BY,((9p|Z4@Ꝉ>:կ'`ߡ_5 +NU1zDpe/wT_w |@RuOck0XS;y?+PKr.E3l0;>^J +tu(qzPwПG.K8LLZ> CaЏ8@zλM7* ?K'br;b̖ :|594m9 I'tW@Gt' +1@ ְ(¾9.Y$Aq!yvs?-D ݡ{qs4t=vxu@?5Fb^ړ:{&xtHuBEvvwooAqp!jf5&.-k/u,?v<,]_cfJMM AP]:uo!mӏfnj_NNs 6kf KA`*G? 8t':Idu)ÏQPcaRcsN +Pyx89>PmWlӦgm"9$ŝc%#-*{psL\ (gxK0RIZR?qTq-$|t~7: 'd qy~t%Y=hgMV/9mH"[Լ|/}ߙюę~>K"nu܆(uy@)/@UI*覱ٕ}It"?_uYVȷ}Lo_}a*Eς:6f vjg.ITd-Ie绕n j{ [QPnbm@ɬa8",=\$5V!1.OxK K,۟n|{ -#w7#Cf .MUrۄ9DmX1d㢩?5.̉%QjQSTLŖ&oW̳9Zm6%qPSQq +p#^BM +/#TW,فܠΞ<X +%꯶U>"p~`Ċ&ޓʻMA*Z-'T*Z·e\4a]4\,^k/JynmI^e` {nͳPn6tV74W7k V2`ĽuF'~u +ᇊK4Նc_Bl,kN5WvVioIkI+ZBqh: D~2Rp#VkvG:[Wp`Y(59`i:3y:kdDSqFJef6 4 0;Yl^FlAKs7 +S>y"mB:7Aj9dDfb55vG^2~b:9`փ)H~wj~jW +!s]Zq{YwMۣ_n@|=6hd +ʪ'YC2d]FlE*6|Ӓx%NbBFRcR9aKo{}&kAM5j֒%*-۳邲 VŤLRYa~JM*VtU]lh0 iu/vt56 +崕*e +9옋Fq'C z eSM FAG^q3& YsGeHM:.ŊfT 8]1:a5T#<.㽎"qgs= }f(!I\=jKoBԻ)xZ,1{AV,!oM gLuߪdo)lP_KeP%ʊ݅:x|]:%5̨, J]&Ԝ|m/LwV ]G₾>TaVNH\Q/ΣmPWW%;x[/"oTZ/W<;ϐhIبtp皠V@ФŒ.؞ +ж*ް>hm=΀e5}>q^t}#+i !+z +>'s{94~:=B!i3dE<ĵH3GB:s!n[$@H+r0C2y t5R+ s~W7\n,묷;?`lLsi`qչw~p^KQRo QsQX%FY鼧rI{XNPth_Y>zنjH䦲_Q0aw?~jG̀K^FK ,"&1J8j$Jۂt&c8 gF,(Cӡ9aIféOXDj@&xX_/\oq郬 +.bxU껤Nx79̢O$bYFuLuk5J$@9;@*5 ZׯyU^T;`+}nҽչ 0]}9|,@˗]}&= #" M7({[cAX]xͤ-( kU:TcIusԚjQ{ w/Ć=E9Wzv +uzŋSgѝ6=}@o .,Z()3&Tԕ1+]ҞxJ̇. S'P۞j' lԎg +߿wd?8rꙄ:=T"'afԧБ$wTP~#ԇ!佈=V8!(>Vm=MU賛Wl&$CC9LN[ +cߙؗ0c j![}FD0Om1HΛ,ԛ*^*Şkzf_i؝~WdD$[,KW_(47#q?^ 99/If`Zt}4AXv?̞c]O-:1i޹Rm2jRieCtyE*F0~q~bsRS:=WV=6=6U=S=>1%ΤKeZ@/mM]W϶Xجrb]-<5J(E%<u']$ +rdUGc_`waoWd_E~Tt`d^ ! y;˂'=Eyh +a~3 ͱ mK̀hWd]rK氟q e8Ϙ2hR̤O"<d38ErF0Vs& !t!tk |%8L|"!nOl~P }T2N,1R`EEޗ0!wlO01 0OP+A|AЉw@H:0AJALw"n%܊;ʈ>]Մ]̈́]xUB),)Q#!BUE6#"##`##E DE#LQQjY gd .Svܶ!bܺ\)9Wv(}I8g"ZSJ\ٌlSrn;S)hZPHm_dn8%m%;gLjஓK6t+f3̐fF<3;k每)y/S.-̱鱫+-OɅO)y/rҮLի--f'MJ5؛WWWWϒWɉ[H{J՛ׇ++g1qq~fvy  Z@⾁ez`9=Lb)΂9AMxax:u"uRqͅ1lԳs[SkΟdȗ}UqU' GD1(&I3y_:cnF㺃hCu *vdd0]~ J?OpM$306A_0i€XjZ\tڈ 2(!]vX6<tI>p9%-:'iaRF<hCm`}Vg X@d-eXr>Qmz^h@{>~35(§s -{F_ӆnEhA׀4G*׃=DF_L\wIF*:ǀ`'|htMXگvHMG: wXHMD+$|ͿU{j +%@Cnj $g"6gDu +m> -|M?Ѐq>IM@#8LYI>`!B[zHłE^>'qŃL;zgP3,iX'-LI $F&nuԬ-%I= !$^;Ұ +W#Yh3Z`sh퐷w̽ "ib@q_2=wG--|C©hsykh}g׼n4Q~#{⏚,&/YXlx/SI7ڷE ja $.E󑫹7(/ˈ`mulk;GY3wj/>Jr޻KbsY'oܔOӤYӵS1U\]^:y^!G{ɝҼƁ*cV[FeCX6VAFM" 7V.1 fRt8oI(yy˭"G^V 589D,Q4\Cr;=dW *aJ ꕹ+:`NizE f%QgvmƦzNSK׃F MAT ΚCj@ 1&Zm! "D&9ο +ݬ~4,l` 4M`i#Bf I&f1)rMMJTE+s`A-:%M N4]+a XՇ,D +Vt,)˯idi)SX~&Bʴ%uړ@YRawa{%k;*pQ8EW4YeX 6MeLvd)N|Ga}kM]5cl͋QznS˄ r/JKTQ@{b8]Dg e|ﷶ`.R4(JQ+`T$O\ZZ4DA@!!:>b0:(j6@𫪫Am+^NyMMMwe+ BS ZU _L޿+zk`bWA۔o⠞k k0yP8~lJWѽ1`zx$!w`B+.9MGz) )Kjt@u+Q")ۊlﲡzTQ|T(b2Uk|` OrAlب8+u.CCG8IXXH$-kjj+ [9) 6p~Rvwq +=1'ɯ.؉` f>[D YiJI*59ﳻWVO +%{?_㪙~a-Tnd!dn%w \$Ywأod1Cw+V0:M>(pdf0x*]˝!#6K =173wxZYmƽd7kͳs;1C53?Z0T>_sTFd`KYt@LJ8J(Tڧ2yT@Wgl S{=%khFCXb{\uj7aJ^F`vqt.=”k]^EQ?r lmU%Дw}vgI) +IǼ:a'; 9)[9!.Su.- UB)4Cv.y=;|L s, gxP4NA#BBXZgQAӁv\ߋZ,M"ذ#u˃GJC)1d F6ƙˡ <ΏpyLUC +Yo~9PTST}#3^Π,XQ(#]qг:PWǸGatg &ջjȰ&{:֤_LmoLLplEjQʸmqۥhr+>0q5?ޚ L:43 K6'XoEC!ёxW?T/l?W/RҖ͏hfn}Q@mb#](!pʎgYLl4^L¶YejX{0=H?fMˉs-!qXՑ1#2~)~1fzASIϐ<$=43-|NY\$ ]mcgkβJ*-c;ˠ{W7+Hi|kC sAzenΌm|brWHFғ&e^vl޽ fWbrO1vhu`T~OUABz7͸F Qꊊe[7QneFKKKu` o]'h4"K,mI<ڲ)OZl1@:$xI`=\(.gB *.Sޠ;+\0s `ea(yGoC%Q6:%A4#SAĹV>,~ik ?A՘A=Naڳ V9uO AjD?YڣG'N +(*&lZꞗsL s  |2`]/Kx!wGai˰cbKӏ06X22U5s>\<w%՜ey9ɠ?r {阩vKa `g$ 0̇ DZ2{h mT= IK0<І@+/h@1Qp{\4y¶n&nq2t|X7M5e1c1u6Mɹјi&]:8I1(>/W-k޴"؏zi^S.8::lbu7bPR;c3r62e%_r y=]@BeFY ZC ESr -s_Er}{> tO+;Ъ+uk6J&fo &=&U@D< OcVU W/A=Ei?^YzPqAsUSnܰ:3E9/Sջ-l>*P=cR?e׉JLؐHGD|Pֳ yn}ɬHz~+5чz[4zЩ~O}ޖ 7|RT:>Z/0x5t2GLZ>={J<>maJWMnՂ,gTaŗQ +鏉!պ Jû` vP!L5]M1IS֪zIZ6I9b?gLcQ#.S$hj3TSaJn w +J;- 1w +ҮC&џiJA&lÁ=tD+/-(Iq䯆!Jj~ ;RP!SG~/#?w^Mk8OzGhޣ$}`\Z-Lvпx_@ s=C|% k-:٭Yq}G>Ӓvǩe GDU}Ʈ>u.~8@RƖnPuAtGU]dr@j2ke 3'LZ(>卉*䒣)K'DZ]Pu?D3yY!ո)=͕\)$ @]{; +\X &ihhɫ%;$-K{5)KE%hT~#ޡ}~ uHm[z%4}H#<]o9+ ye}H{%5HT +%cX>+dPrT8etoǟ6tj_|q=^ǫūǯg"c*E!t| F _K~T(`'X+®\Q_@rQ,^n/.&|? RL\0l^(?rMq 0UDQ^`" MehlLxejEd2{8$>P;dP;p,A'z&u _;;NV^J@)Ӡzw=.Lj!ۈ}>F6I%k" i%bsH%jǥ5ь1x4zp=6jen#ƄSQd\~}Xdx*l}_7C$[ 7㍛ 8׎GD;6bF*Y5Uv\DTMnږ Fj%1vxlSF/r\ͮ7K e-DqVb˱U8Q8` XD{Kڳڶǂ7j-Dzb8:\5HPbjr_Li&2#5l!*j!"j!RKmm#^d?TCrj!g%8 q[$ tVo8w„ˊ̗' -:H-GO\>'T^qùW;=KJ{x}V>fo$ xESl +!uȉR!RF()TlB߮AWp7 +ցwFLiZ`Jqů ь aŪx|Vi555j __;P٫d8RUS8;us c8¦=P ;`~`EvHyE;|:zGbj9&mLD6?@OdMs +g檅ުzV.4D 8Fv*'zPkH*mQV.4DRAӪ]h-<Bun9t)'x&g)48. U$)*eNp䧱  sRi)y9ږUB9Gt)ƫ`;+7\_-cLq["v)m*fTї_s,D.2[ +,e-@sYh +[) f[^zZ3 +;t};zKkι  +Ks mh?qrOj' 稑 +; +քCSF +6 eW3S?zn0Q&{E2PmgO0h昦sm=qHU' \IAySЎ6 kM1̯PW׸.xez X3{f3;ϙ]^z^3f6gy].sUߴjV30ͰfX%ENt+<և!0g!_0=*{k4غwgtjءNKV#+E5;7 ѿjأ˝ґTBz )ɡ՘QH8kPp]$O71n8w:`4q/?vוTCP:2hiK*h}3!ED1>wr1˜P4fDuʑßur<[oY $';='Ѭ`N"Hk#n1[ؗ +/ˤzQ`~TIF`DNqxXhnpbj])tYIu}fv#OC 9htQ _U2U1_V;+ ?a}9ƲsDwvZ3$9ḁ- u]$d^A=HU5O5D2hd){ IݛǍSo)2g7n~dӗa?4-#j RIcj=Utd9DŽ'g}VVV>&~UpTsdWїsg%=b-btWWv/y/~/Z~T<)ݵ8t=vyٵ⁲ ׋8@[2؀Xoorg|E6 +=ۺ2i1(c o#x4"+$o2nb|DŰI*I/ ^  ɍyT7o1TdR{~˓dh%T<e6CH_U ݊fҲwȒM ޺XLQ+*K ߋ +b3\+c}/&s*aR֨Z$TRI&!Rm'3%'a[&{z% [%LLy!(Rth%[fr`m$,1GڳUwޙ723! p=(~3C`A 3_{ca ~ 4 xa4ӠAD)A)֊AP*f~X+A/+A^,dx(S(,@xH_4yJy 7B-Pis?P_{"=zQ-m!Q/jD?m9DELInݖȋɬv&71U&ܤLEI#H G1 (K1`#SvvXB#D:, +Ƒ5Hy $ ߆Ѩj1d"01e_e5.a HV҅ƓF<&lϴXDAnԱ?T%' *BW#xp&rhc@(z/Lzō={ +t [hw hxBH/ƅJw:Wt{} ++c].1DgHa.%ޑM3C,9$۪gO^e{AAyu eIFfu+9q(g`>RqR6(>ACJgL6H-e9!JMOsֹbǫѵcn/{W: D{c9d L? P4m6lMs(9Pcc נY +꿀FfՒ3p}D?GT"~Lao"4h<#Rк쏵KҺɏaP_IRRjHkb\[u!s 5}O`ud+EfkD(j(nRpntDnݸn7CՂYb5ːtU4[&VֈԱ`lGV/)0?XE*S(mgA}iq0vMse$^X*Wu=jEЀ2hzߠB٨Aⴔ3|,V_jsпzi53{?OA%']t6~1,𶼁#F޿_SjBE:dx^W\M 3E72-Vkw{cf@R"7Îz5IfݖhhGRX;S~cL|K$=rMcҪxo=0D0)jgF %{?K;*{ w=!]2h۫oCIC,u>3+eHkD@cW3 ސ*uJoT=JD^zZU5S.;}p(n Mdžt @|WO/{:/ұ^/>xb#w4,G3{"\"zs(EҟICseiq3TpSb(Hsaz/?D딥FYS q:*|PW!:?])؀V=6> ?[4 +A* tP)8fOL9:7')#k=j&6{?(jh% gL!% xY2p`uIJAuYxU`r*A@y1K j@{T,jpLu1m!xyixM0|wA*y[sgsI %1֞EOឋ! +wPOYxBdU ͯ: 0xNBY{k}yM:;EzKsZ|>TQNf 9_WL5vF6tם[K w&0h]zp{HGv"aa}'I=~6cq!]z{ ":C + J@EᆔSUTIGFJb +s5`)[(J,%03`Î?7EsnM-;+ng&mǭ֖{3)X/^Lk=wl|{.m'n>Yt(dۏjS0o:lw!M' (u$0gzNZ;P=5 ++j9/A<m1UǑӥ\bo0rw,BDN鑟zk;OUW"$A3bOoAS 3DG|E +xZy^aO@?vT9ZE?i&ZDjbIنBT5,hJkP-KL޻K*uW֡)o{=լv',&CFMQ|40uēPaM "]zC` JC[ u`& j[dR.n}XB)xـxTY#Z%W]P?So7J=4SUv={Fc2#ڮڈȵ"@3*4P70|~P4g]$g#.>Q5@]Bl9*!Y*%w\4"VQB)"ƚѓĄ9S\T[IҸYZ]Y+%ЭIuz} IC!hP|5Y[b@1)P /`фfDm:+aG2=iRqRւ-O1MWٴވk_NQƅ,&_eCpLc eUZz*%q3 b(DŽjRٝ~EYO8~ _(vZoBfߩoB};.)ɹjADcs:F°ITG!4lxMHc\0W^s' +JPbg]m ͥr+o2 dgI#O+$hHė$ w.h2JrQ{,Wv$e-hOgt(G8&!;T1 `iwY=ƏfSWW UguOQu1! cHduq1Dѵu1X,"xB;$d$%.rdvd%a20UBmskHe_=;"ox$"tcz0n+CD%ܡbZIKQ9Ko!XKw <&ScWq00yeDqG}o1 Yl6[ԧ[yS/3@] +05&ێ&]y:cl`WB,p9&bcmd>4 CU`L,)Q}F5WȦAz%FjiP"NO-%5XGǟB~TTه)i:]m6VjDQۍUw|\FuʯK}mGER.#L%m +=J,VYg'͈ܽ1ӅAc:O..5b*YωŒ; '#g=\( +%g3.S*I4"{W!!RaT++m3T*ݤvZ8v3n!w^^wS[a +6'0>n/Zf`$bX_RTu!n! av_!uUp x݀8oi0tɕ3):i:OR&{W﷯M$G-;]lzXrW@ +] Rv&e群qnBʺ*pҗ%k4D -MgzCQDZ㧅e_Fo:&Rݜ<9Ҵ=T(,ym+vu:?nbc3PhvVfm%': Y$8ܔ"AxK` ZѤ ޏ?P]/ead͇q!Z#Ȍ6)~Po>a;"[oLrrE(yp~۟}Ihiow9S%yqAmjn6Zωm" ph, 9ROSX52Xb2bIjY00@9\ø|#Tr b-%iDzD0|J?ּe=%ȤkMgIM͎[k[M$nOY]ێ'6^({\Ӻ.V0!pF䍪"'>4twmJ40q3hmwɿ;Qvh +2C\e)vԹOb<0社tOqMbiS݅&OXu-Ý GWDXV ťTu}RbF>թ!ֺrKilUk^9 ' ̩"X*WI>' urc]Vbbl֒eb% ѣ2~rZ-5播bj+%1P{~{Q-3 W)5&N OO&?ϛH;˹Wrk2B =nG%=S~9Rt[\*2]1ѐަ Rv~ܫ RZ iS)X 5Ĝ]F[]D>>R<);5e{68^jL xjlQ?NT"E47⥞( SJ4͠i'R-YtSl}9[ROV^t ,qvdDYY ϙ[D3CFtIT2u*Lu1#\k82oąҟͅښ +5iRT%('"iYʔe ֧41B%5궦^|g&dӹ& +^ps +Z9rܘ79I.~&{Ɣ6RM n 36Y0T Pٖ!pl7CXCYbmaJ#"ӣx?#U{O| oõW2cIh=Gfؿǣ|_t#P7Cbjx~OF&%V]p{yzߨ}O}|~O8 ÷+s^9 JD=Ԉ1@OgVmL.qk{HhqkR&;췥~ [16E܏;INO ɩ<]͋`+pMY^u |ugM(:*LU+c!]"BbS,d +)n-+3/>Ni +9ge)eȑס ή zAjc=Pg`|([˧AI; KNMW+|?~)`%dAkNi\\S. +2&JWS7u^ ~|rBcX]+຾+K ڲ204V%౰|]Ɲ ,=6NR0L1('cI2٫~6AZM;٫]Ξ+lԊ1(prf::b a}yL):T KvueltNhnvbT<] u|PA|g]mġy/u5ÂvبUAz3R%ڈh[lEWEߌ9iěV+po=(buif3$T.HYm99$Rm ׽qǦa-ģ35"yfcަnYY'jP9Bl;0`E썥,`OE{=gq:4r' +P6ZmO';7,llWa;_;D3!]yW(7ٍ%h>!\5W5e:/LcŃc,?GEipvRCKWؾvYJD,ODbtv'2y`b>5tSNv  H;mQ< ih8<4-q l><lgzo=RFO>?o{<{ [)|l=FQ'7Jo?$jEh ԳfIƮ>G-*UAj4ܭٕJL, 1lv&'ip)!٤"4-bu#ElDk ىx)y,eX +q^Z/ !fiyH4vՒJbYb6Z*f]:)蝺<|Ҙ:XEe9 UFV 뱻 +M sKULVAUv^,ƶU73*Uk/U"!2oUq n΋ = 8".*eWxߚj3<5gVRRK}EeyNLJŬb-fŚzNF؛23ЅOP p89$Bn`1z "7vhqߘiqtW5-G +S Vߤ}w\~ww C~(w8s0 +Aͻ~F0_/{}+Ht㉫xo~0cCU.9e;NҟբW^vܥҸ75# !#t27dkbܤ5%D.#!.!8LPO,ߜG\\;ŭQ@:^ LMH\9 F4'^}\G내(G&^R3}I} ⳶^,m2 zځl`Fd7Ю6t pŸb6T\ԗ?a}jdŠn Xc=w-^*]л]0^лfjk>^y_4le'7={>$x pU) /rEkrSM*wIgN&Q}i؟R+GyՏj3ag`[0رJ2XݳW:Ĭ[jjMySǴgc&XY + zsK KqO L7W"÷'N#38TIR 0Jpܜpf'JHĘb&] kc&`SQ:sR317KW:$slm1fYU+FL,$4JN4J&Wf7qSS++qSiX SN.(C)햴f`:DJXo-)aİ ƴga:5D1b:@M۞.b7 5:h2wy# ٚ~ ۘ9YpLV-ۯ{1QY11{(Z6o_Ѵ%gb +F%5u2)ww 7S'4PJFѬ{B+ +'Vsʌ0<;K-PU)H\ǖ)tx 8Wϟ? +-Ӵ؎VJ!d* )y8qS+(D1]S ~mG>8WiCjNS(jjǛ;Bz0dP+hs7KdVT 3|g.Yvzhv{|JE8Kzh*`nl;h=',̆^$'^J0f-HJ'6 AZ鷇 YQ!Us iMr&6/OM7 :h!b[$P=u9`=kϜ7T=l#j)2h-"]Ϭ7\BB^4ϴ=f>Ͻ!._!>p +2g Zc,jV].Q8n`æbȭe\+"(F(pf_޽s!5Nx(X@ު!# cj˅\:\R:5(43]Iu3ȀD-:kniwlv(*[.^a6Jl@s X\L50#BL!@;31Uƫ) `RA!iW! *dJmGR+?UaQ?i(4iaF[;P2٫ٟ/qѢ[o.bsm韧aL͋c7UVW3b+E#76H7f,_EA40)N%n"I +]tax@ʴdVg6:14:-kh;1Tun :3ᐌ:G){%2-#CLwdG%8f1=; ' yWIQqjB6ĭW kxJ21g*iUfr"-nE9i&F!E#0uhhà@ Ȍ +@ sO`<%(L9X;ZesXF,$iq:rlBP7VL'_ +0 +y?cA 1)yVI +h6-QF pl +m" ֫#YbQEJ_#9)Zh$/%I0'$ +ݭe0˝ HVHF)`y &@D[Qj wrRFl"$Hf'N#F kiנM%3H5>t 3Ƞ['zY,eh L5r{b{E݆ $@I[qo.azpw=쑙`2F%z`(I?z]8BKқA%[ΗcOu9D眖xs"9}&y+{7ܜpWGYPpxk<ĨAQ=" J ϙP[uɩ\=Z0hj:ľlV6A*`҄ˮ ,S,2R# |uqH;ϟ|5[ +[r/?5lOQA 0D'<<_TV5)YTN&] >[.#`~22O %+'.#G~V]2|g R@ +lYI9߻$8j+?n?<  +Y6 yo 4F>HKl;)^4o,o2.`o7p/vȈ O"0{;6Ϭ1`g*lAݏ#˂$lu^D́oO7*okl!ڄỉP]/O ́7>;zNԠ^^]N=>UX/D88Ċ$N8 +^mo]Ev]))) ( (]3IBDݣ$HB ˤ }8CB~ ZQ rǟ_l B)".&3|%ZS9`z֘l١v{|o ^lDՍ 0<qIK)z!<}.̚'@7Og8"ԂG=Gcx3j~IIIڭ@pǦ'CH?%$$l$ JۇׇWK AD'k$'&PB|" !?QCLG+!b eu"G@wÊFY^ݦ2 +֓_`|_ <|/GV `C_Wg6b hXwgށ5 lWA5%H +v#k6؊?5zۙ"!z=w`{azH)~vư)m w +Fjʑ:;>/ +?/(X7ׄ +^SP?X0_HTs "m7ӝnwWZ~ʝwp+oo’1 fYEOй9ą[wg84]o4 B8_grNH^Pީ(__s:B#qaags(BbdBY89v;]#RB&PRPpa槏pkawSx8w?k83?BwԐu&BgR鰶4¬S$Sx %h 4Xs9^[Z\> fѬ~dv`, Ifs뾸rf{t!՘$j-ч(k-;G \$3+Wc1( +(m-)()mI'q8RCS?Be2oBR$G[1hOیհ!QZMM]spv66Ex|4-JðqxbH&]g2~р(f5br0qU%eB 0 ‡-3m&NlGΡ],Ѻ|NLW(g j ݂ +,;x2HN|(=IL- s!WU59`̈́(PܜxxNJT +LsW*o=TQ:{I>I=¬bݦ.,xsIGI99iQqL\rmmJBM-$갵w H)m'̇ƽT ^.@mPkk0u8;W]m~VIx]\xro9stS +)8Mdà5q+7'n73Bǜ3[s\3aHT'(T +GD(5I +LLOeMk ?_lM'3J-4p)UxȲV8C5H c(M5(@P:ఒ>C5 +0EtfCA>Cq= ! % +e2 |C/϶nOo F {I嬼Öa̘槫/=" L!88$'BY`IXX^ +2I)ycvٲrغڬsixnSR~!p`!V[j |uQ$ٵ%TQ"#:X'DhVlN_j:v=mdZˏ`{gL2v^}FT_S\S/駐g~UX'P7xх\##|N0~')*ro +*{$;T +*.֞^i?_7X@x!}:<h"t Ze.G|yJd|@:oΨW\jB:sR*z}.*<~Jzx/Q vl;8"ۊ[-y)\v y@ù/g C9m3>8M+ٯK\T>lG!K`q|D qAaqqxoˉâI$/i Rs&Oi 3k+w-7.K?x^bn8Ἄ~9O=#n9<=+>y ?]w@/|=Qm~`̬=m=D !m8ӱLOѱtلy{ >RF D%X&`a,Uҩk-*q8@Q@d +%IRnB6uۄ "&Q>b1YD{"5*S.Lb*VgG1NezMM܌j9a;([Pu)pje@D 3NUf^ViJidަ`ת8$U83Vjj,P`\ӏ&""=۵7d 0jB‡G]nQ1B',ofϧol[6 )uիrn%4XS,QRnn%ٔ@JIw@XJ ToQ`+_PPPZC0g*mT.R +l;;;^Ż~K`ZS .ųXsapcS¾~ȧ TJ^WgL= цK}~S'fCc(4lJ*coMm0lQä+h۪^#0ɼx] wP),.qsCc`Bb`XIƒ +, +SbQVwKe=G¨GRm)PӃ4bSZ^Yfmk͊V.|D]P|xQsrmC@Z <$=L3ny:~[Wg&1&F$1cibrZlMXW Ф[{I:Xarũ/]9`,V_YşKEU<2)leG{j)t5 tPxu ;bT]v{Nr{\_{{X iHC4ۦK]cCfŸ 1̳5 "$&)̷F`Dy/*'P۳'tq@S㍍Z'2}=&c456ZjGuj3+TWz W5ƐΪ%vOܚ+ݝ}{ smS_l"F]KSZ0twhVgqi+b;M"l`IAN H;B` W.mz,OV>.{4oz*P` xu'Nh(iy6fXqȫe=9{jr,cBD50M0o+3E:'kJ-ICB.Ǹ2qH}эd- s +- +iNdjl,vѵATi.l=tۻTx~7aIV3p|kenG z϶JžXPߒvT2Qd2ʉ8{Tf87R֎0JǞjnIܱyAu#QSoj qҁ;}~F{B)؍-˲{Mþ;,U|Cpj&D'LJ +%-8r{'XW O_ӠST< +-PPjqT +e, ג/=L8 +` +25-uEϬE8xؕw~w<%aa@J^d֌XP?;Ju@3"=X,p(d,%"Z45<-Z[憖6X{\I XFWCӡI;+Gs'B37uWG"fZ$-y-35 *2+wO~4a{ϾHapQÇO|=rH\3& 2>XaEr}JBfnT ACinAWˮm)<+?lűKP=NKjE(r߄(=X(v +*-$u8&Nxʘ!IԆ(f'Md +%'N'& eD(X J"wW;Yq2!ZI 9P)W|/y ٝFC m8n[ijnBHм\v*fg8zCdzv[;1׵BY@ݯZ @օ4[K<[2R@!d&E I)P#â) %BwE$.ZΦ32^z0HY`@,ga4 Rl'|C32Ӡb꒻~k}%i9v. xܼb"8{.".YVujթ'bAƧY~h޻E0ZG;rҹO%GuQ%tAI{J4_9L+RC,c``~#B 5IL#G}6HIKwUijȽIvQf Lw0B[kل4@rQzN:1WHtlK''</<:(e{EvĊǶȱf ּB?!(7[wzźKʛt}5>4Ecv8eZo#e ^8huZ7!>k-GBpR7~]mU#7guCd`!7nP"m `WJlC c˸#Z~D/j_?v +@?i5jP*(?wnfML-%R[%0B +鶤>;2x" ++RQ (" +sӤ2O^g>soBww`=$|ȵ' j)jP1u,:vV gcm +/vP7\FH]ӣ|چZsaw_ (|EmDžm[۵kqxcC }B| 5U0]-oʾu{zڷ4umqAyoăϳpCq1B 9\4t \1mEQq9w'ǢKU`RrzkIJrSdTrՊ6:÷kCL 9Vs.I`[HHcJH}QHgZsVJQ˪u=Iͳ ν @!=FaǸ[|=`^(*n:iٴJT0*7wfGRj5(kdZwWsq΢Ed‡ܖFիfϦX5(RuFw99'9H#Bp +h%LLy0=O4u3Eit~%ZiB%Z(]Z=x+hKYqZs8S"c]#͕%LL9w#[ +z->: Bۑi%lg1ȑzmJ"t7X pʜ'@{# W'םвtsF:\_90x}l]؟:>ml#D[:|ʟ@cUAٽ4W#Sn̑]xw'(ӗd P]r9v]q)/{P,{ݾO4Kwp˷ʘ!=ȱKvDv*bzma刢Y O=\*!vf ОO){_ƐhKwёηX6bÛsws,GUjd nyB$>Z|t:H'iJJ +m;Ӽ[7:Y +xI/9bCMuglnqSW{*=oGI#6 贘f)OYnxSBV +YbiѶl vUanƵ&- tA3Q Өׄz0\z1,9~MY,CIF_?WXIN<Ԃ_"_ n*md{6Xuna2iMe(Uc>X)dOqS:R}HILYndGτyMʿ9b(`r;H\fח8o{cn0<3'̋fn@FIyhⳙb.-`Tm$)APCG#Sy "]YXq#zp2c*u7Y$) +F{ `I@XC6b YT.2P*ђAƢmr V>}tQLmnrٶè@,ʕUWG.OI(rɨ +g*i/|lSц¦ 1y8ud:"Gn~1X%p[9n/b +/[&IQkwж'{1\_ۡdm:'HwF1t/4r wh7]ɒS8Nʓ:ZEeLjړeZ%eZҪ˾J +ʗR]e.T +ZǕ Z!X&rEKNRR=8'k2#a+QNrH$ ֆ(D9Esg^+MT>@C?:TV7a.7 +^ +-AHKcd|N +:rKpvJڒp\yy<`y$q>Wg([ܕ#"4g(G,hzztmVGQ ɮώ/<3ϳRBT@"58A, I'INoc_ĤnTI 5] v?ޝzn~.L +#mII< ?s֠?LřHjU+<_X@eeXfyvNLiA0ZK]XRRplmErC8eœ%Az6N%}]U{ IF}9k&%9Hg=V5\t|B48HK(dSn>]8@IA2xM|82sKE|'&h!Ρ21nߟB0!U+Ry0+$3m?=ɡEN{F޹=-1q +] HF˪ Zf+#: +'WەG=;v,Ɇ$ fb7MxǷyvӦyCxÑPˬrٲI- >{rD\drxrhRofɳ.3M@Th)}sEr,ex&g/yV3f33Έ g > t–CnPOբ4M/P@U6 [3v<ƒmHKŅ=~E0tF`ѾaT,NDmߌ2APUqFFh%Fq tA{?yT TRu(o哔Y#9RR0@m)>ìT~8|~z8{ls E_ܡ#@$1w%2OJƿ{PTNT}Cğ5r@=(oA=i웱nmb[i?A{kwLM!sPL{-aB7%@%JM>t% y3KuyM:n)" 2\qܵPYQba()͛"p"\H2Y&DVԃ* +r~ 9ЂS BY3%JȄV(\l><\Fpa>U{+1=閑˔ sfuU93J56;S\"ˣq2\YES8 +b)T.h!c(VgXH*B6/_x1dlVJ6aNBG,BHaFqzɢc]8UDCEOy +9fS^I0Xƙ\%ò-T ,- Y,v獱kP~osA`l%vISaV+=؎re=/o|{uv>w3cC.ўXUoݛBiE Wʹ=tӌe%>V;KGw U>8;CndOJ c= iC ֙Y,/>c}S%}f1ofaWo5qg6<4dKVdz!:DEЗG݆q`sݧ +&ӞZ`Jifϛz|t8Tu'$F_x샼D%An~^f; +B4>v0&u/=$4-?kh-۞FvZ1Gpv-r#13'QAt˖p۶m۶m۶i۶m۶mwN=盘;vFdծbUfEf"o[R>3l_S{gW[ /:(h[WǘK3ԾOTKXOyǚQtƎ@G6̆"g QoEcα'売+?Pݡ-!;X'6ӄǡ7a.O)3ݲOk* O`e\!!FSDk#|2|y I? !0' cL=ûj;hyyaJdN&w&g7Hv g u u,9QkD7{h_ވ3Nr/*vyX|^WQiu zHqW [ +Y:kSY*tndG~Hieb)L3eV]%9beB?9|H. |Je>ݪP*Euu_nw2$짜 ;ٟY1}w<a8`? CJPOaBځ2'S-{M<+Nln!}((_Sj(ߕ7,cyvR}3|6'[|%\̻r3^iZ7Gq0pwo9њt/:ϔ %[B=f%5V:tŊt+Uf}mF3hMnlT "k xԔ麖WuƬӹ'dѠ"HaEx#G2 vX;V"<9H LHMM&,rdM=얥E+5EWTcn]3r]k, $v[SfNyh!>j`$;%ج/"|v[23gz&,O{!Vv7xvm@8mm7;Of%+-GKH,]{05 R˪WlG*/#"ؕ1Ui;8ewE3uEQ渢[U)c#^:2ӥMkU{3=I߭۬lIRԬWrTL:-յDK$)T +JKi\+/ L̟HPtMت J~Kj;u5>0|kxl6ˍHZB y]/A=cb1VQ\\y\y +3UҭЌbɗXrU,)]z䩛E +J*7|C)=**8y@E2/{;)xtK~)ա|<`k<'@:JNᤠ'?f^(( _tvaZz:{.Xc }m4<̠VdWr KY i;!1Nhv'ޓTd+x0HM|ob=$6)zfr+ %}Sz-Ic.%N.EOS ꕥ/ďW̝L̝99ˑ[.dQ5"8~YŌ|@zvfČ1!>jN6k"7G<`[MbmI¥ϣ0&$a&2mշ\)~ %p3r:똼Yo'pm4{j⻢w&[+9/f ľe y=jTd˩Vo5L٘}ƺP>^~nh#YWMtNw#ЌzĐ= +gbj?p3ܺ 78ħoz.0V ~h#|;!!߲ht5"ԋiTieo/<n6n)|Q?XE?" @M[&! +h0D媧}O}鱨Sپhb5"Uh0f0fF#.&4 +hWĺ2-زpNYҖMUXNh-~ Ȍ;Әi: #{ŵBtdžGmq9 +}Ŝ[P{[?b Mr+j DAd\)GU\HTjXgHEþ&(щ@sØTDbV'bͺ̏щ\- j\[B#%F+g-!r[N#77 +J*VcVijΚvR7RMoCwѠ(: +1OÄB6(Gi [N^qիŸt0?+~ uxzd-]huQu"g~9Է;xhuseK&|>>(Qʤ1U$;iV$Y:Q%a6R 'o q.2g8UMuuk##%#+tE)It*; Kx!G4fHnHul +$۟+NRZR_-Ȩ!YX)L鈩Gˊ^&@]d/o>O!8|B!ѕS#DՎzSh3Tw32&ph+amU +7(u+$ZčTwS*SߗBb ri"Q:Ŗ |.Nn8ƻ:ahފB +y$jDW#z(9X M5{6Kt%Re6S#Քbg>naS8q:*C)l7n10& WkuG&%']L{rِccBW ڌc-A|hB8j#좈ibn2ZVLrE *(H EmC嶤EJv~כl\]t0yەؠ `w.O0đ?3@VayִhY##hUԮ! {>%J{CWS3OQ6gu'3L Q):.7%CC#3¤䊂j 4$H8 7v$a aCIU6 +\MޘdfQ>܁F9Hш̧x +3\duj$uV/, }%Wi]\mf +lЫtCdEe,Жx`! 񓓪$n +`ہ,;K%wWCNGZ|Ӑ,ܧB. \.NeW /ןǮ"KY'QRȳ)jme$*GV0;:x]לއ* +yk15yy%ZW4=o҃!˿e<'ʭ29g-M} *ޮ}U٘Dު{&UǒҪ~v-avy JXº&oT_'0mƚs,}!A:/lHHlx={@.6%v%aKJH JEklֳ~0u [tbأM#R 5gndW* // Zt)<e|KB xS;t1T)ɛ`[JX=:nԓjJZa ]T`n)L#F _(dqS5AM)_7@iCO :5U5pU5jMPU5e)?.)UC1 YN9Ӣ9;ʇ!\iL53k5wqe0Gw˖~cqLܗ؇auDѼޙSXdOȊ;,@kYuTM tԙbAz"Z3*oI6OSsᦘsC)hF,"Ea^huL[u"-W8sɱ*Trq+ˠ[:}݈es8h` ChtqOɱ5ki陮6<ʸ0s['v^t^ԽbHe^45pTVXr˨RsaiJZZ]9:yVd֕,4հ,p\pPQplͨdShJi-B3';ԇKO::%{62\gP-T tNPnA +"EA +C;pEBjKtyI M$f^KߪJBt{8TYfX1c*^;5Ė%o0A¤&6>Kj0¤&7Fo0슏%7fo׉.+ V=D&lz!wvT9=@~''B%T"- >2 8  ,F6&f1Vf1~b1b1f5f䞼^]lll8c5Kh@E3_jXc5d16l`YYYgY7Ylhb1dTfN-ƌ"51)YWld0>u&s1>Kj6&E3 6'2rsOI0+E:|;@g}4Ɛ?$0h1$nIf2t5IMKXzlI%_[9}{גM'?zt}ˍǮv"[zn;{%hOߖeA1:qLM$Omܸ$2M!-2~+B+f[jKcS^g#""7*j.EΪκo'fb'fպUU3eFZ,ɵ=O?NM?U[gu H&H M  >Emإ9ؙߨ)6#AQ}Ώ=`\|18W6 `<2;p`.|R~>W(?2Yq(0_e=3yh:q^ TL+r{ݷLQiĢ'fF%$F5KR̍RLhkB4bnbxK1ı"+DfLxObOQ&፡4\mgV1cs"kӺ-"񫋩UR1"4DB1(c'# Z_g8bϴௌௐ௔nq]rBx"caGy$`Q!>2¼xyqGGLwx~;Ikf-P:A7f0hk@D⺄jȍx{ S+``+,BlVWk4BqVBxݥ+VBNȉŐ+,yB|>吞ȏtdaK_L u$(M\lǦ/$7U`;zT0k%阵sU9$ 'T}jhŸc`H3$MQ;0 ,0̍+PG9Ӎ &kL`XaTjÌAa O`֌B\̎J=cߗ: a9N9A, :DHul6Ynxk$ +Imt42&bQkK!vE]im9*S|o~`,=UsAaKVLjQP,c-)%\/gu"1L5 b1 ]^s,ȹO<9fy}||S= V{rhcAn=8eWXg<uwF*=?.ohUiA'-_fE~EWM AR76`Vt{r8C`D>vQGbUgM"t%Noq^1#qK e"%lR2@=`Sd\&ֲ_, έ PgܻRH欋m$ڛ)+tM 5t۱nEAtjRq&H~j4A`NbG +ZR +):\6Psٴ:>!Mg,4͕!-Qײ@'sPl6܍Ij#ŋ$HFRdti͸* ʴ6ɻڝ$ YMd]Ѿ ׫̽ Bq4~xCu= [ZcKDmɝBاZWiLJ ys1k*wgVWD"&.guW!ꆬ;s^[DHv]B;=rBGL#6DK켄:o‘:xęA)EV$ހ31xv(DӃ8nPǥ;L"|-\w %)|Ur<7|1&%oͨ/$e##]g'h _Ҷ&zCfV9 i鰼9h.1:Ⱜv{S C{8[~dC”)CFx(dhG`RD';lNszѫC)DabY5SHXCSV\:d7KS!Oa{;gդ"-c\" +,P.-O*4tL'gybzGxnfw;Ai,c}yϏ `_<(ܘ$vyLw{c0l1 &[W2ŬffAVeBbf*&b9Zlͪa`4F=TD:gEw]yw +g:!N+=R_zxe9bQ.e96LXd+27TRևPtO_N9%3m&>gc!27CHfuOa\HlH$@iHqaWJv*ɕz_S 9}p)[Ls$-ֱƣҍI8Y>^_Ճj!cLN!Xb\y t+F{:Ꞝm'sgU YU[(R,0w%ͱD;`yf9jPy:~Ğf%L +чh[/YĄ 8SRkgg5DD,':֗p^uM2-.b!RA:⨪"uȃ@vA$E +ChB 59N>w#wΨ9Zye`qV +?o[-KoΠpt.Fx>1 %!)& G"DFm+_Bg n6qVgЌ83@T͎=h vv>UMkHԂXK @+:&E] +K!u/\]C_Bɍ uZdr|#H69VQzR'B%1l-|;Pnq#Q~<~xg1aD3NDs"V +JE8Zo&?_l3#QrDUfQ>ƞ4k3*na4D[PfX= 2҉M84!ÿ\Ɯt%`Jr%d>u >V/Sk#k/q3\`?̳:^l_ʀ.|$ >C=0hLt1k/"혫w +]>?8e %uI յgcڛxn-xrBYKf{k]y2dZ)#\ZT^[JI wB*lo`c_TVY/U% +Bu/(=LsHfwکh4[M'C437Kb+C40*L`@d +ޤDi[ːA>tv: @j"7"{G8d}G\ xנ'|1:uWBqCkE2;,tB1'n)qxe&נ=u̢&H&UID6:$/R(*,*7z׊ۡalGG!w*Pu)!l5#rmK#oל7WdW8UdŬo'#MZ- 8}uq%lX$ŋ*e2EnO|f\an ޳I%(_a]@;G +7ڏ~  [k\kR +y,?Ӌ5h.LC_񇴚\S1㶾A>;  +o^K-4Nvk@$Ltyhi`, 俯Iڹ7[YD(*(Zb02V< X -pS*oq~!5OzRQ^gOϾf7pӥl˂TuIu2Q_E@z#H^n/+9mp'ixxW; ڥ$>CZܮ=\3qN2C-m֜Dv@+ CŃ3q-xTkU$IC yf/P_v X_&-qrWE:m|bjJB%RbbPh9j!" T9 +=nƩ[s+?y^=p ħ7'O8 }gf( h√7t5(&̜vUH*ȶfvGGbe M]!#ɟ +3.MyOʆPOJ a{ą-\#V [vqxj 'N^C;q4j + Jۮ|E,Wc6p]#-׏\WRbܛix8ORf hػXU=}n/[W-RJ.록,g/|QJ6ο2sgq*yD<>#*n9ϕ1qRx1N0m3Qy|uivZ]ߐ sE[xk]?/4`9sc6}@] 4JTuOuI;fz i]/xa_, Qt+XD q̕X&t;jz0RMٍg%})Kv7jcc'x!:Ub0²BC-j(:2Ûw΀R,WG¯_PaӁ8om!cJRiER3܀t䗟F-]3Vz^#z)d!ɑ'v#m pD|stH/_L%G=7c3vXE8s#fF3g5ĂY:74Hl:r0m:ZJ5 G9$;F(s%ۯZoW]Wzx#z#ہ_>OxZ>E{d![@tR 7Cut%4sTҶř%"gx'(/_YDQtL> B,d1rb2{!?@,}PWERiFbu(E+r,:!~#~D\WS5j,uJFvs'r&jgLnjNmvlTTfzJlULw6\t'Q (\gq;xQpk`i0s7L?U@7Zcz6~eA>=wVsGk'~#^AJ3FGBi⌡ Ɯu:Ў-6R50ë +LJ%b`]`\پe~ +lwSEk&ⴻeFFImi-jE48WqN;D>UCȕrɠÁ0el6O80wgľ<)w|[cp z/c FXHwe8lCP/BT/ .#>Jl')"+" FݶllGGuBqwCr(-Į6T6x7L|z I!i;bz.xԊRؖUl''FGRWW!m'AIR'n}ۦH6%@yN襡7~C̴A$ԡK7u 1%%?uYݜӬ$#7yp8f +TXc{cT^cP6ʻ6k9?S<9A]I5nWGΑ]њoU`Pg-YW˺߸}eMu3Di uLdRZCƤ/`q\G}yZY+nS}uӡb O1{2y߶qdX0z~Swj^+6`4@P?`khΉ ȨZ+t% e`)2xs~TlWQxwC7Fo}:i +[qurr"*jJ5`B\u67qjch)Dt9ϋ-6wNJuf{62*R jZ6N*:0OeQC +\/$o:\:k-jBsRejэ!hܜ!keZφDNvەYK\[8eWLfDY8QnV)$Ax3eu6 YT?*xSɷhsIO]59.]#sp\SGzs_y\BLl>WgBNUVRHbƠusg(5KƅۇGSnRsjnsϜǼ1JLÒۇL G2_sHϖǦ lRsNֹ7wO_%g~Y,j3MNGl,u3KR,eN82Gvn]yuWn}nۂ[ ,l$YKTD2<\QF2r;q3[V=ճ҈u|xQo+Դ͙`zHT08 iG&ks.y1-\s/=!Si ɑ8 ňɃΟ*_t_-궶cj MZsoiw+sa +lE}~(Nw;@01IT)(ԡ9`r-m}و2ݖUtJN `%()DX&4_ּSv#\klt޺4l2Dİ(x[#zVo]މ)p,Y;vhPvJ5p 6p4iͣYvYoHOԿ.X[tqxE~yWt#o`w9J&&öM+N2JmHN>1JiU& o+ergm}]\9zS ETȢU6_Vu]8Zni1JmZ.aC%e^B'Е7MNȕBIq&Qz=5@@'^|- +Ei[\ǿB<'@̙R(_\冤+Ox SJAsN1@{KCZ(4CGxGtП)S b +p4?)AL@S:?עր" WԖ<  +tihꔦfRh A4`RE) (SC-%ύRZf90 V9$mE!˚W,%RHԈ/I +(wtv +D)hhw^Ar-O=@ןdD1 hH!dedF0131;nsgI803JY^:ƒfsʑωg!$B8s)&ߓqb$3 hf9h<|VԦ\L%]pg r78'F reSqc S@(;N+Ǡ[0<:Z#x+ԑ_^_9-\+E4nG 4Wo7{^!M f:;6t:W( qk5 e418O.$+jv/t{."KT0ҧ?^zu@Uza׀.]x) &>i e]pUt>ag킖\<͟ʟ?="q{'A’m_ɴf9~C:"z˶g9DAme9A?.Cal enNnw37Oy0t.a׎XoL5o2ט_`o+7KʘU*칃+FeSTA!JA E<&:0%;p{5h@3X.E10LWuPLl~ĝ +;E# /#qKB~1=>A?ȼw3s v=73BY|/"ArBiµwUsb>᝺WC!87_aGpce'S7ܙ(#/7hiGȵ/\c4i/}wMrЇO?{!(j 6 ^ +$H 4`*BN т1TQD(8FH~͝BǑU"#b $~vg"ψ"r3O佈"QQr0#ɖ# +5 +0KRo)n1(-#5RѫN#u-Zb RģWE7HIAFnq;txiE3O/:Z]Fm.,rAI΄1IKQI;p;(|Sُ$#QI0z7gCPyKXg6|F9\>>:VR+91E܀IA3ܘ 9D܈l? +Z +i} gg^jM6bBulĸAgxf# HrXy$"".%yc2%{y0 +xFB6sMM`W>$ ЖkILhZQ 7_HWtq OM ǒzoAGNGPKQl: $)UM~pBMs@K]_EJ/Dx+G0LEp>d踯F"t=]RI3Ց +OmLx]v/{%C(@,j,eΗQ=q5dF6Uڊ5wh6̨''JYROS_RN[(oT{X&VIJ/)%c?Ҏ1}L~R ( plUx*ɀg׍6M6жQ}G6m?biݷ!e jݷ؂2ߐshξ3gjٿFsp dzB(2sj9%m#5ߚKlُv4?s@:!xQ;c{UJ8 6Btj5CP +'(ءy5L9EMunԴ.er.a}^[]=xj:q7O +QdhACƐl -,)ɘ +c{ae,Xt(J1^$([qcApgIxgU`]M%"iʫMU{hk٤iVf5Wj!gj&Øn)YWEjPA-9U[\/75g M6~1>TVI Htj,"H&c'QQF +ИsD* 蟂6zDeA8ѹxAsa^^R`Gn'?BfjzARӔ^~P?N&R6z"vXY9]+OАci[ +1⭸Ic`ڸzxCg\Kb ]EbTCJ̈́& Հ3A:kg caq_G%C\#5 x= ZA޸*n U M׋9<( ~# +>%[6QnzLďn.>5˜3~0wJԒ+/Ҍ9VJ +)_̰8.,n-A`Ryfۮ,c'Aw5;!)hDXn򿫎9Q%'R"$/K,byma]k/}=C~$Z^x}X=hԞ9b+P~-t:6z0H29aMΐ_V+[r"'N;LdShvgqEM4GݎȌ%a1+6&LSll'+eCQ<s>@ozB$͑yIr R0FХ_RT~DmF8 !vF+oж&O .p{(]).D(aN.gxb?tͬ q!;s%(~ΎH? Kҩ}1POW`#9OB<%p{!9q#RY +Ը篓4*Yѧ9]]fAb`hHn!@!`,iP2L33M V0ەBSVXrU+>[ekךm@$% <^_:ݎ;AB2gǏt By|l_⹏slvO"BK^s^s56Nb T_w%Yviq :=gZ|߬g܏Zw o8NyA^BLIxXtLS*][CY-[*-16ޡy(CJצؔI =X{ +P𢃔0naPAC ?\hrLDL--eFV;b4X"$6LV7 뭐˄$7ĩlEj9T繍 V-E;Z1&!h]qEֲ\FzP#Z0dU:6a\1!߈І<wH۱v.~~JܗyG1!'hy] o??'D+1!E1뢧g^{Zb%oFV)wr֤ɮ:lc˘ፈj#īة}V%5P[na!9nԥ'oqų!E [L2xL_3eU؈9Ln۸?pGX%h#'$_۩Q0(*|z.Fg~|ܨc(ZJuseQ- *&W h:4/:dO]/ MsWg =.y'+_L&*a30I|c܄FL82@76TϤmQ`0,̚qg X770,=Z.A LGEEfbڱǎmzt##m^NJR\9I7{*o;.y[>3க9.z%-?'a擱̟=#&)Њr-i.kIbRkρ搟BqGR_ aNy]5ױ|~-m?f-ExiR/b=W#={]܅QÖme1Dn,y7LܗUδb]omp}M]m~iY\2fdVJORv _nQ^lb44KQ>mvEUN T3ALPڨc憹5T4P|!n"I/5*ViINo2@|A鰰Y~R*Sz(|bjםhmwKsUmMQB%#^8sI1_q]X3nGAC"\q)J8~g|^zU`{шΪ͜}*xٜ[~R |vE AQʇW]tK`ʷa H(e>EG.5Acָ̤xTA:'k"ݟ8E.(BBCJlRCzEi?ђjS%g27FeQoBmJ2L';C5Ȅ_(M=/:3d2ONb% `lܶTK!W/UFp!e^+*V16, ~A,H0ծDOP?+SZi`}O!{ 8Q߳C)䢱(9G,+ݎPrPG*80x___̅G*H"r?\ayE)gV^[Lb(sje7E)!Kp'f云g n%=ۡ: Ճͣ37pʔr}KwV;~k[ʹ\u !oVy`ӛ͝ayWyrOM?Rf?! ~=eu~6!ֵ8̫c۔lpgB5О8ztA9'D#,K\Ж;tHӍ3 gײ].^puz1}xPm1xhtՎ*k[jq%N Xr` (:w98ʏ UFSR! ,cF!,, rԬJYb`nX@WOB[g ?;LMȤ9s<9@R<X<.'Y pT+X[o5^=m~Mv.%}۞ǴmAM~~-z7+5xC85==;ӌ-ӝNp5mxWL/ɗ u[ ƶo + 7r`ޮΩӘlֱ)E.ixvD hSoס<8.3{l:Ez W\IƷEWHKjꆰ6|XmnE4M?~s8F8=Tu'9 !0@ną!E?H%ڱY-|>*B#KڥIm&gRWK=ګnSRh7.e,$Ip+^M \3 +J&hL"!dpJ˶VCQq&MtRUġ +fr0z{7RR1i.lcγws4@݁ۯf>Y`]Ve+٭mVqGJ3EdYUʻ_!F(FbKWI A0B$ +8ʮL6 h%! +:hw364vfFqrG6 6fj639+iRIú[Os;&pJ_WX7v G @\L/?jg*hB  @IUE"5fu%;8G1¶rAd7+X2?JU_Ջd85o,NW1n ̕m˚t EE僧:rdaYL;WzqQȳq~i4O5B$ +u](%$v@bGtF ^Zy.A2ϟ4]*f; :=Av*㎌%قu#VI[+Jy&p&[W>WW45gh2 +.:꽋2[g@F2l\W{6;FА7!z, }4>c-gP^J6ٵ0Z#yΓX5.MX4>ڧ*Uێ׏Z*ql2Bq窎 P4-RpR-RcA{,Ħ3W7qWsX9H̼WU hT)کyIJߗ+Ui{lź'x}y'!s󍘫^B}NQպ2w/{fD^ZiKZ*n[d\[ϟp簽[l^ŏiս[I!~)9RT lk޾z\TЂ$*U8WNmXQu(TfO&Vһ|a>rKuu@.iȅм^ԚY0s^pqLP).8yjWjSD{BKÂU=hTv2"n*0uA/犲D]?fRwǤڒ kh} +mDJ. qԗy-Kcr%/W\Y7 VKr+?QekLve +kX$h44 4ԩ$vI(j,l{;$hsoȶDI$>n⤘${TrY$RHtq( ,B"ܘ&ROdV_3еZ\j@CAZT*ңN¬-(JXxN閭]hڊ5ԙs4V8"ߴ?P߬a>|-?s?`- (uF+v᛬I1J٢VEw ~̎12rf,̔ pC\BeNzW ?7R%PKt bĊk1=39ui1=R 2'؆%߯(iv]\|/UY|lhaݨ.V6lV,a܈avh[ &֏-mXxY.j8bbdWa C|qf+:gD`eA i<m"윥+WKP@v$Kjۼjdh$!JhD\-Նr3LVPFRdT( p!oc^ASc\L=.м ON0t'fo`B"h>!+Of1إMO1H'2,$Tu9cӼjڙ6#a?O~5 Pw7ɂH̹]unpOW|(0 0>4c/vS=mR!+0 8\,fР`G @DQj:4t֩X +"9zŬUzڟQ+p<1gh.[7w &KSEcsxR|r*/Y`ȽB-ֆȃR,[viwKt[^U +TͥPjW>8ZzRz}kY75yCP{$>:1>AsLNZ۠п::4z,Di׸ݘxƇ˄EwSOm1&=}  o^ fTA9!0Z ,#]@mH2?5X:>8xUO !&4tPnc7"d$biflio/?J4!}TNZϺ2&g!0H! M2 1% +iZ>6UwRZj"U7WPlJTmlStWZ|{7v5 o9R慎ET&;pf eNҽ to㥣&ڲM=h + qp*bwJcׄs':#)/ԣ" ,!xmOjԦ/) Gႏd|wBV"=bGŬ?_Pg,aea٩6V~r"]N(GѽgH[ a2ԆfQzJeaocnfkY1*TbkHʖݽݽgWV\"MW@[]爛:,`_ +V7n(Ƿw6(Ǻ~ABt zŌn. 0(EMSpz\rl]7 +,n!1?qP+ukVc@ƓoR)\0 q \Zc$tRk v ṵ)Tn@66.3 xb8 ̖]Bw Nݵ㷳 PVq%ް}I ^+ K0ץ΀QUǍu}6h-_L;;+ls(O0l\ ,ZjTrha`FJ`ñ2͝*YDN :=e~YػZk%2ep|-pi& E~tEbJI"Ts7B[ۇw'*c35MC(bSy%_p"{Iq536HWЁi~t(D=v|dO26EO_8SL??A^_2OjpPY:n.Rb4ʌHu= 0P"C /H2&@"wlʊG%1ܤG.D:H? gBDFthY7%.SNRE*,QD'+$QtH)L-CCyyq9o^iCe.W@f> &73a%#qd@UfKFD!t3%$=!ᘄ ~^:1d +"\fE& +B*yˢ9ʥO=ʤC?WS4/j:R;;x/˵Gf`l6UwKn +;#SB>osps~̵7?!)ε7v˵G~r?G3w'rF,clxw;8з<+X"_ɨL +Z?[!WvnS[xR;!Q9+H6G9ES[tzB;@L;њR  Y?Ki%W&1όy?87 _&¼nwC|W7L)6縓i 77sF?xGK5eΨCO ؼ{Od#8_Ƅ,'C +B Ԡ@  8LI@o!k&B-I<%:ՊTFWG ؼ$6X.ZsE(&ʼn5%$Z:#YEDhuY%sI^.k(J:Abt^t]Ve3hWPʜA }P;w2=aWq컦yD83q>XDw[bPnWUi_U[=V%`4ELJ;j LbR3gaWO>Jy8 ")c+exj?*^ y!#] %aSL4~!l'MEp;ɍnOpo4{ӔG#D.D5k(5I`Hml'HjʄLkwff aJ-%4`DR 9dfXkatq7uXPa(g gUllR[˴F0Ì Uo:`R)A*U_~f 53 +˄iH):za!~̆Q!ɻ62gr2)>҅.sl[yAz̺bZrtrg )Y\_3T`O7\fP؞-nggW^,x>ݏxVuaۑ}h}Y{]c[{8vp{e{}B?')?<; ++&g -4x};F_H;s|&+fop􍪺͕ſx&/{駾0i{kSrߝE8w Wt$P?v+m:kֶJ+Av n|Զ (5;Oتv)ʞɑenrкV\z:;e!:Uu+ur QouLWDev9G雽 +߱8Jb ns +'z +12 !(H%S>'|@\ +ɧJ[ZFn`06 +yM+nf$$qH҆+b[q4X^20 G_TL7 oq9aoHtxc7V+Fn1neqṛxRJ1|V.3I/3;rÑWkU^ڳ{n)4F[R8MOh,o:Hr5]Z+%Wd +DsUTuuTY.XbXx숇%VsY=ƍ,9s>)H\R =mN%W*y+ؾJT߃\f3S$0ْ7L9ܔ˒,]8ϩfK;_L> rKTn8,|޷ϾAɶFz?5w΍ 8="AUP5@q +!@{J,:Zarx{!o;#&ӈ<-b00샂o+rћ%(]T)i*` Iׄ~X/M&[έpKnldrAQ۷`QfM^m۶m^m۶m۶oߝw~̹Uو|~<%y52hz{mL4m @G Ci4=~?Jl(=݂M\"$zɜ)8δ.x_-@xmν-v?pJ>ȝi[[IH:'6ݯy}"e4 xAY7XPԷ +x":DFP*}tUī|k}y\E8Р :m4t#.#jnN>gvN~y02R$tL$cQ_mf5dx1=gjИdf +a"l9Nf p{Se4 +CV:z\Z h 66{1=V5$e];>G<:D6ELunߦS졭|Xa5bU2Zޞ?Ƣh{nv4~4hs1 Fj,)PQW?`|fQLSx4 1׷=Eǚ7x6f2=MMeH I[Ȱy ֓a1Q7=u3vHKcad6 q?!K7A743&sC[\'XѴW$=l+%cy o'W"+wntsLYSxjRSvl*(X,UȒrZ[νUCj⤵,'Vԣ!sW5'—ozhW++1ߺɩվ\|RYo3rZn,]yRYYVWQF;EFVr`$;W "u xE{n1+E,GJN,ۃHEK0N:cvA[wӢj4BE۶²gTWNH,W#Z+GP`8P%*CIas@<"5u>Q(Z>uC(#Wt,#;;';l@VOM,!>iJke JDl<l!0c@64Xs( {TM;(q0PNKmfu*2@L?aꚆ؆\f&A"'K `8βWjzeMea,#S0Ny.wJ/]SEx-ty\ Plʓՠ/M.mDAO~@,#>#Š˽{!;Aŝ41Vܟ&xsfFȕnF+ۑ*IUS[Htp܀ӑ\^=Sa[H$~ʼaO8Iq:F(N<8L73{KsI +9y;a=PPkvunrVZ ~zK#QfhK8e&n3-f.ΐ0̔ +=Sq%lƛa (^EU[PQx(i }Ϩ'Lovn\TBnHf/>v8N7(^d[}ۮE{⟻љ%go.uBY8"o.u$;P[AP GtB̉1CfQ^z=IKgU! C&Ƨsu qT._ƨWp2V(:Wygwl[' ɾDAs+*B͙2EätfS!m,66`|r".`EU8?|=TZkk̘%g|+zc.&ʹ|^c=d4' CDeh=+ʬj7r/!/HOQ|M:lw +nG^AƏcW2繇gd10gމxBHŽ ǃ/V1,9\f@DrHV8;QZݗþgg )݀ + EC"+_R`l"( = gf5iTz/0*jBfע)yzSpVka264vj3<\nteNo_:P~I?[)n#D۠LZL-m$< SҘة܌N!y˗U&H%ƍe|/GyBs4YJ,?9p$>oz|~#rƾVЊuBFΙNeg< -)I %4^I:i& ͖-Z&$WtUsX>gp= r.PR$&(U_(R3 t?9[l/A$,Y6lr%t8$/kEF+g~4fcgۛ3_.B78>9g/qdV/G%ޡh8HC~cyHcUq?R/K3y"ApO4X1ӠDRFoue9S K+,5 St?Z=+ȶ+q>;~(zSXX)^aACeH>#L};mr$]s(V g>dmg6itpg&iomgꐎ"gɘP<;:urRpGd?D6^J@s13#q r ϵ'^DeXc>Fy ToXF>`=j4}2[̸]},';u&*ŵxt&Ǽy^J@6D!ټDP&4rVJVegcdqmqs)bt۬oCQFXJ!u|;Ud: +z2(rq3㪱ԗs @DzudIT )E4lj')Rn@"p8lަE8aIu=,K+Dz`g/= bVUG4OQzj:ik$ٞ&O;2Fp?*O.*>b]Dd. 4i pCԥJz!̓6" ⓐi&~N >=mh1m93\ */K2#*'E&JY1 Hb ^q@& fǔ}@Co݂3`[c$5,JQhD)I SC`7'0- L :a{ȮFL/{WǷ>pxCJgCN3L=aim#n`h13ڃikNjGWh.Q7i='ѹs#kzݾt Mڣ$Gy> {$FZEPu0=f=v `s0 xze,K.}>[< $vS#[qԛ,}M (J1[YP2jZ?OlDXϓq Mr `z6ԼlIrqhchG WIӎe|tYtHؒRh0Zpv~'c%4ylL+'҅YHjp0tI&cA̪xaz||zkv̖ꠧ|Y1(L rB䉜k%mٍ's1a#UQ +>5Gg3 + + +-@37<ltw=h %T)`>>r1,7N\9D@GRAZPf-L>THMLF?vRGTM)R5W n `ei)oӉ ]fR9/'aA]"RqB=$b̭x;Do083;Vhvc͛&rmnlnX_wS;>@pta=L&W3%|jZ&?ƹyOlk3 9_ۼp`k.E,Ͳ;ve2meH ' 6=8$'$_'+3$FH FVhnT/>%Ұ8də7$/*YkL rC&?%!oTb)\\ĜҒD@l\Ĝg8.${^̾ [<1D D9f -*  #H3v'@wHМ|+YAY$.355+ȸܱLFuH^uH޴Cm*?\TT-٤2{FpzlT7\pJ*3693' ą qڭag n)w޳jIc?a,iw9~YSMW#(d"_}jm.:4~ m焮4C's@yh'?LHoeDY#s QaM=~ >TmQ-g;_ P__>Ӝ +S ]YwOjUr{h9{T +N+)9ʖe}b)%~|U \JʃA/nŽcTEJ% *R%Blqn&k<+$T +. +YJ> +CUhHt ]i1v˕+XQCmd(l,u(}|Ql1*>@OZ# ЕE}yqҰKz,Hd,VoF:Ji2Q;QPkj1Ή.M&3taB.C+>WՒ*.+3.ӤJT"eΎ14iÃ3(ܓ(UL?(cB NʪgV +ZhqPmjt)3]^W(>JXΟpI3&}p<怾*aQ+K/ECZRfW gpei?7(Q/W4>Hb_4X*p;b po@^M+ Tz-`ː|xs/BE҃%֖FKUaToN&WG†& ҃ia>/]ʛM+*+3C/ зYҕqkݵ҂3uѫ[g =CUH +X z'AlrY,R6]+YĢT. gc^IAvִu (vbaCUE2qXV!WW_W慽*+P%kDey0=M7UUWg4hD)+ibEc@X*Dj$SC}Rh@V+]Iʪ(-tam,,PT=)Il}n(v[RS\ 0`1q>*olSF0,Ěd'üD!R;W~OqͰD4d;>MVY ${srr5(~OanY!/A=!c<.sZKvޞ鳵):Wl{3~R]9ͣ&S&H℧s4,ἅqt⻥g'#7]JicVur &[vQw[,OKdPّ4d{`h{-|z|"7KIy}IְX;ئE(6GThG|suIVCdKfv~ǖ8[zE!叆UmFE¹{/70#qՉcI9w4ũR*Zk^)2"#ˌzJ. +rS0FS6N/ai8ePhb76f:aE\8,k$#U4XE& M'[Ti=I*c!+-XpbZy>C7?z0 ̘hƇBū',V1wQ]I]3T2kh %̱o1R M7J^A=V9 I!> wum,SQ=o2#쒽a<~`YB>{QQ证ܘUdp2GUQF>12bkEׂv."h9XgSu`3*\[^XIz*TVPTE5WVXMChz~)}_+#6͜)8 ^ Qis]Ss@qi ba$*IiXa\j])$qYu;fqCAI,BAJR75nӌMk6lҚCf1ϔ9maW+dSy^=ِv@sc.CeblkHK`4b:@Om<8D ˢg3ܹ4ʹ {{1AD9N3L&4=PS;\]E4ys=#qU >#!r6Ef;KĦDiMq.iu^c9sE.MyA#Æley:EOCz\VG;ٻtݨ[6|Bm%yl[bJ0oDh4th@yeIP1UVCNJ.po-ս9ٌy u64^6W ~LÝ]oO[}.2 heo.P׳d Tm(vEHUϹ&Q#s{G@+Donf< o̓Ȝs&[k&`93 99E&ن̜CcO6}+9e^{Fs6E-m1/wA'Z=YwXE^ѱ/Js=6 IՁhTpm Ķ}Ϭ_I!)J<)f7dž[`18lCAn=6v(]q䗣"; (N6]˴/P NA qEr5"Zᭆk@<Y PXi"<<ϋe_/kS۬bSk)[a=,Uka1xmUُe;}Ţd8_  +@cFbY6#ɐ{$ÔrĔY3wPp̯t +C~GZ!AY%\a.~!PI7Nfg4R&$1MSX2"Ɩjo9M'._Y(1{RXzڸafJ7J<%Zķr.` J Bd3g:m6/<|3<`-&A}av@~2q(BK傑sHW NDaRV:HrV +בWCB"D*Lgii QKm}tŬaƜozt`0FnAF]¤ /Cv:¸*dzl%;ҞOlbz3N@=Κ ,} Szot?ݏ +;tzM}u3zS›u?r{fM զ$ &90CKtc6C|vܚb&;8ֺڏ{K; }vC mO>ݫ?\k%N+ Xi <䮍 G%2h@(7q:' +P0Q?iQ5ޛ/|+_q4*/#Oon{LG +IiRă~kk@5SLw`Y[AW} +!ap.JW{x.|d.j{' nAP.2.Ct氵q!-ۃՁQoLdא]xM}kW[ߣn}s}͈\fR}$(FԮ9Ïk}ozT!w[;72|+|#d-/g;U=[:dfԭ\=!/BHnfK'͈az'A=Z/ZnfFߠj}'$Fo1!)áˡ]_=7>tȣ返}(w^{ݟ7߂~~||A?λ๿ο ο0ο8ο@ο\g?$g?g?ylysn-`_cR(~lDrqtG _㞺넄LkEsICcT@Ft:u FUi{֚7 -ަ+xs4p$= ܋܋СסءAݡA] FJR[55SUUKuuS$jq}`9B;;ҝtwwAm\{8t5!:`:8u؁nڏy}g~w6o' 6P.搫+_\⼾;F\"UE,{qi%3%-N|Գ$nh&ز'~νٿ}=r9f<йpvpOg"?$?&dP?2l4/s_ɚ t;l{# ^CdY$7L3z_rYoTClT=Ǟrzཱིw%nܤN\c'w =2Cr뻔F3o}H{%hE + bKƝeLtƥçА 3RtUPJ(X'p!$^Ƶ^P?Mz侨 ĿLYףr|1x1p?U;Rʸf=Ԣٍt$ճ Y׳ km3 k."x>p?qotzzww?~@vf##svp( vV"DfXb}hᬟ QvįwCLB( +QAb pq"oǧ6V^nY㯏1NvnA7dg9^ 9ZN')9Ex"(^!h|B?2Y"DqWQjw%aZA(CVԉ77EM<Le5Js/ZrQu<减8 + ra G 80i܉PG1y:b$֚ijřƀ4FMhKvECnb7Y^5YVJ#AGׄŖ\ά;{GQcr_cvJcfʪGK̓I_QX.{ûoE_=#._^(DZZr.,^ѧ l$7i]rӉL. 0kvmҕc,IJ.%obH:t?-=ڍsh/Ėuk9{OJJٻg~Wy ?_(23[&2g]+[J_I71]b[r 39.Q:^ke mo+-`lOxpLCjV,=}g8Tj1? -~ؠˋ=|*Msx![sKC QVI +o쉈qkNj~QKv5-ЉYCt=}])@ޠ._;Q~RJ A#[Pj˗([m:6$h~%0G~F5 <[yRo{{Dp!ş $$HK2HHX B0s/WZȡ`$chl"ZEk*zKTY[{,m׮WDy2X;entk`L"1YPz|7n~SAr%,At]VR'1zrd?S$Jʴ DL3`rԲ^hcN:fyrӋZoz|CT Rc:ag0d<; +῱r#B4pgKt@%r_0\۳2cD`Ɩv޳AS0?V*(#kP#']S٥l#;''ݺu.Ϋ*L-` ms9ίSz~lK 3lJHm}7ci: +[lN[SN}>hHBTfnbSj V'c/a׍0#ee٬MS[,EhiFW15JSlh,KY+ t#GL6.~S=u+,Ժd/JJ?ifH6&0sVhUa; jEtU)7$Nҕh8\f5 ,*`$ܯc&*ei2<"pK3HI@ϔxG-[1;63Q8 cQtNn,)G{\^5`VV>ХWpԦ9um"0jh< ('k<G7ąԙ*`xg u<OUMWф};W܃ XFZr @7̚&}`6"plӯOT+jc !TXm?M  x2 &r*Ky +A'^HC +*ύ!L=^4V)`GvFo 3xmA [+\&TQmbFlS`-ƚĪ` ȣk˧ +rnMwU`2 i:88 )=iȧ(f)]'t`p@7nuɿU2u;*Ƞ_!!ׇ? mޥ1sS~v!=?%{ 8Q{i7Gt[P+,aN  I@1,M[%J0, -備l邪rlkkaP^T..o;6?CS> bkپ*~DB;BH6>}d2k~ej(ʍ7#w8Ϗ$,|>" wEM No Z4l,Տ+˕l4Z-VU\>&Qf핊> `$^p![Fmڶt*χ {굳BG3S + “SlSen:R8 IJӪX;j˰Qz +`~ؖ $ +T̼qq<; +:E7MMF+1a>]<QS-<`"V+4E% DЦx7b 9 W5yH͹hi8L=*\9Z$H*\X_--UEbWST})rGD5.ml[mȮw07s?#O׷'mwRotNZ `y (PLvF^h$ ҝ]rB:<&ڼsԤ9u6 g&!&u9ktsd`WO>(?}qsJrVAV9;prK;ۏyt3zbU82^[SYm llYO0NdTmy¢2!/0Z-GC_`akd3M&.mTWxalk|&⩁|>"/f9w {C0ZYhLҨI6#B M.3)G]@K 9N4`^O8r{Z1M@E-L5{|9`'[dSt&t'kՆԱ[B]~W̙>t]8J=] GGc#CAxw5a2x8?.ch%؆8x=⼮0D\<>ɊM;Kun*FL]\%?g m?& cc]]ꄖ`}nV:b.\M:#)Q;#$=dU BV4N1dWЕ 9:~!'.:y^lh6FϨr~N*x'{?U!?ئ֍"PFK{WYdks&/(@Mٚqt3=^/U}xj(Khēkt؟+}^&W<ﭗefW s:uHFR0IP4>y)bZyz.787qf}7aD ЇOD+1BW0`EF EPBcEhvF#ߵ)Dm%21Vܩq0V [db]x=㉤"%c29$VI`_4WI&iΌ4OG{FeyxbOДݎHc7ueDq)\PGĢ_5੸A{aL=T?Be4u@+ԅ@xĂ ゜0AeҶl>BҖL8ds {Qe8e;).OK5;гА=hDlZ{ ZN{r!3 jE\,J*mRR*pԠO-2Fa;lf.cP [UY_wRgK [y5)z՛Ig&˓ +[q>sg8\3+SJB_kqk:xك%7*e#PDݛiI>4T4E# ֟"UӭH5|?㬓hB~yT5} ь'F0O.ӝXk iF;hhj=VDYmb0ښ6Dm;Qۦ&FUt8fVr8ԋ`EuI_8;CfORnmc'49/ "s,nǺ.j%' c{lWaL6h5\Na^HُO[3{>ĘGdf<:% ;=F̑`xwُuwNu?cZ'v?5L;ۅS4H*Hᅱgrkh0M&ʇђҎ鹦u)W)6`64$8 wm{f1V9ITgfmp[^N[{7yj|6}h f%ɧx[yHD݀S}vh`S\u:&&Md0 3$< Q~xʼn|"2u6AHҠNVlUl$(:=Z]r$ c45<ǀb@SC |A5 ô{qg0 $vf\M2`)8.ětwbg((X&2^|NjP&s-61`WS z +,;h-9:9s0ɉ^zK ݾ -;{O=4k8搂=I&&Z\ lAdhs9$&?w*޾UHF 2@+J #D7hdyzntx@<ԛn?BqF.W@Q(HSI_LyT0/M +:viӅ6J ߐ9+j?U(VgE ȵOR0 'LڃKqil2Mɒea\d-~,@[MP&.km_&>bZiW|`^YA63=cRv|p;593; q?Yݮlw%3 eKI )iay7L{H#$B=+N:8\]^uԧ&U:[CkɄ䜘'9JMHk e3t +VZ2V]g6z5O,$L)?e4&u.3 ] Zm&o枃d*RC]5^l#1NƗ{:xrhQp:uel.BY()Vd=7Toe1ѳd ,G/g ߓV~"B.!J?tD)<[ 얦-=jOз!U|$ +u)ZHzP~RM>HP{M6մR +zȎH#g ߤͧ$t|B\^[95pլ ? + Z..>2lo"/`=+PU'wPnqMgy6*y%+w1 C mC3VȴGشvٌ,?u@q`M4;/{9uct&t[cbeJ |tۑa9ǽ!ȑR~nK% C@fbE@sn}=aIZ +2ŀGXES!'3Y*fu~E]ZhT9qqP S9d1!(!Oext oϋ-<[QGnqغλ:""ndH90O5. avCcX)\ ߤA5ljo4$Ёj`$7{~I4рZ|'3oGk^ytfB~ъ̼e,p6\7H| w7Ȑn@FuTp<-1vp ȃq/'(>|NʽfE 2%jxTV(M!5.Wzn!AZ7apŏp5)8b +.'?xEQ'}!pzQ)Yp…sl0OYƞ!R%-^G@~ [Q\E}Š YiȷKf~^A,J- X^ Ցȑj345!1S" hMbZ-$pWVRmuYAf9DBNdsf+qn]Ϡ:v1Fr~~*YW'?:\6U948o?3MjBf=mтzam_Xa.FضL!fŖ@}c<a67O_gqŘnh"m7oN7?{oARxg}?A@ R RAˀHigBÍAi>̄K' JCsP ˀX +hGcQ9#Il&-Sr} * 9I\t[nkq-:PƘ暩m@4-Jx/}:UR2W[(bn+IcY|)hugl0H%QEmC,|"!9~|C'>FGM=" $5TŊS5X|TZ+cp_8 &=̡ +f>Z Hy9:[R0_ym cT]FX= њ ]h{v۟ +`1,a&4$m/.w6C?{BF!)P2kKF j';zSA)eijf[WEv p۵/Ob`SɜQu9:^+yUP,nڑbhЉۇ EGARF +977J +<"W p9` +=4u1yJж<_]Y_#Xn$hs2WNx*Yo:`d-p"Z M TX䈳6/WD9Je˻,/X޼)tF^AdL߇_(E# d"; QbeL=V ",õ-G7+o#8v>w5*~hqjvs@,kP/vȗ9@jEԳuP3 7?UhVmJ/y>q + +yzڎ}?{ISe{uUPh@ էa3jpt+BCSf'^sd*7&YRKxY9,S*q3ԛ#5('+ua:NJ}2^QGIKqe5S}ҎWԥ@UP)6 +Nhu`#2'J,U؃Ⲡ{(T7EUdכ|:DTm"~I0alœ,Rf5{ JglQ8ǝ0M߭{cD&FЫ_N,w곒oHǑcِ%Ԋ J➽:ͿOVa,?ŴfO}rcrWX /9Jj "CT1(.u-/ʔTHn; GG Wi|Z +X% ן`2)L2lϕL.E\֓O?¶c翼ܲIgG4z@sa5 ,I]kRAU,_7*=)ZjbwiK]XSNr<}Mc{sްf!\cVe<#F~RuZ:tq*J>~`s_&kJv##Zaw#;>?塭G ?%')0ƙQ[R.Qqok;_}ݍi/OU }c@-PG3!S`R mYs򚢋C(~^f)DPOާڿ_Z@o ۗ pzoߩ1,.10K@*uV{"A&6PChA`KxN*4N(O0sf9 ^G3(u-EGxA' {.X1X>ޫ7dѺ#]1jxaFX ¸ +!&E!&Mf4{4D0q0Z<` p,#ӟsfvZf*d3ZGDk_41i:gU4Yw)ĵ%ırL]\%%MK4U-%o9Kct?)oca;_XR@EB;TC%=!oc @Ae>H'ә'5542vKNi=tT|f*XGIcKbgE2pI:bJ;?",`3hʩjT*;(!(*' 0}E &sRNVOabh^fJݍJfoJ?tjGKzlkZIZ٪I''68bVcmrhƒM3%1"L/ct"Y#~֢ͭ8[0XUm[m&juSUr崔2S'd-"YiԮsV6CK ѓTS#v7 o_+Kt "LC<Lݨ?M@,rLǘ++暲ٟCOƑ2*G?#i]XCZ[A'\mڵz\O|ɛ Uy.q/?!Tf^T>(h#"Xu3c!q@+ޚ^В3m:4726ji$>+צclKLj }09&$4.a]6'z ɼ1j<Ti?,P!e)V@o]VzC,)1jgaS3E'4b6,]5MEk^d.diN] da*_݀PI~`4+78alːߣA~`]zb̹E^n{ESSebaY27)v;n.7lDq^iY u`0Σ^0]L&goM!Ih.p/QKG*A2g Kef* >N^b1l\8`v<j~0.Qx&pC ȹÐUH^P`;KfD(#Bo <+WOIլ8>ЙhF~7|؛w Dful5"۽:5X#^|Rl [`̋!,h㖂~njrw*qg^!zmNy~c&+;dЖOMBE5Z<]B<nPtT9mu:MW~m ] }M6l}сjZ0:|xP.[&j6#m:MQj5i5#GP(mh@wSW^Kӧg?e&l&C7'R"VS$ I0kZY \!g,M!Z_A:] 史-94D-2/b#gJgIaYPO6@V= Ig/ 2M>9*;`YF}3#@CR_DcH|t a}%P&łNqkrQg W ?CކVƴ'(xPD0bUCPEBxY,O#y5yrn4OݩkONJYdugB +QSIc_N<3p~i`/GDg9,"֑>I&!W@+Sj]\8P0GܯڙxaQ{%}x6}p}~笝ǛV1YxUyVyV)V' +sQ:~GT /64 1y[ +1R@9@EFxL S\g Z?/WH# 6mu儁>̴O u5 +\VB!G]S߾6")jņallZHZfKal<=V?J났c7M@_~LSeCԖGdY 7ٹu;2 ~mv.GjNr],T ] *r̈/ +dkVv J=RQ> zHIlgJ^ sċ;ݼd^!J637Ɓ+*AMMW뼋'{!7g!}4W12$G@}9 x;> +i9IOOu4=cVpk%6nYI8vif:Yd,> zlFi㼆ֈ(v6Za%;brsN j#Ƚz0غ?9۽nS"h=^aCqRVUkZߖ,(],Nj4U +y" 6/3f1.3'Hh\$!@p“r\Kttњ`&`-nmdC2r4mGNso3cwTuMX#sR~uo+R`uLu>Oȑ:~ߒ&z9:EAi?!`4 1w!h`{F,ͮcMM +Uґ#4hkbbK\f;+՛MДU oIށ6 +-cyws?TKNUEr*M { Jh͞&2z9Z 55z0hqU;og SЌ|YNH|YS.:G"7ꈥKRlquʸyZC߼6ѤOιJCÒkՕ[Rlcsx2MC0RAS0< T~ݣ_4Xo@h ,KȷеI/\zNe71sOp%7'/~9V3G=kݚKz>, +#w{@r:*_Ikot闐T/e_˯/7/ }3> #6v"2 E y j>NaLQ]Ŏcs= ;&W'Sf9Жxu""5%gX-"ƙ b^2?Z.^tȒMЬ k1ê^s Zz6pjŖ̚ԚzK`M]r-NAlM]tM]vM]bM]d-Зz^}ӟ͒^u367' +qKg'G w>D`é5NĊNvC!{(ĜqÁUyrU9zJ+zi8֪t-u=s%S҈2rvC SOIP^pD58J +Q>XK"QV ✔z Ð%>^єXQp +S۔0[g= THߨ)`9` 7M(+`TнndQ7(<=J,R7CUTnYqw;A(<-Jwj;=+V|?#__x;s/^_` Hm]pB.T W`?|P>$("o+t`}pT"C4S k4.}lhM*7ڔV+]\ݝ{X[!mASȣZ(VڣqWNi^kbN2[h 7p]N[()/{Wپ7`Z`~ԴX2oޘX9co}e4LDm۶m۶m۶mm۶mobbǝU͈SٙbmOךnxx'4= 3>ƕ0 ZBBK50#D֮O8t -1L 500->MdaJh`%Ca1ߝS߃0H{RQ<ܕ WN}W?׉s$rا,v'F^x'+}F@|x5HRT⤿} #3//}})?E  $L܉Kcxyt$畐{jjjbH@&$QN})*eX{RIv$Ib,ĴʥYj:ku*R*cDR[ǥ! 撂})L(~ ތ;",I! Z:֔.j>h RbN2ZY#pF&^0j"s㣠A$Hқ Nz@=Aq**.a6&.R$1 +\$(WFUυąO +Ug|DSa>t$ >|g $4;/@K7>d;]7^!}듫C}qe/f/S/.ˣ͌q1<"!5! }Q;rH 9$7$KC,~7`;G; !'>7XBMWD:}诫ru%<m=z=\S$䋈A"ZAԏ + ZkiR_PHKT(J6k:l݌ 6TRǍ OYzD 'J:摡Lcb6 fx*bP:AnBhN8{POІFQ(Sp- Frp_+ }BٮP`P/,*,X}CȐK@؇ӦzGL*W?ARpBoF`㥋Ѧ +HSBǃl{@iǃl1hp ~ncP!_x'' ЇC %P?a>fi؁[rY .Ё9ݧQ5v|X2Ã{(YW"Wҹ reo]Efk )W(/? L~yzp;[6

;۫}y.=x;0?h \ _bgann!ܱ뗇 +GP-G/:S2ot^ǕM:oʾ1M?v~&7.A9bO/׊:|rARPY>%%xNx^Fw*D2W8ꗉӝbA@O+ׅs)\^?FqOxI*J* o!$g]ڞ:(/PMZZPXm꽳Ul¼Jc#8;6a4<şc9|+N|-6s3~M4PC | +b $EZ͚g3NSd4?(2j +b9USGsq&3x[0x=YN8Pf'6JdXFBL92DyUJsR/ͳ@hk1HLhl_ #eyYMp̣6&gxL5E&N089Vqi/1ަ1C.IQХ7+ Jr\PpSq-4*>Hp5CEG}T W EbP eSEc9UE(lFIY<Щf3PQ䂶Ǟe6l?ŋt¤5b"O45jPYet+g$k ;X [MG$WV" #.EFmsAgZЬDgp3`6|ݐp%j@ԉ?|<.i_֠#TFnP'wk$OSDq(^Įp]!:\fCϋ2p?MZMa-z#$lvL[/9YjYϝ9x3 Aru8 1~==. " [Մ2.c#j9]Fӎ[M!~ޗT%0+ *}q#*^Z_ѯ~Vkb(`ݝò߿ᥟGyT讍 ¹:U |X/ンK%,ImsCϝC]V;wc_sE[H.>;k݅ó{u89Wj%nA9a1MgcLqijLj{ #LxCԌ1 +DbI&)QLr9Yba4c #:q<#2d9fӼ#Kӹ1{ML$>szLz~P}c_HzR!PWavm)l!3%deZ|EY$̅eij c9y Ξ IXjQ*R [-zyMH@kQD*+a5,Ѽ辖/qȢQS%5g\7P񉔛xgNМߤ͖3A7Ҿ0sIڐ5gL + odˉL~$9AkƠW@i2R*!6} D@~{#>{>>t'u(=wZ:wdS{o}cod(iԌl3S *mZ7Zw 9 m5JB7fP˙K]5u*{(>q}MPz=CfnE}n5\A[^F+a;Gp93Hcl:RR۵9`cX^_bs^E_튏fy1ʞ,pX@SByh!ujv͹DID`QڶgGM%5xZkznOO7},wE6Y$ܝ8"ge;K`OG—;ͺg]* (omQ8n_٤X+&i;jZ*aXuX ӵ7 Iqy==ƛGU)T[9KSp/{)vzD-=po(= s6:/&}_ yL*($UqDË': [ᬖ礔ZqԜ:iݖvbn~[g\nt[ͺWng~Λ[b>楺,gXHO|?L-;c}&X؛;ӯo/aFz)gi)~^c\ci~2u_<z8Fe>'YGz#ْ>Zfm1{;FUgeQ’|^=Mzgz b?k0'ܱY]uӪ+{ITq2N&Cad'>Q[S)b_vWXpFEssg[; aOAF_s^bm*Jp$|!NoT՚-RԶډ(Y= 8au>GG$Jkzhϋ3JED;F5)6KcNsecWw<.bw;R#O +TJ"u q TH$irAƱ-~R +_R2|:}v*P&NW/ SMRe9{X3WeHLߥn^L(e֏LI_hQ9琡d4rs %WFWS#U.őPP?Wnry+y;|}BX /lu%8DRKo9ZJ>jyg_jݘ];Wfҟ?S.W|"19F|rۆѷlE +ob99BD'K z3[8Z3kB@ k'@b jfq";c hjh͢FX!nX'CKS;)?a$ZGml.o( +2P.,R$8y~8)vt"N {joPsH@}aAr\/Sײ#(ӎ5FoQVmkY0x[(sB\" i]8| cJ(pimgF^qlm\  a*&4՜4G&TRzSsp&Lx.`I;OHA_ e +zYD+"Vl<7TJ+3F?IY-c#fq$TFrZ*<㶺%W'C5ͻ+(Eu/a?*?EQ2E= O D!8K(n2#1}#A}ï9EU(˞56DOVDTv@8MdS +(`t8XpXX)",9uBRI-iI߲z[H-ҟsyE \t%.RcӬ:bQ:fЅdT `p&O>:L3g҅)2\o/7HaKtm.d o}Z՚]n{L6n:G ޙW"\qT_ټ],<"3wo볷]Yۆ8S ݀7P6v+A +ube d3KNQ$Ua{3F]R +-2 իJ3} Xدd^Ӽ,-${"cxCR$1G{,ѹ_v=IO t'؀vBF<&wC_7)(i2b?7{<]ks !pL>-f_3wno'_5TzD@]Zĝ=;3q? r!gtw+8Gߘ9r!QĜN,cƜGG lIL\-#SKTF>&>&ۄrL&ߒ~ +, +|I}RGTGd R<6>9&Lw 1mң=IfLz} |W +11У*s1si1ui1̽&>GupG?1cfp*-,}*4 [ٜ$xDvÞ0A&4G0 !"dAQ b1Wx8h:9gy$ U^p@'V 7/=vfRkx`#Ё.A@;R1|gdyaƝnuf?rPy"&:3(5uBFY}8< ۜ鏚X~  0 iDnT[{B>G{_1G <0MzG-xJA +-po R:JЎ R>V NcrRNN1v%K1^(C -=pB ӋxDKUQQK`lڼKj٣vHOݨYsK+ 6@1^P|'!LRMhbgbf⑤sv5S a,  rgsX?1jrWaF)rs/Nc172Ƭ5_?68mjY3Ja}{'oo~/N]mHx>=^>.3tY߂'s[\Y's|od|DzEOS68}XVϰ:;.M$MI]$\.vK~\GD \R\I.x).t}j}IsŁ]KK5)/r/r(/9E99k/p/\$P;J1.,ENs73142dj,٢S +Lߨ,.eT+X3Z hE Zir1@eWe@[303ݤQiǛN\L=t9 .V:p;q*n7d^0ԊS 5)xNmVwuxLhye7Ln©sm]PbCyDJͱz' B3.Hc,:qK={L+eP\vƄ>Yߡ"yw7IC&Nq)nj6^b7Wx}iWc&N4.NF4(dSs#^4 +wv?+tvnZ-;g[1c['+ 1r +El2 &ݾ%vj u,sܬ7ȏ0!ʤ\Kg /Tb]XM .?ZybPhꈺAC:I.Aj[/cdcB(J%);/E~-wj?<1w( $KX:؛;J:[LK;8뺱 ssGH{Hز%А0kvU +yJ޷P1s?Xje|a?!<î02l-g#}mI<H=3"]f8Ɛyі NCk7W"b|`X : HlfipROqNDxDF ݴVB/o=#$V&[pT~+תtb(f(Ks@Ǒ4N(ڡ!!d+hjĘ8l#%Tg/ɨGUi7 +%'ѭZ4)kU1e-ADfOlNT9wv ~vp;Q11x xX n߆뫆[W C9ܮNQP4 KZ+y5KNdlݍ>%JnwI+`v`&@Ɩ~j#e%](Xt8S¢DHP!ln EM$IMND~B4;jjvKҤkZn]|??g"(%܀8JɼA-q @NCvИ r<T @Gw&` Au*)5X.mT( uh % 'Z P-o⯳V탤igjw*(ujnƱnkthM,fx.5f4j}QftwTxZ?ֱȦ~_eNSnB [\S*dÚ~~ S7҇Gpd"sX= V9oҼb9մJ]{oJkF9BtƺTqjjB kֱ]nene`?q$/brvwwUȚ[h0W݆i1ʢؓ6ܯQ-J ,-aYKscu ӎj_P~3Uxmd>>]xa KvܞR}t폏ZNrBlG3݁SR~-U?o/nR^o/W2Yu\xUj5Ίk68kE '$ۦDZ8۵p[hőz4 >KGS/UG}(-`SƹMF  II#jJԆ6{3]%yg"lQ>n\s!ٜAk;mb[`1{m / m9#ExC R" $ч:Oi14Y4\GdS;_:ct]ؓ!s`ӌ֪E6R#=/Ę R,Xmv1qIָ!)ȮKFuy_Q]F4M .PCcݬD)o0c[BݓNRG`zk.fX~}Ίl{4 C)I;+>eq__ +W9\ +;q5=)wa8 sBc\+ UүdJAd;N?wä  +֡Z +T'ht٬YLٲqs0}T-qYN2oy߮~?H C'n 閜2Q)3ҟAFQiB +1F%cHiPLP4!v[ms)d[;Tn3nz%7;o=H5&2[kHsyϦTsrЙ7Av0k+>y+'*ˬ75RÒ3.qgdDnR>7'g]Щ{,kE +6$+$/(DT]1G|ۜ'T;K5w2yl&;e  !gcZ(;W`:"S]cNA7'25\&6UOT#&{Lo6"[O9_]]6R5; l"gXѦ[YWmxJLPuGVoW1iMbwJi:% f5&WHule=.FggkכʕZM>ڿTLs\| c<"_dbP)m:D%-XDeu6-ҒHxdC ^LWw[k +SV >'7_"E&ZQ-D*?ϵ!$B}vBR.!%b-Lvީ5 !+]\RL -`^ɼx# +C/Vn"e#-0f$@~>dcHO>&(O3D7W6ts{^PK&w7W>D+xuhl YANo +^pB9؂2=E'|c*y3gB96ŽPT?a"kS*g(-hXenIwkq' +94H.k5%:08-_BT#KDO[j8n(ec-EFLThk2pqP~&P*}#Rr&P#CI%;J#YI=Ns *MJPQ^!]Pby9@ʅFfvST=So 4Uژ:$i-DzVr y5CV~i-?oYrA!ؕ}~3g9eT+ۮW o"uKޓ|22hNq4]>`k20:hFJ 8g#CN^†ޔOwHoU3_ a`*SHw6~ x]t t{q1"xrhu;TutJw5^'PIٴHa"Spu0yTҌJadG2fs膒GͿG7r!A&<﹋:=zTq"QZcdEUxr.BC84+ j&`d%-uK?dʔP6َ:|\wPCTZ(kLDabhc1lH*kM$C~.1XShjre[=5w RKT͞qғnֹy.kdc.^ !δ~]Fmj" tH>4vbc탭mG[G^$҅G#}3#>>ˢٍ_?f6le# @RДB$"I6$(EDD4 FJ9y;KMy^^n&?L{`tެ!  ,m}8RIeW<SbG ]o|T0կqva$\!.'8IɅO ,$ %>!y @%7'eمos작 ʹnV~僣 cxLiaa/̒Gҧw4(W~i];6pEHW43%^Y%u5^A>87#e&vamG͂1wG-}XbA0 |7G$YIYImhL I))IOd,y^0qĂCd{Fҋ;eP8QShJNP<8_ׇcUf$H$T#iQ$* cqC*l>Ttl}gZ0{Lai`j,Դўٗ E] M{ vjU]!nq2\Ii_`+}]|dIu ~ `YbNG`>\tt1j`>^ӽ?T`zbT[pRD%" +ZƑX3[5- TTfqsC QY8\UKx|-y>V`=Y oIz[/;] |J%J2n +PQjW~-PYWM$ "@ycOR:1Z0BPVGfL- r倌=3Լ+;#Wǣck(l,*d ]HkڼyτB59ʬue}V+?tSI2ɼSZS_-8KM"k\04ȸ"sTNQZjWƬຳ|-`Sf38%\0ȃoP"ZjL k濻hPG2^c Oݐ]U(JUCB;?ʊ>7Fq&FHP_]hm!Z"b~H88/;ĿW6mzH?);ieվy + Q:#mpՏ5oQ]^NS]~|K @Vkl#RgKkCM)] ч5BAزIAytl-++jW +Rz-E5}: KN5޳F_ʞ߂6`y8~BȕoF#@ wq!iq&WJeBl'yɵĖԝZ~ ڔve:plԔ%mPX_ +ˆY`;S!P@."7eɉrO+m_~*[WboX j̓(:􃾶ƚl(cR0܍\tol)H2EcUF0ۚR F$}akQбr"6V#?]gǤne[x).ggQb㹰j^aUe! %~M=;"v.樖u(Ɏ6UCĈu2rU׽H9HfFUgU7Ve"[rGKeu^ȳ;LX'ڷ +vƊ4J?Z\@g;PUŎk{};+eAUܱECĮZm-DT*q츞O7qG."6ުVA ]I21 V4wRVPP{ZL +GKdy+VKClٰPd;Dv16iz}HZCgQtdIL-BWS,K1$h3J+ :f7uZ58O(xX~b|r?ىo [OBԀֆ˪ F5ϫ!X1&E8fqpQ4,!:\u_"*&.6̽(qPqI!-j-]ʙرt%xXww~G0#S, +fUpS !]*rd/Ca aL8b)q huY+~pJd&nj`%i\㥏/YeJSĆQ)HjSda3Y Z5/w'0核AS$IhHV@]C28-d6m9z%)V uK+n{H" +捄2&N"l]k"aB{K鋰wUEkSx92`9KQ9!Q~#  N4 }=U AqK6gdܲ0TCRrB+XunΥ#Zpy؉!nʥWpyL;q2ԃ:!T3a,@2:hըh\.Uj+\v)$5N)¯}hW,RU5:t7 +) ztua H `c+| FX{e$ :6*VXd,Nddk֎brи6U|=yW\Ko8  +2lN7n v{TE5`I&kvg)ԗ4tW7kD.T  }Yag\-B"'Tбu&tP`FNo.6ssbo9J7F,̲ .\>5U%^pjRqVũ~AD9OäU],K{9 +^!4+j Hes+0HzlE\:k2;=3k%LT!8!Ṟip '/ض@]2؃y^Ex#8R3K T){#փfo=T?8t[̞pēI+cʩ&.Ǘ +ڼ[(&|@OllBo'8:g:S\%4,c03 Mj]ߡa301%&f! X(v\j*Y~"_#z ΀z] +E5*YP ]Z&uviq'q zC=ZQExmJ@V"9`$O:pz'g:#!DOƉh첵:B +5D;S]ۭ_-ntusۚU&_z1~UY8H!=/ wcgB y%eW%c"Ԝt5wL*}?l`Z)7)wn( l D7s(:tɭT>B4ŒaXݸFdDhMc06ED}:R>,a )  S)t#zUth*563BDEd!zZBhaFxaF6ƍ˄JEJ̴*#kB@J(;jBDG&Ҝ'F-q~y0HkJ +;}!ku87P FX3=xwCsi9yǩd{ڳwnHa5EkiP;G8[{MX ;fzx\V̻&ILjG+5< T1LJ +KX"l M`0DUiDKP-ZIjHڔk8ۥ1r5L&ul*jMTPK/1qy,Vip-SE.fyc孖9LtD`UnfE/:BՆbvП?܋eUB%Rsk"Ib#&\06)!P9~eL/ܚ{LcNDJYo> ?cgR(uhh}\{FW s`6ڜ[]GhAcߘCU`w>}g RB,xi],=aܪhTeG_)I|@f T.pa>T^*n٨y#ZpO4!R]g _!̞Qk <VuA +˯5yk41fZ[Ł>'0\YfXD3 *rX9bJ+Fߋ +|@GNN#U$tptX'G5c~(lM@m (G2)#E8j az8;֡ %`QKC1;Bx'ڠ@pԜݴȕN#=NVN)l,%KGi f.kӒ.v= +k6BLM*:g";6 9 RP+Uo2SpC~BfJ]pEmVh:I*/)'†NcECtwHܓτZh8ބ=u۩`iڇ> <)6ך.4c\pMvu,0@+}8 +8 \k90"w }DI@NPxt +'zm]p/4?I&OO< S9RK+tv 2'}$n0Vb4_k`/]c:$˳fZ7Sr/:c C>VK\XLax +'LQu*O[q +~v7507rV6D #_^R;D\O4\̾+XbŎ`l̯3MEV]%r:qY+ pXYTpđo9ϭfY ag%˵C2w@ƞL1QrY5/2\:nò{"F80x")(lu(SaI.laK.-uᶒIwD.yow8Y<(03S<+w]]g |)HEmuK;/j6sC˶pN2EX:ePz['2h I_hE(!)o:(omXGzᳪa7S+7Qe<7,,'HFABނegהu}%mD5(}%*y!eJ.gH M`F]laExpGb| kQtV J'1pY#sTĊ(*]Vh^@6iF\z}ޅTp05_]w^F9>X= +/9/6"䡗XW(!2^֋VnJ0kDc̦8v(+KXiƦIc< &[mzhӪ34t ZԞCVkavZ>>m{msyhƧcsTl^D՝fð;gOPgO8AeWjIOGQ/7cHZ\xX⡼_cbzfvmvy+6tKF?wG@_.F\x5| 5 q?;B@5d mGD-=&9 P1z\17t城[=)`"F9L+d* Qn j)䣸:Շ@Ş8=u$;v75Unt;ZgXe!5HD;o]_VFx'$/X ɋvE^8y6wj|И ]S +1cb⦟Pw=gu<nXM |ڶ31??N-`"!5 a5nOkKN^0>wvX{r&)L%Š0#N$ ģ}#NڴzM' $c':JADM)w w Le VЖ-bF &쓎k7;^ڵƶk`O/Qt$wɩwOܹDG4=:c8\}}kS>ݑ{co/O>U4o̎>*x3&'4X駜-1&ku/00 23W u _~kk-ڑ%6q/y΍~ҶN_Sg?TmlL|Pへ1>+JsEGLNM:i0owQ8!"QN7fmv0ڨΊ4ҫJ\l"k.XDG0 գR o(32fpUЖZ hWc9datη"O!Α=%R'M!A]9{!N@M bAPI[%3;.fO:4VpҎ>6 +̏-%x~. +P˓#D\qD}wL;N :\f^k<;~jRMBn1Zrjn9b%/)!3Px9uۋֆt$ʉ(p`S#t^.CVj;c~8yb=ʓ haf0%׷[- k0Z]x@+ ?>#s,@03B?{N-ZBWݍzo?y@ ~M)&FkuCUm"E_ri?и>rᵍZק<^H}--%ݤ5=ߚ0G y^\3]1ژB{eD2QMpQ8>ɎGO~=zyR+l9yNÏrs{/83}OEj, +yte +Ig㣓)0X!W_06=Dcx}b`6#g\Oo6g}< 3p% sIȩ)Bzګ9s9f" C}6l> țs}^P = /qӒWM,vKئs%K1EʭXUOk9jgsCpDvFde]._&z )}@Pn#)dlobio?@ufzfv 01gJIi2 P 3ȑXu9Z]FkwخlljWjlZ|ʐݽ]пu⟳߉#">/wzɇy_WaqLjx<aQHxr<)t f %B-X'yLG!=xV)}-?rŎ'W/=,2>#}kG/J|">Q#kF`ġRCћ;'ϓ0K)iBL0J8Ӣ[cN1`όB(A؝:ƙM-'87Ke<$hp0G^Ǔ3Qx(צ9R<&1r O`DBmg1_&N_:0ԫ C 61˃ #&D:GFV=w(N6FwRLXN:2 tlG̍w Ϗ{FMI{3ѩ{.P)ۙ63̔}7kv줴e"Nr{}RvzSޝy߽,J?)e?}%st,mN 3)YM|S3$}WP;?@jҽz;J=~)NS';=$^'49^JA!5Nnmq!''IHAO&ORYOnCMJ^3vLRIWɃ:b=fMfYم,W,qHLɞGEPpLI9qP.ZHWGW=<ܴBp}= F" qnP=$*zJ.Q[1ƫ# )v%p>@c%6*rNj9ߦYlIUVU6zA0+nbYZɛO]gYlJSmru"Z=De`.@6cZ3k=~]C3JZ13*'Vpv$à[qpT`*ڍ䘟 b-tT%\Q*?x6y>?˧C@?+I碙W8Iii5ڏ0d Rҽ{Ƕ\l…#߅^k'Y~ISvE BftB?Рsm,Pm( +t^ZVf1hN^ ɓG IS# ^BU,2qW: jI=bӹڀqi]вȜdɞv5aOBF0cz0;Ӫ$ Zq~R,-bZR-)휣FYO@G\&M:'{6ΆhLlYȯnx-xᅁŰ @WD)7)_2r4>C1o,r"r cyLgӯ S+Ap^kPշP,ƼcDTo'  +.3M j]/=1\gouz\ޘ5(W)7 = ?06-Mz}7o᭲Ds^>1VU$m|jyqq0 0gxy7J ܻ@Ƚ6^ MN(!צr,%'n1g𹋈jiuH z}/^s<CV0dʱ&'E6wl$U Q#3d8j4!_Z5Q}u5z4+ZVg-Q۔#wV8eIk>)')K%'$#71G ЊeYsh ;4Yj3@@Wѹg{4&̓3%klo{Ѕj9G~iK:~}wXZ7ύ Y\ZU>cq =?j0ܹ"ZKTҨTs\҂}2w[[c]烙n#{h)JAYG${.M023S~8]uDuv[o d,湛bZ^mK  ͻ]h Dq{xyC%ѝ#f '+ZDT&|ډ*kc/y>O LyolNV)[j,QNG=2u/TJT~>>B?X/;s(+_=qh󲟥wPZ8}}}/0 +´(Ϳ5uV̹tʝзAf)b| )wO0f\C/ij|'a~W'U7UӓOTS3yKcydki|so_#ƚ'全: q x+0»_"W;\$1ߕ矢fl?:H2+>3%Kn =C5^*%FO|<δuq5V]1x[c#s94B94ŲԹ;{}>%yAV]Mwmnܥ`gN5}@43 lrG<^_'d B IQ? 6 +pfA3)"y&qĖ+)ainm۶m۶m۶m۶m{so9sMļ]?*Z+WfV^\cˠ,t%.ˑ. +R鋚.f. O.ߡveoAW+*nBnhʻEcnϖGH];PSzP=^ &@@#%`|AYg +d\8@84^ucAYt͌^ЛN*Z3ʂdueFiB%7iD{9[91|%Ehy-4o:Ј}Qx]FjEڗ;D*_kR\SH*?bGL%w]ג4%lπP G}SuLzUNtfP"6xWS4Ȝ]CgAj_ +D3V-?Aי +T1=+GDZjta0O:NkGѬh!ai4^QI긟<ę +MUkc6Z74fc)i2JZ"  AeJx1FSX1fC,/_IEtU+{9hwXb;α;"v!ג=UY~;Zi_+oa_~@?Mmqft}?0PMXuSAH4Em˹vb3FdZgLB)pvGt_EBƑĉ-#-v:ѣthʪG u}Z\)wJ]hj6S*)HR@K :*[>MTt"׮Xbn1[d1"yG<- > FFpQ`'nSP6W<΂W>8hh0[̅؄ ybׇi9We}*A|vT<$ZJv܆"X;kI.Y?#s[2nHX!/cvC(ͅn0lEkd0aIČ_@ĢX R."%`MSVHNOjfp`b_DmxZ +4GA==z[ı8_=Ş$u7?,e=/kkȍ%GDmaށP؃LaBM'rѕsdeyrղvui3e)=$sx0*#ªp+e*"FR䣽n>Cn/F3*WM 7&K ?qď&U8?vمہہQw w,ѱ ێ".kKRuS̀Ѱ/2{њarY!7^ZHvX-A ɞKw($K.a!MLΙim +EE-͑jo:s8aUuL!+Fe%t~[fU7eze.OS7dVoOoy}:4=pFw!`=}p=c \Pfn ( + jSY\o&IJN'[ӗ]qdNg=1;려 7XD^H%{Rk+[ UG-f&E0㾕@ږE[޻\Il]P,qZSXaxVD΋{켢wUMJ"&a|_0m~J u4|{@pT0락̑bl`w%i0v 6sq6%7H@ٴD~k*τ 1 |++C 1~>̻wEF-0L&S#揍jaE ^3ؙ bU\x>7n 8u1bP_!3WСsF}Wگh'P@=Oxu N~uiRҢRgi;/B/9E$sooiD"(L J +F8 E(F8Z<Һ$C-M)"fcCHNxz?a<CdNeB&.̙% NI:ҚwDɓl\m#?QK_ul̵\X7Y;+lzp *pp,9LӠ.epXEmQ\Zjt"S> 9,0K%[4K`4Vn#COލ@"F#Er/0#v\ w4? D8w|G$ؖw`c/=1e!'tC8|lQMod=}:rEF +8+iiW-u 8һܔ/er_ 溸oHB`'b!lx.3hcs'Fae'~LC`!5D;uWȹ7fC-p:[>#ħu+ea2rSw\/Yr_ɂˀ\<$=c)s=wrRm G WҺRb̲X+]!'Y.|ȓ-_3q.!3m\ȓNloۤ9'M'=IG➴#=IPv(i;d٭W9(%M'l:F .9P .eqE(AzKT_br-Qޖ4+Vp"mebg'8nBB{iOQ8kwh¦>h"0Ov<:hގAԹFu!, 1mƗ2D|9J8ja0` ET^ Ռ3nK-^Yg٣[f9@[JD'x qC:`O dHRGˏ8ѓ JX-R;_.m\:Y$/O8`p +cm/-cOx]sR"?>6QT\YvcJ800<]0o kǻxҔa^AdqPJ_qpt_җ߈"eqR,.Ӆ#ngeR7Y m wٰcb`YSt;`q6ofܹ6&ؔ_\$5/!m +167 wG 2l4ƶRPE3z+pj- 8#enup1ٖ<٧@u[vGpkKs&Ȳu-3ij}e_>*cX^7AR$oa۸, pNRe8dcjvWؓ +ޔ@_.]qˮ +@h,ܦ?q?!//|:/,$~3wќX{H7&6-wGwuv.Z>~0n2~3ٹIy;%%;Jۻj- dR +>.[/AJ{KI4bMWhB9d"/>@KK_D~{NmaR_9iO9P9q!}JZZ9a +I HTKFͳH$*Ev,yEQ1Y{しUP,zEK>j^Ua,OO=yTUKF_Kͧ..]*T{6AxUSg6mԪGn6J*+j0S?)Xg1Ec9F^'?Bu;Q 78ԯKR 𳪾YG.{?>7<'xv_+X\ZŶBo[{s>[0"D6߭&[ۀ7q_&@zLߙzL;&c`?ȡfӜHz}&%m㸖~_,<-1وƴbà [fV%UaU(֖PZΪ1f)j WPVqi^JW*_]ު/ɹ-ί}r艹-z>Wv)H6]iX&f)h%e#*8-J|ȀE>C_ l>ic-V*|crIxuo}V-c![m3;:.yIx`qN5c!,{"{x8P_ߔg& hv[~etGin4= ᾜޟEk}6ЕsIUXW]]W + +,.Ů\V}J[g|[0{ǥ+^ {Y"- -Wθ%g$n}yi+k{ȸ=UBZR9LPNY’U>K8/$R{C`l[R +zq0Z (܊zl@mpN0ؚ7 ,dLN,+BB[WtRҖ& x-;M)Z XvxHe;qPѶa#^Nҥ+՟[pBL>ww.Cj_ +Kk + +:zJQwF~ڊ$W1syj[Lmt+o?A1LJ5ba29worGFw"ٞp3w@+8{,+}UfOޘ~mu7t] K,}+oPïR[Tp[89O40Qp>K1UۜۜTg˦W{{_Ο~뤆ӋN̅;+~WtԘJVA}xҗJɿ EJ x :J1ŞKWNFI1iFRK*# 'K;Iq>J:˸cC8rx{⡑Q,ĩ">Rm +*"SUK_+'J?C#(ja]X I?:>7? (87嶈n[8Ɣ88\2IϪAfZڅJu`,~$B7lqEOV)֮.42/-lGBu|OBw~a)1Ubhw~s#?I,\swޠ|՜WT!'QΌ]~lOQ vCuܹypهF/7;VoF:ʽd+g/Y>_7`H+-93 + S>xP 'D?:nfFC8 |qyqV7bafөTOQwob1k7UZSަM^#/̘'CvvDj1\ݏ2DP =!!J~wN*jr=)iA bόO.Wprh,I|s (&/J]8rJ D[Woԕ tNV0>p*;*{|ܟ|P8eK{*hV[p4ZUMj(|橺SvԀ">7y$<f6 :}KߐIM-X2:cy(\bfo^Q}nl 1; H/ +K%bjTzcucO@Y"$!5ջ f)> \?9%??3}?h^>3Pfb]@enC`v)tqOw9א۫ǪcZ7u^(Dpsг燀vs G)Z݀~o;NzGgU'8$b6UXv]GJP•YzVa8#Fh*2܂tv tqd3{jR`ţ q}%%NqanUJokjtaLɩqFܿ+s$hk/rJq}x3lb<ij^|#^Bd3X<[8 t#Ma#;^-j11ـhzC sﱓNY8_Sq8Ț,5u** + F8ak ~T(oPu@'l\%=|"m^Ul1MfQ nyPxx @o}o]cųGk0 jָ$EoKw P7*"OԇLtCdFgMU2;ˌPt8zWR?u^]IK8MFK8gugQDWdN>WٟEn]uK*DIZDF8RWR-J)1J1G>$"m54{Pa'm~ُ)QI7`2 .,El$H[/<(ݓyİLM6d엂'E/yh:+ECJvtwtMJҷ`t?@[2:C[V#֏f> +eg{k_SWX+A!cr$EQ~b4!&J%܎9ƢN&pI -ɔc4BG#9 UQSD߮_ ˢEG%=Ȋ peᔩꌵg*2FéTf$e=A9Q5=6r Fġ`5-OCmXlc5ZaP=d'\Ds i9P{^4Qtܫ Su؄ c&uFhjtY:=F]fbN0M4<؆fk>_eV= 1xD*`p3RMlrbp<,yY1Z + 8/k&:T:tk3@RGBD7ܿ-s [H2(TPfU(M-wBYOsf(IPi,5hA-5P=-QvV⼱|A-Q18v.aQQ,3TSv#uT3H # +KVȃ,|X{&=Y Vi"4:l Qx.D {|Aϴ;VކZ{ʍ8ߌ*rAz,Wj)[ge|^pDsNdmYQ?/ +-+! ?r9Ŝ]]~U~[/\o]zGJ]v&9;xLF:YGx2u'&$lJvh }G&-*蛨dU`+CT/GfQ/xpS ?]8۸khK&T#tE|c`DhAez8#H}T#+sKH&5ᒐ:3G.~_P[m?ЅAm‹fR9\WTPKIyHGh#keVĄgB?JL  +xq8p?/_X noG҄aPuG< ΌA4߮X O]c#2?qd67~[=<֘6 +gHBAmOӳ:a(RaTCY""9>Gū)E& /JQ8d.&@*hqQTLVY/< + +@+ +9_BFi!{UN784g;vizz^OaX掋#t5]wGp7cC|ȨU6a? 0%Q'T8Ie;@m"U1 +UZD۵qV9j9M2rlY{w1|]γ'N_nTmFPAn:XDO}cqFnKF7DnV:d^Xnf`nb\nkEC3wnzyvŵ`,MtXwj3PwГXս*Y-ǿ~>GN$;=bFXD+'֍9TwaNW-ÏLai6- H,-Hv YPqodfQPx(|<=ҿ>#Dzp8#Wpχ d2cKX]σF5>mztQŸe ۗHʕ0ALIؒgNZH+ud)l)B{xq%]uX侇[L=0420#VϭV^h/1b8M̮ߩV\^Bk8%.]k"ɯ tI^ߍY[m{r]MQZ)&sW8\Hp/0\'찓O" ̑I2qyM৕sF? WK ю7 a7v8閊A6œ\SˉRɌd,h7+" $;JR;5O/du[P?K~|7J@ZƩaW'u, +gu hTswLw2^7*8CN 1Fhp=`>Y +YmpbdZϊhVݲeWM6AdaVwfEi.:/0\陬o3w-z$>nvo|^bBڤ5|R3]y2O9脜b}BȲ:%g [u!Ks bWnQj@10JP ^č/wEܛ~@s;ҽ wr"9YK6.?Șl\aR#So"s+ċvْK~YGɤ155x|!hèSco6)%L~0BWy̠mEZl]ҋyؠbL.0S*+VbqӡUW꘶]u~|rn+&OT.@X=Yd1Wv|K/d-.-“q>SeЅ*4ۛJ],&[ʻ+iwV$sG'avw6ٳ~&zb _toᛕ!5ќ{c@=z{'Mʄ1] +RZs"YA;RZP[m +}\K3j"&͢dh]Ҷޘ_h O9A~~r3B_jc~vo[@3yd'Qm$RYc8֔:K+ؿԡW=ԃ"M>7ԁb ->T"bsdmF!A[M! ٽǛ5#PGfZH5&Y܎k<3ًoO ٟPT^q?_@/qlN` & WÊc񈉣k2"}p1L|6nk9kp1:L< 3GsmW RNoŞ_8bVN.\c8ix##zIW333dL'ɨsƲrC rT`>RV>i,!܊r oz!;]dHZ uH QJ ͪ;:5֖:6ȎKx KxN&jl)2jJ*6`W*phU4*iUDjkFm^2Q*J)7JV +MڪҬz>5.< x7V7"x]0)gLJqS&V%k1V֓j"1+?&1xt) SZ`j7'+Kdgv7y"j06)xvK][[96Ղܘ_+cl>/fM:C&.xvc3'Zuis?L<޴umroY<r3G8-5,»R8GЁR28eG*z8_<͢(9q +1PXaqMD3P>'^&e`zJ0Xml/;Z*9vv`f{3-^ް^466ŭ{ԗJErUp#-&)f4_bsP<6^ƾ~ '̱q0fuBQAU2K0k˚4wIb޻.f7FU?ȗMi\dq~Ѣ &G1<ƶ/!prULtF`F _VgH] [~6#,zPzS R6q+K0}v idͅUwGvڭeTz?@0P +5 !='Z66?=Jbd[jIwc.!@.v *ZavuAQpxH +UJqX5J[rƽ +͛InW;uw~p9"~d җE^ R͝;W|{(EYV2?zf ]3a͗-vLTp9\x)Azp]. s\~a_*2e{FS+C]$Iܒ1% yAZ?wlFQJ.R6LlsL{1;1~e ':6_^-ܰؼ4m3K~:rv' +>e`6/Ӓ>ḋ21Z\‡ \,c0'Œ^qz7hږgTu#ʶ{'ˠ{|<~uӅ*.LG:.鼨P:yERY OQ9&N2HH0 Dd:AAI9tN@N^Diú4nVUNi~nnm7Go׷񧟏t +8v a^ڀhFE\h{Uڴ +(1(tOM~޳ zm7FQC,,'hs-QTzop$Hhf&l,eG᧴9Ÿpv")nc_U[D۰#ĵ bF1"aRu6s@=$h=ev}3P?jlc*i&K/cQ|1fd 6ܒFQ4kzH텺Vm-m؎ xp_ϯRGڟ쓲)N)yxO;2Vr;aFmaJ4e,:2ȱqNXvќn7! +[^ތqm)mԶv7bzizp{(6FC/+#nH +%+P0~"I3Q9xҌ6*]T#Jd1[(P/@9kܶL|mj_Z9-sܶ +D'%lF.Jz=b$HdH'ǫD; E)G9'^8Tq(YmJ8q 2ʻ@9_b7-ODԺqi-M\[ʷ,j*D 0URL{gt?3eH}hU1<Ũ7`uy|nc"ǬR]=M7+?m{l㍃?b)Ƭ  s5`0МҐN欎RO{<>f5攪s J2e{@Q!`N~'A(M8c˂TrwSmU)"eͫ~sP5Oot3nY]X!ä!qǞJUy\Ɩ6Ic*yI++? Ml݆ףS屹=>S4UX)c;7R!.njg$y”?;9F9HWyzu#'@7b?C%~K;w*$9"NJ.MiTl+UjRشIe~"fcXˌ.TSո%C@z +ƕF>aR -.DsdR{a>T(>TsH: jFM6jfcV$O Wn br(4s_]M=}^Y>>a? +3 T<tV,vl([4 2%YB+ z0v0pJUV V )VI,VI2jigduZtV pnVmV Z.%,:}lOKg42I|? :;*KO `G&U-ksknkUܚq_9S-Q 0F`щdb14`n2G +4DئF%50! FIl !I %5P!ņ2DGIf YIfDvHjBj ڢBXPs|jvK^mh32`R¬&FZ1H1TbR-avOgvcvb~| +[]]!]X*,gf*4 {,,cTA,ląٕ "<"El\Bj%O( \ CZ +bK.%ܒ #X`&@#\Cr % w9}gQv4օZ]-*tJ&'| JB bL_*h*H"hK2QU%ܢ]@ff +E+ MAXcޤ گ0dT_]Je3?MY zȺ1r:9A$g+g<P&;4lcM2֮H֕GDnթ@j UE-`P@/ߖlŸu[/7ba,q7,dhv<|rp1F;9 +FCsmbpI4 BƜ:f¸RfbBɶ\@y{Tr"Iaǚ̻fCeqZLڹpżosءؒڎ"}2DziwȁAn 59e!:<;Y%lg Agz"?E R + dfK[N!qr~8}sCVЊ\HVRʋd"JgKi)Z@OznΨHmj-jwPv}6o(DTls TZwv~,7["UI|3~}F9ANahFRԞ{H:#,cݩ;V_A=ƳڳF=wLeuLu +Z 8y{s"?O=xR׹Ȧ(~l&. +TY-"JKj m `UPɥnɱٰ +9Rbau.bbA_?@O}K-Gygsw@aVbzĝb XԝItEL1gXpfhܪ mPܩRԫs%"K +G)'AJjj|dRb4ݨzw摶PiQ{CT;_*$bYz 1cB!{7%C#lRkS˽# +\o œ§]bM~[oΧRd5crAgD3)jXr\? 򟼣?av 5)Um-5Y> !%jBnJ`oKףKY_c͢۾s}λ} ifV:B"]=m2:l"aLS+_1br1жrW$m޾x(aM`Vٲ?r?u >x_شaÆK׶p9C&#:`9ymM ԡ;)_Jel?/9`J)$~1 |9VAsŴQ'JvW't+·R 2u٨**67r3ȼyù,l8RF\`7x08vEX+۪yr|ɓ|sBP1Z5ȓTZ4U'j(Syq~1ɾ[.erHxW ֢1Yʖ5;蹃 ]uF"dnrkw1c&)1_cK'7 y3"4z:JS03?eK'd~a3dd)j8S0t6w;Z#eum|}k +CZZ@e*(B8ffFoj~e]LT^)1ug۵+Onхsb߿n ̬匓ou˻m?1,RdCmW^pԶ6} NkPE{Eۢ=x\o^\pYN^ u_՝ 'l>gݎ`6m/G>93M/muW {뢟&NlEpM4qǘ̼ز3Um4ġfIq&ڸCTDԡ|G箔lDK&mC攽OL>(ʩ\2:iiuJ,FeUKgNңR!Q m.=5;G.pu8Hr'GI 1vBH龕Vu&):qEM +bydUz&+T95nf;Ѿ;l 9̳?eq/OyL_X-$2S7x5ľrɼC' u_MꃫR,~e\׽ 1 C[4Isx+\3`q*JK_O5UsgQt-6cAV㚻 5f(Uޏ-w=@9|L*J 63L1/0qa呷'n*[?U1rجM3 \E@uxex{ +?z*G?N^40|YVNDU:v-L㲐t˫B-wfn[Fs|/@3A{tv1v/vj0\FzW%x2ss Wh$U!cq1\4Jqqڣ<к3KU*nm.>u_=hT*A2*-eIeEQ5,?7f5.?3/}ML}Ti5-I~<צg]xS<|sQ2-ӫ}S}ML׾y>-ޥmF6=(Q21V>qW;H0\}Da L*1jN-6E lEkiu Nv"&w0&o2;Y̱91:Qkvr5<ۙ-uIG9SϤkt3~e0/(_BH#QNĽQ\ 6M G$^YGn?.c􂰣WڄjPWߘB=cNzslEij'jXx'G<\JX(\+F/J_YVUvd%*2gsqdz[SJT9؅onٯX fF.'&kDľ8"1_TLuiŷIS&N1, 3H6%L&8edjEJ謙8m֤Ǥ׈)Y-%%W? 3en,Q~ϩx2/@kJd LyM6sJ0QII,z#eZuaC $Kx92~UAqAcKآ(uE!m9UIj ^3nCPO_#t%ҍM pP{]؁=r{bb8L p11uw[@W|LRԏENLI2fK~3μڑfj"N VCor>XQE=0*.{2)r?إGE /y- +?_zr9KoNN_W^Vw1`泍|o"2Wj^XUYAɞ,[{"k4t-nѝ3a9^OܢucV0ct$#! Qc-iR\LlfKuj-SlVm kW]=xoDmȚ=uMVltbWImsmu6XȀ$fϱ@3КU]q㤣5"䃖kD1TQIKI(ejt#̓du)V1L,5EL*:ENS.$, KLhz\%U|YOTwG ȏ_1^@Ff w_$߰D'7qa wI)$`~r`Kx4/fV^ٲπÇhowRlycuj}(]'B̈]F;y +wZ=Q{Ʋ9狣 tczuK,ǂtX4ވZD7u/YKSs$t-QT)!ʤ HIڼ7(m$9A~-䅴vVf/&p-8~t`` VD17%=E}KN&~Hʱ -U{7$bVThkf6 + Cj*o`_I(vD׏IQ[@&{Ns[Y6 =if};޾#| /q?"ʓi~fQ%ZO.sE uDzнځA=1=ir)2 s?sJ@0"GMbHrkrb ĊN'F@+4ɄT^IF+eQ  `O_2^%li}!׈{%zsΠ j9a׃o'ۓGT ")<ʃuʵ'/]~F~pAn v aKl-'   +@ + +nC\ h4 +@ +  + F` +AРh@ 4 +`!h +V||a>`0` |@ ;֫͒RK5Tm[| `c 06@F]ŘŌtfJ!B` +*6E;&HY%`.a7B_6BG6b6B @_NTNH`0ӵOT TT+g@з `A" +T?: *4,0(-08-0XÕμ=_}-_o(1nO.=(((MA@aזN+faA?Hh(0*Th+(\Ao\u` + + +%J:ELAРBhMh*h7*5ʵFBvAР06 +ԭ +Ej0h" +>[?؇"[!A/ԎG:œPUrk C}?E .N!XV j(:g'9 ~+ +Ӂ(zDrD(="|>qS/; +;|Ė?hO7|LD-LuH+Q ⢋#4~LJKD T7ŎˁIȷ(G/Eg8L|$KAOR>2h8qF`11;,;d%pߍ*R}EE0 +~ +>*# +N{Y0Fœ!oFF+Qăaphx8 +?>},A%l'; r_ lO Z\ool +E2,1e`:p (nB |77\Lϟر: Ѩf`aBc8؆hXxE=|jF,Th9ɶ%ဵk4?5{(;$٩]sK^Jȡ柼)B.;M|-"^AoTr&tkV2v SxDj$c: +^ r8 +wFUL˅r4 y6n6`a?s>dshT\Tdm + +v˅UK*Y~`˹ fi9 4`}veMF7IȽ(Џ e!`S>Ԫ<~]8@IA#Nj#4!D=#d4Ⱥ~^ܢP~s1? +jȪUMm0&*˯,- |.I"e'T(NU㈁C;JML1qs43̖21{{wFoHc1p$,!/I!cF"˜K:c$r܁aHX/}_VΒ0&(Emk[fR*~ʸ'*G (v LRIԢR2MYNHJ;̽; +xN>L ]Tt]B] hAG9EO2ŲEeNm\…_<,fΚ ͆YMrNFuYZϜaLCS&fdD4ddkYt]*2 EsIP^3v +HYzpJ9m +aej?v'ZQnhҕmmӓz$gz0 qZCpўqM… +1vd_wyI#@q76nFF&SUJAhl=^J/X .m ʝWCA@iIkKM liaM a +;|Pn' +,Px>0'Y +j40Zh֒0{a=IM DKOp*G8^gb3JV% -m@@&8][y~7*]g\4:1FxGx{ELDN؄%lGiT3>㿽OVyfۖ +hh%k\l we AgI2,ZSb/M#i$U^qXvhRm4"lZ%UG4:?OzOk,X dLk%MO _Ha\j# i `2f(V |l&3S\bfFf67<{ Fuԁ?Z1,'*4O>9mDYB)($DJA8!?QRT{w3E$|bK"UHmeHؑǺ66{Ģ 5sLɁ&WHnUH5+X͕LZjNu&FS5gOIUSQ8# *ZqO-{ȱz$_V.A"@ 3mWVʬ/U.'ŤN&hӠ:9J7#sҒ76{bv:LǦ ?Oe!"Z{WCwpwX@Co͚AɒWw-qwUt U+N؃N} 5x2ړOGƘ o{ :)9J1zՔ:m^j3޾XOᾄK‡ t#\BU]*U=MLɕ4((N\[^q'1fTG[Ӓ(yS+_1CPwHɩkwfXۄ@v N:f&>,4#f|=fY;ܥue2|N5M/y^ SIxMFVSG6L}t09޵YgK% lWLmݹk{z,zcșVpXjmXџ EN@~N~FȮ ez\]>\]0hn#,(OK޲97pG<aޏ2n_wzszQAx4C=WR0X^j޾206-\'U.m_ͱضa޵@@G#ܕ{Q{ЬU,=sy++[Jv6B^%jjJi"tD @uSRl9m9D^ (OB ˫g*Evwk61dϯ[ hy'+I7g>pN3> : )$T#`- R)@UU"7jrT5J8J#V]s'V:\Q`W?l~7l`=etMvC΍ަ:w]go\7{_5\~.65 ga2aE`|$S8u{$T{Y mfOꙋ,-h.ouW7M=J<ø]ܭjSK İ ] $?cFJی1S|xb/`ӭ+/oR?:0Nn_4oe^nPp̗ зˌfo0+e9Rx<#)HdZ0%G~ѪPVG?eEg` zazzo}CBlaK4^ (=3(C -y6x)_0_V@'$/_`4Ǒw L1_:Idd 0j-ǮN/ҨEVco"CVT5lEP; +]0dӈEW3*iBS  Q kBT|12|mhoPҐEWSET3SQm@.6z֫u:K}d%*Oț[s⊄ ɍ "{njt@ĉ%VGϑQސrF2ƣmu5lY`#o;=;lAwtP6_>'A?twC$w`,d`~;)̉[:{__F*Q=LТK7\Lţj%9|xA`E̓y8"O?L~hYQAI +/_Փ^."/xc }MXh :́I+RӦ(BMdvrI6%x7g8q!dW*"x&+"XQ +L`%2P]tI`'BPMxIQU~ED?\w"5%L4LNo +>@`xd9QQ%KWd'rEC{Ɇb%% ZNhՆ* K]YᄨJW4%EZY,"Q\$R!Z.:Qa//NtɌ*.";(PSGTU'R*Z(b%B(YmdFlIx  @`LVQ@=:i)6)pQvJ*D%4 +A8tŁUC"P鉵2;A +oV/yiIR eYj+킧Á?iI90OEȪ(?t$:hU[VH E% ,2:lvl.\|eGƿ[2\љ0ӻg]yA٩aQ Uwz0Qi(:FR|JXUlPvEC=BGf]2%i$SaEѮeFE f9#*dYlyɪ9+_Ad8r +¨;Wuq-˪oH {EvE4֚m3.bew@;߮tkJ%r<*Hd _'&p0 ҭ!%[J`lp(&nzR{X>5 X3ʠ_` 4'UXP Xms ++ ǚXhL 1SuRY0e#e4aƽT̺ n-IN+BiڮR ޅc *˺٭!Vܛ/3r~ AqG*iأ|s3`zqk+"AQ VPf +r7}u`r@gRK{3;}>' +^Qoޜ8 ]hKnm۶m۶>m۶m۶mw?1san+*YY^;+sMN[s5 +ɛi`8Bqc Z CpzCTxr2Dd`dF!I;MA&>i3xۭX}&̓1?C^u=6Y`˙ә a=1%ʈAȌOP=wb58Y"s Mog +'1'?ʌ0s.pS_(KhU1!yAJk-B=%LJgV9Gk|d-Kw:;Bxl2VPd̓yZ(ޅ5x$ux%{GC22Ɵcb9~a՞KNUllARy^UL-'۟_Q9jB{Li}eYYrTIrD6I$ ic@uAlq|L1gI\gk9T Y$ݤΩZ{WM@Kr{LUjhx5{|Ӫ=^Z+14凈/?*Khg kY0Є ]4$,8z'7%lxFb:t/ }|pLΞcRu߀.ISRd2kj_H'1a;\lfo;4;Ji #R:O2bIx]:8QN,1[qX9)X~m~zd2 GȀ#!x? 1\`}> ,3F/ВI؇8٠SA"NReH|5"ƍj=.r`|INA&?bO`9Ds_X":1ptdyC\17'G SIϰs.cE-J@ϤyN^ 74yx.$*ހ& 1ɡ9XB +`&Ϥ9zIhASRb9>#tK=y"GctES˿zHXVo8G#sВoM#EIo o0%_"hB ]y@I~:oӥbaǭ}29ysn(.F0aE̐]]P:`Aoj2ǥVy֔vC n eX$]it<6/F.=zU5*Cl}N}|UC-rг&|2P"]V9ܯB5Xyȥe^Q@Odz@;3>ƦjѬx4lkЅ+w73'%ۂ3\z$x7h `90~gOB~S!1zoL +R[NQc[/@ o Y gx9=J`3|HAϤnޅd龳ZlٜHXj[GnăFo1mރ +^MN>ϖD8Urlqvpe 2_ӥ@4A8՗&?%x><tљw;nфߒt2D\E|Fu\ +rYg¸x %|8Of!fj~*ADAnAhAdAr +v܈],Uon+dڍ\H(gDzwcU&P]։UX~|( #byRFxC8_''V?g$A@ m!J!..,h +$–*u? +g$b)8Ök޳m}H\ZH'$)vOޓ>ȹ;3Azsj9s9c{šwż;Bgj'6}֜;z;K{ Zch&ҲBh,m%,iSZ h)hSS5QaiP!,"@@EUddYdddYd9rf,Y+I2Ifdb}[JeI*Tuo'VV]'U_Ǯ_cB[#SD2"Rc*i~o봱FxB<ámaXv,vvh2Ht +$(QEl'WIګ(ԅ.,h_vYr՘a{KaF,nW7Q$5GCsJ\aw˷Ϯ|/׮i/_e_ 9%eߋ lmBbG}fFJ= cQBd2Y%ʼnĉA +yf9f-f[UhOQ FlFf +< + (;e^QO6ʣ7u[E`BmRP4tK &  jG{N1h߲PXg;6ɽSkٵҽ[9YIڇ:rGڣ&!߳dl%hGp#)d^ ^^ ^ ى \o TK`BB$K PX^ ["WB1W<.= pW\1<-ܑlhY80ћOOyQ@/I<S?}d󝚽u]}_~arLRcM(I:+ G[+WkyZR_d1Iɂ*ZWQbcI,r '!IH܀* '/9+VH0,](JPt +"+QK+9((y(u"+';+GQJ^Pn8d9HBYQ&p͈RbaFLϢΈQ(U?Vr`;f>/W*"7g0B00pwH|^IT;AƸוIWm"8F5yt'Z$NOBMsH\e8lf~jE9O? Uޡեt] \U`hT&P7IY~#, +Vwia6+?3@ɏu +ѣY?YcI&2;#֢YKG4Blf#4Wxׂv +;ؾ5f^ve]3\̒&۩i浱vYԡ=e<ŲЃdⲙ5YkqVǚk!u!t/4#(޼h' ~w7$YL2'3PiYL8]b,1-][3ABI Cc%Tp6K;=? *%XTxiE]Y$9Y1R݈h8> ebbvT9,U E+Uy!M"OaD3tbu"L2f@ur_t1cBЬ+A(am)2ݫqc#Ӻ!D;Ax~|?Qb!hb&TpJZEb4ZUP+:D9\ G5n9Nwow2uZyaIˊJpkG7KBSBC&B]&6j4Z^_2" 9ն[Wn53+\;6{M`q9NXy^$9{LR}ªEMǵ6zgTr}8ҺԘ؟5m$5~5\>Jù1mGunU=sqam]qqB9ގuz^r?<+W!Bz˻:av*[\+1 [?t֝VlM 2-`k'iUIV00UBR#QҒ +d]X:qLtS3F\Gn}_Ʌ@&qU 0lX>iT9:'-~:<9DX|3: "^F!Hk6cVe=\/ w!wa}]@t.DC?2^OieX/6$H9u& q9=l!I܀)E]vؑvT۟ +dFͿ0[k;Ǐ&l ε1VT&FH#L΂<Y}SWNohY6P7C: +p=bA`}董1h[6J1 Ȳ*zZF=;l;2A3=èDW tw_bcDi]8nGCi#sD!o_ :Dk%hu@3z+f-nrdZibtR3Dlv?&C"~^bp}2CKLv( +ʨ-㮱0j„2쿷Ä5.¨Ĩ1P" +ԝ˰ .%033D@C0vLzڃےۢڲB~K~P&/gH8,kNHs0큾lm3\O;@ͼq&:ҙ]u]R n[c (dzė)k@"((W) )m3,;֫Ư勗[WEċ+KUޓH,a*w͠U$Q"Q&v@\DEl .$~G4Ad}DES/0lإ'u5$=zFs8yojUMっ5H +J!WJNoxGWNoJt5` +%[kL//}?[+$q=AspW//D+'W$DiTWVQQ\DJ->`-6,U4P )@1-&&SVR|DB@%G#GBDYLXEIAP)WfDa+=Qp}@ޢ  c +tOw>,$51e11s;w I'ret=x6B"=\Gc39}9zڂwsPKxɱ I=Mt"NF-9dIb$IxS&)4Dv-$^GJ2P LLpsxoQ&] ]&U(5EB0K GQ܀-tynFB8" o רe*Ilp8(/V[)GrXJ.3 +6a1'BKɭ!i@#Ȏ(uuXTN;0}.Qn^3jT5 b\4\.,(16|ؗlP4 +!@ 0^ B'>W)c\Ż6W6_,+J5"Fe,Ĺ7K=I(%'3)iklJbnOddZ{.iA2swY7\M-@f$ՠAqUU"^[ʝxW0b%0%_^ "}rz2idWdkfǒ,H{f 1Y0agI!.0K#- qg!0V!V!nQlI4*RRsޗ |d}ӇPg%˄G=^Bˉ B#5  +h[WB#q0C %䇓rf~M@12 +Lћʤ+.$I{ 9A#R Q!R"ꪒR!Q b2eowΠ8qk~c;/uuRqqBYxipPD ?)~Єtz&j&uyѸ2j)ʲ2uƒ=E^68 gכםםםסkvGD"UGijEҕ&jAm-Fꎿ6Nֿ`a%k㶱\J uS +7(nn)fܲU-b^\::m-dytm\X8:fU/`x,# Ŭm<5ّ:=18ai]611Z ׶|k!vfL{S;5{X8<.71~Tf9V+z8J]T$nvCʙ?߄^pwh\8?7,i8FN~׆ ؜*_t/uŅ7#T O9î%Ƚۇ%F@]QD{2[b`EF 17wyFbY~9{:.5\:7r\8dD̽!"R2=} `޶`3lR:oA6'ʎG7)by兛r51e!;MRQ{*wTz/D[*4F#u n-芑l8|obuLX#$TJKc{DQ4x>(ok6*Z*ƫ.bZJaZT3-Ԛw,eXq+ŞXKHMB9*U$@EYX"e8&m3y <a-V5)77:Q)VC#- /.WĒjvw,GSPL:ReQttmjԑUcz4T3Аi@l؈]7TnP$g(kA\{%GeWxPyR*T|X +,CLQdAZ,dWZ"b)v'1&']^|+#WV釰X7WyFTTpLRe)eCol;Mmy ̈Ζ DZƷKĔ1+(`N/Qbaѯ0mna Mx, =94XL`zY m匵%<,>*5h?)}- ɓ +]pJz%-v-KNF ݓ +6PўU66E +稆GmZN1s՟Үa)vbA=B$u>͹eU^xja8tckok ,ae&TFsrt3>f"-` '3GX⣱JkGec8)Q+T͏gPoWp_UmU$DD@o{ Inr׍ľ2s /ǒYU ~²Mc Ú]A4tjhVhǾw/Z)ɫa8a7SطaxP>Yfc*F`N~݉v, 6Ev~nrĸ3^ pљ,<|g0#N % ƩA E ܍>`5;} ޷:*P}tr.n lԈAl4P&Pz]l`ߡ҃;vnj̡A @#{hX"[^QC'z4>C#o:WxG!<^/ܲ2y@9¿r\rD7?U +%̽{(0KG, +2̳H1 "̫࣑̩9 +KF=̿$}1oF4 +\č0CӾ{11U[k gCv ׿FG# /Љ9`ϣ  ,JPVg dRYY [WBg2[݇cfBEg#fg[?&c8GHsƆFI)S#~ә2ȾR ckC|< C+Cb g ڴ{( BX 3頥[fHEM 裐Bk轥qC70J轏o)CH2P B1K*kJ߬[ /aY0AC؅Bչ sս,ԈYqkD2ffE-/,OD4֠Ühgt *m;T2u``$B9J g Ns83:HM[/BIRC;D_8޻9Tw s::w[VW59TgÓA˅7S#)yp)[{‡=ձ9b!n/QP_ +{vJπa*{'*>̫dImVPm`V␜H'˲`V:Nc$Mt W9+4\&@O;G|1 +Bh=NƸwVOln3w ܮg7ܮdGndw&+pѝ쑶> nl;NygkPG%n*(T1FcU@TǐvDcH|Zj*t4w0"ɉAw8w3%⥰axRYĐd{8uPpb:5⣰!*1IIp<: b/B'}-JSΜ,ImO|:;i9y/Si+7N\HB\Y!2T{i1tm@=0e9%!=Jy[7-Kɍm[nGcA`_ޯz)^\ӜOt3E!96MnRrW ޭu`w;&/!!m4zr؈!]520`#>x|C!0v PnϨ0w0y]z@2;˜[;F_ UYTو\'mݫOAWk=?պnmLlG%,g4nGln:*nb*Jm8[Ȋں6'sJ NٽKƃw\Ϟvw(JfI:59e`22&ښBV@: 00&0=c&ˡ"jt,QR侈%D&+Edb#E=s1i|*\=QrA+.QN~/塿{0M6T,FgSҸlG7 K@N="mb o |itRqn}xN섽Z߲qZ6]hvbcb]6ɾZq *Q6;bqd7Ѿc"q!=Jo* B]Qj2I"}=SI/K j +Βj0>$=8I휜.}`Xȇp8< =Lpx4Q$/Fgx.Z5]<m1-DpG1t F1BeA4?gthj8چɞ<$oi!F?N,eBjir wjXc>lu ;& r #,\=Q\lp^+f5")zSL1^ҝLl(/0`]Nc[(Z1=_M ^`n=2'бY4u!=0=y||r n37&g\Fcy&Z7?^'t -hD>TZ|{ꌎC|˼-t]{W(VwRb=|&Af=ݦo.t|}k"7YtO7֛ЎDd$N1K$ۃ4;4pz@קtuHeIܼBg%Ejt8 @~tʑHAƩDill%]8x4؜}SgҬCnnEiZ5H-֡Mznӕz0M3^ʑNRHql#r@:CM圥}Ml7>Iछ9ۘR9:皓&{t9ԼZ;Yé:3IѿS"nۼ0ee<+dXFə dpK*2sLjqs-0%jZ]jӅZW~RC\gJҡcE$UH(c"ʶJ鎢Sm -'1b-ӥzn^#G!hsβ(SL̾tW/#Vi rtLRA/hG{a cT69>~)g>jWPhkHO: +W>>zƣcOp&wx#S,ӍA~q^ٸpGcn29"t^^Z!>z7$4_]=X pEOREΩ~ Z\L鱊*zsjd.V/jnY^їnt Q>ɟ"g}Ȧ.ɟΆa8Ga.vN|~+~B_a-/Nz;VXK]ZgL+BqB!CzJ9=>#}ٶ긏ŒJLpbfpےJ~xtA%"I[l[)]Ie_͒r;hKXw)rDH,,*cB iOWJY/{IOYI;j( |G8 0(@v~/Ƥ,8 |+^O԰ ]tD.}w.?*?()+Y7qy5ȗ7~RTqM7}iWW5ϖ9S;7riW-͛ g?V(-ð%'϶'fy=qٸOoX_[g.] <{N+N%#~/<74#ŽWl9=7s,6!245'`:î0@__ KAwSVsix_"d(i++DFu+-F>elYO- Ad"Mucy Vw9͡Wt*3{ޥٸ?ϨF]e]eEhZtèۑu,Ôx T- $Zƚףv몜 +d/9C\ ;A۴ +dwl}2e*|MP/_O?ɗ哤11DӚβn/Zw-q÷0  67#61SQF2j!)P%1!QL\P(X$?`'Je:gpx!k&ENF v8gvresf>z1;<{x~|u=4W,Dc 9Tm="drE2zl[ɢ<݈b/}G,5ۅl"Ỻ) ;caw +sNF־yQ Kj"hwF,ǒm .| b,r#^S E {5Fa9AJT-؋ ѳi{ij61UŵϨGCۅ_%U4_UXX>a볧G8RXopXq;S"€b$ZV/o< 䀘g.(Y'~jJp! |0}lG Z554c 3e {)Si sHaWL,K-DUEl("j $ IFbqVZ4$K:* +."|^D&|w':pB S %ZtzP@7ϼ̜9_kI,,BblXg(ĞjV؋o1b3q0#z,|πwtRQ +y$7K7fw̃ӽHpj +E<Ԝe~$LR=rS{wBBW,KJ<:A mevY@)/DnO +ݕ,9I? 6sR|͢!٤ 6 wWհ.=WQdyj<&sҁ,@cs|\_ͨzUF6ra 6҂bȖGʑOw}5'[ '=q"<$;EiwyPڞ$e20Nj'Ge#%wzH]j# +̎K=纙'eDUT,W z@lԌY꼦+)j +ɯIHUl&nppUBM5whÉG/a/ܰ{ڎQِɛ=iO{8Q%|400ѭp"|7vdgƪpu…,M7=z<7u'SPYi1wJdڕBDQ4}Zowxv.9\5/""qub>ujSO1^89h9&i>?߉979Q \ 44!4{MôjwX |ֱGT##l#K#@#?[6[[]T{Y9XGevJJ[w? oTFOl&#(G*#,w S[16[1r4MoUb#TXXA33@Xd6Y}XuX#^7[אky"АKUH)U-gJBa.-U++߀rLQtY.u_~w #Nzs\(cG b+%"X㑭$H1("w(^_po$we'e 3z nVk}zg <$̐C f3޴g[29L-GYؠбԱg[ HmºYt|t*B֌lFC8MWA"]]"-qlد?)# "=A!$'벛6ut{*&M[ۙۧzfs{{  Eë_tw@sbY'BHL,oXe@O.Tb-B0Wi88S% 8JA=B "Gl\SZ[9 u搔 >\2-B-X߈KizϘtF_CXe/ѯDLPY\u㺣Uk۶bwVV0a={{=gG-,i)V#ŗMg!j{F6+20.ػh80 ݂GEa0xzEX= e4c} Â!đTvIcRl,#Σ+w4ͼ2|tXHZ["Xv$I™33PJRċ8;fz*)guq42Csbf~ɸFF|Lu L1 PPr>͹Ń87BAkIaĆ|5_ +FƙlY P# 3D 8(>EDSaxS&Qc +r1o-ΪJ$ g":^.Mg?U̇:_2uY;gWg'CD0@[MT QR;scrHpv) Oen8+xԭGa֑#Ra{yG~so"2b"YBxjͯFlP[+ w6 Tv&'fj_/jr逴6+00_qӼD/5C-fAE- Ojop_mkdhf&0L^,s3&?X@P  '@: QT۹U׃s7^òrB8y}lh!'$;3y-oS@ *3[|P[Gt APmsXx]?@ E`26[o}Aio5=}b+`SZ68;rŊ&&- !U008 EFWV pci7?xTS,Ne Dh3n: +-*~L{&7U֩,QMbx4kbAhy{U[;pv&O9]IJe]s;c0~hu{K ?`t`.~,-= +}]^DJU]업÷ J'RDצ]WgsV;s__Go[]:'÷f4UfłzUlV? 6 nj?V +5ޜAWLbdlJB8䖝L&ƨC$|Y0G!PM +qp7OR6%_x8c|͹Ǵش5.Fdx1f!!9YÓo{V`&%7@v,ӣeH%2ciƇsZ쀬.D*~UhM%ڌ"?(14 5Eʱ]AA ,'aMIClK(H2$W1V(2n93~?ۀΙ-ۦ6KI`[,m*=K ]uWy0\ܚ>y寋JuĿ}fWy WMgtxբ#Z$친6 +c"O2sB>gC11>ZwO?GL)S&k莗1&Q&=NӽfB)oCڿgy{RvEjNߵOL&r B 4lk lvefw=rN柲ܙmSkl9)sb) |{P>e{=:sĈ]QG8EᄁG{z{ rB#zr?=9?95m-XڜLݑ33->d^}'B28=i#iC_)wl}4BRj뻤y!k(əs59T`YtX,u<+T鄚33Z[p]HcLmm o|&<6s'F@^#Mo +o) +  _]A`.NIAԒ3AJ(//)UO o~/Öʾ8!ᅣ[AFSc\{bY͍b5X&ؐ W$N\ +4Ԏ)[x6vUf>Ky)RgP@d[歃'=:)k-q3eg08.g2 -E*ttv7&sH!I/Vg(#/"E8K-Dv$S`X6- n^zH7-e?b(Co.y1ٙebNi/w0V(fTF":Ew "C:{s_}<{(`={_Z}ª~??q}`0;-?9}`f@Icw^o>ɮ,压Eи'#MDHelC.6.ȴєtJg{vnI@ZsxwiqQ8j>Qq1Tp"lF7iE5 p36whn4Uj r zQ|YܖfO*$lI3@t;]?-S9}mBDkn7Ykp>&"\*C@'xDH +o ʔ^I&)w891 uDRXL׀0g*^f(>nlI 2k0@G W!-] ~]lzZ\D3eJe! bF\q8<_1evnMI%MouONO_>o~w:iBRAAQ:3:C +EP'S"PJ:3I]`a]r]>!ĜzcR$Wkg0(vz.O\EcF 'E?' NBMm!U`XzS'EYHtZp7fzEhU{"D45 Ër4s03},6cK2'– +8 ְ|m$'Qj}զ}:%9Gx3 S`"4 15 +v\ZLdžm܌-!HO] njf<|MI_/yDy|,*@9_@!SdY,;mn&t,RJi$i82 +YL_鿏O'zɹ"5dP'1#FCdgքr-z"R=}Xcd@R0JUC*#'kQ'_`ZA#^3CYd`H-5䴬. dH7tQ/_V\F-ٿ`Sga4ۊFt&Iǂ vGFb"ZR`qdn'(2O1LD#v뼧঑avqE˺<$J?x(%W(%/!r4)UKNn]츚~IR)]Ubv]x~k%)_e}&{X]oqdCps ITg[UW͢JHDwpzW%9IQē݅OoHN?DA/+|rz\LVP@l3+z *lHln؂V钭 u ,X_a[Aӷ h]ҭHlyVr{$~q)/:IrL;@\Hx%ZP)Q4[+AZKkf23*n.>RfBwH2cڜ;{ >P59A_> Ϯ6KdmJטC%zJgF"lڛ܏͸jѾ!|iЗ,/e .p]5 4VJy-tMgl&+//d<^Oj6*Xt< Scl,uqid"Xnu3A; +x#(nNf#ABU Q;sSĒ T2nD]/:nu4H,Y.併[3ã|T>;2MeD^RX?gd>[Ju Xz`IJfzሣ44lO@t'LKY:`T{v 5u bz5Bbzi>:?u;76Iu4;OzxP:+{j_kːnm;0 CE3WKa2ԛiz‹^ظ@w朎O-㒖Wش% {HCF Ufb*l2Zl8T`_WN@ cΨ b`*Q4gBdמt;6?wE2svZBjפwT7GxS௩w\Uu_+6u_b_ӏ4y]9:H{~rtס`` $9v-w!.EJCd)zW ܯɠ_K}8ǭȻ8|[ K؟ʠ̾v/u?ηF ܍u]?+/%Ki]ZЮq5.JJi>"?lXi)/}NGN1ĥ?ͺ]ZZz<ÐmCȑU" +epĔʅKy +u"4ChXs~AäPu(@M\Tqo kw\w*CY^~Yhp5a=܈ք6 ^3$8Jg;/igL4bVDADb5N<c{B _vr+C1цq=8x0)hZ=li11x̘tfPB5N?Y)j@ZLhAW{T ׎tu\2ug2H8I$sVzq[/2l?x*R8XDA3;FT~P + 2i# +ۂ$1k)*ZE5tA3mYMC5q0u +j[)#ɠ燺vt29VM">;'\\%j)1 1sPFEe"|>+oƢ W'1 lM}Gf̓xe0%EwnB_\[g*Kw\(/+[MU}**Y3&Z%*c6T=-+v^tTkKU`QJ'-bA4utEɪ|Su"&Ly?)<Ӛdס&AhP7[7Z7N`PC@^Y[Y ОDor~W8NGʊww7]-G@0f/m֜8OȻ:LNjLu=٦V*=.};Ѵ7C޼*k9\C7+iszn[#`IR#9FR.b0~24(ov7/a!J AQʒeD&(%P* +Dӄh#ΰNuU%2gۂPXKD8ق6Sb1bG&i ̹EbkӤ )r֔93c~_!ۘg6X<e$xV# +! L2DRCze$`tg4 %?g|4^Ԁ$._P,HDH=P(|3xʊjWpͅJ</g@BKA pYImPU1/{FuKcfc3ϣgڙLǛ]N%rȺ">,.֦z 5AC?J~8@I]wfcci`wlQ++CP| ~(Xrf}@IS,[0vX҃噙ו'˫Ÿ́4`#Z$ƈ+^ZGr)dGAPC#ZFK חJ#ToP +G[wZyn0E]+K*V2Goȯr Ј8%r3 + `pepZЂا + ܷ/rחxgJpUpO]Ԗ /P ~mຳ--B*O +%.<)z6kU?;?u"{lEo\Zx!pN  +NӯpM Th O_ x zkg_KNo +`wpIT8iupJ +D^!8S@ vbi-&D&Yo2z&Bm7۝ۯ \>=$㔈MuE{sx/J*q3H^5THGJҀDu8=A{Ix . F>V:q3Í5k)JYnZKضr.`D&}UKu077]/ϼ+NRm -:Ux%wƃ˴ i,@ZKB7K!͇j"1zL]xrH<.'feN~nrS1JBೕ9lńŠrFf4gŨժX@p=ag])Z/Rc='5z2xcyPf?-a`@ny%·P;ِ +6ZjՈ< 5Jmw&V ú>[4*ʽXȇ[abŴ%q}}g|v>ꤑN9t3yu]glL0GaIQ@>i/r=0hDn"Q +9 "pOB_T X`6<|jOHCSb.U&hytYms*Z#-Ro51us^ d؟9LxjX\%iWTG2EEY;AUyF%Iczqj刹&9s4U2q庳8t}&>=\DzJǒ*@؉rni2yx= ')S'hKkʤFD!J߄%c]>=5>4&J}=~!vJڞ*Vfs=0C x9|If#bJHgEYB)5 z68;5tҿ,IFP5s5I ![5C4y}[N羸7IIJ?nD-<&hI$NKY]AdqSʥIV5IYlҼ=:/#UCO&񼔄{1$gż}sԫcXn%#obF|V:yo#C:p}rҊUW'-|^"~uXRShgG:G؈ҢO+LBbx3sg&(~"M)9Y\'ȜzFZ+Ͷ*:k,nũ{ bt-ϙ%{C0PS̳<<H\8[&O 0,ܤ46Ob ߊ@\NhdIorYűX)'!l% S) +h.%N%y>X]c4p8)٠AaWu Y6x hȸaF*ȸoE\oxl.%1iqY/"AG$P3p8max܁i@MWv<] !؝)3_[v.-;5n)B(ފ-BR?eJN̖oz;6 XrZ2A6Zf4# "dɈ !~$6i|x \29!m2hp;֢9LK-)MqzS9e!A !_/TÂDH)| Ǖ,,1XBfaYʧ"٢6k?ȣ7͞X]"bMIWZ#d)KOhGjnJW#7YyX9&?Z=B`y=\J$Vp8A-X>0)%}IeeGvH'l 7k,K+TIFںR-+̃(p;@6h5}`fެj" &ExSMx~W4+7`?}WeWH,? +/׏/Q0 ]` #?J.ïe?l>No*8tb(xg +{{{0~ YfT֐(֏'#Uo4F{쁇;Nw +NHwM9'0 Him*G{5--S'K-{0]~Imcȓ"() 4&iz }0ȓ+u´F8-ecGiӔҌPƑoLdB ΃89<%.rf]4A39pL-ԙtM6B_:|m.] w5e`QLҥLɐdP9Dt 㠐3Lՙ0(@J58}>v[Ȇ3^hm]lI}q##밖ʏ9WGЮ9(`wtGPU]ᩎt:gf_G747l mHCߦmبU V*+E~,VUJ L[Y32Y.ApQ4h4L{FhՙJU0D_^_FMci*ꋮqײ\ +b;Vi"%*;;ѩ;;ӟ63eRg1› c1Q@w' 7L>\&2dՑVWh-N}j EQ|4q-HS@ݝzjzeP~xzq#f2r*:`GvS~"yrBxGc~DYr|DŽ|~G]wa<:Ш;W1lGnu'vR#_/@3% !2buqgH+#y$bzV-b,hb`AW+`(ص"w]gEb@gۄ 8潌zӇXhtC:I %u%m+ȟu!?`^1 1@] ܶm۶mO۶m۶m۶m71;372R"*qOV[&ȗ搀dt<"`@xIʊ,hF5-#jڱ+TTͭZ5ZkjU;Ÿ}vWK @gnmn{?{Yo ?oG8q%j(S4jh4jyp&5K@oSZi4&jEU|0óhv&լۣV;6s_'+,Mn=]kwb;^4 wc@bN)hFxY:;tO( )@F&8u K"@\Wp"=<鍎w8H٨Ĺćv䯳cѡke(7| s^W`|]aM^13=:B@3G36ME>a`EC}Gt,|m%A#S]HojY=1 fߪ>zͭ4HgFɈM!6ǥt65c8EtSFwog@{jWko_cٰ9&78f=*:>PŸG1)*y5'tLINL5~%čFd&)FY]9u~ 6J'=a)%4O[dTNf,̛`BـDZeH U2Y5Ů_>9mlȲnI۬L۰nҶnGo1n~GKOޥa2!e(ڕ 6 9M2 2{a%4X{p6p٫76;.l +x]>oK }Jv̫2V2H"Ɲ|lQom7yz)u"X~p4>{?_{ܭ8/'P;ck0bL˩dFU0E4\@sP`zHb6ADI%V\פ0q`_8S pRoبA (ׯ1 iz#?)$Y' 21mazABAt%քSsV?P&ֺeic=WW}ݻPezϬݔuf:/*eWWj&Fҳ\ZڀnՌ3] U#DY#S|ҍuF3?5$Q3+[UVWb멩J'c Ywl^5ŽnNh IG>f6:i"zϸuMs;`B fmnHcƈq>wTF ׁWq(ȍvdE]]3J$Rn7Bڞzs n@j {UnW~pK =89R8Ƙ$<z[^}Y5Rzw9B9Z6ŸpݓH,Y1e>rwyOɑrv0e%}f5v/CYma>"a-̠ZJge6Y 9kQmOQK-D iur ̧ ,](GX12|x7&Pci1:/51, =וaH\hPp @.KV +jr@T P: (+/hOs3D<PmvDIgOg @opg +vzV7"CMmamĤ;|~%sútέy{#E$S{Z ӮilеjN)1JI +%#XO#Oęh#(J!C!Fؑ#a%+O$KNE⅒ % TBI" +%+XrlDd]]]-@BKGE""*GEℒHx$xd 3+rѺ2 |A4 #3toNŒg)n=z3'Fa$I9ֈlg_ox+]`o')~aҞkG87Usf* wC &#T(h9Cr#&gFm{JRlqrprRމq#qdRu6 +5ȤdSrJRZrYrR<%<ySJa1Xܣ}bZiעcQxR Yُ"WtBk #Q|t:F:f{n]C˴N]wV'n{#Ӆt|'t|y1>{u_@<;#Iوo(=454~vt,#+[qSOfFumQ8-?X&&>C1paL +b6iGĘLߢhy҄q=*8 +bxJEDhc\7'1% ɑo#&IJ +@UCCpdEjrt"hrrC$oC&5hvB4e +TCg_JقfsclIb. 9be1y ^4YBH, iS?bI-CɥprYbh%1(qDWNkL1)ؙq1[>lhsc˜q",M!⳥q%,M1bq(,Fscwaqb_:UL1O  bB,ȥq,EtC1H1YEIbk>SbWv,Q , "0H&8,džWEh\; bʿV l<àrڒ%-}bfYKno~FIޜgFq\;g6oytZ0=o~Nw??|Se6LJD̩G]4<Qp3V9`犚ڤQti-+6Bq=@M?~Ʊ-f1eMlJw/Տ@zg6Mϻ.=|u{ Gu吡~"hWub߼м>aWM,E %5@u] ^BQ^V0Z}ݱXĺѣD9$9ѵ6ʟD Lf|L,Pxy?@`tec?%rct I +'hL+on:jfAސn ?ktZ=#UxK7i pО0ᐁ@>ǃЄOЬ^5 J4kX oƜcX bKCoZz:2~yʓ``tB||7,E܂R c'&>>OE߫?[~hDh2%'ONy8(cVSܯQ" +YJZL^K WCt?n& 724S3'qUG-&tt71m6bbiikEaz +2 +"Č2ũ =0{Yn4_!h]"KxRY3 k +tZ'Md#?/lK2Lp@72Etp֑˧XxcjbV(Z,QȦi:4ɸeL{eX%ON3mH0yYN;TU ,Ykmz[[.Q;`>unLfd3?xӺ.5bhn䀩'Sd +OmjS_#>h=`jR66O; _s~-(6L:h^0xvm12 VmDdJ۹m|As +/5WXm޴54[dB[bhu0φAC3`, k1OuoDPLOzW d+v@l5u G\ǧ7`&}10c07ȡdCfvH))=ѡ\~lG&HrYztVZ|awDCqIѮ^Ҡ>s^jwG#6WW%rkZ(9?yܾHjB.M*#X.2kJ-\=^Qi4 ͖fb:9mHj@(;Ab25>4pAE'Ap>ji#VEˈC(G$Ԍ^O6Au`=㈳2AV=z_fOu^@n) Ub,!gNj:UŕN]5wΕ +}w'OrNޒIƨƬYdCښ鎡lp^%IctuXq`׾;uy3;${Y`[xeFw)'7n#ye%#3Hv!S)#Gpr_N Xw#zEs ŊADRDmB* QBiPBZUƉ%2%m%JGmCi4ħ6Fmhh#o v%AJ46|dlD4U̴0wr1373, |'U~v)Ė`ct3]I-1[{:x}!O&{ yOZ?~f5!%;;!6΋rΓ@$ "NE\N%{IG +{ϷQg)8!QRDmR74gFmQ*Di7)7Ӭ | |Q SciF7o&6 +|="\m❚He'60p$1 B3v;MXXk#wxرi0\ ˏ흢E'Zw&ӔhsQ>ٚuAa C.{"d{9K׷daAϛE7A6e׸(XVPqh4o|FqM9 )♬Ud( QUU|4SHVZ  )V4PHAR+ V2028Ҁ aSL! t10%.3ѧ2SS- *F 6r` npB1n#FOk߿2މ~1HyН37f8AY3Җ4ЃzR )zR^*׃VX'EA+1V +-&5XSZAq)O^Q_'uY}u1jQH+΂m#STZ<AG1TF$W"hjfo^ṁ;--= 9'91{t#7;u<ۢz|uxk_(/A0kD/ĐzrkI-i/ +k3k(n 9(W! +-b߮C =RLe}B[T It0_qX?@m#M [HSyvIw8"^\F:}%`^1|\򻾉ti #;pf6Q,0*jq hݪI}Qu-qF/8d:zqQJ*phL,~7C;ԽQ{v3«WhƷJdtw.$ݮx 儊cj'OOҪq@yF*O*VҌex6RywtP&Revg{EEGQ<#˻(ݿԨzNܯ¶Z#l +uJY[H ѩHs;&(_\(ڷS2}\0ݔ]~ZS~lysRc~v4snr5QT֟/b[:7 ]ze_t9p +WaHhL4"F ,}oYbБQ?|1 |"q08 ژiPBE`Akr'b] :PTQ~K] T4?,7m(<$>3ovr\\(H,a""$! #E~Yc~>w\oFȜn;xn?fyϬ~ 9}0p]!%~֩W +ݕIߒsю1sQEЍ5$! !񍠀0y* /Ï1M.}0hpLM7yj2a\_16.U틈pE\eg,Ǭg1YлVQjm\KQsrΩVJSAwtH1nn2[YSzeNdRWR`2?A‘n9ѱڡ^dfQ՛f-NƦ}6˄rJ &C6,I(yi/?^grgE=Oo|oy)gSt&v@,~R+N%ݚB<$A&f0Aq 3cΑj7Y`$|%0+@u'R`.|>I?2DUR<)\KVS"/ *%Q=gS9!$J]I N#܎}# j @tf@BO@ >rPCVdz>C5q DكA5wY,ka/ FʺAL߾B,W*HsAEK{Rz^Ã7C) jO6ESnXkk(oYNEbf4̢直_1wcI3N0 :&RsAsffȠ+ !#=$zgNzڦ;~K9NwL}>7aPt<"m INε#:"'FP.v6V @Xhyp{^as9|R޳@2,{jjƩRV5S7D tnR4~5E^}<`smB\5l{fic|G_5l`Jkon !8CrN3|O'0A!;Z~? @KRO0keX3'@hJh< + + cAZ43HM0!Ѵ*GQ:9l)X֨UYU[n)+V/< 1 ,;i9;v޽z}G',.gl43e +PVVf,=XF.o. Y(/u^;̉a4hFX\H鷕 iw_=^t4nm>>S] :"~RgNz&]Uxy$Eϟ8|~~#Kk1a֚c ", +O{}|;yۙ o)䳯GJ~e ,d`E]}¹quv>0f;bo홤כoa@<30:7gUؼ +쏣֡o4.XqAon n -(ρ`þ^g["Nk J@<\_wd?X-?gabˢ1}P*>8βx`ϹϬy>W\4XEdLz-D m'2'0+x10%55Iq䆌 ٗ5"N4`#ϘMLNQ %@&2zab\PՐPceb.`Gb.@WE'p-T1#?tAh/ S.wFQ3x ٶ; +[]-bềU7[ KqEn7]>GX [ n + CAO|AxJIY *(V6A + ˲@/F/Ԁ. +}X@k@ *)H + *Th ++*R +l(>t|h +n<+O~l@3ET+ L7\C&.(՛F\Mxz (7hN5ל~g<qqD{%`A =Ay" |DK8bFޑ=C;A/Es! +w[̱]Z;4vȪ] ^?sվW X5fPԘCVd TIK! Ti#S5L T LPBV/ X5VD535Kb\dc#V5~U*">r+1,awytyO`_pЙ8,F6"9[,ۖ ٌ다92?h kt1_gKhq E\2^@kӥV!晏K"f-7Is]#ć+Wrsʴn,=ex~ty2'PKݙFTrGʄܵy;Kȩyhs%"↗/pxVyUǞ"˚=) +& +iK^D0PLTö O /B.X +,*)a9JȆ(T'9[CtbR<*0> _nKEЛm^|K0:P u")Fw!wm6fʞۓӮdsw=O]ڇg]?7?p׽@7KicEw357 +i:i=RsYJRf@,ُJ$xKN<T([Y)HE+%J6JT*qe2 !,RY,$aqe >TTEKM" M&W.;.ωuR·0qb}'\KRC]tM8G-#k7?KYl@:Pˡ ,>0 +RhZxCd#O0i*N5-WO-R|v@u.b +FvaI5' +Qy>aF4 Q? <f FV3UEAv=`GtDa(e=eqҵB`U.1$~GlgIZAKoeϔj;iMgP[Ayʹ=$¢ѭ 8)qc3B"^ANHfb7mc`b6$_yyJKs/c)vuMzhƚTIXL[Ѯ u.sbf˻gf_5QGj<7qeov)׳+BX ;=f ѧr]EǠ4|>bq◱+6ī-#|Ź1FH: +).uo'I0ZQ' a pLH~n|1|Ε2y,ILS;CeΠ ![}4if֛!(@XAq?$(G:# k$J9QsC.oG]ug8C"<okZJߟqNℑ)R8d$&A}0^@%$1 "("E#uM?!eo竮\YNKWvS1ScC#4,S__"[ DE=ɁCJCzZrbm-b%+"&i[4Vr{~yPE.qvMWR$YYgc +]]UvLJ t+O7ܑS0(GBεӚ Wơιk -S9|KidkMGIEu6|Jm$~MWTJ_WEG\Q, _ZsvLQlg_̏/*n]JY(:KQ]*I*w)zdJ\Y%? +GoͣtVyWPmG}iDHDrv4sReW@UmWA +G%hҙ}z6Ԉl(׷X>Ow-n0Ґϵ@ye;bF,NoRCZVP7I2* X?^4P)AS>= +V0,b2p lIbS 45-Ih E^[|fEg +ڨQGlcylwi^j7s,]Gު+[\GˁNJ(49 +L} {W+k/? Xyi=gM1L&0]?,)'ٌ ̔ +ss +D\ >5XX@P1dQF1k>X?5ȓ1xܷ=`@pIV]THbD"K/I6taHI7T&` 4d.Pixajcben2 d)/F~(8RgK+_)\vat8S.G"&rJwA!+D,)/Yi[;`X|~^cz9g>d&õ(+ЩWi񢱳-󼾃R{ʆ}wi|QG~I١ GVʁ90ܩ۞31E<Wce{_ĶDȕ*]myzӽc]|dƆ!fJV^E ڳO{zRmzy]ddy^Fp}{V"oD%DS{%-vp߈dӸlS[ KXO꿷I V_ wGzҥBmŽgʕEm|sӥ4(cGGֆLup{{" D0CyC8{`əhXg ndn1 ؼBob3YQfAĻ8"xf}B ?Is172Ihv) )JТd32=û ϫCF3 F3տAo2,wGGǢsqTw"Ngp-dsHtE8)4$o%FOL~"EQG7Es,rJtRCN{rߧ}Ĺ%~IwZr}sg] 7ܸs"ʜAs"A ;1c4z^昣%wa-.'En4pA;'OeJzQҡ)aCvφyr5ĵ~C'UڠjkaC5応. +6kC~(MbX Z{mglYH +@ { +;enzb7_u@k˾.@Ja WϮ0=8cKHkpo+c`?Hs>bv0>佅n@Nn*Qz*ʾ>exy{Op7'p=B +LJndŦT:PjJ(JzJ'P$Zⓡmņ m* *(?iWb8I)@HP^(JI(JP/i,SU +APGQFUں߁"U,f(^*V,V(F.BUZBUhqṔ(*?$ ,cn$Գ_\x2+O#|$%Cl?#D 0D, &=Xo7$řB fhd|tӠ F\ |No]@`}3Ra}*=H˓mw==ߚԞ۴1F{BNbw:{_wē:wG_yUb$r6YV]yPUBjY]id)X)Z[M6&Fe M-MMui͗F˦K .,լFˈFFˢXPUŽP;7d6;P=rpr夞CoC}. mƊpzX#w +dDrEx7"x7Bv<r( UȢ*юX\E#r!9 @' :_7iտ*ʖ}/7qվ*&XEO&ɪRQuOÙ1U +cD{caHaJRRRv'FY$V(V"BY&BQ8syT~nӦH p9VyAUd*Qd(H%jܦp]=d\-1e,rC +tE̯d蜅#@e܅C%NHK,Ct+a\XA܂93h dO-dx+% |р QQ Q( RGJd\GhJ +G G G P_a# T.Bߥ KQoD}G8nHá7zw;OS n?Sj^3J +R<z>'>(U߄iG+ǼC8|Ck*ѢYvֈ*JDu+%c!2=REԢ3Z/=EYjvOw[fPLr:fP7џ2c L+VÞr҂k+KkQdˌ37zogK+9jcʌ+|MM5R&wݤ+8M)XDFE*ycٗbm[1w.=2zXd#z`oDZgL_qftPU+P>F1$>1R{ܚtհK\LJ D˾D˸DKJYʲd+Kڒu-Ȋ? $FO"he,3 5wL7F3$Gf ]"E;”t  I`M BCN +Z5m +j4-h4U+=Kb\ y컯 -aɇ"Sc@顐t(4v(6vYO# WMZ D Ѻ5o,P>s@}5C+dvwo[ڔ腒5ںgpc0NjQKyRY<@ [.uL:7PH糿e^>P^DgxA1hH?[<{l}u;[o O8LTnA]=.3&9{{ +8.A7VO AϘ+#^h:{xD4,@HztQAm{y-BC!LtdH)ejfN $Ύ| ';su [\nIʕknΏok?e_d!AtXo 2A +ܦ~{7wn[o)^I  ؇Q_?B0Oiǂ}/H]]ߨ`-cE"c'QI~ioIt- d1;r|4sV@@&f0cjz +[!(hIοGT Hc#v~7*V0` elV3)INѽ<8vqE)\?wfZgw!'b!Ru׾dU3 + kGJHi"}b?&#-rn%(u'^܁*"*E'(x^l*M}a)l8bnX*cg ,MණhtiO83PZcXpuլoP7~7w Z"l: &ɘF`\l!>Hj‰ZJOb[pj5;PLMRVD/uF~P~#4 LȲԽNGsvg( cbt2)6Ej1ZV 7-̈́%N(eg˰)-!83X1H0RH#[klFeqԘՂUZs&#%* R[}8#EuiN$h~# 9G0&֙Ӈc7%aMО1tO!929@;P +a8}B%jL,w$J:.XMR`o2êzx&s.%#b; Z}9T4i߃uoOQ2"!C@*)VJdWJ,S D'@P"S"񫑬R!iKf +&Ʒ 'hI\+,+g"VJP""%'\ Q!S"'IO4G$Oԅq)b:,J!Z 2p@U)(UPh@`}g;=E&v=&vqܦ8 `g<3N;JќDjLFޔPv3Pq8^*}=*Cx_/1 LX"BeZR\QSSRLJ +5b#5"W2X dL5-%YТԠ_^]]]ҝSS2@e! Z!0^P2ȟXWP/8|(B ͨ3\=fųþfVwtOG|7 sEi||:]6:N<{>HOyHmz6=t},h{w$;bV7FQjT'as'RtF(5"%R .EQ MzFj؅dHD#,QO!%..MħHħBHgs nN#5<˥ G8(-7),"xD^_Qþ(Ebpf.Xm^' 3$hz]'knNs A#QR6VFsA>A1J@ bD1Ϥ]-(#^1[<7)!.2*B!\h41H ,Q)&(%R' B\SJ`w]\L%OzFq7HDsq r{2 9@M8 |!ٌRT5/=ER5"(H޿E *WS PrY5(PtE,9d++"S\cjX1 R )yʤc!X=/./fM9<̅JEZla%X2y^M,LsC:li䳅datydZȕBX6([u.a#k~JchG>C|z_! ,UY0Ng[_(y@VH ȶC"x5 dd: d衐Ȳﴲ,;)rmXd8c0LC,&Dd)&LӬ2ޥ22U2yV52<%2X_TY}xkOh^0&(G!F[0F".Tf}jŊ$?P,[SҭG8dah7.i1[BE fr&]L39:Ҝ\L8hArc`\b<]6vpc04Zq`>ьh`N )'G`Ty]nNIvR=5+F6W<[4y4]6i@Ԟ9Z.)3\$&<&N,w22ѠĜx*:#KQ=6ZnxAAeљRexѢZx]jb|M| >P!4ν!a!N=ԝG嵂ܮaN2g߭ܞC׍oH:ґJ!Q +<:**a*+f|e|c;TQu^mp~]:neGOm)+tBsg,9BPc;rsD,wl^-W"=5,A]0 Kn-b(/bhkg>̥s]gs@!Gs-8)w2E  +=;Wpx!E y:_Ɲ[pn $3rEѿ?zYz`W/8wlEm~0兎) })D >79>wY}<, Bŀ+4+ev߶ݯ+_0s/}Ż+ _D9A R@E l5!@[^`.Ǚw+aE1>H.ךgSaEV:T7GJ6"a2,`׌>H/7+0UN2{4!: ۍhxkٍ\30 y 5- +>BZCƥ {ǯKj,H8̈F37F$YPb?PfRvOg([2e;@MpA׾M;5 }!kr+'?HWf@9s#2bz>̞Fяax +9 9pQ 3*53x/kA CbPPr9h@4Sq +! A7C4J( }}:<Zh}!P% & 86= 4bT̒bvJՎ%_Ϭ7 a(@["r7Jq7D@=vLqns.x8?*B!.*!5@6dx,ఇ?>=04!`a;뼠xπ4gf=Q[PvT̐;# ݉&Ohm)8w¡ezй a \{A/@xsC*C +A/)Ba@5R*C9p?v{4rx"װH-,u]{bfxp: p0lPld;K %30/J)o#%[$e5å +ec +ˌJh"Neb4sIfd22|/B$}uSV +NR 2Zy0nz4儘V_D"4z/iWkq;xGn\!D7R]1xĚ!6L!6T{.3Ȟ3Ҩػg]=\MM7*d;CwS|0"8657#ҋtMpGpL簎Drysg|vZ:l_{~ɯZZ:dD!ndz-RaD6Ҕȡ&Qa4RE<~Z: aķ/)R!Z@]z7Ks :T;_pMJ˘w1c0^<$ !8vy*2Hg1=ih " +T!hd  ,{jUVVWO 339!۠uϚ͝qh>Ў$FDσ]ӿ( Q "<NZ̭{&00UMJôpqka1QurþpraBDHwU>C >ꚳb -UoOg&~ć<+~&)xTϜ,yZHܬ}c0WC5 +yg(!!3" vm*`m ^5•,+ձ-iSt:W0vw[Jq{ b°c){90<4v-@hT۴1Mƽ6 WOE'9N.uCQ]9>݃ +`L]Gwj2RMْߐF}0k ٶIܬ^46N873- } Gy7vWkӜxy5BH<N[yEu0\ѐc4LKEk,(v  y3H#:0n2Լ`GzL-s8ɾJ֮jg#z%tțvCr$Pmnj &iPLE7OVȾ;.Z=5? +ԴCD`x܎+ 8zc6J؆a2rR̞; +'?7#@&7cM3DVg{\ .`<% ^ߞ/ |ĸ4TrtTg/<#'B&0q°\ˬ7O?6YC)~l.cyOs )#`|ʹKoj9:Ӳ9le!e:u0E|=> lHDARYcbo6udLC](|X%5rn9z_0M fROkI!v:M(4֍+܌E_:V.%'f %uT}Mjh E;&7oܰFh|J_Ct8M^ zRj|6vZ $ɛ~%'֥!3SQGbarQEM$w.V%ʱŚq!H{@#v G^mdF̤{Y57,ulF!Ԭk+P# ԱWjzUk-7:ˤԸTG%q ВaNjt%Cء ;Xj(D5z5#5R% ȥFb.{aHb5+<kuTMURG]!_j9* Sr兡& ߭.yXO<% Yar\\9. bכp K#ѸEkIwjS #mO^жvGAx_12mcbs«^9"3D.r3 ؎}pNLJ٭<c:(ǹMr6e4l0Iߐ'~=)R&-3qtȘ&M=3݌-3,4+/ [Q:[a:7L;i56Z;q 6t`]7bufNǗBq[ij,θrMWOg\Rh +N)-l9SKNZNټoEcbS:Z;TJxPZ9&\v7\='Pr5&sh#zc|ow:JӐÓ&Jߣ9&)Tl{ta xb7p6>bc >"# [jW +R|]]]gfM"-hnzhB}~ZB:2[L{Bn_I6FoO4R95iCm{ڀʄv6$&f̻)Zw jZ)#D3 c&Xh6"tƬ0?L )kaYS NU'1C]hAk-4+Ș5wgN {&1e8Nja!srla̤>6ޯJ(ʑL&KRKR<$MJ*džQosa)Ӂs᧹oENgSuEhm|b˾2z~b)ÔZ_-~i\#xmJd:K\g9WՙuLy8~qJ~}ublvovJzE_M/֢fBo,gEy~CAk1\/0y +{& +?A5g)`>ajԨ@,JQ(+P)1d.1ʞaQ(ּ1Sb) %wW91TZ]χjD5 +ĀnCߪo>sy<p|+υR~9S/sRsC ˜!|C Eߑ={A a=A +P?P8^ + ,+wOAȸb C$-(' &#(/O F$()GDdF1\Pۍ 6m=6pFuDH\`0:!zp5Ly-7,Z`ylO}:L;v6 m^) 9,i2J1g<fd CG^9$6yQUI$I8}n 6a" sM"&u<{ tFv !n0W +Zt}3Їɷ +̮)_ktmrȳ[ ۸^-s.sλPtɬ:TlL=-mX:ˤ^m}jH +6.isܨ+zG?~1}|0 Q3M[:\<ع.?e3:ՓX:HAK먴E&N&ql`kU ؘ}!Y5iT@>? tوiU߆~s&SgHyi t` "ZD,rQ[V2{3N0z[{y +ۨ2y'+=U)߱"^:+#lG#Ba̛mF3}[ώruݰN" +U>mrbRU&8P4hn 3GE|TPQiq5ݴ>21Q8=errըVdqg4"M1 Z$)Jslfw0Rkzzrz|g#irೳ^NdY +4}r(XK2OYu>AM.V\V'ڙ0TcL'iqa R%%e>ڼW.AM:v1ІD F7iSQs>RqhmiK"GH#/3{]L+SY9Kt$ԖPJIw CKf_}D b[{}{)k# a}ntm~e +z fFW~yPl[O$˴Fkۯ{G!1 !+L/oVos~{h|ld)a1ʜ ]8djtaa臣*.*fdFfF3@xuL7h^+rW\r*{@nxWkoY IWUNsdV0}6,cC{ 'H u4-%E: bnNؘ 'f +Sg_5 ӀKs@abFn ֭j,bf+7 y~$ՀvgGuO@m{YZ KB'(kN%}b,,:gLiibV.u;|i>Sv=}o0U,%q$4Gn0)Lƞ +gЏbK)[ֈek[=Ň@";uC7FHL&mQ{TqI +DD {xX--`;zA8XZ +Eq,*Zs v9B>HX&:}Pj]%>Dg;Z e e92nX%:] +͉ + 7Ke +Z6]q3yj5- ()Ϩ0X$? !#Lz~v~+zfhs$ ^qN~'y{#r{2\yTFIh'^PKҏ)/YiIU݌urs;y}Hma!|i&?rr<1 O +ƐTXdq Iиh _^Oa,iT[З,OCf\Vvp*ĐI)ΌItPv721]j +OK;gC;~'g':ÚLܞ[Do9G$6G= ]v.Gۘ٣ Իuɷg u6ЁbׂXJf"yL0N3Qm@s.#v|6W{AmG4(82E C͜ev6 d'pi@dcBbd",$PK2 2͇ (srSy튿''hF}wW`f;ᑖ@0U{3]ID{a!\ZMi=/d3)_jfR^HIlLL񬔒YKn3EVCt( PHT k28&dEI17r'54.Ee;,K<ܭDAf-@4~fMu0ALtmF#F͉8ip?ccsfeZ]l +vY2!G[9MU PQ䥂Џ#M׍*Ci50X"*՚!U[!6;;h1ɑZ;Lۄ#;A8ĵ->Θ1}u(H#7w"A:Z?hK,]<yFVemRM=ۍ;cq tMtDcƹ~fM@1M&"Ts% < ;仝Crr"DֿbYm;5nHejb:nxPspon^3&N *5cUPBW \= _i7Š Cj \tZULp停^Txpw.21nc? v(Qwޝ8 vӪUԻV㦪Ylxha8򰎠x t-yhѷ*d­q~B:uMTip+cK.9=}e窺E)S|#}9#;cxDՄ +o6Z!í$PkkvTA1}%֦QQ:@ ܱF jWbѾ![/Z! cm4!dzL3@l:h4&7V nb4ķ ߹5xW*:X(\==t)Ln,f$Kgy&]!Lk*t(8*uⷷ?h$qh$ +S}#H%f]e/O qqWoA8Jh!g/>[^ SȌ0bHe'/L{n0%u][BZ|N-Y?:hMmtUA$x4w?.0}|Z{\w?qDTBqQt3H@uMqf)oVI–[X"C[IZ̸WFm;TJg*h9@cg'XئYW*Y6txXS .nce/o2 +ʲ(&46S/NK9*%a"!|e 8EW?JX 'PYhg"-2Ԡu6:"TԧXn* ؝VژTަֶ6pwm:Ϻ+ Ij.m8c&_tvtI9*yh+YuaX]J(m%lZTPU,ԚoX`DV C dfmE:&O:NUtޔ7OT.CYO(s?.cG_WxH/epEI^&bQ-6L83J> RGLBG4TמVE+THK2S~mWD +Q[Sd붫hVHdYo^PN:LttY8(1DӢNA+]<2Ӌ &P{QTv`S\%+Ks秱?@MqwLz}ɗ( f]m۶mo۶mm۶m۶m{_ܽ9"+j1#|ƨ.yp3A%#R4RU:IZɬE%*7S:# yA)ϡa,~<]cefܒ_ON ikᕪTz*#.O\!ArJxRBcPfݓφ/.)F8j)fzc%P^炮AuЄQ: +4zsρ wO4w:4D[3B𢂏d?lt!xvkɈF!NS ޅHc |o0H GLi6H"9{x~6IK8ϙ QF>I>(z? e}Q(LRvz2{G1ϑ Z~FW2%E|1nnx%r~ 'ҋ7mO9s~ϺrZ9-xcʙ9v\EjݞҖ\;5̾ yQ۷f3޺gK3F }+a+2oh>yԹ/8 9ZCA}n85?h7foNˣ%$]o|ܝkD@|H%OR&ONc#8q⛙7/:qSO҂ݢ7ߜݑS;7Uܓw/d|ı_BR?_Hke l(S(2Qt L`jBŚ:X)6ӷ Å+ _It4"oyb"AG;#`l B2Վ Q"p'w_8hBb!iYè%u* R/ GnGRڧ')[a-KBG"/G"B:,;Bڴ.'d2L  Bjd![[:B2#p $g.-$t02j).tDצ!tЌn%%(d)pBWC@/p4?:,$>qiO9I: `o֮0# !AI76^ yy* }m:uN׎{]RAPjF A \0 %H"S`h1&b|.tI<\i&#Dt⸮qb#[ +*(paLHRX_#.!V{Im0GB-?CIF<Ζ )k Bz=y&^հǁ!1ہd=j܏UZ@0o[r׆Bx}!?:==@ +CXk?4z{HzG߂0$\]&pIPy0#twj$|Dld:!*ͮp$·8De)!~W?HRn?_nE)Q)ne@8{0ݖV8Mq|:FCUD%C'N{Bw0XKXߍ {:.q__~zЌuoǻoƒ|Ö}.;)a OLN}Ԛ EGY*I,OT x+׌& ^H){~0 v+ !?y-tM^;.jy̏̏=9-M6zH%מ^`t$ З>&|1Bf0. +9*ivǂ^dEͫł>dAk!c5_Ă7ZPdAWwN6?DqIYdIcj/?Ms_Ã,w ^ Gl߇? s|n٫FjukH;dADMSs%a0UTs7Z3S>wtQ-ph 9i +#szA06P1E$L +ra6S +CW_^G`Ih>`'Jjqtw\yfC~BOhn \9eeP=}Ғ焩>AIοĒv6jƉˮ&Pn~  9(Mzj:ڶ_7)v'xc`hӡq>_vN\i_{o˂?8}e7}r6Y5}>4:=Ò;xVs:ȣu-#Ao9J1KbnQw>}KP Q}~ +hK[h~CXܰaYH=`^Ux* ^=pxpEa.FxXl>%-XuRQS]ԫ2ѬUq4JNޗ'H +4`f`M2P? [7PML@n +,6p.֧ ?Jt<N=P:Zbf?ȅ`M'P 6`u L de +$JN3p M(p vM7p n@yJM;p6`Bv4bVN1pOg-T3M!p6Po" ,,fп ;f{ݽ Գ?]|}?u3_nGx=b (ͯ9.9x^p0na35 +x,`$35bD}ƃ__Cpg($b{S-#yQWn_I6 g n~VqŌV߳^XtGV݉]_r@7*plp'Tg<N66Y7=3f~'6(^2O5XL|deV᯳]x }h6ZG9e7k̠!XX g<췜|1ia6?@͢6P&>.6]m%l1) s9[xP`i|Fo!I!DoEHo0 K3Ǧi10iS7&Fq n7,0T2D]weia,i]X|MTM92sHNԇ^E hI*gFѧS'q%?#A? +UzB8R*Aև"GHftYLL؏o䭍'My7HҾ5 ՐJ DA 9O yDƯ0@Ky;v OįiՐ/[+~S?`pL)(ه<\ +b"(ꐭa`pBtnɦ[U=4LzD IQ7cFܜx"gKzGk yΙ[=W0q$%aJʋC/ʭ@AøE]‹wM u?$bMZfaK+(i !%*5vRfz{ٔKQA[IQ>jTS$h +H>:Y F"3ԦiBτwfuWF§ /acb2lxD(=c|u1|x{_U-f̅Zh1j4ط@ +8ɶ=-g{V\6C%L/-tInsj_h'wg%-NcN_A-Hd;?$|gWMٹP5Kn_o^c>񖆷rI~y00aua7%b?p} +e a~` di5,(C\?( :9|ꉛxa퍩qجSꃽ`nRa[2Xw1VȨWOd@`* @yC%vVٲ3 %印̇1rژO8uvz>^\JgНf;c Our~7eC?[Du +6D ,\dJ8CR,’ DAvXs5nr A΅PTI*T!uj +*};䒰S?xb?ÓU?o.'O8j0!Gz4+FZQMnʥ&-*ob!;1LۙenLJ)fݞ?P}N`mL)2uh020EcuV`/j`n"_YEnB^xR3!B`!=@>>t |fIQ]gb9vnlIѠjA{>?)_َ ~ >VާIa^%ϓN{0Ku*cWf"X"eryl%)#)h=Q/"l-W$"`1[yfelMQTe1oNyF=QŶ_-RC:D-~WV{:`1x`p=,]*b铊XalK{.fB%[nVo!Y NsgX~7f5U0`DqJzc3\× EXTlKcȆ4&5.| ccR M? ")-y^ha.HfyKw| `̊`"M_~u8LY`HS0QypљRuWza^ 'Hn2s>0r>XOX Uk3oq5؏ +n1> {*򚄝>ІOB< Dqxgrws"_aLnU5jo]8X?Թ$xl*/)۝bh}e7XmPEl+ ·RJ< k"٩yt |Gޑz*yFX0>5%E &Z&ZD\_FB@n2E4BN(nU5?Ĩ &iTXZhRtM:4E<\'K= ",9hs +HfLjS*$bPmE*T>m^[  + + +EA$(1:%1]aaSV: gcVǍ'$--d:Sog׫Og]OW!7nA3h5uSLu=\UaFe]M]^ˆ_4^48€p +pC9V.iP}r{PdwwZpiۖjY|-X3uw7RO-vROX9LΚPQTiߖ"rFހ4Q})=TۼtH%g|){[֪}wՏڳ߀J8۷[0N ^R:2k)Ո4 #,Ujxɻl>2C6NONș>€8H_%)YOy^@l Ӷ~vאv +aykIs}{]N -]?{`)K!*ؽ5,ţ ~o!6{82=D dzag-h%f t0M =7`36] Xw}d#9] )M!addcQ}j>j1~}F.FӒZtG4kFzˠiӖ` 8 So*40-ݮ64aɢԈt$eHro捐rOx kr~"qjДK6^.Dj=VZv eWQb{`Ő i2s;Y2F hD=Z=.ƓCIl޹fym9xLt1. Otw8WB%=/&_OEW[[Qb`>\/.f)m^6ȴ᧨ idc;NVꄺ>l3qJf +ɬhv<LJTObUmL]Ryz:[|7n0ȏc$N;=K%/$ҕE@_#R{**S1"[B d ,vʾ,RRB@R@l^j-z-Z-^~U^a~~~-L+Xu:a5(::nKwnKKOʏrKwK7vKKgE^9Sǀ,Ph44uCFuCD"]#g(VsыK,:t2j%*皕\=;J.JjKJK.=dV2jFYu2Yt.Yue@70$NY;BD皩W) 싃$ARAi%pS[mTv_Q'Hӫ5]ۄ +a!~PЀԵ!D,hB #q zh#ۄ &UIE|h"ֈHEr1&0 +,:ISYu,ҍ&4unТvyᲨJ$~Խ?<4Qy(v&&|)&$pX$d/R%ʅ5U ]ZpsyQ;%q|̡Xj!>Y[G7Ֆ`1AcI־dV>dWB|\|8}sS#3-nDPc%[UfXlɺdMN|GIp6Uj#''1X)b/+3#{ic"R6f.FJI7Z¨H$yܩ,^p +s<9s9ɝLe 9tNW}y$OWt Lտ,r()3~:*Yf/hFL +=֣ BtewGu3V9./#B$܀$5yWn`IBH+c5OGAӲ +y~`1 d27 !S:p)\=WҘf;E*(#*gչ<3v$s{}l?TUpW7Nyu3d% XZځ̉'ݎˑxM*\A@prP%> {H, ĥkN*IR^ȜLF' /V!oy41a>6IK2 ]34kyk+W]\K@:ΕȲ3-x}z]Ⱦct]f%,c$cwnG#۷Ds7+CrNQw rȑ~i@9۬!Q#ܒ:&?1Fbuu_;Ѷ(Szfp,>M|!3ZBqLDdj!]qP_X t-SHDgÞCGU +.SQIm=;Fd{8(]BFt. +6V13~h#bChcș3D=$BA)dܠD- u +?6C0_9|Щ߰v'Gb-E\51,oD"=a{CJ>b-􋕰YF9K%xSXM02 Md*!>,@@ QKIJ#CSpPHhu{XyD7T|$c[}={{MbZ:@ 6 +TatÑpZ֍ehu .U.A;q).1ƶ0/&=_p^)6N&TUåxY*2{)JUn+9Zmenk#en!gPN c{2\jp(S8$o-nTCko +pR&6=D ~{a;c&Qq͠؍@ؘv\-zor+\;sop^.Q6TIMt _;'$.:6)4>k&K6%k0oK$I/ONjMv >q^#D:#z,oMFxP+̇kENElA_kFzn i&CkAV#@Gx!})'lёŀT<+,|Xܮ0.QS~N"#VF@[[Q)̠zl(uxxh,m]Yڬ1 #"#AĂimq{8C_Qs"CdNaQ,S8KVz38+☢_ZCMVȶpbUHJ4c01xlub-j&L n"FJRBvϮeJ$;M'U*NPد_XK#v ]1vr}oVk)tu^xk%\/;~=2lDMiz\&qb-!uwJGSU񋑝ΎjQs͙rGAhBB +qf%oC4V9SeE͊ üeX]jw6į2fA!8TVj*1dFpwbNʶ\3sS,\ޓF케'>m)_aB=G]qG)++yV3%! btЀl&2r.pZNKVdPsP?W(BA!2Uټ.x.TXՁ;_9DZqb*i>|Vw* +727 |K!p07LYog*TUxtEU@܃;%t{.|3LٓV誮l7*oxYS0lc5Oh[hn>U˖-R~'aտ*_4ER[.'MUɣ]Vܯ1;vTU1>V8F)[ЎWg_Ja:wag*@1i[d=Yv;*̟r=㉪U@@u w +>7Eq҅,趰#WoTH-B+ k Tu !1%`6G(U󙜧@-UЌii um}!qn8|k ICޓ87q#?m+E=ˆܛWԆۛ_ܒ`?hCh v/9*nB5; `nGӪ^ޣD_fj ejj.Q^-\sbϖwJ_:JܧSש -&w6!-|j%`_ +,di4jl9'ϕO^ xIoϵ`+@\rWJpּxMkO%҉ŒRjNJY03Vs7V38%.V3\fhPJ\/?4\މŀ,tRʷ`3֤^lxT^/uĻvAncjhxxQUߕ W\ /5' w].+((w"2UsۜuWpGqG֛8wVؕ1~[ Nu+]_>o#bs} # ؇'=0_8!O aڬS\>ń)d;-][x]{@_ڻ//_s/,/ 2ĉm6FFYcXz"FpvSQ\?}?WFG<rOG~:{\SGtC{6FB LעZa:&sg߄jfmĕ+s|_׉7Ws5=\ߝxy>ױ,f{xo4z\+*)B=IY, kNkNQZKYIB6>>>KHJaoJimJҜ+ M!e^| gN M!g xHI Ȟ?u qf~W<܆HE+ +9g(`AM+ +}Ռ!cru DE;_݄y?_ӄ1ycQc@j>:`p&E¹aBM9 SJ_bNz4t{|cwKXX%9p@.VW^udb8'˴|^a,ycX FEc)E-cLh4`aVaSpy:vuas+9/G/q_#rn`Åsҫ_͢/D%}MaW[u#c3࿌a'b1K7+ nuFR l߻rgˊ73kܳ&! ld_GwE4[[g p457lLC%FG֋-Y׳r#?ɚ(f ofәlnqG`!4?= k}y qS}(U.7Xڈ7kTZ͖^n)_;N7[_=^dxŘOm%"<ra^CD?ZCD9]azCDH aj]T"]79ODvRCv"_3"?;;hRv^ikgD|X+>sP g6+%4tJcU8JQ +oA6188Hgn%-ʅ|7T-Mڨ8cM"4#%#֨o؝ +t\Ґ΄{;bb[Pۖmܞ]Ʌ\K&'Wď9Y4-us㮆+Jw;ɳL䑞5,4eљ,|UQA3-\NmUڊ>*m]-lМSΒ &&KY5r1!G#X +Cl 6|PA~΄ui0rmFJH9W2>`"cIn*2q2 @fjUMq"в9B,CMtO\I@!eOnۨ8a&7r<M N?T NF:SnyV2,d`>{[gaSy!l]nNcO6e֨ HpnjZAITΑؾj7q:tѮzJ΀*gxZz?iFfIïD,׌&;4!-Jm?pd!oD,]MYq +e^$s%bw?!S0}!Qv(a]_VIGMrGA h') 8B%e%!TRyo;;]ۊۖPӓ"y>gԍg}w]NB +E rS$m!}^YΌq|.d(]%̘-0 Y߲˿V"<*qq15HH,$ )j84(E\r/^*zX `*c޷ܸ]ںwVԬUlRAܹ]o(PlbLnC^)3h(QoH1R0< Yա ,Q8@HXY85ZI~ATnFGMS.?(ֵ} 4҇=H۹; =ܐ.`/̑z`6Y{X=aQճOu6-qqqVغobL-66>c; 54'!P5'QBwp፬/x#Aq}ly[/4; qB=͜6y#47dq TN'Oty>[#&b>J"۟G&Jm k˯-c6t#H> Fl?yo$;[b(riבT`P R +Ƀ,/UD^lWW*c|`GI\|e>tW/"-^/DkV=c0^㶏qZ DLk7l7Eڽ_uĝݵFrMc*:ƣ b{\*Jf\<*c4SZc2it>a8ò´¶qBQ1r-_*G. AS+ZS@4;B)ڱ f1B˨g *PC̋nF2T@E)5mB茹B~ؚ`D)9h-݉f>bKCѷT=%Nӓ9ZiAECC>94 +yp +>׶]eZSBnuMSҹ]"akl"V95ˢQz8xGhVXxSx ^aQOxenJE t 65ru^i8"uP9,)#f8##vrqkCctS`7t'?W_}Ai3ug^0;o &L霊l%&_|V/h+G\v3W\Pζ 3ö=>OnG&d3+9SHM@Pܤ7n@hoꗔgbnamH)OI9ܭE Jw&O 9& +he!߹ gԄ1dsђ}m+*shMb:^Iټ*,*sW`*FvhX?CUR;ZIݤL +#+ҩFI3K#/tsϚ3M~`oRx?c|ӵGn@b]>.sg?uS]L|~Ź%d1dTKW *ہ+UΟ,alRv7QE vXĜڶ6f 5EquL:O.hO+m c*v-k[U"^Hi"8scѢ˻JʥR*ߩeMQ".@fNeDXY^nFdN͢F%ζ#mlP" -yp\gǤG^̛iܶd¶یm96| zU|$'o\?7k3K %Or#t픥Z29iZ[#xbmaRs= 7pG;' ⍧$Md@ߧ8 : b<~$MGu"ف۱ d|51xwLLܳw5Tq0^&tjZb@ Y'f95^B)+0*-7M`j^rƷ2?w;߇aZ*yy԰}û0إ d5XTP^gB7}Y.[e\z!UuSL¡O@(6Q+l5s#^$gpqrbZؼ8=ȧ#WӅzE bHbNXY0lLі}Z }K4“%J=I`?5cAk`Nn4Kl{9,HמL;Oۦ0]sY̖kD Sb3V;MD: #$,-iҁq7ZA-#<0jCz1/2`b}4zPx-Xdk hcKLؼ:ά֦H<鎒+d[ql!ٞkӟg.{"o>N?n̸Lv&|+E<,R9)!N^"Y˖ĬmAOqIUpes"rhei?U&mϞA0)gKlfկT+W[s#p8vdP6V?P!,͔$ݠ;& ;!bB2.GJM˓`J!,Z{9,Zz= +=G_8V:^ +hEg?A 1f>LB C#9u+Fp%%G'FZ!#ZKLO=BOB;|Wrv_+wp'jPumARjbΈUqtkD>ƲYtxeN"dV5ɞ?; Ì۪F|zo0|nM10u_#nup6?R3U^ qb"mWdxʘǨV+ -{OO^gn NBmv s,97Y4ֈۣۮ7յ5ߋ q ;b8k{훵4#7RNV h^87Hpef  +197$J@TyBC\|Gf*LԺUC%07j$2Hsy~{!ЧHQHCU3'lQKIO6Ca;L4M(A2tD^~< A'XZ3}pV5S)Úd[WS`@#:NJܗIDK7!2d|7Y{e77 TwաUu]uǤc-Vs|cW?vJ1lNEі'8q燰FAݖIU*MFڎ΢hef(ӇVIy潲""}r`;V, @hxFn)#F,85/ # QSo@{'k,F +!`3b!1 ۄ(믫P&HKoZŲTkY@g&I\Y-T$Hm\vL.J-l|ϾGXɝrnyvrY<퓅 +p'GŁ3+;D, ?f΅kĀ)P?ER?vǑ;7ۓ+ދ<腾K[)G-9$2SK߷ +a!1K@QcGF {Oq5##cHSK.YOT'wG/oZ%o(o^g*ʗo`.ejMzZڜFP/?4Ԗ!spV¼6] +q3X{* R:6>%F3iWax9UF4%\Ύ3Si8>A" k[ JS 8c`9fBzPNnzpur)ׇawLξC_-QãawA*bk@]ְ{uV&R9NDmli2gmgE8;"H ;I3lPel(.fی.do"LTS$gr_/ܽ aKr[E.` *[y1 R[ E%ތцKfGmk"uX܅5!( +y9uN^yӜS kY2+&sl)n(m>ŴFMoo]]7@3FrM|qaM)t`c7zj( -5s.yS8"#ۿt> J"LjȋtetqX̙ qp].G6AƏp>+:Q +KGMǗF=5 +CB]ְYݍI`i,6@~>)!zfQ٢$|ᰕlzRX$áma%wJPmyי$1l@;Dz|AfEQk\]B7{-;wHcb45 gvW;9(yh Ow.$3WnKQ*=סX c|QhcK&@Mi_?쯴)a}&kũ v{מ(&jhri<)ZޅFsyG]КQ;sY1] ދ \Y{[f2K$-\iUdǜUrHʶ$}zI9@нG U@=J#7 }J/4j##FHբDDٙ~$VubY h@EըcK9zbkYB6۾']!Sخ!beЈ]D +H`񠙯{]YiN[ҋ*1GOL>k~zZwI_E;-kJ\ﰫxu 1M%=?RuyL`ɓ;[C'_[BՑ7,Bުm:5$/0knypz3x"R]XĨ"c麟w$`>ix]au7 MNL%4UͲ؍wܤf{ GڅavԯM^݄awNDq؛wnf7f .wƫ5x+ +cKhSjN'?UB?tL4~"`duA,-љ:2P !/M^ +D]>YgFNII^C9󔢺#xu9ZUUGU~?Z~-}o?=?O\W冬C&tdH@AѬl,].iN_@T"l?!+c:MrDGI_#uJ @mt6z#V'>1m>{ ҴM*lB.S5x9KuzrOmv`m3f: +(*&``ء +2Ɵqv/Dj[ wDsajKTCA:&.44 +\Ào7MW%ifv{̔SisT5:A!ɯ +K,7~Kq9&9;5| z53:dyQX.+v Q'^P%X0Vc 8ӜHy0Wm Hj.*h,e/W2d +L+sŤp&ʑy/cԩy#"SXCjښRvfN죋ף M2$QڷdM˝9B Z&t۾> ;@E&܍pF 66p)9sH- +Xn8q.Md/9Rsnj$N0O[,]2[nS} oz.= ׈dR8tvOg&^`D[2#;y\7Fλ.E/X;1N^ -EץptcQ复sĀS @{QKO .(0)&/K{E )bf@NK^xpP~WTZ* )]I+XA G$yȞgD [؊/ƓG +xiuqHCQ7C>yj=0 ]s!SCHֆ?SKDŽC\ɳcx/䟐5\758/[XC*겎jbTIANGrҐ#qɣeC9H&Ah郐&#I(.a}52]bAaX?LxB!i%@Y~t,*Vץֱ"iCs;v{]ld/)34rp4-~_)̓QoȐohP.R}~ +̸i9Ԧ5.btGtL + b԰5%bp,Rk)YAϿ[,9qLGaj+xń$,}X<3{'5öC3VUOCM7aIפ|ܢHT,|h]vy#c6ŏzFUɐxA;=*fY,<  N[[&/wJs<-!p7:zٓ_7N&Os7M%O(P]8iӠ^Y5Xh4EDт瑠tRHBd  ;(3ɡɳӇ>qPV@ +_Clᴰ"iNX蟶#&v@.&S-$/067W T% ӟ7-Z\ɓ'U  #fkNn,IC;9:ߔsv\ mȹtU} {`g*9i9.ә~AK8Hl2.PlzsO[KCIlzgAE&9.ầbHkvmc%f;CPuqH^?l] j*!J`#:=PD-r= 1b :381L 6lcC = *cAe<*e2656/C0N4L‰vsD*ި:A{ME~jFC mLQ% J.VR$F+k,QaF%۝__1-TćDggb^H3}lbAf4M :pE SX;&$}ޚq$}sڋ* }Lj(U6!7K?ݾ +&}|_x +*V@U%Y;~f(b)T#^q~ "FBAǰ" mR|À0mM:f~Ro^0^r+2XJ ״@0"2jp[x-~ +o~q NΏm;&Rh**@vRomL$lLAR z6 >=N U +t^6cϛ(ä[ +ֲj+A l^DYb B.l#6OiYbwC5 "4l%4IOxi%0A!M= JP)HOF{[ ?7z략g3dKWl`gj׃na3Z=- <(UCVs l{ Es:Ğ'Jm7Ќs!NxĜb5~s'ume^/ W:CIKfzhXqOæZ"7'vUk=wEǚ)|@- n^WÓ\Fuxq7ElX},Bo"Z[< '=b-R-bejƽGrYw.ŏ_7c=rAX{sʦ +moE]__ZS)Mzh.4Vh ]F,SHSxSMzQZkL^"^2^¬^Ҹ^^r[,~:~ +~"~7 =^^ĂƢ_}_ _".1~*wiX\/nlzt)Lu!M3djKIp ;DBg!pVSdJo*dkw P%[Tw[ژU'&I {ߊA&AE9;%KWV%6fgq/'$рlXSY B&J^*&hj;TE*p5s@6ɮjլ^¼m!3w6{]R>9,u.#l4Hq[H5@05v?dDxLbT +NoUcQvH9ZDSR.%C]ct=NPl[$4"O@ff!>1GQO_mJTD){r~~=s]sHZ[t~'ڽν@KkMgS +"k$PKHDP؅aQsOɂ!2!bd!-t:(- nPS"0@9. EJ)Q%kIYsn|y9Kž?vw˫ba;0i`٭X˄þXYi3+zф:/)ԕ4͒az6؊nÕx" 0+;$GuW{L~ۍ4GY{`|r=Î;py(SqWtKjCe -?|Kኰ3 Fk45?lQYZ[%흤iƫ.5=7ߘkn;cv({('쉘jO5gDIz`i`_&L;퍯Dy+jt|/L0u!$~"ǻ`\T4mYD*tq&ҜjvZiS%P; \ ̨S Xo.Mh| +Z;P٭7M°>`{FNDLq-{ Zr}X;6fN;ί7V^s-=CO-{P:잣K^Vb쟹38ĺi.kw2{egԖ1?1tqiM/aL`Rk{*7Nzj;V|:+}j%vxw%CGGc㇐94SPTY:[dS̀ݵ}Nو_ܜj̾Eע׋ ўl7}Ib|ddÐC4>0!2TAz +Ne ! +0V2XrX)oYC\:LmWqĆ:fW.\:Om:n#mWG:nIӆDxE3c,L6%4y1?|dlhb,llnYR$JZET٪Z*(:n7SO-DO{`G).E}M};3[ba DM TPE$1kA?o 1_[_,^>/fͫ6^Z'"^{bqvefqڞ*UI/2](vRMj|/MzHOH\&Cdm{2J!Ed6GlPn0nHXH'٢dGU 5z[yݱ&Jf w&EtB:sfK ɲؐSs]$MSL 66שկCAg\Z40+,wY]MLR]nhKĦ{3"LE-4ƳL ogјAO*qq;EkbH`Qf4$)g06KL)'c7Kd)l:H.ܔ[vG_Jbwkş\R,Sg%QgŸNv14ʦ_o<ϋ;4 " Nt[3{HfXd20t &q +I)B0;bL2OBS qУZf11C2ӅmR$ )̭|)x15&L +B ƍs_nj""C>n%l1T$<`J%noLnU^5bP L^'V +N?A5A6Q8mp +쥨S\`e*m$ ps&f5;Vrsx,9HS1'tLW +&C2-moSuuo[ r*_đ=i*:.\ +gߑAΆߠGΉ>y`[e ԚCk".A8A{DJImDZWB +([{>x2gOCȃΣ(`[P{Z6!7A[lĽR6.AS[pcr_:c4gDo:Q,2 (%`W K#"M!eEI5$W&ԅ 4n>T sn Ur!֖hs/# ˬ/1EXe[+Z1zc[0,Ny[DL2`2ea9:Aa5uC@ov|ԬhlB9S;44>h34M N]|{j+.yu 'mrv8Q+i:3~9gmvcTV3pѦiYYQ5 +Y_VOvu>OmF +sḸ +XA)ovTUNVJ^bςtFYIMr~qNH5VAL@w' 69ތ}Fvqv͞~V;ΠJwpUqQqYuT=N=l_R"M()`$վ8a!h#(Qo&lro!q")ӮIX=Dʠa=,oC +.dKTkLo\)0'K6u{/jB"`!*!.P<28#VVO5l\$C=~Z>g#K58w<ҿ:;LzhMl0!w/O[(@BZqFC3~n7(&͞KjeN&kKq*לuݶ2iΨwtEĮG:YdM:I`$)Qpd)QqdU x)"D.$ )K6&apdjq&I +U#+Iެw.+q9!7q]bL[t+qO?q:^ue(?ve դFWfD|]<\If yLy:;0me%VTIO겑$myeBEU +YwB}qLޱLYwr:q,}6k^9%0[(ޅ9jK )= sK3:H늭vJM +δ9L^m?vfG؟tͺtKKXڿC{"fePUUVU')"8b\lX_V +, \ {eAS` fp5# -xnCIVuNTJn/r@ZMN#Gi@{)=C[VUà|fB vEK"`ySE8E(o ,٢yo-s1UM~]V|M|e$+U[!XL +5e2gZ»BE:ӥ";&k/ɑ:=ODލ$#fVPմ+!s@o̎r܍\Į?y])֭w~K͵ " 2mKdk/>a'59MΚ}-ii[}%.\דk5(-6r|=){2t55|wo?p9?6u@&I)d^c`#5$ JpLA᝿)8}TD&X4S0wƳHW7U֯Bcp Ue +֟I:$SM* Ω-EBtdfenɨO\:,$$uЛDR(ѠA-1I,\BzxEQV1C#2]3e+9~àMHڦʵ7uMv^fK=hV!Cw'czT;@! iث+cSSKs]z NtPގAɛ1"!G{!fxl6k\#hc_k5R,|k܋>)^_aG h8oGD1/M Hgo3fZ-"(3OW||޽[$M𞾥۠V_17TF:q+UVܿ2G9G{y;ǣs*I=X2,4NŇhz#f"9$_aqƭ*˾.%)ؗO'<^[WGf^'/ +Y(PȤJĘRAR*Ia"F<i[72Djߛ=ruw̷C7ۣ7 "тP+ ΢f'O3iYT#=фEO\p3 a q3M퍛MM?<) +lp@%SZ֍M5%Ra)Es!9SzaoE֨6/ +OJҸJ[±kTftGYGNO + H:&2>&t ,-Q/XF#҈DsuB0;Cl(kWqHϝsV >3h:R.i X!.+F-8<ʖ,JB%E4;{UoR'Jv7 Q1*<߲m~wD4_v]Ds3BԸMMM1sY_x4 +?SMqKgQI:? +@6Z#7l)[>g.gJ+Ns $%jL %<航 x0'蒴 .U;`_ǝ#,?߮Yd`fmD1O͛[l;miˠUxj77\C6T}K@4b +۽OkkC{˝0fVV]Mکa̅SC,-P;SȨ@gLǧ/{˃Rh%95A]~ʯxźHV +fJ\Z]L(`,2CH. #`+} Qq0ZWXɉeqWыFߑR؎Vٗ[d4Ց6ǻp"s* =+|z.Cv\jyqZ/oG|+q׿ԕjQқZva }&ق qر0=/VB?/0#Dl"#f"2YE{$hJ6ϹaܡF=Hw)))gh^˖"y[2q!*kx~IzX>wR^Qfuu3$ 􍘢uMd DX0Qۀ:ҿ{:6'g wbMScA7cT);(8\BsӻD{m.mq=,-4V us&)wF~}SCrgB uElAU1л^CS Y_zQ:S«?hvlCUÈϤn?v񱊛+++I.%zDOE= zkPNjZFDR޲BEKZCS1(7&B/2VU )܂ kvmu~T3ZU1 vyusAS+OUwwKKuHaRVazW9ñ0P*h&Mzt߃Tp½3P[>߁U +7VYȐdRyb?Wi܉qrw{e"y]<^eqv8Xx`BO$4'tcu;4Dd~)u<*A L+B#`Llh}cÆ+;R@7J! +Q&c.] +Il;*G[=> $^JN]$-5G;Mڅ~;%5=01U0Ԯ,˩'&3y`pDtL&I&=Is G =n<Ёז 5ךo՗U-ɎMDU6͙ڗG6MŸs/Ж+7y.:Mx+7fg:grB'tH +O6VF8ÔD-ZTg밌Td* I4Z HG>!tZbtA=FRQh©BHLD}'rΕ/mCqg|vMW |[;YBV DM崘K)Yyx&-*aSْ6,(<ʘ%ר–Kf%WD3fTYeK|I#Hy140PD}$wddͤ&J8z0<4.T-uSa) +*vvUk<}dĵk֢@2dG=.$Sҏ.zW>杣.Izۂu2djf>GdƺrVa72T֔Zǣ:蜅㞧*xHjn`*Q)$lv¹ccTQdxG PլiXf,+,fj`fzB :Ĺ{ 2eʵJ96P.gM \:fs1df>2Fgb?ef~ry<綱+G  +9r.F\:|r9tD&IP%rP͏7#C<'~Y8TY9X.bܹ̔F=!q ̄e-$~ .=5&3IcjR5;|yG@a|/BQЍ'm ?'ThOS/ pxKOyz[[^˄Ůמ(~y{uTgGo7Be97<.(D7KN vMx 3h2:P!? + +`dc/5*=NкjSvT_d +Uz6h'oq]9O~]:"wx-9gn.u[Vn[V+/?NoP>.mL0({*n/{?m7x'vgσRaA[OmG zPԟ&y7βMJmּMy7Nĥm [0޼Uy7Nܥom ?۵n[x.^;Α?$eٳ + pln@so|.Rj9|_:p.n:Go:p.ظ7op:q.t˼Vo\rh]ʴ.[mㅶ!\lʱ{+V%炌s\=?s)- +{"j~Kr! dZ)a#5 +Fu v0#Q t +7.9.Y(/ꐔFyzkfɷhڴN[kfkFmk:nuI:: +qo+jr^ַ@u37}֩vz]v|3;KV +il35dQI~ʊ@(:OnFy pkߊg C pշ s' neǍqG%s p F {W +؅ 3 pw ޛߖuOMpshQqO0T=^s~oe}'%'}:x UsGw5x+$յsxI%]Ν)^2h0쩿ڞ? =2b\c }y/\X\0cYvwi8]5`hsï~FZot-ZE0$D+kَTׂZN오s;J+fjK:v2NB$ X|*nbdt"ERt(Avuky=bLܪZ5P~{!+S t>W*b_dS1C},Z絸=3 ]LU|>EF$£ r lS"v7! f^\OkG"R&>d5HL@QD?lБ0m}DMT^#3jį#b̂ݷw*}$)ߪ#6pl$}[GNEB@)mFH0jEBG9 L*@w5q6WqE`-'BSC, PY_Jq@RE"4^ʋu2;l}pdD#+㿸"B*b:nr*Mf1tItT뷰EG|Hc6%bœS$*` "1]jK6#hŋƘ69JÍO >@aNJI E4/OĄ3%gEw$`lIQ`nts91K>>\sЂٙyu_˲‚J԰r,&/V|.e9ΙX6t?N;xx3)$n5ro7ijB:hlH_ ʐ&t$=:@l|&OAgnAQ-(>' v)Sx9*"S,Ъ0DܔxV/yFj PΑPlL`$s=Q,]yu=}ދ!xF #p8 f8jTZ8i[--/ʟ,s_[j$LXVCp[z%];dή$VT78Ts֤m k^s$F:C~<c\vyKZǎ nzU${NK >?qg3%׸mTDf!UbIc3 ڑc^u #iYGS4J+axWK.M*ۗ`RST-CIˇNH/%CFE0vL%C)+PgVL`eH2#1)cfϜt(S?Pܯllڋq0, *~C 3'RYX%~ZӆZy쐲kҧmt*&e.]A\Lp@i% 2O\tuu/>;||?;~6n_U79:u+_13s1 %D_^DYNk2S-3\n +;# sװEnd}դb*\Aa(a3Exf7Iv!ݜc;zK۶a $MnSIY,lR xȹe?Ls|k_Н14%LmS]/9e=iMկ|!D3Ԕ4iu*ngb#BElbaM`{fFAJZѺ*Ydo'WY +iqa:ѺJ}ðF~h`l~6v?;s 0ZzR~ji4wk 㡊dDƭ,&h4hUe+85XMiBD-t DHʍe˔e);KTed`14y;=DZ*VݽuGi?"C[Rm6*4;,SZs8gTݴ\*N7Rř販ͦr; 1#"ڸwSNc޳wNLep踨3GO)ekMP&;WInijnbWx|DO[$2]?ޞ>HFmXE`sf ;0uH8]$ 3⹏ӷJ:٤c>mP'릤a6D#U{bag+I?;);( +Zf"*yOK7I\x#Cgc"6(>=<Ȁ|cM;-5xay`=Q$,Xy;-Tb/0&-^ +T6-bŹrMSaiqrh9>堹L;猍b%QUM PH)"/HhCNVN~\FR΋ȒCϡN(;s֌%SAXSvM̀J:T1o}PBHHǹr Ě@)Lqo_JV<1C #Ţ)IVPP֠t=6Hnuÿ`l?MlC4¼CSj\8XJK"Rt—ՅY#S`t'm@Sޖs^2eUi5Цyhy&Cd?L׳ +&0+O#}lі#ąQҜ6cEርY +Cc+O`ÜU8]mb]0SC1H6e + >c_l0.}/ kOn7V71p+Bcf̦.MM.x(R梤F}Y0ai}:R``+"8/aע7lڢ6PsmvFzoS$|yw& )ۂ6#8]t$ jDh&`Θ!A11$@ ۓX)FWT쟰Jo)ńW]lyRsjDӰ7Ģ Cb"~@DSrMDoE ,@V:cZF"^ݖ#(4xL&>xv~iƨd鎪D̖bP^t'D:taM;1V)OiL%H|{1|;wko{U |F|czא"rg5O%eDG~ƌkm/,@ӛs*>zɽkU ñ -OYXZZ0/߯͞ɍ$,DZ#C ID99ɺC!KłDʓߋ;T 98 Vpep /EߊUlncPI.ܳtxila]~Z#n&y]9;7ۢ,8(44Pui5a=$i͑I77Uckr DTA^jX;m Z.vs=#]{"b@I)𞒐OgL"73bօ#R΁ %{DۻM[һ͙5M[9w2buhT )@I"\ނ/*|`QܻkhT̻vȌ^Ch4m 1#|R yEEg4U"ZER4fU:hy&Î%;p_%JSҊe;pb_vE:e;hz"㎘U=hxZ;}[)߯ { fY"4b_O͊ZrJ?)-YhρCM>$H%ּwwA}"iNHBSd̏콀*QL+T@ k?E6nP/BN\0>eA<'0D ,( N&9=F|٤όT]ZN]Y *ICEC-Mx`.bM.,V,U-VWiI +jܣaX#oډZ%&t޻7M#Ζ. Rfq~ɃlP,P-SJd㽏Z%שw%R8 GjNgXԜv6'zJfe7n&y_My+`5jc_ 6s?ɂJ67$W?$by)Y]@,Q=JKPwpWэ1-ЫM + I´dʁ:Qս *GWcW^M"ƅ< zM(QLq 1a c+{^U+Q3C .!n`M46WS"Rh`{n<n8ܐ)I;@~rVK΢FKHjμLRL6^ض$i2U89_B]hhloLv+њ8oUt5+^yێ |XN=}۲k]Ue{x}bt?y/ Mm{|(ck!R]}Hz 8ktT>IUw 'ęĄZ|xy[~x}5eO5zb{w_5xE712ۓf6³t'[5 q>=Z5ւ)ÙN}uJ(/sYWZ'dwu^B垒 cs'!&qxZGϩˤtzi` ԓ|+[j= ["0rwٶyΊǨ Fϑ`_Ô dQҼu#G!Dk_?b&KZ0>Ϥg\#$!LްJ`%k}048Bpr0{8&)50(hhHCr~h;a1׋~r#AY/Xг-d% _sOoJ,Ȝ[>4^zv"V1HMm=H:tSM_Ėı^MUVy0u`RXNm$#]+m'ڜ3ٽGvn%.>#-^8:gp@vHS2a犭 aa@2.8nJ\oʽ1T< 1=Udg뼙 />0qX%HCgAFYt+ ơl+F/)WkVjCOWj\(%,QʿSDh91\KfUrs0 $$4.nbItœtTRQQ#,K5?cxUlܐEP|C]XR$6} $dK2I֧׭E|#{Qx|#;8}g_rһ~O4&Қںj°=&V,2} $o34U[ƶ{"O@2Xx:_:(V0+kϟoJmj̷a7d66t$̔Z=g**OBs.3gR[x=m@oT])F(z+jra{d2f/PRbQxcZ3ӆ[,1jBk2v\$/B1rK]Lv#Ւ2xԙ| ");mU2&û` epWt9DZLvx+³]7Ggh_ymh1`$KWUyUf+h'٢ӃB vZqBH!^?`KdX5+U%8 +z,<'Yz[ָH-^< 9Ikmj\&Ŕ؉7u8ț׽";/\a\ԲJ8 g9ճ8}P}7cDC/;H}p@3qve-4Y_Q4i@- WI㪯^S4=Ė8%UE!4]a< +]#ؕ~;L٨cw@C 4"n2ArPsYw@V93hSeTfy1LM---L7rdm-́`T`3UEU[\p(_q-֤_2vF3eO5RN;<K6 ah z[l<7þC Ihp)@>Fğ*7N"~LĚP>;Gqv?!AkgVҋOwLfw.Uj88[e/)b%LZĨ3 ]u[ lLc7D>OO$nx%?auS\eLWcf6ʓ kXT*.UYL-PRPIm[(x36M.B~0YRKͫL߰y+ [{>R%D|+ڬP3QL,3AL!|YjsYFT|br,1Jvrۧ]:f9pO X2Me&}TE뀡|VA +l}~BxI0J:EZQ?HCRbi'3Mz$'Urb +dI:<1kpP7ĶF%Đ\>/n/;߯ݛ oB g 3_M=vE)upkwUi'Y'"J} +,B5撂a\BiQxDzhaHW]eFjNF5有=\W]&s^GŎ -7 %w>'ڴU4Z<2YrULiPA,r]*6K`ds$Q(ZOtZ/(@ 6LNuyYZ黏LT~8g܇?B[ٯ0߰zdBJ0|&Zw qG{b̦ٸn!ܔ2 7"b1h3eԝ<]h3)_ |2ܑ,8,SnJ8rZML&?sG\EiL>]5eȿ@!6| TBozPk- 0ƺm9p@ C:PmB? S`uM>,>jp_0zYntvO&,+Q0ѴkG2[%75Ŕr)-'? r!D6Ly3uOSߌeXZ϶}$'~ƌfT,+u1/7/d>xz:w:S=/YP=I>wUDZvxp4hHuL.MjW(,^o^y\~rLM[|`:ԫ8]Lfjz/z8 'M(DS 0 Za̯2zY5\KP1*Y-( +BuP[feHTy@ǚvٳV?hOY^ +6Ωx˞k!e|n-28:n>ʧ6IZFBb<-6bb w@uq{T9.{!yY0-?qSumƕ_T_ O= 9j4?Pp/yCH% + +_DÐn}{ƀ/V;w,A߷ODa@"t#̺PUꎙ6,Q3<7I.]l!}zf ?RN&\ڸ$k-.4|mEn0B,qJS_ULEϲ?S=}s4Tm)D`\%dr/~!姹?݉$ۺigiAwO\u +_cGWO8V?鳳z |pƂǤ{;"#2+%n+;n +JW24§0)*cRP]VuQ5d #W/ôp"ěK9rc!!?"Mf5J4U%R;*9H!1$Eᠿ077p23'% #r8RPVJ}:7=W""T'Y[OvxTa+,wjqaHm2T؄ 4?+}$}P&ӱ#%&֋ֶw\#^=52ŻuqR m}\1%JzkWD<9w3](Z䘎.2Ng`Ս7 Y.K!R U\ !el\יִ]]"mD!`pc{f4 ($8D sjĆy'RT!& sh#p~?ZǓ^:T+^=r1UBքfYQOyOT`w_zD_7(ԙ7u(C\\2[@,캏K'{ +' ¬ͿRD0zy#3dvbW[gYzQ?NbbnM!X=,Rr2I蛩FFhW^?%PpFƙſcmW_r]/{x*(M?ǚP$dd| A}6tM.k% _fnXwLO2s{{|ͰCv>O;|Ƣ yh6$Et5s"~6rerѭrx>t: #CԴUm/c]Qcbfb x +رD_P{Z̽UHKrzZ"]vGj59PU8|5ަ"#[ĥXipHfάsm#Eds#28* dM[ZZ-Ŝ0? [⦮"IC?8\-90K G/hQq\KCUajϨ'T3QpJ&sWo =D[ KxJ((KTSK +lWć :Ii]+$Z]K +#1_2|/u"fe}?25'/3mPqELňcǪ^ɉ݆r#+ۜn)KZ 粩YI7-gZ(ݡ$X aZFF( "`tLXe쇹=X1EIk6IȨۥ.?pD*Znj#:JqTxYHPs@tJ8oEND33Ӌcqn8[=*JqhCcWw9.[bbYd0|bfÅ#jb-Co삜[2m3}9{I>b%hZ)wZ rpw!e6COAqYB ghQ5g +d>xYq`;$m_ul$U,K#;c)Q5.wJЭ42ڝb.Ev8 +ig1U,T.]o7@5 }.Stfo-}M Ze}q p3⻆K E KW,s "RKہJya]!P#_9y)xBl酟9Dk\%ny} ܳ#EAN R9~$ILvA n̥*ĥ9Rd:$%/#ZʼnP^~W܊KW/I;12\"iL/=Ըb1T&XG!-3Ƒ ש'65[$.4`pop/Q;m\;Ilt:3$u>(sαzyE^H+*:Ď\g+H,ϔ!/aҤ+deIvr1e ?{9dxg&go; +5 YЋ{N#QD3^zq[4*>H+?\W޺%8#(6 k)|[킋3Z[%vWˣ(qs`4|4W$Hon;BsH~&)> +Y݈ON'zH'J4߂k ^,!BZ #JeieT-ztuú-q|K׋wlj5ŗ+Euz?lM 0;P "̲S}j:O{P~alX CVPțኮ$L@b]Z0;NGf[2FG(>˥?0HÓk;Y^Wkh,~c=ihB[\rpJᙓ +M:v|iGL̘Y܁U'qf +}jfvzIqc\:0W[X Yk#TbROf6,Um2vwņ ^o7v7_C d R28C'  5 '=7A7.(^#!a}=1n^W7Ne7TOVŖ@cʇH03ILYL:Û0eSHgT,<h>_n;G-zu;w@|@?Y='*eN4'x~+2sFcd0J~S, +8o`A +JK2,iyQ!c$YmVLeeŹ WV\ث%ʶH3QVmK +6i%*}W,[)eDIbaiA.1Y\C=7)G7گ M*> q/I5Ej!2XRt79KߙiPHM&!\T#кZSI7$4*xftPlnqH]3 eBumt} [1B ~U|UB<o‰%̮Zzۭ]Eaz!G* Z|ľy#^|B$z!Fn|V¿} pWӲ6ѿy]z!Afg}5۴΄퉂鹄oeax1۶Y$8 ; +yU vA |?侁zzj{c%EEܣSyqz 2 ,7H^w<ӞIפߨvZ68>`Wm +XS UxqB$ :~]5yOg;[G`aؑy?-5L_*?==;(l"^'L_' 7l>.#@O"HWЖ?oKпD-Y.; [g{ Voo0- %)T_f~'(>W)x~ku%̌:r ݾxƠ\ZGj(= +{\1c:q=J5nb>tXثamDdkϪ_Tt;TKVf[cLD_a֤('p4'2ص#Fn郧*D|W)5HѕTva>1M8^ϲ|wyu&%jtJ4$[&0M]n(ܬ-1$Zī4ڮn:WZ /'! 1Rc/M9:-Uݢ7RuNQ0,KmNvW^nN?$ )"A0DFe/22z,!#.{:|~`8E$) + +Ų6:REkx4st BWo[׫[.k_ PL!-Uq 5мjw &&t ӗ{E#v aClG"z 2Tى FNvhhjTͺ%LF&.dMom(6^" +^"%^a}VDM^ fudg"pmjޤuugQ%b}oʷ%[5.=0+3k;GP2c[шWWΟ+(m)퐚A뗕 * WLʶ~KT:Gi]%IFЁ fۀ7JZ/MA_U*JYw*hx%Ko8O,Z'ӷ G=!n'Id9:O<.hOCv-[RELK7XpɞLښ7^@ca:;M9uC )*v'BuUpݽG6 fm +[3̋!DFGh'%!8s5g?6J{~aUwC۫Y*q#1 \Xz)헕5Tf$E'ͮ #Vݮ*!*0lm@tY \>dnc 2_ڊL#\4I<vvɟ!/70o ?U+m]8xQCقf\VNy"=za^ +NG* p*-g33 ɴm&L{,OcoUm]*\Tw R%8&_~ܺaW2~C\pc7wɻmFpox}WfV4)YL|e剎^+n W+V%p-;┙PTپHLZnii :9Z'YoFE)4KC A7P Y)+n3 RG,rC.Gv 53D4dƳúvE,Ad"-qmåw6$!ԡ9=efCze1!rӀ6ҭ45rg ƛޓ%w>˯dF+;xG:=Vn[0]K&7SkNUkuS]V-ӄqgvgRעz@6!=+[ss)K} 2=y#f;jq1~.tܑZ֑z]0u;iz}KpnDd[]bvlMcrZHM:)\MUuxCCvw߯R8ťFo8r9Hkd:k&McKFO]lGmҧ<ړ*'JQy*!QFop-ᴃaPI8/!9?sv$5}FV~ssiEFI{'"ˍ{ K: FGUGt$'<Սe8 MڈaRkeoNFJ-LE4Gj[!%W>X oCS/C`]eQ!>&wt0Jr0k pX}=by}Ӿ~vH{v^޽r|'ʍrs M +cymܣ4_4GGl_&9 +3`z'7GKRFVШ;$;v;Cx`' vڳ3Z}=jz^O\Hqtѵqt6cCbPJJ ?%ҐYzQFP5%|ZNCvFPQ0fHeŪ^)O;H~ Y? ](3<9YZ[ MfArZ"Q$ǵb$&)8RbyxWӻ8, +5VgZ%-ӚGNKn4,Ll̠r|_`xpx_wxvxnx_ux0rp:r0rPrؠNAJG +^'^N ǔ5,(*'?b78 ?:%%DU-ӕ_\ @TUXU,!cJI%۬,oaL9l2ŅW_߯{8Qu^X =&5y*XBWMůY7‘3iuEBQ,J)J>7j]F-g6$X3'ʒZ^9s46^0̪~'`j&G=(2]٘'0ITZc.pBU2C(}{x"eWh;*^ZVwf|'윹\1:ONq^T]bQ^,E+t +FMiWk4BwW=^+q9hYˊѠi ,U0sT~k,pUk6Lio;Ѩ%g[,^;͢$ҷT'h;-׳@9 (5r/b|_pau A۶m۶m۶m۶smgvg&6v6"+3]مlW[_#kL#j/x&c( Q}kt=DE4 ;B`hUt }p7fҿEGpD#8@_,D.Qr2>n>tq5PLud-Xnu1QӺ:p0>*V3 '6$ߨR* DCD>{Xd;>z + + bEwDw؇a:1#f01Chu :oji[I:-f* +ESσV㊝XD`@K=4s6(9Ҏ;KR#noAuo 똋Tٍͭax%; qpCƗGjfɯxg-|oe>-1 ء^zA s{'v#wKS3"$gG2VעniZ>GQP&g>x''vuc1&gruAcmbAl/pS(G3`*TO;N▅E%d+jpH1+Yyt)4˯w6?5+ebDMtJjX%61 Q;Q`T$=J*#jre[pTѶN4.bPnsБ7L̈U#ϴtQ~詡fecBوtfac=?tg$Pg;֜=h2k״-K QMq`gCG ٭]'|/H: 5Bn!Dŋ-'y :Ĉ;Fqدxs%fwq~w +p74+z}i.3q>Qd'=['Wb>rDCFFZy5W hZz)fhd|I}n6_]M,bul~]:I޺^b޻ڞkP+ 2Iܩ{e5g8lUb5`ޡTY5{:咦e R^D3lI* +ȕ)3:^ko(KHT{~Ypѕ^ jP5$ !Xa{[ADG)X7Q %D{00R+^$ل%lL$z FK@5d  8=dlPHJ=hw'Do15^GM#n. sg4`֋O2>hC%Pl$}=lKF7~w4UsVRbT'v q:dūcp`4?ϻZYyg/:1 /+~hDx?Zԃ!^"޸ ˍM\%<rM(PDDpleY 5Mɍ,k0FnΩc퍎.ٜ-VpgX*I͎qdglK3@2g."$TKDߟȦzi#k\?YdJ֜kӦ8Yfk[c'9ֹFnZhcqҬ K=S2Ej">x?:!Z/WaMM>DTWoab(\PqI]Wo36'.{+<& *N Ԛu9t};ؗ.l_ݟ::lVxFsώH[Zg}'=f)j=<|7w <1yEm.rU[ګk kW-a@4G1^bRJ^$AsVNF+oadx{B}SqS%Mm[u9ESO z.BX[xU<V~=˯!Qs5ka\*M:*2c8 ;}"aQMU+r͚T>4(o3@įHI]uO礕TK@\9 W;FaUԍ9qD1g9V?o+nqmuy%e &Ō*rsЖiw&V9d0gK'\ηc 48 -_"]DvAҎLN_aV+2igp,Av؋9 ,$81NAsN:V-H3\lM92=L 3uʔ!Yf~Ic.Y\PcP|mȇOZCqe=q(v\Ю|6j;X L9\|^a tqmi_H%A v4c.,f8\1`A.-0dJA:ȱ~? bH\}X: 1 Llc&~Bd@1e1a)<%Ɍu6HTԪX}ز3Op-,UE ^bBۣ#۝%GT:_1]?NLDW1߅P7ZIWȯɢ#oH3%KbbILb#Ӛ )m鑢XxĜVUQ>(xYL`J"aꦨJ(!P46#u5cĔOֺ \w7cXO\MA9Ua nb%@>-T)ص?x"s M:mіЁt}\3ִD( -\]|}_'o/Ų'6xY%X]6FD&A2%P0mK}輙 +YQHU)hOJ(z 3 E9 л[8PVxƁ"=C@ |<[84YY񒃏b\\j|ۘ5SkSL/e᧙;X0irJL:ZO&aH L8[ONMg*Mb44Yi8jl?<͵Ńc +?醟w&#EcI)L) th,B 2Cr 3l*Ջ T=9d"7t3ЉENĆ?uq!C41G%!&-az%})&17Oiѿ6gF!+K12gюO E"CxQ],Xڦ\RhXXlx_RiloXE6=ۙț9RjR+_S!s7D.-kά MP>Pg}pܟ ?^E' +حzG ^{7 P5iN9MXi؏UُU֏U_G# +d dt[d ٝ ]; !QݭߡRuee`s=|v_LlwAwIsMêٱ'YSCUYCMsHOs8KZ*B/r4w _tE"g]UW*l3w-v]j˭Fa L(OA 4Yd UD^^ z99z-sRFv Ё ^Kq#$㬷AgF:\3R"? ٵ e-]FߴIK7|xp*n6 jFUp +%V߅Ff(忽oKQzuJoKRr +濍߆~ +5Ӡߵu%dV684pwn*°Ԁgy5gf(x+y%7|K/Q.,P,+vܑ.#V-Q_ Ǭ-*~[K ̀-XU#WUK~[6T/0 W>뗡Y{WhGƐ--m~6)Gj YU +k(S%FVK4pHP<8?v?22oYt K:qo.[VqOX|?;1y|8<4|IbFp)PJZ|+2^ +XowCUKmvFm׍k nߠNwSnںS@Qdl|!XSbw@4=<+!@;8w5Z=32>=~^3/g[P˫$B~pȇ }w]cT$@nIH; qIeSRzA`UJ>|  ~! %o| &}ŵBe\,FjIC!ׇ@n4v +B6N& +F,(L Om|_Ko`{}q~+ur &C @7霱3fS^?|N ';~Qk =imhH=jZ:Fc&\WiDv)X̆\#x~=W'1Ʃ}-^9R΁ Qtﯬp)At>AgiN$K,FJikApQ$ZZ&r2olnEnc^qb?mG8r +"QE.d"Dqؑʱ)Ÿ˪CM?ArR bЈ`QPF3X%Eu\zA|p϶3=oomi Wp`ME8IB _ml{ZPVEb>MOHMgyydnU=NTemb3{ Xë;aiOa7$ҙAɟJ4߃+g쾞پ$M$[*C7lij/ Yv]2Bو^hW&yC[ȷ5#5Gζ8Z9̓.5jK#U?S y^#ԼASfWމ9L :~ٌș&G)JljQI +U20~b-l(*mMʔ% +J'H'ڨC |rtǔ*Z%!ʒ["HM@<[ Tws$(Jذhq ×= | zβ.:zf?%$%@q80(C,+U,8ty*?{{Ƈ-3YZ33.J+#O[j_\p85ʪH>X3'2'1aVj*-񴔷h h^.d:e%H3n2K^*)0iK,ZR$MCihR.R!Zyj5Z N,[+Yɼ>mt斩p,@:dQ 3eX;~SL39YzOs>)\jŌ9A?98~C`L_P§>1jZvO3twȖ#v‡(sc\Xj!]$rX* ,!$4k-gy:<ge6 Ԗ{${!YХ(soYgĝd6UAwdnݕz@%A;^c-DEze$wڱ +Qu(t9P +9'|)9ڂR'9H}O1C7`٨2`-7hY1'77#VuYO_j [ S:t7OTHeSՐbG,(|kZM!ً2G'!L7c8ofKvV'hBQ͓`TyE +r"Oyq\4#Vc wx7?#_`gijyZ!c\AjpX|"bûbȨo6rsT" VdLI &0ye%wd%NH(bBZw =[7TNգE]dmGX̶aV8}]af)< hovĸNou)P۠6qIc u繰WI*mٴVJ(BʘhQݘ5.S;](Y9x8BY()ˆ c XYerԇE@&S!#l!{VnC{TO. +UEL^15!܇4I`, -I5C;QK{}›Ҡ7D$s A31g138tAwXjn9TC%?]HaQo9[(:_|vp.In0a*w aM^X(N[NWiVrړ ԂƜՋmoژLxa8SEPtY 8zd1>ܗEμ 'x<t#?tpkm=^c䮌1mgW`edR"צyn)h.IeրNcH|/#܁KsSz 廃gIeF3Cܱ >1b"q`Am|WĭGu޸Zӥ7@SzO."viKF?HN"]c0Bm(vsy8/ @]SeGdIO0%DSL.+~(Jhpj^CA+ H8f\=0cUt#<x`CKK+ BizB!Xkk +U |{sCzMZIʤ!jɷ +g"djouSfˬUHfi9iZIx YPV^b5"էnXb)cٯr\*Vȷ5Er1쇖J_k=IXwsN/,n^)+ S竤SI60 ®q񒨹z Z!JAV-ʃ/ 4EǥffȬsCXc +9Q.9.sGy\ސsnQ{a}at:\ +P2~ueXtۂl 6OYAL8)fusv :O\x +Eœt̞ Bɸ*Ob"\9\g Q}kBlL|yh9N=*.m3#7xp%&)|oUI+ԃ‹S',aUêI$%ES-% U5I( 9r#(% Mp)YG**(%Z)%|ˍ%I+dX$)$j%.(H@()%$#U SU %QǏ$:5HUHuHT(+R$ KVΕ6oa{>̦ٔ2Vd$fPf$Sr8 ۢE\n +iIU%E1A))^f֎f6x[DɇT +nCZXSx +I%-n<.\ml0^Yip>}tjrRn3jlktȴ͵y(h1jb@T^_CV.Uk)Hk\1=,e|@k}49hPiqoo-R{L̳= ==a~iusSYڟYAubZ1<®3}X9#fQ2X x +RT:CKo*)iKLl|eaZBn9| YĞUؚ?TN6ke7Wσ֡ʤȘː`n(w-`B9S1mx]T6EM"wz1mn+i!hkgbIKo{ Vyܐ V:.Ձ緊u5IԨDmms#oAvrS[Etpt]s?7@X\Kkz65hѸ)գ.G(D +( W۽Ұ\F?Xg;q=A}5FkPiY(Ed{(a[Ӏ-HMq(N{Jɹ)~*U/|D.-K~؞L.ʖKs󑲑Sm)wmiuNR5@z-xxݜ9U#Z.=qN ޞAҫNzSUݱ9tgSs1LUٕ +2KrBڕXr'h2S b/*R+'PGvg_/oSR0b)WЙ+!aPEڡӜIK!bzӒWe'fhj͚^a9SYa@CNߣx7F~Ct_0(x)Xg.oA ׹ n^NKo? fe 8);U'☛ȹGv` |`Q5Ʋê!@_+ٝ-.2 +ظ&pUBx&^ ՔldSn=b]/ m-¬ +xoew1>؝da銣!Y^]^3 + $)8)޿ ja" [-Ҕ 7Gq|ޖ`N8$e8nҩ8Svٱ=.) +LpEW#J3=eh66V~38$Q$aM .'V&1XSx[.6{.<f'xH3fVQ5X!?&bRt3Slo99g[|Tř5'\׆ +uF,@sBY;~F=6ȦuQ _6/ф Gc90cPNy5I]Y8ӒE| N}E M+sBtGrNsW0'IMc(70Q9Ƌ .-}=.1G]ԘU錁;}舕sfC e5]96%,P':a.cB= $`/r%qL"Ro 1L EPLLKq+eV>ǂjed +D"r̔$*OB0gOGSNX1:B4eBDXιfr@ =ZNZep +ko\a˄TמZAG-+Ƒ\ɋ4Wp&`v&mf +){wMÍ^ qdU~#K#nK;suܑ jym({L6H7 Sꈧzx s'q{w_7nқ;v5b+U8+% uEv ͋O{$?kK?=t+=Hߗ+(Ę\7eF=K7+x{ո5yTUٝ6i!׎2oyѥg)h._"@q/0oeT׀+hԙHEgϞ@s9h^&'N~AT؈98S;۟av2fym`\P_:عѹOqxE[v 9'bXӹ-L~4,Q`p- +ԃuxvv0|nQK-1L7u:X_>^d*5yf8%sf9xE걪'L [xfyqGxϫ -O߸ !?%`meÖoHņi yTn>Oh9-ŶRvC-6neB-k8nu>*/ZW m\O5|* Ǧa?\BW8v$7 A?ж뢷\B%B! $j3Q-_%SBQk4 YWd/Fø6ZkFԆckCQkm9Wd@`\*V%S-y-'ibu*=KIX’ dBS-oH-(V’k.)g5I/<%'J n +ep$"X|@d% +11$O=_aGfY W^:v6)UD#ZP0O2YM-7^(77WWW`W"W+W,W=6?]1f\0 ?NA6jye[" ÏHUۀ!""۟2r cwc_!12$!fPS8$LFr( ; hq&FA:#".8JvT~bNB;DN!9WSMiȦ4̠E!ޭ:=1&xa3:TDl- [Eq9Bux1;"v8樟`vU&d aTV%dʼn1+3KOP!bb"rv5o|P'bJ)IbU%r#t;=#bqdjA0 \m;w:ȿoB + $vpE-&%hG } Q(`+qD}/a/h[E +!E}Īצ1~Әm\6)d Q-ޫ2dKhEoou)AۚmnVf!QQ6_C|צ̯Α귖@/@G7ߘwt5 +T" P@5,ŰI1Ԡ@MJ14'2R __B#hB#3 +~1 Z,XQ'W{ᯀG";jLrjhv2fHuˆF&~ e + +Mi,-.(k AP.nZ'w4dS_},xG=E҆[Y{a4|@̴(-Ja%/ȼ^]ތ<~58]H]v`^$^(^0^4^8q^Va!>v4Ha.wao\1twAΑ$F1n2(unc@kľ{u։Fl(7ٶ(\tw,w@?D.iUSSsk&B G%\;ᅢۨyl_kf<›~9cL#ffCq q[Ï f,[Y7"q_;xY;~ h{4TwÃ|Mw_f&vd{m],, m !5-wハPm!"6JPJ E[I/w^P1!f@PQQf#N:@DTEU]:{L_ooп +΂hV]{2fhW@>Q,i:v P[4+®#cmMk [V]2hZW@&Q,~: uP4+G.<$~,d +rP'x8@p5AB%" Uz<WppN ƝҐ׌7BwL t\=E8DTCF'c Q@jdĺICӌ!>v޵سZ&zdwˎL#ؾJ'`q})$PJĔ imd<^&%>򲀂e)*t1)Lj3Ƶ9P{2 4GO`w&^UDB+>{Ն'Y'shS K0YFB-pxJ#Ι +ϥ s ?3>>}} ?ѱF }`}}) >0>P蟨蟸\@8%pHIضM4I63 m"13vXU6DӨc8A^ְ;QYInZ[Sqko꾋&XczPRh Y6$#Z-t3(Q6!u5[&T`%%['}yiG*ZZ+YZMq`-ܘ%wSs}@@e +kxf#y혚b* ?b<zH9 %~ +_K_GW)O # 3'gP_Ϸs]ҿ韕?`ad;+V0uf;L:jѿz_ DcAc}YYҠRŷ'BÌn"RߢjTfV [" +ЊhlA#N_=֬ +j+Z'ڇ%,?00ҿabH%GqH!I o,"NO;Ao2IYy[ +)ca! Y ? z9*A~t=p$Eo~ 243cF^H/RW~^E 9K&mSMvl#8q(8)cJ"9)su)a?ôt\:C\Er E'=TW}<$VEwrd?d,9jGS]+pL9o'!.=0B\YS_7yVn>7xa9Ǽ/7ʽD/]07wnɪp7 9ppwI\&/h8 -B=7oҎ<"^YŧٷH=<˜t=)dJt63 4B,sXΕ< ru 7V:&5UPXh!Ms@%֌&*Kna8ss@TP̀NؽN{f0D|0,`VTZT6XB .2UUU1C;Afh?H Ӡc3Z(kرupqDkkN kPDVe<kp=V *eZkQ"m­ܣtO)yp8\T ݼѰg"ƕ&F$>2I8k>܉ yԡ5=nT)S4ȸ`6&d3y̋ <ҔԆ7P H>扗bŐNF2B7ΰ%H+?U=qoŌ͆'0OR +OU/;4 cTNlW8`&EONUAo9߫ʧogI/v 0nO )-crhF6{ΧkYG0hHT&Ǭ,Di6)~˭/I?fZ~D4i0LJW@~ mgVfNƾ #Xm4`7nVWK$Hj j ]BoG ӧ %[tq"nK-A$#rQ-9cbtNr2YLj'' +8bޅȼ IHk}7: +ٵJ\S=]jBo*n.,jŞ)!.AE6wA$ZHÄ1de;R/Rdpvz>:2@}ȒRQ,}ȦW=8h^7o =dI9hgN2ؐQ +{ Dh!( _'f4Gdn +Gͽ<` +rVrFQmouؖgFXGBۡHOGYE3#NjժZ8:譞K:wr2"FlHw.͚M +'?)ɎaѮQz]Ҙa~ŋ^@kFT]w EW'U3a7b,geЬǼN5tYez͌1'EVURi9VrH%XK0G AJ GC'_hwKQUqs-ݼXQRǃ| MRkP-Pb1%t1bF +Sgv궁'wWD`Ύک!hA!yBɸZ=^w9Dd̹HY'e~&{5Gb,VӦ$ kDRvt<3zPf3ڜƭXDs4(s7HGq y DI`26IJR_𔞎6^fA<@̕Pm(tw'+Q|ǡn3[UMwc}kUs%+}Yȃ'~4:s~]jRf.oEna(rI hzO~6(FQz;a((ȌfEwXpDd=k5H2HYRQLh,@JR.9Ha$*AK['T[d?⌛")N`YFC.T\$uN{̥#6OۙxD+W6wt ږ%s `s1#v[ß\ `jc3،xY::!u厦 I[1]l7>m/&bjL D;u߳9ꙛa[ͪ êj0!Y '$ުLެ3@Y\d,(0N̬3b" Zc!|9rshDѽľDn PN;׮~R1QjN"c# Gͽ0P#/4a"SLF襪捋 &NOndvu%mѓcy\JeE/Pӛfd@_e$K:W܊8&Xg<<}]K7X c Z˗wrdNYmE.2 +ϊ2KvV9L5jȎ*e_Ag&L 2Δs= o,B2즔<-|cw ؁AN8stܒ$ܲE'wy2}B3n%nA#lŪ@C3޸#7C0>}tǚi C\\8'/S7_;vqa%Gr ʿRir.y5,0ݑSv{fA23Ήs2%,hD/$OjhA*\ [a%AS*U둈+$Vk+y4Wi 5ZjggVӳe<ҳu4q?uYŗ L?$ǃBh$@ .*A_b乵~*O$ѮA߬#"@hA/%[@CET~D+6EԤw1=x 5ey3:qkI3Ft;m\K硂2f+>a.2U)tj1 >S#V'-")W(f +ە6bytQoH:8g.WÆ2_ Q +g %h)btYe +P4sp&UØ|B :N[%ftΣhT$* Nj_L5Cf|cjpw)cِ[;<ʳYyrQo@{rs+t6{:a0N)y6 veU/h;pg猼AޠY\}'g{3.߬&8w~޽y7F_`pON{6*}1,XREUg ")+Dflx'?<:4WxÞ̕ޓ?/!] +w Ȓ_v_ P(m3`&6p +?$W2? +W֝jxɌGftř'qFؘ'uw;' !F,7z>QL9Qf/$,ҤΟXXBy9g@^RH-%c)Αs@W+h$6M\Y--Z[Fd茆nL'TPA݃ǟT7UفLP#TtN=Rm U%/<.R"WF% W +1ήE">a`(-DPcIk 8e0]PvzJ5?ұ, nnWz`|^E:>3bFI)A%@ֈ?3#3 :(qϣ12($ɟ)הټwja.)Ra P^V:']*rݮaU. "TXoDރN*) T$ JރLM- '! "L'"!+ ٪QRQkk^DUi|Ӡ٦aU<$zngkWUBGƢ T*ha̺N^ӠWb!^S@}+MForː^:K)]7$.o X=Ug.o:7.IFm̒OMr6 go>f }TLN^^ȭN5#M56@''o 3-"?@A,RGdR&ҪJB_A-]E%ʧTn~/M0nĽ VޠtJp1x.[>>AP&XSٜA0=$<]<,µŭ{[_յ=S;)ËS3?scxkӋrcWm4pԢJBTnlxBI&X20kawtKKVR˪0hdVt|a'aŵ]NN1L[KUtyow MMfVs\zJweq_wkqFs2b%cثY߄jLծO|vxd'֔9yZV:t5׊Jv;e@{ THd&f.sggI ~ɍ)~CT6oKщR'7oÒQPm쳍mUpb*#k5˛ȯ%B~kK7弉agV% !,UcWtthb5jK&ۃ$\T +Mks'ϥּ!fSfg'`A+gOzJ +s KQUXޙL1RޠM OLݫW0dxڞ^ߚʋ>P"}a`MC+RC6ΎP>zžNJ'΍ TlvO@< ; eq,ydpsQf~M_R^Rh-3Ul̈́$$RAd(y-2 +{s#Kr?> k qu|:B˂" +jjG ! 5%,ȼBYJLuV oYtz220!L+"0s/x,kg]J+Da 2-/w۔ oXo@}fmilI|1>֭STs2qI2tslK|.!M ʣ9^qpB'Jm~"=y+4z撲|˖5)jBUէt-d5X7t iv¦ +vz{\p0~.a3禰@ yo.B!se 1.ElҐ.9 a#0s_W[31uug$QƦuXfۉ;6]`c.,Kbԡ0 ʊ0fBTJ'MQ99(L+0Is|nECq%RD` +$9ȿɌ!xQ +UIK#Z2eJD9e s,JYga!.O5e.&Ũy$jT BZ1Rdt,ˊz+jHBj 42 D$k@4Έ0wTKEΘ0KRΓ*lŮH&)iQK(r +W&p*"'Շ Y "p0ejp MZJeTŘe=S+{tAor!3ᄡxO)o3&[/rUM>d4q`񪴃Rd*h)L4w 8K-7 }߀,1FV9zp[uGkIEÆ +cuA wCU> [$UI[@@8ld>cFD}j_ +muƙee;!;W o ژk{\ܶ9d̝gm77TdGSʓn_+h#LȪ Or+&;=R8!)\3yZXV~F|@撾f{G~ƹn(ˆt`z4إ` M.=-gŽؿ ϞCqNn9oxp<:HG(1mMl3{ +Myɝ6a=kS;nڰ8W{= V適+^;'ܽoj=;lE^=򝉀 {'Ы @IR+b i~";9Y/_.>Dp=:./R?\?o<>';T}__ww_ 0샴=?KVT{pO4,iyW [+'WWOҏF|'G+ cVF?c!n]4!b()sL;ŮK/Xu''L^I Vs)9& }X~o%'5+t6kPN+h,Ñս7]\ҽl>A,ַt`g180`]4lx 0*I;o~K5(hE%jZ4M0(O:UJ8l7H`L[_9'vߐ,׾ÅE-B~K\ëKB"ybM3۝7 +3C{\!J+UBեfDpEdYv.AjV*jvߨ!ӥmATa:̳d]]X,yD+6qAlѤ[Gb>a,(>c}}`qӁI M҅cƔ,\TbEt#SI|;6}zqM2)`Ub:;|;=9POigș;ग़>K;^ћ^膤_Id/^P5Qb:WʼZ35%huIWYҍ\+uҟ[E0+~hu*7#K <*ZOc£= +2(ߚ]kDM^%k֝z;CM1=oPp>t߼³L??97 r3rrrrLy{M[4U ܁uUzČDRUeMm4Z '()I6+d7"e)3d +8k0f4Zq=̀oDBaܱO=Q%>u8]C%{y"avĞDwW@J%J_jg NO+2o 6@o8tRN C' ֜0aSmcR{d|MY;Woy[[+Nz>N^`AoP&L'Ih[V_;6^JWg+:]1 De +"OOU̡8Ca`\V2 e*Dĩ(= D)!Cl T_bpfA-"Pb9$3P^g5ȒWwιhM +Er2Q~z>S7PXM] +`]LLG2ڙh.UEN|x1 pu;V_J}1PUR9t2FQdƝ:÷ X0U}<g0]Y=2y+vLpF689k+0B c{%3[,^s*xd{6c_ms }u6k6跋x6_yJpњw66&QVth@Dz1:>qw7[vy6o,6?)`dK]C8ϚॿZY?O<xs_-0eqxrvP3z&&D#$"V[@U bk.d +t˃fre0L0CQAW3U7DOԩw(do*wHd[!&uAU;@qhP=PV=0%Dy~jA4 +ʅt'qUp!#݋iP3F +6,G2GR sD :E'p]W'Y 7J 7pes/6L()OǷRZ e PXHV.[EZD΢%oݨ>Ǫ +p߈#{3r*}<;7Iu+b0ιȬS>:T!˦Ѓ+VxTI&WɘSU&g;Ǻ-vQyshі+lQv:'x+w&b{ޓUv~]EԀ;9~{k'# ?} %?P F CG$#hGzomS51%>:z.poVK#)&QсOQ#scE@]7?8+n8cP % vT\ޚ?X4{lڵ)%kMiSx2pcs~0y9ʩzc&࢝3>8+B2poTJZc|8E? n3ƕ@ذF@hEPT +"G/)4IZɃ-HeMRӄ6"s%2Kfťr2R2)tJM%"KLLi(? +Էn{&S{Qb r=KUzy$ҹHyӵZ kC{w KE=;֮-BnFȕ=/|;{* {Σ9씦{k2vIgl!&K߀ቓuIJ >%s}I~>2 5 <.|]Qju.kyҝǁ,#ȚezI2K 4*ҫU)IPR"%G+ ,IHP.F"P$'!'݊B+~)t:}J鿼C^Y 7F<^v5ta@"| @Rrf[)ۍ->fԓ *5*JMB%|rGۡXt}\lm0Sңk7 +7\j{]DG1>mPfE{swko)!N;@<=v03A1иsu$Ho!LA_J`uqrڃJI^NLoڹɓޚC8Yw0,޺mf<.\ A:ܩ KTfPo d-2lʍzJh{7٤dmH6^\T^ƋI@VYt7 \T[6uF..410,K(k Jm.ÐZbJicWɘ;f$ո\&dE3&PE9ݸK_n̓Ӓq-DM;1HbvZ(dLmSy[1'يIW^̆'2H$a5@&B8I%C [B^aO$ + @G'_M7`#ᚧ. mQu?w0(=e9}BB/e̯H^?&$d MM(D& H狁oA;e;G{`8a+ƨAiռ&&FZɺv)u9NQV9k"zYQꇔH{@Ş ;ԑpWQVikn_ rެ0fϔr7;XWrWga}h `殎zVH5뇧L..g}6CTg!2 S¤Bect|vuCv3hlj~CPi4|410|*}Xh8UOh,(sA:r#\V5FYbP͋M1^|*HJEPZ7r8{+xceCR¬ub^,trZE/I.9,i!*",_I:4=^ +Q@4Aضm۶m۶m۶m۶۾K.}$WճڭMwOo\e!j!M|BeД^]K10˓;ڌAE,Fx*p&d9RġLv&!e&U-)|I+cYuDM֍V0KvхFEٌFߔr1JMh+׸ {E쭬}iM[6uۄLOf6د'Ƈ˥ў ^q#P^- אb?/уFϑA,CEf>&l1hcRP*Q_ZEfn]Z/߀:vf_Qmyst/~J' b>~@5rS% f955Atni5OO8PFd +szj0E&?{> j[X w`0;rŒ3J $CEm5;+34=0_R~jmR5_RML?;u٦O!lM2Q^4CbӍ.+A܍p\]0D,=(#FSq(QԷp<)DUI4&4QԭfN +DwGє{'<7& i#|arF_ Aj4=%◕s4|j(Eݨ˝4]7l(!/:az0zm"{ +dвҊ\'yxCۖ>[zce0*T }fCZ=(l߰OZߟ܇L+06CR6N+٤7Ύ茸춣hwF?^ld=mMIĩeJK:c氝sAŭ1`n^<M9!X>do|Ũ~&bjş`{{1dDxP/rVLt;%gҠ:nߕy +J a PqA6R$!%e6d( ڒxig{>?YzRՋke\?"u 01@6UDWLDb!(pUvp3 J4ec"7їId $[K$i+-̬X,{q.ßro}on??~޺󉊈l˰>#ge/`{%C^FC4, nt D-C^~FO PFC޳"Ϟݑ} /a #Q}iGCo P "-I@5MwgqlˀŒF ш AB?&4B%;`m6B%P9B$vEB<p0*qy#dZY&ŋ "P ez ( iM;['`[YFY2׿z/ZWRe]Ay֕9ʠKŭZwW1S{b)0KW8VO67t2~ ^ Q>y#gmΩp+غ>̾twkMnE|}W]CL ~,uhyʸ~nW׻w'?Ow>Mlw27z_imDvKg=zr@x5rc$꼣GYeb,~[/I\C֢U^S5S]B$Ar4V8A5Kc30'9_{ 0+CXҵl- wZL6UMˢ<|5kh"C f_8(|֥u\'/,F9! \"_lp\eQDh@KR@M1}t΁im<Ȼ.\;d7dr%}E.꒵8()$,&e}ry:ca1'D7C+L%J6~@נ@;ۼGʦcF2*MB*D]RP*D>XQZt49Ґ, % +HFzAcG1-!7A#ڠU/uwi$K37%_8MʾpnsD-Xi4bm[jً@P@8ؽ7LãiAD%_@hk,?5`L{\ {~(wKJ:pezj-a^z^Jur!s3rGkܕlvúg#;ߗZ_0GF vR18[-f_ >IS<"hpKFeu=њ[{#31INf543н 4X:mLj>qT#;cTߪ vMw0:n:R{{x/q0KQ݃r:dse ++BnWy/_ ߈ȼZ*`I8&hEpIBU +^ݐ1qj֨Lv !֧:;z*: 3׋V`SEX$"?C/ؖzJUxI—G-$iI*.cdW1Tq;f4~KB.a@}Mզ|#.*̙}TztIRIOI̤ծXvv䙡L]QA{+zµKk3Y\џ@Ác:D|PPĴ u0}}бhֻ2- ҏ7vxE&?1kA[xVJŨVP[jvEkgEJQI[/*M  d VJ%ܝ#$&2~/7E U_&bO1~9 4Bgœq'>l(!CoFMK^)K`] VHF/^/փ3 lD64 mbvWx @=2W#Xﳤ"2\?84%=' Ѿקg۲u9sYF8 ~!bp7>%J0{= tBxth2j~Y҈wHF]04w-c `kg lB\v%!l@=͑H!lZϬ IWZGW>!8O!xd ,#pnZ1!Hm"8zm$$i$lzI +aX/aXb,"lM7Er +ki%kۓ6MRJCwm)Dxl0:F4i3l2FBǶ itF4iHlj  #bybm.05,L#!KuI3ޚm3IG;)g'˨[1A<ֹJ{L{JC|TQY7(TF+e9&?(bR7\WU##Nm+&XHWۆA7j6AWK"/)0m+J pG' #Q>U$oI@YJ_+|?1O72'?#Q\)͙v{±5XJ|g|,Wnpœ@3J3[07^E7ZWd~ԉ?H`w d/;.^ux?ꃐ]_k;  v@!4ԍٚ&iY2JR ٓCR!ǀ?. o +`XGugNqMўp-6lO,8 xv/F]Z\n8!O P}wa{8t+Žv1[;wj;y_߷x D0Z$NҔ_I`Ls>|iO s=a;z Xـf`w _PwH~1r (Zp3O?5O pوk"Th5Q _u6__/O_P,^a^ia /ȏVPh[f8L=\}ASd dqiDhI"Ef#9[ +;&u=R,ps2VŲX)q&\L A>|16@ⴴ0(}S`m$/A^݋\D_XZ't@Ȉ2\J{+ӿ)+٨x*U-ijyL9-05dL1SMT TJB,[RUdlsr50)zۈdi{8ISN{VQ8LnACQ9١w~a1 NWwřcn[DYx)떌^.h2~m~MFc?p>/f#o-Sdwy'r/zG?e'};)6 5M4SkGįʨ_A<=a4ShW` :d/϶|;/ +o`]uhI6|poqaB>Jd/aV׉4iQ:UW7pb;[W:{b;[vC\ ҄?TFqN}NubȌxhNu8 -4qL+urq,LOܒOF*]TWJj7bcI/\>jv|/J?p>誸wb/?`Yx|i/^t][#[mя'ŒFܘ'SQCdwJzEc~ΆWWh;X擖7Rʹ~Y:*eT_%`EuSGQDS px$Ê>PF]p:u)TSԩSEYF'BFAEԱCFZd4GԱ.Eue/RO +57ȒC+%7+m.o}T"*z}7ƍ"o]||5QbG!Ƥi'C6Ķ/AӹDՙr_ + rb _NԋӥJr'_ s}q'eNjJ|V'Jh=؁9@>=|=+!>@:})&@=޼^Gހ OolRLfy2د770ԻA4@>P:_Я)}_Զ"/rMzWݒSBSߚ&Ĭɹ{ TTT?HB>@~&疥7~ji-th0pKp079F"; 7] 0>u3)-bbu|} ~q{ۂc[R&[gG@W&[s(*uIܽ-]*A΂/> +}*@Uꁗ/\ +}*0U/n +? +{@Uw`o_/j +*UA/x +?{q-܂/-]3 Z Zai[10boaUi: ',pi}Fšf^e C6AJ`ע`hl~P:#iE6eM[FrBZd% ŪZ)A柷BK{ʚ#quwfu83BǓ3),gdso %S_k$wZyHp# $[Pu6Ȧga:M.G)-cBWKRJ[e*0}y#iYӜ&.NZgKr}fvWiֆ/ZbזlaZR`N-w]L%o Ƥ,+VIږ\)'!z=g,J*l}yg➃Fq{ [xU ,T&8^LUvd5c̪i{paWR# s LFUdk(G*Qy;N +PsIe 0[.z:O^ըV PQu[Ϳ86vm1D0 +*5}kƐ ZSDZV3PSNgvů㽳70GE"YU/dRͺ\Or$+RS$'-aV *ɗ$͗'[ +%gU[P+gňUdU C'eW,(9SbҪs=Wz. H)nD,JkC)mIF!*Fe^-jHqX:vئ2A>&b:ĥ=(ɇIH:[J=gRJF x.|4WgMf`VuTΫ+Օ_OK/sNGQuij,{UXB^ȬɽyĒ4 ZntB_CbO=;ؿV=dH/fC3A`@ӏW~j􋣗o #·(Y@(]J2yTpBdV ɿ~BZBfU[g +orY}͋h`Fu?{Y +/߿ГM[+E-?8YK q!3U` 0{q̕Nv/_htAzK:wZLCժ+hwՕg_uk[}ƈJ-j nB^h+0a {uL̓ +<[ ;ʔ/w}s_t'Aa_m//I;;&ObPʐs;~d\^>հpXi)XGQf}$ +UL/A10!Y`.HdfV]D~,bEӝRAZjiT BOZd>G]薢N]\ueNeEq1+bFuEWGs@41 PkP1c+Kle|D j%˞n56 cv:[Wf @ZdU +Omc:Vj +P-!9VW[Ѳ ˸?* +qS/abD V@0 +ktOxp~b'XŚz1u[Cȁ*,@ȕ!- +,]FPil =p8һ8玁"-K=Xl-y2hpuE>Cȗ"u0uğ\f0=֟hSw;s!}p՟p{"Ou߉ O%5ybveLQEw*B! Ax0B肋j/O B<K<Ϸ/O BmjAoqfb }^2ٙ@3'KēE@Ed}whs:9F?:CUpu'W{ K$CSh<H#%ABt$-A%*1"|.0Xᾱ_lson_ms6ns;¸=;Z菤_ʾooS/}UW]֑oo_ee{ַL>PQ1F3vlˑ?j4,',(_0Uvnѿ-$\!B0\'uݘ(.CdY(a9$7HĿ4Xiqj!FW~mt^!_t/!OLFN9.-2"/Ctd*'Wi Kf.h=B/-5R;\&z)h,-M15RɄ,:dҾLS^Ӏk;8h=%y'~di]=ePv d{=r9d-1 봈se"J I4ObAkvzˋ{.A0ʅpKxM Erjf`hp=\H˘ֺ~nLF9!zX|7uAĺ$^V\Z<:C{2>}j/R5.ULRA7hϴпG(x_|4B>\̇Mȳ:STY:ggG0>yEB#oMŃ.~vq?9NV VXP0:C L֬D9?Oe0N*d[.}u׺_ɮW +Eʧc3IW_'L)ۧ*_X*cb٧@)c^&*ܡ +wyM rpqSp*grZ"1$εZK|(YM.戺֬ D\HQB"9f6:|ijE%i)VӹuJ-da)\S3A_L"eҙM TL:LNt SItP|Ew,⪇N.϶zTRӈ)JZadt%StGC8#V+74I9+?7!՝6.^9xO f _&X]o h%L'\SsZh}2p '~MF?F=Q7Q}.7E6Csk_7+ ~aecmA{R +/[!wt˂kt_|]~r) dD$xT_@EtyyEї{Ƴ/ybNss-@Sz%/M y_ z/g/sS-ݽz?}U|V,O>'6eNQ)ҙu;ASks3jzqhcF<\&iw-'~kT'ͳ/ʙЎ̋YNͮN``Np=Z(֕M˙N!iAPբ+a3EmʁnSՔSP,zHJ]][DQ+d)I1LSjxN'f[q׉r& B58P C&Q^6U+âywӅ7I_P"V5@+~Lu†8ʞ*!8^#Ƥk}C^"Lg"u뼖K~4B6oѓb#2K'Ƴ73m_qxߋެ_融|տzϞN6DR)(5SN>RSߏً';!8M&\K=AkoQ\ΈW)3>5Vllkv-86,pw腝PԻCsodWɲ7h5[z)2Ҍ=L2,-+oD"`np3L1;b|_V1'p_z +hzD7QC,!9Ct>m!ւ`m! Hm! pCm ra(5! xh4C^!˂'8H Os!ZCi d9ddY"]2bE7] h3\777T `!h p a  67` ܐ!1Cv^1f0`ח,a0=Ӭ э`8Kt +bEFz=1t%<&+0fJph  ;t hHLpэ  b0L` hPLp 7h0.  5<uw 9t؆f81t)[AVqkcT{3!uRT;ia> +X`ٙee0 ,0dXBjN]Ef Jn*K4+Km5+eFd|y?{wϯ%.DSDK2*Dq#M-U&keM߂n=+Qk=+} ZQcZ51n4Eǰc^2 V(iUI:RK6jF>IUI6F.H6 +G. {J/F/}-C|h2.pĊ|Ύfkv+;; m| u̙Mdnu''c BTI)L]GpVل*+Q-680^|Е( "_D{&af/=\&DFښ`2ߔͶG($\63f_إn+] ++]Q?7f0)q úOiVg-}ǩ2 +>f-;ϲče[,dP&+H8-?dմx1/=gK? ؔ韫3ϸ+KY7~2*ec|$ +*nff..TzcM) tw]:_7/>e"~a]!pWZO#^یHhֱ'Q5$ ք`X{hÇc?=u C1oUx\uX4K(VolsLo1.+5y[uG^](]7XuwԵӷ<:^q-=a3P*3G(⮮M)#fbяy:'o x*7hvڑ&WvŰI~m|b2W˹G/+ EeFP^OD 񳹹޷ns92㒚qbэ(/\wYK[ DA>yȟDM -AQ=-AR==ASҶk8\ JZCB2V*6vi *Ks,_@I<82&z :̧Pˀ"O"A$c c4>' 5DRxП` |W2ERxB}1E?̐%L KN Fc[dOT PLf>.[щ ugB`-:E.vP+ ̻}hհzpUL_΂M vhc.*JbUT ĎlA:tnPW7H Ʃ@:ߟ;tv=M}RmO;׀q#vr\$3ꟲ=yzv*}#j?$1 맃+ЎɓɎÉ/ސsC/Db|ggق ʪ 3,7S/% +ҫ- d[lLpupe,F ؑhP]Fpb3"8 V1ƙڪ +>hj &)j`kj& +қV_S~қvQ{HJ՚-1 V7JBd ք5`'5B}bZ%EFhP7汋F =QkOe2VT2RQ /%"KD&,lU^kaYukYX~kPe..5hږ\bԲYqEG\TDf +DaC?5Z9<b#R6HZZ:K~4mZ&I268hDf]>΄Ndt)tu%sHU-I}E2ZQFUw%YkCZ[OkRlIuO ?9μXDEh]hDAi4k(;Ay"^q\ +K֤ODED"V"[XN*"W W ШRF Gf=nj[N @rt)-=oܽpؖkq8_иy _ >#rPF\c yD9 +)X\{R\wF7ϴe>9sy߸?K?3" RVc*&QCvˎر<ˋVZ$NNEqvi-9}R,rZ`g Ӟ7H%2`?HTc<Ȯ]b}b}*Y>Xke!0vV]Y٥hvC Uc^*6uB2Al*փ\{`*zeoX!eAK, }! @s1 + .8A"PP&[!8{JqE8 }in8\qNʟaـ4.ypGl8c8s6m>q;yBwC瘃G}ߔo[< }' /*С({viuj1wxhqh>=؀%0U{3].%m(uǶl8P=Emz)Ƣ{|azdp3CS{p'F6~h.]ʞuެ+C~ߥ'5W W +κ4[ôCM?ں;ж^?[#[`%0e!33B1#…urx/'Ega6fJo7Ɖ؝g" D Ѕh,-.Y˒]w OR50E~"*|y#1f̓mdr eW+W5hOeV%mGO{wkUm]sf\ƵΟF'$[Z@l[n`3 +3@aj`.a`;a;4 ,f6D}e9V?xPOf8f;@+"  sb>x0ՌL1'pibnx_K1/xO7_<tub?!xtFg=i@ +=ﶆ'Df)E4yj:qjeSg*n*ӌ\//p5_5( N( c4c4|OУ } +\eY@kx5 mͮJZIKRRZK`RnZy]\1W5x +V>[ɪp-G[;Y#] .Nw@_ +^UM@%3bZWTQ +iP(*#ҊАBq\d)+,®<"R.pFS!Z2Y*ZcQn)DJ)-Eȴmu)`/'+."$ZSO"j?[L_=0+b~-C,!C(y5|aGs"bQ7M5"G|cG. 8k}#`0ॳ;M\IRO"X +ZWZs7,P/!R4 dY4:N}.(G"z4WOV.[`+lZ -SAŷnE@hK@W֞FbhAeaBPeJePPCJ׷2]p,>,V3]iU8e++kIF+JNM\hlq!vv9vꃔuR^(g5CJCupc}o KrKuh!Vr.X\8 \roArv \r .Y \`erʂ`…%9K[3s.Z?JslpQ`JP24{b17i4h'<gߏ}Td T{Bt2ZAT*1G3 +~zjǸ=t隠ۉj* _9A1PxgT[U)jf9L47s[ 84sPQY ۔vr 0Gس5j%xb+sy'=rF6%*8Fҡ`v-Դ8,^<:0YnZ)c LaLQx%tu$SO6s(&-b #u:3 +Ę@%Y|u)-Ugxt3 Q/ +n:DG%)Pzf&UH5$>oҫQbAi:m^4+m >4pw$sRM,9Q#"P^HogDK<ROγrpp$tpsebtr2"DA]-{f{XBZzm#ޒ 뫳`xj}kKtY"DUI?V<*RQ:UVuY7QHd,DŽ po!^̈́-tT[$;oBB .$~|w{#1Favi0,++bX/j+h;k,0 -!@zxqf .C і_"j,xErKh:B 7ubz)<(_WA{={ڥonQ;x@? ҕi+!D/[) b Xf!TZ[6O'xKgg7l pk0QilfhC'-92.%?lZG2ѧD4qlb`tYܑ?m%_Џ[N{+YD ,)ߔIiDKB+?2؍V?0?9|'SCXU[elU?:H6 4B$$i(Zۀ4RMϣ_@2ܟ޷γ~oblcƞ`GXڌΞ2⠫w0yRˉ1OW0K|c8lNXPP7a\Xh ZIknsVqV`(fC\&#C^hQ4Jɟ-[r\. DZkN9Qǀ hY u @ۺ?EN4,ӪF[@ 5@[xwKcTw9^"rPpj7eS!9R~-K*n, Q64B]7ܞY(UGG?|X ?'-`Z'VV*ܐn 9@ y:F+BFaXgR蔸 + +6)V2D^x.?bO"NC.)%;r<ĺ'Ld$ g> #94ƒMKܱIHm=7E} [8Y6iügd0qfAĤ,yk#"=} šZY#°`ǩF4׺#1H ז= Ł~U(r>יRGz3YkkQHEml[-o!shB$7ohI,fpGZW xRdCĜ,)hXXCepB{n줊g-rI +J$S*ھt*L鋵P\ ;׃0%9n"P(3{["ܵhT—10bOtTAMmC4'rd)=mr/Q{HXv^J(]@q&NQ'2VRڣvЀ&e#>#<,?\NgQQ){SvW~7 ? ܖ@V^-~"?s >=VCOO0> +DhʧNp[0Q[PQALı +&DBJ`ݾDg(h2t)2fnVmZSPHwijP';Exb:\1N `rlDm"=[q}_4!jʩO}"o;*>B#yAfq>rCoPt1\MCX^>jQk|Tp/).B}Agkƺb8C݃p4°vGEe MX1RVEeK/LB<`,|;ҹ5ua~Y TXS2)ɷImJ#N 0odzϐ+Q:Y)F3Иhm!ΐ[aX`Ee䮅Ah CpS[, };hL^ֈHۣ@`X5"W#gC[SA7S?ΑSVGVG +5r6jL @\LaȘ us Dq{SNwy67H>=oIXE5QP`#٦"ci9 SgG.,N坁:q} +ς3J zH8c Tt̄ڂNݣ[?=I ZnbE-h?鄚C+5V3dhSʈ6;J;ZhhğEjhjj<:Q7^Y2h%6<ۤ쓳•a-kvx]AW%NtGPx J^dI[G6Y-0땡|p+yg4<;}˿KiSmRsPaBǚߴ\o_O@ŠxbEð1}`j&Gpeg[`R&{.} 0N {Dƻdf.D)/UΈUjb`QɶK1rdx$(j4WXa{ldՉߍT‘]xMq9QhUkջ~ġvM{y'qt#v%vuQ3~6<+8"FK+͖[CO 8͢uOZypߪAnu~3dd\.]6f#ODZ_]senX[:2S'K7|^LfQ 4-[❀v|+5x T/u3'NېS}[MҸb!VtMIzX +b?ƭ\E!H.s˷X# +0JEl +c(7pSo?C7yCLaua^AƊHϙB(X~lҥs|V9$3Ӕ#RL 6.ܒ2D'oi[rxmIbnsI^DO,orbRCH߸?1YYRsMqY{OyA +[X $-MS~{Yg9>Cu}G&8I41(G"xK" ŋUp!FoWkdLrLA(Z_۔ӂ}竣&@K!_\m78aj8nv>ʳ](?+b}trqv +DT:^!zoH1fͣ؝CD`CI&jV1TsiY)!ONC/j'DrcxC/ G)F!\+,Q,nK,+/A&<;F`iw7yT5~NY??lg2C`` xlHմ*T*$) +̀R 0"dR%* UD6]-ih.!ܵE-?_cy޻;>칇~*<3gfTP*^z}"~KDK-I~yN6.\@/KZYOږ~ωRԾ44}?**̉|e$djLVKߣbRoSR͇E,_2LYdٜDձŔKTY,K NfL&^fBY8,H ],K'c:J~\hD,J%jx4wc#r!l j-p-m 'sOin Foz#-M>XoVo]ӻz'-{dlU/{n^`t/ḧLmޘLg^@{z +GoY6 "Od,#T|<3X'=Cҵ8Ei9wZȏ݉P JͲ8֑@-n-~š{)\{<W"euoo9Ρ@{W$/ڱs_gnSb rףʭ}l>F#_ +ȯNJFv8kޡ +7hH9${/uњy;"_95YXTbC cD.gqB8irF1JوyUIApy_M5Z[ŸV\i+R-n[DuVK_AQ#=y SOgG}p൪w4zpBLXMu;jT3?{б=??9扬FH$f-J%y/_e̾A>N].\3_n:.c,L5:N:x&uˋ .KS#'{#Iƾ&*Ra9Y+>lV6{=l`9|4rboYl-&31=t̓ə~Rkz#FP᚟ޙo|R3;E:wK3g."* U'8z$i oypK0K%Nu3.J5nښݱo?iqfϷ_3lM +YzIhcd:x*aC X!= +IZoL]kBLB~ m!J(ŕAc"[\eYCX&GԦYk&o_ˆ+ԚkEŪh@@v XjPr)%8T:wԠ'B)=V+6pT$\*zaWm.גڐI!u–+t6t.ɧ+pBX;8s|Sz7H-YdpbUD@=ݘ(5ٚT8m9|W@~n~H4Mϴߔ]YgύVaSNxMyǎ[ו8pTXWK[0l@#,14%XJ2g!EBFe_9jʨnWj-:EƤK{V)Htۘ2dY +;ŵx +{u:`l4^- MIM67*=;\'m2ԧ ay3O{tЈop)U^c[42_9jaGU>`@w5Ù{2ʘ0pSRA,8(b*UU_ڀ(x+/[ݩ{&prAёLSL5%kh_RboxHz%x`0][@ęw$}K-8A-PWUPe rǝ4vˋ(N 2s] _$VFn2X7>GP `X sG'-mGX'('.#"'''z>A^_ +6A;ub#RpkD9pU:XR2t#r^p% )ےk.R.ۭy+Od.;b7p1ݐo6:q9/dtF6>ƋIIn2ߢ-l[?-P27DMX=[zȧ3 +uD_TՑYw1u/Ó +__}WB-H]?׷HZv-;]GA"31׍Oo ?K~b\X2ĞM$:4v_\^q\s&-7.r+ƼKZܮ"N=_u S; Z=zލ$S/˫65 Rg^f`Ff&3Jk sx #ƩZPםw<ʻќw=.<높E }RO.`9;sk&ğ$?QHMw oVsH@֢?CBTM\.+Y`cq.A RnQdZuA.!)'OyỂԆPk_nL~]ܪg[[jWlU޴/Fl+n7&'n_3㇛r +FI_CR()6W0S;gk@ -u[HA^wvR:1XO # +oiS?ڣr҂*=T;z$SW!+nV{oJMԉl8; ^-8P!B)X9Z>J1%MnJwg ׫BAwC-]A"X$`)5? O~Ł~87#;n:r:Z.JчU8|- [N^nЃhM|t-[n^ΧЃb<x?<) F +<)`⢎>n(wj~V=c^1nB[<a +E;ro!0BWrdC'a@JPI ?_No2?h~Ȑ}}~;÷/w`okolomonoD_ ~С|{twioqoroG_jtac˞| o2)߈opiD:f:&<3kF;V8l}C{0Cmwl{vy}w6Cua!CÆ@eY{$P!glؐrLy6:VU8+2-FS%z(COV0kTtIm,[^R]l{KVDղEU\R?[9U:X܄KrGRq-<¨G[$; !gVa?ZyoD==WQ؇qpiveb Cz0!@CT;P!ށ C|=`_q:@@:@ +x"܂:w +"!@胄|܏ +B +;!!A胆!#}kGG' m)603 Q z܇Q +phϣmq +p`_DQσ=]=dStBBծB=S> _ɩgN*cvo$PM4%N9#\u|8`ᚠ[;m۶m[ϱm۶m۶m۶7V%IUO=^55g{_E33`K'cSvw9W_lؼ`O[nXϛoxϖ<7[nPf=o_>@|y=sgwOo->: ůHs-T zg<^v7V^t77ڕ縐Ԩ=&nm(Ϲ. +VQwbuz=TЂw1Lxy@MvawJϗ6ϧY=3h@0`=AzyucoA%ow`=eϹ^D>Z #nwA=jٻiwTw̗<~ʿ}T"qɏIA5)b'hV=IKMfsl-'4*")Gf LV P>!۝E[jqjYugݱpnrIlYYX͡}›om9˹>]{Grw`tnXfv+`-:^Jݱ{^h)oؗd>p8J`l]`\J'i,CdH]~]p腒]({09,8L',pO;ߣtD[cp#"תLAdz;z2r@si@܋#?EK쐠n4'\sƇAŌ MBGԪv +J|9կS nGL+س F‰,I\5Œ]nB&X#"ae+~_W2oO&i⒓g*]Ix.gBO1ԠҝUxCD5Ad//A>6xKnU70q$ m|f?J: oPd6e+!s4 u\a+ ]]^+cny1]<^=gV-2}7J4VjT&60@eqs- ,Q՝sR̈́sL{A&hDFhYD+4QL_$:|n| 9˜!|)-,8f(577`n$h)$:4O- \Wh؞R:F +3amsL)&(+,N|)fVeТ^Z^ËTzF1 ّ,4"33وoreNoIN<5:#bA[YCždUT.֠EPPZZ./7Z\Ko +K*A-mww[?(M򡫐?ђ뿔EC6mGp:NDbv \Y60$CMXoDE /ܰ}c +C~wPS \TF b$z(Tp1ǎIq?F6IFي&KDCcUꁼ01dE : q^w ֓msXׄ(J"#X3uCbi#X)Jb'*R1bO|#y(TMs3wx iEdhwfqGx{6lo{3 rNx'W=ug<#+>nr(QM-VI+KI XᢁHK1]@Rs'-زu۽UϘC6/MɹuՔiPaIi,z=C-Ov1`ɤ)-!6d ghsv4jjرIC6 pKb[6e#`0=Rt0Nucc 369 HGǢ2y"Fj(D53R߫1rv#*HG0MsS*$zVT i8g۷4j 1Nl6/O-L?ʎqhȵn|-e!CSqvl)$, Z]{v[oR)ly nl{33yH+tq.qxgퟨWjʸqDCݘ WlN)ToM0LqEW|zCJ2F(_(FB mƤcq?yAMEۑp5K7g#m\SL<ɮ g'Cmj%T?pKNQڈ8LXhC>(6np,ʑAiPqb15J RRۣQџjNQN)םKM{Jyf,sMsk%K9cm&Q9FnmLES. 2|dZ Qt +tJ2΂baru= FZuPŶqv j/v 7^-eOzY0{ۄӡ;Dگ ͳC `|ϳi:-ML51E-jQ :R1t;`D*aȆo Êqnh{x!Z&5cx*iyPz8~v|(>؏1M, br1$}Ql 2lJj籱 WZ(Ȧ04e:m%T1κ_I|#Xz7~@fPsld]/{H 혮v47,1I|$^-v: &*;小֩~!yJUhv.+נW=uٵ/Wd).+V]|vԣvAx+ }DbW(gο,JOӡSS5P :WtZ*DMZj"=9n%fET@S_E3c ܶEqt^brK%tCwk.]e~oKȰ +Ԥdz 1߼>ٷ?󔝩rKrf瞞1|}s g@JmT-]e)Ϣ&;%K;R񷊆,SϨ'Ku>\>r'a} YȖj I>ںVɝEW+$ʅc1S1fN?guuLp #߅ymT zXkAU#k ^3xƵgez&\c@aJO4ђe%A m |pb%%A za$Hfr,9M|ViI(e/kW5c{zb.`v;~8OS9Hj/i2YgRt4N1O!|O:KSeqg4WRϲȇ@rE$!X6xVL&VT%6]kdFlZUa#d~jרԲmu 0|U:v9qeqyiɸig +z|11B-z +-H 9-z;1,0hg {hbbB OrhX]DdL `hrp`@ʼn st%!DJDCdK1pwQ#aW\^P@oJ nɮ0- 0 Ybi:@r7-Z4V+g3#S#ٶj|ِorrhwO(ק4Kcn2'.(SZE n  ;LҢϩ43c3@eXW2[3Ks3B: dFYQܢB| 3#:Ji~įєn~4qʕ,>,֨Г;:8މYfRS;L5N%窤Q+2}<:CMOqY)L8WPNM!r6pw8OޕAeUt ELDN +̪1X6ivm4_9~C% ͻ JB"JzYN wQ4bR.aKBY,CȔ8 +uФ 'G{OW F fxj60'5XqKTcvVw0%WFh9/JU:[Fry箪!9h/c8!of>^ߚ@PU_b?x<2&(Pi:1;IO3JJ1xXcK?ƺG?aX3Y{FK JHTݷ8 +In&)R祲SXm'8B«t),*޴0 "߁CF2Q:x57OJq*"$R0*6[MhiY7PM#N%p9Н=cr~/:U-y4Mqվcz {p(jrl}{ CL5?n iLߝո6E*}iWhLN7E^V&?ɰ}q< ټR++/ɠ' TEw7~ءq?/ 3,EQ7bV5MSr:M![g pMB\ld8*?%/oK>x +X K]6UFpaɅ%犢WI]B,}B)R zTukc&K ˲,)2Xőw`N5[* JHh*E]8`}L.a lnXVHmW7󺝸ӽ?0p_̨s2G\,atcwP3x'r(TaDBȉ +i7.U*PˣЅyc-υt @IMLI:S^ɝ]Mfᝨ8+9M'Xchkh'h-c9s;%l-orRԻԆ"_-QiyLZLI.ɖDR4r֤X`W`PXmʡg̾Cz"KW:]]A)\=Vֵe6ho,~ngLc %Ywf>}Xc4g=IL{+()H_0`I'U}RTNHf+0ӫ֊CW Z:MAmuv.k䶈Y^,.4٧H/C7S.58PJHgr\g"f~TgЖ"C"_DWXf#jiI+vͩA_}x2mOÂtw!-6y9$a~.Ո"R,Cb#Z`V+C&_tZ^ ]C\zJOg=jbom8l3Č+gYUzD>Ur Zi6g +;U+fwYP3 +q0v9m{Pۜ:/{' /hL+FʞHsk%X{;v;CK?s3r>f[]DOD ֡Qxa$jGD;/y&^v#668X !$~q @~0ɜ s|?pZuU<+'j&u~6F8 S8"1wo2uio =hIN-Aͮ)daOٞIh QRzXZMAeuwAf^D Ic;`X;FȠmJ`}H.uW&8yJ}BMyJ*']%7GIG(Dڇ4kL^H1P@~H{aڜ]- #zX[ Dv_76+"9_7W:`g]i^g]I7tg];7BAg~g6b7EOpBϘ<7Ϭ|='7YG¿P(4Sv`9v﮾I6{n_ܾ>*}k:l9R6dE+cZ~'s)a|wc8M?(){p2B-vڨ,l]t?PQ?b##Pt-jӟb`:ܨh"łHِ2 fh2Aŭ P53 } d`!dlO2֫bOVS,K2ۓ~LEiO_dm2ݙX|@&tiɆ'neQ= xGӄ ohƜY%5hn5j*0cvJx8/ַxgGҡ+0$pI>UxWc*)V/C6;G^0$H9wt"6|]Lc[ʈ5l7Ó\zz'qܜ_Hzd 9'F%vf&KYGZ |vvXwnJDV"]Ij\)q)㍭YMJR)-L%=IG|kZ){r'чևt@rorAso.^RUt6T' D̗5uj#*n6]@V6O|BlչSL LJ)SRkU<3ITYkRD9gvm=M,) ^d}1?!e XhS}xj)>g e3"wSZS+KrBt[Lʮ3:a$v?(Dv;˄#(weFcXZ9g$xvRU VY 0jeylz#`;˘e|-'kh͑&պIqH~ 4fcZʩ"؁KBQ?"G" PF] E>z::i\y |^q>yG !&9ElFۂxOr1^gc ()C>GѺcEY +Ԃx9IZ~_8(^ӎ*+9LHtjϋ=e/amyZ<'ƯK{pbv!̷'4AUq>e22BWh(nYb m)"͋4!ń4!̛b0M'!画d3[l(Q\jҗ; ι;Zhai[S|8탛4J@ +V|DkUBmSrJdYXq1cp,|g:+؂ z`2:1b3D`` +`=G/pJ޵_ҷx"P1HafU/@n~Ismy1g  :30p=Hh6h6.A=! "="] uyE\?W/@OKĥm +[UZ?6|lq*+wwX6I >:}՞3""̈́[VWp˫7l(&|ujv|Tdi8:|ߓ=w%iHiz ..ր@w"w:Ҽ;pSoXw7"%pŪ(B5fYij+"-hųP)Îvbpjp,/9}3)2ʫS`C ++q?Ԟk>Gx?#C{ոwp >K9U)ϹrF\mdt\"Y {PB|QWdhD2V\`t"hB%u^dLh[Q݌&!؛d m-WY~A)eO]zVA┭r7B*iUSkIAG)J +~*u}9n"͆%G3i8"82E%#͊x>{c"ˋ$7cSN~e FE FS,<\lMedBM7z: :Tn`ҭ5zv u'Y1kCIJB3:CM,3݈*5s>!t,<]l($vR;q¶T6Ũy)OGoTL!Ҝg)JQ ʶtyQl#C*lV"oi  .No{ˁ{Q1] 7M4yq'BU֦McB s蕲f?}ҕU)bmiYofe9-)S=Q욑.jRWf=-4ɥ {*` TP+ gb/0 +frD˫"m/nK/6߸cxL*/k)Tu̩#AR4&2$ *c|50v!0֙}6K{n7 F`ib@] +RL7Dψr݈ [V{VWlo0O'`ԱQQ8`w<okθa5k>*'/^eX!ļWH pTAF{ڼ2 n(W鼫W- oOMh>.cS{["ܠ,'bo?+ d QfEslXhDžצ R}ierӁTqc`#]ΐI7b|7?ݝ{2l]'OO^gz6@A[p +ףB(H(L^[vgiV*MU?] + #S՘X<_m +&".<znVujIIb]\ 2xBlny)k5bYk8*oy2冝Ǽᥖhg&J>%G[Cgvϊb1BS>_Dǯ [,_4rK%NؘL|쨸%daʿ<'vXI%tf Ti^ nepq +qOj%5* IP2ESRe͙.δ\ced0;欄p 6ϪA缞x!&jS<YÊɣU #!^8CKXx|$[pI![|Ǟ!O~'`mO%?QNZNĞ9#~,I2ʯb8$RBE۔51R3đ/!qzp +Y2<#Lz +WAD[SMe;'UPY7Ԥп{5b7n/boZNʑ4Yt6ȯOBx6gMd)ņuStcH"sȮl:u +䐴ڜg9s]κ=Bȡ/(N[ɨM«ݯꈬ;hzқ^s;jyM|*?r.&Hn.$AL~l?'A+;|zg:+녱IǯŸčlߺoًHޫREZmQBuh):2Ud)!zYf(?O2HgO}2R#KHDC\P 7-D>5%~68Ǯ;F$*={7ťg+!\8r12zћ6W[̿/\$+ylL) _)O} 0o7r?o7(ly//雺3/䔶3Owg/#nyn3d_g¯z~_X`VmZ:dr*%I;9;9+%NŷW~gr?L_3enOE߮~ä\U +3rۍU=2P2R*߲-l-˿ %o.`'\PhcB^p Y v_~)^tr]h KB?`0~>l~)tŵ<.xLyxD`t\s2y®_4 +R%7C*g8[ʸ3T.t'd%gޟo('>g̅ E&"9P_:rOئdEOgD/\ CO`niug'+2O;}z~a`Ľ }x/ RRP*Uǁ_eB-Ӯ& sW[mr RYj[^eStl*[J{A4,dB.+3&B}Wc4< (AӃ>-ptxcuUҌrSŔL`\fQZK:rfa$-! +ˠ<\EƷ7~.1iBrʑg-~ g,(glћŘK^;횵ٷ#߮3خO]߂׷5T'6>T}<刘נ_#. +eoM,nAbTe_0d;{briŷĕ>>cǕ!K5\4}W<$|_8q3fCTH~],Р?>!S *'T_B9ԡT<F[]v9Ҵ; o< )`[lR#dimX]:lfkPldAP,ϝRn%\yY(%N +G0:O9 m&&Y;%;=u}c7Dy/qU_-AaL_Fȃ)஋rsH) qV/]!C bDJ=A;՛[\?ǯ6CV8 TA )OYqUD1U +ªQїpXV MbQP9X9& Ox + zo@-g%t:D)N_3>`J\?dN8;MIZcI6x6߼\7_Ŭ ڮڰRJ-;8Ks£ʧbY+P&Bli$S@Y +k>vbFg}s͛Z1Z#'jl@{%ޝa9y]|yW$|]=FBdE jV´o=:65#jeBW7z0fD7R3ofǐLMvh|dadZ{E 37HE6Hi|nkp&*hd:erzNkPp |2Nnx8hdjqr ߖܔn`?2{1G;Ȃ(hiTJQP1,l +6c.3S}茙y?] Z>iwO9{~޿PE<1ِSdGYdjim2[nx5x$O!l•nCCǶ28ؽ٭>xʗxL֬4{'CGכo!3?75E@Z]{ؕz=jzB)v#V##G`* )R`q{#zw7% _&m"iHqTQdb00QLgaP^2abǥM'aVjvy֖ ٩ AB`sN)`l,DoH_[XNQy ~0Go˧.kG%. Z2Bs)*c(KLAoF8ۆ܃+~i'\W@h $WJN7y tmpx-!IuO^IcJ%!4'D@ @"|0I7& ʗL@)@`0ҕFUoY}~؆VY2W#n󈫪=3U7=Dt@;8|T3R+P6qFw +]f`#.ܾQk:WEUR(3@}mGw;P>6WĤsw#[?go C|2y>rKx Ulh*^T2d[:<7C |ӊ,0ek-tE:S xku[U^]kC |p@Ԟ6/BA'&\7!z`_4="䚇DZP!&*| ]tz3K9sU,t=9ܮO'&NLU-Dž"TXYTG##dr+'oβ1[<-RCd̸g鈈ͣ~W̲0'U)VRQ%B-v IzGDa]J1i&ec\~&~%p# }(X;|{݁0Hw >R \w=%/׹`96aLsG|65a3ȷ!1/>nDޑ298oaރ4o\;hUCnH錈quF7쩡5->e L!#I_+94zΔ*S? + oie()!Ft%ZV[ϊݓVcπ97ӷ x]D #=97قT\gǿT>R3]}֭:^_b|_--1G-c`<7fo*jjJf}zv =*ЊU77\3O,,8Eq˺ +Z) |#p6F)ۍ#)-qH)L *b.E9gR]ݢ +i <#澩?2"+cC r5A`܈j! +FAarwEK(0ۈSFbnG1 Dfk5XZ+-/9]!ӊP.HbuƊ\;[^sOW\E +|vf8v '\֐޽L#Im s[ӝ WRY IFȵ"٦迒9&L+"ftIlCnPjOJamhڌ; ACqA+ueH @u-Uߡ՘o!ms&RFþAˀͨwd }L$8$4F5#}!dQ h;S5Q@뫅3>LCg9̩&g䭑%`d걌smٞ}lݘ#J4>p5=%9Deb8m&Z4$?j5bȷǵU~'.+/ g֟|3iN*A>$p5i 'A*gJyIUQ!fN>:QNJŨd-lDŽ)KeMQUsJ ZRP( +pS>'ZQ>Lo凎WqNs*𤢑k84'xTjn;F"Gpb 1/$3J+L&!'oCQA[`^ wH9#>*o?\5 cqtۡ,XtͶ8vdhhR@4͠vVQ3cA-)Y"VeW=],y爐By*& 4" [V7HJ JJT}gICwQ Φc 1FƘ;X&bΗS[Zi% +pt˞E9r{,wGĥ m +,dWy}eoC?s_SaEC'7.u]n>N#yOߔ>6?t} С?d]b)4 e(isʓɍ;ӉkJ^0ަ 1mM+Ps2%fIn] byM$ÌhUʜUjޑEx3Y~<R $8G@Z"C@y?6DFmaL=!XΥ2K}\sW֎*BN%k9zIr{nAV} V V=.V}6~CX?YXXXuXXa^R"PGZ["Wв +|._Ce![ax&ې#_Y lJ!_lʶ" #תCP);h +GST`t-K,7YtYWN*t^j``,"  zUzjUZeorYqY{Yx)ΆD'ZG?ɰJ6@x& Z'ulc7 * +P +RĜY;v3#qZۆ- ZK[3$K4uFϵZlW.ۊ`+gsikX~ I5!IM|IS-tsVlmI '6P {G]!JQnvjFi۶SXnۢy@l /(6m9.&\oUMA2]@:0 +V:P5q•U!^A9RW[6r]7Eevdd&ᐑeH&U@}ʴZ,u#I7aӥz>Eñ㒊W^:rZx^;{BrvE]cή*'np{AҢ]ZC2ܩҴ[o>RVRʊ'^q43tH]WTߚ 'ȩyws[@X[` {27̪m1}F+3뒪G@u4 c\ +;0ݕr"{GVqF®vy{\U]1_/GqPM $@8C[اkAٹL=]skqR„Zg`I-UƦevy3궁:]@Ә(t=i_ɜ%xa]E&= BUŽڡ$ xyyHwNzd+/"@oIw:s<`su R=H|s7qS<'Wan۠}m$' +9" Ü-BoLю뗨JpkќSGEhjMPS hLȍzlCG(ffiu!Jik)¨ljRBΐ\sp\!w 碜u/5n?{Lj^2%'WOHsgD U9 2 Zjƥ؜ݒg> q) O2gR%uǬj]۲b CKyojt?%،uNHMȢ# }0رçUܜڏD26Id.遝Z3@Vj3}*`01sZfߛ̸kc<2nàzlbuo]hSYׯ+\=4(ш5z.x2֗5I)l+k+nDzz[KdS+tSTj8h6{< ܲDX!ePN (X'VcWrY7\)L${rS '&KX|Ġ5I1{@,P,{ (1 š¡\45Ú$ТġCal4?#hhbͪmZŬ x) 1>?zqڔRmJ:Y-jXY'P.Boh]a֭J1(Y]5(}6Gj54EU!HlkP R٢l\90sE|&tc*#,aXt?Z;Rr#rgHQ9?Z\i6)Q"bV49Vi5E.h13fGAd *HL]`!η[ Mh/ d4y&\䡆D)ja-!8hR'8͜9K[/dRN]Rmn"%Uut6NO ǟY2;8@!~}1M8a.%KI2*e~9\3Ʌ\i0w`}A-J\1Y}mrYcW\6,E4=Q ͙l /4Bq +7E6pɵ;>KCО猱%#,?n,/,gtܻP9j,6VoJQ ll>5Nϸͦww.tHw1_w`oBDg0Թ؏D7,՘ἎarӃ!<8qxTc6'2&7=a\^fS) &::yd"3Ŝ.w;"q՞JbkO_H߃c(ݹGe/*=Ⱥ̺wguKe&(=yxdi泀; oKcK #| ?/0tpt+KLٵiO:M~GVFTFFDWW&r=iL8:}greaA0eh=X0\0`~}Ox'>ZBYFZϘBgc0B}˾xq/\8v Z1i 8c=Ӝ惮`?9W Q^k.{FmC}!u +<ۗUBS+OWKJ,P=f{ǀ^/?:UԈ ;/$:Nv;*ť1j:%Z (X@Ӊ+0(s +뱆j'fq +>R}9޺ j揈q$ @ԺPj8֯HI"VrG.N6|B Ā.w@e6xC)ee<%%%IdaҏDOf=[t^mph#%HL}1'(Y2׻*hW,uD>ܵgSXyW,79fftyd}&έƅn0ei݊IX3Ue~mi{!X849:4UP+"TF$+I48(hܟ& ݑNAFmF&G&"PȿPȽPɻ&N"'̲9(8="^1A x[qsAP! ' 2J/Q 5 y :!( m S%X{[\ qDUDID%J-EǙD EyD%z ,T $ՂIQ '"9De !(ԃ!< 1EDDmEǃ"d +' 'n>HIꠅ=e$ ޱ[t} Wpn>@qhq>.?X@/ LYW-5ePWҝz{ʿ lsu/|spQW;ֶT-.vuU^vw"wojɃynFgb=)$;7x;oVn[Ffd]7I_@4-ϻf\t?*C>2AIpwYY)>\ƴ=ԧކ`~waf?}_u5'>ܓC_w?<hC H! +%`QlfGSMJ"1n'S4SCk\=˵>;sW`uqVW:GsBW:mi7"rV")եq9qb%kNV0 u%kP^IjȬ0j]}, t8rvPPjy=jE`jy$zjms4H47  34=i^j~'-٩ە+eQt<;NLbxYV#.@;P3~ Vc?+ ȋGkMMUӞ]j|ZfUӞ]Ul"M;(j㞂+t1Rk_BLLӴ;/5)LxkKfLj8(U+zxoxaqb>MW;Z #^]RR q<0ă 6 `q$EP!Yt"1K(d:kuТ[/b7eƳ+6+f e W,CYF0;(Ї78+dK1~;ϗ̩Ʀ;zRTe|(?*qױH>T]tVJ9VS=q/CV-|Q}S:iWM9| SH9+wU탬c|PWͦO)_9[>t.4Nw`#m~,XYvS +WouOwoDvρ> 0xߎ_c/N{_oDwGpo?0&_N^o1V?(5x1bھK(c$N (S^RڑSDMm^D+? W8%#gX8Y= nڅ%йIvp&M5u3;Ͳ_aU#5cF/\d|! -JB́.WGa5q_J.k +,̓Yƍj8uc, +&M޾vb&/J,`##OQ=%:=k;x[x/nnc3UB=Y}TĀI(vvHV)p)?)J z6Gw^75kqG0' +=St(Ac')&g'å~^,a5A-)u"NjBκ@1sGhtK.8΄sƄYm<KTP@ך;8YW|mP|oWk*Q@QQzRG¥0Ban;j(Đd L:޺yxΞ3l`tq` enƄq=B`,[R:eqJ3uhKܶ N{wAZں[rZ݄Z|4vjr!񔫍V:q>tEH܇}CйxSⰛu +nס:.TNbXX*\4`" kB͸ sc%/Md_wFN:e[OJn0K R@{Bɉo jTf\1 +N~0ļ1>۬MN_|qR=`@re[m:0 (Y>L)D71AF.CrX ^L/oĈs|du6]g(64|]L+5qPTKLKLKp8 _U/}_JTwn?wdldzleL ME s1eGaf|I.܅/:֯Ucw>'ӿM +",S%V % EwJ2uy V &+"s9IEԑl$$2'150N59Flf;3ǫ{ oJ\c0@e.wCcUB {|b|}z*ecZOl.6.컪aLcd! ;KUͭ,&51VQn"_L5v'iU֥EZS/6Glrv'hEA>Ҵǚd|*CQ M M0o [qTF0;hZthj4O6r8pRh##4Hb5@DRJD} _{lCEoe9 +{ <^`=l{˛y{byJ/"/0ߑ/,_PVI;"H;Yj"(^j%7ϪAf^J !֒ FI#!5' ӽx([[bO=جE/yl"4KUҬ0bj +RXB|7o# +:+۽H*8v>6>7g<.fploBΑ :QUj؎QZ %mFow&/(frx+-x]Yɧ %ٔ~[3P[&)UI]<u*OqϥM3c2Gc2:snV=~d-nq)[Yx£Gyi`NwARB Ύ)@ Rܾ-f@i\)(;_<3ߨt{W9 #h:dl4aʁoyb㒞ROP".ŇoJ.V20%w^ީn;Cul ,a`C?N@88YꗼG J-,Cg!rV^Br0n5cʗa#3ULs1/LN[\q4Xi, dkUU6v$:'cc71g<ܷrZh-,W4fzg-: cnSG*v݌m} ? LJdAٶˠ2eSm}r>2 CY@":? LPGhl0v\.ǥnhAeOevfEV DězMZ$cdVW_=`7v|ja2Lj8#,e\r~ [;C^! \1MBpi'gIOShA .ee!,Q uљQ.2(̖]) Mi5&W ?o51L⼔xEz E)iC6EuۀfJP؍dYJ+u7׃5iBAnžknoݞol` 3-YvY_Q(ʿzW/FTu>9VsLĻM5 xpڈwW06Q ;ٱm۶mgǶm۶m۶vb:wjΜy?fZqw5ku;ʄ/tǂɴB5AST01\IM@"*WQ  +e|<%r)цg-; ~x!\ls:jL@U,,4封8Tb۱ -x>x2|c21uחF݂{ZI1V_PhZkfS&%"yE/XTk,*޶XuTA9cf> Ti/&;cċsmw~*k<θkhfD r/~@738c?=Fn"tAYl'uAXv\u ^ )['4yJ4>ݩWv4ȟgȻFw%&A(`,n,ĿO`y_j~d-tN `*SPZA`2/ ,ۍo !BeUYG( Gp _^T֚ #Ò1R*I4]"UPiwlD78=ƘhM,q>"`Upb2 %x +塊bB4Q;2:jaʼeeha( B("Q EeHjA?@n чݹrBtCxjN#xh ]zY*%1 K 3 0JOI~ +L, TsXb$U9DZ9i.,dfBGp[e)11rkWku,kiΌc5s`o ,Tw24uoWZ3/"n2poǀ̗ D u.W&?;d[Z'zXis6WTf#Z]%6MR بSuJ^C8,e +KBҡ˂n$1 )PNk] hwYm/C-= T$+tVV" UmjP^\e=ՙ9f2H'gW-'DTʅ"fЏKd h{GA_ B~ +X~uoa ey"jKͫt0.-&Uiv49Lú&.oh|ڬi1feC+>e%;긶^9rF6]l"C9E ij{~DSu3,rəG.9 +r1'(瓕&ڣ3 MZ82 *4>!=x Z礉%kd*'ZxMvZd5Jp לldn[azq09'W2U#(:ӊ?؝ !%}@ZP8f,|pu,np\:_i?W?:ލ+ *!PxK.oOX,qwdgF?(|%OcK"-/F>N/|WOM7L&RZdgX Z8i^Ox mSϢp"&Nh +j؊t(֟*Z}˦w /3{s9c:٣ڻuUr0`6ę ՟GZ4>8ɳP RWvJ3WiBid؜ޒT.3.'/u9;lV.YӌihŐ*M-BNkanLk۲&շm>!e]i-BH76gW$eQ3AEgRle[3Ё!|bRtLg&*df*_¾-^ye(+[YF6jVRV}(4Q]8.{VŎG;NkF aWVX ][UJQC)?7nrg +GSز4xu"uXӝ;1}Q*nh+ʢQqΠ#a%-}!BNG_j$K]ŵ;SB, ~qS4-%_FDaDלg< [tSVZ_(TDX+G7D$}X4TUeY_9" >.<>V 6>0Y1^ќjTNBTu"fS@Տ(doI'ﬨ8ʆC{yQ`fI EhT3_&ÖnhƋĢeX+nxkɆ"#jk7-trӸ:@n8ɂmn5]cwWjr+d^s.*/Un4EphHՄ+|bcsRO6<=OAe^OQ]hL|s؏%_s,@ǹǘClqs)w<~TfoǢ﫢CQ)T×#Jո{ex6sTi,ޱi;KVyt|K]-h~Ri~\3 OnJפo Cb\m%1ebbk$4jNI2޲}ٴ-Ox^N^3/A?OĦf(O0eK({V7(O#8 0hfKvr9^>$dx&eS|W8 \y&%]}xsY +(,#ͩ\"=gsj6dKH=УtRI^TT-VT_'cM~&&8uCǼhG]n67v%Z}Z eGӘ2dG[TY[ YBz''ڇq{Q'K9' +OKZEfl}=-saܹg1.T.`?'/CGU5`8mCD pݥS7L +u qEecmaY25p׬!?tЮOb +K[2,2;ѭpߵknגkKkoMGV?W`2vZH7jӴ# t9$.+ᱶpvMWTYPlʮ J*)0}nbo r3ڿ}]X$XE66"nW˫i6nstuHdpXmZqkZ~aYq-|q`[nZܸaym(M [m(?Zu?qGo")z-cWDA( tG1ZSYGi$PU0dBy*# sdj!Y'J,#yT\ Qx=W%}⼓R!}c +(@:(^Q|&V2,}xN̹)B WIIUkuʴG32Sc:#)AРg(N1NxgPrӠrqʼOzr +'; w"4{O-wLgH}U'v)'*ta"˚|~̏CRR@3/PsDwz2m-LHq@+3$#kKBS0uI$3r>>t],*vT3bI,^ #Q}z vUZ\5$OPT5AfTL]DcI` j + ԅξ*6sYm\9IY}4usSStZ7 V@ u*9suFWbdQ6l(18U&T i:Ix7:X'T.]:)$ֻ7ׄE4[埰::sqI>hvyCo&]&'2#iOMF`G:a89dSưCqLIs#)CL p,b C9zSC)C#ƞY\9C]k !^$!Eh= +<MDH}wc&,ࣶE{%*fZP &H7Ai~]) g) ~Goc:poqbɜL'V{~}1\v"Os򦔈do:E^ֱaٱlWޱ'8 b.v%۝8bG*ӒW@P8܂'@rGCI.CDTט,)QZ dR(6D } + ? +&$B]xhE  BQ/c<&:E.<U RADK&/"Mk,QMiV1.e__Ҡ="2BGqHz(h𖦺! =eVvpBIԜ/ +GNiz~k|}5T \5 ]9 as``ՠ8/؀!G:ѰG3됖GZAI5mJ۔ԣrvh֣-[Yx>9!ظ>`?ܐJ-ON~`(PsqoocaY/o#}rT ^9Sru Adظ5n o\Pwη +qeHg<T˹78IpvǴ28.Ip>0N J@tw_ρpw9,Ҿ,1È7S1 ?Y+@@_/)2" zX,HT) Xq"e;3{Jjt$Sf;zZB(_LF6e>q_(Q ((Se_(yx&1X->- +)lwl᤹>a<ǝ+Arfuji4MǰmCuh#/.&r,#a5N㦦kQ'Jq-&h"q!b*԰斴TjrҀB ꩠDU+K͙/WM5$D>BxOJnp3!~u'ZBYg#%qqeF +XuBR5))\&(s6Q6hx(Lđxll{ڴ-% ۘ5a]"9x75.$8U}P63U&zL13XܔO~4R94a`̐q԰|Xb +c.6Ih4u.mE4*xA&ڦrb5e;?b~}E]|9 \j]r}ϊV :NixQ0h'w>BcyQa +YFXyq_Hbl]*>TCW3z9-mVBEIWƸ#ּGS`4G{d.հgD!4p]0g~i(loʪ cMq?>> !_ՂP]}8"ϔU #"5TGDMcG$5.0Cdv4 URRùXBRUp=(uD}W;"K<5Bvz߸ݼ:m~#àww +K!EM"#ՉC9.➓K)zFw ?h! Cf C:a@kКT +N8`>Ba1-MKygI@7fCqKF&8 +#:%3e%$Jif"a8fG;h6y'KiM,#E[dEcpE!pI &˓͢:|& H\!S=Ρ3΋y &5d $zb!NU-G.D>i  6DD2(M h0(ʷG'c@(da"li,!zmCGV A_e3Mh}}}l lHM]Y, E tk5:xڷ:ʇ3+B@X\& !lxZkڈվ+KL vx */F)Uvaƶ.|zX*u027PpH3pvaHgxvg?y([شhTc:0 e^4-j0S@Xa)\.ޅ>O)\6o|j +;vmBJUHң +jh&Je$Jm<[0bxUHrVH5J[ U%wlt +I>YgqFR,6ǑzUW'%^]5K7/?{7 +CuQ`֣0}[XyHu 9%4uzU ]k{HYeJqٮz6KMJlH'-+ߥj2E#7vHu5ƨ9ן$KV(B7GCko"@F6if;0_D(V!֢.s.ֵkǡpJTp¬:)pcS[F5& +j1Fds:p<x(E[IXUYF1sQaʢ ).҂vf6琬ifۦ +/@8w bi(>pW,u Z$ɺgm[-QíX:)-ƩLJeRQJ848= Ty>ggo[:% P靜?EڇFo4\#^s;?\wxNͺMϺ?;jup oOvimU/YRyy#E~%~}E F奮'Gwu&p~bKrd76;l8NuYȓ Şؑtj&"/F= AàXPWIKN0 E>âA u.(#%X=Ff p+G÷v&إȢvK[`%Rd{uLRR6--SLmE?p$QC8Hq ߢv\f?,F>OaSҪi1"$=ktJ}>z!h{e3lxfA{N u9=Vȳ`ɗ(UDIK-1{Z\DmshY.;[h

H45Ojl"c499'umG[tAȚ.={B9{d6.'PC8 &4s)̭YΆ!C|>;дlGEbV<,{nG7epu-zI5#g@|3`XQ`,Jc0]Wk Gݮ.=/??,M㿃#'وL JYIYQ`@עzG=!_AIVl Xxځ`/, h3bݷQO_H Cd3`dhoG?؁ML;w÷a1 +enCꊬo.ujw)ef[ۆi9@p=wfr>j70y3do-YrtEq.mcQXPQ( vsԱofmKx,hni(ޅiGg07bڐBcDoԝΗXeϻbY%麩I{7l#" ̹Ä%:z?Z0x豪gTn$ی.qʣvҌ&hDe Y,AUqSh[*Ǵ/f5dZ0, +eٹ"£+01bژJ3:fK5 KP>8EX\]!~Bh*tHN iH1[4DV| +e2KK]~xPK w8fhS/wN`"Soܳya*3◸+BKBwj$"*~e~b(ܟIH<\ԟ.+, 1{SpN M3l8mC`ZCTh$QCM4׀W#Ğ_&p_:I3B1CSm^*DïSd N2p~ tkg~۫g ˇSevǗx:nNLwD7dM m!=/G`e'k_TћF9s˓+mIwl>ɓ=R1 >m>uf$DH!-wdlLwYhdy~A?^?zbԟJpܫ Lc}aLѼ%hY.Pv cF |j&i0~KZ{ojCUT_UGvjڳ[J6'*=7߱V+<]nպ+5Ve>~}'?\ uĹ7&Nc"Yo?5/D;aݴ `|!n4 +n$<0:|\Yp_v!; q}tKtcȼb{ebXv7 )`i'4O&A?v7~On1Hv6 'Cy )hHy>>pf|ְn\)XL_d4]8~;-DݧcpD&ؼƧWw&F*iE;Ct&sJ%I]1T=Jc|4j7dKJWF;K)vXa #ȼ)$iMF&^LpFP/IqYwliqHPEj CBõZH`yHPQpOxT;XKSb +|絪d8]N8#6O^KQ&,vf|#t;jEYj# +M |-_)+שȱ|ŏ7gO& ?묹Z_xbak.yNK詂7v]Zd¯^ 0R%MAS&.ǎe6χ.l EΉ j0n(y%wUJ2lqoN[=r}*;eGU[ qWyж$N!ky78)?ȬHY!ao",9 ݛ椂PEa1g/XvB=Awo={=C!Rt{"s{`hO^݈6zsW!Ex܀Nmk }%7htͮAXp1@dR2ZU*tMХTbEn/Ti2ڤvD!(Atޙ c.Zf9]3egP#_GW,%ItN` L{=oCY`gv'^-NLuc۳6늎<)yWҁ )}yzxgVmsj +U=QV=U3u;I=yD*ĺ6ޮ4;\+ryD}u t/qj[u.#(+. _ ?L~w0"g(w Ҹ4_i@ Lk9}Kgg@G׶b&nlСo1SlЈげ1Az7V;LooJV7 VKs/pFF'XwzlfU H\L͘Cl;/ybf8\(eHFbf1g )Ѳ3+̔/Gb3 +-?3?"neh+P+`+W VVVVnll + l +lYYYYтӂ4ՂւY ll@ll@_ndaΦRxe ݥ"p;>2uESpSĊ30> mm 2 ւ]&o4,pg|Y{X +'lӆtԃJϞtVfDzdWd$Y]ky5F"_Ȯ1vUL!vcxVHP|Tu钘2fVx`DUR-cq=`7&e+_^lhbʒm,8+8-0uGVdȄ[*ec R.81)(Ȅ^Iek-(í^Qf:)[ ^g*:KQدY;fǍYH~Vi lYǂ0fd*++lBeH\lHfl VY]pS`Ƨ \bbEfEaElĖʆvUeUSD 69NhF%@l2y ?'@@p@@J5eS}ګ"!o:ws:A 9$8dR=.LSCUNZ-jJ$@"=IZ'}/eh$=_g#_337u/ox:ņ 1b6RTÚ=EuFs%"EVجAy5wɈc>gG@2O2YCcv]4mLsi0J\<"{E"Ayny_UujK!ag@jjV)fnf#**2A,|m +36NUآ*RO}(6K;i\l;.JuJrDS /EW,am܍wA wdb!}Jwt}/R;$ ,(*/eNR]Ƒp{OBTq^D)v&_-d8+I;4Īv涵-%ugoA1['>[C>녝6Йcu O~fP-c\^oPK!Ȃܡ g؇#f0+0ܾ. +=dr#b˗SΘ%,W|ZL}cS +f"#$!3c d D?9[:9:[zo/$&%fPڰDdZP"qv]u$Cw\MòCS³Ǟ< x{3q<@i OpF,Y*{C>ʓ1X֝ܕB/ =fG+MTl$%€Fk1a>ʇfڱ Xa6Vcy,iE*06b-=47NCDbC֥{ oTIJ Nʼn1}鸷ωC{0fuj94=Y=Q^*:mIyT8!:K,Rnf&(^[\ai6x 1A +hGQ&+5L6N@>+CݴpT1mLrJoCP,XKoVfZǘG6Mc 5Dsxa ngw,czyXe͏YF'TwӦ] G#lE^=qw(t\RƱѧ@ȶermwlWuݿQwZc|`k &Q3j?*]i̹\=!j"[S4(y~] &Qkf_yuouzvA.㐻cacǾkSb1جR1 OaS ln-[_x owx1Fp'_>$~y'-R3K+ +ddOCIH\ɂPkܒ2?Glvqw@L +@b/ + _KbuZ^. tHtmd&:fxwb>z1TLTU{^GV~+TZ*_\dM(LAArIG.Љ6Z١XcBO00{X$E*fR(BzǏ-E]+_%1QK_bVܤmQ$;P{P$P&~G?P[tk/4b*{Fm +VxzQRֽ2[X_%Xlgp ;TiV=z{SwڛTOı[c]w i(_ },0f|X{=1.\i{Q8h\R=0oUH8ur0N&?(-,Q +(2ws3Y`%Miil.6TTL,&6Vg0L%f6 >M9W?.>6f0Q):K̭]jl~5/`Owx^1X[?J:vhv;{K7pcǬXB=ڝ ;IgWMP<V5ϩK >M"ɸr:{cF?4~۰qEբwGfi}Z"tJڭZOrK{̩ " *S+`iR=6t%%j62) kRWSYU5H7Oғ=ӈK 9h*m]̢AJVW\Qe9 07,u6ֈ#?amVDyîP2rEV>؞ i泞'H'BuP. ^la}&na@P"&:qq(=QOg2MsN] sg3os 9 0,_1 D$پs)y_T/uk$d0N3yY`]I7\ +W)_XG=2`ӗs^`oСK| + ,Ļ}L +gЖq %+Au**8oR92W*uswPwXorn +vwlHCps +^9ߧss`3%PnQlmǻd+/%g{KݡuDHM\ߚ@ ~x@H淓X4ݍ12cøTBTp~kӐ=dkGoT+Vz2ʣVeb^hוwρf(sX,)YN3J'BnkWdHeYUlX!%9-"f,KUKY4ՙ.k\ +_ӾdUxpǑ~LcE8LbqF9h#Qm +|#+3%iCT jbL$a[cc#*v*UE ܔRhk¡BK +iD(:U&n.hnl+7xʝ_Xi'SnXApgj,%"yafVigiUd2~FaLCWidAS;k_A%` '8Edb3o{7J2Ýg1i-t'],5MQBіDSBњDRB1}C%_FGE:Kux)!(^,ls%D'…Jm!]!<왕U UKfjpãkig1|yt+B[ɖR Ķ<ϨxJymZ XmZ)Z&Sf)mW\(2f +n6mSCP*&v0*C=C~_E?b|O$GC3‹[D݃" "Ez s?,٣O/`j*p"!Pϕ}puhd`\DkOy{sf)ge7E`ePwZ[<+wh:Dkvj%v$ڇo 9T Osnn +&o;z}hi +~ܫd/3ݿXZ2#v>?Ay-bQ6^hY[jj[UһaL.5?ӲdıoTOe^Cs{8r 𘡑]n,[^OE/ΕW_/,Qb6ͱiiZ7]zkyYZz5'^__]0x؍NێtZE+@pGe(0trЂՕ^_ a[~-T{K* ˶ 1ξ[<*ln +u;ֺDܘevE70`,f *xW.<9yԗIx]^,D䍸-'#u>՜)d nF1#!W)t%Dhs=Y=uD=8GZb87-)ehA9%֫. FV߳X_nX4Pwnp2B(FZ") ֝ LkՓl]`n8G ojJH; Ր/@{5;5㹒bGYSB3C*g +9~ upSXv%] 7W +2NV.3Cq Jw=׃[ch* Wr";dtɐ3WCQgnCigĕ\kiFj##+:6nxIvܼ1^QE%!:;nQ$u`-JVaakd0!Z_EA4fG+DlscId *V6RN! %RӅJ-N|MƜ׬,՘sLc$Wg9t$kU!#*"@M]oYDV\b"k̡k ||Qf,2IRwex2':+\+Т 9RxKĭdߔq>`z`)Ȑ7Ng4 A74pƛv{~g?ND?[{rO=Kᔇ9BOw;|ߍNNWq:@`g+0xfĞ6d=;to;$`( sVgm? + +BSc1Z(W\wƜπxhŀ6)V3B!WsD1դ9z[8 OVPq|;j]qX1LB9W{No=Y\ OsYp0˕pOlTcHAoOmq_DZZM1~ b$̧"ߝW"qW" +BU?d)5ȶM7")aF-5*5F0YfYbQlQlYڣYԣYZgk!hrL~$JvX(^>PSh6vK{`"4نWwZ~ojw8ijL ^N G ^gA-W,ie\'Be B +bQX0/A +Dā;]G]!1~}o'nqx.v?z_\̋ YcbnQ'\9ԩ&=nTn]<%*QGĿP騷ua砛t>岯9(9?b&v3x WFf7,TX@dTS5U_ힴ#gN܂tćԋrik +ɽexKlN粹 ˖s'o*װ\7N3{ﲯxki]z=qFM{Eakryjx%ߊMaDZT9Y_ }iYU +o^Xw|U }+cBaE|=ոtu<Պ%uC $joQ"p3Xq[#'5#ۧ(s +VJ:*~d˾7J7N6.koq.jV|* )k6i˝U]SF,`<6~~CzW47&-WIfYlXzrI:q!+Jk5tXTUtClb22CR&Ǥ<#O*Gh'G㹊'vWܶ_ Wz$R` gEGؓPvL%~̦zuф+d^M5 Dg{'s>xiީ1n?hi63m V}véhqaǏwQ`8Jw۴v.|SLO4$v-)pLlIyW2Ua7ֽz@-FR]S3)Snwc5y1UȜ} +(P` +RW{_{/w [ٺ2l:;ukhǥEIDc}Q+B9g˘SWU^!/dwk{ UE +;. c"Xl"ׄJ\֣K|kxkyLmf"פ9{BK%t,ebф'U3!0*gzEj;{#>afۖw`wtPTsH7;呒ѢO'723YC6>Ǟuy{}Y-)毜`?\urZq&۠4Hpi$$4W̖{iwqv/=*䚝yRa{Kf{3еpes?bn#_;$)dM(a73#rAL,#dE@ݙbɪu, +O*u\.e#Ӥ\ݓs3skʋїQwrB +ԽrCƓEzїEXD[VY=$peϺp fTs0tdD-^{Gas2 0{}#2K1T Wvz著tc );D?{V'^Qp}fmU9?sU>T;w`?mJ8k)dM/.ؤؘUzVϞng[)sW Rxڸ-9S^T̖fAbɃ#` Q@> +߆33 XI">ږD/yE, *H1qG?/l;gZº!ES֜l#hϸmO{5ޘ6w%ؼb,\~]#Yo%Fx +D +j=n]m2ܔ1"ҜޣR/ +5!/ql?}dG]DqnG>p Z> [oj)K7%h[&k,pkfVO3"[=i$,?\|JZz0-n' C.Lȯar }nx`6 YrpTERyErDy mE8+ҩzZ1*FiXi3 +I~yުt("DancInwި_y1("%Nxz(0陿s(0:ik>p'WFaw[_$23gC?vn.Y5:ZwNFsnkBy굂ئ } jy>yX|gkt8 (mcp;&6WKb\9\|YG>?~.rw?f=b/~^:d3j!Gs/kbn5i)ⷥ3*Ʒ?h+BW]Nō4j7MUy~sB_1WFk߿ߡˉ?W[@គxO݁OĄ~B̘WN0"ό1 +p!:'m0am/ܘ+KΌEb@( X~X{ o6K [O{aJCÞ+)^r $$ ]r (9^ě}FB~HO WW/Emd$!+J.Dts^I] ,iP'I[$sNOSB.K/s΃d,W['M D(ٯ@T&Y._EpL$gC;Hq~t'.iy> __{k"z+d='DR]MoX 1ǑH2>"'r*hh<*j l$ +IԢ2B([Lf^{~1-EEPtID"$8.JpOY_׍d;I IG܄ྏ(#fGƽj7q'y[W/s>w>L{:mQ8&!яUӠO'p3r31T:ǿԡOK$u*>C*09 *E}+097J jb/bY ;8 2@킺ڗs#¡o0w ]Po$x-oTj_=x\/ "I-F2K/$ODʯ$']H%Rdw[^Ɂב\.tȃ%xb͙uȯ/ʄtؕ^` &)EzmB`#|YAm/u^5qㅡUs W0O)d +4EQ=|%Ŋ?)2 ^Wp_4YW\=:S]|XpAfcʅ*J?p/ xut 0xѧmazZVM#kP]7t @#+P+mإozZ[=zN-p:(HX㌚H؁@ʯ9)@-J=Av@Aۀn?BB۽77۾7~,Έ2lt!9}$)oH?ƺdql& N+skmʍw>$Ţ$H҅VJVy:%"o {fv7'c)q=]]*kgX̏}+%j跛VɈ׬Y1уBu[pucMsƤ2uqJuc4uTuuJʎ jg4 s9E^mgQvEjT5YTvpg`5| S'ޚl2߆)oi [~Cl_ G^//PsbtGZ;O  4pJ7hN,(gK6gյ-RO)$Qfڦ/mS5M)tdyW +$[MdnSʿwdoCY + +Ww楅o3o2d0R,bXR9$K|w;u=X +D66ȁHu`Sk5J{ШyMd\cu =,+FqE&P}eq":gsWjYnq=L7eoQDA/@׿Q"zƾ5mH=tsύh_L`DCŤnyg3Ĺ?mD @ߚ15 ?}Z EJuRƚӮ. V>dM;6>Cz fnmdMťy.3Xqv(:~$ФQk5͟vl$4A?*ݓa-`' Y/5E$3<m $HG*y~6:trbeD5W.m'XY'Xq 4VK{'E=)U[{9]j8ZkK!IރyqcOܸn;ՎG}Lbo2̂쓺Xgpz$e#QJbf*L#x-U-tH֪f6G-_~f1OFif' Ftssn*~}gSV`,TU{c?{gz~Sp 6xov\Ɇ;@V$?Txc&Z` +B:~)QX&Z&Yx*dkCbR73 {[Q VMZa[[ᆳU/5X#%₄ ^_^Ó{ `uN[Rk ]Y\Dl.,Ƣ!v1#F$0%7-laDqbvr;0\p6Yp3"I$R⦪*mnot: /Zr +y:IT<&k2 X.Y:39m\Z2[O6 ht S8x4FxďCBrce\ +t_ :]liKR.fcKuGcKZz F6\y}Ж$/.soZJ?p]-LkF`Xx,rI:PF!j\5cqcНAKP[)|GYі|PbO%L-_| ωS=-e1UtXWjf+2Ͳ~F`+f`*#5Q.0bSjqy8(V"CI*VQ_jīdmD'OzrI;'=UdZ-?IJ8P (5үrGv-O,&dTJy,V!!]%X$ίyJ+W/%7H&%5&d+\~L2֨DI3?bfafaRŠRшӈQJe&6kbz@b2LNl'6!$~s55Ybaވ 6+#)>n>u>w>d{zx +}:z$pL_KN869av"gOJ51ǎ!"љ@g^!$39gv̉~<᝜eG;=q<DדUO04GFĖij;ADD. +F@6ftH(n YvSг(诜Ʉ+G${-^A~2-ikƴ;uyuyζ @MɸI.m/CR(lYNץTm꟰]+sF}+8Bf D&+.w~{O9˗QѺp8UθEO3 v(d ) +͕OAVfP_&(04Mmضm۶m=Ƕm۶m۶}_۳VTVZ#֮;2#!y j((Hu= O(9wJV%aIV )Pgd~L/].>uO?nMKV'>M'V!lrȲdmܨh)!3(W+ NGJtm_[|#w}߉;<-'TkS7\I'Ls?dӝ| Ef z,k#*;B0ҏcP_8 ^q:n4pe\dm@%u:hj&՟MtA龵|ʈy4*L'P h#'_'K>M6*S_+4MHQDcr/ЈdI2j5^4nF&`+7j)5e+cr16v 9jA$x./sl$!>HNξL;M<WWy`)Tn"&L 8 I~45eWoJqʐQ)=C1qr;LGR>:U +QƐeiߟȱrf4N>0cFr%]7e!a&Й`/m /?{t bMd3U?i'í)a5 WN터s [󯪌\L3C|#ծTT%.{"il{숴f6N8Qa]Ul>CƂ c~d*% +*gGyQȄW^L)`E>Ą#֖b4%+He//LN)JE6nI)`ŴDRXiN&`{RUŀ'݌~-߆y>]j2&nט紵JTX^Rz.0,ѕhN"  Ag1ÔEls^] l_?IdW -Ts(m.#l;8 @AA+SF@Y2Cmy> &{b+a wu5jxBTá>RourϷM +/tTV%9}4b3-^u/}s-C$d; &4ʊYWǪQ6@KG0֤cAɜť;n=σ#uNך7!Ŵ'fwg7̣2]˒lif2))TJ4h͙KrmHN:a[u%m\ +kנ'o|G|/'١bPR2Ue~p? JD-l#dA?H7$AS̡E$ jd\Ŏ9}QɃ L +NmPŽ]f{}!H_%--;~<7.>zwĀ= rMd]=1izĚ!zYYhe(u'dzs[7qwHuY D2"#y| ѕe.> K+$t%)Gve!973 d2b"ZUN_C@0W'NGf<>cy;،}℗/tV0Y 2-,Exżn/UӪVܘjr'7;Qi1XŸ6sʊI+gE]9H#+K|X5٫ @%_D:V@I ږ D !Z*[^ ae1溩#EhӢZm][hMn3{y>xYػ F0̫#ɝ^hI׺OTi{U/i9{-c5b԰5 !3-,!4K[cH 'BotGz#qp:ji,=4G ; ?YiQ#;q5nZ&cϑ'c% #O6pB6{Jž6 1sl~ S,-#D]vd +5ّt5]%ӳЂ^pu 8*ŝEuR&d=2@umBW`#R)RfK3 PKt2mٯ[ڦp +uq홣'R`QE#8ט+E$2#VMjwWD`8@ }ǘ҅QJGFWOd][H&M0 Lr0H1ObB@NKrWTǯVIj>r.B7\ 8L +U_'CH񞂽*y8+-` `bs8{icBljY";M5nZFJ@q#3h:MLMůqـ2OLpn?H̖V8mV|jz{8m(,/,*D5+NuS7Jlm֥LF rgPwiyU!'vAch^;x5S@c^OH1,]phTΟd1| +{hMIܖCӭ\nڌzWujeC-$4u3Dt C]; آu6:Tlҹ gBSGr b.,\ jZ'JksGPRִWKgW |""TKP*4+ /:~%o+^a* +>u͛MfǪbfV-=U=a"Ї!6#c[úЭߤ2 +&xIC'>igB]%kxy%7s9:cw86qXiWw CqγcتV$;r/zSKG]*$<\ ]>&Vp_ep҅r<U;C:y C=紀5:R\);q90kLTA(?w.f+b'n-yu J+oY6C|RջM岭GM""וcR +~'MyJvv˙v->f>=5fhdjr5r%hd5djL|HĎV<2Y}@4ZW8=TDoΐAB BAAB7~ | U1e ~YOͭIDţǫI)ɍ!G R|3ldĮaӶ֧lAm1Waկ XfSYڴlXdv"_Tdnq#_2dWF{^TeQa0IAOһ4z,RR2&[CS j妱i8l}x@+ge5_2.[QGdfAlq|*ybqrsvctv&@A)uChfd:mMxZ ++ [i ƕYϫٝ^Y] ?X)(0<8A>z1IqE(oE(xGD8 OoȵȮ>3;^<豛Ŧ:%GPoV6ޣbL#92"b6n +MbJGRlŇiS:FE_4ϯOv@*:M C[}3q[؜aD `绸Jx +=Pӗ=46l;+l)9Õl FVXnlLfW%B4e'WF0q$eQdʂ5 0ྻj\G5xS6 ޠa%OF3ՐD/?o9_~F5 a`\tTݦ+o(k z2]lNpn5eabOȿj67ݬJ'KN%i:DNa2ORʱh p-6JݹZNdfum5r=>ޛ=9};8d2<ެ$aZ 2ZuU)%sPz4ƴ^e&q>  BwTbH#mAL]L˵h@f6|4N@783AW"OqE9==QfCwcXi@VpTkyvr9^DZ3y,ƾNW~05/c%)QwLbTFgե$?.C> q7i?#nmo єN;݀׻|!%,L=tˍ浩CWNH.EѬ +x?Jx=6,%h29l x^ LA?EjM2fUag]s^ʨFʨ1*Q"E ɊɣE)M=1_rD;~va7)+B΍h+Tϔ J<NmZ++K9BVMn(Ŭ%S Wt k(b Q^ax 3{|=8(Rްxo_!T=`9"V =Ųp޿!yM;r|@OP qy} U8,T,[&ڗDMÆ.V1eEIjm &|/t[}=g{{+uOH1)N#/*tIQrAo*Ŕ#F;t~aO6l+ȑg#YޞE *&AOVU!c P<ݶ7VxLOꁺ^F,5FVeliKe+Qݾ +؎OMQV & l`kTxs\Eejՠ%)!}y?@>IH^} +68 wx) wn}},[`z,:L} fA4 -i塎3^z_jep-KLz7ILW[6(]ȱl''",ʺ#Nʾ|F5f&./A$7e]:Lf5C_Hi F:Th/hb}:"6"<3_1;wӠn6%m{hZ_{77&W`m/~5AH924?GzůbC"GT&RK~kuX%@g{L—.d%JL +w̫08̩&gKաCɨ,LA:1 +zdժl򜝙v +MRn:/{\Wc_9r&+uPh*5Kf,}Ү5Cw+'khղ+4zq~R)Q 4o2\! B2{gWafɆeJ1P'`tɹ _oۯ}SM?Ma2B], m]um{ɨ~欐E= uRD]+oٱYbܱK-,Q_HP6O]9 Jg_ i +g_ig<l@ݞM).ste|mK$Z/ޥ|ϟOQ |I#eNW}o <RJbFW5(W*O5Q;jgz4|}e's5YQ$ic +>'w4MLȃK@R-/U'p@4-UNnߋTTS7D4t*j/FmZpycWB9r nF tG/Q9xQk\ډDN,:0I[G9=RؗnMp6i0Hel`ﵢ ySF));Y/1aAy$ox+h=$&nvR:fUTDlA{V/dוxhZhՎtC_֨LĜuuRm""i~gin޵U[ [zc±υ$8)t;%[d}#bE7hr(ajMݽV9?x}be,.]H1W˰TNM^6Y޴ +X,o+/ +}ZΛAA8[NxMxUEgih3HLŃZJ-$=25QwHele}YfEWns4|- +xܕ]\6P^5KfCaS4a2Ģa׫/oUW]م?ʛT̫ +&3wev-DGX !Wxu8_c+$3C;f::2R-Ymdkx%Rvr70m~d-J\@'9UW^^~zxWWrԒgtd 8KŴ]Bב.KWh _uє㦑%=AKhQ>i\f㘴@Lָe.k]B د[\)7@p)X AbQ+PfT^_vn~:|285N *'K5c`Hr,[v- RQųQ +M09mjfX]$hhe2wvaM ekedDD6>[en7E%CߔZQc +2jۆfWc!*{($xͲ~p8wYfhU_|w.X@~ڿ6K)a6YXeq|)ps5:B &2Z:b1UA{ۚ-Oߚ4f=b =? 40n<[N?~k$(}Yx}яʇojx"$y豟wwE|ǣ:{Ȓ?4Fɞ(5rޣf?xcNxۓ<{FT~| gk?w?rO|jrizo޾md,x Q'c=V& %k+<0н=LiJJ$6ׂQ XC~uxyMB%G$m9k`Y@ "E$b}i7u `q%V5vaiw= STlV+ h7: +^z}r?N1T.+r%ceOܔ-S ֮an= +2z vt{q̼řVؼ͞t{ICC&Y/1b|dX1%hqjt/-ϚӖmѹˋ"mZEIf|e4YHpp7'\Lq]r9ܻ!#Qs2և:)5axH4ѱp4>7d,XIv`c>AbFc-E$ޟoj#|fyAGKDQag)pu}2>ӂN)f*F +%qɑGJad9˜W4˓cq҉sL{9ӣ_)@At(! +~5T]'¤-enO<ɒxJs;ΘM|&m8TP2;B`x8`,#kKc*ʪ43GJٵ8KplkH%ʶLp[Rm85mVଘ1ZE`Icň6PRelbX+My-vDYҐwcΞҐ//m骀1r4)ov!s])t(L1DR% /E}@H6 oC EŴLI$`P!Cz)tqtqtqt3d7袍-M4` DUPc)cYS?WaaFW5VZ4_L3eoNPF2"r]en23knȕ\vV;V1HCyP% >&UMw_$2 㔢 +T+G`R+34 +Ue', є$Z_gX([[:hR $ג-TƧ˕jߧ *ʶU +X<֊9=Bk8xٮBSJWܙ:Uϖ02>'{OvX݆ [ŭ1PX(9lwAN{/wIGxbLiKV]`Cfʫ?C\9("GDhr֧ 礚5;W!MS$IO_+D.q+ K].MP,:$,ޚ<bwd(\Q}/_p-p.J4ZWɟ쬣bzh:wtry7m!>8T'ƗzvέyO!e +oʎCmjh2=TCVë|zsH^g8j.>3j=XK!eumDOOr1q3cvl4hI}|blM֙w7S"H6rZ}w{SaKKSǼA:*DY>ey^Sݚ=H]-zdy=z7zWi5 {;ԣ8ڭ #g`Hb}vTo};q8TЋxJy {zV#ĽY' wY$:mKG{MYy$FZӾN*u +xf D sW#4CedpTY݊bռ y#N +YL(t}vc +;~%gCl+yOGpDk#~03 j1Ɏ+a9]/mua&Xf~>0%|fnIym +Z}"Օ٨E[( 6=z +S.0X"+ʅɫ=9&jo0; ӯS{\Yr_@{zD=`d8}=[_X"gH~7ۃ7<;(;= oD|XodGߐ܃Sw^~b/͊}7-_kԠbY3SXw'\9P$oDTƖ&K-@7j1ͷSwܒc[M׿{6ԅ'|Oiɫ3ټ :BeNsW$p` ;( xqD/3>Uj~hlqN`r-tR̉Tbo'I]"tшozҶcyTG';UO'87$TmKHé0' 4,6!`,i7(ka>Hbm2;*}l3Nmv@&j@Z>8NN(idrkEWAwwoJ~~zhŸ:vt OTE@PagASSFNI巫f{/rD \|L$DQ290漌n{EtmSm4!|IXadh/Ne?k#7i="|pߓ;l3YY܁lQ>Ԉ2j.N~V} >oߤD2nRwq.H KwԂr2D8-)qAp,_6LHX|0(T# +q(*#_xUCcrV?t'\_"60x*.-dA8*)1eNg2JTKѕ4XiQ0u¤b͇Q8=6CW3Jݙ֌v--`=iI˞Jv`<]TpvƄ %pe L:Xr)Ǣ7C:9"I{b*p]LA}]2Y1oc8ud7)KAWk_-~1> z'_ *z兟ͅ4-H`,&>wX2=} +dbX&mªI&%y_nYu _{˵KD=SnGpctffʣ=~gsy%5{uvZ+|؀KK?vSMnd=tTRRR[n0 UT"YmV!m,s`;uk&ja\c]&/#dPdH OS6'$ɨv;0y GdjtS8T&( +jc$7V}<1(Ó_8M`=$;1“,lA?Z + #q ǀѸ#ј {_H[g$lQdfTot\a5R; + +$;糣DSHj>_C %ifV䆐4VRѯkMWx)"tp'̃c!SªX(q!d IFR׌ڢ@j +svxK1la9$Ҡ^]8O21rFVx tnEʎyt$'+A#-"MR̽I,T"~OffMx/>][iWBmd +H6)T +;d .I60_3$3I)L+졨8bI FAޤ(c6; nO?aߝi[vfsw~qC eD`X,ÉPKi6/5$Buj2:V)?2Z +q=? rO靝ĝE?\Y3Lɿ]xEc*yvC僢G ?ł<"G~;"$~w~t/ZwBAgBOˈqQ/@q>Pj5FxBQo+ru}B|u_vf]XpKp8gBZ}"tV[bܘJYM ayp +jVb휿I>ԄϢWFT,rBDO5J(_=TRa2traϥf5>V1]JlcAXaty$ٱfi:brS 5_}iӥ)TWҊE-_[$!-$^j u}N F-[uSAӭWтT\xQ6Bl g M2F) IubB;Sk֋V ݨRkM }1͝ mwz%uC9ZB'm q8Ht}+;OA,挺!Kux7^b6;$> Gip¼D6+E`@m혳aq5ii]pa/0׽ܢj:!X 0",R4Z`!k.qg7fb:K1} &3eXֲ@Suċ8P="qĤsiZ=+V[^D[^BL.۝@jjcVv?9;T|[@D_=6p(I,bRtuzZ6ח(>b*Ӿ7 A#=sk;/j?]*xV]_eTlt}XѪoG9Nr/Ʈב~_Ji/E5CŔJ\R%O GUKU\:. P'6MUjU R5q>?-%cWiStDYv4g٩T9se=&p'h&{=uqU),lc&u3=&N#-xb#B7r & 3X-8z=/'vRy ]mrHb OAj" 6zġ6$}@r&ߊ^inw,=:f`Im_!Lö쏘E:AD~0x:i<‰T[gV@:sH٥3ҏbU:U4֯a/`g`0JC7'Mtహ?aNEብh.GoJӚwP &tIتCE^*edw\qFrV ZPE('3;@;9\Kbxlg#B}V?9bZoۀ3p8+REAE;x)Ts;fw l6*ZH%NoÝ1ѻ,#n1/N7EбǁōDA:0Ag55zvO,G5D.s#Ox獍>0zD̞fLn۳wF( ?;^:IJD_W^v酷QÀ꒷t q4sxoєT[sz xZt3ٔPvKcWhо5-}ъV)U'ޛ1H [y ž- D!Q|V4D_ +W6v$) ̕L + +VRCVCN XP$>n` Za~oΘ8#MƷv lmz6Z#M-vav~+ KYrA+"vaj>33596n+x+)@#B ̽dOS5qUZ8:?<ߤ\:dwT ŧF +B-%aNEAMh=j_h6[91?}Uj G{R7zZg.nݣM#- +AXJYVոc rca9gnK}q0L$J[H?$$ʗcpA +n2?2wȥD+^93dbdU+P6'5@NVv(?kaEh)CV['Fz:,PeY[kY`6ƨjg5^2td vAsQ ͞Sk TBD"h{!;'Wɉk*0.{7%==}Y?7-XnqB'(0X}_˷~D`V\` @I\x|;?>beچLKԜJ6Fa;Ɓ)|ڠoKGޏP,%,-"cϸ5sX5ˍqcV쭦CFmO<Zv\7T=77^Ge@&)Adq)0֢1"Ѳ0O 2 <1iYm Q2 Yx(BJۂg 9խ3kmHFǚa--2ΑTKW2-V]T(Q7jtZ +E2BaR;|J%{ f C7Rm*dg,Fղ,Z La)^ܢ$1[4ma 6oJ`;m0g/1"gEf-(Ĝ9)ǑFRpg- +2j7B +SI g).5w$r93@j6ҽBpWp&IonP)p!)8A4H&xY8_(+~Hb<-0R4ҝ6&խ5& ǪӐXyEܓ/<QR5j6|u3 FG-_N̒ JWCJxs;{Zw)>5[hcuSՕP7{ܠUPpF^<$nT#9@?eF\@ot0o)  +cM s'ޤΚxISc7L.&έӨ$ZԜUKcbUi*NFZ`GTv/7J"$GM?>NFg6!0V;|phО,i6T-=w}QkuFL5+ڣݺ盛~NXW_bܸ?l 6Ӯ +^ʪqrS׌4s[Izamn7Cn.uFD7jVkOD ppW'IygMuk}N8#>W+bCb% owIv<.N?KGLa+aE#In;9Ql^hmڹfSkiklarЦx%  ~Fu>9J &Y% =zD|ڏtJv[ +] Mi'x}ijQL] ,rRL= CD"3ٺF{(Έj~ty ƞ!)2bP,Ze8Դn@fcYmi|>gTEF9sɂsq"&Kq0 F[Vx +!8 >ɍK.#Gl"ȧo^4-lExH +NbO$AMh7S#'@0(z2ɬ˷ugsD3d>] ݎ8BlI}; +s\?9㠅c9GLi踶۽ABSmXwٹyCrh\[Ci|m;ًz_ ɽҢnڊD3'{RB;FQI e]';'њn 诊/r&dd`=Zg~_]+]]m\2{IYbm ҋI`b֠|,o*gmKZ:Ic$%Mѝ"$zCl? zaA:^!kZzM .6yw91QhyPtٙ`Ы[67t|bӻ<)a5 g{^2(/%GgB6m[u Mǟ/zI.`ը={{= gng^m!FZ +dL' DMy,ddR٘')%2L_AapXxhmexдvUдΥMҦeD+xB%(>xEt Eȴ{/Xaʽ{(DRI To;*W8  +ce#2D XJcQG%G-cXJDvG6]\j8}"PF+0^nw5Rr#PļEj5mVP5` d SK9ڌ9wrÆr6d _j:(ֆʳa +dYP-ܱ쨈t2%dԦ2ݝj4+=ձ AP + >xl 낍 1߁ Um1q5[2K[6mQ9V5Gg#fό`黣ҦBEG-bΎّ:m>xGk ; >r紓:W[danFr,o8*a(V@ea%fJO)m;#3g^4黤{N!7@.im}.>0 <}ݰzivgm}ƀ~#$g[:.p*Ջ舷EVl +bB:!Ia8>ҕr^ '>vgZlZj+xAh4(װ#1fɈ)] 6'wh1"n&>P]N +!8a3P Zm;oo60ZAbw~p즠WG}he~QSR#PJXV?]HxK=WFXѝ_ y:VBNGkqq#Up}Z3R#` 1}3i28\xs]$[0wexC`@q| ?JQA@-J~i.!y]bvՀS#7$wNzo(-eweS{RA܉; pƆt4G֞4Du ĵ2Z21q~IfCTO*̷4DT}YJMqv9[rz˻ qx`vI njVa}$%S? Oǝo3jX'#0Y4*o|TV0ew6;}D8IW;ɪj(b(?-x La`C$.0S(s%OOi>zN 9erY'GGf!23*jǝ._^oB,YJo y<3 Qp+,%\ *a>!~P}TbFre1e1Tp4¾y-SHmUJ(-y&vJD){r}ܪc=#8w}& eXڐP:MA|Vt6jp81ctN,ΪheDNay5b)JP vڤy *܆D~^d+y∾xUP<Lc&ېqYf'+gʸ)m&#R*v?;EII<,'jef uZT@Xx"wr We@I6Rhm%ѵHˆ +ûkJIyy( U =l/T vlJOP\ꓺ's$%Z^ŔtltPqADl1x=5eMX>J?c:]}`{A>#LkަkFR'iuB.%RUu(ApY$G;݅{ayg~qט[YݘafD%N? .v;:jQZKW+~ś= =}{ "/̤LK ɍ;<[3v'I|`"ge=nMc#m9y&Qq+J|ܺlk|IH1H]ڦb<{z+}a KmfA4m`x BĻ3C&Jj +zi\Qa2UV߱ۨsx- 'RtU^+,IքTћ2iKC2\F[AɸѮ>\./D 6L ϬRw +L-s:,7;/jx_tK?w(X]A KPd9M@u9d# ~t@U ށmOE!+alvLpG{U9ĆY?|n%pQIP~"qLէ %TvT硏/#p1bp;R>;7'U߀ JDs8[ʎwjߎzzL6y{p`b +AAx{s--po^3H*V~b.l,3*qMʠ/Cʯ@,ݫ :Ze~#eق:t^7=$HYhe +8^c53y8>QNU!s d{Q" q3"1Uh%* +7}t`^ù?{0O m]u@ ꂎi.k +V%:LlV+vC/obҝ4pӊl 2&r2ߩIp_`("Dܭ_0>bb~I!z ,SY"Lzif|qYsVܢ9㓘>%xxqy4s7s:z_-G> z#Wq wm y΍BD^ܼEK + \IAM 6Buq|ttT}>_?Ȇwِ! uT-5-ن]_Jh|ʪ}lY}*jiސb0ΰꬡ߂}3Ʃ.!6hp1͚Othyu(Rxp-LݡvvUgnfH]_0tTY=U#Ѻ պfэ5jzԥm'._Ϡ^K#jjMR{c~,TwLZ۹ ̨r$VQe3U߆-;|-__!,6?NI_rKҨMt'OLg. Yb;NbnKwvS~CFc{z!F%ʲ.yhG|vlrwfU`<Ğ^Ơz@&/I\BT*`LBjl +bei4̛I[`"&\8G'˭[)َP=0Vt'Bl(zӍؓCp0PeL zFRv; P +$#p**{e5"ڮ܅жb21[Qx`EJvՅdpf<ޠ#E X 1DILϰGp@VZUb6lpQWBd=Ŋ`pޞ4c 3놵TQo+^ڄ۶:n*_xRNp@{k +*azx t+l](ybބy!PĩGUF$0)y(ތPT-Es)yC߸{"ߐZ}s|~hk9aRH^U2 dWD]!ce~K{ }=j8}Lbߞ|k%DQ#7kqg8H02Ƽ:PpWnBS4B~̓ \!|u5+7ر(XE8eRL9*+y=TE"um_ŴEdOYIB`e?#߆/ՊַLI!%"u=O;N|>l +o, 8yd3]@hڢet?.SlI+.[ ;rV4{08fn0s\jyzt7GK0#;CAYy bʢ\jq5}JKzAӒɠ-ړh-c/kΑO4/!5<۴9_zUc.hQOCw?PlA7B.ts)d&rڛee)j=S-{s˜29h7vE=l;ߐ8]. MxR݂)IhZFUtLH'Q 3}ӿ[<iLa[ ^ +ʍNZ8V>Ʉٟ_ Av ^rn@P[' }%CmQ0TqUwM>ib8rq?*ƾAGĄ==5CAHSEA^!6JH`ZoyW_4]B%񝐻͇ӗ$x4mg^fM0-oYPᛸ O|"ylFxJB͋g@fHj1cSb q:F +SK>qlL=,q&K8+[Ԍwf7ş">=OE|K.g:&+hQHTQ.w:MK?͞HjC\I +ԧZ%[+eE^]Pge s>I-2#9?'+l({*DK-lղ!!,j4y=#VvUx˸= 7zu+3m +ݖe-ƴ1MO&,j5Z//yt jXG'D?Pf[L4㒙}›ƶh9vaERCO'l4F,Ryo9&bG/:p%n(>tz` {sOEJRζk㘁S DOP"O ?g+YcL/{BkIW$n"<ӌw|9/5q" +Xyd}exS{P''GNݵZ=XIt. 0/<f>od}-^7]a>q K; ' B'];$ @;A:l u!#7(54/w.P1U3[ *%#V%CDPخrV.[^(=ZGieR '1FLͬᬬA*5.EegSmW.cyY͓~4b xQ-j~h3;s=lDrs@Pe ~2kcj;*#3*kGT.&LJjYxL?5wV'p=Tm7 e" +w@: +c_k\°upEk.RǮTd\/Zl1UOL5%tEȑͩ_nxY2Pn{S VF~powlDFtYêv܆(&@&kb㡯|>O ÏϏ\'"m/Nz̜ٔ&BJbf;3Dah@Erjzycu~#i7͎um4FY*@lu7d&stF돻bWJwcf7S@o W5m,bqbO%Ch7};[u}5_hLacC/՚k=tOdTY[RdY[VU^Ɂ$eఊ0԰Zy[LeKŶjZc&, ;{kY[pV׋/xobD/ѝĠW۫C { Tx(PyhܘOX*ī}Zqn-MrWl_@ΧOLÀo^4<CLepoԛǏOv^j#ߟ#_InZ>79%_hJY;ԥOnͧGU]v^]{ۈ}/JޢxY1h޹O=6ϟ=?]dЙG;М_z{1WPx:go-eht t!`gyx(I[_ZaeEtWBu{eo!w>8w QC:8"*|H +\C# Ne* 麥"e"躢Rl]L%oFuB8 N BYa!aBCBԬCHB,CBX0T ,Fah"jUDX+葦̞珘! NJ!afe,8C8pRZ6xɂToÈ7%kΠQƒ;0UwSO݆.Hev8Q6"ňlтu X)%bTRwhp^vaR u5OR``J*vHp){CǛnTCYU'4Pu̚8^P 6d4fPLZ!xԴ9]F5,MS_6dQoi5F"Wf +{upOp7ZYVR(Y$8$UXdhIe@Vl,1G%)~bV:G7AsĚ =dV$;!My~$G!x<}YLsZpna4׌9]@Ǹ<1' "nO37Xd'ov'5nj2}b4e}'+9U;k[0d f |+eu^, I%XOt IR/*#0Czq|.e1iL-3S:VGj|32wxy;82yC2"}^!)dDjCl_ƅۺK?}~h?fUpi@bw"3{SbZE8R}8VN)FbIGg,=W`TYy &GԖ0_. >_o> #疍m@S&X.Э"ǾQ|XQ>_rʯ)b*G+cѿ)qϮod.c%?/ PIK;c0|yvT{ jaϜn(讍57oRPSfCڃ*BbSjZ/9`tsd1(uM[ɘ4U}Ҷp&dk\294˳`XiFk+UOö_b$o9-5*Gʶ$s"!)bZIXZA95;..Iل*&,é))ޙ@D7j8H٣+t_Cz+"!g41] 5S+4}qUleAJ53XTC96qiYCg6ٕc:i|l&Qi-{C?1eldJBXaHdD͞f,L38!#&zSW'lyH 'ߌ +GڣT~Z@@)jK336.NG"~Նe蒄 X6OMSqTX}D;nt Z)27@68]Ti);]~։WT H> ͺ6xM{oHrR*)sY/|ʔNuL,PbqOAQ?.w0gJ/BUu9<6E M5H%ƒ a~ -N,(:c ">Od5I#IRbsO峀Z)R*VD >S]<КΖjjjG^4,7e;% gՎ5Lmd;5O6 +e;e WL)ӧȔgM?de*9F\9+uuker8J.;N5_:j\#Fz_=M8w^ƑT%6#l;7?omnM`z\woOy\7c: աzMDO7qNÞ.Ԣc`^|~IvA#>1Jɖ4ϖ49~am %UaA+8-b:8ҷN7ޅZ/7ru]W\}D=cE ,#mquvY$6r,XUOѕ#A'FoiJ8θ2 ϹWb>q"}'DUh'C^rKCVZL5 Gi/,}^O><;99GNgi/S67P B[B7XV$'H'v?P m5ɁkkrȹvoEO<0k^y W1lSps(!֭:T#Ge4rdӦP?δ$wP [ +X3HvUé[A. 8&`Þ1[Tp#"͆$Y/e6Z5;5k@8 q5dp( +T_q8e9_.\Zq̓_|bjvFOcoSq׺*x+ou0;[ԎԆ^q0."uVZnVZe7.Fnk6 7 =τI$2s䦜~pcjڦ|u0{&JY +}Fh2mj5Wy /eV_.3`J e hjLKUrdbT$rq +uz]"ztH> {N:p>aSLӧ5{oۢE0(RkL'o45Z.^䴐ŝIaTy.8/8x]vz6^vѩ)mn5m)4P‚8zs3D>=+pǘ9߁8%^OnNH ~f 6dL`kQa} uUZx'EKm6&SJ +so .04wI|`w%饻uȝϢ? ||£x|n$76N+d=WtU I\HcӘzl0' 22u.8C:8w_+=q+z37H¼/'trTMjU4bY^+-@2A}T.@G|ʕVO;SĎ׎֎L{lu@:)Q@ʠdH`cm C?Ƈy‡  !s=\\Rgtq΀[Ґe(Ґe`,ꆦgfԜP l@q%@f܆p';hY,A>*Wl9WXwz,r' 5d=`Lt.R1 ƍ]0<dߑ 3$kƃ?Ü. +:t= ,D6}::,Q I?]%_Z2*z"!tևd0Gaif6DSaqf"dCfB: 2N5!}Ȧ Ȧg@z/2<=7KW"- ޻ ^yp1G eT;s@5ACLǷy.A^й߲unpZa6X9I0,U-S +nNه4t o/@"Y43Adm $rO%"JdFP2$M? =؁h_Wa]3~@/pɃg}n}Yذ((.P( P(}[?9Ya$y%ErU$;H*ӍUr!JTJص;K8G7tҍ~1]d!/Վ*JtK JC$.a%O?vOp,o!h:4f$=i74hr}c3=(ۆ=8'oy5B$\Bح{d]8yFB]*14*Qrg( 6V*w!Җ@gpZxa;Ԣe|W5 g`g3.t:|N=u眫Vz5kWc,hVh^>a|s|!%G%Fަȿм=?o9*q(G2bo׮Bul)W-U*(}sAQaR9b[]#-` R{*0Y(Z1D]SBy%ל/~s)T캻wۜۦi9zq,O _ +MզL+ - }`*F̸ܲ!Is.H7? 2P$;& +Wl:bc. z|e`uP})pn X7k + `f#E=CV[F*^݀X25cJkzsɈG* JF#(3Cs'FF ._hj br܁yx\ k ¨`Bd(q׀x-{-{%.o%gM"@,и}/ hTd W9Y NpHthg;O9"%G fp%7 2%EOU|{V3I^tHRC-); gnO\4?)AΆQ&#{Xhy ڈZB;g=fA8`/CqMaȦ__#sA e[U<:,o.&*^įEwFaX!C}NC3?+,'GiBU}zK~Ib+uGey-[=L*{}| B= StZa$eZfSL`G/ `_!?q/;Wlo[ cVDHDڷw??Z{P#Zp(2+uf3_ڐ(HrfMs8ɂ-C\y7vT.W%. ]rYՀcqMloh[2[37ezKƧK/,G?eOARs Xu6%W-Xɭʔהvz\TAi[wa"S:bL_IUn/Xm/v`EW7)ӗ\، =qWY ӵ h\ @y6@@Ҍ>fx 6IqD:Y'AցuB>AZLhK'KiϫHw.νq69ᝀ)B- V}2Vi5YRh;)* bFӭhf}>0z&ړU$)mL/y)h(z,8He|іQm%ɮ;~JxMR +ACL7E"L;rka s8(  `ݹBHhtsT2YJuA{e +MSW1HVl{ ?Uҝ;|ү Kc-x|>|>T^wK*Ux#+Wx V_yRy S2^Oj[sRYT|l zii/B9:H%^:6\2@p8C 3v0h7yrf6)20_?7{lcC ]Ů18jQ5,BnI1׉)WeU( 0ga&&70PV\&ϪaMU-u$jD5@ѡ훌CjmĵlCvhq^ԅHn.mn^Ճ#R*~EZXhvmxu]/ {jg>׳{B{h7Y۠ j~½oz#So{o~FS3rǦgbYJ[·Z;0gn j޻|my[;̷w +78fܢ_rC +W;E7R7c{oO޺pֺ +9χD?bqcX#SK2'R>b.5sG-`,sIWlk³,V2e6ec:J;]'O~lYzajzͰ6bԇq{Tz~Z=7O +퉓֠9܄y)[,x{Ngɰʼl +S^" +q؋!CKd Ivo9EU8|"ԉB\nLF=>'^gEQ[/KT># f8񾣕phNz2)Cdh:Y92FI6QGZx45.@%*i=֦6+g& ߞ$lrWY84hUKP8<Dұ"JAZ3 K5#(]׏YR }-l皛YP%8X D@ıj 5Y1'U1']2G@ʸ:Їq>GЇA91x`x<Ї$?1z7Uc/q39G?R}$P:$Y*Jt*K5.h':W@k^:S NWVMzlV9Y9YG:1YѪ=YʕY9b3+9r3Vr0Vtr3+:=YΘVt3-1F<%ȭEZd* + Qu*.Eܨ*NJ Qy* Q\ҟ@TtŇNTJ?AQ*:#*0F#*0EF R# X!zr#TbJF(ŕYQJTaQ*1F8GFA``\. A:eq*:Q** +Q*2F`v0̕pbIVGLm |>㻄>5u\}ڙ[+?{{=Aߙd91rл8}ƞԮ_ov's~^ߍWH}Ou: ?{sk׍;?0>sqz{Opߴc;5)n{Wt7 j1YvgcpG~9A\>Y\ͧ~R1w߭k7TZg[nncgòegTF>~ (W^;~_?\%7?[<tO-7r}?c4k.^O^|Wc8~']mL+s{be}/`RiEc7?w'z#| :o>[Mi#CDa:I3&y"@ID5hS&"h&ܝ$D$&轛[sIkN=ޕQBߡz#I?t=vE=V|I*>#T|$J|DQXoI|"ZT|ŇTr#NШoQПDvȝn&u^WV"um`kSdQ:pQ[PfڔNЭmt|WRj:2ǟ"PLǟ&g)K[gDZY\KO tw6*SWݼll!U3=i=vx3MwQD|r@קaZ^!ڤO`yݛ;U.) !f*QZƨ.0Tf NRTA2J--ʃ} saaO++!a8SzL \>uY˻V?tR:uf̜33=h&4=q +J\L M!]S4먀x{s=f+dWUYۈI] `X/d薇o[$ҚST|[G`. &׎ZU{09 +fZُs,CuP [h=5{F~oE @yod΄XN:D:TOI.v>[WɄQ~SGl?Fe+_S]k APnl&)E1CD`DU v]Tcg2Jޱ '.^0L.`4HCߩxݖ#O* +ǖf,C뛆dl#F[PB4ױWΔ?GmeWkkq$YeȊocoE GG2!~M2(Yygpn#^lhP'l5ݹ>!ͬ1@rvnoKH \Az~I6aX^IJ{:|o} IIDc:K:[*Qkfk2GU%9KfQ$ -ZSWG$Y݆ i=# ܬдE"S~>(ǰS^ExRRؒvsFxFt* ;ItC \dw Ä+ėY1N_5DЁ|S ^$?d8v<B`, `SR0ˆ!p`/EU+1f)YۡO #9Ise|+HbwA_"d!YP"%["i\"m,Ն7&W.%<ϴZ6ZR;9 # Ngb!f7#L|01Eg`!# f6̉"$#ࢼ=4x x7و?AFV$Lm6 pD7ɀH7P)v1F; 4$3̻e6̯hO3D3\^v_Бm=eqpt7؀|(&#]8-o!0Do 1dVjϛS{kw(2xؑ~HƋMg!o-g;"֋h_^a'=4R C/#K44(tEZ 3D$C^ONj8]qT +tq4%+ߥ.XHӇ+̑k?W!eHA־Tu K3&6@AUW;@C;2@07)ɻ7T71op;xZ{78bl($7/tB+?*r;@5݊P(W5{ +x}8 +KfLEa&@W[dՆj%QZ! 4Q -UVq͍Ԥl'$BlM> 8!X">*T`V(ո44U~W<'`bRȱK .m[bNxu`dlNW5 (KZ2T+ ioNH^rq )nu9 RhRWBIH4:3ʘdB4~Q0FvGɼY%"ye-9X`WB0$MԢmfrc?JX#erqDrrkmBd#U+ūy/,D]нZغ+lpNF`F1hVYUhNYcn%ֿ::q5)E)uZzQ+!2QCsQC{ӳMkrV(CC^5UijIh oя(bɭQ#DD=Ѯg!:lh4Jć#V+>漰Z#@bg[WFB:iev^z` cYB^(ϡQy a{i)N,c(sJ/>)ߞBu'ldžFԳ?jp +omw\FIޫhsl5yO)FXO"o^g;dt ,i_ kU\#9$' N'4iQ㣇_ڤvs*_$r,~l*y0g\j9֓݀F|m ]?MRC~:{M)V ~rH_k1~}U|(7~U8ay?!?~돟ﯦ_ϵǿCy +*T*ʪʦ:PKѪsVV̛-꾄OYYeKK=uxf^ +jO:_E 3@PBAò= +d"~={l2%,Xme+}SgROprOOx ,[p@#prkI>V֭ n}ooU Oѵ zU%,?7Ͻ5ܕ\/LER+ܐ_f#Fz9s4(ODE|~F-~ ~I,yw +jrVzu=/߉}yz?05`aO&"Ta vk 58v9๫Xnc,:P] lѴ&w[qݾu<%].2d\`ԃu;F-ZWc9`ݲތŚ#] JC>> b ~?/K2\؊͖AYejh]y d\zc5Klь56DcgcgGpu/;ٞNJ/e)I>\ #$ 7XRh /2 +Rr9h~@}֘)~5gaZN nMKNky/oQPA32J3l7` +6yO'w/YRܔ%ѕCA?`"sS79_ﲄ>Y*9)rN?ʎMZ>2j 9iXw6`ݬ];\Kjȃ[.W~s^Vy"~jkUeIxK'S[z{ُ*K')M?%P`=ˀ򴲸]k)\i_CO)Uj?C 擅})Vj?*m>gywQꯪ`<_-qH:y׼{~ +{O rG1=2=_7ʀ<777=7=7@=O>;_?7ڀ=777>O¾?7>}?r?sP?tP?ѻ5b'h6R'jQv8Q;7Q;89b'qb7B'urv,YbsDq,^S?<:'B"8 +{;񡽪H^7_!wrT|{Fڃ#_ѡwvidj*T*[ESդHj*Xjg2yәE'uBv61t u‰@'?ww7861;&1& lW & nW  ox @8Av `기Xw5HA<"A+'@#I+'@^`u<3E'xB"49?xc'%-h'E/p/ԡ8.ȣ<='8.#^[0b̢8E#M;L'Ȱ7L޳h}oxK )nB[98_n=[>*f`/1#zqm*ɋI|r;)Bÿ- 4?/6GǧT=fmEŵY/ r]&$^UpSMR:e({鎷:Kr~S+ago,ϫɊ9< + `ٍׯj/<Gy>L(~mO\6(A۫ZI2٪nڟ/œ%c}6 T$~?iJ|繗\\u֋q.;ఐzO ah(s? +Mm2n:zuB _$[uNMS={>.M5%[}X_OV95vgqh흆{Kd|3%}*i3_uӊiuOgOԩX)E,0]23cF[kuOSvhs?'{>4}p~y8 G~ {rb$0$P@À"B"H$p-@H% $@% \@\@% (;.T y^$L&@@I$ 2Lpގ8y&xx8G>@T:& h`uN & 8}g#8}8~gcHrac;NNT7o%z9ktrxBs'4˳ϜS_R +箜uuT{겥SWuyԅ&zg9j'Xyqf+uRZ$Ru]Wc(?DK[ʊ׵Q%}#Қ1,-][A>u{T +P+RnVs@ +B0tI+ U 5ks2ڌz{9N^֓ -L,W'O@KQ-oK6=/kǠ`4W$xu:~@ث zQ2 +(:l[D\EvB,Һ7ҹyf}Oʷj@_&3yS9^ر]MwN7ySI 'Jt+9r)ȔFC橳\&cԅZyĦȂ36/L{ĦeQ0 F +U|EK3I?{s(((&n ehe&'E KZ2P1*73RԥPRTD%њ+yuaJUN7-ª]Ο GQLKGUd/QﴔC-G9_y*2{~!V#ζJ*r)'RDFD wTl P֢uƀ| -+3X-)Hzh-d L(Cٮ_7d mjvJJNsj8vf,yFUzk/TV6si R!Pobbc1UzUU.{2*`n_%])N^ƅ(*-vCe/Thb(H=rB˔w1w'(\Nsb +lw8P/2XqBg3ƗckW9ٓ%Bs*uvKX_ZbUۡNf&IFNl.4Ս"ݚONm#ճZb{٠\ ^x{cX d'3J\h,;0Fv.hBMbV5#t D14p;L3j5 qG4EP>7su ,/X@ ,Tq4S%,leIxv[Y=@g7hQ(Z,Dx(8 +p'{A~,m¿/b0]")zOK7$8Oȝ=!V(.ff"0&D܏(%-g4KQRR}C oR>f3obХJL!yb^\4l  ;Ld|>c\|zf2X2-/$Soδ%i#oz|)jqthϖ\ֵհd_9DO=z!)֤H0F^c_\1 rNwfIzyQ+/RV8r7to((;2O[0Mh؋UBU,*؜9gE,LYN)-yS+[)uL$*=ȴ~4 R(#pߖwb 0 /64K*^7}wh|*15#n~ǔ~UYw̧qZe=.nIU)%*.J3;[_7zUCAmZ9;l +C #Ԙe1yc)K<PͶ'5j!կQ&1˧'"՚r1=o\6kDMRsP~JWPv_7x8YA^'5Su⮠5C[ڍscTcEӂP '6V8`DaܻN, o8PT;1ܨ?wȟQ{}]Pdh:h<6a"=ƀ1=G>-=G~-9Eh.H9ߢd+EX XTCA>6Jw}s|G;)~驢7 P߷;8_7܆71]+,tf(:f!dN)t P44P5d0Bd(莅`iȣ΅dȳgBHȣZ΅H !l:!"t.@Bd)':!:!::!:#!ِ̝掄΅ȣNG !^t&LBhE 3! C L N О212C@d'Bd:Bd:2c2`LRt(|`6E_`( +mmUғǴ/(p ў߀9iPw냳EO 껋nBk6e2P[|`Oq77:SM :[ .<m:I76w<ԧ|}&zG35ɵ2m7 cmF[ݞcum27K=[qnx=-V_.-8cy3M%[n>=Ycc3ܯ7!c.[qZ͉&sf|~!^>}cG--}:xkgǸvltgǸv }M$-_ㆉ[o[#G5ȜMacs%s̰ WL#2)<侫sS=QNCF%ArԪ汴lT Hi䄊6v]NBf oaR덙s1u׺n9a53v70喃H늏E]:}{p?(VzF"I/ d"b/hU?$\?{ÕReab ^(9iEPmz7<-v76-&ّX]_TBgXʃo[61 +4zҾSXiꑉ3x3U3uĚ^9=Dr\.RARJHTQRtTԔi7@ ]Fz +ITV6]GCOix8 A[|oxgo?PQQ50E4Ex9Ok:9'~^5P्"#K9 tG#/phY3wQjmÕtiz䎺q!yZkE9Z>w gnz+( Q?tґvS'V% D 8•7pULNSg5rl6ǟKװ#!ݘB[2e7o߼'TjA$Z +F[df=Or?LC~pTKhv ۷n* mϕf̌@W)+$-G7[lЌe3@cag^|- QȁlDBS-'%pQW1V)9IV%  +їgTWߘ},]l4nA5fԯd.;sh+m -JZAy,6)/ r$,"׿rg/d}/9OPrrQ0GoL(Px>UƐ>Os =|fdC lm$PJ˃:`p 1GȎ3[wy5æŲdI.TH"$ohGu~) + #4pKv ӀX[ton1vӛæss6z o~Pу6"h(,>h4=@&'p5ҏ^WGߤH?NpwΥ|Dc/>o>ؾ6|jn[ϊȮ8K[6$u7L#{ ˙yo_De|ah5qW37el:ڤM+[R435;j ͫ`ÀP :w5&j3<~N#6c=hv }@ō彍P[i#66/r Wy_C/<5֜Wk,/0/yb_aswX[KWOG^x׫`tWZ\31;ؙ̼!/ d9 BߞP0"B :fs6,3?_?C<XG boKխT1v7hCI@'MFJ((kkwHwwJVH7*y7b׶FE܀akk۫ˍ]pq,sَbiq'62;N=}x@D`;8= 20Xj`rнɇ8˅=0)?^#+'?^(+D2N'%MYR4D: ͆7=X`>0$pA9LrwCA=v}xLm~b HAʙ6L  ܧ)! 踐qjKvNG~y&Cu#MV!s('<>_Q)9*j3]lrL4ȃBj__BξH} u8>s L|m  ٍin(g}w B21vk=Za}NR^l:&@)>mfKuF|M?tL*axJԝgK ,Ix9xR*\ţU'[~nwpBCaN,+gz4_c]nJND8X"CB\ƨy_! Sg +$(`nݪ(XCAl +L{L]tF*VꆨKB*Z氎ߏ +7?4ml0}uk>ژ3:)88cf9W Y#2->ݡ첗|23"u)$dR7 <7%?/9t>R\:[A3Z" Qn"57 }qTXQ!Lx:W8X<DS o#h( hx=+<+1;%ʇ|f9v8 (a=Хh|Aӿ V?p\J!Z\JkEϧa(\ ԻkYYQ9c톌Ɯ\%72Jc<ݎXo<|Qa rzbAq0i|XhPF`#x$IF () E$^k{ QJ7KIcن6\N\hffQ)Y$*)>]l8$!GQ%M~)KYV~zh.~/rLw~&m.kaM^ڤ>zmMk1;Ȑ5 $);=b@8<)n-`)m #-]O:":T?xm?վd-amxkğI uEs墭;"FeELbdj.{yWMזp` }Y;BB&RMQ0mH5pU4jܫ^!wX DT:I^$`m@WvVmQ;tߎ(\2 =ig/[޴_wG8$wby{~Yprbԩ*Jlxz:Yp^'/%nadn1kNbGCo|CC<`2qԼY]H7&yJ;hVtEt%'Og5=a31b(SE+w -P/z4 :7#)MpWah +0(fMmZRYu~#R$T'"P 3&@dnHРjTZ& 33͈ޣ<W읧F~+"-(#0eq1$֌Ј$5B3y)B[?MFd4W@$ {SRCى@(GYvڶ?¼ +wG\~]`5E~T]ݘbRMpo?G/cm0iQ5kɆrEW0ZзP3 +7a2T\FP#`Ÿ.ue>wze UpK L6k9vx7C 3ʿR*M>L֩c(v&] ECxX}zqiM כ D&Mr22)jg։f\v!1~0~,<1Jc%L43xaDYaW> >3$\|yT_ DZY~CfKHm/O5ROsZsQpw0urT14Kb@"6V.CR*Q@rWh:MWIp  {D9?f@>Zk9bl%Q֭4f>Igb!*Քz4%)l6RjM+Ja<]}|RB[ 8ʯީ42-Df\R0h24QQHp3*\\U)3>W; 0w so?Uc/`$oRPl(R*VZw@cU=/[4F 7l4|X(ƒ!4<'gAp$!wU)Q[j';%/筩WOas8*gIzV13OrRsR^j`$ &{NوLUͬMC}rxti0UnI܀G>z S6Hyar^>.%{B(};e tnn;Bj:9[8FenĕjDZubaz0,1h"曱e#"].|U0D7;Wa2Z~ezF + [Έ *݋ 9phA [;!L!nTIz+OQ +wNw^Q~!dћh[ Y -qncyfnc \Ud|i3,67Oao # &p:P@z% Pi"n#\Hn$n?9!`ێN'syT y yT!@gA#@$?H% :? L YɃA@H`I[jAz$Z(o^5j0w񬏎0&/qn)m[4%87 AHLe8}&6c_K2tgoNhVZYʺL$W/utr}ZP_m~Go?UBP%sTpG9QP#z${TDB#1"TUq@TҪJ9RX@TQM)d$eTܚe*hL.!N Bf&q BBFdS-BTjKBhT-#=PatL=*ftyj֥RTrզ6.kU.Q36ܷ:Tت]QZ*Vl(:8uF쳠Qpd7T77]bd\hPIr]@& R;ʅ?TIA%pv + +i/T{m']37l{6½^%-w~̝9 +VnIb9H *?-$/`#Ōy<=#U+, oN2a|[؉tv.sxP/exم3SWmź0Fb1m}b>DQn[/nZRHqQO_lIMxHK)u+"Hg,BL PzRk͜P!{͈,Eci4Rwh)|ň>gL[j$yg"2m,a~M'1oI?-jAk 4r05达Wٽ21Й!Y8SvQ cFu) +8mS/ iZI4!_B(*nA ÕEh3n&n? -et4NRHzl`ΜB۲s9]ḟ> sùGk2t'lorFojdbݻ*/M7;-^_9bZ 9)nS숌r%92g,N,-f=d7֬1lm[رbظBI 'om`!FMٽ= nkBLcsk<ҵ0kדd$Ք<_|UΦ 7} !fBfYcIꍓ%;i #njms?[0tb+MQp aL*M&ZN]aYxy$Ѯ XHKuxS77)z Ys~횧:zVo "6Dۑ*L"u;e7T%JQcG"3+%~FV#racMO"P@zsOt˞h"T8[1}ɭ J[0!tMCcu~z;NS9}v#x>R&#x^ n WraY]U=&3eHɟ>:?]qj7еT^eNنZkUAU/~5^ڭIs:ߡXc8oiz %pQMf39ic>(Mmb1Oӎ/-zTㄠ\X!gD/x>۞#bvBxܗ|0Ѹ7^g\c`٪uLƻ#} +2O-3X_,Q)Ƭeڡ\b_RZ!D.δ |І=jkcHMw'4usI8/C ~xsCrrp nL'-䱆 +6qlFٶۥ; [N i=0c`%bR!C򊮮#qbPKXpffncOpC4sͬSGO[.`:7d,ho)Om>G^0ŋX~ycSX5MSgIj*ԓvgоD^|@L 1s9亴T[irF%m 8|Ӡ4?GOO:+'I%_ORk=#4?@'qsM*!/C G)=MAlMŕWrFJ؂,a+KψxcxEP\}QJyU||Ț?s O`q~W B5߸h|ษ͓AUq2j/ b<64gNjXጭ+Żleb}ARײj>3cP}eL9l Zlؖ5]*Yxf2n&cW(lF^3#+#=3IaII0ɚ~'#/lVǗ +W +S\s'>o vwb= +j +Nd_̮Wu훟i\se,cDAw*⽈pCAlbbm7q^l`y]hVtt/2wOSxPq%O۽0厼#ڜr=_(KUV[]󇌼FS]1֥š)ePo-7i i ^Bo5XtczʟhjN4lФ%Y^3#창Axe`-'aԤ.^5.^## gH:؞ѭNd6t\|{DnϮ񊭰_|e >Á%EM<3=BӔ@a{ C>{_;>soK(`>m۶m۶m9m9m۶ޭֽt2J%Lי, g= UP [օнҸ[^rJ(X3GM9ZlqvJ v1}%9/k4.M_RSib:]Dаg1ۤ +3t&W)r&5_|AεN36 p5mJ,8 Q6w*d%4mޒ)(DBVj( f +C)gcL"AA7p0+[z MTٟyǹ޳;WqWb8wtBPoF5(DC  +IMe%ե:%H)1%"Z EZ!~%"IxEiΩ$>"{%KEKMII)@K1N3$!.Ąke\ s&vgp"'vgtb'~`bL>574=+oNB8:[P-ԑ08 +<ߨq NT 8(Iprxr ~*mtr ZߣfZ-5mєnf{H^܇ҟTsyh\_e襛qfP)%G|/vzm],Ii@/wҡh=;ͻd8:qqP\*/HUwpW\A51fmxTsAa+*ӻlɾ^ +2t|KIHey5K~3W`!fzCKKz`ºdyß5)m$·cf@!'# +E#!nJ;!ByMj^͔*ȭC')oI-JGѶ7(dhLnG܃x~ . 䟯 ( uɿKϷB]:gRc9=p_F5ÕV1c. +DPEX;WiU!i/'H*@;smT_-y.}63ac@#)((7,7 xBMXT6 f!))pMrxɐH/E>Plt@}D .k 8M2TjFU Ƙcs9g2z*uDt]-jZ)W៸2jj\wH.K̀i43fF?^_՞hѡ,I[YEsjYߴ$ɉQއοV+H]{rӜv f=$So#|VxmZ:WHOgzEZ[Su[Kb v4\IN']rXy'nZf߲=Fj,Rx򻹛pm6H[J;!נ$Q悉RwS(ӛ qVBՎf6L۔Ò͑%z8)|D&98\B +{r3gE'&*)hաBӝ1TSKt(y64"l 0|@⓼F`u-<쨁I+{ͤܝL]ӽG]KNkMCKL+tWN8\ +Y% W<\ :n9^~YA0Κk`._iR`;KZ,9mp^"`rp_5@o2Gs9f:߀]A`˚on8=[֗`K\ ՆPa00: L$DX +1 +L`@%2ek$iIe8)3 s +A2ޡ1# -٘8PkB2{0C8"!u sBЛ:CLb bTփ9mS5:jw0q'_y~S84b%iY{Kہj?\@Q 3ta a>G\Gmr2DqLm6!~x^ upWna&lSz\ٱ~mSrY"g_'@{]%@PijR7#XsAi 8`0؎PxD9G3c<,A."]*8IU*c4\ .>I> e޼mG{Y3s3cK8{W/ +=1 e cv͏kZ+Wʺ3Nl͏ZI1,Qb<.v3^EWe61J槏`#a +Q{ 0&`m=g,Qع,=,jNM 㒱e ȠUr!#JvPK0 +^*spVz'(~'69txs/.[s/U~e5痳&ps:u! lcJPSw0}IZkBFӴc`Tvpc*ЭKK05zamji g`jogK_KK;_IH}GDm6 f[74 +oM&ߠP=_LL2*4hKX?h]= ]c|]hoo ,<<(O;T_ 5%Ǩ`%)ү2Ť{z^9w(t9.ؾOGY$X<ױ>_L8T%X_d=ϝ% -= y{`ޭI7idؕ(AR +I xJcQpHO *eN0xekU_c ` pԾQƵxQXQi|jBop1! ,o#m-'h4z_9r a 06KZ `xڐ* Bfŀ!}@!r ko{ H@`Fa^`bS 'O| >#6u7^YWdpn6SYX+$=χU^۪7?%`q.]p\`.WKd\a.0m\~ugUڮ[rmڣ\;z\x pKt+.]ޮ]򣟮>_+ys >R \|5\|U\xoo\?._ܸ.{Vn\I[8o]}8 \wN{~8o/\ww=}o{p_~!wdFIq2?2? !LIy d3Ge2~#G2|d&dfN 4_dX{Nohm&aLHd|;H $(IpDLPllT͠ ZK;I8tX(]_LbxaMy>%w5& c窽cFF;GZ>~kjӇƋīFVѶ[rޑEm~22sCRQ1|ʹ#g]38naέt\բzKҢVuwl s=CF+5w͒їm*?^6Ҹyn6_5g܏muu)-vmunסe]ߏVQT9~$E1q 2P&#'P>$"tfJChI$( b@s +ae.rڠҸaոi{Y- ,MFs"ƹ.3ҷ]Bqp͹N>p˸!MwF:rؿ`g:Ϝ>Hx߅uklޜȯF3P܇qF0Z38Գm)tWz[d1k[xln P#75*jUy}CNLRtƢ^fg/(&J(K2Y nٕdi5uP `+Jbfaa eĻSM)z^}䷚#4ٹnPC^CSBF8/:Km,4ADu:}T&`G]2-kNkɎVzD-W?ܩxF2g.HU:kekMtq4I(gPWQㆳQkj/✕CSsEՕj#^ݩ j!gulA ^]XSXҠa#B̴L2`U뚂nE-/j&$b¢TۇM[440ed#iڶL7dPϛᳱ zkkPJ2YB"e^>5"_ /L.ٸuĈJgcA5]9:]T%:pj 9#̜z!~L&ǩJNGYY"oIy+R_zx^t 9ㆠ|되uӜ:C.ΠR9x-)CH㺬Im8@QL(IjIx3Oxړ!a5\I_/AmU5 cZ,5oI Vj[1L-m-f+^'W y *m3ԉ鬑5^Qf.HvNLD N˝`ii^Gns^A}u8! )׈CxANO$3eO +SSs*( %(J"? 'lMjڸ@to\9jN{y)V~m3"12]uW/_3 9N5>ybD P\I"cTHt*>Hy.{4jj4J7aj<r\a|ImQIfG%%$aI&>9$sĴ=D +KB4KN>*K4ٮYL[][{;|goT)A7lPBxT2)BmQ%(J}(JJRixZ2IzȒx$JD +0f0},#}-4x&vfZd-G0+] fC@o+*I[nͺ;C~VfS?ygO0]"T$缅+UcfiGE+9Ӡ]K#QՄDV3<B_Z&S&Ͳi!Rwxw#Ýt/&( +bp/&f*G1=)=l[,ZSv+In&\O]鳔N??;LJn9@ zU[0E]g~}*[^FrA{VMgnm/'w-ڝ ++W!mB#w%\B +rPz V!:PAVкlZ!G((V6P4<D TҢ2,P8HL%CY,mlJ#$'QK\]b4E;X <KU= T#g/dFvٍ_@%vWf7 7fL-lV(d57L`)#Zr9ʞ1)>a=qPپU_E,E ;а[܁?; k8nl9*]]dT-bjZ.@^!>iJꈦ )=6 S5أ b8!uB,< xBZ0 F/fCPiB)@ [X $:Q(8|Q)ބ|rY( +@2Z }aB/ P|QfJ?i3ꪢT;HʒUN#J +S!^[^_fm* +{Ol =UYkfaAƥY=WTtjZS"Z:m'(=H; + 3 K()=d"!eW8bM {M1FjC0)*UQ qlF@w[CmPj wˣ.`nAډ 4:KqFw# +Teы0j$ 5n<8+cIv)}U$7Z ĸ;֝ɇ0"j5XBc܈lHq_EՏӻcSV; ,1ذm3f}PPGZ=}rf)_\$y-M覞&ċmsW9hO!sBbDّ ؓTUH +[*E5bACcW|}2w<}ҷ1kE0]Wo ' z/Q>r}7Zww}GńYT8il9Q iK*ϿG0 !5 b!h@dg/w@kiP*kWAQ^^ֺT^P9v1!C~=}vOs=iwXrH٠¡_;VTlVGZ _csg?+$ܾ:.`wޡwtZaWwb=GK}P+uRoG}`oS7y=b}b;M(_hv:  W)u _e~6>̵z??Vt_sȎz 3 }6{{Dʻ~IJzq{@8[-_ w<]%@,)sd?e]Xe1deq 6Vq˓+TYnsM?ſ)},!Gh.rmiQӿ(1u O~<57Fŋ$e@uՊٓ'0S8-`BE7Y̌dMêԦTw>"T\5:xs߫F,.|T.l KP"0/:-fƒ&q3E.l~0 +!T@g!Or_VhIѩP/ ~S溹\phb8a1sCD e-ܪOU|:Ŭ &u}F> EJLAtF m(#fץʎdr&PYB rB;hE540XM#?Ƿ7~mpd98\\O)f;i8/OJ[+Psw-e+#T3 +׬Կ;*j͒fd%Irj>ؘY%;/1!ΡEfkMTz`ŅHV'f4ZEd951%JZ]%3U7QU|EQuIrbD qFΩV\CmyKͿ"kVꐤ*.B> }X;M^?9th8*Sd0v(&f ʣ87뽚Z + 1SVr1KM;Uę8Gt;XԺnF)htȊi&D_;oiJ ̀Ȱ /&!XKP$L0a8hjѿH5dZLzL',xmX4yWvŧʡeKݞ_*%XFxFvR Al=<\kPrsdF~okFVi. zm +cV#9q +++:''>Md,$*rrn);F({UJ,pk Ks%t^)ێ,{ 3>NTd^H?+ASZW[BvD[vHM,d X9w0Ҕ4 e8@NNRķ:8 +-ф1o:.2J*@ԵsudHzz203yӰkI`5J*_沸w%{!攖2ďjdwT,0M@&Y05 +LMxZ1׺ LMeZ—5ϒڶf53$#Z50+́al&̈́Ȱ<ؙ|}`~ةߎkaٛWcY$Wc^ 3IRCrKN$tq;\;=s./m"hL01Wd(hc\FsM#ƈ\ ] Wf=]p؎e{9ɿT #4%ֆo[kZS>S;`*& Mpn씢Hfp|l^槌ZKӏd5R#7<{(2%t? hÓf*T0eF=>`{-ii^_!u-b{Ge'61@|($=G ÷[nx!tOZV`Kz'4K$Kz wc?$S2<3eD\#rVud@~ɞ!ٛU^!4C]GxLVfej 2յN9_뚄ngi(}͜P}뽺[Q71q\lL’a$+\ NTYFFZguUKZ1HYڈAbr+4ŠP1yh~Z-d s!dWa;"Sx:PžP\oYQ0 ep`j +:D;i7ɷal*H#2*IDZBǾ\/q@\9q7BXG#Ԩ uQhBIK?k|?`õ1[PqbEtc]~X՞)8)M;0/Cc]6W+nWO~@3dᯀP7{8f*d6PG{735#?;U@xvfä7u7B)jFGa;m^I./[`or^\7F>Er+.5Ù^NLmnʻH^vroMH!j|@!,MP!fΩs68%G5OCtZj= [?-ϡM^_8 j*OIw\R>{wdk]Zj^;ϖD[!QUǿ"k9Fkv$GN|K-e‰R-u e7 | H@۲Jg[O7oB +p킶F5Եк7&=hiP}jLD%YZ,9%7I~6Erg+ʞ %*p/H*#0‡m wڰw8GC kเ?%؝dk>A]x8*\)lQޡxG>p5-t+4@*w* >us3uR^iMy)I5b c3q <@nUX{uȤC $ԟ{ق6\8ȷGQSNz7d?e_ +܅j VhLw> ;O6_.]1uNs0sl-YͅvcDhώrw־ ;5 +O#Ild5yǝ +A;XxG;V[39mI~] ~c^oF{l倀ۓp9/?d<3 6E7?!j߅Lo~P75c;BHs8sgmE83 `+'Gd۽N/V(:Wd6nB\pq:(^\V{4c1d + O!Bo/'APY_'}ǻmv'#u{ :_R/= 37S]r3:`1}FIutm)}@@`_F卄-lx756!ƑbtBNisad79L +?)pkQo0.4ı*3{꧁ih`uܿgΓh0Lqec_ڕmpa@WHk0 jnl}'w #&VEO +J.U' + +#+~PMCߦئGbG~QP>@Wrn[/W8@o/M hBIql1}bPJHXX{J8)IL Ke)c +^ccOky¹aQH9pфUn4x!jn<'ϩCk80м<@JYF*5*CX8 x.Xϙ9{0 `ҨG˂eVQ 7̢#唑Am +Lع)1}'#8F!C>560QWӾp:`;9hL:z؂;z(.mG֝0.Uc츶$ޝPúKޯ6hwPC<p>x ?pL|BX|R`nG> +R7s/}&7s/Qs!!y/hE's/97J? os +$[)hWh0@ա8W{_qkO4h`n@G ~`m\n=S#~WTu;Qf{cG(/n[f`KsH0XOiޖ|^4|>kcܜA t'Pg7,:Aֵ1CHaM, s2Ƙu4[j~i*.0r WWA< _ APE+:n,E.ꥇo/:g5V_5 3G-G @pBzpx(w% 3uY{/h-PȮѝU.ǁ+ ѽn[s7f# ab\թm 128e2$,gpqp6g{RAzV؅{s6*CP_ԙlS;šMϺSOK֣2K:Ņ]Ef0Z% +mG^JUek<5<VTY FMlܛԷeHӰZ 뇲(nBFNݠX+H(RGoPĆH[oGz:fs8lY_ђ;J`~֘pSY7IRgD$v'K\?Y~ +|m̑0CO ^nUZdwױǃذ[#+Sϝmծ M,&C HI[]3~az֋ҁguEZAp43)ޅ?l <,Qb {z'UH&o ~r]s{E~Cyx HSnx3JGbh_9oJwݥ?$SxjQco06Plv fb}- u=- GߐT&Y9*_2f0˂olRS%dҨJXti] pjƽY׍b(R\14BF:grX?߀wLmDnv. ldXκS&*nʺ'ߨkA]oڼg.Iͨ|4giIe?xnVŹ/J ^ξ@w[F H[BDq`G<$s/5V>Mh (B\Ԉ,;0-HS?e}pw ~uEuZ+LsZ,Z +!Xߟ|~@%,^ԖYgnN-/{̹_|y3egˍbڰ Q|mĻ +G1k>T y"AP?*\D@ѢcJ+N>뎛6)VI1kgƓlI~/р%2&%^/iy|԰ƚa@mG}-UQTj9.I0wy0>390l͓o=DHS; n)San +903hns_d5~lŔoX dyU=(IbVzr靀uЕ6MjBDduR4w:#sU*<090P#K7)A,!4? +Jtc3N z1D \G}[P{jP4&JTpM{M;Nh>`ΈeP.sm +:CZm?;HH"c=xbԬձM$Іbi٭l k<#iU +$hؑD,jʒ-xVA=<'lw#cnd~ṝy}x# cưd'3j K4 +K(e$nה<1JЎ7/Wֈ݇S#y/9ͣl#UCRϧ@5Ίت;MsֲNjQ0ȴx3D, Tm$ʨMW9SأrԔ -a,ũեUac)Jl~Qjg%7s02#!0Nǭlq#oa1R{l%zf;>]7Wޫzĺe;BjDneIvrLOӲ>l9$Acs,lspk>Qo +-5MSt)Z0|2s{yt2 M Y,xU!Uv2n9G=̹EEH Z֌[ї@2=%&uG,jEՆ^yl;#f򩨜"__1H{GaOI1*E_̓daM=F-qd“:@C٤C~ M!Fb-\[!elN:XvZM=OVP}-aJn/Qvt"<{ |ڭf9LۂlH*Y LMj +HgaeqcRS"!y4x]\\iqNc8 +bb~{#(.AM EX%{ԫ +5!KƼ8r +~-K݅x ͭ򒱯Hw!=$]7_u!;SB2; +u_R/]!N .V>Ϟc3;'&Xxv>..%R_<2eZa)W^%Ҡ;Uv+*#&i$.({h$E{rIU`Y7\ErcF'&e%U]0Tv1tOQ{F+mۤpQ&"h)HdOiIGޱpsw#"~L a$+Uȼ8xFvV{^> +wĕPm+vԷ $N| ;pd2`ZG-/H^b+'oA:~;y ~or7S=Rx!4:*4 XnI6Ӣ1d},Bc}n M͕*F3+]]Qo}bBUDҥK]dPԧ:iޑM:d}ZcnNfټ}4YķU&} ] P &a9ʰћ2Qc|-~IxGnkQKAƮ Ĉ?pA Yj'B`v58V 1I6k{c1/YkztE;yPCd~, {slC?w22,ɛ,gEk$0s/ ᰊ8Gx=T]/[]i>*@lK._"<43\@ "W t.`f ŞUBf~^-t]!#%mԷakn A0Q|x.sL|:R?AaiJU'Ǽ7[BёD')!LJ<{ z ;-R]ҞBe%݀ц$S^ĈVޓҫiYcEj-ڸi_WLy +zB*ޟP`,B8jmwD0wmE`\x-ug.hhP^.JYڑ0*[]>-TK,,A:;&PAtֺ5!t+r )7Q|o~+M#{C +4ɱTTwHO#w0 Q& &{a#MsCz_e?$/*z}b7c-z 0ғlFQOe+NW Rf,L#s{!7xm>)pe+2e{S(0Acu$溎/daSY&!V*QPWH)1lO;)UE G`Si[)%p(<4=!`X1̚f\)ft!I C1qwq7R[ 7-Az-ħ RԘ!R;eugE6N{P]lc+BH7D[A h ǭ +NvPUtIϧm+#n$XGC=W5ﱇ + ͒j&ء\r>6Ĺ|,뙖fp-Σ/ސpyf;|9 "#EpWD"sg +/'T 7h1&W.~F:H/h%n&n% C]9vt ^gEGx`lWb*ج/WAj룜_]50]@N5.OT$f]#Pcג&Su7?GjԻvsE*>(|0W7<ZٹL-ԥR?W$f^T6` 6v4!.URMM#hz;RYb@l^h!\II +0ӽ{SΣ^dmdmg[ +"Ax<[^KI3Nx:_|` ƊⴔX3 /a &6(T6N`@=eIQXG˜Rq-1xq|#҅T%b 'č]]|8(̻gӰj"IWG2Vy10ئ6A@^H. vv\[rp[{6 mjYu2 6yIײQ{gR;zhg$dreˢ#6 *xj:ȧXzWw]Ip쒙'ek=Wץ8[ةlhr(^ +}߽Zqe0'[DfKWy6=i;ܟ_[@rnm +/`s?.'"jmQ{ v"McO`W͎(@^11exW"l['}1hTK["U4Z:],~aH皢M&uB|6d:pT9f&WөaN$ށCH,Ѽ9#+`P^7b^x[ף.ES01Ś[p2#,>[p]d }"Ih?0{ +LOHe3Z3 +4|e))STn&m8l&$Q(`LHݒǠZis*Eލ /6J7&>§2X/Ѧ:gH>:JVPGeC "f'dv`^!BxH\ZoByLF ?cBvӉy}xN!g1Ina>8g&h>S0Bmv >ODd+|EEe#02sB/}Ke9e_rDٕYl-oyK:HJX|K\!©epG֩s UgS{ЛX0p,<7C~(,'):A+ $)i)#>&czÔ) v ȫBK2rkbc.zjD 0.5^u&eZZ)wJnTv2vKC7Gѓ.гEnɿ]MIQ֔Ԭ9RRri&;Lԥ)nj+̼AW!E0v@}1A>8@qIԓ4SjN) 4TDZ6ds-#u}#jRK˕2֚ 0)"PeyX#Vr X}>9W 1&eWjh]1PpI42禍8*(4 5m}'*bMuJajm ]eVڋR&9YIIR-Y{}9rDtiVBm`41uil 3DŽ#6cbf0 *J-}}IX!wC}P8l XvTޝZʉ|TTV?Y;ށ?/Y2)^hlUњ9ǎbjT.%?n Xڽ*`,&GҨjfjW6UG8Px&o,Ww*`]*ήP29g KbVvJl .65b5¼%wnbvOÓ|qNzAAr8b󎮐N/Y q?;t078~n;G&xoاDpUqIW8aWdd[Hc=;}0i6Sõy2X?52bvٸ͋t}?\! /KSfIb#JO0JdaX5b31)'hAJGLa1؄27e8/1 s[~V)>pgAp>N=RMA|/&cjcHc ߫GGg@/X*-;՜&c~G ȚE"F5jy)O;~+^ǚou; $"0w k\LNZ[ WV+տ9|l}Iqq ֺ +cM lL~ ѰPYep'@a &.#oyr:el]`ɲ5 ]b1\dX)ڡ]x>izxo?ܾ>}Oez=FkikEvķ9^ߟF{h3G;}PqӅ2ja<4@~尗$7wr$los'U>h*`#R~nsjPX(#VX.*n.$=ZQ2w`J>B,en>ţ fNly~|IES- Cڄ`,o0? +w[Uy\IFdTFa,>ޓHP k>e.Yp(wm?d=B;VN`MOj-]dd )Bv-<9- #э*Rq6Px3f)'I3a1N}{E!ѹ=DIwǐozy?!緊- D5Uv9WlWi`g,RcLpcxi%~q%ꊢl $J쀟iI UkT#ףōRfwYaU!Aw;,>/2q.ђZS7p/4dwy/,]B,E zA7K4mޅt@Pbú^ qno.IQ?^IĿUs*UnȒW tubJpOH oѼ2:-0yaG_"|bvf +:9]uɞ9q%Epo,bH@ +>`^$l5u6P\ᑏc& +*XOnxlQѴ9֜ Y&ьSBls +p6:%B&&(1 vr[i['Q!4fm,p +{ǐ%]= z[O*jN/(/oJVP'T% 0ОXme-sok|RfDF|zf8i+%Lݘѵ8QCQ=,"DŽ&ЗZ H7 +VHlH~j!4NɗP& fQA&!!! !o㖈MүMc+`)IJN+ ̏pxx{#Q?0,&ڢh|ăjHH9mGs^n^)©Ο;u_م2:-'҇[7"Y}rUv­Tn⶞]m:;<*f.E36_Ӎ@ raF.2 $D#i xqN mQDi X$:HpI\B12/s̑6-I[H*aP$J|(+ؼܵ-7vݠ8͋ Og8O0&NMMk`OweU;dK| !>( C3pZ̥b8,U{QJȟ0~RkoЕ8bIlϫӟC_p~t02|Pe0 XxVS %|3) QFk >DSD +ɁU!G9G%2GZ?׷X~y♱}Ǡ@D@3CU0]t&braV),r[GOt-.L?ٶn$(ǛIPׅ=E_!=p$6aH'mxzbLxRn9Ls{0ԤlQ]jK_5-.J.+UW>[afw|&יoVpOiѡ;] Y*ß0/3tR]NI827k B 8o4)n L*,mٸj,۸ɪ{9q;oaF+;v@<_1ocE™;9"o>{-܄'AR{j궱c6]tfR".Msʃ(MV4$B%z<"BG56cbeQx A"_6jNka/*<`I֖s{cLWu*]w/:~iAk=@[խ2}-u DhnN67MWfJʌZ32ӽ] 6ܺbTxMPɸxwWؚ:.__\ fjeWBHxmjLO<9^'}v?7r`Xv%3hep)8Kp@dNedN%מ{0MdС> f xu֨> 4'yc uǜ#HѤ!.gO Wo#T 'IF~4lL@ +pSh͋z%CrDT(Mg@ڼ+.5~x LZVϠ\UOqrnq{eo݈n#Gb pͱt:STS8L(l6IH_W$,Ñ_)K6i^|-֐@4nJ *`dE!4(5sc ҤJmw@%@kk U1HYOrdߠ5-~w`DZ,- 8'[G6{:Cogճn|ƟYڙKXڹ8W"ژښڹw疣kh3=Z]2_u,͓>(Җu${9=M!޹M8& r@t1oiYn6VM${5ȫ2C)hP=]M治2IOm,SACpYiؖ F`(_oWzO} ir"^Sh75ЮфՄ5ݶR*6]=_9xRuln~`MƕWc˪bhQ.ooFvHvXj_aA%:Y>[ڝWgP$gW( O] |z&#K>&&#63}]1./R!$ܸJL.6Rc{w; /egkIe_D9oa2~ IIC}:~;- qC뤦d S7،_ ~К꘧<YnM~.EXT]6,}JBE*gjUBDmgO#a` |U6I)ڈ:Q8C +Z pVY-b|BL(iYnbw11>q{YTTy +ǏuԆ/2wqc 8pJ%r,'^oxCL,ruѕ4s@#LygTCGlxrI% Zg@i2ˌ9ht\۔ ٌR<@!%BJPAUdUWd !!;i\F(4WW4cx/ -9g# +))>Kvf˨$թ*p3ijSf6j[=d-ӝ)H՞dX Qo|0-bt-v+v=ZƷPZP!"a\1$p/10^^X.H]r={l-{n-V2I*ȵwR1#":,yRsLNw @] ~e ršڼt0la +7=1hGnLZЇ[d굛zsyOOts'U[\Nnˀd(zkӢ + 2v[RMK#ih.u܁9MhG۹i;XVsk@eAŅpԈĔܫ]-8@ğ.󌙥\5gEaPIC~q[ʌu䆢m} )ሇ!lS$7¥G[Fk Z-/U)~{,]uCw4?WEPIH;r%*p_!<&4s@Ykw +iƩGcaR-L`0 퓌u7=PU 6(5v=2@ Y{vyv"GEd-C4/N(i.fT&ڔrX%zy!yp/gҋ~@fTDa˕܌\@!b5퇷ijeD6yu'K !k{qA_"C>0{ iy_,$xcW CcC6Qm|6yCUm6Z˿=m ԁ5ݱwBwd?~m|y 2VUkbŅC=ZlPE~X;8IX9ͪ&l̊ZEc3T1/ThN]⑬\pA;8=&Gd쑤)&3ss51*Q>&nJT!TW]ʴsHTL~_uT1k-7o|K YAJ +k=Q6}pd'|`w-^ExTxomGT~;wg=Ea01n'6 )Pz1CDcfُ>ÀU Q2{L4Xv6o{ g).|NL8#ۘtwDM$%vݩƺڦ5FUf aK%4ԞyH8Nw<e|kuAِ-oE309ze|mlwDh8-4fH U {Et~S"gϞ#B ~PJDo#05{e'++A |f~E+ 'afzܽO>nK- HyI$QQEfj@q7A +lOvY~56D 3s :aj 8` O񹍜 ez ځmf6  *}*I1ځ9}NH6T jhk-14!4 +GN3[47nM=SOPYCWmw2lF a 4mXGakݸ P`L_!$lG>8b!/0;؈a N=6mN]P!Ek-l{}$ SS=+ڜۜ\9yէjmA H"0ӟ$%U5M8+TvAC8}щp R1ڧɖMt,j#qGᡵsďUoT4L}Dy!"F)kMmux⬓ޑ$ns@dC/Z_9;g7}*Ne[okخs;U1 ֌AτBoHj/g}duO%TÕhJT!U/<=R өYڦ7=NJZ&|!S 9&< +ҵ[^֡VFf1 FK n\(B},)a!A)R8!7`*@f5U只8C3a5$P%`8dXvɛ57^ܢPs5Bp61#Y(͢я9:k>CCxNC=!tZ=hOP*mSBrXP'&7DJh+Li#R(Q=7cpqQhUŧRY*M QP};{scnffP*s?tU +KR]_q[s Q*ŎNG2[x* fJ $ƭN$o*kPeBV?F*̇ـ.ǥarV *&:F_\#RK3ig2q)h# u\6cxfXXJ"D4MVқn֬ w(N:6mU†֠lWEooo),?"T=c7_?odL .2SȚWCWd6Fx\+  ςH[?-Io>IளlKCΛ̏[rCJ-v*zzB?HӴCϺv/[6 GzĞ#xC˔P#zL ] Kw;k EB؋XqD +WЍA0+5}虢z +1EKwMR}RĎ)6Ô2@XZ'/xD' `Ng+]{DM)3 1e{1iDJ,Y6F 7CP?٧+v&SWf0f:DE0@zGPd +=_z."@ܢH:O*nW˙Fn.>:im8‰uV7n[:B+F1 U[ bɧ4-YSS?1Bg`+% n}9𩷮·=p6-,zzD`gF,zH4||lى`@īia E F2Qԫ8tJ>)i{Yiqg|w$qAoa\Zoy{`Mã|1WGoFaA}Ś~q;}#ʛ.:py_ugOat%1F4æFw.ǧ$>00]VQ;ZYE݆5q瀺F"8yH>LFG",Y)H^,p5VR/*Un+ég ‰ ۡCPTD^m%)6fq VZH;x]I=oHE4AMaR*W>.ԅ6/b<B4u9fX+I’dKq[dxfn ڦ&0>52`%v ;$2)='~Ri"a!7"JB|O=ۙ7=>hB R8[QjvɕS: 9#`]X>6Qdê~i]V~+vѽ?/Re;GTʂM8=Vu yD(g6yIƃ9)%F3IQ̰6*6l&VD:*c͒uE~'U\hZM=ҏ3$ܔN!JvT ^?>p}eЪ}^.oM,( 91S@=[\-j##Ԏc$"P:Zrl6:@)QljAy[<U-gC9~*Sʨ +x:OEW␎rh%El2he,CjV(9>D O fB͓ F +Pdi;]J7ӢTt$H" fe˴i-JTAXmT2EA}ms+& +diqvNwym۶m۶m۶m۶m۶ܹw?{wӕt$zIӏ{L|@OR+$xn诋h…3DK$Qu Vsй/_8K12^ux\D{p]:N-E$+ k_Luk_,_v_EuCQܡʴM<:$utlmY=Q)ʗMDVIҦ(YV߫_".1⩚x`@~\*oy#=%S(ꚹW5H޳&E^ Ԁ2faD-j҄ gfnsrui8}O&JW3K6X!G=2OEZ7!4 წUӍmnSw[}o 5tt&elqѥR v^$Pn-JwBw +3@ T@/`SmY)NC1|?B"W+[й{Uq}Qh kbǣ蜟} + uT̮|i76^@_4Z!Gu&IDd[NUWm"GmLY=ܠ )BɐpD"[c1RDjTtx@:D`" +fH.1 +>td0̑'k!f3t܇9wHmBPD|n=8xn̊t +~t=L%'4eUVc=dK̄<36IGvb'Nru>&Є+-M2VBCsA.t"P:'`KyXQH<K=P6`9_k?sE!+V*\致j^]07D\¸3| ڸ=݈ =hI̒! :<$+YSД1zM#yPdinM L{mC읊G]аEMju5l? ')Cf B`]A\54ƿKuwoͱ`!lV\(kܬkLH7ЗG@t)Sw%tN(C'OY;*ivqPMl*  fSרWwR#,j=Z'6( + +`B SiiRk @`5mK E ![XSB (1[kłtB+La:ϧ9G3څS&&CYT/R0ѤRbGBEHjS,lț HL5:yfTW0>Z:f7w=d_/ғ>`*I1"(M%p$*ěnybeLd`˨2Șˈn5y)Z*Ă:ͮ$|:E0? +|r]@;? b w Q; +`80" '#jZR1 &R``yZ[m{39 NpMJ,0O+;!DEO|H)D: +,CH'l~3G-, !:!V;>qH|H>/  ;9c:.7c=Hƫ[x c9ƪ57, ̗eBC)e@A`&J)@RbP4?1!(ʆ~ת}b'Zn_՗rc{A`d`com"cglbli# ߴ^J@YGB*KaHXiU&tl,_B Ywq\]p8D澎{$Kpjwjc 4Mvt'Z:ղVfJ֩mPf$*P*4Ie3ES&(WU0*"u}Ξ#;8QxO#Ѓe u@EŜГKk֎h97G,Pmr!4jpH5Rr"\t=©]6&%}O l AnNʦŻdyx xY{yCJR+ o)raKQ~d5C +pJ| +mIX\u-OP-:*M5| eBܟvJܜJ#pq%[Q۲UFℐXz >,p~#1곊݊>C8_g0W\$k4_nʇt)2Old!odB5:]3[a㢌xUUIJy[|/lAD`"۝ ?H]M;ӟ\~4oBJfYrdrwZz2!YQ 5@aX/]s q\as^UFŔiUޡzGuhO'f_ɐ2*N + vn ~z^!=5zާ1jVj(\$BF ɒ%0BI(tLl܇8-%%tRRV5U 0! Z(*U-xSZt|fe1H&2}f}s^w>0زu$팏 !r_ICҎikƆ鸋up >!~Q;a!{ @A^+'Jk H%z)Pb'"ֶ-ݾ̖E!G|!u ITs&ۈݽCiL`;ˮB^;nc]i#/N] ש %&ύt:Cmr7]  o47DJ`ĽGb{n8j~HOz.e@, +fkʮv f-s +[SJbITI]|\Z0N'K۴U4MeEaqձs jec\_Ȑ3MLht7(;m#Vּ̤\bRI5Vaz3̲1} ;щR+Ҩl+ٔY/wxf`[*у`TP%GKeiYINj +sA,M̤ vԇ0ۛ'P/CE{{);4k.ڍD%;I3I!Nm]ڿ9x("$P!dFy]4[x衔KJ+Ut fцyhZφ~,шy)iψ~B%%E~1OLD=lgVW/D?'4}7+"U굉MPcIT5Ǩkjm;O`N 'gb?Z:4A7( ؈d"& +ȩ(7TNc<#4RԖ2:)ڣa+B*e5 ۸U7 V7 7fnJkGUJֺ=b;=J0p=RRF8uI *m^nd72&pK3«vG=&>j9im"o; sDF*rQx#|c@ከ$sJVcQ:׾NsWdeGo# >AfCHTf n>=s2d兗z((?2 |_/,'Q%<pN$ Hԃg4xTPs(ExCDn4ܵ6iOU0!~]`ȪըLPPԫZ5Ms A8dBwiDNĈby@Ey"C| +8QC?DJԠP~o76rr!1H*FqSQ[L&;hTWļ@1GҠ3(Z)RE҄]uM;xbSGt SSaP7 Zl5K~ݮ(0x@xDX'dՋaUjP{0u{2vwǾq>SX'E?ba C:b̕W:gCTUt5[FoFa9b|E^$b-ɖm5t`d1.WԌj)[!T-Pgei4 Ƹ$b΂P%ПQ`>h XRZ8 WǂbF=9W+݆M4`e呔*lV6 ͬZ3ne&dx≰)%giT*70Rk 2e[+ARDZrY"J-P-*QL +Xb#D>(Q˂Zcgs* *V) +RH!>Ƽ4$ Uev: +JDI~"*D xj/b+dJk!ԥf@̰r&|:$`;ogј5їд46+XP/y1xAuE64J0 >yL;six#U)"0OtYވ{n4eo8{!|Idp.EcFGi!VeX]$ڽ/pOt#Ă|?XGKK,Lw]A S>"JݤȚw50*w0-4elIiiԩH&CDQ@_t= Z0sNInAQ_?eMb- +FѨ_ ʿbvmDۄQj!J.U.m= +_`YP'I@lC,=_f"j!J+UJzirV/Mp'T K;kwSy϶`ov܄|!AWVW}c:~t{Y\φ[ +i3nY5oԝ*Ngh*[tx-֠‚ +ty +vwL-{Hɝ_bD^z[lXjhM%⨙B5Ӟ鹊Bc>G {Nv +N ucBL +3()$h3HJac mt !p-jo㢋bѡϥѩKNe:"RY yH_W ]u7rԥ?}3ԩ>}u<@S[l<b ?*#`wE2û +g&RЙz??OE$t'͕<-@ο( $kWd]bhdӅZL+]#Ң 94,:"ٰDQz-F4cO:Әߕ#E-="F7wv+C58T^rN\tj^=D|[?qzFqoX3Ý^sF폺eΓ}Wt#v@*2A!+U=f#oΥ u{$uQ))xXE3?/+1@)KJBueMG I"4ფOiFuwBNO#%[[; pu)e+h K26뺛CQ4NCMcI9HQoW **T)Kg;p[O5iNlG%,W|!e7&kXM:K#O\N8Ēm_틋uҴ,AtGzKB1s+ +RTQ}AU4!WZ}<ʐi_j0{MHggkhFFJרS_nuliIX|ym2">|E{I&LdRL\[QtYzjdEv8yl\ea^AAVBҹbo6Hnt\ |EƬه +L4iJ%g8RY$#LedTLeJd\'tiE+Rg}JM!ehR}nM+PM )tb(tҚDԮ@*()GHLWM"ǵ!8&gk]"eBTQEO[2V˴QLP{}6#NrF +k2+"0VĴMBR)Fr 洩pZ6XBh]5M5c-NMNQW .+wjʾ=YPApW-X)K5ʊr`~?NWptO.uV:J V E=nEm3WvQmt(Tfdh=Y$vQ:˜k$/ U;g}$ʢ㢂zN) #_2$\bcv,V JtnQ{[V.@\܃mC$*Ӗdnjk_ BA3FDg0q 0S" s;[/Y6KsΟ+i[M;P!AZfYR7ym=kj =zzw 75m:@3"m9 ;R)è+ݮ밪Mҩgv;6~NGZm<]枻f̪_߮6f_q"H揭4O>n"01H'p[4Y.'IiswPseUq::)u/4Ho>mzk +y2Bb~c0W Q8ۍŧ$0% *nUE>:= .u, ͑:%#CdP˜q{ UqڙiJBptxDo(BDihL0ɲdYCG@1/sz +aܞC7sLޚDFI+V|f31jauq]t=ڟ/c.eQCh!Z4 =@+vf 2#:Ɗ4Ν>X~wp*9g"f㸪?as`6liD6u XBv",fNR,w +PͲLgO& B\=,6|a:ʸeHȟ!!F{fm7.)mZfx6"ҋ;o͂9lX1g=00]\ql Bɤ3[ Hޢ7w[2ZµmHJX!z JSvIq%43/M{ :~F1qZ bcp/2,\O"GE%EKxTBMq>mu=5r>>5x=Z*qh{ =7/#ݦL&E9l ¶ooཽ5JHax%eV&錶cLR@U rᰑ"|ZPϷB4,*aZ%k݇\Ց+Ys`@{gp.S|ʥI%J!y +떦3wmB wNڳbjf}Dw!HM9G*d܃?vBf{g }]+!^e1w M9].pdaE^}?k*6~=Ѣ@T.J<*ۓN*swvwm=hԖO0ҧwn)n*P6w[dIn)/ahͷB_"#< ts/F+ugr_0ROtɯ.މvޛ)YHHbBMDSv* bl9}) +]R/蝛(CH+H:.ҏ_4w%K"4#6KSQ ٛZ ؂n_m4uϬvJ6@9.@"Dl}"󻧏(+K]aĘhRNilCYo,̔,oaoxZcb\"$daaW^Ǒ +5@sV+f u!A',tp) 46W'OAu[Iu$z%LZ󥽕G'g+WUqnl8$xqδ>=7ŚFNwOOEf^=!qoE@]ily1|&,juUo=;}a}pdG)DG'Bv1ٟ҉URՇ}(zG# XJ,߀C6:tmaw" +S%D9 +>gT8c2E [0>#M(GZ@[$3/WI1,v@ӆbr 1Zseb4VZ\'݆2~|SMLjjpRrF12/?hFߊښK[8CY+9h{XvdxR+0Q>|xrMX*ss;./j˘QC2D K R0+-^ sDSp`I*9rBL|[HʊCɯ@ A{3˥k5҆g~Xlбs&/ \ۼa@j2B7`Fp ' v($4@0nSt_eit63B19\FEB u151:CJ+6.G+OX^9^D%O,S@N,Orb+PW tf=I XT#q}5EJC_ ҿ%^7U1(-)Rވp?{0Wˇ9dxQJk ZZ/ZN]{LAx;x!V;Īt/Dz{;Z)b'SHJ.63$ڪu2zgPT{BP"y8qF37.qL0i<]wldi\\M{IFܢG"W胞V:؟G(&Ax7OC{0Û!_t yv +2Fr)R^]6{|;}!ss K:*zeh;1[Ez5ʭ[*;*#$*+"*oIm 4bgJ&d oPoåݸX%^zo +o +{R1`B{(Q+e /o+=Y˫wF)$Ǜď&PBxS "2I($*ҡswn ,Z+Gbǰ0-c++Y>io\1s,=wspU~9*Y(Ũb(J8%{JXFzÔz(Ge4Q0a(d5ִ1H~ Cۭ:yյ&D"DtocSS'&ֆGܕK@M3\Xxtڦ(Sr,((ægUsJ~&}Gl)C3X[=E u:6X\3{L]CLV7?}OT oz }X%x>WWH^{Iyސ$p.iF/QWvO-2:}yF~4;),gapVodIa?F;zCd&BZ.lkհD$6֔-,BdQp(hImΚ=#AZ)c\r}teϦ+3ٮaM,=1A tcQ'!눳 D1w+6yKo<6G~0sfy.p,<%O>쀿+&u@},&}x`!y mTCgGrd)|,Xl&XgRVwxCFߡ0C{S1`xFzٌÄʑp{>|Cl"GY҄=ex_e{~'Ǖ@3J:(L[uy# 0 ~" {9b=%1Łp˃({|Mc· .F<8LcjVM!$_NrTBaɸ1z Mӑ1lfYGc]D̒i1TN9Tz.RK +:Zsν2MHT'N)Ƞr0/[E%ihZ0yF2 h-92cB"k%R.7(ʚIw@-W%鬢Po-"ueK7yG8E6ܤYf ^keҕr9)T"zم ?c,L&ۡHRq 0%k dG;[?TVm q=$8ȤLr]tatZ`=Q >!R=5!v >auehpQwn^]v|Kr²[ a&(Xc08!P!t>ГA*= XrŀTI(4LY 3+%ha\wy!u8rFm{g$Q ,T4f@OsK_<5ΝmWV|"6d8IF}DeKt` ; \}b 5eo^`-ͳBP8Epu'~g D-bӼм"G‾o #/B Q7|Dv88Va"51DCi RKVh o5C[6s`=>p E۴P\o:L$)qcH2cKi! vׇXQu F\ԇ^qa̠x̳(̋.=1Bx8)qPy*)vBk_7DڅJLɹUPn"+Tai椯4hGG&hFp}65x׈` Fr9 09'oJd,٢9WQQ9Ѓ7X ϻ)iTabr+6E >}Av*bl/&])[n?z/I @&wQF>A7ak'?}X>8@?|@7iXcvVP>eqsesK}YeWwJKKS.k1iǚѩikv?F|Z>?0L{jC=8@WၼL.={mw +2SyA7OnOAFpd}6-:)=`6?w|>Np]cvP"2Of#P$ v[r;!oN{=- EwJO{JO{F7 {'=)~O[jくl]mҟ0Q{=P %"?g7||n۳LT +~q5<.wxXOt>֎j5)$0qcP8:&}뎚Zw}|ځ +qt2VΎ(FjlDs+i2BEg E8S$ѺIpLtnOQ>+G) ESgq'U& l`sKB_$Q$v1paT11 jDZC,%`H$sPt VOoFC2L ]Yj4f͢Y qIR>2aԢpj$%VtSDipT(vUg`Cݭ;Oi=rqg߾/5b΄r™b6$! W+S'69jAqPJIq7]FUs"G2$!|H0LNK޻"㨴0Rbg4Eap?1F+"+#bI*dјV΁yh/%w+.I;3ŵ͔sC3[ýel8r:;IĬJ(3Xh;]c܆^"Ӌ": q1[ B9K-g]o?%/0iM;;2IOy'P0eEQd# )K_D$֪!ҺݮyK—X(QH$tK w)M;-!p3;Tyu`tkkFϺer֓w2hJh9?'HEXw4dzi!q-4_̦fP=d]6mG1>K6%Z9GbEL.IO(Fm&=*, L؛nhv491Yq_D ~͈Sv*\4GJub":n(FhfHm6 V'O.~}WW)2ة|%͛"Kί[`ѦփSC⌋R9JTM,olnN2YwnՎ^xn"nmXw۠5|ZwItbJ5 |!\YH;QrV1FpgAt6 B\#zgKp.c,މkoA3t"ɥz5p~"zʣy@z׆#z@s/Kz玘3fʣ{kL/+IkIPd6`G|>jgrGL=YBF n2BEF|<.u{ H."?yBS?K|Rw׊F/`m"CⶍCJ/yDdUuAX墄SR/($XnI}bv0 0:оpț\ǿV{ޖ_4s@b!V+:3Φ*VQb?'ӛ#t +s ZJ_$"㑘 Z"uݐr 𸟽`C0ԃ(:xrP?dI[5hP:C0ShEq( YZko(kxZ>wjgŸ^^U+:Þ) 1%wifRP!0#躖{V'ᵖ.d!s?ue͚{ OqFA])~OW9Zlaqӑp^ 2o_lW2.<-9XnDv jY:l8Z&:Z5s`KOy3HnnӾc"T;e׭DIvIʭ0E5.p^7PK:^J&{U?:@!G-AkXG=KoS]I?hl'?|7TpTHgACA;-llۂ8cщ YĮ%k]GP*W[uqt9)05'YDHzdR`%"H4`: +BFxRx | O6-ʱrp&H[#ڔ\&R9gQ )tDr)۹B`DMEǶg +7>Ln)g'H"lyX@θJisz?|E2GQ  \1 &~uU]KƜ$ǼJBe@PA #BAMG7\]]uܴ]ܴ\{|a!˂Sc#x7u$lOA:,\\_}@_vm^yD +YBjS,!:ēaC) g{ 7űv&tjlHzvKY#/d"z5o$IYN@\7 +܃P`<-SĖ ˚hN3R3s #y +pӞ Tl:9:¸uKVęњvPt%evО$IY,p؍l]c%%3sa!OhĕJƚ&Oή?1v#5tgc!EsO>]ZP9Es)b^6B=Xoޘ/`LC<‹=yPq#ِRQ/&2WcF.dy +t݃ [&q߶Aa=0w?"3ǫ.[OHzk[-;7]92w{6N'zz,>Wo8{#^;^ˑ2Tև ]=C~]#b+!Htnɂ΅`p<$ЂW'3^4[8̀|GYPNH)iS0C`g,Yt(9JE[}@CNV6~\VF{&YB\i 4*DƆ륩3u (܃,A|"zzxDHڢb8l񂺲ا618dgzzYy2ÓtɼJl;\dOWk3f<ټW)QXqdX6;yv3sīk`#&Lh^KoL)PQJ. `tqz-sV΂xW1TohJodfXf6JEZj?Wյ*.Jt&vߴuh3F`W+1 "Zׯ^BNTS7"$x]g.'_/ S\.(bLo7ooo3'¢9]o_ȳ̧U1y]o?I#@eNM#~@Kcpͦ5sx]J⋛'v6aZ&\P%[RVĐJ<`kޓ#6Kڿ4aN&-$ S7D2!;lA}<j(J4 7@T]}J)Tjڟ5w:V::P=Y>(uu /羞>7u>*@M;jv,:!=l?,7۾G;_P;vO .㾀5bm:.`<T[?:uXOr{\$_(s?L8ġD!f#Ih}tGptkR/@uAcذ~q~$Y?yRx )v@G1RDy?o!2u8s.9Fg77ɍ"޾e'o4ν;ߣC_kw$f/X}o>!'tt7xxSԓe'E eήW~ N)浧}VOAr[H3 Q^-Hx^ Ӽe2bZ{IDRguTvi!*Pj(cɸ\&FNn7"OGB#:-1wlz (_m+6v&T.>X/HJig7D?oLoÄl\F YAzԍocd?@ >d9(1dp0~5fw\mUa!C=B;?#dm0h+?bGN`-NWg_s +gXr +7yUDN[ƹO;ReNz Mn;h]skfΠ_ki(w[|O>6. +8ܶHj;R^nkVֹISEVq "dӯΐ*;r= )>5N1WPYqbX[~)[85@=|u ʥnAd$of] ZEk]JpC,ץj9+ӣdGt&&KJl.al>1r *slWQ+O3.h=nG/vXFp2x3n;*z%"bl4 WGIi"Y8X i2QaA39*6-t)|S'2UJr,(.= >4CWь]Ȭ%?D +j:HZS٪Vm#.el&9x3 uU|\&(Yy$DHT,VYTF& +"dgKbJ sc2cHPBG= +9J{3 j$'jR"ԗ;M> Wb21$xJkmܭ +16Ql&Ѫ6 M2,l+tG'zXrܽ(% "+:ܳJGӑI+ +d1M1"iZxnUgMQcҒ}Uk]AnJYfI`ґ\^ (uV@Dh@I^%{ju@"򂻜:wsmNұYMץ(2"tUUt@ӭS^p&_͏za+L(uITʜʮ50n"?]vA)и;u2MFcؖK7'ޫrO@R1?zPgw'לgnXUx}"^Ϙ5U|4iYOASyQ&`CDL8{VթCA"R/$O:TzZ9BWTMPY',VN_7Г''SmspM$P`4,1QkZX&Vn }7,'%Pw P@f)}ީlbܘn=sN xaY|a{q]~#ijVN"+w&>v1j?Lpn˖ # ¨x^*do(b\zVfT9T'#>#TATb{G$@<]Җ &/5 KD +ku7 ek^J.A{LOw{SÞiVTHnu)\`Vys5Ŧ_s5q$f5 | iS+r~YФbrlw'%J'<+3_9Ž^1P^<*f%u!ټͿ 6G?E x0W K/uv{("J2r9fA/z-Y6A#U]Kvh*^gj-;OdNYIAYrN 9+?.Ӹ|ɾe#Z!rQ{4ez1>SJ$$Nv9 &Ϡf亱x^uJM/o> A9 3r Nݶ0CL14^2vjt4WʖH3o{^3\b3o~#>m0UpQ5*x#5 T +ժًVԎiTrcz؋v=[CC..rZxf†][@{\>*%>kJ CH=ZO1yoˋ26K]̺8"ɿn`4ѩhFR<2H;p\$vG|0"˷_7(jޗyכ +?9>+2ޔ*?cK`"RG!~2 ޥY5r5=-<#odyZuTIR J3$K4ްn10/&?̶ +˸6f?ncE+M/ JC!$X-ܫ 2 TOK Hw)ljQ%oCs|,uDZoZɒ ZC(|QšwR}֒9rQNt*{`[e~sBt7̽TUp[z@6? +C14IȈR+uJ:))-^QBfM"Ns)o1FJ ,Q"=zCu4 +3J-X@!م/u;G?՜,k(*3HiY*-UATO `ZGZׁLJpu^fRWBrr#TzZ,4Z\C]RP7\4! t6j[f4kݲ#C5qcptia:{ +l-kݺK|c)%=[ps] gzE)0:3D hDF͕:/BN'.X F(Yb> Ru" +S8 +_';u,_eg"!3ǿfVU%,d_`ˬ˖t6%lY[MY/|\ߚ7C_ LcNnBRFnoss=Y}?@#9yDC\ccuW ޘp +jCAp~ԗ닍>a{5>cICUpԗ]`,ƭm6UlIt"5{jڛ :I FZSXmv Jxgo ʬ)~3 -24qBw4:E; +DU5OV8ir3􊨌lcU cT#)T?/𱺨525UyM12*1Sm +<]Kk 5\%!:J%'g\ʅ)nW4% U0zb ZGe$KW"{eS4۽w)W(@ @ӥ" 1vf렔;nBb]x#&R%>[m;^H#2ۑ^ҳ kd6t-P'Q*Ҁ*%ܪ@pyv{O+-1XdiD'+B ]wl9K?ŎVbor 7pۖdnNJUM6y[b:NN8L3jMhoo2|GŨ19/Y1.`ÏdZ PB-pz6 R7><)&-Iᥗ@Mj_RF疐+ +EYΰ2ț{ѳ6 BAkG$^ ^VF,*^M]9eĀӘ"LC.]E&Y]{F +^d{`[{bqILaE]/ S OO’"b][[זɎcgQ¹Tb$8y%zX |+pF灿A~/A|8D~+~A@Va[B&዇D D FP7-Cfm\6+s*RPVsZP"H^Il0q\wűpJmJu:T 2;X,Kٰj fK E ZoTE |W&n[M*LRfՕ4 G>՝Y„kOW 3bDG]7lR߃M\|&%1j_2 ˠ`hmdҵ~m +~$T6H`fèd=  +*9sW5(- +m%s"Ē8,׸ l|{Ўƣt:nF[%T&.8o~2eHw0goLgA)#ƣ/IOd-\AesWt҅K:k5/\+05ZP*4ez4ܓvAx KdWhI[<`Sj֒(c>ނ v T ѺVL"" Eb:fԶ#1P gSk"k!JO]4e#{D`>}1Q}|3'T*uXeXm 4ǖC+Pǩ>*؂f,w\s!+}ɂV#,x45a_)";&rc*oe$DKU+6!t+ZC`lVd!,$`0H +f +ժXOo +q-#gC,=tX-q;_">(OݡtNrएdIR9fAeݥu¡K>',=x[q G}HGudԌAMs1O!JQ?~LO̥"0CŲ_̥9k7+O/D0d9YО4y];/mP76z%Fgnm^c\H`t7c0_a +!JِJQ>;ڳڡ/xS~|Y|;s–) [-`:FIoisܐع2(v: N(qa}C+D:R.}Y & +G\JEFغa $"YPrZAڳ;<{BBAj i%m.ɷLk,~ؘ@,J c 7dDrUb-7$5><9d=Hh=&+~̄/ /!l>;.iM5ZŜ.epٶK4׬z.v3z5?ׁ z9wʔvˈSizͽ6d1za*uhK}ڇpNl+8froI`^:t%Ԃ1 :pb:}- +f}aǕG9l80Xg8Atib#24E:ctmW\%}ƠN}8R0p=\z/jA$I_=(lȎebsćK O26k{’vlB|I$k #Kwĺ\phi¿XY;hh:KF1KP'[XziWAcg:AeHcqWCq| pr}p=C7??ԜF/Z}6_ C$2ZÄk FL+Ȫ\l .t~$p28)7F521[ZFO+e ;d[VQW{rGgtAE;*O& +q娳Eg @L;␦{j\11>7! N;8$'P-Uw4*XRB'\y-٥΁|e,t)hKvx cu + V[.#IUfRn2T)(Tp&5嬓0 ftR-=&la1"҉.oJV&lvH)Hw4tSiݩ)INLNbV3zgo;qg`* e6Ey}T)žxmI/֮6G-W%a$be[J$ְY/D"'1nՕdS婜m`Î%:kܰQDZ)y((l Y]V6jA=|Wu*o 8/j/:\cSwB6]ַٟmW0@ia4,B:\>HRN'ztμiu~Cpy࿒I QZD1Uz2bӨd\t=m۶m۶;==}w#"v̝UֳP{G,s{zXS"=7Dep%6nKF?v R R_*{6ɼQ=/6 xQ?vCf +~O6 :gm|Rn3k4;z-%&_K@OS|R zZ φsuc,5'"{1S6;JrIiLmxz Q"H[Cx!c@$i1GՙF TZh i D\KΡ!y壹vʹ_Q`0FNLW‹vP~w$|ݴ{\+-A geMؕQ8ߠ֕TO۶1縒 [0Pu`o8G=lVkn r+ij + n'dԢ4GLnaV|ԹMD]%l,P'h}be|e pcF/nJ$}txTpc@AD?Ϝ翯ԽQ6H^ɺŵ , 16T7-(ќ3wZZ-' BZ)i39L m_3n33.8-Rffov=|f߿gnOs=JEX;Ԧ>BTz/߹dM ~?òEzu"hkvWrlϧOAo~3Ӯ7—ӗm,8Ps4 R7O~hMAHuvUCHGoSE5us6A.Au(U<UhŔʈzG8{og[)o$c +piު([ZsrKX%M"UD==b1a])fCH/-NM$ZRkk-Eـ~Gsz~POimT+߂gؽ WeYv. =5m e/D퀦i2,”%Pv9Zm)Ns'`y`aV*<AD`Sf%^2Y9iUmtn:%*WXWb%[QȘ;{\ mb+֨HS{_7'֡`2teb+\9^zׄǥ| ;tϜ/xPv[ɔ~SeO,X|0,յ젭fʸܼ\++[[@Hce T>"4_F T1/ut89Z~^lJK~Tf5KZniK-䞞|YúX~K鸔!xV)$I[$M ^deɁjS+'cyj@ׅÂ؝rN2yrm9Uqv 9i +w}r-* g9A̐9៏5U.As'`dkd@^-Vt7cNa|8h*-Y5/ژRj-A1H1eMǎlz _o&4|6 opZ8N䎐]\%hbgKsKZӖӤ+X$AZ  ~7#Ou4< +太TWCB3gI\4x[3.M6Juep@4Xc@MB/u#57q 3KB*e1VkC~CzM6)7'VpNLRO+w[{O[ԡt:e@$I)t0C2^O\Y7ň+>A/UUS5 ,ݿ@CXD?ϸ.ݐW1ul [-Cj-Sj-Y`u[a)5;H@47Ț,7fϥ>XO:x[F[8J=ۜN[zwޏz@ȡlWIHPA) Čա"P$0KG, ډP,zKB#'EK`{J8x|ɏ)<2u움V T>ae52Ir + Lf"$ܱ gҰMy;հʙ{6V~a ui}kU/T5%jb - ʧr٬UaU.?Lg{4ذKy؞2;P,[@Ug n]bܧ c{'i +r6mrbQ 3]aPADrz+d3gw*Oɏ%]%rWj1JM:ej{λ"mPr65y#ՔrrQ`|$i$_0-1Zñ3EL'T6nX(Ϟ-C}'HJ(#=,`]N{'+fq4OzS:I;T8K\,7$Tk. 2T&66fS<`JrzC6NUCV"e&7x0ܥ4I-{MJ9*l46qxCAw D >U wKlR-kE>KpL^v ޭTU V+ۼAܝwxV"Jr]T bi9(fDEgHejsX쉜MC@{:P7e~s\e؊`0i mZOL:*izE:)#k2egr&22Mɩ-(1{;JPyru: +ɯbr/x4|qħxksh +vyu1mhIfy{oۼ7?Q]BlN7)"M2"WP9x=Id| _]̭HJC/*yj]d%P|hmש@,b,HsCRӯyꤎ +u^7hydQGĆE[W`ysYpzh> ܴ4%MI#:xC +]2)N+mLeǣrjtYp,|SoF۳ 8z$^Y]5[C$\@ 3Y# +϶X~FCi~@8زVo..*Cg&d5DfD_]1W<_OX%$_&SF^ ;C0Q}%aF5m$S|ζfn\6W0XFk P]rAjP&(4<ƹ^>bd8K' h@Lbg 9pa =ֻWeEGExu*rX0+EMM?X~r /d +,ZMͼ1NgL`jIg ky=BF9Ȝy=Җx[\I)rDi;?bt{_-*k3(FAUԊ -gF^i8M@"nD#F)=FdYlѐ<\&jƹ9 + yb5a#9(j%Fm _*3X]2*F'eUa%wQ5tteO=gf;}=R(w[m%oPa؞+Z9Jό' Og8 7a3k.:_͜99` 1&pQo:)`pLBnG`7_zӕj@m&JOG@n T0nE@;BC4ߊ{NkeSv +\Nu&)X!-YAA /ɃJ8luk hOAaPETB;22l_D= +쪷qw͡9(02.`ڐƋS:OX +}_PՒ=wH%|PP$ԎKjfnS֛ +sRsh.M$W7ЪXD & fnl9m\`9jpԻ1(|X<{R*sPT0:c8M^qЏ%z!e19U$;~ĖyϮz,凪_T߹{44owi + pY=EJiS8h䁄VF5 R\O.Cdm8<8ἶ9;_elOΞ5W\;ۍ^n?jlC z00{-[z0[(2TXh8w9[z#V +乢 ؍u8_R +=`/L[dDh*MIu5,NݛWWϝFӢvJ_v?O\\S(}wj-"}Jk]0 +dZifHMSaWeیQO +F\! R5nϋ16Wk=\t8r+v.vg7[~ˏKy.$r8EƯMpZNo-#dBOI, 0kqB?37ԅB@GjйWK掯O*wBTAd]8m P,tuW=a,eޘuFC6N!9ZIT^OݵuEȤAopr|趈I3m⿜Kɓ6d=g'VR{‰?C8sU8_ǝoi:}c'`WAp9ZJ]`\[:Sg?I/ Ps5߳!;P±)hbTc ң}++ U~ŊUÝEA5O-4P)ɢ>)@;+&v.K|YD10xgX!j ճWG0ΞEJuH% b [/y:v +fإ\D{甓ֶQaK ]:o=pFk 4fO?+l=?JQwJ)UCCFrɧmBamk@- 1>V?d9q,CVۜZ>_&(Ot9y~UsH g5va+,/0]yHf{>g/4Xì`5vb&[e1n/  +[5щuc&0b̎%1YM-C&wc}bо9 s*bQ_58N!h%[gIeۇ [,/an-L_XMzj~EcogHȔʐ kh5̳rhuGӪ$-ACPw!>t>GPh06'/d|w9Gݺf7GMD%<X-{՘tf. $%0v=yk9f2@6g7|DM[fgJg%`մgz 4j:s$"_H9pjAeVPaLi{?# +irnrǐ؄{ u ̫ݞIK\Fp= [v))>eЖ/"> wϑfCm`bljQPXrDKr@ +'8#YpIM7X7`O@J<m̏i79fmWy*oU蚺d 0#NF̶;IfИD' =bD ڇKՠo{s—\41oއ8$Ӽ _D۲%)4zj3lGV#ujЛtDaeszU wd.c֭)o_d`a$L;H2[f7[^7n73 bd,$DAQ!3`Jɬ!Xmsԓ F(ܶ*~˯ nnC)G'l%6ZLc+R7boR5AɹI&.l#6C5.7Ͷ?Zc(ˎ2S s sB1H# ߷D0TV=H$łmq םtױ8[[h)3tw R$:RWo j,[Z4 4I|*:!F#6H]ˈ&a)ci頩}4`W!v04Brf%Y~TU,wd< [略ŏY鄚H":0Q3aEP M3b#~gSnE0lT\Wy#Esw($SUDjD䥎46i +PdD4:gfDB̋9`S\hi 8H`{#nϵԆα)"=||8:obBZ1 ǏbƉ%V<⟏G`P*H +A6L<m'/*JJb(?)C[@Ъ"FІ6eeT(g #R^~¿1?i߅\AjG|39ٷYv?`CjcXi,wp[lȁmV{(iiMn0SigUv2·|'B'c >#R0l7HuɬkV5y%^VS͙+'m1?l۴JPS `%F]lB䙚rBr#ȾH{T$xN׻|Ħ31 SL+E,ԝ7{f.WeT-9+lQk)ً<#)=iLFXzJ5`NE<(Z'H*nQB~ +;)udzU{(=vjt#PJu*lW4,n6"AnbBr-o>Rh9W;Гi=Ywc[DLz" 0aRcGHo--y|fc){b*ڥ.f% Ƥ^ iYZB1T^nF񙣐C☰ \h7qr1J)+ ڕA߼{*T6ݨc"@Yy}:ɁvC摳ggr|s .%S 4-\O79tb#NNF)(mpί eAOA4n2x_@2bޕ. c YYÕ9AxI/c Q7/3Ox:boRo@/)/~^|cwF mk0ja3$(V@i`KX7t,3IYȯO +p%W{17a>;;{֮>;sʲv_9 .^L]Xs0!sɨ!"ųF'2lDl :WOP-|XA`S +–Y[FV^@֡[AY5Y" +Y/ ; 9+Z}UBnFBaS7A%=--@0?D!'VXhXuEw8%EzWdU:3cmny#T DoZX ffifԒEC*-S!G{REjx +vzb'g-&<()y4fEVۧFD!N᜷ +uI`t.Rv +r3@jwn/䠿|1k,f3 ZQc`汗39`z3xw%~?&_G` nYK3TsɅ51b7;3X% 7)p8+jeu/K|e<_kTR* ZR+ISWPNh~@SD-p;zL%\^dQXYE vIwC4$np lj뾗$YC˾ޗIÄJ'n>nFY V˕_*5`g:}ðg(U&#p[d.gP<WWW ]A@zG9{yG;{Gg1[GKzxm^ݧe5gU5gs\KSoAn7!t+^OMI(?_h& z=QL1{ua.Q!$s4x{.(f""|pL9(C顶(, ]aFDH2Axè"Lt#br1!JׅB !#"rS DpwͿXRΏ +A)B]$i8Ͳ;J%5ܢ}.5]} f&n!J$b^-܇}S` Ȧ?!bH6mt.7U%[]ZYG('"Ag%aJ𜸴"4PZL1RLc~.%* +#L4e[3+뜁3I]Z;T0[_2_u F+z$h3> +Md^i({L#$|Zw4TS)< $A4rvӔHKq8N?Z ĜwAR!WˢُVIHr?gk}}V@iNVEDlP\=Ҳ(8E:tDP촮q>Gw~hwZU$M(݁I(~LZ*wX3P/pcU=1p|MRt`O=AFmWT1SXx909TYTozХ0c}msGj1P MEX%H@C +1i,/,R(VY#s~ee_84sHNcsHsi랭)+72.lاX|?P[.F6Ӵ#bmt8C2,ޮ4To䝆dTН yBXU'qcFi_#ui/>ITxNP +PH/Qm̲AVQѳRf4l3UGW?0tSя6si&\ 3L~`IH?Ed2` n2O1Yg!g^$lPltqynvP< +r8y(.>෬GReaaJq-JmҘivXgbIY[Oh`Nj욛eֽ_'Z vH +".s:4٢2uڴK`ʕG~e9e*,Ic갞**KrD +"oLzFɍ3cb:c=[݉o |@˙yETlп]Q)eT2-yeH"2ΰ߹ +,e +KeK 9va\Q8>cؾCt_[. ov0LeIK`_e2omO nYށWBRŢ00 HV#`ƓyQ]=+Rt!6љ])ƷY`x.< |ON5LB8WnET9V9RרּMbdB^{(#+\o + R +pA /N/Dq9R1xy9y!\щFF}#_EWG=kQ<%AMNlי)nau,BU$VF4-FF O,MG- j3YM6ӛ@y)Ud &,obz;A:6|. + DI%TLOѕ9 +$ytR ȫlΖ'xR|LYt+*٩L8$i%]izZn5U;o !K{- ~#4/;]_LFaKzəLOyY#YXTc؞/V  +BTE_r5s'ǰLX=MWDwsd * t <Ј}:= th<)` V#ْ%ۧ=P:H޳b'ӰԭĹP@RVT3mm.rp2fgHb dmIED)z"B0 ,|ٟD9UO5)~f [tBMO(̬?6AMsp%zz ,sܚK#ؿsTę(OF ATLϚq@z:߲&vTT?D&)3Fbze @AvNZXPYZPc5}2M'}V h/qs d"+:wT C!) + f 8æ܃݆QYa,Gga!`d:+xA=xcor?#Ƃ6iEڣdi !tηٽv:/Y9t nlD)ix71*|f]9n;yS)d'C>INKh{6p6t155q_˨?L̷&h"H-ɠ*6,/. LHEmQYMBnVTg YR\qmmYqm}t%KdgTryy> +1\CzŦH\TRU6(d΋6[mSh+ pg7͔x[bƒ| 6$813h [p/k.HM|(RkVRCFg6m\d4gesRݧ<[4%srB;i8=1MEƗͼ}2דT>)ͬND&|P6Bl޴&NJ@R)!fZP)!$]rTPT,!֔sJPLr9ySʐUEdʲԬ3+AĮl)ߨ>ZL2RnN-166bhu~JM6XdH{0&I40ҔAz*Ո[Fh,cޒ +4 _u@(|A /(di@/9c?VnMդ㬓O{l +Wf2li~F8䐍>ZcLx "d\7&:刺羣fzlä#5ʪOe#RݚB9>>ᣪjX;d7t4Qo-=0mKBۖBp òEQs r +-k7NN`p}{m]>6T?!)$s*u3IqDb$kQs&lQSQgE:fJ'q<҉layԋһ=E?wf: @GF(aŬhLfH5NosG곭V~eU*_u%+RNҞW,u++aءё-{oK'Y +/firϡ2k@־S30BGcGqShO{3*EV4vvLχ6h?; _R>iХ)^=7͏.hi)tL/!oB$20oX]ae o?gǾ[ckBf^]iFmf9h9>T5 F'޵_hRU`G'69&]~I@po( 74@z*2gf8mwq}8o͔ܵ愔x%_# k?%  +K8zT[z쒝NJnf3i8P:ˊsjզ'A1M&RP#<oPhGXQ alIE-d~ZHhFrJiK.%'9RS +PKA,5ݒs9[DԛW>=TG~U/$FhkCc谷cŹmQy\(]<|բvSj?[VQv[=pVha ng vy⢽Z[6X'U3BJ44VVF +uk^ΦtD;[:9Eg8)o1ZO7o7H*i+W7;_O|pũ\G.FV|ZTtwB1BJ,5ihq9ng3jt/TcfmUIAR.ܛulrT6Ek²":CH'[”"CW_|y-Rq{-SQ=F@GyFF6ۈl˄+Of>@ėuY.qxn4< ]oHMsiA/;YR@ ߫=HI}NjCjuJ5tOlus,+pVzZT*N4mɜFيm RrR#ũ^0W+JX.XIU\Ա^/o`C2~r\vJ [408NvN +e]%l gx)FFQpdc!@*O–o(!\4O*W5O%ZjfŒ!=Q(/>o#`L`a[H/CzX}jj> g8݄̋ B)q?,T+撶7T~ +UX[t-'B%T: +pu8Q*ܝP'JTSњ63W#m`zE?qK"`q R_u+Vm`z 﨟cR5H)E؇}2Q:eNcN*ؑ Q킝0BJ%fqHvo -N>XpL[JJ VabD$?)c& S2 2rO  4c{B`A$'?DteacXv+.:wjN+Ԗo.~޾jc/*ԞCcx(`&s9!@zmޒAàVZ[da>X[{0C +$WoPJ&8=2J+zȚ]:}ac}~ e'j$U+n}Neyώg}e}Mq'qG'g5)EjD#,tu5!U * !,Б'Nsh.7;o +s8D-kwgbRLL$M0'/*jI2GB&o$GBѩ#OؠC +xpJ"CB0KѮ~/308/bϔh@',7s8I(k +Fqnm[_HvߘǐCZsHMMZAHz,_Hڥ@}JaʺsșnjɜQ)I8RZ4)|QG'0cC?1mt<46۝ \]ƸUVa8O@{1~BeҲ<!5dq)`pUZNsO>Lṣ.r 8Z +s48E0-%m |KnH1m +t6|n&ʿ*t/oGp"=UFFCHE A@aAKy \RBchr\ sSzmY+Z-drpsr%";\]=r,)V*v%d~˜*QyNg~y냾 +KvgTҸ +J,f@Ɵoă +ˀŌz,= k嶢 +|3qLqG0KN`?) 4RVǾF*cjrUZz-)%;gʡY;<,e <]lk=8tɊH̑ <ݹ2d =ľu12v3NٔYVqqchӶmUHaۀWWO=u_WZh.YJDWZg),T+ʼn"͗T48eHb1">^f5DY sxJY'n##>G70;$dƃtU CEaEhL Ԃ I`C^fЈ?!GRW5',]Bg. ̗E%Pӱ&/g-jc֔y'4-ᗰ?sk-SWW@Տjbb+ITel\ +&ۙQA8=UʹXאqU021tr0ueZMU*DQtp u*Uõwd:IDUV>0)zJUvPe!SʡI- 6#JI]RUl0SczTǬ̳ |{k,:2<3[b:u/Z٩AHhRb~ bY ++ +ڞ.9DVTT*=xUgh 1uʁXV"H͈}g*TiL]b:ÅwhN`EXV @''Z=T S)hS[hv9lծ*_{y1ij72TQ^ͧeut^Ҵ 3Fp74X]R>Öa\(|uؚMedmQM-mrtTe>{>6 +P={PKˠN]Z]{(d$9e6OZY*EN;ȑ8Qo\HZYp[P_IUV&Vm] ~Лن..4,[TSV猜OOi[]8Jٱwy n&'VnLb]QW7\E]kK,]UD_\4cIWi\^MyFc]lD&ӿ۷Jg yN)=GN^ƈJx|* lݰzw82=g /E-鋲H[@.Dz89@◕#<,y-吴pHSk(LT pa7zc+.6t ߠʺ:-&H?Ute,.#;c =*x` Y+uȦEŵ!p0vMa Mzzq6sa\zWC=alN{DlOr#r cQ<+HIb m}>%gNغ*TzBa;ܮI ]&h_~$X#a#b;| fڶAv'], /cӭM\2~  +琭a6mOk{d6Nxc*M9u:}PEz5m}ͱNyuP{(+sfs@v9˟`{ =D#5pqwp1WGcXCu>Ru .xItʱn/s: 9 +>xC .[" t-8eKyLuVj4N}wKֺ2q_Jq%C ^{m1sW?m'33z X-7u(Xgi]kï>:LI!YZ}Q'Numm޶ օ5v>P ?\} @X=VŖcaںx:*Er6uW hچAke*]v +Xh +ABB˜'E'cδ EM-yʼFJLPá[P6HQW cTSGqTWkV ;^8\Ao$w?lSjt*fvp$- ~ +KR7)m? ȇM/z?#KynNpb%0jKmǡebqѮw#_y \{IvƁ# }EߤlhknO)j gXgV cx7sAE3/[J쎏&)R6RU+Z7Ķ{TL aeu[y`U~y?CIq"R5`5jrTr~|KWޠbح%#p6BI,s`-z.Q-2ݧ-ָzO!' +Fo'K/QL9@TΰVv?YXG]rS4Fq+: Uhij՝see5՜WRrS7.R.l=NE^XBoz2XjLQ +хĎl㕤K፧Y, +_%Yz<_#{q sr N6%-Q%؊8SF9\&u%i=]%w=DDˮnC/T<́2Ϭ+? ޏjz3:=4k3 Ս_hfF6c kq"ϞvRF~bn[~o3hnjΊb;mew4xG"ȥ2Y(\Jae?-bܝ)FdovqU+& :So cyZz2F2*_`JZiEi6/Wv?(q;+^rnD5̂ $ajH.$3rᎩBœ^Gœ2O"΂9 gHe>4;&D:oĈiAB2r\Wb#Ge:%| @bN#.NFDnd$aJgY08.ͼk^M!U.!d$!e$18O(,/-`7.GÒ$8*aDHcXfI.Lg.+ " Ìܕ&)6!t?MЅ5S|D#r9hfnA/թ8]'̩5hE~X,Wtj[6fLwz$-C~np;2oHǿ۟?垤G#4:`[&'o`lP&7>ԍ(?_>!K[=oT0><5A]?2x8`>as0 BaC4ѩ~%aNYIQXa%?`Y=zL9Tz-!,:C Cz宿CZ]NrQfu_a~b=Q&Lh0D^FS# (~D~O",E.; sΊ3bm"C\irnQ:F}SII (G@ +z)cyɀN&Co6 L٦SN=' f8<3v96c򽘏3[1FWOc9-UCnQMx3ÈvF@נ㏜H369l7amC4,(|VĮO0~iA Z +xP_1R7?1^Wu>r2$$ӄ&yjgUcGB굶Yts'|@5W)K|E+(7 D\Y2[)98I6z*Ym g=jnFS9^{pz,gFZv8:dLDZ7h+[l|i|,`\,^b@N`Țc'_ꍯ+;??SQP(p՘UW c>>kY ?(y록;:^?ӂ/]^:w`Ƭ0.HIZHPĽ2P)HB¸a]$YP;!eZa{BŌ!gSz/jt!\? )IJb%'bhoi Bz'U:uKU8&_(,5E{N$~EWek!1HWUJPuQNvKe +ٹ?2YˌH33ƬXf}x:`~(' *h3YؖHtsF{@tK tYͼGA_L] Jv|^@rg?\I|qmc1; (y6rwXlm0UB%v#օܠCIǂ* ܔ+!Fyy+՟94cm9aiԲn~E HښmQK3u_;;/JiHI)M}g܎N![SQGbӊ3WWBLG#zhE,\NlrRufu7T5m_sh}B mYέp-WNղxi&tLCaS%%ۢ55[h9̙%sbUiJ 6GlXƢDc2OdencV k3KzBoN]'تgNTx?0܈SiN(Q8~;h~;*%vz=]mO7}FK=%_ # Pꑹ7,|-_{ba9鯀v~.,*_G ץ*ttޏdKM/"F$Of"^:|ID२&2S Cq".xQ$EnEצ 4dʩEigKSK'/hޱ\7kRP XS' |ӱDJx]w&eUqֱ:Azt~X]X?.HͱK@u| 82AxU5X$0zV12aB]YF~깈GR$SK/x«]1k~b6k@<2Z٣x^˖c2QVH:ޏd2},ivd1^cxvķ}װ֎/ULCEJB/LV}0ۍ]jcXON2Nh6_<pw)բԩZpRu>v!.W, Gt/|{4#va۰Z1giBWM нK'|4s?h#o_{p TG~Cz(\fλ6ِ.oZ"j,*`$ Ił$TcvgglI(MLØeíL=9˜߰ d -f-3Hm6 ӧAT$ݧܱ:_lBtlxG$ 1"4 +xEgA?H+ATD12^rE88#rD8C83N +3b=k +x)o[?@0-z4~RݱiBc#𼖰Ŏf +&[;J#l'G!ީEǸ[حS{O6SgCQ}t}cX[l#1yѝf$Ft$}? ZCs֨}337{x]|_"h7x=Mg&Iᴅ$~lVm!UuMʯF G^p$|)1%J=?W3짣0W mTߨeiikzؕSARn +~,ep,.kzq/F,x/ `ؑd%流 B 6EP&'(CI0ԏC%P#1L/!S. +е <+y*xUCݖޔa 8 +B +DaG9\JjS/a94]dZBl3X2QI_(wiV`ة,n.I{+'V*jY(M.|dS UI$#5(iҌTP1JТ2/11DBPq)T =W(dUf iW#VKTh-S9r]ɟF-' +Fi*ĿV#WH !,;iҋSh$X(Mu ,YQ|'v 柢UtF(NZFnU&UT?p4z$W^?=.WS6S%hXvN(_Ȳ +oWVx-R+6 *V^Tjn,5?u_ؒwx- Yz)ȕ-;]0>GlT~.^@ +U|fy.0`r^ yn`0VEK\p% wgU2ͨcEY_wx-i]O3/̞Ax;RYڗ $eۻiLR+q9@AP@[AᅌD6_2`QףDaг܇J˱ MN]dWFLu|;zbN*99m`]oV_@Hυ{nVb9g>muV_^.ttyD]`P¡KF4lXUlƀ6dfJ!}ĨצU_&͍:hj!8VtbC;Z3-.wG Whe$PڗWyz8w )U-l(Skir{H/K4c9Wf*3Hd`cYx2ZEi=K0b =x("YRH[o7&Q'h3յ8\TN`1J3⦙0l$d: +Ϥ*Џ)a]#ffʚ-JM[4fj5vqG'ꗄ0:ms87O׳ j*:H̀sjAluP9O%rr~g̬ lɥWo̥Yo(/e+[M_gJl@8^H6,/,/,bC$Ε {eCȤwd߄=^d}Q="aۑ5$rYU\*XTXϧ2P3ϑ>EM|.pZa Ғ!eW]6ŗEfs<^#t_s} >bP?"pqvG}ؿ#0DfF,a9GF0eSо>*Bl.43׹(5`Jl@D9ߏ@2\m[kI-Z`}E6_U+@1ϓh<@4a0q:M<C 6a[x2STꊆ,?ĤPk?TB!0 +%@V +4D3>eIc(~P|_A}CAY&'ߗ蒑wBQI"Pxuuގx] a)E8ě<9w`Ȝ|HK" ٠߆NE=6+Cd6{ńum| ^>np>x8Do}(_hxgTnWl\&^#^}6FW8_،g5/2K6uVT7jG-B_xm +MP5=Yl Ompu,-H}:O̵|x0Q[ǯC<ߢ<[Jl@looIxAk Z;Й%v/3x2jֻ5ΓFKk>!6"~vG69WAҿ葾%;`-M:KZ vOb`Z=7D6;ם{@1uN-:NV|_no,*v22m\9fXCNZȮ1ъ;Ds[z8kCc -JGe>! 5"_DD-~9pxGX1ڌCWr#w&ཡ_R:XTWi +G3s +?ew[_䁊)H& Y2ޛ0'@A'@[/WGH[hH3u6Phsݹ϶RO.,'v#7dʑ`mK !UG^A}Гe~uW߅r LR b-B## s`NsNՋ侦A3TҁiacȡOˏ*(V"3zKUUviɎa'sY["$]vnn瀴^굷w}DDZ6{b&Q&6ufzS{jh# = ~KzzG~'tf(0!?r?>R*olO婫 v5uݖㆡ708Dvs_dxV5;Ȓ1|/5i0#w&F|IW +ʠϥua>Psu!wG%o.^ttIX6(9؀eΊKmNz܍4ǎ93kEOYwN˸O 7O9 Ǡ :%S:W\rP?+%KZ萱; 9e ܷ>Lc[KP= .W[d[Yhak&m6O-ҚpebfP0T1%i1Rʍq@P%AɔL 1 S;ӌS鲞 v*HV$d§q@)ј,&zAI?)SO_5E +V +hf=[)L} +iA!OiU\{!Wϐj˵ۙ#< זq; +.֖6醡ǘt 0I VIdȱQjkAL}a@ΐQ1UU}т֣$Mێ/aSDS _$aj;L"3Nex[wOU 5Bu*1:Nʐ6Lx~ :H3vƚ=_&V.ă;g,7V#) + +Qސy e7 "aHP² ;=Ǥ`AA6dgg b)~ _i)6p_GD|0~RRМކCe?)P@!i\h[ +O60iNJa-r I_ sƧ"x܏5|:AB&U1 ̯b_f`Pz!*2*A$h%J=!)NSR^xt{: d]:eEˆ`GcƂF PC &&oSY9dmwaZ1q`øz4,N>"v9]H{ȝoOb CLv\Y1壂>wt8iaā"O=I 0~GShXuW2!= iўOxL Vg/7=(_+l + 2ۊ=&"ŸV'<*֫a0hN6 +|4}4!c- 2H6[>W`BKK2Ϡ(,9撄cq)!fiûvJ4a*Zn-͢_!Z5 ]R9/G'^olq E@"/}d@PfS~}f-'q@b #"0o*{6_'CH +O/js!HJqNQy3D + Q)P]"=yB3dEuR:CF"_mōk`#L%nȐIPh[˛Qx@-2)L8\d9ai~O fK +)N4Ѓa 7H=H.) +,vɅtζOgk,A벗q4D'RY&Q}#~j"p[ψ:uzu=e~h$H yKn-5RjgkFg C?GG6۔cO(Q"6-yyflj+;FUz?-m?ջj3#ʝo}qMnYڲ-RbC̐SPt-PȨ_|>9sByM,Avjjd:Ex|)Z85^^Zd8J +}Xi&8s9aRKgZef;PHnm:)(o::$Ծ*R ޑgJ}Rm[$1=9zF!=^9$ymɵ/\`]МJBlmKo@QLsJdfb="Ա@0~xGᬫhɎC@&)c@bT 9O>KШuaLgL &VR;2Hcuh=npp1It-dNlU0C,79oIE'iLvŪH}ĝ/w릀 /,Xiy#b`ܨ +Αen0Rա\(mVj"k%\xnm4;ɵyr ޙab/ LFoY[~WEWa4ѱYDy@r GN~q#x9B#W> +2KoSs"2= GBy]_BvfsiÕŕ/w5gyv֋Ý:1i(+C>ΏO5d[-|u?H67$hەB7:B.E:=đ2''%l?j&Xր kmqIݢ*\&%`~Æ+IO[ YfQyxK>юj[4boD F(1 yYHձ\LNbt + V ͣBq:-$ AIW+FDF)%M8dd8&@5W-`w +sW,G`-i-GQ(|# Oa,^<]n}7Htg-t u*o :[Y]6|}cW3 i\|azpZbbyӚ֕l@xnB{&1AGRѻ-1S祔gD~^21+~MJ/1kԤN|s Ȗ㐀3ur풎P ?6:/j">n1L'uMof9Z_S^3\JX+ l:\1<=-q}`{-`jSafg8 YAfZز~6a1o0bp5sic m&s˱`AGz@ Tf,5*eΕƅ$q$JNWh'Jpi">;5w_VLTf*nlǰIn(O)J$L?!@$Fqf7}7!7t :9^,hd$*hC͐vc7c3;m/XY `=B2(H얺z2DF-VLum{x*n垏5 y Sq{12UJ}}&[.Q~dO [%U^kJԠv}jz`B;y09E0o6,*r6olkĿIT]1`DQGͲ?7(Jn?9l)js`g7,Bv^Xvgeʲ3dz|'%Qx-4cl`QY$ ?V(2m;.21*xW0JbrRiMțdzRϕVWڹKղz73N<]|~?BK$m _YX:vqb&X|B1矓Fur$/I:6T6i4ô_~D!U7BL3-3TEEVAgȫx8Fiyi # i 5Ɓ#8 .`=LߞB;P=q:hzMIFgCc1D. D? a"S!U[p QPyfe"#mdݰRDz\"u-ՔG '?IDK]͹W^OnÈ^Ylk#=^> ^gC!Mo'm/*aZ.(* a 69yѕh0PBi=YKQT)AUݪtP=9Ӂ=\$HST12'dt!Q -c5fl8Di~bu@KM9PXN#,8b7rp@/u<+VɎޔJ[2#_$ݢSG%{,)d u.e qGWCyB +|_xŀl!%JJΤd*{:F%Gcg+PidrM'K~qvV!)#3f: q~<>plG݆! >w&Xy'W+ P{C:'|! uȘ5'LJ?zf6`ks0{w%%5lװqӺ^,(Ȉ)1zvzvkJH-(J@S"-|$pGkHHl W_Z94<&ogfhdg_A~r31S1qAA4 "?C 0-55|X̭"#Pa#o;7$.z~lj>^ZnOwnr:U;b--jcsMsc_4d~Vx>6r\Y?MFj/?*/:.|7@{,ʒ#t!Go/'@WX/-}A^jVʴ_) 9)C3n#Z_Ƽm1 +sv1;?0wd狙JT~$)l"^bF:#\D㫻҃|tke9A12oɬ)#e}pYXƮ3MUЪ>֖w{-q-6pulP٤(ZDܰQÊ;pLM?=iՈvjn瘹JѪؚj`|Ѕ/zkϓ~$-J4hd8W%NSk?/&ZiOfra.4MʹMXs)!}8;{cW<7&Ҽ|rץL,lpJ1Vqo fTNFdI!#I.[_x釣q&/t](Vb̉_ٍVc(Qv+ذ=ner,0z3/|Fę:>EIzkqdsaR)g_k;|l`"ZRX qMH +0_C ڡzGL(c\ (th֤i? +MP,UȜS ʖߚH!Mai){j6 +04F[٦<+m0¿{~]9N 2{dۤ 6y(TԑV$t A&/s0fΤ][^w:;#^HYX]5 )duc4l?gPՅޢm(8"!fGdm??2O:mmfuN/PV@$ǪdoC(^ah2Ԃڥ}uAĺ}Z>./kò"2/R1Zݭ%pұ|Bzя_/h#FW,Yv/hz'٬dS䎋y+,:ui?:zMyȫ^{+E&<9+9=xVfDy|'9Xgܰ'ѾJf#J䚬<Vlp츍0b +"!&%8bH&˚ \pyJ,vq[V^gUPw#پt͖Jy;riEbN\wE0njk.-/U,^%^YyVa)7HMSLA?ѾtЮ JY=o*i!'|h;0bDz”vD 3T<-]anv"YGؙPjH`_nb^f <v@G:9`Db.;ꢜmg=mO;3,m1o癀o +A`nq;/2ɢװ $F>&MQ0jUn$=ܛڼ;8.׹= +\mڹ=[7!_A¹ m<&gw2 ]kGd ^'B OteF MK}w_ ٞWVϐ5J7wVcl]j8FtT,pW5.;/E+27#|ӷDNͯ?z'6_ll+h3, $Ľh;mX6w t C[ٓK]㦇QX7Co)rL{$#pv׀'c>]S{r]R,GM[M’T4)Sư)qL-#8ZL;tij \iL7GD/\3@Q=hړH|=;RUP=}Vuw֘[hچ*ݞVMK?աo\=;wʗ=|9ȉw :PU d>9`d2MrWei'yGj޴c7:G258.uܗJ] sw0*Xc5+f>pPP9BbXByȎ60[QvG,r87l5p|}bJ"( 7#Xk^&_~9Q/E +SsEܧO«t>,PZTYtz2=? ͮG!ہfQ.Y JqL[6t<)equa +h[jkz1uޝ\Pe/dB1&of!^G-.dZV7dꀱoح tGK7؄+XlË.3)I4L:Z'Mے%GQ8gZ)-#ZE&xKi)6ec)Ե `-GO<Ӫ957$ҔNU +uzHp%TΑ1B,Q aK(' e8'80 +m[>TRA.@zIbV#+k`1[l31iFg+9YDGGq@gT+Ǜ݃UN}9O|Z$'* +lr]55 U87*`{G&m&VƖMM6 I$$c WYvE:J>'i 2XpXq% eNт1Mr]*6Sv +Lb#嬚ǀ+H"fܟL-وB%U-(y-OxU +g2ݔW+%ƕW"3^;\s*?p D~Eo7=r;G=GVەۥ}wW=0Aң?5AKKbqO? uFD nA4 x %Rԥ0!,$IM>)0M3)/ui^]H\dJsRaK +ya*Iy B 0%CfpCCq[҅-^pS@Jp[JQՠX:qkڟwPg:!?Ǧ½/ \|'Dx.s^  +@ +˲(ׂ.5 |Boa+\?> )"B +c+ +ݢ%~r&_ThpV~(\H_IHOtC\d%50`oaDfM:3詮>z;?&Sb6EzRU G ݧu%l訯Da#[E=R zܰ:-tOD)~5ǃ7kwašM83 ( oeݤb}2bjBpjom'o8]@s9k\>#;ES8(K ++KetFRR&<"ҫ%ncRGQj[]~mɜ"|9œ 2w=3{c?D=x+1K'GEi,2JUIJWp8NmVNNcDĴN 2 +@e-(>BT**7df3 +xԫM#5ˍ ?|:ǷU:šq:,2zq@-6Diy6g.e["F4"HH#0r jis'S%hB m +K8B KS$˄TT@dŖ1dmM Ŭ:/aMo(ΑgM33fgCT+y +u׫289lKϦʢ%:QX%q qѱ>f|zr?S9rQEëP{2'uX|ҎG)8; {4Gʈ@י\b+1ĄeFFhW؋6@-l$kLmyjx9CseSP*MfS罻CPywa-4ꒄ5BWf +.BQܠ,o~*p*ԁr0>W`#bK.tTDɌ׳&EDy]i5$+yi?d*b#=~-ŠD 33 (y (ؐ/:'c3vnSTn`v_̄)@xݚs1?][q"0_@6ii=|u; ݆9mkVuFs{)d>hβlP[̦ ֔Ȗ&i"6$UYW +c3Cg F@0B yYv]i YS"G;'c^yeVG".G{JIg66߷X U/ZSWaȣp%?V8I]SUqbk"6gb~5є`_UF^D+V"kh"|>sΰ !.-QżE[DϬNQe|7-]HЍRP)F˭Jm2cJw 7Wş;}&a.uAP$kyȄnVOD".lOsԅ}.JUK5OLsncW)n j|'1a-oϤV~A[E|~P sΧO_oDp$U.&haLz|Z`U85!#pp3Y8*NYtܽ}J# 7:̮^ĵ[kg~ U҅KdX߇jXA8Y?DpTP~ӳ 05;P76kjՍm+bO>֧+<fΫ~= fGyL v Il=s|rrj׈ߗKnztZ2{ Nbi͌:LnH>\BUܸϓM;Wl5Rod3@ bt>a&qFBpT[lҚ-C5iɒncD5% +0G.k0sllhea Wr_jmPj`Oǔٶ}t=xˍtGӓ|K=%@zP{tZpW?tol&ɳ#H2 [dl0Q *p?5ޏusM}2| + #'Yxq\i|RWĘ +u3gsފFY#r]2;"tN`NW T (b|Fv+')C҉}cVQjr{)(*?v٬\:'j|RXBWԑܑ%--=cL.LaHTB5e\$XEg;?#(^+ZxjH";1^TzB{^ tK?F +^=Wh@pY{?!qR^oRԒMW1r0(]K!/u/R6?_ྈ}GjY’4 AߒxX򼄧gAJrȭ۔~E@QV OPlby0J71'2EܤɈ-FP)#!OB,+1+>x?g@>OirK E2]F ߎuo,yylIi#@tUt*(C?XXZmS]# ]ts{{ kɋu+Se  B=䞐Mn +=]`T"9[zx+5"- ar4h*`_@n$bA.(ҡJo/ &bU; DT<Ƣl]sƠ~O-LԠ| L0 '>rTM[nvtU+j)jJra@'zn<<Zx wRT thsg35܀ŴHx^̢ZwâESm +JrǓ͡@-Pci(n{J>NžhB"3fmq9@Ժ@0G-:}W\e@FR uZͲ|IqFYR'!dQib1Әt8uPez'0Do51&9̉~ *z9 󺁶\;:|BxޚNsRc*\y)S@lv ;)q1J*zdBpH +i +pssC ʆpX'@*.xW3ґݗE=(B23\Ca|N3կtKNlEPK`*V׮IuЖ- ҐϺ*Jfj0++YиCK]i1N,s?.U#Xv._mo3~1H\89VaqXݕ*ԓ +E\?$]Do?o1U}sr_Rý._o~lō7|bEõW-MLtRTHS͠FP7\GW M<&5p"atQ]B +%8 *u8YF\dsåҷU'$ƩUW}'Lْo/GFa,Unc#v20?RtlzYfu]l +1hU%;N;D(& Nd+}^$e7Yp<̱FPeN.q[V#xMÝ9CZ4SoZ#LW7:L]'dxLYL@>B)>x7 XDvURSȨ(2ʆ?E 7re}.qJf\R.E=y3*x,迖ue#yw gC[ߡJӔ_rB[K[,\ O ]*|y((,^5%'?=p P"LFY.E9^ Xн"}QT*|>BeX!ڂ ┏*L@{tDL@Bnsrj ^!a'Q]#ra:FC%F ?ٕfM ]v3mRtөwh9M/\ +jOǢ6ae:t, ݀PpNJXdU>Y` lvq(z Cq6ɝ'Bs, =ӲC9d*#U. Ja + +t(atN\>^&=%_X4e # +ު"A%g0 + Ex%BP!~h68IڧV [95=;90K~TW-jbEaOaR%!%ޝLd*W*1,?ς } =j",/SEߜNbߦTAqmr'/#I؏N sX63~^#O8)c +ި!")O">e=ovwGT'll22:1:?OTT3/G +A{l9 D!+#tX?+~/̫Ll0iXmRe%= +Ri*PӠ"mA=)dS}sIkȐz;5T>)Bt8SoPɽ,ƐؿNϋ \dMkZ#z*"B0*?yOf0؜o&ŭˇ~d(~OW]pry7^YG]M8*8Wf`sz$o*((wSH6d$d f9Wr,E5u(auP̟B?i +U@*h}6=Zvu2u3{Lf鑝wMu&:PU&5D^;P,G+-ȣЁru , _~}3“" *7ij]* [nyͼfߞ4~ bn훆tEP/ǟtR(oʃyOٽTۮZ?{ۺ`5r[1 +wu c.EMxdlbgαv4A2ᰗ10YS~o#rS,½ Dea:ûC7Ʊ#=0mUZ߱U˽b>t|j㣛]6KQY.`ԵNXhgw~Tek7r΅@CL5̽O+d\֜JQɘf=։ jG<%KQ+v-I轰THwx9 +Jt#K]rxa$Qb]3h(̉RL=&8F3$!trQT3B!_uUH|?\AEwD+ (v#)f?f(t#fEǼKG$ɱ3ʿ*!z}h-0ff>! +F<(9(8 33e1_2t9㟒ݭ6_8Ɯu0 y:5ӹc;!|h )H" :!sȯmba$>`ڱM [܎Sƭ&fȅ)G\Ĺ ~L)ȩx:f7,Ijsx9٨`-¶ Jך(m EOPt]ԝZ_T=%S /18=SMim*fXiQJiT}{)O*0@*V3pϦ[I*RJ? TCDe +rxT(i! mi鶩N<\} )E t}˼&a-P$f XP~d { DD.Ɂd$ eE*i+:h$TRC͈!v@;A_qrB1ynsg5t|8$f:S7_K?趑S }uv$E?1phVdW:u,SCA=<ΦV`_Yf\Yێ\p+ryyjJ a6)0T"LTM@Ǿ0\Uc<.lDEfUcmX~52_j$?NXbu@y?1Dj) +\lx{x$sw6%:^l&;EwP>[(ҩ}JuCs@^J^AϞruHt5K&sf!.[r|'q,DŮ!dLYj7vM0% +{.[vIa!|t"v~I;n^[tʫX ;d*T=fQ-zJI  4=$bAUNAn3du&!b]3?[ +3+¶ O|w97bJH W1>:|Ǫw{UKu{.e]᧎v4]C>,p0pl (oѫDfU+H1F n /Y#hP{xp ea`#2 aX,ׯH4pL +CC@<z#S %+.6ZLw-5ΐ}/թ61z +zqqڅ84]~015Y/˕lQA~,I=;Hs0~U*E\ތɺCTCc=E6w+p=kYQѽz)DPU]o\Cp&,T`!1$A2SBPna!&/{<+2P AdX\h>0Z?+ɰ@a^b7v]/(Q恵LnM$[e 1[ 3%Ʊn "!J&jAc[xJ,\iie9tmwf#z-ܴD6VbQM^H%j4bjkKb43m_:+wIhm05_o!k-9ج깰wW[ k9:aCc5w3`%zSfȻ+oTyYZi(E)B)/Y3R4æ8*eiƂUJLOZy[qF[bͩѵz q\89yB +y/[`cd89/Yp;kuZ:$i%AK}+9K(V*;w:W 1viBѸ觷UEp%w)Io[G ~F/ ЅF+f|l~;tKטv!=n+%JfXKW7dnݮSJ]; +օbDSﵚݖ5}KB!i!Gd+s;K{tw9fXHxJ 1"cMt@iE=JM%rDlGN8|1ɆdSGTR.ʚj1%xRHMSY0)t a9&f-#wa>u412bkM4dEQ}MXfzA"ZL 3J8q"z,Rr%&9rb[1 wHTo[j}x)$Jb^Љy|A8v!o~@߈|#z]=r'oٝjYKl&6`Q4d;5zXZru`ʲeYgM)$m..jeUp#Oql+EfgB11xvx>Zkob,.]w7Ƙq_ov'%<{0ÆlO2Q<2/y,<5x!SYSk +i5Ϗ#IuaNIJD>te21#K ]`a?vڪ> ;kߤ+_!P..YI<K)pjCF[:yJAs5`p/ +?v۷ . +q{2, G_ߝfg7԰QRB{1" [D٫ +v3@>zd:Xl*Bl'^o;S{4̷ZOy7={9M'֝hc{G/:BJ}{!%aKLU 3*#Ӑo)U?QL'5fR/8BQU1֒넩.˟6ܜFcE:G}=-ZWB,W飪GG_Y,Qp͕G*/'Ƹwzݚx$e򋥻( iorа$X%:jk; f7 +Wnsh734ome߁`"d-P:w' +g\gⴇJټUёbZ_[j:5=zJfM[wNe4Z3<)e||+Nm7*U-O\9ٴ+ o?珏>\IGR3mڳ?u#_B-! ׻TaS|Q,rWƶ%~L;M;LW'7A-!̦pTm +x6j-H75(gYC$g@mW/NE(NѥO5 +4rf́gS%ϋq™2wsLVF +|+^Bjрۼ"2>p#U]tH!5o5,v щC3VĩLʓ7E~ JlwH(n!''1/ +,^I2R$Ԕ! s9D#o*H]~R-"V<͌]C(vގq U6{|t!ZqaybR YkaŹK#G tObs2tm,JR bqtXk&HE L6{i=HڹʩUKxՙKX +Wh<ꥬ[Vh)3a*.BT *sJ0pYHy7>4j~MUt1X/>f +[Ʋm2I Y^}y|2+MVe\yAզJ@ڞvafe@U4mĪ_i3X<`g!$-m;#cɹޙw6||Y(p;19S%וr)X*f hУw6 0j]yV=Ψ**r4_p l@Xo +CI?6;O6ͬ50>W3=F+o FqVY9oq&] UQUT+ j]s[ΑUu*$j bqW^Vx%Vk6uPgЏ<3C1`t|gш0 +vv||iӯۯοt~+Y#P ͎f?N54 gȱUG/EB1H +dFUmKmUsWCS=66`'B1vCO%62p3ǰSt8f9ƴ™͜u ΍dm襝|ahý55~'C uY93O #ȟ;c蜡MP 2N/ ]u-82gK2#ݫ2 -0BXi(aLט\MTy?>"kF=dߨ`JX3q"dC5{ )G7M|xE0y $il326V{Plm#B h?\)nwE7_{!19VVTxeo?I :pK.RVeORVTd?薼>`!3Ļ`rIcx*UXUʋIz(6)-A-e$й~0By v91 06AG 6Ӂ'*]}Go?fYuY@9?ugQW,+Վ8sD^#.!%7`:v<oqb7w`?G`w'XCSML}<%QZ+?HSQ](5NفF֥p2NUMP t r=P}4`X߳B/$G6Y9+t +IQ +Is f(ⳏ8&KAV\k60KY'6xi^hҹЦJUԹ3'}9TOy\urf|.@'g{!R;e298ѳ\u>)>DRK<üR碣+7za?@ If5ξtǑSpLLnwAw!L-z7znc;9bW*ߕA'tzQU`u3BGa-DO(WM]ds.Oͼcl.4oD(Жox ;AѬG m0{ugK?vBVTfh,(d]۲͡1E bCJߊG?UK&LwE#6 +roUրشOsDJR&N]N k@2^a.xɬȞ}&0i(6$5R(T +8k0ȡ?^8bu@[d`vKExI$8nKu{GcDvgUVhCJ<&"EcoPH 7޲Ph?zwCFo ɏl\qɼe&AVh(TN*Ep T;m/Tʌnafll-3ﯦjwn0>vRA-Cȝ$FTMӿQ;((P~ D-uU@ۣA<0Vu=~?1 pBW~[P‚Ϊ>|RbrҴA +'JX(D6QRSɟ{Vzu9x9϶)NN +}WĕF7d]xv^s|5'P=Omd;\2@R~Ȱ<^X-"x}}}(U_3fjYȆ}Y;O6mc;y֚A's_DXx!8bGv<<MCD!0ID8IJ1HkWTPb~%VDDžY~T쒼 {8D)y[6=h%u{,Y Q +.q?i}Be +پ4;F<&8#NV1][W\p.-)5뇯Y()tM1Jel^hÜp=K=AԱ羹_^/{4Z_=B< UTٰ|s]osQP*/ +hF.#dȓwg7`D[(˺celpJX\PY #C=%qYbR)\%,xF"8F}ՐC/H4,R4Ï}JF)AB9n.  @.e4s%_5t64-$́]+hAa(QlHӺt)5[+\*|?705WeS0]*Nw^!Əx  @D?ߠ_Lm} >Q!S?xΓ{~a Z3.@ #W*]JLL,DmKn*EY +rs1f8 u`FÓIQqȮVi#zA}8͙nКΈvTSe`:I%@]%"T:vp2G1lӝk4T^MlFI'+)Lբ_pMU1Җ5E;C凭b=D\&} vagޮFtϒpWqj/8ȑJPj`p. h 9UpUbȞUsRܪ$zzѦ^F12W=}5F3[.69$0I$^Z8M8$-hD.1XGt|O=ap15.t4HBi<)_x&fcZo`kHcƉe8'.&"c 5KULܳntQTy~1Әkv=<>vRNNuYi;BD>]ceblEc4Dx`[W~c*ZC}}Sc#B/~.uJ{:%pO,@"@4 +Lׄe,"պPCdkǹ #7%.T{{$"U:AÌ,O29 +pBduA,QaiQyPVA~=&eduQH?4fʏmORR3jf>&@j$5Hԫr;(Ҡ/p4.2F{^oҥOտ^>>ߠGٗ?&sձLh䌂ƶJĽH3,pʻt3֥R}7: ð"d Y: eƅb?Cu_cdYf.L<- Y,T+JRsKmyZi#dyfyV@Q q>Go16[#jTedC)bzUϮLW +6IZBY ufeH,!{㥆{hrqko|E_ j"Us/$Hh f^@qTD:7rIx *jItC;C +D>\ +-kEv?P1}ӃUd؂@}C Db`[ސ`v˘YV.CuSV+ӈj^ G*Uml~#[27_e%svϸ^` ~i S Ujvxkcnz=*> QaE!_!NCG)~ܧy2nA +n\JGSQrА))+qe>R`*+CC"5(Oq%zsDwuZ.\7 +D: XHŒݓGgkAmB_167? 71{5,x~E64s/^XN5A28Tmr^4*z~<8 vR//56$;02|\j%P A\1";-]bqbhy&鹠Amk0j9Osm|B;M ZWj!ޤ08i ? S/.! ;A*]?[Y;bzGt+5rw DNi e[W^v;M$4F:]kУ4ˋPd[u tҀ5!ר9+nJXmջlo᎑o>/뇒wF#^7d\! JՒfKDOq%T#}f[m;'2SkǺH]+=IjBm SFx9FS]-âidͫ L0wf2s 2?PA8jɏ'jŪZE,[AH}njKCm@|ݴBŖ3Kq1R%Us2KI /3b9kLm[ϐC9ǖS>#}}TRX,Nͽ.tkJJH'22Oy3&S7FK Ćr]#dNSQN^X^JY'pEoo*B~hzOlxr&D#{jrΡ-5w]z`RoNg SQ~T!α ^Gw>{uUMwUA&KMĽ%f2Ca*luY\fxr.0e:33D9 c(ۀ.Qoe㍨g&~@lDgO1يȖ"[giS+}_sc4<³ڱvp*^󩗼UŅIiHI鑤b"+GqFesk 4r'$<= XФE|92C6_pj:6]>7/ܫ6p{_G+Sװ'_?0xs%߫8w|H+žχ=0,6-ggx6')~+Q*S$WilX`${j%].mEUʻȕ++ΎTy\]TpghbbAu R)CF0Q0҄q.sQ3JPjɄ<ّOKWE 9?cYGsxUb,ݷhFػ@i/Ю NJޭpJYGlhdM8<,bZҮinK,CoQFW=g&hX51oWI:.R<BU59u|%7y +^%Ҡ?,F*v,nVLLU7]%0j_M8.I۰ǭ7[44d02'bf!Vmm+W)xWXAPY6qF'p{Z.8[L{9j3`㏴Je_ɚN0^UO=hZ$1ۜh I}GÍT0ىqZS]ir]RwYvytAⲏrR,rIex;B޸aSFĥ3gj|D|8ې]=o[|_M;VCܫWV?~nq$'S  #X}63:dm41.8l 2=ó&<ѺDD:) |CL1gD I(uL `3eC'x/uA,$M夀2du愈G}"p+鉊f35u]boT/tfSA&b |?t &kHrIuf' q)2I8F sFyYR2]QECCZ$BES +>%RD7`˔Y#Gʧ<[J +k7yΣl.?x Hl>@]m 鵟ٲF:.kښ]8mΌh[߬z?̘ +@oVXmϿ(j/2h $cdRqtH a$@dWSMVz-XZeMnlaNһشǻO8goy_>sks x$1u&'O=Rg+xz&Et{ҼR7."RY1G%P-JrO/fZ8c^`AwQw"p1ơzo>u@wzjt BtUĮGQwN_ز<X1#u$Z_a06:nDeX7 gC#v`iåo,ata43i"p ۉ(hTNU4 [9NH $Not(X~,y P`af[ܶm۶m۶m۶m۶mb3NDEWWwGEGw\UT'Fƥ>4pZb6 FP(״5|QRv;iJmȎ SoH]U*I'lm( J6mOgJv4o0V LM1E=/[U +Z "89cLռڴ~K < Lg}H4Q$9d$6.>&1&{lDt/JIYDŜKpj⠌ʠrm&,o1^4QN_,J´Pku}i#Aw\]I;V"o0>ԽKnP:_O 9@ZN֣^ ;ć],8,/Y\3b4g&=),3UaMWSvC٢` PrBvWD0Y+HU-;=Nm!ӪoN_a9O>Қ4a M*G.`ǻ +k20{#:Q9Q +"6EXJp +[^ܥ8xtIzIXBaglqAfWWۊSé +v(XU~s}E*Rs'yKab/`|"bg ;EFxu'd41my +TMM.Vb$R$G*&=>Γ{{q `"!MKa`H`UȅL-*rBu";AN˧:sq/BbO,rH]<*m惄ڭ,CĢ= +;ݰZEvv; +ݐ4@/)!,AK(/AcT +^cN0] Atχ0&ZL06.rX.~`VvX>I&MJE(,mSIѓz$(|]CP#Wap 2 2: 2=R(xqJcqk/.Ye )[@ B(ƒ KfSC@[ny AkuЫW6'zZxa OMLk ]w:3U{n\ '=klկ'`cj=ԴGƶ6XrAp#0CgXb8 c&[ / />p Qt?R! ;K2!E%o,h~QpWȣ?Br߲WſzXEq ٖk +qq{7"R[P #QIʢХ܅mq焿7FX ]V,XW3?jm N7-!ܖ)i:{'jGdv|Zn05y5 R?Z7naዺӇBBEUtYr}{5BwP?)m跣S_Ś"Wiɣdz$km{ҥ^SGB1 l by?t_D?(kO!KYPPD . (#$8J1aɌLDfFe$ n]WužϹd΄?>y>&|[C! bgtN#c 8رܑbKHrQ2XS2J$mvI.:rLsz-tPKf ++u$׍:TI0*J7JmaT!K2)lTe*Ѱ ]%/_҉ +KYSTqZ\ē)TBt*;ZnZjdI-t̩J]t2}Ťz(H2@M{L:duRȲ*Ѿ.\~}˒iY65# F"tlqʕU! Y9)4갴-NcZ6kޥͤUDwEdk*r6iz%4I U$As|L*^hsK6G‘+CWwGc΢_\z!tA޷Z(K] xPBw%Q/~f]pLHe"k{ 2A(>8;eeo8KxhV5On^%.RlKxܹkZ28 }604g6E|MgEu{5VHSMUkdyl}6.Z'u&hHPP#9e!|hE3@4˼)dh`b" +p`\iDEV&X911:!5? E~-X vt +i}gSʝk:Zk>..LL>:+8Qԥlesny)a0`؂^0xTkp8G@+}5͏-r𬢫bƿjEIMs툵 g #W&z.3v֨jg'cBjU9Fޚs3 ŴUvUvowH #[0>"[k{<qlg.nh~hٍa7|808uxC$f +#Í-šW %8Ϡ7tߎl/q&]oEf?W$*SWߤHċf_Fs|wu-V &cͶvr8V@gK|ZB0LPfPZ٭3h,:k8Zcx6A}UJˌx~adÅ$;SZI{7,YXF8m ;esq ;G|s#Mcw#b+=aY\ĉZvptl*4P-=*ny LX5vHA(e&T4s_a~ŝ<ไHЍuM + ꬐)Sm\3+$ܩBJr'2t;P3*tԌɐ7cDpލisF wՎŦ](ʻmmRm+Jd*,iuK[ĀΊ{(ҎЋK]H^RQ!n(uD11M 3Zhc1Em.$Sâޜ .@6!I2~usϽ-At1\ϖx-ˆ5J,l1xK-D d^mܼs}('13p輇85 Q$zG6M +%2gy 45|PJtx}Kƍ2QJb=*t* CcA%x6I)tF#J*û7%sPaܚHb :MFɑ!hx8tL.$I 2k,1cȻ#} rFr=X6v>&kWoO +j[(/HC7E{`0mXt"?O< FZ@I=)0W% +X Ohj];DS#SƳ7d닩WV 5g!(d؏摌xTTWdIG2.L~pm 3ٟjB$`h3MDU7p8O6GcdsMK +6O?C?w/JfĽ]y{2q%8K`MCsnu} 5RJbbC@ϟB(%1$ՒP<_9pC + q͍Ap DN'!܏hӋUTʮkTM^9UX˃LW5ۯsC~p#_Bk_X_N?e?~Tİl + ':grٵBp_p>ToݠnNձ +nNձSe$xiU jN^A5AruU7z^택xnon,w)!]2]#Ny2T;Q1-~t"hS 耐/4t!,zNj> tBo6<nN]x (D(>1E!~y1-!I+~7#nFbteGhrE5 &QoB /F&M oփsEN-Hzl lqZ1Qm-,F۰-cvD~3xKV,oP豹 Ɲ؜R쎷ߺY9uA0d]ֈRi~Sgi @>nY< !";^"ߘce͊#0{(jIr/s$7ܙeL8oEBj-3[g:d>U57zI#Ƹ;@|Q:f=Ğ ިCaX8G#1߰F8 ?WX]YPRVyM)ZY!W,yE̟ 钪5M2|Y e2Pb;prV3oei4Kj،'ֈd9K0t)*STdHL"f9|e 5Vlah?…QBW OS!Y0-]`x\h8b2+43#TɓJ=;PiET[ ֕jf qnW"'/#Ț G0_ 2p dU` Um_rk 7l&ΔCR+!/u eQSr٠r < +vh%g0֓\BF@Fʁܛ ie?ӆ[$j\\Q-.Pn}Xz_7X|ASinDU+Z; +ԅNmu#qkk; p})#om;BW6ސv̹U¼R+<๨wNp+% +sW11IGpc#Fne'kaw๕Ъ2b S'vyLsLTJٍ:s@?q2|¹~(K%KdE0XpКp81 /dd00#$(he4P8`N{Vnp5w;m r:7>U}!J/T+Qn(/0|!SAo;}i`mQΎg8?Wg\} !tvH`ſ~RX~W<L2[@=Hǚ>h]L`2u12_b?R,P/ SIfWW\k !!G .t#\%n/En?΁"P%cf% Ed$vaKb;ekLެk ?AJD~^ǜ҇'J@ĄAaAc!րQs ˇz;{kK;,$)hT]zGtCZQ&8$?O|YB>yØv~i?`L#C:{<,/EίzY);T$%_LUx3,_LBrţi:)'I Yz,%Gߏh8 u. ۲8gn9brYf(e"I ;VBhΎj-\5 +jn ٬SޚT(?FE,)ơԦYڪT^@N0[vj`YtUrY/nAuuY/s"mԖJ_*JmU[+_jj,S<x3E"uS'yCjh.XߢmqN݌5)qFkgNyd D7%-czMιzs+1`3qF?xnuԓt$fU&Q=w&/e&h#!L5*^ ؁ʸKƅ+Jn$$}pӏ/ܝЊv3t?VŋYZ+[Sx7{jwlzc"s7 mMێZ-J(aޢ ?e[x;Pg߂&os,` *<ҩ8B88GY̻oI.ħ1y\̝\VPDw9`Hvfs6F\*D=-.3aS>]:/R4ңRڡ4CM#ѧkMEC,r0$5A-jaM`njv䜔'.;ǤZu!{x3ͱ0&ۀ׼ +% mcjqOO ng@n;sΩ5v[Qi/C?ӝw#[2k2L;uVݍUe~ ;Yj>WH˓(t%֜%>d| DCG_ў`ƤP5_8Fk`61Zl4rFܤ CR%{ė2i$TB(jDF%s(fWHL +$}R^+8?0~DC]f N)%Cڵ/%iaLcH]ciTt,p3)FO/wWÂyFPI9swbWio2O<9Hia@x]{?rBp_Ϝu z?tz&=?2!ӯ5C__k|?ļ5WǨ?Lus#9Ҿu/2w&Pâag- +ʼnblXoRd !}}*y +Ay%A{Zԩa})hysm(=RQ׿(4 G_.8y!/!OmNa%lptW*mlXYȘ 7)^0oU7ZqKNDzEg_d .jkb*٧0$6$A"l Ha Ȁj[ӺVԪ@i:FjWlZzTm[[rM O{yoe>0,+>)eJdg>(P к`8ZdtOm[..ӖM]*eE?}UK?Xjrd}yK?X̚Y[. ΰ,Rϴt3^K?Xַ[FCJz}cRMZT'ٲ힌viw~MktD%Ჷl1]wߡP +/ƗnZ.,Y7^ +ݾ+s~2٧6zg`ߖV~!g$&x mMxoyye~*m7_wQzXmB-}E+7_%^d?M_-RZہ$mb__M_[&m!^_9/|?9HfCʅ.^\JOp?Y%;esH?=^fAHJ?Yᘉ@(R3M)7۞/o8iz V.V+ܽ8QeKı%@}0i|}AkYgD\tctټ ]lYnT4x#XKH֐LicD_O!,CgcjJ;_MZ0ٯtryucI+eC`̦ +H׆DdjcYWƲxa--JiV˳` Jk2$eݞV|5J!B{bm Kk6-Π[U^ze/7j&oًE0#׬یmlkC[O^ =J~'ѵRip*P!ՖjB) 3/?B6@luL$QS|0կiw31n6<%sR-"u[DqMYz^ %CoNg +nѩIɟ{b8p=''3U 줋̺v6J6#IZ|rkBJEX߻X +޽^V2zvr&|o(Nm;s e,9Ff6@KKf5v|jJ8u[gl&ŸڠZCl[4R!V2\Ƿ[P{Y<4~fŔn%Aj4R3a]ښj%ˮ.zN_V?!&a)szwKЕJ"S<3]=AOsmNԕ1zs7A}o*_(dxp`^MsZ?OȟϫVLHg+iC7W]%^i}1j(t\룄%~do N鏐%_m!mjTtw7dKt&sX-κdc_o/|Cm4ډtWA]yb+\:HϧJجLx"βb6V:8PRkz9?ٿ  ڐ M;)Z礊_Љ+~R U-)hQhK ОZ vW~uVG5Z 7 Q^h+*&L"XQ4J(.#({([ g3V.$5^#w|n  2!!'VlҌ oW^|kq>]+Ò}ָIlZfýA` ⢑ 11i~v+FT5>aUu^y꩕sXAuZ,.g=2jiހcD.iߦ:j +>oUT^]nT\\a]-TSfU.߶*6;H˙ l 2YH]so~3>Y ;,Zn^ˢMu ϽPu@̝uy˓kKpYZmYy '].t3R!(hm:+>s-(.7*@;wqmdD(ys`k[%ϭE㶊hsV<&VmzRX^m͹>Cb>qsI9vb@g*<nnlORyΨe3E{*H)ݱRY124t"+78kuaP97m1j2ڽڑrÚ\^gWȾ 5:Kԓ⢕4OT2 \uL>g:bE{kWs| $EzJ@g#7R3t>-{{ŴJ}ڛsT.KVJv#V9|M_ o/nA&uN!QoYs +B99e2u!ۣC⒥Tм4wګѬG5o'wnA<󚼞)f=۠,kWB3mUF [wN{hBǓ+,}}\4tfj\%b<թ>k k]<[1RGXrZRP.B=w=\~inB'Y5ah8~RGT3Zʁ?Ip#9~WsqIß1]9Ȭ2Ly+?uvw,{ƿܛn0B *p3D=t[@}\!w@lZ㖁(?lъK(C%M:_n(0ݢmkOok ߋ.; 8/'; I# +Us jSfTŅ/z$?@n̠wɀYA#Ī7FGXuw8ڜ`3.c/@ L7ۋb;qD_U,FmE{&vzeHk('HX9OYͭNLb혂eXdzÈ] Vv7VSpnl8ЌBc7C.P[F.G:Z($.';O7N, w406Ô$80+Kl(pi*Z@:(I3@Ԃ~j0+ Y2lԖ7XJ5>a0Y+zw OcD~eJ|B!I'_*ZRcju:^A.K&6!7T9j_@Tψ>ZQGBU}m~.ME: 5 L LIR,7A0(C$ fHmv-q;@H&$ipILۇ!aFc)[9d&x*m_-{~+2 /Ȟʦ`^YE  _ +I n;Gr4ߏ|amA8ߧ֣j(2>qD|lWП$,J"yބtE<{L z˄%i|yfz+'RO,C2z b!j+kWPY3+d(wܙ#րJ\!]kLvOwGx;->4@4 /ܕ//:Eq̺Ts!AKb 1F;v=`Q1{n̎~9akٰsvLw;;ob?FZUS>H,2dlt5>L-n7 ^ؿMC{dSyfA ! +>w7vQh3GQ[E82 ᡁFМME]wUCoچ;*; +Gn \5_&chvMǔk~NA .)}.- VCαqsI2=R*U >o3՘eXڐI@~JMUe NBM2N5_]iklc;)8nvݚ/^kݝg.f +1Z0,yg\ g.9&^/^?oFQ<0 hXR0z]זcǽa{nlFg>mxEH Qb_2qX ialgrFe3_r>ZIc}c/ZQԩiaڈNTK͂d)cW2Hr^4Rt]ea^1{rmlJ^Ԟ{k]ީ⚱ 5٣kWgVٟ^1?fg1;&lO5-ڑ[ րN3r);q9FQv(8l 2;nI2ܑ"X'%\7Euo'hLzu +=f[ըDIz:NoV6=n#?G^xԲ,[2PLuW?jyjuz8Ĩ+e٧RđkVqw'\ RGL>/IL׆\s ՝4샥 2k4 {\S9RkBE%HxE9;:Sɔ5Lė%-oypԧJЇHODx& s)ַ +. Y6%?aW*}41< . aݭW4dͻ|ũ@۩|=:g@xWÁ(-Ƴ i~yH͝(=Q*/OR|:#?5J_\6Dt5fw=ԕ0|'+22}Ȟo_ܻi/C0پa~WVA'} 8j?\Lf!(BӢ ajt A]ױ5]c<+C+x"Vzqj|MIr+Ph $Wb\slIs-YuZ1L䍩a|=gkpus$K>5:%p=vm8%G\Ѳ6/qu;羟>gOQof-J.bk=ⷥK5Rv+vwRݕ\F+^5 LUS=ƷKa^wH(7l&3C*EZA=<|liwtjnOsVו& VR 7krG"eOe4EͤaA^^3ʜ% <͋Tvp7VuM +W\{Yʪ < 9ZE&hWyS̶`ŶM^(p3ފK AY(-a] Tڎf¬-BS(m?>M\%=;neDlQ +o"OM'K=wŠ~ lX5w2ӢԿ5.~ z)␮air^)4 \35xy{|d⁷{A9C{G-^! 4 z1{%f6 CN6 |XDas;q_\)^jV(2TETekcJJqJsܸgt2L4\DS`1>(rwcrC1w 5 /apU`W k 6WrGQ i +eu՝Dn+VTYfh8`g_tBWՈj+;F}p8~m}߹8Sj;Qf;SUF6-gSj֚E#y[r2.033#O4/dƮa՜vix\qB{ ]_-y}2fL-f_&2R`nPL2e`&_H5Pʂ!Fz suѨߋL;OkQs cjQ[+;Z^ƛ5nNI 9 +gn)<رn6W}s>Xy+B{ ]s; (ȣP+V q7E>Xw ?~Ś]'K3Yށbg\H_yBVU`{?Ckff{bef|yd5퉓bސ~JyQ81+ˬ䨹Lk-=xg( :!O5z Yaw?hR,`-0Vy Yv]# `{ ;At +n[4GvlIE$s۾i ?" rDU$ڰF.wny_o~14NCi2)ćo)v$W5ҪJ.-k;ƧjٝV;XU϶$ݿRg{zm+{-v_GvJ6r}i3ʝ:^]Űav-4F$} , j_'mv6>Ng#0qkp3y6BB,f(vr1@0[؉#Fı26:11a]tNjfq+}?N!C/O:Hfmm6?Fv~̙̙,;M8?Y,M+VÞh$F$Q uH Ks>1LцEw|?9 w-&in`yu{'kS' 'SCzY_nRCZB^"mm6[idWb&WEJ +רa +y"&/3-!iLoswn@8wR#bxWfQcbMh/Qi "DIP:aaC̋#zjRHc)fl8i ]^E4DY Q͑9;9_ۘ s +tmB`nqLa[7qBLGq8vH]a,L)+:Lb,6Za1 $:C NPOز + 8`, ++HPr֜!K- v3Lۣ72]Anmt#CWkmtKYDihPC '%MЗc4k.WD,b_xjf +Tm)B/_6UTݳZ✼Ԍiq:;y1K03]I)I<XroSLQEk''RCϰ'=tyIiR3J^L CE:FsS2i19B;CM><ڇͶ[n,.}mHjB XA*zXQiF m.ؗ6- bŧ 7(W+ ++J?/Y#`<Ѷ/q 1J.e9i~/{q~c_Փwu1mgwh$Qcmg0fV=ж;yr櫭/:|b6qNpem{o?DD%-MM]E,l =%ʡ팣'id3Dk`iKXĚDj"ކ[;J* + pF@~P?_ttT>Ϲ|뚟j;U Aa=m(p!AF3(Ȃ!K1zTHA(e#F3%:^c y3v,p-S?.1".x\''W{ XԜv}֔ɤf5fԥ|6o +x׬QG_Kut +dֽvd4 穹櫽vhHgMs4M-p;-He|)HP:Oۼ[0v%: 1GgZrtf;_M!r;m},We}{]$Ն om(É]n|$)Lg8L^润vkXY-/X}i]w 9$e+=$Yraj +4f + Wi!h=fhX2&O|}BB9(phVXbzZ 2]A%x"1eSo8v`oD g80`(Č9ʞkȯo +Z\iMi hM;A:~115p ,g( NHcP17!ܞFT + +O&YX ig|wA(�Xp +?Bo<:z΍soUqlRr9:TOvbK!,Ubd/+z?6n(?=׽+ s +,Q8-Wfȳloޥc4BY8B‶1r[1ltfrov+; +j_ gA^.k3S.e)!+{hÀ;Ne&;C ~%$uU=ƓO㬾ھ1& C:qq9G &Ibϥkr-Ǿf, ''_K!>HJW(|u#h Tk7kBҖ* :""unY8C:P aFBKm5DH!^I De6&:bj}c#(lHr!MᡇvXѺጋH}Z'֊ ~)ѵEmy`3F]0\r䪱ڻq`OhԭDž'Kfo7k]\րx7]iEsd] a: +ڢk[8`xAA3驈G͑HtgDD򌼅YEѶ.a ֖Z#Wk֎m άSLb}W'Ȯ$Q^X?,0O2O̳sq}dͨVf萐Z̒GvgCfuؑR#N:Bvn#3dZדpAw)3Y%?L?}Cخ?LzpFPXeB,(S,7!EfQav2VE"rVF#uREb +hJ8d4%ج( 0r|:v`sH6s.|-qw˨=z|5LJJA{x+x/LouKˉ{;n?xmx~?ߌo5wzF{PO'O\w?sb;Na?l&!km1 ;e?cZI77" A 7BJe-Уo ~Q +1c[׭e8'\2t3lyI[CWjO 3=uP#.,2$B[Kek&Hf䬂""h*%v +-] n- >!%DW~לo'NK]d +}(W8IJ,8r9{|x!9 +َE䈼?9hCtG{݀[l# <C4 ďV2P2/wLZ7yʼn]/]顺 ď!{0Ysy d#rPNcm+sp?C_]sw +ܳTo;^Mw8fc1?5 +?z?ȜT9FQ ٬&VY0DAV  8WH|X(Dzv{Z=Uۘ12E4<3.g"n`h̗N<\Y!⦓*O6`#,=b➤cPT)$"}(_5MĢ;Fcr0 $8Ce:má$蛳SHzoMt,7] "kq%7wO[m!LS(Q$ ~S~^ZQζ"D( \c2M T^^jU9Y5{Pa Qf.NL]b>&S3jEf9檵'燷An3@w9OVew!Ŷz/pĻE]TˤڙVVǣc臈3vHnX3{^EŐD]=Ugzlǐ54|Hpȍ,ydHE 8kC`AlMur6-kUŐILLþ]rqUe2sZqƝ󂩚tYKuS,2rƖ1.4){2whԚ6?$5k+Q0/e;+YK#&G9\zQj+,Sߌe 牛XZ\`k˦-zӕ\]3:mծVe\EhZݙP.]b+lL`r.r+䮗-{;9?^3c*9fwq +&(ٕAp43 +~i#ϵ9:d]k#^ o&j+j}k܈ʚVЮ6/aMLf2a5lnk[lm,w{ݕսzquiko뼴Cݔ7bk+GRtvjD[ఋLqmLEgW=sWy7SceH ÈKhKJ7EFᕝ9hF6`0ղG݈5.ȬT#xb74X_^Ez.gf hoyl,laƂ|Ҡ"T*8rN>Ĺ޵[Sz6bwO*rVz0ޜEu]FshlړG&?5KheK0}!RAIbq ph Qܡ ,bg>YXj?m4 AvfQQӚ ,oVv|$xp3m* +΂c.bjlDDŽ!¡RCёcӣ{jo`OKęp)֩ts:ՒB=xCٝ\A=E'3spvA$;OsEsY['-$OFO\NGI]װ\"F C|; =6jL7K1]D(~khjLrn]GS\D?ļ kן1Ҭ9Sf).)Up飹_{Q:aQvv v@[;׍*{7UBgnLaw +Z!FԲfśTՄQP}XIf J'K0cGNGQ_p*4-351 XP56ݝ8EX%J/i 'V /K?mGq }>ioRkkw2#xj=QSlDwDlS'yc%v_w0rz/A,B9pUmjNC o\ڞd Y dϦMbC+%uFR 9"Y+UiSRrC +gXS˝WyFےoX oS2yk }(gT5ɷK+(\\}qoBytV] 8XߓAbA*[T`sT-9l3;F t R +$.%#&pB33gЛWf NP&RŽ-JpBm-#pWXLC;>] T[Qݘz7 EBӅ,B)rI'~օ~!o7~S4~!_fdWZUHGfLZJV+dWhp"ە'W3$%o;_~%<+K"LZ]eWv[o_o龠[+ӟ3i̹ZogcN20CB?W:wٽQm.sjU9/A@ϖ0Lf{>Hl5yJu/ 91R ѷ yԂΎօ36#hfl%G,K´YV-/Y-n9g`DVs.RCtH'++z!)/THHi x +];gK@eh-O@3#]\,\]LM/d< +of ZQhK2O@v +f(ǡ 2m$>8M:v`N&]{=?E*Fb!%pEN <0#AcFD4SPtTR:+k4dgXcR4:[ga/;zdEoÜJN閚 未ѭW-qa⟈Icb̠yD@ὐ"L`-Kxӿ.`k]8Y0H.ZF5);>GjUβ!ʺtb#* +^?#0|T`k&~S k&c'a^&+e3Ub9_zWe'ivK94w91ܠ]N$~}a.=_kv,QyZx8/aǥtY"Gr. \e_BҐXAFPFbq7`^2"D"Ś9I!9VIw.LbFe YU?mh{åZ>%NИ#(B? zYi_tNiKɮ( n$&qgɍx=y~!O&i\65䒜&(4f)R;&)ڸT/x}K6޸vhrX '#)y'66"T]YY-ikBPz@ɂ&腅 4 ?akHر(踠8"xD^fӻw]ku]}1 a<ƅQ`!?HӅJx_Yk0nzɇ5NFh& tvYi-B0hV, B!^hEXϳxsEoK?a~1Bذ5^Xdq㏁=帇!?ڲEY<7TMɹW}+ 5"J*9@`Pb!NEq'Ƞmؕ&N`ʫe׎caAiBAkfF' tq"W j@S'J/i^X`V=s@V,~Ǥy sZ>13tI3br +y짭LŠ,<D}E"b!ܳKO[6svc>rZ(y}fw\{Cqƣ'-sN8J'=qQբ웄~݋,pD_tC +I'!Rs£XE. 7ڪ`7#Z)%0[tD<'ǃ);ZV0vd7fvcPf.+-I{t=O TYc:ufk/P=cړlVepObEyC]aYHZ\tZ:KDsvzAC +CwbAb0uPTζ@M1M6F]GW.O 󏟢V4x!L0aRKXUK\\rV腤-#%K%VR@*HG 2 '*K꣌횂>jK pG>Fjjv;`d$^i +[pfTHE٣=s(pEt*qDq1Rp]h,rC-rq?Ric9Y>LH~{HzR${9A,Gԭ^UAI\Ly~|@8|^>>'m#=D;hߐ\G*=#}q[Z$Z'15D1*`<&QfcWD9t"H#\'Tƨ4(QܾŚFg&Wh7!B]HC0$UDC4:Q %W8`2`: 9JIb?T9a64 }zxP (5HKit&Up1"/@H?G dϜf^9\W0,9XtW4Xt)\0./FìXaUadJÑ+ܑ+ L*qA 6SGIF0LR11Gj6PJIP #Lu=#I8X8Ig4vs8[eWtwg 7re#>4Oߘ@0Vc41hLC1263NYi#L-ha +d`[*d7k@c>D{Œ;R/^ADqtZ[IS/=PNm/Ǵ}5-[8vq'[0,KeB*mvu51hKe"e8p2[n +ҫk kLEw™:|O:KL1" +ߖ%GT僉jqV@\[VBZ^'馏cq杞`ȥH k$rSVC˺h^_o#!5⓸X@|LtͰͺfJIJ +BV-34½)frH}/*"3BlN{E}DL~lqZaW#d7D@ U[CP%qF  EE##UEWt^Ԝ![+?S윣A>WJp;`SwORS/w*&-yatHr-+BwOO +,a{;gC;CT !E߮{ ?I^'d %g?3߆͐Pׂ\6Lc%iA0xmpFyk71X0nfyy\yο<ﻫjr@䆹G {`xlY@CχO540жBPНZ)mFjua5-҅u%[+ZÂY}${iG쀶NHNkPZ67$r;zkfd. CRW5TٕdY8TM.[ +Ngm$X7#Cd: \YW0E Kgy.=4#.JI@\^=/n2R$TU ySjZKr3㣨 v$ERn\-?媰8{IY8y`Fͩp5v+۬qSއe=pFL[@]ױǶ% =r} {v/X԰7ERrPōv,mۏ'}7Ws}7júVav AJ3Tw|;+'8*A+ge:1ؚ ES/hr-VgLdaW&CKV];%ÐK2K_*S_E.*!_X.2RJ,EU46{ޔeJ_\xVٹ:.[yu%gXy,uxAťDǞ?2ȗ#Ɏ9 `Sq)0s,;3 +C),R`[֖]U7]ብdMWhd(Y^QLN}5=O7yDEx O^s:Ь8Ȋ'ƌDuY< x^k7.ۅTEː%p/!3v]H?{3$!˳c)͙`TmawR߉ D30fd+~Q d91C<C.wdpVq9hC$Ć C ږ<U0E#h;&$2 7u7Nu;qYAf +2?ic}i_܏:/Y^蟺(8{1n8gtgnfu]S 셥f`s X`6[gp b3_'eC'NNZJ J2Pte%%% Xߩ?ٔ]Q߁:T;f` +1h܍_HJH)j0wIu8ddR>B]R:EJs%s^rTIpV~%U:i6kYz^سݎcoKзH}S썊BIF/ ܛOВ'jƹWK7DhFB}B0e?7YѨ&W7_oNzD gՙWoRo*_s!`fP?*L LGh8MUY֐@e#e>HxNqu"9!*Է޹:Ʌ'$6:vA]E{:!#ļ$ł@*D! !wp\BA߈B,n.qsլU֡umMç+]5UBNv}w|BTE7`L)( 7D.ѠU@UbnTUl8IPN^nh܊fĨHγ`!+H4Ee @:p]ҡuKآUnC9m41r󉴙y#[=XTV:fIk-64.b^i!Ůl#WCZC/j͚Pm5Uf®MKɍx6k9R[ùuw uzճYzYkU!ey;[rd[lOz)7r)8o=OrP7v::(DY. EX.w5w~ayp_y|Q ?Yc{^1)E+Krd"$=/<4e'-؊h_$}䤺9@ҥ\͐6,?6g#e6њIyc3HN aIІhN40&R[Bo+kK;q͔i^* xB]mk'd3UO/$M^DŽpάs8-bt)mh%{uF [/ ^F^*ų=eOS-gtQd YO.gC4qN;=VքpܻD8'b);!KgLg20!W IO"0Bx.m@yP(;GzHo ߰y +8̼a@f{Ca͚3 UY֟l[]^lVаq؂"y=z ;w:OH aK=Okt)4'L'TlcWg+!e+|IE~"ߐmj=R(Jm҂4'QHΝ5E!"!,*I*[EGtX4n Yy j#wB#a*deǸg5 V%E-JlIN%[JuRZm9p7Un7u-zBN| -'pi.QCu1/Y>r4tXqQ:h2c1W0PDܾic0&c~Hc郉ck MckI]L[&++؛YjgT}K,er4Bct D7v*oNك@ĔLki*c8^nXXCM!0>C6g Zik7jc p9 : j TĐEIETU87u>S6o/z~σ9HQ$'\JQ/ب%D٨z`vbòdQ͑SjOa(u#ڨ}"nwpGt*r}dPJDTNDU +|xJ'ݰ7'(">du(ÈCDM}tIZZe.M(ژR9_˽~BXVQms2eC+9.$M_%ܼjsyrRbDžyU*,9tЯĕTO(— (ml䲤|y٩)\9sRRNXQսobEg}XrT gF|)j+1v1̵O%]H*Xi#1w{1wT/in֗i=F_l朼jՂAYWT>h,X$((a{jr1z4Sm1Q +EeA`=15q-ZMgO'ULUϱ95A1jxDO!DJ'7 C(a4? w(<7gR-n#Fy +7M*hJZQkF2!Ypɒl4 h7l 83][?0F&{@5U"[ZA4(OY+K|yQ$@LU<&Y}%R hSD3zJ// md|8uMVQ؍ +iJܔȧ96%s We݉9{KKlp-3=̮:rjnjX3ySe +{6N`_k:O*xreNj̞gRN4A{gg=j*}881.NOsnh' DÁ=kv| N;^_G~5Vzbn JK|嫸?qk>Jy Z2.x!|{ d2.<%g,g>ma96gw:L̟)0z^r0>l#:E0ŵjE6ۙf+[`ąQ>h R:zApixĤôaA,t!ϝ >QSu(nW5 #kmtBn0"w3bކV;vĄk@I;EҔW Uyj49Ҏ.#ķ\<"Vblu"@1ʒa6эkDfMJG,b:22a18P utq. rk%{VL|KPǎ aYn faν6 i +i /b^@ii +uΈ$$dJkŇ76ᖈ k"ju%#XX~sJćQj`A,QsW>UKK&&yKSʗжУ=WԕH=Jh/Y-jӥ1m8aUNz,&oY.^gmSZw$jnT1{KXHd}[H_7j좾TjRCPi)DXP$%h*nROŒC/93lUCj]9]\"μmN_%LWS=p|:C`* hy^gZڛtq^o6[ fb[nص94ojd^eEUm ֒Ǘn\Yk;im$\JX]YZUe4Lu@ZoP#;{T;:N3kX9X:R@Tw2t姪6?r]],<<ߛ7Ti& Q[rTaT6Ia"HI{3A}XB8|+gs׃ʶM>go:^O o~EW@WrVC~W'$0 0i=M$$%9hC=0!ۢ[w qMi t`XN֑hK2r|#9M'RR,GRsbRuƮۍN*i,_N80mԥu&ܩe)|LT2C){|M7 ZW3xwd%8%-tn ]Fu8,pRS CgC?y+m܉Їc>'9Tr4#4 К=:wJZ?$V+e-(j=>(ӛ5_Bfw{8{5aTmicv\;]=I Dsĥ*Hg$iC`1gNJdtT2AqЩjt\뿮C3|!+N:fPԡAW7v:mt<>='<}ߚ[ Ї :mB [CN?/"Dh%I&eI}_.qYmGw 2ZR/]P |ʋ,2:llql_ +h;\==[z´9VX.zA Hh[j +;Rj1T-a =q +A` Tb [b !EA6\qb0D0a魒a*6Ii+8D)4/ɟDY1LK /b+"4fLYHȍQ#&@z֔HxXgxŔq߰أ +FYȃ$S5ءEg%xU_P2B)Ґ +y(zֹT[8 +N`vPoe'6-W rlqxÒ}nv #sOA=I^a5gfo`:QȽALX{~؛C{|Tn9̝ghCۍH +ĝ&|=s3# tnhk;xCfǟ׆,[=a,.fzM~vjqZj6$WGP+ɝBROQ6'l7fne[e I[pZi~n̰Ô!)bNY>0~ +mP|ME5jU :xF=Xd7 #܉Ipedno:hk ZX^5+H67Sl +rxce"{({?oILě&0m(uo |1*=AkqbhnIWI%IZdE-G/RhgIIWs]2剅:hX0xd&ϲd0eEŭT.[cc2Q`y)"22²ݦyD}S'`eU~k;̔qmL<;Q:K77 'iai'lZf$-,Ȉд,l7Y5g0X2ȓ;ъHe/ L>Y3"/XVιM/SNΡz*%,؎rqL3äUxqeIc,G)Îx&_1 Q,9x +a-9IǛx) a8 4٦(GX38%HYQFy\,VNjt]d]mX']Rޛ zi$Ш\l~L,Vnqc\C! o\~_>wb9Jy P~c`|xSՅTvUq4q* ,rǼy:q\BJ%6TY'ș5OSV>ǫ9k)>_iN &Wn¿ \F'a6ab%1@HV5LV;GqU{w!HѢ;O'`"I0uƙ*J}WIRf p5\*aY5Y%fr%ª8`uj+Dzϡ3mM}NVZi۹Z6u/qy.ZZZsId/qH"Ř)'nGBB$\O QM7kp B}Y7⁽:|s\Ȯ)YQ-ͦpC7(7ѿ%S >VfCoTOJS]@|GuC>-W1R#zn2iZ;B˙lX˨1Ge,Re6wkƅ32pp42ٛ3ܦ`cRZVW{#pYy%(m#T5G2GUpQ rN`ʲF_YIs +7L%3R2CWYCKY*lEQoy:-4{uDQtDk?r k=y#,NC_[`˽my\>8DQPKU4]oyw!~o~yDEifD%լNȣyI2X^m4zߣ|ʁߠ߱ 2Pj6־J#_ Q@vzj]U,*ɻ0uH(D $[w"e:y2Z C}ÓfrP(1(q8n-*Zn,tno.c-٧6ȷ5[%lJg*'괓Ӹ=:tQ6%$`3׽J%FI ,HNGgW[2ORLCOlR1+XdW^ƈ#{7N=#ɾݻXd=zBf-ID;e !Ƅ,2!] |r|./F^ +})|7$kJDѡ,qNf[鋅d.,y@76 p}5^ܞ?@u] V0tN.9YZ22L.6 )q_胙["NS0%2uBiGٶiiicnkiDKUD1tkZNr6h0i+\z6X l<]l+&ɻaH[po[/XTId]Y[|-v5 qO cgBPTԀ3ta;[ Ե1tD2? I%UUAȞjS s[rF0wkCe)ڔ#\3@RUЂ>㤹^6}9ǘB&o6Ϙ{Eo^0䋎d,2o~~O:whN P0?/o9]h;~Qw70ġoQ+jN!Jܧ}z,g{ `^CuqosE@ :C yH&|d(cɀO@eNҍ%0}L(oLD~[eD>Te~l?`Rz$CAbKB`Be|f7f#bWܬWܭ^u)5RT/9V]r+^^f(v.-l2TRoY-Ɏհj/"J%1$U>/(_ZG/A_^VKc-r;.RfAb)ZjU9yfRvbQNAUի%g3bԎr6H;eZiM/:2['jc!.AXZp9dAb.aVz +zrAU#ieܮ*aۓR6~TаyaOxXǴy8gh/7 =W+WdI4"wH",go$i60.+a1MqDsOH!3i0XS.;ꌪ85\q(r^S!?v(GO7΂1|h}%DG=BL3( +Pg%},4[I@l@%%fDŽcͼ^C8[9`ύ,N􉎋 +PU5oK:u&)׽,¨mXB#j16Ƿ`0s*,UUqՌJC>6>\XOX(-@ՀIBi1~Jo|SDۜ'z%6b>~(gZo|x֪W3.DKYZu>mL .in\2M!{=IҔ +ࠐN~[d9W]},$4n3n8IBߢ+΀-O4Fwgr .wF-:Huc>Au6y٭U7rȨbh:) ~wrv¹C4|M{=>(ٝx #_Mj]V 9bJpB!}nغ9V +}{5j7l(h#ʘ,`Kz`wՒ2EBx5^%&/E7^TC,ecE2{}έ&Lm8[ձ?zraφ|x#g1 +&+1KPWfr9/~[Қ/7}5 SBʙBQ.C!01>UOG,w;\Mwvc"lcy hk;- *½xIdEk%Zvvb_.^V_ *AjekCiG(Uad*eMWy򛾱ݘ{_կBrhMp<=Z\l# ЛqsDUc gMhYdr bf {|9ԙ>齻ϧkeK +ouE} \$ Ͳ@T?M@=p2*C;]oe4 u٣Kؽ$u'~CkVy+$z(q@|5+V'˖Vp봋!'|p[=;$۶%jwdw70zw97;ZAE۰%5!!?$<թ̨lP},'簋G02dnbhz5a\[] VLvNA"Oir:y~w+iMhðϰȀpF>>Ak~C΃q-vh/%Ћgj{1)AηA}.QįMUīk1M`Z!5r ŋ1zOőX =3# ]w'bM'#ޯ SrDARg cLnHqE ]!DTDuR4X(S#yz7% 6%,m/kQm_k+dDhc_'s,Ͻs+bqjgnh`p@B;;LM%%sߓ;2)oT>!ct/!Z%Bny,s~PgC\JRw ߊq +F*ɒn\=]u@kA(jVܸOE%Op|F"u:FZ5/Rm(^yVbrX8R!/r_,[ZCad\?Oruz,p[<{*IKDku>!h]A 4hFTE=gYQFE}+E +A\Mʼnr;ƦCOI a *$nE*S/ƺSelПaTNj4ͱ՛A- y 鍎x*$8]* į?'%؂k7o?)ܮImcE(,U^bIyS +9쬝ЪU~`QDf?@}QkaUQjj8K-3ޠaa QGɣN͊yMz 5 Lq5aڌa`ړ% + Y٫Qi"Gnj-/ғH#KJ1R x@c,IN{9)ƚ/S _Y?+ 饞2l>8dݦկlGTevϴvϼ` {pggGf:Gj:Gn{G,.6D^}8CkppeOz#=TxVki_=2@@YZ7)fPgؓe}i *;XC+;[e4c&J$SIm$˪WKZ%^1fiؖ 3O,B mR#{KZ-ϡfH!͠Dl-ScH+ 0iDV/Dľ`)V=yGGmDػ ֙,v=QJKP$*+[+b'ig)0.t}DDaZ*QbI='IIǟݫ33`OYSD]t:, okz0} X + #E/dg %9 REѱrBFH%k8q7s.l(% Tl(>?v^!nJB JL!DLN$}^zȤ1²ӻMfj(f%,$|᧾BWָ7Ot"4`ȋxV14\"颁̡q66`:l?ZA,U? +S 6| [9);Y/sjy[Jde@fiU>dn Iы Ӳy`pДykŪu-I@Ve4)[)Ҁցpy)k% $AC/2,0df7[EQ/}TH1ȺIZ\K*y B`AVN`ިWVnh! :' +|#5' +IfvBqAS0\;YҘfkj_dq$/μŠS3ע=14`PtlupjC ҾFC+Œ@>J4x43Z>acs$$:ⶨ3Aj9c>3K/:+W6Ϛ2ڱ>ryR:(|W +,>|Xk_0﹐ 4X[P0H +| GʣƵXAπ:5eBP>YF4;PQ@6`ZuB&=eC7ڎrS`~')[daO.-mBo!jΟ}sn +ׯT(Q?Jb1T&[rDv޿c0RYy'2?1Qy,.őZ0#op%XfjnxlR-XN%koH1X.lXWBԗWwS6;/$.ZZK{wj)[DY2y:bf>@(lBݾ;kH&S2KWl,pЏ2 &Bqeǫe6s ,tPqpmobdXuLxˣ:iy8rANC)ckD=*56y**6%$q6 F7I$mH=ogF 53__2KmTKb)6: +^UR #^EPC L-Xz!*ʈ$#6#SOBlӣEbcR:g( xCT'|,e#gD&ЇglaViR82KpǠ:Tta NA4l,SLwjb/T5vO$zP 3K>IOCNOOY Pi b8LQOӉw8͸ vlU|{.BQ#vP.U0KqߩW-^,gH +2ZաVns^8j5iIC:[W-8z@ 52;P6Mlo0t0Y?(]q^ʲ?96Ķe0KkOZ´1J[m<°0]iIKQyD"W4mŏ he>e!rqFBL٨aKԦ nM/o:?J\QTX*i9 `-r==X禫0,˜։m`>?Jm`qvOD7ߌM(b!+pM]MZ9S'.JCu8YO^K^ynG +#e95GYlf?:Ws +,IYH1gAQC q̋/Q[='GJ%# E/Fν':]3UX+Qꄤztpjp[(C>}> uTƁE{dY2]t &Z2gxU +;0axt=_nw\J\\/|A\kц!fi6#B T){B@+>W/7(]śڅp97,m ɱrDUnp26`B) +b.wM(fٻC@6 hs϶,9a6BPs(&o4clP#.xPj-CH zqevf10T7TԖ'!WEbe'sSBo{ȵ$~exSivubv.[G?`NeI4"X:>ܸϐ^/ +!@{ XgZʙMsIKZ׈-8ۊ;҅\{Y%} T}*SpC vu}"S OU ؾrBފ|@J[I?D.ŘURF?r=!WASw;qV)Oi(=@WOEas,̤.Ώ*/PY1! LJjF里R?~,] +⏰NՁ2"<8oId2=k&َhs +$Z8cUrji;*Vrr9MӒT\@5?땔"*xfRT +0:RعJC:aؾ +eѥ|3x:3$,yd>:t0yqvR;tl^ʿpBm ں+I| Qt('R[Kjf5@涗jfs2ߎE" .^ + .߼wsG<<)QoeyP\y6 +Bۀ%1NA8gw=vq3|?MʵbMC91 1Yq@\פ!p ;ĪN7~ԂpGǤ*\D߳IyQU\ +igp.ݭ3.l $֒e[Y{T;<'#~R$?4K7Ta?M~`cm|T뒁k 2~ BA02f`BEcx>ú0elŹ,oChJ $שi iũ8C:pf+mD˖vt;2cbtNʴgxΥnKf +H8crg&%EF&RJZ&sDR1ޙ8靡di9MagZ+7dBK@7̸ԣP&fPȼ[P5O+ZoNToG3 ;9grԣ>K9[P/GoKTЏmߧ/P^g-^!\Нqِfcn[I#*^#sq@{E^.]777jœ_ѳ%1R ))2}TUZB(U!s+E_?FӰ=#հ6N®FQȧ塢XyTCfdh{V/ K*&-IJݰh;a,`/GI!%:_N||YIR<)g?rzI9>SzQ:TZ5 +T3 \Q53TmdliL1 Z>ǖgIJ;n̮~V=쭓{zc@wyldn~ +t众KИyw6zkY +u.NjUHɶ ^ +%D`: Αdmc-4`"$U)LCDHa 9-|\,+fk$H)'?'f :8\4hfV5 %PljyW63%YN"Jtƶ*4X^r;i@ Sq >c1]VBer|?5z!+(ty2)NM}`h?h6T^π>9 e L#`D#TEH 6`jj *>{SwyM@W HtJ~6lɶ9<{2>IDBTN-̏aRm:cA:p1 \>`D3ioN eQ@e*GD38F~?m.uЁpe4Lݪ bZha$m$qV/]-@? +}Ҥ-ұbE@?%-A@zO]0َ9M6tˠR?H\%S #c DlQ(3&k EJbG ĭ̔[Eo~f9 J0 p:`zh-l'[:RW B<J%rnV*5b$zʢEZ)p!>b{jў]]popy矪M'*tMՙ~J4|!»y iQ[l Q~LK[p^jsoP6v*Sʴ:N$R\Pb|{/]@姯vJ$sOIO*[W*qo<F"Skn9!y*!] +o.Os:r{w4,#"4>K|un7 '5,Ł%A%|% +aT);G{˞4CY臰أDϗɷqSXW9QĒ>A[N ?w$E4gy.vLI8nw ف«u"rrXl!A.MrPy)T⬾1`/L/,Q'_H +E9eC4v(evQt'WG?=K(K:m^WGZ|j߬tV +ݴ .sm _r<[qK|bo]xT$VO3->gN6l~;66K9Bqq +quXvQJ +mEŇNLEҁ5$'Dq$^h5i:NXs5WvxwDO >q2.:}' my xWfA݊L1i1icUv/y++$Ծyx*8!.12P^\4gN!zx~tk h*'F+~#맵,${ez(laSgyPKv߲,cxzrMF4w9wFy"CC:@ Z_"~jF|z g{CC}ȟ #uOjNO }FӂJrN +8j#R#']/tb\G G*ҳR|]z?J}p;RIwrRKE EϽJ1ŴL KTIR:֡.BfpuO045)aQY#)o;e1v+c E3QSvSsr2o`.l&ZwmQaL6]t+cȊa\ CP٠(2|{Ge3LҁlcWRiU^(riH%Vb ++|Җ!Kyu2uJs x+*B|j!:~Z99:N9qdRmT '{ Q]j'/!fK  [ڦ06v7k/b~9G<Jvp*Q ,?<z] +zy])4/ qJ~ +~'1J$;uuf.;|׸2<!F8?]4 jTѳ+J \0[ޮi>իG'3ȱ.cbw^ r(H$,uuL;ok5 - dr봹"?t6{"yIs +'q73tKar,/ +1"CS,AXe䌝iS":I(M :w@fT 3&7 13 EAW <3 HM8ACw9 buEʼCG=ws3i%<Ѝ5”sϮb&jZdPB֌?%&N9O^[M{b +I&/-naIy qa.s>؁/j骂p掠G]W % ܘB,FbZҝ-hD Fp ^!uMdi*xv?* +9;SDLarr"lm"/A#͸uחҖ] u >M-Ν .о 㞠;)"6"J4sN涐 v)/< D%`D 5qD~w;sqYJ\fsǿWq<ȈgvW36Y& ]n\ms?|XTsK$jHœ1IkWCI\n'`d<{U}IjyGX +۵]F(ӧkӈW4_i;9 CzCO{Zػ⡋',Sb\\Lg7қ஼"7,+ӽ9IӾS40N3՟Wow-nu MCض޹͑.Z[S %nbtx'#*e$J*ި jweu{wqqYbȝ ~ __9i_!k$*?f 2b+6$2_ߟ-݋sIw]cz1>@Tb1O^4 ϯwgOJ.cSa˗萳яn4ե$sh^Cاg'c)PQ+}k˘z 0Kg9̳XBNfByJ8dٕh,imb?zAmE* +L'IN]Q^Qؿ'e>Ou:XRSDښψ Z;ͼ?34#dlmEb5-]Eq!=0%7r}d}.gW?0AB= g~FS$:DfmJfY}=#~\!:PFmL|s?OR;vhJ +>`QVhL#bh-OGYS4h(E41I +DCϞ> 2[X)Q/Whȋ?bƝKϪ %,(C0A`ύAG㖷vk&i{̆_#g +ĭ& o F۪2p#x)^ȵ6}NBy +VS[+ބ ~`cp{;~=&&<-`<(esS09W16kȜ۴ka|`D%_ޛ0 ;bS@{Ty_GXkqsj>mSl}S8G r#jWϪwܰ8/ا\+J 6[q3m*>= V6,mVsq#m8GpiGqO8w7y5!74w&=i7!常njA{/,{KK>[7}P|Ís--M>&g0)y2NkCn=tBSx6N̪I]̏#g +[xas.,ϐ-5ſUŦvг>2['m\ {7~-28\jVN-$. +<`6V]Ӧt^0 ++28l=vjq۔hګ~Ft +9`j{ǖ.wl?bEM z FtLRHNhBS"b[QlC6fj.)ƜhkeQSb\E:&9Kۙ!Ȕޢ7OZ Ν>ۀē'C5&TłKuBA1H`NP(@c@pѨh*S;/0(Uvd7ER0C<ׯ 0G%L+Tۥt/,]LJHZ{ +]s Ij]-BJ-)Yj}USʫ00g u [M&p:d\!ġiiHن2 #e55]S5`5`7344HX@=HGN[FNC g gsI1CEK<ܗM7yN= E.@Bt + Cgdv4^¹s(uz١(YfB=`Ņdg';<F5VOdK3f1=DNq-Tq͜R4RHp ?^5O2O~cgf&yJ]Q0r퓵#RC=cΔ9ugFDRwND`L>uf$o{!l>_ݻӍ Qu |)ae]L5k1S:~h•E"#?9WSk}JzԨݷc R=!̧lΘWok1跟eGُqI\ޖ+xtb;wֵ`{BDnA%hFNaS'GaBg,7\ DТp67IZ!?t2xѷZMŞ3Pw)~˅\>2F B]FE●/>ƅat<3^iGZ:8 + 6+!ե#}>o5P[b5ckrd5`c5:( V@$RruHYv?DF7(] +{[p;wﵟn{l~V4X'|W7l _:lM7еnHeإM[=9|s׎CVcZj^|= 鐶6\0znS8>[#>4/& q 07H}[5; ɉE%`13졩_g8 ƸH90âWLRgChB_D([Bm=`{H" ?#DяEYe^υ:76@ɋf*_ԋW`4X=@rE \<"z $@ w?ݰ؂nq+ȇSi]v.qgMl2mF`0c9(@ fݪ=&JNcxyҀDA{};h{#6cM#6J- 蹢bnmŻ>1h#g1~j3 ^۞u=)wz: +1m|NϞȠi'a 5JðJ@ U-`\Xr,7Y߆8%z.'bAΠ{$O(kC3SH01X`UgNed5qt ~kP>L}"Gzly 4?lB>>=0evrkhg1=8t8t3t=t29t1DNFNsDL0=r677xJ XHڼ4wH߭g) d$gHpHKodgbf_ +eO ,dz;i:7ik7if=&Mz [R6;pCe'6TM?q?1??!77772alL N#̮`ǁc)(ŗzVɦzWt. +|([?*K7S8]H"u5 xM̋2G=-9֥:m~bQڈ* S }@"!q"%Js*" dԼN0{֋h "QMNWM>j+T +bI HYbf 9x?Ч!F#)eW*n Ώd?@@#v Uv@Qk'F2]۶@R:B>nUV*^ϲ1J2xrpuX¼- B?f:̖pgpwty^qx\+H+-Xqu6akѼ]O+WMFAC1Mj= Q v9-3q +Sձˍz msjڱ +:7quf"ev]uQni<&Ǔۖ*閸ǕzqY?xUMc3H_L!LEmKk.aLMCD}_t)]i%SF~dzd 43F*t>N$Cp.qj|P̣īuZ{_^S8Y@LY4]`̋n[:0*q)1J ]6*T(Txuo,t5RMhN/jCr$&=p:ȋ'Ü@/`U`Awo^qCB}G {V}f#8tg+; 3%,XCb%vQԢ1ylo U+ qyT< +ΡUm-Z?;=:bׁy]E{UA.a"3}2/몰 Ě:61yzWG G*p0`>il.gm3wBv> +젇`ѦyP*9ȃ $9 @m {x.v~ 8^&^M{Jդ41P[:NxBhhTȅ$t BdOc¿c}n78A= (ݯ7L3ōW"L+^nj0=uAD^ +CA 5c$= v>&!]Gp׉4(2O8x@Q"3__xDW|7GrRW~s 8 9jDCD.M??:!Юg'A b|\!6ً|:)u:/ܦ{cWh5Sރ=VCW}OD?F_G3~eHɷ}55Z,K.Eڵ$@o'[{;S;eC[/J2a-=L.R"HPXDȂ8DAoI&C&E5u5*!#B-PïU+V5tZЫ^w?y%->urVZV̯[~(z1ew'#d.-xZwnvuo|cITOGF +^*声 p؄"O|dkF +_F^` +߹UϞ|׽%aL<5,D}*^zj݉K.ˮh2&-=㔴~%o7QB +~.GNN4!/Wk 詤HL!ĶFSwh̲:9\wumLTYxO4lJ(9R`:'-3ūZnVSn`Wȴ8fѲ>cݫloJkXVS!4 2O/Hj.)oͲɃqXM9)_065S- +▢W5"J,ជu,tFw͓lͤ 2D'ޛFرaP^R`ǎ5]Ro?*fydƦڲ3|p$S1wܛ7YnMQH8tp&?^U,%x-khiy[p{>5 ƴSwoUrw v3 yS/:~5NW/n!]Xs}.bܴ),wmmB/{am/inu@G)noZ{wF)9/r2}.ޯ2C݂YAYa>:^M%^J,) +@HqƠ?}nLXmf{#zۤ,Й^bmZV(, QY-sSɧH Y'd>Dv&?uH.p/kZ|ĥA'tgHQ|;|M|{Pb>ᮟ'$g=0l(D4R:TE&NŬek26Vg^z ) +7dNW݇Mf<˱]?+'' ٞ`-xUnMdA{_OigZ?E iI+@)+11X-Z,"yɕ[/_9aIc•;P?vٟv̖m۶m۶m۶m۶m۶~75s̙:Iҫ;Y~ f6c|Fnt․~/Bn^Evnsi*6)vuNI k|߁}h>\zD][A ǟӽV@F߀,"ͳ]bboW!Bu&xDH`F;t.#-8"F3(L>OGu2Áj,Io%ɑXeU{jv7lC uKgdd '< ɗ{7Ds̏ܓZzOa"g(VB̒mm2fֶN"aOQPᤐUh9QFaD U4-5<Q{ES%SqP}il6+-2Iĉ]tK,G}HY]GݞduW );ב󏷛P+8wpnXX+BÖaZrem]xle}kK/S/60[63_(aʑ/}щؼq;-LkGGatp,koi 8}L4 ,"y-*qY$(P[G}}e@ /aM+ntad̕- Ҋ{4뒲qS~^VND(ox{*M6U{u|`Pw:*Ӫj-t؄k&DsE$ ӎE$|orV@W6Rύ B2f-38m팬mJAS@ݑ.".BDyX۰3g0n +CR[Z&VRq$ǻ/pU(ѓXh'i1k@Ԁ!`9a8ruM34 ,GL$uf65 !!WBPcY _tЍi$Ug +plI$ ̓Fk,?7 v@ 9W" ~Qے/Ծ}a-@{[;J^;( ē +1_0;}Q_n?o ;H}!җ?0Փh/'7VwpBE HDOi=U)dZ=UL>&7loj)lsn(h#SF >: {Q {%crDF91KRҚ1Hf{B1ajQ.)kO|†d61{d9'큾~S|='Vz#%FgIHDz-QhgmIYQrM+It+R!@g2E5ŠN +]o}CΏm__qq˂R'|0%ܶrÂx!2D tS:Q3-71@ANvg ,t|WlH*H$UX+UHDn沤x]%̔U4wE9B21bN V<␊!5ނ-% !%4 sEEAd)5TԠ ]$ { i]Uf Pnx5\7^:CqOl>'{vS”II@+6 V$֢ Y,CQxn4pt#AksW**{$WM\6V6|AզJ+scʰf]cA XUeOj@Uİ~5o}*]c]F5[GTm&J,zLOܩ~@ī'~~Bb8@|~?l":Åᡒr[DQ( 3¸AQ<"'H<21NhQBzbRg)ư^W~-G^@{Y#?OV}_hˠQI!t үHEdEEB(*EF"HF t"`7Џj>5QUΏR l)TYr x""Q1tjQXZ"5^LN/̉qCޗT' 5{|T8m#rx~ozyS|Ǔ|v z8#/ q4W6Vzoz⼛y7nT* é7:{ ~+ {ɾhM׃̣y6ݐMRBg~]NU]o㸲l qMG UG&V|A)6V\*riU=`=-{<~e L!zJEs_.KLW +R,x#$u;8!c HZhmzB%15<dx0N<]c f8 a!Hq%Dhor}P{b@Ч,;͢䪑tVR;Dw vG[y/-q{ Gshؒw$O\"d{'G<=<-#|zs(oۇ9==HŌp6Vw[p=;p#z' +~DqZq^:>ltxCq%1eAՒ9O* te>h\ltaŶ|mJ#lh1H΄5G]MmPj;P]-^swt@q/osf@toZ= XO?s'8-<-؂- UE[ű'[Zn-2n(cU֭lV2"ɗ`z/h;[![,ߚ\-xAmLsƭ%j2#xrhjΊy~AdzngnDcv+WS^!ð1ujm{ු5_,HH[_C˪Q[ FH זmmh\LNnaj+ C!,MٲOjh7od7Od6O$lBV`lBB3GT||>PBC|`Ƒ/ޱ70c0αd$,FA06h]Ɖ\> bdnA vNP6 d4.+`4A fSH64jAϮD ᢧ1=Exk=EŽ~u[{쒟˿3Y9a-8e7ogf_ٶʹ9KE 4T8\-*pd{^-j@Q]'+ ;#>ufܿ)T$0]x)N +ν`?u7EO/%B]uFy=%b!64Ճ0E=MA_5Nv +iXC"+|8e`)^"XW{DWbZy@Swc`Duz2xՃݬwU{^n4GF9Քo@'vzbO^|س>޵fW}qsmQQϻH6);rWt<$yashe,.1m5̏~oVżd}Ik|F?$t)\KJǕiL۸Kٲr +7t\-L, ]LϠ< \˶kȩ4O [\mAE6q)e\{''Ԁ 3  A<[m ˜Q{9Q*$k-bcx8*I]/b#4\K]!|qK+YPRW4otQFU; +2 sXXY\zWl+Pܘz ڙQe=i//N -ExUNX.S ˽r$rĔy荁zz Vgw#y7]W^jFd^ku3пhmJl"Z7t3 K`4էDʢ_E.<خ`8s`<-#5J F]q&iї +0!j{VZr._U#/ndu Pi_AIh&Uhm0N-`7'мuDt.) }yh'(PNhȸ#~XV_G{p `/|Sq}p?\ +;};x! VqB0¾!(̈Fu=AR9 43y1bwBEƟl}}G:CUcSK_41C|(>nFQDY+,,\ƬdG(c +#p ix0S`g@gΖ+"%:'O_HԐdG +"Q^Z߸dSJRדI]`H[Hה0vc7a,JjRrav(Ra\BEQPj8.Rgv&pNAuJ8Cbolg|n-XɡI5Z8^܃uіwlIy3t-"6ycVj_qbR&< b!ːO#}TPI~+녣tAFtC YQ+;`y%\&EGǥ'{G̀tc p=2唤 d߬tRlL?1~:9&ҿyEDzޭWn}vm:;lωuvO'(o| n*ȝ|C_^ӆ]d,_03P-/b#nԀ YK +_߈,!cCpgBPٰ|igL;" l'?ŠQ`r_B{ԹA0!TCPgeQYa"$ 4, +ZƠSdOf8枏b&be1@U>9gl=;o7 B n.ȼ<}3=ȶC4r#8Y9nl!9Ǜdst}F궁GFr~Zxc|wb~m4VֹXvJ{C?qbef<~弾~bQLF+ˑ1eD6 1 +Xj$#j UFb2.EHPhxVWxfwƺJ' KZ=]MsP ({'3 !/:Vfj0{yl1lƎ \:'½5ʙv6-ӶY'*(?a!'d&/dMEcI|Ɛ?*^{hkGLClNC{âe4+N)l!/}=Cz v{ۂNRD1b l8R +NN.뽪X5mwdU?9IIe1 +PBI`-5=Ζ p+;2ڈ CzO\.+BUfvI?O @q#dC`2^H<̱I9: Ӣ:O:h!ATn %㎢bR9 #ߢ3]lKLLLM0}=yλ~\+95\z&JUh>bJ +&DQ9l.D*VcayYaVI':OFdsV<_+/-UG4&Xq,e1`z&֫aaRLf-@P~\j0JZak+Erۡ^֫P:)$y'v2[\:곬aj[fl{"tX>"*K4E?V/yQˉ|UL hf5b\^AXzbqά q0|e@[uQLe~ 7;7.⩾X~4g%QAiӋ',"oSP(&PQɌXunޘ\SQyn_֍K3LwT0Qt#>P ĀM5 yE' %A V GL} 0hҺD{nw1x]GWmQ6d54^ˉu^p;md>#pӺaF`F6qWIZ1uj~]or3 \WsT [odm=bT-f;)B w&sF^r8.{#LZe;ʵ}s,/*6ݍkPX][5'?q!{0q|/ pӋ'6pOD;Jΐw0+_wPx=8([p6C)!> .\A_޸b䖹cH2D댡$HG_MTBB[뱻U @gr*q܊`8$Ǣ8UnLzBS# 0 #:eI1F)j7c\cHZlw䶎gy,qIu׭1N-/9$R}\i}@:B͛OCн) ]H?l.kbn2iiiՎV`=/Eܻ]է[WadM8NmDqH@DHyԆ÷SJve4&rq׋{HlPJg*bjCe7e9 Kh@ؖ? +.{H=ܑ))#NNƬdY4صfQApȏW)Wn4Ajldb$lhl|x>*~}s32di}&r! d + VVjң]F^m4Q0Ro^׷׽m+kg3$h99ϴ=>9_l`憴%Ȗ*ZkK_EҖ_ϝ6 +iAE w6LISDR 1BU뽦J &~WRѤ%~xn}4X6*,ʔ`U#>۸*"Ztjg RGT B,\K8MMtIcXeN~m;.&:jacm#?H~/<\YbWŷ"/@[ +bɱ}o:)md[FD#ByģD;mce +X*{)7fgZ'o8mio.:hHyw]Yư; {Ք=Tc-\,~E*YjcFO7}-IXw)9EY&#mRf7TYv/FfCO]U='a.~eQ|1YsdLZG(7ǦPsw`bK﶐mԩ=F4Oh4fI#]A嚕(>G/ 11v iyGm|3S,h$%[˅#Njqk[~fX_`\YHuT-x\A`do.÷M&.i ]`4U̒mp",!4EWVU%T+ _!sb]a.1;nK*&6sĠpwǟX BE&ce/9sT Μ^$dWݰ-\-b*ÄVWPEpz$ +.Vf +GSJݗRUg%tKSUV Z4ۜ&-\_E!dvcRi|R[.JŰs2hi c(b!:p@(Q"٭EdƐbQЪeVʼΑlq@IY`7J Z°vf{ W2dGbBfƘF]r,mNOn7{Eo3f4E' \Y֛ 4"cO;2LG.^R-uuw7Ye,)Éo>'NsɝTS@=* ST͝ Pv# \ݤ\oun> +/J/˒0f`bbd]!~A\b~ cG70 8!Θ_:R'75}Eb jPR({,$_0FeSpf6Ŗ'4dCƹ?rC +'e0@OrdˊC蕴O#p2ABw<զSR(H:ddN +@Mư]Y!T7QѸ@22먘nW .B'/v5g&xA<7l츽 '쏸a>wj(x*w*/hs_e)L+UyFW;0C5zKlwN8{RhPG* we2Ѹ| i@$Yvܑ Ks BɤpG7acSW$P1^"E1 :m?sY2Rk^X@@V@vuG^ +`/8kOj%#)>wtZlFzz RPdPk/KTR*Q +TK*AV,P+XUk(S1/,0 3mJRSsj4 Ĺ6mp_ҪnDa]ǎJ`1P_Ei~^i91FhQvBqR[-n1Vh+,u#`ҭKJ*JZn׃"s@sMnt}'Wӫ ;uOk޻=wk׮|/^^"=x0/UcK/ڇցeuzomZ/׶\fuB\+ʫWW.8{{zuɫWWW%K;w8#P$w5R`O:=ڻ%c*o;F T'IM %9/>wp_ɘܳ/ngrfcɭkYת$,Ⓨx5Nh~ :BEf+֍+WrŒ=3 OUj>/`J~¹/C_1~q1yCz1T[XAFXư*&,,4L M+>jm#<(m55`Q%g߲5SZXHhmfX8TrTP@R*[RuT5 g`g\Qg*YFMflgDDŽdXьC;ǘT0*4Dj:t% &Wl ;HuL1mZueY*˵nԲcU%Wn%b0u[ZxZW+Tyӵ%iu+d-*=CouPsMs WI 32Iо:[,ef$KYhS$j(ֹbZ'GaJku*Rǯ5;rG:G:?|3,nF koXގ;&?ǐ=V>"!1La9(±x% jİv-B/Y?qB8t3xMxu5w$ޭ8Dx!T@J0ZEDN{krIu|59Ȱ$Ս$Jn| {jW-[ +)\P?ڢb]Btt)we暟n;`:e~yٛ yL߄0~el⋞0q($vfYd7L̈jF!evDg$MWR )oƝY{kbkD5h^ .BҳC3~|׫pz@ߧPb=H#4q_+nX֞Q7pRtsLK}$&ѵtCa{DD[fSm3dMSjǦўLwtM'ezo,\dj*\Zu/g&Pe(y&ϯr _=|1`f_Pž\*j ى5CN˜`60 5s3Gى$;7rxzOi~~@S올}GO.c +ừ~[ϓ'W%v_Al+9}JIJ[I.5*)Μ&؞̓-.7 A}o8]{?cGF[.U]*7r:BndT:Ǡțf|wMI]GVm'RNf#E0_C5ZGR4hc@$o(L + +jW+K(L{nIL{N{5Oſ@!d{9@5ŗppR[^럯7쁫փQNt)Ѓq"g1#"|#ƣ7^z=cS޸{5ێȼ/WO?B{v߫,I/}R\QW7e΄š;YInpiR`xMR&RhڥVX$eWA5z*E/e˽T2 8&˰95b @Uˠ8"fͰo +>a:e墡ȸJ;3s Զѭy yAqMAv@m#f< I,?#,? y_BL4&9\f07@cMfeMWpFh5;&czfh^@Z27{x˗n0 厮!I_.l: Ow/u"ʥ[r߄}Kqorza oѾw_,H/}nfbC;hoϢvN.& +N.N+b,-geCRQQA$G$@`5p'Ԛ{@:OXncA8tߔ]N6|cs}~BC1t/AlQzBW|bl.}IyZk0FX0c*C!1iAA3ug)6Gx\f Ql]HZ3\]fZ6 sN ެ6[m8LM3Ydczl gL)fJ(Ҭ5l::`Y + +GbK~M-grUoZ`U@nsz.- ;KHOΪ#dZDݷ9uWwx! +X@L_9$T>-UT * +CHF2_0o9kQlao"jLSBJԙĈZ[|4i#J2ⱏ~%<)Ui+zguY&t ^A˕ lRET%^0w?EBsp6x_=.@ C%HjK/(m'h|J2@Blo5P{VX*z!4nA ] +:!r]qN9q$Wb .="2._ 8 Nޔp, E&[$ I%Vv aD9.'BwϦ]ExםUZ5HU'n_T_şM*柝gdp04!U6BZAd +^r9]j֕ +N``6tQ-Z]L"oypi'y8 +}(a;1"O&ui*KX5إ&u*iؼ +s:gb*|ڼcO}<s $s?r?Sܥ$I_r,H&qPRdc-8 C>ʟ4%m/:,S$MZ~>+ gp3Jx:5uràq""c,;5XbJSủ=ФLDAiGIIaM$+2{6C#"Y&{1!Z44R60 CQ]$V5RLkZPB oI8֒^gW5$`F%>B\VmmG :HcOdF!e;.0jm,{>WA%pxJNR`B.CځdNR7p/G{h!JԟMHR:5491!Ŧ,J3XPH WS;WF75Ms/ڧ=׫ܻ &NJ'KyYcCp%bd= f%% Zxd?|t:rXξ ~ͭ(^q1BoP<=a8ynq!X}skgk7Vf[ϭ/6Ű%9ًN9㨤!Gsx6a4>C(]>κ3r`̰ Ʋ"("hK $ +mvnsE}{bJ=dr7q웶ZSdN+f'H-MvECDg1}HO*4NPYoI4˨3Yq9ay(A 7&ءr[>PACPFE.'h {fL|kTSv cJ!Ez +TbN` @ *I0hfjf;^$}{D9u ^*+)ݎ7!E@<{ +@N-` @;!Aq NC (DLFLE碴B`%pDdDp|ĤcW n+~{fb). բB5%n\Q~B׺R{*=֖UZ  G,afiaT+A79M +xîb'gdx\a$ci= W^PAP _Uvq=N٪6-'oh)MA 1:nx2ZmqHn7yD&d3Vz&6AsgTS + !KUhU=ͤc#6 0:kvr|F yDWz=1㊊ YZqame+';e=hoV=(]Jb3vq$A7u{u[')DnVEJaݖ*%o℁QiM]8NW͠=޼%X5AImZWĐìs'7WQ '7} +8GuԈt7z"!?J8e(/qGwVYnWr/2rIJ|{:݄6ҵY)_=# F 5dW-AgTꑉޠ{䛃ϭGF>4Bp̰pkҧe.7cq7n6y=ef:O@q?Bwؤ 3oof^_Ap…sBOCh29kپ1$_Qx$ 1ȶ@<AH"GJBBo.gNhy^iW?3mY YsqRlͧ%|;(^k7SiWe_y4_M6]ao^n_'q%_/{oMʿ"3>Ʋdr?FKᢿ׈,: k̦ g#)蓾wsy/U'>1V6_LYo9բ9_Uѿ#>YjBx*Ur~* O *UgšLWY[\bWƲPŦ:&^6jNL|2gXe5k責յ5,+_uf-DmuQnsh #XeKۈVvF/6UNk,MgԦZL(FU᪘ǵƸYI 5t[=ۈ>X/ o3HT5u2Q}ҡ&k]q˥XS/J,۬53M"mƺS)3 ϭclY1Q-B,nk޻L u[K⬔MsfO> W3 kͤVƮɬE[B-T+a t9_#5_PI7Pǵ,lc+]:s\sޠ`/Qͅ5k;6nc)4{rX6ƞ=M| |to:w:F uKrεOHd1%ҰX !Kpu|!H?/i1Ris 8:k FPF#Q/ïUFUɶ,3Jt=[ڻJN-k<  CV{qrIdKyY=pmk+Ť{^MGĸ*fqnO}%iѬxpt,#8܎P`r,5KLqJ(t2`:p,|*8`>eo [k/"نpUt#Qmw9`iy ヲƫ-XŲ]Xܪy̍ukzªS):GEfQV6rF}N".9>ESYZtXkY=<& +L+ +wdX"]s)0YA$ U5s9y2nXܒ6L]XxeHWuߏY f U$Z._H\ seqJ^ΪJdT봦Ԥ宜XD\]\,6-8 l\Wv½o!8vY@tIuҦt:F UԻCg|\^Iթmw2k8 DsNeRԿ |~wT{s`+{P ^^+GS6XaՅ_(M9x$P40]x]Y{[Vysg<X\F6]-Vqrqʸ9Nė5;2_+Şl r꓌OƎ҉F-'P׋/dyB6oyg +dF!χaAע/fdnU +# +Y +t + +Mi-M6^1KzS]z;pT uFISTak)Ewlͺ6npԫnSJu>[po-VgKw̩=i!NG<@ +`=  'PD ;rtMI\⺖.ssot@s'NUc/z#*kmA`?W80Qjd( /itX#s.ɻ}V_n~Iy 4{SkG%'(Z9CD1@PŖTs֋Rp4( +Dizһd}N5 @vעz'j@DX)yS^@\@ym(To$/d;-܄ P^ߪb%# +߂7J{i/oiOon6Nc 8p\"c43;΋Ŭ@qi2?̻ ԝPuKn}e!K:~g-)D?i!`D[b?|fطfvܻ ?$?_N+uT/K7'CA$blkkl|x:@aHfhQȁU'AC78mJ[?ɒv\ܾdx"o̰[摒gH,$E+ukJ4lMe={UKu!oW ^Ѥʹ+8L>m9T~l|v6.ڽتiҁ=Q5Z +hZV!ODdJ,j̜oMK6Q8ƫUSdafB[~u(R'P 9R' +I$ŰrBjtU7Uڥ|JJ- g1d59zlc"-05{t1UTPǝBAŕnwq*l# +l^s1k WZc65ޏ֐F~~eN{_Of4fS5 v_iw[&mZs@'R&4`AmJ߈X֍"mXXwm}@/#׋2jQSM)T!H\!#z#qs? t~DwH|8< !؟AGm}i!~k}=R|$!=|$##CG'+HX5xtN5|}8C+eNN ҅N+BanoɱO_s.-^fe^~ +/_*A)C$=@οD;:=RO@ isH01僾#44Ws.IsU?^Ʈw똏"$$̠U;|$57%քLu*mE̲fQ,o.)tH|aӉ$8ڢGX}Jöİ٠.؜S?_>i nכR ܜzSUo/VRxKߊ} +a6Hk<*\Jlc_)ra69K +*3lJ3mjs*~yX!Yꇏ̷VT *du>ᕱBM+xnKæ4Ti\g''}v`4'*'l?`WѬ?=;X"=)QMjy=R;)o=5Doء%B u!a'&5W14Ί>|k0n`?$L/'S#OxH9 O҄^yrZh Z]QF8:5O}"ӨhXgʏBʐTq$gW_r8m=Wa-/o1~gq*SkR\8W!O؀B,<?܅v O)fKu:)VOoǣ%)>[́ЦhE F;br痞i;t7%_GڴT#}1K[R^[ppήCWI* -q/)E'[8puiw3_F*JsUkzs"ͻz-cTnK|Z_r,BūaiimŇabX*&&%>x(1l_w_H9?rvLILM\._ G@̽E~GyK45GP,=J)v8顲7,/- #ShcfA(4$ 9#Nf]fhdt1" miU*ef)Ħ&LU"5[lXgz|{ݶz eQ1 Az\xh<~p gmϨ=9>kp w xǟFG4?UO٭ϼ Gl? |. +T=cS{+O.?O0?%V/2ɲ?< vdiIwo +f܆rV + 5G0%9 $#ɽGF_wX۠r?sJ1b8XJ7WbZ^8nښ+Ys-h[F5q]$hX\/_մ}#m\4j{r}4Oo[Jde󳩲$MTxnSy!MRIQ`zMMZ9g]W ޛyڌ{SD>>/Sr&Yv2bjz3VlV ̌@) tpNm>iPC>!GeÿN?d}{?V}q(dhulڝ (IthC P3"E8;xFBBñVhd5 DQR'JQByN2{x q9w)ڢjӎ0--kZ/Vi.5:i3Ď +,8R\nSz;f=@Tvĸ4Y{'\ѥ~vQ@t: Yk1qdJ),lxӂ@de%"ŝk|iBݹT jٮLoy~\u!cӄNU.5,ovh?1[yTCudwC久‹2]L +*hth]-Wӻ)_Ne};?;c7 > hu0 Gݞ)7(nev._Ra 3ᐧGto;eB^xCz|31XLO4-/4/.WÊ+l/,!gxD;:L՟R>A~H<hӎPŘ厨s`9jAM{#82Ku6n}Tg@j2 CX/xh\Mi~s4TCV>?4PXΗkCR2Fxډc?h0qآjT X~i>T7g$h(ԞƂ*Ef¾d~39#Eu ћ&CBTSRygԪF@&^p#v F;xUU-0 N>h+2!b@ {QOϪS#5BJ&OFkfU(QD_ Ac*{`T7I睥ZIi a̢<ɯ/_+#hI_VuDW})njpi8nUx>X_/k!O/m2aW/u4_&4?X:\#tɏu}OQ!OҲі6r]t|[9ay,C cSͦ u aHlv k!{)l3a9ی G}t3vڰ<߃3Qᛪ1RG1R1R1Rc U]T\tlO߫rE-a0S)T{)rDz`;EeBM+|E@\ʰQto]HVQo4Oj* +z 883"=T֪ԪŲՂj|n҈jxx +BiQJ(Ї[s"*ZmK{?y<?hv;-VS\۞]ehə!.F1v(:L5*<{_ ؚ1ic(gvyӲYF!oj\)t.v䎮BFv3A!ނi5kc%y5>/na9-giW EO!;~baUh) +ڱ +l~Š?ذHx9U_h˾jZ¡5#ή Bk ZpAM!d/jޥyQ-Ӡ1m0I?é;ujY֧7PzSW[6BWiǙ^ٙzOWoj{i4mX؟!cx;уYJ{coTFlxmu; +xcد[o?R Js:o{ȷ#O.JsKn9TyY[u}n疯[+ν9 $;8EN1:^9Q%cGbߛD7gwu*X|[֍ {ă9MwTSו) S;%" o_72 h;d`aiU ՄQg|D +^'!2(/ FT@M (UYneڦekUa@mt؊=6e[^iu|,޷XՎd9džE/($ Y0C!  G! Ѐlp$ G!ڀm'$Gd0 #ʀp(2ЂHCfAfA! ՀR[{d " G|A!#( B@C!̀v0b 9G!Р89w& Cf"kMx)d=$Y1Qk9rpT\(qٚVJ&71Q߾=bxoU$$ܐ +G8Wn8{K1=%%qu+Oc:,@}BuD]W+hf*|Ң](~Disʲ{ݭE7nLe|̻đ~|3tfLrT*pل8'&\rR>tK{K8aɸBpJ~oX$&M,Nx#"d6W$fqtxoLfH' +Eоte08A7BEf7KEzҊtTE 6#;It#n8I%we;BE*rtY2"v.BXۋ| .ژ7l3e6)Ƒo5祮W:V +7wWqt F?&A4ё3fف|֓4z)!kKlc>ř +BI SI(a;?}>(8hJeMƙ版w6-7& "@ 'WooDP͞mAZq'&S8Ƃك C$gfiN F*^z3NC8Kx1#,@a&Aȣ +.$J.66+pVSln~Sa/!eݡxj BŔt1ƾjJMiq5m˓y 8)R-B`5ӵE1*䲥)c!V&ڱ4q/B@K'zIBvG~tu +?)UOtv+dtB[3MuaDY##V@tZ^4fYEL9H4I'.8Ԋlr`mY=XZ؝^I+)5?IW5=ױBic*$[HiS\CU|w$%"Fh+m[Qa4+(G|5}!1J 8?_Z]dÞ,E[Hx-En:BaڔgV(s_ΉA3%uӛ[()B]|Ǹ'3?w jLfM}_#YveWc70آ>|Z(5BA4k#ϻq<%`mVECX6a`֋`e ).uܯ9"m9>^=B^=`|1ΟruDYX C ]0o`C o;b`CBX T Z4#gB9u"쳠i;O]5*~ȹ|LeU9xGZkrB1tm瓭}EQk4N~z򩄀cS,!&ʹjW<# +]0yMc +0'YJBW/CkYBg2Y-3*2ҥ+Ѕe!I=RHSNj!cTȡ'Nx*Ҋ@K bݞ`%m^zql~2̩$̵KI"MeLpd %RUE"莨(ЁuWPK $`fIR2d M{~P8GB |)òeQ˞=C9A9(0'Ģ@BVQ9uVc)NB+ͧ[w!6<0SNi%EҢв'ZZ0\RKYͤܲ~n)MQd +AzMɺԻ^TmKgJ_KSeClHCt1Lm&.ƔNj>QpjY-]^ NK`%CBwCXתY/=[Ybыt|Wg牟g\\t>ҽ?l?ru"el)[w L?,*9=qr ޥI6fN '@υ?f7p +9q +fO*91IpMN 7v +blƯݛ tнǺwZe.3 9so9Y0wgU. v}<ހ,pʗhĺͷV?˽ ޷WTL\6WTWzz_ J L_59*v-޸{.[Kʗ^ t,@m}3դ2@tH&|R1S>L1%I2 dd0/pB<# /P]Tv%ݮ ]Fg-rfMR_‘V +J{S5o[mŽ9aƟ)P%_456)cR+Ւl]rO+/UלTOo PqwCo::XnF` +A Kg{s'CIg!=TV7}﹚1eְw +#MI$$BFn + +JEh%7P YRAYlk_\/m}sDysw}ے/aPI&0 +hu&JVLS<2}"ѱ8.g{DKB@ĖH:ɔHVa'y?~w{zdX;y 5-TOAqbt ɔL@Y['qDiN9uR icѭGt-ҤGm,a)Rph\8aƟ-T--2lKx8\-q Y{CO)$P(m۶m۶m۶m۶m۶nfNͽ5wVVJ'Tuy^2{'D$ۢD8Cܱ{8'l*[cyݗ"} _1i"cwɓݲ{&lX;S%9\|k-j<n>E5`.>NFd%yTmxe[M+Т6=`'Je+r[- mn6VK#ƱFG'^5D{̥mr3ZZFԊ:=sOX*X4:lHϕjs;׍-9cij0VU\jB=uk,9pb9HM[Vel +&Ѓe$/GJ.N]EB:Fpƫ@"º +zZfԧ%T(NY]婳 *֏lۜӢ3nq9Z] +j1egFBŔmBh/lo*gb>c[E,\~V<1WFfcZVa1fr>Ej֕vAmp@eXV"sLݑ#κƴY)mD1ho4V!k@fZ pƥ 3gSuJJ5Ʒ*6NuA'B uuƞ~,&bW;6Ȼh/R/A9pፆa$.eZ+Zm (m bubQB?,t~ZgFF4 UIZ#5mi^'%f:spb%GZ𬕐y!U@w#{njAlHDxæ*R$\b=}|p#1]7C9mukO6!)Sh29Wd16N@mcP><1Uihgr(X@֕Ujid*ή:ʲLH8@rz^J,Ƕ֍zdh΢.NĪ:d*6{H鹺hVXTԭcFJ 0.]`$KfΞNL Fڃw4J~?79WFNѭ,3n7GiZbTUo JKɴ*կ"uRd<3QMMC5uoBZ"A`0b.p*礪T}8ܯKYWS0ͣJgu,h4F\uQI'mtjhĵ8N62r6uߴ= 4t3tmE;T#cZ!EiU3$cBMek֖$N0ЋW#iҖڢ`Hy+~ +ՀkrjdC.$qӻL7I9#$Dli|\̭ f=q4KiW[C<3-̯cEkF +"cc[]i]C0ۋ"9*lǺ-ǃW +g]rQK+X%%+P#O#Q#ᅃIQKH ɒN4EϣNGP]赹2TdYIJ.BFPʼiA+]h$e&?0aOg!L4I'-3'A>ܿYOA?\O؃qO)9N?wQOAyA/yo'ʼn6/8vi {VWHO? '^~6ď>OaCA>i ~X? A>$?Sޭ5毴v-qYJԕT,`0&4{'<0L\2tk6b.>1YZoC5,l<.t|'UMPr +Gz=8ðsi4wA0R+jZ\XO*Inʢd<3`*eysYdAƆFF 1) lGT9K5>}D+80$n0G*_H>䡫0|"m*cZg\l194N {h=״L3qw܍k NTUģI_ag# 1pKKxRʄuI+'(kƊS+SfkgM|z;3O| ]ހTGra|B \zG]wC +nĦ97X)-^8Ħ/=-S$Mt j=Oѩ>ƷER>"j |DZFvj 1!Gnn0¨,p%_XShW+(z]^ǵӅ.gL֊%oXvsMtS ՅQ ՅK7ܷfne;էp:O%/51B#kvGܦ}#4ٱy +Yd,布fҎKCE?jk'~i'K+o75ߥ'_I ƾNw,X)(ܻzd +Q\JGf1JxnHmI RY .6 R"ZL6\)ҨJzs6<\LjyΧh[qs]@a@Dž Y)˳ZԕS2G +fe9̴~'i{kfR6xflrc^pzC('#`KJUw S#CDKk (q)6ydg$'>T}2NlPe R/ﰸ#VZUY1>y,$pL6$*#OnΡ˒Ҫ -Hi5h82w}oJynq_i5󥍎J/ח׀H[$t^ovSvIC4 Ebܕ"Un!vͫpdjrs0Pmu=yMK_dh-sB՝BN8XNӔ\ &^#1Y0$ۢXI #;@ LdsvEYjfWcx? lvU4rd%e+{=Ht>_K7r7{hA7d*I(;CRC@;Ľ2x 2<;@0_&}q7xi=57Jѫ%#j&H5܋3)ޟTob3b*Fs nr{SJ:=4L +="e FJ1HE{HnqRWTUSFN&^]"}I!FbJZAo 5 Ð7QC;e,x}Qn}wi m€GJ=Mw>EQ@Eszmw݆&*ǥ@f +ذ BIt xt p[0_->x 5 ^*aUilx}*$?s.ތ4$Dp>a,ЃxK. OK2 8sc. գ9Oš󲸄~{B1وN le))ute|p*Ytg-&6@[ VJI0uenujp;5R}jci2]|)bQkBiԼgTS9)X݉)q +#)ZHg*zۃ.RO6!qu9(Ʃ,~‰`npiEzK67XӐe  WDZ뫛wDtK2ʹ6]OtuTM8<[BlZ +PЧ`#aۖYENyDV +oֶS/N=T +x2b>uOASI8DÉ\01y:2 Rb/z#F-BDǁI#BAj1<(U`)a.R%"x_;C@rhx#.Dl,_،npj.l[>dintkޓ=on\kC7~GpqAFm^6Fߨ! 0 x  ` %S/N?ܨV~ +O yCl%6L =!_ܰD6 ս!G7@Ҽ!'7 yCp+7@ް7 ɽ @(Ghx]Dd#{)ÁN;V R ­b{]?RKP-CPlQ-^u钛-^*5[NSq^NF:` ^{`zj^ݓkx=[7z`x ^{?l^M_yoYxCBy; T=`y7p}i?`Vn!`xj6߸I=d(`=fzd̀ukkWV,p\(\0\8\@QuUhZ_oe[3`Y~ϓ~0=xyYPmxC_aZ8x6./B)y6/m^]6_5V -@Z965@s s@mtZց5-k!k"j... -~ܫ|KޅO޹59tmހZ#ܑ5xe^ڧV {k'xmk^[kx[?xmom#i{mlZ{;P["0'sz5D`^?2@;si͂>mB}L~. pr.ӱU2u_?ˤq|eM_^Tr$ vQ "Ml +5fspPmXU:b$z^QsZMxeOQ GKVi*ߣ>_nzϵ_`WvӢ+^{u ['*_ ~o0WTbZoSXI .xEWY6ƃ~55h͒L/!E;^y,Ur "\_6#\\"W^5պQJi3-!7B&LI]0+eJw2O}Y'PR+7,INK~86CҢP $ћ5 +jh7]RQ\}K=lF1eIt+̤R[@8AhH&]$ڔkGׇ 'r~wP&~@HLBLv_\a;r9F6"nT:CiE"c1Mǝ꺡 3L- ߾"֧vei$l.7n1 -%qE;UE[6uKK[ز hvlZw~-}5ڡy0^C<5˄Wםq;f}P)=Į6РpxPŝ߫A/Lz*1YwG Uw[JBAZkWvdd'б&0$Xpg"}IMJ %L!f>}x%8GØ]H*J$|Ab\0c |n63"9I~[sJriugJk 7՟.`o3MD~}F#*չ֑ElQO .nA022q<~)Yw"XV'DhaG̼}ħ%:@5b<%OtHJH?'D2l9| i +*l|d-766qIhHfES +Od0vTLubf\YlD}1I"g5,谚T#M!5 u5/t\gBE ͹-zfɰRRjy)\8 +b*x$%ZM2l Y[ܩEq/3fzܒʭsᯨ3 ex__fw./Rٯ8_9ye- wD e}|*r8#@/(E¿dϔWjjiY/Nk=K#߅S`b'TۈY6ڀA9,x^EavCI\ +sTȾT&_ `? Vq2UIr67ꯡ'WZM]WeBS/bU +!z3ǮJ }R./X|9W//t|Iu+e/Vt_W[$֗zsVK[ {c=V)午1 h\!_" &#}K(^; T[n^F=Th{bxBDx ODp#L Ɖqd8͑bM;i*rS hk+9.},Xg;wCq㙂U^ Doۨl]FMc}yd*B5#ߕj M Q.ݬ`j[f:xSdU| v}(2-ahCB!Dq4.|gu?` rЮFB(/ !%׏,uDU/ Z Ra_^)Uz_nS_rRnQ˲[y_b؄nI/]Qi͠f #Q~껣?ISO.VEubE.HݯL">Ց(UB.!(5\60I5@OJ_!УG_GĆne>`K .HXR[4`B7zʀ1GIg8} v(r=$ %;_I7RDk +&|λYMw62``j_ԝk| a2 NM @Lk >E>_Ÿq3cNM?w!/-{yI;kӭު&tqpW, ɳMxt˂#q|pѢP\cfȢ̴DIcpsǎZE1/TzWVf%v1xb^r `Nsa|P09ݥ8Xr#3Uq{AtLagkݍx3gc;;wW/T*H f`.pt +r7 ^|P ?X 5h%/CTJқ"%1GTqv%ZJ#Qց?{7:p5 0ٙ>nD~oQ3ARSPQPYTidSgv\zViBG˪O +uKP*OM/rٸ%d _s2rt$dr]1?_'E!.Je-l5 z<\0 !. ,H6PF: rY;a>_n4F] D &l+_]fFs,'J[,#T&- +Jn(k=TuEmf@Ul/k57!5G߈N,r i˱JrEc*VbqlhEaYe3 ؖLZV-:[Ƙ:1Y >t9Ֆaz kKb"F:0!}ltz՝a1քU,kŁ v'^,q|>Dz|iNzEf'gDB$꒏_X +A=G})D){N"˝xfx˸iÁ_ɈĹ`A(99$ja(I03ݟ|I̺ǠOsʄS +/3W@fӻM~'w;,ˮ#M($ӶYFً-2V)|6f$4I8Ib^ZlϞ;^i^j!`jY r^,"Fw貍IlܛZ>=G|pɵ$(=nk1hDW1tZ6#) 5G`qp6F,ŠCp)*y(fIK鴬 /R][*zKuDuO;!Rlyh'n g@)U%:iMtu]-rMXƧJ!H1pN `^fIC}p0>/dLw5*L_ޱ:=Z[/.M1Q)>Ɔ[<2b/˲-3rzUŒ[&>b{WnziŚ[>܎E'|_Z zڱc/nc/Yy= o_Џ`|q cw?Rc;'> < ~gbNM:c=%{vW>y |.3f3 e)ԧd>s{'x 2DRi ;z/ɋY{fUv7Ud%ٞDSQf8#|@bRFc9-=N$ᆦ,X2 5xnyX+6IOۿ"{gIxՀh嚜'kº&4|R<@e@#3$ +{@kRR:t>pXTY{y.R 4ӹDA腷.f]ѻ}aVİt4 9 Qd +fϨpI ،ifK1{+qxeW*̔G5#Tu:Q2H[qfetiBWHLI@b _b=t c_{=2+}|iⵔ+1|c-_ t>3;rFSj,Dg<y63j1ș s7{!lO{V98mI#.m 4gE_WB]VdN?.V.-wi"y"5޽KߌKg_o"x +Ɣo"H[ eys(ul$w\昔" ?U ;U*sz7*%7P> @fH Kpe(;a~?N N^( R*$!Lz j"B j EQ D~ m=6?J۝!T>a|cv>$|'=/uY`,׬~~ֈ{v< 3VP'Guh_PR^}:N::wQ zPq^$BJG֍3>y0lxpod9>S[gL$mu&zm6+„Fu-O1Z2n*܈< ܢ>>t+zY +e%mږ2Ae6ں, %) 5w8޲>VVvre835smim6W߁.plm,nknLx[µxxE$k(|Awԣ/b9psm`2;aR;aRF™#HY#ܴql,̌&oki!HQ.RG(;eeͥ ++UN@XtRV߄bVN8N=juN8ԃ(2 .o_/Z7dT \Ba-8:7bѨݺf-T'r9.Bd#;wy¾n;#U|R'IHL S_BK0`xP%%EKg\ȓN*4i7cTB#_S EތrkT EW]DiŅp_Z|ѱcpsн0{ _?sJV]tn sz8ꡭGW'_6FRn,*:k0.(m Uy0|NѭbOb+hnIrjC*.z8ʡ)bh[>TUQ`8ԟco$yd + +FPU<Ћ`>,}١j lf[Rеp ;JM/ z,4q#yY_gcm+}kߓU 0Nʒ[Or3ib_KW[_s/pUb!,8?aGeY+HX;4]ej,lMz:H/L!hMJ6 Ġ^d1;8w"~9y|gs;_47z :;ʭ/O!oܥoYiemc`8cU)XRޞ%k[{kz7938Ѳn5DhKDGVS +K v7scYX0MJ]!L5<ڜqykt狟 /J#q%qud'%hnOZb{ݕEPQMƣCH2(_(,0,OFrt|.tD](hӼ,ΈਿҤtbءr+H8ƠT֬ߣ3  bVtԂ$AuTuR)ru_PZ0t|ʽ礄<CŦ4.Xoj$F!S 5/zR < 6]ӓM1Afo>~ڹl[/ + rs+^+QmATV_63[z^A}kF_7 ߾d@roٞFY+rb|~~8ׅĈ̷kG1܀Dj$iR1!zxn›g x+Fg +h-憿Emuz{EF}|vVq^-Ʈ-Y63W)|_]7?}:s]?C^t^[8Yf0?C-L,,d߲;Ў=׎}K۵{s82O@?"2BjCF:W\77n< yw<LRA!|wnl.ߚݷ{KK`.㏽kvnWҽf..~')Ι鰑1s".b\w|F2UydiI%sGNV5V5EL譇;/-6嚽é@R|նbBGgE[Ýo<`- l }(x:x!f86ÐxRsR21l?QJcS +#׺<"NA_f0gW pEb(L36] 7wG)t) _y^ވ$OtG;pC"qoqr=U c`|:7|.n؁PN0qp^'Nxdsg=:Vxk2HpD$ng _Zb^+ DHa#&^wΡ&1يGe̫" FOwReb,:uv^C'_S*tYL)кhCn!7X"-|,S("HѾ!xkK%&Llq3a,MG&qG(rg*#.[ݙ[ވkkFV|&u=x^ L +<ߗ; ^YW'Onέ^4)܉;z;= 2savn7BHtF/B3ww:]ɱKusGܺ*g|o<HطIF1GvR5mƒ1ڍZb(]rmOC 9dOY%PW#7;˽ÅnaCW,>,ܾ{ؾL}`* F!N!r+%8N9qީS;E2Al,E)l*"lH"lH26rTbcp]ӠTGR؊VZk q)hJb']q;,Z;3bi.ձ2ƤwEnYR!Ǝ)Q1ɀpJQ%vH(\y0`e MZRfPs a N5iX͍k;{aӲTAfeZ>MQڈeg 7f]T[2&hF)9&4F>>]tMry3l*Vֹ +X"]i"O#LAqMi'}G.FˆBKV(c7atm1t7e3TowmÑ|~Y[jՒZ];'@F&XJL3մ , +-vFo8@:{zl Г,ȣB UᑀKlJ4ীGZ/7ᷯeuڞݓFpڜ@"&>"22lriT6aiPM6?MI((7@#lڑoK/#4ʳ@o˰n90Ҳ gonBy%BoٓK ?0l?wNP?h~ _0!l쌕^ѯw\Ro::n qIWWDPC =ņl#"X[?Ԁг>"ٌp=RG6tuRNjC8}8!XrNCtN55B+50 p6s =A`6gZ>ǀ6NDP >XG:09݃Z н/0#'G +=S{^$^| 595@Rt}^xh٫Aݎ[-\,1 P/iFXiVW9"5 kEڹ"2r P͠wTL23dpe!Po/ͨva#]9{qQI?-)?ABy(MqS}FhI&+#L5 #L;cJzd#Mj{_ ?pby~ĮXP឵';HpQ)ly~]Z/o(BXߔRh^iiV#L&6F̤"TT-P+PGZT2jzejr4{0_h^RS"BI\s}F٘_$7_;%N5?-t|TޔUP(B*aj5֢=@-EMk{) ll뢥_Oy5æ*C9 +UL*)o/gQ*m8[hitXwg]8]n.|p*(OBq_ٖ2BᖡX˸UT' (" (}$Td ,KSIj/]% ΌP\W?s /D ٦#8,.s\BLyu32((搥ǝIDC'#X4 #]^a(0MVY']Nѹ'/"^/< [Uo'8_k)IdgNl6Ӧ PŶGlSp'>SռoqO~c'Ät(&F :S)EJQN1b@S#N=#YMz$#pNq)LT'.N=)Sd" mRwpR}ˣ+r1< (B" B}1u.5e(X2pN mit[A(FFHo6f{`5o KjB4}(ad`?u-n F2%td Y7HM tc,ф6h&Q(!d2ɔQLd,Be1%&&r`I_]$]D]?P<-P1'w|3d[~W@$G Oo,~ޣ;d}gh̷\ +I6  3ca05W c "%Tq|шX{0b8Gӻԯhwu ;%;ib"IF<}xnjs:]y!8演X1=Ϧ41SccI=>}_Uƭ 5,i &=8V=V97۱;w3gsl}IP=;l0ϊ7}tWk-u]7E:uAsW/\菂\NO\'/ҟڞmyM54b<.cB@T޳bf4QmFcAg ,[Z ȦG؞5yfL*dFѻ3 ]CR(! *!-Þ`NC2BBQfD&GU +L(0PV[N**h=0u [fO8̜p9013SKC@l[%Ϙj1V}M2#?&~&/j&C"N^Q'FĞ<"O^ѧnip{WoSG5~ԗf$_ +q|F5¡$H+=C0hTSEg,B3 g'+3.-X@OR]30 O]30=yY <6"KgRmܟ{dZnw\OxzG%gn';pܞ]}6GgDK=3WNIlɳcN}.#I'bC:v{gx; 0˖dV 8 Ԣ83{"X^!u ٲO*0J"w!Zwp@: zQhӨވ½+p30(.HiqEgt.,֝t, cݑ%i~hut;1;̽EtIjt.>nש/akS֤ngiF׼nu^?;N.W^ZoHP-w ]ꅮ_zkZZx} tGM?s$9,g?$ UF}Oy?IVy}E>&Q 1HN@7@=i5ɺo}w ;܉0>G+ug))'&_ZKYGT ztvvt<4K8:y^l-/K} AL(k '61/0>~y“G6=z7 F$VSiz&J0: ˧6VpFMdNTzXP+Srm?BB4f4СHјSV oނKum߁>ˀ1n!4j7.+~AW˻1RKf eH55_q$0!>qEgN/KQa̜Օ Tj4dV1{Nt %’4Xsi2 +f6h%U9=Εumpz\)q2Xṕ[8\:JBm:4eKY 9ChL DNc1z/~S-ZlZMFo[ Tq-qnXDლ5tR4Ea壄5;a 󕢽'AxenELR|vpbGY j an\I6^^ݽFc>2IN'3VėiQ]쿗1J~z."w ,<#q{Eq_d(ȸODԨ|.;f9]NfRcutcOINzJt"*nF`A~>2zCsxlC'V֚7]AKXm_>Ѵ}a+t QrX":,H6KS$c$s%pdܙ7FMvkh=`O;Ճd̜#'2qLp^/%[oQ2 +fzW+^$BU_\>z?]3rh~ytiL*[H#m~J):U9d"ӜF5,(皿X78/{:Q+J ԐArmYǒp!ݖ f66 g_?ͲaKݦ99va۲a[4 i\1c9?XO]$q??u'*ƕ!S./]},6L8c1LQ60*fndrd0-fpdvx@5etxf<%_Ԣ5(,LL21p4CNDN je@峿&}c e[8m3&xHn@- 9G(,xT-qG24caEz͓-)s*;xWb t]ƥƜ,_Z^b5 9$ s$1\QGV(/Y"ąPy + /j 9 ",}"'Xdyy +!ZF&En+}PC%F%>ŽeU}|ș@V2j@}&qvEd{&dpZrt<HܧR8zS̋&Y/;~p$5gi';'b6~/ƾ^3OOP*2ʁ!gȋ$3'?<0hlrlX-C~0RakC= >VbX*D9жё~uoA`f3 B +0c nCԗaʃ1anv5u5f[hC}WMexOl}"=V;V%=F׻V-~iUո8VҷNn}|5(ŵηu^&q@'YW<"zAZd=PȈa2N" ^}#L=^(C:#*cKZ3px摷1#"{y4OszOBOp`~##دTOd?"tȣ"(wз R?Q^v̾XԞq]6_7' sǙ0^:;t~W!C؏/Tu; Om3 D(sZ4wc9#dJt*׌MLX!&ԅ&$!>@@-֦+ʫ";weu'"Z /h^HMΪy7n(Ld9j/jIKJYazeںĴuM{Bf tLqz NS* ŽBՉ@gG@L (Ra]ʀ])E)R)UbtHۂԙR?i/oZ#T]H=)I߮q_ﰏ$+17 sӓ^ou8)<L$:|<{B/֑Ph.;ў-^}C&^m~HSlu}S7R]8)]错Bة؅Be^)U.C{&}k9yc $7%q %Vp|wF5$44wjxڙ +`A +"G L{rh)UJ.VPP^iuWjok%'kNzYw{=v `"?7D嘜@ѹLy8ބ3:?pl߸Aj"0a3o؍6G|s<ӱGa"1GS}o+hO @SABP}䧆$'gͺ%(*B>6Ydic{!a4GQ!iwc˅Eɏ!y2;qW_ȑL5=!Dss%p!&{b|Pq7PsxZu_ׯ'CU {q5m蹗|DH\Ŷ6$.poWa)~~L8ҶK^L!bœPsX:SԦrӲqWdE])&L Cͻ=1m׮a:ƗdI(4PSX,E4@3RahY qw9d[Ok%1ɾ㺈Ebm͙jDF.9@b%y-ƥ6pj`[*d:nbx/,dkB Hj'˙>#ͦ]b7BWL#Yo|Q~|\.dLUj=CtXS&s{a/dln}f`;5yZ/B, _P9*=[E9nnv7jky"y׃-Yg${SaG=' y<adG?HFqgW8|tcoÞX^Лc""%$iMjBðnaa~G8W{j=ćMm?{)(`0eSg(Yڋ.+=J0ZhȘÅn?Scs +JIk +NR9 }6DqQض\3jgԬ3JÇ~y YP;2j SYV_ 7ݺ0_)rhҺpMvղ`zi +&knPapJnT3AS_= W\U;hMeW΄N쓌3iێ:gHOre1pi #ͧhb~U/.?F("!YMFqX|גu?(I_„r<~xÔK2K9|28jcPSwOգ f,`Cq`në47ӕ +1ҳݓ*%v")݈De3:QZHAΏ⢸m@堞VqN,1 ` ujGTqL d3Gz3DN`Tѓ3zYؔ! ҭrlEg 4c9VeTH.QzOgˮȵ6kn\uͬa31l۝j"=¯, fsWt3k];WBW{1AQ5>+<ۦݳ>Q;'Mָp9<W"aꆹ08*yKb̞vVt3+7{#NNO1{В%Kc eFV~X/ia>1v1L/#=qqLP,}`J.d;MSGǼv,d\LM- o'xНc=T!xkp \)S̴ͣSRVŒޅ*(E[ +n#e+b_BDOtߚSs}j +<'؉ ulom مk*1marܢ05GU)X{&^{aaF̾e?,z MTAn줣Y]DYՖomaw;PZ4`WV.n^ap>t:s`TޅcQS'RE^q[~ؙһSUC;CDqU$s΅H*%1K`Ow$i%C@"K@j!];Hf//&Z{[`о[W7mh0ssQg.[acpF!)I6]ۭIYͽcu0AJ3_ +q\q]7cX昵μʫQv㊯V QGT7t^-!˦ې2YIݱ6TMiltU'ނOZMa12jI[0U&3g\55f?0mOՅlF>@0=rPYp IgY:BQ앫9쯞/r22Xƭ'K/u2FwXiCarf93#/A 2v K i)[3\I<vꑞoPܧaAS1c]ime7m\!ⓥD)Ϭy0Qs6$h#+먋΄|T ZXiMPxVON俏?O + +Nd+x:Zo}TZGO70HT{W:Z`\Vx7Ƿc7 +߀c}0N*Պ:2rL=,Xb|ygs&'FpXotF_"!-QN̨͖ ?dwe#sV;% n(V~h-ri[6Hk<1Q0o4!fwhWWE'u.ƹY"+[`6s mvţP\`9lL\fj -* v'C+ϞwGX;wm"UZvVIbSwiDWa%&W,pl^/HuvrJSP15(ŋx0q+m5ɏiѕ˔[Ɓ*MXKĤlN29K{}Q%op?xwE5\33aߦBᦚe) ç SobiX8@zoASgtoK$oH^"oBԛbvP%eAxi(]?"@.ۘ˜ɞˏpE6'E8gfM m۶m۶m۶m۶ms̙=wϝgEDeEe+W +~kܕoMj7%YDw7KxM]MBSS&M1z i-Ѷ, I@yģ8CD6p"Uq$jz3N1lo_{):XEcɻPNt0NUCIJ̋2FCgt?SN6-h2jiT rQhH0SU$8ɡEGSwZ Pclu<ϲVУv5Vc&(8uLў: + 4LM$*s)UMtnFA=ާYL*"nUUN6(ЂdYbޣ{8)q\J[gLLN&(06[hu>rPq=r$.LWQ^qOX?LӨe^Wa>-bEǟIuMb>J6'!=uب4=I>I{xBw(^. a`hJKXJH%Ehll䋺Cqlj|.q'z*jN;vi[~˔ A2'L퉾; Ofl u+ Ü'fZf1H bܻTVRPO¶RN~Eؽ_p dJ/tB0 +*0^6Y64w*w9==u: +G\Sx"c}8h_ :>͘E/]Z(ogR(؆yz=zyCgV8&х/>r:@(nU.f?ۣsge w_󷏸&t= dL +!|N> N2¶ec2wcw;Y.:<7$_]V՟p>=-Q‚< _IdwD\ AQ~촹Z`@DJ P @Uv\2-Tt27F\ ] En\pRtw:_w9}?` Uv +* j$A} A c;HMuPt(pxEn!Afbx >U~4ŬeXz7x~6,4ZTG[DJh \Ol:EFD?iOr-0r6~Gt%|%f~:L|ǚ)7_^?ͼ};VxL8eO07t`1}ck7{%E\\LMkĎUUFVGcl"A @U2Lՠ' + ĒVOFݱIdQ f9n*W}GjRJ={syMvO`8irHH7֙qp( 9G!psq_[[ndE7 +q" I_]m jF4%=6IouBF)uG?ob5q7r'aDi-1HeI 4F+D-ڶע&k=Js*"F`Fٔa)>S,7r%:(QM(GiRVaؤ?[#%%В Urlt=wg +S'²J,3rM|$hwAzib5jM5] UjO4̒m@d8syf$Щ4 YԢr^FFQ Ld˙Ȓ VL}M-Vh-t̩ 3[ˈ$}M()L^EZVHHGb*({"*YBΤƚ<&8;(9/ּxJuQ8ϛ]ϝyQCPPTJ( PPN^?qR>z=B:T ԆDsifTGd*1F1^䚉{gXP|J!kAw#pQTpa~zi\#ESlg] +%+mٜ ED|"qoAS sFϓ'rW~ܺ[[qB_guzP-vB-Su)NvSLKP5'>"*j`fX.!dyCљ]#\Cbj}"ađVdö;?^ʒ-]0&[qd&(_ጻ=-Q{Au;9&W1A#o:6ݸ8r2n=bGH]y=z6.t2aFDd8pSǑOWOn㯂'/S8:470fui曏>( wlNS +_aGYp+Y`)vɁF*` +Sfr8b6M,O*}J[R+eh>H~s|_x )#17Gu!\.wN:Po y[TmU٧K/nT(;ʭ(k|R¶ ajy7h*K9+ D΃#Ph-˘<0VƎ ¿ceju2oqJD'W  gkv^]ԼW*뽁T}'JAo/9d(x%]}\rUέ|щ~#;bF=ڧA\;#B.bա5)~t#S[cz +K[싉(1`#Y:6tߒGy}#,|r_Yտ;덱?2߰u눏9/P^^0םjIɍ2*&:F?kTRCggN7pPbH$P0l` 4@Q#$qhkKz +Vu Y?N>_r}Ӫ=cy5wĽ"LɀRO"]!lk:y`玂$cz!N!$U^aWTTyN:OVy[,\9}\3JP\C)7˸-ln7Y&6x82: -8榾L1̂>Ogr*ȉ-]k&9&qY{ O4JHvx2"aᇉ"6sdka2uJ)x268Wؑ*I)0Wylɞz6j%|2uɞ7d3ބ E5bA.KoKjm:C6HeD6YlCh(рzv҆0)$#o3gYFTFA-M tlۀ5ѣ@4܀'\yٲw@ؚ8EȅD̥D̥ +E̥NE̥E̥E̥{$Vxb,b۔+!`d}hk4r"}xi|_&k/Ke*TRb'?3k)/GrmͽLL?# rY\NV&&߼w6΀#b>%~"b-1cj @Ǿݶ\vL +X2 vO1@z?cJ<ֱ߉JWe:[cuwʵY/* D"?mL(J"m#$iw%? iT愌{@޹X@!.4.t!QAJK +K Š-{V|QS# (>a.]!V+׆HKRWK4`,E=lBE^5Ji%' ߩd@]GVW_YUTLL +5xM/SE+[vKGڇX25bF]EdG{VtA` ltɍ"}+ý]] #@pqu6hw#X.k89(h 7( Cī ݄'Uؘ"K\֟ +#0;'Xh'X8T 1_Pq %*g T. \QP¡qR +h6 rB.PmR.W7.02\i.hsW]Qr g 0 +qE \ +=XܹO $o0`ߧD[2bG>1pSF. lN)nL&|}~{@lGq/afٽO+=fCӌɖzW綶uAI͛d}QP)F5 zpYC!-o`kfRHlo{jOZɿnFJ @[hYzbr#;liEJi5T ezZzi]TFK*QuL@2W:{9,g*1ӗjTPB!b!GM +x^pj41y@ƃ!1~_"il9iFRib׿Fpk 3R~\A׼~j^wjCλ2ɝZXvO`ݣeOꁾz0!moo]ځxI7|53(<@Zc6Fdž $˜"_)]+c:s*&p?1_U*:~Uf6Vv__7ҋRj@Չ@|Tx2 bu.&IZ3gZK`+Ή,aZeI+I26hBSTT*}#L#jo _д9$tAش2|W9D+h +咆 zA' 7 i)N*ߚ8pb->x8oU?FqY PY3KH!KH\Et)5JnV6*/Haj.MpT ;GR rTjM_K->^x+F R3f ᘱ(@ۘK܄+b HL+"I%#ԓ:8W@6K֡'X<o`U Wg!ԂPeQBƮF9A+Vr +EiSizHIxd cz曊3,$،$HCX&jABq|Wtt9ڊa_w#E}Y 8v.`{̚hc]{)J Jm @Z{Oe;~k^BYbgX3dO͑f)kGeIp +fҔ66zdi1$BY181 |G%iug[z8ۊi(+Nȉ/JpHC4,RA,#Qt-XWZj[}GS鷳S+T\ "mh{baZs؊j UW'47Ňb}Q8 '0L܄Q47\qI(Ւ,:&ſ}|M2 Ul@lb=/0k|G#)p oJ\D|)3a<)=b4RBB D&7W;ó At/ټǷ:/W*n }^~W6/Hx7ѽmOȋ_~'}ŶuYAz] ?y&E +N8@Rl,L 'RjgUQ=A><[$ +,AI|鵅Z <+J)K^ܬbBcRspTPsza/lv{?rz@/@@ +9 +eB2aB5PP(w +bl:, iLǮ~QCAC66VFNOVO6>ϥKwͱ\PJU[=k=$HxoXV]#z=]f^<O ŹȳQKvZ[QѨUujVQ"*ګ۳Qji M=844q5+uzZWrYJ"Ʈ==]pЊ`EfmӫkNn,41e''wY6'PZ,?G0TO8? D[ňA)'gIU%D,ӥ!N)؄.#BK75ONBhx/Ϧn^]` 9_Lqb^ CLNr,_B +Sb|_N>А|P|n[?{H3;S'u.Ou?'o4QA`M>q?EE<]'#.;(u"3+Rrڊ;Jp?|]xOApoV.9pkLֵ4,qA)rT 1* +ѨUC;W%I ;ؐ_d,NƆ~[2 PҀ4` u+iQ2ґ1C?AQDLA3=Ō!b +VDX`7G1Sn FEd_FgIY|8sLr^+ ,Of|&3O%OS`2~^P)Doac/- ~?i|%8G{,?W}&߹6ʄk+hZh\$W _*"EƋNrGx}HǪ,b[:mt1 +m.8E >UJRҧTI I$%e]VЧ_LNkn6LgəޕVbq!H1쩊-,-g}滪7`f7>2|ɈÓ)t&(w:.z8S E^Ͻ6fe˰1~SDcWvb 969N"fH'\88FW9"yxqs*G3_2~/?^mPn'w 6JJTEkos nPJ͠'GiOZb$#N;%6R\A_~1fO>w|yr2$cJW>%ǐsɛ8hʛ'5v9â쟏F+>\T. /UVv3ZkT/ P0ܿjXJcba +* )AU)DDȥ^ i6M&jV!A@s psϭLp;<1!xó?9Q9X?]j 9p`Exv^x.aʇAGyKxe7x]-eᆼ,#rl s'CA55ڹl\_\kK\fo Tf/G >Hw}APt~RϺ[A8/|qmP:Vp IY2U1bqkx5B="fA qq m&woq[n0ozKԣ-|p]x(7 !z7sAn}}Nw\^EuQX/o+D}#D/ʇ_(4]j458j#?Jd<fHIL]aU#W\UK*HZ.h(wINLbρ~n3A +1#|YgP7x"(- `Du;-홠եX +1#4rCTd<|!G46%ԃ +A6ܰ#/dq +FP +A+`?k7.e ?_Oʹ|O)CzܙML0= jK& 6T͍!YW0ň7Y1phpj!S !g a0]%0#Hˈ(, OZ$- U$c#BK1J?F}A0ecC#\Tիz?w87ٙw:/P: "*1=Ba )!0H-7mkq[ [UZ-|߯6kh].rȥ^"bBpc>i>۰soibxQGO'Lrf3<5nf\n ZEX3%j:aopxuw h;tC5Uts͞f 8q4.sUcǤ:;&]jgsm +jցq1E.7`ߙIݛ)Q0wl_ns}amU؛i+"=}'E/K;a$V-9v% _٬`M6yfvzfNgzV͚PJ:&h迮%nBMD߷6~^OY6Y7._U>^7'ksOԯnsS]=yrɒ*yoPH湊jkPM 2`rW6r2SK^VF(]db^Wrobic9_?Dnz䝲j~AR `rm!Yv@ +Whdz0~Lrg2[U!#2un^Y_fܘ7Y;\2VH-uB  z:4$O2L8N"Yw&/46C?|XHn!/ +ץN[.PV%Kn@Eg\Zvr\B.-vg.ĻR .ظrB4K`A7E]?ު.RKVT̃+.:%FuZ*UxdNk2 k*{Dt\'ƴe!0@w>eJ> hQHF(gLh,STSBAGmBkt/ZꫪRfJJTۢá[ ,h61|ܯu\5 03}؉qU)5ܘ= +\>U(Lв`ڄXϺ11T+"$[{Is>H8ENB1r>EeWSbe^B(Eٴ +-mȨ\pU Ex"n vԏ+ùcjQ +SNZYSoa?R9miU sJYU~%jD N̬JglnO0+AwlRKL2^y%p~ k@[.6f|Mz @܀h# zGx-IѬ! +z5˦iEjTZapl̊*%NmȗqEдnXR3xQp kGA +nbVt-̬|e\|5fo5__@壕Dox; +c=6΀-G@a0Xpl%vZZĺZ3[K9I?/d/-{|k- +/A[HIi@QkK])xܪQSGTt=F:ǰGTcT1=|qNc{,uNN5GT틧<"r_c@٫e&=CŒMqZx`s;rAA+n+^eF,WE᭿%![5jFwFF(D"woț?>_>m7c itT"<3Y̸μsͨ4,.@. K 4lٺ(tO Y v3$MA2et6?TO5۴1kf<@ӅJ'5Lc;0;M~a|<1׀ԩS#=G˲M^㪠.g%Tg0ę54W9 0q7hBXΦA=/8@i ftm9u o*j] ܐSWON= `gɤJy(Oxh} +Fmk+M8N_fhEjI;k*שr}+|ξ*% NwjΙZא) +ޔhoG15S8H F"n6)W/"` :k]AMB,6ꭑ6G0P7)_vM i+L NK#ř)= t)RkNusȧG[0tb#N+Ov)Pwy=Ʈ%xXSciNI{L3 Ouc՜,_V,*꘴U}gXh!$ؚ1lMq6bnigO +>Z?ZbFe`1X)LfL\Us= ^* -R!FPX?r*HHW]p+FpһVTE]0Tl m{;Q[ª{gQBOf^.{{ ]d=>Baq!lp$DCDRL)HzDP #E tEiH(5NyI +. H!j0 r.M~ Y'zGvL߲H Q3,CS`> {lL>cڈ ,;*N1zYŖen av@P; ZRzp**_N()}8/,)U8]愍L vy|PcdF'pT[8e'7E'vomP5/>m "=*gBB/fH/)j& iYufs^ΘXt6bGHde^8s Z&ĤXQ 4Ң>0`$de~&'O,O,O,0(jV2XE~8b6('554Z ,}2F +>_E12݉= " y9V1]?sztղ ͗"x*? x:ʇOӯ$*d,"R-[ԂV{$2>RU"=I%rW)$ FK4)M*n Z@ט=nTa&@bLb9V{۬@3g\Adl%}f+I9HȅpL?Qy,_6O7tݿD߲5)Q7CBX55:NdtiIU/]`) +BWP=+vLSIV+WZ*44+ā}=[(H*v:8P_HP?$݌ $dt{T 4c+'PNKŽ󖴘 ̣CNlC9ns(UTAȄ8pe٬.cLlzt#9:ޅ3{:cG2?pq?N5?z6Ħnucg',b÷le:mhNNwCK<US])5L#ˡ'yO|Ө1kY $BKup +hn˩:1cI~(Nxh +}! D:1h^2.G;&WK1;MAS X⯬yRl3¡_TeV.Fy;cgN w0\c +`Y8,' Q|G8şV9 r pp\TU é 82G\2G}aFy͡yq`7b?SbA[GjѠfbg(]^Ͻ[ 4."` NLOi2k6 Q%W>"F}\!{ݽY]s^JĬ({G,,wU֌TYs*,.\V$2q˄5Oȉg$FMK=n]qk4;̌s괣yI3Kjv$LFxJ(LuAvv2,qԄ Lzub&M؞`,tK^)Mʵ|JPteZxg! `^Y3qvۏN2MunMFMѪ:T,NL-jjr{-il;}p+H򷒾uBqh%++zpA/Jz+mEcݴlfh[ѪW=4R '̜hxu[ +-X֜#Xgn"`BOa7W /*F뺻VZaL}s :V8tm}D2]zڢO{^d1660EYDܩ~Tѣ48~[PE|f3`;QxKk*RU"򛵋>aC84>th#0[ Ra@'CdK2y\ w ֚u˫\N}mGut0[f:uz@@a' zSw0A]Dۚ!]Q-h{mmVqDg"/gمڻۮoCrR wɔv$ ;sS3ޟuWx@ҕ;fNZЫկHMW?"U6Ö=vFFjfW ~sUc/>W./ڗ>}z˜/:^>wL-sɟ-l {/?[~_:J-~bׯWxG/WA(_>BL/}R‹_L'FQOs3oPݣrw-W/8$ &oz:Z}lH{# m +lݮ>Dxk`ZSSGQ8KYTe]XfSYVWWY"B_*J;EZjʊ=%WK]=A%/tdjp5t:Ut7,"" 6u{**]%flZ[vb D` Krzڊg5tΆAr>G-E}]m]ּzK~u ::[qEDTհ,j5hKYMF v:Mm3&OCSYMO-6xF+Xd(L5bƮ0˪{ތaM15-תVpc3+ vp hrF *j [A5ɃT1g`J7FK FK, CИƖ‚[ִ%Z^WD@P}qGv$ A^/*!֢= ܋}! kU)L`=c3rހAV$Fxaz( #;TqdŸH{6v/Fh+Us4ȕP#h+(l=&bd[Y:=$lQts98ybTUFpJrLRf_͑%ņblc(Nhk?xwnn-PHTU )$*Vd&'%вm2h5t+DUv/l`J7Ȋ..-^ +Ӎ{KCcbyN:Щ.-n.n,X&bYV=ءDn L1Y<,Xc%;Saualnn\@{5T \E͆zfىDl^.[C},=clf u 2]A312R>my֯hLyi#  +(w]l^DaQqcakE3q‰+(:P"S,QD %[-cۦZs*> _,Er{Rj\Į! %dX0_7S c><,HZqs ø]GŃlۙ d3e3+YXp3 Et7>sU.KwEmJvIra ]٤a6w-m2-iviI!rXq+jf\1k4 z\.dW3{Ou+[t+zd8$ݲDI'k1 PF1 ĻeVڄW5r`XwQoO]|aR6 ߚ˩?ϝ5~tuVe|xr dK52|_YQ=q#*'{$ZTq̆kzKQ5u.u!Q -˄o½mɚMl NjINLzIᝄ}}+k }I\$qhq1hO~[ifKy FbB +6u=: lΗR!XǂŬ>$Ǹh\NŲ&PD4\-} !bTc+be]`9'B4ÄeߵM@+~%RIfp% (az!, +٥RN:ٴ&^7ٲqgWdns?3{B!Wͪ&D\qdȳJxQ p&b?$SX83(Ytǒ˳R5DK*&[u >]"۷g4H!S\DC(X'Hlѕn6$w\KFDI[FCHDpLj\kȥd\؂4Sn"k=I:,SN8YCsb^4ћEP̉$\=i\Nb$@R~W\x犂=ĞJG;lBRVyE~#1; Ys垕l6*ei0IDk>+9pVy50uKƴ@7Aͩkj}tXkwϷ6zroy~) f:{:`dU%/i/&džƵ +Ƶv%#ٗ믊C t F=ų"s2tF(ULl#=AЅ{ͱ95u\[[-:y5{ +=r}2`~מ1Ie=Ew k@tE\<|giPߧνS]q:qæ * +!ͫsU2Qet!i՞ˡPh>X|ڸ @ݒ}inpB,MQv^>뿱EI,|}/ym`vPEl;JƝ\7E։}\Kj- kka գAFU;Zw{8 4NG:BFel[Fb )han O\ {rk{:6"`40`nf]cK;DͺxvbJoWccwuu]kJlPčtY.p1+fpP PcBob 5~kS5Rmuyi~g~Sm߉imm ߙ5~v~ =*fĘ̨iۚjF5RYimLq,CA#YVe³-2˲-2Ͳ!]WdaLˊg]b2X͸d3EsM4͸6eg]2O"\HY>Bԇ7y\>`كPvaj@-TL7!"w$q0֢5a4+#=$Z9!2[3mXgޗYh&S|0n&]^} (v +̈́a +bjP5DY$f''R2erWKm,rb.?;Pr^a/C=  +(A9Qn?"_]YtLDE5)W :D!#+K.%[rcƐV.G +&AXM8]CI'v#=Qm̛ ;xv[CN G0'1ۛgˊeuq7S EڲS ѯ T: +ŽS2RfH=?iFNJ~ɹ1( "U~0>҇$9/  +Ƥ +wڄghSӝ`Ȉj9˺S6KD+Πt ~DԈ!|sIZO:O:*ɠd_U2 3>͖P I q,6޴^ى#k%^q[*xh~DVƂ*H& +\2!60ݔ40"jc3E_Ɉ7 `&/Ȉ8%8x#G(f3R'9eDuV=yDnGA@BTYF0 ɋ[0H)JdtLp[7['ZBV㬰7pjӊP̧[BѝfY+˓U=Ug%1 {"W`? 'r~Hf"Vy6="w'ZNZ5!Xv=WDmEahb jk˫fL,) m[˳Ejt8Fۍ~׫/v9**Q37|p%rR?9_'* vu0KHMB7ԉ*{\MP]/T4A&e\Q&Nv].H2t>BXn@)sK9ԀTcpPaTE=x'H@2yټ#ۦUcrۍ6΄V0L A({u⡷G4.Z;H縖ž`DCq;Atn%Oe XjDKt&S&n&\yW{. +ޘ]9.^ÀFRnmcp]Ű3.!j +O_#Q ᒡކR!u$s۰w;u"s7EJKqUwf 6pDtnZ_&l<.rw8[Az +Բr/(!8A*W]Ž5rý\1DgDOȣsJ+ 5 R<݆eܢ&q!Ex!݄˹ r^hqryA܄lHob S<'1L)3?!{/`-{AqqwIGwUG˸ 06YGio9N8x33M#kPܺnMsZ*'͵NXraBs&( '&n4=yfʛڏu^yb}NNE:'OI ojd`w#Zt4wf{ rqolo`D'<4`^\;FNq27\e0s׽Nsȍm|ԳJtFTi$φf'qÖDA\6(4ebaֲX {I6R(C(-Yh_-/{[HYB]X R(+Zx!lNtP+!dZ74B'x8£~Et!q2C51sgMJy.Ri(KX&*fsL Zň0ɔ/5jbq(ŶPmVSN v[ [̑[ [OoF?<=zě@t{#">&7U™($PY(h2_1A#/ zzhN:WI*bcho!ѩ?)&J᱓R韓8 ÚpU*cZ\s6\{f-.]5{Q +h+zlJf~uA/N8qo4vH^Ton1񧬟h'VQQ/\^ګ0.`Dsγ)zOO!"^smmd>;╸4q+1CGL?D |}!gдOiд,q'$OtO[O^}A6o22{¼?a^_oo" ;7z8v.pCH(H&T\0amHRKN7׆1 I8qŶ)7+QV3-+>3Vi{M9/M@_v +ÏQG GR +N)V3Ј *T1hqѶhYoMiV"s[[o|~la`dLmջV䢷nlV·nlb\in6pkqvVVV+t ]Gt`U3z< ^[YcU!X[UZU̐ՏV<ޙWVN+q+s:-ZvÒӴ4-=m{OJHN:Dj\=LM3"j*3WȊeŗ;ʻ;ʻ;ʻ;WbŮUZYLgWncuȱ^tߪYXe0?<×o\7)5˓;UP8P6LH*AJ5^{y6"~ S^;&I2'>[' L :E]i^7Do K3?fwBm*FK?#:φE+\Z 5(~.\ +t(}=Tdz-0Ǚ~n1ǷD^`k_QFAHc]'[Fܫq +ſko n+ z_XY܃߿^S^R_̼3^p?20244ppJ-2b"(&ƆulQ-]iZpWNmxjg[;ܐzgM-DmP-7ilW4R,7+ܺN [G,XhUd͹[\lyecuKs ̛[`.V[ipk{][7Եݭt.O0׸<VF}r mԮ +85>u~%>~#Xk3~?[/߭bJZKhA5bCckޤjkr !.Cn?u OrrMsl4}?!Qל_u{) ס9R TPzX#?EM?KKe-?ֳQ4Y/aUJ5>(;6dqbsw8#MO%]]`}׬;{ؤeL{I3@k8şNx3F3s"űSVt8븮 u}1\]T#qu'X\esn"FN‘pt@$̳Pi&Vv 8 ]#=#qs%d(@kWc3.T$,P9y͙\d%ۯnB2d + +7;w/ϨUzՀNP弒TA;Lhw\&k=hJ" _k1 ZJ2r~^! b.饡6h6ҶR{PK}..X10,jh7uީA"OͺP"1onv8]~}|@ftq储n" j)+3FzC 5`wdM&X=-o=nZGO=38c _$w7Wfj3!?gCΧ'^Ӵ={7:҈=C:I΀(̬q=+O9$/#B (2+4W*)-PN LP;K.~{ ݛB cpk~i&dNt{)WihɆ }VPc|iuPWG2ɮ£%jQ(k@Ube0 K/@o +AKhCY:ԣ>b)̯/dL.ec5J% $A(&'Z媏XW.B;3̹ah'mdgjwUvQYE>˔XG  I +1 f$1[2VѺWΧk TBN)UѺnjQJ5 >VOfzor$Z<1wԸr8 +sJhͥs,B7M99zDܘoHZT7ZPs81C Ys W>iWޑNj'T0׳.C|R5Xq}Y'q}DAMv4SYҔxamz6A$;D#_UhS[GUST5uZ,ei~hX@ ACSApH:mu>B8SWRT{mV劬PADaPPQRR5o[URVgP2hyȊ:^UuƷkpChk}]\3he}bb2ݡU +m OPyPwP&y¶fws)$to[@e{^h l)kXо(R:Ϫ\g€SyvtYLE yuc*IT'% .fPMr/Eh-WdRezHN59d|&/Ω\]`z,eȀ~ ln/0WeVpMg㠰)uljĵTG\_ 1k--%p 7RB5ҨHY^wأ YF]%b2X3<+lY@4>ŘŃ)'*ggl)X+Phs|H1b\tU.aqL+R3qD)psPYBkļ2̈́a*87ǎc:PR(/r7ڹ7BUn +3Y]ЋI|~*WY*\H tD)eVc|4\*:Ibj422"w n ؑ7 +Kv +oTu4ҭ0hD-ZbMUزL/%]idV`%`eYLsx<5xr~9-`$Ӛϡ0%.U<Ľ)PK <+3Is^X1UJ[C|E*ɔ09-.OV@EZLmG+,ƪi&YH>m٪2Z2eMRS|Fr{v ʭ`*Fql +2 TZ'KYFg5jEnn7==JRM8vywrn˫Pb%3+;cpg%~IK=JiD=[Z"-I7'|0X} ~˗rhP^6 ǰ ~Ϳy>Yћ>&Cy%*Y͹6o^*K*0 a{xT6/jZBuF/^ iO q.^:-氎eX{qoZUg嘱z#4 24/֛;FYɺ6a4ob먁ؑYbT(QЛNt OްH]*>u$0I(rֹG̨لeP^F\d?nڦw@ e&YUiraNj72 +m _԰2eh%0b#_3Q{8QO"dܵ#exnʀX!,ǁo0lI!8x"X +ׅrh!J9S"=>mÖE-WijMökxZ}|_^^a?ˑ`|f&0M4MưxՄݴܝV8|13ڢIhtZ n0p0cQ_!DȔ3fHcˤFDj j |6hȎA_#,7P3 is.CW8SrwTҦdC2%\_hbdW{cF53_ׂM/_2JyVRDZX/Peh-Firۡ[[ w"%-Jrw݃#V#^R\?)dm,4JDY7j _`cw"-6pΤZƊBZ$ôIJØ=wƨ2}9^\[Ԛ:KTwMʞ}lղIɼXtyG}!L>l~!ٟ@8&Zc +T{"Ah~y5_l›J2Z<+_JGXO~LO{+}1f582_pf0pXQ}Lpmn*!32FY2ĜfN!=xQY os*۞iO%i¾0Jc=4Jc8J[,'NvIߦspǟ9;w宺j/Vrt3MTvxW,W*􀌢8*/ I"WICL"| 5I6 +Ⱁ)ʛT,51ka | ]duBL.5CT4KI_i o I,+nͳ!gi.1FC HCCWή\r1Q𚹓$kVGBްJSUYi6A4kHX1ɪ$RL,_gIz8Agt53rq;S)s㋤ G)4ʗl;d; i^_LRQ}It势 +ZQH=v@TiEQjT$M%coo?j?YHUOәh6G@TPwE*DEcG +&Ze&_W(t~|瓙L}=[`ߎ[@*EX}e[#eh5"s-Ze] +m#lM:fY7E jD"5&t&΢)P +*QEҨΡ `;w F@AY!fî M#'|khFAg$@3J*Оi+'Pm" Ѣk&E?FWRJ;kQ"Z(WXZɺF2mb:؛kQfDuQFa!xl1ܺo)^W#?c:dPE^r;QE(F͂0[ VEDQEdQޢ`hnEz,7(tWhEQE(Fx(E(7g~eV)b)zIXV[TDD@\{TB;64D$F+[Zew)+xpReXo}S4t]WS*n2f;s(ZϬ`ĩFm= p4j*ݠ}OdDfJ80ѓyj*2rm粲5xg;BD|Uf,ި@#ΖLWoB(*X*XWU+\ #/ ,п)͏҅ʊlzmLK7khζwn: + +*d C]ɂ́n<+n(XZ"Fr%3hU6Ħ9YBh ?0K.xl۶m۶m۶m۶m?X{y;ovg#6"++#;̎*s߶X/߫?V5m?EKg/աMk?Vjz?6z^oH7}oM*MC*٘ SiC ǟ5z$|睲KG76+s=Э2V^bP_m'67 `1=ލښ=:WY%br2k^bD 6KOe"_$R>nAh5FtcGa΅+jYu>KW=^Qquz̼έ1]ƙ8EX$)xoԈD?@ꝮߐTtN<]>KGU &GMd=?k1ODnDIk%j(i~,].6-"GԳKyK߽qv sa8l)yTRJL~Z%7wϡCNKz/:_^kGGޫ2sa^zkwOYhsqss* >dBb+;.mFd0C5V;CRP? XgaYn6D8vٻ"uvI*i9Xxݨ{cV_Ȱ֝ԶkXn%T4Y: Y@險#YGoTBm$U헻Bfo[6`M%JKy!`i>/݉;ᦔIH*6ZZm9(zZb+$Yh[(^vc#]wee_SVdR k&W 5u(n[W$Ewcmɪf䛖g TMfeP3xS}1sRl ^5ָYT{ s{+9sw63gV 3R$oTˣEAس7(KhX踨C0|Uy,u~TM3vWNEMXkyCsH8[rnkn3\ul=j[q* HK:o_t|~pZ7Ukĺٵ) Hm|wdMA|/qvsȑq"ʷNYhk#+۳اLW+aG\X˶.}5CܦpQ鬑srad\8Sh HnK, + =P6$$WeT\X%#)k5S]%c aћ|Out(;/x!)%'hΎ*LK}NE]ˤhBӗ$_6/}ї]2gX Oқ$f{fqߘӛw}@MߥMVqPgYkRz7M_7|;&Mڛ^^?FNQdtzP +GH3TJj{3ES%Kh+=f!Oy?O4_S?w+S?QO`S?Oy?d {t`/| ?v==%~;I$Ca͟?(?~rAO JW)sZUp]-mS^vϫkS3]^lUZԵwT+3֯(cVcǮ[Z񩕡]SnQlV--[S_S_^5n+~U3+K_kBnZ95OWX(G_<E,ܝ%IY[{%{9mO;0#sڳ%opĥ\|MmheR65eeV3Ml'M%юGWUo"8]-_#~\7hG,RK$ߤpڽhh6vУoC!GC6oϔ\ƹKs - %UƸpZKMwRHZ ¹m0UbMpkpsl bMPP:5L&Ǯ- 5 eznIAb3Y'+UT7CP'ﯴҪZ_+tt!nJ_;Ɩt-LQHiMVQ#Ȇ?p +H)zPEF\ְޕ4/\y!/A<0YyiDpW0:C#D;i Hj{#3&f,g0MRf$9IQcGZSNa_G<{hyyyCy_De 0'Rf2.5JU*9mѩ)*C>`F敬= .W}3* UW)}ɪqm)?hsV8OyӘ4ki`kpYb^*FNQ~]# +eB@eiq6^eҢ@JZtu-B8$-@ -RO8SKIVr?%\XrnX_P-ѩDdχZ aLW IW o:k6~ā*R:XQ As ~~{q +r!as@a=4, pX2`eBτ }QtjЎ~jqn$X{b50J`5,J{孰ddI@:I!U +=' I I KI#I@.L'E;| IپM cy`Zr؃Z}n5~!o ®aw`m hslG&o~} Q~~?q˗~ep~{m<5@i!D$5ׯg 0ZμzǑ7G,,^#C?(+y ?.-~\S^5+6SHgIأeS[^H+s_J-+_؞w 6YDZ)?#̬HcN?tX7]r_Xwj|ۭn7[-_q +[/@ofp~ [_FiF[W~l豇mpXIWv^Y\ ++_;вJ6`nU):rZŅ 9|d%J.C3YziɲO\Q["kJ.[iR%2Yn'i/+6XSb_X +-CȌ6MҮs ӚSDD}$TlZO=-ߥ/Z~͇"2q%iܬb +27/ qE|޼H"ǿl*5L~o^Xe^˺^EŹ^^wz[v?H͗f]jRt4;&|tdRblIo.x4e!?TiXyV-f4Hmƹ|?T?lqФgd#2laޑIdGrc91=#ADztR4L]+zAj ==qj?v DˍĦ(D,D0D'2"RtDLhLpLxLLLNt +y~_JX0Zʹ|ѷ|/3@{Kԗ}|+F\8#ҚFYFEM`ROIP%2M`RиxKн̌%tceF7;1vMl;70oSĈNJD&%"JIĤP`R*2)?')1%&9%4%4%4%5%:PfD'T,щsD +6%;PN$4%:aN#RDr#R((_ ؈ڈnEKlKlK#mK[˫31|__RtWNxY/ +r "'v>\C$_A=W:я6(Ww/߳MƯgx|tGį,O OOOO(O8O/ ///''' OYW?/ ik$ޝ>Ȕ'%&Uʶb., ːeB28Ld  /fpDU0ǣS֯gףxbWO~~`~~]P܁w̃~(is>w282Ʌ92&. PX88$@Ƅ -Ͳ-mGMqʗvb5|]&].B.(@΄ 5*I u QPRIБ0#iU1-m 64/uzB5k<}Uպ_G 7n7@X]K3v׿_6|9<-!`EW/{߭_{}ߝ}=q_T`ٯOc7  D_zs'ٓ#'7*Ks m񋔅15cFqy2HHTX%ୈs= y<ȤvyPƌr,d,TAu66J2jk˭k 66D (Ht:*Uꊳ +:Ha'MY.(jgqfu·zsbXSl}uhy8:_Fsidb{pS@<Y֋ ᭩%A6҆p# S:X&O5ܼVLC}{ŪV/!*H zV u vC(xD Q]6g=Nœ76Nv?M&?{V߲Gk>GtRʮG6Ɲ諾DoL9ʑ1[c +t e*~gXK_b[-_wlJvb1s#x}Ǟs\yMs咽YLSFaM46Y-ufTl+FX 9ƣu<բU3lЍZ<83ng8u9=uk3wALލq3l\6oOD3]6p^;s8,)[8u2 s +eY)D%JVqJϩӊO)W3ͩrVq/? rJyO>'Q>VhT٢S,s=#ڙ<9ɳJ4G>f5ƳT|eYО I$phFM R)T l賂d\#b&JZCaZ*#M+%䔣mu.׷Ӹ3t.-KlOFxْи_R^v>)H}֭f5g +^zkvå5}q[]l9; 9 Tnbq9=kAL?,#C}^LFHm:W{z?aHܰ"9eK|䮟cv;nl~y3.f5t:c? 7(_q͛qS;xQx$KLcJNĿV)m3ԇXQ O]QMzfxB776 `ocMA=bğw9N6V3p6¸ch]ԙDF f-s n]?:9ك_I 03HpDVm< 5ȺC 2@H" #9`JV09WNn^G6.J6 +7 S?NU6P>s\JiÄ[Ǡ 5 Yg!#3D/]qޗȈ5dA+( ,,eK27ص}.+Rwz×;F#˴RHCM~1k#2[ر&^"tx /2n0g%qn#11 1;3"][YF3\{$ԅ6EX[YLz:Si%H-yHy1TV4n5~ܔ:{4T W)][~n Z,Y6?))4h pv 6O6p pe$XY~n-&qffݬ\˄QġSSjz?;Buu(" v۞OB81>` -] |l/{f,%Sm #/`wlDŽGd.d)=9׵p$U,4hQ b'6a\hɕizeiV?꛸Uuk."ލ4*0&׳l`6v}ɀ'dlX>N&^iAke,pa +"<`y~$7K6a"<=*'0j>`J)A9VB\ҷWXܰ`eeyy~ ? N9|jMV~de7 G{QM(^s@uA* Lq`ԿFƛ}:4jN\ $zogȀIjRlf?O`p _r߾s:@S} x&W3<_vT̝HV$Q〞Gs1Q 4A<&`8$D9nl R}z}ˡ~Axs6b/19P fNg H2WOl3J9mQ MB:'bBA}S4UDyX .{L&Qcx +;ta#Q2rmZ/iHX[yzJOd O>XQOHVSJN2NLE/!]_~sGNd8 Bɴwmw[I㧈$,ޣLyaD:l~Kїp=z,Kx,ԉJ 6+I݄yvn̠iV Sd%;ڱĽ)ii+h=GW;z _ީQ ¡l6msSТډ[#Xyc%Mja>]^'Zp͵\fr[x}'whjΥJ(ͦܪoŒu+|ll*'<"M2O +t-$h|Aѭ*P>4(]qݠ?|QJYVp?H5\J/1J&ݨ9NXB,ة2;22=ĈYTaGc!@!Tq6آ:$P 6ݠgNNd Yo |R~K9Km sKܭb?>#oJ-GI]`ِKd,Dx2i=iWG?w`͖!ΰimpNz-i^>>%D80.= +:Ʌ2x7j5kɅ8[D^+xs9brc0X&{#NןWڷ`+Ɖ=\?Uxy;-DSr\="DE?{əm0ܨs h}h¬V a΃Sy2鍄d~VZJClZhuUl\0g1 N݃}<"atd'WL3IM5,%qwrD߮`j n%%mdId0"ie`%Оaܛz5T?gWނͪ.7?ӎYuy.+| O~B, -ƴ43<9SMk 4I=i~tc;Q}/`#Ut@G5FK?"ma$f2 #ceFbJ#$vT +O2V< +$?SIk-IJou=0f< Y98< +?0ґhD8;,4ڄ<-Y܎./BN&lpd38:ts8dKR@e>L;E BI%IlH3 {x~f]`aC<ƎkTҐyk+҂`4 [bt<(ƚE +ꏭqYq\)$de ƻ \ tRu"5|UnýRfڭ:bT(k)S#!*0\̨lnZz1")(W({HAxad(?oJ{:^lK A% y1(mPnvR7 !rj9L&8jE&61S]jzϙ,5*hʞq-凉:oLi{MIL" $ai $ߘK־@BCmKCU#yi:E +tIdZ6Lv Di|R,KD"B#\HZQfYWK}M}6"}CS}U̟.l dɎvXZi12L;1 "g6S\#ޞy@114-8 +ntS*tnS yS0`&`&.G 18G1ƿS10cy'V0PtoE.c?ĘD;3QA!c79tvIrd.FjIgI0bҳUqqFB,h4U#nHI1 GnY)2RfoF%ML`xftk+IR!~lGiO1nN.9Ku}#BuC¼|+vr/ʟLJ,U9{jM/;XeGquӗY-ؿ9 ̺= XzfԾB;성h +k=L%~})aH芞y +XɅ0[u^ hF\ ,Q A^obh Pb,eeQP/AaZ!>tx|`{Yt1ӵ0&G7j2($6t3[v }3kR rǡ|*24KOEl'1S,BmӚm'z%9㘥PgP2kUݱ4FoZmvFiZw|V[ҹ:s:s.+Jewح`)Ap"uns„%wf=zMut fNYE6ȸ!@)!V[S{[пSkIl+X^OdITu%)?GN'#HB@ R>,(4C#C /*{l_Ie^ϱc7i[^"][Jj1/q橭/0T[DK 4VL_K Qck`!/Whq{ ޜzf^} 9l\sm6) ?u^OTgO boʇ@ -n N;ۣy:ɌXz[6q1աFDpe ^¡cAj+ + Y%5.(( B4D]ic)3W"!b 'pSS Y,ڐ 2fm|ÒQ"H6EY /DrKiG"-aSA D#|A F@[#V!c`"eD5K+l@{̳02 &8`k z,"+HLBJx2zX*+,`ٜa #Nv!3 :rY&A džiAƆuL@hgH?1bF׮c=tSj+6vu,'Z+; s жaUAP{:s'C؂y `SR}HXhvH%DA$>dB PFΣckF5ro-Y [lj ~-4׿jNc4RL +wM&ޖ?-"rB'a=E[BKO /}LTy1t\ba;8B +\_ZK]@mWJ/)s3 j*J\:L*mM5Mr)[ۨ e2OTLjɫٽzTL\={i+A531턻  28%v&5{==5苓KFKB t$[JE>,ㆩODL(=&2&e{wN^GG ָ<{a"pص,"P֮/>"Rta9,|YÈ|7tM ]E$[5FWrqxXΑ2m˅DK"J[).zY9Qzf&K[[]u홉:_bC))4eplEOP|im||Y~|qրMX=jZ += mєڳb=GOCIEYEMAMSsPOpǿpj=[㙁R5_7 Cϟ-FY!qi,橥l5|2 @! >WI 6-ث6Rӫ.ozXٛŚY_b G/!cJV@eTLOwF0ЇdqHޫ [$Yv"K_RI74w ٷ?캟빎;1֖pHK Jqkr21ϴ{șȥ[7`H=M-;"KӨٸM] d+ZjrZJ+KB-coƘk;9rwI4A׼-<D߸?t@__ Ƿ ;@*.$CF)fv^G]Cwv<5KU>?uWxc%OiS7釳zD_.p1T_鋺w4 `%a:A&>oj-X\9OȢhNeoiv\&jM7(l [0<ѭ Cw,CNr'?Cy#X!L?uriTgsmxP} Hozۥ~DE'׍Aц97{)?tϛ@f̒yrzщ +7sSgTg֣M0K-fK7+tvَ$˽f>"n&(nB c&I*t- .\2.~+|'N2F nK7>1!f,:L!tˬ*s~ht5#+o~28Z⻜d+4OXEc=->NJ0y ker^@lYpO0Aw.? +fFt#/-¨P:>t7-ĽCqF z&xZ) FIqjQ R +2ʳh)1FNcjm&]tzZ8U(V)OɽA747>\zPh +U a-4zKr(1'Nr{h2 _Qp<8Mrt2FIlx3(2!1$y;i+'+_P?õ .P?fyU uII$ҌMXYdMMM/$2 q+Yet5vq!fk^5=_t䔽AI7ܥ˸{.zm#38E0C^ ?@aS(:Jd  .PNQ>2e)[ ;akjuorx^4E)\ҧ&&+ο7:ey$l}{!jd#Y f*)%oR]!o.5iJh3!KfS/':P-GSq:Ӹh 50n͖!4.z$Q J~d +^A"4 QSYr#j +7l17~W{ Tހ;,ܳiN1':I^LL:̰)ZZML&{YȎ#Ko= +[`6 T`J?9!P "G͇n +EkW P& ʜɰ"| ݗ^E3fG@+{[6Pf)aԉ7_U#\xM77HyǨ\ɫb$yy54bGO!$rh}UMIXcų̀i ^T aoV/jG7M^X%ݬ&&Lmkd5>'@[CK.$KDom#"%k $=`?T*k0w0(Ӹ XWx隚dPAƨ~`E¤QH xs-f!|ry +x\kRmFs,zW8h6-Y-eHR;ω\΀mr=h!憠z^AM(3لBx\QPBQ.TbiIJPO{ȗ@d&}PѶD/e{QU?m5dgq#mV;aLfVųISxt]%=/wc=uET0%L3ٛVy٧3uLv_'if&י%8p0a&_C;Hts,c"Cl>p py #%ҏ޴ip\ ?Dy)̠ UWz-a#{ 65m:$|3ƽ*|ASn]SGB]pOqj}0dncԥɺZ?P&5#FWD]cb(ˍ\@ʌua=PZ7r(IUYRtLR߹ĽHkh=#xGYO *qcƓ\g ѥzv41cnYӖm}iD6_R=;Zj +s{/l|\y襣#|#Iįb^^SǓ2%SoWNJw2KY,J߅l܅rBYz6\q &7fS+SFIps h6DjN1mt+idu`w}\&7>m-*~6$el%lF dysq'QH)Ey%h+ P-Ůx"L#$fI0ʀ0.8?GNPrI|a\-ui +]qN +>-ŀ L"gKY8G-YIaVT0Xzb^b\|q'Q}QAM\μ̋!*YbЃ +6_D!ÄN%,>Yߥdp_ }t{Km}s/+HO$H7ɔI.Ho6K%ULz!9$x/2e`7&m eHZa.V9bH!{1Tn$V7QI*!n&V@peyle47gAZivϬIE֩'uD-n;1چnky[ya_[}m6o73*{-t9c[5!en\)7pQ.gÅ(%dRNhҖ ǭwԓ=F%r Ғd,[@5C5J<,U1k @$8Le*LQK8(PIXxO%`XpS%C }qx̔0+> ct[x7O8W(9ȷי,On/an-D.%EI I̧+Ao+.HK$Qsfw݄f[mö_Ԟ]RđSp cp 80oBmЕ }LQoFЍ+׌`Ӻ0=O( +.vEW2*Tp\l,;|\;L[P]Q܎sϋto''P=x!RgX)+j+_װ'48ٻ_,ۜ{xE^Z⾪ʪb+VJpoխv Nřqk_y4gdaRي^xԵ$ֵ:L=xցeU'pс81/,;rsABc|@#yf)6F`h8 wqu‘Gl#X(Y@xqA/!Cj'ՏY +^\̏LQ.<ʠTNa3mvFcL$c%F!g߉ՆlB z9s97DnJ=0.}oum1=}hFm`8}<3ܲ-g&])pz5^v-"d-yBy:q@&`e_#!}#F͡Ԡᄁ _M@9i>&(hOUx=Bp㕜ğgo[b#Τ '$B{{ FqYu̖WG 3f\f|ge ;P~ͩ poߤ`x_Kd_8boG,,UPY~Xg4i79pr @41u2w9fh+/ AKAE8r+C)#jn6g7~Yt>αݾ54B|+sCTekk(WH_˧){ fsZ?g~.=Y8+Co*g|v@߲$rV2B.7`tc`qbe +`f{mk0yftѝD"ۥ0[gD~GI0^%^6XўM| nCzY0[GC2+6|#2&2B8o[5 ]emB|u.5$|'(Qjhg_Vm4B3gDlJW`rܕՏ#àkj7pdymڪW$r.)K0o%EfepžϏFgOx4v^Q9x4;/ꘈ4|^!R:o&ߞ%w$_GgFt.-;ds P !j|6|^i^l0ܸ jwQ; +N j{VRX@|ސi(-F-qgRׅ87PPv!K.iRfk`55gjqfO7P;C5ݏ x5 Ÿi궠P/ 4uAT ";V!c!2Ο_|K'{}!6;a3ViPnKךNY0T(MU("5LUH*Z]i-WF / *u +Jx'9u7r~4\& NAkhIEzfU-?ѡ-)b(pgo̗lWcüi? +&nh%.v1}Kܰ\˪nKqP%T4+ »! "t_ ES8ƧAkG +zġΆh|*W.ZІz^X=ALHFYȟkaNxBc +%7ъ`Q誽~gD?}47]rو% W{bs_ggtlѣ6lL9b,[x;*vMX;b"b8EvL6K' Jbׇ=M.ΙFhM7uMna_DU8c#&%g et!wF"ߖF:H&#="/xP9v4q8c;TD@'ʞ o}ekvD,] +d(kuc0{#a҂HRk]L#iM 2E?xܭ;B CP +5).E0h +xS5LbXX‹}VJ7B%[i֗!#HVnC}[`,,uZAYCXhXM[ZaS:i8o;.@unTJZ?*oO|~,Aï{)׌#>*,VF !K;d HG`"fk_DՒBÁO{i(*h3 83 爻;^ ~ghwUw<;µ1KL=vbGaQ2]p:Yr8F3,Gf10oz@WBRO}0يܒV20[))4R~RWũ"V||IME5˿`ɉ ,Et@:tjm7of F8ws@S.4PUV`\Aim,E RQN(C~tu"'D!(+FNyFlպC:Xg5R^~D':=]#KD6jLˈt&s9x S9b!9H@4A]ҧ3.ラ#ζͩΙcƔ4Y$ޱPL:RMz@#%tYΞـ|r-ʖ퀍>6`6珫[0BP aK 5IAk8wDJ9kѳ ݙ6c2s0<~o>pZ@wGgq}jBVYoTY?`X Xa-yo\_xa~FWC遃g7a|0//_"`k'&e\+^Hz,"Y%YQΟ=L5d}ad0ByUu{sY7972*NHf\#46GPF\Wpog ,OcXcE/X?=+OFx=F|f@1C8C#!X?P~Bp0o?Ȳ4Co?#LTL#gd?N!<ҖNdq(ƈb&8$5imxش %ϠqώBzr$9>jkM(t].hJ"Y!,s&YӠ6WWf _d ݪMџKb:{IPHʛhLF.'_aeSoTBWEWVV1l#C%HY)ȡ/>z q뜹ʃ77Dۂj{3ή+-+aK#ʓMi|fftn:糘_S2i).ߨcaPmEW;4!YYֽܷM7֌o0a7UEs^y&KHe)w[zҸda +G}=fCd(Pm{1qĽpJbpk񻴔-DT|OK=2Dy ݯ݀aԴݛށ&2` I%:aQ.]  +<6Z WSonr/I$\(uwImx?Ken4h!a+)r᧫Q?pJ?ey|G-fe{l͊#)Y@8O)wb'зJx` !J\=zz…?6ɝ>A4#^@* f7fWWAP"_tbYZja݄ 7:GIK[F 5_" vmcnÃ0zD{UVAX*%ߗ<@{x4֦S9e#ʧ?u!JwL8넡w"U)\e`}c,kAXj&XkGQy#CT }6oHHOW.FoF$KVՀj!H@f3 +x2zFo>)D!'hKABcMAbe#m+jmKe&E}M+]_q,>ٖo6 ϒ=N=%udlΆ+WPD>{=dٚ't U` n#Qhm@!Fp6ad6ܐ`Qޚ o@r/*4]@uU´ZVI*ZiZ%IlK! Xldr;ll!/몍ğ>E 8 [h*; R:-Os/<ҙ%^nh“#R0ې6젘?䍄pD1?t“"9̻kl/k[Y}#o}wUǪHjвUL &ƓҙR 3hl2J2T4ؓ,X#X*:)IjFhldL4 <e̢lRor:&s"cPIN8"@Vޅl(n`EB"}\D/&1qH߯…}hӨ*_B5/l..I=6bl+ ~6 NDYPM wݥN9b+aj%d6Bkf.[Cns0g-،&Pv +ۦЇRO#1514fiFٍ{e ++yU2heA<&h &U.ZSkeC+m0I&,d +#Ue޶$a<ц|md>ׁH7/c i.McA@WS7t׭.]RhЧCQQq@V7}^]](+ 7a]k/ 5acZ;pU%. +^(Kxϼ|+*UCLm</ +gU7ڦƨUE7m[:TtU7] zeE\b2];`T.ݞ@\ҋZ]rۋvi v @WzJԾLeN#'ʭJ,j/`0JK+0(M$pNjѬ kn"X,9rauq)2T0sۦ޶KrV6 +R6*FM + 9c~M >9 twOd"UTySۺME׼զ8&md@ݽH,Po-P-D?#ˠ4# Y+<R ̍mfUAA +֡ -̹Bu0U zukpdnLm Mf+4_UĶ>IJ;wfn`"CL  0NPL3 Y 4np<ȋ|\='[!⫵z\m_JĀIQCVep5wg\N;ҀM'fcֈ([jE[|b +CU"t,["#~p4b1eϟ]6'[Ge&djҞk+뺳0m e[) XO M"h'r <("$IRz~T)|tgp{f6tmSS\{l!\ϛR0wtlNXDN] ba( : TPt}Veci({؊˰Q5@whCwE:SRp˾<.j{1#y7mgδ'ҹ=)%^cPIx9GA KS3f Ekyy܌).;߹BR兞80#32c]Le̅8hY "wA#<itm|Xk]G vUI{@}(\Y/s+4|aV5 9&~.pjJ`jN:-w#ʠhRЃӼ)O< ZW#\Ok pP@ GۭkQOM_B; J~pǓBA?M7tIQcI¸w|oi5ä#-Ul* b]u{CߡU_Xk}y޼YGR_. 5,WFxe4Num۶mm۶m۶m۶q=UMsn꤫$k_MRݻjYxeP'0DW`UhA_ \w|3fW|͗A~8 1,ͧm\F5O(G%w"0\ xYM]k9GG'CÙ@-!$_K8zf- Vl.OwCEr\ӡ]=|{H״M"#~Iwϓ0R1=jk_ `c%S&B4eN'ڏ䅖 +B׾E#'@ׇ$kA;C+ L!D M&^ `k(?';q":*z>H 䀲Elk>V3F +NfDt_R-ȏ&G) Ѝ~>P~5ϟyzSg!RB6U)YAȡxTYH^ 'EE^ wvIbZR"^rj9xXc4401 +ڪgRVhZR!Eq(GQG_|]×+{g-i)P ʡzPmqPӶ?xzဂI?edx9&-rX1zҊ:#w'Y;x<|!XM4d|j_UHܸ]:Um 1ʳ5iJcmǰ; Qgf~Av 7ۥ~{-:cRpl`c b;:) E,ٮ󺚕Ϻk }6<IW{u@z rG6F5|(6$/=.sd%"³5xBz:@ԵĿ19_ KHz#EdZKj(fm@}Ljp"%3J.<@soUimT_ (+͸.Wx{W) LN8n [O3T*kBNzZkGĪ/jԔy|*JScCS]/E Lgwa䔋w nCV&W]> V2c=L@L^zͫw۽Ѿ޶پ/~OL3; +=h7L7UF!3&)[ԔVl'wu&1p~0rټ>#VQ/Hn.\^ʉr ӻF`X.\:֟9TQކ%f"+[aYG`e+|zUZ\F) +SoèfS%hξCvn9ʄIgӼ6RmkL=7k5ia2TeJ-R1wG*{ +JRI/W>,H9 Bf=n&ʭb5/"k^`'0OtX%ID3\GѮ. ;ᨘp4*L+nG伧z{W/xc%t|d t9nCd] h$^Ȼf pٛ>+ɽW9ʌm )dGO"`Q[/vva:ŸW{ aX9_:/|'K%E{- cDstŬpp*7j7/4. Ī+LB<#I9w$M (\^e16׭ᆴ/V틾ʵ!W*;N+/.uz-WZKni9FY-/Xs+S XgSc5O2~ك)O~@MMT\xƛ]%]uTXϘYc-=;756uyb1͌p{4{ki5dIcxͦs)ɬeu:-HDUc˿Ho؜0#k>%$?4_|{{rOꤧ7nC(oYF*tXy!7:  A6@_ip.m׮aW ?zPw|)AïJFkE)~S-E2RdsJ*+SCBaVWɼvqҫ:Y*w_,u6UK8ԥ+8ET9sx, AOFStuء6P]Df%q4hxN>>hy)IZ_Kn`89,*sGTv݂Q1O%Pq:ؽZ/4$`R9fUtI,I.d4[:'9u1xvzMqy0)@C~q.> g +6_3t7TfQ- kk[m3Ђ]/+zƅ&l2  %5䟴xxqgȚ([/1ṟLMh@OGyC'GWlOQQVELeA6A)-y\B@BmY~EBKۙ6];L6E|؏=/ O6`r}qy(/?2y tf8Q=aQg UG,=19%/Vr{B;NO&ؑSW7R>”F熡_r ܓٯ->)sH+-U0:<5F0榫8suSn PL3c'L 9ȜDPc]}ݢk);ۏ33sS>x(߄F> |Ӑ~3%qV72zRZUgHFɻʱJIpJHr2gæbH` ފ fCgN=;dyX뢓Hݢ=H'+",D[v&'b)PE ջ1o> o>Re7SA udq\2P~ o֪e#2{6 Wh(ԹR4:1 s_we ,gqwlQcjO0#13[F&jHP (6r <ffΤ DP`IAB$xG 8hfd[=%{rQj*H,TPz]ۮ֮ͪ5-۷c {4ُ9ڻ?жCjt 8&rRngB>ʂ%|1wU1>,"R1s|xFM +x1)c9_ +2ΙK$ +4qߜ+a*Cޙ%tOJe^0iT!2\3Sc[N<,q 2Xg8 4q\+9eKLh54Mq\+^%rUΕo {1\KjJ1qP) i=a\I=SF=r=e|EL9l_&iZƋh/ lPGJ9tS5|Er9/6+[b6֣hm`G̳SQ BMH/Ql+:+V57Q@Bpw:-G-i,@bB>..3!1V=tBX]Ds^Z !gLDV+Y<lBAh2D`^y˅YQDhۖjw;)P,C2.zc[C [jIw1e2LJ~)^!5X=Y[lj7 ?^jqXֱmT/ ʯ&c?!׫󙔿v!)>tm!-gtmv:aHa4ٰO!h"Go:WɼMGYIv2,fћ(bssH޴j$C +C)f8RU [) vz05Pkvj&MgHrvƅ)6],‰0 lkN|6]$6_ NZ E>UkIg&gsuƼ@@CJ`t2{_⏐dj-/K;Hh=wpNL5?OR[ q$Dل9)jC(KQЛ,R/f&`YgryTd4юJbd(ڴ|kl{@˺t5):AxeX&Y:E2T! :,鵚ʄQg)/LSix?sڬM$R#\:mE2)6; +%2oX@rs0aE+Ϥ=԰0MlP{صԴyvȥ;AZquY!y fb$yDI;|POB!=Oq@hVpΓ1"O=kŝhzTkoX*\c +&+||Bڤ|@V;\]5߰8X@ X*>V+k m!.X[]=T|y"vry}EͲ11X\ l WZ^qpg읥Pp@HǹHGQd+NDg >uSEEK!Ƿ]l=sQH|89zFoBb p.yE&WAe&Vה#/ʽH51$i14 +˄_2 /MU7g?Tp'5MDɅ +n;ZAlNZUʽbsҳFy +-~BKɘ +7iVNq Ʉ{N"yZZ+>"G雃)wq36?]8QAƂ +yO)OL'V5 ӂ.Ү̶QD&Dƺ9`R+ec󶺉aiK?! >*;Y']c <38F#7=wU Օ{V'g,";_PLB#g/LMK˙,R@LSC 0؂=p؄ݼ޹oݺBc*\/L/gdBe}K{;l;y,g_0i!L7 u݋(3'83pCX1_2?DQҴ1ŭ2̐#O1Av9w(ee06Va}W[Kopv +b{I4qܫQ⭺/34H9%k I\:=}륿#G\THpuUN렗:׳hB_Rܰ~8ꎇie,]T.`6I݀>gRpjW`>Pk*<[=`syR 3N ضjJz"[P^[IX+}="Z+) W󱕫srF"n/¡.IҡEEϧtE܆w؟ͲYGFlu_V#p|f!+G5^ŐnjFcL[H :ǧJm Vq[ňxZq˽=`{|c__º6ߵK.9V}w8i@B`~}7G;LgVB00Z >D;LmTKD=7oz&c5u3L;+.٨9|#,V@2 `w ?RY>ـBka@DFa8i)I&躍c rNK Tc6iG-c-c-]6aI!XdLJY< ڀҔ:I U[İD)Q 0iW( i.7+C%R[YU)f}w<CH7ʩ̘{l i3Z +626ةr]]Pk^JLoĻܓ'in7iד!ruN!<5˶­]Cלb~sƬl]"Ԝ|7p,+=:\S9gtE gXGoݑ:yLBՓOf<&WJvtPSNƾ?hҦ>@I oBԻX}oq)^ b],xn|uyymk4N=TéC_*쉱ڙLj[m9 -(Ec%/ZT2o/v4tH&%K +][ʔLX| +Sp"*jYHe)}m*}YX>KM`KhѢuа3UZkP=vA o%F]vvz[iwhβ0.j7LU1yFt:4d8Zirpw$cNuiV"Al"o1(ylbS1 oljWYހX\_(ޜ}FmݷB?Db{lQH07ϙrάcHP4W '|U5-Ab=^oI`-{V251%.ū8Faoyq==Bo,0 (3NnEvJ- QeB,Y`fPԂi0VU?yCU~)m`5 +),0 HN*$Ԁ qn9͉ѧa{DM8p8p4j +BJCOv_uԸŠav89"[3߾ϵT'ܵG=}"^^49~l>kl:uRnw)fϣT=gJ+\3 +{'39~$*ա9{0 hi*"'),čշIry WZbZk +.F?GAeqyqȦmƚ6$Ζk'Gl,J&fNΎ#86I3'8*I QLEW=֥MMRچPڶ9RCbex6cw۝{c4G$F?boKwfvO +)wN^7V v[tBW7];̷.= ֻ8~.\Q~+/JÜH HӞ}?w|}\>?#,El@tyA,Շbyv{ͼ{>tjiti69˒kCT w PG<+PB +i($!9@5(>{ Q>P hhf'LQeYalr2ƏEEi$(*aC*v7 爥glp,t\8SiDS o[BUG54'ȵTdžh+ * +c4'Х=ѸꅚC_>l|$'oj׫vSC^tvvC Dp<,GGVACl P3;ļsI2BC{؅]0WGBttCUa#w?(iC쪯G{dTU; +z\p CN;-Bd8=2zɡwn}cp ߃ix^oalv;]Eտx>vj4=Э3RiKXV!fd½UT6UzhWP2?`eS%i&'mf_rVbOX hMlas3TnƒҞvЂLAgfRm"]ml ,tL8 2-*2ÕY>2E)-aX]n*Lx1E$kmЏ ߋXd bpga{0fEY%$ș9bustʝt{/4zUsǮ&fO+k([Eg)iIBɀZ + [ʂW +W6WKklz /-!\¦QhAT3` &6XIF7'EȂvTit$%C)8nDsclo +d-D..b:-<6TRbb._(bA$ +k\)%ZmKhɖv4%I7J-Jm8N%96<# #7oK1m9@XRds +˘wdeq*Q[BB7'p\0Brf$X-Pg$暀6]YՋ).B"23\9nCt<8g|0B -NECk__Zp IH6>%}uCDkti7q"C7՞_}/kyɦiȧcRe=UWn )0d/j0>u$C2uQm`IVX[-$3z4ҟ'"tj{ђ9NKފM4~Q +&\O ,XR/?8fE69uShN&$D.tpD r" 1ЂHTfYUS36{휚6*%ۥ? 肌cƥ&~0=P!'qv'#"a;4RB6cNG- 3߹#81!Z 0,O~ +T {Ǥu@#c&l'jLǐ2qD?] +]nj +xYTPK@Ųi9W[پjtF̨6j) 9J[CZrܞj(g Mm)H@y(d=9`4tPO)o'} Jq&i=V `B+))C|_4( MH"XB +vHVQ YUbWyQr9#s??mE-X\!;nS4CVo +( S )Dbwkѻ2rI:?|賠%:o/ʢf^"5@ nBcX'-Sv.?6S`[T"t36 +xj$y2˄6 KkotR6%7ꊳ%W./;cڐ4(JL9+;H(6, +eLREfѼƭ3Z Mo7f7ݠxפQ.'49(M;om&D݇znJ,aqȈGGgݓ}/#˸C걍ȏ0K?JH +oE"ǎ&ud\(ZDsxʾ\5@3gs(Uv|C'lޤ5W*a.PI>nqak.ZVbH[w[&%uO䄕FvL@^)vC;ˮ!A9RN\>2GbW_%c}\) oUc\0.Gذneϝȭ@TӞeH. XJR1<t\Zz7 K8 +_<#L7E@޼|ej#'ϗƖ\rnw\Kf—o\ǐ2n{Y ˈq 1j}aԦI9"R6[01uf,[b=Tn.-BVl 8=@ssLGdP:lY+eO2C}yhk0[0miTx"f2/Q}.aBp.B5\XVWcgg!aא.~nQ˄IM8|$)Kp]oHu +Z`30xAzXBI_Ӡ7ZT)lG8iB˺&Icq*=4D7gxYӳp oZ!M3S\[[uߐ"5- BKwuڅs~Y&V[iPQvV3z>8-lL"y aU ؀VX ydͬ=nBEjPx]ٵ;q:IؿnX>&Z_buxߘnƂ {osU.:SC gwaZݥgM֕sJvdZuQ$lxbQIOUz*ZX^ևIi|+;qNV:CB=loP5F8 )M\CR n cʙ JX!܅ + qqÓf1k8K#LrZɿ!iF'L[9lsWqo^jjw߱#TUM-/EkYCk]0]hʗfβ:Y0 x\|{Vre7.0`1[BIWKŒ]z_A%en͂bbՍ'N.6>Ʀ כe`ؑc[I솔i/Ҭ`-uŰu\\NAsB!M ?:` @]s4QZDpe(riV~h~P=x,s^vC+7~/=Tq9!y_}̤ +{H(dx̌  O߆H%:>-0@41uƂ'8g&˥فLE|}cO-sCD&}N jPv!P I4 JN#E S + Ɓ\<,;bL*Wm(ѷ~e)^Ca҅R"R5n*b4 DY#,Hr~1w7 +f]LCb{ƴQ)_߄ʪq6 +xGGZgЕW,UI]?ɔƙ}'ÊaɫZn1 1945m8zs}lBP[ۀH%K\Iȵ`Wl(RuVEʻ/v+#=NV9}] ѢN`i9:&~KۖuG(CG]C/r<<{H1lτNu|^DߨnP`;OkBʄ :l:WadQWAbQW4LC`!!!CfCdAfAdAdAW፟dzx>ǔH痷PX:6H1L>{c5&ehhSƮ7_ӫֳA.H)|$WX2(L4P~*!<Ƞ806dB(&sLP7XIiNX^G<%_Obb +9>DGskỢyDG(1~c.XP>6 ;N@CW)=NSfo7 &FL PM}:RvUȦF -)MsvhDxVdmLRx`h֑1tLB:{,ޔn{#M9x~P +z(l +\hMq%ڕk+\U?D'Zf~{+v +v;Y /nفɞ}y0nnUQ\:-5,3|2be +f l|yJRA Ɣ&MsV ̱N,+ғڑMa}9DU~߭+(7=8lrlWGEkx/t>n3vh"uQ|ȠwrY0M.cܟuv3'R^fA9u3WG\n3M' Y+/T8kz+Ho\HX`Ўݛ +泀?AZvbz pIX_X@eKJ/HXt,m8E$b%s$KV% W@*2 lH,W$lm5{Fv 緡L΃JFOdֲPj)uX" +Žۅ KXEsu;,<E'b|??;ɫ6m5%; :L%g̐ +5,uMJ[yomf}m Btx$xdxpD2D7x8A}? c_Vg{}LH]&6o1 ¾"MG blW+;f}v$}j5%N̫Kڰ0ea6vPaEJzyp9oMe̺kdnDD4] +p>$&ʇȠ 2T6udXEX*[jI.Za/W7:{6[#;` rٺDu[wRxinӀ[ppjqLk%XQK.lx*'3~mHfiΩ88ZEz$g.  Xk^ +U]pa?Â~{mٯ5t9$s%e(m,W N8' +xR[#dYL'VX5 >M *0RWi=ϑzPгP/e2}'B?Х+_Zպ O3_e; OZ_v>-A`d%ӰQ<@ ~}@8wc)o0xemC$jx ` ضm>$R?s m7V2?BMT o־N$vȯK* f@>(0ɘ`ٿc7*$I(PR'm$ۯ{ :T$GH%%)pиosJ.k^kTɝ8aӸp?̪6PM^FmbKS KD c:FdFpg1wٻA?͕e"[]򶯝zThz18|c:`ulO= +uS1otE% +JRDs673>hU}sH೦"|.vAwh~(rHv;8.if7Dqԫa|4f/eEg퀡PMLZOpM}RY@սE+dyq&hA-x^K)yWM+p|n誤 WWzkքϦNIZh#-ޅ/1:p*!쳴 xΝ<L؅ׇU]SZk˸j'n=M[G/ɽidT`mU]X.9LCkUm &idK~ܴkP91F"2MK.m"Wg`Iѭ^w$OԺ&]&{&Wę١$Ӯs|pY9 'goҾyyI~X/ԭexl {)`Y7)SR?qp"nDZR1]hbz:;ԑHl"62FaHn>GUh]ip{Ôi4wA[`,e7y9jw/kr)Ȣ` +sSp +߉Њ[7h'oEݎk8]O^vT>]W يcja  +-CR!?##nL ݞpz.$Yցd/zqu܀;-;Ԓ0֍X̳YE +Dշ雈wҍnj4w.^գgq 3YS:!aFn`֓'FY>}܄(̌*Wy3ƋƗ_᛭z}r`42Z!<4UajVT܏|ʢjC*-z6%j.'Pj[QC/8n (~B1T d tb@""pC,.K10 *2[d#0i"aU =őP̙Ph=B{dk]kyV뵺 +߿tGD3 `l(dmgd%%(?`S 뭲ofLO$@"v) /<"Fl`:޲BgomuXfS +U{٢sZڵ{mG.q=qG7 էL Qw8Fr(xKjTWD&3̟]Wh.fP]Az2ZPKQy8SƝRj <ߏy](җ,jiv Rǚѝ)>21Q{Ko'_>L;VIVSWAIu6DY#A{4WcQB*@Cժ`jZ+*AѮAnj9@#ۙ3{/2ʨ=~u:dU̇ +a{s:U?`wU3まu:aUOmtx{g@ǣ߬Bꗷ(ā"G E[szChs U*aÉ}Zq#5(z! n!D#* +Ł += S={ +z(s)`G!1Ԇo D@#x:C J읋+ptuQJq`=*}Lj􅉧RFXT&S7'ג ,@&"z|4δcG(b[/K31f@N8B;HX'll,;BM R:/U1lIƓ"I6E>_zm}r$mw^ S\[u4-3VG˒ӈCh%lStn-Az%{A+ex<$Z")7ZFm@<&>8uS "DZ,l3܋bLtNnEhmJ0ZǍ"uS=3!}:!Gg-ˉ͔f +p:#ݤ$J~>MLt +SZ''Ee?ɇeoe鈭2|Z%$uf!L<[ѱYBtxe!PG%b%h@›Oy4Bjco'‚|l=Pj;XjW03Kuc, "cnT; .6XQG]Xe="˜[䅫{`c"~;.@MeXlkH8#ǖ#P[r%Fnj7*3 >V>=}|mz!`{`n,`Tˎs]G!_ɅN!lŲͬ$8#T9<̨ 4x#lzHR,#8-ڠRz0c/[bYɏ |7nؓfYYys pQyCsVݪAsg셗BĕpBФU`wؾLi>)x&a,BA_X練}mVny˾ 8IZ `ys侺AϰQRnV={C^,;^(czCvIݵڰ{a1⁅3j̼2C_y&LQt^ُXWڰ":YҚE*ۛ Cc|($^|(v"Jr)P@V1KTleVJCW|`g$3Rd:(}`1y*8߻BM.YUQ̩+DÓn~z{{~#VYӌ` +|7$7A _wC/+-q= ؛CdXcbF3_?|sB-O\8cGBQڑ<ذE@q,oUm_(B,1h,9V:'W4gccyuM6},~Hi2j?0 |tQ҇Vnjes b!yUiS]rpZٵ7ŠҺT@+iZ-V?Sةϓ *!Hߏ\rW讐`Β? ){( \p3C>EW]zyF (|8vK*5.$e]e#҂Ցz.XR:V$2o ڭlDA z )ڧ6@kfrwNSW&A 87xDQ!/x +Ș0R3a + *K LlEnqcKdTa%7l2.:է{}BF~:f`R{@3T쫩֙Om,78iRJ6S2bBe׻lx Hi HlqWZ4CD;=E./_ƑF^@4dT`iZ;TAcKbZ|“ +ZC iŴ w,MRJ~p)\3an?' lO%ʛEy?+E|Cc^#iͅ5|$*{p&{j`5iC^8>H1$zmt +X@@O.lkx $w|v LlH/ c,yBd +ӣ ă ͱ8uvc^4?/2$%qkrh9ɰFG|KgL׃|u|`v=vGuF=m[UbŠ ^07ƢŧI8?@)ԡb)̒&.ڼx0mVeRf_״%l.VWΟ􅭃-7Stbބii0d8~"kR,iB=qIeۄ(u`h̶:P2MH:׫V>ܦ),uakL9HhlóWrfLK6cq~h?2`Qpr*#=܋v +MͿ=7=9Ee82ՓX޳?j"&N氛A@.D-agg Gr旸KO]/y{黬iIݯIu?- +ii O43m1S?ْ#krThX: ]HPܭ{J"Rol/ѣk~ҥ.hnٶF˜SXtlw Jv +B A¥ {kGCpqt+*GiHfOքk=ӏ֔4δ Y1Yi)xb#;* t!5բ +e2`fU?K/ѱ[`S6Nw5c N k3tth$l%HI@)P cqt!obAɉ9N`f{M'`2ݓ0Og%mydA_SmW]ZrPt G#ac]YK l0.cnaӲ_es_ b0)i^7'LԆÃ0U|ۯ0<,#{f>(Br &9X|j·aF|TB:QUMMI_RHFW+){7aT)!At2d\QL-`^E*J]h8kܞJЃ-Lm^D1<-@bi"iXl0exZ'E눰ܝbRj N=x)}dnB`v | "y|вj,IXXໍ׿EV]L'<D@4"i |aS2TII9-I}hS k_>#IAA.082 9`I|qt?._9GtWʔ>uLDW݀!a<(j? uѼmOÃ>p]CEޑG~K*?mrX Y\hbr?s8yX`L\Z}>-d'cH|P]Es9FLW*q̈@CwY8%*)CƎ&l}8J{J81.x[aF(eHfSXwq9ozSUUK's pBgqȖ͖E^8ywDuӎ8+BN~Oxr +" +D-F9M +ǥ?MO`+I{ά;r "48j I(H|zcVZQorƤHmTEsgTl-IXսբb +f֦΢ίNro,kg]L -p~\^zL%0u=֌&O!~q]?T|yɝ0齚3뉌LcH';:MH#著(W)~Q3~Q}SzNzXڏKv +[t>Pz["EiL'D$U][ՏzގWtO]j̈́N#{]~&BiτD3Ӓ8gFn5l#e(igFk42N&DRFҏ n#ISovKign?E.%clj/WbbKn'YEzg3&فCs_ʺt!r 7*;ivK'&GQ_"[BA˒,ߊIqTd, +,ĨR*~u)C&Mɓ,ov&-bDǬ͘vr9uU :M* lS\G!C1u*e+.N$/g\9$iE#T!Wn+$abDK +gDX5TeWrU$'褎鷯V0Ƃ6\fz;pd{|,92j}w UUۨӳHi8fBHVC7YdFu%hjO5:ʩDaa«>d/hdCeʬ-V >`jVعմ\FԚaelF0фٕo<{0q.Jy((jOđ< {"B_;0Ȫw& 5SxA%7>jOsU1\HrAhU|=j +?8:qȎZPgډ*`a|VP19T<*,yE-qV|{h&[`+TeMon̈́jHG)4T:!}A[Vy8N;nӲCt;ci*\JTm2Z,˾,&Ǽm!@VpQ |ƈV 55m߶$+T-thu͗u"Mc`^+J]9h?ҸjȪ̷7!WUf;Kzx=Ć(gD綊TxEz)S)W ;CjRjsDYR'3x$hh'"ak&vT2Ee_E +1RE8wKYNnNk@R+r)8/(,֣qlPZHK&zDI0.j@4W+fĺ[ ؛v&$oJ\ &I/ pY9? S.eo  cciW[:VK4[BPXڭ'8D9I+N۔1rE W7Db=cH9L.i}_WkP7WJbY;kϾ&ѻkmڋEV<_nNd^.&S9uD~ȧ9Bfzn9"p;P4~_K-iuA$|Apx;>;$ gK,`k"vuʯn`TJiy *UZr?WMsHe1"``K.E0 xw ¢I˭dsڨyfEGnk06%&O1a|6J_ߘppC0GADx?ߌuX=?C)I٥^ a8 qVrR +ɥ|Rw#SjWJJHO sB۵"E'b_Jw(ONUv5p}Q k'#W C~|"XOy(,2_=]zx%xF|r6,[#ZsL--Fô7@ؐ 9hByp)5:|kq&,| S\!HQ9CP->;M&iKmO +M1s|GPgQZb['*P~,%x|6 }8|f !|2S̊a=,V  xx< xF5xG6 +=2D !:P#$$GUG,Ix`J4|aYp0D]Ѡ[rEH]VvpGë.za%.V/%?f$2{ZԆV/>O4Ϧ}~8I,f~LۂG=@4M}_" +j0i;k۱#j4 +4PvUP4U8|~CW!G=ebT/ӢߏT$M)>@ۋ3C0UUY?@L+3lVpVTGztklU*ZDnq-C.O;y֘-s<w^.->;7.ՆTdGiV uZl[̼UJUf@N/ +A0> f?gmtd&vr$/vB$^/$ y|9ƀG&UʨQ ]/qNh"r?_Dsy⍐#И5x&KBh0~]r=k鐹cbhRXgI 0G/1JbD/1gd26VDM"ȝ['x4&"R윚RCl{|Ó:C b0tZ_}ȄUcplq-TIqE.q-1֪L_l9zT{)](* :)ΰߗ +,ML,;>҅6n,hU k].}h*ƠIU1ay\^+ \~_Lޮk;Xrf/o;sVMk%?o"; Ze84OtںPv"&ȃR^!1_3Nd`zF} >a9ꅺY150+g }-=$1rJ)1?4]@p#̵_%$ 16y. [uFn֊;}kckT;sܩu(S6mU.g6oo/`07L( &ο([r8}~8lWDH1GHwTo2(0O_*;!hf{\~۷85nmR#[ә9vQ&$ #۔(e$>"7b$<EK0E{IXk0LW1!L7~] bz#잎z˱IA6C_+*i |*v+MWg=gϗl@|Q%ɟS5QC>3vXJu,_Tĕ/eXSwN3Bۢ2w3;)Is2a=P=mA{2ZSYy4CX[g.РrfH)/nv^JU0ĩy1kɦ8[τ+8+6`H_Bef1hܘqbe9I<:@f鶫lɻ(͐Q%˙iY+;)$msXsj>봪0Agf$JYHȞ57/#&,.jեYȣ~C#УCKl#31FASbrBSVg{2Qz,*R ѕ+gNMCq}r5`'۠2[ԤjpXnH=K0_lzcVHZ\DavTlJL>SǿFZ5]ttEBCCtG, +t;@],GL$.T\TBj$ . #XuO#]Bae6?ٖЛF5AH;mmA& '+5\A(Sߐn0@H}~`j!0Dg}_*|~\umEa@Ď>ABd4@S>HXm|D5!oȗ- MZ Q_7H&BpF:Mjy&5AfgKH<ܷ̋ᑨkEɟ:ooG~Qr/oJ<4_ 2uFl},z+]PbdGQa0GԤ%h!meGY:' .MK%X+:R45ǔwKm\ZC_ҌcHRZCKz)} +4f :"5YMe>_[Pz(sEyTV񾧒&9;mҭ~AGoκ%q}D=d"ھJԇzW?gM+Iû{Kv >Hm`?%g'bbjb?UCQxM1AO1~b# 3 +I P#t3̷3fyq=| +24{7V%'v!w4|,ʴGEY&2 MhhN>tyiA; KNtyUk=dٝ(gwyk??o-ZsD2`}sg;[X;W!*N["(~$! +CjRZQK¨VE<*a^ꗛwoMV_u~4XwhCPao:GRʊTada5jcW^yn5<xWo׽>cڼ[WZY;QXPwc{vwrwv5%* .k_:Cc-5[-=1Y ȶoו^[M +W/I,Iw/m =;IO]m&tcwJO N/b:1G* ,Dvܬc07d̞=#n<>';)^m%`s,(%ЅaSV"ȥ:Hܿ}.nK`aANS)->Wp +<2rDK'Gw;TZ9/1p!7DFWiʑK S);R+*1BKؗͮj^8/h3\n5/߶N3d~rf\l8T?:]pV.ZJ3;u]Vvrl%ϻQ1ˏV/'}|=RO`M=rHO6i[BR}W%UYޔ6&fy2y$/Mzgkg$ȱd¶/ndN7w3U7Q(1 \L:Aj{o֜Iok3w㴘.@c9Y:Wc.iSʤ%lS\a>kS_~qS5}w>_7:DZL$ˣi,fy(~ڷPAa3uʼͳ C!zEF|̞B01Ϻٕbv:%w7sP4U0lNvTRQ&7S$݅cd{%ک7.gZEn_Y۟Zi'Zn5DC"rSFi}뺮&8unO)œzIЯZ^G8=ꩺN0B +r :p4h}:M]M)Iby-oY^X(9 Tnw tN?p I&;u,DlTo/!huSI0^Z0L׍,\(x׹9w5׮MQs]fڽy2 fm;qЫx[;Ya#k@Qbf. +∫Y'! ?3j 2jɑX0;6$ȡ9.Id𐿸nvx:zo1g\θpV!YAy))ҖY]eTLJ/srF٩8Si_8ݕxv/2vE&ۏ\۹ddU-ՏиU/Y)gX[湖SY9H-V +Uׄ !X߀HA{{1=Ns:.N319sdJA?VV[p؇Vz^aŁ&}DGz漭'b"R3fs-gw[n%zQO&mB*=O]˧^Ԕ\?L?\ +"ɻ%a>紎i{8zW{e6?L()i\yd Jr5Bd9D4ڙf%mXʃٴ-q2LV+*`~uJ˯͏~u_3cZ \J +CeXYYAɃ|OV%;l~@c'~Sz_BY2jJ(K+C:_YFw;'GEI#;J&'YM jB ( QFP2vk9D-$ĂPf\*B=[h !i )zYMD0H&$ @E$/1I& G-X.q;th @fo]7څĺCoCdߡ5-Îʉ[SхN#^ +&[21?ȃhKS"=OEbEDGP#DziJ̴z2X<mWKf +Hl +ETa$:\ E::)B( 'E9X04@pd)ˎ;? q\Zu` ծ^c4x4ռ6,1H->Iܦi4d{e/j̼f/68]U8ZPM)~)4cNKN{O{NʻOr,qq m_-Ѯ E5<&xJ  ~DhS_}kk/o+o-o)o.o*o,o(ن~ |ፐCX]) g j|uyz:1f[ e0P5ZâR-6bOF1w>:0 17{g-g X|x;GT Hq?t2d0A^? 2XL%>f}8:&6& +Vמc>2덢]zҎBjSZ~Κ):m_4+L/f` ++R! E8&F:xUG\RՈ/^\C'&WB~IEuO<ЍihC Pu0 pm +d1M,]$Y. A<~l +P> 03/ M[I@T3 ŐrH)A L٤y%/co+H|!4*7Ag)7[m8IC a M֭m`蘂m\DcK7)|!&gAAT;iˀ*?T4ɀ|_HF(QCC_z*sDh[wTj7V:џ臭yE̽^SLuOk{wg *ŕ_l#_DtpKgH?f7p\H<ǩu0dR2 +(l *1^EU*cY<\*yYCH| +آ[(%^_R%_IUFҘE z݋{GU| 6sHy#qjpwWBw.5+lsɜH`BX .XR!.)He!=\u33|He'?l.[-L 2+`z*0yQQLYdHT<"K&SúxG}q7jju|"5@Km&Ksz,3$ԅTtXJ腰HX J3@]pK_B'7Rv5iښm&>暄=Ƭi8t/!G֘䤞D4Ƣb uS3>[8ªb/sIa/edCuͭޘ>>`aGS ׹rGG[6c 0߁+6Kt[Աޡ-&ԋ2]1+yxk6fSۏ۫o燴mol/3Щm w u vgw/޽ tju.~ X1H`BX0<_ sm~0Ӳ&R#A*/j|E+*F<0\N{gx3!#Z.*,:1Bf+Je0Śeؠn:j["rNfٝ'r'Uw#!jE'7;aG(0+#<2+E<Ϋd͑`ʲB`$'~r) t'{>#!Y"u%0LeYx{JY{6ˁ+<2*&r c?l" $޽8`cC5C/ÓWD=3Lz"Q$_T1dw)I?Nҟ0/ 2IP7D=OGP:xjDadrV6K>Ct¥/>h W #71ȃxA_vpeJ_qƜ9ϤlҚU̪c/a}Iٔg/>]Du5+fy}~,{}Qo4TC4xϡZj4_nwEpU}!^|2׊/R B_~? `c'ԥݰΣfK^;|ASs/u +?v_X(!a28^80s:2s+smaZjз+PNuS)xWUe~ے uuܠg 6㩊kEq>y@f;Al'%%>l%8Tv[Vjo2+=|cVQW:aNA{;9|ynP&-sZH"0NA{[->}U[:CG̨4B )F̰+{&䚡_<[ξL{~l +R8B Ohl !/dЅhO93ڂ1'n w3gЕv9av? <,g 1gTjؿ#Epyo>_DdJ-6+?h.]1[@l)y"4s{eL6@ Z=([pB1O "hyB&7j잀=?7phYB1#-Pu˽O0[97[ +M@O,/RuWGE'ܨi%ht1;j_qȇ~M}LIY*RǗ[q#ꥻq_ pe'n4<6R~bJ_@9}`UF;H!G'DOx(9S11FmKik_6Y:twwe.z`w[7w=Л+9$~6>wӳѾ ^ +̄4߰5>̷qaW! }Xb[g&%{%qY=hЇǠA/NmۚUC}tMյE +\s(f`wg r 8 =7/[~WU,_;hu|2@M?>`=Ȏ;7{o7/Fo<75|j?\'?^fD_4pPGgOB#g/O?L? ?~ +(~0@'-ß&\WOn`|Doy׼Mow@\7$xעq>Ye.ulu߽ _j{Ϩ{-ﵖuսu j) ZEh# 1ݠkz9\%ti 6A.XlmemTછSO)1ef+o%UfvA&SkggdyE )$s*TԠ;b @:(lk y Љac% +N `x { zTMzD `|Dt9<ߛ!{ gM-*xӥn=[n?SZSvp$5SU 1Eݒ.UV(FZf1󄌑iqQF#a oe !nX=r\bDlבWn-cF'oe`x"hǻu{;?35w/UwN\ӧHm-mIž`>^bj`žDʾ(M<_^ξL mz+wR+iƾk~vf#rWK "'ƌF3!==Ö 7mW0FԽt=t!|7<1Zl2 po'_3f<,a]GFphTh8P귀ϋӅ ) B V3( w F'mo.'f[g;)z( c_F4=R*$(r?'qkn˯5,^:U;)IN ňUH%%D$2R0Fm(Aa2U1_^K7lO}wC܍;0ձ逪w4^rl~3DѕTiwJra%W5Wѿ7͡HˀW9 +:L3 + itnArh3=Зok7wp"L!L,'wxlR)39(wTDKwuwL.wv¯-l kc^HPE<𷲘^~Rur_'ws)o +Di1^.X7_,-erhF!xԂ0bV`j1 H%|AACncgsi7tO'qACb@,Uq4G 949)m5.C'd!"LBQ6$Q 6]TTVVP#Y)zPGYq:):m,Me~vƾ7‪mņHGRה +MU5Mm h)=e=MN[MR=Ӕ4yZZ;fN_E +9}&[]ê:z(?nuS4]3C-eUE(j,-=nVԟ{jL--x-umY9MI4uIb`+ k0ij)Rli%b**z +:jcn*Ο, B蜟>BWALBnzFnh)+j&WEr(z,(H +ƨ\to;9 u:@dM" Ut̻dj~Є*AYk%]KI[-OSAKG9xuuEOv5*^Em.psSW: +rDt$^5bs/_i+Y%: ++p8 +OǜcrOm-?dhI4-CWKSKWmg$0^KCD-u\gqx>)863$YgWIˣ(LW/vq+&o10S5LI4 \/a@Z ӼK$Bg؝s+}yΟcP6w)bOҰ^ MQD?C xE|X1ר$bQ6JsTK!brHR%Neƀ_˻_nNLhS~u&8؁Ah ƏH<%BY >ܝ,vϘؚXĘ;jf Ŗ11 YN\%Lj~%&'~EԨK|#rnf&,f̢؄ct$ދ1hcx"%q8*@$i'>Aei'^b*SB9M\HIű)Y+-V^VSzQ KoerҫHltpMGR1SƜsJɱR䂩q$.y5Y}e!A=,/Mw 55v׿MRSvhR`hlESxo0U=nZ) {>XG ڢ Θƪn{؜/wnT5U*ARliLJOCEU-Ζgpox4wYMnx o{Q)zUB:M񡕇yS9yI Y~)&6d˕{^5Uhr)>=jfc-M[-v7}CG 52ht T1}6KҦ s frU'[DIQ+h:mdf2ɲaW)*iZvXTYNuK@l ͊QU6- j뉧=Em]Id%vjtΟ+X! f [KM(~6M:a{jLceb|,|ۅ+b7 ',]M=T!s=F;֔e?Ím$mZnlEds鸝36?6Nhh%Y^dA^g[M)-#דioK¤׋3]`;۴Nܤ+t4˹&TU$G0I)skn GTM%\D17(e`§?~3ߢvNY7,~Ww`4@78 #}erʸ/Bf%H +\GkTtmoqEK/3 ee|P'>d>=*w'n^H4EWFBu +lnE @]j Ρ|V@fd`` =2M v?x5ē{dezy>N!-B=p-&@΁_m.7Ng;P&ge0צ(X}@&mptAX)D0G"F'j{OF'q k0e"Ā{b#  [-dήly'eP{&@4nLqbꭜ ̱@Ks_l(,-?iN D:md8t,BJBrf2 +d-MpFN|"m*y.t?*0O +D# @/>rQ^>9R9[N6Pf8TilP`N6|#؆~>9_y-nqx@ҰBc +NB .I·vSnsa`mP)UbVI^#KMhC]'ҭ=0VLR$P4 O.`$V!E`KO"?NVRᵚ;p S #ʖBNy.$C6wUQ#&ۀe4N+ۀ2U7Fe|!_vF2RLt{~"0Y_2$ٿH(U A&aC9XhNWr稍F #Ųbs ֣El`{!>G{A` PA e Stzd,q }ߴ"7{7ȝMp=P-»6S}p"/w9>\3ϴ4~0C̿!Pw!LМilN\("hJrnΑo~ʰ"dkX|0͠;uCU'l ujQ_G?R#c=-Ba%Ƿ$ *EЂ?9fG\Uq֓-"dKovw z ل]hE9͘z JQ|> btZU Zhe_鑗Q S $^ȼ`8p Wnjd$Jo'*Ǯ X/ |R(ErWova.P̋3S. u2?Q{h2ofrP"Z]`>RSPY +(cExi'l~Lu 3 +Ṿ81r0ZAYzqEd&u7hB,|2N:7R=*w+&`ns&WMAzj_7@y +Ɏ{٧L~h+&0% @gRq_L̐+֡/+^@^ȗk;t[MTTJغ$]msV>`VDXXb ۓC6a,5v:s6*ҳŘ.FD?"%z/at)#‚nVQ"`m\.F{Hm#:#eV4I^0JA vC̓wTthx&N HCL^O9Bta/m_zE"ŸX` ݑ'#4Z7x#S9Ei:%^h2O)ҽGR(oR=㱽TBj$:n̢%RJ_QiψGi2X@&IUʠQ'JZXdvM"&ե7}[OaR7$=&VZ FH+qI~CiݭoHO/6$k䐈mUx2~ViW~s] 9`yTNZFH|p  oh_I悴]-l<4lKVRK]se2s%VV1O!-w??yji9jߛ][fi "YT&*[}$ex`Sn;,Ȯls8.$88%j/Q0M$rKIKJay)"StD F-R5Sl.f%<%<%<KZJse`r1)#S#S#&KbnQ.ǤLaLeO6R.!R;4N:Brv/NKaēɑF;(Qhq #>2L2.a aYD{7|ɞT!36\@w,$V}8?'᯦fA'yT04퓖pm+҄*(ԥO=9 | `6>Wu2wKPcKVQ;~C*8EIEt| 8}^wdȇR)@,dc,y/̵)>. ߟ}8bV) 쵓X˔š.xyP4)̐PgR~-0_(KT(R jO:,oHS vES +X~ +PP"&ʑQ<6ʫR٠! +נt ^{@]=@JSQ6$Ȋ˧| +]Th_᳧z +!SZȡǼC"nɅe!^y^xES&7Hק_% +_R8XG},7QϥnR=jtyţXGz%XEX j%SD~v3 YnO+ mNnT\~3ʠ5؁dO\ ~m#=GFv(Ӂ *5Z]tU]MrmS^m}JQ^>|e4X}! !}X#|p⭨x/? b^~y!+4vDSg7xE!rkBv +XOUխctO܈~S=_9x/_mٳn^\RiEs6=1·ɠwBqzR(W /$9*m#$a ԨL\W5%dG@pKqH t{BkoP{ +=dK#nţd<11bx")J0^69,ܒ.y!1DX ex0̠jc->l9ė oGb$v3?Ѭg[A臾p/[5 3+E"6%bA]\1'dfn.8rrEo+C핪ZQ'6*kil3jk٫ F I]׭d +?ɢS]My(Lwu ̴NXx͠ NVq?D]YV,BZ:o땒5#@.WjhQ_ş _Ϳ?}Ss[d k +])H;vǰp0@ +ڦm1!tK +MM9ڦpRFbfc ͪ-$ Tkp-d`eQugGr<,SF2lS$TA_^꥔-۞ K^,mUXڀaK]/WgKi;vԫ5vQO-сΒxվ*,i}TbޚpGM{ׄgLdSr +eeb’D: I̊. T-"bQlt`i損nW5,C[Br 5b[ߒgaAQXjnP++rJ#14H20feVMsb끝q%QBĥ$'9/-l-:7[[>2< # :M3}Ӻ̐v k4d>=VKo駳\o{ +)w4h;cF\Rųo$>iO\_ M߯`I`>SN1Tt][q4 +cT0:׭llȆzH<aVJdz!IXdNAM( 1r(f6"Icmb"IN}&jjJ SpRI +I`1p:?J "[)5Sb(8:DzN]{R[*m푚㡄.%a,IޢX |\mX*W nEX*9.闚n<#o7|)%icwZɳ\| bk\#a쫧+g^nKW˥=ˌE#Iqu݆la| P7,㙢gxY0>X (TZDoo%xBm{AKZMr0L4Z`Ygا_ G};DwP6/2# Wa%;HHLe3rl2ۧKnu}lt4[56L4/¼wikixLda3Ut1A4!:]Dc]W\q Q{>ʾdʡ2^zYλ 6sSǢ XbNgɻc}7d*?h Z/#cOH t5 IaTRD4lNsC;p9TjA#A?@3A1`Y*X/㰒q^z$ˬ\m~C>KƯMwQ^+Cy>fjsQ +Fl>t+١ Uf!/S .ނ~FOomX~k! *gEOW 쫅Qxs'!oVfo(b2puKQ~oոCz7VV_hqp9^V:.%Tl̲?Z6%,b%bQA}HUw{lo"zf5z)$)6KPݲLi]SgBD/{eG֏^ؿYs'b|Z$4R`o(ECa +`mll"Fxy ocG*1[qp!7Ӫc~쮅q}3}C~Y绦.i%X]k3[+w#uw\jK#J2ka3{c`= aLԎ)Υ?6e;v혘L<;+BGz_~{k#urm.Ώ^:qc\ H6a?nY8o pΫleiYϳݠ0OxE?SRY__1ZnÔ3 ]ex{f`Ʒ; Ab4]I}'\ W i2m ԋB*~+ܵ6 U`jβf];l1U;O"wľ%j2|/?/2oA^o!z^Kj0_pJ>Kb<=|`WLJ>v]qy]XM퉾⥳ji0'J!g85$6aҤ嵨@*MllmQ(ʞBm:O_L%A}xJ6 + +兿P#ڳ;T%敔)ݍy\ >K3˳ItzS<IG2_|G_L7~j)0o]7:D|qfnq߶u wN6Es"Lތ<[ĿrlR?#Bi{UvGQ.i~OyUJJwy#Y־*|GP?RkݞG'/Rc}F , e.(]zM(˨FX~ETa&A(; ~͘_O7~uo>}}g?F[_'vBA?0+TWE+~oc߫ ~E%h[?rawUbHtؐu7"u0'.Vwњo]a ;m}kC!ejwt;=Ytk G̚?Rsqy?MGg.~ĶC_;O5tfoʄoH -APëχkR_uCgXGA3\^JN=W6%Qxϑ}z5C6ȎfotjeC?b] vln[>9l_t"KW_`o@:kr A9{eu +ׯ}Rܛ Xo=@#~!;Dpg*N\Mf<ZAy,nr?y`.ݎ|>1uf G1X Awbܥ B1| XU14F EbZF;FA1m SÇDć,F=faũxlClcCscv2?),e`o,fFe͌ObrQ cbz6)Gc<=ؗxT5a6N#o=wwK8bzynzs^›K:5`FXtVy=++;FS;T\ѫ>xh@*`)Ì:U$rҁ*n׏KҌC{Q;yC+l<+SKkN6s?ΏO;৐R$̈WĿĴ` 8Fؑ M0ށt21aǀOܐ";@dcc6 ovSyly1>>T4W`8TDo~Drcc17w(qDxYw(seo@N +d:):6ҎwHļc;x M߉|2&ŷ~(-TY׀'׊?pLj~,k} T|qk2nBOAh适ۃo +:_?DӃpc5n@p>mwΡ?[ܛ(e +%Ο:9P42?t +Q~D|ȢA-ViI.{S%..,M]巘hXGf#ʁ? G9RBYĴ>3La@,1ԒIQ]"~ռSՃp C /N‡0aD0ϋ{Kx!`G2'נ%5!pjZ"{h"}OKGHyl.;2YH{Ʒx6=W3Sԩ*}tr P.0@鱆4yXFMͪ @&13t54_Ī=>(Oz$j$ED0IhCBI6s86@1r89Ǜ|qUn-Z{yYywWWUW᧕;+`eQ,B:G9:9:Ó95&NNdvLFɀF;V#J NN~whټGyGdmVG<l mE7'̚+3fWen 蕿3WexVexVep X8&&sxf=14s,c0 #1Gy`y72]tT(Ԩ""gC`^̙ڊd7_DNDTYy9.%f'RY%Ԙ2g%YI+KcީxQn)/K#'y'T99ԤRr_Rl?.u0B#A]N0IT,60H0` 򘂒g,RbΊ90'9Ɯ#u'(Y3+)edM2e|j(ǟ2(IpT,d͓'S9uWΨ?}t9L$,!)au;VR]Nt;EVS]Nt ORad̈u4֭Sar) M9;!cn`E'xZZVȫVxIJ +#:#4LI#PSOcS!NŠTi'1B\0Z!W14Z+h)k{<}9Ys6ӎ-#۞}-4mU=d=9 +y9CN IJe+IiʪѶ`: ²V#2lNS Q}Xʔ~ezKNWzk뾦/32ήq֕7xɀR4.U}M֞Wqv5TP*R)qh+ +]-UEF VTĻl7yz8ozy8v莉֔L^9ڣ~&1tik+ӑgJoe*V\.QuXq1uUXyjrp.L]Mxor6O%vN]=N^9kVivI3Q5h)H!U|`#uXA|%zXK*$hF߼/TqΥ+SRxxG, #|L[`pmeP10t`ENj:ߴ/P}϶d ד !2inYFGʍ.IꈓpwWTDky϶9y(MrIޘuT" ׁU~DA4`ip[4Z]C>N[)JKcL bV[O +ZChB ثTJ6,Hº^}m!c\r.:Xpc,hLFkkfK}LVY6%ҮVWWO +ww]-bő1ZQW 7Vi5פ]Ǘ:6t3׎b7Вf&^G8=sb GŰP4nu9`b|}Tyt%n*Sc [AQĔQgcSU-5ݰmɅ~D>=EP۬vyum!9϶82ZCjRH!q=+A.YAB;@g~.,eXQ 1.yJIm'>md|z[좲(N []ZhrXCuQvkVƧh=⎰E&ш1;_Ic+[q^|B e@W_MoQ&F4hB']ڍ+jlU*`fs#d)Me]UDsz۱o YBuClcMIm?(:i`'KޢMj)ѩA]U՚"RҪMfwbDNLPS)hHJlQ +hUS֜ pERJO89-&{ts|$^UUd UL2sƻ R[ڼG$$d‘d>m J,jU 7sK3bXk.&3ߢWIZ=HZ\h},ғTYsfQΏWSa K]g T UU=$-RtNsaSH=uTYt&%5lLb2kf_͈ +HajcI_]SQfnt$^5'Вlr-A<&r}+;0hԵdnվ1t2A82oX;W4eI2 ?YQRy;=a)h.tF=쌯&o:Hu,Zr-un4ȓ7&<¥Cd(СlBx$&㰳QΙCZ_+2'];/jU:LsSX@@5'WI*kLBU2V\qjqs&]j.|4.H~>U*w=-rY?(юzum]91ÞQ[:r*8**m9V9x%$_!4]}_]MT0n=ȅ^BG"v.Ŭ9ȪVժbmT.^oG腿@Ypm6QYWSცl|MRZ;'031011BglDHW܇sF=>b CZSEٞ9u+Uyaxcu$۱rp-sjw'iDܩoRjg Sx, Sjz +YfsWM)[$iy$c1ebE)3k\E q5"TńjT1efD8dYNbZ_y<-魐C'[&^{PvZ(]fhY60%z*)nqSjI2ɛ?̪%;ak|Q(呀&rP7^Q)%^~ T:KYSsfAVp]QL)42ڳ` ǔJ>[c;M* +${Cop[:ő!Q%k}j_\<~J 4{&da< +#;ٙ3? t~ +? ,]Ptj4e0Q nUyUegfVj-=&߃ +Uf:J5JҫF.gKZ,ZOUkNՕgh@b}[lk֢ +w%,* kETQ%YK{8lYFH1kks"3"HX~?' .*òRlQj˽gP8"̵\Gtr +wy"cjMa:xS33i?^cFDDP͑_S(FPBIEv +Ww}VB!lS驘N%g3v>u +GR~v}S2+&Νɘ1d[_kDA,ۊDhl cǧbF0fkҍ8mibL:Rq{Y xi"ͪ n{Qڈ b֩->wiami& ++Z3ovR;wcm񦹞GΞcTll'5y  9b*9r>< s.9S:/5#p lYۃɱȹ`zr2r>*ŀTԥtڅ'eϛ KQݱ1_܅oQ,hJ !+\I-|?P`AM9'ar QQ(߂K9Vqq/&us-_ 9jA2'VB^X@jv5 ++]][Y Ya:j/<?$ d:к\;E1mvI 4EJddMHXȃje+(!%v`3K'5 .mhoQSM-19 &>=##9A ToKf,ɝlcmlMr0_]0,gə! ޺l/0dمlHڳ t, qyDXoƷ|4vUw k۶bxt޽MI`:? a  0Q?90X?s;C;n}BCPXD&7DK ɣ84b;@Ӥ=>F߮'p7$Dz 1rav^0"h Isb' H8.ƄQX{9tr %߮[QXbv&B`Lx PzƟ2Iߡ]1WzM8 & 5e;D#K)#o"unVRb|MYꘝ1>b맷3٘>R˳__W#*@{Z Q۟ǐ[{aʘ2@+}-2 ScϹ{/p@`w=.`w>VH~vۑ>ZHΙ +m#ʛ[vRs|@2/x}}w3yTl8c5Q6٢EtE7 +vE=ڱII o_ +! +L}\ې[vrlUL2:q8֪"}tTu^q9pEi*|iQ}Qw|\A,~5IRG%;"qJ;uNGPRuy +^R>Ɖbq1 6\@P$[5SyoW%F+ObQ9eYYf?Oã_ӦN1^G]ok + +oݸ[ʴn%usRb"l' +>(OA!Ƣ+oKGȺ6 6m6:k8Msi) iX1>cĩm]ESIcYMYk}dLv*gnsz~JLuq)}ЋrVL: +!9]؂#9U."#Y\b@laE[ry-\ +f.s$:7@E/qʞAYݗWjA!H`r;6`_&Lr/}vmN.EI4S* +SMسjj~~vfZ⶗Pw7. +iŸ :AxAPJ"&.&¸PCJ.F%>Xyu! tN|HʥC6zA1}9 O|H(w=.T΃oszؐn?ul"+? +]uЪ']& RюTRu ܥTeX]ÍgfC_%CV}$3GK`XSټ雊?Ki"Q#LCūbw1Xj*lmMDLCMTxGÝ"ءDز8%ˉhI@ʴnnZu%Z=Bs*$t|RpU>QJЁ-&-3."Plaՙ@##kI6lom}.žJ_ A˔wk]F6j+U!nBt^Sfäk Ѧdk3GZJj%w78F]8]u2~2d^ $Y/ 3*) jLKW'^5mқm)\02eN2ÍZZR]/:`{g,(R<從gSysIdzMi,~'O͗fUtu~ ':Axksc]a.k ,Pu 3,wUzN,w/.^m 2 +A @˓M +PGW" xUaU A%A{-cT-(iij,9ՁκbgJ~vCmZBMNҎLṫ%Ь9a +Fl)Vˉy,8WZW+ W]M:mFL +)CM>d^i&IgNR߶`Xɧ#f_F -0[T! W;⭙I +v{(_ź _B(]oCBt&^)%8,܃ +P7n&]޷2Cx127B "jD'#sR8ǜOq~ywud>`{u:wYƝ[t +rQ"n*6UǽoVő]3_ W'[Ik<㺾xc|u<]32c>[ڭ2H>1@LUF6(N8i^*XQm +j&`D + ++,+эȁ%$wts һ|u.jŸY)z+Ft?v;o07Z_J\&=cbu|'H #(NB\Lp4Dx P،Z$"䇰k0}TfUIR+&w'P}huO +UL':qP]7ls{ +- @-eɷvyPQp '.|Q$k5qs6xK$6pV7pEo֐m{Z?6ܹ*2pW_82d[q9U\8PFF\x6ape6ԥ x +P\i}ǾSqߺEqCO@1dɸ3/Aϲ7Sդ25hФ3:\Jg0cƷsӆǥG~! F n^u6@~{qӲ?dgۮlNjD'4ps槉=xX/ [MVqْ!u#>1[~궽^;$d *DBu`%~QZdrq78h>Ϙ|})ir$D_lX6t}Z ̢w44U;z-ލ)Jf8@umUB*ꗍFes8u:t }(Yܼ;=L׺j}vPVŽQXAzzP!  U,['ғFl@HFbOlzـ-UJ!-N.|!"%sIQlO{,f ? FE!|%vXk(]tBuH["Gmz%LezKtiju"?؛p @ƀevG+qpkh2i`rZj?p{2ɞ'ݪwZd;? O&pb|θ:'"8qV֒܀gX/q.Ga+Q~hcaC9z7 䗞ob2@6dDN9b'(*#ݎ}o tlo{+ nAleN;Q'zv17fs2nOFF->v`ly2 eaׇ] vP &[0?J!h_NwAQt{muCj]Kڿ{v!AbhVi}GK +!4.@H%+g_@}dh3.U؃U[{2D4ۅc<^ .~:2n߼;;2wrw:6E@޼3 +0Q_:^඗鞒4C4e 7;=jrc?ԣV#5Vc=&؏^*xc;ZOFRlm1lՀ[Q6Dp4rI<LR4㓯97&cg=X6;o_黈GlC{ytѓTH +:C~cUguHv htT8=*B B]@iTAsG$l@F4XJ,n += =\(tu~{ԋS{>g=lP/K/Rχ~‡H~%Q#?teS)?8\nCZ~<Yj~%S2?ّQGW~HW~DO`:O fE= Q_5fYYѯ,.VyGG,zGH_a:=bǩQ_fr=˫Q_g=%{V۷9^1ꝺ;wKy +Su]_+۪ɯxK_fZ# @+#BԞE*;T(%.R,S> T +q}TiT́8?PBD?_!4< K3~~7BۢOP'exԃR>OmCCR#sF44T|^Z4(P>ޱD leb$Q$/Q4!y$pTUDb)6'?5ʧćK)X6d@X~tԫlz w!:BM9O -4C '.R4>P;3=2 V{iLH%[ׅm ȮU^CB) Hy]}"8|jf=!yzY;m70y~z,?zJr%c۶m۶m۶m۶mc9{gߛx#:;*2ʨ*?_G 7so +fs9Z upZ<6mQe +dsc uJIwJv@R4(!]`ܣ3{6ɭcPWݳg#}1niXF#g +ȁT M:P+9jOƉ1'0UPύ ~4[sE[*q9MP,&.<.Y]-\:Na^8 o)¶sMD][vfBʭ +qa!QyƩI.9Y; 8f7C{2hUy-h`14Qo_>mt;gk&aY'"*#p^:7Ό 2%B%WD\PMI%c1Q$G2껣`dALrS G{MF A,MMIz CYz5 0%2:eՔцoת\"̝G;NgmGDM]Ie +fy b,`Ca3x}CkD!Å1JY]YC^&xiM9GF"D^G{"pyN1l%!qhRd [b&];%츜AGp1ߜѸ; nKn_Gn>\W#7N6iy80Csz=m4B6M߅ڊc%riW9YpEwLs;OdDv9ѯl:òik%6WXm@tiǿR5WZ.Üof A1'w\MS0rHΙɑplb}^ۺo]'7 eF_N:/b8FCQBrxubl;!&i~ݠ U7 ;t-Ne~=5N&@]=/34socX`u>`Qy xv e)9me)qhC:>r9'9u)\?jka{d ifd kiFFxT)mb!>/^q?w=hT6 WR{ۿq{ >s+iyݞNQWVJO奰?!5tU іBm|B^!][Hn '}mIhv튑~K;J=A<<>.gZy6\tådUp\keȔ0/)):ס'{秩6c> 5O?֏gAa)/ldAVhԯn޻Q۷>lv7qOs>uڿMr> +pabXFsDj#$9tAzF9azj us=cw7Zo]qr{op{ud퀾lwAݧB;ۥߙF؅lv:[ACByC "*|h*8C&'SudC|ϲf6TH4X#thKzl!Ur=)NJUpBV'+.#Vw O tS\_6S?i[ȇe+bI)YI~ "{@#HN,#y/hh)&e+=2l25&%Š~PMp$7D%MCh gdžx`v .u@Cl i5Ej-ϷТ؜qyXEhwش1GH̻ lv؜kLn560u +bȼ+3+ +rÖ|S|ޕI`,U bÖԼ+'&!. r_kV/ȍV-p l+#1ߔAW rGzB`&GvD`3 rc؜+-z99mc6|o7i>P cCWԆGp߸@lꐛ{_6@ln{_6@l}}C`FGdW`Ć_Tvƕw2lƖwCj=dYW@Mfq Z"Lm]gYSLѻ,]Gr~ׁX{MLzNvgFT`h?9U`WR_@k?]oza3a(aCN lc ph"!8Y#`V3HNU39L胦L QH9"55Ɓ` 6TE"yWVMX%5˿lmAGhD?+&C6Yx7=hl_Vrks> 5WòL@vW?Zr߰@Cxp)gK6r ~ 6mȤnlə4k^VX}&HZf~!=GƼpnQ Nwxlya3{:"o[ސlzz"iXduF菰,À'zבּLC'?! rLݣ_8v,}]3t6AqY~CA'mo︽־qv~cu3_+_6\@z]Ӏ-Ap<Sp.ׂAA6!-Sclj-Qs78FX;=}cYm緂5Ԁ9[^[g|laÑ rQ1eZy0 +]#y2e4diz PKT6|?e|<(yJO'X|}^W~c=.{R +:H!"=`_ t^e40}F=4KG$:4=^=lO^n:ۏ؀9^A]PB; {1]=!"l;ٗ1]KA]H;G({,=Pرs6;0ޛp;]ku6݇^ ;ޟ,`:^?_#/<׺p"⦘g#>eX׽?iRUj;>Hwvrw; (-ѣJ.z9\d'ST+.l/Oj/}8C ㇴ"$:r7zh|_9]/TPwa9hOĝj +R:yN{P21KȆ$@6芓 sQ7 /Eǿ4;V Nk@ rZ]GRfR0.sGo~1hV&; wy誥'XK`^H7Թi qo*f śA#[7 +<]X{nU3@f˖TX\S-yNTZ1, ++*B/\-_~ ٌsI42Lv8_DOU' @E;y!iӆu1 B.MP(؟":kk$wwUߛʪmòeRf{m"ݯu*t6㹪,aSW*p8k!7X}"HzDs\4A}&?b N*&Ss;yNA:sQ}N8(cؔ;AL{:Π~D +|D,=zXA5j8`D]}ͳ{ccdfgMg6 Á-`1_ީ=[׻5/+=^0߆p /pLQNw!<`9*(1\—pfasD95O~tp2L;dԆS ={0v\+Q]}I #XztL4 4L.1 :*hz Rs79N9`Y5 yZD=9sg>F{]d9@޷Q5^|?D8 >/0:jR}c;!M vwq9F-܇n j߮Jb/B, 398. ?F̆/ NK'B+k"Y@lէꎬ^؂4H6.ե-13l>w:tmJl2 ī[@UFVRBaAO-Ĉ"'B[©Pkq!0Q0"XXlPn\&BIqAb.cc!YT%XY3]XL8' 3Lnp StqZ*XyoBIݧDq#"4Pm~vub +B)c3(j6nNe4*g\B5Bz{@w9 ]cX0XπX4+ Pk*! +،ow&v +Y-P~9S !M(1%c򁷦MEh?dЁ^$zBBD]M5( Mqa֗LǟـdB!ʺᘎH&`=2qMm Bu-ƫVBCٜi.9ךHl/\ ȄvjXuvlǹrBթbͮo3ezw43U+-0=+8lsO03?2ÿ40j*ڶbFQmv7'-`8]*KhR[f͎/Of@ K/7];!Dh|Е9+a$>ji;۲v摻S0x9Ȃ){ 5 NaZ=&AQX"b s 0 ^y=Sq;ݎtkN )aVZTjz5  jY̒'1zч*r)eL":~?|ZN^YZ +QQ_`( ]ЦFuDh}0zv1>"hV3yzv? MITf5Om@EJ/'ZP^Y.E1_|)3UI[$2Om,ihu{}NC ♇G:xj!H7 +T?(Ž`X6\2*y2#򑢱ȣHN#MOtf /VF,~`ܡip4akFI2_K ҝ~٦&|ȟ +R5_L*Z)ruItϔiGkܫkUtQFSW哘Z8UNw^}MRhs)DdWIR#xZV ˻}MTt=Ix/BCJ'fKx z ؏⛴] ܡũ+Eq@[lYŒrn+LE1 qVfQׅer]gغ=6"=§)Nr`]T gos q/hEK_Y +А$j{uq^;~rnE5iztd}F4.264' '#ِiŷiϥU:(r|%oȔnc$-$(hUaq }zӽmXuSl=vsS-=psQ"%Cr Q7r=#5cwY=Vw(gݓfhg/9+N%)O[{*L5rԓKz0*s j?z0ǯX?7 {PH𤂩4ȟ()S0Kjᬲjޜ6 V<U`2-&bn9RE4ir};*+Ekn/-kҨnWibw}2n + D?oI;Hj @vW'[pNlEOtqAQݔuKʜUEǦL{<⦐ AĜe "W}q췐;A94(5Se MtUAF-ĹbaH-BՁt6k$ɦ!0InmS[5_c|g Gr7I2:SPЧ1n")nS@RwD$o8wsxB9".g IL = 4 U\HUP2pl}*h鼜^{HO/ o~n. V>;i'xz9Í_߮'/0݃/mG\,,J[&ѦW #y{ߠ-l%4 G\Z.mD8m+9NE1Ay,%.)q`9l17% ł+n _;40`#a5ch6$z6zh +ƙEbr7yW:ȭkfBtʭ[O[r.׳lr \8w)ђ/ ?XƎmgR۴aM[- 9 .0AdKyg80kNh+z_9O| 9ca`-0T!&o| Dh@%(.>a}BC̐2M>2)F+K:Ex# '#[DoM4 +I<$&Gd#yaí5||O2 +?Ny_=x6YU~6ܵ  ABFNkoEYLm-܇nO tq/F"uU_ՏnM +dEsn#{MSq ;G.}3CVYVX fPKT9 2"sdc[%[:B{tp~ouX+81EVս>- p~nzbnb?fj6h,@hcSDhUEF:Y2}h$1v(W9N>oJ8c0K# e{lÌ55i[r,giFalcݶt?ZVS5# l~4vGڼ4uSPP']]qshIDS7ZN]9r]3ゴ*K? 4@8W֛W;bE-6_+@|8ǰg,7qrmDu)mk.tfm8%Da}fo!Ϫ6@CM1o47cSc3[˗o}=#|i|q9o~z;̈u_J VCU28t;r+n- Wo,ה9{9r\x|ʶ'-uP;nOaMdM/_A(Y3Zۧ &9oJG)V-VSD>A13EZ)2laS hr̈%R4E6,|BZtP$,R2]-&‛E'xf48JV4ե] +>]E|GujdCO򩔌$weTEoFGhNO;$b%L6~ؗpNڡ>QqmZٔ9j.2SBM~PB3z_h݋nF 3R޿R(rK( R8sh0ֵ bqGTcm'SR T>}Wykm}?JU!dn`kf"bclG63FCcҥ6Wk` @24 N<&Rx] h6Aqqշ]ʑn)/Of)0̐Bl+΄Y Bn`,ٜ+әH}Qq]έA]V[ MigWTVPL f#`? 2x}}=G/tcfd? Pjb,) PZE@QJVL(_mm&G4ׄH$m;@_Ɨ81RT5bq:x9|T@C&u.ᦟ҆}"cM┄ ʥ9w"*D>IBsJm<0tg9EwlrR:HYXF8F{b7ܜ2,?֬R=4yy66+Q:4.̱\/&5vU&XM0@c;W?E1ם"9v4G1EyvNڈc mtƪh3Uci6ogƒ6 :m([їNe&µT+ %b -CHZu9[3zg,AZ+/{1`tk A|Q>!7~8( AȚ .[cm2[j1OOp ewǑvSPvQt&98.$]3_ܺi]Sojvj-b ?G`f:QI䛷CߑnK?¤! ҵ؃dTd7yb_B˜CWH `$WȚe%--e˸0rJ'hI-@'FOBNG=xFYӮ+HOm{EJ|#AqSQ6fIdqqM7+\az3>e?"z:Y~pC6!Da; [E_/7^X,dbq#hRIp7 ෳ elP;/it?jmcB"v6fP5gc_$iFD SA"dq|?!L"Z6׵hW,!$( +-:mZ/xg}=i0,'ޗ7]Eb@|YN (zQ[.RmF "auBv]wrvS᧮ulNn;yzlq\9 +yEⷳ>|c>y#"&yH`Ƃ-Ҷl=ioOy9sÐ݅Cu;|a&cQpXCCz*c)[&%DP"źG[~6N6Ja /؎&&'RNۙGr\ZQpa4‘MGd&tѦM2fLl!Ï-O` +. l[¼ ?ވ&e , Uw]UCPnVBmL %*8r > &jq]YP$DapKi +uز"ƽ6N!nKB-3]{ߑƲ`#1;<椊`RŽsZn]N5# UoCGaƺlGѫVd("ž`fZ<1>)nV6*Qpe^ ޶,)CyuHaJ9٥ < -P\q:6  %a戅mmiLd"%!LIRst+  F7-쵯m[IYòCj 08)d>^K4$/otES+k^1C^,*So'ϜjPc}SVAs0[V31j~mȯL WX 0Nݣ003ba {E)-a OosEc"])jv8; ]`3i/\5yG3뿄R rRK^~K +o `O={n pcCwx:8yW#|: +Dt `}fʼnAP4bZ#ԁ -ݟqn@A?2Jk@k/n!^ҢΪ_AA.nۢêWL%nKx1-6p`ƨ*P)y&> si+ 8y{Ϣp +I:{m%dh!#`]hݠP|p5`Y`L"A_7akQpJ8<@u^ +Bʛ՚$Z&R?U͙%-8@&8\xݕktQs#2wE-lo N>Y׹wչ޹2S4~M3~X=^5b_`q=M{/̓GWZa+ra~yZ:="K͏XՀ8lB`@69Y7f&l]Sd ף9TgYhB:;ED|L%ա%m2ƙ(j?.j[RXs5&{ 5f7jyB[QIs #qrШhPȨu*Gg_c%y66Wr4Ǚ3y͔ +mX/!64wAgd;(y_;P5um)}6^jHJ#3H~:xqGwinaJY"+s, +ݩf ZEVL QL&8/*Q> +QS{+nVb/1(~\)L9H(;, =by)\k|9f`kz^df:j0I:+ /27X$(&.i8BYM 9Ua1 H0s4B))EpO-ft) G!9bA)@)B٬2oSӯSӣ*Z Q~MQLe-]K Q!|#/ %_0*ȤwD肟@9vgpMq 3NDX̝P {oKI>UXidpR ]u>H]CoHh:ʝ+Y3׃@(1\-Y5\@V-R(G5LZv>]eQv%T UF~+~B3qE"k +cճdKg12Q9Ńj(ӯ$5"gɉJ;b.dqe e +;Q~{7 +Du[AyW u*P!J 'TB&Z s +H:.t6o8+u6.x.ѐTz~qQZ4G +M8  dSAVI(3 M AmIn3&+X.( +Q[jN>yte(iBET^L5qr[nK!feiFPRAKrKC+ȃ[J4 +έ aM%XZbA8ge/%^Eeɪ +e1SҒ֬3Z_d&_񮧃ԽPw$ߝsG6hQ}zyRUz8ۣ߀a‹4sK"#Ybla[Rjj@<ؕoޕ[Q%%9Y5IwY?n`WD Ll"\JGF +Ib/9 7*z^~Mv 0͘~˟wr:Su|@gP`C ;3wr^=Y<=r/E i]gROX6cP{幢 bm[JoGhUEa{9h#oCIXxzC )=KH. hϛ5D} +G;=7wHݻ||(|=lo}Nt`UERq5HUGMT9|ssFIJf3Q f|TmpB;$_S}uVvz +H=[pc!4&u 5MUl!T:{/^-vlAÚ氌r%~iڣ "-,q>юy➛}yK\0BdzNeA)9|V~DF OiZs;) ۑhfkgH8"ddB/:Tt{kڼ:sMuPddfܩȊ=#ƖXi;D!Lެ{|8VzҲT&LjJmGX{0XJwTf:n} %\hE!ThMa'%FN&jmYc$6 +*<)ߤ`yڒ +g0J=Vmr#ga fYN{JOX*lȺ~mؘeb mKw)z O9!QroUSUN +^EequNodyo3ڍ^[w{LfǛIMgţ`z9IEz#sQ({*Yٜ<&Г3(B_l~.5߷p􉃧,X/cVKA:`^׊\:j/^OlJፗިӈ&9 90\RS-Q%^qC;ӢW9?۱P]_*">}w񅫧yx^~3۷?W{X!(bb\b0ޭAgRǤh6eC/FM:s!$8i(gBH'w& 刚o}х!y|b+չ|E`?/%;s <Bl ,TX lZWu?%?MӺq=ۭ񂁁Ṃ銂<-'~.&J o-)ΘU7 +gw;%Nw;[J+\Q&JPaUF0%"cS%u~%5*&Io>JE%*m3:)bb<_`b+ZJVRW-̘ 7Z C*:w3JotDZ?"#3g`!3'Ԧvꜥcռj肂D7mY샄,QOoƺJ,fea4ɽ?VNŘș{ {>^T*5wߨaV}5F.̳EkcdŹsIrۈ\و3ۇ6f (z *DMԹv ~1)F>9t>2I볖 RUHUȶt + +dfHS7qJcKzL>~Jԥn- cLzJHdbǿSJ0eAK".3E凨]H|>WjpG/ +{0π +/)RA٢ݸ Fܧ\)GRPA acoWB9훹5e &A8 [' bWq4' s 35FX6rٗ9Ҕd'u;mJ\.I?*YP+:@;m;绕e K:kW,-ܰ5LґÕVP[%fRSKs9XP(E%V;y&@nM3{*h_?lg5R_j|< QW,/H*!qRN?w3<% BO,T;Ua5"H{1pdB/?~yW`5G'yeݤ$zEZ kS2 ɴIZ$wܷ}\Bh![X)iӴmܜ@Fmڜe6Fm5 E6IB5["Pcg,M򓢄2E+n*57&RglݹfФ tr*@++hAeL>!p(S}i.RՀŊ>v +U8kd/{ݩ.>z[J3;1}0C?rWvIWZ[Z`y*-oUeGGuq}鴽sƌ'6s]ޒRInhJZӕ5O74|[5nL.&{*rMgJPraNCz F;63ϙ="&]x|iM< Nu0fssX#KruK2FD5ibUҺ0jG@ی1BɸoMA%.nu1csB»(v^É߰҆2rdd!846h79ا?ٜyqRjSr&34lmgH X}2鷒Ya4Bw*w[b6t"!IÌN/Rb iD%Z:Ma +O(FAv|mS@b"xԇN޺X 4"Yb+7(GT)vn _SEd絵Z&"1 o)LY׎tP n7rx> +=.̈DB*h8aA@z`HZ @R?_Y J``V$ A1%*'b Qk!Mc&/ʚv%{e5N.:^;+]i\L6LW"sx#DrKƬ[/`ٻ/`=3أ;՘1G(=]27@$W՟~OmiHp666&n!$Kk3{"(-<FmYڤw홿!89u$.nZiDMnDrx&FF-֔Txdը]g,lPX߄yȯHfG4!ܦhE['iIJ>̵@qs3{T<,O:>;dGȮ _::&;$w&K G{??-d]kԔOLRN&ζZn5TT6"qlȡ 6dSWG/?2"`p<.(-5FP+^d^>6e򜹒ll 8pgQ#7<נil%~ܼѕ mx8r:++=ld0gD\HI`dL@:*U" +%+m_[d?q97][Ns<ާe}~Ec{.q'hQoةJ3[sMpSr'ƶpe!H(ز.-̾m&_SMK ִl*[Ӈ#Lh"2I{YY%ܭ:3ݎR^j{ Jݑ}KJ .Y;L Aku9]cl9| +("__D&%H!z +2@pI.nxv|wr2p7b=Aѭۓ <ן _-J53Fh"ytCn# +5j}4}3m\YpnSNa R0&M $Y_[3?rJ!d1]MdO..vxR%\[,|JFxWş2=4 +ykOη|` sЂԭBT bfA:O~~eޔ$v.eBv@y`\sZD-8I1R}֠5"17b(HE\",v*:!7bi⭿Td^9"brܞ=gDŹy,;~Gp Vż1t ny +Z#.mzv[I3!=?JInyX:GV;Q PLh1NLn4L@dD%;O,,8%ɏ)cCBц%-Db98> 44@#h֐J10$s>DŽyךR1D_T ?~f`b:W+.U"ڦ0*mF$}utdCGV >UmoReoĊ[D~Ntq9ѵawĥ56$@6G c@ݞ{`1{FVM|(R!gfB><$mVwJJC]an<;Uuw.QJCe`]`NMIYx`R< J@ \+ &x1{#VŇNOCxπ>|cF+{KG=JLfzG+taY`hgf{ἫqLk r=Vx 1_5ݻamVy|xC ŇXaڙD/U`DAvoyaVP͟ϦKl)>∱EK4˸NۇE iP=;ӪtO\g&T +*B[wwGc)ٻmS9hꐱ~5 LC+LFRӐ:_D壙Qi+.K99Q3}I]^fjKΟ֯|hIl,ͣf#Ҳ*#xC{`%4죆q6W~S=/Z|A^bS/kzH7k%bᗂ5/݃CMj&]-@ X~lZqgU)]%XPhc/Ч] e0 Qҝo=ItR q7}2~϶*xP}, KKoy<_EwvjSkA=^G)K򰌸-.ؔ7.O%N~w- +}1۹"!܎WODفIMPOhH·AlYqBGH(Nstztսl6pt:QM.WJRJmmw2A<V8)&@qk!i3綏jgtGDeWv0y !'of܉>t4>QZ S J24Qy%=f~BXd.ȚnN<ޟ (G-2IP\{'[r*z|r30BsFTk4S<1-6sȯ@l*FN<ΦO\5=L\g|[{q)zqwCmw F@ʆCZCCԣWnfv97Ch.hFBֆ ;R' _RAZȑ 51^7֖h pcUFd>ҎntGGnp# {90~#=fI(D9! dMS0_*jg.(B8IHԚ0p ,Btd2`_JZ}GԚT؂$FW*#hi g&;]&j*ؒaI ܦG8 ,0G #?6L~[@X\|`F +ImK$ɓf6G?yf**&?"xId #uM +6$SexS\42bHsCcPϡ_7Ab_-zqæG ~SJ;"Jkh܆sKߜa?g?T0ń`u2TؑLVܓMrPkG"߬M3s-}T|P5 Λ1h슜SRρ*ř^!8msTCV M05@$Y~,)(Vg}X1+8ݕ+e\/{? e?^p65&( Px6=& M[U:qrI9<,npzt&[v&ѕ2u5He$E"!NiC e՚B-NgRAIK7e,nx<%ʡ{4p YXܡoTdbR:]ƵŜXrbhkxb >rђdPAGخ뻀¦džWm R8h5M׻D`JBdFk, * X{WZ@ ~^4n愭M-]dK;Uqb{N0rZL.I|>~GV^4xq^>fp}? }޹PW0鏉_$e;Q?UtԳ.B)rqb$/Tq!!nӢ=lssI@,R2f- )`F)C:w]"mIS8}RĤ9Q&Zk5n'0bX|_6mw4z]\6BEYT,.miDMGdLlnx?6CM/r +셅0T^}]HmFpIʞy@nb@GxݢWd sBØAa:o|mQ, +;DHn}t#Xd P_WG_`lέ$kbcFTٔY[֯$Bt}Sr86Z}Y-;G{t0H%}Bxʌ/P>o_#T:RF5Y$'IF0f͌[Er[s]5g7^ .v{# 8Vz!bɴ?3+lC("m9bR:獠<:NA3.eVǝh7 p{&gp-!hfAXOx2/ƋTe4!R/gpw:` 3(5Vد))YUH-u+ݓ6imfטɷ]ekq1ytQ2; x"%Oy=_(VuclepjT/2hn,ױxlpI)3aE]8TK`.RoZ9z_eL]A( WW; FN#YOyz"@ȓ?vV,+œL#kq[<k&s =lqA =|j1(M~g6K ^~N%D"nS(Pl]$]`Lk99+΁n#/ b_dJ,%Tq2>KkNKoQ T"e[4C2oȃ[{ߣCb;Կ5Ńek0n!ugiHs1S6%EG"ԎҙWTybwH] 5L5nէJh?gKOm/i1b''2hd$Q$wd(B )wc:.OM<[kń:ket.\|KzC%!WDŽ}d/Qt"kύ-! ,%Q%52 %+Q|'6L o Yκ\gkwyE +Kwi&SXGln rK[֊P`/ǗsiPR+rMSM~QjD6񋵶9cfVޑrvKmK\lϊ1WD9G$}svtu#0$HP!KiM'i7u)}V51DopcBGnme!@vf|xoj$WZl# j7%ztxkI;zcD +&33]t +:M=52,Z + ,o»TT’2Lp 4.{v=fAtOXso?7qMIt<j)eU"΋$ii8t=]ڑ3ZJn¡&]daG +'!f13uhoPW`$_'.N~{g !;P)@!V3Bgx)yH ++k"^V4wUoZ44Tg}Hw뽥Q{iic6֒.Yg}dY7amGO80K[k pŒ$> +PQLޭ8\\M8M >024aoydTJe989[4*[Ǝi+I5ǰ\fdZdj1fiӠ]/ؓDۓlŒ<-I4.ό\inRsPwP'FG26;"~IF0Wu UkDS/H05f < +F?-Kax.愙ůn0z52xp$fo>EsJMQ)vֈjYHd? +Vs .T5ٲLR#Am"%,E|GLJ ,E +!I`FAb٤&=GGlb*81ǡZZh`H C4hhL@8- rirLzP Garrv.3y"$xlA-:<(pb;9.n8s5hNݡDhMZ +[I zE6\9(u"!31#|UfTk- 0u}BWTe١A3S (2Xh)i7Mk UsLDCٸڢ'sZvZ QUr>S)-^F'62ȠEP13 NyDOdb4?OuXtW9q%JD~ -I4!u!9GS.Pf#<)hc>*<^q8TQ]W{  Ys3Ym7+>%:,GUp-o'-R.1̈0v==zz(7Nah|/ 1aS)u]=dnTiYXXIEdCo\*$)z֝oTOvp >"6}PLpR@s(v"kos׋;9cM,ZrǦ] gkELPܖݡdQH:st[{=چ2""x+CWbጨWۄ&Uܔ"At޲E찖W7{ h2z}W$dT0F]Y{lHXiz7׋e}Y/x6ЄCَ'Z&JN$&*42g~(Ygn.|n-rFض?9hV$.9wBk@9jH%;񫆱҃z+W`mKK@-Y 9t4G5'̏g}z{3Pw0.o]i=y RLJ .5ș`nakk_(! ppPmXT"1uUkt3 x$:|4̵@f .ӊ{Epo4!$Δk@)IcS3⮒^L1}btitI0Mh ԂNd*d7o8UYNP3^عf7>0SہR'"Yd[=l1VEMnA|3?bP%M9$NuA-u l EP4vVӲ^*1=Qu;Zɩ.RofEo)zDmN gp+lQAF۱r2J©ԍ8NYhh7v"]yݹhN`k5т|mFh-ﴢ*P\ҢL!ÿGە__1Yf2' +vUz1cS)H Hz1ѕܱ.9q<%ƽs~A[k/8~saqg@f#Lᮼ39$E_Wa]Nmwl۶m۶m۶m۶mg7{d&/6̧|?OUT| +?a.Q2kD,iԄ.XW+sa+Y*Ub +Heuˬ*g-" q6Nh XH"J_Y9G0h&6zp2/r/=LNJcP j TF$]ԇ2PNB h<c+E7gZOƽ>߻:&92w@*ew3XšJΔ}Ͱtf06)iYDdKf]D&K%V8x5MK^a-.DJ*\31qpfFŊ֬ƕ[ C4_J6*FEUc_pwU/p!I VFJB\=mଜDgb+n?Ymer,;;yQf9Lg`YPWhr ؁ucrz LTv*&Lu*fZ`.j1;^ c;5TMØy1̕vZqplӋ\m8NY/?Ng3Mǐ.KN>ӝ䛖k;1d9}t3162>G8_zY~6=6 +{!+KKtˆn9ׅ}h1Iuw\V.-4q)@)41z? O}Pҏ0 (+w9 2oq`bȃȣdAeAª{ej< c1 +J%?Ro%tRhJZAG'R +r%b*^9OW' ʅ=xWb[uSx<{SߦFm{"lSk9}S l3\W~W%n2qYWSůEtEGQF!L9SP8WRm|jRE}OUkYt· +ؗ^w'ތ 1q dSx + 9`aDB̌a!rM*V(U*d4-;6.k&>6]*Z5q{itI0wi_9^wg>sYRL89thQ.Ю +t 5_{CGluGLʟy J((#EBf\zFcxcA50iW<0vȇL8퐐L &EmadlOaxkC8};`c;FT[Em.1 ]]C93V[_=źkMv"D +bg啸qMh#]l"^(VU{bGeXD0F#}ԶR. ڸWQ!]MliLE\Uƫ 0;;uBi3lBaOAÍ0nm6#u?nI\GlJ +`m3+Ljn? hI9Hy/ѴfP +E9)8~o6Cl)"J7PXLZZ̵Bmi^i=pתwV2Q0w&7rN Ź A2RRA6皙ܗeQOX'H 0ԤLDB__J0FS ߴwfI0)L` 76V zP7z&LreC% n 7~]^0?[UzJ 9<4i& %9y` Ff֌YxZiAO=f{RߕeA}c,.|S3$)*hɆ9*T(Ai]#k@v`u煾q!Ed䤌CF)H z>KCuUn7nRV.b2~DF .b~ǐVALB<aݩ݂Op t+h~`|&P(\bv F5XؗJ|Ts٢LjkSN>A }"SO\5Fv4dZg󗧓Y9;z ՖϚ^MAljr!AvK1|ͺc!l6-mydۈHB2pab,ڝ5T^ဧ_\eQ}w\:'bdlKu s9R)$`QJ@Di\ֳ%rwi8֤ @/ՒK,V80mN;Uջ¼<{@Ԑ{t[ya4զ82R%Q0!% +;/RߍP^qѐ ޴ZPn)^vajP"4_ӻ+L:P| ip'Tc6T7HHQάX`֊@F/Ds%.9K. 'bl㻕wZe',zVn;[5d/u҇nݑ7n0;!0`ПPwyC^>k>ӻw\8q^7dr~7D#x!>3؏wloS@=0f}} UG`q~;\%eE܈UqC4Js-oe2*D9L>=jSQ +̚j]ہ9 + ȯ(g`(IA#gXJG=E וW %UxTxƴ3 |N} _j4wM7zHPe1O@i} 8`ָQϾ)|m/x{ZFhսܬe"f:t: ?/ ,kjF(aqy0݆xڃC,U&i?+U$㙀"n9&QRr7|ƑӵڜnORη)O-12#267}a73 +{~3œV'-t@hLj!3ˌ_?-vQZߔkČGQYVTp$I;Hq i''McnNh#+d+SM"TEx?˜r(JK%YpL~tW)Ds(W}T jsg<ه3v*TfJ^X 8HK޴9s {*O'\&ozآB͂YUk%aLY-5o/59мRΖXO#| + +t#sԓK|)sIM1EM sM/ &B)eiuΜƑJgT|+sMZmNx16FgRud` _q q/Rnb:`,HY ?! Z2|bF8H?Y|D]մSRnE,[ysO&'0ڸL궧Ұ&[wUDG7r.~d_FIܔ9pQ#ثktX<,ݛg8E8%"}%IgKiSItv|{_*M+u*5[, w\pDtlߡ,f*uhx( 8~ϴh!EukjV@4.L>>(^1!L{j}Qe_](>[j(?7dx2"NlG[`2UƛNX9~+OY9qqa=LJ^[ Sܤ0|YtJr`Y3]2_͛*Y~莞 o^}$y>3F"v +M&6"t LP1I[WGsUTHCf)бih:U$ A&3#ݤxBW: 'qB&R!_Q / LBe"oQt28W4\9J?"o&""o \A W!١.2Z\) ~SyٱBY-DC;q4_*չ-VH̏T.h ]%u9 u?[i\d\yUTBu>y)#2W؉WI,i.lYGԒlÄ6iވV/R!rzP[ռ +SvSk"uPQ?ӗ?f5-LvNЀZ7v7Wh{ck|nAi MZIuq ,7D? +YٍzǦ 3^П(X)ٔt|htq>w-tVi +?dD NU[NB X5y φRnpl̄W):|:H +z|c1h4׸aqd%6VOsz)vU6O5>AW̲rSb2s[s)_'m[^dig/CE](5`!4|ŋ!JE>϶qkQJf%C׌M,7wxY;>d5ˢJ^8&a(Ur߼;qub˥f-Um36{Sޮyf;NN3(L'Æd봶?Aq'?#o܎P˹bn5GlbE)P,Pſfć"(:<+Wޟ_rI/8"^od!1ogE-HUX5ʾ1 +e .Qpefl6 o`#0Mя9KJKX{Y#8bXZIX +'.*+\ z@&2oxK`(EKH#Mtv`foZE},`Lif~7kfGA$.hl(`ddpAz+|=ѹ p$ j :ه rG kXxPᵨh^)|1$oy3Lٱ#`Lyڳ2svkQ;kc;oOWSY"ܬp ݘ"ݠݰproZl_^tc2݋vO7A!2ٺ(ڠu +ABuABalwE|v>.CDnC$ ƕq_,P_y,9硞As<*q"z +>+EM>h=p]gvw )> i Y~8}Neo2{kqû xxr:C`uY*GO +ptuI}y>{ ɓ#O9 ?/ȃ%k=xaBZ4&x!AؐF\  m&G.]Tf28:@J@.m<8"Zqh@Ghhy6\~(NAc{,+D6{^r_ W4߿r +OОxt +&<YjG,8ZEZmwYW~)] +IuYYO=UбnqF螺¶ʜPA5** +zh*GH`Af%f*IIOZNCyBJIAtd*#3+qxx^ "ڦac2G7sc_ +)rtmUKOC5vr +g _b E:=Ű 4rI2kZpDd&;R/DYBDCF(kaXUҐYϽa&&0w10kCE&g&EqN(zkfL uc ; o8 RG0` "肈+;Uշخ J 9TCpDU{ticGƧg3 Ds:nAP*MјByl5B94ij82U>i>b)S]LZ+tizC%b%uSHM^1Imyt5@H6t`VZesafi mè ,"BfM&DOgc$;hED*0ɵ"L͸|a{9ՔI*13PW%[@@Ц=={&A $c F{ +Cap" Qv>]ic0R¿I[RaQlcHb+` Uk)XuDr(V+|J0!),4X5 CoZLR2+eYW:;NEO YqArn[~U6QSϓLx^=w,̓_N·ߎ@jP[YB37J GPg BŚ]0C.'NH4HSIlDMO ҋV[ꦌF8zxzi)dn v( +Ԗ +.+F]Fz T: +jy*~nHԯeI0N_1vؼw_B?1:o>ևwXR{'vþ}Kdp_1e|1e|=s.}.FlIPgm%Pgi#}drȾ@3o>1\,g!EQ{&̟^!"g<є h$i"CiiDYH2KiI椋i6)xx&4bC1霑ۥ)>*-dRdMlI%qxDYK/%MdR&dW"8CHbXttrx6<5Vdž3QeVF=ܳ~dX#-a,VKX BБ9su/LrT.ٟ}STYo|ZUDD5ۘB%? }.2M5HV}f'n;)z&Xvj c98{%w1/Gk{Ewk ~S^\fP93)6Q8[ޣA|hm +~fb!Pf+lsoseQ{ '+_gTJ:<~a<[(E'4χ۬Zg^1=l %ݽCsڡ {>*/!!E@׎,5@;K : +膘gcVS%$>='0%%w +wt$ГO!@*˔;G9o$A4l tCJ,FSIT/nҵ#G k&}C T4jɨi,Vؑ|f ~)Brc&6ڗEt|w5[+WV'> 觧Gxɷ-wT+/lAE$g)PfIEd"Rl]LXت4JŸ;iyԈ aΒM0  7ƀ)LcaOlKK[ kHq?pf +-g"Zx VR%|@"wA;erz2Pۦo +W~>U%ݲbS׼ 1lvҪ/z⊁+D6^ +vੂp6pKa\e]Hx#SbC?qK+z)K BD8Ė*yS0 U鐻fI7"%}b8$Z. xIt ρk5\@΀iDwCŏ'Kd@eNmiOa=lmNڦ{ݿ` 71& "g@~t`2;r&Ď;q 7Hmj3;ˎ~==@+¼eq[JW;L7,u b!?dG1 B$NCDK(ƈYt\Xr/1'?4f{ o?u- E|o- Kx5txN .eqynA'#)]M1[E@")%#_h.%[ bQin p\,,%*,Ɛ^8jAw:cvφ 3\E\ӍhO}|"ܭ='Uc 7N^=eMD [ܫrsץ N3I+s']7DeE1\a:*@Xˍ29Ucƾ0&hE(*d`V#.eKSM؆K:CUn gRsI=$[D3Q[JLq[\rqR.B$$G4au:I Kc(yjzK #(aa:F"U azXAq5*6!nDr/7l$tj6[aU6AG'gk% 7 c8[Se8X/O+` 4 C<>]$PJ^Dj]0XH)DjaDIDGuxR2:$7sܟc=51Dۑ%w]׊jw]JZK'&q˿{^ A:KQ Uf)yÅHĵrVÑR7LIe!v̼7GV$|ڔn/DT_{Gw82ɚX8-{ï~Ȗ ^^砸.`&h"K`_Wdr׊?%T#?G rrG샘waġr/iari~ŀkX2 g&#aCeoaR:3vJe}]~t8F׻u|7wF[ УqKԠxV]_}(.S'o(SjNZZ[_WsȖr \8gzs"lz)#a\/FV +U_* +^]dzyU9o0Hvlm;#"^U*\/WđM+IuuRY+wJ%Z3Htw ѪqaW\n`R[7ZkRZ7R[G2R%+1CmFO3o gpAf[) 6_6 0FsE)_gKK)VPl&S5e iK݁J3PIE3 %c;',xM޸ :nJH7Pʯn=]R OOU4YXqbFhxTW+1t_%N9EX2~P'1 Ζ~{oVw;{\C qP6= D clKGsy~T"Ѽm zCΫmpݓv F߱ |DUЌ9=]Lڎ=~ƹYܓ}naݥ;50V̘ac͑5"emXi@it1JO!YM.iWk{1p +lS{mp~竗btG:fugMDW/kM9^rRkz?3,CHw޵57MbSGwޭGOB6ŭGj~wQ֜w͙SlZ:wQTIfRE΀ cH 7gS.MwWwͩoׇ#j#vż\o,= _|:.a&=7m>w4;5udƠ_B6LHO o6=O? I[?bJz^ + Фs9RP}nI9u=e!|_ y7j礧Χ}w08A?0?DcJmؽEs60{\4\q%\ ;WD+).@+kfv!Bw_n.\}TQ_6X&0d? %^+4В›.SN5^tܾFo rzTw ѕrbun 1m2jCQ_%YiCT%Fs;`tr/.d_I^sps_27pNa:O9˲Zƒ2֡r?JCIk_K&wG=}{ߧ弲}*D88Yoey{z, %"DRyNJ̄IeH|\F4+묷ayDvOX:⌿1zF q{Gõ?7 A2=UGeMΟ/`FE +O +vH 1Q9MT3K'IXng'γK[ǎT-Ovp,8DKT^u6: ^Ḩxm,,ԞBzk*j/!u hO.3"u2sєn +$$P@ 7^",z" F<87AVLU=O7(el' +B +cƉy㗕ǸQt\e +)wO"yҳ)K:* ψq( T 6=?s +x2R.⋒kR)OO rL")hi`0[!'7H؝~(JfJlCɺq ):z\Lvֿ ={$,3\.(PHfcJtP=D8: gi'<.t>3+2r~_@OR?Sąײ +`AE f?(OY& zƑn,C!6[B yu[rb+wyZlǷYmlY Ig8ߓg%*:bQ@VqJ7zTk@&y՞q +jл,*}d{W4TqvݞN4ZT['YrI{V: +%-\C sgP2MQT3tU?֘SaYQ0kU%[`ϸ$*vP[;VjS6a 0eGV< qM ʢQفN +  +G +[4 _ebdD p@XmX'@U6F6́Y/ v!@VODuOE')N!U.)a(p.)>`a%q2xff߉ܒ/)ˣ=C˹㣗O+ i/y Cenq\N%$%ѷ `)kFޗb:6*0w~g 􊎗uFk)Es Q;ph+]XxUC/,-f=^%82iwΘvq&ݗdL3t?cCOt`e[(JVp_U[pC҃4,CU^ smq#eedz-mV6%JK$.M?0:$A4*4r8z!MgYTr5P hsxJ헂6MtuvM6,PM41wy b. 2IBl 1_P0 /_@@yuJ|`ӷiez{Sn*z. + RE)&n[#J)Kؙ# r.  b[r`ꂮ-`VpeqK3|$[`eL A/DhM't ZdlND"̂Q;pl: (*LQX_*FHppMLXx nx<70bSP[~; +@m06ad|0$d)3^9N!jaBR 7G4\j +f5$Ĝ/\j EB^a!C6=\hY?c  +Z#Uψ`O)$קLFvSH[y%oTf[PXWq$"[څ31`VfVjUU͡JyHq ]ӭKSjGŠfeKg1.k,lV + c^zˡX~><.S=`݋fl6(>` }_M ,I9Yohޗ{&Ƃ/#kt>a۠|>;4~9Ay({+.3ndM;{rw|nO.aXf,p_Nߘ{F@vEnth| ghz};ckkS j/b|~K͂R1ϬKEY.emsJ0QMGժ.rD +Mb& aQ,T@Gg$qɕ CRw{3/q,ZCb袻LӿBԒcs +w+E:/~6-"V=p߇; +6ȩE҅lѨR#,8u=-zv`3dJ^E񴦨kYn!0Ys!V0M U hR]ĔѠgF;Kɰ.[{Jf{S>S3K hP~EȂb\}rkf_X /~/ fW6FǮdzi'b0n*Wc!%["#N- V!K&xcm-E}A|Xl)H }{4%%yM TJzbj2xWP٫( n{R9&܏\Liq&%n' [{9SVj s\ +BeK"ɍڏ+C +®q7FkU*e@II\a{5ΩYǒ&%ragכ1^t'%o8'?!Mt'>UMJ,=n_'F9R$#P R ݠmTлf:"gۍMeg/on.oX4naspTzvE)DZ݊6p1Gi#ZS.YlRu9a}sE7l'lU0/Zݒ6 +} պU5okn^[^QqϚ }PcUX Nr`rt {j=uȟ'%.=AstO[u^N4ZK@nQ=?펺xu_6mjYeYu 3ZF2貽O:hvIjXTnn`#trK!VU.Y Ga !᱙H%(J,J/yLfN[\BB!bUzW֔xV$^WlI"S;X1 SNd>A:Г=CD {})vxxZс#V .Ŗ +*7qRG_8q fR)]:/9#`N$o%DnӇB^n$r%|^msnų|ϟ[ns2y^ +m +Mqb8a9H"q|RntTBEĔW{?fQ,lPwf`hcl`_ FY÷vDjF9\?KRշO?8TdޥrLެ>q 7ǕsB|2:s=%l, \N&qǯ#m|sT|J@^. eYyIXW_f@0ɬtyVy}մCğyFZ^8h½V,}qؤGas6hpKe!|C9/# +#m:+$y{ ?#EbVvC$VMԆ3sV-[\]Lc36$^Tg9&’*cH̝rFC5c,( +EM.%4+oV%~R'7T!܈Y{c8Ȃtӆ$yӫ`PGS9;u,̛X L;wXzpbo@0fM~N=tO~|NіTmt87uÅKxU;2L" rSW恰F}O^O^O@ZFˡSlw#dKK.J҄'DтOfm5%<xo~yO1%%2rLSYH})UCH5ر4ٞ)&TcƆr?;8$lӖabadmaklamhO˛͠KBCH~$% (GOH&Ȁ_AjY\lU&P(wYsZtڹک!yzus`V4.pz/b!W~S)": ~هD0De~.Tzh;po"+=a7@fzg=X|(ذx5'MUVx`,Pc#D-TLz xan[Kc*֦ ZK3OtWNZ<̓Ua|g+ܪpC*ei<[+SSt+ԫۣ c +(9JuꐍKl8V7[C8Qk#Qr 0&lڕ|nV5B'5"ےesvxxy|EZ2uѳӛ%ݪ-YDo-ѝ)Wt"1m{m<ʪQP,e~s\Q.UGG2v!}BF\oΈllQY]K~ZDSsO˿G:'d'YbX+ټn(>MUgoFƾy,ߑ2w!A`69ъm$tyzܰdpd+|լb/NQR^*VT`^Q5O/UY^\Bqؒܔl?g"ַ5#Iq~hu'NJDx}}k4!ȌVvh\6 +gk &.:\-Ǩ";!*r^aeD2,2P+7.EP%OQ7"DE_{V¨-USJJ 5~}?F(7!7GAvUئ\340oǮ!,gk_ŰkGP!Ljo 3c>춅حGP*o({P^ø"X.D7O sRÆ&IaӂnpdEWqaC΀rmx}{w)@ ߈o].|:˙H[Mz&!Pdؒp+li?%ޡ׼xˋN*jNf:>o=_7P}VxC0{')[GcE +Wu9X#RQ74_H̄w;qvTW>P杙ЌO3 =K0u,k#Xdžx=ь釺,%y,o3^AZ/d3^RUz|Cbl$(+ \Z-l&˕Cӱ߉(P{G5(=] w1?p\(/~6eUUi_2.`e3{YOF4*3CfN0g,ypB5k//|>H*x"N2JNObR,4I@8 !?/gREd5\U?׊Ao.z{!5qU>eVWh/դk]xx,0QНc|s]-cl4Oo4ziAZyQ++mmVw,¥/䄡qtTuTi6ɳHTkFw+%lU{s﫞 FK=T SsŌ#1sD5ڟ !2CGWkGM p:#4y)IHM"d'6ƁWwمܽTƛ7ZUUb]8UfB1DJŁIV@CP P +d#uMd$EN5;k= z Y/7b'E[kma2ې&=Ҩ8yR}Xs|T*T8L2-*M}M e-:H73Pf\MFhVuC['QLMtΫwHX-[_8k6Y[7lH=YG˥]e kOBXؼ-RJj u1tY!yK‹IKh)V!ȠC@ %9_4G~+9û3{ι7hRзF sbUTRiJЂ7%I +X hH}2IGˬ0G19[v /w]Uؼ5.h#z4sPn +Fk~F:CɮSCkOƖ8Ʉ#SDy"MZo#腺]72;<D=;Z tF3+|J-QEt<!DtZZY4w73B/3 +Ֆ (|&&Qs3_Di¡K +l:]tJ*ݣ5N<[f+e+Gh:B<;ԐKClht2q16:\`;ʑ#,'u^30;$l7;%ڦ=mrK#+.?W'5$Z(WmOG/MС,V# ' xG%oCY@)cjf!bmbcb,ldhaj$t#ԥ@uYG\x0O OM(>vGBF~Gsyx9z΍#*BZ(MVɘ)-B+QUt!]oY!sdRLpp!4<H%՜hxU$eZ)#c<гekݛ=(*Ju,Kljwv::c!'ڍ !S5Zcdzz@u?=+jam"od?]Z魼w&EFEJ6D &zLo|8B#b/`s Dx +LNZ\rR +kՒr۝! 2F1w? @'hHfݮ <,@zq&׎9Js w0b{dF܎/W{8zկqܡOte X_&wcM2q=TT3 }ENޮ+뼟A>AˍMΔ~>Wt8|=gO9ŰѤz"[1Q!}5LE>{wȴ힋\>u Nz^v/&QƩbWf,!Vְ+g:`ΰ?{<,t]@ot^k/\OΜcR{0;YaOpؾ ~Ff1"B`DfT7{1xJvXglwK5:>#}F;iДޑŕ^vOKn{kK&۽q#=F,n3@|('EfrOh|/`!eN3Ӝt 2 ԫ>rlUAO9\'P4Gߥ9?ݲ*1`1OI뻊E_+O[הyYE+ ] N/i]Q"Z$L7s3~5qD#tВAS$KDClF, R"%ƣy1GLc$fsR[`OBK/;(@Ng B~呑-|MN9aV')igMK$0M("Պ}H't*It#wԆ k ^0"G|lc!)Zazb z'n RR[ V%䧖|l,  ȔЋ$ K5va>앰<iDWL@E) +ď?i@>ŬU44tcS7QZšAXʢy?q!k6eXg EggA` qM鉱oR@gLd"3HwE |}?ﭙ ]Z8Re~ ;f "wYPWH؞TJ26lޛH\%"Ih8=fC?C#JF0_p%-W*Ϩ@Fm%r {jUlւg֑`YSoID,DLlvGP:NMqЪK&ʤ\@+ۧO օO8c8 > fe_6peЅ|Kr',եgu|WDO]o{-_܅=4c}bFvHNa|mL|lAfIDp\%Uk/uOpySM97U'1Y4*w=v>=淎;Ā_p=(wu? {P=C|n@pw(8$ {||[_D=ן%:F 5nro}D`ɣksP0bE/& 8H)2Y4@?QPe =8nƣT1wt ^е:nP;?v9^{e[$cQw^ɈM}g7IAFxHܰvK׮#w€྅|CAis'4u`?~"(Y~(SaSNPٺnމHT2&k7""64ă-͂5iZ N#p5sX4=N/%"ュ?ˑf&#Q,mTx!9 ))P""E"!MZ@5 +ZWWuy5\@v+@U#y"Q-6E/lٝ^ʓgKjt%X6e+"$(3ٵXOݠs +i:!8>GJ`63. J*5Ϭ")/=O?wA죀Uv9|zAF"̐fJ!e)J+JSzGZ=LڅClK?H B}γiptW$3<y,e-9NA@WV<N0C=K|!Z8hr_ +Yʛ{I?nu{ٗ yw' ܘ(t]vIc$6A~X/͘c +>ĩiV9$Yp5V!|XX-Y/@ 'hkWjC]Z< qm>l揌7vS 3oigKv=m 0ae]ڻ?[KgI&/5T>jmL-jPth5̈:|j|! .Nlk[/Aj|8;_ ^j+͠W7.inֆkPٯ2D0|z 6Ն*+^1{,+N5sEf& j +n/2w@`sSމ,Եlll8nX~\TL?@&;VoA> +<'-o ql7YTcjSlO-Km6l!䠠Ե_sy6Ct=(5ճ-þ- L/d}96d.#Ȟ Z/~rE!?M&+WDB#B|\7U+'WT?O\ܧ u- u?q8K[4t|{&%pX!b;Θؤn,gW0AG\WG~82j|Ţv:p o*4݉E2i|^W`w[6}mcd'TzMn5D?Fsr]WRō<([7qha+r[-OqEO~#4Wvi˱lkE?0xv $==TLCt5x:Rf\Xvn;>rlW|>A.ܑ;h6;o(ӁԿ#0=#% +q~d꒸\غ!|J+%:_[g-4@q83k"M%5¤IrR1*+lB€놻CB0 +!|4DB= I\rd[wPI+;&e#Zz'+Pg@K꾶!f'F"6$Zۏ? &!16 8e/H%-iggLאYaN u]܁NC1WޡcFuGj(a:F +tZ׈GK` עTjieYy5j.Û9s9[ v߂⃰lS.H _79Ё."sUI+e- +mc+3XF/X *?)Z,K/WĔ^]c +96 ]9 b}K2Е[,~c.~k)s?[ I @ +λᅐ?,1PU}|[%H-OU.1Ɣ`LIeLb E㕰`Cz)-I %맏¶,p1#mn-6վEbTlj i 'S(g\ +!z{]rSzQcl|cK!mbn3Iwa8 ]d6#T'8{2*-&ڮRu' ش +櫺(P,e \ղ + +#wnBj+, +a B'A`Bv: +|%{Ҧ(띃>)/ֲ*̏鎺+3QV̐Gq滈u # Vb c5* +Ɗ 0))8c +@#_ۣ7Fj0`ύTFSgqŸ9&[x +vxMVOU%L~u^Ӗ<4iܶStV7v$8$l(9aBǔ 6\IK.|(dv_bQ >)/ZEfg<i6BJZ+ǠR:+$k<4u4&sO|ۋbJbh$` +hV>8؄GwW,K:TOx,^*:'gY)cE+Xtk+&Z⹐~xG%['iLk\)AuAH<ױIrlƯӹ+|~wU,{en%|6P qL{xZ#zb"ބ1|D~5gBΎ0X+dos"oLKHraNә.51ީB<nb_UC傪=IDbBh3P*jzȈԨkM>2!lSdz-A곲{%thȅ\~7GA&qC)qV'4TFEW1F>hoGE/)הFwaWg65d($iPvP&\=lcmCM;9ܦLVצ>JE{rT'u1n&El&Sdr2Gs 9ֺP+jۦE1,ks 94xhvn{)J9*TYL&9ρANr吲B'5ĦPNb.¬xPT/fP7~1Dn8j![ +YXA\7,![ ![֛!ob-b![[ٛyxdu0Uni !06vk~&-ئ@ݺ*sbh҉&plzGzM=^/fIՕ5В\7˂vm" +xBmd,yN!>;R1D*VN ~˪t3-zȜd)8ll{\x}(~@n"9NM(%8x,e|:YNfA7'^f"DYmCe 0)axـ B/dǡ\Eҵ!_p%"\2O5+em5_Z')` |~zʖJ ,aa<)iթiHmFn'ʗ/V +VuN)Ͻ^>Sih$?Y޳k)9"OkQM8Lh.03F4Rىxɐ'tCr@Q/uyqnaЈ> +A~d{L輑`op:^U >Y#oGA<"ҝ껙8$"+nΫl'C=X ̽ H`me2#YI*[Zlޕif9X窡dvYU'O!YUV/[OOia\3⤒ + ']/͒hdr}_wlv<Įa[(#")^tz.0x y Y` \' ֘N \)Ȼ$Z+fU6xW.Ga*'87< +-tܲτxU%Vs+@2',fbՓ=`ԻQḡy_Ж,0VGPq=_OpiZJ'3<J?MUnʙaQ*ښWMx*:@mfJ<ꋖYs?'vIFZY׾Q\Z~R$a]ĩ#aYF0wCJSMr1vGFGﵰJag/C>CT첻~6Fp_q1kMZ!a`'mu;n0öt2{ )AyiD"VwXSD^o)MVq>`ˎ @df-a7ݶ]L NUPN{&-P&ifgdkd'|0j6;WkH&*1ɹR7RBL8Pk#}5/[[£b0s3]oxY';D37r,񖙼gXD$xS{ uf Hɷh gr(mp +E[7(}}I駓h<أ݀$9a烊6xD-doLSp +nu0 ~z+YvIթmaO+d9x#=r!ܘJb8cSĊ?c0M.ym۶m۶m۶m۶m{;3qltEUgu'3b.n1{>v\x}#6`W\Jv.vѢ͍ӮU'H5ѮǮ~]&VSk,`dtiϽ*g4ߘwݫ/oo4VLH3 Q2dA/oYnFW?p71 +Y3e5 )tٻofȂyӧTY~PcW7(M`?+Pk'PFa?jun ӢPV!A?g٪[ד1mP1̃pƨ/BEGƒMm$5£Fo$ᾍ?]wBA)6eqDt, $(r +b De0}jG" G$2-iAB"@EHR1*U\4*˕@4n]E58*h#vz~)aQMX}Źm9ekW0; j +]Ѳv diT';Y]ojS>Ee8KxmT57fzx,i] +S0MFwdعT43oKS4Fncl"ac`fܕW^rLIЁ@@0@4Ѥ I e@2!ՀDB(hܺ ضhju{<=2f{ x9uze{}\P4尵.BhuIS-j,nIXմ` \h[" w.2 bY3Z7,oHͧyfas[2,\Xat%@nTm, +9sUlWp"hKYAcc]̕]2C裫y$ޱ.2^gTTM[mR s.upf#(*n~-|Dmٍ\iyDZ< L(й}$5<)D])iY] Ltw};,'a&iy +GL׻aS%49)y¡!i!!J-`i/~ƨi `d2$SSNIN1elʖg*UVZxf<)||DBKU][I* /멫@޺.ej#Ay8y)HתCG} cB'K]F6bط_ooVlUb_cSFD̰Qaơ_X[F3hM[2qBf.jԛ_n,=%i^cSb +# x_bn_Wqf-FxVkm~ H|c{ ^d)Ie'ޠ;Gȑ 8֛xb2\(QX ?rb݌V11iP׽ҡ"!A^lBP;}m(leNTCG}'S'Lk ,]4zKu:ZG}UkG%=Tu Q,:.Y-cB%K +e43 )lqab=hx6Lf`pu6񘑊<\*ڞelJhY)֋Zg$VhDح$.d.oO^ "|8:%:dS8=o ZAmꍝ.d.OЙiv,Saks8c;t= o't]S3'PfޞCi9֔t|;+T.&-IYUK^Bˀ7͕:FIbs+К!7>wT"ZӧE)/J!ܐr@P=i`tjP%Œ`zQFÄT-eqlb'AŖ[ǛЃ{agDeICoiwzAM^o}vi|k#,,kS{_lvՒsW,nEs^, #܁.>/(\AL8o?iIiS4.!/Ůe 0ȳg&hzS֏36GPq#mByn:E+1"N賣ԖfȢA#VJ&̅ s_c7!D#N1NHߚ;O٢gp4_q9 +ή;ܲhٹH^EO=9+` fըOuMUEO ͼ)4ٺE+N">gο=Ο#'OԜ_ٿ*%46gϬߊ.;5Dѻgs8̳^X#}>~?O29Hg:\ޣT<7Yg Β +N)5Mc,)u5]MY +ѭ6 IP f}ViyRL;cKP̕kjۤf{ѮJ*CR Nc[HJ8P4Fzn&>T;{fI ݨB\};'=,{3O/Z HPF+kѯlyhڧA=wUhFNгu=_Ti ~`{fG[sg}7esǪ֗WVWU?뫻_9.9 y,fھ^Q:Q;#lPlC'rn NJ'gA7g~ľ5Ł;>qHrPY`S#Do`Zn Ol=rd8x%&E`vxSGOru'fmBNC0܁.aA&d|kamjN\I{ cت8NPxC9־٠apqȱj󑉤=MDWMMf9[R"R|0:H qa1I`gG Q^"D [0#o:k΍B=6 sZCZn`<^|'a 3`n}@M'}&yfW\Y1t J?S,*o;*<ӇvK9XT w>~Ds>Jmy.FĮҷκTk: W5k}g! *\~32;o!fkekc#"qL7bƓx)h{B1ub ]ehIQ4%F =IId" +)֥GCK d\;Z pҹX^ ߉+8>q~j'o y'd go8!Dm7-%q ќYg0Ai)\i .RXu"9aR3Nh`<6S)("msRrG$2dNᤩ*(+(*cFhW3-X WBh@ b(_Pb0ra<`p +y,ކm"N΢丹J8I>K qddjG ~5c>0hԏ&>A 9K= +.dxl +L ( p1*!Y6턂ffkSQӌknn"Kf!zT0v3%J)e۲@Kú)Xk]_Jݘ @m16M{8{&ZX(\̃q3iQzhgNUUq + LTǕ=BqWӺ}hW ]%u'h!5a@l] u(!|a-5; 0垭;" K7v-g [f# w#tN[Z YS(G!f'טګ`v)مJSk*H xrG w[jCk೻(h6ǥGhxsmcm3B3bΣ]6 a{W8Į h}L{Eiw`\S Qr&X'`^sԫ9"S&ԫa'gnl&ە>Re̓8V=,m^0% \,@nAߘ/SUd}F,E\U f&2w4Ϣ٣]\ e/سJ&N6g[Id="q0!^EWOr.0P%Ƨ %Y(".-!rq(y2>KQG"^04{ⴣu M-dY2ҽ SZt%aİU$ڷ%Ԓt_ /oy+d5~-Rr> ӷ -džgQV^fyMْ%!!Q!Aaۉ &Fw@k4kPmT5kZԫkkj6-kjV [,jV^fs666v6@ +~}:zgo;v~ .Мv sуw#HERЕ桯FIVt S"K 3iU 25e/x&TW;Dgs;V:׆;Z:8ܰd϶=gs:<@xK/LJd5G 휣 ;7'rJ _KF9"%ʲ:9pe>D:UyG8F=elfk#NTSљՇu>-GV'9ںQzPP*8TEUgrE}|Hꝝ)?=jҕE|h|ˎ%"U#->~E?=UcC ̭)T@wR>n tLdQvr<^?>Rކ>?ȵiOx>uw999>}'uL`RCqDL5*OSm8 ȋ(i9t .PP[+.DVbeԶF[lc^F07xkT;B̔抻4ۈKml!ߖ#nX8ZG +XoĞڻIys ̞g*K+YGAIRG/tcdm&֢ \\# +D+.< S"XCe %#W`R|$Ũ(7D{Ԫ[oF3d5Ek Pibe1UZ˵gKZ7(*^ĔDK]*|-FiWڅf Y@EZ-u2XlK1/[-6omZb WhȕוW-7`<_HKc'ö[}Yfm ITiV`_;`rrp D}08BMsi$) ')mu+ +gV-ar뉘Tc$3ou9%zD`OԊm0o +@0\ech'$CEOW3lCLņc>Vjy1G<`ޘ,6b~ͪH[',]IY8:P8&sK+qNWHRcZ% VN\8 +.P+]Z(Gv J--F ?9'.,QQ!6KΝKF"9S`(ńVgZ)ld6iSWT4T'.h S}W=Q@o.M s!ުT=[:wE2K0I#-MDʆo"Ԧ~/%bf 9+ϝ9֩LWʶXK› ?ʲ>9eG 9`̩iKŴ'm{-'`?WgIUXS ˡFlηL+5ɢvyz/乻8v0AncT +:HD`c8ujVHP0,n#!%!ZKAr#Ĥ, > 1DDz e! IJfIX|i~L2?f{H{DOY +HǸAXd%fp4, 8{VO wC:T8>+(bdLү/#O\h>mLNּ ȂxHl53g+k5HB +f(LiE +QXۊ Dd6e'ne)EvOIn╺R^Pj:)yD$S$e EOAtS h'Zˈa(D)O-ԧDs!К\s|`4eb/R:ln~;쒴. gwf\lexpLڒ)8rx͙AxeUᩢz!| HYUeZ~.8f nAglRϫ=(|kvz ,B6qЋkpzpKz`^X/Î;ȱ6!@qp@6Ԋq%;q;]uZ +Y,rx +w^W -fۜ d׎AO&)0x4HuivY`Wݑ](Y %r6E#)K Kc 5>o[ǚ(1}fq$i8N7Lt؍Ń.ePfzN̳'9U1>JBܔ>8k.HTUz"g亖G?Vቷ۸;´Mл=T9|>n선A.1Û'1p%*b;Qa(>)-C (%Nh8)\WVTb$ #[yֽKJfqzCYJf@3Fܭ͵7rq'mZږ-Qzdi^/<ήdƞ[0 z j(@Z']DP&eN:z z @(b),l/b<. +ǒ&z=@jcTT=dԤ(17y2b6f^f7 $%/V&4>PXL.J.b1T WPЪOtnc^N6J6b9a7I%¼1DAZ)IDi.m0 R]M c>qm&K=4FM9eH/ΧOj20YԏfQ ($ Qb1`/ߺ.. =m $=ƪ<'Kgb~2 HKI)#5}\3bhdbئ[S(](ޱ-IM=8ocWSt$z) j"z +I#'7RTUT`?.V+ =Rc6Je*i賔9iZGBezEK7g߈,<@.%q!bt/ɧ‍j ؼOIHu~H;]lȡ7&+=X^S<0+9xz[{ H/;@=nZF `E+uB1T f``_c`@LIxM?]Eԃl#<r7B@ kJW-فyx2Y|Vk'>!,KJaca'&VNjsuk_]FQFY¼@PfU,z*%)=B@Eɻ#|u~! )_kCA u~8k )V}6nyLPP A?d P_Q?'NOaEϑhOQBtw=A*kz4u%C(dxBɨqmRʁA,GL:4~,]j EБ\H 3[*ɨy꩐@qA +ד1:yGLLI/Վ7(0ye)Ս*r-h='FK=y Jr@{cږ$'e{wp )4Ҕ%mAT/Ui?'E_сG:3fvvQV^ xRޤ!Un6,Q6áƠa2.5Wk8Cq>fjGOq.6If)8E%czU9l(73E'M,}P B fdž^{ ┷O{."`J^G7)Sq5&L4]Gk ¼.Ϧt[P$#r fceLIW+#9.>Bhsl0ΑiMl4 &|!U`#Bާ]ؕfy S_QΒ+effZnɿqvHEI_d4镬2P:,3I)'';Iڃ3W^z!2{ɘ.^HoydI2%].xM3{<%dqq6ɭ +#ѲnqGV-D +;nԒnܔGWɭ6Iɔeɩ2I0^m(% +٢ +lٱLE% i> p +;/׀5;%oIul`C:Т)}N|[f8w.(`߳GqC aLpb EB { ʾP랳d64pzAӁS@쐵-C+ktz7˟%l3k"PBFScu ܱlf؛=?E}RjH/GtQwbYHVTukR|KI|8U;@S|,z->K?kH2Pա68ue_3ĉ5=X`5žx;s6@S|RiZ7+pM9SDzeWVҸI[q:s)k3?sƂMl?5#ӄ?ZՍCC^(`z5]U=il\9p IY6E.i ڪkWEMMxp+eRb"fֹ‰$-ke.R#\)6H7}w_',@c|/8c:DZrnfIfA[:@eX7@sϹ ?m +?gfܧקV~(玾[Fo7 n|/[MXև5=:=s<"ڀP7#X9Gwt <0%>ըO]W- 5nQ ~ya=,<5%L%+{!Xz|8ͼ] Ȣyq.E"!@c%BR 󀥶3sa/V#|4aAqqRL3qQ=Լ(癮YeW7V]XP}Dxޔ- W fq2+ ųx^c5)Ԁ@DPp2 c0z|#ms[ ?wG•qAKED' F+먳%uL:6p 8.LR6 4u+8^cf}oqU214D_osݿボ| lfvh,8 0`gkĴ55hMqmYHO fWM`!jD^k Pk䎙ddFT쫤Y=O)"spo[!X NepV\r@ꤦ# j_w<| w qd6.4uNnEŴ豭ZTaZeɌvE5<ļp' +|(a{u%x$iRm?QOm5@ܿQ>rNi{%d{-#þPRIX;+-_M,XF*t@Zdӈ#jVan#'\G^.}]< n^)x=A5X>jiػơ{Bo)8=;#r\)X.mY\CfPk)6k+wJ̪$CwSP 6Po5bcP8#Rފ֎I}qᠣXfRzuOҤw*_=Ɔ cä3}˶yWE38k"Wi>Gou(\+Ү. A6ᮑk]SƞcϬg s54EZ-Xn`- ˳$QYO[ǯo5rk=Ǿc?oKdM!v?Zʭ?SkǦu_yQp|߶ِaE*g_k撦YY%N.u 1Y +mEC7,wip!=gc7T톈|o+:O*,g=+CC[ptB^7:>Fao7M{qzSqzSMI~ǡBE`C\8Ϧ|=)ӛA@9E"W?Y facVf˜$]9El_zEc۵Ab2{Ѻڗ%W* *_yk( uQ=wXkS]6@~a>&C[+ }ŝAX!FOrf$/WDx` B5}[أ.םz`Vo^%J6 3x[#LM٥mZ3 )%6':~V.Cز|2K@[Uf߷lb+|>1[, .{r|z2={@pd;X +x/W)4$vnM:ͅDgvALMMKI5}v7CՁ f4wTxW:7c MB#Fe(*{0.gH1^٨I~+t[غ5jql8-:粣#%qE;"lO4P1jo/pKyb|P$,1\@÷(q]sssk3sȹ"Ν?M3H5usdN;%[mPK<MA\ k!!$A"ICd|oߕ|\bz\}/[Ǹ7Gk))8S=1sc)E;$is{\@#bo=~<ȱps*oiq>Y#ok! xo'3z(m5/1߲`+Am]wwqjUO)8Ec|a=w.n1G {rWGg +: R< ڑM>D(D ̀ CUB4Id lnގ7B0=BBCkO\WQlGE(O&B8:Mم`klV`i;&0)W 0w#M8z b@˧0=<5V c{ XmN;pSQ:#:Sv$nM:dA*8>N!-G9ǓE[{/zo"*oI2_!ҿ4( sfL2`9hMu"`MFm\f0Ȣq*¢&8IPr0p3vM›(D}<9m=˩&NI|L>JW#>%.,W;m" wd] o#ʿQb =;iZb#J<\{vɂ~TQI" RR~i@XKX+(su(1cvXs'}&DG$v^rTnX J 4~*d }bv(<\Bq^zlwk2;;8:l-2t.`BH젢\cG;H)YS{dwEʤQA>13y@]n a&vӖ쪩H|(M_q5sGu҂IՂeGǡ˞}#5xhJK+̌led'Y-.UKax|f2Wz%xRJ 4<)05 8,к2E0&Ӧ9h[O+йABz{ĊJЩ-D|>PnqNaI.3wkuWmXCWϣg45#+pE,Aei>]pk ݙj9 Yo1[vsóxYb l*ač7YշY3 |CѾOTe]8Jz/QTq̬ -zv/U*eR ;rҶ6 ff)n&:dr]:w?򙮒>m7$;}2\}}C[wrYghz*.VM*,8a-1ff^5 ;@.S +6#?5-vlB_Z",8>>RQ^iyxAkKKsQzyG_\nTZӓ +_c%H:W0X)aUg5`)EzyVkl:ւ]#:'X=:e@vؿL3%SX +@lj i ijr "F1'%oߢ**Tn/r:snqrw'ǻQ(#&x$;E%V 1# KW:%k5=l{:pS%=mDكfC1+4Z}8r7G?e!g DF oE2YAXU!l ? p~SZFnaT!kMh'b/< f_Ó!E{nz"X FXl!^jcپ V[FJT}kvu?V" r*[4=W<=I#r[fÃ8I\Z!@FRm@I8K%(B;(Ġ\!)- +h烀hP2vRu%Z}\8v3<^.K4oAb%iJ5Y `k[`|%Y3HۦYijL{pNar:8bgbҲd[h!}Q,HtG|11 L` qɏж'gXm[Գ?*ϸMgd1bѥa1SIOt-ǦE9}"t'z7Louf0nuf\lwkGHu_qk٦ܤܡvpLH4oV:fڎ<y!gewFnwflL8tޜپmC1OMc3;8gg'g lNl} xEI Fޕ %LQ50{CsxazɇRޑޡ!(P-º{y/ڤ96up܇nYy}ӣXh77(68;Y>"l ƒpY@8%Fj$!.Lb2ha:/g"JEjgVja;y.?j CTS+\ND`Ի#35gsMw_g3; eo?.@\LdaF"cDB"Zq"Dl}D@2ɤ,Ujii9t96=^-9uihT剴:)|>uRՔ@I ZGUE⿧B@8<2H.1x}Vaw2)Oʕ5v8XnJEbcRMPM,Vjmtfy5:cm.ٳk]3$s%W|/;9Ux O>EG%Ą8o&ҋwa\lGgOCMRl>LSpFIMA5W=C6.;ƥ9C_uVr3քg' j3kikDXͳe +PA%HYъԂZn%F׏ҷx]0 +,O}9BV4<3YY`zd nX? +9rvM1!HطE1^O\GQF夌OjZ +1^(PvT3 ]-Nwᐫ6O0̉RK,C՛'8Λb 2Oi982cŃS2 R`_z2bPKfRBI ^j̩*u:tLgQ>W/ &TIg$&x888)B% *## +,0sI?^{vѩlJfhDyjީ =tHR$ȋ]b c־2޷!L*!!/1;kq9΄E1zK5o˲ѡX5 1>u +AFc 2Ce"$,Ϭ,IIv-l']vgEm_?`5{?-tVVO.S6jZPX~A4"+ N&yZuƵPoOjpiiY? 5}Ck(w&N?HƗ \C`fPzČe/W"ެ2/s,ru\iY.B8:*ZL`\Õa0T#1_#SUk~rH/F9(BmQ-|=9I e32 5ZmyxG'_VsnɜQ]XÇ:#i,UMYRK/u$ir+]haP !qq1U![1M-|h$oE6{"l`VrN~JnLZi+M-5NOPGʝPD{Psq:.kus繙Rb1Xf6R0r#KQ , bHC=QsHD6a0`'[Jα?.@#V@x2DE]]s+)8ŰǂׯΩO 9?!X'#cpLDWњ!SJyy*"Ψ)(ʵμMW:& .C8H"o57a\/&QĈhYU~7JiCWɋ,; % 'u/f1= u|+Ӽ]Az҈*8ݡܶRw ~+u+Mo~ x2+Ԑ$B6VX"0.|!(JT}yȡ<ͦ~:tՈ'T6X5BP!Lh6iһ2.-N/0]Ҩu=Td.~rB>K|gM#+}L_Ec5K*$ӓJ[N}̩̄`\ۍ[':h ۯ?r^:oG>/@6ax!rB)MzsAx9Wk}5&W#VΏnQk`8vX^ݰrnr2vo:ޔQ d + {#%hTxv 34Pp$t-.?\[<+|lq+7PzgQKTlݰwY{w(,n,?A|z`y3g +ϴ&И 0!U%i^젴{;μ0tV +s*$pX\Nt9%k=_Gxa 41s +Ŋqr'ޥ0r :[Y)2,z Qx/"XY2 +g>'/ a}_)4#vwBVP4&49V39afsk҅75SW#]9}Lc)%}K==q'1M"pd2b6`+4(q`0 ԜaۅDѠ#[tNjyY'qKπvxjJOf)\sc2G6^An84tң:)99d­US<3 ; pT4qr`-2`>Qxo  J?%noSgri$vf-`"~GvSmK}9WEU cYtm1-Ҝa,g_`P>U8\g +`W#ǜ9T4@.=1AvZa4Ү<Hm)9 T1Α3A$/fz>)Sʹhr=ʹ{|^E0сPWf#%G#t, FAP\Cɪ~c&!,BR,^H6?XXoER*Yv}1O_6?۳|W +C4j>_6GߵrjF6 \tOz(V Wۥ.Nzqij^J +Ўƣ_Jכ>͚%9&>OdK*eIodb^ GB%veG 7dC9\r7 sSi/ԎDOCyd*d۠Ntd_vޱ^8 Š +tu/PP\#Nh 1nb:Fu iy#!294jUJ<RD~j#3++Xxr'Af2i<0/˵B<쫷{m JEh0<h޾_QuZkz=э&C>ʑ%#`:9ԣ?x([1h~/{R:h/%e%&r[e]+EJYx##+6XgLSv2*V5[wSrVUC2 +𱊨#^Hڊ +*(]&1tF;0>k'R4-S=ZyϷR-ta+ +NN};|mZ+UʹV2|X3}HsN +TFT4e` =jڼeRe- +,;vhL6'2{`wpk8> x-W~wF8G=6 Z 8B H8A\qUE@^^08")_B1t !U Xڧ6<8(5kr$Sأu[״]Jٜlozw`ԻڏrNjcd9v9y t#ƉS-$ŘeQOe +/쏥!N)ЦmBHΥX=!Ck4j}V5z$A@p]TRN#[GDi@GWRz` +b"ꛑOJi7LghB +"9݌ܰi,8C ^6R53O1Yih^__TNTo<2u }R 4k"o H&fn[wWV.:7$(?@pr?yy㨠5M24[ Y/tw20[d-ҲJXH&6&OGWE[Ugzx#b(mH1QSB ke)+Ztt"͘Y}j̀Fn'>\_%*vHWUlmނ3s!"asw1bL@Uk^fNIPL^L2RBM?; $,m~ǐ!MG5!}Té(9} ^XaJaQV"kÕZoD|Ksh*,eIA#3U !7G tQӜMBb%p,l¨r}'$J<ѩޛX>WƮ(Sf%*e(92+Qѻ3̒9SlXluKhV>JܑfI%]\R("^N!:kb){ +`ѧxk6]ऻJW@Nc7bC-;p ;?9A]XIJWQb[~CqmD>q= +  F +i%POJQ"o +wFZ͉<&Qd眔kF> 7`=pԞ4r= F~OJ]RZIY!wUSpojSX|w3OF2PIaSb+feiذH}Գ<02t%;yB]rJ^qu߁#-bWu7q%^vAKQ띞R\;*N 9 Ɯ+j !|-'j_"96K E]b~J!76|N ēK7(3s +em["A.k]H錝 "r +* +lIB>ՀsQkBN<ߠk&U?"]2ڄd@v ]Zn{~N_V:Zm50{=ʼn,89J"c[8cgI90ܲ6Y}G{!NG!cޓͳx ]ThνͣȌ[WaKG!v9BPoyVn92!%6zz +xp>sEDuhYD! ᔎDGLF? i8S(1I +ςƠؓiکaC٩3ჀεhͽBh%Hy)(i` T5`kS uj̬4oKQYc"yU?KW kɮjK6:!2u`b"ˍ-Rp= 9k93ZVwsHJYFplb@y:իASJN:U[)v|\[`l[ -[r@A9 T5,8GRhlSyBYn n61-SqLJ9m{G$!PY;῍'Hs0DtV:]?bV6ZZZ.rJz 7rqSvt HSOY +xd7q rޅ;:tf;<4FU@%8nt֛3\k9 ;Ba.Y$L7pf9&;:(4&@'7^UVMܝ +MPӜb8%j($\P#;U^;V33[ n6q٭|&S;2kRH:QtS0Rit9K>23Ji v5ÏfwZ!Sz?S#{T[V]s()88V J~@Z!6kES}51 +w<D_:I3d#ꈽz5 )ZF $*(qz>@oYL>/+&LqQ hb,gOd"tPB4ȷtVY^j~uj6uҙ,7Eta Mn*R"w2Nv9_^՛cc\׃$&3ۭs#hBI:lBGNt߰=qO g/ 6rL {/[( 'dS7UvO[]IS03atAwI[rb #vlOu^'9l;S vǝH\-ɇ>ٝQC,"`.0 'RBCmҶz)sT+q]냾HH*U(%˰w33Uh?%֝]8G 2 j6m=vrB9_#aBn_H~;Y{*u_Pj`+E2[7;E#x~K|J r-9T *͊EL KG*BDWyTD1B1a:2#"}ҋOa,bK1ci+zWy/ Ae!=sv"(?F=K5[Fd@lp0 aDf:.Z?RLR*p~B@{:ؙ{Lvo=lvvߟwc85!*he>H,"W@})@E'nbi7GJ[0BO(x~$Z_&qdUKMr;W`;~AS/EI. 3EK? 0r&C*J.. NF'z -Myn=U\2!/Z]1.4.>5nJ@j.}]X!N$?< 7͵Q4)y1G4ؐ0$vG1n`f6ӄfFpW{@BqjBwz`8=cU˽fnįRLO3ei=As MՊ[dIO>F^𢮯:}'h|H|F߁66’ Pf^\ޱ%>!ь +D,HrVEn!NQ{i0 c߁-0NM0 PGAGϹ="+]*P:޲Kg .P7}4m4/ +i<.O)?:`hF=*_&UXEAGG!cR2FnKI֏ݤ8*9eRHl^ar6G&D-X e&QjKP=pQMbo׸flll㙻]oٙ'=@w#A{wUrטRd|@ջ>Մb]Yd&i) 6_<I :Xl)Keu@W\=_]^MjMcWGmgn&-)j-iM^T/hv ;GO?LϼW _]a_.[񽄳O, {}ߺ7ӻ%MdE׷'m_Ȏy_7)ooOxsO8v mۻiM-`GpGy[jGy[.uq)DO~)or|O;V߻OOҷp g)p gʯO"?PaAYPԻ: :N{y4X j[ 5#ӘH6Asi[I> [FO&Q] b_B82iƅn~ęb5[$JB' oJ2R䝷=̂g&j:"Cl䃲t!!ꗒ2Ny?Jwci}xRpvu%we`";/Mڗ+BX0!O뀡nƖ^H/덮 ++/n{-E e&ULedW&ε6dt%T[L%[blWbbip7V:k ∍NK +*#p̃YYy"r# ա!(VA\D P k8ar~&mz`oU9WXh +iBdBQR:ѩFeg%0( +:Ԥ0UؗZb϶~(9 `JL~'Qa +:ׄD]C<-P,wP׷ ;z"V)M%#p#Jƫ 6YB: UТ>D.\Lo>vDL6©ohl* sГ8!'/m k, +cn4uJ~V*Ń#/k: 57"VC#`a&"z[Y2DTkOv߉MxcV J4o?I-|7WδдvIh3=X˜\CxFP'zB+Yez\P6UfJugm3[*kJè +skqSŭ]ji- 3糦( 1[Z]Ϡ7EWCN]Q\nG<0H%e,ka9pX4ܘT]~F|LK[2ڽRPr)X*rߜe彌I^jʚh%6w#3swDA3awr#үL ]rȁ-( "pI@H6.>~( +Hͷ!]lʺJ*/*)54$ĩzVXI'%uu4?ߺ‹ؿeȈ*fInSaGj!^'s1ս쏝6YMW[W? + ZFdwK ])7/UBaL{19J}>@Ip[7y%(L&2d)`!i -c$!Ӓ*Um-e[ޜB҂c(m'K:cE]5XESĔpz<Իh_-´ƚt٢ړzW(Tm&'꓊*O\]<;W@,|T4Th46?+$6oe +75оPmU %TuL,^]{9Ĕ FPVCSZZk^e4On~sS*(D[@W7xJ_mG2~BphT$>u2͑wӥ]P&j.~,[Po._#I ҆2ڑ6oZ ë ͬN1>T$7g٭:e:UnE;xs, tRz[\|[c*¥%zMݩ ɖR<il͵9},G>}G1dbnܫ&F~ ,Gq(1c~YGFt'̤ˤA$UiYV잝 +i\Զ6%33N-J?gjG` ..JudOg}KY= 3+ez@oJW\]&5}UOe\뾲'4m}% 7˾Bj*@+@žO2m]f8Զa.-*}]@er)R;+HSow ɪI(TPy;ӎd#D39 +\[Qg]j)C< +5\k5Dɲ #@gjWvMTc25A 8YqE;AMJ.ks W?ZjEy;>GVzVfc?\JM 6gg' +LjV` gСX'mZ@MH; +=Y'ԓ_7[<] 4ږ.22+ɴFZÝ,ˇqQod#"+5'hɆ <'H(j12#.`4קԢu${m&#=l?&Qg,'=JKRX3-݅s.4Mn:7f9Aͭ%A8`*jGVsp) +Q@W44Fޚra -@,j!GsT!95"XՆoUI6SݷNv?EJ2VyGqpv]p߲dSqd Z0Ӫv@ـװn#fU|=ٗ\BW NҪUiyvr!U[EE.BXr:KiSBR &a ;˘A9'%\HEnL\h,'m:gF癢)·ٜq.ӿ_ݨ>%|:XLsWooX8U&5+$pW}%FCPs 2:b)7G_15npros-j,uV&wV~Vmꏕk;:$t#4)( +Q7_hJ@zTHdu>#ݓoR24Lo*Y`o=ua$tD8!r;;B +6I`Ndi7|MhZPmyz6McOSX8gWg;37]jXV)ʍpRmX*Ԥjٴ?0y-R(Vr#㫗rĖgUxJ=nRqC;xlBdZ2׆qt*W} $p_Ub3)E*[]45(E HLsUIo TtavZj&zjw./M*}-%?;^i.6muh ׈\3NㅓjXp^~08,V wzFBPyG$ ߒ@'xؕUy`rE%5wa=%n%x$vF Ix +_w[(+ʃm)S=d (7i-y(>}8FgN*y'Q=::[%s5#r9'~ܤZ+65qm'jܙn6{-ZMu ^}rBkRva7mX>妌oY9xA.",@ِ —R`dk޸Γyo3GZvjכr6ЪՆ1M +pr7Z?z ~ܞa ߸%i7ghO=M@LQЉDE7WG'$g)߹Ў ZrnVr.S mm =4%Ќ Ƹl [%&)rH^͆n_ܡuJA"CWwmt>Ox 16Ɗ3RLz k\c>xM1~{ ^Rg؁)ڒilk}m?|mH+$oZ0,Jk^2g Nu?gDPXQUkKRh2tWAê *}{>#%5e# XůPSEx\%6dof= +r]u +F\<$ dU@sa a|_t"^HMQںu\NlŁ(Hzp*f}!9:y㶖dⴕrAD_blƙYJzJDLXòTUC\%>HAٍfvdl 91E(XiCMA#5FL{v!_t}Ua>0[+c>Xʏ?Mc}ʏ~Ï;g.ì#hrۀ?d73mH4s4hAV-nۄ& 6!\*_-xf&8g|m+@[Skjs5ssVꉡjnAIF)զ; mJz|4C:l^`R$=*`Xj@Б{P1 M1#$5exSҦ~F{?I% xbHK`w\mm/WB#dsN}%%[Rh1'+ y\R^F_m6]@kgs]Ɠ635Ϩ5V 2h +^"ggtE "Ԩ@ؠ #p58FUԡ"YkLmP[}J}F~;zn&dE+xI L07*+f`%A^?^Ϝ.&ZK8õ2CJn(`x[\-M/E.((F*Uam8\Őeu<\ .bЏ JnWk,G6#4ܡOPD#> t ZX5k(ZbJ幐& Ut[B4BMdeS 4Ŗ'J]ui!&xi=)7S†O@\4~4aFd+ X(r}AHrhC0OyFn8 /"E9[JSAwSAnנˌ)!JC4 m7OZpt@O}7z=TH#N# X +>o߉Dz\Q)hx,\?# hU{jZ/V6AjAQuSZk"rۤs +( 񽈾$BJ`XuH(j_=T5bay2Eݽ]儺yMxmH%jB;wHբ8h(IjPy'MԻ)9N{6at5"KB'RWQCَj|ЖSUƾNq%Ga'O;qySHԵ7m"I{R"";Rr0Hl [3r1yi?X\٭Yu 8shpth< X}5p'q\}F34 0l%>|s(4O;1MUA{@c %MXN<:3 @Ag 96P(tnfHfv\-*VPT{߁~DtRgt,gqXgq{:fI$"<@~mf':yP'=FWgG:JxbMO9#3 +?çxi:vӜgb;r;:l}e9lRCiISF8Z N7'TR?cﰲCӱb/(T(u݇]P?>c♼Jf;b 61}PV$gq-+GPj +(vZh3 +/ -հ UReSa6'j5v{[`+GCeUy;an-'g?o:=u?t܍5ulvMA%`5:8< +@J:u1yN88v9qxhrx38qtV}pYq47lsNAM}}U _H5 4g`3'O?x OžCl)>C d[:zRa 1EE߁F,UFF$+tF H} +S tDYHKuhrzl?o6Y@W ГD6vAyGǖb`xby 5glċKYƕK1˄e٠fm 1?A6oݟPzLwbNjF$&(o|4`Ӟ3[uNv֔3FUk䟲r 1diKvBܦ76V3~x%To?z 10 ȳ9mʅOiIO:ꓪ;6k@~$O->ۏ5n*?I'?~?eG|R$G95 +Ii|dcޣC=L>=2CM#MA~G=bh#K;q>"Ay$O +}D##\?(ӡK%^\>vx-G͟}BQ#G8QmQ-a7E0나 r[tmiZ=niZOtK YB.vn1%uq V+U>vommx/p+0V`pk$\>5zzuEtK Cb70Њ"ylw̰fi#B]8NSf &C솴A@O5&ok*7VFjn0MʕFƴ0VjU+{f63';vA`nLfOAz!76D jA(<[<[#%[#w+[0',E"06Pk!fʦA7n&T[QIfo!Q5y]Wh #Х'=q=qʽ`Nl-$tXs5- ;&*^R%(3mZ?K0l>oRb{ >R{({F][d/,CFuP(3?WxP`( +qoW4+:'+?wܠO_A^$+U0*!$_F:҅`b'R!>_ J9|vKu4M ,Kyhf6u$3NdN(bMd $ZI +l6ͩ@"?INVZlφ:_Hy-q˓ J@^dSr|RvoQtYڒgKVmAl5wznH y>6Ⱥu=uwsUuj.@\ ] k>4B]~@0| A_gMEzcih֬Hmb6Ja=U ֱ6gf5=ťrl꺐k nor*mX~eYL&.GIwvSyN7~wOzoMRStRfۮ}|VbR\K}PO4_j+EZO`9aEB}=gԍ2\ ^sj计==Mj4l-#GB,Zɽn|"?@YNh⌼LOrFW>|2sU+ALL=OsчZ0z&؏-2{햛GΡY-S"N,rr*tj%m\ n6uHDäK>0g!BRpPfR4sg)bo@ɇ:at23&D9WJC91&<:Lɇ6o%!yAC9>y!slVBza[şf%Þ_b1%|0LU g&MAX I=}x YL( ^HNˇs +}Z*I@}c-=aFd@' |~ Nl^:oCOML S&ضu5c+a +atsXE?FWRIܸ@OiF\au6LXpC#F^E1;c8[Km9:88mS07!e58pdTyc[=e :&wHH?~W¾&T2IGSbmYrjҜi1]Q+g&m(N z `N8>0(dВ}*7x@ Cc,f c r#Ĉ1kf1^y1QAќ\l{3*N)}FӠ1KM$KΘ 1a'7&bo+`\&P P64860ٰ+k>e~kA2e2Pa5)n;vnc#TS%Id v}0=VY F?&{IBg7Hԅ BgBÄ{h 2[ iY5o A@:oȌޅPm>6vz@oV#48z^'086`#5U,1sd:خCu#hہͶM(ylW$amÙpj\\=o +_w!:!~Ox?W1![Tf]yqʬl&i=S:afZ߅[89$v,q% ʆ!2rLy19*.`q +D*s6+0AQ'q0ty~WP(p1th}BCx-[_;eEGc@a~H=Dh-I~M?/'|uUTO/!B4C 9E-qdD!)=3A[7~ @@SMCq%hj' ݅y)uq[HoVWc~(H\X#_U}U? }B7>Ub~W~333MtMtttMnkOdMO%h:=e$S ZѤ̿n ?&}ڻzb۷,դ'b\7bV0}AdF,7~kCYRXwo%SFظ055jmC/ߥ:6?pq +!|XnN8YU?[ͰK]]Ť[VGrМqhaC~^m{<'!*[N-Qղqcn@sv/~`_N|=՗c{ՇI#c TYslMg6*&HGB7`Jo׻o_ӿhn87{Us.sVW,g ems9=+ksk-|*T߽*vnlLUaGGGWǫ5VKVGDm@ `mH[ZX2hAЌY5ߢ +'QiTf<%HQcҠ7գPD% "/K;sa C;sSQ7S$VIKʜ}q+~eBw[T2l_]C|MSGs_qC +-m/k~^CUlOCpE&D~b`p'/P0c"k@eZ AqR' 1xu)6/90%mˏpʖ@o"1}\2 s,܌IJESHtqk{-ډ@-v%}FUV#' (9Q/ NE7xڰ'?,ZĜ=جZm07S.@DFv} sKj!lK& [=O86RόyEB`)m*nq]9b{4ihgAajO(C0gk ReUܐ*g=2fLfB`@!l$9ҍXZ5һUGa2]]*JGbV_oCI }%8 _oJnBe]& .AqG`a + G ADL'\HP:h?t# >DrDQ)eNe 30iK9C`&0e̜0sFAN)Lc\A`)0f#(fa N+cس#14& 14涐ҘS9yfNeOjLӑUH ca# +^ ͸_7L2! +"diAos X*,dg4eRjc4J|! +띄źx0e7x@(i87VRcz:NKns9z "·|%lhbC ,mtPV1Qҝ/YSb- 5'.y+Uft(+F+0`]yOQoe/Ώ&L٬5^})}[qJ+C`\ G0Qn)d2cV9jkbm #@GUCm-,-@0[|.u[GbikD-?\ڴ,’4E=ܢZ(q D=v[DT9ĝD \"e+ZaFlvd ;. k+j(?W5uCC²= Z<ӶϋZkqsp P*r,o Y q&ϴth6##&M=1Q.:8yhpCb;jTjHO,ϵ[ŷً:=_E9 +{"WoB/\JFjpl"n,UpcBe#M;_KyQ-6dZB ?\X!Izj0 + ϑJUcp'&{4ij vڑhmt ǭ49+}G&߻[ Hw>~oxs4 w=䋷} }mB#l 4|q5Fƍqm!:5'ڒO,؁Wgz8`#Q;Q;qb\~7 2n!S ?&X r^}ww!¼? '?p =Vo9@IRwk94)SYM°miI|d+: a6GUfhP^[ʹ1KqxZ!2tpCĂo cfSG1\r  Jɒ~e!/n#ƈ: !NZĮ|z^֖&U[t +4z\BZm6W]Qfdqr()Bv"Y1W6O[WeHjk`6CA)g>/YR)ImyѠʅ +,CLLJx*{mhIt + kaŶWXվw? Z%Ry=Pmzjz4_%Bh5V%FSY\#T@G; WWUIkϡUOzl!H'pUUP㤼罶BP=]hk{T[hu*)][h:nl!`X`c*[A.յxOת^*A`Mȧ.np HlcݨCbnRZڏ9աiqUBA˛F!C9ulmHfp(s>PkZCyA7{:]}D%j>+ǻITL0WӚ!K*ao*\\ƅ:@Le0L6Zq_e*lݸI6Y7lS߼Run +3^oݾ~Uglߴ֭z98vھqSm<0+ LF܁dK1'.3!P9KbgB`2r̖fV$daH \v# .P `5D8!@+F usWΖ87ǝ`}c2N )1$ù΁`NG)c;n|̓~#yhoaNLIo#0jdAa.H2jf[.!S(boAD+Ӱ~>[emYǯ-4([em6t$?)܄Q$)]J v;R1Xgb'$BOMP.(_sP?F@2eW`z8|/ l_Q;!Nˮnn|4 gLDq:Z?P{ *D2*H!(P8U1Tڭ\.ܓC=0ڱԠoPݐYO N әaաP!< GGF =lr&7t)s7tqr\ }rubY f}3^p"PZ]玟 ]!&g10&/sܨB!>\T =,B!,7>H/!fd MY1>(O']K6|1xvO2;nK_~3O_['WF6`+7 8ϯx/r.Ü)yy"bd1RMQ|b+~>!r3G41U<m +IΠEfQe|k9q\YeB!\xkP53 )l.nč Gp%Xyq]bHXxę 4-WbG\(Qˁ*z\o0x˱%ՙ'I0]6M)7eKrs9BrKf+kgf`M=!q5Á*(d U$T@%L8 $aE2f{ 7ؤ:g|'T չwo?(uYںDW ­ _](N#Rǵwۊ߃]oW:E)ͷ`W#)xO®WPq:λ~9OsD =*:U:U|9Ӊ8")AU첫*800^[s5Pz,DI*9jD^:jH.g2 6*{R齒nMRw'ۃґP`sS+(*jFvʑ"TIu_="Ƥ|0fikJl}mס±[B[f&{G?|+(!0Dd eM#0DQ ? (( Qs5@lQҲ"(MAm#6dCfE`$h 4>x`#P>}SmC T>WV~{V~c@M-65%եK:`Mhi +( uLj#E?!ѵ"m{Ӈ'?}V +ⰰ+CgecӘLǁ1=ǁ0ȥE+(Eŧp|,ۮݾ4qh1CVb$^EĕQfnb0؟?%}߾_'߾ +uxGOk70jPdx ot]0;y#)1mAΎTߛ z0|h !.QKS5_/4uxkRºlokh?*uji3r;f&w"wJz>) |5|R:W,b] +:i }ʲAW>҄t| 7 m?9z?C?yzމK^( (vЉ7>!A~D6)Xmn}Չk~@牻Gm?0~*!q;~2?}_T:ūS:!g۵S>o-}JHK8>om&WKhjo?Y&om?-rȾ(}cpABIv(>bKm"(4dX$OW{ii'S >Z$OwYSl.b.ݮG|J|}[SYpv))cۣOh٫W ~jIGƿ}/5j,p>tG!]~LW/&R*E, [ҀOzu@Ij#/W+Qg꫕U,i.2Aݾ[n)*wt;p;7ٱںibARUdҿ*D[&ݾHΚOQ52(&|m֡{Dž~HYQW/V2ē0qAr=k V?#)]nEճ#@`?*-! Ԫi۔m) +3b ᇛ6m:pgW.~Sӻze:͵7 fMq@ojt"l:n6!J =|IyQ%̞ UKDX! NKUP%ݕ' RD8t|]~h6y1yRz"4g֯RZߖ05}Ʋ*SÚ|1ʟR$-4 YeR#9Ȯ'ygR]u倣3d +yAj&22n^.zkyUrw): +h1]#h'0=O1_5>7!/G)N3-f8/RORp͉;.x L[28"|(JSPg+\mtݴd+kџg?&Q%p-I -Oڍ*_\MiXTA]A ]GE&*YdPFh`+O޸5eK&ISdޯe|K}[WBM*[9ϹO'|g={ (b`:"cwҬq@^E"[<}HdS3`ϯPwmAD^xHO<!JCBP[ +!N-e]^38RcqNv[Sbz!Fn!/ Pu: + +&u"[c7Bi'2wNy,,teTJٓ 6+G|6)5[f(LCk'\NK$WΡ +K8/IklԢ +ixwN\A5EV0.e b +""T4PSh3Cw-)3rr}ӯkЗ"ofOoO"g99}7qfyRR<\Z2-DFv*iKL  +nYE.Yuq_26hKt'qXfGr3Y!^[ԥ@Z[qsu +@6ؐyr6r3Q&8yfxoLw)+.0 @u1fָ!%rW@RWQyte3lfwA( #q\SǠdǛQjd6TJm%"0+qk熦)"rw҆<~۝X'H9(+HR2#JatdtE8' ./oU( DŷoDnZVzJ-=N2N}H @!抨P攊A"Kl(f*( qRv)zf۵sWh WyCZ* gk+XɎ1Kڧe#`wwcb *$/ճ18M:/?} sJ-XwjUk-/@mY8Rxwف|>:|G7EcDPP+-B'^~ *(3"U4q[͛o}Eod[q2w$q/V1jp4le.77䈒2KZmVPd1V$ v%U}2q^ J$mP#۠-ګƔv*_2ԏv⫅}lp01E#/49 !4x%{?` ➩|e1 Wi4N_ h ܾcQ?s=Py|$)@doF7~D&Tnn0 Hc,MQKe]e TjL[P(DQ쳥e}wL.bbscü河Yl^z=fu26T;.z8%ܦåMt3@3` 3L!/{b<` O%,h0L31c1RfS&au<$`w?@ Fœ + ) +a"*ث_L.d ىANC|ybk@`Q +"il}$:2 +jv8{ ^Ϳo$$^(mPz% \15ۍd~C#FI?dPK.#zjH`%ڬBFkzjZ=yc;7=ZGS`C1N t7%@[qXy0V< +>)nTO0'[Fb`W<TArSi7*:AFJTp)T 4ȌkfbʑD!kj֘_uV~tr+{\BһWF`k}H\Ӈv%w g`jف2DZlC>1]FQ|s;75wd (<>}rʼn#/I o.s9Gݣ(H`G)i$$dj*7s?!yzfgD{GRCg#,aR +tlcuʄ1\fA%W)8'fB}N7ҩ]T?zy%:i#JSOZ$]:F? WF~ZsNѷaڒd4knXJyQm걜3lG7%gzHȻj,EE#.c[,8idmY"H#=?_j11ţ98#iLgh@eďiCdI^,չ|3F1nP@ɂ!77h@$_L3xeT1 vnXK:5e v+ ʬ4 +\򳟯OnXz#Xk A+B+dBϦ!ΘbC\8aXc#.0}v#BgO%U.Hmg̓y f"U`lW!<М|\ɉA30'{($%nX<%2,Hn qd(E rՒ~\q + +gF2ۢ_ըvJl*%G6P/(ZO>w <ۆ} ;ɂ*bz 9ύRB5pSslK.JRz_ +Xg$H~ wIIfEs~D1k -laꖹ\Ne%esa-SDr-_H#NĪl7p +mTꆔruH_v[ҝ +Ygӎ/Z 82 A\YwyŸF厥X + @X_+6g3FFRB^-}Bg'lMg(:{З/d\wnCh{F5#dG=Ŝ%itO!,^Fmrf+'e4 + R(G1ymsQ ߷Twu261uvtT5Melq_0\h#FbC`m!b9 |aA |I4KiG+㝹w3gi$tQ}<%fBʕ]ϫ}?pQy1 fhDt#'! #; '@jb[-e%WC/ d8zYT`@hu q@A֖+A#m!OyK +KMbGl?b9fZEYx醑KiA XhM;y eM,ڔmtc04$Yyof;2]1.W0TP~$8c it\#\D_ԋ S v9 Av6(}hȍ +RL3j9LNja&8MMA?S o f!ը׭Ž!SRlM1Ҿ5(3xN-ĭJ$F,"'O's`0GBe8^,&:}גNsևCֺ32˚_O(7eҢnڥ^V=bD](JЌP@eW dW!-.KT}Џ~Qx +V4E/%?WሡW W ֆ٦Wip3jnSކ6h2/b>3Ҵ*s'F>7!X,,\陝D PH m0 33bb_-ĝd_+$o;~"Ɗ k\$}-U5WjA PD ~KZbg$%dXhON_k͸ Uoɪt^nP('qQ Ϯ(Oa(hP0? GzdlWT!9eAJ@ 4~IJg[DmdT?|9HOf껜K;bj\꟔'rėX-P'N춸$8_3׵)m5Χ?FF|K%S&yö([7_KX,WUD:!Wԁ䡝^IR> Y +S!օ'T|D,EN υxBMg +! kmN woz~??z ....k=]TNQf?13QDdd"1-PrÄBSs? 3MP2~zDdyt\ص> =/L^ŦdF 1GF`%R#U1Yl:mKb׆ɾeZ=;#cQc$r‚ +"֚hlK6-zTFvE܏[de'(5ȴ)Y/&)B rȘ8RB3*_p +7l$p˩S"5-A{eUs +'sIv_pŶChP*#秊xbFD8WOݳOUA xʉt1v^S' T ,jqc1tǒg.]oVx)5A2Ћjr0k spkS[8^Dƕ10xZ/%Gt^j`68[9|"31wSQTv#TyOT~C0~cgǠGT.n=3JގQYQx#*.bx{$6]1~am<z ~ ߓJ!=mg!}*_\ /H_FD j7'֌Lu2q#;D*nsJ#ez-"m-\˵?<>oq3U$_y}]y>9SJzSɻFR5fޞ/[Pa?=3$/ij$7!F$U9B SW汉IEK/ +Jm8<+4xQ IF}"|Y_x`D;H$}I\B&{lm_NioYc{kBdICЕ֯\h"I(/ ޺N +݊8J y*|gC \ R/ I _!<)~*Aқ)g|d GICL 1!kf45i51ip[ϼ2#l[T/.$㶡%݌ks!m-yxwmŎnNR%4x@Ź-W8|Fe9wb>;y>Zzvl\"ػ`bw$uGWJ X^`8y[}k^GFh1ӱӱ1*Ά X],1nqe&Bf:ߟr%Cn$ia<=0=)VΓŜBQeyŝѓ2(.'=}Q4e#jeuG,u:1r$=G+K'o_?LS#S&paTf[+lөᇜqV䍻hި߹qz􃳿߰K*:(UcEcXzB#tJQdwQ +]#;s)V=+E1B;iQpPyDqҏ鏠zH-J"QfZtTZUdP&a/{x/da`QlU'XHvu9X&DvS(x{^bYۋ%%I6@[DV(E#֪<*A9AfؑR{oүR$2xӡi3׈ >#{kT@j—;ߑ{Et1&ny%OPz]}OM"Gc#~mcWloj +[WQsPo?G8`ViODTN+?bA>(X*C$ xFX%@D$.!ٻl^QA)^A7Q[fw7=gQ{wlܐ'ggo$EdtrK$K|_d\ hN-p&'zF(:]g7z89#vf,]g:;:p>4Iv.[g2VCG4EƖ +/сF +*R.N:ٛ."*̸ֳEt³VQkȭIv|!ru8Q,&# ^ :Mƾ˴Qϔ eeݳg*|ck% {TaC۰ᘟ1_33 -NnZ* +r3 (amF-8+!j#ؘ-l q]1cATПOSӾcߦm89^¯N=Vy7 iK4_G`;n#?mY'aavO=j \BK \bk +V͇{K\01qu\pjc΢TBPtP'fBj{MߥaB֗1j(}څ@wƊf:YĊɁ %Pf6grw΋SЁ8Gչ \6Ķ+b QyF+rp!\5&p .S].7SH\Fd1NKߝ:)5NJ+LK9'w)_\GZ& ӧ{i>wAK3e}-(1_+j&mjvHIL"uRwyqX^73v%\a t[Ek(]!_ې~4<("6TjLnvWcb&zpo`rCjDf/f +LڢO?|GK'~қ^% .,T^w$d xC0WʢO4G+䵅vJGV׸BsvEgK"R .8$scBWY+ ! Ml״0?2iЧBx|]}\{?f203RVPB8=/ZJP-*V=EXtmg ?&lQê% ?h tچ<366\4 qDa3 ? 01҃0l43̂@l5!`)l&arV1 Ӑcv `ׁ̺v&Da*1 ¹MfA~jF@3ZS FfysO Fb*$2fäIL&AcyDt"Ѭ%ʥ|(M pF|J̡`mRIbrҍ Y3zfxj{d3繋i=&n3ه pÞb*˳LA-IȌPD|5~x!˄H6'@c}Qc!RNDFMF]S͒H b۠Q-u$up5babNju>i:ȻQMwD' wpu*xE6 O[tD2ǥS>(YŌQ/nP# 6@ӈ8>Vvv%dn1xW/ PdaJCd|)S>V/? wʍo9ZਇD[66[ڡ(I'.1& .UH*AX(C*ϤQ_zXz8Mǫ%m)T;\"I A(ṕV@ T<(R¥m*Е=4ԕFM2P\E착r9c,nFĦld  v#ޓ ȁ2C8PAޟP A ){4/5Zr[vXv:(XvJOC[6gzaV(l UZ+aO5iK,S5R[EpӁ CH+6.@BBBV!U47*eV6";_tک96hK,ebi8@lAӅMvLv[~-'~\H|u;an$n'r +f?j-2K._=bZp.a \`':HvWp'=q|ᕼ:xRLbX`v-a"{Ԉ`yzcܫHVϭU=%Fpx@ Uq[Wr7yA" #AR+d"ڕ_-[҆܆VܷaF=ijL3'nzxa MW_X/ߠgGn9ǜ%G2 1#*J +F#b0Wc =~# h +m2 *$,Q%,4ة~!7{G4# RƬvV5VC{l{CFd +eNǕ㊙T#HVlzf +DL=P=UVu-*w_C[aj}r 6|il:A\bO6v[;bk44_,pry)"t &00>䃎wvtv6x+/y%4xm\f@mhsl_4))́/B82;% u"JO,UYkAȺ- {gic*lhl\%YeZK$-J|RZW]cEuQSk8blZ~(G7͔Yx7}ow$]8,; +SܘUΤ*Z} +ظvO?֮ڶ^@ڐYN hWc嚝i/c%9~fH= ZL[#nT0?bK +q)ƿ?ZMK'IwtkJd$Zīl2&TxzRӻj\ lӡ2M̦_ {r~9ʥ^8I -T~ɭBLlriDܠ;cit$ {~lϴjXs0E +HQ\^3ʂ1:a#^o`S<ܡydC{.Oukw c"3.(YIYupu_?UWn᷎apJJ *.Dt%dn0ikTE ėstAb'egK):u[*F} |>w HIsn4CF{wyUܲ`ֶOgb[-(dW_֍hlɁ0ǡCcV.-p hWw+׽%)}(A}s +etkB>-hđqH 1R>408z >w/I8KjKch +OṆxl<L$/˱Gyla+nmx~c9)_:rOxKNk% #²lH > 'qDpR `P+qP5}Z(%ScOc˹_|nVNNrVfrT(akFD~F~fvFU~ +FVgNT"x0T 󳳒2+S3*kl\Ԭ !4`j"aK?ϰ+H?_lzc߈ *uFDYdX4i)jhl|9t'woe?^p?I9Af+`{]gcY{hX Pb M2#WHA<1v{${q{l@< L EcWIw}G\JOJd ƃ@3VNފD2i4 &]X,?y}dϖvU{ִ- JۮbyLzZ)PѡI+ŪKBN)S޴ L$1" ;utٛSWPRKn03 GY OH{| P嗛7f?QBOcgF_%:sEANAFG{;B@Ơ[cL'Fݨ?yށvgŪJ_^g&zBrc8AA꾆I Y8]&9pkw>8tW(ZEi1!X 7Lpr4 ohLWiAU&&R+zrks}v Ç: Ԛ K)^٣_-H)ī +$ +vco.Io߬+Td#Du(7٭nlH`_(IF Zd[-&Hi0 Vh`V`,@{?Odz#{_%:S)[!W 1O)>*oa$*&IQؤ,H]@0`KB,muրu#`tcU Uuw9_{=2dw~O/;>ó0m `,Ƀ;wH|8#;?0x F0Z-nXH}<T[{Bxab0nCZIywtKlL{`sLϼov={A{U`xwuNC|&|{`v0$vXi`[;`{^;w`~jtC]q0!yw`fg {Wv~?Y0}gk0 #ɷ +ϠM &vCNS wgU1HKaLP%wQTKdr121DZk14R۹x&={o@T"d->,,#8>3yd i,=&-?µ!I|.HvXOk;]I1R9\ ϡcAFqG!( 2q癋p̣y q RL=s-2O GAwƌǞZF} Hfja&'jTowdo9AطkS ]*860b +rUNg+P}n[Jk7Mf㘖^ +N |^lFcjPuk,(GF?Ɯ UVZ %<sЪj!e+jaDNe`CSG`zl儭T%e/Յ`b`yq`}i>UnCqJ*㊀DNZ/PtjsЋ'b6ӊeG#!*+!J +0X? +Km۶m۶mgٶm۶m۶ϻo''?IWfiH"ژ`b?Yb<~s1An*ʯتꪆ!j`c3w\bA9[hkqX'07 H˶a(CַIGx:F7jk3Ձ{pn]A׷g}jHCEҾs 3[xN7ލPW |V%̱dy-t5tlk*sX=`25jdX_-Y9e[Dq-q~`596(zK}=P._[/2-2a`eԂ*xZӞ#)'Se /tR3u]U|I"z@%^q̱Kr.#3Qpэԝ-YPk,(o1?2͢)@Kp3MM-xM\TGzԸO4(/4M֤>RC||2<9]$լl5RRy~37Izj2V +Tg6v'#0Ĥ"˄yHuk2Až}a;RAulV,{҃Ӕw_S_&z~,d!m#֒Nej鴠RBc)g$yF ڍ8pkL4l 1/4>u0XA\`ҘQ`,dpÂ`V)jI\`}b)_[)kFxxP#0)sQ昆rUX~yR߿i%!&tQ=JF|ʒ ` (#3zHvˌ Sz0cl"K4]B e{%iwG)w}ƽcDJ!$U(#VUU r)D@jO4 Ihp)勵O7/bA_2s^Eb_8@gۘf(UD{-:+9:w(ʘ1Y*ͥnк!a1 l, 4Uer7pe$ϢYKM3H-VT@ֵAb fNkΏ݀oTWMƦ\L {<4͓叅rT+,Ի8ԠOȕM<R4APr2\ʔl(leqŐ-DW,z-e2{h&UTDkpg}6UWck4X m|Ac6C7Zs]dm gTydi ' +'3 h% =ӒWIQ<"Q#USn<37t`eu2ň+v}5X"q׌W \*'lV"x` M7m[e,GjTnv#*m6K2lSFD r*aq$FGgNrg8@U|G«ƻ:_`t7k撍(.fSt2g),yYq1 /BF c) /ݣNxѯϡ~`%̩ pة_͉QpjS,f< V;t [)] c@ﲸ3@? +?eMϵ;w ;_;!H9P6 Lh"ge1CO%Б vą<6X`GAv<;;#CRO46jmpxTLMY6g{j:J=-ҎdGkbu!6R<肖"{EyK]7j2VFbKin .fwkdA!8}YiYikw ǃyc<2罒NhJ 8{AD>$@ +zK>!R F \a"W8H5Cvr$P2DPˆćxIF2h#P[ +oI=pI_-!\sҷbqU>b f +)@s4Ԡxyam[0o_y +im +P2yζ~us\o0>ŬWwk>|ыMiŹѲgY2ώ Y}fx6NJQk + 0(vxEtDXX<\D=?s 8#`<]EŞEz? cFw PLBX2 'ioUa *AdcicJ7~dbPJ#O)N0 FFg[ZpPwc[Z*;^do֐O;s(5C+o>BeQʟ Mev2[h`P΄Ζ̜9KT$#$~4 a`-5tcfY0vWQ< ĖNK;J/E= [-H}Ƣ~~\sΒV>g4D]6$c2#G(8DkK\,9%)(hoQCIKUo#UWe 0{%nJW9XT#]cu)>͕A 0uNRފLg%2^"sFJq #!$h~XD T7wl')f MG:L:3GXumFy~.|Nx#_:YRMzUP)7BtmK%4_&~&[܃MH'ul +]2uLʡհhd/ޣc%sSrN@GNXxh-/,>$0}%V6ՀI=^ mPezs(g*>c֖(#5L-n !4lA7Հ5QOׯ=,QyvgXF/P-W'b*.KB:U.tˆvՁC(#U %=#PPKzfL&-pn=HwG=!5JB&\Sn:szE"sx,XZ0p\ ^ZwEvVwqT +ox4@ܒ.eH}2C(L36Pm`J‭ʦ ЭU?G zx`ѓfMËBU9^*$jepJ}.ȽuZ3@ 'Eܛy>t3:Gb!lTGǻps3Mhj')N7E% נ:9á V˔FAvR]u ҔFz}&*RWĸ!e> 1Pr #F!icd)?]]O t蠬KGQ `uٝ9CG 8IO蔖hrf%lLc6)']^9tCtR_}oeA:r䤨bG셁!F:ZiP9ʼ&PlDcE[_3}Nj#R2H/+LA ca#y[G}Q]ܢ 9?I@f[=G)_RSrŔ_5nnqG'4m +Ħ*ǎo>-N640^7R;1C%ύț64`Wܳbء9ZK5OnL?:TBƊ1_!sބY9|Z$ݿvGDwN>ab2Ovٖ`a1͗\J]7?Ӧ҂y7awom}Ɇj:дl:5=(߼6o$nŒ'=8oĶK<'> P pZKhzު OvG<@QR =RQPON}CQcs~@^uZ֒)nxs9># (dc(J- _gܚK0gJ\E ='eY#wz2 2] /G@],Xc Pg*iPڶ bd,eܞe$P8t91^[QB)KyzKk@W ڽWVʰ2TQt0Me.Ha}F0M+͞ǥTۻļc +qMϬ: +~#Yٹ{>w7>ީnNpf!$!:C!:sW ib. q^@P;WrV;t`+?qӂZ'@Dhx.` z*8? +%f~E$IEL2gA%ls>TxֲL}sn(F#C"b /v%m_QW# +Vz!DG zQUs~ TD,W m,6T[j_88&l3ى&5VڑqPO(6@@K 62Onp hٲi=2/⛿*$s$T,|D!!udUpNS.0X3u% Wt5 O[:<ݛ Fws-T{0'}Of;N@, ({<]hBZ)3LV |Z)S4PU [?z1ȱ6AO 3l,n02(҄I:qKb&ej0M8"Ԏ.&7h>x~%mu WoAay'hjh'V:OLpGѰrޢ{Sg&9˕Vq/4_&:u H)LeآB^ؿ4l:27?p,I)50w(,3IDiD&U=O"{ql vĊ[j ŠlQ1_LߢEThP +nEЗ +‘zBwӌ..=`St23|9c,DJ*$! ^/ҎL* eFiJ&IC^-=G-aLkhEXNu::cc&xK\f~5A}L;bMl+==kKlHNG:?e޵5S% ЦҒ71wt/Z: D)@8h&A*#w!]X>#;xе7f&-bV͒_⛖P[6}Yb );AE1K2-Rt^8 sSC6 \gcDHY)y!3!fQquBEOL[֚Sh1L}=Qmz(iB :~<1>9\K=/g3,m}l:>o#IiB*W%+ &4RtrgDm6Xns%@5N 럮o6?fDԈcE#bMq-1mKx+nQS5۠MVa5lix*\l1S0C /yI$*kmzsFyo= Z5^Mi ~!;f*')J@*t2eAvtb -[!/ ^w>^o?쌇Cd'R z'^mo? z>Ʀjm,_nD(w`SuWp&w?ߤo҄k'?q&}\^R%(91 >%4"ru8R>|ԯ@PZ}9+ {}P-ׅb_pJG>i+F|rkB/|x_F<.Yt ^X z՞6>+'¸F60qSU|@Gztf`LMFYG#,-ڐ_at08\'噂eU~¼M0,.8E+BȼEy>@zy 5ӖN>"xshҦAsOi+\5@,cͮye$~.ԶNGA Ƕ" [F ]Jݱq>@_kJ16ܶ42&V?퓆76#}1b.">CkM8&}q@;=>#S5w|7>`lp*`um@9" \vK׽~@K=D~{1إN~zK}6=+s6<ESHk]sxvizu{Zn⑐8DFw O Ů"7A;EݦwtS{{W6\ GCwxjv!=EK{$r[FG#feGBKe]w1i4&+a)Gyh)(K,9鄡lQ9ojC {) D5):gle{ 1V{L}ʪ*{:=mF hd-vI_=g&>pz6$:jO3]}m=ѷPvk _*+B`2@J0E0Ȏ(4),UN޺*d k|n߾-8>c#WA4`Rd&N^ #w畚i<ۀ^Th⢥lmU>Ԙ$ c - ʛk]xJ3*h7W_^ jBp0^.*@N{r1Yvha2L+M; `޴$"T^# s*Ԓ갫E;ǡX2 +NBkn=+Xruv|Z;S?8GeLZ!J-E -, +Vu41{PB y,kOZl EtzC09ӫcVO޶ wzVy|i>C`%p7+*I1'HձF &O-r%phYLm|xSo,wC Gpreuը땛2Oኛ$QX~/T% SOX'`3zf +8t#^pAGgH.GXΒYv)XRvjl6x*l剌0C!+ӇMbp$8Hu9^;S.qd\8 P"bĠY6lHI# fd6͔3d&JcKt3 as|v,cE Tͣ@AL|}B5mr=:bGybwtE(5ysn-`^?wI)ܛ$n +m(#יB9téh}M,B,ZщzJ;~X&#,5b!d<8/{j\ls1 ld&_"pOBTraT)7^VV*(I +NR9u6B|ʼiFtK>m+#=-뾱EHS^cq!ì=T+~Q=}4AG٫wv׍2^< Xbu[!̐ jNT p>O2n8$EdUZ.*ɐ?}̖FI5'.Oև> ([%>eב^Oỷ+ 23q(Kj"PC(^CTW + $@0)-q&1{&8N4dhr,.kDj'Y'(Y8S1?:hX3iEBaT XB ҌB/-?CD4 JȏY#֬<CCя`Ye +#- )VeI321hG- psOP2CK&#a0̗ 8|Fl>py=stΚ 9 4mF˾CMZӺ໵5ab- 4E3i(Y:,Mcӝ-N56ՒI3)O<+7X;tj'd() _e_kUx$B z:ܔ%Uл2 r:%+NtbV?ޭ5UW⨦*>ž"*'BW&NID{n/g*v6pEL.U'~K̸OIMk)j%HPY4ƞz4r =G_F*N 3kڹh_V<ݻ%6!]AlŏF0RԄi*䒭/F ":uݛE4v1qŹPx܏JO[>}J('a^HMGYbhAc&AkhEfV%g W\pQJz|KM+_hG^@\eMm +DV>%WL#K_|G&bkn"VI[2R,ÐlzEv5qq\dя[TA4kmjHtR2f{[窗,K_ V93qkԯ4fH5EJmVT:MJZk19=ad; yA}̾N"8ZSzm8[pR]9s#be9)GacG+^YEG -(l?PT*e7^<2d \OFLr( z;ڐ^zo#`QMXE\>ujE]4RFv{2'#'/!%͍ƣphIȖ*ZퟛM;,V_l<Ykj{ FYcT嵩T}}]->GfO?* ;;S O~eLjrFD% KA[]|_̙CmF*ʾ >cf.tᲮ^^lxqVWa{z.,7*>? H1^ +\9:ʏ ySExg"`ཱ,<6=C]jCm+SQgV4M;lت5ݓq/UjeqVygiqLF+^_5{^i+Fٶ4(/RȖl/ۄ 0B*SC aUY;DnCũ q)?6 +Y!@bU[lRj: !Ngtg -ӵzi4SLtÉo'b(#6 )˭^e+ l{}}a 9σl /.zG18{!Ib8*rA*Ra(Pu䡄LlG 6,˲Jଁ|yUo?4wbz%rCX:p 0n&ҫORLk:7x@ S 8@؅ݓlzd2,sz ꅤ%J(jy eYۘÝ4C _$ ¬N(b4:oB)HvM ^go=IݢʮQ5SDNDBE}tAlJ =sc֯t .D4s'> "qPσ%=Ia{vʔ$XgEF-!>1@-l(jh#`mt9!v״zZzysIPl XyRVgr=^LfsɔEsb37=Zգ#o0ʏ { sUoRZA Ezn7r L'[RS0Ys]' dz0P[AWLn:فLV}LCSőp9L>#[\Ⱦ-3%)!Jٯh0-}01h9hē/[q+j@(zӓ4L lWj<'' NzmPI+<$cְbhՏ/)1EKΞ/covC'!pG]z/&*<jp]OBn~yA 52a3ϔ(pL,| AKc(q+짙GH51mòэJ<7.RO/xnbU,U?QW>7m_8KNH3^B7t\J|7f[9q̊ i践ڧ̟*ٲGTK]gEB $ G(>,\.#$\HrAKVl%H*mLjGH?-{5!.AO ~2N7ߙ7(,*(S V8wd*+5>z*YUc>k3NچNcgPVn[l7<\_P%F0`FQ }`0$4Lp0&ZL,/p6ټln ɷ^ Xp!BJf4Ec]7zZǺ%vu+;;[`L3dl nJ +=F%WJD5c+"22Jͮ3Ҥ(dXH׶lXlޗZ +e!?q?vQL▢Ѧ@ҎulxGr6ͅP!hS8[K |S>-N +hblvNhm_bYʮӁo;eZC0Yx=՟UDZ0`-xNPjptU'ȡdo´@5?O ysՎjя<%aj=|#נ2fc26lxnmGκ#|#v'`=q zrzDդ7[՚^4mՁХ&XԜ#&|Fx4U:@1l6mގ)M{QR ,P{h|'HGXKXKXK+JtF*qtpZ' WlNQϼ=՘'+rTGkN3m vϲvմuTnrJE Xr(^/m,-~(ȣ;ѥ 0zu ,1\_}^`u7zrgW<嘖xT i]stC# 赍%@X\Uw8$U+~ r#k +\S^b]EWNF +~z֠qSfҗ7_W7zg߬͞6rhNKz?E~`NH#6R҇+$V[OH+0Q73,ߐR_\WH7Wh2,4y/F{6Tύdrg'u?!ݫ+^&kNR#bk\yy{ZQv ^L1\I=4l-W8-3rݒʨ"<J(|!v4'oi"\ZQiOHg2m +T5"O׷S9oS2O)CXLi:tWJcH4; +6H7KGS1=UW(M^GpK+7ԕ|5vѵRy-LVT/C忆kB7OzeH)dm `R0i~E?wMBB7˩(aM0" @0CPC `D Ϧ#5,,eLY[9ʓ^O}Ѩ/_}a2N`ғIIԿk}溿5h'Ƹ&Ƽvӣԇ[IUZw Ά.1T4 So6w {(1Ղێ;+k95zow=嚶M); Sp}3lxxF=_?vԤ_['>=O%Fc-zPW|w@GWIdAtRqx'a r)cN HDtM]#nн>t~"qlCz#[wR6þan^|_3v[}[*<cTiڴCyǞcï +^ a#NtlĞKuk@QwߔX>aDS&ah(П f-ρ,tqnaF721pS_<>k. {)"(׏(Az%CM&VȖbp%#Zu$E/VD5I9QnAjяߎx>E}S!Kٚ>E2ɖH Éĵz$J楃҄1%iҒ~zs+*6Ͽ2jC_> >F$ tտbvk6iE+qN< _%Y>BIn?e&˼;eQRĈ 'J% + 1ןE2s *=ԥ”gŵPaNe)!y-?9s C.'*CMNrB%&wK|3R~Q芜QwgH\|I},$rx0YdɠG4Hl>:&Kl<8N#B`bR>1׈5&11%x~ pvdǩL-p:l٥򾵆{"m-UhgdJU0a KO&lA8lvǛRF\챍MaВA(R--2ۂttZد rrTMZFb8w:T1-;|ܳح:oV׷5hYn1h*5&ʆJtlS#M%YG܉0wD%^ti@W@-#'K /Y +ʱM^}dVη_x@u>ۭݑ` +p'34BzvoKCo? +ge@ BU;Ccljw@m2)Xv T2>JP䰒m˼e(h&4< -׼XG=+.ב$WS,y~_xp!SۗO.{6 0W tB4i7+3R")2#޼ezb7d{QdlVNKVgz thvvr#oakiIZS}K-aj亍U$Z,wK\Vhrܴ^_]#u!~u m%lDxPibGn腿A&:e}Ichs5Ќ,͊'-1t82:-+HhhZj)IPb ?&,Z>[Ea1q0>-#oDyJa01 yNƐJ uWtޮ-Fa㮩u-:EM0ZU ,O5`[q>z O(N,O r?#>H.;C,$pGQY<v@د8> + +~i4sjWl"wyj S*i&:0"ë=i>Q| +äŻ~HA +qb Qn Rzg|0̢!nLqQHXZ@(gKTcUH-+3|*+TH?TI@UH@UI.*?eC5}2ӁAu?*"g)"hEj8!bo0DQe쨚~aS`>g4ҭ`!kY|gl;bn۪ڿupoK{H׼j9><`ۻ5lFTx/֣ސ}:w"yzNm+Nztq.[oGh={-G+t 3jRtw%7Oy?<#hkOr rSsL%GhX͛g[=ȿ˼J:7qnޛk7,*6mMxr2}pܓ!orvf?!+@A< 3.[]EWNT 5"J\Ɗ4^I@))C.'6XʶDJ0^b0ʵ%‰ٞ,)e=u#xƿ_!ʭj<AQTv$ֱ1 ((*LLizӌI脯 ߬Iv)p cW~dCg<@a4}{_@}[F* cYo(gy$ }k\OZ7nCHŲ QLd;#L^S +D fg*j&I$%\ՌK$~a7ܠ^[iUOU\R[Id-;$aOOWHג̪.[Ӧ# `[o/5tEg$,P?EʖE今*:ں IiK@Dr&Ms-ӫdN> lpٟ17R]v^lSWZs{ co_&=i,ۑ>ocX~i݁Q8e.>iT +}d.1ن,(ݡkB8XXyGiX~!WX}fdYΩPXĠO|\UuYa *ĭfKuq2MI(άTGK'5e%xi\icJ#%Rv=S|CCh뿩_UcFGOX@.hȸ+bǷ)b; _2 f3б=85 准)pS]AgtIA!~41&*vQ{VGelr6ل +uˑЀEUuYŅ3nZnH<0ܒ*دw'<%o}yz@k=x[VϧJ||(yQJzg~|;Kc;r_u~OVrB_U }Eΐو0eJ a.<~pY$K%&a'z7~ `Ko;@ "9+6\3<5 +'gk| !1uQ#iigT;JN_2 Mzn)t a-I~̦jG(K40#T~qp f|]@[S+ȗYfy go\Y-">EisP`l2E1E8|T< !yS T!FNO)S%|Uu7Erpc\p xK:9_ѣfm1{=gfӖ%.FIi{ă=\aνcsu[kM.i/k/m{n'o[j {p,}9z#Lh=p t"0Z'#!K*ץJq 05e1!-7|%i9$gBQIzZI_bps4?ܸCbĶpm210Lc*=iHH2Zh +9.t`}9ǂ J|-)0:2̳!nu5ȝ5W+u do*A+)4;խ`+ХV`4hL^LN$겾6Pkfڅ+ : m"*,fL&\KQ_MtWf6Ϥ"f!(B g#eWiv4!=vO;`n̔TJ;(C +)BQ$+M!}ȿ_ٮmV֫ Bf䧉^e%v '"\1.P76#L8G瘀l`Z r:کTgClul +Lԟ֛jxi޾xڜ}u3i~q(&=J!#.3%=Si.4`+'0['.ϱ!2_˵?{p2v_IOc}]ߴbq2Y0:dڛ~b]voiY\X lӂdFұ?Ӻkm=9k ; /8Y; +>ȢlZ-q@`US'(zԻ3' `q -,E:G +|to asN*SDB Tff2bX!Fv\d4 Fir)[lUySBD^q*Yg^_S]6>0ؑY6{k-P7#;G=;㡜ZvJ:=o@-b>_^<*e_?`4~@p".8}=i1i(^CX ?{D1Pq#?{G?2P~ωi/'yKh&M3O:e" J: ft}`gA*St\MLEម~ru!)eU6 <uq]ݾN=?Sj "sA xcAMl:|b%njV /#uQ|*@ԳB\GuIC.YKgpԅIG*Psbs 2( +f9L]8&->n̞[ګ{Qn`i_5 +yMrFuA?3)ifl! [lYF5۱%)K"iKY@9 ͱtUV>ٍ&\¼ݩh -6b!eVHզ72aܮer-SD؅~\{I9Cfh}b?Y[˲7}nԎ򸅗1ܲ9Xe˒Q/ڜFy}@DPXVăѶ8!bl͠M"e\{L +8@M fː 6oD.ӨxVvhPy<&0:P tH=7ŭ} W\ @]1,`&mGd*(?#x:/#{(:oBegT!tm⛁ 9h2J*Z&lQ^y +nos6zA7e(282BY?As23(kh%69 9Hhkj~h24hJZ@{?!/{`-M ԳZ;;QOrؽh +z3OhmS]8hfj5sSa8h<-\:6(J c1 sO/6'GbNx!)l%Y11íhV|HRR 9_P >U|ՔfXf3&ϕ _4?ZPzA?ڍVlFqB$Y) >xj`;RDS˶G尜yS<¼z9J#f64n%/Q3R(*1r|W;zЫ=h?03gZz4;k1:mq2Ca׃b7 e9bӝfjw\];@]zЙ2R7D*O;]VS/bI2JxGIȄxy־.lꨎ; 8x--FGfg.fI;YrO >c kla*2V՛%.&-,ث~4 $YԒ>[}^d^ i+--W2e H᎜m|?c~;E/K6\=[ŠV&<}2|"SP9mjeO]6FmjmXmYa Wʡ>#D5\0Qéra,bi8ԬeBhҤһu5N3V65mgZN_9X(H:ƶŽftϥ7~5(fBRGp,hͺrcW9z>Oe3 fܙ%@~#?M޻6葭ɨ"}|ԚS@Yzh>$7>5z^3Szb&ˢiriܶ@=bZ?tV1WUY̵iSW1p6U>k(ܮDGf7J1NܜNZdF/fpgjVtfuF~QU;v8|1bVaE𸂅V2bIy*M:by=hjTR5hh{"KWt͎TbWPVXzȎ-Y)x(/U=;ZabTP7~=W$UFJ +SQmxFQKav-kMrT n!đ8)k&7ZHz tGgPri6܆6C'8RKr(PR(R,46RGx\Yөf;Z]ՍZFۮОJo= uUPmɩ\Q :R %y^/`ObުP<խP>1hSeGp045y!&yJnקM$15| Ț:"j+!6zl,&`>b5r +L i DQm;Zyl$KAq|"Ы# +r65]rw~5nO#F_-_lq>vu\|{+d|1xD9{Sع*{"uJuKM5Tm,Y̳~=#:MϴQ?*zY.W7^Iz }g;s.]v>t^|s+5q/"!fPqƒ(6#=e>!R3#3`ƂqKI7觑&sj1RgB꺇ō`;BRn?Bj9$RY /)!jdiIjkoڽ1P)/@rd2˔qQ8v% $3[I es\2CId]Ș3?~OZjm@-_;fή>%U 5\ 'b<\}q !y}AgsC|XQ< GFGG/xD1s _򠾧CG8sX,C`m)% (5 H + (Y$aة*XҍsJ|\BOg+r19g56_Ww1r(gKSy䊸2d5;|%ΐ˨L7akGpM_E֔(p{CsUam+4HgW t5Ua{?5e&K7VH7Vq4(tcf̪afS|8=2gW-2q809Ii̒t\-]9jz;9D_ӞH+aBW*#,x~1gF9=2L>DHo[׽HeJG +Ysv3S*ij>zu +g@} ob@@A@[e Az)s'誆&>P?=4[\ ]HV?lFJ<蜮 ݹ7s[+VzYj s|ۭfG;v/ۮ(֒J=~(ѦHs *|#fTo~qyB!G +'Ne[[q[ooȶl6Z)bݢlmVZ6ݲl۶d43Iy,lj,<{G-j޳vc eBX-tʃFq#,yʣF#:-3>-FvմmIȤn)\E +MdIȄ;1Çke-E)[ٚztwAn[= La{e Sֽ<pzm c<*e.^ȼr!*wL:-#۠Ff'b?.w)B.Q26FL04ȍ8:±Dp9U,"n h2^Dmp/FU;FVzPDrT8(;m,dj}"8kVдlD8x C`knVY75GKIڙPnvxX +#k;ӞCsZ&YWTn\KT )կ̆zEz(+ז]^l{DOhҹpQ\rIݒwl1xj![fBefqg:ZdWfh?~]8ak +ʼn{hQ5 b:=d`2E3QOG}=0:w ڤO:wk:Qir|:NY$}"} ڙ:(xZ_::gےaw !HnL0X$H1E;-HD}hZTID*x/x4mKv}_;[[ Q @anV( +#W앇T2%#aW@řMyrcޞn#uYu kCcjvUlTM*jz}esA L:iȌJC8ȆfA9c-+}: (Զĥ C K0hpWqeFf/D Wi>q n8[wpsV]w`;Q6|>;];p>Y]W i +"Ģ-)d<$/QϕEY!YɭTObSoϓcTG NЦ b hMFUx̥ J 3@3Wπ +H~q.!K I|3Cfcau!g;`R<*cj͆E2G*Ztq\D_3.EgM[B[XrPE۶ul󆧫ED奒L*#!(]3ÆC.FS.1E'`^)L)J.ۦ].lrN'"}hغp}=H`,<&&ڒ"0;Ij{<9m 2yuI9Į8r'hW}^b ־.Ѱ ,0SIZ0W0I0^@mxVzu螧,qą1u߷i@N #YvP&̒^@s*,^u4Nfi7̓`|7\}sَLF{띙jwV'-֩?_QC ]  +)n(Ă*SOYK{xϞE-;1/U^d?_Ek ʜMJݎ2Jcmg +-)Il;6c-X%S6lєJCCY+(7V Rx +AA{WACSS\gP} +AGR֓"In=3}9rn([W]#bl6J~# ́{.; 3"Z>yµ8Ҟt4#y8viDjOFת%] U]5Y6olYr?WR^e5'*$fBTXoJHlSGY ^9wX&̩)]zx2JidR$^2 {$B<*ڨTRrL|+M>o$FOT˄Kʳx!6b^6 .Dl9tMT(.Pyp6.5]r 8W?%XK MC~ =sF$@Ti  eKv)$zj$%(i/%i[c5l^mgiOέKVjw*VS*eYƳLYlUlclKl l۶m۶m۶m۶m6϶us_w{1#V֊X5fȑ5gq˜hحjԗXJ-X PUS#keF슙tM[S_C'ozEШQWF\,p>U+_rRΆÜSWҍlr֙e϶4rsD3u'futS@3A;f +j1߶e7 wž716{7f;gw 7?f`WIs<P7O{V-5[ʅ)5o9=7{+swJ[3uok`o9uYc&,lǝ[;fRMrXETTvU AZO2?N,?FĪj 7Lreѣ<5$f77*p'y+X\!m>o(C~ MXfX6~4gC5!`JgOi~_rW v`2mzTEò^;,&Ӆ)D~>buCDw~-UxÙznC0k]b|PR2øk"<_Bt#c| +^qbPVIb~rl,(h]@ރxN}̦~bvҌ28^:SƎq0@FwC)9ޙ)O) |+A9[2+ 2Se-nNMՈ4 3wt:GHf|tFk2wW}#WXH(_rZ5ᮽs4ݭ:edm!J4h/JŘjmM^8;K69AB*9U^q]<qB"Uȴ!UȆxX,/+Wk&I\uC!Ԉ33~>,"$4I;D3^sI~cwJaRP]a<) + pDŽ8{e|ZWQ߃!Z/`½ [H.}e]H~ʸL*4N;H+Ao|g7wXP\;[Wٯ&MW=A_j;3Aߛ7;{({>W)=_]$٥U.TiGUv?w0B+<ĘxAe[6pJ=3<K{=հx*b&YqLǻު1v:ȶ3?LDG34ѓL>5?4;eVr4vł.rDy +3ګiۙJLlKV/2M-Gr/D0RUX"Ϣz|Rĉ-42PJ[Õeni8y=e%2Ji;}ojyÊrHhuT6%x Q ~mCA HvTz_ %œ]&QJE)*L`i{.M5*ߛvC6/!9?̠AצI7*3* 6dhy&A&.R*(kZV.!1~]V|-pVev+EOB_woȞw=!W@>o2؃n xyfpYɆu7^Muq!2:ӱ`mU`w϶EψtGF(ս1b+W=qUmorPw5j2[)ld-l5ƚ6]xvBZHO$ޛ{0 UJEZxhވuF~$g!r&tN'-| ?Y:] tw/ }u_dL ݀-9'vQ7hlkU 3? J6".νlvD4Eh֏2BOa +oӄӮJ^Mc}P:x16G+H^EcU+=͆Y>0,5jw &B`8OO)δ\4۾X^,IW,Ace S:gfgÛq⻷ H55`w*C )x Cz{TH'@5ԑJ/R c~lZQU~^cy7"]z$bq & #|;z t^0}̅@P2xKFoÙriZQQk 219N2vCI,׺z#tmBW 1hWSj%»^z7jH +HpSw>ĉM@O/y$TIalO׊}fkN`CK]j%B,ӡAʰC\xc/i Q$#vY&w +$ +St #{{ƙ7̙7ΙUhShPF 8DD *zi)#̪r6?8~{F~#\xUP݋`lQH]?4L).(`91N/Iye]2_iucQЅ@a򸣉v7z\9p |CJ/9`npg4zʹ%)z +7E+`?8Px +A#;ZQ3˷x70+Wk':2M@:o}TԒ.KӠn^Ş4mFcZyE3T&M龎QA]~Dl'G$Sԡ_R0p#X^@C ֙OdKb9'Grs8ۀ*: Q∶VQ%裭ө˟e0HSy/dZO~W/6+7!!ôh:tFU-񴺻 D(c$L"Du[[Nu]&XMM˒ :S̪t8rnHXI6~zd*H!y&p& +!"և@moЕ):)(-s#ϥd|!;IL0T>JӦDXG5#Ӎ ]sTd]bQ$@,t^SP(sI2 `^p(-IQzSxoAWnOtQ~f-QrD-O_)U ɒו +PUIGfi{Z!n7R.I \P`z$QoIZW;@ ;ꪏ*AS1GMUOZYRb22 +NH5$hE2h2(i5'9[-ݤ +) +t:.Sz\cS _GBHϒȔkic; QӈT^rSG8um'DHUc>1v +(5Mq21d0%eq+{@FA`8' 0&ɶDQhDZl3:3YG.pP"Fԭ3 J%LV&2Q&٪{K+WJOVbN,a(ZD:zô4:_:~ǼB`Bdp i*Ku pmYМHAKt92]T-<{7i<ѭ`+",8e3eҤ]`x^.-]/p̶z̘xb ><臨tű~>3n*Vs~c8D6 ~ոžNI|`[iӕZWgX9FB2p +vK>1t~LTҠ[#z!Fj}$Yymh߉3$ )~vS3@% ?Ys/s^gXȅ+V1v.yN쐹S +Ծ$W жBID- %ɦjL O.h).wٞ$>&~xB~*G؃KT/DjAnFCPTE bUX֭F "%˵I +wx3YȽGρL손R7BPPL]Ny iY$K~'8F,\bn9iTJ7΋C+:6cGj]g|.͸;%VHeR9!1 =9RIkUQo\&Hy4|*U"TzBw?Fs65f9#WP]4J%i VLWTOTI.gufG2%ur5"%>CpK{\O)2ԧq$p[r6K*9o :_ӱ9Vκ=H"!uAiQqDlB fkHcvƳ.zCeA(.L5ZtN"D!餂&rHQF+h6QP;!6ěZCJ,de^żF&э˒V2hG H4'L "4ѹSG&)"wyWvvDejV,%LKHnN6SY 7K$^ K\KMSa=i"FdmH/ q-xۙfNԽ&K| YXIMTۂj* ! %hAYjQ=Yna/VDVR^>Bol.qda2OUi7&n dC LTc?pOX})o͐,qo?0+!ciN4C)׃ףW +^E7R6t:݁SΏƐr[ *l\XLni +14GLQ^f(ƌ2`:WN|LZj')8STrVb(U9‚k'๐b#xbϕwyA/is)ZL:w;\ +&m,aNLd"ߋz#pcZKa(ݾ@{1h3iybfrߘc|1 QbFj\?3' !vbtw5*Xj6P06Obdx!5cn4Xg(1:E.רl"Yx+|żԕb1c&=~ %N\DvsvsmwN0z0K."E:D,ǰOB# 1eg]s.Zt,{`%ycPȝQ xEݽe:B@F=$ X̛y"%`ޛ +A{ +RKsJ o!)ȭ!-qf: \Ξy]c5 7ZA=HS +:Xz PՐY!нkFO85WnJ<-SOvuHy)8=EcgZ/qV[E]rR,"iBKT:ᴘ G]D8jAr6ʢGsP Œ(LtCuA_Zij_vksF$1K->߬5;JdƏ-{pK(Ź]iԹ]'kSEj^A5@ +|v'=˿2Q4m{8:v|{FkMnWzJEO&v" d ɯJMsyh.\="ˍv.&JT*o]5*$M~.~T/RLV'QNe'aFtjYVQ=Q*(N`xcTG*Iݱ{,WR9 :٩LsLKU͍,C;f- +i+X6sowHJG r/;My\m+5~:r0ʸr,F,SӕnGC%3j k>>A2M!GJTO[9{" *fH['{_p.Dٹ_qQ%KpYs7Eg)txċ)Bl ;mHw3Uڣḿ +Uv6۽0.~]?o'"7E@4>``BPh,!頻W|(v?JoKD[L>5:ʨ\%S>k{P'6rA^-.[򱨁u?N'S+T.nMM$B#ۡ=FFiPGuĶQׁ^>si'Sz>&ipoSP]weL=\mC{BR~1T9z{LlfȢHLΣLTEFtqFlgؼ,w(+k{DH܁A0:hC!5%{IXSG<,+$܁GӠoc=FR#z/uӆ܂FԩgmqLɱnKL!릐 |!E_8N|,zy(?lB(?)Yvk +VZ4'16},[6%Z{/Ec{ w$JUVm祈8!LdL"6* ]EYWLV8?փn{[OdtImklʝR9:Ngl̍5,e;#ƿmZGi&UbWf>h2n֬{;\yVtn􌺺_8n){ ީ/L8HbiJ8;PS[ō8Ov&ZrlP4AJ._3k716mZ/$he;v zj,SWM5~Hy%jREc#nc l= 6>Beֱ[6.ycM򞷸5}k}-@- MM=\? (\G+;(!Hx}NCet;9=d#WYQGluP2d2x0r닠h.'EՎlB̟ j _7Yr,A$M8fSjbe4Qm(qA&hԾ`n#G=z7wts _YĊ7:1W؂ ~@ D 1_ ?B2u-gmW$&& [PcdyR4AZPA-EHlRi E(yn{+y|`Cp ) +|4)^3YSR$L?n~u=6a!n #VmO*#ԉjP:Iσخ3;qŎǂ$ +t@Ku;"r<*yMp9 +%+NK;z+RБ(iS1sYņtǠ3KCx"86f a#9`]`52cN Wj֢)NK%-ӿ:Edlѽr""=n˔n#׹x .,ubLLf:&d&N(•ӺLjE:gQb}N#(QKK(KQ$EW:l-Yc}aLae9Us46޹b.Kj_"ƌ;xATXBoIayCtP5~ + æ634YtYbˆy("vxl^dt>ʐXThs9yxFwLpPMr4t@($YNjQ4ak43\\*gT}:*v|#}' Ms?\=[7^gE0u+<*sWrs.8!=ARtǪr>! ͻ`YMzȩ8(bd[\'tȍIr>}'0ɠ'ר4g.gD͇J>}ÆP;UwtOHMy(elQt>c[1ljζ28P7QM"Aʊbm<[flKE4V<`³Xt}V)(^ dUmT%Gr"]O.BED]tRXm痊rұ$&>\8 }/|m; +ؔrRi:@Ϊsܹ;zj&3o`ZNz[Ӓ1hҌӀ*mNIN, )NO-wZ !> Ȱ9lrGX[VJ)9c x`2F@*vo5 +B 7|^Eeg+w^(N +dLT\vm"c͋~w0ϹnRyKZZ!k +s*ʓ!3ƿ67=fZ +B H" )Eöny9~ jY@,c`TJ"Њ2$jQl-1~սlXt7 B@t].D]2>) I7 C*1 fWNuP9)ؒD);6IjPWg%_?iF֧U*"bLQi;AJ{GyxDUltxYGbe+;פODŏLmWWټ!&v59UirL$#98$,{+mO޶ 6HY198i/5'޳]׮·={8 WhM:I[: *h]:; +:%=9*!epXM DēSnm@2Yms IZ0"bۆ__e͈T 5ePzi4怫ᤂV-¡Z"cW<%-,\{ۣlhRT` +ui"1@Kuqη*s ϡΖ6j1U"1U>@i|itt +D$9= q(=d`#ףUƸZeX Q72i0q1FqED#ep1+32Nl'e4MyNle 1ܼ!Rc6ưD7}[NK9@Yٍ 6b"oFᜣr9۷4 + .g,ђdm`0&*[hO +i*\ʎ́3STB{-` D1iV$TMT[ ĚI2x +semO}+|KnSeU/ |)gi1/\l ia`i{_Q<"1d3v#%=7CcCc&5L +qeɆӴolե84aBӆ"Ueڮm԰S +`>e(9iq|{h< +;cnлg~1ۭ3?;0O9uIc K+;#:KWmfx +MPt*RӃoL'>#F_S_6Ɉ*da`HbE[czgzmږhEF$9 i+29pBVT_x +x E~Ӯ.[p^ӷfs_d7 +QU(-iFX调Q$2(*%6(JϹ+J1,]%JsO%y< g_V MWɅiDIW᝴.T h˅C;71h*jf"JDB@GI5Ǚ- JVB&O=w^4\SkefW$ ~c(SA!tPv~.E!jSa"}A A L +mp?6DPy􉧧RMWUG>MrҦB3)15LϞΰ2tӭ,(tcY>b +v XRH8``HA eh"e`(-<430ci>uEᜯ8 $<_ : +eWzazӛO%ݮ[(6b-ɤ} ,7Uʜ|;{m}khNk)'][ ɖ`#³Pϳ@w](7+_].\Z/F0ȘX1_,gRا{¹Wx6g^>_o"rIx!IyУyC76$ZBa߼B& f&P[Ș# k MZ|Kg-G_PXO6E^v̷S w7CV (S0UVI#e`ɕ¤NwK׃y/$Wa;vkN+/Lu@$__XΖ~~Y~ao:w,Fv6N.#]Α&N)3@[^ /qQlTn$zD R/=#L_5?A3-$Q,nUA"R┥ qС tf7L.f܁%l5! 8 *7=4y_ES0맯XdXUOMv3~(xdN*`:CGCB޸טS'0!H唴4lwi!SI!z(ZLD&8vwoGc|'D=lZRT%Mc֩ʩ7薗xj籦!Cze ^%(m^ƹ7ȍnob^G%a˾#i]W`(Ph83҃Dd֟Yy5PdaQccT߈ YYR6K*vxZw aiklJJ rvAW`MYml7U`!]-ڊIOՂXD3gٗ?֩ XIܫF]nPuupxТ,!<*FRblvZ>DD60XpxagϏAoB9A,F9>Ba,-`dtp=W6oLYSn7KAt21frWJ}fPAw"^th7hLm^C֎eQ#.ػȡ ["k~bo>ͪmU:L[lQTJ0_(HaG⯒vsQʼ~ Qͪl0k"\ 6;r!N?)\ +tUPԔӿ=y t _dۏ0ĴHSnN/m.W~BĊ3zG3g7o0h.HKڳ}H ÌF9; 3Dx2-:s륖z0+o i~S˄uD8ݎjSc4RIޔ'44}+0WSD ?g0\Wf) +`SGqr>5 Įzr%ZQÛCɳKr{+َ8`Q:o(Z,jzHC=W7>ep8(4YY +:zIX O檷?R fLM[fXɲJZz}bu_<, `돖4D@ ؤ0nMKrG/ +˜5Dc'}E%Oe/Xh@+ gJN7`k#8)[5Xy +opxѴ~ h.+S}-Ęd6Lk,l_(v^ +`?ٚtZbCjf b6vugԧ19NBk]j$pB qRhx8p;6` m" vU09jD%AՆ"HGbQ4=&m$Kt_$U.E?FB1HsO:YKe3B z +H-O M=(\UhV+_SI ]7B1#c% +vVX;Ó&M53R4'JĽDm*ṁ` Š~|8KY)Aq5Lzh8cSB'R:Yj )J(y?ťʦ: *S\/"cV:P֫.[PVUJqV QyKޤ4mQJ¬?m俥%Lbvv[߽J4twcTD߾kI +`|m'xS"C`=;o͌qe${?` q:/KVJ:J\ nQ-:I>;Hs״t^(nfUQr=ァluG"g ǞL5N$:| >QNC*f0#5ծyB `Ap3u瞧v(񩡿y~WyĴHfxkmX/ʏJ5YgPm`=}aÆpi `&'uxaU]*\L3>9m #MorOƏ[@Vz~h{ O-FQ~2 [PN>k.]_^dȞ::4ܡ`gQFln+L8&!``9s]J9/϶MЩ+RLC)b>;1jij=i}$!k۟цx}_8X7%2> +{EA7+Je3$T%ِ ? \&OH%di: ܓޣoV,zj?LKUQpN@ax]ÕßB*j46;"՚>Wީx],"v3tJBä?p=%iZVy?X+m`Uĵ.Aiꀼtr}fN=̐Y6ǝ`mi!13?[JGi\rќUB;+3iAAGCa3q,sbc4Rzd=/%kz*_%3⨴z 41 P_ +ݻ=s<{;v@,ޟsǽDLP{u}L׌LxϋWmva;bٴTtOj^Q`_,ZrUHp ʯokOk M`u6dCܩ>PmCO.W2Aј7RڮqQ+gDF&R3p 5Iw|z,դ ؽ%PY=nq3`tu7pmEgzλRX8OD֛P KD=B0:M<0igQ!D+k!zic䟵6˄7nS*Cw?J5 _]Cs>qx6%`Q%dylX*f'P4\zy -/yYQ#K(6.b"NWL<8 rRzk#$४-M'@X9%|we>ϗ֡NZOd.u@mų9V87Q+WѥҵEsǚJD: +W7Ų#ǞXlRm! +2v[=j24kجdXDCx%&~;kݾ;EqZKTH\2"ה>i& fϓ>7 1π]qD 7 x?20sޭ_Rٌ]JE`AegzǛuM5=(mwGO1@12+C +,ATqLT ~b@(\/uUZ<uB߳x9< jQi +(6V۶Ӛ| cq2dx+^HI&U6w0 AZV,0IK;9ڟ/]"b!4KY|64$c=g8 ]ւW4Ļr.==qtzi nE4?ްZrҳ=̗"g3(ށlXNRNQ߂q0Yq뀔RNR>Mw/5bxC#\=H7OtI6Bpޯǭp92O%ՌF5Nعv"Pd@plzn>Zr)2YB:qN&l.R{E>ȫSIt#w-B&iQR}xW%2Y}=xÐ*HuJŚ0w6,8T"F/&oԄ ˏ1)ahr2L-=p'q|e5/v XYYnt8>bq⌸˻c_zᬿ4Lo<W$ ,$eM +:R@~/rRȆ'7U7$CڧgNxuv쬋!Kꃍ!)ĪIFg*Bl]Vk)eOBLñ_eTI+eAP 0nZh uqK̽'8ʁm!S|e97j$Cmɇ. Vc)8n:Dq*컸t!X6$ DAC *%:$LǣArX6bzz_c&ORz {0Ds[k!z +'UH[1p{_~YGB(ex#ex=B56vp< +[_C$9 g3k;y߃+-Hn^OUm`~V)دϘIJ~I AHngH?PX5Sj 4-}OH+ᤑIl*-0 ZDPZu+ll.*jlb`A~..tUo9jY`< f7M?cKsM;0~raaըkp *oKk S;$Ćm4 ֤+kn_1]zR}?ٙh,$Tu+nZvTx/C;xb 6ZNyQuaz6-JWIIYqR^[&Nz(bѪl9%|ڗھhU3Zz F'qᦉw0$9;(,!4P0u!-7ح& p`)~/ԃTip Ȧ..3-$<˄HEˆPaO)ž* g0 eHzb8⦫pnَ?pۄ2-ox"z7- ~P3+(&xDD*Ulҹ}! 4@7?foߟ?66C8\tª§ЭXAlj)Z{ NW)?a?h7UtDD>#W5q*."iiSDg4& (L&(! +="V+2kLR ?,dw2fk&rK.ijt_poе,ܩP$j3&􋸸yfZ|GY끭BYn~^_3G\6Pm)[ے#1wXYaIbH7W8l g!- oZ $d()@YB3X$=kfHg gH= +P!u c9)L)֓ޓL$Oejv>.:-4蹪r7|-Onair\y-yFuO2MIX_0c~ ewOo:[/T%T[=EPdfww'R֢2ﵨVßHLVOis hH%G #ۻpW/*[t93 Qr8].w!p=Pb tj" ҄@Wuaņ'%]7 >]. Bx^3Gq*5sv |Ϩ~HH{Z"X!M*)8)r7EFr'٨ؓ~xO.1 BY`0RB!wc7S A mϔ .Kh  VϤ1k0 Ï2ulp(vtUd3c6aUEN^Ho3xb]L.[UTzSFLTsJE +柕}ǵ 7$(ฅiOfB~hv11PD!?;oG32 e ;18MTp06xmߞF>H<{{mBP=1 :Q Q7WsjSѡ*/-TIciێ" + ?|@ T(Pz*]-H^yJBv+.-x\B+sWZ*S+.͔*A]+}ET/۔<}.W:+cgiU+Z*,UV?Nq+uKc{_eWA>_C5XH}wps+C@ BJ{z0,ɪ7ep2FU.z1{Mt$7u&/jzUiSxKc mq +7\" +.fzyngG0ԬZh|bΙ{z|Lcc^r.~iTfZ~Ҿ|A3.P2eZ://x~aeĈ +D+`!E"lM,!`o?@y/ʕ5NT|O~KH+v,Mf.}W"AzwϐXR^k"CW" G+-\կ + ZBK&CЯ˒P`v#9xnyЯ1$|'sXz샧&WSdJ>4ByXf!4P53"T?3 +g+sr‰k3H?jRI&Ur c&^b <%nhod>?N,-GZ9R/U4XWC[&ۋhGYőL3i-+s+Ph&%UY=+,B z^kwݵ ]P8wg{8X4CEzJ P *UFrahQt*ED 3SSèyzTLWsw4g 0#<2ݠ-pe$AےZПEsSQNlNKğ[/$G= h+[@~]@*D(tTaGrR-bYmSs+rX'T(ѯFm\=èOcD&x^ +JƵ+8qөL<12֒U|)xBGkŃ?dK?R;!2>U )I +.U1*8L; w ^`wS tXyƱu ͇m7QXXp{2;4y6X6 +U)2ʏxn#>!~ؘTNdQun~5rO^cb< f` Bqd]-aop ;m_?柢"׳/++++(Xbrt(]tpqrח\2aOp( JA^VfbFy^JzEDݢZ8>bU^RzZm^rJx~ * P>)*oRCjkL~$6>K +>&t<$$f\ȟ(a+jvD!O[)`%dHr(_c<'G7?_ rfm]ӷQtִ`Dӹ h4?K$y?.rm +`̆yntՎWm3\DRh6Fzrs={E[S/Ƙ;F6 wX?>i1!Nh-O>_B}cL'1l":gJ@֒8Rj\x74Ϙ4Vk]'M:6Ԅ7(#9]QE% ,Fxu6"Zm7 qA[ٓF_ۂ +_4o/+Y`xhia֤{YAؾ U^0uN7&& Sa=HT̕:H*c_(Akbꞛ' d*CY0i"D +7I+gO q&="YeU8 .6ˍ ++mSI9>prȄ7Y;7wB1a~T 3aU'Sh;`*ªr4ؽesLybMI9aˮqśI߼CfC3;˜?_5,Gp-(c0JaKTW  S"(oi=Nlr_JK(m.EoV /&R9. ?!*jiliȌD$^_'eE +!VU=3< Fq2^DsB(@N^%3Ftc&'.rt _!ڠYKsCr袢ao>ŵÒkƟk8, +] ܐ M]L3*7pE  sp& ZOzSd|Jπї+!qn77t4V;3z,7|xSctZ)eC-!&>SN8<2|Co{,V-[;xE[a|WufǴo΂BG@_C9;߱RH}|Lg ) Vw/'ba{E1U/]e$#l]N\֝,`SӖ&RLvl+>H/9U3v4[d|lݶ0zVHQ:r{S?RVS*y`9Ej~XCCM5F- +jI{=m(-PVZR^+G6Snjy~our> Qcp - xPk_hO7@o$ +i` ]< GhefBL!z#5}8 +dş{?p Ս@ݯ1h 4yOEl+$u ?2<4j 0ޱDtJ< L eT sxCWJ .\S%،>;|Yicbs*xS& ɇ9VNRLq6!X;WVE_W,S]dDU v_z}yb'[67?\?=.:/ᶠȕ,7$WVh=AuFu)z6t/݉ C+;+B/ MA!헺.` _0(ũRLI^!YujusD&/]c尉,//؟Y>  +890SM`N.D_$Fb8Lhp[*d:[HN޿Gۼё!x TAIE8әpm[j$'ݕ-P(! [}\x;0<98# +P9Fg>Ls=0*,EXBA'453N,d*2.Ê&^UnuvgNd9N(Sjm!Ec?9VLw%_ض5G^t\6燍dCw1 W5!4M.e33GqVq#Rß6!CX+F:)ͽ݃ybOfdX [l6-nD5$_Z. 4-ْ:si)߅;JS5))iy8&ђU?ٿI} *W`ƮO .4SAPx$*c o<$*-FW9*v0'rtlA?Le-dPھLx8/h%Lpf4oudp-!_ +mCQ囿UoSŭ;i-ɤ쩍9PPuw{o͎gko>Cr ӖnVj~fz"!l6#h~Cd#cc!;W{ >٤6~H]}֟EHQ#`:iyKtvzדJKX$#a|H wr}.BUrc]K.*hD#y31O"/ +gV< 3c4OlV킭0v~K'4H\jb >}6e+m3wHdH'.VMB+;_F[7; S]*[wXL›G!'灹Up Hw==Y0}/p[,nC7QyC{d>@w\Řg3I;]yd`>/G(ntgY!x!۰J ,*&#ܤԛRjnc؎+*kxyO3pwS[ALMK^Z8,\9 /Ov=F ۃZ C"sE7C6EE#*K(;Nwd6Q4fd<i=#ʺ8L'PXT,4Ӿ4"øK4FBþH{bQ<DUT:"9#{2TqK b="8'"MΡ}D9 D(`⋦-Aܥ,f !ЅJM@U@b7˙ZYOfG9ё^bo|b^Ⲇzvf*oaR^g(~Y\C?وAɌ)w_[o_blLmj E<>Ocewf ƦGjRaV٭#'Q4}rgf3V¹BCDžkhh̓ӓ ּ)b8c ifGR[Ꜭ!&Uif6 +uqt +)чⱽgkw>&E0|^>UlDHmlFM2US/mQ+*Haң_XGጄ=c yQ^yƋаs _B:qƑ1#!\ 6Yp>W2$ADvl^lD4Ȼ#k 4'OvfК:-tF;4 zS+Ř.E}Jg"F|z{`D+p~xU88uCx s*4JH5CblNyE`*"Xv,t|9S?7B+I[94S`|wzn-JΒaUD?irX6{u ef5<'SۊI‰K.{i`zԭ6݂6Ql+? ȅeQᶧI[*^5eژ}riY/8v=>oz@7c;9d( @0|nML: nmo4 $|g\, {KPp=rՀkJ{?Qv6l2}ӪLxQQN_fRiwFTzʧ=&D2,j]ӽ6a#\= 9#'ib=i/V(+ժnx~)݇<]T|/8ͯj&rd]zW?RE<"LБϫבkM3sHpR4@JxamUn~]a@s=o>jD>m,vi9]N4xP9T.Cg+Z2\<+ +RF_G8 b7[p;(WjX9'פ12L X f:ˤa迣IJ/NgP>}G)Rx~m\q|{}M#qJ  +<{\6MP'Z &̛pSYqQw@TDଘz VJvK7}dV + s +}f}?UyWd"dW8%ԗK;#[ +;oBI;u(E ^D}i#v4EKS#G> hmK\6e + [{%vfn$t!g}.,]ݪ=˷>l, &^Ӡ/{QXY1i{Ɇt])`kYj(i\@8ۥVe'qR^S9LaZef$O#Kyh?m=%iA7)9 +'Otw%A b/0h_r3ĕ;gmA#\D+8+pOUfF0.L.Uur%vcC;Ǐ;WXat<𬒍}t|rpSUMccfY]MA۫_=Z}2nY6ԼܟYI1&$^A/)M?Oc6g.j )cfbhGr}&f|5eaSy_6k4k|WR{^xV{ߛ`-#?ޗ>wn(9m@m@h +qh/њlZ M69Bsd\7 )|~{Oaceca阮NM89F7౻Bػss +@$=oM#m-D߳tvzRq; B<6&!}aB0@lmb&?KiٛW?7|_9ŗ!oBqG)H?BGP*pE +S #G鲤])--1#* +)x"9Q`rV*OC!sCRI̿Fn~.hz/ݿEL* %[@<5SLK?5=hN%e2ce>70x U@,=T\65'> +ފ%01x/xS@-d+,}]Dm}'s9 +TM$zP(򷏥ͩtFĽ +DFZOЮJ4~2<Rl^+< /k/߰Y@ ˧nXxٔuݍwȸyP(Gf!Z1*vVQ塬xx;+<}>6?7R"] [E7fz[,=F)qb?Fe͢hڶm۶mm۶m۶mkmgsmT}uZݟߚk}їNBpe i -Դv/:S2#:W,`I1ҶxV[\k!(Qhdk5 Ƅ,0MA dچL!K@/ W}^ax$-BQЪF`~i!g8Tg-B۾.`_AjcS9vdʚStuzDyIpq'3h(T~V՚: SbAogcx 1?_w^"b2#S3%xeuiFʶ$ WHP +PHQR G[+Ts9A9{q=.[l c;HC2vM xP򃪉H/*`2Xǡ|OQĴ?7No?VnCҢxaW=(EUL.LNṂrG%Z mM^P/9LFq^59aAJ2/EQ֊in~-7զN]fyhjkj3t%՘daٍd( M`qaM?QCd(l0듿uX$ ݏ x-=~ +Ƿ1`m'lt8AT19Zkشe*Qt_K9|Bh(aG+^]8"J/ au~wUrw0㹤 X_Hq"aH7Lv'xǼZL 3٥}:^ *nڟ7F&|9lBctx_q'I0ltIgk:,6Vh_Cv۸wixANʪ +@'l@cn2L[Iv>=w4/GX_" n 1etERr` w"]ȗ:;_~sofC_VK䇝=RK`uF<)4^o1\a3=գ^Vz[Ôgj鬈'x ݂YY#TqィXa+*G] +w<{LZg|~Jo?%d;m0<߄jsVyEE.="$BI) [o6mj^[ +5maZDV y spr}Wv*ƺ(f FC7Z+=6e'_FL6Qpw$.eډq`!{ccqxzwpp*FY;W + Bz V=ɱ +nWyyz)np˜4Zq; kh>'7_}{  aj?]a2 UpiUUpu&-< ;ݿѨe}_T ੻M*r6A5sбXтPǻű|H޳f (L ]LB?wF_sst*t]rSZsv08}\)n?#?iY3.zG?\q ȯb?xnץQS6ױ8^mpsed nd YֳUj|fKi USEQTٰ7S>g7;/qvߩg\8y 0۝rsgw@9Q2)٠<%ӭXd+Ht`Գl#`1U1{gxY }]h{1ѓ5 pT\MZcOuVG S Uul5p47kyMˌ+&rτw qY +Ӧ^(|- rԉ4}=ZS%wZ^G"-EM\ɟNt,6?V9{C؊B 5sGfвb[LY.*-MNM#ʠL-AUFb +7^Pb , + o&(0+k>@Pw5o3T#|^_ȅ,%r`NQJosRI^sE׳3*rڔ*WRWSu9OByoh;:sA4)HK8')8p<O}Ova[u 4NFsqHb#.Y   Όf +o6&rzcD?? (7wQ6/Kqߗl}VGkHt]&/@3l;Y89;z.3rC0P3+lDwk R; =mfY$/޹sŪAs5%3` v bzOdM)cN.U4CN+<8@lr`bQ`7/*EZu^tQLs&Z'k#fKGM|E‹T]>bk$9'ޠjpшQ21FkhcIB1$`~gaXQgV + _Us*ĕGtpN.4x +bLq39"87ݢŁOVY) iҤ#qh3Kb7XپWV6 R˭STb\ZBB7N?ٻ +AY{y#a#Bhy:ЀHǢ[XxvY~cl4١?`pu{"d-v!&>p/aU;T'ubLXʸ>.Fq֗^p{𝴮 +,=j=&? ֛3|ecG~Z3Ÿs᡿fk*5c-898ST(,mf=:VQsYq + +$q1gF#ט04E Tn>S40oćX/tsQ)?HYfq@eUttxBIaY}gj o˭~.*QU}FQ%^j儝#G'Bu + #3̸ +Q!@:zRf*_lt/ U[J2kw7Gψ4GghWCuq |})"ȯh\S-`ś@g%.]lue q Z`Y2ɀJ?/ŒU?&4iﺵ M<kFLB_Y `59K[:a>LǮdmeM!8gɚnQE;_-z^ڇ6$T|^GKI*Sfbr!2ElɄƸ􇶑0z"/V{[?+x0 +}"m}N' xå| th귤\}-=*ܱ2 3΄dWAp>IjsUܚ:.5ˌe5i5>->.*fꪄc 3>e%`00 $JU̩;gm'>W8U|-@Y}beR■/~k[!ͭX ^凾LwY *Q=ԖG!OR[$^6K;{hZW~i/n߼kҺ nWF%ZQ F=4A +!'a +t@xE!&+icUJ04'}i/qVǘNHZI$.iV;;l 5%l_fPCxs]GOx_r$H\lψ1_:5GexLJ+5Ӓ.򸐦@f!ʱDy|\9t᧏1T@*0>q!ӆ`Mq(ȎChugz_j9Lx +6nbnYơk,뎝_hDVHu칿Tq6 @s In*emk;f/EفqD)Y8 $+'m9ĀR^P/*)5QH6%{Gv.Xe:ղ ~%@yDH2 xd +/ ?t<*&q[nDfG+=(!P^lqOȑG\]J6ԑ.}Fs +j2SnSq( }Rqr揠ⲍFA6r |<343馏*qs}S1Injƿ~mCmATW_EL-ٕLWR%ܐ\Ghn G}im@ADeM%h*XHDo)\YmMZ\Ȗ:k[=BTYZvedD$L X7ӷ@YG`{!*DK ;Iة\37 8KRfs{Tqf +baMgo`]$JC z4HԘ`Ȃ_yݙ4tVeu +E¬Pn3X]߂զƒyel*V VR !Jvq@T䲹xNծtR +A/!Cu_^-jY=Ug=E^mKh󆎉뎎Fs߫nKs +ajgT'1sJu1Bߠ +U?< zy^_6ğc@erTЮDz[i,w_`3ұB{ub*=_j Bt$l'>$xB` &=]* ǍfXE)YQteŴ8&20X䌠O.ڙB W#NX$4C<1eHn? Nh.?/~h4]pL)nY-K +' Z2\OG$KM(_0=#"›1-4yǎ>/4S]=.7n%08IC';k=NKbVSWPXRY%Pe!X)1$e߀>gΥ%92wo2}Рx^Nv-i?`!Mo1No"#eX|K1|k{),+w!oz#iX,CX%n,,֖oZš#6c>eGfo86ORADŽ+.ܰ-eEȉܥsHG*Jo=#ةX7@cKkFn@>KM:ǷAJG݄x@J{sa{+Lpxbbёe7KzkSH5:x۬o-ӍPEicHڰc'i>H2 -2EhK$]:K_(t +:  5 +V1o V6Ȼ4#gMVhMq{,M\tat٬wd6ca>~$N)Iwy?7M<#{YrрmT/^~e.Vspzb*LOrh*y72n4i:ޏFHW'5(H,אk3 +./*Z4h *яXoc؈ +o4y$\{uCv1u9(a Q1y Igq$ ۗ&oE >X/!Q5ZP_븈cq.0r+2PCM@/ѫG#\l4m}ĺpwa+"=a@DpnCYD;Hw~n-7~p >c +&eyLc +2#Bu[L²\ơy e&Y1Ӥ )2!"Ze)P6Je#FVC @K—*f jlL80;bIC +U$K+,7 +]O5gU$m1?Z1Vvͅ@O%Vi@s,h ijb<Ȓָ&OW8Qy(KqX,K"yv=vˊыt <W.m `lYxSM$-)1KhjCx#Sha8dNmv~ +-xXN5tF&,ai[JlkR-ZzNfZ@( (/N~a=@c!V𣘆ZBjQQyS>rpSBX3iv"նճ +ԟLoyy6DuQC·ݢI}A|t TSK.\yXȰ`2o*,mES=tAsࡷl!4dzJ0AYEKUSAC 5зxRX !@r$$ f91bawPZ:uңti8'AMo}nHo/x ŷݒ e4uK\*@ebY kXbP"M$yH $'aV)Z06POm8eiy!eǷ]dG6BuF)6FC {19} `:IѹԎf܌D_*?!OӇZKE-013 j/Xj{ l 9 _:94'8V7+ EUu%8u0=zBn _@"(* Xcp)2A6va2]u%x6b*k]^xknhm+a)W1ͫ%`roxgoa U>w5dbz4c_׶8։BkM135^Y ynQsPԛ]oG9`'9S <؂8/Ć6ȥee}}@:FzuKS~\Q3w3LWzǥ)A׽f:QK';Mѭvx_%˒O r% c!G缡4~BZo}@,M#6gp EO0D(GѝZ(~&O.r")BP xp•!o85tUJiWAm5cIy-bFS&Ѝ̯qM0,;`c?[Rھe2h/}h +DŽD4;900R"V_غ*2-\s4/}DKJ :3h'T.'s-as&ɔe~a(} g,8~n6:rp7gWO:Xj5 +/rg5+X cdr0zVw9GPlM'Au-9` 3 2+KOlaN5uvʏ ZzF;ՓL$,* O25`=*z.3;`Q2cՃ8ϊct!g,˛XE?!MGxBSLFTEӧߣY; Od1zs[6TM3 M>蟸\FX7R!YPxlH` {6%D8u~bm7{ԉ]( {qmbyˋ<(=;0=Y\(@TC(P+nǓbm\O_0A?߇b6Kb.:u4PX38Qpjd'/rpvՕV}(cѯUڼY3eW-P4BXr||V?GKRlaVɯ~QbVRa|raJ PmZL(3Q;MP"3hv2[0^ɪUuJ7-ou;ٚW4u +Yk 0.h|1Ғ?fy @";V1(^+JƼ g +@˂vWZvj##Y\^.Y3nfI}@IE$[0x}#∧e#v%`` 2y'T X +H|Pqz1/H_#p&K@*C,n "9Qت@nG\ǹ@e4VK(-e=uu2DiP!? QPRWzHg'T$F/aEqceOTD9}ȑ#y!X06u@>Bb!:ܣA }2<<=:P7v7!7R,B9#2Sܾ{mޱ~>~n]w4#&qw8/(HRL<ԄGydwPrgIwQ+&IwQl{fL w9/Qz;: = wA [eP+u{UWіs9FPMfC5j̕HVc Ll8JU:ş6%Xtҋ8܋C +Dͮ)AA6nafMc8J@*L! + /|Fߴ\!<@ PxpIm>a]tI +QOB'd^^Du3DB^yEm׻JQgyhB ?_cJ)>d~^"sAf=g?%n Ǒ3ױZZV5 $jөᦍ[0 ] 8E۶jmR[V._IBo,X7VܡUUlXe]ԎnOjA8[1wY $Y`jbE!nr;z[g#Q0Ksntï,CzDr9:y3+viڿF-;$_i0mMUAH., ~!z 5J U# ݡkKf0ftT؉ojX1 +e % 0IKVkL%zH[]0ȝ;^jz" pƛFp,-mR0MՕ}D+bگ'ok1ܡ#v3حxہ}Iv]kbKפj "ՆKaYk \07oYe/O0<5pO+zvaߎ*o{׿kVTjl,M 2{%OaMO2K0sMe/Y +QFRCEx"PNQFPFxuD $Pvoc !}xQW +8ԢƪZґAF!d p=% _p8H%^n"7}P={c?nMSEHEv wD [շ2iX͐=HD[u1OHk>ǀ\N%zbKTrk2+0jjG?;XԶלP>-^*;;}|é͗G4|>m-@w.nԫ 87sFSn}_dQj[s4L\^CI:7Z^C؜4F(~}rtS/S/QbSN½*~#hvt{~=Qh ##R@:? r/8;c[L|tYBjFF$VyNF4ڲ򜘒5ͨvߛ,K0LAy#Rmg=S^3E|t2ݕD(MG\y@Sۤ2cݠtu/UZf UJR/҄ffre1&ڿ8ԓoz߿EiX +|oiFrb lLy%Ђs+0:"qUFI:"_]tg*DkQ."!л*-p{+9e{֨0kKsZF!sUI|ek"pqBԸ~ԑa|0@L2|Yj3+$9IΚdU;XLt.xˋGBU g,ɱ v8 +# 2]opEB^c $-摪sڈCsVn*B&_.vDK9}uprLEDriJ6TQ9sT1NQb(!+Ũ)yD SoVkϞ/0gi}SIzmmmu +vPa>Lm ++W}7SG}7TS}oTF3u G ?f@q J/tq{ 43ZHwe +qէ n@(p_Aօ @;<0n/2OlKlM.  ~A$FC"۴=OKm O!~rG!_GHF~Gvw?.xI+{lN +N={%+R<,FRjuzsMhci4yu5 ~:VUΒ2Ju. Q]q"7!,\^R~Wh+ǖƮ4|Xd=9tzi5ZHҭKBS] _ɟ􌓑E>ɷ:j]d6 JEg%bۤO'aiۦ5TiF0r*kxP,Ub''œC4 |~K6i{ԸX(ʱWXWT ]R/F=TH@Ѻ]ijO;U3).އ똾_48˝dY%fm/`ӏ2?3HXzbms29uKKk=D-8Sz,9b9"rR*Q0y-V8,}Iuɇ.@\+ ^(R4~Y&} M(vN!=&{<_/}rNok&Gj<fV<1j,Mz@% \W #6D`}r(j$ksB+CH]࿱`XHdWl[x٤Rk$E#Aځ1MG5`Yg [rK>`[EE .$%ڷCN)U#$7dQj@rAћS G B5b{sQ{.Cn@~"dqwoFi.:0: ӂ:XPn>gk_cҚE޼ +9wbXQp&ΙDg`i^nlo#o3HܡAʜ @0 +mHT\j#2G~qp@IE:Lcrc}Y +ovr*D'=X?_/o>d;JvqUL|+Lo㙛px*<|g햺ԚQKfhIHebE UXQL&ASKoxlldI[ +ĹPdEJRN&ɂ;~6x%3&"i7׋\R4iu{J(uddj\w$ Dm@A>:Hԕzb| 8&v e0h{W/BWjwsrC:<@Oq8PPwQX Pr$W̃@3Ty$J$21l +d6+CsТ`-lXڌ?ΐCRX W YD7$ +*o6 +K%n=-n o3 4h0&!#ZBZw8XDr=q ݰRxCa43kZ)s|mh7? +Q)`ds[|c2>]#5ݞX_szAuvHnY8K!Ҥl#C*ZBG:ʝZhMwVm"GޒK0*>6 }ޙ uݙ٘5vf^/JPGLF@|tts.;D29H;k݁Ctr8TdMn^0YuϰccA +=?"WhxHsƱ'~~Q80 , 9Ј46Ǫ)nYx} wV$%h;rCwr:Ǎu[(}+:'#zA ?2-TNS%^HJ8zCt;}яDIT)Avߢ Mf="|""U~8D W*1KbUL07uv,YcE+WҞ;22u1P_㜘c`OUMp;XH q)e'ͩ7a._#ZPāj>76Vd+XfVvceő)Qu1Oe1#W/dC#I8hs] + \$ G l]ڦt &HɈlzmũb޼4XD(ӆ1i8 R1:bW)#q|2Rcĉ{SINXH ca*ѪBQcjb4N{eÑ !\T* pW2'Csס|j ~I~ׯ7l#+_MT1 ܗ&zMjX-aG#id[2ZGJ1/scVɆЊnW%>16~ `&EJsQPQЭ@+dMt*P9G $|WĖ$C%^?,Nw + _ )hZu]%rܼ0^)o#9b,`Eo> eW&XlǺQS!?=)~$^#0ªc#-5cauΦeų= +DBK۪E,|tZ08qw3u:ǟW3580x5D?e5EA2:Ci>}Yt}[`ޡvѾ6/(B`^sQ/$hھ$f[ѣ +OHW̜D`Sn}w/(f_#Q{4I7ɑ d~C|%n:NyxG9ŻL\ˌwּ Z +n:C9R)b!c"cn$i\BmӢLzVo3%IԞ"adyWf5(OC[f''PIBmJޭ-\FIK1sm*-Woqcܶ){VM'z̕&S-\tOB|#S9 2IؽAfM<mqN NEB[qEq"Tr#eS@DMk!4Rn/OdX;'*ߚ"!0)Ϛb)اx +/Vsk^]iS"lr)NfhVdAc:y&; 083sxrYo莖'QmyhSngM)-&$n`ʔVU'dG])%kO '+:Z6R%P3xMxпIڿ$X{TԲaUW Dpw7-U 88刐m`Zf})$:ޢ|d^X!ʗc_ +Ew|x*c8GΣdh}O\['a]|&FpZ1&E5mས 4Dpsn!||||l|h.q0ernAo[ ۿ͝}#O^Õ8~>ǹ0(:;qDVBi&1VIiS;I%t^ vť6Æ*UR>#=hꁝFPvQ.ͶTzA[d0-*5c0] uWOT}uil(ODYQܟ)jyW'%Vc/ I OH~X2cBEpwd[c͙땢rPv-g.W{ҐU&@mX|N ~ `5öh֕&rOw.ft(q;/$i9p66Joaq24`OL$6l=}$A)A&EZSsHVX0ѯ +H(ia9< *Pȑ4\1B;PP)ĒMxhqLҴTq\鹒O-%q%B;ܥ3 F0?~Je N+pY +㥺aL3nL,ꬓ +fdu=Fś +w(VU=S)u-w58\(^B|;mD]gt:S] uk:@whtڃ ;H#>R{jpw q)[Rh$ޑV@|IyIqSeTEcm +1m9s.]$\O'b۠Rx98MY Uׅ&k0VYKL鞓 +БViU7Yb[zةkR볛֌)p]ƚ %zRy^L *eHQ~AlYLD945 竅u5 ZQ5#ɡ "Z.S߫WBK~E615Ls\R'`(/@O P[*ͺ5`{<*Տ="-lZxC$|{~):>e k3`}A,r\ł!F B^r{-D D +E<A+m|4%Լp;0n)qOlǗ'(>HX\BRDCx [u!#IG =LxovX80dcUx n5,Kg"^:Z)ܼ#q),uD6D^!n\/o~e  vE|bj3ɵ~M=y) x.aw^IAn̫%Fcڥqe[P~dpgTؑM {y,17B5pK `J6gq%iA\8ogT|Go8^@XE\}#3!1FB37'ٖrB!p<1vO7 & $6xdm:ۭY5ү؀!jjZZQ(XU!2E[?n8K/^WdMB[KI^޷ﻟ߻gyv y퐥 ҁ | j8GCoi{6lG|Awj^aGHg°+/Ƙ}#o5Fa1}߿!srF|I01&9(818H@1'%' 17IOR*%C1hB3 + \d`Ke<6UeJTu~BdxU\$YA%(ҫ".fJkH_0 kedyw GVygw*̜?vD0DfJX򸲉" W-/坷2ԃTy͍Y[`ۥgH:*-ԶDH+ǖsljdNB14`6ykZ+L3_YJbE37فeڋ)8@mWde& ?h 5gA֘ /aGbr`˃.pBwZb P@@~1BFI4>@_I6Q 96T VF|vH*mRVZmdfia]LaTRy)`=!0:2|ԙ_ Z '{J[]Ӹ8[Q]Էr&\:VޮS,N<Ŧ㪪 AM˘2.\3Ga{2 mL1wBnMTuwww.ӋUEm(B (WCqc EQI{1M`qWb[Vpӄ"3 * l߈Y!Օ< ҁY J0t4(a@tAyV0Ϊqkm~w0sҕ=rWإl zE :} 7.s2kcELVA*|MacF!~vK~h8Em0O\=10o]0<"ZFX;)ns>ּACץm{Kßug=eKKmmSoR0}=X:$tP*Q]A$+&=PC!_)7D^ܟRzGz/\欻ID;؅bB?{>~uIt{4y|ϵץtr4\̈d-Yb@`J* ۣazCNt{i֐k?)~c48a_lveRmML5v'mau֤ n<,xA (_|%JnO{* $a f 05q!o=jVt^͋H hiaqGwK@n];$>H $f3| `nP˖-]J$FjiGGG7CYQ^ + Jcu NV5Ť$g&<AȦ;iQkP5"ۗ/I ^e kʽ\3-NVN,;fΔ{Hm3lαq|N~XX.6 Ty9BbsS{4|ys626{;^ƛg}ĵi ]W8/x$UW3Y(Eu=*i^;.GP>8]N幞:ɕ#xۜo>W.ǖ*BwhJr:R~`t!Fo)<8#x>PpV1`<&wHQ#1V' +7\(w&4V ßPF?кKNRؽ;Yؽ;Xz+w!Jؽ;]ؽ;Բ<3hHq귟H'*bܧ3Ձ E͈Xgp˻ 3P-2Rϙt%YSK%ҫ1&\&c! dXq8ziK;wM:tRZPްP^[z6JFe1[is?v(V GeXLh= ]Ga\ uŸM2bBE<xmHj2sfLJE͉a(Fm0L -K3c/5ȶRrbGP J0dJWIyi2P)N275г0MEd( +ʳ5- +_Dڊ6QE>sܨ4GnJi<\LPSؕ>k05k" buSlZ'G* MkF}ZfKy\Lmy2#/!k|"ZͤV&aН!b1.ףls å|+Vf] ;iL٪oUQih>2k/<ŵ+wWF[{ Zn *Ƶ;z7#og6&ZҞD%.&dS|];r͖fw߭ᰊĄ@&Tu|ܙP@hr=#eyԌܺd#%h6Rbi\U旮U"PJAr5\CuOmC'zEqrA:nw īP> +SkS=+DZPِF0J$W7F=4ژ-ש.um|t~Sl$T8[ȮaKԉo(F&T +Zsw␻w|`6`WX59ʰlXVcjє=)kU $ ,vvg&Ii1ST#c,zB^F g_x>w6#WdU"^lj1_{X]e[߬ߊlM"/WLu3t{#=νdEN@gz}K~njMZ }lˀ$ŎJSpeϚoEȽ'w_$C`:o; Zl>I_6~:;4 [ jwM;fz į|KįrWRS-'=yF3lScC *Jˎ>rf!q3`bT3hƊMHRI#rѤhU($iҜ|@Ts +τ_t]?5F$J尥Fzdi +ęsZ7.:('ě9jQmj#S[ԷZs:MN[a"rNJ;%Bry*7$H=>wWPpNY RĠ&}䧲Y|ˬvLiъ0/OK쭩x&"j8|2DJ|JFjU&NWMk27 ߖlKm | +p߉4, Fyj^ %ix=l(#_,TYZmELg3uO+%LE:294_g@xOD9/_-]Ohki\e_ޟ309O'o?kXׇ^TezUBkNdUq1Nӂs9p`Z,a^şU IalXcp}֏</x.vE?fo.ֈ*Fnlˡ"V_P5>x6cDJq˱CM՛ נO ^8[ g(X`Gs4foa1Rp, Nm-̂|fe?R9q"mǔmܫ;Čdڏu|0e;oD.3Zqī\ JN]aѼL&u55uB&]L +^t}Q97^0ג&kZ%Cg.`,&Tp|D|7uDj/lV 5X, `_: &D1Jc@}=at!B~aQ˅9,1Dt+?+b-9xy*dkj6,M=+Sm/>*+naS+ɏ fHB4vVu>@'z'\ΊhP)d %be#0# OAM_&9JY7[A,.Dp(Lhjzꘜ^Q4i1დp%/m\;hOI8oFd5[uY/fHv:)h؈{`O: ?Z- EH{CԝnWfڌ:Ѷ_[2Gy|3oTK/Wl#!W̳mS/< #(_Kv!K9qBc" +{c7K .2222J[w^6:q||-sg<%cYYK]qB% ޘf@$%%<+|͕\{2QG^,oY4CDV6lb9/c5sBSjYڽFNe 4؋ qB.$ ijkcX[4e OBqu,4[XAU+ivQ;^r|,`>HV{7 3rAY!C=1+Du^0Sڨm<~WQ֔X!g-18qCWzY +DLe99SyL1] ڭoHz .-O-EE&#C=0ۤ3:I +D}G`hŒ4 ++| kEsX96|? ]1{$dy3HP -@\0E\ Eq +Stsv*qLX<7R5N-0Ej)qvAC֪j 2N f`Wf.m5=] )s;!Z»ljQ/qCVX4셥#<uT\ߴ p$֎8K7Jآ,(˦?VJ!Tw.ZPykՒW{4kZKGƘ2"O-,!\TB*Ɇ1+/HKg!=5""C 7f<:ßx>y~+VhXqV8˶Chq}6`B-z@5ь=Mcp? ]艻ߺjd7T_,>V8K'v%v"_sl'v3 +/X8׌[ꃞud>Pۍ@9VN-/y,hہ'鐝p C-~V sB$sQSU%.'jD9be3M!NO5H=5LM'GM:P;INMVPGU(:xA{cz̎)[|1*>krI*W>00Cq@JnzCv`v jW4 x>?RULd&:IԐ'Oj2sΏ&wnZe2D<bd 3V|NPt$H yf+*PAQa/*W Xe /vT><[wL;V81ѻiWuKJAП7%\PF-y,g 4wmܳâk_t:}oLZTr5j`E/ɔ"!.1gVG4ssebSRiVt2sDngG=ghtH%A\ .pHN7HѾfq{i={DhRů4:Kr. ~|uI91ţslh="PRsg.ݤL9oIJ%"N\ۑ$8_f:2~$V_Ik]oiyW+.  ž$^0 !eF[jj541ݪaoV MiH <䊼 EX85W\b(q -Eyh sr{:2-õ|='@o=&ӕ 8_Aoǣxd^ AZ)+ZTu% T dɈPAܸ6.%`LivǎfШQYA$ƪhob6Q^[31t>tȀ~fc,ZI) ͌5It.AyGy&tusėg1s"uO{H},~ӍWЊmBںXXDy~~nSu+Ca % (Ug^Wڝ/ ]]o ugV|#99C5.;ԇb4ۨlgbcXNg9,JkU8'bzVZ!I1!R2 JN4TyYx(2$\q9 3Cɾв wx1)6iO{Ճuw1;ƒ#z_5ڃ6nߐg@hZh]}+N1e~aȝ7}n&,ս{Ԕ1 +?æwG>DZSmp^}=ǟ|&]=z,kQHh&AN 4Q[a{ȓo9x(f;,yfSK9Jݦ7ݐN336u&7Ӝ=>j*N-z{n{v;ʌ_flj؁J5"3U(4vSTUXfXW7s+ +pY&BvTV'mqy +ȸl^Kr\yˍxM~W ;MPi$ juy +Gwh:m +46$]&G#,>0HTb}'#`-؁6*CP++X%@a}) Pūu}14hOOFqg;o+նd@X8r =S %P4s=p^ K_ܡa#JvQˡHT(>D[cl(ٶ+IRFpH1!%EeLYyi$n2F)"u(Xi224ÛϦmSM8C[XX#\RM@)CSP*+CUAaNFy*-U".:SY, sTf+$36&SjZvy.qVh>x~_88%^W=jB+:쾒i<3m\*㵈&abB@T*s{wK[8XJ__uh$lhz@6nN1lm8QLN#]^--(PKy l]3 fa0&4OnbbF d0y{$vSE^a6N.2?F9+ 3}3洤Bb"S/rkb|x$Z.1,LMSeゎ![j]*c83X)tԺ2+20dfYar*?<nVqȹq*rͰ") +{)=+"{ [Ր@UtOCyAk1NðV,xMDKkhwU\Itm~v/RϊO5"{ltssY].R!R8˔Ä\[uMmf;k~j"o-k<l:igv@Tjb1+o`LeǸNr?T }~I3a3Bxn]<>"]EY߅ۗ+3gw&D; +!fjįr ;}eG[ڷl<Լ*N WkBG4:lXGQUS+8˔wypn>Oڱosͥ}6븣=İZ']{`Ů0h36yBkxخ1fl&Uˆb;%ԑN/|@- +K(X +nZoHz3&V9o17B5Sj1܂~DgqgdRrb+kv#І}[Fɏg h1qMz4@hbwwA$&{EWC;KQAQ6;3` +HQEa#@%h%,@X" +zG;]9Xiݟ?>?zcx;zgsz{wx w?zH3PX4PfvmPn[?E,YLlTNýhAJ&yJ8`|Z{ K۬jiPTS)6:H 5()Vge +Qͮ\D1oOiƒEYD-vl1#rJ;a23!F6BUw`{YB40 .fQ&6i Ql*B$lnIh8&EdMiN9ln!<ųqvXzWADpXCE(bݞri'fjaH~+6 #:f@YtX7ЊnN1IXTUw\Ӡ)É\:sZu;Sac4=u2m D5c՞ÉA2l%'WZXL +bөI~yoވS=2rY)1{`m Y/|$Ig6:ot M;d$QƅSv/hRb~Z?O Q}VoqI9 +NaJl&aB^J +2=eq6ٽX~>IUyqտcn[@ՒFNPg?Q@@ΦiB({ :e ^2WCcDe22 M|(Uв~ Gh,qI5O1%˪LT +T$XIQ.81p$aKlٞh6[FE4 .,*eқR:#A>K$iY[L91:Y]qU\Th]4ݢJ]Am]Q)3ܮ/TO.&*bleӏFמOHqޢʤ㰀L*Y0IM `%ӎCv0]U,>1ã^: {ht,(B6.>WxKA%B<ĬÛTH[2׆-֚zhq"E0|b^^G#Iui 1p-ÛOo@Zi:[פeT^͞Iu2[5 +g䖠$\ ٖc,\tW[8Qc7WC\?l((.6Fw F_{^Fb=͢>Sl\:=1b\:'/C&Yѡ~t99p.DDvjA_ajTp֎4f ߄X-E[0q:M@f{Rv0 ϶F-cm` HfMC6lnFz.ě1bA7Gve؇Jdz}wvP2ܼpߣBAȴ-W.2aaFN ɑV&J)5|eW&#J/G)RC4]<-ްt?Q,L..-wVR5k0P uDfkzKSB)s]$xX@)5-s +FYd3O!pV[ҲQDI*$rZ. qqL8'd + 41Cfns6Y+fŀ axHp -괖ᵤc^91-Rz蟳gAl!IvTV#]"D֘v](O5m"sUƇjs-GjTCU6s 2E:KUUp7cbp'crTE~ [UQqZ‹tm!f˺(At69.f*T1a*zm2Di1Yi}Cmg/ə̊+OkB\ڇbAZ?zDcܪL_o̫PDZtq:N$QE ^I0U좮d\0۶Mhޔh-DYhDB\u@ d<|,eƆ(:!nFA_TT^',ǝ|&ڊلrW%ک\ bv2CV$ Iò\ օCNzq4F]Dd[LZŒtnëBk4=\1\t +å斝"h+!dy"BKRqnDEQ74fL xs86ӈήqS#>RcI']fQq&kg3Aydm)f_N rl+#LDT.:tTc +c/F!,vQE膸v2 + + 3 "u4}>k_6^fC 14I'\P&{"۱j.N]Ғ$ \ EH`mG̉j$neZx %vHD03RuT=CyyC) y-C \c:H$Ћ âvALAGx(j挱# ON.@AE𧕠'M*VF9Pfi.:* +5/YfTW{:/:9Td<;N'&tѨ4X,=ְ)hU&d[^ bҟ*K8Vq1Y g=jJb>HH+@VORz w%A9svLIIGV",h<'v ok]5+FLmowH-~T`"6̐(\-֋jW¬7o.eT!E' wR6 NMÊD-=UuJ1Ÿ4D}6_e]*d'ZY|)46;-gk3 33lcCEK# Yb@S- zܙkv..W0Nշ`?1]2;1q䥠ۢ-= B>~ [0#3"ʞh{$x4Oꑬ{Kе1kQ?h:HdAi3ڷ~-5d=eJI7XC9e[SɎ?(Ѡvɇa֪h=|Ö040*LˀL +Lt{՝{ ^:-N78FZbuEWզ*\TI:5:$z,SM^pFhJ_H,6:CDJ(Xr(ĴR6!ҢxOq#Bh O%~sʢ?j:Bd R0^3W1PA Ց0|2 t2EQΜ|zER_*Rb + VQm]Va&D*gHUtT +rXv3QgE^ DHdX!RŵDJȪ*ZBzaqؑ p_NAkGG0?^Ri  _x&4C1 K '[xkL,p qB[^0 &uyHW6+p}?I)$Gd{@奠1n 8 bpZS[2sv87g+=v(]V^`ldfmI\0׏Rbkm c|yj8:}lڤ!4N9cs ]Arab4KN\tRdU͕OLm6pFq|ےp|† NL)8olcqVI#ׁ_XFr5 q֦~v"d} :ӗEtr$*x+u(͇AXJ]|/&񿨶E j/TA,8W"@xIwNΔ@}pDHzzbQʋTccNFk!T`C&>{i17;?,e@E8"~!b&5^]|͌IVdYٽҡM 04y5%-99@$\Kr~$`Z'2oENS``*vJ#dZU`7M>K9?HSCSοkhr#gԵݑUQJr%1̳5Jf*FR؂,$*'M0M0') ؗ{5.D"hTjO%Iu$:e94͵՝]O3 qTMt> +$ 0wW=0{`;r ރF &F e & +V!yx>5޸ixrAΟzZA}Oṛ-lcAR2RYz4s +iVݖ,c{5(&l9 +t2Ĝ#L2]xp7IRt*y@eu؉> s@wq H3s F}qԧ@Rrv6|4DQBAb*wuűYA/jEtԮΑ0ZCst (Ŵ +xA[ݔhw6C=~LeJvPg4<vũie$#A?l]n"u[Tw99u59KVtI:/TL.+ҭʫ[e.*yt nHkH$qhys.B:rq@'Ե}KYp}]O}(npо=XNŴc)DO8_F# +Є|܍6DGoڃ,kDoSEGm92] X3 l''窧V2o՗FjkPM%IDCbLu 4:E:TPMvJvAENg4{&`B"A3ReGO7F?1FMgFMSib*3M;yN; }j3&1:hswx/"-BYC=˕'Y+n- jY5) Cʝ"ۇuR9BLYrmSIk(„NHWmihhncF䝰ODdmb."efFFA +^W.΁U ]ý>[OU14_k+uρ/^++2xMyYG7@ű8XO]5cBJR=b 9b5$v*uQ%/ƜVnRޛThEt`h?psX QNq>.!:R~ 7~TXE6q=IO[e`i_j%70/B_%poþDCS4!Ȅzh;RiO >̾+(wÖbʐ%LH d©*MKha#'Lѽ[AOPLQ+=,Ha8a*?P'X FVC$+ klPh0Fs=k3w)-,~,@Y/pƥ5Pd =J BC멇qrB +nrq v`RRs4= =A& vc8kc@%9a7uK}c+ZrjfUD"e`ҘS=_rSHHT̘$*VaJO6R"j$D-rNJȜts3k$BDJy1ws*=sF-ץ#ocEc_nc#=gLYL{"#*׿o[Z{kyu¸:^_o;rw'ǼnQ!3}?}=iH+-ڳ`~gj卤Y?TiGLsc`Vm>T3Wl?Kh&ܲ^x^,nqmF2V-T p+ˬ:&ג ukZǎKB!'P 1quGɍcqGSorH(?y1OXMoZ=D<<,%iZB6d6 PT>hb"ŧX,ёźC꾠zrJ$ށ4R5϶C}A-5v\,}^)]hm:D N^ˋ܍#rb؃06(2=0:="&JA0u}Bwt usE:=Nыi +:U qbՃ{/rMlu<0[Θ.(2CY O0*Am7Ggf-UksA#uNY*CFi?G +ߗ1՞F( aQ?Y,%כ 0Q-MQv\ڙn ;b"O mȔpA 8XtT +f]e,i{t&Tը2z +?7{!gK>K5MNVj/6J8R ,n&UG.MJ092Qo߳ã$^>7[ Qz0{!ǭ(v# ;ÎWFs=AhPER+VINQUzHl .rSсZtW> |C1hgt#)ColH6 +/8-"MJn֣T:KhsvJ)Eu"\22>T.ŏaviץf5l2c ue lO:j3 !,6=a}"@KaK5^ Dh^ŝ !n󜨟!4cʽԺρ(M+瓤z_:M+p6i$RRȡwnW`c(TZy`CmxSo?~ (rq>B[\'[(j)daFKd@YСfEѠ@< 1I\^F2Cz)G£\@C+:'"rӱә/#ojm6Ŧ~f^!ZT@@q~Dv&j2$qduR@{ḛ4i,(@:M*8A;M8; re^މqIvunMG&ƭ죵#~`j6qC>OU7@iܞ,ۮ*90*Qt:TeD,9Ct][~L[!R!mh;P(UE8d'#!z$O!ghm0^ 9nͺ`vNp0=\a +M$ 7;m|1{h)kԹN7z{3>g2<<<"|ܜe.)Nnn7^1_fX +x?y>OH}"!| HCPC%H.Xa: Hc+M~g+#gpZh3CW[l3GB%GPMp(M Lʸ\a): +8) 9#uTSl _bxҖ`!CKHV`&]) 6J}CV%+hw0b#/ůy(cV^ +_4/F5ߦ9 +m/q(sI_]9v#%Dѐ$6$6ӄT d)yܞT^\YB>Mmkp!tCMj7 U70D_r-%6L[0eږ}pm;I]Vǟฃ]5-f6+O z TsshW=(3Z-Yo`~m +bFvv*ϯ2&B2(,zÐG +ɾ(6-;O(/(+s ?,5L\5XmV˵R` +V O(%]AQ1 +MhQ6M'Մ*+=c2CvNgRtڳN}i>p}N vX-F􂃦;-fWٗ5'Gix[ a mM:SԔ$ 6>K%C3Iu T ~ ]dYwRZR)iPuNe_vr h,mwӀq)2~ax(j\ ;A%KoWyffUV_[lf>Qh?ߐtFߝiݩRH]an$%ۚRM9I2$z ꦗUPt44uD@-QDmTmi TϏ\=޳m韹]WvtM[`[b Y9W?xJaMu$: >fGN7VwGWK45A>=MMţB;8RrgxF7ňnNLTCAAĒvCw' *{;1fIfѦx@L=JN!:J\k eC5WsRG!Wzo,tM '/W+LA\w˪i91vKCb`I0#4B]' _;1ꞪOۢ!wk"d9a@ip1z> =DU/ 0?H-9kQY֮8ZUە灦i5Ol#\JJRGhzUyґ 8(9X镫;W ˾Rv$P[ܿ  €ȿ @=\ cpӐN2ٶ!"ֻ/T?YTMr*E4]'Mܾ:׽jԇVRu(FȶA{3L{Re|IשANO{jyũ}yӐ~]z=1`Db)3>a!&ÒVD)Xf!匤Q<5ٱ$Y g "GhFGu3Wf/] <"ĵDW!:// {JyEDAnאַLaO䎬zp&M9?iZm?[#|؍GB.u1R9tdGWPRCKgB 5)`OӐmSaBu@*'O ߗ<ˑYǵv3-k=41K3G F-'#e5D`g@OoՇd@^ +-!M9.6DVOUk-3VOX,--;XL"TttkmB<ZNPX ]jp_Qdvp1)aE7ăh<`wj &_l1mW!,,sZo12]J--RSs2P2ռQ1)}di."D9sÔcHd3B1*Q0K7D`Sj^&R,FC;ekc:},Y3e8>qNFX#mF LAlFw ¯]'K&cBíT鸔-f?j{l(!ʐ+k 6 D1 #.ȁ;B3Ռ`Cy.YfcmuL .C8():  V_hG=(poHbi[OteHYSG@^/&8X|SKSckOP(Tdp" *C}R-5iz*_i[΢JlRYS +q_P=as7R +BJ']:2?ԡZIw/J SolԸiExyNV,}RQ l? DMjx.GołQTu$% y# -&v񤨈3xp=0=pp"P~Ĕ_HrR dwt,Gn{dG2nrg4+dwdra|t\/Kr5AJy^ `QX!X X o{T[/h xCn{|T?7,\:1pa?:gӼ,(abfHB2Ϙ.Y.u!vdT/PiiBnoLn&]JGj ;Bؗ0PsSm]IE<֥XK =i"8x> F=H0J)Xڙ){69nUujk!UvE`ξL8$HT}"lWc\+lf:I]G3Ҫ䧌H) e|*IQɒ%(2ѝ,=O{f|mynux\ߗz njA>x(ȉ`@+ƫfGDG:2f"fZ@9Q=RAQѠW;WRTpVGk\pΉ[DS{8Qm`24Nc𚣜>KA;$b$'gRfcK,\I"ZM`(֨ae05𒩡yff5ooKwr2!`@v"eA7fPZyT&睼&3fd63m> wā+thٜ¤;g{oḏ8IP{zFh=uC,FDV<~S;s{^-N0lH㯷|ڐCL1"ؒ _$dmDK9\q )F> 6W;iܖ݃jG֎sKQ++Z/y7KS!O?W6~htT4h 4TTKK1lM*1"IrPS]]r[d^+v /Oȟ/bHڷۮ㵾>Fp"D`8 q@j!(l" W\p:DGp4y +`b8%psROp`8>z{&1QpAHHrDAkY AlY)Am]8`:^ĻwaN@7 GQw68HbO,qBR4c l)#hcG5Vh(CB椪saRuSFc{ +PcY jpU@-!ʅC`reFVy$[>1 6'lze7Žr+Rv|4Ь9u>V$>81! 1@&|J WUeq(jG̓AKR2,!}!=ooբ6J1.GtlL%b_>,EPvF]6r\œpL샍d )w6A{<|iNJO^%F1oꌀkg$k ry3) wBZk UӉt@jx.axq ڡ@Vg%5 +L 87 n⦜Hű( +|Y^YdTdB =1c5F}GxLlF1MuEK6&ޣ-pӔۇ'ۃz=b.0'8RRAzڈj'ìg8Fd(4)Q=(%ti*2A+:x={֨-,w`ĴvG͢V`C5L´jV8CU$Ǵ +%U^.1yT)feGxH C2r~| +4(GE!3cÐϕgx+t+SH736[Cs649ZʔXUK0NVf'9VЈRDoȋ)y6mj0$O0m%]xѤ8f{xy6UڭME1czF,ZnH5DZ/y6 VTglU4tn Ք3ϯt݌Wc b3cVam##-QsK6ޓOҴ&P^%^"ľ2~Ns6VuAu- n !aetD-0:DYE&^+3sLG8f88WIaVYd c[TJیFE`ĦxNH3Ȩ[ȮYQ;K̔f 0Ǯ-(zZQTW|U`wD;ptC9ɠ#CäC QĀ¿ &#Աʃ"#NkU ײճK(Vgxr-ѡc#Ser䎑O#6 vGZe2 +0JTPO +d@-%lES.޲pKu]S0|IV`+)i2ra1[67;RܶJUN&jj^Z&D?X&Zʧ_f喉K΍Ҙ3Lxd)e5R +J+CҌ^ne̼5c$qHSb 1),0ؓWf )81#Ym5*l×o/i"=( K"R']z f u.ll+(/(qr܏Q8`L,'uu"w*[4'z|4P+0@ +Qb,g^LSVN] I] < 'ZI!jAXRfVhu9kݸpL-\߅ޥG/" 'u_#QJA6Qq:Ii$8) (Y}VeZ|vOM.;m2udTxUt\(:0"D8c-̍R-n,x|`,Yk#:̪̝mj]=7bW +lY0e!4`Lk)>AZdfP *4IR"5'31e]/d7FԙR2JN|osu$G +_T!TN OEW(}Lr'pzNT!\ @蚔t ,FPK_{l>qRW,n4yφm rSs6^CBz6S}#vҨQQ >H~.NuW*ENl BԉZDzУYo &@Zo?Y "tY?=NCf>zHΟJ + pfb U^p߳{# #-J]Vr? wl7+Q§[J/z27٠_{DOȍb&k=T.Kcdzi/sx1dqaϩqW"@lr眗V-ȴ:4OIȾgx` ~c~{X~:#Fa ޤ!2ۏ'j9|`-%n̺rTD5?ro1gXw 7ENYq?+K$ (#- +a@M:2;͖<HgސWg]*OeXZdsb?7. DlAE4as3#E3-n4!ۈ XjI% s8 <ϣV%?~Snvќ|c{/()]L!QTMڊ{r;HWTRԻ,䆂C^TTԻruxvkWܤ.ym1s:kTL$Bnj0V;VΡ{Yڢ"*҅MF=aُA6{(a~`mFCψRb l62IrW-'gX?0l<ˮڇֆH +%33&a8 v[2-?Nx!%rq3 0ga x-4OM1Ur[F==8ȩ!?Q40P_4OSn3ₕV~ڏ 6  47h-ptּ4 8CKgryv[̗BTcڡWhY1v^&C&d +~N EʸنƏ~}R\{6Dwz8EOmWx9s/C{PQA۶0m۶=6*mm۶gҶm;{>'޽9ߺ7b猘Oo*Tn$ꈖL8}QQRadBc!,Y(G[ *Id*}P4z4!Y. +d?ezr}q 䧢D)&P,s#ˁ4!hax`S̜jI,GԆyi C6 %ae$dїlKL$H@챻'*UtWYki^̟фf3-i\JFtI,,wn!0kzeS q\bjO;Q"%XVڪfV֜Ӛx^bp2P*RabeGL;bw+@; *zi,*:-^nAV.(O AnZM*nS_~y&4$JYfoB"HtE3._^Z7;I]:o`r9zNn&%TV) V=ʹl +Kg "ưSփvքإӟfĮZဎNfP0S:źMȀo3/GդC!T]N@P%׍ǒ7j9FC&q6~?IsXM#x,9}iկG +TLts^Yل +Jix5pRcuƈȎ@H<~UF4'=dK= ++'Me3;ũɈoa:pvSJz-GZt8qU\lȎِLcpYoe5}PzKGWu(ՙ}51+„ʾts rg+R?eT:٘CuB\+רg`ki|:rE\∺4,s'q]ښ1\f貗@؏ ies*5t1:Ӕ40KOrtHY롦8V|ĖF CN-*Q~}2BJI@UFwZPxBBdc{b᧷.l "3Z*+)|%Oݵ{oiyheXHf=e0#W7;ѽo_7/{ ?cE÷,>1:jaL8"y+/HK9=nS4yv- ]ֈNui )[5§XwW;h*VOk UߙByL `Ò i}İ9&-FQN`;L +{H)b`sgQn׬S Snr{R?zmao}|5{T? .DyW#ߙމ+! rtyOWi; CxM )"򋼗zNkpO1#VCfE \Kp b` ptsӤ՘Ty\ o9+(9džbSfyJג4|e-SfEPefٵWqsD]5Y,}7eԥ9"XF@(UZKwS^~P}>@ SJqL#IjJ_fjlNɠfI>3ٲ,,([?HDع,9'F{,{YO:s0fY{3kREm1Ue*RdI8Qu0ЂR~9S)uMNMàL !ºuu -͚FL2.@s"m5'"boY~s/jij>:e rl˱ڊmd, @u-_T~dٱ{cKߧ-y&2L#`Ft$VwX5VVʘ8%,LlP$ݟWV2V7w[OWw?:4=ILʩ$#"eQ3>% 㸗od987͡VadZ==@ՊB5T] zϠyKB2mG,> +|QaHnYREi:b̕HF}w`b*\1M\1?N8,V;|;V^0H ?ߊ&4"Lؼ'A6'VHOP" +^ ?F@=B(Q@>Rk +1OX0kJJӖPjѱNЛ|Db@4`X4kk -γsrgl OSqGa KutI0;7ɢQx~3atRN^Q:eO.p\XuKP$z1ooibmMKߙK|ZBO{fD4NƦOf0 +@Lt`"Uڤɵ(pg e,!]JJ*(Kkb _hsRCFUԪx9uxrǷ6 s*?'$b.mT!JNGs`e#Ffto+t}=Y&Gk}+lBJ2Xk2 pl.FD3;TYh'po7 Wd5 ts]8a=be_Lc!ޙ(3ِm$Mq|R\:6Ӿz܆0 .)!W%ZA#9Zɋn^Cb$zzJC&5B47ҕ }]6/}sGxTvU]?*pNq8cPjL @Ŀ࿔Wp f*l[uX^L`Bb%O8 +yN`6Y"z8L5)L_A#y8z$ Kӓ,@x.SgvXKY { R ӏ. + dzf/b֠+/Ni G1jvnM +f,f>o)kn >?p`dxEMeA"emqݫx&`#Y쫭ؖnGW{`֗+גµ~Tlf7ǞR&b9Y)h@rjcmـpQA¬\TP7ꐲEo8!s⣀I/zShk)A{gʟ#@GIG k wWkGYm=%qZrø [ +euhuU##{\4ʨўs5ģ.H># wT +KSswwOޘ`HCXE@!54յ aK5TKt^pp 5^279&;`^w35?𷍵}oȖf^m3f, [>\EEd);4⑪\C"l6wH6>Ĉk[=<.^6F@YiB!˵NnO&Z pcq&iF"bED" (rl)MXXj+}.`'V;7Q(=T\p2?\w抗XG{4^_%dбaHnA3G@s +` <2_4QtC\ ]Q%~OP&vSy ]3a.TsA$@4G0'L9vdJ冫jM;P*/a%/>ݷ_!eqD4HE3,446*y+g%qOB^i@yvfwExL񐵍(#d}YrvFuwK<:Hիb#H +Ԏd z9F#ؖl.D;jm O +B[1+ɧ{t\VX@o\:CN; +J BCi=4;Q/.A^ßOc_q'9| +)1""Q&U*K cK)xz}inqTI'xxPKc'0رW7AXVx[I@<"'\[<0%h(WɎW2iZrW r\=rX_}oQͿϋ+0 bNG}GD~˦SizAZ^Mj;_7to ^*̡[l|~oi'.ǞoUSAV馿|iRN%2MZ64P33 'QBa9kQ籏}-00 ;XlAHN<ؖa gu2qI;i%|ʹd zIBp׊?`0И+&j~SI٦/T x\&-hJb }>mKLF cNy};1^+RA $3.@YE dɓvnvOls:u$qBg:Пv:wqDE|Y䚐2盫jsܛ6L25%[Ѷ}es#WVӅ4{i]߅$dj0æ4[WØ?K\ +flYHjd.lTm"u{=SӈtJpI&KXh5^-!/WAs3c9DI-O5%zigS3=֒+:(ty1=Lx[,$,D2L+쯤ѷ?&sX FCMv)TmOU_u}ҩxA870e9o]gwLdB}Ckv1U cif}cSYP}?,j[S`^ڤêB@XC;->}Ǧ9cX@$w +?{, =6J}]5ܑw3(QsS4}krzS$T[ZCL25Ѯ&ӕ8p?ʃ@t$[i&&j15kTԝF1*FvUB0z)+ߕM|!=qۑ reGLas,^z7>9 \y>ζ7{R N2%]_sl +C܀fYrvm(uD1EV_Un)bنsv|SzJ!oY5. n9N_!wc3JDcS-)]-Ty  z*͘mpBHYxHݤŃ\䘚Ҙ6۝ĎW>C+س%%^;'AU&޲ &iwHfuiaՠ~5<3 :uo*o"4m,AAq{{#+v"rw}PswcT/(11 +)>t*a8hr#ZmdK+!.BIƧi}ᯡe5"1Cj K g?l%cll/Тs[ןUpՅzl/}DD[2\>sDt_p$L;G^<筒0G3#(r +xn 0[g'>č'7 @2ֱxG*< wG2y9v\?i6GS e3K"j" v7º*2$K\RԅʼXB9Yř151.o 2ӛ]+.dZPf*W +8 J*zYWSMrgdۓM *Wo 5&w-g:Y)96Rv2 7 @|N=2:D8( fJQMI(́g*<8ns%|M\awe#EŻga6nmOlp<[ ݓ̺a/ +M{K}5"&] z{j2/ "yR$m(M]'W !klGc;'EyutF(S¶Gs;+_{7VtZwEg/"e#)0a`uև̥Jc/Zx?HCBh8>T:@~NO{O;4l)o9%)  3 RSx;/m[CBch`k-\̮MyXr 3jQcLF`1%{jMj8?vl&$#صи)CS/DUEVf)2V}*4S/5VP||Gp'.xak :}~f+&If-56F_73L6n=oqϒJϯ/Ĉ +m)|Z* +;.pWХ.fJ6 6dj,Dⷕppǁ=1l$ZM#чj}O7pF]/弈$ +h>~{!%m*Wx$HKƒS '<`ѐ+KSyI0OdD0Ίwm78Hd|Q.6;/n, <~/Řc& +WT +`Z7AJ  K)U +T7Ѝ7DRc:s +)hy"$^Ӽ&MëZm% 58sS`^QI$1%)7}U40ڃqz{j޻dh/ycP +3ټ .c;:75Y,PvLX9Z>T]>=џJObIT&4ʽִbT,RߦdH ?/S_Gᕵe Pg!#l"]AW5ޔ,e ERBTDRD^M,-C.2SFHd ^lbb~mӎU +v GdSL8`۫3/#7ѩ"C}_?O]_W-զ6Zmxl,:|Vݩ4quݙ%3 +)7J. \ϊ`[9.PTT%+N8Tә~vW)1ZFWt_/9WGpȋ)M\`_H H˙oz:C)ãwʹ`Gn|R]=X ;-XvjU8D)үx/|Zc*Q%?E"f!U.en:DޗIEae#&>}>5@oPo&]Ԅ~;$A5UAf`hȮ9sdSN7yBEhGVo, lMlMSђ3lTKM eiwΡjꜙ–_V1WVW5]~E!{GjEF[ ~^(ը=\,Cς" PHokůCE?%'F +n;HM9]kjت^2Ckϛmw+ +*méҧ|"nc#J &ug<@1--śCAc'1xFu"D dF\ +"?hSRu9 s) %'⟗<0*|dˢXd |Nzf884O+558K䬁))an3;=HOV")M_Dj*Z?vg] :dҀbh|6ٓ#/+̶pƉӑ.7!] E=мܹA#g8}:[i ]~b !(ؠʜ KʡnXG)* *;ij# z :dbP+\'DyG 8QZ^Jt1QvWa8eJ9w d]&~$Emi)ظY*.UYSV<<^-N.hu;PT!Y܉u/hLFݠi2{@uc,[G>9l"F(;LZɏ w.NQiaG͸t,fGHpyawᖦ2.9Q~!40λq씆U {;6Y] +կWPV\mBShwKޟ" ý4UC/볭P1ځ~z Ezp‡.?1W s(Ӳ =X`ʍ-mO"Bc_"=-j*JþU .\ez`QZV:|l)E\SҎ( o`=;=\KHB}gJ'3bIϼ:0*E6MK݅1P$"k?,Xq?l?]!}ٕR%7 UH:= +(zyE'4 ( /r5o]C/ O*N͆f<1A}.* RLG6fc ٲ |D nڇ) +5)މzc)!~&=6^Xʼn3$vSb jӔ "Icx d^&Z?N &ivdE8`-;Mc1wЯ~GkɞGtBd1 g)gзYFFcxMr3b)xm(fُ8|U\shڕ[Fm5/}i<blKwL}MbY ́3ӨqWLvӯ̙Tc(:7S:Sm2Gc +5Iiv1'`#B !\Hl\O۪C47 +9x=yVUdqnKyD|n3(jPg|_u*[%?V ʉvBX$= _rεN7. +Թ$ Sy[@;D/mPڪ[s9R譴'a,y"1=, 5ž`h(-Q{f%D%QcjUFɳ{Ȕ #B`$tO}Bإ%fI\Y] YM;/n"X 4/┇]ZU1̶Z1lgϾ +H_uשZc4K^M`1BHDۂC]E氄ϧ&n.fj&^wBT9! +6;f)m0؋dl֞-aѨEBʲр^bw!׻k.f@tԶ6-C@L]Dǰcnj2>Π|ݞly?;8as!ЏUjHn7GSw4gsoNlCiA,?n$ +giIˮΎo[uߠNS>"Ca~dZ4lN ljN{ZN2C@}T:/#|`b:/١%gi?? +c ~ܛ,=$Lye,ڳ[R?#*120ƛ].ZX_Pδj8$ )sZ+VUf::ZҬZY$~`dv3nw6VKSJ3F,6s]'%rN-k28HiI:s#NʦaFqNb]M:ׅCS 4KIZqѭk+AcKѵ+U iͣv3qLO_k3Ү*=]O#%=]USR>`{+]b?ۺZ4 $ŝQpQͲ;SDLX=OhŶ34ʑ5 M=1:ME`NN+E8 HRh7`.m4O55 86'ֳph|{Bh3F?HAw1=jQӜnI (hGfɔdmtiݦ]q(`VZlFw[{\փ^8hJ^%ψ5Z^ ’4k؝7c;'ãhpSih]Јbn R(=; +׺^J.]޺CG % wfCCh{fܿ)gJiMƓ!wm]E?p3nqyS0a4'-X3<쪆y{'"G;-nvAuD,;xό>R9Yn{wKjn,E-؄/ﺊsBv^dn H4r(V;Nr\__˛ck%kqcu 5$y:'ZawP:C?LHMd!er2&\zΘ#p^ M8E@:Ey  -6U9J2k u'-L=I2c3h i"rRrU)Df~JP SvqH>qCd'ŏԃL|d6 ( |׾v,ww?T)W:ܬ3X#.V驉WPjPKԓ'֜SO s9RE8~~eWAݨ~xc{ O 1-'.L) +).B4"=bu(]1ܳUh2HyپT[FK""r! +@E.X&nuv|x 2vF)9V"[~y# EwZ'&5ft\)cu4Y:Ab5Q!V!h0/!54S^sNb;wȐ +D4 j QȌQvؕ/oCE^`aV`Ú^)Τ$HwvQt5/kס\Vnkiأ/ޛFtJDiy6T K_1oJDY/TD/܉'VmIZCiHv:e!$ȒծbyepìHʧi3s7"By[zdoH7J B,L܆.ސ?|s^9$~{f_K[0(hPkp$%VN-E]Wa?6yx^w{Cq "`HOPymB\<3Qds# Z"Mcx-`1:xʓLe3Zj̉)>@ҩ{#Cq7!?EYA@+ r.X]@g&ؾQhK/u/ʾ9q"H8) iIP9nɏ5ok5x0ʩ19,pXFe_|ʴ}0mKgaH%Ƃ +NXf$ q7Rc?-.7Fwneŷ))~.^|+iF^;M>σGۻ= +NryQqSbN}V\kܯ%FKӈ@S9YmO~1T`hƭG"ʄ\ rJ#r~JJH_r1Ӂܖ'DA c~Ĭ:>#M,-OKz=DC -F׉ е]}=~ Z|f=BT &XHBPA^jPO֧N*_3t2y]mN 8Ϊݼk0"O5IHSKAlր*NȕtRǽ({)3NG .! 7> Ȁe{jggJ bB=DT]>U{aHTVЮt YVPêjd6Cв_Rcyj<%fuim33ڼ !ڙ*%c}?p'"ߋ#BߓS_#tWʭWS7N6 `E\6Sik7 *=$e?] s@{9ȁ{p=w7tg)]8{oOx$ĉk/9z24L ']xG`o"5 +w][\#ѽ~Tmk\;gҤҤKj=6?=fTWnӰ"Gly[xd&F)?R¹$Wõtg^ܴ 1!@4 <?pMxm?$,!,3~WvFK]Rz{9^@${#:۞JfոBoOֶ̡7"8W)' mi:f/9!Y_*ة_1` *U5v??i<2Du`Zߓىۋ,ھC4'hI4ܵ; ]OݟŜgpj=aRײXVn__Ş8mu%9{Ȧ(^0 >$ ۂjC% 4hEf90h_[%^肏)lO&ϸ)5H> Yǀȏ <*o b.FDu/Rdvd~ZDGҾn"T|nq>X\E WC9Z'3Daz+D鿮ifAv UB{=GD +}:8q\q\ +S&]~g?ADo0spqL>|MO0&*gg၉npD4b'dHN8QZό?hU0!E&-<2o#rT Wuۊ3eI *JC/OB3EI 'xly2o8E2 ~n:Y'UeѠ[f[fgO7;O]qyYh/ggCw;T +zgמ/ifPBЈ @d>QE>0Hna}@bX$@bҌ!rcC~jKq̀0= ׄINzIKDUcgO{ȍ==0J|0 |͠e8m`{Wa{Pm'SQ^h&WCjc]Qg]6wߗ +BSĝUӜ1Z,Bh5RLi~[g(fVv'yCm Jf{nǴ#I<{ӐCA6Eifx̊̍R">sA8]aA ( ӰVD(%ϟ;AXZU2EX4қ{ЩBfw8蔌s_d5h>5RtHTP,AVO~hhilÄ$ھ9RWW-Pleڣ +UosdFZMfd\ ~EX[WGބbU.ĦWp9em1 += +w/ %r3xLTLO .2f#->[e`Fr]_y? +~ELd#)! ET*&4Wdi1*ޢZv\  TbTjk>TIGGcbGk`a7GGK;az!0f:y20ip.d'XWۦ[8m⫺tR(dsKe%1[S b,I/SڪSS 3{F=ʩ騇P1.ДCVDiU9i(CoGeA^bǚK穰5rSoPƬJ1PDt,$&ݘioߵWu:F ˸NP]|):qQ !&`[h{6.t'/+u>k-st?TVTyϟNUF +,q2ZDY>\|9B!)\>q'dgKJcqJBE@<]_Z\A303( fwwq~3\^ +j=Mxd2B4R] fBċ&\Iڰ.o̽CV"_hyb3Q/7G񏜆hy$L7+L<"Z]# F[;H2/jm˔㒽-(U}}G啱Gz~ҪӰ>/=.^]3s *IĎ)qRW~l%!sjnUY7 ;$ >l]6TgHKոD؜ELd/L59n!gogfjNZ 58Ht㣤۶ Gf}Y@-}aAv8RUP荾9*uUw&Qv-yrws3ǚL1.lòskfBK#a++N0sRN7٣Y:5Z哶+:Ҿ4 2`V&&e56_~F4T]v̑D;\i˪<'򙡎 +.+* !0EG2ͤ.:utt]2m5^x!#vw([8 Y3tL_3tquGW.fn +Ɩn7-[_|ì6zs-YK +CGJMEV(B(6y[kF{2Q2_meL}eb[˥ r{(O-wrK~_yJ܋xP=Ղ)# o%U:Ö́lOC:1;?) و`OdZ5 _@Lو2@6+c1@^;ƃ}U`C@Ѿ{VRXRXKg<=+ vj[l -v¼Ť9 %~kvԎZOuTy.qή>N~%+.6.4ݮ>_%_:b7Dgl^\Se auFɐ~wkͯ"xz c_ V.zovl5x!dlm7&T۔ DFd""Glb-ܰ5Qm܇dHьCo`"g~1NW3AۇUDEoVtË!Svޛ/XOcn5֖ZLDCLR`^ + ¤xjF0:'G|tU?Gq7.?-gJ/]))]žN)8ZW:b> ImYEְ6 OHcg j=Sp%![謡VfIuSL['0גCMjC-rtxn{[̷:ţ/T0=.:=5nwX3CQΪ7U41?]iN7s`< ik|FTz]J v%K?Py0nkР[tXC"ɇQֻ8bqI'fy/"VujN,k4^`V\ E)X1/3 қy"XkQqza LǶ7""ja0h"6 UT0.߼!V,]!F1pvq ,+UQU t5Zeب _$OsfdԗQ[44fҝhCq~yce_sSaTާIW|PjxourY7gdcNA-mmgbxnU;˫j!ÚRer@<@N+]6`MYoweEuRr#jh 'c^7MY'\cH+>OzXj|'2q5s :>Lb9@b +&_:#YcxC&*vgW߾L+7>S*Dc^6BRf\yC27/,,Orаܾ-XJ?RT%.|m-+]E#g\(>=[Q=&< 19cKе ܐv承pRsZV7!IߍR9z1=t|1M4ȵOAnnFL! Mg&\N>T,Sg4>ѓeO,-O.u/h$e簾}չ6e:b=gm3CMz96[)ҧFb +Nמ6R&eDˆ`8U^i|y2ݙR#P0a5 d +t\x7JP#h`@)/-؇`&npUYlv1eru6M5U :Aэ轃7:4_!‡ +߰e,ghog^='m2ؖ.JIܡ=QaoѸwlvbdB: +VVk@Y/NJ%Zn![xIskf+nJhNz.ˍ|RiDe}tq7 P*79_Ɵ%ٸ-pcy }F(i+/Iz>~k~Lʕ$iZE33=r鶺VT9:VZ*X?Lu"#ȍwdװC|_}/|kV.5Z'1npq}0'QѸѺqZy *l9[*.#0V]9nkwS3}^4V^g74uQ:ikU|_i"sLbvsJVF<“;8MRv7:BQ}30';ćhLu ͛l`K4(6E[[_YuDŽKri/'Wh `TFɘ*|R9ڒ6wN +HhD+c}p(vv]ݟ' +7hM'kv_!)Z7/rD6Rl?FrC"/,s=9LjmծU3 +Q5_hdăJY pBDw<񔁮ԓyI ;W +p;7Wv+v*:sY6lY_P.kaf 0# ;:@W*dg9/A +{vl~׾!خC8>E4^tdq"quڃpNDLD ΔQ[Jh_:.\6!|@g5C^,ɴ 02LqL]%8{ZW.v>gK:zՑZ.oox 00D5(Z@ʰ;\cIqs:qbx`d}y+ЬĹ[?bݝ:n2✙zQPU[SXީb2>;IF_a˅zFCyM>H +d/x|5i$ë}eRAoEeCʫӀd9s&d^+0XexXBHje\ٷo2\'cH;,)~@V_XtD`PwM|mP4B898UЩ~Rkӟj8J^O3ȵ`&d5X~莣11mj{&‡Yc4`E5᪨e*D}ɞ\ b['ofSvY`Xmiyf0JC]{+}տyKW.Vg( ק K0RX^QdFE AR JM I*2\|@ Qkϵ3"C6;]{]Pّa/?N6# ;E +5l +6l*k~{,RuIS+A}'phb EIhz`|] Ṯ'iϏ%~mDqߣ^啁oՁpp (ЛpD}:7|(&4ѣrN#t:6\۳]9j \DLWpt̄ =IrLOsE`d*Nj g#F7L[Ώ\].;G%2'԰__L'9޷g:B] +v|q>FQ9URZ~̥@QN6&?g0)H'3"ZKu؟]Q| +.̧/(ՍZKE_&Z<cm]S=N_,Rѷ.ƪh UG=Jr\mR5?J,X́}4KtnIF.@,iyی.)2'6>bC5`9u-~l@F(VmJ1cL, {il,ԎNm^uns*yt0eϞژ}.O.*.f kkTVKιo^b`[U%/EsڑrTŋlR$j'=DIHg*w9X!XKYZ%Z8Ka<~NS6^X1F#!!(z|%ܮoV m4LZ `I'}iIaDMv̜֞~:1'Ll)xLӔb'Uo,~lKJ Q*^|  5x `@fB?eJÝ:T(QG?Ogs E`Uar0 N*hXN=D^qթ2e&9q(y9qTMϊPyP݉UEea|GFBejp=Up# ?9c (Eu}]RZiĎS0=DYef(p T438 3U{{Vbl606,.Έ AMP +z]ȉW# +W-cYJ&r)ʤLF'&|sY5L^;S@On6rt>! "BXGך!Zw)s/#g굅b-!rRr[H:E҅նN;ꯏ^J +PQR* ў :ʛ'9fJHttoHsz(FBVEaA8820+3OhQYKR YcqN37tjFln6s4 :lyuݲ +Jߝa†*brVF.mFA|#cymA`4r^vI՜Z? hfӧne:Ie6T[IXvؓlO8~RQEreb%h^eȮ|LV2Ky˜,0[!P&8%I [#:>+vָG3K͔3.N^̎]nll3<ډys1V&xҹc?שa ^eTB.\G:|\ itGP"bMlGY3eApC0%%4R`OӾ3f?YaihOnJ!|aC7lde-aI##= 㒿$ s)wPGYu@1-=@-??6J&Ɵzh!cZXsV9E rc:V 8 / $s{"Ac2v">AfQ>ˮ3?˔?2@%C(e2SS)YAY3ꌢėƾ$>6(qF(Ƣc5t@`k'> sb\veA)I'ӧ+?+<,wqp/TDcaLTaX!ۀqJ1;:꛶;rJ)X.(n3>H/ l^TqV6| zXCI5UQYMĸ$rtcrtlV$[e_etnIS봿WtMQ@eD$Nڳ"l^c.4dKOTWYtD&\dۖ3m0prew\ Vq2 ,At^1Weftgʱdgg\k$u+e;R©"ȨFcy/`:џKfҡAX<6q8UvO0uҞcmz@ {@M82JHRK7ByL&͘{ əq1Aꜣ!@ij;k +B~Bh +T$RU +5!O.Sml/r/TiGdȨ'{! ?UP͡!%~]Wc7?{xnoΆJ8c1E; V]%r*;vZ.m|F}ӕgn6G|ґJ6"~}UݶRlr)9⼩͕V1ju>REg՗rH 5բZE5ςJ^SrX1=6^ȣw{$[wW!+DBs;GC缒&H`EV5+:TS/qJDJ}A s%b2g-XM|4ݽ"[1iVb2Xv9 +O#jqsmq<5V1П2 GDDF$c3w`[rb@dwaqF#/*ቃz^SRzV>,!$[>ʳV'zWDQіP΢,qj2 HC,Kǿ)MA@)fFK}o7L^5= ~#< <Vr6Q&b +;9rS8 :3bh-5bj;ݸ"¢{i}NWgӼ/|v۾1bCA%_ȣ/ iz3dz3Kk;WPϽv=tM0MݬXЛtݠp ߽ HK#H!<{SNІ(J?!a:9$=!l4He7氿R' +E E!BY(t,! 1y̓: azo:Wj'pTV݅63nq:p3XE]thFMh2U Qՙ*UE [Eyoi0c uSWaV'DA? u?[ 9y*Uxmx +9sUȱ.XG.ۡ=~ 9E !(]_ו)b8Re{re%fTo9TEjǯsN^MMf*M(Tx{ZAH!棒STDCFO <JJ.H^ck&5;"­Xl$z`SRC"P)啲.%,!۹oB80F3 [Q)\R^QRnN9O!9 z2X=q8>V,DQAc6x/c[5 Uʶm۶m۶m۶m۶Ze<;|}{wļ㎸~^sd1rE`636WԑsFM/vʻ+WSOx,&#CF^5zv  +ob. uE1DWQ+vkcwRA|I"f4,@u;ɞ #DL`J֛%% Tz4ticKoRtWO%LX`ύlT񞉩N?T08̭y"eXИ^4>I1{#ό2PՑQ$\CBtRnR*j @93r,cnʺ`Q~Ah3,9,w}Wk(r/F΢peGgiëPu- }8 <_I.Ecb1<-BN.(M=JcQb] 4=o[P)jJ"%?#`[#H̄qJX98y37#>7c8yC\p$:R%AA%=VxHbIeZzDx/)kkƎS7}RrD!%8n1N6|Z|B[kaUS6!8jZ''N"" +7;(C(JVj4;U(A+'P(={B׊&)+>\9K Fg]P?.yjOnoUy+_% +8(^ 8%7IDjj}98*FjPg  B\\(t Ji/&\ qt|Gr[ؖQnc6-sD &L:4*.a8+hZGeA8P1xMKrqDT¦qh?']DGGW|/n~z/tXr[+ufB3KkVXZR.Y}4S> eO?tYqFa1p8MݧȔN|qkIfmCCsA`єw4ȑ-CcI#ZdMM,]!6R(IM{Ci1fi g{{񙞚yMt{-qe"EcvT^9wbwػ3,U_n;O7r`wБDӉnu` skF!vJUVԖx2+,GKτ/3d4#ˀ՘9G{w-o9qc"H,A7z!t t-#}##bqյZ=_KwMa|MAPKyuVjwt-"YÔqӓ״lS0[)kh1z 06*!XŽ+S]o`,ap4-zCIٱivڝA$-z0C'mwa'N[=t @8wыg1ͽUr<#pHU}${DXJNSB錒Vyv0䵙-6T !9(BB]1Ye +pg<_~ +?gYr=. g 8uX5!HCmi+X>!÷j1Һ[o.0\'w*auxp\o-댺ŨYm#74VzP蠌 +@NXĭ Ysݲ4Ϟ lwFX$+@:o46[ Pia ZeBF[$C@<$P-D-H@y"d"Zo \rjSM>Ľ[ßȻc +okod_!{Xbxm_H}"mW0VJ[Ơc j)NmRy[(G3/`a7\ƪcJ))،QN;`BFkQ<&zTZZ4jפMX X(^,բfżʏuELkxujђA: ;"O#НpF-zᰉapSƝ-74@m F;"wbw/bfu``LQ"0->$[<(byQBPRD[U'"ZY͖y@(/gGMt0tΫmٶSկ# I0`;;c-H\כ08~$/ ̾7k}v\|胭w \wJ__%!% 4|ogn7OlʞҽϿr#Ք+YPPTPДk }GK(|+a@eKndbFdG@gϞ5dE4Ƶ@,AZs9UJF*7g^fYw$ +K>A[YWV>a&y\WDe3$ZoQIij,݄ZV s)nX*` Nhue2ƥo'`2X7ΌOY^:yhȱHM^0+ 2ԉZÕ3*v2#k1|X +6s՞Ke!Vic4)}K`3V7̲g_h*X*@쵨puR]Lo@P:ϖ8-)زI̹$S!P@>n,An B2ІD'{rQI1$6~&-B>% ~o.NRVE}tZmK E䆲Gc),#DvĢLf+kZ=.u8FbDm]Vj P_]y(z;zVxdV#C/} R;"*wg$lcվ NsKu`Wv& J'W{M7ח^=ҶRV +du +YO0U{%A3]B3KAYGU̸rj^3cλ`hq&H. \ yK 75{'QBM 7WVQv©똠S_.JwN:ǵ"$;G1t }L≥ˎe~ݨb ʤ6yfc tSzfIyS?m^@^k%5caVMg&h[UO*aD)~u*SRNcvY0.GOT&(a:LG#s4d}F(6/)$SX']7] lLs,4A6 1;= Z`xVyo2sHMoNb/s!t +O,AtIxBq!Wo->!VX'ˬk ۸bDXw*:[z§]ȍl䃮e!<<^= +.~_r6d~6̵!&ͳ.7D wQ{'DBG}MXdG8{I<%~~E%>I63.%Y~w0NOE˷p#9Z;k_!hk3iX2U++P%7t ',]s`I'TX&Yl1 ,v#@~pĴ LQ*%ВKIDל8(YOj }D6h숏uH -`7F;N}к̷-)gN[ [ +Io&P9od+{̭:]=n@ wz>9%k݁!n->?\ǛBOʽ9 (غL䁪ޘn*+n1n".;]z.~Tٝ߿c(?1D9jjAC`Q7lzBڐ?lnh?D31LXCdbxTzz/|k+|z?dv:Ï{}ʬfO pZd?;~;'O]TchBKzF#%'8+r&7V9BK{ f#%V;BK{ #%73o"ﱻ#Փ u[ 7J 3JqH4fK(JmU~<'b<{혮^!A$d' ಪPLtZMZ^2%Y>Kx 4(޺%Ie=E ټJOt~*6 ~8[rPhe*#_iLnU>Gy3K5l.!d\KoÙ4>9N1d;[#:C!e&=foC1ؔPx`쪵nmh7FY37c +,V&&ftma 򈄬da/Gw>H ?0tߙu.iĒ#zz=D)M)+m+GGc~ 41񀃐~{H\kGzpL !zٱ5LoߕrU)\O{}>| 7/#Ԟ}?6dwm9!YɫI+S|B)i,Z^ӽS µp>e=j(;:;&>xs[OTsO7rdj8〱`3,/ܠeNGHh Rg>OIJw=^ٝ5D췘NJ_ mܺD/IiZH$`[;6A\GT\_b`mS`m),tDdw[$Ti"fF}u9ҭKlˍ'En~ +o}h>>3 3p ~Eٔn`ry`u Ε1iΕa:(=p sTlљ|e!,~pvW06?^VVvwtwy$Pܚގhtk]tx|gV5yI==WACCvriEq|8.;|GTEAw:b̯ Sl9%  nKU,Y$h| + +JP,یUT{@?%`Pw?"5S-icN/[iMr?k|DcihHA8pVofA#`5& +$k0A()wҢhBCN{RoDYk%㭭U" l3kСS +2 )vZseVkDPQgyrZsNXXzw$fAR.53V2KRΛڞYx DҸH?b͏?bl-׸]?l}DE)LrE^ϰAcY@relpJ)Bi5WRȄkIQffYԭLm#Jݢ`(!vQ"%09CSwƜ۽n_ګP!3.Hu_#qwQ)5k=<\W9ahSz(uQ +9[CE -x8 p"v>z'%V"ܗ+P4]D6rG /b܇w' i&[%=M;.yTb/ E|,s Ԣp]d$`@H: gSq(;/,op] 'x"{G&C]FAi{"a h>lCx+ >Qn%.)uF0KHne8|a<{Iur2 MsbowOQ=9<>rur Nk\woF>C?6łی\a^ + +s7I|Cؓ&ޏA!٩6 ;wGA8qΓka(."Da`⌗]JF/A:.b׵ozu8v9xR0j8L7ɯA"` + CWnTljy*:ϞqFV)GY"M# 308{ +:8#U_>tYݚcxiB+xugGkz'ރh|hfޠч0 G=Ch $lwKq׭nɖ"{.$:1J`gUg$xFqa3b2ȅ~a.F*C9=c?$,}~N܆0b־TefHY(T 's0kX \|_(i^$h +t7?B(euĀ0B ]k ð* Kbd޼E5yDRʢ*9B^IyZ"1 KgeϿo.3A)>/kV^~ԛ)qwaUH_R5TZ aP.@t$iJbJ]Al$L[Hwĥa/]!RNM90007%5G:ܡj ;iȁɲscrzZ5%YFqT2RK$Q8IQ+W9j)3"k[l:*uR=c#Waq:QHMG]W| +-B_?<.tCfGA z&=7VoNZqZ{kl]Ij +0qgWx< EPZޟɄV\F:JPFSIJO+8.6V?GgAO{>RoD!o՗k͒t]6HcبjrL D̙E6WR"\˻xsniTJc֢P{~!>Pfma!Pfy`bEn'})Ȃ]' Zt`Fo' X H|Wԡk{q4#?V0qw0_֡Ut@ ++cu3rvwrH`;͕k +m>GГĂ̰;e8MuQZB :wFYD +{IM)2~2W-x!d/ʦ9T1gKӜ=5%9.{*=Mqn60MfEߘvjH1 +&Cd֓" +D|kҿN1 +, S5eP 2,zm6+#_Ī96 hb84c!&kهғ"k-y+^LS ЋxLj慏P9h.E%%+i|}%A9:3Q<>{@ `(lIl5Klͱ} YQ;LUh5_Tp (RZx5"!@hayZ: "gnossMaȦ%/`ZcUƟV)mKx{Z֥;pA橱m7DL܇?96"f|D +6-0 (|CWN@V~Ω;6u?9~:\|}8= }r;.+kT_xW 9[/7)1lqNrx +m.=S0Mowqfڸj Dł2 CA.CQu]ޤd{4Hwz +#`CҒFA.o3cL%L8MRWOb@!/4V?MH|۔ߺPG-gfzɈ\v*\x`QKmС %-ku==$ ZD+mSy $QojޱPKTvFxOSP.]Jov"1lׅ[HJIIzclءc$Zr4=T#\e^H CB١l5Hڧ} mdRXL^V-"7=e<\F^}_e-4Q̱mH :,XEG|jЇٷK Y8̧̊1n:9ľ;o?/u V,&ET,l!P $._\`L orS+qTh+V! +D$V?jgYT#|BAJ L2rJyk\S6nn'%b⿋GʭoEfB~ ey` ?Q;(+6o7@K{\,zU;֞F@7_^n 8Jwp[1bn#;!/"wbM!Kx17;͸n]dQV ΡN=W{{ezCc@J#QӁ|hSԡ!WIM-ZȽNy:]O¬\KI}ަ R6IW )^@3$f?YbifLǭ!Z-܃s.(PkXa>ͩ8i4v.k#&5 ̥@` |3x&r~d1(r*Ǔv/&IN8Z!yPC,> M">U.~Y 86_\_mkf*pՠ6;Q0 +B\EN',Fc~瑐i y ܝ^ĄѺ*~ o3CyjdGBmGr62-Zʼ@5vQd,TECVJw %aKʈv!aezNˣH]lJJ'"W5]bvb/A6bK=Pz9| !?L%x߽D%+##zS_ lbvu&kaaܱȬ* (x,$w H`K/,?9pdYd @iϹat=P=< w̵!e P!rDހ īĤ@ 4xYd?֨F|X`i MGͯƐc#/Lw*hN0GQHpE`=O~bb bfR|>pKrg vux"drf^:NObַvַChB QFHd;m4xnU`E &i /kIX +B +=H!$7@#9{l@N R 9ùeM 6,-̀ +, ^bx?  @$+ 'yk" @d?[ +pcv18\,T=Os\&-ndLY,}X~|{Tu4ǻO0dj:"ٳ=E#Ix;\+Y,NH`m| +LӴ3E-E `f)5BI %u>AE4= 0+wl2__SRq}:m϶ύ'aF,񺽦0:=0W݁ n]8,MFM"""!t/#2B @FV2 ͖dr{v6U& Yrz"TQ,e!_ol|"ES^ep=V&aF+ꔃL ii0% >E(h'^4Yr6fvAcN)B]}+h;΁{v^5YoJMJ2AKgUEm8l Բϴ>ilȿ%BWGk>܉m~&nD +d05:da#%J}aZ8ǁTYj&3fГ;FN%|+ E7P%Oc\*[7r9HS~2>i,p5A<ζi('%*v8*JfG=ac j~R蛞5ȝϚQ}A̩"cp7}2zUtC1v0k*TV` Ft\>ǨZNOZ!hgWȆ&$s72ÞѾq."]qzOjA4?ҊzQ|~aN^0Ӕ"5;<3TmWzTBGs A[٢Ix.sE>p} yO@yĜp +`b{(;C`uKuȝ"1!&4qỈoaf SF +qQw +,nӴ|~Ob&R٫:@#u +rb{Wڹu*zUJ]Ũ5+3\ݚ `\3 E`!qK擭Oz5[AC .sC%凒pQl $aǑ m`%GԐԐBMV [4RU-HE<гG3 kV6-^|[tx5О֜]2 ikkO>/9>~c㍇FH_ )>8؂ܡ/1-Z'AF?Uݧ!ֳّdgO9=ЁS9πmр87!E5Y9e`%S6[@/3 &2hXU"Wb^6IP)6S)hj* .X͐wρƝG^4hd"%7덏O4L3}7f"紊bFq)rkZWJKd @r4Onٷ9wVorH0&E %j81 G%C7'H]&]HM3(26w2O.;ӌ`70H dё0gKsdpSvwO +%wMj!cJ`._*r qXW@,qk7rQE N v 2(l xtў#"`t|(\n" -&VHa5r8hʪ3b tbڞ +kzq׆ݵSb'CN*icmZշtpߓ"޳Ԫ=0%)~q9ɇ9%W4 ;+(&,tZaH4umm)&^EQkUlyHUO5]^Q*Vwd800̒ + =0:Q3 +6klvMR nLwfU ^bvFt NSutI^<k@;^%ՇVJN֯6s;ߒ}.PTOu_~f< m<$!05*1LW͔*`x´ (oGg/JDBǟ`.hMXq !yzQ[ ?vsҩzRJiJLڕWJMW%~tuMBpUDj6CACNBd].׊w=N1#j#iJ P8ld.$vy8+alfGK'##KK31%͎fZ(S^חJخҶ=wّBLqݰ}?.k~ *^IJ+!VGr=S y{!3@A^!K psG^(!IIZ c28:s {'Eޓ :Dž!JSFݎ @-ݒW#+S d#0V;dݫ ЅuȤ [ntՒJ䓢nW8S#¼gDZR%t'S&#IDGChlg?[v%BceWmq !NsbYګPgDDRiEEaC6`TcG5R{Jү 3&JSJBdS+k4E~Y{+w©fB MbgyY+,( +1t[L"[^Qx2fP]qHXHI +4Zx@& /K_+eшXd;"GR|j$VA<+T n%¸yP91f7И!qEZok|~2/ AϥRQX=䚡GZq+ Mq-s/?Ե9=5vffsե\2VeB]3MSYNFTAs? ғ)RbFȨ{ы%R>)8N +jY8P>z7:.K0!*fx!. \4'Yysit>aqd(o߄myԹ$ǛT#ORhd{͂GrL 4[=|ǐ7Җ+J 66Eɛx1U@pzĘ +4PPDYo2 _dbh={HQPr <҂S %#SV.buΫ*%LR7՘e`i6g9ߺ'K+oL}ΙRQκph40r$ZfUO<v:=MۮfrO:<^NsS_ $3,Ag /qeۢʋ]JvP c0^9oB^ x]a_py]_c{c>AN?z9DteNIa5Sia4{1 ȷBbpt 3upֳЍWƠR3ʨM +L+IyJ;3ZH'b$,69C5QBq_v'< #Op#+KvE3VY2`KXYФ{f=7ꐦ ޸,Ad`45tI[dT;Af +coBQg4r I2亡xgYzZ{-}tA*.l mUV6pZ wN`\E |֘Њ̊J %.-*.by Q!>ڂw+ʗyV]z^O y{jЋ4s4C/̃i:hYSK!m>{|b4趦*׈ &&Daf߃݅qEVq ݡO #ԡwҨP^ێQ6m #T +[k Cڡ~QۑN5*i݊4?)6imYu;QC]#h$REVf]wC\SP48k.{HYAn3oKM+4{Y)v)"H;=LCtJS8)qU!E>{@}L˾LI`!c+?=R,0zP}/;+M\j-#%S&%|erG٧Kog-3OyH¸ 1pT@3qH_ VMS!h1 +YHJf)ݜ$s$+87#Ɛ7[CgM [50=>KQ#2 +}K}/#" +l%"ܫPc"494*FCr }@F/+eJC6q:gc|@]%젵 +}{I@(TG]/86AiȐ&+(illuE⧑lؤѩJ0mpu3ɠЭ,?$tb^!+X/{v3-Y=>ιy~@l/5䛝r DՖ_$ۼ{8ħ|Kyk+?OA=jb-+tXUXJ?y|)ӏ>C3NgSSS+-'rxE%?~UaSOw苟v1p%u:4vGP^ Vain_nXݼ>H€Czʘ^?Vv$ܴjt'~&oo՘DjU]q/uW_SZF|P}4g>l6#:.Jf*MO b'PŜ6yc)XcL8\ɒUy<{Er$Sw8$`mVk.1%Bu4Ѯ}\bn9rzekCkF@`ew)rÄMD$usn +FManǑ _"VÝNC>B!cScN!+߀ۍb'% ! +2U`rps,jMq/0>1w%[$H؎Im[m60w C)ŘCK bx ׺Fo5}m#Gr deN<۾S5XPdKUf &CZg J+9m>/F%EUK @[f0pGK9&7@DIB;V,i.=KY +70P+P9R <_-7̨:]v%O6ktG'9Ѧ+!U j4fJ +!UE=68I{7k!3)0[LeƱ /s]kNO>dY97xVڅ3Dz`ARB|KUeSz7D6 ֯˙)`g{p UgN_ۆM3sOb55\b"ߧQJV/ai?PT_;9T̼]AKWiP>A?vkoAqG(2I>&wzY-Q̫ahE\1tlEb F!Cp!1x@dEì4t4wķ$oŷփ/"y>gG/H\Bj <.);HYߐ >8@i:c_-d1τ竷);rKMyˆqKFՇi>..amreUR}wǬa71'SyKg?AtUՇAxE@| 7ao# !ݼ ]ye tǘ 1; mL߷G +yK~zz2+RݔV="Euz}z:Dit +kٷlB:&n9R%U#9uzn1%aJ&O+?rڒѷ@H9p!x®^VN$+ŷV.0_bO9UwT_w/:\}(夺6lF5%mvC:bwBpθ)u{2RCki_. `V4YJt٦C\WRe:v{ib&2b ;ݎzF\zVhq^X_J[4e,DpPHIrjzܬ]Y̛#b@n8lT(Ehok=f'Ŀ,kj?] )QTCC" ,*,$!"Y„hN4^ډ1yp³Ԋ@ v +V}6{~G}ns5}py׌GM@(UMFWn%8SJ@I2y |ŸT/ +`E%68 zDNu@qFf/0(AvrFMp a'5ȅr*M~P4B5^-W1(g C푂,dq [!OeLsD5JUNFY&]Nbܔٲ |ቔ +HK6c觊"Ӳt`͡T!T5aMs@XshZn1~nai n< g=#3?Ob̈́Q4pc6H2J(a$^\,|=E7sXc57@ňww *̜ӌj*7m +Y6uEl4_3ęZkyh4}J樑(!A[4{ Do&7i;5>79u y9 )6\?Op}V_=Nov"rGԱCW*8*U]M_|EOZCGCBdmȮC1 3łg7(QyFmtTh%i-R18B,,SH4SZӓ&`|f,tYC#6&o UwPmPn'֣(H8EuM0gH[EN1//if׊HAPI#|VTZ(Qm:>]jơIW-ՏqWhǷ&fY6^tCͿɸYzVQY΋x>B5n sVGFҚUXʥ3-~=ŲHe4N.( ҫR":od"7xa`l*'/B 궏 0˒Ka+my"[o@x̌d捂4;(|D4>b~>+)v#lp#[-8Oiv x vN#V$pup.-xaAܬj[D{r#3;K >Ӵ>~a:`AFYc#$POj>+m&h-iKdpk1wRWD3hMm8,5+{KvlX~Mu2ׅh0xAݿÎl?[l K WGk6gJ6]F%!GqZx]"eՐVߙD-3d1U1nQpd!(yF 6n {b1qLNWo#?y-=<2w>?6t>J\Q3Ph=ś6{sZ[wdoae/2?[ +Q +@od[g;hn_a]ٽrweoaeo'.>o}e$^[Dd% l^[I@@}Õ0ˡ勷c^,R\Éz2s2tJlXԧDձd~1X̦7D-!Ԛhl"R)ja\%AD Ge0d gيL3cD'AqπS 4Nu{TipJyrj7myLt;لb zҩw!ODiT&O[6i]9 t3&a0+v ,$SѹT{SlZ֌#~b˶hsmnSdmFK9} ⾒dj>#Nj`g&QM|&#ځפaCFmʒ/~j;C[+mi\c4쬸 Syc{ mwnGZ# i(g:ҨztX j U69nca +oL`lBRcyyn`J3fĐ"fQp(1cߨv 4$o/rKzn~ 'asR,̔UTH4g5-L(*L}&w1[K%P/1v +,Aoj'85gdzƈ%?ك6֕zZw\0jXTrd PJ1^m(gc1΢2M,A/:CY} ܔXQ"wÙ]Vua+oMM2p lU ֵ̌$oKb M9ǃ .ݭ-T r> ř},MJyŇvIgl`h́"n+SV60~*Jgvױ,Z2rz~7UB|5THT sd^?qQwn#n_ +?Z{0;\V piTNd%}j͋,Dn ?9ڱTvq;Nu{~,Ό)¹XճG'| +ؚKҗt^ɹ}{Er?[ 9I"C.IoF-`Hg;u~OL3&Y$ /ei)O[-#BSxH4ؿ.Z@<6l޾H.ɝr%֪#¾-^3ã_ ZXD`מk`׭](DŪ+.gP*CvonX|(=BD|kd@ Qwbwα䡒2T.Ԁ_,BڈkhbtkD,i~_ddxΥZJ20~ǡ2d8UOPVcC[7ɳ1h"[A`uh/9J#.'2!A{z*J8FNSٷO:dGi!]Z!QQv& +Ɠ)G]2~sZb?)XV P :w/@=p?T-*7'>dMis"'4 x^f_뀰O9+0V0ktBKO^_-irgKZ7/[rKڒH$!Wĭ*H[Idd`pȦ`_C;)d?0pf]f'nk>t Rg#$ NS):l$T L` +3=\ɉlH/׹q#^KuApM|SIs}\'4k0^ST +16ozeէ/ssLx]u R/FpȘglI+bEr HwQx[j[l-[n 7]f ʗhlsDV[Etq7ĵ}X,LLcD ΌzКt(n chq]L|8s[xFOgsGsvIMIU{bveO4V-~]7e&@3m:z1tF'[, >-dSE٫͆O|4i,>)V2VZԙ73z1rF;m.< +UU.Z'Ϥ zCceWY/Bǔ<{ Y{\D;#ZFgY|zc$Xp#sUyV Q*U*uح:4F?l9,ॷ%lg(2HKfL\@U##zobLϚ8"ճ`@c[;h]T?L<> 1f^Wm;jLy(!gygʠM}3,H!4=G{COL5'6\8 H=plZC iÅ0q /uNx Tm7rqLadQzo>f +ѵޣF}? WA$ayCJs附PPs=-b4%e<X8/Zϲ=Ub1<7#QBp<-a5 £fNί%xĀ,n  jNT$=6{5[5x2\h`/hbUM*' 3 Z&b"[BSb5/pηHtX'p}-Ut%aJ~R/Kw v_nqڔ6-^kDzwU6 +Uh\A2Q|=򁁇owdKQV0 +w|-@]i 5Mj[ @rI1 +~DfgJnZ8SAh hBiLb ~QAb Um:ihaYE5ԉI؉5))Bd?,ȜX=Eq\T C`ڼO\=G}- +f XE0:$Jw+Bp9#~t$յޝWs3c3{z|aq; ?ɵ_}6J]G>Mgۂ8|NEo;>k"UlrR?tM+أ+ME.(άTA\\/=“1C1NȪ5lUM5 +6w?Mhz>E^?CXDaxDix)8"<ށщ5ΈyFi)rRՓũE%H CHF2CHz e"$[uǰj_{DI~!%+!%u 1k%=!!!ΩkRG*C*LILCGDgfIJEgr$d@`HS LKZ:8C-9]R NEWΆӅ: +&1_֣._A4ԍkEIC9N++M #D).Ueh(9t:k [Vt]+|vH"EQlGkC6R&KGF),-<=]!Ni,PR8'J/14 !LϠ{@Efvi-OCrPX-&spVHka*K䡧Ύ.ͼ l򝚢VP[J\X}ENX;wgQC{\#(knH2ga7OR06uBuPm1@ 78kXr4\fN{*˦:R2fCf[ڦP:it1A3ϱ!9Bxz\~zlzήsٸQᘸ洠?7J쇩4wCEꊊ4ҙ!}>Eeyn K;9ȹ^ۏQtE˸dPr;k[Uf]R:s)B ])"qѼVYi^-ߍ:Xg+/Yx +"ʷ%[銨ILFi[C6ggk4V=ʲh(Sl;gH;v F4 p搥$I,uvezS5o {f~-2-F5؂9O9XUV'Ilq5s3aW! 7JS0 31~V"\NL'|i D2|T) 'tM6SHyV+*bnUZVsHY61kf:tqvWktbMwq`pe==V6UxQ\A7XĠ0WOT +#mlM88_,&&"E&~\<*fP{b{&1n{l'r=0IcIw/荤haq5jnGzZuc4#P^{O?uq<@p ,$]WA& aW/pA x^>WAbܥUYRx~x^dw*}mI~Cr_`zwߋq{9{{4/Jk#Zx5z"s~?^cɮ ,a+l|={PRR#}-ШCgVV_;ٙg7)2_3!UϹX8 BeÑ'Vf^U >C^[}4oa^daX7!8ABe +xiGu@(^ Kk"54[S"wG;[{bC:a'kVS=7L׷@w˲}l8.CqЯa.lv6ÄlvÆgHGp0o ڰiw%w([sRH$H#EuFhv*2"ube  uI%l*Ō#N4͂qf eby* ioeI$rAXDUWO [ke/EUL$ YcJP9B ţ B#N*h],5M%VWE%;9]N꩒Y*>[OAuIܨ X){$r2@iJ2sez%2*@@]frڰo>Y]5黫Zvt#3 o=XMS3Λzat&äzGIͣ-q{3:XD̽}mt#u&}P#27M?)P)krIUɄZVn DI0HT\hFSMu) ȜlrZ?O-&Nx{WJVggV_vQ$x];d)נPwbZ4kzWer UC#^/Fq6oS)F'`R)Z%>+@ 4'%#@Ki\M`d&]YJKriKKeaSUW5<\0Lq`@d S5L1AuR9 3%H%I%s:JS +جYʎT,s)9KIK77H晆\b[`{R9#aGS9l@rr).#Hj!]; <ݦdR'GGgVat,b@h_t}!t!.@hAփ\)Q.e*xLr-!,S[ 7wz'!ܗA\e J7 +0RHIP +cBZe0%+ԟO WmCpM% tqy?/ISw_{KiC g702i_+.FIvG0E@K7{p 2ی{SkVÐݤuX.yhڝ<(M}jBS (ODķD'Nc:CT;NvEgMBLs 3`V',37׭2muS׺-&(MfF|l9utV(z$= }m`_Y[pV|Ti\ԭȻˆTy.?ƨS([ym{ɍ)fz[0lcXdX.֍kӱUaIIq4L|)k;Pd*&\JV}{:ѷRdE ћa5bEaebi AݙZBk5Z~ewRƈl&Y^d}-dRʜ)Vt̋qLejK'0&P;^*%.ِaNQnʝ#]Me[$ w-M5;!Nª|;_Q[QtX 0c᜽Vsi0GŌkö3s;HvªLtsV+.x£76rd;!Z, tkc4e#U~~p $B1 #z+ @'~HA/7}.ɹaKdc +psrNsլU1g7([AE[JQ%hiZ%['d6vPj)vG0?B161A͵R9z͛,-9r9{9o=>_(b|3& :')!ˉce͠gm@2 IV .>aB\@MHb8$3m &-R.sc&@AZ$ "z*tZsRNLI\U-?ޥ"}Ws bqU5UqXfJw3 ݆0)f 'W!*8 }l 7v&),wDx:S 9S!&yS%2$QKOJBTUN~}"Idk +o,p+Yb=aDa(!)%.1g?1qF= Rh@n=^j_ [F\O4N=$_=f-ïp%=h/}j H{ C0\&=] +^|{nX̾n?|FFᨗ),V{K{6.Ka$d(8ޫ .e[fY)UoɎ7ZI5ǤbsbrYq(.%DC=Ms41Z9:F +rMX2fMaM>:ֽ(NuYD=.HBcj[.J/~ ͉.lJ28^ٺLЫ=.t:O TYU+º߁;yߖ>usv}MrUn ~2ǀ8"vX7lYA1jT,b%)#"|K:7~%{ ~}4D>[F vG2vFd!v۾h +Pm{ jۂSbGzgFA ?'1C@nd& t(|?g8O{8o{0D8G #'zheMmGfV?&,bѭ/ϻqj;}ؽTCyQFS,COg5=+/~D5TX :5 ^JkByPܨn%A X Poxuqօ%2Όmyy |倲E!OQPsu+>mzdDO8liwQrs8Ap!yM6gI cq]p KR) [^L:^~ЁCg=J F{3Mw!Mʯt8E36rqI.ty ^H]RMpzPdsSCJ?e7Aݳ:HʔcFșf'09'(0sIVE\k^rU洃ykZ 4y;|‘l@h(EWw#b`iHQ!9Me358F82/RZHIcCj#j K)R8LK[8'VY$qS귬ꊢ ;up"!2 t}5,ڕ_Q_ʷyk#4VkFf~ޒ/mVe?DwtN-;[eԮ;MEC-b;@Ӽ)S2y;Q K{QkG~ک+ e1zT 6+d`J'&g{:$lomIN;WDzi'[5x ix*aLzKM0mI!dtm,хh0=Yɐ:8l_]|5bizT|M`TvgIEёRQ|WAȸz} 8jlFK#= 8(dw_z`ʺ3 d4j!Y +$Є (Nܘ0w1OOԤZoZՄRY.B )ܺ}¿d#qN{^yI 9!tk51q`wټRGꁾz+ I ƣZE +mVOuĀ~9h +#c1=3ݘ=C|K3Mq3%ܗ$3~I$ݧĔ } 8#AT¬QqY֛YT|F;yf4%\#lvr;w^2]+ɑ>>y6teNa,Ds֥TE$DXj7NLRHv!JVS\Sxe.u) +Pl\eg8Qh:w7PxiZ"{_Dwf -NI>q ecgE>{L$cUtmy}fn6qGf 47++~'qy~f%_J˵^1Cp nLk9@3V,j <;HYcӮv=LW{Uۃ;Iu|8>L?<-+j% X/[ZlWZ%|DyM "Ҽ?>D>E^!D>(,9>H2F (yy(hf GBwD%N*>-^c(bNJ: @E k*I`YBqq0 C!CԪ؊$i,"CcbT=i"O?T,lo K݆hJf 9D,ԞL[ʞٕ UIQ!Q̡ڐhqbxlCx-};~tDP=R;' [jDuOt"6j +Z6(3l;I&;EDPohOKE0c?%BC1=Wsߗ~^W r|19X1G9 Dz ? %IC(( "2N=ud"l EDEa[o28pN"#,Y,Yt>0V99lXu*Yaz%>1S0bL|6gI #amOu1KcU1`EY^d2řa[zڒ61QX52YN]bWsgzR{mIssNI цҝs)G$H5I(A$.dnpG[(Q &Tw&qp_om 4'Dw.&VKeF2iS˴ fK͏(ܨdS#Q]}&\:*NeA>7JuVG0/y*7;e!3, qeck7CyTCv*ݴ;*}n_ṕn[|OHO6}9ߐ,`G=Exā漓Z -ٲݲ7l1f3%kV湛ӆ];YUaRU[Uӎ+WECCx5l]UzuxvUYZIk9EOٴZݒ| OjV;'[,TO.Dc snH3@I:cx{8P8$^Zd8q J֜{㧷ÇF4r*F v@0cƎ|lccG? +KҐ(b6*!6ch8 j 86qj*!9O;E@KB,],}FeW1yF`\h`|* DP)I٥}uCĶuY|uMDKZ"bZ$l +-y}"QgIؤF*J]W@7fiέLke[֠z,ÉSLm. 2EE Qxz#SR(DT^@CvЀ +Ӹ775iQRϫc=YK(R.4y}Ԝ9 ~i&n#p}XAa|)d/8 +SohB"h Hx F'іF][\}VaN{Bbݔ0?½08.|/k(9QQE=~r3aɳAց6S/[EQ;iľ{/Q{Ijcb/S+OaO7#>Lj*= iMD}D |e玈Ov3Km݊BC?х\I7a9j"-W tgU,Na=X?iC\yWT/*?JN3(ѮB EղmpIR8lbZG#vѽUNLvwIqwx"P,6%ԍCs #܃eGMEtǹي:YV +ycD ]ݴŜ; +*:} O_IBbK*q*~#[gqq-sD>:K<W&^?ؔṠF =t!F"le'8V < +Ktɞ.A^>HMyt1M2_rAa>5%t vX rll*Wz>񤴷 dT[ncQknuTFd]l;_k t @?/d#7^mO;rs#VF3 %NYc L=ZVxG=a3C|@hs#9ubesft#a{г'"lDR+y[wVHZ e4GEeݴ]_ApJ-dux+g䴓5hҸ$k5iVQv'|e,,)pNWtnGP<D FS+cȭ*n-!nyS | f# b ̐^Ӂ6tsښO$ OϽa@*L' ` Q:(9͓5DK{fZ42fJ8c:ԞR2j8m4vePh{13]Ylq~t+߄ !WB Wx[gHɺ~Bh4V b=Lg}Ƥn-YP^|hו(ߧa[2lesqǔ`C]_F_j*KvQ¸6w;I߆o`V]kQҪJ;_B^/.v= davS# \\ P A|Ge7Y| +e!G⼍suukRU?s^ D8H{ >P]CH9)KLU=$\!CC(e+JkC`0ɧ#ͩ;u,A [TElB)'}B!_n _҅q};;jǻ:_,~ +mF()h#D;+GU"شcaFs;le(;v?eyqL%. GJ;Dh3j̱b{wHH.bZGId:B"4!l2Dd:tJvo.gg2A$.^d.JQEoMl.v:&繆s]E.$̳Vu5 g~[DfTeU,3"qYrT93{puOEaU!FOkVFr6=Eg!"Wc*SMeKbRcUVpg"B?wp90;v0'*0^,Qj 3LtIk麒MR9۲9&J겪WgXKtUnRIXYn +ˁ$ڀo6Ye}I$A}y"-^g c\]9c"JB~m#`Z6,l-0i Q%Lycćf|,:B]YeR'T;MH>ja'G&{639L'j!;/HڮG]|Y>*Jt0?:6Zᡌ?J@vU!+RFKٱSF(>uQi(mKGv-MF}Xd2AkKӵgO&9@"Y ΣW +Տ.!oњ hVĝƱ.'<&ߋ_!:q;?r۟C2dA Tj[r䅅Xn B$SٱI'vaSŹ,LŸca"9RMu|v=vN9šʈ̇8#OtEv:@Hx$6;REAm+D4X| |ĸqn1.S›z󄐣t]EQL' ӮA[8ѡa6A":y9.m]"wB/=KJ>,.,rm􆶬A+(LYkqog"`xrN*/qc?m`CZ[A&R3@ra(!/a[EVJSz) 8ƮYp/nuʬS;\=+~`_'cbߥ~8W2Y+ZahZY8iwP"v#ŏx4f:E f _݊@+S+;yK`Qݢ_ +vf~OpIpV: H&s*rdS{)ytX`[OwHQw^1c 2-@,˲^1 7Hkm[VB5-lEm*:7p 'Fw` naep2e%o9BrNyMyf/B]ZTd1 B0˞2DyTn( >/rDu( WhWB b$ERSѠVSQP@5S\EU+3pnTMoYh0?)2c1JYpغRfĠ®GD"y$-z"qh=dDڵNSRA=L$4l+*)~r&iJ{5L~ +fzziE)QK3Q8G`]a|}PZۥQzgk|ihZH(IW7|4W Epv06ܹ[gOi%aJ QT´ÇB) l*?i.>-EٓaԎʴT8=٥EG.wOE)LD*%c#DN9!SGj+R)0&68[-cT%Ĕ$6ShԼ!KYLPVg"pIRiψt7{C&5fu2upuZ{9OoXVhU+Bj}.J!}Yz:NDEwmӵ52Q":*ÎBDMЇ9iQ+;Nr|cpVC:+A7ERo`z#ƚv^̻^7.jMtE^3Tl:UuAss"ЇSTB.ժtpndIwӖ8n%[}[hqXcض+>ݳZnf.~*V81rwL7P`>hu<&ũ0LG%;"FHgd?Y3"O8|g C :g^3H=mN^ +TnG}XDB[/ޚ7mrݼj3ɵ~:mX91XQw^iap̫F #r+q;p:>STuGl@21@R?5о*`(` +9+`Σ$-7A8H>ˀWʹj珈[32Q|+/Kf$( ~`|{~Bi6ef://1ef; +P0tq1uki)HQЪPCQPH `c7CbVRԶKUKOn77Ů9'{oކw^A >Y4,BlYh{2 +uBZ"d\X%9 pA'(,=(fv`qA~N#P{:]UJw>,=)c-)/*i7yfsR'DruڬջtCOx< ;I[SД$áV5uV%r +Y< -X"Oq˴Q117-<\|2Hbzɝf%i4&0md9Kahy135w'K%(؋̃]XLZaYB /q-OJ) +4t7tZ`djRvni&[#l5|D69wu#:[ؗr +k,v7 Z>o3^ze?6!g|/Ј $l89^E1N}ppK#FɅcׁ"D*8V܇Kc{Z+'Pf5#6X)*:D^5Я3{,{ؐ1{iC$PoA(^U8sֳtfF^h^}>jAo<&h86$eKr=IL盟nS +FDhsy=@ZzUQ5!oSRHg9˪JPHNve~ϣ\w4|#U6_Y +;A&v4M+^X*R!%LAn RM{Ծ)D w%$ue)cʊM$>;v*:jp..z[ K6z褺.Qo9̲Uŷ("C=SeS{PE:WMx.*<]hկ>+?Uz4F?e~m?;WB=/!0no~ZoBz^~3D,(8Grĺ-K3L4@;Y_7[Yq(be +ۓQt22CO Dkؼʹu65B3rԠ$_|ˣ[g^_羱>cll6W -dpٝiS|~eI`Ay6|.F}F=kG:uCNrwAb!dY +.Y_?ѯoNN'`28(eHS '=Lf|3|[t01!1Ҧ10OA2L *`> 3a-Y![n̎D!;xEoyb6O8}q哮.fWDySPmjK*@YIv\ԣ!_JE|4`(rJ{ٯМwy 1f0=¤_iߜkP5[H2i #L$E@ bLـeΖ M, n;/P%uݫϑL 5WU|ܸTi|oE {:30y2qM0D+k3/vGt>* +(P>~` Bh8 rA!D0j=; +"tAz*ړ&Zy(%crǍ +ϔ~bfyHKZP֮i(KTW8G pKL¸YaΘ#G9*əH &9IBIb TpvRT+ʪl,ƜP GeL$(*7CɄOFr"w69iEbIщ&ra;5νQR1J$xٔD.lUg.I05ɭgHQJ̤'8S2X`{KA du6]Ӗcjn_T v7sd55usa"r 9]D7*ѺeȧA}=M"=,45$ʱQx?;(@DHŋ)f'O1lGL#Ek qwGT x%鎇Т"' ߤ?IC+,K͸E s5\m +/l_nP0;U*[渦'=- %%+5Ƥ%4ҷכ] +If|3]W:~_LJF9 2=]h)FRaoVlmPJKW2ՕwdF7 J"QDۤUZaN5Xm1j.z. porEZ"9,LOg6]1Mx[<9>S=s#*5X켶{Td{9]I\ţ +fY1 P&`Y +Dh;(rLw` +b#7a]vHCpf畦2(ԥgDo䮯:*5D\>>kR.Zh=?I X ?:Aq[]qv>IxTQ,~g̒G^tl-wa>x<״T//|4T85 M4e%ӆ;vۓٝ~ri=SrFtH4u`z`3d:n9gyC%0Hew'`喣¾lX^<ΉjLB]Vgh,(>S[T:Đj[,`[A|ِ 3ZE:Zw_Cm9jFI7;Om,P[R7D5Mn㑼U"1vljXy8.k +}W}(.a[+]AqAP%A: K&@_ үIϠ^>PQ?!<`'d(Y$m ]65 S456u`¿2GPc[kW#9 "R+YH.(p^%8hK'(h}A,X`iZpq`Dns6忁97f%TҌN2{:^g{x*L)Q鶏G>!g}ޚ0.>9Q 1+H)}z+=r5Q|TLpBJ)޾\Q|cQ}(ATzK +Aw8)AvZI7`&$aؖ1,CaCx{ 3&[΢.YNh͑TA%AWR Es}jc#uK+SL\Q';m/Ǭ14^^𥹊Ì0xKίL/0Jkd +eχ޼j"mO#z y8dRwo-E`4/ؖfaV`,$3$}+=˜1`OPPm`1^8R;8^LGOid_:%>'M]NP* m-$p<[ɖdG 5*V̮y* ڔ7P[ZDD!l.>Fwlr] zGLmŚը&6i}7'hL5ypEDEGꄑXZa&jLU? - 01*Ywm Fn;P9gu(6cZ1 T #5 $0ΜzxzpxݳUfS0u0{^̽;/x@|fg}!{V |7NƒtY*袜o~mo1{(e> 2c5y5zMs(QrI3@iV*@z}Bc1.ډ/L89*5в% 5d%-vlc06Jʧ+P'j["9ThiQhsf<-+AiF5b-gMՇ|pyqS)Z}^r A)pظ^0Yv|j+hT *ޡ{ M%aӱM<0ZJc0* ?6)F%ʸ t|mGcuLlՑ챗Pcdz #R7IEezMf~VVΫQ:]hޮ&tjNi@3iE%<&/dMsZӲ" ^]nd]ޭc9D9xx˝] yr?"0>0 l|gTfFcn1bi&$P/uu]+4fYJ(X6m-EzZmW4 >+ϼO_X, +uñ[ SWʲp1 .XSX8u&SNuA i1WmPj_uRy=*cTsڥd뎞([hu=-6^1GYwWO=[RiRNa?mұhsMΚ4(Xg$sdo(|?qh "_Rmrʲf1\K>D\bcAVwfQ0)FcZWtCt[4zwPs?ҕ*6N*jҰ\ޙLI&΁Alva$I"$5%τ䚚 tDBӫiYdTMzz QMypήqv%8crf##A0sDVzуAr +H4K+!7:/* VC"c[90z<"Qn8(HYzhj23LLNSDd)*W?mL͆ZWG^Ϥ+_)vw!\%B'-x%$pXU_µHxnq(:l#WB7]$Nlo:9;C: CHxzBL;? \ e!lIj%ڣ1y/j%=05u8xkm:̣RzLuސFC#ُI|@|z kB}$'T0@rRE^*nVsdsHjd L+Y+1\?ip.!NUKSaՑzX).zM+4EZmN; +9LW +eݩ50S^KE*\SH1WQ"Ǵln$ݧZ}Gnmj\!W5G(oG +mH3ODSع (yJcdͪR_9O(O$i,bS#{v܀{֐]Eㅓ Ȓ'|?AoJdƣqWNcYǐK8oK SBϕ<B  tsDm GZ!ҶU^vMT@kp {-}O98&G1El3W֠!2-0QkOl(/>h}Pz{>3=1wlrށIz-zR򻎠vjȯZltfI7 9ZaPܸEyCW11k2I7aOtr~/&$Jv&47ۢ遽Ob@z3ށ,WM"G&F +A\R35菪T_T0ؖ,RA PbbWSoID~߉̏nw[Jn/D@0;[P~:á[cg:O ۽+||X@ޭ=BO;7C@S +!h|rpG hoWlp)҈r,#S^^N7,Vc=fxےI";|LA2vADǬo=DyCzУDNK.A3'Bh'r4$IيiIKg&Wѽ:_Lr$pqAOx0n d mSzxbŷGx965)t ;3\-Yddl 0"ɛaHoy {*R$+Ç/Z:Z<}Xctu%ÔJ 5&7+"+ɇ.@DYANż`2jL &iٿ+"I)!w{;[OkZHwWlAkʾbrfr &U+x{YT6άN6Ԟra +ėc5,T7|f2 f4KK !3d8؝B5f0 +Y"UbUf:-,,#'Q,HP}#2ɫ)yQ,+*PqDЬaeBE;<"IVE'ʬHP!d63`K޻i]킈, 45 k6;5Q*`ǩ hrdmxKV ++f1b]u39CYt>IE٫XC[yHR7TIK 2CMۦ?ya`볏2,VLFqFpβU#VwbfĬ&!%crdL%_>D۳ι24OْN#Cpާ[66:`5!k]%D+!Si-K,f[ZWAXwE7Ҵ8 H򤲌#KKgr2 YQfW #}}3fB)16WWw1lP[IץBV0 p1WA-[io |UO S +Om9^Mįu7%qYXMh3μ,\`ߎH΀fC4gSCήSĠ֒A \s0xLY6&&i%C,=V0$W/^YnOڽNܥ +HRnM#.j1tOI}Q2?Bѱ(U=مg6f%:)omn/-dɛ'Xv@^d `  {ח JG(ؼӑ7p(;٤M7%ϧ9ϢtDl-)K̢ +W`:S +ksE!-JIG^3uVX:Fa:, =6s3<@ 뎮1U^SL!970)f{b RDFQu|7MMUv9E=_% +REm1 ='gDf̀Yy' '!}3/쁠~D?$D~G7lZ~O7;Cmv1 Mus'uzh El.鍗胁_ݎu%*RXyepAHD*)ʚV#o[P{|ț*GtA~J4[%xɡNҒTл5ZMq&loVo4):7.\PGy-?h'5JXy9('#"ĎJNEb+RYI=,,` L󆌨4vR5[IL;up.|2P#F>UUi\MŖۖO,QQzQ0mzYKɺ7}-1/.ayYaQSxCvbMs`_3$NӬ@'G/(iԨ b~diʌAw|Q]l_kٱWPkWI9¿"P 8A@sȚ-m/n{)JA?u'ds_g-?z~Ou5ŴgLNvNZucā15$"!׃GŃct1(< AdhH#P=f:u(1p wL!uŏ;/^zh*Cn3DCr4PDCv5dw5C| * wZnUaìJ̒SͲH>P ܠ ZPI:}KTknjc݅"h\gBD7ZO_٬Te-T Fcαl(58 Rz%ܮ K$`Y@g2yWD,) \?)lCM IƩ[mZ7 A90ꓦ[&l\f(2 ̹vKaFC2NxKNnz{*kca̓]v:VN҂RkSxid=R`tSxnXuiN3\@7š1.X7oآ.- \W2owmV'G=gQe. ;rبSl%hEHPοl*Fht$nYi]QOAo;k_z$^o%'a6Fh->)0[^ {Yk[z E_y!)(/fUX7@< U?h}P!h+2c6˷(? +7áSPZhCb,O dZm{ƓRjz`u>ivy[.>NT~'l4͂]\g>EB@t$|/Y[ї%X=)}+]R/tML{A'{z%3uC6g +V>u@a(Wxrj(>{1/ĄO~кؼa;$@=$ =Dij@v7xa!(n=B/bWvݻ"ųnlRUF#U'2]5,tÞF'ƕ14YIj0 +g,sܖVw t4{ Z[AJb{04࿂RPO'n-㐠FĔxZoQd!aXWj"w(5-!?9BP՘˱GL{HfV,@-k7[j^s[q\w/hXgƮ:QXPCi),qIPywDlbm;5,M 6R P3S[2s-7Af1+f4x]VR.[sVjSsS@c2y YwʡpQL Iݤmskr5¦?D9Y КHF n:@K]4fck.\L' \dw.]jG3؜f_l'l` t!ëx_AXU˵ ͺ%_  $]  }<amZV&vaٌMNpt0ߙ} 6x*!\XfY)~xdwguxF캅T? JkMf5QËֿNTq?V p@м@ᖙFmCXyL1LLnJ.}ͯs Lq *M[ 9 k1> f0>F`m`ɔrlٕy]$~{]y/`a.=x +j{lcxѲf\L9_bx)R!Qu;HK][\q'r=Tsw&)M4]l8P\dO!3-Lnb;(1ΞZ$OR٣&%_v "uA~fn<ʮ[@>55y“cU()q\++(,3 +Y{o^꼳ScwS̷ssPsךLRT푋^\5Obq<;^X߰{OWzŒ`};"guXYpy'IP)CsSw <]}P=LQMQRU{OmSo-YW6VQtiXվS 6}em̥J)u&ȫ.tA\NZm=K! `hs]Y,<>2 +OGb*R5"y޼A*_d ?3#xj5ͷfΪ\ OxX -_Ƚ aiyH 6tc(0`+(#=Zk`ŵ X-1 +3: ˕:Dny[Y@4Z]-tQZdG@~2loG9D +A(B: LtF@UP ((jdt)3K,,ʾ)^FۼuMNJAAU("+咆4XR!Gs%K p!]8lXh +;d\@۵Eh>.7uDf_ aն# N؛|Pc@ >p Lg7Ē-AD?yҶϬ~ J"$X~ۗ"x :B~{`n z+(AWg0}ԽpX9AJ9';oruW7 '`I9T{8ڄCj 4x\*JhG_<Q^^ӿY/gf0l_OqS:/NUtGC.}bs( mHa[_W1B ԔUU6ȗ\*+5Njf +!cY/<}ҖgE +~r~$msf(&,'+l3ʈ6 F ʡ޿XwʋXC؋"o@#O*gQ:uy:|% 0fK[fNH*K]nJh,QwyUzc錳v=?[dV*mZF,b"ۨ :- +] |{eh&'&lnDos("`: |qk!GC7mgU& g939{0QNҠ.!E O)!4/?>= Qi'A>MJҔfk&7:U9$'LqܠUR1<@Vr/RbaIfoxbq_@j1F F!"Y-x&bPt=LA@-u:]׵]eGU DA!9@n0TAuNTyZ'~ʍrj9t9.88v8<ň^]թ\iBf}ש6_)7-X{'Ra{Tx62/]nk:E_+Y`YQgf-$^.hW}d:YԘgY048jBiBa1Zh*fknۼ2[CLm \aPY5[㼥xa{L|AlKG6b2N[2ɚM5MAi:Ԧ7it&mHZDsU]T~aw?`B,VB,}{`Q6Gi[LnCAzۙ"w@%חmd]0T+N\Ca#oDjy ~ PGGTtӱ^i17*r搘I>& *C/0$֌£)⢋؉eBB9ۇ",e$1iˠb[P\鍵Kj?BҚ9s} 5e k6+2͠^ωtIk-qUۍ`zF}Js< +l:jť6@QJ~ Mu[͡;aaNѱ..]>NdoaJ2}JX7v F>}1#)`c^,x{[+ر"kJ"ǘsI0%S%K lIV@9fnG#peq[d I~0cNU?8@7\v1V &'V!B 'ij"a%u1_g^j C[FLg>w"󚫧0 0s͑I?ΩFA c)lAr$>#)$ښ+F.E u)#x=TNjx22{=#լkjllk D +ZhQ_;]oLU>ow?yxOxo'fA?IT_~}2R2B(8&P8Mx((厎|!!{~[Ljr)XIӆm۶m۶m۶m۶mڋvuUU1Gʜy'c`MWE=p`G `fxGڇ`DQ1R)G;`%9GMFK1e1&<`Iz=wGOmn1֊퍼{ ¡{8jO1Nsx; +&Zv-dxvLfn*7i̢ ?ȥeb7QUV Ps55Ov5h;i1K +-ӄvBf}t-^8t &Ϋd^4d`Uhv&ۮ,u`Q3j Ը(dz ";lerqoaOܒL[#2L 7:(gv_/H&1HKIZްu4KImiG )f _V1~C0`+%y +4a3GB43؆<'oօLv-9tX嶫4gaX7^,/ZD3jBsDi2Z*$qŐX^6C;l$V+ XHܜleEBKQYcKA;P1ΑKp`K.{_}]BAFҟkc`X"W.NGG6R4ň}AI>T^PMN挡Z E +;dt.S%|RPC 4)Ar/=^-ʥ虪-*DӖ!DNGN[ RFo+1:" QY/G;K_pe{D@U7E4E\JH]uϺ6M(\F\+,sd[w(S?w5QMJ2g);Rd6C2bot S~,ӁE n¸sS-#y~N$QD'/mK khA`a>aց}T Tȓ5XAk8Nr\LBi*3;w-L[KA]-p RyIU(u?OWs!\lr{[ T+o+֊5E 5jgC &+{0;CpJX[ma/7?MH>c^(cH%2#H%;:9s;`xN +.`tot/@j +uij A[<fc,#u,H*pjj.$u| pRL~ +ͬYct ./uEeϑ96mԵPFxl~Nΰ$W?+:Czurt;Cfǰu- HXfl7]h^W̱=i\ >>>>=ұNj +n87̰TcĮImZ/n)9h1/n[ s-Q.ecd_#TR1!#h|ܦGB]#z (;FH%4ᢈJ u wj'%=:C_ Ne=B k ŷy~}XJ;"2P*Q ƨ݅[<xa&VKEG"'M"̯/?o+ש`,iks@|_ ) E=^uo$2eЍ H^qDI_n"HF{DdXAv"2>=6+io +pKOz7E\{ƴP %@t3dM$A Ӂ$,1UhEƭ.>Dέb# +f"ck+`DC^d,;PvZi jr!*z,#Ee<-Ns2*5mihqłڥE5q,5-" :HbED򨖕}D~J +[Kkk +v:c +Y +Nb@)ŕH.\֑,"Pb,s&3ZhU;f~e(~'&F3w +fJpyAҽ-n>W@(ޡKS4ٟZ#wƒsw:k g L뿡2j_5_ҦO}VA~?sFRL7y*sĚJT#Ka_<ʈ;^9y68[v,؝ +w$e+Ɋ[3E0e璇NߩKɕsw;E+uw^+RnڰÂ*z0r#;jh:wb-Rt(\(*i k@<.R>_ :Lo$:>tb֘QA97"kˎbws c\iqEB#ʥFP +=%_,Mb&X[7^ĵ1ƌ3 $Sm&Vwlk\̼dR>3Œq# l^ =,HւK- +$z@~€ +Q83!B0pr2[D[p,ŎK1~|HTx=`7(8"-P~ˁ4P#-<<y "(Mz#pURr\wB =+1'dZ)d*uvF@z@ճmzRQrUxwtUt~&)?aen^B;!NU֯V~q#Byv![30n=ANV K݁DH!$(|T+kP` Zj S=4\X^51}ΏIjjM7ڻTtW&A҈ҒKY>å?n+-Gr+,1iCĶ;LC}bhz464`1@uXN[gR- "OMjs6T8ûEyӮ-Y.WCY.P`KȐ C1͢{,~ۨ=-]K7"^x.^rW.5B|=I$,4ހaX"Wq&/ɃEĜb^ڻ ޿k :BK|ov#zBT#Fe6Y=bɥ~x0sN%pWzAxІ;> Mp"`* |WÀS""4 ̘ YJ+Lٚc'%PCo‚3\ +DDvBeNkC:(5B.y:oUYVG[a`R슖GIS$3)m&GJW* +Pbͪ#C>?U)Կ4HA mLg`%h ҇N-gH #5?J?P~YxNnJv&V*Z4qI׸7VkF!G)ּft"ӓD`͵WZf0),HOuAKI*obP-.n;L>]WұET[ZM㗉0ultn-t*U>1ji4mqlC=L6C%Kg_QaΓw:rT% +ѫBjd;ý*BBkbc.Q!%Ժ5W:s2]8 /[:HpZ ig7Zj]"L3L_c_c.EGIJ#cl-uj +jgAYҜ' 7t._l_t1_6+9K{AF._c g22-$r @)CV/j\A>Z?ܫ,BQL;3&/4?Izt &=['taY18x +Tu\#0ͬE2s28}ePfzg7U.`MtPLe: +%lfDڄP_ltE1ۍ$Ϫʸh;\ Q͑Vcj6~H]G@{n|艺.HnGg*X=90Ea62Fh>o?$EU7ueuK ᷖi#d}Dؖϒ>R!1u8Nx_|5`ɹ.v9>T=& w'?lceL̵O7`L]_b!˿ma(/7;i!c@7`/[x)[QN=[pXHՂ+sa:ofNw;،ěCty_`j{{#2nr=av[h cX);iu-aA)TԩȈZ\[ۚNHB6\OLM Qtwy `zח7oB55T|](ܹ:T՟YӑY>cE3a|QNTg5칸)qD(\q"u6F2n]0 rCSSS2&H髵F9o J_s,E?H )HTN0S`R^8ͦ"C¬Kرd'ZT]vLeM|C]>AKJ%Nk@5&fJ)ʘTi"aݤ7]! TXhSeLՉ9*lC-PS8`gۙ +VBs70.`dXQvvmD%ۈ@ƺ4ZO|3WP8GLBMy$ 琯/3(W%}E] +ՖU@3P} ÈQbKW.jI9wP5ỉ4 uS*me}'ޥHL975_Tk2?[=$ㅯ%Dp9|퍩Wo}uo ]"nJ:*\2 W@rDt{H@~;qfM yVv'n` <\ {8z*גBk4mK@.`j(3f L+zM;#TYEHVNi +6-UOLgSSV؛m,o```o r)»&ƻi iu槦8Vﹿ*!\Et|"/_ wxCg1d&j4Xdak 9\VdLupD7&_sc{F(kf ^&c$k Yωr@chnሿ>޸E+첅:,Y1pon h\as̏9hOQIpԂ:ktL9An-u|,!eb)K !90s6ؿ%/! %gGlb冤#e*;% /ŖN!oޒdaLH()Qm~UqRq'plǎyLZLg\{y=f?om{+8X"O9DxhG;c&ok/-M9N٭c=bɝرQb8a-I_=ly_`ߓ Pr\hu32D09Z"/2K5ed(: e撊-##5h>b2GNCNI.(F-9TAgX @ FY"痆nE7zmmg# .puZ06| 8 'MjRMHf1J|`:s[j0eG[2.z6&;i.>o_ nWy)]#n!^I)I]=L<@hb%]׈"zۄl0-)9MJ&h5jepvXtJM͵fh8O "Tj{4+i[^[dD)fˉM1#tWi$9G4 9{4 DgFQJWDW ~HE{z'QjFPKe>L$vGR`b"4%+3޾bcuSR2PgC#O*aa; ҿ%U@]ZLgP0-;[rpݓAP,ƨS ~3ITpʑ#5v:jcy:jۓQV+RoU͂3"X +gf8SE7,oJ!&D+燕:ɾNb 4m _'s&m,y5-ӌRWaS + +~V_dS5&~aTO\b&Jʖ͙-l c7 [c˒B25̋'R]EU\e;Y1 7z>xP61k Aݲvln6a1<áqfjuiVrؚϻ+@kkrKGW-o&b]z^7)C"_iv{`Kvq]-+!朋tל;znG~c +v>&vXP[di߄.jJ-:*~Ny qﳜxMuR1#{|g'$-2L2&!Myf1 ~TSw;*%wT|oVg휑FfC'mpAWCZC%=rrG"L^ lk`NðHHd٢Y*v.tBDjimx]~};Mlؑs~p*jx%3h1? =\f<:[KqĘr6O".0XF-: +S{7'Nxz1X_2(m7f5f6f7jg^'nq>F"ڭFLmV]Fg'Hsޚmy;LJ$")}2D<EMX[x C gum-TvÞ )tv^9D݃.61+> 8Nc񃟁pˌŀlѮI 6Hm+$N!;t&֪d,iAl +E@GmU!ఁ̚JN3#k} Ҹ4\/:HypK +GۓJGk0#ƣ E$]9.Cͳs'dلeB vsM~;6Mev`T,|ոĻ~DY:*>["M4wEtuD۩!ނnj̃Ho0_vY&ZYPʛB2P TmS1ڒ@+u %r<鬟n\6Vv#h"<[(v#*"x3‹k( өHUɑa c-.5f͢8xh Z-»IwD1ԻV@~DG *: )?P}ioYNqlBA#1SLʣ"fYb,}~4\T8 +t *MOY\6+yaf9 ~`D'z1XC034.J);'cl LhXǬ+e`3[t`n>*i.5$C#[*ܧj ~Ms & 'ک , z@5 J1xK 9 zl"Oי$oG*-iǪPNRQ4P+)t*=K6%|7o +`CcY0~J[XmƯl-9Tqi bi!5LQH,ZJPMӱi4ڐ:^DGt[uIx_ܳw\M +ZKjEWW"A9fv[`>r ã +G#`4.g$vEꛥT7_Xj0Sȱ2AmCڪ_` dn(dn am``t6?A ~fs\bz%L<^7Z̺#b}[3a \4`e eLnL4?9t;wx~n zMa-)IH΀DsV$j9ɵNɰvdҬ0sM297H;8RMHebRhmR7@,hP8]1ό> ? >[ k/ڮ\lk9[ZZ?t.-mpБQO_'a,IsnlܿGY\wM 8zOfgP %ͱ~ L]V .cȧ@P7sO%Of[٪/5"mGd;y0qȥ>H5ud?wufN5_ l׋E $5 Xh +ӂ[?hd$]>"HC+ZA1Z&_fxgaDBbs8"x dYfbge7#Z)筻yO7ўM|qAp5nP6ɞoj + _`8H7"m| /U>&)ap {;H 2NꞂ7f>|oanq?~ h@h1L2m셇ׅ !I_P[.""l%ѫ%)lf:1VI@ Met9ؚ;+BlJܿ2`QA6\,c$eҺW܎YJpxH JK"/БzrzXArY1¥XҰ__8κ -%gD:aHmK,BB?Z; +C[pdPJpV+C@@ӱ<]~#& ڔ练\?sRhZjsOIQVXUOHs.0߁+9#q!1cbJ@4:c3=_>L_FQ),GS.^Fuh+wGAdjT$T&N3/I CX~ɅMG.&tw,Uδ>[# _t9n-43v`H Cv`˒ClUzʔȨr,B"kA ]W(AX}ԗÙBFsbjU&(uL󗿨EV5[^>u({s\#jԥ cB\3ůQI_^E;rpHGpK2ݑbkYce9GTemKRY)ȞP& uuJ ux,TjLDFBD*ZYϾe%{4@"۞IJ2x/ Z8z(ۉ9x_L0|^ IO;:SAѺeX̸"4T +.fY ܀ +x;N<1 nq!` + lwf>;s @%#sOA! +{gɉóTF$qs)1 [dox{I+[{kGM}MTG pM~:!i`MFC`$1NFKOFK!i:Th { iJ)HeZ!Q\pN[6uOCzp֍=i`om*&Ķ̳i0;.vg-{=Wb{c ";J/f_TY @1d hGIuokVbzr\Y뱍_޽> +x=_13.ō4&eS ˘ʠxӅj)H-ˋ0fX=3W-Ϯ_m;<= g=`]U?|Q9hv.+#om[<:wS? k- |1G_GcSy?FН |t:ͦ^}~&_Aǵk%^';2Ù'zNv}Eh\Qx6 =_#d GKO%AάS UR%Y=< z?g +zOI-Y<:RA;4dE#8@҂CTyB7~BZ BTۥ a#! nQRܵd8q{@*ož]G-j ҧ$T" p_,.򂻷?ɓ)# _:( Vz7 Q Y }S,-3끞'ڽpy/JYq54"?)EJK!K2 +\i80 CR#׍gx׋[ 6Kea4ԅ_ ,a<q )I3O@gtפ +F:#lK\Uryb/nf^y/s r^oi +hntiWշ4ъVQYi;4 jY9'RzRMgiurڇ,ItY|6b*nlk,mD +6*/Ob*i9)y{ L3?i]?) #bAqG3e+'$ҭdT(E0w~ibDUEH Vq!S{CPΤ@Kh"Sh/8f AQݮ\'߳ܧ->/:pz` u}8͆1LmyfdB@CrBmt$ps8 \x!xDx(D1jH"G ^Ti#PLЎK4)BR15-7A @r{C+;j448Z*qX ;c-^<I*3&w*DgKkY7_y_,(SmT vIB{m +Oڰ +~ScgUsfKf hp)gBhkvI퇌VH4_qbr0\|"o ۄ#S}*䬈 + +; +Q-Qy Bk}t30Tzia4D*~-i命nbj]XŒF;鉱~ +6%C5B*"7uXxujDyf#Pc +oSe p`:qt$k"u uٿ,t +a?Ϯgb`B5:])oh(7hzU)T E"U2 clcY8Yq +QĬ +Bi,P;n_( ١j#5HspȉvL?.WEEO 0f*eI'VgÏ?Lv݌WL;wқ6闖}.ؑn !3+;>RG8F)xCWѦ`Pو%И5?ͱt_dzupX*T^dXІ t;:{wAلq#S $@g]e8Z/!"P6h|hXn׎ـlu777tCgT +at@sv5u. f3.8 +%gzn^:/ Ā&Q=f=:FMp #wH9̄r 3+%'ynD(7: ;8;XN]iP q68hыp_[(aLR(<H6?G!d9CpQoRRبǶd\)gCDT&0r1C.+x`f.Mf +G˘OB3H݊ds|ͩ(z#lY~!K%y-;Oinl岙9B!R8!fAX%w0ʜ6UlmUfk&t"`R~6β黭[uec!`K؅L0 t>&l: 0w$<aވK;vUȌ_9وVrHu/3SW@iU:WQ*FLQ<'i^P1,oEo7Z>W@Sr`WZjI`kiGDne6>2Qi8YT +E7ӧ{18IFbq%#"r@ɳ&* Wٶ0IO/xH!w4,';,/rfN+;ULM(2>DPv~V.|5mw::ĕԬήGSVY?*F-W5[2YxZ3IT#5!bdB5^#c0n"2CL17@ + RqK2 >7+M4V,.UWSNC#'+!;KL=0L+m 3=PvfCOȋ=E_EMu@d 㟰En²6%t.pҺo$%)\eStUm*rIJ𼢬$sqƌϚ&bʇ[C# )bO$6 G1s1E.*#%A!#4 +#|R +&j  B j4ݠ ф9.o? l=΢%@]~ƭY0gca !8"Dd0i $"TJUJ\V`#Wh.xE;h6z#w*(s@vg f']ڍdNڴYlze 5bxa9!٘ +_5mRCOJCWHw~0JJHVkbM14ڡ]ݿx35>5V},n137ëա +!Nak2&Rgnq/"CZlSio5bUmx®v;]! +3`ܴ1 R,ZiƐ`Ɏ݀wf@C2^ h;loinKDzߒnFt0x\6 }H6egje&EεMO;@9|ϔ}[J{7̰E-zWYu +ݺ|) s/R5*=l%s5|\^O1*]$47b'Z&]5;RZt/{XzB/}`ӆS dPD?d0pBKys8pAI*H\b~{U۔@,q~\ߺP~ڠ}Ijsx#rکqśYTZatjFkz&H50!9J,tq7Wv;)TWzD6 &9Fc>H אl>hG^P y27EWVY lkj惩ph +g#^*B$ gm!lSUTbFV`վ1'o 2XR+phVG-)Я9KRД[Ru5ZVnXRhsXv6/uFSRxyRQUP鵳>RHESɰp0~L@p98tm]r;r#0ju%(R"GԷ7<Xy7 @ nhn(Q՞I2 ӻ  *,fHP eW_&cZ./?Ul$tgXǺ`>)<`K(̘p D'F zSX'=NDh'?gh'>`ɧsbXEӥ9d/`SFFݷD gzEHA a,AG9#8ȈrNT9QP/Kw uA4HJY Hi,v +ys);?Cg$^u"noRYuiCg(F+U)ڞqi zvA ;'0rй$#lI@cEi؟`h݂\hG)k> ~p]f(xb<(.]̬2eW蜟< '#.EWݕW)TPw̥L]-4IOʒӢ i0h5F;{-R(:XyARV\u^!G&)]YBJqqP[aA[OW#V,>V#Fݤ+xqKKL/Xs@EڒJR12}chc*c, aϽceԍ@ڵ !#P٣C*bWgUʍ +G +Rx)dHhi!@YgdQB`^lb 1H!wkTBv'8w*jA!sA'uueG-zB$Y$I8%6?4j U3ZM iDIR AOukb"dixIlpDm Jd +G 1'*, 7dNT BM޸ۂoLe2g%g) <؇A7-3?4/S a Oȷ5+".F*4gKƨ\g #zݽYոh|^sk}d:HM343ycV@|N>jGԪ ]ꬎz =4Ȁ0Z}>;#7|rlȘ{Rav> p:{xH Z{:]`A=w2z.8a8q75SmFBjBLlɒu Q(y$X2 Ӈ"2{uF"!8Lվxby +2weZp9ZsVR@\vPWgʹ[ɹ<*@¼@ήm hJW D("5xȜM|XS.)>Ya))Da5BI鉨 4!HeU$ YE@*Uaq\(̘nd7pZlZ:V xi.hIPٷN,ȍempDUcVay St!9I*$rݭ=+U;'=wӬ0- Yu][8d8cj9e5O\܉"7J-[nfHi.Pqml],DՔ!j-|X<9qtiQf}Pp;Ԍelܳ c|#Y:\]Qe#)l,Sڽ`. (+hrqTr]|)عɟ}'z4i tMJ5Sewi-ԘbKo\I7iٿ޽N&Qs +?aT+XPq+%0Y~XT7&-Omρ3xJ1ʎz@:zv}F]sҿK;<=:dCQ\ub8RB~nOM/ El6=8͗K]Y` 1̖?Y2|j RL#)% r["2F&DŮmp`D.\?2dyɧԘts8@-I~D?пAo>FcL~-CG1ٽАhaYz'\wy#@̩@ޕRi"qmW90«&A&Ỹ^H/.m^7[c׏/8G +8_YamQi@ 6Kÿ#;ů]_a0m.m6,oo\+]p07]ta8$>a$yn $t9N4؟?0??E^j(f}\4x%&@4%%A +\9]MӉ/U#--i5x"!Ԁ5-Vy?8?E?nl!ybNg9oٟNwfg~}x (J&PCatciHqSiOWq9qS!c ~@xfeBB6&,0Lq 5@SOЙC#}>_G 阺)0tsĠL!0dΠ@nP_< lS^ =>&ΝmkjQ/"6H%[ ,3xW8fnrN7svm8NDes֤T@YZ`2Dt-SXA?mZP'(T<A2wz.HϹR=hvǗ`ӛY5ڽd%22OQaT{>/=C]Rk(XBJ2m'@K_~@h +W3TBY닰']tDy,;j + 2gcxQOQH:~ bc&jF#:Uhiv+M+5 WKfnя❼8p lθ cJ3GtGm؂NKI&R>12 jKȟ M;DE0Ԏ~IdIn|d]3!2 D\'K:@A77AC7}g[U6Li=05qGPҳ +b Ks,, ZZ0΅ӕ}6w D5Քr7ۇrӕ +1fPbv8AP;&_"5? ɤPaYS[uDSFM,tSgԪ/~RIYM4݊c$﬙r+~i Z*C}s~|U?(<㊀Ž!>b_%6⇖҇sq@.x+e#iFbޙe"s4x9n0SpyŸ0ovwcx|h*ĭމ Y5n,3]am87!bVDZ!1 Y&b!;/#3!)GC̙#c KǵȜ!zc_hf5J*~De%U ̺mq7a{𙙑P )l2oYt&,,L݌DS &"`V :;@;Ea odү s:FܺGqawQh 9-akIL\J!O6[=~- qc¤o[ܸ`v0g#-FW\4Ow.7#M#nCy17Q~cnCt 7ّݸ¨nCdpvI7jch4I7 ~Qn=P25)Kdز%sGNkه!@e, G"F"MT  l~$pf3(bR%Ӳ<3wf ) sqNI.zfbe /%Oіz`.hݨRYv[ KUμձ;#*O=& o]~)Nhw0:3DŌƀ}^kUm<*iԃOEWLP2ע]3KR}K+jʵթII3{tjF l(# E>k}x3^E&wq1h\eldQtpwL-;tHN4ƃsXD6ʀMɂ`8*[0OTe=w ++n=V!Z^Z_qeA-] sTD QZاH ۞&r QJ\[yN+Xis薇t9KU|Ɣ*i l\^_8K|]ƂM +/ XrQsk2zKHн >R'|%,X E%MAjG7T3){H杇y%' CemHAsޏ0bRDm~vx1F>eT +=B% ^7jқ䒆IsI7ReӊGCѹ0OKi}̀5++M{(C9B-bU,OoC:(ͱ.˷n9e%zNKI[‘7Go + +Ӣ;7aE耬KJ [3%/uiޫ/Ǽ ő&cbDS; W\JA]yiT.-=ܻ>+)[@v:[` qx(iz0,z>,mz>4{/_c sƂ½"ea !9p~ wF0;w b7@م`m)ȑ:K52{v\4{PCa}4Lij}/=,#8o Uɋk))x5;j|j1cɈr4u.J3&9GI0aGm,73mn0Ay"BtHӢt%zBG/EYHvcvHBB@52IJndٱ`&J8:Bc?"S=Յ$eFҸk+ʉ_^%z**I^b%)7`I\jAq9U.G!{ ?kbHuNwķDHV;UPgqy=j 5?ZE&tQo=ޢxłewS3n::EgrD0!ǢגgIPxCQhs,ptPzpM[Ioy%Zm8d?d b[C4?wTˎw'E:b -aA߳Kޑ#rEQTa]Rf1oXĉnla2[5`V>&8{R{AՐI9vMBy+C? qr9d8;J)I +ޖ'[zW, ^&{oW4)޲ywfheyYf )I,Gѩ` !vNyږo $g# +qIr W+  H"ca>b្mM߾=4ED0Cף 0]@0\w^ba5Z0& [6=@)l!Q ~EvA#w4nn#2n:h<zC '<yz8w)wف +$HY@ncymlQ\F+5hͰi=ZJ54M7XD!rU buz-;AWdluí1?E?D Ԭy{MkUrDv"b*I U_{AU3,&0#j!KqL4}f)Ub5 ]Į0uyI y̸ We4]0ٶLatP$iT5~ 9ތTA]blkhNx:R>"t;Emi:)I]~Df2dNQ炅9 =Yk<:;x̸~;"r۾%$TY$)Z:Kչ.DXϲ|wċ]tryh:վko.ɺl^Ȅe J!)EJ˞:t+šFf~_ r?W\&(7+řҜCpXM%59駮g|@F˅F D/,Is5 3Szq"_R?\4 eC)3[ &3@pt*f~RK3rM-Ll*V0V%lw'*PfB3ɘ[&`P_DiZ$,?,;FڀNl'Lgw8bfhׅtNkW9we +ANw$yЃUWQ?S7'(dY428T5~#t8܁4|85AVIN1F[n1JcA15Ἠ]=hH3Ve3x `2{VSOv)Hg <*fY7M_=Yb /WU%k?'TJoUᵇtx_*?z$PB ^A< +TJ3S^Fwɔ43 Wy\a +go')5)twon[ߟh|Y wh!Asx#{ g>YP"3`gx4c`{Q*F݄hVmHhFvh%FS{ }g5cm}tFiL`|SL7ZZK̜ڇf#RV|o\hjÍ@zYP=bΉ}<a6`"Iis7ګCx"(~ ׁ$Ǘ`DPtѲ:e|$ qhqBn"]ݬCFP ãRSNaZdQ+EVHbZ#OleE$,֐5Xt#;DINK{]3  Pm}זQAV7F 9Mav7&J :sA۳Hŧ>٪6qK 0CP^54z4vkI3/ z~` )u*a f\"Pj;;{ZQHR=Iwپv}@ ܃HOɾ7HAjKj0Nž7сށX|C9u<'icvD &zY.:haLfGբq'M MK4oK'`͗FPIvSXref вtǴqdHSEmu^rԣ pn&کY6| ې.%K- s1t&e)Fs1a +jXaJʳu;cCp[bL6KZFZU!XN sWꞷsdaV.)|¯}ۯbo}r'HAbY=7 2Bw JcOFˮ\P5.' +yn +:x&MQݾWM֡ጥ:e<_ɧ\rjy@  = mEXc\Ca `l.R'ؼEwB!!nȔ $la0B*a^):=J~묙'm9}3!Y9Ȉi JypBpirq^G1w&Db`8"]_9Q9լJPmɶ++@ʴPMhB /P$•=M-j/;/l%QC a8B|A6Fj@0?>Ior44׽n)_ u`<ٔn\a& |QُRkOJ, 'rR#ٰki_ҞIgCurR#G94)W\'M$AAq*U҉G8׃=UU . +څĽJ?8,wy9w=S "&aPA5[Շ:O.f4@ :P(JX+7$tRz.d`cDsM,yaHu, F7.}5싄 gl9ܽ O Y9Oyz~@찆CɡRm$4aػ Cb"C]fQFH>ب,؁GbE8l&aS +'ޱG٧[ sbC`OB0x3H\gfm?1pIMI:m۶m۶۶m۶m3;gsʇezyzkי*t_L%=\8LBbL*7Va8N >lVMl(%tMBE$>¢Y" +S06WOiYLlZA0/D7\S 7)(38Tz"VCIi,h[bk2]d,So֮v|b)=l#֞+IPf?AH2%S@.TJo5ǝʟk8*X Wx~FؚFd[@H2p}QN v:Q}t74<|k p{i'{Cs)x$_Z'{RNtJ )O4;[H{Z+jX=%߂##QQ/0Ӂ3bUĤ²∥Ȟ,Q}8EٮpNSgt襢R_t9_ }(mD8w񉲗_oZ:jׄ 8\H|N,*i5Q~e(hR5*[R\( F͕`޾ľ-Kĥ7d8VDk=:']/Yuq%7wۀWQm,Fe,ChWYDI'FVKSuce\l08bl1|%?x?-Wt)D˾uӃoI9RRE+Nw`t?8;8{[4xn fJ{+9(nF SfJJ1`X+6ҬnW\H!^ԩl +.va[ rT3Tj"3 Wۊ4`>[+DnsGKH#atCc3~Qn"L4y\&Ya,nԸ񫺰sz|ߨ90 ٌQ̙7ੴwٝ7ܶ-t3-$ע +V. +K_ zu (|n?@TqN!`~dC.pΝZ@Cիv0KwGxGl`$HI61mS;C77NݣM1"#5np X vNe_:8/K2:ـR`Bf=(1)x.}~ʦU7v/9?1` ̀gn{Lp4~}?qX +Q+%'br*2tg=Y  *!I~j\>!ŹC8Eb$܋ j@N 2'9x&)$:hwš-:_S!rl{VqSH.&$8DP1ey3v'(ϔ" +Dy-1(RZТ\XɕS\BuQ\|1s[ouovL$Dvc*S?I."MoӈńC(S:  +)oe*7o:o,0v4BcD⒴pԸMkFNDe,t^t_dU&E.<5At)VElhNE% DނdYȺk5 Hwɱ\ڝsۊ&V P9#W(Z{Z`FhJљlhQkF3IN;Mq2 -Ka\w{IR +){t_aXryr+DZXy&eG:a}H؊kK;b<^"/8De*_o.1&QEMJ..1puj Hy\ƟK8Ĵ϶pHt?,0(4 2{Ș9̘9Ј GŵRKLTX3 e&2PC%'6YDwݤUx¼\fκq}NqCs|딴SzRrXx .{n%`rnnDp\ʳM= / GiS0yB#"CDfO(T+~tL޾$@SOO)tHh󊪜ś>c4UOaԸ YVW;93=&w۔CT*minSЪm$"{{|TTeQxѴ7K[*Vr\\;MHA*>BwsZVl +0,RFyc}~aG@wb;R潻V_7xJQxdVwb&QX~ν36`f̖^5AWGn9EPs~4An{73s3B((_T .6 &daL"d }Tnd ̼.78ĝD +Sģŋ0͌m^iɽb(PloIJL`>* /?v K tWatuD}1]H/wa!xq*a#ٱJa%s45V}HQXz{μ=Yih,Kf8NEYhUY()1W3ڛZ&)<e" +5õNQ4tY8Mڅ%$2<Uq(=@eo3hRVRmTZe6 +MTX +hty c&9IzدY<\n9Dyd&dUF ʆLJ$ر⎁=ϗY9 cJRbkr9ڲ4fX5RyM\fGB`J~C~*TS"䊖hKfekW7ҟ"?˄{g*#ۇ7E&)}`bvߥ1Q[B|GFMu'linv׍]R"M+ESd\`jYM[V3"4n +s}gΐG8`Z45O se\=5SsX8K55a!Gsmg1#E++I $ q7ԠwgEB.}x P++kbesmɾxXp > s9ѝZ21mZCngA"J +~6;K_>8 +F$Dodu&Thy+1:g;*EI3"ZG3;z8Wט}=бIf|/mg˹NeFUA$9nK;M9͏ÁKe-+@]"G Hi=incF:⃷B_HMIgӭ1(W]⯠*Mf}+bVKCD&-+z|W}QVl6 ^}Qt216s~&Ыf2S/-9yJ0t&=mMVGܯKT&Xݪ")Ub:9%J>^͛t,2|hu-.=˾MA.I)jv(j ȉ2h @?kHB!P uL)F>[m i༡U#?m(`)XMKbEc2)ij3%$=P~8 -QR,A#(QT1ȭ<:jErv|5]pSzJma$[g ++U2Bh|A1g) +% +͟!AHe +%f +s +Oǡ7dip!xXQU@* +`AԽJɲZ`}PCxKNTK,`5fQ 1D8Ͻ0lqsΐIASds_Xw$s_AH^!ܣnH{P7DQtm az/ 6I~CxI$^VΐH8M#Q^AC²@`3N0bf JXnN2h3dɲjࢿ϶QsGn ' S;%ky}{GXPq϶NU ]Q MITT%FHgiq~'G^H}^$uAByQ*-!I]j[`€KԎ;j>q(b#r]dIT[ktMdo6,J9QxOR0}8DQ};U.kn\s'YVIT͉%O/ +ZءLCz+ٌ$.*KsٕI#0{<4v1JY53+7~ dxYqج:#P 螺m%퀓;Ɓ)G[}) +btf3Bl5OkaȕUZRg DrJ8{d&DZmDL"(z>ȳNy4鳍K1b%jet"vf8R*Z}TNsN?\Rr$i6}ȭ%K yLPfTch018R牁?mǗl119$(gv67W^A\j9uKflFs4 1jc^36:VUdYrMCz04NTPQS2j-;=,tE~'x^%xSZ{O[8n< +YiTKuxaWq5s@We зx%KdܚSEhfkDb$ +E2sDƲ981hUoo?U9Q YAx/L~zг[s[_tkdjPR +;幛dH/)0Xڱ=u|GMRiK4zʇ`QZ-X[݆EJh]#G*lZϕL R7ei2 +QKJvg}F#?'$7#320Zh,AVrt8e r4ПSKеnZLu >=)#N_<>)!jRVV-Q#W43D1m8IT$ I"'%a奈_$W W {Ba`$td *= +ZѫDŽbg] nJ_*"ABJ}Sq}\#3:CGiYėDY +H&-yVNg,5޸ˎnr<ҝ[BF|CwA{@\ 6Eaq+89,҂~5a!yEϊOt-xxDּL8/\S [rk+jm xVp-;BBtI)3@H#FD &;?r>h36GDr+yz8=+K wӻAsآw5()MXɅ4/Ȫ/lU{}Pv#&P!|M=!H Nllv4Cyvmh A~Hv!{m _OؙvkrW1lnnrs|YX0[۠rH7}`<C<]/0ePJ-G`b^TrGBȃp(s:P‘}!0Ax' +$X0[VQ_rB_aBJ A(YoH](Y·$DEyȟ^gcB`3swA8;@#-ad +MrttDŽ^ )s)(57Ϳ_l݅`7[!j;#^B5e9 /okd }2vU'cO,ؒF>e|r1V;(Xh V RЏ?`>g =ϛK /۞7k3m/5{`{ڂ8`M6F6Y5jt_ax| “hdw~n8|"f e+_#v~#wF-IvK7aF Ai$Ӱ)N]@$i'Ɂ)fGs̟`#i_&UZ\&/: g[kcW73C`RSM eh̖r808 V%*d*|Hh %A{۝LnV3%4-kP~OA9$ǖ4f/5xSBqȡzE㟮fGn Z#WLǐDbOiYt&Q86:!![iK blN쵵Ն3c\-؎33`d#A39 K&&?[}4a55eYDW(M_z"Mbxf!L7qFXY;a.\&I+ *i&[)%"RLbo UU6P +廝ZBlw3**~^._͉فhQue4gb1G׍Pmuq#&Rr Ƣ8-MT;!{Ӧ52C`cFi ;طPUmX[Ն\UE$3Yn%e$Sj;QSiuu2cn1J^E۩A+3fGω{FБ2Krgؤy u1%f= 3cRBAHtC +4Ch;&0X.L3Tf2(mq0?I[MΨ6o(EPk EBn`P4)]K&xD$u;i6Ujj\VMP +>pL7Li2Y\kb%6ǨAJ-e#9h$%ؗ})a9#Ag9/<^.mI3 ^Λ=UnKBwS^ȿ: t֚y93!y;xFTUD5.b55LVz>$FSoKKC]|٣kz,{ۃ4d.jԚ)˻O[xmXsozUGb!`Iя#Or-{-^='лL +dxw|X.b M^KQ1H?V 3pdV W \J8A-˖[MƘt*AC@w'/jZ|$ iMnW +W 'PW]K]LD"h^a΀8['>5>,GC ;(ٙ# |]" D4Ey -/H t\u{-0ZXQ>s3#(Dy4;݊ ƒUF+FWl*톊|zH>3F+ː+ODi`L^0A +52niP}Mں%7a1a> UP>2N^"&w5 `}Y +!@}sӀiA|G0 ۘ)=@-@;17i4\qp6R{\X.|(HtRt슁*#:"+R{zf1,AME!BMK֌k2*X5(lLLV+W]x #W' LS[AsǡEeN<LV(czGUUeTD^զ+Iir!qE@O +uIL9K + v=3,3\j6>jir-2)t}|B%+#c`,. @=\Ne ¼JO ^ٟgfj@С2Vu} jni]@" o?386f->` |,nFĢ)gG +̼|n 1HK&GQh1[pTDTF4D z7Y/O(Q!B /m4my!qk |?aK; E8;TF؟vX1,8zcCmE#:+Äq Nܢ9hCJ2>Jk\C,'!_b(ǔJ.Q%4_hРlӮ Db{hW&V3VKw(.pSnܟ6*AxYp.Y@z~f@N_S#'H +ɵBg;Ik}Sտ'47P<X5QB%WldB.6L!2SOh˦ӝ=>-嬣/lOs#C3,rgpl:}zDFAA|P$e#[SE#3!LxCdwt0((_itB1)lA`Q?e}c0ϳz )-26[dYJkOILJmst+i xNPe}h0Zb"1)&=֊\!3}mW5}"Q F|yb?ڸ!F-SGp WM&ˌmaMDɢSbRYdGU&4$Q/mGa`Pƒ\ @G9Zp{EdȔ0sױ;m2! 髤:7J#SGe.v2hI*9[!5~~_4UX$<:5YsIۃ g0OFOK& 'T+I kt +c3 zX?.н67'B6^䁹^W4UWcqި[]` #I7DTxux۹.<{3<{7UEY|(E>y%B1Q ڤW3R!:VCB+~%ju+:a$_FMߡ-+zTS5|L;2Y7{nq>:@=9|RgW-kg|x}Y^kjO7x]jn;SmE +,|Y뚚ap~ +%r!+37ʋO` ]ʷG|xyڳj^O,%lN!OAs +}JkZa$`1y)n.Z_D"AH +". hƗSol觬*5a~`Jku 42/ sd;X@$iauZrueFJnl^uctܡL/T8^Y;i;u8a^p|@t~ }[ܠ^ܻ~tQNbwTf!q@*/}%HͷlIw ! 0wekAfCF!U癜eX4Y(![1j->)^$x1,-@ga֘8CުJC +,i՛i/ݓl 9gJD寪-6 [u)h_f"7f%O2yR'I&* .:wPP\&춇y0H}*&iwRFCT`Cӌ%jP?R~9=\OvsoTt,q{|s_Ya!Ux 8?#H+b௑E {ScK{ "Y{=3v͛<S$) FZ +iakXQLf#¤X޽ZvBؘݼ&qp I̍bbiU:` +@UCj-LU yԂY+q M2N@ILWԂv#FCς@g|`Cdœ.>fz vJ; m|_+oy 0,vdwsL7u +O{y0B(#F:eӵsaQ-j[0Y8- mUֳ<ܗV ^ 9S7J^(emD:5S*Tm8I :HX6L,<<6Aͱ޻)ô:OJVn&ͼEIv GzִX ? -^lus4SOJr?OrRQdSaͽQd銦!űԱ!"q&Q Ӣ;)Y|{OI,X΍w0," yEDoS5'olGD̡peh澯Yg^܉֢YGPqWqDM"?5&+(*V +Gb݀eqMI$S{nCkqR#۶h;Df/.. kkgA5)S+oik*;Z9aw"Y[eo +L=FW`~%)X`\MB#e-w \c7sk/M*(¢8͜rպ((̈́E64 k㸇FQH:O? Ofκ:CX׼IpDkɫ(sgO:XKRe׬_<} +ΌŚ#V~jgPX*V7bsKT-ץlhmgv. aŬ68*8V984ʱ1@)UQ0̂iߗCٮy)S!k@WGIL=ٲC)$&nTU6ub,#62n^lPOPfk1{xzPQ"_RX\("kV6rk?I uE::ba&wG.golO`  Rrъ (ϟJ¼` +`I7\6Օև=yy1J '{]= $dHɰ$X&"J;P 뇈^j^zju9a{,PYD.7ݷkzs2! v;Z R'%KQUIP嵺$AxekF3fdn1]g1xuQ%QXbh$責I|:LZ\^@QgIkۍk!ci_tXv1FI1V~#%*S#& e6b˰+c %0Ђ8=^p\M+xve7ȡNp?4bR~R*RӖGǮrB)dOfWr+$=5X^Zn|nO*{?,J +UI+UiRSYbnb7Pi`~ȼxB%ތuDnt؈fK02JMFHa 3'lSm|E31AbJ!11lp(gACjjҎXoor &W|:35|y@'R[(^ +l( +UbӇF+j7!8N_I ^OVID +fpʁq@Wz+k93aPYpsfT;L.In'˥} +^3hiT/! pgH + EJh(CJ$OMMr"Bkh}C%PPܻ̘e掯3ov&|-U1#I>-٥Rv˝BH?j@S1 +זº.E +pFZ?~/b8Ke^(FO +/|Nyhv< FA{m=lqg:*{<:x2=`"wwʿJdzQgB3g:9U9͆%堺SE]q3Zkn) UOYP&"Xb0h?ԑ>㌳#4>R?qM J]Mw!qR;]fdSSx1 qg<+&h VM1$``(*16(Sq8lxU0_: 1$c]±Æܔ_D2N.c֎No~p~l-VufHTZЫs{2%ﴉ'@wfpa @h_g֣b+kir,nF.du]1\Y.{mڗ&`GtB%B89ҹObMjtwnɥ-}Gq*ӵO`wT^:aV(;3pvBLa FIK戩:-&.#YG+^H9?f}+D G ՕQ} ݷiŦ2b +Cd2ƒ)NMMs) ,iXA4#^8qt8WŹmF}> &: Ɠw|F9B@V,Φ>UbbIsOHzϞcaqGVIp 䕕?ϱϋhU o?([xLJI䁓uKo{(NG\%S\< +{;T7>3#Ma*H{ HYB0kT>_~|M +Q.hfxٝؤt9DI|g^إԫx$dƀ=.< 41qiӤdo׵ 2Feq4F!C,\ 6'ļ6])A>{*0_hVrGQy&u̍'~^CF 93?!/ݮ !Huk>~GI/wVQ#CLȉ!烲MKlജJ=`{M&;Lo\zže] *Tzx}dܦVW[OkXW7Ij +O z3uzm.ߣ}B}(B; +( OmU5d> CPkD8I7_k$ɰk{)aJ0LΞ"bH +KDS6@nd݈H JVj>gQjzBu6BR%{;&בV11pS*P"-[>k;Yyx^Z6GQih|IwBպ]; ܔᜭ-Ndzw̠o=pxym]kvԇpKf#* K>:+SnwxTwzʟol(:js2 dy P*PESlP8t'(:5z@HXR5+ +J3hbwRxʂ,I4cr?Ǖlk4q&d'ƶOJ6G7zc|t$6` wcIj{gh/_[wɊG3~2#\Ⱦl#ڃ/+t͑lzn$NP JP=UprL3&j|1~tQ2K3y Zay汣[$cfi*2d3RB^UaX(>mSi`h/\Q56cdGjYF!Jf.zg2Jps{!V{]tOHϏն?I]mIG~k +TWf&,l(BNJ≑4֤H_/ H5ۮam + + ef@CTc>uvxHaA#waǿ"Pem!;(NVA'}2Y Vզ[f UBh6g M&I[̱֙~ѷzW.i~g?o}OVL$oO`]o-]7ÊBx2P kWooX j ȉyM0)#ڢyus&c hG׊xBf"=Ip-- 㭛Y1kcMo~qWݰR{R,†<JKr\;?Rc J8֜ߖyҽ̑RBDS'U*8B!U{TәY\Rljؿ/Ԥ%]f~w؈?Pe=,(jX +!I4p,)WǒtkG5e_'XP7m5RsFgwx!wd=۱F2ZvP7)fĎ !^Mb[3;kvQ=":-:vmƻ+Q6f.,Q4;cd$䪬32k|;$ŖQnaR]?cCߠvwF/yQD7&$|L`.НR~o6F/xe'2Z@ 4$Nݎ=Syzl#QʯFX'nvwP8Bµ=- R*f29 +Կg׏K䛚K `WSB +en*UJFKHsaZ󶮰MUXV K3mrP=tC/$rzbId"Da-Nwk']3.%>}Pۇb. T02wceCd,)К`}rg֛`{7B6&Gex.${\Ŭ[ym;Nvm^\3rgkUeD +N$3ݵDۄEN4J& q ^p r Wfjj&q: hTXq?mC@@QH$t 5M`8 +NZ 5r=^I t| iD4GW,0?`-&ѮAh]rɀM?`?7i8g@4{AGnK+>&+(;O15'WcHDyʥ5cT'޺k^\Z,``Zպ +Ku'ߖERŇܚ\fHi3GD׎vpuKZfږ1/&\XJ Iz%2>klkN\k~Ee pORɥ'lM$Rs"G,dOL}hb@{ N~{3&q72!d$%*| w/<-7Ұj*"8ܧ";*Pl?;UCX), J?M 0]K#t\c@'p~!Gg:($tsqOuX#ˆI١y +#ɢ>h%Mr#a;rFG^|~g4u5dvXٛl#hmgfuwT+n>:Co,PI]2`׈m[7H=s~&*8)ȍ{$IZ 7.;ZHx@i;@pO vrfArqv> §Y¸J{1FJ mfgII#?f̖}RoQ}c( +* %t?갶u@tOJQ@@=wNYjk f! +=/iPդ +Mև4`{Ű{ʐ-Ҿw% :#%y-Ӌ ~He{17ʯ\C>T0KXQPCG!mOyQI/!VI5oΣ9kD$Ndb\0Diph +Mvu&dA7I^N47D…Ԍn{&1Q ^atN?(qVbOb `SN睖)֜-$2|Fc(AFy0UIk>~T.DA\\H <$5 /8I0WNJ$g$_VӤllEk)WK #E*7qƙpCD) o>G_KU4.BnP :جp?'ޒA44Zۢ3vnUnUp{aܵ>^\z"-jf^Mi,5ՅSxm*}]9ʳ/ 3ώMAQfo1pfMjF0*+ښ>[W' )PJ`x Y63iJ۰``,ru#Y)*Mn=Ma>x9Րr |+2scc{:+ɣňU:npڛ-.]D+o ('fI遪E[{JP^Q9;5#e}s7_ by,\xxv0#dxF^ +;nYײdd_ɴzp9@q 0ĉsN0;.HQA:pP"[93-!, +O|I6dw[l-6J^;mpq-;MK\K'">cc{}đb(-w=|aSiV/XR1o]#>70BcWO~FJ=ܖթq<'9 e ++D]#"|oO-T%)QƢHPρZJ%EhddMacKh/gT:*yq)E ټgj2kSG҃7|o 5 wq@KOǎ]s{CTv 3 `C*NzC հlT_Y@Dqyl, [4ov .yPs^:\XlOEe(ᴃPQ5/+"z +j{^CL_vM~xlg?C˱xEɱeʚ## ܸ$B,1]iX=k؝]mXC V7z%Q]]WZ]]kuY>GE`kL$' X@B?K/u@&‡%j>d:^ӆԲ +ySuyx({׏ 'Sa[oIu|SS ܤ@-Ui^ bɕ4s#+hΨ d/-26R=pœo_4 7ff9ppYC҃/̷{Jpy]J`8\#%cM!4.DGƮ%w&_h.c0|HL)Z'h43*?RJwJ"SOI0ɝEv(Ǡ*nl*(xMkTrkP&EXIR/$%(*e+KaK8ldB&mD@q v"ΌRЏf)y 15xN[9i#˾!ĜP8>T ꟗP%r<[a4,QV!t^+*k77DSn6K=pT,, /x &j ,fdWj 7t߄Ev +;D!Xj2r4Hݽ޵Rm+,YG" +>~Po K7D1Cnb:e%o$:!.QbuaV?fy$ezfE!i~ KS>af|ax:F/F!޺i0ۀ{feUw$D}q@('O苡 y=ݼ*{,'-^oEDUE1ChQj#?vu[q77[,4HnKt^럺Dlm"_bic*bjN`JOVS敐b%,/Q<ǥ&:>_03@?TG(9 +ҢOuiX&:oKIcl +m (iROc.ff9ί¡`Chb)S$ԾhL!9۔U +mξ(R/Iǵ{as4,;+B^);7k.z*؋,'T^ Һ0¦+dBO< ,(j'mZqwGd-I\@K 9oS(!'QՅej++]xqHBk"D_7)9a۔g,JBHXT>Hxh'<-z<?%WE#om(Iu:dQ휄K}#{N$/6GBeZe<(9 +='fQ'gY)D +I}<&zt.F!0y<Ć1vq%3gY;,:)QI!?n)ţ0y[(JJ|H> 9 +ݢa="k3f=Izń,wE~?ɦ$1}d.!y +'y نJsXҼ? +hyJ#ǀht#?mm>F/w6OxKۿʍ+YM3Y[d5N-B+.M&5lc޴ R:a˥A g³6llO:iͶϓ/ TLHLd*{P:'J}R` Pf(cCܩGL.U?ӵ(:Gc-ВA2&8n$ytPbq! |DKw 0΀!]'ĜQ.fvNqh3,a,u.̞ iR8z6e6w0jEzN$sӾqϣ +rINrpcyN>!G0jZFg*;Jc$!!@K! aJRcX6U`@т#84OYVnrԬD '%9\ѩKJb y~v$=Z +Ǝ$wO؇$6 Q+X+Q234XY$+2Вٺ +fQ!ŝx "snjn0{H`] `a+pOVnNȍ+CȪ2-0qμxV:dҷҭ6j({V; P&#(8u iT|wp&l=_:=pa\tDqNbA1Mәdnv)Hγd)o6[u*?qnafr?ϩNBoeMlb~вkpat#|wB0՛eu\P@*R7Bgju&_Ah]-YՅi!`FZ{ni$OPPt5͆&+^I!ڛh6GAD٢ѳjSg۷{ +RtB#qk2=i&TF|2'd2ZfiwAZm Wuՠ.%!mA3b^kJU4TM<'ٯr9|_.u^ +*;J- +We#b}\WCw +WS(J" :N(粌n9ނ0z[r":L$HBqG7aF#P[5YLfk옋ǷXdMAz%Dт߁Hѹl.`m0PT جh>b$Fvdkѣdvʄ{*zr+tOg9+-@\۩ <}"* + nmJVti/' 7eBQO͈kԹJhk$-%z_:#4cC+{ɷ+u\Dgn_.՞!-*|k1ο"^+% O͐T]NjB{GzTNNUEyc/a]dY5|$RCheZEas2d UI(.E\}JD@r0 wlhjn#6K:\B<["t|P k2 M \+ݼFSBmOx㋻.:D{͔ax2T_vi'$rmУ]WOW{L[~zQ31>>o/m]a2~}ӏW&6F]"$1QL:Pb4|x QMMV(΋ZK|rQ*"`X-=j P'SL7[@ c] s+XF>?6$<[J\!l8m6 \/ls$#mլ2e62^^ pŎ&C)lv[eNnFKnZٚ`p z>1yMzbuóvͻ(TA=qJ, + stA$$#|A$y/0u&/l}Ihh-iGĦq#A:yRCwIPs1 b!]2k3Kf@R٭Bj45%q>$>q,A>+xxI53UlǢq(͑E&ዋYU|3$ +M5HDfFB_Yz, x7I}nt˴/&t[Yl6tMVܠDl9/AFs& 84"%|uzDmdL$D91o2N, E{D@64ؚؒ1 +j rޮ2dTߏ=Sb x +Fq蘚 D)C:2%̈KKw& +j%hd ۘ0̈́gN}P%-cn,ݸP.>< 2ˎU>r䫞(W咱uɴU=H^LWJ,-%qvEB+_Ү?+%3G?/0/O_(Q 0o  uAp۶m۶m۶m۶m۶m{=sLQVEʧVfTeO. EkZa+밎~<6LLpkW 鍳4Z巌1i>tX]Q/ED |<@6Y|4ܱس\ټp߀lIk)6?~y7h5KzcLeaRNSaomqYq/cm4۰s<8\YtE!L,dDO? ß2,7\`h%0(Z5擹5%q1nAGrLkGi+P ׏ Ӂ;~Ds\1fw7|Ӎ.T9-N+~`8H/>o9o/Zg'# G]ľx +"P~4ė1!#' +QrsB8n14+:͞\lB(c#nY!1Z~F n_ +ǟ!T_&v 'L+x&=.)X#L4} ^ cP<̭$0إb ++F=2J8\ZȏgŸUM K+4}1,?PGc~/v|Zp]5s'YMIБMQMZsNHԃ돰if;FZ1945W|k*Ů_|h7keZdv-(#qYŲ9@V珷=U&<<3kP+A+ZoF hhU}z>lE,>џ6D`bb{Z'جʴo|z4}c<\W\*SNoµ^xt]J{ߍ=U>S4|]CVjV>fN+tͼά\u8#V8`W\Q:}Y4jQP'(vukMg1{Tr^ l +7j?V^MU@s:(Ur !ʸ.u5(O++?TkYʯɪ$FRގSl9 +W7QKė"Sb~sgs\TeH9 1WEb:BerYkٖoKV(c!m-L~.˧,uJ]QfK- uZ]qj-n9n˩<}ivz[./KxRd-9y)jKV^Z[^j[bR/I.4%Kx^]zv%ݗ.{)x/m/82—r_~K.Le +29nNdn8xqsA_!ƗzJ9@Yn7t%J:Aݞ'Z4#9g eޜ}Ξu*Fx^/ѢҠxҌ^ +F/<$ATxcDI{+|\#M|^0áKaC$m qǐ}%L + +z}lnG Ӝ3T<'՟(Ovi9KtsOP%Þ8s]`1}_b~yؤٕe ɏ8RLs낂WG!Tb)Z%=8~Btp%e_;.)^0o` V4;&dkvX3P1蛈H!gj ++ko ;-.BȰоp)//RFayW(V}cA9!B_ džD2N C)0MR+lH11gv@^"iۤ&(6TR Q365ViCx]p*-HP,Yg1bRnjx%i7sLt{O3F5!rv4 5bUQSb\LtQs]dhd s0z0_SgԍZo[`ж @*F+OJ "ڒ90i([PB**8d50:-xh,Cf@캨=~WAMwdhe47^H} &J9ށ8/RLVPM\l}Cti)#Ҽ̉43h$ +Pz-L=ƛJCE7٩[(wu'ڲ'n1? -]Hx({rQ *FG ,RAP 6ua^Zy[@}H&K.1he&鯄2Le;Ƽ @.2C@Rn^nz86e+Z$t| NuˈK>Mgq35wt Q@0++5-iAhAbǪ&Zlq4EhZ$'ӓbVZ\=id3|Y5(\p{?7&rlp쉙5=Mo&-iMdOMLlr( +ߗ ?-gMВ߾Q S >ZQMyc$}_WX|xs8.|@wih@䯜=~X4$@#D j%3U@˼&]QWL>N<پt7hL+E8zl4Du.H'22ygM>K3U.{t/-T&g}>$1_26@1 !t h\QUxێܝĺc-\C$s6;aׁL[;8Ћuɸ+Py2r歭Va\Bnm, )FzT'!E\#ԋD֬dmfiJU-b.Bkޏ;6s(l +@p&1/, Xr +HP +J nѰ^vtCfsy%tz/LS%bJa{UOpU\kدTdo)IuK2֔vE;նذAmuIȑ**1SWlpuM?vv F"I'3MPٟALڡYٗjD[#\md;[6dF0e*gTD8m3LiYnx}iczΐU|YNs; 7F2Q&zɽ'8GL8,Ϟ +=Ee:l(҄VHBӚR)טB{{dҗ j 4G. $x463Ba#Ozy6/mM pe)Zy4#]L. i(^ P Ѿjז{y>6)oj@a\4$!z-o8׼Ԧ"KƑ gֶOnPfɚ}PwzN)z--f2qLڙ=\6 \mgPU]VSVfs:m&4Yʥӻʝe-0_#H 8TV{^kۅgh +?}MIsꡡЕu?i8UZB8 ozO5>@[[ށw:Gnۊ qkJzݘyӸc4D^q Ͳ"Y(| r8'F‰(zmH) t!!d䀽['w0/H&ji(9P/=w`q޲%Ь}xGG[M:q)"a3.N!VaBt(PaJHXrzN];_w/G y0n 1۬;77܄3\ﳂ?^a߄cWAG+/p?hDʒrB %LN" fPJh4^ 0v|C3Ar3a,dn [ELȔ- 0Q%"&*a#K mC^Ua $0Yt\j71{N`g*C QLFGX`1eI-1dÙKZ#KIjIK=tqD_|Q#&ж`d'gEU'1T:0jHu!"~sb(3% rAlEƞ,ۉpmEQ',mh T,ԛS1Jm {6&q*V,Q#C5'WѣŢJ ]c[XQ5"700. s 줋RwI;B!uRw uQ㫲bhTL+.y=XW33=eJt40!#ބ۰'S3gt}XJ˲Oęi6p5* ʸJ3(\l&ېRoâLDL/2 + 哮]"oq@J'N&ℨ9,TU9o{U:m1=J2f("J56Y&D,c@U]l&/b(5 +#%F3L06 +n{]|NeW^t_ ދг?PK% [q0{[cTxe]d9\J^ˇ];Px@7AB>R8C.>0UC@?4cs85#CX<׏G qCH:r?7 % q4z쇮>{w?׈?7" B?.. /! ZgΕ+;V<@'τ7LD/m36hThd6Θ#ߓIAmk4r JmHI-+kqVk䉔=˞lޠɛ;#>WF{7=@c]\od3T'RKVUsSuIe?B_aTnw3km5j0pH#lh[au;$t톐:Wt$Cq`:y]3M#c}nz[\1u=|'B76BMXaӓ:b}dZ'cxal\ق'O?( ;#C_ycý#g]!0!a!)ZqL _":}| {a)Ud=CpBz̩Ƌ_F~ }kC D".E!=-ǧg9?FMCVsblZNK +HHݺ%1 +B0Kh]QQ&.VLVmVG[b?P^Q?&NC%AzkZ7ܤzM5+vXB {Ki~EU1*"!^սqjW&_X~%PWX;%a \7+ч"r(;d7!pv䷺ 䃸"rYq?1Uf(C?&\"tc>YWk_H"2JEc&Uԩ+?$TSʎW )-Kr*~ \;sk2R:~a7KJT8lIG'a O{L0{GHYH +Gqe%VWRքnC cd2&1GB`ǟNT>+K|.bdهP}pmϯ}v'ݞp0hQ?P{ۊ"`Z~)&vxQN=oS:-z!%9ru$‘_3 2(olLCS0D&zU +=+4J߇tsK4.|`HRm}a*)nCs=0*~`No Yy Gü%haŒ2OƻK(( >\lZJ1&.*Jj h^R A݃g*]fJ{q@6aڅ!C}S@e%Z˗SB ZQ1Lls1[EV o (E߷t eUh/4s}? s)n# +LUozsҍse }Or~Or'8ݓ3f**c1]eLWEq!ZX"g2tb%9rz0ڒxi[g6ue+OrO_$@Y&A}`\%:3(s ,itaH5~'8 +qr +Ʋ6U|ti͏OO_s![eryqңv1hq#$̧&HVa'ic @%&t@iǁq:`}" !AgƈF3 +(1m,'6K^6)'$ NwnmD6/ˁ~2B?$6$B'zMSep`'1lpp'ǁ y vP~0;8C#㯻B~pe2~H_JwrE̤rPG&>^a ȯ/I#kr_/ßA]j+(:gFV2nZBjY&-EI%JKa M6u&XE ^Q0]Dp鍉(8-oYne42z}o\ٌ&nED;텛3 D3u7?7T%AxΡdR0!+pfJ.iYQmP&e*5PYc~uP{ gEJG笌3Ā|rTWk!aM| t䛋^EJi`G3 2cfgx|U,u>>DQ a3H܁1]Zz%=>}{ f5)Dh{'6U32Ir䦴% + p*ϗ kDϬ]Q+1Q)L AOy9=ل2y$y.>6t iW..D: n7 + sAG*'.$0Q3ѕXe1f?Weag#n@S-a1MXq9wLq+,)0[fvy[y+ODw2a,PcCIg,sŤGoor*LsT׫[pxbzjZMv1ʭLxSkVDGfznJIB+q%-~ jd)s5mvѢѨXm`)Pt"̦.s(W)ptI_~Ҟ ыVHW]`iվHW6m +Y8\3_]'w[dK +x`K1v~=j{]Rl;]@{~iuٿݐS1^+gw\j[jK.h m^VC=BA_ {9 H@>A71FU,O•Dj H@F̐)'ybziإBܔ˧DW:N@Η*ئ +C:)Dgy1s(*ekj:ktŭG,zB3XζpebP6޲(ln +j;B:W߯7=A7@PCQᑠjS}y +T:LdPH v(ۦ,1׵A"iDw@a>0 Y2J1̶ tt2k0#y0=  +N *Y]_/sN$i 8+HD-BTa$]ӱ ٌLBTFZwqm[HnI-oy9WiIL N'6Az]0p@Q`c,<&gaa#C#$VOG>%ُ& |KuӏzFqSyeL$sahAANXzgea/minjCQ>&[}zzqu#p9kaCnφ}= m$HU$%KZLf&ŵ-c&_LjMnf1in5/)oԨuMHfAv/v~_]+ .m:kٱ;bɭ.)SȗoZ%cĔ왌D +թ t(@7faՔ;ַת}jV!uVu~Rjr?L8Ďċs%"ە+ݡ.;<'BEiTPԃkY7&ݍ$Fe1̣D|ӺnI>Z +vtGBo!{=UB;fmZ62z R1©ӳc"({a_nsUx3Y2$f [M؝ʎY\\2=sSHRoH9EI;=y6lA|Qps镚=ϥ Cu+BzLY[Ab456OՕN!@ܬƋ-&~T=n/òc5= VLǎM ș2bf%.KV qZǷHlWâ8ac 02r}Y.:r8`Qq°i[8Y凾8j?gB}GTqzB?9o8#u.FzT+q~D~PuݢQqe ZjLK5f4ybjC[KdSfn\]+|jj KRJ*(WsEd}'ܡ!HO^ݵ<;b\fzC2? D$Q@oP8TTR峲Oi:Ң'U4d~3ft`Jex\V܍xهZa }R +j(BՙiC _Un?JWpУĪJw0=<n0l*(:wt"h +'ۈF: D@3u5`z֜mofٳb:lRP1ޟTW38G%:KT*_]Ĺ_ W42]?9>Y{Sĵ[48ILc?&H+7]#qʙЂ#7;Wu?KkzP2o`2kM,z`֩9&"IL^7:u&P 4\aD1 5-y +PଃE>1û&4JH9.O \ [eYrc:ԤczBYA/l +eXvķ ++\v!O啣CrC|$3 kq`&y[=r=š9ݸ#@ggZ +#\pMY;UP7:n]I;9@u(}FmpdV2TҖTbAݖ\[(j:0GPqcd!*KjXbUV1O 6qmWϚUlGs0CȬӠZ!VYLXK26{UF^D/<CQX6θ+PkdZܶ~&8t+0~o?,-$h[gG!\$f=;_9{vǯdUdޭ k)n -Z}!%V_P( +^9'Jo<++4v1M=a']s3&g+;f&@paYρnQzP(O&M@߂Ѐ'B٬B PJ(J p4k28=PG Z6L\G1lzץ|C߹2X[ǞyϽe|$S6Hr! +raC,aLrӧ1<^lKOQ:bt!LdL:wcBwdNҀ=T+0M/1_eY9.Ĝe+´哏+F|GEZX`fldӖgPZ=\MU%fjbef=k-r7^M.WIj OeUBSu~-c.iU-*m&D GVuQ0elԪ%X(i_Eˑ|rv7> >e o<%0ͩ2Fv2g-KÿPUQ%Bg:հJ0u-` n]9LnFu=Qjњ\ΊA ϞVP9=Lz[BRˣն{FUjjoF*dIe7k[{mA699dBw@V`¡Ukξ3R:۪Ƕ4hJKxn:?Oi ) ڡڲ!!LoK9 rY7aT!9_xeYBxHڂ息E_P?|>U|Wճ뾨ڏ26'I89´>/N>1 +7 y?9J)8YMqH1fHR⒢X*C8%I397zcxV~G_8k6.P7A듲#tJ`!}_5+sv]'8*jkdi?žӬUQiotP($SFÊ*PIC0B\QZ%!( E㝮Ta_~hs9=toHnny8}VtH[bSL 6C}zȍ=C$LdܚbS(ZP մM󘫧`f"ٻj@]lќMW{FS`y t`ǑJIc U3)WUj!!m8/jtkRquS&:nX[]Bg)![{"A[5pgkuae3fS7EQ_$+G@:R tI&Wf(Fj\TT:RY%q[upqМu.;O6DbfzQq}ۨ+N;;v /@.ﶵhijR]4fL|bZ'{6M"YUh/,!/Xj^Awqb"JːZ_cm RkrȀy6'#oǝE"wjJ"MR&A]l,k+(6p{'!z.̚jdKC2_tW$3dT6A Fh႖4]Na#UBM<3%d5}2#5Y(![""Z5!nᓜ*_T**'-h̓lA4N˄j{ G[hn:aYtN+tNlC\) ?lȦU +Q*ڦNgCGF!nƀڎ=6H~=CqLҕzEZmJP5 +|F[UXTrE65)_ lYW 띿<)R1R*q|zW Nܪva)WCe.z`lO M6ffBo)ʈF!W}St`mͯ@j:OlR7%ͤ5u̞\f| ד@|E9LH}a|٤ݧJk n%^o`eux'Y{5Ÿ>. %wY`m$IK,f&c&u3NmXm8TmIJRĔ+ $!%T͇TL-B[x02|rN + + F:k/$Yv>~8ԩ`E_blzͲ~G~LnXU R=b!U#Hg6gn# 7t(pCj`i D31(zgMY43|׆cYT84%u2#14KMGŬ +;EטĶMSFYıǤĶ ,|\T0%6.8 7s-{d]k%*?c3sEI\V]h? p!#mIS!:7?8 J)#u*˼Q(lJwXr;Ws,B1F$,74EAIy_܂hSZaNo:ab7V y]vF7ȵ\ +m_J0o>aM%Mt2YDagv㨒Kb*mjr +Ŵ_J8#Sr +ب$UlzA^꟰9喒sj\$3|Ō%jvGֆq,@6ԜMɻxFGqP>V_"3NI6 I3 V2{b=TK1,OM% o Zdk涘4%I5roz[>gȠܰƠ+:}"p6 p517mPn#11# @ъ.LD3xP"FWƢ|D @SB0 g C8=Pq˕ڃ4 @K+t/T^LpY7/Z[0:_üB+hbcɞfH&}#RP:cXST.TcV֮+whB9/COTZ|(3륏#a=qAJTuo\UR,'rN /xEqvDTbF-kLiPl $m MML=QOw2vb@D4IȅaY$@,03!իV֭k#䀊" t[_]7s'sh|9n~~9vOO|2= wBN8 O'`ACid7;eCGF2xfޜ0N0BПp:1 @x1-ъ;qmBc a{qǷG.dL("YCŨ +STL` Ƀ,`˘3̘3Gl͘)p0gLxηENUK#>h8F&2w^XMraK?vW9P@uL´}nBX"][ЉP`l.wDzD8뭓H2 +մF^KviJWp?*]:ԼzS 8|%m.",xQ2kX:qX)Ѡ4nHfku*3pn@Xc%8YEvrg*(IJ3^VXI/4xIbTH}Eȶ°2)&bn̰eH ܬ&HdP|*MjAX3l|2|O/ơ(?&v@I 68ػV <"E)#wIxy B*Qe:)2uuflGD)BoUIKŻϫwon*i(5edײu̫44貄92 ( Hײtm^+ltsbbyo V+%^\j`2S a40[l5ZrmbdYzq91Ԃpeǟ Nhkhdj螋lpG.Ն$ M.ٺזyao5'Na-uFi +^c'd:EgM&a~mu;M m[F8XJ^Rϲڧ=yUfm)R)$b9i#9,h 9yMrB +u۵ jLӜ̚RvD<63m-ՂOEW`{.V @xLUZ!x% +kh:UE%g3FRbd9YrD+ b.w;2vF^z[Oj`\]ܔL"EyܪGnDtv燓9v +#GRd [)TH!ͩ0~!umѵQR?h:n( ٨6>գnD~Tv(K2דw`Ƣ?1MI;1|?::L:uژWnDvGrDwh 4&;](=1(;0w 0m#Gl;!b<50y` @ۣQ:dGp;0vk<Ћ#GEyƧx&/T"9&7uQxn]󦕝nxM#yhȠSC")C,VK&bzo.  + w͙ب`NVՔuV5Y)BgUEve}]F%u.t!ߔd~*15QQ7S[%#d]]ÂRm^xֈ.c:Jl-Ϫ. g$>α0q,_ӟ8=I+Ps5GAM1QN)w_zYZ2^pyTaը^l#K_>Tw.G=_k߾C>=sKd'G}]dyiUYLsLG zGBtow*pGj ڴ+2^iMA=QkerQT9nn7g9W#dlV&# ؉Phـ-Zjy[|.leV7R'5ʢR## leVv ڎ-6 8݈l 9 ,WAMh6#>V67vmsgCR\'#݌oGY*.`|e/K$N KepB9İ|!rQC$RCW4 4 $Q*Cgx)uG?YT{?y"(ѓ,)tDr_pɗ 5c슚 Z cᏩ +SƤTmɴ1 ͳٸ{.Old}3[ɳd=9+N˳ F6zB%Mb;r㲱NxQSX  QЦQNK_oQވ$/gd x+:iYc]Ffy0^Ș3~q Jw#}&hEw>kxSga)t`@%q'%w}B}R}r8~Ca"96o LB y, WM_6)S8'-_)$ _STLRWVaʟĊJJR3 )$//o02 +(`&rӋJԚ2'1TDRLySE)J#Qʞȩ/ʬ&cuT爩8%9AS3T&Hk6 \r8f)g1T@[Ml[9''i^b pEKE|1Ŀ0FڥzĿaWT|z*kMĽVh/ZvP%v\QDpO#I\tbYZь*ZA4b]-8r% +#LJ@IQ%bWKV6<rnҹJWC~K\8)A4K`8l^M|=r1%6Ws; +M)ڐSz?VgX{KG,Ce!h9ԗ&sۑbM'mZ0f9tuNՒ!k^0pҒRnnj7hE&6Kivu.O z]B߹wC2x9ͥ ]Х -Kr4xCN:DXoZ'FÛ%$Թ.}dEDXh},b5ZtLS&yhj- yJw< l&(rעIM<)" a]0ғOC!NٚvmN՚oyOq$@Ԓ 6|#t<9{xStUqm|2?&!+riz()E:^R㊤V,Rx|$?HKB/=K&/u)~%ܯ~K/L0l&0? k6,ڭ7~̘)ھ"!%T*TQj):;R1r|kOTkc5˷E~(擿ۥg+m{֝o~湜ZkV/|:&3+DW?BQli!KѧW4]kf9S|:6”uHŦ%ݭJxF'L2MǦSΧ)̌sB9Nti :s~Ƶ:D;Fp܋3<#gދ;7J GL/7{>$`Ova.:{A~q`* :cU\Pv9On2uu 7y#VLC&Q\KKYSnC%7I%?SM'Mo|9* +W8#D=WӾŎh'S~"CmM+߲Fu\A}J,+?$+j]vhA갼$&=$@Y@SfYu6y=>M `3 NT3< 8Vi|q[+r(Hn mQ a\SЭZF~V$ju=5ArhH}c./h<-.`=[Iچ̘u4O5l[ +73<2.nHK1 zD_KV(Fz&DjֱēG-|Y2ބD(_?6w"SI!od{PNo? l\(81L {áM]SL : sh$ѓd2?SO*Q.408*͑ G|85{ܧNqڍR~5ePGM -HyB y5bGdX^`x^IIMjk~`>{ `vL-h:\yysǹ9gu'M#}ˬ@#g0La0ؚoҀ/oJc8p~M{1觬%6sVcLju53lO`OzIr^#4>dq,!~H:8,uY9tlux;&+cyhj{DމzCDDa۪]y <=FJJYLL+pPnԦ{>^,NYraR.F_R5v Dzny[mƩ*`\xdv~E=NSg_xRj:G$Z%3s7]<ZqK1Ϡ4\*V`, +w!pd2|QcV8#n6?2R/48Pm 뽉!GҪ}N-}.y:zX21dϔjr ]ĹzH:*KⰋEo c՞Kj^1&i+ٳ0y:e_$c&C!)_YjWrR q8%@ujn G`l=YГځ{v5qev yZj}TA4rT=Ohb%ZP˽0DxBٻx,c_|d |1rIA@=ej! 3 KɉD;js +6|3VeA!KHl Wc?Ҙ>>?O)F! 9/AxDI;.[ ; +wa@0ƞҥca +єq<=t. +~yFuگ<ъ* +}`aBl.+$%3Ceuӯ=s,!`LBT@(  #I#dh$B)]VB5JTŎ,P 6HH[ЮՊ5z{?]/s's߿@y4go +P,)s.l1K1˲f4f8R>d>TQ J4%QU;- q] fl K3&9gZaN9CfPn(T91')+{]jݕ"VV91'EQY:(Y91ÇgQBPeX-A݋"YVU.zGY,SxR.0t꒏C1T]Jcu[+te$zV9#1m\n%(.ըmQvW8t[EPw)Gu]Y~R[xwKqFl@6[>ʻ#r+`:Ya9Ih˰hH97K϶NGYQ2+w%q^lKFv^}Qdy輴Zx˄<]n O^*eע:_TLyw90]̄^j+ K*=$< +INPk_Pe:46Da[$ֻwNyJ?wJ]5mUeJۚ Xw~7HHTt#e*'4c-1_6futI(nՁ'RR+kwƸn2xrVЧu4a :&A_ dt{=T+BuJc| ꗿw+2${5r@X +;{(P~Lu&FԔhP>s*M0]]co u:&W(,xd$,~6 (=dP䀬3֚Rݭf3qE?$.OSvGAf(~?/prY+*}LūA  +rWWP(^ [#V\lpUoq:7H:`"[,Oߨ#^NxGȫkf^AL?I#?؍&I+~~jԺPE7 sGV%䨯p-uzشb=r#ڼ*ss'фrBNLN>XT6=#E0( H<$>\>sϬ$)z*k$j%U!?=ܯͤN!t,K9^D?dӏiumbbw$3Ȓ)evԗqxa,qsMލI; CH#]X 9u u,2(vl*o+'% ՆxRe:W޺u6ݢC?CUX ,1",wOU!L_k3o SMHY$qJ |:?A|…tq%.,@nb2M;ވ0Vo;c +߀w8a0 + O)Hɚ +&cK쟀˻z@o\؇#֩2 0+ܹpW>DPLD1eq"$Qrx8Fuرe# _$2[쟘Tr,_<#?֯0_vm2 86M9ڔJ?+(cl@cmFeIЭJdV3yLefqXl6d֑ 6ꊢTcO +Z|R奇/+*Fo}Mĉ + $WfЭ6qhD(b|l…JW3[ +`P0h1L/I9rb9reǕ`:I,bUw!#Lr,xi ʂf >&IH}/J +Λzeb +?Ayg=\t<΋z8 yE;9i*bL"@G 2Sӝ!ʺcZ0L{a/cxVw<܈MY&Ͳ m +},gbms̷?)MA(*U*-E]z#IYWYZJ TOM%L\> ȸPDBrlL +x ;>qm+YPXY ݧ=kW?evULl}^}SbL${>/SX٣O%kgѩU-fF&c@п\_ GLVU2Z:jzjjn*u'eQC ~I/V;ϣ_r[_7?jԁ,޲6{ccUFݑ0"͍U5)s.3H_zBLG$ sߍ{L2li<[]3;_C*yAmNym5 Li5MwaB,?j4odtKzGHcM@Kfk[+{Y;GPʍ[;I8{3VN uu(=Er_O?xdSӁRXFn񷷶?}_? ,Ƽ]wOݍގKȑE[Yoݜ?@>QJY4{~?e#?2ڤ5ȉɆb`ɰ?IY zXKabo%hXl-G)H$R܊o^~s36-/ +v3z&R 7 TElExNh?VgnG2 +Vk:iE  ɕ4W4g) kE~D+;jf+3=5#F5E5%U +ܐJ~Cv[PO{}RJ +5 +kMi#hrY9F1;<2|FkGcw_Pg.n EӅؑ +:' +eJ 44`<Cc"<< eb"I7Zg>$Y>|OIp{X D>^u!,WY&Ab^SɈܽg.iDêkӲf3;M; ^tٹ S꒦S'IYEIsxTiFoC8=Nԥ1k" 3@7A7CF0^ +aH0{w ߪVFkeӲR䦐 :d(B3#vS@c0XxS$1]( +z{M*AR=#'SK{3yK`YZ%+k'ZfT]\qe2F7D93d!BW;гD6\Q2)Wˡ{s'i53Z:HFbd#/̲qBuvh +TƔBeB͠T9aYF9GZڣQ[3:Sоz!a"QrTĸv,|jYJ_8"љ&F\D|JYVo-F7d!g&bCYr\]Ȼg'X$kM21X7|373a.}rCp_ϕ=ؽŦ*XP9G78TqflQؠl,:1A8SHH1W-<.G=Diqxj LA_V/77l +=A_~'sߐTFOw|'wjx;dyRL7"29V.>m4ڤrlm9 Z^8j!Xi3M[T#P;U(1dO bbRcpql1$-PSGBc$pDH'z[A<Ѱފ wCP*x18ιAq%mJJ̑k>TEWw&,` +nL +an +b,nܝcEVPO aVLJG8W+Oi|bī Vqgn\1畏VZB]~}qI2uʒ.eur"׫!0Jm̝t*1^*q<[r#"ĦЫG3-f,րun%A쩵;'GDGY`5Yǩ}&~{!sls HEbA u"J\,x%aձErJNS:O&iI˶ANw=xU|FCA؎>,wKI~mU\,kWOX* M*>h~%661g;3{3[?6ۉ*К +uVXcpQS/VGnT w"Z` Sin 2QN:Q)"dI d3fՋdk~ƒ,E/tUdY9$NI1cj,SI dž?.;w7VrG-pgKEc+ܛ8b7bZŨߋ(3E ej8ܩs +{i4!, x9 ȳC<@7G,H B-O;canGn*R1 9ȨMN&li ,$[޵=~=@!C/ + DA/δLf5JFJىCJ2^pPƎ]rD7 O-Bba&y>=Ki:<9Ɔ7?آjON'N <T!dzev3WqLG26Cq26âJLccc ot>X3}ɁIscEybbC[vB,JA +6B4?jfXnHNw*`4$6Kڙ:oPU Geu|S3"Z"AD"( 289q66[ZTZI")@Ep[Z{GUՒ+y/9\=y y$0^ StIXz͠|krL(s\yw.r*G4}!zpJ<=,Dro O2}P:ʑ鴍!TSZ4UCi:M (G&s萚Yh+|Ɯ3iO>˱9I!yҩ h7!<ˡ{#sb"|a=t1㼢nƁ ;Ӹ, 6OO~Ct̋$a)#SON~aOP_,xQQHuB)^<{ǃ^ZP}[ڧ[ާ* L?١NAG:8݀ù)5ې,}gXRF J5Z--b^Z V kp3O4+)revWjC/N#Wtd)ᚂ4֫$.b) +kə3ᅨ-c2aq"jWЏ57qHʱJcѹC\ +yKաSQLMw\:Sn;<(D&@ mCLv\%bQ.:mN#ؠ5QZh}xQۣ| 3&kN.G_LV.3+.Dt&Zy\"Z)yDUv<`qd)֎Q(5DqZ9)X?9h=e5lpN A"5XU1ZPe1Pڨ;f{_Vp)]CՊBd谳ŕF s |#F +vpI뉙.lZUpˀ7ͪB-a +a [pQR;-QfaJIlxk YHޔ\:a+I$iE*IWU}1I]jɉS@% +](d^F@eɰ_*˙&K4(QX?S.B`#>O:̞TyWת-]3HrQ; +8<2 ]Yx㢫('s2c]\?dm58eHHo1W+u䒌mݩR%)cJPZjAG,z1 xLTd`pkNSeedۻЪy«A/Fc2 a]zL)3%9[VTMKˤ;Lcw# ޜ9#pL;쉗(  R F` ¯(eFf: -y.y?cI1<栥+cP3oR $f6Ed#?B<}bf2 ŃKiLkG>X@TXw2o X/Gf $g˚,?ꌢBC_$oj)%`I2T^GlXCʕXncD ̸䦀lx@ SgQ'u2j#nT LilLݭ/cLlY5Let2GTD0+a-߬eC4VZΆˣmu*bX=ayI3*8w1kD\EǓ̞Tñyle-:QTbQp܂hZr_4E x,9+wmKq=Ο j=']*:},3QLA"RYC[e+ɝ͇rǞ:IӶwTi,USC]TnOwOE +cMA{IZ7K6"=]v T"ځXhOVܸNΕ!m@ܩl`;Wkb6>"\gYV?+B\TLa$ՎrJlkwɄWĒK*[£Nb0oBGw!%G(ZV兢M<^g=ǣ_r!\<ʪVԆLa=ўgZCʘU0/oI6utuև4QvKN.SBá[;zCYaC*5z;X6}A,G]!ƪ7UtUi|"kp{icwELڭiV?*6u}fgFsK-* v8IniΞ%nͯo_ +yʜܥ-E؉JVb"xJ /(xx~e;)q4mi:~]Ҝn萧Kx7=!f@3SG9ADV^˲ͣ#_+c[bv7*_.Vp WPL A(w{M94OPy~H +M/! +sFA L. B~/#2G§Ir/ؽ KlZw8CEox(1˷c?l\B&Y +g#V9ZJ$-Y`K Vd1%v~sؓI5h ?T $<eF1kp'Ul W)@uA /bccц&˳S`KSgގ' sGT=Qdʞ?6,u:Ki4cF(n2v*}8ȯQ3;}[ p /K0Qo D?pnXik Tlj +odS2}졞^cU']ylhߍ2P :s.=)ô_=0ǯ!irx<NTʴÆhӌQ$@sĻ2DaFطXoTxdoGGxɞ +Fb(v6F<< B2$޸X2HHG?x3GCkPPPa(1:dJQ½oD;dGsPV RX +qUr-aދpmͨ,Y /ᐿԩ*rPͯZ ,n}_X/}V~ +ëG^r2RQW.0Hs$$FdƵ:S|v;E{z }>Ɵ.~ezMgi-%J 6@RS[k?gXI +D-vk{W|XY\W4U8L![ nڄ=FLc R2N+ D渔![ڀ+sB_RiH;/ Xu AR>G*3psn* +mq$'qsG#Ңe713c1;竅@"x/FΞ!hDH&xh,H O9$Ul +ܸ ܰP u324VOfOfOL@N@fOfOv?`:VQ[91e 9`Y)ӕ1gj#%E=Mz֠Z4Qu[&N 0~;OYX!rr +h yƪ'Z0_\/5|Ip~+0 +u4Fr,uh7h |JϵOQ4 ws3(EM9FRغ4W^6DwN8eP{%o[A*Ҫ'qE13?/oGӱ4:]?:)(m ۭNaօNJeu_l)Ŏ61ĀBåIZDQu/#H?=rA;@t\ODS,.4uR1}dGp/HA~/Sҩ $.8A#L:e|w$۷:!ۤk@6;}=WA%L%ŵ +1uHat݈pJ7Ù HF7H-}A@˾$ƛ/F\8}Ɏ Dh&`gmAϐ[ )&'4%Fc('<WCU,\dwPn`vQWCf?GnHBxqgqd>Þ rWQ'Bb:INfAn멯65FR{.tI|}O @)yW98 >sttq_y8xyVz@ۣ +{ǰw z} )j\}¸u<ycq q5P +?>s+0<ܪ9N/;^xzGXzXxgHerOg`ά4s!41+&0%9 +w~A5rt"p~;[u2wʱ{UߩlXΘ;one;3 0ʤ+ND4]g8a29Ûap$u vK{°kDҦ!ꄫ3E]Ufjx:B5 +śs[Cuz$D#Z'fPT(+N0)aiGL uDdL9$fCK~e?g:E,aȈ\ ǮR}5SMR$ +I}E;aHzv8^}d3`k_Pk5mVŏ-h\TM@8+8έd.1؊.*c+owuK! 颦yL%8%4$|l#%f"_cHP$chblMjM<I6 !3Qkp2=ì| +mh3X?bCD-z}2qX Rk(7 F{}vma]SC)M*1d#â9!tb30ᥠCFU?!'KeRD[P"7 T=#Aa><Ӌ.>.+Fᷕ G7m 1Y.!K2S!IYpS12Hv " K$}' smFCiɩ5>c m*uNt=`?:RjlyGУV4\KTpQȠXqt{h.Bh뼅0 +JCNNgohWCJ314Qfq6 䊖Lۺw慓ɐ'cʩu8@i%Z(#XPJYh1fG~EootbX1A~@a;\syRe{%QIgo̳bwmn`VD\P`3c"v 5 }47p[6/MNmh)i"}>[U](iZ"_WX$A}ˑfƾ& nrb{Ĥ%-ToN'ђ٠HE*׷_ 9n2z1Nί-# *7Gif ͩ$t y~¡l-OClg_j6NY{vFESW(֒#5si"YX&bFAؗi]K0PQ^ѡkE1 NSvS:,{С$,CX>)sNN=hSsG!^N D#؏ ;TW6R#po+c" N"f:5є҉ڙk kT_Pjg2MӘ8hFEl-w%-" +;X҈m|3svynCC`tx#'<&P7GM/6Se{M[0Z"?c0JH ʳDv֣340o^ȍѫV@}TpO؇zO;H>"e#TTm oQC~T29 0s~0$*\5rL/61_#p%?Acncz٪>,^M3~]7`%jj7My; +}>L#˧~^K Z<8]{{C{gҿRɍWY&BFW&D׊Pӹs +\xy!%LTbZ6fӭ~ w^fd>+Iʎg T[fNSL֖\hj,?K*u0 " a/;EQ+I6{Q[(/vSqK:ݓ6_'lĆ!!MK#/!O&oi|#p~N1o4x>)s&9`pˤvd!D;ɭ GYN@+ ؈f+O{Wd -?Gsܧ#4dU[\Pjlew^hGqRBYF0wzl%H-rȌpoMHMuH&_g+6UzܥA+dnt) :]V[MK46A& +\)Y] X\R29הbbݫ]F")`bjrgҜ/DTJGA8{_=ڂ:נwh8Z ܹ!Egsz`ycR?b>eN Nb $!Sɧ#$9iLafF<+gCf2FB@(axR"A\G"؄b0PhHIt`ܥ>M?$yYc?s3uD]iL3)?W\.+bIMbzK~|}2]Up,|9'E䰟W\eU0ޱd +'b׌SOYl+j->)[p$?M~DM~LƟ̔CE`qx #N(a`p`0:FX!!i eo3z1U҈aeWR$4BFXrJ">22AwL̰[)seŸvybR7C'aDo<vKVTVJ'+V#OX&N Mr0CdC }RNeD~Π z]0QjWèx7N@W. +pU[w}jXi:-RO5X^d ?&8nvD8?t'78U4Xk숅!2?on$CA8//|Ƒ#?1E#/=I_2ȊM!Wʬ Qd׉.% 2i}xtP0#lm@*<駪LeE?2 QeEq#luN~^I^/NyRbe uchc|&ȅ 9fUBjMy: Dkj2zec~G9$-v3kk2d +{pJz:YS)c܆N,>K/4*uX[#K_{4]ftN3F&UI`VBz>iϑ&j L2;^9J. +j<ܩ_c; X3\潌427G)tdb.\13ʐD|T}fdz*99X0>v3b`^)QTdyjjcʏڧʿz1zLIc[T,$&)4 3oYdV9V̟;O݂RNEeshc;r$4KX]xN'cŚ{THc%e|f=r X"T[yv!+W=yu]Ȯk"xChѿt5abeahC^@$*ƨ"myaEv$/lcTb]^&#[-ϱv^q)E3te@!znZ.4BEkzh|"})5L4X͸͟K_ +eA " <*Dni:Wd)s=i-n, lڟ)b"u  $cJNxkA{nL֡[oNѯpaR76 ){J4YbqIvlkd+0Am٣=Ȇ ~p* kΉ%R馱X_6D(.2 s7ן|;nRZ5[d+5QY33lϼpcwho3̌ < +/9VY]=@.LYXF$#rht[G>ގ,>4lrөL "tck(Y;Cˁ^Cia+! zKwv}L~igҞy h?,֔~GCMvgs9cCN{i% +֨ǚ8[Czv y'7 +Ꮒe%#TF5IG)sWZ;PAQ 0-TQ"FDI"]M5iGEƚ8hǴ NQ#GQQག9ԽJbb, !_'c~CQm_ڑױ*NCoQ Xx$,2F @Y%e$KZX3V,K6 nҶE>u5oRҝpD눤;\v%D;uznQ "M"gy#c%͒D3h>leHS]BԜ1Gf_^j){ћ?1AQ+@]Cݿ.`#Qʡ +cא+Zm5[bpv!\ic11]!۶i.xn#ju(&u.$;}D`REpO7fIpOO8k]XGN6ų9r-9պsһO7=9t:'9G֢ɥck N|_0Iqѐk8Ȋ.rE4[k*H TJYDa5g,]mPXjbƃz'u0yfeKU}=D#M?Ia dTjPsc[mTD@`SNDŽ|B"#-!ʼ*'lm|vj;Td?.6e6ֶʣQ;da.;jb)nE4wDmTL?шerH8x`x`fi%B?NH/K&bvW +؍Zv|ŠEgH!Jfs ʼn:%Scp̰pf;ύ%J.Tw̫RՁh++=5m DP<(9=q,vW.ksfP&Jk͑ vf] f^*S =RSJlU[yuVyEvSqiѨQI}=|Xuۚi0"?{d1א5/j"KY#q<L xSj@}]xx&d-^M<(&|gTm˼١ү.ܼp.샶SR֥ڀTFLL^X,䪇>vn0~kPeK?Ro&a/Ŷ 8RM5vD{C3NܠZ=o?8}m#WAH>T֥? U +D?k݇#-M_@skndZ)|mFܶY{^hw뾱n7+_xm7C[5nZ$~4)r3 zO$ 9mЌx\1GS?lMjPB-YOPpOkIE)^Rr w;_qTKDR^5)NpMfM8TC+jۏXfm!-;[O As9/E۩Gu&,du5rtҰ;Ảrm3{ ntL9RߋMi%zɓ>4*Q$\Dɺ\^'*]m*cftիYlt㊒ÉUaNdC'INm#ȩnD?aa~_C!÷eGo=YX&佷1t2"`m(1@B2ū:,3;%sw"%3f'$+LhQ%9+n`ao`8 L?H=Rԧ"%IJ +g}a[ OM(Vd~ ~9J(30cdB) +ɹ k U#caq]v>Y((fÊ]>`y6P􃵾"~Irm:}%cݡ)ډfhi<7L!yD e}|NWWcO` SQsu.-]2߁U/tdR|ÂaotA=@)2IEvP 60Xo BT8&aQc8gQi};.YÄmRhj.}#݆%} +sR@Fn_jRbv[c!aF!EJo(FW7@@H@@BoWPᠨsaWY'|X`n # +N)>=hHQZY&Վ.mc+Ӗ ]Ɍ̚5}l*(c^zyDCǥdx9h{G ai[׺y# +gvC]<Š5SFz.B}#uj)>bFr~*t? GWzn  Ɲn0M}>)E<C0EQQp);GkB@ݫ@<4[g6 \ܭ`dc೴F:i^^uoM<ׇIN:j1 >a{\WM@u[SdZڨ&MTD oU;g')f'#&ks5n~v:L.S9 W^6a݁{ĶuzK:J`jo`ipOemC>[/(oQC ?ICyY /~>v!75~Y.q»CNQ+³UQ n<^:.ebJ;5ғj| 9lr?>/Ԩ=ݥ(.Ҕ?m}헬;&K(`0z;̡f@^<2B_~ +Dpznxz +F^S|A)|EO_$"m`zrIB,ߎس< D\ů'#$*>#*Q~B Y0jˆ{_*{Ϣ"fq4&,+òF9f%۠P&TqX57`jZ*ӼY!뛋Xua=J!ҩF>eU2υhE\nuP N<~9ݒz5,%i&T@#^oiκjk ^xNqوuTLdZF8!sQ]%>(}dg̑_ޝ +2W9sc7vS\c,ֺ&xhʉhxW E7o|2[it />ymcVav[O5%BLx +#O'=V7޵RA@t`Ng*fvc|>`0n;6%F.K}fGu굗$;˅@Q[%K17 +Vo&;ӫݔN z6 ُٹBt +ڑ=2$GT9R [܈uФK%/L7YKfsdW]WpUW#DH.FmsښI 2Ӽ NUR6eLPdq%ٝS]5Ȱ>b:. qF43c =3Ӭ Z*qˆD-~oi \Oizq>n+<@ҹ`tLpIZ K#DHI)bˍړ=Zugl)YRa,ӾNo;qƑkplKqZM)_co pNw^Y3*OF=(|-uqCǫN/(liRH]-FP< +4#bIJwGU8*pRL+{C´*疯`P+F;(k-4U.i=ȸ +H +0 +V4~t_{>|VMK]mwj6 PF{;4 j'&jfNSDcӁlc3d/C_09kWh_1q+ӡ9Y2]ēiB%#HHsݣMY1,pNsC][`.YM-s'3v@z ⳿};nC9f[Ss-(;-SUdc[gvRQMv`ʝs I'닾 'Ʈo P#lOWg\.`C-Bi1,թ3΃C}sP Eyn ;;F[{hFJ=Wۆc\|ز{sPW g=T= +M ,̎=F]s 眜{&wⱥU`(>A\Cl:yv} PsہS6JP??~ B8PL:d9Dܐ0V`QC,hb% ]{S .4s{`;िE;y5s"Hj!C ;nb;/b# +L{͜媫);<4S +I#96,^{_*jjs / HOj v3c6j_!W.$*&FB抴 0.q0^cO>qlNjhR 0$7޿l6,q!w=G`꣆>uHuaZOnO320k%cOfǺ#kk +7F\ 'qMcuqF6eM"7X΂ƆwGzȁPq]\=A䰫1SlV0a=lDR^Na'RAX)rU«vf , +C:@W$riMހmNc1VtԷi~V.P'q8$rr|/(5$'Z"<}BT-HۀI*LYu4T;;oCCmїA&U]Ƃح_^4|s&u<9y,!z x7 hN QHe8m?t?ʽDF 'QN=RC(Ҟ4|㷲K:PM᱈19=4Z~xA^oZ8%N]U⊰#BUz߼# e-ZQ9`iZ^%煳F?+9\U=Bpv!lZZm7J 1%`*-,^PjÖ)1h!jW >fӋ wKC폡 Qn DSf !4 n…SdO <P h~ LB:{z (~ޣVw 4,n1:Mhu s(k.ZUZ:fmĉ2iDWX/G#ɄB.;F:| +,CϼBi9,,k6-/?EV*מZc'I%" 8g6kRo݈c'׋8Awj݉ +=G3E~/m+0xwdLU2/]"%&3J.7Td%A UtGnDyCrWPEc )rc]#_CaNm-ĪrVl~@dN$orH栲pmmsy'vڣvd"9.E橅&X8tnp+b؝ 3i w\>&뉢 +(_2\4y?!YR%>[#v|_:zlO7n0:*dfQ.®CTŽ?8ea$Ț[d=8gjQgt> +r]d=oL󹤴†zeL0S[cD07~`-;[$g7LE)0\# + 4Ȝ1̘SQL3ѲrL_>rO$rn=\p j +[<0tdsUt|RǜSKJP,ߝƶ1>Œu0 NAFe~N2cд_sDs'>\U-ێJORVIgɒR WI7ipi +)ӴQFA`6N8"T)$9eyЗig9M9̷F)( \V'wRl볤B@TLFfx}%uuIf9I|lcQ,)0M.k ɖT䏀nd;=r;K=.d:Jn7%(vnG6rU 'JNݲf|4snZHzU7NJ;awJ*9G}qSZ_O#WQ_ep:+0w]D\U<7}MԬ|w2TVCtzT|?X}Bƽ|$ K"M3ګ7wco CA5I3+20ur(N{CSZKoQ֛h'56T^/`XNQ:dtk.Zwd\ gӭqw~ Fxl 6le {M( C*`oq/6f}gꝏP9E/:o0b$ȦzUcdWO3Sm\2Smj$+.TZ}oÂ- +Ab TGKJsUmiIIiƢSG=nux_(GuQ+d%vj{{=:AB;W3~$#_bk~JX,O`PY))_vۭStj:"p[;.j˃wMѝ5EϽ1W|s;5h.9>fLҺO&F+ݣ{ \ytRd< +$䔔3&P]uKXSyygqήbعy!UgL孹7c#-#F@%t\{ߋ6,#0}E\al)) ;O"d! 1^voJ751*VFP R)^#fC!LA`9l?ʶ|d\(^|ĸy<2ӧ+ab=ʬ.}^],FE.B2͞+Y|CUUPK n+.w}#I=Ap멕T0KVJhr׋牾sH1|M}9I'aMi֕^@\gi5 6z"S'Gc3csyNK8GQMj>^GZ#Nv;D)cAQl?ݭ= ӓtZExp` >d +;3p@ULwI_@hQ3Θ$۵XKq~WN1K& 7#sfH(mB.`A?K# *{㳞9!|*ۉ Ty/9~ ķ\Y~ķ _1x~ϩI0j=9i>E}V]g5iQy'˫o7(oR\BCS{znjLS5߾@ERT{ pIU x0e} ῷ `PTpJ ˸" =bs1 wTkiY98sJ~3B˒*ώk8Q ӫDI/bXǜnfu$`v}hay\82Fvl^$%J {%z= 5h *p ¿=CbtbΆ %'Z2DՌ`p^C>L a7 ӡ lX^x֨!`NU'm)ZHH;?w^SA/umÑ"$;] h=DF?09lؗ'#'mBz + L7J6!Zs)h9i7ùfZ"=3=Hd(2 +"< 伋9ߥt,.HDF4Zi2;15F{ÏLx$g8A)#zQ#V0oN;ƻ x4P{ {}c{VUȪNd$wĩutEk`O M DS|Fl^5'Nk21$@i'8v.JT}ŴY@M+)X3﯉'李4i뎭HSꧥ !YHV?B| 1X7e^(0/~д;nmE3˟-%cu\ +C{'ĶwȺ04ȢLjY=S|uEtf!E25X:K.5ؼYE8L&@]ɩєpQMU𽼈TsvU'.x ƍ)vW.B X#B`z>`ٳwZHz%YZ[pr ~+mwJ4);e?Yҧkʼ}B́@7SͰp/q#xWGЎEm"|t}Dl_JCQ7[QYNGv0cya2czDF@̰Q^!Q^ؑ=b;d{ob;bd&ĕ{ +ZI4Q&rɰEVmCuA#gPC_+ȟľ8fL+q~Kvbˑlc~a y EHBH ;|Q>> 9 (}Z29H[>6}b O>cbh=" >м }x|^HK ,p$X ]HE)[T& :bF)bz38v,>ݿ6)o70H34P>]g?/Cg/^ t~t˃=?WRt!0tՃstZ+#=%nިa\(oo4:?6S,'|'0`*!'ߌ@%'l>Tz￴f`d'IQXW̴l.Nu+U +mE#{g^Mj-+ :;5A%;Thklx`m"zWǷ"Dv 񼌠pw=U -1 #3G}95 c˦58% #&Ԑi$N' F̺'\V6@Q@䡢VGQ +qۆ\FV}`HҿI$nU,YH+4 \VЍeCom"gОݻb8kOک$@ZMRUV$oswv_IA7ׇDP}.QrO.}ň]}T[6`=FX}wsN"Qj}{ C)aX_f@A}>`LKp0WMZ[8m9C[5j m!K <6[6 gJfMBY6t\:V ]{u:Н6`N 'w~r=hkA{9hR[]"^B;PܢJY +cےq^ӣ{eH{UpV! +u::)~ -72oo0daP,kmME`p+a ٵIWXfy fie \gV?N?6} ї'g|D:6mh)&xoj'Y q'pXiiꇗl]AiDȬ}{?ϻ;֝p?tB<:g T7ZnN"_}p]A茜7~z)p\mT]B + "w ~ ~,FKBt?ήJ$? 'hZa¯FWt }nU7gcv/[v qzb5xm>~77ܮ~]">qT&p++wɿ1`>_!dsfNoCnmTUrcQ{mO,y1X\M>5Ӂ) F&(܂ $jrߠ` +Tǩ\*2[}r kg-Q0,by.ssMzhpvͿr$spas(чyŏ[iҠU`!ycrȎI1mE_Ө,?Gb Ψ7>zժd=P_jI\d(?(4IK_Xs~K pEpRdʋ4I6 +~mMhq5HlJM+oX2Te {.*<׶a2)6*-ݕxꊼޘ|}Y8CuGZBA6tuxpl7:F>[v D/8iIbF aW0yRK2?:jJ$< 3 gZJ3lSŮqu`j{&h WiAYoO"|*𯗸_m>sܸ4`er3 28EݤgptB0Ԩ:9]#0|!%}މX""ݥ8%$O "ZG3rWmo.^}^a5.;d {B)寺2w^uUE{pQ8 y3az/I_뉡a+|J1Kol~6s/B|"\NT](z`u,FXbN' .u ,XEȺ[uUCϿn?>t138iNƢ -7ikKdm +O7sԲw:_x*pLxK~}{"_ײ0c5F[50#=ȷ^^mpH)@8܉ڂ+LtxV]p6p_2*Mhx6bp@PKO+I\tMPu3W0%`wB4#!ʕv y򞩖q2xoè +S!":[UdG9.T汐'739tj7a~(8:L>]I5C@k^:VCF }wčL\#NYNaG \ZFGG  9+4?WK"tDVW @0@T.u:!ǁ3y~h7$GeL :nO؉+1ZfqhdšIن(Ez"#QYΓ KJrUωL!dO + + GFG唢|(-8dtx fΔYFr)t%ۉџP89c#жa{ftc>+#:x<H__ Y["FeLvWc{qxgA(w/CN,Fms)5BmF,WI;:~'qYv|b i&4ڙsxjzi|uSWLa|1@;CңarmILYf&=J mmbLFJFIPJEն &oWV^nߖgO9yb^DSA9TAQۯpmͣP(N<n'[h\`!G=yS _^BԚ& ҕkHշJc'RDS?UTT p +3,YRߵMR祥;ljx찜LvQ.5Mn--FJ2[y;DjN=BKǰG֫.%u뤑.u[j9yds +U|7iBRB~ؑߪsu97XW5p׏ bQ IJV^rdT^4Ƕ:oTãvϸ*z>4\NK?_k7WqŝOy[N55V0*gs@DC}-w侱hz8:ψwp +V3#/3}QQXuѨ^ 3<U"< ЉZEɤ;2%jN&+2 rіh.sk͖:x0@kЮ יµaČO R3}14)V Ji^-jZup[-={9_A:jd+c%,IJ汙ŽiT3g@)}I4@,f5[ә +nw01 7Ĺd8U=*cυkbBbl!^Fn^l˕c#f:qG$Uo8 +񅟌HJ}t+J=Ets:UaqRSybP~a5IJT] I@S[ȄL.z6%kф$MBRusPaFJPܔBիÂ֨٩KĆm棐MFΡhDQ}!KKGc)DTqxբ6帏=l- S1PٿVׯi.ٽ LR5d0)P%U.z?uTik@y]V/I>C\&ץI^㵸l;AxYu +`VяX"W${`g^Vtt>bY>9#;|+,m=N֤HGRǎ}iydb^P: uzK$#sv3W~1OGy;I;o츫$OgvGO"RcmDw&4U/./2K0].&Sv9)HWm3TAbК^/Mӆ1`\@ļgO$Rǥı?XCꣿIS?wI?ԃ,w/{!D؜C2Պ uw)a>o= )r(<ℰۙqۅp^%vx R `{R-$W::*i鄶nCO3bꐢPl:kqi!ˏW)ʚ25)=dWlt0E=0 dR෋O0?ԛjǢ#W^1go2??4]ɍ;"o_&o.Uđ fKO?J\e坐XW8xw;cgr]eg^?Nκ +_̥F6"(<{;Ѥ/\> Qid*=53ʹ# ϲ3+Sh:<2 ;6rc뛦=0=UC)4$Az0LP"O`&sOpeQ;biUBnȮKsM2O|J2$[/ fmu&c ہ>LtH~ | y]|_-2g2-FT+,uj݁GMPM@2c0zCӫ VUF[{W*l M1^)ETMe/qK*df`Fi\#Ŵtdn|٬ͩ Q:1_+2<*?j%rFxRv~z\1RF4y-UndWs"ø+ɉnWevDDImנL7jVw4pdwԜë GXYp옙&)536^!39inZ^\ojkRmbތS˶9UdcG.!0+DT.EäS')GM馞qIzz5qݧ=uc5NpT}x &ύz{N-I"XV'1DH?{-!ůn1_ gg dp=@zxL c(1|#.R\5qɅTQev6 +@X-IX}ҭ7fй\ڟ4oї5U sꮉwRedC~&':䘖zoīԬC2'Wxܓ4M-y' ϳ$^:vS,7ZrsfM+r.lړg05zg1}D1(Q½qj(½O[YΈ$ 6v+pGm;A;}Ǧz_ƈ%=㼔v(ݲomg ;=O +^hUHcoCxZ +IgL>g`VHMJ[{bӇ"c.ݭȖQ. b4iq|X+7H6z9E jZٚ80HhK)7D\L{*J2k +\Pb2}Jyj)UyU1=]О0{a W 0Yݪ*j(o0'P52~/ mW; {WL?lPGx HC e$Fq\\x0Fa )}dY]Vq}zrؖr2s +LzRLV |"~ZF} ި~PΠ>"#렝1|%gec[bxS99rڠH jd=237jHÑޓZiJ=P8%?)EVQYݣ#9=$ &N`zkZozhZ +솺)6߰^rj{JF2u] 'X(_Y^wɦ ,Xk-jTp`HE#:Z/.jmqZ6JP+4IǤBiE1KtxQ]W0g~5wJ"6 !DE%bo]Iatjnplggѽ-LmBpw ];5xp=K-y7s?g ;kM\꾻-qjZٲ^H0k< )icÌC~,w\>P˶+/pa`S".+ĤEƬߊa^a Y#gGɦ_FN㥓ޖAf&Ͻ= ;Vaw~I8%CepmbWBZ3I5O7_^~Yuqdީ)!矎Nsބ,ۼ|wc+M1]0'J*Mw J#Q˛R0[5YlaRWpd;PJ8Ey:JnJ%yׅdpAQi1g#]D,\2J 1RAiZ\܈tm9@$rq"vEueL]և[IMw@1! άo&6ekg|^vVHoĹkM'=OB2z[iF6qѮ_Ѕ&{(t3SskٙۗϹFd{.@κ?k.T0ٖ%kN'1+C򟹦A+1SgG`9ηum8B^cTn2ApsfG-&h"vXhpo9DM?i weY"S!+e%QƜKwɬ=%Z4N?3Ss3ML40ר A 7@F8I;Nxj;zS4w/l9:Ю2AxWȒ}9I#|@;g lzixk?Mh|!?}B utɰ`>QrgIu>)7l̬yV Ypp瑦D֜bib+ fr>E +298Ú֫ao ƲynR8Q51ŗ6 LEh,ʄ%UC5>L%=^S®uHWw~$u&]fP[pD;/ hc/ΦA[fKvBi7Vڨv泽&VADVR9KN%irtl GEt-*ˈ?x(@a6 6Jta.^L.Ol:Oȴ2Y@HYELT b j9 LaZ[sBJÒSSK1Lk5=qzca:qF*!CBm6G{wőp84 5?M~^15· QTGP8`v`L@ ti25|;&;ekQ^FTR,<gX(?X5I%X$Au,mIC@cpc4[uqO mPF< lTAr9mUs{EWZY tA ╚`24=<^|A ^@gu\ ˍ_Amt3=kMj\Fba{kX^x2O(\RfEp.XrAt\Gu@įEY7hiڷfQsS%/r0y!hNNy}Ӧj=:-oGe'j #aZMͫwM ?4LU1_gԁLLoď(+OlT[sx͐jk}-?S:l.];A+S0},[3.][bL5Rf5W%gy^"~?SG-ŏum_c$d + L~v_婾8=̿JKKvdX[MYޔ)# +q;g!Wn^fM QURGKxku!e:vZJ>Ą`!KD#fh5;K(fN ޷:tFhJfbBE&C`_O-N<%Ɖby+B:wmi콧Ui_N1`}$X TvH4QJ?>NF!S҃|$3\7):ݚ2PmxIB}OϾ=H +lKgL0AW~9Q< +v5R~D#7zm/džެz/acg +l+l(n;Zd<#?-?Œ-26w=ͶYم8% Ipyd9xSSs<1?퀑mh4HW8Ȱ)EdH#$ŽMZ}.~]:mys;*BSLh,Pd#APF͝#p]~R(p ԓ?C^'nDZm\+!gJcj]A>EN;:h S7^A\5)%: /hg VHʼ:[JJ$Qy*YpHb֊)Q EOb:ϐLoo,R'It[wX$[Wu +XĢfu_%5jA@m_DJA-icEfdHS☨4;qp7uzd5Ũ; qqncc$e4կUx[_.~y rP ;_/vOn<]: Bo'bUfd%̓%R*؎"Kg3[yhmth|pW( =D)B'7F1e3qv e)A<^f+8j}N 4D)G/3L/Kفq`ſb:0 uDYX 5; !ޛkqhύ" 3Վ9Jz0`XYKIq4/ ")Tvu]zH}̺QgRRtO(?wᴺ;s"{1v+ 8c2ef&'!u*U//لSH?kaRZd@F*/nth/*b@R +kgW- ZY{׋(xa1\on'%5sA3/@Y#[ 3Hmdj=Q0 --YwDXys9Fw,-lV@ Ktʭ"Gx mm"~+rz0KƪĦb[dgŽL&W{h9AZIoz)|l~[ 6`^ ;`~pZ)#H̯71҆0pݦ|a!|%?8xݻ=p"0x8!prnnшPES6JNúZ:DL&SLf#)y SZ!~An5Z}7uXk1w,G/Jt[FZSg`aRnH~F\O0NojsOkSA&, Zh +Sʚya|-G +WE 2"YF&-HqoF%S{Dlqk;{ﷴ + + 0ܩ0p¯PoQ@,H@MTh#F9ta(74.Z-0t +9Ϡ_V ֱ:a9*J 𶘵&>3{6c$}cuoךXY*msrEԁưrFoc+\ +o)@ Xz}^4*2r`޺ym< oc'C1@$pl~AHj֐A!XCFaU"|H+* .q\ꪂػ zWΪ?-'7o}ҮqP + D ^)z\ ze%ZzF/.NƆKBL>6db;{v#njQDB-B#-+i@pOq_9eHnUVjx,We>X]ȇ&=@D{cXNAA,2?u2pb| ayp`rdWT8UK Azky^/ L~}jzWXm+!/>}q+nN121C:cJP` ݵ rXWhd8 5',YhY雈h3vv@8Kv tzx-FX09+#j7joln>6!ayCgRH9@)ɢUT9v +Q(ֱAKPNT#lҤ`"^<ʵ~#Ob-5Pq{VX(B{R7 c8|#*9,*eH31@ mykM,ד'vⴐQ4w zUVMwH1:P^͉HK q_r6+O*49eP&T;En~|! AB[p qH/;慀y/=D(lC1$g4๿hG:EXO[tNGSgpTѮNdYUk"}HwտIg L1C.3g¶E[xC|Ť$ԺRH%I8V$poJZ% +#2S,aѦB")oP|"`zTDEl7{ ёvPpL|r #2|=PA#{Dx tc,HWr}aRgBR0=/Q1H{3yY^H[MWad>?;ـh2=(UHWJb,r͡2s90]_'?;$0W-fjO_V BX0`jg3%fzt|]Et{7q&gBŹ]'TOQ_pX)X_@W +sf*X 5rRz}_RB7cww*yYzogR%^*hzK|]1==z$㗭&ƬRm[d.C+SSJYx@ɘ=$RSAQ"'{/yZ˩[H6EWtUlJf71 /2n󔗨+NF +Qm7prYjaɂV]o;BNGg>C<#/pU~n0WX߯L3oq[g. 61(' s_՗ʒ#2% YX[|j5Sz& &lX_uт$bIH|ߍ,!\d+ZEx^+`6JdlQj/ag^UZPkr~g&q&p#;y?Fڀ6Áj?O#(RA Iұy D}8 KM| # +K5U6$65Z߮zp xdN!:]&6P\t"'iXŚ(7~,(KuH9 qq݂a8 g-XnlsXMKVኃގܩ4-j=S),POV}w:6c\{xL/\Ȏ.Ax;UY,%#'7.xS|Z j5 Z9qQ.qefḚ\-^lmi \mLe#zۅzw[{L;~_.ՏNزMOg;]4^EE2_ÑO|GH̺ Gfh[:L##6Lh$$6h*1ѶB?p!g&5hdf(K ј]\67Ⱥ^o]#̷z|}mڍ͏?\LLƆ]=ʀ珷W8lBj^{8$ 9}n, .;/5Ǻ3!Q٣Q~o[/PQjiwo JϚm6t!Jei"_.zi@h G;`oWۯp#٨7,^! ĻFWu_h|2qUJǶ^ +ц#ED JQs2,ZF 3>XI_M }5A&U ׉9[ũ!3Vڍ;sBwScǞ0+'3[WHԗ 8 ?_ATqj]ݡZ]>˼CDB# +@?ʟ&GgFOTc+ka,P`5p!h7rk-qA,}XwuhJ&Zrж+Vx (o~pZA}4yw[XrvE@ +Oi1\(n1)MxTFThL(sDžu[eC7cMSSoځaD1 PrgO^u70 @@אϙ%Pn7fɤ4Mq8+ +r9\DQP+Kc᛫HR뀱aEHf7455sxfd ]GjY#~:`jg–@F2gb-u~4fgL|%H8t;aZR,)0f4ekIf(t1ne+p׻E-b27 +gV) F50 EU髁Tx϶ZYsk Sv˸!3KRVG~9SzqS2rɓZv%ӍmP~5JG#^-6~;̦oŕ<)UϯgI7a -ŮWGi#T7 +m%нrM:Q){eĠ1 :0Hd-_QʍoH`#J]unԳ! +y."+v^*ۿ +- >+ ri/N@% +i;I" Ij aEy3 G6 +;H΢ /* +37dv )m65qK>E~C ܕ:[dS~)ZFXFŽ/wQ'&saP) ?H XV`bHQ Ʃõ挩s ON<ٞ;F/>b7d;~KçÓryq:ɔ9F@I7Bk!-䈗oH _v15p7́J;M5{#KD|rlnAM䕯q3uĶɳn?X܉;^ QCbqdZA}Gc+cGGE'sSIJ +r(rJ-rљYQZ~h$,;P lg]seub;!.@F ߖQ==U ?wHrq5$JWh ؂l P;}CHA"߀rMA'6SM;XQv*"7^Y(#(LfgPYb0MVEٛE +E99b⫺J]gUּ@I (-2Ϗ=VJ,Jq@ݭʡ82ʬQދ*aS|R͋jJS9 N}^vhL79pGf~0g̒c.32Y[8!qH>69Xe?4 0벨Bf΃cՃH6RwjeT/@͗߫"?cXKjPR쑚Yne"Tr'aʳ$~a76v߈ZCCe[l%-N3mI?\A>t- +@z<.mV臇[M{r}jT }鳚 +y>~{>~Ot Y:"Ęcgn|l8Uo(-zBAP:J9ӡl"MQ_(k@CJ+tCxNP L@f$":VдQU'̊10&e'f®џ&G$K42&5D%vj\H܎CӇiNS iMA8 vBAYc0~˷ڌ 4l),ec":5/*TgZ/'M,I(/-UŸ7' FPo.2?bgOZyEus|`> Us I&8 +k'JWј +ּǬx#BGWe&'c>cRDFe8Ir lɍ!2'`4<-CSW6Ziu>QK8Πςq~H-{xPrGyAS7j5/WYaIHmOjtt&ybQT(mЎf́x2̐ErNT2r&i3O0PxO۱P)d[l?:|yI*n~(Fj\|5+mmoʆNZ_[Y +m$&Vl*WW^lZ@*75 |B~_pߩ --ӮIyL.шPE eo}CnnƇ'ض-هPO8$2s{g+=]2^!I;Zi꛰{~8dSu\j8^_*k*q6ScfMI"lB5@@}ĂG\Z{O>W5 iwC@mH`} &w謐 }b= 1@@P +B(pm ~EqwT?31|Սņ"9;0 +Ma/;_u[ظvXsM2^ZI9 NIK=aJ$2z~w~ \7StMH(An!"u N1 P+ u}#]S&A\"ICc%AwP$thH悆Q߆ +}'9A*aW#/F-2nm-imy%Zǝ|!ϡwCm@no,]I$z?uXӌ3pS1nպ[Wt+n~N/6kw7].+1.\ݧ\N'ݢܝ\u#l=#u vz/h*W`G墛/NFJV_pY]VΏRvZ90.Ӽmn`n`WÄID5okFčt ]`Cn?\w$QP-lҼ&rW*.*b\q qKbMJkf'C=b=Gɝq6leѳQ}b\"HsH(ԉ֫zƖt +sBq\_7s ڂޗeJX–jiM9>l-Cl/Ǎ +3k[uNKBE^cEl]zk6#Gl>X}^Qy<dsdIg NG+]qBl D8N l$w 2:qLJV,)saL@&$^P%^gv4.RyVTP&v4m,(J'q` bw +5$cwPl։f5SGP/`{T$8ZcgC>C@f𳤌h-2sQD +GPL8K^׏QB.KcKޯfLؑ2Lv)hƽS,-]l}ugAmw*\+kxZV9jQ' #J=|fw7ZwW1aEι!,#Jը.^|u1 ND,Z/#1"`cLHu w(.Jyzy )n4"MWB.=#] lu hczFXd>wܜЭK +.9Fd|=C(𰪌yvG= +>M1d,vfR84B|1׻4x}ݮp< +3gnߝ.0l>enI)ӱ =Cϖv:0+^|_P=lZ`$y[=9c"y/@dG(,QC0KDE\jOtхȤ6n+E}@AI趩!+\*檣SZ*'SVޙ7pz(pqY ꊖm_'>U~ QDTavbqVkf"xl72r^ku)اlȼxJP3V{+Tu&JeCܸPRpMiO* 4vrxQ - %@PQ*Q/•>_r_W%rBZj *蒚dP?X;b +e553 |G>Rd +]횳3:pHWn:N'>ER*TVd]=*ωP;'-X]+f KȐTQL/&פHͼ-4pCQRPGki)U)}qy##B40f{%/QoU{ζ0˲UifK =~h 8%dϊ9䢜a\/&{j_\a&FMiW 'ۑэzc|UO 3d7YrGH+2!$ HRCNJ@<1R+r4Nk9ӷr"gIg_ϔ˙w|D;7Y3v EPi8ܜ ހI@s;hw !;ptM5]öSsJy1'r'{U%,Yݦ;EJt5CqB pɑ"гp~N3cs7w㯉x= *̞$TT"+XmZA* eд^Gxfvj#cO67/8 +r~n\<MMqj4zK0UbPp 2)cL7Z>uuB ' +Kc(o`\EbJKZ|2*"e]8y^(`V^X|+XwҢWtF4s֭X󰞴wUo%KmQ`\xEY=#?Ɓo +ƿп[A"zt ÕlWl' e@WX%Q{$瀵d7/>[KlOk-D*"~5 7bzo{66||X5q(T. Z{?v\owɄMA%u;[tIjc,.`X'7sAhLzY)/)XÝeD6h^l TvAYlxZVq< ݴwbEn{9*c|(#p#HI ?PP IC?Ֆvwܰn&CC=Տ$'`$,[;n +|[cSs9_1G.H0Ԩ;'H ِoyU`F EF^SqO&}RD8p{/:^ AE t4"eQZjDɹӆAZoOXb -++9]^_|MLj՟>gvdA@ , W (N4di͕:w",7RnٰLH9 M5Ԝo >.H]'qE8h?>C8ߐ;j/cBNru0SSMLզy‡(LH:eWg[#{xcނDџe +mrr +uVA׏nHq 7;֝~` O*>LYWiFlwRJV'|E#ߗAw585S:ѐGmNrό>z8NjDOWS4B]AkC"_lJZㆅUU!1jD8(D]$ZVN$T[ /Oe5Cb"ۿ۳Ii|. +ܾa= +}NQ$B~8=p(Nw!/:ʭSI_o~%Ȇ$r7&' ^`g~)3bED ;!Cd7/ fhOq.:!Ek B)YُȘӌ!J$1.U)SH5ƐG<;CHdIʠZ> +cIlJp7Z'WNO@h 0Ɣ UL옐 bs$uޠ#.J4/ HzU VkØ6*Lǻ "Y*4R^`֍l|S!I7Z58)D lw!A=&XסZ'v#1eќx-7[ʃxo h`]z!Xk(| U3+yrRF:?Cl7෥? J!U/ +l}l1G]@m^tl2üUãt{gsvэPbpzv&t~jb-(qCqaG`S !E_\XK3o !F9ĺ}ؚ F]B,\Mgv ITH +Ͷ0Rl'5bzRy7$߱ɝ4jѶkW]Iz*|l!\,5ݪ'w"auW<}n ֚خr㤗bȌ[*~W|Ԗ7/Um@m>7`;!Yb. ib:Q}Xg1q@>4V.VE@aņ#:-pdC`sk.IޖP`Q}#PuPs[t17v$v#~OAnx2 n<6 EWSC=^/uܺF]ϊt_@BS<Z 'n )]Aޭ'օR="MnV.C0 C~T嫶hߥm}E~…q#m,©Ae!JHq?Ilg!َ_j+LpwinQSuS%/8-.ZzL}EMhq=zFq7~lb*P:^ Hos>T4uT*yex},& ?eʳo_31T(3v܈RTGРB0BUP!_uE`̄us7~=u!.# \mCq`{u5K4h4ʰPR4ZT#vЍ!3aRW׍IS m%$Fqa$% ³^`ë]Ik[!+k b(CS IHѺke׷)9c6e(zK5|2az%QVDtGxJ"V[o|YJƿ+=R3!*Ih]f}L2v]t:8 g͋i^{mrdgoNPCJ|QEAַΖ!l۞%*Lכի H>-p> :iUK6&ulTЬ2Wi|4.32!B !G3;\bC݂K̒eK֒i¾Oskm&EIoҲA}}Zez%\L]@_6|z[ +z;H>Gj9MDdQ&~&.0 [*('/Z*9 X#`$8%EqTo!x~ܸ%nӌC),"yACub ^WR>5g?b@򄏼, <( !yѧIy|r^QqݠdIU헬̺*bldNKEHV $ eBlI-Huh:Khj '<-ZZ >>0j_]ov6w-.LjBցw.-G.)[YwÍ ##BK4Q $i7#^#Tңa_R*(~Qa "dwޣ',$Ŀ8ʚiR$ +OOho{z Bԣ|o }/Ɍ$"Eʋ2r9D9wW29},ovξ\ү +i&{Hկ^oe +|ߢ#~?>xT8N-KUĻך[W?ߵrAN;tx +/mZ[(.߷Û.rjxXא[CJKL/a[(`oqZ:S՗f(H T]e[ta`+ضoa_zC˷,펕 P!l$pX5'[dxϐ A氣dleD3R;_HkXs0cly$D׬ALr 鯂dşڰ/N^{3%=MA;`)xBD?~ĘnNI̟$odޫbbɤrE-5~AnEZ^Mvߗ5/VYpQ)m)V10$<?duԝ Sm!9䮼[Sb?ECbNZγWwLۀkԤ&PA;C89oTp/C/tu*i,*YYۦvXTAZ/XcjSq'Z ZeTlBkI;gQU,wuJAvgG,ظ, SV->/j_N/60즐e]aJ?W6D$>yCeF\ r"V97X+b6!PyP?~FȄl^VgԔJ{$)S;̨v,X!ځ0Vu+ȸ]Clk]punHPK7R4|lxy" GP\13P-ׁ?8V'oӮ>uc:;RX&IZ_CiQxrcCtѹ|CrL~L*k504B?dJVNB9]AsR PZ'IJ^Nkzt o#ye +G{_wuy g!'M0>F|}o| %Pr1a Oy:wC ,l[-vHǜ^:Rhl-BT8ʖ`҉K kz$z*.E%x-o,n ^x2H#9J_+?ΎH\\EQmM *ú/7ocO9m+ ޼޼<ÁOho-6R5h`?i +g؉S%_. qLֱ"mEko|v79ht KkA:M /CDw4P?Ͽ;QA9}RtSBeget7R CJĠ~ !/!<`COʸcW[RY>Q:\RX W٬ԩbzB:z3jaY{fEN<# UY9$6 ] dps*,MHhmBS++}-%dQ'W̥ +*o2g].KDд6wOA_vtE%.IVh5qE +V:*$ lp}j!_\fap#qSWg&ۡgpWkid@9&Tb.\^.)UMfN3hU31gJ '+^6S8jF(LWqO?|wM؇fEb"ҿ@{W\N Fܾ|S\L$WH[o²VM mg#\S5Y +*CW=[ +<-/ұ)L,-Åjlz4T 8%mKpf{Wa|% FlJ>745}*cdb1fLf躴,B Żt+~隭Cb]AJKIEUUyrwQF) bI+D;T9ۯj k(5cX0~I $q7G5$@:MG2{eNt E)=n|Kߺj܆Is'3ŜuRd@  Q[2.{LѲ?%~ۗ%m{¨?9h*ܓM"_ Mx$L ?Nl"Rl8vy~-x1%V>A.JQְ(N#aDɏ$&C聴bbrꖃ >L; S5Pݪ)b:q=m>dGSDmJ~7pAN(kʌv{('ߩGnտkZ9"Nr d;sB(ki沼%#^ vc5HG|I;VwFR,\DEZ`\`dքj/` 2Ԕ7 ]VŸ.''/`?n"_7y[:f-6ayNE!wζX~CxdÈc4MJZw%mlm%Grx$ 3I.32ȶDJ,j0;[Ƶ^{!TGq~UT>:g]ԺӼ4Q4|!\ӋI+Dau`&L"שn dLS{?H <lb,v/0ᔔaO\E*߼QS#\&N|Iv{U9wM8Tiޚ#$92B7rQ#z6$8 .Xc8WNVdZ0]W)\Wqy=D ` #iEW ޼!MXL@8Q:3?ɝ"i%>;0rsVtydC|]xoY +^yw c7 R3 XI }b: zW7iz##E: ~+<О+o:Q3LcJʓtdu=jOΉUI!X2U$3.\,Qn_Ќ#[(,ck/G*Z 8ryJ!(ߧѤ%t%{[;Y&b_& V.%Ieɤb^ gF.h4)eTrےk;EB;Uv5x[Q#^W..4VRTc >f Cf,~f]A)w.h2˰1F4\Rԍ}Vf^IQe)D՚DL l[i[aΒ-0,V+Pq.o/qCGz,L9S'l<.ofz0]\Sjq\>")a F\M_<1Ux5F]'`QGИu4i pFaEu9'2\d7dW)Zd[LH;WhUfJ||~{s){4iS3_iscW;[{ #:PLκ +W"#CT2>•ba9E"TN!2ɷiQW3 SؤRԱ&-=Zǫp3x-OrѥAcV(n#mِ!QqB@'#D'wO D?_4v8.bne|Vm۽[Q4EV`a.˹ysBh3_b+I`w%2Gc?1KZaSuj8! m7 ,%־־ɴbӽ kĻM}?JsŔ^x|~{Y>CznJ/(>,o%M?k_%9+9_1_S\ mq a-]s><85+?pǚvOHjwKs2)=T0q?M}L6ҁ5k\$AnZ$_J('2Yd.U8y~B끢"ٿN7㉎3O?B/LC7,o)zӼ6@Ũ]*A|M|ʀqsMt)C{k|{Xszcu3SqYٱo# )@W&M^bPz +xStҒF ۈ]޸*"VbBh%ed,iɖl@"Uj^q]7>ݹ d֙˙f_/`⢃nǸp"Q̮DSϻޢq(||=9JLŮDٱn`(EmӼ +|P~ ]{[D)2A՛ +~O }gz_q`ڃcvKcŁ˵Rԃ);,Sސ2o΢oouIQ +Ngz[q{GڹlSHuG=ޒ_PjH%;{n]nnp3oM4{Fwn/efӇʺ/搭]6k&_SNojڃY|FRZyWHQa'>},2+US&I;G;Г8_U-X>[N|ݡJtezk9{$N!Wy?ѯ!'=% +hF֒\*]:P~TP o3vp/ w*׿lH$j~B\&q'qEk)Xt$.*'=,[-6u~F59BÒ9k WYYɡn>m5 + bXk) v51٠$V>G=Q$=ᖁLLV|WHqPb]̢ԉNU/|4|8دvd/`Đ(%i:-rPdΑVN@(ϻp3~I)Q*Qh$=>ǪX2|L Cཚ)Ĵ%c%=0~YOq4p|CF OFܹB- n=`th K(u8f)̂(TQ]zn_ՎQs-,$M )}0ĝuZ9!D޶sX~<"i(ߢ㖇''t<v>. +&rьI *}"}}qF0Gŕ-J*& b^;T+b.m2mqXa bM\9gM?>zU| ! +:iy-FmFTVІT2HU&]~| *bH(ݔHWMoDR!Nd.% 5L7*w/zYFsDkY0pTUXB1ۣ2 lK:OMFwJM`ZMWx;?@hFLPIOi95^&,bv4[}$~f[D8ilFJ6N9P2Oy?0+g0rcǺkNo8.wm̊M01x{UgZ R"rqS;ί%~BC*B@R*(V.8LxRXB2Ԥ%!{ UuU/\G:A~7%C|#PCxݘxJcH/GբXVYGNV9"TBvvHZf+5ǖZaDžԔ+WPLy(FqCżSuX0#o, nXh液wJQTXRWҫm* I91!aPsH$A(:~BցT0t.~How"b0( V#\ ̳vLLrd?dt¥lЀ_X-d6~hDIJKʼn` mX[%1AWeލxEXV?ĔS<8 o?c:gIs.C'MH<1f sX`|EQ5NO\D+5 nSĄٽ7$R2@Oq I +{EbJ=Caaﷷ + t$Jƪ#ѱؑG+`&X"Fkf%X)<^EAeiA~#jDwhިQI7]amm50!a"DnyW83H!߻jfɐTwDrH<*vox.|Ma^p*;rP,;@]4 AԄ ?v dQ \ޠE;I,%KlD87f!Re:=S}]lG;ӬbYtc:)o@W6ۧ4a +T(-XlbDh'M}q"G:ܤ/=>\I8|)_&,؊дCQjkMKY79fKG>}0 CiYxcL0HķJƩ~i`%\"j,-Q:Kh1]K7Be>"#[a5}F_nvri : 2@tRNbE(S[jbw|f9ɕQ8>;N| c3N6~]|B_d>Yo0;#}YAɃ#Y%œu)]'x<CJylĩZ6ؽ@Ll8rS<* FoySi9VVtXe 0zEV~]]WM]GT-N 񻠟u6z@aK__+X;K|xRm@lΦ@mw\Нy|+:< @mp(P~Dj5gfL}++}C1"ꇀG+#Ӄ_ $V-C|y;:\:Nϥ?ʪebt?;oTP4 >q%|f=wyogg \VD.ސs1nIooO͝ 9N@G7.]y~y"o R@ $I& c.{ +aWexwBME1CN 37Ba7pWA $aЊ󄞓G`A*AUy$y%;q_ygtgiU$<+SUqxL!fJ}27T7RL%}I= vׇ"OP t;FF⿏* (4v +z$JH~CCcGG["1Pf=FGn~]~iQ$ZV[K+Kҥa>~G[+g'cY3=+/Kql%Wn +"L(Xnܷ[qӣvl6g[@u_W$}zmt)Acw?~ +,sm}jbbnc,`nl`nwT1}5#2, +j|1(?fN>CC7~"bY*7%53$5$EJk\gw_U>Ur7W3Jwsϣؠ(~u6<.` {ha,TtL/6l )^A"?jr]^?H3?hh +vEߍpBamT~XztE+ 'V'WO%֣ƏOt/?0^?흚r~|s>6w0x2"#)En0κ_ޯWh'ۺ[9-@Vƞ.{?*Au`4AK]{DZv揔@Y۟g\{ 01Czmbkb,&;\өw ?]%(U܇߀hJϢ?H?Fd;Gm= UVd!AE=rӍPGu69O6FOLQ'l8JɘQQoTk.PwkJdYs }~ă\"XoY?/ndtY>o@oM"`+9o2"9<h0~ǎ$<ޞjNM_8&?v5zFd#dhY`e>O5x'ٳ7iͬxD|s-y` dnbhnkᔣyƃmNw CϿMX &l)"kܳC_3w<ur0jOű+jVor? +Will(Yqd]YyXd%w$}`/:u727y8ѥQΖ _o<ݹ瓀<(&GbN֏naioϞr ]sգh񇪮; + $xε;F6 On /ڸ;<Aj?1]?әGJٚ>j_F?h~^6Ezjkp¾cj6 8`?hٕF3 g{DJ{ cM#qѐ>;(_h}!FQ;yڎ)UȞp CAQ?OW`~ *W6 6g+g+oSx|AkmO>8*t'e?30ρ?hzk;xl &myat#1+ ݚHL4ppGg}/` OD[<{?F+;?fyKp%.yAS!biT@#參meʟL1s?Gw>PNЯh?[=Ggwh|= H~ZGw ++~_=>(ELv.7GF?رoV)Ӱ?㫓Q#7a;|s'chg% (}|z\ ЭzG/"; {cm XbRI$lqqmV*u z?o']fU !y +=;vWu|Q*NLSw[ԱI0'*/_>!o4GYҋ@ߊ*gEl.C0R dCO`7o86?%֓.ViPEn:={%+f3[OMP{qԡy-ZdZx|8Aw_r0s"wJ h;[LJKnV߷y-qH8~(ZLNZA8ybV+n?cNV̤ ^x )LU]P!9Ϣ?>I|˫Oԟr6x~0  MD?68>)` q:m1>ƼRs>Ϣ?hHal/y=V|kS]E"D?L"BZ~UL}w5/9߭ g k3o`ʔG>. q??ӞC~EDG@5AGFF[Vqy §VwG%mm؊(gzŽϓЀ?:IH|v &4{3뚞C~loZus=}ρ+j"qit9cy5IFj@@)o{?! nK/0HޟK%]G%|1Kq\G [uV97sY|b?GZiw\7#4sBt޽2N/Sl Pܿ¿|TKGw(U~K&cKw߯OVx}kPϙQa';2-4`1Џǂ`9G}gx |?駟?qŔIxȓ//4>{m?i.~r⫏2sa/k8V;τ?M@sS|icGLRdB,/O~p6c* &>A폇-zMغ}Q1su1&Æ\~p!?jvP{(QУhp.M̻GB7F?izK>vz掼UMBr`KȂw7V?ߒ3bt+4ObpP =c/x%hg=  dw'< 9](7:sv _;[a"N!J>DgMoB1VIyg}'@}|8EF@C~tm,/`b `isg8 (#;Xs?І=*7d9V彿b~ZVP([ٙ=|NHr1aW,GXRUPw;*FX8?!,Yp~;,eb +;];:aMb0b4!?>o6f׎?j'=[etc|# 1{zQK q޳ ]n!9}GJQj`n@2y()6?As B X{q&= pdE0;`| "~($pv,+ _wa?<1đ{=@@iG24i1m |xnQϴ b4>cxv&g5IdO qB|?>6/ڠfyw"~ă-D{k!sYأx;)97`<džG/KNB1~wxqxd#\Ars]B$4}(ҐlI?v? +S{0>%TuZ|ine|{8pn%bNwc}x$y"y-8+dq߷lwǘB E95E/i>Wiqy>"G9rʃXTQ[kGtCgǸ"2Ҩ4/ te>u5ҞuUu?R=ՄԞ<+r~;<7͟&lIYG=A +@ 6 Ϣ?Yr9@\Q0Xq"qcٚC(U\akᆠx\/?U0S `UVxsx?Em?fq\TR5} ETPc!y(;Jc.:G{ Pޗch 9ay? +f߇GgĐtUncP)[Ӈ=* D<{uǶ@>Vk:z@/s?l< ~$<}aɩxb>71wr~l#%Ïx"Yh93GNgIxQ:i%=pN]EE𸂓#sAȌt8Eq#+xk7\* {?s<}b0nۜYG_t0UcTHJ2 Rx39z=gŮG@=Hڊ1w0x6:t ?.raO Vz|X`tI*2;hR$?`Q;(]ݔ"ǔqqvqQ[4PX FXP!JQ 1 + ..F4&b;k5FM4IYޙcvڽ9s̙)%"6INR vJ$0[fwS-kEdekSJz#ebusåשSJ bV -}8^2 ;4\;;R{}\~TdI0!R(7ɣ:m:5'bߤaaERbc۹3 SX'Q&o]J2]&/Մ|ĥHzșJv.< >E疸 M,fuG^ ;&DS7Yn3#g +|Nso\hdYzn|0vCh2(qna+պ*.M=cNW,mf+D6 WP +*wP]IVr"TߍUK*)WC~pvXIG@Ehn{ؓ+(\N5DUaZޑ|Fԣ2g꓏uAU(U8A8Xcx"8LvIϯ䶘8˓PI ۔C&Ob?Jۛ[_3lS"62ӳxGj\K7k.۔]^=B e}+3y\EI7|h߶]C2萜&*Õ(c6tnC*e%{aƏ*.snx,]+w X%4!L~xeeם9E? +k-KTs65$\[k1 +}4v=ztFIv-{ -5>¯w)t-bc|%/괾wX.< c37""he5aUeš \蛬{&O~Wv'EEhnk,8)Lmo\~lnk3=d'|rO:P55K` >&5V;mʵ}Aa'8cL NJ*)LԦhXjN[`}B}>s(z87,Ѽ3]|sŅ1NoeO3w +m3|OO+W!Q⤈:LKAh5R LoW~onx>E̪ήns-|qLAwܮ| +_qY(,Io&?|\ϢiZ:ѯA΂pn$9b8Iݛ< xQ `]chXݧ(C3ukDߤ cqQ6Y uo a.+J5XEa}m*4#^o.%H)Ֆ]g[*|GKC:֦lSѿ5R5Mep|N%ЛD7>f MM$_ CB9gP{ZT> :|0%G #`q)+Y`)^Q0 4e.ߖ t)f tP]qk;dy^Ope-DgULSQt}p{BIlGX:%6a_"࿵!.Dy/>McDo-BՀC/\ޱI`Y41gTX^M% ʠX{n.Ӳ.޾WFҠJ(?abfFfg|U IWF +?HDa_O!8E1J*/ DZṕXW2TeSK3RMTٞI<6\As+ްA!4S IDFWUB%5 M>[z.﮵ķ`fHj.Zc?ěkblFwkuqkй-S:LCFe3udYv +r_>@miF&A6'3)"72z1IQ܀IшZQoR-0L)Fh#z63ae:M>PC k/VEc?Q梂9Dp-8 7>]Á@E`:vaf.S k=MSeJa' *D?Q:CIsf|3rXIy1jTy%y 4fޢ H6jo[9>">GQnԍ-/BO_$yS8^܄ǪW(焯>{(G|xcg,"Qk) q߬Y+EKRf"q',:h9s;AXʿu~Mӌzڃlgײ˘5X>Ex1FlKisl$go/u(&Z~/4Q* ̡ss>ca/!?v<9 +\hkY$3,ȗmmk|̟#Gg\;^T>ڌ'̇WxwzX*O'@|뙀; iن0e}jrGpN*xnkP `1z:[X*ѐY:-hvige@m2̐Zkcv©A#:$m-DgFs:X̋m-9HV} WWUl#) 4wBTv+f Oץ/O}oX޽VY I݊_NvD3њ +2zI %gw5'5#(wMS]9̯#qZ{ѦpM'*nE]$9{t]O&ij}rC'/Kv]? ena(ܾ"aaq)]FW#nPI&0GJ"&:mdMXq;Y^=1F` uF8i\?ƳLb"c"Y.N(V>Hl|Y5c%lK5X;+48ѲVWO{lbS[+DZt uƙMCCu[3aE n"udθ(DO+H}N#ҕZ5f`ͽw:79=zM%p7(0/K@-jʂ~~6Rg\!*E#9L +92\ƞ vWGt(k&7dV)'G'1mtsG֭a { B0֠ax,a ^;3{!Ø8cWXeH[_,ɡ[_ޱ;:zXؙ|EX`v32_/b89SEM1D 9hG'uN( +ҬWq~r zL;Zg (֣}Cy~/|@!u +ٌHJ5En> nG|RzQ:wa]d:rR*x۬POߞ_'";MPBӒ@Cp?kɍ&f^읒ힶ61+NoE(wv jPSE}C?(Upv q +SggU2:=eWQEnO +W'iTRv6M ,<|ѳ>03|Rʤf8b3rxX9+ZR{+Hչ/N"Sx#B9ή+y +6jj5l 5-2<J"GDzǮ{ؐQ%, +45vDb ؞"j,I(b]1TKT9 jw7̹3gڙb.WDg"fTAerGD۵Otw&cl?uJQ AlACű=)s-tGDhB;&Qq+cňXKϗ@ӉGd./aq,yf#_xx2k,½˂*qM5V_rHþ8x!Lf⥸d?{j(wߕ\W:og_ϫMmšWZdޞBю)O%WJYDa#>06p0rRhT1el7|xU!47˙y~;P#ϰ#Fc ~nxZӈD!/YM:rm"9\n3i=-ɯai},Nv 2z>1ǝNJ`vdj !QJS2ķFˎG2L/԰ҺƘ8BIHLX^͈tOUbh|X̬B)Ј5f1CSq8B!R? +EaLoZ1včpmh8Pߎ:ac#0VEf%#&zaئU,tC&{$gX4x?ų۬sc{hu"oRaFMp-{!S::piw Qbkiq%#gAwLJ-R%ݞCtd^#P'oY:t06!#ԚA]ԕvYỦjBuq#˚ק,f=)`vd\SYDj:1#V A2쇅!AHQ&CO2&GghS<)R4=᥼4xU䒉$efciӈ0? 5 cNMHKxui2EV4nBONMGdѡ/rs@SPLenTFdb5g)8M}~(S{?.F'Ϟ`kbatu(aF,)xъDxS{OYdÐ~:[\'.qͺ㕭P ]J66vahUrEor?rElYO{Ԛy wْQl//OHOꎺ؆æu24q~MFIL(<۶ +Lw.rf8 GrFwnfMsQvD;>1N`+&,WK~#P|f?ױl +qb}}"y[qNn5i"GB >I+A=MFa3I)sȓq@7^lNvUիd if/)lAVc 7nlf}3*d7Vst*_Sm\&\"[\ȞH%pM]b } Tz\zw*O'v`I .Put~Ď`<^MKT,9ÎR޻cѨ=m~Ӄm"k*Z"UIb8?Hzesλ F4Ò⎬ټxnj@<} +.DZb tP`Y_7`JkQ% #"Ic^eㄡWΈ_s}-fpZ-il6?Sff 粗Iዜh 8+`9 s۰s&%'_3Zaj9 gDF[%J0l,6v ,k1'f6Y]ݹFaqGXXh&qԿ7'$ًT$ .Y.9Zb ~6> n/fid^`/mHY"'Ц5=qgG6ׯ2Ѓ,>σ7IYh.cy`mPHw_=qv5t371EWig, \oy~y.,NfCqc"CK7Lr<˙P\K"2r|HkOvXt^ {ó\C~%(&'A )kaʿƚ)woAbY|,8[1fw~ݢocL,FY +TM,[r 'dz$Z%l^w G ,۹;x2]?nY U:2 >@FZ(Y +j2Y:jGIQ3lIhpstH }_y%>=[ T[R+"Υ˶u;+%gW8oCN2%^C[<$#_M @ߛ·/ǜ'lgJ]&;!3GSb1޹vdԼRtDg=)줧gd5xCk—s[o`zNFH/h*S  3̨^s +/j]\"׍)Oף[ī 9V NΔ]% 7\#FEBbw}:LjZ9"d~`9cc<OFdh ?\ 6|fpEE4y!g6"36ቌ ˧SG*qwZV{}͵{C*m6U{:!LiPxG.5@n|9onuƕ#v#Z\)W ]j^7)n҇)xᆸ1m\ɽ[k, n8ȿAC 5B?26dd~PKԋ+5m"pjre/lib/ext/jai_codec.jarUT EEUx +6%m۶m۶m۶m۶m;ǝsg"3"y2*j^{ծ\YR P㘊f(00KPz9(0Y Q%e:Qn`7)Pn2.c)Py2++7\;$aϟFW/I Ei:{`]IGr/~Bڎ$C\Hfgל/*n\Dy9&^V7GrW:7~Xf^"9w>.uO5 +[BUI{_NU q޳={Nڟz]tw,y3|kPN8`M&ƴN󫑝 -h8Y89E'-ʣ]Nacgq 362V^RuVMg8Oߪ6 -=y&@7q6¬`X(2abFr՗A3Wy%jE1c3POɷZfcPx LeBOC:JSd4ަWiyQ*VqyZS;0bA $/)6ѣskS+UlUt JzWv]Qޓ_QTX)k]nY"n}2S_dtaMQz6IHH- y!9\0]ݼɯTw%¿eBgC͵ +:7-@@[d +71*R9Bu9IxW@ 62t6NCǦ +=b޵|8Swb|fSv!$yc9 =O #mbq-rH|&FfCrZ.ۿH D_ $8M!"^FHJ\ Kb9jR7_>/|먀U]hË$<~3C{ [8k6kOAG5և`K|-;{49Z4bȿH3@| cK8R Y` ϛ6 EwX8aEvz] + DCD#9InScwႄզn!7jitBL\R*c,-fjU{.|V (Ks&)69T6:,>ƣ>jODj0-#cT۔I-a1c jWD?՝ عiADU`ִ}W &_8Z .½ibz=ڠk. +nNgɾ6wߨ Vpʢչ貖 ۓ̃q擏tCƖ)mas_V֟~l =CAWشɐ;l~&o9>]²I5~-b`Q8.%Ḧ́$$= N_;#$mtpw+3Ve"m&AN" +1TGR!yL(ݕD@F'hZpԸcɖ8U`/UW&tGm@SZ~s 99"} [ 0-}>1ZI-@^#{R'*ΡHFAak.bUÌT ub?i\ÿv [K&\00Q,~9;;byG +rDWEnMs/y`Ц=!V0̃QFq }O_NxsZp-nF'(VTn@v!a?L6G찡4=2NM?I{F%(EBH1,vOs/ Ut9#ƢNq{j +S:K}uK4 ԍ&7ϡYT^]Cs^9IPyywrX$:,$$"a$X|aa~b!!̙X9Vl kxa偘`08f?.[:u(->DZ$B<nLm胔":I+ |BݗotӼ7HD(nawFz $b݅GfL]:$K0Ϧ}6Vj$BlhPvS^΂X{vFG#|fX00:i7VʉQp+ ;]qLu`XIzB1ʶ<"TCEx0АԈa qI; ;'%"r})uSA4xYyS,&d 8&6j`{B#&BF&08ЕW_cK=rĜf (_ɼ 8f&n[c)\yH&sCE*Sgŧ7gwCn4D閷k57027]9⩤/~qP 冬xƵe/LP?X~z~:>%*zogn!& XKTr.\ܖWh_&нfv4fEghm#h91N|Rh'-nʳkiۛ"OI\6MDLyxL;,Rn/4it,kJT#YyEr=.D$-$P$'lncEo$:s;=kg|2M&Znsp9HBP>NFϞxܷWupkR;Kz *(ҮP;Q[p8 yy32ULG=|"_!i6ZʡBg@챬N&oe~"q$"'=lϾ_XؠP]" \pT`uaƔ*O*yնÆG]~68vS'a &s(tW4}:Xm`zh2A4)A44Mǂ1󋅻%^vHF Skל{Dv%<ՙUzA~40=pRΟAԷp䭽˵/}2r/WCڣ[-=}|>Ѷ5be ]p{l6G'&X?hDqCJ,vo1kʁYJjd/DUVQuy鐀@D9@(88q# + "Π. F 7Hle/M/ҋmJ]{ܮ+#ItO_>g>6~P2ض }8+R$fO^:2e1@3;(o;zF:Gkv폘t{|| OFڲ߷`{؍G2y wR(JN]@Wf+3є1uoqWek*:M{c::e.8XYJjQb+sU>SƜwջъgI{ ; nj=x`j">Ci( q߇Ŕ^V&AV[O(u,'|c* |- 7EMMhlk)[;WP'3[+aQOGx3z{QnlZ];禄ḻ5 >9;uV6nSM4ih'z<3CLJ7pEhrU):@| eT6oMvނJOg?xX(K9|;`j4؞~}3tqO">f1,X~(JPׁ[M@hsxݠ BM؃ +QۇjWA篽tnz#G?-CVxK?ꥍ9  +]A0 e`8_arlsLRx+uH%͸!Jn/EN5QoUc0ROy+r'oT*k9O/tyvɼjsZK޳_CG.1~~Ѷd`y5bfDRkHԼ) : a-_kb]Kq\ξGm.l.QU#]Y}K ip8Mѯ=.d$rP;!`u8 S)sYik36?df +s:fu>}8rǽ[}恬+v-&eGajsьIMyKdq +|N-78v^;pЕb'"Jb jԼ +\E0.)SkVv+`܍m ڋwvhv}w\#D sҮWحK--ޡT 5(WDHAIyɢ6H#kM (#9SֵpQ@Pr +I +O}IMS- @ıw19V.)ROTMgC' v#D^k$~c\uTˋ[_΁6kvo*UM/~?u`?vn쇲OFJOѐBkrxcҞD5U%B*X04N{PҰ?~_^.n,F\YIk%;a/C–dOc,[=INZz#ՉcnXyQ]p03j5kUFUQW~aM祀?>veAn†:՟SʠS( +jZnÕO:fђAcgys=uo +0 ;V0"խZBm URQQL"}MM=Ó_fy)C7܌T4;jP J+G,ZnrƤ{(S3T?oXwnK.+s}ܬ#$ZIH8͌-@UHFVBFs4d̘3 }j;E +-D35y_9x Bӧt捥Tj&4X :,*o%x?qq IG3Gڋp+(ly$?-oLZj.q;3FƱ&c }]C"Y<}⸛f;C=Kק_1xI]% _,.Ywq)SpˑȞRqw'qѤxk/1K%r\u?\d{Hg# pZ/EUI!]Z6f&B?[]y5g.BTnAAFa8)̐A(,8|3ӞnJޞsm㌭ALH8݁KźӍtYwi\iۅW.'`^Q)>w_"j qE_8 e?aiP>({Li$ S2h @@E]-;~!䥳P5x-f.Y!lKQ|4E8FtE\J-Uc§}]@Uivv2W{a,O*hR{.pil=F eT'g +x +FGLa5l2?}@|${@tHhuB:滀xPɽ-hr-t3v.#Y| I@u] 8T$27HsVHҿw[َ`/cGT/Z<]$kFUJbp{c l%8ÕSY iNjMY"E|Zy{+U-[,z}yDf ŃHMlLD.٦A>QBLRH3̹U݀^ hZk 7RbbߚO0] =#_dR%Od?6ՁN=R=2vyUEZYK^l,ffzXwKɽn +{$c{?L"5xMh>97p3{( 4z?v\K1H)6,NXx/ӨY#KK@r~;`{%B>Ѻ:mAKhC\&U 9kˋ$o?˿}[s%c9v{{aHInɽ촙*jqQ?Z㕚t`=Po.)Io!޲qIP\Cٮ+Qd]]DB)<\lw EKz2Hs)>aZk"}c$ϗ_xi,d4k2GϽB2մ?T-AI5ɤʾxJ&Mz笸vtA1`t&dnWE#yZ*=;s+ӴƆAc} +E_LsAJ$͏j1sH!4sN@t$v3W'X+㊬e3Ri4yYSċ\Ju6h3x KW&{eYSb\-:gV(|FL'i?EәxaݼM`Yɼs\66inmhy!ڶ ~̬a@[QUuUU嘶MU;A>|S\p!~D^VR&cF*kX@t՞"h<Eq(־e/kvTz'0C2p5s05woz&v]J8iV|Gg8Y?9R srƻ"̤o캱?H8q'"5yi:q8w m;\5Z qTf7m̷ m)}?{M'uArU6 +Ĵ&:."cckXW `W}H1AeH-L^ +5|ngcon}%C2\F-c ^vmK!2n#/4'ude<(@)BVgll36;mNnZ R2(]kĀm8AVX~8.KoQK+.*݈~njV5{-?ީ/n=z1.퇗7=G11vmZ67onޡ=1gzTp7_ԁرI)m8n(xgˉu|#61V7'QVgB{{T&J H!\ʎ+-@[@ +(y܁9}t՚jDԴ +; \qpEF&Pr%}T +! |DƠҶT1y&g.&*% nݯ TY5 <()n^qNoKhp(JMb' Nd CǤ"eȕTNeGv`i +@޹?˻Ck6ڳWӂ0OFu/٢i_0Op#pnŅ||Gӻ9mF4Y1$c +Hu4.mJ&Ӯei29|ɏcyBSZosjGNE[ 6c :_k%_0P9)<ȡ n)o4H#ծx*R}`b*p[zmTF +žGSgF:8~{`Gn#vC"Z7) e芽@#eRWy ydi=F3Yt>OZ7م N@+hF6i['pΎW ^.*2ïgWxNl3};ո>?> ne/ҘYkP,/1SY,Twǰy}^8ĝOvfAs\|rs@Wż3Nɼ?[qi~ 'zt(s;B }{yL Au@}F(}rI^q;`"t.ŠcFP7 sM7rYMyr&gG%kw0K^[NǮ][8qImզeM@[{SK,xuωVx-ֺ;hY~(8hTlk 60Ջp/(ԫl"M$ -W5CdgcϠyˍbLb1 >R],P)J)LSoTGꗘPJb'$!+OPU ̉YwRmu +Rt!EdؐyHh%x΋15>g8|g)J}g*?\K +vR˙8xh5ʽ.6W*~{ġ ݑBr8~ +߸jRYuzX`=io-?o,bRǛ(=4xaHoc&RJ sH0 M 3*V-\2!D7W_u(Ce2jZ8PaN cSHf˔ _Që$,Ѭjn\0\aNKq˖KĴ4i痣4A,Əis~_}jrD&GprA-&d+jU +aoY +멯]w7ᝈ/ym{ \5*p0[,}6!tV0lh"[Li]kE#6GrUPq PL2v #1wQ+;+ΩƽKn 2 Pi-&m͙V}jLÍ H#.@¼~`Ci iY-XZuH"iDEh"&]-;܆zpYL ʼnLt,0(%jno"ϙ0Ct^o2 ZG"r4VKόPYY>(?}/H>%]sL MҠ6|ttƾ# ԁJ?o grMк;\ VrOz6_江'`@(q)U(^LJA +:jhS]UlIQT +Y+؂숪TH3Ad)vz9IܦiUYm^(NwߐmyܱrR #S5ُlnTgcs-&,,Ϟ"-ˆOK>C521`" tww,9 -ӦsLou3&=_g &fqmƝqUpӖ1mnE7m| Wbz=k_ ttV0j{ H)i2&>Es_j<N?"%,uI XǀCp{ɢ&ߎ,v[ Q{cM&ZKs耟!0ZCKeo~d,3i$R18kmq" e?V!_,X* b뺠 *z2,dfiGS\[| \n.WbOm-06 3L8;N!̧!{IM tgȲ<1Do"'Zn"L![Kf(C=|w\.gpw8|/fp!Bco{ջfGЧ +*t]VYź>g f0h{jrftEڲ8 +Vs|2 FOALYd +a l +2Mgc wɸ'1)*fV]q3XSk,1 `mz +!,@ΫAhA>,hAz2LHMלT0t 0@dw"B`> 9ИhaB1LU.YG]n|lނJrfv B+W:J_]X|f/ΌHj}VM֢'J΅%Hx9o|G]|R< Zͻ@z޼{n4O +.˵PN5H~,~%!عQ1 o!q=='RG2;Sx3lJRӆ=EKcRv?যikk;6x?me]9i=]&]Y{.Hbȇ=$X0  +ndk4L_ԩwClHgb('ↄ"4F*!=u)!5 nAf 9ݓqr^0nVTr-!Z`f v Tb`02ngjI{:m">4$K"NL-0L)_$t;0D? uG%7aDU,Q,+G + * %hB0Yj+$/|0Ƀr@wYH!l&8MS(]b1gR`L3gk %Ό'JIbK<%bGb~#bCv=wf|(OsC'i٥3݀j&O +40 +M7AykC( m]qqVıO7 MSq_h7A#i +RþysCyoCm~2٬ǬSWP"Xͧ2]PFw\|=У +|`u Xds1Pg~cW~8,~BQ' +/<Q4(Q,4{3f?aiKXFg6@M\ M^Zznk;g7|@6V)۵N!*, VNR@9A@KҢm3c]f)wVk|lI3/7%>/pr;s06AuyMQKy0q_^ ztrYN&4vQ/L@4+㜏FQ@ԥ4)Fa`l)(G\FPm8՞_Oc\2ul#݅鐼\R$D|4FSdb +Z0H4ٓCB]&]VE!ua'BX+yUBƒA(E,#hh X/R" )3 +ĄƬ,F`؜D.V hH#n37xh(YhFP#YZ@'^f5^KzUIrX@gbM/s\qXd5 -!2N \c"9 "3!۔W^T<9I̹}5#orBA˔m{xi!fP;u^P|ᇒ!@KTBtadAA3h$QАto(o8 ))PgGĐlnd0|]5.4T_Ǹ9V <2;[_aT;T4cwn&mdL\%Fze,H6MNWh/Id/ +7/_y?mubUٜ3$␼KKQ }`:dwDz(a9%8EpIŵ6#V=\zC*1hBk11B9"w+X+<pvJ:t)rKqwm!-b Fqt/͂)kxw9T@Sue(jXUgW.Qx)1R!T{jFlnN]iX>5\u Z,ApEĵH ͨ[~dlyw QNvnduj0E2YK^>c0"^^/IRuS pV@mxhڱB;KJ1vI]Ki}+{6&^yy[Nƾ)ݹ5 +i}Y0#jw] #=JMt_!NMPZyF#u_=n#;'qpߔ +Qwo˅2#u4;QH(צs+r~$^]t.?=S!4k0z}.!h<*ޒDYJxDP~ok\[,a8KT(n/v9 UK L+?_8QJ . D{!/OXG"yH`XbyX!wQٮH-0kOl]8b M\4&R]GH0M1U&PlQX݇ݗTtb(ӚÙ0wjی%,mC1V.,q \~tu1f-i<+ty*FZ`3V~KB0hR"1>Ӛڹ)ɔ2lʟ_#TbÍmn60Ǭl\َJ8M0hGryᐜ_ +&s}8ZxN І\5q+`7hb9aHIH4ܵ-0=H=f=3]ø4e5xj[ S*[EcR16/'q]>S2BfwD=,<"tF-yO%}iA<b;vEY;u5We;]Gg;:c٢_CkQ!@7 8%6\H!` +l 2Oճԁ WHcsKIh,'{P2n[| ~tmv.F:-PԂOB>Ta 5֎% r`f .r ZR i =|, !h +Cȣ hs6>;['>ʩƧ冥mޏ`<8j]iRr$l5>XAD 0/J~+2 lIr䅿hƎQ=ŀ!JɸeFLcT?:qm%~[]Lc_s ^xO6%N_+wWF!3o:1GR/m*f6Id9Rn76[7_J%+c!o-3܏ŕE`~4:DпzʹݟxSIIOZ9Tq׌gean zA*YG~s`,xY~G`}N3JXoZ*5 *k 4H/L%R:ZnW&zU6b-l 9Ww2Fm^8m[%٬.X^xbP[4/ΏqUjIZQ%V,AvXTa{WgX^ҼW5e/I:_q(S"v\!mԕZ!+858ƌT呮B@]gׁyAMQVo^nd{s@.V2-@u\PQ`keUlQɶn!"#:7H08 Vvʛ -b,%ZTÔu#TkA qny\o~goժmoN)XQbVrr"Y2@w ՕFqyFgv6G?3,k9n".QEA˼f2C)xA(lqw*Lgh4'C0 Ȋ̛54 +߄ toӒ)|,kSw0O4\+/|rWxrO&A{v}N:F‪K@#aZQ>u\AJA2MT=ߌ~hZ6ɠUefJ?,__YɫϨ H2=UvNbQ]JfɵR7yT +\RX¬SԽ 8XB; ()PH cN%] j4VYgO $8hA"89h$ҨPTYǬ˥5Gc|e CN9B= wb]c88kOAFaW9:;DD^s`c~@fXfOeAeV Cf*m ]UfƲQTGY*~ =|5~@y91> /a_t =39 +yv"[i9/UI +! +1owbDFZxlaepۤӂ@b\sF{0o6{aWSXb`<`?>x"slݨ6A ̦ VPja ?a1vFQgKȩldm?hu% U {?8_܇]`FC f78hs(7^_Qew/u0RYed +~Trܒ_jؼ޲J-/K'Ipwz7G,&;F2DG~ H 7Hg#Άqy[UȎ[V'1+qz\ UJΚ eۊ2vLf.2PcgV+/)5*I]vBECɮY,VxѬ{ʉqQ~{`G%6q0T]"dh+9ZQڇ.~ fƫƘ!P!3Q$gi:1 S6GCyD.4!LN ;pȭ +Ce҂C$8dZ>5iRltY5*hGQ:v.YP_819 a8EoI{0FZH +G|ٿGۃ~Qȷ&OyCfhs nc?XFXFCZbB%O#gEgQ]ᭂ`n)Ǖa(R"i,c[" 7Dnᗙ|UiB{c,ys琻ufNWŹ醹TIzn&SA!mKIž"9 1Ob(Ғ.t#ސ|L7F̟T*߸V +XPy1x kgo#ٰoi4F(azd^,Qd=[YYMnMwjNn~dj_IFn_ɪ0?#nծ>:If_)m}b ЧHbcVn +?bc +̀Ͳ8ӶpX6HQ v/g/mw=̂4~f 3gi_ j_;ȧz7SQ;w4՞Yq~u"rԌ3~nw֦1~Puڕ]֦~(}N $Ѡ#o-0:89rKҸXǑY 2ԟ{yt8#i,A\ME΢.nX>H`ܽdJq%Nuj-z];l 'lz:E)o@q@;EWcn4ȼ2PJܑb ;/|[ +-tHc='`I<79Lv:[aQ0&-^ x&Rr+cYc + _`Q*Oep%sϬr nԕf2; 2U +(BǽRiѯ|JJ}:63L }ΐ ]=?gЕd*eEJѬ48XR?54(?s/vpRhgitviS=CY(=)@<Ӵ(T)x9`IC Mr(-F ځP* 7ԝ%趰K9Ҹ#KvLz*z^m'&NrFDUO"[I1;3]*Q-,]F#Afc9;秒x4 vi= +*H<1ਢ0kki7}t4Y̓OwxEipǃvN>>V0ƒAXv \>U ,#[* cم(]=R7í,U{=[6N֯/Ħbhg(tنژ}3wE( q1~):)$< .֞_{Jigy0 &0wD1J[<=J4$RñĨ2:{cUj9OC;Ş)[;paZNpyJRX/B;dpE%BW g\p 5qͪA%lZџ$20|&tj9@G4U[3ͲbKj@܋ùgE EɎp-WA! ؿ"rSc\Fx,5;9E;8r7V@eր+}gեa>3r-aOpFdz$S + ?ʊIW. ˱f8Tx)CCk$2OSD2 Xe)8l%u)5tHb40 '6r5/ŵ瀐63렗R%DoM{;CDZ BBq/a +&YjvЊfNOWRU^I&ә@U)4{f_h$WYa&E'GiR,{8߁uM rC1CKҔ=tO9[i[ &Ze.#{wX׀^bQt\\zvu&iڲYCH$I)!_(dP",5 +[$xP;X{l4kvᮨ3Ƿ>* += +4dؑZֻ7(>,z2(*.j~2 gt 0VMЎڬb.^6Z%&D`^KvDpoR^Y7^^g49l~K̯NT_O!VqZ9&ʼny\uK|k1].L /v@,^\Ղ~4nT Bp`mr~u&tI'BsHsJp@0Օ;#4iz#,!o)x~焕'9X7&S퇫H' +)^tTĜW \VP.">YϽwB)Y}%W=b l\9Wk,#ζ񣘡uX9 D. ;/_b$E~cJd&D4Dt(s?ITkUSm$aLrkO'xd( Lp'J0|hw?}~hOtV@z#hP3CD0`{ŝlR}AzH?\ +3~?5RsFx~M~ tӘ.bYT/\e:Nv=ZkM@sP\Ei(eLuMH-/P[hoXhtȦS}=_sہ̠ 4%Evz=vWyr*KJ\|/0mةnڼ!o[-UTRQ̋ۈ, +lvDޜvmkߖŕL> +pQT8O +M@Ruܐ"뷓Mؕr^ ;G!Wg}5S6jϰS ed{:F{0s7y +' NElރs+ #s8LCF8j.xw/RkxaʩI`:"HMv"6sƒ»bEa7$O"loB5RAS4*t}`N u^Y$ԟvZRb$3@E*X7S_ r nlٿ?SO3r֐ +yƙ33u&):ŁYh+[^5R&*cfhh48oDoTުЕ=|("k,Cc&qѵ‹RWLuQXغLn1J4n#N*豋M>NzL 9mu ٜDKa1~ƻBf5wѵ<*bҎVh*EqK9at Śe;<!L&q ,贪IO 2]kFJ I$χV?+< Mף6L3rFOp W ~ +*u- gK<1m|} u82sz-itbY8- QaWw<\o:̣nkax0$=5*8Pp};K=-\D\̀=LIP];ȗ^]_۟. ?Zaa{{/w|?:֡{^r!0C/p?ʴBId}s JƵ𮉵i"h`+H Ng͒3}'[7ڜڎ77'[#<U ,YRE裃")I֞-|iթ4]%&hAi(I , +8Ցr +Rbjß6[֑sTŝ +j16˃b:cuwE_U ݣ:zIU +1Y+Ik"cK?'ҕ\LM[gZ.;G +.Ip+O6,DJ\!8fFkͪNMY?[JT.ak 5k<_IN2L}h5V%@r "{#C%RysJCZ s~TPbS]QdӖ9Q2h(6kerRz(,ajN%Mϭ>2!Ըfg뮽KۤCiJsȬ/?ꯇy$:ERv 6*~@ؠlڔƑ 6SyO`3H+k-@+ӓ^Vj5,2p䶚0dQdda°R{Hdg{wb)!}C7=>v ߏfë6ZꍌR #V갨%>R{Q P8d0.hތ%q6 +85dze>4`yIn-IVʉ&w~50D8?"?V/\B \0!l%f +2naf\;if=/./퍶UetIyRTxJ!\(Nґc^v '9 㳁 5zj? Ydbl?u*J&f6&2q^%gU,U02*FJI@Y8tJmJ,##Xŕ}3`P&nrnqf1/08PG c,`,D2 * G@qH;{w9ZLjr7T(/6[ +컧]2 敦466 +ELan8Ō*k:/$?L4UļEJ] g]MmON2 OjBTlU V=fњl`Țx1Ԇ>qҨ8L~C +!Z'(b ea&Ҽc`=G#idƀю& bl*$u¢f7J`\[+0yz ++ +R=&Rv\ZDFQ,fO0 󋑌p a4FJrk{cUѫ=H ,}{Bס8);kr~C\7CU5vr WF \HڌR4 }o1}zțՄ=̐(c5XY(7m,w$3"rkV-"'_*SWrq-Rqv<( M<*)Tg5MOh&IjZ>||MI#DCxtQ0'1]bA2"#~ EaX>in*τb3)ȿ:V7k?U J\]6&Z ^):|H<FΪoN|g%<0>4r(A(ӌes4_#s;؟ј,5|`tTDBl5AK:uyV"1ᆀM(UCz\lz'i& M:Ph DxcfBC xLu>镧OyFvK2iݺKS-`|;L.M]8?AaofՒfl6!qHX y\sulŻ(UYH%꾧GΚswa^:A6[l͞Qȳ6 +VL-eڣ̕zSi{qXHi}CuA`yAMO iS*1h 7֧,}Ɓk`/|aCECQ ¸7 b@VZLWӗ?YR0QjU"S s-;[zX1ى~S~kBvItH9,ry9Dh ϐDer9a/1{M8B0Ac$1J`E2Q,qpbZ2lp)%4Bb )u.mHi'Xrwwʘ{@ ?|:$:Q#|ʢ]>_FBnѤjo*,*8.MMzxթ +*^ڢj vRXH9ɝs?]RAObju+geԟ#GD)&0YpUq0CZu@ 6&`dNa|P=V=H\[+s+U[[oG@M9N^{ngsyc`AMNG.XCL` + + +0JXĝp/XCXN3/xeAėފN){`v Cd0&X>g/Z﹀%o5+2ͮtA/nϭvXt\ìCU|,hx}q_ۗJhoViktK'ZM`^c䎹FmYT&߈#/m~76Vϻ5x6!$DW|VyU4-"V^/J3OMf1& +Z9 +!Dʘ wpoR/vX5Sj},PQ%5Ġ_3B+sZgں.we;}p4C-;J3%+-Hr"k$ڶ76>џ@JqɎ畈(G*R!.jlz[绯XoZ0qc~jD~X ]]*, j4T@v4N#ڟ?Y~Pn[ڙ 62QӜpx.47('PBW? ;0%t;Vg$Jͭ1ZeL^7|9gL]t 9UG]aX}CtK(U_C$%LyΉM83%ek[)f/֏ +1)֬tw:ꏩj*4`-u'e {:(d Z*s/ND9`kœ<~˪nK-iloԋv?ys aT#5ϸryCE؆\QEz8v!zZ!+wt${#oX\:Îj6`N.dWC ^hnU84Yʆz>|LWEk0 +#[b &;?K״=Ǜo'nπ 2|VޱI >tߠ.mځ/>EgdTHLj?ZSztќgi6o=zj?^ QvϠvF%SO(EUtQ6>}}yT'-Z3|e~p/ >U3.~_uk}vd+1VVŧ!=I66b^ +-2j eQ;L/VW/;|90oKf%;uEoMݏrF:qB4n¬qqBF 3 .aDϕ=ZL'Ks4~\/: u0Wfs*Fe5A7=fkNh\Ȯ.vëܓ/ N(*O^;|?:jO$Cq*N$b卡A17Yb"M#D,7L)!H!> Ɍ-"}u'HCn |Aژ?krCP H䊡-ޭGG} {!c}>k{Mc[0HXƉ8nOY\- 'OIT(W _KnHށQb$г T+@E0YF"έ*Wcsؠ'KCP8E.`J|C3GI^r g}ɓɔq| 9U[z3C@ @%GD-7U2MwV\^ʠQ!D~L@>@r3DKkH,%%^s9B3v?k)q2zϱL]X?f^bW=\$o|-\불 wcǫ+}[Y~[PKkk!bunmo;$9B8T6?G?Jx:mxG|@o$購|.r~]Jb31bW>VvHy  eem!qnI#tn8%r`hHo *H"!}[aK P$t8||ttX44i}^bhpM@9tG~QFt34)ބi~Adr]GBڔ'1}dV?%lICJm曫mBƘ_̏?4yC#—̠su)sG1%צռKصn3k{:vieƱK'Ѵya^l,0,/:/Qf._޴IQ@A,Vm*̓@VX_.t3 )izDrF C2 ?<0i-0ΐ}<`(FhFp&FPO$aVr&uGŖt +\':HjzRߴ)HD}koFJt +x=A" +AxO? GrAo|:7l!K"pqb$7 4& Ca;'$HԑQ4%\# ;LoR_ֿ9"Uv}V}VyE8F+L[ @2-iZ :Mr>a6/XU'$m*ר}z`RGKf6i8طZJܜfYGaVzm{`#gq60xUc-UX&sl$WrTfwh^Ct\阖by㯆jlVg*(D +-c,?~FS15%K0MOmmr}r&ͼ25FP6!@wǀn?b*iDgB#U +0Ձt@]C) ZFb=t!jotC *NEѯ'bzw#Ov̂J +mAz~$:l%j7mbZ{Aw0ƁG@5wO9>q}_[cFCV)&ѐW\̻(SvApMB*& + mFg|~&;xv[+$^)1S8hR;°昍2EqݤiB:ʃҜ-TZ ( +*橮q+55/{ +=#sQh<YB+}l[ ۛ$#9#nfjbLñÒ戅6鈠藭ERSDqhNSO~:y) p/ޅ!7k9jMS2P_w,V?i/1M BEDJ)-?YG]KCXgh^2?=.N14'Y-@'0-ot%eRŕ=ԛrkakG}Qg@uGck&߰JYpԘj{'dƨ|5| +f<0X"OhcRڮvD\Yؙ.8Chmgyd!yȮ.m]^`VF8tJ PiMIؑD-x2/xCH rTiRǠsHv-z݁ٴJl.n$P|c!Oi #1p> |Q\u?=VKZ5L1uV(a# c 恬;dXMZ" a"w,%0XROEj%LbԭR7ΘMgbc7 YN4f!EPiU8&;@.N0#;SScCn"'[:$'ac9K4UUP-i?T| ;9"Yq[/Q$wcX_R׺rُ7R]p[j]3_HhŠl.DU+k$鿊r\MhTnfgs2cDHA cD F +I ̂Uk-|ՇCej>H>ڶś![Z]?i 1=7N|zceFz]tދ§tNWj%i%ɧ8;=.\ǥggl%{{'o^򟿮 x_%E |qa czҏlzOb=2t*Mk;EtFlWT2rm\XG.O K'h2wSX,Gtac!J,H&rIfѬE2E$0LRVNݬ Ϻ٧.yj(!B̞O #KD:m̫8x/]$(uѮKXXXX6QtO^ q*QodBya;;̀D2OI"Yx}6z{&J!9p23V C8Qƹ4OE a KrQ6}=(Y藀qS2Tb'F֬3BahlPC]jVhK溔`$Q6qmƔ݋ۑ#\3"hW<l>PhR(PXhBH-HQ*:% 1n#K1Bj`g 7yڋ4paż +e0BU6Т`?Vʸ6JgN2%Iy&FXr;`$:wx6-&]@~&]qLS5]}.ڃN*ī- +̫҃iqǨAeu +~իYPx+tkec/¸StZ$5yFp!"\eL6MF4t95Zh[yllr_nm-K&w8B$@ Dl#FwV7$rfQǞ V~06A4 +SZ2Nj +J )YrQɐآɀ._RTB? =^tes`#d۳אiV @qH=4lKAl8yMgX=.7 "Vޚ$,NȁҰzæv [8 CE09O`@c&;7S{Fh+Ka,Rh{6YOԂS9l楟ԛ68uꌩfPa`g7r߁>3͂:n;0In; xM }v#y)M{<0`{)i"۱pY3b,ݔ&ZWpq%iL:ΗtTD3VCD*|:_1ufNuPC Tj=wxH&a`J !zđ/fQ/%'X-D2ɍ(q#CEn.Z~b&ΨU0"'e]c6Ӥ%آjd 630LGq4Jpi#kǢvuN\G"8@jOݎ +90gaOw|LmkI$&[Y$,z l\Usoz*Fw.y&{%*S%'WjPCb 4.2ljE:lbL~OA]/ij:/k8g/,~DpI-1conW[z!Ғ/c|E[LI쁤YU$̍"FvUF&$^=&Sݓo1ڧ*UL`:g6Ye<'~>L~Rt9Po QAb@閭JU*W?-1#UMC!٧{{5N4sо(IVOGqGIWaÎrۅ֑u z6&LQyX{M[JeMBԉ"[RԾ3(%HwQYd\4HKR#S"Wn.vuƷZ]U5L"s"Żr{hOuIDeLr$9吲0Kff.̘_KˢAfEMJѹ60`;NcLe ++aq؅g<Okj.AO@}%B+Rc>k#4 +>7K|za>qLlWP/)K_~?C< ^! }f+ Z56&֚ݛ ?1%;2N1ҟx:9 +`}|P%՘N(U[ytiO +Z~*5WxuG[1\;vFWz{$x~!j\# NP/]9${[햜8F͝Yufl^筠9Ihֳh؉5lK '[!s=nb`Λ ?.B̮)p` +p|Ͽσ9=e( n&8#Ј#ܴh'@-w@f?RL-YK7A|_l5FUXvtXy0BBLϹ/+BZӕdéȳ^RIGħU'D *5%ŨK blPZT{'^kav3G#.(0nGPyiyOj1\aLퟓ?A٧6!۬Xti*O9:z +t #e6ejvǗ2|Ajh[]FJc-e$Ԝ_p+=ޯ_Sb/=ö3qDj,$30E:)W)i}pr޴x%+R:ݕٓigXYstW ;T+knf,Ud5EM%}Gt'獃>o$|װj}uyfm$Wȷh>1.k~+kG gVL$SNL+#T"%(9H:?wHO:P/'*7>$/4;00 U#Kt[uSAR/ ٻ)ŭb +2y$hz@}z4+ ʭBPS`!>l{h@wM3&J=g7YLAY-?{ Tsv7~ gaR h]C{#3koM{ÇbWų~Y˃'uߦ1tx?-% !'9_vVO)22 -Z4 !l-.4+ʉ{9y>3s}p +&`?1A?1g-^C+s<3w7/~8:5AtH$H8 rAN!O-qjеy0twRȒHj65{`3g F(13@hF{sfOq وTFQoqCnX10/ưJ)d3iiZla8Q6Z  HpC[H/F'%ȳaRt$qgI91pL6O1pc!&3EG.rJ#*ce%LqP^| af)9Д>PC{Algaj1Aɔd@ϧvZ2ҁn =Q0H0@M3yYh*NݪYwW如CpR0F%10̌di CJb1 NFtSǰfH<'"ACK(= vӣUysc`Kܪe>!;v:rgYCL(fvج&c~ޫ힇 +)2[ +փbTZ;)Lu02ϋK5NQ[zOϊd(|oJ;jppoZr*:knXu䡗ZFhNX|8AlC5wEnn}D"`02qWN`'2uИ3$tTҳ 7{.m_ݼ#yԲԜbua=B FPr=WrVwUPK B?DFwe(8)§{O05؄q]v:£ʋt3<`D.꘏x 𞘖=d șy5#4$[<י +V+?oP2\8jX}ݑ9#@-n(B@.Gƣs\p+>P\g CYCJ+ +씊fQ?BZ[ts\UGs XOj(k݀H877 +%T3UW'EPͥ1 j9ẗ#B0!@#F10)P#FW s>@!P#V(.0p%m-Y= ;{ +3@-.͈>-\,wџ;i%ʯOlVImlxr'$M[JJﺣkuS\ԭC;C\40F ܨ&F!.Svt:/ FY;;l!;_7I/.^ՖR Q1aQ1$W7"}ʩr +Q[!##H,hniS=?Н oPO[][YNR>"eQ+FzE6@:VS ŚVu)ӭ4ǁ Wj0>9k;}/f+1w;f ƐX?^H΋$'ALDSHjP_4oZ`W>T7?DB`P2) C*BW)0pLtYG0Y:F#XJVĈ8rgV!#pFۣ_:S ڮ*`nã$PGu]X1RSRv>T+9y::ZOV٣u7*ʼnD,m&G:<{K[U%J K7oRvGFNM٩MuּW˼&O{0VCb|ى,!K eRQk!ǁ*hU@AHMMakd"IF(BHyZA0"13*s#KQ {aa5{KI"LtJnvw?rj,Z,7"<ұON8mzA5$RCU) ;0bN9ڥW +W޲ jymhk:g?#bL,甪,d2H;_SOԊ.vƀ@7]q:>a6+'):4Bgk$%+r w>s1R&[uѩ-V Y#mD80A KacZokڎ&}&dm\)=)=kǔo7qͯԣ7Çͯ˱}ve*ߖ O;%u!Öw^i! +(UdP=/[QHs/˦(T\! ++FO.;]AOGL:#voBipDFv6# +I(_ŰIu*zd%T\WPܽ{ݾm>^;8r}=#K)oܷ7KtUp4wtj~M<ǃ[ +.LkǩHA@T {^ +qPͅYIBT0+1[A~1Kc +#yF_S*{"/5\B Y攪Q8aDW\S{@g +4u115suPp254GVDmM:*E Bҗ +טZ,ǵ6"=w$ŴL|6Bh*.;ךalң= ᕵe + _kDyQDn},kX}A">\27G l٥RGZkwdv-[mYJ]ZI)gZ5Gi,Rϵ6z6CGDY:ӣΞM?DNYPp6WG :MK¡Ɜ-D6Dig0DmeМL Uҭo) mEn g1|!qNs,1]_mۯxL6]aste$Sh,WWE1Xx9o#yRG$5amOI.nv`c N'͢am`􆓟Vu% 5S@ض|OxyʎTuVaۭ/:g<;udhq5[5fяFq\. 8pb)=|%2ň~1C*ۥ2@yZA ctM7ZNr'd +1.} ׀O!9{(2?O( U>ͯ"";Q#1 +P:N~}"5>j--Et䌊)])_MKQI )Ru&< E,#aԺ;OX9bx$WMPLda$iV&?!<oWrn[-it.nHmh.f,Uu/+Y@ ["/vVǁFޡ*iIuko0wy]pO>ؕ0[L~8܊](:+W+b5F={ h)DN{ #]ixҬ *י'/&_j&ŏ7ۍ?Au&Esi<*h3]'r1K VKUo7;9\r,5UGT'^zne +NR[#7޺ zz>E.s-} ╔NVW_gl1ŔW7? ,} v;qL<vIt_F^L< gz"Z0SZKB]][\ݯH~[pT$yo MCs?;c]C,Fw7ez|eصDF0~}w~{im/,&4Ť&\_>_kG ?ݬj6 y!.MѫI-l|&T$A#DG +!v?,C푃Y"" LX8:a]#`亁s:3֛c-:~a2~U 世;8L.4YN&b#J6ii}+^X,ЋYtQH ~: 3q4MNaO={G.S/∡= oÈtf4!\{RB_f59g(=ߣOuJ"v4i"# ԫLuAt xA,76Ԅ:ER#?/pӆ߷j=M=lj6oJQt-p)5hE8JNZ*QU%e^5eJ6-GI:EgK*8]}%4;6L>tSl-[bd fpROl۝Nv~D1R%*8)oBL,>Ag1=,1eZ5CM@14b{?D1jgX=+$-\.Zc@ LQ#".m FOD+ GL :@0c vyM.ˎRȬ.SeafAUKڥ#LUy9Jx6 ]9vTK6eos$|nhQz:P し[Yg@_lU'Cpe/QB*ҐɅ x:Vnҽo^4N<狸qc[o3j\̩zP%{vln&*(x YCaۊ6eYLg1l 69/㹭fUc 1iH&įt#xѤأ3LCi.~qG"B9'L(s#7qy3R*Y0RX= ʃ$O}Iq/;q/Gt6C/;[`G$ +l&p\k,2is,louLj Szgߎy<5H4G3jۙ{vn0ΤVxs @@"us0-62RtyP`{, q F/Y-HߓO$D);9(.s>>l*'e3uVȋآ.B5cx .mڀn< Y=kw2~fV0m$Mh*ѦWxUS wV?%߳z޶)(=(o'LS*([krVlXE?oKl䉤; j`=  l]:z-c)CU.L?1*VAuoaFt~^vg9븳 ;*ť7T ? +lh2IDIe5mCnFXn3:Œ@յeJ9qx-V36B`xBKft^fEߠ、ru^Ogb?]zj#N<[ χ +@e,f:n[[/^zQVnCL_߷2A5Ǎf@ov}tϚ^*g.{'mgmk4jx"8WEЪ17\* yZ+}V EB(rb^Ni7e +?*jeM]=Q+G\}ЃE CҨbm]u>G|&hi'q2aAmPUWE4qВVT3"# L"pӉ7LlWq7gih2xQt\5RMpOEp&#TQug#*<άhdDepSE +C_e4cJ`B֞)dQGƺ3c}Ju&HdBbvzC٣?dLeIh(#O "^Ǹui`E ( |SCFRN]>6甒A 9/uOeP A%JˡXոCS.+堧 fLȉuS%URtOT{譬=a2>lB5FƓ"YOW5i(gT@8V$4J;!գ +n%DXTZr˦b`\.1eZ@>i*I1;0 +T0o*,PM Vc@34{+&XY.lJ +h;ùlc<[B Q?_ϠrnLWf0͌yj\tճ,FT <4\`G +^&n@9pͶ4uF%ф)!:5┿LrZÇ +u^7@!1:P2I3݌&SfNfe  MLyt%6(YK%aVwA^!>\ CX~xǏU쮔$eLd+ @q[J6"T"8pfXXa8HY k3EՒOl8eN徍pp#V)j +0,DbLHrʴʞp̯x-\<j3 ~kdHCJc xQuw(NR¶]+,hH^?WpT%^$aUE6qyUvj=|x̘TY17Rby+@)0{i>/~R_GnmWr]21[PU[ upR\/!z2ydi=|v,4?+mS] +aa |e^wr#ICLjm4g!Ļ=V2j6GPĚN`PN *Duk,<)8?߷_Hpɯxx6|p1"N;z A%V:ɟ!&JpYh}NtҊc0Ht @Rv-ʎO&KN^rvytK0l(2p'q֙ =;9[?)áqTj +z![ 3o" @\vJД{!֑ugkO lYj>5`1x(c4s;](x/Mm6g.7أTCiIh1?!BQdm|ؒ)(my#9ת|ԹUeqE^,"ybɜ*(]aKe^%hZC, Ԍx7#İCLG0!3aqZP3|Y +k"0?2n)xeVN뜶`ȷު̴JPh +T!"𯞷ܛ ;?L +_NR&?|H"1⫵wfП,[:p]HSݔ"ɱ. +;Uhz}5hl,!`/E0ۂ;3.5+uECR<~;ԑ6/>^.;VT2`l)_#M)Ux8ñ|ǖOD,q.}05xvp+kkK%xpnp0dF.5flǛ:z^:J 68d.'m&ރsy<?_gTNzkE?];K)|мdfe_>:/ddW1{ 9I_bzJ}w -ce{XCb Ki:7i-& SrZz)jXͼφо7&396dh$! ώw;[=S:Vμ#VfQđ. e]#t67{;DOʅ\Pv?xu'M'TܽIj!91+*Er%EF{n]r1kTP( BvDHբXlϒij8I[&@VY2<͢>8[ҳ8v">ŸްEfs=ݴ=|ݖ}NQW,m.Xp$4Ev=ruݗ ʠ҃ؒ(͉ՄZtwF].l~ uƈ#htC]g=b%z,R)S7{Hf!q὿v]?oL[X|N~^2o:6qO0q/+`Kssv"sLCX|iE]mlK" +Uxe8vk K<ӂvPo߅z!GhFgnj4Ths~qp\:6&r_bZxorHr]܀ +e*'#uԟC_m%n01chcGd⏶/16Px$b;CgY&'-vDc|Z>"/lzb7?,}[N݉D}?_!9l+\#H{q(._|]Sk=-}rjlo `sa&;T#ꑉXS` αh8oîOZq#W9qkj5 6na̙\]qv ~n l+y{'-6(YaK?,~Y=>feU=^Bk^ P #dۏax.fFR8 u jD[",Bۼ]E#fsGw% 7[y:KOQxYe`"-~6ij`Ҵԭ/F՘sSpxYsS/KdghB!zctWΌtdy ܕ1nSu"IaIhL]*Oi?+r.}] Q,uyxbcHGGNWbi1s¢wY5E\ךNqQLeMC9btvVc}x-,iVU$U +s#%O+RTQ4ta0۹UʌYQ\G(P  C˩)_{vY%ʬ$ٶLJqSw!#eU܇7Q{<7ĨQEuI1Lqtfgi9Xb64 ~5 я[ӒH.CגGwr 2LE Yb(ZaznoH& +T%.? bss78SP.~+9txpĮUF9p);hgCҿﳁbfECJj:$E7sVbAf+X/Hʛ؞[oƒg]n*c7E j95 r[SWx`/zR3` ܬQ%Q67D3ZC, +Qoum;zɘ &3_ tJC,)Wc(!T:`ݪZ+ \t~Qw UL7F}e09)L`_r aGe'v؊]Fdvf(b |~ԓVP1ʘ}n='+)m:Oz˓bz\ ;^I .itzh1QA걳N*([/ rw]`ZWl3Eq}62%q:4yĈ>#$AiB>áIdCYv [3d:~p SrEX_  '?Otd 4EqYX#[~Xi c UE3 Bhv_s; P8tH *Wգi#!`ԬjREWV^%0d@z>Πt7hpfHhN8y}%q uc. ]Z@{DcbfˉyXh,/J%aYQG%ѥXK3PȨIEe ':۟"e>L<~pY)pl3-$%e*K]hpҡA(MLs*M8B{{ X7Kro.r76:RLckPdʹ5R)J!ڴۂCX'gV&وuҿ[cGfuvݰłf~O}㦄3&4_ d6s`\zfH&RIR Λ:pɺ358}Sa](ec=4ι͒ \t\-5ܒT_S1[D;f,nS0ТR35݌;,p9v6D+MBjkom y`׻\橌>Mv8;6LLu;)*/|Ygj +tuFţ,_\aơ@ ZP%)$f~1*{wUPJʪBdh Lpn ;ȷ_4j +z z9Pa%UPN1{@ZTXKZҚ]΢ww{Ł>( oĜ >h(aLa b]ʣ]ʇus-W`a43p֊*ŵyl:5b{K@\CSX u=vb<"}\,ͧyUo.(3T=C q-ܣ<"f-tœz~:SҿJTo(X5DBP }`/܁G[ e('B9_&$m M߄ vult)@8d0OK+!Ie(fBp3+cUA ٭AQM^Quⅺ yr}Ӻ+vx0Bn3ɕG[)84~PcP 8 +KW:PGRRm{X\A, L v~cx`bO ֆա0e$d@4?JB !51n3 X cɈj9qظ ó +SV~>ʂG[ѰP`p3 ӳ/ xQQiȧw3Nw4jKሼKQ0õ{ճ۾\˵{֣;ƽ=~鑎}7=wӣ8oՊlU,t@kmzV^7|n!2{Ssޑ)`#6fW>>T/5<>rʣ6 /rlxoaåu0H61Jb^d n rLF ˧6(6@* HN>cI4Z(0:T)zÂ9ow+ jg=0Cl!;&N$ Ua)f|#Dǐt.uYtTJp5jz*pl↟V!68w|D!WlxxF6$]H[劜EvM|} +N6S,&N'&aR7.q&e޻;"2wD&W_wGi)\#02B"zr$DPUIS2ʼH ^_Ds}gB%8 +e&Bロ[9;vx:RH`XhB=#xБu!26ɤGQlB><> ֬*&,N**@-(4<`%""´9L%ѳBNha0b"!"ROr%8Jv6TV0ߢ_EXE.[̆u)]b$E\)VQ K%e3>a߭qF3r5զ{Ȃr(.VԍҗS" a0-H鑠)lB@V<ˎF||O}X#E(oe j9-[ =f,!~jmtSA%ޯfBvd"ĀZ⸒yb >12B v iz~n IS"׬/D)Y.㡉uy&@\k2zlI~+21CO\IԴ-dRn .NJttrGfX!ib + z1[='29B|.cSYİ2 v>B)2NT070xH AY2Bõ1o\'2U=GKf$OZŇPS]tfɪ=6q9`w 6UmB]\ɤ(+1Щ18rM ?̍Cm0pQTK|&&GoGF< _*B)djWm^5P|sw/<<W&}Cj4Y$W ߦw*\q\.qZi' +-}})7a!hxtm|E&Z_ AVXhd@EyXV!cbOA#3aY]QD8c !ؕN3)Nیrަ;Ĭ'({W0)VJyEjy dH L1Jl?\u+$$T\`⧢yM *JV=zr]˥~7^>Y=ӬsR2d}^HJ J]RNLs78i%1C:%w8VҏKbPKr($„xiߎ3£dI+WqT\?(kP)Sc۝ ^QFt b{}%#qOB=rj̭TsҜ`!27A[f.:˰.rۀѴH]%٘O![W<=1位(GfLt?3m41t7 z'N)XC/S +QPATR""ث.%+if^=b=`U/,|:om 0Hiz=βz=͂noXmx>ĤayPӊ*ɔ{#*vm._&jB={*xw+{jǺ'{FOM{T,Ӥ^xBR#"b"3p :]\­TDŠZˠ2&kPcӑPr]M6Q.&+Zվs-7EN~#R|cQ!xC@pѴ=|l2=F:t{#ttgm=Hp &,BѐGL ȼRyoz'TL + +&"%fX3}`R~"a?z̥5ta~jAӯ'gq\P0)*Jw?OX)P1I޴S6*W|K!x ĴOaT7!ZGzl/5u(T=R6 qQ1FR)h" +XjVp4شS&iP rrNgA!H:ׅzM}XYf[dYhYto7W_f[ 6jDxˌ&-sf_v_3-7I0X)MM݁Rĥq[Jb64ٶHv'в-Wdr]folLuytiy" ih͔FfT1 +O9EIAgǃ/5~p< ^m| a 6^3Q cv}_U!bibrA눹yݙ+ƻHoY>*Mrh$:~. +1+ 7f>d 3(oV\,W/j.HI7[|7bĵ8MOs7RCW]LГ"L%@0uTE@9:b +כa4MHDJ_af:l~׬Ud,M]1v r".;ݮ4C`gvW׮$OL S\{xF等u2ud#};MdxyiyoH^`lڽ2fr(3B7"y܂f xk {]>v{z"@ؙ 4|Aosy'eFz^C_O \Sb^cה95ܕJfL?jA`5HxDfP?Gϊj`N#<̙uh|2?ȓ3X\_QNM#+)e[ +Z{OYG5a\oJUr28SKӉ%Ua|1KNbVe +KjJ:|bgfR2UMÒqc Hb\&ᚁqh@c0{%}<KrRŨbPT417uN(2׈ _ґN%P :+@)r yՙ("f>#E?J(:6/&L}-p-9pD/tN+XB˕kN e]La'd mdM[z@OC Y|S)~yÊx.Yذ] Ǣ\)G<{*KWT5yFmGLNCuIB=h-Kև1D\tB%7 L!B+g!@wO\̈́*PShŋBF9dP絆X'Jذ ͕O2D;@S,Dv[Ʃ􂅢 +&.@RVuAa֩c]xi46إI0xۂlm[2Vh<]s).G3MCoQ_0h2e`hqum݊Ε//F1=ZVa{do"KZ?8IZO-K <#lT1xUraI$,=O#+9GgBP+7j}Ja{)oʯ&|!yK~0=rUz[jt!vjy"`K&`ӛ?Kkv %\J`CȺ=4ra[5rݦ/mScyYb;G˔r+MtO#f&p] 1BbA +AH0zwIaG)zdq8Xq.s.|CIx 8yXNtXwSI'w82?|G$C,uD6ud># (نr>C)=㸇 {wǺ{g}Ň{Ę2&7}0HVHv$iBL7"I#?HuE<=-AmHOQ@]*8VU/Ա/vo\AcDn"p&vq}|:D;Ca=JDH|lYdYDEX!GVGGzKd|ʩG6g^)1EPsyUq[ϕzLGsAx VJAoYp^KB~28zCj렑#GV~2JfO!n6D!؝ ⴯+`^+Ntg(޸3)IG9&9ޅOmO g =2_Z"AO6 qЏ֡Q0<(c{c;ڻw;~t:(|) )vOE95o# _ٌ7挚 ;& +KIi4& ;ITsQ5Z=؏oi}3>l'}b>'5!`>X=w$<={>o[5_"öѶЏo8CC}_6C>GHZ# oڳÏo>'(я*w.?GVὁoۓ#@o?i#&>ÿmO(1'|M&4(*,U]F*n )%d,mĄ!)ٸMiHƔIIJYT))Q`@r4L/"kgLZvɷT&ecnHr3AB3atYd$sjۖd\! + ?zX[-C/*k 1gٿf\A:ly: +Ydf*eB[)@U+a? s\A7M;({ď{aYӷ>g\N/_cr8$0«ܶ5&"(0Ԙ⼊PxL):'[6.R j8u[il&2T(nݙ;(.ҖJ[|$ Ņ 1Շ $%'D&e0Re'3Au5vxR'iHOFR43a~ #d7k%̍h\k3D`$wDOr֠Nhv!ӦD<6=wzi,PCxfyۢ +b;|s)]'v`Ja_0Q `W8o[(<% i=5LcUg?* +bњe"*oE}X&ԇmEaueNUwǔ>ڢhl9c=ׁ8/᱂#1J:jG1$Qe}Xψ֯ыż#۞ < O @c)k _PkĪ4&?4c,|N4!XCE\p8o]il{d#[Yd]n841zD`10 iPHUe; e{$[O\ꋺˊK~-D[؞?57\$m'>d )Zu*,lfw:+$O!A?,8)HXllo9ٟ%7kv?s"Hwe_A3^4`aP}-23x谘RAJx``ӀNlXg 4lB-V z d$,bmz$ 2i#ﱑ!d״mLGRmzX&y%x&zDV R=VPG`(%,C@{?~-G`)\vsK+[+<n~ +i;H0,YltkȰL,zl(5f6}TvS ++ eez!}{_shhPM?(xzҺhVV@&g &,2-#ƖE8Ӱ& 5aLB16T4*/z( ի(N^5.5,kS*<(&M4ew3B +O ͩ!:DLp*OA˷*/-+LQkM㭬kA4YHD +p*$G<QAƪض48n}pĘbyI΋{]u +~ +ư'/Ah(stŜ[1WT :wӐm2Pe2цh,/U(hn:~аH {ꖇ[w2桙zz8f8>h'bg92ѾEp\)?WVF-[n mY;OF;P^QdɾgHlhHU"fDKAvP;΋Fdc\F}iU.t]ueMa{;>h `.8v5fzj%# J6Ʌ7"Y,buWe g=i.mzlw̡)q^}nCm. ]uOSTW9*F)CVTfTEt >=韦\6vuOvV;ep2'aNƯYD,"O6\W]aTlQt ? O2K-chWxU\FNj7{zVR1{"_*/;?Y*dh:z~TEiF!'mH|{eg1ba2 Miަ9'޶3:g>Vc$al)ظb"RFnfeJ֡ۻRg~zW1-h6< kG5tRUYSqjeƤ=Y]WcRE%O̧#Ypux4-#$XKf`(*+zK`TCZӚTAioD4dA|KN!v.+sV +3ЋWL;U+ 缊yٸśu5y&Xp!z=&T(U֧*q1FZg+rxp_;4bk3-5s3*Y)/WF۶rljv mh,[jH|O5.U~rG95{qn$`厅wZri'/j1d#AegOc*f|}Y1nCQiaہvhy!_Ԯ @[kdc dfm@h)׃`[u; òy؆z+tg98xSx掶cz 98dK%)vs`+C1'j9#u3Mq4 UŕwSQ-ا9C +%,_2+=ϷCFE& ~ +FJ#SND*O#(9G1QrS ++3/zP+k~4CFeF>rt"TOt'kPb$/e28dʊ{jithp]jٶQ|qomjiWBWqnfWozl{ rF^ rEzVpO[(;{^z`ޮzIqO4ݮ[.ًz!Ćr?Doc^79>5b5%S˸mroPB?-up轸-uo1K2vHG=/*-=(/^=pj B@o~&qYX{vkZMd34;EutYau؀!wNϹY<^ :@ǡ{]0 +7$:N;!O{_kěk*@ Đ;T^6Dὡ'he@{PW +^&70l|DEM("tETQG3tM&Rp3C䌬YQOG@`ɘW֧,⍈3iKXjتX8Zۥ~kNAf/}H?S}[\z/gn0*1c ݅jC[m`Z +r[mCUBG-`qH҄dVU ?DE"x쑅/(WhymwoT_7sm="_j I~{0>=S#A9`82V~U]JtV}Ƕscly>0yO2w %ݦ^3&/!)eD6>lif۬ySN[j%BI0rD>&;};qhTIa/~6|_T\{ΐR0;Ŵ61#sflyE+[+P+pYgݚyHGj"_l|9/Vw3L8pP nCy"zRwukB.,`1[9iX2m f~K0BLv|04"ر-l +UX&5hR͡`Ha$ww;){;t흦[zn!N>#og΢=Y[;M{]R;>Mk"ԮTy{쯏2|^1;9^Y; ,aNf8GGPy8TEVRyʼ|oL> s"9Ԓ8 +:ӏshm3Q9_J==ox_Սc{*/9rnmݔͦvΫvPsH. Av!]-XJkb͒AS t@TVdPcI~НB` +y:qf Rsxe)P@y ~=_Zyď.k +;re1пn[# Cz^3O^hݍ&5`[:C75whSm7" 1us< uM7@M+pz- 6@];MaY.wkE`-싐=o5*MOزOئ/2a& \C[wcjJFI] ]4{ˠm' + .%ŋ8掝ya0Ğ T5 %cф 4 +rRH+C( $e*zy|}a1X,O&:!,.W>pkΊhQ6؃ib\ch2Hj |cl!ז:gɨ9yw-^[1nݫvu-zp>t }J r.LkMH)pM[Qv)RG)aNy]~l=Sos u%#=qxw),^~pwΨ)>̛TȌjG=:OG+ǂG7wGc٪x$tTA-3Jw7~zٔ19ēu{ڿ4yG^*cAupQ,Mk& D z2 +HRwLbXt"?QSxEOy0.UyEy1*@|вS0̹YE,XyqiPAQrIV`~2IЀUmnVljO<zoڋ'bg.c8Bh/Cwtm 9z^f/ φ=hԑ<|sZ <NGBA獓"-o-[;@zuԢCBפa,9QjMjnyryVutKi +C{yaYG=1+^/~@#C$n♽T噚7Xh^n6?/;[Tے=]=Hh=_;O ^O|O% gH2ȟ)slɼ#@4uO, 겻ܥy>TCۃ`l;Dn}ބp?4^oE'BP=Taoy3B>t⨀?` + Pp̺ rN€9P( +I䥪 +: SD[s[C^[dsX\sv:]҅C B!%H MiC8’Hn9Jahš2CX0a \5ړ:5հC:14a:AjDpaa:,R\TSwʘH̻ray!RpBv :&7jjjfaLfjfa+tBvk/b>LC]BM@kuqg~mAD1 + Wj- +-,M3e?]8?[ut0yRl0m3oCf%vqɹDIΠSɷ{qfw?4eu4JmG}^/k +'t{O5ۭAYl3r"Fsv G aJEN+B]1Vx>+#$Œ $%* ۑ$$f[|{c/n߇qPp0ţYrC쩞'*apH+~+1M)Q,.ڟ.W y:pP@|FU:;0 ) +st” ~W tcWC5#+?hhg;Ni_hqXosFwr V '$p~~6w6't+sHFE+(/}"li}F<čU-i +F1* (&[.auTQde=vnQo)ccbwf㫮$]^i#әoV!1Hjq1:!46I Ԍ_v0Lm =3y3)7%SX}lېݔ";:;:Qhf6q&ՇHې 䮖0B}YіUfB;5.qLb !S}-}ȅO3wRrv41/Ť@;!f%>R?RPij@  $+Ƨj]n$^Δc89,,(ً*O>fk^;v~qz}"%]0QKXeHYZ@Aj< w 49"'OTwYDpDbfG;rgSefԡOpkvdݸ} lS972 =S[ɓN6 m]ޔIa=fH)JUj*2NU%%b4L 6!2<15NJ*'KI4Rӓ!nL=V;<б]{*3#Y:?ۑ>8 ,Y:SNa2 8F([!-g%,c} S$2d9XrRX~BJZhL550F>a1CYf=q9vl0Xq|pJM&9u_Y{)d0S֔Zm5Ѩ@fÁ2 wm4]{v+`YQi# :̀é; +K&)E|1[>{KT34/;x@{ă{w*tUDۙp{TV+8V=|6+vpJO.en9^GR5j¶U"čۅ%GA!SNdMB<6MS\V5|oXђ 8W4<\1F7~1Hc={=T8H*3,+Ou۷0O?=6BL R}(_ TfU%y-lcm%VG$0N[z庶`ŕwj `F}%7#=@=ߑL#=p]MEJo4l'/n):I{m>.Ωwy=}/_ ;Do.k`37*|]=X֏7z1 &ۧ >#3oz֯(՜Ik:u!՘ha"HTO/1O6fQ2Kmw.4~ f009P +ـ~080J4 =1Uɾˁ_ CXs P  dmכ` )HTi1V%ZД겝Z/USԮXyvՑHipjD%a6@q='VJ dUh7W Edm!z2X+dF;j#G"j6 +Z4_Pyμ juv|t?o2I\qlT#XNlXcr*)~.kI陨Y}5.)dm簄.-W ƈEB KO@[33%"1 +)! +A_ǷҚEr)MJe+١=j*ovAi25񤸅B:|ҥjS[ qTF7.JlEMƢjL4CёoTQIOWiw;)/.y/Kv8!]ck^ Nh@l='HM !:iOs!>}A#./A(Lvn!W>2QQ,t]K:26Z= );%A,>SV湕;]xIM. z=(HhƬ{x`(zLfZdm!f?w)!3Z$9kfT.n"mB,^wbI$(؞@T_XKwYC%3csFGF.]q<Hs ^O@\Ws}ó`Atyy\$:|Ek6]':W +*{JR`Ej410ojGJHT,r h1fkH#m0)s-,g ;U-̋bjzDZt}ֶ^v(%M^/*DY0 s>I]U/ +4E^qr| +:#JTSSPibvAT5`w$ԭf3k_ṖqV5]eu +f6UJ>I՟m|9vBpg/CK51ax4FHElH``RֶN9M`̩X# L̖" {(ҫzeFǕ̝(e[K) \DQF&k7Jǡ APIUhMiגsroeR;' +M; pnYJ1loO̓H]9Nl0T':H | !4Qq1IudzsXXnq/ 2ś FV+m3 VnN^=Z֢iڥL :5Cy4hDAAmIsvnry6┖rNL>97*'LAM79Iʰ~V%wq}蕄wPg6vSbTuػMsh0'C"2.on_33€摣DP3)xwɎW]Bc3,'R(k/fBุ?dR350bϗTߟM u0Vv2Vc]089Lshx)VG +lʲ/'CpvT2z(M%?luxuq7VrΌÕ`Ք%]G^ոrǹ/_C<{"w?@o;} PhXaZ/4~l"x[.ށuxʙ- y:_[<,4Pz{f.w&%zӺ-VA+.o)h*Ys 9Q6Mvf2_ ղT RkSō1($䪙k1INZ\I:ffª,_/X +5!pnk|\:PDN_HuR>c>ΟQڏ'=8愌TBX)V+inPDs*+vQorjyInL)T%%[)_PB(y +CU 蠹 OeTԜh)cTAR԰Ь 'FK~Ku"pEM~MY,iK!_4\3McMɜ7[9UNaYٞYuﰝ2'~C)&!oSKiKg5UANB\|%dQJsp"R*MBhs6Y:k BCAa@uc+o _ 3J=Q>(S!؞*`xQv?nkdpeS;Ձ&:*< -qs喑% O-LFc<`)5DGϦIl-ðyq)*!iSd*k DRUeIKAwu͈-dԚʆ [ʉ{@NErYa/!ݩzŸE-FAE-Z\yWZA0p{I\31q[WH/?Ll  Z0zmt0^eVhjx >[[^ +-~ͶJ+ǝ_\s\ V8KT=7ԮDa]\Lq0{I3M%px{Bi:o~˱H\7`-3I>v< +=m + sX6{g +1jO>mkp=I,c<ɒkOY +::L[ibޗ=X#KCJ0Ef|tJDz(4R-H%`9"e$BsJveC5ٍH0D_P}`\)i멓.ʗU ƻJOe3LnަS~}A#_tQ~Z2=̟e(J~y%&hmqͳy9h3ˠhi\H;Scݤ=;-uſCWX*c>`8$/<6k<,vꌦaG4f;Јh)f^PZL h{S=?eoKbO*g$NWHA,X1wAqc91{9&_َ]U޾M==oTx ݅u@!lB7C1ݷc˹?&u=( u=DgcEEt"7aDU^T_1~uԁ~ח?j,+uHAosv_hF˕}x%+s8"a{z&+mY4QA_[RjMg]FRzYYUv5ّt!UX]J/F*hE؄ƽVNt%ĂXYXmJO5n 6j}bƿ V낸MIn4%F=""r?m+%glaJ 6ҠS2:Hs}"ڰe->\ތ +2J4IiE Y@tt4f(r|5o@i WÆ-:EF,˨55 +6`4,2F$3v#%zsA&M=[4 +*qm4ࣔ;hQKF-YUG"%d@6>Ӻ& n5'CGdPk!tmP  %HŝFXA|m56)֬$_]^o(>-snm24 +cq% á{C{֒H5ߔexoUfLf5savXS"(|aF6s ~V* T=m\|ޕo*H:.΁bb1(~ssuԮ}^Wٕ`:y|/ Tϛlkl.:_w!0q@(Hc1_YZU@o0.:H^몊:7XЯ6!C4$b{H/b%iň,B\D]h0 gU|c{10$Ҕ ]&ZdDh7C4dzaqEH#WCRΣ7}Yoa*1qL0H~[ +gdX(fЙjMpzlHExQ4tflJ*$)9B*S𵍾L0X)S8q󎎼7FeўS#{AXlCI$C-h tºdU30Eͺjq|rBT@BS;yJ?v]$inGآc&2ȪsZ\Ӕ-&VE\*%$ڗ2 >SBg'^G12&ٌ Ga!Z d0DBvw}%<D H#'<(RSr-[Dd%I XvjɑGb + NX`XZ]LwÓh .JDUř a{{I@˞N]TĄ]c;Kɛ4P#KS~_,Ŵes:/5?X.j t4PYNW7}rźYP;+W VZASbWA!G,{|St?Dv=J{Өep:qȖdE-8-[-;x-L[҉{17iqX}<Nj?*ao 6*):]rXàf3'ubߦy7~!dL{ +i~t4AA@3hh׸uw-m7 -!M>c_)\gntc6.ß(~\~bA?M?Q?%|^cPO~4qrg/it!ދ.Z'}#a#GV\z]fSiVLI&;נECʫ$av C.$+)+!1v\KGv^ (qܝ!LFR􌡨 +&Iz1ˑgL8}% .#t/d +_i<tTڍx7:S_7_҇g^izOm^i +EWgr*M[P'tXG7RЁfsഄ8t[W[u!iؙGk-W=+/W̥9z1V34\ԍk)|v +k@,FKp0T#ɿ~{qpǓ37^KϺ'7%2[w>-LS;a9Z:P1?paPH,u +Cl y@~cKim.ǣ`u jI߳fw({ԯKq +!#e~.eyQ,8cΊ3)9ŝ.)XxU 5%CmU4e);STtiwbԔj}Y/]zЖgx~o^ dRL?*jʗec&Cw'wTZVXduʧ-\zvjlt"ʌkR +s,ۣn5!砷 a<1>pʊdS͜(m3]P n[(σ%^"+zVLp +WPO+m$/VȒKWPtBiO#ji(SzǼqn>[.o) :wKIX芰SO*}:(>m4*ugNI7WkPHYՋr0!OJ|aЏpͥu̢ZYGg"uny=t3~4Q֐c\>͜weJmʭ3}{Rr8hKĮ5uVvzkJv̡$9TICw#K+uj֘BGc>>2~&ttn}o\\ȼ ޞoϽvOtNmQ=O4ﮗ?\}:CSrxq%{-7w5DsrKkˉʹ逑aG OqU'G"[ &:]\H{ Nx3Fr\*}n3pDŰ+,DeJQ:sгWA>`-u(7Ml'ON%VPv\QϮr‚גul\o ^6.w[Fٮ,=ZqV)a/o 1[.>gaAn[x3&Tk \AT4SbhShR!Q)7Q-TJ&Q#h(DmS}qZT)z:mU9SӔZ:WA-dSNUyLUyhD1r)g,bߢb÷Q7M }틲3 +=\%cNEx~'a:.n Zίՠ$[T?ZrzYJ+,s-"1;Yb2ˣ Y'EzM@jաqɠge1!RB$j47=Eb~hLxl +_HL1 z͈lX \6\/^{Uj%!_AK.pX\Q{|[~l%yA$kъI u2FAڝ%:"vU:kũm +/k]Yy +>lcu BDrYAΙTXf-7ق -b:g%۠皈~i|e;k?Dw2Ψ y V?'ĩpޡdvXDaw;U=ꃘM/X3{xn__u + F_f55`bVU r/WT;(&| ;+OUA;p&1y^H=)GP_∐^b:U*.+yt$D0O$#7*$=Vm=^ _}&<C킆{iqLyU o{y?9R죺'֗ ~tZ\ UeqO} X-ʪzAdʆK]\;W'g kXt' ue t.{Bt72dN+O!QKƼ~;.2V?"^`\S"Um^2Eonk73S/if?E|S6}`cg}vW<~uWPŹ݃w%>FDy= 8~ۋw7*KS'< CENj>(e`rX; +c-G*ۖjDN5=L~ftOl +V;#V[Aʚ$"{e7ygtL:u?߿ujy IN$@8ؐH (˹8ۻ8 +)*Zv*?nz6T6602ۛIilYD^65k?|-32$"@ĵ@NHLMO>NnmŏJ3YCAf0xe-Vs#4`3 s<`GB hE%[ͲAמri:y OҼ{o )_\Vоb=|xl'LfeZ%~Tyj0{ApLh{UjNoNrh5N,9Ѫ*!iv*,x2,E&ǝL43fo kK.GS&Sx#lJa.'.=XHRJgD@9E@mt PqL%f踵/$EGj'/Lfb"Yh"BPZ 2_§T鷂(ie7םf2 KO$UʺH}Z?3(;+Cƛtr cL +".rd-OK~nt:/ڼB9@V0? Ds$Yn ,GRH?bnYv@e,毡$=Z&ro!Z;PJ\?-as"sbUbG$(f7Idd|\Z'@bH_+@C|y>r2} !_[i~/+^d葻:߻r! +UjVy`ޘmcX:d7濹:(72<Td+z, +*2xt*C 7%;-+\5c0eI[]tT +d.-əRLxθJzѩAza#;;g(aa6M/tOWL5K NRA6ذ7dgۊ?%d/%H.v8wZzH`OOdak&mlbk(hԤlc! ] +fP B5^HI"Rvь+nzi T~ 1L>@6pw/gMӛ k1,4wѶ}wfwga>(%ʼl]M*3?#MZňW)5J'@AQ~DE $7Z%"-FD]qfFGfuM^i+_ؿ(:~Zm \ƽH,)E2g n9J*37 1\ FsΐbE9?tExT~edlwfͲS/м7a0r# 㑤o7:Aʕ4FM0_y9Qa]Hg&=Kuz9 ãgY{t;a Uk [A/V}]wcrnhgiHf3aI22.۶4wMWXBkud :mt_63M䞬 JʚMSx'2=y vo(/&%JՊR=og k*QYn`1vn*(\"w^YUإ)ՏQ +g-QN:SBc(Ħի.CUga{➺tLTG>$H*]`'f̺%'*Ů{+T9wG9wǸ3^$nMppN~1z;['B)?iG=N?WQ?$ +U|4K'5Ԫ2K@.r|7M;֐,O(b%01{”%tF=w/c >)~Wi LH`Ni'@]եE'&xPO(r_@N0ARa!%G#/LDRdlb oG-{ּ匋'߃WËOBo6BC5>ULUĵ<jI9+1 _î~ ?0{2;Lx}̵j5#DBu f#تT>DCRH#Si [t*Ṕt9lIְ"s0~6JDF+5<=@;? l)ch3D!2*ȭ)ƛ +0Ma.RjrS_eؔA>]$c*hWvD +y&Qw0hsN2d֗liY6=jCH 4m; %}+J?@.KE9Ǵ1)kkBr\'=Bwf8o :.d1RgIÍIپDŽ`L?U!yǶS%^{.ePB#@E? R'&?y Υή'ðF:޺:j{(C#(UYBVY$-wNT @rHmI"5B  S$S@ag@; +n=S_'W! Է02l]V}nPW''wUVp4P$XL5!Ւ&&*tls:=lbX!$(eGOrJz)7R(^b2m4\"094r>gMr.O҉ 4cї:=qf~HY%S.5W\.uRŚVM ..*Y\!sTQg-IJ Vً4Ts`JsǜuL'2Pޙ6m/-ŸUX8!N7CLq,q ĊXԢ?HlbsGKMJ*OA ,E܆HWI<8Y꺃?K28IyŪȝ>SпCjij,ݡz5s滷y?:CհBRFta0ai0{PgTW4BwK.ϓ!=vW ;c +/084:4lZn|YXXgI"UMr(NǗ4iqPE.ԗCU09@jJOdvT3eZE1& :SKӎ|ORoƛ&FA[ky>9Aȵ(ݎ֭fװLK`wvau ?rpY#C0ϋ?Fߪ91M3\E73]vmaȭ,K+NODu]E Ey-_bs(vҪ65kV/cb]C+prf}DQl&:X-biin2{݅6ש +MJk&]-xѧPn]sٮNu<·d^OʥF-tUnAΐ s K'˯q}bCߓpܡ_,xJ]hw\0R5#M ezF-bƭ[dJ"5T˯5T\9Y(rXg xp}r >20 +aZ&yEG9!$DO՝) Jf^…6g0>{ S%uMr\R,G0}Հ bޢxn;]$9ZⳛM0X&1TM$n x_?9gvhP=;쁘'un^Z T.'$ޮ;weA]'hAЍ[v- =?aOo-3(/H;#a +Zy=!:A!v<¸ox{#KQ0%Qm)vԿ.De|-7H6Lڝ;<k.'x!Gt$HBu7RmwuU@w +w],qU-}Xa4n23ŨU`sRM~'GN#flC^ۃ è`i8z+C8#wn +,.B2EҒ)&V4E:~J0Lf0%dܐ"֎F%o)1IxߤivdȾ-#4Ǭ0Xd),uAiȱt~I@HRBh-0J0vG-D|5Yr^˙MﶫVkصxB +4`u%$Qɔ4 F9*_@7˴GE31E0үXayn. ãFMzc2F§'#%b9`$s:pF +/c$՞ڻq3I5OTTAh&iH Ҹ.jLuI̶-&mBڿ^cB7>Yޘh"hf% Y0W-_z.%ucL\v+vB&V(B"X؀K1e.E ʷ>а+8 EDBe ML r˻|Dhgf}DZ >ÞxTܽ0>^L<&<9a KClOP2ʾ4a%N=\;0n2_12乘ߌRԡNPz:hh݉(mVWh֠«Ic*gIH\nE[iW|,M vb*'QBP̴t\ewH}=(첼Ykazwh*"."kslA &|X+tBv +5&ik(2ĥ "Ѧ,V}izv +)D.έC gXxuub+b$6ͭ&[aDhB9Ap8wŅUk *.| ]w{\M{6[KQHswO X}}k ,i_ѪzDaN G Nㅌ2^QQhl֚ BE $ 1%%rf2ǜ%Ltt"&WLti: c9'Պ`n"qcn^dt2}ޔf~Vq Z:. L \%H99J>ˎ5 +#͚eR1UUϞK45K:1G*uJhS.9j)K PK`*bHD~A\ 5bŊ=򯶤0KTx=.UNzԙ̄/;4^JhRB96Ø)AOXCŘ ȮSE" 1gU iUqi2jÜ] F.%IYJ88=UKDo#20j5$xÚUqf2 q*16g\r\es6̃A+4-. ՃK<ͻ/)%xv \-z8DZLZ#;-+ +LRHmNInsȫ#V/2$A 23-m13rcxC0ڭ_f}dbH8瘶'AƎcrCmr(P-.+ɋ<@vGKt9/R5p[|*M=DT{ +ZK )/s IQ1:KZ &+.7-W.y:YL^ßuZ߭\۞h^f7!eȜE=+}6%S`+˦%*ZXqdJȵ:#R*Aٻ5C䴮 Yig&f fs|iRK{5Q怵+q:sIVbC<)~{-[NCz@ audcy +ayf {.j|z݆| =楛 fCdJc%z\ džÉ~7;G DrC]r*v`]gZɞdVm(# ԀF7Z?A+CzFK3.(b*ӕ*SV]=-; 1~sd'3ig]? -MIZ7飜#Ǘ'oJޛ(/__ o7s>0Racg#S"ARwnj7;tYN~ˢn6p.y:Hqp:puF>*?6*G[} +,@!{)pݔ:&4/́f.'fu)>`]}Θ76q/7FG P9R΂VuJ +8̪+'y%m3˻йpv;D0QZ{9?jw>lnὩ`MlpQM-"Th{ TEL+=Pn:;Հfԑqu6W{Tw @Ԍ$xzqfouv.- 임O eDqEّ콈B瑬>QE]Z1HDl"ziѩQ$r=hgUVi3iuTovo5ʲe틾kgpc(t_/bNV$[ޣ'nm{Rzτ ByZ,zǻ$督՜7A/OzGLծhvdNOk2- ߳E4@\EXH0c?B Cªgk.j}.$Jod&DoJ4~Ox=4[#&qCVyq Zz"M8A[Jr7Q{ò8Nj +UNnf:K +B._*!g]x۩Tn"؊ܑ`r:iϠQ>nyR+GzOeq~U `Uf`Qz[ҹ<:62H ģX(%JY>XɄs@OYuCB}$qid[ n"7)':5 o͂kCĆ/'".lQhg S[Y?=r,k'"'o*NJU0rlPFV0.&/@"%I.3<bXG 4?c`Ŷ6\ 80;}˳Pw+ un,S !H V_շP7o>Bssځsu9uOα_tx1-˄{> 9 L$9`Í =8u|ЪBZmvTT_< &0Iss= 3Rd~2j ulX ` fROc;#"E#2LP,+^f䣝s&O$S+$ˠ@\f9^]bnJO[-gp~x&QG{'νLS|( f:{۶7ePvKVy'!Zd+W,bMAOJs9"b.VNJЏ?Е1pwnA~-BB8e֝RQp?Iv-ˡ W鬵12((tu3R,>2I$R9e] +y1+fa^حבW8? ˊR6vK(첆[\#(`B`OFQфudtʈgG1Vhe۶m۶m۶m۶m۶mu/_Iۤ6Τ3s Ƿy4 &4y1,suse^-Crݓ98DGI$/#-uq;#g(2D >o0c,n;lʦؙBi>[ f4lLV"* sZeڬ՜5:Z,bdnф0ZT:Gvs{ZvlDVT̾ό=XIV:¯0˥6I~bM RӴP=z?{7緗F&ߤ:Īa@JY4g xk.p6x[p-3Z대CoMݔTUB::ȎxDW;< HEQ^D8cUU*Ge&MXOlnN*X?gs2H B|M!E&bM`Dlm2Ӭ Hc/"nBl<R,.nn+6 j%3}=;SLcN.Z@q*R@W/>KB^@M~GoMgc(p=<ʖ8(Uz1$-@* yA獒 K&mU a#L 7ގލ.4N$; -$h@n|/Ώvc~F7owx7YdeH@~rDƳ׽ȝA u#dDJA]rv.j#7l/L҆J*Sn=.}=vo~0nLq-OX )羍wD5),W_At;Ip4oUjNHk.9&6a4!0 1BYfd֙T2RR!KAfazd?d]MުԌJs^_oM]v{K}Ngȵ!١چ~\7zgB|Vs6C>;Vya& +ֲ1Ts.x!E=! Qc;s*o`ZScl I̚!(_k0a˕ 6ЕjS<669|w]Yҕ6P] `(8=q:5qz">}@!%4O׷  N> '\FGwT#$mGVΊEPeׂN2E5KfxZxXs}ʺ~pT7렚EO%u! d>bjկ&/ nulYvCId9أO.mKG7wyIht/߭G6|9gvd ?ѳ](P﹞#{\Vc-28eQ'0? , +QAKh-λ Y +/e/v0H c(> ;"o5Seg!k/W:eOvnގPX!6UGPkxeejkK~ XfDZ-ɕ͙R<;k'R :ů ]⫹} !W_[jT(<*/6lyN00gTӠb +ݭJQ8mk?imfW,xfqMGqW< ?SS%+ِPtX6Ȋ]z{k>qT;P7ZoU+ןWnq_MXøE@W Ϣ'vEfr?u4t$B ZGɴcvSsPyVgk1Hl+-u]&WZ]k`*k9cWw V:WS*bO].a]5;"O·y/TW7m*802Ms?xB2G7Fᷳo'[:Wm' pM4m4^U3=wV}Kr2WEC‡-f8,-=AGgٚmyWqtOa.J,. ؎@׉>x#H` ^GЉQr~f-4Ta.`^<z~cu.vȒZ/m?D*6?:Mςi^n~.0=HXD lM0;Kh HrcȒu:6B~a)%)]PPV@&D!0!6Bh*5] K|Ę}/' LaFm4"hh@U>`()[p|?2NA~Hb.<7 BgnJ$A@ ݰ O`N)uP>epVNC jN?,)T(\Dec0dIL6a%D4>g(A;PM2M--5ᑜ-7T2)xehDPs(ɟ/}j3rB}(X}hɆ+-ݗڿƎaT;Q_]򑨤m1 a+ju1m-k.J!5Mh[[2ғU.]W8 <[Ki'/r9, 2+0ȅ6lCu 8l.)q0+x#ZAd/SP ܷ8e-bqҒ"~ŖYpJ'Ku(R2 U>ϗ~Y\T0LS)R\Su2C] +S|cTm> TMU/lKZM8Fo +qD ķ1|K۠D/'W٢Dy„/WSQf ^&y%L*LSW@BtEn&'1a)W*+WM B?P3ݔoX.&R)yZJ,Ԕ&$Vt3+?Xz6iJ4E7YrNňj*ɈWϏ&4% (.."-M&0pC etVϵ5"Iv.zXv^ʞ:U#l%-a7hBF{ل\˶j"[iEP݂̌u)HƟj ⰺB"l"]N 4 =mv7\o*zk k@ C]MEx(nÍs"a,- js7=? hE_LX+S%W.52lNZ7&R;*RM 'cxf_NX\ԯ)SU'9,0$kq(:).rqb0qOtdR<łˑbbxHsgcfŽ:Ҕ7aADxw-6L!wq4Va 8$zT.43V)P"xIV[5Bs&Քxid,jʬN +r0k0Y v5& W[Xs$%6sd5:mxrU5v0o\#&Lf^3"|s'M)\J*4ft *mSb KuHAc ke~YD*aJ H"e"H\<ia]8!u  r[D /?b(qScot{K,hXڎ-G?f2K!ҥ<$N #EI|5K&Ml[lqbixX.p1<@Uw0n)gt$Q&e;NedW1zUJFNdp&5L[oMwW Kb̴NxU1f&4ҏdDo}ՇбlHdDkGj1.%1)<H#RI?# H'y[DbO6xaVbț^?xP"1u{nvqexS2}kgc#&K;*{&@I;&@.2^ƈv ^߄s7Kͫ.W$Y4 +r=餼Di;:UUH$6=5P=Rf/r=)yʣ+"P +"rMx| +|js4|/ 󛙊0-`l8姧,K찫MHŔ2w1˳&I&b!> ?ŕ=`V޸=dI}H`LAD+r0g\fM9Mam,S$vR,қD;X73L)#6rJ&XLgLLRTsM+e2J>8;TR*^0eO +J'&PQT + +Qq6x3bYV8TMdH34uUv?q|\cbVyt"@VA.pT^TS%MEmPYl^(ջ9D;tO<pyl14P]EΙ@6^u@;vfX4G Era 00:Yz–$ qS ^z`4K={!ۑ}"wiI j~R\6G>)hcT 4Mu5"[QkaO Y`e{$?o `dү4dnT@ϛ/S5Laht%&ȉ-aQR]rjՄkPpaP_mbW)@[ +obpt^W6ԫjȸݹ.a6|!YY.5K*r;]Q83gub :*=dIUj$ڸL+oP$+ńy:$gB'sN_mlv->.ٻVB72tم}]"[daC*XP0|jX*^oQ4*0-ib!hvYQ;{5//Do]9AV+V0\$x٦@,ΟoqnPVYz~2#P_N[uT$7[@Q#vώ|3]ڀ-Μa6([32u1 9'뎍4'oLVBu7~,-r^i$vъD +RIYZ9[;%lASRɀ7`XҧVjs#\5^65U憽|jW!M8en($5pܜj,|Jf=$nT؜9MJzϦmzD'gSҶ:S](g׶>B&/u +6DSJ'YM՚Rn^ |LZڪ.6]ua^ ~^|>W?gPU@.p%RL*fnaflκr^˽6π=_TUg~fE}K +^~{톇CFcX:KJݹ-{*>z0 .u;`H_zSuՙfWRz F,jն`iR1Ԭ9sX~mEP%I (Զm'7(mDhX3$+ :TC]P*BS7ҡz!Kq$Q.7Y(SQ+Cs\SP[-'ggˑ%vZj^ƨf2.idoC}iY7j +=X`a& Uőx2/tCBT8B,m0ǚm8Վ:BQ9`F|i +$jȬ XB ~ğ͌Jw*,$&_J0P,$2Y}Cd)Θ@d+م*_JI]" }Q +G0Gfr/k6 JOX~d$hurm_`[ܟ皤wrWѳpcjߚJh,ќ4[ +>7"xQ?Nw/L\Z T 9go[XS:g'376܆(vBz G"ԃ!ԃ x_:VIfØ\Dh,*y̔}iOB|@VmBNj b?^7ghB$̙4N;:6_ \8}c+VJ*yZmF'T:rFp>r褔犩ghOݗ(N%$kA:\oCgvC> 0tC(#򆉾#{i#Ys o_Қ + +JA|2=}|J5=ϜS]>'h6gt"L2~ +=|-} dmh7^Sw庙Y\yJ3`{`v==`MDFv}lMc7:@W3{{θ93}{:[=̫`F%RE}p`%l")pMC3d6Z>d%܈&%>uHCiaeHEZ6s @ݿ(W6"uCkv1uCCs1KsʹCXHڤwCm7rCfŞHk7m[;Z;%! +@o:WVu"$^pY"{SlN-kyUy^hP,N|&h-)f!ˆ+kXg/(W^zLA-[Bp[LF[)n`WGεϡon#~gmoojL pɚ&pĥl,Sƞ2Uәe uT_$N(-8mDkpvKj,y@yX68_7n>.#n}>WH=*T̵ω|w5v2R7N˼CN;x܆XugiBo 6w{TE*ha2rN ݟu\{ޑW@[;?z/9 tyaY;/[4d8dw{laSEǛ W +/&a(rZPu'K?P{ Ob.qNiQsA'$q vp=QM}+StQXxs X ُ\=,}q ˮuS{ffA/Օ]%ԙ*U}SKj,TE֢k/y [A4܌-MjK{2I}VK\˜WAkh$@HĪ3ubZɻ]ϖA#U, k:w9\k'`+Jk(C< LLg5eU[%u͘&L9]Ŵ` Xx9JUH_>8 TAd\V3jVD@NK]٧UΝgX aEK8>)7{ʙ 3Vtv^o$eJ;*KK6Pq=' w!7HDK-GG#]ȄxBޝ +RtpCx2؞Ct{TtS➅2{:u=;-x#f}35 t~ +Ki?" Đ+L|af WWдhǗxʏ厇G3P sFω>o #/o0\ +BFF>>Zp!%%:|4|]1aTLγJU٬kMK,Og=@lľSy !4Uû;,<» }zJE%RYoeV\nX0XVB<Z7Ķgxa$7B6:_ZW#MzK)"OςbAHTAF=r 3T3=JTݱ^QAh؂k,uSW{(tl,)[{ϯzہv"y,Na|d]7IpՉ~N9 9T\ +8<a: %&5U@}W"G?iS> xƼb!\ꖻ,j'ߒi0|ݓ +տFwbwk#0OB?cޓtO/7G*ʷn^oWvx[L'qm*h%|8T,0E0EZ4m~KdKt+HO('H>xc8>Vu>;`bDekq1X:?ʥ7Tj9 ,5} Ȋ^D c:,:2"yKJ;OQgdF4iࢆCii1IhZ!׉YLP#j굶 [aRNi+pGpU ", ј3Q} H^/ +3NPU5nFzCV~kޚ=3$W^'w},aGCFOioF_אarL:Èڌс ٓy+}[Q(-V\[NfνB4ko6 + %bh0"͠~[ ڵ˦/x ?ǀY ;!ANPQnZqN6r\C2O Fnt/}P!DXT;zTaxX f ,-Ooc-TM_`Η>[$7z›U q3[dymlsx*ü^~l>ydJ#ز$:*aΉ|”ȡ"iDPʫNAAWm:}iA1vj&tp#Em*IA#ko=;=!Pd̶A8y LxRvYMTr1Q*[66R锑pk#>n&X1x?6P1 %䱾:m!S؀#{uсG7Uxҁ-%K*C+!}%yt5 +&Rl&0cě]5 mubӾ5mlRh Oļ9"8͞'6b9iʐz0֔)cˆ:(cBT!MR*i#8i'I#-e‰$`s E@t6ļmn#8"m(1L.ӱ}#뿓F`|dp2 mO GwZFDjԙԲ&E YJvކeW8(-M߂L$ +DtLBieW9}(>#:Q66r +NOoZ]a64hpz+&Gdq&|\cxGnXcy򵪑YC2'%3jX!b@zq {h2M=΅;-EttFgdCx.I"|\jԆ<ht(εDo鬓W-u-[89qQ}R +!jU8ԩkBہנƋ{(I5#1V|V5;ɎwRٓ^! eKbιJ =HqBC?rPsosW:+[n0cubXDK Y>,^ȑZt?97̄k/VxzHjiZ*ުin?k;BʞK+$>{Eb< +w̭:GWmV2APs!3+rY"CVqSP`S"Hf$~^|Dv3FP\=\IMMAprh.l3d >Lkj>wNX]z0P|"@$p7= +-_)oC2x['Bboc؉rSs]|iIum)$kӞk~X{C'[a2wTx_+~w CY>m @ݮx(atŏu Ȫ?K?pM/٦w-hZ4@sP;.d8BY^uъlYتqBɞցiׯt 37yz"#,vQO{|.CsenΦ2aX[,@mXa3A CnU@YofvuҼl!>_2.lr&29;KWܸ,'ָ,ݻjBc˨t..ohrM:^vEy5M9;~n|p-M~r/WGyWV?QbY3aK^\g޵63g 4"4?SSZv^Z2FOm] jk +x8ܯ> z:cS*jF1D5yo|GvV]=H^8P,&Y/U4@1i2gQ%H[Eİ`,2|m<#|L9.ZuH.|)M6Y= K8MAf/۶ eI岠}skeS gM fS3L6Odm>êΫ0mu&JqƫT[XY,c.bKYnnH!%Ӡ! dJO5lj{lrb V6^V1Cr oBe\l#]U*XDVU9 +)E)R[ [ICY>i|=~I +枰H5ԃ-f%yLMpGDޕ&V¥@(чK-߶irjS|-l?Z9ʋ 0uEW4PzrEbIb Oa +w$|qkGʇY@/\+UMhZkE\#\"j6颭擓6![VDmoFT(*tH +a[aA?0 +a26n h4f`$6uA~w ;?<3f5Ew `\iT[7b=P* +h%bʔ] %.='βtOO~?C1Dywu{u|:}^0t%&1渚H&;E qPaTQ7N:Y v>yowe;'W29/%Y_.qfP.2Kh#{%m_z[FY mGlYOm܇xG5} +nM6giݠ}aU]߸ #_~+`w}2sr>ҋbG +y/G' [+M&%"eL/:fS!u˥W*=YekQ/5uK0A\H[yuu +}5آiy5ۑlY  +4c8mRO(քM\0]6u8"hPYV׺=Yb=cB XM|(Lk7"z P5 ս&-I?,uCb7ø[7]O 1>[= FsO(3cka Έybȕ#u|4Z RW $%&ƟgZ#h +N""avzކ`6Y."~UiK9^\Cv~Lhn>AnU̫w++tRACNZKfL&.vߨ>Zմ2b)4©bƮ2S$YdL'gU+V +HIž Si;H80~2veLl>͡@_N_=HMbkc!tOp[]!uQ, Č=tEycW#Ѣ'(^+.9i7wLL 5ShY)Nf#W?Z2KkៜWhսh?ezISU,k?z`1#gWl?{Y7Apn>`l=8hUws;{@|^f=!fѾtW{cޟ~0kxH/b3xF?'?Ze}t R/5M!a>r)åyKzv wKt$ۃi'IR L]2:E Ddb@QDgrHW:'Ձ:_M0ÚnhCpҗ 6A~p BGk>?S BHjy ~Z<ǟI+ q՜dHZUu0(4\a*qʠheȔE.ATyu$E23VEvDN'caO ¼+y]2P/^s۾Mݠӧ}¯5-Q˷#?(ŸeO|Ӄ&ټ Es/|YtY'_B^X1{R=&aՄ!0S;A#3[BHo JFsWA4Mf*K%4 +CzAэqJpog2oБu Pj<1Fq a8)EuWdv@B'w>y^i(y"-DsS^qMzA/S.蓞m7?g,l*(AJ=R)xӆ/7@övlT`BɈK#}E_619v0Kw/.S,Jgi\/3-De6=H}e0u{\kζܙbʨQ4RVpt +Zrdes δ})>Pd6.!r|l-92inM1;lTT InRA +]HuSFOa$+/dWFI~(NT=Q, v/OPbkYI_ 3@ ]0[jUOma/D =Q!q+jr&AG-BC6*kܨ S0=*VTpO:C>gCM[4%PD$:nXd)T i +NG;Da[V]3{18^= {Nm]x=ԗ 0)o:]sy zި1B?Ce>PWpOs煁RzAoNgvZGb≷ 7\p>iMTh8jxX+GoYJ<3}US?&&C]k??"?tZ~D {,c $qRmJ]+aJL9ajM;HVݕխMϖ֖U\ݞ擿/${36]&]l;߾8ˆ<#[rQP$R cci ti(ɗ*ym`!u8:DoT+W[ +2Qϻׯo x~*Aλݽ2Ox%%C<|O 1\^8QQ18gX_CQ(2=>-) +|G'MM| r!S)m,BL=jLQ}w[*m=>5>*܍|&A% pM}]|%?=>A|Fa=-gc{͉{]Ó_PƀaZr?(d1zs^_,m|D@|Ē!xb}|+ w 2E@ Lj|~yLLYJ~u1.@Fhxz~r"hlQv~Fhx|1Zn$7&WӝGv6^nXzV<^%BZ +MβȈDȬ†Uhy!-JDL/QZLH y9'*30SI'4l"ԥ}"ˋGFL!LGZʙTy"шQ{bfrƆ +Vm&8HMZ2#I` Qj]MLe΅fimPŤ,–Oޔ =4TVKbUv6efe[ &'+!-HR,cֶ`yTgšPyRzrH5DXaK2&bѪMyꚖecvmL٨6`+^%R}Ц5L@] +CaJ+LL!si3u(rX`0M xɎ8Uif{bLZj6IP&A(@ ANVp1K[bԥjv:8o ^Xm $-|r$_ `a!XK *z?'f%x@ n]zP?QJȫBe`,ޑB:V6h]!:FF(p#KQr(,f5=Y325b~bm5QAB x6N. /6YTU :@}Tpm;oՃC 53 3)m;HleԷHƋ +bV&acC5 OWORg.G!Pio1"N.G !!'"5Y0 %hiJu W؛颣."\e peWZ0" ^#aUmC+ +)s +Mmn,WBetۃ>KD벲 S$|*j}\Y yo@%d=^gWa{lX_Ա(HyS:aq]w%q%*S0{a3!meJ`RsT &cJ>UFڙys92r[ʘ^U֮##7S~ +Nxuu}T e! wɑ;^;&T ,}lv!fEԵ0j0I(tgD3HmF&2C_@`/0uJlӊaAtֵI^MZ^JK'bPa2c֯8ޖeEMZJAUJ)`~e\1Ȋs{ܦBm[ +f˦ +]~{!fsDqR9 +%)'Vzly-[ؾ5HP`*t_HJ8Ee@ڟښ k[w6k0[K>ymQJvjfkuRuKFKMk: Ta&Ӭ02G+7BBCiijLpّ`9TvKA'1J~N5m;IkEMom%sg-5G6mZjMb{ϜZuN\ʱ]|RsEKӽst:-hVd9".+.֥k V:[խ-FAYNi(`d g|3e3[h]d$E'! +vμĐcCD\JZ +mRYnQ!~XnC'I9V}Xpj "hsX3MB7sg~)A$͟TezX" fX7tU#ޙ}!'Yz_!Unm&^ މu #FN 3ɽ楎_?gqUCo3 4fźZ ԷquFLɤDЂ̟ 7&m<3/&"4"G"}?eܺަs2duJ6~Z;hka=*OcTkݷɅD{4C"25n̷[eOdc%QGeSJn1yT׬*gi Þ;GN@J׼bLE%ah1T1OK?3<4?Ϩr"6fF %BFG^T,ۏTE=WR1=m])G6>>7Nr&:F~F|{e]Rghi,T33Y ᰶ$|G-!|p۾no͌|&+w}`IbCґHU&yEW/ 2yO3Ol@e~ }GE Hi_ Ѽټ~~n\}\dnxR=PdiN~=7HTN,r!OҙB*^'pR9Yy߃d 5! "Aao=}l@k+NQ_ %oyC +Z.%?Esb#m'W&|8º*d& m;Js3Wyi0w[Njx3O!BvH#O2BlHpGI& /Xr.d2lG}w{qmIBo t- ؇E#2J`krend|#|'|@=e:T%17 |= (Vxj +ʞ `dR  +XZORz}Wߏ1II~0ZEӹVy0ٔ#O޳^9%hh·K⩈ +u u+[AtY{*WB $ט9%ʥ O +E',:JzO’jӘߕZ'X`J=Lf ۣ: җUpQ +C[msPV{,-P ]̍i& .=:* +.܏o T{'+i\llua(V{pm;vgXL\`X&Gz=\ +\_S2H7rxJ,bV@ərxR]`ԕDE>HR? ѿ莐3/ J ˒"!:Hvٞdfx = _RE69io^74*-isa;jڝ/͊}i vJ{_ky X޻Y Dn[36\9XkQ% dghD!8M}q/z߉* uQsp^ Rd@lfH>iu>Hn>M3FIѶwQ±Ĭ^#F_\鿷Oܸ( )i g84$"dG 92 Fg#qa%\?Qw%sFߐޝIyoTacgܞ񻥩9(AIKiBhCkܠ$*ybرClѥ 8eg<QS0,8 w!=);خ`[⮙@w ] +LkM0V, d;L}%lcKY +U!¿|_6GEnW~X"PX)ǡ]y61/& 3D#OGlr|fRr*@b!rD[Gv4&L%6J:8.\;g%6ɳWy]u64[cIlENK(bkOgG 4Rf=G<}E7hN7ELjԣe.Ig[TE9 +0D">f"~AsfAiTfvQt,wh>9fD܎+_tcNQ~є)]ae/q1|?f*grڎNbذhO7!%/QuN2bx\bQYNN2b}s|,t8eZ7E폱 wa lg0BˉW%ا㞀< ?ĸ߳qWa![H 5C=X^-&Ox]m@_"g^{ϥZ>߽|D|c1!T4u _8` Ω_"+ +v +`z˲ 0=GPb}BՇ AGLHK_M+&pRk7IK&p |e)U|xhSrl r7Q8r^Ng*PyqIţ)V58 /t8v:"xn|S(Cӏ8%~ !fFS,W5|$qV.,*~Qe UC!`Ρ4 + +CĘ" +֨`csҜVt6"/ n<; vT•#yvd㱼!$.? 0aXu2YdPQ,hx+W}#/-"[[/yk,dK! :>-@xc0Qܓu" #F,̴نE +0, |ӦnJ3C2&ݲ^$),:ڌsy)&,g } p%E+>B  /d,DZiD$90J"ʓ6r=ϳP,Sȕzh+z涜*YD[c܆|%]=n}ԏG x?X׿J[=NۢR}7O'-XogU(Bb+ݐBjAkxU&I!!hmK3ҁKꀰ%'ӭҊA'?aفs"vq:zWxrN4Y+a}Zc[NX9ؾFԓTmLȳ` *sPpucЁ_΂iߵhN63WofN:_ v~מ6EWQݗ{{f=rkaS]֎8%SpSpѣϧboI^H:dD|6}#j7U6̡#muU0ǚ5vkeT.$r[ȷy},TsoHixolX6WlbX9'""ϋ^~\W7>n@#{zp9ڃ߉~;"߉;zhCK;~}~ !'#`PwҖqzpBֆYԴ\F`Uo!)2-o`Գ+Db[Q+{x. -3zޙEz FN\^Q{ jzG[[{$۫;r۫;a+_{s{[|#/S5RǩS$h竖\PZ쑫YZQ)ǓWzpit,[-,[qxU)S;?[{t)|=OsN ]:TQuzU[[zT̫Yt{ɵ]R U[ûzLU[;z{a U[˻{Aqi US-[һj{{B)k8YӒ=jVB G C?!7\P%zB<^u@ǫ;=@>ĝs"i[W8zN`h"={4.~!;Yof;=8C(4;0II8~$ESQHL4s͇{JإiHIy؂+Ĕ>)<ݍ;]KĴ$o8ޕW:[jI$D1L;`nd6x}teYdEcϐcYiֿH.PeRr*</{/\t;d"6z +ud3c{6kJZ$N]A]{3 +%b{)/BxQ~Pu7ì::|\#:>ahyo[}=B{'[õ&d.2w㜩2NPņ%9~Y>zpTqqu"xCv"0I;=yu!`(4}q٦$} +A;P€&O p 0rp9hWl\f!JŽt]7N9-՘hk։.g=|I6]]-~{NgvKf_cwilFRDb~Ipz˲-MgdhEtӹcYMW-s/4ҿ"jnېaƯ]&ī;c=N=PYlt}בBG 5M'nѐhЯg;OJ sANHjy3@XsY(JYhSKfAyM+vL@FuA7\am3L!_{It|[;QptO^ +1{7? xF҅QVKl {;Vv%?<~M +;[ ++ sl0jǀg+E#੥ 6T\xȝ4*N4'ꌔT.Qm?x@UDv-WlڛA>ͮow2M]Z-S+I悗rײ7wBT^2.zЩ8^{ zc nYBylݕ֎ ^D.}I "N G0_lȘR +с9DܰFRTͪMw`.o'E[$/ohv{bB"Y@JDhq~^ufIk1K:cz8Co U AD `d262HGVbo7imlR..>i/A~X)o-@{no [R`KS>@̛,cbȈv?`.K=|/㝰L;Io`h_EwG&遻`?T]'5H7(!}MF;7"]o Ae>)="BA >rtU5Bt1C +Ugٺ8(YvK>yzvts;*uP5ff+e0 :T]L0Uq/"p Ɗǡ*((-qΝmC(A8I"( =anBTa@gCq(H('A'0B4*VIKj0Bq{ݪEP#f؍"N-F+-SM9@ ^*T'rS(CqPqNosX9 e=vD(ƦOydyv\py LISd=Ō%Dqa%vv<ҭ< n,Qex]XŭNuc#wǛT1aHXKj696R&[wap LTa(Bwe9LE'M۸ROU I~C,)x3'd9QIܥRe뼍 +ݧYq&JHaS%z#gh!ؒ[ikF-"!8J6$wۺJt26>, ՠme4=L(\e=cVq\+PQj))C{{s /j2U[05M1}& k{wKo٠.]H2=aۂ 8v)fAZI g*`ݦ85qWidCPbXT)+䤱?1[JP +u#TYQ"R%{tBR+uQHUݱ8`$~%5S]7螈96f3 +LvaT>?g| u7 lr~'paY q51^\TM=-6=IHѬ ^0f +m+DRcSU ? ])CuS+CdI3޲iD쉯*5)P=Tu]aSj3CKVt׉t`N9Gsȵcvi(H%%jJV.q5ռ{I:] +u)|dfyԘ;crɮ<* tY"jo>Ę ɖqIJp9ɰO|f<`ZyBs*?FqĘj!d:c[nȠ$WŌ2wUXemur|(>tt#'YswAE7 5*Ce+Yk{5:{ջXdz OVkx9+Bn~J6J·QP1\A¸h9scfMkū>/p}A%d=շ^wVAe}fgl-gimmginu:Iq-m;'󩗲w۫âǟl<2Х>ǿl 8z +#}T^{ՃlR.u:/0K#) *3Q:U/])<2V1 &rqxeV}S566_Wqw6as. H1AWd% +zNQldԃb}p]3{jan KXcT o$[iԊDwFуs3U ޠG\(mzD${0^>QԑV;hMi=[-U=@#YAvPb۾'wہAvx;0ܽ_.hX 2^{9رhQ#X X1x#msB}b@k˜׸>6cvK -QGۈ,f=6PNȖKq%Dݯmg8D侸#ӵZ*ܺ3.5;i'8)kWU\a+\h+726$} dރ2xo'>-gSD +SY=Q>3ts`.NqnPlJ Jے_hłZWi>y,zՙ'\ѫW@f e>nRJmTZ@ A՝gZ;wS~$ +PLid٘|^ +Ք7f=P'vm=Z?WY1]Vg==N;Q&5UtU?KFnJnX=ZB^*\i$YФ֋XI歜ߔ,Y^NB ;7eG/CpSŮku [:):xԱ>+:*:&"!u%9Dst2X*VIʿ&/Ln|:T5"g}.;qno>D7nAw:>}7̻/Xp: )XYiY_xE'Pߔw^JcFۤG>_IwWMPKxy. ]=H/<_[4E! b2Ǧn{cȉaGgcȶuj"f.LEQZepsB7幟P 50Q3Mux,*+qSe0:8mh ° bzDRHjPj3Whsʎ;TydF3RK.s˃-i;wIi(,?}O;'F3t?:n&"4>f] _Y6с:Z[.gϰ1mG쾸7jۋ`O̪~[\"{ge>;y{?vK&I4J3G&Ft A+/Xm f]w?A@]?h|u<rd8MecH~HzP2 4zh6_1 X B/-ոZԪtZUmtiogcO^sssV <@08o#].EtM=MȆ C%6c%nxBgP"yrT3/7p?^~`'5XɆ&n11JQ4L^jp4L_rƷyIDv_qnJbwo[qnIcz)Lgzq wy&c?ڈCD4bG$p(|f\|jQp_E7'2DYrQ/hmDžICgs[Rȝ`xfSyfq,d69fP3703ڃwڙ5wcjk 2c$ +,<,)(Pְb$4%xwQbQ3l4}u8ǧDD{y7aD-|4_xAST' 67zx^Fg6(֟.fbJˈtW}*5R8aCYpTe=c3!m[j+zrRDdziP)*~"',,9-`k&cs'j%t[W+dO~Z`VY| AVбG($2!|$Guxlim4/4ILՄ:@!20ݪ&e* B6ą\ƞGLwI.4h)8E,"ֱBK&ƁB~l'dؕ&\ecyFX8ֻƿƴ,X]R ~hD-W7uM==تqU)pq_K0‚J6c+F=BI!*?uJ,˰قP>B(n0HqBdاYN\`ăV3E]X3S0- +o>{5>ɊC˭ *Hh4Z :\+"(C;7Ԩ 2hiڵaÏN1K|}H9IƝE +HXPpr^GM4F,G+hJJ{$<9G{DA7f;8cM烽w0KnǾB+=Bv(fM{f>C죪&8u91aCʜ&l5i< +_3tL.?RȦ" @S1gpfx=Pq\r=6A^ròq DC JhYvNm֘|ݛ1^O2Nw/|Wp+ETqyoJˊ'x^jm#5$ӱ83͟7KBRUQ#*bvᵈL3UanWǾ.k>"A;*@chJF6:nQ.ԤRcғ)+1~9<$Vʶ{R::Uߧ_r1lX+"8? OL]Puu,Ck}d:5GLyYctGgU'4X>S4w#_n.>DVْ#VP +WgPj̞!s&=zo}^u, +Cs ۨ ^#`ՠ+RhTp+mKh\cgJT~*o/Z{Z-Xu +^V1O-,>[u/"ϺhϓL+D8.K4ajSΜ[>t[uY[KTxǭW5{,[C]o{\wKOl#kB;NE٘#[sM4nɜW"S>Y ҪG(_q_b˷W>yj/y7\y7~ps٭!/9O+gvi=-iWr۪,Z9"_`x8Wx/B=z)hx{LtӜؚs+oKN% #xJ/"cj @O9x`Kl;KҞY[7DV]G=9>.˚Q, v+Am>^ >*6!vSיr߻[)a(zCUn71Z\R(r2KY|b ۩Pxa^i +;>bhu`l[pGڧh-SWKɛ/BzFKthɚPP} Wrfoo1sra^SѶփM-"mI] υ`@@ @@ (*%MMLLLMqLYȒ7̒ȷm3CY-ź賶 +iuKUai &Ӡh/L20^}ƺv޷{;>o,\ +YQ"B#ty_36䅀\a8^,CfcH2ӏzW̏~ %6`փLD 3h Tpa,"%#҃%h<9$% P4ͮ=.!> +I +HNI:膗NM]?ZBqny^/a.P}ǟ-H^@)z3 /l(zdia{o+,Z r< +u.V3dh*/k/O>*5z?2T)w\9XhT-~,xUÖ}ٔL%!SrO*H&ɚ6-}"'ZVGF/+ě'c<أt7e: +&pFSfu e.hV9 IiA1 +;6>H n_apG({f'tb^*c lv:4gG9`َ,d@d1 \gktReS&LBR)QODNݍi)AFa!Ӈ#Jⴙ~cGa:3`lvx W>8ed5xv' e֤7A}d-R&Y{2"5a궃Y]1^;ϊYy,b 7~n +/(5\>Hk*QE"p"t=_JmF>-lBi5y2Ґ܃K~.DfB'U +F#nm= +46|z$$C'@G(!KΓB{e5IgQr%M2a1M6,ȹe.r%GZ1<[|EWJqri/ B)ՠP2,Ԡ.+4z Z=~ځS0@njp<*OB`Uv]*#B9vonWB#::'X;5eQSO[Vri̸'BaBMEBNPqΧ2SݢaVUjiWG +$\9 +!g1MG +}6ҠC+K(\S%\)C;|:FżJ_+tz)Ab3ȗ +<HQxx,-@K#N»+nϷ;=Pvk3]B8c+)-; +4, +F< +x .Ͻ!j:Y67n㫊8^,-֊?A+Yib(r( jU9}L+99RQtQu#O89hcڗO/G y[L tTA0 ^ii)SU[ 0ɫ98:L@n +V>@ˇ"v;Cu799?1EHtz&񡭥ekt?xxC]~7Y*FP"QVS7!s+ !E)4o$"<_R[P[*2R1iJ%nMYߝjtVt%pKR{mz/ScnxUr2RVڌ浡wwFWށَG=|dEjۦK,U;R:3Xc֖: t#;tv%_JQcoԗ[J>߳Jb'[3$ήu?zP!=~h 5sN5;^yv>i9=g&w#Mɘ8ia7ݩ=ft>-zM֢qu'L5쏰4F!@i$ gqC`?l]\7.jRwhGg'2Hi̙G8dۑӡ')笉)5ǡӛE94뚤FnZd 9;$D#t= i.c6,v^or`]Mn{O }c >d:8N"%Ni6笲kKWBK9ޔ1:Qԁ]"+{g&AMrL,櫄W–#NV!Ls'{*z +zO` + Y)bלgI'⼑QvԸR"mˣUV-e9rj&yK8JQ Kf-zuHk(1 3 +ܓ1jX{X/ge-䝄ced:xz{ ;);S ^{*~wկE9X vK&ZY m@L6̋<^S#x.5@R1sxPs=ǣyx%a%lTO=!sGgV\ Ko!r"P~CY_p:r޿ a$Xh *Wy'ٜq>@Gk=rlE/]F!Av0(tH;]ңMb>G.׆hT"~I1m.EIkGu6= 3_rC H#XTj$CgW|ްڞ//4 }69 + +]9N)C]Bŋ?)]'E? Q:;8$@!E: Zw?X- +< "K=6Ch + nԥ+C' Ǫq Wm¡2&H?!ZTj: ? -d/Isұ%P%SY7(mqJsN\fЀyZ]\W~[KO 42j,j$ڰ`ԋjuӏh8aQv4%U 8W{79?8Xtm9]%ˬ,:I q5? +-3a?ZCwk!!9a#mϝwAExsZPk_t %m 1V:>PF%Ȃ%o]GΏE2G|vQnwJؕ \ L`#n(s6=Жpn[$tl(fR +K1D֣"#/ l+6<+^pۣ<z'n-#!+Ѿ;"6G IQ5 E!Jzp F <(@V/0?Y1r#/৿z_Cu(q$eӟ8GW2m9K*jzrtaΛKPoa qBЃ&*:Q!}?Geh +lq@,R-DNg3/82Cɼu{9O8';s#}ڜ LKN lD+ׂ6-0^[߱fB__]^^stf7sD+s f3%ӝb6ؓdQ%[+aF,nf*y>7u,R ٽJm.CQ[nf:ezrmV#<é!zQs:h*,hϥ+@e+'LUkXbնϿE}(p}f҇O:ݺ\!Ge\>j7^c0"'}ĘJLyUT+ZWi/; IQ>7{L9:\0\Fm =-er +v *\dX{= ]/f淶SO{z̗W:#(B#rI)|R,K'QJ͏R!(uJϪwj7Vvjf&dsҶ|\uо 7P-ŏl2U"%K]SN+m^{4+K^VJ)VSҖW~bd3NcZi;4` +_>s=S¡ +wHumޱ0!7-Ek%?ԁ̛`̈́ь^+9(j1`+j]D[xYp5pU}Y|`)n]ȡ^@2 qKY^&G&kW6Ӛ[=سkmN_yBl7HEBd(\̈4^:NWv6yP;?)vfOz LFH-3.ё1.~"_%z8'Tv]oIwAtaSg&Nݝ;2)샧5U2Dv?覜WzF`xR ɣ37Qr/ivKpm6T{UnDfk_un6]Y<<}(WXۙ^1_ˆ>,/[/^랩]&CEp{͜ql6uZ6g/BZ#2I!wdŃU5*b\&>Rv)|wBIu:b+>CkѶ׏^oڷDlmtc~.[k!dM\9BD$UM^G碇lެ6QAzpl%v3ӸwSIg1sU͛)>e*R+r%f@?w#+-4a w_*V':OU'jLmύ*q)V԰-ϙ͘v09[BgF>ּ&rQkYjCbD4w^1f4ADd/+r2RZ.Ws"bMd'τ>˨'හ[s'!~Hݰ9R3dR0Te4>0u{R݃R4pu(2R:O Ll~M Ɏ%+F1z[L/=hVNyfH(]sQ!L&XB%~G%7M3Ό>'MzmPP{Hd+'+jՕP]j Tܗ.yNv#8l^k UW{Zf_|s9[F^ׁ>e95Es@24@a\Qa])t+|Vo BnL…ʼ=Bʮ0-ɼN;4˨E]-зicv-kucͻmcJ࠵Qg#|I-3uck҆йkri͛'wcLgʡ,0ErkNӼhaTFq)Zaoۛ*L` #bU'}Oos~۪ԟ_/Qx% Z mcU$hm,oz5|bW֞ϜE2jgKx%n~B!x"\7(qAB3gTɵBDXrU⍇s:%2}YAw7'28!7FHn*>$2n[Xz?nڭ_ˢX&0P(-A0 B-wJI 6 t[F/ʬ[m>KM䣞PLk(CC +]?r:#dNtlHo+q?!҆iڱsedcr33:iNq[i)LFuXk +%HCMtYF^H>Ѱ|W 9hi/26t&tD֓*Q]Ps'oq+b( +cla sڲ;\Y yԓXi'\\ mrq;Zʵ?qz}stF/#鱹2)pƆ]I4q|cDSȺъ5uV[\/Œ=# +|)(ֲ(z |g*GS~S33֤wW+6k`TV bdrFwV*Ǹy_2_:vFs+xܬկ*ڑf= I?/t\ ]2WL~+i u*sTEgxe1g<Ҿ3=3̤fqzz<- צSǒy,OIVB^J0=tbӧԟHP s {5\6Q펍ӨI+3g܎h8DxdSfVl%;?R9;|xsegOnbNe?0(Ƃo" Gٟf{hw* +I_DK ^OރÁ+B%T'8)Uln>ʀF?$t@3MAT>Բڃ֕l㩡jO,* +gӒz>¶w9r-n9WӹN[ѝUJp1 m{%d>Sw:Sភreت3݃k_4apIݳaro! j595v_kPĵmGvn{ЛE"~:|2ھ11/`GІܔ URoZqphZݒ~5{yBtBgNiΆzSU]e⨊׳1>nDo:+>8*ۭ }vieߝ,H'dt4(,0/3 +2@3`CO6i˯IBM+32n3*$X|KUf S +E9r F fRrDT|JMpefZk1wO#m qY*9=O Oٖm g-w]^yOkso}7C3BSJ*um +~mQ !gPU~XݮZtkٚ){!n1KeAS(J5A0ڮ)d&=}1IZD y[XsgIuY$Ϡb @9@sм w`/jFB,\] .V_a[tE9qn-3_UTёv7ybD_QhM954oK en Ƈ8?aG ξca RX7 [%uȗ*}̔/K!SkW6gJ'rfgk1f 09\娺Ցr-;e-[:וOSWTS WUe6q6F`V1=Yw.lźl`EX@U j.kN2;&oSY/=H= 4QZ-ƽQmp;a>[Y[hZH15Rx. +.N1{%++?LgJc"WQ^Vܲx K٤!ŝ8SC\c]cǕ0A^΅gSR=s={rXU K6qVUWمjy*K K3v@ [8 8ݤFr in^*=S>.:xAe :;x;':4;D遺1P Ѫ@z%T6J: cC](6P]YBMcPͪ^[Hu^]X +f,\U)*)}CS54 3,Vf9oRopjM[*n=pFOD\X"Ce+BEX oȷ*y~ +]иkΐ V6hxmNhޟO;KG۵3#9xA'C!P]C^_fŃLFcP톦Ga%uyz冧zN^枹}'Wm(΁7L}k+uds7 !?ɍwhxA'ׅyuA4y0(|א]c&4d6g~Br;F`Ċg6X Y cmuzlÞ|L^Vo"*Caa3Xql>/7@!kA,?hƐ}?[6[6Kjq)L.6XX>\0E?6P~r.2-oH$?&6FV&*,'"#B+b-+#+--9;7;ZT]PUUU^PV2_y>W/=(>h%N+7x< B9(u!0u # '}4H@ ui-@1`  s`K}GMqЇe NMq ׅ .9 O@} 톩 &1k'_ oRco#^*CnC^}nB_9> ?o|~v'xJ:x0io^p|{AwBڀ7z/>~ !@l>(p܀~{ X_57lײHDBs6++ 9E6$ HjЊ jB67l`E=G5D! TF= G= ""*[!*S@=T W.F.L"@OxP!T`l6l> qJ"Vtqu@օO/qPP1 LoQj4nڡjCW7+(H5vAYDJP];Mw G;U/*(*zW'w ,apn ǻ7h? 4vn_x|{avwn_>@]B9.n'V'N'v'lS?F0|'؄WeXUvey  )B<*c)NNPya$ϘCZ(9&Ua!OD kg)6n#RFä0\gPsas2+xg6:H߯gCjB*7*¯JϷ=0Ȱ00mv<}0]en<}кZ .B]B7>t]8g?.P.stz䯷a6ܿj^>R-]w_avvzn}q:xu͹t<{ݶb4+/?mksM7~K;yOiZ==蟟yuw/bc'7Zagn'-yYR5{?x]0pݕ(?!/X!ݼ2>H-_ |8~! C@&XQMl!zj(zjPA2M8!tX!zj虠GC՟Ahf6:6n 3a9n[H m=WB?s @ uHG?A}~7aBgݕ;3D sBcB:B`;P;:+LkwMzSO&>{<7ACqzQ7WvR Gw2EwwqwXg[{_~>Q ^17= J/A##@C# a#b#:+E! I0p ) 6A@2Fߐ@ qfпp@_!ߐ0@ +y  !`~ |!~&ݠ_ޥT'S\  I"뻕/ VF % Av>QǨʟc~Z]=n,p,лίiT5xxOb/ʛMnkb9[.n+k" +qg%Mm>(^s=' ԹC-}l3vWus|W <.9>Z(qnp8qxg8x]1NkrBy]0γk<݊`9p (92ʤRejIԨr]SNutY49FE&/b-Fo 'Xt)Guim,U#I41( wH,&&Dp`Q$VUJZs˝Q -t;{UWSXݏy_>3S}wHҢ%kUV=%`с8'1N.Q/ _m0+ S9׀9r<%ͤ#.H™9t2 C 'J0zQox acp>\f{7` Y vZ YZ3Jwgɱ`كH:Se3ծ;;$u? Bݏvd]ۘ'8"׏V*j687 _Daǁi:B3FGÂfv +J: D*o<65"bN| _.h"`|fX"` `n m`EpV|KHA $ad4!DhT/h{ w}yIFiNп~ ԩԑʚ~y@ +[Cڀ6H`G}C*h2O A%OWj +N]u6˛-MQ,f-5%8p!D%68]vrr)zJ TdsO#f=bͽW[ofc븞K[y<r:-4n&PtFzF5>;9vG U0.ֱ4Nr-(>>ʽS;Q-nqIU82CXWIq*18ZKs(Ã%C Peˍn΃m8[R!+b4YARҏcCP 7bpq7e<'~,*43 \%~[H&qEYwopnW; +q 8])71׍qQp6xtr[(f7,a Oa s6nڻ#Qip?'匬sN[4S%icsFx&8>4%J;lɟm8h&jƥM:?8syDBʕӡ>Sux8hNƴm;8+ɡY +s{Ov%bw -7̽{l :8 _mq3~DHؿFo>@E`hj}A qEqÏֳҮ>­^\=K9v=\p57ݶUPb+8986DI?YC5:e%]e_0pߴ:WA51)*Zr[1=+PTI YgTH-c /ضO9OIH|+)2YjT:DTE,3&N䣓0cmjzS%Hu>pz*e,͙EՈo$Gw1vlѹgb;~k ZO[\82_YvyFGؤfudح`BXz&\9J]~V뀷!7&v;Y_l|/GKDzTGkzm7DŽ}s#Z>* eGAz5Ųs3{WKƫ"]|ehYת(7,x<\@Ph%͠`(CWv1Я?Xw h .OnRs93oZ㼡*RZ0Qk+!6c &-,q3-i_'.5>Oj? pux]j`ˬhcSR| 1A@*ԛ +4f=[C*'ӣr! +|ҚXn1e);mT$f@bLyd)"4lc@0J^!ZxGG2K@;S f(qTMb9II6Sjv?+y]Ѥf_ujW?1t86Ȏ--TRtSS7şE^#~4OM56ꜦZHLkHVLƙ;D~ +1T ?)"0zK=OYr:WGd؝ 0ȷ>!+::?ۻK&qZ7gkvR;u*|`q2 +:P K`]}u7tvo}ٺJ7v +z7^By*3O? JAu3¾]n@ԻBHgqZ2CxObŒDvh4G,M bJbyocʹTTj.M,[K}d:noƶ(a%h+?[H TǬϪmn0y!znAB4#S?K0_P < P~7 ,pSuK@pzP'D }#lp#Tu[#Hz><\c +(1J +b^a +P|8CP_Bn8w`}_bn΃ǡ? ~}ߘiw пoWBC0^:o{d/-L``j/ǯRN! ͇K 0mpNwz DET+"k_'9|L5g&w% >ҷkkϑ__H_HQ_H_H__Q__PI7"l (/n&D,~(LFޑoXx_(_Ң-o!oȏm$gI$g*$g $g$gM$g$g$gp$g$gȏȏ$gBȏȏȏ$gU$gHhu T']`»`?>$~d#"EmmGj,/r?6fȱ +e>9'.Hf":WZzdU. [ yO~%Y8ey.pooo|.~Qtw}npcn\~g5vL$nueߪb]GY&i&`@v$p(Eb] $?!"[jL FpSԴn4*(Ȉv5kSw<{50<`gVfw +dQXl;EC ?ܣx &޻oPf̰ +vDz' R\ElrY v>[d$`] #:g.| -%!͔): 5|z:3HB9P\őcgB<@c93 BD$oy~:_q鋦GBͿ/+kG:`dbmBʓT>$ʖo̟5QUW8ۢZU& >޺K+ۛX7JMxx-a T`\fzP&8wk)s.wYx}&>a,9q 6f$a$58F#8Ae8c$\ƈ_ Baf)7=2uGIa̩@'Q&J[OP,#\V(Fɟ=LMY*Xum`]8B"XSRJg&I]5^ >n+p^,=v cT; u+, YVԊ=?+,sm3U!aftP5ccl_aD:NNŰ6;GIβʭ6A R*N_f̂F(b*]hi2Z5fڞ C[Laɴc1C`/I74߬\<%-Fv=Tv,_`⒣Y8-͞IQs[n4pFmZZI,6~)Q ԖsIg1gdj%mv(G9yZkpM7ǦBm޼b %rAH|ؗ:(+Q| 8ٴn~bj'%HTrsx4YZQуy6OCjkoKQD{*&fm6'(+nb}  ֔Ǭ1͹ZW#Or tngм}U5oLO=U6Ɋf`lyu W@5,M阃UⳲ;Jbd,+B54Z'pl**QrϩN +[FIfNqFo¶Y+$0"Ĩ&PJĂQ>R:•^ӕ2CiRN"?2e ӥd])_̃,=7M$KSj[B׏.aᩗ h8g1\`J Cá'Kyl$eJнめ\怼(3`A*/cAİtB+R63By$M͠K7I f8Unv=26[723723|rrQNӥ+SkHZXz^̐+7C\]fI[A(0F"")T7~q%!"R ;o@˕a> ֝H"i~;@!r$ZXH/ 4~ ]@ ⒊оNM?ʴģ/8<v7ˊ}?lզD1gڙoN0>^I  ' sTZ]=NTE{O_ z0_iNjcRÐ[(<%zBGٛVx0 +9 4nz&+sd\R%2T]USaỲPZ0n2[ EVbN`Uf!oBޭpglM!\Έు 7>]mKËtwKeww.1<+4+#7w@PAdPg>?jdC븞wkFFBa`k`YH͠\fc-/ "pa4xg4R 1ѝZB&0?}~asG{+U#`襧N NH~7Xt2J"GՓϋvQ`K.ЮV^`ˬP[/ZQTD0¾:k)d.Iӟ/o`0xnNkfq>SD<*k5E#nNAJi ^:5} Vqeʨ-i"s!%bDK2p|Hp7`B BO t(=\Sit0UaD#j=6pEFJ<kJ>lT% +jͮ=iPn6j6ִ!|4nB{|Wocz ұ>Դd΀wgC1'doeM2 <1G)7ѫ,2;^yhvw>lL0j8t-0+OAdtOlE[/ثm}<}֮ RnTc~8i+ >Vq=*Xe9:JЎN$ĪᲡ!HQDzxIZ,['DX\&(hzM?'|'dv5^zİhrR^"iTSʝ}v|r=95hs/{cTLwa.NnrK>8Fβ7Td.1Mn (v7uif32;,<\4>`.0(&.g>Xzui5fMts&& ҹile?al-(ٕ:_}$ O7 1K+[vOyj L7y +KbnXd+j}+V#wvp*+Smf\!QvmbqLLb ;y&`Bǜ$ڮvmq=ԓgV.UuJѵֵ Lel(ao)K|WQ¥:mPH]8E66y:K(|p(<#2w%aqm2- й?A܀|oSѾKOӻN?ԣ添'߰ߟR _:pMg;!B0lVxfToִǿVzCW2Y .Ct@V?:%,[ēmt:^mSEt;#]vW ɦ:ׇv=Νi B",-)H4T#lnDmN즘[ Tr@6ġݨ w"Z%}4*? F J aO"M1Q,YkǘH*SvD1mG$ys,1!°B:_Ы5Y nCTA\z4$'㰫8o 6dX?yG3PB +vĉ +K + ۰ъ:xZ)lN~n8@ϗkoAgGO@ Ϯ@JRT6, +yQB$ ,Ǥ'p'B Y?TI_tN@N^QO¡tga\yŇ %3xhiW/XVeAz`6~ +Np\BM\hA-Y:<Ї6{8oς'_>SqTOĔ~ CCM;C +qC,y1}t,*8q.魰z^dUOěߺ4rLſJ+癩"*%x8KmB4~x QAi&>āᵆI`jSߗWi!SP$=sK! rn-qpu!GhV /iśoÜ I>\ntr Xƫh,>Z$3f>2{hX\R0.Q@;W)3d_Nd%9)r'pU4KFCť1H~tǿhҽ;O OHFc9[|V Fh/5%xȌ؛2`Vqi悤Eʧ/b$m2'@H8}A)0Sb\bq%=({`a`&Jm۶m۶m۶m۶m̾3T%OOWO,Gf͵ 8ou#OoA1$B I MO]KEc0)x# G PYpd䈆7yU)8Rڭ}9ɟY60T玶 Rq:elp&\V̗\ߠͶ!as5Z=T7 KC7a#H~յ*J'6 =!mOB=O/ϱ]=Y<:"0p#Һ{U8 | F>zx ֕Z֙Bf_Ñ_ "iItQ֩z(cM qvZB}g Sh$"s܃~wM"|^}_ m:Ө&k):*O|M@d JR˨܅;j9&Qw6&b + vV{/ψ}9TNV< 5'*N5V>_ yv*ڞo{?U݇\uK]uk?=hUѭ>h ׭>hr-ОZ|Cp)m̭>:}|lz}P6 ͓=T=o|[U}xg=|X&b]=q=c||&-p=}f}rIM1~{%x> +1>Ecv6dl|F=8&}:}=AZ!ڥ墦ޙ .dmf 9ER{+,,iSzfy4'?RE*Jftf| #?y9t4J~G_EޑQ +\<dꑭ~!}E<88:e^k)j hi_o2Vwj۽  ZѮ(n֠i^ 8 N{G(|Sxzワˇ@sԼ?bϥ6Wq +vj׸Cq +PnH3.Sjȗv6(O*#z $ыR nD#GN**U2nX,WEcB@[gsk^\ܢ4 42" >OXmQu\4e mlXgu`ȓ۝[-:V;_Sr9?1imx|oCD;ls +t +^0KNt + +CLJB +%BU>.JBvURZg9jW}+ Jy~ʙw,1?9juWuqO:tm +i{)&_.r-R`(rk1$M)Kh-]3w@3ΚSGy^T @y cm֭J\ExxCQnE04AA} N LtG?&%z#YV|t'][Yu xt*qGQV~ݐmA(OP6<@4nOb6%^[&uw%JMs9 gHXb4_vLO;g{4אַ.7\Jso*W̖^lLpN+Z;fnAb`FL{H(;m}dcfw7N3 9 +ttlJ&ePfhtQz ܄e!sM2mav˳˟5ߥ6 c"Ɋoɷd -J,I`LPvl@05+$,ۚcSf|]D77|QAOk +[zo6sҴZ-,X75:쫄:pM4E5Jf\#ZT!Es #$xh^U٦~vj"V_谞yK +yo'z\LƝ+C7D2 p|{CK:Fw$Ѥ%)Ԫ[<&:6{KpNcta%`GSxB6w -d}V"%<3sl7WIC'61AI@ר3;쳕-;2*"3e8|<[r* +⺾5}3w̢Ҙ(Íe*&͵ӰKaeL8{.Yғj5GuʑKqd@{uI4x {fAMO3;X[R#V>{|窕Jb 2& +-KyeA9Hp uzuuc"$~@yiCO,0o4nG8wӤi9[+]X)VׯpYQ ϕBg.gp)l .\rjS9c}$zh ]>gjX`s#Gmi`ըmmH$؝OحKV9C 'K@igcv#As6:^{f I?7:q0:@fpB=>Z ^hlHA/UW?ugQ0< [UMRB>g)Rl c ŹB;'@<' 87pN:h NHqhNq/ [5eDl7rhӮ 5U/ >s/M_7 'G=8lW]FW?pܺհD2>,x$f̸!GKb2g]K5f1%h1,%[hD'Y[ohCObj*ŷ[bNq*YӄN9+ٻW cRO%-mW☏cn߱*dPu4ۤ '?1EiDDء۱1h *P0"D2]FxVrd/yİQZrDIУD9-$]WWAV-ؑt.D2QVBeV1)ywrdѤرC\@ZV|d$ñ1WVVpRhfhf)CCCCCC#QE%RC.R'YDSCF\)ů)mY$2汳SCGCGCGCGCG߇C~ƻ7߻ZOWOWOw!QO)9)[lJY`JA&*HY١R/R^+Ʋ534 +k%UdfWR?HNu&ZvE;ޟM9ES9k/a^>OM潹y4nHE@Azm7|?q +ѯ 9چ`%[bou#a + yFǶfq^ +[d~ 큔;S ѽ#}9}+[vK`"]%r5K`]:<ɺ [PL9z& /M—-*k "Q48WbO@B: j(^`gJ4AUKsX^c54DXGva*M|EYi5B9SO1*\G-#,TڜVYe!{. v^;ݲfjr_o)>n: n`NkWA[|7.5.)<'-Ҥ?V]N]Jo=lӖFdť:A* mns~+6_&U-=}#8YD^6ڐ;Yw`g6y~9y5SUkj6#s+%bz9d,SZμ_Cv~7 ;0L.eKh@gS{" +Kha &DR|h0C&$75w B{=||cqCgr+y!+PSQ=}jWtC/T$vaK?aćRD_>QQ=X2Cn^>?6IIpvhm ?HmK +(-ÿ$e9K};;?҇^寏^<~ߥE^`Rz,&ő>epՙ=:71 Ht璱5>*D1iA;{.N`g/O5(d[|掵[Kd73S{7p᧰o?Y#ʚ{a^{g2z~?X~Q^5PW|?j0+-SB!}ږC/ D <ˢf9<OHwyH \oy|M,͎!"db Ao\(ۀy/v%ʻɟ rcp3Ge2Y9:10=SJܭviR#^_eN|z +yv~י*JsՄ7ykx?b?ewr|\ygx>d= "6]=&XBZ׀H۶Z$7 I Y Ӛ+IPA9k)dרm)<奋o-ӘȠ)31!=;~oaꘚ:we:^ a<m幸jS/$4H]jI1sx>f3˰tmzao^@4qQ9"ʨ6(TiKLfHke+VC9 F80>dO ~LZ<`36PCKEV's)kJ.%u!)eJJPXuΐ'ˊBv-i4Xxa^՚N:je+xZaX=$tdl]LG.Z,[+ dHByyR[eիYiNru13WCmY-Cw0ӘMLQRgध@qRu6?gEW\?v0OK4qep XI()d!u Fӵ"xWS bLMJS'iEo轘wEZ9jVcSg(&HP}[#aƧ̸,a6tx{1| = {*4 2׬C`K+t,HlGzν$54(s: }mWY2.ik7ߵ)̶¾;&.i zGL_ #MyFl\I$zi5w)>z pC7=]-\jWvA/}I/!x-N[!zi8HW[.W`-/a O0 Wpl"-" ,%bɼȍ6I42"cç^/xs[,ɳk9(;&[ +gp`ӗvN DGmG-!Tb-v45ܹF%GɈ/7wM?;vqd1cuU$Ի"i nUL4LU:bxU>y^V ߰dg7ȣ))qF4QP-1 >pb<0bd1>Q4`@'(|~.HK[OciFK,*++?m_oލپ + #gp?)K=ry-y@87FsѼ!J +#7yΞyQPpOĐ#% +CTмDVp*S7c>sLJҞ4ᢏ]!=k,1 `:5ɺ)yRFyR9cx}IQ(Cp}YIJ88yUΰe_]" },@BF#ۗ؞hp}1Ec2$Df<9hQN_6Ax{sgj֮AD{""Asz-ْ +u aKoiЯ6gS/n˹7x)t- ݋۞a˥72`wq0kCjOnDH[zw}zH[rHEN-oh퉬a[ddIgt(d.On] ~ܕљMnA}A_D /$.qg00rwr/# | _ <GVGڱٝ>/ +=_X.w_V\!f~EyU{}l%O"f}[_e7ʞƒeo!_%JCV|>PX!P>\X7Й750m|||bHV@[euƠG +)]9e +C8K $K5,ᄾ1 9rBc㤉T$4^d Grtb2x) +0P0 9E~'2{',2(nD9-56?z@r.ׅ,S$j2 +lH6\:o7!("Ȱɑً46bDceDpyjʡ#oUy;w_%yfo_~w9F+x_vcdWtueߜ~5-`{Tlf|#U!I 9%5mJG_=Iv u_w!s>\ uf J`#dq ."*$ZYe(jKǁH{MFqW֬ڧ&>Ѭ(lm㛕3mhH5ï)1p(VpRvwGҶ|T˸"Kܣ1F,(խj|?mtm"15ÑCVl# B8]<͊Y *˸`/v55 4dʸIm)B6 v++"  #¢mXOVVC66ˢ(k7Sju1˭bO1432^ Exm͐7RQ,d5$SK|144У8Ʒ /+k/QF1&^FQ۸,Z#aWŵxmy(aqA_dzqHPuX:-jm:d.168I՘:-SնILE88 D͒z&%텥֙pmj'CUrqHiHE =f"c@5EBV7&:ʧ$F .:Qe='i X5at?B_h.׈@Z孼GHj-XZS ^ f"FiU6*!\݅m~ӗ9'@Cpu\rՕ+ȅ;f"ȇRQ +W7 b2S]OmA4!]#x1&>,C^Ӿ3a*Qy½K;y,ɿoL/\ +P۽;iea_q +MWYrNN^"<@QrKQVC5΁SvTKFdݭ +E-Q\ BOKS{Pa IXti$qw(­P24חQ56+ۊ)^̿nNf3H0ib*cj]•tV9W\p&)v2&'SQ{S81F\zp6ivte/4i`6;P&37 i34yD3UbB6vC%lN -h(MY֎&elcs%=6ސ3aX#p,w|Ƞ~E +$bfՈFڑhaCE*iR @dG +BѩC/\L ‰酠.)E#:ǙSYFD`"¶X)JTs]#G)=O@+FF+F.  b-DD`jB!~I_nť%2(/'RBC'|&Wb/l[W*ј! 1 A +/ [ NQN:(5TB4\S +'7 PQվq-!PF:gǢL:ũلkjoM_˭S +u‘)>9d1M/uj%_Y&V~^s|MЯYE0 Sң Ћ-O'KOW cd lʑ(mjNWh9kvTIC3ifCE#Oe:1E‹ %>2GaB:'I+=Ħ\UjȖF<Q0[5£r#] }OjWѶ. ]nE?dt{$捍S}Kvyo"E Uelv`ɸc mWfvu!pW,9שc9]WM@ Z032\qjAn:ڎ4̠wKh%e9&n*m{f)Sg uO3#Ery'EC?TxH'EC&3 S Ɩ*.2mkmdFbEfCKLD0IK'ŋIl5/} c /Ϻ3-yU,z~ MAH9OY%2r@+qqij3۞Ck(\'~!"Qk qw!sИ=X&DtVo9GMvz Q.<(cH#k(("Rd2N A?+L{8SOYʱv́k2|lx>5Fhc~P;aVhm¥^0_¸.."[qGJ&peHS7#\$ ԍqYܟaL!aU5KjJh|iRS8h;9^RhA8>jf7cY +Gpo,%I5oi sΊpbn28h1tM`]y*%ڭ8Xp>sls7Z9IHtsef-]TloB\շ '-\%r栲B)LNI`0x mky&Lz)%Eq;Xy>Ȑ*t xKlidܐvA OҊO 7+sm>oipz'ڕËqu3ޚw{ϨޞRW?2\g~~5\D'3[u8_7G +ftjqpㆹ5,zb'ХvBZB/⨱1q6Y6IG o`~x=-^)q; ;E,jV?i+zO?d!^24!/[#0H'[c-@ a>Db0|TҁZҺq0Q@kyO 'L6xY<-\ME)ei/s r!71:NAݿMF'2h2cA0hbcy Pl8%r:)(`2zXvg]v o{Tu{Vlzl~u{\z,Z{/$KB(~vd/;ɩWuHE*y+h(~Folrz@m^zAVVHzBhx&Df*uEmj vI&|u)z34/\mIט]xr1uK4biH}Жxe  _Ю~Ĕ|(PhMahMGMZtX+oaGu&,~&vU8ް"aUmhpLIh})#'jck;]tnK6j" F| v-h"Bl$qz$Mm)o!'-Q [,I۠,(FFbֵI2C~R-$8bNÖ8Q7Bgbqd + +V/o f{K.o +Eʤh@L @_GczCFT@'hHIZӏT{ (K,0TzdԱs5<&Ck tjaXf؈D4 yUBVlwnZ7I?XmBSNEfW䘭Z"R10U?J!0V +Y(A筳B֚L !(%dV q$UR(s6\.<.gCbCz.);\3x_z.34ԨӘu&;zwrxwx5ůI],MW[3iӘm< mLoK +Zi?$zw$1. ˛4/\gEsbo#qŔΒ /܇8Hf\E|ldqp[ƩH۲_ F&L_~:fYCܐ.Z-[/'¡Eޯ;VN=x #-6be0z@ʲdo[X9 +, lc_n +[4j>+rgy +r0Ƃ!9#\$ѶTku(03sB!ƗXhȋA֣l;#3údX6|qI o5$ mL9^ԃX%%A]D԰>FG`40| +Țg;AsDf821hB# {BJtǦk(Y> d,!?C?ۢ 5?" E'XLyۇxyL<3\@cR0ifD}hzy3rUNT`-&}m@&Խ$ǽȚu.pij(T3#q(-7_lޗ= +u`#G^0\_cm(tJ- UU(&)0Oum:@YRGg&I!p٣_<BlA_/ + dZcYږ_>'M&r';d3sbd -n$3Qe =mHTՂ H({nLF5 {M{XӶB1{BgaY}=d+9R eUVlFY5t|d{k&xfE-4JE)N-[#Z@s玽ti~)RvyuiUԩN= g)UT6V`3قU}8H䅃K05?Fl8%f4p + | Ix) UޙEQ &U3fڝ̑3Vd&}cq .}/{XCvZt ByaЊ)q9CYo|@Z ?ZV#>=6ਮQ +YcSgOU&f#jæLzӕP- Vit.YQ@k=RKO{g"BhQZ8eNLW"z5FV\]QrE\A:jմ|tpA +yTt˄ +(07#dBygHrF:ݠ@-8MXq~W"y,URF׀-&Y!CHׄ0%v]Xg7B.,&kȓBe~YwRRfE0@ݝDyNg7zQ^ZqէhtCl1< 1fH_}]7iFU4^JW5VZ9J͎FcE?6?kTWAD `Vɮˁ]Xj!Ş5˩(VW)7- 8G|X>.Z4LM`1@5 c6B3Y $6WӾL-_?U^ͥUz?: E+÷P>R/v-3)ikf~gRtD36 6\z"<t`![{yY;ٺ$:-9~x|YN ht47UUK QXn(=(9}n_VGzR9LxƇ^ 3>2$y3p=Uފ(ߤdo4yk).D іG%[: 3<;`?:huU2\kpHoqf1vA>yE> y%Δ] |J.:>ټsb:'YR2g\V0.9s:[=Tmohj<vO=#ۺttXj5ƾ־޹圴}{y2gкþ}k{w|`f{":sn>jn˾`|l|x|z~0~H<߅r@0FOr޿r>xrrrsxt戾显榾派漾ʾؾ_lS#n,F1̣Ӊ'e$GI3FXdS8FG3` 2,Ӑb|!3墀R>tubE )xbEnb}㧎g#D⑧<|Ɩ> xF. u3o[!/֡y};~ X< EE!J~+~'缳<=d v!DTBDnqIE<څ*$D^H`H@?@RuQfnP߅MߑIƾM˓_L L*HPH(%_H,%w*(7+SHWx)&.WOjMpe=:J/`g=9j/M>LКh8rQ3L^CLF%LH<$jekWUK0LQ7)l&v5~{LQg|d%P&; &[QD)g)Ri)VL)Z&O)Rjig4 +l6Jl$4jtPh0&U^K{hv𜨜& &%{yW:>ȿ}Rx(yL-Lb0I8=p}Lfy*2Q̩22)utȸd&U:nב˕KRY6~ZfU>Wj$gJTJȇ֘V)ũʏF@uN畯O-k?Uo>)`X&Ul^uk {U E*aJ+NB_p?!4'}nF+$q7tj/cY~Lul Y1&ˍjQw]Wq٧v"'mr),1ܶzkQwFkAvukVT*|-+}@ lX&u7qY#;q$',l?kh<{9ar?ᦦ xY+uP˗XgB)N.vQ)oX3c< O@JL:A']lA=o}WI% .ޙH:["ۅ\XTJ# !OuB2Dd$2aVcK0;>M[;2~X(U +" r=,XUnԽ3mkvLQk߼-!7=F˩haGED8=A1q-̣i b`1M<|,nFɱImVoжЙ#k%q#=٪9B, a[*IJ%lA& +oVo2ELG!5h ){T{r + v9՛.pSאѾr%LNVrmlJ{䙾8G؛b ,M75TGc݃B?zwk&˂]DWJNnd>p+7D72L#)ʧ&<$y} gV̟r>\Q?;i_6# {a 'H۾9q+6ߊFmVGkۊL7[ >ۊWܺ7+8ag g(k}dW? EzĽpgg'4nLW3+_h@FY)ʵw"u]qM =Z̅4lȍ"Cqͱ*1IM/E-qdN yeW7"/͠ݫMQog+'z^.%XéAm*— qwzNkhm}|;6!n5wLk=*˪۪{@='(&.lϾblzK-0ɚjiY@kDZ R+N#'HZBB?"\F{ 5IɜѼG9{u|DsOjǮHEjfYiZhʱ ;[х @?v/4%}'J d|޶2;b[ɝOm6'9W܏ v7:nݘ%k5;j +~Y] I,= 7[d?7] gonL߾w4ֻ ?LLP%ّےǼ ٰm:"Z\"0b!^u:k%FYf-G n)֣)!%"X[&_!22ѣMiYYfV[&7Z a@% KXVg ]!ׁ~1NX*@MvfbKp^AuR+|)MApvY,MrMsMZMv AY}oޢ^Q&?ʡ5Cr>d0 qJv$!ZhvjхM*s# =ZiAYrzcl$,AOm*]aX㩓vzwqtb +my{Qn e&j=ܐuMρU=5.{UOY<UJU@d t)fV4Mv@KZ8LZ}` +9O>m–q"(Lr> íN#gjY,wլliW^j<%֑ؾ:|B +zeEiB(ҍbM=gF4W_rHu-EAϘޟxOR(+Ywܮea~6,K1[7!okV/f_OQ2m7I[ڼpl~) l΅0RϝS<,95n lVˏ_qwf^aG1E5n+jBMޡ +D<:])Kr ZoXoUxokt!BLn庰yG6SS\YuT7cm }oPSkw&Cmȸ$rfo4J\Ѵm,=otWX4Ѵn ,čv $&xUǖ`fB'C@?f끚6:d;òUqt4]bpq0W$f;FBz$Î:Ć@][CCO?>_ Ⓔ# .c0~<_8Ҷ0‰>"s ȬOmz&u:Whr\@%Q."Rܛ$}!30gFc`dY`Xy߯!b\ C-6T-Ka( *]Ly~M `dɒE(bXpRn-H4!Tow276}'oQn0sTo#_moIޓ^1têZEwK{@z6nܱ6_)k|@F6c^Y|݀ +%X5DlQ}̌zbU-sThRU+mh˭⎱^v Ǚ]A\yBv59'T5=3]b\{{0a< Uu,n9~R];Ӷ9@\W"!m#BGSu9ߦX˹ΥT GJo/3ڞb^6'}>6cTc2vLl6x @pd=2[@'5GR}epzo^ɾw`Y8AsUa 4+AtB*>Kך 0_˴] K<ԡ,V`Yl1ujg(/ff@’qzg "zW䃔],.fs:gPy.R=ݲ2^ 5@W_1zYDGu+FNٍ>OO X\r,tG'4+L"-\ɿP/ vaqO->ue4Tmg'c5@". !@f% Ly&+V4Tb[:"7+ymbzظї?: NKD>(XwvQi\Jlg_uFGsC/JU,$ +ګ})1Iˇ!~t6|L/g dB>/zVU =za惠] zYσh2<_d'oE] {y:{fE`-23ZֆE{Z88;d~z&֡N>uO=,gX gr۸{IxAvl9d @0SHK>v1{ Nf/UJ >:?27ʵ$8UD\;SXхáD;챵4 |BLOV)j`IǓx|4ꬑt`?HT/U+km5۝2혣j6☛X u[K M {:7jV%D8aڎoe t0. +{%Rˡ#4^ f0"E_.9TUT +9&\L:ESee=W5(wg8Eh۪Yy{MnftEyɽ>ޕKt{9ԅr4D/|{SDiߛ%&/+RZ5tpH}I8ܵ˰ ўO5>ߗev-qEp҇ $sG-5@x +hqHAS"}ܾAQ7'9$KoNJIѻ8*\BXPދ"/f֪cr݃vދty/ b=;6gȐg [@˫ r-;NH*;I4[w4ʛͬ%蕇7;ևrjl9fގ|][05Lo^wnlL$,=»h9kLA)}8 aE_f/;Y + Dc_)(ڎ;TYe$qx.ANWy:M9e'Fn0:]6w\ =8{d.^yzk75l'n]:26#3{ X:Q^Z]#S&/9d~ %׫g4ϐF34,DF&[)ĤTƐRlZ0IU\U&\.Z%KIG*MBAY:n^%+΍[]P8m/GKЭ; ֈ'YjVi+ZWPKYuo• 4K џW|"Uk3zf,#ytY*l}]R|J,8,ltN+#HKX7ҙE`>~x= o`wY*XN!okCG٧6872k3 n\51iI&6+?`n>RhlP@ib0sUX~=X %m…DŽxG"H|aO!3Isz@$U Z +pS;jxN/bYZI>-FGʁC60ByO%KjptQ/')OU+cHEfH +vuJ~@sAP6!,}(<|q"YM -ctD)*( E>Z).S[ % L!] s0g!HOL[Wpc,Mn[B!<HyoP}Hԉ:@?@/,eγh0`)=HL Z*TZ .7BMzH|()s^ ANe8Z~žqʵ3T o0Rq"|t4.Cl8@ͨo(j){n.;Q\A;|TRR8.is8HhT>͆JFMfYz,yf@ +UXݎy*q[}$@vhTCwR)lܠ턱I(8yUFRʴBPD- +;32~ pN772QZ {.ڽ1|"vf^"g4Cuwv 9;!5uKqe{Lċn˅ crgFY/ U$eMR'AR&kIwscI `AsςRq=r\Wq4_jɡh]DM UKxFlԺW gc)oh'Sbxq!41j%he21KT"-@lDQ*̎8+H5U(0A% +-gXl"m> 5miWgEeuy҉hӚ8ew,y4(8V VjќM-O$Zajg},{JN5m mmxrBrl +M_R,mqyIf#Ytd#k*bnEe˚ .E$ahMdln:QQju:z!F*]9{(ovg%b8:aJ&f؀ +%OɡHe6/:ٺzq!/d}bdڃ˰feu Cr+4Qk{rw!" BĈw㓥Cb7{ػxDJwߦWa{Q-I*4.˕ e;Ni~ᩍNuU2\kd3[ԧNfs(N%|zi ʑp`BPa!v;[:IQkD +MaWxw]k# GD=DkPffv)63W+''$s4Q]rtלÐ<듢w0;qh靉R[DB-qJKD KmQK;gуBu4QJʕtj +Ғј + oAKm6l ]v'@q\ 60%ڶPS4["B6uofA/TDG;ubz$#T;vYϰvFv0_ʈ= ėaw_e!Y2΋yncRy"I&*[ގSyĵ9WA[_' 70WyZR=R= 4 ݛ>E7]gofh +=-R;7R2;{\63%rge w=Y6|)~eWS{dsQ &b34_ Y~K;KIHHj=pe8GX 21:5}x"AWw^VJlPΰ)waSNxov|aeW%|=AT;t%7%67\҉2r2L)%^,>&#L#)\~%g9BG ?sFJa֓e,Nέ8rgQe.Ԥ9 ?調y$O5ދ~wT3 E02dK?2J&AeHO GXKܢJ[]ڦHY[> +؆M܃^^ن\jވ&Sؐ;ͷTA\v1}%ad9;pC*0B!6|C!B܈p0ķfw^xڰɷw{;/߈ʃܷ7ʾ!娙!1G$w8C,'sWaV5wϷa!%#jg`OV:R y V + DV-]H?(u(C}wat+yI .f%Ѿv'ѿWKWLD'e<^26@APG: A@A@Ri5 3*, {Ж,z(Yxnf9:|YXshPT/f4DXk,3se pζ|O nɍ7 !h[lҚdwFwvoO.NnniYIhߪz%F[IDR-^A/!ّ 'E`J#?CI`Jp\f]deJz/mMnssMMFUް}ҭ6(J RuT䱞>YĠBG},UTTw(PmL %5:c]8B/]a{YuUlcx\]xD])Q)/f|u #88g%aG}U D_MENځwəA5ERyMZMaمEړ1ܵf u[#FǥU߇H?U`!(.~ \7[[-\7kXC{&)ab0iMQ$tS]H@UάyfG^ͯVitw![C~}Oߗa*tku Ӛf3p<|v >xm_9 \/]S_D~!/lyav)3事+~2׭ɛjNM+. [&o@޾e9/x^/qf_D/C1`.iֹ[N )fiL&P?X^pxKc*xfPʥ?]wư/|&('B/d+\b,$nC,8_̮lc{rQ+HR Zuе^Mz*NQa Yvy_:KK77I+ḻc}*YF)m, :~/W5pGrѫoؠ]am˞-6{}3c˕VR-cHv}}9|q^4MS{X{jB۲A5Q\;<תhs'2"G͍\9u2f5_}bGX`pʭ?vݛPCR+|h*i.? O?D;6mj~lrk?@= {NC2xDطD7u@-Xi߭ףNRFFWpz1ڈץ +b^{=-8_Om3 2 Ʉ3-Nafγ fF\}ׂȆT&|MnuwkwH'ok"|tōUDݗ+S|51>;e+fjG>xQ i|kClQo:; %t@&on7OG)ܜg2>#)'l~H;i>/8(y׎aߔXU AE$5\n1?]K/ɔT +me,-bP`2ˤ!SdȆ:"'ؠbQtc`DEg%g A6!-'7c"lVxYbh2+Min l|D$"/2^v@7{@җ^LbS8zb2!B\EE=wl&JBM&tbuBb` .ۀXܹ= +- t֕13˵pbA3lJE>L[%o6A+ Իs6ҫxCR@+GN|݃s/ +%#C6>C7{n4N(p_0 2BzG +K-?X{xY(.ƃ;5X5  7'St DR'M!5vڄP~z~cF^y0ɕL2vDjje>ZȨl-B8BAjV4WKdё +%t5tS';/Ҙfj'83nwf2cLWU#w*hzў-Cy/ /l!:g'E5: .<7ІD%͆|k\;7ʙS1.DIfJ=f\*饂@ׄE[bJZTbmԤLjjRݍ4*&0HTɅJ {/-Kr,i~=a9'n_Q,kl:fUɆޖFѝWZ novg谎gk;@F[bst}6+f,o{\ _u9z5x)L +GJS" W+r>]gt6 ؇/SU 3lɶy6& քw9]9BcBfZmtl/vp7g/t; E::kt:s )l +SRWqQNڵSyaO݉KS[P2YXem:&eYjP_EWk{?0ڏE@F{uHC].V3KcgN-n]n")?h!uhl7'kt7Gkz7`k?z?L1ho?~3X~FqO?ib;N *ub4>@I儵L*[.)D3 yO6B!BJebCtB dr׊|X~4ijjIbW0=IUA>L=x2@m_jNK.*I5y[*y/&ڲR!q#˳6|ס_HAh1a\r͐== 1|(2C3,wl@s'Q>߃3|)?}YC}?Aw=l=A—4X3}\XowgDAi?xGՍ4]hLa@$%KlV!cDDiL,wp)+:#`/28a**+ÎĸMLĘMLX3i-NalraMb<e&5&$~X! S3ؼҁaH#ؐ)H1jrr~pR~6xd\(y{̀o} WȤ,B,:}dE?(&YxJj8@? 3IҬphf*yu?-gR]SkpSlO! bJDlKV4z!Bb:$wC uCL윔8֭p;Kg.ww%;jgy5X#HI8G8lw+ױy >PVJ^&甄$'܅|Vno&m&izi*]J L )\Ŏ%U2C4M42;&#H$ hlHAjo}wNJw֚33Lވ3Ŗp@=ٓȜǦ==oxՖXoy~mfyl`CF;0Gavg/'Bև0-.ә';@L92 );fџз~FlrlT%s/Ø_=:D́rA .x.&OlyQ&vPsNoe>ۗ<毫=/&(FdZ?*J(UL47ɉ<)LĹ"ALK%T /fg=V,J&o<< (O&ټoٱFG.ϔ]' M`^"ҖT^ +s)03sbuHk`ZrC0C8۹4܀Wy:4(\2`^ K2LM2If2t>hGn}ݞ>lbvOጁgЄG-Jy?SkX+){-&zNoauI{~O!zFYor==וzgnd#E#F#G_:3U6_Xm\g MEQ}4fÓ9a~g#F6zH;˵e|4Lۊ/LOnww/?Lo,0~.v3NImP/G:YԫUN s[\ 8^b=Ѳtz!XOW_r0„~@Gq 5gf'zm'dΦp͡O `DrU +kqi[biW [_Ya:߱ }~(vsK@7g[Co% ~(wSoJCx+/ۮ0Sa?-apB_NIA˜}Ϝ sG +KQt J.6Do4c{n83WxV'݈w~1_.w +0.TFA}hHoi4` \%!X4 7Q&*PnRWƐb<3cus]y鄇S/v] ]/]ۛ?h{(%OĶ(SYL0S*Wǰ% =޺谦Kdl҄ "s*쵡Jd |nkU&Hu Ǧx bDWXG!XO.ĈHb@M\bĆ( !Y4](S YNeQ eĮ^QE )QE qw"< YĿ_<: }!0Q#A##F +T byDc*x%R28dQˈcF0 +)"ǤH!$g#F|*YhiQ#PaFDz9$iDsh#h BgQ#G#yiD(Ԉh"s"fQ+xQ9k##S#"yTt@GH܍F +6µi#0G#'G#FLҍ 6:u<:aiam =D#"Y?vZv\r;b.9` QŽ t  E]28];.iR T֎x|hj G#ĢbcH;y]<-<-<.Iaf 4QQ"QgH;tz]B=-R=.t GE;QkkĢ#"2#"GEGE#"oT\?B.=.#"ox*/  DR/#"w_#w G(>"x|/#"z jQ?$ m}/E#"|ߒ(? u~/E*/ԋQqRFGQ2GD)DDElQ.܊5EQ!E nQI((WUE(QK(+Š]EyQ^S +)Hj+PLWEQL)(,*,2<)))ƪH-ZĪ) *(.*!kve#p"aoz".AY#uBiF,e)-o1`)q3&saLY*i4?ǎl r\4_N6ˤ7"t3VcjG.@3TD3 asS)@lX€4@!eC Ỳg Bŏ1ytfD)q PkQ*_ l TBdd+`yj;#jU2,ic5pš9i,,)#'+C<cɭ1xQ fc00u9s,y( L2 E25+3h@i}ŹPn{KuOcjHٺ~bG?]}s!\󈶗b.*B9f7{;` 4lm`޶ЍAZכ_ʛR36ꢰz9hFۈ@ Cx8P0N2=FAرOa\S<ڝRnN +/yZx{cwARwV/S( +m*3Q}Lnvvu+K2L H 1u +܀,C(ѥ(Eu{Eɾhd]J hzmo2*P#m``y%x)dnL4Gvv\ 3M## Ɋנ^>rt}鏬dal/"bo2q;I-ɫ 'ښQ;PԬ7SlJCWSNBVэL'- /$o(?xKu70߬q)gLNJm=Wɗӵm +[liBUiìɥ-9{j['~l*&?-ZSPol5~w8? +Hږ\鷗CvLE{%;;vwy;~.yHu#h۵kOI 7}H ]e:٦%.An94G|]]ah0 @ˑ2d+2gö #Uݶ|(&~3}ODŽŴF e*uF(CWb+ Rb@@X\KL6ybSC̐y@%f/,;zN^i'(trr2, ddPZ"ɱი2d e(n Jb/l_=v +odn"8'Q҇ +NN.:eS#6Xt$$$"2DRdLx(Y.b!cߛfPD);iDif84CJgJD ^r_QءI .ۂj!w3p]8eLL>9 :rw/cPNY!F3N:$r/ꓘ3+6. +呁̀#m^ c8]I֛(0_HhMu]P)unp3ReB&6/ +LSCg]:rkfq2ߨ_}M\A5VR_M]/)f|2eRfv;cxzWWJMeڒˬDr!őy G Llf> +^8$~KˬM4/]^s߽μyLưwGMpU #Xp3 b>0}j>yW+ح<9*@n.jIRÄ,z,Roz|)`c0@JЋG6N{g]Xd,Q|/[(ϣA~%ІSFhkHPƳ;)UBcR0!lcAIWh)ip`C7'mH$2:wS0CS#FR emL(ڳFNߢrDqK^x(jn7mV!2ɦ'`M溨ݣz`Óq*U*D_4; +?'mP3XL bQySG%UF) Mvؿdi C=E ~@F&օׄIB{K*dYFr]jMEfʘdx =N$44aZ\2an +1B aBDrPy3}Ddxl _-fUh=9ZOP:9GFkMAmWw73k`v&=^"d +?2u ܏sP vS剫쐻rC + ҫMbVaDZjTL1p(`JlS5,a$.c'k*|п_QMÍ^%y^Z|ܑ'vϓBO)8$3Qs3ɝn̷iL=zp1 +0 vk:RdcLJn_1N&FP` 18klqG7^(yT0R#baŹ.^:RӼh}3M'X VԆЪUض9 Ip x@_Ôyphx@v)infyҋ$Ih 4gPMPe8UBT_#(:Uv\Uvc-:ܕ79ww}IvcQvOoxE;Ɠ;#?4 'QB5n& EN C&sA={zD}ܑ>I˘ׯ_ 5t^T愳$'IhH@8kA "mv x +0@B %er0+} ҴF鶶U BRG^W~Uun麮q͒vGxϹ}3GT} M}Ծ= ??@ľP  [z@#3X_.b +W/_ՀO{*Q_QZ>iz0 oD憯QFCE=&}K) |{-$ʇxxJd `IA9P&ܧ:2T9B2ɞh`tCOVa$]){887vQ͹E0ۢ(0 +fάn8FpVsT8/ UA1*A(BQRUSZmj4-&hRpSI 5l- _\SanjNmlfQi#F&>l2 ibn%F!%* jJJtʃhV"P$hgƊc.c5zʂ(6R~lc Yd@n6JZRdh-kjRYEc>prK 6{ZVF&"(~8E=zAkh[$0WݪnBcQÏnER|@RiEqX͍h#)Ds)-b觪"x$Y.(wӥf6Ef;MLM鹾mtN~-S^7Js:k}jc̄&#Nƻ +7ըPZ`k^9u%M3puPf!N)[^z%_Ͳ% u kwr:ss|([U(RQyR"]CJQ?3Lʣ35lʣ37ʣ#nqh\šZ$9 IτٛWNd泼`jeTj4Bը,8SnTLh1ϸo@劅[* #/՘+LkLfe!fC z36"A6eU\HswXOiީV|~AƑC)2u9],'V_V]f^)5g7-MU$>H9hL6hnX6D^ݕzv9̷7ep PcvZs/l8RvJ̐!b^Iv!ݤknM.ϭQTwLSS stj; +>]C>QXPJ:G-]C=h/`g.4TvI*Nrz)P 3чt(2氤|8QIE˩BR[+]<3j`.E"2d a*kH.ݏeo3",oNCl+2FCT;*GƇ/k:t8Z_[wNzz `*&1pAW>֚HuȻnLD#RS% M/\_D`W\]M)*_7MqLd4_gʪ_ޛj..B98,@ 4k77,,?-4N72TLlwU/`]0d %ޖ l%㮜닰Ub6+|}x7@u! Ab"|bQB2gOA4$l!j%..FRўUAMZൂFm8-''\(xϸ9*˭za9f]4yj5HUNzinor^WNGSۢhҫi+~a& mzыtgFAqW a?ŬoP|k|3r v H|,Kd%O|L2hKե t  ȉ=pBƩ헸[ /ͭ):/~e@TtEGtfr.Dt])ah" ÿBص>ݭUH9L ys/ MyD%U~L='r76~8f8momW27Ѣ)fO ogZn;C>L h7y8un-|.>_JOO/K! ־!T/]ݙIl2;6 .2,KȵY$u0E jVNԴVtu} K*wm--O޶q=êҼ>I-E8KǪuw6O@yZm:"i;ccNSsJg]<+TWYNJ>>jO;?-R8Eѵvƿ2dmɎ R' +$J"f>Y4,±4x(Gb +Ad y#fJ© &:o#[d@.Q#/1Bd慠"wXs +'z?PK%4}.>-qp0xMHȔ`GSeʤ IYK}ca^E7PP`IpfB|ci.Ͳb&r܏LMhn+[ Kӏ$D"k>WMު}c27L\&#'MGߩ! \U8Hbۢ(,+EF6-XnJT#X[k +:LC@i=.MP.SCLKs*bV \K&dj:*ԛ;9E̅b0PWRCњ= >ZX\4fm٦Pw~pc{p3LP0f8.v<12bdĞXl 2|+mn.Ne #)I㸟|cc,։Men/и˞䱴[z0״4F"Ē_$6Im\ۤ96 s$6>=/w~/OC{?wBQo3^p;;& elt&_Bi4Siߔk%u]R媡P ZElKTV`"le5>ړ}/T= ـz+eWb&@D-HG_ ey8Q疩PE/ҙ&Pa@uvƔX楀³+8n:8_ ޠ7Y..]NAT?t*q[_Bzq\[=ǣ*D{  at)<,juGZUedEވ9Nzll턚;B.Az@,R׹N+~V4qPSB=nS0U*<*)(j>-ʔЀ*Ԥ.N`2%)/L_J^:B*?/ԦT@S._m ͖67kҥR-_MXۂtrf|k{21Gm~ml7/a1{ަA5%@K0hnrqywx 0WL6$O wC%N4=O/P^e L+%*f \pJggC@yy,!4R=`{ҰSLZ4R +sө`]KR̻5ߩ./ΦSd^ڛ6`+XymU\3x齏Eg3sXxxVqil9.]w30gȬMQXrHik/xb/]zY6JL+ZY? +nW_[n%7sۉWsWwX )n:x5ews3,m#:xܰ,}uO*`~jYk[ېJ陂R(F.FQIV +뢨zUwFȴS/NwQ/BqLtBUZt-IG:VS/G퍷 >/z\ ?PAx6Ry eEՈ>}!ac0VHK +|?gG9Qi_2x.6vv.ʆ3祉HjA{Ygr2ϑ:F E2L HU?`N0ENDWo|Y*!ȃBFZZPiYGVUH%.wpYmY>Qf!d.mVږ'w*|u'yz S-.s+o[*l]+|i_|~zE(A3Uq!j*XX-PCܳwh>MY'} {y]O" +ܗ#lw.|&%8N2NGgo-6oz^LK*zi\6pbB9IAW%-Nk$k_%`F6%"SsT1![FocJEYmkEcg+NvxthHB4vt);+[)B N^ \&g6X:0^ڡvPeNNEL+i)/fm˳ +#AWbiM ,J"&w,:b&FF'ۢB6ޣaņ&elcPe#j,[$ +'%E723kD +4]õSi/Yd"dǓ'76o,JNW/N}<4k6kz.ςLik|l]\wԇQz`\MnYTM<`dSzf@w>E# x؉uxEGmp1`kPC0OK̳;%ˣEl%'M]2g[O݁ '@5", 7w7]Ѿl kwK|dRĸy+S#Y-6wת2c@>^(ꈖ֑CڵB`gN)9[.JרRzSdHf8}y^ j"jXVGq[}{Ԍ{Õ5h)^Gf̶`]}r&QZ$o1v-mkd=IT6K|JT'[ҿ\^&Kڔ̗ʾ|zobkĊ+_GME]l^~\F;U.k|3UA.YTkސ~97+\tirlyDQq6^KN PZys/f]b16y&s)mc ݋}wݸ56ep3ǧFq >%L“?R.UFl3`z^?Fz_M53)15Hrݒږ3ف1wEoz ldʊXTTZ Љ+B0 喿|Q{BhJ+Da@|{A{I24ȍGϨ3sG{SuDat @A<*Kȉ,h%0Ǥ[͇wfc"Xj-HnI:$j$oYX͚DˏMͥ]t~{~g ʦΦaXHSȎ+a$S_h0`Y0к#N_hV$. y5ԉ8yR?Z2Ӛ5 ھT,|JuRe8T@VX B\'x_%A\P7jʎ#X\ESX#\[Fꉑ/7,N?Z aued)bo.́ +Q >7h +X6?6h*J,8xBuU]٨[N7(OD樽-DFi A-ї7ktVDW2Rˉ$F6b-3WU8ꀸ"Ԅۏbs)^у8N/<,xO*̮6*NJA{c|*meӘ&o=F9&9 `Q|]|HƧ[ !G49 |BF}E_\8R'E#weGqj"۝1-V.uF}lriP r+zj@+㪂ۗ W2p /$uV|N {Ytwts2> C 6%kp(3$Z'˕Nr&5|ԃ3^ {CvNam D*}b^|ǂ@v}mDxÆ\'Y=+[AtS1n!Z*"FaT1!]XD2USf%%$+E +L)%vHC zTT<Ґ +C/'ܕ&U4PMR2c /$vӬ/~З`SnoF#= ڇQ'QA$(M +o|A 6Ξ]?h[ZU73'zq5LH|01FO=pbB,mgCXm:7kPIkk +BVycg=K5V$9Ƽ*#ͮ\^=Z7z.+O~ix'BϓY}̽T)q$$0 ;kQ<(,'8T*0%9SGջ ϿPnBUC5W**'p[uyoP Xկ~*X(jo\rGUgKuӷ2^~uX!^u\j[3Q#xz.e^_ZYk __.Tw@ڃ!b#~n +>28ɢ}?Kx^ żU< +T1e<ҐG偅1hzTB3c1K=6~#HO3\{4ҧֈO1gUS1iٳ?L#1)"B(wըI(z(%zAjB=z13"ZDI8-?QdDm-QzO%]z#M/~DQQQ+:JSӖA7ҏiу^7'@yeA&v5cgp~nzBww󜰚`:8#42V'm$dIO yr.&)!T"yWwBh*걮"/D:f:A72ŤGS6A5ɝ{54EyWSU"B*)\PV!U\ٙ2*D&ֲkՐYtzSO,?DO?lifGkH򗠌t$W1l8 h8珛F)]ܗ7A'BEPlh@L`AEqcnXdn1 ģ9&CW'=o m +qR#,ZJ)E-#ï G.[G^B#ͯP87G[T#/#U<7Hwn<⽣LnGx؍qQ-~\1ιmAn@.6i|;[DYLo!D&P<lxσݛW<Gѽl|>P?f\$}N\fEϱJV}+بDv\_|da@lX~}D]TV 76SUbҥ~ +dw<=Pi Gt7x&߅s_PnhQV rkQZ8aR[,E[t">t C.Bzԅch$W%EvK$[FRޚ|ze~hY ~i#-wNyعEOW{uԧLmVF)tKӇtU+f[ػW IZ+j!˃~ PO}+:6mzT(QY-bC#:-`^-8#"$\E0cY +y=$ωΥMH,TMXHM`$zoވď BXl:#y^fBa$8MA(:P߯H 4Tٙ鉜iQʲPӱR JƥGN5"ag tqPK`5ѝb^޾BgQî=INgܽ prؕ^E23/۷ʹ8KG 5W ?R\x:ﴐSBv=}wOXioC؝~Ws?io~H㕟t_ZڅDié滫 +jZԌT|h'aj*J{ F03+TGpWSRW*H_s ]78nmyr+]%ҍ<8q˗)8fr2L= Kx_|p#3n]5/~9řMpN=ęѨS`N֧V.#:n9.|u rKd]dRͲ2/҅W2?p.1d ڤrnX3>Mz웨斘>S_sA˨ָb9ArԶ ͒(5;L +:ػ٘.+ck6 "%)T@ 6XXFZFmtsMP{ry[=ʞ?(tϖ*~u}h8 &i71($I' ȁqHLy6zcfp tץ-~ +4x"6nZ| ++ 6Oy)rԭY\΀quEg:ZQ2zE<[(hp3 W"'n%=DDmOO6D%q8Oph@ 71==16c-m4)դ$.A^{A] wTwC;AUUgxt1 !9b0|D %0sO qWf3 * Ekhm}Ns",x $/Lx*1ϠW)4~ f+C"'8[?>r( "[R"`n?qN)≒oGO(cC q-y @QCXXY~`Y$"4E)_.vM9Bw}~wǻE4Z97\wǝ|C_cх_Flh#d؋8t ~BW4*d4DSH6k<Yߦ%B4ˆR9&SgR? >1b6.uVktrXb #SHJkPbQGrK 4HBVU4s8ǴIdYT_ymK~IEC Ճ90J, +4oȅ ˿{ng29cqV%j ,dL\֪5|LB3A~-<a!\.1;Yc16TR+9iW(8$LCoQqnw$X*Kwsmfx"37FTBV+cb4,uJWUw +.XŎżk$nAx׋Ɋ66ܳ< +[ ʎ^+9-g쯲yxĝCqZ{3oj玚uoo!I"1~YC-kpo#^ݷXH̙Q&[osmub#:쿋|O"T܂b1?'&ަv_`ΰdKA&kxҘvuh/v,~FmgIP_>e& 8lK,AD,=l';F,x$Vs$fi̵E(4ol,s9Lc4HaDʨ&w4Cte_^`0Ȃ&j_PU5\h]D!t->PKG}_>8_ӎv*r* +ݠbT"{TG2-9SbiȬ4gNM4eVЫ̢qK19%y3$KaPE_$Y/hfn_̛fߏxv24QG??ݔcefĒWoX\K6M7S%V6vwoW[~Np/?Ɨ0oIw"WN?)Z){Zz-l݀ԟajwV5{,06mg-w8*d8՝|derX\> Gk\KZy}<`8']o`iX%/ Gd"JL /N'Pcޅ.,O}K^K{$XCa!kE8tꠚ~Mw` +у ֘ wYDٵt`%Xkc^Fj1?gbVZT)7}~6e!R]p=/̻:\z@g2\HT%LX1C~}E%=qsWM]wVKu-O0C76PN\[NjU-ru;#tiHYjs+Lu)L5Y|$? b?-dn ;و0 +ITifF9Ec+4dI'=ZckhjzĒޜS;Qz37Ee-JT٢V%YHg&}\;[;ߊ$ꇂO1e8{]{MwV}+'XpW?Fį0IvJT)ZכFNGt~Χ1Q4+0ƛLxMN$0&iqW267/q)#hi[ύrxo晟[ÕC;Tw. +-JQ{fwOBP)Y9@bMP#f6>?և=~8fC 8) 欰^#:B?#9+loc2zN]7w vB9!ʧ!Q45lߘXivI(< ŀed 1H4I@" G +1wwaC:>/gb4!)b;._˒]+|Hf|+,ꭌJokc70oWuR߯RYWgR8s.rAxK?x=v2]Bf7y5#ټta u6k>,fz*y=kz %R4"_uԼklաdOaZY~oFY'B2!GrR-*L3Ƕ41fu)N@hX}Zlhttj+kkEh:tvԋfɉIًRjf.muMku2,;.ܛxM2>mNȚcy{ }文ywMlD%hƪ|%ژqt:1nj q8kµM#iC`r&XTcMRutVcMeVtWѬsvnvafȥYƦM+:CXp9oLOIF jPgs'LWʵ\V$b[_^?_gVVm[2 @M-vS:3VѬˊxw@׮X/v~hj~an5Nk ٚq:~f9fV,iB KjV6l_Fpnҽw{z/z:ބ8pl’D> <#k9/7h@`>"=cHb;5X(6| |@N'3<;k+Nzm23*Y*şD + .߶/CPLbT{KuD&J>n$'%w "V|x}x {2nm~xu +y &@PGn0_F52jMI7Ҏ%j,( +|Nut0 :٨1CsNЌU2)Rfe}emNkY" +@ iЬ1cs7֭e`b50V4ȇ-&^yC5*cIL6}DIOBM!T`~+-/\V/qY%ԃk^dZ|dc^I:Ġ-ȱl\XEhJD@#"Zr5RCBx&~̚ +2Z 1ɉ\e9jwd8WT0`Ԭw-,Z'Wn/)AiU.KouqGc30(7N/EYUz+f`a 0 qa .T1gtl!Z-6dضB:x}hꤰd`arxYgo 3 $P(nyj Bno#"rd%b$PT%|W,BD._)cbC,~PXq$%laCP~Fg?׻Ac+x2 HJS ])K0]!MJ+ L*(̨(/@ݺU=Ÿ axEtz[@51Ā?2h%ƫFѾpd-yS|81Dj-ɟO +ü{~C2q7屷do\ 7E~a!Ue70K8,F2¥mpe\ urzwVuKbm6,wo*-eQGd +,Lj?Ď"Dl),6x 6N-A{ +ݎEU6F +g|ѼvKm:>↿K_+7$\q8ώ*p5(?d4 +EF`L8^K.\L(*~iҞxgj^A%V^n $G$ Z9hvUhI_4z(I:F:@\u8?ྦྷcoYzm{],:ܪh!)_0Cg|\^Iթmw2k8 DsNeRԿ |~wT{s`+{P ^^+GS6Xd/o*gefm 9ٞh?g+uuZ}~6wɭ#VNQ s26+T%ܶ,cq&=  +"!Qƺ^$-y@*y_T~Z@DYo+)5Ѐƀlpޔmu;n9 ` @xB 7!r%=r@~6=׷XH·^[ӛʹӘ-;2WNbnbE1+;=Ppt'T?jA|_5$A/%OS6I~O$%vwk~%/_+O_ +_ r]5R)ݥt7%5t7HwIHtRݝ) a}ZVtq{ҡN%>Q1868285\HjvXB$*Cj9a@ ir/Y~Ն%| [6wT `Ht!EplTE*"H|N 9ϹJX,_蟞;af +ro n }nh3EbB)[hV Hi(v[mݪxPLul de`Ēp(r!Re ԉ :v|OE,p 8!6),.V@Y[ 5ӥbVÍL̉Nj*D)i ?NXA#Wp◢Z8'%o`(bT̫ϝiXyEF)Ө/kEX)D*M%|lw%ϓHoQZvzL} +KtgHAY[$e7@iVgP7SRUy0쪓ZҶ(%7/$%2))b-܁4FS +G͗vU}rmN=ҝ< *ce+s1ɶ"zBk˖U +yktoP7yj"@7^_l0.ΛI|Q\J@C2e卽Mn-&c9 rLq}cBr%umV! .Ib'F5Ǖ3z=Ygp5oh4Adamq õ'?:1ߨk@Ֆ +MU>/6XNNcÙq o e(%nĤR>Us4PcoPkD3'v%Vhf +5tx^RP1;zя+䳚>¡ۧGo,*c(Md%Leiߘx(^uQ+PCk6ԩ,V7 z3SY qx2= +Z 4|yAB@eqf +C".sd&(WK~`iVOh{$'=%؉JuvTenH,%ټQ}| u^{o1Ï(n_]# +ru-;ҴP(-ɺz ÕpppV)//~[B5n.g)mryެ8Z|MdVl͢0y- +0#3i"kAjY?J߿lj^32;g >Jmi)Wo6_۴_7+ ԇS}%4+{tn./7,/b!ۯDqN'wyF(YϠef9uZYj+؛4Gy>p`tE4dAkѲ9\U49\) Ԥ[ : ¯RVޘ6̮K͒W٤8%+oӞd 3h߉Ց8&O&Kzj!ĭwx=]Z#LqvBu%Rt ~zO{:d^? +Ju?$p{x%9LуvcX#\qPh?)b\{tR#@^5‹q'6d7$) NE9DHt +PfC h7}zgbྤh΅g;|L4+("V˷dQ;Di+112s J]EzX风Ӹ~ͶrkcXtm \BGpCT:VFXzzHQ/g"FL3 +v2 (Bx14. +-z~\h;P11*}_ZAwG!$/H!dZYn0r +[hW]"]ܖIAV '8e)Ŭ8a 3eVtbBK"I`V̤98d.܂//׍|AwJ9H{M[Id#]D ˜:A55\nUI~ ^u,V23j|%o쮀LkֱZ}k'Q[\ +t1P ;.aވ.XC͸{쇒oF[-T3o)9Y.$8/HTM>!QB )ӝ'iUQjR,I~nb|&LV36YϨ9N7Xq3{ҰU +qUĔk 27Krf |qQQ2yiUh [_8j`{2I+53v,wXq3J9uϝ4N9Lt.N؋t\?I~ָєPB?V!fa٤WEfLҚ;b4V(%bU!+a۴+|f>=*YS]9ޘ^X^ Y!/(̉u+~ΛZb`hy~&ol m.٦~-ڝ Hq: tw8a P*ʀnM@qk@3xe@/0)D% қNuy̪FnA2|̷}S_bFfD98M^hȭaL$K6-rأ$/1cٞ DKƩC&Aw(.wY> "1J VPhsmwK/(\zl 댻[_:Ե t\1C]/yiTIF> ``X DaA*/niw;جPP y햋Gk x-UoƖr)yّ(2'ѦN I/HyIX#OK\9o!jܘ*M4A]%[V5CT_!XV/Mb;E"Iy-xznx8CaCcUdɣ6*=ψpy-vwRS@"EӼDb0 $KCqB5bŹ@7>[>]n-J>U|3[%(2`u`g,sds B&s'B.$@Xf%E*`FmC-a, +m4@FfT9flA]N:JxI cׇjfa& < a)e2jtJ!Є_W˼-ղa+Uُa E$\, AofvvہuR#w+j.ģ +p׫Iy!)-ؤn7i1nt~WjOSȲV_xM\ʎT(QI@Qߌ!ڦ6޴suL$-y-^-X̘b3!1XZ}tEa6p!rj^EMN1c۔]UKcIR< ){8}թm!11*#l+6`>t*W^hW=ܮ@* %'\[oV8G<x,9&XU#@ΤץK|['tH[{֔PraۤlOW1Ev+ +b󢮐ތEJҿZ\#ըNHFrДa4fZDWhk*Sã^Ug9{%= &tB2pQ +M9Oz Y> bmAZM:mc!]q&bgTq&EkIj圊Zd”79%)&l + ;\hv' +"_eE=vG}1hV{z&K;8y+ա>ة_ܿR}SP)g6'+)CԷ`{O־Ü6qL^o EB)zʭLw1;=5h)n d)ҵr \ :=ߣ52Sp ljJy5ͧb)ڹ^8Uo4xib&]%D #fp|ؽ¿{F|eMʤt ]혘{<]:@<}(je,6rRw"׶2 .{SZ9x}d&oJ>5+!Q9IPU{UӉ5xk VEm>L]ddhdk8 hSpeY/.a 8"k+z*S \GSB{0'&$Jc0ɪ5*9č|iq^_<;D7aX2ʮvݚ[]}yc^OnY'DޝumT+1\F +^WC)H|ᅅ KܚV!,s/COS +E kPwĝ_ R*'Q6Y3,g? + Y{j# xV"d=!jWW zf5pƁ6Z;Gxmzw7^34 >I/OOCWj9Rn3`PXmR/]1rDӞ"~)[nCK+X;m{R_ 뮤.tQäfrD3E;Gy$+c +}y$V1__2s80w6芋HuN ##/E$&[\R鲽d)DAvKMt Ϯ"!j=>o0JE IIY6sx&:YNr\E z\z}rջQ +65$bH B6)Żٽih{LHq R53KkW1WxuGk4v71fWk3wS>vTn+WYfu[22l߃SN܈ܾ#fq6"uøjjXhٲj:gG">ꈿ:|sLiwQch=lul̫J\`5R )>)™yEl5b0qt2w|vjYSj]ɥӍD?of=ޜ͢^-&Q7ʵxN7#J0*i$afR!"kRZϵhA?|nTr-<؞,TN=I|Ԫk7l2tbkoI1DX"7i'TJ>x{zҋYͽ<Q\+Z*DqQb /yOE0mW:ObC¼ka .}8};_C6ھG1Z]LH3%7čU+Q cƧlxŵ1n{p#GZ]`FGtW7D+'qiFZ-/<6TbŔRWĆMq> yZ mK_SK1H~uWcn +Ү32j24Br03#g1fܦZӽ<)^gY0_SC/Uy]?.9~r !C'96s +oS _;4r>أɼCVjkp? 4~. ؘQ"ܨKCLy¦ +"kW=!lL3sWwPK^ZvZq/nx:dȾK#u=R|s +~ }ŎeƗ py[҄S¢}j7;M5D|%EO33EYhDHӏ>I*Aig15px|ˎDr'Y!qE}fO{"ET3W|1YCӥ6lӍߜ-x'ESp^,b$' !QXj- U'Cjbbku~.N=C谯n"\ѮIMjd4͆iG,j/a kR'q 3(q XUpe8:\BKԵ 8VJx$4mԀVLFQ&B')PMgWH.%?rk1tTÕNG'(prL!W…'Yqr0M'X~*UiKSn]z|0P2;+pe)_jͤ՜iQEnp<.0jK=^%{wQ1'ж-6v :Q^>E:ͭZH@9'ޡY[uJT\O Sz$pudVvZ,lTUϫ<d }>uu#]!:~1DP'rPPXď{iC2}ifHnψyGP.XgNjU,pۨs޳}/Z4.XIx e2EQ'%Xi,5FI8A +VR753·7c:w ʘt" N.}d֗`4KލoU!}杖1[V\`\l7eR\I?E&‡dFhMN7_tY7ajg zvRE炗Ϲ:D{V-lczysv{aڶ 7Tz6~t-뙁\rt$MJ%-PDb۟#o?̫]rsP*2qv,.@Ș`Zk[۲,Q`mFV;g(Yp`|vj:w<'iYCf*t!Yt6ί.:1Qi_Ƣd\5C\܎ylQd&8^Fom 26(|y$ʯGD:_p;V "HV/s_ ͞\5b<Bł'XC4Uy ggg"GVL\L'q- +GQF\ +F_'F7MvCkp$Yg5'h8]3PXWG몗yOwI=lvMZ2m +~?]| 'zNynYGg7ЂA7n߃̧c ٣)"2sCj$?v>P.~|$ɳq2d΍2>lW'c@/( Dб{/t8?_~ʭe x _<MVHNR\LYQV߄ + 44n  + _k0 *޿U0J8W} +!daN&BW-Xn0߃ k q QqQdxDO2f-x L (%,w ,? ?@DdJ +Esz ``?TZL?2e%>}-?T^P[g˘l f lB?b~L1hƕ9[t`U5xt_~r +ʐޅc6@#@c3`nWg}koBww-442(:Sao HF t_&F AJ)kbcp&J9gO?=rۃdeg33G'"fHѻ@ <Ґm'Ȑ@ӡ@de.'گ{4]n;`>AD!듼C +<xH jF"Gn"ftb/KL~KtO6h#HufH^lj~P1gBZ?7K𖝷S> +O=ׂ luߠ-&: +^Hj*h̬b;@)Տ1<06yQx tX+9T"p?8$ j&G ;[Pbw`?89#sƿ>g~_ha_OaX+t;g3׌nu|fDoPޯ*.j[%00B>y[{8 tl~{.z8X8(o r~t' ,iHq9ŹgX@/1Ikq|0^DIHhyY +oζVu߿o@3 p}_%b^ Ɔ͎4:H:AswRX|;>;aƒ-0^BRLaÁS (oT_F-aԎ}Ўph 9AǏ%ET?/f_;8!?y}j?l?`#^?J\@'7L)HCALY)(PKԋ+5;ejre/lib/ext/mlibwrapper_jai.jarUT EEUx +\-i۶m۶m۶5m۶m۶}=뜍saOIzے7R@n1X?2"4t?W"?lm,# +!*L+#WHJŒ !Mh&ő(udw-Zm{;Q> ?QdI'^H!Esε< D;\Fv $$0I?#jSW;g mC7hEzYXPv5I>/ zM)6S+ aK^nk9/p\&Ò{SWLw((-ր,A( GsrE9ƓVHK?X!䇜H45klmCJi[/.<Cyi[</_IHIr9RIJd3A^:hDgACd^kz񪠇R i1 wr. FOscLၖ,qm +9%+73;Ge7UK2TdH.g;a 9xZL$7W{OcϸA!ЋdZK]Pq6|ruV7}-%Z8tNeڣ }`{^w"PC('2(vzgV(F^F;nBTg逽CuGYP'saK~HR l,X,ffj96;y- :u|j1b>LR|oXձ0T?ՄC.|Z Z|gP(Ŕ5y&T@ⶸ7_Ԃ*ߡR|<)6ێ+iT8yՑn +E@>Lq;؏I򵐡 gh +Tj<[ c|'muG/." IOtD!ȯO,Vd3^+WCAAG9(L]9z=qFgB_+2ZQ^ \a6 Iɗa8|.~.B7dD +CpՌŠHfbPCn1Tx;e+ ~Hkroe/6VtUړtk9Na㯨nWuËYCӼWlK85OGnf>z.L>nfP0@;@@XX[8ֈ{v WPM Bv-^׫a GӿV@P#@yeuwPUv& ãL3fGvD bw}_GkWX̝7VGujopmR=#?dm~$\ӝ#=d;&&}3|B]d˰}n끖/;,m_w0YY=-7o8[^#@1hވw_8Woa4ϱW6ʲnT`'J_!dTŠHB:?~vKn@Zd}$/-DfT)N< _;eH_U~ =}24]ę}BPݛaweT,V6^QE|M %F00&tpu<]jr* 9|)1R4;>. +sNf=3d6eFP4P/WLʴ`vØz/M<컧+.PiPj^!v/̲t5Mbp|iu&uEͿ}[SpŧLrt}{ɈBN4Bf$r\@X| e _M3-4*gߥb i M(߬g%?/uIZY)M!nz+MF]z"kJkj )l9`C"SZ+xUEH$UdR f0> 3ɢ"Q^3vs%{~>$l^k3%4DK 0AjV1h3 PG +U %ٴ]|8\<8ϙϝTƫwǻSMLA 6^uⱀٱ +P,rQ/z!`+w?SI~&N~/a +R(i:>1_"? bpqM!ij#Dh-RKCAPBwdR~c=M63xt;}##\Zk31sC$ (6^4tuVɾMB1}!G2ЈmR[[Hd>NYVXf5t\T zE`nƻ@jE#z^~MWH%N.  60PC3 !ߥ$(y]3My6Z:xR>ϤSaFb'[';_!ju잏E8Ȫ{؆'  |V6Gn0Uk*v2L rE3Bl!LҧE)z7A6hcD)C(Q +MzJ"-by͵6#xj~udw6gIĴhZ$tvD> ;58֗3QAM U,'T'CKt~Jb+zha!F +57tcot]WW02Vԓ,#Ph)P!|(3lJX*y1:-`tڙҼN?Hk}%Hi.EKuED6AV*0,UmczCn,J =kE.ޡ= {b[|.0і). +}A,Nk{s,GG5kcѶ`TE{54u{G(] +]ۨk(-_^2axA4=۵8W=7W>G P͋G2p*`f +. +^G̿ȸ΍ b&gMXjĘԹp'uԀZBۃ/܇- *hPC̔ZVFШsGtx};DI + Vi6 \;wԍǜs\a3F +_>(F'Gl#䒬aj78*g4N8ߞ𹐋EfSK?ٿlZ]k!AB;d=&[l/ B1{!A։6EMFͧl‰+.3Ⱥ۽͕ۑ]Ѱwro6l0e yХCttzPR0 Pùj!|K1:QBs:J܈yvg<$P$wh]hpT#%.Ebд6֑< ;k.h{2 'v;=|fH +D|;B3B#V%Ul[G%#{eX4x$ bh-ͩA/y8,\2 +*Žb ڰ=qzf +dҔ:.3!n_YjR@4Ń Nخ f4-yks֏ YZOz7F&MxG:0+B)gl^u?ե Bj;<'SAmH+4[ӝi ֑$!+uVsZ3.*\ bP-M2[E_&[Y{.ݺ3U\ڻ2df2D[Oط,(9Ų:̿)8^apZ놣Iyk."P@0B1?{=. &rԇ4cvyl!&>:rNrͲJoX12dG-<,z<LKSieHjtk­\)5T%+Ii=K_= PHg]3siE1 )r73FN0[+&nH-_s +O1PsB1za0,4L*^j:ed=!/d"o`)/5ݻ$O]ԛh7adjJQb}>ZBz!9V/W1ⲓs2,Df;&.Nfx#fb.m`;^W_nu[hmU!4RF{]8T ;+w]qXv$ӎ3ZyH9+ k%96FKYq/'͢GL'_JlFWy[Ie tܲ +Rqejn12dJ=O-!}k- +[.JS|c\kD1\-Yzܧ& an;Jkbɨ:Iw%c6(*NM;޴.ft?241 +lƒzys)~cG=rj}} +-I$_ҫjV?zQªZylpfN4BcN(/|#K|4](]@-EM1˚|l/Z.dv!m7})ڪg:+T:ۋw.\VqN;*A )>vv7'G7Xh-bo!PkCI޿,&%T% zY򟢻: M?Mn9D*͊A{6Us}uW̧<5M:HP}Ek(wM X9-rShK|_L[9xZ]bϧь;R$a*k'Jt:|<G\Av#o.Puhc%Ԕj\‚<[E~$@1wbzV8n֍XfyN)eД0R6:MNZTTY/. cy65>^cm': 6[DlIY_?W\rRf;akĺJ-8xsڂz4Ywtiy5>_#OV +5ݫz:1_MãJaZDuVl%^lւZqzCr.?x>9:³Ģ24/_~ê(QoNo07M a:8HAqmKD:oqfoA6 +Ɖ,'3js]Q RppS性=نHpf/0BЏ +Δ$`/P(sh;N&<9G8(&C&;9_ >k\d(W3|4pƹ־hh77I`=7~57ʶUo+=7~d}]'}===h?/?7Vp^7~>/QP;3o;=9]7YwY]'}O >C_߼9<䏿sOfȟ<NpPwt|oixA_Vq?{dwI~topwqѹޒO#MsL(_Y{ o"t[_& ?)\>*zAL@=o40_q "wz 2w p|_pQagxPzw| >gdwJ#L~o_wjwVoIK .VQn (pa45r4/&/&aĥĘI[;fL>Yӝ#=TH8vLndQ㜕q[N=-0L`=ڌ;-&k~-e~+TΙl>Wr'=؋7+R/mw}o Lǫ-,I3IGWtr)>=a㜻9VxJ1_Hqo%Jڹ3?oJJЭЄD1QӂQlu9nljќ= $c0P~E"sF) ŷ46q8tb\N{$ܠnP#nu7;G`Pvn&{zć;vUTU<>_E}ש.شb'uGnq u&i ᰋƺd>Te$Zy3L50h+z3?#`%рSHI7lglJwSm ;[ ApXf\{#upY$ezFI)#@rḻgz_2IBvNN#Kyl3g4ID+"~G5xtlmNug_-lh({`>%z>o5}NP30_8˦(Ia-(\7Ot2c*ި~&($!<ȓa3Jz f@ۅ\jAr<,>sY;5ˤS!ֶ#!a c5=zc +&,e9hT]2Bdv{,ॷZ9dӚI%)2TpUM217Er۳Ǩ*ojNaF{'YIT3rLPsqK1;d)';_5==GiI).T^2uو}}ooT_Z:I ?9 }&!dőe6ᒓL֝޾5m4"q]vGHgFV*йL+%$1׼9 OD}Uԫ)Wlqr7pr&4`cv8g͉&g~QigC}Ho=* +y{ȱ3g+ejbgFu|v'o:ƌ[>^,7igso7w k*U/RiufJ `$B Z5mQ*$Uyr$JO-y T|N\2A .n 9IoTwE?`t}$=oh:Izt#nz??\ +, +)"_q0 "&`e |`%Iϓxrܞ +Og,>{eӪmUߏg&&p)Vm7f?(!-70Zr5zD v 8:9e=q[ enCSUrY 6ZqԂó(Gp+X K~]$b'isڃX56 +9ZsۉH}BM)*=ȇt)xYۈ0uz]C=#wt8X9#gtѡQzV_h6]uGr큡LJމvmD *eg=?i +/'y#GNuGΝ@BϟNC9%?`@;˛ޓC=6xL%őmƃ30/;9LBV1_] B0t%Ctv]ͰUle7(.C`1y'gYMeAx. 夒>h%?B!BUJ]թ˄9rJe*իe{VyFCE& ѻbxE{EENf$,k+#jgR%eWUjoWR$gZ\]_pܗ_5%6W8p޲F Is޳Nv2 +P +cCO<{V~Nr{*9;Zؚ9;ٛ8:[8/Ym;}Ržl. i{@f}L{ !?ߒuje^ ޞu3>Esryl!LwY؜ +*N3+{W {]  qA6>HFW)WYOzRAK!RUHlj,1&b/XyLB&a gu'Hԋ BS`\!8{^>zZU3:K ~2)8\^hB`hhuN8ex~H>Wg!_Vӻ")izk0j,rPvxT;ۡDo]!yl`ӄ'<#'ctމ;p΃5-*qђIFGSa/\GoF/fC\iuÀʳIS[-cԯݎV/O6hv%^7^'_Ls;̿Wf_c/#.Z)w*h6n!ɐ[d%HH΅EԁG-^}] dfY~NE eA2#)z &HBZ,\:E08b WZ֜f/E Kj>jDB/;WFhb?Xz|l-_'ܐ  K Tk+-]5FV19nDy#pMֻ*_UA_.l.؁w.%=*˺>Sk3JE;z6zKTܿs.kWj)-/h@lI݀'X]^BV`Ey)rI1p T- rrE`Y}& @AWnd*=tjS$S:yvPǜP]tq)4b:1yQi8cgf\';,qymdv#jҠthq4tگT}TarhӓuzIc{~c$i],Hl%iab%ivhd-t2x%uHor^ͺvEAڨ-\Կ& +W# ؤZ! j&qI=[eG RQQ",P Vbke5ZO6X :r<4^K:cL1ȯ1V47v./C[W(#RVd"NgN %o4lMTUTJ?+L6\th"g1u=nx2^Z&|+8Ջ{Vg0/!/3 a lPsI9$&I|q/zȣT8*&gQ[C1xK1诪[t/@RFpEOCKx(:8]hWdCB9FZNU[mkP-+*O2+64<;4.\04׻He\KKPb!j m) \ffGOL!1\Ln&NHtuxlKwI?N˜--~}6[3TS $_YQIWb:5Pa2D6 xW6fO k s t#KRUƎ0IA`XoDI2ҬLQ[h㼤rΐYJBZ`pM`~z<tΪ~8}|O@z&fvPu-@%m3D3'B&qm +_ɲ0JwEsDn\]G<] +YZz{@gb!r!ҤL=vRG>,5u€"P64$zZ:zzjlL#%k":(R- +m\u(9O3G 0K|4[LXPLIbUL0@<&Os5(̗_G b[/dѡq9uP8Sh=w=OI^hg04E5"daqm1UF 9tiC7k#[)dӹxyH*4K/ 62Misd샡unL#|p?pZ)`\gS3T'JyYYdCr%GuKnITҦJ>>y- C&2UU]F*B4..ۈ "cF|uh >AXA 4.M#T>ص 1zwdQ#r!<1F$>4z-nrATKCFk!hJ+b!]B3U{TϡeVlK,'FOXoYؒMp(&K +t4Txf> +>aAi>ڗW:޾v7/sFqބyyRX0+~|pU?l ]TIocoYrĠ߻)8MK&)·L}E\Hzw_W XnZ۴۬Ym{ uX iEG݇MywCw3 ܤ)$u3e˔_ m/eͣpxG&ʓp ILHiTi.S/n>Chk&Lq+J:S,+SWx:č#^Cv ?,OlϭhqN.:'ǭ|Hx ox)6q8hL2qsnNF}ܙԄ j +MDgs Ĝ!oJHJ\0lKT,Kx5싥j0قgpQœLVo[;RiYŹ ֵ!>w% +)>7LJqfקt ѰKM.};7rL[J1#dxޘCyo4`,6} J)ê5Uc4FC#c6ժmqژo9K]Shti%.(o‖#Uu'HcϪBUmwt3I] XWbbl٫EXaf#̙M|7{1 +?2EbgGG;9Y+}~U"]ڷ9 ]%1$Eμr@k qߊ>Xu v +<͂߼+wEjuvaךT36,pD6lkrwu_H1y㿽 X܌ ˘dA6nPR1'S(qEb{Wt$8][Stq[ plJ°#Y`_Aq l羾uaE(}ȓK;kn<|\M&F&UsDY^q\gRq;}}} [f2x>û(i J]:w-"^q)펻/;ɝķ9h(a pآH 0T K{rN-Vd"S6,j,e "ת=~'Lk +_7m6{Jn._q.B+H65ꕜ'NkXA2z.=6w(];m-9Xf--~xWM;dA4 9 9\#$UUD&Ð0b&rZI۰-$2}="Urڂ=evʎrO0b1vr[ Edubu#Dz_v" Y\g}mΐ@;O+~Xy4C;,W mK*F?ܯk.K !$-QnzmS[zt `Bqp;#&T2zU +YV_anbi +6* "o0@t~,-Muo%QU d +:լc)^Blkt4h01 P0nPpt"P;hJRn K7"FpL>EHlRRS#ǂʔN phT&mq)_z,mB$ %|{qW-2^g+8g&a=.7]&5Q4S[=dݘc)g8exqRn-i ?u4¥ιbj70!z-5e!gVב >: +gXב r<[5e(il(ϢT~\vQ>)g8 +jEgZq`\/<6Z̽*ʼb!z]X[n6~/ tYapVz*嘆ʺC[|#ف꜏[F;;pvd2smx{/??-ߋe~x[q?e-b +K~|#d )tELbWFۿ ~.E^Ci-\'"sCX?7cziQIid ]Q$knŸƻ] +u +\ a7/7~|.s0YsMbKi\O^%x.Y $jKtg|%: ;iUoEW'/xE6UB=>tC|ںlB㨗 \jWyթ@k-~@-5|Pŵ.9h@J=ñ(] v]\jPF^h~Ģ"-}ԣ⋖E@?)Y<-Ow^8ʼnjP8X]\X?r=/n5KS8 | ,S 4Eefc߂M i6Ůw)Yel^܇YMv@[viv/Aք]\|2x'6L.ִﮆEhm =+LvmK#4SNh1L ĺWH< YD}'Sr1QUPMlA+ؖyܵj|Vd"ٵ&~g$j%t}ƶ}R#Ly`|& /Kt~g^2=`nJjd_J`j^\67!_ ަ^ٷIb;_.^9b b쮪g^rDٻ +EصACiaRrg19oS^jAɠ۩+=gmM'G.U2yedbg::r5z6R(׶r ^4.9?>z<3_S-fdش9>hm3m\^̒Tdxͫh% }e}EF11l%+% HsS4.Hb7OWsVB[bc1|t/t^[rQݱK޳6RvWiQ6bfW$O"Gmqr.72Y6S&f.}vWS\wʻ%jCAjPH%24K(g]4mA+Zf ܑ\I J|.<^0nDTLAKnēv .:n1ɾ}iG=ӾznbfǕc~ϫ7ܒiBz\HsHKuC{e⸩%E=#ʃu݉z݉{)*]%+\øyjt߻0BxҰPZ87,D8PԇvA^n3/7kG-rdNvO` !@|xD:#"9JI|-\I""ŗ)jWm;62O/7MSgmm3`=՘"-[qqٴeڝ@rr+7M+G|k~\G+nTXk4?7au!a"]o8سZuo3Q(E})ݾ̷ n?w~oTkp^U/Ъf Uo.Ԁ p2&-pZ%mܰ,Hj@IX"Cv0 Q҆ji҂P1L +G 0R1m#[SCF `pF +1Wl'y +h1،^!) +!0v[E].Q'h~ۉi,aRQ'U&.""'536`g *vg鐔k+kHv`o+ +/ \Ţ!~,#skyC%~*X>)GMqEїmR);FNQs``S3 ):0k6BgU2jDNs^䵃e<4"ܦ˰ТhB;Wz^U8˪=휿eѶqdu@G}3a<4j 6ZYd!ƪt~PDػwizPnPAXf%AxB΢N Ԡb$.1gsq֍8qb ʘʄdQ7jnW6.o@ڱ&x܍Q{ouP{ݎx OK=kk(&{S;[rlcMJBLt>3o+}GA#NԛkdWT ӅgE90<* 0/ 0bQs 2`Tx>@1,qr7/,NoŢD1zMl+5 +KP +C`B\69hYtڡ_ YޥOWn +5|Q[m`]kX'].Z1}M%3ո`reYTk4 LVȰվ⮬n-HŦ6>BeeVe(3heT yd!GzVO0a-Uڌ& /,XDL 8"A +.Lf &D:a6PAĬEK1pe [`O&4_Kt|G~ڿ\U^RKqp7f  NPiI/>d,l}FJYz|ؘ5p8ӫj$o81vAi"x~;UE>2oNY&\$ J Td쐞jN1 rn2FS_bZa1CQAFmɪK7: vؠx띃22X+aj{_YMfYezsZU>ځFV)\\wfff0!jX\:Q1q`Z=t0q/8L,DxGB6v"y Ӓ^!ŶCvy浬5KKwE +ub=mʁgF/']ی]]&Ǧy|SułֳUV̿͵VuZs{<(,+ K5-lx֍qR+Yp$6J=IUIP :3 )NY RQJD]:цֶ׀_:=V.QRrM4RWӻ : +8בjjРEQ5.\\JorNq[;6= 0xt.d. +/.\\&YVե)j;.0܅ f|-i2㝷}ٷ%Y![ sY1LJJk/Ї0O3o`DmRF348k~џ?9m$NغWiVH(U]R (c 8@9 k]V4&$ d6;fr3FJ xsa63OBOBdnj uLB1W^3nGѠ)7W,ww;$Fd5T.{iJ槝Xt˯MNB Db6c"&~zā\VµUBd1R84faEt +~##tJ%Ix #F% %I g] #Bq , +Dd3𑚬 I$k$׋xsƃGɦrdEC7,3uJn푅`;$"]E{hKPF1SS#: N J2! B@rPURۃ@8@ȝ=E@ ~E}UCa_nLWE('jn0#ڷ&͢ nL7g߄( WMQfqG-m|;-T!%n&A"vnF^xD7isxy0A%*)šE@&rW)v#+SȿXh פ%D%-8+g&')L$N/ +QQ ~UeHmHtTN}d&^ QY faQGWq&>] l&xw/ +{yT)$V $T@*^*<Ϗ7QB]Z EڋYXDS^k*:{x-ר^s-bh$$*/;BP7=4>}/ նo' ;4:sZW68BSg1k 6nl^ )4~08, [eB 4.~c>㣣$xA ςկSo>Xt *; ҅Ud4 L1ҚO> &fmz2m!]{AZ(hWa )U߫WMKM%nJ׵ӥ)q>s: +auBR OVFT=l>G_B_- b_†D{Dq}vYM6]d6tHtHY^еcb8}%pp(lDM ̡,5V((O椗<UJ fq*Dhm +8RX,z@N; 3X&}e%AO"\1`Xe>v'+L)T"sx# azMl]f}ڊsh=RS$X&q?F~]gn8K讃Vh{4taBtB6՝fg(ˋiЛi=pVdgm!%]\O]]僒 (h1{w)"x3(Tdyʇkr_X+љ<DP | +~G6!ClFZjV~hW +E񦝗ɖi4q@Z1(7z +z2[āzp2"1 ,ڜy.͏06~|&f犡f5;`;LW#۞Hw +{Ngv38LAv0c6n+,9tz~cƈ_j4mwEj6:Z$S(t|/t<B«(*HF+NyRT;ZU/fAB`_GSC,çY:+.<8|hmς5nG+,#L4[Ν3r{@u>ڟֹ8`]m/k=5(P> +^$-tVzRּxT﫮Ul*X=5W>< +uX'y "\(ȷ'\?]3'# xY ӗ: IPnA؅ ^wEYV/#i{]RpF Lr`Gcd[@6gxc)T^bR +Մ." +n1X $RC#$ Sķ -!2 $W@G&`'Kjf= PHEZѐ[>^YC[![^P{bɅz $`2^ "Q!G\Q!|$H T +_ ]*'5 +@"Aj1< }Psl\# u T]iAMjH|A˂J&@nI]r2"!Rṣf%k"XOﲣX'TEbۊ#U7ƫC鶉j/+mw-Fpc>;R297?}P +xx~4D=~Tu:{yPuX j뀅ykf<%t!p0\寰M2q +( +@Vltb$aj"Y[GC{H}: +feUl53Hf>̓LX'e gPـ4W_a:1>Fe4'd44d[ҚiȿK*1t.={ +m{hnB6m\噰!8;B,Q#ö!1Cfpf Q+v[|Z;پ^? fG0JCf# E:Vؼ@QISP5ǯ^p!?* "f7%Iė!g*Z*ؖZ8G,I'0 ̑t4g/DK}\\!ν!>?,畋<瓀F\̕KW\HcLnT)I"fWIŘʨ㍃6CKHd{V#:rUwMK!LZ26Msv;ɑፙ>=KE8JGN+({9ngq OI}g|D]OFX8&y.XL.Aծ_욨tdyATȰJuS+ҲW 7-FrI56(! zxvீ}P +\>KBx8Pp@c['v:GSA8|A2l^bF$`9I)|&E9dtj&Ff`$WqkOE{\YaV{OŸvj5]mٙ WTXJԙh_n`A-(qy>EG, W!&hZ}PC{w0nќ q;LDyA2 1&n6KFkm#JvY"zjv1=3MmRpxI4U-$$3Hzpy3u1!N#JP.P:ei8Pz ++,nnj6JvzlE#}]諳5%tH6Zfhu44EnWf} :rBѕ!fx?ՀDZ + ʣ8J.Fh(lV(Z"%bXuMu&)a,]'G' {C! x?`< {|s&rū+E;N3^uYogId@."#%| ~%J&ɐ0K.@3&*Ig&A5D$]hHAj +j +ޔlau)5yI1}e$YMXeHpfy3nĽLĕDȐ C:̌Nk/z@?B]eWr/v LL7dB^xxJǔh#, AzmnBEe:J 'BOOV" ++Nр;Uo@020dEg _y&hKS'hX3eCp>^@pKli%(:}Q$9w(0d?@m?3ɓ'tPP h`cOz>ޟ۵y:G2sGzO'a܊p/N ",3x"xmSU 3|aii XchiְhHDюHp 89YIͬ~ZTn-Mn%;Q:b s'5o$9 :FYFo> A0eȡLg=6ds6<5i X6kV!M?t'1"|^#^ WUcC^rߝ.tN]R[ɜgi=߱)6D*߬_ԓuKz6ڙ#7 C.0j“K.,[V-AW_W~fW޴N7Tk =.Ƙ#aGuA-Iu=`uSgK̷H.wt '[\8Pm''I9G"Zvp>V؝;+7/,)Wm;4G/t>)Gw k`+^Ѝ^ҍA8'[O9t,CROדj^=w :wH1F8~OKGqCOVg~WѢkJ@*Jf JpI&֘Z5pg\ 0dki\ª5gQrX +w u&^3dXc7՞ PZ7W@z7W>׺cOZ$)PU:4퀒3cӫn57@9.KɈb%߰˟z]ξ&0q2d W:pl b- Ôp=a}&pLL %TVKtīdc|k)|m)|)ySrd5 cuJB _ҭg؅ +l)>fPþ/Ԇi)QujBur0W։2 V,icN,ER L[ڕ*)c[t Ljfä8&8&92_**͎LԐNd=d6"Y$ra%wlnR %mzŷ' Ij)^Uܖn1 +Qٚ0Lg2#~ްy 4m\ۘp6dEz3nI)p/U}l/u3gnBo}A`+"p;OL]>+P58a00< $1_u~ؤC~,SDqH*c1Κ$a|SL-B;;! O 6viTyLC';nНG@)3X];ܧ/[ SnA#o?t&OUCɱi 9tGA:c.] +RoBx#|bb1JF.}gSrޱw.iƭ<@rg0{<{ }J;ν&rֿ`|a{N)jERyz5$.UP}bGjSpOkXм<9G3h}ö0}t=Xq2M$L ){~Jj!HOLF]a9gpw{_{sC3Dl͕.eU]u-'sԙv^:bN;L;Z%7^:-HX[i݆a@AGA @A~<>CۏSo|mE=a> M{#9 }}g*_GjUQԨ!k=5`.09Rȡk:);My_|fP +伔y,: #$"X5cb{ABB>Βck@{r &7saHrN<ܷlR@z?R Yz9|nG%ؘ:ĸlC;LsYYxˆ^_sʑfiȂ(#gv}៹B#' 5Of&9d/PP>p#>A|0>`_t|4r4tdxduiVkŃЯujbEAűwKzjd$!O~\4(Hłt( NņKaDDŌ M8 0_$FF$,=d1euSEWpTɦS<˃_RF~9)KQfI$-dZ[M /]&ٌvE\ +S[;I~IgXGp4 [&ac\lvu +$T֌Cעi7Ġƺ{GiɣUZLVil$x^\K:b0r^l& ;+>Yb-]rujHNnj3ۤ"sWAW.~. ] B9Kjv88K=-Ԫo~0tN zyj7փ,u5_+'x6yZbhێP‚6vDN?lZ6|_-_Z6rLLξ>ؽ|(pnp_is;FwD &(:pT|HOXtQ: +B^Nu`EA^:_]o cA.wA2`G^<zzzΈ|MwB%?G$AO$w[$@QV&h!AcL0^% 9p@&ݕdAߎSgAMzӅqcJ7P~xd 环_yP,/?HL@g3<ٙ(qI{qiWo['xiQP\^˼~* +뎲xu~Aܒ{M=q3%ST,RG*HBd&Hµ)*dK&aQ'0OdL58.@S7Lϓ&[LN.NR#4mIUk$bV.pD]N2wD-nL4v)ӭіSV]Laql٩˥`k6psضnhHQrOJh~ϬB5HVJ]'DH 8c DTPݼ+\Lf]Ŭ󖍗+JxD`J^6tO10l+V8|\gtE'΁͏u'' uIojdR pQ3*|B-= Dp_B` amg15~*- ު.-uMuEiTⲔT9C/߄vJ40kÚ*v!({4|h̼3D,G엠>x;1!P5紎('J#%) c^z9*%%} 4&sw 5]b{g 4=Dtui|;(d*oX*^Bz] P/5v~t+<]e>tnN1WdC/϶YZ\!U q_F.x2GȐF@'@q0nHxLcB$_uXrE\:Ai&v'jG"V!RWH!9z\>AJPvكgUN,- .w5l Z;j|9jPm-裐^(HBT7Z;b%5^l ?_ ۇaPĞ!:0Eՙ +''eҺxYxR)Ӷ%*OLaY=Ox5rлؤ꤬V| ǤVwSN˗-ƺْB d,Xp0k~?L3PR %ZrT3"D+qȆ˅wUM. 4XhoI>o ^f7)퉮Z-,y^JZ S2TbEB!"|wĐuVH^e#j0 6Epd1n +jYF.S `{$\M/a$LR-ȸT*fPa!- ³. N&7)I<`Fz.\Bs?#'J3J + BG =V}X͒ݬ4-KATURwʥV*K{Jz+*)d`;RZ= +::e.j9.zPH_%1QwU6e޹|1Lȴ̴Lt!~Wk9*B޽AbΪgUg} +~#;g05Uztd!3ED?R"VqUo$.Tqe8TK4 &av'5 ۴N +A&)g\!6XcY!}!u1L}ja*q*?87g2Ry<'9)NEJ +Ӛ1~Ml9j9VJ}s0mOAMG(SJY_JBzdN﹟Ts<׉ +ε*o(KwIFԀU|IǪ*K.ր +Ct5KieeuN` M )-љ[f8fQ#^u镥d/B̪ѯ*+$VcJm2OcNه\K(^O?F_u^<ԟ-~ od0>ϸ! <.:S<ԾsĪc99.VͭUv]r #cMD֊떬<Wb\Yw$B=4 +@3' | ?4]ͶZLyf@1%xF9(~ݛ.Nǒ~p"n!*95<$(ڣ +mw,(v$T[Odգ  ɺ姡sJ~Wz:bIB*+jB7@d60$:{;*'ۆ']P$[IU`턟.MvbB3.sSGc?$,%?UېX I9,vNH_8{p};\2r)'?F=KZVO:o]vC]6]p?[цa %![7 7L>~9.ozp=\}P>OlyPv3+[/LV"rV7trb: ;'hIll(0kbULE^M2 }sh[>WPF 9UX;&I\ׯ H7 }(-[vEB?S?ZjA}'Ir;&w 쀵k6xԃ[L?yw2gՓAO %}A3h&_7.0MJ{HȚ5nߪ[C܁Ww Ծ@6#~ʕ%Yx4c}m(ѾHĘ&ɌtXy[xN(nA躔sQ ro{zX*#r,1[2T93YT/E03l- CC$sVEa gVY*n#(qeQ Xwmf7 +PoQW8Vܲw"z='{%WU^IYK+}v?\4TUuJe""#޷Fzd)߷1?> oь2MNE׎9m}kT"4/6;'mp!?CbN@k7ٖT`pBيr!r2oW~uAf_?jK b̈́R3asdѕ78>l^y>,qU& *53wFݵ~O=3kG HF;$GkuQ-xUG&/f]>R +ۅ75;z@BԒƞBLc/)ZօKR RvqYSFJr֬`QRb?ޚ"p@@Xzw+C;]=9D*i[bd\{[-t V{# +wSN-Uvє&2 ]:,]eROy}Ss JN 7r583)n&Tv 4P触<.a1&n"E+J! dӍ2q?қtvWDTWGnWT2()LSVKʙņ|~B-[mT-bWA\O?*{r O$}oI[:P w .> =\%4Ō} 3^ƕ䈃.D hǥpq35̤%1w9k^i^}b PRDMZtZe˜'Gs|IRKG\F_Z:I6 +D ii1]Fll bPBt[Ftz9qJ%* PMbI8#EJKmͷn)|&On/Vb MP4mաWbQRe~S=*>lKCOj1Jjl:]<hBQP#\j# xmD =i5n_\_]"N^5V 9IZP:ÓT!$(tɼ hNI]8/59c$tmc, mfu:WMndNfq#3[ژa4ɪSȲۂU]$6Ϊ/j(]REɼah+NW8J8Hu zszr#S`>~fAv}zJwRL(m+jJׯ꒐#N& IxN)(5EEf[Y~c(_mۃ@{ +HC%(wASX[SEg*\>+|X58PwoE&L@#J. "m;j=pRs&<{O(;go7HLL>iT(KS,> #i͜ō#%mn[GET0ã[t% `g&&݃h V:X/ia@qun8Єք+[ +Sc֥ӹS+/qI#ږNOS˪h8{*YSB^9 k&ˇO?#Eir~ `Uw]'kݱ:z֮Z9^ lMDZ0JF֕|RxIV^":,AJܽ }VULIC RO "GH[`E -:Yqo N5ȺhvpGm'"-c-$ F sjrsh&i<2xIpl* +!1*jFó>|Jy*G2{ZDs춬X%:`(%4>Dh3-]s2]R5F; Ϫ5Lw ok+$OPztk;}}(InڙG@Ka)˃0pxѹņV:}1ڦDlk؂zI'+A}#bj.бh4TY>高-]HZ؇A+VzWJc7!U-3Z¡޴ڪݝvkF}*cVJBDȕ_cBwD֭Og>[4q .Dgp}w6ZH=j]z<8w)$c.7E|m{H2h&8.5nVuD45rD.Q~9L/"*xpw +EWZED9a,m> $S7TFrw,?EfT/P҇bWrx].لh m8}z>ݬk!6I/{=hW>?p_+Fo0q^yIcD:g:mݑZBczϕ\ɟE0)Ccz6}M8B@ :`{{孮Wdq qr /59T_t ;Eol|)EGWM~L{:7ÐATgUl ؽ]H>uqzx,0F]oP C'|OE010`;p˓љdL HPaCh̾d(9|b1R2o`M_  ICcc쀷Lf!Ka @|;[ ]8e~I9@pErn\|HFb<.c{=`.MY_ !Fm<&%YIό$ +~^PKԋ+5 :s  COPYRIGHT-jai.txtUTEUxPKՋ+5Q! ~DISTRIBUTIONREADME-jai.txtUTEUxPKԋ+5 +[) LICENSE-jai.txtUTEUxPKՋ+5ΒnD  THIRDPARTYLICENSEREADME-jai.txtUTEUxPKՋ+5}"/: UNINSTALL-jaiUTEUxPK +ԋ+5 Avjre/UTEUxPK +ԋ+5 Ajre/lib/UTEUxPK +ԋ+5 Ajre/lib/i386/UTEUxPKԋ+5>o8 ( jre/lib/i386/libmlib_jai.soUTEUxPK +ԋ+5 A[jre/lib/ext/UTEUxPKԋ+5@P<@vW jre/lib/ext/jai_core.jarUTEUxPKԋ+5m"p %1jre/lib/ext/jai_codec.jarUTEUxPKԋ+5;e 4jre/lib/ext/mlibwrapper_jai.jarUTEUxPK o5 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java-jrockit/src/jai.patch1 b/rpms/awips2.core/Installer.java-jrockit/src/jai.patch1 new file mode 100644 index 0000000000..5b51cff4b1 --- /dev/null +++ b/rpms/awips2.core/Installer.java-jrockit/src/jai.patch1 @@ -0,0 +1,49 @@ +*** jai-1_1_3-lib-linux-i586-jdk.bin 2011-09-08 14:03:07.000000000 -0500 +--- jai-1_1_3-lib-linux-i586-jdk.bin.update 2011-09-08 14:04:43.000000000 -0500 +*************** +*** 1,6 **** + #!/bin/sh + PATH=/bin:/usr/bin +! more < $outname + else +! tail -n +139 $0 > $outname + fi + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." +--- 81,89 ---- + outname=install.sfx.$$ + echo "Unpacking..." + if [ "`uname`" = "SunOS" ]; then +! /bin/tail +137 $0 > $outname + else +! tail -n +137 $0 > $outname + fi + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." +*************** +*** 119,126 **** + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +- elif [ `expr "\`uname -m\`" : .*64.*` != '0' ]; then +- ARCH=amd64 # linux-amd64 + else + ARCH=i386 # linux-i586 + fi +--- 119,124 ---- diff --git a/rpms/awips2.core/Installer.java-jrockit/src/jai_imageio-1_1-lib-linux-i586-jdk.bin b/rpms/awips2.core/Installer.java-jrockit/src/jai_imageio-1_1-lib-linux-i586-jdk.bin new file mode 100755 index 0000000000..0c0bfd207d --- /dev/null +++ b/rpms/awips2.core/Installer.java-jrockit/src/jai_imageio-1_1-lib-linux-i586-jdk.bin @@ -0,0 +1,6430 @@ +#!/bin/sh +PATH=/bin:/usr/bin +more < $outname +if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + + sum=`/usr/bin/cksum $outname` + index=1 + for s in $sum + do + case $index in + 1) sum1=$s; + index=2; + ;; + 2) sum2=$s; + index=3; + ;; + esac + done + if expr $sum1 != 2473689263 || expr $sum2 != 1668322 ; then + echo "The download file appears to be corrupted. Please refer" + echo "to the Troubleshooting section of the Installation" + echo "Instructions on the download page for more information." + echo "Please do not attempt to install this archive file." + rm -f $outname + exit 1 + fi +else + echo "Can't find /usr/bin/cksum to do checksum. Continuing anyway." +fi + +if [ `uname` = "SunOS" ]; then + if [ `uname -p` = "sparc" ]; then + ARCH=sparc # solaris-sparc or solaris-sparcv9 + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +elif [ `expr \`uname -m\` : .*64.*` != '0' ]; then + ARCH=amd64 # linux-amd64 +else + ARCH=i386 # linux-i586 +fi +if [ ! -d jre/lib/ext ] || [ ! -d jre/lib/$ARCH ] ; then + echo "This is not a proper JDK directory. Exiting install." + rm -f $outname + exit 1 +fi + +echo "Extracting..." +chmod u+x $outname +./$outname +rm -f $outname +echo "Done." +exit 0 +ELF44 (444H,, /lib/ld-linux.so.2GNU%51 "+3).!04(#,&*' -   +% $/2},;'<@-L~"\=l/@|8;7Wx.̊7܊l7s Vy;^,<L"-D-H-$\EJlD|myVL-L-!s=P̋q܋;h =,7,<!L=4\;el4:P-T-|1G.|= ̌__gmon_start__libc.so.6strcpyioctlchownstdoututime__ctype_bqsortfgetsmemcpyperrormallocisattyfflushlseekchmodstrrchrwritefprintf__deregister_frame_infostdinumasktimezonesignalreadstrncmpstrncpyunlinkfreadsymlinklocaltimetcgetattrstrcmpsprintffclosestderr__xstatexitfopen_IO_putcfileno_IO_stdin_used__libc_start_mainopentzsettcsetattrmkdir__ctype_tolower__register_frame_infoclosefree__timezoneGLIBC_2.1GLIBC_2.0ii ii ,3@-D-H-L-P-+T-,+++++,,, , +, , , , ,$,(,,,0,4,8,<,@,D,H,L,P,T, X,!\,"`,#d,$h,%l,&p,'t,(x,)|,*,-,.,0,1,2,4US[tuv_x[5+%+%+h%+h%+h%+h%+h %,h(%,h0%,h8p% ,h@`%,hHP%,hP@%,hX0%,h` % ,hh%$,hp%(,hx%,,h%0,h%4,h%8,h%<,h%@,h%D,h%H,hp%L,h`%P,hP%T,h@%X,h0%\,h %`,h%d,h%h,h%l,h%p,h%t,h%x,h%|,h %,h(%,h0%,h8p%,h@`%,hHP%,hP@1^PTRhhQVhU=u>PС8uLt h+]ÍvU]ÉULthX-h+]ÍvU]ÐUhLjhLj hLjhLj E hp-E PEPU..E ,.9tz1u1Bu1BuR;M v+,..t&,.(.. 0.E. 9u. +.-V]ÐU1ɉ WVSE E0E8&PXBӃMd$0A^&t-)y1-1<t&-,t&t 1t&-t-1-t-1&-t--1--~&Ej=.t-1Jv-8t-1"-t-1&-t-1-t-)y1-1-t&t--1--^&t-)ȅ}1-1:v-,t&t-1-t-1&-t-1-t-1&-t-1u-i+u^;uY~TF8-ukJvt-)y1-1/-'t-)y1-1-EC}O~8-Z-=-t u(=-ut =-u=-t?=-t6hhhH4PhH4h-E=-~ +-=-tB=-t9hhhH4*PhH4h--=-tju +-}t"E8E 0EP&=-9jhh-jjjh@hH4 PhH4h-Ѓ=-u$=-u=-u=-u =-t.t&.E8E 01e[^_]US]%Phh-jjjh@hH4 PhH4h-Ѕ%PhhhjhhH4PhH4h-Ѕu1 +]]UVSu] -5SVwe[^]ÐUWVSRQu )Nj])MӉʃt[F03F03F03F03F03F03F03F03IuF03IuYZ[^_]ÐUtP4]ÉU WVS=uNhDžt;1ېٸst Hu~Ή=e[^_]ÐU1҉LWVSEEEEEfEEEEfD4D.fEf)P'Eău6hhhH4vPhH4h-E.~APEt+EU;.}MEAM; .|. PE܃ EU;. t&MEAM; .|p ED.jhh4.tthURhhH4ePhH4h-hhhH49PhH4h-EfE JvWÅt].1jfP'Ãt7;]~]~*hhlhHthDPh`1jfPc'Ãt4;]~]~'hhlhHthPhL1jfP'Ãt^;]~]~Qh!hHthPhhH4PhH4h-fE=.tt&,.1t&;t7-PPhJt۾}t+,.M4tf0.t&;t8-PPhRJt1}t+0.EttEfEf}t7}?1fMڃ=D4jh4.7E3fE|Uԋ TUMXEE9U +EMEEI=D.D4D.y%)É)ޅhhpPh@hH4-PhH4h-E}um=tdhh`hH4PhH4h-Ћ MСD48}%)É)ރEv},hhpPh@hH4it&;5|tijVtPc|h PPtPEX hVhtEPCP)ڣXPT))XTjh4.uhWhzMQt&jhh4.hWhEPhhH4\ PhH4h-E}u =u=}hh`hH4PhH4h-ЃtE t&UЉD4y%)É)؅ ;|tVjPtP|h PPtPX  P)٣X TPT))XTjh4.uhWhzEP3jhh4.tEhWhURhhH4 PhH4h-EgSÅt;h!MQh-hH4fPhH4h-Љ]1jfP!Ãt>;]~]~1hh~hHthPh`^&tPz1jfP Ãt7;]~]~*hh~hHthPh=-=-t11VXÃM}U؃utttu߃@@)@PUȉЉ+Eȍ4Eĉ 0uGhh@ hH4PhH4h-Ѓ}ESUċ2PD4Mă@D1 t(EăPRPj1fPQ?R 1u+1fP1fP‹Mĉ+EȉTuM+ETT+}1ɍ=-tUĉLE+NuKjhhHth.PhhH4PhH4h-Ѓ}Eh&t, +t gvt3]=-tT}J=-h=-u.4=-P=-t?=-uhhHth6Ph!hH4PhH4h-ЃT-Pj h9.9 u@jh!hH4NPhH4h-9.N}uE9.8$--vhh!hH4PhH4h-ЃT-Phhq؋M utttu߃@@)P<2 +u0ut&--&j9.Ph!hH4PhH4h-Ѓ3&`- Åt@;]~]=`~/}tEPT}t UR?EYEM9MjEPtP|h PPtPvU TM XEf}}G}EȃPƃu1hh hH4PhH4h-}u +Eĉ=vEU9U}EċMAMU9|hjMQVuEE9EFvU{tm1fCP1fCPPtMhP1fCP1fCPh hH4( PhH4h-Ѓ}uECPPt?hPh!hH4PhH4h-Ѓ}uE1fCPPt?hPh@!hH4{PhH4h-Ѓ}uEPEM9MVEP}twETvME<uBj,.PhhH4PhH4h-Ѓ}E EU;.|MQD}tpEMUM܃<u8h0.PhhH4`PhH4h-ЃEE;.|UR=-h-}t0jpP}uPh"hH4ujpPh@"hH4]=.t&f}ujpPh#hH4.juPRpPh@#hH4[ PhH4h-Ѓf}jf}uP1fEPh#hH4PhH4h-Au=}u7jpPh@"hH4PhH4h-Ѕu]}WE f}t]EQTjhh@hH4|PhH4h-и"t&3f}t }uEEe[^_]UD4 B$ȈB D4ffQ$ˆQ D4$QˆQD4BD4B-t +t+vD4`&t& D4Q$ˆQ D4H=4 *=-1hjjЍf(1P1PhthHth +PhhH4 PhH4h-=-#=-hhHth& +Ph"hH4PhH4h-ЃT-Pj h9.)9. =Xh PPtPƒXuXv}n|&hЉуtzt8(t1@8(t,@8(t'@utttu߃@@)PRh-=jP| T .9~6} + . .T‰X)£X +X) .T X%T]ÉU WVS} WEPLPL=-}u=`t +2dD4@uN=-u7WEP|PP9=-jWEP}t +55=dthd]; +u +=htChE9sSt& u) +HA9uh,t&{ +u"C& +u  + tAC9r9vV)=-u9SV|PP9t <!=-tjSVh-1e[^_]ÍvUWVSE ]E}؋uENUt@u H-E D-UE@t#u t Uz +t EC +@EU uzEPj +UR EtI@tCju2jt!H-Pj +H-P4 LJ6:G,(> +P1w,uj+]CSEPUR_P69%EPLJVUjh'W8Ѓ F;ui+]SEPURP9%EP*Utf@t`juOj~t>SEPH-PqPH9%u%H-PUz +ƒ1e[^_]UVSuuhCH-PAPE PH-P%H-PG Et.j8à t) +t$ tqtQut&j8Ãh'H-PH-P1҃ ڡP-DPt%=w@- u t&F> tFӀ>u} uID4@ tt u3=2u*:t}B:uH45>1<u^C[/&<u"F< +uF< u~ +u FFCC-H4=wtBjH4PhH4h-Ѓt"=.tjh'h-ЃF>ajH4ShH4h-Ѓ}~ +}lj@jhH4h-fEvEhh&hH4PhH4h-f}EWhD4@ tt u-=2u$р=t}A9uD4@tQӀ=tC P-M@-E쐉 BEDHt=wE C;uD4@ tv=.uBBuf}Ih1hHthiPh~hH4PhH4h-f}5| PM)Ћ T+MЉy)Ӊ)څ}:jhh@hH4MPhH4h-и9) X]Tbt PW~hWh&hH4PhH4h-Ћ5| PM)Ћ T+MЉy)Ӄ)څ}>jhh@hH4QPhH4h-и9tOjRtP7|h PPtPX~8P)ڣXT-) X]TWPu 3t&Ee[^_]ÍvUWVS}}P-E@-UËEDXt=wEދU ‹EDPt=wE 9ue9taEDXt=wE ًEDPt=wE 9|9} t&?t GE M.1[^_]ÉUE1]ÉU]UjpPtu9hpPh@&hH48PhH4h-и1]ÉUX~ .~, .‰X)‰Tt&=X} +X]ÐU .9X~8} + . .T‰X)£X X) .]ÍvUS]/u@h!hEh`'hH4 PhH4h-Ѓjt& u;h!hOh`'hH4PhH4h-Ѓj=PtEPhH4kt&jURhH4uE} XxT%T t&s ǃvĉD;SrZ Bs3w> XxT%T t& ǃvĉD;rBs XxT%T t&CR ǃvĉD ;#r +t$t&BsDž9P +=d)PRh(hp(hQP0u +DžtDu0=-ujjhh-ЃP` %h)PPh()h(jRP uCv7=-ujjhh-ЃPu +DžtPYPPPP|u,PRPC1v[^_]ÍvUVS5u7 XxT%T ƅtɉEKw: XxT%T t&CtV ƃvȉ5u K1t&u K!t&tt&[^]ÉU|WVSu\Džl} v lU1󫉵X} ,t&XXOuE 9EuU1M t&}u,Cw<t`E 9sM }u,Ot<th9vE 8DžDӥD;hs*,)Dx+DCɉD9r,)Dy +D, +1ۍE0Xhtx|(8OtXXOu狽01 󫉵X1(0vXXt<2G;} rҋ(810\U tXDždxH8T@h9`u`,K40d\H9`jd Hh@HM )@ d@9vƋ`Dž+Hpى@ӥ@9vep,)4C9sB҉9v+t&)C9s9wڋH;lvl9Hs+HDž@ӥ@ \@PyTu"dt8P@@TUTTMB8u&REPWV1G?u߸'[o?E-1%;uP-U@-Uu \u +-u +1ɊN}t+1ҋEDPt=wE 1ۊ~-tg1҉ȊuЉ9wUU}t6UDJt=wE9t &9u }t$A;Mv11F;u,}uGF\u 1ɊF}t51ҡP-DPt =w +@- }t?1ҡP-DPt=w +@-9t&19u Gq1e[^_]UUM EPRQ6%]ÍvUU:t/<\u ztBX YP)ڣXPT))XTjh4.tjhh4.赠tRhhpPh+hH4菡PhH4h-ЃtPly)Ӊ)څ}8jhh@hH4PhH4h-и;|tUjRtP|h PPtPX  3MP)ڣXPT))XTm9~ރtPce[^]U,WVSEux= jjtPCxPPPtP)X ;x\PDT9ET8PujhPž TP9TsvPT)‰)XE…})Ӄ)jPtPi|SPPtPOX 9P)ލDT9r8T8PujhPG TP9TsȃjPPP蚞 ))ޣ|}?Ǿ }9||jPtP|h PPtPcX = P^T9rRT8Pu5jhPuPT)‰)XE TP9TsjPPP莝}9}=-u =-t5hpPhhH4`PhH4h-Ѓhh`+hH41PhH4h-иPT)‰)XPT)ƒ|.jEPEPfEPf EP}fEPkf EPvEPe EP1f.13e[^_]UD4=w1B D4`=-tD4@ w$D4HD4t%B tt + tuJ D4`b1]ÉU8Ej*P,1EԃEբE֢EעEPfEP f EPfEPf EPEP EPEPf EPfEPrf EP]fEPKf EPVEPE1 t&3]ÍvU(EjPu +3EE墝EPfEPf EPfEPf EPEP EPxEPGf EP2f .$.tD4P@ .1]ÉUWVS}u EEt1t&UX$wUTtt&UxsEE}^}T1G EEt-}v#GP_UB &e}Et$Z;]w;PUeEB;EwPUBt&e&}u EE}v}I&}vn}uh}t*GPUGPyU BM} v2}t,G P4UfGP"U fBME|)ƃv21WfÃGP1҃ fFU9Ee[^_]ÍvUjjY=HtHtP4tPt PPt PP]ÐUS1f=th-u]=-uT=-uK1jfPt1hh+hH4•PhH4h-Љ؋]]ÐUEPhTj3uf}t 1fE]ÉUPVSuċ]VSReVjS袓e[^]ÐUDSt,]SPMSjPe]]UPVSuăVEPܔEڊ]ۈEEEeVjEPE jEPEP諔Eˆ]ۈEڀM +VjEPߒeE[^]ÐUWV1S1UD4@ t +N1=-tt .|-1t=/%-jjg +u +Eƅ=-tj/hƃu +FtCDž/twtLZ;t5SvjP17;_-Džt&P-DP@uB~wC1ҊF\=-u/t+1_GP-DBtC1DBu;uutttu߃@@x/jV=|-tn=-u-jVh@hH4+PhH4h-ЃD4f@% PVvt h`Mc\u1jVhhH4趑PhH4h-и"jP!jV[^_]ÍvUSE Mx-1ۈx-Px-PAut-x-)=~hRj軏= .ut-Py,vtLjt-PhhH4讐PhH4h-Сt-P+t&ht-PuIjht-Ph hH4EPhH4h-Сt-Pu|-`%=@tOjht-PhhH4ߏPhH4h-Сt-P\tLjt-PhhH4莏PhH4h-Сt-P t&x-/x-x-1vu;t-PQXt-P跎x-t-1Yu<x-Atx-Bx-+t-=BAuuЋutttu߃@@)+@Pƒt-u + +=+~%=-up-PRi+t- t-t-x-uh=+p-P蕍t&x-ht-PhhhH4čPhH4h-иc]]UWVS=x,5FPÃ|P褌 h: h?|tPVjSًǃ9tWhhh@ hH4PhH4h-Ѓt S菌|P<|P h jShe hH4袌PhH4h-ЃhSߋ thl {S|P茋t%EP]S1jfPR! 1}u 1fP1fPþEuEE=-]1fCP1fEPhHtr=-t/h1hfCP1fEPh hH4n %h1fCP1fEPh hH4GPhH4h-ЃWhtM=-thhh +hh" +hH4PhH4h-ЃD4f@%Ph1t h= +譈e[^_]ÍvUSD4P w,$\ +1Yeڍ"؃u Éڍ $ ډQjBS:D4!X1]]ÐUS+=+t Ѓ;u[]ÉU]ÐUS[([??-xCďp `P0HPБ@XMcentrallseekEOFlocalwarning-sppppppppppppPppppppppppppppppppppppppppppppppppppppVMSPK[empty] [text] [binary]testlink +extractinflat%-22s OK +׃Ѫ++++--+-+++---+i++_̯յݯ=wb +bus errorsegmentation violation;Zx0N[ %s ] +`*(incomplete l-tree) (incomplete d-tree)  + %sEmpty zipfile. +[%s] + creating: %s +chmod (directory attributes) errormapname: conversion of %s failed +checkdir error: path too long: %s +checkdir error: can't create %s + unable to process %s. +checkdir error: %s exists but is not directory + unable to process %s. +checkdir warning: path too long; truncating + %s + -> %s +rbwarning: symbolic link (%s) failed +-> %s symlink errorwarning: can't set UID %d and/or GID %d for %s + (warning) can't set UID %d and/or GID %dwarning: can't set times for %s + (warning) can't set timeschmod (file attributes) errorT@00TTTTTTTT+31 May 1997error: expected central file header signature not found (file #%u). +error [%s]: attempt to seek before beginning of zipfile +%scaution: filename not matched: %s +caution: excluded filename not matched: %s + (please check that you have transferred or created the zipfile in the + appropriate BINARY mode and that you have compiled UnZip properly) +error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid +caution: both -n and -o specified; ignoring -o +UnZipSFX %d.%d%d%s of %s, by Info-ZIP (Zip-Bugs@lists.wku.edu). +Valid options are -tfupcz; modifiers are -abjnoqCL%sV%s. + skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) + skipping: %-22s unsupported compression method %d +%s: bad filename length (%s) +%s: bad extra field length (%s) +file #%d: bad zipfile offset (%s): %ld +%8sing: %-22s %s%s%s: bad file comment length +local header sigfile #%d: bad local header + (attempting to re-compensate) + skipping: %-22s %svolume label +warning: can't alloc memory for dir times/permissions/UIDs/GIDs +can't alloc memory for dir times/permissions/UID/GID +warning: can't alloc memory to sort dir times/perms/etc. +warning: can't set UID %d and/or GID %d for %s +warning: can't set modification, access times for %s +warning: can't set permissions for %s +replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL +(assuming [N]one) +new name: error: invalid response [%c] +At least one %serror was detected in %s. +Caution: zero files tested in %s. + +%s: stored in VMS format. Extract anyway? (y/n) skipping: %-22s encrypted (not supported) +No errors detected in compressed data of %s. +No errors detected in %s for the %d file%s tested. +%d file%s skipped because of unsupported compression or encoding. + error: %s%s %s + + error: %s%s +not enough memory to invalid compressed data to inflatewarning: %s is probably truncated +%s: unknown compression method + bad CRC %08lx (should be %08lx) + compressed EA data missing (%d bytes)%s compressed WinNT security data missing (%d bytes)%s +error: unsupported extra field compression type (%u)--skipping +error [%s]: bad extra field CRC %08lx (should be %08lx) +error: can't delete old %s +error: can't open zipfile [ %s ] +error: can't create %s +error: zipfile read error +warning: filename too long--truncating. +warning: extra field too long (%d). Ignoring... +%s: write error (disk full?). Continue? (y/n/^C) error: zipfile probably corrupt (%s) +--More--(%lu)--- Press `Q' to quit, or any other key to continue ---   +    + #+3;CScscc !1Aa  0@` + + error: can't allocate unzip buffers +unzipsfx: can't find myself! [%s] +error [%s]: missing %ld bytes in zipfile + (attempting to process anyway) +error [%s]: NULL central directory offset + (attempting to process anyway) +warning [%s]: zipfile is empty +error [%s]: start of central directory not found; + zipfile corrupt. +%s End-of-central-directory signature not found. + +caution: zipfile comment truncated +,2BRbrŠҊ"2BRbr‹ҋ"2BRbrŒҌ  ( + +XX8o(ooGCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.comment.note# 1((p7 P?GojTo((0c XXl ``0u X ~ 1 + v , +̛+Л+؛+,<-@@-@ @П@PKbM5نB COPYRIGHT-jai_imageio.txtUT /E/EUx +UrF W q;qgzhN;nq+АR>[Þ}J6͒ A8~o)/Ҧ)^ssMo<֒ڞxr')oo^7au]mߓɔ8s:prN/xՈWSh9!G&&ͯ*ʞ_@OQ/-wrႜGM4x,1d[;" HD_?8W(~NrI +2$qF$ZE#w9S 5_sw@ޘ)w<}$x|y}0 Fd E<&jІ!V7q[kxbY<1nYCrab\c"d@%v}jhEey8{H3v|`?PORd@5窯l:I +Mznbh[#9аΝ"gty٪1'8DNq+ 5?B;Q- bk#"AL i):< te!HgMF}:_WǛK~!f>NG4UwW@`\.&̀vN]ٲRҎ#6c21f`D|9YhJ-6(6ySoT{bi OSŸ$xpqc1/xU}fKcݕJ2lWJYpE+=W0c^Bד|6Nș+AU4,jEyWiFAvO+:.bEwY ɴTMNauy si} PRC)VIsZaa/:j$@,uj_$Hśg²Ý4uJnJ^MV&煢r -c"L~E`A55nOV؀SaޣT+xAjc yy\ iOlIOf. _v Me\BQ@\ұw.9 +i2tv!7PKbM5@"DISTRIBUTIONREADME-jai_imageio.txtUT /E/EUx +Tn1\B$(HA*UD@+]ς+3y3㙉)Oƻ|:6fzx^IȉҖ*~?WSdu朡pqtc4$ư.X4bUoIђO|u3! rUo;;@p4ĸ ϼ<,YA9`"=)zRsHʸ-GkDׂX^i5/#0!Ӑ: +ͧhnrM^*p*, + THR(`CfT&\_ tTx.G2~R855h3Jyq~h B^[eZp}Mm.Րv(`PX<'UL`rqE\h>{]ceѐ_+lWS4;j(_3o1rPKbM5i ENTITLEMENT-jai_imageio.txtUT /E/EUx +Vn6+ | 6." /="~}ߐbY9|fP/GCL9^tһɌV_6@/_yEϾrɤk6vtTUjUe%Pa%O}%rkZj'Ni}6HȎ6%S,Mc* a8wԻCp7{C3iFX9kZ$㒪v!!Q$G]u^/i tGt ? Y/kSDm8%쐱Cd=Cx<]~NS~;(]Ld_5w5rHҞէH׽dJ6!8gcM K;N'/z2jK{2)FAAQVGo~$`bs5[*§:ԵXl:Pr7Bt +J2(w: t%09fk/:/T.ʥaw W84;9^lyF$-էo.uR Ar' A?lIvJ%<*_#_s2/qA`UzDc]oNNR rUYPKbM5U)*L8LICENSE-jai_imageio.txtUT /E/EUx +[]{۶~~EӤ=^1kWܜ\R$$H h;=7L`>-]֕9FPMt.WmyyzwVZ->?Gx0.?!)U\6ysTNu;sR`o:m'&IUU.a}QOTS/UK_''OLudMVӟj]UQ7NuԽiB]v' zIWjL,(d̛cp _%-z(|7: 4 `y dtMJJ"AIZU%GF̈!: pN״ȴ@և8|WIՁ74 +#9 +~yR3'uތ*/m wiEs]^Hy*K@KA4IG=Y2*Dwd iIDDZEgD!t_ N_/MݶԕN |u쯾*ڜn5ILd(t!9UQTϐUY5[7ZR;RO0]6/#aOطƐI#٢7't9/8eMʷN_*3G8ݝkП⯐:$uC:U]mUe~KX;>!mKk8`VuObrT7:pس'),J.L ֚WӲeuHX#Ȭ*V̵SSi/۫<21d %R)63X@ :!7OϫV\me/Tg''NT1C$ 0%C԰Лxp8pǑ@v$Vt)-G(Oh7᮪^61 /KHӊxdRxFNYO$F ƥ2- 4MUh^tk9ԬrjlI=gRP½ʊ͑ߓM(2M#B =$D= ",9 %2cYHywuLkM`Cl>&Ntf*WI1ER㾞\sЩ|dKf_M~)Ui3z Qj/Vj^{խ "7!10}Q "']O)_f Ń֋2RӏhDqZƳx^.qD ͒?_Gq,ۈX\񷠆/e^/*Zx>S/Al3TD9z?IwEr|$m)Hl,X DT r69$ϦR]Sr菘(RP'Qxl;^]E+)&`O-dw!vm|n^zVWzDbNCKL "!"0IHpe, .RuR )!7V!t.ʛ$,Swmȯ7#oӧxN +ʕr\Xlm ⱡKyB >tqK³sCdi +1':Æˠ]dG..{TȊ#h6F~mD) !Oܥ 1)Rp D7pL%g+ *b lNa s&KjR^YFCm$uBmxT2A #i:yDAoDH'e#At&+P=qX'TTjs͙=x} <%"pɧǯ:+7d  Np["BU!J_"Ƨ+}8j +mށK%% HT|5luk`>{i$Y2?#Ag/AwTplS+^ 8YTqdcxVgLFa2kB&PdxsJuIȡݨw R%i"emmr3سiɽZBu$+'PA\#_ ガO8%'PH}EvVetvB'J PIM '5@M6 ^%HHCTAD_ѩM PΣ)ydhv"e]y +$.eQ%YXetSTzْ(}Ukw~j#8;BQnn ܞ)ˤ37*>{az=Q>k$:'Usng.7iÙZǩYdk +"򝻕[w9y3Nlr~B)U3ѦǼ6 kdM?vDlz&+NMI;:K;2UW6gt`akE`?&yteB]Kdu>*eR;Luiъ(lA \b8DU{TUbUk#9"F5PTGQm(nB y]\+~5/hEAE@ +ʰYehT0N"2Mmyݫ/O`Sj8=FݚCE&.a\HuU/dR#'QbH|9:=:)[4*QnF3ǐ]_v{Ϲ]jKAusȷճg˷TSёcOO}U ?$#JYD`SShƃZ#]C1WdK#.8ݡ2ŋ@Q%ݓDyGϝkHP݇ݥڝ$zlx%61߰]%(Els` >:݌ 'iطfD.=W 2-]+{W2-n6~..)jE|?h}Hj<4R(rh7pI ۂ.q_ +svnOan(>n\68V*~+V񱥳Q?zgfCb`TI2 {+0&stzxf\foC跈hS#Ҋ$;7z <!X>l{W{e3rc<䘃-IJCzNi/ 94!e-~n~'mnCH~x!|?;f4ab $?** *kRu[{kqA8K|,}  +6%_I>Is?e zA JXdA#.*osvR]}VJ*y'}w$lzMqboH*] m-լ:I6X0|u7|YA6΀7?pdNa1Y\®ލ]̀οITlrěG;0AGM2x[A3׫3D0˓3bqj(q9oI\"@(l)Zˑ#~BK?؅&NR0g{1T3XC Z:U8zDAƄ.UIj;sr3TסM-WOO71dPC]pG|ᣁ‚{/)鍆H6.C)$d<\ ͡q=6mZ`[OI^ "[EsDIH/dsDmwEaؽߣި,Zi}_#)ƕ"ɵVr-kZ" +'uf^S F@ +"5*y:HE!#83lU١Ӳ 7Jq&6, v]aܵ%ZPJ?Ǐ!<}f ;h];MX,`<)yC(h I86&&lox]]aB te)J%lG[~,|q@^b[|6%Ij[ +)U%r"Ŝ +Omy&/}tzꯤ1?*Q2X⑿pJMW68`<yeɫ ʅswUu PgA"%l¥&%\`U((It +]Tρ~۵NLHu%`.ް3r!:>uvXRtwx]Gᄊ0ūZir}1^.x4?Ge4_O+Ƴ &&O]"a: zes,Zb~|1=\a_j2]g. mfIk,Z*X\>jDG4N {O3s ;ዚE! +z?,(,00>$ mXIC!$ |7?1425}O'2,t nvXqģ&Kr:SnŒ ˊSY<(z*/s^q7ҁ +I6hWSK`[HMK26޹o\k\ l4v$(EQI9}9k \%2@Kq>AZ*ܫk2G߹t|dq_jq޼mۛo|9>x Kj941d1a)%_ X In.ҝy#ʪ|M.VSϒg6ǮP" Йd"\8)rگ$EgW|[MPJOоbg[&+2o N)L=GȤA¶d2 2+&/߆_ٜŜ*)Ā|²ڪjVԳ~9;/bF4qs[\e|l#aY{#RM3^*3,cK('D.rӥ+R2*xfvͻ՜@u +ZU$j\$59wo]]! c[PKbM5Gd!'THIRDPARTYLICENSEREADME-jai_imageio.txtUT /E/EUx +ZMsFϯ%TL! Êr +DB" @)?ue'JUL~xyvR8sJ Vvzq ]{t0%'X݆z<%۟|ϝ]/]?o(i0n]Fiߙ*HvEPٝM)ft_EumJڊ}5E}֙c6t(7YMۼ"_ge+V|Oz\ώur*o~ߥ U%0d83Y^#*]Z7n(Ur "w&KO?> K2ZUOYm)]1")Ǭn{6oTvwy +inҟ_,4+h$7鮙][gMV?fcl+GmZ%l0˦uWmEFOiCeZj=fEwm몹pݟCEQZ)9ODOy<iAlڼ=2qޖUQ=޶1M'VzE MsqF"O򂉷"?%HM;s5o?+@WCv:覯ڦ裇ǁy 9zZDPݛ֧V8Dscx6BĶ]ގYCu1.os:}ua.,w]U(EpSV) +=U![^ôDV>0pQ]PImH'%L./.kAVR*2Ç"S3eSG\..E&umf|SZ~'u1N.g%Z&-tb&gwh 5(%`Q(OSX۠!MKCQRSkdmxi:?%ce0-⡐v5uT`3Sw'a]")Z\.;kզ˻:㘊z.=KNFFZzj qIkNgD4 L1 g,zT4B7TRO\rtӢ⧤kʱpfyZyZ%a|iO'oY׵ OtN"+2HHYo몟3#;&[Qt xcTB];ܒuO0ԍuIȌPUedBMT +pWP9bR,2qWqh^ rRqg~f)gg~›\U6/#5ނ 2:90d4-fȔɰ5wxfo(!Mj9+3q$G '#HiGO?`h0:A<@yh32#gHΕo 'C0viES/r*bX?!M"miuϔ84EpR< +!NeKawGsL\=TH`9-w +yE @}cr9[|r CRkR]4~չAqB2.q/CCo2G#9g:I~uT3wi5Ă=<@p 5sĤ/:DvcU;9Wp,m ,=0?f$y[gEUpT!VX4aȂwi)™G@pK`b >d6 |t)^6v?tXvFU!Z6$*-8f%E dbGQ4QW:;%. +!2a4f-8ѡ,Cd{x׶N-lክ1P._ZFIMM߆RKn%ď=w nD :[Δk +-?&L_=w'X!Uir@r: B$mnU?YER#C`NF >?,Ԩ EI8Nz&ҁB>Ru()ԘϊS_L714N8 (%nZ-T0A w[&>^=˘% 58%sv$L\%->ush4L:p8" +X'4G3*x 8ϽfNZ+g ǩ]Ą+WI{m|5PKbM5c4UUNINSTALL-jai_imageioUT /E/EUx +Qo0ǟ.lDYd/,FЧh"ePP7lI/w߿M;e ҕ{˙9T [(h}:=m1ݧI@E8g'.l2NBg- V=PO $vUxԣA~O2*GgΙpEWuAo=D wi䛄6omK#G8PK +bM5jre/UT /E/EUx +PK +bM5jre/lib/UT /E/EUx +PK +bM5 jre/lib/i386/UT /E/EUx +PKbM5*Wjre/lib/i386/libclib_jiio.soUT /E/EUx +ܜT\/?(ZVJ]TTBJ7lE $ CB"ѱI26e]-uQiMꎕ=='.=gmaCO9gs"{ɽLH:9O?}yy{'mqqqZ?Ѵ<0}&u=O@KvO\#J3gl3$nM;xd&d!A"Ҟ99.![ /! X$-ȝn!߄`[!? +y 6 GL~1b_l9.d@^r/ QU)l`8΢WC0f.)WW A}CXWBː2AH8|yH fԚC! .9H:^aHŇ=!_ kSoC9I&v\GSz찞Xp_X7 {.jk+ z|CN1DQjFQj'+&g3=aL6j? Orơ3ґd 'Ø2picE3רq?~1ю!1Wg/v<k'1(Wd=G\_alB:=BJxɸO*ev5Zl'YuuQEL;IPr+t8[ d?b9f<|Sc~82@ +&k #2ꉴw}Կe,D%W"pC۱υNOy>n?e b3e<"h| 7ǿ|)k.og7iey~P NY 5tx~z ^Z;$Y>_RO0/"? -H[#iw3cK}%΃ˬ/lٷӌ׷9f?cfJfXF!S/z +ކ~j7-`nKr729c<C݌Ϗy?pۼ֣Q5xZu-F| u{NO]骫p4y-vU7d+r~kp;kvϴv2fmszZzP!@-S2PFUL *1XYuU{K]t\t\2Bsibɚ+FUL *1XE] +gb].lr)1m\؍rU6qe]:m]ºuo^o=vZtXfkoYټӱtmvsV#kտU;V1U} +jm&DGw";r5ԍYG+beTw4_:n宸8߮CaQ򌣱ѸcVtb+R{i8&mkƸ9-c3<cbީhEJV`bl'PdٮwjbCE.Y͢4.aoͦ(( ZDV{,ݸ,.mc n^7@F UcG]>Qõ5xVr{=.W#(NO7j(stw6fw9|kg] EUz6K$ݍvocGb2o g]͎6q_td>Xb|.IV!a'+15]ĤD]nuwEW(a6YNcc2f]ynYXEK.[XY)iKeUk%uؽcVcnPNcZG12l'抾vx3حZs9;*A^'TWzݞ:DC7jM_ZNI M6]kjs8i^'ishM*|<&=Zkiu#.{R#=a/WgCksO[hm\fկ >y`t*[k|k0!l|_Υoښ8˟x&q _q-NKyVѯvm1[Zb«XQe5~R3 )Ng_p_snujO6׌gmۤ%bYH5d#Jv]I 9LgQr 9INgir Yr\ /m7H&d +J5&Cy\"Ӟ0Efyd!YD6'IE& H>i0,%u(9H=JdIfdGEd YO6.O$r"G39NNS49C#gyr\$HE&)d*FfYd6Gd YJJ'Il%;N(Oir!ϐd''Ir@jO1NdId YI֓}y ,9O.KdL#,2' !kItd'E9D9AN 9KΓTid:EfdYB5d-.$ ar#'Ir!gyr\"~2L'l2, KR%uEvdC9Lc9IN3,9O.Kd't2&,%kZR']dIv=d?9@(9FN49CΒ"D&=id:EfdYB5d-.$ ar#'Ir!gyr\"~2L'l2, KR%uEvdC9LcH3(9Fqrz/CΓ d>d&Ef9dOd9⢟(9Fqr$ȳ49Cs,9O.ErLla>d +JdIfdGd!YD$kZl$uE>$Q!ȓd?9@!r!ϐ$ r"ϒ "gyr@.K澓Id2JdIfdGd!YD$kZl$uE>$Q!ȓd?9@!r!ϐ$ r"ϒ "ϑ<@^ %Rpd2L%t2Ԑ?1;I7{ԓkos{]aFx/Fޏ!o[7!䍰y#܁DOy#_FЃD!o!o/ o~EaFxy#<~y#F8y#D|N DBѴwU7yEse|^ѥynJr.Jt_*]Y)]Հ9ҥIWZ./ꅢ+]%۔.o\TWr.og(]eAs)JtyyNS ˫s .oP~~TzZ-fO_2ޯ֯tykFTW+]=֯tqMUWu.jJ)~Z-=֯tY>֯t jJjޣ?N֯>O)уJW/>A)5˧wW.-[82_$.k{^|7ieZ ¶|j8^Ӻ w'f>zxʖ S{/ %1@"uָRmJK騨3"QD 6U %Z +g>긎̺ +6qvpdFl͞s{/GڂC^=sZ#// p2Ű;\>Gd]0ApC`lBƑLMO9=aq_$oח^zRf|H[؛TU~ ?0I~0E~p.'NWs$p:;3I&]G>axӏ?K κ' 'z1i_R?@mJ9H;X  l?I$6 'y.v ԴZ-#KğZ[#AnA`ᬯ7rx| p)ތ)u'{js5d0x;Pӯ_bL bJ!XBO_YK߇zy29JĔG̱9%nqQH u,CXw+PL+<7D\OXƱ#6&*{ +x }H+7@E&)3QC,wc<ֺy(+[&SB4HD?*<*N`0!"h/NRX&Aُ*~(*$>q&l!$zCK//00a#Jy^|7ΡӨbB&2*. +Of~s<-O{f?3|1Y}W/=}u|4g] B<efgvvg蚉ɐjAD 00 aKTK˶%VsJ򗊏/_^Gկ 7W||cWo+7.|K5SM)2|N/#Ip\1?Um,?ci#`]ع!L74Fyn0.)ChjxhLIޟmҀTyq/CC aLQA`cQ +BLܑPjf#ɃT+@*!IXzY&GëUB/Ɨ|1x90g_l$64SKq}/Ò`Tlt]e|`P4 YfjszW;nb% \쟒sJ, +CS}w_065~gVd$ +%p,`#QF bRɜyAkmB7Ҿ?CsLEIt紫3m iT]!:]LC4|. nbƐ +>E @bTtNVƳiop]<慹鍲Tu7T [5 + iGWEkf`(<ϸ6;;ו~7JYzcr\-nϻݵ+(Y&iTb"#NZGT8xH!R2?w8-,>tAu,$hŬׯ~tłxP!B(/>:B>;ؾ.5)gsϚ5x} twxmgl! Ah(Z<㉏gUg@jnռɠO+B^vi‹xAW]6kH]~=E]ߞvۖR]p}Tշ_o)VT׷+Rr]h}+x)6^z{V_S+P_`6 yvgOȈzFOU}tMnC]3( =*- OM^!"}t柡ofQa+^ǘ%;<* Q,3V5e}ظӓubŀ/;Z_5_5^_OR|.ȂvE㋇[ŜqE61>ؓ |xb|KE`($ޚŌm|QEd0,-$.zê20&X~\< T0xpG Ѩ7P̗_زEfw"V4PT3<ȑ, ASC!r;ߒj%Da7ݹUZ4s@ƅKdNw>*5]͚MEƹus yS8]HVفPϟu+e|㿕F\XF6b5Vݔ +'u5L`Pb j-tt?p܍HYXi`jճ+J8,RKxQϳD-SNH'(SI +O^Vg?/J* NQE +CetYXe-TX/u aDRNAr|0TFaҹ\Tt $iDjayLWwUz[2_|?^ڟag2s k\UҟbjUϛ聳P^!ĈYSU;X%cMzFR45[ ,kyW:U8qH\H[k,IjмMznSC;"B6$2`VS,v*)g]uˆp{dݸK?@k4َA.y&L`R5[qD?bh>` xCtl +ȔYLaP]) +fe4AAƸOS'Lp>>V(K3=^9҉]h$ԘM:UJxB<]pP =^! zXj{:"^-:?@6TBC+ BޠFM%Bv=D{Ox%zgIH*iUH!kdGgt2%B'ΐ5dnO&i_ 26]mXOm.3+x#C`a_W*?4 $DB`_nJGt !~w]j u1 ϒ%Vz( zoH +<Œ؏W–n#ƾQo^VgmniMM;6Iw5]3J |7}4z~L-fd{@^~.G D! +drr&(,^:n i ^moڥi!8&C|D_8Lv< 4,>ўnR=&.ߙ?Nm:O z7NOX|$龞#1G} D2+ğnÛ*9|W9T7[`bx `a)cv*3GcOx&yf=w+~_>. .NS'O>8>}ZƧ}߽$~(?ߗy/?.O̸/hD2b*X-G&?I9X8%!0Z'GO0!ƁNV\c&Cd T <8x_!Ùz+Y gq;B(lgfd5^j !U s{+ oDz2cr84dPaf|Zm+>j;1OAM^&;_T5,l{_22an_tS`:p8UkMI$6YΩJh1r 8@dғB-WJTE LL\EM13$O + ̷g9gZ{ubxz!'ӆĝ/l/zUjc jc7tTܧ;]V71%Ub-ƥˠJWcT$BD k2j[8_B@8&c$yQjŸ0JR=ϓG֧H)Rx <֩<6"7¡k+4tr=4D`[B?X|rP`vXzvtXȆFHLVVXkG:ᮜגUiO Jo I +^S{HKvOܾ7 +tӐ-%KIy0pFvnˎx?%< }+t%JH[j"(51YU_ݎm*dx3S-0얐 kA7?=?"ؘxAyI) uG>*Z9zc_4QNT@KewkY3e_SjjVc,z5Iy4щ8`>?"Cn8=[/QPz7@ yn;%osC x.?D+L^ĉIf43‡iR<@Jgg/&3T٭ވbq_k/r~UņJȡ4ΐ5AxKqwcVuRMDzCNY 6;mvY5r[M-FÂSC趸ICn e.NGr;ЙAlj~|6NQy"rS.3D{pw)p\/Պ&UL]g*4@]x-HB:}r)ZMz +o0.i},Oς3y~pwjK5,$#[Xj/ZO&\LP9(}H79>_$`ϚN$)XQb_̴cr9m{yKB+8nѨ8㍚aT΀OYsH󦌩b')h%Q '[BV4jw;^@K xvsԮ?^&H/󞟊_U}oKݽ$Oј?&?j,yF;wqܑl4J])cM0PV1u7J-cvT(?P L#RPp>\)LiQx E [7pjnx1vǺPQ`‘a#"@"[XŨc6c{ COX5!`Z0qVX{qzrN 1im|rF+S L7,EqF}Ҷo@(fPh :0(\UAkԼ`˧XY 'Ui\DvDZy!# 14Ǿ(F!+wSBZ(9l} x,+f@y}֮@0g3P([_BҊL4DAÏLkIMxJ a/+G4X|=9\Xd2p.#0 O.ȶ>78^8ֱ*ͦ_BgZKuO΀796*ԣzVL)*$d4Ey )RØս9s@=lCAmAk[ (Ȯ R3bJ(P<[6h7:I%u'so1ut[MQj$2=I>I5kFwtWlhx[Mئ6OjS>2To0e%mzQzj@ݔ힮}0^SDni6t_#ϯ ƽ)O8cϓZ=f{U>ɣ|9T Fۢ9TҮԺPk2(ԴYM4Eݳ'6ԕ`2i PAq-*`QjFф)67kcb3zsQ-xdpRM }ayX^tg+c :u8 CfgzN9wp>>e@ePϋxoϫ sy<e71ͨMf^]_HYlK HN(jjCo3^5+c^STꣲ0Ԍ?E袪)N` +Av/YU)Rb* +%/CK~^mCřlsڶ +sȅ6$>8#vI~ZTbF]ˠhD+1j(pF>=di444f4"̼d՜gefyUx)!XC_bQ'j5be jF9BL7¯pȧ{EѯǨlw K5Ty M~{e.Ή*(1弩8X5."(>,3h:L~`|^}\[k&bK  /ݖռ)6P(Ʃڿ +l$`jŸf>w"ʠx:^E p1@ᇝΚdd^9:O<)l‹'.4b9W.eGWSpV+R!tGFmimR芓zww~-rO=)rI<Oߋ<%9X3`@ܿ#RCn㦋rp6rwDh) .w gq-TsWC%@daXzmM` ΁_[L`O,|0&ͅl;Z ֓UϢL՟|DIa_@Ȫ5'{iFfk(@%[U]d,^QE{C" tpĒ&Uz.XrjwKwtK&;D&!EYϜSkeބW쿮>꾂P #~}+Mo[;@5f +dv<ʪ0*M̎=x3i-leB 41%:Z@azOw\ӄ\\v Hh`PGJqvNGkHUЅ}JUgwc* MQ b:h8Qe/(]lZ%WIİMhoo6\Ic(]a4@z31<*_!^e79Ż"Ƚ!WxLT滴*i.U5@ydzX\-3HR7& blݪߵZ'@g=vzҶ|'YJe6z?vJlE8%oow6H˧-Pf%2ah |*غLJ:m emِup>D u?jAJO@?[gY9zZkrhvP?lύa 2cGtk+e᪅pU׏u\u6\5m`YCpۡZ C[^n&,sIKŀ1]`WK-Kbmǹ/`.D!>@|qdV $g%q$ȬDW_CZۮEۅs4va[' +Y5Q~v7 Fީ^ ex*W[&0TsO@,gu{hxh=2^z!א:GcWWiRt= FZEï"@t *UZi믑``5,rT?#Fu Xɷ!o3Vw|_V0򡈀Jû!ֺm(-c?e'ㅨH"j2h'4OШe~&&\\k -+$`kmW84YΛY*LB^Y|3[-u&d|} ^k`f=[xvM#Zqٞ 2{y[0=rumeleS=WeWr*A@B ڌ?wZic=l} qGG\9:Q9B"|QVO8+Q- n ꇿN7E(oG6ѕۉluyq&(at>އX}7 !HτTů*=ܵGs(KyU{[]5&m$g" NW 7dVkn ϙ@Ox?JzRTnwi ۸icLԍ H]ŋ^EI[^ܪ{ /KT~HvZg9?~>葄o ΌeumEBgXsg-W2vLS.[$*2mʂ鵺h%+)`-gďzh `pV#0Ī1S1҇^0(aImV{/Ц&Xnv3\ KG)NfZϭ^;c>Pg /L7UYMCYg]4I{ wL?_wLkVF(@]Ea-I\AYp-B#!Φϒ%hQZ~>\Aߡ ?z;pHjA㒳XmVcHz^6G:"5=o96Z㉘c:QMHҢʘfd1u[H`N7â!*ZhpDwqIŔ:!dyw \^q))߇<''c$GȮbACtQx푑9 "J!+L%] si:7V7\hO { )<FzJ-ՋYBִ81kW<. s)>qe=0J@:A3Yςq%Z|-џJ^G/䣕g޲-ob!]&xSs((nj!7++6+/IceL\5 +=V+$۫!׷A\3"]B"-'xk,'3fN 7TqTѿ.'l5&oJ7}?ot2EKsU  w-4KfZ? /F;A1b`A$)@[ lw X)>w m@a4H޽v e5R†CRL_&@7w^ h_Z'PdNXy8aO9#eo,m^s%seuI݀] С8 Y (ڔՍqmX2dsyZX:&AOS Y۠ҥ~텴B8$,C՚|vdB!=!9R:5cR{ 2#)o +vwN<;fqpG0*\ȷ3EZP0Ay&`R9WUda`+敿y?'~C~ovDӉ A64 Y~!g{D0còdԨ<F4" ++K~ j% m(z[8ٳqϟc;Id=rMWDv3TƱN<<(֨ףQͺǤ#W viF,#5,~t$~OSm7]ѐ48Y'ԡ&ĨXr4En+Rp;nSZ';?^>4HͅRY-R#0rImO_2ux7+O_gx%S\fЭx)WaQ ^Kᦥim +]a)H%[]J?3wL]LV֩` (rrDw@7+LRєO:'^ArD%yUGL.[C3GKbG{M@P/#NҦIJ;jҥmC]r9zM\%`vj7b r%lHr;nDt7cKғدgcاAjXPNFK23,8F!hR04`k`NSnUNNv)fI*+yAx?"}~.os{>}L-VK19(rw1/DaLVFcF KO>JmGQQ\ +o + +z{Q#q^mй-l̃O"9n?4w.f8:q]0J6E!gyZ^M7ꕶe}]xq@0Vx?62XW0!: xY{%0 +G4VT>TLz_>dsCG'Vs(XnPX+jS-ed TLi^DѦh ePE${UNӐ>Q 6P\<̖)4LX +Q)L :9XR'f٦pi[/zs =:\cL1z8 `QRäUG4LΤ&w[cZMQc/FJ>#\Gkjٖ;)?$޾ݻ;@wy}Uca@#"7b甎w6r>ƪܠf\|TPŘ'ȴfK ;A(7[>=rU54y*TH|N>/ +B5D(HQa#a|֡7c_ބՃy(/KSGم3 D vVW,OI/I;B8,"ـKsyA ۰q&9!9zZtʞptԊO&.3#l& &F0LpipsG}lkiw!ZACI#/F8d?ik˦M'& ۭ $fpr20^6 | x[  8T_ +YB' e=(f'7|=ه4 pa= SPULj6/~3xaZkwJ_㳬cZew}>L0s9)f\qD yGӼ/h$, %M}6|iߺ7B6WAkȜaW +~{8Zdpv<5EؕF$R!=| M#e~Zɍlǐڣ W#pPFP{eVVh>KV{Ig!'Zz2`x"=ä +7p]άue>O'ºKn#aE@Z~$ &c}ԸH%~G(G9 q+|DdDy"}xP8ID>G< +a=\zR貘z\)01x7>8!xSt_ux4]#k9K9NWDk|_ߵ1fNS{mp(C+5Fq ogn2t=K@`9DXnrH`9I-jtX8K*F4>?zdJOS> +p”6+ Jy.>i3]GMGW^Վ){hW:>D>™|tٱ|kƋ>fGo.棧|m|cduY&,Qڪ0cBD~|N(%Qcҭa{ўX HQɞU*< 씴WYrfDl-(YüBU4  +ũ,a+6s +ګrO[ùΝ~Kl<ȓg}Y$c 8M?s4 + '?{D{opfǹV֩ycz VQ\NnĨ:jtbp{ DGُVfU%?QqdZH;~b G2p|om ho-EN Ja_}#i\r(`Ւi常*=qMMFSfx{&Z߄kuΑز 0\aaf:9ll?4.3Y ~R65<Шe82QPXKXtH҅$v%YPJrg ̒>"r*tY#rvo<#!yz$>r(.yz%iΗԪbfCnvb>!̟ LwhrPSM!/:Oؠ3#?<z pm%<bkA|L42nDyRP3 G0ػXk זC>;Pw@zǫ'jtqѾ +LBFh"ф<`R'g^^󕩟}N :]ǀo$_4K{ͷ7oS}u8P{N a%<@ H 4aiMo'ܶ-[SrVvJ5?GOA[0UJQwat\t ;]?2IQ/Vj6l/^?gG > +s + +|h &a$Hl0h)0^tA^`҅5Pf7gm |oFzbh|Pm +̛CgIMAk(PcTiQ+ o;#H&Hzo7޷ 1ejD}oI29l`r%V߲[X}÷,1|÷ V&|;zߎx_/*>,q}˸K|2[ ߲Le·,eշ|^=h+dh$}n+%EW$MC`U3v1=댇._@'ye0i>t +GH\FhdKIG3&u q4,)<&J'"nR$~ǻjE{V~4uUkUȼ^UgJkoOƯj&2~#Z8%)&QmL௡bv+,JelcWgld '7ס-<@:S#z'.ϓTɍ$O:ޓ dC}uI`:s13yh +ɶ&0åe8;>E:+nɔEK04)?Z3hpO.Jh Swa4HtnUori :yPs3/ )73Fx8t2Dgr#αu02Rh܎z±"a+~70U2 ;#.8q+l~\:sM|& 0F: QܐTsevjPs +1:S׼uQ-\PW@n5\4yQJ=~Up\Qhߋ)elOj+-,EF.|uNmR>hh?Zz|Kw5("VmVֱ)n cae#.l ++TB7 ++uOSVJQ(|(;VJUXYO,bR(fV- +V[#ĀJPiTx1j:aUn߀7EtK۳d}T5b෸%ΫۧU9RtT +~:Rv-/Q+WQ%n@ ks\79F1PCvvy^[ͳͳYQ @+8){e.F9oHjK8L~%& n`b#G #T#ה#G7~H+alq }=B9c:ܧ>fo?@v0oM$:#CQbZDYE_*{\Bz||뫨YuT?*[M oN4ю*xp1\udtHA|O+J-:2VǸ,;>;YlpJhCB)4l?Ts{uYIK\TG퀆4` 0,HBćHSF:Tb21籶AɊv")mrS%mW$Qz s"cۭgKR|7Զa&)ަ|d5jq5|F[K`- ,I[8,r V#2e2jt5-]MFW!+,#IԧM.|S &35O`Dr?T5w>ÝǰR7<$CŧT+;;ydP +P'zVtb& A&*63Sr|)x85@_ C1f"VadM߇}8L%t:v[.hjT΂1N)KqCaOݰM ˇ +0kf&lYCU5+y]lѱv K J~Ea;ɗf#@VRt;0fϰyj]fXp 'QG|ibۯhU%mW.w(ovnpy+w3)ٻo;fH T{#+tn;7_r }jVH~#2Xm;>bv:? *װE_N41}8v~jϱ"QDT={=G{Oũscby= 9z[Fϱc w^ x GӼ:EU^2^xx^qۛĽ{{ NeOGf½3kӏ-̎{ǁYpo{G sV$oV[/%Ɇ{UgD2 AeӛEॱz{ tM^4i0deieykIVO#KMR`iIԔNHdt OB0cI+g f'>3>9gu WRD؜e⥧3%D,/^[;HM^$ @R/^I $ǜM$8pt}GNX,N1 {/ ؘO=% qo)Bf'{u[{%ԯVmPZU3) l_:&;GևEDg_io$ChGGkt\(ƌ$|Õ .Z`բ|!?}S0.a*Ň\􀬽D -j͕B+ܰ}O YS%0Xzxj}D= ̿GsnNc G$sDzyȿB?zS_EmlLp*hM3\, Q\\] W&K:3p[ eyiy`ix`J!>(z!w0Wu ӓ?AqTJ""+zës22?Y÷amMڿ̆k"˿4̎j)~[s@{P8%18s G_'V + 3~9\-<%r"*,u)qb_G;cNS 1' +eRFQ27 !TI-|Ps :8U)at!MviQh;1HtS&c Ч9! t `C(Xj2"?a?fAW>|`!aK6<(aqz}P<@l}Zl$+pr/n kS`HZ36!{ )f>@GCKb2yV2dx_f$l"Fj KT.'jͪʃ>?L c3GAתRLy85r*ǤF61HxRQcre\+~[~~(3κ1*I='C+diyDKQ.hdx"DFP:z T`mڏ}LE˃m:ƶV?k֝>B8rQ{Btx8l> O%^|J"ߵ݋>N~&Et&Q&5$C_qS :*CyE$HJk #<#$iSVq:)$iz6P~F2<ݠ9xcQ%ORѩ't9濃 %sk,9Jh +2 +(&G<{QGs۾L|L1k>f%ܑQSL>fD8>aSacƞKt&Bgus( ф|-( . KbEi*+t5c)IqR^ =hƳD ^z:s[̄?[;Cp:v=E6w[ U|,%U +nIXmMp]O_m %W[vRbV`)](us^}_DN EY@ϝۃ>%snO]HD{| "k#;숄vh!#EmD;Ѷt`!sNQ +@ s (6<,p :fCψh=zI Ϻz,PY6 Lv(;ZgD/]=\L :GM]t% =fku8fNpgrj95 \N&ui?̧,ɨH!sIi6MKզ%jmg}4YպRe(uMz:IP:nhIZcsCJqSKc,stݗ/θr/~]CKe=4}CLx2e/j\6Bo~OCw= F|dzWlykR +ƒ@D<&'PY/_V}_. T tG쮬~/K"N.jc+QPݘ{ + +kWh0ߋ NQ'wN"ka=dE `cZX bd䱩 U"->Mc'ԦJ5U>U 8Fw654F9Pr2Q<×G| R{{n]6>DeP* HulTE[g& un&j:~յi*6D&bs&gh*{Y|0Q' +M'ߢpߣQyeh&jmU7SO7Fw?9wjAvVd,&R$=JOG<~[Z7Yd4<Fhv%iEN"=VJ|WmZi$঍w3PWͬ~j+o2>ϑsF; VÅi>9q$}K{K"kѦV=CfUڴI'0(#~cy#G;3 +H#.WB>ޖ]ݑ|W;HCJM鵁A7x1pCJpU#` +pK>AǠ^*^Tr[4&{)?ĚQKܒSCL:Bכ1*ʈGmU%6(KsLKd[GSB4)P)i =Fϰyc7Sͯ*5(-ۘ?"7 ȝ5>rg{L?QpL +̬m +?!X-[EIAf-'jDۼ=ި/7L3D iJ!*`׼Aba@ \Γ'7ŏBT8^T#ߎ©ur@70;9@@1Y|xS(R:$C@S1m*yfo +&]qUM;aq69V n6o +J 79ROJUirP@f%8K瀙φ831V#zUc&gΣ:wQ)+?镝ʴ gWIv1|VE䬭jYСy%et/W6zbUE%b&μD%٭˔BJY#DKZXũiV!V%qXt3 $M!M]f +]>=%pTLuEjB#-cd'cC,H=߹ݕVÌϹssνWXV^GƟx@RaIqaFv?.]@z<vq1;re3JHsA E"^Eg' ";!EL@fa\aJ +?j#ڸ跓6L}}jdJ:J\ߨ&He0o[q|CO*=%X4֬!UތU'xuuz yqF(K'5}v.6lP;v>qHqy?AD7gL4G"OJ? $sٲxD(JH'.Zs$3tpl00CNQ+ ^,MɹOFKBzf-KAѺF!AUFèFlB +mfPh -Zu W$N4sǪtb)Rp8UxN)-YIfX3K!Œ<Jki$Be ͓bt&0y>O'xO䐅p,Ef>1{^-0JXui?ٍ3U٨{z[.CZ&/"d sM3]EPXRP,AbF {+tDƕQ=IL5BP3j}L- 7 +x|60tFS.jQ=qԟF&U6.-/Aa#i dyM"+XJ ^1 +rVL;g1w +/c5 +FDs&ѹ6ֹt7ZB7k=7j:r(xM 0xp4My2ǓE)ǓUaN2U6mv*aZKΘ45.z;ifI/bB}4zwoΒ$/ +Ґ7NSb79JN~V<lzGd|y +9$ЕZ{>n^xYb}]Ր 6;̋n7U54躸Sv뛗#wX qYql!UF'3NH͑mNi4UBQ#455zuwgQuK >-~|dN@JAQ<*Jiѵ!EZF{z',wHDt5R W9 y׿!|C[0XKՐ4oC e mr%qep]&dڍk[uUz@o㺻~35rdBo ݺ?袡KC?Q΢:ڹwL9im7,7bOZlF`<=Ng; YFO,K6>};uOINE}A&3/8[]|m&pLV(plm†"1"rM 9SM4@$wOf +.iO*9XMtCI^>c{I,שcJKKV>&PG/W.|(qcfl9BUX}bNΟ6^g!+b|gW7UP[Kx?%\c6"H/l);~! T^Wiq[Kӻg6+8`VWbڶ )2uν$"55*\S3JJppC ~FH@Q VdJA'^Q]֪ظ z34lZKi +kA6=ڨΧlYuFuQCR-/xН?ClvڍW16\33㿉PH,eq^"/> bh_j + + mv /?a4\[MWd,<*_{oI 4s儌ƽ?yf$kHշi [3YYlR6iz쁫_^bZGҜznIMm7~0!9& 2~| 拋ئ海l$3&\JB8|YU":2Rhi#^J Tw=y޵ISG&>Z~R v^Z7T-s$Y^+L $~F}v4e*g1d֙t0?",np jSOP} >&3tccdd70[hҹZxbbsqGf,,r1 Pv([dvb@JDJUmZSL\DQցЁRvpspaqV' l HREcmʚ%MI䋰#ӎ5 WDPsӻ^MgL a?y#tlD{#ˏ$y]/19:Nt<;&LAf ?A'A}+;]p){p4a?drx8?}>HhMuDs=+D8cp͚} çQ6cRI!כ޴^VFq5m{ tjj$[Z rYX1nB\|AP-[4Ue\A\lU^jL\3ze^DV"*@دĽ-%}dˌuG|W_멅RW$!k>$xWZc9p8'j{<%w0rsue@L('YhԲLvsdX XgIcD瘬=|,Qwb.&)ˆH6I|]@xWg?u\FX/`f!/NFo!3۴+ʭM!K,A"w ̬<6cmNbL엗@>4_"i>lTY7揹~. ;ɾN]KWs#8{E4x :})!{Ȅe|!l]hM|";U Oj \^ s<l)ja@߂ؐDXp]m1=D96#dU]U^ȪAV63` ^G11p؇+% +n𐊧GX)Jt2&b*@|ϝe&k r,i2RpG#2(o"T=޲8] ˈTlFdMg yQrb"яF-~^(C;!Á!OKْ -I2*\.`!@ Ğ7z O0~Ygl"U93+0e^@]vUJ] JS^kƭE%Ij &! + e˥ (TܠWc|w(@_5FO"'؛ I/.2n?Y;P2J5Y4Jc9 çq/Ιb18ggory͛4/eX +9I }\9s\q^ߑrgS!V &JxKK>ἦ~&Ǚ ƑcW]J7d 3ڻ6/_jGש`?DEQ.Õ#}&u?Ζt4RfY#ߍTKcU_:RmS#]=Pc0ߢd=T@M9hԮ2S9w̮bo@Mִ>cL^Ef{>_못;pdVYJ•vIEeT z-" W)>=S3_^qkr,Dن +%mƾ۾B]m_Z +^ȻrwlOdng@3+a4GK58Tmn[rwxmNFԶr/ap3P5#@jWَ&gd:\ovJsbksS쓪rǾ͚ڇ@9j +m= z2^hI~ a| dHq?1O;Ѭ[~°ɭi:ZHe,^`Jp'NHi%"{X$[v&ń"k'@ +Oy308N+xIi޴ql&}'ɍPO饡u޴ZK-1uNqⵙO023bV86((;L$z +bBpl[c.kK=Cd1\ ̕5."3+V?(9xV +d}pK~Qݝ⡰ns DSpߟoޫ57I}|9?\'l>٭'䴞YO_0 >н]zJKr{0JषaceTxJ<˰xJm71 u M3o:r;.M#2Y*dGnb%d~ӹη_ c9YBk1#ߑm~J ̈fO6=z%ll.)hUp7>$"*BelzpV"G_:iZϔxWZS{HpZZ=IAm0KH{.cPk{Դ laD`+MmqIVÝbF ?-,g +QiprBƉo^w%qTgzF11\eJJ,aA#:,33THL/嘱1f4F\\N])WaƋ{5@{=ۀ+K%eF~?~U>.ϒJvaF?.$4= {p\zX1>GP2KZ ++3 +Q1E{a3nz)*آ.uE_v(C vo#]#Q $jDzSв !5"TRy™*W]KWy بC'ko;bRDz$Mb}[cLݑ>^ {C%~K_s D%de&3LmSn̈nSڨՉ^ej-$vxx'LH yt!$/LBᙖ!&1qu)$YVK2P 2W+]eet UFFٍ'0ʮ#3()d:!:[?(ΟyǗ(M};50 +74HIt:+m|$Q^0ƻl٠TnfxiJ&NSjr;4mf%Gl2YyJ/^a{8sc*HS\fpdu4JO0:y -2feтSF ~E Oc"^0pXxAlz`$5IB;Vu8EG,]y4e`/9xx{G񂗡eM=uଳx# aiAW\=vL/h9Hicx6?FR&~͞}ݴ/vqу/gao&C(ߖ'FgYLgNxሉtO1~8 WESD&?U/L|(2oxᤑ.]vikO#2O^WGTWJx`KxT, >$PCӗӊ)ȡ}x?Q z(6axZEk,n/M- 'JiTӇ)[JxfdE(cG#U")P%K)}ߦ%y;;ZsFDEIUڰ8{-̔`(A{]fQ)K5@[䘹 1c2~L`ē%$c ~ +X/-d_*gܠg?2`/TSOU7̲t]Nk׾Q'M SO +bj΁,k:m1߮ +63_ +Bq|v$kSN?1߄0eL+rl̜f! >DL\)*c)C%" +sHgD%qrX=Sew_2!<ݕrg}F38L̮N]$O]c/De[9|jwِ7$$QnGpHd*6&]osrm3j&Yp`6UвR0>H8]jA ʂTE3sK +4dm 9!mX?ߩw vf"K}iUu?O֫#ۨq)pܺ#wk:GbF]:[Q!- '?fNCΕ} 0Ou~vy톍-m ԶABm>qrO]w3V.j\]u0y)1vvr&5=!Hdil l--dg 2U4v^!{*KxjIspDC̍akCE`nQ-v"2='k KڳAQrD[C50РmƪA]_>cuk/) &O ]*֌?o=)f꽋qDWgǃ .(%:nUe4sMԩh>þ!rLDE F +AD:!IcDR]ƘSJ 1LF잓ssnRMb1,sn>AanfxclfiB5^RC*sQ e$>cם9FM6 6׳O1E" A{d#D/ Bt itѬ0@0-nW =a!DZXR 0Uz*aE y_{.Q&a9wix{;L!r~~ZM>i5y3!t1Z6jqrÔfr#Gc?nqTgw2RH)>iM:s80iqf~2ftŘ.gtM̶qS3Clz3"g0jᔞ3 CE. 3#3 KY%(,*m8C:w ANڕV.v|kmϠhB` OƱX]ؤL-/>G#OǂAY t{ +| oa}S Bl_2ףI{I'0QXx3I4u!R@.vürFe]d0S9p`v 4 q'iA4sB?9cfܙZ?w#:me݁4`Q#]# FU+N_\?1 +^/wɇKh4&䟩?n"J,DJG np)-Uߚ=Aka8 a,x1[1{@& ɍl8(ۿ%'<Ӓ}&FV= =asa&2!هq! DL@_!rJb aӸmSm̍,)^/ + gw m3)͍88]au8" 1Q5ο9y1xs}'$7gg~3f2͝F"aO.ЫaXZXgQ'}w]Qʺ,?(C4^ٶnŕv7#ͅՖͅ zmzb'7υw‹ ;UW.8F؟,Q\l6 ?Mn:7fPWŲ㏦l|1$6]=h[UyccUАZrU?cM~;íJqG^i\)Jq\R`.SP?vg|suxrE=RKle/ØrMɄwș~5뿣Q)?idZWZw$&)U[ eI_^mcOvE$[aPࣜa",ސ2mɳ7:mR锄ww"/hu`iP.9S]Ciƪ*1Y,L+*5t&[nYFiș]g|^Am]%jW-Sq߳Pd>#1_a\+{͕'"J`6aU_Q<, NK撷˳q)tH%E1 GHIR:KɇSQLS^?֞NT "iό%֋f򢰰mј*u^Vu#Z^b=ķM|XE*X%NeaA9^Yr w>=%:GsJszΈu_ЋJcvlԟr:I2 +.br-M) qҀc/*{78X4L+@` ]KXx^ǟŴdVJxF1Dꬤ1n5k-N")##Telj#)?bHO݌Ma͛"jSl\Scid5+Q,IZV(y=~EܩGa|'t;:n d ӳ':ϐ\}pO W4+->96gh +H#z[B +)I[p@ҁ7h 7v ךUsd*K%㰌dzL*dT;MіDfvH3[g6?,aFJвMsXmS|μ@)jTJE勮 PnתQO) =n VUeЃ*u/9GP pȳa*x#He>\af:00 cE>RK&R}\#utp]%| _fI:VZ@OTc|J'D=sOogYB?#MP0*wZf˫ؚٗx" V5JQI^˯wŻyսޣ~xo_~s3,ygQhvԟA ?5q56"ԥ0iyI4Un*+W]OpwUu59C23ѦkbK4V ͤdfJfQikS1@IOg3UھooV[j7(('@iZk33@={>}ȜϾZC/60r|vz6`_flhX~'BgߖK 2`V}qd']oO|!GN'\ -89q'&N1ar0a94٬v[}-C Q,IƥiJ@Vտ]_^uӄ߿MʎG`_?ˤi/N +8s e#ęj1Lb@51ΗR򈄮)^BDaK*s6za^ wc*;Dy* +&S]W@ꪽZ? j-j<)P-|K 6=n6x /m&փ=+?b`ZR=s(o UÅżV& C\D\VRfF2>Ж@;ַhH)F\6{Zҥ\뮏{!漾Ж 'uA{M< 6$?rX,~$0ö^*{D%q ÄA^ +hO|`ݺ?˨Xy|,%jRqH]JVBgڻV*誘 1ݢ +p*oel3u?7UlJP,v_?A-l/S@%穴rt22:ґM׭y_-H$!J-:Hi?q~GvsKw.;s[[Ʋ,8Qù;G_6A_+y'[,QWqbB{&KTZ!3}Cɕg +Sc5>Φ)3bby-9Z ř#/7荈Rgkܝ`@)UgyO>iD 4H wf^&h&4qK'YA$\9-Z$@Džў LOJO0XJ _:}G/ -{vi/td'V:DXHx<ĿylXÀNM ;\nO{VW Ӹs`;)lO{!D…dO#{@ex#2U[FZ£oQژ +-P +K߿%P)Q@fWT X cCb:BrZ0?%f9QI k3 +p>ڞ4"g)0dI.UD+Y5b$- 瓋b^ fg3[ +幓-&Z^~OAoݏ.( ]IfGۀM>-ω Y%lcWcY&jԕ?Mڧ)y +v2+Y\ŜIz6\0$ݧ}VQH+H*/"~G?GIݟIAXBt_HH7R9χd֣5I_M0ʎ껳XCuWhf'D֟˜LH|^ xS۳LҊ`Jb]nR*P6VP3LvHRꣀ;*lىF+zKs#fڡ'\yȊRµDS+/]m,WA<6~:n%̍LMX1$l8QM(, --3/; 0v׵u+ʞ-ah&\Kḁ匘jۺ<+)aSV[-rFߣo {,;j,iD17^W)ɶ1D@Y^f m(Gh*a:~g ՂXvw &.b" = pz`¯sq˸sW~@\%1-$"׌ڮWunA^)0 +"vQLH?YkcRgAF2u_H8s#QƱ@ +v5;YE[D+}bx']2ωX+:Yt$Ra4*8n nt'F9 geIW1v9qjMw.G=*O{Aw\JCWUZFLlzGYūpj?v*}鈱ZEb]U @? +#m+X@>=ZsN=#=T `TPlq0*?g53ua,^.$EC:@4}کR}WL]̹=+5u1TeZK +Saa^g'/:v+@Uzq/{mB2oH d,LOܑkEv07aĥt@,\x#<~3sxL5^Y[ +8vr,sWjlWNVZmzjJvZrն'ua5lMV%]|Y:VY)Tj<&O>/}H&*!gkqU&j&n.Ԙ92݅{XhP4Ýݸca]hO5dtv!zxL2>}Q=q =ճU1/+C]kF[ ӻL8ͫI1 +ABuA5\fAe1w7E'-j4 +Hn_ѹ Ta/@2}X H?}oƈtG{̈-kp#>E(#&A̟Pl%&?Fq+ˬ_}w\䣲KmoŠ9JW~.{->mG I4 #k1MpLf6N 'B̜֚?(joHZ'ѧqYӧkD$Fszt!x)a?j^^zΓon$wú*9v 1R7C[vtܧFX#NI2_1NsunA +g xGluk9E.-f0wd-DytO +?g "҈ o~)mŝD!& +_ }Yobg"9 0 ñ\qOb|2~4WXX?oܺ|Z7F6jwMFFt}9 7t3w!k*R,] +sIyei!3Gݲl4~Bz5 ɤ{ Z@g&X܆ZbŘ߬PgS؅cEV\V2i9_FJ6o48;Zs됨/ +eқsS'?LL:`Mf + Ɓ4\9ħ0ў_Hޞ~"|Iff~hkN呓VVqD5tqHmnҭ_ B߁xj֩Ӽ;,ºH#4[MRp%5+?'tN07PlmPAzG]F^mr9Œb|eg̡y㟤k=;4=4)dyԋqV`0He~܄AѣHg] 2XޞY(PeO eX>&u 0_jJ%VWAS: +R; ֔y* +Q t䛘)cKUnna 9z!ga(T XD9Dk>w!I!@@<698;P)o8#:~<k}.$ cvFU2WH( :; ɬ, &ixڣ %\#e%ּRk5tDLs̑zՅ@Gy, cαGKifQx^_9,f%Q7y5&oReROXN^qeitB.&(NY0bBBvOwSB'rH=^C Ls^/hWNҮ$Kyƿ{rB".@o-txZ;-`aPzv58ZJv@0R~v13%$¢F\Bg@i?,~G10C%t}wa q@z =-`X8 T_c.p4!XrbY7[Pr݉ ([hQoh7 + 46Q[LՑ" PvZCհ;Ye=C]yn^?]L]ph!tVYڋtoA*ԑbkma^R,vct1x?Zad̛ + Sâ^DߝX4!2߲@cYX&N~F·& FxUҢhQX5f5Dͼ0v?{y)߲,@>H_pR/ fi{c B~zbvN RJ֔n709ak0/[ +3 +Q`[5Y[G\u!]Om BG@jd$/d  h -s CIw5^tqIt-ߤ[F(OF~@lz nt9ZA t"ʼn¼tM?[ 1DcGM۝J+NVuI1@?/P<ա6kگF1r$}t,r@y蠢FHd֤ͼVCW\5;3()pOY>^Ӈ-QQNN=:2Gf)}寸JJ8ֲ,D2<0P#̖Hᑜ +h7i͐Iz|iɱƃ sй>b_h 4+j0qq"aJ{=G}VKzDo2G +!h9֔#XY}q VĤQp+ZAAd|NLO ]mZɅv`[ۖsiW>xL k"Tn FL%{;јlr b/Zz>Bz^r+|d\l)LoPkg$T?L(S>t zx'`6%`}S& +Vf9N 1L9l1gVʸiklӾWQAn7 ؃uE՞Qj\1m~~^wSЀ3ՉCiM@W]6(rŇ.4HRS#,ًHQ5Ei2gqA#9پOq0^/i_Q!^dZz z<MwTk*@ށ+Rf#r۔J* D +6r$ @LE=@ +*6R5TY{1+؉Dpk`_51ic/7|t/\og({8JNNG>G^OƼu+`~\Pm )ೢEd: ʨdk('â]>_o.SEC>^cUY0) 4P?}(%>Nl 0*dԖߠ<>"Ihw/;qI<=j ukD ԀXd \v"bBK%ݱ#:K^TD@Y;`lꛃ܀9KB,UP +zB٣Fʻkmz"SĞ(KkBz"5r[ /qJ. $ +ХKR{C+lIE[9xV"]. +h ffIݹGٸО'YԅR=e`3xSrs uM>ʥΒ ὏$Y4f3OfXG\u46Ps-+5$WZb:}P%4#sj2Xm#yV _n>pm D2ChTkh5^U_-b$?_?KWd -ଅfQs_EtMZd>/"|G2*xC6!X٣/gbȇZ:]..'`^R' Uk&\PH8_n?Aq4RMRg߿^vIA^BV E\n . +y%*Y2"`xyw|y8N<6NbV:{jpj,зB?i5o#F"r˕BITZVd?dI܂t>Xəz \K2m0zek'Zu=I4!Kfhz"Y )`|٧op3[ec|UYcGcYcyB'@bJZ,M[z$mݛ_Z\&/ ::,$cFtQq%3ˠޓ)Bw,=8oOi(Agv߁z9_N 3Ȼj&&{ef_Խ>d*G9,VG? -E6\]>T[IѶL/[,5WB|;<FPNSCh`90Zו!+ڸ56 밣7#?}<4ر?b}-:݁,hxhx0I$)Ý:ٓ@`ڣ{l.5BznXvl  hGum©c&K,pcm5#un]?g?sTOď.S< r!mcý 2PHkPG{ ھ^*^_qlMꌂ+JPׂ.ݹMietC!sv +RT%LNtj_!C]J +34Wvr@k2yZ2 } 񢨃wVx+EZ^Q_D俕W,"O HuLy>_y5O<^=Li<qS;#'黶âHwZݡwkytd1/#;"8kxmώ>71Ikw"zްsGHEپC>ǝ/B!":#z(/-[!JMrhR?7iEEdg<Jj_oS>#vExS[*1uؤ?VTU[^()C_?O_V~o<+m?7w*mߣgS6XoǷX,\xPi2@XsoEr{V+hXͧ3y;KGA`JtwpEnuHR,=v3l cAi۩(uo +؂}2qAv0ʌuUQ hubpmvF.Tl;ۯxFQfibsЪ^Tx8gmKi'}aB^u/ps}ߞ``e\Y*hRo[0Q_$jD[x)[wi qU"Һ^HWe4n؉>-BfI7KP1y/RΌ=0 [y|ђ"b~9:ˢd@jaCȁnYef +?L$<:@G}=)GTUC|ST ']VOC%lz d%Eqp"%=FC,y܀yu0AXm;6adgFϜgK5Q2 Wf ;1C;/sk!CWs꫿G ؇W2՘z5q107(Pnem6לƔH 4Lk㷥e}L,܋Y1YQ#M:u})l@y0v<ѩ;g^wj$#k(qM:jlI_ xrmtvy N-*4ޣR7BqVcu枅KN _1W[KFga [E;.Owt{0pla5Tu#Kt9Jp7slɕ .=db{ ab#I.E<7y{m. ]"ͼf7#Faʹ1+~5t"mqYƆHf +t6^)FgUҕņ6Ԡϐ#Ow]G o0M~-qb Z{蒬k_HE֛Ct%(2-wԎYZ.΃.+鹳urWYz:^} _ڭ'!5)IKW{8團9V#QҺ" htc { '91K0Zɘ_7 ZvC6!X:\ ־U~ΞD8ꫮ5[duן}b +lL1Kk_cI;o\wHmyPAA:TG;@Ӆ >XaP8(=i(,SɔiSSho}P&.&ݹ'_bM]- ɧEQhʉm\ H>i&Ъu-{ 7^P 2[S C:q [jcˉCc47yYo qs<04 +_qR7>Api$eS)unXoI|)?=+c*Xh1t\jg kEx}k}/Z_ ++? =D- Jı?#xPK7/9⽓XNFCOdʈt)^{Ji}*٠)Qdlvdڗg`|tT.H +)6pRiEw; ?'Qjz0~3R̚Dd +) XucҺb1џG<= +Sj[-Nz&_[>}xq?KkdBٛ]a/ц*(8y%~ 8&bGQ'^g{]2՗P&7 +6di7G*x:d/ BJ%s`5:5Lldz} ȺFܩ[FfܯD 8U +^}K@+9kC K ً< UwB"B"2<0'A7" q_AopRwm$Bpwh1,s|T&9˲Ҍ'G]@R'Hb5u)ϝՒ,*̥ wẇ:%E( &4'Yxs)>ԉB@z ɺt2YU)q?Pԑr}(c A &B9i޿1+/Wx\D7 / + Mg m3pqnUuX_zo{Vs_Cӈ☚4 $\ `&I 3~< x} &8qTyg)ߝ^=WᔽASIQbbT 3ɜ/m|M!;El+x]>:m*@_ġ8JN[@7yGXJ}dN# :IeTC/Z԰-jAtrnSGNʣh&S̳'I #mjw]wy ݇αRoT t0|ެ5w9CX0et讉rkWJEYA4GO#(.Zs! +,_@fu(~%h! Z_A[(ۉF!mSΚ$g(/g1OKgH|׾Cz::M˽zk!TH4KB7S2lօ7V8]A;n2H/N)N=nbMb^ +D!m?vJe?Hû'<@M_ 8$׻O7h8LQ~o&X/%vsIP hIYbQMs-Qd ;M;9x9Tv̍#>2@j{GJ 0҆s0w$ڟS7Ou)-"#^`FJ/@lO{7`³`W'B>:P4P:NW.4'vDZx.L׮]`6*Gb.MX%&c/~ +ď DySL?V0gu9&C!gW4\s\wM{i }A)hr)uɘkUTbzpƁAǞGgoh-;cO  F43n׾d>s$;K2<}h<1Ϻef.(h\p.5-<[@v܋EU33noYDP䂁9?.#y^ϢftWVBԉg jcM>`Ŵ +6գ}r@:M$oyQ 'F**rCP01BTLh_od5σ{r,>bDco59I<ˡ+9%W˸^NVw;]i݌)/!_|K+$Q2y{!hBFjV;B8cz(嫃J_z$stV3f˿5 ]Vc?+41\=؃ +Okzw{WXjCx\?+aPht}BJx~RU}KAEo˗ T<>J+[z9ҋo/,,S +^@{U? WF,ȐNi}Kcx/]@~|н_ƅWSAχWSLjXͣXf8vD\;!4B F}v(?/C _.^4DxQ"Q0(SO_gKǢƣ n5Ic~y H pgTΎ,h\`481nh|aEp0/E,tcYR[:en"/@| ? +!ͣ$f#eڌe:lY}NlY@=R\u>pƑ>9 #]]~Ù6S;㔽3 +g:TTqM%IMw(ѩV Bhx4My}M~;|_g+hDP^;D,dZ4%LG[9l΁bIq>e/[2?Gy /SUsd+Pcԝ@s3탡 4:tg9xQ{`f^CG0`(桃XjChyFSB "!զ0YІaP6F:v5{Йn>f^wM>`Ĝ}u'_CK-&/UOU ZؕP"Xw"zr[n n;n~@h?O휅&BϤ[Rhd_Y;^Af}Ĉxth+7v+t/qy}}F e)RI+1,iѾ8aJ5V.NSbD^]H/(.'}pY!C:J'A K"u rm)xE^f<6 !fȏ7g{6n%ݹxR"%OS; ߭Y:΀؈.]6HwWJɧ XKڍ"cɅF2?;bhU|P*D7XkE0 0 ɟ|L?J@ ^Ӌ S5ex؍b[ פϿG#YKQh +˳bpC7:?HP +^wlGM< +)8'UXwKQbı^OA ? f,gA!k+/LdǙ]k2|-3tlM2> ,1șL; 0c$wͥg>x^R /ɪ˃(Il'o^/Nf|wA(: +;do*:_B-tP>F Hf?fnc:8j𐾍]7߫u ǧmrԓ/Uh-˹ }b9VԬ~)G290#;#6!:)J_F`7{4yoio!QkH?:Yuxݥ"a&zzn0UOD&K2SJb/;eZx0g-cry.$ȣwͲ͠_X'Ċ4Y ̽IY_ +~4} Ų˸ȁ;.YJGU"Jwj" x!ԎOޏyYFVcbI rKʉ[̒S@4NKN#yE=mQZtHqN)* ŮWa0k#PP~FiEl.(\ Pՙɵ`{՘2tNVھH'3eS_a=z v5̟j#_u66 Dk%#\6nFy+Ef2O!W..E֊J̕a%J_^v#k}+o*\pfm`uyyF!S#B.>@"/X5~W> +ev+~].yE;:o.r:*aY*oev]t-w=K5^vqh"$k`rfd# A² (BY3*+/2\i~,I q"bFtqt,R# t*WfFlu:RV\R~5A?ɢbߝV +MmHCK{ d {\j |QL%4-EOH!wŘYB=\^6*_fGiM7[mxH<Љu"nfQcWJ=XBVFXvu^d((MS0Jc[ E>#jj-Č䖀 l%ErJreDJ^z9LFhg^$⵴,ԶT\c=ӊ;ak |IJhz|1љ|1hRKSԜŎ'Oљ\÷|;|ux1g +4^7Gc_"[ݓm; +'̽}IF?M;rZ2r9oS3r~K$im%6͝ kkSJ.~L㩪w ` 0٣e48z17t]8n#_mK(8QFWEb(L+m-@i{[O4d" y/RwF#t)8.Uo*oz'ÏΣ8!ku>S_???G}$'hPhAl-SHmn+WR6P6)(>l +:0&7nPQGtz킖3'F/_lty'n]wJ-n<_B(4IazflLiٔ&C%"h4v 9e~!K4`%֪ZA +ۦ"A+mI}"3Ӕ(\Eo$V{Uiz$,&ƩP/H2%T)d\DAF\XSZW/jSHt3m }Px +$W[֖$I`wL׹ݪcX9bSRbRI]i/RBj7^s><{(e2@N aGɲX _rj/ޅ Ks`Y.{] W.3ȗA,fT? +l#l-|l xq9bБʑ<s|2| Dڌo3*v0CV( mXeEk`=r-+,:"q:iiz +J*I a=N4͋|-tMWP7CYxJ5=P<&qYJuWDŽ=yE)#>nWR68~zLhC/.Jndn?cMċt.]d)Jy6/xޢox죛aq?"> ?EPʜc.e>&zs(dK +6-$ K>8e 7q@qlF_5 }e{(}Zwϼ3zPnxtq="P|`sgן&W 3q~Jh{;c a>J*3UD׼G*O0kvҵGӊȼh1>Tޤz0 5zBxC %:30X\莼ڢMwnٷ Oߗ!rs> H? L +~.4Dm/ަ%y¯pwj3Z[DmZQs`F]*9֒WN$}-:< [0,ǔAt-gClqUC*&;]Dܼ~K;Pr'޸/CRчO +NUsݎ h~X /¿b7 V;k_{HvRZ5F #VW֟aoR 7[nle3[.#lylT+Ѳ:` +f~|ZC|)t[Ew5#BnZwBp_0D"02)&tosý-8fbY)])NOܺ%Rk9p%v */p꿝~>~-3ڷx)>;3Lz0AC-_։6*:y6 +' ש̓RM\VrxĿmŏYXɵo|{ΌIuf Z.bS/-nd)M@9،}x.bugV..o`2iR$\ТRr^(ut _]U5$ӐuKKyh`r UB Ge6ܼQ3ԍ٠̘#!gVW`|*t%IBEQNZcGZ>!ք߂ +A)UQ"iP=\ rJM2 e3D0&a Z=p>KTEz7B F8)1hM?tPDvHwC7k\E>(Z)Nrӧzy}w0wNUjVu dgYi^7 \9+Y4ʎ g |!kcv7I':3dzq#Ȫwj:Q/5#VzdCrی:zvҊ/TVbjh~ F-&%x^Cp nq0W¯[*#{ifn_ș 14pSS"mPhxJ?G%bߕ1PH Ctet 5Jq&$:]V>%| :C0-q(IcA,R6Һ@8Xw323wԡpݨ vJ +; LqIGK* sPyzV)9 +5r^HLzЪOPgaiO` u'~K%~ILpߞV??^^YH)֠(\0ҡ+mR7qxQ_uįJۇ*ekpߒ> Xǟӷ̹!Ptגn+z rY 8GйBA.6UPod Q̕G<x 3qةˬvK &Hl'?&D|,Z:r>7\pw9J-Y+d6ْ ^W2sx>^<1ȓxtP21a KnwA?M]?L`xʣgz"nw5?$ynuhPԘ'E f͉*M_(@̌ADsoaV5b,6x4a$lP>&QMLNMr~\m&q6)¾F\&h?BqW]9E `6<[Jbȑ;pbԃbKIvH};FTC0(A?ƲȬKΰZPoz"VFܳڃ᰽G|TIes# ]1f5`Y,P<Nk(V[@O͇FOSkg蹛qc)Z,m9q"LV0ka{၌Gb= +QK"a]6 ɸ1~(xu›MBR.h+R'c+f>1tELZ~ﵚhNq1fDRyHk)^m'I\m&G\pZLv[igb[e)CGQ`?9g#`|xcc?S<=J8SBm((LrQXCf pW# +A)U{ ADeiT_4ajgOR2Ta6>s*u;t8bߐj(f'˨j2@LGok1nJ~?tXA`eeYmi#o$=:7^5݇ uWaX5>5qBotiSk{lug?+W5ʎvu rT^,PB]R[[/u&ud7Rwe'K7-|¥ q_e;Wك_Ng|ۙ3O܀j~+g6,j@ Dz?xڂ_ : x" s硢c? +xWr#QVSY]ػZL 4YE#<=5mm7>Jtwɛ~jrO,i~[DRk9wmpVB?;< <8-s`쐽gP1iWtYtzH.3$ ~ .z-u+u׺>Y0 Mi Uzӌ,N_0>+фܙ"u/8ZnOgCGXw]=PtDgiY~Tg,?9Iy'~:|TEN#fax)M0!+0CxՒ6my,yjj)6nnL'6)Ĕf7 b9si`"' J'ĈXgpOIx0[)vJ%f582j$d 7ʣ`-T51lkFdu[Z@AMm,g41*4^? +2 a@4I<@5?fI6.exTxqx(#w*ϝ)|,Dg7,7o, +{9vsg?3~^؁scG`ZSS6p*9ȧlx[.<وe|C At?L*v'y~oK +L0[x5(/s! +0Bh`lr9<ȱ.m_ϟ#fj|=qi^ @ d68M,%= 1WF.ΗҎEXnǛ-(nQ$J@x]8태 'P*;KB)ѻh;U'CaTѫPa.yN4|}|:]>U +!O4Zu2tB;d*-J^Q<UW@}h9ȡym8l]f~Oi6zdZ X ZEI O9=h?>bIsY4^h=Oetasn&I07tbkꔂWrSM)m_zR2hO,M[cdW>E`xVk*{WRv ֯ԑu + @$؁5퇕t%7Zx.O(gy%q@mx(4~541"6y0WxҖε#!V}\rx;0t2ʈ0gWhZP&n)/5/kMmPx#s[>ԝJ!|ڃ16c,B~tcLɻt}d_{4X-fiI-6ȑOǹP 3k7vh7I42VB5* Ou{/A\ +1s/&H}R٨yܰEHЁ 4|߂ uO^QKFQ=c/9n^iU65cɄFS'Q+l~-%Ql&qu$|{i8 ]s/8[BWn7|ڛ ^DSg^_vXS3[R;]x,:1,\f5Wc̉xl&ww"5FjԸa$9!; v2aк{#ac&M{1n8R7h}84[Q۸a̰9>*ZP%$cӐz~eF2ђ h}ƽUO#3]q:$Ӆ!*.kF"S_wx2=K}f~޲Ǟ$YF61;L/pEQyBfצd]{,>rҚu=?al@›lx>Cx 98-ZgeXK{:$Z32RK2r +lhNm*7uy qS9 ~WYuNޥlozz|ˏ]9A{W^Pcc]u0gY}>PJ)R1q!a/@w]EI|>&\D~ 8Zo}&~ٚMunE~vIGqyWC@jz QMh zw[U$[TQ9+T^׮ *d^uE+åQпH +Nډ[@dO@ہFI}L%g@ɠPSG&rZ>,b"_I%[A+ SI/a|(L% @SIO`Buu*i"5댱(/}^]D} TjȷP -&=B@kJNl)BȂlcE@\:DAa0 4|NBRDnCb0`ͻZrR|+9}z^vZ:NB5Ł[hKJ``d^k`V*R!6#_è&CR3-UeR*ύ 1f{@42ɸolbϩ6oAegL2mx%g>䒮ԡ]:8_/2%+o[ +T[Tv@a0Z `7J𢕖 z +rH6IQ$ یQa M}}LH:mȁм;Ep瞈e PGF8ك9McQyD\T8E"쀤y@4 "|d(_ Luz +[?ـ=8bsXhqf)lC9<À T0yP jz:rhmƒÍߗ7vobäz^s?m{o *(]#+Kejm ] ~?J&6lD{d  |M3qM]vx t k&PN*ͮ#?bbxo5"Zzs@,)SĝSR;7BiϴhKhP$i 9<{kMVCГk2^T^~fQЄ ݊ulE>G?Qzq\檔1Si S S' B}mhն 7Wwz:7bi[2-M E221o^?ImI@W`rۅ IAh{(n1C}0hdto +H]\ɨVaJPr^36Qj򄩓t)IOCL002]3[@CaV0(77_UELT:5Y=@ \k_XZ C +KhfTc?p7^eKQ(- +  vS'}W9BDuwXjZ2,)g5lRZ)p]m5<j򒍂bLA̚,_-+ѧI)2"Rv-r]5¡exX?'+ױp\)(*(ʷ(ZlFQdw|(mǰ5cLLHz;gX.U]Qi/Pl; $cI_)ُX}~%A3u'޹(}2+nuH  ϣ=>Y%> + h/}Hݶ#yH踱cwP0=̀IMz}eSNQ>F:1|4ydKج </>H;F65:BMPL=|OcF"}̪v`F^[i59D0)ku;a/!n_ ~n!f1JTuUCJS(_Q?tT/Ba<>WCA,9Syf;akt5n?ހv]te؊ ufYڛ>_Fpr:=&>T^/0]ݙky~Y'SͼGz Xx +WIe mL>{q#8ChP*a.Q$}? Cҡ&کiₗR F7Y@"U)qBxɛkl} LX"i*{qfd{+|շ!`6it}гt FR g rE揣C[dClk_~K3Y,B[c,pQ΢86iJ\ܖSC)7qOKVqw.|N^efق/gS8J?BY@)9/ ޢoۇ/ +?hCMQ<|ه)?2U/oWTC!ʏ+72ǝ7Hyoj *a/d} +j 1}+S(~O)~f23~"̣ 4>YW@w^3nxZ<xhדϽSSȽESsyp|nUusNDײ*Cu̵Z(~%gO|ؼQ)+M}wJս&ܜ_6I) O J+sO1^Y[FjtacLI}zn0>Invj{zaI2qQ~\<\ma%e˄G_\Sbu'c{gBƻL6}YϤ +|\5<`QZ6*+f ) _EFLmj! B'D56E +-sy%bh_B8VI^9 Us}<5%~G<,:ϟU7G脺Rim:N¸k|ս:& +SD]xW/8Z a>$3{yӒS2[oQmm,LVbdf7tD>uaeH༼i_{~wZa VYˆ "+KC""ӗ ++,)EV"+\PuB ;X}1HnWc% +U='$RЪn#qBqճA0<;l@+?pTYD/E]C =1yA)(b!1J"^t7BeE@hD/*M(F5raUU(JR4#ZU}6cb\ R.)2\4RHu|]?"[_% h?`OPc O /OI;;MN%i^ī %W[%Sɧѿ0@b2Jlo$ƽja-ȝŷc>ek9a2#>; Br]n *OMQEC<|lu V}Պvk,@/ g@+mi}`9+daTQ&>|;.%ķbWY=ݷ:xBl=jZvi;G9(YYG.>D2|5F @GKVl,wt.(9Nv@ ssB~7A"$+puiP@f^ e6CnYꮆ"6^Z;g +sa>z닣*RZChT@E״ZO:[R,^Ҿ\E6ZٽMVN\>׍H],XOJţVLwBw P;Վٌ1Ǩd#V~}0z~Q©S%'AqR-U&T!Tst]>, +Hǖ[ErH9.7JX;: ol,f_"ѵTDYEy +-;{֗1stnmeEJR$QQʬ>coLЬJe+,6rʡ?@y|S/ߺ@Q;+@2dJJYwyx&Bg4Fd dYa,&Q"9?.riZQcJ:I:a h~m0C%]~+l:>l(O]_%3 ;Ozfp*[rrd"[ͦ?g:Tr1tYцMZO>)sGGK=0J5V)S<_$,ly +h+t(OM'舨RY;8ŀf}eNMa} vmZEF@4% ͼn*sJ5So43(vëD]Q5)tz9B=o` tЩ(‰lQQ@hwӟ4r~'0uxE1OܞR)Ur,|AdԠ>ܓ%⌜~mYWt /\^Ķbz}? kWSUG@q#y͢%F Fdm(v2NW]d|R?lkT; W^]>P]KAI# rF{NؘG1f(Ϝ'iZi+5?Uk˨(ۭ @'fYFd2vtb!:&B+aݼzVS%fCSB ,ԍkf!TYеqxO鱵@(r @wO)%{l%qx=\zfxW[ǝݑ6 +*+鈺p$ѣzcf}"K5L>s S~YlXP4kX =ΦS(2g %HGNmB.ci 4WAK5U;(Y~;vP?`abXAV<{ye1w>~gRk?ٯdtuYܧt Oacz\~,ܾI#6d/B] q;ym{%n;5dءM_Onóp2xP c(A~j[//*ԙ5p4x,Wb jHw2vַ)q=oM*a#yOJ?E\cttzV;Vd}Q.9`l*1ޝ/)^m\hB2sDb ۢuIFxq'*y8J[_Q(pWvWs׊"J &V2}\(/F!i fYPMh4zݪɬb};Rgr}ITπr +K:aufZ5@8/@ֆϓ77(èuŋ޺ +^S\:g~EiT]VoDe)*:6<| F#/ _8?B^mqa*ۉgf2PXjk152[mf-$Zma-VV_V|.d-|M![]Z +"#b k#1#mR~, :ޙNԦt/t V _0<2:^-VMǠ VU.ϯ>B{z,ja@k)dcÙXIr8~6X +(g!rZ-RfjY2O\.I˩E? 86f J12~ԃ]zJ{r+ӷtaBHi/ 昛t#aVUɚ, O97<4M&;Fl72c%GjqNюvGhţmҋ FxBtZY8 H$誚 <ptI(eUNsbbXs]C+$c +h6{1,3Dֹb&0+ܪj Vϲ;^Oh_^XiEw/56f&C77W^]:iuv患@`yz[f'E8[avo8{I*:xMYn{'(ŝQtuso5>!FjD9ȥ&arn.PtYSG[X] ŏ0bqdq,fY55׌MJXo'˺ߤ*REN =I4V<2θt撹§N3suTƆ Y49YT$%$  h 4>0t/2}K3# {"x _XdIZUys."Z)UC?1dTs~77VP/&教1%x9O)D]cuD\>L ܆3a]*Wac3`_ͩGWQyO [>^Z!])[6qnLgRg߀Y J,DKF[Ў=W\b;-Q?+a?DEa4;0\lvY91ٜ9&n?ivϱ6Y5ת|fB0Ϭ})탓w*[Dc"^S \do(*Mx;L~/mw0Ũ+W|0QrLA [wVV>GA'Ѐc1INnt?1~z}}}KTD[UmQFuxoQFv3T(b?z3@.Gwxl}|L2˛(KPr3` (2\ O&A7?&ȨD_yű69l-~whAO⏝ZLԓzzI=aHCx +}q+0dSl޽.otaFNNJbs6 + H¶#|L}JŇf|x>DߞUűyW%n|.G :S:S;}uq7#K-榌I*Q+{Dg%)r<ڟLC[1UG=QOU >$$:7fA/2>mn+m."sק-bXFK/J?H=M=Qf|u SP[8+!TG0ֶ+\U[ghq>NaK{ O,{ h7(/5ڒnj*etnֲ/Kh"q,] c{KwPě>xoZ&Lޫ/2C v`1H'_h`vԆzoRs涥De25gMƶ.2<m$Y@$p7r`v01oV+Ae[̠Ibh#އV/09Qltrh]r 4nSrRۇMtCY.C]uRP+|7_a|4@V"ڠ=J'肚 %'KF7ĥʧΠ hJ?!R>gos3/Cڲ2n]gjK!yob~qtbLv1Z^nowL ?2'M1gBy=>jNNҺdzy $ + +klhn4(dg:+@Rqm XiLR<_c9;+֍~Dd{o@#΄8p697DA?ĝ"X^;D*Ho"ZG좖}==_–=bvhgrghyE3A^ڋ~olGtꀺap;7́Uͥ=?gm3~%VUjg@5i؃ ݳlY QŻvfi#޼uؤìy0; +ȗG#֒EWbMf2ݺfL( Ko?r]𴡹P:hx%-Uo.*5]S}t; xVoVw@nC?9F~QfR#w\JHVyuDڱcCY|/RӀJgP)EjTjբC/: hfrx4xI3WD㨔L^E;F|^`ohh`Oב;J΂TTy$@yVtxTboFZnhw8ޥ+Nt; q--?g9'ג흟pU aOߔOg/@f2 mB 2qfQjSaT| Yr5rtN 5ڻ jqpaG0 yd++b1[iSIBrjSb2:^kKW/ {i*dBS0z^=L C![>\ YyC9aC2d1텛JbBbPWP)1_F7rJH"rTN91^ٞ"J>7@W'T+_S~a64[p=2_eޖ;Awn!zTկ'>K{].zN˛ u lȮW|W8VVU'&VZX##+/S<ނ+P%Vys|E7:~{Cf GJ̓A"&`C!;ܘo>^ /{B7ݥ'Kv77ZGk׆w繳fSߝ>k h,H=B&QLϾot܈V)\ s&u0`d~/Cg/JmȆ8}%YfcG:P?G RO/^${WՁ嫕ow?U`KIrVk?=5vlpvO$E^fZD &^\-!-= V3}HHےx,r.ƝK[iztW@7ͧp` +EU2hшJWG庫UdS9Ծ64 KTsSÀ(nFReRks"lz&BW+=y:A/j +(_mV=1x +Wkn^ZZ*Tx_M_?s2~I3`65 5u`|46Wp~y2+-ʐOeViE_81,5Gq"&WL>^g-5҄m^{i\qiŦYL$,E45f/cYS6CدbV|w@ +g?=@OWJjn譨imk;OJ=/hنhNS$`v\jYlJE ĒDE\Z=7)rӟZ0J)_A9rq,] *Juٔ"9 +29. !tJ4vh;$)8P-O0؂YY =\ۄT-2kCqS| 4㹍lh(Ǎ<'t9m؛b<'ۀU] Üa=DGJ+i `2B-p f ^˵V{Md2q=45}o6}h6(\h4䧑hbIqF `Zk3s ϧ>{k~0[ֲ7OA?jk@ZYm=랍s"E5%\˗8 ݷU,D_Laq>DL\¤]ȡu_d~Ҵq ו|FR3Y~%`j#ʦmjN( &d]=J=waVJ6A}?VzP =Z1Bz c us[,s),s~zM (Q*p QQmƜxݳQkŋO[.='ɋ[O{.D$IJ A@oڋ6d2nD~n/b^ j{3.O}`/^JJ]O V¹O +ftvй;MtR:?}׶/Ch:8];/Ww3[E}q'8JM=8fL>!Uz䭼 ),Vսj0 Xtv|̳eY^նQ .mjUD:*Д3rn҈G?_1\ϼ擧9K+QSkBIy㦷iOxzZzԂ VgR F>S̋nԷW. +.~)zGC_iOͩ%Ԯ:FctTB2c]r~'Eݹ,x?'kM/tD=̈n%9ij! /sFTwND?Yk,4$OOxH ny;2[#C2xƦfQǂ#'N0({ ^;F__CWzgDRORƁE;Lg` sJ(0V4&'u]cVaP V2SQ&"w~16cKV&1ah;{ LgߞUtVbB ofox7pu 3J:b 09q!ykGVvγ7]h}gqf3q~ԹG뎪7%=Hwњ2SaS#/J4z[:.1Xc'P RG@̥`)鍗^t)+(Pf݋~*r=.o/H4dOgZ)'2L\OUuO+By?:Wre uE.s-@5w-;Y[(CX__@15Q-VuE1DwpY25_#G[l}}}z{^{=s*3Ei:-pDo#,`g1e_L -[OOgd /mv7_|Gje^~)>t)йp n bѻ=|2̀>՗q/mֳ+i@:ˠg/?YsG\n a9%y~%[bY(N=Ēy~ pR~LA`4vs0,-3-R%楗}6aJ5{qx}q3fStvxJ7uYCp@vLU,NE]8H\dMJGcRbp{Jzd=hR""Nf[>nx1* 1ڑtޣsЊ+,;B<ZdBVA>f#\1 + xcL ik s:}bam]tA}F7wjYtD}hq裞VCF7GxB{|mH]K\{XG4}=fDGs_PJ,.6:Yָsg=:t؝h;Qɻ ޕ8-"PTygxg΀wC+5νPVJah:* WNNˋaAT"Krc2Πɒ&KT֌[.,=q}.'4]#B[`H]~G9B_ R5 _ tݧ>Lk+ H"k.C4z: +.Q̻ٮET;T!{ #(Pva¦qo6K"l+ggu0VYl ۅDIj4JF;^ke`A5UI.+"2#`557?@_aU>!/䳼 =:dKVU;Ew*ʈ|[zQMSu#7'>K`9vzfr~v`|1bp {ئ=_oށD9Qk3tY⡬!Օk~ܿ!r֫,:KR SZO`.̹7n"|3m8dNBn|lW^ڒq&n31:i}7t'. D9TK# bz +˃Y}+S!+; Qr!Fd YiÀ.op{h1wo[Whɰ~1y*׮nݨ_AfI*hY-1WG9boULLS]PAsSqIܸ5O<&r?!S[]#kݣvw0R͟bYEU_:lieǩ)x4tV!)2Guy`wR~@d$֟T_|)NSr a>k(b Wf-e-CY >Wa0 f넾('z@}hAF=>הּّ0{4!QѩT &+ 4 +RT9|Ce񑄸t<,~seݢg]dSwB̦TmRMXe0>.cn)#X{-w~1S%!Z7vR}^b*WnIS* jP=.^VWjuT{ZgDWSpJ9:ovӫc\Ե(1?USpĠF:f9Jz}yΧ*n]fȋUEYN sXzGT JMcz0kP}%^9z>bC;G#hZ;AmɈ$oq7J3<:BEA2lja|_l㘥\.Q\yNW";g a.٤ +mB._fB B@lLO 3B,];Lv ldװ`tC`jx7Cdd=0,k} 236&oDqB܁̈́!kK3BD- +ɀYf? ]x.[m2:K +heaՋl_>d28-2PpXPH#rOi&VGd/:!=rQ.P."ʥ2 jaYOz>#>[4.7 _TK2\WW2OX:[m7672Nm([P#uvttOmj,U|ir#h<'f18""ڏ $W_upٌ*xHLS'NV]] MwŮt +IvxJsEqS̹1렵hIT1ӖR!7dSݍ*|Pqqm/F7Dq&PZu׽:LYq?UlVzdSD z=zT$̜>#0 k=Lu$2B.Z#YdoPFO.el4y`ix^`+=JUۇ0}5!* +[U$uq;2r=Acp`Vnœ|z+/p[c +_3&k 3Uu ҅e!׵=#$Ye$ +IX.+Ks3-Y{8EkkHY> eo +)еKˢې u +nUn up[zQ"p&łxX=f{q=Y$ +J썣UF(@bFxKuf^OڝBGQS +(ќZ>i^¡ ڠUe<00Oj8*Xחq$"]twIGrcP'ຩ`C )[1PlyhnAIl>E c?|f ?5g{FtCP#!Ā*\n!Y0DXMy~6dc##zEhj"{7B^(7KU>!JHCYc`}z"tAWQ@R$,h16[A ƾXb}yn|%,ݏ- D+EkU}Ȭ y_bX {k%pyq[` Q9C)9F;Bc]xF.rfI=fI/j1=Gx蒎uH~/{e??W45B6ѿ@F^m+`LYUdwaȥljKGp#MllUKIk"m }a0j h\F0WPz]^RqUkRYu +Io2=xn=&y'+PM9NsyI&oR__ +US6* +VrK1^LeåËgþ xSɚ Jˊ:>\̘Eq̀&*{ b +g >bxW8RrNϪ)C9U^B a~1"I!Ļ+4TLQv8d` +~0VKדXG Só,5 +rzA|R /Pq.WFF= >WOD f51% R;fCLl S3ft~pt=,N6; *EcJ]q_W +PKGy3~(5Ye?"MeRt /jt:Ģ8 QfJs)Z:֜Z85 d߰"B:z>EhanG#|?u%^4%> x]GJyK:t?|>3=bZ>ڝFn.-Rgv?~&o%D:|V ./_P<][e_ +JM8C'{>Oƀ1b.r^67GjYmWq NVr%65?(cSx662waNS]?/`2VZ ӿAL,WfJ#+XR,//T]^v55命M%xDGیh-)nLkm.:K $|  >}`V{fbeYM_ '%A;g?A Ad=8Xh4F^1K㜡iz"? +tvQvs%cljkޱTeĈkbJԡ\&\Bs u)\1 ;L~cLD|Kމ4[菰R C +OQ>>{E{f wb.^cϙxw7{ƵFi3:ݗsx}j8z"3;c=R;#u?97W[d C]<^lfi7vh񓨤ڬ]d/L+G|6ڬ#ivp"R޲~`-?u ~T֮%3|ŒCΣ]G;? +W?[>(/fP&&bI +!^eg|kj4([o_A~|̈S]h`3lœ}<,S6S/0W,k[O߳IɾvX %kcJh`m!LAuo(cE}3}+_7f+skvaq߸kվUnK1;e♼"v_j,g3O_F#{%{5|M1^Î0fk[]'i!!)M410'[J3֫;mjk`9dr( 4ݑj.{ǚ6yœ;%LxKv45i+{tO8 tɣZZݷ݄==O{Z89;-vi~ ml==i#Lc*(or< %  di5דW.7/wg9xdUO1w})4JჃ)駕䆟1O Ά tP]'" 0f "2ɰq,'g N<{ams.E=©Pthȗ1o6y+aaȅExڲkr?.x%~KRհlU_U6/21"څ\Wqm୹܋OmT# +=-F6`=R]spu-;/tKin'K)I{rmv G~ }gp|+Gz?Eb$\/ +CCX(EZ +.#qӌ- +3*ҤF-͕\JWgs)a;=ElM;mP*vk_(9&%X DZ#H( FK}ɀY8p=pS13<}` [<ZdtX+|[je&'Yj=`Z܁HX ֓WJeشoOsgCD`!8M\8G?Ylriv1ћ M:2s P]k7Х-z{w FT.q.9lŵp80QeM=YDlJ]"ǹ,S)XîB <)ډy~Z-ۤSKT*Mֲfݲ +*FTBT,Xb^|xb: xӢX*ѧ0#0K#*iT,UGŨ,E1 +`gs25a:R4@ZT@F + u]oe#HҺQkDxI) +| vdbea;/tKin'K)I{6 TuKud;j-$̝Q|Qpc4; T ɛFd/%JjuS݀T/N e†0y:#)]1?bXb"}:i/#6/"ކˑk{/`kѨS5P* JuD +d +cFW눁oEK-h2u uuZMɢQ' Qa*'&w9O2B'B`ః,#8R0vE|ʵ+tI^6†@KӘs|1H)|M>Ĝ ВTy{;_b!--o)ɼĜǬm?gc+4+%&fXnlrf=Ԭ&;8mJ λ0a Rfq1J~ðm[[dZ;bp!a [亷ʿnڶȿ&g[oAzQ_Vr|W~v汕)K5CrC;sSDYEMTJ)d(1`]O# ????e#T5|N+{x ]1e*YߐGqެI*X}U"3=Cْzf6,5 +2I_,)p-'+պBΠllPꈔʆxn}Qِ?C(WP6OP+2 ʆD"9RiO\Ӛ9*S|%T"]سE [9TpW_Xp-Y u ߎz6{D%Hv5:~T+OðD(jOqn,:P[<)vhۘ:{ZMA ǷP۷;o`jS/=2 cccSEY;(;Oqfq\fjяv!;-m;7J1M >g7:2fRsǭ a8PBhxNQy2mId!up4xm G;_ItƋ3CGø2ą/D0]?Tg`THX{nͼ.ahR2ա$lĩOv͊S +'i'WNZ%W W{Z ʓ+H?U+OҖJU.U'i[C\\ӎ{*k2ad4hWXY? QYfi珥;Ҍ ⓯9}Z裖Qͦ2#$eȿ SjB5.GPBFdlvĕfuV,?XUyyuH1]ytJ dğ$tU2kʣk: kZ|'$ud,g_X,1lTK\g0K] +³38qJ(F+]^- 2Ŧ4nK w%WM7DW~.^вtXKALVf(uU1.[:ᨪ nx^;Th8mZʹu_9++pw!usݽъqSrE$_QRH: >K ~C J_-L oPm&k/`YLRn|vIU_+_1A<+_p5/%53$Î\" Vv0,E@SxuQ +X?*uKC*^>p<%xZX^/a^P=&7$ g15"r -ee9=PMxi÷b[Q˞QC,bS[3aPKr:) +.Q+Ih4GYLe  )'dTBYrk0u|e{i`!`%nWzGGeQ*۟iΜ2wO֚uP;pxQTZj[j3ިT`9ўUM:v7oi0x -1@# Z 뭧Ld%[+0_ $IgxGCC,&Q"BcFe'KշCOlBΜ?R[͏пݟj"qI91 +!+D4_tE}$cA(HLQVjyrV{\l() RafwIIgsҹ(^HLyHsJL~ۉT}+/taC'y0-2;՘i~o+E>X9c{qww3-Z}/FCAOVsPC4/ až]m-k :Nlom+ubs-t;-Ux)\4﫷Vym/=({hM҈G~FnG^i*deGv6a`"8!ү'WɎRV¹/ +Fhu2hpʎYEzL (,%*$?hfG6*F0)FJX MpZnqRdU̫yzM]6[uNZɫS]0RFg]y9z7gq{0Nq?n{/Naͬf.4D1*v|9 qT| PUsD~0m^~ l>8 +:5<EtF:)|\ak*W,詄-a$edp$Y8jLvA\up ـavluv/Y^fv&ah(/6|N.Dl۾G`2]̋ItaYgQOɿȰaJB[+>{?ۘ :Y[\ݕ.dU!簦$9:!y;P}}s]><#1%/4XlQ+gٛMsBfǀ"[v7+Ҝ͉́4}P姥Un)bO8GCR)^d=<ُ!o'eb }E +%dRb r̍qE)l_]B XӀXit.`׼SNCƧ5N\?7^^a!;s9{v!OLU" U( +sOcZ?Pbxָ7"fJD%T;>̺sǢE߮GLmٽT7-UBGh;@%BNu]b5%RhN Fm;qd BF2Џ؈(;{U퇺@<~X2_Qu>SYƿDZrk ^Sb5IyhmW݄/JEzIdP[YH ڃ0`#u˔'@RU0+n7ẻ'ʫr ^Cyr(^9͟UQ֖qÈM@x EE )xG&,ͤrLƍRʍ|&.T=yJYi +̨W#{uR"_;NHdTٽ݌JsWiM(>zN\Y.->ȧ.#p#_g۵Riw., / ]/lM-HZ_hmEb 4e4eϻBN@@=@ciڶ?-&/? -]$ E;5nŀ[^ E_̣hj)fn˝u+:.7)+[{ӥ&A΍7սQV>]VE`Ywv>+O0*jT[ٛѺWϫe+Vǡ][wO'0#'6 eo%Fѳ';eu'eo׭ J8@h|ҫQ޳ {F^*lW,'~&Z- Mq3@!jCVaUSW +&A$w!W֠Ѹkg{FVγRYqի7B@u [H{ |eDՖ3< }'XRPa%[dP΀Բe&.u8ՂI}3e?00l)=$˖Mt_LAVFaVFW2BɂV*ēpX+*r,8KCcV',7Om&[ָ&%W*ScY҂90Dz +s0oSxlMp(D/J>?v zGB7Sȥssxnۄ%}. pߜq_6ܐ5]9Q+3P9u$;ωZO\6;L[4`eYcsaz:>tF\~rnV+`}x\G:j@xl[;pղ)%r)xq&^dZ< +Yaܺ[p3jo*H[RAzN|F^YϪM N0Vmv`23/ z5f/zoU*5̧^f#PwW8c5Y<(Lm~je/*{J,j"ZdǨT.C;Pq5H3״! RTX +`}A][`q+mg. ~U|M483tc┄G=Iah>^`W@yx_s5פԲJ:AsOM6?W|֘4GRs$_r * W#/;S4Y4$7wzL_\Wۿ!У~uqG}5)=5"hTEq$f<.r`!;ɯ&+SdXSsWVAL(bY `ZZ[h0bLd؇ӞN)|@V.'F5%7:XZ;BqO 1%CTxNQwKIr +pw/sn ֬1H;2 ,1:(!7mh]4 . 5kɌ/ߪ4}~e&7@ZYFG-i4`LI;bis H30~F_*H8W*Jr9EΝO;+F$'l}0fZ찺737$NWwҿ82s߮dKpPq~ 1ČaRXgahkŤWVbjCG%ۂؖ~G4Ez2D`zo>ȇCu sڄ[jv}-VzY xF  %"{ٔ ^ "{X[hǧҎ i-#Hּ**S8Z'`F\@բXX܍J$GFЏ  5[۞ek(cn%c2R"aF}o:%ٶ`~4E5Z0@R8]Q;n߄gmMʛZO8G5!tcZڹ>`K ;, dZdiЄvb [Kki OE ٹ9wrӖ:~{ǡU8 },s.mt*/f[uc|ky-IHvӒ;[^Y'^2r8[y>-u +y>e!;[jci ~nPBB1R ?GQN('{VFp HY8!}H#EM.`;FՆJ՝-C> KޏjBM^VR5Gnr0HƬ37# +# kqo}3gm=wM0)iUSmY]Uk>ew"B$7݉gҮF4f#7~p)8[W3qpRy 4- Ѓ$2Yوj` m[72Z.2 hxlTFSE 8y~c@d9 QyNΚ0{P%et~K16o2Vm6Li$tODŹU^muQF39ͭ.ڻhrU~!׮R1}Hqsf]~wE1NbN_5{O=цj ((y>Xً;fd$Z[1ܨ +:Ot C2s\@ey9΀J@& +zCEfz7%N+WS7NzrQ}2}6O5Q5[%#laSLM Id xC_VnF܃͒k:O{ v3L*I=^): (LkowCD䐼0ףA²Z6KfY-Pu̻;{'NΉ@c 4{߻W@% +tgIƨ>f͚>A6{[bU й`%B=a, c "Q g/D~ıX@nl Z1T 7PCmdu #imKm̹h;i1y޽`up ۺAϘ 298ғш@^kJa6;蘘͛0ub\"=>hQ7nQO QTD}"M j7fx͖Z}=ӡ˷F'E5@ׁ>RYm:qtD-5&\,a=9:Z`ž(CbM;̕ե:^ۄЀ-urZʛt U~gN +,QїX+䞜]ω,|;( +m!uC7d2z͂fN- 5Gy~n 4ؾ+Dsל^F+/KVTOywT_F@UDun6Ga' F1XeZvfYkZ0ɺu;AfW$tXyϡAsA;,(&srDC4̥&pPlf8=]_/GXe}7)7 3h^ Ʊu>^|rzwbn"c8bw `SN'v*fSOQsǞJR햫uvɶ\^떬#5jiL rs +/ ;%{#JiJi_g7%,YlLuzAFpKo~nڸfmՇZX>}6sjDlF`q„mt +6bN[]l +D +<p:ɪ]*EJ)E\]Rmfd+/6KE ^m1CLچ)6r4Q[\L&AF0[fEYA .tU&Cb!zujDmDcq ,/aIo`f'nҴs7&74=iZ"'T:Xʈß&;_Hέ#)ɸ"u`_S:*?'Ŕ,+kJG a~ÝJ#(b\Wog^# FCa RKQ$"ݤy6 7X%Uf~ +Fw1 hh8u͗VxR}F_”xr> UϹr2G6~9 +}}do4.}Qpn(zeNs5IɒEVYofr?\Ѵ3 ީx z?ѥbwUHSX-#Rk0v?|%mS+JK?|o u y&!y2 ׄy: oIڈv_"2xk.o> ._V2rA9).YoݽVC d[:~f{sK))_hj=IɵikV"͌K^Q ܢƥ0+.ۋ>16(ñ@%$TV"VM||`i<,Om/߬}1 +Lɜ2I]x/^">D]Ž ++yj:UAMz? t c .t*?QK;kfw&)DJƣFcT=0Q"SЂR G>"HŸOʽ_YilG47% TZ;CiWxX}Sl\MAMEZˀH++fŲ=ƣV3V +.m^H<8 Hb^ †"χ'Wѱ\7I4ƳנiH S≟7/i^CT-i(Y,A4L~^{ľWnK2o=e @7etw!B~n$0Rlsqn G6e "\8Y2CT(F,UΦg P`|a0e^f0[~"Ա5M +mWU]{ V_pi6`hkc˿}jq/֒-UIk <,6&tcS8wRE7/*WԎ/U4O^5s!3sڈ(FnFYi7 HC5MDBZGn5s j ɏYI?i&MqJ'֥"1j]|3w<-_f}G4}^.*C+>$@:v?YCC5,cqw^,36['Et8=*Ⱥݨ[ CG j'7#jHP}M"( +8B'FG2n< mxHҦ{(^h{:ռ׃fjN|iݏM }X| ?%ᜐÜ KbdD/\ d֔Z(y+އR*$P*{ft]j`BIу,)xWD_D€}@ ?4cqˋBoF⿙B| _X^У᡾oІ]Rm'=.*aUSd8 U +"G}SlPl)6޻J=^.L/ʿMjzo΅&>CTx)E!u4otF +DHxOJcH.Y;?.|iWCu7aZ2kjb G[„~YUO—v;WN(v;4maZC$x o"l7$ Aؽőa3?ݛ̽9~1K"6 o}lV@tIbÝ}a"TNO2"Ξ|M+[. >F*W kzc86m3AyPlypIߤd9ɞ_&2Ib&FĄC{pD^"NvH26֠ 6l#A`A)s$+;uqJ0ea̱Fc4f09R3HԀ8yќZ(%2ų53SC1Bd8y*-F]b<ivu9ϫ\گ5 X@ qxvc?C$h_|ڝ}$hmǭ O +<:c"WmElBAw*p #kM"POPt`OKNoѰӣ}Md?:j\?E)=][ŏ3hEtEn>~7Gkf +??;݀v˜.{|)i&AFbd] +dE3zGQ pSrc4Wx؏8udoŝ*+ʫ1"j3ERX4kx(qVH"KlJʱHeR4 jV^Jf,骨]JCHrR9IW$l"Gd&0!_$!QPU3XZ|mdU[zS\U^ 3cDfm6t˄ : Я h ac\rsa{=<ܹGX[PA>f݆ Bw %>!Sv%wJ%+6OCtj_sɟ/4?}˺O@@ +x4p `mf[e Fԣ_*,lյ7UwOИ\B7& l.M~N>FUah-TLvqH86[>UzLf-=&3iϙuˢv^,KJS?X(f` 8]EkwEi#V#P'4+A!BFBG#n +GCSS]]J4J?6%(Z6E+0]6V(V(),B>LGR +a\H}j$6,F|A zs +)Fc V Cp6!5rOmQCKAfٓa8lUJ1.cbkM_`%Mv}R*Pvt{a-G4hLpz4FмG«NOipD:N+DL׏Q v - HzO 4 B=j~T#5|zDjhDåߐ%GV57zvhY5 RL}p+3ŭ}BdcDL*I}Y*/A؅Tm*p/mbw,7%^>5A3iLԘy:<&' pyXL EiL$$(j9tk㙑tD_Seʏ#1hc;BGg 4v-6}$ږzՎa;@0M(SG4qJgq4e꛵M֤= ʠoqGQ4M GL(Quk|GEC@Se}z7Ghsy\D)# b_tiS .CXƕEdE5wtrX|>%qFe02[HYklפp_-MeLt%)?:B!(*4ũY JcP:K8"x6126^^Ww6X5K%< |Ԃh`ж#X3[Dl雈Ź)^>mhg7]??vh=>r`=9 ?Eыس]$>O pd7xK(txxNS')z4H3wġ{>[cّh +R=$Cޛ`-,QPwܤ D\*op}߉DpGcH;V_~;6~NNwMfӱQ: >)ƾ)?(O'.p-W0BU窵3i-nywk'J0n gEPD͉.sRjmFMz ꮅ?6}U1gkѧdf}8cL*ul>q7Ⱥ\ۃt1-czޠ`; 0=?u#{1ߩϟg..@9HMr#fUȜ231`;G;Qܩ}G3Khw;> >&|l0zMK bQLIH~{"\K7w&1%|l>ṱ\ofjd5B};tV1Ep).XX:i^&XqTxv|3kFZ,h77OLqOm}?N{6A%$eM$_kNDӾSdu"N ~|t<$jW&s *ܧ _hk ؖa|X߇^zX#h慘_3'.҂p1Rd4 +р~Zw1y9GXHHLoZ2={ \BVbS}̅"h&.D.rbtEˬxV/en&Q!3 9lDT>.b%Ӎcu?.橫 ]`L&I +rCkZܧE\ŰQ\5OA;aqz:U;=wLCj꥘oO6WJ}P; Ϙ v蛱Mn[U=HpJ1Ϗ:N-fhũko݁ls wde7wws@=^m~Z_.O]طat#mn`vKpj-A8-XSFoZ'Ypv$8p*wtMg{oLe"}+ڨO`f6{Dۿm#֩6c_TG_[7֢|/}.QeRuhi\ :WIV@3bּK6T\R( *K'>V-&bnB %ljc4vg@o_2ObHG;A3 V/}?t0bNTH4o%2Fq,xW;؞͔ƈ=S+wݴ1$}4I3cjFuӉGbT^&}Xϻq-*N,{'?'y+6'C$ھ&ĭ ل)*ٵdYD-__~4HNb>@3ɳ5OE _,8o2Lǣd"jϤO%cS4PB_؞[>3B~}zǗMs7Kܪ23ŝ"V|;pkq8Ku!6OiӽH|PɂE>8 +#}0E\eĺk_G YgLcTA{HHOjX1AF@[a,s](j ߫*ͤ痏_}V$7:~iOQWuZ͊0hFr[\FK]MB`)(ܡ/ V Sn8 VhwG"kLeY>4}<[geQ Ͼٲx,^kFi0 )ie7`ı*È,"gx:[ٱ ,G`j;=6UrOΒO5{c)4o?uXg3e `eq]< BGޟJJa|B&Mb$(A-Hq!*w/npdҺtʘ."t%̲rEl/۔.] pTU-mF@QPw BE #ULrgZץPHø&[q7fvu&qL:1QvnQLP${_үCZs=]7Y"?>ET"ETڬ-HoMނ4UDerDgׅβ^3c'܂*fr9>sr9ACdPG Hwߏ;l{('I/׀nhky:XdΨ宖rh˕>@C] Hbܙt[̔ F?wVWΛ2ytu;IdJ3.-KTosG2s=&9D2O+ ?zq˦ ǀ,O|]ayÒ!UfgP 7wr^N8wSz(O)~%i<2W;,/+䮒٬J<=ʸ{O %5dc&ǥs'KZ2g&6՚N*)L6OvγBN/(!%9Ӏ2k;ze*QOxߒ2şe<ͣ豴r{JM_$2KWߔi|Og}Np0 `c}ZF=½i۾I,i7accg" 0F*#MlyۢMcÄ]? ?jSwŨ)9~@]1j|I&pQz oc[&79σ# 2 +IqwL[Pkq%&Fyf?"iuEWB:ٻĮܗ$j {\qCcc +.OC2`6;$IdT+[/lL[C!f}Ty6φ/:S3`(ؙI2QMIcl~qW𴑧cta $vw"446j*v7z +'G,)h|fnps=Lj +%GR>p +6F=6zR ywY`^SRnN4}Ϲ 0f)>2'H9]6[2$jI. :`uti̫#NYM=amSpLx?LfO.8L'h]:ɻask<7ƭu{kwQLڅ\it H@ue(ݬǑ#OY(O$D>NWԜyS+SPRvw3eV{ -/|AVdX?$%I\w)a>׉49!$l板]X!mh̗H*_2\ؿ(bpoz:w.:xve#|3Nyx8ݠ1;Bx\~ +2Ak yI=!}ЏMm"ƒ "GgIB0zdtqtu5!:f!CG!qTWםLyOw,cq`sԻ"yH>$gTRAL^B +IN4heP|};;w_ +NHPv/MW|CϷ;0í>Gڳa +#YGzAlW{sz?h459wUѠN8K"c I*ە!d2aJ;ەAz)Lo R"vpL+Mx_SE,[DW&|98QXk,lejM`~Mi ;xm ^o,ܖ *@-!#w}5ÝL1u[tiC +< bX*F!ZW&*ϴBFS;Yv 4nM`r Aς7Ykzpzd6q7GJlbx):JG׳"r=qۓFPvj:F"0s ataDa 8qi([:V +@a 8{(0l=}E7`H (U?Ǖ_=͘1W JiZ EvPNH ǰM83aEY8(1-X(ps nj9jmhej-xR GR#jRG0Yr̷cW VoMuBTVla>'1x&ܓ˹V[ ףL%~h#LP76$4|rA,;pj4Wڗ~t/aԃ"GE?">K;~;$8|[1,cz  ߙl,Fr\L!QpV⩾LZ”\w?YBXzHNj?C8Jd^aEPuZC4vQ6 _PT:jC/c=E!Bc&pO&ä*QulTp8نw2PPZ|RQ̶l۠2ۤ~~O\֖JMq̗r/C?\T-aE\mUf2hn#_NbVT5f0ѳ(m8ZIx/䂍 f5pA-0uqj޵?c hMX%7DTR E5LPhFuQ5 +] cgT׊< Zv + ӧ16/9m} +mgS{s`*aμpYMY l0dVǶXo϶dC8jp>[6-!頥GӳD|k xJy ̋Fvd%2ϸLgh6'| +7(][% JDV-&Zi,[%ѓӶ֥c(^сlFmLћD%el6c4#~Uv4X[Hm +X*IX=aztX0't}s(HDaՂLޘ@HC~Dht>,o9$xoY$^g&2N6Y/7A~8So5_FŨºFroYuA8ћF@>ނE2_;TKyLJ#V@B;qCN zb<)H`z5+^)T+l _m$ ${h6BjT|NxY +rz_Zi#|!?A3I977W"ГBޛ[)[0n( v޸\8 +sa^]Άq6hy96~wV89hI<9 +bw24A%p $Kxp{Y@džw˄sSI+Pȭgu'CHKz'v)3{JCRJ! *BI쓣Z9Oi ~Iq٭Ζ"$NM E]C"IwGHץ1~Rd :ARKc`'hߢZJ-!4M/ܚL>_ko6qb.B\VjWb"vDYӪZ{b=~'qe>cS.+2sCs+Kڕ>|BƅDS"{ם~ܙCHz`LyE^|5]}tTEOw@pP>`иCv3kآ.MPiY]qlG:I c0K nsQv D%DC2k`I{~Uݯ:?f_w֯֯>ٕyŮB?<0i%YLUfi +{[5rF+q!v߄ƒڤ$  +Czվ ~5hl+!jlx=&!"CdXeVD>/Dĩ@(4XΔ_d̚ RVX3t5L=BUyӕ_ rod:Ƀ!zN@s!i!0>J9{nnR{Q '*1hdΠSo'B)A] gk$XvG I/kS:dw) +lk:eK~BPoL y$\oj[kHo*83$jv`\XHG4hou@F;R ;yԹס1XڑiQg^.WG޸8uBJOGc( @WhT2ongR0J`8YJqL]1i<+' b0 e0臈A{b0hy ASaPX+d4@cיgn?L9WѕR+ؼl?&DЇ !hFw^3Wt\9[ {kabXG +dhaO += +d hN=?uN{ڣޞvibvԔƘ8mkmSgbj|)?s#qO]4W }P,mpWXJ*hJufW"~'az܎VwAOyICyҚsuLsMfzruiUMkVjs('1Ώ/`&IbTAȩAH8';?1DbI&=;cq04h1* 91>z +Zҵ t6@-GAt&..ޑ<5=[m\EO%Qr Ch^xU^AxkyEM1hܛGpW;lc*MK{c,Hq/Mmls߻,ȱsxřS;So0)/> {D#}Z+/اD%8W[Džx IJ„t14b`<C:~)}ojuX]l^)*NЛ-3+9s)tzEJ ;rmE{T]l/R Yl{H"ԏ*ckѨrM#TO?gh1~6OJXN\݅'5]u;.F(PR$B1-!O_oQ>Jcz vܛY8G/)ZOڼ)6@\_b_% ,,TҢBrjBŘj5Ę4cncnS~w+I:@tn> p`O0|yg}Ɗ cDEl M\(¢jqoBc܈C.dףݥWEFq`uU?} +]̛Oa 3oP +2?CD;Ûβ]x6ST^g5>ʶI5ۢ_oPX]t`^.=UmnˇNF 6P$ac6z@V礙J 7`%&c0 >)=5lt(U*,ɲKPv٬Wr4\I/6Ʀ*'+GN owiب@0d H`U%G)mߐ:k+Zh@N5I}FX6ge6;Km†ez߾H"kZ"DO| ifd+7!WTsZLpL5ʤk鍊Fhţ&N/\9TB< jyS/0.wjt~[4U4d|Frf9*-*W rN*n EDGU)u*;@eʁ0.,(UȘ*3-אqY:3AXWZ"}!=S.eOpǣPd@ֺl"6Kg7;JL!HUQx]c8(X*邾!Klr M^tSyVv^ 7F:_CBAH?}\U"w dƉZ^} +V'cG2UwIf:>Vr#Е&f#A^ fo}InBsK"O +RҜKlE~M )E3M9o.٠(}_h!bwB gb[&9=$bUSxHO^Q zi.ρKfc6=7.W8&?՚σI j4J\t#)_/0L{.OѽYJ<uha6dc0`?Ĩ"cMa7<|ǬGqyCp Ɨ 9$ӐIM#T\m:igzƠ0xKo蟘%7]0`ag}^\1Eϟ $",ګSyU\tr@ .3u9AƼ“=G4$|COE>EQ i+ +hYmr#k|@ #s+=-t|C58%$4kuX46xo*0͜iݖ!}]5-HPfsu3;5*AaX觥3d:?1?c~6x~ D 4 6A񞑀 [5r?V3Ur +gx>1]ײ3)/lp`=PLsy]vT67ߤ4RӢfF{Z^tg ěEX?.>ߜugj|s Tnva}5++n_nۗcDStnv0o!-0׉N1ɮBU&1X6|ƼsyM\_"4*BzQYv꯿=#,3B xPmY$}Mtz +A pNkT\Vq  y\q!q!O 2ąǣ5pP9q8SgE:8:5"{Չ:C1n/h:,С!OâC:5{ƼM贛F[S qС@C*DͲѻkz`DZջ~Q= БEhXh~"iY}g#? jC;?_o +*( +zP0I..T»,QgnE~b{h~-h݄d}pxԉ8ӥx>4n ĴL2teOKC5`+ ]!̓?%}QzYU:}r E[s>6pw r]Ɛޚ@1&":vpY[~f~u2A*Ug\,yͅ!=(N_IKwywg#XGqU>8l駢#/Rg#CQ5t62hh62ADs jϫszzO͸XUHcyRx3cFrQ+0dr"U ow5ۄU1Ic>KXflЎCj(۔S,5dmJE)6o_:͘mNC^{ӓ4qfpoS_m_fM"m@.E9t/N^qN7¹8',ZuZX^08I?2x]1uo9>}Ũ#cuͶnMC/YbVkZ(9'*E%QI!9LCwM>g䮺#w5ypp<;SXέ'k*V|y_myQwS[uGzt/?f5@>S0E15PۢaZS{^% _ ^>}jbG]>L&-V $! t^_E^Yr^>V +gocvUqB+`vRsP>irSI3IóX)^tvwĿ65޼+FљϊOih 5HGp2;Y6,N,É{4[LӬ9W"']N7eYA‘ D "!kn+%HuX3P8SYhj$?Cƴiz\aNR!7*C4wޓQDxx{הD~ҧeQҧtC)]cD`[%]эg0:(s:Z/x<ne#BŸ\uL}*|^ o_g+~opU\<+,@\+q-L["l CUk~kp1\g川H*ѥE*EQ|n,u"Q'+(gi˷+qA,7n5$sNN]ٷ+[䟔e_ܹ0KR.{9V|cMOls_+>tRvH,w~!N]mlFxDzheߩ}ʷ5jokPm7x`eUw0fa|a.ɍ(u\lӊ'ʮހߊmxooČ͒)3QZ?3e(h#&UHݎG=dSR(9L<ÿIYyFٷP[J#qh?Lw7tKpz|Φg ‘Gv)˃? AǦ[?=wvn߄oݛ]zWZhz ku/uoUuNdT6qvdmH$Peڟ۵]d3L$ތprm[v-eWth&eɋ)$LY3%ՀBr%Ap>0y<94PE%|pHqKTsp||rTE551E;>*_H.MNGLKn"޻ H~*o/5PQgNtA.-sHY (C$şhHORrԫ5|T !so!xY=gi, l[ŋvt/ ݲ#-;P#HۃUəigcnc/ځfrbEvQj܏s_#ņ#EOoECPrZ-aeFfΒb0a̎PMNt;Ov[kΣQ}g`0\ a-[:5[+/ZJc';ϨO*U*Hv}Mt=>tEcvAo/O؝c̩&7a12+3̢l:~vldp#nŰOU&>? YM J ~3wmE=Qh mg--aAҋ6<X4?Z뉭jmg/32ԋqm0>6ȧ"a5Jқ_ܥ"\gsΦTjjdtMO:gzd(AY$DUЇT $]l=_/x8M`N5IM sSM/%#kc fhf/mʀ;Ө#OQm*k:;0# 36:^WXu{e3BP }> DӄP,Ox{܁&g,o]aJtRMvaM:^'Þ8 pVX +a8h(7%'WQ9zjy$ T#!۲ $ WdÐrR"3»J+e+tA[{ +gJVz+/IgOs)y#ţ']hL|Wm-.6Uk=ݳ eG9, rQnB/$gXM,F(BuZk3p`. |)v%쳄whc~~Rt3&{1p? 5yl8ҧsu î\=ēK4N+gN=U|՚S+*[߽JI]H?48'VuKVVd5AȎ4uUMdsk+4aKځ6 jg_>0A*͢JͅIxZ3KWX-ͼAbHEUqr,Gص[Jzůni U@/Ш!AnAT7|T7|s G{Igqò(~ݕzZH1E._)b]B79Ĝ{&-t<{Zcbc:?ˇ.W +_9Hs6 "B7;QIZ"~[& ?֦ +QO޴]ݕv4~}T&]~{ㅍC95!Izs*f4GSwWр/OAa/&(>8S95.r3"Gd5uw8YY#МM?&?1: +aQm+ +WI'@ Gh}[9HDcM>gء~*t®0vhszQn0_~v9(X?fJD9 6'{yE U T6UY g~>hI# +6聼DmW@t? Z.w{sP+9T͙ +xk1ACyF~/jYq9@UFԮ^IVJz?Wy&' hS2&ERXȧ IcqQ+I ?cwKgΪpo5χru_ADh? 2~]/k MkqA~\Hj^dX$%ѯѓE oj~s\F8'kt-9IrجH OO~I U & " ^r?1gQ#=P:| (#@^^bM,o(,AfX1B|NRun$ZƋSd|* 8MG +P1NJ۰$PA'%(CnmT;38*,+݋hl"0F >z@7QF4W1`1ܞzSjݐ?6wW{! vp\p +ZfCjDZ)=&̂i5au_0֩.K4팘F`ûNLӵQ;'=n<@ty`xЇW14r7j[cE`$@(۬^ RYH} + 1 ![caaiw 2-]B0{ 15^ 8&  _<熗돑ɐD{~Jch%ݠq,bvϻmQ+Ty'~ ,~c'nFG!%09?_V]kX(Cs/7k4;Ps|,L#-7U%0XȲ%G?wnvQ̔dO;@PXcNrbʘ,b=_ʇj75`&=_nZc[ۤp*fe&;[J<2.֡q6+*+F-|E{۟Լ< 4Ӆ.4;0BC6\8F@<l_Awy-3pn8TPF@̎#Xz0 Dr&6gt*ǻAwg\px[j=C󂉆rh0#J;>5EtPnCLGC3Ag@^|vTAjnAPj*s"SQnȎpIS*;EFsO)FaySő!܈zeO#,6jPsBv-\؞d &.+/'~\txI}MßʪHf%4t7@gV^DpfIBno.t¤ciڅV\D[QqY,BZ{=Elg$إX搂6ĪCXO0 RiŽ^2]Rj1 ))vPdy_ãp +i5ŘKIQI*7 \~h +}UMNA LLLDVv` E*#)B GdIhX+> rrA1.ϢO>`P"ǹ!W3oӹR*iRiw&Bw\<فo@+kjC sZc$bg uXB̰QXNqkĒbʯOe+:ǘ*Fx cٲݜ=@Q$g@͹SLaJfc#^Ewꄩ0| Bc(WK3Dz%Q2e3gOqa4ߍ|[lUE{$%W8%1"V8Dbr8>4gSz>* EoJq)?|ROx\'IN-SI +"wr>{fV\m`m8/HBlð׊`iFQML3yV0&J@h'@5]E i,Q׌thYڅqC.mxS+9'+:oZ/·IMBvM>(ĊoY qF3~W._ +} g&[+KjW+f +7(֝o%zPƬx y~4J%(6K\LLZtĶ3y$_.(Jɗ').HcY /; r(coЂ+=xOpsgtdF1ȫ ױmL=()I d+j "Xe8BU19hƝJ3 @.9ň3@c1ӼQSУapLVy$oZ NѢ=#fluC-냣U[!v 3\tw*B#.B>J5V<0x s&rA܃ŀB_o.]c.Jn߹d&7#PYHmԺ.zIp]7avb2W<%&H=9]9k~A>΋F7Lؕ%)| M}0 cF:+6ìJlfMi(W?$ sJ!o̟Lz.;C F0߬88& s7edD-yM[8!!*Vܙ ]IþcMԞQnY!%{Dprxb莚$`ʓ|gW M8(lmu>#[E#וkn6SSMp5 9ꥴY&_>LvGmrҞNPփn=\c=LH@[8cߎ=,{L +Wm1TTݍ(gG{ϓ=xMg +F՚R^ml!o!`x>!H +mT;7Jρ.e74QxI0;yfE(6$uԄas<-O74P# !L&\ +.̗52H7Y<*4f{Nwld_Ǯ) ( H3 UET+ \&I + g}"3W(Dz!lhB᠔ZhCy ~;mw׆ o@5'*Œ&kqqB(vKRWiR<3ѥh(XT7JΒ4yWQ6pQQT(E K*e+kD)ִmqD9tr`=ֺYt}99F`GqNEK(&AX6$u-m-[c4T+# V\YFbZQ@ٗ-)|txuXR'? h:u  nrK70 W?3b*\zȵta&>#mjeZFk] ZO~4̎(<48IY]'YNqMj\W#O yӲ9?Q-GA ѧM hHes5X92 dC: ц'2'L]p4i0#N]aa4݁8( im9@Xld3?w:]uQ;,sh  wSDb=\Md䷩4kB $I }l5dUkO[:I#`k6ѽvUt`9M 4R*6,Bb4sA7X,uOьӁq)QgPR!'l?J24 W6JP}8s6ҥLN>cct#rLP-܈Ҷ(X|GKy4VЎier.8cddeS ^d <ϭYЮs rn ]D ^4k` 0!Yu%-L殭3mf6kr]>!ښ蛩)L ⃜+Gc RaMm47STʥnPV<"+&'t1lUd*'npv0e,!NlKF->Pvdd #^ e#QRn1}t-Fٴ&ivk61VBczlF ZggPgTÜHs ^*6ʥ{t_W%Zz,]=[ytR/%ұR&A˸ˆ + `h=Q +h(oPsqJj㤛Ee%!!Fv$G]Ȼn]h9Be[0_5&DY#aK#K,,=$OyE>f|$㟘sd:x\(O̯)a~ܙcDZ1I0(Ԝd ]Ň- Is>f=1.R(al3}֪v6EJ3Xj%2a8GjxSjxa씃%E2 L9 y1z8 eq*\!쳦57h$><~7A^YږJzjk?8RTOf#6 d&P|m81A4kCcJLu0KM 6 (.AJ ,k##LZJeLx%ґIRM]0SK;XΚ+t +ՙG%%$?O#/^bd$)Woԭ;tV@9z:)J"p5CYPul% 3LDoquh<}DHT6l_pN 3؟x!1)n' ߝ(cgWjBb4i@ީpOX[6'6;3Ot1i2!a'+׍9M̴LwI x=_:eq/7ag^? ({Rr]XKFxTh&2qp}6j.ȄbҸ h1ksH( eaJ5KmDN>f]  &5i޴/htʄAKV&n^SYz9 O]җet1ܝ{ɢ;mmr@$UuRl[JEQwΞΒU(Eo@܍z jY@ati%L>4XO>DLȩH"u˛dQ^D[B?)<R`9Z&"agE7oΠ[6mcv^[%.ki1IY +b+8A<qSprx$8ȟ4aI %L ̌HT0x'}Cɹ$n;c8vK7)0ZOP19i!.:#\/Q=ӌsak 0 % + Jۄ8pf|&}n_a`*>E+ Onyן Ivu1"CIYWk̨02I= a}SpKImZ߶D +H~㒃ַ'"*7&HoVhVTG + + +O"dg~;)noaML8B6(s +ꯋ;1<5)H+9r?RmD5 G (yv:뾁wFnmHM| D:FMa~؂_gK#F6k#'e0Ũ5"=nO~ \Hu]pw" #lYP{i iU! ~$PR^V:sy5+La_eln0Tx*$T+P}Ж'ESWgHip-.%2*j$+i$D'¢WT1W3g8{EQPʟJOx"2qx}?c`5)<O/n/ +2UI@F}jI2|xQ15?>Y1f+ ++m5 6F1+NEh}-٪TGl^T00݉5UC=U*x6WjV}k|Zb+Wz^ ҕMcf:u9όAv<겻#A-[VN珳B8ŋ`bc~4RB'lK"O}@4] 熏*=֧ϗ3]8' Tkj] 97rc:k>eM'c8@N./ Ie͢ ӬwjlfnVZ~/[/6wOqf , +wzpw{&K|7Vyc&Ǘ.FX>Y{8,B)GO,kͷ94]6O7UBgޠ;E䡪Fa@DW@)^7mu+ _6TB5zVH)#DHPU`j.tQa*Ck8/Fw>:uYm5KĪ#c;ji!W-tm# +M489n3,;tC,z.[$HqV9O鏘.xS%Ak.`D؈7Af +%GqB53#p$-LƟS@>j:M8J}v,xR"iɊԨQ*C8krK^IL7#-~0_Ҁ MV ^H&8>)yw؈E1> 뮍bDDo\ƓWW`?'-Gr@zcOJ;A#ЬggfޮD4B:u;2G7ޡ!؍Xel!rne l:7 e!-}En29[T{PQoG9ʶ p>;xz"N<Y~~Yr9=ʅqi2u7PsN|Lǯ Ο3bN-+Bp[vs!L'taAO?s'Κ-t3#(!-v tooJ̀If0<8qD}7z(Gp~EOF o#%GN2~/fkhwyˎ⟁bpM" tfLS c@N%1F_6NK*L_VYX*քɨlj?DC#?MX/c?IĎ$MͲiecZڱ/E +_p?4_B1IW[k_flĆ]̅ +v鈵OGlvX;DC#))"'/ۙR5q}4;-ڙcM׾4#iL/4ڗ+/L+&t +w65=M)=T/2wEx3#³*k_&^&k_q3b-׼Ճ(#i@cG翙îM8l4^a>5s]ۢIbYG +2^+௽)]ix]_w^~0]˒C_RR#@)=>R_z)| PWId$2_3ǕlҞӛ]}@%ݕ|jvR _l!w6ˢu=7.Op"Y_w!hZM U!%I-wPٵMjr-ӳW1qTqma9="2YFHoj,~ 7z:eT,2gњW/"AJAJo,XqtJRB9Maٲ]wRq91gK9TTu ϊkE}^ڏjm/˄ۯ))>6юXlg3nVJ跌~wnʞm\8T"ԂUX}?/96t|"#xf(a-$i$kG?[*[++˿s~KKw3xe8S.6\h ʴnmc@}NMjlA6wZV2]dҬAC16+aHcYPp1$.7=V.t@!e3kx?P:UcʛW])N +;UBaq8>r<p7ٻRiXb8,MžqXN GAS)3OE$Sݭgpru8B6% )zvگ|8 X9GӧGHŽvY{#{L1{a gK;ád aF3V;9]M;/dN|^^dk2\e&6lsA[Π-+okl/JK&kGtKcώ^z˶\-_Znx/>g>Ȳ?Dfxǜ &Q\ýv oU ejoH[֛ka+>^sW8-g*:HgXB6l4@9"+TdZu찃Af; ˍL~ƞf3h ;-l6]p}q8;rHg&:`ZԸn(wYoObg7m!6شI%ĥZ:802.&\%m./ePZqwk鋧ݴr#u=Z J Ծ ͢pƆՠh1$^6 Y +:]v#dՠpG|yf&+ԼJ뱎(I;jjEAtq\HTAF3)_OUR>1L}Ẍ,ܣlrQ}F +5z҃y)l.֐3kOWOd}y [^ Gwf"IdJ@nEjLX8 a܄qć m\^ME=kA&q}xy?ͩ:򏱜jtg;,RvQ +]kW7PDGeVwYA-/TJ{/c[wIa>N=ug*{(N>d2][D{(!f"o|Fch#)j5ލTC{3vӔy?P?7'ϫ?="xƁq0%A|4fͥFN5xU}UWԩFvNftnq=Cn;(=0U[C'xm@Gn,9wP',r?:AZyӕW Ǔ=%-ƐftK|,R]½%@oVTعw> + +cߐTz2OTF +T?& 茩H@o9F +]qSa8𢧙yA<{9[ݐy3Sxg~b$cAp^QK@@; +^~9ݿFEH13Nc@f2R dD-p5hVtfFW}_vY?;N+at6Ę(z8IrTy܉?v5CYuAf*zYNΛj%.A.̅:p/ti[KQ6(7:KiV3鷣Tl>fQ"n]+u]ˇuu%߈ѽ2E>}-ǜ9gF0 gHO }|];^&~%ЫD n>, 5PClu^,|M0Uߛ}_\I'ߠs{~jS]2kFOu3mzK/4FE=?.Ҳ(Z7` /6}4yXK̺_wXŭ|?b.)'Lq:O1C0vOq-q~jD +G x:H~'<NASObTS៧ױ_ձ;YǃT㹮T)=;&߄ɣ_;vx"'b +O8 &fKatQTxx~V$[Gfx%8ϱ%UɪP'<@)>;ȎXEƁYDI?sيłF ,Aeh]IcKtP1 qZI!a0WKUݳ z*sO&UUmwS{dE!>1btݺPGN"MŹajs2Y!I Z^7̕ qxSfM^Z@NyNηA˹e+h8j +`/u4{$yنQ娢3 5D;k.V.!MIepQ> UeTJ׬,_YTUT.O~16`'eQFέ~10AX{%~v~؊謜Q|>5 *egBo:t? ;=gFH w/z +f/t8[(SvhΦGr0# A =&=#jD{|Isw86?:he{emzsSb[9|EYpk;1Hr€.Z=ɜWlȇ +&:լ)ʱ`yaػofޝx r·|$_V&<[/.l>Ol +pٶ1vFHEk eԝ6U:uhߠoTκ Fie0O}=u^yzqAgp ޝ%o ?rzjҎ:Dbuһ- = khit"X)W9ɭx8OBA4XMds,APhI/RV I@J~8 r MC1%c)ѬV]fc u+ֱV/ELZXyB~fkآ1Cz @  M|Q ~0 T5YV-:VZa$~4K'[ϧoڈ#@'Ne(J(mB~4Ȩ%K*`\+"ځiCĜ14M ~Pa:'@ Ω1Ӕ|tN:~5uG~0 fabdLa0`N?W xf;a]w?uI޽b2k.Uu̻{z$r@dEl3hcPgcLʷOHqvX\ ֜&p +͒9kx';w]|T.8 qN\šWOHmPxwv?ǘF=xNx;78p{^(a}x\qxq ;7҂?si +>Uʂ7#&)W\7&)?t&+LV^qS&)W箼=~7,Mbi]Ppg#Hh\{ J uQi_yaaIg~4 4%c[}n͎?H=Rxf?>Ik>P7LfCc{m!4jAUϨ2OorU9iw#}ۍ.,_uP++#CLR(\Go{+п +}JBaGHvDy<.oU[g ,ZK*;DŽtNd"NȳS·_z4|'A@kg.[Sy;"}0Y;d\НX#0zpZNkbNk|C/bq Yn݇[=r +MMjyڎMw,giQcHs6CGgg6,dzN/ +EƢIiǬbwt9χSI*2J6Y%t=qۥ]9Yo' ZM:$\ZӀ-;%\j8S<;@퐾8kmz1/͎9HV6NjƋlk[k7Hɵu)kBy.czǕB߰ma݇^ syV9N`*D>T"@iFp NoSӰ7BsU[71=]s˓ޢ{?aFu9'5.Vu5լɪ8B/kU.cA5%sZMΉm$1NZS!B'tڀ4I¹;\ ֥g~`_f"~Pb &ӹq׬}%ѝŴĵtZ׶D81+*k_'z/eS)_LݮR*'UrҖ*uN hAK2zv!dVQ]^"c}e!G͞I:]!oׅy0E ,8" !脹 AF ӅgH?t!sWM@@4޷;174(R7;u 7O0<`1Vq`v8 z2؂ژMP&3!*yd^Cyʌ.pGqS)nT(9 Q?l,!|̲]vqVto2Dߩ"ra6?^|[ZA[1d&]+nSPifdZ}7-e l](S{wAUY](=$OZ*W)ä~;͏a͞m(j)%z\|ťNxX`kWG.Q\C?EOy~Edo(:K4]U>h/JxQQN0$݁g,bt'Φϓ7`Bg/UÿtNBda6 άhdh}d|"tX߃t2;g6y4~ %uۓ01/zD'& N] +̰lEf#s?!S{V5;'yh-Pz/)KsAʄE*͹ʐ;\&R Z\9$.TiȓM}Y^K,R[Iɦn$F'H#  RƁS9wz`ЋBRVQծKA4&rF7{#tfvŰ:GwAnj{֥Vw]-c옚LIcҔuDXvw"Xvn2䤅CHIO&˩p9w]ܞRҿ3ʒ2hҌW#ץpu& j&4EՓar$jjpurb 1DڠX4,7S<`Q# +[@ M8i?iQX)&֪)yVYzZFX|4z Z6HDH!6Kjq#QdwpgA`pw$K}6ڞ/ɶlMki +e(ls)9gQ~Ќx./ZŦxUUvS3>Qcktl皂 BOf(Ŭ,$qu e)f6tEGr3'r&͹!N9䋃K>f)90HR+RJ}økJ-wFkѣiKEDzʖB_-< %p&Sf%<|'8Dݧe催ZBt;4VI]3- yr's9h]tbI`ӄޱ +Ќv{7!}Yk${&3;E(9KK誺YzlQT:an$ӹkvft,w8h٭-6![W\[N.%gh5)kJ%r[&#EoHmђKYX*VV20g9U"<`@*$ȳf\ ,>u;Ԣ +8ѩrkƮ5ݣfG#o>ϞAjrMn``rUFєӀk^B*2mK bX܂4n-8rc"9 tftN_ Rrb~ +3M#fDQLmfcH\IB@{m@;E-Dt4h*5dmM@w+>V3-inůdsz- +d=%:q0AKMR`XmH%L!y* G@1Y3Pg_kڤ'/>cb';61lB1mYb3Q\{x8bZ@r&&$(ާPzB +ŻS(ޝ()Kxu;Wg~Q:8nx-xBˢ$^k3P\DSY(~5wroV(ޔPܬPLjդ(nP< )=:eS +;(|U(^A(^;7:?H(~Pvr+?8!&@jP\bc>Bq} +fxՠ efE`3 +Ƶ$!66!A\j@N   +r{@ ^Nnp;o+,+@¿V!oP3oJǏI!MΦGp=]$Fi3xMpŀZ. ,Պ`AFO-5.t`e +F֙JJƲ-Պ)d2R!3$SGBi7U؅VNNUۃI/FK'-i?iO\.O:=#=1i +0\32-i^cF %[Kb}@KT[Iȯ`OH'LlRx)/1 6peXbb0TJR:(6&U\hP: je(h|v^%;iq's,踇}8|X=&sFt :=:=DSǢN$ԡmSg E{Ҩsj1iJ=;&Uiz4*%=Lqzi=q>qqN +AvHPޗ0K72ʥ88Gj'0҇T3!Y^Ey*AKE\NP PDz,L V)@65բm+#Z,a{+_B88 +Mx>P0 f>Yg0kd'9oXXۥYF|(o0v *@D;ɦC,ԛ+ :jְ+U^jܫSv.)jC5RhiJ>v'_OqjSm2-v"ڜڢZFÔ7;v:{ \2;;?vZXKq3kUEE+W9m /H  >0QK2$$'\MdI[cWb;.͸G MA[g6O|?Pw|W)#&M\9M13.sxRA>ƘUhJʅ, %bP(>8 =⬤CHnCƒxL +3-Tb&)fRaILLGf9V)P1p2f ٤I}#ti[a'?9(tuH$EYR$zD#dBs=FE(Rnt&!`8,2ŵ|AI{(dP[`@ٚOkK9 +P-.x Qȃz@WHXB):.bY+0Y6Ȅ ̹`b3ҏ_Mį/iyu>QaH˜TRAJД~_s5}'*TU^ c V" i W29X)>^oSŋ,E6Ln/|An1ڃkO7:[{/ 4%hD) r#)O9YlSÄJzhhDRf* O:e JZӺ5-뤤'%mÄ[q|LWفC8t +BtTjg+Y\g⼙SݚZM-JhjOZ/D<2;c}a,jˆ(( Qu$\qʹF42Z̪9^FW0Xq;piM:ʟ&};$O" #uT3 F8ptJVWqY;MYb_:CLXcϗN̯ZJPɉߙ; +f7˙YMRV2#(B%`1I|LFe|Fgn|ߪtNV~_U5G#/cbS҅4%zrZwP;mQs 45Mhr?Zr vKn=gI&.?lG_{*Ю'Ɨ_Y_Ȼ._'T͡ldžJ͝ʌw53o;$IO@2[ǕPMM#rkbf$uP%?Y6'!b\IK:QNPtԉ|>YE~?ēywC~\j%K%A*ݫ'̂ +I)8Ў-Pb3tN@ډH<*)4OrMuX=ięK謸 rnJ'Ϳdi@ruOg׻Fջ&#S3G2h~*Ɋ-WŖ'.RjUlu[U||ϟN={8fp? bS&;O (26}xwwSǫX hXݷ&8mZ*~WL  O5tnzPIJL_vS!ZލKKJ'xU [so/q#r3w +SƟ!k܇G׎9et +, 1W Q 1o:[/yuSwFOh4+o]yt?%y0<[o;&ry7ɺ4'| +c߭6wCݩRw/u9h69gf >4] |=woUJG\ЉTS7,tjct_bjd'*qLdkoE/0m٨S}O/ tqO6>%|;?Nt~&nlG`7 v[gx~Eru!^*,;:YfKi?iin#{XbKq N%6H-[eIoj]R5+٠KPa\ty.:q8g$KB6Jm"&1Mv#ժ{k[lHY˿\^mZ H!lF5mSlۀJ@NAJOKNHTbĜ^Y-8)8jc;sESܻ1yGyXI}*mm@yi|; +{y6r*1>k^ζ¿ZHץ4ru5@B \G pu]<2'j\eUF5t2?zC4j^>_L3rKP,AJ7z]}>rROGj˒׿r*1w6Pĥ50LGp1n3?Nv=}?3isxnEK@ȊtŗVqf¸-ukX@~iLC}X+cFwk[KG7-ŷ^r"uĹ*ZgyiSF]%>FAnb/ /RzR˓(zSQ\ +$4rnf?BN%7"UR +#clYPQFY;o6o+dh, Z΋ tum tv1'4A=i~|EaBI *K_w;_a^ K- WkJ94A + F u;dY^&^W+M%v9Q< ְ&)oko5*󨣢r|1w>4*g1Q .R Y ''5! VdZ v 5z=bWAu&n[j= yטNH,G5IȾy02i0 0~[! z.e6֔o@}ɌrGJNFFj$bP&+ߡה6jV쏖SxYmaY!B4X(#+!v.u.珤-gSbnZkVN/S"@zkd2r9QX3_ +J0eE+`Ʋ%7w YT&+ +fkqW'qr iA>$#VH κ5f<.Oqѓs;sf(77.)ƃ.Vlj򙹯+QncŸq!yx.b1-u;Wj} УSlo3 Oۣґ EsUifp 5Z}tH#N΍ X?&p7FevLO5snUZdFx@<7RXEn 7/`w /c'N]ŵ F4|sLoD|oޅ6!Up;qT ՘ѭ$.d0)mm+>9%WkշY/ +?pbHd,-+Pz.z=B ׌h>1{*_M1Y pf Iܥ( RgUYϼlŷF6h`=+DSf!"Ţhb-e0Y]6"ےo;o†o䫲J0-+yܑ&8)i_ī$ɭ@+(wyaRA+"Hfk ju$^< ܓ~&fi @R>a c՛c|;{qƨ{L8Wdr7.36|=ԡJ谦ޕM2͍]xщQ76 D0D"8 @3Vևob_9(Ջ8l=@64{&vo `;5 +lA%bC!{?</P҄/}Б8})1xk'Ay|u)KS.@//@}}>'d*JT' Jq*CYwQ iq +3;ÜY\FF jH+q~H*4@HWwt'aPW#d+PCb;jo|@!hAA3wX)A8 &~<uiT6^wV_*Q BXyڧ( fB 9d%?BG{;eG26 l)n`;qdz`fپj`݉A3Hhܗ[-d#+s%, Lz[@V3Sr}|%p}Ƙ;I8m-AHZhn`dZгѬfvri`Z1WusՖ`BVe픛nH}%}K `D|{<>'s^Kr7`_&. ܰ~~R<"n7|fSxF&0!Y5 Y H2Lka\Æ"N`01}V[8H0:0gJE`&3:6{UDlw52tzk5 ]GiХ&K֋LfedG9zpjak +EFy1>u!NEe/bء6a<)kQtw5mlI(a(@Jj7j WLK@^>M,|J#oHdž& T(<[p))4[x5dtgxov$s_uANn3;i\R.2'Ó̊-BmP >¤ }6,eVX֚ }c|@yb >'P#FDG ⢬\o/ =1xQPĪZd 8b޼ +U5~9@]Tf5YF#ߥUo/k^+̟!7}ɂ5SrRWgjQ ]MCVMkBPDaUs| **־.*ˉAwۆ1\c@d刨L`U6*oK+r&R4"'4N3sRVXXcG(=(N@RN! i1A${](k*pQGn)UeL7_ܓ~AYC*ߖYĠdd-v_TY͜|e)ժneBU> JZ4iG2 IUZƬڛjBLÒN&]/ИPwn= iFm(^AңiC։P.b|V)M^6_!PNZ_o}3>s"a~U*q@-@Xn|Lngm-QB%vrR^Ɓ\.Z2yEf A9 lUMl}z{:>W n)ILY-4YF֭Ï&tvz4ͷ&sԜl'6r(MoQ#߂ui*H[=br_p8fWh >_0=u4 Tw_KW1Ln<5xMGOGy>M\IB.S,GV.?%gHVo49"/Vo,<0uS-š:nsgĆ:VyVĀpubFΓb=% V#)? /4G4h5rH1~]/*#E*6]aH@ũp7?R$xb9"OY"Yi?jtr +;u;9?(?Cn&!U'L6&EF_*+BYX]x't?oAp__~InHohf& f]躀t]HיlՔD2#%lMdlrEvW 2bAC`#RL0QL!<<{yl)*uW;ʜ)H r6mgiRluCg| 1ʍ#I,b^sM'&ORlal &z>*==X(pܴy@Oߴ]X LD^ sz^[CQI]o[<"d5f‹p9jRvhځ,X_0lVZm FXD=ɭJ_.N5´*KqǀmÅ?50B,~u˙ r (ըz#1+z߸Zz>p**]y`G@mi/lN*?.dmSvy!/;ʯ+-{-O¸pb^}{ЈÙ\ + +`{M J-RL#RNBp5VnDo|4s8@*Nu^j^6EpM8DgZi:.˸z>cܛh^"N +syyʍކ\Zi΋3;YUbVd'vX_EC:v|lvSbǩVXuG]q^X 5dW8k"uB2&ε'p{#qWsaEi.+ >*o {͝xa#&*GwyCfiz3ln  nHQ`v:\tZ2ǭfݚ SNӁώj5⺣_)n]j{࢑H:cϸxgX9.b2%7KA0n0; }WMѽ?QnQȼ;mdTN!!ܶad z?A ~v"~v1wKĶYM4j;ۛ +3LZG FVY9l{3ߎ"N^]ZPI' ˝@`3Knzj˺Th4 w,|S'L^l>kNX;2³!ٰHO(s^e=bTX?δ͵&b!p/*C(Oa՘>a*dɍl$@23 mkXϧf~g4$k?)%i#]p!smf&{a/m)Z_0Wsʐʹ s bbV ڋ+ ~#L4-0|Rg l,PIE)1XEJn:YRD5HM 87ӭ)ɋmśb}ڻϴ9NןVJkܵLq[k?KbF2+jD;x@;mt` \F'7ځPTar C9O@)mf@4D'HxV6(s +CAB%'(qZ];?VdFW<,/z(>M5#j4JM%㣤EQXe#-yѶ#n=ɽFrpq:z^@sʫD]:EGGDZ(ONQg eD0rߑ+cc7F=S 3q ~"{sVC?7˝I _w, Efh[xlԂsTn EEd&"R zie:DUy)a!ί}%U5YR}vS-!Ɖ/,rkډ^-}z=9GH+/t &6~`loӅSR` +?b_{ DПo?th,nk]1?S7Nne'4q5qW,,Dz'g\{s!CYTqp^d"(^?RUY{G l|4~k׀oK^A%$OR<>oT +৯:xԿ@{Lܖc-p xX@Wg ;Y +"c?RDjԨYr3r1Z]u3~U+OU`w-Xt`;ˢQɔK*/q**ckmo +컴/mH!+`CXgGQP +s-.I׋N0$g5._M44 G-w?`]V./AG' xhջZ.X 9Y2Wi/(7_S,_sOAx1em! a: gN8IQL&Թ~ +60:?DY[e> +]C(<oѢw(H7;gzovC: lWO\s<9i4t{0Ė}ĘP<#Ӭ67J3d!q,ET˛ Pޯ~x%*QrĘWœ]Ist\ p󢚤RQ^:g $90yBqik8 rtC=/sW7sOU1+DG#G`"!ocݺӗ֚6(vwy]"2~dWLK) y S??5b 51uM4bV4 +ج D&vgխ1#xpҨ7j?gC:ʁN؇51I;E]1EȎLAvN6{o +\$Vn\m mm5PvP^ls;P1mr_oabHi2>D[j۸^-n~/Q qS7}}8/r;B5 .BoWlӚ,~=Zf'ħ.r'uC2jMz~w|=+DMoo ~xm1sq,$ӡ0C XYO + 1_`7'zl +*3M \ 2P3-I+qWKT\r'+{Qp:.Gҡ7K.]*izBmbQz=ƞ.][Vȧ-o+$`[J-YmWmVc_%sGpAmWVKwUƛbu5B^qi_Z.|#fm.X ]O6`sO*KJlrRy6 xxm(]"k +l.E0V(.EɛEH5iQЩybo^)]@CZ4o0^Rr6zL8-N +] +zB < BS;9$A:[#4 @N~ɿWIZq:#9ЧBc0٥R`0@𣏕9r#iFd7.M\>:jR#/pK)=< @O@Fz"X`E،kqy0;yw)Qjά:ey6~yj cT+7N m +I9[ *W7chiFil6|14_ON+Y8\hE}E(suj^^iw Imy@P:@iiތ:1ЃNo;d"- (Ljc F0[•mʂ'g +\xwX1/c=.7? 2_mD +ݒ{\1? _]ok TyZ]*0XԄ Vn W\h@ ڬ軴d; i&U 59TsNWޏuYbKD1 5zEnTHR*JxU,bJFË +XQ ,Wh p\ B$5Uް+*PkhیZQJr9/&"Iw#%ZO7FuxB7, + +Nůᎎ;vUySCmN^ѲRRiOZ*C (KXW8="%ċ@@Ly z +eøGqN?ߗj G~D  n~4k= '= 4P L_ _y9nucP-8NL^Nc`Fτrc!go*#d)ͤ%EsxNdYˀ?u]N[w>md8FMŜi=&7ޏAqa8N>"t:7Ż <;Fwe"-k)n?Kϑu8nB).|m%I[Ւ+,i>!GXrg-9/Fo%+ 9n}r?μ֐q!*;ܕ,jj1fk7]XV.*K|Va R)nO[j;nO[ +wź=m=mieix(?vn TE +vazJQ(<[x", E/.dRthk,eʢEĪ +@ELUOMiCUƐ`Mh'&jBmhZ V|Ɋ]BN|~6 !\d+F}5W)/1 +#VS{3Zc't2Rfm lZVojϔ?RJiK>S~?:G-3z`4SQ a~͋Z?G 7Cdvg84?{HqkfX1"**y[;Q(?uћNv~NHN^a?ly~X/dŦ|jύ 2$o>$H=sǡv1rcDGgRcT +G}]<>2r)#+sSA?(2EPnO~d`Aa |4|a,0r43aM2Acm&H(,ylE8enQrS8#b^VKү{,cNu^3@ôK{- t,xСξ%qDk"Pjm2 PL %6$/NNurIꋈׁX[.<b31]2H.keqh4l%|P(e@sXKg%J!'3OģϿ i4㒰c|@ tR['=>iV|H4{132}ʯ3Ayշ?z2, 60-=k55I}So*Ox)᜚&n^Dϴ'NtFʃnLhKk 'Pchu=zFnB_5wXw6D5Qd#>Rˡo*AS>h>>h>>hf鑒D?\_k~3_fk9vػRڇd;ssxނ T.4E:jp4<#aۓiHߓO7>%S qbBώ3ĠSW+r2%}gvgIljfNy G_@<͋juH) TX}Fx/p{ɄjfUB)Y.[qeua+l\ U2]Di˔:s4]lg 3Z}T9'njdZ;O@y2-L 7]IVeKlfnp^h۹c_V +eWPWzF7ὂ30"Ů:>fZ?S<^^`> q0jy:?o ;-tSao&Z q۱A q<<*qLkH7cd܏6ƭAx SՏ%\'4`Gb +Ld|?hRݖ-hSc>Κy5qSyR20\Ty[w0s1^]0dBJ8HJ& y;02Z +Az8 +;dQ7q;4DT)T< MACѴ CMί}Ubu2eQ6Ѩv}Ȼ41{7ɀ|+wQa$.NGe=\m h.2UBXfbUYŰq:WBeso,# tSP2>I q9|88" +Hϧ{>C#LniD-JJ3 +`q}(dnDԀH<%w!V3S Gtŋq*R瘸TRE**\L`ݢ@KѿG3O +4,N1?BSEZ2fmЈ|/r};b e&Viz&Pf0+(z3#CZRf+ ۹#1- ++f?McInD77Ƶߤ +eJ圚'qswv"XuG:5CM\u[_M6Bhl8"0&[SANw/`GIވ<_N}6o/ b"TWuaY|NS/ҏjCdh>'q24ߗɈqʦ!}nP +iāɉ?ͬPmU ^Ӳ 7t&3ߊ +7ɟ V9NNk3g%rIkAnQ84Km>Wnx$&{>mf83sq +6/J ^C&`q T}nTc|(yƫ)I3-UsaQ` u܈X>'lǘ]ܶO,F/ffoV >PVlݑ4(0Vɾ\mT@(1 9Kl_;ܾ[1"#TɬTl,h}Y@3pIj1>9\ݗ{onlbfNc5TF݌gG_?( +Vv=y/ЎHr8 Y[/ӺV?ލ.G'JQf=~1뀁ǛJ'͍v5 OFW|y{o>\ݬ >u(uVOZʓWp e/k}5F bs VPU{]nI}/ m|'?g}ǗsqX-5[3Wهtه' aG פ89ѝ4{feB+qԇ4/Wq_H6Ce eJA/cDcb>D"L),ٺ*'Cœq޸#?Log*cKhsCK.twfG x|}{YQjGz~ \\ඡMbB37_8۪x% m ߮/h1"mVbs/RaҬ*up7dЗ?#~%~%wgax%|;pf-%}ta s_EC|˰[|Cg=!7!fK#ۏnV ֕mζ'K0\}܇n -Nrp/|R'cRҧ2#kF+q :L^:&G)z ?C߮bfkFer\$6n}8~uap +y#HzTčr(lYyZdMY/ߣTV*aK]4'miSρ4}6bb-xf:⁽$5L^,ߥR*U)fMbɲkF.MtLs2vtg +?*&U;@d,vx Xr:IBwKN%Ǝxt4#z~ԩ||TioKOJo}#̕7j]svDg}J $Љ1h쥣c*kBc)`>M], G{64堧x\p=d2xFc0i gwQbVЌF~ߐ~R.؟o-M.O.Ht=':+ڜ݅^Z]=lN"Vo'Gئס)کҞȆit4E .})jE.-ST'pMO7nHșNnlD4~UXЯj&l ,O&mXz-B혗]>1V,Xba6S:~tecmoD[/,Nk)y 1( +DykC6L|p[ϊ)6GTk1Ƌy"E>I6U)&lNMQ,+%_@Z:-إ|W;Xi=`t###B`vv/k̬QfU >Q?F0%g~UH#L92,9TJL*qǧM_t 7_5<_[Pn'3FSƿ(j`7BaHWG{Ϻ;W$Ѡ"AĄԉ ҄b>7xiAv wQtoAtlocR3m[JfxQN\/Il^fʍNˍx=d*UF,j튐?KS3R@o[VNP@f!v؍52 3Ԣ<Y!uB. XȲ(t}*=>Wp'?Rdx<̌̆w6ᗣJiGCUV xisuhF]w -.\/gug$SzTז-gY 1ixSL \KV,#d ӌ)2>ga^?2!^U-.XUtzeOno^: +=k[ +#z#b9=FDBKUiDp."첏{+3qhqiE\zaS- C &R 12HXJ(*JMk  |i3\;a3j}fp%'&=L9AZ5gw?LsvY8#X2& ?GgjR P"eg* C?lT ,ơNR4|e'~gBdž!T D2g KL^q1n@7uYrzSŒV^*`v bP\n:=Mt*Y94Ge-ɍ?WOܵ/d6 F0-4C +-1Kυ\ sR(SV-m?ULV>GDp[coM 6DMd緇(?d`T3(nCRMiTӚVOiMjJMiHJɕWhRe&?Z]E:-`}19ܻf!W |" \0[P#.2wisO'FyX/`*Ѹy9p˙ `4bLڭd!+81I1xy P([r43rV˙D%%'OiEa huoM^V{ձIMuClEb e2 Jh4.KMiPx9oЭ'/X16D\!]_HPK4xV;3*̖sQڻ;cd۠Ě"qPjI"xkEa*jG,<\L)6=M !j:345r FnEAz2{c|3M悙apf8mL4_qȍ];$ݷC,5 rڤVNl%aɍHK(!MZ$CВt"X؂74׋|#^ 3T&բKB+l07hxλoֿ/"K_ vZ`O~1ܵ&?$YɘNV~:+%#4M@7&o Gr:D8+d5 p W%;  5PDŁ9'J_2AC÷aPLw&6XJ4c#H*C텢V NY)9l{Nri }r"Ύ +{R6AXRBv!; >ԈSvk!k5&Gvj";}-~&ڡ=jLh"J(7:@rFDoljsxje&W~; A9.̶+? W-J s^cQ]OkR#tN1/Y]F>q绀෉+Y=ƙW W cB%&byC6Q}@<:0=o{d7ZV$B=԰0ʃTVƒ&0 =P`?$kkxMkJM)Ο/OSWxe˵3':Ĕy]Ŏt|]yȾs_bN ?9x?9>%IsGnuG%t˒de C k4]$'?N(71MEr3j51]RKmtQslxdIoi ːs0>S:Bc݅*`]mնGV~Lz=*9(c nKВtB,d9ETG~6꿌^| Px̄!)ThЩG~LCKZQkԉ0eK6vkmz9A/6TG̃w_+Vm?[;]@pgj}T%kG;rvIq  TBM\xzA&uN$i5*h0[8]2?&. + +-yL2J3.z/ zK Rh+fgkg]X7jDߣ +0-XCR%FDƭ5HFt}ESg/zJu9[]`<觮2HAqiP2 Bt)8R_zLC@5)zk@)|wbqR;"BZSޝ"\Mvf'tAf>"f15vr_/̃ ``lHCL=_O @0Et\eGLi^}iĽ-ʉod\)7?n.p.t;0 ¯)BT KIcW5X͠Rh KUL|xZ*3f$`áTAJ +VB@-t$]4$7w;BKZ%TbB%S ðV6Oj( <.I5lT^YG/zg3PK54C QjhnWܺ͘V܌_5א"x%k+Y=E%k╬*>h"x־>Ը[zop,'{)x`H3/h$bC* ͮ eʥ*LErѩ~$XD%LШ[H%ސ0 xha)~ +2:斠=D%)$$Rv^Fԍ?|&:u@@`TL 8ľĵ^' +X[,Oj < `@<بӂhA{1ųI [0lGO(EbdD +$pA8 uICmE(B*Y]χ\Yb@t^РSFd.h -qA~dbVOQ)XrPXJ}"h}&`tc/8:-:R]3hrCm]0؆cA*@v4DSo]zŁX݃4 =MO ʞ j[umNUswmX],uXOצ+E1kGӁغ  i|.E8(> yBX/^8c3FeѮMtLJýW-11ZmwRQTH+tF o||0TCocdDL'ͦ|HC<,м#Zؙ$lH@{Mbj?NþFmI,~Kc b(ZW)1ffۡ.I}-XU|M̶6$sO~,x$n@{97 2嗘k X_F-ʻT^-%=5_%r0LɶFE-7V,!~v,m^2 I©XxݺK +.I4RAwR剂ӨPm%%IeKm$o0ӏ"1K4mQK4wBn3.!L_8c4_tSioUίQբtdoJ%NP (qś"݁2U,8*HqZm9 WDi7z OLu śbo2J?gk[^o:o*>?n1Iw)9#l =Hח +[Z;7>L|/ZU}Na;5_g_t^N'r2eD }l$X#\Mھ_Yo|!2f̐E*<=26\ ϝ dvWw0/3L0d1)7UyȬ)A,f;PQ/U$ЭB]V + 0|e,V_f~?_3OA*"^c;:fbq;l  Ť~əن0s@Vr'3ŜToc.7PZ(%SK+f<ӏG#{X|d^nKpF,wzLr1q2xN_xNJ~ +DACcǒm,ٿ~'SNO5I=107;zT0GN(4#QsGq8KBC$?jʌAˌ|ﰯDѯm4-iXA->?v[*#!rm"X3N'skӉDӏR蓮'oS}bܔwɩ +gf鞙?N|Hfu"w;W~L$~ u@$s5r^3[p<-kQAMo|ׇw}OV^Ϯ[yGJI)da} }6C8]ox;^vTO fi"ߜTFT0z:<~.^7']O6IlI͡i#g@jLk 鴞Q>ty=H_~7%$:C_+ŽFc۲_Eiz9/6hZӼSQyW Nn'~\Qq04ۢ?Pt'yJm,EosQ TWVQ\73lVA:^~ DVX:DHt4]҅Cs") r `*qz)oRԞ%FlyQڡ<4|M|Fr4C+ɬ%0[dɬ!YC$Hf "5D2kdɬ!Y$ ؂P9$ԑC!C-K2~eaKBRQ0SBN%Yǿ/F?dqܡ8 Q\[\Lܵ*_c+Qߏ?oH5x,7I-pM~)v?t8=%|VoSgH.~Y٨E`7y 8KIeF?jԣ2ue󑹆<=lU܀m3Gb.#=F>Ymi sL'C8y5V2ߡ515uzX;<ݙ&YiPjrĵ0?]?][޳xmd⻡dtjNFع޴5 j,|wxԈܦ&y2!;r)taȂy2HV(i̟YQ#- EtE[j,ruȌ&sMMηߌ䡜Jeػb:ybt Y)tꔄ%#NQ4!vQw@#g?]T31_OjB*Twc?UPm`AVBEyEz! 7KC^fpFZWty#؁!KU w9X[+݉6/ɛzS1?z#CRϧIl?VWEV>M +#/wгJ%;[]zcP`޿Z8JvS. ttMJ􀣾|,v7?5m:o| Sz盱?&Xx G,Ȕ|SbHu:tJRXba k;aB󖅓$lufȒm;"cp)rFr٨c8F/]* t6P2<|yJrF`pyي%aCȘI v %hiQ*,-ST ~(xM* +{2Lx%wC̉~%$jjN[Cr8 O4ʳяjj9p>z2JY+=u_I,v)w>=M IGM|aoevNs|U$lXwmM&|E_GH]Iz[xT0,xȄz%G$ -нr{ !U8Pܸ5G׶FoKڏ;%<8B[Șp *[? +96GtLMp WB\H@$Qfj@X_ez\(StR'/N -I\D{LWGȉ2ԤeҠ6'eVx6S$E盉{gT{uЊJ4:@-yRq:&\BL_3!F(SnO)ր򁣞載}ݕ(k0zD?OIXN+ HxtRgR bń2~|@qu:\2^Ҹ1ش떥w5 N?:>{)ά̈Jj/'˿%cSIDG転R,Q(&Nf Z#yLREp+No|;|BR?JT[cBPo{  ?+;QAFǒlFc#hp۸9oI}o%[On<_xO; VCVR날(01 uߥ04Fs/^O;yRSзUgf҄MIQDsMp3/L재+?V1GF>]>xV$;&>zF8.)O@z )hiU+9i{5XOV=n5'Z87NV3 dDi)`5N-`(cmN,{oYoY[s{֦N#]Є" 'ik}Ekci&00蓗نjo#(03 +wȆ{#>Ml>KK"SᓈFUɳGc^o +@rtVmRd܌N}&6v.vv%h'{S87fܯ/ڟ|H/t|/Bgv\:c]VpG dC)Ҷ±8 30~gY؇ЬSgz zW~j *~;e}Pjy< exz0[ ťH bj{gH PV_wm9x}T'-K'ǻ臓Ƨyjzxz% M+znKˉzz$)Nw~ |53?KD=Z$!8lg(Eʖ'*;ԨFe@4h`n7UGQf/ͣo) K£%h#̏~{tw^{q}R)Dxe"E{`ЬC1_LKbS;V OC.ݿq`HQ>] I퀢1["v>DmDIFcx.}kwRjhg<_+XviHM1 +~vN R{Gٝ\_^k56 J~Lyxs?xVtFtZ( +Q2v{2l|.^mۮ RRap[ qcm {ucᑛnfL~ahӐoYeVI9!T_ ˆl-sOb +X4>%ThBIO.4cR!2vv^Hh8Ǭj59zLD|^3YkDς<3f".Zib%ֽ]ftuk*'~5+~e&>8:-0^Qk1?JOѿ@7Cy_5bB~B14XKxMt-z%<'}C$|UOY=OK0 ?=ڢY\reYwzd ?)$!{B͓[cm-p&?f(O3[{$IR'CqN*űi#4=3ϊ;WGh~{wsGG~L>]? h ox ֒֒.ђ%qc1jrdZE6`B'4Gݒ,7dXH#TɈ!^JpԢ/ELJ>4kvA3\fD!uZ 7_w< r7Y#"Rq[ G=QOQ<".16a i?ժUMMQa''?1aV]`3b)jO_OE, + 5JmNEhmrqIps*PSBalfuA5a~t} (GQ +0\g_huqnx;Fvӯ4TcH0D +mAAiv5b#)[?XO +bl;5 y -pimK | +?KEozYZݴz-7.->Uf2zug6h:V;Ռ5@=&m@ ͦFJ)Hz~rzXL8\0#j7<ʶ` 证mn@cHgRX%h4ڤ[J]!o+NT9pUB<*Hy9>i?s1a5F`; ߁q-K<- Bۨc6!fs2stKv{pbEl] +4%aTf_K;? uia3߀Pu۫^Kq4Pu`*&ZX11Up~|Ӱ++8=`= jf5=NqB3 yGNp򆶤TMtFTY8&L"YzPZcy:V*N+KXXbwںmI~:&< BmAYy- b;EG>)4{t17UjbۙWF!o51f /1T!j g<W * Oi%U?Gï*gwml6#usRBFr_sG q 5m%ȹ#2סm`T#6%)m|}@wi?mM~s\#id|Ro3}oEѣt6 2)~Qf ,} +WVf&ee[aÙPnonk%?3tDٛwy Œ+eޠn-aX8mq\G새`1 fka"Nr_Hq{ ߰;(2ް-%/LΎ{j{Yfۋ(nVXfm̵j-+bޖVٸSsbd1 ۧX6% +}SVZw'lXK +w ϐK,n7Uw89<\l"5b̐*IC-FP<☕̽ܵ}ywq2MY9nPH8HWO*`NZzo&u⻰&, QUH+]M&UT0pa0Л0&,Oѻ h7 m3F'̙}$˷7Vj_FЂ;lKFGH)Ǘn(,|ikAhʂ'koz(SފFabJ) +׆cU n9d@SqxҿM!"Xz[Bi/Z4ru ~߀$bBÌ̷ˍS 9o7&cI풟:][Hv'q7BuM}->(Fu smT864VS@+#zOPjB!^fDMFvLFZ7of.2P|o84BB c[-?C#P~T\-J`.&.06@b$6@b$*kYqW \-ekm}A7J#_#6anۥNBa5'EhԚ 0C  +<&nٵFTMÐ0y_L_ g8fK:, K ;$F +U]81]øQ:4hK3W(&H򓲕2C7Cj| &f4 ߒ"iG+efz) qQD{m@6 >#oc RhuEi26dq +G}G6lln쮗?O3r5 +R>vi<J#V'm''IGNk=o t ܢ=oF5bLl9o~ sh|csV+ZPG:^..W +/Si˕q +ʵ +&<"j'웠s*i?O~ŨO}ByêpZ5ؿM7}wfJ\F#wu%I'@N]|DW?Kctx]az,ǴjFu)Bx0ѩ?,^raO%F;}Y~Y3f$(`hS:\ XB#c1GxjI.5h:_%0:ߥ!9GQ +ޅgokf5--E7 ] +LkMXBY_)EEINXm`ߤ6n](@O74~DQGM&1۠6p>4xi6ENsiZpu2oUUNTZ4]F+a)}uNʀ%y4a@,Oʆ!V;`^5יz) PrFƺ: Ra. +0.]`^Kn:(|aUmHBP$kς#q3ਚd%+]nFCJ؇!$֧.Ir!wKt=㟄 o*&)Ff_FL + k*kcV2JHP-08Y|<<}@ :[KJ_XQI!Z"=$WF(*Yiշ(n9̑ga'dsOq85  ʊe$yƆ0*6q~)݃V[!УF^ +K@uݵ*rɶgNi#5J|> +7^Q+LRۇmVث a5-)Q;oD]C/?Ն{ +xԀLR=I;Mmin _c;ڟG6.+ˡiyېC@tv HOMVq:=t"F:‚u)K +@yRfkiں>GpV5efaxt~rʍ~\@mu[Kg,f;>\P\t,snRx (Yo;d]]#\ћC>@HNIҝI{Iwt㇨ؔx4>ª,ABP} +e:aDAmWO!-^mv|Rbf +x'8X~ua0f$Տ<.ry,M 2dAM0x;?r:!7jHA2`MRh@  pzsz +B0=l}@~(}CZt8lK':EqpػҖjnq բjWIn':QxYc̶jby ؇᲏Jg=IǸp̵ۨC1.7 [N(ok-jĬVYNjwM8.8^͟5Մ#R[5" G(:*Q >/S<}5E7 ]zU鸛j `mjX6@X0Vmvk6D۰%B߫fQ0,!FŶN&ԳF_/ 3h$ XNnS}z9 p/aѴ@gu6gԹ_yjҐwᐻxcB]ܶu. ,w@aEBك9%Ƕ.嘿 EN]bvh@5}rCK\Ԃ`'4O{H9JA%PYPM^2ucǓR^Vvi;M A\6m899mǡW,%ļYv~&4U:*C.^ꓺ3Q4FqvbneAeC䉺-kԇnLz-D:B0W>fLZ ;:ZnMoXgId@z#vHK.%$F7atmʷRreoʛ61]'8R _i Pك9X>oIFD1n Wc׎MB@G8z2[Gb QK'B"63" OEI?%=9cr3{=Lzl`]Nj!^]HM:> /`7X&! Hm4:brmڷM+jնDwņ.Q`]{݅ANuwS `T0:G\IC6@FAH`!*uBQ?0aV r k`0?.4'['ϫSTe;r!]$酮{Da+^xn#jEBݟ܈Vl^t |# =<^ϔ5 T$>IsP,LYP!Hk?T-6<'#(PϑsКeEV2G?gƋXJHP=( [vԥR̨~͢#u]{q*Ġ-n9. 8:KwLռ$4YS> I]Ӵ%}a 1}na\=2P mrC{G axӸDp=`l*=;eJ` ?%nB~[:VV0Hm4]{V>PEسo gҖ}`ۉ\X/˿OrbZ忝'<)i,q_54&͂oXDϽoYR Ȥ[ +iKZM9 E^foyp@rxqo&N7`9!:,eGUKx&_q4t40 "WZjaP81QDŽ3Y$eȒTR l0>FdMmBA@&7akVmIMm[ l9]I[.b66e_%J –EIUL,:lt"p :lf&Öw8o?[fl`+6 B?rgOЫ +j9 z^X0sl*p 4fK&sX/M5cXABaUW! eoGWh|@/ܿ?tEԧћ/ 0*e-n=KKxJZBߵ0n./#ĺ>7Mqֆ'UƉZu*Ҵ0Xq̷> WA]5z*MMP6ii"_7-@e) cwq_go]iT<:7z_q o%hn[V~-&;澏וҨ^f vm#`FntmC`SU3?Lضm/i"|,+"0Ja6}5F>|rlnjM՚dud/%w9t`bl )ynm*ǹmvmW/s;Oߍ=/+|v۽6 +~=hnݙ4>;PkwmW$1!}[&!$ҮC񄄚A?wŗ 8(nѧ%1]OwΊzZ/Gj ǦޟiKPۃ,nн^hGq[VذJ6|>ULƼ}Em$,_DgҾ1F?3&!n1mRI#kir5[,q_iGgH(ƿպ\m;],kИ5XQ *!]qϲf{NG! +z@wІG$͚ts.l#Z_I\ dҪa}hFpxpNm>̎5%|&ẗ́jc#.+eb +I&av? m ciaLz>fcQ/x{^"/Hϑm7Ӽ +y5;D[;^uwire^. 4ʋM5h>KѶjCd08" RݨTC)AUaqiɄEl;[BXm;eI+E*sm;ȳߖA+1+]Blځ X[*3b#=TOa1KFZ)kD)TZ4uLNhoⶽ C;K7d핛I utC8s +O {kC6kCɡ~k4ovk>Z- }7{w6Fe؇Ec[ -̶kB'ֆ]bm؝X``PTm\p- &024bLtYɻ_=ϫtyQ$clpC _\@WNUZKh o"tDRsB(JQgu6~upQn O^%jP~=%DXW+єk42__QBBwIuBwЙ{5%[wBvTg +#̇BߥFv|AO3A4v7\!oU%|?ڶqM 4!sYCDhܘs++Vv%YjIEM\&i8w> !*ar^kܬ`Ŵx={CQ& CFMFtXuCU3Ȳ+;[K +e'(zuŸo 5kEo^!dy +n4в+LxKtoO03ߐ)7sa`|FeB-Q=m=:u hqt'C;DU M7@Ez&@ ]=x]zĦɛ{ߎ+h[;?a6XD$ nZz۵-5Yvld +|/}/}/Yߚ//e`"?/oYۣiJJ^_K+—ėxHK~HVpٟXe"2$*]xU:8iAnF}]"w.j9I.m[]5m+񫺑g"qN>@2~9BcP> E0*@νH52 9U,kgPF~MҮi7YǶo $:kG繭jkh&d n2ݴݡ۬) JGnV +K%umr؄dw95#VJB]uoOK h)`N|C!wjhKpiyȧɰXUJDLB$ +"]HdҍJ(ee +\DhԐ0ri] "2jɵId0L`J'!T8tDǹ}D%Oqir&% I(?խ<7kV2hƶhf끉ܔG>A `gW|{Ljd2N8iuhK/j^{t8iqߍ23uz +Э$񅛉NvO(_ Zv ݓ$@Uxw8锰v5{0~nBIh<=৓w#Kb̳w!zkٚO]_c0В[S jQ^Y9[} 53l15u?@bYC[A*$p ~p2; }^5b = +43d#~RS%R1|=Z<>gnZ0{r4!s$V2: F&u1o;&Ca,$H'7{5B 8w|2-g+pѤ|:ihh"Ѯ_ًV +:o nV8i!\Adu*u]:s[ A8DZ'&X]jerN`Qw;'䷶N`Qw +5E5&oIfQIbQ'ڨO}PYɣ +b¯M#)Buq +tV~ Jq}eʏ%{{9@ (tNU&}GZhUȕ?+ |=j9 AKm[*5W O8 b:m׽L:2Fw}YN!aN7t=DZah&a1$@u=,L?% N*gzf.>8O{^> ,znOvC2 +QyO젵jb&5hGZ,$cA+%`KƳL3OKԌҒ̒@_ԼV<2>)x%<4>@qXqK"=AYۡWwaCl .8O*!MH& &WLpv3x:m}eec"i4<Mj;LaӜlB~:_c2JW'ܔv#8Mg2Ne[m*:ǵ'Q7q7$xR`l If&ME[:+tFҮ%<'h qǬ޸=N9&w$EL'U?F2[iGʤxB}ZUx F2lߒ!`{slhn!zkM6ϠvCvŶ:^3lPdSBܾO:Al@qd+_#ފl.^T\RIp9G;6 e|zd`3?'=WAJ= +!77[ T5w+^ߧ +ti2ȍ)*+j^Y&uIhT8utfE.Eyޤ_j=Qr8$EGFA|?;m Gv0֫\ av6%BY?U=O'PHQ$7s;qRZʟ7|.jCr$ПMFxh;Duu#65` XԢ֞n^dڪݪ/x>Mă%ỈrOڀrӉ0ۖD pqIv4{5(4aNk;GK;ךĝޥۇ.͔N]N{h!IwSU)PԐWc1l!WI\۔dU\6FNaNHmiLmX!Nnʛ)[aLou&sȞ__׻;zi|mWc OhvU+0 bA'Cz+ jeŲ@qw*r6"uTt,Ea"4A iGV V*oi_J*I n)%>xh=dfP3='ო{$ǐOp2UR_+i\ފnh{s¤NEz0D{eoVzZ}ZXZX^n;iF>(e1< P'kշOVL'9 ;$y*s ]{cWkV1eDqF @bR%$NQFpbnj{XIH[5gO)c 1¹;ЩNFڟfu$fdBEOE-XⅢPaE),_a O%, ]lG?Xڍ&+$~Ow(f(Z.1Lb꒦\2>|-ڱyNT16;RE]ļR;nD ._E|r9P@Kw?/N'5|E9^t 7]~N;6<,: l{OHQ Kѵq\|vry]`FOKtcG3?=9>$y&wziFSࢮk/F̹Fy޷{N +3`C|x变@ns@nuާ3(Zзû3? eGdt<}|w{V~V2`5,Hr=]ċ+ub dTv%iE c;A1@V6a+dU6U|[4Y_RV i[(d@2!TљV",Ⱥ8W7* n7Ao3UkCL@Ɉ~Vir:AVg<=#'k!"^BT詪{0@* :veB*"C>+㹝gPW/wfrAt/0K"䙫r#LaحY( 4ĥ* L(jKRȼ(8K[|QX _Ob_KlhNiS>EB{;|()16 +:^<POS7ە%}d/: +| }u$3;lm؉^:_<\:K9 Oƒ HI b5K@)O;à,R,3Z::R5B4vg] 4|>M1 +i) +o=Zxp:x(*B[^Y^Ҝ \CA-A3HEow(戓z +_HgZ#؂1mײ`v`VG_,T_U72rWq'NqGD-a٫EXq5sac^1^-b=i iZ%ix=ea(MO)a@gjJgݾj5v$ا +BV +>9DYw1:v>_^.2}|1d, +SL*-BinFmՃQ-/ _S m n&iI h791Il[:xn ½[ĊJAw ؅7Tt`5&iL8&R\Tj|H67b ɺɍmwb/@ޜӀ~sBCCK/ +R, uu ٵr̵%J^q + ,,w2oc1pqEj,};EAVE:<ʔ{ >*z}/HP ]X BB$B ;l\ Sp,M=D&| G"PVL-69 iJ82C:儆AJ /J"AqX]Y@1A*^N0=7)vU߿E8o&{'ȵp&W~2QdK؆OyaYڬGvY!`z:<bZ?D&2r:!=5`&lpe;H;Gr?g"sn.HS晪ڥ 1,Va63u=>;j W-sR }H$>dXmT̔.L&*dН=ӆ )FY2ߤR'| LƁD*tw06H'%MN!M7j_s8wI;N^!?*31\KЦg: fRcVW)šFrȿb1Q jͼggQ0aIG:. +$ dOc.LW+C +K5Lr?[48d;+| IBP!Hч]B6Xt^-7aԹqC׃)5D H 98dϞ794lOkdP=joiQC_{22Pժ>p>Nn,oK艠;<5П>o 7.-D.r*zb dMx5˔k\_в$.6ܖE|kW|^`nu8buZ fo!(<7\xP__d < ړ{A$>33:nfےj{0/bo j csd: {7 +G5(xfg^.nTG…wѮT()/i*vI+[бqqvC6Dt)mN7ͤ]Șђh|vANS1(F°/i%X4,HYPaddGLv (;k@g g dSWG#ҤEb'DUN?T=Vv!;:f?l}h3h[ j={!N~՗[y;i :1ElGl ?l8凡 bYcM5˼ۍsY Dz '˳PxcgDw4k<} fhcq4;t 'ߍxuf/ILEҜ"o50* xauo}JkV- cQt(b +٫QVON!Dmg?&y +Tm1) yfةn?$KI[' 9|lCї_O>8F@&b`Cuw- +]PLbbzN!>;ZCf_xP0 pjc8@CEuzG%9cJ iLm4 k'X(CHrlwzd7&L|8$wkiwnMT4e*[zu&Ec |a@0g{μ>>.NiV;OOځoSŲKC#,X!hayAzT/,h/;DZ1lfSTUƒ܍@ ЀVRprQL8.*G{ lUгϓ \.Zy+}x89zpjq0@{zm! ̛5 'ӷ89-{lǫbp.u1EV@C ڬE~&iC{;uwp|_+g-T UJ_MmAv4KD(mM8ŴW׷TqATK ܜ^Wky2{J+Da/}*]6L67\́ak:t1zOS~'-|[CB>o2-DbZ. ߞͶvR#*Kjj2wDyEoIn6gaýWtπ?Z,/ +KXn ^Vս\{|܈4|dX+: uJJVUq$#rtI`;j|P+߼F~ ga6 +|6}iЎRXaqmA\:}yj5['*W0"Y`ǿMΣk'wc!~{ s(-Q܎@C4/uZ]+o*N9E|L̊¤|ZN"Tt/oX+ձp=XL/ŵ,/F+y5=+ 8Shb@;N"}0H+*&KgU&v:͑]nፈC"o1W|ĩ).%zI><,΁EHo$зXoN?NՕDU5a@Lo3"5Dgf \Q4WqPHY:uQWς .?kzZeN+x ++RrպY-ֹ^Fi1Ѳ' 2% O HXOdۨ [kƤ5!)VΚ`#6 TM&`%@-?p9e{e7.L e\Ծw5kxmEua.b&uyMU +JI򷕐Q~bkOEc.FP^2(#ڑ:f(0W.hr$I^c̐N&QanN64E>o[5!%7@h[?o`/UCJ0O ڂythMSæQe Uխ ՏWe7Ł.)ܝǞ'ԓIt}n=]:∆A|~zΞDoJO6&!Nf] )a&6PEޓf/RKWxb:vy56YTY{,ͭJ2sOKkmКmBĂIAZY Կ>m}vynJ3Oʚh#5a}4MDy:dM0k5A\+U(_+Uq(z[M}e;MZl;, Ԯ8[:rAҥ,\Fy[ USٹ~"Q-gg#u{ZU:d)mGBO9tS?f\ф.KT<i`6+ +z21KlG9Q$3֔1o,l3ʗ+LE/- k5}'lubժ_b.]z{M*7nVbz[`A.Y8J!!oIgm>`#(mj%÷ppd@`g*KFW +hKǹ>HgsQ:df.ʃM$enAѹLc=S8Lv,ҷgw*DCe 91osmAbt[H#4)R.rz*(>&ۆ֌@ЛH12fk^%tн[nɿ#W!Oh StDp*Qq&[Si?U!cDy;sҸ;^kҾl6oj7+ĖA@j0#+T|9k27]ZyC( I@`"Ppچx7xs_oK hSٳK}=ە/.\٭7Ұe$!٘5M%Q;׸yfT!Q~c"SʰCkE<l' FRoj5'{g8X}g},gcBԑu ʯv5Wzdwfk7̈5o-ϗ25m'&Sq9 s*iy*|S]ZDʿb>R<;X% ]2Qh`-!.OGut7+| ~]Bz>PwE}9i-1&S;3՜b7Dc[f7>֯oD=U -22ev?Zb:Ғl:Pg@I4iRSȕ{8j,W@Tar p߬vQԺ s8 ~vFSj'Imcp!*df'M Z'!w"yjܝdE7UA3u8!x`8c56KK O&3,޿Gz=j|/i"84}h2?h?l8);י8td~-gvetd} do=;9&^$MGU؟k=(pv  2d\Gċ2h%9A3ݠGf .Bۧ/31hd;u 5R +rXCu=LX4eVzI׈Vdؿ7 06qqPvJ|BWLrtFu$n +۳|Mjm,lP_6<{2?LMv״(S\13XnL ֹ4h315w 䁻 i/]4>]WS'9p"2cR~8 {l/cD,kՙ9h9NTMfM' NlqI'lnZMҎk77`RB![HZ~>XGB%'g~xoye f| )ghɬE..¨\:\eZ]3çF%]n95QhozfP&5972G:[ s@xC;/ck4 ǖKF]kGbrL + H;(\+?'"\L>ZDT mB㲕M97H/.%\@1kүO閙nH࿝aN濝W_s=c}Y_;%`RB9(?SpC fJ{WOOyTiQe}] IIPDune,Gq=4kخd \噌@ǹy|$9_8et iUx)ڤ<~Sq<>=)?a4qAw]3ƻ~e 3_Nϫ + _9ةS3ätDNͲP=RLI,DLy};!Kaw(Q8潨y(0U 2W :Bvw/JsԚe ?},UyI;^:kUlZzS/JM1zyCTt†ƌAO 8~rt^^+3H8N|ʐ ; bis@4 gYNWK5 F/XtCh :' B0[NQ\7 +GG^PɝK$A>s̵@=dMih.7cp:^:V\̦ ,D%."#j0?I%mhٻq1XXVr,p/0ҫtLI;Y@yyp6M<9Ks90pGoǏ 8F?G#_/uQlKu }uhm IeCY@{n]{hcȟY^8 [xt Q 4K`FEXD.yKf^vkc Q>NZTiOccG #^"GiMC Kc}Fj3*@ +Z3R!uUL M&3F]A;2FJ^T_R:Ѕ; &,u6ӄ-& j.aR-,Sy>('^~Yi0+([0m rl: j#pOal"y9҃w3jOZ6CmNisdk`F!:{S/l2m/9r3O[ಃ9`YQm_3[U_DMh2I_$iWc~Cy:Oˆ$"l9pƐ9_9zBv'j~;5m1[ޑߓw+Ŷ[F8h>O@*"&&o̡!q_ɐ[E3!guѴq|Wd;FϩGO+ %A^'oѡ _2;fD(ƏCI H'a1xwdbܨ0.wG<\֡:3AYyG:('±#"!!;&}7S#JZj4㼬a3ܛ/vRHOR:CU:hcuj1JE*/^e\X)-p8F(ntUqj(g/2{#ѽGwˌ>f؝|דƶ\̿w-[t7ݱ˶ol9v}mϛ4 챯͛=6sJe{l*i-K8g\/[cC*;"==S-+3M G3`mD3̰k02,WJ[T{X*hѩ;/'gFe%ei] 49=OwW _jvx%m1z2/@,׵ N@F6>. ;@H'kW]z/e>/Wvٟ=}vdۓgjOϞo}<^?iY8^ض%O = /4_nÏ~0  [xq0mI4 5R& ;9/+nPP4 2´0 _;<¡|b15O:%΄ Y3>HE(n Y~d@$ZlF2 3H6ST'ff)f0d. Y>d5AID{ bE:A"{_ bw}tG_}|>y0Kr.bE b~<6a-;9b=$6uݴ:^RFnE]h%T勲 +J nRg݌~ 7nJlF{aca;[AׁpVxljRgԮu6#Ƣpy elL.b.(@-6Po񛫠Y˛. +7ޗ2J4DJ5ImQZY- #iQGw t}lbKy5FXFH{ht _ceD(\l3¦̈` ht;ބE@HWM}oabD5i߽ü˲,ћmT^-]\LUʘ@FvE E(znW{y=dTqP$͑0zُ! 2-.X}1OPj86w֌6[6308H?jb݉c1Hq}??'c}¯79ɍ^|2/}$^}x)_m~Ky^ʩS;M8!,^ʞ?fWs\Q M_ ͌sť csgm-tLkT85nHn׷]_cZwtƷgO^^|5fH$5$5^$ I| }7.#+WƝsjZBh3O|ρ5-=#ӀBϘŇ8 eJeç4zѹ3LU/\0Y%11Rg͙l`[ME īE7}]sZХ*j$S&)hC+٩Xv) +'οg Iq3jTR'vIZN[Mvy(K~;XȮ@nSWS1ny0ϑ '|9 r@ϳ9Z{amQhԌn~Yr,9ܔ%Ȓc琚qC%˒sI˒dɒsM`Go[@jalMs*@r˙?Ȗ. q^G(~ +bK7,TPudof|W\+ >싮R 6a x9X@$o{F G #(ܰױ$*uZU䤼Zqڍ:ɗa[wWit;-}$tt:*F~uQ Ljc0`U̹(y4Adt&f5Z&ɸ$!>(h&*zrdJ&W)nxνd|r8lMe)W ģ_h;+w8mTWoBNhhFdֹ.@逺gt~jv6vn|ARxwK|v|$~wIJvۢ{5"Z1I)53 ks(Z/>&bn)`E6=qթ:ƔB_aJ aymLPNFT[Q>JÞa&E`O"2FX.MH:~捍dxaP_;U7I=ae1/%VN-;cobFo;m8 +ug(`D|i`EAy()֓y +6K:Q\qHrʫlr JIٵInSy)~KXMs-p;p⍨L8G]{w:Q)h$ Sj$Wr}cyV᎛_U+b=EO]CYxKnpi!Fy8) z~ȒMcnWX}-IXnüٽ GnEΣ@P \}ڧm]^+c} h$lW3J+#oH+wwkp++X?#F(7ȝR6EGrkMnJ:ě}'=]!\WC-ߣca+_tU~}|ޤunP-xGJ:/>xഌ;#Ág3|^6} k;(`9hiKC|a ?/Il?e8˗&xѯC R5sx>WA6\O\U+PQY(z]o(NEᗡW 8 ;FsjinM[1>.`V@-/r?k)Lgh#'F[鲬_qw;@L+F͇P @gmm1L]w{=:P*O+}N0~bkIlʿ%/+2k6 +U>݀ *TRAw Ѐ? ,ko.ZEWSsQskYW(>JF]Hӯ76y&>>` ш3 8U⚞FGG 0iexte!4NVtNї+;آ@]IJnHn'AQ&sr%0FN[A_cŽyXAkp5Ygxu˙}(ƬΛ<'fu^**=:^Tt`Y`S+[g~Goʡ|x48 VQGև:gBm/֚@ Ӿ D>?" 9 DNB4E_ieS "EwO> "{ًI^ZH1:aHqĎkNBǵ|5 RK6)k]tӺ%Gꢿ RVyu0sL{2N= it[E 3ٱ-itku?kr (P$`EEVڞ'2kPNO 1ӂd8&YHjEb)V$[>;s΢o ņ?@~*:_9Cg58}N}Ir J9 +x=;ո@DTM#OߑܧHw$;}}#i|ڇ\}8\ -Vohݒ˚9s~9[MO䱕  tFVrwy#@*qU'o %E y떊ΡU /n 0=H/ }<^/-%Pbv(ZPgm m9M`J'+N*꟎/I@eC})^9vM1vͧ)`*ٔ^ +0 .}œaD'" ֋. +r4:z%vG˽kiI1?f˩٠[sH!حorgoZ\~S"\am |]g-I-> +NxV*K&8^G1x~Wz g`A˞ԦA;&z1:x"ʮeeU? 9N*t}<I\.OE&xj| K#K,T?ɵ\~cfG"K{׋on; +k&n@ɈgkۗO NZe8r%h=w8`Bumby+RS7Rlġ"sw oͣ<^@-I|35.dň"f#1nxtX|L6/Fpu=ZvhbꦘamL>?pܒ0 + +Y<ڍNŒS%=UzIS< &zUţ4\k rh#rG'yqsXtT ~~ j=Up-,AKPv ϨT6JlOz?% Bp Ghv wf- 3N 0iŇٛ=@B@Qy*c MLR8_i` /Z/g'@gƿDJ! [/LOſxv7_< bCP<7ų_roςȅt3D2[['>W32~f?៨_០_</●lO +I!ZD0?+3?3b|¦ +XbF}@I&'@0g c2 3^d,@ZC1+>B`OD W1Dcǘc˄T|eG}uAϷ@+Dr@dlfcX|st=Fe\s!FHjiyQxUz"GvQbn+],'{pq} b<߯m'^ʦ&"FX0=\)pyfD16Us>=e6r|c^`~ 1}3TTN$Go~Bbw7Bbgpb'^W$,,DoK I 7wj =җBKr'$!)%<0} LWJJ}$j$U]5R $)>8,Rq&aA%X|dk?'f,tP֎[^[>hgXΈSxJ?Bx46XrVEx=?9%Kzӽ&?ݜ-N!A̢eڰU>ҚVZC6|ߤ}'--nr?.Ӗ~vom,&-ppcg?.$e! ⁏QE3-)z_=z_CPfoQ84QpzkPJSCq N6iIQgACLS> #uh=)#?ﵷ&Җ$ ˦qu,Oa>a5bTwB ThFbyydx@ifx6죢1fx}(je)m%2)bs =_=_.Bt!zWPkeWM[R>i?~(yoT-egڏ+4j+A t0q2>ZC@wzj[MIg]Q38sbC+8WO%)"gGpX1Btւ8%gᅛc…;n +䝼[5jˁ?yΌ*x Z.kx:$h/ bٻb#"0\G^F$9+qqIgEw3UzIϱYGkL8azb-K nLä xI#Nocłl#JBizY7Om&"X 7*poauCpnZfS]m^^ je kh-$QVvV^d2w?͌ל‡,_u%e&vJV}umXdu#AhtEDv}fq]'̎nԄ]9^K7mC/E3v0E.a'~jHBGK8N5R;@NB/V%JiMvڽ:}G&1 xL\دqhǯ4-[MG%Ia]Wi3g2'֞бI wf%׻rV#- ®f\^^Qz [5v5V1 X^6nCˑqkpJsve*,P뗌N8 V,?=l&|?@!TwkoWvx3/e)-` [5&brׇqjخLفxUx֓8پ +_vYg6[UVmgyͻ[C>di+*5wB!A:Ujü>LT UsEW# g9xB9 {eۄ<NG3dJOY'KWwj&8|g7~ۓDi\VC{|lTsnw;䉭Nݪ؛j{#{KNӣ]{A|ުpNI0KJ_Dt>+eUX3AoǛt^8ap]uXB#_]u9E~*I+W/1B+oӨOZB_ӆlExAg\E!52CmZܤݤz7鼛Ɨֳ +lsi{* >鋜'є9K³3^3~oo?! p.lwɛ57i0wVmA^}ۍԳN ??_߼ѿR,2\M}Q(tTF|)!hCdyK^_[՟!g~;a7¥w\ѷ8_tVRNDwuju59;8l^\Oakp }b/ޯuq*P}}\8E:+pH{ʶh75s-u6^|wTBj7{m}kU||R8i+%D Tqssjhe|*Z9)6y h+> A<RxƮ!7Wی~7ρHsbZ$EfЩWbEQogj[*L*. AC>=R8\_>ai XTDhlnh;k2>Jmm~1d']RJHm>ǵ; 0r鎂s˹r/&N&vm:)Cr<6+O89Vbs9cLE ;(hc rb8VVb.H(|Vn4s.1ft$Y8=շ5^ߞMvm…|IdBAvLp8@ n;*׹$S})\i],yr$#6Q +fV1av 3;4KrSB'>=/=Uq=WhΪ^;ڣh;){Uz3HX1Dŝa 9l^ˣ sjŏ?3ɔƠʣG8W]ff(ڃm(!rUVORV-|u b$+ﭛw4:U1rxdkU$zp_\/ne={hDpШVyKvr@9 +F1<|cP) (A4Qf}F_l_gZOP)p]fΪ$˭^gtU_oZ>3I5s%.w^`]8 Gfe]٬hf0:y &14G'[E,]{s(co9Kӣe[ADEY6f1>A1<K-ݭʶ̼sLEȾ11$SBE>Rl5 cj:()Qus؆v=9I:3Ɩ[F3%4ދOjFB~sh|Bb| _zp߯qIsgE ¥T11T<`YK +Tul;|0Nhqk 6HIqDL>_Ln-Q[N.FGPs@*[ LX\&sfI4H vpxt;֬okh=l[fq1˔`| [9!#[{y4b*{'!P%Chw/747sKuR.E,Rp.PqR+yˠ=(9+x7C~x?zEK/`[tj +a08|1qQ96>I"^_## mVDB8Gk\$k`99bl|ː <.&d :&<ʕfwj0"WxȖV8 /x +F /-P̉R8E.\.MKq=Q$sX 8O;R"|1bIrTϷqFGRHYHjUeGmH^ u(%N.25 - ڵ)UR bi\jR%P}et-McNČ,䇾ʅglļj$aGMQk<*R9NZ=q2N We BW۪Rư_S8eSӪ;wkr#`Dx$V*&P{'t:=Mع$$ +g[6Q>ꂞ5-Ҵ UWp*,I.SU̶ww%M˗Q[Vl(S凔EqksKVy!k^ٿK*Us˨5 5E#c+7NVgsuKIt&Zk\K-_,`٥Q_CFA,CSKs pV;XAIMD Ր!396n1^nl*w8 +I+A-ܪr!=  c|RHEIm +ؚS{$߃151'pn= kyS[#[gEB'ӂ\fB$м[O0|uV=wco&a' A`Y4*e2X wfh2 +\FQ_nm%X0:G7JtpAC;WC<}x 4OҜ][El^F8$B5F6==#yu:?Ľx87$AS-hVlI$%VZ5.ۼRK[ Z&D |(D-mRkR(&ofwKLw `VZ;:3fBXN:@tMDז)3T0"*ՏI+jKӂ=L&Z+.8mje-(kL:&V(&Q' $b\I4k-Ui +vvDg6Udrf}f2iy*)v(`~ JչBt׻u!Ŗ)DPcg8 fQuT룕!྅:_1Z47Q:jE_%bHZZu%W՚"|x*f}lU:"*~PkpMk_u(kD-(Ч`͇q4×4 G9xMMpj6:JpI C_=>*>*˾<(˞wΓAuY.gAWOk:/ dH\Zʚ&U{E^/&LZJn&|ۛT2:O- rKp s!WDhj%=4/^ 5\;+ƞ7WcWls2Ԏ A 6&M1ٚ6&tw0۝Ɲ]܏eD܆=9g$yvS?(Um:X?,U{aUFB|]Bγz[,}9;1+x4<"QpDZAA*Q<'+`踭Jvss}@leaG*WA1} H8_‘}tzHW]@ `rO-3'*b)%`ZfDW&U.D2 שiIY Ig^0=̽w7=w@{&̽Ac\;L!@iY| ڑ/C m&;UE:},JVNIUiʭV !xsOҾFTrG9wW;[c7@;fyg CLrAO ]})y12m䶍tL6{4a`yMPix=,kcjXg`2 =)D+Lj;,T,;k&x?J`Jx|S)u|*obcsq٢rX7+X {gRVie9RA5w4IR=򪙻Fͥ'/ղomWztBQOGּ]̱5};2{vA7QFx(vVxϝ{v`7%mwٝJ?2sݱMm]рt 高g+VRkYf[y&5yVL 5R.{J厭XgCnmS=/ #6Eb-ܹ[Q3!3L؛ 鍸Zrgec +%=W$Bo*: 'Roex<="-]"]ޞ&e=8IJ{ CI/GsdIǤ5[;zdTJL}I@Քt5 +"V'BqF{aKJ~P, 6c Swe+Bjnr;zU XǩGv.jCڋC#O-7Z\=ٸ9'u +9U6qF~%cvm*Fk "PM&w"JxQ$דnPAZ q4!+'Y7`MH`a~]%( Wh#_2Qi#tH1[: @|״oMQ5ДP4]ʿ$|Vեiܵty3mpW:/6o( =a?L9͈~1r?papm.߆kx* L|!-|8.+>c{;zq_li4uoҀ<.+'2=g?'K](`0 /bs/ Iobl)f +ˁfh|yns?L! *E)Gfr~44DbU Z!3`0[틂oƊW"o8A|$^pƉqA('2AĺBcpv=xT#Э"\9N+3WSzDr H[a, gyf[xYD TL0_rZfJ( h)+Zms&{;(+$qcTlt᫗/y_'  I|iHFgy&{,{ZN۶ulyY@cxBCgb3Q]Rf + kq/ (\С̍EVŖY +^7+wR:eP̫Wfۏ<<9~[L[zPVV*uyU{.z9Y( 5 π +_@ZS䝡欷՗n u"@6c *V9NKS/WNGh + ;Zlv,nT/%[r{K`CIhgY*W.bvwhϚd= f̜5Mˍ7x[`ugC)k0כ2A<H:wL ?Hz#~˽={1 mZ~O__t' +Us ۩wUS#Z;/9%z?AwT? QtZ\r:gcFk1;P3TU8;riOu'KF'OK- ЯG+G!|T +\^ +?ejBtiZ_V>ΰ"ZYNhvNXNj|k^Tf7v~xw+JN 5i/}-Tؼ b`]R/Պڢk8 TXC7n>S[ {/ꮥL p~ +.[{q#cwgb7;Wa U;v+r&V%5AԜW:m&o?sw=j$q[i>T<= r@]\]Li?ô`ߑBg6 ڝ|x.>a+QfeeкCŵM_,R4hKYbGٿ +E;[{琴l5ݡ*aEkSh4i}/HBiӋzyӱnrݔ'bDgDh`=g0P20PMz2ċY9"~ďU?63f@ӥ{I$vIMb;dY&p-`y>3(aa6+4M/*Zp^*!%׆I^Yb!$Li35wk%<bN(S Xؕ 7$X\x "q6Li( &}H~\v,nr!^ y(7x;4 \m(w̱ WѮ#2)-W~2Npڋ4ߌ5f/OE{`{4]2TxRheMQS!_6QOx=#U߼mB:5*Ցs+$Ŝ@ ]VYj^mV}_ɚR(h;I 8Α|!c +cx5+e'Z{PBZV3EgCae~6"J`3 s2UDaǝ.l sQ$;2`cy#@3g=6Ugg]@x0sӁb8Nlh=Mk oV.9MJNJ%²g fmێw]*N1`Yf hyyM3qq @ yN0$݋.B"\XYe_Ql Zϲw0׮c>YAfc7m4;uב%l얕$r{iJfs3d3f0g2nB)634*Sjd+ N m 6}e-]ZbZq!̱ݍ/P8D;Я҂r"WHgih"+ob5](X;() MBޙ5C8LLAA^AG7-YDp|W]ͦpyޗdh}cjh깣 >;ZC=_FB!1L)vJSX+‚z:[`K +uC tڿ$AȞ =`w|sJ\>rѭ7rϙ҂`o_e4IM]Cnt#߀仙fL qZam臺\MzΦdtQyk&jn, +9}w[QYx +8ڶި{Ӣ֚N 랉e_.&6ކxN<QKdW\Yr]QQ+gr,{컉h=Pb#%zrHӈZN +-`?^W~Y'̢JҎAvCOLaz%`OEvu +Žap-nZPghCkEz jBQWImĂE j]4f?[(O%(ǒ:vcYD Ρ}̙qqbYxF pWLt +,3Rd5OV]В +-3RdD>ŋ!6^{Wv\yMi-/aay 9 +4ۺWL]Xi"j1׿Eq)Ow5opV[EdhlVu +WjgY2, AE)/ }hB^`3ƀ>F8AAQs&'ʢ?=gL9fQ.ˌd'cL]:4LvslSD9 cY, + +S10/ }!.n%91C' +XG~櫱SFɯ'ʾ:U dlM LɄQǙ"5)DDuGg*['W{o})4㑲d}WػqUqf1jjbs[͝0ɜ ŧtB ~2mߥO@G'3D*n\s#u4&f<Jh\u<|AVpV(ЁՂ3ˮGgџu~hz\ya( F( +B#,%q.@+Xua7qiwŷm*(9 Q|(fɈ0jy>6.1ceΑagαq.ٔ)Sěɦ7Es$. LaqA~$U}6R.jDrM.rȕoW)*Aba< 1fEK'+tJ-( +![EkMk}/iq)؞pR;v1'DM"ZCKГz)=L=C:Xvj+\̣`L!F \(M㕑. gG}$!ȖpE55[!NPDD3#̋H(H^:(\γj{X(ݢf^ +@^TOh#MH`IBiMY0Nb‹7APNQ 6UgBKLJT +pOgrH='lE!anxM|Sԫdd20󜩴W?1c $7 o)k@IҚSD=x- ( +UI\b\V^q` +}*0YftX#YɾfpN-iIDVFGZWtꭠ6WU1e3Fm 2]N}ފ/g u[W'QyFCo_록zhzS~v:=zGSZ7Փ|KLXol]+ ,R 7~rtL0[z uqD4*ba%^c}͓lh⇎53hf;.hf/LgQ/k-`!jTz`jXk`=d 1YFk 0k<k-Y 4i[xhu#:񭲺jLX?TXϞ<;9})y=zQ!*C+PCWUơ `+b3 PGYp|d/qъ4"^_*℁="~b*Dhsإ͌v7ضcg51/>63ߘ+#l8mGmU$Vl0ĶQlx0Vb۷Y)d۪l;*)V ǶCqqF,o-RgTĩ3:wSktiC{>=ԤPzOCCz(:#.ojF|nHN]ũwIp8u N;4cq*rˊΩĩ80O|L8[7x<b|_W[Nk O#+"W)\ R*[fUYƪӎh+ w|j mZ}e?yq2U27=0{buoW1vePVJ0R QPGѯl<L-ʵ _\x*W4~W͉H0I8?'9(~OQgFϵg6Z]BUdhޏJ - d~ +5JI&KJz=o@jjլ I`]4`%uL)كՀYw|bG ׌kofoYFY*\Q*φOƮ9:iet,‹Rl)mϱd,)ݣ_VRAL) CgMnXmVVgM15t)fNDk8wYAt/"cS ρۀQqUnte4H@>{(_E~)O>=s4UR:d :h#֡2h#T|Oc+ ;΁`TTFB!{: -j:L]L4]UJ ~ޝN>c:gǁ줼T o sF&bl@*U2U`ޙHpo'Gtg9ҌX)YZTdn\ǚN-iH ,%-xdY=R~/20L(0AJ.I3]ɠF&6.LV6Mʀdn5`h2`4؃l1`?`_3`5؍G]cq|^tXj}4>:C1/ אN M=:)ԡ7AC5A +Y_b ]yD[PڱB&m'|~ڣ~Q5vEY7wHfM6Bi("و6ſî`5`3wi5O ii5`4f1ooocΟlty.TM)x,^bBs4d :O Xwhf$rb<}5 vGT}QUȺ/ UG' “goF|\3GL4vRHĞ7%v|Sӛ{Ek5 N4OAl>a{@kjA +C3]4GN#AT't)]Si?bEALE+A^{?I{X hWRnTK#OoO߈@5O X\jkг(Z-hNWsr;ڑx-W,p۵B 4谕Z7р}[t7`*xq8A}YK12ѤDK4`4X!q>Эn:OQ,-Ȯqd&)ܒeRqqݣn)B<jۆ"ME3M0ۤ`(kc._w6ƫŇ.˅̇}(xq,HS|z\xvSuBWi*7e_@R]f伇OuasDy_?9%5 ނ[bgÐhStRaP/ + +:F-J=>WtV S$!/i8e ac^(tLPeeiK_.%jJ/{29 `#TIed%16nzr=y:,̥|q*yJ!-L uHǮ`{a.;RRv8?CJ;ϏRh)_i5|/ִŚVXkZbM+_i5|/ִŚ2/S{~r,bl"eebRLb $IJelN  ~eA/{#rpfA/!b A/ zYIH/( U9m5F<"\x֊VlD?og:egn~Ƣ5 1âO iDЏ4~?~ yp,g(QU/QSeOjd%16Ѝ8FB0z`R Υ E0"~ҾAC#ꀿ`$fq,Tߟ`L W|p= GܠE ̂^OHM=>*aRrK- ECV~Z%e5EnbWZ cYie2-P35a(FJ%N?0ǒpͱn1_*`H׵_Beƶ `!!($S5Q(y ̀=j T VjFiln +kn`3 X_XM6` l{IY ؔ*4ivOl{Rm5`WjvX0`?` أ`,tUfkT6AoZ~FZ7ë?L_:/d[RV\RY +tL07 + +@A:ڏrh3{΃#o4g֜0O;Dsܗz>њg֘X!hIa}!E*4KO?+|jXh] +]WhuuSH7pL_T>L*`F[_Sz ҋ4@l 5/uX*]$\ ma:lн&Vx2|J=(sZMZTrh̗p[vMs>g pjL8hm[jEe}=Q2-$"ۦEߣZEYE:헙S^ZD*],/  lv5J&zk%Lo(+H(XG蚉NlRdto[2IfPw JkJ ^sXjazXFFZ3+oCq)^(ة֭ oͥkfSJ?QĺsLd'k |dUcJQ$hW[`bcZ1dhIe./%w@)^&,̀e=2oCuH9&&r^mZҜz +3(f2}M+Jx5.5DťSġ˔Ym $Zi W}+Qc@kzrUAU W^Ml;:vaelU7#Nf:zƑN[jprM}F%!SHpLf<7okqi|+Q3լW )VvT)4`a@nYæНP&'8^3J3 `Wq N_KxJT 'GTй~otL5aYYY +y ӆڇh5RQ#q^ ~f(hwR*r jSF5m +9WSN U -(4LDU$ktz$A ] B$CsM\S8b +O2Ǜ6#\'`|0HS7DH4_u߂)%M!k55\]3֤8?Y +NU$|^r%ʫ*W?*wVWFjG\6W-Uky[۪\2э?o{U~ +^joR4.Đ_򪀗3}ˎVG]U%$'*_WtB:|v q}sU6)|Wj.䵘(ذe8e-)[$G$'A3ղxu IBi VV'7 +ŻskpFA++.yv9nEsXg+xegt%?_(X0U_?YAierU Jr9<ͼ*0Bv.Q )(0 +`\ SpE +S5>JEavIբT _XtO(Lk1jO{-i, =foO+ ʜ.26& @*v!} |N g~k-62tb+ +T}JG+\9 ;~‚bWŅ޹Nd _#Wvh=- )~㤒k p7X/! ":>PD1p/dbܼ*B,\PH> *l1=SNiW%#jKL-BU tN&ZGKF%M-KuoOaTB?H:8 9fX_wYp]:t ty9!-)}Y囬nSCv+:( Ќxrڬ69㹏bk{S2GBa _[>|#rUfS,*ݔ|P6ʄo,c7B?sGhL\B6dtZl"NR/crw` TMٻDaE4T_`Mj)|TgkEk9:j(1aAإE.q?H\u oɺR]WYx&RjhnWlG?J}AKȾŏGЗ1_G:x#X-ƽ=d, [C͕&t8+{ M(x`L|6)8ivu>$}(-STUY]:J?Yt$úh߷7"7g O$W"7DIQMWHiMAL +At¯t1.`#,.ȋ҉᳾YE>˻"b}1 ڝ 0%HJb`ZeHLI?jK!6ީމوXmCjTX3BygW4UP,.yȊ6|y"#tRy,}W(20 Y,~*ӵzҵg +Hp7&\zz8iJ=.:^W&Qh5Zg{ W KQ:<|֗Hj#/3"W W$H8#c95i Lb`דR1΄^Wwj;YV`CL|mrWyxtsV{g|-{MN)׷פi>T}|wf#>^P`:2Ӯ_#>rp:I$&w%UivJ+WUZ^ZxՅuY[Iq.Q4+ke #/}:R4Zir JVNmFp1g?3Ǵ\х#h~6僆`Ooo_5w`ı_*RXb[-,d=^1x>>)kUQRXS.3ĥHui IGAWG߈*6XIߥ-@/bX0LrJCԤDRsaps1 + vQ+8D!8?O1G i$u8فjWP}=ԅy5aAM1Wu-TkF9s8E?r$oM$I¾1/zy8""T9Po]j8&6jj^MNMޮvf=DH#WD,N9 )EƧ$mIaio$sVD_#Kr2o>N8&cs"]D*1ӸKtqѹh vz˪\)K6Ǵx&GɷQC} 1æ|W'}kH.mәz?qFW!F]nS@a?XnW0o8jE ѫ=QЍJdk9)#'h+zTP^p: 0Wy:yj}h&:`ԥO}_ߕƋc-B}*F8dSWNy &NL9EvW#m/1kWAb!HoEMI@wvbv6Œ堝PBLmh! S`෦{v@xYa'Zijn;U;ᴩU0tÓQ\,f4V\fj54L9a 3͟q!ٵC +re \FԄʰ&\G@Hhu. i` XEMC&ve\W>m )PLB9،]e4, čnFZ۾˗*#=qh V`4QD O!tgwkcxS=Wc%]WswU m|]!NQ0[ネ4*%:)xr7=|! +)0ä_<و56GShn؅F`^}yhk5pIuB #~R/b*ڗiנr[^]ًxB^JSX0imNNVW0QտoJHSAR#XGmO!m,hu .w^Y0պknm_7) &ϩ@f0=#6Jz.a.ֈi5ۈYey.p[VX2\EZ]%Mԡ⮐~(A£rj²NPcĊ (6-4p/nXw5&Lnxӭ*`b``$Q.#P,2I*PLrn~$v5 4ժ-;Mcb zF"bKFkk1Ŕ>gik1b-f UA} +Zan6f%u:o$vFУYxa+p[; C.bӉ4U`Z9, W0:,whdN&zTWK^(Z k1ZMpjښԉadFMަlxR'bY$5=7 +KZm)Ĺ0m9z -{.r=fGXSUaCoس@0E}Ć R`s2<:dyA@@Y  '>qBa@8s\b e'%7 W^uW*"? +! + +5!MC#{Xp. %"{=)9CD+bXIq$=<ϐBR8r@1ˁ:mԅd.r\. t5٢%R5սȨFTM|qPn}Jh{3~#H5n24u6@7>,4&QQCŘCR +栦 1|4,l5A. j' ;h!m +.j&QGK +kb(  }GcpHZSsfR1XtsSNNjn*:榋Τ澖 +@'`* ʝ6LDTfRsSMJ76TB'4+Yc@Д}&`YܨPY)#k2["j͢tfw.5GmgLqmL15Ooj)ڸ>DjRsQs/omjsEfHsv襇X@ͭ j(`:' +xp.L;*PsmSERgrTb +n|H1]j{j9_&Xe9CS^~u8j]pBj>qOiza`ѣ=fo=NJN9\=Rb#m9y-Nc$x0gxcJ#k<)CcZ-Q5ja捍(~c6{3=SGdW]/1 Լ^85Z5cxcZ/iOL1ˆ^c^/4x}٧V#c$(?uhO?jy1SàߧF\^ktj,yk- F n.ړB/xbDz+qGfi>U_u 7pŌ7aN!*҄m2_Yc=uenu!c|5>FtП(ܽOQ,GQh.=ھ/ O>x&Ĝ8/O '` SK/UoAcџQ,B$k;{4ox!%?Zj^AqC~//NT9滃ÿfp8[h`${4iȩz K_I=j{3բ^|,r{;!&Ū =N#\:vs_}4Ʒ^IfyCztzmQc[O(4vbQ#f[]E.s)aiz( nW[]]Rc?:vSWcJb.Q +s. +.+(*MM폢F#G\6lW GiGmliCw>>=T# CpHo Az o ECN GB 1$&1d-6\ +4.>EX +5 !Lm7';ETdѿFqn`!ݐ{~{|%=6L-P' בT?)@R3' NGym IRa8`c:_X;]9~*)2 *9:BaAYOURo*Σˆ+SKE= y'VD`5 nP +-v +9+xUZmckpD, g&TeKx\QPwfCbx@Y@ +27O  G{F+)_eM7/>#ؤᑯE 6~/re(r GLF湒Vl#8b +JBc]DR6- -pJ]?:xMDh7Ez&{TA}+"&fA_,jz%~}H 1͏ +iQH?llTݸ^=лGFbd<[$n~*HL{D(vf2 + F&.FpC\'{XV]YO4l/*ao"|dlHZa^}g8Gʜϖ;V4^+xc{:|}?P4Figil]d@v-+I4m/lw +E";}&M۴I5۲y! $ņ1.ynkXdRA~̕%~^YHΜ939933.㡧ic%fS?:4J趯LFQfFQFά:ZC˙ROhq \]rk2;d>d$ "Pp-YtNO`PvB ?ΖSݦHo~]1͝mTC \S1b4w9W+'(/+d(;x&JkVk>AgΧ焕xW)_xbtyM>gP. ZlPif<ZF;/O,}p O%J+s0j3 5 K.IV/B,9 \TcAi.޽F)Hq&G,qe}sF6 رOej|c遚|$${n8uAm8%1d X1#BM $1=doGI.1Pmʂr[7hr{6-\Pc%-xM-Z[haW~},-/ jrA+SxNrVM~!UI]Hc˄nk=2&/H.brG*m>kr+J%uB>_?8/舢})ё%#V7jŰbT| +X .1d-$b׆8OP ,.m\9=g鋱!?e{v/Kͧ"´%Q"6L˔qw"{ĕS/`ɔ#qNՅ)6GbPڊ:iUa\(YG%1o)HZcTL\^/^z$zw~$/hcu]![W~@0"^͔XwbyDΒ^Ò~P~ +IZHq(HBob^Kr)+sJBz"nP',vl!$;Dx ~(-;/tOhBK4~ #c?2: F׏O _E '^Έ)*F; RЮo+4"LLԗy]{7?N6Nj^B4|715ͨV9E0fvPfZPVʮB.o&OZClȥayp2Ǧ#R.jUZJw1 +ܣNŸ8PM"s֣-4uo)})9Q@SC;+*1/ C0 + X$R# + +FwB+ȣY^+L|E +$d;)zXy< +H>&%E|xm1 ;8XajxmrkϥTQł@uc"mX7 FAYoe,UNGR%5 a?R Aw.8 DŽ`=^p9n)% 69b"v.q:CaW5gF-lƈ(/pհy" J-x*lфk'tVOK!U=;#3+S]++ցT0;k qf}ͷ'/3!흪+{Г +׌/= N|jТeғlbST<;?d{/ـ<'!h͐3TQv/QT' F)- DWXUj*}El2gj ڿ,e:+a-Xꗓnp&~va0;ds5h v",B@tA*;WLWTsn0:t6L_^hAp /}}L8uVهG,Rf" {'aVn 6A&TӪ:kIu>Osτ|XL2Kk.ˎBW8SaWchS2S0 ߐrZ{#3!ne,h蹖,9~O<|*n$-t3JW_0|2i2}A?-'wa19<9>%dA/V7b\m=7#G푉0ƈ6F\E.qq~` ~:sn}pvo&1=hUɎ[#, D۷BUk4mᲖ9"pAn 8oi28rPQpPzBtO7'ުI1j0>_F-@'}D'Z$#FDîssƃhf?]E*bo}hV"#c +Iw/C^ߠ *gkv0؈L9S7M~:`sԃuV4YOa1,/ v㧗קHg!S7{!2˘?{HT +L<`jOTfAl9u>d1 NԶ'U38׶w5p?dֿ@{t!gn"ۅ=`6#fשbh:ϥp9/$qF-kPXG,Ȉt>f52Do|-0{!{6qXvթp+:F^G+tu?x~Sw U +C콜`RM*r>C.X Y!]m;]W?R+M`bK=}X'S"H8S$ҝW‰RLAI2邐z;X%bQ-==|T IR0zwOξ  J G8w#$W7LY9Gq4X@t/қlUt>2!C 8D0\8seR~}ZL]rv:'o^[q8x>= Rދ:)i}O*@lXحRl ^-]v,k۫\Jg)s aÀR%ٳ6^>BM3lo{g:P.9o-cW gaJt_;.5q(xY<ӡߓ}nZm}}7i%,6Czyvz̷Fi=;MrW->~R h8UNÎ!8\xhE\gBެpț[I4=CmUVDͺurT8_dh.YH'm~v& xq3#΃R#W/ G3i`#@emԁy(ޔM%J rCU"\{畞z90x վbSZ^)go +wbg9)Wf콑]ғ}'u{ocLC.ѡ-߁ӽk02fHxt Zxaywz4z1.F :#lsW +o9L('Pt^ /WB ðZZZ noEu%E=c:Y$}nruӫ(2,͝cCլ4qE7x%vT,7GEv^PKdSd7Ns teku$.|˪)NZ1D=F՝ +(5mPwH,2Z uz(d{d]{y^(Q,P("ZuQ}Mi e"WRCCunLOS2gS*hZЈ>`HNFS7~[C#7sCX^4[tHF~M9 +=گ<} =]Zݣy^Xt_F]<%?{mH< Fz]t + +1m\~H)hְNpHuXTݦ,S~8ݤQqF;1ۤjZw3m[OCC=4iu5@ 8Iq?RDǨ҄h* x +g6ps(#):""FtWp1ҔsriQAJH}?V쎋 $`uC~9*?$a/CDrv)D6eo/~^IMH?{w}` z*]';uimH 6.^&%psIhgQGaD~6]J{j čY3W=Xiz Ǵ- J#u 2^';68/*o5;8|cAɴ:2KQ +wX9{=9׾RU9i +->|'_juWWx_ +K?E,4srR o8Jn,^pmZG2~y\Xg7㾔qߛqQkgdU ]nhaߨ(ĨZk_9llTbhG,/A|ziWjn[M]@!..+n,z7}* ++,3_P + }^N',0̧璇H\@Q}p%N}õ_yhfB?jK?ΒKɷ;OnxtͪHD/eph.dBkܖgcf|8%U_ǻx/$<(rtn Da7HDРȄǫC:?swJ ci D]OuA$͡ h۟Ac1Fxn<tA$b}}[it)Ϟ΃Wu`1g12&0A=#HS\ lhPgI̫[K7(Kbf=j>}iŧ/8_VSI򝝕FE|uF%kzͿ须_>/cXmeD\fQ` чv[?#?mM^}9ioCØ? NM˪CJKn+{Rꍞ)LNWWhk4ȕ %s9d5\j!3?bB|¾xz x&%,hfU݄st?O}Y7~rTKs>J+x\X09V= ?!`6w(f|kV-572+y#CkK%Q-S P*'ZShTa"p^@s)̓9/`|կ(8hT[PͰՒ? +,qQ .ß ڍL<m >r$J C2%l?nٴڃY3.$Smk&i*$K$zeȲHcJEh;~~cGP(Z"_P[B=%E,O:팾Ks|EZXdҟL *{٤%S? 呜lvHEkX Y20; f[ax=pт"rdk 9"TbMJYg&ZYbxgG2\%.5R-.a V IȚ @$a{Alw*f$)g}&ZWz~m`-)`9q߼ޤ^6@4ۻ{8#T#*G+\uq?­NsǠ%rf,I*YΏJ%JrK(eǖ$ oCc4*I& Tal0Pi~Z"T;6>jnU)&1b|Ki\d@R&4u|xsoĨ()m" tnO~sBjf`"h-ESt|jvS@KDRBRk0hȦ'{H6%O4R<_5 !pl=0E3;=%2mHLwo\ p%{M| +MwuCe܍̈́߮ezp7vEp76Kp76{p7vEp'R-.sJlc(˼ fwt9|7vnU+1T|=|7v46;|76 |7vmߥwZ|934.{n2 i,.Tywwc3;u˾*|7ߍg|7ߍnjˀww.S;wT|}n|NS;Z +{#+u.?ěwj'+]Yx3z^^;I|GJc%:ajⅫUrA0T@Tk +|QB&cÐ%wd|c ]Oؠ"T7zotfߍ^ѽK;u +8+BQT~T4z4:;7: 7zm^ޤ^︽'d7:exIro28i!, 5@|_j .U;U;S&! /kăHMQrHi4}8o4 GX_2?һ 35m:߰˷ S _x9;ȧJȗeB/* C^{l5;,LdRߨm!-䬡zŧ/W1>8 z_gXxK{7f`cn@C0qto<'Hvᆳ*G5י% !J\{ mnEG"AGT*`c2BH$i2f}Lop gyPV  O_rk@xjRߐITS>tY[ƒ5 Fe-UE-du`Qql^ {'3rt|E1/oՎj_g>Ix_[ޔyވ̚#58HFT+0ޮi xOhy1(W<ٔ4I,xsrc[0gQaA +_ ό"o**& +961q`ud-2YJSB,rj+BO}֧W6TW\η&G GL3~F7<-vɧ/'SŸPḭu">SBS+ȩ|D<oV |gX.TL:wʪdc8‹L6zY4dCΛRv9|UO=ILϤglBQ_h^UxrN%IxbJJY|E*^fqICƶF n'5<62f:*F'Oh Bddrg +dtlj:E&9&MM͎Qu 6;v601- Mi>a>[4>Ϧ㳩qlj|651MgG#ET.>g&gSaj|65y>t>;S-ϦEϦF%M)>E-,>[4u>|6?gsgD|֋l3YFg]gc)3>&'kǨ5&LNf/^">{Sȏ̊zMȌ,tlr:cgd31hG7>;2_3Bώ̿g&sQvDFphn:MN&/N$TA'RB [j9. XHIZ@uFռVbkWUUf )) ޲|t=^cNת6kˍro(S/,ޘtNحŝ)0&$&."73r0Y%}!keJ[ ehyv=2!b%ZN~r]n21֣Ӝyz5 ݡK59Z/-1qM_Un$7|nΗ| ϤܛX5LYQ>x ǫI}]c{^/]b.9q ΨphƒǮPgw5]H4'Ȥ8hxxgCvʤ;;} GK.+|P({X+[e#}N;)tHjaj8S* e-X&@ʅٷ9Pvr'u/{9BL@W䌛 +òJ+:wZ<#dwgJ;@4_'t.?ϊ(H@%ouVMIYX魔%x`BQْVigqw"!2>$b$#LT )+ONqgPL_Sr*9oVRN3_.w#{{X.QYa`c_`\ +Ŝ'T~outF.#l.nJCJDEWڝCI ܬs}{nTAa343jGrJkyulIO.]ɭ$4:x.sXym^[Y9[+VvB'!GF&n9/9 @aP1:F®Qؕ.B2~{voNRV`9ZE1o}˅קv軕Q^g[HOG +8Ǚb>AxN Oێub>'9/wJgn)blԩ3?u^#gO .x9E2-{H/oAIg9 +ܥ>Ck xS̈́p,\mEmY4 +hXI"rB Uַ$qtSDIKq*QG%|[Wꋭ +ʏ=y"VW}9#'=Ē[Q%.Wpq琈АՅ ΄ݖ'i,4z}5~mPn͕)!X87ppﺛgÞiþ9pYyd;ZiDdi$eaCb izO*_X"66J  Hi $`ݤ%@ttt Ͷ+Oi KL4lVUk4a&ɳ,;MiLBlh% ;Zsڥ|E",::"&"ȭm~t#zH-ÔXAZD.NW8_ Bj}!Η!4[mwR?' "t/ԑQH?"zKlҗ67cFPcpɩ jidz!ӢFSI|I/NDk\h btk#wsyPrKJ;y)[a'qBvR$%"C3Rz'E$眤 %_sӦ=eZ2N=g R~ ĠTC{= J!sB Lj^%ogs0*AWjRU" ˏѸI%T'jAکg(@t6K̾xu~:EoDK_ש/r_*K=nkÿ hǮvf6ƚ^"J4bkHۢf5@ZDHBZcNigO#2 +i(֏@o ~zs69;yx'Ͽe9xM82ϦQAnx e|k<S>b<'eg{p<7,TJ#)ծS\8c<0w.NheXb *´nI>ӯL>& l socaU8`EZ +?Vq)!ã-Olhw["ӫ4׆ae)tT!$s,Nl Hew(f<$\t +4j{af*M +8XV0ML3p{{D%Ymv0;qV|_$SxEH>5la>Th4A1շ8Oޠ#.2oCֵ/X`؏Ʃl@];22QHlF{zw~=e>L~\B+[%/1*Y +AqRl0P4¢_D~DUֺ+EbH~;.6Z-=ll͐C. D]-<*ւ[^ .Hco0vkU،U;0mn8he7--ъؼW(cjZ8=O "ژvl~h.!hSwh&090\Qd$zVK2i̒*.b aj6&`39Bc%Ц\fȭeoLSѾ>&[7(F_O FR+v~!{ )~R_ߠӷAO}n7<Mh=fr7Lr%z-G.Rn׹f]?|GosͷRfu\um$,NMֹ䞙rݹfƇ'\,"4g\3M6XZ"s1#Jq_R +eF{{V#VFr`|N萐t!5*fl޹Vc-g=D)~,[QHaHJG{_R)b6QY=|*'Ns񉛼.>qeyJƣ/Mknhak gi\|wNZ9ʻ"T*|4pu2}$ +}\4Y!k2? +0f"FK  /"tB]&m0`עYl5LuBw G5F[.vsȷ#3o,H쫞jZ%M>]XID禵5R,&W2@/ +H:4@efa'}m?;Boq>Jiyc1sWwd'Pde +|CZB)k@u<9b!3K,;E )PFmvJTbD6 ¾at4ƥD +"n/nRICXE| +&+rR׎!Ր_WTMQ!u1 쭿8NT#ׄQ +qK22mB"Y=6dpk@߭2aAW;Mzke^h/VKdkӮK†~E&Un(Ң0IX]$ya\pU[4C*11ɢ[&ofdEz4|Ho7y4zcs^+WAZ S8r=NN)dWNjӌ{9wc1>|TɎE!.('NX"@U+'ґ ha\< IUZKCA{u.jUm g˙ĺZYHFD5'榈dtGK$ +ֻqVKw,=-Gq&üL +x{39Qv.d +ϻ\4ɩ(#]h7MU1޺&K@W??Qw}pv/ӹ{K{vx{}${1o^Bh]wD!+Mk^v{1AA5DrA Z.=ދ5Eg[ xgxga@Ej&Dfa!(k'cQRDp5n:%=%??uUO[\?}ې!acr^hH!U;&x >:͌J Tq|߾ +DG ˾4"DWMe%U%:/i7!h^9}hVgY >΄7*N_= 2,J ) +yz 0 TXǸľOW㺈g2.m|ߕйuvD|G<^f\β8t1}F7$dvSNfow`kg]I<9!bDzQXZT1.$#:0t|qB*AJ ݾ5QtyN<R  7yr"'BȪ!䯞D\>8 x}iHN!GCȽ/!j-/ E,aJ!$B_tW?7~9*?){sEgGEz/i"vOIL/64v$G .~o+7ɑF;~ee(q9zC [GZSiw*nB [U *}C=Q?c_v3OK# lN#pKdٲ?|m.GyLZb++CAՒbz\ѕ Ant) w>[4 +ㆵغ!2PQ}mx(JNIj;F= 韷qa1wQ]]+iMwkMLp\D+2Jj +̇JD+]U vrW=LXjMǞ8ژl+)ɔp0VZ=8I{h0EK( lJRK`ܺJ{NS%~ͪ<&J_XQde50Zh$\aoFX3u2m )&< 6~GpO*w6th_VUA-9g, *PwftTS\c낭*?]9o[~ +*q?'X7+V9~侟Q:2c'5y<0ᗍ5ksw(u/AK V 8_>ArqDG0檢Yߞ>O\|GGopەCp2tsG@=GzL <+e{<;p3oŭK0F@xq7gH\ǯ/?Sr?6„G[@'W}BG; wy(xK3:u uG -:%&[@q+Խ(uhCMR:9a:/3E=)+K_፹_D( +4)V<#^`V˃zwҟk8LVdjGX3%8& *v%K=!ׯYEGENe ; +B8Y6BRĕNzonW?P\/*dN~eݶ9Tj J~N1op2^)t> +",G/8C9W?J?h(~޺w "X )H-Գ뒛\Q<񵩡ԌP;߳nWOLLxDzy}xtxo6Z(rto/?#/_t\/_ϵ/_a  x#inH&((y'gQ'7z݉A_.?WP|+(~Q6(O/xy/ӱ1Ͻ;" ZNw]tCx۾*C:DZ7z-BG-ͨxvk/jhAF͛e+?"ۗZQkUP;MRSKA +26#HMKB(I4I/8`R;=nk冿e磃oqW=xCz(>3 W~^|z^Obtp4ʍI&bh/hO[AHzR+YqfET5b.?v 34~lU1Bݙ"RŐp?b>F.T= wN;JM]踗O9O}7P|L|Ўg(p~,ܽVEO \D32_(w!V/4(_u\|JD[鷠~*௷0~1 gJh}F~@ԘC +{ P'[]{l3Ɂ|`+Q x5 Օ/rI(oaԋi"hOgj|("m +M2N1<3Dn z^ׁ]T|7'JTI2N1v۠i5-?W9EW^HPq$i8|z2qMiY0)3x zx $OxMSŠU1)bPJ sGf 1ec''"Aoi]JkW\ 0xoUxsxM^c +x}izOH¾_+&8^[:*6vSԅ[p#p=ن.nm+ڦ؇B_qθIF̏ ̎C8Wr(- 37[E 'y g7'MwA?5YI 1D[i%S+J$U.(qTDRv#Ħ.&rF[8Y! +BӍ&u{]#bXpT"7tmAevރ^/xz@|byFiI }HSQFٝfPjQQZ-D#5LكuhCuB.>- BQSń^%c`jASQبȋ'?h^$p>jO]P;-jx˾%{$2')}wvaIk;)-E;D)QZd4EBkĞJJOrK*R̂K$j@PO'ȼعpҒ꽺뒖jbj'&;i3O i-ŀK_Bg#Rcn>@:>fT`W`T]0/䖨b0_u 0ฯ˃$0"ByG9 +i͕)~S8N7adBKxػʉP zJlr#T 3D%@@0;)nd#XPZHbZdbj*F_DL WDLA6o L%SCŦ͜g]JJR=P+J@iJ@(czd=lB6l|ۦ Z˽RH\ H0R@+]H":tȠH%Yl` +H`3jV4X1Cb37-Ιyw[v(0)܀&s*n=\4RgQpvWa봬}xF+^8/+8X\cMB)R,`47A"v2NCf +7=<'Z1S޿a(yINB5Zr81܆u4;S`ϺϤv!eq{}xN3I*H7yIr/MAsz0J/OYߤ3zu-")5BLSjq|g@_跞0UM|2A x=9,ЧAmP_(tdy)-v@7ccn> @߻kz@\_$x#FnJ^}I"S#@;d{\|zn9)snU9ؘ7T67D>9ȓ*]+i@s9 2Ç|qBn^3O-$*MoC7jv,cmj.;9 +@XdsLl4f%BK5Bސ9,h_059g3w&xmyt=YzZC2ol#mVլkL \5R ҠGO<]}E +?h v9=6~!||Й,xv~4'?\DŽMTZȫSLEY,Rbow4"Dɕ2E."!/;T9a!35ϪڒgNh pWXhkCS:10IY! 60fFKlX\qX7nҖ8 +&[v7biq vV1_,!~$ +vt+l'R(F ^pb@̈́49 [Y7{w{lݙL}{w}!ŚI(c.Fdu V v#eQm8tZ]#ݖUz O78%5ª[Ǫ`P@ XmX:VMb#V^0"/zR ` +p/*u^*/+z)*n9 ˲/zYeJE]xS&h—)`F<ěR7!70,3x֢C3^mb؋acS@J_SFNUȩ ++!?n @"jBt0 KG՝֚>rrHk\n>ܞs&xY!2M y)R/R^SE))+7;dٶXlSY'D&KmE&&y{iB?}5E#<\x駶1G?1ɳ'0x3X8|1 |1  2/eŤ_44NW|؂&A_$<l7cLXBEis2g7"On/R:/!s|1i_nA<9h#t>E>sr5y9s& ylSZQ4nˉsr2բiΙCi}xڕTs5e2$ ?nfI5&3jه`XR'1_E` 4jLgU+` gۨ d/#%ͭx74bً{nÔx+BV߿2 +rx&͗ȗA:͍IͣL*ż}k1 P%e(󳙾IpOl~HRg¯QSi +~9('@v F#~0 nMjB l\;3-P/Mo)tUI{3H+R +SoAk[w_|FGf1Nj鿠:D[.D4-9mDm蹻˨ d4G58%&@)3.l|/S%=%W!8_ppK\;${YpnNK&}Yy_Ay_{}a~{ +i"uUo]#A2r +xBV g4돁 YH@3Xp*J|0 y}R|k +#oeRSMfUb2ɞjrMf5dRaG +B>5>j.ȲT>R5H58quJͰ)-3.>Rqڲfi}0:>ɯȰLH5^v #JK#ҡG;3#ۭi0Mͳʇf| ;-fNvZ:u|vZ4=*avlkiv,toκL;mޓN۲:N&uOδ~:mڔ;]HYrKNW*&ѿ>aUi^\ev8'ڪM ÅIw~԰ U&Mհ U؄'#ת f +Ѹ60E㏬4G'c-RCH&OQ!UJ_2h +(9?Enr&MQB91#kDE` )U1GF?z?Ҥ_GSiP ەYܢjU_O,IT45%nR|L:=A7=InZ\{Z|%W +EPnim99{!G\Gt_ +U]_ૻ{ImmfmnԠ0E2!K%(wC>ުX& F|+{t Vu"Uib1ZT| )BBc\$ w-uj>ޚjk)#«Xռ1D8yW{«XU:^ҹ\'G(4aCb#=TP|"P+"eu@O3yw;f )2C)BtbRШFm䨍) 66d׆?6赱@AX8Cm,pm|/^QF.X_cֈD{ AzH P&ʕZ_0jV*e]$€ "#rtם cQDz.¬flם9קk_XkLM,Xo6?˦w\#gi?wO k,-sbOock9O9]|rWy>Ƚ73m5z +{y +[Ƨ1\}!N7VOL~gy\ɶܦN)BVE['t*Qfzo|9Sҹ2+P4MON6u+kϋO(_ɈJW&vt *O;_Svsb=J:PR̂*D:Gr3)G EGHw*2A1e3[?I~"k{.c4mvU랧iPׂJxe.}KcC'N3[ܘ.{ڬ{hf⑆R!HyTvq{nƥ&oz4PSn:9a7H-:H*WSmxи,rk~\gLxbG{rYdˣ|Hȑ] O 3!Ygglkc d'a+0LZ/3|y> +ڦUЧy~"^U'+@FUuRFS6jUrU[֎RPWjrՊh(0oO+_A 7tB(6+=8O4|_#Ķ3OQO* +|~ _A` +*GMGpÈԼ/>bWV3H'3>1dΌO +g|2?,J6jXG`g q4oNEYn&"&NL{槤5Ҹi|N_KI8SƑ8<*WS w: ' +DajL\|#zP 9Ӄ +ͥzC)Mu 7lLb +|ʕs ͽUnܬ]҄FsŃe/e~105GZWL~lIC'&[s)91f7urrqj>@ӡ%MK+w] Eqג,⮺w5]mqWS]^M0o\N*d\uW{+6sהHó⥯Ko=Fy숌Occ`O}Koz)alǔIc(g?6 KCpq.CH,e@g)f ~07ʣAf;(ۂ=AhcczyQ&^feއo=JNwq;b( =eo;EP.4nvlDJ,>GVY!I!o}kͺ<x# S\l+'E_YOp䖁mgh}M+sp޻Wd +;Mk< +gm8Wl^C~zO-'.0[IgϧɞU-ę'L[FZ_23cOZB; @s/eDW3nʣ,LdF6(0ILN䇼;&CNO妚}\H7~eu'2dh-MJ񆲁 =tZjʳp<}QI-P|4tfyi>`CL r㴐kXAn4~A8Nׇi/V ^}ڡl1;3iNZ;d$v +ZK4~+s[;VuPٺl؛0lWh~AIK7f>/pqřhڬiCzʏrB%-,J3ZUk9vt7/KG8sI0ϗy;FַV2 +_řx/7;yA^ٶtLvRԭÏ7;f|˔5 o9-hXj~~:Kut54{&\b/j-|.7._91Iqn|'7xR~&k)?=|-߾=6&,Xv "?H}BuPvtalo)^ǛKn֗d{:9S"qqeFwZsAܹ(\wŝqgUYw:Ƹssܹ-l߽X>%]H8@ߖ`):}_V 9=\Ǔ(x&W#1SDKiJ~V6sjPWJKPDQjJP^ +k_8V"4%X_> bDeL@NT[4J GC\aS$ DZ4'Iv51v  8A1%)mH"R,;hE/+ +RAT<-Iƚ7YYセ_36^K}j`T bBl1=(:f-j~m@d);k{+X!GiuvwsJh(vCjeKʴd =q\  "Q~vÕ*W\ZP`PyV`i\+*ɘNk V\qRC[h-ogX 6c,oZkkXgyvZQ6J%tz:y$W(/iI^ֹgV#-n^:`kl3bWM )[4V2xG$Mŭ;'讻͆QWRĔ3G/e)2BrC'k78J<b~)GV.EE.+=GQL![R#I]u#2Pg JMEi"UϰvѩzޖŧY}JwpYJ7125}۶!m i+fHci`zƪ) ɯ5]kZxE!=M%gA +I.'t#@@ a-&ǴXSj-ɒ?CO vA&}MgmxUWz[N޾raV +O4[$)DG5ml6rWN:$\*28f"+G/c /|#%rlc2Ыe뱧oW;j.&ZK8QETRd ќ_6?igQwxgKxm(k-!Ư<m7=M,ϋo+D˰63&):gYx]}eZi>^nt(J %f.Ma.GM ~-^@K!KG +NWxΚ5A1'h0|-F އ sd +L, /3,}]lvt2RD6BQvKd=曒J35.z7cKSN*P]vJ Eڏa _%|Bя%+  ډќ#CN#flvdijX!CT,1~4x:{:F7mQ@׺kE_!3J$[Jz}ΔD;%p#l?M3,<#Qdȩ4(r=IS!VDfMkd{?H +Y#_!d-jV%2ZkųS։er[uw)J\XD^κ}-r|I,4"jOGx46'pc`s&L]=w͝m;$_T~ضmdg`cv(a~)UHf"a,g9񋉒Vi)wOKY4-eebu JeԎ'N'Q[\ gt34;wٜVxڳLvTuB&{<路W;_KF)ȓ+*Tt2U:IL dEcR4Z؃p;mqp#j>n,@cVC#YX)~'~ӷG\a_iq֥XxY;,WY+]'/B4^ \›z lpăH +y`b;R/k6jL?q?!h=v;lVK3p ,վܸ7Т$uywn~CxCyNs]G>ir1}fSò;^6ϣ,*prՏ5s?L)nS5rsE\@~!PED :GII1xuFtp u:(b?s>Fm</"!vN! 6.<e?C$<]!4"R9Ic#4LJxۙKsZ7>EeVد/cwO/U/-Q8K:fr7rl]yz"cH< +~k-*Z% +EdFߦfݧݿF{;C}kz;Nv /,3;$bZ@)'HXߪ[ιZ\"grxzO^L<< Q1NRA%/ne]<{'2{M`B.I_%RhZ)\콉; Ö:s҅v23SƜO/E-uS#DS1Mz">a~)\MKRwB~m7e^/'Z" 8iŊ`{"xwaE*&<>>$~rSuܾ0|C"a~B,ΏS~lyКz_d47(˹~458 mA?OnaYlVKͱw> }i?"Vljw^J|l>}Mo#KDʀ&S4ٻS#SٓO}&4"&᤭-&{}~4EuC8/AT8mȧq| !vpK&Ha G5I'o&# »D lT5<(3& +a}` ^&K.쑰{e%*Zқ"4UGY-"VC{A\`plsDJ;JuǾ:~RJpʚ.T6l+2XtmN;SCX:\^}CK-$Dz1ӥRza*`g&fW Mk0fXa_lqɪi>s_=pUSe^|VWN~mٯfI+e,2jd2p򛎁Eν58NF䰾Տ(,^FzJQZQZ)GbVg ^Ms Ыx?5ͅ?٪>u[ޡfa$Q).o&vGA_}| axaO0GvX߽>p=|^6 g]lLƜ +s~¸B4Lf0oa>9(TLYhY_J}5UrF +Q!q +;_2>uWFD_v7b7u3!pBj 4PHfڕjV&Aqe0ݱ&`#} տoFM$/ef2=;#,JJO6UՖ3# Io2,t,'}n<w0M>`+8Nyܴ. w0E:ny9I +~k"9xўnOni^SXk]v‹.>2|ہxd>ہM-)|}ef0OT֩+LRZ +ތE/E])|?$8 vݼk&K}%qC +o 3'\,ʅ'U&7c()>FOXMjF=f +*~e/[ ~H(x" +ޮ0T1˃םp'g>pOV?BJqu9 fz 9.Ǿgg󵘜o;Y.󝍽nq |3rI$;23#[ĎLk?5 <& +S2"˛z+H&ӶÊ)GٞiEOxeai9{=N]ca 6+|aOǂ>9 o!|4&{"v'O`@d'p#W߫Ah;s(}%] 9"E7;R)Z)Z)Z)Z)Z)*)rHѣSC,+Q߶&.‰ zy \FIad=@ ao-7p)"d`DQzIgb8:.C5akQ{ jeEV F 'XՕjbjb`:_~B4w@/Ę(6)<8l7_3EȖWLT{pBZJǡb:ޓ8?^Kyjv9ujY% Q(pG8nd}h6K!+Ksms8Ep\u=x,~BZ\h\  Qk!Wi 䠬zkٮQ*V?Ut089!Vy +8&(шTb4\S5UV'6p.8hK|8#? chC3GDh}{,٘* w~ ✟ĵ07ҤaI̙h\[/?:B-%V0 /Go(&Z  /z^Z* >b0}+??$1!C7xA_kթ籠7rB`)CP%#E $皠 N(rwzT ++hJ;&Af|m 1HE+>Rh^a/9\j~TTT!819~&Usmpzb!O҇Ӹ#i+'GK6*3H0!5"%u3uZxLabEij`d'U2+bմ PPi2}hlJeIߵMi)QZMogSW$%2hǯ$8o $ՊaqfIǴd*:~gB@v\%QJ+M*4II*_R<}Id\gO`L%? bbcA8 7A-&hʑzV(YM;[ _DByD"&!#>D'&e@dľ4fю2z[vUcAnTu6 JDV'fфTgF?~62 #ƻ3c1-m~9|1oy4Z 69wk`MFVUο*8xɯQR?D8^halۍ]]ᚫxV?k&ӁXb{9#aj> |L[m&YJ+j +QfkI3gGPH#;Q05SF)_K8LUyrm] _ {ZكcqwT*wL1Qk.u4/=e5WC%*`xd]e_U66ʀsJǝ[EzE[pE, \ -Ʊa~%ndU ҩx뮊2?_lǖĞ`Okry,r +$-JjM&B;9vt2[3Q۾@tm=SAYL\ے-fܘM9 a*tSv|W=#r7C5NF +:QzM>MqM<5>;冾oEEo7D˙zt~0Feom+/j%v}܏N,VS?yΛ{8{u7mF[KheWgm2)ş/7Qf4/K'K KolpPǓzuثs^W']½zE)f֯/XI|Kޟ7qb1wgh`|vݛUOI<ǾCMj]doa8)Z@dl7kE[IɒߎoM'}Ý?{(yɯw64-S.u6~ɒP7%یoM\BMƖ[5sCּ r6P%=Ql{6I" o25c\^#E.N#)W9ҫB4 F.}wR #mD>'C1+q*u?\xw`yC*}KxS*J%WғY`q~~疒7|#-I)2XLAߓ(5z7E]N-EErAEejoM÷s1>mlwA+PmOP/)bqd'k'88EK:ȩ*?6ri2Lşb|A G'{=| 7KJů^8;ϩ-ȹ_ߵ2 k-"v?gW+ν|")'n vNG_Cz;/uIx|n_pxXSc@.F_ξ3OL8\QS_z9Bzſpػ ȏpo(!f+ғu~GNB$B8ӟhlU_g@p9Z_{kg84cT!:nR3 [ G"} +.E$Uz#*9mZK'iSWpt{_s'1*#qcfL_uWݗRB7G5#x;#9w^y.Ny(ۓ3NtQ(ľ/Q no&HDrfK^Ռ=kcK*y`(ݬ*l]RT(L}(U2a`3Q[γZ;*r6!JUWpb-@K2%&tLb:gW=c@3 f(; @2ARՌZ8 M ^ +-S&bZY{CJAӠlZH(MMH'OIKq[mo'wSFóϡMۑg'ϏMR<9PqTͮg75in sR29c|<:k/2} %ҸRøG*}##qPXmDVh19# NL<^|}x<};3Hgpr.\*o%q?wHIoJYD `7I ,4WGq-@gd\z~J++/ezס29m ! d K.N'eη;&/I%DS~jۄT{RgRG3fC:d=*jVJE:~VN\!L˜2\>?IhSS]0g-&ӪBHi}ɕq b<>e'wiׄxæ.xu %7.[w>>{Wib>xGI+sfl;.d'2?u5dǵ"ЇU\LuMc!dU1kTSl.U%{qUOE5ŰW1{tmv2TwjS͂-M]rgSxN5A'4+JQ/R4ʛk=nA>5u[ Gۧܯ&^Ӗ9TO_cfjf}rVFm1\kǧnp +薌Y,-Y*df/L\ߨ8au*~:&w>6 lժ ?jOą@{0%o3jJ(S|3q Yc6%T%[\|vBן&N&r޵c}tl5?2j5DsKw,l)YWI6n"xj fTٟYzȝnyӑtwjӔܣ637ُ'(vA{FN3ڤ.-\-Qhzgp wX8{蔛Gu/)!b>n43'܆1)%*oaҺ7SQ*]oEM]rMH!_^&~h$ΫWo. +i +/5>xNa"$L=i9)IN[F BJϠD?X EZ{*;xǕL%7R+˕ܘM)X9^:@j\ +c%us2^x(SwCԎF@ek .~,i쯏oV\n/ۣODwēџ/15xlXc3aPk?㨰BbY瓿#]GN?- +' I}L 6.ZYIfBYsA6|:bMX$Vaopp;QXk!@\̗ơC;Ј6͕ܪtM qNF9j5Ox\mqݯevRe#6j#ғ+Up8K9|Y?|Zz) F\&uwC(NOq7sgEHVAKW4S?,B5HYuc*t?ʎۥQXipF|k u'Dh/W ImL jG#ʿH{]6Vݭԯq* EUmvڏ<ڶv~x{lN +1<USc1Ƃwѷ*1Y"6+8]p6[ +;Jšu7*ϓUl'TBn+˩n^rf++\~:`׵/8̈́W$, +G\[`@$V@ɤ/(uWkm|D`:R2/͕hxXyMr/ +![V;fXNKH6yh$F-{&%j40,!AZp0Nj]t+|=\ƞi<@ aZ7b7e~4UVQ}G?Yl8j)mы__|V{1E}W]m4jjQ;Nit!E9Mj Qz H@ !#Hwq 0Nshj<>n+h%9}uYV)֮.&Nu3U@5 +S|o8CH/8zi +FrmK|e')?te|5 +k'Du;0%wFF-12|rf7BԾABd׼ |-$*ZRyxPRu XY#|tDm$hSyia5/o*0U}P rԱj\VBW],\eNZE*3drUQ#J@ QCG وon29B嫳w,dD^W9/Iv4!dQ6{hdE<:AUk4Sm&H8-ߍ9o'  h8[@ AR;8a mG]ΐ2T_f b2)@EFJ;pcVqӜ˕WBШߦeA(T79,n+%< "3˴ݜW`}:\z;_rB+IJk*/b&tc9B[nķ#R{,"iE˄'9KV/WDDTimvxW1ebJ#YUn}];D)[+x8x\J |Kc}|bSDADsb,Ep1<;"5JuIJ;߹BD|wjΜ\b90RFf3S3̼dkPKH|E;Vco%9r+_7.\yTt|94'2^-(FKk-R*^]U‡SE2%}S%.Xj&B07Wx#U7d~ДN/- b'>KS4|n\z q+ 5g7Ln +N_|L"5z-A ]oi<09!G5Ȧ|j $ +n *i!n̻@HlnMX)L %~`ЭgVղ֒ _we@u[9W/oSokaq;/_wy#5jML&SOz ]ϸ]z[ί% wC霱(yZ}ypa"y,sߠkSo1uǝM`]~Vf=u{okypk: 95IA8"= -m: }ejH&;Hj?5;Q_QΤPcLudz-ǨTVîLNv4Хz#8jwjT\EH! ~xdu?ӅK4>ʸn>Zm(_'B3`49xn`ҙ+;rZɃj"1حJ`=tک @ \swa+'gy>kn-νs:Y_:~ª*]s$zD%aYVsC9x8JԽn,+ִΝҨMM1,%z lܡ`jK2@H Exyk?U.]! D8&". 33Gp9nQF Wr p*} EɼП,p硏&˚B{]F3i-*J jEIHWQ/Z0tQaY?"Bjl¶lsKWkziuwW`g:CMgZ;tw{L^CJ/@a1.By7~Y;'~P͇vE>fUKe3?51 L33DAޙ0CeleiԚ~&l5&Fi\m8.+>vf5ԯi8]i;ө2(o>~ʌ3fGMp"ڊŘ7Wʘ-$RүY )˘aTRVi0TRkb/8zՂ ܶ+6 +R9;B$Z ۸9^{vL0BnleLC7R@dC,ٕec\^բ!ORƸ{dMץ2C(SL/fTºҨd%Lړ,TtI*؂?(N6^bxp4UEJg \(*#=a 9{|nЫ!܍}\ +$5h}y}7πn6OtzM 4TRبu Q=jQ;>GrCx{OHO/k(OP-;"vO11ѮRv&~ 8f+ SSgKkXn; *mr]h*WhT=Ʃa*;U5զћkV#f5h]7׬x"@^U!UB2xe5-owKT2O +o@}ĀV3)=D3> +1gyS3osބxܓMHQM?ʪNG]l눕s)BUVUuGmL5yjf};TP(^8봚 $k=q;*;VU|yJ I<'lhi==9vJRc"9gKN2Gjhy[5CрP}yì/1utsXG_ &<~^E.`5!e?lnzI!G6BpݜW}"> }}挥 d.H|mN7s]пZp)'^~8*`Kb2_=UYgW=oY?Lhxr׾ +OViM|k]0oϜ? I7>{hwRM,8j gQ?4ƪ4qg^#LRvY3O [ؗMϨj>c}byr5XgiXU!!JJO/RVN}ZF/c;"eR2cvm) ݏOp NXDw"aK;0SHhX #H=WR6^-qm\*9C;\|nЫtoq3Jf&Ǯ! +{:k;n[MҗUh,mRZ7b8V_1t뇏*QgǴ+BYT"dB~F4[T8DFMϖYa98*bF⒫v]hy}mN xyBIvdp #xQLo[\Ba>Xz*qR^H65Y?u&uUxR?*U CﳞՏppɐ;MCQDo{D%ڮLJSNцJPQǞif0>)g 㸥vghtgI";qm'||+p?@^ޏRO$q5o΄QĶ_R>ګgz.!*Sk9W[hy2ʏ@ڄTEҏS7*} ԋ/co;|Y.jFٕ/pd=/=.L&R ?uȻF 9<-#AA,јG.F$[8Dz>@lê6zV; '!ձ$Ǟ"N7RϨ[vG&̭6 4"ڨ)V/!+A>26!j5P+8&F1UoPJp ԝ$`CFɥc;6 +T:${J>˹ZO:W={oH^zylCAG?KyE0qYOḊ݈"UAy EFI(U%y1`|E!+8)v7l47 +K"[UF$<dLYx_L҈H +u_ZO}~?i$TiE)^/٠:B)*@6 +z޽ +\.ꨄҜίha-av||U#~t]?nWXn0x k2OCáˀ +!/TDZ-~Q c!6xA]kkw N" !-ws^Gn=B"_nI|0׺BJ)nq$Ցm{n삫 k4Kȣ\BWY[e{!uF4wYM4fQU`3aþ1ӉtոN9u3Y71N'RהN3w:=g:mwv ?G_7 >YEXi5ɼחf$?GƶlM|m:Y,#WN:%ۓ7Pvk +qȤI6`_m6IxvՋWήzeE2~96~W˼dwH3;iWl'9p֎0{&pj.5*qd#YޗLK//LXWh-3ipN o&\(dk_Jki9|WP.s~7['OMqudWgQIb:X ~ul0Te2 <,mJf ڈ8_poU8[:j󉕈FD7$Sf 6evcc=$SZ?jۜ{~''R5ߋl>KK=yJ nY=: W1ct\: <;h,o!=h0__pv9Wxmuk\_o⡞[zm|vf TIW3e`h Dstى))sPOaRiNvAgqq9x9ҝ +"sFO6<OnAѺޫ +\"E2A +е}(qup"lQpbV٭92pµt-U"TW2{g.uͭʸG߷*6gcLC}?T1lٜro.Q!w. 3Dn G|73iym {{c뻛h_e^3T$_;D+BKzC8LpD rS*0?4g32|CzhE." +DwE(}c9` ssL0lab s .My;HOq5i# RrXY.q6p7O +npG;=ҭWIWi,/0w52 82D1Xu02} ̈)~b \sl]͑+\*4u -XM$'ϟ{qP\.NRhzk&`V2L++؛":2~|!c!F6IGUpkQt" +5 +OU/tcѶ OfvhyNV0ՂtP?J/@1ܺt +BOCbm%#\i"JWxGbj+[Ӱatk*V>67-ƛ~5ye;;¥gEzyr04-6Ϙt_oS\[=?,zTBxl-ٛo3\/N_t MOAxODڧ!H}](\px/N:X>Gxxϩuceިf~d>9)5-VTgTLx5|q 3 sd R۳qď!Za~a_'mTg3-LAxG;R-8u+„tM 2k*n7읗^5#0앗wXYXhul-"{g؝'y`d|e>Gb؋*}؞Iݿɲq"W"YMD'6Z0Bb۷oM ?f$ I0H4>l9Yd vGGK;=yyk.@s~67 +YV 6aK#:E&/"yNc)rC|)&.On>SLyZ7b4^B{XC~D98?{ѹFyOFat^tF?v`)9%:fpO:pؚɞəZru42;V3w4YUmG!ad]ُJRtGok"VOCe#<'G^VD~ HZYV-]^黚TQRSſW(Y`{h] ;ĺES?NBQAu$`IwzBJvprRo<h8s}8rZQu8\~/M*~,XCڧ#I1[I5$֐`[Cm(5 EIK:̰.|7U)ݯX%*[* KOvZ 둧`.QZ&=:DFH)|Wf㉎`rTOEBJ_WVP#CtU2@c7p& Ӊj1ZӐՍzR$g 'ܜf,Ы8505O[i%mO-HDrPnU +5 +ߩ>L?w?X,mU;J&3X^ UFՆ3oWЮ UAL@\l߻z+'~E1 ,CDqtbrug%׊c2 4zjt}:kX'v 69V O5#`pjV<. a+#(תOK Uj ׮fh7@N#I0;u.5%GKȗ%C_z +LB5Ą&7 W~Md-M86 sΚ~ĮQIJ..M/[b< C=#FiDrηϒzI{Npq lrETY}xTՍ-댫K^a۸ +Bw'QbMԪwj`T.^YeYJ_qr=(X()NxAIY Z}*Nn՞: 7C[z7NV>ƨtB0*Ia&]&9 +O7)!u(WHS +!TS@Զ\s +qnCc1X)? 8xȔ߫ ٯλ߲y yjzRrmrS mbx! 69o.g|QQijUi={7)pYN4tU+c&!Y9GhdNPP;4b~ h Qx&˷ +'%jo:'=;m|>;uwc {H7`_'fdi?BЈ4)! ?I'Q+5l_@5aO![d$$ؖT=C>gvq}5bIԜI{jeY$9BϜl4% +Nq3`K͉[ipy\ފ7TsbXkgnJ}"81sƙ +Cx͵nۀ==P')ClZ>xvB t;DhLKy(L"B  +):ĂE` +iYPY6^m\yO $RM Z:>g  +y$ow͖ĄC-9<|.CGYz,̷CxPjDE-Qy\Bԗ%f_i̷|^na}}UoMu{|nj#+.B,Tz*$&;1Tyff~vD1= !L +/9Rt-rT U~FU=)=srspʻ6MӻG:*^!o8~b"b_*ɀ9KUDarJ߃ "elXn> fcre*&ȭ)&H[gu<#57S4O 6e_$,eof+ۤ%lx!#g5\m ֢1{d=Б)l>FRIy+Ul.l0P^ð~w( n$句ExҎ p»4;p,X"TLx;B[7<< 3prkI9ēY+mRl̃bSuF5[0Z ;`iҟ J-'OQAٲ$+|O|lWԳg/|T|f9@\\OkաuQ>.S|DQ2t5 Y( o6ɣ}|Ԏv7"O7V->pGp96bDW?*/H6iO#VF~P>߬lBPw$Eiƙh4>!)2h1IsnuTZxp~/S1Q29[Z(5 +?q(E $uj5U\a8YjK78FOi64Lk}MQZƪ`ݜON&+_ea..8]|\"Q'Cj$J*ɮLv]`Ԅ]}I^´jIlc/3SniRƓ8$ӔLZd&U)]'9Wʳ:OUJnӇ'FE1Kf ڞI"+7x2Qd>du(mP:tuja%f#H]0L$I" c*y,0T)!Ed*1UZ{B 9*U5׼9a*䆆ɕmt^f$DICBĒiLlR1zKf:,͓X +m-eQcND`̏O.FAx'xcd?&}3'RX&'Rh^M'N=?oĤG 0zq3o]5KQC7M˟lF3N7qgaq1y >-G8'Y#Y7lZ v`\+`VqMz2U|{j+9ʛQ)m S_v +m>!}sdwJ?oi#&y=?Bv?hΫnql\zɸA9l\2.qblӯkC>0SD `OS6҅'̟;yol)\0cRx(X%S빝cs(jM$j~vqډzm%޷m! |CFyk#WÌ!nNõȚeQ וxv[?Zo͟K ‘y&rIO{E> \b!իi Z쉶wGŃp )b@FAzIq/}(G?!₵'}W1+d9}rJopA_>M/؍O?zW>"`w!oZJ/5?wpU2Z8di,/d?&9mŜw3^%Rx{Ϸ|FqT7;o6A8=Ɏ2;@8/tэf}0J7]x»Vg>jN #ʂ'wE"{iF̩XO%ݻK=Dl*T7xhDSmRF#Gryh saWnIR[-*xvaeGhyT˃FrBr{ոT1cj"_PF**x!Pr.}s\8͵ֿaJ8ۢH WLUFإ&9^ޟÍjGcE*U뢾*(U"UGw(flX5\PMJ,oR9G]kp  u(X~x$د,rSRS8gy_⚍swVՎ* `HNIinnd]z#v5@ܴҫ1U[{+y7]XXbŷIl?+O~@>j/ ~?{ӯO(K=F?[n17->%o G=-N)İU.";ۻEqRb|)Lֳ#|.F> +%2Hib]βX2ߔ" dLSP@浀IxgcѺ/bwH zKDnNGri"ݙVЦm2yJ_AAN*ԲO[,xqm ۢV_zhDy*TL;s/R+ixI U +}&6>)Ch+,&ԣ{'G\7:u#R YɁCiqE9h=hQ'i9t_[UX A;ҟL'q+l I3&,xP 5v@c,@j9r:N-,u q1g{ $ȃ$h$0;\XbZ2AKSُn$X^h) a@T'`Q#&by-&*sj{DNP% (Tbd$)֛~viV&x?)]еATJ1Md _EBtHMSV: )Ycf-҉I`qQQv/aDHXzH^# 6c{/m,#vKҿZ`ϟU, ~4 +i<bI9?;v7|NsC+W`ayd]&]9 *-t +4 U7U7MEreV~fz!12ҨH6!3;fw7>j4 K9:h>D;qY9pRwB#Jvׂ'i^]2[ۧZN7DpPVP$it`h1FVa713ɣvgPx<00puD6{z=&]xEH-`D|*ֲjӄ8yXrrVhIIWr=ɪ!\LPU)j83P(?g[m*6 +x :Դ +6ϼyB) `ӌ˄&[ !y:sykrZRSWs-*+2cvrd( 7oIhbmh 69˹z@g,k=$CSkOЇTOq!*ݸپVDGl% ՔznkO/ӢȗDl[e4bѫ13j$`DtRS +C`0u,`w f +@Z3"\8:ys}$rRu,FOJu&a+U +]~J:eœk͖EY1i=R(8JѾ?shvxf夠)A3\qR=-WJififE*rD+mTGXq pD'l,o^ vc~2}`C(H{"{9Нƍ2| +ϐٜsL x|'p#yTx-GuJSG?o^Uq+&s2?`~7Kͱb)?ЄpܭpdKƁX-r.u9AziW;MX[R&pQd aJT8LvS"*hK [ؚl8xtzGi "oGnb٧>>eRmAz]b܍R}A`G/gi ^{PP˷0]4j*hkVdGύܿ(3IE 8"vo`vAjHQ"/ܿ@E 6Yg0TC5,0 +ռ9b K4 (^@ӧO5 +}}}+"ſEVH0} +=֗֯x@%zH|ɽ\Oz[z~[SƦ 3ӢEC['s(w+bjmf&LM[\rnA!lP^‚B=)ϳJøxx5-:ú7@NFb$n Τe_?#FT8' |?Xz + +6C,t ǵ5@s"_2T"_z4*0@=öC[#ejI,HCİ`HdM+єRj e +M^&>x"h$ϬfՖސ7-hݪS3mˍ $`Dp0e|9n' 8 P0M'1s[2 fx"͂L[k63T9xu˸C/ 3}ta<ʤ|Rkse[%lkzsF~3BrjkfCބg)Mxp-\*#ͧ Y$~ .,r"wgkhZ9]=''DT8|FY~LK0GF-,c#*8-ߡe>_ZٓVFkǕ=]BgTþ!}j򭎕pj]iNn8"ۈz)U=ڟUXWbw&3*_CRq:1ˁry\Ec` +U +W'B9\6q!$F1?¨zh#W+L +])K}`R|?]+oEkQ29ǒ!#77aTF3+;J]V*gul +O0IqՐYׅ(۪QG?Z.m,g?ʂD83d{kEU׽=1 +md;DEApC@ۿW7_݅ 2_vckm>lQ\jAнx\z vR]zv:Dfx"JҋEA@H-իsnĉ>' +‚쵲@0o~nl7!rW +ˉIe +([hs` м ]AݣkZ'gxs#hc|["Wua"ٟO߯dw?VQSxctB$br+G`~w"T k/n`DYQ0pP+#k+sGKF*āsyڤek}S*/I5'Fj"!*Υ߯W񥑈Rm帰RFj>5iLS@ %2r1Ǒs\c/UOfDK_Tؘe! LgF#o +m!GqVJAXua=nS!]<<29k#Cf$ӜB8;"X{IYqnwʧ8>HN[xjf +uv&oƂyW"Х"*:uF!ojÑVW& +3Cr1CEr)_yR2tQ.qp6FA;n 9Tl$h= NpwT:g:mmJاPo=9TOnD86 =10( 9Nm E^<2_9]*o4C =}仟7# +p#71ƣ~G&<;5+,<#ا_[R@THwTR-1.=;J%'WGFU>o>שPcQ$YT62>I @Tav)R)};xC +ʕG癁EV/*IQ{vF$^E u*c`s +o-!>n,LxT$4O'IbԦǡMȻpp_#q ۯCi +!R)kܪԍ<8ʰeS*&迋iJ阦)KfW'ejWznH)D_ᤰAg3~H44W ZNRȂNIvE'P- H#]tD.I1\@R ui u‘^Fs{i=,N{O5T sfQA jjX.8-RDi4]y ցH^!b;"EQa{+rmz,rUE.VQq!Ȭ݋GYPd/,U.P[ 1"<5o5Q6O.Qn|!'SC@*~=v nЂEZu6WTaR~ +NCw:d@E..J" 25a;4᪄&5;X4efIR6݃槔IUxGꏬ`s YGR~)1>co[&R!x`9$^!<[׿&~h. ߝ4gZ|h_6Z CŗJ ѢrI ƒx&[e l-:%e^Ͽֳ_)yhJ(,FƒW؄S9DEh(Z"h(*E/Dѣh(>}v_{:_}_{_lƉ#8Vo/G7nA~o00kPf4 } /h8|K?WŭuW Rn3+xg̑^*q5'GyJ;iU +NYͅr%ޕDu :u?Yf]TA5%ԏG +\g/vy+։PleB Չ5%yQuxB N̶z32>7PP6rەھ,NT6qۺ])Qۼnkdu-eSs<uBuN>fBG~<7->SרtFʽ?ՊbS0F7GxH_]*pnݎ? *7^dZJ'mMĥCz+Kϛ:0#kFŖ,U-fRsSlqMbX=y43u"n!^YO!z +7|$0 +C52̄H;mJoro|_/uicq2 u1 ">W%BK wVX6dW+*@sH“ L1bMElɤVpob+zpf_6͍3_e}$_ wcV;T=К,[,7U\j)\U޾\MCtg MޣꧣrAFv{lÙ͸BX&;389uT-x5Z b?NHe.RyIesqds*⯲Lh +?\x[NQK诉O^i,KD Myܸ2PmBԣ#9 , &y RQpΩ|E**| +' 5RgZny <n]}*5TjNf!Z<'-7CK&Sj͋Żivrc jOQ1?8jƮ: nd+,>cq0fWld'KjBc,nϏuS1?h[|cv8TH HNq,r1L01aRvt36Ym*R%ZfIK;a F07SbLѻsMfқW,+A<ua$HE!FKl\U8fFlN:Yd`Μ)h|@,]ڨwc :m򍣉BUWhS;7"wCM-2z:^ ޘ>8[qFdkE5**ZO8`Nj&4.<{*Cy2#< 5P%.+D\Ӳ0~ӑFY(.gZ)ROxezL4֡Sŏ˓(#+Prz#1ZxBz| ӽr_i ~SxUfBߙD' D7 b4v].<9:u0 +}a(!ޤ]H0NT #; q˼bxlQ 5aj 0C72 +\жQE UߍK?ʼ4Q0)NO+cIVox$5Y> ?ȋ:%7 LX" JGMq ҕ?F"Oph>e%v1:5}6RCgOţGD%@|'Ék۲E!lL&f9$YA#8DS<ᒍP- .*H šbn.|S#U/2ѨGqIu_/bhM,'k#ؖ@,xw] ' +b,:X0K aUa͌R|IGpNwIcA 8GZI {Y~pb 䉌[*\B;W?o?,ۺj]==d$f `W禓vs eŲ3R$)JT18 piѸ| #Ƙ,W%'3 OHx;J_@INQH"bȘhX=L:yE䤰ȖX*b>DYFB#3i{};2'-V~+ [3q/>jTET`-IuoVIus0Xf@uHq ٩BU"7Q9*V^ȡ| 9%ݏ3#}Ot^ku ;x |"[%|C=Gl T7`{ucj0~ 7OmVqR!pAy0CYl/Q<@_FBdDcxro +VD=i_Hϳdc0u ?q]BAUܜ$}ru,QleycVbb1yξsȺ!Jp:e*N2YR?:V%x>OQǣ3]W)}MQc1GFQ!5f4.KyybM/%wL@,xR,uO,-ym+ }t* F)<¦`Q!ZCTe&QߍVj3υ6;jXNR3P՟JT~ 7z4O.ObJ9֦MְXpGO İb*8W],mvEݙ 85}.NP[rN)0M?֎tynB%- ;sqT23 cRǼW"a.~Z3PקTZ :gJ`؆ԫJzzM,)53K@ yM1oQWUM|a]k_9D?;8& gk>nfB얾%ffJj7^LUm7+m/iUvTMPE϶g}w$$giݞZ+YG4! +_x\k`0^x08CfXtãs)je;Pқ@!=s e<W.Ľ۩ҒY*/EiNJ*~w m&6ǨSgj͚y]œ܎]@o[7 RDj eo +61<7 yE<7T;q [*17,zH= 7 Obݴb1}‚h$zX@rbU͘Ե-ڤjrK놹7Td&UwR,@A7 wP3uʹn/gլAZHZKڍr[%Xn $XD~>9ܬA6,jI,7ެ0H  .Vr#ugd*iLr.Hi,z H޶P٢ JX 9XJ8HfBe Qy;$SH5H $jVGnsx!UYR T +zKf-57{= ˍ@5k0Xn'6AYg?Lժ,2'ܨf O  +Ikn2 un5`}P\jo~PKd{ש3:U{rt꽄aWgt}bK3^x `lk2#We rm oz{G-2φV}u4Q D+3*4=<~4. phDٲ` _[^9c<|>-MA+#}]{r  k'x@N9Eƭ- `5Թ6:!N īLCfd83difmH|Uϰ?AkkcsџBիTH +# Yt B6Ab)834 I=D/dvL^spW}c!)Z +=}yM{4 ӕ@[6Lz7 UVV!TZ xCfc|i?LIX&,!J,Ra5P /KZ;p暼!xCx+r&M_J;@뫘˲E\IF6::&ܯ?=oQ'fx֕|]*8~`Fˀp˟ej*+ EV6T7e`~[)a e$ \ӭuJ6ʐ}Y[k8w>v%%82bȠ=#1o?,9.nʟ;;wYMSKz yāwT.x94bE;n&Z*YAm('yVYO3g$ &:E-n!n`jQIXN2[6”v}4.|Ǭ{BHW%i)&23{Kh6\%? gg +I kfEvjj€Vi-# A9251C˲ĹZϙ% ,5LhVGDNmߞJZ'fpĤo~V$qjԩ^a`~07El@*+ˋv![C2Mc {,>.7Ф[t_JU"Dhsp$N٤A&"@DY3/QwkacjQ XCtp] [5֏^:/<+0Tz+"u1R]߮ +R> , Q&gŽecpi1?&H̀ f0CbiYr}ZkvJ*-wІ ; qOrd1BÝepjXga ;d`HO?hH +K &VM!>g2m chmS@?JpsUؙԏ=T_.YiGMONG&Q?Fp)ߟw)xdHGV!=rP +qƸ gkaE4q!j}ed6h +'E˼'Ѝ } L W"ԫ=B 1j7=.]7IM<5#7}9!_S͘5'oV iҐ壸ƤR09ЭnkwO8~F?Ͼf%B@&8~d>-"AXQ4Ȟ,@?;mU,L'IJ~N&T#2s2ttiH̞> ޷iʞ1,Hg `Hi`pLG.f oº?ψ?;xE+9ǟ"ZU:H_5\J6g< *&;U|2%[9F?pTzedo?7+ٓz%WW4xE~[x+87MjIiur~,[-,O?!. r|3sbtCJfx / < !Czz3{BMBgWUyjX^)ql>w[^ms)t@+1_;~ksEF,;>kCO@&ƍ]ݬ_0b=:M=ã  %]lddhjqz׸_b?J/O^&9g^_+˚GbC) +LXH&O )_SkqGK"}mZi6+$J#T,mU$AP&EK)&. ) 7Jd3O?W? cu?,)8L͓mXa; #p+l?HS޴)l `FL=iJs*;imJ.l#{p3!5 +ǷӬG٬ @2 HmJvDRC=cJz֝N8I.N _iPk{yBzoN|}7Ig7{wUhzo%_:7 kM a)p1S +?ï={7zW~ ~e_/+C7`+6Y.6&˼_t]"ZanPgm4NfZ"ߦ eP;S|FS~p5kvwX\ӫ&é\6 k~g_$+ +~H~ +"㭦){^k< +=;eczd"ʙߴ _k>TAľ=p- إ?V# \O$FP %VmETR[f<0c eR=$%ڃ_Rjop߯Ͱ UMK9oƤsx,xU)㠀; +MGNfVL6ִMzKe- +Lez˴ɓ^j5t ˵S/-8ʾ heK鯭RiE@{7}U\KdTJ迕օL31ʘjuAR '?5ecqUIS5Τs&{E=Կ3 Ԛ, =}=MSCҘ\kqC:ؗYzh-QcZuxwƋu;?isCY>}L7o_姑Gv@a1 5m' Sw Iڰb /4{NNIPD +MGwG{nʏғ輍s~Mqy O0(UuL >⽟!!!CqFzD_˖  +2dQȏ֞|m#@]=ܣw2P{p I&ϼ~Is:3s Ό |&udIDܧ LC\$3҇>fs،>O:{Ǜn LIL>)0t;NBd0u5rk脑5&Ni@,ogs&q.雧Ϙˉϒȭr7*meMȠeVvfN5u':n>!Pՠj{f'DI]#0f?yOdfgzrd&'=[?!vv]HDJ c?i' uwdI*=3|P0_tw*||Mo~? ޭ" +\ ?MDϥC- K' +\V~qO^9[t +o7P%v.n,?nSz9GƱ%~1ZmCϻZvS\n'v`d+ex$B!mBΓO"q88zDrn{{S ~Z|̰ +Sbє8IqG6vGq=<ǞB'q˩# sf<_̐[{|#y>Wl +¾4s񘙑t?e4[M_ڟ3?J#$/'|+_?X˟OWӜ8D7: 6/m8V+nrZF_rDxHDlvuD"Nj -8% Qjz1gFfpӖLO~ړ'yrl3lͤN=݁ϮoEk&΄#omqN> N;,qר'*IŒ3-9ي@iN[*f__6< qEKd$> EEqke4uwRq%0˃[-mS׿Z)\w?Z*}?*GZ^h#1ܡViIM7sS7=amYtry( f*aO ԵWɡ+6t9Lok=yMhHaKHN6pzGLVyd+~J8Ov*Ie]Wlg$*;0jƗ1C▞ ~lS^>魹W{@'}`LN,SQd7e_k@?P㩍STwm]]$IaK"k'A&tiTkL["5T=}. pa'dI0/"ά*lB'tB +8,\LxF#قC{?X9G>Jm4?y߽~{߽~ Dqߔs*` +xO$>`QkMSWzST@ +@LG =IkL'xvB>"H +_gĐ:0I\O aK +1* VK@ApBzE zxߠ%[َ,DCl h6Ue(MUI~sTÂ`?"(w'W~D=BjZMKZ_V^="|-zSmOwV< u.[M=tΚ^рàHJ +`Q mm?Z +[xh?0?cA+RmƝ{9`X0`\ .`w,,[`V-&8{kMPh8Vy?v#9 FM6B5q ?1.ŷЭ,ڞƘ;Ďm͸*U +N4A,KK, XiZm$"`i>z$! =θЄOt ]#@,CD)ۋpoɵ,#h(OܸK& 4 y"7E'sCy(0#vE^V\wKnoƫyhr[?h[ax=TM^<=`$24gNzBƕl#WD6}A\"!. + Gp_"B\.lqh6G8IYcz[KzDAm=4o bYM-3㒠I: +m(Q$,J 6A-W Eu:o4(m9"isO;:.Up٘o]cN5U߉8WڅōF >iB|>6e7Z=sUͰz݃Wkz2}́YY/ (}eyŸFcvĜ+o23%K~Usky[^m.wt4\[SM@3<РWkbwh*چ'!b +T3k ^pS9O\ +>_Fh,*@tT=r%y7LmFUL]-+=A:_|̂Ye8@0~u5x]\=a8 JLUxZzW8ʘ"iejv&?S,h);⾣(#- Z1lDչx"n?qE4k1Z(W+AMcET6_Cژ@%@OP;waqښ@&6P+.lz[Q)VTWNj.PF2t?t,х6vu:ְ($6*Y>.!z\(oxlR_ONcD@E.c*gl-h/t̠t/l m` ŗ`*N& VB3JAUk#ƥdY~ 'ډ +l55OB>\;ـ:;_v 0 ?F0]iA,c,d ڎ 2W@Cg'VQɠPg;Wg#'C`JB]-\y8鍝8˲naϪdЈ2Us\GWǃ= X@;D!0XP?rX\J2xh?}Xol %F$!+axpܲP̷c؝b&f}^l?6StğvJ<{?|`?wMPndOr4aևQ1\E)Ñ#}ol50^v[%'봴jA1 ݝ^ie ۲0"{=xmP%1 [<޸(5ݺ)kp~W&qd6dxTHVDm$- q;^ҾEY/e$tBz{6ǃmxUy6łt3' @_R\ cmvvشPmI*mW9Mײ`w*s8.S{g vcIU@nu'T?K@5cN (U!쬀( (yr列ǻ)nP2.mIVP}>GuΥ -n-Yܫ,nݘ}WCI91JJ_P61m8NqILt.w 0~Ѣ]0.8 \OW>*ڵ*\W䒟GKߏ7A +*YM($~E6"~~X䷩X21B;v6}rXѲ}Y>&s4l $T?=TP TϏWU[o - +a:C2Ltfn+_-YZކw{Jjӎ7@ۧ5zHOWÑ1ey6.-%VuNFj{1c=v7VWNߛ{63σD6_4X.& Blmq{,nK-;- U>~5yT <PP C=˕>mFa,? C}$W{ub;0 1dgI\ tBVv^#YhWkl9 iHiadx.o7ـ0/rg.b|Ayd_16Qw1]w']7r/+8n\)"F-_tSނ0v-`PjPa'pBCЈ|o-5ֲZ/Xy׫L?N | HǸ0 L۠Bhn(2uy<^s*w$A~NndhN DeEE"$!R&P^n3HHl+T?R 6:3&!Vn:jGVnØ6 $WjZ_\UͼnI +d/ + nt>="(mK+Mʂ5F[rB9(zjH\8-Oz DnE&bl1LJSj6.9*9_r9Z3LII8FfA2uG0|). lx|?$rJQHې\J\QY?/Ɵ"A俅 GJrV& +|Ynh4l<6 +>5zQ$<*xr<}`40@N=])ҳv( >-ԠwIڐ%2"'pR`k׀i1^ڪ5g؇E ^cGp72^q7Aa\& ȋY y W݋&[> ;J|{ u{$3 +`BFֱs"P\L+ϒ|Aɤ?,Wbt;@iP̳%@dA@~xW(ĘZA+3J 1:c}ɎY:Z[FCh9 r0g,VTkJlTF-chE39q7r#4Sv|wRE~K2xĖQD2r"K8Gb6\v}vKfu/Ȅ>,1a!ִq01S^yx%I,ڭ{~ţcGJ`B9f!sbL=+( ,Alc >Kuz[Z xD|z?]Ïmv3vbGk\#P1~'!͊HTWGq*%xPt|6 +.Me2*;F t:dL{2h8C2Lth + $ 3ɍm#̔E\ X0Ghoh*4΅ܭԡ2@ޘؾ G޼syyX48`+`$E2qjVIV -I7Œl".%GG7Pz۪ibx[wbBDr^# *DIȉ+O͕eoࣼ;qg4H &JvȨPx4κmŎ&`!sJ$-ݒV*j% a +"ƍem (# X9!'g?أ}=v97Wlд / L}z4!*"TdRJI-gbQ&;}HͫO$\Rڸ$QaLgJ)qQjA}r*QeOE ##kʀ9Jo| N2cMѹ'z{jo$"# m`(C$ =aeL|z~/4Φ)zͽVF/Lm,a`Iq&/ߎHì+`qY&X, +Qo}Uo%z Po{pOx×HTBjQF.{yQ1Cuf#U*ۿ7E 8`/֜&k"psVOvO&d11: +p;ȝbWf+ٯ6UO +A)zU޼HmZ+i3F)5Vn|k^y>wӘ`y]ye+n .>{`^q<<# mQd`9If[[,57!bm?B&{UW)~KK7H뒾<KIo.?/Z~uR"hDUXeP;k/ңd>zg~K<a#mxSq>=v#t<7\_S'1ɏYc(*=Aoܯ'ܷ}wm'mpXOo?Ao[u~l 3lPc +<khF9bVtk8?) vZJݰttd#rѸ0ҤIӣK`BA-[ֹom:/~qmXIo7z[=7_o_y˴P27}{mԱutqa{Ig72 )mtd!a/}w=?0O4!^#:g??UTz/P^(OÉO|l3諩+G+$^g^~,c?z^6U$Ye9QV;/F*(j)KA#sQ=k*?v_>mʼnJ:+SCbIKԶ$qZK (H +j +]#bw:nY^^m?O.OVF?HCaop# )4R ~ +X N j#={]8s HzP6(E0bz1W'-t1mtנxXMuNr)bp6c+/plPy1Wed|1;qx={#06z:j;kQlgIɇ,l=x{x~-^_U?m!K׹uQh+#|5ۉaMa٩.cRl:-m;E˪ Hqz<2 D2V$UO#}C` ^K@WsjbҊL+I*ޞd?G%JO$O^y8+BU䮗5N.<7{E0G`6E|g'ok^ OTOuxtxGptal#3J(:`gbiuTfQ"Q}B]"_FPXnC҆SygM<+*r%]8pDͻUOk'sfC؃:a9,nӎT \@-Bq9驝$4|"5r]CwwSqu=99W8g9IuDM,Wz\v +:)O5M6oa5/duoV}9TbJ2UH}ƪho/ _h Ad +wBC^<櫧ccЗ;[c^zs8*>?Fhy61L8OMK|z6ͣ Y8nB`"I7t,`K\U1h!uuVnY:o׏(ۧ+7n4zиuCezeu-z0/6ssS<9pTn*|( XLUX!;UůTH?%L3h:gůin*}58],wK :'S*A?%^ eF 7JnwK۵"Qt:$;ŀ^b&+HFʖ8^e#_:~84 ʽJ7|BBWJuRy29०0gt)#RwӇEG ߷ +יnNfxwx %h|l,,D? Rd%WH|쵷n~=+}z_]] w~iQV~((:d\C8_D 胺ib;01uS &"$I&Né:İ + M^dOFʞԦT}*N)Wy'_NԪ9G8g <2Cлp?g<P?AIbھ=s(we3:l>(_ bS[s.`nRES3%&r88:|`?G2SW:S.FKGs;S=UeM'xOxjNjU NґN@]BG}@NX;L +T`I!KKGnxa .X +6=ms.p0CBt1|R᮱8+v녨g58տZV:ӡtTuiR>Sʟ)e[G_1OE]9-e9}Sun +8g /OF{9_V=p/1:4K!lq=GGhJ}|(q;?Cr+j~`9{~ h~7PX]0 +ވP*2:t !cpy~*`MѮ$NcW{E{8$de :Qc?G*ױ|wLkLࢥ4et5_ ϜCv{O3|Ă_i}6j"F)-)L "'wl,coL~ʭVM '|nY,>5MB=d|YSwꢕʨp{dt*<`'bvˮ>NK,EB#QGXN7^OiS]r#4sz0i^rRArXI\PMXJ-b)3ETwx/Km HMT%CJGun ~޷ѯ \zhP'{kOLw '56$'x-o& L<5h'GgG8,NtEs :% 6M(+}2iԏvL<>hģ̦P +1B:oBvd&&qېmӡVgNmTJ7bbJy"xVE,P\%?H $\/[y/2 =`l2NݴtաG~‰qۏX+M˷;qlt%ݞoth@MCo̡/kSot"& :'*-~ky|R?ɲR \9_#Oc'm OӟX# VnA|9rj %L z'cb<#8fO^BrL?T2*ܗ0癹5vQiwRzI#  md\RD & _O{7"PS\ ])sR4;?+6d6kB鋏h6jUcT]r3 T77ի'M>,$u$ѰUn, ܬc.z + bp8O銿lC-|毠7Б_ II6-Rl"v\ro* +MEwME4" +R{V#A=0--ܠ4&})4dyɇg|)'SXr Phלf-/ %f!ާ֙)? 6'캰7cU~^~AZN/8(E c^ӕ Jkh/yW=yݗ`׉&D@Yֳ)g~k6;\զhD3:eYW_Z:"$:o~CRVt`M>I;Y$11  vx !ҟM숞<2çB:95PV&WѸ%F_owV* +ꭋJC|5%H!LˀӋ*3ρ˒5RK瞌`q[״ӛ ֱ, +c9aTeVX?Qs|A%XmGmNW0oKs>?6c|yS-x3>.S3<FbvJ p+|x?d,";(NL(Wb|ܛnj3g# OFcA錊TEN +2ȘS#_2VPz/0fX,C'e^U}e]1F^W|$:K#3#s#çC* 7p/Zar #x Nl:rU_r5Fis YI8OHHξPYZe8x2~H]/||:X,,1˩ |xʩN-e2qjN)^ElWHoC6&;/)4b?dz/* +eköc{XqNR}gZsAf}p>H *ve_Tt`b>υ~' -$! DsAx JXG[|50gHGL#Hq }>μsc!LV9XA$#9r9,DC[m|e|&GIG`7>OG#.h+w~{؜Is(pば> #c a4c84:g :oyW_vX+A3h.!,UBANv ڡ±cEg8{L31Ri8 Z& ?Lr( +b?C0KG7tK\lI;(z=K1_L_8k(9 _@PȈS󴎍ZTbm>Dn>^y|v}0涚܍/O}hp֊.{{y-Njq~k};);_ja~@2q] 2yr+ <<8pxUȱi*t|DKDsR9kmh]d6>z ijp yJ]2%VR)N%)6:_Qb9;Azϳ ^?hMbX(\z-AX9 FdoV+j5>0,;'gO O`3<X'vEcwT~Msq.G όuA{]sILn66l;)L$ l돣 L7w5 zOks.Cw|5DsQϾAhP?XㄮL޿@Z1+ȚmпP 媤.}^b25LGuN 6Ô膎 Nhmh;hZ֕O|q#]s7͝8a ;:Z4&cF[ow̛sʘ|W)=sQAksj@>0:b:v.3!و*v`_h耊Vt$u:9!W_]ֲź8{[e*6*:}z]抚;#869FɆ /ftnQkl} +*21ڇ&FlgKW֨cry< %lc̶SEu'7:[ `U_?,} '"sDާ{(c؜C8=TC=PC:G0'n_2ZsSbM9I lQ뒊\ +Muh"0n|)/ *e8ӡI;!ĺoS[Mk}z%P9X]_ϣG)wӚNQШ.rMDrz9a$xMygFvz*Fny)eCvaOk +n#xOo #ݪGLbj6\\Xv amB_79'1 +.ݠL2j&C9 +t֩'`iIjMl~i>wZϰ>/yxB ;cxn:dⰊT7FLND1jm3Yk"c!J)XI /KpNC^Ň9GT*'< \ʚA0]jqe3*Eegv ZowW :šEOsT>Sn;<KNDŽ:&GF0 +_/O{XO뷟ēg +`J;Sw~r5N'L+všPg˞^\Q߇Е +;QǮ^gAD.`V {WMTUE^ +(Sh45DsA|"cp?+½(Xl{lZP#F!FYJru|C\Y>#  ;]fK}߮Gp'2.:n(_Lf@xDzXFaL{D[Hάܺ"7Zvdӏ@ZcpU^5v* +tG/~B24dHE<Aֽ|]Rq*Epfj30D}P10uYZџ f4ab$H -*u}w~n[M71qnģcT26{ %$+EG4w,ViG(+OdոKݧՍ?_Z}cV^X%yc(8I `|=%(x+D\gzK5-4 ~X\bx#EڕܤTlEç%$S'e9qI3Ês}A֧mȗ;S9Bw ?` hqhgCGb{]/3~WV14l?i1rluWeOi }v_ +]4pqm"$Z?]nС|#Oы?I=c)^؅{ K/`z[ 7B Ct7S:Edt $@ !FFq qudO:@'&Gk?|\z_ơO7s3z De?WߩYa rx 9{[n\PNLSq.2i%U.|/p]4@X t/U@?yGz-_ ,*ܷ>zzMb~ #G>ab9W^Oڈf89~~/ X,rIN+yZJelPb}G"^G XFϐwzJHg&i]j'nnR{| RymrDӡϡٍKi*SinT,/P&[DPtʗ(ezyWM.u7߅:?ӆ9Te3tE~߶0ھrqcSNEXV+%&eg`YsN/lj[މs{ +uR ~S ptG *J!So}?}^$՘V:ls՜9(']9=/G'Q/1Cއ wG_PJYj.W~JZ纂|ȇ~.G %FL<Х~HK 辉t L ^̹!,\0X0\Ќ1<xdépZ>,ȳU7j#C%E#fMh:oΐvMƺQn6H޺hZ5A$*1&ޣԻZd}kn "BD.;Eģ]LS$U]eX~wl^\4L<ځ$쎬GansGF=zݼxCG <-h+UTGGv_TNGzsr6Ω4N˙8ߪí:ڍvsؙvït"cαG`ۺ"AW~o4k6JHxaׄD47Pqk⪝ +X>YΎsk\9AM /M(MpĿ|討G)GG[9!eOO`=*$ͫu8oOMs.?Xm>ߛݯreH/) 9=I m(qD g fc'ڮN=*jp/OK +wΐ~ ?q9B#㼃c'8]/ƙgsy񗽧ޙ<n. I<=s@^<ǟxٿ<#1w$yc]?<>3|Ob@^$'>]k*q?oi֛OJ +"s@ÈRs BƷy9!!ԉi8|}8,G@u˧9FOp +Yx?tAZP4-Е &x23ٟ,.Fy8N<4Z, 7vw2PV 򰊞-|Ryhx,H:MҍVyeA>X>Az:WN^h?" h&CgFqCKWZ6_tz:Kn8nOxWz~seꧽQax脔!Tq oqsADlSi\^rRZvS#pLޓ?9~cr~Mn +~* <'6tlGZr?hMMnґ38+>Dl Y`(}8~>[n~/T}7}Pᇸ!!#vfM}peͳ]&\&M&&$ %p h=M?pB#F)fr#yMnйfĆ7KO^EqͣaÑɔ.l.EMT nNl&^/~J͢ͻZJVq 74[61cwC `W9"g59g6zFF X`a/ pVnF.q*/.;(CEoιMYl#? ?ucꖘy&^rô:%e}PoS߾1ʴ_-3%b= +ĊY׳TgoU;;eo˓ߠ .n2+Vu18ޤf Oɐ7Ilcק1pư ~[;GD\ +CTG*7Q}xQQ.J3طMw۬pn7̔:pT⢼, 9RT +vM_G 1omaT`|bAOo([1,LEwOsxe +<:1` 3/oPQ 4$A~Swev|oSwȧȧRy+ƾ3 |ꇮSPo0O-_?(<~>{|:RER/Od:Xiٻke+>U+sWGTLV+C:EGQ]g]Uv>3(ςp2βFeП1_)r/U)炼Tx$8KNǤy_b25k&Zm*@k0])4$Z(.M u^B]+L:'& O-BZ*X-H/}I@{\E,ܫ*#^$!h^QN>qV}:=W{;nv{WAJz9Q>6\6/c˹iS4xL"={RN VStsZ[ lSw&WA+e)fro6 =~he'7^mU+S~+9~kaJ(2'Z O, Aufg; +Mb4S+:>XG} XG)iIц U:6@ylrzEΖn-B[K◦:>a\ Z>.t]n&$G;!V*XEUL m?c>Q;_*Iyk'˱,²G,keYcB~l o2M|+ְTv L{lIsJ\[qᬚ>>4 ++&yCmf0 KtIdN9[b[t;1mf0s/;^rQ%h+~:5qUGM]v{vE$ 'SY"k=kK7U^)Կxmj5\5;~\ډ/ˢXD*L\ *,)oԀ+e@=)d9ḐA'~j7D'긱8 b..R}p,,pYvATR3OtEDgDUe1Kt}u2ɼ,(i}C]%u9쯅[W\~Re^9%_u]M3x. ]' H!H%H]ԩO0AL 豙GIwD䧙'Dsa$t ZH+ӫVmM1c]l߾L7c%/tC̸+Ƨټ+ <~BU,V]1nvn>l+KvE[ɮheWT$NZmcܔ5{JzǕ—=e7C<\mz[Tr_{UT*gкTqfqC!E:ɑ4Zc[qKp5n{{~@⒋7 +NU:i챝~V$ x6>G4I o1rA\#!gs:5c$U +-H%i, G ̘p:,ZpVPyKSnÓxdQI(Ӕy?nGc걎,>:5?NGi|N#*%YbKXѝV%Y?[sLNz.*%GY'~:9ŋ Ć40p´$WU=0i>UL䊊:D%޹Fb%͡54byS5*T6vV})}\ANmCf00M +$u2l1n $r+n=:0U%硞ՃzsL!I{41~LeLR7DY"!AΈr*/_%[ҏ y qa_;5à2 w +3g gOyvϖ Z, yKAT|O<GeuyR';jqC "՜572TQuD]hڐ.'d4]NpE$C147dmsbr`߆$diToa* S];$ YP +ηP;Rc`<s,y=^2.}L\zz5OL. n2 FTr:;_%a5WgZV +2R}<󰨔uߟg k7 fBA:˃JquD!4I >ZC2juם *O綤 c} eF&qY7u6}KxVYpvux"%Tl:1R#UЅj2QYT #|b4^̬ITj(8nj5y4&ة:BдtkU%u]:&y:Z|&jkoR.{BG ҔÙ8n# B45{:_ʶd7uɹ$U6Rĩ0l&bzзHc ſNyR;[Lx"U6̤X[CVAs8+g>KgeV)~H58;uuسncoGm9kZZ1?bMoE!<ܽ芷{C%IFK{8_Hӫ&J#q AE`/{wκ r8\+e>Hpi^i6GUt>\m\B ]=Asz$4]k\U"GOX:"7JS5*_G`+V*H 5" }fK*_EiN*\NX=Bc6Yl1KUw8я`5 DۥB6 h"W"%_~@ w%[Gpd\G>yU!glKKPp ֦6\G˵663=ܗ +Yh:ɛ-k[#> 4SA_2'gkcgС !h?|UT~ԥwKq09YpjDwd &D@ý4 O{v|QBJ6a;wq<f:h9MD_F̨{gꐊڌv}p:Fo>6Xd%b-8gFGi?7ͼ>8ͣ(V3}1}]Opڢ:tI[jEoouQu +uԆ;fDf3hch"۝;ap,_. K89j*2ΉZBmk}ooOon|oFyO<}ϩ?EYa]U'FSYɛ*?U OY,z?e} -_pqjC&"gK]-F]քSQq6yy\:BA{4mݴ)p t31겮UޡsOUKVNR_ݷ97X@x flT*MSI}N~h΢dO>XA+[x^CZ*WeL Jw6OABR~B`hzկ{\h%#a [ӑ*m 5[}~y%^iY iB1G C ߢC{a B|w1B4(*`zدayxI3[cZAD1AyC 9^do +!2gh&ڝBgݿ"u*4&Nz΢\! [67#.#8AW2kK\j+DBUCD`[t-3 +#!|'oɧ&u5_)SXCI0j7jPCU]10ʺg2yr.PGQw] ȴRa‘h:&>\RE'?89Hsa@\['h-FJݎ<|yvoy~0$k,z5 L ?xi_ݥz&}`p2" \{i_פp*P=7b[a}ri1R{Ń$}5Ccl3OAm$HSav"߿I9'-%oQ jNzds̉vγ.!-/nqF&ʭbO DD%8 2,tۨۤFvq`JYDp<<"YY}QKi 6JW𠂛P%1F?Rifѳ & C=r*[Fa1>I 6t&wS g`JN!8,C`+;ALDLk]_hIċR;4+5]wYtTT +9\$7j/V Q +^&ɦ_dvЏ;&ٜƧF+ʽasABT ߮W%ߗ{ ׽w{k]NV:PkB;I6I'SB ֦WԘ^zMZSw^D 3Ȧw 1߷]w SS GͽsVҫ %"G%. +&M pYj¼ݠPfszvFbL5>5' +ݬ9c*_/%+z9}u{]M:`oYjE{D +n>NxsWy+rDm>+w{+NxmA uVn!ϖt/h֢@vQwa+* 3V%.38DZfӍf%P]YuP%rYXFtgzj^edMK%x/0c oTBB:/K:7js8`y=!B"}"?w 0TҩKj {JdS<\s˜mnׄ|ԚnRoma)'i4fxloaz~LL:i +Fҏ ]B;Ό|K6}Kɭe60^Cq*Ҿ)fhXw lA.n0!3n̜Y$p0`)y,R$r 1@ r q cGXIr %OZlFHu Z:RK΢gfFJ̯#&d":EK Sm>;Wp8JAmK;+@6kfEs ^nYS.[53rCۿ,삛V3wF4 N1~pϨxD`?hS 4C_bz_KIi+q⻨^pbox!lR %@e[J@vB=8 `iDNnP`͠(qf8 tjǜAxJll{Wq⌵gxߋ D 76\'0tR)[?^",ڤa 6iSmx:rBLgJwvs }ռvs;xߜe3!jBoϸosk+fk 6?ǾC>åDi)-r΢"{'7Ϩb9 kt 3p 1!F6}g|,~ ھĕtʞŽQGkRI:fPlU}UZxAzCbV2,'."0^>SL8KUTɺ;<~'.YBbnD͗s^f[ Oqղu ri! /7VaA1{4ir\7C+'0aPJ d*Ͼrc\pEiZj.w3̥Dd&]bBǙ ;Sg0\cD4/"jm:|岆-#śc@oI̋$AhqCse$ߕb{$޷=c'o +f0SX eho4ܕ+Խ:KfR'~Ŕ%SVr,*tN\,mRb tD6P*f}qQ^b~Υ.ǟ]M!>v-BdNqD}`|r:x@{1!}H}x2/o h3  {>W4fC-}--!zw,@l!z}m=hCF]`}r:ktރyD%zǯ {= i"ڃv8ɈhpŞ$uUVNj=?h>&>2yFX Wfg$!Wuj{;Nn +1S*)Em!<5d=Vdęĉ/k+YWiݱ= }h]`F="4U"aV)v5P4(1*5Z%FoٽO|޷!sIGu] *bҸŪp*IJt@Tgn$]aՠVw,J-.x׷WyG(.}~ f_jqRt;ŎkdgxA.4ch7WZA`7Pŝatj\E,o0i=jŨ+uϨ`XGT66nw,h31pPOyw-)߈ i@kק:bBB3S.'X# 0ۦ:}ڤʫ <Σ&KD+fD@[&nVy;N۹;iPS(,F#g +ƾ-6a{U>PŪ>] blW̌Dzžz=UzJ2u}zi2@'̚#g3?z29d wGݹ 8WpV\}a;;;-,R<ao9;tQ6͍()x"NӋC?0'<^gLkilč6M:+5k?3y[svcS {KFZmYrPZmA:ި1`- Qy +85]_}jC]?Ǟaj>8jۈZbIkō@)AOkvؖ,O3HƮZ7b=/rQQa_)(l5h?f3z5f5`a: h+͑^m6 (Qk?c(E[B:Mf:YagF+H\gGqF䌽#LGyH.2LP憰Bb6S'*׎U>0. !vƽ˻(ډP;y>u j_b`Z=Q'4l]rSƨ:s=(~é"5!;BG/up* 'X +1^ +Y +N*ǻX +UX +LP{5iuN_#-B+0 "+ܛ{Qޛ`^ZW5pg-5Cc}kRb1&NA a~,etub_ +\ȮIPlx?c$B+{Dc7v @P5 '_&B:Y m};H퀂"6h1FC? +wFAe[PY;\TxJ;Em(@\,(#U*J ?xp6JAQEə|E0 ^)s?8#Q@5X}\qd+n*_N1{sMa߇nWB^I 9'k*8h +4A;%CJ?&ɼ`k>S/^A kz8p@֑l ~Є_? +ǦTa v ~'q~ًő6e.L >i{wg"?Uƣ?ǀ]O3S|&{ ~n6|f**׏ps=JiϮepE2e.'i*MKVaZŽvnqt/'hjey4~HN P5_.U׬we:±w{F g245uВ#bCla lf?X7xw&c^E"ѯ<*o!" Qnmdo8ww @iK,VX7st 97N]"dpD;Ecދo8Wի84…A^zP;CZ9Ef=vb4 9ͽ], +ڦzDI8I]hivi {jZ!6,s\/M謀\{Kr"yꚮȿ\\m4B w"!P Vc0~ +%1(xЍe|Du]sh ~r >,T4k(TGD7Z#cGmY&0~7MܚKD[?Fxjc>4!ecObka' ۍS ^y%T4;]l_-6{ $U](!n9j#'\mPNAL?:aɚˁmjo~M^'  H@C]lj8M'TfJ9e;ON]kS)ȶCZ#m 5<^IȊ5Yh[~#Al^ƵH\#pz \UBί:?~^i<ܮe7ޭat0Vˮ٥ O-An: to|La%6T_AlgYflӑSB"Lb !O BlhЂHrp׉AxB:1(P8m.31vBb*/FXaq \jh O2 #c`7j'̈0hbҷ:[;Ld4lR7ޱ1n0r:Y1UdOe9Hjr]9^p@mڻ@g$, v" n(`qV+E%>} NΗ4̐) ["b!#5_{}jU%|M oJv%@%H>~\,&7;f(>Oo]xyn 'D0$%Og6+v !OɌ`Vu/wvGخI!;]LG9,EgP06@>H˵>eGA3\jPgca{MDa1c!+#˶bDb;Udr^c#;U&:LG#?DJ(mg>y?56[6E94Zzvl*^p<,E^鵜y':bF3Xv-yLD +eZ;Ue]2; Ss2<-7}W tl/4 zZzlVhѽ'%1 Y>fglA9σMeKOժJ=8 HCW@"&}bO:H|ۥ"-">bՇVIP^ q.T`)/K"u1֢VxQy! }G8=z>6 R>W}\=W6 +q+|F0 I +GKR~vvKEDuO,U %U\ۀ$|46đ–0$ xxZ]e؎s.E_by?:\:H2z, + + | kM H(E!#>3oܓ$.W΍scJ(m3fBxmͨ+\`F)!3.C+ޯvx%>&X633ęHA {Lrk ?<$sPL!zv;,5/s^ 0(0o Ļ$3p gR ]b9%ͷ IAZ.v&_7cx8d99]`3qF VW$ +&d +ͩ3%J=aoZr {R$4{L >u|I+9?cueImطo 74HSfs 2`E/)~`kVIo(y$ƞ)dJHW +86gW/kp֙ҭ$Ⱦׅ/uzI7^\Rb +H1 UB9"HDe *iGѷXa]HK$,2t:1qf޸c`.fȏ=;)D1rS]ˍ$B)azehsī}e$M2w܁4OtxB4㻎f,⳥yXh *uPz5Bth\e<4m,yk^ "Zr%f܎cP!"?x23iﳊGA,DuY'YSk~1W +Os6G5=SU:^OR  ӌ@Ѭ7@@ P&)N.v?d5JLy =o{{zJ,ڭC'@"پ`oS64`9"*uZƍ9 Sϸߵ섵}l既DEwN|=aYc3UX|൦zXu٘LE::KnO40h+,y`(* + Ď?Q67!l=moDa"dNݖqWܹf˂nDj1ytda˂.$V׆Zl,Y -Y~4AsF|gH3*a~,>9%0@@9ܐ)$^1HgZj]EȆu=OgeuC CvM2r\<s)Q=:TA5Qv{A{̀w&ص*"|f2nE3Vt&^]nE՚TbA"R!C>[s>*5 +Hw΢$7DA\>(TTcRey +{7 N@4arn\hP.v +ʥ&e$ȵda[yCէ227ټjll'F%J,tSLfH9׉S=UZ`ZFm.Nrð%-g@S^upo܆I({uR> n PSVFaY:+d$Uek:iP踃Jqm0fҬ&Z*"[U48]A%ԝ;֋Oa^=?g;]<iD0 +3}vT.NkgNTe%4U^`t32qr@&*8)s:^sVJktXHL,\żâOթn=Υ'y?=ew +tZUW,hN >i$_^l\;23ﻲ ¤\YDC0/AA&[޽~ W"&aR!\8|k5~De^4?IxFDz WzT}YrQ-W2Qiv'y`x4^E[RBz^m+ʜP'bשiA}hw#£e8Č}iM•wTs>YSeW%n^1]P+ԑp4חHtsB@{5# -n4gA; F%=\:GMeҨVOJYU4$ S4Y,.n3 7U9s!aS3hSl탍DϿ,e^@xO9q+4}h"KHV]o6*XL$ByLR,3TGj혖#@?mcIm"5o +,O ,)XInvE68p:HٞqC/(I6M9e,B žSxy!WV󳁰aJ?.gm.8F!婹n/Ųj mLAgeס!@I %[r*.W록 b”)^aw~)7[:7M< CRsbzJ + yNy#qs n U,*D:mv)Fy@-*/tgyA+= Ǝ2 652)=w{7!-D &pQK$\%@_Yhf wqF㬈< 2sqAd"'&q6(dה~Bv/<5%pU") o30XsO?+}pBNo27B\- QMw(Z/jOmk + }H\tn|2,νplb^03Bm/JYG{3/59kȍ)Vn}SՏqx0;1I/(72,> JጩrPX`MR8IVCù/4[L~` @2XO\M܆w&ro/Mz]%~Rz +ũrT›+)Yyۯe3HStp@%^a6qb TI?#6>*SHTf /d{U>f14f)g1j(_9)Gs~~U% IAYjs^Ю{ /bWU4w/G;ZV-Xxx_WwdeM _'Q:?ZfZ' ֙%aYADn9 ]IZDž]K#1/~eyP̝WA:2y%rg#*Mp<`qi෎ 4ZZIn4N' +]"dg`|-',^#*[輚uCg9dG +3QA]@wFZ{7 LվoAܨ\VpX[8pXUê\[ xgz`w%ٳ̵$T C}uwߖ%@Ļ.Q;O{UvS w}@^q e5;W{#idL,-=\е$ѝ +9qlz]76(\KJrߓ%s& ʊF+¢ʲn,lsܼp=IGh1T&K>b ZH§%!ă+RM +بdG,ШwaG]kcl0.ZjuђÊP-~)Y֦[ybzđ] ֠]5 A'ЗfeVύT@uD-ZޠDg5IՇX +V/Lɖ ǩ${HWkPy<)?~nJ,qn+X,Mԧ%-)cUkJr5<:`9S/xY)!}.#_i_A=7uZ[Qu"ɹL vN FiWp +`VL*Fi/^tR1yJ +2z%o"%bToǸ[D-V1fN>$^nNFS[3:a܍`oDqNUpkY +b͝+WQ"8IխH$fD =1F-\^H"d\C" +G76Ńsk\DJK._Mٙ5l7a&XRJ1g:.0JXR&\,uuF \oDKm\M> RG$៊43Ϳ&ϮNMwK?s~nobZoN6'Ve;EY i!̇j]9`vtju0=[ VINoqsG͞i&QlGӉgrfOKs +-Q:,؎/>ds=p erx$vVigGw\Ee"@͏#b!'Α~>nfx5˃vߌSeg(L3#{ 'Ja53jVa3{ }* oA9A4p(s r4'&nbPYry D)E=-.3h$KdGQ'vY~K1XUd i#NRx*fMIWa2 +0 v]xݣ|nGɥP?v#M?x1i1kFc݄Ơl]YZ'{Up0:UM^=kt>D!LRnKS5Xi`9.=z1Dom^l'PMy: U)?=DOIn颊EWlZ#n7WЊ'7:NXuj&}`UP}p!ٳGe%hrVv(}%Ԥ߃)_p3ܻTϖ4A,j;TFկU#BcJx1ݼ$:*Ҥ;DHpzPhK- Sw1)^c`m1ҔvHcA \BMљfj!#$2;N7tA%[v: oa#xNs0kϽ\-.%N"wW{(7 H:סu(9S2~*yk]z;Yɇ-MB^{mǷ)HK/Мw^2K1c&3}іzP=z $ Eio4'P)j9L&4nhS\c`HƾtkRk^ +_8^뺯˪3=^ 1uP_vz y=uWqkigq(p P7X}UdAkVDwWU@y/ux|A02SNh g|6uޢ{CV{%%Q +]4©[ߗ`gpr#}6Tۑh/wȀQ+F ֠xjZt$Ҧh8,*'L~# S@zrSFpq@ŠtGIBi'~ZRv/1Ld+o+|8&mB)y .g{?7("7:۩kPJ!~ CY{&\|anD@iA6 cl@))3͈O9)XW bEV=+c8n(+^%Qa&&sn^xYA%ar ĦQGPPJ٢bT)%f_gYbE5}#]fy5[XS.M"ЫN*xupfAfvyFWOY#e/!>zU.Pm^Qkbxڔ#d"&vG&]תtKT<ܪbp96 <L:LY^V>oܱCutt4\Cu OŠC,={(*>Lv`&XP,,olW^E4b'狒Fn! 8v,˱ZC2ѹTcȟP]JuG9u4A^Dޛ n6h=ayE~ů)8Lr;xwVF벪`0ɷכ&'LBLfD2sLw|?)Jen'x)uYn0ә},@˹yNQaYIt'MnaZGkޅYBR깈Q靮c=I~YWUSc =4;mBָ8%YTcHc '~pX;uRGp7ݓb +7S<1dȲΑR❆e*T(%EWY'( BP3 +h?NA +)\]YUsMk98%q.BqT8$kVrP}Pxي'!#8`4wޠm^+muek&&)28)% A{;`䭺AN" juuu̺A&ND -ڑ]f-[8P,(ѬAUE[SV$'.ک--W&X$ƒsC, cz(3lܣdU↗D3 BΧMj_m.pb[`ů<Š@JY/K _nB?7LŀO%T;Ou#; h+[zl v93" &q5:W>9qHj#0#g<,w`I Z\aaֵkDs-3M "ڑܙ.LEfAQ&I`RqcIUx |ȁ+r$pVB*rYC;k_ÇrHz0=ٱ:n.DpSs k#$ih*g`YIK +mFh#Aӱac bm#娛kbѠX\\\D=kBUV6>V\r7u8\ Y +%NrS^"Y >`%kI8s}q0N'&*g_ߘj)ܧlg`{ E5?KO;YG%gKqP3y]Pz}\NԐ% QSoRu]=`&Ay zEY󺧅T(oh?V"(Z})/tBEuϬ(h Ye8"2w#OT#ijHMnqG7j~}Xp?Hn^qӲcW6 @s%Uo"->[l<2+r}{30K6XOXDgαMVv.xSjӓK؋ q? P/!Ż}QBSDf/<p<5cpDdA+hgB].Ɖunx` 8$F̿1K,B5],}:\yToywWm=T$REmJR7.Ǖl,.Wv +︾U몍v1uuɺ6tm_)̄kZe'z=?cucDz/%>Ѭ󐣼Yr^RdquSNפ}*}v[a#y((uݿƆ\G]Dg΋[32Qߟs(r(2YΏ\]|W).ޠ\%:uϺv(Z]+yN,A#j\rg ~%6Ƀutz9D#BhDF|U:ZZ$pb_k_rxh~Y,p+dUÇg9Vc,@dx8"҄МȠi ˊ12 QC--sCMwyqy'|@>ZYbئyE&7 +;9G5(&Ts^45+UnNIHd[:dQPcFj=+>Bs]O)ZE65+%:gbo@Q92w[˟VPsT]inSRp=يv8F0\b~ +fhx+*ɓ6r2Pf'~/D+\G RJ,rwd1JԦ}6CF-猃7ŒP + > OeOx VhQ\Wy\#zWHJ/V;ҟ<'K3hQGtŎO:#E.=4 tK d0ՉNd_-77z97}6Y+}^yBvgeXz?Cdz♗L H5Bs#1!j>տAukM :12?ĵQU RTs URml>;Ӻ-:ZhVn j:Iy02uĞf;@P;8ɬ;ha xN6]gF\)EIM s~ĵMIxzL0J˜7okYS3;b]x?ӠWhPj/,r*\CE) +DOȪ_al؞9:fމsps:\DaD?ws'UM?1B%7!w. 9u!S<:URZ0ْHM7 ⤞ hX<{#i6-m{Ή6:7o(e3DeFx<O.i0:0;{f4?p>iTp.;R?s'Ü~ldϏU߈9t9JJOWNQiyhτ)0k @S̾y["cܧ8a7񤻺t8e #0}BplDy +5VAuhp5.]'piv6:Wpe uPt`Dcd|p!@1>Ur^6yaDJl_1–$ +c=< UX~ Rw+OJ +kfLȝɑhz os;߾)4@8J7 `! ߇ 8 l[8d\+Fn#KM?A^\?fjr_S4]wI5}4 d/ZO,?g8GX V@Ow5NP;O lH&2lwuwWeΜ@'|ћhV~rv HXss"8~/Dl_T\@щ!enF8'1tLg|q(LCU@:O3A}k3p/E( +NJ@:,7A^t[J:2ZhT~=z=<է6 ΃=bɑtA8iκ66՟Dh#cZ +(݋La.ˈ Rz= 0o VLZӋr8G YgGwcV{8gf]+$u#qټwؘ#GcS Mk }Aa9o֩:\Ŀ&}^3dY{O T=_Q0- ħňOd *=xCM!ъdpswa׭'=XʶcI|vEQ(Eu E[gS0F$ h΢: HsI<)ɥD| gAVܷ3<)%ʑMF(hi@ ,)Q_Jj΢Qsi\d&Y+6Cp|fN\39+ `@j:jAzKX*q9^_ FYR!bӒ{,rVC\')@NZDo;t3$G*hP;.Ej@xhVӒԬWEi# +&Z5h%U"a*}V) ՚9IeGERusTTӊ4^I$GrKE ڋK77D*4c7Ү 4&C (߄÷y*f؍s0!I-(!BL]jdƫi4&j[u= 6wFehLEL'FVc[B"% "EG(ELc+},kهic>nfGyw=.oL_=xL6:\3~0iS+Euy伄'&9h,fyƆ/,Ϟ5˚sꞧsyzSyz>=R8O/zw9iyyz*:Oy:;ȅQn}pGO0y {wS]W<\>X;> p$@>E 9Ct=9:kP|Nݗ݄Dk#ж$mOɉ:6٣#mpv+o6{0>\OJx:J[p *c]jΜI=:Y8 ԇD.nedzY=5wspN>Ƿ[䚙&zc\F#]Kqj)H +ڷfe"/鞞cl`#i<Ȏ:5@kk|"Uqb81t^b-aaL((>J_[(C#go:-q}:?V{R3@ +3MNM5"NөYxqsFaБpǿry2˓.蜆=݂=z aFJa%ّB( rde$\9j{tv::+_QqA?5EOy<.mSK7cG F[mX,n5.yu^#ݺZh. tǀ7 iЫ]Bڭu[G7|@eBLMMbt)>_Y?/+\Z.\RXFKZ(7xuh#i70BzT/~"ȧbX ͏[wb'PglIn8; +*mecOg/m/'> Q~Z O+nWpie'k0˄k,v!혉y1 xq=.5!X17nMK&ُ'NK[Xv%JW +k7U騍ig^.?_l&Ys&|p*G ]ɣ+WkV>#xt +ia*r [ʪb,{l-xϰ_Y;/*#:|$ivg5TV[}yrh* :ujٗvbp*=7b-¾4hJ4ř_ *_8_}:o4Q!9E1[ +FFL%{m5fbTx-|;|! _]7S@bkuu4g2Vf>,nFݨ" "(iv~Vb!r-D7{Q?2P@MP?֑ʉk*2m@q6|IS?ҡ~XA|I +ZcBUolU$"aj>NYVI2pQ.U*B_K,6.aARWd-; +}`+\A^Ji=Jso˸Yj>uWgku"<ɇh;jq'.27ojZCzPkC:*+a]B'xmjCNÖ  pY,`~ij<'߹H ).*!)'dxu0As|4DQЉ;%.$8eR thj]@ZT*5wWXľ?0e޺ag骼"BoEV{xبϩդ +H^=*8Yo|tdgʍm9Z|lQC|W'Cly}=kXl)f^lyɒM7굊 xe~KTU:;%:c7#Liusj3=w"L7{6;6,yc'LL(FGO084ᄏx'x N8qQgQAqIj +x#},Ax$38,5|zGb6r OyI\x ]wd.]nnvdVGUM# ْko9b'uZS u"rxRbOf>Q'$~ אXM؈%Kz@ؐԕ^^\Hodą7,V[;u39ƖI-Q"x7P/k7 -]af ,e&["BK$jpb`NTv } X)u}sH U_6-:)U(Yw'Mw/ Vqu[dn.q+uKdGPAwԺfh.u/%ýCu+:b;'u*%rV)JUʻSoD*-d#K%nQ#3K\:Qi1c͇C+ZWIT7禠Woz ˠu@VtW]t+u5 x}VL~QQjƨ_Ըm|D)>y/qAuK:֬jpDJj&m%P^B-ѿ}vQ];k9&4$}#+"H +Q0Aޟ;W`TCu.SMCTNR/*t + CRb{g"+TۋRfɬ-VwkpjS:T"ݓzBsIV>ɩR;tdr(6HH@=^iסG we6v$p;um`]z;wk WڷD2DtBBIX;F[qGH^4o!~i?PIVfz0/iٚ}~512e> 5ݿdG X9"'J1y)+PH.Bz S +Vp"|λ7F>@J%]9~6( xv;5)p)Xӆ.@']8|bã8eZD7UPN)'y,ƟOѐCR(<nT \2#E2")zQ`_3FSkBq7^#td`~;Uw睟{=%=i[=4t; kAEJlobY-\US}NF:=evQf6' Q +4ج.9@}=o}jSaAMƇ8݇Z+L))is~gs޼x0XU#:/[uM ܆k)eJ?酝-PXqwOKx@ B"6pЊ<8/Ԗ_GmEDm3a0 Y3>,#"nn:Go|x?R{r_!pjϺ3_p୶h-gpx돊 F k2 }3k?%I 8SdcV S^t W)F?.K1`74c:m]?_ D[e|V0@O6.Dmapa +7x5m^ +hp**۴[:ڪu0EDW|'92c"ʷ%Ut. Z'Y۶Hod*Hyf߾Bװt~n~;vŷf~6y`V{"k6$"YCGTʈy #x% 0Q).WSRg[NFbyCC"W7Xp}1|ʏ0[.]w^uD ?ba48^vǍ~":fn/c?3X@b+} ]9$?/uA^ʆQ_lG=D ظaˠ +C_- +><0J>ҡ tk +6-hO8;X +pH/k谕(:LH H؎ڞb<cɄe' ;m=6mGZ[;.DE&P*GCʬ %*?$i(۷w{ov+c.h30g~J*Z(@|OϑP(4d'CYX9IND®m1MG_5n-Xq֙ ĭTy(Oiv(O?5 =MG;5آjmI +]Gĉsd +E4&:$%p x+U + <*ƒE  +qf lsBM )܉l xzAbHkPsG)qiq- WF6J<4}ꐣ-@$3h+OփA]ih lǦ~dɗs4C{D=6~ŞupVL SIŗl^AGPx%S:&TD\g76)Mt,s-ҭX( +8J\(NCCزVvquc As@Kgu~q=u U6}?Zw ؋N'gǿȉ~֑EٱtS:ς>/&ë𻴭}v&ITuv3\C1GH `Ǜ\ٖ m7s-EWuBEr@ K}0ln!E2[7:CtyLH_S:YtuzpkM:G8vpt=86ԹGOw'dخqZ8A}N-_ܖrU^˹!bSjghigƻhҮKH^ YńҌ*]$P{eu!W5;ηфd1ZP ɮ1U5qL2|%*M?4J4=8X8y_1wkރ΂3"_=[Czo/pr=7(ɽ]mvF/^ןKц j!z>QyTtSSQ;S}PZ'{ \yzr:yo&ڽgOGBwm{ߔ>qK wS۩S}=>3!ZM74Ďs'z_ +zߍeLWY3I#]2ۧN*Wm2P"/]/8Y 6Afik624黄$O7GL{AF.:'/.靦s)~ȣml vg8KHt 8Zn*?-/wIcP63~T|9xF@2 o7Y^hM_?dxAPBT!FU  `va7Y > ZチY j+M:ͫbQ8\X)HՂ\ +Y'H<l\[LKlխލ4U љsgӴS{bmajKյ ;z[iT9R]pې qE¥IvT/`ݧ;tFE)_KNƱX?0\Uf~mV% u֯*:ϿjžH x6%ATgRT7/'|R]QW$b>TWKuc>{]w'ya,p Z`SLjk X=XkcT`ፓWo7^ ҕ.͵Ppլi2'/+g4&y)[0|bnQ0|Ԃg C[&Ɵё'uo<:t4?Ayş\H^p.$Vjx.ʼn4+NYt""[xn;9l.<$޿zuF ps׈v6,5[ق"z:c/29=o*m_f>"1<(IOALq.iWs9WKo0_DWY@][i B(C T@12᪃65^ +*hɎh/Q[;ńsVI Y*ℌ[l(*C؅R**vɸA`Bǔv6@"xwSCA *&^pPn}x +TlW"" iYh>~߬u-2L Rܓ'Ҥ(4Px1xi5^2@`w(vz5eNڡ.*Z<k>Q\Ԕ=AˮQvJM ?)m/;Ln|MOeӭ04tk쵭H_`R.~!>D|uN3xt悫RqA.3[*=c @g+ % We2z1V>45-` +ӂd/tӂe[tljq[̵i6|o1ylN|‡tpI!<|IC?!l()F9+{!\%N8KŻED؄QDN\"#xNHd;F;P))(rG7*4%w[y׾.KS\M9TE~戧KQbvjv]Ź B^[郲l+4#Bu!DR >~e~-ƳUw3 fhܲs%)UiTRH(n!/AbC)MW +ʝXŝxCs;a'^" w%*w"G|40oUP\bO +J@9}¥ MDP|9>F1g &!w*zj ;p ۜ*1 9zo8PB˓â0d( Qxe&Sf +P$0'>NE} L+d*R+i +ׂ_"~+f;_7P6if~E)K +}1!3j~:4tu +bk\'? iiɵ\bKatw7 +q OBQ+_jcM֛m|pfq| -׊oQ͹-)Xj07 L!HI*\1 F9w$Z誁;s2Ls.$-&܊ie| w.mʷp[oqko1y-j[-%zA*arΝ&v,$hA!h]nٵm\hA\{o`n|O7!t lZwO"7ͧq$(R|:,Q#1< nEIR^ Ay$6ˣu$- ŧFg1zu-ύ1)߬iTD!;5$XB%*B&@sZO}X_rVf[Z{WQBoĞw1QĨg55o.)kSͺpʏ%?(h)?{aS'AlW}ѯ~zѯ_ +R>o^'b¡, M̳冑F8#b \8i=8[IKIe94/ٰu%mʿR^(/3enrCֺ-Y+?Gҹ%//6coJq10Z `a:;ޏIrSw]}:էK}էG} +|Jy5/?͔2ble? ~[A +b ; +d(2$QF{+www} +ܵ0F_Rf^e^d^c^b^a Sևg 3tXɤx ~T~[q߼^u/N^}Ō?+V;3YM͐tUUv05HGvMO'CEǓQrؕ|0C\v'M3d@c-O lO$zdp<$1K% @> ?{t?ٟ0'qoS^>AYvڻ0ybiO:ɯdOWGD!%O\icWmł]5/r)7ƌ5&bP4V\Jc6DxD{obW=>|V |yo89'hqkK{¾E\DU 8_*onä)G ;LytDN=Lvnj|Ұ=j~6|Oq|8#YKg<0cw3FpwmzU_!DZ_f@&[UE;p?8/.S|EwEuqA0kMa3 C. 7G4Y3|լ~Y|{@~Y.7_:vAѭz,}iۥH[ Ie?{t$dor{a=XExEN +jOv|nU:v#'Bʻ!dԗimD#$B5bˉ\T>2IlItIr+^R n rl.BSL>x_y`C+埊!!8gy~ͅr %#g eWw{w[%.E#f5_$.W 5l7Vgj0G+kiɦ.jע(կ&.k8lwYp6IGVh"|ڲ08 +)/|}m6XZɗ`K",cx)K&ae69r+?? -^{ $1,7 ~m^P})\ah[ +]Y|p:~F>jU}$Ԅx~ &v"HFCE;zhhm<!Jdr:CZV;u79}w8W _pE}Ҩ/YE}5z7YC2LwRGQتCB\"4A@Ĉln˷eu RkЭ亇;7;*t'~!2wB4w}sI^uT>*_Nnӕv;GtԻ;$WOKe\J N"|Oy#@F8m %>O>Um@CzKN +? z |") +D/}u >ޒ +Ջ?t:"OTɣx "c#̗ࢉVok/\Oqͯn/)~r a_bp$ex; ` ͫ%$tz Sэٍ*W~O7>ݫ^!g >g߮T*eYN?V X?{ĉ?4rzݫ9%?!&0l4'Ie]Szt>63^{iPIHϊWլ2r/"#|-9Rg1(*DZa9d(ؕ3#GBMOb7m^h |ǜ؁nJ+BE>rJ/KDN/`0g?'!e1)TQr[[7-aHzx]?Pl<@XCV+%|ʬ=d}@)~{Sb6|g}ːSgԺe_J?X@soN7;X} 8X:,/;X^M<;ҠJAl JE"3 cNaԗ y.'>v Yh YBuкdT::Ry#ƞYy!cT6ڢ59׌BMg:`$ipQ)Iva}it˂ߤc#ݡjqH` u>xW1| g\D۵D^pnVpJg;_67W;k/M*K93y[!(KfiLN0hd* դw"="%jQڔܑ%ÁV]~WhRҬsV })|Ϙ&%l%!|Hڿ+dDS}!R-P,E!u,pGȠ _`Or@l{2wtb8Nud(Š8[ hS;;'38^GOz!Ӭ GLY/ ^ꔥ+c1! bbPП;ޢ!qsi~UUB1v۞ȋdR?kB>i$z?9%}JYo!b(K;aUbl~7Hde Ta5vB.%E>d;>G'/xEt98h>\ o4g""T?xPB\Ic._-_Ŝ6 /h7ĿdPgȕ_p<{\{WE4uD7UR^8?G-Fb]0E'MmZ5# +!TY_nD&b+:8myȨFeXS^7I횰GpzKE#{ ҺZԳ,K +P&xpS5y[V<:R&);7fbF_ZW>3>ҿ^FȜS%[fn+ †AwhӐ4)G F4PMħ$MQxըEV䤸a]n '7;ްɆ'rŪgyǕHWԣVBPԁNTފ5ڈ:jtA + bDOهI vF \g>qd0^cbkb7{HP'ѳ^. 1bֱ4vl7wAnzl& =63|!%q0]FnH9D@) }nBȁ]mGngR;X-*r'@5ER^ mVfw:QNСK=wNTVc%zlWU7{`M":͋| x;38PSDpuKBCXߐK?ZNdNq+p%m@j"1 易ȿ GP.i"!g؝<}UA=L)"TFu"} a +<Y)CY=ПÃPWz-*M,鈍/]Ϣ|/bn/ +AE=Ȧ:o\Ll[^dwFkzHcH%XO2]"f9G_i똢{B塭ȿ~UYt%TO LV".Hȑbaa@zyo*mf:"ة B#\_| 4_gWdcw Dr t+:)ba{|F_Jc*"5h[nVG >c%jl ⷰb) E)\?e? yC5WE}ky\ +}ʷAsH[x|gٵ㷟U I5ﵵ&Qmg)w?uaYtjBFIGixRtsV+#y-%+仴SWQ=[))[GW[?*7Kft$ҪwVq\+F^^O8%B-"p@ @ gLI !eG<$Qp4 N$_zJ8!,[iZ i2[-b`vrL> |&YeaaitQ k*kSLmnax#F "K Ts:ZnNޏ6TѲ,ߣ&ǵbՋb,.ЦnߌDVh7λdsn "K +"49'xCP4؅2هh` Yn!l&DnāP;"9pKDG"q(AH=qU"8f䏒J%CrЄfI<_EӺr^''[Ս3iA&7ّ宷G𶁨bfUo +q do'"#NѬ +S>UxGtbݬNЋf5Ƭ7fN=z ߵN_ كg^,&W4FޚQ- x"vk筳Zmv~h \ral(A~7' Ў3*9Ҕa㐒A[; @10;V&QVztlP<톹mAEe>B'HpH0}C'' '']]N=Tz(zJ=Cqr!{kĆPl9Dc;gwC3,ih ?W,&p(7٨muOF-7vm.2srhn`AnkԹ5qڱ&э fk>m&l= #iifY;}JavsS%m#`3)pUMR"7P+lhlDk9ݵ&HOߴL/윑w(pFh10Bб[" /.xm21id 0k# p]HfxOj|񺀓&ފUC'E KJFRh#$g&#Z]<=.]êBWpJ4k;m5F;0D'Kz^k5f^-)"E^E/ G56;$y9Yٟ.Lo%`^@B]ϋXaylQDvF2M5q1~wF/LGPS"j   .% pzQ\יas=MfmQR#vhb~1ؓjO*vf(۹nzsȹ%sO81t=Cg 1fֽǾ41Ӿ|_ѹσ`nyd0|Q}}:Jru ]7ї c?:P(g-0J/?is1}fcȧOMn~^X`2'&KS$H{D*!t5Ny0=D6<"49)Uࠎ. .fS~$5ƪ65a0E*LAJ3sd^Ydž{olׯk._WwK4'[p݃nNQ!G-{fpo 5qc)vL3 KY^~_lk);|Dp?*cC_BU aL` =?D·_m_c8lmX;{\dr +Ia5H0iZS  ^&k$7fݩY4 h.<9vX cק h T5Lv;,v `'KlYnuli^]=+xC:]CmNNZt\*V %="vI&p|S@*1M*H5d.!כ}"8aն$\!ܪ#ˁ+NsJ@We˺RސTNϰE"+BLwY%_Db+sֲ.fM"`zîrɮgA;{ʈn4?Ic1|%8C,8 ΓlfUZ[}|1:N6aǣםuy80dKOOFF;Y\((RPs`&4=l3/0yw "$n-jD ’wxSXX@f8=&sMˠUKr4!CmN +7f]L)&mIRDoi 1;]"4Q㧷s>6nЫMe̥fHL>Z(Oh<n(MzMڍ#^lbϊNq +C`7sqLOH+f_,>9"jk4_Aj kSr5@e*#^BdU&8Adޥ 6v(~WC`q\hV! `(D}Ȁ6){,;K(zh0&nRq>@H_+IxERwcX3DuR%2%](FUFGvPYFKj|)cx= ш+I!$@79(0BX! +t*NdLz.Q*WC-$jN]#Ehw"e Gb0Sm5g=ȤFI#*`8z)gMh]eQ +֛ק_{}ss}kV:zSS-"%]`מ92nzvV 5|JvHe%x4q7Gu ڍBTh֦ʭ"@Wy"O]^%B; _\n<e3ڇPDwˡfUAYvGBϚW]+>_2N^fz` =]V +řjﷴlsk]RO24zBU5d\yzZ[%M^Ws8RЃE(0PPԉ 3:QX@ס,B͎oe"_HzQ#: :/OH5,fWJ(q,V 5^ +WZ%Yx7y\c@]B CG,Aٟ!LՠDŽ3#Y'`q%&΢XYWIx޷u%F(w(@ٓ5WC^`v#k r0ڈg5e@?y"\X s7 R yQ&KG/B`h\| +~{v<؋u|=&saNDȶ.T)UAib"j3:P7!z*D'E6Ni8ux̄uќZPo(d:")9-E|#m#FqOco ^T:kv?ƑA1 J&$:U7|1i[nC!^'v3NHE؈ݍ-jvVgP*T48 5Qz9ld)s%n#9U{J0jS._#%[BV5Ĕ%fQqIwϣYV7])*Bq$8B,mԣnq7|4yktSI: --Wk͛]s7wtDCfƚ3y?-܋{b; kmuɯ MٌOuKtmrk ѵVl+µ{XMQnӄʾ<so31OYYv5_K ךN>2C=.j'LL;_&{ Sf˫8_|~_`?J.W3p+~#ŃWܖf/y"'J }R>{S&&{p;}>OVG?J>'q}ݛOPR|;3S_ӿ*!I;yxvI?9T+z2C/g945~|&5s4s5jyҽhM5s>m_> +Pֲؗ&ްạE[Z_.Pͮ |⪫3OSןM=|&0a缬qx,E1N.&NA5E/Nr\UgD|4spjOl4S#F5zDh:t~Wn~3f-QZwVnW a=2 vW}mL1@w &Bwp֑K4Pf$kx])[ݭ뜯1 ̳ȳT#1ٿ8&7c'Zfbg艿خpPql[4fYh6npWy:I/>&2sh(MdYƉEe]x\7GqqcǴ.غtEv2\ 0? 䉚Se0@2SDXB8c;.!{ 9:[F MŃS!us &3hۉ՝v]Y͂o{BY&dԾ|R'#q9й5 =߻e=8Vvmyw3X },.Ty+5-FP٤Dsw탓MTr{ +J_`w`=Vk3 =+ȺzT55B xDzqXW:-kmҚR>Rwq $QƱM:ʉx<ǩS81lbplq2wN cJ-_bq&~Fzg>lhC#y&M4 8wUA=. 42y?9L e%K?O{+gv}$%1sA_~1H>*H^>R{RokKKg4NѧzEANB=O൳ҭxܾ'Ԧ>q5#h1RMqV`G0d+3\^2s/[v|3z؁o} gx7'7cO>$/O6~f?=7m՛>߯ϊ1 '={UiW*q6wof][21)]vs׿cKDz!Uņ^C{20E7(CodJ{ze"B7nH29ס#&4d?L~?uZ2oNXFaYciA~6oSp\㤃/ s}kܷڴ}36Upls\񧼁*$Y!ڏee)<ƫsƗ7n󳢰A\_0,jnb_J(OUBmyUW@v%[JbhZKt&N.o_Ny4O@X,"=X$y3 *ʥC+Z 5◦yN+op]_~TOtKspJI:7\gg/KsvrUAxu0z vJ?k+aut;_k +Ăkjf8PR[7"]m4" nr;xxs +Fw9UtݥeipT7dDvvsk* ,:U*^CVL1adCy%3ϧզ s(R +A :7dT2K +`z&AsUT`6s+;5Myi^X=ԳOtw' Ŀ Lnژ'>ş;(HY )6\(BE^%F^NcHZ'ϥϣ!fg^ꨥ'OXnŏ g.b +}sB:U~b@b.KbmuMd?>>v-=lGy>5xq&ɧP]7Hn nw ;k$\8"ۋR +A?N$wmrO1ɓ=O|w[u.VTrEKg$ŗeF.;88|oEߔ%t"ʝy'8KF,`)Yap7.wr=(+q}W+.|I{f''vEs:W~(ׇ3H29Md~&Gy +Ɇ]/>NL?2¸Ń6@ =4yämpS#5+>db2x+o?I~"Y_&>Y}k +斾0|vɨrQʯ[b1˻k/}ws76AtomNۗ'Ѱo&$ӍtE@mt1]q*QG ~Yl{;fݳ{ݽI6a.vXTb@L"`ʆMd7* +qWfC`ػ ">miK+**X$%Azi9gݿX>!{ܙ3gΜ93sD->#:>IbRQ]qY:wcntTuZv_Ԍ߅jcΪAi|.@i˫>p _ kYD gg\bjT[tp/6i0}`1o/dSizAD! ^K_N;t(H"EӲ(H[Dž{}!XGbĸ$YLXy?NZOaiHw:7J͇>~L!s{ӺFT =} :Ӷ:`y:0Ӳv&j;Q X:瘥-bwQεzcN-m chX<36wbq<ӹl~~vʱt3 H[X65v&wCI!k 7)FEk# lلKxj]#a GjcQVg?jjjT@>@X={Lg9:ޅ>ۍuloVz̧KC1RcM+#%$TװwV /'DRIhl=2ºA^2 Gl@%}hZkQLg7V>\A%ƻ@tH3BU4őHh7j؇Ng) ȾZ»fQEE3aԙ"5PKY+U,%&FiXj{4V'zjQhr47 _G o0Od4oNOٺoWo@@9 +bE:7ao-ͼ3Q5=B# + $"u +B6M6L.X5C 13v`ͩ1G7S$k `5JV8hF}?9[wZW^H@6 liP/-FK_U9H` ;}ʐݐD +[3{.WG`@!kGaʦL*5lVj~of +|XO-τ _idA.fjv!-MЉѼ󩎯U0cnfGFd|U/8XN!AGMj1#C>tMȍGHd"[ae/.r}hΜ~)ȄfP!j=L=GS|3ENHz/lԍ_CBb8>(-Fx XJ*uQtHF5cA^BS<۠1_T1e&H3iTh+1cqq)#D@D]ۼHYMbG<sΟuE&x)vۄ!"_z?b){ѾXS˟IZWak~ֺ +鳑z^,GWڕyHU:ǕÛ ?e\CP5؅qJVc7d./AQZm Qf??M{6EyF˿塳7bx1?f13N9Ú~c_XczZf)2e<~,ǛcP"E6,1|TjmqxwpoVu\ )ʝEǙirֹ;W ?]2_ͣ%,,v"S9Ā;WB53wU-ݿz~!#}bЈEE-0{J@§S52Nk@jrtZa&1ڹx +Ü_Ijr,O..:Czrm3Iv})5몾 S;Aa/ڝ~b!B"a_tQӭ_Vke$*6PWhMd=b[?ű ;5Q5/ +LC*JS}D -ڷa)qBC۔=l⪾3n+E[#FWm~WmpGr>FCdHu8qEJ^D8%{:U%k#Z!9 R9ɧ$,[ oGb!߮؋+ۥf賟xmɐ䳜f,fC8hS~MڵY+\?)sō5:_ [xl;_K,LwNE5l^ HĊ ivH +MFK ӈkƁx ++> i$p=;}M809k:ĺ&bJ*/h!$m8TL)OY X-$hK05{}?-HS 8]{?W,Ϥzo?_q@bL;k5VWKE@ZsS-< Bq(|~˭ Ŋ`+#6@ eI W O n9+s9* WQڊ_*| ڙoIETsa :zv \q.JVv X>Cy7~m:_.6O982AϘs,+N6WuĂ%H}ks`:BiZnoFGD;q ek + 0+.Nɲ5 #}U}YfRL.{C7+? ZZUpv>ҴӸ2С,*(Ց=R3zA'J Ͱo’umZ\:agmNُy7_.y :}Fb[Es* ۷C!7E +,[eKCdߚa^Zu?,[Bu5y`tl݂>;h 룵 +XRٓhzAJ"r}$ +RT}CsFi{VCZ"J3|a\fʅ%@K{# +N3cC#"` YGw"+|<0`_}zC/VWl،bQNfOgp/W}ǭSWĵwZco7dMϺ B(Q)q废w-/+ȚL؏'lׂܠHY> 98Če dq~1U{R20c_:N-~{yqȉ3# mtɌ;rHAhfMPƢHDR~\͆ )P)ͽHw*i~L}P:( p:aT`YEr( M:l3W<$/OJ2Bؚ#:2% +U)9khsh/PJtCWڴ\Ppɔ'A2JKR |YRG[x a5D6FtuOG6n0҉IXCs( +%;PԎfi UY.]H",2?,h"wQPVFw$YleXyr7YtR[;`:}iRFIV5(FjkZ :E{yU4+?I P35je*!AD HtL04N+ęrB+!gheAfunf%Kd}$t^ZѨ}$w8Ua{Y7mUg^vErc5y.GlUJ ݛi!yl,n>:geMƗ4㾫z/G.SK!Oupn}['+IM+{hjZ WiJ.PNAKE\,M'P]O~p'936e4@2Sz@&0J0f?5p8F<-MeQɥtTK- :H+(dțg-/Pxtt*[ d;:&&סk+a0[̨jiK.Զ&JoG{*߄2{+8ʖ.x%W4|5ϡ|gF H5m\4 (PF'MY Ċ[ȴ)D!1M#5QJG%kB+In66h6d#]+\|ӫrFt`EmwadiqQqȵJu>}2}~co!Ʃhœ43!tF2YnCVS[\P;bbIR,j6X,YNʖdI+NKFrK jXa _O?cՀY>[x ЭY-Gʜף4ύ}O%Jkzp֗9љ|ʛB6::iɰJc ~yly?tE5<{w,<jl80mfb&zPRR.ʹ O$j/0 @w +d hr2+Ȱ>m*0:DнX*9uuGA\=@7*Z+w*,vqSrGI,wWSg2Ur{|<4Dx^/࢞mFj>qsr7E:B֚1?N!H7#u㹕'!/]%~تˏӂ#YaaҀ +"{p{s@ zSٲ{#=wv7F͇?|T rr$Wе%ZmUF;_"XKBcZhq Ӡ%R) K*KL$əDz(?_w#N0cK~?_N'zuV~>:SGJdixAڒq#zf +(Oh8>/΋IawBO1gAS-%;i"X:3Axޏ +8tNNHnk?OT3 q}k4< PZ(턎='ahK^vJvtH"I[C\:y΀( 5zt8z}Gk'Zh׸Eږ'ȧ%IzL4y^>vT i`*8  MhP3MhC:'MKZW35cL9D}Ff0 M?f('5I65<_gAy<۔9y<ޫh?`!|Ī+}@P,PɟH*b6T$āKOzp5nCnMk9i "ߜϋ^Czľ&{v#,#1UM69rBR$Q&!z_&zPe礮}wJӵoS&ԼbRiN +?I,^bxHByu&Q1q<KMi&1F.M̒˥q>]9@.[$,%žu=0e[ؖY%h$;zz.\#tPQ,T}CH {s^ Ϭz2C|VބMi*$YۯB϶B +W˳ +PG)AkX~d9f~qc)g~Z>}5o8Ui`rBj;NXet)pR.][c,`S0+e/MnQW $ӑڇX,KSGDR9 D1k3 4M_A+m +r]ՓBWcj,'?30ƙ('L50`?ɥ%EK1* d|n]~̀zD@W4)@مztCoɖ6[DX$?&[ +bH +h/m:vmRvnvd;/'*2J7d{'yp#5 W/ Yx$,ANK1r/ӓ$Ǹc, +PFFsZ62:G FVWH,_[֯KQ)*=r8O}*c ϟ1~LLnFWEoK4)[{іNoF~LM>9>t?uE~#G7W_#Ёt1ń3Ej5:rk+-x$C^HfԨqxL:$VF4Ytcb?'L^!C:(Za k9Ue#CuMkoč et 1mz^s빚KOf{EWI575O_H޾^Vw +$7t_*۟Lʼ$6‹z:੗H%Fl߈(Y6z';hu[n!Uvڥ5*Cxb/$_ӫ={Ո[ "'OTdԗ!DR9_ߛᥧ!k`[FFI^#,` #]OK)tjhھxK/AQK\Gj]@ uݽN?CʵߗK'ܬ?M_OKrj|/٫}} nXvv.ٽCS;:{FdQWHXoW]ֵo-kV HH]%` ]⫖iIm`Zd*YȮ2-i } A`e}k+mC`u4?)ٷ3J~VV|@oE얭"8ޜtiOI^/F@d:< A5\ZP$HzC>l}=atc< uΔhi:D41~gޡ =7˟H \҉ 6E=\ElRUMD&RD4p=TPfCT8:G´XC # +I+lcc5cˏqQ0AztOh(jRK;jzP@N`RX <uW3;qY d*]啎r% &Xjǫ%KY1 QRNjs&wSSςrloo +^lT>OOp0X#  Uh0e;+Fy5`MP70px=5YIo“kkZK$zGcyPά|[$͉7Dy)̿rXK z8)kI*!Ycs5e0C{G"UXJӥ$hq~Jٍ%QyCZ~/~LBET*b]mwJ'ꍍYt7bVx*N')-3UoqH>GgZ,p\9·OاMB:G9 ,EBGBf>@, !KoLG-(_'dY)t6kkQJa RP;zNTFMYL)?;d +P[š\y5:Xd%ˡ(RN@Ulهs s;5dRNxT 5`@KF"YB'^.a( WРn̔.p,Le(. SfK,3,K")xMPMІyCYε 'O[PsUƢ$OU5D˫3'b'X:zbRS^*QXZDe-"ݨcbED\(*TK v%WѵLp25~}B#wy%>ՑУv}x OGiCd.j +SO1Ù-1?QX&]Y J%5-dLpyAOS҆u4ItW,"4MT6:0{H5G\;45hӣ~ MtOPl5td^ٕZqfuBm.)>Ethh_/ʖ{>D"Z53Mq#$8qfyQ^27lo{ ) hO:@O0$T{ J䂯'09 \NBTdwjÁgOS;^LvgWdΐAD1U7ewz1e[%K?ًfzģPGe*e;F۽ 'faBAĴZLkChO(7b FjSKѭZb/l| " O(Y[|z^ϙ5S.I&J*畭YX[IϻU\)@B50?- Ho+*,vj h9w@麏يϡԭ:u--Y7dXEoha,[@U6`;25dg.L*yalZ|/9=:{+J1_[:݀ZY\tD<mM"Z=%Qmnckf-Q rɪIiσ8}Msoc[7oؕG rQr,lK,𰞧^,_ͳ ɖ=IZԬ^b.2Kto2@mԉ(oFkQRIbpCXy Owa:On 6+`7rڛ,Ǹ^~ ^;>]z 272,m^@\>~goO,^pJ4'<2 +- Q1^_8w;!v+ ?%I=5=zPo.Ge~&#,BPF9hq7a,R:zL7yD +9p ec:xA Dp#{K7cdD|/c7dB}l*ZvZkAOzu'r0LT|P%݋7 +͗/7xgxøӷ@E8А?q7q6Eü$s< Პ.;*1lwyܩ4E_`Afn!9 2ά,=*r `+fE@cC՟τ[:[?2@_U ݋1>íAyFy7ST0ll:h aŒ:4Bo8Xz7+[0G:Rgur)BB ~5RYqذ>:Ց4`t0xI?MYۀGq +{9)xNL9C26 qɖ ~wl=E}CQer"=juɍ釒kҫ"n!ff_[,S ^1IЖ'.}Z.T.l(X$·a%ԜԱhRIo_$9VꝸۤT *+\QM(Q9M]Bw3BNTsS$>yZjba9JE1tcO#!ѕMKFF}m?  Sk 䱩u\^@,F5:VVe;OŞ2zβ_\7)+ ᨥf4d[u{Qu馨#+Ϣ\5ݓ 5S%f/],Sߖ-M}W[:ixZ,[H~M!C@'Qmh'<';k9'㑤w4,z쭹S\{7| =$l6WDHÔ!妆rr JBQtRdiɨs?2+R =IŸg鼣sZܷЅ=Waz5t]qYg@M|Yz}z:=wi7jTE,>]|Q.Y^C Soa 2S*G?CSsIu xv J9:EA^7;zsti z4ɛ#r.x-RZI2|hbj%_+ա}RiN}8cWeFX {tT,SS 7nBJ:\)SsudN_& Ήs&vᜉMͬMEZ1 w:_ZcC 58 CĬ(%SߪŚW#Oeti7KZ5XBhkE(;B(rn821iQ#-%dsȏԗ:ך +h5n!yٸiI?E7Ke#6}:l=|-QOo^VM|=ٯ_7t*}YTW$fD]TAyaQWB&1˙9SjO]-iEw/IҴbyqyL/eSe!k$\\Fu~L.<etw=DNhOm``~5PSBbؚZ%e`k)NBdiȴӌiG<5dqäoo`BR,^4BdzTIUczM+݄((oI l> +/ȍY(ZZʮV닥GdeW:GZ!? ;K6}5d WحѧTbț>s#3̂v`m|7d5_h)@زby2DK[*eZFl5>_Ll: 59aZO̬Ŗx3/ Va~"/j ޺ Ok[8j&IH4hʸyL0q#TZf-)UpTOXGƬ~Z5?UnT C(]6AyA8|w})!`T3KLNjۡcԸ㤜x q]!rq Lb5t!윲^ߑ(2JGPބg![݆آhOoX$w 7IkGr⊽lE:ϼv D&9 nO5_J9 J&qB@ \S;r,2(P: +И{Q6^&/t{q[$N,R>@W~]~Fu}gDwjqw lOwQ\YqqvcPFc 2XhodL ĖΔʨh@1O!Af&NNJ:JMGfR𸛎Ǫ8I 0H_8*g'UMGƎ"3 ;D<{L &HΕѝlwgQ#H%bX2d1Z RQ;Nv\SP5(}`ܭAv2KWXN_gاֶ {KR5fɘwΏK6r=I}G_7_Cl)Vi^bi=2Dis- @}K[&&y$ ̓M` + Eː="}ǿfj>}z!Z:Qס9 +xR^#>LN&ZX8$|TGuHKŻ_׳;$De6騠| Jk#yU_Fll4k\}.][4 mCnI\EA4o\d"@6K>dRAG8$=!@ա +e{C6Y7,h3xF48jB@ BpDbQzf +YMr3Ur5r@4҆[ ?N{P^ Iωn`1ZQrLBN>ٗ(ME{31 K#=բɼgς~M`g%}w;֟-J3ew3~2= k~]Pf"ٛ7LR#=@F/1Da$=@|1޼ֱL|z |ֱ޼ѲueHp=@ }q޼dx0 .Y{. L*ܟxo xWʑa$Jje0CP% uLOdfq?KIDOqʏ G))`6ռKP&b,zb&*_/8D +T U ?|o2a.h̕-r4s{/01{R Pᅫ=Hakȋg'{%e,שVE< )T$曾f nA!OА(@Y Y~<5eMoh념X{f|jz;eR HWMy^P5Er1*K}c F򹥓;Y ,G{ZR:Gyɡ5e4$~g1yRputXv!pR<*;C_ުۘB2k 2"oІ^w8m|_C?=V(Y߷+*0UC<FɖqҼ&8z:KT2^ E 4W^Z8Q]x;z?/w;3 FğQ\ +0O?ʳߴPO#";[2}3Q$w%y%HU2N|N f%)$9 3Xq&^?< ħjϘ8uքG@;eNjVqq!W v&G(;"%2TEAw)x;v|;^K`1IA/GCMo6d Y$]D b"jČ{xhѢ$EGxn#80t͍!Z6? ]m&Ӫ⚮g"@YBr_Ws" jZ0w|WvzEDfuB!_C}SK^dҸ2>33O#(#r0SU n`sh3Ur59`0!Q%ە+S]m>Fh'B}c.3wWQP%[iۤkwf#%J5 /V/J}oijқj2_f GdHpE |Ƥ G"JEoScAf䟋}1X2K\h4cm}3=;9ڳI+H+K +u״zPv:pV_يrR$v2r lE%߅ + LmyAа7bm92q;aaW{zyz{gYPw:>~X}-T7;z_ =COB)!zJO}K~*J=k`%y#_d6K +e"%4"﷞c+nE]@/\;7C] ̵<ȳ?eZ4_j7`'ѮTzMtk8~W0~"6*4qT"Μ(os/-) Fc!M);kxꄸDI:m>,}lAFs/tQy uS媃*ګ#;u:l^jm!/;an|IyWz64s6c{8vFjЊP "<&WFF|1W#Dx! +kBa |rVBnSzR %Qi5%7 \خ?: #H\^ U0m\UH_0y h3G2VfCT3Gh'O GmGU&3܍fIKqKX?/4Jdn0b WP8,Prqo|yE+KS/8',AF )\"$9~n5heS~ޝ?$ %F2ؔӬ[2]/Ǧ4B4u=TП3_T]$zdY+.qA [qtRHwɦE4?jt+@^!ق?ۑ{ƒ mJDjM +#}xL%_G_pĖsܢ;;CX, m XiX79a7lM Z O`#Wtf`[Rg +-/X +Jx+h9eg+ 3+ΔNE,S@gݓ*XyV*7`*JdEW)]zK:Uo,TK/tU-f`"^XݎR6G%n1Nw`SRN*#}^=?bD6/֓)8ژP+( JpX Rx)=gs+0XUZf9ƹ#G +1=dj,?ɥL\7$Ü+9A1߀t2 L*o~jmZMP2jNDz̬u2˨22{9'9 )ץ08x҉ˬΐ~iyu<9CW9\<*lx6\yd2zWFlK賆#ѴEqs(0գ<1rzZV @$Qe0_w\5!W] 8Ħ}Oop+9l}C=TW,/x+--1=~?5>u!w~5Y gĊ%-~ϿL:͋,W}O0 Iy)ƴ+uȈh( 1T+l^YH8Y>b1S^ø;cMf.OЌAPwVՑtWa{Sf_h 9[Gg@m6K'"=XڰY{Amڐxu4N-sސ]6sNWqJϣFjT8-cX-9wu</ БT[ofKPq;-)*?:5Qz9J|"2+Q@,*7b +EJ"Ձ~E퍵3hD3_Ђi]vٙi >*T%K qq 8U}RV[2(VUAY-0Օ:aqw 8K3%%*oh&G+zH +L']h^]9|fCMYK, +H9Buh[/*=sΕ؟z_ =If$ ;^BSyH//[LTi,'os@ +( I۫jUʏ{CC5Bj'>[:G~h\uPVn:;@5y.;$iSl%HO) WS d:dd|W'\KM "e ~<_w/ Ph5 #U'{{",!G5e(uJ.?0;?rDiPiFPis(->)}: $DfFKpF0Iºҙ>,Ze3ؔ;i{͔WZJte(iCl0-ID >-yjVSm-bdߎL eDE̮Qv1z`FU#i9ʕBXgP?+ ³T+jZ5T\Ӫk«0^~9%֡Vi҃dwBvlctqg+,s6}f$Ǭc#'=\6-F8R;ީ?$:Ȱ)Ԝ*8wU!ݿ:Mh&tCW'}qחmEܸ4 ܲohDUe[G1=,*Ue<7R8w`x |W&@ An3*:`==KRɛ4 0WHIͲÐ["~o +#wyY\uc VQ-XYjvI" 3n͌D',_ Rs{6 Y@J5,\d sY.vv +s-yjIEb5YmՇ rM#KUhGy{W'YZX(C2g9]^f355w']vvS,2P')P'$ma^>WqFQEY8!dStv)6#/QHQQp4rz" hAFGVCX' +g^uBu}q끩!GzC6de)%m~ХQzl-G&Q )Gn"Ł:kðcZf9H7st#zK#e@1>C~ ¶Oߔ ɰ^@)_T^ E3ղ16Kӷ%Kש)#n!y|dg!)f8XNn}4@ vӓ" 7xzdڱn~PoڝRBmN +55Av76am ܠyj6ڼ6amfmnsuDgc<^yF4l&cyHO[gQ#9% G1>6btlD⭞kCx+_'5g?"q@SJM@KDq` 6u]+TKw.cԇ` e˟i|CtMem8i W8-mFZ.X$9y5:lEi?]4V\_N*1tsCO[BO[COBO)zM/]3BΞCOӺSUic3BOӓ6{qHªs SI,TzօBOS>Yo@>JWh C-' cgLX k[BNPHtD+(Sa$IH'9@,6i؁'uI{g'ku*5="1z.ڠ:6+=%AW!*UkCRD[zZS~ ;'\BN6:+LGKW Hb|SNyp9F\ҷoBoݾDtO6kD$''ҊYd6j:uA,mi hzN5v'(A|$!z@ʄYU\R0 dWC&ɹf(;SL5#p*dd6p#Sqm"уdaS rOGe&A!-G@D> V +!{l\ vħuO:Tj׋1SW|$W:6voU)?3Q\}ղeO0{ZBL1v}VٙiMeap( fA9UOQKHj}ub +Pg}΃TRWАI8dVtUֵX}42*48"x=Ab0604΄'@sx.@J;Jп l\ҁ s7t"b%]xh։㰂%rvF|9)34`?Bbl5\TyP?X(/U_oRF?:$GQCr:$G)$GQCrZ($(_H$(_H$(_H$(_H$(*AդxzHZ-AIPC:$AIPC:$AVjM_Vħ՚ԟ|cU3ֺ?d6~< (@gfM钻C2I4zN cG=X WaAu#mX^DUQ,botm,} EL eL +3\i'+cV~x]UqstR7cjq +uI}VMY,^c# )%-fkfTcXtUc6M!F,{yOybu!#<2Ҭ|壱IPqm^~yjJ76'9ï,!7 <^Oſt2zbIqg#h +UGp{`-;R,ܬcn +L-!PO[eec?WڄP^v #aJ/e84@9 Q~m6V U87fۀ4N )OU{S>چ=Ny + W\B 7K=DxݷE%z m]TNƲE1ȓPeAr?'/d'%7ea0Y{=L2la=AvmZd` +Շpˋm^g*^%{*wFɥplQ[,Ϭұ,W:&w)֍){lݘ+$ܤb~XaBl؟..Ӻe35W6Iu~AdA/[Eڏi>`d }8g/2=ƴr*}2n@b *Fs7y@"F΋|ˉzvUۘoN1CB;@tŒ\W:mZ'WOcwWq + uiX_wپVnRoZ-,L$Fbȇn,r!Ɗy wo^ZeL^Zer^i/m𒩽|/ڋ/ӵ%G{逗'𒧽tL4k/]c!  +}f{#NadFNv} p餦pFdqR,ע~V7*ò0i$6m$|sTp q-'g{Y{@η8Jչi:ULNOOIَ]c*eS8E!rY%Xm YxkmSm- ogƙC  ] ++3@N٥x<*f‡VſTȰc3\"ף +; + L[$1LM:fH5GB:UdS،?D5^,7z\{ C~ߪ+]{Y3ѩE0${OU=4|ތrгI0V"Yl:tyzUJONѫwޏ7fͿt7JLwчY|dߍ6TQmCLꡝ7d;Y`nV݄j$ͺ?$WzlA*]xSΘ9tL͓} 5d ų{1 %gbޟy>1l.[TkucѯD>| \VMVM-6xZR_'?.2;oxXsN NT1tcp3Vyrcͧ:|'wK_Ir7~ƭo{2JlP%;kU O0ׯaJgk4ukEu1z_"EEgrNt'NoU_Yz76 363ih+@f^5k4MRD8`(JjՔ{+ *+vRrtt;$i&^Gu0)z.t'e'*޼N:n:OfqIOg-]0%L-Qv+LDY N@{Q-xxOl&܃GsVg'JZI<3HrW64r6<3!i؏P,seW! GI(e&X~)9z} 4򑸯,^7 @{'"~J&ZF bHҞipA%WUiBL#"f< IK neh7 IeZ/POүn6o੠! &H}$. vH=<JI"qؿa]j~˝Bk$YedoxG(|Y@~D g%;7V֮~+Чnty\_G?puPvnO|\?v;N?Ip +^ {3IpǻosK?S{O>a'LaBFzLNj~qs7ߦ8]G]GUqdђYO,V台ޜꛚG^|`ǸW;ϻwsr=!h|\xd,`)wtK9C/~|c}.[|Pվ%Ky{p>Mp.XMy6Kn?hɂMg밮o;ŏ,}h+Y٠X|O̟x|ӿ nӄe?`CI-o ^}w;ZV\[ءW|5Kц߬ozc-]>΅m*xHW}aߩ'zc߬;yʼnw؇mz`f[=[jjO="諊|%7[^_~{_ٵw[n['r2^AYцQ|key^?(Ѝ7x~1cݸז*x{-wy*qO~_TeX]GGݱm lxnĻ/>~׾sg%-y9^(xer$7}4=EۇcOص.3Sd&4lƽWG&)yFw{}m۷}˷S|?-~zg?7|UC/:3r W+xFeie''g.gӟ;ڰvi*A٣7,~#}W>iygOϧ+oUnGo>=͓ +O?iho'rnxi;WoyQ g7Oy[>|8}rֽxӖwؑCd7q\&_Ƨpø)T:KLN}ϸ緙7>2q˸nk.̝-Sw|[]_{S|yâ/w&Do⚜+[Mox3#*|rɳw7mwi*_;1rCASJnݛc;W$TX,+ [ߺOyp}߿mc Ww'_$ͭh梣7sq׽ȧ`} +@BBM:+kNfs"OT]@]X.IО![RdOX+n\$3Kǐ{K*!"`tôx)RObbbR*OŠ=^ 1LUGUѾ7c"5k^FvN7 ZhpM1;il Q^B#ի폁@!ε|mZ<-Xx9h#ˏlߴXGlA+\\ùw07P~m@nq0~8Yxϵo0g[߶lukg 0{\k?\w7q8tf3/8Y'e8ӬZ/a0c dIZ_7u&ڜ$߹ZW9Wg?Wl7cvwZ?(o93Y>\u077ĮS#GbF{϶1a}l7aP0g( 0xl>N S2 @#kwbAEg1,6@7/0DCt@?Wc!g(Klc( 0xa叡0P +Ca(3f3ϛ~M@ |L[Gzd +/o3).IbI+D1e<qqq8cf1yab߱rbʉŏ>?8Ï>?8lcØYLlhw,&rqDpLtXx8x8xxbGG?8я.~tq]GG?8я.~tq]30&l'F-&-'!hi1D>'!!!hbˉpLl01pLl9 1G}~qG}~1?|8>q?|8>q?|8>q?|8>q0&l'F-&-'!hi1D>'!!!hbˉpLl01pLl9 1G}~qG}~qIZLt9Ѽ-'?|4[NB\9aED}tLtXx8x8xxbGG?8я.~tq]GG?8я.~tq] ?\?\?+pq'pq?+p\?+pq'pq]N,H1$ĔX+c'?\?\?\?+pq'pq?+p\?+pq'pq'pq'pq?\?\?\?\?\CȓaР-|7&'r?$K*߃47p;޿ÍRyg'AZj9j)nfsv2q?R}Խ7a:)1]p#^^NRbFqނE܃!0w6wr=ĽýK;"n>Z0| lp.W u:t}Cpat{3, 4P@oXB(a;F0=9"#7< +h-jRwD`yB 0 0!r!Cy={?!7`0{p`l`7.{yGlɃckcm,v%~=YW}lf( n8Wr(> +Ca(  +Ca( ^0P +Ca(> +Ca( 0~}6!!CCw%cG8;i ~Erg[}_?v |1!\;P_} @?Pgg=_@ua\ù`ù\o?a?lcyi?G?gl +bC`0aP +Ca * ?C\`Ca( - 0P +C? ǎ9:2 Ƅ!C1C 3:6&:ϐȘ4W,;ǜoVMqW'k7{IGHtaz-Qڨ뤩TzmHKvgU#H:+%Oz}L-eRApaS|,t /$oE!M"eI$>6vNr  Rh‚ bmlk:a̽IHɤt֐B$: !CC:).GHI& _x"Y|9&NWG$65Wʲ{j໥[sWmUܱLYIrTi^V&_t/z>^k-n'&q+Ӥ*G*SBoLą99IsX"K̥],Fwdcų2I%,s*"elvf)R$/rr6,p,W+-Y0kn d{/aZJ۽J<fJ嫬2?|$&8|Ϋxo->i^;/ۥqS^8՗ |1F\{Ԟ/x n̦EYFQ,}Uձοi>s iYnU×'SL=+ 1iGlf4G#wFY- #TZF +gq=6:J6n<|Sfﹼd ZzKtXTfVƫj,nK'MB>Bi=OR'#}#$w|cIa96U(IXŸ,O( +q^ZҖZ DKnH +Ay)JphijQ*{!SnryPjۄ4>D%бE&Lz&1}}w4ȷw~>Koa&>d Ff3+$[iO6-?oH\ݽ y+0trcV~:/]OC_ a}r;}4 @WV 9!yi8lWNrU/=m]1]{"IlW eS9=44tNRjǿ|(2Y]Wt&eE^]z %NݵCxDn}%N۽Sd/z<aZm3#mĀsUxWT-țZhKn2n?v@#^Qn~6a;˛EЯHuP1t'&n{Ɗ3j;MIO4\$3i>4DžHSHHHCHwm6jK$|>==פ$Q=gد|Wиo67&5q︡ BmzxXtT9j ?}լti'%Ғ7륤\Riܢo$M"YHQe-}4)ԟԃE--yks]鏤'I$Dk-}M#UNڢ'μE7&FHH1/!-IOolHIѤkǤ -z=i#N:R-e:N\j^GZN -!WZ 믵Ef =-zO&F\1fufX,}ƱD6Ma?g46NȲ*wa=Y:w.+dSYW*%,V*Y>9ZlVŖE, JVV2͠cejSo](3te=r&JtfFOC9} ?C!*3߲u۟__]_yuk恃9z{8yO?;繦oZn2" + #Hg 3?qwGt=tO2ck0dLѣg{}~,Ǎ%6w7׏I.VnylW(-߲԰i{}% _q#vu#=&M2cf^~ -^2G[Uo\Mrwu&>#Q?V_*7޷~0G' |㟆mϴC92<"*:4,&$Ѹ(qEDEK 59*}vx5SyLr6{5Nekf*XВql[6 Ku_w hkCEJ&Q61[gy2ژ>Í#oSms}‚i + +$$b KxĠȮ鳣,˻ŧ2b):s؏@nVH`]ږ(Vn>7RMa5FaVxZVXF9,QK+E <~띈?w}CϐΑr^|k;2y}&i$)ڻYC+3&ԃ&bԃ&"ԃ&Bԃ&ԃ&|ԃ&<ԃ&\ԃ&ԃ&Z)A@ dVz2P+B=hF=h4L2 (jʠ:ePETsP(tAuʠ2f (jʠ2Pp28 L'80 Sdp480~` F <2kL8 v~ƃC`"8G` +8 p"N'S nPNGd(,ee lA6 eMGd3PY Ed3QY Gd(l +4hUPlԃ* +j +F=JPRԃ*lA@6 +j zP5G=TA d QEUPbԃ*l A@VzP5 J 4*Xj`,h@36̊ 4*Xj`4fPA l AhU)h@36AhUU=h͠ +փ*MTzP@fG{A5dK4fPA l2MTzP@@{A5dh@36̉ 4*Xj`\h@36o~Qzqh/'ݟ_qZx { iAׂG̗?-h~|ׂC-ȿ ӂS_-ȿ ׂևX/bhAK7)֫XZ]@<A ?D<ED<I+D<M;D<QK?E<U[E<9e0E|^PDC_DG#DK3DOCESS_AE>YkE>:oM?9_ {SXc^}x٘On=?y(mC~yecMMnPk߬:UYz@<9SӾ+_y@>Ql9 07~u@.ZYq巾_k=(mvAyj潝ɱx!}k=$vwռ3u)搜6>,{1a%;,߹bǷ?,x7&lm#򞝩?|׼rڳbr%SzO~[ޓ{?{\ޥ\sBL!#k1!{q-K.ch\ ^jrmw^׼e]o3uqhZ- L>pEh}f[g=Wt>Š^?gW?zJ.;FuriъC13p.Xu3\kV+]=^51<6GXz`) k3ugN3Za#6j>j/fY#ix#K?^ZWls5Э?wjMeyV3.3aly@ةw_U2>`',R&^/ѭ:PTk="qsR7ec_ Aso=d˯go%.UJ"T #W[ile"6ϡ6mJS]1b؀,fϮ\̲\.fۏ0e}1{hblu~{$b뙜%ɋ/gv+a/E4$gq +mjW Z?gY;-xPVBO366~nǙBrbI&|kR3))kMJ,CڿJi_7)7SMJjҤnR"2LyIoRZ5)1) &%IH6)[Lu +Y"]y'I*|;5okYG^_xې3t,EQ~MJ8gR[5RMJwX &e,}`RXS<4)@V!꾡akI9Yl5WxlR Ĥl|l+rKVU e' +5CkAZgmMFքkW3L{h2]N)sJPڙiCZPgo%yNCOɏ*B.< ߐ89Jd?C $ V$ d=YG֐$ R$,"qddMf$L'TMdxIƑd &H8 CIFhP!$m06- @ ?Z?h}zBhi=,;1Kgi,ںX:[ڧj6uT[/o孝ڴ6孵MkUވB9 brwn:5; KjFWɪܬJ+*vxys}9N]* W]BiՎ5_8\waTzġXVWkk{}fiOjk"kgj'hô!Zoms&rhмi45?jh255Ǒ55ɚuٚi(X0@M?M/MWQVB y쮩hQ3}M__SZL "[&N"/ыODxt<[9#nfK7dK?^' *=;\.aHIITy4FjTR+90~iْ%2iҦiZiIb$ݸc$ٲEڐ"پc)NM i=҉}$Ága)iױcout)wtYRfft3+Kptlku) zNw{w{g|(+(J0'O'ϞI/0RTkT&͘; 9s5kq~/=qoއ/'ccc ccss ssss1౰Ą1Ⱳ 11屵1k²&|mF|񵳬!֒emc9s #^އ߯L_?'e<"yyy5nj\8qP5Fp5:xׇSnY:&ח3_o[E͏5_yI旻o>jS1R85_ UOoO5y/Q!C^xԑZWxyu'u%O^NjzuuZQj[>0ld0cȿsοB 2 !J @\ * 7p/>6?@~0!"! +!fC,Ֆ2X B"$F[ NH}p0c' 8 !W.p\'wB> +(~' ^@)5X޵ +Ђ*8CE +TjաԄZ +A]@Ch@Sf>/h-6ځ7|| +@W~ CwAzA0>A @ A0Ba a0FHps10A$ 0`L) SaL3ă90A,̇`,ſMϏZZ~??e?b~vvOvdde d edF evvvʶDf6& P"* Xl֢oALHl7A1$1Qn²ϊ919bۉMDćbbvbf4{}:MV 8". /XF|"ĦOۥC3a3aSA!7[FL_L[LWLSLOLKRLC _ [ W S O-nȇ+ mf/}*2Neˆ7TrPQTEzbs~5ҬhXڢc>f­znwpEXݟ`VTf%{XSlEo`1hVjLۀc#wa|ǒJ848 uSpkVz>z1OƘ!Bu@~ J|/lzY?6~0+eg-x*PC_'(-4+w(B?vjsC>Bp~6+BY9'czlð CSyWl+ <b{v†G}l ΁E%zǔok(Wa,aXFɄx +~I{j۱m|]!h;i}|||j m志ٙ 'VVťz5j֬Uյv:u֭W~}w 6lãq&M6l֬yO>jѢeVZnӦmv۷СcGN>sg_.]vO$w#00(g^{ӧo~BB4h!C6l#F 5j?3fq"#Ǐ0aĨI&O2%:ziӦO1cYfϞ3gybc_`¸E//Xde˖/_bʄUV^fuׯOJڰaM6o޲e֔m۶o߱c/LMݵ`ؽ{Ϟ{ۿ:|3; 0n9o*&ʌ(Z[baYBYZYVZTdZVhZZVV.f9\?_;'{ߗguyg 6nܴiw}/(-[>p֏>m + >d;>vܵk?={򫯾x}fsٲsΟp?t?r寿^v�6sk;,wlTjQG 6 +&ԌZRkjKwP{H)nM.^O}?DPA_J4NS)=qz4ZH%zkG+ ZMoZZOhG>mTD;3E_З5-G*#tNЯ;2:GIWo5̇1 fc5X-Vc m,5aXK֚ew#"]f.zx֗gw,Æ^fY*&$Φ!6d,{aϰyy6-d +[Ɩcx̧gX=OcehQP"W/.v.Q9>e(3F)N+D<=z#TЂ}pP}GG{)F +Kԕ/sԙ v|F_NS _lقzV@KDѯ㳞ޡukm7kYMPGg%j.G:+K_z~/45|Gxil4[>_x1#z!Sџ|{ϓ޻ճa{ϓ ןwy{}mr DW>fF 7̵okKЁ"պPWr\F=fs"b>\h` R3^!n"R.x6|<%Njjxyy>|J%R9r,cJj(wPbyW!6|QzuF$X | ?Vcq9z|uj[ѥ+G5KD?>kơƚrinG:cNuƝX^11$gCR0UPi,=\&Gأr4ʖSl.FgsrQ%9.-eomoCQrKo8JV.~"JP(5OAI>#zh/BoDoAwhG +r#s502ח={ d]eqn6y0OA@> #g#}EH2Vb]f[Y!]Ë1D^$r{_í@x]#g3 +f{]0^gH{X~?A0 }S&} Z@]ԂFP>@+ڷ $8'ެ^6ڮ뽀6{zJo@yol>N;KOpmΌ(:KuϠ@hYҟPt>$&J`:Zh;³ҋ[`C/}>ޛ'E-}MN*GoWÿF@R0zWP0zg'P8)}8?t>>^W+0;_{ەgP(=7*};(P; ?!%=GxSKO=Hz +#}[xVy OKo/CCU!3^45Tz٫;3(@ջEuzh DtD!uO@!:zXq1wޭ$W]?o6w#LwO ȉYȗǑ?O""U~AWOꞁ|{7X2| w}z)x+xWg{|S/(j/U2O/+ FE;; JuAܙ6B/ +a*>Cgj] ^ c_q*zDsIl0F͡Ľ;1+A[/7ו@o4EORx#8$d\}'J߮?\<*ȵG<{_#gBFG^Hk2 qNo"< ُ{Swyw>zoq'/B N׾{gs#xM^ɻV .z.Cp)}t:&{x6<;$%,SO +ZHN)q1IUuwPIS_JҠpℤadk $qqs$Ua'~~%-$MJ]LS| ~8sKqV+(V[ rw*NH,Z(,K,ci'Y%cNE',?sq9s;R􏐜{¿\%qg )#* 2K3zLA Iיqq֮Qs$;2vZgP +3ZF qW@W`GNʼn~A-qA1qAszIVr +sTĻG +ZI #;tN~!&Z%E`<Av,9\IXɰLb=&( +A%E` $;~0;(`~+&U&-ÂHJCwU$CX4(̖4,Ll596h+Q+Q& ,`ARi~"k3|m2R3K,DeIefwЉHNOw]40I?FRjMZd.Ĺ,y#%}&[J\~I:,,nARs"1|>e(/E兜_"<7[Qċ`or6mEu}Ʒ\RJ!feU^% UFMjj 5EZ6HV,j4ڴ̥ ]D1YBQeb&-ccY'뜔f#Yw:>En酬{F1,aΙel9c'(-q޹Ywu.6=`s1OZ Iæ ВkڐnmtmXI6X6d6Tv߅bm}LK&fmRa16ilDӸdSL٦7`^d49ԔUnd>|2y0)硡>#pg<2>gfGӋ|3+'kfO =9.ߧ%Ytn3+>:w >yoro]a~[\{`ߒS^.{|'څ~/^-#n~b^anl~f́UͫL5q9?y[67lnB{I-m)9ղ%u[m|}mG,EY!619=?[4ײs|/VgF/?z>};B8`{|wptS<?|=?]#%Wf=ba=jnb=ni Ӭ:tTMۭg"8l}jښZښclk%ZMlak6ֺ"[7no֮~]»]w{7GwJwdsX= ]cٻNXim{3]٦O tӐ"BbDŽZjFH!}XBg>p `Y9,8K`8w!edy*XPF`8WFRNԡ&)`~9]Ӆrv.QY2>G@(=G'y:\X2>O%y@] d_yv.HHA(H;JvA.my*(m.|A%Z[JLÀ2L 2˴'-k%S|OZI9+$^yS+4w ʯl_4_ `_YW)UHSJi~_`5J6] L+(=H~S|K#HDlJc\ QD6c^J6 8L S"P +F0ҨA2yRj2 .ْAy|C&H>DyU_nKA/ѩG's@>(cefpt8`1(6  B9 B{AӮpO;AbPO[m5$PA: PJ JkAVbPf@ZH ҲBPHK(83AVBP$nU 4?QIil%֨Ajר6-֨ҨnBoըIF6k<_Zڬ(_Q%uZQ"AyuQu9S#虩QlF5OӨ7;^ pk0RD0hF4'A4poF95rGiQ +pƷhBKj4ɡQzj4F620kIGcQUNٗ9=qӓ2NsOqz$gqz 09-iQ1=^iVN ӊ͜Vszs-`jNo6;8 K8mZisq*lN[8},(?<0ٲIcR'$0^YMQk[V+;+$>}!k;`̲k>0D)(aZE;*.~VY'7?$}b`kI$gl\_\( ZLzyEY7WkXqQvTvY꘹1x>߽?_ >^y| +?', +EªTw-k``j<#N3ih0[Lpp8>`48#->lS9̵}5x ~+`8 | +M0j=[ <;`8nO;< d(a $R`A" ڃ ` +(4 vV` ~u`8 ' = bxA- @'..@u`"8 WG |@ B؅`~ lG؎`7N{Hml +?ʧڞl[^UySU>P*MvPPPG+XT+=T1>\z*|JOaeRUk+ZoVS?Q +QQ6L"ߣU +_~?l/~JoQS6L?EmL*J}}TV}^**Um*ܮ (^ Umʆוff+RGjl]vQjl+QiO>lo~EeUte;?T[J{דƪߨjWن*U +ޮ·(¯P*TOS:3= +SiP +W/R]UT?lҞ{Vپ*(+ߵSUmmQړ9Ʃ3TR +YFj*c=w韍ET4)SR|~KՏƫrgn~__e~?DՏ(}OgT7Sb~?@Տ*}"K~_T*U?HՏ)};U?PFQ~_HՏP&o46AՏo+}w~_JՏ?PJhW)}U?DՏQJhDl+},U?/7 >z">z{!4D= 2Go +ԏ;ThtI>z)磧o>/(ڭU*C<'{WǛW"E[*Cvء;T̒\p$?[m%g89rJ1vWXqswH-25u˹s^攒>z!,oN9 Դ)aHu(FMMKI[Z%=ybJr Lߧ!aop\*hٿKAd8o& l%mb7anIz4dLK : nคVe|P-4J-5*9A:(lOͿ3Umv[#`b[-a[]m۲gF-̳_lGALm}Jm O5h$ݎm8F4ڋC~b(lmxlE{j4ۺxv`[7mnlsklؖm"^l+6|l뭎-c+R-Qls ~86crp>G&tk^DXrrOCĚ3V #'I˄'|*%||=:mUgmSy!V?Nlwn̘/bۇz~o,m˿ݣV -Mm,Bv`=Wi|CpEx8t~h"<::Ls< :+Y"<:GhGZc6~ =ףsIzxУt-BǫR*TxJ'6V__C\bP)bvwyLNϞ}Fj|lJxژ=RLR)(5>6U܀*npF%;/b#M=R=`'3& /Lc?_4=DCc3T"~;4``Fn[mn1Nc X]MϫFuӮ6Z=Va"gZE,~&#TM_|?}tߩqfN{Hω+mkwcӯUI`8 v[+A87X__y0x[{]D@kp +x lo +Akp +x l`ͽ/4!CY(Bs`*܄pcYh+sԳm^S Pa`*nL9% `rzvD|Zs:`U6:,crs~OZȑ\bvrgpad#86*ً,mNY(Fw,T|}ƒitc_wJmt +דs֐z7!>e-6;5[3_$(-ݛs8v-s誰#|RE>ky6u aY69ZXOxݟoq`*.Bk"{pLv >5fЏ"'&bs4֋A8Gw8~ o @:lT6qǵǵy"]DZO l縆{#O#jg=ݹZh!=밅a ye܀ulrA~&Mlu+V[o +|+V[o +|+V[oWnڌɣa3vgm|.u$یnܤ-tcFuĉ [C&zۤ~#Dzv>gCwd4BoPtsj:Qq ,|6`g .v*#u2EF' n3:QEM]#0z#D7o9QA]ߪ:D]~2٪IO[쟳 ])Nvdt@iQKvfa3Z ЎuG9/RqZ_q<;A沞}7tN N5]OzY^yhw?N~*}9-P ]ҝCyKj;t8D{gsj1tN*ic99E{tBQx:!VAJ-izWOn17xr YDzfT :S̝61ZoVesУ z!ٕz t5h_C +J*;sԛbN{]./be޾CW+Q1٠OBbЧ2sͅ n +kA?K귰jy2h_{R@Y>EЅJdS?p:)!_Zij: -\{z] =ҽ,/-['{+ zV~zABۊ&~ZB z#٠ /0?'W/ЃwWb-t7> ȮJ}:àOBOY@S/@0+ Zҥ}aOc +J_<sȈŻ_ 0GN?'䃾[|GY>^|nH )o+Ќ7`/Ls<>^М h{?4w@J^=}=K|>}Er'UQ*,m(Ug >-|'JxudLʉA8э;ѧ(|\6ʞ?8:ʞ<.Cu^BZ_AZ#oa-f?P^]ه8yNq/i,_oh.Dx.ͭVCBFyÁ +*Z G&Q6Z`哢Uk^~ \!Z%qyMUspIhjW8FZ^ys>4φ7|p|Y]OO71.Uc2L[d~%L fodp"*\*׏ppK}X_nou;cKUg pȥFsKs8ޥpQ=RrFOؿϥqgjA8[esFڞznՀG˭y%Pҥp<\??pq880ҭxjQ|[wG8[g +n'(L10=3T;\ds##;imHЈù{/)G_kG&Dx[- ;t>G_Av.\xȭN߄ {۷pS/yw_Onm$G_?V óJׇ+x~/8G.e<= +g @S}h3{φ; / ~n$,Q;?>M+joGV+h*Wù§<NJ +i_Ek){G|mlt8/ۣ5.|ѣf'zԻ|9ep`Gg{2#}|B!/=׏48w6|=O%/4-c}}+=C+{>HNkDk7<b"=oq>EOxn7dT%:i[pَk'{+UrfpO~܉/|>)LDž@p19xDkKG"~ ~-x?p$ {pkpQ[*p}`@ S"a?+LO  5_EIQ'?d/~ KXj ןI4:{nٿb_?L=߽}gY*9_U槳5|{=]Ƀ-{aGOF:p(>?L˶TiٿBv%cFX/:vtc{0?&ajMU"N֦~0Kxa#A?P\Q&;ϗ pBO~~[D,ՏkXj{2R;3IgK& ?*}R]}|R==bo\R/|j/[[jAn=e9#%,{M=e>@=GnԠplu3M;/o_o8嶥d-{xJɲigy rjOK؞#e/p=KDX/þO F 5ܱ8y{נu|? Y~ޟ7FmpNgj8[jx>eގQSVǨ o>d'Åcg|Yu w +wGg?g +<= $Cc$xӴ?¹\y'þh/G߂ӄW)pU᭴~pڻ{D|M; _} 8Z=.~U|xpx0=/| \wkKJ[ y]Ӆ3q%״CEq8hp@x +&<n,<&<\FeKk9F87ƫ^_@SӫvNǫ:/}I^{:ªH9ןez#Caj@;Mg=p6N86֦y0+ +/LspKF4p[W"M VƏ;"TƓ,LaOl7/=A|g:{ZǦ:{DSkl(-Y͝廿| ;$<[ESiOBn,ݯl,Bj=8TyUb^Qomj +׷>Ne?wWU^U72|yؿës:xUu 4px<ΗᏅg +o1/#)|Hx7\(L)g}uY?Y?ʝr֏SqU^S}AlG>O_YJ+>Mn?z3{.8gc}ix?j_BsoiS"W8Umm_/X_ĩ^tw6Ϸ׎Ԛxj.gҮ Ү-]nn R]9.V |}p]KxuUaCnzt?i+6iX_]a:_Ц0߳k9[?Ix:?x%"+LmKziSa + ~^^"^GxN0+~ oۆ~'W<^ͫA8ݾsLi^4i|Zy>%0ڏ[E+7q^w6GzH{? ?Ά?o x3hxt=,<k/<8¯"Px|P9xBxp6$Lu~?Äa^b}T* +S}<}T{үۊ^.L^!k@(\4qǿ -Kڣؿk|~υi|af +g/t2rM*!'ƪipIB^3ַU-} z06=q8#幽ybqv#k^^)kJ?ԦΟT.TzxF' S/oeh@0߾}})Ld; [ up{+ S}uWl/ϫT ߏ(Lu~"N%ao_ejS}a넩B~g +n0]?g?avtm|i(LSUaj?(ojoA~Y^o~ׅz0]r{"y0] 1 k{YF|M '^WᆬM믅}a!7ݛ>+Lky0oЦ5'bDm 2<ۆ>oƆ3 6f_n|c 4pW*T䏎WC- ia =?p(iF_S&L}7*^cE,{L'WGzg(R/E޿K1!hpdM z_N~gAnb)>5ߧws|.Ms|j ?dQ|O5硱pBMx9_S3y<Ǣ}*8+NoO: z} ;g9"(eb"o +`K(gYUT-0gŪ\>`?;pn72~t+Lb)v?]y(ȱx Wג/W)\mqoOoEE㍄3^5a)~9.}۴o#7ɽճ0L~swƪH+xՀ\r"JnÁӱx^d1wƫpTXK9{`7pEMQyr{[p>}~)1j1eG{<\ɧjs<Ρ=9.XJuR%oK|>mx\|~Cs,ƞ7|IS8}Bʓ>\ GRUīp9ƱwRz+>rOL9j|\ O-zNK֕۞܇<}|[8({ ˎ$$d DeV"K$g aC-`vYŔUJ .P찊~Zy=p3yϻιu~=*@ܗ-G:yG`Rc|Pt]3vW?i_o2]/E>k[ME}~w};n9=ὀ`;LG MPWWlKz9lHxq!/Q6=r慨E%,"|k %=BlH͖0s_?XPoc%2>2nb>W~i},Joi +=y7? ga9M็`Wd/8 x 7AK)*nn-+e?F3kCߒ|N+Ynh?\ <߫F90 csEUT#Df)c ~p}|B)^d~GU[ly p %/~ k[ߊAS|dtD%7CpU<c|V@ +|e>8K{jO_oBj=UkwGYƯ\c_6j[gR§Π^CΟɀ!I)ؠ'Qە^7]'C/ML怊x +À>)~mN=4=<0-K[n E?3~ +Q~`< R}UF}rڏR5JyO+صxdF=(pWO_ +@Ϙm۞lwep Z\Pmɭ+f,>HGo>j=W>/ d\5##l,A0 L{. f'r?7G`k=,U/L|W9K?8JvX_L_*Q<)Cf#mz/aO0!$ŀ_j3/qÁ,*‹f%p2D"S¾/G OG[)?/}u^+ *y3zao~]kJ *˂zMg}6pI)OϞC;NT< Bj.iW}(zqߴ=D^`elo5N{I`2v+`~nH~~ݏ޿_@/oJNPL&(p˭>sOwz<7ՠB>/f|t7wG_O zۧG p?2@(`W_dWq(8J/jg<<޿ongRoWID/zT^.7ZO?4q,C[.y '|35C/l_UWDG`ߊ0y~pG;^gh_Y \< w}ӁE/6] y!l*ٝ-UW?@/=8tQk3h %[DZ_=e8Z-cdu=.{JWMP\щAu_xxjIh O?>>4@7m|K}N_6wn[9H}3 <^7/W0^ {]KS+l(!Ckel䷄A?t 5?Y +cѿ^xh/7ccC;'b_ۄR6ao#K2o~}&Q%swhr2ItߢOɃ;/56^߽!|pw" ,'OJ?+|,Ϩ*_ wlPٓ'`>{)Zh2~m;7Pelן`w@h{Clc*owKV> \+h`OKyxd瀲 ?') U֏\a߃?TcUl7ѾOd >7/r_SF$}v 8/za9{]?q e8W=}.G/Qv36CTa,-R#խtd95R>` +H@Ͼa"Bxelo"~vuDQ~@ k%SEz:jgFmymyc|~p)%lW1S!w ~TچK}8w0pMG/ IRSD9m~uk_ xJuv?S;}G0)lNP/|J~J EX 0Oq*mTIgڠ׿ڣ)A߰p+Si8ȿF x乀(eoz٧k6Q ¯{/J/ +Q~JUAx}PycQ}+L ~%w]5&$?>/S} _"߷ {M*Է(!g0ZE(yyg+}}*;>,Ce/>ʷC- +y`X_/J7-|/a!苳EJK|U=ટRMCϤp4װ 6cGaQe5eQۀGӧM❤\ߟ5T`Gp`MubFFpf~7^֩lTǩ~#y*qI7>%m9@UPCg9b|LZ%ߢS  x )Ee>uA5^n}roQOn~.xAw'ܩv<~GnnK+T_o?Ad+ҟJ W߀3_\ +v=):O tDPGE}~|xx^Zo ;88ť 7)' +!c'(t.p˿>v#ey' г{t|_C1WEP{A~=% IY{$p-%.C«O.Qݐ푗SDdmY;~v#~[Jϑ94ڠ׬;EŧUv]S[s<~S9MM_)?\?ORٓ'PESSmA{"(gW:4o۳j{JaM]^~!N%_}Cx&U<+y۞%{h7ppIǎoWWp +'C w-/M`7џG[?Ts>%|ugZot# +]=} R~ \=\}'+,r:t(/Kyp p_4=uQ~˲='#O݇{co }2J*U >=*ҟN/`^\žj[OZ4YϏYoG?lM˂~!Z8!y\>-ɯ֓J$xgޝ*{_~\]e~w4w +ܴսvty2jDW/wex޿5ђɿdd/Is gE~J_Q'1W|S?O~<w;uxƓl2}`T>SRϤ@|J  pmKW~ 87bXOV\n53g-`J}7T&Qirl@Unm}ߤ_'|B`_~EZ=Z{FDf=xƯ6}z>qpW@Jo? 4Sr~~J(rp?^.9+>% vg[J /)~<#?W=YES>'>Q5` +G>fWCw[ +?8A7UJ΢O]QUmMx,\j6-U7닀[+&E}7PE(%J>{xdomOG/J?uClPw|6pu}*^מn'N{>7(pň@O3H/c;j}g +_Qžyi~e xy،g}R@\` x-nyU?Ӷ/]r&|{W^R'3ooAOgRYxߑڿC&cfe;,{da8,yβ}/#*|PPWL>/GV.V tp#>6Cė/g<֟>׎ +<\ZεQ/Kh>εGʀw;k`8[ջ Ѿڞ pqGW{ pӇlo;Ju~jaYclR{v+{W*6^>[mk$FzS > +8,)'+GLRf}l_1_P}Nd ~l_</v؎g +~D}d:p}^hy^$|lgbu?E*?\OF_^̬5&c#\d܇G_Bِ(6Ϡ:+KxWGj+2~0_b>ʁG1<}O_;sv{ oN+(g/σ4~pZMCk :'(ped_ Ƨ'YQ}MECLbn^FR??{Kڳb:e=y_'x܎ךK,RyW^N W}{Z]N/ܾ?fO6Ͽv}^oޯ*1v;NT|+P3/gGB6ηINr6Cϼ–/~ymnڦW_aRgsJTs%OS+)}+q{[.)aog|u[}[?Ҷ ɬg>%E[.a xv)xrAOa'|}/dد|W%vHy͟;@}U\?] +lF?۞nyTſ}}UNR|h %lH x~տW4g6WpbDe^8{Z`o7S_LQqwW}V?{\pK#CUa;> h{ ej=xx_Sϯ?t-ſ0e8ngCe"1~3+7y{J~r6Y9kkq?{yZ\_c" y[޿l|]e^O?K7h~ r}s3wxruE?\G_sEtݼob7|lβx }[nGǏLo+O_aTδ!tPɣ?n`_վ*նW <:t)p_OHW8j߯4ߠ7Dm%_7bzJx`Ϡ:SxY7pSϽ7ˀ[ޟkJh7oE>~ =J>Oפ|REo;};7 ?E3y:qvp%lo7S}jg7yDr7~x}xsc[`{ϣt(? <<[8鄛~E7§N:x K)#DŽwn&2I7gn)OJp錟 ݿ[qO]Ey(s|O ίBxtqy:=Ia9*pᅪnsF]= |>Kg%wGS>`X*#(ҟ^WKo'Ƈ |2kx9L<.f ˀ>xt'D9_ M_@xp !)> :VA^2~9Cc~N;Ģש<*}in5T>,nY?he};b>Zwy=ۀa\w-nc =D <zY!Kx~~lY}Μ,%:A^ݞu#pY6c=x 8#ۀ0Sxh{zwI]>HߣpR?~cFx#3$?E{E%hrQ<s3Na!?XF ܄ gvQsu,z~_7kFwйz?'pA?#^h^o p"=^Od$(A[NW_V!c_}5r/|pAQ;o9I^1R~l_ǜâ_.jc~wDêz5>wu=_'#kO8d}K1v0kO?Ÿ:S=ϨDebSٔZC4П@ghed<[ІX=h[f2l#.2#NϳEgm|Wf«(ΓS\7hEDs[/]uy$LWLZskՖ^ޗ_l|dhwN%SѶd;Gx7zίOҏL3E3FX;㪧=w!;.&3ˤ.K)Sm<^3|;D_s\|2)03YAw&g6Vvi,1I ϖHt`锝x\^%kYȚx6Xfy[ f$x$<#2Fbd^Ekflݬyc5kvU0eM&:S&#jM绌ny<#a`]x;].l'ʜ"xʢL=u%:$]yњS /qxlG2V,HRxYJ1%T5T|ĺN8t<ω\vx='qsKo";G:O10تHW< +:yT'8U.MgTG[2[m|  $%4P".2paSrXPHjOUOBEM 5R5Sx//OK0hvՁTU+ 5(H`#!'2x*Y?PWOG>֓HbkJGڒ|OT\2K^񿼃|xõ/͸#uRxr6\t 5 uh-jrɬvN u:#t$hJ?0seb$(,Ebd*E~$RyHXe WѺ2-vK$LѿME2t\YY{WDoG٘G,_p3Пdz²0 +h_aY zO|:y]$'A&dCT̙O5<#P[.Ҭk>pA1H8TMƢm9R`Ii56ݓjOGC2|6&zZ_F׊WW{#Y9[Y?"aw4žv;.%Zuc%2vF05e˜mQF7. Aѷ籶*@yƒL43<;<hdcy V|.i[9 36Q3zh<l0&׋D|W\G*Q +RV)Qx&PePEjWZLn#ʴUBU&r^+)aQekl#F,fցoA2jDgb5clM"`d&lleLBÕ:^]ϬʛY ٰtQ@Jr駹 h{=3yzhz"_DL;[JGrk%֘ @%%E꣩SR nG-YVoUqjJ s9 )N$%"N 5/Bj_no}cFznEuhք8)aj9.:nW⼂5onչi|6֓d7EjD:SIk:yZxcڀqv 5?lt}{U\?,|ijN>{QfzN=S՝Y~*A x\$\;Zx(ҩ@]55.N6N[eo깵[S )aciфl3h=2fVqD *gXsFAJqNc=gGn#\=Is&Fj¼EVb]X[9FVsx4MR4hJmєpє))4)0XB]b b 5BinQ$aJb j%xܪ}4#ag7򝦆45Sx*wLHíњ!EaGZQϼCĆX7VbXkJ InO2FZicH#-$($xp.ПBZiv+wǢ ƕDw)QcHno-lA֎_L`.2Ҩ*Fr,(o>‚'tO*%peB7ƒ#8\zDOGGw45"Wٻxb*OԣL,ֽ~UA|uxʳe\n0ʘOfn3&LЛSu3'~N-<_iJ{iJS:0| :A9*$OgaelEMN,x4+ΎgDQE1P_Z2:@Z'muS, +銦Rd~ OtvWgLwt@EyБvG/ѿ4 d-2-oFUx'9qa?igtF83g+LS"5{r>c|#DCnrqZNZ)|s_55_ '.&񷆹 IHY,tzՒLR2uGsl pQ¸3#s>y׸twdw0 ZCAEr.YHG<\yF>_ +"KϙѼq]cdF|LgS"jc.i+~ R3 Zy䋴y,h*[gXV3y'IbXD:d?jC +ЏctvZ{)4N[ξ{Z[x֘xN-g/ a&ȕ9f)iA#4Uȋܶ"+,E^t5+i}~WSSN+gCov=:)^tRkYxK*ϲNJTpR,W%EGFE{x>zkܽ^ZjyL^q\]JWCdc{rˣO#ɦ K2FH{\nt-C\L^Fn W#AO):x\R +{S4\P s|Oasdި[rO;g7Oֱsͥ. XC$jcL|DO?.@@ŔBLl< z`e%T$6'-qbMsh>$'Qvڢ9Tg̓7e~rrT D䡭Xo˅Mg+5/zĢy<*XI I& +29Zb)&XWltۑBlDl{^&[.YE_gE|&Ǯl;bqOD=qgUvp&dKL1A`1JY{f8ˆ9ɭ4YdMXٖ+"mds[f^|lLvgлT(٧c="81}?lKrF2ƳtV (6 FJ[2ox{bM 1b 7 frM\=vY"z`t%5pY4s~mVSn*l1uX1//uf;Ma22NQ!mxhLX DkPm$ Q,Br$N5\͇Ix*OpBϳ .&{,gD̑:hos2" +]%ۮ":kwl?ⲟ46U~,oDn5i9DMo4 ύ=~u$9k'%'sگ{9Yzp!Y=G@2'r̮q{Gװ^$.u"=pjOtGBqi4U19pRgÿ[h[F`[˧-\䚻E(&bA*eU *Kl6\O& 8euN(TjS"x+@6#>Re8Qd!,'qr>R`0zձUr=mL tq@.$ mG4} +9MnXN ɯ HYq}aI:kĞLY%۹/Rq̜u9R3U.8j͞6g?JנYeK͗v\vȩ`jWYJ"{oiKLXBH!_Rgߞ.2k&dJRBB*9e[OLt9ciȳQŵ>Ye"3ٸ%ӝ"u"0uyKP40bsYJM(o0BqptVqC\7;"K,ڳٲ),HInfGdږpYcXqc:OaZ +4cHbvku@>&l bΊ2[̋ +Jkp\93[;&fc. WsU+ÜdXXw"jƒc1v`$D vH@z,[M:H^,lbL2"[xn4凉r=m^Oנ# ,Hc%iz\cTM\UXB^lܵuDfm*en ÃԥOFKMTjYqLQ3y&u=7_ecdĖ*?4(q{M2ԑ$ΞF{+g "gE k :6VF'Rn>[$Pvҹ" ŇFsj+gm) m'#kNɘuźǹo fD3>Жt +2E9K;V+]]k3ĚLzmH/C1zp'B85 8R&۱NlPiq*fjd'qrt:8T[IccpK-9\a]-Gh}v9yc{uSu"!ԱĹ8--x ˣ ^do0Ґ%RÈ]rFmŲʏvRvF;SHҐo@7doqjHoh !M&ׅ5H5s0.rL8؂Ē/0)=q )|;[Wj:JY8%Udb)"T\`a0D(޹HB ^I؝1`%XݬײD=F> \i å~Ri~bTsy|q>()gً%5Z:%͠[x/R϶֔D +AF="Hxة޴'_ +JX6\@YuTRHMYw1#!JS.ן#Mg!tކaUSE9w 8rE"Jޙ bi =P#aFn $Ҫs"X]o?9˲*R hmVajq@o<KWuj\Yg'̥ )i+ҽM޾N48CUp /"`eˮfC]~;2p͏hm|L&$2ꣻđH4`ULSɈ'`jzc>gG2$,/p^mHCBnz-P) [tRV@ +VGF٤m|r9n$T.ČJ jRGL$yMniwo!OvW +Lq{/fx-R+PQOC0R?Chz.хhlÑ@Z-'T^ 21iخSq"Hn;:\k;>q5@Hx]">lվI +GX.np.]sN6amu`_+!9󴰴 (r/5(tLքV"ք>~{q9BŦMy{fRp5H',d,CBxEW@Wm|oާ Ǝ3km*\ bq:m\4sP@R]̿+\뢉 slɌKY<'&3'YBO 0UL&:iXFg^` <>d!Ebrg-vrViXm1*Y7:ELf,MGJFHV֊,J9 ۾;0d ,/đH cOQP54_ 3/#&-4&Lho16"~# +[Ndp$&v{λ2[$*?yiceXfp\-R(e *%Z,ϐ.yM>w@<, RyܨhYbN +Sb[Yh}K"NQhOVaݜsKJA06@a_yS=W2-הgLD*kW-ojW?:M7ꎷ$1Rn|ߗ7oL[)zZp=RT{_}o,̈́WYUszQDP:"=pؒ_L6%P]l. މ M-WZ3 +Qz<` A>rGҮЖ*+rg~!yc89.ɾB} =FQP pA0x)~kk +aa4K(&B|1]7h;A1 B' ym+%x塘:L"GDсܐAw?8-z,O|=*S4ioUO7{7q5L4脤3]!pIoIO?C`WW- {ϸ+.i97&mēci +IɆfO>"DǬ!}[qJ4T(jq5łE)ON??VS,=Rf+nYwnrVΠKyBMd}Vj&<S>ϥFuisr' ėz}y̫V({Z*aJ٨__o_\vj07r[,FɠQ/'I^DeqH6o:1)Ǯ*0g-"i[d_N{b~syu|Yz*Nf[Ъ:d"zȬT)]~]|iF8ML4ȇ֡VB)0iz+j_4ï@}+]+ÇƚǷ9d7xx5I#TfKf?xV7nGY %*)#7?'AL4v.ۉhخDOc?s ^za=t_| &NZ,YK$~7YɞCޝD-c)u\Q5KދҔu. "\әR9b`'y4aዻdž1$yjU?9Σ.{M[ NJڕ 1tWyk 8DeZ? +re)DWJX#^D=K>ahƢqq/)?KT[A ؃d66J|> P;IJ^}(z8[\x(יN&υkvzvGƙdMgȔg-e& Wj%]AgZ^)QjB6iRh{T#?o|&'tJ/ qA`|(_o3md^U@IgVCS}yDlU'ߤ9N`PK +bM5 jre/lib/ext/UT /E/EUx +PKbM59:gjre/lib/ext/jai_imageio.jarUT /E/EUx +Tkttwtwwtw# )" twty{}%k\qyf2 @?<$OIA^*Q)!{SlWo1I^)Q!AyjI!.NNOp,>>(Ufw֑to9׆>6lkQs(13/pJnո%iGߑ],VbKpR,N _TYp~`<ϻo[ššw\WڽdTzFx+FkcGuu/Mq- +[W<KxBD[_-߾[ /?,h'<SD? Y򬉅|6?ga 3 +0 Iʈoe[{]4'{,Yc5PͲOk5j!ӊ]9k7'HO8i|{zA GpOZ:OKjMb;M E AUyg'8ّ*ۏ2VV`40u0TcTkP`Q' Ԙ(JD^)BX3S%2 +2*y@Xic Qe3 WOd ,DEq`д2B_ 0loᯒ&3,T"eZ]{PS[TEħ)fBL_8ydy).^=II d? b?aOX E !z±~ bo( PUɅG Ku|D%Ë ! IPBDҝBD;Tj*Yxq۠5ڛkz=*Tz:,sd_="#:ȅJzcP>F%4Y,e5?nwt@=8\+h2)"})3DzŽ6~9sMh*K Ԓֺ2b=m涆g&-GkyZ{8-TvvF+z,j`aCVE 7`:ܜw,3`cHz-,܄o7ΔЯ ՛$(| +5`G%l%2\'xSjHD}DQ3@9`Rm\Q)!j'wP*Xx6C?A#)/"gHv{74xaV 2sRP·HgE?A'X1B=8tDXeMvH٩|/2,.Knv*yB|w`&[8qow<S䒓rEE>ش>@y![v}+Q#=ŒMSPEvؙp*'@-V@61 Jsl gNOO,@>{_TPim &:({bbVM + ˇۨ0qk^Xb̜!^A?> [ %9<(~$,DObXĺ39^X-D7߃/]9:l+PC‘ǖ.8trFMZaJ̧V $ݮ+L-}-?>G]GAUc+7CaeXYE;]В3aY^N4>{^qv)3;jr(GBgz4"_Ym ~,g#`~GY~QDBӝtFȱY9!dw6F֎S37o K g/%T=h@.1iؔӞa:퀾HSF >kYMw"}'2="F1?<0>ҜY7&և{:+{Kz:VK8{+z]~kPѩv<#%&FXUss;O^<:5ɱ#BEmU3jio9ߗ-iZ& +% ݧM j)tQ)8~YjzV32,\FIx5mLnjںj&:2B +zHB Fd$nPuQtޠ:|QL%{,J*TQE +22^'/:Dw3|f2ѣhc#eI[ƍeWAKK$Cd3,V& {vQbkt/V*ZN!~4ErjN! ufZZZxy%|O$i|4c@C+;q[SFSR(,kql 2pg$CQ$HVj0,"ȩA'Fa?&Ew#9_~X~ yGV՜tA1L,Nz+ӈ%A^t.0H|cDCSOX(ttE藃mE{P`NA;N3ǃtWA!h:+u;eY L vl*)4,c%p ӟ3WHv6QL7topk.-1Yu8 +]Mѐ1#Ƕ= PÔ>aƇ|~*XO +*F8xE ҕgGDeM{ 0&v}x&[`N+xO˷~f,U՛ xa: kn$dmo9]:#[w$<; `+>sj +eojORKg7$ȳug:Zaqj.arkbVmB+)(I9 b+|d+£mܗ-nƱWA9bkabZj!M?tO*aU0V. Rڙ ?$ ~.ڭZ}XHFqܣ1CACR#K~9izևNֽܕ" wq ~#;=սh¶{Su(\ 6"(QH[Q_6EH<~>1o ؐ HAC8 +4 5Nj|6+j ZdӲ yV-&l|}4gB6c`^Z\*%,l񵵥ob3VEӰ~^J򿏯e;?JNN,z([6-?#WX3NsO,&s +wSP +#$2%5ih:%r wVW$j,3T70&fIcŨN:(bMMs0KZ-pPQSQ.Ja68N$Bm6rz-e9ϺWmI_*5&R>YW,`a54K*9jRC/ɘR +!LBrsAv@! O'iG,ņ|J$6ب`M׮;bu#>_͎vٖWIoN8c3Z Fbwޠn'")mq"Ax g䷱$605YbopӭxPXGރqp3;1ةM! G{@ÁN`+kamLV{|ϗ<|dFDd^bRcZ9w.ksM-%Q!'kƏ5h.83?ygs[Z’ST^yO.k_^`p_sK,Iq`&Ku pq8|QiH)).v< E +%ͅū doDhz(p]8}qjtzPS40&rÞB``{ 3ȁTRM͛>8j;zg^Y #/A?|3),%kƌq zHzDN|TmQ{l XM,hݓPfB܅7 ([8ޏ#%<> +&WMLS/Rb(8UBnI֠8oG@1.< ܷgX9PUebD9-u> k!wƬ 7iN]*Te،o + =+s+[I]y4KV[S2R>H ~~$dݴ.0wG{P`՜1@jJGJ[qXQ`eEG,ˢ '+ 1-QK}]݄5>JBG' LAet1q&O  m}1% +O +ۢ~+^( %69zJZuQFHghoT.j~!I<1Kf6+ٜ&xY˫w%t +1^T>r_A[m9Q~~ ?aZݿֶ;;+˿x2?ecDD-) ܅cB.;&<%<+vUQꂇR +Ə׃ī#M{;j\/F7ϏN&) ͒nQA{taHe:2F@;+ThNHGt4SBwqŬiAq͝5rYh$SS! +`w"&tG +>r,rF)Vn>8#!yVoAǖ7܆ axZ|LYS Zk֌3a` Q~Vݠq2}hJ)} ^f_hrz;|-@eVapHozw\Fm&n(ߣ[u3cTG7-툭BoBAKjLbmɒ+lB;L|_;& ׹l,c\;H; .x)bC^6ȹb&W_x_+k[#c?%Jqٸδo{HռkfIiB.Q*zm&/5f[6SaS0zոH<tN +>ξ}aE+Z61(;/enQ$,EDēC[&* R3sq!Q B3â<3=eo 33uKL;jF\vGDUCWah +v%auͪ1)8pVa=yx/0D0,R,$U'cr1ehqSj*J(ZV6f33:縎ȹ=~<}m$ϰ7 O!7V`O!+@_*XJb* ͐SШ1,WވDVWk9I+1ozĬ*DE 5Jg +:5yd&n )@K-8\t/G0L4{1H\8.γDک*1T_|dʩHA<}Zpa, +> ɑߙ?lZ(:VlA$5F"A>|BzIgd9fcQ'tljDͧ;7J'~Y|Ԃdtadq"n6|JQ<>8 ^ߠ; i^G Dz׿}@KV{C=yTdtq:tO|E('zhUW&s0Wqg4&ޚ}`Xx pu-Fs_S.e7k?̑+?Z:XW<,a 4t@P"@ dATKn#WOg:ĔhttfYl`(0tS +!jv%m2wQ$w|Xf>@>FY6\,.46)( c0As:?X A#%ȸ=57O +&"HLrf`ԯk1ʶr< =w'Jr4πDGt w~v"aaH:fKQ,8b,3EʖPM |:S3(6=q9 \+O2d^>ܷ64DDJgq8|ݡȼPŏ;"*G >'[~]::[#QW27 W򡏀8 ?UG8ƷI.'!~gBg/$R4 )sPEC0(ƨl91!R3WaP +%u vh3x&_EK6 w\7UnGWnR(ndoI nsg1Yc*\z*8i'/BEأ䄡QO0>^d 8Z$)ӧyd4&{Zǯv6X6_X>[IH%B(G%Q!9=Ɂm`Kg}R8Gz{Au,NQmᴥ0H+Se][]1`MP0S|# <3 yp((h>ye Dz[(;"Ґ6ĀTuTŁUM" +߲FD =jnseOZfiZ&{mǂz7wُ 6"V8ŀyߗ238\m: XF'L*%rAx-qѡ3 :8=ޝ>]Ek~l|s7WNs +8 壯2`g`{)bҿ*I( X>㜒Zh}_oƩ{!D<f6AMGs&Dlo:Zg] +gT%bT68 (`pݝ҆؃\BqU;*BUҤ\x90ؘRyD嶡hy9>u*Ϗ~XٿA-.h@Ue3]opoOxZc4fGσ]#xK]bf_Om,ȺHSmrI2_Fzy!PrzUF:KOSrc zY nY# Y}Vi"^6KiͦUR>p.LA4^eioh^o lw`l^KM7PSNۄ@vG _b6l} hG0E8Y~|` vhNs䀡G`uՁXH"w[rG91 ++Qv\$Dbd%p}9|WXnk*ii#1I8L\E +ŰnWGOfdcdS@ +ğs(/8G=3BZ@9fۮTjosPQeT6јAԕ.ne` JPL +;l?/~Zo?qRKI]LA\1q(ߒP* gڐ5CEǷm7ݸXg6H?2˥<ry>,n%: D=t N ~Rz Wr4,m)ݹ[RxAU2aF.9{B(ʹm )+ҩB< +(8cəHDkt6G3sv$T_mP\xٙ*CrjX?`Ϡ丒Z[ƍXŗ<z|eG&U8f9I~D~/'|QDL' oLJA!J|ldo)?Нμ&n6|[VD4CPalc濕 OJc;ǁ +O{&:݀ |6*QXs_'`~ƈqj;&~4s$.gILxSk;ɧ;RTaS`-f/V_"U0> +nP?+$:sХvnbn,Jw,8EL8\MjRiKyuZ'_crR~{5@d/K-\tIޚe=Wwrg&)?%y֠D$?pE x3-Vib\b<~y#*Յ'#GQ%LSb 9dԖ% BEO}׋bɏGƚZ=!阮C~y[H -!jfʶ??n8fT@ AWЎMdYyjnαY&&W>_KDe'(P0ߞ㼈kEo61VˡO+/Ln&9:%Jr|lhmɵ*L0kqxD'7 ֪7H~Ce>G"{A0J?$)m=yςW> kOc,A>\Ỷ _mC7+YɚHS~ 76%(A.bUhuM%D{&TղgcÈN@@. Np3NZ?9FCv%$S&ICOৄ: 7YЏڌ<\+(ImCOdP2YI; ?x)*͏o@*?xlܝE6UN,:$Y_p #$/kiQB?3g= E +:P<02j{B~~]mpx,h;'F~-qAѰ0+M#/;c=Ag~9 )>r SJCŵ'v;gՒu)$Mom8Q#W\VQC^SB&|dJك֏w߬etOnHYĄW= +dpƩc(&AT"jɸkřM͔퉋?U7J&@ +s~+6q`~2_pɔtk>r;<4J=Q޵Ed=!('1-˭?wXw 5Iˆ8u #& _iqJ"?M.M@T^ɀJtKԣNHP3)G'p 6 חŶjf.hLŰYvz3Mӻ-mYRWBE 2ӔD9 MFZ z_#bVvv/NV-鐸68Ѝ\vC`|$eeCȉ%}R2:Q~ a(t7=<yZ=Q[ے@5lTWC΂ZcZN:"Q9KeI2 rg/M*4.ӿcC] эDTu*HJA:?ΘȩvUnz'$1p,bcI^}Jqhݾ>}mLBWOs\bFWމR׿;v@re [uЩ@/v>DZ~mWE(S]Տ+!\2v{|KjK^80w8$1xWOTJ-ĭSy ?Pȫڣ"@iƢHdheh)ϭ~_\ы $ȎzG][pڰ62V& +v/vwW}%*ou. +GδwTgI+D_0`½8n^.Apƍ; ; +ұJdgZëFf˫ԼT8Pw\!, &>x +rTwڊh/o9Gs'Vi8]uPd(0< # xI2w]^]O_YtKՄ*9pb^0t _̢[h` .6X>`OOyHޝlL=5av%OtӌjjhV\/? +~bFʡ +&/Qʞs%kT1rDSȉ%w.r>UsUۯfhYL9OkD\vV: Xag7]v?=[rL +[ _`J{v }tSb֔at)՗sgɨDJn*#o qIEQ|LfIWQhv`x3p8i69[v;Qd@F>I_~uF<!z!B0#M&KBjz4/1XW)VxBjuYBYf@`yħBPS'L_@ F"k{PGﱓZzXD7jt2drmߛ?>yDZh\H[>ov#Y'dž`;+ť8 =4-0$ÚjO 8I6W.εpB˦$tN7j)eVkXjxqOYB`*va0#/qtw%nG;|=0SR.e[U]++ p'? mk3G'v@h" :ݽ٧_A0^zrrE0M gҭp&TI_SQ&n/-VrF]BRoR?=>Js?ϜYNpHOM*V>:#|kXNbҗ~5Zw-S,BTUͨCщFk튔ES/r"%*Yrރ z9 X=&|S k%mZYwF0ŁMrnx]7$/=HI8rsօo3 LP勱:r$GWq# & (ib߰5Fv$§){1QlF<'mڳlm$w P?@ 0HlBg!LDE'BRVuP"GM; +Z~U 6K"4L0>p`X,.>1ooOycXEN!Ǎ_ M7żyZh/n={ Acglg7Ch4cp;zۆ1S{V}(Ama"ʍ4ab"R'yמi!Hb b}f~HM;@LIcXa.neOqWOx@Ap)G|>C/2\/3l8=lQ}jFW2 _ WFA/35B/gX(\}3}ro"VT_s-mu#n+s|*e8܂ՍsSΛgFq'N Ƞd +^̺ ]"&.0YJT6-\nf_ 7c>25/38돆rmMnɓ[BE8QˁQR)g1l +YɄ1L1]إ7;*'z]hO"6Bd5²-њ: +)): 62]N孹ihł|0'ͺxLљ;ؘp2*{od·#`x(ѠElMx}Ʇ!"D%s!5XCv @_a s46e{0r9 +uWWϣ Ęn!>w_y{ +N9>/`|knU@.1)ؗߧygFx1 ʜWPwl6I#rtX/?WgkO wV:tx8s]\u-F_M9Ŕ?ۋlb卩IVj\VIV1D4oߑ O'"l{ZNxv}0~׿pD !K10MmAmx _cQgsmKpƝ4 b ͵F.mֳ1̀nn_/_|EgRXU76! /梫yЧtumXJ&(CToFY83cr`˟l 2ydUU3`S!.jpsjQ$>z&kr BR8;m<&c_D'k >x`FvFŒ]/X牠N>= +nsBŵ*y[[YmMfmhˢ,xzwhڌOkB.sJ%Pʣ58ўZZ1vdU8Ӎo]>9z==pc+ov9`B[MY2,6 Vu>b9G& of!<6Lzz"‹P/.}4MK'Ib6lrb6r#0¢7-9EnG4eRR"VhMW2rVϧ>ԺKjrBs*d2O,kc#(u5 r|oTyB ;U5/$<%+\°3 X=ՃT,tXwѱۺ2/r5蝴`-Q0I +{,ܼ;vQ18V}gH% =rd4κLt!=̲@; H;P Bq|8zc\cXcxM~Ľ%*kj1t~kư} 31׵Ե已441r/>I37SX6\ȅFَ'Q73m@pAU Av= G`?)-j6CH*[)Yr +}pl4/zSn߸/AOVM.x#ؠMŹ*h[9NY23~Xp.#2H^FݦPGb<_R/-\ؒ6\Sok*~ŝMz2 +=FECw\xFWJ_C?+'T_zW Ao3@ҕ)۶Zy~RL/W=?tr⟽OZ+VdLF&(jbܲL!( ;upDVWYU, 53*5|{O-u'/xh6_}|T/~w Ҳ21ȩms!MBEg _zIO-wO77o8naVFz[ġZ8 ,/SCX   FZȕ->#҆i}61O4:(Z#uXAsK0YWWȡڐ})_Gz'&Z2|S^dNVexܺ SSi'p/g)+3™Ax* +ͺ &, CU]Fh,ܶv+tSڸXJ-VBđvGpW3:`]#n?5JYwd8JmspP?=+ t:7ؾ\d1;^SFץ_C81gT rE&S}{#1#j+(q4N,;i\-\?׶ZYSIfKpMxU\;-X4.s͐ G +eJ΃(>(E+bZj' ?^{A,Y>],?DG<Ep&ڤp@ړhh/Q-|E_S#!**C`Jv$)?3BU$C-86WV1i/ [k@'IN0"u~/`d+ Ho_8CN‰-y4lu^e@j?@x0׼β8#ΡL%p$ V&̏(iΠ%RX7:m}Tq8[2tB2]8҇v}:S|Bɰ6֧p;=kܑۮ,  +ǛG;lG;;"C(]Me.}F03mr?N(Y9M}$,󩣯M]%M L}YSsfBA п?YrўPQoR{7]y5ZRI?B>]kRB1K~UEXjh#ⷄy-Bx%NZ6ܠ٬RߨTTE`إ#@$xEäN7lzby&htO9҇0k0mLlbϘ:^جRKB+ BR--Eo=!#"3m]C|95m;][ l>g}ΠB*Vvюհz=v3π8s?N%d 950z'A?PXF+hޟѼE^>9uݑW}$'HAAGgk 'c w80{f-2A9JZ46VBkGT +75ow!\pMs#qEnpi })ZӒ?)ޖ `8wEDeãv?R6Uwĭ.#×#h$,7Vߋ+4vՍ&lO\y#N>0puLT$޻o43F6k:A}˰ZEzũ30&"+M!\M1 թ:9KPqo⣁BVNRɊ#lQ  + +>R<+]7jsg S kMrhjT嵻Ch~r.5lDQ +-w,VYMKyWc++_GqYrO;dY4k<36Qz\^<97$ڹ(^ܓ2N%x^hϊ.8S!nkᚈn1^:oj_\dzGKxVK.Hy-1CoTLmDFe=2m3WMd?W_<~ _\-_C3WJ(O@ + hR1g[N+@2e!Ԝ#H$ᳪHPfMKF +~P)>h3~YN$Bg졘Dƭ 1ʗع5Lf7 V̻@@ɘ~M%yê#`zX~Cov21f^[0D|'5iH0@a_3VƯ`-ylZK֖r/LzLw31/>BZKǫC$֊Oy녀"rn?͂&͛`~(UbmyY + +%opiV`D_K-["ҽ粜[ȟRӄT1+"{ JN8s{[y +̵7/x:5p}S_űSF)":C7nLXs~n>&S Ty-6~>brRgaE6p]Ǥ0DvPʰ3ݐGe̙0c`ԾX/Ȣ\o=a*5fCM'OxjN Bj$4Z;>]$G6$F2WTэ>}L2kJƃ~Ĝp&EJcI0A )BGGP:ıVUi]DQsU"Ё$ОmXEts0D1_1ɡIlkNK +qI`q~iՀ'ouYCR4{nVF^^OTP`kwn-#H7(OvvjM)g7ޯECEv5wc/@W: .Ȕh*?T +"bZ',Cb%{xs + +ŮfyNU"F\8tGV 8k·EzFh[E1EmlE&:ƃx4h1-n48~8(JBLøS7X$Sc7אR5c u~)ǿI1C +g5wi46oVQ1HH aS ʗҰ*)q5tԞr9FֈgZ5RD3֞^ he^_V>J_SkU xSMFN.P65[)a<(=wGKWlgPE2oh`R?[R!L iJ̋ 2'+i3] O ,XVAwKiDij)҂{sj'bŌzH= NHTuMKy"pĘgE`GhH6%nG +s뾏}v+X".q+s Sd۩n|)m#8\=0o!l1bujbs< +Z/TJ-+&_lUYDM?3`&BE)ȋ/K5Q:oVSvA5I>}PJ'4BA)\"X D6+]*8.OTO?cWyOmX~FsI G 1RŘNc@8*X"6m;tkܭgtŰr"O~a tM_7% \N)[4~1QG"(ZKM QįKF*!ppLHݺepRcٳDC4'&Y Rɨz&:TuO&.߶ZPTFɾ2 /\bYDqC;8+D z2^&.і]D@Wkm'VMly{^ʜ+%{8ퟓi䜾 EC5ceŅ=Wr]A;ĕZvshrz#ܳ?O}# S\b:3o?~]TF^^u̗A jЀZd3q?=DB/M/6@(:/8qﴩ❿v\t=h%Tv$+G3B3i }`eU~ ϴ:oLgzG@ʳ׸%lG@Q0>v1}1"d\5+yяJ_Ԫ#,J+:\?|_ʟR$26 Kw}%%lVb^#6h@ŜFQ@=gd"pY8EΑpL&`n>YsVqz)>=u{N`BW1RH^2lB"ppKl ?Z`Pk-=Xb;s1Y|sb7Q] .$q$KL$fCS (bE>ȬLpC2jb3N?o7FED#}<3ŦP;?$L n&}"tsY4UF2PGx,#GѻA~֚ ^ g>hit,WOPaPvA~Ɋ&I+*&ʕagMӿQ_+BCrEU ̫($/sdرJ(*o,|%*'=}-f' +" E[?C1q73>Dٕ@S\c'}a!B {಼5ѐŇ^^8+qkNtn o9lIpP%X'F;BfL%h+Nvf6Vlٻ0֫I1ux8X$YzQlg3n^!d)gT/Y ȟmn-5V+M?/$XPDOGg^<ٟOHz0*4 6^B)lyy@;5t ũ_Vg`"M1؅Of? "G۲Byb6"tMa;3".mPͺ18q1AJŞ|32GIħ繛q0W %y9]eNy=9YwY)$ؑ>mx5NhKH\#)z&!8 Wlhkt\Ahq5eo-O=?Wv{%~3}Y&p8:PT^w]IjF4H?/!Ci Ȣ(4-}~ӐƬlsQY54S@!;@p=b(u7%%P2mV 伓"pà/}bsena3$ը7?s`H쾜8a9{nmYm^TMߌ+6ӱ? ئ#`ϰ_VѲYӝGp<hx'y]1S(2D9!T rdd/˴8N7N`/Dq\!Mʉ@)V)L~*ĪkC`ln +_l7[ M_skr ]^^[qxd(RyʪѾ.ZzoQ9y|`h +P͔@?+(F7BXiԷL$&B+(rvan_Ŋ0WuVIA~0aϢG ]>ƫ*vO7/y|.yrWß!-ÜMD:Wă+*2p#mGd=@+_h6#x?#Z2u{sr8hcKbcQ +WS&}[Kul6DVK>Q~ە;z~lp441r|bXpOP"@O ',Qu|@wGFotR(RT*d:Qz{!eLpsu9&ߕ #`j%Eg:+ͷ3>EX%"BQ9Bu͗l|v;;#P c@|>{7L"!H#Gy (S}}E"G\Q4 }w."fVчPL4n:L'9i:396%P׺]~X 2pԗ%ԔRvxZiXn+w?2wی0ЂD_,IJ*<.m%6xm?usufͪ59=u4=#V%LJ b%9O)ȖүP =xC`Pa/ ט +@&j=rPdȶUb_`7ZٴrU9;uNe`_"SZQ#)oh;o~ nHIK %.>Тp~jU C s:t8 aā`ё? H{'3$۷0'{F2~^gC,rV;ƛ6G] 8[^ejVS[XZRnn|9RgQLI~;*\\F2nFq."L-x?ěA*6嫫ôAw'U//y#)YANjC98mX7ZMܰ!b]]N̪h+){E?+ l~`/wG}ݗLIfջ +Qӷez&}Pv}175!Ow;Rd󋎐gjuc3|ӇxY %tURmي͟n69E? H#_n+]]yw4.faVhխIt1f9&5WYn/1/TNL^, +&/ rf*oYi-<;aۥ%v06ebWCc'J2*ncMcQbyJ/h K1DCNs& +.2h%ɓEsBvs|/' +Eo}n- q ~+'*]lPQ$<([g_JyPHcBM@Q2F +St_2Y]C] g$JJA|P87xN]oxLXcQKFF$IFAe^Bˠ!(pR`}v1$4v'{or\(E]|E$AdpQn d"r<3Qܲ(FrK|ͬQu 8ZrK͜ 1MZN12_s1m2βqktؘn{*AՑLq 3%B +gcDQ |r$B +#~@NlC,Mw77dM5ȯ +M6NlTj"I@!MSt9*QxYZ$BFE.mȝ18v'pZ} l~ h)- B7y*뼐(NHMڻȲ%+|rJ]oRV}ݘU] TQuoGУDD32ѬO@ Ǻ_vLch$ѽ4 TI4I-r:EQxHwD@}x)+P%(G̥myVIA JHvw [:BbdI`,_5C{yDm\.d@{d@ .iyS8qp|soOU~ ^Y}2ڑͭ_=dB/Ϝr4X2ϩ#8dl.PѸ7U~Z%j@ '5Q^M<;$ujsJֹ̹-0yXJU{7g|{`?;gZ4P׍FeBWQD[o@a0mאvvea:rldNJ>?zF"?5 {3.{X": +kb 3uj+x ۙ0\Y5Sו2.G(9Q"CGl€#PELpBPoL: 즩1t]wb X=_-YͿtuꃍ L3"`&N==On<ߩҏ&jlM7>&a}T$"Fa~3 +Clal +/@j(x8Zh]ѐ+I<وZcĐ@ݡ_(@mnlb{H8 ѳSE2,ڮ!M_M$-G~UTAX*[wWwi0vZŒt% fRU[cY$#C'eurlS8ĸZ16o S{3vJaкNs%%Cs[YKb͵h܊5{b)Z)l*Rrn.a<ϩbFF6+ 3>}7qH1r1/y8T*PNi3k j'qNszc!wLaOGy,z+s㱠Y?/v-kyJ˚$a1m者_,"Y6ۻsY]S1gQ̙/t"40NiS (r3Bm=4/8XUUзաX볐EkUT"~I"?*8d8QHtjxoK3upx(}IŝB +lP3ߨxbDɝ;2N_gб=r=r]r 2nG)>DډjfYR?`]ZģnB;iaεf.ӻ8 iu>xuo O7aϠO,ϟFihn˟ZKIuI溝)70* 4J(7 +˿GEKps8ox,~>f@_M{0+zVktwNaP4 O֚hC̶z=0i^ "śa)يٷ He-x{Ng }w YTѬ{lzVÚ8jPW`;oO6W)HЯ?]IyQm^wX??jR=S>d={{s:θ>}պ2xB)M/9O +;X,~~X`(EF\_oEXjFiͳyѽֆ).6܉jtݛހoa ҉lMms&STڈS'5зZϴ.KCUT h%0ˠtPhKB+"0L>4kL~16p 0_`m؝0yB96 7 :ԥ`.í=ANya ŋefl7Ceft76vfnvo ]̥g!Mxk&+Q -[Q_YR=+'\NLPO\5\`_T!^<4A<%9a?H}V{Wr%dwEU)weh끶k"b\) i@rSkA|z +J`iDdTh@MzxOԧXΓQ-?isз%~i>̖7~ /<5gדbe +]Ym|Bb" +|e{M;d_LS(){27e _jjmZ4`n +wgruq1thK?7~;=V.7ӎ6.l_DHv(ƶCA+'qRlPIBWv{05ɦcD%$N$/An7,S^]SloA6=1 +#rO.[j{.wP旮YӮluQH#lQWa&)!zȓjK%B4eԞ_=mfz`B)<k<7:Q]#"ⴥѕn]jMߝ(i".DjʇzNvJA~3~mA `qwyiJ`\W/lMQyq&+X"Js]~VH K^R8/ W.wa0uDxwk 2'nd,R[D8t%wG]Ic +ԚC@Bv/j(雿*k +`ikg ʄK_Àۦ>^nq.쪏"Gz~z@_=j@ygѣD~_LvШĠ)`BW&$)F¼6WN5y_}U zJJ +mp +Lst tlXEb2'RbDԽǏdƥ;ipۋyF<(ݚXؐ2hQR1#l:a[RuXqs']^eAj~u~~},EJ|]/Ys'/һ_{x|l<䡊b;z2V!>E +Z{m!7Y0]ùS=jyܼ]HpԈk.߄GPF]>n o6'>$qNv@td*cʜ1Rwf\7K?x+ӡ ʷ+)oNoh\>iu.$, ^c LLM=h7*4(-nnk`G,{<(JW-&`F;ʺpClƦۚ頿$F'Q{S9M!] -Twyg=Z7,}?&0_2[)xuugŀ2A@`еSjzz<{Fz%aV!Ċ MZ;-%&FL^b:)hnI- ' +Ll8pS )A(ڦα= @2"%; eCe L,L$zjMH!{!8#THne& Qʾ7\!޲`IMgTl6 ϟ|!-b^q?XZC<*\1fj<</Yhwy"j VS3^\| &oA*shqPN/dY߀9/,jmH?Ǹި#=rQX\#:@j5UYfzəyUXT0#= +_ჶ]%P" ݿړ˅6z96#z4?}! wHI`.>E$-F}*x WG +9v`ŅX ,^¬a&3T'sڽ,aD q +V&'JYb MW[L׭ߛڝM2Ʋ!!Wkc.'.%Bѕp +ț"OI翿OC炛/1P~-yAH*ߖ^[pC8@IY (P$j O%6@Z8# '}sDǕENzWXJxK7tN@[_ :o(xŘm0=/'dJ:勯v=c.&G˕ė%^Q`OB0u[fľ{Ek2wrM^D(kXab|]9 pp6_VR" pCɵÏC[Kɘ%EnFwho˙SR {m0qkn +_]߮kl{ ttGIh(2NlTi:#b*< ++/f&T\h) =rrw&WdV!Hy+}?^kެnm{Yܫ( +&þ8n#`"kV7*XRGUjthkiʦR j20."1-<;'wlqB;o&1`D#t)8'0f3EULpmc)b?…>Ā2QP+Vh&mh(ҏJL;ܘ%J2V$JFmOga AͅӤ !ATq o m0Doe,?ٸ m1Kޯ W͍7#:^R2(_{\Vg=*:b(Y .6#%YU6~ -] =@rDKs-'޼ a T Y&íɚ Ps6U+X#2?Numr*0*+\nO.;DfOoՍkewu_>d'+^$bB4b(TحFa2e$C827zRRbS~lPWͱ 4jlw^wȎ]{I`v?T6a +TCޘ'E}E{rFI;.kKfWz17@Oo S`驁45Ej#%M<0ߝZ#L\.`A($gF=>rؿgH_R \ydߤQ&"=ɅwSXđC`hl%,wsNܤltJk{}Eqt֘e\HݛJ>3NS~0`|045 EzS5XcM%'C$M5%@ AAi?.rw~;VY7Ʃҙ&+51`i~U#j,Q#I^{W@^EgJ=4 j ay>_/AO􆐊?9i!uhciR|U0 ofZm)=QvvXFTYYQZP7Rg(%W*;ҧ= +0woU?c=0,rn"4 +GBUAЛG+X!I,sA ;gnZdg[+dxudSI`iGO{>6aY(c/B7c׫W^rR2Pڄmȫ٭@Tҋ+PF"!EH6%\T fE(^M[;=$>(Vϳ 7:$5{taU_ooR&Z5qɮĊXOn3s)[[_gT>G)^VI,\*~X0l6pޜ}*O.~/ڹ@WwdRel YeD&C-wQ +{tzteLXir?6hY| +ufxH ee[;Wn Ȳ${3K1 +\eBmYbI̴ȜDjHp hϝ =o+F 0a,v.eUs/Mof˗UgX.)3R^6(ƱWT _g:N %c"G6Luwƻ +SH'43|R@lGnX "$Cע*ٴU}x=`J^R'ڞKzIU?ߎRkJFxIdʏmey/$̈́(X1-AQ'|^j#Ux׌zx/,lcߞn8tu5 L>#4J# s!6lgo-]h~=U)"ߏI5k*XgnR? 7b` o4F!A g1q`kp;rA!+г_*8 um AϿ򤒧k>jE(V7R(޲⿠:φ ҭtsgYt. j?TvvI$# +_U; (]OQfOE,/bh)Jx*fđQweMţq?;吨R5JfW:/7=$H҄r]3Kd9;FE_;8lmZ|' Yz߂dPyZu EeCg{ǍXoQ0mG0 +m$8I!RWRl!AHnVUU1X3o̟C{_>k@y+ވc a1_8L-V*9Ic3Iɀ̉4Dko" |< ߻f ޛ(+sY4J ę^im$xeaUH+I/%50K(0,*R}5m .ql%օ `})XAjF9_m!%=X$xQQOŸ=9 $r @fi4~iAhųUeV؅Ph?{ŷ9VQT+f" ESڋ%P]?r}07CAa޴3qϴ rW2D#fKP$Hdaاɹ)Vl"gLPbNM9P9ҫr29]CP +PyES?ybzbN :D6w5I>xޔ+/gOrt*0yBy}\5#pm>%2wi('U;hӢkrB,qbRfXW=P7VIoi8a}y\% T=`sy $yԽlP>5|P[ k%Y&LEVV'PpKKxM0^7Tʷtq<%Ģia##"D 겎9m*K=?x̣mylWjn gVD +b4,ހ;Uk6u$MCBYؖﴋ,|y7=%؏蹁UBB&JaML\K|_`L=q2joȁ}dwޝRb}2Ci택ZM= +Vy'" %Tݓ112sO>Œ}d +^o8j 7 Cae+&$@H啝䖜)j(hgʾ_hJV;{CC8^;&r|3|#m3٦=و8v"6R;%GdЙA\YT$lvG>ܡ˥_Ufr ;vZ]4jz =7'EMx+o^qX[x/c)ؿ^8&"CISa"vT +{h}qܓyk-Y#Ee6t#]A tW̻yǎ.j`H>H!ɗf_*ԋ7OLAٲllp-[Y*JrVL8%HP@|eNhrLRIeo1ⰟDӄٯ95L;xleX~aāaIpK9k#cEn,a5%[)@<~T$6PIRrIF^(F(ko`W'2 -ser~x6LۏKc")=DS0U`!2dm_\t&g)Hd3J[&Ք(Mvkf2*\SU%dBpt \|ST;}se 6L%Q3Q ΣF,:?+囚 D@tbCu!gEWQ-{#It`'njUUVȦRQ +23sו 91n⎹bYn|pL 2߫Sr@Jke]% DD'/!s\[TĢc$w9b'%alyebzJ͔9vQ9?d!Mg.DFr1IM;Ӥqf(aIRLqiI\';9wUe7p{m"ASQAE3CkC^ykndD%L7)9&B[?!.Æ|$#<-ЋD|W;Z+ݩ7g@4rQqԴ +3z-Yq1bT?L'mזI73~٭eoKjcы%PJeYh?Xsn2Qb\~_ޫʆNxPߩN>0O$a?y7:użH +ER^RĴ5$X*m:d6Ug5s_这B}JZ5ٽ1c}~¹їF! +P|ãQ1J& 1[E2>zIqkEԉwy +(=KL+) +=U)km2L%_/mnB$-pzZ֖ ; mn%qeZ vV.n"$q8^+Wa~mgfWj'O蠟Y=}H ުD I vFyCo7nHaˉbeWd0yZ08W6W|KXZ9#\]S1bK1d<15_#ƜH%%GF]h +-EͪZ\^ ܚ=QxƊ%>XMELH2JK^i8z5TwپrӯvFo:֞ pGpR5db)'vȓje׏" b8$z?qeR )% s݌*+4nJCʨ@F1L:GqOdȃ q %qΨ*,"@(ꫛ aJb)KMfEEQW"-Q4`?7mHZƧ(r;N<i!R7XB Lx$کȪ@zP=;SPU]Ej,"Ml=[fi9X# ;t{. hS ǐ+٘q1spV$-ŀY/NLTq=w 짬˧@%ww~y6Jb"Lc1thpJN?ذf^ˉ`@WoI$ z*_JZq#^% ~[}CjO5Ь0LfeKZON 4.KIu \V nlw#'uSî0RB>|`)Gv6u Eu '!舱L1#T:Ӛ!..ѝahKN9+gz!gOZ`8݉V@-*wÖBUT0,YںkU50;JIXR<3Ov𣾰 8ER[$W9WkL\je2o#D,U2#(9^;ؾLKڨ9+jkI-g8 ." v񃫶8[ 4Gs20`9 +dmƄϼ;^8{yu早naΖL*`mFF4,O,99ԝWku;=v<8Ff(qIu'7XIfjm͌7K-|[> ^,ѺZ呌8j%7֤gNגx##5^J7BWNA렕Uv?mL^<|0LnK>˥3*%˭9-Im~\aD `&d$9@سg'U-ңe͒V^KF||OoanZ|_kA`?q::%@= يx8J{WVOdy*dT$>hk7 D%lLS`t..n5x0QLWCz z͸oNhG{ݩO,|`3Y='hTG+e2ûE )45$" w‘ҧU花+C(11_E{ s2(-};,ҡcs-X-cK6':alVϴ شy޶5%-v#0o~~c\];vΦ >48{ƶmvl9uÝ\Ż>׈=.w:2jW帓HGPJ#box `ELkxf9oշRG9 dD'yNR)bm~S2~[,u*6!z$|Ȭ ŀXD@n϶]ѧmo^~6|)&Rfssc?v w׉^&§ <#5%tSp0EIP=Cֲ=WrfyդRI@{v-g_ks:h ~f O|oFw:#(L` + p]tfH ɼ4Ari>uxRl Sojy/j/ x0msfgu l``ϰ[[B.cs C$~{_sqY^)Okߺ)t%CWub &+kC[]=SsSz40tQUZLi(G<^49PBO":OES@ ZaA}iniyѩ ?[\U7SoR'Xn1/.iWH!3^Ω\_)Fs/!F_3 2Jbt*6R$[Sټٓw&x}TXPĭ)8wyyYK:,`^xk{q$wWՕRc/KR!-_hvp}wH ;?Vә-'*2s}Y\VHRO ? Wx+‡zsg\OIPutrn N?,мQbY;#jSZKNW\v#K` œ9@E(@LFI=q\.;t5.;AԑՄ<_7>+hXd_/[2uXNc=ɽsҒ&s +.'wtzs -pA[~ uR# +Jo"!3rn"+0O2U(sV-/doV2裗qa ‚F xK2稷2jv^F [2|H` +_̴_ w 3NdJ<|ן5.Z_|#AF("ޛ릉)VU5LQVODu{Yڛ (buU-);Ҡ9Ÿ2ownF.N(TE" f \UE^  =>,{k=){!?p Ibn~=x3 {ݘbcz% h({]kNڼɺ3̒5T CVmg7lXVָGwXvz64űe&- Vs`i1Fi0ShF͌ηW_92 C]]ojō6.}AZ_sO-V0.k* Ѯ2yVT`HuIqpH2.(Λ9&"W*k43~ޢB%%4߫~'k4rIOz1U_t]]GܷJn"xSy0c KXGU2gb3*&Qv('ߠ#_kh?bȮH]FӍgQ4[EusKb'Kz4L{E?9\נCTgI#*&Y6_MwV=!"|Lj6S y"jgvh1C+|g cA_^2 `okknoW&y,| >G >RAQ *xN%xJŋ;G.~UV/NjT4kG ;(dHqޚ)Ф*H 7"u6"2Bb|?(Ă&v +,6824S7T@Zj%̋ +hrN^S9/Nne阌w`ÚW>y} Z7m_'Tw 2;zNsKf qcQ!js>SNsƍ! " +)"|pSu^}7:<_qRIxp'\mMMvvF&rH͋{ X"60[Sn $$&,jOPdݞwv:2HG|'cbn9Z. %S@& +P+ka)3oKvDkq}s+O Ԑm̀- B#UGۙ3JDK̍>RAW&x9Rwˮ&kR_`}V7gz< 8P9s$"sLw"ckz}q7Um.$| 3ifKb7s۲Ml &䌁'X a>Y]Cַ4S36p>д]5ݱ +Qa!-m/Al U)dk*(U[ +,U{LX 1\"(~D pFUZd6*d Jd/]6pnWy Ohd +ushqIYSž>RxΫlq] (3={[E60xGbn+`&]Y1Hý\de=r>k~ 7/]l,4!rxCbene`6|?z fF +&RB]a@-u[? #hc!{in:ŅjP|=1 AԀ\SineP)VWbV?˗"'4.mWKb +ڜ!Tj +.9EAm$}}/t7wd4#1U0WuǯYY-e:G'ub_ XH]R^(SwZu+Ώ0RYᯨm@+%I:NRV(4--B?X>?dIK9prlOs*1s]A:y,=tga Fu=Y&ۃuY'릯 t<]퉌 9^A\Р +=Jǽ +7v$! ^4HY$X|[IIaHՉ|!sCDG꫕+ 9Z; T(Z$|wp#ڂb,qBLj20; +FvdL˺pKɅ7RZ2ٞ:n ,)E21KwfҎ xkD +ÈUi(EsjRMf?BL,:9@rJ5^+oU`ѺIY5[pB`J"Z57`ڵ*G8ƚ 8nKM'֋z!B,Z!<|.,\l2)NV__^hMޜ'}2UQCNU"0}GnU꛰uFp"#LvVi{ְ \]ӮO<6ݙ%OUR@7-ȚYiUb(vS)&DVl4O㷑HɳBf71*kӸ4i|"<-˅ms><'گE-HF`t=(Np`t!Et"+x0llPlGQ(~yK<{,άioE=p7_PzTKX,a$'z/Dz s */7X_`;4(<rynݫc3Ҟǽ1|Y#V7> 83g2^!`֐mdVcRV[aPKn+vT-q4V)Բ?;;ؔj@^xl͘jz|&Q2fvJV܊n9at}Q;~fRFT\0@5-&g#$].! gwDqEd`;6tz$ߑ1c"5ߗ_MYz |Q<NXPq74X|fcZuޜϋ}gv;+F3Fh~nߒ7MxC[?ko740EU##WMM[8QAP#͙XPNPNw6JZFC\VO*2U=;D3)*x:^.ݮṁH Q[r: Ւ_0g7M0m܆В*ϒH$7"o)QNƘ1Z_K֬'1^re,&KNTYntҠ bw~b;4])ump i12jS +mzWV#%ڂ)1ǥJECYP&]\GLjsY|}JePtK-utUcP57fPH] + ^dz)hjl +0u1| Ԝ?S̲=09=Mb1m}QKc/۴J!lMk˨bÞhc`qCi]&0<4 xF9>7uچ+7 ڗL8@z<`N+IB*8j%Oԃ'Ro`k,&A²DOAJsd!c[jZv }V%kLVsByplϭ^ i̙G|Nb4x^D_}U#uݍiYӭ]|3'33c1wG暝7KX7C1N+6=+,?U2ChjO}E Xb_ml(U{J qK);D_C[d_J~tW8I._3ׄu UӁ 7U5RF>caA=4(j4<IY[̤̔u|h77>r\rL0~(hڿuBeÞn>uh'a^`/ EG>>\~AfQj Ei~6+=}(YTМŮIYZWi^6;}=dd2?Z ۚZYGP"nlagsjdW_I+v(mu> 'Zi;|U')vXͳL3 ue2lŀG4hG慸ǶEqyaY)Ni6c`pNL:Knш)聛`&%6T wK$Kz=W4yfG_%8}\j=>9- 4,J~ݴ##+q3'5* |**:`G4tBØi6+ +LWjT4Ҩq+VxH7]5Wza~W 4w#t_~b +4PK=G +1Hxpنq(W0H5Eֻ.Q$ԷًˇVu=5X{(JXib7r$($d =DJ-$%7†ptfQU!49[yd+jD?cW9F./0C_bP7iB:f]Wں}5[7hKs`H!V|K|] ʾ/t*bT'l4Vu] #iɶہ-_QWcEmXm=؋H+ +mÅK6q'Ǽ#vyO1 *lYa;F'[i ` wfs\.6M{Qm{xRźpڦ" +],$kDrB>ӒMi"UfC&8$qqJURgMqk7E ~~jՃY +ha&iVY.gR*a.qdEcu3;u}կ^gٹ+=N Ag,*cKY7D A58})Y X tRdrt]Wi߮*wS8p!UƕT#˒) +0Zgގ[txuz~!Nfu6kdp('.&S?NI1"nAMhQؿ(IUGQ'M&'dbQr 2zC?]3ǁf-%_#.Id6ڐ*VXy^ a|,l݆(q^x{Cu>Øurŗ `:DH@:L'm`;V4M?_:+@Ѥ@"ƀdM1ج@;LJĀ-`2cFh ~ \&co :./0'^_=]Ft0 E +%;= +G2X+z?7cb>tqSɯUa wJ2G"zO1#휇xbA)qbD'l;QLfǬ JQ~",<!y[aK­ Jld†ir_v_ RrZQȫe +auЬ%yj혙gLO.ϻ+2gO"]2> L:D[FoRVAS˗u8:bNto^z<##1p˜yϟUCsv3dth *D3[ec5|B(㑎5IcvcԧEx'(q@3{Vv^ç}5]Wu"xfh(fU߄RC-Qhy\ۢ%B*pO|G+*0D<Òi׽M)w!hH +|t&%Lɲhz1\cAd5"'/1LgR+f}= Qm)<@$ykPbYDT`1`9ݯ)RÕU)52? m9JԜC/U=AF`w pY[+c[_ QoPNy(I 4s(,rD):$l Zߖ A?k; )~˙y9,,5X]m;H T\TU.*U..`d6(_ )N|$[˞D/򞄵7%\4FnwB +B:BE~ʀZ~́== +)hdkP"xzV>aX6 |jax7 n2f$b&5 #`aoE!nS`r^ GEF]9[ǘNKWp а $;,EH~0ҩQnqF(lg݅/lxJot~0.xu +x[xkv_`z1BMX?P;qfS +)Qh(&]!7܁P:6|}JMW~)Vǹ;zXB-pK.X4prJ9)1'!rcL.1s+s8 +<8ڋ 0ȘRxjZ@4،?בTQ)ɛm&И*W3KʰhEB5Ɗ^_z9?r躆RF{&i +HJ5ի= Fd{*Qڗ^ѻԺIS.ĺ8Nn6orr1!;8 î *t&v][?BHo_pT 7x@BoM m!,]g}҃@V;鸟ƂWZi cgoo0܈252:"lyaV^2<ۚɠM8yO,t'[&tOp YBn([N$G4$ոp)ÿ,4UGuG=4 knI(T*2*GLtI'5͸Q60pgjM_/SYzGnj]ݘ[BJ Hd?\^#;c쫚Yօi[ ԌQvQ'a̵Z'mWq!)} 3OMZ*,vIVI1cb ΜIc`by.$cȉ>]Ԉ()P1x]"qI` 3w"SĜ { 4?|/~v Z[~Q#N$pT6E*&U>z~lHk)Hq|z>k+C،Y'wf8::';c +. sg3ϤC a?[K|NNIk.F9aY0# 7LSfDa + =IHsxhT;3Zʥ&j k!c4|@q)=ƫ}7~pRM4^M>o!\пFSiCs*Zf>.Ala^?fu13NP<\l38$Ao{G+2^(3l}bcE=f3[1ZQ>FYr t 70'J!R|edi.A 3-jj #V2ƊҖ㦠}gpC/Ʌ8ӨHx A: ƺ+7p'eX +ܗ̣|i% Α=[7XRJ_AL4H=t3DFF=J*(VѰ3Y2ZX<$e@N C8%2ÔE Uک|á +u ]GMJU%D+#'z +Ձl\OxP\&8Ob$3 I=d5>EA">fY,ygn+g?fD$}7:I?$ +1UKiS31H}y$T0a"Z l=ַ2eL8hĹwqC>ib +)ُZL ,OF@X1|!J:P]'QVO"WmŶnR^<$kki(ohgenZ(Yu0_k y)h( (GJL]¿(Ֆ؏O̫Z|H}kF @.Ь7 +.|+;lo 5v$80 0<0N]䱃gXM2(/F :c17I__fiU*6iupGW\ WLjB(.wEFouj؊s`rn~Oe춇}nQh +UZ]%:6[8P Qo@8fqَyuDH@ЛGsc/(nvٓva8:[7RV=@k TNuRfx٬  +TɑQ1BbcVv*lT$,P¿#YӐX_;c:/̒X 50T}b=DN|"UʇeԜG"m8P/CE}n˘_&$zT&mYDEPgƘ`NQ1vahXcQ[J*Xw$fH0֎⇋ q)>f3+ADO>lv渂!N~|~gNŪN}Z6!A~xOMPPNX8MO2ȸ^FO$uc'?t֦Ib%6j=DG;F b<i.[,3 +MP l~bzra4#BLHD AǠ*2>oKuBcJwQT-)񊢛s*x8αFSTԪ/}91zf4ACqy0,2'1[+ѿ]{Z>~q,QQy,RqMơ^ddB(GB4 +,Ifv`Ay^j"j'kfgˌ߯_. K#|z}wq`&ykl?)aDe|DB"ǿa._JRά,lg|Nc-Ywv GlOwpWZ)NJYq2, &R"ՊQ69CU<D|ӷeJC~֡D?zv` |9 +E?lI/ar;>lX-)^"ܽ +1.{hr5Yw? ;=4,tCmaաDMo +@桦7xՏ/߭+TuX Ss:E5ԁLӃG$r'hR'/}ߜz͝otC>!,O*ۀFy!И)5PsFPVd썖!~SEQen +$Fjj4 ST + Z8W?ziQLY7,Ҟ{qa<5V ,p~NCGeT!l~1mE "-Li0;Rɪ8!R3 ɻ5Z{‚9{QR]ƒ HFߴ9@A& (n태! р|j)ػ 7W(k`62iV`T*9άTnUV) %ma7 +_970mH"}~̯<}NwzoױKع֧N2zk;In*Y/12+o4c% 'H)_,uCxu[[ ]UFL4gO/a'}x~R6ն5ERN_tj[rF9-21qLCY*D"UƨLHtLȘ* ܋Ϥhi'!m/oº^4)Ptׁ%2&&e5C'h}0ge J1齈Ʊ^Ö+k穗wFF-u:PpA벝xOPe FdgL̙Y *$P(V;)ϩ#d]&>wEY /ӻ `F{As U&4:.MPm{[WJv+j r<eòӥItwisz}AΕB]I͞D@0.킅c''p{Lp+B љǶVߎŰ!j߷d>s-}se2#2B=s./S~Ҕ'C+!,E լ"BpF.u'?;~Є,Tk[ a'+}d4$:kV3 8&pju&l(jCZ8Tӏ,)wȖvj Bוn-=UIX(J<[UKBf1ayIzv3Sl)U{5eWj\`.5 b 'J.-@NQy:/ro#$W.l"<pTdOBƙUu1uUmXbUd$Kr)Ç, M`R<;r1Zt"лBB<}o'$7>P˙O>%yQsyqqmy{v %R7"Kt_C]PR.< GͽUw)ҜiG +Mޘ0hJvZ)1nE%p+ޑPnJtt9b@B4h.bN_|̆M:=sil&=u`PCXv_U[Me#t}^x%F"B +ޑ|&;7K md&5 HPJCe$(F&`M s]E:Gk'T>M1$qwJas@ew1̰t5uƙh!n61sIQfsgsgJM#lCN-l=5cQ T.y%#5xdA +soL u(h:Ysh(lAS7D[퐳\Ki2Gn֡Z`qOϒ 22=2BVb2w:aFbTYyBU,ĭyl5 &ɤ)\6F/FE6HS)RTpc84~弝=F;ÅZCPy*QabT]Gn(%)Yoi9|\9,\׫, ]66 zxE߲-W> +ZZǕ$t9Y<9ɫ]iX| +#>"|^,v v!sEޅ`>Qy +㜽rAV0--צo _ľ /)=6)LT:uTH~0 㢸5(W!kݴ$bBkN+, P> +R4# G~=,].9Ac{q)9>^KB+L.Bn{4tTY5pg)3j%0bʻ| ܡ|uт.{ٱZTH/0.8Ġ릀'U׊RV {gr>dZq(*ٸ>^uk@8: ։ (1sn\L<2MhB| ߰@_ܿʆ:$e0ӋXYǂlaPa8c}~QlvK7n{ 7'oH&eTkԜurh \3:-?ՍOcHgZ].ى.  lo"A,=rH;Ju9AG^Pu^e<˧?U]_´)K)>o㇙ {.9(RBe$"S|oTxpU[kB'N4v&9/TҌe sU( \n) T) l{5!CgpEꆅ@E/&}7}aCU_ _H:I\}p#]J]^权Nj M0uWG^ƖXdyF+ҭ8xpw|$tRÐWRČy>`#L|G!{%e 7a:1L MCbbMtJwUNn*ߚ'97S74еuYM2pnO<"2V >Q^.c3!Pn*较`an,ۤDg棋szm<'=DO;@Z +KWm:W&RC/ R7Wu=p2o~$fϛ;g+=NrL-Wc5܉ |9H"KBI B +cn?\Y ~ϛ5$a" ֡\|F˥g SvjkhYuHn{sݱع(E*GY"#V| SZLd=7_")l;F9؃qkd5JgLG2ӟF$G5SOCm g$D( ;N:< +_5l|7}iQ}ۇo7__1&ʮ.\"}̊vJ/*^P4U}R M^ p9 Jq[ʾ?-9< ɖ*sfGi lZ*JgLG|%=+S!ء&(ad`aRUmFY v٣vkX{t\kkҵ\9w^Pڟ9_;˕:$ `1"|Lվ1SA}>7 ȸ=͏ҩƮrs}OqC9'=o%F]}XƨҮҤeJf⌚}[CN#^WTE.kXVi|#@{GE[)OO`v@M]Tc.W~ݣ\NķW+Ąĉ9dc(ҽ"<9zo~R;2p, :4m" ]`ǟq-)(IznёKU}V92}+qw]DF;?xI,S]؋kifV`S_dUZ5xP3ǠnW'$+l6w_+tm-LSSw lv ( +3ؿ~PUZ>!LtmA`L3pz_hKeW &~Q+hy&[ӛ5?tƆRO%l{DR3SH<j)<,; G I +EIK,SՆPba nsҡAQyM-Țcjܫ^;OdRZ7h=9ec O>,-9,dOܺ.`o,>6ܟ\ H\`$dG %[yŧ z"oC!k.lkhcoh,ohgmeiL#4w#QRT.L )ywv[02%۽k77_]ixhNU{:|men,$IԵP+H^жaub#GFY^7:4,(1 szW65riZ̭u >'[9u 4Sd븼̜?<Ҩ4joy]ޱ42AJǔ4DX@mT]3&((!!d)D:myffT{gF[]< 0u08Oo0Sia+w)sA'^&uZ̛k[ƹL-@A8\;?m9a*Q!T2MF6QKłH1C +],lk䙁DϬC3h  sL"b¶!Fl0l}&CY6#=Ds-s@sc+*q|dgǺj9p,4Yv׺y -˸F r`/h~`'> ?;J1!.fz'#eNC+vd-lm E#.tt0`duyQ$|ĝ6lCiUs8/ZOStFP &z=KtfYUTp+c)qQԴEcYd=\A&z"-)r2f#rQS;m}î8NG՗Ơgj{zuLb 7OCAH1 ) .8:}OH +9Lڢ d0P}sZ2fiȡ-YVL}]cl1"DbFHHG>a-ڱV'Zoq6HeLWiR9< =p鎦|q׵46@J 1YnLK ;2m.h 1SI-8[N{X""ǛwٽxMj `ai'+ VK Q93M,9x;&-]M)骇)׵MxEdxrd8wDO5bB,80JUZjx#]J;ɶ6ݳٶm۶mvl۶m۶m]k;/νQcTDE'f'դg~0hVy>r&({j+)(?wRaXxj]JwAܡ/*Tp0:*"G|n0jPHw"m +3Ĉ@ip^ 7$!zyktRv>|} };[I!aƇWP<.?oe5;/hm`\|'xշTLOR]^>wIf9;yAJ VVbHBKc>p"yK%NBS:,_0Tg/S0N;x C's%9JS)S{OlG{1鄠\嚮=#Xhu3vo7>j=p k EuNrD5H#яЇ&6EF<Ҍ2p0c2iLU%;$#䅉;x"_ϔmmgI<j1y +KK[zldp&$<+>l_9t'rjV.17J;I]-$6 04z9q 43R&5~ U<@]4W7 >$VInɒ>OѦ'H#He_gpeg୧Tl0Ol~a1Za؄|D7kɲƻ[s=H2"ƲF3"}U 4 ^iP53w2зowL2bt2O!LagS-Gp;xW\kWuBbHgl0@jJSQ~5''|SV&(Bڒ_PJ{kI~e=@jJג P ~ CRX %}~ːzPPIW{(<=%H@Nľ#a"'b:RVQPZyh룾Vu"J)ITygyJZV|㯈ݎ3|31E\s3C&f{ :ė}24PW%%Ooӡ̞~D@e1Hbh|Im*%c05MM3ĢV; նM=5y^*I^0IJ%ނ>al,OgXH,V97xm`wv8jVc"Т(A$ccZ+>-1`=aeXOD$ȷo-Z0BA _+S&&`)8iU+e R*|FEM W<+H@@*ڛX29oC$kV n|mrNսMä#`e"RqMM+DNM^hՂGPp* -S=F,Ec3ծʏg%>Jj 1-U+N1  G+FHJjN /IůG7)Ļ +D 8EDy r$kkPg=IJE1kLOu-aȢ/j):`of0++Bt\`E4)tF~*ᕣ->ch#0g+,N>n(?cLb:AlhџH^JX)*>zCv^1#*X*rW +SdMK3΅% a9f,3눻*o`4~2%!S[ʟ5o/3Ӻ'X^+.i9g46i4PrھƄ_~R+_ DaF]Ajs1%P23SՂY8"Tj3::l/( RrP3B$twɊˢaǩr{?/DS6YV̷g>7-a!1a(_lӏ(G ̴򎱢{5j I7ALZMz, .m,`)ym7ѣaS!}L^-M/!D +u6=7 +mYJ)3O oyv.$]H=P墿>\N`d+ ׄyh +M*P|mQ1Z`C:O]=Joj >xvV gxh4 K. Q ~h\ŽY_"WrԪ=Iʄb1HJ%ftEZؔ +) m8fV͂~:]VH(lݟa +(O\B?߮-Nk 9j)>Yb]9 NEF—Lv,1LsֽRpBr1NzX$̓%SGC!1VjAʆGۈJ7=4iC M as ׊Rs +V9_nx)6 +4 ~f pc1)S{.F#=W>!{nԠk7]fo+i *XD&4r͚.n.cNFw,(<#gb\sFJ+=/RՆ!$XH=ejJ\bV]- S*2ݨA[U).e*zU)a3Yn~g\1ٶK%r|~,Ѽeom4aÍ c$ĬӤ *=r»l/NUYջOVהXB]l^?0g⟕I7iFºم%ՑpFn8gL%ކpզt ?-;bHNWds[6,+Q{0$z_qdq Zmٳt[]bqHU^|<`T3a"kw&в& Jee.U0 V҈[.uM/r뾣>^.$=xVi!:޷1٪8p!}TG9v +?;7[/jG;,h= [q,>_f{znyV-qc~4Z]qcu؉ϼk[1l:?}z I~qP{09ҏBۖ˲B5ǙqBXs|S9S@\;Y|4~MNJT;ʦt Ul+|;*ALM–猤D+aɰ6F1d)G]96ɇZ9D,(OxGxeMfVt<}mm 0R{:[c|)fI} ځ  p;xǻZcxK)InRJ9}cy{w3xZczM?~.]5$~pS>5X7Ԏp=O59Z ++0fs-HB"[6d-g]IÈ,TO] x >k.w ¹gN7*w O.1-o7ec'Bgb/«Q鈏CVͩ:X;t#vJR7e?ALhpwv +?Ѳ@5'NX%{l0۽1P^$#_QX^,l|hGml4"RzA~2l-+fuO vvPPhQ]!R|_it#k(UUj/k/[Z)}_A>a>2dnv4Z mP?Od}\]\Q>_;To]sfw<~^^ qRн}R$}C}&h:~ߒ }rz8f Іvј:ؘVn~oxeޣ,RdـRbd™l:߽Ò=tCxMPbDžup =vGu5;}u 5;vu'fV /fȋj$OMD}'֧~Ꟙ7b7?DcX2_#l^#}#v}0c60n5vr@ufvdx1:tpGP^?0٧Z%Ep8DG"J2}wO0Uh07mvUVv&Y'nY[xl*&ՌֱFi_b))wKP'ĪJQwy5%&5Hl]Ӽqxu5v{Howu$n7~ _u?cwWzfxvtNHn_m\mxJw{P`}@T`\bl`4O|`y+Ve1cr L{묒Q@:~'ќp78?)L9 tmﺷǸ\%kFi0AL̑N њQB* `5]߸(O2C8ٌBkaQhѐMq,]y *᳐/rgR4*sZ]jcN"fcI9V "E b&iEziKyYJF+M/i%=ϛr9$JQwd-a2X"?gB?3Ӟ~4Sy7XΐZu!*N[Z_4Σ)uȡ`OG_v'G :/sDT%X~@XCBNk. &Dvds)"GJOr%_D +*Qvl_^^^.6gE</Wjھ0C2NL^`N01`&"WW&ٔ'9{F4mb*׺#TmQ/(L;OaE2tLvW=;e4lDZa hh6EYRBU/kbCVl仒Nbd4{LCNakEUS Ul7%J͟nR˯t +['.gFД ھʏ +4CDz s%j/DSE3 ]W_2ԏH"š~~b6J^@C/At!vG`pxcHTq/ 04zIM ?fdIw[U'(0PA5ŧ셃$4Mԍ:qJ!fM -x8锛 &}Yt* > wO^w͠DHvwp8ݧp4zpn,<\ԙ٥q/6h|Fڐ\<a gD5gm)buo( bs乤FCCAd@{aӿ2o +  +!J+i"#}Bj&EY@"5YiZ7kC_)$Si.؄}Cωީ& "&Ms:gLtCnW}KtiynRنg-R(6oY'*-`;)};КC4KawIV.Y|:/I"f3άf1ƚ!o>ByOWoha?UY d)'g +GLcrsHFF{_2.kmNWD1^ƶglhhn.otU7  ygyHMP Jsi Κyv¨h`!\kkG-:(B14zơvbPEFVَmS[-uA@>5*gZrpߐ!ږ0&e &ŝJ}wTrVgGa0cK*ʩ]gNor:`"V_ la5@źm9mr]6#ZU ?_GY}S+X1!T俆r_i؝F/o:nI6HH}l)jsq ^` ,xb;߾ĄBLaƬOEL$D$OMcx`L+\ɎĭdI$#=mdž'fƫ7U>?4WՊHsT;bcV>3{ y|2wn.3߼p<}t y}%~JE'2^,"Ne c+]apN (ݰAIcw!scC'[N1RA<NU)0>V}VdRm՘zKQmӇ &Q"{eE6-6S<>r_cئȸ']_&{CPuT#ue + xC2'J8yxpT`G?6uCکk/SofG\lkG(M\c`JEwORDRB|ƆOve5$kAL D]Z:GdY~"k[_v3;&{_Q275 a"ٝ{"(%F']N_G17~n %ۓ2.<[@MB` r_-FOh߿0Q@m$߼2e@-.I\jfٲ֥35IV0 2?z]}mӯ4jOdU->=⍭h =^ :>iIPI:+&Nz'jՌ +oL:ԫ`IL#tt/L +p,YZ n߯fR{ C]M =螁+PS5hDDq(h3 + {E.hke hkbb)hAQ"z*/6(XٿH$z@`Ѝ,{u.tw:d B> P¸|klBpX"MQZ(\J?O/OE]vabBu^9RRztuyzěSSܰ#`s^&=s{L;}x ko= +&=ߟXpB/jELY(̄WsA@S @  qj;- ow%s0vt˛,m)=sn(DnN^ṳTh.D.ijجQ +C>` żrH9]'j]֓EJvƍNZK W j"=(=EVj؞9bHisGf2:nLW$%vCH_Dp{o: 7}  "6je`ҵ`#$IC<)S1k'GZM uMjU(q㚸 +rVZ@"Y#l |Z#³y k O~ҟ#08Dl N!ꋉi $WdYn)l=> +]cfk"9XE7tn0R0QGad8p(5kpސ/w|-g1Lvqb![" ~,hp"潕'Zm\-`_0mn`$,Z"BSwV#q-z!)Bv@ MaxN"[hg#>g{$r"\mIqeDG7QDI0C +j|$hgS0ք2+06x_g5 ~c#|`ydYx'$ /1> ~_"KKȝ<{PlmZsLI>VZ*~|>]BưL_!sg%sKo!s4Iիue~vEܼꪡ> 5oe~6@jYCE\e~F&[ĹԌ4I|aʃ7͘Ho {!79/Óv@Os ,, 3(6|]O4.5w/T+ʏ +ٮ0 cZ *Oꏏ]2@?n cL\H.=ix-!gR6@-13u4͋7ɡ2ߢEHt 1TU+AzHۢM["W?RF0BAIFmm :B [p}D-CTJz _P +R]IҠ`1UInYiQQwl_a]RETܫ8qjݱ*V`Kc + JsJ#'hZjj rX*%X\h*)j3d0LADh +2̽~]U zv*+eP)JRuQkukeH=iG; ؆t+/Jf(a5%uj>3$?<:n+RDXjm0Lx 0ep DuPeֺE=U` i#`(0;SQN>\(dE BzJF|z|dt9z Jpa6tx?؆n?%C aŢ{9:Ng(IA=~` R"EomǷɥX)Aµ'&7UbK\eP8LC杏@LS$ ԖJ%U_5)ZjTGizbFЬ@Q6O (R' ウ!;19tM$[ju7sKŗz1:(SC8 9ލ'`><6.Sa()5Gj{+h'=659a0/ɇ s[k#Q|0_o/UnGo +5hRS ұ4œ pdӥ[h*U%R1˳X 5/UU8h3A}Q<蹈gXR_91#U(QB8FZ8 _)Ԓ=#mz"..=h7 Qf:.Z:֗,D˓&RCrfAW2iq/n"ؾ]D/j!*`M2b*q~HOZ9a6eqPp +/Fԉu@+u2AG$SYD7ŅF9u5[YdYߒZxt8ыeHCĦ o@qC6_Ñ*B\U9@Er77̍:1V( n@S$V ZWW-K=; E2RD Ћ1=X$,VWUFZx5șiQ79i0G7DUKۈJCP^Eb%"m,}=v^v'ICFTKY=B_)Su[zGImb~W!Уѽڄ+3&ji"#7FݹOG O{utrv~ΏhudCcIm۔ڷrIՊzݰ`cGeGX;e/Zvo%Ӈ% +o_s-;Zq/͸x +JB)N+R#gJBݸ:*ؙ]%q1@Ii~iz`0)Vuu٧{ {E| D$;펹iY5q pzd|g5Z &OӐދji;'Bk}gj^c' +]9Sc*Y>sEUoı:n4wH"ҤgHWCp@}[76 Z>^%8Fʖ1iFN{lI3[*]>z 3S3csQZWZ(!,%a1 +w1l{ `ӯh8cȡ &`3G#iWênQʔemEI\|L9*4^FM;T +cM;hwz=MσkU^`O:@٢'7Pxfu/toXԏ ,uC@)yòkh[p=Dm Ok!%vA 'fu t>֝s F’ǃƵ*lɖr`(vgQu}[^,Knc믣h27a&vEga窑-9 &G,>WRY4ҭcl^YfNBSK_g=_<@/ؿ89kFc4;'IXɊUuČNEƖ.7I7!} JDc]Jٷ"gƢ8gky  S`2̆:p22 EE:sp!|": x8d?~T"ӲEtd pU|#\]畐Uw2ш=nq^c%p辗9nH}HzJ 88,nɫ0B(0 4LDۦhϿ޽N+s@}V"Z3< ߲/^Bs`Ga.Hmr>;3p;/,@e -ngYX<]lqAC+1VU?zE Oؾ} ) {%oğַĈ9a!b.t~W՚^ށ~`"X;wGC^o;[`Q,_Fpwz%߆3okz0ݭ2}}']Ӎp:p|Ӯ +cv ~ QBB ړ WW x0uiH^Ir˧r i ꔊUt,TF/< K5;@й±O.4M(!#,Ǡ rEl~p.D9U=^Q5쾮,Hc;659)âR)fڬzc/bz[*`\eN6:٠1=i )VՕ~l|W06:R>At8)5zޅ4qQ+YvnJ. gMg6%@iwŁڤ|klg$!”a; pg Ud؋h-vsK4^/ [a~J~2+϶h"q{|DXe͇A+]6X4!~J/W7i~12dY?W%A=4'+IA~Bsh@H\Ga?"|BNjV9 Df#vY09S@Q3` 9Yh#Gmʅ$+4aMNIP3RJDGaM%[/,xH]Rr3Q$0)bhFQõR tt#yKN -uj8pzJҶ5퐍UV(üsbu^I~Fa +4׶ tڊL+>V[S>yTX,-U;xLMEW)mCs ;DTA%SAeWKi\2EcNji\ +z{S!O\+Jm`'$m0'A'[.lƫ`Me$eȜٱR-ר9}݉o! 7'fSpPkf@Y2ů`:opSE b7n Mi䣅t&*͛%աB-1}fqiQ$EЫ!_x\bޖ-( /,ިCn[/fVyAl.Pj^<`ʘI.Fjf&<Fш_6CZ}8i8{]uPin;yWOqR墨1 @b,kn|VzUF0}le{E|sk^oy<ߞ~s];a=6`}Aݪ:'+S1:*(:,##W*`$m;Ul^Մla~0E>% -ÑYɀimyAlIi,,{Ub-bPB X+ԲFJ݂&_ o=Zztv>dq}^Q)6^5h P>֣v 7&{a۾uf"G0FR '|Cԇ*A= U䯍 +?xm _;\Y%8F䒇 +dhW8FN_>n~[ӐU>iZYjTkt;X&/ +uhIzMK4Tz5Tz^'`%5pD/?Bno'a?T? +H1b +Bڏ>z@iI 4I b"RICbG3DG(q5$/cJG'JJH VGj~bHCn:TCi5~RZhuZR K&Gd] Y!Jg7~ ۧIhQGcmRu#"k(n,Ko<#T թb,yݥrhsedjPg+b>kw먴?+?{In-9O}O{:CاL:T ~K"qQ:(&/RQ KΞju"">2V):q಍Jtg86P'ͧ+T|Dh>KB`O…,%0sA7Ix OݢB\܀{u8%`0]!F*/ +E'{n +@ ̲PK:+0CU6XlqBTcNrk޺ >3^>̈MV0 AݯP&̊"ܩ]9Mf^E@QB_-j4 n[ꐖ_ 7l_f5h,/nx+:N6&p(@ڸk*ir{1Pi +6c+[3T"a4Jh 9Pth㱸͓h|d/̑=y[g4w5>Ɖz5tAE$5r=;ib~ Pǧ.E," +ٶjFq!eªV/cÃ2Օ~V쓅ZL穩|)[dC/s+@BՆ:*AB7"-p/*!5`Ϭ=CfmFVѯq, *.T]k9LaMJ'c}HFSIJфޅ#N^Yv0'J$݈Lߜy:dP-&6Om._;ɽ79עޯ1NQ2V +Q[{ARj~6bǙBCmG2cOcg9*\ܻ2Ngߏt_! &ˡ|e8>6q̉ce } +p³V)0vQ\_B}$Zwze^TWN Lr^5:[WĩV$(;;)W2R Ɇ繺7 фádzZ=믅H3x{\ϽDs9=uW|u1Vuq2jk:Urzi,,UKrsײi;Z #΅{PeڕaҠ9GirsbSչ%2_ *07*1Q */,1*?>{ ^3y{^3K6WfcbJRdALN8gL|x>m;4~B;;Y[1(="k_9 O(O2e ?#oNb]qy|Cj@QVѿ1kT9/^9LYO-KF \oYUh-[Pljojd,:5Z"|'*") sTs"/ky2(*ADݼRm91 xt>ߣH\O +ՋB^[v ,ۅV1 +x l^^pq:^zgX&`BF/q5]/l?s4_&lW?j/74aĻ#c[0PN|pWhWAVWhUp&{NWTK8A놵8鍤{z8Yd0l +ke9XOzJzn6qa5Oؽ>Rrt`Iq}EK5lzy8u7?š +kj![-iϏ"SsW;a'!a=XB\ӮMx$*+ce"W\=tֆ9<,5<*ن{J}I5ve ! O WK &2gOGZ,aGJspB'LѶj $x{3 +YaP _vHh/YZ"' "N֏TXѬ*%!?:OgҤXYV9Z_>mv9[۝wēAcxď- fEp|ˏ"R+9 z7[3ڌ:xRůh͆@܃FZ p}/+%R-kMY0ctRΓՆEW~qPCU~]О}jfx~|趠Uּp;R쪧/B7*=$'UKw^^H뮢"}M~7~2d;feG9#iEȷYj0Skѡ4s%l`_ؒN:|YOE6lY1uer\ķ3R{(%@]Є庐J({sˬoQ`[^gH$. 8(sV@תj߅e8?+b?!MM$"s43)Q Mby.kI&.JߦN3ֆz2 +/ݡEHRksGyEtalP,G'X([|W9=D,r݁ԄZxҁ (gi _XdiNNh)6ľS?"BZ$L_fNlTb g5ׯ5>}3Jzִs Y'M7w׀uV0gdž1*'7)Mc=L٤bMa47s:o;3x!kбrbv dLwyS7fܻ4? +Ml Sx>`iB*|^u{`ܾxxHzhmmbOV,S(-Kll,Jt1JIhIpBHqyi :;:ϟu(8#IJE>F#鞶u҆rF* vm-#2 X#&$UA$}y^mvۇͣrџ\A%ܝޙ,"D[;ƭ3akU"a5B»aW\_F4; +?˜pExyIz8U7:Iz棭b2vQ%/0É:x_WFXhVqPD6bzD@!dw3#= /ПImqo*&i֫lGEJÖjBkvP e\12$K&GE}O5ْYaQFi{$ú%[0K@ Y|I,U0= xkƐ15VNV"Wx~N9"z85u@iG3N]XԐ/yQ+3MMD{@JA=[LGtoմ !Wc{fٌX;Q߾EqR.~ל&@t;6b^yX-XP.r + gu)duGT,62k1Ј(/ Ƹ:k3tޕE8ƀqN%]ƳЮE=%/.UͪB8=;?K"zIZze eh.)z &X;N4ZH k()/3$7DhCSeěK:@p5Dyd63d +׋ ]Tn>WƌKˉtX5 +! ͭa..aKG2^xIE!|Tc5$Я4bK[^ʷͰsʫ K8ǩ`fiX~2im5m5iCGϊR9=|thOe5MWRou:3j7::ڷsm9hOɻ%`sgkv4ךS +2v3kyy)Z5Rc s/5yG;c5ˠ#&.N#5)~<0ꦋnUyCQ#K4"QuP**pPqWrQd*->H1bp(IJ l10 M40h.G0(J8j.8tLg.i :XfM=!:EomP.9eړ448f>Yiw./1v~VYeR>Ux͊Z!fZ*:Ÿ26I3›!;%bq̠޶P`ToRel~n0휜Ve|~"|̱b|Vm9T}^1S1%]=2Ebylv2v@ºz,`b{Lnb9v\`Qة r0j]jYtLS5ީi]bpBjg pÂ;H:p xe93EX3Iڤ;n3ϙt}M78ɻ楓c֝F{nN{`m՝_CJM]`˼˼;s6sQcv"g=BX^vٿzEmbߤx2z#Cۑٲ96y==LjsQqБasPen̹uysmkB@Ocp=Z~pFWRW35v_ֱFS( 5p-|Px=@aq-yW~`fx>!^Sx\=65-d4kwYYsF;'da{j~dOdbtCUV*8᥇~f2!{jhӏpF\c9['=.3^uuI1% ked63\ fr qfeL%jцU߅|i[Cz}RjEtCSXL>FOR/be!#NdWr,T +~nIʟG&B#1}kuJ\UfQRRܻo\cqzv&yx9J1>&QK~*`3r-Jc?Iϊ?O%? 7iv 8,ɪo4MRUG !Jv l^A[]Uc+;j}/u ,8mb0Mi;bT/a*x%wr0k8۰wVtgJ &ڐ֠بAqMR}}3G +NeZvCl`ۃeOK1O%IuVc6wGP +*m"^quS^!)*2_5X4+>wXxQJqy(*6y87C8^\ǾmЯtyYt\^qǾ^'wf*qbxx.}}#De"0>VXzT>5wFo7G8?uG_JDߞIg~6BH7Xvud%$/O{ڤ Dl1h Qfl$@ `YJ/1&Y5zTyѾg |n݄2/W6_+>_0!aB3@$F6fCGrhٮA\h3RVcdIߵv0ТR:)v}xU(Q^bbȈsntHieB:US#O{[hg!D608+ 5?s4^E3(-:acZ,,Afیcۍ`oI[à']2ʻdP̳νaOOgQx"j)He0 fN$VW0Z{4fGffs+;,[Gw Ο 7R 7`{n!}/W0[|VQ9eCb0:mSAޓ&4鉵@]jO)9~#|aEi}BªW :;LMKkI1JD" ;z*(}sWdAV4zv랔\ +t߿dJЩٕ+ T;@itRiZt1jmAJ 1a+}f3@j,@̀g(2c A[LbT#%<ȸ]2=uI:"!+䞓[`zu6m=YX in$` _4 }&;uoY zw՚u.}e߱2֦952d3D.sY @.k-3\n5&lZx)Տ m zTOтn9MoٳE솎ndW-GHm:Nt6LYHXT*WqyI|`> WCse䅂#=|iW7$|Zc>rp $Y +nEUuʳ^rr3LxM gUsO3GBU Tq"z7Hk{bЍГW_koތLztO X.i櫜ؗW7L4 Ke^Wm-̈ks\4R"NkacT àWL|tSgA-EْQIS3=F}uX9^KTdC?ɐ+n%kʊC: +!n ^oJ_XpK/MWHC.=CV11{ 7}?M59k 0ZCxmWˤzw צQX.hoo!Qڠ9#Ό6Q,nv6k2sg58M*:MojCOΰ4!s^ΑLO<F@s c^H[$l8A`3mߩIr#8ZĮ1|JzSĔθrmո,n2RS!J7rfg2[-6@IʫQ6IKPgPV}oܲ'?.FUx;d&:lohTByD 1O|Fyš-Nab*vY~ rZglvZ!#X# 6Y Ӈ'6#-Iuc4$*&3RVjM# ~l{g,7_6s=Uvݐb`$3RS&^\$[iKn؃.l/{YER3uLF쥞fƵx\5_'հOH \ŘT2G_&Դs5D$|tayv%C E) +ܣU=:Duc3l=wv :#'vɀiղ@RP".;Ys0,1kb^fPK.e)Q7}JV4n nD"̔ +J2ީT(g3b(KowZq2ˡVE0?6M& +o۶m۶m۶m۶m۶m>힞8ӧ#뎨XYrC>n:#WдM& oc\2]tٶ7g!rpKsA-6hùnJ`ɴ_4xi8L&3l)m~ߕN\e9jirNީ/(c?(X,~:ePgwDUʇU +#"W,ˌ|U +uAV+MyW%!pƩVcSrӨޟTsZB1mk←7C6 NAuyҵtھW9O#>7sCwO#ҝͧtDOH @x"tg|4ʱ"$Sg4QܡK`%`yî*Ua\1'ÇY`ZEE;KhmN- +GlcepS넹Jۡ+`K%wo' +F[˧J*qC|+_ bЗb=ô$#Aȅ:.(9s^]!xz#](Xt]Wq%Yqww^59mw^5S<A'j|_¶cWq _W}W12>̏쏼id}qݘ?L:waaf+o.ɏwl&okkwW+;%a,}  +Ì z bG-dd2/e_G /ܱ/~[i^g~7e]_ywM^evxG{njOIFըR-͞YPg~Y ++[eziXUxP2\[To*y>)f YrQw+^wt[_VAcR3S&+R|#Xg7މsn8++"°8ɶb [CUKv g8u&cXlMGQ}liO˾;*mDRxPv]*qg$,Ր];QC9Q~ozϠoq{mݨ2Lݪf}Xo;׆8o~dMQ+܂vxܢ`1c9~ohӖS?\-k`pț# }i+4F;۳c|GƷ j(׀f**wG`7 7X;N~[zP;>)8~*=?xpb~1Aj0 T~u0a3\>ʀb7:Mv/Uǰ.wϭNwnwOwO9ΊPRzbHVfg=gq=z)U[Օ2W1D$)_OA_剗%SC/?Bh;/9 9vH i_qJQfI; lA06$ y)}@>ȕ +dR22<$sRi;eNrjYοz]~?PXNi<9(e)/) `Yq[ž3(I S68SMQ1tve" zb4V/x UbȩZӎ[DVOvU2юYfԧLsA)ۮSwe= + )iǡ0a.bӊXϧz%vNI׳u ޢ~`oŊ72Ñ:J-FZSjAb."2AF5y;#>"#e]TLWn@5r_ iFNu<L̓fm=]LoM\}Sr~'&1Fp|+aUGY/;È sds)6:u_d֖9uviҬjFxYۘXn8,*3ƃBk)4 ;b:\w`i3(R?%[t#ZT `ҿ'όʀ4:SJ!R&?ta0TGaUݶUfr٧u!^>ȫXNu+gz^c Fk#$, #  Ծ ++5WE u% Iԯd>7L 6JKDiʙ^nxpD,F|3%.8x =3rb}#gX9AJW Y\rE"႒7C-~.=%6bb@V糔Sk#zdn^F@b +Ba8J2d!Kҽ*ĦiR`%?D.azu4~Y"ab(UJ}HIg͋U}ږNYS>D?u5V\Vp %5$=OUaTBl=&rEz:5^ZcSXݨ(Fy!*0spF$DɅs(60N ++4U5NJZ +/i"me> y*C|ʔ{}-G-a,tE+Dxr&, lcDTL ͊ N,2Xuך`n0rUg4 %TG0Z妺nJ]ʪ7jZJ{}-Jgv9Nqa4}y! <j5fIi>/= n`AfW +!eq# ;T Y܋h߈wQ]V=iQЋޙ;L $7u{mr \iǭe# ґҶmQ'^RՕ7 +=-7CHy#y9@#DO(|g*Sl;8c )`䬂Mqrm H~qlٍ3V~!tI'qQ{Yq쎸3IF1vI<7CpXZp61xlI|KMKx%x7P%=1ѐn$lZ0(ĺ<ˠA.=vXv-z^ cS~@T;!2\-$8DQO]gXrO I teOu'}oƑ2#nɾPAסYْ*tnGm^H~uA)% jU-xrJ`^Ɇ8(t@dk;G͔ͨeRNh0j"AAlvg0&= 2w1ؠ' JA8bhGjȦ(~{fɲKh(![`$e@Զml +WleїelO1\;sàpG~1q=ݒlsw|y|$ϫqv8r3OOld=)-3 EQP ;1āT{UAҲMQ5#Q^tZTf!t ՜.;[ B% GLˮq.,ġc.ąd!&\+>fAj׎$D Ǜ9yq*/OZ@jʄk4 G=;!MO!* IL%c03r<W24fu`=v1G\XhgHvYf]V\.SMf{.tUʁjPi yiKazMg̶uձQ+u gtMG>$Kyy +í՗ΙxsqyBJv&aXԲ5jzvstצ\t1Gu[* EtﭶiɩҴ!kaO +6*9'yP挻ׄ9{S= Yr O{P98 ׫Fi֨`I٧ךq<ˀYú71t}UXsDEIWgn(SA-sZea1J w8.ثh/2U׭/\4,.SƜ]l ,`M` NϜA#trB !o`@=yx>y>pHxЇp`x>yD>ˡqwsPG_ T3U2 =˄+KKIJ.t =5[ŋIʌWt~CrC |Ҙd<1:no䧸s=7L )in] ""4#JFR4Q-#F}0w~>#ehxnj%4FhX*m֨q=fg+$6ӧʐ,d;FUg +6)+xwq%z +kU}Xa55Lsm:PdkCQ2V+<]IdinY5hrXC-dhRkNe˲[M*k{ۊedĺKz 9Ҳb!ϐe[b3ωYTr'S@2Qk"7)b|`)rN%63yH +G G/p6qk}jO3^QA1Ɏb~Jbo5ΔThMɓeۀ&\)!3n*C21ʰye-J^<+nvԀx/?BXl&'@\mՉMKopK6/AA9~Cu@Оl89p*%w` +hMB;<3E+x-ᶭV^ƃ #W+[ax{^R{RyPQu6T|ڬ@U˨Mr-蛪ݠFW^=X)<rݝ.Y+Ⱥ,FZ<,D!TC,@abb- +!gf] eTE'<<@뗒1Zl7~}[pğ ja0"DS M0St}Lx~-/]/6;kx Z~^[mQ1Ҝ]7"qY?>SrLpwP +%sH{Ee_ljvC ZzcSz'sX5(-QŚzq'[ 0mb#Fo9=_N,,r=!2ixG}wa1(wKhN28a ǣG;v{5FvLW?+ON:huףV;k;|t]ujsCEnH.~r@R>=启ӹ1l?=!!w=:d!'s7]ܰ}Zρ$T\ڃ/,?‚x J[ ѠEn/Z5d u i-Ҭ ĉK=1E-4GU G T/Ŏ?[>%3,0,#b/ ݄y飄L1pB嶄t.P)e"E"]6մ)M/}X 6ͤJMÁ,Ju[F`%`miMAJL%͒sƍa(lv36!)ϼJnw?. ወ?f+x[kz!͓O]Ēs\RMLD> !X> $H/C* ]qāLo/ĨJw FesT7ǝ/T?=Y{GWN1XyH?4ũ?HrȍWs[sKXƭ/VP2>Jw6g^@TK:7﵏A4 +wjaIJu_jWԶsέqճ~ivX1޳|Us+{+=#/pfcg$ ,~#>W~AZ?d%e.9g +[kMxɇ:EIV2O~ȗ~S.|my՘b@'H(e҉uT)+mXQ/!ꮪ=5~YCFb7EX4:=GϪ em>I5|;`?k2zǏRƲ]v%֣ +e+Դr#lNP'ǎ\XCK9CQii\}:V(K7Xc  f?⡥nap%+LѶm~ek*yzKEM|֫qžR +,(]3yHt9뼮f/&|90{Ĉ,sDžK)@kYMhOA}f<}1Sy*WTaeӏN7%cПpY,"BRּ<D/:ވBǟ(I:"sc@!"!5>X +rbLv%+5c8nqO BHa(wĠ˶.?q)5a8ui +JS,Gw*^+ NǪj"8s~ +_e>v"4;2B;ϝٹuT)K|ʏMr!jPٖ&N{cy16'ފJJrUnN&0MyCc{֕x3q/(~6~|E~MNGd(9tz v3~ֻtb +GlE=I˜e=G+ڦ<YVЛds"qys4n1ўOl?ጽ{n}QO̟`0RqjUyRuUItZ0:C-ߥJ"+W>C*Kll"mcj\̷]twPu21_'S7Y:$|4c>Ռ1D~n3$͠&fp + iudƥZ NDE +ܶ9r +J/DǤi3θp2" ! ΐ +Cd!*HC!-8` ɠ !!9f p1R t Ƒx iCJC$ fCs$ nC!! +a  Fp5U*<@ +6d̑,FY !BpЎKs]]fB?ޘ=CJMtKUh#GE@ e'fv-B-UٶΣU1x*)jhU֭ٶZU׾n7%Ufg{>,pg9Z ߺe8aߙ}w<*ݞ!?rywzvL ߮J vb:ٲo 89}17 V{Dk͝7X;tdI7zaF5j嚻=HVPSGj GKPV}X2@?]e^)a"4PIEc-rOzm54"M\!51NԎzEUZ!P!uv]6K^rWxkjÏ F*xDVH*զ QIQ(R-ZfPc•V"~TL$,jı= #g8*uL[I֐:֮.?k(=ν5.+%kz "!CHć^"RLX?f.h0t7rWoDr$OyU.DEZ$u!r543^ͧH;(3~gJ~ޚJAf15*ޡ6POOe +oQ+f +UOo1WёN=&zQdK^!6 +EX@6]Rv h}G=lkX'%\]~3 HϴRLM6*~{OՐ3$3WPQjI5Ш#:a9[1*U<j'/,.?;UKXqE%gPK3n{8&3>e&kDž" $n*1-|AQJKv3!ȝ6a%*b4L |<%)ṲE.NMvs+lKu'@8}'(4IX#K&7JVL,h4c[rs)Iq- uL_}XfAR˟dd ť{f)i(/J5Z))4 +EnEVF!/ 4 N ڮs6rr@1VuNj]` 6Iyr,' +\L cM1Br@3 [,!7CX:}qsp1ly|j3Dz#y A/b0G42~KC@^toYHCz(c-JEuI*~[^tñ,k;'i=)moZӥ둞?|SgH^~`zLb\ŠI2m?SCxK+u-J!xauhr eCV.ϐᚬZ\ 0ބ;IZ(RG j6i<3jAHhMNjXT @ߤ@ĠWQA@@ ;0ac7⊪4:yIa2 yE[W(\Yo[R +ɜ܉miҰP( `w gX͚=A, lM 7ai=s +'_knj[iH9CG< ē3*iUa@mpAnV(73(^CuL}`=5<j2Xښ_-cY>+c8as;O"B >q=;wȃ;!w?iH>|(|0q 1*N)U9 ̨ $ij%Ɲ\J;Ɉ2QH1 (RdT +ь9J`%vH)2QhucZCl@l#A~!)qxpNrǛ}G!S.,DC??)!%eO'٫,*O)!9HOƎuP/.HKA:З jFU52^h S ڞPh/apN@_@Hl杻HrX =,xxv O|>_s 6 7זHCl}buQ6LA +nHv! h0l^ꯪ.nIf2=9 s'!Qo̍ } +sjd2Zxp) r(N԰zP7ʴx֋PBE +7j0ӆ•ֻРYP5W|RF YNw'+0='usǓ}f4GOZ\eqUd;̠餖duu9;߃m;<d?`/l7k7yT=UP8>E_pN3 @vx9`{2vV1:1+|:Zz?e8ؘ8/Sutt[*%CCRMHU>ML6ˬ6Y6[%Rl6-LLfBn]PJ( )4f ((:\i&idyy޷t)J j/\;?5cѷa/5Sn7}+qtX3'wGX<Tx*zWNdo:>ufOzo `Ҙz,=x~G,ۏT~*X5c? ({%Gn-`h2|'T{eG:qoo5vl=FU}$Fp +0Uq{Vcʠ+#U|TR'U|f};7*ouuF+=Rh[,>}wF+0B* +uOG5bcUeIP |}b čEwF5#?ѢaF|CTד#t?Z  w%↘D.{: {3 vv^Ł%%Y:`@*Q67ɽ8_ Pa@ MvEtf2/"K%S-{7'вYgn=UU9]_7p2+ry]$( pƸfh?a =Ê(7r %Vp#ǽﮠ=p;;'ϐ%^_esY:^AEyQ!;Tl{:Su|(DDY  +NȳNH,-fNy?;Y60ȁֲ$y"u"wjk"Cyl7z/פ\u1j x̟]MOW%)#j1 `E|Y +RS0XX3Œ&S/ҴyؗDX[ ɏ6gmg˽S$m <=MeFg6!{G9s3O,|V SpQr嘴OR#NI7<8|9+TN-tO8d%Ȓ[G_ }Sz;;׉.KnKZHr8۔%Sߵm,:ޢ:k@ݲκ6\F-4ܲ#ݙn]|.ݟϛb:e齺@y{fSz~k!-I$$2\?bZY|)iǼw?H|f#? 8/`lgqӦ@)km``fJ)ӖVlBtPU'Qx7lG+6ϭMs2 "/9r74ܼ`~> Tr?o^(5{xPΣǒxp0v3S-|%%sbT^M4>:̧L/)0si%ٖ%)o "cvo޸g8,QdQ.QS.(\#*Uc:T8RQ&]#.6 +;LI$9g$k2n;8.c-EœuHNxG$8;ɖ^^{ QY)IY^ڶxXYWU&C5;jˊnY%ON*Kޠuۣʭ\J)d|ۉGtE<,x"LL7`L>`OuEtz% K+jM3NP Q'=48Y94ziCK~ c m DfRݧwɔAe٧TkG{Z< L> q]?&aeXiC1KD粹ɀ]afXS8%!'!mMJ\4~F$3_+g-lTkdhi7*'!)$x˟H,qb;71ŸUX/!Ғ0Q9$Q(Oe-obߪNZ|DeN 6ffWwO?92Es.i/HmvuD  {{ ج W+Jq +ceR/*\Zl4k4],0rD8Qx`jвTY>F8i:ۄv14_c2Zts$уZ2yst =V%\UX 쁏:dEsxU SBֲan}~'̆>Tn@X|`s +C}y݌߲lUDb2@~]ֿwL(G&z= E+F JxoEv4n6!%ISniܰuM:b(IAG I*ZJ^2a i +OBG=&ė,$`n!9ɵZ !9f7&ƁG4IdSNɜυg9t'U=I3_Iv u]>lExځ47fm& :"Mq!Kq?_<ĴRU9V3M{l?gZDי +,:+IMBͦ7ggt Ɯ)f!I/(>‘f*]P}/(( êXi}-ٲ'o<6 Z!i%D\ +S'oxd[|S# ;JUt=(eU+o[+":$w86s śs G,$u^8Aw\*v2ard5k[܀;xExC8:X*[J[a]+WM>鄈*l[(KAWC4*,^~KYbN)C@5A_{ +S6ěX = +#*@'#( +PYS^C,7o%#Wp)7S' 3nBR7𓈏/Z) xUsr,rx?BCYn] G%8R ڪ(g!" REp +^7uT*`]]δ k}Vz`S5"~}(к,Sז$<5 E@?ܓ6_)؊&zWbxdx#SSϐ+Wg7eI"Z&rJj欣b3gG$]?f\ +#6t̙lP +K.4vI{_AqZ>.3FJfc~ V󇮨)LG>֠ rgr^P4)C"^]je[ɲueǽ\jhb^]j&a/5UL!ic^Cȍ)hjK7=ݙ@8iy, zQQP5sVD VGfPJh +ɯ<5fU\j +it9zif&;c+nI!戃+qnLa&^\C@CO \C FW~>?=s 9uC ` tKjñkk ;i[yxTDKD]Ns(ێeRU,*˃5N ئ2avSdgGkf̦VKlItf#6Ȋlg#6-3KDGXXx!]PԖLvRaѶ ܏Fx҄-z{ Hx3zRb&1d-IRPWRBhB7G~(ғ)^=I͜/2,z|QϿue&{(u f"I=H7y0m~t֓tjqSmd>Z??9|ʁQ;ƫ\:n"z5Q:juNMqˌ9"ZESTBWKS_И +D@aWFƯljnkj"k`Q((?u.*ijiqgfh [Zcww17sZ(i/H/* +| h%B/;ڿ +.w;LA-o;so1`#U e C/PR !fq\aYS<'u}ǝaYaaygvs (½nK: ?+s4+1J`M0ԣzYm(ޘ 8AQC\ǨNQ<i-;5MGnYGԲCz:'H)?qa?T#nW~"a@{u` \JSq)RѩA&2 9,ŤAj[ Cw}Xq8s Aa'лQf6<]b 2Ζp"YTvKWG- }rBR /Njl`/Fd9hϪdZ+^`0o5Wp?m^S4OɴV#Ar&wHW*nro7-!Xg@B}! dҥ#A&T'H.Kɫ0TH7!IJzmP]4Pa[]{∯SQ1(ʓ^Mn䊡@C,*DoI9Ohd"IjV*bRCSu+~5G5_4CX/1c-s[H%;8":O) +qϡS$VʓVmϚ q;" +Ҵ.ST5af&@ BXB5*jH"!i y {2(h%n?8qP 9={w~x֮ N Lœa5-2ꮲP-41?xBGI@3C8JLWu1Wy\;@7Gg_"$mh<'eZN.YZT_ +} ;bVd"sNxBfgMcaERypM mDv:^=- +طS&EwaZW,pR.Jb\<sp. v.3R~ 05GP rrx"b>qo nI-.#խؠ: +b&0]lbAOP檡;xxcPw a0 }gƸvNIC!&;X=rTzXr8#*r0 +HUqVɨO~ d~8D jnh*F= 5٥\%A&x$Zؘ=AA+#x9֎% ,Q[Ȅ#X~Ƃ%4q=:kQ+T>E*Q,Š!:EmQ=,^ /HZXR3fe2ET˘۠ÉN8jpv_ ,!-n>\d͢ܛ nOtA0ʍ8l-jɗ9]5{a|]2 wM½& : ,; yx=]=R=.M?..pO@?'߫u'{a9BKc…Mv u"N=?!x7|ZaX$-5G4@&0m"l(dƑ `QiE`tgtwD:PtuDj&^Ѩ8ƆY=%BՐg1^s2OYt[Ig&;TӒmB CA$ + +M }Pi(2~P`666Cjbyw0J3^bh ainH:edDҘ5A昐Ćp昁5|s"]7/Z|>U򼜰uIS#~ZR|OD>+.VU<Ȅ{i'feKCrȽm&|(WxY="Nǽ Ά_juMg~efqwzo*O6B4jp ;sv׸0 +j/;ۚF=qJﮜTYNvwV]}Xl] +ԮԮ>TqVwЍ-*X3~@׭\jԈ +O 0Ev*=?W*ek6 K#Y?wx #_Lo @1G bSs+˂̞N?τxɒ=s}ӳOiXQfh&--3CEUfe[b馁Jl$qOԇPre0䔒o~f>wd bNR1:}3JƔȖSÂrj^?=AjVLvTEo+AEHK{+xqG&P׃v:RY]7}xw虚4Ї6`Vz"lg#&Jzڻ-[M5_z*mXL)X+ۉS1҂uS + B Iک6 |Ðe(2nFFJӯs6ĨǑ:v"V( \|'kBwtD1^@Okr$؋W:U8m#;]uyjkԹnY7Xm%2*i4GA>C-2@ԯ %kx#<&;dD=+} :3Vހ_<~nw[3 ;8mewEԏb ;"7Ny>Lg9)CdPMxWZ>$/KH_UxA$9~Tn(wz!KZkb#M# jzQ1u{R5X3AL^sNUW״1&6"I#L\6X,ےpyɄ/[$ْ\Cg$%i>f߂$ԧݲ5jPvG|iN{=p,*=ՐO~C'2 RwK- +Z?h +tpG\,Mmav!6Krix@/"ϕ (8Rܞy,Wk |w];B3FRhAv'a.1s_Pxa'u*siӗsN$f3x~Ak=mm Q_猪dXno~47XA+ŮNyal*Z] +44~V dd`\zR^R)&P]_D۴4Aw7ސt#,ŒY4Bgv-~$ ܫ.f$1c:/][ɿf˧E)/D2mW_I%4 }ɊB&`VvRADK*!)$KFl%I?@t0 4Ȯ(?~˖ih +t{kw1CMt4ThUMt n]0-eB$V,b1z ,1}G}@EMg;g9_}G@/f #hQTCXSDmv*\~*hruk5mN7]L\8"xʵ\hP튎]/*z'Aʩibg-0ca(m4_(jh;a2zNZncUAmnӨ+iRzVXjo;_ft~%iz@ B-Z,"L@{+{}EoX|׭[`ovi7>zJi@yUVgs6Q"j!k@ ]%H!kDQƐ6"uܜKRff4K2s =DANrsvwLR1H- \%DׄS/{b M +2JQ=Vdb|Gu`)s]nH={`3+oYy)@Uߔ+?O\G^>tǠ$3D3+K ) \[(oD3Y !{K,Q7$WHTH(>BZ!WL>g](k"o`"alŒ' uu6eH o/{Uӑ')\=|0W604/GGΔrT@ZmVGpHCz9;pN1;r<.Y`Ep1SVbd1FadL 0Fܱ8)NC } +U~\dDuYEy+h4ѬB uu+FsXhlCLcefȚiPj}E[Uu2]΃4ѝ"1+^?\Է7I¥S$/R1r'yݢK4Q?jy=ڋr@T[K`+˸sZ)vV dzo\a۱ Bs2dΐ%XiY9͕r{/˜yJpfUe!-2]FUfN[3FX h;;{=P`ee@+[:vΣ2:uI<mw4J,yMKXΓKv GLB]i"9R,B?#ϋ[+Uw؛l[? [q.У[cTP ߯bG< <-mIޗ[!kDHq+5߲!2LOOWr[ih_=*VRI}"4Y?nȷc"fO`mzZmZm(C5 '#F6ܖhVl@HBK РU.6 qt V>@|w:tH_{t,w-] ! KU pvr'h8-7$‹ +Ub"hl$0؀o$P޵Mqir7yns0"z`p0XSI?b>#CCq6dQ8B>[ͫ<+ܨ/BL +WJR#<>Ѐ$OЪ% ^OQB"Y9f0'G*lY+a'tLZѴmآ08_n-G0d/k h =( bG=zLY@֜ڹ"#fX3v\w}nj'l7@;wec~AuJTklOܴkY(DB7u[_KY*(st22gә}> @ߒ$GXu@Aٓ" + +* +RDpL+4j#v1BM\t3z1ij4\k\%|-b:xRmpW``zCIcGdj۴,W$HvlaR|K}wo(+[;d+Z8L,;kכ4ٿDOSO3q7-u6idIHY<4TsĴTwHGikgP:frg]Ǚu fmBMpQ 3>Î?[`?`\lK ̧b|X•iy.u 83:\>wp]FQ.2rhrK,I0'-.!n ϰ aqF5bC 5ͶK!L#X?}.!o%ҥ>&9^*d\C,S4r;'.UI!?bRA~2혼^r^ 36Ȩ\Ci4 Զi\e/:Rw;%>qSoFR:٫"ʽ/Epzlbn+.:xq''{+jO⫧F"^}_z6z9<$}RMr寥}`ꛗk韟q@r +mUCWubC5Z_T-5G?[J_m5=ۯGZ>A>|Y{uK?UrLL;[S*V*z_ulcޯۧ^ۣ 1M rƤ1P$^:OWc|l .Vdk̵Ul\H&Ʉ^w=\{l^͸d&U/rѲLxh6gd>vHH{ڜK& U71GĠps7 amkyEl^flwf⚃.  =z8w2x8e+֋:xZ)jx r0lkFc )Lt*"nljn&v4(C-DvRd5U]^B$S,\!0-(e.jrC]6W69E>J#c[Vi+ghGA+ڗs0u @#j@˩5W"Z;mhq#OL[aU>7 +6% Hwf{0f4KczӼ`Δ=%)ZlK/5[+6DDl '+ru +{ { <DncxC"';;r٬]6M)ܞC$KZ~P)WV$:Tb t-p]iomkr~vT*2йT-hZu-tk'uWjĶspɅAC[9} 0p/:D&,xՔ_dljn#13g $i8jlI5+V6u#]t:KdiU}O6HT ^7Y/Y,lORmp +Y ,;!:0A:I^yuQEM5Zwl}iqw9}HxN#w].YLSwd>%|Ɠ]]Um.յͰzY%VqEbbl5y^n0Q|H'k%ޥuҡ>ju4ӞU,CdnVouiaWت๰A`%BԂʿNE!ê6 ß`掑X::;04Jw6U7h*8b P7尛!!!IVT!iKXdKk(c.)3 +fUVoq[JIiÛGјs9չ&?{E e *ΟM#Fn\*=*{=E֙mS.W<% P)E'pذ)eͧ<~ScU_kP]Ek+%9J+M7kUf \:JY*l qF@pW3S-8,jGȊpBd͛RV7K(SUsOq br`.)7 >Jq:/]C29s@@vkbb)eKN{4Ls"{b00rldM-#ܶ/2.7]-rc$"mCITʁ YUS0% p/~J0S6rx4#߻GA6!xTQM^1.:njHʧHV+f 9YUxQ r|VSd% B8:[+e8L$\^h{[0m5_.YD KdQ4MϑFkʩkYu"+yŴN52yQoNX `dtj9i YY`Mj.}Q"&-ڗHZ{l*trc< 29o +dK΃ r9t#ve9$WA@"u4j{YH+ͅhʼn, * mE zj #Q-\xQXۨ9ϲI/s`,$-;hxL[_]$tJ)xAٲQx;w/dSR'ۆd4?͠6q;gۡ^GVUqk[\k]m.-npW(_"֫w%USȻG⢍Jï^ 5FF5#G>^#tUVE]h;FS6GB/#d:GQ-:;R?Hu +* +}f<)b<:ON{K(rp|w>np|^h0 rf6^$'ur +O[V5֦ajQ -fP>:sLgĴ`."ċt":*P`>g>7)M1Z/&8>gp`_'BiS!GadDYPn[!F{;x<%کdѕhGD$ +Iܝ'w?vO7{s] Y-V_xs|Ľ_ N+ +6%(')/%|k +0G/Qۑpެ3Y85y։dOn-AcjyO/{j V9W)/1MkzM kOܾ a:iў*F|)1lqҴNZ}˂Ծ:kEb2A,L)l?a90Q@93-tڮ2%Lˢ20DV S:0z+H:{=eVգIMqbDfK̄rI} +jNvk$S\.T" ӥ_Η~D8+"lAB+'ܒ8%!\B+O|I42O|%R~Ѿ?TG4~ ٫7< +{|3gP&!g3_G 3#גּ%/4xބ1\3{s:g4`+@\1лi?Xv'ܵkR vAفS7" >olc2$2CcسNl1K$v8E }'}/Egۓ(*C!4D-at})4k_'7Qsɘib&nJGԛ2!SR ͎(Pp na40(c,!(my;?. U yPyca˴K—/H)}6,RbFT/lT?hseۓhu.Lq%a@̩Bm'rAi;*.fA{XND]+ԺymJD'(L( @QVS* 22&ӷEc?frR_MjTF9<=Y =v 9ݗ,M%wN΄-c7'wжӘKԿjگ~Ku8Kn'[o\( 7Jc7zA+M4:ZQOu%Kaz`^-ҙ>'V +gPg謝yaFR !V< Ž;Q6U$W _ɓ!WwH{XD9\B]]`!_K;M+ByT? @_07l-C1ԙr,N??' +9ce/ݙx#({y˙?+?ECdF=++e'fyQuMm.C +`W"8\fѽHkhT.kȨ\L6x>8$;_^!lM&dD\& )鄎LMj^aĻX#W_dСVd UD6DVn=SNH"9Q.fzPD}\Tfa*\.!MtRI  +0W&e-Sֈ~q)a0W(WȘR݂de?|e::xa.rL;ԭ*2"h X+W a`&>f__<߅/3AnD\m5 $P(R#&ژeIjh)o%)0lXl;73ܪ);Y}El?{GC<Jzބ-~2BţP{x4KdE uUh-:5|*'٣u(<)N?ҍPNqł 5&YT&XTϊ5mlEzf d.S#.b_$zDc4"On#t01)`PpGx1a/v#0?0?u> 3@ssY&]*sbel/KbuCI>z +1!X?W)C)[\ZP kFUOѪTcϖtIe%Sa``1ʷ#ĆegND!S%xo.} Z( u3\S` [8 iTI_|Oks|7εJ +6M:Qh$;(&نVil6ƞvژ45x +52VVyߪVXaFvO~eR~; lxRmF "XWz=b>Fq@j]rZ7R +?O놺7[nX5ɳUvp;iLCdjz/R5ݗ@fPU'SA{ۂP!c7ݗe]T'/ذ@%Aj`Yj Ra~/WK'%t:HS3BLWB"В]$P Jy:] 2[ +$R5c۟ݦX +ў_aiT)Q +hno~<!V^] 7V|Z AL L{LKR\r +R- c㑷GBMƟoF>cbކ(C/w(0{J&RZ4x)Mϣ@l;xF97BR  +{(vghksI'8Տ.Û IJ;{~/b{ .^* V eRF%W 9z>\R຤I 2E\.a\! ( LH +i\yhQRZ +řBw4jLOʲYcK4GR#C?FK6ۂm۶m۶m۶m۶m˶ggv#kƌ1⊸;xp!H]2;F=v|7Lnd~h(Hld7W])̡C>g&\#ϋ|X $ mW!)צ h N9`wHQǯEi1lR=tQ? iP#j)(9@uHk٦~:?;iI&Mt&C:r/צyNzO঱CK9[';:<8}VCgz;H{ OR%eQ58p1~qvR'eEEg*hFň CCCèi:0:;{t(u/{_4lfMK?5v|-!ء,$yvH%pT&͔z~›aK|8E2⧃L%}AΉy |H[9~.JaN̑Sy +.Ղh\!k=/抃<#>e!ɭO[4uTዋ}b~:lv{;SqБc^]$,#xdu]&|rԡ#B=m2:0>'TuBKUٻLIGmU > w*׽+`|N+Ծ$k +~ᕬӽeUG}]rQx/k%@} ^ V}]1XJOt,]|Ex؁_Ļ;KNյm1@*] ђ>3|ſPȟTڻ}|Xl `/Folq>ୌCigL';F~^*z|_^*"KjS|qQG[_ I~rȉ hPu$Pw{ż +p#E6ت Ҍ/CN:?,zXo_ 䞹kGLE9+dZM5Lm9y2'cYF]Z==JS m `@ȜCIuN.˹*:P(r!M8.c9"w^<$ lW^➥; >%? > <H:;CS?-c M[0| +TaxgvAYox xŢH/9âx"ŪxjHcYc652h:Ϟ0ϑiksDavByF_.!e75xb6qyb@B\\JLNV˿7*hFB\HZdBi:ܬer2eeM|le*-LW-Jk.` aK^?IT."c]yHi : zNg$`^=(bJB}"B$nOk;lb*b=,VGV 22Ȯ"UG(nLzQ~q2[Ps~D "`AE"eڦ40B+>/4\1B.0Lv\5okb,8VlmCo*ːmt琝5 b:zc4BDYa8]Lfԛ"!|9!-ux)C}AL>~?\v#>auzoGs";LP#6:?%}yH>+A''Gz _K9,D vGzWoO(m_OcD#4F*!FitP5b +NZl%txv˰;{ jxcC+%!:AǦz![A{]|`gP`zr)CF6ij3/A 3jG,%u7 +했,MpY\YɅѸKP%xKP\&U/1Mvx=f;.3G R{c.uE#ma<⡤HR;;u)T噣Nsܽ| +x˝#hR7(jVݢdEޕ`91Z˦0fo5,?foː3E .c{WZm+ЙÏLc$c{F֔{/ǩ:9)܂U(eox84,&r>ZU/+D(f̭]T+k[>G[']e`~тg*a^3 !3M2ל$JdYC2$rrK2$N9L e(MO2&i4U'yu!"0cC̄@[!GR( Y3u)pʻeӞ̹X~cF=hWi*F'9bO27YN%:6&FXWKQ朦Od.?f3k?.60X,ʡ2!kxwkjN7k./9s RAa:r'8nP֩V+&ŠO)ĮTBqwoe#>G}'|)ڤUڅl6{K,S F+P*PQtv&2/q*NKR2-)@ȗt([.x7Q6Zȕn.(^M3i1+e!eA ʦ Iԑ=\WLhyuIJld[:svvs9ҫlXjcuQny, 5w^IU Ԑʉ~E[sU Ma-0דv.m]s*0(BxM:Wq˂h$xPf^y4W7v94@$I}WQ`k^8ĹvONGc!\Tqѷh*2de5D;% hS w\tLcQǸi8vUL֐ډ.gi:tvI%\S{9lI%,iZFGQtOU +PՕhSvókN{xD6i8GBfH%4xurqHtEhnt9 XTHxl$ %-|/E8W. ~UE.}mwoZ\rE]½bt醝a;-m"~0 5ՄlMgcn,Y w^sQsT%ySr58j&ɚ٤yan ݥ{yVt5ks֟h\x>SV]ALPx LD* +=ca%{T]i\k"SU^"D.c֑ccA{qyj6:ir4Tyy["1nhlf=‰C~ޅ(vB!a2\Em3) w8AP`4~fSt;h5dϛ8UYQ3j&@5G$!>3"!G6MƓG\2sTmDZցnj'}4;Ggbs/ƣ-5׵1"^D[?bq/yKy ^9@h|5{7?n0:Zb(f(}!%<"k4mTZal (/ ߍcfV<- +p\IiDQ#FeB0O6ӇbT<|>]0hLDF3i,4zmU +`hKCzq' p Vw;C1"SNz%t !&+7{3ؤ{C[z} r/|Ø:#Q!FzqA|-Eh:+*]dUZT;C@pjvrFj;o']|<ݚ;85EuTW= S78np.?WBg$4%gG [3e$EEZK ڪdxfD6L-D-o^Qs z>q>jCp "0A0aù!戰Kv (8Ɏ_ާof{4p{b(q +3fsfTꛐ e0O)Aф)@I %]A4D pPgUsB8o5l5ya'uȏNDDE$Tl+XQC( +4#? =lzeo_n|dOt1Ѽ[6 +9'(ӠhwҰxfJV~~7!j٪وӄsԨu"@-uTSxQ +KJu.$VhSzaҥHUTyސA %Oi6ݩFG\rYˬz%&XA鬪AHuBBFFVEr5T=nbͺrJj9stYnʮ7EmP'B>'ᥒ:%3JcArAIh.giBPYbZR'6bO BM204}Ye9A7u9Nz\H(b2[г;n@ ,$u7gYyU}CЪE=b1 D#р;`};/_x@}-It;BaE[/㰗]/ԑ; V^`;oX7қ-M{ + SMMk#qJdL$`nAn7 7̷Ḋ3ff!aSl_U}0R"`:hIU+XVuߐq'wG-B;}x//vDs- ʣBW~y6o^ y0{lIm>'|Ö|̬ $}1w)[Nse]XjqmPE%kYa콻rm(S_Oc2Rf_xjj]zro(Г)'cJXར*VE^_Tvr0Z& *'}ԡ1 (.%GZ?j].~̨e9m*y s{|Vh'ڐBI]/zCxc$ʮ +ܺ%PS'*w=?4cNCy\OsU&"+ma BXDV|BnLz4w@I A7A")gΎ;`"jPLIʩ_s)ھEpfO3j`%v $7a{,)Jƙ>n#0#7lv Wrܩ/(r-V_$7c7uy#O_MQGIg)VK-a{Q3r| dq[a9"`<%RbE{Nb*TE]VS&<.ݘ3R2AEʢ +*,3iTPR/X_c뚾!M~4:>l;|X{w7uFZ໽xH:$|\ ҪլZY5HN͂Abq>qq)&iXH_s§s\{a.:Fe04YHl#z-Cࣱ@3ِcNxu +NXݎbuY[}j\ʌEv\`ʭP*7WeL'9kRS +YMTh"L{Y5Y+>=r*ۼֽ`\ҏH#_SzXKx,3#⠍pnf8GE:{NP> ^;qSF{R ķ CK17a+]aKn 2~Tso2^keڰZUS/A8Aښܫ2r務1S~7>aøiKu;^3:!<YHM³t$yMA{>gϋaLjG}MT n$ +9|`O{T)z)ohWT_V =&cG/Ӱv013ӓ!C[]'$,PA75l;Ӳ).NL|mD&؏?q#GNPͺ A(/[O%Kz%oFHʔ4ؼ-|8N,H,5|1%M"Wx%ZlfGI%M]2*d I!%_eu%lՔ1n(~p=Ot QH4#aPL8TEFI(Rj#?1e'^?"G%eߙsg%iڤL5vS)e&KU\nGǨ2|;ةҏ9FrDWIDxr6Ee&Nq}-Ua^u%u]0"Շy,} +7{WVuy?SaT]WZ0dMF[#ٓ +>ךWy]Ü7 +. t N~_‹N3hyx,?4TKwH D+J!қ<*RvGBνHV{"EO")>ĩ~6asFL뵽uY.}i[dO Ө0XZKApgip +X5ua_mRc,q L'}Uhgp(g8`g<'''`Gk3E1v>kZ18Z`W"*D2׆8ѥ^6W)]M1X"v]i'Oީ0Y~,qƯ$= +''ls4b4rj>|/]s;ޣtKV1tg&R-ӏgT:]ذٻ͔q8]S wO*,ە 0 DGb;.º[97S1jOR;y%7o-NxT_׀4!:"2>;؀,ə1@~eS\$J"rkUCmkukwյ wb8)m$;Nyq|"6:*@ *<݌O]0iO+ $fk}ѾB:@m +c+ Kކdzwj# ImJρ{%7fnOn/P o$o)-qXĈMiJ 'ǕqgH@GKD*- =֚qN |>VPӁ<Ⱦ2f(Ԟ) _ӛn/G/ĞQҗ<} +o)ؼ,B1?G =? υwQ`"b4!f?*., w-q"x>CH)SR#qE9Ow51,zTitfIN$>z6TE"0j +q+IIf<+y<,wPi5f4\vD55oLd0]shٌHQF0s*t 9Z#$ wcS{5%¶3vQc> cϴGυ]FFȇatH @; +Ьɭz6 +:_t8 q 1􎂈{W^Kv6%ղw##ǎ5Ų55ȜN鴽Skޑ6="FIu.W%"PVFS46ݣ崛+s 8h`/8My_"1:&l>Je5\) `SrbPRv!84$$fgM{|u d/Ӭ'rn,ѦYX1$y@B!qÔa0WѪNu-JV_HHv\PR0)8$' ΫyWЎ,.ИH*ii;~ybMv`;7`iIpk-U=1qMuRR$^Z4Y~贲;nf*Yy,-tlΈZ_#IEj=Xzb=B"iHgGcn6SG8)ЫaUȴ* 'I4 +ƙ+ +Z$21}.ę; #р ^ ʄ!6&C$ꒀ2)&FTV!Z̙(vUŋ@˒N\l5M䑝JfzD7zϮ[32 Q~ۨ(~=д[cKWc{/ +.u|M-0]I|Qws,nv_+gpCx4 5)ƝrlIA@,}(=лx@nN̄G^bbfG3;x2 U]HOFD%sSH{RL)X-=h-讎Ȟ03䵌|O5ke%&>q,Ԃg8gO,A}TZ€CH6C4 ݥC;_=xTkz;VWy#R;UI{$ycC~͏*2M jR|{*)̂Ns=Bpi &#$G/1q1/9wAI+eY +20c1z^kRJquDr9x3ϤUzeDa9'tq'Hhr/$xV4-71xaB^%W cy#v{M[kTh+S4y"?ϹXw|C6܃6:BgRpm̩g;ZMFja7e9·~`+e~FʚDoF _)Scy+#y|ťTEm``Ġc`]B)-A`wHw4..W%/Gℒtt_w܉&tS;p/:;1ߣ=ҺLwR:F!j;w-#<}<=Т^A>w$ lr'<="w;WP]@V`R|@m6"}[Wu6s[6 YŅR`pFKEi1$קQa(dj8;`B}ښR.θy.=#cZĪD'@KM3]B5Ң}v ٰQfCl%(x%͉`VfCM%9MD B&l+"nVcgz+,N$^w8ԈQ$ƪPUOLT\MBpuZhs} 4&=_B:܂DSpn +ĥjh!G ^\;6}_aɳMIqkz .UC#3m`d$"0*ڱ!`NٲRѮ VW܈{8Q5Z.Ę}uB +vf1=$?6H%gebDNubRK I5ЍG$rs +(MV=6:ɭJY}>qW9Ȏz۷!أ⋳>1{%ߣ\ֶA%?-'P ٰDoلJl1ݰ+)y=Fr> 41e \;@Τpb4¶R",쫘nDl aI/aKl̜H=Yχ@$AWxW%㳎4r1.y9Äk2&(H/UZA,jbJ{l!ۄJ7AFԛ@[Ci;{WtA#ʷ^HKDSG9=]$&HZ3B}C0~ly|$H^AvB<)!GP +LQzDgZU'; +AlD`uK1Y)W'7˞l&7n1ol$P9C*$jeH0AH =e+%H&&CS?K] d\Ȑ4=}gk 2LĬB{) wՑc*{M{e-͵&D"GJO^>`V,%qBOjYY~ cEK9 /(<(GW A0"q3ޜ|&Kdl2a;\,*m +C& EΙZ\zIS8t$4TJB+l)iަiZHǤFt˴YTX*YBX$b8kz8}4"(G/ 0>5"| +8̪B60 C&O=v[>,CغB?sN`ByA{+umz޹%0QXi+c+p4Ƚ<Jw$ʁ0AuG\чFXʭFx]Z$uǦh']Ysj-%Ƚ&TȽ6s_wZNڤy[`b/G15 /Z>?p'夣V\{%8߫ 8AFM%8O1R\eZEPo&RfJoTݡ6˩0` +e otڱFM@O?n:{u9Т + bU6=+`v0K/ Y dk)n:#?uph\p3%8hf6ra8z,ߜ ȣiZ٬vzyd9Hyq=eݢ3 +h[ffGf =&%C&81D=t6xJcMA7E0[>U펖 EoZbԽ.mQ . =q[đqD/Y[ +/M$_2Mlu&."R`TdoxD>T8-7uÿM}v"Okq9_#53sSZ*OMhbFAKY@^o7}a{9I}hЅU;6\>+6m´ACNIHǟ%N.!n0Ƶp#z-i[&]qVaƭ{Ԫґu&=Us^&vs.}0`sbeF +۩ , 1,fr ,2./QqcreqyAE?M A0]ŔNCmC^[Yf)m[ 0Z #zF-j|&xdQЏ rԠNt2`-տ]ԕ@$E^W %T;M +OBNd>4掝[,wxz2;pxLRW+T +}y~W55é-]c_uծ>GQLNuoL{y=@ &K}G߈A)G (xߨ߰=ڱLi(C8XGzd#uݡKPaK (8`&+l +Q-(*0*HPbJq' VBSSKA<)w!|jǼ)N !"O+Gx!rr$*͘mvA yB!nK` <9f-R¸W; +z[Ve+R._Ud/wNb%Hnthf!/f88*ASʮs]Е)0vsQ1#9o-3n0a[0~_y}MtP4F@g |-sqǛ<Ƈ/*-ulF /Zbb0Sqp<,R `g`az'3oՊoo f髮Ì1:pw!XXXXX1x;s -ͦZ˘ڿ>cW/b0]l%LjӜcVccX2 (Ǘ*\<$AQ2weΕʖ4Utc5*-;_)l/d5ʙoC B\ˑ =,E2@yG+ܨ+s?}/l U{꼾|N?n΀i_CIqZr vl_Ǚdžb\Ad+|~,Ty|My,_T8lVj_t{֞[a5$?ϣ&u2aA'89|0JrX`\8 HCD K!El?&Wr:eu.V$0 F &T-j,^P~ZeVŃ _Ƀ}/bI &Y(4*}*y~;%v`3f'ФH3@{K;] +km|}%":$ڭ.GJSr0ek6ɯoH}8Jd]}qW-M! fv-^cV:DFj-cfa_B\/y'Ej(vV*A,A5%ѽI +@Xյ|7sI$ HHaq4mCϫ)4bݹ8襘DeϵJAnXNdȵn۬wR$G6+{] ka eRQ DgkG gIC@1 +J2^Hl{9"iWm'p#/@śA(*Z̨26]" + >.G/&d8䷔IrW"'ʺcʦ|]4A]Bt?OS:ǽ$`SUT6PL_ -VG?|.ޝ1zf͡ؿ%!N}b7dSustrf0k%IZyy%|g ]wPg_z5:]ZګsZ}7)cETqFvE1(̜ 5 "1VDҗӕ5.hE3H1cNnD? kU=9_!HH:eIL.JcL Swy#{QK2& 񅢔bD(᛽NUޔ}~pn3{OqEKR`g':Hׁ@'0hȻv1ɰ YL;M2BQV~:'(/9T:'͜\-26۹d#|%3>vD><Ņ`%XXZ׮9(/A:D2P}}O?\:DCx~c&o-HOg4RnZ(e5ZD:y΅1棅l;y\뇫VD$.[JH:N5r֖A]|tܔqq#!)dIpgn0S†(‰ 5qŻh$rzZpwT/Ŧͽz:*~6 ܔt`/?׻7|Đ75 Af%LCncS!8$X T^F'0'Gy3tKo佱xCOuFC3'b;sv/ vÎgN#+0ngfSCv^!YLkEӼ%%rA#7}N?'M9ngPw/|sZDz"FX?z ;{E#=0*9@,BS((EoוDK˵ؗ:zysrٶiv:}؟ \2,Tyaz.}PdѴF5Jp"#exÔR *r>t琌5*vQcnW]wjV㨡0h?C &kNٙVcMNh0dfnѡ߀җOfѼ9eյV ;޺֕`VCtKP-_H( *kTv dZ>#;2EĢB,lfni]ԟ +LKʴ lsږaII!l`NNCI4fJHZ%hߩ +E` (26JnRx1; g*2ߖ + "†ǠyNy30!ss\PyɒGdc ſh)peh)̙dMOvx1ԅagdߎ>h``5+ʨOKrc!V T0NCVA*EHOp1i2іzR`yA]![0vGn0Rk17g{ɬG;{~ t|CŽ(l`2 D2dEq^T7#>Ɛ ƨCaP$d͹~jdTY:??[Zǎ7/ӭqI"8xIy`Y~#B RHryTІVb|ruTj M5ȗMcOI_ &S﹌6ˡ8 ~>B7v ,8oΈؤb{Jv +B[ÈZڅΨ$x|O-洳짃Pg~. ſ$`K9! ;"pp0f/|th1GYO'pfrEY3iSx8hhyߤUJWƲ)IڲLy(YҲCGƩEM4 c$'g.ic'NsK9ILddIfS$ +܅wTS*/ +R#ZF$Gퟒ zf*ծØdhpڔphhZp5@IRazvS<1T5oHfGGR2T,GGRڧX#fYLJ~4;16&XJl -94ldmcD#\g3"94QNVY4H--/@3*:(0 -4vlTƶaeb+J7eh,՞R>LW>4&+:Cg"(Dg.z/w$&z#tѢ|io09 . B*g RWTB-SVhdNpi.TWRWPTTTݣvJ XԗQ0u-K8.p2G% tgЩ4>Jx5)"$*18RՎrFn1)g}z|~qSy5(,#Ѡ~чu?fVIҲ`IԲ'…ҩ泿œC_t܏ I?bAVs8k=*CT?D/zuʁjȺ% h0c̲8p%4umhnG'ɩ`hK%՜1a,@Wfqjt…$}hjhsMzk{S:928,އ"#TF&M?}3#ufd3+%&c5}ju(%sTZSSxTߺ3Q{9gFjCvlEݍ=ʳdI8Wb?ITE&lc#)D.9h΃{ eqLÇևGQhdVIQI.ړ&Fb4MzFAd3ẕ smݔNTSʉU}a B6R=Ah{t±Te 3``U襨,`ݎJP) .x"$RR8 dΧp +G!Lj&u9f&5[INݏ%{i4-r`1LOSʦ4K4"χgPFxt8<"8&#g돃c:EZ‘t5*IObR+B#] }5X$&$j,Er +kAYr)&TMJUt5h(x|By){SD|_&K}vRHrĽc +A5SNǝ~u=rż<-;FN!< +/S&zgkDzuOR.5NBlνlǼ;+8*} ji&kK+CʾcUYs29\&' }6/<ĘԀi!4vDd399@d1yZ1+P``WG\tYoGK5|OWpj'yC3|(&=vAv|7Wp8p}l=OTsit FJ&Sb_t/%R:nGsx]]d qL0c=v!qW M]_3"ʼn`7m_+zm$hxNI q`gp͘;7Z2:* !DM0D[Q_5jwX2J)"GKH-Dh}=m6GU*1 ىpMNf׶Ey4pe5쥃)v]d+e,d*'M/rMY3`ЪUϵФDZ*֊+!ekhtkF}@&i鯪^Zui ]B)҈k'[[o%9HeK1snBԺ4fOzA." U `XiYHb/KxB/x~ygǟ^ͭ,BsAQ1{6q VXfacǫ-'qw>qSN34c*;dWzy^"Z90˭#5MLDax/pUY\|1YɧaICELN!aT#j> +vH)vR~ʽ8[bJy) +ɷ) +ɷ)|<ɷ)reuvfvʽxǟbL|A||BasNEOcs LXcgd|nesLdħegʧQ3\;~K~!MNQpK9}M|\KȆ%4 R+))3ɧ;nmI9`w)pnhJ2VYHF?8R_OxqO0IVta_nO`vo{ oWg@rwl<3pcMĒ(HziBa:y+R lǼe;8U,we#rIs_8NXqBDu4Xiέ=>Ͳua[_6‡=жof;T_T@t`e sZј!<&kYJm=Kkh>F`q m$Cビc8t3Oȹ&fۈIޥıdFD_7-= l:\3]()sZy6lXQGhYX::3?a?)jq)vgl$Ԧ?θ4c)XWpn DzFl20]cj=depJ3K(3e-ݡ;AO dI=e1QgV+E/eP $VB)^I'Jvv&c-p39*<}B?Z;lUĢ SY^HzqdMiN֨93({P"-Gh\$!xل!JR0"Q&qUp3뾄$̠l/غIj_4d!RVJ6vS`s!$WdXk|2)}s$kϔU1Mb$\D6H-`/NYGBCf3ey5fd7aU.ŭŭ6=!Y%w9}parUbfS! -K#V] ůj,_Ch$2(lE𝰰)2gp14,a!~\ +KIssW{n3]ْ2P¸bRlPR]&rAYpv99ijܕYT1rIp2+ÌLL1nwVf)dcb5vP}GUܽpMES0c`TTS%9EBcuq ǖivѪ@8|3FSлr<(R5Ҙ %6DWt+$[f%{/qW'yCZ~AG +!lVZq6=5]& I+C_%OAV>ٿSߵ`4]WnYf828fI $]I,-RX-*Zpרuk;/ y8o:7- FCsZ(oD L75䧐Г5ϋ /k%i_X+u[z$N]ڣeMMcΩ3y=mάttUkJuC}hXS1_8-Okʧ@)]3!o[LL&+Ž%_eK<2 +=~G +aYp&/hΖ~֌ VWY^pSnvhmokǮueH\|&i +\pJU BzC)ȿD >yCSzbo/# Eم֥3 ![00#q4yq5q '⪇سF毲u|  Is Sqc 0"ط!"#36ĢQ)7`CѫYs7`E\p3K] q̢"!#C6&˿n9&7d8⦎q+4"KNҍ@v TӴ3zӦAv@M٧xM9|̥<Rnrҭ3U+;K SdTRA-૒t!U̲R-i+׻S +iè_=o⹇5ߵ슎poce545׎{u6Â;=DضFW86E{K'ⵕ!a}ckb1=`:^Ŏc+w:p>:Z盩yebq˜7AuB}ukG׬xGTk<(W-Qtdk#3dWteɧGZ)璓&+xSgЊİFM$E|X /jaC˻0SMǢ0*l/4ʶ֣JɞG4y0Rsa˅T$a +5FawGSڹ,Rְ+-`QigH+piui[DYԴ3-b0OO NF~ _m.9j>iWo;R27 Gid\Ì2Qj*aܚÔS@S.h5m%9m&qm$&A tCi0閃tk.C\D++ׇ^o{D5Duw'R(Y LNj ^Xq0+{*aOIĕ5C]~Kruxޢ43 +;Mtqm1e-a,$8"M&aZ2rx wq61w΄PEѠ`.! \hwPۯv_aekh5DKI`4-N{LlPڵH-+Wr!H70w[7Qam0mlܴw8+%#&-bQ$0gUi|VLl $ӡc.ދffVp)o-X +9ڌeHբ ?*ݑѶiR ` 'u6V͝]{cu> GtO4wSαnԝA lC 3<%W6uX/fu#w +c*Иə˅hLs!N|'|I< Pㆅ8(bSփR v;Йy_y5Π67XnD>A;rGѰPy]=@IC3mFt:ɾKzsm=KmB[ߍ"Ou~v+1Niѿ]4rxPC](,J1xP,Qkr,C,"!rnBCqclRC5lb1m*Q5U%$dctctUŋǣv.\D#Oڸ#c6M]rTޱGu*nq#NJ/]T#Gַ._EЯ +ѷHHbWoJ׽X?<fN!Oz`d!z(O "^#ڱѹ\ +`ʿvammWy'|_gl12+BitLR!pGqx7A0>hgPߝsX_P8Ó_؂5A]rg[4z3zHD"Ʉ + b:ƺJtT&if?MTAA׳ocB^W V$5I9q氄L/wZ I93]ңZZ ĶJԾڂiz\)FY=C@2U1W7H^U+_j^aqgq1!37ӑjvԛ!1(Ov),ɗ14*5O;79U$v)&Wsn>KZ5𭂾=|#&FKUA49rv4~Q3j=閇f/lm$ M)WW.-41OUx5/gi? 9*h":'S꽀F'UJ't{"ivˊ?>ܘzq 1wzCephLسf89& +w ޲x G#(^rɖyt4B~@0*"`#$)9|kgg' )&%/VdzWV3/2sA4`W!+2^zT#WİoRZ٫z$׃ i[*gXĆU=rwRMhWZF֮+=|$ܭ(5Ɍ+p dUpz`JӫpWAst^!% ,`ADLhמAS 1@D-A-0@ϧ[`!A4^= H,ds_,s,S#H0a^}M[y0?^K(_=)Hf&>91d8!R묕xJfX$(^D0(޷e Tպ*5ڹ5sLQ("ʒ/_|C߹wwQ ]Rܹ~āj4V];J_^t0CGuu |fK3%f2BS %hC%fU +M%H*A 'i: +MeK~SmKZ>h{a, !)}=ʹ>D_TFa}U]&D، .QGy:(!{M׆`@FzX z/w)uw%ո%:d]N_n>^3d w)"EBn1هqZWKK99?AblFSP{Do:xnNf; +yn 1JynW0 +b_P[}g-Ȋ| +]xkFTbǡfSfA@EJJn#yZDxj:rVdU36fHhJ:AgԋHVyR{ wyTz3uUz^:*j'u3ɭF-:ЎQWzd1N>9S Q}i`m#2+eWV@ :ǡĆoW9P#NjagʸШbaN7xKSMxU*A(00'IgE0< -aSB9´F:{ &US,Vэjxβ*DeZX80R|e@s&c`}sΓGo_f@p;X;&Ű wXs鶯zd=5>r7"݀ǚ;mvkݟs&̪i;zE8N.PMT~}d[ꁄ /vSo= +@+lN>ec*>OlKpQ={~ILf@)L s w?_S~A2zſu[H@B.!0H82t=WWXh̠;q%GPG! 3:;9Jp?I$AS4"*qt 9et"A27Etu591{ ,8ꋕ?=5"2h=2mk߻:0C!;]Jy ++KGk#s?M0^zno6'!gMŬ=%RK +Hw!Up%+!*s-I4;:Bp$˸Vrѝ)9d(-_Oʙx?ǔFTCY|_^p |āl!cu_DI{C1;=dp&qfs%(ivt!&̛}I&_ASr&gkt=S6if/},&LSlSPt&>[fijS}]?zC'd_@ i̲Ha@s#Y +¡i$iCdtYĦCnO]\լ(C&ykC&kpCO_spiˇ ^ D)3o407~'jL| _h|nZg~>0Z~?<+;@(^Ci?A +uH #vk^@zw.Rޗ Gcđob2쁾cƑczjѯn<bn :in\wEC|~hسvDxCa7WEGj\K9ȣClBpQ8lpFdxGOH7h ΅B+k06q+v"5w,A}ͨ[(#!цޑ( +#l"ѷCr ˟(3vS9?ɣ?wׇܑ?HöN%)8xϖW f%=zkY +a)-8#3Nfq[{.L,[ur]g7>}xS=<βs{'>HYF]xk$(b;~:D|Qd=NnT).#V I?洚TrCRA δL\Ԭ(@PTy5EX-Nhsc; B!\TKBnT{{9g%.ug؉qCc$3EV#FrއDu  CCP?DH , LT +@BT2q$9?O+T`liOo4 y9 ިdNF& + rLg6NR_emxj7h)'ZpZlʴ#R"YH8a HUD[qlP!OY9@f#$ܭI "Ȕr&ɎW"Tb]fnJ`#fWp&>]џq8reGlt((r.*U.*џ譁- ^D=h6nTYV(]"(vIآ<\1c\܂>XiPMo%np$_gF쨯dBh@ +1heW,=$} +]"aQT}.f2繲, +pfB>QNODN! DBNGUH> p<~^FGFċ6]Yk6s>㘃br䗞 jh#DaPy ^um#gZ`8hwR(kouf/1rM ,m "]#Vub-mV#rt#ӌa{Mԥwfry3%et O1R,,v}dĭo}_p:o1x]dJ0:e]eXe ġyLR,oO@++}<\?~NY:¦p 4>﬛'H7Hm~JE߄ i#.Fx؜Goګ5qQqɂF~Pv_s!a;^`x2rvb:řEE\;Տ8t@ io=Ϊ8`V}1_iAn!i؄.9#rxhd @jO4Ж?yn olj [m1 A Ĭ6Ai@i,BQNS'art ddSjղY B rb`"Hku}Xf7稘$UQbU>o)[a{BOAgXUᖽC! Zf{ @}#PQ;fˬW&PIb]F: ySuG> 2V' vf&iѳ7&lfU;_&S.(lOK8̪b}1f̚Yמ<# ZiMTiW4հPƕ Ԝ^>1(w!|$$GI +(XiU *!TXNJHHY4 $nXԈdt=tv@~[V%c!OX|yd Ђ^$l~j&DB(R؋#蠔Фm#JqŵiGu !R)Gf rW' +(*wn15yi°o_/4Yޟ9z`˦Nmý'|~#_FVc痨@]|2%ܼu)hzpt?%5+,-4%=]U]:܀}*!ZgٲpwЯɯH65kh, ]jG.C}IO1SD >Z"DtӒ,6`@Z`QM1~*` ;@y]e}l1$d^ $7R0 +"@r̵_p|}nnʕzN}.k#86l66 :=z$W706M{yHǽ!7*=v~w@Z{%ޓ&[{RT;kѐOX08p:=͘܃mn=Ĉnؠ]zƟ_=y;pZ=wAɡ"?)@H18ҏCX~=hJ]EM .Zjj-Rb3ZIɪF&+ lFQE[aW<4T{; ӪJe~O= +%_oF+NF!F 6'!8n>rVù׻BR<%ZOQ RUedž)Ԣ.JZ8:+єM"&t{vN> K)HZS wSw <նl 7 kfQr]ss ƫp@UF5/pMn_K P7r5z=2AcյZ<=5/ +Z2^*+S\8fχB<-Cɫ|[O3gæq@A+#沐"G[5rbNJV`5W5@蜎=:r|ި;U˫i(U-E&lűC#0)* " . +\ |}3ic|ܤ) +hxDXpq\V{?)b!Y>47#: ʦkZb$~/1w*QSb,"t "F! "He# uƢx{krw +!~j('!ܸ^>%&&u@EWĢԩ0d+MjlXSVaV-E̞*n{7VsK 6QNްzݦCW0wCZp%IW;jt5jmA TRb+sgQP褴ͣX iпaψ¬*ڧQӢTw$V4V*;GlD)j D@vŒ0%}4C71P|hP IX79zhl4 '6MhlOFeYiosk|In[GxFL)fZ [_:'6 B崬ǀkir%NkuninBh]ûhip'7Q#*0lZC%2xz[Fܸh|2Ĵ}cl1o'I|2UABմI}֌.`;DV0Q".ꀱAͥJd8xR#a!0[KL`umyڊBZ@jt%hl2'HL! # -X4j& DpY2d%4"mF}3$Xgr*QYgPh&lZon0꘮3*6j(Jځ@hXն"$x^ll%n^a}cMƒ7?8SBh^r؟35fzjlºU=H[⍌46s&Pv%q(i0&L9&n4Is6CԈ: +;4q5EI̯ 79 ʙrtNY*+yNo(ܦ'"͝ALs&H] 2yvn%E%jd3,16fBLK-R\JDYx&PEEp!^j(+(\Hꉆ`4ʕ)nIDЃD/vu5a!+XDq0他0}>;'_ itQF%ȩ|2a KdعҘ8? pp;fN-=1~vNyAB[a&#XAhB[`I܌z`'<\Ŷܮ 'ɖlM2`yI}M '5AtHt[y9F 3_*9G^HpnSi`}ޤ|5H'ݹ[ˉ4jv-h*tԙe3j'Ҟ;pvbs0)Lgj*Zհmclc1\KO5*@2r̖-It{J}DH^Yc8}YM6>86(PHÏ +7'cgmdMl"@[EAqc*rX09x oKɪhK CذACrNm^||lKxpYZ֣ kБ;#BfF+HmXR3ߠ!t{ޅC&厽@|s=xFr:E iCCW$'3ZW:Y +HT0ȃ!LZY \;Ctô-sY|0Ѧ{W^l,Z~/DlyY_׍[F<ԑ9$L)fV ;&9&F\1/}"˙sǼ] k>LvØS`,\y4f2~\){O쐚P?[_%:'}@/TC \^:z,`{Flt%g_pʋ>ZǺ #OcPL("oG,zIDOqObVd'O&< DEǾ߄(#wD">Wre֙Pff"}/`\OT@X 6 +lMdgGۃ:^~ +7EPT:f`P8Yn ,#bs.HhXv9&[4Cd +҉(`F6 hǯ]#6ґ?1޾*/M0>XbjÅ6o?$$cJ'mցŸ^faL?1atΕm/MJC!N,32`|?Cj1ӊj1CϓLsPSM!M,މElvii!CfթkrJN&) ˩iEЙ +piJfdx,xn I7gZ^"6gۓYP ʎ\N-@O򴃢ωu~9ߚ$s/z{~mov1jT޷,&lԋZGq+Za,6n((j,kdZ_^_愷A }:O[%($o5|KjPַS saJMǝL]UL~q{VS ~!(KֳIߜ7ߌyPfje1y^bCܴHG$NG@#ڏB2m,ֵ"Np*>o1 TA^pdoEQ&_%NS +Kjg; ^Ԯ&Z lMӂRAsPNb$MbcLޕDɦkkyqgcM^k!`'cG,.I +l&u@1gxEF1K8 KvbƞU +Ӕ= 9 UL$#&de:P(`̙䊇xÛǂYh` Fȼ#H1|ݹ6D8D4Be %Q&idcjܷ\!4 ]phdP! +L8 j=#S>ޞ_p8>\t|?IO{$B^,~:"AX "(!a~AtUSgV+[]сO-5h= qt|_v/Y2pq+[vC'# qwCރI!i6%VlLse(ӫz-.Yoz-xagp*@\ sg2~a,Z%{8oxXlDV| l_t3I~W :G9H)v)!@`6ݻ1'{J{ c.ZA+h,.!i@aUU$H\;t?G[&PA?bX +P+'ǁK,"d@A+. `dj\c*KvtnI;wjX;zXFEŎJn;% vYGW䞶~B<,[F -7=vnP=KNaڮugn7v:Ms/h' oè\=rڸ{vl#Xm*Q#^o8ڸڽޣL|oձmoHڸ݃. %FJC2,k}2nmaΥqVN[Ӄ !j B[Cf֊7?Oײ{'aѥO׊\O:w[B&{L>(o> Z {"a(Lz`;(9@\{DV{A] {BWtw;fz/:,*ũ6L C +5i8[SŹI.gY`Q-)Zq֖HG8-b̙ +4" aGy34Â$jR CtU<4dT**altjQpCK&.Þ +ukȪ[Ȳ'C\}qHu 4ш\!\HrTJ.Cf,rYJF.!@[wH͡\aCÙCCřCșTSOb!f0.C,<J{YVX.CV}..-Q-؈Ꝕa֛LW@WWx-IQ/!ĞC][j?= ,߃} ݧmΡ͞CCC]{[]$w:|{Wwpo$CZwԹ][2gb߻J'{Գ܈lnWXlB+4FF.!zDvekc+EcT&5ڗd]r Tk^2Gq[b7(l<1#>Ry.El06IK|UyDiQ2㌌I=kaPwX%_[(M|1 04|5ﵤMP}-yx$Yt@.T~-!ԧQƲ--<5wG|`o܃ i9kC/ *^a( !p"K8n4e2kbq5+9Df(#P55ymzCÿ{o |]!}|n$ d\잩z;oB /CS CYFź,l!{vrtHA~/clޅࠛMja"{fwJ8#{jwPpT4CWXJkYZ409^TCbѠT>$"-& hfMHCCh?\Iya +؇@?lQy%@/^b-;HO g[7V7R ;nlO 0Ϯ}m>/!"L;$44/' +` ]k]^ܡF+X濐̠x1l̢|nBY: k5nCn G~'|'DhQS%eIT#쪹N(/ytjQ09rshnS~b'!&ty[ieژ5S.A݊jS14kSE؄uID/AԩlqeH3UJsInS9:wD"|pStE`)q:&Sh +0t(,y*0.j:{jjpˢ|alp) >=]PeQrlCx;,:Vm iC6qh?FHѯZ8R9_wRaA{|+uZ\uZi6M +ujF{c3B'C|⽢A.MX `CQ`B\G0JCك+&xD`W.&y֌rW%P,)~( b%U>DwÖ2jdOGUZ]8g܉4Dr4xwaI tb׆cۛ孬E#D#0_AsV0*CL1wLʯ,ݤ/ʫ j73wSb/=:4m= +\\Fbdo9TW^ߟE '?';2) 2r'YF=⭵o/Xߞ'ŏH19G|B?%8dыBf#p(8AbqY:s+cu**ay+59$ִ&Y&G**@(@)X8O_XdxQ&Y$RYt`泄YӰ@Tn@܁% busZe٘`bjo6Ī +Ʉk9;#mBz|>&JDk軅: سidj]ysj]vMnJZbpCxt< ~I/z{ftZUGG }⠏e_ay Vk4sKe-.sP I'!Z1=D!#" +b^q $HQ9q^mhٴcX\a6^k,oB&JҲ Ab5B$׿/*L\Ǎs!Uhs aslR5WTwkvw4%T&BZ?bN)fO"n?󎶓0&taAR{ꐶ-Ӡ+~b5SqV7cU+*:3DP TZJ6a -H3Tu1vTK(?1FtHHzkJȰzCoW5G ( +x |LJӽx`_ͬV:śU +krxuipKU & óPRC8ﺮu{$4|ͽ84:@Fj: \P1 %9Swm sDޢsN WP멌\9|=:\==bn s0X#Xڐxke.T\Qdb^~"XR(RDllPQ y#A#juQv,[0h(,n $t {Ddg _)QK4K_ +FqZw ]Y@T{b ;(pJR`>9;*̴@zZ8Ox(et +q횘V)㞡pPܼẪ:uP6\KI$d^0^}^ >V{?|>WlSwOcF3ċGCa&ubW m;{tw%o ߟ:U%W:"ݥp.%Cq'Q<]݌c>XF)֎GN PܜռqXSwr=8VڼȑiK||)>0UK`nJs^(/~!Qh#{Qܮt%ލDg k [̼[ӫf㶛tY[5\1ī׃Z\it |_HȌc $n#'{!xS݂mA_woN\yS0a;9 \! 4ɴ^(JJR-+NulQA$nF:te#; !8>cMlؘ's9!xz<¸EAD?R3F]A>=J|}QC sBn3b1WhC5#C>BBBR ړ,oH1q)Ї`;3K鮜9Tial\$se9u^A4if'19Qw#NNYH2,2NeFu`dPKyɞNʻ֥?'Y.,:R\ff,1MOguRGa,96gh \`%Ak]F7ex!d~ ;M d[*>aeR<7!GoFcI G*5uI#!16Ch]15f@稙'kϵ1G41yJ*vyGVqɹO8`]k9 +P!qO<൪6y +D5_tCW,oR1)ˎ~ k:s5bMv爋Lb+˭W\ѴMɹc9av"TMedGCyKƎ=@w4-l/r!S-F<wG'98Q[BP.vYx0eNegy!wYG0Z GTg+P'Vlޅj3s2򳤘MOSڹ;26qT 3VA +˵6>Y /n2jFRjw=>ez1 ɪ5x~,dEF'kT{cքBy +N^3>.*+aC!UvͽD|`J[u4ٟPA,#( +9Wy4o9H):@8ؔߘq&(EeDyI n]H!LkP>ܸԎ@ |WL*Y*)1_՝d("и@$ئ^}QxtϺKb(i [pv#4k@dL uF\'9[P``\qr@e mq/H@>&$ttҁhp^S>ܤg5dj$f܇thsOt$u݇!*q3P*Rݳ{l4bA_v^Icwg 4oG=!ܓO^QQI!94ӭ`]D4O] 3Öp7! kFh=”iiSM{cF ZFPQPq*FӃ!E2#c AG4ܳRpσWҥL922c@fL!d^)Qa^ ShhQ"%`U+ +S#{G t˃&tfceW΋B#EfB7|k+fPsmp!i괍l5!W_iDqS8p!oU(g+uj 1hʒ3N1hl:S#.{=4wX?3 5AlPհi'홝C*vy."y.##,+/0$9z*\<+EE@ƚ 7{`'Yqle-ͳ#s`-r,֍n`-PY59PP]%_rUɓt,I SݯQE }CDgӫ'hٶ'-Φ?NQIC"ea9%ZHTntHXy: .Ddv#tu&%wp|z<⹼;6AU 6U9(Y> bga_nYPA=q86ŐHpi3xi8t~|;2jTZ?A $8& j6۩kF踽u-}2ETFW`?yK؉fX,ǴyI  J jHb3iTvzTfTܧ1nȽd]>DIfAa}틝Cޟ T@C[Ff/ +mh9X-t"n{tiڲ]ܩa<[js0t鯉s^X%k^ݰq.j錸U~p+Щ}\fT q+`ϔ# 66wf=ʠqeKbJw 6F? #Y[HB]g3Qޅe\>~&7441(JS:D]3ouw!L$j:j-W1.t[Ilnf hRY#eLP.Kگ"0u*vh +ĂpEhl&G1ϕa tvQ( +ԣY2,ac5"Rʥa̺ʿCk +|vZi%%khr6Z^U f񜗎 +13}L !=>kt1UsB2ʧ-^s6#eyqnpT27H@1IW0%/<7mH_ mJfףt Dg{:P_J:HD\:m;]p nۧx-4-:HK282&."_gD*wAV&Mo;(H4C0I##ɓqjJjUZ+ښ&շctNZ47KHM +Uzz2+NmEG0UH|KSfNb$g /V o+z7H3IeH%m X@;n+W_fj`%8ȊW*]J&|Gm+E1%A4g^,=ѸqB9OOz +)L|Ž Ԃ<U\glA+7gͩo\^')ٖ6X)FXBf!XCAZ,-Lc|.pLG9T_kЀ>aߊLò^*#+d݂gqȮc ?^;j ^C3MxJtCl\ae3y)9ukÒ&jdj%҉B&1ބA nOJVcȌ#b~)7M&@XͲo~Y8L:PW>$ads@"R<.V%l1ݐ#FtަGGaK%/O5fKd Ə+3bP}I:،.EJd`'}Y׀EDǦMKCuEfLjj=`'sBu$rpv6 %4 NC>Xkt{aؖjog\]0l$N{+$サb!#8>f5]6 ;lnkc_x?7kuTP}RF`9M(FlN,QhFQ=T8h#X_C ,{ aܪ%lο+"]ˊWZR9o]UE VG6!04UH8(5%?JV$$2 *\ğ|(>KNOz[COG⃍ArHѥ%%mcH,nUg8 Yri<1z:`$) $C|o/=,&5RJqS#xG8\i6 +D:EShb G}g9=qsEeucm Fկ/!c%p҃W3u;$ΒD&4ij_DG0rk=y )> ~&^7DiߐҬkH xe⥻}ˍ#̀a9|wIa=ar7!Fk :}N,AL=b¿M:0δqδS Yg8Ⱦ9Ԑ;":xt̰+p~e%.K-Hrv3HY]Pz~.o_8 E^d8,z6b̭|,N?O@3'}As=ݵ_uV~܂ڎ1K.(4qm@NJJp&Oz%{90#jd_0{Y;[@d:|0G +!>S*ԡYv%g/o3]]bn-is +y ub^ˉ0f ?~oW麬Opr/O۱|F"d>Z1 꿊S7X/[gq̣S>vЃ SYÖ K5:bio7l:tDz:@pA_Eզ<`L&=dC"ۿ(DVp?(DCzv`EU8&j=8FqOpǤC'9Ѧp9tVO+bW֎;HYǩ]wOr@z@R=iGf;FX;@\ɺ7 Wݎk;xrps' t;h ~ڥAMp{>idy͈:N4o~hˍ%'K-;MR'rD⥴;yoߎ: r /{@%5;I{FKۇGS-~o +VyY[։d[x/i[<䪄S+; +-^=U +׺Wj+q74nDS;DdV ׫z ccbEsx/bcҋxbc:=%ƌU@*&մPj,E2thfjp6J{h6&´{fM8H~ȚfL2k675m>nwe5m6`Vye) +H)XOm(x)o{Ӌ^jONV#p|e6K6XKqزk"흂mv׶m۶m۶m۶m۶mgF}nET=ìJ93&;9pq<-W;#s|ʜG#*1t30ky;l^2mX#(ȱ:\Ƀ3Vmth5mwPcPn7E]݉f1D53U|G㾴aS&4(쎱s ދiޣT(zÎӁ3LR(Tq=5(.UR +?*US +FǐEUmTUJ,fUM*T].m 3*f*%LN՞ /jw/T{}f+ *D1cpʍ,aF +1-+bz0mUXKD1-Yfڔp̶$u. XEdvg$JY&TNZrhX*U)M;( +^c͉W, (CD2;0SKFV#Q\*B9>?ꇾIp TI'%b8`thyvor7!/EQ3W!YQ +I<9,Q!-T̥,QAE4Q*%ETSS8lAް-Vh 7Mm 7c* NφoR LQ>+'clX;( ā%s +DŽ 87eRڞLOvyCB"u7h-O. 2;JToŮ:&&;_߼r]crVs>)ai'L}h? gH2Ў3T%?1F3jGvNwF#g0>0dDSjK*2y2σl{%VnȇW* 쨰Shc 0ZV4GZ: LZ 㴬!_;Z ^._:[q!Ȯ&ށZ>a7}A٦c#ĵ$l;.6%NC̩E!ayxWfE7og/xzyICL(]Cȇ +Ik„]bVb5znG+`c.sE44|j!F"Ѥ*uY]\FwX;ލ ܉Г׮w<`f1zV~rc)vJej9#1{swડ3,?7 EaGg:xu&ǣ4L_vSvE/5v3u zMz㺚}nѹEfjëދeg#ï9,!XecX01*QgZ%odQuU7!PN?$<$7=x7=D7P4&a?zŞc׉ W/ϓv6LUY֋B8/ʦb\>Y$gleBaO iI (^_R\RQYێ>@-mO!kO<<)I4p =m9 &;xTiUD.fmxH@͘o(h:4Q ѕitRHBxtګPxo͝7TAm( $٫zg_1*ICWѧ Nf)ibHcv E?JY[fMܢ GVbMfx7 +m3 0ɞF4vvVZe8u ё s rore7 JH44)Sf=݋H''͒^ɇGcJicS8 WgM^3xE2J+imlRѝ6% 8'Y~o6s\39hrpl1˗)csqN?(\j 'wwO~ϓUsfUεV= +T:Tރ"0rm"K@bȒ6UW?^N]6,Ѫ94yy+r&yfCр'1 0?s@3ݧ\+u?WTd UQVmyGxżc|zw[/ +Wg^W6i1bB֣XV }ؿ5]9WFܳ]ws6=Cudu&ZK1;1'3 P:s8pLQ3^ +u֙ͧ'0YgVy4{-'@@c+8ٹ88֞d'%مb%ryTk/!KTs?%*[G>^l⽡yzɇ f菆ln3W<|~|qj!p{j{TuA(ZVUlD[aw\bϝ0H$_*zXL#lI54j8MG[V4EY3߲e4LİCQ-ı=J ,4ƨɛ(nhre<&& O͓{6&>xVD{J(W DPˉԁǟ{S] ?L5R5Kiª D$/{?I2lt82rF 9_bdRtYw1&å1M=ş/ 1uӐ}@ o9p͝7B)eJax䡯m7< _.K]V.A48WBB(cpg_+1+1N$cIr1!'Uet$wM/$0I0rq'9Ib'H0eᐢ/a{{IV_&}Dt$F]}{_exWPq(  +@v cv%GzǗe^BKNoC SqZ+umVAyQv6} az̹5 {yPJs/"B.q7oVvb+l9b'.Eˆ5.HL +հASقlC?ѱZa7PS`xȁgp(*k5RYofkz!0 +9 ˓4O(!ouVڥ3zWA%/5irڲqKW; b@[#|}}_S&?ϫtD q$-YA;2U2oj3sKUv%S'V>GKfTY:*=eЊz Gݻ#w@R^rn W& 7a p5&u1|jͯa|Bj2A.W2vd5}I0dW5XcWzd^tHX8~Q-)234(m' aS + ѢYΣ1&|a8yHX#/~(iS`yeK9H|t;~9xxIP> P#3' 89^1I/oxgmG c#j"e~d̙Qߖ-UNƚr7 + 45cvb.u / lRg>N!'D totLN;rdJZ RC:-mz0%oӐbYSj%Scl6Bf1jz=rQreqw79O{L/JT_b۳0MstB +WTV%K16|եj}@`T'7rjΟd +^Ŷgg)mKQoI,>׻#dpjǛOP.!B+"ɶGd;,N.gnfVnȌ:~s~Ի)#/y a_G tFLv|ۙvH;9IGd~ϵ펄o]Lg-2(V UFK))؈Ggy1 ;x1!% ұ-̤ E +ݖFURWI&j\@2 ċO ͛Uv3sBVfc3 HY4TQ5d2DZw;5ZD9- W +%DRҀŒ6NP'H1}œ:C2<0#;gXFj $$efժJ>SJ"JTD9JзI_y\yIy29"G-49#%_y + l)g#m +qڦUOIoCZ YE\15cW6]9I$&v,!w[-0h<~oƊq!D DW汣9_3H=J*RERbC|o|e z}T@&xޖ.vrp [D`BmO,IP"͢f律h~tYT %#zP,Dl7Cabԟg&'#쵔1TOv-wk-FZ P.~zK݊"nr>{Q̜ >vt ~^yb~\w}~i%`Ia-{Ÿ8Eu濟Hbz}E +j:< +HfB#S2s-e%l`3(JRJ+ݪK!UJ#Sj CaP€p$YJ&Ga"T-9p₽#V"YxRʧѢ$Rb?lBPwб]=l20ڶh\_\]sT5L|Ѯ x+YfD|iF,zi]X/>m4Zьg3e 51Jl7#1O_>D:-'A +c4]1wx"UD{Kh~ wkWrƎjR {g鸚}k4y9/ -?#bNI!+-i9>ću:u +b-O=_-X^|]!]l2~Lm(H>psu]q%A:ʕ 7~q^P ,Id1-w!_Zܵ?bys4bAet0 rVUDj( :O NO-U*תՙ?ӢPT:;oaOZ|\$AOs |Ce ,e2G`l1({ƃOَ3+6+{Q|d3GJ:L](S/g&2 :%~` +S?Ь}9mу2vW'/+-fNg쇠}>.%?дܚVa݂g`lIK#N9+̡s\[M-){NciQ>, 4U^9y϶H2S‚%;(4깈rvsm6,Ѭ=[|oy`4eYn}Kes=7N8v xؽg !oX!2 9gm6G7 c/0 ~I{o}P?=ɧ$] lۇJc4$OGEp.OD 6Oxry@Pl!iIv&]FݐMrNl&yEa^Q9 +E=Ii͝Y7$k Ve^Jv{YCqo ؏g!\oz$Wr4]X.d(I>́94eB)G@gY5\1=T +5w-MVΡeوmvk;T4~ǟ41MX▵3;RM/.'N.7#W%bb+39ѡ,1A E6Q{%wvȽC/%.3 krϟHWRi]r:Oa7?fb1Z7ևvE0 ext 6 J Y|Ӭ]t*G,`XՑMŶ<ֳ؊n#;$P۲K& !6hF9'B g\%qbSKVRMqL'ْۧn'Pa'4 \wB&B ;eu1ߚNB˪k +~GMm]~{(&C8.!7/JzK/z/liN:.|h6\lf<+灭 K cȫpwe=vGSOK٨R0|ܥccLf#UWe7/3pWWTNPn鉵oaw)vN7hg&ayzZJ,qS6q66ٝ04)8.*vd4SDxFeZFi,Rge?J{D:Ͳ-)jcʖWvBD2SXbEdziXa5N%v@Fja:eGIR4e?$enBJAgSuu YIBT`b4y#,+Edv&-CnL{>3Nu%~.?ooSG }j|xV>˺ ]\<AVxi_L=(ْ~{F_āX9Y9Z9]+]/|Ew䩹M^ؖ,}*O.•_.]o⪺UV<{ +|,/Zȋ-I{T.)8 +m HhYds/rK:h6³gqDM|O9VH>sHホ:sc}Wj݇PžJJ67KԮ +3W: ;s&$(PSݽ`FŠ)] Sc v *A;jf$pSOA >'O:`&@G_NK-< fq8 #B6a|cF1G)6{nP5AҤCVa%3ańw,Va.PJJFFEfB`俥mFM,Q9&SW\YDD0)4v#"Goh=3Dcbyd+8B# ~̝WȅaGT@WΪ2iZZDöhVh6nr$c'-JJ +>Go&;87Og@7&N"*LanD+!QD%mpn Sja=6`%#T̤w :'[\%܀Vd2a^jT3S,,8W\ 91fǺfY [r{rgV$K56tKQYJ&%D: ʖXqQ4PD z`@*ҖxZ]taaasIfÐJ#e S1smi^}9W^Iɑag1V+z<{^Gw l0Q+!L0(rY>2Pͮ,9TH6&2V."ߵȕ^r20bれhU':T+6?E9XܪB҉bspðUWI(E\7a}>|ðGDai^mPde)gZlhp"db礠2`7t悳Pa;ףic,iu^T:]b,~ ﰰa!0/?`0̍  ӒZ3^Zi_/)1p$wͮd򆏉-:k)N)d&7#S H9 $9:<Ќ#S2 _Y:e{yr upx**^&Fš%vCLJc ̈+!4r0 Liܧ`seÐ.!V&eǕs*ӡyJ,nբnWQBx7<6X6-8~VϏ:`KX꧆ T/C1w(x:Zx+JQ!t Bu T0tS\L*$D+rCX ^'])bWc^iy65AD|H mGtBy@E]޽/_,t;dtR\!sԖ}ʖJWL9[gT݉tu)wU1t! mO87A*MOGēj;lTfD;ƟQD&.f`η,i{ђ&˂1i:svp~%Trk$Nn-Ś')U~|.(kE)b籋-!LoT(>3'V߹B–7((>J?0R 8'8fF_\!bQg:]V#w07Qy{<ңpm#¢&83oHaQyز4"2@Ə +ie;rZ\ +xFL_:Qy(^C>Z_<hTVi4"xcwuwQ2&Vc}ts]?lB-XdX& 7J+n.Q"4Ȝ' 8j-KRb KE ۣ؀Re$X/^ma80+ˀsy1*9xR4.MytQZf{^ye&ʫ `"^wOa9nW b;UIA\)UIA^Kl/ 'ፃy;g!:/?i]Et͛$|GYRɃ.tofG;1Nj)ʨ'~%۫u<~E-[Mϗ0/l6\݇c헓'ìH!\1'`E0˲{qLzq@p2 Zˎ|~P밝d"H&ݗnkh84SH`q4D5 r#1~×muy>^9v =80'Wϴ5S}VOvhb4])kkz!DDY{ Z~h[rC+qF{L=u\% 7`;g؎ֹg:y!g>]+t"3䝂ѹ8 o8=CH!E^ތA3]O:HݓsXCy@WϤs/E/~27:돘L^E%x^E3#BVPg804fg3yݍP'|,q:wsST0X=”ol>80AMPHpcCA8KJI J4E93pˌa49brBOyqG(wRy€h8b*\3RT2Iq9 bx^ 8/rb.>ğ:@Ras_6{XoȆs;@ԜaC2J[Җ!K'ۖ,|1溚!(Է+.l2PF}I jyt$!gf,hQeHKBx ]?/ 0͵p HfĖ +ig‹Q2E?lO+|ru] EP|ؾ>hdm~K +Z{)c_@80ڐӚc9ҲK{Ak Iu82!ZSϫ=>\O;/t5`r?˟gxI0|L2D%^v̹=ʛrpd/;ʤ TY`+}؆MGOh9nu+՞j\X1[R¶%ftj[pq J'.tں` Pr?8w7BwJcps¡ΕTw0ͲЬ=zcG`MOx Kpm'1 mYɖ'yiôk~~=:?vC( +D2׺q4V-a'R_\޲_ꡨ|BxǾ~vrԞ?BNayl[%k= +L}M6d&ht{(42/F_X +o3I9ã}/R甙D.fJwshfV%Ȫ3g'1~;XQnWo(w}*pG +N3a$N-ǖ,-y"(3h4nnѴ3, eۛz-W}w;}nYXG.28i.- fXr g4L=^ڰKn4Iy8K/yi+UN`0s$^QP1yZyG"q8M5c(o휰!I@"Fv@-PNo}4`z82|-E}/\͜g'WOfezZ\u(V׼q +UvC;d9EWJz zg7^j~%%)D߈0 +ůX=qvy1KTK&]EB)÷~})p.kՖq~y6S"ɝ(PߪƬxhDIgn(t(FXbP^ +?ʾ3T̹~WB"6N xoxGڜRN-$H~G1+q~CCy_2jO"g;tu;^귓%jZyVdKqEe{@l˟`03+LO+ѝpPMg?SJiB!ٔE]'זh>VP-栐 n6<վIlp*;۫ށU&.c [{g%gGcUICVDU׊G9>J4ҫr^- {0 Đqef 5 I!M@9l.m@)X.O!V˵hȲb5H< 0 (d*s݆yMJuIeiz\;q_)kP+VA6JLuR,8ȘUQ2uQTW;sD6 F||I Kh6)A-僜rHs,G,b'yg?l3^#j?GNH*2T=37dDI}`fi'.G@L?KA?س@[96k4= Q-mDf9Dfx;%BE)ɣ^RaxDa9Qϖ j0πp,hEN˙t@^2*hBt.&ՋU6Osʆ8 {W4kkHi !p=֟gu!5.fvBCRM Mw%dG?,NmS`?ٍʌOD3Lm\K+(Cc y#sqEEyd_Ms.y~a=ioS{L@֊@!÷%кc =;1n*'FpYY >"nz-9!-{ONk,h$)}/A_ +=Oy(qlV9!0Ph&\6?[}MW8h""_̽0<2֎4Hp_ Rȸsp̚TWoQ DkVɧ%dEGn,_ sIcIELͧy7PV c[0 -=ӪɥiF4MFEЖ|QC(95QMC_T3ZC? y0N>O~KMFúȪmA~T@3y@)+@r3 +WLq|`(x|JU R~:97.yrĕ)XR[Z簞im.Hr$}=l_^w#Aöa9H&q' ";CӪrÚW]wNƀgWwؿu~5#tg>5$DÿIW^N-[\An8eEP4,^Tvy.YV6DEE9%m + e:D4e.KAJA,~s]~Qu4;uΦKR8|S 8w|& [FO?p r JM("6y"XE\5MԦ;?MnnU +Z<0ئKաf( +AwxH.杺7oGs +KG&p Cx­0w#1G)8Ch, 7_v̭2KzV]:s*aʭth6~|EC|#w#vpJ%o_'K&s7i%mw#|'_R%z 6֣|g=j9[!cW/twB_&vnC^״ۏѿNꁵXmcZB"<|cDoqt)9[y:3Ul?}DcT3])c+$Jaw-c[^Tj0)3D/嚦yEZs[:R0 +;cr9߀'i)FnsMJ<|1iv \&"DQdȈb$fWݚSbk7MҺf2$(#_u'Bt8[s]d.>\h͊I+ܝV|8[lH+nZB5blMJ6@A9GQZs| 7֠JY* )LV޹uؘD +&Jq.Xg\W5=+ZugdxKMlm5(dm9 ĥ.9 = Bϕ;ů9}t*t+F3MO ΕU$g?9V;ەU^׮4mB t7'i\GZFQm>z3\7 vLH60R5{]f`B{%NA‘$b +š`D +.:]%Nmi95̦n58yˊ'S:EQrr!E_Ij9T匵҃' Owz\"r?GE?m>1r7 362ْb\bzxȲ) vYs8 +)q2LY(kOyOو7Gߞ81B [0jXMv*bSʇ܌:<ޖR]ÿ́bap,m}8\G|dC0%>j+@`%N|%;tKƍ zO-*| +K4B>C;P(:JhzN8cs\dbtP {bSCxOvSW*\,&977M + 9rL艁(Adj[1:{D ǫ@H@&ZՃ@§-p?e *ƛe@șm$Gag6b[oJ\֕ړN]G25o3JWvOхʖ.swT[gêIO5I,H5돳*mI.OJޚ;7A]2vn #;uYg]]r݉`Si{ΨcBOl]7D$K!kbNrnEs4OJ_& "On_fޝ1&3F{jgURLD湼;uo(*dp2g?rF#.b0 }![E&ۮKayiN'krunYlU#câ=S-Od\%. + 1 %mJcn#*,-H^:v#$s x eS54Ao *4Tg;]VQ z\-uq?qHzm!XR=Pk]J u_%7TʸEӨ^U{ N0v3~]كkֱ-E:F'1 cGy +ga|jAͩ1E~{ĖUYXv/>syD +O13\_2|2Oʲ-|G2t9/}u1MU5zy#CV-c}%f9$ p@p()OP 8{Vj'YV/+ YZYה7̗0vd&2QͳfʡҔ,ɮSEγ/]#XȜ(UMԩY>S +d{G: j>61XL(koCکЉ]-r&5Lcd=f;=:j(*,Ob] Us\.2C 9R-o;S4nv4ɻv -S1Kb(,D?JRXnIzJxSf7;V:s. Dq ;`YPy?3dz!>r~rQ\-΁%0w 5r #e)9i?"C ]pj/ښTT:>{71 P7`A3 xoS3 hy$HfL4@KxB;r5d4`PK&c.wNu͜ 2T>~)J@XYeQ"ncv +ض?vR?~t@ +H +an7+;iG(:nX ٫īVYt]$74v^n^yc]ˆbȧc娢&"UV4jJdhq*uj0~=iIJC8,ҏxO&L+\u!MyedyrD oٸ|gbm 7}^C-G>40%{K u$]G6/0wya2|DL̸=3!u +X ,(=/1OH,l4h:k̤ZJ.[Sb;2<:l8.ܶqiG%~/Ɔg#֊ugi!ۺZmnmb_mal1^mHOqdpWy;ƚ+W1?jUD}u?BZgx6bsQ =[3|5ÆQ!%@MvUc6*sQ8e8>*Wv$6ɍ춈-m2_ó/"œ%"żB]+*bo WnKE{J}3'_^#H:qqȯGD}-, 5ZA`Uc]BOŹ4 +߈I5.*NV+q:ٌc ƿCz'FF*N]Ў.%7;|3|c>*4LkV슱%c?{yF8Y_|~Zi-q̖%J{8PP9/Zu1oB[ s mLԻJu)pY nؠn\ߣY<^TU=D#=[mQA `@z+_,ù/.ȸ_%H?I"!L.xqmij!""v t:\B.x1Ru W?!66)O8;TTse`$đjD4ZH=MwmKMh}|Vڐr5YUMϒ- ;ܐe6@F4ݐ6x| =ℽr_j5 ;u;tH>6iJkt5ؗr>J"i =,I\hHq|'B;S簕|1LNiu$Vk!,٪~KQ==Jڔ%Kybb"Ox^JmcI]ahuhu# M-V-, 6vKɵ_EOӹ#1}XB%B mBY6A:nqozeaA{XKJ.ԙ4/78S#۶^o ,wY$V3s_ya;\@OWX'7 >r)a@`pY,,8Rbrq/CY3I5v(tҨm%0qB+>|ߗL! "-l-g[Ab_q ^CPӰ^\0SUSp}۱bѷ +9|l+]'"rwJ-}ȵZ7fC $UD폓.gb\6Mq>r)zaճHADi7H'vՋbϘyy$gw梐c0[0˚w1 tǴw:mbD}: +2''SoJ4툧'#ǔCuŵ"՘q's{R< +YX7iP 7x?u:ΈNbUg42؃DXxZ%j?G=AU`bEX$;f0)˙Ywx|%" +U% "埠&/`TQDE#!F0J& a@ TWbHD0+ 0҂R+[Foqi_zx1=fŝE˱33lah/ }|xBfE\ÌF? lwl>;4W-j ^dN';.էI+J,AHV5BX)D-Y Y^ ,Z EZՋi@+k]0yU1` Ӏ6pN9DTb= bm&DFB"9GEe5GΑ:܏ Z^bIƂR/39n絲sl`¼=|LHm0mutBľz`h\$<roV11pR?c̿Ԥ-sE B3o(,d7;$byЍ%&a?쾾;m}̌Y:`\Vŗxp}XeH'bh #0##OGH@$'P#8%| KSWVl CX玺x +Cp ^EwGڧ nEpG ~E' +CxCg +ECo=o\o `|{fj!8vi`rTj3fyN -3T+S};͍%4)eMT5+GKCp9{>Z`bk駡 0VG %瓆+ C3.Ư H١L`Mj)VzǂlD LLYE]jSdX2Y mXR`u-L&^ hэX=t@`QY"Aڸ6\Ǥ#FLĶbMuDǹ93 +-GR*gqY2t&&A&bg'r[57i ғq:+f}[(;M!f! "2bz]BtD%V=$V*<ǔCfQo+hʌSsf=zu.Ρ Ӷgun)x Ma vI_Lxl6 :M6d^pO[|ÔTeeXUT@\aA0ύ@"ð2)>Y,L-HWI%d:3.K%HZ6dZ-L'HdX 3k$ r77&'ʸ2O$IodF3O+%HSd^9r%;%ҷG2r WelMgs welM%I-KHpGGT!=cg7OJ.M;$lͼƴ'hx1%$/@+09G<;nȏ̳ J!;*B:s` NH|Hޤ(Y +~D*~$Ӣ7xlhjc0t4;9ۚ`Z?H~c(1a!mbI7ČkJ#ԠTw'n6gl*ͺC$TG4}VՆӫXXdTc(pԕ쮺V q wш{OL`ց湰y#:z0NAӸX(T$t"%u" :e2-Խ(Džٙy]ɸѡW,ѭUęg@tT. /T s !R:#($kb9hQQqg1?497>}p9s +򠍋iN$$%%*f!ZMw6?I֭c!LI (U UT*U +[m.5j-/l_ ?Oy?v_{2Fvyx}ra\y`Ve9Dz g)p_}8"+a&Rݔjs*C_s\\?ctߠ=(E3:5jua&u,5ct%uҋbC b9k*s+s_9|ۃ8s/{#RzC97cA>ۺ9eӡӛ +"꠵}}PD(W'kp[$nYٶL-c$p^Ll_8-8fx^g?/>*7 i# + wP=*o@PV:+jø0mmzG<M +Z00GDWr$2$# EĴG2t[eq_ykÌwµTuh`fv`Dۍ-Eu].9LJv3,5]P,rzZ'M;6Vӹ+rC".+N4lUuD; *,lzPdZ6gZFEu1"HBRcWH YNE5-+J[vqa*StZ/W5[T +975Qd@EX9[{j/O45CڭU87mҟѝN:F & ׫7=m + bIK.Mlr";pYB+md5Y=O?`XGdj|*Tb!a +p%7@a~!_䩱#<=e]/`3>l2vGXi tU%81LTGA Tp[ *l2h'H4㷖y BV.WwT +GsF|D[΢Z" / x<#T=KttPV6կOt2HLlkh(1!A-5-uVjFm7蝺 +\"UW0`ZYXNٟՙ3oV{^FHh\A0T[.])Zl{=lB55y6LMI B\a" PE|fX/XU !gj9Pf|aG휈;'fеDY&lj=rLZsxb++rZai0*LȸD4MQ&*XN/@@ˎrpH%XO@]%<ƈoyLۘR{=NM/!+^Vأ[p՗R_Ւ*Ct\N0 ύy.^>x0Ɔ(~+w"^CYAb>^Zoqu=2陦.n$zn,~1Xi+[TU9a^<Ky^ͪ"RKi,9 Ug:HhL͐#meǏ;m2^/Y܅@Gkw1t +.8\:88!vT&-ŀj+WKB` kbˌ۲?UZt}N6HGYD1d*}ǤyةImrZ~P~=J 幩2K'+\S^9"Xo_&0&g+l'hE0jAۦ|bV@Uha\[Q.WMipڎw|H#>b1ݙB]U3H{X'?CoTf:jv +A{ e:wz#c>z ^<a8e,k'8>1];8Y)P@^[A0gʔGH2y%g>UҖ< +f r풚T7nwZ'DJa1Z; oaQ6(g y)S2<Ҁk\pU絅Y~qĿ)y}`u|s8ks@-9&K=ebd3 1HX8fpB#!Owjeo~'Kc>Z|xI^Q" J 'u9yX2S <`&nD w(܂wQ"c93h|0K(T]8~H~g*ZX+ +Ĭ?dSGշ' +#=P{-?'T1 +Yp%Kmn]_yX 95x}*%EQs{e|c &e9ҚjRsyͺەz넃y% ?Qbrw>/'%Q+WiEpx} *BZJ;&\ҭkM/i'^֟ -3-#dF*y$[G%e5YT +,w'-*(k]i) +4"v.Q@ݚ'/Ak&t1f:.  8H5K^ÁFZSVul\I#4)@ilhܦ^]+n?Ԝﳥot\ttrri)Ʉ $P~Nl7ꬮuQB4*߈ + Ŧbps I*lGrtbl%<+>mAug//8U/꾙!je 5usR%ŖkUk ϩgXh#[H;%W+Xd,]CWK==#=VZSZ3?9^"|ls63"Sv'xJT :'᭭;FcqҝSz8Ϙ, ZZJ+Kl9Vm۶mm۶m۶m۶m|$3_rN;I'ZUl3j=3HBJY.0iLOmw1јȴ ET b e`+1)K%ZŰWܲ1K͵Ura_Mx(5sF,ֲZ\6ۅH؜j:ެO~ځwzq3\ VF'Fϔc61ٱ>PϔWz>4?[SU5`HgR<7?g#m-RJ6ZDkX缮|#mEݖ>:θ#c&ξ~/tZ}L*4hfؕXgCښI / Ze,PjOi[g<ʄTS7ANSlzUp*WMs@7=++U]gBFD/U\E*U;4V%gH +Ԓ~d5rN3l̠UNLC𨁒=^Jϓ6g= [3[Ubݥ}qKmAGB6@g+"D_7?k(lXWʆ.`/? wE,i4 6fGxcD$M<SͯW\z$OȜ-]~/eaBIMj(!Я'@׏:12N?cfgW/m-Weu W=c!v3D I,b +ەNP(1O&ݻ1-|]x})pM or )Deح4枸Z :aBE%U0_qPwhߞD6rG|\uI<]coCp)w)ד>W -2gɯ2'Ց! <ԔYS֑C_MǶ)z3vOcDV'fD2VR2@3]C+Ġ13sgbYvT !r+vVܔ['ZD)/jrd@ j?ȡ~U+E5[}dS=&+`xh嬐o 펺m 4̈́Ў Ӟv lL#WI# hl>S؃N[l[X?rW$+&fPR((tWd+ + +͸i ɀޔTW\/wQ4N8.5A΢XJ> ?4_*:D [Wa + 5JGEcMe^Wg劅Zp2N,K K]t^Qy$Veojۗŝ^{tEw,vwea*Fa\{蕣t9B+݊rsL=e-6(̗xlN\OK#^~p@>ȟ_6Ɖk=q +o:0R&usxOTfE8% /րmZj 荕䍹{',#8YbLr-Yke=w ;(h_lK:srțI'0v +,UCD/0:*}\WBmrS1_2FZݯƷJa EWm3_/,XQRϫszcq0wP<~A>AX B Ts =HȈŲ1 =y)bĐ>nuLTgJa36,@?iLl2T?,]8r\ +(1 +y{0]', )"l1, b5\U4B1E2OoRڎS>cki3[g_Q7@$+0gƍ`ZtBtѤ81"_KPYY$i¹#RtF1%5"$]L^[Y)\Jt7U`8ROsR,9EvT$qJ$!-:uDJEυB śX_מ_1dP]U:[뚻:jrW3I]S]z013j&AVi"$ۚڠP*8*=eTs;)tB9}k n邦WYÀU +\//!!Suؗ}d?'=61b%'f4$\9EH[P%LFƬ!BV[ZtCzH E𵎚/Poli@uiYéKQFY 5gQL8Wl0f!\ =Xp@cܗ c%!2#7SeN?k@cGYbKάhT_bFFyOr])!Du]7+%fat +0xB٠wm2Kk-#ǫNxn6܁:͠B"=,n{O, +wWtx˼Ou޸-ҧBڀ9]T_PR+FԢL du2*JU?MTU_\[<ݛzkt*K;- ,JGuq1Z=sfoH}n:p|P*-HRyb]GR/0-6i_:GV-h63*:{P3`Aj O?c:0;YM'X'cTx; ߃h&H& 0^$74qG"*6]wӳ k@-;ڭdHFE)#ë43^g׽̭ = Tݥ2\YNAbM*VƄ,!̀O"RX3HX/~^w 0?SedDYdjBhJayAܓǺBq+Z^e`[2\)EKbv$,26yY2}łyŒĢ rIl^&eESFcJxY 8<0umzv+,| +i_FcOj.'MO1 =&y ]A *ry`?I+ 7TlC}Ql +y& &]TD|͌= +q!a*=igs!ޖd;^z낥 (Ok~] l}z S琦X-d2-);$'h:rDcReN<\(T`rM3:r/3!Pd!`W!FWabE!2dzS~[{bJڭ?>:BHI[BbP +(6= ;BQ6 +`БjќP1gUшoaj9 TbTgsKE 1u|KX*_HCжX9| +NaoH +Rȗ8DGa9Յ*= +45ζ{Ԙ%9!+}Myb,!誺eos]8GSE,ĸA<{壋~~yVaqRKq8 U<,b#'ϨdeZ>yEK7iC8օfGhxK^*eb⇊m1scwn9s]Q1,lqE[G}yaH1 bHɣCwE¯6U:1aenj]IpգC7^j׉b|WHX|r>ut*[-h*-dID4JUh*`:%џ90 " VeDJ9#2٭F\.ZٽSi'F/Mm4 Ec"0 etY["C:?^JIvf@<ÎF}xzfEgGD*m|'VTRh$ + & /,5w+ɔw)t݈Ҙ~04== ^e%vw?\E̊%+s +g;Iq8^s#5TQfV MyK/6sa"e,|5x x6@7KA")|dKy-B*{AMb9? "N-C =J̕ +mrGPMo0t1 F%@m((d\e37npLvC9KA[w믑dc  gT?~roGޛ6N]fhN:M֯^̜w^tVI5CƟmH6~ؗm!rRW7cpoc|ssCCtQf\6Rrkj2+ t@A7ȅ9!:ǿWA'tfҡZtJDX~pn-&*}Aۖ5usL)xI$% a%ē;[Yal8^naêh^ Q.pU2*DzlCJ1q]p';l ѱ~蒝PS_>t9,1@Uq 沒Q0~qw{@ A! , k:Pv[ag-'z\ްrDC3;Fͦ:z1U*vTl k/jUT/v_T:Z-V;{8?ύ \RuhkKѕxz>JouYIn?bQd`;[ll@Xݫ@{Оz*@㟻oV>7\Y>J*I]Wk:woFkwy{֩ QSN!b]"x{wL +qqF:˱~~wik9s]T&04d )Deוj&8VWҰVKf?'B >ĺ'ռU.%yf&ޕj`x]tvzc)%ouwߪ]Tf6bT(PFl&"aKEK[K_f^֬a6i7u{Sa/7.g\]#zAbLw=QKZtB۩WuJwQt,hW>5$S.&_ʊ.h2|ңOT.jjgdM{gfrf@fr4pkB);D?Kp [}5urjuBC!hdH`aKڍaXe2_%k$? ܡC I.3Jq I7CMrZHD2-Qosr^ W*(\B5DǓTIvo瞉[du3(%;-Ry<Ƭ)5>t G/ ;^74(3j{(dBOҊO RkҹfݺONM=!gNOT_[*oYQ UasIRR _b8"@nzpI9Oݰ +?ZsYbAvqùr2lTkbHsG>,CΠgJlW$⿴ 3jw&t9[Bt%؋p0+Zc"r2m0i;Ww,6[WVehZiq!;TM˶8꛻%~aPi* n7ST¨W5"!^]%>ޱI%h9%TᾌRS S{ -Ҩ)Ρ3u>9kuEh?`5zr5TQ敊-P# K~`?}E1lyxvPLJ:4ڍax#Mr ;}!`nك` & ;Y :%Z&\5:x)88RAJVz!r&Ctφ?uj}ݸcV@/u' ׷o MjfIx ,3r`-8˼yR$h35L3s$jS5 7\_z)q;Y&;Tdu;+ݬ>T`2T;,/=ڻyUޕWb7_;-~lgq_YdL/P^#48Yz)Rdixm*HltV_L ic!Hrck'?TW eYWjz[9ke;[Rr.ک~+>IBEnc!uZ2gѡ +hX*:gPa9M&&{=4*'UNoL>ޟ>f^˖S:zWDE"E R)!zSMqip誧h1R )˞4W-T55eh86@bZL7Cĥ̂6Xd+5!g~td*P=|xJǁ+7dQ?&V-IM(sjBuy) BIhL:[ףRC`av>xg8$O3ׯ|Hxӡ7mcK %SC gF;N.?F~y.زr- ++Sz%(R)j@ /5WOo>h"5,؝EXL<\tZ!NHR +ewQȪaSW+he+xcZ@On s3LZm2R:UM4m$ܯUw8huƖ`ДnQeCFWu`sPpfꚄ +AI/V욎7 AJ|MAqjLIZճ꫔]`WP3Z?\Tk b^FT/lBIl2*Yh*Y-K-R)uIS!ќD + \[/zsWg;e(̺J :m;B}nlW뭴iVf~GTv5eAn*coTq5FdiϮiUsR=ʅa(;P9*)cmf V@zU3}1LZIk?풰F=J3Utv m1c@\JV=OK>'Mt#V<1;,K>7,*z%?1g Z_0KHL0Ihy#3 { A2EN٦SSf4b!1ȥd_4 CF8%=냮I<)r 7(5k\{Tw0#Ebno=d0nkg-/z#M(!yQd܈dzʔz7 #ȼLV4_R'rĦp4X]e>+ ˮNտŻl/ ] 7Ͻ1AL^TCA|0}BX,;[к",{w~drk,0@oԤ=>;KC9LX&^򽽴3v({'0a,8pX'7h,_6҃P| wǃ1EP\r,ǃ2lrFg"+[DD >jV1&9^O4c1̌Wc&l1)Uy4b$T9^WG82{/sOZ22-~Р&yT,UNcBWrOih3KfkM[M~M_+|ʲvz]Q/:"۞v)<'~Z,AC +{3O̥- xq&at)TN; t&W Z:Rr]QMHQEx;8='pywtkZ>]M^Yalƕ+=ڼ#r@_˞X*Ɔ#-<?ZqZ23YxotԼqrY^8FUAmz1nZ$E|ނ0MfgPjE ߣR5ȴ0u@k$3U=!]Ai5ߣTіadlFYz8Z͘ЊRJtXF抙里_$gdlDVArV\ud+ǜ'e6]* 0,]謝5-u<9*>\1fH%De7=?.ez +b"(tP.8LY{pI6ɣ6T\Z7ڈ}O:tNX| S(7)] ;78辚.䎠!`#V u1Nbz<"M>RL +Xv#18jjQ[7F%5w +l},w#oq܋\X!H\\H=>5X:XC|nw}N|"ګHNp[x/֤{qjA,/K{S(SsJ@ԏ~M~Ȅ6;YG31_O9bC-1w@bhNg}z{t +Ya\;ۡ/7DƜ%H}΂/P^;ȃI1' :”TN*6bRl9fZmVSF |}ۊivmURJ`2EvQO􌳺e&o9[MS%T*kb}C<Ѐk~E= fTѼ; 4s4;+ +kex_vJBVip#,k,^L 0{dfD:|R|9n<_I@ܷ.7^tu#śRi;˖/у$L{Q]NΖr'PC*L |d0eIyAF^l >l^A|zNlѤ }BҺu^Ij.ǂhS?6Y4nHwjL#8WI Dž{¾F%YiX:u(arcp +&^ˆI $2(!(]8Yg*$/flyE-S3o¿Ikjɬ9}\BTbA4LEtJR;ټS@P0`^j3ڹGJj3qdMA_3toG{5,x0ױvar2e#C%)ä0TX"pJ /`X iFM@ndN JtpQ4Ô v#Z#^kᑒ WBYCd.;P }MmD^|3ЬCt|FzJ9|.Q-.⺣S")iX.(^fye*;jY ]z#b.uY@ e}ZwƝ1S $FR|}Q`3p?L> G4iVf*]ve;"KeJK͊jMk_)$ׂ\Y_A:>_>5v Cp +(CLmz(66(," BBn*ʙi*a R=ĹB!\/dKҠķmmJܡo8 ^3$x)az#$ߒe$-vOs`A{߲g$i= Q~*k$i‡qHvsH~ +Yv!w.c48ܞU&oaV7W/NrYF6IMEe9*qa6 %=V !?Fər#r,ȲqG1# TGi+g@LdĬYm bWJI+iG6 [2T9-BwNQ*+5e@'NӨZHdi-놤%;ظ>=;bu *6-r0\dxKxmYM>3u,S3řl3.3Q^N GcU܌ ҡH@G&Rs=,l|5y$eḺ(1KPe1 7V0%(U'ܳx¶hДnD~f5Q6{icUHr^=v}e]5bR?K'UIn{y?Ѭr`HW:Wk/W^mRTk*N]v"3ܭ%_ r5`YC`)9-4lߋBX[!*d_PWb^7UVZ֎@c䈙 P:6#8j˭QJ9]ifSS֞bp n%y["u@f̾T4K[O|#/ x!\,S}"E?2xlr +#7Z }Cd7 s4hRqZW^ ca G+."l j%.DRJ4EY?iq9Q},";i'w7u@[RDB\$KTecVq/  k+IU*#7 #&$yRX9c>{Y9. Cu +4"?soe}RF=xgʼG .cbmOo{Z}G|=`⑘tZ]s Q!&seѦF;j@&X'cǕ53ʓ!t-KNrSp&}'2>K;7ӆFE'I,=[·#s戶͓}G>P<{.wPBZ.W9#M$ƴ/9k"@Wfu__I aCҎ#tcf@AO=sk*L8s]F#U>~gZ}_Ov[v'}ks: + g剮zx=dT"vǑcx;({@˝`LJp1y)jM8{Wg5͈DkPR"@g՞\^UJPJ)יGV12(a----}pe1K[4A7]ܓV,"Rn:j#`/ZB җ/_5~*W#ϫP/Af%Vꈋ6kQˠ|EhdS\w@t"C]y}f TkfNB%yQu%3b6JqJݒ9%3eX9k0AS*΀u9!ȄBSVO㧧^#i$e%2Q/ D뷺L?\/'mˋoOkZ\kPdƽ4[ӭ b̉@R2ܧs_ C8^VH-}RA$-tSlԐQƅHDG,mEEYcQԒv&LMgg^ZAI904g9StqT9G rpn 8xN' h8yg †pzOp||Rp_ +U)Lp+$JUVHNSX2s9L\J sScm%.k,A!5]u6hU?4.&-%(j1RwAM'8a~8fƨ(%jM-C!ߣN3f1R _QWmƊGiHn2 ^%8[I+Jȩ\c4&ܧֆ/\7Ti.+@8 p/|ܠ"N9+qX4Yea@fO:HC+ϛ1sn5qT@ZkurK~H$c_ tNZ@萮0ܸ,VZdY* hP42oEk!`V߭,n +W"+h@ VS[ i7E^DwV)xbCiWn$F$K؞WaW[HɑCb Qˍs޷Ih(0Qd1Qh}]*^9{9:4ڠ>8l .dс_m_Q~)8Yej.>J!Wm~+@8a[!-!Z/}M?*Hgp`ūOP!%Ƙp逑FHgG #;F&- BpC>3 &dJM&eM#fJH#gH8I)erL SuF6]~Dj-?M4K!WpTƥď[w3[{-4[qDkw[sN}j>dWr-8O ކ`\?k2LW09\9_@?lltԙjB )G҅jib"{fQ: +m0V6+xI_BLKi7F 뭕唰πvs)23Qv׭,zu HE )PfIJf|ˮkR*԰,15]mMy4w.r˴gUuJnӚ\gm.Zr56jTf͸ u*;Dޤ6M~=GU{SN׃@ueYvg"DHV:ӬLc^K\ti^eæK)ͪJ˲B5߬yuJr͐WSthH!Nf{έ\ H^;{Q N_p`la|K6 =DFpܨśEe\{O'Ycv\Ϛ&cl;ԗ:jk)XyyD1udvE3]h{2ma\&$f-̳ 7!.$w ]GwتBQgt4hBhmEݖf|bLY\Ji8~@JKU)!eRJh%^VBOE[>f%GMҨsZyԶUƯHfɉ͝UM4Df"捼)5U:W[ +&g^X$3k%fOmU̇p!3Da/pm& c;Lb +1 Xƙd/ 73w:wC7%N G!MIќ_@7i%vϔ /mtcr662魋fTVJ1M~ F#Ih;YLJQF$HJo fjM;GuފcdXm1fW} vm>* ͅ 9uIĩyp̉ 0pK7/ҏ(f؉PRBN7LTlM N5ebST@rFiE+$Og8-lĮ%l`Gzo$GA})2N,_ijy퓎L)]IXr⮥^VXLlγ"Uk!mS*^sͮg% c$*9ix~78={-]3R:81+Q(ɹNA!ga|(;jܚ=Օ&&3Mdx/҈$ѺٕHc xEd& ob^4mĥӣ*49<SUO5AvJv)F3Ʉdmm#%;d'8IQm_9DS"UX:ȶ GJΚ+KI3IFJUWy\1NSNxmFlɄc{'y=NFUKfr#KhGvwr0y_jz;sW8#NaY^F>JOʝؽ #uLg?nA pa,y|>jVsxBUA`X $rP 4coec{潋ol2B8p<d +TC  KBi6DTJ9@O!0ۈ8 Eȩό+C4caW A>}gѤ\=/Cf!֎qEĻ,=b 39fy[O im݀ +.[{ϼzc9?^E=="oʿ!Qh\Zy~hz-I wS3>2nZ52Ao_/2`3'}V1\.X7kq1EgZ.ݙ 4O_PT&W8fCAӜTlY^i\.n}F!߉{qdyyHX)7CP*唠a}}ysz/P qmA,E1LCP/)u;[5S,qř[28+`87cXԺḃk_D- +\#gd>6y%lj)Ħ +0@LEOsVL)u&x-GQzWmPOhw=XJo1Y" Tye] S zm|gvn#(m ٲ7 CY|@!K:92U/DCBƯtd%̱xѺeQvfv3ϯ +$L~kcҷ:I]H,yQlp&]NZ^F]V˞ŀfvg9 +t=q3hr[fmp3,lx>>gQ'J`">Է]ɦg +QE $iTV[4l,xmVcs㜪EvL46|vz^_f&Mgi[ +zꍟO 8Rseτ] oφ\|MUGfq}uGэ_}^G8nzI_L0?'+&8h£LuFٍqRNz)W/u 1sh1R}Ƣʺ3ִwЬ뮪4֔wV7wŇGg.Z&gT]ckNEsV^4Wikfu:5WV X-p,^Lͷ3QcT<$RpzFt2V:4QUHU"ʴ=)X wbVE|ǕeVJ7db2^7iK9IIW!VB%>za ʶi8L9?Jpq Ea0Ж&2lUs}? .6D\pނ ]*hNՇo:2 +@/By n^' -m b]r\^)`.}13 OB}4rALrQ0&|fS[M^: gצ9x4H-Wlo$RQ NSON|"+EY/y$2r|h4.Lx[TZI?DT22LܒTK3kK17&K97|2p 1"aaL.7$x-Xh?9xCQˏ-s|O^HKsw%F}1AH&Z 6 d >w L>~nG|ċbԀ9 /yOVӌJ>4C?͓,sNT(cbN?G}@6@Uxb9N RNHa +78|:[b;6•ēxLOBR7X`qJu*Xg؆ mOe1y7s܈?Voըi;&OO{DQA 0rE\'`9WmT$ˏr,)r3z[.tu|@tZ|-+9 iN(KTsTfa< <3H.^ }'>ۓlq\W͜}\J5$zϭXj(aff{,s;)m0 PjR,uWw$\D|Хo [#ָ`J4E|8_B~gmkHTSdcX,ڲ:F/iT#TI I^hWNQ+ټA8?7}#TS4elQݭd$Y)$a=TTwYDG=^qx\W.7X-)硟lo]"/-R? +o8z~*ߘ~czj`tvX#Q+_zFׄpL"awfה#`l^'y گR>!' {M@twMD +c"I\#y[p(Q:X)TSRkTx2 %A^zĶhWVBř6ɍRݩsVo2/9VI14io 7w)%GEEhNFRJ,x5$s,l#F3"kbM;CV]( x+:lox %,*?; +ynmhQ7pjۓ4ZwR{ΟbE"ΑAUlK巶VG)ƷY:7$@&~Jx,ib yDB=,!bgڸ2 X1P‹cX'#߻8L̸u.!I"؋E}V8 ظ}#Z\am,5Goc"ch=6,TlGįrPFaWпT,~Kn +9oyL?E 3wCM;6x&|#QhC,%QG7;9òFˊi=' ̛<*:/{C_ѝ'pZ'l[K߄4o~jj&TJ#TRP0I`L:zjTJ8%U)eU :'U@iGPjO|XUUBGj5B+~xF$N[107ڪ\1ߏ)b)8mZWqG\Uړ@d(bUҽ,Lymc2[I]GM+Z'd<=3ˡ*ZJP ܳ&AlO`jS + t=k~B{7rH9'G]*5Y<]:H Q wm9򹐅u=5g-<_{~g@O A~=&LSlc%{+ kb" Oe.$38/w^Z +_R%ji4՞ G}Ћz>e/Jve;pe3;a{be^ ߤEqbh-݉lxfSS_(7[RةaQ P'y5JT^f@O ?IDc!\:@im'm/bRZ4mZƠ=#T+\.. 3C{Ҟ +mcU +&ĒOLR=-2H={BKU=|Щ>ܽ, n9>_H[JBIPքd>53ĒrZG%t^ٌL~2G<#CAT437 cۧz]I<8]H0h$\2҉k= $8V1MW0p L\C*)9 7vOWAVƿ1EHff`Q[&}jV8+mwv)tP#/-5L߱TT" hxERVcuӵSD6tiEhb {?ͽ/^3SuDO^ߞ30?gt#OyPfqHA#Cbt݁0JBp@IPpPK'`sP Gx<zM"ʜGdSHUak(٪bWPy!m(5wTIs;.nYˇiUNj5H(VD)L zrzg΂lY73􄊒>^|fxLƕ,;b}V,ƗC|d\ds㘮Y z:? b=bwy㱗l'Ḭ7AW2MVDsFh썚bLf#cО\VxX׷0a9X?gpܱ6NHxNYmPb+3^K5L$*"WvLdw'.( *6Ԡ{fz+)܂ઘ#[??NPgLVq4h4=TʲE[N$i Rlj穝bOeu]J4㼨\qy~q{yqKɸXP.DY_1w&#ppV"4McH/GGo]|pm8lRP+0v2[ؿPsۈE'ҩZB TamNqV}I2:( +y]VЯM1\d:u’B^='0%.׋i? ZyFE929"K)J%Oc\*rW5d}狱Zܹu7}{ 7ʲ+"5yX¬7<#EPF)ދVk +.ai;,i_%([: =+Y?K@=XgV"%˯Y%TZ'eU*mz?'쾿ɰB$"`}ׁ^%!sc6Buޖbw-BNh@q,rҚ,+LK%۸ q rNj^DeM!Qs; 8KCj^Ea~;C Lp-poYWﳫ=fXNm! L(>G+ +|c6TcsRsD54֫nySUAW)#rR{3vup.OyFzFgxb;`rEuy Mj pGט# {>wO_dn_&_Npn"kkr?8>kUkhBL㵯ʶL8g8N{7M0o!0)C,|{H-|+Ozw0nˊ},Y,+ FRUkEna4 vb0a6zeW+Xg8Qpr*oh`Ulǹ4_:DR:(sM!s ]k)LNBHKA$CfsxUմ_14"fS\9'9߿:Ӈհ(3)u-g;FC"$"$mᒷ`ԗ8V3J|"E>_0ӏ&Rp[D"ןa< hr"+ڄ&vh[R UJk50EKfdUr/s%ZU[*g):8+e#%رF5Y/gC5ph]֚>)ƏY&5h/ ,-C"UɿEv>}ݜm2!d#j## .#Cՙ))ؤKeE"*N +d :[ؘ;< YU7ڔ/}(sK2S@I3gtq+Rw3B9"ro#$pZjJcW<JeŸvuE:6k$'iA<}7 {cM,^\->Z|:wf2B3s N mU+W~niI_]]|Pk`fa/ۤoInK#ز)7=G'~h߿[[wsYEeu _ + qEI"A +JTI}EDIOz,ۢ W79_-6 4({YZ9[pfSO]wɄ0- C%P5CG]C fm%fþ5ysInm j@: uR(-PCoz6|!^T݀NtJx>>zɾ. o><Ν or> *OyXC<6>+ݵp}8HO<ھ-{nݜbh^TcM%w=+Z9@i +jǷf)=s8Jw>;h\2"h6q(O#ҫݿK_R6 `kĽnQMe`L-ϘՂ/K5b e:j>i +K`F1m܈ +RUi\d8Rjh*b]ĉ-BXJa:W\HThk,E+LwٶlӧM#a&]8,QAJK*"j.$"O^mgpȑ+H⇕n*ivfHZ#)MDy/#\'*1e^0ZpkbeE.pJaÔ.6jX?=OhYM*M/CN_(Ȋzy$4nN&-_ 2Pa"V1OKDYЗr@An b4ؔЬVC1L8ռ +0M,ٵ ]5 duEn16nfJa3lu!/ɑ CT)6)wya|4 +5Mp4|0"J8 +Rv16ܾA3&ϻ2+T@U@RW>MW}J͛U\bbe _)۶voJ׺ISk]+FiDՀd.Lti- +F?ˁmuBdD_!ݒZRcrϏ֤>ڄȴ&Z70RM:'µ}ȝ0H%!HzB~捉mO=+8Z8.b[q3,nf@uNmq+(Sڋug!+O|FÈ +j|Vgbe=԰n3=E=OJ2 LC2RNҊd@̶1-%_9cnoRsSRΦ#KgܺNl}˜7n-ᰓޕ$j  ?ar,F~&UϗjF{_z.n@߇w='VAժ;D7tsJEaz38fYYTwуi'ɘsf +ݙLpI[~ ,B uts2Mٷ! C=4)@ϹpTwYJ^A#Mf'{gmd0,K[q~R}ud6-aIuq t.Ҍ{ +M&mw M1KCt}a1:6eCbN+$&?3WMkp[D6T;m^]`8v'v\DR[!羴?_NCN8SGdwHC+Xֻ1B)<{C`tz%:yb3ɩ{N p ݲ{pJizL1J}YڀY'A{fMxdƴfM|Tfo+0J1>^VFJ33KeYzbp"Ӿ]iQxDOd?8>BEukYj.ԢDQMq)mpSk6h%Ңk}w;>û*QU10%/k幠V>gpUm&Sh%m^ɍyѮ0'2i-kr{(~kT:g/\2X|";TZN \A}+UB>/"liR.V[x:8|<¢[:;:(BGl"I##Ā +A8@]'! X i;؊0꺐}9䑔;TZC,o<#ij |SXCs|55cz +sVw!5Ms;P.r1,bNH\&V0(=O_$BEInZ\u/^V7O%L%R|27 FLݮh2nm]*&޹u%1/+1&8P/ɬ]b;4Oqbި/ +8R:42) t3kEv>[5-=2x[[6#gHb3ZͺL65VkL.. + BU9=y8@?:ӌvdZm1C-1=3^c}1obà&Y~Cl 2 M}5n'qYjSfC:8|-{,wnk+7=ƅ3nߤ;]tBk܊I`lOC=TѥsM9@::pw}k۲JR/p,%{Fhّ(CFy +SH;A郘#V:鋝IJݯRfDb ༄Wߖ<^ F,D!ϓ,E@qWp".^`[^xo (ij}" Ϡk{{G" 5b$DG5q(Pl;-Kn,l18a$k&b`g!(wp_k !`M@oT*/x,UْC-ij)2PpnG), M& 3Uk*fU{d;ۨ` |36rH~y77,dZw=[CEq@1 +Xr2]L13)={TC.bnQE*/ƥx@9a'i}VDLwz{t@q*CM*H/s&OEi~aѦn92st5Cug<$)22י-߫<Z׻q! qg={:$0/7w>ͯ=!:/q`>ķ>:P{l!@>"DFYOaĽ0b{ +ds?Cb"~ߠD GAIl! *6"e6M2BკҚe |3/e9iwxg4LAIdQ4c&ac(i]˰jZ&Қa~Z*R5QkG\O׹fA$6c1]0tM0W}KK{!U)nY-BHO~OS vuoזѣc VH[cps[!(|!W!"!^7M<aC6]9CIh(|桥2P?w@P-秃mE%p?<eEų%(*̷2zhZJ%:]2=Nl*ev p+:I3t9ZJ:sD=UV" X \L =-;6л0ֻ )r +gE.o O_X㧣i2,{2 KI$K<_Pk0Q3ӸgKPfހ4[gQ5[GՑDF ^E$5Tt'ge@O\šgS=+$t9 +Q0`oOPz$u.GMҌ0U648Y᭫言?9TsDt{[ߎшi70A2OW"zay\hH9;\VcTh1tԊtSf4m$Q>SgÿְXDEKRڄ*/KFNZ '}* ^)}iZ6K@`-aF VEZ`^G gR#a+[)Rŭb!&f +ʲֺ<ǨXNq01uh!h*rN۱MFT(kaҚu0̨X`<0L[e]FgSI}"n .jT=,J?P @wv4 ++eHjL~Z?ȷ5yS@Ⱦ?3z8ʨbݾP, p30akʊj>KVƖ֌i@ hG,xsE2\.NɫO|ˤF =T)}Β~0-]-(/YJ%x[]%,X+^h( eۢVG% wc :TOPÑ"!{aS\%[Dʒ` g>M5?6EQB!šmgWX(cm_} +"jꪙ)yh%Z6T&NSlNwhnf=hV5#o}]X$,;݊/E/lDR8u0qͱܽ>I i lUip[QQں|d".Iԡ +N[gQibqP0X"596q־2q]ʦ dɲDT-pjEu?ъ)]qűP )t1 +цKZSR랋Amx0*Pmqa'P&_?tBdMT8;5TQ@=X! rErѾ \zPnVGѰ ONHL*l|:q#х(kÄG#2FZ/(J07.>t\p)㺸V5t5%4z_hM3.m*^ٙJ;*m,?5Vd|IX\]C6LWXZ ++ոJڴlq[Ƞqg*j#ed|2 UVXXC6P%%\MZAǕJ:< 7mFjvb>FV/xܴCe MEmƛjql:* F ٫ilue?F@E6@9ΔmX!ʢmiOδJ[UEf.GQ +8JiHűf_q.lszYs=yXNlQ[o?) $i||g ;:wc^4^8bTոr0̐CaC&JӪ:]?^?Kj{\p4\`u~[f2z%ޭWVh{ Kچ/! |Ӡsdq{@>4U>D{Zz¬_{bP;JC6⿔Btl!RyU>CEl;93'Fz.{!Yɪ-{|߮착c.W.qk608 /DiD'oLt3v}V_sFTιj}ŝn.qȘH!YgN{]~k${C"p {wj#ڛ+|cBAzwko8'-Zjpb % +;yMlVlUa}qk[E7H;z-O1Q[ \8GX)ܲ1:w6ノܲE~#PutI::\1joNf2J.CG~K|fWχ ='#-#ɓ\Ry)?R'UOlopd0~Í+ O 4E=GT=_=5g*}5er*\tSz[\rWmZV/UyٶPA*:dQnfΦP`FWJaIӃ4 g!ZƍY`ts& +7:.U/s?5iڗibILI@>UC@*T,]>"Ô|cc +C(2rIi6 PaʤzBn0zRe!I AU&Gb.GruKcBZNK{Zma:5y$oq¥(v͛8!ͪ'\BU8hk2UB=]Ƚ AVtvI /65-]>W>~Qt +8AZUSi2*8.۴8%fEZ|rq*vAmF|g98MbгIh 1Eiq fa~" 3K u 2!EWwRWDKvҦS|cS6SXdQlAOSc:|Ұ 6 $"~rAS,֦rѩ[ !{X&w}WSz`ZX]d0IBvava1tK:[:թc*̘aii̴ݚYL;,o[(s,5*}@񙷪k0$4e=wͮKHezO?SZ ѴGN):}c1Uf׵Gl o!XT"ѮO : i9Ol'/ēEő(MkJ5әLA!_qgN$eTĕjD4e.v"T fåN(3{ G ..M(iVHDnD;|Ywt$M5t(G4#|Vq&uˉ꾁V+Ʈk!Rz.p™vل߀X](_xReYl#w#gH%Һ.]P%E愺Eļc!t(%g:>%:.=t`z!ϕth\.z1H;.vb#,=0't.%s D?=@:GEs<=HOϠEQ{:Ϣ;1ϤtJ% N辠 ϭN Չϰtb%V֛[vW[{37GilXP ++l%s~@]{E=. %wbyoGz>J zDEwcܾێjpwYՈ_ y6$w]qiO͛H/__w}7z [(w;WT ܻ~Ɩ뜛_|KK)+KsX|}&QCgw[yV3y&۔s\}~K}x.HxR7"8yoԾc%qɷك"$0`p?HSp訑591 ?#~Wy7 +z&omJqꠠhl{Q%>߀ғ`ڕvK"xDS"@peN^*X%Hyw"(\472ǖYpe 9W V A:097V4M5︝Zw)3oЬ?"&q# CrE/Y /r`'A ę~sq68 dׁ'IdHbc8`>>7LG)qdl֕RJ.sV94vp`V4 )1D6/j_쁅)[J<ʺ +Xx!yͲl0m%U~ ӎ3)h ~wEmy׋i:;+Oӊq%Yރ/`6 \A-f +G +D>TAm "fY-0Ɇ&1D9._N-ƍ +V2@l=ZH4Nn3$0&H^0&[[f~0] +>u˒c,]hjڃgZbeQ?ﻮr(jC$9b3A؃SKa` +供 +`Xjs^ r'au]LU"цS-#鄺&y|#Am 0]P^md >HO:2V^0hTD`B,sߠ^@jDyM$`nyqI G fU? \|Tƺ֢e< 7y5i>~ + r6ȵh.J +ӈݴ@q ȔPa[@55r2Bچe'}#d i k|v; ߥEzz /rB}9T0Hqkq+1n5Z _݉W<{*C""x>1@p[9k{ӳa^*.ЩNV!O7uqAm¡5tx.-5ƙLfy D;8Jh7bPr.vxA717?.ڡmg>,K?mT=}v +77ILۣol̎6Y)!J ڑuO[$j Y4㋩:3VF$j[jCF=@hWi3E(Z$ӵ"rcUu-;x#$it i%6$Xqe8CZEMu,Lt2+G8z㇘% +a0|EwGFZOG@ڢKa4ܩsmZ0SPYlC8|ϕr ʥߓSC kWO614t;`ͣՁ{=z2d|-Q=){9qK=/;>p7|𡀾7ǟaK70`ˌ7"aK7ў^A7R ٚ,o2gy7Pz7DW̟՛=ɛ5N:{?{@?C?z? g펼۟?zOΧ#98;(yKG#~/5Ay@1SjاrrHӑGjīO{ G5m'=w5R hy8>Y|=>5=}}L3&șOf4ܔOJ/?o~ ;GX?p7=9V)-:e/{J.{,z_A-_;ȯ_nn3Чw_v_wWivlx7>yҧ1H~/۽8ivuPd*ű!Fv rCj"Q[Z(tLM,>WէFQ^!w&Y9jL$<2(3V3#=ϓYh[-њ,>zT[AxfnIQ)<:̄M +TPAP"\9E~_#/6#\.0-7e/v0٠fI}6O=kku'+tT-tӡt}plՈ?1F\/`L ڲ!E 6c1]s"FXsj x98s΁a&nxוw?̂fyگ>f4.'4PF&Ku=RPIO w&]8[ 7䙷9'je_v,1wZ#dɘ[8Ë&_|cm`4r Zw㜘L "d%JR*ʠ7Ƹ˰-1n2m;nQzI6 Ժ?f9TAZ>1feߡډ9Nÿu@4qOmgۙz +Y>%&0tϿNW[#{Ҋ}dS." L(97FBߵ%![ER{C#mnD+&0Fv4j~V̞|n[ŗ|?X7K{ls ץrb%[HNqs0"0XG"hS&&yL/PUX1OxUJ~+#/JF+T%^)b6j5B ow~P.wc*F:u .VT ?\:spdI9!|+R}؍?˾<}T _`#>FRkhcIrResDa@pP䉞öZdkIK 1k$k煕p4ٹS nXQ$kM/pWZ +쑷&^XAk&!@j?*k 93PdP8IڍT}'S=SJ$ VD+pVt}QsR/=]D`zEXʮ>%\/ggP`69@#1H#E|&U\1h5-f#@-vԢH!%~($+ӗ\؈%H*䴒%h%KOOZZm6?twɡNJ[@Vf:S]G+̹< +tr֡JJ/j2X#$0T8@ WnĨx㖧3fn WYWO%`#UJDf,O : +dRɓOșDRIMS)*𚪱hTʦ`XN'^'{*&e\C\ۧL뼄/}9U~±p I&uUM{ǝ, CF{^DO ھ&סb&̍@ #}Fֆc #"r̈O9bʥ gQd]!qWTzgɍ-.)1d?*N8`f*]4Cr1mZFL*E!~>eb535ybU B*}.5 +Y< _bN;+ dեz!5ecһ;*M~lbogZA8}I]XhJ1_2 ͻ*~!9N\7˱k5R+4kW s@q0:'J_ל9%_klx"]zV>T۰I1M/GLP>rŇ:a#aPIvӄO4Idʇ|4!ULp\+;} KmMXu(huȯa#7a%6Ӆ< ЅgWhvΚyI'Rk(uNAk{N +tt̤7+Dv'Ѧ7>jI鍭N^myoQ5>)MMpyJn8˧f{(X:qѺ|%_i1$_bGADDL`M!% }\D@3 ^|˄D݄`Z?p}}՜I7>˵sjI d}T=d<zI|"K,Gv מKĬz'j?oB|I Jf%!3'MoiWV,]1ZS/9)LT8uN=ZS:} >rhBc;:vWI+ ?,Neua9:;wf\OwC>3 MWrHʯO{6ZlkHÛigu5ŞAQ_E/ ,R-xf Ʒ3U|{[M&O4bvD,yO4{+Ok%M\] XXQa8>K_>' |Ơ 7>a~H' yD)Щٮ@.PSD#deEK{)}{ GɜB_N( i;*ּTU.W7yj | >? 7-J5ٚXAڅ16}".d4{"Dth FPL(:v bQ5(* +ƬV1hCLjkwHH;{jB/) q?zp6wAy:@eVLe|sTXX]Nw#"0(p2LҘ 2gd/=|HaTngpd3S¥SO(1fQa~:f;ɘ&KCH$L+'FJ>ncW6dak>aG'4P"S""uhK +mf}ՅYg֐+.}{ޡ[e)Ӆ- jb8"^ꭗg/tme0Bl(1HeV,ۮ +It%d!)F\ۛG흧Fkz.JEey>gH9! _mW(ΘWCDLX+D !y jVkNm5J+ 1}wbi-m]-6hCM S8K%|׎_ 3(K!(< .T/N^` ŔS.(;i%Q ^o:xu+:xgay({}}|od~ɻW还TscCFkn"z`+W+\qϑI=x nUWuX[a1aBMB7Gm=<7⫝̸ۘ+cr'K| U9E*^#Vqw(^qTl1S85|jvR\vd>RO4ؽ7;ώ.1{Ob *^AT{ vͮEi35="*wB?w@ΊCg ł* >Z> Z@@P8q]`T8u*IV TgBmxJ;*Bۢŭ}F^hiWƽ*V[/Yr*5CgΚiΚW6@/";vLWZ[n疱^czկ<:Cj;cݕ۟`\vīb}Z6WTmON.QZc*n|m)s^ ++?/o+?\Bz%iN+ _PBZKz¿tb"|XgT,-kU(Eh(EJ/:v}*(G^?D|tG]dk*E䯴+Uݙ{W}-;5}JU~o ?*%c^lcL2#}Oǘ0sUu<^e]ں(o/<ٻF-U͞קa/CT?n>[P( r _Lw=ܳm ?8xzpg 5}Į 2bO с-7{qчk h@߻Fgㅃ&R|l=7"؏1G=+,nEtÕ|>r/T2}P* M_`񅗾/7K؋A= @.k -$iH[=Vr?"`fMm9F >9rT*.@V"ܩ%V?)@L\s)?8WU?<[}}CE+pS^~(ʿ |9,뭇w(xr(Y?Ɔ]1`"14.@5@ >/=102NU+nY|&MS-Y?\DԂ̉?"Ƹ8@ {$yv8;xPP wFp{5%>x!|"yr̸ +lȦG6tB4{TBx}t[Jl Bx};!~.%ٿ +aZC6l -p%F{XG^>`#9;pؓ]%¹uH3)F{XMwȱ4KZbǩH @){:cH5ȘeboLMIƝ,nƻ%{mEkW[YX'V'&88;:X:[ Œ}QbUHm=q`'~vY×N|lӾ3q#g@x5a[RT0c/.<"k mZ΍ 0Ę \q|+k2;uVyT |qSa +o\͆/ vL-*ҹ *,\,;QzIi&*,hQhy e0nTdǫ) FhnMGa%NŽO/PwZ -*hDУmJ`1S2[Ӌ^zڿH@کAg Ү3ko{&npsQC~9Y]oُ.F|z{)s"==Xϼ{ZbMy|j+Nޠ޿|}oO.zf!N}rޘ,޼>}&]^;<ӳ>lۥ>p""ϐ^A; Oi'ɟ<1OboROM|S[~ooE4|XK[cu&M(; +'f;@4QcDURTX_Aee|fS\ܕu%x ;|S]I|Ny+^l I|ԅQxO|=ދ+]ȗ|~S;mK0A`TH T1= `4qDRۈe!̨IVaT̋,`Hd,<10lrXb 2 +4cFim oN*)go.Hg0ErM‰dUL&Y0",m=AeWn_=ښ嬜eZ/(y^b,\LH+.Ƶn\1g,8ue Z9N[ؐ!9^@d,6[ByDnD,FgUO{0wF.ќ?=ϗ&\eµiea,A.q4wm,ǻ{]xpҬ[ #6mt.İJ\<o +Аv5|mZ*ͥ'.Ԧ; ^J ڰ1q~44C5_hZN@zMKS_UUPF]V! 胚_wTSP5  +^sʔ5dΨЊI~WuqeZoiN̲eP[C\ 2s&f`9z@FT%H+ʉhЗad+c dF^9h~;"A@0 33cBl5rPmnLQ6(?!+žX.˄ЩjǐC`hV]̧,њ"vذ5޲CMִI\&XʤS=s˼z ̪yfQ~\)"T3&jZ0f[VnG$m UtH4t*OS]NT FshXpl')[ԕZee&dyaLKB$q^l3Vv]p2ؚ`⬺B}yo MqjT&IdHhKțȔùo\T\Mf*ಆ}?&Ž̡<.eIj|Z +i,XXL04:Rن\߯;ZV]um [Хy/ӂ)CZddA((?_Ks&RV駚 3#}N #A6 P"ߦ.PىxJ0# WOL1xMYF}:%rGދD+ -U8e÷,3sv:ZIu=aT!g`r@j[Uȷ*!i.yrJ|e=#Ԥ 6V~Wkd`aXՑ02)r9%J*ee}~3CFlCs7ә +`( 6L^ZQ.?bڋ g~y!^E4F^xUmJo3W*~.gSh؉ 25uٌN)*&nk~{RhSz-]fv&?1L6 \-hM> <ΒhN?%X2H1bt"a&3ez|sK٦m-+1,tmyM4 xi]SCɦ^g1kX*HҜP^WiXS|ڙ焉U|ۺsU.)Y[V5dW|]y w 'Q6QESѧ'Y#TUSIjeLK6bn1bȊ'<Ӊ%t'Kno)xڑkOxBLZsf-yS ^/FbW1SLZf-~ ^/Ŭa'XѯYѩLR{z/C幏 ^?{<^CEm)E[9j9aPv߆|Gn';ޕ`{>_{]OvwO?+ +?.倭*.̱'$ezc {3*pX-g 4e_ nK,nL1`K{w^ȥT^^#pb/QJ/u=*.1`` / rsnXZX"#Wn!Rnw%[Tbijb.b2i4XSd})\"xÝ 2\2Ccyxc::R9%MrI$C5w^r?羟/V3Il7Ɵ /1uQŹ 68w%2dOcZI0.-N];y`7J0pZDY EfS:g*}kj-zbpE9>d5c?*r}s5ak<'Q HذY9K4jZ~` " te W1fz1мRޯԻ 烜U΅Ȏ{@x?}ۭ Qo[8qVrHfO("Nn>Ѕ.7&Y\A8`8m};Lmñ9:gTnFz$ϴy[c[p:ڽI`:ƞ%[p}-qP*0*O'A FawEޟ0{ a`܇>`Ӭ??ʶޔ[b:EX*n `vݗ c *}eLi +6skbP& R6^bcilil^4s __"piAɶ%1[op>}me\'2FPE+]1(@}ɚ1%IW@zc\{&(o۽xhm'}j<7E;} |5~eAqI~3g #H}4HYqRwb_يZWt +'ga(=r_>3Y +`%i8]>@( 0%>K}d |1K&b!iً?aKGr6UD_JjIsvh9al3n;]i< 1th x&`g5=Βh@uZmD$wR覵*CM ܱcjjfYCdѝ[A!tA)jN;t.(]Lb&|0Ӭi@}Ǎ+5z 9ח~WUyO;S:zxv"s^*4R#ǥpWu-5SvyK'rF7=N|tk&w= `!L z8Dsh펐hB% %=|g~We˂c/~VSeȻ"m7 |$;b'p`O!׸9~Y1WZ~;F,a "Oԣ3;C0jęgK*A?PsG @W^sCxN*ʂ4hN$I^/>N1&07$T;LgdѰx:w.;NH]Xm;}sD!]b7df;jLPp=gKb|1NTb|]h "Z^ହv-+๫1755FST}|j2 zNWU,S@nWu;,,48442)QNpK*\ugA oCwJ7#]_7^=8_7nl7_;%t%`*9c'Xɗ_g6A c >%RF3hBS .y|βɱQGc8* 2G%זWq`V| gDH!](g^hʤH!J^B@ј4:CcC%ly*s،NX~f~YGih]ImT M$z׳Ft"?]E"|ٙ +Vɩr%l=K2Qz4zB1sE,dB'aEOQ2k"T&v +Lb"q]ꔱND>”noف$7Gҏ/T +W͘ Yl C4dEڥY F"s-sW2UdHr;TYۺduk_d +71J{Yz[foKPuھt9)9RjT[nCji}!>Y@h`ۡz~L?.Ms[orQ'0+y6.[)KQߖYqem˄仭Z3[q1 &sX1 mJТ4N/Z-=1QzǨn'G*w6]I͐s.˗I2$I{D%Ťh-.n.#5-qJ$kj:Xv VNUcyԳHvz^ ˋ92|2!OfF"Z&b)$<<;X#|/`Fŀ0Ty65= l >h~6p 7!ޠ4(bkbOsR:Uu9ZLGpl/̜߱lI>-]]5 +@:]&pp3OC gGLH^6c͏43h. h2) )'01fu 64P,fh$W> deŒ79+dO- c!]i_NFSi יV?$1Kvw<tNbMjqFLMp"WM%1I gK2.41FEJX-Pǧk1UMa +3訠F)>,PVHj Xh0 QsG~kzԍ ]4B\ m?F4\|)@t3 US?ANv>JwӕKb> vs[zePa `>w!nˎ7KLj77Z,_}`b!~,535Ʈ[ (/loCX;s:b@dL#oRv;b|sfuMnYGqGn _:R1YnUv-1KJBWQxFv#N&#j27CiKʟC-RZ/E ?Hc,򆼮S#Sza#A:kr!QBL:5bB7/7(%,2wX=e|BזHp08#"E1+43P+aNCJYﺠ-QeIM- Y<9B0 [b@y^ZUj9cB^ZP#gQiRå}18dDyZ.ו4KU[֥ϘjUFZ;GQ\Tt<# 2Gfp+b([+k67 +a=`W&3zeC_ߚcG0/ +3EDWx;twD90}s+xS!"uZR =r퍤G#*G +-@7܀7Qw>g^;+~_8Be #m8Kf<ռGY&tQC;ǰAkZ}jo14 3H9 {#]xe $ɝ!5-Ho^+>Z$碁>r`>ğ}s(/Y>a`̻粖'!‰L R!:R~)!B+ܡ 5(ECG RW/) I*̴Z5s3uԮ\v*g'x}/oϿ }3> oFMt*|>Yl;B͈HjRԇ4 ;?^X0tP%K!zD&^܁(j؃#Hf/v$nNt!N /y)~5?b+oWaë\\,8meGJM)-@q&f§L88)֚[!6B+  }ɳ#ϕZ'9a\sw0$vb{&ܠS@"̯| R2iofaƮk 6\s)u Bw/;VbSq;w~~%J.0%J7_a^ZiKvnё݊;Y&ש ʄQĨm1 '?-JMlTeo68۬ -GITsu,>FZe?ZY\N,4."j7ks% jւr.Z~5W87Yݵ@,8ڣIuka(BfubQeyT]hoY +E}kD4Q5WAaf&`SclIs&2.wףM==z,:lɂ>&|+_P>=CQ`t?%j^.0)W_[v'ț.~@u)$=;=p> 00`<CYm*_Zz_0y4 7y{Ӌ@g/eе1 hw:x$ڢ\nɹUw{(D8]L^uq=?*^C8 uk+_˲l ݊ޘa]&]/jZEj:jrnCjILw{KҍIˆڴEP +xVZkZ DrÉjC|~8,a NM9|Tt*Au '0?+Dm  '!f'Q(ӌoV6Aܓi9gvRX%+Ş )$`)rF [ȪFtz4: e#'7 %'jAE5K"ءj/"McqQQ"DZ,FsDsDrViV7J$.CKN[=/+MzGPjWLJ]l"L"g4Ӟp1MH#xd_?#I}x}hL<ž#nQl4Ek(/aK k¦ ɣRizCgeu>J/51I!U ;^Ieոe>EuOhF'ǍIp3_<jT+ +IHyf_Aok%oKYZPWJ<ȚحQs ^{\\-zOK&ۓ͔Y!?}>W/k`ig\p>AוN7oŘ25hT5JT)7Hё^{dLf5ԃhoYQZv)\\>ЧɽzD$˕sjty: +~W7BێԔx,'~@(z塙?(n`Pj~OSrTCf _YQp;' 3TJAuLǃ?4@7'gI!O,)]f0)<U?!"`_$,>aa'k.{f6HT{[#|{_Qm~b<[ږ۝Lkr*ys,/(?aZ +<o4D HXU}6k&lu\7#7;}⇇Hiu$%8{%iz7ʼF3k/d"xRnaҢkt9B٩<Ė_J@@8zۀ$|D(RSۊ׊&XJ| +8r$8Yz5͸jI* I'*3GɱuwUBI/vb҆.1>alda>%]ap|soHsa<coڏHHdX֟wLY<ܳZvv-2(w jfctc@X4Ϲ}_ح5َ6 C6?/q?~u|Iʇ"[lPIPHc\?V'򋌓)#|0J╄uC+ܶeXU3󠫳La E|[8ޟ3Uj=4"7Y]]20gh_񻼒 yDx jNܤC]k2R"EGxWU"+댘:S,mAj=4!V$-P>]p_7ˍA cgP5뿨.Rtm_=aL)kڔkwy}kgh$zd5ʇ}ot!ۑ{_ l߲\_RVYiB3i^0v3 ^>F^@X܇"{f''Y{Օ66jaMoD'}esw]䥚/p! GOGؒlq/k&gYK9H}1c!@s94m>uD"womJ,:.q$f2~k26c)X'^21t1sqTU$9jSȪ8e&.P- +e%B#R!@K&2x2d ݗ迂t+w0%9C߷?{G_;_G3 ^q Z0c#2r&#&nlK9z<Ú9ЄJ9<ïF`h,Ǩeh3I(3UAMF$6*&:cTeʭRJI(SڂV.Y_EC+C'ݒṰEXl&1gBf`ƐлL}rёW(YZ&ȩj R"O48:FU&\Wȧ"xd&l_(1.5m۶m۶mkڶm۶m۶:SU}JӝT%#)nCY2Ҩ]8'I*%;7ehK=WɐJ F2̨;Sޢ#Cs:%եD!veľIq`qg9o~XiM6l=`0^|YG1p1/EaRJ"R}̱L\iqE#woEABg]TZ7,"&5d[U$ez 'Κyɉ;3Q*3hsw<$X8A1Hد[ɬR([s]灦3$X@$Rry7q95+ *CsL 9^RPE~KY򥘉SN3 &WoԵYn4|yO2vZ fNpўql1va ?Zc:\`ef*K&y֝ˤfG-%AvULg&/_0 ;pO73̓> +ugBS +/eKMCe wh l|+>F5s$Qb+oZAӆvtB a6~^#A8Q=P)#VEY6:*!5޴_8S5|J8r$#P+ +@EJ5"C+ 8&xm$Z_;ƻ}L3 +6i!]Te1"H#U@كn0n:&ѧEc=9G0ӠvH dܕƒCd݇2]!d(!,eI:=fåJLƌ1 vpV^jyoCݝ{x_%^8 +9-P܈SýBz?eAW8%[ -Q+_>.uSDFm ٳa jU7W{;Qա(#!V4W\A_19,VERM-rϟ0#bb޲}{Bj)Fخzvܩ@gcUn!ڸjC6ivSb +*ֺ,? ߓ&&[l;! 4.V-Ij(X#m(A> [0/gKEGB>`9fS@,MbK߽Sڞf'6glxuy$jjd>h hN/0&YêGO4d'I)U 6+g/4,^nFX +C.G 2 "3ؼ: Հ#}RFoi0ܡ(O,J4+.%^]MG`2ДB0-o$UbmrS~+6NbIB_I؋)N_ \̃"-Q%#<QHHMoˀ"ɠ!cf.>ܖ>(f?T8.} +OP +d6ΰ BaΉćuxys֕^7{?6FP[/{j4 +{Z(:b92C4oepdD;A(ߛRzau:%&$"ds|2s] ߇ѴF}"rI1x>lEzs 9_ev|дoRZAehz 8ڇŘ>o7&kr/QBPͯ:ÂP@)LO)DbE~zQKcOe +w=Sgrmc<,H/(R<TI҆;EP}+U&XE Ӊ0`fe|s:F6?-o; +S%Sbv|ZM/9DZ !#dǪ6<{{9\Mewu'~.7=t;HWAZx ں"C5/$Fn)J8>?p1U>4*3jRRm~CnOS1J$LӵPsef  +%1MgY7.4v[*:I5wa0@!gClb4Gr#, ta7/RW`Z%R\VwXLG``뫿_8Մst/Ú̮X~mh>(QQ~F>3tbG`uy$KG%:G0na;f}(b5 $m(E*,U(#(Q鞿~cnw0jDž fx^wfxNb~+F4ڃtj=9®SAюp·5ҺՅE*4)qgEug+Ú+̏O &eA + XhFs2UcϝN4d_x6ˣi6Uzk)(Wi:U_QdlZܵUh7~xT$ejF7l6]LմP.OqӝjJzُۗnk5~P@C q$d;T6.r[pJ46 !KUF)e>\23J"]G)X+lPK4Wm[0U ]'+pzLTit+3!=QIzkԨhcU"T4SIU7+=e`Q)[R+B8 ]uML7l?geyMmSm'6 zs'/;`0Ng#܇8J爤[NDG;FA|k:wF~eZ.2h8Kcu5, 'TK EXe( ƞb.'N>jDP\k`:#pTު链hq؍ϸy&:٪,t&'0FYіѥ11hۥ vdifpq>Rrߐ{>o U +nt!a$gS5 K PY?uhYw3kNo:okJ( hwT[mTA^tEsC h`BRk)kW;Ɛb(rt읺.}?gz&yqw=ϧOҋ{ೢk^2FlEdD7@"qbY+'oKЏ_ӊxlpqxȄlpIơo⮺U#')&/T%LQ VSNZ^44Avv9,3 ta#{ ?;H+ ak)'f~U!|*xd\7l])j#~(& ʘH(-QQrjT?<T8v3L.5JfW0J4+<- W = i%T=mKw{c|ZuD~kDJP[Iq&蘉PKw&AvV_P vo;(o!-_H;jJjo#ϱlGP5,jd_GLgUN_?炅LX{#%DXa "vԸghooH J^`nA]Pۘe2G2$cl^v| !JɗZm0ҝTRB=l|vMި 4;t) coRؽ,y ٸ.մrچ)&5.PF%o3ڐ[ Ϗ&3[O9ż%9 xhM(G藤vHZꏕPyH +#/j/9{/o +woDlZ@97Jv6FF&NNrg+ U ꈹTEH8LEN̻|2{ 041è3zݬ~/-撨zo}^}գ  uc&ҫ?6#DUБ ֨Y)ÑԺ1ÓԺ9 ൡ)4 R>MO#ѻXD<ROy%1 ${(_X#< (hi 1@ +4/fy"P}MI̶&NV e3V(˧7uZ%1Tt  dJu{F;%af.28 N +Fg׵b^·'b^"1{'c\!4ޭ/5v3 ̓BFX )ϦJ,P mڌ +%-CU*k`F絪6[QX΄S^b+!=q[KbsL~e@S!B4,4 %V&^hrvM/,Al%GD` "caL<@y=* O=;uV2RmL &ߘlFK/)ʚ+UM,8}}r$α"83Յ"3˲=9f17 Υ[8ъy !ъenixl]&$ +' ^ a`Pp+<,ºsN60K@H Z7hUʞC*(+vu03{pZ5,T^Iij߹5 geOBf)Fv6 +ybx d+T!p׺*Xᥥ4*8 rCR]s0FRZOhh`a6J%q#Y`,cDc/3њ`YQDEu)tQFJ 䉌"W#"9`XQJ&É[[aҁ7p2t7`1uUNxEe1_z&QĎƨH&AJ3>ظP[܂AG"vM(m.梗Fwdb[4FXȂF9l(QAG1¥uɈfpeDZ+%Po2yhs!SJn +-< ŪY*GW 5$g/ v vG^+`T$nTQ/jErO bSn_D/T+ُ +i!Е<~h?+-R=H[-Kp'TF!zlUBp.%UI0Z@rZ-Gգ,⌨˽DugRui +#Rru$V?U66(T]5I|˄6˄ֽ\x42RG%{`jF03|w/|ɥQY]Wc6aO7D +}`\QEcyGIWu`\KG֚, ta +:kA(x)x- q>6[ZPTb +< .;A0:q|C!~->X Q㈘5;M!~OWUՕA{A}x le+ {liCwK_NX\"F*[ͶSDgp%8BY4㪥uN`3H6zt=/ڜ\gQAgSR*mBEwhc4K&9kYǶ&Й ƥSuKbva~p԰yI6Ymz3 B)SwX$T3? >cBwRMaLvAp 'pp Edrh<۸+gsxgDBv/\M=*X\pixg8:K AQʒ =FKu 9\=v7 WMwD%Ղ(7Ω>8vx%Y _LwՈo$C]&"3(,I9:t8< +(9Œ`SdD5E*QKhF63my$'VX[8bRӋBptX#1*G5[YS˜KU&!ܬ;'@֯3R%ECf#G f/Vݓ3M+ +o3Ȕ!ubfR#wUı$`F"KZ/VR!RZ3 +US+1HF;;hN/C7ٽ<73XaRJ& -&宁*9\(Gi_ٽVhE 7Њ+7&ʹЙfcֹdL,adV[I4V; "BY}g 6 +4+ nN9(k\o15~Us‡L{񩎎aJU +7şUQ) & EѵR\H@+=t*q;G &$iK;j-;DK9kRA1^&(>bFM9LyɘrGqU"EZ#l0t\:`z$ҙ\:p{unId'X"-/^Mt맼9:I%JK})8=h!G T4GY(}4fN +\רm͜D. +\:"o\y8^8c.uby#J?tQLѻEr^u dx +;댢ܓ>;BrOݎI~? l)QCH՛Q_Flq㮞C_N؂0Ƚò+_>̝宜7Z}\!j’.GYc%!Dz꒥=j&@U<:Cs_u]m?S!@fܻjjvrsQ:8iYκgiA?n\]>{IK;{*)/Ֆt11ٔ=Fc%#DШgr:ixHѾ$>hwkjuN_MH`Sa 8kG߷F7]2\555 +] ;ӹn8iDrEIgCK97ω(JG3 8Q섟^)A=!9ϗa?㨙V5ruȽXB\NiCQ(#W+o-G`BSɁ{޻YO|ks)nЮ0"H=:뙻:5Y"MNqb.ǜ,QiJ +Vx`R޼1>tkK*]mcZXTaѝr\{JMx*c-x\BO!M=B`DcNz'C)!N"k0 u4#ެ wx9k픘Yvr aOSct +ҚoЭu@7x wʚXLcĈ )!}|*5KReնyt*>/j=?)7>Kv+ؗ[,*eN~0xB5."O:ML a5_tt`F@݋*(P*CByV4fs쩀uR9)au!t6hl?\İ0oVNB*h;qAAR| QEWM(V]`MW=&IR=ꔆӹ~N1}+ /ɎfN* t3wZte Rx]X=7̴Kpn;'v~;ϪL# yԇzLa[z(iXz=|;d7qDs-P1le&J)OV\$oR~g ,4[d{Xȝ֩!75piQ5IC #},J8 q1`Rox$+R'-rc3->>WsSd%]B-WM{MtReyp*ݓoF~pѯOAgg쉓̙3[W -9?H jЫb' &Ic[ mMk"/֛͗ʷdprw<7*PߖlsD,ه=Kʑk$r`oPy h&6X>Lt[փëS5kpݫn$5#Dۨcqx?☐d/٪=:LI7>c,AsN{_otCQŹFcnmtXw3NW΀ttR73&~ճ܅wlN{D]Sljm/mt0u +ů i12'3?f6)5ЙSg'g =`Je`Ne(zJ>ُ㫁UX_HF-~'eH(NWfܓx3 1-k-0fNygY %)SGdM*l=?g.!/0]LvD'[+RTN+]=Ōw~v,j0{=|):i53Jn+Ƌ^)O̍ /dXh w!ۂȚr gX6?~$0̙ċidXQ#>r­M m C 5;ğ7#jTG+Q]S&`9FǧHQQoVk^{bݠ]k2ghfH4Lo8lTG{C]УoF]ƾ(b^)dKyL PtifJ/.m-Rw-%0ԤJ l ҽ|k n2R63co&C6|p\8иd? rl|bp^Q;}g ˖8vU? Nqj8#)_.Cj2A)Hh?fFB9^7 q<R|xxŸM 9bR +c,{cS%Z}w\˕F.U{_.SÔVZ o 5lZ^LQ5փ_+y=$̨p}w,VhӒQQF$&TKG1jBϟfPnH=1~?m^ʡ 20,] D$mT dE`Y*tj^]'~lEA3/yT950f1ߑ'[x#qjuc|uE˓ ű3К7ԧVFu+Y:|394;3P0gj@E_T[X`C<҂mG̕uT6W+[tnZW4d/߫YN9^{[T+' oT+4ѩ3@(r8ՔpvuEusO`?r">=P6{joH5-WY`,hҫY ^kSEYg~ L7{wű9چlg"+8oi ˙~`,1멐׊Zt',|MP(0nd_ncz6ϒi뺙a޺m-㖘1O]5dkmQ蕻Nr[)b ,Cs|i |s6#K◷zGܟ{̷vZHGFn3w~*{O쭇[~+=(f +&{J''§xgT^{*F˕PW[<_k z _H'}QrR|X16*r"L 4JMF? 76ߴi QYdU5c yj yJ^lotUίnޔ-iCKЁ@ +AC~ E$  6_WmBN~:u 7ΑUh +zwBB:E +_}c ~'G~sg^/#5Z}oSOTnS?;|h/E>(!8 3, zp5[kђZ Up7mE4i<*9pǠ&E h?|wjD+1@Xf}1CW fIzԸ j y1 +ԭL \8vQKhoaZ~^m#XY$ +Ѫ~|aŊV:|_8)LI&L;]%iZIwZྵo BŮ5kGTY_ٕEx t%|U[nM\O ?V_sf1K,lsO3W&C$2hp>&JrB.e0z+\^6^Xͅ}kK X(pM$7[e$ndjؙk Ъ1]8Lst|_}i1/Z4S?-)vF#q|NdM,Ĵ+Zcܡ(h\+Ϙ/-j}h|f'gyl+ڝp߼*<ːi46&Ӭ8kKv?eG}6 +Bef:TѺ#CW/+_b[R?CutՊf5l▖" +GdJv ,CuB]퇳x"*,<9L jq?<Y7<$ 3V}^ HOdadaEP0772]y&1Am"][(捱ⅅH>Nh6>lXohbŽPxО*GV{᯹{\Vrj"|-R*vU wX,w~$HY +w1ozE-1L 4+= +%K +/~/gu=,$b, + ƍ71U!^ꐦqVhe"uy.u +kɐ TF֭$EZI\e]07-qkb|g9}8ZGヤDe;iy՗e>q޷ ;XjJFx8IZ(*{NoTLF" 8%3/d5cζm[Sڊ p7wJt*Ϸ|*J}q/~xKJ:lQ9LԐUor$*ݵz|[*Q b-{6k+{魪c&^ @ `d J`e6ZXf"ё&C%΂֘ᵦ}mh0+ziPchKFkc=jT=jWJ/v. wĥ :#18ྰwJ[rHT1E#]iF_fe% +:\Aktxx+Bya9nA +tR!b]ϐ$k0n'(IMp'B(,(nh yc Tt'Ubh c *&j6H,HB\` i8&6~Fsמ_"!*]y +S69 KsʎN߉/믻X/h,b(%ESS~ 'n{E⌵Wxj {L=`Mc壝3۹P_N-</]nڗa+bKp{ƖQaouM-/UXBRzwЋc-YDPV\#k8; G{a݁Ƙ!- += m3cI;3> W.,mmݖQͶӁqY>H0 Pi4YMlS]k :.gYy:fIO8>: C|r5}$\dj\W6=^̿Sxy= V=i`r"rdo_K7,1愕!aZ٣#` z,Ζ,QdnLKq*f+@s"ͦ' +f?}}}f~ 3WB§WS\\p~sVH܊g(D((g!#cuyC֑%AHI yeߊ,y0ӭ>}bH1洠 +Cn*(r$(Ï]Ctk%ث]CsLtgY&H|B31H>;Su+9f@%&b1!LWL43^Ug6l҈G#KH' j3 zGᇡx(d9-fQGu7zhTH^mKأKt70TJW ,%: +H[a];%kYZsy}FuD %oPkMg}湁l|>[vZNEZ(91 +(Zx[+i?$wZvbJnYr6(]Kҗ80O8 y֋ӗ>ST#S#1(C319|Ȧ,2 &k *xUVfnG5f/<ߟ|6 AW/棓{hF ꜩMya@Bta# U%U'8BG xDwF[)p.Zb̜s̹Oj#_%N22ޏ\kfZVtEז[P݂_I&n?ӵ^H-1g^Рt|@眣˚&NDh(Zӡ#B{~1 +撵isl9m3Nx&1SPHJPPPINQJ* eXJr@ |{_yٯ |,uGzr݈Y1Nw2)bQݔy3݅$}֠-9ՒJP" ̈́%x4h+ze8dR0)b*&;:l4n:o츮FHM3mq'iVyWVVCQ Dpdep0dfdbkvVjj>F>ʹ% G[r +(<\[ov[SQEކ*,f9@Zzgj> %Qm<*T~(^ٶ2_pUwjl&ۉdkP# =4$M R+b,@sҐ]/[܃DM\xHm;M6F[ANIM;ɖyVf]D֔F`k8J +9NJdCH_R!DYInqLSF)KxP "Ûa?%`€>}X<'r8\.}x0-lt{~hκ4eubȬM +^p6 ErOƝ2x%V{=8W5ql,JloR ga/p=>o i\ñ8qùt!Q4ZEAe1O!#ЯG{(s@h2 Zq=aK )#KMPllxSU5=i v q𓮐"KP3.a K uc7/CWSvkM^0U.ɮՋ-Jw+z][s?Zser(mL,Ӥ\.ZZui#s=_jtr/ +;Hp{77_4bȷ.>7AC$ƯܾT_ؗ׭>nY3iS0"`tZbow~c9!.v6ԬHm9M('=g@B+mt9Y@Do\s? L3j&7we-od?tl`R xpBx8~xxvqBblAsiPR&S@`;a[a;Q5 0ꆎ2Ճsgϯk߷LC +OGX>utc+h`c ¶=)Z=*¶=+=7`6xkҶW`-p[5ɺے'-['-Y[:u׀β+ۄ~nkXm1{~ `Pkk2 EYEANp|N$ /+n30i#+Iҁ޸'De7dEb߄ɅFbҫ? $ -j䏔&D.ElX;{6/^EDb > > ޒ&kWP?| >k?FCE's#rGG/K>[do?4sʅfu=*z.~ӆ{O& m#/l+=kJw=[SY0A$?Xr?}3J6y@-w\xƧ箼k3k!@1ompN}_ !o`xL8lx{Ԅ>ѱ%Rw`x{(8pHWĨ|Q$bqR;rHceAo oX|ʭ~5˓zɣTL2|)xӒyNJA0a 3zTE B8nG񪓺IDvVsHSZ,bU(p +)}j.msaY6i4JK%LmMmA%s\4T +pIHOTBLtc7K gyj&*VW[?1 i{ڢ837b2NSDa+mnPSVic@X Dd>c5Ruĭ 3ʴ6/H"X:%א/nV8r +ń"yy|֥NqJ>P>ND9m͍TPQ}hf8`G{d!uYBZ a1Y"ϙ|I.V__ӒTWΜ3>£cs4Z39/~g7W{cA9 F!ME;i2XTI>Jl`"'3kKk W̤JέGP_Z2#TELш^${fCD)%C9s߶9B_&"@ugڂ2]oZy7ۦKdaئYԹh,DA0B3CՃLuRl` QdHU-?I .0IV⏼2]a y"FXFhћ8eXSKLGT@]ֶt+EKɍD[b'P6¹ ԡLj/I$D6[HMX<5=1.rџZ/ ׫7k.H!pPzM``ָ$ « +%;9J)(z{#@s6EI1"?X= 3;>[ɚJ|%?)"].($UPFWSJW5aj+RMΗy Ky[jIX_yH$(KX -H:FՊkw;֖#ޠy0pd3s%GӇ +@`L U@ieأ\ se[Nh-mּݬ4iX%Єw>jN 9yic)}k EXV}X1\V]_B\+]NnK,v#70P33(]rёB/U"/YqB[/He弤S˘'g4N: ;rG:sv%K@!X|֏FT?}wZ9LgmoHn +M"Wjeaތ" H vŠ4'+JWm-V؄M)K#~ZE<^i$(r%xk5Y+ߍ2Y+zg$Z-ߵ>9 +g5جwͿ[E.^")瑂@7:vyE}<ٹ}ک|b+XEGvn8m2׶T4H6X-+U.tdBcr"T +\+cJڇpGSJA~T' 9Kyh/g'BBSrc^Ut) D-/ŷD̫0E򍅭@tg~[ی|{(C-K+q'oOl(@FMd;Vyf&|~"5mZ~Q;-s։:= y(&r_ +?–: +Anh#N*1X=YHk``CP{iQ9.OKl +$f> %r9%y%RYN0^OKϋyҕR9%rr1O +ϋ^!/赙 ;p>8K]w =}&_Z}/KZ/Δ;7S1[ /RW 5/ӕ~;+̓hV"Rz*4$?)Q Zxװu j$*8X%+JrCH  eT"T*X%^{wwwH{s{ww{s{w 0 0!0A0Ek?ݩ0K-)"\DC֌s8x?CyLՇp|}I)+Wɯ4s0СWU +o_Mn@'r%'p!fI,h,eRPH߱E"vO}|B @2BRJ u>8*WUnI25p+M +l + g nGE"1'QO6CȒ9$N% kzDAs~QAoq̋`g2 m+#ibi n^yl,ݹFXقdQa#aU2 Y댻b>&旌\swTQ4]+d]^0m%E eeYe _`?21B{78ƚhزo wޒ +nnec!`E1/Ab``@Q.*c7YL +DSXC̗0[KkIKr,)o;P#MIhƈ8B&L %(1sb%Y'4K%po|b8&P^@Eѓ,̊ %Њ*67cіniY /> +rGEQ %` iSO=Ջ ^M@\~ 8h7p@QMшdY%oMe6@3VQC(2!5^Q p]t jjՄUgR(nma/іK4t|lFM^jTQ@vR]=*odK=1s4}6w5c7FeUrL۝ 1i#|Wtz4'FH32Ti"v F&d Q-n pzug(҄-erZ8t-2 XZ~18ݣ544;r$Gg9u֖8wQ2k8$@,_Gmk==ܧ}f5uԖNNFlcuR\2=He{"!zB.nmur"j_gt1Cꚁ0F8s~ ^HqBq=~|u's;s{%Zz=i=v?rTrv@Ѝ e~I( +s@rȨ&+ZW1)$>},Vr* q}&PW+JdvN`G=yJsk>a6l`>vM .9r ;w#Gآ[YZݝs&ZA ɈʇtɆvVUѼEԵmL|\?~[w.u킃r7޺вAUVm^a]MGVnˀytbPj- >S8l-g)8~HS#~IAV :L+)'`M({_^a\z9qvYl7G3ۗ^/lh>[6_n_)h$G{<+ 7.Ӹ-i"W&=<>[{jsM5]OY?ZJahSCj5OSM-+Yon,ݎ}g})~KfVzmVhU>4LQyTez6(:E`kUKadg {h. +ў67(QU[ZnPH}9\r>;fȴ#U}L& +c͐Re;`ل|U4'[[zzu4VӚWS*ƬP,LDtVc}FH%/5zN{%`t4zr=Zx{- - }kHӖѠvs=(.(Q*mgaF!;U3SBw+ngn7WNW|{,4AA[n&.v #o\w3,Ʀ^~a%,Qvnܾ)A;[a#WW;iVZskv@iYSΌ`D+\ŴW)5^Vga!yR }Zptnkh/A(|lʐfQ8K/fFJ9#[k9S7+E"p@_"wm=NܰЦFYlWhZe@L-hxUm,ny%Suq7ss482̢ii>hAM BA{Ģ:ΓhLuGkM;Kqfuh`|%9M gap*[w'+_%]x1!bEAR.%1i>c>- 5E@MfIGP ;@ ܔqN*SŞƯݹh띭ƄpE1VROm'O +ىHglܝ 앦.M +0 g(O£aa# 'pl79rH^Ϡ5?ސV-vlM>7J؆+HsBf6E({,>b%@k Ϝt<&4-VT."=]LYrfs +^:8u72? ):BsE1:?ES EH >uH\isA2Fwr qPu?ꚴ DZu|;~KI]j[Of:LsqJˤ3~ٻ%w't+#z]1!f|cNL뒆Xt1{wo7@Xuz{S$[!D)W ~X1to`@ =n1=EnB]e}~O$MiAImI!6 jqP%uvஇeU.݀IW}n.K4=>!{=I63┣0&d$!eD;Ś@qIc9ˡV9?wY}' xUg@li5jS{T쁓0j:uԘp08 P<2&{q&b $\/V  +wnp N zM=~Mu{Nh*7Fa1(do=;7{Dced;pZˋDex1{npf`;اڒ]וFxzo@5M Y$$b˂*p2N1b0Ifr + I/SڟHwV:.Kjcc5ULcZ#C^.r6#tj%4 CCHmtHqZs(0IQ +!pG1׈˞t(B8!z]M/vB1s2 V4(t.&[M uBǒ)7Y](T5Wo {07ZXIZqgPW`Ei> ēXM@eJ 񊟻3|*k~y-B*B<4ڡ`whܡ٪]琴 tJIV5kan$[8Hsx:7 [i~ynŵ/H((eyfk;ҭ #dؕ}nXn*%&-1^!<l.B*=Vz ƌ`:d@w>s>Yq2[ Ш)ސ&ʃ}`I@,L +&`N;ò'!6dzoMFK J엹L>U V)2vo{..*H#< ֈduQҹ4'ȯ_Ȩ@.$فA#j/kzᯣPIc0˩!OsobM+?ƥ[9zſOTGNp˂%J+JS MLS32-qI; ܀NpFyˣY)&rU8 T5M׊=wGPҬ2LA͖ %Mq#gTll ͙XehlZ.^ok +{+K^<Sx6՗ 1'?(7C"zeLޞ"Ju4O+)M)=u:P|o(m^[Vp~taew ;bjiXBvN2XR_=XtoR1 c[jM ;[GiRgV?P7?_<.T]hA_aLE/҈ O =>q](Lq ` $Wq/yM)#۠ N ^rm󎫹AcS異SHW7a.{:%'aTFvޢ˜H-d^G.[ne*2.ݡ!7R.K_š!;SMr(Q,-Х}x4Џo()yտhI +g%.W]4JD{Yɺ <3`-肗WyaX|`0="?Sԫ#ne +G0{e^3W aK_jzͨӥ% +]7t$âe +F1[jkӎgvJfHo_`@ns<)R,K*hn~?|ѭz3*f+r !XaRWRڳ +s`x "?5jׁv:Z,4$MYRNP; AucnWhk*B6(Hpj/a<jИ)ha;sl:}c5}[iZ$;asښeuլ@O.q_7H~@-⍈iIn2#7֙lBU%drfGiQnnƾuK_@A\(͝;ԓq_[;(䝧CjA;f06/{$~*ʐ;ųRjJ oү((]A"d1M?^`] |Ԁ78"P> %6  |>;Q]=]"@ [2bJTDU#4a7U:؍-_;9E'b9K՝r9KbU-czH:qÐI\D)1߂fwգdAGwS^"d};hL|!;GG#`R&9} ~/4 `o_\YV*Œ|gFees <^!7[>cq>"nXqx i)䖇ph԰<  a>Z4r&-͞o uRS<=' 7κpWAWa{"MJCE'9&G$@"OM}gRO^aOyuYySv9r7csQ[YYUYU 3}ZMqfGqjGqN ^란7:} U}r0V|v$Nal{ +kM!l 3>\} /W*[O7 [BzJrv|h]( "](v~ G( S- N!N!Nx7Іb7՗|^ Їz Їr Ї'$MћddM[ MQƗ7OO]"/2=ضQirc۞cgQABSA:AZ2AP6A"D,RWu(^WHZ?yBh; -> +<_s5ڀY;R:#y|-;m0[[q4iY2rsf\eB1eYsx\- T&=Y#b1Zi9ȴ=20éu&/j[LHS<6Sj]ףY>Cxސz5aB1`"UA2yŶ uHp8_Jn3`Y6ϗǬBfwLKǹ6ji#G|^T':9zsQ",5Y&+2*.oz.&p،q?n|)WQ BTĦ|M OoA {% 򳒟>rVx<,ӤY{is=%~FA,lJ/%F_7x ,[wVXF$Ӕyx5JwW= H]vqT]&F}q̃WDtQ *;3$Q +-[cZQpz's"מYe% g4흊wePp}yδA.FjJW_:('<F7;d*dm h;ifq +d,G΀ P/3W>ΣE3i R|v +:B"9D{q7c%tv.fFY1-B\g|DӪHvQ̬4i׊_֭YpIe`|tԣB%߾@!#mwTgp2fZŅyoziTHLF46WXnkyo}/>h wQt4#dd:*ńK)Wּk="5c$-{Y/6^[Q)NwJnوΥrmܦt[21FvLO`sS, +c5Y[)i*ERv>p +0YRHJLXQո9.YF$GL#[WI 7&:D;گ^2pho5 S5CFt= ݰ8 J785į6{sng!Q"Ze!luCZʊ+~~ɬ1QJoh)9# RRxj!'B(9ك{(-i/LrԹiX-?[ۆ<^pֵҦVNl4$5e'8zc;b/fRbRmsR^3ю!`Lg0qkֳUg,XQ:Ҏ XkR*kaj k`sXD~ Ţ9mR9l 'Y *Ӆ-m¡.mїtg.h>8e7^s<s=s8?xsP-kx_qJ>&ż y dtXG EdqG+f\11>O_'ɢ/K5W7Eg']ח0{)!ubHHbƭbi򂎥6f 5-p^gks9Bli`]3f"!Nqh|6H6O-Å3))Tq7۹N.y3]#oUw >z-+aX#_Ұ"ˆc8_tˣ :`a{_Q=s|\.M(5&>i_ɝgn/Q[}OV>'xto_f83:eHQG3;T: +VgiJͨӹSf)k4QSȓ%@8bL78"m3r漢 Lfg˼g;J{&ԂdO9㰟v } > <|@&mSb# زc VIS o/kKC~2n>sIJX ,|W bc~1+CRBeT7 eM ++$7tg|+A0d"ۭ8dXLX~*cFmzS3KPuse2@Rl0!1gHMUKa ON +GHj81?BGT%(W[ LnT\R+m}j/m:S FTAs ^`jCFT},čz{:2xS`eM]UU-u "ۇAγML;g"o(Z%KtN4i%ldGƎnz sIU;g}7XfuB|8뺺u,]yy-#K++2A+Q#iM9k6G3\ώ[}w$L+1y I,N=Y7>~oz$\-I&9u3 `w/؛N|ԣg98C)mvVuơ3bBnH'}[dueG)Ε?92r㲦Z1mN+):d%$Cec+nD[f6hzy{{ kj߹h8%epR 5ckА-]mQ*$T,K >Phg8!0Ys + y<8‰{WOA 7-oIy`{zTcqe{mj_9Wc#T[g iy27ll^2t#}SV3m{hof5@z$5Ge:H{uuNpLͮ4(`苄(2[ taGU]LNo"p^9J(e!eAXjMQ=8opܿ|6&@!b(KYF5 ej.9-O' DA` +ukcjsN8'h'*\4Y׀potuP[̓qtWsP/w,=?ۄnl߮dAzm!9` kQ;=%B0aA}ޣ[A;TcAnx+s;Gm Gm !Yxf \!えk$O_k7?=p&ik#)Z3E'ucD6`J`| +qO玌WeZ(U[ZBI[fsG=?1O&ƶ. Q(Y*aJaȪ0fLG)I5bHTI޸\/HPz*_\Ywë4J5,ipSdMDwvH58fXzB%'bP$&Dl-kƲGy2 BQoCFPYb :%2 ؆Vn. i[nΊ!.O;Eml21Ceٳ6D8msP{m/n^0 tdm;e 4n((@Q'CJ54@LqMpXdex)j5 ҶSN +S3fǪ AzIP)xNS$ ur4qЖ6>HA%{S-3ğHַ@e_,y!- n'+<[x$JSUўY%\r˴-ن47t ^MaLm% ԀR -e>altTZkNF)5yWHhW+#z<ʬG=fs\7ߝX>cC rC#:a-e#Ҫ tϦ':pέ*g]ڷ}~ 뷺 |¶. 5:cGgͅ;2;B}W5 xG 7z[7 bƌ/(_8Wd6$hE`d0.bi5䉸x|-/hhK нĮjq^ joe7tjFWzj~E;$;prh͍qzN`ˋzF^C'-PG z z/]_A_EP\7{TPS7+b5\iZ !q\w`u 0gX:\82r숂u3*.8Lخɾ5$h@\aADT M* +hjRTTv,6g:'.'^ΉR,v = :&>_7sw];7 }Hf:YjX66ս>7/,뾒$9 6~?$X3Y(~dq2 kbutQdc +uC*5`ջdCrEЉ9딢ָC3uxHpŲlsCGM9ԩA4(R18BQI( <;@msx8=޿=2w=]fpW=#]ӗ?.{^$F 1kwrGW>FFЦ+*g+L.(Vl܄ΚcBV%e-&eٸZ?5$+T/& m+H{V{3?ʕ֗MJ +(ŞсrdXk<2ڔD2x \P9qo:YɁ)h,8-U!Mi(홰9[4f?nEq/;1M쩛duO% =c|aO k/0fhܢ~!дIRQqg]R4!,a0̀ޅՆ*@]h8 qyKYMQ|Xys3fG! ;9#.X+vҎmCn˭<9Jk9Jļ؜JkY4Ė0Gwd$4gޖ]]vߞ# -4Ui`[m`=b$v y^qc!ޅ;i> + ,J.TMb1>G޾gQ\^~t5rny}w ..4M 4TmїHًտ~9jϳ08kmtMyeqDY@Zz|W-h9=Uy{ua[؅\-$*pb6D `Q[Bq/92B>s浲0^ɋ9> ͖Kz~q5ō&{KD6TP׈doӒtM>˯Abs|UEHv|> LUOK_MwKjeԬ7}b]EjA| JjMEoσv"v8ۅ ffW tyBeqa }3jz6}qaH9%J6zͮ=BD'J͠U+hbl:سy.c ]3'[OJWvĀ0]H<`]V<+w3.}g)/fl}̏e>5&mC|jUP +*ѧUE]{B/E+) ?)zB+!Чx y(᎔y$5VOau=8n{%죪ג,ot6ʔ5CyeBPi*ނjfN':hu@{N'U=zk\Ӏ{rj_c[{f{!7gxr>so侸B})c3j\ݰWܷZcEp)kTcc#Vgɔ洏AߒL B^*b^( E5Q$ɠG64 Suww29s]stWhi%ߡԓvi;L=l +MֿBq?wZ4+6;+jo_cE 9g IOfљ<^Z1x?PsӰ K0{v(li rȶ?84b <}7E\m'6b|G ЩBh씯h#O$x| Խ.tԠhDסџx^ {tQ#DP[q Q'hH#huaJݗCVݷCx2tZ U%o嬵!"SH5'DT%1yrӘIbdLDVNQcBC;йBГLһ\X9-3mQF7׫K%󂢒RD6ŌCH[_m8ga4A϶FDd۶g;.Ӭv5t\P3y3'Y@۷ZG:-֭*qT9qHŦ \b]lܓ.YN& ީVC_3,MCpY\XDmWa­#Q,'["̔BIMe;M|j號8ʩu9S{d;obF\0 +dqaQO (vQ%1#DBX+^9nGZ0<3K<7p"@jK \Q4e f1fzĸjNڱYPp>m·ntkW^²n%Sr{nDV-g#}`AS$ $[rn RV G`Fڐ8;cz7gdčQ@k.jJDE'Bjc=~hDEJW8zk"W͏ +~!ަ[2#ڏHA_ \t Ji}o`F+zI, tqnU8Y\6iPɕ^gq-|&׆܅x7*2g}4qͺP=hwGL1269r-' rn*n4GtG*fNS+Q0MfcP$Q|cB(HWs󼏨 Z=l=?c-Ή6`Z7<&@t, !1c1 1/ONnl +e%ґL=6$ax3{WR.oUݹYFY9!I,53uvt4EM3=-~D2zWp0$Z,,;F}/0N46F gAGjфxJ<-3Ha'4hBWR\nٗ85UANoщ`eD) 1콙]ac17;?D``ccQjo[Y5B}klD~SPa`B(K[\9,t#"@6cɈ -5+oTN{!ɞhH3333Dc&~ lyImf5ns__ݲrݗ tU%JC0R +zx D8=ъ"@c{TU`="}A; --mQ)x;ЬG>U=V^Я2r^K_\ziںUJf/K]hJŁHNˈCCCYzB,Њ,DoCa QNuTIbxQƸ&)UZM171`D(4C>\g`߉H.X67#w=,(i2x0@;xt`){Te"e`4nB𿐞Wf99YǷ@To^^uM+ejDewx6tμpX2{:ނԳh4w=hv#Xۭc0ogn@'rB +c !G-gM9_AqVF]9WZ\WD "r4 tJoaB]7$A/.9XQСqw(cw[#*Σ"\##2-E eczۇ3EN-S  1PtP:8k. 4|W {&%*<7## \I/r9 )xctW~OzǜsjBU:E(.'<@%+m7D 7Lnyw_ +_ k ,`/9xh_[u.ߐn}MsШQ]ǂ#O-'f&Α/r] D) 28}I]}Ս3liZAA"KX,p+oO6ϟ?1dl6Rd<v<~[j5: Ar r'o0҂w1zA2,$g{RgG.%z~UH)1E(7-H: ] Gj;6>1R<xR'8DnMԪ`&"Ik `l9/Z'կyC mx[bWwc}k''@ȬCzaePow'{kn!;~nG{BZb6tZ,1\h7N9Y;fذ %?RxA߀R%cl`l? ,%++|glLvIi!ԒԢ؉ ͇(*󖀅R55;[-^-zSo|o=҂/ilo;^=g?_܍i|i#Zϼ{75Yix6 Tt[yq̻pd`' Br>LpSV]a\imSpwl2E|Gx~x~EXF#ywv<\x36~}yZ^?CzҦOKpDHV4ݢ{S~PŨӨP|䚑4\ TBK?\4&m{]P)JQIi4+r|qJ4.KH-K4-K/H*r+ז.nXqΘ6+CEj\:K)QT+Iʭ+RѨT`rUN=KKⶤV"4h¶rM(ŁzXWw3 $(H;B  "bVÍYBQ,(>k4!ځ{0uw6ԗWDBl73l++ibŴ F.ˢjH vXs-"7Ĉ]Aĵ{i23:R0,{(v5pjoc-E4&߅wJLSXG „'F}nGanm]|J +rNp221n7mrħ, Ĭ*Atd˼Df ͰoJ4T3n +nXI*)6^F*>JD:h,(3ˆ:Utsi4|l /܉'LƲg|:kׅgV^Awnv,]cL%@O|cEIJ=#ph2~s@745t'pץas_!}1sV>c%咲6CgZ+sVa[OHUS;!:N6bv꒍q҈a 1I_Jo8@+' {Ηc1lZҪWivQicebn<\d)][8>kF(njڬfmκ&C%j_YPݭۇrt@ +*֎sjs& eϥm + +|f^rB1Y m9LDbuoh>bQ!k[׏eW'ބkԬxB0bg'|p +l ҃/᪱Le٥`BAƩCC +$Gi1l#)Vd?œĠt`}8 +8-\|N&"n4~q5He-Tu5[Rz6N认N%Zk}20:{,)"I?-cu*^ 4om R" $y˽^j^+G/ϥN].ή7gJ+qu&/b\4Qα)xbL]Wz<0CUr?.;Gg*Wg,fQzck_+Mq!zI+!.7DL/HT}p^0~Lߗ@/b>ťpOUq#BȳNz>u{ #ueI(|oU{UtB ylHY_kS,}[Td]jOJ: N tSRƊ:EZQD?]D=׈Т嵨uZw"d;L0vl4,SɯpN{,TaaTZS@{L@w1-fb x=BoESH5l1\FC=jvJbq>m;Fv/<{7HB(MG0dRtM&94Rij-!j<e`K:*hHOkJ|yeQdݚKu]WO߭W_a' HSdis5;Uc/oK"ڨ$֧~rIm :} zUaHy&)hVJqs:t>~LtqAjPܦmV.*\* ڄ-Oǰaf%Y`}RZ;jFK RSE\10 P|SVX\]Ν;qŵ-Ǡ.k3l 2Vqw89mHxCGaJV{Dmɥ|mc~ڱ0DW>Q +rEU8 <V.^|-gъ왬8b +mTqqI]=,Rd=U(}҅ץLy| ^̉\cvTvi>q_a$5B섞ސr%Y` +tٵc`ԲM۲'gڗj^ZۜxY1SE} YƛW7ཬb:ug8?1o Ѿa_Or=/ x {4Ebm$xڲoH&C 6f~C.lלo  \wp"ق 6 !Cb.&9*+Lx0P)5064 :c}6T +kLzF2uEx)"a %bSEё%D1||U;Z bo0+UHF,+RGDfD a\hqX>NQC4q_#ꍡn2bEw%h1=OzF +8 4e5d UuBڴ ܅ar\֪G~-m]#sxAI.];7w5`G-Au;[Dj-yFfLyݰ_"{3HNZgx;<Ӗ;p+{xvӕsay ºg +S펅MA5;H ra9Lڅ/mᎡ#k ynGu]}͙-Sp-FT枴P gv(]FD67flPY2̑b]fIw !do 7 MנCHHD2U0=v[TH{+t+WtRS*fj vi"ˊ?4j޶$}>Bn--y\Vf ˏJ߂;-DE3̢ (< *"^How0`;l 'S)%e>zqh%Kv=5-ݛr jUlO;?I M- {`NlsS)^MQ}U9^]9~$=-@wUqbWiVyq^&!n \F +F|5 01IOjm[ͽ<2EVGcxEƗ5#*+%ЀGnҹ{1.H/oNx\ +ޜ '6Ash:86VHIqTqa: 1"#PPX5|m6<#I^C>ڔ\j>{՞*ِFlě&dmkLO3O iH;r#>M17JqՇb/蜕X}kۣoը}xW&D3')O0Q3읹ED=ʱmh$ifAPQѻl.7V?j7t8/ )&H*# CFҴ nցm$v87@f|鮞_(A@U^("gD88 ~!i#Vj@8 +;*4q2C4 +DX@s-ksOM<ےAUT5 }"G9KX!/ b.0Oy<&j=x5=$fzSPgX#REqK(D=Yk.s$u -ԛ sч._Xʃ,[Ewm#nC=_uI<72Ϝ/˖' _p|+7$՚7a(ԇ?)oc7A7;I\>aex& >AYW*]"YO%ޒ6eYHUaK7W o~K+wXZ;_#(6rSfE+f_{H go7}o/d" rz1\4 "#%mO{s0\'~>"#@;vhw'om +}354{=» ]>B$< Ŀ'= ?)5pRw? ?_p'_p-ǖoF{l[~uX8xT(z[ES}cp@p~Lva$d.OEV!rFf N-sqg~yVSP67'@5du]۞sAIq WJJt*r^=Z~$ c%I'E)C*1*/Gʤ)ԙAI*xu/%&x5?0霡@9W+0EY*14ɥ>HF{˾5|+L8EYUxB:ycB+7" {X&f'èp +IDzG$^ạȮ-yiw=um;C-$4E?u"bNj%<|loMvAwșNr[  (Ӹ))/kFYrE+ IY"J+*QJ2˪(%eVZ*/R͍#K5-sm*X)z4" J`"b`2ۘ)bcHEvb8$3eJ34,iAT0`ݳ+3,yse B*5WӍl}&NYt#jsߨκ><Ĝ9?}pXPHōePR BP% BMSTW2(%],atJ )9%b;,386(*.r@.le( t/(W17"tlnU{Uk=i@7sгuO1͚Hґ9<4|iwA71Bw+Në@]o(@ѡ]x@c5:Vɪc['/)eIb%byv7/!P5zljRK _#]:|rR"N/;n7vDOi;֓7:#>O$ +Q rci_-D[O+4:|lCפKs#ni'v` 'տe} ;[}Di-M"ʑc%QRpk#'[\ơV`CS3pXuo?! 0leτ8:ϭ&9? 촥mo,#Y(Ƴ4?&G[t0zlĺh13;|2Q:k\Y5?A.ڠFF[ՠFjRݦ=^|њVI'?YW,doc`r`Q쏎d֚ HV|9u vS6&q~B[lS_h)=k daWxD˹&/ݲx[tՙu5 +ԉJφW"3:߈[ ƒ_09Na[ݜy^Ll+tc ZŤ0@1T:谠ܩfӜav|[M%$ r)"}J E P1U<($\F+-uG_E>M=<9 &'c ެeJO&!+#@`Y.RQ6sc +|S.ﵵ"Kɋ  W'"WD(ZMPa.jU}Y@Ue$9Z\v/8UBoî$X8J˃k޷l5QRiGoPw_ (m;k'Vu+ןH(vթ-XGmhwK><1>G*fOe~LO\w1 Cb9X(iUT&׹#"fs8 wVRQsXV"x#s{ō3@oW~"F0OO(Ưq'B™\3 _{Z$`ɷ3\i}t 7.wl{Ft;F_Cqtpޤ(cnCvɷ(/͑F_ƒF_Cbޔ(k$X! "bR_vT~7])#KGVrԅ,FN +I~m +*ssn|o0>ؐep MOBA;6[HK~@y9-$d猂~]V~'FeŃ8jUg0z<*n)}58kЗa8+5J]gMjR%+Qx䪗g)0boaϺE" 7k'>!Y:6=ࢃiFQc 9C):N c˧,Nx:9*?D¤/zB̕V ғ[. n0b/Xp $+gY4btVn.٭+k, TRȇ$"k>ca4 +e6<""D@uqLIlɏhreTAB5h>qݐLq 67woZH;OV?{{  wkFjpJ}~Tpj.T=f齄2d n[P,.+З $Ik\H Os&/7%/ „I3Ճ0plklm l7[HĤ/3]%/)^3QzEXDC uvI{d0zƤ) +-IȐЭd&6-+5kWc|0 +A4BEy`I䙹n7-"qTJ-}ktb YߌE]D&KP/Ⱦ"?Y=E%RhO_b%*ݠ"U L7rMQ^9z, Qf&i}6 Th$Ql`K;h $e5!p5zhl6vhIf1U:|o:jRd j7kI4S2Č9FA$HZ25fh6_Ae{;: ,.)0Jt.2 )]0dz!^QS,vBΤ +WlR&TIJgAIHϥo?\cecZ^V3NTdCܟ`蘛 ;hyZ. T<*RRWF?e(|lW5c59fP68ì+b4< SL`SrU{@G3"j<=gg.1{L Z `,@|yRș; gqRQa+7Exqv}!wlkl/أ9~-Oċm.|̍)>cLԶ +p4r5K% +ϱ7 #B}Y6QV$w Cv~# ?l KK!]HZ<+>qsySj KW%(*ZAZQR m(n'.~.WC[3QlglGGVS<͸x8G/t#$帲sjn{hm}k Hf%A,gBڝ7 :/h':"'mѾ,1[J'q~&l|ɰJl3 K*ޢTNyB&|.|%I&ea(, \!6ƙ8OYx8_p'+g#BX3>Xc:4a  Ԭd)i`8i)iS[z-;.܏K._0Sy +]$X*&rs=dK~~ +CNZ'܈fH2~+Lԛds@H{ &7Y_/YMCU|J6OIOFÿK$ļNiTDfTː4r7GfE*YUy,'ImGN$xLsY>4j&IyIWucy ޼ –JT2Jg7V4Dß/ƱʅeO/N&w&<=ԓ 4%@S@eoJLK0efM@'[0 nezO򖣡`1HZDtJ MrPv#2"&C7"^GZIyOI dĸ0LI[QEsQhCwnBO}LX=rmE*E$Vzt lTIO&6&&7@DVQUTcDŽY7zΚ +DDF++1@%ZVV-sSmODsX442nM<{ʵ|˂Tk;&/xiҸ1$ghViApYu3Ҫv zѭ`ufdD4w ׏.-Lsddn) +]`V&Kyg0'%2 ep}o_ijٹ(a(^NsVt%[Jr;Ñ,cHvJ|]D`p 0$#URcN+\ hceխWW!!}ˁDOynJ*[:4~ID֮%^yIN2]2i E ͂si،Th"^)lXEL6yfV|~ +u>u66晬]7mF)JN&v"$*΁_hvIe r%1f6(˖ŮWC ` M)7{uc#nЙ#@> +i\}ZnRZ.hvrc-8-E*u#בp/^<< +b.ݯm lP:ݖv qOAIIWknRm.6Sk՝yl5&Z`hǯ]*}U.~v/4uJ|I +WDSҪUJ9cDNmHF&+՗yT5iƂWkiTȶ^Ɔ߈rsdU6b|E]ϩܑwԾ'U% +r @'!\v\cǜD3>w{);SH/v+(4V+X)+ KRJG&XޣV k]W9IP<7 W]}[YYu>bm/K1=YsEOŅkP X pJ'|lJ|u*) y-LOB(Q* +1;)$eҵA/H'o([FHjhAp3bU +#}fUD"ރ\>]Kt2w8^?f1nb|o0 Rd+ns%-ģ.lĴ )S +`4\r I25 +^^K+.x ._xU$/\M/1`iz1,_t.kT?mt/ZE?p,nicsE%&']U;6LwKN3BuTK7@N#҃hWJ)IHO.L ʠ1$8i4g +YEY_f +(?No/"ɯ) +m4Hſɟ +ivOʸ#_ۘk\5pmKտX2Epl̸&^7^Go7^68'*Q`!^ >F"}^)> _38h3 ? {ܔ`-@Qd-b#t"|"(gHt3P+$#8+8 #F#~5|"5?@-#18-~~W6#y< .#z| .#{0>(1 > >1 +~0#e@,˸,,G 1 pxw9.#j<ָ8ڸ86cL|-(qP-1>px>`x-P>@¸/cR|\70D\4 /#G|s<?/!8h7~`/J<g810ݱhƸ/!h0| >qq9~_DGmc4> :HA_G-x;~_8EGx@mGx mG@iUڎ,)N`,̇{0b:߿wx&J&0yq֫q0!:j_?D='A]G/4w"{9xn*A]G4}o"}w; So>P{oI^G7_ >NJ1>w_F==_c)=_o>R/ppwq|5k68x[YރĐtAEdI \7q$2uep⸸OE>>{ {Ƶ20O- }fuyy!d"P%ɗy^u@ +yFdliI"QssT +#Eu`1X's/eCCaAҩEhA|J!ǹ%^ n(xBn;_*H̋O֏sΉmj(Ϩ0ۗf F-6r{H{D{|Vd[LDƉTaJbI"J SH{†^xy jڌ)s U4QRtG^n[B6Bd⒧]C C į{LT%+K o [71!9k O%+!)1zlL̕d૵DG&֐@CjF ~aV9hz{Kw4ZVVɝ@Ppo J0A@-2`%80=UY؝63L;x¼ʶASIp4?<ᘄ 4J)ONeKlQ`Re |IwoQk3=d4,]Rr72tln( =F $@3q>dze yE \@;&b^>74 S)E3DY~ygiNP 􆲯H)n"[J`0[Iaf/wР\Ϛ|0<ÃZ[}QX&q(t1;]qXa98-T/`Ec :i/uk4rLqRyȾr|Jk7E]Ħ"ff&t<ղtPq"D,l_B$qQHsWi)PoE3F.+;o*fUq3՜D)8_*تS;zipa 6Jם= ë*N^89N<)8 8A3ᡘNV2<^ KSb L3Jׇba%p]ܛae~}o5d +zvr}0 =Dxx΁ģ>׳Ka1_XYa!62{ ob#7'b"/Sg΅BZހp2Twadlw<﫷G弓Ɓhm+g)٪+u"?:d5 t噭+Ѣ:Y>T.n-,~6%Y`FGhx.#k%j;Ҏ[ l<O3ӑ(@IN|f8[)wnٓQ `E2%t+:i6 'M5?̛JUittQPLgJ+uۃ$}co[Ǽt?SXZO+a8h^I!@ ؈no/z& OKK=co tJC(fF3*:sn#o#)VjyPJ68f-ShڒLsJF +y˄8Ar z /c!o~lh2KWF߮V$}du^ uGxg  7B .ROq!\ sH1J")8iTy:W:\u46Ɇ )!a=zZN0X̣|\6Y7į"nn]ˆ ݙuybހ@K2F_u$dz_. (%m9Aj4(%*s;iqirhM>NԼU,%>MAfFe'xayTCzgXwKUo-;-A8[vA^}Gk8lD7%Ӎ!v9R"Q'홳KQ&aeM "un[`yaz", '|<4ka 3s%7? +˼{28Fq(>#e0'k"ؾ 7h#; !v{ ޙ@soa $O{a`$ٶ/H}:Փ-ҕ Jث`(5 ܓ-Uq I!fG@IL4j 1R긦F(t`ܼCVx̝4;N 萕z4l/Xmu6a ')_Ni־P!pz|a(+ Mk{zahsdEG Ze6Ã=ڸ6Qji-5,}Å{KG͚!|#8U juK}215-eؕagzo\ָі3pnH嗎,cYe_oV,]J.(=6vnH%Tw9y$k ǿ-7dk"=ݸwIv)oOxk$hc%Yp-KAPm#c\L`tջnal}#؁Z QY22jkٵ>krMĸWKMݗn'8t-"d"kyeenmbK'$:bhNO.=f~40}{ݦᏱ\T,*kf'?f8ï7ͣ`{נXDp?!)jr/n;P=] qVc`,Q@_Qn(7{@r~)+_/O8P)O\?0oct~5U]>ch&l&褷2o fU[KD}s +sg@b8MqZ7 ̬ch~_ۦ{98Ki*ZD[r\g lm6Ďؔ߄S] b)0j,iy!)AiQl4PS z5=mk.~d"&F)ꎉR[({ESqS.{P;6Eӭ^$3SJfx[1>\;):[~gxD73;b.Ӗ4Y~Bq ;XR +|x3AD\̻tw ;wػxv#zҙ/1T)$TVGR4N'X jyLeLmfzقl&u&L&ؙsbuQ@s]"B 紘]^LC6TV| By}" (ٜgT"NOv='vLQ'_{Эy0baH`bH TCrVqD fDTC b7~m.*ʦ8`NAׁԶ<(1۰AxSXt`,ρ +㡨`V84ѡ.ax L٠NpgPAJDqr 6K$\9Lׁ[G5e=YI̤gQi7ЧU=,1C>$0&|C4~iMڏ\A2֡h .RamQ +sn.UkmscI:\<͗lbxJko b`l]m`s\ 9#`Xүz2X8ӷr~x({}$uwH?]m㪆ȓ?7DڙlTo';0E.-1-c_ڝInAUTmdpNb c!Ծ߸q ݬqlHԐhվv}̲趒E(tPw$2ʵG٭\R7h 9j]Lqe&MaX˺jRU2 p_}ȵ&ܙnOƀ U_ DQYd.nw2Mr2P^W#SubφL4(-#'S5aɨ[U'YpEп-&fidRqv!>ڣMFq &o._09tnyHiV$琵.j-HrwSMLlO[zZPS]F=om~1۠(Wǖ\͂.gय<ڷFco;WlM;SjXc`J`|RUagޛ ea/_?mt;0? MdW7&gp# j75c0F;!7.KÝ..>Tِ>j)3ZdWӂ#=vvAB1o,˞'w d3bVC ܣ]fXi}jf Vvdv6)%ߞIfz"As2.QW _R x +.?e-) 5Fd$)]zfdDc)(l7H!j7pC9YiSl)Zvk[~>셄wcaGD:Q]H, I+c#U_lKuz+ub+ +hN6ō%-{%]X= +(22DF_WyQ3?0 jHW|1!pcDӃՆAa[1rA7cic,d fMԧ I 6u ;QLťalN~QcmھqS@clt}p2C4#!ч`J G9u!-/CכWO85 Kq >8 +k(G 2 A&is_Eձ՟Y@!Œ#w w5Էߨ)?ֱC9y6ף1w,k{myh#VÎɛ9ɿG0Mf2i]ޙU_F?'nS _|+ )T }UZ~jnqn9y0sYm[K{Y#K!M:[b\ԇ%:ڥ~՞5&Hڀ>oX!L_KA곊m*m 029Ҙ*-Vt e<|Xax(-j +LqQEh?@1L4mv'̑Y-o]>A9S(vڼa4/yQ\D>Ju-]H9=' @XM2}Mq&[D>J\@nEڽ֩3xq*=0Is5b!m`f kv"8uhk ǘsC<NiBmO*M; r] s+uh\{x-iqc%yЌR~K܎6uiy3:ie:]l *"dtͿd8NNoAPJogpUJ*voܶ쓋4Cw5̣eteTrI_(c`S}$^8< +Ue1M?:aٞw_μ;% :ڌ&hXOs]1mǦs zIsH8:I%o=LN#?INCP7Q<k T'1V#O87'\ꉬSo782uV[wyµ)3cBe-S9?$p_; ocl|ǂѧiЙ{{oCXdUcf<ڳMBvdh3vaM}@Ast~O?HKSyU)Al"TvdϨRw=QA<ԥo>MBq ?iKdr c/tzpu?n06(R(q%=&1.ңmg=%̖bPe|[/Qi7) +=YW+ + 0ʵ7K!ST@)VA+=S*cU},XRFhTAXd,2S+&,YrJ+V]Z2+lo/}]7 Nɔ;<5gTת,{=T#,TB$iX'+F]2WF5JGk,*1DbSpW`@r}>K޿ʼn]3"U];])EnUd3|ypy^K]CodnU(D3t BD]^Md,1tG[|2{ߣ)}˄ʦMfK}v;vOv'v1~rlwZcIwNm{\cMv>Fw]7L)WŢv"7M3E=DZCbtHBez +q!b[Z;|8`&AG8pCZ1Wܓ͙N^FqwFɻE葺-`2Bw5tebO@̪쫺C6C& iU"T_:h`N> h5(چ)̚}aƟp[>\|ɾF\VL2o<3?SprfvjpPjkUSֵ +xRðtBuXl{nGXr [tſm9Y9MIL!,VО29AN@V9-@ŕvB',=ǒtm0OibYdTWP.ktTriֻ6(0.p]=]T]PBDp<2NҐB%E]O6|Z/BߋZm{d}ݨ``D]Ӈ@{mz`g 2!Sǚ{hQ%[F=ꩌ3)FL?q(">ߙ8_WCcIzwĨ {` l`*nmk܄2]%GzB* 9ZY]٧x:m\j@ J]K [;ȻD.*tU5H)"`ЪYpdw@6LU(bYu]#߭0KptBx` 8L;[SUnSq +q_qks?:{a'κkařI7d7Ry<' mb +T; ]ryL4gT-ߴ|\lU;Ao\Q.5MVQ©9HNLrƘ>-2OM`*gIO;8bȰ;@F7+&c@Dx;%幤%9sf<Oc'a&&' +T +<"],@5٨U0T7 0"[ZZ\ЪZSk_seo^~<==!̣|/¶zzzf~A| ;d/njݳ' sC:xO?ӡLeMjRE2̥ҳcНNO2SuVOaH%cTCs8sWcϮsێ@t%0B+34P԰0e(&4R K[V;Y$6$%S,~Qpꔅ1,_n2y64@~5CJsq>&Z`Me>Ȇ*JT7 +A@:7#!ő2("<,7KdYh~]귘5h$i@\7tNhp==r{\ز9-S;=ZV-`xf VGX" ZzU PilR@h*:kk{Yzi^/3e4)ʀNNr$DW5 +ºsz+1 $}xpCd0tXPYZ#XXF1v=Gڄ8""d޾R. dAc𜃆~ +H~OC:!W8{X4M;eä;wI.^ˑ޾V@& 9\tqWsmR ohj(֒,ww,=ճW9V#QNoN_|یngVek8tBJanFyL5.Τ:{ݔfWLHqCɮ]#imRCpJ]ƍg5܆hn`Obei#wxX;s; |C D֕iytxL^.H7D= +!䊓,e1|KzŮof*uX] lWa^ +PV8Bκvh@}؂lVud`jcs7rLHMoQvI`『 I_,LZ$]Bh"3"J((mG&u eA(P$4M(sOq'yH7s+bG꾀\MHj՚$u3ܱ 9vMCe0ʊD+QFT.K!FdBq=Y. m$јh> +$ŏP jO>ٲՂ}Yu^8?_X. +!9cq +*5XE.c*p3<#1?KHC%!;c#i 1Ȣʎݩ )8LlL?1vJ10#Aњ4sn8չʚ +G0qYԩꬽ2^:2}w|H/7F{zAٱ>1d ,[|DF|0%TIgtB=z3ڍ!x{7=;>qOnO5;3!7FCwxeokgng|^gz(y(B^SS}i"~6>=tfX^/)6ʝ 1yXQq!“sf18ԓA bC|H$QNg>~Xb6sZGې~('CpT6̑a;VNqBBLݓzwhAчvxP̙![x$1Ð1mWVd;{H܉!%2!vڈm4B BiT:iǰδC#6#C\ْC(Z'-49RDJ0 p05ֲ|IdrĐ9C |qI|uͬkP[',l;].ɡФ4"h!k>Q֏ +oqEڡDKvu열viŶNPTg8*KCI˥A إ7SQ']N`<3.®<mFDI(VZ{h ^GyG@< y1_7H¨Pak^GߴGi\7(PF:s+%ջ'JYન}d×d@è|F;YmpZnq.NK?-'eg(%B'(0س %!Fe~29nǩhW&'v0 @!ʄŮ0~&jmb1pWj0,ʟe7BF%ucrrf9B35 (}@MMDt!ؐƔuRaI^Me3: =;J1zQӄD'W8ݾISALowV+'d890.!CVb` B[o~Ea`I$=U2VoQYX;%j\Jwl~UIXGA'#c'dh#. ՗Q"ל,cyސfXԛSf6){5 3g.]UD=DE"Pг.1ft?Ġ#9[œvz;`y1/Қ"&޺wq]Y,~<^5jv٩tO&c15+e<3C1dRFP"ŕ;xZ>fh?Bj VfվLzCK|޳)-F Ƴ ϋ-| ־,;d Fј9TUf&EXr^n Xj?3qIk / n**[rrzIhTS%ϜO] vViimYa>,ޫ辆4k5Sd.6!{M2PmMbW4N훶X5e\WT59S-3ۍh05(HT9ssv97tς4DVuk +a=\9IiPZ/&*&#gŁcJB\|j _pk&8#|*|H5#t +/9:V(37720 X֤wbL^gl%Ȫ^V/QC k iV.6*(UY]VQԱxko1՚T<7);xV"AއFy8yL2e1N7a×?\kSsP rX4,W=k90=搊w@ܨ/C"d:+ir0ȏHTU?&Ia8s+o>v!kl*Xh <5]qNeRP$C\5$+3U +BmQVh 5K e}? 31 Š I/=PDJ<HnTLBb*׊HGv+h_amߔN`iLpR( KgP3gKL|)SE&f +P\'kJ6N ؎@ha5/>* à:4),o_PCjDȏW\1م _HZ̃!`ߞ" 7aM[$__`="o3eހB _zup1@'`]X nteW(F1ke8>rZVC#wjC,k(P4ㅿ|[5D6űClE5NhE4Qύdst+oNhZO޳K{}d0^î BhrjB2X|LIf!&dB^g^8_ +\gVr HsXht QQi!Qj1QkA]q6N:aCPwnp.w9|#_׬Bix5ljuPYW-D]8ǫk,e܇f8:޶~Qtدlg[m52aW,?nӸb`ہB~p= j+zlC,OHB'FG,K#(Y\4ُ`o!0*rFʉN %8BGCh#@2I$H2$P\4y\|S54f :MF_HoN6i%l!ЪM+HEܔEKDqfxb.y`X2@yPMG6!HKK?6Љmr%ONBH +f;0MsOWu@&Ցe<65_0L#``;HPtykNLa .29ɑx4Rް4hY +M} Srd`M~@BqISaIs,JvwG7̉\2Ջ>j[wEt+I06V~[ƽ'QsbtrFb}ezUmV(lS0g@' 'V$"{nb&ƌ5zR% 61]ǛJ +^cxڳ)B FdisW$R/f ^6bϣ[*~P+gD>$j,e#2 мo"Z40- +iTxr5+_n1)XYT,NvvgU3 e ![AVQY.յ>L9݄U?Diz'?lI:?9Y&w竢RNxfx=I6hB&~ZiRI Z܊ޠZ/wͥ~_/k' +[էX&(kՙy4ך3J+8A:kB:G #F@-@p 0gtAfwCq۟Yge>jukɈOatk@=! ѬGOQ噘6$N<;P#!~fwg3=MϜҤEVQ14[-| mHmg^ Q3 e=P;>y/(Vv|} [ ~p[G wJ@Aƅgvi.`-|ǸMk_MnJ=?s6hGQg4O;k;,rH -&\Suχ&K>ۖwSJP#EoM BȬ68}7@4;m:H뀽ZfmmPve,+ˀ u`X5}NKZW’LêB?y"L׸H.6^DelXY$pѐAz=&8Hˠ k(ͤY|ը>Rջ5}\Tyd]㤉#†`bT3O%S6u<8ƐX:~p˜Ǟvr>?1[fx#L_s6Loh~H־{;` = s;Pβ +u |`=60Kw9n:; ;.Ay x 4쥃t Ce`2{N1{bVoX(}nDa}n`׃{F|OȹAw=oΟnttpz5ACw? Dv#tn.`|yƼ߄fOv,&4PъѰ'y|ޠG8҉9߸~tDPvd`#s6h# +Fb(r|XAA=}xb|q 5d/|,ei}\A Pl!" HӮǜ'@:NUj¯їyb3y6?[`K|; +j*]h?)'5fZ 2ߍH&i7hn'{WhbdC8#$fEv)PE1K(*ŕfڒ:(o%.>A|~\0h,0=^0b:Xba\;YPRtX~FdfR(-4@p[ݬR"2RlcU.Gݱ0JJ*]ULFH +s͙7K,j.]S˓ҩh P8Oڦ,Au9kl-s)C{o;l/8і&g,jh%Њ달P ˕BVsJڌ8*h- LG3 LGU$Z@~$Q@U/ +bX*r` QɿӃ^ı maer׃PtJR{fXl@O!=\*XZ5} +a5S̭bF(kX)*\ ԖŸ{v2#uAzx9v\7Q +c 2!*Y9^@.\/٠.u؝=dv;GӸpBXT=b_론7;Xn7Ys!~.=7-Q!s(!.ec?!v`9ØCnꡬn끭 Y&!cC tG/XSfJ3ӄu{f!|g7xbr80/ij?{ф!i6!> +6t(9{b~!㿢sО lgyw@C|v8\G'z)oM(͐=|D/^|_ͼf+uL1ғ1[y_iPwdݸ<R4) uC('2 vWWNpH8kau%癗3LSO/[)Wh"#  +٥5A7xkR|k1fiwLYCšL,td֝ ?Gv#jiî2ӊ:](wBή!no]h {ѥbQ'5 COa֒4K+':m }zv̓\"֥q&T]<$_@:ni2qÔl^%60%Ծ4LG9b~UC3ʠ'bhMcQrjnk4mK$CH\.d4Q\ rncikN镌U: ɒb@+?b;^rեpUvDp-F!!jrZUBorвݪTAx&ԟiX}{}%<: eRڪT֬H vc S,=c[NkS1:VNi, +k)QuG&eր)> =_G62f zG1졝ҖlK2q ۤV;^4@ePk J2Y":}^Ja5+SQep'-LqU7PޕǾ)6wA]\3/ Cns?azc3CxV rzpFs=(z z荴ݻ|C?:D+)ˇ8uoԀy50͐ɗFwn=o[7>8QN#~aBCdxbfJ:$PLE±A< RIbfHKtsMC9%/ь_ +a)JPKZc˒pa*԰ J-꘹O=zD{avTv5)'?,RCq!^h!o e?  q T|ᬎ&zx$fuE\{7pp4nHU8;Ea;\d42bmg!)5)5ښ>ơC( pC#JXψa$g[ !ZƢx*!& d0;9\輞؅;q;<-)y|*;g2[n]'ح3x䯬,'6{#"y\,'T O*YeQo+ଢH _~cTsahʦQD @wiN-W3{dͶ&Z +񧲭 + D8od +Qg\I\`'uu:kCm"OJ}ܞ߹LWܣ5basU0l@lrY媽'`XEEkWPlԮpl+$s g\ V0J%6:K[:WJ.Xw<pbz4Zx6s Mj8RG 7F_SA,Ҡ<!W9yrQ4u'lH/7yPU;}f;:/<>U[ԾGCe!6~h];""hHCj{B-Rۼݜ{<8>5gj)m%;,T+2& .(j@eq( iHDŽazn}[`,BuN)80TΉ8!qh}zDE5{̃WEK,6Աs4qaQFaEp+ճ1d%jZ1eȨ"Zl9v,qe1JJ1;² +psbFV*<31vG{]{V~ހq[! !!Iۂ}]ν6~Z +zU?daW ?[#Z֡_G}5`v}|\dG,̤Qd#ذhsG U %(uX#Ysq& #)-y !@F|2o +XȒjF|40ICrL!aE.UD\m 9eH蔪I-/%a}& li+ r^/afΊR-i]K)V<*1r؉Ɵ~ߢȁPA2lBc̱7ɰNƦ*#] _U淪Tg­@@/B äPMZJD.XǾqN| }:01;$6#U +Mj4ZEEչsS)u\m'o .87EٯMA%iMe5@Ufc'wI!iCzD87 [I_M^JՆA7O=vA\Aېv"nSoCB@:m(RSG#eLb *i&l,s$,nFҶl4#xpNi%قt! d4*I\wmێn%\$Ʌ&?-%Q8~R6Б s#ĘKLH̉h%PY#2Xg)g2*=kv{#J~L3XmVʒtB^$"촾'{\1 M"w,aJcgAckNyYnnsDWz[!i]>hl_R$%(7%BD;'q#.k0ށ7ay/‹?:~~`rAe#Xe(c wuj$'cx +kTVฤ qS0gXL'өAEƴTؑ"ICO'EgFg 5QT'"/=ʱc4@BЎe| "5(}iJdHٴ&&aSrb)'jIOTs-b'ڤ?h[&-dsZ^as Rm& /J}ɀC+ DqR~F q8n1IG :GG S'(du =jצNb =wNxKwIqv㫎-?"Nz6 +;N|4R,z6;t&m4S lrC pdb(mŒ~#Wu "ٺ8X^6@ ,zkNjףߎ]ADp#b=$7kC!'SB1:=bDeEDC|j&~7KaB1;Tʌ;ɦ8 y>op-i;;SFčs#Lޓ]p}%t uSzM I# Biל<ԞjJ{a;%q~~^ǧ yEF)F1f0dpD3Al[]*/[n*~w>gJ15N8 ɯ8'yAP t:B0M'T*oj>,(oxĻGnGo2oGzl/oBvT7z#3l|8I7In7~NgH ǾEc AHOU OqDe=s39F@<-y|H;^^q ئ瞥bk +fIJ] Ga4 ' M9SwKޙ,s{ s9U*:=djZsbA[wA[spAcc 6]A9NW,A+50zٚOl bmqэ+ ~ o1a| s0?!"$U\%5i:fՏ$,Ԍ+o! -Y"J]85v,M%z8{x]ݨ[)QFQ)o|bX~E[Gr$k9lt +ZQQ 2id3R-_<~^ .O*ޱ$c:!`װ0)OYrr,J] :ڧI@e)EoFZUFYjGBՊT T֑-7@4j/` .A(DRC-?<.mi(ARw1^"LRb$Qvg}`Bc?f^maj=ME +D9I;Ga󛕳`va`T8(ZlGO빮'SӇd"XH4ADaH+@$ai"92gV"HHm,-\|HEACR ^&_d5Vx$&V_'nHv勷h"4հmx/#m^hRzNgڏJc|ʝIÙ2i=-MY7Uly;ԁB]t=f;IihHI 'Kl0.bLjGhv霴 d͗i!Y@2-Z^+!Y +E{I+FaVe 5j1 E_?In~#i6l#ּC1K%nqڞdI=BNedZT3-+p@҂7UN-Oeř\+(VE5%$iF?l&,-]ݠ,"@N>m٭"` 6kUiEFG8ܭ} Oيjﱈvcܬ u7ص2e k35ݓW9W, L@lҏ;[+8pWe`$0up(e4s D$%#` gd\ 9pjº/u>3SZ0 iG3 #gMԱ{;0;fգ=3d>wH@ P[>wqpލ76NVqc_΀=~4Los!RgN!Pgq.:ܹ*AYEiA^)ǁ|OkPKpTHHWC;<>#S7hG'5 Tب`Rm%Fɗڈv0DEU֐̭H+$fO2-TӖ =pl K]|MѴNFr0lDϡ );Θ,(&ԡEyF:CQ 8#Ѽ-.:+%<#d\f3k +::.BF4]bAB9Z8%UdžNM=\g'+ʐNnxmZ^{t0A}jWy|l"#B)hAbA 1SO2z?;G\F:֗}\}UW{ au&gMtF2w˲ZRwuɦ4gq/賯S6r2@dZ%/[ Nێ/q:򗝧 x؝ԘTEi5ŠL&t"?5i` +iQQo*sv%kh8#{yW܈X l}O~J<@o#x@Ďp!'bq<&_^|Ei}nt`>հ=JQ=Y3mL*:Dg1a}fs +DG?oڶrDF"6v$euHV8V۞<0I.<wiߨ+?PcT̄16Kf6e~`^jwe|5Cl!z-?\uz.=P-GjҮ4Rvv/J^ԫcn9jzn_M39pg3̧%&mę= c{-k"L-۱:]4 k3 EYS;Vwݡ]k 2HI[f< rnS#s`| gب(N4!/phYQxXa7S<[2 ]#SjW9t_܉~tqDq!oQv|a oC,sм٣"^3Ҁd2Ls=z{ю@o;:kG7Dwwoom^#X&2ݾP#%REYMJVA-٥N\Ɛ 0' mp}lJjnsGGWbGNF+Ǖ0^t^Y =eL"D =eH?_`80u}nIpuRtjTIս+Wߖ|2+vL}/ۅGl䟐:PKvCw +gPϪPqdD3`gk0KpYfB36 {X*93ΜkI}\1(>)Ec\ A2Yã7uOMq6z뵘gqcuބw#^ǟ/+d<@\|3> +a hCgg0a 5Dsx$rX?P,JTle* +MW1Ge +oY[mFB|u@aK(*&â,o,spŕƣKՐV +ST^ l[Xh:`j1Uy /f}xVʸC&ȠImg6Jie*!0O oL(0)S{ͻ|ٵ;h~5xyh<3 D썿GToF|$yz$"siR>DP<.L_ζR9O~)9RJg:֋(h'sΊ 2'KO$F4삷+Ӫ/zBdJ[iR<}~p2RNEDkn^|r* c?C<#Ee8Y(NC<#-E|,;wLz^8L0z\Y~MW.h|/ +jpqr{OՕ;5X6 Y<=qaw#[t:.835@*׀8:2 ҎyeWs8te-JkՁꀡ-Kn/RcflD>kU+&ըt=LGw;L7z!jΞaph-~=\9vͦ#5B}o>0\dX ؋~HD'E 9 O'EYQCC r|HmF*UVij:Y E + x^ ;Dz`{p{hyM}ۈd~Cq!M%5!-MhؑXȳU"KhQ[Z%!|2^P)iZm){jE$=>%$<۴7y 6o@ qX`L֓_AQ=I2mh;Duת:c/l>"֖a6̠"6r6_#ldY=w /fUx]|#IO ~~o:X/-+~#lY6|U]~3~RgN2 z +`[6%'‘r >t,BŖɂI<b4aBmrs_n%Gz {TOX4d)]2O4pf"4(i(t;rڔ>TcQ] +cRn)mG[ +_[xþn=ěCPon*܃O^7&iWHULٹ,}/NO> pt ϚZsB4q(o('E緱V-oEÃ[v?Z-$k*^fۜ btfs"`HxPf3!A,i t},@He7MNf87L[)`o'U.Z}0N+?.?D, }i ؊+U*jBBPVGJj.,.ٻjX] +;0m7 *5kI>ks Te~Y K/>@v7AA Mtvi{lXOS,3U-rζ˻3G +{@ݗelOq~6e'm8dGm+ +/ZmMUoZ\bd^L[0v|.:|k5rxpWsR;[Nnggs6s6s;"]Ym!npTXԊ[;Rk?43;՛=Qjp#G7 +s21g gs4ft^E^gi*k#HզyIa\}9Ԉ>}[ aKbK;5 ` +l9kW~>b]>D-?Bf.4]+Uvi T`rOdϸDGqiͨVJb,unNǸR/j4W.]ZI-e:XgKy"a)ZՖL6gHHJf-:dHox"`ddΐ:2HT?+/l8FX–7]Lm1c{d^f\%0E@.)#L1]y~n42&hE-p;r\Dd/!\GjD=Py`BF> +5yf0z-3(Yc $^&V-\N#iE}qB szFi[W'w1$j#9\dQ;Əa{DwrF; LUQtMKz;[l"Թ}M\x2E=oX4<V58.SAlRd +1Ifz3=!eY9gWO|nl0!]{Jݧ#a,_E+y'dؼDwˠ iVjdf??{+U5&)8 N&+ȎΔ9ŶS(tүYigBU&Pr6/x% *$%''텊0g'ƪ+ +L[k8GN9͞(q@2 [ң|%y~2ܷZ~u'IO +-m-tgLK"qeבVґۙ===zaػ0(KDi9S.JV Yp CLqT<Դ'ؐ.JX7M6Wsר@Qv}ag9{dW +bPŭ'/d)8P =4%#-֔a:*|t)&JٻW`}̢(D)H{(T%&+s.:80Mxv@cg<.y_ޥkgmhލ% 1"C*$2 hQ߈:h^r,=(ӠHF>NvnКNgY'6"'C>M r/O]/+y($^NhךHCwwU|u)NVs*+0RB/}?ABnCRj'@Js3 07Ѕ^ +>t^]hHzmh$ۇt9ȯpϚ vpMX&%עΕTx&p"֑[eWCG谱5-d˪fx42}#`űK咜p+@S.8'}R3Mv?򎜈. r{;R3Y&=IkFtxUDj䝑V=;TS{DOHˁڒ b#vH2qrƱp)X1h5 "-E-{8MԘĄ.Sc)smowrď)Xkm۶m۶m۶m۶m63wE|kJLu bbx]%My<\.|n#` +\%% }# +wAm)4 *-[Չ>k\ުu o*7{pWt3Rgu0W$g\j ֥s r{}imzPz'>PVX?Y}4,Xb|{jw%wq|^@wIn}f$Q)pxZ\1lOڬ|"s_r/T(Cp'r{LJ^6 +DKxv&颟DzF~zX?H,s]3>9 2=ucpTWNڧLg\A(0~Qϸ11*-MY*B)U^xr=b{>P>itK>%MUpOΐ XPw= hLJ@Ĥ9KXͩe}mqj`(2,vaTCgN/i8^^y`kScn4G,$ :@мaf,Ԉۊ`\MiQ}U3βPjg׭i#nf:nn iU;ڞ}Bը~06E='{R1h{vTӁQÁsV9(ڔc #kh]ڽ_!ˬ۠=wj8Y:q}Xܨf>9(ƴP~ĥFH455h*S`,1(h&Xz^CJtKd0&zlt 4'F4:0(TI"-p{%В+qD:{\Ӹ@Hm++mS[SλԷ +jԵ} pTFδ>O|,0i}@Tgu.~BZc +t1z5ָ7VGxW:i}N tl7`[CټÛ?R=M׿E:UrAVTCgLD $b^R3=GaAy4ԥX~$TkRxR;hT{xIJJ**JU`nHr7կK}gH&(~z#fT]n+oLa˛&L!Z}={¦*hfOb̧ؔor?txfuO/iM0$(A:f1|F*еD/Y~"K5}!~NXg:HʚL7:%gvd4$.}|I8+a=M7^,Z<'|D[dבb)(6J9UL? 5Hk%?Z 9Eh#kƂ׃,X,lݖ\9ۣþT7ƦS GE0ߕ-Tٽ{h]Qf̍#y648 N Q+cC\&{piY +XoNmj c T>!~ZgHBFk9~l9]8.2եN7=!O̗rf&֙"4jr7G'r^Ho~I1=6BL*\\^Ja<^xoX7B1&j>pƒDXjA0쓣5rc/@d6VPrV;y1@8-QI8( An#H/!_J' C!I&hT8!0Ŀ}Y65SA:  QAlğ8šh90Zyb9Z#կ>N@U<*܎IPk;祀㵱W sCO6z@6ʢOu +K;ҁkrҁ-hؾiHX~Q;`]I:_#-}Vz05C#CYVcH8 {ٳiN2].nWdۥ6ޑyptt`pӞD!Guͮ%Gw)ۓ{xbcqkaZ02лB$9SY֧٠itqFp[ p,x`64pޜ'i/Ӌܦ!S̜0fmw$ M\!.{ \c,|ᶜ +dW/prIcI{Kԋ0c٣#LqG`{f|ˏbK+btq MypX/QPDDà69+Xߵ!2G]|$Lk-&[Q"0B>xpsP.x߄S!ۧk_mδ*-EԾم:؋KVA`hh"+9Wr|52`=_Tы4LfFNY$ܖN; lG> m -ʠעigE `Mk +v;J}-YS2|5U$~LJ}f;Ic 홗 UhK]+[geV +WE{SN)+@'ai>v},l\~f[[}o}Lq:W`|mҸrh!450_]]/S=@F !??L@7}DiXDbXaORw*Ta )*LVdjJ<){r*R*8⹓6(u0/U՛kQ NY]nW C2גHYߤTH`)w)Ub(PlTiLnT0**[MmU4$**MvYV`H7drHXW<'DڶYVh4^7ݒs;u0oӅoY3#]3Sʲɘ0濫ӏvq~:0 wC; #Y  &''s Ew g.uMۓ KiSAHD,cg"hs9Md=MAMd>nq׼W>mMz:` `u)^+Zş6H1S:n5ώ!$X>*%D! ]K!I]Jl ]J mJ\>mhc:jo8b<-گmYL)'6,ƸTtV}ٴMGX:=l^qeq!̑ܘ#`Etvʽꋛ[uA4ޮͭ'GrNm_`猍jz2m EQ 2Mw~p\)^|M)dp_]$y-CGt@G* ya,N+䞕 n7(aW3V78?wfwoγ_o`+n@Nj /7I ؅aA|aE,:l=<]c2,V YCmB}aϚQv°wqD!iSV{]0yG.95SMpδ }4t +܆:@Pd|>"l;p@>u`=iv`Ѿ&6p>ځ=4w=bl</O=j&owr EHB1"Ϥ=Ed}q]tR>}_fFҬiiTxӳ뇲Ų˭1Y fYz#5IIoDH肢?@d>ِxЅ~wr~dh&a`BBYܣ/mJZ U݆|J, +jexˑDb/J.׀Hɦn ̯i) +FĸvvbJRƵf=EOdN)GL86(abfHK͔@?>?ժݎ_[A$Šn4i#:Ɛ)j|''J%v$0FZOf&Ns~?o<}8 %/Ki#7&Z(Jӥd){euņ*A`!#YV;~m$_$EPXZxbg%R%RE[*ze D#uoOy X(%)Ƭ[=y9YD->NZA\\iTYm#/fhΦX~Jk,b,pWB/W!{UmSY&t\}Ӥ]~?65a)7 +e!6 ]#| f %FQ`UKϑ83` .S0ӎg38_J oK>о@MA%u9`oыsZ^};ÿw#=:OъoYFs<||hL~ #Dz%͐G N@O{Q z n0'o{oFI>G<_գ 2_@N;S&漣Q54Nsj=w#@=2*mgPVx"t^Zw!qYP]":Ӛt ΂fM6JbM`+ Q$NBo՘i6gX}`&!ÁiFҨ%*gZEQ ۔k"57dW٠]0菵?.kŲfGUGq\8g!8T?HUq5#l Y`.e +dƥR>uHK>.y paTE2PV0FK'( r`n>p2J9Q-vxsHWu׵'E bL7NV}.2֞-Fsk0=m \NQ7/Uf_=NOTKe-NEY}lyG<ǘj^-}&{~lhdZ4؉Eh(xGatq#{\%4/j\5QR!idַ-ͿiMd :*%U7 d[:sӔECu14Fk0PJGrm=O#::.Q,~PÛU'mi@Scc=cL0 0gW=QOR lNB?`vKƼ6<\$׸X 'q<Gz9ZUjR\.|b0-S(ʩdagLfUc0QL5jQǃVWD.|$7j wjvZTNwWggC-8{ M tn(Ru@ $ КY˘Wy ݏ4~A0š@/ (0TxWΪZwo BOϪ,RBIS$ =bM2Lo^?Д}v7Kܟq'uV`"TAM*b*=33>CƓ=f,yw.Gޱ8u;f?'C I8f4A~:%RJ4:e@4 Pv^E@}l + ,m&fluư M6\'ӄI^_:DX\ɑGg6u%]NFEפTf#XOnǦ%^p"xۈa[ݢjOРF "H29P/b=qs_rB" 9 f"W:Bslֹ+x#uwcoǩ׏C Ӂ%eUqY&RR6eҼ<ƕ}wW'׷:jK?Z + T'Ü4ѴadfwYȪe:thC&m,ڧ_Q0F=FuūL)눭gh|ͤ51rV&_\ZG_zqINwemúnŴj_jRG ].tŽ/ˤ ^EЇex_ސݾ@?>J1)4-Uj77 uN&%MHƣdyZE{KwfS_QqMMChL>{3?- +}c~mC3+)7[**.~6PD+8C(0Md4Z]X<v |ж^қ>;S)KL@ +{1V,KBa)n`ʿRu jѹg> +Dʀe)k# KZmY5tN/#<1c6(߲LW: kq՚=dқc궕MӤ<j}ŞQ>/ⳓe)IvՂ R950"B!w5t0)[Q$zQOnd*OӶU_?c_:!DR:p`aaF`0 E*< 6DZ-#^ cF1F.D×b(Q[bqXUu|/Wq5V/ب0Ce|<ҵtbуAdbտxTk2mp_ ^BWûתˎۃCFZ +0 +bHoq\:G]WgL`G䯇Ȋ`y7 K IRO%:#\LΌ#ZCg+]FĎT޼1|xc;E<Dv0D|AXif4D84cZ"iB`,j] pǸ ۦyvs'y'xG9,}{c;4eɤi|ʨ3cdN.?.0ᘦqC1c +|a!fsۤ)N-^ k(1R*:ZѮF ?OԻ-WaG\Dp+pR{F~H\Y ᾤ@T1,g 0u+{ *RfTjCE +2iBc{;z'C ?EՂ\0Y$S<|L9\j2|Pئ-j76v)*?k4BE-TX/ʧ<)jR0QZ.Wc[/6WfԦ_ژך7XA/?2nw4(o4(Yh@aNh5u `F9a'J!ߊr#x s{F{[~`Et. ɳz`!־ky?9&)"`ۚܙV/uiXvs4dTk8T0`,Qg4!)>OMTTiD$ &1WM'Zϫ,\dG +dvQ};2JO zn ΚP쵷~wtbȺⅻ;*9 ;edafk$I'k)-#IYYJKR[*.{Z5<67[A/氊|{d(/?,%m4Cg}Y?0{rVV9+ӗ2+."8180-O( P oZۅgv mĎYb*c<;faZ+'}{<}wQ_pʀ8A,{U1=טa?n7 ]T\lnUi"A/y67݂Vί^&!/nY&iJݱO{0vjB1) 6GWzwza"}1nA\X?TPFRdR,~ul>uo0Vn7DTźXStةviSe:@m:sD + ;m1BcZ8@+%;j;~0Nh/T_BL~N\a\a "O秬㇚&D'dX٧Ų̌/^[E8Ǯ6>e鵵>3d(o%6nT=Bꍚa^C ~+8~~%0f_m~ON#VWos&.kGh</ +|dQ$6Q/@*m@.]!v D$F"Ac"+`6K + ?:nHI +o(4b8͊J<>JT{9Lb%#}MKI]%@߾[С+[_@=jRuBn&+kx}aYl'0L = } cNrBJQ*H*yTfpVڼdʲc,M <z,סM ↧ԨjuR R0ƞ8\d)GQ:)st⪥UT9dajIf%LU鍲sէvgaFެHb,]VI`VK!M'z^KGb,I m, 5OY>LA2NvPB$PTWȪLR8\knް=toaTf] +G@wvM:Ups ȔzBC>rQm 6Q+vپwᾒ5;?cSHCx'GH}^dCG R. j-Af*K+,ȧL'ʷ&)pAQu-8ċpFJ_(v 5kd/8:n&pDI=Vk9ƾWnݦL)Fc{^ŝ\I;EPuڌ|B ϋ3txUm[l3x\3Ӽ?0f)↥ݢ 2|${~lDW83̬,|Gc>fT|jGx@ދ!gwx.8dzPÀ1?'>5:7ދ>>"@ZL;-az1ԈuHg1{0 1q\=rP{n#p$A`6za/<$;];9[Ct;]j̘HXz_W C3r^@JulJ "ot"3 2`8|xOInR hOhf78`!R.zɡbMVwh5YM58\4joV ?sKc"9 .ܹ/D^B>ҕJ#Dqx_~QWnd`4vflG +@td]@ԠL2@Tӂ U&߰F@ÜYN8SzbXDD$^8350-}~׋8Ԫlv+Gv? +Y+JC3RYB$=0B7ڠt@xd. ' w!Θ#ap@*J6d]q3$O4pB$PBI:pCbdtd5Pq948ri%D?HKԋg*y0u>4FdfR)tjS2h/qqt۬FZdcZ,*U K o9Rpg9777kgf_|mk_2k8Ar@LIBJ2G@k 4T#=5 U8Lf(Bu[ VXLQۙfZ $ܼtb+oNamJ롡N"\،$ &[񘭄e9u&딐,ݜU(ݕ,F#Wul +c;"5 ~CZY=DYF;ceDnQoQ&c5#@xxqeT KϿ}J?|Ϭչ,Ef6)Eq^48M7ݺt1R32C\JyCY )BHz"ٞz`/iɽˢ݂搷ڋq2YeV 0gs)0uwyп|ZhjLQ+ ƵwMuYU$ligL}`GD*{nws-W{$n,_wݯ\T,CƹUcD kPA)Њv,*SJ5DTԗTi Ʀf[+h4[Bw0| +)#Sx}`\^ +do(jloׅWoC'<bff.:,߬ƒ0Q;IU,lǁm(;$\Dŋc]8-_>=.W(A.Wj,8 $~/ XzO'[Y};N'5Y{lSq~Krݣhk$?M1=cJJɐ҇coK_`nbtfKd\=&K +(ũ>R@] / a;_[C }%" mF4P`fEn7/iJؿ;^O,[Y~4'E\ipޓaP+~)XFOp q*m\ y%j7uþGԹp) +,޴i r3/۹_4GCX )iA  "5Wũv[i\F7=wA2Rd:f}Fq+=ys +ItϬs5kH҆hu&tlF2ES|4Mv|!EMq%׃awGv$oL5>NIRz q՗lvCb(o13*lt +yJA_AIq~8xtzj1b R,);oz\5?z eWrCTCEG %1n.. j[%4Tl6O &0{=̫yP"(hy-ay-`@Ӗ҈9nzk{=~$vCAc\=I?HSP)|H?]`a U:Č@z'""'HlMbl$m24Y9Sb'WJihMt 0dԢlfK l1S˒f<6AWITlW|6(^lMYITH6ݠV1\*YBjtgΐT#cp zgH3pl)H]B*uWK4X!A4ՋEr4XQJ3wCpgb^4JɌOo`v0AXϏ*}3A++#:B^ʂcAoFNiyag(Нr"M+0x]b?8 DeNW_J E$wZ.Ɯ`Jiα ɶ&6x +36d-fggvb5 kJʢJQA1Yqw@T +70R^+[)Uôq}y{LSMw> ຠal1iE4#=T}a r|i6yR!& +Z x3/S?S;QyQJ< !W#nwl(%5qS%qVmLc6M~14&0㾅HUP!E#Ud^fQLִ+{Ǧ԰ +"dC}͛f~FYj"5Q=@O0 ,410o ӟP<-;vs+>mĞOD&]46!$Τ4Xn_G9J0/:A/Cyn4pj=5,H84@ṛ=f@HZӰ<"G 1j•hζgN&=߬La7.j-"V;}֑Ve^P('Sr[JN]Z;'s9<"Tb͉ +6krxL\ bYUD5߬yx iBH!D–Ѕ~ļk|d=.+`Tk`fńV@W(X>kE&|"_le% r>w&Ӻ, !'_0aT-F<%_0萱 +yH֌+{HFAf',B !KHj:섚NmA/)ݺil fv9^R}r9@ž cR'PK\5)[-/Hzrr8bM@@R?J7T#ɵ +zzEK@FhH&(#Zd`AI N$OZ- <;v>jݒZɾHV,9UWʽa.yג Liᙻw0j8o ʐ#qH\HHe:H^9fL *Y*0Jhqen4M IqQ^^ t5s 5S.-/A,?sI4f)"lҴ.xnYaTpӳiQ$V)8QH94/IU?y2Y\DW;媏DIpSӲ589UWqm(BYqm&En$KF乛MnLBǞ0E.'1pU&(vC :Domn̻<QV8k$yl;_rc 3z Xk].pOXEz+8;; MX7҄k殡I-m jgԯjv_fgԳ8ںE1)61q{aWHl]de*3lYǼ +y45Bo6| 5qUQwh@4F ɬ|J-q+ra6^۪@weQAsVG.r83\m;yɯgu 2tHD!8\hdFb- vJ'GoxF'v0&Փ2QV~t`msHA'cvAWқWm"~uE}Q?yrM]V@*'gpGF<@ja(}-dT7q.:y;ΉADGʊ5nѝ:F0УxQmXt9hLYvoױxǜCQsp6 'ry,k+//|˩ MkNعkۯ:NaCK_Cجt̽HC O'}h0NKН9&vh]{:7U](v5,T9i!87}ߗD,1ox>{y!Bt"|9[iMme6;';],1;/8gjOX]p7JgPX/˳ HzwPk^yW4oxvpAtY26( 0>i`&=AԞL-hKhU٘z5q@&RaZ0IkQQ-WE@B2&9Et$ᓕ2U}=z\g9 OQi3W88U:؅{H GIf:  g$!O<{a{OVβBi+sV5=T +ᨈ3E)hn +F8 <AiI?0solT}(ԾsP>Ub5[*JzDu)_Ż23_EB|1=hiԤ2Y=j#;-ːt+IN_v xMޞ`mT;Gf$f e7=mRvȪVu_-0)=|u.r類).zqv,PukD]?PeWuoR,[P}fy*0u>c[%Q3> +c>R\ h\mY 6PzigoÇ܌4I=Rt5DRYi?_L*[=Yz㚪&"Nb U̠>!]ncꚓ!R^mXS>Q~SQswWo=t1w}o3~8dj 'pp{D O.3 u.mD$ή1D`,%20JmP'Ca Xuf̍ ?}+5s+"~G(^ɒ j 0A +#}QSesK2&-Ԟ[}^y[i^ZU@|/!ToxjGN(*8#%wdɓ14#&JPeAfG)$*3S0GOM@kKvH06~UY"nRUЂ**l(;+^8iMHcg:_A?qN)WCn*ίC8A|FܦƼ5al&cgERdM OZRT#STQluN㴅Ac +0uEK@>dC`IH]  .1.;8]K!6(K_>BNt?zC*:Y3B<.[D 6P1JR :(+`.ZD} R#(݁N1H$ 說Ze].+9 +: 4*@Y(ݡk&2"a&58TG݁opq B77[_[4ށrA08%;ٱY9<;X0OLXvgсt %[/;u0s .&<(Hzm0;V꓊4{]}R}Y[d5}88,[ЗVKݪ#^M>zgr~tQVTlb~H$áwJn(v,+CY%y0M1&ݷ1!G,Fvu{?qR֢vᨀ@^xzwJA>Q4a1#8-{Ȗ:(bR/%bnoǙ["䨔;ҔeVjU9h$:޾ow>鱸~.'2Igq/[CC[YR1Abv32ϲ4ef/+O$ll ii}W%u +K"gP{C'Mf I(Fk/>`'n|1* R zêLHpb}! S +3 ʬ"u2'؂{A1](z*JN̪D:bj +>ô/c| pÖ>v"Fn(rւpEo /^OK&d ^`[Sb}d2S0*o7Clj^EC#IغٳH5oyI#7ƩHI.dz*?]h+^ƍha2)0aRGj d* +1/-PGEpzIG7yQgG6y%$*D$.,'CW|+ -VBӿƼ 9)> )Z +,,.(w|+r +G 1x(q }IlijAW/ $ˠKq6hp߿ʉᶧ|8QDgVE KwT3GW(+d(!~6,(n +'{0{SJ#J%|\b}Cz]RqymGϭ+@;}Qnw`pphlQ).>kK[qIkP K&@$иTh6Jך>z0ąItC1gsnj; ݳPȖ"  sȜ,ʛ,J"Iz|)[ۛJӋ'A]GE^rErfҥKRHS%S%t+Y-=THehq +7pEgPnfy +.oS^:gjDgib-QzAHqՅP-9TE"d\YTy5*cY2Mfg1B]݄+UF99QynR vQYVƍؠFq}0wY;K Xv?C}0>W ]T8=5N-=V5“i9n)U8//NYx>*V6XmP$n5PƹJt&-+k_4\щf,O-@#y+T`Z ^JIgH[:O;v(`1 2L_P||1/.< +0W/vug3 PvG;/Uڹ {99΢G.kvXQM^ Ng'GwHiQ2պzÊz夅 xq1FC:`V׬:;X\K\ +q;{DUXF2W +)qXP +UJ4n=/ku!qLN @ %o:8:ݾN^=ZN+Ie$9=93;W15?_. +),x{n]X>n,OW[`8z,SWF^Iq/ IuY[e}-.mm [=9[K7[--gǗ_^GD, 7E; #ו[[/A +n%̄[^ϰƉ[ޕٺagKQ`P m+δIl w` F$b1{W0ӄ46Qn eI}(C=AP1#OfA w.ZjR6[jb+jlqN-{St}²4){F\XY2`Rn3Ui*˲p?.v$2 + +.j1xY7h/8t30љr ĢI8Ӧ +OƎdӐTxGJ ^Qx#&wY n @DɤCI_C<V*S}iGJ`ܱ??wߺC8wQ)4{'d͢bB.'" +"gsƎD)oPbp 2mzǤ*%ȔJ&T|@+e +̊aZ 4한FAz(M4Jɳث}jFx5R<) RqqV3("s Ule@U5 +Zbfn+mLRjXgy'׮iVUx(+vm [>SE, +)HTV=n#ɘ.$崠@Ca/Zy%+t@fȲr|J0M^ol;@ }h/CN;&'X)Zk6Q8䤶"mti! ֮++s5ep[saBfm]fUmud}`yQlp41{\%./9YDNGr}NI)Eõ3;h69V6KjZ8hRKL7Ǵ#Vu=*gf5T r:dmN|]T3)\56-yWș4P +L}76ɴ?&VAALojE f;dȚb&gPE +igb6lhs +T솵`qZL_㞣lPz#~z:X= +Va]ag|dlz0}0sFlξq(Cs37"ӟPLI:\m~lfmDB^,; +@2j ڸ(T5:u8ǬTl*|V!;XAܘS!AT#ֻqRj:fi]2^,Ӿ[__5Gq%᝼؝Gܻٚvt?Me(M2r49݊d@K%#mk17tP7QŭDukGD2POsghR D F#:O`w_{|c۪[°Gg%Tf +ЧƏ3vjIFP9"k^ +MD:\3B$Q3îޣE_-aBhzh +h]]8I'|Ylfys. ?|T⧅ j'Ȳ +2ּla V35qYf Gjzs d@_mG- +)|=zH2?0t!-Bz,(ߊ?Ļ2li'X]Wͽ}V7`\|Pvp;"  +\ OQ1l(tw0M5n;Hw2~-= m6c md|:Z㰏K]5~bRyѻzԺk= ʬW>!#8-ɳ.GG8yl`e az|:*P\S`ϱGyR ="=z:qccbL7e#Z9K\q~HYqޝFx6N|rbqpH|1JA`ļ!yLyf}af4bܢ޹P8I8b* zE YQwfF|%d>HrKq?@}fVsPvt␾d4cxŤ 4 +R!Yۊt%^r+)eRi02;V];bWJ˄aX?~7w pw-ww2&=sNSw( H:H?D2j0@k3`OXE$^ P˟FxOOo l@ZF􎛻po , ΃7 +u!;|R~}G%0uU:BRfko]LIn8w{W:[:t81U:!e'gW[OL#_5\#Low R@,zo|Z`ɨ%\@ckivWZ)4ˤd9Lllb(h? iug7d)t3t|^yI~ + ;[M;BаAKK +sfom4M&?ba~PzA\x}L!_@ia2)CqP8--ǰ |)͚f[cS },AXH?+HiϜJcChnwZZ)}:0,4]2uTK;M`Ȧ`Jf6P!$K~8ЍHTŦT'0&'fZw)d(RH$R"R/RR#=VV8H, 3xqXN!j-pB\dJ-$+cYpPA pj +G('(m; Kq8CLN8bߴrXfrcCc3X`L ~ah7dswg~eo7hJ}{O,~b`OVcڄUEЩ0/v/U;wuYͶ" Y):5J7f% r^x]ukd9M˯'-5@$Ro7IަZsȱ*Ώ1Jl~Vpb/4[9.79:ԕr⃤CJ:M鞙Џ^8h/{Q/ LYƤ4A]+QR5ʔ*iqUDNVi4=Ff:D+_+ATp8 +zr馜;#=2r>`njM#N&iԇ|7! eFkHJ)+qOsUBw VcdIS .!?+C !~dZ-$ +4HW`$FmiźM*Zȏ0n1iI$ U_ 05aRA6e'b$*yU~es)p0ߊKsaBRwg,Em.ลrJ?D{7Cށ@Wo@>~=OMVa+C(60Uy6xs5#Gky{.-ĉOBuџ=`z(QVߠeo8D!oܱnL=0`J#oE%Vj\20Ni77fZ#3>| K\- aur(]Qzp?.Te"^j(Ym44O~X(ʵ?~Geט4sHB1AEB5C@o +}lKyuWG]5L{W R!6 \.ʣʅqijHݡtU71N !>|@:x fiG@2gR׺Z[Ѵ]'A2w@憍3&k4Fe'\bfU0cnwa+hG>i5)/87sN>J63^~~o8S!6cj$Q[ 鈘f齐 ˘88vVy񲣅G<D(dE((\IB_%9rubg:wnz ;?B랲I[v%m1%}O /Ϳ/O+ݏK|P-fyx -  1(!MUّ.YMsbgs܊gu|FԖᑓ,+z["ؖPxFtWpAxFt`Bsi+z[t+;LNmwv7X ckG1/ ã/#?+{|<,{8!.1$1v̹!A8A9O)`уHQHф?2ᑅHp|EXK+֛msͼ"~Oc_`'/O&1or.{{Q{r..{u.;7ӗQȯzNWطOqFo-(]I)^a"_Q$rހpDrTD^(dCC&B9S&FhseUke'FI#]a(f2XC42Y(A(s܁yʽ%S>H)&SYl j5F?>!>XRXL$Z_DUe1XAsIHD"@DE=Evܱ2ZpYR&8I]> A]h ^]j_ A]L'` "[`(Ob9dyC4I)0 +B[x \[p_QLpbT$\[B DXG$ +B[h_i]ph2KԦdl}"[K"[Kע[K٢[F,7,87̖rf4. /ye]θůOE0k{0n} 0pn} 9x~%\{:9˽XTGq`sbzE  Ԋ\t(Fq>F*fEe+M |ИGɪJ&ւ_JJYr^GdʪQGs +ǣG (J14e4#+FHyuEMxS,Ɇ^fENb:G0ˡVn&S91zb $zo`$`%1 +VbMzb jFM]tc[W@/w ^Gi9\>e<>F7On>qu߁v +$Ïmofwջ%)#5e"ÏKޕCgUvT3L>o%qJ{C<1*X<OrKΝW^G2UդGwccbJjw\=ƹAHN"XL +S,3)! KRH_)1~.aD=TfIPRʻ&dQ@;3 4 ~hÄ)neC%9#ZVFkT\ֺ WA; U؛)5voQ͎p/B4"G{lR˜"S@$+8T+\YDZIDkyz0'h"6~B +8^5^&jO]Vq, 嚠 E,Y*KP:SUĪcUGA5vѽOۍQ\%PER7g޼#< (cepa`W2ґ*FZR +]lW4""' u(U=0D5ϣ0lcY^j<8g;))FڼK,U<l=<:<47.Cu^ܷOoMSΥ? l㈳$\ݏ6xSˎRˊV`Mm 1饤g%<"?ƒ9T[bQRQ<oǒD3;71u0؁Y8e@6 ⷭ!jH{fMJLv}Tv!@}F`ByI`\,ʙ*1EIgw< ih ג0w$mU)\rv$L׀+j 6ҙ.]D'r)Iu ++7ɻvIAbRұnr䉽0$1iY0x>(.cq9i82]cM[}e@ ֵTXXȌIWɕ 1+Mj+8C|G<j/8oLx+Br,1r>jCOd,oNr~ik/7 ?>m%^3!"^s*z4WI33ޕAd@e t0y byH:ZXЖsh'f;$"||Sct#}F #`D ()96Nن*+`U,C]36{m_Pk,~#4 M=[ oeE-nJFN*cҋ (klp†?틁pm͒ZX/'"{$cH4TCm)O Le1,b +s5ǠB$Pqy;.PaGB ymwXP.U/qYVs +U8߶5ց;CmLᚋ@j&I ʓF7EšN([z6g田 +(p +>zEEyJ2CG\S.VX=.-f5\wZȡnJ{$%>z/{g &(^n0UL=˙,JAFC%Iv*K_O?5LP06#E`n(Zsn2D2"95I$bDž+L\ M%cpQ^ &>$AScd'hy yW#aq;U%eUzx ĝc8uk[pF#4jL^jaD +u9CM"_vȹ,2Gw乇ZAuz//[tHɮss ̥N qyB?Pli׼xOY's-ǟKmQb^D>99JCJMg #99L/B9N=(ևݡwG *=А+@jWbCl|b{VuX"x{,҅`["#,E,uIrY"x+Uc'{7EQSL'0]UB^i%pdaG4[gJM>>6 +'d\0,WZᅄP&o[]ϷrR~؅xXRvKCefӚHzԥGvWE%)'͑;啛9qLo_"ꐰ\3.L_p@[#C?LWHNѵ +O +o1u?.@T L0T߾ Q5H7ZYdAX79Bc3 +`t9:qԾ u#=v;Q즅?4 +#%DO @(&'豰iJ?W0{ztBY3&wAfr HL>eT*^P[@ϾGVV*Z)EFPs4afWq3,KR,,OcTLW+* $O}&27Fo6xLIsk'bߊ"[[vDŽa6Y͍"Mi"zx*QQJ,Jڈ/e,LZfOuO>χ/I9vz] F4nA!˹$5UC$  Vö# -#!re;7^'˞Cz5\$yzq ^j&% + qRnm.RF*9h(х-^\Pa5Ǹn]q +^Iە*ϳE?-NyѱgCJZA&mpe0izg%={Hx,;{R lDoCzI?Q~[;SD5lE9u덎r-ji[] 3ucLpJokΣ^F@jj F`~>pvB"և#3z҉ |9A|.P^Hf\E M`պbn4hN. "wLt.owAx)Cl -TN.wrqðx{)7pܰDL33c{dvqa-0²[a$j(b aSށ ڎ5_fyCovnk/hiwFkd*!uH FzZ\ y;:slYG^q^IRqVpDBv@|6o"/ 9hUSoOsvpvK9(E}<ؽU}؀/PGH+xؖnf81^vf{LT\Ġ3>OHeQ搡f_JE% +^nZ xG3p"ƹj%/N]8{5Jxvz ~ H`K7ż?.ZswervR"&@TU[kO\cdb;{HXP4@P^c E@v)֋o.= +ERry!3V-VQQ?>44mƼwXKVʇ~V>+&8_kewh JEw"C8<- +yr=|". +Ią^T_ p- y",z=sr~\95GJehfQǮU nEni:XĒXšn'io;Vqxrw\H Z}m۶m۶m۶m۶m훙l37U{SI'NNTUs46vh]ŭ~cRه1E *]D HVS\=G\\m`H߮}SpKDN?,˚$x{ZiE6qHXLv)_T.ELt gO%ЖЇ +& *Mrmg)[@#0Jӕ0[Hjr{<V\[߱9tl&8]'J Mv Wb{t}gQ<᝿^"˽虶n@ʽqaHSSMLVe[.=pS9jyR\f;n)qyWU>#,|C9ljW'yhlq_P%~[~EpC/qmRVܨ̋Ӯ%b}_qa1YIv!2r40s2.gSK+ )w]Y32c-A|S4@dJQ<#ʎ;B'BT=pQ{IO|#"μŴr!U}1+9ړܰ Ż#Y; u8=msƀ%((?[; lb!5E6%"L߉#@`[.isV-M&o9< lE#AR]r ǜlsfN~^UfMM4k(kG:c8R.v* pxuPy) [։c^yk# '*P:Z/V*xMah渝r+6 53F:>~'QWE!rq {qc]k?{G V leTQd9,݂t.2fa{I6dWj)a9/ CwsO +As^ +BD9= mQCsQJlECLwS 7褡ב75%e zT۹2MiBsHϚwԩ癝. oY.ܤ' I&xbz֧ š'|NC_ق ẙ#'![3 +,fo nFX' r$d7VDX7 fk7 m4C7i" cܵ&8Bf2iL#P#NfsLXW$eeh[М'մVvP|Z9wkͭ0dp؊ŧbHONB i :JB"[ 4.+ +0rh61pA1nļ@5=w/µu/ƞ%ߍň^rOR݃Я<=ݞNK"v*w,cXx9X+fK8 a9gUR@y\&Ϝ(5($ +f;OlB vVA$, QvL(gH̔7`]sP ԁ1 =* Tdn.rcwAKKBY˞Aϛa8bYeK`NezŇp:s`wJA,1o#OD , XhMۄx5a`nA=f6j(݅ RA2]!Np62eh2EOb2EI]гg)A9N}kS:Tr+ȷ.p2 +fLlmwrǡbhiTlTBW +p01ׅ!h| ve҇>%gw%6{7t6:0V~]Z t@ڂYkskӇmgB5뗺Vp[75jփ^Пk,XlDSʈ1gPg (mj۠~5Z\fJ1ɫoZ/~5^k[jMzm}5k۰fzj^w/|wƝu PP"3`(|y/]rSr y?~4ddhnxe7w,WX@g gT uhn=}OW3a e +Dw6hxK,k 5c  3TyjWuOlG+7?[R~XlI~LTYMX:.'ly)w?/LUr>X%>;TO^c_JcrDn%yBss|K,tÁkGl5n`>}lml=TJ#=xtQy+|Z4Y#w& 1Q̌1}Ɵ87H.:ÞCv do<ep|Ed6HdaS),,Ib2GKev0Ixs/,+pEi 3Y:C*,kHi,5"Zfz5հЦ`PHr}2HG7${ԟ tZѷ>,Poӌ/) +(R5Jn7N< /R9c_8 ^t>XE?b[UM +ؐڙJeH[|Vyiʥ|-B}u7X Ut晟C7;{]`Y!zYtK@[BwYjA"%b܋RP}bUrJai説pcjBҝۀ: +K][i0D6# +9@vLèN%In:EJQk0;)I{wZ֚4 7fYԳ1tXfsomx=d$jm{5W#jqKн}Վxn Ֆmpu;ۤy\[p˙{lE =7@;=LE":6r66G3j2[ra6I줤jK szurcҹl^F;Fmp|y9m3RPm;hx~:hȎn};/Z\iu{h 2\Hu{ "]!*)Hu{NѮZd:ˡk{[!k{8կ;Ͻ_n3l?Em +w[M~PBtofjt,jU⎪?9kEK* %t.HƯ49XϮŴO[` Э" ks/AQ:Qo(;C0t|Cq~,Ԑ ڎ\3%Ҟ(.$ՌW2'a֑F{4'µij SOI@U-wf/2(R0Dh y]sZTc}zKNw]Q5˜Cš|8J/X{E E ^KasC7 S¨=<P{4.\ͽ48,Wh74+( ([ .V!rP_\.fKZ\D|,Dkcd F4Dk&c+u~ ԩWF&vEКFnڦ}cUWc7~snK5p8U.8[;~Ȧ_f z(I\GDi6$@pU7䋅0כ󺨯rhsI.لPM^gSd=l?s?[L}6 +g'1<I ʽ?u? FC`}{p eZ1b]{ֆ=ǵHaEvAmva&q!#g+})0Ft.0x~r:lq<4PNnp#^1#rW=#udj+LDMQt #ZzxdnL3^ i?(S"I}֧iڐ},L&yo aŌ*b]:';puttu>FV1|] ?&gW4_vvؼ)/;vp>H#dr@#n12YaASR4I=H~5xLZpZ]߈`LZ7ȻVMJ-Xbl^'s _x֯;*58N,[umV8h[m^ZsY҈M#S0o$c\-I*#G'Y` L1:_a Bs%cV8xD7JfkΟcrtފ, )( 7pwzdW iޢ旖Ēk6K0QpiA֥]<k=XCgLLI3n&ikݡ\_)L hE;1EEb^ˍhE:)Str3ҥ:y3=ݴdۺurײM!5MwGBB׮H]K'|SyґΥ wxE)Gu#VٲMْU3uC7(J46:%jZ֎"_i%_S+.Í@8fV.WւTekM*_Rc`)CnWL+_ό^5^F[Gu[q- 0ڲҠ7ɬe<;DCo#o~*yϐw(gW<- n!oi{k1#{8'%{wiW ++Y; ]ևfKP^ +o挝;mK_\G%og_܊7 ϤXxQ.2ͲRagyA. +%rhEpȴb]K)]DɥCZv.Z˥C֧Z^$%C wE/\pץ׃Kл +_D\c§H +^cѧrvQvQIva ,ƊFc-څG-e|#)Nũc-ܹȎloK緲[e#َoI ۊ3܊YR̂e⬪JϲV͂Eg]<^Ir NrPg <ݹg4"%6ٕbgmկg5nAʇgvnؕg ܲgDn3srՈgn'*On>B'Kn9ߒȧεxϺꉬATvgŒ'G$FeUChFMBv2Uҳ噴OSvbۅ,mn\-w͜S3,ܧOE1KIiPŔOFA3ҳ(ZO ZgFM[˧Snvm[siT-KyL'jҞ֌ҧS`VwKͩVw[ּy!J 9᳁?ח^!$ZY)YWmGzz[ɗ@JvDz| b ( h-(u%X|.msjG^>}a +/l3m?m3nS,}&a' +8`K(rAu. sLCf>n/ˆߜ"Vmtn:xVA_K"4ZTs'W_7/7t`5y:ϰ* !d ~B$Y@~bh +#dа4FbgF:7dc_8b5ܞg+hYo:gɑ'W*Y}Obl!i4 @O0 q$͋lxT@WW|W"96x~OI +־cZ)E~XƨcW,997f uXɠ|ܾ!t; vʀ}x8m[t୾aM JOs-mS t+FNjKrO~ _ZDJB"q TFAo9W$޽gp춶U\|nKGB^MbO=^ +O0ꬁ#F /x⎗% l`_h#-Ǡ! 뼵 D.Ծ#Cvzcǵ_JZ=k3*?>VM $fKIL]O&Q鷱)?'+}]A4iձ,DŕRѡAVXR)NeNBh4 ڳzC\q:Iߧ <'siP\]>=]>'@љ{x q>$  AQ+?ƾÉꠢ&Ǿqz~ThD_+Y}廭o4e5BGy/X{pt_smFJG5AX+GcXHQ+KK#SMT=xoԫ @/WDmD~Wc %t}.K5uw~1dvsPwhZew~q>ʼ9 @ yPX4J;A"Nq׺!>uv5.&g5K &lfyjPI]c"W%p>/Ub&h CއO HP +ĈNTp:b|ȨU.\P +jzkN0/CXw ,Zc1Ӫb `3b p7N̑q +x6ZF8"^ dyc/Ah6HPf=P5XwjD>XomuCJQ: 07##J؏ҕ} #O=hwpB2~#R.l}14Tfddc99 uD<]JE}ㅱKگ8"d Q$q%h= { M93fn3h|7}\+,(Tˍ) )5"3՘Msj~tܔ HgWMy0cGQ!FW5^3|dbJ$h?ƠAQ#-kEa =#"(CԶ4V Zہ_#s2riͩޝ=2[qc?$hA͋z#v}.bvmiV=4'hL*(Lh0Mdfo^i+ +]"U; sMܨxypTȆ"&GSbH|Fin-L/NtP$R=s4i!N%\έnI ˓$s(1>>Ka5RHf5۰2~'j~L0wP+5&/;$e1Fl9TCOܮ,v,14=TS444_>/sc_j- JDk".K +dc-6;j>1H| rd2z8|u 6O!%J"$IjVqihFCΝZ5 cZ86HV+%K3%K+卍]reEqPqvWy_Jf] Ì6iA??Y_3Z9}Ez!o$(aaq4ʜQ;Ӱar 9T2X!HkD9r}z0Io'ް&a!ʕ[C 2ֆ! ke!]kֈjn!#Ieo&} SWli$I7C"/7 GTfRW͊:a裋OK78ϭ9 D/g2lo;Cۡ +-ȞؽHR8ChΛ,{9O "3 P ͝<$l!DEsoWSσ ;Xu<+p⽞wx'd7VeJwVW_u~iG[dt!8 JKN (a|]vYQ=E^1,I ]a{]]=--]Q{8x{s9g\+ZѰlOvxD[]xo!ixC;\a;j԰:,Ïk$: <$xZɁf(!~OZ~Ґ(MxG|LOMj֤({{:q9՜(chbg^_ ՊZ/ߌ<rO}o},Zjo$vUS OSYj”DdqDEQpuP,#Ήsy:Qȝ mt"nx1ZDTebhO +!#;ByW;ERTd^YGYL݃d[ aݬ7W\4rUQ󖳍 B[#O2&9⦔^On9|P.~&7sK Osݩ佨Ub~Ay1w+3Q& JBŞY~n_['I'K1ŕL6_7*þ { 'i+{ ɍ}t2>bG*Ah@yB+#9Ho0!xjxOĹ#JmBR=~2N{Xܢi"!\bqXj*On0Hw1Ěptp>"A{'&zJ(rݚPkyb3߂ҵ,j#S Z3Yoԝ|"Q*do%vDv= 7UuAH d&1ܠ~nED!fmB0Hz{vk +ĦЛK~qFT 'JVWT2!6ՏD +㷭EHJr!a KEbdBl ez1uP=~\x968T'/bq1fd8CIй< +~~aP"0.Z$^T8K%Y̱˧K5d,[TwHŽ- FLQdNC Tǭ᧔x{} rV;$1; 29 Wcqy骢wuu!Em~^ >0TYɐEYFM3{i{Z[K{N +pj߆flʷZiEײ1ITy]Sr:G$f4PeB +Q0t]~u_4pG7NqN\М+D|#XgPu<.~uRԮ5; +:AV/H:Q&QZ dAФ= L2yB-RoH5R=Hާ]kӥit"ʪ;,:%S-ڤ1d:Ycݺ=:yʪxfEgRu"۪{kubJ=y|u]=iŏk,vLઈkjfT}|E.:StR+vbXnW}[Hr'7?w_q6f|s:p*~st;jW7ϛ3׶9mku͵rn\s +ǵ>0K?#ܕ`j=vs;X`Tc1J;1JUPntd 1Bܵ3#uk7 !t]5rw}5=r +s%Tck '{ȳ0cFwƸvZCx6Oj_Rln+Lwx)@l-f]|L#$Ěug)Čv_ԝZ%U)aҎ>,}UZ_:Y`,ez$ܥ͊ϳ|pвf"Y5,]ۘ^PQ+6>R7w$X3g~ޢCnX%OX\2R%O oe> + F NTNCA1ד+ُR \zR٪UE)yCЏ]lGcK6Vvv=/e,f5ei҈ء W/I#_ȏvH1pI>Fq̷_ pFrR~z\Ӳ1Dۇ +y;[&շ`CVEN~wE@.|ݓEOYE@s.*{eX3;=F;!e>D|(I.gng?[=U0*J5XkP+[~ب>XK5r]c`N5tk9>eOnߋڟ.Gu= v6[q5oތ:ccx @DIp`V}@lb!Wx~-nJ\â;fMEŁPhLמݯ7$3ko~dJv^0#~#>DwA9pn%9pn{3\4w}=o}4_j>#o D/}9:nR]~ۀ>o}>n"7o~>]w\kRxgrAֲGZ!T3`IKuV*-MI)X Ԧ}h*Ӎ&pK@U }eu'1j̢g]C4, Z&"HR]pԃ~K9(ąXVYE+Թ72+6biVVžp5JD%qɧEDF3l:ͪ唴,+)>a#P +H^_δyD,W")ԩð&)#0L7I9Zv g(`jw6ȷ|AE5oFY&WH3:|LQ`/&l)eaIWQ8d{x7ؑ2k.!P5B7 ˋ + `+Gezvfٸy۾+E+n* q+]6_ZôA [Q'SGW[aOSX`EO,S%Ǡ>P{#kq5ӉsG$P"i[me:N!ZפDqnNOyY-G+ +ֱ%Bo-uwN˺)8{Ub\K}4TJ[ "i}:k)UB~dIOaNä5 ! sGb5-,c1VH]$IIɈS GC{uqv~lk83}Qf/';cy׋`6%vi$Q#8ThqdVN+ +MA("j=oߛVuCY^Vs(4T([ Y(gWOY[9NO cwN?pnא^]ii}nu6ɟscmKuM{}9dlVk ~)2k Mw v-D6Y弬$g9?ݺȬHAo-%e7s(H_&0'@`G> +3erGYg- !R[BHb%cơAnŊ6SfbŕԦMۗ❕иH!̀Wupr͞V[~@zWoq]㛁0m =r>''<6˂u=vtǙu^yi]a3l,?W9HQWY!_Wgwiv[2+UC#+> wv\C#+ݑ#gBc L:OBbՅ E";%2]'BB?,ffMDyEɚfT˅U-aH+6y-ٜ#֨مŏMAjzZp*#s+}F4+ŘT@[8.@- }KX{Q@š~ZO\o90EgI{l;`m@O]8]~3KX}@5zvH>5{H%ײ5(pFPu][!6{;8++G_n?b̻!N$#>Mee`K5=sgkaMF +Z`.+v%O3̗6g( <3 sjAkx@#0$rx %P)1i^%]!!,S{(#Y'BZsi)#wYԌ'CڍqgY'DڍigY'Dci*CwYT'Eg*cY'Fki+cwYԍ'B'킷+W3Gߒ4'Ґ4'tO4'Y3RSͳE!~{?Wr.ˠؖƁ=L*.ʢ4{1*t{S8ljWZW~zMcV`vUtqTH"&DN90DgnE+l{@{@N\v}P^uRlpBZFL7QN㨗6Yc^=%eͥW1*]tsϗ+ˈl|bG[f'*sQYvc-/;%GeKb[ -勇7q Mŏ[$?̈Ųqv;rN1+)ZehSIM2Ѽkꍃ\kq + Q(Lg+z#-'Y+g="=nVf'm5’qqJCf/#LckU<}K@C@Lc~9jLf]sA/* 6g[|(bk$]òc7usTv>Z.͓/z7J5=jVV%.ht~|} %\] r\=amU,ǭa!n?sJEoTHXjPsLg[bdxx"CcNң:O/sRȠ7#ЎwqCgC҂v댗࣊ŗOw@;S] :CP P#7b'WgS47Ļ_ "5XvW "7c#l kAusK hSÍ+x P#-9Ak +֠=Ww w>&$`  1>&_ چ^$:FEt +^ǧg53F6Ή5G;% x +A玗'GdpU Ai }ƳACz@k ?Ʒa>ƻBCxw lC= B9+qs,sHx\M|A{|`lhMx/&`Mz|CgLx Z\s._C71h7x`/#J|v|]70`/L|/Ʊ`/MA +[p~jޟ'ZfD} + +2S]1 +;ȿjjl3h)Ѷ x.륮f&;0Uӗ!@LgoCaJp"iQDhc%T6Ξ3止г2*.zX, cHƅ7>=L_IO2-Ȝ !39cʜH6My$PkP +b/J$H.U6ő>Z*($6XsM)1J6*0BW~ +֎:y;,C̼?Byfk6P&*-@^3`9+!Ygpfm[?Lʍ(tk-SGhK?| +Ќ@AuV%9"fٍ)kTLï'[E.Sۆ/M!G3¤aH\Z ^w|l\#,;+h"!h<ۗ2D" :M^ccmt<ʤ ϝ2T5Ų_5UL':kPP\~6A x%D(۱:ak˖|[fc&Rı`Iܜ8%%8\wA hSK'$?=lC5ϓO&olϼIXYi +&eEߍVjjQAyǣl"8sg9%s(2+sJ [~%siF2S٢ m[D** +dgGc(-5YC ^28c\Ì>錨bsbuo^G ^D<4˸MvSIwFrh>"ѭA!Ec M'7SWE k!T0* "L"0Pu"8SWE冈a8?NZGy.[ Ԛ^@3;P;8Z6NAl΁vAvaaz 3v =6'~Pzh}7.wL D!oh7kFɆ?fn0 N1 v0Al3+!{ܴB!JrQ_@4ܪӄm c%+bvp{*#U'eXpVP}BZTaXIв j UAh%F$ ]T:CL~%dG>hfN QN,[8sCOsa|!##Rڬc%ܮiW0m0uGU+>1k9SkG.s0vjҴ\.'ɋ}54$lO`Ѧ8S; 췪Ý*7K2'9!)^Ҥ$ IQRSB3-pQRZ@GBVt谈ꘕq̄XAbJ%eDV2‚2(r[cLK*kطa +B362#6280ZRN"0b! `((m4b|ִ%-S\VA7*"V:UI*oymùSBBZ`U MVh WGgsfV" Ě=->=RKBRV^ԥVE$r4|ݛH斖:k /S6 X fW/'/&BS Ζs1%K/;X ҜF>Pᡉ-1Ӆ)ʘvUV6(T ȐH&L7ůӔ$TXSd&EXJ k:\$RLO!XmL} + GĔ.Ԙ,#%%MH15BxqKB..ۍ0$)6A {pWU8Ph[A/8ܛ21!FZh {ؖQaKՒo04M40D-#[X1-`hl`4ZT^%%ҰNcdcd$mOٹj&6ew[G)&O^cFtZdRƑ(6^ ,ѮqڛEFI ̛㾗\H@c8}X-Ie;1J16[4I$( X'45Wp!`, +K6t,oo66d53 ᓃNbQq8`]ż;˃)>Ir7#޶_\%edҹ;L6.gНd;>Թ.1|rZ]Jcg( d:ȍ.3y>%/D̞w\l`ԡ԰aIfDu@s:!U gL݄M鲧C,q:ԊX7cܡB78mܻreϲcS9ݔrP`md1χyCxiQycM-UG#kaW˭ kQX~񋯌tF$P/a2S.rG?mVC@lylwn~]C75y +.CDxgGHS2C8~U/K xB9BP1{xaĂx,b1ܫx x1뽣 +퍺A{1|=uf|dt+V<ñ~xzu.?XQNo;+AQ`�|u]b~A e Z4 Hly2h lbW_{8ǖE ?J:n2ݻq0bGi3[/6 ')s~;^5LM @}#nΞApʙ> +nR{$B)2͜T<#Jp +%f'9WA +v+Z\^UPl)G3K B"q䍯J8lpڝ=z>Kyn딟JCC 8҈ljk1[iE KE +L7{<#nf$'*ӥ:6G-?ٔZJ +XR´zSZIްN6*  'T l7SE ʅ~"՗O(jTnN8S@ҪJbP&ӝ{pMlG!)~'>6r$xj['Vc +>_7j võ8MbdmpC5=rD7!ȩS. RGƠ9q"Rzq+c cD=yN=vn3NS2k.J?<]b^_=?ݰw]R>,6B\2/_ˬ3{(^Yg+Esb͛ЂپIC5 e9>}"vHXjW~ːKavl.JՔJD0lNo̿P!AXjrNf2FWb2&.Jז!.P)1VrJm*ټ",Qq.ed!S22Ewi_!CXF2X--P5l9оD:twtKWF($٢ʉ +i%yO.9&c&Hh^y׎R(}ZEi-yڥ: svaꂤ^mK@y}@7͛?.o_5: 0K͈}h-Ps{6gs}*cvl%Sߢ.Li"k8Gbr!Z.ͻ0}ha׉IIDW&}$o;C${KHӈ5 \a% m +r D[6*ٰ!)"AJۡL=+c$X].n5S|;ƶGf_(QN$@%.Vm5$2n7H.J{a#9ξQ>ko bHVĴFD.:p.A$K:7Wm9ޙ}*UfIMZd2sYzMY?ҳ3LLÐd4MWw=R/v.('R1WT?}JN 8"$R2M؜JBLg9u&jwoB<J0R~@LIuJv~fJj|.NZ99K81V2L$YT/ #^5J+y2?S[?J%milV2;h5usLs/\^];=+g9u-gmV3V.2Ke4"BL? rPLBRs*E`挔j:LV'J3HU<6 ]J2ڮn/q%1'6ql 98:gxTlgOGCViXci f"~}J\_4i +7-2_RXU'7 +^:}i'uWԣط؄$]'%ZMYi,QK2xٟA2Z\*f- !] T?AOwŵOMAP7}Z5%odR<FԴ2i -;/TB&H97c^k#:6P2ۓ# Eԣ ݎeԃL;P?S#Sߕ ұhsc3z2VpW)SS31I3rJv b[{ë +4=(u Eݓu{#&DEפE*jM:c!£Bnk gE+qǸ=>|QR}nWG%9D1Q25hQ L>dQNUpT99rVZ%߼Xx zD{Q,M޽GgUvg{}>q")V=UƼgnUa]ӽzK쩲pYVUt˼@|˭=0}Ohݠqa O0`Ja;z~,qd>1^;d;P!harl5!$ks+e` >pA='T#n~ AGbFx!f A;rѡ\j*{sSrqe;d +a.FQ$'<GD +40n"x_hrO N:Dl᷸xrpr*|eq.FhP& (pYB#ǢFᷢ-ĹMQ̢̢YrYlKdTuu7熵Fmܖ5̓tCTC~S !X0KAek&CY).I[BdžZB#"HԾAfUˊ+*R8411&u,M}Ӂ*NJyUQM ټŻx ցi˄2XE߃/*qQyM:/S<&TaÎ,.ϰf/,fVϳ[4ldT!YrhP& +\`˙oES4eYmH@lFK; jZ ݵApGO:x%x ^ 6(k0Ӂ+"Fң)^$ŭWH`ᡮ[ٶm۶m۶m۶m۶m}?97JRddd9W|xS("wG25:˳O/jN/rx.Bh #^2>1QUuKuO@ gψoȮuHn;9;IW n$z@-.,|Dq`|9ּj-ðE2PD Fs=ܿQ>\E` E9زZvt}91^̐u[_E`"/ڏ)K +} ernWF>f=Yf;^Qz\UĉɎx>9nM +=MhK,EsIwGX)bsvS< #k_<CiX~%5xS5$ԭ>RD8Ho" .=_a"oVR|V)@]"3ߔ}TByz{Q ؠw: lvA%LώX|FߓO'9 +d:8'f7!5gC! ^O}hL5U(}j#ZKq>B:1<\2c^A"x7v%{3EUK I 7T:`\ ~SS!* CzUyQ0&GցbZ**[g- D-NWb%KE duFeBK Γ3V-p7d`۬G&\A=ˡ8bi9c! '^'}g 7$1]8-դs2%{Llc=X4oDu`Aw a,  ! +"'adz1Z{"\.[ث\ȹ_qM {}FIS"2G&gra53ίHMnóKj}m+x(.6Ԧ)7&UmYXulQz88 +VWrzpyWЗD/OͫÃ^´T6JAF0dcq B! 1)ݶ1tLF >UD0J5 {F4++&RӹVb^ QFξ #t +[{X!7)•xؓY])r7)ݹER*DdԪ@&19Ӓ(1>qb)v/n^I|On[XضjPNBL+NQX?Upw[N~凩#0{[,Zx=)w +epg8))D?bM:qi]I*@v2@ NL 孼> u~9)_ĭ@2cs"RRA`Y +N_^cm5'VjtvkJuq6d6-q0|ajaϒĪ2BsYboi^f>CYĄ>0 -k`]rd=#7L>,ze=3!>`P :fMɤ;2jx/ j`nb{O=-bJzi ̗Ԩ٩(H40&vŀ(`(NrCls=˙='  pHw<+|`qdw +czFݫ%r>؎qCUJΈ+TMwn_r7_ަ6tִ^fd~x5י#Gdvָ>)Sk뾋w.u?rOA҃&FF\ozT-`_#&4\*=61I 4c#!f ;(~3V[18[Dž&KGp>d((<,M,(kO2r?rЏM0丩vO-u1dh;hs$aQq&ٵV8K-_w性EMm]{-<3 p O>mn# qEXf fa@{(pLZL vlG﮼6-TB%8^"`_߭:b/YnNr3D0 drF؊Gi.\>O;xߛyHRvM'3X%we_b{/g\#=p"e&WPσ>&e+C),W^$Әy"<%\)n_^%gI7J o[P-|(:"W}8c0+`¹;AH[_;ͦARi3FC-Xo +ҭuPFp= (}(r;>{WaR(,+K@,*_~lʰw v d$/繷fՆxmLmx:1Yչ3g`+ESt5j 2p&ЂILsJ+Dt6u,W3̄#RTkR)B,Vc\zx~#.`:1/$X""Zząz1&:y@P4ƄG;˫2< Tf4J*Nrb3_ ZV"' LҗfRmu}llݕk5{;¬W?dAWG -$@Ţڈ2NT]I-9TbZX̒ZYWq;ha2Elw[F{:MP/hwp\U@2e~ ~w#?} 8#&~ū'}4h_ e~$Bu'Uz#Y5`:wH'ϔ+hߡ}AU }PU={ }8O14Ľ8V8`V=#=o:7 olw5NX8>~;__"\n$Q(Lϵϡnzx۲ɍZA \-H#J5~,Z;H{=C*6;/f? $ET~t ᳅jC/m|x {k +~쨏N6Z+)h{Knb"${獊/ЗꉕdJ:pD٥t9?ݯĤVMRIInP{#?*ѷ~e-G"j+.E{%4zζ3o8&յ`z) j͌fG'O. Kj>a1<8X/c\'b/8lazl!b* (N7 +ʆE{aNON@GYL}%6vO׵0Z `}mD7*Dd gJ~h<eO52 <&=yݛe),p|Wv/$&G?sF~]G93~V=t@]ದB+>#P >\dv_f3W3Yg"C n* sf1YD̃o ,bAז~zRrm,Gur%[@DY@US5X)|6,j~4,rlXhPmZq9˾~$Bp]d4  +^m!Wxڳsn†KHϠGԷT3Fܖ-hEr$',В=`NH^͑ՖՑ=(!P9SRB/vLRҦ!#R 7z~NPwoqFygI'n17/Ux{wc0IB7L?wIt>_V[Vl;qҜL?vҢHmV92Cr;V<1-Cnu, +DCRD0ѸJ>*M8)k=UQ7HRToa ҏYWiV^g˟Urpcb3VhBϲ5 6Bb{aO:ef `LQ7M3r4lq1}dRB ϴbRneIQV3;]BD10k!76=kgNDEf\vQ3Jq妰y=xP`Z3Sk^ctsz+s-{50[޹}QCIoL6UKIC=}$[[xߎ0ʽB Z0;pBzO9^H>HJN%"b"J[XlMAyC`=(dxmS_%RZ +.1z)Ϩt^D66o^:Ӓ`Z.{^-fOp7l{;B%%̜4j87+97/i)PunØQ63A4 iYzh2DEK! MǜxFq3ze@I3GnF^lԲZtEt,u Y,5f rC7IT> +euWil.*V[_l;-^"iˬEϨb-[#>$n 8 0SOzcĕ,i=ljYBE2̵ [1/=p Ӌ85!ڝߖ씔3]#&5T +y>5 щk$Vn;@ض(؋cszع WN}Mmba5E2e9x/Rl5If(aںz"A$Sb +q8e:݆tP4ϖmqs"V^*r#vkjENs^"ɬ + +4EuFa} ˨7`LՍfc,nC*At^H՝f9*qA@"e[ί (jPaz?ѱNX"Nѝӂs)=ebҭrЖ^ @WV攞m&F$LFI-?Gf/w'7ѼĸIԘ^y'?T'A@1RvQ<8O α<дF a_oo>Hvy+DSyW5|woF+L77@vO֯ʴo Od6@m({DN/@VFe[vϋNnL`znߝ;#;NoP@a|@1!ʄoJB5,_lzВjذ^zТ,~^Hm;,R؁n!70#nwDidlwiVD+ycyCVQdqDVDb^iH/N$ ]հi;0+hd=Ch4,@P%V{S!nt%s;^;v, p&>ډ;#wd n'v wgVڻ_#qvxg}T;+,}|#L/,,niv=ډw=ϥCo8K={#*3 e?{eufmM{Y'E'I'_N^ii*=76$>S}Y[SǼR۠JԳ5A2\aM$³\hrŦPGGҪP?;ߗJ/ö-vA!KO%ijXMr kߛ̡C.Y-jԎ_a/|yzm a*fǡMҙհZB{ a媹[BQ&ܰMz< BMfaa]Dkm^ g$Lvy +s rڹB%C*Z3aTol/Co{oXvMp!菏BvrVֳI4Bi4RۃE 7 .5PtxS|؜xnQC-7d<ad%V0$ۜP{i/?d)I?urINeq I]FhX)%%r$2TɜpkTNauJzx̃Xv{w͋/ =aXe߯yj&m + s#>on#9n_ҩ_x;V{,R|TnqiM 'KnCUv$=^`Յ>LZ\ ;Q,Q"o0:a[}]>/umhg} ('oC;e40>mʕ֦('pwx( ^b+[/ĆG >>>f@J>I(Wq~d $q|kBSi|8eI1;z ꥿7!7؅rߘ o([ݹsu ZIflvjwA6҄s$ ³bn^@{!X']'U+&yV4ĂԞ]l2FfgТ4UԩۨFq8.L9*W$M_(܎>`\LΘ#J1fi7#ޙ4!UvY4[(g3PS^1Qx ׊ꇵ_\[9Gޕ򘛖~6 StM#Z`BezMl82s%d)Z ߸99Fs! "-$ \wg7g|(B$i9n@Oa(xhZÓr $O"N*8_#^,?;+)ˉ=u=:2:pv'QW +ww~̗ v.,G݂RB.ڑLWF"X6Ę٫olo.[$KT$k%gv jҏfUwE&(i)[MC&]2K%|k@qW{xzû[6n!}w׵utBB,m)8 Lyyze|0h;NReg_pK +|D$oYdN-AŪp^Kܢֺdu':y%kF̪BbP1AWqh!ݟ c⨹3(-^K'c1Qj'=nV Yoِ8 +Q@PJ,W5n|c PWbqj; Vd瘈@/Œ>Qb=aqD7E #oXKa=mb|?:ѿI!Ϝ3h/큉Mh嵉灋ѭַ-fz[%?2,q"dN< %a0Psj;Vוs%SJi-,K>Gymvb&Y_[Y0#D-ID0BA5'8L&n6i3M2ET4+?N# (Mr~Ě QD`_=+=?LlLl[I0@2㔅LI55VW-  -!.>s-Q-SM?=NLAxr|oNv{ad|tXӠTt:&iՎ=צqp`)@yAO'ES!'^pbp`$UFaR=ʃC'F' +ڧ DYdLq)cpqhmLIVdN|yV+B`jS:MNjf3y7psJ0צ`lf@@`f4;6[I8B+&VP;yh%B42n!5R."-F7ӥ\e,76H/=}.eItG㿽}\ѭIXm1l$hGſ\ &4a ɘA2xLhF }'"Ԯ)M2)aRyϠϺZ[bރsvuٌ2ቸļ];zcY䩲_>o*O%YzBSrB7fC\=6D_4 ˖oӼ5G![鍴w}%gh)Gߣf(6~djaZUKND' 圃#R.+gG{@D+ݙkh+޿wڥ_`LZikULKJBpeBO?1CvmS?W tfI4f7' r1, ]O7ݣ=vIghldƘ&F㊺I@\٪^t[@B"raWb 0T{QrE+#LۥQ +%UDW ;u61N`x˒k~c]?Oz̊\+섑]fl=17H.);x㛕K&Y?Γe{FP@>YLdqFyT"^:ԟo5|{8>xH?fOÈh´<7NDt$ ~?&tD#>m"")M֟913`pR*cXWexƀS9(6t8Bá;wň!c@6oK#S`y_ŋA Ή\2y^7ܭ^0i,0ؕf~/SKG[8mv`.vƲ V!ZX,7wA)c1$S$k}>vGst:us57? hLpόfJL<csYf՚˨CGmąSݿI<44:阼Z6c8f;JAoٲjx8ohд,kh E#\`DXۭ@2`@EgWp29<tuIhP7Dbak,XVNX>ds#xKC135+#>N,:e;5 o*f +Yej" S+)WB+iӻgַ;E,Jw-QfW4!㜴x8 ͽ73$D-f!*BwrKT/6![{Dѓ&$d?ԕ{*"Ҳ#}rЁ#NGD[HlrŜ:ܙ}O1 +VU]]u:󩝥#u߫\eV&1&ۉ0i#pWd{~ȕclQxHbt\c~[yZ9̇,/YQOF|Wأ\L^c愷)Br΋ٍeq2N]E_+H5Q-L\JVAsSc~]9uY/U-Q&KNx$; W3DlA!0ЭQ@ C̄>Jp&b2?|n !6I[3:w`68s3~``L:g.E5]d +s +̳nϵ.], =kQÙu.}4V=a&luJfvإ% MNQl8=D`>#8a=_f_r#1%f搻L(>x +̐ +NnqZ > ۨm*ܢ"`Ӛ_׼oc\/<(yO*bVo +z_=ai+n]g.8~"+"IPbS,[NlG-W?Ii&YTk,"r) <'1}txLxuf[x+jT,Lia?j 7}z-@ :5Mi3r(ӍױRbaѶ%4wҊ{`<^X nyk-k@?D +}ьĻyO%:ATۣ0J bt zF@{< .ȿևHώ8£߼Qld/6@_p )`8 }{щk.D<Z ZwklK)|h )VX;N]E٫=5ߘk}R,lvDž +a1%܁eĖ q$'ʣƖz{fc]`-a൲sdY&$g6y7hUaZyʰJ9jBM @QI_3N|Djuf[eQÁ%Nf49Hxq: FUQU/T}׊ZJFEzcW;Y`֕)y=㔞l Rq{D^#ue*3( +$amZ 4W-@p{bϘӤ}@XŞ7|_dgä'W;xkv^0Kj!D?flڕ- _ +`޹^)u&XM>r}u_IĿ1{ >xt ^ܱ=Ek >j>!ݫE{Y f }Ba==jw0.U+Yvk%wL@'1SEؑ|E +IyŜؙ5L~^qrO/%a*݁x}x;<ݽE(?钥nw/ ]BCQ QC;Y d?$CżAs $=k\;Xyp +9hႭYh>`88|C+@pÿ/PSngI;/ι,Pgdvsr|~N K 49ȶ[H-kVp +PEpp_+064Nx^T=yq$Mm.C&+gsʁ=9ޕ#psY\jte~7aOw*lܴj8^"Xȣ4M/ zlc%v[3zsw(gL0j65 C8jx[fs|Η!< +W$ b{ܷxƗ˅s wӟ7?ԫ-|b ~zߑvmeQHٿߑ7 $ņ$͠VNj!zkx] lǞ y2Gv6L,Pꗫjf LKWuD6 NC7o&!'. ;ғht:e6'sSvQˢP:`s}{@ǽt d74]?jKmk)o'u%cF@`U=u $"0G:~%ȹ +v,>r5hsa@ᙔr󼠼ndZ +xϠ~A) 29Inn=FJ6ZUl~74^勵Kj_}Jl'vLXCwk+45V8 `aps͸yn` +ycIX{JDu"˷2}-r+gy/޿& #mAz$1qe]JefybqpLe5_N1BJJ`V@@݊jmuJu1prH%6<%}u`]-n],j,R?,OBBrKO#c5lSrQA^tPE,dB^8S#fj$ˠW*R {N8O7F(ڿ}6&ZD;#l#8*{@7%]ޠw[-)OMv, Yh,X{aDSlzNa~Cw(xq06yD7ٸQ(mwD1L1LP|H[1 i籼ܰ ߏS?Aamp +1*x&kSyV/hlyGdH ZQB6 sK~2Jl2mf pnW~@hSqc|ò$QGI9tdV>r9|2l]p\ +F +?ʂY𯿏0τIDw㮛iT#/2 !$t Z#=C=ۈi +5WK_3OF:'wuv$^Z$ QkRmA +(Ȕ\ +dgjSX%dhA3O2vY3,Ϋ&{!R^wv[{z!"'.?T`n">:X3GWwn˲;vЄFF>(iyBy@ >O<+̬[q4{>იʋ [Ӧ +߫zS!* (ыJL +qd.m2Gl>xb#4Mexͥ;TB%Zh.iS7 `4qa$&2̏aϕ&LN#ԱVn6PdH_}CHW2 +H{̴>+ +yٿSho38]wzo s:x :\cIalM%}~pc%J\~Z#Ldpu +}P@' n 2چYu|@ +v +I/ס@)xN CCQثh%A9Owi3'u1( mp^}gkډ8NP;}9g hVofPIp#^2`'8ka"C6ʉb)k5&β8 J՗yOLU!͞\(z7O3HCư]1-Kܑl͑ ;BsK /#9gsA~9y?~,h,$P$MY ?ޔZfZoIzH$鎳o?cAn1D%=䭛FWeئ£mυࣄ5ϲ$f̐!iOO)Թ[Xbs#Ez?zMK +r'1*OHkCYRֶRiHUG"CYHo0ZLעGKW(EHe婜vu]X!B^69i2swߑz6B)ln,~^<\Kpk%#now$uol>㦦 %fk%O [V|C)+8H-beF. P֮]6& S+䁅C q!#!}&J}}b|~wnF$k QjK6<\KT]Y\Wq5QvzT<ry^P Ŕ#(ܥG^zps΢p}'Yx&@a }-,!70ℝ*_9 +0L93CyoVR'5}:v +Z3.mT猣1neܼ`xgԥs^nReu8͍cuoXSs1%Uw5XsK2)m^My77'91 C,/>acu3)\KZgRMFgJ[NLmvj ]wQ}bOegL4}E"ʙp0s ,[%2/2f%Nٚ4XJgNb^\-mx.$I٢)^T/{ +9ڌ׏((.vo˗%]$- Dc ޲>IeΓFr4„yg6e ~;>mZ/;L׋3Yl/3&-oYKD9V]p^E 0[t uW[kc95OQe;O\V{p;]vꌻfh(Daʑ-mJ[Qhŋ_9rҖPe7rQ;{xw^O;8'c]rDIo+j5![S[)խ?_*&hAc-Jo9ԞO#7U Co_ope6^W:/T0ԐfXgI00;- &P#1Ɔx^nm.jr:$rBZKU&U6{l%􇴞Bՙu{j$_-R\UT+xQ̡>/԰u1ipi܉ՅO.V sW [`!sW GC{@[7AElv)R|&-nxB.? H?{|-"Q#fx\7HZކH?cƲ|:sҪ~b_hd8-Wn!.MpoWCXuav4/T-,G$-&]& >wN2_ٵLϕ`NMv➭5E&in)^mMAa/v x*-$HH϶נl"C Ϋ0jCHv7 *; 1]CDPXEHT:+>a紃 8Ōy Kj|\eDl]X]{+:Mi&={E9 +YѮ[ e!$[]EK|G}jR-ݐhZe0 OT!O< 1j lJIjnc0պ `˜ܣ+$LTac^ V!cB.: X +6 q(ӨF[m<Ҝ}P4w8/T(ݙ- nIN-@Ůih¡z" V\YmY],9(Y5VTSeOC >Yl vL +3aF6_-9˹bq% +ؚ`",^h9Ƞ,2|SN &J٘,.uY/v lMj' E(e goSNCH8[CO}B׿ `Iѯ|(k}8 +@+}`HI}&C1~\~(=\So 90gyKS O}`rIeycvʠf{껇ٹcjm1et*Ck,?z]Rc1K`pakaXY))ϕDc? : .B̕Z͒5z@kOCDNA,JMXc{XW5H,V}aQ$sY -%EȬ}F5zCk pxH5 'أY<4) w,U8fIWLKhPW~{0?ogr(ٓzwKꍘV?/!q<|cw1;!.5]'0c#]C\O9Z0{.rm&W4Cў/ +]\֦5y1#UeŝX%фM1D]QGo1/jvwO و䪋ঊ@ -cno]=ҭV7L¹Y%/NwP 29$<*gZ"T!\ ~Y 5gFCMXg(Cz}ɼQݪBS. A|P+h˞{.4kϴiXh~Q%sUuσ:[7شgKL}Tb7) 6,J7B)[r&⨧#NDq;kp\u,ǤYj3hS~;/@}@u%$5dUjb ed**M,o]j2YRצl|%?0Je9ks=]87gNN[/ov~dcNqT P- +DP"ĮSTEpD"F4wm8 d{Q9keLՕoض*M6eѣqm4—ݳsѷ8' Jj1(n #rQWҕY-eTigJ.yN:9\&gb2wY]WF_OێZSh9Bv)8v@מ=&ePyZA;MmUqF @4T ˺$ZЯ94e>ˤ=o4vIķUiPg.&֊)-'_!mmn"}<ݔ33[:fh-)[צ=W\ MlAOqI}GdJSGCyt3S1 Lj( +Đr=K.\@99N9٬@Z^pJ MJ/O??Ѹ53#C fm``JޭNjV!ډݑx)z{`w}MYt/ N; ;!QknjL ij6}'UI@84;3/<$$\k!o³w  4&ko WSu.|G^9G^*'>@)eQ0d9,0ՌWp[BdQ.n<0Lb ?b(O`5ܦ[=o~xoPݶa1@,&qˤ; tw,wţ|aݤ{uSضZq^<=rcBCn|"rUEiG qZFKsQW4O # *"D{EFg6ӂ7uѩNП(:b]0e}}O뇓M|%}ڽ<*v?Pi(e ٠8Qj] 8\;=sNweE,i]Y7$ĹBƃWUW 픈"lፒ«vz:ݫ;k^0H#|>zttVtkZYI"@k7@ DV*I'qPN3 E.Y+ hξ͎"@>3G IHV.l_,'5`&S\\8PZ.LU\R?Bl1ݤ^X0Oc-yP YBX&V;Je.0`U`;S-C.) dL -s@x~D[;3 ܹ_$% ý#@-|60M:—ddNmj~6iFJL)*nt }LL~m{TGL-Ŷݎ=-}V-+[(WqV^.ELW.mѦx6 Ee:N.m7]*P?u.T\db/7F6x9\~(ou,+ xȓ*jj0濖d 'Z$J9vvT)x‚Ls$^^ʚ(bIB̠UZXzPe|t+#f#oi +NuL5f +,E6zy9=Duc: D@IoTmDX,xOZm*ulynb)AY;Ks|m:uV0L̫ (Boԓ Xj,5L5w+jl +Cz%rh 3a̢頌R0Oyvtv!dX2ư+ 9_ Ts&"FZ#^'EykMJ3opF~%MVŸޏT{ zRCTնILE:7Ӝ6irK; &C[Is%YZ-.|teB l_/aĞ\MEV2{fIؚ߽%tV-Z+T6*!*fZKqwO B7?1s3rn)㰗G?4pR_ceA27N^+Wx%l!`ߢ478PKST+Fl D257ӪH"rqu fЍpL ; R!m8 .;#a ۯud][z{?)-TU:D1̦5U0,tfwv;^ +28GFBT'H/pByl'Vca1tݒ +ԖȾo C]Q'%JEΏTDȰ 4CYN-6TQMb 1,U( b e۴.Ml WTmJ)!jy14 #lV 1Zu( UnƬjk860kd}ƤMȅYĦx!L/'MB]&vfvȮAFLa8)A)JFsmQMށQ|FΚ3r؞ϑBb_$M&~;v׌z,_m\00П+Yw=U=j9J }3>k8Twon"d[JtRdwJJ2La&O>cZ'JXd%@3Q@䋩tb2SdyfCK.=v+)wzJObx^{&^NmLF%u'4V+( pR-|2U#k# IcNJ(B + ``GIcπ10029` +ڊI_@՟(. +^c趧"\*[S:dH^W9]I@u"Be3#P 5U^bXIVj0:v w;QѼV|Qi(ngMmZ˵z2"L,g4,g0zy{ƊI`CSY = +hR80!փq]"^ךe?M~ar`XY +{ +%Q羇U(M:s=<䄿c) j&#%} +J!ȶ8 m#@ .B %kz=c"$A[TŊe%K+donS"4 +S 8"m$w; Ţx?Hgrt4qL+YP'J9^؛87@)J 7mj#䦬g njYɕ= ]K|G)n# y(}8MXՅH;>C7lо;vnUXP@Tf=_Qh^0/]ۘ+2w )kUv$忶\3 +Y5# =I0%;ïCMn^W 0p7[:cWpLG()^ pg(_acfh(*e)7U@|!"Ei4`ϯWn{`Ѫż74m@u '_96 7r?B~DW^7бB7aZC߰uƞ98W6..uD#QbYx.zS\9pk$7 7FjfGX{Hݜu;d᙮V j{@I*C%.m̔f/iu Fohܡc'=<ũ'ht188ˮE(ZZvUѮ6G4;3%rmXM-23o%O3aq!@g6\󱗣RNwbEKFVX[(qN H[Da{ϙ8sy2K[;io;]14fp2Ohv`Mzy޻O?5i_<θg^Z+/? zP(95JmU!4nT!:f3!;.Zgx4kxZM+$<;ΊTylX=}IVϒ%#=}/௦$?NL(^=MMI +wKWL~ʚsNKAs:`[.eߜ]lh#6a|L\B! oT\Sp0q( H[yNֿd[{iס#GV {V4N>#z +B/ʍx991!Q;J Y23+ Am!XC `wcpѝ8{G9H$cK٣0C@Y.bKC:@JCfg͋m9rފ O~pىN:@SP㌖hjdVF;cΟ<`-hEdg}me=WwqYYZ%9zݹ%yQJ[I{>8g[cm DfGA*p[;VͫJ}ULRSv_SIؓ=s|ΟؕO;Mt ӹwROKa'smfYRC23R>+ҲT2J ܥE~]FnbElEg+s,>vQi_;WL_XE}ΨX6]́>l{&d/{Ğu3,ط26;KGO-i;'l/&͏#ߘf dTcx TQs0in ~L ʭ!ؘۆ^΢ ZSk'N+cNѻVʯۛl=]O8!oC -`/NZnR/UXԋwƪO\,(R񗡞*2c>k#PvIu؏YA9[$GZRlW4Jo">ʖ\k)LK \f]ܝ})9yƃ;POPz*wXLCb/oȆ_}酑!b+ IW Ee Xȡ'~i" x敐,ACDac!^z'nG;wǖz\KP<ܹQj-^ K3 c$uJ퐗ﱳǪ-N L3\(8DyfY~',h-eXv22Zo%F}_@V_,.;=3pV:ª?l7 ,S])î7"uͅ@Ӎ9Hs 2ԧ<=CԆM#҅VݟAܓ=Pc9u pCCl{fG3w#=tk;hǹGhrӍn;lyVik3w{6]t|{*x*ە +qNj8+TN7=*jzЌ[ +y [νI;U[7N +$㽖wok[ ⯔fϪ彡F[ ovYo!߮ 9 EMb 6GLc,GgbYBi27\.OD9?O9fYm߇f5ˢf.SD\O<7AFڮч*fmA.9Y/nSOX͢7"oG*yp#:hǧ|!=tIpL]8]2 +<8T$yہFu"VyƹM]\%֬|N1ȎId L~#dq q6`}ec9sσFg[*,*+?)\RL<(ABQfty<_(:F4ܖ>Ӣʁ`\[r+(ƖvӀ[ S!Ȥsitg4͹lJVs%>&ߧ6y%mP93yYVQHsX"LDo`*1qDbRT$Ye!jyWԞ 3]+`6# 2ZK* yz;Kh:硁Ȉmd엓ur]uxdSԺ 6}!mt66N jylϋu}h/.·Uuna\g|~b#5E3b\>7cȐ\+ +۹Χ5 +ϩ(o%@ƈnV MYՆ4SU(Wf+"fSuz|\ 7SV؋aYq@}:3^IWIQ&˴<^{I6hE VIFN)'r@[" +It;G}q=GMZ.N&*zwlef=D*-PRя]a 猃P&m%WNNҧ՝x ٥7!]H‚=.7ݠ'OC1O;OD|wG oA2My6Ew,S3f""M.UsjBwTkEW!>!Cu@d +ی\ۼ'1v]>&nP=@i#Rv3)|Rl C4%XqaDF"$\$wQ`bOqb⁃%&u9ucq}I{Oz^PJT 5:p׺\՘nS'vt2(Ũ=/BQ;v[ML o3/L}K3Eĝ@˄ikddff5$ƄQՋb:pFq iK+^ëQ-4 Qׂ'&S^@Qғ%ɚdkKER ft^\C'`:hd&K^ d[> h] S>? œA{+AIH=*_zU]v!w_%TS'L#)VְiY[[ #ز4f5u)x' +[(U9"$6~p1M<}91B0 # ?q@CqڋSG$4 G2$L[UbS -Gn!,(RLg۵GHV6ςY \7yɸYգ9mU|xOCk2㍇4؜['.Ԥ-9x;Ԯ$s~kza/~٣@NZ24Njasڋk%Pwl3J>bK#ij=6`?[Aʺ n@!nJ!|T̜&1lYi 5Ę,}fEH2fh ]-ÜjSʢJNQ(zxĪ/(OHiIU|z"/ ܐ sBIɎ#Θ&I +<@yOsq_0He9/T6/MhYk Z&_ᆚy';YeV! K +:]qFhQ1C $<"?@O,K _ξ'RrC1J!'&*!v`J \ڪ@VNR3[L)$ސK| yd1Nx~&}ZaqPP!Ϸ.|q^xG`=ГRGst-'o"cQœߨh]`*DN])^BAU\j + +yެ0T' SP,n'cw_a _+E[cG[gT;[o۔)?D0?4j#B8!| hc< +b@Mf͏DI7JKUfۦJ\݌8ϻ[-r~?ހ^`B$iU28iWѬ|s9S +«&+ܘz5IJ@MNKbU_*MKSTstٙNEiF>vH͹y_$'+7|$䌕:-4n/E'B[u3P +ЗZ|kdytk9bB梁UsU~9q&چ} Lg&f >L`΂m4@2k3Kꈦf^nLcJK+|k"\plhm,Yus[i۶m۶m۶m۶m۶߹rvK+ec􇨭Fj|S2\N\,A_YEV9awtzH +G{kζs^LwwEYBQWZ\a-=܍W$%64f,3WZՐ˗ڂ]qJ +J]L/- r\B44,bɊݞn_mb\in\l-վ#YYij)RmZU7on&JzMZFQ-r8Kh$ (p-њz T'JEj43Ⱥ#0s⹱QӧɍffL]E,P:7Č,MTpg"dueyzfYzCPd64s5(zhϰ檒{xIeFYZZ&mƞ4t$ܨM5nqIݹفtn[ͳ"%rirhWb7,+ +{kӜAzp I3r ʱ,kݰ|_#--6Z-/=oXYkDzL !gف;`LjD0b2n.`ΰo׾ < n4pF!^c0"6SsJ$øNiǶʃW$3S3?Q{(1OUAOv/Ce8:l`AI$ ({]Pơ@0gm68,Z@h܉mΞ%4hXA&j:\xUJ{2X|!L&ݮ!:gmAaDZg^%?D mrx<4*Mh l5~LylΑEծ1"n!'̝?Uhॵ%óhۆʼn2ʖpgђt"L:]H͚u_X_6; s)I,CW.[śݛyE9'lJg~ZΪIΰ'"a+pYE۬;'"wه^LVzғ0{JHXY]Ǡi-ӝf[ǜH ~ u s[avpemU (V5RVuieʊ yaPye, [ƶ] s;A ]petp" Wx%鯓WC8m55`3ў=8E4*~/z@\xy>NNJ?6J@jM*̒0g:WtX¹oЬ\Xвfv jNI/+]8s*ʥTk^P^\f5>9i +~f=g-hҸskh%[~nnΞP4-AFmwX*3RbXR5+u6"L-Y~}ti$cq)oqFX@EVn'=MN׎hwuOqrr5ahLIDuj9>z~.-;uV7U[#ܓ)Np8(R=?+*cf)`\pF<0n-I_A\SSAeni&gEBj*s%Ҡz!2ӹZaݹyJtSWG `@{DnWfչ[iTY:TyaTc)^Y[[;Uq~.Ts{ܕW;WqnT9W9P)! A< ) +I`!8‡1\wEehF ]&m8];$Jʔn`{w(!h{"ٝkT+ԓAw tQ07ٰ.&yLx6 UD䥯~8'BwRg\߶^Oe:6ZC6DZaȸKO|CE^}g{|1K3&{,Gz֣pQB7_v*|6*XLO^]S^c mZ?vU3*4gmS%{I @ʆҋ "W2NJZi-r= ObMrMh%tߒu#؊=qW:Ot敯i%\bw^2Ϝ.ʇ'6 o0?:tF}@Q ?[!5m5C^:-I4 yؑ#$yP6ɩAx~CQJV>>Ү %{nԻ}PzD12pv[wwp(CoY^ϾZ7ڝ3YQ(EOE^ScH3dl=/y%fCϕGRٍ̾}a>סjZRvg&s0dA85C0310# q R80Znhax|1jqͣƃEs♜eV[:鞛 :-:"6#dó-)Mc+r~@eoe) \MbF&,bN L`ƌLpG%Z%l5ݙZ :-VmdaΑ0l YdOnTf m1`\4RٸG7dD Y(kmNΙ;v&0ܒ<!e PĩW^H צg6A=6R;E֣մ2-J0y1@q3-WM1y jjf&"I +02% NTlXeg,[4@cZJ>{bvJMd9go]Bt e?Ve庀eJ*rJ|Q໢j~GdRĒYf,e5{.\ٱfVFie'hyFo1^d2AgUo +6P74K ZC䊵.9lX^XMdN,D2:GXtf~lYY%.{a5+]6DMp::jul5ʛP@_ߨh dѶ+d&l43A 23aNѮQjRoa|*VKF8(05Ps5kjrpڅW&XW6Vh*QE z \ +T +:CtԩOهzK̷SC\B>0܉[lM!5W+m: .G~-Ζ8.u@Ȟ";?0,|?PEǼޜ&Do +>%=mu.ΐDѼ73>-JRGIf\ˎKVy|X+=#a`8+aZUY?Mw,7f͑7) gvk#f$2 Y!&q Q&uYҳ%9jO?b&z:dB]!ʬ k̏8Hq&U(/l,ȕ1dN=ABWU(/9M=mK#\)ɒ\j"ɔ1 '޳ASh9[/&#*^ap!ᚡǸQ|uHu!)yCQCDe> oZTceTEĩT:?<ѺVj =X\zz9T-'+|\JsIqC/|Em4P0=1Tl4(ܘxx%ьS01Qڡ4R6Ҝ{y=w,tOe,ي;bQT zƪjUg#j" -n(|/hQ&ꈃO03A +AMJLIatqb˟V(&@Sǭ&uDTI: +[?q&q s+fE7sЪ7'Bgrw=ZNƀKn]nq:Xcj1uhc'x[YnY}"|4meu@’( l+j붧:Ѭ'ʾtgęUr3\KLqL!ӪnNi8\HY7MȖ ȗfU15W䪣<(n="!Pʺk[5K~4RbHK%/+59m sm5+W(iOvn=P9f|~7m0G69O3$TZ[ܫVߧ5((Dg\p +9 _C+/rJ)hOTSqcC"_\,)/J4 z؇jjoȝ8mMxBq}mW:|rxmpNez].@"G6L 47 ͎^q {=>@mxGщl?Tr Dԉ-?i'hшR\C6vYUm=0ێaFv ֓ѮpGo=wَiGw58 cd~`CCȅ80#; +5"Ch=5ѣ!;$5bңz`R R䀫C!?T-mFqz k@G?=إ~W~ڥnzsN*$M2+p~ OygԌ}щ7K}OKݺKlwfKyۇ~䋣ۧ~%D~o=ug- E; +֠of.sַ(;Jba4ĸ֣$m-x'$ݕ~׫^݇0֕R]ez6e%ݠ%X>BɡZɄ"zb昹Kv-q>_i[(=7C7C_O'nYy?/cO{OFʯ)c80<c7p8uիpn.!a;Y[ڜBx[YO|Y\$z}ĞRۏl!/C=i4V/\!CCAϱ5See!MAϑ`tP!/ +\"Υ>oS;}wD ǯSx)]r\?E۔O0o3=~"_bYGFTc"%5,iӖ:,tby䪘*$m5,IwބXK:Z2 ZbթfFU*%.͍Fq''M;OMf ܤJz/ ג ۋnߐnnn߆n9 2 Ŷq܋ E?ewmeKhiK z:@S'`9dIa}u۵ `@&@rS@AvSRAC}X@ç؃Ds Z|׉A%UкiJBV] Ye[]*0Ũ\fnV(FZ l>(RFԛ)5 )w4:D_ ' ]tbvud#5IMcTX.5^23[ŤnnId?r}a)_rrO,}xň*#ЉJ+r)~ҍWd{Eԑ"Y[ Hj2( g&,cg'r%(_oA]/Iil `k'ZFY#j+y%ϔːP7m~9^ |jX/'7+3gR>{$vHjCvXIOiaA7H,A\EP8ы__JYo[?,7-kb ޶( }kb.x.} \O8)_{畋iEUTG嫭G-+qv2v?þ%ЉUBϋұT=4]!FMÚ Nj.j. +rnjp" +kKYTn~u|b^+s(K9~9ӥ<хBdgX6.*e!k_sSm_o%^w{h7d:L'v"wa2g{0 Lۥ-kx1w qf"VV*-uA?5 rCV1j}}=5*Rx<"cT<^FbLy/{b#M@bK#(uS(p|> hm!ƑCv"dhPY!(` ܴ +Q}5u!}!E|#X~`H~,ƴ[7LcGAv#ǁ4\~(d,|gl.OS$ya} ZSDyl!01!mG*AzGCp6c@9p*!^Ww.G0cr\h!Z0GI0gI 4xQIYR ++Pl[ GQЃmX65pi r /EZJ8 yFNҝC_j`% Y|r~n=2Zɏ-G{mOPbtZ!PZF{ή $:2rc~HF˰kl><_NyQkkV5,h9 sIp8:%1wgiMk C?yZր`Fee:G1C%V*aJE4P/Κ(w!}[EYklA:pA5[:0BÜIuiȯ+&; I/d%o&+'!R8HMȓC'W҃/ޠ08'$Qzz؜@~q#k"8[ƴbȑQ3œSӞvTצ;AU+PxgQWXOnlj VyՕ2f^N[FwD\%^&-{4?]^m={?[]߽ڶ7?J& bE0^?Y+DяOGC..iM)az#A֢ ÁAV5ZB\\kO⭇΀G 6|PCy;~B_kbifoj rD_@~JqQʵГ&G%Tdk#ޞ)얢T(UjJlۥOjFaya %F ˪丄 ͪ؄&"5K]3cj'u7 A-4,\^aӒxQL{1fLK/adEMcyIbfچ. MGL̡qXrcǰp@ќгfw6T4";t^]'~ަ_+3S?D``0/#qo)k"KcÙv)i"^gNr9 hp9 j1cO tFE^*,rs>JVt-h| +cZ7G9՝r@ iAJ_H3O//xqRxSa4-}ߛGD)bǰҚ#Mr`ݭM-p)z'`^0:OROvD2zm - *.yR+0QWKD/8(w6$LO[u+=Т<-MT?afHk?jeM6S`D+?ã]%;^1)4BH8&K\7oFqy$_(Z?ܙL!9OF8ƙ^hTo^cb}C?Kp`fNPPRDR^;a%TS6@=@)[xE_6@D;1f{όܪ_S-Ko?ʮU[OAK' qբkE(*UvkJ_񇖑&ݬ Cw ,Zܐʩo)(@8iBjR)W?}sʘR|ob4rOD}pC1.|V1{xD$Mgad4nx')koB檁=xM]Vc8baĦqLUR,<'*uiNfyZN)&%M,8\||uƎ@ڶ5?mbbaq"! GQDOaF&ffgf>Cuءi3JgPhѢ=q!ZT}BD$ +=mM~he ߤ:/T_4*|9t y +nx$C2ojA$y&MKŁd! .#@%5K?^ +kⷴƶH*"!@inunluik׼f͐ Mxue{>.0c xt!zŻC}c,>PL=`a }ތ}/¿z o,_O78' .P: dfBGS,({$UA" "TF%r +āj~ϔy[C%Jv'CaB-@`x +BP" +jɒw'ŠE{4X]lyO{H}SBR ؼ`jpuSYUN(0ee*F @O-& e"Vp`+VE=uЮdja6y$-Ft$iUbD))/?ldHhj=J$R1-ٰEeйnJZ3ef +r:VLv9ezU[<ŲV}%!qD;v9ShEڴ OZ{کy!PlM'!*puR-;mJ"c$4ْMY- JcLju}0u Ꭽ+Z.l)is2mmtsR͟k)yeIy Fj]ybXRS'v:S oKUi椕 WM#{~ߒL+f2 SUL1s!yi}QdÙ7   +%䭉[Y [u& HTT[E0X1tYn\/#(fklM sZrZ'\]}0)9kI[/ڡWY] }/My*A&t+L]:]Jzz plkyg&s3h$H"s*o}VukVt׬\r՞8Ig)ˮ.jtWwF|];%]w +j\ږpu95;tTJ]|`אRUZy2bȇ_ `ᇳ㡐Lq|oq7Tф<+Ǚ]99' \RA}ÐrJ1ː͓F̴Seͪ`[ܬ_\vvK>x`΄Ev`4ao2&i,YZCwIsg3yXQP]}7DO34@8W2"DXX(#61#FF1G_R$V%l>փTHd:mn)S5W-YsfvWmxC(G]F'|iAjYu Bvf=ᲲxǠՕ74OiS;~8E7coCrL|#zI6lhQKE}fod*29WTbV׸`` /W)QdNN +Ƚ_s[x%}v4v9[f5wFKw4-p05f-W~ g+tCDx"yT +pF8S7իFnjϘ sUs房tyek(n2x={"Uu+=捛\f'+~9Q8.q+ѳRW1F:q,Wʘ#ZۉѲtN9kL8ey˹9"4n/2e#f1Dl݅5!TвtPfӏczow ikz}ĶB\AהZ/Ew#ӲԐ['DQy-_vOyAбǦv# ?韜-3d}RKyS(Em4"En9_(XN&KKo?܈m6(6#lOӡъa# s}ɬo%5ۊU+S-=\{j'}dvQv;oBë31jA@eVE¡zyYwk,oBYخ!ko8\؈·*ۉ\f _Xa q yD-n8|aA׬Q]Lf FL Խ(*-|07lnx;=ҳZoom[ݢg|:MA<7࿃ ?[nSr`)TV|z@p,aQnkq7˸Au aj>2U7̮?ӱb)t4WiP =@Dv@ P٩7ޙ5i=T($HDCCәַdǻ}JkGiR]V.w[Z\Q&Ac_0g +r#.F";^pfwC{Gƺ\K'gqMfjh#{8~fbSLRֆB+64ܢV0f _t}avvK"\up:Y{` 庎pyfxgi! !#1ܑ\HSOɧ! nӥ p#*~=+O;DSA¶4jaZԟ rEm1#@]Qh"Bn!UӃ16 B?qCʢtEN6ekBm'90;yb(0߱uw;QO`&/N:ŋN#60Js0钭Cb ۔pW^6&m7sE 4Ȥ y6j0ūM[ A^3fF[3ZaScit#4Z +Ւ-SXȷ,.@Z/EuC8HԜf$@aUf)@QTebrP*Ee@T;[G˝t/ƻڀ޾~ú@ ryn՜Ϯ8 Yζ#+9ԒW  WXZBwџj]f, +|o+`c.mnsKG<&AObq;2#;bU6d6ejk.T2gWzDvM1|wiTҋnEB5qk\{^o]N0㸣MfB: ƵAV{n \nzwim6(('_u] !a:^n#qCR, 7a,LEAE D ǖ&TdKQ L/̬ B}z]nV[&؉@ooL 쑂7vA- xCH+dRiGW})_}'?՜[h~aL3ux}w*(SU_Q.}pVN1./G/sC,8*9/Th{U7'k\}g|O*s2#'w6'0?ިϝ^0SK=q>A4KtVxs)=ka}"sy(dP+HR΃} "SÁc%N+^y#U).gZ`濰 + :ZZ(]’2F6NvnNUmU뿋 +A=j)1Bhmם9$/@X|H, $<kwt7?ykwٹ?OCvt`cjy +ñ GD F{M"wϺVHIc 5{OMm->EIWzwճrTMjPJ1>+={rHj."٢#xD Eh"{sFD+f-'VKMsLXl`M-SexlJlI!m6_*awwsX۹XKշ%:UfgYYLdbeP iNuTkT+\y8MFhLFEӱ6bmdવsj +4KJ]; M'3JhQWɒ&l%S*-4'eP'i6Y'[RTc++w+)ok*=䭌75}W;CL;Xm5T޶c-ˆ"؆[¤M׳T5J'V~+}-wm^ G1B1x#BXI~̽Y~L_EU,GnY4>E_+!IK"t"zS mRu3Vޔ&% iXzywwec0Fθwg Ak +!q-SjwE~$fvtol6 /}XGӀ2O8cȉiSKJBtgS~\[/.evxNK$KN"'K^]4&(nAic _ekCtW[Q`4E(y6!8I7CHvN1I›э:ө}N8qaҔDC\-N$"`vp*l1O#҆Wk[NP #AV*VV?5q#fw-|HE=B+g;H~ os(coF.f8̹ 6˄</z=j]Mzf +h:wV_ClK?@? =&2Fb"DMe gg9@ 1Δdp3:XB-Iifvlf<~fLNIBQNN?Ea!IŮb08QiPƚDBSo[:ް6T'NCA $2Ta7^ChH r,C}$9ivc&<>L=i>ês&O"'$Lsa n#~C(&PSҁ$8|,G l$ :;Q`@J{,g˳ejw`qڱGx(&o3 L"S)x5iΥU։2]6sÿC%TLOv(J#AXxYfZ-qrs޷Dzym3Jj)n6ѩʒj2gb8FS%*3RRSmso +D\}֓{)͂!U +:E Sz(0J +k!gM&Zk85qɢ +L~d\2 +] څl6I7뮑 ptl<yK⨠z-4讀35TQyM,i)QơAi>SxH5k0e3HwE.9ؘQp=^6v(8"9B=EpW~(J jz\1\C3mdܼr0b"ǎ؛CV8[_Dg'n=Ov?ar+8annQq=V=5ƧO +mGٖs{:٫]asիG̝AorI}7ס2sl6&C2]iNZT5uBƊ@uߏ%8;Zt-PiKD/(@{:Fqr<d4αjԒ LŖne#=#35w+E^xu@S(\o*,F+0:&dz'PHZ. )_U_Mx{{i5Hy!" (5~UFL[Y]P {|6#i!]πO0bb1Ds'+|ȑ Đ9}&wX'Ve)kOlO/q + +l<ހ8Pqm8ؿ2T˄5V?Fb U [RTWT;m}Un*szm!TO" ZUOљB1aO::o'Щ% qCHviq;U)ʦv쪮;ӄü(2ѕވ,qq6ңM2ꢈiHP,f%E [ȚUN2מ`QV$8fl -P6ڔ nw yɃB ׂ:p*YMv+)Mv[^ +xw7;Odށ;O* iaW!xkաCGD΀ⷜ̡#X^^{/J  \[cs=uCl FٝYŻx0,ʘk9VTPn*/=49]pK}쒊!.1 xEqm? J2ޞPcl| E`SMSW2k2V3t"~?].0*lByR]-3r$ݛwv߷ o]h GQLrTD '8Pd2Pm2V2i %:81qtX-`~3P +e  8B˹zN<`tw* fI]_ky:cӉ,V\df-'^bTӚTj}R=\ib]5*:/Huzdw#;զ7:Zd[$ۥ۔Tr-h"bIyҠdخhiV#Aa7çA#+:B&(cԢe)Cq{LDD!̵HԘ^yGx6K6SdQL}@ٴVmzۙ~Ypw$ܠ@ww)f Okuē푮ɻCTܿ5w{x uG#{IDS :Q?%;bȗko(7GIm}BQMa Jo),qXmm=|Ece=F +am|s23L"eȭӪ F(2#п*Xk/a'a#S-S{dhgu Z\I ϥ+[KsР %SCrEgXwC,σF}# !%VӏJʑf{~)@To%k6MRQ$aD: MS## KE+uK2Wdu+J\2kK3.u|,M߽vkPE FїMrS5ta~y`ravaIb/ ^z|-Q.wOq QZxk, ¤ 2>_!o7ߖ:ϲ`t{Y0.d k S_+/ȢDН84qG}>1̈́>DW!1ƯvGK7-\s{K+]A~YLy#{5¢b]b +\S:˱*S&{7[H M=["VT +~ǡIKJSnLnD KE['%&MjfZI~"5Vh}sSh EӘ"jMVޑk~1< GJ`z_dMD R3V`H:O bE_Y-0~`kEN5k.D# F+)0 IL[e@qLd" +'' >ب3V'$oU;cyf2 +cRpB~L]7Q r@x &U 22E#B%UF`1Eqgqbҥܾ*ͫ#T3re҂(6_0S/Le3{ڸ]ڰCn)m]>U>:+gq=aDN@|!?"RXWg."&r;4v1{=/mX\%]Y&cA.#c$9WQo ˌ.AO3'zv uC2A]-j>K^>Þ2.3! 4c )tO|eZq+O^{T![q3&eѦ}_}`֢ťh흢)*j|f=syOb"mJF{%TPuVdPr}rxH;dW͞WZ[=x=~зұ@n&hR˝ܠdiCW,M5ƐݎZv٩o=˵eG3hvܲ"#W5Cs=F|x66Zu)tur6. +ӟW)Hr{f-w5hYn7g(11nI8pEpπ3,m(ՕUf:vRQdÕe2o@EEGc&5q.eζ9#qIzs~FMJ0W YR+nXHs27xK>cFzlr&Ƽf s)\d(~,w &CԲc-=%zm! YI 7ruӵ/?v/|)լzʥX!):eq )o;=^aٴ`w2*g?vY^Bdc~NDXShퟝ@iag< ;D3 +m2>!/tJHv{׷mXs%hJk@âZ64PE7!]ґt]I5W0*_1< WO=d_!ڳak3ε{IЗZEcM(bp?g墇EtSlK |0(~2uU ]!}b& +c*r< Тڐ-RPtLb3ҧЃۧ/.v޳&qtfy:P(- tW@~IG W71哑Z^4-> v_p\\_]kvavȾέ 0,NJ9-lL{si943Ȭuˬ&U#M(Wb Sh ECJeөw>ʪ%WKy䷃F=DFmϩxKpk&H"V!S [C-|4VElSuz%UYE_.Z?u*&gY 0bC.,X5?NN f}Kzzo' / C.CM|ʚ$[s*WᆊɵfRwW GCrծ̣/Y!ZAr1n[ Oz-r趭{|Jޘ?_>O0kBY4!ˋXd6'%E quk F'aDT|RxeT˧>`1%RWw5ӣ_NLɪ$6!H~AKSzduwcx[pRm;OJ +tW!jR&1Og3K?KK(n` +KCX"VzHyu'8 HCwXO[lƯJgWEtU!jw~Ԓ?4+=] #@Ba-2sFkָVKwF9Q_QTgļ91ڙ5Xkȕ֝ c~gxӾMotk};lg/Q\Aq'$`mxz#>"i >F!$!XC^y[ WM(86,y '-hReIS GeTXAWCM&PK:264eWn82=a|s Be.m#qIU"c{Wi-p +4z8k{s:R7;EB"QpK;5WַNNC+Ϲ݃I'v H ">Qah bŇ2,[\ۚet=IWŃvcXe _sgHsBK#8P)4},lfC{>$>AԼ0 ,7omZ+:f!}XlV.jtI-R7(䝳cAnCx/LoH]ΞeVi>Ŧf(͞a:).xj޳Fi)n参|rn7<]'7?z{@J<% ygQ I%[a{3qlC*a&m%Sǭ[ߵuUw\TI W<@@)/F-K hU6aIX]=M% phȶӷOLu9cM9 R#"\j Ε$z{ + +wo>&n]$A& +> A6{oҘT NFl֥57,v=a,$2%E:ʤGكf.ڿY>nQnŖJղf]TH 3"؊m VQl(ƔbGJ54.{TR?+& !v:?PLPuo?MWP8*^~L5" O4]u:G尭*k';:RT9iiO@wBܹ>7~y>d)hG7C Kա鹬^h4֚)W(z>8M1q9e'B3Q\h1hΎ@UҬ5,]UB(FmBOe+J+}7}4ے'{.wyi,;c}8 HM!iWi>VY*JÀu.zvmc-̙c(%fQnCw`7]~ْ(pMG8 Ԑ;^eni ! Ćx.y7|i@ LizZ< ~hGF#3W@ H/}X>0e>$ 4G%i0ŀRlY#Ďp2 +эx밚24BX Ys=boGrX (Bi9,; $W, ER6ĄRE.C+ +Jx<L|Q3.2UjQ#fͪ\hej1#\=֥! z9A!Zf+Z[3慾EDRe֢!g9b#ZPΘ*f]"$a\KPQ4FPUʉwM#72A釣{S3!`WKsRڷC%&s 2X֩y1޲$ W$ YVk\зe ?#4{/z`rv4|^*?nϔ4@!aU*3O 7wɎQ}7m7oϮ___ɗח7W_V"mj-hAsG~\}Wb '{0 jC KjlFjp$zÄw" i݉/&5wx^a`v&>~ecܒb_wSu(m2^9nTIsJx6}[$~N.5|vڛeCc2֚ǫ[nʡ1M$ۤ-/$l +) +/VĚwJc|[kb֘r\G˷?;.(3l5;b\ڂ^hӁΛξƸb5uPkYeXc>qR;HkJ+XQB +XRGA:UdkvKXS^W`fJU#IR`"ne&(W Hkv/J>4;P- pvm5,jVfLt0؃MnflY+X,`eJ3IVIjy֙{٦[]l'Ιooq{{\D*{?MV;gE'R%!(Ӛ`UUYaUie  ,**oNJ%cYLWLf~ZawITU}8#%>G2n]2^3Pau_ BX;\av>V +֬|%|TU7ی=&u?g)ZdCu󇞤@UgAKlQePgiukϰUJ8N{Jp}hZpmMBW*}ܲT|Smmi"&ݢuǍE44TY>lZ-NY[} sggZsrȢ<ޏ \KXErg^i_u^ B}rQ*#e +[,=Q;=ff0ikr))vU%%e_#_.oSş,?.T7"KI5rl-G۾2WVd> akC=vLz%.<}?>yp6soLi %ٴQ~dZòft[!g%N墏(VSSV7ޔeiɹoSq !O(Lۆ, 4f22i#)ǜc|BZsY[5%e^y#KYsCW+爐ڤ/ L_y%m;m%&~Ss@SW(f@nww:X}@=r@}0yXp,HygsP`|s`?@9 `MT<$R$7jB"jmOiSPangj1 $> XÀiS _hSNjAT +`!A\ +D@A$`Z@# 6iLC{H{h{m{}zz~Tzvuhuuu? +z݂6$?ݒݚߑݢۄT(T?26tH?J)ķwHwhoooQ_##‡#߭GȇFߣ޽+3=|t}}}}}y(GGކFGGGFnF+c*͞T6cw ?X5f0wbm܍Xg͘c aL1sGVYF!Z^}lI0F^ifؠ֛bZ40^xcz3ɘ8H^C3eY3ʘ?`2&2Dm,ҴΧϠa^cU3`\su3$7 z^qo@+ǀ^e60ԧM.A ͊F'JTdtICIKI +P@,K %ԓ!)CVn$$ "!$HeK&PBZT'T4KJ%@jC "9s|"}Ā)4i 6I^Zu8hĀ;I? :$U$Tl+I }h}pÿ^Hj$?R4}MÿH7H$?$?mRب~3d"H%% ~KՑ~w~II~I~ߥ%? mQ=rxrxrpp`eapx tGK{|>BA^A_dw2rq9 l䂾zAA /#&)#vxO%=PpD=iH{OGMz'֟.J[kZo +z..=$_S+ 2qkWc%W= /.=}OwT KN]9q#vż1^^4Ă6gwƘ]+1|a߄,OVRTa0 kH6Iֱ =b $!`2Rb"b @(]uT[/I>[o3iFFMߙeó&xCɰ:Ӂ5'RHt8SѰ<7Cհ=R7C0_dɫ4ξI `=$U5d7"$ڄaJESiJ*"RET D7ccC$ kJ bk|QtFAu&YdHK|9y5JY%zFYk9"/qK\Kdy/Kt"+ABXF0 CV*CCVj1JJڙZb1jL2ɚ*̸5ΏtTT'je >KRӕƜbM+P c'5Yl☵α5}۹\u bۈC$7`1  ֔?zZ퇍Vї%#;W`^ɩ*?+#J%GPgk*ݤ+sgEUz*|?ISG6)ӧOXQ .5$5GR֭67BKżVvNR[UHT(ǂ*)%j(&qPRIϊZSwHxۧ*m,Qefj驺΍a7bwEIgDvi/X5TBSN&[ + +jf˓E&e:WL{j .E;}%\%V(V$x6_**}~>1ػRw״.` lk.$|V /Fu=9z]>g%_X6bv嬸83T:oc8њ~:N3Y,n/'}9y(V k Bc@TQœH;rԓ\J&֟S^4i3IM[rޔaADoyCr2J^oLυ'uL}}\ӛIYwLY,pO>c*C'UlQnm9i JN}6b3rJ\7nN:PFn*3fF{_EǎOeHdn$N$Y~X x )m#.^Yzt<gOLtl=Lڤ_ɲM>)mLjsFX޴k6qͼz'ĕkz] ϒ9rsj;&폡ȨP?2^>wwv9@~mUZM +Bssneb_]p7W1}qmdXG1ο{ |:ZvPP[r.~ޒBJ/V^u_Vcn+$P +H&T+x"it˱^y^?"KCogS"p-ѣe=8V +7_j kЄ]K=2l:ir+;(l}]׶kמ&[nNQ꬛|o +9lv"ʕ1LK;NxoTpCh98׬q\~#TnC<&r?R$5؊m#P+'O/$=yD9Oϩsf%|S-"9$j=N&w +gxXW=S'_Po _\.jq<Xa}ђ_uκ2Gsc A _賫 +AZM-Bܻp:T<}Phx. +WlS6iNOr+* Ǒw=LSbۿP' t,Ne'+#bZ jO)3g2w`q}اI;^F>vODf!d7!vNMږ*[,y 4mƐ4BHc쀦:#y^Ѣ].~i Z<<9#hC Fh0NiU j/XV{9m/u/n[cm#Q`+r=kpek'Nrv|9K5,^f2_b|Ib8ϕ8 ,?m2xҏQjs|EFv`MZmF??=VbJE_*=#a\Y>ʼd{vvX*1n +T"[)s|am h1:2g5%;'meCNr X77zs7b^k"򝫋7pOQ(';2s<7O]:-7!oBÕse=%[)[uG|}y6Q.uquiǶj/_n8"%K%.ǬnLèv_NN͌~Hn.m6l)m;0(qWx@ZS05VwvUO+|xٶ3۝Pk@[&+*Poy}cP~ح=oz~##IgۇJ2Uvo*'ÂcKfqۣPеem|{?X}~Jmxє`|U?@!ʊݙ]֙Z rȱ`{w9׍̷=ͷ=}}-juIa}{E^T`rxaU5uJ_tĖ$h۔YxaX#iAPyn*p޻c}U +=jG=7V؟UuLzW}D[xe /H}z}ަ>)2-+dtf/{шcBʷcƧ2R4ޘJ~Y[^G7qpB +kOs($a"v)xH=ͦCi)K댺%}P+d0yW3C߉iyd- OxᳺL>/!( xb]/BCƻP!P N)[պ(d#=X6$Ĺ{MOZI/u_(r;\=~ʣ:"Ng.<+f¸ )A|FDg޺[YHy ^bk|O2Q8+m8=:~̣|#OdQ@D8 ܤomy9ȘtLi,FN_%w839O?R$~$  9SnJfu*1=x9R`3n)K}Jd/= ̃ť%pAҷL)K}гɮ/?qxl#H;鼏DrQ SIlZb}KT KVc(ÍX -]{E}1ڜ^] :[C1Q=kƎvr@:ذx`jXi ҇/|M6TG֧c–0g[f[f9D[R˿_D--yQ˜_Pw4Vq6m; XISǩǭV30 ?ݧIփTKaʤ;KSabӊTus61ڒzhyDr%VG*m3K +uw0>/N^,\װݿ\=~☘smJ$K%y`0WB-Q!EA"űtLmuƦ#[hLCO>tŌiu9&^A9}Q]d6ȴ?0ݘ4BR4ۂoc7O2B7˻]O/{%흗+YWsoy~lwG]{SknY:6r^{ 8-~|O:WVgyZO2_iʝ 6梥’Uć-+IJl\)JaBX[՞Vr_pޞZՠ;#Q&e%y]!ÚJr-⌨iw1 gU]ާ4%)Ar+nKT>@au-C]qNJatQ}E{BoF+yQkjb(}29=Aro`+DYK1_.j3ZwG>Ũm^K 6霞Q`A_]C{gSO@:4zAcJcu3 4L-|%SS^@JNnƠ=*Tw+c A7u[ Sd {fvb1Iuzw|Y?<~y3qJ؝\35tʩ;p[Bp[;)~_sBS _SLGoS`笝 .=u N3,gAϪt@稟 +UGEVN3soθUi. NFړbq8Gs./SoSFϠ).͊,'F|eNSg,FݑvTG]pGUQg[G`NW9NLJ{RR ŧm%N]}}cP{/p>uWh ugO.gOC}o|6u@C 0ľ*?8AZV"T|I~s?n}> a>MhnXonXoM]b"K " L@$#!L`~55PP::.^ؖ@mj5:_DkWj1j!̍F ~H0?_ݾv<?{%} wԐ8bLwc3bA +d쓦apP R9X!=rh (:gE5T`:w69\r >#Ƞ́1D +cs $sOLڃ`2ˁ;w`Ɂ 2tkS!SEO֏xX|EfU젫`Ѕ& W:Oyqʫ&m[@Ұa/`V0A1[ +y n;`v n&qZvETsYF^{cI:m^cC1&Vk!4dr o{x(>\j4ؿ?SLi{JMs&&rhc=wB萤M"*-V23KK#K:FipM-::jj:[Z[kp mn 'ZZ>nn:GiiI$Drq!$p}r!Ira{*i=08F3P@3+֝:/Nli>\(CXj靓j?;ꝕ\zX]>_ξ읙}hk>nx E?d}0 BGQ$P}ArCgOaDߐ}zCkWqd}pz@vCo_! @¼)߰pzCk93ܩ||;Rሂ !|02)*P/1X21aۀ#@ilz֡\v\{a\!\|s 3 O&W'ٓ@_||hHx@W\: 'βxԎquPh~8-g/Ak_}b퀳ޗ}G}4k~|GM7HtG<;}G\;ȱyG|;: Wz?hz$0W{߻+VM=ش6nl&[5늟? 6s)':1}EP1paҍ/&L fdqI6)'MRi1a6>^bi)SK6oi1EC<J"ŔO|d$Wohɀ#Y#]"Ő"GeI3L$Xƒ-D`"m>5 +p ]rbr=`rz@[q\q1ɿ}X<]aZaabbZ v-& >L<f5TX䥟=uOO>0'Eg\s<LDej\zL3< +J3_<q-\M-Ŕ O +S,஑ǠZ&`S]y+Gn\rVOC]ГZ=wP 3@ Жk˲aG,Xܣց 0h[EA` #`ՃfNj׃ Rkv~36l]J~1soCऻ۱=;޾kkecp~mg1gwt$Q#:{ރ9$?,A`'N4W7OΦ>siˊԭ:Z$ܗp3'n`WJ?$Up??qK Aą&r Z:pgAt` vς9GB4ERրjSjG30OO6FpW>=f WzQ[ݾ{Nj_ĽZ ɜ>~T/x{_WO^s1(m髾k鑷 繺}_/jv:۶Nw(;7JX~ҽ;7Zx~Խ;7jֽ;7z;7-܁ٽ;7/h?݁۽;7/Xށݽ;7-ߠ}{YQs/d+]c]Z]{rU(HdIdHHȥ*GuMɓچ)}S )fj/U/P;ˆ4A~Xr+q}˳r+ˆCϴ+ȤoI2\"?NeᙸNE2\GI♸NYβr#)ҧXIi,v Go;-in߹ >GĈav6Y+v7dux=o>+VVO K*qŊ:1ź_ +Jb5P5BylCQs7&,m[٢A#ZDZՐqjZqV-Z|M-z6lI_~OKwh>qoQl^ppj㭏ks/U}epky~6Kh0m: emNhe"[T2m87ec~OyQv -㯝K&Mc̾"ÅN/@pmB'OMc(B9_ +cq!$G9{NӲѨTi} t$l%MUj8E r"8,EEII[ٛȓE>̇f%&~bg͋-lllj2l(1y^>_f PB^E4-'xf-gNdkXb+*{<&]H},t1CJNĕ!fǎ4; fS3&c>wQ\H準b4ٸ#C[1߸7Ti5s% 7Lj*Wjpi _.vْ6 -'RM?3y[P9&W[R9ޱLWyUM&ԺVQl"Y8?FJC,1G"pK-5BmKa+_fO4rtf&fi9:'5 Rzʗ\ YJrԵ}ʗxPe'V׆k +&HӘr:Ħheed4YR4"Xh)KSBd3YfG'ϡrǞۑrVpMoXg"iBY;2=RpER0e6r LukTm&-m* WĮ)2Ӏ;ydrv:۽xy:/$-Pu=C| {ܞ|c(r sqvQdYW\sq𬧟F^xKʍBԋ|W6ښ.@ngd@)15:X<(xq "g- ͠8Gm :D 䮌p ]9i%ERUM.|%s{Jo盞lNux_^>Cb +=Pn +7Q6lKNe:OHQ|Ԡ_N>OUg.YA 1RH +%˧ +xh%S.Z}1(nS굙]VU ֫I8J@*կr\{\Wsxb뗧IG3k몗Ckn=ɾ7:d9nGELWef[82rII֤Lp]fD\G9x>*; ˏr|=c.sLI6ߺý3}bEus1 ]z#V4狨ߝK Qr"s3]D %K~y߉Ũ7XʱwQmLDWn5v& CmN +Dl眍kםn1x{n^YB%+nC"Ws%/UwR6=24jf@kvN<_#$X(\g#UTyRc Z^3 D1oħmPU4ƃH4V Ѫ]sÙg]R0bMũ2!^ |Ӹjg8(.G=*K^R3g26Rز 6Dz+x!݇}Ė!5 4|OI22ETQ m#/X2S .f ԡpPsS+;F3õRS)lUx'KkjβT:d%(;|n\Iepzbq_лVJiGu*2+9U2x5ff$ר롢"\랞]vv)4(bW(xFt?€gP0\ 0ĭpٶ(0벭c3+tF*OB~uFg n[CDq?sA͓5 #&C;JK d@9JI$0n¼j3m-de #%ɅiKkɂ=Bs$}O]9$zx#KtFSz蟀ѻzbdg!kSRLRGeyY;ݳ4IRo@A)2 )0HD"4p(B9$p\fJ q7j*jֶy9jGY~[muuˊZEes gYߦWow-W_Ϗ y' +a}8mix/^L.9.Mn9TAo8o^b~B^C%:Bp@#}0t)F4݋$Mq mԅWTfOnG&ov:tE7vJ]\H6mNōKp$b1|qۘZ]~sc[]/tuaydLS5:- %ˆ' +tUy]YHpt +1u'ur-9A6%0< uƑ+T +e.i՜OkE)xYg IStU`_sFȔ.!/j>ȩЮb+-c +-[4u2gn{U,9gPĜ0cV8g6"QNٗV#]Ex%7ǣMN!Q_ԘE\F!1=Xz!P?m%sI2hyױ7#;KR 7EqvyrXZ +6j0%-ۀ~+v_BO{,v8=]+UHҶWx{l 5mBW[5ioT꺦z-vurݖV%샞r0}#3kG/&EN(ӰL ȥ>g{k3y9XT)qhgoiyAL3$GA,y ^0L}v4gZ'ybj(23ߌ2MaksesB- 3a2vfFLL7_.ܙ}SO #!I"3r7dgm'F25* \+pfKmkqG#O] +K% #r=3#Up̮մ.j|-~ ǻg,DGaȷ%xzlG1l1 Gk}C[p{ÖlV煢s`er9z C'RٙI݅~$w&&^PA"=*jf[pJ6oIG2=LZ&.nbR}uYӺxy>cS{` lY3W.'®|nI]lO=;/,q}L Ҟʞj)gjqETQ{X@x!!e:,(d*=! (($E*0KlJrD n5ZޚOVrz46 º}9|BiV{ڈK;oX/ G+ud.mV osӄTFN PuN' A(1Rrhy覾] ] aC<#+PvxAJB+|NH +[1!aHq<@D3{t Ztb*^&cs f60(0s'r^f0>7sV*D_rHmCH'+Yk1"QlNـ{$snc苕8=ll1*9;}^mDu@,4 +*%|HoRў=-3O/G~֢t U>'pCu,.!0<8a,Dc?0 +NZrxs )܅>;%0 .Vei~ i/ Tg2cl-YHsA;peG" +b-\4ĒFQ$;0\ta'esՊ-Z?lurR&'| +5˼i9c?tߵZz~=Aٲ6> +|HnԷ;N]=`OUn=FyY\|7XG eX,$u:ia;ܚœ%V gr6kׯD+ !(J"·2nG¤4$(' \%,zeWeKU3zf@(Snx*eUHQQ6aor%w O[qZuzIad +mߜ0=tpCmScmSzKaJb ]e`K?m_!'2ǖi,A]!za :bh}g9'Mߎ\r@.<&/sv<ۅ2M8'ILͰZp5C*'fXaD=jt?fXԅ8YD9 +L``ws3N-3 zb)a6|BN|,KҷK-_)-:ʺWWH˞xFFXop{oL>}Yo0q?a<'NqA> 姅Z_g||x o.xhG4{0T`?vC>aF7auD"E1%aOYq;ʫ^Q;AzB>}CKA, ^h(J&ʳԉ!fѳuò`yrOo8Gp_n'zγVky]ulytq?F,ON, 0LI~1h-ʴ@>%V4j${bQO6h{<hPpRIZEoڀ4фLK*(S35QZ>5 57t+zE \$biuZ{ wx;DBAióe_ +8_ˋ $bSpbe +nIs,8 킟<̤!&$zȳu˔~?%*AI1BE8:wZ'mU=KO b#{ hVK)xV0De>X_| a,G /scEMy6^L[4%A5XAO?%^'wOp'|bVf;}q>@o({߱_ctZn/'sO۲JyO$/Zۃ~)-ejVS]-JeV-\y#_c-psu}՟b/˝|r두(O\E3xwYQ?x -8?/ le|=3* Fٺ%Tx/VNj2ʰ^lpHn_ +ѧ>&O2gMzj( O΄(Nah +.Ou 3L=I)k~`%Ix7Cq R ؤ 4'1̪IvwO{,#z,mBN*kІڣh2IJI[d5r|MN?ҥ Ǻg6).(+6B {_>SfsF$p +ݟzTB1aMw^@u%D:! &W +%'hI׃[z4&5V`Kl}F<ٔuʄmjƍ~*i&f!~0@9Bz( 582Ȯ6XYXe9x3Ȝp hh:a +XXB^+NIL'E2 D Ln\.S0|NyCK2?עt=կ6[vK-gS#-TnqӟB?D*<*c+o_KX_!ݙl+#M|@*p=9Ql2̉Z !XZOˆzu [}}֟ց<.&.{  ľq{NOe0Z (C + L2kHFC.k≤|ݸj1\iX[G5:պζC3 Fд) bhmmKro^3EзE0ʤs+nIk˰e[Wk6Xw9do[7_ORYbVzml@tqV,Mz+˶/Ro ̏sv)λ(´\Hݴҵl!he +>{Hu|6DXO-bh_6Eߴn#᫐Ӽ@2׸^0׼RGliY37{JSkZ_Z Oyi׻oحW} EX$4ϸwO~Щ- ^rGaYD,DAX:Glђ,ˆ5[ޓ_jպRf7K/X?xY0׼"@0ոҎ^4mXs'WW.k!/i/he۠!Q 1xOO`K(PU4* mj/[Xa\(@v&g$qMa `/]YKJ6],%GYkiGkuiAmoeX~DBuƒ,yT6Cݗ;&mn:.!LH9sn ;%}ZNاj?AOni. !&JÍ]YXH A2͖Vw^K:ieF~ܘaI(!lMsz:Ƣ)OsMEԶ#_+VycP@#RUqBC^SVˎeaEI[[swk\]49th9 [Htn+Kx +:#fiJCwG +uU\yUBttZw~cMU,vQ^evĢ,݄LKzz™<A[yGGR`8q֙nŢَa 66+D {m*1M[5(fB*v0tYJygke+s,u6Q d2^Q 5wRl +MTK1+{S+PVoLlБ[m~DSbV奅kemlstLEЄ`֊\w=ʸO/9gRX{|s$uAu}~p@WU#䵑tNnXG-SD eآաH4wR,ij{uTMUY><e$2wį<޵E4)v䡌@eQW8ue#ucuB +ϡ-cKyųCi +e)N)~UՄ]W{>)G҆mLYiH,vu9DKcYI_6)Gm|MeYUy;"XjzlQ4ʂE_FӻUףX G4 zc +[f+wr2p%]U֋g![ʒʖ f$UnTwu*:]LA=@Xݖxd,,"VDK(ܱҚRHKKř4Y[ʋ٦ErM0fbI8mֵ¥\o_97p{JQɼ^E,䪰iJ)- +]ԷkFd:&z\^^i;ض6%.5I a'ZoƤ3/A3$)F13CNb2 cf.t'5ؐؕ@n;f0& V8f)+ل`SnN?b7]|Ɩ(nԈ4i[af_/&c5'9/$DATv%e:Q&o+I'$RP櫪 + *R; H9e&_PLi0aS7;jw]J+cj5DV&,mhe VZGL%oTtA''CS塓JcO#)Lf-ԸޝQaDQɿVf%PdĘuW )XjItQl#U. [q&v'VӅ"dE!:rbXO!w̐C?DfRT{k6I79|kK,;ü}q8le2Jł3QHW(nD  t(wwLy5O͵mi=򮁑{ߨ QeOK\IG/Lyu]cYln{wL;.\)"-ԖuU֐T +.M2zO\(-dT<;m۞wbZF r΅ *FJJ-`i6”iՅ$,D^o1gNf< ҦvSʉ2!2N]Yk(}GSI$'9R *܄)*~j %яٓfn_FNy +Xڤ{p*hROZ :H0e)?E[:EZє>4jO$V*FC4㤁ԮKʥ{K&vhÕSf'%,V ӳu>:zRZvcج'S+Mz33ɻl^VJ[*_.f`ɗr} d$6,,=ɣ1c>ؔ7F0 #y|Y1e}–3J2 "N ,dscHwXy=t|L;x8`LB/t,-m< Rt4ޔ$֩?wJ6ndMryOkjI%uM;%,Jo}A!Dq@dy)}(z/AaaCB;@N6{ƒ!9kӇ+~DQQõ[Yc"BkFIouz\~z|w{1_+}°^f >S*d*N[iLL]D%mWA{ ¢oXnq댊[6r 6J4lv!]}Inl!^pp-[wSq,GY'VvLәW\\[|^Qnoa/B+&AkB{n͝I\VMW-нw@8؈3RXt'v(`UU^vg;Ԍ| շO-NSӍR(uiH@* ++,;-[2-a%̹hѱS&̾ZIyB>r-l:xJRչvMQ߸"+.ޠJJK%CL/ߡOQ|n52rwb9ou޺mf ++|R=\xi;WS]ۑ|+O^U4{?9<u7]-VR[-X(W-S5@#u*Յz +2lGT1{\B@ΔUiY{%:˸ +qMu<m {beu%;K06t3H{D@J[WEAE׀jn 1{, u4>3~!㗈-[b_|8[T!ߓsIw"TKZ>y-؟c59n`ۘݢ>^ꟗ&|i}(vJ+ 3_uS#?BYO"UW*E d,'QHJ +NIr=Ao2a>'u=$o|* +qc{PgG$Ἇ/Inw̑ PFo}i0㇄bDS + `_GYxqC3Ǩu)bx1oxĬKc`|?jnm[A>)цS!N%Of:U(U=Mg٬SR +oԯAHNXĹ]DBcY]F$YECL; ]\M) [ ƭN*OiCO'i`$41 |gAtîf"Ũ JKPm @K1+:N_kik啜o 4{V1qPاأ̳XJRrG;y4'`Lb=P҈٨v%iZ" L@8Y|RKspM:`?DF +-^\c2m 3 !_ԆFܢ3Y`7]x-L)P痯:fz2fx&M61AQwPj!m4NA4@!ԖK>6v q_7=JxᘁX@Kn,ƒZfr1GTE|[g]2OFUQWU0%.u _GtX\{-A-%KjBk\Vy9!B\ll$"*Z/닩۵qP޸Y$EyqZ@[Vx,F@&; ?p{4@SFז[7r }ZkDcv9n]'$ug;\ԬX"ur!lZ,zӊO1tv G:Y>o?9f88caz9zK|@~wZ?phFtzEj ;j3fއOa7b;#7:Լ~ekl4ecVU;'`b* )$-41UpC'1@,¹"PwպJכXX& gl{$&&r7B%L `)X8AHdjlZ~tT _]`|8|2U= b|`Fh1e +ad>b-?=ScZ‘%KB7K@"=D =rJb 9I ZPʂ +G`y$AYt|kRqfcCMAbql}P,uŽr oZӷE77('3K|9vh(2IBcLydMB>_-X#baA r/g8\:T]:\&Vؠ;tZ%Tp  xIAqHa(Pl9K}xsDq1vuiV!y h-EJozv` l#Ae~=%Ž)zvhnW">BUWU̳^,xc?Ofi䕎Ȍ1ڻ V@U,]QSfK~^VFUE.D&MJ"iXt+X9H:#{̢Z +8u+-BZ=KцE*U +BH):bj )1֊'#n32u%zb͵uH֖I?WBu]w]_^Ge%*T{^ѷ|˵Emp4^ Q!xK"#F{ھ6YxfE^bdy廑SFn-%J %*$UcBEODL+La3%(! ˡo,u%w P4~˿?sIPuߟ3ӑhhH SQ&x;=fBlXV( roِl<~654/uwpR-:jp;B{埐56e=#쪃<ƀ촳?,4:DEWҺSw"3b x-{Ouxu܎gYO4X*.7MjkfnAr +Ys4FPdUr<RCq˽484*J ÂM(YPPJy.h+dԅTKiaLoB!ҕ!QcḾ#}*?Q"DSQIaK}? 1'hT$w)B*>sCrSM*膹83s1r±kSrh(o<#NBd+Q`\6h9("޼LF}%,Z_·fxqUF; ifߓD(ؚv{Z@ݘ.cZ4*4Z|octe#(RZUt #{Ъ}rBS>sp :%ρܙ|<0Q~\(v _ײqXBĹ 1_ % %|A,va +NgquqlRa𜷩c+L'moɄ3}f-;őطj 3?ҨXEN}3_϶SZhd% Y `ص+RRjkLjoАGg_&KK(F/n{`!F?B6/aS.?Ե=)!==M#(yZ|*tx0C;z8✕D0`(n:w(Do=h\0ܑ{ X={)tBplطܷI>+(}0 sEUIɋlco!'$ome/~C:`be/8/}}YGb¥3}8X0{=#;چgzq ]pK8zhT-d%B8{ȵHgraK#D Y\9sS#ʪgJ]RCm(=a,ԭ~yʄKR(MD\,ev}VAT45#O>i/5J8ϝ!D.JZ2I?>ɋ hN^k[9󌤩Jb b#/4xL4w*JZrFJBC$5Aё/eWOlIߢ\00zCbUq O"g_}o`xӱA,xnm`,V>qNq[adz՟X v˝aKX#^i ꣾd& .jᝣlYkB[!By#xux+1x?ta11MPO*xRgPO.xZB^1txu!. 1=wxB\5XJyQ$U>?ȫDݐ +C.0]y!f.c|[Bd~lXq0ɣ!ӇP(07䵙ԁk,};4=2=8{,}d8p 8_OXGځ.{̺d>l+wjI(}]rc6<׆}2fzFF[ɿ"=ǻ|`& TO.׍@*Oy4`vg[߯0::߷mznMsK|c~GAhz};^} 901<8>ff>f޹ccGsO??PA9w(_4toFjQ_<#oF@3QeiVֈeu=hnPQ6TC8 +}Mg?N5b\° }DH&)=BɘRtJzDS4ezSfakt9Yɘ{eJ/cLjm1QؗB8ð p :!?Â)Jt5JF +,j,4"F#mКG\հ_#[8Q+Q$'Zَtl)T1Yy$E;rN!fj3zGKO(5J"eNE@;٨Eљנ[=u^1FLoɞt d0DuN={J@6 Uz aS7Dk% V[`UZg4YW{w(t٢6DW]w4KwFrT]^rC\j[z1t>bXz +v` wL=6Ժw]fCxruȡ{OV@sk!yJߙfEpLýn=}顐#֟`ڹ='i|d]~HWӗ~Lb3Pgd]oNpTsͺV=]Dȏ`apC6K4-t\7Pk_7l+ok}(ԴƛonqyV&cNƼ<0zw-hOۏ]~{ (۽:>*x&7u7l3Nn~?⮟޾0$>nݾ֦xN@|cLGo&4kagsj@{Dk/[=ݳt~fC6 ڑfIpˎM芖"=/O1© B|P邰Z9]*Q㽱P۶!ua6hi0M((;+~9K:z ߔhBD xlj]a]]<zC A8B5bX " ^ F ׼RG_o +1Z9bL}B֮||fs?Hca~Yz}FjNV2zqkVXo>UiwL(05JQr{*_v K1#cg +|$&ɇ(m6`o b:32sPᜬ MfQY]oA8wTyLr_fV]\i1 CTbťNxseO! C+CBܾ=؍?˞;B~[m0MikD ӼN ^'ᬿi?0TlLҬ ܑq9|(uteJW" +ۙB's#ܩNtJ6La"B#H+|fͪa\.k~Zz/aҤ3f%#q{ ,*)dJ",1ǧA$.潆aWz6Vt߫ݲOxoը/ .~A8ߑ$0IѸ>+|u,hez]?z , JYѬ^؁j$Җ֬ 78N]r.:x'9h[<6Cp[x_(g%PkOB8+ػbB u–j2~s5}v + idxD+[T+Wr!տq 0NY{A# SZTS%]~|^ ?߅0@l)~lt2}qNK\%/LC2o/]QΖ3*R72RenČ/e]u_&pVˈ95,əY0-]p<ӎ`7_Ҡ_gwb${tUCtc=xx]7y=Wc< Q3sA#_eDLI0. 2j,yR0l̏ \7|VIҊX芞6xX6:HY2<1\_<_ . a VBн m{-7{at U[ x4йG4 ] 珈 +a~gHoHl{Ԓ^$393qϽ5{f]BR-Iؒ| ms"ok>oS? (?RɼSh?Hy ]fMj۶m{ͯm۶m۶m۶mq有={"*"o*2*J\_͓r{rr);l6BX0Zg(sYD/|iʑ*U/p~&ISqgQ9u'( /쩣 Zn֖Ҵ+]l9m |'!vSIRfc:Èk% 8^rՇTD* ^e7F UwCV_8f^=廲nQ퇓* ;ףS.,8 +WtـĈ 7dbCI%cP=I?Y!N `(锌V4օnzrH^ɼi})2""Q焼&PqUcӛ2ÁxSw/SʌsWqG~CzE}?P$ +z{0i>Bsֆ!ɭ % ڌg2}? _z +ՈN beБOu-F;}NGHaSirfw^YȺY$}4"/zJ3֔Bt,V~&Jջzc銄#qew%]ɛ(-Y@G'* ' k0lG6ug͙kv؍ZsR`@<146t7mhsf z(ڵ,&ussVNh"0u18I@$]U*9Oz£vCXZF̤Q[x.*o{eb@ v̍0I͍ `Wq&v;nˈݔ.(e$[p/nMjeݸ# s0z%F:hR+eM4wذ-XKwEu@!gSt"-?FJ@ aڢi]{C,x +/>G5r֦$ymӴP(Hŷ$6 Ϗд6N3lr-ŵ@zǵmvƶcu40O 0o/y @ +$$a"$Y ⒨ N4/N(?3yrC̴&4G Fs!sLXI~ .s]3H !a1GhS刊8x a< `"1:5sul2hdvf{)(AtH6K&zπO3s!?ҘotG̴# +wtrgC[=lXh/N;X85H3[MO UPt_8ȟڇ=)sM>/q?xvWh37}@,}Z7}͠[?bAw0>@1ԛ0f܎&U])M̦#f3`s>Xd2ZTh(\%gԄ5ȲdVzB$1K"\ +J@UK N2[R例Y%e''yJL|.'qo.t6bipAJ]I_Հ+؄&5ѕva"@7 +-;XR;@5J|ħ$R[IY+ȑ@"8GWqQ3U#ZPBPq#!;n@1ϬtY2$9˯p&E huA/82<)Le\i0b$e+sre\`>%sReQ_44Ex1% 0:ʔ6x')X1L/br +md& N#'f(błdD1,qjR2~[͓e~ q dD89wbGYμ};T*;$=1T^ I*yPbLn>P5b +  yi5x+J3Z`wdn!>Iȩ]Pq'^'%0sqp,caH%')QZy_($g [+܈MD7A +$mţհDŽ`M9a;y(KzKjppB)5MF|K + oMݤ(5SCu L?iQF.Wـ. &JHTTn"$ +f1IKEP2BE(8윉>0%4{b#PffJ tC +ևTQ-6wKy;+`U2,],:D5mE+EA3r6 #hEIEͿg'e)b6^! , % <ҁ`y`20,iM MN )\dU dV y&di, z 3-+F+f FMdM F.2/\O\$Fd/E⦅d!iV Fi8aN-fLXVG\d2#iZED촭1L2vF qB9#iiEisqZiK&D#Vq2 E߾I{ZS^O $ +f D Ry4zIoS^z~Han°$A 3iH:]CEm/5GZPf-5.˫[T*>{{3_MN^|_|89AØ1(8aJ"eJ3zl`0' Z`0'N .sthj. Ĩ`ŔerZVNad#{a&5V*(TZ)Pf.Yp6Z('ZAN8 •ϛ˙\!.,B4cw8{KL-=tt.~J:4$)ԇIv!d=5JLCU-nB0]vH!+cM"_Cg+0\aB^Mжm%Զ+¶=Wƶ~`5*<С-cxByKP FWfX]B' U;NTUq.8&#t9a9]ξ,װ{[?j{C*+ө'X-4dՁse}[bgx{{@P&͎}k^+pJ+F׬'[3~'Wp.˽+9SDШֻ}82r=o/t'&aS/ǐ[*$[J}?@,]Ʒ0I=%9E55L";&qgIN㎩=zU1A= `@-0`LA~w(~=0!|S~;Q&Nd^Ȉ-w@A0ԅA= ?RcyTr Tr^휣 #}~:,!lT46>T,0X8yBc#rU4Z&+-Rh5!0IrxfF %ƴ @N#T@wf>=@ ~ub@:tZX,:D>*WϫP\j'8< FՋbꂉ s[qn9w\l#gi.#0΢*"!(i`r[UOc؇BK2Cވ"Vp`2>VE݅mՍb_ÏTT`̌yhJux/CA<5nBu`LP?-T \k #S$xm%š>0#+Ȭ{j%ɽ Mf *',FA+D5oh H&j\]l^zw02*Ӗ+k Y1 [>!D CXI/H^=s8شkU!,js{v^ĄD -zb47zee%WCKme-GMi1%vCPƆR:J!;E:>tbP?C|z$ l{N:4=?tڠBJ.k??XS#0>b!dķ?=K {g/H5Ϛlr5l-𭘋rfKzQKS +"9CkY1IP[r4 orYMMQKq[~{-#ϽN uc51,2J$HH!Ia2+- 8}_X}c=gezKj@ `Y]Bq#r\n 07U[1g hmX9emHn8 dٴnDPS["Me4/ dDCj1Ioe7)]#JU } XПY')ϛw$jE4ݽ1وx>72n<Op~ "%b|x |2MҬe 0F-o)f[ұZ+ڵxBNQnqK=ST=P:nb ^0x"L<ѽE#{V~PX^ g.=-!7%Xt!4~1-@ gtg[3QI6C5ec2U:4y 64ަbGF⓭#In͍o:iSGܜQTSR5Fɥ6n>/wCG^wB3v=n;^[XX!d!x+Gk>~$307c07YrJѠ`QjaXp% N![̭HsN`k#7fbb(rV%M.m'kXw#Uɰ㺼֏{ ǭih1LS\Bf LLM}''<6)#2;mjqnt\R+Wi7ǟM[ ;i"&E%ΆDT!(\0wWsmݹ+[_@|y2Jr "C{:"4.! z:]-ICi>N g^aR] o8UYlzxWMܙë\3e}X+SErI(i!3P +lVhd,B,.ݳOv*ss8uuM0[9s6~)p'v-kcץpmDR{G>;J y <)yj'Ua3V3p<CC +8Z)$ ͨO@.j)"l2ac:oi<:Zp#lՉ_~?+h}s^; ژb {,}eiuf;Y|[B[ +'͎x<0e"ЍT_P&SWʖy]*5̖q!# .׸k6};rHiGO$;Tv`'i *aFhVP-I 0X&(z^9>0\>(JO|sRS2)fXFTzfU# B_2U,\fVPQHoj`WQ2WA„\nJDYqoѲfE-ђfʬ6G9{dt4֐HzӣeUjvrKqUrt( Ju ++1)l1V\UQ\MƤv GFdysnyy7@y(l_U'l+GRވvu53LՃ,nK!VIEv^0#_L w +[e8;2":)AhDRtGlIrCSlOB+\+1߲pѰ;xW\eˈFYl{/!ɟmHT6,+mJ!?$z-.. WJ&.\-[}7[ 7Ưn;lEc>xC3Ac=ѫ&œnb9dv2ݱ%8SiftnP67Yo6^l$Ns01X1U?1tr4%|NR! VN P.0]+Jh+ҹ='}ֿ.*KeXr ]‡\TvP Aid8}슅&ǘodyg,jrV)ݒ?vy#t?*|X ٢g>ަ3כ|![r4yBoiB"#˧?LaƥhAHug,$ekw-*q 3 7ć-/4XzS۞7 lK`~3;=jKJI_a$}є)J(<٣k Ak +"x>/#d,DpcalO|{62fYh1h`41R_?x)2]>ĂijH=b|oL2ݡ])y?$ :&norHky%g<*}`Y}}uy/&%e:Z} @񪪠;޻iiwy&E ͿMU(FrxTzeΏ$;bģuW4c>1a3K CʴYyC& S3]NqaL RWC\ha` K5]$}6,IpK>4llc!V/pz7]'*_;%ߐ2׎lfU9mܥS4_Yxv MIT_Ctң<23<۽vk죢O(Mt,)"vkGo|[TyT߯9i1sHvm t,\ⅷS8dX /q}69I`t2Nf֪vpNVC劽tbV=''|IL8phI,Fo8eK@4܁P ֶ;Al ^Ʈy> Cyvdo:`W5C@tJʣ*P )@X77ؚ!'~i q>mUn`<b;YFV|Ixb 4Oy%da-u 1U82Uilj9wDz̿TSjE]~TT}u*q*=쬣ݻ6'Jÿmd1pD*Rpo_t>tz~R"@l*\LL/F!竵 oy +?QA7RT&1 q٬ lbHLӦ~yZϓܫ<6K 2$Rg9U# Vz!TJ9g1Hc#c;Jýh\Nl ⹓Z)Qie"?2[k;7gJ ]F-fmY.&i2rfti4rm5?D=vH=AwS1j +Z@+*#f^1poTQweK\ +kr;ugdChj C˯Dgq\di8 w~ۘ=`TUDr9Lڌ5PJW弼ȧB[cTԾi??Aov-4RK^'jt ^Y܇'QdIy{[G'oUn'l?<\]ۧ drpk\D%7{Odx1hju|Gu&VH nY6,>S5/Zַ?){;/@5)OϾhrw@fFSP ;:̇:_99X:oiE9w*qsns>|ʚw=Ǽcp5$1>Z}g]bkK(gXJ%x&7a!a!#Ȗ$1M<';T:QAeUaΥ,*{N˞*4*}rgZ@U:$ͳZHUXg%3%5l'[;X̊qPRC1sPw!s_ +d[ZՃ_e9u@gy$SR*pzyиcx + ,u[Pܮ 1?  +?6 0?y 3upT{^ipZ@j`fKX5'v9^y[vO<<y@<`MS]ggs*!_Wt_iO0D"Mjxqp@nr_(Ėo!Dut9w +&<+ -'>D;m/Oh-txpae >J$=6 "|-a3+ N r0|PsG}56(1.rk5ѭm_^5|WnGUX=l+`H`!$]Z.ORXBZN bs67R8UȪ>M;n.)_i|A;aԶx'Pp7ch>{RBTQꥐns" he}2A:ȠRhS@upBx)k4, rlv#ӼiۮcXpxk22]Inϥ +mcf5|@4|ڟӻdJND\I d(p%rT&7rt7 ~;ZZOdjaP|`YUL t( %98Hz> tD׆1e+x^ρI5soc}^ІVd*C0r5&6s-L8A,(E .&=> LФ ?ұM(UUpdR㷐WgҨ㥄t(qls23siQ/mSP4J=Ў/ 0ĕq(}Mrtp"}gL"ѐ1s"*iEbq09b>#G{rKSFͺ{nXӠc&|2[u9xWxşdf +_Zr{@?~JU %v~Mu?S􇟠 ]-74^h-R /G$#x"4K|a$ʀě+cvg9gPXt͠=RhՊ$ &-re'UƝj^8OBһdD"Rww)tiʠaut>T(} A͔t +yg2i /J*=7dɐFK}FT:븊 +bod%r޿؟e ARܠ&ok79Ѕ$׳X7Dλ%.1Nn *<xz,`eRm MU Pt{^ӆ nJ#"/#tٺ Lǃe6KZR¤5i|.( 'z}g&4ܽ{ &4b~:@p׎5D`]I=XJ 3j@QXnCXQӌr~E\&^Cz[ZJ xކ5Yb` @}-Ī"f^=?eR2VQ0*D0.P +&*_>*$QQ0O EIx?(Z$Z@&_*Dl`:d:e0-j}FhH32a7,H_d}GFejA"C4F("*Uhjvf"fBVthT `m,[B#_kaw_ZѺomxa(R-aZ0HCz*[$#Yd.*[dt:C> +"|D/n!6k;߲F}z iL4Q6z- tܘJqgoxow6kյ,n;nFb +-Ջrrr(1Ԣv  ׾vu8/*8ZЪR;}{u,e-+'.lTS9%qKc.d*(Б/pA9f]2∶@l8;D?PVMD?ЧAӊ}l pJkqS~@opJcS p9Jp3(쳢@!Uyix8`ޱf&A"rOhAqJAVa)8h됯Cnq&#,öAR9s!CAmV3g;t~(aJǤIw|j1-iX>Se@ +5&wmcoVD6ؒww~^` i;0$SH<vBF >Q1D1QF%ޑ:[rwR|P\ih\ I81'3HJDIS͒m:zS`5/o᣹2>w7d׮q߀t) kI㖍rymB}J`KZkD>C +FL &đ|J,@.g\7nBļEIm5 ;'#r8P~S}^Cnq4V&g0nrtvҪ.MA{2rL [De}EtqJqڒ@iH}$$Xau6hȪFH{,:.MR׺kw*fH^})_\|^B8;Mq%Βz:͂j>ba;0J'`tLP;ùj?bN.8D/򵌿Vl8k8._B_<C'u<[f~:@>nkX^wMQRCz@0} +>vRG!O3g]8w".Xf~M}X*XUQ/ibtL!S=!0ؒ@ i%Hu}X!a.vLD*D5 4g8u$cjHٹ(`M42[^j͜os]Hp:o'5G9^ژVZʖ%`/}=t]IJT(X%oN[z쀳) +x\d˿dA>Q醨?!.VIgz >DDq{$myRxC~ @ݎ$})~v9}W-rb!u h>q,⨯$Ws9qBx3Kl  u؝eWNQX,)Y-e{ˠ.Cz_߼pwAc_=ve|r콿gW8јLX. zpkmQq-* +2>:5LUت#nÔg#۝ό#eZW i w=ṅ4uXJy sָ8{D.i<)RJ#vsPuzPHE]s_ؕ:KOWxF9.xP4'a59=Bot;Ha/X '|I*ja3;HpR]:h{nHf br?;3xrȾsrgD\iZTǛ_#>-ʏnEb0(ʎBEW%[,R mܘ13ٱ:b9'd9_^6vr(_ji]>>^2o/Gt;(e|q?<@Z S5PFs\ lc~#ߛ9Q +6őӍ9k%{jr d6&'El6`v fL`m XҦH[;`?>%CA5c3H͍fM` +j&jlaMpꚔ-h*ߞ\_6%E'\bU=r'V5Hc.dT"1*FuN$M܎{b8Y=c.7=U|~\|\6?5܈!;t u,lڔg1f!Z%c3NQb+Roߤ_C\+}@xz7ae +1ȼ@K VʿAXwHE".6'E8ψ%wlfW}/\c/Gxcc]v +^CkTW7]ؿ>QJC;\K,UC ]#, cnZ j2/!Y7|Ztl?l)]5Wt>w*cb-tnj ߰tW{|/:`]%PK gQh[r:@5ETٶi_.G#U thF' pjs gJ%zu(U/g[TjS6Cr)O'5Z{4juV-lN-n/Os?@7|fdKt LS/@???P?(&۔ XZ5܈8B{1Qak;D]!G>2_Xsn$첰|57mr*>BD&aDQO +1DB&qdKk(/j3?K-f3h<3чq&5L7u9FGZG S&Z.%%dqWb+3dC%jP{Js &Iu&3E߾!>v,̵ +~_L[?ONoqs@]rP3|P,ХB:{M{8?ljw#=}t:.u 4VI.?F +=LT9-;v #CguN"yD?9 +@@0@@c8U4]Q~d%%'eY#͛h%͇9Id +m{:'g +*L_7W{ޏ]F1%B1Q11ЌPFbǂcGl#|NZ򡥲P8т0Gh +) +IR\zaR/342\`ǖ7'P4w7&_*UJr̍qN +حC T0xgtlc(Ok57 ڨ/5ee~IO3$=ڋT,S4JJ2HҌ(+ 4SS-x" b`L.ZXNJT +`Qt"E@j-Wjhۘo25,pI11"* cALM0Qg#%{8Jfe.VX(ѺVb KKTa61 &}]vE-l; +Q˰Y?+Ob>ʤ2aȝjCۍ{qK DhNwnD# Lم*RƔ'qSvH֭\!"1?91[='$ZnRm>a&-ctZ@~DvtA$`3w37p$f[/<9b]SuIaR(K~xQnHUNERf*s(~(BX}&RϩEy'9'R7HS<i\JKEgNZdܼ:f> +D+Q+SX[iӽy:(IJNsӤtMvC.z&`.jkv[$YwõZwS.Qv^k% jZ]4'v +nkݒl'BWU7k@VçD?,_ ˻j!P]*6Ҡ$ÄpÞ\Do 91QH<9PNQ>mt"7ؙ[.|>E0QCv197|>KKÎk+0#{6Rv3+r[ͅDW nZbP;>Uخ"FW;g{ ]Žx^­`\Q,Rb$GꅰD`e)O=`쀇!#@+02a4!zPr6>( ų^l参DžKEMؾvש}Ro8#peҒ-Zˡ\t+ +^@4 +EGꂺzG2?δD>3 Fq㧹mymKu;Ӻ %{'촛1ON㲩Kif}d+4,dNs." O(8+!Moi#4g#bE앁{. 23d9Hk|9Nվ՛67E-Ⴎv$PvGl O(A*eo\}%tRA_A_udBgn\I!-s-|曐gGx%{BI0֥PM0֩MMŐ(YSi`&&t ɒ(nIZĈUkXg}f!-Қg_p[,(TRwl?:Cqn{Э&3&6|>x+ẆIdg'oOj2p/ y0Jژ#do7$KxI +_%=D;*Ps"d-bؽ0J&1&9ɂBB=#Ir=G/;v>̃8xXlY +EFA(<RT\sO`>ˎ8: c(,t ; +S1O cȔbk}k8]`ׯDRg<^] [{@wL^TLI^Eې?9k4ˠyR B>\ +'@.XyG3eZ '(#} !4 lT"Mb|H_ %\T,/X82U0"Ny`E(X$A1ͯlWzwjBZR@=Ȟ".%d˅CtG7+!cK* &+HB 8*رVB޿}vu)jbE×/*[vXӴ([([D?E[!["@m7UUuM2(V%zznp7YbT>(hw%/i.k(mSCW?B/XpJ>aӥY;hD]2eO62V҇a8(?^Wͽ.ԏ0}Gb]0>b:0$ +(׭ 4L9sD Qs\;j#9bhVbMT@H,(FPηBx(C/~c, rOxg P:J[NQ>J'iˬÊiG3sZ<b֭$DXV>/?3OTb `&G߿%'WC'- =ò1BGmO) +ϙX5{vAʹ2Jg  j +mD H5P*K˄HG Xb#+) +t9@`X)AʰD>П1R)Z +e@h@=0,K8*d1Ç2yD?!5i3zSI~ @W'˵k(%:svm`Hd&XjAf~q[E;"?E)^2~yDW91WAA pdLzid@q||br1wR]:nrjHe~+7K dMm|u ֺ",1-_ɄVDҴ➑%ZJ1 "&NGU߿Ѿ1qVt e/K214𪄱^T%X +*Qd մyIK JX|Z2P SVjGc;oP q->SȘI͑Јe.54j-r FmdN#(OHuM;c#i JB˷L +P?y+)x9|8KIFvgJȌ% +O_ 9f"2ookq[E&I"gFc(mHt:JZ,KhT,uO_cK087?G.ڣ7&^Zk"_6QDIuW1M޾6{sL| 2 7uq؋?焯/oUU?,}ں +$[dᄉ/TSFbd YlqD%9vN`X}~o/HƚjwVEBրd$}m#'wE\06O.e4ɼ,i(NDz\y97% J`]$.2[;i^[ D+P&m +"ʂQRƍI75?X[?ENIMKi~Plf8\E{UL0v-T$#G&iN/;P"ixCR]4,=%J9Qh8lW\C(FZwTIl^zsR$1t `;[q(˜4߅rZ>d +8RQ4˓2%Ls_0WIli0:SQ@N&Eܸ[^3 a~$mԾ[&8!9 +]/}*&VAuk~Yy'Jɼyusu܅ܑTI¶VlG%(Qx}.XYQ+RkQlzJDi0M!ϖX6 /Yܤ2+*`>fc&2h |IXH-?mݽa4I1*++_]f+ijd^[ֹ5_⽭_^d^9̴'ЂOPS F& <'Woc1&dFc`wJ5hŗX<#)(XaSV1ѸN~³$>3,<v_[Y^ᩭv~,v žCWgQD[oPi86 >wM S&9cNZYΓ0JxM5h|?I7ͭԑ;Km6*]-s˪KŶ`xQdd "yEpSE,E N/ҔMe8"$6ť;׳Ss\_ dїb5l@!FL )Z Fōn>L[~n(4 `74? cGNxh!."{v4' +k4cD +5; >SIq.~h IaU Fc1>4P"'P7S֑_PN B#ґBÚ/Mkb,#"Ǫ(шwK₯H9`m:qXF"**&Y%?hWs}X֑Z}"9 +\N?Do$\-gkm5mPqϠK5]{fJ2O֬i:r!?n[k:~+3>@^OKBMT +>u +Dѐ,-?yw)_^OǦk&SM v@mvob;ZVl&\]{-hc9bmJ Ӗ"IҬjmF68 A(Bcx so$ĶvZ>J"mm/Z}Ni[M"Go 4'% +إx×]i*sen0o˧?ViNn#Ⳛ;*la9䓥DnR ^.-޸~M]{POx™"hv҈Hg0.v˱-^dݝan?]f)ar] E+D=^6R^1&A|~wKFmo2z4JZpji6rVRmyERO{ )Y=,t:].3?r2T], n7?)g^2;>k-cA@3ɞ6lzO[Czg6/>7\zoQ7Y3G>cC +ynޗ4ʷ`mQSѫ4ƘЁêa]u^(J*sQ ~tR7Oa{w^#U=](SA"τU!:|rݨ}yTkn&EQ^B߀kMft134[uh Ӭ-?z#xPg+e(3Zೱ6_N1eOn-ݲ?Bgt鵆ϬFAOp_\JGsX2U'O D+Iwc>)ݝu^aXў![E澯^ fHRcԉw ºk".W $Qj'qB`WVO(BBͨ ƪ6IP$:.qn[)J?:>) uW-ZWmV +nάR[u$=t+|[J眔ş%p=);~F݊*T#p!D%?A'{|~و͑bC2]Cv89 Ak6j8,n`dbw5q%{|U7,kJoȮ!8iזDlqvʟ5??v[ +76]r]D>ۭ+#Z=I:`Y O*65 +'G)ZGMO6)X!T$5~G'[*v|NM&Teo0s(D {5'L݆$\%\?mem +6+8!;il5>c'QNɾBPFbr[C+搩]֯.+1rU}@ F/Zf\K'pn3 }X'>` +TcE0E"4_s/$dD4]6!+A'/rӀu!>%o(݈*w$[ƒvK/qϰiwnNZ 6Is\+|`]>5JaU=$7}H<|))e/*05[39r{E}|DлL&2Sr\KlYT@n'Q2ZVUl I/t/#x'FЪw[ެ Dqy͹SP&2alָqy{]t,PI9IzV3xꛗir$[B@L;YxDCQUtഈt#HGF.5!2^>@ jѐRq֠hgHmEPDct ,́njה2XBM6y}s||mXʧ_WC"bʘNn]Eu֝[ Qg#Y_ f>tHzI*fBf -x뮱6OzfPu^㬯wh$.o>ZvOg9-t?ۯS;Z3|xiX*^c &LFE55o%P",\kS.eOCE 4z |!!x(׽>/( 2!5 ԓk07G keaXA/0xr/&fmhQcG=GGo,9}'x%J AxQ@ub _ldba'(& +2I2P3 +Uh )\]x0@Y6V{PJ`z +6C]l\]\L_$?_ʴ&u*g b K6uBTeg㕣݅`N5N;뮣QƔV-ЧOE(fxDdO A l~[sy{>gk@' 7ݘvgհPIUzK;yzjU9Jx)5j xBս0E)d6!9X,dhj6w}X5wctv[a{zb܁FzZu5s>V@0l *uDR]HE0l e٠n KZcp b]JC\cc)vb@mLT)pK4w7ˎQ?!ceݚ꟨鮘P q -wB0Q &Qdl]9Z75> u c/jgUOZo6yyVT2vWvP.Dp|ƈ4{<+@cE$io1R?A 56ݝ7FF!݁ w\%X֔/RLWGFaN5ePgbo}r!?8tX/\N+%KL44*|v?৒}2"C`d} ^PsPBDB<`BddXU4R6Cq.KD<^F,@7dL4ħնXg&x 6خ<,7+@NNWл7 o\?;)pMi3C6O6xG {XX>g'J= M@vYV'<[[%c(F_>6~O#tߟJ=C-T-$IJ +;[K()ѪBICĥ>YLzU|Յ9QZN +db4WG׋c}L#8| +:ӱߖO|Ziet^Zopw{bg>#;/>bp_x/c!BtQ{hnZg!Mybzt\5~Ke#b♊dL#g,Mdid53ȗK"c$Me x^ؓuL޸Ei` (e^3O-Yv8XUO-kdS6o%d%0Y7o*[@e=1sbė\S:I(҂'d ÔEd{4ꨴj]F\e(')S$ĘTWलPEeF\$yibaBt.nG(AfVXu2=яy>Mn2q~Ǩ NcTvxkcC@GJqbh#%Έi#? +1X!4=xygM+Dz;:%6"k 6-K?&Gzd]۳oBWt0B;ԍtv*v(1Vt:'hEkgAu&h^צńGE/{kI~ +me:Z<3VW0W7/Q"]_`|͑+̑+P,bd3Y1XGm"!P>+Wy f/s w.E.cN1]c T[B(u{rV@,)eUKR2idCOvT"@-PG'X0X{o?lY+FZ%1YO=z)Ub{F fhR gÓy [YC]Λg%d +FhqGCY^*CWӼD ɋ@!E|֦%y@M;:D?f!Fcp35q0c'O<%n *;, s2U(,sjǽ~|?$ݿ`|gMrn r'M"c3drO#僑cmdraX":KME$S8sdNC?%I-v2;9OH 벒.3=]vŋS@ʼn }.6Z#BqE̙Zb FCSr͙d -z 6;ϔhF8Kaʠ\1 "|G8y\?\g^# +h"*'տit* bh0-hbh&QΌMS oϦ?Q]&sG&<7KA?=S)҇-T1DXGWA?s 2z!$1-k0bXPL%1MwLޜ\i4`a\=$;g("UQM'j|@M ܖ\Z+$vcѐk\MʎցR Pc&lmPrJDDN#MBAzˬۏ:oZ.:ܮ?nzQPPHS${@ -qLG7Em'fڈ-l@^tB បNOK4ht|XK`} V *[ic-8NL1&?_ƔUor$X!)vY)4ڰLdek5vNMSG,lN\U-{ +zl=nf5:gA$p0-xc=}YAС-){XN^n{eb 6 ,z͖ 7CBݗ%BAHGxjz&VAЎ@ox2@;Qm5P}\5^s{ۛ=qkl{dk{g}C8;.~; +e;{κ;zC;ɿ6?\{?,=oN|یRj/aY&D̪Y\l9jbFxMT]R]f,䳁K3سͭ_l(o݅Q$2؜nBѼn&&:1le<|AP)24!Sfj{e]&-UMU8~ k]V ZA7K kvP> l}TRդ~,IM߀e*ڦh߰nPItsqRL`7>0i$_lgo?ۀ{| hxI[ҙڨzQ.J=sl}ـ6Vf˿K/\|K/<'.qf䄔]CAE,\(N4K%RЩ@asf\9ϰÊ*tHԾ쾜cM* R.6ob˸C&f8`P)+$5lBJ= (0&8|ȸۥ|}YƄzMdCz{`$Xed߱lX%q`eX| xi`ܶ۶ARӀYiY:qh_\hd_I/usIpy_#i$8"|J㽦R˥\4TZ_S}ix\ӡ>Q7M[G|8}'ݎտ>}R'e%8ee7&K8gee:ue$?&LJKH/t7p+'>E0˨>T}(xS}ӤjgIPIQš&&ND&V??4=U&&X&ƭ&SۊH$|Uw񾓻>:FeiIe)]aJpr%0 ]K%c#ld wىƣPJ19]nIU? +,mm۶m۶mgٶm۶m۶gL7>IN'Jn{*f>3Ֆ_QPO*_iz `TC#a^/=t|8j+ԋ/AeAT/G__-H-୙͛WKxZ%q)ĕKJfiY]N|vTT=?)]z^T.V]Y+-.pxcM00xց X !}XB2LɔGKso*H~#Vճ oXRƇ6 ^`ɔڨC[F{\hHq~b/> f,5c%baf +t*U(:]4'9LKedZ&!H?ȼWۤn0GSj!9RiVRU{s4p yax`_lhd^h=K ^[A- =>wnh=>Cչ>L(>{U/7EP#/m9k8C7#a9I32(I +6̘PjSB=NS[TxyGP{KIG{Rٕ=_ѩyt#tW7JP'ٕGvCЈ*}rv:ꅓvN-D}`hN/ҭUb'͔ T|mT?h#C);j;tvY L k'hԵ|Wg:!#/Ml8O4<= 7.TGśokzFi>Y\{ԫqfa:n6 R~RV,ȷiwu^qp>p ػ?;^߷ E?u@ +fwxqq +}BY走FY)_b^GCVM)H2U%h܉rѫjaVqfzuDOeƉۀ'3RM?)u ^u'_'{x3׈uY 78H~o.s)Pb~wFj:$#{%$]di-:R.2D:;HZ}6&|hez*֡mm8N8޽_]:SHyt-%V=E 1 g9k[d@W@:mZ<} o ]LDcž]zIrw8qqjeD4 +TݭB9$ԝ|`Ŋ vÚqpIL[KI猈>r\̳o LŸZQR;7NJ [9}/Uv*H)Uu/r/@fZ|f_q~[2%0"s0V֝ @̒"kO&;Y/94G9%@Oh*u͞NɘpɔX}.aGfĭstRjM:¤&O{f /+fO +}u?͕:kS> f] E íDnŐ=3KF8V%>o,4v +9*'= ԩ1эi6 +Z^/l(V9vvR>6զXfQ[6J.K-jL6ȯ,7@c}!Q??[e3nRU-Eq3Rve^M2+ވm܌zH7GKլ4e]LI9ñSe*gKѶt4-O{gWyCٛniD8-1O8XKϭz=ۅ0Oz? e0aqz@M$W3`Rc5nCg>1%m0Fe bxZGGnbmmCc7Z(F(^YQbcO9 BF%y7ɱQ̒;FY7w9b똩>nF~ܱ_M-h1G+я\`Ihh8Lp`fȰK1-0ѭl+3:;-t +tcOf]Gj&֫mZ--0ZvF6G6F7F6G6GCXrpDݏ@=$YHGJD{bt|HX0"bF`G1b)Jl)cz@6L*&JeuXa=-'> m1Y'uLKǣfT:Ve1=iؚNjt_\rmּ3y z7Α>MhW虾XO~L{'q١_lr<<{7pj^Φ?O-~tyGg0qnX2 OM9G(<3bJNahK9Gk8ڗh[3sB5-FN/NZ=73Z8Ff;ذfJN3OQK ^j>Xwlx-|j>?f>>4`6ce~76aqJ[׷|hb4Yr?me/Q +zPs «?: o +tC~X7Q6'+[;HR6(Ԗȅv2hwgyݯ@!Ws*7v|ɛ lN ?</Yw^2Kѡw-9@oݍU?5}1HP^rQ -w~Xe\J1Gl䠲GY/&:±.~m1/U w }Fn٠gߥ~5}Ճ~˜|L2GizIDuѨYElI?+5,}~}+.]%g4 jG欯Dz +H$+ɷpN7п5q|!w}?3"}-ZM&R_D ^lr–D35oX4~{o.upf#oe-[ѿ[Έ[W}S'Ӓ\`et{/`mb ^Z/y4VOhjQ+?AZB~ݼJz+uktз#<}EϷ7Ӌ u +sc|݄ӵZYS݁6Sդf}D}B>{&\7'BH Υ1?s ˰uYj vi/+l!)Xh)M 7~~9^V$ HakY%}f_t?ȯ-BRjhv1GKn֗뭷ĚLeL*eam,ց]Z,]gS|0*F,S[FVyl;`<7۱JPq)0gO=*xݶK|*-s3mHh 'LˮrY[)RR=ܑ25XA`;Mxhf- xŃ5Nr)vz) Dto{ct"WPҭgc7DRXCilZ{ԡk +^ '+F"#&{W8V*STM Uw_SWj[ ^#UP2<]I呱 { 6l 1[:i}s'O}fW~+;Wpx]DRg"6q𗢣xDs]%{% l\݅a1\a,U||uh B;PI?߃L +{i!8/kaAc4t8C+?UI6J\[׍o?TkGgs7j@UyIý!bk@EE.E6QPtDv mím ckGAm}īZyb]riCtȊ7]6; +\"-eNZa0Y ӷv<5t }aWH)щ܇N)6D`#F&s5ceYKv.K/颰 Yހ݄RL#;&5lj7Tqހyz&Y`mI׉˦/s1щxV{҂6jVْc c ~e,70dSz".;7=udALLH.>. u9(4 X&*  8@I* &ɣ&<⬮w;q;~d]Y\/h0dS>7MDuAQyu7|~y!] /ʯ\<3#G +G:֯%گhEo LRR/%} cyeD-u{rծѩE-.E+5yE{jY +n3KMƷJkL +R3՜t`uTxCsgP@^#iyU{J>Z +f߯YΜ_s|kզ'5WjfpUg6ꙻSJ:㷴EoS/Eos:+ʌxOE*ohsՎժeq8ܵq:xY;;>y<0k\ V'M-\q:F;Cw>ᄢɚMƀB>*5 +?`~HuXwYqS=tzP];% n1DO=ΐq*-F B9 +X'kP$^)%Frb\ , Иv=_̗ rޘMCUMCUsɶU+lF9]C**`+( XbRj86Sx_"rEѹ;хl^A׊v%sq`ɭX]`pLb8QqT+HT x&Xɪ& +ulVR J{; +RW`!3V0p ҤGnlT)\5L.fG;+h H]1\!e͢Io5pSdzR'[rf䣲ĸl[珣70Cá!8't#Ɲ@ KnPk:Y r!M)*O#ѸemHI&IF2>)&Z-unGeñ_9DV2L8r`40' k*n NJ0{yɨ'Cn|pGbx) FrY\*G bcL*pLU39,\᭄~HJf??i$HFŀQI$3bHZcH5N CR!pRs&=?H7L8LVFcS|`N7 +6यmxG7\+xgGIhT6!7K*ֱD63vR|/ϴMa#M3ɭG&ɓmJ`87Ő)XFˊ!⩹9$xKe!7`n~1Cù,܉np-o!˻1P7c8- *r5weJW{!lYȦz"MhXKO%7i,-9QBDDvW%L%9VA=»uDd\Q]ZЅX_["^0lᕯQJ} <_iJz2ӭqmd_Vß)Zf +2e8+7Zaݖ>dZ)-zraW&k:jTQ:;q2$}%!-A1b6TyZ2Pt(cIx(>Gu/F'S_lh|Y2,QdS_W@5PrUJw^+Ob7d=ĩO 14$-b6>KZ)/9mPxyy& +\#|wBv{y@۵Hp&|&FgQDpZK4 +1 S["%C Jx}B@=AOԳl`q{BˀӷE6V1vSܩ@YйV%DE֖k]4VE%(8^Qh1k.>^C|ڠF胱!>P҇G|`]XE{@\XQY5?fe}|7 +G|Hpy7;6?\H:3Cdꃧ7O.}?ܱ1~c~ӻHT&.c!@[$"@!6e +KGE7&c3iڨ[heҪ۬z[b~L.m~۔)Gd{~ɲmlYZ]؞dfD[%̚g_ӏ'zX&Đ &KGl֍T_h"1nQC=a4>LJӎ m5[ˑ"AL 艊diQ磌Z-sxҒ &],ҡwAj&[{[v;(YJW#yi^7tzK$+ۋ -~OZPitӆWhla-۸NS-Zt+Df%*S" *{\j d bBP@$Ɋ)aQ #Hi/WT +ޑr𙰹>7,@'oT 3DQ +Av$l@oVւ ZkP6bM9};taSyԃz`1A<6JoT{ϯtchM[ = IiD$#[)!Xk.'p/fL h6h:+ب +;Y( ++Yu:e}튄m3P{8*:?6Ȑwn>euL:7`> {| lmD}x6xz''ꨧҧZ:} 0[T!S't8 %':?iaA6 qDxux:AÁR2,wvD&uzlf,$\P'$&Z̒)zv37ۏrV-}N kMיʋIgDeѭuZIuIrEYHIx$֏%$JY$)<fĞrMh*TO;@H! +%k-LZo;cnG?;kf:ʕ7ddoZMh]/m;rYɀ#(a/v#%C" cq##zP5$&$]5iãyIdfN|?zON'߮I:kxPj;woF#$.`@ {. XNHcmGnZzڦi;n:tdl7BuwL!-<;msj+rjb*SK&'?AݗռztN0+ViAOL͡N$uZ4Eb#?zTV{HR?z-;~ï];-G_<.;.]vL@) +VI0\XvaM)dA*G^i<,]0Sa2f7e_͘8r5m!΃q4l):^^l>+NpLGƐTp +~(FKQғ3mԛ2]z{jX)0jD?g3S"RDhSCLlY&=lٖC~1f~)gB29%t ` !ek!Åx( U"< +ˢ#|Sw5P2-~EzdS x)F#ȪbG,Ԣ 1RQܢ9RURZKnZ0f-` 8v*Lۡ[j +g.E>ȏl- >i;b^Q!b DkLE^8f7(Uh"Mm09v)VT^9oiZKrdn#_& uxhd -k5H]] @?`? c^bUq$GEk=2*}1v[M#a? xLY cGE?4{XY27 F4;M/.I2szOuv L096Zg<e;seE;x,Qƚpu QF<;JDB @eώKL&g8 + J0Q䔑OK!Q"5AK9Sw2e*(Fց|kSљ+R٘#/Y . +ʌB_ NGJ)N)ҲS͸:i ȃY^C}r$)NS^h'IfΨ\kӒgIz& o &uʳW5Gmnv0|qF'A:5 2W,1*ԲiAkKލ/]jgDk$0%.2q)ۆ&-D@5=K^%]pqWMN8-X0?){OV%8Hv>/voӋ6ߍJ"[p8F}͕#Mt8h(JoՁ`)ʕiN+HI B6lBǫM;\:%8 ՛mP&dDŽ +9:8)w"_hCV<ál9_);>Q>Bێ׫\`>GUGeT 5q"G1."8?R2Q@ίcE_P4Ji{ +1[\ϊp=;7f‘;1{Mѧ Ly(LZ +O4`ͺ{sKusՍt*5уֈZ̕}ҬAs8ۘgm*):]z{fe16t<>=a!Y*[Mvխ=ݽr28cEv S!',Pi*UKv!VZPŪ: icnbˊm$Y{uN˨8|L+#\'G=+g=qWrfB2۰r݈WuyíP]Xe]ʃ"Phk-mq=QtI*:8~4Cfq]?:wJ94aɒ vUA5 l*h @ԫ#ɾ +:1J~!gمp k>PR1Cf?((äC0k"keU2r#^Af?$(h!U"̾($j&ެ hgA&u'LwCφ>2Ȑn!Rh:ܥ +dMEQ/7+]>Sa$U=4ơ!4՞ Nt۬',ЧC-,KaaO"堡WG6kvѶim}?Er R +NN$RYARiVk$ MmкUa+gº˲h/юt4=05ɝq4+ð2 P6J٘lz:ۜ00Rc,4* +BxfBc$;а wc 1V#sD-2\@aׂ)s%Y٤*[8 +< ªjӋEddFP;VX+oOF +rW$ +>^?۸BHV{h6<dw3.{F;OVH/s$nF-tcGCNwb4Yy;`8EN q\X/6M4Tg oeǰUj} #w64R7tD]xtD?# "E` Z'W҇XRƃ]?moJ-9$yr.Kc*z܃KOSfec͝IJ;]}sЦklU_u1e0 +d==T2>gPܒ.-!vi4r}g%m GTU~X/NH1OU3GEwb;ބ$"Pl +jaBR8<~Bĥ!sUkYECKۂT$uU+uvGn27c 2=gj.{X4 f{pzC;@K{,:P`)ͨ&d^?l<RhC2HWngm7EƤ+S@ gpu3j$)xwvQp\G0zgL}%Klɖgfz>2իY®^+08֢TdZDv(Gx,zf.>jΟXaZVD-gapO+d͘^-TU{Fu-ʃ **#SXi)SbBZK/TV[Bcui_Fp,c)s]:舍~nVcYU~,m'IFhdDi՚I>kȳ#˺^=/wu] XT'JJ;?aYnVdVv`29(9KY( ,tݠi-pijDwG[*UfI\[j!RliYo2/^z֬2,:tpYț7th>.f% +fNr7R:sČNs5p6ؿ.t n2P];Z+bfh'q1' j~:n1yٶѓd n究bGc)hSd8>`2\ .X*-RfȩߠA0F *,"fRr.onVcrg%2h{mYhD|!Uxp^W:54Ou96[Yx Yn%&[XwUGؖ hr)Lp.QE\ځyp~7ʝ{e6\Ovl*0Τ=d>&}-fd h tqhfܜG&fp; 13zKw&M;#+-h +lY#g;mnv-d2rnAMo 7W^!q+ +&MxCA;4%>:rvBհ }`D-ܼ#1b&Si=$W,CI5 #OB,y+Wn'ea~fzڤ5X:ึqnnĥ c`P,ᓙ:1qFV=q BRR/h>/cٶJ"W'Mfha;%>=qMrht'ޢ,)r1yh=,C8kl;[ +|8m sS[;J^M>~3LY+Se6P|U5HA7Sm_CGoG=fߨ\5i14CxvPAYm2ZDYmn%>?@LAXBEi+i3 !mJ|Ó +MW@ ǾGPA{E# .Ф>d&S;p]L*@')`Oex=/yiiF)Q&?10rF*o|VuBGnnN/#4DFO^}әl,8i9GmNQ:)ɝluD3I|%[WN<ԑ]C\׊' WJ:V:AIV"~AưrvT֒ܗ[!6׷)^h. +恩I$ #YTyȭ'wHd+'>^3t5McYJlvs@91C~  p/#/u*٥੉RRr?ť'^Ck΄GDNXEܷRw ,%fvax:6otqGPkdiJG(Si)oFaqF zc +?2;NPf uTķ5$љ~ƣ`d=E/Is,A+/&I&MkuDw͝L{ +!l5vK&i)[<>^ܙb]Ԩu~Z# A5{/zi +}$n`=}۽JrDWz*ǰ:a/j\I6;CtH +d1Y&9UI:#:m8ѓH^ +zTdO/1,t@ "Ќ%,NKG S2'(B}ΚDMޒ}-A#AU5}/D:.=dyij|}e:B]ԧr3G!9V\ fX&70e#{ J1~q <\D" V;2  f% ,(æfP#{h`UmF_-{CC? a/ɒ'MV~('ʜ5ݤRZ%du$lVcr-(jṵz2劋W}u,IDE \ՌNWxCZ^fmAΏFLԓt+ +& ԺEǽ#}.2R5ټ5Me+6c^Pa:+iSvU&G<_(քY6Ovo'>B]t}X 5:vp; +us$=;nia_Ldke Ԟ(0k8FƔ"Uu#g'ng \Y2ȚW! 3BM,Pw-'IaN;p h 8eK8@+I߳,HLNuJGu[lO*y78X)!WhWPXyU20H"" 쎀BͶb + uW&T,}TNnO6JQ`7[|&}KnORtd|Qߢ6*Kj(;7ɭ`հ +!l!B H\Ncp̋a7+ŽϦj#֗zuUS&ZEz߲?r~^K|zY"*p Fx j C eA>B3 C,tA&L.Ljń.X/ kq߀BjNPvr߾ArզܬZ_ @OիbfAx 1%eC V* F=Vu!J%yړӤrߗe#n=yoOK~J+v aĦ{z؜H``$ƏX 𭬼~dGCd|b#җ .n>if-C&vm _4&)N: 6+EoK_0Xh89mEK ~m+*ByxNT#E9Z{2oTXFU^az$te@!a(nD&Ƌ4';KЙꛍF&7SgJr.-;}G)Rf=wrEu˥6e& + 3Fun6Nh~T?q3?PȪ7_jxp*KsK PF 7G|9ފp>௚c{\^SWH]R)]#IH&N^XbkmQI$%KH**!y(sSg A3 53m9G7M?N,fnfKwr(0,Q?(_[NseQx梓\,pNcATP#@w  ß_bWr:y}r+a s)YƘ׵d UZ`t*02)Ac ű띷X3aųv'40WߺvP)V*tzUU"{GX8UTI)CoJs^W-Zh*2-CaYZ?gN |'Gm{ꀮ]?3[Nw0JF›9O3XhQ)wjGfnڠ`Ϝ8Rjn^ζGx83l~De^\*=ᝂCmB &ݟ|/9R<9o5qD \&mʷ@";;Dnm(`g/ݳ(SՈa':[ߧP9Lk9J[ S~R$⊀]b讏T Yi2Wh%x})Zy{3e?O?2HݟTeepTqx_iUjQhv(T + +æo`5x_GE*+܏Vc$F`BG7{_np9f30"P8_G+ *hJUe )*+TT*`ت\kc5UhR9m)aZr CE =w,Y5K +vTt s<^Ė\ݲ^c_ic,3[-Tۄp16SG%!I{O"r9Lm$A{)/8vwrTbYTJ$Xk1ф=]bNx}'L(ˏ1 YRա_r -}Z#~h$8P:>qe㑊d,0mZ! 6;vE lYHX +!绂j:fx +BȎf ^Lۂ=swk˧ĭDWHnI= +-#EEjlŻߕm!mH(5) 0to'wv#ɔFxC/zǾ.1B~:bҥwTi;B{,k~ꏟkGa1j|Y]/kA[gS`#B~X:qmUyeV/={IYǷ~f"Aҧ"!Jb{oxV@,/RfIaD &O&̈́ԛO_k*+9۾YD4Xl b` $] +VUԴU" /dʖ0ŷ*d,̯e̹Z[?f{6Fے_>8=9"{]C!@o\Oӿ;C^#8'ֿMCwԡ9xlo $<C{t%![ j'gmTO u7|S=9mjlVp/}ʚV``B2Xӄ"B Ҥ|;f;Λzf{*isȜ>ɱ]sQ**F;s9ba\= ;`ǝi}Ig +k" {9[pJ>lJ&kj붩qX*ibf%$߻Wxb˛C0 tːn!yRKhfcTjD[E{k~ޡC%V}Ć,#Ş}n~vֈi0)E(dmo/Gi}Oi2/iA;iąDuE4^pZ:9BˣjEkϢHFWX1"ÙjvʪOk +ʢ[.ƨ8ȖQvJ>HO֛kQ7C vvlh } uxuW{C~" +,m |ZZSsܦnҖJV:L&%Kɧ\Z103;2uaJ8v nƶ.=2:QrRJƖ9 f˞XYXYGX^8·sr|ÆzڵQNk:&\{x^i25&V;)%ySr{R} ;q]B=禳:م,؅xL-^^}eU}Ԉ(D(ᅩȆ,-G +1u1 >vI<*Û"(臒*Ge746BCM6s _R,x>{o{sa? Ncy{Yx{(~wQPeVx~IqG-}U}ix+κy6XXyKYx; *2d)v +QLθX)UX3y6ҁ*xmtQi:&4uDDbIuOKNLr?C>YAiaؿ6eQfw"eI/W4/ 8;3\3Vcs!Yݨ10_kf̀q.W: _>պK8-Wg{:63>'SOm.KS K#TbF%e^Er>YuY &nG OiV R-hP΍"%Yƥ2㷟b|/(H6 +`la!G8I=kd]rd^.IX$W|H*;IbNT>^U.*sM#҃ukS;*JTu(s5X3.MeHj,j2MdVQCDp+\XSfoCO"@q}ڿUʣdz2${=:wNלˣF BBD`ylSҤSzd9Yƻ#GDe-|ǧ澍:%uL kD˖79xFE=KS}C|5-?Kڂf`㿦.6T ꯙyw܃Q]izT(ۀ ? KF61;&eEdd ;*bBYRRyU%*5ŪTYGEj޷i޷1^ﺾ5{0rY HԇpqAnj"A691oHjF%RM-AGXVNzbz@IuJ!rFiq8XC?7TW6L\VԝDeVkfݏGt0ܶmm1)ىΑFVԶ)E@%һ4n3ֻ-c:a7Wgž|ˮn:5W.[҃keΜg#>!RIӞ|Q}3iOWײk%K<HJh|GV%nlPGZT]'k̼+Ld)ܞUs5juj29͟fF(H&ֻݚ#([) MQ(EJBMlJʰ;l7rƷ$?e$ItN"u0Su@",H=D EZ4#-G$}yv)4 +NEEhNg}<Pۧ@ISdW7>7ޏmT.œƉ'x35 +J1Aa\aYURN0c! +rkt{,D^x +ʿ^sg)؊_^56c$i<zC + 2a%CL]a{ cEl!&"YKDuy`_ ->OݏFJBc 3{R +ZGw`aw/~5uk+̐FKK2m``E2Z<=$bc[k}z̉63l?OfӓPa#Ǒz ެ51:tllx/Fp=AM.?7tQ C9e. @\u9xMbbN$/cj[P׸zdI-$+U` +0diI'}_HSq^jg.d[)NaCʲB"gNMAMxejxxў氥 GFz!} ݥL1dcL^jJ1"fQz+ZY&bE=T!A:\K?I})#rP|+\q~{ ~~+}yDnrG?$V"?=77,?ļM֯1o!9ɻN|d o:vx8yGZ9IU.V z>%$πhdWC]~D_33=V_IѬQzI(ɒ_4w+ Ӑ N` {0W:Nc>=IsJk*?B=%fp!F'K 3`Z,(_Wo:ª+?\RS~P{_qi!8u=Vs1Ems#l$?Y((hUXY䁲iulΒFv3BQܨoJoVTUPċ>¿-=/|K2=esx2F}J7*>a067q8J`uLM`w:MԎ荐Y.1<7N|?ۧОswAt=uȗeŊuϊoo]'jM'l.잀o"#|d&у$zcmHcdN<(t|I32e3,Bqi30:{9#[rrRXI EFE;ƞ)MJ {DxK- d,0KH)$zդC ɋ+w9[=1UTT}Gg&J͎BG\.FBr"EFVύh;) c){EBN,M3CL 2j6q&WΜ0;6D`?|yHXz|hѧ38a$|MCBK0aOP*oiDtB~WK d_S s\ s ݚ*`nRK;41pk Pbf;Fڏp;M(FIΆ#+')1t#buvSc4 2%͂%'c.%ˌ"9ƺHTY w/o>f9iV!ԡQJdbV q|ˬI)هZ`r?~]n#%n\OJk+ۧΤ2%[BV.r4J4=;W`KCN͙O)q!UԘ$bQq8>$.壔o%UElTtŮꄱ.#mY唈N2Ѫ-|;n?,%_m E #ZguT;c.PՇ֍B&z5h5Ur$w>jΠ"\;]!xQCv~z,.߄sj;ko8};moȔ@TN"K^D$ZRs]n:1j7!0}g8f /`MOQߊ0ꭹa0~.)>rޛZm7T.QmAOG( +sˇp=著>;[UD]+,%K ~Y&hm!joK/Iݥ=[O }+z !`0VMS>^rOZ8%lLY3T>3h_ qEFT[q n0OpD8h fX&m!j`a5^hGPK[.aS +M]!b6!DE)Y+f?KP+Hm["TA2z91Þ Nބh@?V ،:=$8Mٜǝdm(SŶdlix#ǛO~MyBH7h PCpF(P(VJFTɷ>%3@F"ɍć _*X +\g +ٸ%椋l!4| +K +ZM b8[ H +eavBwKc*se-5PP3X:qh9&7Mv?|Ϙm5`= +GCl)3b,ξ +c$F, ڴ.^d*2z=ۢiU=7/Ni$=G;1_LV2W':uiC&_zf'H7zHuU"D^$ C҇@Iݢ$JL83zH}}2F=$DHdHΧSH["TRdr$G*Rb$#lD`49!5 8!?xi-$|?VsH[%iVap״J{q4#kgJ$ jT_E" 1.Tzc2f{ƽ'nI4ͻ5WWpXwhF-E> SazxL0NdQybE#Zg]:1j"9}X9-h}@Vǩ%Gc| Mťszcҍ-Z`7yt3܉CQ=18냷8+,#Ic'@R%,OXjr> A%(5x0PH"+G\FY$)EM)N"L4o,,GYSu4"o6>$@¤%ǸڥxHN!k}z+4LUID,xժ0b-tϧ7JWt>|E("!< CfRd(- v(1(H!JK~hWT+.=a\B׵0UmPT1~ nji)j5hkMrwqF1܋E%2$GI%c^?]_/B99eހ{g?A⡽W uxFY'GY7ݤ @ 8` f,$h ȁJjEn-BFܩ )59ߨ㱃AVڌ4u^9WްF[Lsmb)2[Cdf|Tl8]}8YK,6Y *b- 0;;aQCG9bk7Z,EWZ:qlMZ._ے3e}WQ̶<"iT$&^{(XԀ3)QzXߏP4C@CPc/Ў.a(S."aLUdT=IAfc,we/uvta8䖓ļNPcľ:]ZЖXpZ φTy,4"%gU~QcxHkY5X>֕>#P;>0hDsTH'5 ӹ]DӹX^EP6R'Uu{'bcx)"dz.&iAn~>M:8J'GُJBX{/JC J_RQl$tyZ.4 vA Y`QY?/X 2wO%Ѻ'ق;Rbؼ?0(sKF31 H3hQE5^B&u:w\H fc E2U02U1JwBzOyֈoT%8mz~PlF(КŎcF¼K5|7KIr=}S'դE6U~f(g<}xwHX랪@Xˠ[=*چԽ^%eLN E6sؔE|"C5foe=~t)/SkTP;N][g=4p'n?qF1-1 PVy[t+ΈsB{a'֫^^=dkڽ};i| |I{ԥgl "V* "!6&? +9 =WZζs2'#`55L%L$Q*2HLȦe ޓ; P+(@̥i@P#וE}>Ulo=]ζ5|:m78۠D<ȥf*of}uxG+?$kc:fשSwphlh@>O6><`?^"y0R~R؀(8@<f2L8]цVɹh; .㞫)~` p?eqq[ќod2Qxy& + HRMqp6B$LnAyTcN ?$(xD%T5ѡݴXmwП axPO|1XE$2KR.yV)1a4J(LŨ[gD!,(2ViQp䊾 +XRlz#"N Ho xiQ˴Y]LqCNs=bU"/U] +܂IQ|oEEx!:2.Tg1 |bzhKnڄ6KV┺o.9.(o +wyIEoUR]zmzhu_/=WRݙˣGܯ~a\پ@E:۫CN4a%?,,b[̿B.bd!@%q`Iq\0SyN#p04yW,KpyS, KɨOXz="uٿ}7j[ 2o2;+f@rG9zʪUo>7t~=L@)3D7݀=OW$xs\d{Z,;d7^1vH;LطmQ70>XNH%CXp3l߶p;١;܁z龙:-jv706>.!.8B,!aLP2:*VK3:=@;-/ICp{xBh*v9$C\{#Bup.Cn;*alz$էC#NP;*~vE2ou[}"'aF`v@bi3_5n̛Kke['oN֒םWvTk3ȕ7_?΅Ze=C5Mg3[j̬9ӽ .o&OOȽ IONhaF[N˟ߪ[+} |W8C7k/e{K;n!>ޥ}f^;-LK37V[@E>Ďvzh)hi\#JC}\htckiB}nذ^)w h6pԂ7(f|nL,,̖4.,,7\iּ%i~Sҧl;`"a=asZFTIXL:+wQY,_ +3`_XC9aP~ױ|E'=Oҭw9@{ bIMݒ(B݇N5:W*ҊٗuR(ga@%ϛvf+5DwfbG&W$vlsޢTͨJuc6`4x\&j2ud 5 e пF70pv b%)k,d:(w"l`E%Ō?BA#E}Ff|u#deTK8TȖ`P pJ󠈩=Nox^{v_WV\ E718'F'BLD38WC@z-zV: 5>S5Qd5YGfԨRQNɭ|\ϨZ*,n6+VLNKsЭ\m԰FQdgK~K2QN#Սa`+@mdr 6`sR3)cƥ Q|_*D.ozEq|F)<`P;tu5uYʐbr4#csNbcOQYg2wU1|wMvMVy˜+QI]quf$ }K0aU&ϼN55k=vqwxFQ+V!2TЙ>te/^zil/=5mb{D=w7naP׸%5nhܤ%*w=`ǘȒ~ӛ]An֜9B( &&LS#+|>̷ۖ{=g`%vN>gLJ5G q?*c\]#5(׬#(o(p.Qm!ٿH7z}SΈ' L$|"a]$?zzrR\Īz?X!ο3{28>XZ"^KLNdrL\GȋJ.hzT/ pH+OIBB(~5we9#ɅW/ 7~FYq|٪@Oy];d䟒F9E:Ŧh* _' Q8i4I8x.s.W{,$s'zYS6&fNFn ZLk3N'ދӪkF5Rcq/g}𫽽޴z]CFg7\yKKZ֖waF ZFoG5^.%WϜ8ȕ/qt +ӭ +;GU:Ч$y6xֱr䯼bj'p `LoJ=oa=('L&Dic1P fb.JS)(%T@)vbN:;t5Z a(Ĩ_5Ʃc 'q9C.W rV#UzELR⽨4AfM 't&L:ّ9?_K+rKPm$3Kk$ Nk`E'R焬C!by9>mu+RE6Sg~$LҊOu2~)ޘ6~%Wbdԯ>ZNV)b 0u4;^W5"!80F&gv`g&g=h !@J !EVDq|!iQXѰKKOXCP\(IJB%5-Jk⧠QӔnX"&U3mezф袜e~a!j|UպB-_0 O_"O(;ŲϷK 9Et(b@O#Ʊ(BkQJ'kwDrZo)OCFBJAM,hָlKqW6^Δ-k;4{ iE֥. EvxdwF$#QrARK]os[ >ɀڃ5JVSIHmwxh٢a@Po8tK(Qjb9HA_WYjM2S8 RLEKĩI?jU5+L"?v,Xć2cFø~K~\ u:6mY-sL>~K0+!bIkF3ݾ2usS{M❇R'qd fz09SV|av1fH. *NWt"PpjH%J22hxI!͘C+nOqJY=W0 HJI96^ Z +ŰNEbN7]A3^?9N7<9ӡI[iG'p,L[1%K=}8[[:mt$%7;[(}Yйqytw%Jz>xQEsb_>0XIcb‚ l0ךf 6 6Dp!uFE%TX ߆ĊB;6.H-bMCh^n2 ]OCk~d]HZ m6 {%/7%yX3f +AqK +DkH/ixtxc=GTaČiyUW7f7oGX:zB\$c%=ej(tLo<ϡU<3=Hkt6Sf֖BŃ u6BZ|&NcBLT+$iM?qY!,6irƔs^̎#0)M/y>Fc 3L?kq\C"B+ Q)8ۀ{RH"㠖=~H瘲V:!"H3$UI5d'c\A&?3 Lu,?z& "S?c\9{ Z7ښ3#qT +#)6̑Ҙ\2>#3WRKf&c_e_,Zv%F|=qTD9W—kGCٲgRjX0́ PJ #R(6LZjT[ޫ@DkJ9t{_WFC\޲**B·耫xrW[WgWY Pj_1@U!/\O(P\!/=@KPAP=& γ~]t&9lm[\QFi{!s?-\VLaC1 n}ο(=%;#HjW/9dB@}(q|; L24#{y>Vngu[Kߴc{l- y_ 3v &ic>r0gDgG`dSZ_X4TkW|a<"HZJU8l%To3)LK.wrCQ1U-`崪 'ڳjtQti~y~"ݰbZTߵJnk0 +jr&K_ ;qr㼼,?m\K{r_[ P +)bvHXz!9uoȷxh* CP)K>=o)_ [sͻۦh/'0~@D_n'DL2#Q0vzT~,"%Ρ@+rMW#X̢Tv}V)ûPT#Strl,ZUh_};E0'u`)\Y !)FpY\6+}DARyecț!p5K$͔&smsqnWLz2- BA}+ kULB$nh9z\{f{P&Ȟ9OsP*dah2)B2qۜ)L|1o<@or6tTS4鄂Β )|Ԝ;݆Ѫ)HGfS Y+ +6`{h6Aژ& ,Ӽ'XE#hA-UYBK/+Fnsq;nveԵ頋-+z&u{̓[]x< % /{L s izHOX_^bMi ;wyET%ף.g^F.]iX=Hy7f/uIďH+˼U@_*vڼwݵGBQzM_5(EշY-0%;گ_>Rih<QfM?SX${h"^;$"a>ΚB- !+>d!YJ^Sjy]AYF 3$ GJ%R*Si{PǃjF\&b^c"tU`{)d7/"X5UpSk;1)9PxLgNhaJiEܣ)P'nNȠ4j]?ݖj bpT}R^QYDugɮ.Y5׫ ˕Yx+Oeٓۅ#QFWMѵy|{eU+_>4FPR|ɨKuΥ(&haEHcb|`ڜs~DLu-lojRxVFBo5)U^&h;'|5Yu[^d+tvpt):EM֏ Fb@OD_'_&[Q=e wxCx\~V_Q{*o bg#$rd<%gtSA׸h;Y1\8uv6 ^NcNuYΒ0y(*=U\oAS?MfUh +pKn1PDkB1YAM@, EK\b>(^!4K ~N la-2WrϹB6;N\2 -l{q3}R3sgbQYk*=$aCoT"TQPRO;"Ԋ76YIyǐ!ZO>ܯ}< Ţ +Nl'*C2h8 +A3kRAFƯ/]a#+y/Yu),J A`\Nkc&\Au%p4NMX,2A:=D#ahxyIgn b~e-/so2BeSŘ D,A)BL[ϣ<>r BusO%6&7> Qil5$f{Qhôhpv @h#- hRF './ch&etŝQ!z娚NVa-G."c5M&MFrfn1{+isNhNKQmy +lA.]#V2L1U vĖj}j+{@.jғkTp%"鸸OBzhZq-Hxk@ʢm4H$0\~m>S NB894fעuU8|Y}eHKv4ׂ{AhqQx޻Iy= paf>9éB9"ÍoU.Z1!VVu5YF"$ثKPlY,tl!eJ>Nr>%!^[0[Š윅7%;m|^7nu&7yX/:^**Ժa^}=d2 +敏LS=_MU6DFAW5qTMدaC>g 3?^V}#8“h +}oxH6rq#%ᆏRJ!zX(D-#] >h6V>jK&/$E{~+<kokdÃljjE+$dmc6 foye`9oh|i<ކ|/doܛn'I6ػ<PU.PV-! HAd*\<үM^8sOJ|Yl"P "!Q WO1nC|71qPR( ҖvܧϚa3{_d0mbI#9bcs %sOS]GS6ɩA?+kgҔ9cvEw!4o*`yJ+BZE.O7zow+ez;(CޖL'1c):>T Phk e EA򖳗4BohWId${d2K],k+~]9lVߙODk^ %biW aEx̹eRTFD5:M$;dর{ J13i3P&K`/C\';ӞSYӬǬDcKʿjDe8J{8AfG*G47Qa- Dg޲=7֤Ə{P70{M{yO^7P7j@*6T2 )ٞ_5 +Az)_Lm^dN׌RmV4f851?!3ږ*}F)ԏVEꖣx0Ya8PEeO:+pZP:lbb*moGkE+W)GGX1Y-{EG +RH>:o#DlRj@ڙj[L˕'p^Fd&Bb|;oO2Yiy'$d7!j$ +AM 4/ӯZ>2ćK Yc'Lz"0QVhԇhi"-$F)MV wm qfH @,t%NuVWc0U3`- Ok#.ˢ4uϒcQ/mߢ / I [QUb3M~^TG lm-u1H_wSgvZpu(UGی?ItfvXQfʴ-ٳ.RT%pp+p8 cXK EbSeY+:dQsxK & Ls&SMױCtPnꌤhh47n|4u0p"GgJmdxpΩKS6d:ڊn<)µP n8ID= +[un_@I d,bt MVDhi ,m‹Jן_lGj4|[WҍURqJٸ >ˋ$9N[]N[ 2+=ٺ *lMhh +d Iݺ~m!g\<1aCk\V'a,H3 +ҳ1i3==?WL=~S.MV4V3ͺju +4jO":@9LK,3fd&VD`)g~ǥYO.P9*`</N]~p81\|ÙV~!o"sG4-xQ#EQoq6I icJ/4<9"o!DWd#fNijLxk'_TtGSO÷$M<1#dn(d<<erfF-"u 2#WE@ºbنG$E2ERY4hLqo6bݺGxӵGIu޳LFhNnCEK(G2%8#`#&Ng1X*XΘ#)Y '7MkDRy'^dhhg#ސ=r5U PnMgV@GEG{!yeJ^z` _:Q4__bqA.~w4/Dp!G#(2B c'CO }1t&ISFD9UۤyESMF4F`AGN,'aVh"թ<YuRv 佴oM`jܧ&vh܂qsk0OZc?/b:j(?f/5X +vWqAI1J`]2fnfK066B@6KeE0Ȁ`plqqqA3Q:( ޯSf3n7tz}ܵN {E r zRιڰch[tMi +,qtLD}hE aWO9RKz-G;Zt[xtf>Jeo2-+ TL5j/ɂ eŚ Ɯ,)-bÒ8ZZL,YKvL6 'Pe=ZL9t@<-j' +4oJ*r'%J0|G_+Ϧsi&uʕ?g711,e.|*NMGuIʔX7( !JYI8ܕ)T=jƸQJf->u7!唅07S^?գܭqcts/m%3[(_EnA '/8<.Xe,.3|rp`>ɲnş6HLH.ج'QD= +܄z؃= qVōJ7qT,hƪ+ku0Zj\k(+&ek!< +mT]b!e*-a0H{KU4qfm6`;FڏKp$4͸в\sCCտ9!JR8ܼȋs撎2o a0*8& Z'TM'`K2$ 1ŏ +]4N+2_jyk UҎqɩ&RӸHzt]#!97JOoܵ^(\jҵg^kBvxWBc\nA^dwTg}h7=o۳ɮ({>Qa(0,Mi(a[nܾłfCT=CY]=TxBhY((t@>\=Q`BK1L1+jsbÞL]׈de nI| +X9 ?kD6,>“օl +E F|#ZAߡnwYN^Xz /t'Exb[r[rG{Uv`- hn}p>D %j ONzdaL[,\8KPƨ2ԽƏĥ/t( |`S&݁P-&sO5:V5ERiH=!p/Vؾ>oZ&nv1y \)%BME3"%I|* Lu/H; :1N\k5eq@>v,QϙFLAtjuja(ˏst,䈙u>`tІyj3;R +v0! +q]SD(*Tw3@I.*$u=}cj#3O7qGbB[ETJKz1H"((ܿ]3jxx,sLdizA]r*hۚ4xcp2F2n5*(_ucFGDzfgiaCn&E#'˭1zuf%ˁ`Wp/ .61 +1D(Xh lə$PX5ʹh+ 09?_,=V\((F$x爢5ű+^ug{9Jh2 Y',SA}l!HC+0=Z!Ě/1m0^) Wh0@/g잖 6j[RمCі%֗I ]=L[dlȾ׮G|-r5rjęANĭz- yӺD"_,KxhZ!wHt"]\ |ˈcSQ{ Ť_s@$z\/]|jb-i4QT@,>e0Ed0ۣ\^{0dX Y0b P:d=2A!UΚb x =)ZDq w>tV*('t&潤:IiS455(׍v?ĥZbGQ5EinҔjĄ5Rv! ]Zٞ0N;`jF^snDFEtMvJR:j-7ߘ-sLgz8hkQ,T>GJUPF9*^ɦF #bJz9a4zkzJkpQzn鰛!%ȞΔ`Cik^55ݜD gk42l&44ȇKfi;]tvݐKϰ3hlý!5M\vc;8˻xLÅVoSSu% vvƵGmһ߮RIU@Fڣǜ8N {w:$+$ER`88XnF/5WҜ{Stss + +%>&HW<9'RL iU\Ь@xdKKFrz*SHs(j94Z0h3S)[/#}L,* - r9̫K0}pYcya$gP㣪_oH/ASMeس)`tX =L%fҵ%HӲNF:̉yml0&v>bᣠzQMMF͏:Qc r!6asi=(|{ gR3sOQ0ztSr7yK +UKrEn Uga8Q>qp;!r0FeFYYMnzvF$hOatKELf3 _"xc$ʲX*Zu؈}a|/c6y_껗Ki0R޻W&*UMKzȟjٟh蕌Yq~'Ӝ8 C׽E. +ychͨBw!򴳑C +JU[!1s=<UQ."vJj-ϖk/ON?ݳ-`a0_酁=WZuħ}ב~T]מAv"VŭJWq2k{Tm%ؙ̦t|=捡EȬ/@?O U|h?ƚXά{ezf5b%ޚ6DvњzcWcE(LAM0NbFb24fIo@H?,K'D_q%D֞ vZGr5d4vM ZlEB5c|-nUۍt9gx(ޕl s$?#A pݒJG)|X}ł+;{˴{L\jI6[nQonip9<8mvp#^2p"ݢ wOlinKW a˟R Y8tHC]P4x?.i |ݙ]JR-gY]\){^EE?jDJ{hnL7m^b[j]}Y+r IxP҉/*g$W8hdNj/IXqaD$ ?qͯgH_;?~0}"**}1t؟sz%`$x=T|mxX *Jm0amD@ߔYaHn@pl@NQۋƝD@|p ;KJpA_l%;(rH8 -CBԈP$ퟤgAbtLeoyw?]!:]Iq 3nMK?K p V*3P&+9d;Lj0Fq^t`Е󀎿 jȋ>%LB`(xג664(<{]7[EW+a",?SJzvx9/ vP6y7|_ +~<ͯ @t+=T_zy=D|Т" ;?pAj1OJE[@FB&> ]#EvXq4>aja8w@G7eF&]?q䧛0?H7L_Ք˒P ^~r pzŘkGY +%OJX_?!oa(1@Hf@L8PD-V\ַ([5ʻwL6<'ØK<+R0h$$3{2auj ]yE7fax:-JGq=3n<ze}8:|GhLwFawf69q@x}2[^݁r7s",zu}CrJ~j(Ac50L~5gh\Cٿ?z|g?ieM; ^M헿2t>ȘfzLaah[vS[.y@I驰:][ߤ^> 8yo]M +L?a,'(f}ZO> wUoKb x%33 K}6Mf&v6,mPwq,ҺA+|N\Uq +!S%iG5?RxG m7yA{j 4v{| K+(ߣjvl +*b AvV@ܸmHZJʿ4is@\?6sAy䴮VeH1ZۅKtڥW.%Pۼ>MC&HH%9-J&+,lT$3o2l)#!C5;mKj]rM,:x\k}?\uƜ[-T%0]2;>cxvKgN!}c]?R +%9[{{"=%zB+DlMj-P5~l)r,ZF)ҥAqB;<#OqJ#[~,ʘ~$Gǘ GEP)ZS'oz?:aM"Ur%YP{TpڛbRFmm>$:笍y<9aCۑKE֓D匹11 VXL/A)K$p|^ xzd0`hD;:@ui'vD5,l_pX`1uK͑ +[D&U`X;F3wʃ3 jT&H3윩#n|v +iRѱOJIlCU Sv-ۢn@9dQF~lLrJ- ?E 4-  +@Uy`g(㦈bn):_|WOGg米ngs5W&uċS;v +g )Oj +=q.=)4LEl伈#tj)z$p'úc+p$But +1b!ZT})c0.}p2\Q\?j}A&Hm4qJKfff4yK/{ |d6Sf֎u˧ Fó9[{&_|HWĀN/؄Du?/ Ec!d@ݛzXn!{G;{Gg 'i@~[`&& B|9>WS] W\R50^} o| 6^Ds3v:vw"]c'Y(wPW2!ᑶr!0"x 2$b.t +#V2% mV8NwX=Tbi?-ZHbU1"?;0z 2le Tm?i musyZ ".WEt?r,^@H Ht8 _ Ң&]I5L4޿p&]JAYSn\zx3y_p˛$kO;bJO(h,S ÒDڕBZyX!jPQ4>$gٳ}K|ҡ-r#}zས{yK sưL&NW(LىSgtRkdj(ceN nKdϧVKyܦ۰:#of9<-̇+W֬Vh@\Z#UQ6'CJVݎ|TX-'2/&ޫu 7EV6I;!vstb(I'N|aa:?OAJccl)k:0Ċ6vqV\]V o,BYSVq񦊼Kww8VDc~6szwu}E+!ӥP(02֕#D4O[$g,7~0rZj%8o}e?1YNrr#y?D #{Ōݕ]DW?{*)?2$,DRSz)sEq8 e0~BʟlW^po'x0z*C c.[=G8$w +Ot7\[ +ugg4,[/apD1]E5;%@&סЁP$9¸b1-b%%+gv#"\s1,ӂtgP +}c  B$H+#q~ucyb +۰xSݒ2!]BdH)|h*(yJH߸kJRs}2֒JwÑyIo%lFu*3e+zߦ!;hij1pjW1_^^ +k9OeϬpzE}<\׉z,6M 0-f7A~0eNX돝Ԁ;S˵EhbE0}f^Gvx.yPX zt "ဃc}RI=S⺵iP-."<ڽ7F^+,gMJzQg% 9i*!d&:y!ꢣ4{ ~LTlc>DyC'15[崃i< + QyW #m_GWȐک + d1%]'S8<*Wk5( _H;/܃;)CLХy}a^ ɪUkIk8Dʄ'@ R[F vOe+!e?A) g@O|L@״saϜ-/4OE.(%RRM0`IjiH sEI\KvrMڈ}01G]"ㄓ3*J;v#x,eDS.W'ψ <^S@je d7I^E#uiLOC5N %ѡrٓ7Q)ܬ-<3֕j=k +uM%'j/UX̐a"iZ`:LcB1 -Y=rhE$m1эzj}\;լ1_&2&e#& F-fb\ {DkΚKFq[DG_hrѝt֝r y4QHjj$+zԝF=GaW[K龂$lG:Tg=zdt4l@33,`</q(b@ڟ\,ЮNU":ubP&nkVԆO Xer3/.1ŝWb9Y̼]43Q|ҜhRuӀ?2f%qI  ?>2ƈL Gc(I$#+,–6~Nn1~Ol&E{U[*^ƞ%19M BOUgH5g>:wU(ˠ&hL2l/g +"@_beQ;^Pj2^~#$()a KKHi)_N]- +Y:XF94˔bM\^iVwjd@"UtѧW{~7™%ׅ' /26w<_(ϳ§YoשkͨVBJԏ/֡}v/2N 4Xnnoj̗ŋfr6 'd\B1Vy7]?r "Vg *F# O7ga!0ykD}n {"ɬJ-{#:`8X)a,h 莘Sb9^s GMom.A.k95'RKڶsܔu(=#8 +Ew p?'>z]k0VB; Tz* Qbn*e:sj#Vb`87qɅx*1_ ɟho3 rvۜ> U5zMòϪw/ %]}ŞS9n|B.Qϵc~ne~S܉CFa=RCo~yf/:pEN ֍6z݇ʽec'n5fgOc0}toMd >מݝa#+?ZL@RUG/LVZ1H">R۞D&=Lx;"ROKK؍E~VU_+}W/% $ZV@iD-m~ N䴭e\KEqd--M|{}ܹTPiD_ ғtEc+>յ!gz%|$ ;~7MZ!|&T(vvDX08bjœ%)(oJi:0\ ys;@#H+|wtK3D\мʖKp(ywҒlOങ gG\KCaꙏzMD/oPV_#4ʼ}ڸqPe +VzMΐ߂az|.0Wތ XnКٷjTӮ&"?QM%{!z馤H$jpiTfbOLZd唁+n;tN ]t`ošwWTT4=+c$Y3m뛵󶸺WFTo(̀a02Ր|Ȟ_̓˟Z0{!a;Vhp`Jβzپ>vCH19}hAV\әeI +MG1?̣J;Lf{ŜPUㅡLN21B5d1oYf"MzؽlҊv:s|Mr)ڽT]EFIzarQEds#C"L̉}PS' dWE֜@{=;MALǹ|.RcGڦ: zSFCȴMB +&R銏 +ȑg)ťH&hV<UU34G+BɌ&acjJDz[ +ڦ&x539G^ B|!򂃏h5J@dSr1HD`2JaR=tR!Å <ńBa0S̩]MԒPȱbW6n$ *C(Ok kZԁ WWx7g~X KzXMǤL_{PZ{t0@df? +tw/ԟe}w>+ -dOB +_DTonT!ئ| H~P/Ow=#Va]eowFOxY[>aCWeW{ {ne&fC(yk[[DƆRf5]9qKBu8kH\jJ#.鼗E!;&B*1%n ׶T4u0-bT5ڼ!>18InUy.%ٌ{s8r U$W+ T9"P rlhU8EG,lP:,V龠X9=+& KkZpض-P8_fr@usj<+QHXzؼSg~ljh㾲G#Hv^MVWPeEPuD }_bJ5$/ ,(1-#c1g9즼chϢmGC9g "hX<qu %qJZ>cYgϠX +՛X5GN76Q &n |i|rZWѾ}b }}ZS;# gGGƁ W<ꏳ +/$ŗ! q]",jsSJ$V,є@)S̘# eh} SĜBF T8tIlJA{H.}6cM`y.I0hF-; aɑ!2hFQ(ndـ^ L/>%sv\DT{1Thj]*#5'{Ɣt!W_&@{eS1P<#`Ip L2Xо3@]Tiրr^v9YYԔ"n[]|d8_Si-T[["Z, ϖ/#PQ4I#(N|-^$1ޙBe@q~dvdj&/@T拔k?NcW}2zgm'iߑv$$~ׄWjTK"|h>hBW6I֕7Ɔ˶AVUoCSJtnZ[,s~Vwd""Eh3Q1yA:`r{ ?e-'NMa#979Qmjq#,٘21^rTل\41qJ6g{&/!(bty:͸ 3r&SËvqfSV OiQ]pPϐ03c`*Ф~'YxtwLYMTyNwƻ4pBq:Rp oDJ*UCZx0`kL4KW:(u> K>mfbBJoO+[ 0'ϩa[wŐ#A'TKq˸V Y¬( !_סZ/Cm52ݭ0sod \5#IrЏzvTU>}ULÎ+.Wi==E&4\U ]eI6IuD6~Y~S%r:lC C=*إ ʾ>Q>򍹪 oԬm8/ 岥3 +e~ܴmrB=ܴŋ`f¹H1 VRC–«uncm&CHz[^׌J?6>tRhGBx6ҴfJh6&S $ӷzΜ"tYm$ .i~ZSdC(!Gmš[+=B]JF$`nCCAƉ+|T%Ik͓(*\gqw\@ Nb!kf1tQZmB;NyA|ϥ{@ +P?->s#a`%^=9ȄWFײh̒&eɧ&m"(h;M1/)iT̏X`n,):|#>a1kx[f~(Lz2G|ܛ!i7:¬r>!|N!mݘKݛ}_KU\RݛiKb@'.sLâۅ),Q^Xc Ň<<9P("Eqa0wF_a#.wF,F'qbE.fE?.89ɮȲh Xm)p +V(94ݸw9r +f(cBKcCV(wL.\zjwB`"T,5 ͣ},@(Z}9$7 +^9 PG)й? +էpe`TOiW5P8Ma׏ꦂp!; yPT0[=&Xkk 6+Z&`;%q'`5UTvg*SE}x)V:Boʡ~/Ӥ'?I9MḂĶn!TqyhDFԦh0\S! mmMJT_׳l +ЧEpov vOO5s|R<]EwNvVE\JQˆj}]Lhjz@a0|y pE\r:-W <ޥ[i}.sĄ[,Pkl. +.ϐlLs[T cګ͕OdY/'OPn18,߼F_4xG]cxcU'APwF2dxDHGļcFSǟr,~xO{Qj5k% rsR=uBw/y1vSN{ԎEX=0LYeDY:G. e?ShM%xm۶m۶m۶m۶m۶o]UwvW#iËb9[A,;u) Wlᅺd7q -+yM6ky(P6u:Ru 竌Ku.[wϮLb}#W֦}8{._X3-ߥ|Kɍ05ɥ%kFtvWW)'qYȖ5>{Yn7|jrIv#R^D~s<c[vjיhkhEҰ%]ڝ2?ɂڳkAN28 +{2Vs"V bFʥѫ)֒Nx=/,!lǠ gT)mKttOۛ-(3-upamm&uvE*3a^1HZ|g!5Q2’sԃ%Ы3l`Q~U[ڈ+a* i, ȾX'"b={:MA/}L@Df neӄ,ߊ4!x8= fF0< 6I=#cVfo}aTuf&ʊihDy Z8<## ދAh xcHYG d%d#Dm91z!iɁckHCW輣(wF@PseCvC[aB}ZȶTt5mbڪZLStWLW\t6m[AfsL&nJ촭S :p5t{&A뮱۴eWDKJcu.7QRvHy*BӋȒA䔐̒iXҧGU3D][z7f-uڍ){Λ/5ZwKN7+#JMv/-nʺ:'%ב`y~6ZNYYQjK1h2] `%k %tf 4PR/(+C{.6z WvP^WBI#996l5AE\uL,22:q~o&p%jm^Y Hӝx=M> 4X ST1Xa(l j H&(-`15D `F0Xwȯ'4=.KQPY2̂۰˨Z&I+RbI&/HJpK7{w=FEt*<單hwXݸC+m8hnxV 6rc5e+;]x˞R99ȵ$%fd RY =h6R6֑>n!) f6AMg*+٬߼ ˜,K 8@g/$2jIV~-=E&jȺuQ‹GݫMRQ>o]Q:{6/ĭor$Ҫ9XRO&qWާ8Ay= l_4{OԚUb3ĻƲcߦu5o,"g{؟cV R@R6|]u0嵶[1m{X,f-+ +i&qW7/RPsP0 R`BMͤ<ğp'4V1p!;]{ڤ,!vOPqXu3R7,FFE8$ԍBGлA)! iP2]TҫZmیŻΩ,\r]U)eru8 -D>Di$PlRm  P 4 +ԅ",3m!ޗi}gMx7=j7NtT؛;O jiETaٲ4Y*8q0[tBtB33n e rB͙=E&wlA1BciEU9,Z::3mHIDE9ܱb *44-Y9)nZܣ{ J% ~d);C?1C>ZS"n%NLϲcsN& h8mKEL#z0R{\#mlCZ A8ީ(fZl-(C'Z( ~mQP ;5QO5ƬM#f2XXt!#G6-A:G3$1Y:*1Oa9~rZplFY#)UPZU:ne0 {"sqՂi'#]-_ѬX-tęs8/C8 1A9Zzn 5#yp"}*!7Q z=OX +\Qu9XkjD=Ȋ"F3;=ɢt){([:8X{q#> w?PoSMfq$4hIm_Վ1L^O{PM9V۝i;_*·ϛ#)uB.Tf9HӨ4v4HA$Vk3pbQDh*IBUK gx{vsʼ RQ9P@n{V3LףUgj":0R,اxz9?Ae2pa5¬8-1DM3ԥʓC UK#1tC{Z"D׳⃛);Vw]2K&}H˄.g@YC&s>dqd7a6[0imiLy)J>3Ƞb`"GNrVGQ[ ~oԛv6jB! \9AT=VNtv(B;L +\{ \?.9R'i~d-O])Dᏺ6ز̸M!7jWmD}2v/K(,>7F+RUQf&^/=`F^Mm ǝ+NE 4 +OAƟaj*k/.|>'^dwQinwySkOJ+nXjlsp7oIOXdc vvZ'Mv*JBqO~bM6 dmrÖtU#X/ȹ%Y L9٥N~mb4;#=^r֜i_My ]mVHV]'\;ıKVy2 zNZU!t>ePGQT0rwiZ5PUFa|K,:D*9:)3L6OCwNum+m2skVJ~RdÉ(1:X"0'V>V8.Ҭyoڂ1xA4;|$4!H.!K!=M $!y +?!l8a0|Cu=hC+Ps7M̾OPǼAgWgJhQq]=Rn՟-Gw;q_(g?Ǹ'لNX#m`E5>HݣM.#/ꞏ=t;q?k]}8zFFX0 ϧ+44E}ֽ8o[Jkû4f~yvtjûΆoh%9=6'֬|0ֺCP* =| ȝ?n}*|Tqgi+XGn) ] W"闻BaԒ O~GйU!+\YbGJF\Sea?s:.Q`WL걤ĠҾ<*\A Tn1*?٤ydr %襗ѸuosB&?We2s57R{2Mz=[`2ӎ>9/>"O& +?yu/GWpJ>q$~6 + V^m"ګST cٝZX='hr/Cߠ;sп O!+ ښX{UGNҖ(/l 2@70b"<$pO )2>8)mDP(nXb]=5hTsx{ +՟A$,DF# +Eޔ8 -Fڃ.\ wT02L91L'ӆ7nKtlsi\ ح2Gʑ B,nkG+vcLT] /L H!ZJOǝe(0s-mrڼᘠ wh涫"PQ\U}ӪUEf>Z4|>9Mk +/ %7g:]"q^EQ8#]y +%lm9% qy(CQKPƌiZ,iR}%KHaCbEFHI3W<RT! ɹ*0ʑbP,"J 댁bOB:}eHs&mb%O91.Ln;yXyqgZr J(D TcH7 Ěn~9E8uDP_s +p~qЦE|腾!> q"vAk.^{(h ݤ 0}7r  F7o@Y76)de-rFPCl+cbr +wrtYL<34]zɦD TYIp: DvVHXS\ +To?LRl.Moazϭy]Lbp(bFת~GC4 $xjJHf{':ɖCԞOUfBctU*FFD'MmMչΦ^Ifm1 >;EyapԬ)ֆnv(衔`&N)P|KS)d'6Ԙ C'c+DqVӥ)@X}Ȣt #s +t4ZbP)lPY 7Fhcc4dZ2}'S%4ar!6$#5:]k@zwMAr(;I{[3R˧"XV#t7lr$ d)ᆴ;2RRӴSb] wg: {h"$%= ݌:>o 쯒 z=NoYaA9M$hs Nz]}|VJ($BҁpӺT%>w1hym1/g|\ˀug)[R/짅4F8 >7sPWG+yt*o.y4^@8 =^9A~Cû󍞨>Ơ2=z]yGBjaL̀rEIǓЍWaΌ@B_9q>#r-B,Ԇu*kV!O0A_пBkzOjpaw8{FH_;s`~UwuIG]Cy„/rX1HoG9$vH*YtB|6 +2K1[d r/ ͻpk Ļ3,x!? sE g0"({T6Cd}@OJdʻm +Ux> 6{d ۈDn^Ype sgLT]9 h wxwl0bFN .,[Cnܵ,ȉ,  /1mXX+[ܢ7YQx'!v1 DBFx`_F 5%@\! NYlObk!EU< p q:kX>#:}R@9$-@Sm8PUN]C+"jX`<Õ9v^aZ$80faј\ 1< ]! ϟ; x>³NuT @̇]2$/N^K +MN9H-`%=#%Le\JDžx GqM95 Ԧ2uQ#UiL3c?zruߤEX( !Nْ4+{ +[X/G%P>1Ⱥj`֚k<@ߣԯvkVFU,KL]zvcS{XcS߮ЕD*!"m(NssϮ9#HK6<6Z?0%D(M}2pAJ{E@E~`!av1Z6[aR=)FCv1@6rl3l6QzCJglZS|.4Y9囫FleJ PBFW;͞+~QaL p2Ƽ2ޡ1C P?i֌V.íOx $~/=$w VfI ZcԶ {~z6XTZCqnm y#7U֏V2ZdMg= +Lt#&l +.dn@>$Y%|9$6E\QTʘ;AXڀ1u^Ga͊Y`~w/PMޯw?7Q]y%Ov`wiO~}Gqt=Nkz5wY6@~u-p|c{x +axY߿8?ZH~ayyYm>ctR/Gj=A6wbHfGy1{|_~}?o2Xf{(b=|E@A ) +E,G|z0, 2hxGpi@p];{ed6[kzaߕ0e6pﷇ_V>3%:0V6x~a(Q(rJ0ˆ&ny%7kl\Ÿi7vN5Z gC@iD}3r7Qdț{!ze)&dD̾RF$[T>ŁĞ&&Yѕ @ oKw\ ^ F:lߍ&`'3 osA:NjrgR}$d7S)4$KZ/~!AuEJgŭr !8`.4Q+4לF$F=Bgd&)cK"~ATSƂmd; ߶R( /'uѩUH̆P2 ڋ휊7mpiws%yJTA+$G8N &B$e8Q`lVsȔ bf\9Hv!IGټe`[&:xBy{1{1Bd\ZBhWDiZ}VX$1͢T#'_gh:=@Ι݊- DlK+:1F>NrT>x1,8T Ph.d;4ȢRaEͲxGl5U!uhgs|u5U6&P( גTy@v{Z ~ JwR Ş u0p>qhW ~3t㶨C-zpX7ͯ/çk[Rg 1F_p:4LJYLZS > ʚ#9l +-h7(![w"R=RJ)} j6kÈ=.0r}O_)yI^,G: =]0/t`݇ tZ Lzpǣj.OR[!˭ mip3ϰ_\2.kX Q{aM͔{M +}- !;B"RvxmT6M\" ]/f{XOw~'{de扄ӦPjඨܼ$UPQ9"`%\?P @"r%Vݫ0$K>LjkQ~{+2nyvf>YȧeZhf$TQ255shU<{<R9ic\A8X \O4ЀЬ AAY)UsCXA4Эf1j VS_ykLAXVжW#8=KlO]ۆcZlA[]0w\GXЯYK#=nO-ݷmC>oqwmC:8xay9mC6}b cyH;dJǯAeسC*mbܑ"YZ7*zM|𵏎Zwo,4>EAsq:^B2τSlќjDȣ;Wq_xsdeo'WS,qcAlQt)8v hu0E*4[Qt`Di U}UPPtJ5N#\W閃2{"}'qO6r }h0m Uyz:+pU~hpO CN BRD2ޮ4ɺm,*wv_3| ܍9 Z }|V#~a3 {x`q71eUmTS.ڒ;^Gߦ~KR}t_⒚>2R&Ž6BkVzFxsז+T@2:WP"m#1v>;Ojgj{(ARKgqs<ers2b6͔1{Ʋ**EOO|4-VR+yq a;V? 7|Bu +c6/i-ܧCB߶3##A; ʣXA[LCk.>K2=a s nd3FSr#oꡂ;+j_D7+1'Nf&mT{KaͩL>Q(С Y3_`())ʓ\ka sЗ +m(=lʆ0.Bl$BP3QQj0''O V%V~g~O[|0wX.?HWsl5=>w1dHjH9бGӬk|Cp!غH(ՙUayURH8O0 4 ә/``$bB2#d~t1аL4Nxq=R~5 l}tfvR&:a}"gDW=k|(쀯ENAƮI|J`;jdHfz?Z1FomdDf;Ļ%iWgɪ!b?'!F=}ග } 5$? 4J-AJ8DŽ;RȄRPuGGezYćaia")Te:9E!5*aij8E. 2ov,}TL:F}Eۉ4%~ ұ DM0jAL- NI* +wsӞJʯ '|Ju7/#R†#(>~R젃e0P/h tRK\|HM0TzCM@g\P[ƙKB'R!5ɞÊn<=#KN; ojYBG329~] +@&ܝ8hz&w՝m_J+DpOc]fUHPML{AC[51,ܙ{L.>:V;;ǽ 3'}oͩkGlø9c>e o?C-M=p8 XGt^VEL!Fvl)$a B;@ ;POO`|&# lNG5U-;ӃZB-nI82T'rP9,?L"@def_F5V?%k +)1*je+=(+r,'`Qf~.hô)YE?U8?k%Q^GnI~t.q7M/>y>;ٵ܁+;QPNPUU:\H=\<as@>옢vJ( ;nJ;;.TAV{DϪv@>A =4;N=N#G#;j,9C C+!Xƴ:> ҁ渰5/Di0}AvjRLJ(GJi͂O@V2D,t\3#5{2?lb6Xo|HTE9Ԟxt`DRr`/.!b7t:6UFQ3(9 %\zJ)MQ +=7tT񘭏 ,}=E?Ke6itW|l!yPX<}^6792Ę\󱥔 GPw/T(e=9~XG(?l9y\|uHtBAzt"zl#b%Q,QzAC박vwl/c +Dsob!v4`iJؤaUVj +ꙊE&v RgKK +eܥz.rYgj4Gua֩$9ӦBðN`&]XXnZ,BGCǁ<b Jh8 +eY\O F_!W_JIXƇm3mxsȆ\mgOl =(v +wCюv ZMzE rzgü =\B~C# .玔pC}Cvp+C  {POz>WßsfDzcG :t*EG&g.3E@D$' R33GsRYAʤ8+ +Za2S! C~r;:O.>HnGRoC`v\1~@g +ٕq#.]:[#?A耯:=TsjD=r!ZD:!0rw@z]d{lP_{z@^jA4L&u40CG6$r`H2n@d;w$#;wk4IN<av UD4C/:ڟI(=U6%q܄ń]6EODĸL^{:NS]-T4Z-IP/eIY| +O:$y|dȵ+%&8FkvrA@,.1N5WE`lm0?2i_8d}H/{l!m1Gĩ˼KlS|+kKOێ%#MDfȥ\h[[~(-Uld̮ףo1z.O'v%PХO~(YDk2}XI.U!?yr`?QdX݇QE2A\Da>IIJ + փPDFG: /U^Kw}WNqfuqG=F5 ;^AyХ}u%8@0DSHl( V-#d 5)~ iK++5&k[ ;kev.'˅6'DsR0ym +c+̋k xQ0Q|f|\]z +9َ R'f rKoG%HGm WK0g%Tz@&goI2oԂd?'?݀ +zN% +뽨W`}{/63.uvpes*ŏ@ꊇ9F_@c,=d&>z= 16g4_AZ*\y'c\(Cn?6cXOs>W(Me|£Y:\62k~M2zZBjr{JesѥcE.;٢TI.i[h1Iq1.b=SQ?bIl׬JMq!K3FV9x|=S p;aIhqeѠjoZ'gs6Ej58(Ju~%=\<.;( +G"OEY̪۞ny;0=E1 o3GX4M1޸57u#=VtttVIC/4e>9*:P6*01`7qt6d/ȷ‡kijn~_PM],6kA+eƦZB㙊L6snJ}n:i(m̗\0>OFW}/eRԦ%[KM>W˟H7o30gQrNҷWFO\bð#0clA;.,]8orؠq4(aX1ܽr"I +Ǖ&gC[l(@̂y$p}ܽʢωjH'aw [?RrJ1+G!~QEb&"vI1l1)bi1]!ӊfLm(3*P3f+,݌M!T$KoOV.iGש`E ̒hw*#"VacmTWif*z y$x$?ԂՒg!02W {t,,[O_/^ّƛl6`=b;' mR=X:a!/@/m=C܏^^![:v| ǃ BȠ6aLGv +6_;@; !!w`M鋽33Gb6{K .H#a3 QЀڅ\ ̦RZRP{yml!( ƹRO`&8Ƞ8 Fm>2Ġ"ꐱ#xaa)mjQ-JJi-Ĝ \RɧHu[2xȖ8Fi)*'W$Kc[SK% eo˛?ҰF+KáF? ҵ\eE37 +,Rb Ro5S +iR#|0B^3E1]#ym"{46&펠ŽզeŃM'ݻx)DG񕎓Fh|rGRb 6?!ms)DQFF.H5yTTQ)J f2kOV:#);ƃ„ohہ-P>WBTOQzjOe7pL1f&CNcv(%{`C|K /}jA&-עQ0Z=2.j .H,K5`@ftgacx*i\"ɖeې 2:ܚ8X嵼uK"Z~ Yi:j-X@53!2+f&l-%2Eɪ KdJN&z MO++Oid2%Ggॷa؝b  r.=k#\Mپ1ք"'Q_ +,AXPm_RFgH[0?$g j_O= teh3# PWmg6fW\wQ5?X^ f* Rp$XE;6Ԗ)f:,= =l0ԗ˅IhDZ<'ӀV<.5nb.$6R/[TEŸ> 6SՃD Ba +Hk vK,:7 Wg|0(G/ͫ.Y3D7*?@Sym)sG]ho55+`Nm*K[՟Gl]J?+7?q:=h>q1L:9T.FuF 8WSIB@ !CCtBU- )q-#%_됚)SgX=B-U]g6h;<'iGlOޝqDxU>78JV}Pyif 9a8V6O\-Ǧ@TuoT 4Lp?9}~+l gGHf, + D+?+ər Ddi0F\nlLIn`$M.iZZYyg* _tB#\q3 % +7-az @g8$8屆5Ziϣ ƅkz <20ka$t7bx=@:b Vx5sFwrOL۸rkpBCvW" +ZyOzi~3qV^6@rܩnH|d8ER\:}$:CGЖ[і)@Q9Sx`*(;#}"\-+>Nb˯ے:% ϴ=XMwP(q9E\@k5/H@==jMTU5 F+-0/0(zOQrص]=TEމc$Md-p+Q 8 ^[uBuN㘴M+Q~Oax!Z~QsXj杂!8cZk+}T d:/TVT5Frz4!ܕW^pMeMwO0%FY'7NC˚NWp))T.Z9RjqPҶZmUBji]\{ڕf̀&h{x~vM"L]M8%L>&ҥ\.AC"GGgt !'*"MN<IYGu^$TiAng]6".th*S=QUWHEb<fV)`Ta]>%\ig=+ L{̆\e`a˙cekϽ) $bϟ?fPb@AS?S#kS׋"#׫!H(lXSJw iލL'IW14 FiloDbbeؙ%•f\5!AwPHu_-VdUQ*ǼI9sżIGg3UvS.69]0S@c{]:5ƍ.f%jc-+s0`\{]ܙoZRZ g *Pzi̍m17 .50_zRco, e20ިM^T3rK ɍl>b,iU_jα\y[ %4!-K H_7]3/`)Mi`:n;]*_jD_u3)lGt!BZCQI*A%#) 4}iH}!evh:lx ͩ_ck! ""o -V č(=z8H^gQ,#)5#{JAvLhXNP4$R`\O8zg5VԑKor꤉ֲ66,uJnZʄE*?uT!!R}sjS B<`.XTW/+ !64r4b`jȯDnqHg+zf/)ZW)7ؐǰ$Dtᵝtƃ5ᴺ6UG%էjl*{tݐ7;)&sRJ-N(4swfRPp[{2=؂!a{pvW=Cl(k g,hˁG/CWh;2Mrab1߄x2SVJIDcG;Ay|WFIu3F\*e&6smĸV#Ii6ؑ0-/q[-ĝp>nHQ=v5BƩ.  )62ƨ!#lsL\(Ң3ɶ,*xAN=tEgJ6BV䔯$޵9s&$xY[45ZLrު;C u,je_U7=;uJ\<\eaVIWT4RF[}fe>ze@Ţ8>Y<KG(sb.QG*jNF N~aKnF_i#"_ңRA Oן.*I׏[r&m׸:2])&] oΗED.C,Rf'\ʜ]<}'[C9ASL#ǢSp,J%Ic4ZIb16t,KdRTJz,6q*5Agj0֪R^MQ7;J_R_tgL2>8a,JZܯ~JHMHz8kAٸ6tEG)U_&X'F(]q)VbS!f"ʑ%Ha.GqDK +A=iY.Cʡ2PfmQ{ˤxo4iK2rYx8G\ʲ1sDW{zt(gl}٪wə%.3w^%FxGkRgh4}ޚjl$%hHbBWhcl#K|^'h:EvwxtFakXȤLiq\ixgR jc|ߔk% Rsp{TwLX/Av!'MMxko6&3ʓz<-\Y[p,.AA;m !Cm)Ժ*PLnZtIO. U`[{CCp5 Co.Z1-`onpM1Ow{e %$!voGzwwi4*pA9EDgT_H*ݞHvIc 3'ƓiwLӀ)\9U\v{?mg@ $_w&O#$Tzzw8U]zCHT6GFP )iZ>[ 'W'Kݝ'SɗN85k *Y's6[8.ǠaUwYozS߶C1UR +iHY-1U|[. +U);T%Cid Kl^tRsGҚ&`~.͞D .k*^q6!S6.{Gi^ɩ?3Gen߼ fGTun +S3;L`DiY_-4ɐ`6 +؉t'82,Y$բkwnw K.')d̍GFM1E9%gc롍Td^<"CYċ2Чw(9_tb9+ǖh)?gͤ~cf:M $XrBzBjʛevZ7K: )q7PUp%,\o|jF } S8:Z?;|w,G,QVݧ +,! P&5 GZP'"}?zpOF + 6ȭ +̑=*=9s5Ԍ5zD|_ў 1!ߙ>c l_/~VϾiO]jaܹܽ7L%j#_ <{X}&цHÝbK!\LCPT;AώPa҈mlŀߞެt5փ0)jjjKCE5+U3m֖.e h`1 tbv +|pBU8twpG2z^ܑGpR9lƎI#hG@m ?^4P\!=頝1A.zc=h5 +j\oIdFU{XZ>1^OO(a<* 1"|5 9_%T_vj?}ĊӗN c0juhawKi7TsK;,d0TR'⽁?RfSa=rnZj#˼'gbC7b[5d=gur,̃53=])*KK%}@򺙖19>;hրǬ’Lwiyc|IVjhgI1;knai +uA1p<׍|:6Oj>l3wp KJ<΃hY>j>Jx%YܔnWg/J\ʘ'wxCψa4i9,)tXԟ;9x< "B;' +IN3U*=0ђĬŷBQT'TnHgSj;T(4irѢu!qsZ/e6tY phv{NR6Y  Kf3m&]Sp̙XO9L,skI"aeCkՂ5 mA[(3yڼH6*iw(RͱW)c 5]w|ƀC,װ dj9sut!Gz'H2gbfK j30 C0| { ninQOP7s_\…J .%%% Mv6Vo8ClDߩEAw'd(me]=?I1&5^ݳu83H0߯Zw唧4dâRn@K2otLUw-iXUz/w3\iϼyʐJ20ܡnl鯆;q d` 99q<'x1 !?aShsd=\"1AtKH@]8.~) ŔęCɖʝ;5R(s֨,WJ^@V 4K( $ Ŕ YbQ*&{S~gI^+XN +t +j,E?c'dP,ZgN$¶3rɛR"ٌq*ebR#s*(?C<8lnbhbom`dbcbyxkNI>6m +ILHR' 3! *"?fzfLktGR.Ӏ@a"#@+Nj(4ZSui||um{q]a9{Rh}5+Dн;.=pk߅ep$BP1z ϯ.:4MMzC2g]Nھ-9ѿR"Ѻ]Oٴs=lj7sXm.ܢAMO1^fN)k0^/9= %1rW!q.5 pif\mXm4OPC8S;//|ϺcR +bM'SP(R)M(7l/^{&2r؄/솦X:xtHn&94QZ6F*Ťڵ/k&Y5n.L>]69rk*r}t蘆P +UA}29 +OӿRg{֕Q "i ܜ i2ȱJU*B0_E2SYhh6R`@b{Ur xA'$(8e>&tOw!ߚeXQc/dpnkx)\Ⱦ%Ve`[wP1MbDҬw1Db^ # fLzaoB)Z G<]mXyO.|=yv2=h6bu޿$;'%b~vfz)~ +)`}C3;+{h^jq6dLZ!x +sx {Xzk#٣]=KE%Nh۫*'.ck>Nɯ]Eޟ"L70H.fh#w<~^:1"ސ%"&/ +N{}sGa="l0D*lceZ^uID_>cjS'T܁rOAxn!Q`rOiFەT|5#P8ͦ짐sW``GImvB{_YLBkѰ l4t'Q랴Ka7̀ToHD1WW /ܕ˨˧+wC6nkw#̱PIc-^ + 0GNb=ںJc_ S=̧{"d_vj+ꀞ A1rn<weP ܴE *h-, +Wk.lnjcnlgP>s3저:^L{9^?w٢DmHPc_1HYDTv`\x0`<؄1$Np`ލGQ̩̮qcN&^ًܾ(ɠ$JYa !2 :2$oSu٢I̲IA V1"rpߥgs琩G@^mmbOV27f%O3{=9*&\UtLhVrxiL^pNyoOy_sc!~vtJUTYXwK/. t*;%=]UN<>`tQ**g7YTU̡6',S[g2Wm285Ʋ6-w;vc=O'MwGDiH"6gʕoĀ +'ejw  յFi_ +uBU Β33xv\b y:2̗^3^6$ +BpW=2Tz+OWʛ?.k!=VSPbPHa 4XȮG x{|ZxGaxb6ڧˊBx24:!F`7TS6$$M&t +CÈ=M')ݱWGi>CȚdMG(I]&U1udi]&}vD,.CH,2.m(rI.ѣq>ѣrD-rMf!cbo2`dOLj|].qc՚4.yna\gdX]>>^\cjjw}eque+~^+0E3MVKleVL&REA\!,}+靈`q]~:^D#vY}ǹVr> 8!e y!?sϛnK,f"ea35?09۩>KX!zv]oKD")#H\<8bӭ-ٲE/Gv{ntq|e!G}vK^(k;p EI569{ yp0Wy:Շ\d š\rGOݜQq9<ˆ=X#%:dž<%ُZ׬>q (,b%d{,#\R=NAٚjs^`8;"q-H"7vjݷ{qBuG)gDx[W"fgjԍ#ȍԕ -1#Hg%a6dk!L-KDiC$P֘BŴFu #^Fm#aCHضlHP6mliMYP:"hΊ)iaNӻL͹_fϳl :b.`=»=x/JFz r/佄Y{cU6J0`7!#e\1y޽+mZkiL?p!/^&bHҠ);[m +'4D$yΡ2ʸk p5:c"KZO~_Ǔ{Jfz +9d<~?1Na§vK+$Je{2=^ieN&`%a mҗtEpRV~g3+s`´GOnYu)ܣFvK UXǠǷ5f"$ܶҚÍ!h0Ąc-}h+ɶ"IosWrwqqk{UݼV[]B<~}'Ջ#žgooZO튿/U?q}nEo>aUYxD%hvO2˽例=j7wOx׻nj7uM~%;,W+\M`9EخAzx*<I;pd L+֜E_(݃K'E~b,auC+Cª 5diFC7/5pQվUֱ۪Q[GJѕ+q%*6 aa'E  +tŔ" .R%nj00qa +e 11k*-U.@BV>(|xܠ2CG.Z;^@y$\0H6z(U +$Y"fEedVZY""jEgHEeC+9VrgXEf)VB" 6[!սy/YV䇙АrClJ݇Ktt~riޖ6Zf}";!R ׾I. zvLm]NWHz ~hHQ0-HC{DA>:ܣ/h#O +!S^&?p^Q6\ʔ(g~0" 4&%O?-r'6xK[c 8ZgnSKPsܕ}'G4nTV]wȱ`r}2-W 9O[cͦ@O)&B|zZnMP6x p<|cp@ ~ p μ`*?wsԠxNְaм?m0 7坻`Нc0!`p. F0#|p۠XoT{w)旯i_+|S/ƹayL/ aظ-OCToQ̸ O:ԁQc2ăDE 5?0pVFfI`@ V %# T^Tu:ߊ nBG]c&\Y6?.Y"|gcFIk18u:up.(u#u#uuɧ"%ǁY X?=_v] ];#644ԑZXȰd%hW#d$ֶf +&]~ kqq^^vBp1 ux;~h#H: i{1~!20]I菚@$,tDXuEv.FȉP"? $Bh$5 1IKwT?STK1)gИ{bЄ`Qq1|"QltM94V;vW{m]h eC +vTOiȚi{GΉ@3tp1{XY|ƕ ]|RIl+Kՠ,lO_,)5b(/ K1F +C~zTv%wvGZ!G]FA,оtgF7n!T(~IumȽ$T0a V`!V~-7m zC-"!"csDHh; :UE/AD#)|C} ި1c)Eś`qɋQC` 01PBD@@KrhǨ:EP 2he7AS]'ĘDu$]rqgqv +E,F-x>`ogrr( 5iN2r83˜Q )es5̻E/'*1K]E+ݠZ>*w2zBL$F +6B̀XG <&d@n֭ VZG[T+tm[[}왡?[99y<{@6e25qμG:3ô t=^x <¯Dw9$::3GF1ɝov<^9Thti6uG:-`u/SxC΋:5,+&j u?^gH`ؼ 00P<Нeh17@: cr;&f9Av=![axy?0mpv均zC|5&Rcy$S~96#~"Y #|#}#r8dHѣ{C=HCh;X?գw(<Ch <v!v#w#xt>} CoC\Ji =(#p &}Z;8;뛘czUzg010an&|* #Ņe+`Gzvƚhe K.=>IFogci*ŝM9j 2EZ$,G}i47K[@k+R{25b4{+cNfHT>k{5u<3u_ 7GTB +b€4$*7̃ZoX$ 'Źo<M} M +L8M2G[CR.27(FQyzp'ӾkA,+ZHJ+$= 6#8 .*UCm@/i"d]W;.uv^RHAeO J*Ȯ} +d#W2"3.rF! imB Zø,#$ +2f]ދr{Z$xU~"mmh[&m VB^C}C; +.$M)e>m ];b[kEq)+Wp8Aseu>ԤC4i&z)d9}"+S2|qc\aE@Ƀ\$+:hp1+e&BYMdHy#H b:;["V{+GtP9ʠժS(.zFV@ K1kz¥yK{VXe<ץ`( B\S(.374gwbuRG0mhTp_ +.B(3ւJeuJ6ˉqҁ,XH+`(jyD +pVh0pK12R" SI!dvn^چгq`Lb,T}THP)Ōn|8R!<յ+!]9Qk̐]7(< Rf+3 as-ײސZ:ᱢo}~B9t -F ? 6-:,$sѨYD?).95%CDW qK IK2e?CH}Ij+Qk9;G0Bz|t +Q&wSfтj!+^x >cMO<%36Guuӌ<ぉY͔ jKgX-4Kݐc $~HgfX'X}o +y]O耛'Пaq?⨛,`}0>4r3E'7p'YSMy}Q"ۜ€h%|zk_ť,n)sNE)V7%^E5=@YNta2G)_Xv4W=Yv49_˜ +OEi/̒Ia!JD醊W #j=ӒT*0)Uq*csj52f}2K*$Ǫ +ъv5UrdSo:(%rƚ9r*rR<>d{iӘJd} \Z(50!wY)MnE"T5i]WI`?gdJ1 +4.6§c疖'WQ❈:٢&%QȖI(ZeW(X:16$ صk,/ eC6s󵧩~ڇuA=;UxʝoHqR85 Lfm!-k[bEY#R4>ڀ9y;Mѭ)'*xs blW}wQ1cQbc-7m>/0ki *+{sJc$um!"Lck6`,i]Q>`ޗ˽[O^k/y-_:T?)! W<秸cV$K%o7wћF3fɋEo7gћ8;5jjݚ+FСXʿ۵~<>եj *X@#m(bNWX'#[)R.ĈZ)}ضI= eFSb +L1_d\%'>_s\ūi.<_y?d ~ަI0M/CA: u~6Zt9G*][6gvj:+*vZ ɐ^fJB-?dJAr~U3j^8F]?$P$饪^@uNI?EW,ُZ ;..H~poVM0nۏm_=P25Ӵ};P&xE;B"Q&Ңb ͊(ذ(gYx$Lkb02 > - V %["A[& - ղ!j̳w ,hgK)=A,$_/613 ds֓#-?k$轚z{Uv h ɜ0/N f1 p +fUrp0 ' Vapn 9 ٙ7@:Bk,1[Ѹ4anD>0qaqp]yq>@q.M cF.9*,w+7Pj߫kIkx5꛽z |='IE_hO5M8(OٸKq(OdM*GS!OLc%v&y<U$;DCne:lCnilꌆV$;\ $;VY 3je7!5p C52xݶBI1ksDRN*5L.;t::B'E b)7~IwgBIvlёL$~^Ťi(QWvFW\CJTU+FUK"µ :;(@98^'K;rH]UiglQ'DQ(0f4Su&(u-ijnVn*T`BTU~X*xF忲?/\eN{Af" 5o=;FU:HPG'ݟL@S|0hW]/8aH600eaʮj +a6W\\G>bllk(TGz K&PE1XWnRhd4^T?wJutDZmτ{26;?a5~buV9YśU /6&jL{1 Q\rLrIc-L2ْN`6nI|`3J96 +FdN!*:W(K-0OTbbD!O Jkў69$+=ESԱbsM;7=BTMJnOpMP6a@⺬ tdB;9‡)S,h?Y'Fh#ݣ~ns u#WLWF<;JO7ݏhׅ& @c|xܒg>/aϕhHvA:8=pMqM kDpXpA+iFR*s$uދV +M(]OnZ•}+žVGec_Y ~ {G[!8Kja.waO~#1+-ge/nx4!'3/6P$Q@_pQ3+!~ I !~ĨߨEx!mo rh66%L_eD(,.DVZ +n_{4P) .=G|Cc6U߮s.st C3\IJ_TzaÐuh_Q޽4g·`o20д`}o4 "2t\dֺGS069#6X0>`74̞tAъ87bt)R(DP/)s9}l NbO6 ^KP0|^w{^`!TvO3ͺ&=0:'sW<_sgڰsܶL2m*%ï)f˖x}AW +V}Q|'-<.41j~;n?j{a}' "oU + •msVBv +&~OQĿsbb``I6 &Y1Y/EL DA׉v.Nv&yzfXhH\P0$L!D@||CvBBA{ch) yӠj$jc _keM5v )O + xM}ywywmrTa-Rsfdwj͸ "}+ᐐ|gi#W)$w#Rϗ4@W)ZV:*ő@NItvs|&]-~8m<<,`, 2" )2hzB7L@PĬ{+Dw*s̃cAF섃R6ZꦦfO34!FHTTb/ Znj{q&tXRJyхF5+@g?#$uФARԔZ,)Qc=v%he I ZLfyHNbZ]ݙǒB{xL/%(Ga͵Xv"Ywp ߩi ?4'rZަ{j~4zr|ƣch}y4 yX`~s 6T״Z7{IގeUfAN)bp<σ /i9͗ZL RlѰ95/W*- skqPE(+3)v;ҵB-å~0XYe-Z{>c3q}< m4Cl n(f×͋/­>OaO ++W|Pq_[>|»]AaT#F~JP>xc]=s`a$i3{>ː'Aa`LgqH뫡 D=^Ag,.1}&J#?⹃#Su7?  įA7;8ߚ#t-BjvEږٯvԾ!- " B?-ҹ#;b)S_,gA<\D*' +Φ'qJt"}tWZIJEe<D_p/sҡ7|2#10lǻoB(VB drdnSp8GḍD l5 r/Iu7ݺTOq}p?tD˞4f!a=u8nb{9kO=a߂`oOi?h{<όLjΰ3X;gg(n[x+> Ҳ4%%$-albio'ahgbc_pJe0 E:ʎ +DZ* k,APn>ǹfnf?ȮdQdRI4uXv@ +le0RN] 8IZ}Xo!8 +TF`j͛60Zᱹk8QзL6E?sD0Rq"CImthb3v pdHaSTE 0;l:qЪ*}X0ҨY݃ʏ;duRI zhfR &44Xl + &X7+q.Vs{7F&E k&,ht*| qeƨl烈j♚XZ#m0 9\![+?tf`a+;UXk|I3'ո/Ě,B?y;"qP ij_IϴWNvfգQMa2),$M(0-tl9),\3lEVHȂcۧ/XO|:0\!@CNLc aU}n9]~Ma҇OZD)#W}Hpq t[Z{rGZDk+\IO^Dw&lT b#ZX=c"YFՆ;7洙RdF:P,X׃s8ri5ua~k56<!e堒הD-y1F+!\/7xu> wZt0thh(]%Iq…Ž!0d* #uj[&&_p47nXrN8׆\;:=i#4xMj)qOV<{QP##%Tz Doa]2iA1GDLI|8y)]f,ji۠8[Vk]oqLH 8X*CXpQAݛb{%HLR,Hx$#3lB010G~hJwJs4ge!Sn6R:g,ƤZԄb|7CeqK=DBp 0bU=4殜k‡1Q)̌sc8o ˮ3UH3*d,g +Y奱@Y@LsnfƧ”:@p)gzVXCy>?B{wE*Մ(\j*ԀP2`b@sy@_} 1΍ĊJ#VJ%+RCJ_YOvj;oCOTШ {%7=o,.NKLMVC>"el=]_=dϓƓ E$|6%.V4ro\LKc&{{wFxeG u~q{8YGӏJ!KDpչ5E6oOu C|'m-ͩG_8E;>VvϯJ?&z^C'ae$_EOjᄑ>ٲdV +Y&l1Bd֒Qcy2d ٌ̧nUPpi+ը&]TQtuo>{$nS?{5|.B٧4_#TG/ɰ"f$NX=e=Ű0$%>ޛ1Ză/p1wj31iŐ&fރGV;~ݾA X~Èl{&ﱑ/[swh2?"b_axyhJCRLc{dCPO6:X*eC1uɱMDiQ +ЦzsPMewVdN&ߖ*oV̫ԺW^8:g#_o1Z7R -*sE2G]U]ѭƳD +O_7<ݺ5*μ ϴWL#F;HӰR">ƌ22IBCnbo!Wv{{kKK˽=7箕'R +-%-}H̨q1%HM ^(DII]yydętJyT6W>81(}-u5bʗ5 vfȕ$Oj(Gw[[,n rq Kqrƚ֚лʣneH7Nn60'f/5 dg~"0l&7?h6re7%mu +khr * }BQav"d-+POA,'UYWF?NLM+%. LpO{PL%e*wg]C oɵ %[2{&ԁsp ?~ +;B3&r&!U]+Q +QԥI2m̋ Ƙ&-tet)sК}\2k~+"a.**d߷8ez%MaoPL5^#HP,(BVy=ğJ *T~c^ u[2 n f]+'F;'g&dƸX-#v>:a.?,*7j]=C1IX>`&Vx}ePfnIRvMzzdJsH#Cҫ|Ӫnfݱo v৮?;>_SE4ԿkF>j F8V&0s@:_$ "> H;$2/©a(a0e,JqV$OUp!\gX)W`-?a&Ml0 +LmUVfV}/r%w䌎~&j;[m{`v %hcnp#C`f OqM=W}v卂7 ZpV:)'ֵ2Ȯc})š!#c>ScuVtÅ-gvv }G P "k +f@iAa?y3? G`h//TlÑ'/&n4ZR΀bwgCr{v :C`DN<̢{!\X(/؅`py!>{YrB׬!Fsm>U-iZkʳΡc^C6x_[;_'p5'l>fm񏋌f^bB=}ΩU0񉥄L#dBCBeE3(o8a=OS.d9gBE4:g#MxE0MH S/;:θPdmo +k-paf-p/+?? h[Q]+IX8,JjCb<Q;`}Q79JCqcz~qD?Pw0h~S+ TY=@W}KՎ֯}ڧW*~WzȊ[%V"ebߟτS=ds<+ +Spu1?@_b3'NwkW3|:i5F|)Hi'}H妱ZZ +]՗p ybvLld܏0 ]PnUT{a*e+FЇ)jUzd"wN93eeN O]C#C]ԣs38|J[gqFR4m6fD2'#&n^nM4P]`fm'P&ŋљT%bVUEըjJ56֊o.l닲n3Ƥ]n{.- iعHyP ' K%h% 4m7+NyV;P(,WJSP?uȣ_eϖ/ ^`өcNs$f\|݈U^dՍ)u?n'Ş'T|K8O>ɶTd= KgZaU`Ud?EpFQFxXE{ЉQ]. |M e݅:O;Ymfh,/hqRMFMwVܼ3YW;fUYҝvLvt?H4KlID(ȝo+=;I#?wKy1!Mel)@ڮ<_l9;ν)G~HzT_ĬUy(hY+14ڐ³H~n5[bݬ;|m*`T5PЩ x~=_{aMWc>:?H\r+sHV]BUtUF/v>+`=T'bM#Bbn !m V|ܹѳ%t +;tǀf[9Hq;}i8e9,ǎ~ Z B-XP ^1άbRAAlT['a_f=d >);gLV"Et?@kfLUs!|6h:o1l#?hhi<ͶSA+PsoQ~քN؀s err.6W_^řjU[D"C@6H " +θm`Մ7 ?GKfugno|_oÂhЛ"uWÅXE*@Hgf+zJ+2I1U҉.+?yHqw2Ă"+1"C!7VyUKGL}%Se.񋅘c5AvUq;? U#_7l.5UIhmPf& %) JsdJ7fg`\m^Ki7Njhpe[crSR3H].)^SQ'&MD/.3ۦ@9>$ +&ZuwoV^(/jK:{};zX8jCBQuQKd 3QR,4x7%v!z Q"9ή"E~?v dz&RJDܳu/\|:>`uH&.6eiׇi-ԺHvgcԉ%l A%S"O9D&d[ O]. 1 רOS_I3!0mB{Ʃh mQ &Ip\uizl=}"wmX{>8PDpO/H QuQE޷/blSaܾhQFi$ԖkkjçP"]- HRiiiZ eZFb(e(cu\se=i|{{~>z !3&Ձ r0L+q_&`,b )cb:\+:S!;>:N WȈao$$ +0@Ya(ooݢ\ mљ +fQ b{1PMjR{ZhomVk}:48•u `4 h +2+d 2Fj^+Tè ;$&8}fGQӌUo95_z55IMCL*n +3V-h$MY582WsZ}Y,@|G?NIr^sC$awL~3bClBBGDmhSJp!3!\'4Ң+ݹAb6vV#UIS%XGb Q@ӽ`ON _ywR҂'fvڤhuqF{M!vFP͈N؅}z#07;LR #'f>T}[IL@xLwc4[Sk,}QߢtIFnSPo/^&`&KebW3b)(CT!i*rvW"g}d]es{Hu(/ EHUW&1*`~سI4qm+5-HQԎDVFR=Ɋl 8E%^}@URJњ5hͥ2$|ׄɒ`,syu9X>.խgdĭ YWL_]m*Gf9??dR05< \8eVfs aN&ez#l|EvôM 4n"(<\O`(܏D$VޏR + k͚/CAIwڏ9. ʴ@Mي#1,}Ȉ45p=5Sf=r^̅Z圕hwfBESNWqNj HY,`aZ{aᇷPkars@ n4/ ˌs# iUd)#҄WK2SP@ԈkpIQnrL}[p0P ? sP!''W(tŦ|AQ)"""aGFJaKm[LcO#G1͡ "#3؟f'z#aWHsֹ,!Fiɦx&s2Ķ. 0x 4AlJ&C/j*wXU? }31JězԣF+m[(~;4X9: [zMoyL6gv#2 Zմmtk]09+ظGzfq}l+v SCS0]ayw5igUNL(El IH& R)hr=fs9}n t:($P)4) ɨ$e6e8P/(X+@¬;v pW;\J>U 6 qP}f ~Z;\vZ/@Y%O=s0eLm`M8G06j%n47˘̼ڛLD =KXβ{i7; ޜ1Qz[9$53곚Lww'rj4K#߱Em+U|F.Unq5-RηS2SWחB}.,j%.#dưVT;y 4YYxI} 6 oE9V%|w +u9qk)n2n$9TXwmˍVmVوы:7cmG" ðga +J*;[Ym29:м͡߂d C}^RA( bVQ'?pbN$:)6!^,kn ƛ+ZOzlHD8 r7ު̀_^ TVm٦Y@'i*%ÈkfbG>H'sdp 9O[̍+ЃVND҉u&ƓJDNƕބ`nQY[ⱡ~oѳޗoLI84.57EDbKWYY!Yg_ N*cpP#B S4UCחօ![<{Kn9~9uA[ +$+ +F!WLSmbvͭz]Z?YusK1k嚵lvQ[+}o/޺w!)C"#CfqE)ޮ0cXLxeAeDW{>?F:B:umgqԟm-4BZ3CT40hԘ 3HȍHZ% \##:h*)ILETn9*sB?RyOxNN^f% /W2셀_t,,eD EiQB)Gj*PK}ԖRTAh0t>LAD!yTA>A?SP>Y?U Q>Ta!}-AGuH/ TǕC'Z(K +%ף=-QyP{)j +{f(V2,]iʉg5rʽ^pdQtZM&եg&H^5heը&E/ǡn$M=Xj[`S1aޑKZCKy>I+ש@Ny,ExCY6+S8kWتϜNYΉwXkJq3&K J&>~z:Ѩ>?5N +gJm#GӇ>ń8~AuuW#>qCd;6sIK\oY,b^bD!]7u);y +:#QFnHr1nBy+XE}̓w16o",L>.&\L\>?bՔ +>/|'St~&Tw +FU1=? 3i+#h3nT7HFwr+˜$&GXN f-}/cr])] ԑ>^Vzk[ox)jciMT sF$Q-x4' +=D89Y?RWP8m8p?8tRPLxQ.F%> EAq-=m/?ay.|QM0q;,Ю]מQxzc;g቞x##]P;!p,ƹ&KpK_FgFj@5,:ݛEeC&3&utm^A`'9]Ҙ|l}V"Juڎ⎠g{BOQK}5_V]rcWDAOMDIMDW~YO}I5Ups$ +>rߧF1&CHfmKe4pI(=BP^iYhD/ݓ^ d1GL-0L%6JF,hD'QxLp7ɑ;j" c(7}r +DTA.oT +fyͻO +u> +}һo|={#{Ai̕n3acl2Tqm~}ƝHu7lSWc@"@:ni<0j+uˬT&cJLJhN㛴veǶ~~;HOp# +I u#6ҋ/=2ޮBc՜lAwtgO:ITj(륩{qAwQ_ TE&L1b 6Yd.[6,XܝmAZ#XiW9C&y QC&G2B(E i6>QiS W?(X _Ep )gr)oI;~a7W VxM PExZjnU#4l)ŕDУL μ'qwd׈_51䟽j= b)eAy-|+icfWfڀKab0}j Po׏=: +f#@%L.Hm`<$-VVl$S10fh)I7DOH .r_󾯻m{7a^wѐ(: qti3TEbfN6Mβ +AWPRPSP~1أ0* 7#|,2/绮U1i15mjmWc*˚ A=[Yv]=N4nZkDdϳ\NCvHTmN s@AS%=ꍶ˓ln[$}`3UWo &U X&>)ODBg"6.NGnraJZ|OOgՒ6p\kļlcqiM9*C}OY?*$Lwsmr`k⮷ټ5P!&F9\L+Z}-RZJa!#EigetD+iҁk^zՑ [/ g}T$7x}{OKk8 +rѠԇop`ȁx&DR)&)ROW̑ ެel2/u/>i0?h:-8Zs~pR+]F h+ }(sCMD~h*c 3_e"<5Z]a8eXxoQpx_JYLcyn#Piɓ)jZG\ޜ&&ɦ/G5(Oeee1Q%ߤkܹ<|jw T5dZE6Y]{Ufm:܋q!p +JKOP>.nZn@$Hy FBX2%$X?< FFB $nZiK7?sώxP|5xZ 5"B|&0(^Q!rU$TqWϲ*8%G!{JJ7ڣT0C(&PrLǗ,̷J{JyO0>$Miva:uiלftYc6&3G9Cy7eL֦0B/фZg#S4xLJ!!HZF(F@I1R}  4W(ReB*",shwɗC|wΑaVD:aYi72I=ejOT,44c~O~0MEG Q S pk_ FCgTMջ]Akx)4}_UOǣ>Ynv=o׀?M ~]TH[J=n(pg{54{J)TF`2 KF/).@]jy]Aep5epώ: %=&O\%p ts\vY|6\>PC#,ÍGT~+ IRڸx\젧ҏ2...CM>ͱ#pB|(F4}UsQ"uĊ!: ++Fh"G!dyu>bej>U|[O BR2?$l2o9ܲĬ +o_-j/l\q30[Ro?]м\NhBaNM U軧~_ 4m?"[1*m+TޣA((_&ͯkMHaX)XY_O#%ʖHQ$1Q" [U׳\3i(SlqPO.wR.sp ͢*ORxQX5컺]J%,Ϋ^r Sd/- a;duU*Td"NeyyÆ~K1G8s m`1 ,34} s*sv4_o3;8c̓+ރ+ga'Uܱ/_&uO#g<׽-ҴW"0G!߈[Shj8/t 汤N@\ߐ0ﲡEov..T7%>W B5w?PnVٶG1E̽lZpDm0Q*qRV&@Yؼmٜk} Hb0d,FE< zD^#=6-5s>#ϊY#@5k^ldAF +A;$5pؠ{EG.TeGڠ £UoPU\*7jzqOjT($.&*I~n}uua>q 478 y_YIw&3m-]3ٺ{V<'2RO&Tl9!s- ;vf +B27HbB%[w'4n(bv Z72-07k&jWa'o1Ocd޵ V%ݹ0HST[1c4=S"},iSجGQ +!™$sI?M!  bB4" +g\__)Py5{!0kkġd +{q]b +YkYo8ԴԂw;g6g'*RءC_߁+qH:\ٮwAkCH)?-li.E!?M(|u]( ,StwF1_vϻ3dv]_&;ڹn?\Wg3FD:Ƕ܅U[ࢵ"gz4&Fi X#Uީ\eb=MqJo.OVnSSx @LIWR;9#d`; 1ͺ l۶m۶m˶m۶m۶m37f{̮̉OVdev?ȓ"r  +e9bN~})BƑ3}]|W;, vAe.D#lJ􌻲)N)N!)8vN#̿S3h\"')}6Q(^l)뼷QzD\}wӉۿ1VqfGS=9')}Wt~4Jj |(yJ*1hJX I?ej̵w35JrWfKYE&uJWf?Y; I'kiZF8{a!2B0fۜK +hvzj+g-IszQf\,SЄ$d4;CqԐ^Pl:(= d :^u;(`gHA-kicyfaCmn@+d jɹ.ev9^va#3s"-Ί4iPu5ufU\؈!t s{;AJ {BoEMW} iH֫vFgQXq0ۊ$L&c5t}o&j*6ڌ 3LXqq88,gyt*"UfF-v긴jhYŴ#tv;ToU7~?vC-@];9(\!UQ:t6E,( 5tbUz'1XW72L6Dmnl$2{KpNlUd{3"@3$uSt?Hh[@)|jcm׻of]1WbAэ݇Fְ*12{@K3Gϫ `vԂۘ:kQ9,x<;T)n۴n ec Ib0.J.\g ʒZC: {!$$Y¹eJR(X ܢ٩P7׿ d `Ӗ`+?r_7Z2dA"=s_?7cC/~ZQ) ?4.ddI2LI2xf{E4Y2rL#,I2x I |/sqhSag!sl]QPzFk(WPU݁P +o&~Ps({_m>C@*T$%tZ6JL SIlIW[i4zsް įFrsA43'eNص.~0}c2#a L`a,6wwSWW?s;ug+@-vg.ڠ ``s^ +_#6NY mO %$.˕;ٔdhO,;ےbF.tfIZxQدdf9sNȉ(Mr=.nD-~\gka%tɶ6pSܑk3lɾO1tכarS"@ҶJsoMNt+n\?iPA;B7H!̈ NBȮJM5R#=FTa2ވ3 +'ǠGY@O +!$7\wNx>Oa푹59#L1r Y-5n 7S4$m擞7eTyM1ӘXe&S1@M]ѿ9?Gp?&5M`yz"`֒fT +<}c~zh\MdXDT%ŮjLac8dVM`N^Tz`[+G@Bلz &75>,AXkȜfT;v!ʢβ9\zxxl}%?zSF`[TMOc,w+,ؓ9*.YW ng1ځ U9£:Ѷ޽vm;s=wѽw +VfNG_|xqvhN1~GJ滈rBh.\%Gw{p>hjƲMh wE!(MyEL%y~5av Y8Jr\S:\64YSC?\ccq `},J+w0qh<,Rku'hE|s#ˋtGhۇՀ`o_c??]ݏMsʦv48Rb{%pgRqNVH58Z9TOe\dbi'1`75]X~^/t?55o +X#_b!ڊC OP\%[ 7?]#mҿ81 #Ѓ91[t$pVR"Kd>tOpSB_)H©݄ݏhIU>.AMڐoD;ϭ^;79OzG^`uUkS!qL-}G~u ]Nrr{>zC;. 9gT ;e^<)e/XDsL+\oZ̡[ߜg[ ~w]ZM#+Gf~awN58ߵ0=lѫ1=byt'orXFv%ATGT-Gas? +45JgM9֚܄30,>GU؍g- Txӳ*z嬒m*TCiŹG1iI' ԞF YS +/Uήi,AD뇲ǯ#=RL_~]55VcŮXG^(-FNSajw?ܑ辵D⬍}߃0}ÿp._(^Z#FDJ|{(]̝~, yG+ X/$*U.E (A1[|CYڜ"n ab< +~7.i}4us.,'༩ &z(aT;a"d:ms6Y(TzCT]E\)؎9tfpUNA?cڶ'ƑymLl6ڥC VzY% 2QZԎ^+,b>ф:::F +O#7ىE2 +3]1YPLs:;jNT8@#Oe^}oAXtuj-7J6lU 4ZJ#ۑa>Ҧ53hDu fHy_Q +]J͐ +\\G}?otx{r .>I$)IVV7IѣY"u*%B]wiIEVB7wܞ-SaCUm5wV? 97ޥ dhgB\ƽQ qJi _YǬz߻fsVkz$ 'P1Ma f'&¾tE+ykv],d]B z׃ZI~Ps &Ճ̘[TU 2Sl2l3a7h#XI&BE4bfB{!F@ŘNE)701[nYOI>.FV4ra w&ױ)V`wK1XvjQ."Å1/rqANh7a.gCk "5pH{ʝD촃Apl[:[.LFUiT6] vuY*Ό&:.l7f6svm\4V4Ĉt<@O?7y0qlZ{ 44{ - +m"XFWpZMF X69Na`ߍ=W(Z|5 Z7`I0WfAW`/@GHA4nx|d%?h3Ƭdrᇢ) $1~uD֗߁Ev REd{8;0gȕ`!FGХ ) -KY* A{hfQ|.I7y`ax+ީ>O*{1{&{JU'IqӁ_qIQ5t3fr{9" )5KxO'dԉ_iGT +a$GSroP)^8w =cFq=CXk=tRGM_cbuD&_Awo>ÈtoKE+$$g9\vpB(tXD_L ֊W/XpF*Uy$}Q5F|V :Ch!Ch-2TTvΌR*M `eI jd.pRM& ưO}[şI!'~C QMqeME[b8 1V@esk{>5eMYT=+rڇ|ĝvM{ҿ'sce!O (I=!O Ő+ x=)O '$]jlaіm2\vjZkz\!ñN#5L5% WMt(j0"# Ru)|0WXI?^$GӒsj3d5 ׭EV UnͲci Ί*6ͭV:"w ɐ"F(ܓ]"29!p>aom4D$֙˂곳w+j_],PJٴ4TZn|\9[ :Jͭ_Xz˩VDN3t_>}Z*]+#_UťsgUް+ ]ޖUKziφμiCuSCƺuK\FMG.+6-ː&|Q͈g&?;w={={={t `>>ry?9ܡ[qp<_x__= z?:>=R/LХ.[ΰ=[YӾvGiGR݁W0?>Y_/;Y? g, :u`_&b~}~:AAd ^\@KXv8 *t8"V#l^ |I _t +)ɜϬ{_|j.jppHy[{` vP^6Pc)9Kٖ_AG.|k8kZQ. ;A9ԛK>GY=/7fù&1cn$Bk:iM!n(h"P[;.ܢfSR$cc]4*Q`Hz9ʯ' W*=fiL(ݤBy ƧJGޙc^E6rZfe*3y(JspGH| :|cUTK#迩MF(;MGEM >Qȹp*O$1S@) T*)$Hl.q۔D2k6v'M2߽pp=BxƁDGB@K|i! aIt<*oCZ&U E7%o(!+" eHb 2_" F Ҩ=A&倄xiAW©tÛnSQ{xci;>1`BMզi4<8DӸ-oz*tI_u;N%gYBi,4R_S׃QU +P4SPSbSQPiTLOO)lڮ6$GӯN>jl)?jj.Rg)>'iЪ8Ow:n`Uuc*mIU@YmTۤzlR 94[ծZ[RkD&rN=5K5YR[աz%(eYa ١Q'fxk= ڞ;yd;\d+WTi!h3% Sn'o[nȤE<}_2s&>Tyr q@-EǷ6 ɢ4^dt#7%ѦdC!LIyɿ>ز`qÎDTq_ )h)$ ݃CdJh.l)R4=MqvF)R0h.C$Qeռ&UcS!>.3BNCM\OG.0םG¦2fn#Aa+y/&]=wCaOm} +i}l~{0#qT. xXa#糦6@Oo3gBL\k؛;gio`_/h7Ȁ 'I ~dT%B)S@SErhEV Pr}˛ 4`!ƀ'n2 <5p]" 'o hPbaH0/\Ȏ~> [+lD=[ iQ`/PkbPZDx}8-$_C%3э(,ahRxI\Rb/`-p$j>yGaw찣Ѳ_0SUTzmdld +Ĥ%ḛ98m BaI]|.PIW8LXUIͰ +OLdEs,fDtn)Ĵϫb"d"%zeLHqG3IlH|V9`OzF?e&QS`9aog BYzkXס%ކ`-C k h0xFҞF{g֏u֑u%1؞UqͮF%ke rdao B)xY2ٸ\ݮO* MrsC3vW)x +ɑd=-L)j˸ޓXnIxo c%=aĺ%5zb##u1 ҅@DvPL'>=PX.OzR7(KA}p+64` COz`bMC[jrݮ>87Q's-n-B ؐntapPOӺB9?ވF]GVr@Yތfq]ޯz]kq[V؆[G^f hc<~xmen =?~]+]@1$>PJ\s ) +  2f+TÊkxO87x{ڝz#qK?ºbWwcEw2;k҈:_dC|e5'tga!> :H}u7E9zg8V-$n6g=AWSdAVZ4azu0XɗŏDmSuoTg0rGkQ,r0۲Cu?pr#cޓw}6%{eP7%垓uxkĚJJ̓6"@$ѺĬiq1mE'{+z 'Hob|uģ˶.Az8q+Z'WV/΋[1 V'JIA‰g45„7tsL.tSqN(L\젍9q>: +mI7;Wm 6A@FW P^)լbZIcE>/TCve< ˘[Was|˘]#Ԫ>JGEأֺ6)dc|#أyecrBkKySXCt מIJ%[`Fo[*`T\ү-{C_^;K鐙>5(#c I9~J-'#&^ߎ&>S\ \oa'aN^Gy%_DEњF3ؔ򜵘4GwxxG ,7OO䀂Vܧֿ@ . uG~#D2d~|87!O[y^aZ^;^~ӎ-`pV irK$΢85m/ew u)HA~Ա&?8]ԓ4jTՑ`)Rpu<3%f5?Ld{F֗l7`Hmx`l-f8J㦥_*2WNYX^EhAN|PgM>V'F( IL/VvW!18®Uc{* JU'A,SHrtc>2g>Bׁlk9c3eyh]8]@ retZ*fbr~fd~D~dd><H%+t ^G 3 )>ȁ1ywBJOYlN,ZS)WŤ0CV'i)l@ۣFGb/LCC +RL%PR)f +wAFhYSAe!Q pWD$JoH [~~? |0 [ +袃b5 + +/)2kD:PI)9})ٵ͚6z$[tA&W>%go2 i?ˋekKg g g ό{AB>O4WDR/os(v[A˛/$St8!F"LIna^42Xkƴid|d7P37%ѾA3IMa +W4,ZS,Mˬl,ZTa1{G3GoT +!ϓ,sU=4?냶@ſB12B?2Q}b?^^^Qgӊsj}&2bw8 +R`Geqz8t@@HQ֧#&ㇶ{ġbܿ躠L +>8@~ VtEZc'h[7P`c9ݺd[rl3fSGfvxQ,æ`Hul[Ae3P.Ǖ ^:- օ0`.PTY=lIՔU!e PWn`yIA&W3 =+5vA=Aގni0nCh/x;ė͟z;~$~=ؗG|I>PU+y=x|^@u~^Ha>B4~pGc.څjz#/ >sԵVSJ.S\.ť>g0E9P1wɦzBtu8br*f, <_}xxhr'K*:r˂EVq[PYUPV95MѴc 9t=6 ?!`\wUq ˜7J@aE7>$Qoü.ɼ杨d֬/g7s=̎c@gЗeU~1cw,bOU+΃XK3TiǾ}lwWF9*Juޯޟ*mOh|yha\4w1BBW%`hFܹGسsP\zˌuƂce.GѱűɱP-=OϫJ5*KS++6FiNt4+j52N7uDMP Na$%ǛRT:$&l6wAW+QtTګc[Z~S7`|Y*UUU߫+O7'xL!1(H]qV}}pJ"eGH8$<V Y%hH L4tQmhBe~c}{{`k~v p)[XNb=O?8Q^)ll ]5h#v /Of )IYj {kfA+jdӰ([]A|$%6MP9QL-T GEX1_Y*7N i Y(Nuߣ -jJ;\6T>-1,ޙefI2tC%DC9eXGn{cunaezQtJ7+)55 a1oʆx;h?]mDhH%ۧBM3L@M-!%OmV MU|V[*+-= + &*We\7r@J1K&*K, $t6w]QDԂ8X`;L_eZ:GJt JDbkj5 +TśCD^:B!ՙbrj\J1P-HUn68ɏmӛAM/ƎXXMP;?--G=a]jEv$TA0+UӢ& ;ٛ1VhV_.IJ%xP'K_ r +kX1?TX2RFSNDz-.ͤ,-,9yG謅hQ\ڃHwM l9:jE 6-ĥ+JŹ"X:ĎI ,&@Y' $wib8ljHX(mLRTTs*fc̎C9D B-PmiM,+J8 xGIJYÚ!% Zu + d%eE+K fib~lNGDbdƔTsĎ\8`u]?k0`zWx)RlH,]i` +@f9c۷ +ue_:wGh8֮nIY.JUsR--^ǫWD=P֞0/YZW_G>[6"rDJ[ѫudH&C޾BpkPXUjZR[_RI`(y nri_(3\-ڼ*ƦZ’0 +!)gAm߬$*(ܒwuwo 򠞱AշN`t9j)m-շ.5z'hb׷N6Lt9}طN{Icç-I-A +Kbp &:R.e}IuGȓ-qLJD=T<<[EGH6s~>&Moyq鯢Hz!@ߛO] Q?JZڒ+lKxpcFw!:y GxG`9J~S4>G6~fO}gM`ǿ>[|>+w^FkM~Gf~gE",!}5F,xMåHBj"0#xY:~.$9t[)-T?sxx/>)T&2.˴4m'4Q5~—Ap8piQR$G^Bv0A# ݔ'9"0ﭿDD!4:{L4͎"#GVn>\PIL}gSo)3Yo>!{|+b?"0,IIY цw>LQZ\|ЏS8ex|uג){ ˾K1s'eVpSQcpBy}s=l~^'|gq^I;^@@rZCYq>4=Nj=*5UmޯR\S +&|}2gSB،,8(ZRw*lG^ٹ7@^SrETw.s^)2$Ѭ? +V$32 *dcgzZ|>V-yJ:hVYr*ZdlB)+]VRWvy9k WQl6[(AcCglZaycl"ZµheI jƾ CJ{w.CbgZ.KQKe1~Uԛ2@H3 Glf~sqJn];9D?'銬snŤ/RP3bX;uDXxRj AtQgX5 ~I5lf$[hŀ*9YŪ :t)3Y5!o|:؂aWAF0T m)eQ9hj4lMg륫$8 YkG= Re}1$| +p7 G襸a2ixВEUt-8ДpSJuNy_ޣgZϸ I9Su53 ,JAȠ$`I j9dB؃Di 1{t=q#D$KL E%e>ϱ^N܅Xb8l 0KlHo )_\~J2V3ƃe:r"Y3]-<׷3.63k;USPc;18EX^h<>ur}K}31wlrO21 -b}o~tɾj0d;|wOlDŐ0_Ҵ>V$\:/4XW(;qmg=}O?f`o!6Ť8TPQΆx"ܲ*t;:ՕbV{-gk:gy:%:@{ԣo&:Gޤ9gl7{p4M5oqNl@:+O|(@Y +1DoL;LO*eQ"T{y!FKGvg}%2z!v+  Tx鑱.$"ǗG;: q9őw62""I<#2=#;b9Һ2JO \Qn-s%|[6g V_;hrCY2!=`,<[ޔɄ?pHo1?/?u= ('`d٣>doC־M[DmFL71+Is `j26Ntnrl}N"Ӟʱ^amD O|(e| '%ɐdD083Ʊ'CR"b>fhcU':fԭBe5?p>10L,#RC b l^JbLhÕ݅1S#:.dݘM,(csHCDzBHBS4'dm <պ-[MzOI=&|s5G}&Jn)ƌbAf+"M3*2KHA$KL:c;;됂"[z'42wp7`%|7ᇺ|?#4?蟏r"Pw4a(> +t$ːpePj߲"DPvh ]3Dx`Qx5yPWJS6Ț6#Di<0n׾$^:M޺fwЎ(_83>xd$,?$|8Cq KJ9u0Iyq?NquO5F}4[#D}DrwFD* :0h+FK"5b B #:1/4rhoć* Ci#*ٴgyڣЦ tI#V:gQU&!bl'Rӳt j~ۦ|.Gnhn۠s,Ê'ZGOsv %V&:ME6X\Z brokxy4"r[ PԵfF0#j$(pт(u I5m*.OYsL)qڄSla" ֈMnH!!6Et ˾5S@ +g*04'Vܝ  mv[6Mv~/QV,pvĿw +nDWͮ-sC¥Tl@:RiXmG ܀oݐީ9  ܹN8N@8' 7[!J(cܺS.rDF%4R% trbۧJcĬá±-*n`sW\.d|e"4v-WxeLyZU[b7Z>f'䞢טqHK" l on4 6<2j٬I,iWwG|v< Sq p`=E(PGiZ^/qE?$-JӬvOyAkyB3d־v`Ӧ5=vM|%n"5Co__>QӓӴVh~'œHmէm+{v .(2uKH lyH C!6g{E_:( `.޼ü,AÞڐƼ6[$jx nHYߘ%[׊y%rr,nCtotݞ&E-!Zy8SRBkdOkM+F8;7*ҝ3_wkl;F;NG{"{e[ )4{X2W،Z.el.Xp*J0{-0'`o&b}:VqQע$o$N.|E> 'lWtk}/WU0&QW:P$]l:-M4Qhi[pY4XP_,t.H\q 锭Ɣn-Xh]a-wi6enȉH\6yOD2w Y3x+nhr`X_]^njEAu"yG72K]9l0|AGغ@hs`PBpBNM0AC'*d~SMwظ輫8? 3J'pRKiNT0 +љOpJ64F +*ך؏͞`n?=j5P xv'ϥ= [Otk_}<OIF:ӳGxTaE :5`# ?jxq!E:JШyXZ^[bXjYǟ.x/=%ƘD5;|IU ͍5V+tؐo;rr/#U 4!r.LzAys`Ny1 4%Gƙ"fNA%ּ2Iq:;țA+W>͒պ[(ZI~Wt ?UW4E ?/f6eױ+4=m=j6g^^U+Sz+QȎ ~ PZ|:C0(Q,fC'%99Py~8/ +=̻<Ѷ ~'p;U*H`k.7H.Bp#,i0T0i59o#{ ] #hJO?pI7غfN}}:[*ĈG?=LfҬ0MW@4eYfJ_<5Lmg?~T 3i]L{M+t& fQ&PNvDb,6?w7#X + pe7q-oE]ѱ.:cVy-j + +:e},-n,D +n,|]7[_)xn ߥȽn}6GZ4n0dRgD:ri \6oH]{_\oXY 6 fv,^ل3{毁,%n(ncjC 6#`B+؀xjG S}:r[.$+t- Ũ"FY)TCZlX56֨rCz=d־#]XٕG;hL%`K))OKzFtS-KE?7>-z,_%zU˫,\UG ++?`n^m1~tmU+]P+_|9jIzÌu*$FVl4"ao!-œ;TLRHGRҝz5Po]_5weu]g ]Yg] %6ہw=yo Z0?H :%\/pͳ޲kͳ{:P+1k`k1H z=evr=e`zI?!c*ic +-H;[_o_QDۮ2N NΟ͝][ ȥE@h-'C>>*Kw\^2f`ȈEkX~zV/ b7A?4{9/ s]G_}v߁vkM#c߽m| α[D,?$̼,?26?yƏsz~إ Fi,'|i[?z> yZg}/fw}X a/w>ޅA^o b_˚3vpjAd{K̵YX_N$U[ԧ5ݵ]ް݉4vo§^]݁'pw/'w/EG/IHja׋o/Naه'7;=&.uhQ7;6vX[,NM +?3pԧ쏵8ާS/uaޱݣ :G$"#v4Gڂ,=D[ #1&5R m65ۧze 2"+e&qkJ|J+&qX4qyt>ao[{h8|=퐰w W^?CnSw.0w1 +0 7?M޳~wp;CQP݋ Tp@{iP{rPݽyQܣÃ񠴏 {SQ Ua@@C(3H UЛU_hV~b.Lw9XFӤU&an($|ϴ I6dH6mA\%\Uݩzmɫ5=ܚh%T5[(D٣uN +$ApTj6O`=j뀒5]s % {iEqgݴŨ *JI%yL|'&~eퟖ:n9k;O'=b{ ZFأuHySt`-#G*v\zPs<\F?nۨ^qo}|bL&G/<\ï>[FC? +K{a/^و癐v/s͆>T8Vڗ 2}֣ p'C1⽪k&R(αȢ4Ž/OFIFll|6p5TC-rpKJ|`qs#]4. HuIgi7Q5e_l|r[B;nn-;UMy̋H$c X?rśJ Ucʊq׮/w"/J3n{|p[a 647 b>HO"`т%uj%ΌO'i{v044:aaW̉- 70j߾74S ӛmeO"1(1%/@ZӲ&{ݍ#VFXhpf3!~chcBl 1J1f}"[+$Epy,bf,gb rF R6,M0G&l!,r OXU0G@ɺ:LtFY=V#퉼:#xfkm6! _1Y͏`|OF&hfn?B̊b}Wk{5柸F?M~4 /u3T/?^УLi`T1ט"Q{#x~h*RQ' hE #^LF9u#$\U&Lt^(x'\bFCZ5ya*@Eq{)e[OmBNLy!G}HXhM.On6~QivG_a vcM5g #f SG," +¹Nomݏ8skw ?25|Ur܆XpVn= xLIח5LG MFdF/X3(x:KwN {v OEҶ=b얨 Gn\>bgUʕ.P1uo~00wMXNXzwCc ҎHMJeÖ&zHI nyxjo%,qi8+.+1{0v54-^̈ǖRylOyA(wԋhe⼻, H/zdž# ~KUw!.Q;E QyEeU<HF3bhrʉʸ &x/}.}Y1Pґe+i=|^*RꤷnQH?!ϪˇkK)Om '92fٕ`&"ҌDS^73ń/@_{JvĚyJY4;dk[A5>)-i?覆Aѕ&׌-o0؈2{5Aq2Z:Z|҈dI| 9ތIg}v39DÃlk)c4NjZ +Wa xצOz F[IkҴ4m3 jFdI0 ֌zщ>d5d`h*@dpovkCtP'qthoz.mР~2?ù{slh<\wh?֐q}0}2A}՜>5]Fw3{oZ>o۠>{{ޜ>>Ħ.?hT_?|E~r:5~?G_J<>Oic4Ll Ƕm۶m۶m۶m۶mۚo31gvĽ:+{E̕Yՙouvv09P}0=~qʟH }UlAOgpdxo!EFP +5LC$ig•'^;$¥~ 2] + ,ýe +m0i0,ϝxt,7gl%Y%Dqh@$7B$BNJqeȈK%)fþIr"ĦEhat$*ؒ4!hUr +#ݞPlF1yx$\ d9 R# ZQvheOxKjZӮ}и(e4E4IC9S*hdjSWabJ%8Gdžd}sXd:aHwQc 5yxbPx1ʪP!q!*Rbص\a[250ս qH=(B\3PFhFxFFNBxSFiK[lohwuswueUX19u)4[-Vɨ3 -}{2 Jq(d6-3:{6̸"xD:#9i.ۯ"o8 +u:n?prE_^B90}K i͞\:^(z7 +2]wQalx䤩&rn0>*D2":JH@q4Qq%zq*0Tx$};34AA8^T?;|1{M +k$!$A&ևBV%Wڪ5U\F@"0ffe"ZIoВJ[EҒݸFR)3ZFyOĆcdsFQ kJ]Kƅ)ť&!+ J2\x`;5R h3b> #e|ɞIFQ*`OmmMXp>)#ZU₄5޴&!Q݈p{_ĉF8I[Iepr[w H[p8g针ϯVZi~U٦Sٲ>0)\}JHepuxE_LGDd+w}Ʀ`թB쪂 Ƈn[:x$|)s; jeGGfMt"fXb9 )UtnD2+r v|{v3zZXa8F+)MCuwЀ {'#zEJ >#!?CeϷ)XT)+xJO1*y:hPՌ._Wzm(ߐB %l6?Ppʀ.nlXִpf0V *ao( B-Y[-.3LUpY&N`vRi%l1s`5*6CbUÈD +Y- }TҦ#DɮӪB,8clSa0G{}N`Z#F1:-Tk,I]XHҨ:FG(9#pVUqG{fV -'ĈZ)j`|]PIebY0`Yh{+<787{Ff[)i?bM+Y&]7p=ʊH +3)L:lb950#3җ֌J]@TZ)13#FAVʂpbXEbtHTBCL!С0q.8'] M.*43SWCQ93 "? B`% 6,pjJx<*@Dk2FCj,dZ:NS&PqЅ_K&늆V02rz>83um3xMj39ANO\upkbdDoA_}|8VK -е7ĺ-`"0" =`M ,1̬cN,$Oc}ޖs/yo]Lnqm e`DW&K/s3RKb$tlH.IՐ34s\I22αaN zE.—%BSO͡7zGղf=Y6h{{x_ 8Џ|\zH|1d;M2{ lȑHZO%}KF-@$`D60Y+JG-3z SkF y "ȺNQ Ef|e8RV8dfߞraLN::NX32jDQi˷eSQm7&ڤpﯮ[ phYT?MN^>U +xӠ}5Sc:NK{$kJY +N<'^C68<)n&zдV:~ +%k?c7R U L>WTaCnBV؈s[U l~ߜ٫=iHWrax [rS_P쨩2@8˕!m4"#ov/PN.XUPĶ88Ko; pDcz3,?w464S60b;NyZj'67la4,`~­_88 +nE\ +@P/S:{rKU9McB}n7*ަƦ@ +vh~8Xhiu@ g9N0)C)o<}楧6<Ȳɗ%Ɉ#4XʉLJ +pr'6ϖc{j͙s9v$lsn s7)3Sx (e7Vr[xra4COn_D]|W§L:OO} +׷.Kh{oD:u_,%}D<+(°N-ߟQÞcXm VaY i8TeۡZ2i'A.tW`pS x[0[o)KOHiI}XaEזy*lR-c݋~2IKi2%HhLN_ +rW.]Z֝M(M`Χ$z g,,]#+r? H#ML=p:#1J<oby%M>OU +N7IY-= y+L A߄ۛ)߄RosS\V;mP9|jMŦt7-4c.ݢI.݀Nw}YKsܾtDP7KΪ]gR(/ڽ+fuͭY-]FtQhhjg +ޔ&;]S<#i:-x^DyKޝOUTm蜳[%)/H8 k5k֮\RBJ/g逦[1\fIp#i[w˓sK׻+.ތ1$~M֮\cVl۶YE M\m-g2^,] UւP}/e+:R5l)sPt.vt9 *ۋ׾S흾sco·ư']{e#HUKrZlsdn4NBSBVlKôs̙NCŪWmMˆd POyUs.޲>7Pb&zl"oxD ҖT7J_~./fslQov322tQ!TK\GTrBpg"S7_Pa٩k?].#Ҋ)O VX49v☷0 Ќ ?FK&;s\'NH7&9)|#ZL`ўτx]6;~)BbOHL%R؝Vb]efʇdh, +39 `cLPm:W}ƅpz}dgOd؇?2L݀IꝙKegD+p@ގ!ohL]kDdpEdǴElRs.’:bw*=O;SqLe;01%:\DI-ܓQk '=|")xZ_inivD*,{jOJQ0_$~rp 12 +! +xaD-ʉfRtDi>zu>5 }@|ؤ< zk N%|h!=1Ɏ}x!=r1H}|!= B>!>Q?vm(Ii=C{=@]Q&?2ʿ q'* ˫5;g_^h\ &4/6 1s_ p 4wv0f&oq}J.]@QEeSr@ +%6Pkh ,H *kלmj3x4T Y"͕ us1p5LKܘV\[O[QCz/rKyF"f8[S'jW@n,;4*șFFM;[X\ȧ)v5~9&W>'['v= vH Ā@ &KԊ# v6h\beWJ= ƻBSTlOۅޓ,ꀝ`7ϿB|?,ݍ' +ѾJYoo7L=q`1)-$* NW|Ù;rPpC? G f%G"bWpɲ?(ޗy.f6vjp$)bmlHhxX͎([Zf!Vn)Su(GD5 %9%@[Is0 ʰp]0%GsU+`[n|<(r6`O> P7r bx:zC A@䂴saGx +K*=cUo>qBpmE"ąؽ"mNL5Ni\bhUCv٘h35R8`XyHְo-BWٸZ4nhkV&rYRIlJZ|/z/jJH B;b O[A1D ^[ ;ڂ1EK\ikEBݵZv?׃UzqU' SN36N-vɷoC>UnF8oAZJ柔}>5MD{oL{MfZJtm=m۔Ij)O3vo ln L +o!o +D +'q>Žez*GiRŐk#qX@'JEݬZEհae({q +\!^𗊥ƊxЦ&FyCp4e'zSWLycҩ{%ӆli;6NCy&sFẮDuЊ}=Vٵj1T" +7 >JzGvR_g5*Y.}%eX'ոYzSۂe`Hr%ٸ5تLiu|UxyCØ8Sc jb$WyI|rڳn=>Έ{z"dy}NzŪ<`+ù\@j,rbrٞ-\9#ٱnQҰrBΎ~:tw x2U6!&x>;Hޖh?Ns/(x.? 5>ϿzN((曅=#p70=o{Oh;/$*uϰ睮/E-9$8< +5PJK˸qKpKخU-|Nx}G4H!{E䛜!(!s-Qn!,|pa0Z!gǐOetWM8]A8RA8AjDڡ~ +EGr: +=uVs:FCOڤ1ˀ2FP{f@r D5 +bu@tOuV>S \| & .%%}5?P5ˡu5h~E>m#LPQ{k"Q:@r{& +D6xXV]lL(@5Bƾ5M0l-ju0P]L/ZA +ε␕Ul{r$Ǻ=J%K]Z^+ܱ=QlxZK{l~m85=\ר/Ρ=kkw4jdXz^IO{-CO{ +mlP=$/| -AYђP岰Y9R12`eHu"װ暄6gإ<xXhz +~| hXa0f +ԸO? MԂ+iČcItj+) N=wV'{j]l-5gOӕ4*f#Cw r`kz+#̆̾$2;$*)KNI1&Im=L4jmad?R:+i}üZ!Prty%R3J%zu|2f~!W:.>bp 9_k)޳C.+xjsT#1pOmF ʎjKcj0dfNb(Nq\XHWKoe/}.m*mΘۥKlKOCf'{ sx?'|^Ǯքn [J\ ~Ԭà'a=nTnY˺Ǜ ?6`ed-RWJžQ]ׅ~A 1 BWN2␫U!Ea(R*Ҡ% QUCnYu8;TFa,-4%-^>-x}#G<q9# \j=ũIX0￸dNr/>~hܪ'+ j3)lB.KYW ud/!3dՑ=+/#k-rmrzOVe˴^<`-t^qw0^[jzv`6Tv'y +なͅ]޳Y sZm?*(%UY3h}b)ƩrϳçtcwR[R;}u߅z-a+NgzMm#'ٳ9}n8A.kGɣB]> JA ɓgPO&$ OU +-i9S@+!s'`ۏJCS-֡cH@Zl\cigMQ'):ttm3m<usUSݩ>mMu'1h:B=O@q]uqE'FXK܄ydf!M{z8~D&!~zGzls4 {< r2{" ش~4^D~ml:4lۅ JH2c,2U63xA{n4*ˋ&c$h`-W$Z,uBWTs+SQMu0\-6rX}K ۚ:C-6bD͢5\JX%0~B0p#ׂ}%©9X Нx|Ix؅]b@'Iq07US+ @0 MԝhdlcK<xqC RJBcή ތ8#Ҽ roڳ&ޔSyeB7LEumWm1A{p3`/ZƩ̎f2 ROl$ջ ̪w)dUoF/3Պ1+_94 Z.hw6/ Rao}$qVzA/k0b|00YUşI?{o,h/HZI>NӉ~ {sm-PbG>ry#s[&hwR\ ^rz DytG<-%3Ah4 \ !6 ͖ZdU4ά`sPCIBZȻ[6-UBz69OeZ^]!eZ6oU+rbWgX6Ao]c]Am Ԭ6b6[Uo8]\yJl,Z֩42zn,Zڥrޖo[{]vZr%Z4W6s^VpO,>`mdJx&sao0TsZF(oFl!4oB{-S?CQuqsa sDohCߋo:2'm/3C]l)d=r$@—xHa3{_ =w$.SB-sBV+cqk:;Z$LOkeZI]bU$WѮ9^L]RWf;ʷV&˵san/غEK~r͠2JiN4 \ܠDṼWƈ.[8+0SdqFF2w5#)Z3SՖW}WցXYցY4Z4+#&.[p\ð\\0]p.\]yM5 -6ij +|"O˄iꩠZjO#u#vq+p2K>s'巆,///gGWWWWsSlяf U) Pt @q@> +W}0Ƣ<2ż"3bE=׍}Y3:EbE9XrIM}&M3yCU@*Ove%:9R1M!oH:iH* +zɜf}-W%(=L:te]*}1戍|3OJ8%+-)5B^b`]Z!e)), mY.ĵRz#hho.iV6jYθ9@Cr׾-}7a1bmW]x?ϽpRcJe +IZ&V1Ҥf(7BՃSQᳱZfeh܈f+iՅ& ykʀ,#7וq7mEz3PKrN =/Zٞ$q[0)ë/+vB7%:s_2oW'A4MڗAΧ {.:AC]S3ZV"`k"zeULYZG:f Y3zQZFav )؝32k{vj/͛BG [e{*zz_< [l{tz +wj{mM+k{{M+#,#T|q`P.8=2SXb:dQiӱ^CzqC7,-{P h9Ki&i_ETY?!r(| g̀РG, +}_mNEmx +?[p kh{hI۔˕,7KNumS&gQpg!w!v\ >\;pVοR6& %~(88}^ĭg7Мa8 }y5TR?*KUdDaz: R!$o59 +mCu+35;1ˁtQt>ukZd?;`,?(՞z?˾O]w 4h]qA5Qo!ֵqQK#|Yk[#-FW7<sF(D&#d71!0,Nt:чQ +=cٟQncӚQdDQ9 &(=6 Q1>{o#tuZO,_upB"taq,?wA<(c ?RJn{ݱ 19zn<"XAa#1H.,AYLGF0ugC]12u 0̴&!ڣfU>(\:C, 80mMm1Xe鿓X?ۣ_XnGat 'uG2?NAp|lܪM+;6oFXi:m[=4SKF-@_7 9ى/VMvrގX'$[%2hq c?5;MyAVﶍFm4)iR7KJ +Y-M7>+#ζҐ/̂*Fm*-.{D>tfM=}S=>lwzuG*ݠG.KewG:`qwC0GB̼SF?1sGPͳy?+{IvG`!D[ùlwBGpͳ^xCx'G9[Y4xj X@6L6MF5/4O#V7 +R:M3[[tH@M5FY(Ҷ4GH?~hfL?~؎jV$FbƚĸR1FAѥ @x7?J>qs@кʾ|lLzRU!8dώ|C͙_%S hIZ!hwb05gšʫ(>7(` qS03,NS +pHFY 3ꢍC ¹|ݳ1Zݳ~9{^Z3;6knϙ,}8{rQd{z9VYsN0 -Xiϫ +)h.![+H+L3A853:iNQl< U:Zިk .)ŹRٺ /̔S|bFuOf^@hPk5O2cє (z4k3"z|%:q +vy}ʚnKp&Nfd9ljUQN{مE:g Ͼ FcٶÛbY7Φ ,>mOܵX08f}4h&~v rm_U}s ڏK7o&DN{hk`stQG(c%ZT µ_V"i_Uʔ=N[$aa'w%V%ၱv?wyr*K]:϶,|KHsuYųp +>0qTHn o$+CLTkZ>&3Xҫƨ^l⭑mW3fie8IoQՖ7Ho,\r݋6>n(9rpCnv;i,顏2aلI=$0z孜[ Y֣.v+* "=p +`5)`3m&ZT~hxV"HɭWΥUUk[?קGt*00=j*8S8>G +%zq&{C, 4&:3#{R)hCHz~{n3?d5TOA; I;( -}FM \z[@ +t} X@WF tS~.ݶqM VǨ) !iHPۡި>V+w 7о,CV6,!Ƶ>YRC?Tu w}҃cK+Hؽh}=yw6[0a'cQ{t}{onZaw=e{+Vw{*0罍wgڀ>){8ٷ@߼*B{,w*A^ǽL7IJ栟;T@ +8izw +Hc`©Rq#m?b2_ %cI9z; *3񴦆򪹱Tv[*.z@S6(efP( +* P,_W"ubL&gU9s.Ss#/g_c+ Loe)K'{ԙ*;ՍUmy--Ijr +˃dR*ðbgު|QIY! O#hTPO<ɪ +r!_HƂ DW8cLxZu$ҔK yQ)8n$s=yC +NQg+JMBG¥yP JEs +L2zm)m viE&{gpl9#Y^_5-sk'}U)/cWI-"s[ce*Df%ՙ=ǨRa ֚^Uք9 + Ea,=ה9%4 5 i%=bV;ۚp5泴6e)&QElTAq(R!fK%!e6Jm!wM SQN+vZBcժQqH55#|P; mS MڋbMO!e~'' hHLA%S#e"I ,.l@F {;ND !c.3f7x5LEG*7 B?eƥc@G'tE}G,ݎe5cNCfםro- .JC H>&e_!'}j/'}sӚFn8NVa>!p,<`kvO-csBsUG/,!b[Wae6NeV('!΄^/9Bİ$}X?[Ϊqj( +33S(^[/]ey^k.ܔEE{r)*Kbs4c' *SPf1ȬM9rM҇O]4zҽB\[9\JUsDX&dArYsԭh^#59 +9&CweFɇg [I)M B-?9ދК!:7(u,WCPaSvʓ)5!Ź=bF +2 m9EB b lݱd%@dk! pꥳ/өĆz0C`1]{tE%65u;zܔs<}q<B՚S)̇-:a 3Maě(){Wz6B'=ݩO')eMy)*;k,>-Ux;Mnlc9HΌ37׼4F&Or݄QP~n6;5c,/;X֭De)l!<3 )q{:I[>Y|%EĝRʅV ){щqR#; ρ #3cwso=肦[u6bx"DS\UiHV+U<uy_#z4Y\?!smߤ D(rtF(rE(򫕷]Ґ;E7/y(^.P÷;4PMws*E҅>BnZ8 ?c :: <٦([¼v% tKEەA; +"DL 4up.;2g7ρ:;r==Ar=֯4 oYEXƬ.RVH baLB!jV!C)BrJ1JGN|r֬o|J6~͸ik 'e R,h2+KxOj#F4>Uhۍo[?usNċkx@1db[xhJʛ,9%ܡGԆXK +xڏ4NAZ Fw';SqcJ07#rsv +t[KnS.z/q;D_-S:6*vuf(W;(&Ϳ.GsݴE173/.0.eXP=RR Y/=36<W{$FdȗfMȗ`"`7E8UCl$pu+7!کQ-Yt[f]m}ʼ$레be}3PL"zQf.J{N.5&i/GՂW6ï6-EEs0} ް~V["AJ&uf}Lz׻;QoRqyree9i99Pvxi7?\oT _FM-q00K\Da*(L9\)nFǮ8;RrJ02<;gۙ-9i[>㗮<ңlb2qEVQ(!#F"=Jǭ9)sf e &,e\("I5dz%P%wF 35ԭe"v$5Twٷ?>ec/^5Wv+t +P0G|m6[[;yU_&oQ;{ ]}/|QUQb-ۮc-Fk]%f +&Qc %odG~: +1CcdGט;Le>~j&X\֔,eN' XpDrXeN/eN+l@[som"9*MCCOXs9>p?"c#(僮 jZa=3~{GOIkIPTF-A5XXdyZ`vx0a·|8yݷbKo8:ġxX[ni>8  #'c1xvE݃<Dԍ3{Mugrşe5%pҸq=ZxFM=x~- 뭌ی-x]޽kZI feIaDgX>GL G]}%zfv E'XF!;"W3;;eo:}TRf!SױLp'ɠvf[DZ2,o?x _0 ~JF;nFSIEFfWG T %v#wDh ;Z_|g_~jg~N;E.Xz;!E4j2v!DmFxը_*İ/۷EINQ 7l'cΡ7,2)U?Rr*q-{bE5Enߠ"}FeEiyӅ fI-l!F"Gl!AAK @Ev!Fy!Frwbw!Fz 7Q޾>>~ݡ}}}!ɽ!Ɂj^s##́F% Gxsԫvc ~[=>x<?"ǑvJHD` + 駐@ϒ] ˰NK)" ]a^8z 5x" E⎉Fpx -?4R5℆0)|Bq`Xdž à ؇e+8.8FI< +"$CےG`lZFN*oplS@UyaIK Gb%S@:^2ᚲXA\.Kw}Fy-\ͅ4wέ13rs}^BL +УELZ#]Z#e2&Oj|暚]%M{W.n{退Ϊl +2: +WsyI1sP݅B L9i 2{V@2@.5dѮ cТ!ZN;{?D땜"uaHjI;w汷8u۠H$tǦAÎBUᙪ=)25dcs͠ irz AM KM]4+Z+IBhhL ܫfRRGeaϼVk0?۳a}$jH;,Zf 㱫jCU"#3>9nѐ|~EM? ԆL֝rPnL`8{: 8Yv Rl݅R} nfќ\a-ck'n)U. G#$}mԽFPx{[H1{uPDH5ѱ%R-BٔCZu +ZTٱ T^T^IɡӠ1ET#&.ԱcwH6>$al1#c6]ٔ #׉#mꯪ.W G6M$#lGZ/7r#C/^J oiRBoQIJ:L1SQn;QI.M2f0 a$a^+?iN` \]hDoVtUގVމZ=qVd#:.9+\D{㚽H+OVڶ#W58~3.FUhowFDj)0\R Fk=puq]?gQ/Ogy5ym5y?Vm\m~A޹-FL).kA +*5=ƙ ے|{ +*]u(}Uċ Az0R:_+/n1.f quܔ_#ͪSM +jHngNULW g/V E/Řs({@4jG/<1@ޏk-EviZ +{tݵO}Q̲U d 8nr:ήt; QAq/pSL˘SI,\M dC : p ֗+KA4m8^Fw5g~&U[t>6ʬ/h_Y^Gl@‚J>d)IM[\"gY۳]oKt`rj ]29(FdrdtIJKYncz(e$ 4YVLO{"0vӏoddj[k".r*GZrW {L؃@eӜ|xݒH E휷're-'}>_7) +c/xW(`y[ڧR=f ye!R{2Tb^-׼,kIb;Jcrh =mVa}aKRҊy)O)RU4e)`< @ +MpK 7@u&Gf3@l66oL+'!-*oŔ!J>&L]oYJ#YEVIw ++&S;{/B[d ŅEbWz*Ñ#od=;Yf,-$<-EϧK7o&e QM9[0(جbw;$w [J_Pwc2f*K37@WI]=-tE4;KvB*H@a:3V7utn+Ľ׮2Z;:#j߶/ʪOy/7ܯ:5ǿ俻"r^/Q#jt74dZw9j$AVa,gٶj*'ŋ74ۃ-aNi;?O) Y)A31ID+uD1CCP3_F..f.aC0Gwŝjݒ(D9lR iBl#h^(I^`enŻ4Ā4H6HI\߫GS87H: *);2sl_R& RŅѝ΍usUEUD1Ɖ8nd;3Q!(y-H!> +o` xʑ䔼履;&I(g^<{ƪeGf., ˈA˸Sao~ǧ`xY7j1rHØ̽Ɵ=޳o1ܠ{!n{Jߑ_#8@G6iTTyo{>F8dr,xp g] sli 3GALfJ#ގYR3@Gcz0Fi4隫+"Cɋ}ά6DWAKB# x c4L'K;ƙå\\CJ:dC@BYye2Dx3JD#D{cX C#dcu& L=+%0#(ё4)Snb4q(B+*~u4R#3ޜ\P4 HSR< y%2Cw"޺Q_NGhsDtLf4rL,1|# +XK@'Q6:?yLXԡIJK+ 侍ʝhjt"tFu6*0cQkղjz34OTjin Ø mᝐ0-LpJ#d:= +z@K)UؕIE4G=řG-D5ǏZb _L։\tCj/aLJJZosrGYo]k=;5q?ů9 ,:ZӀ)PʆĊ+*i!9 xV@;BN\oaSZY~r[wO]2װA<|)wQ'V.IF.S~LGzTF>GU}Sҩ>6B|oW!IдVѮM,7nT(I<؂ozt0,NA[yΣpl.Y^vTW1P N}}h6H C:A^=N?g=[Zv2Iݣ; ,B)vO|u<}KZ@&BmRQ/A*x۴ۨZ-Ӓhbím +DBuyl7ZUj˓I;am;IXtLZ]ê Eڛm17NMwvdt}4kZF2 el@mIC;u1&Z k@~9+`Dةu7qr'tvrXPy{W +& ZEf +^3PNv@7+6J9_ӎː:[9qҙƋv0.!ɢZD/wUl)Z$,@c)f_dU$Rr9 S ܼFT HGA6`~YT1TCÍљjډn+#K(U0=@JN"6<&W:|:3AD u>o'g9LU^ *8.ɓ!UP2 4$z  XgȖѶLB/gX2( d"&$GIkW=dLR8xܑ `Vs*![qaآk36)+5-}"k^bsF˫ԙF}xMT5'?!cO'@va6=!TI ^L5h#c6>,j$Q'BD%aTYAP\+#=/+X1$&Xf7EW%^ #&egOWeCze_U yKVIi#Z)dTdZZ6'#Al- Go 5!5_:JBͿ_ AJ@R|5jZ(YEZE{IW.F̾}F2Ȩ(2l d ++.zYl*@:5ÎĦ.Z VO53`/:*gd7 gGqVj6mn_YE!9 ewtDGcMl.Yy)P,wUKSJ)uTul*م"-o2$ -=!wFne\*ksm)ŷ9%:ys6%xGC/=ƣR)h+|JܴM!B <;.\'׈vi=$CC$'3CX - wBEy4u jy޼]|fNv;|X)TNo6'p:%*{P]dcNHE<|YMr?MqOq_i~Oh!K.VE+O9Xx1c_*FO>r{ ;cwEI =.i_l O{C|q11~7ArS` a qxfp!aEB 7'F艺1q@ޞxt@na@BtyGzwr!zg}`wu{:Nw-, o7K&4TGĦfْ͔FU Nj7Ŀ { >_E}uIl]HZIE̒>e;vۋȚ71 tX?]BR{M%*I>Z4$pLM_DQ += 0V +j?9}s Εf̬EEe1QǢ)G059Z8I.ƯhY)5SU69VKNԗ0`8j/C@W>,]<3l]{Bx$(_ 2,rR eUMUwl1kO1g Nsq̑C-0hhx#ax#DNyŸD׫\Lx߇PBěOAIyEhkzF|b:〃])3 2*O0i!ݗ^QrTWxʢ6X6xXV7 Ƴ~=P0YBO;B5%Zrl]Sz+B5Q۝2tBGHLQ5C+i^[.I*=Y|B=MBFRns +$ 6qޭYfQaEw:H=:ʧ.x|[fu-yb@.agU%&YQ'۽Nq( 7Q,u7@9<M1=由yMq}5*KtVJ` c9-OµMf  ϔJc e߭B 73V13|`ӹN{Gxi{yܻ;1EfŁ@x`R6qmSV:ǨLE0. 1 IaHi$l(Df ]UO aC_vX78(P®cA5 T iW@&2sڜFFCc@~B<[JEVS ::(Ψ.*YIoL~ =`ZDY}\qD=Ψ:pXHb`ƄA21򃮒9c-Ѿ68kcH05NࡁF2DviN +[9kNRE^mtBDxGP+0}>=]W9ge @eЈm"wd|DT{|SaXMnv~l!){lTeԭALhʄ$J/NA^iHQI]9`JS + OcAdY%Zat@Cy=5r"UhI(u;b\,N˔+ +3bRZ:lJ^GQ`E0|FDF$oF'C ? t:[] nnmuw#Ӡzz)붽s@#|Zr 1GRTapxöIEx)G';ʊL86؇ɤxJpr^D8w >߳;},nOI -]Oc/ +v5>vݾp470}>_8=I67rP=B]?7<~vޕ<=<SsPt %>;0 kAe2~٭4/ U"`srF /88#v} K|7KM4&!Z ꑰtáF" ^aɂ̀O7y?u,F2w4f?}eV$f #v?´x6BJ+S+>7.L:xW `NC&b: 89IOG"ʉ9|xX!*FfzɤDH,$_QЙH낆Ny8O˹C#K%cyyߒ?v\!ֽ2qYq;kIڦi>c^z&_hmRbZ99,vN:{&)qb%ƛ*.!&<޲ɇSi? +Ś+*,5?)0ֿ +Bnߦkޤk}Οm6Și;# ϔ:9*5b粻-Xa jݵd" ՙtʷ^7gnS9`V8ÄW.y?I85vU=fD_Hp = xd.#7+f.}?@b+`7]A >r4Fe.2=\)F6D0 oEk;&v -d,Mݓy15F:?(w$tlQQZneB1KA:q-CPGj`Y8G9ʥ3NpS +ՁΰuA +]}Q{s0dҌ}Y骍*tUd\h\C}$5MLuw9BS& S|z#}hؒmi߂͎6;0X`rmgF?H 킻/h% 4DQmP™ځrd9nèS{kO4A! . F(V,J4JIe%Q.c3+B5Ahjl3̂rx ρ˩S]Jol70\NJ|vL|]zz\ +̨0񤩣v&Y@ ic;Im6Libsbfvmrv঎Ea΃lwHGx"`}m/Xљt +)BCOs 6o|M6 +HRԌ{o1dwr,Kn0kҜN!}I0;wEq_setue۸75gQFKcKO|AT{8R?[YܘnUXs)?5J?8KP-Ҟ23 C̔鼀=_Wm5_,21SAaEX[bl hh>s (D ;( 6MQjN@r; :@jguGBDZRoK1MP>y U6mz*gj${Z6t-ahv +CV;UWL=] v%Y'/N7 ~Rsպ/pi&51110-hr<6T=WhjfI/{~ov-ܱ-Lf+i\톢ʲ8c1jEڼ)B}ߞs ke3(=dA}w6|w7rlRVuSa`%etHYvkhۣN(uxf p@Va(:6Y5Yvӥ:jk`oij[ɩnlBvE|FlDɁ?T6yu8k\Yq`F=͂us֚ >)9 kԭ/!tn(4H3cbX ƒO^I;0jy?4!(?'D&,KC2#h3]vYoրqweOe뗊}bk;jG^`ڎ+*p> q'Ӄ?"Ӄ?Ak~ТЋ3'm9 i;@Wޛz놷z't?n{' ' WyǁB(=vzFj ~`??'7";@7hWygEG5-:C*B%%r̮)q88(#ܵ+ U5[ +uay/_)vlY'>oқ rŞ~efشnj'gwka1sɹ;3z:S";eLf!!xǹv~8s_)^r;ګӸ~luΙt^ϟhГ{-)ˎkR 7^)Tv#Y m)SB! 'šg8k>q%,CױoCkkM*.0c_W|N$HAJVbJ;5 n7ȑNܘI- ƬKB® 83wiK~gwP'`K3<;zZm֖߉ܽ^zPQv+7M9SGk2C/2Qjd"?(sSr8UG}mo{#ǃ~KcZ;m蘽g'}j`I~1^6\#]<Su2$ή*j ~#q˅Gl`ͅ;|yA ovF+|ZTH_+| GM7F'gXO`ڮTް3g:`m9'Y^W9)l.S$n+2r~W}9T8+]hWn^/Stܷ2l2WA+WBSo\ܕxuܵN%]~R_d͓J8E?%KvM2|Kθ"7޼;D_+;dM;VkA`Y+OniE歼KE7 A;(jѕ:jJ#t%#[0٭򣣪u2\oYXP-bm@0 M5U:#IOI7u IESNLjuk?QF5jfj qTb +0w aMxID,k xnЃJS6m=|Lx_@LB>[,SMv Йڤ:P~zPdE8BS;bŨ7|^NڮBV y0Weݦ5f׹ɕ|T*rk`]6[qiY3[fRFWzrY9u.JSR[)a[j S=Ui ѯhJx'' ~!{PQ_: y'&1FNa5U#ٶm.\ +;7LJ ʬd~%+E68ewlQ6PI%XW _{g 5x6?wv ut?tE4|o2oЦ+h)Qٜ\ NPy'Mm"kckDmM߂&[{3PW'oݳFAGX5((yx( ? Ų:5)+x+8{j++ɠ=)tZ6]֊ JԀGY!%K`qЧ7%F [sa>x&; +x +qC*/ Ӫ515ߠ*= +Lݥz?>6/ph iܯ/py/J{:忡c_z:+PsKx2T9aYu+Yö۽Gr9QtQUQ\2it%^Cbe|rmrqQ/:q3^4;cK^D7)2qW9綼I|=eEBeU+u`ϡ]Ly6?n@-`Oa`(IBy^uF +V\8W9ÎNA̅1AT ;vB{S}[(OS #_ *.@MڰllB1s*ABWTR?T[H0%y1Ԓg_+e)T=8`%k1!b^41aIvGl tD2rt/:u`ߧLyȶ܈2:RߩKĬr)9\;]}WDީNޡ2}k =6k2ٴkmMB&3G+N@ +<܈qQøX] SNN<'j)!S"` :(nj &t0dw/D y)A5֑O_õ +A$kНn0>Ģ2M]Z⣺K.'@48v@}$Яjڪh&yqjnMNf,*BfsC/+u=(VvGS ]k[~==#uМv{J~\VVc+GRy+KlaWZr+`Lêb+L]**J-ʦFEk @X֬\jkC)zp}tF=7]Șm N7'_V4 Ǔ:sv$:Y2m%,ӞWVy(Ďk&@LE>#dd~"s}de} M8$YpeDI!V{:ڣ3v0 y- |T͈!m߁'Pn@(;}MB~kNBN+-)J.c՚oVnDw+d-\}7L'&`QuÂJF܀QV C L)/U ~ܪt(^^0} YL%1C5/K 00@Z6>п^X{9Q1Rx| %6 GGݱm4o]ɮ6Gsz&6(E⓴;VSj.z~2ј +Yw'g[fM5_#hkv[oPkm™}cƎF4ϾX:Ь$9Y嵁۵"m֩lzZzoT1O1 f̹?#L `[Pu4#󡼎PF{7D opfK|84f7ږ=kzV-InNLX%UV=I8Ӟ9A yM#X܁ A޲4:,騍t^.ǖplg(Y+)\ZyZBz{'W:CԼa*> ~/i>lkgt_*kM)k?1Yqy'N\$NAqQPPP/jszT[FzGӯv$I'gM8n|ZGK^^Swi4S6ԤbQuk{%sǝ!ldⓗcǑUǓ}bcmJ^c-_G^XjZoi^^G҉7VC,&onv6XӉY4ʆ÷ҏ?#G%_EietUrr)iy]9RūȹqܙQ.45sb{©Ft9s4-P yTyj:SZbN + +g;Ns%q/ٴCQ +ADSco9|⎕uK>AE&b '5]EEtGe# DB(mlK(QSqB?sd{tl@,Ĭ( +ⲣvZ^ׅGjNeJA-{($#YMI7 2I$f1,iQGc6 0]‰ %pb&&|?=^xi1C R>eQΫd"M걈dd"MʱdS$i ?U$Ui$&hj-Iφ$#j#*NDE +$2/I+&HdF2jZ\}+d)LmXA NBf%i%ګwsiX[[t9+Y$ڳv@P2ؤ)$t&Kɴؙa(aZņBu%g0h4l(c aQsL,R#0Z4˛2PZxi)!b55V( +8<8D9!lbXhՑ gn=޷=XtĔ,=T8IW0,!$lE;i9\j.AK,!g-EQ8K,jWhEPUm:J6)laV&E|T5HVA bLuq+"lB7qHΧ'+Kˣ7o'͗3`h:8ը |K)))X '53.`'-Uڋݒxة$X/$$T]EJhCLJ\+gP+/ȅ\DA-ibKb#4zXO_X浌k5Qlq+%(]O+KP"'3*Rʉ]I +cET ƌw֗E\2.c b FUu;7i'S5ˑcBkbYo^4:6.rqD $agb7"y+7&.q~Qf9MtZM_ WE,.2AY0ٶcǼ"1}9:K^-d2|>=vxGt! ^yq,.ʩ?ʅ\q1Leob&RjJU5c + b^ռg~A Dӓ sH:Fw"k6<^ڇ Ǻh +mW񨺞 mǴkp@;"ur u_|t%]4YIN; yp#y|Ag'?ħhog|Kg`Ic;kWkkSmڤ9TtM4Nh9 +?W(B-F&pSaQgMU\ nTJʑ'uAhHT-?@j1#_,=~.QBoI=;zugIX|*3D "u;Hud 2Bu6S]/U8Wڐdq"–-GEÀ1Y6 %fma$MpVbVއK؜'O## +.e%u>dSedGZ1L`0-I'|/a(T\Ϲn۫NO;f+ؑqSs&Af"VQ*Jqe%Vs +<˰%p˓N:Tpyr$أLQ<%\B /ਘ/ď%9W]44N<cТkV]5f{->\5J +$KuSX wӾ!LIp +g;S#+mq>K=L:oXvأL 8 "p uYHcl"H%!-HvA9N2jγW[ P*R@E$JYճ< /l\ o/^8o=1|p`BV&-|p7KC\}J@N F"KSOd x⍉Vۃ@dQm-ҫ<i~"A|S6.Csb OUt2{uCu1#w ek3QKWa/1/$Nܷ>`_[{&-xGzT #qF$qR3Ov?geJAiZZ-BZԭ>Vs}"V OfRdŚ?gԎe>!&%pEpxY>4`z$|0!k`EqyCc0zȯuWC60}S|CohHO#0r% ̂ CoA[0&z\ƴq~쐱ƅY)(A4^Pzq{? s ثEuK~{HO,xtu)5JXh|PkHҩ!ཀྵnBOZ}KBlKsk;vD Ka"noOC,m)@oK +D:<$zZn|îɀ1M'. 8~Tp$Gh7VYՖI_(BmJ+rEHGk:\-d E8C*m K:<]9=r=sӲ6N- ۷s /sJHjڀV*ߛ݈.y#%9&T`Jqʛf?#;Бl` `@A[7y|] #H"-M;Mqy JfRxo Lޙ-pҭ2F}7 +McsSsEgfK~)i՛\F$5ܖY_3~S󚶲ѪJ͟խ% GK Fj]+ `&&)nj[t ;2*P7~ v^Y]L(bwMy}n@(J Ɣ5d L cK= Z(UD?;Y)e@cF!᫛ [%|sp+$NR)LoXGͤkEˣe<84~@z4gjG z퀲C2Qk0#KQzԼ1wPoY93{[1jz#SFi INj}懨հMSRuF]Vnv{ݱݹwܞ`G](Gg7`C#9iwh_Txzo 0w5H`|䴨yL5yz"ݦ5HBִp+#k-7>ް{˘E{K(~c/ zQWʾ~yWI?i ƘxLV301Θ~nu YzfoM$G6S^^Mzӯ㋼e }ӟ^Zag<Ӎ<~?}glOT'W`Sm'fC=]ԏ 1Ͻ=MDȚR$lCd?$qlКfYfsY4oGc6Olcf^ήNօ(ܺr>VGz֑|IMͧj'MU5 K<:PSlR}^VK}2Ƭ@0|+WcC+? +ZW"`^';&{C>\cG) ({RtA>@"cdc<l >8<ڴs\5HsxcmR +)mB#d&t$IFIď0рW\ +XgB>wZ1,T'2鷡΍ +&_!/7WtV.Ȍ_ 埂׼Ӿ) i|y :[6H +Sq>yR_)*MʂG %%G"& +:g*{" +YlC|<8%*mfϐڃ4=l9V@۵مG K>M+|얮|%N0wWv햷`vF2G48y7Hy([-&.6"%!D#euf~Ikvӏ0\7[k?@"'Ku4ru/y( faeL{4`-Qww eӫPc/Cϸ9p6wF@rŋJmPeMC"e;M㝏M(E7ʍfOCwQnq4UeG秋v4<GUp(7|emynD o}&Hh#/:۔}wEsFD:(Ղ.E(ejNn v[|5EfEb*[2h^PR+u:ڂhxS+U<#Փm[D;G{Vu EeUqf~ PY,l6K1qǼJpN'6??feX7Oq;'GҨx8)ϭZJ_Rt|8j=6~{etLtM/K\o7v_}^4|+6;)ٶ/yx6F?ut~l7'og?uh'Aw7θyB(_q(ߣ8价S(na;Ƣ\߹u(AwT55'A)F-|RC"E-XQIuv瞳yw!lщ:0j9O6O/HXo]ޅ}Mgxp16 +n}ᆞ= F_\(#ݴa\ ^OoJ3f{ia>7XsM_ ބӯHa}O g`?XuWvN~ng +koD>k7qM]_אx$іLV/ eJ{tm}zv5(oV3ȵou1&̦k7y;>_o^L#_Lhѻ]_7coaݓ7,ީw^# .E.ѥgGZ=_j{R28!foF=1WYߢӻ覆_[=_^̉vԍMdͷ֍n-DɚuCfڷX΃mg^7/b4_\o^y#3{w~oğ$o/_HK⻲_Q6ocC{)wz/*BqP"iC2s,$] nD +'OAInRQI/P}]JEO#Y3-^0p9k k0o*d9]aloa6Q(F95Pf E8]'')XFE#ةZzvc4%ʭc}k uZ&NY#ĉ4eNI]o~| N%Q=Wa [AIpT %/N{ZjV-.--ɇXb:V9rr5 Uցè@C=XUwDKRe,,ͪ|[55& P*Я u9 EC>. ID7%LjSF,NFJKrZ>J× 7? Q 7'7|;Ueźd$sᱲ̅m-zRA=0Q VRDU]'ğ&5ߙb 0`b=~tĄ$`^OlFi nFqQmF}Qf1\O.0c;YBgfK.6į6eV˷a_iFdQ.Otr=pyo~oK664˸"Ky'c]uA_>UVtATc,S\$ޤSbVCɀb73B;3sT1A|dӣyfENQ1rKt& 5ՙC.,xYKvkI55 a^d1Bm^Tbhik ٣Sa;'4BQ>2QR*tWEGVQӨXp "xҤ/#}8qJg!AB^5sXE橀Vy:Qխt!`:B,%az:&}3sI͞t| +T<2Q\t3}N<5F䏭JshFwH5_z$T[;oĪ͐7D/ Ĭ wTQѽػ3 Hq^x zfr=]4BkOpnABS],۾t)joY?w,F~\g|ғ %H'g S:gsF}Z\Aߠ*exBוmm +IN>">X_漃;Rc5b2a^YHgZoB#$)|֢^zDu<ə <\e_mٰ/L(Nńa\ z y'lMzm*kxC}Dk?&-&NiV6. 7?;GRb=ߏso8.}ӻܳ.w'.'2+жG9ִǒm7{vmNå[XFr/5+L& g9<3 #RMvTg5/K#c~qܶlZ .QdDbnV`NF-3+:TQ;a$ήy4l(2 mv DjZe( 9H@jvTwohB#r.?9ju.(gK>⹋qtl2=}9Qr +<H/GjI 4q#ۿ[M%IxKW NtEJQ66M%9 ->P_!rzn3(R14Ox[h.9ӷox@t zczZJťFl#7%-M>ܶSzB_QƥH[ +Ŵxmzo/_owF߿k&Azw9Y?![ՙ3wP'm*+-VNF6-.FDg1+մZ\SJZ|Z;8s[k2.0ģ%'T+/0M"X/c3j%r;,g(ihf.&hK9F{hjAU5'ʯqͭv="`د PӐgИK k&@cz%.M\`&ֵ7E@"𿅴L3)_dM%mAHmȡkFi{[B"j]4W3e4R s7/ >܆"e٬gY LD$Z:1),x`ED2`~3!ڂ)H0rRF!%{S4MStRDԇq;U4svf=cP4tC)]G,}nCZ5PWUYh DC\Q Q2kYMŚ_#QDW ѫi0MZ%[f9Ymvf|yF>;{UV&x-jBPua$lhY-u[Ym_gמ,+!bMU^ȰA`MRŲ0dK)EbkT^zƓϙL7jk'ǙYU`8S1TL"hl6mּAi'*ce&%9qMgeVFJV8}L veB^Pi{RlMJhXE% 7֘3Y^Qv +bJ1*T +7܅rng266z!$>&|71"q0o}|=,Sk͠, SQM>p=%&m! S Sq_^}߈!/ ɸ+3fXi0&1y.%UmfZvT?eHFLW=KF$* NLw:WvJf|"㶦R1^`?R;ܳ,쭥WfҲ@OÏ'鑞Rg|Wf/^msX +' OJKJRg  +1S⣆J@v#4T!cQ2Bސԣ0iCa@)$_$׮Q/](8PeÿX@s(܂f_|ij<(nGSpjQ: &%#Gja zHt ca*#.p{+0-5%B5ǐc"- JBdO""-hI+ݞ[=/%ilAb6- '8wlZ>#:`URN +Bm}32%[\'DC) m5F?qj sjwŽokw=+o ^BՇGq,"Emu/ +M\Kor@K/ӾѰUPP}p G~t`G~x~|~  Y CO,Wt'!0&vexbLK0آ=A*ETTL#EQP|X[Ur 1"f(Cg/]ԙȴa*i_úЦu ɐ,rUpC[rQ%upm{QUQP(=F 9UIJ)#>hVs~ckec+kg۴Xt]@3DmM%BA)RJBQUzB(YH +rq8rDJM&="ژ9Fi! Fd%DzSL^o Eo3VLr CsH+7TBJJvaQS֎6 9$)(g7dlf{*~2괩 GlRwd9Gg.Sl^FyL1Ǹ WG>eE((%]s0˹w}{ D_WRS[>A6ʚP. +E}C x8(qkK䔧WJv)s⇍neđfvH@#"e#l#ڤIG~^;%q\thDޔZ_|<iw@uc|- +VU>j|,XtON$ T,r{"?3Ƕ$eƒ4Ef'/S>lWw&;9:E4Ae%| ء!$Y3ɲά4܁`}-eWYO;x&s_i5 "ƯUu ?:#cm2i}ԧޤ NI-HE",.r+| LȺT3@2dKQj&:nh|UuxyDPꥆo dw-?$)|Wk+!iZ^);RwY|QO6aV{*oޘ>ŽHMc$lYFtdKG/+BX)̂n/R)R^ϑìf^P7ˊeGPJm);m#Y3 KW3nw ;҆y qC=MpRp#?gzA ?|w#Q<.:_zQȡ|f|[k WV (P.0n,KFZzh$LzմU\m3<-m 1w\ò=Othn}3w!T -)R0NM ;SN)|K^(^8AT` |JbtMKO=0RTU_1a ڝ@z]' e7U V?z8j3뚍١m Z!z F*VT pzc<]vXI˗O߅[>?3 "] Pof3*Rf^m>/1y9YWܫk;|ƥ팤^' ָ򔁋/5v( +2ΛK2)ՙ[GO>"~@{ +Dps'qQ!ʶٌ^ɅK0bO%$<~?;0sѮR?R-nHk{r 5Ƴ#nWPz׏s~~t)"1dIGY1 2|]%OQcr+;*+)+)ragH {[zg?0sKy:/ΌΓ} +/vIQCllJ%,kYč?Y<:NxU}9_dp}_rL3V*,]w nZ W+mX-->Y,ncXsb,щZx"5Vk2JΘQ2HnVhv~&l;`Ә )Qo@3P&1 Ƕ]1@)>s 5NXxn (Vq' >+*7.tV<0JƩ`i>ρ>:K gxc8 .eXuEwKM۳{s, FZȚ-.[(nX*ѐH;Ҋ;iz0[hl@LmݶGklb hʹxx5ԛ;;?hs `wSIiҙ BͿ('! qڴȱ|qпbnE܋OEe=CU&i^SaEQDF:K0ds1,N&m뽜svs/fWGө6f66N f8 25yJf +v/;"*bvBg}&+~X2 !Le>~٬~["?@?0M6kobjR#UҶG2D_Uh(ܦҫYZd!<$`i6FO AG{I܏cifeg>˲nzZk0ݎ" +L@sLb +°B!h? IS!k@4\R.2' yY8{/ De]WviazĖ N=YFSEz1nku;~pp 3WƾҚEFϰ7 MzOV\.+rݽ,lv!gp=Sxi pg/0P +#xޔZ\~yuP(oЗT; P`ROdٌG2WbWvb@Ž6z7uLnH*iRG )0Va[,N6s)YS/ź}:rn*~te@*|9|~~=dnp!rB'ڍOF$pZ:ufd;`3 `lC)CC;bg;9ìu::{vA^P2J^OY1qzV&QPGM7]jw:Y5YrZ!jBwa(<IFRQiW`~~fnII:ӬS'Zm21Bج;rI()" cl)(. ibI T VwGKU#PUs|B'M㡏~2kSZf}?DVT@ j~]oR5Mb=سf+oX:i +2447%0 (~~Cb~ {EPCu=?#LG T{*`iƔq[$&ɚro{G6ZQmSi*wM֍W\j)H'QvMj}u?=m5eW4c!)]5X.ǹ@' jyBΝld8h8ƱNi}tnZO4+ SMoH`6XNOuFTmTL<:"쫉DVqBdšpWs-2S {%Z":O `G<צh+2yQT6sC5if?QWy +?ALI4aoRm"L]%g+v瀎KnlT_T{k:Oǭ YQfit*$qE+w4Q*D[anY(JAK'BFP(~LQ(e\&tl$63j;ц:tf O?Ѵtbca% EK8vixUz~q<eiO[!DQy4+LyNbP3ɝ:!iEj &] -HB5h^e7b rU] U  ./;rqAнIRhB Gy 6N{rIhM` QsX=j=x4i]` 7{Չ3t:EV _XES:VSϻuwUWviX"^0}Y>}\Oğ\G)FY߄ѻ{_ DߙMR o8 d-~ΜlASqވbr4 m}iy>%q9!C>,OG}% +68D%kOԗ8[1{VX~mGͨ9⯄;q p`|m^K!|}>byiP *ĚًljED@NҺ .3*Tx^mjɭIT 4zİK>+ +90+*zhRw$"Qrv\ڵcNj||ʻ66 Gι~̓sbs:2>]tb8hZwa&tz:vV|ԃ4} b"^q{-a|n$Ns){B1ShiM5{bSlG-ȼc˚_硯Ӂb,ѳ[M_I4Mc HId|1, {,Kt{}w~/8d͆Æ`1b'9<q 0RTF!1M%9H\`f')$)Z +BYÛ:0Yex){Ø44d~ou̦L$Q rp\{lK`O:l,-j7VQ2ݟF7ZJu@LIm5RY)tq"mi9E}seqE$̑0QxϋOb@2{Y˸%uM+U]% /%[O. ENZ ҡK]TcQfpqP -8#IMkEfRm$;9EժvfgZ]ROnfR +I{49V2D1 vy*MuN$}]#\alݖW +edǬ> g 󟾀X3*⺵vuVYiuоu>~Z߫Aj/=;@7ʚ3JNo1qAmm/`NzQd.E@\")g\O4ɝj|s_CE(̬r" +a|$Z@-R?3_p誂TGwDbd<~x2+tlbEE1C3XA>"95v~_v /Dȇt1l8-9DZ%<0NQ@*5;F?}-<܁uUOɜZDZKb;bD%7u6ؘ̕xI'd q9wٰ wEO1 R(Jg c5UpŧxMCMECI$u_7r.k$D_$gAw:$=%itpl1XHЮ8hqmb+~9$Ѩ[0 1+].DV!( ZcfAOYC8۸;1+<$&6uìF(G`KŪ"ml06ɌnN.}̉;[:_A-[F X,k/7!X;K l:0P_RG)>zc  f9X@rВ3m@fiLƌ\eK<ЦIN8ES BԖ"1;: KAsFk1^L|rSzg| A߂݅X pD,kud6^ѵ\N,D!o\bBzoݕЂMQ>o]9kwGG[0k<1J3M+–||t#B>daDU(IjԖw\›%"QE~8Iz]ㆉm!2>>ɴi:'&ivNFǰ,"lXdwJIc(1H XԙId{$1Rl.ISDp=ipbE%E8&â&0.a3,`vr3,Eݪv4FCUž3 p'~ζQH [ɺفQ 19pCVmNZ1>U6!ycN sxָ2SlN:9d1]r2 ɘY07~3Rе`5x5"|5b`.b\e֌v,vcI밮XWa@}{P @(twpo*mܠB9 臢ÞvsuVEtBȰ }A4s n2K;ՠ("f2Z:kA? Xl#´!N`v+%'K\* +YCA0{5 Bw˶mSl۶m۶m۶yNwOw{f~DJ\'V#ΤwXEpg0n(5lu +`t?R%Xle}͞[t93EI-E9+$1fه"csg(d.MفG#;\I YXv;4K%_?l 4~C/)k3>_n+"tT:B[Jm +mJoۚW1-a>G|*-Jkς;oK_> f9%O0φN6vN&&1ZI[gdg-vfkFl)O\FD +Q8 $frj >q> =;l?ۑf?'Y:&_zW@cN@cOgc# y폐DbpA +*:a@t ׼1LTMɢ69ʎ#ahFGLvZ԰.Te֫<lJ=u\.|>LWյi9ݴ~kvX(=B!ќLDH>&iOF55sLLS+䙢jZd!=kYg偣D 늕c>V W5%sh$?13 IV\Z貢ei%o2p*ǀS7׸vm-\[#g}WU7Ԗ?{ М&̏:.Qڒ^4̋Q=W/espfEd̮ z Y _}&_YpC܉_ +ŎЙNN[9Gqg +l8w;"qS9}@ R-=B߼++Ľ+ho lGV[gb[U& |sB$ޕ*H7qx#Af<9b[k3diL:x],P[ff.+8ДbRI%aC ;1Uxve4 o iUaT垳{ +_?\ǧub]4fIc >eՎ-ذ[dR<=2*g֔$=*×9PkǕO/+goܥoEЕq]ЏG/,[R{%/$O^M(? +ʶN }- +qqa7`P4HTF5JR(ZX8cݗz#syAϝnןop?C+.r^SoBH@ȆTiQz37FI6$r1tc7Dk)%xҡu +2 3߼fᶁ8ߠdv[U< 3l(}+净ax_t"\qڴrxYwwr)-T7vI\UɃ6kl!adHD,1G{hLqt*. kvА's|@>.% 8xĴXYF3ڿ""v + +o(C]Y_}EqcpINf.Y~|ݲs +!lM{>LFHjcv_leW*no |U'*:5 +}(,3ASD7,T%A8$5ՃpErr=EBs?̻M":[!MXHЉB +E$QbLCQ'ٻ ;Tp; zQ׏))+7{,K,s !mqY 8jYp #޷+}Ȇ,#]mٸi?{%g̝F[×B~-47"<yl&LN?ela^{O0!fu` +q?E*vI4,y cLu7xЌ/u޷òT -ۼه{ RKݚ٥ݬS&dHc"l;sM!me༁/(b;<|puRY>H>N)%).ZiY Eg% %$)GxZSq06x恼 J)R,}:=!"}Z9"?1iPB׊miVn+<],o"Q p(Sn;)ᢡۨS(%S߸!pۄ!I$5SZIm.:{2$ +$*+4\@FzͧZnȢS ϢDh}"vd?bk;* 8<< ߍK[V"WGhQQg2ZBQC#/r+Y_j[a&*8 S#ۚ1?ܜ&j|-C,="C"h|s^2s޳/3Cj~miXѬlW.S-=Tp$Jk,mKK= +O.[ b +;? .xRyou1afj A] +i 0ʳdwP&}R2>р0:NX/u:!DYa3z]ҷ>;$ | 85گF(*rKR2F@r~=ΐ `CF"bœF̃ =( ayݰ}KX1A3qb7LC>os_a_T,*ōp#lMj({U[oaP4g{l{{:QwGzvuI6=i,/O6 a=:Bb?W/zba~[t5SyuxFy"ብA:!1e]+^uM_#}GvKcd=#--%X-hP, "AꈂS1ȘrC;{b"eǀnC' EFgfڽOZ?w.@ dЮثoqvfUnmncyvf9C7F,/_o{ua~f*gK?Cf^F,ӲƪQ. ٸ1VQ5봆{U]Ief*ҡ4 .9c$ 0خ:u;2 o U]ͱh%]ޠ&J&󦭖q`a膭4׬X@RD/Êf%JUA,15*>NUM-6bk^d344qH9K3l1WU{0jgɹlZ N9JiQKqfb7f={ +򹠂KJ\Õ59ȣ&(¾px)/sv; +z;N32/OA|ZIT*P)*\w![  z/<t9J V~.6C^J|)!gzTJ^^;$e&vwWڍy|KnF{G&yW'JM }4jdmbgJ|΀麚δZDa}+ LxNdgilK!1X :V)N 3lSRӷRH< GTH_GFō[iGR|3)2unIM,ɺ;:fG9w 7F2D-]Cf1#RvZvZIOL_%+qbQM*&I"qSnI8"9=AIyzf+_l +2$ʹմS} uRSJR{S S:!רXdIk#td4}N!i=3 "&k *oŔVTf~Oaq2i{ivS#vL )INp`ŭT|h _P:X +t#PRDfS(tB<ͽ'D ~(y@/lvxM4t59 >χ4bVHyTZc#ҺXZ]>H*VS6М +ZzMyKѺ^tfZ~4cH&dʊd,hCV|\gZG_fjjN(3"{ʭ pP^ЈU\1|87Ze7hGL:)!C/hxQm%QQ:F\ګصr_]ar7f=+VN_rrvɹ9fCW{o>9l?no̧ߝGEû^wt䑹$HVNq6Tf,O +"ODхje;EOx2x +XR*"9d,"ѫKD\J|/gSrqORWJ%)Ρs \!vFg%0wEɝ9/]U| &5:3֞Z: ^0dADfG6kYn#XkꁶF9*w >]dۧ\<>PǤ5[erų@+5sPksbr%V#t=#7 W&_HK+03d[Ug>T fZ(z4WJ͕I.GܖYY=K4ys_=Klanr$];@GTCp=s: 8Zf|N=œM-ca];&僋ԳPw!qЉ`O)U/~aR\ѮIY>lQNc, 3sm +$4$=L$IߤIdyA$}JqpJ}pcP:XߤK$@dA8mJeJij ~Pz# y -E|q +: +X7L : BD2 +XL5 2 +\Ao?%Xǁ@.xVƴ5iի 4,k!uĨ?АIlC8Eyy#>eL1x# n*E>:ȂEHD:_rYbJUQ)P˘Wi*eGc*yxءK(l 7.&u MjC{g厪K36~-4dܭaWKa&_Ⱦ&q 8լm ؾ#fȻ&MpI]kTAy⋜m&q  +|| x+`k`Q\]om'ߋT\m319k)6{^W8)L6Ԩ>Llx@1ЙDTu ::Nm|Ы0ԸR -!,A)-,1j]q$Jo"~B0X%?<Y @ h:j j|boRy#$R*4(}98"cRUܳ:Q(l+JX2d#WTBjЄ"$ m9 +Qs`RX nMV,$q3̌KFJYl<.VcąN{FȘ _97v4F6?ͭg C$=Ia&Hmb#yxH +Iv2;1/J}7#5;u, nZ %M G ?7fN#{+-,#yVP~[s YV\HYSZt~`4 gc`^\{!D+',XFìBZgK0v V_UH↟7;Xy`wdV ա}6rK&ycsKBXWdpw@?GbwuTՃЗĘ,;$+h*bD#ua㶏q8Z*pPp8zԓ4%Sߕ^ekvV(l]T%=ں`TdhI/q: ژDD31-Z*\)GZӡTV$sf1r }U!cg^JISf&Ewc}R^t,=.:j5F! %Cg-pnVw=jya$=A + ˋ&I{ok (9ɲ"ucF jL_  +:hԘj:\)`bQƒ9NL#&Q3t4s,ѡ +ˋdI0u1@ME5muV.?h41MK~y#Ԗ'HK(걲̥UqeғU Mp +s2ʊ;՚Mb #}-r(+g%j %k,҂6"uu=%C} kf<Q2w$UhlL8; |>n c$0gK5TUv'5Y./9|APܥ$\*9dJXAqgok{;'H1'`f;d;x-.BKVѭ}CݭXO{h:0eJ !7ܟ׻97DLܡk]/IIaS;a%Nوd0s,t׃Gq_cBz{})]t!=U#FEITCl]/VP6qn۽a-jg:u]~=^[ܦddC@Qo2#ߕ;`z +^HP-Jfuנ)ǙxjA[wI1/ Bp +_&5A7LSmXR.uw0Bago4=ANw =6"G)៖m91SN"q@CgN gk_hw?~98ro)ߠj*B[K‚nnZIl^&4ܹgO26ąKl]v ڒ$}+ݸ{g neS"g¤z,%?yFC&asvҖ+1*:VܭSg uR'' +n*k) +ŀ#X  kf.Qyg+i L݋e dW3ϵ58s)?"U9CeiVQ{Bː!CۀNQ+/ŏGU(I3%I_:K.X/C+RPqp'aT8~bfg4lgxLY;%=5%Pe{die&ЖAÛlj};/NZ+$4+h[[GROcꨋHYዮ&jI^k1MO?h,TJUɤOJNsV꒛Z'QxLe .m^ø$ d +IOt(^nn[zFh*~$hh49|-l Vc +;e`RUʓRر4=y4ypv4Dn^~gmZx2)*JHUUax7&ZOY.=íAwp>:oPAV۲OA_t_LظO準8tAGz?uоAwt_ +mwdw2A'?mлo? oAr?N߹捲oAH?^؟s&NAGAWz_*?Xw:A.?%йooZA^лRot_??wkr$_Bot_z?؞d_?]]w+Qy-{TWyޢRR@9&d% y6 2u:(r:E f )%,pd~Fl`uwY`Ggw 7qN([Eh$ja7FC*ݷ@筐<nFWW`G0UF̖P Li)-D E$PO6!ٲ9j `aT\o-BSaD_ar.il! es5\}\A ^oȨ; H屰s\TGs,97Q1YĊ-P_ZCU$XIy+Πs2x-KU2xakx@ .Z{Ml hIבZdAF;Rg~YvYϲWʖf/[ dWչ֒^5ၙD5M61bɇ6@sT8InH4*%5w 0l=T(+e.eDsnEcڳ -TK1ϊ|֟֝-XyQEkSH+@]b|Q2n7EEIBYg4avxBm&"J*3;\y\%6늾k|m"vZRoaٴY |Gٕ 6PHpyՠ06,?y=W7r/ңH>-=?fZj:=zΟ?f:_>,轇ŷ.IW [ ?yOc */(??hzDwCRMk}XΑpV3XiÔjWy2p|p*$ل) 50uq*')gʔKd;N) O)S-K"V)HF +"+qXs/ڑЯUOBOrSO=VR@ޥsEW@A,%@Z1 g[dd1$滸"#otOASaC1Ѵg80KG+K?<)qhz±A3BbS[uV.Ӳel5wWD^dCTIÃk8"'> RD88W} X)cDm5"8JNk8Zl=aڃL}&"G"XTc9RLNACq.dDYe2{W86,k#s,L%" ǩВޕ0꽾:_Y^:L@;'xDT$'<-&J&NJmP3E-q(6zs*.ϧDaUɾےP#hsYhD@1=ϵ+v Rg4qU 9n܏r׾|宂18deyM*\Ykv*?;n/Jf+/F/$azTZ|eL:?h^T\ B>R>j ;/|B?vo=^? +na/z)t1vUcgɟt3Y#MMWk~FB*z/'%H;`88W=6 +NV\3jG[ԏ9ʱk$G%>e#)٨NH>PqEX6%dqȓ{CQ0ɇ;BQ.Q\iq^oHҸk(V5&v.gu<[vs玏{}{MhqΨ:8E)fOdRs]p{TmRߗgnLb/= ?_+,z[:c27YZ;uIㅈ7il?kƽ3z3Rf]Hz)6-z>:?|_'(]`'tX&o% Bwuo6o; :G-9_OGWc#+[V&s'?/~ӻ?WoRiy§w:rgsoW[|z~ԏ{ng_MM6n=7|J4_M727^LbߢKNý + z~'/2ޭZrM|"BrF&+M@XюPcqݸZznfװ"g*NDg.N +xLA <[^P,<77>K97|ԫp74?!Vrs)Y6ZB^xJr]7f"_qEπApViC Գ +I=dymǪ]؅P?ߴކg>E-2~Ko>)\w r]Ԝ |gE>֭{PjUY>I$nW^4Yx}Z5PzJM}$_qc~Lh&Υ~(TП>%M]D{ ~~=p|};`!؝I?];I{%Rܥ>x~1_G |b.%/9VcYEW E!Â%\p[`b&Nz[SC)>`ܠfmXWX)/dI7*(e>]4`GNꟀ:9&$VZ7eQxX(yHfT}SOJ\hP({aXQf,SRpoуt"._df^Ҹy7뱢QvN-Jv74WE|~ %92ݏtxָd^3y=؀f3|~dTi[A܃$$`ZGKǃ4~HNُ՝Х֓UilKrC ;ތ;:prgp,=܅24s}J{ۆ6B /R?WWlZ' ~NZcZNVe#TӔs/kyHW^Hn^ٺF 8Ful % #ij4ɿW_j(69#_kG{$Â2:B<}# Ohѡ6~S#ymQO+ qXV 42/JV> QA#?UE-1gm3SuL~@`mӜ.IShIcI$뭦-F0QT#S8UAMoSiZ|*d1C"2^%}t&gj/D$DS`(Ec>S8ț՟0~:DjOˋ&<"Ndb{vH)6,wnqno*$_Щ ;l1B e +|?+k*,w.~Xɓ]HUE)sveO + S)ܢ 25^kϸ"Ms'lM/37x\ci!Ӌzf#HIWW\2w[`\GMUS.;9h"LX|f}O1 8gUDfMx{#ӁeaBPUq#1QxfUx@ʯbPցQE.Gڣy.΃fbN:a~U"$$K>5bEwŦ@~ڥD]p4ۺD`uD^)3G8j3<#&j~W"FFԇecoEF_I"zSrK}MPr] +#Jp6$Z5%H:saW>& (6hSLyhrMt!oLC 60R xs(@c@h0!NQ>ԇ9LGCbϬElCvX; 0o4^2K5:&\TzVZ *CA"rV2ȗs@UlhIu&"̐629:!k6fJ;xWYTȮ&W]]d굑`y{6wľ@ ŔH1#W +.kc +U\P{Bꅂ"gN` +XW҈۠A:6'YI NQ!Gt=&@gP )Dz|Dv#o#@2"e}'Vc PEEٹFd}n.> *g3;$3䠓g 0)R*b(_gvߧT˜mėܜΕYJb]s_'q[H,}0BsJVҒC@)6F . Hq0}5B4Hk\iٴ2z;(|: Ez+7-Dg;מrMwF.a (=DI$7 +f2 orwL[JBSזa +1PaL ,i Z +}*1JXJtSF:~*}2z)b$[IJ]?p݄,:c|6e@fh[:ư#h=V4嵿?Ra~ +hWVō~@yCmN=#ꊋȖqj&W.w^7UKep` CFu$ńֱ!faK4P]еݙ +9iH wl#Y)urumB$jUZ1JTS)N]@'w*2E#X6ޫ| pZ\0hC.x&q%y|Bm~r/wؖ>/Vbscy7&0BY{ }L/*:V8j?3?SS7pC.$BM͋E6kdlL;& +]*Olʀ+phAxmyP"(H\MZD&woOwo.v? $KTʸ2> +*JUIQӔk&yMr}L9f(hi[4ԛtrX2_ow܏oDj/@knU٩W.Sc!hӬDT֤lzpov}Ϡ2RO@32+U/";!*?"K:Xj9d_e0j,w #p " 9~B#67*{ݎ2^);,I<7m!7z4Gk~3"鰊VLby NF׿|ݿdР:+XEL]&EqNak3U@S~7-[ %j+rxTkJ)yKJC[m6a$)ĩ~ gƁZ$Yx[KL1YFĵT(EԢZt[a~ʺvch!&ow$/f $vc.6^U6:3ު~oES -/k s5BNY-z@sppS z7[焕) VixbHԻ@r edq*iӬ-UJx씭A?֮RYӦ84J'WγT#ڋʏ.Qda =m*ϦE,(#;?!2=1i(<w#!ϜK;X(Q̖mSFqJ֚1vBҭC־U'#9ʎz +pFM|WzpB%CٹY ȋ!9iOxs U=ITЖꐹlZ!I%,lV>(&cmadžDy uJcb$;+)9Q~Y8쩇15wu-kLXKiQ*vZ*oI;4?A ́Rs#j vDs9(lWH}+"sy;WL/F%)0@^b?&1&bc02-+rgDN)=+*== K:;+TD yPcBWwonC}|UUhކ +uw E:Ztlab-dd3ф~.PǯHcv1M($)k:)i<Əuj^VUbv-A,w瓥$p7]0Y󓃇Y#E-A.s~1 'M +iP={r}8tvPOeƩb4B?UDPHNYZ?Ne xCZD9?|qEXqmD[j~H)K,˘\y>$ ~4ٍ MYEo35H[cc5& #=dXgG1 +99`^**O«N8D骓eBU_ +qԘ|@m0w@"cO۱ ֧|DwKf7uH7E 0:U%r$3Z8a~f`[WA +LBkwv+( 7wU_uWXނ0wX6,?x{kiug=])JcLp + 6bD 0H"kJtGb4t3juZEeJ/m4 qwcDm눞/gi07V$!M_nAZ?'}xGOz~^hg[tf8.^*8h^FԫC]pag5ɾwV{vgپ0[:~۔T59B!%tI ospWʧL졭$݃Hx*G{dzd^%ZIj7 ^{6o?OTNyK r}bB3؟J~;p5rG5F/L{wH-WKEOtxrh6Ů'Az1D u?5 k_ +(&}@^>NED(>nZ]!CA.kT||_NQO@(E1eD6)'ɞ!%P@!l K 1Zno'Eu[O쑉pxjt 4"=RE# xbuT.^6~JbsL1dfvKZ~GI1.!]ԄTJ--d֦ }:SՆX"9Fj"|ʍd*q9RRMTҔE%\+(djeQtL!Ɔ[Μl8m6Ǚ5!R_]Hث#S8"NskK k] 1kt0eWנ&Ҥ1؆*VLm} BSgԍ^e=셙u&"~&7J %2w#QLSuh!͡%e6& M %uIOpb*fQ#5_sdy`b߆NƤM>d?rrd d BQ:KQ _3 + +g-EBDI< +H%fx[䪓iz$b͏Ws1 ?G!#N4Ǜڴ놨 OKΒFJU=/g,N7F.ǿz+r(9} Y3rHeY;zDjl-:&U;ޞF歆*i С\g*8:շ+z>/(VCz"WYF4!įu)AOkd!).9kgߖRaU̗fsl9LOc.MWS7Wi\ݝ&ɢ\/|֬L?cLg'PAXTMm6^;ȷ;q`&ZE^} i$lm >}i MAWgi(ggvuO`ٶG .3Uʤgר\ >tP6 D"Uk r$Qna?t>XnK-GKr5@I R +;e5Ͼ9\] Y +9^e0kSdМggQC no.S=d4k\}geeCWS>m<IN+;wOc<^+H!𹙖qcu%űr,oJ2zkW=2R *e 14`G[Y3 x9?ZXMIspqFMx>1Q٩ޞNgBRۨkx*}|mpJ/RCMPA WP5U +W1ykysQAEoy'0Is"V; i}gq=ϭ6- + $\鈬/p}ʼnjΜ)0 , ɭ/^3VAXJgcv8]n"R[ZTY +0 'GJ5Q;=F4Hsۏ'GOl1v lh0.9Xߛ/ +”ҢAvV__c?⥈!~Ge]_vF1,WbʅΏ fd̹rNVl}G*XI`^ٞhGzjEڷ fl*RV!*Fj:%4גK lW]Pj +K ꋛyy[T_ȘW0b4 ߄-[G]-/u0(:t5928F99 +h wޚd0OLzgؐ(6Ac^CohNR&;abYǶxo<@$Eu !I l2FOY/ YRS l\"6,ykQZ] ^Q;h]d*ג_fJ2"WubN:JM'BhYV`]Ͷ 6mnӕ<aMC`1(n xje g9AA߫/cR7bLcL|QJ&s˼G<*KuXIԴ<~@ORM`(źl˴:}H!V^]b\3GҜoEBٙ7؂3ޓ"dU č^TJ<ŵdI]s%gg%Kpա$bT(|_{00F |_,4¾ᘿ>;D*.r`Y0'<>_HNLYєv|%i`j\VmaڠM`=BFc"F92rbE09l8Bؿ rHD$"2RYjnj?S$E#Z9@;rǠCuKȊ$$EiՏ<U_5|Ӧq:jWq`k_^!@j _|XN ަ=/sp#YMJ|xp\#ɲ|dq zG^ iLx%U)t]`^?. j6ܹ/T`-sd}^Ds !:~F}Lz/%C@wKM-߽#aECP2.l|`|`.Pۯ&# %K@̈́CF;9L~'\<RFXvO ՎClMT|:^xN.,.5L.JP@ebTIeulB8D NGzI@H.=Z:I?7!2B;h߲\*4b~w#Okrf w# )Å(VB"s wLn5Ԝy +OBo6Tо:FtP׊^8KFpM1)HLZ:K <6t1~!y tM:Γp}eC.:UFKλ7{qcH[ ]ڟ@l0ji{fh_%en,s;s&Ctpg"J 8Oe-1Mxʹǡ7Tm3 [A*_D^`{ +;lgwb(W30T RH6& i3gDjMw(Lj2;HO} LJ_dt*,6Mɭ@).2fPIzXAB`UB33-#ULArz`bQt?Y];o~r݃x>L|/X9A¿%鯤)w5U{t+J ~he# z/n闀,auQ:O)_wq*'6xsKSp #6C+fRWX>-;G䅶qy6phӿ:6 9F_UbGw0qx ` x sl1;?nz>W}65W{4w'<8 +>JCf_n*)Ԃ:{(#qo2r8`6Ŵ2] 8)_^AEIo~#:l`̖| VДQpz”a{R{ Mr6'j[6 _t՚Տě@%!MCrĈvonp\m{{ЬLIJx @83cmn$qw>5F׶I158jq жS1MFrPa{e/!Ny3{(cRTS6ȿ9mHfh3~mJڀa*p|j0aRvumbaucmK#shoT+tFbh]6w#G[}" yHuycf# +"!#D7 g>\1J*pˏ\&&xIM+ey/1fC<,fn5qJi˦s.(%6 H#63Wp=zv"eV ecs\+ ʎgdA6)"pF8rs@%VEy8_vh^[8f + JL㸦oo|efJz/ޙco2!tKO6gܔ16 +\,P4NfePm'Z9 fYb<`SS>n Vc*y|uB,ENl 6' .ϔ ]nsP`e&]B#bf~ՈӇ`T)(#,HD!b y7̀S +4>ȦtY8KnY^2L=(Mp%8-&')rָp=ї&uB]m Md(ASe(6(Q2ʽG&t6}"wY:tU~AGs&~ /\#Thp_6,~W\pU[="1`yjR.G*Cϩ evEdҤzJҹ/l\j_>;zQtcwe&g ݙ(|~/<"-,dM-FblwA{1yGIt|]<0wX 8]"!.@fNMY&ޕF*jԙ#M9#t{FOn*lQ{ dН(|\lȳ3vWM3 +u2UR?uDž}ۍF;Kqc[^ 0ydez)(,\!:Łoy찣0jt죄Yzk\=e +G-C[a-j])CK`[ʇ j$QwR/Oⳳ9q#/[Y_ABPwM<ש#yO͖4҇md餧>,˸5Bk|, 69~^;M< \oQLro?;ihzSURgROvM=ţkq7lOmu,Avjiy[l *M ysu1v>ۀ&- b ܖ3=U5B>VDEsZyasF#aLw2u0W:][r `xS}x͗Vp0<(#dϪܤᇌd0$ +񰟄$g + U%F>+-kEi2Rvwǯ_v'*+d#nDf,B> ny[ڙYC3wR髚lP.NRgز%^ V_M`3Os%,_n4@mE.>X]pbH5(d@ʉ ciT$)e>3%Z9}nT.,6u x +nO*@P:P 7VҲx},V,;UrE6-*]K#@1$'' +{'vLV]GV6P 8'TC4--(YUDv1ɄhE{[eC,D~=5̚OCBwY`C9D9]$"mCX u#>a'33d.qWVxL@/$,q_jJZ߿_MV."'?Q9OڬBi|9CAJlN9;&q S'q9Mz$- m9xs ^Or[/,Z=9|L>5BY5J15CQZ4pInX9#qC̾CJ{ӢM9rI@"s8>1bsmRY +S7!νCKeo=COWнq_9v~Y]iѢ#9HWyiBsrBZarvBZٶyyBY̹|FعC~*GW!"6jBOmRw乼,ߕ"@$9:_ZLgs']D Ԩq;Eb\V : 7lq-0g?7#\)WannسVPsPg[\}VAzJe~9U]],d6@4y>]D0EC~ӾpM|n=PxCDoYQbUo}= ?ɷֳg?7E~xB.qM҅"Bu)帧"0, &|,ō#='rd0,ͤ:Cx{+p{^Ez].ǡ/Vg ^q_pMȜA_=^>TT"ֈL^H$, 1?eqTXEp E,qT\*,߳ "*T" |T/L&Aƾ?e!`EQnG! `8o!Q4L {3 㡱1vHJG(E4E<E Q(܅pp"F qB8pfF vLp7Izpo # +c0GV + q̧P!01O0 +5+89)X&m۶m۶m۶m۶m۶=<'fޘ\YYUQ+S!یM) , ++FifTСNrDI4}A=8{)fќ:%D{[*#r+:{JQu|wTĎU6 /ElG4m~V(2!#`ʥСĒVQ*&R٨璹V s +:Zid4Re`V ,¡a}ޖQ2A\FO#o9Bh % + +MG{+ ɀ#6+#8˿ +r϶wk[mbpar54Stpuy F_cʤ3% 8@BJ\^>p*'3~<)/6~&x"$-+b\<2>&L2e_ұ홆#k G:x0%`E +bbg-xH. Rg28H1/1 "r'`$%S53X(H( <^t@{o ůP#ɄCʄkKHF2qHs>ԗ3 QK30 &#0.Q\Tr3ؔGkشA汉aYe"C f%NهVB3Nߋob0NvI53.R,M+LR9*9.0R30.%nY,M<r3FFKL^*((m.rFX;+hQ+CB VJ?ADf ({@X>S.xvsԳrA;&v6d=GG>Bh=&rrMRѰ3r=,ަ<:d|7tƸFvxaJ8 Zvbx&~ s<ku3 IFo5di {\}n}n6R:;;-{a?[vqWo_ kK)j,ǙkCӶ6 aYEZO| lC:F@Q3dC,~fYs"OހYtFT zAo;`}CO2Ԭ{OrֽQS3o5fۂ&oYyEޛ޸yLyC:{mzR}.|xtoT4f7jߜt|ϙ}IhA%_*MQ!.*$XE4T|ZVfZCyBk%.Uyj%.i r_7-UngUgpz"մ`]4[[K\^O~Bzc u&{Suub`{ēl:5,&wFy:)qKaK-|p(YNXּJUԹإ'-6˿] b+{U $`n%(*˳ҽ=J>ѱ50'mgpip {I#<1f>8(CH-Ws\'ˊu5&2a_4Ήgh?}p]]BK_߅ 6pZi0q汀 8& 9Bw )'1[qCVj1nIàxrT V Fx +)gIC7u |I?Bc3G3D_A`ǗkrACebʴkg9=9ad_^1Oj1EsL 0<vqRbNVEVP^,,,,[ɛͶJ{Y6&Km֝6Km62{-^>}|QE?Ngt\lw+4` &csƀF\ --)WJO9JV Pukiz| /FllLm!"-W1߮9׹pyrϓ>ڭ數a{4zΚuGz#w7Å6k!~f w)z +1%Y.ʏḯ3@]-:$pL[ >f:5GvI fWP٪D`UOƔG[!^1%IT4WhoW(l+/eٙ8+Qߚf8(-W f=+)%Y`=IT*ȒY nxRjDJs ǯDQyBm'{xdgM]X5xY:Św0ُK& !|>iys[Svk0M)v䲅absK ܗO"4KVOΉye9eK3Bn]EsԞcm>9*mԝكDJ䉒+o* R:Y-yVT-"s +<5O4}wiD0# +qF U5JO(xZ; RTJQ+'+5 RU+js9?n-+"{c,Y~E1];Ho'+W.U:=)?fkdB!yxAᕢXB`>'DlO9ȬDWA0L?u0dM= R'z/UD-\֙>5!Pzơ ۆ3B ߆һdjG`b :{DƵ}:faLEhRMb1'1WI=_Ele U4}єxBeUH=DCHP.: l*gP2[%1@E ,#4p]am{'_@]@=E>+6Rg;-3ta +Ztm5rj蜁#ӀXqZ+v$8.ek :4D<+$t3 m+%|yhH}੪vʰz |}үk +'g _mo{ju%{dܯk,J ֯(i@I]{1Sڃ9)̚Hfp3Ʒx6xpE:/mLNH=Jja-"rh9ҟ2ɂ\PVЀ%T2#DF +;Jgd`7`Gu_^zc8;;YwB5  ZbW?a `hgъjw8GֆCZ_q/.5:@>֦x +/DB'h +ldHF x\BI'EI:3Bgt[ufuSر6@Ρ9)" |Q$rlB""S1´Pc&*^ep !-t#] %+䡙i;f{Ek,v-hO&4+9XU6eӊ+C yI[ڰ965h9m1' ͹يI.EFAʅ0wV!…zķ<TmT#<07KguFd*iH49\;=°tCʛNQ=ȍrYԸ52 @abq%5/a+|=3bhm/y^.أ6[-h+enͭ/)N8 nIR>n<I;9(w+ݮP|. ڃw{-E&`c.3Oxz53T37cirvv*[Do`/2#0md^3L^Ya3Q'q_ֶߝm,FԻ&Oxi WT\Gr )4,;q}r)ѾwfZ|#Z_ _BE%N&E+mpՊB0h켖EySnf'RNt8nOB3. CBQ:9h+Ψj\RTU* ,یSU!Y[K_og_/xVN+Å" bX1'=1+> +A3FpE)L F)0T)&Zhs4㍔*s7 +[MMt, @ ` +ZJ"$akjPRA]=b&aM,1`J<\v7>ұDW//ȧt!j1*;yZ ;aR̎4`]tޏ^t5;b )׆Yb6Z?a~IUgD1 ^2pGɵB:PSGi^S@즱l>vm.oij1&y}i26Qg)Uj'|Yht!kcC5cJ;^{cdKjJݗT癄9h)< 2z Luo2Qf6I#(_(r]ࣩ$A87hS[*.aIJFmS܌YZwVPb=͖.oxf/kDck"}֭W}a%REiarJ,F2EScQ[X@:_wx;N*;0lb7fa;F+9@@d*AJfOuXzq\h/FKjU*L81}6oM>c+%KK)R%'g#m"~jgP'*+CxT?#yXrһ"!>VY y1~ @ɠMp$XŬO0‹YXu͟[g)/.6/F΀wga +P`t }Nj##NcGJчrIҠ!;tiыob>oW*2 +!" [* >;Tv)]Ⱦ#sahsî;ҼfzxleFq/c󣕰1;[[ (| +U}PN֕Սq՚p]aٯ!F$1\>#Ⱦp=;w#{2A=ѽaJ14<$D9ѴKglFK5>DDH% >2 +Sݣ{6-Mt,-Lxo/OL "dP_OjIeR-PYigcSٲjP&崶yfwh尪{gU3w01wϼlT(ӏ{qFjm#xX^p#CCsKAw*T$!7#@ +V^L$K|l|k΀pS<1F`I{MЙ Oqi̔pKD,9tPcc@[49pSJ%"WUݐL%]M:W]a#z1Ϥ1v#R t!#Oe(}H|2h dȔu"\^bDbL7]ñ`9x^[P>kQ^@v*Ot}~ut䕽% +A6,"и2{fe7ڕP:y઄SxRȲa'~'b}6>.A{ +^]Ƚ6 i^"Hbᕻ_5"v1Y(ƘI+%QP| +9+cT{l+vDB5{\'$g`A.2 X0V ORY#z5ǝhMYnF|<:ǝ:7M˲qU2rF1HMclES6uo] wL> fuړ72t)>ŧu .2F:c 5E;2/"WtLz̹y)DL P*:=<ݎ5A ;2]g<= {wL]/iA #3`#Up|'氖Ycjjh5kԐIe{@9 K}cf}G8;/Q +dsgWJ(DT(-`g;R -Wb ذ>bZ(Z-hU Z1VaY/*5VeWR ˫pˉ{[Χg`ë\柨LhT\&,IW_O5s!MO2G *!gyD7kP囫{%W>U:N8af{T,a#{tDC +P\->A#tͭ ?4txEN~LAg+ euX vb_Z)Wf+ҴٌD ۶Vwqf-.&uA Vp;buݧZtr F[A ^[rAc%⑽T[aFsXB,e,pe$>ZD8>)VWyQN]͌L5!%fɣ7ˌO"+H$b]%5*nwښJg6<`*2FT] +A +9L~N.(aqq"왒1|z?XHh1m#;ol5w@ԣpwNHlm\Ѯ@gNVPN\ŏs8jAwx岮]'Xky]gW5Ⅽ!lw%HYFȅ2tɼе\3B,n kJu9)j7.;G%7MoYf,Ŗcbvc ,r"&}r枕F>Ͼg=7fvg G`#X0 osN5Te,# Z4җ(h.rߢʡeF]+wL{hN]ЪhrܻsſQ3fnh/mRw&Kݍ2ۣfa+ +ٵRbiqEQ/&WJ y,ܵ'y4H]/ d<rНtWBs#_jQ;%$^lι.>i9ʆ>=U.[y^.~/TR}eQV)W*3 jK/3>,sS4h*~Z5kh*c>.=ZTT.i\~qV*^.!^<%z*(9JKN+81{IŔOoOP*rd=:VSвQ׊۶(1@I 4H?}TRkxhgW2|U&RI5LNRXI:s|&f[Ep1jl6W<^?p4a1~!w_`]2hfj,?ou,Na&:n/LG6aυEUsf܂ʐV4 v7}٬f³ɶ/iĪfXPlHJm}#Kv`mz4|rվ%Q`[ضEҡd!a{ac15fTF*l@Iؖpޔ!NK١z(aBIpv[,DWmoFS v?B2X(H52=~&u_ ;)Bпވ I$zDa"H~f zZ|K=mvϰwHX#R n-`! GA1cS֓3f%v>0 YӨ㖄@H $*/&5g(z+\0c_/nDžTy ++qX{wlMxQEe"myUmbmEӻgp[;{;xMm{3労ޅ#ؖ# ޹'ymitMd#dldLx`%ut(6*9O["v\̓$WV]ah `It!)Mt6*l1k}U+#sz"iq=} ȐjsO Og'D|dוoXh2TGiSԥ*r`'WũԵOIo:4vN ~c0q :T Z + J + R%O)i +++,=%GZMXzJe[\Oͬacr j + z +:,k)'4dL~Ҙ)j}^L!}p:4tDe`VTlyX߸xX܃6ph#:7ɑfuqB1(# Pz;PZ9GIN##?#H6u9(1#l,1Sn=;0(NY< q6PWyClraFA~Q(TΒhI_:J8!è#އRN^ cEX + u$ qaÐ)00 x$*@0naߋe $+@4O<8:0288qQ!HZ(cPטxPDPJ3ւJ )X$Z-XI\X<5Wz_<6^C1"~8>AP "xB`d "qp|$˗f64_B$03 N@q7Z>Bg ՛B#Vk(k0 0փCABBV9ؒk7;(JY>>l6KX +>e%wd|nxe?;)|7E^wOgg׺zwW}14ՑFOtx'ɼoxeI'ar"RNyKCɪ4et$إuUɖ(Cl >L{'\ +bq9Ȉr!>lshfD?/Y1L^Zh6q<R(-+O"$jv)ۤV% +.*/h3Sr)%r|qrRN^|OE@DIѾZ[Pd*᱘[ջщv(*,AZ!iшXY, Rt +`e\i1{rGAޠ\%u c03]$7IDQV)jH*@fkEa@PE'E@b*4 (BF*]PVx!쀽5i;`q3<=!oD}OMF2qმЇԊB @)s&E` TjFz+@fs6~;wD<{%9j6 lDS]Wヴlw9n=VtS!{pob6rGщt+Rk5+-KeْltDgHɜu du*_ ECv;f] fs2]H߸%]wH{>\9p\^>$y6O d4 m_Gp]nކ19:b#Piiq7aW|hHT^L*4242CIx2H^+B7a&[zó5qMJFp%{l +LK<@ +P lEIf4մBcCCiEw 9j!iަ䏧6U(gnGQQ[..*&:Bkj#5w&3|jOg_~ko~Oc뒺B X/[)>Hl;&S&8FKg/;|wfX K) ݢ @R˃b8eNyONpVW,C+,UǀQ22Nҁq{Bg.1"tĽ2_˂DG{=r +O{$cr9rYwI2_TAZq"="'ԗM +DZq%-q$l`n1^;Ak㤣-/Ԛ6Tʣ=!9&Η r37؅]@J)ɩ){iyCrSH>8+ހ-(dd3U"u)'HZ3R;hr˙İ&%Z0UqC[]N%tq}/<\m!(4=^|]omՖx G70^8J@OO"} z&EK1ACM> +kԱH|3IH-= 6M/8|DeFq&0r3v3%^%KRq79,ft*k$m4K;;(N3n7wp+ ^n~K.x8Ȉ r3@Lo|<2A? +TcUPM "k_|I%V:e۴yDZmebdp~pcK/k%b9lyXs,~ݢؕ<bHTF/rNІfRKa別&m>la!lK8E' O~k bYQanl)'yy؈d|!tmi!Wrۼwy>_$3YC/u!gyۈ{/lxxH:-Ra^xTнzQLpxm6Af-.rjO3llnR3Xz]p8MɊx|<)I\J8(bt0aPr!3FI惛9$ `“~#N"6>:E3 @E/Gw ̹I7zq95Rr6i2#Mr4qr?U%,I 5)V@6(5-Y3@X2^B' {KͳBfw!GlG֦n^w{^;MGuz~Dq2`Ca0M CCC2Z0xLރޓS0mL\ E ]+uӍ@F4YƋ-עMV+UL-`OHp81k) \OC/07HB/ @W$?{edlНv3 ƒ&ė*#,#$"Y6v P7z) ԪhC_j6FĥC}dsMfd012=}z 󞄖&F6fL$T +4L%aA=brI9%6Cΐ)H`$t +OgյxԵyԭzbr5ӭ{>FK&+~Evt@SjW +QO:zVFw|r$ЕE](!9+IvS9S;]H!q1eAŊXCh vGLCԸ:zo^UJJ1|63d֕#*Պ ;#tC%psU8{K-hjC/" N<,~R8%e8%u8ŗM$l/N8 ^x>C(xK;ShHJ~lgy)vEȊ[uS2/W+C}wYC>6j0 m@R Xǿ6fHIpK!Ԛ h݊*mF4?v8GGQ5uJ`"*HA 6M) I/%zH+o +=|aOHi+6"A +^DbNlKeWdi.>,Yݜ`J=GS +ߋ^ҥ@WP@ ܖaN~ KGrEBдڡEՕ?#@Y* +JڡR %h9؊g[ +Ja}0yTVXŁcFܚwEC[Ntx^x9Qb0twGjijFnKUQԯ!2ǩWyo,3DY +I~_݇_ pp4 *zŰRy=Ÿg2G@aAa0$ aczE/ME״gt 4'aM7D7_yԺb^쵖}0[y +P-MU QgK0NGh$)!IBA! -f8Mۡ5S먙Y V-c)Sp-8 Vd mӪ V.sVB0q( '%S&S2$1\qqaӫ>wnf\w{-]ԷsU1VoBYVp0K?0k|#̺jj*Z(-Ԣ*>̰B.Mڌj/Yֵk\&&+*h6ӿd(zq /O0يJLʅBW`kpe{W49 BE( 7W h%PK1,<Ȇ(Z΍B&Yw g!Ҧ-fiƙzWJ ;M=Qqһi2~J5FsRg 1JHqߐ+k%( Me5H3o"hx+DI,X#2U^9ChM8B΁/WY(quXt~z~|b/ 耒7C=ku_k)8O[gmON{R|y|7ASm? ~uFqb?1?@w OyQ! +}1>>.R+53iM737[(,;UWX(jqelkI؞"6SBFلj"/жpHpX;[tUFNN0_ut( 0)PS' +2.vޖF ~?Z 7ppW,'OT4zW3kIӈeL‹s -7ZX2<<%R5cF.B3¹^yOKU7"Jacj?2I"\6(@ONA)o'Ls͘ݢ#D+pD\cr`q<'-~9gGrY"2+#PjNZJǑ,,P V8{ yev0>|E^ aggfȄkl_@^v*"p:S{Cl:2# +ZypbE<S'i 9?S fẺvEo#2C<;?<;D܅:Fo\g)jԖ:H *(OM:?!s#F?!`xO+֎>Adx| N+ z\g+aA':+Vf<\rHG b+F ڋyNL&B+&=`xdNYxc\2Z4f=Y2:fL0+&GEiE:Es=N"_=t' +QԊFw[3F_öaFǣmO CzQϟՑ!Ar\7tkNke< { P]5 5i#G!>[PLI^Ƙ &fn,N!፨„ݯWT$|ບ1ҏޜվm3 / _`fneީsDS)]Ó"NDI1EDU4akeV6;tc`(X@n H•{Ma۲=yS 5Whl؉G 9j e*IfK {HOoH^vN'![T!: k0dcΰ/?%U2#?疕Nx y\}p7vE}wz{٭5%m`sUA(+zuzQmx(Xz fl@Hy 0j$~ClLJ45ak8I$i:#Uq11\׆#[vMDyT)yUZUFl]ރmP6Zgyy "g"<Ľ"x< ByYŲ ]>rtiC_\1&}'iaКH:u!|SI*tf~I &B=xăb EŔ' ҅Ӱ Dͬtez9[l69ⶈ\n[xA[y@kA֚`ٝ>Hi-ׁnfĨwel6b>L\.D% a'+ޘFvdVO*Є)h VuZ|CDxWSS[KG ~5>4~QL{HJ&L w?#k?i8-esUGJJHHHH'hzɧ)#a@u8{Cw7:td h[, R+,fn:`)H;&jolRX!\i2Ԥ> . (;hZw$ɘ]jh.i-ayXl'Xf;{&LJ`dZIr GLUԜGMG^f5{.9|9iZ5Jߟ?YF=azޗyOoVCm$OnWJIڈdJe6w".A] G6?2]WmR1R]טZ?1 {lB%ԑBP29smxZ8l`kF4sMRq>6%S=J^=|٘㦠ϓħHu,uͪ-B9X~s 7;; &?kKF&S҂ctecpۈU;Njא4~:i&:!+^.ci\a>{O'Xe_e\U\CKBW'!>*_R{=AGO;j:eTCH_ӶQ]L}}ӀJPڑFVu=O`VK,ߺ΄4$]X~YӰ4kaˮ"()GPA`)Pj'e\3֠C4,ʭՋ@k9SAIB2-KR<(905pC4I4a5.˕Oh+Y+C6e+$::PtS2.(uxUUJ/اJsFQjt"広iz(ZպCkR-׌.8]=5JufX+X;}D[Um n\텻cJ2aUZ>kqMd6~z>wz{\oUB>BъnIm#/8 :>z_~ݢµVs.q +}i0;{v"ɾOZ8}͝ yu:և㽂y$>tRE)ybBs Qg5bڏ[#ts)¥@"(_w֣)2ni$ni1ϚW U_)LR6^1RL,9mvdgqwN>ثqMuf[ ,"RE$)Zy's{o4V02M9&ocCc6-e`}{g9][B+O ņ>Xz6/Bvy ,.Iϫ?ib@hT7Ԥ$kp-+K(ilӢ]?P_n_6w;ҎM7J܎uw1$7)ֽmP6heݹtk%Mك|I{4E`whD!I+V4*SSxc;ȗiAV(J[񗒦^ت8zpu6C0h3 'w {l$FTXsnL=0f(i@,jZ +$lp?J;!DNCEѵ0*ÒT W&rIJ<Ьk=.ҐY2(?[s2zv^^^Hw^e-?*%20]H8Sa+Ke*QSXleьJ-Tu[S[{XF]O 0&}j0i/^zhJbOBt5_$Щ +d9diYF/ !г"_AiEGڧ. jNqE^Pܸw.jG\/сʳ !6ŨSzitTS| uLt ul-ֺux,ۨS]J{4ӭ\F4dӫ[P+7zY,,̫]S[UBSPZzZzZzZ& ة++-ړE4[pm܁ |;n`wߔ9a*ؐ)ӷW23fGuz:ecO-*L6; ҙ}pH%Tĺ̽ +6 @:fXFq"&O @'"#'ulw|taJ ^Q+'k/pD=!IS{Wt\An 2ڧ=0~|%r̠I FM6;ztwtB-ڨC_D"s٧~a~r9v +fk%J&j@Ǝ9F='\g7r*{%\5GgO>!Zg@tnXgRG[o(BkFV B4>iV>35{uvuNnWP2.c}:=n;ߐU4O\eU.H&+ռٯV2s|ȿpf7ɒOth&Čxa2c5zGٲU:MglR-s]D avm1iRN:>96rwN|/S>s=4 ޻ ;Z^0c͑]ay="ތK~3h; wϧL5ͭt8_wZanȭLft!^Ǻ%Dzm%!+mJ Π>C +;M2y*^|__/9O:z/S|/= ];\Q( +Ɯ>`u+}{ݨx0NH)CZYBT,0'z| úx!.G 9Ic^"Z_*:Łk=CBZ+ZZֈҫ?}ij5@aѴGk6}Dq|UaB)2@U$Cπ =bTQ׺eûo=^V{p K<y7ہoD} c cm4t l21fKҡkI'KDwak:cpo]kbTȰ!5a*lҨ}]5r+zM8sݴ.|-mk!=}=l0z'л=z.ȉܻO}<(.(.ea4nƨNHr;ӱbeB$Nc|פ̀k11[cWOC=,]-k@yDq$#J۔vR]q(5M5$LJ0:aa͓8iGe8@ )H;NBꦪ(sT( "b55+iɿHX#èO"bu> @ƕxS1/ &HJO<"7O,",)`'~(WHLLj%4%7K5 +bjŲų*!Q}\tr@H$$ +Ƃ˵,Pɧ" + $%!DprI-fa |ni'LqI.'q#q4r"nhNېϸOפөr}M'կQ1xC0ZG x[o][djFln咑~dڊ̝ܔ.ȓ;:9st<űvhoH2}4hc<8КFnЂq^LSB聾{?5z度zZW(j_U9O߳w!*`춡~ez Oqp>}{ JH"ջRixTa.L~6Y^m`b{!kX}ٚ=־Lؾܾ ~65\Q}xks!wQye=}-yoyT܁=4D}y=\y=|my'};y}1] ͇Tr$p8b{JEJ4ude6\]'Fމt9vqyyslíyͼ\z%}WX\a_yZp))V#0 *0*XTÖ`.d?9] p7>'I[9 $#k*dAa kĠ:L3*ꛯʓg_R[Yu?`WLpJT\<~@B %2^CA3| +6D39 F3 B9@&g +&.g귱2 z80mkN!<-sa2Ddf(s'Ss6D4=J9bٝp֭2gج44fYIY0Ŧ֡O)[zrxĚfYNx4NU:[܄V%H%Y>қ0Kcw4/SP౞ hl:^1KL@hN$D&:^L)&o JMuq8;f_ưl +I@g.ȜM8H_8cZ6H-pZ_p8[pG?/<*jA'm4 Vvm+HËY&SuZV$mH$Lإ+c5̩f%M`X& ^&M஝+ )Z:)+14MUdZ/gZ='xc͟M\5^AS._Ü>ff_5 f9J޻sNՐm, ̼Q5k.ؽh)vߜTv^5&߈V~#nfO~g<\Wހ!()E.-F:DW` +;lQ7.amDZ449VUB^g<շxsqQjƆV4RZt ojr"M{ +W$hJ^j>1 0l0|j-}*5(4(jWV&EV&jRR^VuOHot;CiwZ &ymT[zp6%.Zb,vts,nd-kvTt,*yVnx/==48}|~}~w +ZCp[6bt_Uп}|Ӎl[$Ϣ딦 w׎1(h&_FædbEx64LP$&T{ @K)< 1;5!sܩ)E(ͨ,ܱleI -ï 7_p"|N#w1] J@cyؽˆ;g:֨α#495I:Xqg]FX1v׾ 5n,UXgqzMޛ:fߓ}w/Ip<;qÇ2n:;){> +!p^к Q}eбe|vN8ݔk?SRꆒaeq٦G{JeCyS :<_ѝ~w~v5"XÌ&&TN sI|XmrH!i\\@% epߜܞ@Ig\=^!˽x8+_Pm#cώ}vhig'n,kC m m 豸0`箽0ԍՁ~~ꗡAhbt߅/ :!Qp:+Ѥׄq`)EEI{ +|+} *ş_T#9)T'h^Yb2tm晽HZ {lFhѰe5PTn +@jbY;DdSqCfjte&sS8 LmA,DS@qEK*'ꋕnRp;A^kF&!R!*^{=$&unR ?C7;unZW9T`o[;ӥYjEK NeV嶝X]Ώèp0iKq63ZleXEXtq$&K;E'8KǩcAR[SĨ )$ NJ3fQ'ERq觲48uȽN% !-<#캕g'.;2xJٲ:eJw}HϿ%Wij"HBGŽYt%E7AZ%G-(A{cf; +rP)@(+ڜkF㢽B@$:%L)`HBjCC. Nkfm^ +oȅ"rl[B_I +aFH=v9nzL xK~L$ʅIJA;&$=~B)6mfN;I L>+RTlhbTUN{ l ?}A0¯5 ]cA#[}Cg= }hOϮ1%QT9}XLX;֨Pe!ݎ_~Wt\fqCex hSpFֿ,M|$j>'W rttlnϛJ5@j%ZX98ֈoΙYpZGЯ(}&dA1r MIsdaH\s/BW` Ҫ)^{@$b=KXXDS|AtDM7lw +2ƸQȜRo$Fr)Er9xr 1TT[V7z*K8Qgg$C#H%36 4~-r^m2WM+RT(ͽ E.r\aDPAhi~ '[ P\{V_.M%(( +]qG8zCcA/ҵ'$Z3!٪EM$Pː mklQxٶm۶m۶^m۶m˶S;uފskf}Dz +ɪOB"\)ͯYFhлM SC測n[\yw3+ ̟6* +5=Njtf2"0M\0УlW㨘.Hc&23B EE-ni ?qsQC4eH )%V4mzbonф̮6Ȳ\@+{7;GGC.:*.:{v}e Kyfk?mc1ٯ}-s/`'_F ?\v25_gm hP|A 9>*'-y792 `DH@!3阉2-徺j ֻ־5" V)j-V;Z+t7ν}{^7swg twEmwƾK@?f|wiK ` +M"x1|O6́CnĈ)1std9x@=@a ~RXƃYKYgrP=0+3>ʒ}&e 0(e3[6ȡ)+.j$Mӿ_=ƤѡCcYȡ)PJ&h%*D 9L [p ygɤffLX- LSf?g/T!7 _ _Y2JJKcAAn= DZU+'J;:٪VHZLa HZ!L B!XHR:I?yBh+ޘ/I>{(XDaEn2ApgpUXPKWo\w om4ƥ]4.mw2=%Svņ +ݷZa]`^XĖhy!ƐNCƽpA#$ǒ7ٛ:k: +$^Ɲar.Fv\7TɺYL^Ί'nDən"\8?婥s=0ɾẀ'R<2eUxoUPEn:ŘE;⥍#\CT``#ʀi &Yia͠; KB}z?ӨB_Oٸ4+ER׵8Qcalk|;4{jF KMxjp1"s)"ó9\ +w?tjW "c}jӠrޜ1o7:2l7+7F ?=@`l͒+QN2Y:s.d#( ܭE> eZ&֢NՄ|\BpA-Q5ډ%%/x>æZ'JhS:tdcjbMd\j@(mcw}LqD"{)8 r/mĢ ȲT\Ë7Q+"Y5@imУGܪOGvsE@Yv6.{@#_~36©Sp641cZ܈vm_cJJ__:)XX1FWtHU̫# HhԅУڞP/Y#6'U"HOZu{ӮcggZ椼CU-E)jI0/}&Z/"Q3'~ukugMyqX€w)0hbikkÞ@Sĉ8%\r1귢#:!.<&ҟXVXgId[s@}ԚuVe@F)%\P,Wz_ +sJdlGzzXqOD?/ 漺.2nrKf?W3frׂ͎?}c^ "?) ,`7 S')ahox2w +vN NXp(okȵ=adqXGN\Un#*(IxV7;q05[qyYƻg|[93t0ؕrA4͵/-䋱2]KQمЁLg ztSY7t7pZ0m9_ +:d-=},!/r ?cPM9TVT[8[g -aBhh%2Ly6uˢC>7oW43,9vd)fyĘ) N}qqMXV +"亷mnWw{5S6,oD!z+ >@qC$d. h I%KO]M M`#.ƅg_@qcǷׂ?B&B!'`ySNX +9yVqm'עmHdWo^wĮƸj6'FD;Qy_a[umƄjr7MqS;/:GFQNV=x<ӏ'ǎXp)sK`xȏ+~UYq+4Df*CĊ3%*VL 8UePI"muRJ/p&*t%B.k 6儗-;s*b,ҁ.bT-bDS[:&>1eZpcC\9 xƝvƉC˹5?އUJ(]Qtk/h0.4>/\3PHtBZY&7Xԝ=nSҏqgdtF Lߢs殙L>_NIC\윕޲Lַ´zy;*TM +"qG䞠}ԆK)1) {,F,Ӆ.Ќ!iñc"cQh^. )/OXV4,v"P]^>ktLptLeAee/=ćہOӚVyG8ڹJ%L%K"(x4mz}&>c.KWdfrxgeR$e_L^L^LBM;KdO(NaK~\ ՜PЙEF 3*u%wT YmR}56;Ԥ\~.K7<aOh箽p)RS;sœN?Y/^ ɻg!6vGsb[i}.nyI71WxvSv|,x!dP)rx렟֯-.2~{ߤ:u%Pѵa)5 ڦrhӤftNOwsNOLNN"OИEښOGe28kOMMwOwOw?ѦwM/C2CšʚghRL\egd1122g215b_gxyJ$Vr^Orv$v}5l~rVmKb$ZhIC<m*9EQ)<{b({8=d=>=>y_7u*1=H5Ό Y䘅2:7Ηgx4c̭NLPQ$kbSllc`o?7 +_.3{EO.|׀U +ۖC-ّ {gKm~2;njۍ5=HX=݆ܢsOY|`h+Fr%J/~ǽ/1a䔴\!5{Ef4)w|5$vu~CBvw-Hv*ιIjM̼0-BϮV́U-U +h[O|!VNwcEd2ԭݸRQ8̠MIm^MNO lt!4DMBImhrwJԊCvb t\7 =3RQs 6s\,)3ՊӢ&4AӊcNmȳ$tkTHA÷boEsS5zLOkjl]G/+x2wrNT67c:ipjB/Žq7@ܱ9ɀިƖE .3E(11(XBc"ʹ:U$FiSK0DG8R1IWQ|TzQBbi`*ATQ%;UlUZFdӌRũ}ﳃ[_'=d#&Cg.q[~A=&5lC#VA9q@ڶ? +F0ev3iUGtJ,#Ci_R4+5)q]nNk} H<djn1F諏[%ȏQ39v&lkOEbQ>I\rteE,8ShaMRpQ'.78S>=hF|LoC ثiׂ'+5]* "WVE}I oSZzַ&`-95k"r~ܮUI#էk. uխx3r(&Vՠ;A-K +X uWZ4=.:*sx*2 ?ZP˿Mܼp`j 5/K-=WP٥A0d) B&HI[@$M0sHԈ C'ӎ5Aլ+\G@u[Z倄(v,TZݚ|sW1a7$"PoƳsgKxuiF*բ7 %6)ތɒſM~6S9Fk뮟\oM:p8]!0m"w1'z뾵l]gυ|tſF_]#8 dAj#s: wGmzq >1ʡgm_Yڣ}ˇbŦ?KDɌBeFeqf]m-X95+;!=oBMLN-5e|L1󁈙,G*mz_ Y܌(mvdĊUhK[ g[|7b^ +鰣oƦ֋*^j;/Lh" 4 <,^K`t$-DֶtE +@xqw&Txҥ^~V$R!^#X dwb9LbshU +xM&Z[&e:BQ +Lȱ` &:+4w/Z%jKeO4Dس9ML&5YU4%3*B睩6hQ#{`%k\2[^L)2f㥚u==1ٗc4&q 2rAi7Jm )uǘF*\CR/dI0ަ)V +a^'=D Ѧt}!jc 6%-u$XlSxnOO֮-AF$ƥs ٌ/ +.d(ӥ YQ(ز-~u|`Z042DiQ)8x,`1`qMXhxv*V~#D 5tĜhHasY!(qu`~CXfy8`xXh}iX_4]w'ԦAw`r_wy `zQ`~dq_8.<12xPdLfq e"}%uui`zckIМ:ԙ,w݆k륆7)0ΣꌍiyV U%[8*<ʞEԍ j>C +Hw>1+l%!mV SVjNV!E8Xv'qJ+n(*9r7=0kZ{nY{}\Y{Eg/8W~ua}le}ti{G˷'/;zkCI{ B=p[ݡLqqlx襞xƹe6~ ף E0O +ڊ،kd>fhAct?omܐxBxQ0|B5[bV |rSl$꼐ź$p+I\J"͖dszLHbO0\-A,AدpL y7“}u9̊7g|َ)5LOU g +Ă%T%MqkOc칣6`eeIF*L铒MfkJJ%BθѶcjR g\#Ww#)bj0uǝK)⿒DK[CsR4O{\Z\PI<7Ԡ"5R蠜S +aV^0E #Q`4Oc|||ݩl4WSs TNaE>n(V!Su!êAO#.)K@?`f@ ϟ  Rq2s6Sv0Q_gal3,),%ʋIQ([U_'\8;}8 +d{S4ɉDg2?Ƽ(4^$Tk+Ͳ+N*Cl]h ڋhWɌ yH(;~3Tן.X6+Zp:- Vcr7# nppp2߄jI*h$ߌ#kƓ`ys_;e;5XF&\[jDa4Jݪ(`x/6ˈ'K~mΌ{PڜI9<1)&uKw`IF#΅_:*Z!*;9DJc+CS(E<8ӌf(v,?=}.~WEic6(-i-)s؄@6h0Oe}|Pa|G AҀ",y% +_A&%Sa'FCRFa ;9u >VYusc3"hDDⅧ^6^X T?g"L=WHYsh`H|Z8Szb[]A1[oNp>2oN?NN>:8_pᜊnE$*F}p67K-s"5̗˭_+ +ɞ%㋬:=Y/kC??WɅb+DŽ|# +~@.2}!_?q:U.Yf^7Zbf=݇!c Vr)\D^C.m337! hTְr4~E-g|7~ppm#4 dco5YM )5w%k|Y Gg?pKou!7Ūzz[@ *02ӴwVVdw`4}/G!s) C,u:شƙq]&-1g0GJ`7ܴ%p7 y&GTp7Xb5Jxfo %Ű\뚾Dkm NsIS[dRQzV.>á}lLRcNZζFOv!C jZ+i62!Jie,}&#Y6b6%SY$ghNf%tc[9kGv^y+|+Lv}޶,W9;w—ĩTuT7/LϬACPntbXR rŮGU;,~$.,߰oo)zXTI!LӮ]{vBN=/&0WbC5T2Y+[Um +\fhҔ"^^ə/7r v>" :Ft1FqGцxIGg\tAh#% +حg*J;#$'6*xe|9BVI^c;SXsc>j0cfb|;'ρY騲jCD̰py [.)IvtN,z+3٨ċ k T~D@J&sor *!4X9:ɼ:FyrKץ}}?nٮUZ!>R+=JY,i'N!Fnfjg/k:URH7*G>a@q%xK PUiapވm!c+TC@Wqnho͑OU /&Tjт0 0OJbE~)hlP!`A4~<3,bM;C $O< )ƚn4)<ɸ{yysa [Ɯkox?`Ni5zN5k<ЀehF{6r67(UԫhZl("P#8.&s 8Ո;p)SFeD.UhnɨG>"mPu۷Qgk{@;ˡmXtIV++CkV9lݞ%'l 1խWߪ%CSx]a>S`?ݪ]SfqY>2!50E١euޝd]8RGƋ Et-6I=tYZv+M)'E'SSٵ(B(܎%cnk^ۡ\y<$@_-c}1|YL%xQ{k.׷Ĺkmlp)kt˿ knjq~d9J14ax46ޏ*`jiZDQ{Ѕt8&08G:Et¸Bm13rœsM#@y@ԭe@ԭ-K2FI$SPqT4"CQ/)F6Z< Sp'!3|'i7G//kvz ._A "0([ L%BzDw1:,[L.^M<2b#Rd>؏wHz,m=U86J;` \/Xr30{u Q`䧓d_)~,̒ܥr]i}hX_ki%[) Mߑ>O.SLb£R2@NM8Njog+ tC [VGਆB&Wuyd/񦰯(k:S6+SM[k__ӺgAj +ͽ3Sl m1wה>pM-Osb*K=p9!a{;7SmPRlmTTvo3fϛCJi-hoP*[մDڙ{}8s +" +H~6e#ܑvdѐ;0XG~4a_)AǺxow;|htӡ A`SHH0!<`%GI-O;4獵Ckkkg3`rvr#':eABj .e5rK,8gB*EIZJ;&b5ufΔθ7?{T+`MrK.Ij1q11R(Ԍ0Jl5r~,QJV +3j22.Hi 3Yc0!bZFװLsو3tyoOy& #=lLXNIT?Xa٬[Jh.@-+]O'NjXkQt#ӘHAG y7?XiO:ݰ倎dtDBQ U +qtԛjF+cp _ޱ0?3DAÙ C]w7xmaPoIo:6 wP=9pgaD^s  +c(>')`lF +fvRM^/> .v\4ʠ2ʠ1gw<7 Fuqk]{<#& +LCtPH5GNH &_P0oUD`=f G?{osjlkh_4Reׁ/#\[T8~ɾ9,ik.&y8/8SFۥUs}}t)v+vw5Tv<,=k3[QBz]n?{#-7ނۍ-h:U'Y`7Rh^={bpE_T:qܶqH-~Ktv*ƏTc>Aԏp~ReYD +߯K~nA?9@f^W}s??AeZ$GxHBp9Zx19Dc޸YphqJP'ī$ج +WǰZ]SHr \\*~.$^h>?D5// _d[ +* +a'1ۤ X/F) <:#$+CyyjoL)z5䶌cbԣD4P(e9(Y1"vCQjN7wf݆Ϊ*;Z;yݸs;{" VvK>{,c8C?;Os( ;{L wz|-f/po9^|S*cCC?0xE4d@bncp'!kf68??#l,I퐭k rr:5ܵҙ^z;9-9dЄNmAPJ 5 ++"ʤ$$9=st58ϸ~oW]q5̜̿1X<[p=b'ex8+^#8މߙީ4Y}AuA,Ѽ=ս;>nϔMQn D y&Q3BbB^eAQʒHmYE .|:I@,eNɒTUZlDK*3V[X;3q{9F!0 +YH:iuR +8ZJXAS1Izv3V|;iExj䩡ID`}V; |b(;u\ Y2sE鳩V6b|sFlv!] W%aڇ/ cvȆ.|8dYCҶU w8\sU `LW#9P>wL@}?X^IJ;k?Wc[-Ulpb=W_qW\A؋HY51=td5dZ9݁\PViw+t)lK/"ٝka6!8z5R(#ׂ 䏕K7tqeGNdM$z +.6 /ebwa +re>.z`Br6TC7= ,E9 ḅ:83G G02AƋם!ri#!>ufc;UWUey Pw9UG +k)fAxi(ڶxKc)gk5?թ?< kqƴ+Y2՛]!1OW@ YCi[o8V)֪j"iѓSosfEHEFiO1X)Ӳ& cbQ+R,J10 3uE&`CS06ڤڤo|Q8R<ƥZDŋ۳<>ݘGt>Ϋg8smMKGFݠЯ=EXMsz[,^ӗ|F d";yK܍7lHncm[Z HFo"à0p;bic3*+;fL$$$hd@ b +HQv&LLL"[V5-*ʂD-@%Z:];UnMn-{޳2`OGsgγ8s cGܞѺ0Sn` w`L3A]z/pƔsz/G|7@pwGA0~At_!^Gv8[XF AEv@cf/3Cq<~0wsM G0zQrǣySCrd_~!t79C9xQ` <;;gK^_-v{wmb@όL 2.}g/h 6qY$6z;]Z^|`E!t4Р=ygM_=t AQhc\9Fhw㬺[ኤ eqJpֿr󶛞V߱Ih:(gќC*C:aW QH,MQJ"HקjakWZ jp* gc4ґ RAH+*:>="8%DPp1[ +c~ 4^m?H;6P?it-!(q~sɃ+gMUNke5R +hDuЀ}*,bL}]^xIG{Wx',f@ Iv)<t;V:s{RD㏚FaO-h>%Rxn\;OWo80Kֲe%nᄝ(%G,}\{b}w%Zj-l _>%t@ , |Gɐ*tm [Gӹ})!vd(fhH1ޅ/!efJл&ճEKH~ת OU$!:9ZNgXWn| ?v˱"5`WZltO҉׋)RcnPKLL>-dEh)7 +|XHs|Q1'n˜:-FűsH$yKVeXYddTsK!Վ'qʆ4˅aǍܕ9lϑ:uXPӳou[>;<X5L/8(U_`+4DJ᧰!k@5;Dkzi{5 i ^t&nĠܓ<#tǧ WaEccr`3?܉dN + +K9_rÜc[?)H ~',1`mxCr$XSayjQF0O!EEEоwE1~b\Y3M2 tijh^卜hX|_g œ34'Irc{H a˭W/x+ז2v'R qS^9^8}w7=muW7wĊS&S!rPIж/a`udɶIIgCXFŘU%A",XDJBD(煗A5hCudx*u +:RC!vb1gJa^`3z촇Pz{3;lQW.I[=&>1550c c)#s'ǝBp^e(I`<*y녦VEءŭ% )/:$8l"ɩ+(҃xh~>lu`U[lS#_L\rJ&5'5#'5C[$nuh.6QE%ܸP1:qx!.BwK8BI'̯ +Iؔb9:^5.@?Ioթ;̡U7̃WҹUqz:)܂8nk?&0XG V×߷nc2ers:w giI-R}ILNX]5I|'h0:SiCU |!=?]hW8Ã&lNw%.I.D$2*r +C?XDz*_Ӷˑۑ| koSK:&xլdzyIV#USJ!Qec* ِaZ63YI +z陬enWR^6՗In愊^{*d7@9,]Amiv,\&/INԗW`a OCĜW$R]0fA蒐s[ɲ/ #fN.l4gJGx"`-O?-I^I9۾'AJ(2O@@(yB(ĐɌ6Y^jPYxCOcVCt %ڦv][|:P~ӐwP}w}q ޔµOQ 38_ݝ +S4Pxץ}B?s}E +ӏ`?ciʵ7b .kv@#pϢY7wY.Bhm.g<5}>lo+ xc;; mȰ#8t=y' g ȐoT:,(eE})َڮd B(D,hb}04lFߥH`}VӰ%X2kuN0*# \kL mXj#7 `,e!vNL|u( ++aǿ]WCʕ|M88 X\:5^R|e:MM Qd=9;lssQp MW $%qO2_~dLm5d׌Ή$jՖ+q~ ˆp4\;YmcN<+5%7q]B4`z|qX~܌@cS(p0d)-sjGYS-9R$9͇l.-mTֳ}|pajv{'JDRie׶EW͒K!g +gޓHnwP\WBlq[r^%A&L\COfyKG@K3lsٺ*k/5V$D>-mb k$X{~ao wCD0J,"cE\ۼtQXĸ䩭9 Z9=(B. {xn8cTbmD !iOkN܈'9`)-8:)f_Hkc/͡aen"S + +!3yA;M` yt6.So-EP'΅ 0|pZr,aҒ$8RCY1c|&'9甞JJ<Ьh?Ar\Ae!=(v+d1 +,B2vp 2CYs+w<y0RT?UhLRn+'#0/d!|cdv6؄/8t.QtcĊ$+ԇTE).G9 Hڸm1Ÿ%)j$)]qY&Z[R\G$'Oh.M1U82m=,"oMg춡,5Aڀi'E=y4gڀ5Gg#?3 &ryd,\bo|6N+Xo)7=d3޲1Hh,:"k,"BhR⃷ Ru~tŇ0[T^<:JҲn5x!;JnFtfz;iڄ'JS> Yb'|\JRny1\;x ӬM28r$byh#w= iSܵ]ɗoܹ G\]O^u9Y D ~qPpę ƞ99tbQDrtXt"uȳ05X4]n) sv+A0؍U!+^ȬvHw,Ko(9i>I rS!Ԟ(vpKPG`s?.ic {; 43YB0>MZY0:$SKƮC(ή$]U B6$V<&md8={ިuXvI$^v5Bn`TΈ;W/iHnM99iڊ>;nP<4xrxM|QI]*m(q92i}$8ZZ$©JzĂ.Yzy &+P{9}05@9[g ~#;#0_#/J &hL] Tz>!MiF6Ad +s r%Rnr6) Sj@aPjă8TxW," n_M=lI%ύ),E_=:X%HQ;g=¦ YNuNR@:~F[GոTzJ^Jο:wD!{`]W:t{C)(.(J +ңf7ΊA'v=Δp4r4i a*(٠ @2 aSH'ǒ0,FtzayStx #jdzA}$"puR|)z9J6&PGġ,{)Ǫ9F7h{#ïwg\*:P;$HQ-FAo "μ*q~vȟsc7œi7jfX{<^מ0=p׾j2%7$ ^yG< kJ5E7Ӧ5$DavKWhO7Qi.|YoXI(O`AjTcL:ތ(+a2p[b6-F^p!ڳ&mZiްVlZ\=&*vHt2q&Gmߚ (HQ>:tsbNd>a[Kd&քJm,2Vf6EdL2Yf{ O&3Rm@gg[ xf M!1D╼Qݥ] NG $U͋0A_.B$ʹXN\I~SaGаgJåTJS];N4Kvr $:b57 (\&Md^urnҳ;u+zs͐˒lQ74G}b;{2%UkN̹pbCVp$&ON Hs`B=,Ȳ2qE* ~څ/)wVxE=psY@F)45H*K!U$jy|9dE + PÛs +ک_݅W! 7b +RilIkMm9u{ۏYw}=(6x +Wkب2|*[YPTXyhS|KszT.TTsخAcUP[\OI(7, +$ǪmxQe;*7&#o! U" &7>U6AmHNTgi7@X]XzW +XJ!I%y +"*TZ_GF\8]@XCFn>6lFq8?otzQd A, #@imY |`hA-~_K% :l+$Ty?BM,+,Lg '}q'{\r3x(㱽v?#hKH+<Ƞ7:7RQG'BMͣ{RCen@) +̚lZE2)Tؙ9W<揵4tA!KΥblw@E3Y!B(Ҳ4qT#n}azq<vDkk#?kĻr8)I>(mWFLKrCR(Y!7&QYcxpkMa|f|lc[Wb8]w19 )_rMo>!O<4Q (cC4Ba졪 ! =܃{N]cB1؊#gE,zM^,tpQYrup]`l.3j}t +0R\BɘohM<7CK[^!M$ 1gI;(=lK~D[80r>*|tomKvGpKtdϔ,ϙ- ?mۨE讥y))u{lBJs1["(|S GrŔ$tBiɋ,QB9daWҘdp C}IYBΕ[!NiVtH*CB2V%%]VS!^!Q˱vra;GU+\|',>Bi-k77M:9l4lӃt %[ 'HdqMf>b;%S6߷T,zP)/~Ud'^mw\ʴ6YT,Xٚ9uwT`mZ +|kw2jh1TSqp)^Ύ&b8[d* e{bTw.LitSM0˜Rޞ[$=Ǔ+dQVnl;) +&]I pКgLhY ە-Am쇚pمvI|53aj%XU\ 'd7ѪæGS1ITǡŜ5HG}HPsD\O7wȩ;wD< p Igkώf4|=Tt?45O2j믕 NT{г]EBݻEV>?*T/{B< +pHqц^d2|IyG O3iwXWDqz"7x!W>t>rts7ߏ;d=SaKF͠SE)>{&x}^LH$&ޤf5_5__s={%&cH}d| 4)u% n Max_0e0࿏LEV/==zAk:$R~7 X<XüĦ3%cmzMX v\\k55qy˅;BM󅴇0|S>;<@W` (|o=Y)0hZ)$Ǽb:Gfx}M !S]E@UVVm*ׂz&vB-LBD +uURrJO-'į!Eo4R_"TwG\lɑg}x6( cp¨ƝD17=YZv:olQn6社Zx,t2sz +x:Y4*p 0t=.4U2C5^R}eL8OQdcݎ*DE +Ê6GXRO޻c^ +B(,_=* YVO%lvuJWXhϫZ8MڇxMC{ *!}j bn~:[d׷+9!2A:S2]CFagcjYSS:&7P>6>[ ȢHENJ~A1>K}(W SPP(8Kv4:I!'G xJPY]d,0* 9D}欼HrJM{F5֥@)zJL,_ŦT͈ӄ:ژ"ERTPU/)WaBm8Uw)tXL8m<9H%Ig\Axrk 8)_r{<ű$5+ƺC!p(>ШgmOӚޑ5C]{QD^f"Hj-Zq +QwSIA^oR1rȱ.u~^XGת@OpGg[`ab6*2ksK1!#%ry^7"qc}JQ̉_lwcOWCyS'tnm)w)>s"0+Kڹ Hd߾^AD`UarBHi$bnɳ.X n.(ӑĊ@G5E̍ ճ^c{kB?nSϕUz=^;a(J|8p\r/qpS_Le$ř6n๮*nǃSo1=W){9^%=W Ap[Sxͺ9~!w=Wm~mA!/G SqW}aMi=6sۭҳi׾pQ#}dk$OtYJwH^BRufnOv!!l~DM t^z;8C>Mh(^̴M[VGtkO﴿[>L +w8~P7CEO:cO 붏kq_ h"lOѹM/مjrt+**=KGTp]Y ӻh_ޛOzQ+:EU),8I|##* :o`VJQ̄]ö)qi2y:Nhtrһp*МokK`݊R [SN&hA]Rk [z?efj-ZeZ[}0\*8LZ(BC3eKA9 e$? S*<`AYs) +n5#Plк1*[;ke" Ze /`lU醧Ho?+X3(U0͇a`~Ѯ`XRW6oΊ(MpZ> "9wLk]J)5fuTNkM>~3Qb  ('{!("a\ +_'ԯ#\CְR>by|_L_/*!nu8),lY%'#VWC9X(kEٶm۶m۶ͳm۶m۶m۷_2c53r~+c{|uԲP[I"Rź' |9Z*ĞqxEHVFTF1cˋ#P_kiʠ8?]IЍ/3Tz2{bU Ʀ*"Ֆ%Ç!cu[bj +rIrJ#"]/'WNyDfȧAP^S].Ke?qoE0'j!/at$YGxMh~ClRLM)qbiSUeWpũ7@Jo0o$泭TwNj#?꫐n$XۧkI2k 3m2P5j0Z[OűVIN;KJ`Lz ~fɸ"gK~. 9SkeE.;o+VSVdG3!#F-1*۾'@E.X'}^x{YX>ujx!^N> gׄ3Kr2%g,J`6Ӕ!F] +҆otJqtEN;rT!m%H/"[y$PE+.z'.mtW[s\cO{SCWÿ9ffcN7kܞ?F4fk_:g^ 8n%L] +LIʕ x # KFKf-e1JyD"_ :oHxWހ~oLwhS#ivuQaq@c\oXoz=.'hm.IO[*a]c`B&`"A׊D&M*h\ўo=mU}-O_.쀑@l3PҚ#5@&߸ W3\CX1Su뇠{t;5v۹|@Y,Ch,xH*r3ѾhINqE3z9TbRCD>ϨnvdNU mbs~mnTmmEvDQZБ!^汬Śe(J;irڦ(؊BMtO`F҆#bcٔĸ\mzG!4 Wŋ_22GbQCV1}MIK9 lQ4Eۑ 5Jq}sOgV9'\B9ԗ+cvUPƑ -}nyR2۴vLY|.J&L,jW\v-7~FAtbsE_Ѓ6N6johRI#jXCWf;+;;7+4VW-6IJBdtEK1(/:LHR󇭄܀P9l NH7FSMM +TgUX }ߔy xnN*9hk#9ѻfO}[*&㒝0"볬?dӝoPg1GlI(1ʯ譊&/Fc`/שh8(,'_ k!" II'梔1ƳV D02i.f[.dA_2]BsWpڴWpJ6n:AJ'Z=525nه5:AM3',(#XB)K,%.yQ5k& 6"QYYEǕ8&IVBɭ}I{5mF5i+TaQw,݃7 ei0D&ls@iOl[R4<.zs=&ݑX'ru@Hw#\>NmMKE9VGj4,'_3]5JZlHUȦ_s(Z5}q%*e;`Ɨ wj]U%(&"'Dw8G-g#g YDlؚp=KC";yHA;E;帰MJ`>u>jK5wfOMD7JzD콤gӐp++1fAffڷٱ o۟9  @ +8+89%ja B3㘃X@t+@Ri*Z/W1 +Zuvw(mQV|~8 ܄Xۋ 5(nS}<8Br-k`]G2Bxc]Yeh5o=-8x 0[w|7yAԑ#49Ud}%{Rlե}+T+2clHe<h*K#]&}֑7+ffj.*=+Jdy4Ԟ7k@a&iVy{<s..y1LP<=eD|. i4=lx5/oQ餄AM^teZ/Π+ALm56~0jZ_4MR(|mN (R!쪣ƹr3xP+q'zjF5*I+t>j*DKHO|ⱳ.?eAx5y?<FAdEŹކǁa+=63/2%i^5ڧ"$HAzfiϟa4mf:I)mM V4J̜ Ծ9=^4I#GPIq -SoRą7'r!9Y3(xkLy@ OMR. >acH0gi1kx)b ӊ ZuНn+x7Wcw YR| vzJDI yu +&qQmcuO)x>_ %񞮛vV[4u{6>[4۫-.%D \9q6hT!;Yy< 6W-p\|Kr5PuQ iLDoPݥDWF&]_IǰBO qf +"X ?_ zѱj$J/pJ&<;՜F ߮^PRїhCF j+IĠ*0s=1wF)۷0d$;p 9=,A +N5D}QISnKJ<"?X2vsx%?6q#wl  DuBs`JxzoJ>ߟ fG[aA' Y%Cc &j8cK<78~n6bhZ"ix싨~4$#㲜~s7+jkU=gSĺ1$̇\>_]1ҊpA}~ilZ T( ̷8rE2o%ꅆ*UDE?K\*]A.u4[` %1nk+("4+k<]+hj]/l\*UFBx:DJ+"n*zà9+NHG{yho}GL:f7>z !k2)puGV63f%J"ːypFYtye9 +;xd4\ԕhDGnA%4YUWTM +$DF8:edaF+9;ӋtmCU- Bn7cz-͖b.jm vxby,bvmlՌH. ++{\@֋x]2j}$Eެ4%B5DA3MMtnRU;rs'K;6juJt}.ɉ-">{L +Z[0,x5ej6(|&6Z۠=DY(ݎS!M?ܰv26ooA)1pWsx)ID-{\GuK{Gi# 005K36L5|uuipK_5t}GGrxqUQ1 |q\AU + |Aa*fGcqա}_]'oPŁ0CbQ+ *Լ|EԳdq @L3+_Q&;r\O +]41SV%"e +JZBBCDÖ +Fګ0/9bDDKL*2hO'C֊J@dΆy*~zOW9G.[:ֱYX' ~TŅqd@6$D&ƼoWiP9"UHM欉e?t1g:."G/Jx)^Zmn٩H$֬v)BdtuN9bF(ּ"(Uf$GI#ՏgWVZ'&%2y;וUkJσ6|28PpD%66W_ ^ Qie(\gqowj`7L5m?6$}+I0f]FSF5C1G3g;@]L] Ʀ)10̠HcV6<\VC,o [b!t`%y©*P%*2lK4ND(#W,:)lXhQ1auʤ +e\6iZѐދkzR8;w;Ec&&^IQPTX ]KY"#If,xFC*s4dޜ㠜v#"\ s 07^61Z 8dV9KW +?Ũp!C:\ë_rY"[`(~G] G)]T[;,шHc!~Y:5`3ǟk +͏; '4pHJ5bXm:vc- Č 9-kW.I3T5msB^a=6?˨7yViΧa&`{oQwZA V֥UD2̄]C]ׁ{\oᰖ*bԙoPwH3ٌюNV(#׳*/(((++(((-ܫ((WAPWBPւi%h^^xX,2xB {o92 Yr.  ]Q +U=u|!X_?$>b~nbZjmnRrhS?95R 1T(I+qo:'~kZ4VqaeMKܦl ?|ȯսrqꓨn>da8ns|(jsI0ܞbfӈ5+!P& !"#A2GE=]!Ud@2`&V:SF\U#彤F{\1BG]! +쩒I􊆧JhYh'eeZd#PpH}f#d-qokz\\i/v_~pR@>%.,iCD*Pk+j]u8/eS'?_up1u4p7k %bh,h? PձCyH, `N0'&L"6$iK9zTSCbkB$ἇ.ElOb 7kHUNy7r_l8iþ7"wH}e6L}1L}2hDo<LtP{ 7ҥ>*J4\:JG@C1 3IӮ!otѦ8ab.sDAd=³9%b/θ3HN_!4{eA'[KQ m#u쨓}j1Oc#Z,':%k i-1ܗ]$0.᯼A>$e£+ϔ +) ]-?5(u0 [Wq!Qݽ*6^(8RDR!1?SmӘUh:p(f` +5pt8,C7DCgR\%B9P|l#f:La႔N9dR= ,!]\-{_XDMg-0"dc=CN$̄;C#(0pMa_4˖I̳pJW3`x08caz>e9*k@!!$Ⱥ7% :88=>_aȲvEa<^Sjt֬3{Fvb uJ~W`D/ 74jiH<#\m%@x㌼ۃ8zf@wz?rg?jit>'<"olTࡩ^2)@V"ԺmX+z@w~f):2Gwu[ ڢꊽpg42mw̧iM !6;w$Wewq\r+K/62I_2sɭQ!/m(<òFi#ŝE->i kltt[lgT 7e/Օ'/9?l$<{r[ /p=s/eOdĘSE\2Wq~݊bj\|8WI+!D]bbO"~樽Not?%g{% OY_kk^茇+\#+:^$71 y,dLƓtD$6/g,#eٓ3(*v`H9C +y cI憸l~:cE5 + Fgn^ |vo9KBp>MĢj~+> H Q͝] +qCnFア8mvq游FQ_4dzr2 +y*)]ΐ@MBzF}E,,*!&g5.G +U 1 c~'s )%nOE[X Az +L11ͥnZs @B"fv9<3QaEVւRh(s1 wi\hk֬ŔjMo~gM t6m)a,S|?^lL8.h Of5xb~-3Esݼ_x`+?8(u(߀0&Y$c׫Sv=[F&2T+Ctn 1R勚ÔUw̵6=N47in eส1weÇÉ*#ސՀR ?Zg4qgŏZ +U:RG%p',Sf硇( (rRYQơ wUSCy՘tU"fǏ== KULR9֯0PFԀ3~NHs+\DQ{`w +lwr\a/%JXAao"6@)I:P- <> !-4Ǩ3fR3kt ⅕^q]It42 rq[Ic27dirW:=j 7 ()o'֊g>9t=hèZ&z< 7V0WJh4ƒjSH+T7r-GX'' f E^b޼eX% Xgݍ8(o5_I`%kYlRiKVcSqւ;׮g` y^6~Ck _)om>g[콅'(g}Vp~uÓ77v?H0 0J>c5a'eO.d,fY.WlC.-.Ctlgm捉6M7o^K~Lގ>e!&랩8Kch3_RKW5&Wa^WIw6-E' #7Zk~ CԞk8-plzZK&:I+T<+:.XB{Mͺ_E |HähPZ|Pl\ΐ3 EpWqJPk_$5aUwAtϿwCjp?As ?{UVgDrC8GLxk08m6fSg?I,eS$0^CI0٘0Ko2g?źpe[Ijzt|7} nZm|O^YA͏::_|%ur3X\(Bn]ʿ- n{+Z`/~,=;=}uHF7Ud֖a\Wl_(5 xIpYMfGTl)YRh"!(iPcDщۏIV0e#&Sv5Tz Ys>]q_1Kp;>12#S({,!c<"199U`Ѧ&?/@A5ܴe kb͗W*a[ސ5G? B졤`Ca2Yfa 2!Ju*dmp({8·"2F:!TokaX5YyO10 bƕ\[sDmHWԩ=o +ʊ8}xC&:ĿHO$trƸ!D3PJM|P)z"<䖮AT>.ݣ2RJ tp{AkZjpik4#dzǢY@y-4tWסuQq?6fyHBiuLKQl%UaXarqRL%K6Pz>ɹV:TҜ]SMGnXXSi[&]*ѥiNli]nɢZ7sO}?I_Avr!dz!S0gAG@eݰjܻ a5v/ smo!7uP(w=}d˔}/^qe >]4#DR%bA\>A0nqnҖ',U(FX@U 甾;d",a;tkMwnK4REMy-l`zVŊG-P[.f|hBPϒqxicq,yPFx٭ +h7f>;a##%REeY8xP t ?D.ܚ|_ 5]@Dԁ + &pyœ:!ÜC<``㋧v7Y%<߂N$|@[ʠ^`+% AK o')c* \ewK2nL +t_rugMɟ<ħ{D7 ;_p +Sٔ0C $k}DHk@aRa WT>c{aN:=O]S5pɫݶ@52_ڠ ua:|]^w%u.]Hܾ/Y3/>{Ow^p_ ?7~w_QjPg(ʪON ߉ RkSM,T"aGL7!f&%8[ogC}%JVDປE#֡2]I;_NW?"GB@ȂG&|P` =HQg3L2kXG~!5&S5tkE/7RjX'Yi"8hIZTS#Ͱ{RRZ=<7+nEEz*Xf~e$S ӲUJc FqfJC(a¹#:`{c( !~YZYwۃѴ"O=B$[ >RS8^=D4uQtn' wWGCa=Qk0eqdhڗuݘm}͎-;OokcAUiiuk:^X/ݘQ9tODZ?=IL)i"tIHX"7N ~,*0=f?32Q۟sxk\) iF-(ä$nQRX0Yl΃.s +LlD$6: )q+п nQ1;mFΏG2YU2ʼnW[*af:%V/\$ o+3M\R68+1I[J4l : U^l+$K]ۦh:j[3%\=.˝9-hF-0)%(PCg ?nԟ f4roK!_sX'+ +Ri\q/KkXmKpWxy9:'@dz}pPc4$Yp<(Q+үX1K, gI믺M 5` ٟkG}+0>mATaCM0_])S45(ME-v53I/40ʼn\aXڄ9c˔`BU\3cʼnrK=-IO/>x>ӿCN,:BV"ǮF': Ie+Jq e{tC7z9,Yf4WM-ٸ^`T2UaN uwsEi[A(d%TN:7EOUB]RݷR WW,vӸ=e#Xų?LoQ,$j\D)#J}pVcѾ$uVB w6=KcIÀg +%RJgCzȚH2b2r;9m@z=}ҹ6 )i%t@9:M[9N _+&-?t ^v˒OP_<oyz@f+B`ŎV8)<pqrx_XSїuSiڄ (h*|ѣO%GmK:NӠN~loE'!0'x=BH US[iR>hA}+9ax7|YVX-@Z`7Kвe(5OO29XNT@}Ǥz A|Œզ7sMobXO@\$T 2Եo5O^3Xa/ P(j6Dkϝϝ37A0P.~M wQ}2ZI"Ν/L֬T\wxvs$}cc$ZY%->^0oA' ]=!qt ɧ==w0{n\.$Ln8/>!JM1b=/; ь\Ah#(b$lt6qLdn&U~!i ag~<wg ЬmWz`]ƤQeV ;uF<* :B5;AuҦUy<,^ӭ:ͯ"rBD?ޟm'5Ԃw(oh`_qR@ M55+]^JpaÑ);Hۦ j9p?~I읨]郙]tlxvЄMPp1L?As;C AY=U'崣 J%/R_HVR\]pɎ;Tvd./ʏaJf^]G*NJpNbwANǦ͜X4?Y.V}$5jsRN 0V*ԍM/e^Gayx[@nd})/dOmML#& tfNSDHbJ!M4C)_@<(XXLV̻өοSy3=˱t[8P=Z6"~-/V?J;@ A D +v O#|7=NS%=J́o[M-|ljYQ@ 'YPR/\8;O)p<՟C+, g^*Ğoa82>{#R,T( qfVf%2LWh +oS 0ϩ\UMni&V5b9nE|QΖQq,%Òʌ㎎I.Uʄ-4eT"*RF!,BlJJ2t`5\\>SN#u Ʉj)jՉ.MkQqmeqltH#TKB/ ,Y"G0RSIg^%bƫrNAٰR+nb̫]}Mt &%;"gu! PE*۶z*K[!ηikRӅymS~GFٰthHS5~;7NF5 ܺiϐpH4QF_+%c'K&lUOWF Y'3\ # VEnc$y36׊TzDQJ]}S^~A:+x{*pwC5/QO_*W/٥C8̟0W5İWްq zst:Nnj/7& 7GUr*|?E;t%X;7 鶖oo4&WK&D޹ՠǐ촩Ab'!PYw/FC<&g+Iˊ:H`ځw+N}9 @_w.&ͅyd8r-/IǠfPEE4{sÊ[r-M'xtmͱNˍ:m +vE誖:|n^ްkԻ)ظ(~yf A}Y)Zu3Y)qd+1 9:Ph@4MwȺAfZ;eXt`*__ mؓ&_8 x6O]ynTx/56e,v2shcyuRB`jx˰!Q3. 6 +ǃi V&Þ( gܚX BK2KBt`fɋY6`)g6hτվd;&J,k|0yNMt -+#?\VdZS %n1pӅ`F_`[fIqpPcci% ew ғ{#*,C6Xđh0Jw~ha?H~^x4p1?BWo0eާQ(ا/B6 ՞QڳSӇm0k.; ;Nl-7Sӷ(nuU:UM qı3f  {nPЊBm Gv> ҭ`(HSy)ԉϦb<!> O؈`tҭǁ$ ᔫ n 2+G'˃*,Bs11;٧dY~e[!,5)k ++)Y0L3,v$3^/XJ.h^, bMfzs7/'gVKr11/ʚ_+""y+qH6ArX~ݐ<8^ X1j"3I9hҋ&gn 'A(?{sm*1iR.5lM˃Tc͗uk xFo{`.A@a~8#SIwԥl>nVj;?X'l̼[*b{%]6!)JrVF H W0TCDQA&r%/lL+ˆ -9+mu qF;C[#&w~Ьtaog6O)f  P-0})b8y"V_N[9H9܀=2lQc1tZl.+*XF\;q6h->g|^ =v?+Ztб@3WȘ5'@ SWs[UO I WPCP8ri#¥/x2`10Zxu}c-'Άo/^_uS3ϵ'RjN:50Gi)\Mw r^B "Lm;ni5HASh: 9dY(WZfYA=Fv:ZT >b['3ئPyrrnYFLH.#DSO 5W(*m}7OhtGQqV,1rfV>>/ja{hS%aZs4N[h[/:eS qQV Tydwa-xOQn{BVJV꣢ +nR'nuOHIGu/8:Xxʸ< F* +N;V+ XbPvDƒp~uL3S5).m +IG C^e|uFl8Sϥ!ڲ!G$ ɋޑ jigcI[}یawcrn=ζlOyr.Ɋ6DFYRmy"rab3 EVA:%pJ#`v4w|0ldBUfiz/_NMdsr OިoIF@ %S$9h 9ϸy d#sYy Ni8WTsޯj0=}%т +HT.Tra Ûntq6oA&8mH-Ed_nyo{=WpgeV# +r^w:Ta!*hׂ Ȃ"تp.<&&v΀Dٲ{ݸfQB@Jb8+=#4;Ը͝32ʶiJX]GAmiVAː5~6FݲK﫱fho J#&'o5y͝'- -p-ΣW~ОP{׀/Oh}';X!  uQ~|cwFRFS]]x1>7Y5g5~9^@P",) Tt ϲVzKVGpFlmZ,f#R sĿ{fw@ESz@!%"?BK@B/}h߆۰I$. YJfqkMG1g҉%Ј!XIemo]%wCJE0=ŽJ[\ so 44F:o S}}롰G*\ߴ@wro.{88`"|"sP00~Z94[#))C[0ͶAtfvA)|Y|) +4gSuuH1ARuڒⁿˏIﱁ"ؘߚk]NĜ$-5!5R" W{'`B-Ɇthi -TSXqjc31s6BZ᳷ Yi~|XVTVV~X`rU#lG*nF 'l F$V6|sNn̩ 8'Xy#iP5FTWloWED4賣ɮJL.ԈXk/݁UW.#|WcW^`?;YYڦOsDh~[U_,<@OWm Bm~C9JMB4Xlfϸ PW[~E1O7YmA| .,B'&m4p&r:TVg|Yҷ0G{%UW½%ZCAEwWy$QV* {"Y!IYo2:Pa7naܞ*G#jLA#1RF_3Lz%LiD32;>4W8dPHi3C(0]}@R'ݐ.Ai֐>K4 RqHYM<}h4_BRJ痹F_5uΉCj[I<p=ezJ&lmО9Nm=D5j!UHc|n2 3pm0]S3eFaDLfT6)cSLʜ;ѡqzƭ69ѥuG +kg]@;֘p\Ld, Qت(C ҝ3%[=uC2YD8 +J\Bw\o[m[) gz =u|fMVʞT7/yM=!.>@ T t;VjT+i㎠zPDsV. +FĮвT)dZY!؛ uCMY|ۙ3/#N1hf[DSɼTwYo6oG."ܢҩyKT`l3F-oٲSQ ŸQ@0xз~s<26P8a(pvh>ߣ}r4ѣ%,ń-0{d'S^Gvc>Gw> +, ҅#$ZRxrAgy-0wYB 32WiGCs HY!Zж@hryF5W+l£ RtN?{UI vW!ĴIEaPPO8SX_36vY:"̹w4VUX]Vs + c.g̬ogԸjNO1sX2>>(Q3-ħW:sm ' RѮЍ9! =&pD~[W* b\~Bz?9:z;#ʞ`hLg^< WK+G)ei<_7#g\$q&bKq8܅)AMseǬJQo;dfg6=m-RW9UCgymZ6g +ae`2A[a"ʑ{ey̎G3\|/|Pkg9B֎t~ yss揲3ܿv +?/1pW20u@ #gA vpAxZII|2ϧ߁F١1czعL?xt fWԅ : 2v\al>Kht]R 8y!XNiqve=m!kʞ$Á2qSOwⴋ;YǃM'ȢnÅ_ 7Wh$SnrJ4/031hBKe;¦|{l~̋%hVh #.6o!PQes/ݥ&r<95JpMu-~)j 9Z͌_N H,E9 a%#Q鄴MRkCe=PԏVMܞL6 :ܔ⚼&qԒS"kRT$̔Qs'ꦪem=4s9@+ f["!!!ȊE4 H>*0rN.PAL'el0IZDkRkP7@ś-Vb^ʈ#` {@NZ+ܜ;EGPglI|TV&%fK! F2|HŜ[LJa GmAku@_Otn 8]#k eTiE 6bNm%aG~vCKdt&ofG_EL2#͘O;* YerY LiOV"ݥ43FS CPltan4԰DbMK'fKТ~#Wu)# &B])M͎tZ; }3𷫮ÿz%8ZdUXX5n*dξNAV ԩ.gˠYU œ]yCPy&qy -V(.;BKTˎ5΃* Po5r #o=}̀8ţS?oެZZ*dofxIݞf F(MXָIp=(1d܁kߐ bUx~|w5!D |#rQF) * |ɡ~%{Z _DJwR_QzTo09)[ s)`ލQ;S)Ocș2͒f.MI%e*K/k#9e+Q )/%3W#J'>„Ch K[ +,][ʿAD{Q;]֊mT{ME +͆=az :ݷ?9 cy16EnfEoמApʉkU{LmNhF>'[6=yKן2L8!~!Ȥkz"(6EvBul~o^Vy3YE 砑*rs@eRSoxxF۴n>.:Ɑm9Mb'h`D]B$$Y0akJf:+$©>͙!x"ݻO|+װ;.&Xپ٣$cS] >զpt)"1bPX׻!0W~9 + ;%&EP?% FZEs\Q)psI`6Cbv\KwD Wi2GiM5L ?R$m&LO;QehDKFf_O +'&bg5-?2 c7^pƱq̈"*318"Nἐ/}PVv p%zـT3Rv q$ + +#0D&ŬWcv/۴WeLF |hS* C&~WjHC;;zF8m(;O/@{7 'mLd'ĘMpzFMCf[6! 6!ӧR#أHѲ7.s>Rĭ=>N>d5-ث#Mh G o&qғ&gB-UDE[p]!l[.~83 %36d=2L]7n;LxM|_Z>xɀ!o99)ALfjO+BhMl%RAc1'ExAP2NVb&&vߗ5|:|wnr d%J4GAmv>- ޒ뼠vȊE{D[)ʗu7[cdKQUzw\?8_\ܮlte =L? 4 o~fz@'e.Ƅ4&kxdMEýdG5(Ԑ3BV6)"".zFa:5p dKnDx;vxp4ɮKJ +K0jK!D=&],q^ -w`~H +iXW -h!Kl=u9T+#A:Yɠ"= :Lt1^ۦN[9}G AGOͫV:4;03=\]I3/9c*#JlZLa3w61>E#cr@]E̝35s1r00:r-tD2$wpO#4" tSOsi+)yj/>}Ab$aەok{{_z&"h*TQK{Th@7^x VS>qK$AMM q`0Es\xG/R aУ`/u33}gl ;CVU"`=@:}>3X픬JEvĭbyS %;/a9& $}%*ɶ38̉AVNYqJ+ҍ9zϥX(*J<d^0p(qnnbnjnK6bs/=IMiUR3gg +F/8FCD}nR~j Ϋ, ;|X1,kTv4ܙ^y"$S3PX]F;SNXw#pخ{Mg8]߼ȴM>֤i{p? +QSFdYt*S!B#F}=J%F9% #D剉QI71Q]|! @Jp3g΃XؑXaJczVU>d:}d9̥zG\J@qz(9b޴1\'ڴF*d1ӫ=ڿyU!̀E1QS@. ْ( p'*k5[a\l[dUD>GH.kD,xAAi!s^.stFƲ4SU0uTA5XUbGpP͸DW̝(bA"=:$ Բ.R۴TjE7yHtЗ*YكMbJM[$ObW6V. rq +c=2;]׌ +ǎk{:wѹ`]]Lŝ{4>4s]Œ'vJL(,,[C[:Oaavn)kcQbֱJH~1eOțx(ÊG ܷthwa$ +} Z^ӈhRCjQ;z 58˕ɵP}IRDslEvBp 0ec~!(\du G-(6%xg,x$朞yt&kN03@7Eo=Sc _1|bĺ~F&-Mrk)?j ze8j`?nj8Ǽ6O~"K'NMR1]+,U/g ffiNOj:jN u]* rX)I! 1)<a&sOϋP:2FGR0 FqѻnM Ezw,|r%ͷs,{ws+)=!=Z,>+ +M]$s|žlN |&bϓDŽ4 K +(3Y\sBdH[A -E Sqbi#[G,7ElЫN`I*h*yg(x`RE$9[]B=vLcX_4$V4Ӗ?tlk%ܜYZ^ +bqW: K\Z/˄Obc%̋zi7Un ʋ4; D@|^30@`/P,){. JE=,R&ϙut=mҬ<6h%2'^~.wRaVƖY 7fH6Ox +q31F{Vl&_ +Ge+ +;qQ?v$rqUȡj&X}sh? #I*SU8i.TSNӕA||l{rfʻ|@>jQNx-q|\-tdV|ZY>6Gr#5g)>y ?nCf/7R>Q-1S-TzfRjW%T(Ƅ`>$xr+>H +`~)9|<6ȝXƠ{G9S~&W+tPZ),šIOpKPYl-eQC@汼.uQ]0wAU=0a16}Yv&L@goFOe_Kx,JmR|tf DK @7{P SzM(Z6,GJ +Ġ-mi]J7O4ƒCeTK +{?GëB*zi[z.JGmE]LU<˓ +6HLI1yOV@|#HM2Im\ȼp*&ĶaWp^W)@?2$k 2aqguC'AYks` ɼT7я@Efƒ% 9Q'i8Q# +X QW^-օm<"7jCo}Ea(oa1@b +9G(C9HÒLJTXoą} w /h^a ^"Q =xxbύ$?Z|$xVN=rŴ0Y3!h~ſpL?"|ixKإq("zjެ(DxVn(_L]2dD%ETE>~VL{"Fxٛ"q1{#';+`ABsyĄl!0x[N?'iFs[^1W~S6ݼzN}^ +[Ht)D=/}̻ݠcNضE@]ɛ[&oyS")>gɐ)7's~HVkq?('ED2cm2M|7=:|ydp2<ѽ) TeQݘ+ԭ- YS^OXC.L Ƶ()? fЇ'x<Ѯ!iiɊᢼ#32ñ_;TcѽTR&/ză2?],ejڎIP‘yk,kBf 27ĢvlǢ:Au?~<r5T{9q8FA%7P8{5daAŪ^/:2Bh*Eՙs!^KNA=Zfp +;3S@` +6 2N4iV ;p /1@?R; =6 ڢF +};0U)\lpBcC>~5ug'irE)6Z=]I7mPhZт.4e} d _="T +fyaXLv.yUd,5vP`RmRop gH-])ks0㚌 (= !NEy^E63=vH:gv +!RJ][-] .ﻊMse5 I{ tҫ8|X7O20el2}p~LWGD|YƜ#k6D);{״fx[ 0 O +@zZNJχvץډZ"#cz(0xN<6dM dbɫ-2ٺB' +2&&p=!3IPK2iLT F7M))Z@H,V044dC CaO x1O\ۅN\[6-'V3|f6+uڜ03v؀]Z2hVNOpT5%lZ3G;kpbSZṼޑi65 +1MRU:͋ JYsVM=xp=,[2ONpwẟo8s9cUkVȃtQ~XnD J`\YSu STQZQc[U:UpVޡ)R`7'Bgi--1ILER 87ruhؙAO +$BH3%5OD"`erqD@fXn_03S'X`W㖦pH57pB8KJ]A* +LQD+>i7w֒b+#1峒)?P4An6*H#s$(@#d.NBUabRj2rR#+[X9Us1B?Q<\ib*1~t1+q=xH@ikG0: u~_!ǚx/%0\S:lW m>s>0bj-zrַ|%Cj +&73Fr|2NZao}3K3q30˹/,<fwX7ʘS(k_cL#ߩ`u9k:;>`( 7oA~yin,m+y~$ىt8ø $ %'P1 :F}aH1wCŽh{&(H. +GUJ#z ͊H0? ۤ+ء>?lmQL|"oP>xT5xy4B);%F!aNo_ܒ3`J! YQ4()vIbP!+Q8vNDĶp~43?QOP]@TNӜOdže/2iB]zi0d{ok`O /؎i7j xaWQE" ߞ,>Q'o\a3B6 *]^yF]9Wq$xFt'1%&=%Zz6z>a zs S~gK*ueۤ|8;Ȍ Ac.JwOsWq*eawBWlBi)ƒCMA= +sr"P BtrS*BZbrͯ|j+jݬv]xxѮ>6Or"w.d0;K3;K$i4& +h@HLLJtq$=,vކŸ Qω5'ѹdVNyC0PȒL{wR;O/ʯTX7e- 4AB*| J.Ǣ94b^RhB~b\$y-2 +9UH~ߴ6uAXa`6YN+yʲ|LW$-bH_re>M%I#$=EX/$դ2Eׂ ꋱTKzO+Vaa4?Q~>Yz5*T5c0utK樹)|5q7ծ(ݱ#6w,qGrzmzKtwu;d1gڃԃ }ڛqa;Dq76 ?kۃ7n aOt蛫ooo2 kfWߨ#/X +nm]2+Y}\t,E"l%Dpl2#r>WEr+eWWOEGۥbsgLX"4RK}9}`!]"2. CtߐnlRvA 0n1~!U1a7X'9oO9oO(yRxR@}4Z4ҽRΌFH_QrE^L,Ѕez6l|4ɿYX_0.Ͼg,8rCNʼѨH w*(`)x +PI:_z14~t6xR.R9PK0&::ʕ׫pp23D؂5iN^ǎo)@7wi8 ax#-!HlmĨhtod:HG5hmM`ˆ۹0ts DQ)"@>@4õ~Ǯ$z\yU[^0ZcJ'S*r,b\ba)8H UT! 1-tš|Rc)GhCYms07CxHM&[siܙ#t.C*RSsy^-.2olLΒ[%[֮Ly''4Q:(#lVفOMgʦ8WiVBBUOZEֲ}#NEK'{nyhVLy$u]`]{b,[7x^K*իc\s -7){ٞ/q~R7ڃYE͑EBQޮ]<{pO41@Gg]_Z rVАGo'jܰ_* fXJۗ ^ }a[3䟌/+'-78rNN2󠡞N2yl{@/ JLoOiu i[ޔK-8݊#ڜZca6ېҮŗ̑Vr,t3)TUOH U/)w9{skG+k]!/:nJX&$w$KUaD*75.9l^o}` n̆8h06$,SX85JD2 jRjG8H5Fy-ȯcz8Fy +5eݵ: N|wӞL=|P+,iRlZg?'kknuuݠ#zet1aM"n'!ͪ!B1xK +;Ǥaߚ; E\шse(tTPurYҙ`hS Ui EHXmu+MG(>HϘȩ?_q}Iͩ"UÁͅ"q2goN~3(XLU4<0wD5àterӚFDe.gxx0ko`Mx&z:t^*Pva a+\ \S]בRDxwpq@QuJC{Tk&!ЄieJfU(VUЯd,݈ 'QuNZ7_63}n6ε|к~qC!Ml((l%1Nwc튵v.2roEj{xmUDT߳u7"(ojbZ}W <ǧJdmxTMv~+ʻ zZrzܘYgyD /pΐ[!nyܝr +6m9MbҔ&;I֜\L閜_L+DHw.V bn4ꧩ3?aԈD'gt % +0Rks<-tWWLJg|P_&'r =v8X3lL Wmrs]N^7,#q.RE9X=~h[@d [;&ц2VoHiKof 19Gc&lh%{q/i+߳y+_muM}0;Bv𓋷ӑTy.>kkY|&e^ .<1/g6BK#2>j3Q f,Q ֑%?1Јd)cN +XkV~##ׯ}a|s1{[kQix#lޘoPdw*(wI0nSjs<;@CY#nw x _Pfw<=o9CPw]Ahfxb TB>r@&]ԑ%bMS; q {,hdЪlj6ۨl޸UT9)XelAcW54qL0[:7c Fl@f- = DB])"/XΎ}K +9T= w 4)W/o3 o .HRl0^i@0$su/,K`|yu.'ǗYRs~RŢ,*DS忑;=R|Rl"G 3d"`%6{q;w|qbGY 0yYyFttܣ ^[ͱfZSdC,_$e oü}U͌A!EP5 ό+SS@&-sjHpp"1E9%L1KWO_;Fk|= MGZkY[}VZlۤC!㌟4xZg>:gWV/Fg9La8!=4 I!Yel"Lؙw(* +~wpdb-xWYCa@BTf CQr}͗EC DYj(Uj +|ɋ/oFJMzJ="kYYF~]C%K +ݾ&.%EaVÝshڢ;8dI[fSg*Fj +]㘠;WӓEFL1j.:08E SCh$b3)_)N:SO8K䛕Ef w% 4?YpV7L:*ƸزR+rmDsK7W0W QnHU!gIv~D(M&p_aEnojƦV֑]O{),"番GAV-\{ZW1}"V-+fY~h4,Kn,Rk Q oо9r]x_h?_ղXk>NG!Z)D}eа8{a]s9VSQ~i@ +55]Á sӎx!$aQ [`[d )[ׂVf <ӱ7Qoګ>A?`ݺ/q<#(#a#[v] #b(,c6q\:Cq.Hx +u)=;e~d9"j@_{X SV~RrJ%i0z∪LE2l ps qv̼"`giP Uh{ Ty P+S4RMrTe9> ~@fhͅKpE-C/yjOW>Dg+eכեt3EJR69Ѭ jl2["?}իw|jfuW^XÌaay 737;{fB)H=ڦ#_~j\/HBSI >Ɏc$@ x1D([/e d. UƦczYdC )= .GG|v Pc`=g͏61mMzCsuYp\gR𝺤r MS{:W3q4Banx>!l jb7p/lj1Rd= =H+ =;.MlX4uF%#*5P{X&`w'[䣶D &պnbv+{u֫Uwt~^k;ς6_eӽ# 'gG[ {ؚ!ݓ}z:O@II.T IIⶼdlD"(EQݐPR[̗/jW#h-˛N#VBOrN8p[lU3`%٨u$* KZ<ju$7Uo^sEǻ1ƿ7|BB]+ѯRdƉ%Tt]bϫtț>*%.v_[?-s /rmji~eq7$s +$yjHu{_P9:)5eKR=w5F,UI44P05t?JJlGdclQA܄kDe7|+4Y0"OkIc*g"D+cch$,EKhe0.8`^&)FuY`*0r.pQG.#> [MLN;uiVM)GZئTM)}6 W=3Elv$4ܷI@cY gD +H*50bY/f\aQYceIJ ~ǽܲ;y/ 2a - eXl37ǓX9w+CIuMج˯Rr$K߲IGbN X @plg{̡ÛbF#G3_ $1 +,<•㶏2䝗< p,3 ݦ:rtad)٬9,HR3L=Z=iL%SFkGIJ5QY vBu>uc¢\:l0* ÍrW& eqRDDj< R2~sM Eɓ,e?ՊlM?_vQE(֠0MT֡qpnז}Z^uwG9M/ڐdF%{ETYϩr-Xܚ +0?4z0Kx5TʓqE*`u>b^kQxl$Yf:y,7ZZN)sn3{p8: ֤E~I?\Yչpr&3 #u;4ZC(}Cm:B8َI +i 77peGqھR6Fw8=0)wUJZ%uƶ=P_e7z/@qۿ5Ub3(yG-Ƿ7:}eQd^rK_9ߴ.N9 qB?:ʌoǧ֤(P_l{T'2[p34lKǠbr,L!\癕^! ik"#b7O9S/2w6C1kl.Z3QNGזNK:cJ9,ETQwDJ] 7Ȭ4 ř޿4]W0diWQ,& !N"qS8R0$IPTфNiaM2'2 T!Q{ISx=t&]r Xtp"'0XSz0P2So\dcl2cye 8ɥNN 6y1pJ`a4p:mSH5 +yڬ-dt.BUՈS_#gB%5,Œ} Ӄ-&_K/` -)x:5JKJ/=6 3e2!.Xs|FFnE BEǞ$2Cp+sye2!يEyNlS ,u{9(eÖIkMr(S,y (1id[}Q,E7""&)g1Z0BLV"Ѭ4\RI[x|UJ*7R Ecb'T{qe0O M\\D;"ٌ&x + +jDo$Ѕk}jzU̽iA WMbrnC5 MM}R en /C*k3\NNnc36F nFfCMnZ9i1 bI^*Pͯ%3ˮ'%&BZgn׼Tg1HFTn|VhߛXif|~cg? .;6́',,x"LjuLkg!:gK'k&>E*VOQluL4]TM\vcҧSv+spZK-hR111ge`:`: `sT(s*@jʚLuuhΰg!uICxu lsb ͉7캅^E;w1vea-"@M!sqDtA(g8(e<4gb犞95Eg*_\bvcG6;rgagxbOx>g|?#M >m=GOz'Ovyvo)ק^;2_XcC~'kzu.]h4Sh䷱AS7 G\tt$r?jORi<2t3p{6{NJv'.X V}_U2#?5 }#]Mz#ʒώL;tݒҧǖ擹@8?[ՠTſ7T77Rp/kxC;b5""N۠c[/W0Qc($- q5^}u9Mkc:-^:q8,k*݈JK תW023  24c/V W%f$58qX U_ԅ#VL>܃ZwQ)6{[ +6}}pΦ-"ŧI~O;"]:=b@m~ +m]Tc ]W'|{vK3w5jp]^5vbѱ= zS2AٹUuoB{ ayy9iO &EfF sb[)͍XX-gLyi֧Jǒiܺ1JHX8b :#$=XGkˤ:%:n=O:m3zF>ѐ=4T#pGK!H c~79}tDGF[|ě~f~⋭== +k&#~'2ޚA +|} ;e?vl ݓk=Fn]νpdsTz* ōg"4FN^c %iҠNF:0-{a^ :KG"g/^ՠ +MQoJqT_wfcɖRD!tqϱKa'dj=?B\ SY&N&ݖsQ3S3Ű[xwƇHcU[{`:0mIb3ZbOslpmcy68ֳq^ 9j 2[j8iͦrF?u[~p Iww^AȨ־Ӭq~Mb,)p Fl1$3vRU;K>͡] [qiG"#c,-:wūL<9٣^) 3Vou#>ߊ+uqU +8ѵY!XśBۨQ;Z~āB-:K-XcHZ|y~Wl =܆=f3 +{G?#eӇQ'9&X+dAkFQH Eڀz?ܑPB>9/}q`!#E=l3[vLcT[p ]ɴ'%4Y0՜(TM=pi0~1\Z>/g̕-)Ę}ĵh}]{bRsFưupU3sc}}k q+1({8d4cfm%kߘ)9ھn +lh^v+/qXq5h 8fD{0|(>u~ǐ_ů'!>s3~-q2)^7 +b**ui6lIҮޗu_V7'Bq33z EPjw߾7`wrӨFuTm٘z8q8lsu!1sYnO^yygn4꺺r8AfF]yZzX6wCz̚%my `D4vugD]r'fx>Q *(4L@(-I?KV)r8"W^ +؊}qTV5Ƹ99-"&83.[RFFOؓRni$JYqks5W(+S$TcNX&K1B̀H/EbPb7 CQ? Q6&u$N9CB!$dBy +L~㺗=}JΈ ,IC%q/G6lhgBOL-mrT#q־{"y,:lMg2qk&\@47~ȬIa]4zgP8ʼQ cc'Q&Dr1^wZĭcHx}s=f! L& +&d5т[ZҤfs-,~,%ÌR[JGŶp[WZI[k"`@*+ۺnK;Ѻ;S:yBTV}6<+cBRJxg.&epJpG` ]h4vJҋ"0H'Lc̼t%-f9320B|K҉ogrE +8R^BnV:K~@C,UyOЖ:=XVjPrk"c)@?+0A8{PyAv}^e2 +#xSC| {xq"rፀsF 7Oc1OeĤpI<.F2{ sfy?m'F7Ύ +Y(Jsז.8H1AMr5Y<' FdMexОql{Ql`_+wQ ?`SB | 5-)A]hl8|Q%]XCqc\Ntv˼-:cvxazMa,QB"p>vI24J&˵FBN?N$K巛PV=Fbu2_  +u#=U6*= +IW:tS52G ?T -yJDO(&eFuFJMa*k"-M\A42M!x\hlX=v_$=TSX?Ȑ"l+5k6e/} EM#uB&sekdoY7 TC0Am4r(.|-秚J*D/.&Mfϴ JP`xLmо4s}I ٫3@2NxqcjÝhY1NN1 }bta#BvQ#I^;"Swt5 +4btEn[ڞR<z53sk9I-v=I!i$kDl:QZ_=$hGCf= n}lt j4öwWE gGB*+ق<35,#]aODPbLDp29N \dx3yPsG+HQV kP );LDd;|cőAjʇ3rf2#4 CߪW57Dɤd/ҪN-qXey4S_z,ӳLv,)tY8aH7ːlq ۥR{ҔѷBX8Sx5` = U!m ++L]1YުǐTz99U=YHRRvR$Iz 2#ʱ*BgEXjFb)q9"RU^+✥ tOSrfŬTcԩ@Wؖ[I%+:@N}qudeN;&.{ +.yM,:#zF-gSrk&u4+B@^u8W;d!S:FBٲQ~utN"`hru.ěwyt sL=A&<}qҬB8cΘ2/ʕEvŜMj.gR٥ruSfbeE ïH7}M7S֍DY5jaz$/aAs*Rr͘jt6D:YҘ3zQ߭BlBQ*1^sjg߿F(w7--ܼ/ݖN`R,C/zǾG#N\(+H:(&39WxuDAza9SpJ,hnl(a޲|euY `PCT9ӃZ +'>;.+w]!eW˜xE:wb+@5Ցtu1PijIwSI{]5|b(mBۢB*VGI~08GrFh >E*$`;6L_O0$Ur1֛#ž)YeEB_2vF^|>ĸnL_Roi [,+a6 +úTMJ˸py[!QEarx!*1(Z6 + + +qA]U=&+'W)g~u9tcȦ;jQ{)~3gvz;d{Ӈ<MtYԂʼnK%T dh$uP%@\Me] f._oM|ھ ]Gwګ`[Prw~ ͩ ۯޠ$%瀴U?MIIߎ-К(]kbC}f8Әu+q yl;BEGYvT^e_lڊ +UlO`ٚ +ŭCSl MT&;?ESbCz]To i %Gkr;z;KxoHuVG/ZUD? +*[oduC,suE(fd96!TCh݂{OmVI +z?eK] @ xLm4##ed;ݶnq7~nVaBՖgj3ۣ^t燲3Ԕ: ߥHB~zxT*~ѶLu.XT*OgQ-DmYc:P8ruiRHj%?oztijđ2x0|dKv04:K0icKXܮ'YTnbrxn3ڐMTˏ=\9d26Z*eN~9[ ?r$'M }MD2b V項C̏,Y6jVuS̻ qNfװL<,-M3x:e^A|[} XHYɒ +۴yV1O( 3MH#8)̋3[NaZv'c~_Xtc"]"#$k;q˻@ +N[@#cBJa8XS ߬f )ڟB"մܱ[p;MiJs5͏A5T}a@ir.N2K6/9;}Pqp*dSY _ 9OLڙo^`&V&:ΈWBgq4-UW,sջ6d +a}7豛H!Z-lTY Ʀ<8 7˂;*n7BXYg2BKtق4Cjcc2H#4[ApJ@ O@<U;]({ 45뚞x53] cML_`VwP 7.4(Y%#͚;(Ch`;.حEoZ9Px_ޙ`PS];S z<,6kse!BBTՋ$7vLåoEGGJCT?Na:sN ^ǧ2(0FƥVk޳*8.3hQfH: +9Jˤs[LAUj qlRIL4Ø~S8If_Rj7HkafQ18sŴl(LsUCWu쏊A#ie vv$ê8*($4qqMX H +(@HjJ <n>ލOmM(L*&"|Bk}U5T)sV1:_v_vr_A"*mK:Vh? (?q^ +%0앇ulQ_xF|*o݊F!Hb\#Apb>rX+1LE /sZ0k\Kh0bs wڬ`"'8* O4g˗gܯGn<[ܶYxZЁù]rn;#u-6Y:s09b|MxΓ*WSqHq|1QwP`;= +q( 0RɩikrRF e(&$h& oܢaNྎ1~#2N]d6Pփ5@ Aӥ1T(Uʁ>T:3}( ba1Tg!ٷR;Z/QXd=jͮ@dO!QBÍh>7vRqYq}AฌרfJ#.2htFlj*?6c>rs~B.D6W6v%2 IzTuwy>7(7~D읮!r'GMH,p@:vSPW{H]S F>'OpͲ=.(,h;=I~swEoXUO({uug!kTkBX Pgz CgpQA1'.4Th|4H>LMu1e+e=5 n <AiMJmey,(}3E4KO~HRiZsXVCx4XSx +6WSxKZQUS3=a+%#G],`}/ꢕ0,R*X6Y!H\9Cȝ{{M!U@!1j@ 4%SI%۾7&cy=/g=ѥGu,Hc/(29V2uJzt:: ,iիD#U,> e hL1ey7$# e_&':Loju23%uv@?M]gWÓ?n'̛>fj3y Sp%c< ))7AIMuIJ&4. >n?ѷxh=&fo˾7ݡHaɣی3+~ ;7 Ȥ+rBWewh'/a(WXQ]q4J +̴TYyR! βkEiiweN&P6EF|t~Bt>ZH +\UdQdsL Kkkk gc2Q{Ԣl:$>TYW@ʕ8DK(VE"MLXCFZMpL +>t&}R[syir8{hlSi,Ul?3bX?46)s#M Si_pX*ڀKF/u9H +QNOXlM Y"d%/Pljm щD0ŀl+1Q挝| IꚊ!cXm22BB } 6>\@ʪI*~$,˚JIқ +ĒT^hǂ1v0jF5œ=ZU +GjFD!ՕN4ZAV-xZIjɽfّPXp>a&=\r}5x +ݞs &M-2~-3̽9T(8}kk{YfeSDVӁ%JE 6>4PVP!\!Q!8㭞7Z>1͌ylfbB#_@jLooױQ吼xHH,E؄;,9](#Q]-<]W%@T?8NP;b;= Pn[v7O5Xש+#;a~ZЅqXK} +1ܔ#W.B+_(^k]|Kf9GQ]{{^jh+_)Cd/K'dC]]8 NsƬiĺϳo"kpÌ-һїkRFٓLȾ?Y6 pg")+Mq-ƔPP /ɗrQq*$JL-׌뜂o)1VB[/jhZRo\x.8c+zL;&j4m6Yb.E>36C]E*oyva +c.}#d0.D&@[_1ߥFp@w0A@OTƱ (wp@Y#ZǦuhLuEH4ShPKYy&`w˿櫱Aîߥv ,E.HgC֠r(@ҡH6CaR,U5b Zu+zoOgGځ3]\ȔC>N;M!3Bߪ[ }EPNZ\Nq)-ze1'/b +m + kgczK_,À9mh6'H1D/,5'h)Bm!9S3O4vgFc锸eJ"#>;B_L`!F'._xGED0P^^ w) :l7v1a/sb_1X梬A.pbTQGpҒt2>^xH?epܿU. \i +"ŀ< p'8$ Ky`NP8^(rmhUJ`$QߝLtIlx|tO,?};6nξ((yErQ}0^0]!"6^"LJYU.p3[ݟ#T2o!b⤤+ZMМU)UUy + \MMAKKHZ,M=skI&j@!x$Ɔ'J.姥 I t'K"`g`niat 0JZ Q<>~}AStT"?|5ӦOl\6#:-9iԠy'>*}q( QNkro爲YC'-;UVb?ALj [%"8Um׼)tÉ5nZ*잙- ;<䂗K~m `g:j"0%LR0@u8Az4ki[jw ?N: :0BҴs5W4L$񃩔ú Oq,-ܳK+[KK+6ZRa8VMRw;HfU:Ēs si\T3h)Mݙ4Tue^dԫ1y12qoј93'{X:I1\WS*A-zb20 LϮz016nh4֖e{C49FV!CMܓm[xgy}o^T+*cմGxƴ'tZ^Z65ic =E/B*ڥ ͒hU E*㒤DR4J ChFwhwܕӥ+5n)_/mwU1F&O?` RE;H0)^D&3X|RR)+J瓱""p' +|_ѹYjo(GՒr' ;r@ϸr{j\%CY7>,[ǪƯw ǯj/V#!``NƷK=]X]K>'i߇rT\?1$Ay8J)2|r* XXÄ !&!Am&I +nCu&U]@v,!ciHח^A{d%2 JΖ@w@-\">|,:3'K.gQ7$, IYpk-ɂDmNE{59y O)5{0Z>g*YwwB2 2.,[<;7\ƫk@O%Ԯ0^[=M$AͨQAKr۩܊$ʺ.M7 $[_{Ne<[B"F.v픑@s,u,T O>ͰiS|ZrkMB7`AzFނSw7Qk6k +z2e:쥋k~6Sf nk@cL!Og uVq^CȄŨcB<; /1A #''D}eKrXE5m *6tVWoO +#b2O8',ŘpmJoz\+Q{ ?S\t6\>F1@^i#'8bW{A%{љn0-~4콋 ~o_N +gBKbt'44u z_5LفjL5m%dQj~i73i# Ƞ +,i'KƁZoJͳ8FY7 +Ss$8E%с)fko(F=Ca Ę&Cd6ea7 $ \ee}8"BB;=-s_,w%87(AgD5e#;{%{{%-3VȦdJCHVF]D(`XcDF9!ĆbQP*)GG$"'ϬW~"Q:nkvc9_4CG{QH]A8mw:ImCu;s_$3@60MX.3(Fb"Օ# (MbB0s_-dˌن7© m'PjSZmbRYFwy:Jfvbf%cr.ڲ61R' gӀv+E"B]FaYe[SM@C*VV-ҥ{de|qi'HzWAK q௘7{fk֠\~ҫkYm#4f *cՅ!ȹB!7X}+ourܡ7\گB>+qilSWv$'8&y-`+8mQ/ȹX&zʯ' s'H;J/z'*}ڰZl"&yJ9 .PHfWQS#:OۂOB\se" |( |!NGį~hxIھtyo[Qe..ٗFga_~9'kuL\P[kF*gfQɽ }; tq3$OI@#` q8*S*.tw8;7q_q#S&ol|%xSFm4{DVLz35n VܖEmѠ(0}C2*(N]i+HKl FľcI3HoIMzy;͍\N<[$Ǻnؼb:΅kv"#N.9^}ubћAReS_G{~ܴvxPxDk؅7YH ۳[;WVu:1@*$Մռjܲ;䬏\3n;x Pc@5;q{\NT +Jc(/"9tzfzQآoS68Hm?nN8M;Gb>áFJ.5. @ wyfK4 Q)Je޿Ǜ4{ć'Zz!]I60a\2Kgj(Ӣh`djh3#?oC%ѱs͙A?a,J%Xdd ?}HvdmmNt['Pl0=- AR^cm2ǥ%Nin`:cyxYY4=^jHT?)N靫0jqGq v׋8´d?ꤣ$J[R7B:F8]v_' +nIh8Q9Ji T\ ]Wd"WDMl$1𺛺|~GHhCc!7tD uB"w~GNBb9F:Mc5b*WT|.C#V^a)%[f12JO[4ME/h$FDeު((M*맮H\r٤0(WI7.dt%j(QX ]ƚi9yqЩaҎv+BQh"m\&3# KP;Z?ئif\vӹٙ$-6Lħ8(($ji5v8)T`\U#1 n>Z2FXj1("fIM5HsY-ti2'r~ѡ6Z(ҽʿcxwՃJd[:'Ov ?oS7z{MT;,D"5bjUJeUr]a]Rkˍ;rCA]U23MĆXc䞏bLpQ9e7jQ% +^cҜUjmVZ9 'Ǎ+%ȼב`w5:־>=)#cZcBӱ~;2| m{ce֩@"0 +;,uFЙƋ-yl'BDi`-==xOF(&Yt/;2ZvgޞmľtOcwC"T^ay~'LY*Q³{C3+xe$؊7^[h6)G*rTo]ԗ xbZ-)$ɒ~:ѱDɨ{;Inx>PqtM^s}p4B5[Bvy ^!^xFԡ,^if}?1P^Z$}m"?oO:,09%[iqIFy*"E}; e#\AoY>KX5 egv]gC1>r(8V9 e,!t!Qz ]Վz}GnqB@ts 'g3pp"?[{@@i9X7*"q.fs5Xf7q'`T)j0Wof,@Y[` qK +UidN&S b^r =XjsMG Fv6 _C#5K|78jJ5=A] 7N5,+Yg8o:hJء)S ij=7DTfsH-S1f!un]'a9Pꈊ}Iɮcu*[L + SW'9g ywg~ +m?uUzva#ْ3;75(d5ߞmq*k"8@ + L\bb~&$mkW#W$pk祆kp&7JE)jjE1y3eK1|%<2R踃GNt-[Nྨ+)AŴ3 (08_Ucc/S{o5 V<=0joWҏz~$"|>؆m㒒 ppɛP)V&3Q\i#,hr$Gn,zל%xNF."'&*)cmhV0!$ +Kgj^ԢzBȗ:*_.Tq+OnQbfy50xbV9|GEPu,D`qaiVnzזwyW?pD?d>67->h0q5;|z LTz<>O7濻GqrXzzb9@b9lrq%'#yڄW vGjS3錫vn;zO跨xg\:V6^(SAuL\%1\W]4ZYa'QO tO29>OCRJ,a!LdEn +4ggrjCr Cjcr T"0 jQ?=nטX_d* Gݟ _Wf꘩mLGӥqM"z+eBU=+nsf:U P!)[si 0qeAv/_ ;_)X=zy& ~@QaXg&$ ׋ab_SyE0sV 2s8o 3A8>> Y`39XE_|9|:Ag3|̞p2 :,$/ ('1c2dya!GOY9Ƹt?>?!͔{̩kiRЩG޻O>&YܟaO盨ChJ,~݉H휈bݩHm'^SnK"3գ˼x\uoో1Toe1څF{lZ?>L8T j+Z 8b/&"Y['I95[(BUb2b*y Q$?h>%4nf=ɬ[&^%JE7n6Jc+4摤JvWB +4b v(yqx33"ZT(KƘ]qpgŇCqѿW@̉-Y de[w >BaA3OKL5y AXчZ*(Yd]kҬ w)FI#sSm+ Amp0 .BwN)%:fIP#Yk.<ktc ?;ٛWrkxpRh{?q: (, feqgTgdsm]P'Ʉ_䏵;:qyߝԖO`8јsdI!!xDhBnp8?HH>7Y򇉾9N\<7a`;KPtzA 0 ]Rbd{#TAeJř,8ɗR8YW&Ěs671&D0Mx 8~bt#K43z֭=䳛g.Pי[ L;9Eݵ'm+"C-s5Ah:ABJ?YP)!cpf\ڻ;^4CAՈ2Ӏ2r8rrh,gZ~/̞&c;Vw+Wd-HXTM(Piϕc΁H([}ꩨйo5+Q<@ܸT06Ow&eC,bxDPK0NJ9ڇAT~Y0#;`8)֨JuV!v#رE0t.a^w[2X'I@w,$-HT4ZW:SkGZvjvqOO8Dzϰ3BfQ=xAgCfko*5b=YN /Xp`8M2)h9v`γ>?&E#hO{2,#͹\ m8ݒxHa88Q&Q +4\vBZE:eJf&#osnkyB'-7?{l4FY:S_(}C²al̀jU5.ۺ}>ߘYrYpgj\d)$sbuO~YI*\1Ó֨4nnAIsJmq$ ׯkڠ{USJeLrx +Wd1eJb*:1e'Ė*c%u=ɜ[eȧןJc Uیm&cx ͆*vCѯnm_##٭^ Kuim&V05jDMDaԷrܰ72I3Z-mζN:vÆ]SdvC|>l%eS3̺s!ԩj㨐rs;o^ ˧6@=B;d;:+LK=m$㛆sŧ_lx, @%#Y孼3>.NL`N.H>'6.h4XYRqd3`4i/F\E;ݬAeyԳ=Foc4ok¢#T +׺oMp[ih~ypP _t7P?m?C!.=K= Y_7^6;.|+ĕoË$6 +=0%.b/(; q206W\[!e,elel +}ev .[|=2헺Pc+R93wԩ2w( +][Ed$}_0o&@]]۽1rVDJ,eK[5QrKhkإΆNgFH'|d&}Fl`CtMZ _}f\4텿ͭ===Z(E% " r 5 z:HuLEzmᤅ>:#.E (,1mv,U{ߐrH9,l>Z1bVg;F\QG/"F v3bLS؝8241vgq"b0u,Zզr3B[(]rs)iҲ,V0>Rgo3Y$ /AuђRmj7#15UD܌vwN;.\1(eL(a([ȽYsT)N($2x߲IL bre ӃNAҠj qi$fH4Sּe5>%R¡YCɵEFl,kz&EA1*51r.;D􍐱sP4:x]Z=?bg8QQ{wʍwSyhUtUv{BP&&@aPh1}comQɵh64E$HapAvp.͘!!jFoc7DO '͟^IwqD S&(P!^f1>;dJpmi4w;'rx^+\IFdbꃁ]R/[\zYpNpɬ)!ޝ)Szg_XM>YH8;5ߪ- 0*hϞ:u H#7ě5ɣ,d`2pd-Cڸmo?@%u9ṆhĺQ}ϾλcwQewFԖukFxp(_Tp0v7e+5mdd3)}9Zjtmf2!(ڝ~Z9tT;Q&R L kCu$iT\DFLt+ճ6UKЙUbNXM|Z#υ"Oz,&ZyĚnѡ& 3g/,:GrS MUjs@T6;ӑvOl1eU,q=R}"VMi\?J;]üVed0J*QxA8~KG=m:+HEn +vgVϯm*cGs%{As+Qe\O/fgtTN(ь?T4ءg3"r݆eu8B,Ğ` + 1t5a5EģB^6)1w q1f9ʼCkPuu@'*f60p͋Be7]}mbG XPeZ,\P>jo~$A@ܬwg{G{q⸴+n aI7tʶae gOiYæ s)]iH3NxIAY+y[=8A>;|oCt+v<ϞB+`Pchi|N_G8`Q,N_?|=zz fHt QUxU_#zBx/l^|ȏ%=ƣWA>Ry4¶jK\@ܼ)K&uYW{WB7uȮGf8tzn5pK~qv +bp(Rא@(_%!w\Wآ>o (sd\<4 jx}| 3ڗC4zwcpiO`osd +-O6G`FۑvP5{HzSCvY!d(pCoCtka9(C\qw?u?_\.}il o4#j=Vw0C2m9=0 +Hpףxνr`x<L1)(eFS.˗$ۚ'LE/Jl"4,rjd:BIi9JE< xVu)Y/Z8\Z4n N{dp ⏯f(::,pL~skk:S>MYVo + p )2y(lFC.[ۨ7[ȗ%!g ]'؉bӝ՛O. *˛%` ad:h@٩IHp//Cswy?Y$RO5 Y0к&AU<2򞤊S oJ"v`؛ʇs:O`~vM8_ +'XjgѤɱo`~Z^@02gho#zX(md5kZأ=QS%)kԎ/L5j90DŽԔ =}LYKli5u"4njMF293ؿDV he-zD ^,(Q\<,+S]BnlC*?/Ͼ +? ɼ4[Jcz2ɖEEcA x8$CQ\<<9;MɦveEݰźLveVջUj#{b-ɤHAF!C P|[S +BuܥИBΦԢY|^V'v(}"iI(caֻ۪4+(XPfOR2Ӈi1wв2R. qG'"3i. -z$C"_ I֤g a`裻ࣻ PȔ@4sehel%&p$LԵ22 + Iώ"魜AZU`:dh4[Vh*,&֌e{urPcUoc@" D- ! 6IQ:C]qDu6-7dXF$u;\jUAw*Wo;*`㢂 +~tjچ7M"[X^,Hz=`Ym;)7~#B9"`p!s^q:왭1s/ +tj0q#p&Cs# +ށHohB8ƒ{p8u oKS EcBd>cyboQ,8Lgեq 8 l轾XaO>3!DGGxpďbE|_cxF?crL~G)Ȅ+|kع!}c'yb"*JEw +Va>S4 Ηna(3JOFSK@+:?)+%AJn9d= .ARBQU?6 !xwXm| d'3ǩtv 4~Sb>#4 $Aހ͆Vd~fv;cIx,i޲Kr5ll #*U2ۮ8;|r f?/{UC+6|O&ȈF{%laz|)!BcSOnLr@]9/9FサfzV25)èWdIY<0`NCtL֚,qcAmW^*¸k#׏00ko[3K[Cgxıq_ O}z&eӯ4^m, U2/!܀pa_yH:I}6ݑO!F;|/ͱz݊EBkΟy ùϛȝ`W} @9p"n#UlDVo_o:R}?6⼎lMƵA"20=~hlJbfQ4rR£s c%CO%kk=bW07SLS3n $3ӊѺ/GOK3 ]4, hbq +eHK.k&!;a߸|y{ a ^/[Sb +tC;zr mkUd8L\ZhY$i(-H:WΚ,AaLl9 t(|35oI>nyW : t0s4"xCûyF6ʆ(nNEbni#:Btvnj_)^@.77lujx>' +rk`f%%huK#1BӽT`Kksz)IM9ᮤ%ykp4,ꎫ%~E^gKkمfLL;/dkzx$ +}Y$50 8نw5gҶLۖ +}e?{}۟mX!Ci`AqV6jb`|Q6֟=ڿٛ e]G/:&QAFwd<4U5eb#+̼,4F/ewH?e9~GGl*8c=Kd@ݲUHVu| %< Sіy~]b1΢y1am8Cf(RIMPDJH9>(;^ _g}Lkg4BwX;`2ɍvx } @$?㤝PYaXK"wX5 UuoKbVZ5-*=N'; uiv\N'ܦ3Y=W}hW,H`F}҆f'RFN7[6Ҍ Pbk8-8bF33 _\ ڬS̓L=8#SC97\QaNWq`҆Ƭji{ȤJv0ed{\&a-چaiFIްINSFq[Scq!S2ƶN(3ƀH(X[&AF 9c\RN$ҩ-]jW,g&q.];|I)IT[\$5GQ%ālGEǹIl,JI2Ƶj%X2G@Y[ i3cl wD{5+UBHU:;G dviˉ4A0` _S=/A&1/McA;6 ϡ RYDMT"o}0X"X6--Q[lR.{",8I 80ѯMN1H.'ɯ]\>a*/Q]Kgö + NXN g{nah(I{Gu$}̲WWTU@ʂ_` +_WjW=Oa/M BdϢ(Z?-sc~?mf]j}SUYLse+TĂ^.5ٵ8}xAUGA#nG`!g'Xf5W45X3{}6N}:Q%7C wU&v0vh/,A~B60-|ɴ犫$MԬSpD}i(g88z QN}!NkNo@}w~,׋<=* xA+NqȅP˶o/ y2#^R>{ܾ;/Q0u04CۭC"zd. X<ګ}#Nܾ Nޙ#ހ07$A}'CqbX5VIEN#oً7l^S/ЫKOBGAm@n6v q}Ur) @=W.M+? [XP0Dr%;/o:<>9l:ԧPo)Tr2˙&? A `3Cn})_g-(/JXa CٸkD#3oMq0Fʇ l,IDp`=G%/ blg`gGK>,cZE؈mY ږ0K!htəs0lwkr{{8請mu8×]h{OpaFL,m0t$;Yvaޘn +[AEo@"Wix=輡Ao~}oCebboN  +oQPl?SCiC(uVluGw#|J"u(x2"|RcI|vR!= sÌ+fcb= 7iG+HwkD7+o$$3iДV$ c4[c0f3.q!Ja6/ ?j:ŏ .#(^!a9EfYU,&@"aڂ \v@r| "K LUG3yOZ>xЂPql}AMYsn/Buɽ:Z\*uPp9n~oqG*/,w5^ߚp$_}OVT !zQUΔ_~*5þ<ƐVx{rRjՐrߧAd\Rsž+&S/șdpnHK&{2p+>U:;EuC`=}gew$anl,n  girB|CRI&:IA36wQ|j  Pe`E.L^d8ٻtNڋsI% :%ҰAtQ}ðf`_wj@b i< !]i3.a3hֆ?"\Ш8AgZ2ﴣNFN^-`0Ƽ/\iR71sr:-H *-]\m@7csz>_GRռȼMнܜ4T~jc'66)|6u$sD0/ǿ7Cߣ_+ *n;bBr$a:PT$ &4Uc}nC船hr4_*KmN6pnjЦ=9SqouoWjG7zBjv8lVq {_v&Vh3dd'8UY~7:D$61f%ek>ɠIwyN%2ذO l5' zijEf&p +M5cmjZz=)uYc_s!{ZӇN#MӊUH~jc6V 짖5MVV+} K '+I?ݷZ=^VVD'^2 gcIOJIW%! +q>du3K7^'(S?Z[p&m\V$u_CW_RVȿi[k)ȵFi{3QNt\V!'w hDDWETYB=?KM7|ɪ +xSB]/kjCYy,dlNReGhRJGOMpCm1 ړGdB5ns›6mw`@!O2w-ERև.ٶBYIWX Rj'*3RC,liHuԊJxa GP׋(D7[)OWU83d 'A1L7J3]z& {.x{H[@y9 +I g;eRyfP/Zn=>@bOݾ0cpcSO[i9aq1V Z+7A >GyT[u.Mai1ҺbkTM氼ëp.+HR#X8W(_,|SS2D38;`7_@b#1%abpIxB3#$Bo%01*\*<"΂+?= {YbY,%?=aؙG6Fs:eY0}3Zz0YkdK L<-vJ1m>&唰vи4&)#L4w ^FOfP0t6ްhwl +y ne-o:X'"(d0tj$FaD#LN!]k2O'inip7DS0=Z(bX,jlɗ0|!'?TV[RLuᮔ+fmVlJuP!6v',!M@`۶'}}dޙwd=X0M=} Ťo3RL[BDQ\M42ȘEfL jGPBԺag:U'8q%$ + dOzwნ8Wd"Ox/U;lSg/E2[2GW^#J_MF\Nxg%7C^֩ z<cQru>duu ͠nۑJ6" +Ϛ-£_=*ک9y:+rPſӊ`/nc+ S0jQBC,e 5κp ̃܏Kz -Jlr fl-UV#3ILXE1,Rr l<ejҁ0N*2TsB:QxKKQSq#Kldִ +O:yE,CCIR_bl2<8׳eE`y8'vϱg$D ы>0φ6(*f$%l]DŽFV2'O#U9tc\@>RgjϞ jNv߿! ,,~޺qa~_GxwuEFa^r\T2DEwHf6qb +RK9skbkL2~E'X 3$ifA/L͜qwXU6ڝXsQh'wW%7wuLJ&p ryL*uvV4 NgKfɊݤiL uă )#[{ѿ.M%c,DƆ +w6AiF@N7yD "- '\c*?^mӭ2kqH­33lxArAfdo0Z֞HspF׌=b Y:bur_Zeme̐4ɞu ["7rWs+wyAK6/T&D,XД)bLӳŒ6(b!LX{s3٨%n`@6 p[.!4NWa=LqZ+;aapwFԧ@Q1i AsU}}C7awb(0K)sfQH5HîDoے;$Y l bEb_(*Chp\:q&"\4ͰQո9-q XMI +Iw!l~Tb7[b9.B;4\xXĝ 'KwK wZ_Bt~8˞_5#eTaDhד+( +Im=z/.# +\B% {Iڥ UC4%gZM&Z[}crE VDysC>G$ru9/o#.hq[2]]`́j4=h.Dw+D]&V̦̠3ȘkE[/G==-si6n7~{ww, v4M!?x[A_.#*eŬܕK>`ѠM͔H~ s;. (U2dљjd]{kzN†7yO,f3VfJ1Զ4JmYLm񳬡a۸Zh~my<$U]|nE_3lm +#ղfe2-K'R[)neKc}YXJl`KOYYNyK2č'݌vZ_ ;%@;o=_hyxorKiqXrzxUۚ ̰ i`_ !\qE\yb)l?QbJ8Фmå}GxD[~]bې +b։)^K6GřĈ֍ib2#˭},Sia2ɗZNiWJ.!)n]=م޿>0ZԀیcO|?|/JpO0y9V55Q.P9iAAxGoG_P7ý{z(҉Bg)t f\ >g +_^r-qtyg_|.`ӶW*_9Eҷ^PMȹv<&)!CT ] Z2=iQ-.ʂH> )KfMb?bר{y/-~feN?%B2V'f'IL\_.bilG"ol[ָ,Ynniujy|3F|kMi.:R^'vl(7`ܱ>Kz8 `1,(7Q`\\֛/}6@(7,XƑ o4̗p]$.!njӝRjp0.]?4DV,hQP>ZB/ ;[l'ЏGd>)ppЏ %ѐO,V [v==_Ѧ_C|}`>ބ{7Ѹߔׁ7%;?R^&VRf Jū BG*UGpU+)C'Du+5f|@.i +UcqZ-"-R)硅{ノ) qʔ8F5;髑t;&Sam lSV%qQoOUHTFƕ,<%Vs˫ӔwT+hp2#*ON-ÊTڂ*Du,aZOFS%j+͍$zR)TDAYq7Z +2 *# 3ArN +1~n֦l?X *uAV/ɷPG# o-J\:9SÊf]Ɖ3m\ 4/ z+쓦)lĈEey(B{P&Szo<Uә G7fp6e&x\3ݵAnjyJ^^y1EdڻdE AƎD.oއ6VryUr`J/w~9Ғ91MMXcP3L3 3M#5UEVb[z #nq!]Aе,"CRYe6<{ZP_;hiAqWX2ڎӃսm..e4QV)U5g$H 6h8rqSt$~VgG;x\_i%uCL-wsO\E}J.VC0?]pL95NCY&l3X&cP=+B۸0%\Kc^ˮSU^םKz4Jd0M?q8u +)y&[6N1 +Z0mR%GWZ:s(r$+Eu m#JsƥG뗁f{EsmO +q8ܧ+`B }%.c> 6+zlsS;| #Sg8$4f(Kץȼޟ +wn}\]tg ,/3_IVsrǡC0e< W]g3Bvc<٨5x!#Oy(cr<8%Fz ]T%ډ<צf\-nGOG5~_HWAǃ"p5K%޿0q7G*rKcKU85pܶ޳#ۇyLo)u M>3}t5; Sym:b-8lnu7Dy$٪`0{| +QUgaAİiϰqwpbL8F V>Qh҄U*OE[^J\#H%m%qU{]lB>џS'{pzt? %tFqoQpU5Ioȝ݉+6 7;SP]A ]Vz$zҲ PՇEw3?:rZĨ3dvDev#w aoG0n3: "㏃^v}?9Å XWݕی6m`6Gb#pUa_L| +Ŧg0Ed4Z> Oi1!a|i}GiΝslwMwCO q,Ґk):1])/ܜ/zsx} <ݒz7c ;'ISl~BgYo^\8lJ] -#;C` st+,Lw[[)2TA׺(d땪@7_um m-S*˞爾_|jkJFӅ7.rzV)T`KrǕUT$tZlKl ^-{aȈe%HURź`D 3rӹtW V*]*|yA{Qluy8ƫٷMd ۋ\*C v;6Acf֨-̠Y˱-~떊w$O(w;`\>v-89DpájJPgJwŎ2w:b-e)KFism:gn| XR].YWh\ +v۹{Qe 4͑9ڞ7CµЭ3cArCt21OJS'֒JGO=V5XQ:ߍ|* FOOɗ 퀇ڥ\LW/";C˥]4s;LֻUmKoQ>X"#ll>)wh#x*l+C"㇤zQU$W٤>܌S3Y9Lwz!Jմ-p,sjp\hwԟ 9~u%Te6udJZ0KaI0eͭ}gھKK^D13G:E, ʄ*UKUK5'' +v*N!jW?б+7c9R̈́ 3\m;5|&=aZ|G˪hҲ)oKpf乳$[ $iQ֒TBhpu'!p{BfAtGvy~L0kl{#/Z6i8,6aH'zRh`Hyo_ G>}e߰O+0{lfp ++J",zi"HԜN8cpat4NY3n3obL' 땨tp|Qѧwn{쩂h)8dB>NRЀu}WyZ[&$Bըi +i +tkޠ}w X{Zet |ԌT]/tY~#=A`zAA3@Y4#}>@ @)&.Mg5hVux>am?=Ω PcN# +|/*qj8j5XDt=BjXg"&ErV$Z~$X~Ta (=l0<5/ɪ]Y0b {3ISDI3FI5?R$f U@R $&R)%#q/A\AS:͗+-J?? 4Xm-ѦCвL6%bKFgY,@H >/ЫMf}STYҲPi4O:3&WG?*Ls\!.AvLP١E`H*z? )1Ph|]s׿^e;ϴNU҂uCB>0r̔G@*yӲ::ٍ;}} Eˏ9/nL$Vub!Ҿ R_on~6BWe ̠Fwn 5kӼRY<К3XrI1kʬmW5vCD0wm +m04[PK!G3-R@o&u +vx"3;4OJ 8 :u|@~nx4w7:;<6^u>&za.^ Bg4N"n/ "k mOT>2 bn=e:( .85u=_793Ay9bkz>ZcTU +#[5;Sҁ [́"/q%3^-}O~^_S9DZނ<> __[wÍfn] 8phnǢpS%n$l8OD0B/2xP줢_ZIiR|3eh8 }GdKF\wz0u(66ڔTd:1XD{jL[mNSv ՌSN!Y#֙@]c7F[omknRnr6痤c,ވ-B~WJľib'b8Pۜ98!@><'Bz@(A!ZL啪J馲VtfGe쓰I0p wDubgx5Fb::@C1),>庀!g_?fd|T.T{$O pos>/"|ukdX$p}@C {]fġ[)FExXny 7CM{쇋N΋OEJ"wnA蹻KG(VءWX>Q_b^onp=9ᝈ4+<ǐFiLn!(kwUp %HLeOy]f?[ɖPG\+cW}ƅ8Pژ9 ]INGFӞ2Zؐm]<:G +5kph!6uA]ȽBtNy)JnʸA]z),RULP#?eIB(c]<.(Cl6QY=opc&ݸcx8yt;&7J~ kXR9GKgƝ[֐K6[Ą@MF+b\Q!ӂ*=q!B#8pú~'$D'uBH9 \/o0)C85}u}fk$\skIpʰs J S~临7>71Nozp|5ڻRgdP|D}1&yE8ƝcRiBk +)S ""jE?Fx dAM535&nm0 HskYLqr s V#L#KEvEN͌~iq1YUˍecrz*4EIHg|pU|^:Jo~{jh *z-C1ؔ=!ᨁ1F)sQΆژ<ńqN GҊ^zמj-d&ޚֈ6(ٺFk0U>zn &gd´ޔ6+g70jbP +=#HyITl4مbē|q!xtB{gy1)=/Yc TR%8Տ8b7-:`|y0ޅ ĥAgi3eTzI쉄GPc ǜ¾c s 7.p*p%}@~kQxRrnG@݅wՀ64,s5z>A  _. +TOҌ ԌA ,'5_ +dnd8Y +*GͷشOkg-yKnݒS*^B2[YlS"ؓ HL#ǶS3ҶwtݼޙQGoQUGoEMד39(NʢЂsע?vӧ`Դi"ǁi8WэslauS̑ca[w5ȺS$hް Kݜx; +pm8U 8!NхL_"\8ȟK#`|Hχ*:-;..˨ ߞˡOnFZo޳:qWP, R=4r"KuᇢfjV:NjϪeXrYu͝Nv ,wS̺|lU?HK:tSi.4E:% s XOAAoBOqeX|3rزoY˾geI`0af'IvmDRʒR +VE +IlyGe~s|3-U1dx] 5TfX>^3|-TTosZ}vI٧kp!#YqGUx "!׺RGCROޙb6bb:_10j).TccrCQu"R)3=O񲚴}ߨux3U|orka~9qLa;XͲ^o/f/ٵ<Ey +ܦw%n$tZu>[Sn,˘#:}年u]Q_In4{\_ƹӃ`VXQɯ;Ƽ[h}f䴬sLmON7jқ"K68вSȜyQi6PR(Ea+璧LڻtRLul]+\?&r9+*eO1T [8a>"2d̵w&iSz(ee֫GZi}}+(!fX bqow뺟 75`žv6Ʉ,jOs^9uN(`X\SqG걪y{n6h8\> [HUf;ya| M[ ]U6-߲|QF(ެVaMa3͆wƘ9CKƁf ;=Ďr ԗ-oE~UK_ɺWNp妟.ؠGn&4:T~[O7ynnrގ|X-y_c$o{zqYqqp,GUNn{ޚZV?"̷o8x#2~jL%ǿ;%,Yʨ*sSvF۟MLiDV+"`1nu].gLDo <+ͷȔUH,Uyʄ{|qkeWJ9zyskio{wq`W| q43wVN H\n 'jnIH}8%y\DCdQc~7 M{^ƈAV*ȥO;$jzet@\IMƟC\}m~/XRWe+i;|] +Rzz`z^ :*9VT %js#Ьa{q[,X0uG_ڸ;uƆl](6\Rz۔{6ZNU("DtnNV*W'ބԞ.$29U5 +joR*lxWaf[nWGqӃL>Ԋܩx)A{rzaWhKWw}8Ibq}=s.pO<\{fʗEr;!˫UdW._2$f7rd?¼"ѷ6)6ʒH;֩LWc9q{IEYNaض}w6Q}x{^bwb[k!\iy1ݬل~]|d'wK;KLkC8/ӌ,_ qtyiJʹi،wyU"$o}x׉,kIKm:ax}"GdǛ-R}<1wto'}䦑ʣ1BVy-S +M.J؛HWaK,wTzL';^K78d}N+gCV/ Xu]"<|Q7ۆK}kì w+}y}@w~Ѣ^7I\rHNIڌ3uxlUύӯ_+?vPI `q,AƯ28I6{˜]O*?`tqՖ+oy_{CvFƢOSM?G㛩,i LLIEoў})PQv˜ƶFJC/w0txoqbL)OE肻~ܞъ7&w;/7b +:D˶_qL}amrºfx FlB{Lqc]NY%'ѥ-4\RLTv4?#隚*֠O:ȥ4VT0_޲ﶵʡ n᎖hnii3.GW_zta2<^5GRWvuϷo~T+g# Vٻt9˛M֓o*2E^:"Oj#fԱم᯵tҍؖ8i6]Pk쒕}U~xZ̶ÛYXRYݝ|3Ӝ^Y)I\dBm̧KQǸ{nWikU Q%e˙RQ[M#>9,,|bwNv30>Qun߱=̫'{/$r Caz_ηkR>z=NrPb&dQL6xFkcsltІ laaY~Sө4復-97aUVa<67Fkx58kk6mƏEUt8O.y·'q7u0㊒+6zJ ~|rT-`YNHfM ]Hؙ3M#ٵ9;b%o,><0pj'O\SM%MJNM능3NůE jLL}߱+;ttРőwS'u>bB+z~}y){I  ;ê5 o>XF>^>_oʡRIr8B-Μj/h&PSwO/qz]#?|hiV"Z!y]k&m)._¡Ӝ7RJ_tU\@|HۛgO`i%pk?!K,N0׎:zDh-cB6|S=!O+& 8߅m+oJK?RS75>Ĉ6WLeA]d#Y5MRɁGmai3 Og __F`Ȉqz ɋ&1F <4c?m~0t`wm@P&ss~w/OҿxV&S.6ayNq+VǖJؘ05fS]مʿQm|U/PXf*_VۓFWRQC)؝l85~DɣBe9ZBKŔˤ:߯;I槧A@{;G;vM}ݵ63ξQ$O@k 1AWho>ۭ@uX{V/У-Cst; v6j|j~=oc%+aw. >1ҵӵ_r cfIb􄻭A'ZMq.\g|.W(2<29Y7'谴cBoƷs=6Mkp$=5Sܨ_G%6d%MɊJ[Ms +rW(1l}?wuxpFǽX3å"-T#OGd}|iўbS΀R90C(j=WqL6叅^f6펖 `w8xZ],2N]S+6"Sߋ_nϞ9+аhcMz` EI쥇grxvQ_Kkgջz; gϜ:l,Ň (6m-0@N:̩@HfKz|O Nj8M(zYg遨8zFp87yY2|8 4q=q*MmDZ(> 3jaB/U!|e `yRB'eUI3%֦[_ʔc.mmwCϪ~ڮUH^_*g\u~$;U3T1-sy5!W;{J_9DpެbOӣzXg^WW:칽g2* :h؊艢^NX$+)`\ak +!=}[ 咇Mڐ]?_78{TQ;(s:.e7bn7ӠҔz z}9MۦuF2Z7j}GnUQ[Lc70jō9]WTλ5Gn +lL@X)F e+1|d9eZj\![pٯFa Lt43I)Q]cFM) CQB]DMSwQt+>\U?x 猡n}Io~?+cGX7Sh(ϳyըGPԲ7I+r jӖXV[BL_,Q9ȨihB0Vq-K^tt&>BgdGh⓻a%JpgP;{ef)iPa+03xHp{,xXYvW ib_ >k?$]G,GDλI,0uO&cW& 5 9\C=o9}<`Ek lH4/;<L])D +lBqŷ߶Y) 5V*0EYA5:Ie4_}4%sPV\đz, + o3 +yX74]51}o~ sƄoäR)]Wa/$\z)mA`8$eA}Zx`#j4KD!jO/А;q8aS}8r ckxCcG?Ӏn@@yDCӹ~>ŏ>*|um>ာAGn&IݜWHx#pG΅Ź6 I,}wuIvRh .Sov^vY%Ӝm2 o&M7:]yDr'fqlrՓDqI<λ|E ` U^Hް\zܵw,= 0C#:ld!&Sڷ~'If_R"x=jf.u9w≟nξsCb0k2"?oXD3VWz}+9`-؀v ر{ +kQ勒+Ѽ;랧G+OGuN@ cC:tf]t̔ʦ{kNa!3XKjٟK}Y1CNjŲgˇw9Y[ @''n)z|IVS'&/'g6Śi +S.%J:5Wc?3β9Mdɽ3$u݂ +Qh,lp䇘_om 3ilŽ8 +2Hp̘ e,"UzwU#fGftk)o㤍fuOT-jO9q_ 7/yt^ +9<39iùq3`>J9Whcejn)^ݡVZMdYIʔ{+0 ?r#BЅn׽yiMMUm]U͡]d +\6jFϮknnPp Xŭ;[%.,ou=zM_}Ns=hfY䐑QG?1&uaF|]=od0".Ĉ5 ]KS#C;{i ?q+x`p?':@fo}7QxJZ-Foe+ˎY|x2Ad:WO dy`F|]no~mU 1kgaom ~-0^=v'cr1S$ S[VJv^d  Pڸu6$ |Wv ܭN{WkSU:]dh ^>@X3fb7 AtT\qWjɳsx7Mkzāg\ϬM<D!M>v.A8Qfy)8_h3[A߰`1-8tBzC&$;4[HFX 8)Zv0#qN `AA@ ӼBh#^ҡp,ǗGq\{v3Az4"*8AhG @ppbňU2tXt*!BRw + h'D0AS #.C*&J*oJd]@ȝx11XB/GpD4R~S4Vb=\+o 1/fV*TZA٥Hcᶈ ƆQ(}0 +@oo@;DD{rvardh׺ '$A [Mп^6 ZxբYt@-%H q$SwX>a:TrH;MA7N2RyU C?DHI2Ag"Zv7=`s"|}^H4Z,d^yd,E6Ύr1pW+_\ЂΧb\uj2k]R wq$##Q0ʓxx%.zM:zɫ,| T&#b &}5T5:Iw W'dQ"441pwӳdR.@"rQ& 38$u]U +9E|rE\},ZeL^]GxBU1SԆV&6Qہ=A"䓇yJG&yM CgS#ck/tqH\-yCƇ^&$ȹoY^B"S !E[%,iE{454J"*>DSl5^JXF"C3D,\7A"[n$Qy̵h{ +|vt2Gy"o;l@&*$T4,dSio5f fC6lDuߤ+׬Fa +7O?@6Hb">v8$BȤ(֥1 "5ȼHR$$ڽf4J^wMaW2Nw6L6qc{yDS vнe@|:=1-CBy`c#yxP0.ڇ0b{B\Ϣ|,8_Hز0;oƵ H@bK5p0Wno'A 46ʳmc0*ɖ (VH=%ҕoFM ܉Jl2#9v=aʻKAuۑ/fd/i +HAb.40JuQMwP_-#goI0 Llp>H_CO*eM 1*]x +ٜa["Oү$>AHNeȣ~tBi\X#` 8D +ш^Hj M$;t03/x+1xb|(bWwϰ2D!>&Le+d W58]^1$ =u + C.mY'8Dgx0;nYSj ]}Յz-Τ +^[z\͝]@W)hc8)eg! +4Uq +BQg-88 P`;};֭$!WP_#zF9#f%?3 "#9% R %j53M543HÅ!VD8be $*N6M4by) .o#ːB27&msR󲤐sNg Bwl$C]۰Q23R$jr3/`v lp9@A֤D +[ +I ֔D>`ln@DHCe@5Il^Rln:@.Al8/{7YuB`LD7d`:A )zp#]+g_xÎ"4DW_+IY " AT4 ?>2LFFÊ᧸='׆ [~*@a2if0zE! Y4D._HYzG4@{#Vcx {+>S84">64cB)|f ɂ'X,V +cB*IL +H,w|[a^y,d?עbo8Lꕓ#)sD逶%[y` (jM  L U'Vfg6hWg*Ywb5%%LSÃDZ3̆ 0X?ʁaZ;ϻnBm^/CFH?D ʟla:(Wʁ?ݿf˵UAomIrWJo"KZMHsI_GL& |@ـOS2j^5C :}΋B*ŹZK%p +z|W53{а?X DC: kPцSU_9h"^R3Z9 °[6Go 8ehAd +If[JZZ[=#b|@KU&GrT8g׶OHVlaȯn~ `s@meP}E\xTP$^/''fU9 @lW3ЧX kkZ!qZPf d=@AЮh7J+)<ft bD`)'5 +0͝Oݽy\ZE3@ݫc_^u&`-E^.f~[ʕSCǮeoA"d@z'CF/A,~xPHXFX˔{9h3'M+Z>ã{ZkzH/>OK4f10YE FT8Eze b-(}{#`VkuryZ ZjdD!5qP>Ƌ@|!Qw $6&@wu5ի2Q4GP+$B4Q5gbA,( @BҚR8홤[ٞ$ bwqҥ^YN@7{ l?ȼ<DfLG{VZ襝$.tʕ%*ڃoHSͫ9jkoӠ)|'Tbb).ba0JCI*t0JNZ7tIIWP\~@&t]UͧA0\y(EŚa@>O'9 x~V=qV UnEқ`ްejWe*nY,?:P9t;5qVRIMϹ59Ǟ۬3N й[/d__,t0qexPX&hқ`DD+*b4*(D怃 +5chQ1FKbbCkb H,1{́{S۝mFqQrvtbGtgfn5W ZmDڰQmz=q%_oE*FEqbb`9FOou F]6@yo 6~ł_zl/7-mRCR#o'uCh-ȁ 57FGSaj3ՒdьT67I2=i'D>$KKV\/(`2eg'fp7y5w(^ߨ9n<=ȵ^ei Kr,9ѳg3rn3\Vkҩi{. rކň{OC4z]p*o'z_ǪgPCYl}ke d},~ʳvPI8)UXCHn#OG2+4GԤjGlaQ|ֽVVca_Gl1@֫×pO֤5y꽿r4\fyhN٭kSJa#}&-jAЦR`'RJzׂ8PrH6JWZ$-o4w7Jk4mN}={l-ȄvC%~q 6)u8DvWZ(m@o:JkD7s_ym M sdizi)p.?g,lzdB֗>o0Oɜ\bt9x&Oz}ZE7Ж!udS n 1(v s*\vϜƐfEh#U!-[\ɝCheѽަ-"Q_ L'ڐ/%83Hkqĉl,Ij6.8s]dqũ5xž.ELXu,E5p`X0eŰ\Av\]*%\ß>#ӈK|973{YLay( 9yY$*.)ves';>˕T1)\fE#agvE 7*?mEN.*" aƤ(1"cB$~Α寿E-*fp97^IGiݯ~%(,#hNr +d$<.Vt"11y>T*/z&-W7裆KE7 ! }$ =^[+b%mKbd{GFaz.%h5BTxYOviǧrh~y} ]ZR2x>Xd&JTtHnsBٟwAB-H;_M%W6[޺Zv4s~XÃRu1H)lοq!YۺmwL|"wRjJy8;= ;kBFR E4tkNE SփFqQ7phxekR|<7*u)5 %W2$XhA lJ"1F-[IA7&/\l.4dd>"$7)UY$t2%/N2<3u&Ee4 `rʢ+_ĥxś#w!)y繱%m ZE]Q ZLT˖!q%Z&X",$\,vRFlr(Җ/,Q/wL1g#{Q!bp(pBZE7iQ](7_6 q(͆GU2Q~`F| 2XWTU%|mdC[&';#-RFoxjEH9ߵqnhd-^R? TI#}<,{TN 7b[UPLIä$wiD.nq'/GU6cûigS'1q+rېz,˘'Mzܼ0:+Q8uY =i?;Z%ra-aWR j(!uzE|Q 3'4|OBKoρNۑFD/_}yKt>LvdB)Eg36ziCvvcji5aMܠdN*YdD qa}Y~(-=~W j~S;᩾sdu d~N|sĺaVj, Kg#nnwOeoI,<6:k_Ku\=!eOazs`oDjeH<ʯ,~Ϝ$JYdnVhŜVnj#L|_gI&'աV袲R lbIF%A-&ѫ2w޳"ӛO"csRxr77n MG'JHnW9rNr%\=~&yd[', KHvlUuxZ*W-hN)pZo .wy H"[0ā9R5ᜓ)J-kYU08gv&ȢJR$+tbU)dvq;oWYr|Fa|WW`TyZn,d!qbJ|qNk=|Yh{MbXtѧ0`vrfQTðEhvWҊvu'2(X_ }}hEH=q,ŻfP8[rd"3B,YZkddgs-G? W/?ćF &z\gFR~BƦ SjRhqpV0l?@jƂ0ɿ"=3'w&`"Y*z#2u`x9%.X@HX}R훾R;ZmC ̮TtcCS{T'ϞB= 2ir>KRdzR*J0X<jњ՘T EPVBե)4K`@m+@t73-wMItH.7wÍhگ@{ѵa'Xc}Q +~{? mp qO˳TC bAN) 7VG\swRpcCqrp&(Ŕ:$Hn4M: qƭ| 1 + + Z.e |K$ƆRn}p.H>+$ƅ Xչh-GϏ{bؕ KnFv?c&*>O5ca-aF(u*O')tqSN"_`A;1GdO-n;`=tޯrM@:bN5{i:0u I. SԎ܍[*kF.>u>eV,'t^g7/4yO_i8 w\gtGobdB3;aj;[1w7eôg{Gg; XsBq{sz:i.,l4#Q=yYG fl~,xezNHa>4sic `Nf2>q1h1+0pH +d[] MKIxȞS3tcPV3GYx/Z9> +Ga60 n>)& 2)Õy4u2(IE&-XeM#A?.>OKw2ٽIKLbwLh3w Bco\/>kE^#b(E-)n=p!qv>rI9zܖ$ANN?9Gh7ad8x!w[´ûiW?u 1'>9j*fLc/; D2om: +Hے֗-XƸ$F1"eeAm ά2,.G_tbjYgs,ҌL%탶VugYc"LNIG[lR}fywo BF <(/qk%Y Jc};#lM,NaTVh-Č쫛f4z'|hcGd:uMzaێ\sIC +l}1)4ħs!KCUkhɸiIiH.Ag7%W}ՙ̃&<w *qQ~s_04'c` h Ƽ~2qKם) m K*{1yTb6Գ–\xFQcLK1C9rˋ߂)J`[c ybouW yDDL *f_v{r4uvAMQ&$BJ}|`Jb5V%88bW!\L ZfCVmfZQbhKjQ*m&xqMwvϞ={vܮ`ކPZ%7t#-—Ҋ@!lyN9/%tF tşE)D9[ݰЂqu(-&X7+j ҜXsmShAs} -z VӎVC +z)zOWzmP:߅Ԓ?\=+v;\أ"\ 6ä5HaK=vxu;bɰLHEVo+\KbMU^(j*wh**?kkD}"4{' W#UDCGg3MN*#|^Ŝ % S0zK@|Ty sq"QpWō6gUkt|7Yt7J $-VIo9lD\Z6JQ2|ռbÁl37D,zhw`.m":FD5GH~ngcEJ-PJ!uBL,VWY( o="*ЦWCT2#M_|?3פSAN.@xf̟en*Gt~E2"?/G H*Oȱ!ȇ=KRe܆U% n F9)>@@4T2zAkMT<_Vj4d(g3M*zĆ3?2=a8gS jB75-PF船/,(pz J5n'S]KKT;}SDDhQ&Y5!n~Tcu.ɣm;T.7x > 1Cpc#" ꦩQGOX] ]_B%+^_8|)V +nĨw1B}8yXq0Tri8eqrY&)%OEI{5񙝊V>{ЄX%S9劜X7㞹#%5P8U/gf̜idt CВPogHȭYPKbM5W jre/lib/ext/clibwrapper_jiio.jarUT /E/EUx +5ϓ. +oݶm۶m۶m۶m۶mϜs|s97Zݫ3WGœTVGU02?_ &Q-!"TFed%DEieDCxE^I얅+X]*ץ<ӞMa?ng8^S&L`BwQ⣀V3=){4d&7. ޞE,V qNb,I.S6'/IeB$/BBR dJt΁R;3W7RGKwߺe idgCN.1100/čMdiaaGGh +:9:;Y89b Xa_SE4l4o'RDEA0:_#c8;9yfu,~? ~-ސQ[+p +"Yڷ+piT: F<0*qg9( ktXWZV3HOZ_*c77Yкqtl75J=V@e$>' +Ί!iCzf[0 +ŎZu"^ldo1c^72b&vB /ЧMP!kM +RӿXSsLa8#zX 0bdcO)"^U+/C-5NL5^/]F PuW1oYEϦӣQų +??m&"\fo‰zJXs0 45mj#ղt@ʼOjGwtN +w!WLXБO5`A7Z~{َ<*cҧT&VO5|,8q}\PXϞ'`r@j$pm(gՁ:g~Sa{MmH>==+*y{' Ζ؍Ͳ-qgש̷OeBٍ>(O2&~Jx@CmZ-IfRձL8ij{s\FR!sꑪ}$v -y f8 ~jOW/]1Wa2bPN]b#,-p-N.qԻm@/MwS7a9K{Mb/Jߚ<_TyTy_N̿ ̻GdI?r +>3j"+КԚؙynAFQ+$Iei)0+$t,͈}Q8ǾJQ"|)奈Ny3]q*x _W߻{m?1/8} myD??q;}>v- +}~|E|  }<|?>kIof`U-~CdyڪA!6K.!Gš2Fe\&]26D>Ez/b|LRŝr6^s油Bc2Mmc5RcEQWO{p?n'@+ѠL4I}~@qƠn{VMu=P$ʀuiQVe)WbCV)[lֻ϶a;UuY[XV |f~*7敳{ s;A r'ʹ">5V5!(څl[I'%Pb׵p6> +7&RLKuOwu,6GLZSu/o~|ez)r=u43<3zǐzCBI{IdV=siܷ%dXQȹ猶(\`kb`c!$HZ@X?|&Y-L3XH;#}<Ɩ##9LqD~$˂t ǮRp-Xʕ +NcSl2m M+j Ųj|TS[b8jU7|^J<=:K6/3ڮz[ӹ/߳콎>o|3HN*x@RPpf fsBHV +J[lUa!Xs@#{l]NrB +Wv BADoP}譢gٝ%SnLD6e1i%̗fԽ|.òm(EJpA`3Ґ+a!ƅ`#粲)$miJ& u d Q H&NXegSL.vS0#N l H +w1 iJw!+1%}HʑګbXZ]8zg~îpK1ʵRW +22+[rRM-ɻքCHp, #FF;dr֙ E:Gn:[GᴖX(P֙efi@9Nq@og+GΨtGKiء[n{PoL)K9!Zgn]6h^Y"X4.w޲6 t7?l,4L}F^3~cV9E=+hєL>&hn3ݎO#`:e#<0fSg6<殠 @)=!+Ă .&ɟB-E>́ԟR D*X~dMr(j(Ɏj'FÃFVpFrx|"?~4X|T ܒ>.9hs 9X9p0$s?Z4Zkj3N`ߨ<]°T4n@iK7\GoU^'󄹪=DJsh;ep#qv|T$;MARew}0bl(2Y;،s,3A>qu>&,R8zr=H +R .勠Qy#!U0~R0- +!!eB{[n4W)]7Sv'PHDBQ6F[7vܠYB9V`CZ} D[tbB=!@6lrXYC}H3Z5*ģGnY&Ib/5?}w z!k۩bEⰘk\԰a1ԕXhQᴣ hhÇZ SN^ gKjo&ǖXjⲷr7 :湖b"Tz&$&NMa<ϓe3,KGtA1)N0cŊuUe'MbMdʃE0ZCbP{4qt"3xֱ&>A.c䛊{)7Y*}b.=1ް0__2`7i^}0=U{^#r!pIp%bBvaA D^Fjg٢ŗ +!aUP\>r7R+1ƚ5䋊 )t;oy(&*ƺiy PÒ>9a9t "1ϙ'Heh-ʝYCx}Zz9â-15PJܰpgSo +=0zUI0nmbxpAwfOAfft\svB84si603zB,^+ƐٚQQ /< &4"]d 2:-d*$CM]yAH9m:nFHISMY%O3 0OޖU!3T|soVhfcVu_ H_o!@6 91Gw#o.`sY%$ ZU9S~T{istU.^LXbnL ^pt%jVzsupƒCa += +wI~(*0z7UMEoxpA+{fC"bukLf|x.Dw)Lu4:%'o,FlV+zSGc<4_ՒU15F}bueCSk&f~P9%4I$o!@qQQWHcrBhie3ZBO5Z@J3Zʖ%~}x[:}lh2z7m톄(~8λmE@;4&z#MGiZvXPdu۽.#s]#ԩa{%"=yK q}cWqKvQ;T%/s l*G[gJwŖ]RA,Fh:O.MIx$[ ~$}*RmF_BUV0u.7,eaDm^S9'ɼQi{iм߾1iC Jo&*.kq%t&l_%%3.(FgGP{j_宀z:)!{[O/٣XJ#+w1s05Y[: ]RH T[1&hf#{:޹ot7Ln+`M(^'H:@!H9*<159{2oaHs~Ne %=]A!)!Y%;%gt;żQ bq9D?{ +s_oV !Po75)p,oEe Ɣ +j.eUCT7NCw]z>Pڵ gJ`n>1_0Y'+ǒ7 x4tTB%#\n y$@ +7[ Z(tt-G RhߢPЁH91oUˬ FAf2ڱT'pp^2oZcH&rtd_p#Cw%]37[?;[OCC9v5DE$OFą==G,b/$Mq$TWNDA a'irarZЇ_+b u6'R6.#%%NNe'b pP5T4cFO)NNLG3RtVW[_ t++lk:ݚ[pxDje#G!S8M>d(Z>[ZhUS'XlI6tZpМKK~mT==sA6F"&=g'61tx}[|@H C468~O`A-Pʇ< H*C}PEp4jg%E5a%`<;Ny=_Ӟ:'>S(sBPfЙCrm+qۯpVlݑ|y9^.ԣ-YcEt,#Py+>{;dv&e3 {oEf|N04Oh~ =otO,*X+•^r9hx؂pNԒ̾+* va?9qReɫwFrvjK|V i3KkVf5) "rѪ ,2@C.Ø8C*-c(Q}* Brr|W8$K0nKzIfDNez +Hu IM ͟ N8We/H_8t}J StnRTݩ%kIQ{:`}kThDW:o9vǘyGtpM=W|h؇ՃzW?Ĥg0 {Ogg[]3fX]'B}=rfexIJk{ +1`3 oo2MdFיvkiq\a~Q"H*s5`~z|j-DE*a. k,͖~:"zgKD̄ zu+m͕o3ZKΐG[F( p9z@9Oai +^5 G {}"Y6M4_2k}T3bx`M8e\>xJDr܅6y0SX߹2*ᅤalpɟt;&;ސ++{?CA $G%[ FE$)!'A@QDjiT' Yi>(lC#u*UQh5kR~9^}3@-?Cz= 7bDc'Js23^ S%Jf8%'H &J{vF3]Q|w%ї%5_E*u3[L/2(Ȟ1OǸD +C1 FP0'5J6afL6KPatha@Fa@Nq"FffAV:d$q0L\Cnv=*_d1 %1}p78VB`6e MmWtHКFL6R,ʵtd&d1fA}h0R)p4ʍk0UGF.6(RT !i$U0RjEƁ#q4D%JaJ!eDL~ƪ:2EAACoc4%fHQ$ȡ#j25%e7hS%bJJrjrɬ;b|=tlF L K Tef{`SrBm>=^c0a tnVN V#J5ң٩ +~g ȩeM%jODdžG0Gbhn;.+[c;8`;FIgES%Lw]sj'j̳ +3KhӃit7 d{sb(?FٙI^^#22װ7i33vs4ņIuYH,dvV"Xq8)e 9SpFI7uҴڪ2k,JO* Xd&s7Dw%fePcqfghD IZ qt&d_H))Tx;oMkNm +T橊jZR3ƌU8+ +t5lJ,'9N{~)G#c ָVlh᫠ETUY GZjڢ+qiYQA>K _H$YhaHk1SG% w/cI!lo1niPhbP톢I טJ˫A[y]m kTY㮓D[.UY/!ʭr2 K +ı;L:i`=  ko(/iK<2~p8d$燿upG}0ƭM -F '(n9LIf(fџCCu_sqb"OՕƨʴ&mTK#776t0N ê=tu@S<*ҵklyLI];cFe<,^4(mr^wh_+Ahwb]MO -:ޱޒ~4pUߙ2CO7VVSY3lĶ}%Ppp3cqvMpw_ɓgK<yMH2$RR&4瞞8tʏ&+ <7_nH>@pKrT0t6U/M2nYl%H`6TQi@-gc7F~]8ئ.(bѽ0kݢ.Vb ZPM$#bHЊGv0tLZO <mW](5NV5A l,;jf=0G ?/ȅQ'1+@C=wOTWc@8Fr(T!g|[Ŝ7(ܸdn`9j,kizP֠l3;b9@%$wUq:Vz:ȎŔ (o?/&-xnKgnA"G ?5׍Q\X&JP~t`G.!4q<|"Ah+\XYrVMQ^&2bWG(c5HmG3aVP,z>t(K[!ZEEzMᔱo*R9:I4Eqqjjkn dӧH6St\0MiA*=h;$^B;[![!FP!_=pJH5\]t.JAzMm]?J@vڂ\b &鼿#mU"LU۴~h|U:&YӨqQ *rHc5APeO]#B(MZXrA4Fpw[?]y[M#qO\|DymoZ(|bn <#trۑX=gj۱䬇 }nQa;봾1c#vwi#>Էc 0yawrQb JH}(fb"o9/ jr zӨnt$K6atk٦UqFۇ'EK:4)C; 59;X8,N/V &WAV #BV6:DJ!g.S~PҖ$rVT|?N,pV"I"(#dLlL^1k쭚Q0޲1'_skPqk8E +ԏV 5f֘H(LjDV5auS yCu$}pΗHohnYmgglf,poߵވ)~*,2;0Y2Y6*4!EVнU)uD e QM5jBdiBsD2tp@L2JǨC5nݛlRAj3xјBiu +^-L5ׄ0ZJ(Q%IzƘ<8oc|v__0ɜe1c^Q[i^nTjO$i~rWF(qI)h4`'щr9^\['<T,JMpaJa6|gA$k4<鉟-٪33yנd@'ʃB"P8k[\3VɊh]S0{VPFO:TG.eAhV3JβxZ $Kx`:&zDLQfąǹG#FB<'Ņ0%pD"A;u:cpU&O4VЉ˝ up"IC ϾjmjxJ;੕\XjU}C0*xCϐU:JyռQk+{G6"jzfSo~ȝuupQ]yR>bq |D+q¡ƕy͞]p[I';r0]':`IYl\-Im)k ,+)[J,6?GjŻ<\6bŎI7_,.,O]k+ `xi3nj:X@T +rEc,-YfW9i:4ZfK<VQP4ٖ͗X4.t4鶫Gij41a)%FdYeYg"5e2Z@(-lnݩ:N MYVŀB(5 #sE#Cx"c1rI9 >N4qy/MP=Q꾖rP B; 8sτ08xj1>8mFnF09~yTQ&ݬ(z!*HJ1MUJ(U~~!MܥM/ ~ = +*^[m]*ejbЋw`ZQZLw)TAe"e̦݇&ҒttבۀK>*B5HqD)k \44͋|9/ xq"}-Q_FYtqR|*ŮƭT4nV- [)函VB4d˖ܞ +z(5B+ th/&X]#tM}%0+s2׾Q26_ui +qDę-,I~ +mӂv9Nji@7ÓWIpvqnL[zqʾd2g^2w-׎a'?17%ߎ/H/4"KjU/6⬔3-኶aȞt>) [Zl>C k^!TՃf7@+E/۾BVh2iZWh^%'+7MtGB[A\/GQ+^Txk272auů a"%]o8zM_3Qe})̷݁ wA_Tkp!^Uf U\A#v;5Ш%LF +PK/AT~chA(;4۬HhB5rfB#(dus!D#ZF(`6 u遠Qu#"vC"h]#"lhaQ-zXvA}><4Bu횁FAQ>tϤrrjȔX.JKghgngDgFg($gNgKKzgRgX|NIyX$eSnգ in3փqiA#Z`>6 Y-vuKsf&7_w<ߌ2=k75{޷|'ӝ,c#V IA͞6liؤ ށj=S. w!&kCT*so*q%ZSSpn(q:5*n@sF;RUwjCG@}֤["mh!~l'v7Mu(;oRR^|̰\5?f9ӻw?=?& }Q&zR"Q| mj%R@S D+l@rAg1$Dm2ꍥ9NLUŴי +I3gGNʙ_ f,J:QDZV߱}xȦķAIsPq~m}*?*}{E9s4 YACҍ{}'l|çc.YJ2qv2/Rgfvn qܶ9hy//{ _p䰜ʶfϳ&na;5B#uovnnbm/[q'ٯO 7R1F0yFܩ5 vIE{FKVN0{~WL7+|^LU|W|q XeWVP7sæ>>JmfVm(3dmrr\uG׬RM(s)5dq!7vL߀:M1+mѨ뙩µLye ?} ^ +O!8k^zkBoTp(wssʺj%[_- z9X3لCW.WSˊ%B nǚ}Zp&dR4Ϊ&ʡL%fO˅x刨 +0OK8)*xMS3-\٪TzjʑaSE5f!E[_~NM%Z] S)}a[!hԢW &&XMsU?ʅ)a%quJ7)bu0EXkXߊld/2bȰE + t +n!+:5&wl]^,WZPL:\PGh1=v8IZOc! (]N0H"Nvɰ^埢ʎuաfɚf]mIY}a4݀7U홵QJP,AkK +I 뿮5k=ͺiͺnKt&k#=E,BWO-WUAϡ=`681^ 씕5F.6>O 9qZxQir)Wx)[e>5?%- +d)h]4gD+iHiŢ"/\)#ۛ o=kĖiF!͵J׳ +97Qbjkѡ]!Дu/%΋w6(^_DŽo[k;n: y6RskuIb\RK47\ O aN16.Qt0u.]`a ˀ7V%bҬ9;D͈KzÂ$>1DMG[ _ÅIH 0GLFϊFZeY6WQAv"CJBÏ_Lx+՞)HPޏ(F +P 2?|]^DjU'e,5-8sϗ7Dt:tI0 9E<͇iiRݛ82NIK +9.ʛvȾh/7ѥH_ay/k!;~o!8or{'Lmq\H^<y:<< + (ZH1B9R>\w"Ua|~r:d9qyp"T2"&4IE!DSEL.EaRmtbmtqokrbU-E]<`9qSrK#-GNb :|oR\}~/ZeqTa9y$arT0A E\}]??[rlE&Nuu,Ϩf +gUoiC !˺y&NT9eCGf7LL5;LfvEu/ '=fV|,{Kfzp=l.C06hY,w?GcTrGeYfu+]|unQ8^lEZ{I{M~TtjydbS9Cg*d,_FVʬ6_4P>p1kY>h=~m[,t_f+=% +4P oqgYƠ:ES`<&=2DnGp=Vp)dJ&U韩o)T*" `1g9hOak]uqzH ]PlvՌ@9Nd@'PBK9 u$(;b)YNSh& 0 a0ћhٺ 6 (g<*[?! #BN֋PARλ(%^tg٥.1㦰ZjLzBaJ +QL5֖zkN + w!@Ж27)#ӎ6挣F6GՄZUsɛNYh OXM<ʘ~Z8EF^9,(ӅQA#2T3ۢCD7TP]lo/[cݑǻso`s%9uC- Ygвگa6qLNS|,2eLY"-4wOhOʤ7> ח@@ MQYWԩFk):TAU 4Cݕ4_4uf-vb55nl}噫9r)bxjݩapK;X5tyAe<~`&Y\D~aVЋ>a[V>}D[p)WAI]#2ů| +DE Ս?<=p*<Pcg [ +: *dX-h[pX"ns"L''V;gLy,^ Rܒ{|BY2)qA +mfaЎ3\4E( Ի;<:Fjm:%oH A0@TX>x?[{:F>&fo=͌bM=sCM_IG8t <Th Kxj"1 iMޒ,͌M|1uK/k"1&5qTh(L4BM85^S8D2qZhC8*1JaTL~h2Uge|Ч/*^"wjEyk0~|JmM`f;%Ig p ߖJȫJXǤw}~TWy_Vd}sMKBer*n,ad@+6J? hDv=Yk1 fw/80n$Ԃ=Wו0#٢rTݖ1<8zrqkSKݬD"*KU˺8\^k(mK[m{on#ADQz~]NVi2۠"C84(~,OK +J)G`X""e: +eӽL%Sr**ܻ_];׹2B'6C!q+wC=B`*~|)~t#%xG|P8c8F w-7:ʗ逌ŗt厊,&8a +K0 #3B֗0?9x^tcGFNI3Gќf88J|'ֹ KΓoK"..I#WcNF?:838kF4X1yк1V31sIZ+ ƘQOr}ʖ~\ĵcF1^G\i x%w9B\:2/G4=!#/x>i7&c=q- ZeTɤEc C +g&giMD'Ĥ ˎD}E8|΀Y1Htc +b?N΂)(U#UmŒpE0ѡm8)G0Rp)  -, _%]1M77u1ⷋŭ'clꎜzlߨraܹ[2iq/6}-9@pʼn5QA@8 bȣcؕAP؍a)ܠi ;whDrC>vw `/h*"nTwQԜN9)_mWGhZY%E\kHQ& lQ 4GtOZ@”U$eاI%e;8S##)(U뫵U Q3(` JVl;6!ND? #?詑Zu-> [v!b[nDiߖGՔ-$9vД|=،_1(cs2y)2qǑ["pIUշ+(:Dq9K:GF(gWV>?(aqpf&V52!FXNN o#$p`"G0VL5 :k@)1wT7ǢG+GOpg8}j噥ACeP̚ .> knG@[2aMv^}*r(mWcꀹmvǺ@|}l4ʾMXǐݶQ>k [AWKB!_o#‚v gSg +rG1½\#jekG$ +mUȵriɽmkͽxk K3o`Ф|G%*weʹ:/Q y7"R4+KF]OvojXc=A8__υ"v4g9^<23iN-u 7V^h9[[&3/ J[h_Dݞ cua6_Yj>Jmwjn^[B`ГKP >+f_ړ';Vp=/j3!-QrStiK'iyk\I1ؖmƘ':k\Y.blؙmC Tnl|Iї[W.ʘ'K|0WC.Svo x3hW:3$GpɊ3WHI7?mb;6?V8z'z L)ք' t-=w xQ/U!:X\Q0Jjq: lGcj-kֳIڟƘĚZ@Q̕+5hk,h:gXV?)3V$lݙI=\ZuIl,hÛ7iHw,]{uA+7#gZ\kě+oK/flE|AW2c*c1 [VR:H3@g8=ԀlT(S-+݉Qu1&aJ|IuazD2&Cb&q]DE꜍fds[ +$\ [0P KNMe@fnlXՈi911B(iؠAeՕ8DeP<fA>)džU12+dȥG`q3fWwIFBds2!b keÆ$3V~!lgy_@[PvYԙ|RC 冲FM JdǓfy|\uLbtr ؘ&ڵ;z /~KlOJM}n1d1(1"ĉc6]a(E:>Ѡ9FjdGU.8VN*;Njg:IMa5QY"Q@8)aB" jB"9r]C M +x^*%AhԂ~ N\hBi9<7^4g!VY7#Ѯ4R;q0:&;gpKM:eJ{&ky 5b*K)"_8v|[sllYB ))3/2Jm-/㰽৖^iXM s]uiynG-M;m7vݤzjo7fݤv0cWBW.j.r +Y:OkFzv:O5- iv`<(:Oizptjv쵘qGLCEai٫>OXoWNA<D^669 l¨1Oa{=a=[']NO֩ӵo\R=o7aVx3c!-KI'ƕ`}Wbvi)D`])s` %>a-:4|MWG]k}e'DF4Uo?O>ݑW0=@1yRo&t1 ='7;';ԗ! >'"4Q_wzubv;iP2P)0n*~+G#FPqv2xڰ2Xb$]GXl1q6 2D +GZGEW"ɠqGe\ڄE8|c ľ ?: !ޔrdzS~|L U%82INniXhΙf.ߡ7$J,uiN\vJؖMM?8wugӕM-<T+ij5fy,g\lE R ZGB4؏CyxJAEFJsa{:,"0_{Ix\C2-˸ 4? $QP.=чu/iaŰN~~ MUOcSE;—B oΟUT H9pRdSb9kɷscfJkuͿ$livW ˟u@*%~XyUS?XqŅLC(Ab Oyn Ok}#xnF|b|(jj˕j&Ֆ*U+ :C,Cw)|;/b+mQc#ł4K+/f,Aժa -eJ5dIĞ)Q˘rvJgKj˦%B~s%+Nji:X`X X\Qm&dȞtԼU֎:'/rK +vA_snhBd`}І^z;1.8;( e7ZUjVIVs$bw?}}WbH{ģ0$&2v5T+k+P~uΕ- {-4Vpu!d-hE; Xg5ž@Gj zLY]+Tw7OAg^UU l&6{>K@M|M&,Ygk,?cuUԋ=v'o9;!kԽ%;Zf6wzei.gBѱ[vE:{IQqDdpL&>s Uuδ(a"*#kN`N-3CVįuG;e-}1{Wİ?mG?@mΚ 3o9ŗYGKؗ}kn W*xB| `Yn658M"-PRu-S(+jZT-* +]6;͟Z87o[ -[ +]╭K 7[p"[IAԫS9P6hE<׶7R^57z^~g/75=qkdzjDyGt+VG6Љyo,DH @`hHG C'J]"8Øuq;⦴< IeP^9Ó3R#ls7>i }FVfqyoI3 ]]/yͯaq wi 'tw]Hu8)}9P o!>ktæparǮХB#{٨IB{)+_;I&]tc,Ӵ*V3bˁmWi:geV/Ss "Kv&E)t0 GY#-(\ס܋rQ778qלC{dAV "@iq6\_aSG%$5b+NsE=وe8 yTk3z,)d¥tBDXY80!+uÑ!P=ok*GmJ{PCmy -/'j*.KbXϪ.VS OFf؉X$?ceQ\¤TʹbFr)Y +%J}aI&"rzF:ꅂVW5|c12S5BSjty jDs B +71OЯ)KrrvBXb` Tz 6Ϩǻ8d}A)V' +:՚^E] [,/YY}_o|"!uP|Īo r(>Jy}sA4o-O̓/Hל3mWTCLxBRȴ ݭϛ@;Vf`Hݝ[y2&4%̏+:pvv$]mP{S(`|>'&+آ5DTW2BSCs3yZ$[R-ݸ+x9iˡҢkD۱r\|nF߮jaF8}]Lr\T!ay7Py+xDFA5 Z!GeE);GOcr@6Sr j0:_SWw!JǰAxOƓnz[{!*#5eJ-Ưw*E݃M@PкLl4 ڈě6zj$hH&uh!Y+KWw܁@g'RoH擓-4SoBhrpj42%jgb/M.:)N0 a(z]{ +$%\õ֡ȪHM×;4ѝ[{ Y#T"pAy"U&B[;Ȭ{&vkkt +Mu's?-7扳[{x7b $REc?Nŵ244P an@3:$ܽ=@t 1HC}W`'uҤց\j/na< 0z8"fӟAs*6jR͉;bd~=X>o(s5L__ ,^LyЊOU_*ҶR=Xz=hs!Y?׫О?h.}}{?h$$j@(V򈁟w{âH{#+ >I2DiȦM>)i5X풸y>}=㹋uWH}3=pp DA/g|fh4n^ȓa%6.a5x&@Ԍ1v4ZEmJEoDZkbm>@5/ߊAZ'~ v 26$kHf12Ϟe2| bH>\.?dÄ6]3?gyeA}gI}X~Dߠ~iMcMUØ*nS@xt^RJB}2{\7K_c}5>ZPsmW/9ϡȴ&Aˢz2ySbft)- \ /S{؇:S_Ǫ_GS/Eob6|)db|66m.:D6b],5,5C-K-spLf~]'ߝ\]n]D]<,iHЩ5i:ӌTi^Xx!/hIiܗ[^"#M GuX,8:6p|qS^ӭB}r=fبi)O5V 2>DgFRdي2nL$g>Džo/{؅/mȃrfJ6QCmehoZk?kF>:v$NOǦlVLsŊόھՉܾs⤟`M[O1 @_Ig$/?F`gEpw=36ԲSzB9C0q- a̓A3fs^_lCb/5ToV {] +yI6 HFW)W@zRIG)Z]DZlj,1&b/XuBB&a g}'Hԇ JSh\!8wQ1 +v V=U;:K ~~ v 4)S8< CU<:Nj22sla$bqhCȫȳXpL+[<=iKc $;]2^P*#c/AW@^ Q}g[hZ&oE* +E[D[Q)./lp(ro!o ەJdGXo񏊊8ӥ%2Vv6B:go2Npt_tklao +7L|Xqt{̚%)o\(9r|aA)j/ʏDV[fTWn&Ju_^rSkx}_ 7[iǨ%Z3J8f2EרP9%Vz Nlv R<l E%[$SK쓠fw1ja 8- ~c<6DWX-xT\&1e +t~[ȗXISs%rd>|gJ (cHIQ*Rf*|U\ZB`)a/ +,q=9jmmtruI{W:CX'+9ZK'L*/4ʏL퍻̔k Փ5i~BwiX{eϯ3\c !,hKM?r@B:(EO⺃g5DÂE2 +bYbK<tCrE &(JC:̬[oc7mMc۶m'ml۶m۶4v}w{߬vue<眭8B]ᙻ &|оX[$gn4t-y6C͵ACQz:zIZs +\8޷@jqǿ +XR`>    x|% +nX^>ivKIIm.X,Xn1(  '5~&9h҅2PHj;J2>NmgF'OLrܙ8s7݅rT l.\FRh}UAl#I ?n|JD{*0P@D)]SơEV[m)pڱCYdyM FZh&Z#~Tb!v~}BO@#,8bRZL){ +BdD`[ӮE4׮کK}N`:Prop +$֧ դ:]̄ݹ_r_w{ ɝCIL$իh\:Cȍn<5 ňr +t̕2Ȝȑ9꼀j?vQ6ߖiTT4m(ڑ?}/φW,j"?ʐ;|y $ +"mV#\ `Pܢ]~ihV)aےWbCQb)n}kV>%j[O_uZl2R|eվ6F(ۺ]Lj:XQq2L 5Ljb~],0ID-ZEmFwcgEo`Z(|jcUm? +|:ԇ>'Ղ4IvX'$C,eAz%'ݻO tb ~XGЉsYs_jH 3:X' +͛lyZ?޼ZBPwO]E. SA!+o +hA+4PHVSb<C5a;;W[EH(=ѐHFTD6m&K#(1/-݆mY{~aDKFJLC XnVc:/%grY"aP칊)@nuAA^yצeJt,HC~_yhJr<:2}ăH.Ho (;#o>Q% Y6i6xK,waI֨\C;IPtu7F3O^?[u%MBa~cw^dt&@=O ĒO gNbmyq9ח/#$ ߅)nNu`@ px RNa# mDșjX|"<;aýX4>Ѩ8,|j3twή-$}}''c+"-)'u7_OC>hNek SKn> +>h~9KeMz*nm=%=_4 zkIFL~Z uP&{xFxE yF4M>c~~IT "0cfiؤG|Ʃ/=jh(Hbν·hct +#RIa uN%gh$vsƟZIQ 7l(l[Ԑ +ϗ  0@h+^}j +|$dnmT|\_rJױQG솗QGsB( .4} ~lJCJ:bGOpzn7~v݁쏼*֐_/h'r,幖s@َl2;48/=Po>:0`(>]`{7 Šѧr$ <4= pK +^ %Ŭ5ek"6p#b/#u;sEgS7!H7עIquͫźyfѽɻ͊rMk1čQX3 _Ʃ)Jm\s'mؗy@srhPՅ!qFIi͕F7Sּ,jژrBXkT3RI욶mZiaQ (k& k[[QQb+[>5} +ҭw,v]"j#^ɱ"N:ؑT +V% ~3UO -/΀ +gB|*ҿzI To#Y.gH6]gw>ffy:faU a߱]4ӯ5{wQc( +9Y\ΉLBO0qЖ#̼h} ۿw>tbC5BԂxCpO^m} E`Ws +ʘ% +."f*cM[Vn/c7U ITg{n%-H?:>عg:(yYpL" DkQomArzEL^.Z]ܼ\;ttFHt:A1A¦55L ƀbkʈo.;:P{22 /7/Qβ7YK8wrƝ<Ĉ3^gl›7SD!q#=^3Ŝ+3ğۺ_ƅŇ& +x5̻"&ney>ҍ\m!0F*[!%m|;\:b碕YCPges##h!%7qVv&܅OFԈCXvRﺸ,rpCǙJ1[ PS㊠#PN^I,hYZj3 !+l6x)lnifQİ|\9yg/`x,B!1gZӛH7#yXDR,F۝me0^L#j:8msRg6z- ͋'~+ѓIB@ ;;B +d%+sWSI!GϚkXc9A_R)mS?zdpPݛD ZSXZX%v H2r{~HJ9*b~+/"VTc 3'BAP)# +1 +5;ſP,Tg ~A\j ELhh@lB~CauR %bc0A:D5v O?lN ?p9)fTʋbvGŢæ J$o~$2K%7j:<aD\ͩ6:]")H/)`S3dkmD_ x@.h&3 |~i=UԑgBjt!d/BDvm0![X-SVȧO[I:d*&*sdt}~iB1(ZwD:b5LUƊ:j[+};;Gig;ޡqob.cHO"FPX`'eOğlKA4f"h +YW U6g+t-]ԷIj_DqIFvڅéEjCV&XPX>yFvJ-C ^fYR0rV#GO!)%em|0-4r+9f-a!g1'YUZR\Hس`3S|]"Yԛ5HXr]~qf[W'`8jA5CI%78OQ*p|_N MNV^.` +J;& MW`E =w+L8W-+Ȇ.HM++n6#U> E:|^2m7h| +ۂ)u[XP@j͂%"nqJ 9 NL)ǫ/anǨV0mDŽ` ;OcK5b'En#ߣ`#`+`3TءHM+&xP + &yLJ҅؃ ns$s4GN#8fO8Nx@^irPqq#sbzgv鷯=?,ADi4c*U"ߊo*N]]6OX;c1)s)ȽP'7c*s]ioDb1 4WҁC,&_X{۬~ص@:^ io"YJ + UHZ<6aG5IΌ~}|u0"suğ,B) cPK!T :nږ2/Xa'Ž1%=q2#^oX|Ucc6risj{o 4Ё<#K|i#|#W[+ 5/6GM:}s MUw {1_2i+K# @1܃ eLng,]m0l A)rD[OT,;ȑ%91YeJL&~ ]՞wboi(l ݗO@B @7I{P IIRia+.XXؚwuq=j`.ٴ2.8R }QVr o/C1_"GB{!#Qdv{p>b,0KK30JL d 1GF[rsyryT:XXޘs;tJM,. gnGJ*4+Y-ĩ [t 4 +*g*z~$DSBh 0FF.b8[Ô(oK߇?oVIQ.I7%1XPd0 +|, 7r?\Cv>#%.R|Qʩ,444ʔ"nE ZR5(k7oI }4{l,g;p ii^}mm$R9O0dHl:hD }6ȻlVMn_bb [CWtbEQZ>3gLԣ3฿zՐz,/J2a3I)9a(!sT^JUU҈ ꢓ  +KbfRE2AJ-W f{T|M`jmVv% 'K4 KAADd,l:">c1Nf4GaЌ}1zJvSGSӑ:*/qbځ,U8?mto9qlpY}j7|vf Ք]**ʍIG| nz7f7#32Ekn_-V^jO* f}%MOˉ?!dJu6'=XL_lloG!0ҳjtٷ{\? I[6VG"Duo(|czS+69`'vAQ Z`rn'rm03%&9$;"*i%4Mj(Z_X4&Ksf4O "}YЦtG@@uHobO c@-X |pKܧBrw}K2C5ZYHVr[yàZ:LEϤڢ %uGBbiPO{Z.yp$N26J"kC O ar6z ]- 6Y+XĨ[%.^{z%^dW<-Y/[YS멵tQ.SLrGlRt ;]"l +hͷsuecߦ 46)͵BS mKe}MHٖ  ^&j5^c#C"nD ۝bP092RɂZYƛsx.0[ kT)(YjgiX>dsz5<2N0 v< oLT  BJ0Af|M6|HQf\nj 2Xf՚ Vrd.g0)1Gq-O[FL*L9SjS_4*xq#\ŕ"IpHG8y{$3=Ha9g- H4w;(SBGNpaTvЮP% XN4>cun`ʰk~[2׷o:J!fT*N0bYY&t6;OPTPeXeU =tR&,PngLnMvCwJ>7nix@5 _+lG( JL"Gÿ=B.* U8%qKEmʥEO?\^*Coanr.Ȧ2#޹!8*jYM>qj)nrun>_Hsmw,jt'YXH*R7&Qg#W9Kᲂ` 4o#=$\/U<#N0cz'`&LE.V|5T?8"w.(H!Cw"ҳjnwi6!醧q{H<Ȗ]050u{}8VH$3GނQo,OJO[QizL\V-Q䇍,GZ|+l)-FC[M4:7s+ :ҤD^aezi%U`P#<{"S!r}K\MZN'4*NOP,|PH9ed N^*F]p.M +ZjSE ܗc/R +~ +I +QomOhF-CFPEpA=f*z|| +\cw%{څ(Х'К,Tl]sJîti%0|v1~Q~(0->O] *N/B0VhvZ\s;ՙ4Y3t1T֧ ](?>w]Y2^@2#Ǖh>!ĵF' wx2;7::?a\夕lMjHSNU@楠+bQwI}n4a!s-qׇLT,4H؎߄:հWt_2c!'_NzXi%-ΫDCuwXî8D|S|;h g8tVsp]CA!_ +hz`f^@{QtiIhVt t={(]^hk4g^<Y& rPn^%2(LY :ڧ0A2&>]k6ImO£INUɁR"3Fj#"jhQe2ks[]>*N +$zeQ,zCeh&^R%c:1#WKoQ`e2\R0a<4L=bmC4fg"qbe$sgs8vW&L3l0\{"c<-_9gI=Ϙ<5-8.r?zܭ t߼~{9䨃&$ H7G*oMʼIKF +<,PN+wIi>'"kE_nFNw\cƴ A7p\aBzJ&48*h0 +I:T?k>ᬧ:)Lf!y' l!!h.UѰJZzOu/X.xCr@~\ +zV-^fS}MdO Bb`zϴDpe_xGϤ{dxqz>ln:h(){jRNӑ`E <'\!6q,訉us. ەʝR +ecB}\6N}2I v4dڱZlZ4SswBEGFň{Aqf>Bkpw>_v,l#Qt]=ѥ j0x]iEü =w~yx'[3Vc:l{OR3wmw6mWSe^zCE0-!^;ϐ9:`Q{=C5;C=Z},EW)Q'iq>v Ra"}RCEw:THLDC~zf^LUsI324qof&"Q-'O]#,|*y}D7 &,ͿToELyƲA}dDh1$gm&#~]eC4ߖt͈BRԻ"P#MM4$yA;`Okɷ @N:` Nc3|LWފ[8]lj"تG'E3fhj*sQ9EGa{ѻ 2EӜDɷsQ@ V^놙YX%" ( 0<U1@C}+/4;׸_t1 J rcm"yp/x0&* {e'2K3٭P{Ks % +gx[I$Q3;p%b&lkoMcܸdKŸ1Ƭ ruA-A\)ts'&Q* 4 4w[R+䮩>IMhqa,PeEx?aىe^f:flR<nj3 +b-]'7YbEXSœfдFD}YzkEOIZ'b}@n'/^Y}b [U%@ |,U$9;>%7xSS툛=V_|e=+aPdt!z`op>e6\Qz 9D 2f}-"'ͯFLa^ILӏYZS{ w}3f+vɑȨq`b*3m#e6(@@5$%8%;42\#~%jkoCWjtq3JfG-߹#:qݾ}$kBYeZaJ ;[ZL9{\lP[Nu<̲N"? +@saʠ{:U`LO/fɸфj޺)dIYC7п3FK+eÇ~k΃tՋrB`NQ9h~t[h,)=P| +i,hI3EhFluU#^זq =beIn4cx +wk0Z$ ^)?-Z y-ZQn =[G) &|,-w _p%VP*WilGP萳d^oq@SuǠy8b+&5P,!YלQ@l3%,^K*wѦ:Nga wnAS4 R<:B@7JP~7d62j̙)gGGu; +)e[Dz._ޤC'݀9A{ڠH+jWc πsmHEӳfgN[Gaw"Tt){ܝ8D )MX`A A"CWZ Cb +@.=Wl07$}^n~zsVBa1-rlև lB*\8=PVZѮ.#H7 ʁܔ$@͐e*Bt~ͅjoh B션q3s \S;C6dq.竊ʔFs #d@3Xе,*H),/^owS3b*PQEfDyy yA͙YVۊ/=O MI6"(tFQ}dQ+mAWJɦ QòB֚́ɋ4FHH,8>>{jzǵQ(,b\Ē)^o;4na'Cj eZb)?Ġ꣱dϩ*x4.OX)=R#hu+'ƖkHk-(V~.mi9*LJNSE'{ Fe`_b6Oa=gfā{g`w& ;i80^MXqs!D%7fO˭I;;/|@4@Rz>:;5▋"hk}/Jy/"Ⱦ7lJ^!Fe $PrlnJ^R[#r ZԹ+XQ2 +e:z$Ւ=׍y. +H#֛:>>N!z;Y>QTC3B [ed\FXjRD͋)e+tQC.:C5;Cgx4xpO +3}USbvy=1z 1)e9ʕL PB%sqF; }9#ሙnإpB({Jc5RrbaduՍ4[KcNXAD"x=0 55Kc*zO*u1CqmGxAWW|G}pfiXr֘'8 S 4 *q(Ȇз&6ʔ16kzQAJDo13ҟsIC 8KXt Dr E4҂P-w˪Fj<|gdnǶ +B+9uK_Eg A(hJkâtH4ıGnӒ)wD\F;iPSF1vM"6`\d γ6+z ѨJc† H?H, X]#'x$Ŭ sfC@c0:J#!OD<"'+iS##PzGA3]}v5E_|DC+m{GT2ZUO{BD"m;#N!]>$V +A.dR{TLwYN!SWLSI9-)}(2¹Ѻf8\ .! ZX.d0n;S FxU-("V( ˿H<6FP>`z|l4/1 %i[(Q5ܐDc}㫉VJ9NPNQ그3Y[5#:6;#?Lcto]r}AoLG{F36tUyM XrbbSvx ?>~ڌl؛.csk)u kiMĶ-J/W`D.1./?e DL}M̬Kܰg R^sB?5Қ|B8p}ktPw;_%gizj|p4J{vᣉ$\1~TsY5yaëej ĞLpCg9D gATiw# >/˰EFܨmNF&`+Y$" R9</z^6^6*B[-̝py +Xң;k:h0lw KT X>xWM92!:x9j<۲2f} 5kHZ>MUJͅvLel]eHS3LJ|v)DZFD|NWY'=i"_)wu)~D3G.Ԩ93?96*<UM~c!IwF5#EЫwT8MXIuɳǴbw/FMQEMWW~6(ZMǥe;pF4 ^8XVh,(܄Sʾ}פe "\9ǠN0ʦr0O+TQL~Ro-TVb8\Uhd yBQ +.u3iK=,#% ۹D~25^uƌZY@1Yu1gJ芔s{n|k(0l*[P{T,Pȑ/_*Y +2q+I@7k6{_!e(Qh%k71p(G1 'Q-w zsP/3Ɂߣc>+OGu'$' ]RhMwa"G  5*°A5?ST_ Ҕ\VqbiEzMt*ٖڦ~K'GuoR'MkH'aIݦoRW\KP'$~3GS,W'k1M0tiF2Bf221MXww߂y% }7L6ܣ9Vgʾ㵰 n}-, vw܅Hi>yr?Y = !$34lϋ { itf6XtJ3( Ohp Qh ql ++do3g0!rOq.B+tfoԇ5JDq~F랔 myM;Hà"AF_'i@0fT&#fT#h͈g p+pv!^r؋ zA l7١OHW|SwQ!/߃e=2,/b߉P>J # O\I\ƿҼ (;iD"WG*޳k9V͎PXvZ/iN(.9O:=6}xu!ENg[&oI/qjREZ5#a)=|*)ش(:@;*Sȩ({E2S/րc +Vc)7F^;vo[pϞkN[Gn7i +1W[Gw+ߢRB6kg+.7꜋zc208Ν(kS-@Ng߳ih]$,!Wp؃ƻ§磬m98jʉEPwSl@{+n](kQp6\},?Xb^bh ,2yjNYu[=2GCJj^ײbEgrkE/21<>kæRdk[jqA8Iv4`F k\Lãŵ|&{JE-ӣy#z#FsD`…KAޕe 2}ӋQRb}4x GX%wBFSF=z +Ǔ)s7ۓCCA6=*)g`i_ "KL W ; + +9 %YX\[6'ihȄyjRD;"#>'44461@3^S9sہ* rfO -̆>'Te;Kta鹦4_8x \Yp$vZ[|U22rA2i\@,mIU Efqy4Ӎ(/E ;(oN(AH :'$ވO +OC CVۈXԲ#{7.V/p U>OD,T]E捒푀sm}5@P{ ;q _;k tuu+f5o8!^,˷ߊYZ/|CRt0ʿs}ԋ{q +դqοi?@q&1 4L~ j÷3A<;kBi1PRvn]w*P(M+3) +nHʎTJh6i)57 C~Fo PEd{kmHypG'.ϖmvOq*yҜʋ*3|ǍEW=y;oItM͉%]U uQ|-zuqg[]wxHL*#Isy! tM I)Q.)Y2u|[#I(+cu3've}&',c&'|)ܖZbXN2NY~/}|4mT}PՐJA+*Td2C=}8h,Z]j%E3 ~IΝ]YECBCI[3ÄŘ8=bs[zѣДh4i}Y7>}ہj,}^? slSZ3=V[: Do4;sz f=NoJVp ک]!/H;V͗ }VjFk;N%[n،$,]bxro>v;.B]%&~ HƂH c:_MXU5[Xeӥ#~b'B=`ɜcd,* ! +"=FՁ-vFF !'N,Fϸ=zݹy+],}o糗b/*n; 7H5*XhsZ6ae'"/|`@ҕiT=:/|?ոK.êxQHr,8!?\kTsI\UXΓYa_>yzhqY/>_x`OY_]w\ } |~4!Kp{FTԎ.T-nPC^:S'maɺa8[h1z?{WB=%{M%1Dֆ̲Y%4 D]gh ͫƔliUS3$` +*LNW'Мۻ$ýG9i, /RfIy7hmȍxbGܢtg[QnA b7[ S<48c+w1u5Q{zԥbB-u(}E+ C +)a!WP/C?|%:Cv G 9c4g7N.,B3/YPϦPJgۭ.%&Ų)>ɍfVCJFȶ6:'Ĥ(SNfq@d&=> kƣr4TGD80~xWؐe>adyqlW +{UjEa*C&RgD J9/5#yċ>Pc +! 3v +Y9dBL7)X4'hozͭN +-f޸A"+[ ݘĀB~8Tk{ȥD7%}(zwFڤ#9gpmu&u +ɠxƓH곑1(ȯx䷓f}4 E^"JRow ))>G0BCw.!"gbY8ofͯ$aH>g"Syѡ܊"1- DzDɓKvk?OgRWaЁA챁U@s"kࢼ\; <<\jkW +GCJ)Jp(RD>4ZZU|'!WkU.c4eI`EMx|5tlUܚ<Ƭ@ FAT♥#K -kmFqAMIc {- +R=.qilNL8*Gb8+x#2i}nusFjX_U=>2K8bK!\tPh YLɭUNȔZ(j9iJy^_SEZvc641F0a +HѤa gHFzt0 BtMWV}ڙ̱,331( WT?F-RVu[bGL~Їlx@\`+=ČơpUe!t<ֹyYNte uqH*ipl^QmCe[^VG3g=Ls2&ridy SSStF=JghcSΦ:'2s7MkL/E8jnAbUi$&>vG˨T + jhN*fcI4°b˪G钜ól`#ȴOx:ˡ7,VqɪIĦ,r [c!6Imi0H@9pl+4,VĆ>~)mN6N_Y%y^H djo#*KiQН]Oŧ +5vrxx/{.Uޖi||bNc'@`NA(ω;Gװ]]=y +-z4BHλ/eb mP#I{ +vXq;ӶEV һ_on2AjX$ml1qnWW +,UIHs88KLɓ9R跟q # +=)p*:xvbqYb rM&1W Re>HOc |<$HDa[t`hzhXƎS`Jv&iv_'V~Dl:LWJ(Ȁubr#ǺC`3^b{;AJ;wM/!0=fJL'wIݙ~pw1BəJhvpH^ϢdVRHZn66iuP^4K"]7XP=}yPZĒ~VT[,![X:Ź^ܿaCc>`HɅq:sD W5qK!W9( VF>E_$aܸh9Әg%R* $ܑudL]j}zsI FP؀qw(M܋7рJ57CSy(!#8-sO v}Oc&ժw,ToU RL4ق)Fn5V#hZeȔj6'Q=Rƥ P W*g rcVF.YMa$͜ 4N5JY-,#yL71vדּA0sA_+n ~Τڎ8s& p:Ѓxge@57GZ)z{'xVܸ( >f?F2ъ)4Q C2Do8-%9 qb"k:vaZ鎲L,K&d'y]WSwz^?CDٛQ13("I,MVMDULck&1sCDt)Z\cN~;@X`A:X'#dZ7vA2&l0xhXpYN\B\ Gg{MDI?vޢL'V}>zj?WKNTu1sPA_}՘^>s ⯺R sWIEF9M j?̃vF-sh%K'VPKbM5نB  COPYRIGHT-jai_imageio.txtUT/EUxPKbM5@" DISTRIBUTIONREADME-jai_imageio.txtUT/EUxPKbM5i  ENTITLEMENT-jai_imageio.txtUT/EUxPKbM5U)*L8 k LICENSE-jai_imageio.txtUT/EUxPKbM5Gd!' "THIRDPARTYLICENSEREADME-jai_imageio.txtUT/EUxPKbM5c4U  1UNINSTALL-jai_imageioUT/EUxPK +bM5 A2jre/UT/EUxPK +bM5 A2jre/lib/UT/EUxPK +bM5 A2jre/lib/i386/UT/EUxPKbM5*W :3jre/lib/i386/libclib_jiio.soUT/EUxPK +bM5 Ajre/lib/ext/UT/EUxPKbM59:g Mjre/lib/ext/jai_imageio.jarUT/EUxPKbM5W 0jre/lib/ext/clibwrapper_jiio.jarUT/EUxPK $| \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java-jrockit/src/jai_imageio.patch1 b/rpms/awips2.core/Installer.java-jrockit/src/jai_imageio.patch1 new file mode 100644 index 0000000000..20550f0e7f --- /dev/null +++ b/rpms/awips2.core/Installer.java-jrockit/src/jai_imageio.patch1 @@ -0,0 +1,45 @@ +*** jai_imageio-1_1-lib-linux-i586-jdk.bin 2011-09-08 14:29:01.000000000 -0500 +--- jai_imageio-1_1-lib-linux-i586-jdk.bin.update 2011-09-08 14:30:10.000000000 -0500 +*************** +*** 1,6 **** + #!/bin/sh + PATH=/bin:/usr/bin +! more < $outname + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + +--- 160,166 ---- + fi + outname=install.sfx.$$ + echo "Unpacking..." +! tail -n +213 $0 > $outname + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + +*************** +*** 195,202 **** + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +- elif [ `expr \`uname -m\` : .*64.*` != '0' ]; then +- ARCH=amd64 # linux-amd64 + else + ARCH=i386 # linux-i586 + fi +--- 195,200 ---- diff --git a/rpms/awips2.core/Installer.java-jrockit/src/jrockit-jdk1.6.0_26-R28.1.4-4.0.1-linux-ia32.bin.REMOVED.git-id b/rpms/awips2.core/Installer.java-jrockit/src/jrockit-jdk1.6.0_26-R28.1.4-4.0.1-linux-ia32.bin.REMOVED.git-id new file mode 100644 index 0000000000..1a86c57dda --- /dev/null +++ b/rpms/awips2.core/Installer.java-jrockit/src/jrockit-jdk1.6.0_26-R28.1.4-4.0.1-linux-ia32.bin.REMOVED.git-id @@ -0,0 +1 @@ +c2ac231a9d923a1b93ea001ce86bc20765f6dc2c \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java-jrockit/src/pydev_certificate.cer b/rpms/awips2.core/Installer.java-jrockit/src/pydev_certificate.cer new file mode 100644 index 0000000000..e4463b923e Binary files /dev/null and b/rpms/awips2.core/Installer.java-jrockit/src/pydev_certificate.cer differ diff --git a/rpms/awips2.core/Installer.java-jrockit/src/silent.xml b/rpms/awips2.core/Installer.java-jrockit/src/silent.xml new file mode 100644 index 0000000000..8d67d2cd47 --- /dev/null +++ b/rpms/awips2.core/Installer.java-jrockit/src/silent.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/rpms/awips2.core/Installer.java/component.spec b/rpms/awips2.core/Installer.java/component.spec new file mode 100644 index 0000000000..edcac41b5c --- /dev/null +++ b/rpms/awips2.core/Installer.java/component.spec @@ -0,0 +1,233 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +# +# AWIPS II Java Spec File +# +Name: awips2-java +Summary: AWIPS II Java Distribution +Version: 1.6.0_27 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-java + +%description +AWIPS II Java Distribution - Contains Java SE Development Kit (JDK) 1.6.0_27 +plus additional libraries used by AWIPS II. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root}/build-java +mkdir -p %{_build_root}/awips2 +mkdir -p %{_build_root}/etc/profile.d + +%build + +%install +JDK_BIN="jdk-6u27-linux-i586.bin" +JDK_BIN_var_javahome="jdk1.6.0_27" +JAI_BIN="jai-1_1_3-lib-linux-i586-jdk.bin" +JAI_PATCH="jai.patch1" +JAI_IMAGEIO_BIN="jai_imageio-1_1-lib-linux-i586-jdk.bin" +JAI_IMAGEIO_PATCH="jai_imageio.patch1" +PYDEV_CER="pydev_certificate.cer" +JAVA_SRC_DIR="%{_baseline_workspace}/Installer.rpm/awips2.core/Installer.java/src" + +cp -v ${JAVA_SRC_DIR}/${JDK_BIN} \ + %{_build_root}/awips2 +if [ $? -ne 0 ]; then + exit 1 +fi +pushd . +cd %{_build_root}/awips2 +chmod u+x ${JDK_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi +./${JDK_BIN} -noregister +if [ $? -ne 0 ]; then + exit 1 +fi +mv ${JDK_BIN_var_javahome} java +if [ $? -ne 0 ]; then + exit 1 +fi +rm -fv ${JDK_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi + +cd ${JAVA_SRC_DIR} +patch -i ${JAI_PATCH} -o %{_build_root}/build-java/${JAI_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi +patch -i ${JAI_IMAGEIO_PATCH} -o %{_build_root}/build-java/${JAI_IMAGEIO_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi +cp -v ${PYDEV_CER} \ + %{_build_root}/awips2/java/jre/lib/security +if [ $? -ne 0 ]; then + exit 1 +fi + +# Used to automatically agree to software licenses. +touch %{_build_root}/build-java/yes.txt +echo "yes" > %{_build_root}/build-java/yes.txt + +cd %{_build_root}/awips2/java +chmod u+x %{_build_root}/build-java/${JAI_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi +%{_build_root}/build-java/${JAI_BIN} \ + < %{_build_root}/build-java/yes.txt +if [ $? -ne 0 ]; then + exit 1 +fi +chmod u+x %{_build_root}/build-java/${JAI_IMAGEIO_BIN} +if [ $? -ne 0 ]; then + exit 1 +fi +%{_build_root}/build-java/${JAI_IMAGEIO_BIN} \ + < %{_build_root}/build-java/yes.txt +if [ $? -ne 0 ]; then + exit 1 +fi + +touch %{_build_root}/build-java/changeit.txt +echo "changeit" > %{_build_root}/build-java/changeit.txt +chmod 666 %{_build_root}/awips2/java/jre/lib/security/cacerts +if [ $? -ne 0 ]; then + exit 1 +fi +%{_build_root}/awips2/java/bin/keytool -import \ + -file %{_build_root}/awips2/java/jre/lib/security/pydev_certificate.cer \ + -keystore %{_build_root}/awips2/java/jre/lib/security/cacerts \ + -noprompt < %{_build_root}/build-java/changeit.txt +if [ $? -ne 0 ]; then + exit 1 +fi +popd + +# The profile.d environment scripts. +JAVA_SCRIPTS_DIR="%{_baseline_workspace}/Installer.rpm/awips2.core/Installer.java/scripts" +cp -v ${JAVA_SCRIPTS_DIR}/profile.d/* \ + %{_build_root}/etc/profile.d +if [ $? -ne 0 ]; then + exit 1 +fi + +# The licenses +mkdir -p %{_build_root}/awips2/java/licenses +LEGAL_DIR="%{_baseline_workspace}/Installer.rpm/legal" +cp -v ${LEGAL_DIR}/*.txt ${LEGAL_DIR}/*.pdf \ + %{_build_root}/awips2/java/licenses +if [ $? -ne 0 ]; then + exit 1 +fi + +rm -rf %{_build_root}/build-java + +%pre +if [ "${1}" = "2" ]; then + # Upgrade. Removing the existing /awips2/java/man + # directory to prevent conflicts. + if [ -d /awips2/java/man ]; then + rm -rf /awips2/java/man + if [ $? -ne 0 ]; then + echo "ERROR: The awips2-java upgrade has FAILED." + exit 1 + fi + fi +fi + +%post + +%preun + +%postun + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%attr(755,root,root) /etc/profile.d/awips2Java.csh +%attr(755,root,root) /etc/profile.d/awips2Java.sh +%dir /awips2/java +%dir /awips2/java/bin + +%doc /awips2/java/COPYRIGHT +%doc /awips2/java/COPYRIGHT-jai_imageio.txt +%doc /awips2/java/COPYRIGHT-jai.txt +%doc /awips2/java/DISTRIBUTIONREADME-jai_imageio.txt +%doc /awips2/java/DISTRIBUTIONREADME-jai.txt +%doc /awips2/java/ENTITLEMENT-jai_imageio.txt +%doc /awips2/java/jre/README +%doc /awips2/java/jre/THIRDPARTYLICENSEREADME.txt +%doc /awips2/java/jre/Welcome.html +%doc /awips2/java/jre/LICENSE +%doc /awips2/java/LICENSE +%doc /awips2/java/LICENSE-jai_imageio.txt +%doc /awips2/java/LICENSE-jai.txt +%docdir /awips2/java/licenses +%dir /awips2/java/licenses +/awips2/java/licenses/* +%docdir /awips2/java/man +%dir /awips2/java/man +/awips2/java/man/* +%doc /awips2/java/README.html +%doc /awips2/java/register.html +%doc /awips2/java/register_ja.html +%doc /awips2/java/register_zh_CN.html +%doc /awips2/java/THIRDPARTYLICENSEREADME-jai_imageio.txt +%doc /awips2/java/THIRDPARTYLICENSEREADME-jai.txt +%doc /awips2/java/THIRDPARTYLICENSEREADME.txt +%doc /awips2/java/UNINSTALL-jai +%doc /awips2/java/UNINSTALL-jai_imageio +%doc /awips2/java/jre/COPYRIGHT + +%dir /awips2/java/db +/awips2/java/db/* +%dir /awips2/java/demo +/awips2/java/demo/* +%dir /awips2/java/include +/awips2/java/include/* +%dir /awips2/java/jre +%dir /awips2/java/jre/.systemPrefs +/awips2/java/jre/.systemPrefs/.* +#/awips2/java/jre/.systemPrefs/.systemRootModFile +%dir /awips2/java/jre/bin + +/awips2/java/jre/javaws +%dir /awips2/java/jre/lib + +%dir /awips2/java/jre/plugin +/awips2/java/jre/plugin/* +%dir /awips2/java/lib + +/awips2/java/sample +/awips2/java/src.zip + +%defattr(755,awips,fxalpha,755) +/awips2/java/bin/* +/awips2/java/lib/* +/awips2/java/jre/bin/* +/awips2/java/jre/lib/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java/scripts/profile.d/awips2Java.csh b/rpms/awips2.core/Installer.java/scripts/profile.d/awips2Java.csh new file mode 100644 index 0000000000..b311efa80e --- /dev/null +++ b/rpms/awips2.core/Installer.java/scripts/profile.d/awips2Java.csh @@ -0,0 +1,10 @@ +#!/bin/csh + +set JAVA_INSTALL="/awips2/java" +setenv JAVA_HOME "${JAVA_INSTALL}" + +if $?PATH then + setenv PATH ${JAVA_INSTALL}/bin:$PATH +else + setenv PATH ${JAVA_INSTALL}/bin +endif diff --git a/rpms/awips2.core/Installer.java/scripts/profile.d/awips2Java.sh b/rpms/awips2.core/Installer.java/scripts/profile.d/awips2Java.sh new file mode 100644 index 0000000000..4d076194ea --- /dev/null +++ b/rpms/awips2.core/Installer.java/scripts/profile.d/awips2Java.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Is Java Installed? +rpm -q awips2-java > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + return +fi + +JAVA_INSTALL="/awips2/java" +# Update The Environment +export JAVA_HOME=${JAVA_INSTALL} +# Determine If Java Is Already Part Of The Path. +CHECK_PATH=`echo ${PATH} | grep ${JAVA_INSTALL}` +if [ ! "${CHECK_PATH}" = "" ]; then + return +fi +# Java Is Not In The Path; Add It To The Path. +export PATH=${JAVA_INSTALL}/bin:${PATH} diff --git a/rpms/awips2.core/Installer.java/src/jai-1_1_3-lib-linux-i586-jdk.bin b/rpms/awips2.core/Installer.java/src/jai-1_1_3-lib-linux-i586-jdk.bin new file mode 100755 index 0000000000..2a2607782e --- /dev/null +++ b/rpms/awips2.core/Installer.java/src/jai-1_1_3-lib-linux-i586-jdk.bin @@ -0,0 +1,13517 @@ +#!/bin/sh +PATH=/bin:/usr/bin +more < $outname +else + tail -n +139 $0 > $outname +fi +if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + + sum=`/usr/bin/cksum $outname` + index=1 + for s in $sum + do + case $index in + 1) sum1=$s; + index=2; + ;; + 2) sum2=$s; + index=3; + ;; + esac + done + if expr $sum1 != 728064359 || expr $sum2 != 3545598 ; then + echo "The download file appears to be corrupted. Please refer" + echo "to the Troubleshooting section of the Installation" + echo "Instructions on the download page for more information." + echo "Please do not attempt to install this archive file." + rm -f $outname + exit 1 + fi +else + echo "Can't find /usr/bin/cksum to do checksum. Continuing anyway." +fi + +if [ "`uname`" = "SunOS" ]; then + if [ "`uname -p`" = "sparc" ]; then + ARCH=sparc # solaris-sparc or solaris-sparcv9 + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +elif [ `expr "\`uname -m\`" : .*64.*` != '0' ]; then + ARCH=amd64 # linux-amd64 +else + ARCH=i386 # linux-i586 +fi +if [ ! -d jre/lib/ext ] || [ ! -d jre/lib/$ARCH ] ; then + echo "This is not a proper JDK directory. Exiting install." + rm -f $outname + exit 1 +fi + +echo "Extracting..." +chmod u+x $outname +./$outname +rm -f $outname +echo "Done." +exit 0 +ELF44 (444H,, /lib/ld-linux.so.2GNU%51 "+3).!04(#,&*' -   +% $/2},;'<@-L~"\=l/@|8;7Wx.̊7܊l7s Vy;^,<L"-D-H-$\EJlD|myVL-L-!s=P̋q܋;h =,7,<!L=4\;el4:P-T-|1G.|= ̌__gmon_start__libc.so.6strcpyioctlchownstdoututime__ctype_bqsortfgetsmemcpyperrormallocisattyfflushlseekchmodstrrchrwritefprintf__deregister_frame_infostdinumasktimezonesignalreadstrncmpstrncpyunlinkfreadsymlinklocaltimetcgetattrstrcmpsprintffclosestderr__xstatexitfopen_IO_putcfileno_IO_stdin_used__libc_start_mainopentzsettcsetattrmkdir__ctype_tolower__register_frame_infoclosefree__timezoneGLIBC_2.1GLIBC_2.0ii ii ,3@-D-H-L-P-+T-,+++++,,, , +, , , , ,$,(,,,0,4,8,<,@,D,H,L,P,T, X,!\,"`,#d,$h,%l,&p,'t,(x,)|,*,-,.,0,1,2,4US[tuv_x[5+%+%+h%+h%+h%+h%+h %,h(%,h0%,h8p% ,h@`%,hHP%,hP@%,hX0%,h` % ,hh%$,hp%(,hx%,,h%0,h%4,h%8,h%<,h%@,h%D,h%H,hp%L,h`%P,hP%T,h@%X,h0%\,h %`,h%d,h%h,h%l,h%p,h%t,h%x,h%|,h %,h(%,h0%,h8p%,h@`%,hHP%,hP@1^PTRhhQVhU=u>PС8uLt h+]ÍvU]ÉULthX-h+]ÍvU]ÐUhLjhLj hLjhLj E hp-E PEPU..E ,.9tz1u1Bu1BuR;M v+,..t&,.(.. 0.E. 9u. +.-V]ÐU1ɉ WVSE E0E8&PXBӃMd$0A^&t-)y1-1<t&-,t&t 1t&-t-1-t-1&-t--1--~&Ej=.t-1Jv-8t-1"-t-1&-t-1-t-)y1-1-t&t--1--^&t-)ȅ}1-1:v-,t&t-1-t-1&-t-1-t-1&-t-1u-i+u^;uY~TF8-ukJvt-)y1-1/-'t-)y1-1-EC}O~8-Z-=-t u(=-ut =-u=-t?=-t6hhhH4PhH4h-E=-~ +-=-tB=-t9hhhH4*PhH4h--=-tju +-}t"E8E 0EP&=-9jhh-jjjh@hH4 PhH4h-Ѓ=-u$=-u=-u=-u =-t.t&.E8E 01e[^_]US]%Phh-jjjh@hH4 PhH4h-Ѕ%PhhhjhhH4PhH4h-Ѕu1 +]]UVSu] -5SVwe[^]ÐUWVSRQu )Nj])MӉʃt[F03F03F03F03F03F03F03F03IuF03IuYZ[^_]ÐUtP4]ÉU WVS=uNhDžt;1ېٸst Hu~Ή=e[^_]ÐU1҉LWVSEEEEEfEEEEfD4D.fEf)P'Eău6hhhH4vPhH4h-E.~APEt+EU;.}MEAM; .|. PE܃ EU;. t&MEAM; .|p ED.jhh4.tthURhhH4ePhH4h-hhhH49PhH4h-EfE JvWÅt].1jfP'Ãt7;]~]~*hhlhHthDPh`1jfPc'Ãt4;]~]~'hhlhHthPhL1jfP'Ãt^;]~]~Qh!hHthPhhH4PhH4h-fE=.tt&,.1t&;t7-PPhJt۾}t+,.M4tf0.t&;t8-PPhRJt1}t+0.EttEfEf}t7}?1fMڃ=D4jh4.7E3fE|Uԋ TUMXEE9U +EMEEI=D.D4D.y%)É)ޅhhpPh@hH4-PhH4h-E}um=tdhh`hH4PhH4h-Ћ MСD48}%)É)ރEv},hhpPh@hH4it&;5|tijVtPc|h PPtPEX hVhtEPCP)ڣXPT))XTjh4.uhWhzMQt&jhh4.hWhEPhhH4\ PhH4h-E}u =u=}hh`hH4PhH4h-ЃtE t&UЉD4y%)É)؅ ;|tVjPtP|h PPtPX  P)٣X TPT))XTjh4.uhWhzEP3jhh4.tEhWhURhhH4 PhH4h-EgSÅt;h!MQh-hH4fPhH4h-Љ]1jfP!Ãt>;]~]~1hh~hHthPh`^&tPz1jfP Ãt7;]~]~*hh~hHthPh=-=-t11VXÃM}U؃utttu߃@@)@PUȉЉ+Eȍ4Eĉ 0uGhh@ hH4PhH4h-Ѓ}ESUċ2PD4Mă@D1 t(EăPRPj1fPQ?R 1u+1fP1fP‹Mĉ+EȉTuM+ETT+}1ɍ=-tUĉLE+NuKjhhHth.PhhH4PhH4h-Ѓ}Eh&t, +t gvt3]=-tT}J=-h=-u.4=-P=-t?=-uhhHth6Ph!hH4PhH4h-ЃT-Pj h9.9 u@jh!hH4NPhH4h-9.N}uE9.8$--vhh!hH4PhH4h-ЃT-Phhq؋M utttu߃@@)P<2 +u0ut&--&j9.Ph!hH4PhH4h-Ѓ3&`- Åt@;]~]=`~/}tEPT}t UR?EYEM9MjEPtP|h PPtPvU TM XEf}}G}EȃPƃu1hh hH4PhH4h-}u +Eĉ=vEU9U}EċMAMU9|hjMQVuEE9EFvU{tm1fCP1fCPPtMhP1fCP1fCPh hH4( PhH4h-Ѓ}uECPPt?hPh!hH4PhH4h-Ѓ}uE1fCPPt?hPh@!hH4{PhH4h-Ѓ}uEPEM9MVEP}twETvME<uBj,.PhhH4PhH4h-Ѓ}E EU;.|MQD}tpEMUM܃<u8h0.PhhH4`PhH4h-ЃEE;.|UR=-h-}t0jpP}uPh"hH4ujpPh@"hH4]=.t&f}ujpPh#hH4.juPRpPh@#hH4[ PhH4h-Ѓf}jf}uP1fEPh#hH4PhH4h-Au=}u7jpPh@"hH4PhH4h-Ѕu]}WE f}t]EQTjhh@hH4|PhH4h-и"t&3f}t }uEEe[^_]UD4 B$ȈB D4ffQ$ˆQ D4$QˆQD4BD4B-t +t+vD4`&t& D4Q$ˆQ D4H=4 *=-1hjjЍf(1P1PhthHth +PhhH4 PhH4h-=-#=-hhHth& +Ph"hH4PhH4h-ЃT-Pj h9.)9. =Xh PPtPƒXuXv}n|&hЉуtzt8(t1@8(t,@8(t'@utttu߃@@)PRh-=jP| T .9~6} + . .T‰X)£X +X) .T X%T]ÉU WVS} WEPLPL=-}u=`t +2dD4@uN=-u7WEP|PP9=-jWEP}t +55=dthd]; +u +=htChE9sSt& u) +HA9uh,t&{ +u"C& +u  + tAC9r9vV)=-u9SV|PP9t <!=-tjSVh-1e[^_]ÍvUWVSE ]E}؋uENUt@u H-E D-UE@t#u t Uz +t EC +@EU uzEPj +UR EtI@tCju2jt!H-Pj +H-P4 LJ6:G,(> +P1w,uj+]CSEPUR_P69%EPLJVUjh'W8Ѓ F;ui+]SEPURP9%EP*Utf@t`juOj~t>SEPH-PqPH9%u%H-PUz +ƒ1e[^_]UVSuuhCH-PAPE PH-P%H-PG Et.j8à t) +t$ tqtQut&j8Ãh'H-PH-P1҃ ڡP-DPt%=w@- u t&F> tFӀ>u} uID4@ tt u3=2u*:t}B:uH45>1<u^C[/&<u"F< +uF< u~ +u FFCC-H4=wtBjH4PhH4h-Ѓt"=.tjh'h-ЃF>ajH4ShH4h-Ѓ}~ +}lj@jhH4h-fEvEhh&hH4PhH4h-f}EWhD4@ tt u-=2u$р=t}A9uD4@tQӀ=tC P-M@-E쐉 BEDHt=wE C;uD4@ tv=.uBBuf}Ih1hHthiPh~hH4PhH4h-f}5| PM)Ћ T+MЉy)Ӊ)څ}:jhh@hH4MPhH4h-и9) X]Tbt PW~hWh&hH4PhH4h-Ћ5| PM)Ћ T+MЉy)Ӄ)څ}>jhh@hH4QPhH4h-и9tOjRtP7|h PPtPX~8P)ڣXT-) X]TWPu 3t&Ee[^_]ÍvUWVS}}P-E@-UËEDXt=wEދU ‹EDPt=wE 9ue9taEDXt=wE ًEDPt=wE 9|9} t&?t GE M.1[^_]ÉUE1]ÉU]UjpPtu9hpPh@&hH48PhH4h-и1]ÉUX~ .~, .‰X)‰Tt&=X} +X]ÐU .9X~8} + . .T‰X)£X X) .]ÍvUS]/u@h!hEh`'hH4 PhH4h-Ѓjt& u;h!hOh`'hH4PhH4h-Ѓj=PtEPhH4kt&jURhH4uE} XxT%T t&s ǃvĉD;SrZ Bs3w> XxT%T t& ǃvĉD;rBs XxT%T t&CR ǃvĉD ;#r +t$t&BsDž9P +=d)PRh(hp(hQP0u +DžtDu0=-ujjhh-ЃP` %h)PPh()h(jRP uCv7=-ujjhh-ЃPu +DžtPYPPPP|u,PRPC1v[^_]ÍvUVS5u7 XxT%T ƅtɉEKw: XxT%T t&CtV ƃvȉ5u K1t&u K!t&tt&[^]ÉU|WVSu\Džl} v lU1󫉵X} ,t&XXOuE 9EuU1M t&}u,Cw<t`E 9sM }u,Ot<th9vE 8DžDӥD;hs*,)Dx+DCɉD9r,)Dy +D, +1ۍE0Xhtx|(8OtXXOu狽01 󫉵X1(0vXXt<2G;} rҋ(810\U tXDždxH8T@h9`u`,K40d\H9`jd Hh@HM )@ d@9vƋ`Dž+Hpى@ӥ@9vep,)4C9sB҉9v+t&)C9s9wڋH;lvl9Hs+HDž@ӥ@ \@PyTu"dt8P@@TUTTMB8u&REPWV1G?u߸'[o?E-1%;uP-U@-Uu \u +-u +1ɊN}t+1ҋEDPt=wE 1ۊ~-tg1҉ȊuЉ9wUU}t6UDJt=wE9t &9u }t$A;Mv11F;u,}uGF\u 1ɊF}t51ҡP-DPt =w +@- }t?1ҡP-DPt=w +@-9t&19u Gq1e[^_]UUM EPRQ6%]ÍvUU:t/<\u ztBX YP)ڣXPT))XTjh4.tjhh4.赠tRhhpPh+hH4菡PhH4h-ЃtPly)Ӊ)څ}8jhh@hH4PhH4h-и;|tUjRtP|h PPtPX  3MP)ڣXPT))XTm9~ރtPce[^]U,WVSEux= jjtPCxPPPtP)X ;x\PDT9ET8PujhPž TP9TsvPT)‰)XE…})Ӄ)jPtPi|SPPtPOX 9P)ލDT9r8T8PujhPG TP9TsȃjPPP蚞 ))ޣ|}?Ǿ }9||jPtP|h PPtPcX = P^T9rRT8Pu5jhPuPT)‰)XE TP9TsjPPP莝}9}=-u =-t5hpPhhH4`PhH4h-Ѓhh`+hH41PhH4h-иPT)‰)XPT)ƒ|.jEPEPfEPf EP}fEPkf EPvEPe EP1f.13e[^_]UD4=w1B D4`=-tD4@ w$D4HD4t%B tt + tuJ D4`b1]ÉU8Ej*P,1EԃEբE֢EעEPfEP f EPfEPf EPEP EPEPf EPfEPrf EP]fEPKf EPVEPE1 t&3]ÍvU(EjPu +3EE墝EPfEPf EPfEPf EPEP EPxEPGf EP2f .$.tD4P@ .1]ÉUWVS}u EEt1t&UX$wUTtt&UxsEE}^}T1G EEt-}v#GP_UB &e}Et$Z;]w;PUeEB;EwPUBt&e&}u EE}v}I&}vn}uh}t*GPUGPyU BM} v2}t,G P4UfGP"U fBME|)ƃv21WfÃGP1҃ fFU9Ee[^_]ÍvUjjY=HtHtP4tPt PPt PP]ÐUS1f=th-u]=-uT=-uK1jfPt1hh+hH4•PhH4h-Љ؋]]ÐUEPhTj3uf}t 1fE]ÉUPVSuċ]VSReVjS袓e[^]ÐUDSt,]SPMSjPe]]UPVSuăVEPܔEڊ]ۈEEEeVjEPE jEPEP諔Eˆ]ۈEڀM +VjEPߒeE[^]ÐUWV1S1UD4@ t +N1=-tt .|-1t=/%-jjg +u +Eƅ=-tj/hƃu +FtCDž/twtLZ;t5SvjP17;_-Džt&P-DP@uB~wC1ҊF\=-u/t+1_GP-DBtC1DBu;uutttu߃@@x/jV=|-tn=-u-jVh@hH4+PhH4h-ЃD4f@% PVvt h`Mc\u1jVhhH4趑PhH4h-и"jP!jV[^_]ÍvUSE Mx-1ۈx-Px-PAut-x-)=~hRj軏= .ut-Py,vtLjt-PhhH4讐PhH4h-Сt-P+t&ht-PuIjht-Ph hH4EPhH4h-Сt-Pu|-`%=@tOjht-PhhH4ߏPhH4h-Сt-P\tLjt-PhhH4莏PhH4h-Сt-P t&x-/x-x-1vu;t-PQXt-P跎x-t-1Yu<x-Atx-Bx-+t-=BAuuЋutttu߃@@)+@Pƒt-u + +=+~%=-up-PRi+t- t-t-x-uh=+p-P蕍t&x-ht-PhhhH4čPhH4h-иc]]UWVS=x,5FPÃ|P褌 h: h?|tPVjSًǃ9tWhhh@ hH4PhH4h-Ѓt S菌|P<|P h jShe hH4袌PhH4h-ЃhSߋ thl {S|P茋t%EP]S1jfPR! 1}u 1fP1fPþEuEE=-]1fCP1fEPhHtr=-t/h1hfCP1fEPh hH4n %h1fCP1fEPh hH4GPhH4h-ЃWhtM=-thhh +hh" +hH4PhH4h-ЃD4f@%Ph1t h= +譈e[^_]ÍvUSD4P w,$\ +1Yeڍ"؃u Éڍ $ ډQjBS:D4!X1]]ÐUS+=+t Ѓ;u[]ÉU]ÐUS[([??-xCďp `P0HPБ@XMcentrallseekEOFlocalwarning-sppppppppppppPppppppppppppppppppppppppppppppppppppppVMSPK[empty] [text] [binary]testlink +extractinflat%-22s OK +׃Ѫ++++--+-+++---+i++_̯յݯ=wb +bus errorsegmentation violation;Zx0N[ %s ] +`*(incomplete l-tree) (incomplete d-tree)  + %sEmpty zipfile. +[%s] + creating: %s +chmod (directory attributes) errormapname: conversion of %s failed +checkdir error: path too long: %s +checkdir error: can't create %s + unable to process %s. +checkdir error: %s exists but is not directory + unable to process %s. +checkdir warning: path too long; truncating + %s + -> %s +rbwarning: symbolic link (%s) failed +-> %s symlink errorwarning: can't set UID %d and/or GID %d for %s + (warning) can't set UID %d and/or GID %dwarning: can't set times for %s + (warning) can't set timeschmod (file attributes) errorT@00TTTTTTTT+31 May 1997error: expected central file header signature not found (file #%u). +error [%s]: attempt to seek before beginning of zipfile +%scaution: filename not matched: %s +caution: excluded filename not matched: %s + (please check that you have transferred or created the zipfile in the + appropriate BINARY mode and that you have compiled UnZip properly) +error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid +caution: both -n and -o specified; ignoring -o +UnZipSFX %d.%d%d%s of %s, by Info-ZIP (Zip-Bugs@lists.wku.edu). +Valid options are -tfupcz; modifiers are -abjnoqCL%sV%s. + skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) + skipping: %-22s unsupported compression method %d +%s: bad filename length (%s) +%s: bad extra field length (%s) +file #%d: bad zipfile offset (%s): %ld +%8sing: %-22s %s%s%s: bad file comment length +local header sigfile #%d: bad local header + (attempting to re-compensate) + skipping: %-22s %svolume label +warning: can't alloc memory for dir times/permissions/UIDs/GIDs +can't alloc memory for dir times/permissions/UID/GID +warning: can't alloc memory to sort dir times/perms/etc. +warning: can't set UID %d and/or GID %d for %s +warning: can't set modification, access times for %s +warning: can't set permissions for %s +replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL +(assuming [N]one) +new name: error: invalid response [%c] +At least one %serror was detected in %s. +Caution: zero files tested in %s. + +%s: stored in VMS format. Extract anyway? (y/n) skipping: %-22s encrypted (not supported) +No errors detected in compressed data of %s. +No errors detected in %s for the %d file%s tested. +%d file%s skipped because of unsupported compression or encoding. + error: %s%s %s + + error: %s%s +not enough memory to invalid compressed data to inflatewarning: %s is probably truncated +%s: unknown compression method + bad CRC %08lx (should be %08lx) + compressed EA data missing (%d bytes)%s compressed WinNT security data missing (%d bytes)%s +error: unsupported extra field compression type (%u)--skipping +error [%s]: bad extra field CRC %08lx (should be %08lx) +error: can't delete old %s +error: can't open zipfile [ %s ] +error: can't create %s +error: zipfile read error +warning: filename too long--truncating. +warning: extra field too long (%d). Ignoring... +%s: write error (disk full?). Continue? (y/n/^C) error: zipfile probably corrupt (%s) +--More--(%lu)--- Press `Q' to quit, or any other key to continue ---   +    + #+3;CScscc !1Aa  0@` + + error: can't allocate unzip buffers +unzipsfx: can't find myself! [%s] +error [%s]: missing %ld bytes in zipfile + (attempting to process anyway) +error [%s]: NULL central directory offset + (attempting to process anyway) +warning [%s]: zipfile is empty +error [%s]: start of central directory not found; + zipfile corrupt. +%s End-of-central-directory signature not found. + +caution: zipfile comment truncated +,2BRbrŠҊ"2BRbr‹ҋ"2BRbrŒҌ  ( + +XX8o(ooGCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.comment.note# 1((p7 P?GojTo((0c XXl ``0u X ~ 1 + v , +̛+Л+؛+,<-@@-@ @П@PKԋ+5 :s COPYRIGHT-jai.txtUT EEUx +Vr7+˚Tbɩ] O_o HS*v1;=2Něm?>7~\{WcDKNw=P,-M3KyS`K?\߼aq[IkdJ.sB觸s).ޘeGzr\GE`ELxK~w}lKFS.6 6 w!;䜦i…]yGS;C֔n?ha|$|ᘾ4"-%$Chv ڣ&dSa@FbwV)n:H {.!Z'#i#4=e{ +KpF{b*lcHabzE6zxڳsfau#fiI'(@z#jds [NLv/~o@W\Dw'PU;6X7lDD1̚xA"[6Ɉ*\iæ#(B,(h$ӄa=ON<̼ VE35&ISkؒ| ,HQfYs^_A@hP1}gl}R91$C-wɁ>S̓1ffՈӜŀzɤ!_#VXQo\1F^4D6xkJjżĤgPW=7sr9-Xg#Q,o4ZOY^J_6m%FhǛjJQL3{^=>==uit4Ś*l)mSî pAS)FwX Q/6f࠼0_S|f'kHV#idB@lYHd: fg}ɨGTA5ށ\KL[/`>W+8f2¤'{0Q_q(THu磁d=T+ItNRcq )ɾB{,lHF=̲U|%B +PKՋ+5Q!DISTRIBUTIONREADME-jai.txtUT EEUx +TMo1(U[n$ (MH9U^{y͒BV 3y1!z]Q;MfE1na:{?.f`Ֆ/(#DqU Ua*\#k6 L6FSHY#Z&cP9Pq<jQVj% ׃ ^QV$AWUƂ +KŀcU8ph8'џN]\@[ +޽iQWX6*UEYeyS{b-Oj,6ڦ\uMiUE"?r#/,+8brS?\Y@IkS$ZE7kVzyΗ\[W̢ٯ%VBϳ<*>&K VԮ!3-ա,z5VjuYSo$/6̩G/@؀6 њؾ05tX-"~UUf&*Qڀpж>*Q'+HaYeP:3ᜣJzWZ_rh~.B[;>=j:-" ) +eݱJlg)Uce5 ,Ȅ wfej'e +_rm6@5krc{8-T<'"]kQ>zD`>$ueT5 tGJBo3nM@WmylNLS'TzdNڤM})6+%"?{(_ưh{cꂯb*Y[MJ@[y@ R@>_Rq*ҽB'i5](z;PGwy/ '/mFj -QЩ)8Q壘#jDJr=[~O 2q;7*%P|9.-@@e|-c2p(\?pX1;Ԗ4<%k_ cNIL +*ɴӧ8#`H@H<=&_D$ r7Db:YΣE&'070>/Lmzq&WuI#ar$hN) "K~ 3 RS JaVD)-XI֕S/0JiMS՞XBF錾,63@>u+XSPΡaBQVU5?` +kq2'rՌX-nW:POĘ qj>5=Ap՝!@>Q'@Ku[׉+srEu:q`OIV^/ݰhc#BD;/49++- wi81a,2|V!%BUU0^ q@D9˷ţV՝7r?HȮC )(?w#IҮzo^`-?x;u 7҇N|Hr52+#r XtG.6Yɜn(8}K/rɉle30 N+m(XsD@{+k6 +45d'Hꖞ5 +Am~hEqۗ +Q\w?AuГf+yP68kcnl*D`c8P?I?mw\qAuk_.A%!$]Қy%-tٰ9~0e&'6~>ڶUa~ł{Was149}첁ZŭSW:WS6^ZN㜻N7=#@7j _KϖFxtjedJ9z\ +m;sdzy/1SxEQ?ώts(^~8bMg͙lt##kYʝmg#+Tߝ_\_|ٽDJ\YFRn,OSՎSNXUfgR`}]܉[ITu[.~|+n*U͘u6&vG!t%2e7/W Zvtd @?a jis覧ꭺ-O2/\Ym? OAB25NC '{DW#QkIOEvm +XNĤ*s{7a>+?99\EnTu9%r΂ndL@ +4>zzUku?z3N*K83rRu-Õ~ '_L|PI ķ OˑczŸ:qݎ{37WNŽاu #wTG8BȮzQv#k'K +[ڙ鄠D8s>W+05(z_W#fKoAr:ݧ[̬[A7>Yf-qAH^r +sUcRCvR @Hj +A.̎ƮsvCBU,O=ֻ=㶔tO;8zWOQ @!۾GnF?EhϏhDŽ!+OW +2/3qY(dWׇz0H<@z+fo]ϯ;/K{ ۞.G9jmzn Q wm&%:\?M0/6 +e:=C Od3q8ԪK?uUlbuי`ްPw\HkWv_>Qč>?pA}ud s3Ʋ;4E4C +]UUcv>Ӗ)Y!%_Qȥ%PP5i;?7GF}m}~ aǬG9ˀ3sPf"3l3\oAz?۟Tz>ּkNFN_h(B/ADXtrh|g)_ddQ>=*^MDR>Є-oŕ*8 DN$[k5A.xfl2UCT4}@6ͻo߽yu+s77oPKՋ+5ΒnD THIRDPARTYLICENSEREADME-jai.txtUT EEUx +Vn8+$lvHl6FKcJTI*{o7i[`@DyWZ|q}9_g:_^u>hY21v y[*s\B=5mN~jU(>*h[On<]wrSx;v5pW;|d +*F2s+FV4zd ":jDhF˄3ޔz/4Ci{e׍[|/4 P}R!DqsL?,>rMu-lh#]ej[wb,x&"iC)5ӟL-KjzͯL$B^竌Deln*mfYˎ9o *(]j:U0ֆQU܂4Uhy0R,ǁ.2(Tn׭1]Am ulV3ulu9dNhF5s{}ǔ!:qpWؼ< +ݰILxقn3<c{ z%eTBα]KMj^uzy5#و{e1sjGmi[Z &{&m^v}V,b=/-(רWpBBb.)c| "juRFGDɟHdY RI݁pE>ZcR6:& +B{hm'?T{{?H9 tEa`pݺip1P?˕ -V2)֟^xjU3ZAS'_*FoNJA7Z9~FCwZ ++l5zb_Ɉh4t-z+%<%NK_;NQ%LˬaZZn+ [SWz,BZC|'kfjNw>)-}T0 +q8 dm.ś(],J,Jqqt +PE%" ĩ[)&DF;^ VᴕոCNx?Z`Wԏ|$` Jbe7v&WAؙB"{ ~l+9~޽iVx[ ֟}Gtxw/PKՋ+5}"/: UNINSTALL-jaiUT EEUx +o0ǟ_q/A˒Ÿ\eRHA柿s kswkھa!Y6B&@R,V^@zJ{01зíN)ζb>gZqD^q͗4)VĘ)<wզꂁD0҃Jx<䒀^ +ܕ]vYs +lW_ǭt9< 3ƞuwuehl5ZCEP~N$PK +ԋ+5jre/UT EEUx +PK +ԋ+5jre/lib/UT EEUx +PK +ԋ+5 jre/lib/i386/UT EEUx +PKԋ+5>o8jre/lib/i386/libmlib_jai.soUT EEUx + xTՙ@AkԨFm2`G1h2  !;(ֱmQEkTj+Q5ԍ]ԱE.]g͈rn`xMxs{|.Xd2hMR +O/U,)TrɊN 0K1j¬$fE);UQ2VhVZzTEςD_͐KxyVWCNTBO @n D#ɺ\LK^/%Cz B_(dNH#8]ՐE]׆n |2߁\ + q?B0 ՇN/ 5$ 9 +ޓq솼' ;!1(x-d!d&_!0vmJ,]^y<^@~cp,-!a~ o!Aރ!_@ u2z0HAKte[ X!=:>lf!!ʏkF}^ 0}$B~ d |>\9 R s 9vr,d#{: u y}#d/Sȫ瀼[x?ge&KRfzz7ILQ{ P92i/,C y.5䃺{mb/?/#-[ϸO~Ql26k2?6LIvTYXL)icH$C|HbU87;i ljS3B^xܨǩ & EL~+ " l=>c`/]aoY siLuLk=JXT q`\bw5}?FM]/OQuJ*y8,">r3:U7Hw;n\_&7ik6ް(2ig=5= VǫN>7a?NC}lMJ?3#XRcbyb|p 5̤LW͢"> D}P.|O 3)Y׉z_/Yuڻ'rI RgGynjTp@5i{/zp֓:Ls·۟t?zY@'W*Fb +Sz=83MڳxNďx.ړcI{SSEFq|\tCJNy8D#&%ZϾ ߱>b2/!~Q<}HԷ7LJ5F}2hd_̗71k_̷)~eLJ{ՌW ;zwD}C-^UׇG0SIy铰_ڶאQw͈ "QbUΏ_2:JfѾ31/W [{٤d{-ωx\UhOFoWc$ /1^`0?/0~Ub1G/`EzI{GVPYjC| R2G'*U{{k1-G],\Ox9(U7E'_]L<8MTq?)HؤoOX&0o mu?W7BI:O#b}?[}@c,̑|;w)]??A{E__|ߦ>l4;O bObDmNj1cM1y?Jq^[Kx?/1OGg1֋n1U(=8V(Է6V.5# ~ CBw>Yu\&r~v GX_1Ѿ+pw^7/Dt-~O9On%=X>ßy_/~o۫#G5SN3w*).ꬢ>%2Sm?>P>hR~ esb<#!7fᯫHA+ʛ}XDM4^#{Y1Q_c,DT7~_g?SX-''Z~T>|GMO8CbR1ژuذ3ZhKIH)-'EMQjiTZQ iEyB孞 +y"CK+󴸤-SYֺ͡Πj% + $*TxՖFwTZL. eZ3`SI=Io0.匍+z \MNiWV8niKYq{n۹ҘNW~J[~K$$-Vܮ@Umn]܀:e +HK:eYa?.??*s-2wsз2lhfv\c^amVV~0RtA2}W^$V,vwچbr.K.r{ޭז[%K=%^9-Y{5{ ƽȅp^$G0sy䮓rRnLZ64]݆Du=k[#1h$SOspTn:.mlߠjct3Hg5Z!Ewn)aH c s'xl{\總٠$_vէ +oqpx K~eOt_g3"(UL՞ۈgU9cp)I!y)1eLR>YЂVn4jC [Ѹt\Q5d^KvcR%>2*PX/] Z?դUqU ؠ&PrW opԻͮ&_Kiv{7(JVLkM^5+W8ݸT^iŴԥV\kեJs+YP[C~QtActx+7*}olZ0A0w,ƤQѺq,lJz9&m-lݽѺ)kكJevtm1lUdlOfiѺ%*.'gZZKwzLژ1)&.Nu$5O[Qp#˫:ӠQ4?vUYQk{mI_OuJ똔۵bIz]J:\:?of/!d.G,$H+i#dYA:*!z~2Hȵdl%v2BvNHn"7Qr Mn%cdK ~r'= RYd6C\2'-dYHlr.i#dYA:*!z~2Hȵdl%v2BvNHn"7Qr Mn%cdK ~r'= 2&s\2'-dYHVM%m,#+HYEV5dYO6O dNFrIvMf2Jn!ɭd!{dO$wqr7  +&sH3K, "Jɹed j#FC "גal#An ;.r#LF-d7=d/#ɝ.2N&dG'J?&sH3K, "Jɹed j#FC "גal#An ;.r#LF-d7=d/#ɝ.2N&dG'ʫ2!d.G,$Hi' +AVd YG֓A2D%d+F@v]Fr[nr+#{^rG;]dM!O ؿd6C\2'-dYHVM%m,#+HYEV5dYO6O dNFrIvMf2Jn!ɭd!{dO$wqr7$Lyd>i! B,%gsI;YFV&kzA2D%d+FHn"7Qr Mn%{^rO$wqr7 "sH3KdYHmf}p\fwP+p%v XvV'eYZù|wCiډUOWy}c~]?|}.l&tc3`+avb7{18QQ )L4ppӘ,Q hA+сNG6b6c bv`'va7#؏a1 N <.`SKi`sG hCсNG6b؃~!&pgpp0)a, +?Ўtb=Ѝ؅a088ILa`WppMY6X.l&tc3va7{18C)L4,<.`S<*X\5\G+mhG:]؈Mfn cbq088E\eLc<*X@ӫ kь @'֣  ،-؊>l.0`/Fp8888 9Lb +q 19̣\U\u4FkhA+Ўtb=Ѝ؂6Nn cbq08c88SiY%b׋q;p888 9Lb +q 1b`WppMykь @'֣  ،-؊>l.0`/Fp8888 9Lb +q 1b`WppMoE3ZЊ6X.l&tc3`+ ;؃~!0N&pgpp0)\%\4f09̣\U\u4IkhA+Ўnll6Nn cbq08c88SiYy\$ppӘ,0 ++XhF Zцvtх؄nllEavbvc{#؏8QQqIN &1˘ f1yTk&|c5тVх؄nlEavbvc{#؏aqIN &1˘ f1yT+kSkь @'֣  ،-؊>l.0`/Fp8888 9Lb +q 1b`WppM&X5XfmhG:]؈MflVav`'va7{18Ca1 )L4`SK f1yT+k+Vc ֢-hEсNG6b[}؆؉]؍aaqp'p088IL".21Ya, +_-hEсNG6b[}؆؉]؍a^`?FqGq q'q +838s8 ..c3Q*:N3khA+Ўtb=Ѝ؂6Nn cbq08c8.4.ȇGCu FC(!}ICȇD>?.!=%N,rȇw"ҏWjWV,?>n˿y;O%mܖU-v1u[w*mQQn?v- m>VWr^n]rۦnSeNժ/{IlʎGD w_X3cwTϴ7l)5uݩ[Wu gŷѣ{e36km/mc9h7<m&(ǃqfH4hCI>de>?lD,C+V㍆sg[wh_(>()S"KD#>q-s#E3.٥'#z"zTɋ+b"esYIHkvh&T}JCN\!)-1o_X_7,gwlVy~OJ;*~uo=`\]}Z'%?h\} c>lJy1ٲ>ھ#__?_R?rW#.>9эbS_/{g<^U7Nx&ߊ9= VOoү?uT{o}h&Ֆxg:KMUˢ5)5—FݘCZ)/Ŏ +g9*(E!qɀ-hBk7cIYњ_GC͡hBkC_+F.W_VE +CU\6#R(Z 2 5"yS8yS$x!6#ȼe.!b+857. 8+B5#tF5Lٯs3(vd&׾$I$ƽ#q8T@ҨVKˤ=SPcb^FQ*n;~v3g]9uT=[1>< @H;BC'1WEh' )V㕭k21[YIexl>Y.x@_Nьubw?{7Nxp^tx]^7^CWxh0^n~s?^xsxzn7}j7ǫcxloxM)1GuS7^7~zGt#EqGJG#r&Olt6Wn>wSi+郎W2^u?үnmڻxunWWk%Nje+wvmjޭ_]|9W^=e}.oDmݹKZKrY]{#EE;W2qo: 'sUNciFd=\#d1$KX0'>jKeƯZ;C %9=-=L^ws6Yb향^vǵ#cK"+ⳂvF. 6Y!PZd*GvQ|b00 ;gb~|>S|>a<>ٻ܍O]oq6aFw+C{vlene y66&b%;7w;[\x]vq~8^o78^:}.둧+8^l7W\ƫqme7m6+k {VG+oqăM"+JV_-%ӗZ_UN5.>v^FWHvsi֎ȢTjiR3x[ڤ?ey֪Ͻ\ϟz\]ژDmA l<2f?٦vAԘG9 !gFg/ ELê>1ʉMW(O-Q93|-kWo|Y}"OxYh+}8_|M<A|Jνo3Ͽn?T{W矬fy}Zq<<3+ onwCћ=rhgPr##yvU,(P#v]v[iq֓˷U=e1.ZeE;jc(2)ћ`?%BXXJ'pݡ؝ٍ_; ֒ہy|_0_bm%"~A2~ߖKu`A įIƯavy9JYWpx_ZYKXqR]e6w O|(ohғkhțXy fkL@].M7hv1崟KS/lrw=iqe4Xb=fM,J'-@sk;sJ_|ȟ1נcoG>hUq>F0WW>>I>fLHDFN1A-eeO9@<=$m.|9r2/F9W<5_6(S'~Qij̢>t (rL -k h=>_pOI'dcu#szW9T돇z^7D| . +h$*=k?HnoSηe+!߻vIcD ~0P`0wR?WB`p5y2u}G|$>?(B#"m0|W;p߿ 6|g8|7%vw }rߩE_ |o遲`S|#ewO |(Qoׇ|G@=>w| #e~n{(D_o2߳zm<o>wY#Eg~w0Y_ +|g? ?~2_q|#|/x+"s?; ;{Q^/_zM|dsz-{1丹߳<.^%=As%@|a|Cx? +}KmW{; \̷{(?Ͽ).s,]ap'|~<}|7=cT9#r|P 2=}w˯ |?W滞 ?ϟ>G=6;qW `ΫZ +Mo\%ouMlTf2FL~;w>@jq{9HC,QSn~^? &+bG6V }p;/XI\܅NMh=i^M G-zԯ.p χE O^QIHӫ~I(ݚXCI_ +{?^g%} {\g@hU4"3}?ay?eL˗p4+,i+'~?/3?>_ы\lMr0Ki>uD7?=E }A?OvFjl'}\?awϱ.} y&MSq0M[lg|\?]wS:%?]R ` rX$s?$?鄟?as?] pw_]<+d)p9т+tA_UC0F`{n_wZ3Пol ӕtLl]M5Ft/:'XqNvϷ!2 1^/ɒ3zhiB2{nCEʶ4մs>8+0|rLˑnϷ۫xѣ=ON'Jg{hsonk="=ksy!!kel/(,i'~A L |̐b> xļ}M]1h;Wtd4Hg^z`I,0쐽E`j?EBQjz~)5.(j??RVޘ66gd!0Q]7&;J)1!H{i6jiQMj[3_m>{xzsxxNo)VM<TMx߱ϫx-Կt!ի͚^Y)udK >.3jӌV$:S|||36}nH;^ZW>=$֍Mll 79쾔$$k1{vGS% ~_q?&߹Of?asgM-wh6Cəl'aUlѬ Ww_T$Wh|Ip|7yJ(Fod +ܠysBA? ?4)OG7NE@4*O'N%SMHOBp^a~l7?i~WkX}kAe5| ˏ|:z\>"ck^b|Ti2wv>?lZ(N]~L2ӌ8Fow^1wI?bgJ,m]"`= "dvc?`!9O|Iml2x}hf,v}K7AW 'fH~0:#uKw Y"#َ-{#V*Dmۈ&ǐn3>gi'D5b@g,#_o7f,: ]tR+6fѤtcgMf,27d[nNnCh.T'\N*0h&|d9|Bؽ c̟6I)u$=Jd=fDX%ɣK8OP@%y+-Dc¹h]kH,8oQKﮰ>pX7Uwdoy-jw]2uߺUxF"#vߥʯŭk&m4`yo\EkՊ +5^)vwν} +;J7ZU5im7x9XaoZUxsDKIծǛ{uR*heޑ/] ]UzE]RWJ']\Vvrx7Wx3+TxxbJƻxqxKa*]"l=^ww%!]g|jAϧyޢ<Λe3b1nyMB|qzb28 ?n~DZR%n΃LYx >7ڊdp:MbZWa'YR:'Y긶b&1;npN/)4%t?d~1k?s~U1\G&4f;fW2f?n:8y@d|3'Y}vP>Q~G IV*{QV*.2~u/cojۅk}Zw_i?qBȊ:m +1m4jm4} vRN kUև_,ԇtt~481%q|t}~oh`k?7a߱m$3m7hqInL hf;Z̰`<cȸGC* +9AїʏG}F;>4箥fdWdF|o@8T j}Rj&ї+3#r0lɔН<ĐlL >etc6XBSdxSG(;m|O~!a"f `yy?|dVOČF/#:fuc=W,#lp8!diD'q35$yFZB=b,)KX 4RQ$tAi,%"E'gH)KR$YAn<ٝ$+o&wTH>ف2iɹC/Z"=%IZwzsfѿ'PF3 +l,S:լ)!4ca|EN[](|8vBd7Ʌ|H@^A3#oTzUg%@ kf_ +G _=CDs,]"o^!~SC?yYr(~S2'XGw%oZz[R=+ +{J)E7Y.wtaElfbwbSR.~Rok~%BnⷻRߦ(K}X_wxaqV9n2d$,I,Xh"Oc%hu/'uvO b`8f;~ZB,+4Ƿw8F=)ؑ&HYMȜfHώ/Nzif%zJ'h<&$[t Pb$Y:enKlKY:!Y%w:rUbV":!( +Z*X#iV0ReX]=Vn+9iUR[{s6,-WJhj9w|~V=ܥR? g!?,D~v}}<Sإ[> ]ۯVѽCCG.kC3e>|v|wj|<*]#_)P +Rg,icQ||_2U;\GW-G6m*> D>mgRe>*v|Z2k|lM0f>dJC!U6*_OZ&q[:olTX1Ǧ"aM~(-A+8Xtto3.[==]oi$}P9iO؎/%bRVөZ/] rm:Rr-R&N,$t N^b-ξ,#7hލm I`\o' Zj޷O8m{ʰuLd'c-Φ +;HbGqLA­w`hy ])dZNAd28'|+8ބDL˃ +s4+| ]!_X( 9)$}_nZf W (D~ֲ˥}&Kn7;6[CA+r&nSVz9w[skokq|};_QYբȅϹ zr||s Ubv1Y +;*" $,!劣g5LUˠY@~sŊbeoT[ar/KQr}-1οZ*%p{;X}aRmR8%.˿u_ b[QDQZ79{ S7lד[K[{i@ P ^@/RĿFRm)d e +oNo/TxcH_wߐ0Q;bB*ϗ|6{O&w/F} +ojoa>Zoh/~|b磍d Xwx"wZ en6 +fV?jTz2iɌ1-֎1?t^t)p@gbLc{aV`@/L1tV(ciZI- Ʉ +E,5$%uwkx'^&A3|* Pՠ$_,)[*ذz!i9" qUy@&U[z ~a*lU׾%(R#2a(j!Q@Z}yGgJ->/~ṄZm>OWlp +}Sg=:{?^`[{Ob=1~Sc.mͿzU+s2ޏw F'k(-b{{?¡޵՗i#Y{wucX{Aǀ>a#k6v{^u_?QUb{?T`Ǘ2ލ>3 `oﳪx{~r{?ຈc!3P[4Q +8OM+IU0E9#q.>|JCaN}4ȣ>7#(|5ڼ)YL =s#T׏"}RGCA/49]ys闕\AF:8Ctš]!4\Hx4BTĵlhIMF<9+&eENɫA/ /OJL":;!tzd>E\N GxXQtV/vo![m=YLߍ0ynTEbΟT7|HyIi )ETwN)b1̹ޯ)h!u?sA*u@~Cox_|;q}=}P-}j3Ҭk`O OJ"^;Z'^[QO O`urO|{}ަ*TMv.ɮi蓼f,6m? 6X{=\Sv~u{}Ӛ Okm-V{HMvq{/=z4Hӣ۾Zioq{_[;".?i! +r)mc4Nǔ)`WR[0U>KX?zq.HnFBS%Z" +uVsG֯Q6+#m}.5~wP/q|;h^._-ο;5ۍljwsj凈. Mm1kBc4wS[ȿk8(s&'pl)%E'p(_#)JO8Lj^&"YXxg<~]\1o<;X;<~b-7yܺZcKPcGofyy,ayXxqgs(Oc<6˻zLOp4?:M'_M6XgՋ|9dTc9J1պuİ + )SgSdèn?~lfxlJmI,Q6m,lB_Jؐ,Z=Tcfǖ3xgj(cݳx ]D~e|] ޳f +aRS;'{V3%g/WgYC/ƀxX.3Z|{nF ,!@E[l`5S(AuGې}yk}ɢwZ{StL"58[.b]{j9 -~[.\~3,'Y~'E77demH-KMOe~5yz'тwzDv=cBp=㣅#  +3[v/ff=.me}խg䙘hn=c`=f!^?'Znc,qؕx*PG$qI/xW4ã3іw<> ,%,<Y/\&xG9qR|ۯ9׼5__3 5m 05r5x& k*=ܯ$LgC|3 +V=>x(|~y1Xys2Ra#e:D}o3D<(LHK%QgJYn:Uy^, eWg;Qp&}^ +ד6R~[QF> 6RM5\K"X'܌3s+1'g\@sy^p}H_7UaNcj@wwY׿Cfh0tJu&fE +sSrOIuy`j7_@aEfҶ]z~?Wno1 +j*"64҂;n`E0P0=3҆㮰ZgTu˴__I-FLے,@H|?:J%  +ՑdvѺ<:O^$I J LV?ZV BiZQŊ0ɾ3ZV*јBfM +vPT@hT?1W%dx^}X{4 |<4ZEC (ջ*ȏ4; piB> \1>Nsnq;HlcNaB48mѤ' q2`la'ySyPhp)e#)&,T}(A򟅗l0p08L#}3n;!nu´PlUHs8iLu%\ۥnuJeizD+9 +#z +UA,c5l8WHf(SU݂Җ/jI_PbKE_ 3|^dϹ"B_ޗl~Y~7_}뗱@,%/93r|/;~,VO~>W_BjF˚i^6Y֌@8wP̛fbYeedf-6/럓P^NHa6%ѥڝSV792ݓՈVYUOVm>[j]Rk (b 3HIA.~vFcג b ) +0Yq o8OĥXTaPwN \,= C?LQ[]p؀moy_KjӤ$ v /)TE^?E<0sɷO`.[qsV<{'kۨ 41--#A0ɷПN&^'N[34+Veo@9ReaL,2 7ܔExk!7:1 .Y?Iо/'!ccqFBsw=Q~$jdX%l XH!$$B, ++M|` ZDQيe+OgzB-古IЈ)M1(FM鍬J)Q޻ν $9ofiqh%#{΁wH/v-珗i)=X1G?ǙZvW-h3XK#XEZ.~s_1叞:1[cx?Tci|X; )P?z\{|_[3`9}}[7xN2a.gcB}?Z80ۿ}q.yH%)?+`k= Ztn%}!P9Tl*hCdhOEwC|}]뮫B;Euʀ +Ҏ4hs6]9-9`7% E +v`Sڟjr!ف&|tw˛3fwC`5rtBsпD,,|0.>RX8tMwjЉg򁈳5h(8?7Sg>i C P_%) q+w7ze׫,Bgѡ6:{yr6VHDZ};Q ;i_|tJP>jwOcܙ5|/RW G?v `G!N\09qTpoc(¤<i?RZQ_w&}OzP/cVG[8G GP#Zw&4d3mԺ 0R/wIO#bS-"Mpz%lye&믵1G_:t#@_F*vn\7U]lRQqYݸZ<&?@%ϢkϢ( 7 vyd2 57I >C´c#k],ϝRЉ cARJ!GsI`<Tkz:J 1E$"+B<&Hs%ʣ qT>E:NAet-* TrXT7a5)pN%ӔaOK+\6.7AE߼cð5rX Dfe +DX.voi9]1!Z UzNaz +&!5ȮaQ{?>Ga/)Z9C\W-/bruua*/cAVy۩_a9/kcWNi,b/f0K_kY2c➢_~Q_~KA/SY͉:Z%:_ޚ/ Py)/)s&錔#?)Ž704KW?]u#gC&be'85?fteZ<->-V "B|Cj _SGfnd3a z6?^!u>.V,wD Ƌ|Ia:2ŭ2&}Fն>KHs~xcP8g N.{=LNny,ѐ)pN!I :PrZ!d !"?;?g+$g&5h p!]W.@y?n8 Y-%s)ns'L\j 9Pvkuko|2FQr?*VAb*D1 S#{HE7^Gx|3=X`v3/e%)MPnEo烅|5_'6xw6Н!4\l'm-sV>pc`T&_P3E>kS}[A P5wmni}q Od4Bi AXXpJG''l:x֗K$i?D}+=U< +|t QV2 $/{#6xs#~V?@><жݭWu(qQ=32aX/Nw@G@v{l ;9PУzMmy&xT<:X_QdЯw1l$=ת;OVJ>o EH^0 Ep"ɸ9*p֎w@FkHV/jq'n_qqLt\& A l>qG=w`PX+$UNts:.l!x颲y󣰶^\cNhѥm2MGʡ@wx( Hp{|$Iw|k\s0\'HZq˨e@h+'RhyBJBхFRdH#`9Sl0w)6* L" "zk0_bڜ*;OokHiXb1N?M ^+gH 6h A|RlKk}2 G-ǧRۼeo񩻽9>W"5R$l#f0no(IPhBXo"g`p#fG{ֵt55~0#uT3I5|ࣃ.Tv%""xe> +r$$wfqI>o#v}+e@`_>R/CuR((̒_X>2AE.AF. `{ 3N#?j1ho% +YA +-+|^5GqYJ/MM3fB501' ßQXFX#*Skէp_x!u^jyŇՍWtϞL)!;1 Jxv/ +K)i*n8f]ө4rvkH_S&*1Kٞ{,*|fQdj, - F2+os*{ +ߟC|b݈+CȳԤr;I4UC&s}ڎl#8˩FPAH'6iJYGY^<R?Lߞ}=IbzGccyW*?4#!tniP:Z"MGwRwjJ@B0I4?CbbIN)/EMc/_4}F@cci\(j vh/݆VH+CQlkv@hLe.tA1SY)/jMU6݈:O's:tq*eUPZko d͵Iߧz[@:d6QtI1)lL[M/7<+7IR}|TzR] f.A hh d?_)ЅO1E(K̄h { +gM\tJIS?_MSg 5@ R95$nn]>yіCH3LOYI$}we&LH!UHB/U|Вs g$y j,0$/#_i ]HZǡ$lr# q/лmIW' U8ɟCmq9&1se6GgcT&3=4G՗מoO@pQ0sK`Ip:{%x7gQ>C RV՘+a躆 %v5/"b! @nC}$ށBUus4ruRHX13$3iRWVƋ Fi] w@bfr!X\/BVtl߀RV6VN.!Vt˜̍Sʅ|#0k"+ + 9]$V>|e!>t 𡋯|b|+=W.|d\YùT_b^ * p s<!}b'&9T\{͍Abϥ0!mº˝bXP kj<_o­e +1t :RN9mW(vHi:1xVCCWb>[ As@do??.~F-~JߟJ*=ok~TwG~K+7<ߎ ?O +o +&QO6xKܣ7ox͗o$?M+?of yFI5av!lp0SLrݪuzrVm&虤囯يg9x%]cak# %CNdgH17`{_ y4c23paYٱhݰGg<Ŭ+`P( %0NW_bd?+jEвjf'A0.n>#Y(O%̙$kn'QkJfW&urZ>k<=iX{nO>_o+_5|x㝻c[c_>g:xX߽ ǎkq]_5|Ϻ|V׎uu{4=F{=WSW __mW?ўNٞM$社߂;c/Vgg^[k_՟o( Tγ04MyWMB=-JQ+5u}Jg/PƪJwt;xn+1.nf+{Ee1ONoߞz6g+$SkULIfj׋3n#1~C +wEgѪ}$p6^ g0*BސrQV +=Io%ޜJu +dy4Xԟ?vGY1 +0$oϒFfHh,4XiLA}+ԗ/rQ c뮱b5=VnW?eQd,;6ʮǭ1n<4ޙ1R瓽usO\a 6&%e[*'W%KDvt aE R.IvIY*{XO/HfHj& _ugD~Ft GDEkz.ieҊL_K'e?ăv%`2 ylw\z (1(w= nV ·]n $(=0{[eO7X]p,6]"ׁSQ+L[SwZ+ATk^|vtO߲xwwwBw&wMiw;'iYBOw}`\ \ּwP džPĕׇ3э WǎȊ$)i=(Zb+yr Rʆݎ2gs GRnK qٵ'A6/OzA<256O=ͽ}Zvcƪ5,1/ᵴr9Pd@s J뎡ywzMkg~9Z_hm4Ƚܺs7$ 3(9õ4ohqN>üL i &C x΁[˫ygQi#/3e-#\_jcC*U`mjH{uQ4M^}ۇA6 +WM8Y5,b=(RC|PՖ;Y!| '6@ܺAo7?o2E gNv2ۙqA C xvjǪQhЍsBhpЧ#&ח}+m 8{C٫H N•qiOxpA[uNBT]:9X_܎N3u>7Tԥ\BrC+89QNiCL 70ĭj KT.SCD,lfö|I67adڬk+~)rݯH,JoZE0Oj]Gj6/G`YHnA @Ύv)h +/i[ mP\8> +5=RКx(usuz1{Cdߜ}GQY!dZ}]S+Xe}Rx$!6Qpw;}imCi3!UG<@B q> 6MJÛeR8\{YL` ~^e|o\}YYxȧN[Pp篶X`).8=8` K6B|!NZq]+1q࿎'m`'(ꨰk7^]ܻQq7yª,qّc5x}zo>*?FC\5.UVep" +&@ ucWv0/dYIQvZUn?fBCEfyBUt (mܻSPZ-RZ-c>Z|Cg`5룥0|Х]RFMBmDoA٩Q6AP /d ̥s+Cl.#8(r=9UIĸJSAahj0:p$n1]CFO]CuEI{DOR yzhd2a +Հ{ ldvьD(m/_<MGvה6LB +0">/DCT/N71;5[*MgA8.YL%6Gk"l~%Ճ͚-2Ibz6ALς\$ n9lR4kl9 Ic54 prd[a(ߠ@BW/5 Im.e3%M)lƮSqy~;5>i-~m=\C& + +eN0% +h]ApB \u!gHvΟmӰ4ˬ MP2:֟ԗй: +Np\GO'imF >g)L#@w`͈5j'a }cJ uoˇn{K f==hSc+\awU|}ѧ<@$DA[q:qt_hKܹXE:BavF+h!t Qn*Y{ԮPljWSn@^_տKe)) SqN&8kibTgUJg Z̵:E'OUs|)ç[O ┵1x!g7 S'ןtA!(zիm0aP\Ad9 餎C.jvarm01"?{$=k+"U>w:It{x`Q́f=H*vWTm *MaV&6sФX 1N}:\Cg /.4S`7&yn;Qc 5>fޣdjGNZQaBpWAː`VsonC v3 u3WlNϞԟAj+g8qѶپ JG%=qJ'su-O_}&;_42Q"64 i?΃<ؠ@7elC`Ȥn}IKVJz,gPPlvNɆv햦v\-& + q)8~wf4/hm;{g&kO Ml_FitA{.|füZsYd`0,c>nƗו  S.nc@S[D+\8{|b/x 0'iGJaLǺ@_ ^Y$p&zr-qPqXbYZqN`o(z*mxlÁ48O Zͱe>`-69jǍoo] ^ǛtCL@(N8A4-B2v +o0q+7[r +~ h܍L %@+g=P!];t@+~>K:;t# cr7>98|6۲'ig=kJid)' lFI`$~l4cj.D1l0Sw{wbOf\8t.9!Ѩ%TiÌ땱e=W)>(>^9JS!\ +K'pKޫ+r`)~Dpn)ؿ*޽?P*:.aޑJSyX(\(=dmNr|+ o] "XxތWD7RZXZݫ .)4*F ӟӅF\cbH<] X7}Ex&wÌi6ԃZ LPKT:prg[m\y_c+ cR /W;)zO0a5) X)b/ӒM@iiYK%a."paV*2+|RKh,LZ0GyǴ0- O0H-7&S&aM&LQZRng3_ND45m2Ff |P73$dמgfM, [9 9ӺT:NԲ Qu:hz*2=p9;CShg c|cgO+16F'a=6hE 34Ō;S*Nmvmvɖ2>Z>]uˑ>kD*]B4uC +~^!w>A< +&EN?p菞ÉS6$OQy%zԜޚ]*8Y,\#&_b5b;yrۯP쪫⊃>=!{{B~ +0{c;D0`@!kН_u9 nxxu:P8N<>|rq#|ONөNܭzòÇt=)?x9 ߡr>7O a}ȯ s;0=ƬB ^Fl+̸+ HavɉZYȥdECԞF;mUA' ޽#M}?CetTC/Àԫ͟<;}D|u8ۇ[t2A;6nt $xYPRϡ}1X#^7 24 +Q"A']܈p:Y:ƭ6<} *5\eh/Uyzڥ6<}Qs]| _iUz玗WlK?r9'gp8v-beWL1~>0Q?n8۞zk'Աm}G@ 3=6xgιd;X"%Wm;2}T}z 9Uz% +ˌU ޲4fca3g%%\#hz0..tX55]i#cH2`R +ʃ7Τ^eȊwQV6\a)jI͗fj?` Ox\<1W_7@)h3eTf3ӑ2*eP&2Q/ $eկARЖWAH$t颇4Ph(~ܒn`i tgL!tZE1jc`mr-˪sPEcFFƌ<~1,Ӿx4C9d1F$3,$ݙd# 32ŖwI +Y=+'Xrwd„ 0@v`B~aN +C9')x!gEn>i'@s+!Ƕt10٨n욍[ `Z,U ^FZ(2@14!{sB3Gj);Qu7:[n3v[!OUh3#,p[έ?yn)ot#Dc>҈7wk¸R,"}px5늷Qun`ktdXH~R[~-!QH]hZd' Oļ1UObA|.,?6H͘V+!4$4N +TM_%+5 <|DeD!^2Gǁ=x|:O$\+x wy|@,/)|F +1i7w$>d{]7r{žK,Q|1kɼۮD7;SD,yHR;/gK_E; #]1CǒE8]H~<$_2A&ݎ%^En7Py az|-*s.7,'z ?ڣ|)B0}E:Hv>T^h`db6"Tf AŏK)nUs?M 8^N˜k$c+1[h :X9;M()`rUۍjjZd(0P>CBs23_.vXEfNM!1Aى;.=xyϸJ O'S0_ݩZZG]Fz3zCRO< ~'f)d*.`@y vu2.EQkӐۉ ~! [)w/\AykL)[Ef[/9ikt8i}e˃1A7¯fc5iZ~jʧaKگaGorc'a9)4 s6ri=ebO +|cWiƓ>kH&$gX<N{ھǗ 9'5m]x>. 'e 9zq{{\eB5`-TB/xI Wݟezb8t|B"3S2)ل%YܥTq*t?Ɂ&׮/H*{BH.1O W'WSN#txУ]gCq<ԎͪKrVσRafB!P뎞vO $ C f`f阋\InfBk0%H8 eݥI&p |֍xX Di`$",&wUqvK"5uoRA<%DW9@ + W(wAz@N;H;P|{SHG_㋸NǮOJR'&+ҋ~i +?l+Æ< + !-v4 M,4fod 15gdE7La4_eҔlR}"W= (&o}*[GCt~sO%Vt.IQxGYZ{ዚ5{"|x >A tMe 08Gso@uğY`<%2+YUY֩WIw&;4uexTsEZ=:>$jA-/?wB=})f{|'R?#v/!v| Z ")]d_J`("v9;v꺼q%AgU^ yD@hIS0I$+-#;$M4hA4@㶀V[xJ uн:[G"@ +Dx3rVCn^@ +@Y} 0 cjBh3`a'vLb`/!3pn5$POAL#$`Và|rS`> }iY%5f6&j50{kΡ݁Mskdb?5IXV߾E9H?zyFR2egLX}Fd l׋t/`ta=ƍ?fɁ'0XfڌSAI7A f#cq~ d~s\JȁDNCSau@崍$(UgixAcѯ<zV]/?@  4M[D-8m0d{zNց6Bҭ$xn=o:KNP-O$Nz O,%`0&Ss> }>!˭z}ϢٍS@ :!Ci C| +$JD|bmk( 5wmǑ|1mly:D8EES83Xmp0/2Q6eJRT@10{O[`O%{N{|]?5FFaD6upr)@7`CJ2#Z%r1|(,M&L3vM"s+P[~ps6V3}^xNw@E{Ս\5P4z@z@& 푚8BZ!|s#6Ja ,)IhPv9Y Qn=er;LnNN>k3+ntUa/;/ؑM嵺~c_]r cαdѥCGTxOFBOBF5 _!PRJޯ  FU@)6H*VVNCZe:@jk0yI\XyK,jw\{;|;U}|)*]Bne5s:7Awԥ܁EvcUO V"oU,S7,E* ў`^5DpGTmjXxQ%1˘e^%q[`+^) vxfXlw8nQ DD ܁<ъA<mUMao 1O4JR4VVUW_<>3 Pux2'lUqw?"T턟'#6{kpWD :.wCUW,܇סWظ1RA4Yݗy;jurB%PjS}zU{erX-%4NYOP~C'!sBkG*,yn(c}JPEն +BeCd*IhI(!.e'x+Q+o,rԖ"Kn_.R}0w]E^r 58 ߾=J&:k)Pʔ6,^v8zڮp;O21䁾;o^"ix R:ʲKU]R?SṮ/\PvTJ`g)W`|ME%n-gTL;8*}Jx0REt`O\CL}ع{Ȭt Wܸ(mUd0-cT%N w Uf49Kn#[(mO9pdGTJ`5}t5؂i7f#Mhoep`# X>d/.m-{Z MIj-+wƊ.(m8P÷Gq 4[o] cmGo;SfjZ۩z5Q:k:svNSvZD}F 9 n~#FnY|H*ɀbm +4͂TӲAfA3A3A>hSfA#|l|t|8>hU;5ڰLi< _=6,0QXdL*tnC׮5Ig;0{uMVਁZ?4cfF!ifF#Vӈh/̐ RD3ĩcD A4Ad Y*] h\mjf}޶ǨLݫY*LѦE,fyv-.lm8^3cvL 효].+]#ݷvS#sD}ZA4 ӏ G At mA$LVCT E% 8жͅR4x,dTi_ALAm8% u#GYR)DBz,AV( _[|SX%lCVf* ǰ#w*YIYO +doXcur)Q:XQy@op׎7xr%nczx{i&jo5xS(*LOvrͯ[Vi4(uT\ZxBJf]Stuh}.SF@=_PS-v6z|ʩ8S:SJFГ|jqnqqB8|''C1Ľ4\[8evfw.C]]fёuh"E,(ꎦ nrrY_+QDp*-GD{ +(|PB:q%X)}dpu"&~U2 N7$@SJCmQHaJiJߌO7{hfBimZ)UWKr a6tTggY** +F6BEրRTAԼ, +)Q&P(??h WVm?U/46Nf}mw׌6hFpeZDq8_qB8|MbU2Ew/ _Yeq,mZ|Vy(Y(dA- |YG +ωڮTi1V**\p_@}ilb(\ɨ(a+M] ` %' +qqrtfS)㵋Gg|K9Cvaxh^/]0|(H!|+Zݢf+Jw _h-J*it3rsͨP;t|!-.OoN/Y:?7Ad?4A~?fqcp##Ǻ!Dއny; RPX(Ov/cfmOa:?1,e;XAh??N|7?nQ||DR(֖ 1uY B[Go~NKM+r~ݐw@>'p3h7?nbC=8j?5ߟp +k)>եr$WsO^'h ]]ub5yd7B Ѭ k6o~M0㡧tƯo7}Y<v; 7?nh7?)|#9[ҕ?./ XE3E37@Tb ى[&K:qbF|Ҝey|-ܩ/'r.\vL}y.;.% +lչV]^ +)aA/ 2VC`^v,:]pyI'L`z$Np)LKHV'G%,JB3 GR^PVø3̠L, :!,ld-϶{ړOt{ߟKGA ߷y_/ď:0A[HNVA_9Lń?O~$*v/>Dn*^xPq*H2KiS7p3Ƃ׾ F͚4М_.r}?x Rg\B:)>,7g]欇C*gUhWq5[`?5"hkQMZj3K;6b(!wq,%ߺHjuqXz씳\[rыa1E&ǨƕT\˨WU\nQGM؂ |L8yͱ:lSu?mN|E%,=]|BC\شqy+Zn6` r^pH˵ije]n#n;ʭjݾF×EZSl<߈'% *TL`pG"H?C^ޣE}ډ̻>e/0sf8\1| 0 +6wx2吞f0 x2M@dB D1ͷH6a?M +$ Bwa^-ӂB W:q1SPR塆&`ehNhK--,p09R`a1w3|Btl\N|KS&S9EiȎ$ߣTNӭi *W_tuJLj~_.LD7UB7Έo.4 +r)uu ;SGԲQ&vo%J{;'p=dONU;x1CU)уS*Wi.֩s8!v,)` Ch2O4^ +g.ܫRz(~IG\Į}#* _2UtA +!։Z =|)чԩHv71f F_#G4zkDW %0Y2vpOۿ_=sIE`]:VtYU섛Hu0w 4~tQ|Kcf !>$WV<(ESYy~DS镃Za& VB:1>ljJԑ}_=|t~ukq S:{n\,dEosO6V~ue1MG:JjAlzjt\/ Danˊa/;j;yz0aY``hIkYWܓ_ݨ9, uN "| nS*8>ɄjRzx 4R_/>$ZThxp[:t$@$:IN[r\VRhgՍg0d_u]WCuLrQS,3t!%rT"{}U"&yA}Ӈ/F0,2cS]1ܪx +Lwr2VɣxqPGe9m}@zcb$bWt͎IM@( ̮\̿ATn~@0XJGt`Fe}GɎv{֍z'}Dff;ܼjR}i#X@ńIг,Qk'8=2u%1B.uxewUI͟\VaB?v!mӄ5|3N_X^']!f1!8r=?c?hn_2|?Q"NX~=/RN" 6HBNK1@-PCjU֫g{?3RS +s&OIϗ1jRjk&x#FN +!9= ߙjKW! j;kS81wc`F A&ן78 +3f#~21Ɓb/# +~%!/Vz|;t;s~2uS6zOc˪ܾqD#kY7B}>,ȿK8&'~\'/q|)M\baEVZ __"9mB|pQ'È>0&o3"9zMG]#'0?qUNܹ>{nW'9p_O?H^e||6rK\"4 +#zXӣFCDL= Pjqp~&Fu1GHBIҔйzhJ(uҧEpߨ^d|dWL&.?7oС TE.E .*MRf cVȥk4rҐzôg7آ,26p0:Qb%MmVܖ'^23˝|QL~T̞&!<?xzɲQ5 +e<Ґ#A6L~ YyO'mTW_;>Ҕמ"&%rq*3x_,(X|jʡxV>t9)!$(Cf#z5wQGJEO5bUȈH!ƒ!S0`5mLxwS*Qq̦­-m?H[3?l/FP$f+!#$9޻T_>2q#;b傄bV|[ b }%r>$pN(4yzfߝ~m|;~K_<"98GHgRRjg|+!x}ׇ,WK?B(̒xH-y8-R9}I Zle 0 {@Nu6Gh1V )V?y;*8)~^2_; xQUgh g#A*Rķ4Ψ~$uHӸ 93anGf7/8+kes~3.L%+b)_t6>-|WM@D+P "; xz%n#oELF(sp0LL|-31~I>bZ,֔_r,L1G4mAv{cIS{Hv([6H-YX ;["w GWx$Tv>Z u#R\ZF"\{Ÿvۨ]'rUOUw+9 dGԽq1U͚Aޮ:u*Y5lU[3\¾ף W`lmԆ"V -RX7 EWc yI.(l +.d4Y-% 0`M87CzPr$ZR4yТ2 &B;r :TH3" ݭG!=Z'`syA /8FX;DFߒ׳`.XJC' + Z*"$ +<"PE1PirDS"u'9p +ogl/K_H}4U5Vs=.PEzcy4,C˟ +-"_A,GBMa)n'eJ<Δ5{fxhg[6pX[1%Hm%n8lqiqb1~pm<3g5xiRQp혘ƈ}doI玂|NL&fi4igk}*W]E8bZu9Aw{^}+lSՆͬآ֖ +ZvEe˺z =nXe쀹O=`ObmbI]հK,n%:[Jh)QYX,,EY3PvB;8+3TtY + T%=~ ž!/XŖ$k,2'Ern6(HrHɉ*'HݑSɬb_{X,3z{!\Wƿ1SZprUD{ غؤ/,N +pE>SD3{ +ejcRhF0la ` lp )8q.WUe5鶻nCC]_VerL~gF\A~'!ΐ;C̝!,[oڹcMkCdžB)_dA+ksks׎4%#z[Ё]C|/IʭuBT%ziOx)7mּ(+.sYaK9h#FoDt#bوFD5"& 2cRV,Z^"lT~L\cpa|r=A`$YxˆhN qԴϸf5_o.FG1cfIIV؍TmdU='+%=Kʞtw͈#Qv}~199o7-/]R[Fl>?Q:Bwy0؝^2m}^YLqX?@].s+\ +Yk@JCYD7KXb]޷ +sբ,&d,\5:X~x8 WaR9 B#x{/4bvn3e@ wcR$anP5?>{ZIVf0! B F ۬)к>5>~i&|UU2Un<Ӵ0SDSx_L)W{>#h?Js|)#ꈟU-Ӹ]tnޏxfzO/L:CjOh3ݖ7%sN+\&1B{>׸VYå;-W\>ۡW,]є'7<Xe94Pj7'Q(tvLb(3 *qt*Qf;SZ +CpDnfQж%9@ +C6Dq.PHqF E_nR|$a 9 R +R\B"MaUKKHA¸\{ H[_"x:g)|CKb˨ UeQcNLCҒBX_Q?{`|O=7O6Zm.^&_ʕfsX, ʝin%s +}LRJS<6/Q<{m!&Jّm|?>"qdn0Μ BSBS>BS(i }~@ODT0z;ζca?T6 ;޻3a=mD3\JzBUH l%^ӋY!,ϑ^JC~o*sP?85pũ+N \qj$BQiM uj-J؆M**xܒ\A0ꃜt"wWNce2}x48贺WOfOIf>Mk߳|),L-{ڽP-!6eWFlLClܠ pJd +KnAlO'4l}ZM}46[hKP:12Q_Wt޸vSJtynUЀ@iQq:s_DetZ|S>iC}:ͧ ++lŔбpѽg~w:\y6^ྔ͸#4 U€0*-`ȁ"=F"-]3HDhj7>1GBF&M軻BISL()dv> H$MVk," tDc|*pUZi&GZ,0TѬ [*U\.lIUo?~#WD<:ėW +ōf]H6tn>YGxƠO bYmf\Fkf~2zG٣ ACP} TߍBP7]ڳ1 ݿs\ٸΜԝ}A)Sq)Rlo&Xۓ9 %Έgtm{kjµ>_|_eEZŘǿ}Vr|Ǫ^uU=M,,X"AE9%&8 Y^n^dӣHU_CU9-z+2t\'X|84con0iYaowpQ),_zՓxI*6j //F1M4,Џ֭ӆ+ABzONtNrwsq BFu_C K<|g + Lؖ681lᕘzO.E\h. +|]5ŕZ&Ɗ|cfȖ: [CP|όxfrO +nr+w7I!wr`q>w +Va_lTo Է\֊:|DӓH*Py]p*rHs7[=RԼZ&i݃k0I S}T#ՄoO@#? +|)S +ƂJ7W.]z']G'/b?m&\eS?X(l_np%|ψ?mG`'hDxI\[v:=Mv'CoIBq _iIA>̍zN @B !ȷz?6e&Vc|L/O\:#RwE_g 1qN +Ѐ54IN5naOpwBㆫZw ,ej)#*j2q7t[H."P(ZwpWX꒎As"LnOנz4s5+Kᮈ+t*tUؑ5>&Aqok+oUo?4jlRfiJ,yEC{&} ڿq5 +~^&ϹW Llv W[}O$'Qȵיd <wZ3d7>Cr`t6tLّ9 s=zgx|5:|ܗ[Y8P?tR+v+ QU t.+e]#lHX>T|`~bk,-\V.7I'f4(?4܇UP@3)QeoVIq:4w7H-R#H1Fkћ/;#T"Ft?$ݒMںH!qH[n @ a\ >(_ ]M!U>b084hyD㷠o:OOhx'Ӽi&);Ў(} ہ[y.}&ZԾ3.U}3n3^Pbg<\kX~MeqsL^\0̘4&p%K^/( 7m? AÎivI92S6(?ZjT +v6aiҳa vql9+}eje25lu|C c,`nx^baa}~AA=~kqU%u?tf8⫌0o9@2qտO'zKh"pWەZWXGipEv(0|m\P|~i;-2p'0k7Jԙ;a ,J]0+dJ-sM`KƖ\b$i(n7X&'EB? +g#KXQ&{\>"" (9˻+Ufs|{GqY1snO>{^^f##6V F=P[/) `'@-:;$y=|% 56QalFO"$$ZkWT¯ybHa|%Q4Nt-zH@ݕ_u&0ƳQqyy(f\ys1:?J'N\ZDi5ؕ81@5q3.CZ_` FT*$sz/tR:9ZoٵXXdn.]덡$w͝?* +BHKNsIoä9ïpW~ꍚpWBe@/-P +#Cm|iLOaJq(SC!h<P?tfIg`u޿*Ksf~oh;* Eԕi PkaFv! +)z$aE zvn`2L`PE5l 0;2OnwUo"zĖh 9>YR!|QnC.7gv-VQ (J~d5cʝo4Lpj@V']E;L=q sCAу_u4{}[/Lo5_G\mz!ݝj +YBЉT,~VW`,VaӺ1$OTT0!"w*MhnQiۿ&Ҿ&rtfX(u@t7dDm+uuOqp(Ež 8 +ZQll) +q&O"=S[jN:2]Dzn.+f]6bnߜnߔ)Mil*1-SqrR9 hn5s i~kv=â<:"r@Xm"ncՔ(4&po,HH0uA![J"5jUFTtNR T9e3Hhߌk@|%+Bmzdl0M0@|F5UK30q{'\茢6\E6Oa4{KI {@4|(ӝ;Z5+ @{V8𞐠+MaP$$]aH +ڏtMSAIwֽ?#מhQjE$~RHN,D)PL $t4 Hi(:𺊚/l!0M?(}A;_0>pXbpP qBB&sSdwS۫ +6RNDC"2wy!?m@W&vΙ`R!Lg!WCO3t8O?˱~'Q1ّqט&OSeeLcS8JLc6qG0Z.QanƙZAxR"z0$Q ǮF2ԔTdG\rAXIN7f%s'pLcEOh`hpM@Nbvjƌ\ A-Eu(40ɉ;icwXtOYnVŠDD|5AޮC.ue&OȲJ9͝&Jx?@$âk}@YAZ1.FT\]>DջF2PS i\M]9.熢fiT]_Ec8IQe#ּT'1L1sEAx2ޅWVF\=QIAh:z.-ЍuհO*ցa3e7as||0|Ywvc;7/G<|70;7_HE;̙۲wdwwo a;̿| wo;~{Uug!HK`ĸłd-#2UBPLɸUjYYyEI>NFL`ЭVc?m4L ! BD:C0b6dyofKT{q={μӴzv@O#-#m_:ڴ scSw;?B~eo]M͏'柷ߛ{c _<_p~o>>Dta*I9:f4Ψ?rX`dMj^N))P"W?:[;;~%czoB +Ed2~ȇZ `\o y ^54vdzF/^g]xdzZ=>>!kdw0߰q@躀bC&"(̡\D##U7*8A$@ * S `?/]@# I4=IwuxڈҾ*xJg%{$|oWoX~Y,Wg`@=*k*i> P)="t^4U"%oTJ[7n*˵M"]Y-2k&-eCeo?2! +E),džj>o l/:6[oEmxkUݼo虥Z2"P^K؊W`-#b\camZ*,*,3b{8J({x.`2f]8s٤?5W/#($ &N48(73Cf^"7ɰ5&[Z$5'!VKL@M;\YojdU^o9ܹ_OcYhbիC5r +F*zSQ 4Wn@%KW2i&K&$򞙖?S>{'kɦrVymX×yT2'|X#lUsez{OR~vT@Ugyt4A?wnYJGkh[*l?:QGͶ)H Ʊ}U[Y[:To"Ր^x6*捲P(x !ENz*}c]u7*ʚ$+/ 6ʖU5B8GV[ejB 2:5=b£E6OJIԓ#Jc5ˮgIdvR)+u?t{ +26tFٴ d]meMLzdt`/yEhzfUjCTq_QnlTR7)d2ƚ?>ƃJ'}OVܲ}/Ķs|bV[߸DG0mLR64tPl- PЁ]b+a Aӿ$eKf$40`sy*Mu>o]rJaDUA6 |~zzS9o_:ze R:tTв 5LlwGuNlѸ(s7,7 \deo8b ,JO(:0d^)ZL.luI $0 {S%yLD~*N̿_:~ہa 7[jM_`ìoA}!R63K܊>ن54G|M7~|u4{G;)砼ɣk`ta>応m[B7ЮZ:Wc% ^ +@hiȄh_ъ%vp}-A1sS0Qسf*w [9.ky-FuJCasmBRHb׿g)R_"n=uG[(9/|XŲQT7&(6"Iܵ#5y-nQJ//^fnQi'̟w;a 1|G/;4۠R+ɳEb0I%a/S2 |w&3v6?K%p \)@lC,\ҿ9ѩǃ睰}=yyx GǛDCO"sJM"HiJn̛xZH#R:-a}Yw.gX[7(뾑ܲm7 [=ϩ[=S!F8/dn2we"lYsŎj_#(x +yܟDq۩X|(0^^{u&.ܻF,_L,^ >EG[=<Y6UB,/=^{(؍ܢcBtR]'KӬeSzt,5Э<j% `c%z7j!k(I AQoM9rA}2k6n~ӺCl5N OK|-7 +30{ L${s<<~n΢叫#ݯrǒ.QH3`= 7awAnacĪ4M )5U!A_L7,f:LG rGY<W~JC;b/L?֠o0ʓIJ%M(aBP#*W~|1I.kt6DI +?SZ}lT[!&"v:mh't'L DCaCg U7u-q͇T/9Rat8  ܣ=z0툟_Q1=π3PN+:5:LcG +1/RxVUUϜP>\&ICPjkVQnI5&`dFF@z:)qTΈ_$|FSWHH -@|LjV!># ܌`Ҹ#X]%](}3v24ӓOhOKze%?X5c}ة㷠sw])=mDw)`LQetFLёgb1L)#QlG<%|Շ#iPQCdXi +`LBŦx؉r9ê- JZ/]OcIJ`i<~GzyFhb%ɝ4"&qЅ ԿEg<T]ߚIo;64^ܜ06{ &+N AeBmAY-DF +px=rY1D^qɘwi\x) $U6kxCA YU}kSRJ/[ɞNhizDo]5fi}SCE%Vaaocc,|sHo֋biy1NԟxRgZ|eYE?<8TWk]6FIH,'8A.M%0eAagZb[ +j.(5J+Sڐ?91weY2H® +ّRm#Pfܻ?{993s3g6gؿx9]?ʹeY';_ŃZCпAD<Wk E=|QK3 iV|ە|hY] +Nd^}|eګ<?4nr,kTqֺOeqӎ)ė7pW2nqMx݆';D)[~6_ɓE۟ +՗$q}}6]WѡwusPjF a-E︎_8܎2GVs -m%ZTI9Y8z-`3d] ݑZ7&$| [-0+1 jqt-V7U}(wS k~]a8xhs\u\8GvY 5k/`Q5@ +S^CߙR{⑲R.D!uL1*5&8u#]'ËHyw>.c^zoeZnB 4/gi{@(^#"I[J|/dI> Ȭ&_[ww +HgE2@[Yej}%֔qVZp0tnPT)^of{TA~}(<+@x=qb0Ԍ8x\A)`h{N>l(xRh"/CKbzjS^&uCCyڙ*w=ڸ @oae^O`0k_|⾔-s&$-Gu5\/λK / +bQgES F񄠫kBC9Rrޢ%l qj8&G@>?cV9$+F:<Dܗ'*z8Goe)loqehtUqbSUOFGW^ :4ze&Kw{dOI@b e{%[xX e8vg0OQ)-x8 =@󘊈"՘Q]2"9`Hd=2Wb?רP)YP66vމO71VkC$I-҇0Zn$iJ8ůÑqǸ634?"?m095Ѧf_(>)FrԈfv8fqzf'8k_A}á[T*nByB #*:GŲ݊֋Gtk{m'_ű/n=DJT%A#n71Gw /N1L:fnrQ^PWMs{^a`'l?wn)bdX EQ"8TպZj(%.0+T= :L!T$sůWxϵ BR.ECAmeE$\teRЋf+kH7_'[ʂr90GNCu5 b +`8/ZZ}MV* ^C~K~R?ocw)De<1WQk~V>&m]ej ,5 ȥG 01a T 0;ON jGO؟+U Skst=ILڥ32sT<J&8wS*|9LgNԃ1pz.]&ԟ*uJK\:<j T@[x)ޜ3g@?`_Uﭤloa!0P,{uAr]}q㠿ߍuJDwp0iv~GN9N;Z]hK{O :wz M1[A9N`_>Q.t]3@d"=ٛXl\:Ntt _=v }}{;&Ok9Jq%/55z6"hDMs' AJzQSAǕ.*#RC35p"@7QoEo]o+1I"}(ɏ$`嵼T1Tv#@#Qv.7{5Qd&Ω}<g&¡+BRD$@fAZPm.n)Kzή(A~WJ`}7+.uD,$5?n.sI!@*m @Ҧ6 B2-7aECӉi%~.CNڏhNFoc$XTq< +hB_r3uka0 F|Bg +Zu~O#8ZqgG@Ks\~>z21 Qվ\N }:b|i*h(`U曥NaT*_Hiڣ$ N9%A⹟HЃQ Y\9g|׀82 _hR=&_d9&~ďP V S"6u`4c&xBof.U z`]|vo?{X:h@.o qi' ]f 9ŝ1q&;@uİY X44o s5v0l*;Yܾ.PH&3W_AO+p>#H`Hi>F91vw $ @%U; /zJog XCmڂжKP'c*&;?/?cǜ`Ñz9cv*;Y۲cWн.t3Xrc׾*sYX {(M/-6L6aFwÆ;UAeNn%\^嬍O[%|@".U;v|-Ov=Vx.O{Ԙ-B-w# D-s++택9-kQ,P k=+F  ϱex}G1[ + 6v.Le[qLncߞi{)eq>c:w/e%YqߙvȝDȞ{-pd7~ #\ U +J &bXE`u/o F6HΓ<_֟FN79N䔛z+eqcLa-P;ƦüTB's5SnW$(& + Whj«e]pۀ}˚5'|VOGEl%<v?&{Gm\Դfw^v:_Q ;,Zn X+ D/7K`׊8D틽px#4'v 6(+`V}-y" ?RD7 pРRvw>n32!.//`C- +n +Xj"w^Ptz~=%0bt_x$ 4۸EtWh zܖJ;s!JE :@Aڋ@77\ԩmt/q\'84 %1G| 3n%b;E+ n) `I6,TbiB+8 a|!3_^)+X3 ]gPa ֓سhWF^w7 O`:*ˮՐ\Pb䐡wQ31PIuE?${$n((Y-3ӰervID-2Si E`AɼrE'~%VBSRh[>|8nf'q[:fЭkDCWiLD>^Ia~p4|퓆 +~ &.ߝ({'U+pIʏ0hAp?6յR#w`qQSl*=!OuAAqQ/l,6mYevGs#T8ˠ2 \8xw[,a#F\KO+8Q>HɁUY^  wB5(/L`pҗcWZWh{38q 5kgMg)̀ƆbR;rz4f<ڇA`x'# +L,p/}?G4WZ 8m)jF[{߄9r}y +5FWu2a%(q*_=^8VCٗݽ <1` 0 $G 9IGXbzm0_%kCl$q*׎Pˋ;0]G{V<?NPV(*f*ƜgfP@JCzn?L,`.M^q3Q4!޹\H:1"{i{u`һH> Ջy,#[tlcᎃ`a  ꢸwr:7E$?#^*UzKyP(3Pf?ňH|O:GȴaR ~@-E巍)c\(*%js]9?;{)G|~+CM\L6q IZ ]{ٸ}>~?: {GLK cw4 =ݣi;) ڗd]8񉕧P`a ŊY…gJzij&90js_Gv+ϣdlv ~ +R5aN4͝~uHwŴmACB݃E&VC),ov"I 9f!QẎ`"b\|~Ϊh-6;?#b\'yqҌ耵 C[F?`àKc:G"2`!̋A~]9joh$=f uW@j[[/'^uB^:lΫ&,7GFmdz &\::1ˍ?2R(Ǯ{S|Fn>xP7 #~yb#/>csi6Fc%D>Et  "*[u9\SmACB ر-~1`G cE^x +\DC?гUͺd0+:rYZUԅc^q+c`tRq-fĶPyHa\QF?{5jѪ@W&k7F&TGrdz?NPPc+^ &pt3<'PP(n3`zg!١h_8Km6G5 j~i%Z%~ V"jᰋC$8TUY~y( fa&9A`ZGY6G_&CJ˚a> gWONT#\> +&Hv.m:b >P;Tͨj4$"|T4V u*CIHTf !,G/ s7#<[iX jɷY58@dёriQf,&) + k9R65D:) A2#95J1J)'&KPr*t7 #h,H^nJƁ+W%DhC!YT0SsqaE+g 7`HpǝW]uh^)Iט6Uok%;Rܑnl sQP޹`$wf]Eb0.z3J_TؕUVa(a R(;i`?'{7jw֑ 2ֵ'طW}CTEWc2TyUHh/PY !M&DRI5L&hߖ8R6ηη򔰺?gBU4|R˭8tÇ*݌CӞ;k=C['bmУt1|!x l(< \兖092wdtnY{k%2N:=g‡Vm_eD"XbaM7q /r %]#.ƿ9kdgVe0m}߇n;MF:|Wl=&n=׊(g(y32 +ɹ\ _oZV@ OgTkpM0=`ZAKzfͬf95fvq݈4I'XMFO5R3w$kkSRQQ9=q ch)UhM`:$7|/\Ch`fz>D>YF} )dM\n}@Oj*.qI=$;2|xxW*[ +#!e{etbrTwf<ۅ{Bxz&eFzspݎKGHxވV|/W:o 0+M;lL h[ƹ)ۋۉp5MbuRk Kz?)OOӕmxMwۘf> ϫl5+8F#X@5զBNg ՂRkRjoYF|x\ep|سZ.)'q`))DBTaQJ6A՛DQqE\{T<^M<wh$[7Ϧ kHDKg!$(z$tR'3P roNEVe52'?נte5#Ri{3|ʎp^9\L8HO.: +hy:oŖȢ`caE)sS Ix~ ElOc3pF30wWhUNû 8_Xx#Zp8$-ǙHdIN9/ _B-»/La,0HG^Y]<л&!ޥc XJX%2"rЉsJkL$|RRIxn E\P8J\D97@"ʦ(Q6Q:o' +?"lLM3%N2o?0hT2,@r qI@'iJ$8{-V"AfD' H@(nJ 6$!pd&o"qxKRc"0YMp½Zj5"ٷIw Ľӷ!nkG:ʀLA ⟣;o_q[b =Ј0?-sDmhKC6d$({d4̄%Ef_v2 |X0$'vX!"ݸZ{^ƃ)j<SaᲁZa5?:Ymv^ _;Qcrkttqf|CeG[ۃV,NvV5͂1;\t(܂{v {e} ܮJYZu *x K}уi^Wgg|5~/`vTGw9bM%fj hya^+ors8B$;\ц> :HHV4BW&h*aVt(;իg҇i8`kuؚj>1tD/tSoxŴ̊G޴treoSƒoWl068cS̗ygJ +oQ{o1n~N7%|S%Xxx\TpЎA!Rx ڰTS sA 3S7;jþ@šV58>O!x|Yw.S3*FV<ǑJoyWY@,m+e6aμK2x닽 ΐ"3ŕkJu?~7Z ɖ𦥦Eő}|;ԺaPS?|.e5Z87B%F +5>7ONNJo H=xQoB.XE|ܐ5@)oS_9BZȮ56U_ꗏP/ xFf[0C_XZ|=1B~je~߳mD>C?+FKx ^dN ?B;,¡%X?pkӬ=т6ͼif(fOߥ@x5uXƳ3,o&]BZ[kz'kkJ + IA>lDi;핇3Lkck&ĆhKg:s̳q\.M?_Ew_ƃ(z6 +y#~_=ƺ9T56hxzOj՜b_QS$l,RjEjsw -9Dq͜/S`uv8"uӮvҹt76V_=Іh~ Mb |(f7r {# <5x9` og:!*+ Q =,CV2+E8U]y(˪-/n]se_Q^CgAٮE>SIˬ5V^ec@E":ąI`^e=YLVgPP @s5+: +Pck _ծ.QzL_PCs7joo"/}X=RHxhJiֽ*EԀj( x挿M!_G%ZJ7 :Ԛ \5Aq"dxTW9oLkm9iֺ<5-_拤&me}ct}uJ}&0MJKeOӟkiP<<5WX/i/y n j} l=TY`N+y =i[>0mQ镦X=prNV}_fb ,Il{T~$/Ky2*RH?HƟfҒjM\qIesW2h$-IĦZֿj󗦥Jo#-f^{X_H)Acjg|;YX hV@cNPbȵ4Moگ_EӴL`Z6o6-EbuI{Ђ|4Y>&^' +Z)0EJfH^_^>Z \Жavۇz);a, l{1zsb%8W .@(@UС |A-x5Xٹ'Ofd6< ؾ>JI1f9",T,'Q{b _΅_LӀhNGoޟ0&o319 hAQePƠNz\V]9.C|5h. omH87C8O%. FlCN.KQ8Kvjp,S)t+]Jƚ9Ìq[rvx=#f2xQ #䔪NP=`/_~@?3;Sv"(".I/㑝:ߗzq1-:D^ĺ c&vv"$ ?ugZxwzFl\2Zg[Cް~t*hNOֹ៟9|[ `D >N'ǚOycDz?JJf#>}>bΌ)V|&WizQ8r} fxҟ'c<;fc i1Tal=o֛bL%W1zn`{` r3Î.._%5TFP +`n:4B/9NΨ~^cڤIq h:+*({cw3LğngbC[M-Jm"~ [``Lektl24s&g[6쎩@ycڶ%\Q*[My 8_? ~y<9|ܤ1H:7Hr73:f$ ?~ui6#P3sElAW0-gS*W"gGI{0DVx2A w:9{Ln?h2& Ay33o]Ӂ@io2d 'g~E)FA!)`BLEdx]?GT*uToOx!3}OZtx27T,Љ/͋v~DOdzB6w93!`2鄀I*/C,ȃ5<4熍2`ʳ7?΂ɇL/$v!ތ94{2ݍ/D-'>-`N*Z[DLO * +Dֱmbx;'xSO>_Oo='w߻VMş}s8>9E%\.L߇S +n] _/tM`1k%'/sh%x +,1D46_Q?weVn0dߵƽ3\TqGĸuߝQl59H^[2obaWTؠӱSO ?'ԟSTA֋' +.>w>$Zz>ݴIo +mz!ڤ­Jz*,{#8u=zvx6N:8ٿ0 +Į P1 ˜-R>x3w| +s?;P'b>JYSp3s!=% 3v9Ox֯:nN3W۸Xda,(a:Y +dSʭRũbqCdvEO͂bxu(fIM+~?~y$I([h?sCZ&L11ɖ16/|?t1G1i/L- '㟤<2/g _zDu8KC%l=mn:[ir ?ǽz~\̣s_9R9 v=CD!rl'k8?/zeGuϓ2< )I JKOx"u*kdr~)LӕL7;XkebHk"FZOrY殏GȹEF-A^ +fLOï~Ry4eGD$y'%$σQ!qThzgx.Aw-\hawߣzW?<쇳y&T,sDgI;?d'xxNt 7OmlI޶+Oja wb%]efrGfnh ۺ3. [r4s6Ux +N۶]Z1wAq]ם]hWp#FK:VTx-TOLBV5Q㤝'Z\ljM5*&hRV*P&*Haćs}o/3ؽ{9sϽڶVCjl'kԷNu xx~n&PD3 U' +|DxQm$?4RPt4!L(iMDڞgT.gs m7B獴Mei9 :uX[1&i; k%XmA,~԰XD:">+vz굼O W,'m cSoKCF=ix/[2QXB[Xy\<(8`sޠ#ZfDxoP-@? K?kZHFbe\l-b`I`6&6j]Xh Û?bmDN2ӈ{Uyқulgt⾥귱/7D7lR)Wl'}ܳj_MWK0ݒ/˯ +Ok +5U-hyn?[t<,/@ĝUyZ4nR>x&~ߦoO{tf>z>#|GX䇭pzJ[vǾ[.m[qq_W.~~-?YF,sXn~ c2@~~=_~tLCd7<|73i?R_&>qYqWޙ/cl+!D6ak0G̈́eZT! 3cc$,5tdAe-ߥ3RCR6,c}4a-Lyc0}cs)%>6fԓ~|cRR&|lNM񱅩+>6o}c|l2%=$l*FNOYҖ勏[_+ْؗͪY}h8t즂gͥLlcsS-LYyR3csjVSz|la:΍eʒw- ~< }y=$}@R2 {?bM>lgٟ 9,?92MyڌdL(/& BUeTXifq&ɬJ-҆Gc8v塉PGݞt+n-RӰ z#v/c1HY%gՓ[N$l!+źjqIk2sĮV]wwWXkDnMj 89}M׋?u>^CS9_κ.#@ t_?56I1-Yj}XR"7|>EI@@@.$c9!!x7tB@Qﮜ]J g }Xy(óUaWHm 5FB{8&'"nDoJ[?Dn*8UM{9+[j/qlVP}˼1{[:0 Gwb!gǘԺ椓|X|*")X`l~͒WJS ]|1uj[IѧUE=ߛ$}*G-WA,W9"ᄶ9?hSB޶Äm%NLC]`\iB@{\}I+ " ?"j jz * vowذ:4g=E4.U?XO㩬zzzqCZ> ^:1YiVa^D}~i]7Ycå |Nc; +};XR.I0n!+l"ڊ:rMseJܻ7ל`%Xō瘟Li+w[:ĽU'*u۝tD6]q$ΙMLAdW y +v +H!K-?<5SBY<%0<!Mܻb lsc] ֘ +EŸ"jKkKDո*j7nvZ-u eFPMANI˸>ݾ)P}Ky:} ܼ義6~̹f8/pO~r_o'lAxY0&)pz) %۔NEao8xݞqa\SBp~;P~+0ͻ78v6ׂUkSNr©w]G{{B_3x;)`c/@hZytt r"(ٽGTr +0AqB6F| ϋ c'Ȩ' 7 /r5q7W찻AG4h&>w}QFk^5} ueH?T Ffe>LdFL0Y 8A.w請!pw3Ⱥ W1_߶$Ǫ&WHtz![ +Ч<ٳ=BZμߡ3׽A*Q> יqkD!Bǥ`51orcr ZDZ=ĩ Fr +1΄5cZdaryDy+cy} v+ҹ6kLC/AÚ+Fx*b`CO( )3 ̏kB+',mlg{cnOΆcۀ :c[nyFh4 X(eiFqCIdXF _-B*1 CN.Cd`:| ^ḱދa$lڶrEŌt(ΈHQgrk BC +H/<J,!Z`%Kl&K"%JψW[bcx Tz2.E@(5j;{mkPqݥ[+()K&xǚBPcI&Y%?]ܛƸǕ>Q}{͸:)C~X^w7#֬Qk٭-A=VY@h=jMeDS0i_-[5x=AAf mixE:eX8\P`Om"w A?hKi9!vu\(<ѫ:e/rz c!";6khح7DGIP2%R~>%,&zFt.Fv϶ yGh[Cc,SN@r|ӰH\U LLH|.xh9KB¾)"R3@e||PEf8j>xQաWid6ӚOpycB 9a#Q;ϼCEI۳V δR7w96;f&bk0}7ƙg GAw&`-p-Vq| n%W>Fz !'ri +EA +^p$ dǹE 9b9ZyUG&q1-z¡p,m38m nqL*V8m8SvC/v0&luhJ[)dr&RB SqgtQ&BI6ÏʾMoYw,U(йqٹ1#!N U#6Fm#~Z>X-@jX,aٻYO#i$oX҈~!hIVs?kRҖ"+%qMtB9OPNx}į]R'G2aD,i1d\v5^dI%㢎SfB-e +v/u:m7<϶jNU 'lb$OGh Oy7qA0j.^'&ަQr!SvB H2U&.'櫟ļ;VN egL&d8yUH)RiZ|vS6\C5&Xj,1|XE@Y/ CFjwΊ|aTaJ7O&!<503 + G>TQ269nFV{}36I ubqgD>hK*&=luܒp؏Ey?F3n-#]k 9xϐ9i=Xϑ_=mDwRi&j ui{Ԣ=?Pt. t#sMo?1U1/I(LπS~&\8q7Yr>wmew kY-2H[l8~gC&fqqhZuͭk"(4ѩW)I\bc71Z=Fsn-aW8Ӣ_fe$F2:FSM.8ێι:vpt{-tֶў t #?@q0qū[1FH)>S]8i]|ݭ+1˓DgS>/VHơ\d/X!9\\#C=Pη71R@dtu\RZ# i->+%N$giZl.|W_~1 𹖳E\W"`?F[F3$0 `&4\r2S +q!#-:&V~9ЌS͗lDd%:'/9x֗萣7ԩH=ya/_v8 +?_7_x-/G\[T/ rIOȭoRm~h.ݸ(\<E_gL3`LJ8dǙ~/v*[z_\Z}0 +[s kFA_w3E~oGT@hF-/y%%oI-OK=l5;=͒ цؕu]\$Wh"u}?3X62pa5!#OAozDkR䴝^ډ +E4w!GDŽLt[EC74D1F{j9|9-הh!9IY><.z}㉌gE7`:5QP5bh{|NUw$@.u2nX`׵ ƧſG˫W6b "Ҟs ?ʼn{'c[( =H~Ͱ +amd!SOs`*0+Et,`+?AN.&#$ +gL&/>@JZOc !eRO bjK-ȔK;vj_`Cdhlh;d;5쬥Q8;йSHܕ[?E*jwď컂!wNA_8(7 7+eqte/=Gi@*C߲Ɩ`} +GX!y7/go~%5:m>R ḇ ³@FNdn'7Qoo.Kkj}P*N|*pWeNʂ(`D&m]N&S$ 0uVlu]0<.>qHwաuGͦ Q;yhAxʤp-UhI2ithYJN"TzdjSwaH t}-s.uwsiB]YEù!h(͈P!rVȵ Ed{P&;9v:YHe;oC5lzʲw"S\N iCRBaج' +e6jT,2ܣ[qW,-⒉ˉq0Y>#{J|E\WC5^O,19v0X3qdB, 1yVky9̈́GHنfTr]Ge/zt|LIfBuٙȐUWK B٬AtPWkޑjmBӋ"r KQ˭R=),فĢq?Fuө] D޷Ȼq;\#5Wp~?`,{RJx< ^yxǛIb^;NSz)w8u,MIco3@. -V4ۦJ<%{-&i[#l.%=Uř@%&rLJag]n|lem/ {JY=ge,ͷm3(pq@Z'PRvSB9[(?D֛<@ҐX҃M2㻈6px4\5" +[$rиde?7ݒL6;\ijb~b#slsi0&gݴ&R"XĐ7h%W;?mpv`b;?c3v~j? ;C4o O,L|LO[ganfs,5GƐoyq;opilEci.ݺcqv2FފNߣr(4X_lNu>/k6Z);ӆcP1thƽ#ګQe*-QD=bpAhZzW9,'cJ|lK\L{u|*{կk 5ߢG/d6@M^AM~Ah{vX^+ ~-ګc]{P#S{:=zjqHoļ)}*"JbS hT}ȏCoz{ƨ%=1+# Lar2b,yWV}.r1'ߘ77. ߰7Gh1Z tt w-ӦaX$m5?I "W8vǔotS^ǷȈ1gGpF {iD c&5Ral$ Hws$~xPLKIz e͈6 9FⷻE!ӟ[Mx۔dd'ci72:+ݘI#h); [Y0o˟6yÑN$Oɹ8َr1 xV\b6w0B6cB6c!)Kc$d3 + i[[ijB6c%!>lIr v5e2gxJ8xQ9.1-J%TY™E I4g1L`Ԥ/[KL`Ч;8oHgrX`ږ$'Qzl<^ؘu,SR2p<I'Aq'ñI|r&^y{7R ;ǶQ^xۇi|2$TOVN)Ir?|ul5'If>>˸d7m}!aF)t) x +M=Qٸ$#y*?lzE~'k4 - +ԀM!@4dlMN=z.?洚S^ hz72ZjXD=r o']#6^߁?U%~F~?wx ?C/oC"" @UƝ+K*{PkrS!GdY[!Z[!WdY_!z_!_dِ+r=o6xfI?KoUpЎT䠍>kU%|U+vZ--׵~ԑXH\Li[3~̴ ).'~"q$-G"q-k=:WTRU^[*))l%AБ +D5PgF&kDnC ':ۓl5lg),:?VUlaZߊ)L_nrp$-R̹E>r`_K^t_K~ѥ"ZRw\}ʤ=ItYXb]!Y+BnA +$L}/T?}~|aO|v^oGUYC{N߃Z3n1vnNx%̾HZP*("iC)H;r F)I;]DVk:/EL,8ːr -g>߉1\E_c@H~ +N|@*d߭.ץe:/ ׅ<ƄLXFUrAlNFZĜDDry_ l>_ZA*-2ظD\QI/W1?0o^ $1 sYߘV-~M^-ƌrqÒ2lРnIvKwib$5+XSkJ ^բ3lk/"Ǡl;:ڇb6D˖ea01ZN`?Fe9hĕYX/`aXVM?!9a^*%iݦd_fnnILʍe"{Pmo;}V)1B+~ILsn7+1K;(i\ߖ$mO>Hd+"L +)p?~lͼ? U5[1{J1:_s5?֙}5=5_af'kAm!%UnFf=sygd^5CpT,}C)742XfPe%`ʌ Ŗ"&!TU VEe_K|l1`R:bKA{tdwNu'˧V'{"{/tƵ(Ƞ/тKzv6aQ/+c_Z&+L @'?T< x +抗f.ilǭh/[Xe+z/WdBdrއd +_lOdMt)1^gOA9ʩBg%&Tr:W O8M`QYkm!L?Յ9FJ{B>#<)tE&\Ҫ0{_`|[3ݯnNb1q%kٛv\*ثmV{en?m5kl%5Ir$i؝)in1OQcIҪKM)],?H[ռx;a]bhNF9 +4qleԫB DiP\i]_>iq]+#5^K덴&̎DmGQG; ؑhx֎Bãu+sgF_}7_כKD&*D:Ad& t&%ZNi\|G;YeNbs؅]Qf,luڜej6cnsc핏s{nx s(#&3 +ȳWJeIϭ~fb<i0ySMkRӆ\2ntD*U>Ϲw68^~8dIJqFiO߳o G~zq_x?0>n^pݜNF2X 7I-v\. TBz$N":&::;9m068en˧ ɢmw FU *EYq̿OF mXtdd4NY'_?3w҉ )Nz)2e6?B/xo`zd;7\55SI֏띓Rf`P>uPV6Cnғ 37ԦLIU }Q^12-Ho2՟[3)MEil*JkfCOH? +ai`I d}I.hJCO W uMR"MISᯋ1FX? d4": NGӰr&5g[NH)vUi0D8)U|Xdh.Y]|NC\Z~++吏w?ğ{ |g;g]o2rGU:pPj,7";#dݍ&dѣtؗa1 ٸŧT Va8: G`8QQni8x#%0|\0|iƛ}wa%ҮȬ~aY 4jˆhkh+ކ +WXASjGHuCCuȀ3pjuj$V)*0`QdLإTh TEwʖM&bijs2MBU@DlK6NR߱}4{]cb5_FGЭl?k5Z qgCݧCghՄ|X#'9)P`%ϝ oz!;9q4Y7U脰@C_W/@"i tdCI*'k9%ץ|]шƓ{dgƇm R zmpR6<}?ح?gVnn\Wي 2a_[.HVl=I$aW[M,ލR>)z>gCo.UP]i9Vw#p -`T u,392FFn1v,h4n5: m؎|-JAz5ˍf`~9t}(RT#^HPRW !Cfw8U:8]ꕁQai`o9p"U>+ʼCB{%W_= E ǀKFOZHo#?ΦO 0 Yl۴}^!2Vԗ- r"Kq y|ShA|>iZk_-a.zq9(nXh-'Ձv_MvJ佰)GS+wkGGQS;R|S{m~afZ^jb@oȮDdRq|$uh:8ZVm~mSk~LqGq+0A=Am8ugS4~o1퇘Z +sJiLŕQ3;Rw>ͩUUM1kx0 +۪s$DP *5;&; {Q0YƮeimfmBVO]dv<;xYH5m(kDP%tU;H$!}I%ô{;gkLsA z 8t)^6 ͂|5ݣGd[_m :qz*?^U%/*_` oX `\>cwbmh?lGzn2ƛ +?t->'k|}F@ŵeDI!mU1mS? 8x||z +l;s[蹖7hjsl}g[yMֈöm3o.C='mFTJO +>oԇ N—GJgDXҿ=spަvlT4ٻi5wyV7[-n[^S먫)Tpr:n)tCcuMձT3ɲ_;Sb"(LoF3r0S]=u߼Ny>"5gu}/%m #3xS/zl=Ѷ%s+ ϸ=xmbkŏCE[os}ǩ_)C&4͡[@d듭@sZ +&Lnq} +W28@g8}ki@^ڨ=[ѡ9ȢB#S#BsMxٿtZI{noG?O/LPPT ejA 5X,TPieX8õmZKIPӰͽ&zXgx- *ëm +^m]_A7pLR4酝 +d,f|C`Z1dk|H8T?Xe!ZȟD*G?U$ļoҮIe75q׳RЗVxb#@3|;9ǩ`x$d#'Y!'UL_8Gd(d$Hy Mѐpʑ`,.U -UQFC3hhFk\p֮quqSJou^zCwF黋vJR͕*ŝ^:)QFZcegzsO_bjͤUGe%ń#RR]Ǭ=T (X I{T$-z.}M6+;Qu_]< +'CY4WB?)Cͺ )8c8'?hy_7;ۄe~^4INH8U!'v!LB|dUlTU,.Iê/0"-IO`DC{Z>qf?Dubjj޸-z3pM3ԀgV?ZdKzޑp:wF'*(mSì3]:hjZjOvDHg +X0!]'zi{"oI#Pc["0.Դl`?wp!N}f}a!åvL[88 +8E`Fʆvz/cId$*g oM,O\YN)UL)G궓VהZMRΚRNM$)").Hh}z櫓STZ/h]d(g|o&A"0yNz"gԄE2ߦK% &='r^/>6l 8aZȨo+81C7Ny2=0qޡ+} Sʈ+0Bf}j/JLtw;e2+RLr-ʗAZaT-QR4HZ` TPQrW;L:6!Gbrymҹ- +Sޡܬ-ASe9%rW"<`g3_D\ܱ]  Bytx*z~𹁧sw;JxH U?[󌁧4x\Oe_ 2<ِ["+S:-xZiOU+-j ڕLb+'u+]GbڕIVk 8 }Uj 52֧˫:1^웑9O9onIzi]!m`Z+zv*)S?D/~yȧ3{Vir `~}i> \0@ {6g'5A4-ؑw&{qM$&_Y^vKVj$ϒ18G ->E]sKd5G6\~,1~ת5ԉe`hòmLJsM})׼=sV]0 ah@mR|(Ӗ C9꿮:|b(mRd1ӊߵw5CVqT +e]94]#8w{1(7Y9J~=x؃VEFiDPoEI2 W$\$CtEVk /g/.ڋ[EA1EKUqʗb_}hvTM*YÎ\QemO,)R"kE +6#}2ҊFPLU|0_޴խ޼n7ެisZ%k؝V/_mte (_m[te `{te `Z/tem`Lҕ5ôO/+Kej՗Y^j>Y\b_ګ/W1j,g-g-ghRNUckl=;Zn.KmZ+; <O`OƨfaxXFZuT+ XFeT+ XFeT+ OP91xQM ]ul_'{hn#i|Gg; _"c/SkgiFc$I|U8BqI/;"@z hJ% pԓ+yR~ wL3+n.dY *KLDX"nbr5!GM4Rk m +e#GZh7lSMdRdaR 0i:hO+^W>zƣzy6+!jK`$v8χ#~=N،:g.l|Lv2}Z{vДNLTI=—@i^sf>?I|YRbө ˗#-;]v#-;+q]TJlЯ S?=-۷rOD3s!;8#-d9NhiMx7nYI)-0j>Ztм#?%rlބ`蓜 _AcrSku"(5l u%EF)dYw\[nDUc~v0Nӝ r$54֨!X#ײz[/I۴Oq)!d0:To:b{$#ߐT7ЈO=(V#g|GExT6And^(}2 +MJaHk*'Zi"C" i(Z+BAE+B4mCn,cˀzhx1|V jSZC"Xڜ׆3^PmnslkTN[#J}J M4)(t%p$ =#! B~DW⛡qpзahq2HNuTI\"eLP]zߠRX%NPST=Q 7H cO9ҚC($ '!K,|O_/ +i[/xZ9_~|ke|Ah h :юPa~]9U`jN|暅/8 ewaS4:MT sxWzmK7N] +ގ|_=60Pmݥsy[gnޟ"$x3~տeK?Yw[; |{x+ 芓'~3C?٭=qj3YT3?xQD51IӫP@áD`!Q>$iD]5,2G$HR_$SZu9Gʛ?Ӳw (dI +q*'b< I` ` ]gA;$`Dd%CeXŀ+̓ ]qadtgOI9ƹubsP_Y?naS.Ò|$C'ŇͫVf,Jn|f@Rg% #%{]jK6zXfʍZ}bcL}htaĈlQP6z6*>3oitni4-ڝ#Ƌ-<ZxQNIi2׼MUO'nc*ᙗ`nݶ-:!"8i+}Y[s>i^Y>jhN.a=x,m $ZmN/Qђ1&u!91.ES;-@ηfo(WWhvj4yh&0b ˜θ?IK/] K'jRŖwQם;B,h02iI11S|PpdIIԵML2cw6ttwƷ:Ң PLZ+N+;bΌ +p*h\)(0۽f&m~~gq|vH_=@K3*Z8;χSO5v۳R3{3g7v%g%ϲ_D76W$Xj"AҨ (n>J$y .bfU]N +*1WKxL3Yv}D5AΩs1=rµ|5QѺփe,"@%9g0tR G໌lH<$R̃UW* ^q^2xIC%<:ᒬp'd#.5 +4Rp :5􎀼fu:d ڸe-Rw9!fk.hÍ{=hAQN]I:8(d}4NaDgJfQQ=o{Nhl j=Ԋu D AгAP4@{F#il%|2pq1džFIܸE9rv`dp D^yiv4kC +\@)j0%`);}aF<,MYO|E.7سI0R&t2yT5y.Y<8)ɃBILM*dI1fϼ(r5m׃ӯ]SW<'Hvpe".If#Hz>DSr'>Vv-~C)r5+Nph&B!<$R09^t ħOr|->}~;i5 yC}':u*4Y.O6yf_\i&O.D ]ɓ C/j'w'SAQ;n܍x}<%щǟߜ3w<ʟikKV2)+v*^e bwY;Ϭ؝k{L!87yj'ITq?~ޠ'egt/?5GOK+dMOX A'/TTchZ">->5׀g[s7%Qs)[7<=RMDgL31xFdb& ;q1`\W$,8ҍ?ZWjP! ^J e,[ f3"gbO3VgV<fHw7O`(-|SZ/U/2Zh ЮøȬ.WsOۚKt0ucLTғv{sJ[w2 ym^"rHZkk{[G:F JJ^ѝY0BW IU2Q@^Gʑu_?wO<9^f7CbT.3zwv9ŖrNO>̭}Z@BXʮàsl +#(Q: $d,ב:2bFD=Y n1t?%N a:s@* m/Ѡkgn<bjH%%zHhv)G##wt)}YZHc5L ") ))kRR,d0Ô2sڬq)vf\'Ŋm4Z'OR<@P%(exiAPC9F>}f}4]i ?#u~M??tt8#+ijksR׬~ t*.%h +,{ DΥg :#)nGSz:1tD+R6]ޚCFkP$@ߢ9Qڳp<@c:!}BS<{@5󡵋>K?e[$3jh4*K탔|.ڦ[n_ܷL߶еiGh,u(J %w?OẅҿwtAo\Dz:}NB+"gYf޽ E}tqUt˖kJaNmk+vLT;?HOO9TډT[ Deʎe3GHNcT>8k&/\t9xTfCR$wvrncx%jQ/rt_OT~)(0ictٳKb\J^YQik#-:Xi3rj@Wfv#*V$K2+̑8@T~oT߰Y|'T)%=zqEAjI[c`.c!BsR"4W +fijpG|l-9Gҁ7$VXM.2Xd \b׮# |[xYc$CKBBEuVO]CHǎIE 6ʾ3<>)jqQnVymvէ;QȅcgVOyBj E,=WrI .~6ԟ!L(8)h|5&[@1 +XhQ{|Zc1 nX;_|NqͱR7ɝ0i21z> +4"ŴQy84,潗ͮp r!_?XQB&x9k\\Xmwݐ[!."S iL_\O_xe]i_ut܋ɠr &_}Jc39/xN2\qX`*l Gq5rlO|福rd]Rljj^ $4_ɾ89Nk!ubxZK-Nl?f%1 H|RM> ;nodRJl4M>jnFMG +^(Xxk|\Hu.Q{|́m2&&Ťbq+M~N!2> <|* RrCuZ!"kJ[ <|z 'ox-'O+j1b-AKHC^ V$z?WJUA]S//B\<\`pƆ:&:7Nt#?oyD>,Pىe")w+6,md4u玅yi"JaZaR64Ur 03v.HS5s?L\{R]􇉏28ocR9Ge4H ovuDSWeAf V&Gc 1MT6ѧ3_3~&J}LoQw; _ڊhaw[`4MoK&-VܮGa2}Š#0B+N4hӓHo2^?]K?0-;^}^C '? HSDϵ7߳+\핍>F8l3wmٔv_9bmuWs3yu*s04RK=ôv[4K1v:^ Wd@vx=).8kipKk&D.ЭXG#-LknUP-c@eg&lt 8h3T╘` Nrr`9d+,4̓3= YpzEPq! HQ sg ]VX$Gfkuf=>63S8Z^-쭹fm?ϯ?9I2c /4҆} =eh~K|3  Ӷ}76ш`t:PI:.8's9 ^65#QƁE¥T"!x"r^B:r#'SLmcaKf'}N·Vdq;{FB ^nϰläZj"U($gӣB= w }x0Š.F=SceVrTrҮxd1( ?+⃟o 18Ui%L5ל*2W r9|MV(sMM>jQNY5w4kD͍mM;a*F1,s{jnZh[}n^ؠ8fjt\>#o||d3"Ti/bIWwS8HAY`KmNƮjDž:TgztwYdxu 7ɧdi/.O{R'Yq"ɲ,ذ 7EݝPYˤ8nDz,D.^c_*F" j3'r$!@SE/T/b^|aVGi׎ ?HXJ8r㘚u UD8d.&D]Ţ.cJ?fJkCͩ*5bLm]V4C?*qKe珸u Qh=Sr/wQϴW>G:zyx 7"Dc!YaUD+*3azVx`WŽeLK3EZѱ-vT uBFXnh)]K&)A1a> ߰J!ԨA]%cmaXJ](hOBŬ׮ӳZk^Jl4Y D <B݈4ԂՅ&ϖl$.m+Sw< т51%lU΃ HacMYx KIq'evNڴ4lk8]TduwÚ}I޺퐥#NVM_Y_[_F}bbS[^i/,Tݗ݂R!×K*1p˘ʺ|%|Ys"'eM̓J/K}e4Nɫ?^^ax?CŦ,,K/j@_ QAׯԂeE- ĕ5QhAX ̄Ip@ vYPrgY` Ԃd55g!}p;Ybh9< E%{r]&`<]s TZ%֧Hm6p`(o}hށZY`1$cJVP˲>UlUDx5NcLRr$, ۝`IçR%W+mRFOH)lKXlc{3 {񋽲_L_H-ZC4gwC*5vDFW&}TaM6BYx6t^jMµx"6NΝRˮ {|-A cݩIB*p}|Y`DO +͍T_z@+)OU_u -59,|W/8DV3U\:x3/S"-0Ief%6x}s\aFG:tW24!\W@{}I%v\ĕIcz&7;N4 -Ǿx_.@Jo#vcM|nd= /GHD0Ȭ~u[~>GWht{>$2uƯak2?څnXgT)$ͦ~߇Zv4}vY+#<% hQ(l&[OT5Dι_d@KFدλ?vu3S2}DَÆ9T/q]ڥcsJG j$22%i 'm HHH# - Q9R樛2%L.}ڐJ%F$OT̠ɋ_]9?o< Z⺚5 i+dc9V"n8 S=-XL3F;-ȔhE3$dR&DuE~xrNf~2D'Hs7hF; Hm#e'f{iؑ&xiFđ|*џVbTd~La80@sӤF)GH̀5ݫDW2ʔ-QvU3.F?Ϳp9jxY{u +_`P7GJZ9xܪkW.t"~u/ӣFus ɠ(WCt*oO8F~]hQw/H~G򦽢QID=>G@4&aﲸ7w:w/ +'WKxᴡæ#2UlĴvRLk/V 2>9_>OFp'󈟆ay~ %_!w:!6a3&CV sNҡ{iu$XM;>Pp]<:HQaɹ3e74w%Ljj )7tW!& q]㜌7%eYOz&sH;WR>OiF:C \zxrtvN+ķtJS70Gr6-S\*∱g9'1ﵤ2֟H X@W-'c8&mJBD6͎ w@EK)0g{iK-5^19|Z`FԳFO6O'Gd iJܞ4}TyM5kE\΂JmAC$jZ|sRRh^p=*}^s"Ո_Kw9p14p3հ?0\w8П ;MÎԡSLGbj\kx{kN5It=kHf +*x{P~@GaD~EWڨ5Йq/c7v/y0TI]έvt[eM/zQМ% -8\nch!Cȓ/ c+?&.K9ZY?_C1=vq4mIf&̦ͭ( 9v[0}&:z-0Np?iAu?O9Ab`V_OJB.G'_/t/PTg V=C̦~o@/f o[jt#-֨ΊMؘE!d1awB(p7upmi~;z9z{-`B.0Nf'!|zLO}j6 ^~FF,s|u-(H7PH]mDž+fJ3!AkLؒ {J?^w)e":jTi1#b%~M0~\w=?^,,˗%]Β^#lȖێf;ec.a~b%Ap*/,fn1?Mnd㙨LRR=!FG4w8^A6XdxŚxr#nO΁/4Rba3"E"n,VB~?7k"DNC[RV,~xf UY~yߢ">Z̮%Ӟ6 ,"~pcVHoo 袃Q}~ЖV79j'o 2֩9~JBu3n_\xcˤ\Pk[z=63  L=z Eq6mp ]ES&@`3Լ +IsOgw«$|v;&72\e% +̪ pZ%/spH]Ívn]ZFûE2{MѬ}ox6iNVfYI3ir׻2Lr)mHf Oz‹a=÷Pq]p{oWhnJϯQr}UVY`_ƙ {u3'[o Oh| sk]wu=To"/LvehYZtTsțvR'ؚq?@$} څBi׻!X- +cAMm OP´)ș/E*#43 B}`^ 6)U铆6j#`Ra{]zf[qV2,kUVڧ2boVޗ jJPZ %Jmj(Qвe@#1|-7?˄iHr%y=f&c)"tr޽+], /l>=]3lY/]&] 1{F$/qe\+ngOsH<4U;䃃}h-; i0 E00p `D 2k̉. p!KaEK;:,i .BAA8@ 4lXZ2F`J)oDE/)6P)_ C <Džvݐ\C|ie(e*0k8#o\,QXCࡐ(\j(ꕽ<5ӻoUMUCwꥫ^ݻ\5n,R{x'z‹$EZLή.iS1b sb +""Y,-TZ*\b,iq"iA==u>im3viSQ{u_CF~F;ҳf!?O1[UR=wVF 'eDʗXA;`uR/ɗxn~En˗SNuBaDm1ך@x MiX`.v]nl{d,s̘ WpHE^>40񋺞xwFCoޮ[6Qx&8y:]\ SEq# "vMܥDB-&+V{ͽs.*6ȎqSr|՞!5|{,#rO_#[.}İu7aW ;T)b 7KUj;[M1z*)`*ɞ.Eh@F[Uҥ%x3m3>`K;Գ dlL70=PZ((!}‘>҅J y["M ȒOp{o#t H-O:3.'ղF]#++45p3IN]1+3U>W›C"@ +eYR{S$TQL4#kA5W '-kr5=1kA}BvւjZy*OqjVH,r֓|aw/ѮzEѲ0 LHZN&;fɦ!$?ÞM{yegTpfdmʸ]ʗ̸3L2Ñ D+.}qvud`=8}9 9avHT0>"Η-yʱyN%;Yu4-קNqS)g@qw^:I! S y6I}:gq*G\-ŻhHw-[=l?Xbm'Q;>s!}J֑vĈw?'64"ܿ`) dlO$ nθ !ulD1ȯ`nqPBܵymr~日{SSSW^})͗e+ է/KUkW&}YRzz z]nt^#)z7z^ZW#|A#-Gjw{^%3 W^T5q3n8]Rso;)DNpQe+V}!>hNՏeż2g'HT@$Wa:g,u n.@C)2ɫ.ΓPBŏ*dySğ!Oejdҷ<#F|iTҗ 5>DdXF|ir_}Ls)>3|4ȓ꿥<`+gn9~0NǾe~d|$/p%>)6dAJ}}I >W:IF%$iO+Vwԡ~$U}KU?//-\oȡ`?u)c|@ޙgb gFAޙ gƁV~a0@ '6 KY`lT=BZ>? # a/]ѐ c|ƃv>X;Q.Ș5o]~ ejPs9qǪȁE/~g#cGz^4bՐ?P[As}4TȎӹ-Ȳ7]DX$GҼ*I>:.-0/!irbR6,θ7n>T:Q'@ZMC,P!>5H\( Xc39{ZVyךUDKd+b8tPVjcYEUjEw WlLP {MG]="QVT"dȖ*d +7ÉXjEьjEjEjEjEc.W`w"iEh:cׯT_r{f~i+F7`~E4 SRȈS\,7S\7{b9ɢ%q[!5Tbp3'1G|/i.xe.4`>[M7|j쒺_?gt(VxJsw.>~Hx]AMt]21].C[1/$ +YU':^~v2$wqJ^!cbp}.!63(o= Kc)(ʍW(K-k\\w4]ԺtJuz]x]7]i-6"\0X8Da!9ƐeHz1A/*H?ΞҠ\q쒐Y=W1D F5JYbP}Jr4>owTޮopx2*N:(#)BIYN~FEgg MoJwvӝ(V 8In׹}P8Mf8&X$IH ^C@<{7=!prO(~K@jzb $ʣ?)) B +s)|W\MaBm4BMb3q/~\&:Ǐ@~@ڕWLj2oxTYAvzu:;%UaMcB:@aFӨQ!Pa4zE󽈿6Ф1GZ  à bH4*$;y{/2aH.>[Bc_Tks/HcD]Sg9uYEUu*G3(ilQlD~"'o&o/7*~FUz=G9EWg'P8~JTؼ$X(iPp搞j,Q6>֡cyU(TPk4LU3 O4&~c5pGu@ mLg}TNB5zjʶKPzm(R^ᓕvs`"<|RaÜRvQ~KKgtJY/ԋ}Z{Hꖷp`oʀq~3ă%bk\Lզ! IG8|h q .(\KZY䂣 A'qMO]~6vL +]FM×DIQLaE|^irJ)}nni6-RRlծ+f泎x Cc(o۷UָM?q?_a5_b~KU˟c];ck鸌x,'g7`Z_bWL.#0[r ,mň☊O,M &"ϡ+!DሙŦJ\Ӱ0c˯ HG>/kjSNcAZh7l1D+J1P| /9W=O,'|%kT'qdwZ7LLnD<;3 K^phǏшW9تMGS6ئx]t%tb^ƶ)F-M_PJ?obcLOi_="~titj>_\Hi4"1["A4%mXhe&@Y%_ z,biM6}ZW[lbp]Nay?sDhI!\ڦṘ9#Z} G쪧5bi +Rz +9\i&31 U;p3pKK1J hR+4N]5UMɓJ+!}UVgWqZEN.F rlB,2-6iv:o_w +K1s]-j؉!99xOkW\f +cP"VuEЎvZo*mji&o`xPWx0$r&GQ37c'h?Mg'iGk{b߸ʫ#hzQDs"s?BLS⽜qyWtz#?N[@gɅҮxW5񚁾68ZBV7i<sN'O)FX㞗ckBL2#)5ƣI%5.J\DlU6,]PSzA4Ҽ$X6/9ċz6&uQEe$#HgUI:'6ɝىtB,+' R^ ܮxQLo qЯ=InK;TvJZ_PMø獤X9}a~?Mƺc =y3S^eZ㉻6Ϯ]`{g?ԇDꋋR- ]!3RF)}vEeѻ_+? PR9:;1BmqM[ZDa]d3S2KCX&v֡R\Elt鰳=qZ; ̂4NMRp(|}?!tl޻s=^lB~)ݢ @G/ #G\tsa T00h]5 oKTW?bNi'daWdf)gvVL|[U2 "XlS4t)'mH A6͟SLJW<b" }kd'o'0:։@,>}X@ m#Vj}bw[ PCv!QUa2C~uJ(^~h|_?GrT eg^Txjv3&ܱb?(nJN bXmJd@, rHnklw.)^{<Z8w~T59323{=cy >mV~4MxeS􅶿m,n&JᣤBJ/e )~h Τ\/<;9)(Kݎ +ۍ&pr}{X7e_6\ZwKy|Pm~Nm݁=(bP5]ΐO{wAo1sFA"r9+[&p]prx-\'ܿe=ѐa*TC[QZ[˶7KPp\!SadW ^(/w<ݥn̗wA/d? Y^put+(jvd ;\$W8@ +KK8\/HAhB +2a#U&t"?)\` JµgC>+j?ϧXDyײzbně:G];OJ>f?TKC?,5҄Imj^(-YÍ%(pO\i`7dNYXBDu!E07;S!i +Qo 9T,B6sӬ5w ;F֯gHi׎ISm4ܗjup(Z+TuSv'Q^i1)MC_ZihjiyC/Kw0uw˞\H'JrYk'$ġxo,_l j}:FB'W~{9<л`E61l#\Хkk׌E4vritU$^hTݣa\6qf>ɳi5EɭV'!ȃ?bFN0zZYB,Tyc^ŲKQCk3k :-;1JEyЅh.OɊƙPf&DE",|zeQĢ}+RկGU'DUc~$>T"5ea‹A~y=`'RS\>pOۑMėzSY!B.fQS)+`R9w{CtWkj?#((;1f W5;@+j؏ݽѲ./T~IKq@S /8!;delwawoi΃0Y5k6"LN4ӑihP>0 ,LtgZlb06Jy[jML&TVQV^)4\T~CE&B2BD&C1CiJڥz?iMh-VԆ/QOmh.^flxZO(%" +Y2*ci#}@%}zB(KFTVlC-1RhD.)ZS !3䒥\=\>U:j&EְUVIVP% ]PJ8NfuY:UND\gWxqgѮy#',ψ&tY~Vo 9ׇ|~hz3V&p }EAyܬc \/{ɝ!tS9 t\:42M&WLwcCcz|c\enp:MO\Ϥs%) j \*;~:'U +9U+YzD&񉪭C^>QrX(5C~!1YjS #\(AnwJRu9]pO/;V +il)ßTUg>qr|yk0X˄¶2ֻYu?/U[qCKNFTKpwQyر:C$#} "j4{ԓfaf25dw22`JuUyD*}JDu7O߱j,S}uV^aP 0I =Dt%ɾ󯦫Aӵ6&#t~dD޸wZ]Lb| 2r;rpLj~&vnʻVx5n5t&<:_\d{n-~ؾF GESmF* +EKKe9 (фos؟Bx[T +~KE3KS4%=j"/vJÈO&h{낛:o|uɉ +Zrn??v6ؼ٠u6Vv#\iǵԊj+u5屼%i==>ܤ^urZ:Fǵp:du/P졿Ж0/Xo+Y⪨^z^YPGp]=v]w@sTskldܐ9 |zotxh=?vu}X=uusno{,_؁mV.Q:X^ *֨Q¯Y5$[\ \6d +cJ=Ц:a@%Cqd4-jyDva&ep~0YK&Jr,2)J{\G6rw}:rT{?̓dDdm8VuﲇF٣ݣ:/TLj]2Bt$,K%;o.OFY&7zQK2F, 72dRƲC>3 +=ɎX;v8CW"X"kXo3,Y +eF=4'jczSXkHL?[ql>kJÚ-L1rs…R W0p.7/GJPxoGQQtc|eT瑢c}'z|d<$jڬsGp7N)#ݠK[Z}5\#B<|^gBjA/p%O%Qy7֫OvO[}2㫁>A3xf{GJ3?Uk"O!CNpO^wrMj$G g v-spl6sFcO>2b9>=UH++wziAn^83FpZ ( kmfy3jDo9y@z?Dј$.~)+ K9HK62ׁ#!tU!!"|3v-&*(Qz ++;"Vb%Z.6)-X6Py`k[g+15٫ٚNf*xH^oKZny.o 0tm%{Aq<*irPJpnb.F61I\A fz;aK+EHҹC3)I1~fTidBuRƍn{f@{p6}tpXo +bԛo7EW'Vy sd?_?񜯎1S 1צu{d~- +H|D|oK|0skS4x}j|z&_k4Q冴̟Nuѡ;wm73k4\֙yTbO R:Q-4X&Nި;I +ULx$4|41ݽt:׎Öo٩ۏ +Ervj ǦtTϓD^;ҍhG5Cxlw?(}b)/H'/'.;wJﯛ'Hj$j' lnuؐTQTz'v4r'O+l3,>uG 5тт->ڹ +&äO"6=D:D7"͟"-"-;Dz!҂"-^}Ha&82p4F4wTÃBSҳSߘxgwʧB3 @yJNZj8z62b*K{^[掗6-^z m~RK?cqGpqLPGV0NIߧ}^TMJVӃsڨlæIlGfM?/ B Ry_YHq'PPt֫a`+>W^W +<}IMZr\pµI8lapaHuȶ1x(;y0i300;Ց0͈dJL .̴&dTf`c]%[ײă [/NT:;Xr4w \F(kGN)Wf'D\ꯣ Bڋ 4MzN*d9a 5ߑq@bGCD҈: +b6-PcVπui-;&٥[Nƌїdm8W&F,{8 W|8*^~i$>&.כlg8$z~/$.'GPޗeB}"`S@W0&neXJd& +wrv26`& !τj/_he)|QIKT,fazmWE7۶ G:a6"jS^3D`Z0je"K +v3bB"怿Q )+} +[{i3}smH-&YT)p\(}c༐EXv2|cOk?ȁTHil?!@Hg2 fYvRuun;kCUwpAKIŧTw0>ʴG7fJ7g&/κ*M{CC5E7Y-DCݴCݐV!b8IHC +RV>!B +zD`f2q)ʅ 5p S!MX1+@=33UGښ99z5=#n6a Ԩ"om^ 7(Pd$9;C|!((Sj@7׳ L9s:ՍU^i\],.$DUkO N2P;N[ 8ygF{fL`[xB\pZ$bD2)$޽gVGqki 롯ffLj90*3ưg_5wQl%xpmbMs UUGА gbn׃P\g%,7P&$wNj}F'6 +TvTim8 n~śȦM=vn~,컄ĕ(',Nx!B>uxֆ-==e:Xl+Iar6O@X)٦:mY9Vs7Y8Jh4v0 +۪9f\^8j?z\ 'y'¦eaUEQNb$0$nZRET) ^QTlk}f+s#DED`sl貘uN²1k- +OT: 7lO_q\y燎[TakLaQ,NɭF5^{y>oI1;VlO{ޖfs=b6ǚoh"oT#$- R6&5 zL 'V294`h\֮z[&:)$j+}Ar/V` Sʯv!]{iz2Ib' N?4S^e6a^X\N+,>ҩ@\SC_]zH1\t^٘6=͙>vO: 5`Tqɳ5&{D%2pF6/4oF$xD$#Qrj|:\ؒ}bq'O4-"ud*WX1>to╻9^ */W5<`p%c1*62 (pFdK4~8;y!LVe%@-/Jvp' L"Li֋ai,,z!7_bILM)WX? 6Mpy1"¬r[&\!W:g%i\>kִߟ1~oxܨB_H/:j{'9t>wl0r_Lk3Vńo3̐ cdp|{\F3rHh·6o&B NAl[PMޅ)\5I\x c[@q O?)8y0Y܏L|`Z11)XGWs5bc[%*!t9¨gkSOOϹ9 iL1gC%Qaa&3~>hm + `9 z9MW &OǃәF-wAa~1^oN=<"'ϋP7@ݳcԏcn7r7H_5 =L@陁tQ }`6 aSf Hs=CЧu{wg`PdE0@COL3aCϙs$\ZtDǸqeܔ(kDY/ wYY:n^:2_['_0%p&:pKC2xEy^ID(}wbb80÷7"+Yfo㟻: +d=0{o#+SW'#PKqs~rOX%'{6"[U•򼖟AZOqx.rIuc 'f 醱7,}?Cʙy*grg)tJGfLJCQ(PrkroLFjY;Tw=tw,<4. +YWn0KY߫>yޢmwyNe=2]zUךz+؁}#Ӡɱ ^ˊr$4Nxr[-h 6ݙ=aٱzr0ДNc9C?pas8Z eS쀪's7x-&w, ؿ;(e+9I:Oe\f/븮 hfcqc*z뙔x7z8Mg'&'@~SKfPo RS]ӹr;9PǓ;#IIg5#;s,R1Yf@Β2o)QGČYsLk.¯5sVnaF)oR>38z ޵wefa5 x.i9MҚ:]:Ӛo 7r=&,mwKlq} FUF0' D㑻.ȶlc]8pM"]T163)jZםYӎM)`ԱzJ~ۃ%%u1R|S0VZn/I{d4PE|;Mu#-'Q>xdr(~uIyv\(3o1Y;$ g;/ ;C?GG[d2hq3U<]"άA!yxϙq]/VX&ڠUy98۾A7Ft)!<+ Ⱦpo@nOu';v}4TtS?)[[7&DPC;8Зs+K{WPI7*^,炲a bM_mAQL*: g5nmT97T t,IHؠe@f_B.v|حxw 9e4A3t,Ʉ 3G$L=K/H&K$e{$jbYtnW%(zsS?*T?+AҚt/TO&clo=' +|:v(T(]5tn#5q=ABC? Zեܦ +"7j-2Öcp3y'?? Fg#)9P瘺ͮ;%gt܉^> փoܯ)֠/+@#Q]ˎhnlhOVtw +xSKŰr'n#|{m^oJ pi ߵ_z1غ^;0XNja,B= q_) ?_S`-3zbiO]2G`P ery7S79O!Tozv,îtR&aa aZ]/-j[[锈Ӂ_=:$7gxd?JʯF(_Ú2]ħAM!95!H&D:Lx#I$:&߁C> + 2F0#W(cҿ^U Zj~B ;N#r~J9t"P'xNj]@Q-TF p F Ͼ @63m츥 KuN(Q?"_%_EgJ>Y:c5U( d9ݤ~EbǏjog/zө#&0l1v/фZ ;n ;oYOo}| 8ZTYGT嫗YM!P Rz: ub:Cy`H;(&*e ׫ǃ(=[_?"u-^Mᑊ"̶4uɹqVďbec4;[Zl,4Ne 63wH-NbX?_qukNW^O(Ccw(s +/ +f? 8NoYA +g+j yra.b .<řxtr!s]JO?<+:vHi +\ |%L"O; Ow^"2' O20{RǾ)ONaZozm7-8C` +ljӵĆCζ#E!? ΋My6L0zs0O8Vs#A˿=hZnZ@KP*jJ;5WE +v*ayY<ޏ! "(,<>&/`UXW)|1hy֖FD!f@L@FU:v)V#1vJ*G $ϝgu;'~~_cԯ%bl]"vKe)v;XKf@/ac0zJx-or30%4/&~ _*>;+ñP>-a +/s΂1-pOs(.mBIdf.fϱj!k* M| {7w@<'NCLu28tD7%@SL&3yZ³sύxpv'#Lx+=*P';ᕘ+ƣK߃ɽЫqI\S⋂QY$!eLt=3Ƽg?txB'"216U%w֕Xjgi" O5&G1dt^h"ٯ[)C"dk>-Z|&P,0vQVZϥl3-sw֢4[),jo.h$p J. Ȍ7U#8~ОPh7JQ*q79rg_K:4 ?NrN`֨q6ʟ(Zw8J9B_XP~q-M)qU)nJr^|:z?cNKitɡ6BCzlx~'4gDp7[<]w¢0Z]Eڭ +}J% ;)`r>.Y載A쓓-dke2}Y߉:;>?JY{x/lfe \^Ic0tRCƋ5gN]{o_78!F\_se5D?œ e(O "_1z[e**V vR-ʵP%T&ӗ$ww-0S~y -'ǔol[7…D |Mԍn<۱;a_SB9#{?EQQWcQS: eQf0S3?[3˹6v}[>+,F9w%0d.)5X!SVz-NWYKNmt"fI0F;Y +aK:B.]K | ,u3:-.n:C{TVgsWP,=7 (elHWa"=ICןL߮>]AJ⪨ϝ( +ͷ){,fK$'&wOyvہ +-Q{L3I'KOEU䚽-jI7ZO4 ś[*p!} Z^B=SA_%;NOşhlZD ʫxmlp&UêX~Ja`#vlnو( +l /,koHlhƿ;n #}9bC5NX?ׄb5-X5W0D"24?jelkZpۻdF`ijl(Iy3}kxZpfOF<'CH71<E ]]o杼VEp7 Ϭ 4<'LO8N\~zI2*3isqngC3VPe]!P C#Vb^jp fp50xU0*cC~jl61oVV(v17rR,w[~1΁!Yo~0]+{f{m왃%u'n'2n療&ϪmʎOK}aѹgU*YO62&bq=rS&}+e_kS%5wώOTTKĊj\%N/z|3]1PqCj@O qmK}6=n dK~udc&v+DAG읅ƾ8;vLsg0 +q) GL(j:UU%Tgb3^/xdVd;h3af/ +# J*õgV8@ +__'R'r<݈0VG[/^-%v 8jI>kZh[שuGp|/?ݴ4ԀNÿt΄f&y 3K*"\VBςЙ} +d5P#H$d6Шv qNI9A;4T tl&hh7v `vTPͱԺOiu3=ױ&3XHpY-³ @6p7vj?~F=|R E8I +x 5G dO ]>Td|ёHƅoM8@bJLT{kGGRթͩ L=RJJqZ[Xɹ;aF²gS< |%U#z5u!DRŁ%B$2j-d4/~p3x/q:y-z&V>{%3@4g09X@B=rCB^tHjbC*Jlw#r5Z1"hIc:rtTmy0, !G£{5b):qvTt v%LvUcWO`I*~_|ϳM^/ۇl)քamG{Wpo!2g! +| M0Qkv _E} ũ4HVj%U zF)B}0gu0T3 Bs:lRdXU4)u(9Wj0p^$L^ON~H lFPbTh݂8Ph[=nSLiX]DbCB +ݬӧ-\&s}#Qd*cFڗT£2G 8&:T} 0;@B\r#] $ {TMI*Xw9atȋ l(@r6XP؀D#4#"K3>@CeJ #fӫ PBU 27uٍYp`cq0,fC* Dn Rb&^M^8h^ɏ{6GhNN&TdHB#K- 51Phwb;&f;t|՜?; Z/CHSKȩ PQԃPEquK~0_op~<bټOo["4l<Ք:AOs_Zmiٴ9Ƿ[ۉnܫD̓r{(6c/zMkoc/h646BFRM(hZppnq 8S|'\,Ze bpr \5fzz:gRvHٙX 5gЏTn $Z?>e3 P8 C4neC1z} =kF|_٘N~}DQE3W\$F +* ;H~BJba1t^Vg) 瀞{CN~:ymd_ +03Jńk+Cؽ%O6zZS(R"f'w9'Y`4D:h(:9R_ ߒ3BtWr<hG?րQ.]<~ RRi!ZλT *N}(S-y3Gҭ[pߝff>Zsߢp~y\u{xh7ۃNh^#p qwYvԶl'/.N30 m-\;sMU&_az9VUۋow>_DnZyy2iX5dCd',&ǵ|]MLԁD>p>_k=R2+opt~f\ ]^8̩a4?_,|341/Y iR\yyT|/7+(PQ$ /o^*Yn!lmFw:  `f^4Qe@#9p [0饋.ro~ +Rݿkj>̇rڇV yE5]mDPsi 25P,b[&6mW۸&#"M8]&0Ϫ~ĥ4pćRYZh$ YKwOb)_3Re\~ѝufrB~~,yM-_#F)D9؂;tmȜ=.8>l{Ck&jܮP})݂,H1sַL̽Y?cQa(l/e0 02"41O/?#xOdGu" Iv.h^{Ä'MFd|Z/1꘴&xx*4she>_jVDhR7s7v6m볧H'D(h4]rB:b=3uf!?ߟsf仄,6b2Q0S%̓o4r!PG~(C1 'P!âwTG^ahHDM"ኹ-,^*|?h49_e#I X=p6Z`+a˖[Ee䑉"\ P #2*|fAV?txz9[j{l(:Sga 03]$cEN)E`-w4'g{D(ėq3)sҡp?zz#o[?lZ?s>is>2Q 앲:ikw,ɵ4{0I'qO>J맯3y] fH3I qkj]E/ѕ^bv.$<"PEa"-MDz$, )4 dYBAX&'ػ +:n;|v FJ[mBl3ε[c_|d,i~Zi`/+&ض{x:_4z=|܁QE~{7P߬qcRqjdTz >'u\s|Yĸ}Q$G ֤-wijRE8=q{c?|Q:fmĊu{Cʣy 8'qviŒko+s>I<4߱y (A>hzGPXHhL7 3-2M]wЂfeWf>:v!9o+$xSx(0.b=tH NZŇi<|_e?po <\<;{?hB;DhfLjCksl`}2X2[<Ͷ^Q1&؛LiOW kx9DdS©amZ ;&S'hz)^z*YSi u3%< 23ѝ~`}E:P#!( H9pl89QO0׮Ni<#^,ܱ.0^ v2nh y4 Wm3 {Nf)I.dɓ1y|Sf,x{0Է(=ERttDfY%.Igh DMQx }ap/Ϗ !g&*97\[0Bʞ9H-Y[r>+cfkjD9s.gDO긌de&yv3w3]̗䟊l!fo!"CXu'eu=0d I<9:ٖ? +=|Țڃa)oF:1cnq;鳹H} +l]LHF +9g͑/ZR__A9eE8msZNc7C׃> oU"|R(㕐)A6b@yާ 5ݞ/ ~KQu#VK؊Z7H:HEZ?'iG\Ci_2x*I,l#r{N_3n?u[Ow-l ZԱܚs +-Q O2PoY]2TmOϾɪy-;U9)Vd >g)wY/=i˩oK2ۂ3}+,cu8'e+,gyACӀ?1&SfYNFЈ"58yW[̍xU: S;4Z(Ø\XBi}bPJ\?W*ཋi%HyB&-C./_͚N%'ہ~Y[x9[K0Co'?qOqc&гd$eJ2b--Mź˜>cfjD.z@ xf3wtw|8Y; ۭ:݁!&lc% >qLqxAEaU݉R۵?XEZ 1XD 6(P :m?]/+uXI(`}+aSrxxOFLt6pietţk=HH$$d3em*PjuF "Hѳmth2f{$b~Ν縧t}_r|w{>Y+EN=Y2^/.kq %60"#}ɽp_)uq~k9bJuFygfL3ݱV Xd*yuX0,VY7גř)lm31T3CԓV ܵT;D%+.~bѹX%1pip 4K-f/<_]+~+^+ɗBOhѿ7а8*i%@=Fo)sIF@t|TZUpcSlfH PřٲɆçE>0CzD.!l!Żd/i XNKcKxvPj%rʿ(TֻMߛUQ"P0]ҝ9NZ^Wq^YAK?ZK7IqVFVr!Ry,dB,`7-r#JG+/0Q!NcIy*?Y.̨DD*З=j|/:DO/v֫8QxC93*BLũ>kP!~B(?+d͵"`s' cu!?=I@,0]X9B i Sln>i}8[v1螏+fn߽C!nzR۽ὍIuGӻΣ'k rj%E/ ۣ?KO@Z( Sʩ/L.e1% Vf'`%R ;d1I+^uBV_5K Bv T#7R=s-:+=xY_Z: +fGxqu}aq@dƎl| #;Zh°Q/,ضz .4kd5v/!?[+xn!>ゝ؞^%#tD#x: 𩚊DCv꣔#- pw(/D1{3yQ T7ZH|2rmqu1'7w-= >lk O]+([Q~[T?/]sj|ƮU=ZEnjid0UVp;pW5F%=1qy#_PCՙrOqUGtrQt(:MqJU}3SxS"`G}>rKs%*;Za`ūOE%M~)_֖~)܋[*'kg0f3Y>o%~Vv lє J{%-1kjysbd\!B,Y؍d-K쯷󧷚f-dLgCT8U=}+@=r'5C1v~JwfP#gPO/__aZѫ@3H~M_1)DY>3%-.H?_U-@t:䞒5;$\FN<'|R[RY s=o0˳UWo=mz̲ZB=.Ygܴ,iZ,զ런%j3JY]2`sdZ# X <`*MCJ]|깞Mk-8O,` @ t>#9՚TlRN Ep|όiϟvVɥcnf_ +_+y}V{؂. +鿬;)+]_y3_^DV>_o-JbJu#IU޴y7[싞ѼoW +lYM^";5["l xSè$@+dx3_aTo1__&>O-#DבkVa9HQ;kc7e=һ-юEf'DɮǼ۵OAb `3*soTS'8 רg-Y(H!b5-AvpTOQe'"Pp90=ag)F{ި{sT]6(ߌe /Tix`AHROV"F@Tݷ$MM8ܙ;rƫ(^Qj-f{9es:'ʃ1B\ad@QİF'go2(>$Xu+a땰ձuàz%d|z Hs+a=FQbh(*z%l ^)0JXGTnFJhz!ov^VNJO464j܇3VV50 8=0aY+o[mёrz\a WtW JoFwEXJc'tE^ot[Pf^ԹU+Bn"Dj^ FSI':5;J땽gW[5%F=Kd]W$Q+^+$ǐZ-l0WdêWi89> @/^S{VɥdK1JA,ޠzI:w@.^ ^ zbzZj +6-XL.Xz%GIar̝M$:Fd2`e:I@joz%zŠr@=bJ;,n2|B] _ _˶y2qzGW>ke+̗> +:_z%߼땈+"3OvrQ8Y"!2^ {GYM^"*-gh@q̣K+,($ zE^"EaGRT,QWVXJخWH;k +F;tv VPhG="atF'+e +"OTEҒ,*Sm4eyJlGk2DXJ()&fIsFUaOiD`佐ҏY_ВԻD _CSʋ~KDz7?M Tev>+׈2|NS|j$TW|ESb%poV܋dA bرW +|ۙp,H6- I"?Ɵ+Y +@Ƕnط"gjkSW}?q +֚ԕݢ)f-c.ҶÇ?Ϩ ߴM*=RWS3eﳩa%wa"ٜqs+n>7^{*~4iH$L?Oo{}jvEz׼hƧF ^5bjt4`͡/pLg>ެL_epOj =ӒX7e6岖hbv57;Ԥ):o2C9fDc]BqI +jPiZrۜ4TWoc7 ORZ\ȁxheL̎qFnFc-q.`l5ۜXU}`% +!:K7$Aϱ$ ǎxp4ߵH}_&Y%,=V,quIN̫='.s8CRl;)2| +B4vV_^.-1^ɢ$g>7BN@!jIoB kPPQ͗`[up,%g }FXi +v5wI62Trlgm"iuji#0ЅMA^Y눨y힨Y7xy ,+"7k@xi۔zmQl+Q >5ezjtlrP>N][S zejR71̓#+$O3ui39~g}Pn&4](~N7.A[X;XasdP,ǔ>N`'Ln ɦ0o# F/‰7ťs}k EM懤>iw/Ge_ZuDe\{4l]޼? (`Ykh ;̪yBuPb*Y +!pS1 {ե&;{lz_dMVFw7wRj. ^K*p8=JO&[3}fZ_?Mד|"_"86?*]CQ؟f[eeFQj)oiְ2AL!H쩡tSkƸc!{0UT?el=HB78Wpy+LwW Bud! +F&|H"%)K c@%olM5؀yfaqﶮÿd:KX_Hnk}߿U'/FŁǍ-,#gkSI%|j,޹O<gz5U5r~JM9铿}|TՕwf2buB7hZhגJX$bm~ng`tfܸ%k۬e۬k5I2)LdFjbSV@|{ߛ7B@?fo=sϽ=:ͪҬɡ: l2WMoX0܇L2uVD ;\P=ʟ^zg}[UC^;zthɣ.ۈiEUb8| I0Jm0z!-E`Oԁ v/Ei6CeovfC3V1P7+U ,؃;5NXY'_fjFGζ?IOPcH C@^~^b??3?4`Ao׊aZ0ACs/gn2ÔrZC0#$6K`]C_C_C_=]85]IiI;p,^Mʸ'L|H&^ON/vxJn^0iGJnP$Vt*ߣ``gMZm|ZQ>o|&LٜY ȧʧ'mY@>o|&2fJt(+;Yk-^#}l\ly?P +'WbfOS5/# qI +Ђ"0vH)9Sh55/DI\ B)j/9:1d\=T7RPxSXߚfOϊͮRB'C)K{Ę![xVe~2/?t2,ϧ7tAX⣊]7-s-WJ~WmVG~ER1ʃ^ی*a>DUw!gJzlvUWzWҰ + T iw?=^Ŀ ءoCi/ZG/F&Q + +*>C1dTYs=?gM˨ TW5Q7, .QL[ϛlF+#j0.U łlIҥQOUbtyTZL7ghyb*ӽ@z|^ձg +s:QٜڢdJ¹g7 F,_M!}Fa L=xqpÈ߳>5E88CP0 uCwg0gop)#+֖,?6y/D_v1,PXq, ݉=PS 84u:"e X݂.i3ܢ +ɶ_궅>m 7d$"5xԽx{p ]=b ._tZm[[5wxKJ~-_ʹfz=+~UOʇd!F-5>S LTЄpSk=ۭ:WO6|?YBUx>ǁcH)oj$L*_ Vbd(.IZ"O~#u!%;zPA+P5د/Fͫ\TPr)jdd= {j rC=VrgʂZmFnmQ*C^2MkXGoҫrUQi[Zq ph I#;sXzѿ+xT@|V~ˬrX ˕ر&n-@Oajsnj8$ @ Bv'*+0+S֮5V >k>%85U oB:~C5V6<[l8[N燩ec88xh9-zp]+R@J M;QD uEjӽXmUƈ;)'nC+T0|R'peSiƫUJܭo\q;\ `:O*v;xYL~3zHX2ѳY\_=ڷf}XxV\wJݩ{*qj5܂S"%Xke8}yu ψʑA +iOYr+ĝo*ksҵuÔW:BDrw J[04m)?["z{1lKi(`ښKwkk2+ d6\9M6qu៍ibAI}ahHy/RD7ӆ/}҇U3S6pEv0HYSCٗNH@tPC=sWF$ +!b|#pWVz#{~o;uޒYNW߭ʣC=Ӭo:S|(e1Q_y-;N[d[Wvé>*,W} or[bשJ \WJh $&NRm|=PV¯5e%׎MڢzՅף.M8&/2oI)pyǵIiۣ]j7x*#Zš8%4ȝo+TP}# *5׍2)Z79 bA؍{ +U;zۙ܍g䄪ts~CA܉ܦ*L)cM'S}蔝p~pޣ=ɤwt*z|6󎸷C2U"̛lQGf{P ?Kd᰼y< v<;W&EE y3iKC(~miʔsk_M +!)+}M`}MaaD%}狞@p0$hz ?Y7ꌙd +CRr-᫆YBM]NJvkfA$" !'5(ID>oQIQ)3yYYtdL ?w]q]͑dUOAf7.% +_¡⢝!~M8Z<<8q1?Law)RQ1װxDZSYhOǘYwkCFv*|m/3R,]}F 5Uw0GSo皪ter=5yYhnXJ!i5)nW\yZ#.A_A[ML1[bس(]=x>baU\Ǭ's}!-~T.LY?ݥ6Gdo6kGwj h|X + ?z#K?$ELTDcqDRa2`_s\i#K:!,0S\)Iɼ^xX!{Qs"`f +ȱU8X$\HhTd/khWuz5?s`%Cq0'oYjЮT-&-;6\pZ-&&$TAl4}"ϙA{/R|қ6PBS@2 +/e%Wa9bD\?kpH^#S#QWT?! D:|)V tE2?Uoh4hP(VUi7)yJQ!_ ELEKrBy<'(b_ 'ۄbCJ]HwWvj1Fw n4(k`In-a (r|怉Ty  Ev>^v;ТG<}k +W:L{^VfkIIhtfZړkM"9T[W~WC7вBsg/02":ہ=,:Ԋ2Fi4h-74fc:q4)Q+mRٌ+XcJ9ᗱqv$lźCZqIsrpuMh-EN%Vi%nMX49O6%i/, +j8|'VҒz[%o%u\6} z [<4+S,&W "NG?GXDX + +ѳlfy~Y7_W+/= +Ё={8ԉ6&Qn*_QQBݸ؁$R0=yLv@,V=:BΗtt) ٯu{L?HKڠeo8N,m}˴F5CYD).qP.Q-* +VɾRLneV0vSwtvUiJ"qBTFkeKwJ2v\PuhQgw;ETF3o,|!Θ`v%HjZt -Km@۬BOP5&oE]sA)t">-dNYuap?KUIw&} ,To"$O{a$٨@: &4y\ /\LU c0KTD hxY wk!=LI8<؃M. Ebڳߠz[1٭<;~?P`߿pan ѽCRL+~3]i+{Qz'ZoNan:Y=zgߛOv>3L>֘_}sҽsiMCG2cS- + ;g [J|ƻ_֐?W=.~.]g +={vmgfo+8C~Vr==|?Xs|Rou<ʯ2Cx~il}gc<_g& w73@cg ߽<3?Y'_fߒ1c{gxS;[< _k篙!?7y Rs +;?j=_gmg^h ^p/wqſ$ ?׈i5<{9xU6x<L_5^..:u@2]ﴋW+l6s@AVxf7/пǮBtͶm@?Dv~f{{ ?>'o)Y׾3<mwxr3:#0bz~ħ,c4W]>>?S<]w IqN#oL%7OcIJYd < !1Mgq}GAFiEݏG9K@h,'{~CFJ(ƨT4JNе0zjjWA]J=:)3ppxPQJ%<8M%`$:r#H-U.xK%=Nxa Ec{rh*#I8w~C4dsYbhgjaҭwU벀Lk>V~"U{7ѵ@l]y7CU} t\@ٯ;/2`0*/E q|J~BO>+3F܅)v׋)-4U][s}pWjU0mŻ]A%?g *eUnVf|&maM(^)exڢ&m\Gm`Yw\-*b8dlU_pE'rL+n FU4z@j'>@p]tD5o ZIWUJG]*LgԸJ#G:E8Y[ԃѓsTIhԉL _RׂLjǫR+[ruFy=ђ==l]ERGAdwR"ZG;_g+L2e=ѱ0̽{:u^㠴&޽ɑL8ycl~Vc^1\0pwzFZޚrp5Kf/>9Ŕ$PjIZ]r*ړ{X)ꡕmNuR@,_\a`eHg<g?-Q }验(ʩ5E2_--\>']J|i`PuYh?n!9oWLG>~Yz\R@F51}3Ih>g ,NJGT؈H]qyRfc mC>ܝq9.䗟 f2ԱٯYn7&~&l3%;qVj  {wb.a|>׿Snww"%1]cJr# !RnVtKϷzv%k?b}I=D=t=()&'q͎B,wR$Nis&ݦG|[[Ykvb dOW);@,܉S|Z>U}}ZZ/*Id*cTޭ=P308%K@`bYtfAT^(+׋Β^,%tym3әvVBt]h)Y?;1dLD`Pq:b:@gV:e| + Vsm?h5*$n+ưEU.-W9 90_ U\|#]Y.rLEjHk(H9頏_kN>x:<1u O>|J֫磏I{uht6"[Y<F4tT[nUI<݄ +2ԻA +SToGNNh` +\9A!5C7.k%S:NV7SOysT 3VSv,=@~)JcWa!!5"U 8rUn`8 W7J&r*R3/L6#J{-*VJȭtLl|#_O]]AG"TrlL6;㨦 AE[qɼ q$R;zҨNF']Z'tEP@yBAC]L88,8*wk E Pg#0BAH`H8vV)60# +g RJ3"Bw"ĤV +%]4#EW\PPMLj-VXB6fח6»R3U +%L2_l^/G,U2_ké$FMBDcIIᤶyĄAr#d~߅1[8fJDN^ DNNcRU 0*qU?B AP W\"qV ))lfopݲwoߠk&|'<7Sg]6 m6A8`7𴄃LӭgYӬg)ඕ.v欃top~?p:ؒs?{CDNʀ3{L\Ys?;:]gL@ulZps3X(`~~^~nZ='y39"wϔfZKvOK@xar:~ͻ?JL'uN@ͧ^[' \jK@gB-?xr) A{u 7s~hGִx<_PD*jZs/?8x?P?0F%Zyg04g>06QƤRP"Tj_[^F{ifIMaȈL*@ cJrxwDM"%,ʪď3 BÐ8@?`(x\ jdlAP(IvS1َ?t;Hm^?b^OG<3! )wc*<r쮣p<4uZIy٘,XTyETec<`&);bF1vG̮]a׻plW96y&V7bI? |Ӝ#j4۩<&XM *iѤ#bI",wمx|rLT(<"x4?"JGocE'5N<pX⼃8ӑ[  39M9 W +4Z8hƦlUs}y:f"2#8L(#hPnL[Lo7聊S~qHƊG'QBuj70ԨrbrtcJ;&-?լYaL}?R2%0R_EO~:AhC{27uʸ~<>{/KX^zt̮Z$ ;{׋ZxehX _Qw`"yLO@ +^7]PO b\`rDY [.t8|#l8DRfP oqF#񵹃~SWk sףyG1H(99SJ U)YZ{A8pF <.9Ƞ-51W! P5S>e{pW2&%7r'_ކIqp&m?3Q€ +B},30"I9BZ6zjޜDZDףM3ZQrfҖҞrbL -? +'DQMO׊O+nv쯴Jpצ+;!Z.` fi Qa2xi !\auA0ւ6^"R>d }N!2nhh JF+ v{GJ :$N(@\]Rـ'4ú$r\έx8 ++`',hdNfyn5w|VlPX`Gf' FGϋ>hQK1衯"#< + Zj6> Ż2B垡Wn7oz8UyTJ!Z%2ֱ +8>>zK;' )Clru/5NWttl0zx8=]rY$heJÙf(ӈxwcBŁ{<;F{'~l6Y +AEֹ˳9u~ս}MWyGmt[=俙Vpջm셐Q :˚gwj +cngi*?riFv;rc?B9HA2/cIw#xͅȅǫ޽ȏ-#UtTrk#q(w{ͼ|dGL$ͽd!)k[i:7%nܛtAG?¯E Jeo*jC$$%H$mqIŏ4ĊHCVjϰ$#ݩ#_2?r4{ÏPُ#<XRG4@$S$HIHĴa=ArA(ʏ,?rIǏ#K?BnIX>Q2V:RHHESC EC~`)F!>5DH"?yaYGǏ"΀!3)#Tz1i7ўtoy bA8D[o){e 8&4-)K argSFѻif +%q)]y2!?,a7S:I^z8ap8'$C{6aH8O +R\S'y.Jt${)J;>4']JgYo kn\F ERn~~.d\hwUd1¬N.1s)EpQ$HwRT!ڔ[QP,KK|?"Ik_cK[BM<[ASۊHKxd#r7#_0I[F꽖v&rN,$"4`xmM}>UH*C p{-8DSq.˄F 5\3+`Q>os-f%:MhRA-WuahDJ3^A/0^i㕻cq+l03^_)mAFXz! J[Ro{ԣJ^U=Q mຂZhqگB׈7+$eUdh,n1&Aoiỳ  Te*^٧վ޲P)MiiXcEEi uf!r$[5<^:a A<=䠗4CXS OOʰǻAKʨU> ]*Àb ,kc +b/XO%OtnR)M>[bU4l@(7"A:J .f! ʆI;E|PP\a1[KLΘO g&QgBԿT p> y#mSzF)j^.]5ܗ)];(qrG"`IX\V*R Aă?Cʫp1N!H0tB$逆1,{($HAH%I<Y:͓>̓`4&jXVCkXWZgij>^cQE͗γ)<ʳ¶\@nN-;QߒO'+f+c)j?CIoyw҅oٻ /zIدǏ'/vhNj3]rxY/2 +^ϖUq[露>tO9Bb( q0 H000Aȇك:z,#K8iJ OdgIeRfċvzOFG|DžP^$5Ip4s3?Ol2Sx@6JX aר*"TJC/)쌛;\gt^~z1%W:#9s#tG;V_ Jm¦0_ +SLmr]Yp<&]֓;AFOTKduBڡ7z s\5f*k~#C;:_v(|_|,;ϼסY +NUzP9>>\9>XkǯCY2WA)6LD_m:ޜzh}@h8r!^M?'oxyЋ`l`NyO6;,2Mi/[`aJ^/ܚͯ|_8MJSOkAhۄ>a|Bǔ<}O9O@09AxhLO\8aq[vIP;|Yyvhj8 {$n:$^(C"^gG"^VuZpBi– %6O ֵ7盥4wA`393l,$ԂzQCiT]£}zd[FɭMb>}yY|6{ iQ +WP|FUծ-B#{֓u4F@~B1V8z^@!*/ Pf^@H·P/kO#Ѝv)wf@5Ъ@h0jd?%U'n Teh TO>vr Qƛ5b]4f@dvAPcyҒKPǪ7i^AMP' [Hg,N4C ++DSü>B}Z}Pom^( +uȮBMIBUh3H͝}PIV͕p{Z</X稖|O[g״d +2Z?9%A|KGM@\;i. p>Cwf p%6 +r)%r)SE}NL,5He=?y}N_}YCxXXqɑ)>2Jdď_mO q}ky3]~hn/<7Z 1ɔ{UQ{fL!~~ETW4;\zrHkRɟ?9ȟӒ?Q=dZ{\ڷoy3I$$LzE%~!Sx랩eIg>H-e yjP 槠>2UoZ ~9t +SHNڟz*Tz@,@<Ь@ + =`<*K+)AE*Z/~QOv_׃sEu1=8L4:i=~~7xÁV\DJJfdmW+N.7s)A¢_IUιiԋiŸG=7y<6R ic ulԥXr519]&Uz.(6xn#` uɤgQ4-QGzx)1;5z>)ekf?kx?*~ f Q Tr pu mRf?x՜G=?xra;dE)G̊ +* d8 @WOg W@UJ#e|5Ro eg^Tu;j7ԏR[Kry"AJ,ԻMH*Hh uHDt9 д>QSY1[J??j?*}QK D'oNMH'˼w߂՗yS/32IE#042$EYKҗ9cQ_d֗a"`6fNun߯KsIk.2Oz<.2/{2?K/Ӥӗy6̋ eΖԂCrfE`8 ]Rm \;⮄3jfz3yZ=s(0 "TfPa挄1-Ӫu1:9_>e.˜@_bLoXYp3[#0} f1}`e5utϗ-˸qQ_fQ_f+,ϱ̥)̟#|\e$3f jɍPkc rUqk&dS#ti}H1)s@r-CMu#x⼡.}E?_x-'g:pQ6b&&+gC;F :/Re*Ex$PÉ5KRcJY?q M]dfIOtnřЬ.7R\P#şz?f@]vq &rP2TcL#i'ЅieR1̓adw@LG1ʆ=滔 1dKNapTˏ)<1|lGa};`;12Xc\kt(K܃,93p?\'Rx\{sxa<00!058c{p[3w{oM@|l/ȍ_eQ(ǰVl)h-=q.4*$壗IX%>8V=DEMgn-dh"sk#,X¨o^Rh,M+TACNv- K2]Q|p!gJɅ )ZCpN%e9{`Ö{Xv9?NjMy܊cqYp NIha]"p/=S̢=y17=sv|#?Ư!uM@uwr]2֑/M:ެG|{X۔̎$⟌i]= A?rW /\1HbpBٜIf p#EqB,!KFeF3g!|iH`&W{'&24Bm" d_!y\''|7TP޵PUu0l\qʣ4Z, + Kyغ@*c$KxLǺ4N8<0w©BXJqK0;ydz,cB_y~ taOJ0M2V=~I|%Bu\tW"V +ƃiJ/1D5^VJlF^̔Sm Ɣ +m&P̙͛<1Dž:TktV4Qr ‚}ILW1'6S6 fJ7+E,itDҤii9s+.c-aq0\0#eL=Srh鑒K>I#r-bw8m*Un1jDKNUKx:M\jI"zm9>='S$ '|<\3h0 xԾ1 fAVW!1f] +V ugMbL?ƻؼ/).P;۹6 +dq \( $@y +Cl٬,pi'ײJt@ldY _t# L$LBg 3vH .%&a` 'hsW`noLA^>R5#(rݜ(-'J신<(٠A(Aʭ'D BOQeZ EClh ; +;'iw^ n}-w_ E]Ч  ,(OВhrʬKăBҏ{ҩoc x4nYç@#S"!{.:eûfdƛl(m64*!ڄȉn]BV.:`FKnf@e4[/6[V +h7k/zeFiVOz<$%Uo!oFNQ:m!kQ!P[2ihC` EfAf46)A"9ʭ4pz|>qxD/ ]vCD w;o7p +m`SMg o`#}xÞ{f< <%;\u3cL H9a@ J\pq_ `~5* )[1a|A Fhiv$~t{篦DȘ6_pX|2 ?}2_x2p4 MAlZaVvd-7`>G-5Mc ;ZH?X` ڪoq?e}phlVr!zZW&Ȃl:+Iz*=2~i/_y^~UݯI,<@(/H#1d(CtIݠ[hG&HpM^ұ89Cئy"`)`|* x' ~*#l;>)y6d(s˚aXEF<-Bhlb^ӂ=[.!5W&2Sy%*t}?衜8a;P.P\fd!<@,]>,$3Ae>j:x=[OC'cYdXO&#:> 'Maڂzjj(q {;ˠ@Ev6a#p#3X*ɀq%w*YȂ4PVui`n#)`~$ۈQ"e@:f:[a#gd3VxU +U|Y +C멪ň|* R[LW, վVx6 +{x N}K F! r?zHD'?L.]`c#ZMRw4m81`#t vR;}yfi;;E +P HXm̛4RИ[L'P_w6k]f@ULK3 i HmεN/w{vàZ%P!0=mj"yTf=ZxHbΎ)e/jW/uBXS?r4Yj[{n|ži ^^\ |3(\^1sͿ2"}]S/cW(F6G(Q?Tb4_O`QN?NF'qDA +T2/%od[p#c׫> +ïDFv ;`<" ^6Fg7 qB@8IU$!fa\ȉ)UaZ6 7j #ʗgۼ{Ɉw8LrRP!C+1~ <Fj#~Oċ/"9E~a"a X^GxY!,\XG n%f]=mZߟG3WJ< Ȗ4JR=V^a>X +tX~a99ŠD? e|,V%(`,GcK =>Pt=oz +9%(dlˑ?9Tҕ 7%*R"'9=Ob3O;Ik0 px,gRYF2nCބfs.=sm}=n $a+ FQk B]=2G֡D2mbz8\=UWcQգ8]s A \=&kl08HP~Ǖܝ**t8K\ߏl=x nZZX| O{ʼnZ[rBБH)+MRԢߧ"#py>qk`{-{ζiHs޴ƴ6i kb +MKWPhci]}&fw/B!W2WwS+ +PeN0/ݖA;G'yT8꺿66xTc@'hR1dcq<4PNvzKuZ3m 82#gDFZ< , afźn,>=igw=ܯ;/ךo_>G2s5k  Y}:Y7|fVki#Oi؎yɥ%g.]n '>>m|&d&t|K9[;-86iɱ$ ZJBAp8$+Ԩ\O0] ŏ{ +3a[?O ]5k䏎:kNV 5tLMCzS^KzFBf3ָ;`O<9#\57py\gjbQ`G896q CuHFnz3 ~炣'uv,2ޯs3<[g3?=Ǥ= 1 m .,]npr _2f8df6o(W+ :L'@^4o^&ٲ/3怗eePA^V}d ٴW\Vqq+X7-X׎`2>cqlT-Пp&;}qp_7Toit ޿]UC^_wNt17:>&삏c|;>&c9c,YĻTL7UQثՀ1ScȳyIOBr7ʹ_z17;9u*$`Ǜś*d3䆏oek⌖7"V}+x >t+cZ j3G|=JMz&^l2q?zR&߾\uj5#$fS nb`kn?_a2MGhؕAE|&5l1qE>`V`_{X `r;_ _kmph;t|IC~vP{]C#NM7`#^8 cV`+`& bW}Ef TBP+ma:.4j;>@(u hy]Yb{.ٺ<dOSoB(Bx Ϙ5x^(6;#NZ3":I-3 ]6n7HŠ90O9$w4@}[,_N8o[c oW²-Le[8"h>g,3)S:n U?VZNyy9dm) 5R'z!y=7AbO gXVb!ޔEgv2 kօDڋZ'LE=:Q|02v VSKNGԳ2q ?cd<|22)} +!%;< gѢeχqYSᯟnTp P%#m*K%ͩyoi݉=E,}}=W. k<*oFʘ+UUł58.{.9,#(V\E\gcp(u%M겮Rw],2?s7Fysjf\a Y9QfVW~qyW~\$N.*Գىna76b-tނ[3o9fit '4swGʸ7d7 :]jװMWu46aFKF`Ш"}OgK&S}pHdjB*\{5\Oz<7jx ²{p5HCUG0>_f"^ vtR^c !-CG‡  ?~0 cZcP:l"J +<#ln85h6.l*tj mrm(bnȥJʊQg+skyՉ)E~}׍09q}C)ys&o+(.6U۪keԬ³s%[Ky1ܔ@ĠT  E{ETUQmWZy~6[/aֿf NWFGCR&~:|uthh_WH;qq Yǀ,^J QEN.J%ei"uCVWڶ0 <2iJdm?gϖp?W ),\U)2|YRi@_KHIS=)Lj Ma$HiC4B1<1@ +K~:V<6?8D~wt!֘ykjBڒ/ P^յ +q: +Wb3,D qM+؞gOqU Qc@U"TԈp_B!ÿ 8&OɋEb"1(Gcv-;uk4-1d6&4z?t))=Q2 | ̽V< $¸@5ƙt*F̓2MSj^ ==l!}e~{ScЇ/N)I X7Lըޛgi=ʹ.fDQ7 AĭX)USbѩ^q=4 4Jѧ)Ełl%*{(k,v-=25,w@51eE⨌]ie#1L kieR$):ӔW4KN\b]i% ,]y 'c#r~qTL7lb!Po#_͟{pMڦ:ʡW}_((؁:Y: c>ʱlTH#'_JjU_Maߓ(rp(xa.?s/WZͅ\)pV\ܨ`Z Lám+jOZکd3TU6Ogdj4)9j}JNh|pU uM)5{舆YZe07-UB +RNNcFw i ?>igDOhfN?ZsH򔨈^:W''jelpvNʯvlH$j+#jR Yce=b >gT;0Y \bfFܹZ]DHֿ S 9 Ci ZmB+oVX/㡆@ xfq9{Kw6AMcM`)$nbt>˓{K{Oպ^:pqRe+v&~BG[`^6Taوtq@8To6L!~eyso53*鋗72 pv4v higbI^D\l-,|ʶ/Ge׳74l@B)AD%iV̜Q2 e;}k>5\l2Xeआhl[lVWi Pj_1aXB%5'6[CFnQQ$¼xUln{*q@+y_s9{9}9l0t;-D69'Ib4:"[Υ:_\e\`S{ pF'_>BZ?h꾢TCDZ"ÊN+CX Xv\;6nEʴ )ӡHRYU2\ a 9JL L2Rt(Sw*S,-FE* l7!f&l?3.NقqnI+N|f +]& + +,Ipj?+_R J m+ H'H2I<3$~! Dž!TF +x Z#l˦3 8&a4jEA5SyjIm%j@]"-||ŷ'7833, O"0wڛ/C +ٷ5M̞ Y"$dܞUԬ +eWf]}MݗDZ4먢38(4kXѬB/Gm<0׬&:oi+;,@IU WgҝldؤLUd_3R~fJNUuFT5hVgՏLիjV*5LƘ̨LI pufЬ +bB7f5kĚhdh֌$5c,%:X(+@J1$!-YuLHvFM4><Z9]\rxVBϚ<eq] +*MUZZߝ_%J|ÆĿ$Y+(`xV ϊɳ(ԼYCWijr<<ó2)NVY{]cs`$Dv}d uh?W` YN`35fţɣ(glW>>L>>mcHSO :.azcN>V)ɣ2J8'CS_䟉H5D]xir# +K,(~MT @U4.EC0nQ(Ŝ1o`c τs*# +] ßJC zDdUXMk[cVB2T01 +Fs*פ +m14k3OY~^M#8l<',ڵ0r儁!E!)w9pV,.NJ5M C.1Qp&7݁}83^da?=.Nق"3UeЇk㽀) 00% +HD\d3ƒdU&;(QVH1*őB;Tw"%N1^Hve4>0(~6њViϛfuL[TNȣh<'ȣly4K͐G4y+r][*evhí2RO]J\Jv,k\1& +ηK(B5d#𹯜 )# +#˔I50<)q0 W"^E;Glcʢ&yNErhXsE2γ}ւ{~]gZ=t܏yj9 uO~t,rvTVmLܩ;6w36w@{`x ګ܆!/0]MҠk{0 G妱cy(,2a2@!`MnZG>{ |(+v||8TFEhY橹zq}Vz=ZHneh0gS1ux\S܀FExj&zf| +3r6S驃&#UB܂Ť8L餤ك,hdBRL餤NTII5#b\gV̪̊YxyQ<22k`̬ g_,D?bRl`T| +I0=ʃlwTk!@P܁BT0;tl% 1g/?(sykvTC`RFO‡ iM!JZn07E 1W($R@Ϣbo" NE^]tS_S$(!U{0LpJ>?XRcd<-jP"^N>{0nͳ >$Z>^œA {=VJ3<%%ŰF&U *#r PcIP!w/ J$F;cf>XNr3V}%NN<5tfqjiC?-r6 Tx>*|EfG"H ׭Q#Swjx,SF؄[O8WhGU5EQq\^?ƒΐZ(` j 2>A $&Kj9Wo7a +,ʋ`ڨ(XN((T1] sj#:j:c5,-i5r [YaBxzqqrp Q:) v((TA$?a`+!k`&I!4ah)# R8փqY4k#„ʑqH* aE_ +ү +1Rq'g{JJJL\V>j"oNbYħ>L:S4vcRK  "t#67hsW-|& mؘ~;uR:EB:-jEe*K26XT_*T;Ir2pT +UVتMB0mVӖɏDޠ\NorzINoI2Q0fP 6 T&Vbr.&2*ck**c2YZ. 0*Ä rqqr#TgeؐXe*ßTeTFy2Q>O2WT)0Z#T$ [VIJeUy1J"Ϥ$LJ"Ϥ gRy +^+KC,<§ޙ#dw|C&h9WHalKPMaRQ$&yj5Q + +#1ީx +[%1wnqZ e?8J!BdȱM\ +?- \ΝI.nR jr'y@$i­]: zKHTY%aؐAd".v?Q'Q|MUKghEP5l1p%#nhAX_mXxp,]\h`#^HVU[R+ +h}VAyg԰ +jpq$4vӲދwOT5FU{M*e@ì6 +`DɉkrF)k8#4/h1Ki|M8^3 63 3-R J a)N|f +]& + +kD¸*)^&׀LMb5DarkX9$wJ$ +.>1>U^2R|#2éKI7Ym3b<]wp&y "D2%Z+LqvFy$=jD2:<Verf:O8-X AHFgCQ/JJrW eUٜzm5;QY(z +6ba&icH`U@&ߥW pxdaf0r儁)3rRY3pRijd_0& +[˛D VcقՄ >qq +>F V  #7oP"ݗ(2"}$ RhPzk܈#F)P cig"Nj|c R"jYT 9OTW2ȇ7]W4H W+/0. #)U"5?II?F5a*R-H-6nVyV1T0BNୠ]#BN{!cF9u#vThtnj["7v(x9E7 wE'nf)o[dDǕU%h{LکH BDG6TueOMi#m` S~jZHZ_U#i?kzxgZ@Ler)i3G>LNj>R>S>׮υ٣LMͤ<Ʀƅ:q;mހ9/T]%`1F2O[LZͳG\4LD R&4H)@Z셖,݈=2ߑs\/.zZBMEAw.,:djUJB*j *]]KvW*]HU ҝ^ӝʝn W{$s@۔N'ߊ +pdǭ#Xwa$be修=5"<:Z"%6&h2\|2T݀fEӍC)bmI FB7JB 4 ji+@+M`ԫ oy0.v +W|DA(DO60o\F3RM=5ׄ/ʾ&W^̄g1[åi8F_Q։LDADBH/Xl p+=]{JSta1/%,|K E_?lQXxe +G[\KGY!IR y_ү=-佹 " s@I +9(%?qx?{˲! Ot|faWِCdɘ2E:"[..Hy_r)ĽRق _>B#Oa+ OK5tIE+;n!;";Uo˵nVL2/eZ)ͅn&ۙ@+1ͤ4E)+L7qqK>Uw";oraTV+/lf3-GvgeoM,?8&"*Ő>_?Qoжt.3K# iVDAQ5밪Ym4+HYÊf5yVTf5\^dΌWgq ͪ:) v((Y{kQfMYFf 4+!NYGkVe^)<7$"%< Ψؚ&i$sArxVBϚ<eq] +*MUZZߝ_%J|ÆĿ$Y+(`xV ϊɳ(ԼYCWijr<<ó2 tTˈ9S\C9OP|JP`覒9#Bw`}yfPa9&SR%~0;`AnN>Gs KTZ5$cLlDߧ/˷?Ź߯PlU16pQ4K GAY,_TԶB S-Җ[5tk^u֞SE&4aYr^aVCcAM`LUʭe!&3d?"&A&p-g^!rggu8{7jI2OՋf:=JZH܀l*Ȧٯ {_Nx7OmގO=xj3=u46/b +LtR +NL1r()QtR +NL +0a&aM +NaN&DcrFH΁7(80,eHކV4DcRo`d23#;>HWKZS#RiϩawpyN(1MI>xBmφ%Kj> j*WB!X)(Æ&}9MDo-7nlVFEПbHUGQgQʲ7jD"/E: ŽjdSH1'ܹw;Q5(5 +x/R'GJ8H?IY#; +/vYdԈNm>Ԑ +1$DlֆiLJڐpdvhĈZ@; 5.M'UD:GedM5jqJN3e25Q܂x±,0wF(=(ϖdڎrf:rjN!0>y[PR< q ?6*vDKL`ԫ0,K`ڨXN((T 2] sKUjlC<,-i5b[Y bBxzqqrp Q :) v((T B$A^tPƌ ;I:RFMKAuCTBm;X9PA/F_5@4>FR~Ji[~UR̊AS(R]Wx +qƷRMjmՇ){D*t[ՊX/TPel "U-v*cfec.c26&UL`ڬ-AL[$fޒ@e(`2A0mL +\0MUelWUTTEe\X#Ta`+U 633-GNo1 ։LDA!!U?(7d*|<*ßXe+*ï R* aF/@I( 5"Dj%gR--W@PFm~?UQvޙ#dw|W&h=HaM+)ly&*7A:A}$;uFoBoᰃ+J5ZAנ)RV.БנyKHTAryTui~#\T"bs(pS%#rsYNLjtm.[=OrLi3"mF͈<*#2*#2NUFg|7rsYl٤˴1OtL˴I/6ic~#Kc7l.Ly沁fjS7=:2"n2 &ӇZ6 +qyR(dI($$&^G6mNWPŐCk7X_3R$*c;QҫC8lVJpx;Qa9rn9)X 8)45u0^M۫jBzMO8Ef TiA۫LOq̈́T7(Q"LJQh(])FA(%6nʑ(HNB(}ׄD38p5&U +1Z)nCPr,D*jS+.l+^ef$_A*AHZHZR#kxðmGUqO7+<GT]*eU'VNU}1EkjT:Q̑wBNOt4cF.Ej b컢1v|ҳ Kʞ]:2J=fuT$ۅdu!LD~*O2 60FOMi?5Fj$Fz 5OnyrI/?qIY#˨cg(nT"/e(߶'Y7%Q<ʕGty4 "ߡ$.wݎ`dy+2Wy<Uv@C;=r<˜ҢcsBnNK_r*uxn@Qv0ŭ0Y/a”vl҈>;eK 3Ju[52٣lLv?6WjJ|N:ݏ5;}pe|Nʰvi+:U_+!]]Фeɷ,; cAOǘkSk͏o 3ef 5_NP\uK854 r1eajy;m f@s>^|m_QdL;.s,=P --#$l2CI.)x%O + +TE*h[X1@Պ*Pu +T^[,=A#Xh`OFjDqj+ YZ͢$*G_ki5 {h:#tގw1:5l\#Sµ:U_S\;UE@$ڃډVfv׬: ǙZbɘ \BB]q#_O>o! +bPoKV))$S\trѵE.]\trѵE.!Nl!NSc9 +n0sT Gu9Î:Q6a0sTGuM4& +yNZhkL|p%6+|@"81?TMUeMeY2}ޝMjs}R$̃69[}rlꓳ'gOSv4K͖G7ȣ9h!~)CR K2/e_!~)CR K2/e6' <`;IÓJP`;w0 &u]:K:^N7;[Q~ZCU$i)|.[QM¿x[74Z&A+ԓl$G=UO'Փ,dzrz2G=WO'4UO9:BX&zJ6zO40 +9EyCBz|,nf!-V|0ύkg; wqbة\AE&I9(RT".I*BZWLdBGZ|NUxE & `)dgг e@n #ԘGKv#zBCҦm0 U|+m ŠXD"jBA +)PjBA +)PjBA +)PjBA +) -y^`I8Go]#5hFkf4Hi4F5iY#5hFkf4HiEs3=\,ZB5a8lVݎqk,{Ӊ 8_Xj(qf·Ձyc/PPKaH?5{|sЧ}"2t ңy}ጒ<ԗ <󞙼-'t03K/=g٧9AAv-o=)oуV0*M`l(``{ 9G#CWx7Cg[X* ]c%W\ZUWgduͻ[^pwvIN^o+afթg2Rs|3y{Nnšw-*#^]uV+71^$P_;_ȸgww:ڎiސ˞]UvB=/a*۟G2NwjxpwufvshҊ9ꅵe:zc!qaV 7k"x&6h,\\D\?q9< jdN[/nGx:KE ;0ށ2Qۧט{fFgŮF`y jVHFd|<׽5L܃b{=S4{==Q Aa. +^8 +wjzaZ1QmA=30]D[fZhۅ%(nJ 3>@@s%$~|VuEbg J/KÄѠ^:CgE{f=V{PXpN(Ϲy +ݏN;ؕAU쯻-l,i^3|{s6YLJk:ukr.򝛬n=BҬՋg=ӋiܵLcj5%ε(fDEX_{o(N?`΂ 䅿fX0ݾ>ă"g饮*$/a Oӗ`-̨9]N 4{\pFݛ˜ys?oX^~|/Xy$\ `"FF,xu$Jzu1Ѧ\v=^NqIԋQOފYǿB.@-v8 qL>5M_ȝ̦9 fya`H,r 3(>Hx + ~h QU1 9[ H~LoeVB@u,63>&~MulV!Nu;W8Z<׹V3"Sp[Â?֭՞q6,q%ƺP;v?" j++{iDs0cw Qc:[˜ ӵ "@cDZ^+**$fKzqP Q<@ 燑Z\˄J*u`٫jֲ(O_7"yD_<[W[\B[-%lhBbk;p&Q}*B-T:&?N⾛KD* +[0OwE~_f膛17.Њ:KsluXlB7ĐlPa}R7$<ӓL?{-CE [813m~,&$/d"6O^&1؞W2l2Uw,CH{a7/ *_q#풦Z/jVS7T3ѧWOw }7F,r"xz2OJRՋPU/п# q~3ceBα0{5ux3@8 s0`0T& cawgCdYpj^d~cyhsS:\xxү)ӓcC'>E +6Ƴ0DO9.nԡ+~$x.؊O g72~ҭp pVk=9s.( >nȄh>S} +p;}NF%W3Y7e5ΫQv^5gBWفSoIXCju!ܸyٛ!F½UN] 5SvrgU,;Xp=12׉e9=Z_+FmTc/P_zw7 Q/z"{#NMi~Tw;ߋ=C=ybFyv#9zd31wtx=KgvŕZq6RtJ[h.J=9XZiH+ܛ]y +͊~Wo`_+W36OI/ nsUy¾.Qwۢcyi<߳| e&sC3VLf'Y3;}mY}lyϙHfP\_P[Qb/Q[?Bzns5X\qVخ{v=1fFW\ 㙇*HQRX^qffzaՔ(br:> wrW yE +wZ@-Nn,'p;}>!lBb 88eŻ0QxI=GNGla|Ud`|pp]w}z׾Mn"z/͉oәu>jO^zAXwǡzJ^30܏U*G:~1̔ui}sٴ }- 2]f‡qf>E{LL-c= JQ yC]L õ\aК(b衬f14R׉г\ e#245VM"hjR4D2!"ȫ1Ѽ )lչIA9 .&s2YIrg^̱;NXn"w8./F8cBSY;ﵕ;;NE;SSS;_hq wL?O)3N@h@h%y0Qîdab48chD܃oߔŦb9iphO2BlGZZ ua,&sCL 1:q[MŊ_;Yk~-ӯ3 E9U:Qs`ZaR`wvϡ:TLr0;{09ySkg:sShwSdVy=G@z=~b "&4{C6\ϝ-s+akb<7,)GۂҺm;Tv(/ϝw(?9†[L J{ HR7M+ļ(y_9B~Vm!r`&LzK֧3x$p-WQr]~.!W"V&A8:́( _,rٙˆ[a4[,EC:{[{*Vw \ݴiWa&xG}*lpV~ *Xs>~a"nVD~QHTJ!яd-0bWpWfGPU rLDm'R<}fR*UZWG 0yg!/,mHteV5j3f vI $p&i3N+8bACBd.wK A \ !&Y̡芅ŷ#CU +g*0W_ժ1dS'w;}?z8r+2zZsm.Z}SkXUVܮI +Y@B&4oV F~6mƦniJ_9R^}Qc[b^c A5VL՚`O\6Ɗ uFo8B_bK)m,fM҆&vQܗ,ЃpmJq>[3圎 xE!5]o{ >#A%՛ɴ3=-[y:`[r+ӂ8,ȝ#Z_z6]Ԫ!UѱnpJ'5e@_q/֫fyMJ\oZ0#z ³ؐhnf;bMc]pICzžϯv ^x;F:>\8vŚN( F!!}C6j&&#'?*?*{D鼢ʩ{+ry*D\&FΏش۩BkH5bM46g([s+ kv?vc+p~t6P QwDXΏtļ@kKH^#>1L,+!'+W8jT` IGmAelp1Ĩ#gxjX[Й Nr,NU(qǢi3x9y*-f +&eћtl#PŻ32pL/#=l1Il@.k%M>ǶRF,@Ick-Q6{ o!䀠:kz|Їpl^}[;koߞ݇wlbF2\vqV;tL8O6p^b5SG>\N bs 30qT0:{i+4p05-Q#%ƿF+]rArI,t>!̫:'Vvŵ -笿Byw1Aa i?ex)GxmLp ԊN$Ύ-g_^yĢ f_1&Z;5,!Pv"g0r2W}yE*$͘'@s13 #)R-SU[HGt~IPt[T?]"@%=Wx]=M1s] EY к`)R\^A]TK 7܁[@ΞC%RZfeNMjC5,6 p@Eհ3 bV"aF85 } NmX/rFaVHaZ`dPSڠ7VǑ79~eTuٺ?J8Ef" ⌑ twBj|R /cneC O;(g_2zhӋCHdVؗxjv F;g݁w@Nq^AJCDW0o, ecomX77o4BQze-lƵ(8c%΢Qx#n|c֢l []goԜxR ,4:饰k;x@}{;Tn P$ Cf\3@jhY?Ikol<~:: NΎgjFc]b`I3V[DAuL^eBz0ZǃrF>GhDŽ+bcc ;A:"&//>2xm˗]}̑WNfg]$&>>Tq~<}LDŽWKfb:JŦ>N>>N>&L1A,>;1bcU`x1lدE6!, N bOjLkP7ɠ^9jF_MYo@4Ǝ9v䷛Ɏ|{MlځhMKT(ܦ]GYwdH&{܏wIGx|Ji?e0d!0e[ Qק:+9 1q= EnNI%!*gGEE!»z5ngejOҒ%s/Ym2Ut~,XsTY`$u+AA aa51VLj5x1,dg p1˙V*X?5~^| @8+ײ~ 01Vx.rj#\/U+2"y+p,WK0wxh 9(;Նh8\ Vpj>{:׽"jc7B+Vv)b8B&oȟbη* zX7v562.Mp5z +O%+%#C%H 7^^BXU5d@VDKID %џ(3̒ڊpoL"TI}/qd%K(['p˖HM+RVZZNZ}T:Q;ayϨuj~<3 +7Uwe  +_ѢV$G ;[G[(MkbHW)ыoҚzoT<|2W~~~-8pRPŏKO{~sH›>P<ebAcY)v*]i= ƪ +1Ƨ\c0\%|C7J~>yz ZȖD987zc٨eEd[ +Ps[ɕֿ3œwwLj `| Vu:~5z\Ʈnres +:~Fu菒$ " +ZK n'a S374P$:j>3JQ:]za^ c2ZLRP 0ѴY^{[W;-@'N p< bޡ)^B9v-RIg<+<ԖAxߔhlgT%LJFnpt[Y5w+T@₨9=ag,}WXZaG߇WS|Hb`ث@ÙqIpłP$Wt +]n `ʃ}?]|G)3k8SgE/ޔT @ .̭x U<t1C=^ۑG6V>![V>i⊚y:Ɗ +q2w$o+cfcf{HPB( \L.²0oGa)Pa)@Xޗu-N2% MXh"O4 Ԁܨ,guRťԈlz*\KIuR\7uF!P~z_?bnQosq%T]kX Wp7;zb*T-ǍR,B" 8`\݆9nF9ziYnݫ_M *Wn ]o +P9`5_Az%_Q_CqQWp_5e\W]݂QB´BLW8>֘ꯠ +rhر$W(+*$K+|RÌ`_ir l+91S^W32L>_;k,AiX+JNa +dl05ga +0UpvmY^4"_ SBȺ}DM`ndb +^/qjx/%J( _F~)Q`t!_qD DYƋ]Wp__qUe~ڋ[K3Ɣ+By ֨94WF&L<3a5EToIAW(!@SSL^_e) -笿Bؔ` e`O&blPA"Qa~!$_eY+4Fʓ+믦TQ5~% O1S &VE nQP_J쬠EW4ŷDy~)>"OW(6cF~zR|ZEi".RĚ_JQŦ;#" 3©Wk,DS̨º|u_ΙSr* +jͼQfgpLsŋMZo+ž +Q>볢h'7o =UhSenfi17/ߍ{{&Z(1HWfWIc ;A:Vm2Mn_+|PőWNf_+|T`8qW㵏1ZUd}x_[Y%cH50r%2J5_.1aRNj7y4ǘ#ꯨ0_БĒ1+cQ>F̈cZOfl1EWczPlZc},R }LQ>;&2ٯW-.._Ͷ5TZ++ՎWX;3QiG^]_6- +ڴ4 +VNrC_8 +ex qWj_Sl3Ÿ qoS@RmmBJKIƘ&*YRUkRƶR_~3`&~mLG D 3므 ++!Y6W4+8* 躰3QI$et["hBZk]|`=+.SeéAKW+Rbr^ +|@Q* +קVR +7UXWĩJ%d_MXxXt̗eX4&B_s%꯬Q;aԩWbgDnDԴ[!JER_I$Jrm4M+BODrj%ʯZ!ZЅ%W'&CTLXsѧ"^uf}k͎,sUϓTru +^eWP4eWveW DeWk]XXzwbbԏ䝆f# +4{dMA +2jQ*Dd]SC4W=T_AEGw DTrkE ?Jvu+P+7~FZ",KI\L-řک!}@#)З‚+}㔃Y{ߑ8`C#MT_)sL;j.鎊,ny\(z)w񧼓O1]rf-SSQ굢oߎhQ<A4hruI5ZjDc^VRj䊪abEO+j([t<+{ɻWF3ykjNL-XiPƐTVӑeb2B8`NsGUMOl'\}i)V_YR]TdTXJp)5 Tg,%1׵rJ-sm.˒5X1j?KUcQ1_A_>W(W2Il=G_Է֚֜@ 5ceTC?|Wzr,StQ+TP\uY^>Wy겜3Fֺ,̬uYziR|$+!'.VP oԊ6oW}/9XJ6:)Qk}ZSy"Ҧ{Zi-_:( +6QfFڔÌaVZ{M.-F.x5G`Cin[Wź6꓍tlr/Vd_7EK/u=HTwB^5@ޫ9ڴaNr|tjnS%^++cT _ :N[Gݏ1~ `HB;J%x]p+&hA5jZ='S䷐Q(s?( `^|y21LK֔mGAAv@G%IM~3ӆukpJs) x47.t1ASZ4z!/<go~Hᱣ~R0юtr4"3Sg5 G2,3k?Tk9t|Tի|pHܒm*r'g903l;r#fr a%M"Vu3 j,+A絼!^X:Vv %ǰ> Q!Ko2Ͽ`.2bTRVHo'p^8v*nƏYȀ;%|M{Ƿ32&Tٴzڴ1^5R7T_ts t7_g)y}%W{+rRO=|+oy~tf~agdo37( +f^9 +|<_ywy~rmG{'[moO-7G次NoU^S/r2[ +S׊\F} >ĬU6p@hSW;ZImw,͇ܕ˫9GcHwַG0F#( bi8KX5za^߈wi!tجh8I8XO=mY<M5w蒲"x{PiR{9H+Ηc&Sj~I۝yLMPi87L\5//7טu/**4hW o`d?ڐѥ3+T<:_77XW'2L_DϘ ]_Bp r=8kղ,.:l-mo+FE/ +BDu Ѥ}+Uhu|Gr} :agrH$2^+ Ƿ&/%'OI|GETh ?v׃^8clזNkx! =8 J;F؟*Xa[B_Uֿ5=rգDy :!rF!`]mm8>Mw2J0"V+K CEB{PrDQ"@S_SԪ!Yqիp~<0ȝf:9Dd\CJ!B#G 2˄9`WDݵHhv3_'{a'QDB%y IqiICA>*w@G%󼀞y(cBc$!9}YRTofOkrZkwwl&xgv܀cfq"CJa0YR @B4>;m}P&b_/?.0Sq b(r̸/1%gj@_j a6|Cg,Ͻn'$=dxӯ{s|FSVܧK#/Oܶ 3E?F B]RmOo.N|n/(>i@Xgi"ڷD/&OC^tKi?4fe|66>Mw~5Oo^x|H"_1hIX4hȈO!zrct̋}"OcFix*5';;SPL9@ ym󯼄XJvR[!%p!`W3t%o!tטxWg_i/.CROo̿~RƧj|)M5>)WtoJjs8܁O@@F̖s&01af9+aLFPc34qL:tu4ukkD$" %H?17yDF1Eߙ "V?H=߷Hӯ^@DZD7LFkKx""MzUTF7"gE NHE39qDtq"ߜ#KȟJ6MDţGiȏ(Ш 6ӓ)IhΎ! I/ߔ q3h-Sbtk/VwEkSZxTFk'|9'n4yŊ|fLdj.<2D9++-s޻eQ!5`o<><>Zx3x1nGx<yS4q⯁sRpS<&1Opx)^7bՄƫ_{lx^|?Z|7'~3⏱Owx/8 nU(1ndℤDs,LfŒF"w,:9dS0DA +FX dŵ_ Jl +͒2Pd))4yFp>#Pf]d MBVbVaO4d]duVdaMJ{af,dzޱЅ]] +l\>E q0IDAKP981ɜf +]TFjB~7%fFriF0G[2E !XTQ[&dvA2{݅Г{ +v=@33G]-)s"OAkXЌ9~؄NY?nD)-| =ݚ燄 +gèLj?h[L0 .uBM +9{ I0ܗiA/4#[7S}ƾ h +\^2 '26 [2 |cDv$q^J |_ĖL"3e_̼cÏ: 4hQj\L7C)r_NmI ~Sw?DK AćP!T{ tO#BK.N.7$iA=AQCN/L(4B܇#a{[.Qhũk M1lH@gg#Rl @B F|%CϺfX"jT]\'tqE0FdAÞk&n%ŞkMfϵjշ'uQ5\:Ve7[ޤdҞƧ\HKsΪ]m&Y d᛭J3E?m.e$2Zǡxݹ#Y܀1r!"P?Dn5Xs E0)cbv*u %("y6qLr(K${D^jz9IB+.7B/Bp!YZ$j +H1:^)KYA`nF1ҚMdˠ7?Kr_䟤d45Bd8TFo~~pJVOI1=kH_o:&$Z7* FVvD5|:HTb&v_"bΓ0zOZI&ÙaJ7Oҕkùd0|̸Z_(b5^cD&.OqɇH&}oXOM>HM\Yqi?ca|J|7G6WH% !ywqmBmXl+7.VeܕE\"S[F %>jL_;iXD2&9=h*Q2'4iOx@ƐC&&1>F۲!UAˏy_]nRqG#Zߘ1tYfawEw3^6|W 3\$fXqz> >A[i*0C%'30߀~*x|e&$00(M`Dn``AOnZM pY+E}w6QԿmĺ^%\?JiY-M}򃠉^񗩱-QnyCQuN XziT ky4&H\e;*πo}Jϫ,ɳبDÿBa;9/]0V ~J "+G ] X1R(߆_W_b@-3guV=aէ,۴:{iu[WW mhY=Vm` +TN7A6xb? ,Q"_x∸:F*MTI# ?"'.ShPAw_uF1j.+ FG2,;S`W<l +;g6 ;b',>6`9>Gy$`OEyɃSe8ۤ:86R8EZlm5o <׍MV:u{mR6EJ?@(%dR’ L$|WR $4z f̕)ŐnI;ZpG3TmԽavȈ ǭ7G^;kEW(vP$K@گ,0引 +wmmI+TBkn[ #j|`t(r[oЪ17x>YWllN{'`Wڃ]OK^õ)}#HO| +9}!rrh)?@ ~XJ4ihdfe-܇ӣO<7%(N3 +}B²:T7 ?a +PWƅz j%pkx!ĉMudtl 8+p$$mn%->U瀤mgtaqE;p$w?CzHȴ..ig(V)%-~IPf2SfPlVfѮGw |*>eBf3$fU?ag`QE:v$:&i>C|6-*[Hj#d4dL{8F>w7]*%I.aifk)*=XBP/Y-BxKKxlq7 ʩ}unTv.2|S{d-''dܹ Q|_ԫ溺Pƙ`E~JCOuL7\uN<.MuVL +s`5zw׆wK5o(XڠS|>S:B_9e^tL9@_؇4 jeEsaצy?5SN#-^VXCO2&-7SapD3 o +pנ "za; _ ;kA1gٍpb^Zt]Dģ"} +}"g049^4ZwOa  OpSap,H3hZq-E^x[X?/U+_˿9v6t =*zФtL$g~NR4s%6$tEL~3%@ Y2Ml,s L hy7Zae8r7)u[|PP!ێ7QZh°,׷hC8ՂλM=v3Ү@.K! ϙ.5.AY|g,w@獘Go{ 70 <|ΏZۏn| :s?ȇ:)|u&ז9&[DQOߨ;AeUHѿe(Z=J"fL􁳑So]r0*p+O^tWOcvGB np0!Ĝ"a˱E LAVkN5zl>nك5ľŞho%wSh)R)(Τ.OATٙm)\y4Q-sKI-Ox| +.>5=]jV4b ٟbOsW`k{/^{i +M R'>b'vEN.FИ5 h4Us}I1O23U*U81PgOTF/?AdLk. fw'wN]_gB`&JIBQL&08g@8Á@cE"^q $7ɍw>o5;$t7jq ~Ё@wE7|8\8ɁT H +~qgR|";_~[+_p 8-cH zhIO!8jˌ/Иl31_ *By‰R_'x=妏c +dطaŰw%|S%Ø\>"^shdxLo!xgmΡ;cxH}n|Mo9s)G|2|qʑƷ~9:;| n%k0h0Y5_]-*ŋ*@Niϋl#gazyy4y|\:Ď:+b>(>pQx˛!#c 9qO'gd?́J0_\@8 KGP"(Nta2XhPi(E_( *IX 2ubn45ɰB@lوuYV=2Zl>kxFLC&6eDO1[k]\ 1y~ &1, ķLf;! 4¥oWHB ^_r8҃IwZVު0 BxKT2o|M4l1&6JnVDn^NwFli5"*F|D^^1\\<ډ^uc"M(&#7YS.<]*xb"I*vR&akOB+&T5߉aojxQELcο2 l_)62Π"~J/^1I[sR|^#oZ^/ۭ{⪖jiMAXS ,]`yz%T"IBu/G>OQY <_˪T$\ Y? $ܯlp!#P$ ap`ŀPxf0`^+qc{X1b4 +KLJCE܈P :ސS-m"@WfX&[ǔ~;1 a4 -?0MBd6%ag1|#W٠ٚWIlXôD$ +O޴a2 -U@u?M:4of?J΄UIUz3^RBK LuYe<n{LjB&nO|Tl}I%;_:cPjyk7q +W"TJ"c^jaW7p 0^Őר*ƃTUz^vсvr"<3<[BVz0uD56KZe׆<|fFPIF|VTN,nޟ4[ +m:pTVYqNٺz춮^jfuڳV;e\ylZ;}+v +?3C&6Mrg6cm!vlnI6׬+S^)!J1cD7iS\][_0Ӯb-W+OGM3qGFdߛօRutA\TL$ݖ%ji~-N&s4Ek!5joҚ ]zoTa2#PGuQ^GEXN?;yL? ,X>=Om6 -䮳?s0@_z>~JOSm?`84vKG٩)S=瞢$Nw(~Kz#=Ɏr؋5O> O@뇞_:~Kȥ3;jeA=Q w3S 5:֮fXCQs|y$"߁I^<]R!ɝ{Vߚ5탽 ؇%ג4 +v۠RKǻř76'mlP7tscVL.Gq6ꋜIЅϳ˰d8K{~9žRF}Y=ư3L(َ9TsRV ?Ac1m-p qØ,'ui՚? +&.w?0 ex;hq}[jk3F`X111/[;\2ePë!b8NiǺ;|xAx{{$ yCE~R Z)y{!v>8kCy09< +{s)gyP҄U*^h [TG=X׏>Q9~F7X5A5 ^އy7P w2phLyŔa]Lyі(Dy@}("}Xއayi>vv\QޑO>Kk*k>}@]~c*Gn},>n +n(;}8!+D"=1Qggѓ}{WF" +%~ߦcQbCQ}_(*HJ}^M@0rq E:]I}D's>.N}@S>.TF>.҅|\ԥd/.a}Q>w*Cdw>}|NX`N<SwQ`(&韛DSEfEg c0'PR!sM}+Osy}T߇sB7s">=qFz.Q0‡XGZTOh}B} q-}OLJY p|)=]}} +VsTg}2u~}ȦIx}_c{;50P±! pbIx}d <^8n1)8}Q߇%ֵOv} +\l5'eHQae!fRL}bspYpm$Cs/ר}7;Nf;kC$ OyXыMŰgizQGhOÔ/L|L}kaK-6\ucְ\5^G%ZGp;m>@jT)*Tߧ6%)9> QgQ߷;:S * 6}D#?3֟j}`kJA k}Q>w*Cd^Z)KP>'0ZWXyQpwTOXh Ɵ(^L\]n*`!IT'rs%u `Ձ0!;|sq14F+>r Q/2@BCIRLBGOO:(@o/\//>DR 0/?y}_B_Gpn bp[43s}AO,}iSG(R}_@7f +)nk}_bTÞi13pMSu^Gu)-W;kk]{Cs{=4Qߧ:>0i!&~U'B TGr,܍!V>ZbuYV=2LZ.QjJc|%AߚZ%r}IbۼOrQ=$3(RKȋTg]+\o>L%~!pSYB'.ԯO MZGj7TߧN7kL7c0ZgBv1Tߧ.^hXQߧJEﻰ2S"kHE'IvC*PgVH}jx}RZAMJ#i}*㨾/_)62ΠLL}*ecxb_gZlB)+ƯS%kH('IvCB=xsK(^GjTgǒ|\5è/ ِNI hpuD}LV\"I2ʰK~/W S5·i(1PleP82LE`#)`Z y$vw?A}С+fYXߧrhxL/e}MFSc:P !w-ui[HWje} +#F+ԫ-F8՗>}0M:tZMBvr"@}ZYGd@QC-WY|rM AY&TL=U7OL#Pߗ&/@}v>u>cP3;\)T;enT?Yæ=*}*Wn4qi2 Yߧrp[hmsIp>uVJidRD})zq>A=kZie>i1d}PD}PL *&#˨Oi~-N&s4F}߬hl}TiP_Q:(dbUy^ՇAt&ovh/Wt͈ڕ<#IjM yQk`@AmYPOT3i8>M5}@!^ӷ9E|-QS} +G/uz`!ǵkB> D-渃_"Ok$L,|EzFژ\NgNL-x޽]V -E|%ύ`*ۄE|p *tK''4ڰzo 4Gᆯm -mco;-ʁ{jPi58? 6u*KAQQ!UeHPב_M0!,.xmkABʐWJ%Jd{T-R*aЀW¸NRfwX-M:$*@I ^C"PZ䂋 +]k teCOaBHj"T#F# +y5*EK> ,)Y&asIhook\5*ɨOu|Tˑ K#!8$qkˢ-j=9sβBXHq!՝75 p 7GVܪR\ 4LRנ#*?zd:ZuT5X!vz0 +Z(WB\A4/9Y??ֳYОVmRϷܲGEX@u8[b,DqEԨKb_@%P\n +Ya~ud|z>Ȗ4l5{f^*N$}k/w[\LIkMF!2{lĴ*0&|~}L+Њ/N䦸ȯ_.gOƙizQ1+tr4eнs}UQ/ BZi+AFXuS?^rh=mǺ6cP攨\5ejMePG9M/六ɦu|=ł.*waGxUoX <s  0zuo^Y/mS3uoVZ;歫@7{u2ȟ>0.fL%8!Ͻ?TA3[ċMT=ņ]OgA@kX4 P _F2 S:η(3bV?w#y ˁn$|"z5qˆ{By|/u;G% cJ(r&gjƬ` rpALj^-w 9QiG]ǟ:?LTKp1-x^Y㙫N1g.sxM0:Z&oҐ1@8;ڸw3O{-VvxC#gEx>cO@^TE5("o9+0lNIv/ {5:)=7wet@[`N?ӯi||脂]j}S=*|£B&' 1{xi1{h~{'`E*bc\@{2 +x.<ɸ}o]VvoKA&ڰ@vӦo制R8^G2vǛy+mw %QRz ȉ =z'~mDn~勤siSY͠d|6wvg8#8Kir=0 +mt7B\qv_MGV-wBP`8e=+]k t;ir >^:i1(9 v8rAH;pxcmPFA=Chga)v`d{"j<kڐaGyeN↔!^L$ +)CJK&B#[*57B|#6~nI3 'BmڍJЮ]"$nt\Ue*^xU"^*D CȲѱHEh*E ښ F(u;ׂЖDmEh3")BƍP;MVZoAh}"nEVDd2~up`Q$kGw8V$bx^]djq?B ӭq~u`dj_ ՟G$π!1&g$g&`X3}oi3GV:RP+= Mq?c1ǻ\ μq{gM63ݐ.Q.,M4<t~˓c6NltX'6N5ɞA1{ؠ+X{u=p#AN19s<ǣObEW>*cg}t8N|{8]mFoc|{V?~=N|2^L|{ߨgo;ۯljoa&Mob||kƉou[<"#Mq|1}4γV'S{`0>ǛoE?+?~KbboP</h/|^Mdi.Z&;{L rXlwt54fmrʰ#lLI}~L{2ת ,))=H/#,nZߙ "r˸-W#/F(dǪ|!^2 05o/Ke!\;%eZbHa }CzYC Fr{xF NOpBհ\ )[077+ x^\R +T^yIo6^iMÜ +!.^~2؁pV[9fo+tE"E?|WTlB;&?G +Rr1uťˆٵȋ/$.&nXIqOcQ` W67ͧdXg. Ӡ; 9ϠQ. 9IutVEҘ}5:Qvsa}- +L}* v0ذ)F$ Қȧh@J %Gz;)I9;2ҞT?;t%OUF?G:.xR3 +y4*XdHJ4 >eespE$Vex +-U"S/Q8iK1a')M*rʝjǻc$g^?ehAQ1rCϜf@]LSV&*6mvlq&ݪT%hų 61wMd; )pp1 +\fkDig7KUS3Pr(;YXvioLq Xjt+ q" +G")V¡.pbDH0)VsIyR +m[C^=(kl(6 +A<1;6{bc*Nq&a)])x\+֠"+4{̼BEK]Yao8cbV78WxzFB2#d#35[mk(pQ jOi"z?C?#{Z_85$Z3p@bC5+\ axCްJacK7 [`TJ_Edj省ydi.ߴ 6PӮ;,#9/WRwq/&尚iy Uto"!EcJZhgMG=[9d~~"/H2oWT~V3V2` r4JI3uRDhAzs|?s"y4ѻYoccZۗ~k+Mlf~LUMG&_lTPѣfgr BqHfDw!gS##b/ML@s7h+ +| -+M\MX7MU`@QzQMZS7^tF3<>F {Fy]x0#Uqе3߽v=O<>*;BO:8XG +0=Oߧz{aa~/ jkD6aSSi?穞}>706n9~"t<$ˮrΉEz~;| xǟBh7a7FëmA= P-}H'GojnݽL6wJ\}eܳZL~5^dLMوڀn1,(q~.vMpw8s~^^F#oʽYQ4o9v:g$et޲b/֊]e~1kN:2 MN \}{H]2ox'Yߧ}-h[ W'Wf?Yf8GPWg LJ ,~ ʬ1(#PBԠ+Rǭe~_@[ɽ%ܣpn,39nzP2 [U$nE$Y$Nj>dXGeB­㛇[m9݈<%T:u8p^}'9geΑ 9csN\9y~9/P +Ę%iQC5mstX#kvD{u[@ycOBݙG6|1지ƙQE)}D  + r?I8 &bT`Y~ej LI4Yb]K̋9Wr1@?V,/G)adyNH|2˭,OH1 G{ +Dd飩 bag4\VXaEcEr4]w(r(r)y^\ wtTaXAޛoEQl6 +Lĩ겊'8uۏ)JD3<ӰeػKk-AC7U~3m|8Ù|ax}>1Rg,ւLm<% +gNEn3;ة&lEv^Q +˝.ey`)[_qo +mO?_J|#.GA@T~C"Ve`9p<4xfxǃQll(aI{NJZf|?~\4s.v+/ť;wQq?xu>jk1(=}&KZ\rdBL{J8:L>u!&Ƙ~'?>Jk{*p =EVQ|) J70t@avXU%Ww@/0*lytK_?ί]=N~%{ v63ԩdrONy%7s0ŴN B[75gi[?Î"_L֢ 37-w7gOf#w`IaSLBY\uœOL>E侁*ɝ\܏ e6i(oҟHjO??3S0W/Ÿ}gΖ[5-}={%MZIubvg)PPl3pнmAo7;*#-vm[[Tɵ٠ݝTY|-N[;- +f;p% L ,s,s,<߸&kDkm5“=;9V}K_M-=Bsm{Ox 3frV~BKk +;rZ3kv&w^<DIqCbƸ9/Ɣ1c [5O/s5Nų4OhZy!7ĜuN!&&6ACo8}'/fV,n>sLҿbg dygssJKy-|)a|moEU |򝌟N=p9ؗ1f"*8=78(r:`"{|7ˀV^R`;tбr2| {%SRyWw(df/՚Jhu2? $F/=UP?QܷRT5GCL}]S22ₐ?-lìAw`TAvѣS% 0.^;p<K{ׁ:.786s]e厥z~U~W/u]A<ܑ:>QkɡoE#emtv-#(ʙ?$2\C4|}`v9onwM]ٝ' =*N?wCYI3ȤݐN )ݵ +I-c*FWϏ)0S{鐩g4^lv%ؖq@YjqX&xH='Y2ĐdC2wι{=wp(Dɛhu!‰FM՘v+]M DoX}| x%rk,NdyI/$KM!yl>)Y oY%IjdFŠP(Ų/י5Pa/MsCPw,J+z&h5ZJ/,«SA7G5!;Ćx%B TbkDCV+0W q`1xJ 1Ry#D~9[kzIUC  y C pg 5` o( U-b䌳D#ΪH$Kxϫ!38x//Gq6)x57N33AX<r:Sߍ n?=2o)[25I澂E-351y9(]xvy`$YAALHv@s +|K- aɱ[@mt/!Si9>d* +xe;CC:`@r~=J͂?SA 'gN_t6v[Ѕә>X[O* p!4Fq"f;p;9!y@=c`N&4NxTo#,pjעyԢc1ע*{[cQ2M;hko`c«^ٙuN(T8*DM(:H])t%-U279,.˛7 +t.E?*̙Bp&N(#QFA3iO"TLÀ>vr@iQD?37b>,=);af-H:ɴlӁ TdD? J O8IHB]Vhej$b3@P =OtA#BZy!.l#cc堓j8>ו\LJ+rgƒ HBjH{N`jN|&2x%s%-܍̊̏m}ZG+ )LQP@+4\Yl<1G K\)}MtKb P\ G-+B.tT02>.w+]>(,u=,Gydd]wEi)؅->\W^댾)Ǵ݂_ 0SM xr^t$m=ymQ F?lՏi ,$JI噯|| j{K_I__̈́}}jf~4c .I/K֡"u={L]q=62ɢ/۸9r'5t]*| $%!\rWhiنy /_6mjiFniGn# @h7CŒsCE 2,vW۷.~s+d|G-# C\"k>3ſ?7ݞZl=s z@sz,tЊM2g艄!X2! .B &SمAHPWr^7ه ~^: :j1 {5j︪~gmx 3*X?.% G~60+!b mj fDPP)ߧN?-i˓όBXRC,8BoV+k*ShUw[5kVsk<@QK-gv9dR07ݛoo/ز%W+?v +ʏA+* +͙儇9e[G)e)@U; &MiyMLtd@\%-NCm r_%G.w)~چR0RrR&fsk'TF,U[!: P215a +~{Uܗ'H2Q]{*6"n%#uv }x@q^֖sv1(=V1uh9FT+Ɩ8^]I㵜Z} R0Jr^Χps]*]rdFC\'#la]ݹevSg УJ8cMVN4O-ʈ:.]8!򤤜/ sggx!$B +8H׀y!yFDF@^ssӅS0O mH631kEZ̕Jr9,}Ѣ ]OvS0ںt2NVa [[폾1!r&ԅd ۰=T9XLGe "AF?/lj| j[[W,!p0A/x* +ӒpȬ\ŏ2[%dIvj=%5 dFtFlӖd<w=~mot{<۩{3ǯ =M/Iӧ/]UHpoe~w6p[X2>JY Ӡ?a}:y8 {{!rP6}hO+ H98W%U9ME֔*)Ui >2ж ! eb-C|Ɵ>MWwokڬ/Jkf_uCڬ? mMf]6kBmm_9,fkn63~ mWͼ>mk3o6s_>M[7_qTyo{cBC^Wy%Ld,m}fsfM,dfsfacfo=fx=f1,cZ |BOh >2t|?b9kGjiOdCB-}OkpW{!=jy!;}=H9Ϥ쿇TLzdKgn='i)¤=p97d)Ӱn=z9Ss 9{a9d)L<{9۞%9ƞc>{F9[f1̘=p9o=3OGM܈p%ГA\IO^J#oʞϑ֫k. +4б<֋֜Ec@L$Vyau4F$;ɉu5PJ{D'vZ Ut|uRjhHݟn!͂|喜2L7JZ~>ZU;{ :qR4ujmnayo񰸅B]eekRyFxYx/D +*4q%. 3g3mH76\5c@4=\J$luʇ~7!'A4<n4lD[y:NTCԥw +xt<! Lj&NaDi{lv# +ugrvVkƥ^mZ $opsb.Vn\ 2_T^. 2A6>;_/p[Z%0j%"jpu2-#YF^xP-7s` -rJD qbfHEkp>P"Kąh߲Ǡsh|T:(5i l|8GFz6L,tF Y> A})[p܍1~;gg3/Q.@#oVz6v|~u=Sb@eDdӏco|q9Iq#Cf-'y1х&N Bv"Dޅ&#/~MIř`ř2"8yЖԼO47^k>n_aAxVX勪 2x\T<0Ƶc9yE2r$#mق >D|ﹲl$e`g֯"=BСr7=_;\<=cz +BCsX3XL<87BЫЫkķELM: qS{2ߦg*YJVIjX{ͪD>HYK^= ";N$WrëV΁UgYȍP$V&9+NɈЉ@7'wPc Dv:[";PxOI *^^Xȯd#T?fomԚLmFgYƚu`4rNٌH*\sKX=Mb@{;Uj$'A<aNY:VW Ҝ+=$;3'g{¶е>,T?$>HmI-.;\k;ph<`sd!r$Vi3f=LltGP)8ܚڱc( WY@X? CK@c"-CY~ϽowP??νKl6 =_qRlh8naܳd0NT/qo|7$c}pE :hA# e+6-:M{Y-\GԊjΰnQSZs:@#Agus}-X,T|b4N((ſs9>],-DTy쎪}zZkiD*R!E4) EhUP 0S $A Q6ֽ[bTo]!Lȴ:?'vlgZPԝTֱVd/ĺ˓(`@4M{b"] +vJiN/>͝{G_Nqrw-2zm4ZPK9H9wO{a{ћ9DZ~Z[DzT 8 zTj7-STQpXL2S܊|L4KtP)IDrfEDUxLjmF~OL:71VL3 +716BTH}V(@C/00EaeM ͨt4OҒIӢ֟l5݌[ViEg4,54$ͭS(W&kB7wtG6=zI-72->l{[xխӏs2Лvv6%K [xg`GgVD + ZN\4^E᪫iL::m,uƢ[VeW`0Db+ŧ'j ͽ| Pt],-g}%/2w>Q^o( ڇ~%>!"><^}8Ftw{C1$^WK[ۉ𛶵utcnӡ[:.Կꕎwob}~5iڌ@<ʤ;١RkX>vXZ{zŷPi@m`p\4G߫] ڤ+n.lg^̼=' ]"xU_n :%IeS( hخb}P|RgFUJ=o7ji'4?$b}aNJ@dH5ΪfNBw*e1͢`{Z lBtWWlBdHqCtKV>zg>`%")V}[d>DKCIq,Cec-)dV:.%ᶲɹX0h+h l3v lSڄjwi]WkKiԬWL)IO~ 3cs])(aaYfD؟V4/bwa+sbH?#YF||w +GD%YxY^X$g%cx ٪gqlFH iJt{ָq=XʘCb.G8Ez(d\esp!5vx>Kk!_[q4uk]G>;5('TK6+LXxCZ㔋6u8wT`uƘ5FQ]N9ˤA) 1ڒg i#`KFue8GE;CA\%TeNֹQh(\m|պM:mGs$7QީcmfKߣC] RVKwSõFr5G)J{ nBb ؞%zK2XIL)u."T3R"JmCFccܭ:|·kvyZ9jj>e-Tq\Ѹl{Qfөƌ~E3Xhm]\S#Sb}ʰ&#x;r@mfDmp͞4nrkZK%RwŘs}S}쭔)>6S e85giՔ8)q\Abtaxa@*i!`GuQ.<ƺaVYD|t.h,5|嬹u.z?BZ+_-TIKz-?X5$I:O=F=B8Cqʶd 0Am>i*ێ|NruHC岤NϘ.0; u^fqò5!:KY$4R,*PW} +QU[j)jbQ+hUX˩֫辇*l7RNZbv՞?mkWCT-z/K s>\>4X\rg/2c!P8PW@cǸXt;rcX/2q٩I[6hɞj)Yq hw0ڧ7DPc}T:ud#ZкACܺm^H,26lҀg:=,Q˚|c"U4X8YJH  Vs1sX Mĕ]&Jgxo ^Plȿd|"&yBpv_Ƒ]iD*'ZxWk/K{ +FmEhmK 4+S2M@5%=ެh t%9+*iީ)>δ[~Ƅ F#HZء vfeBIvP"v:+m@E͔#Z({"Zz*"^`:l"^L xid^}߻.6SπZ-u36d,՘ yܱ +rk(p$󽌨h׋K/=? ꉞ c!rݺ+2ZG&kBynټl +̻ Ilkޏ˕PpY[Mq)Ή%-:4~%Q-C꿏1qޱdӅ"Zp,Tv]_|KM/N!#i:^kބ+/]so.b]T~c1(wKCg2C'|jz}?ԃ}?Ę:c^d ;_-~iv9CZ.>qcCǵB(CEx^'@=ocJdz_i7V>lf G{J)^/kZq|V my^ܞ8aX?dSp}=_~4B:Pv03Bɔ}Xoze (IM>PJGn^]fx=m@b{0Kq7N;R|tvl:+_WB9:˨+/Qγ(UAۢr7l篵KPc1MK ȸu/pcc|`K E(͔ +y5/GdVH^=a5}R#vZuO8>KmRƒ9,'7[hux j'շX}oz]BUyVbo VYf:Ø{Aͫi d6|Yt)\2qzH9\:`7h G(g]auhRCw +r\͗Vg'- π MK ^6U FD%[gXJ582R+(`Z|x#zZJ,!!Ee8moo'0R!vҽ`:Kxi*ƿSbzDѿl9*SwzZQUfrR캘]k/aϲ7ZYMogPZY׃xnS2 ۩29UXCNq.&#h <L}?0p:&zqlV7:v˯p魆grdXۢ\Ǻ<s?[}l[UKj(Ha]8ܭVkt"(a] +%#( N(=|XC > 8(2P}j)nVK?srUW.tCMt$? 1lK֎JDv1,?z'\G|;qqgMX=Uۧ,Iל{lގ5M,Oۉ48K =wY!a-'CnڍWoЩ+6cؼ5z hu)!G%|hAbjBJVf6w})9O`o'Tgoh'3+` Fז;Wx@688׋Aq5=/ߘFdU$9SԘJ6.痮߄rK `mYGC97bll<Ќv{(r<ҋLO_w,-xJO/(QRb>bϔzcQ;E:WyNGKYN눬\,8 +\Q*U Q)I]~uܿ&yP9KMֈn5>8"Ed ?0<&hr8HsVhzT[YcA œZeTs\t7QٝAY D +voUhA^ԿӘ>}[b?#q/Xʚ>|dk2+sݗȠm?ͧJ\)%*WB?ߤsxngsAHhikX$) m̧Mv%>0])i&]'c^=4ĔQM6~/ нtIJe%#@dU@RF$Z]`27tԽ̝TiH<ōH[hQ%l[Mޤ- XI!BTH6ZHSl' r؄6)Q,đ rOrr3>ykt{X4IbӚzZKȬݠ[JQu6Ŀski1Qh('p'(w_*y|tOaWs%,#yr!Y@k/JPɓ$w~f|t5Y +P8+=JRG3wFMz]`OVSlm%'D|J8,tb5v|4|džf5u\I0'ibwֻ9TDl +BrmCY h>Trw,]- 7Io&Hl4y7<96!@/TϿ/w}}`@xsj2qu97Ф`C82&(^1ա=?Pd` @'wk \~U7Kl9F<FYF a!$&BFZVul-$`G:Ք&~6F3lhE Z7nXyᲆՍ0hZ-&#=u20,ȸkjlL LĐĮvsYkـhh +!qŸCBW|gc%.MB sUABo=WkLz%Vה|:=B} ︡/ s@).Tӓ4KBBc N<kY:d^Oe\zY a-<Ƣ.uDžDR8^Cy"K^CSf/@WL/5AgeuL$\6M) Z*R^8'õ +xXmΓn' /0gOarIe!$z0X>Ro\_O/,m^P/o፱>BX$65֍q:J̠̑߱ +/. H.!ǃ&=*dVNd[h)nfFx&<[an:&Q +uQ'01wۄ%S씲Tp&V-pl k <ޓJ3$rV'auAv[p ۴1izS(U)7U64FH l ,$Vn +7-U2KͬKTjRUKQf:Ǖ6<ޅE~&`o[e{ckפ#~J%]G^%xRjJ?,om똼X qqUhup x +tR1JBC51\B?p+0܌pe@,pKۡQ(J};з/WзjWkAFL!o+z[з +k+YV19KINBjL??Јx=#hr`!ՕōoD#v.6#oXV6>[>g^o9Ge{-s5=v~#3 V7v`mʭʛ-J;.hog II- `[bv+ nEUc0%n,۳x9vn˻vkM2}_s"]ږW_yn |˵:S'WTHOvjnߡi*+N|憎44,Z@S&ij?gĖ@luJO8pO_ TKGG#Jq{\ZBy ҎhvD8=2}evH9YedG PA,H[XҚx ma HkUl`4H;`e;rz5mwyCߪAx4N}1Zþ Wu_xfZ&j,I 8][x]8̞H0y_/N Eeo#rp' ڮ~!gbАx%H*ϾT乜,B ;t: NNt)I9@GGuMF4IbwP Lc'm4IZsͤ!T".Cg.c-c +Zc:2U&dz\brZufN;u+ ތvo(qLӔ?A^AjvJ('oAj2c,:Ij"%f +HMlt[GaHMCu:f{> +Σ S~p1~DՔ@.Hs>4g̻ >AH,H}(>&df_D͟)kBh+5s;Mu=.#l mPKQK_$a)[__e_} Qwi}?WD`^=)V-RDBU"T+PՅO:f)*ͪ |LR"Wh@ٰ ̢WCCYh@(+rZ9u-?tmz?yM|/ԦԚܠES.fʉ33d +y Em&4gBɀl6o$'D3lPבv}&PeY2OXuldV/c/m* wJX>,4]jI<S,y7{w+|uEȰMݦ Xoq:aE+K;P"y#ɄuXڞ1hd=P)Ø:ދ1;#YH3fh3j)cvF3Ƭsʫʘ<{|1cƌ6ib5~u#TC\G39SqĚ}wO55Sqq9.n0n ub K9.͆ Wn`68ꗰWDm}[ `?2պ ּޤM sR<&0S{Sk:Uk]3f~y(|;f{SԶ>ި6VS_UVꆘqNy ;ܭ*&[ɽi׏P猱jsdR"q%W|jpN9ģ?~SYbϢM'p9L$~^;WѸB};?ƔdhGO(l(j_s\>e+Y(jD(yHm1\;q)*q5ّ qE6 7Mue)4hzUOW]2r$v=KʠI@Mas.p m$Rqg^AWAnӓYjAe;/^m[ ,+xЩUmk^{1{5?!%P-E /qQ "TS"u\pJ'򪱬hcjE+Yb[bֺn:͛}}nm(6ᐻsd cg}wdn;!e,uǝn#^bQ)mo;X{ ޘ ̚4&(HC4GN6E&KK%\H]L+(~Q438 z# I9>Srݪ~vG?V{%Fb"s51W;xώJǃzsleXCqc#bnjud +Eic%1jyN `Ҝrh_So?I +HD&<ѳz颷;qokEa{(ijŶɉ'D27T#zvsSp<kr}O@&{"B'K*MKYU~S..xT$0;S4gA5Go+>V:vT +h_9y@C thxߎ ,~jZk;OKW^W(0, dvqUsRQ~~ +Qݙurrl59)b`}&U@n+`Ws[T)pUF 0DO+tMi(Q8xhFlrZ!7/ u<,-P^@F)=-R_xM{N턖>xSNY?ܨ2*#%_N:l3 +tTМq +ˈ<4_ oO(h:fW xyJN\g5ka\'xԾ)-tc1x42Uh[%2Yc?-jo<} +vP+p9U5gfW!EkĻV*r#յQKFyJ跤'Ҁ|tӏq WĘiq򄰄a +(Ѹ+}2[nRv]+㺔}߮Q6Gh"*7Ʒh3yT$:ށ鼆jnZNׁS 62·𒼘찂zuhە-?;9*$BnHcƂTXޖ3%R\iªB*$6 +IX:&V኶iy zuN9R1u\SU)mu `:EۉsPSµփ`2M ٹŦ@e4) +OH)I~hw$bwU3 am_*C8`0&p#vvޜ> ;HF<CP*cWSі73R^^gҤm{1;ΊgF0,XB8u•F_9PEr,;y\n`b׹:ƅ +GppǏf =yքW,nl%ixv]šh~$J4 2uvn3CkQWR]xYo&IQ~DD'HPʔr՞R)+T% +2,| 9dhKR}m\ŵ -{wG(=ck)p> {-CZ\=HQلL - ZVzcŸ-*<)}?S(1DLhNz;q5֐IWcTWڳmEu%~V'86^Oxԉ#DJiuEEE0? & 85(OZQJn-󖤆M{`"7Ÿw(;E%_3BMr` @hTO }EaA_ƃ7g/W94-Z5!l;83ime-5o=d *A\yT+!)r$v[R-u檋0T4}^$ +WZ'/;mqW5^wTnJ6&hƳ%V{N}0@ 9I} _C@vV_K_ppa{No8IsUwAesk(_ $Av#^/Uj;UR5”CHYZ'Wb5E8 ~xW!kL%E7ꈽca!"lJԭjP竳@MAqQD:IoS R/-{4?LF73J9&< PNegcNΔӤ(Ĩ%T˄j!*0LahzuR8*]ׄE=mR2DrAGҐjmV瀘V7 X&|f`xW +wSftؖ.-ՍSҚg衇^m H$m䇌}Z-<;s I$t;7T,Cd1'mfB8[0#౩* oo% +R`ƧFCF((U9@u$?e:*bgQ 0eÄ\<ڶ3̶21dؒӄ7(Ixm5x%~:%IH"qOMˉtHFi' .vfx{ጜM}b}Ik^#4κTCgK3;iݚx hA u/:Î@P[HyzRU"vgj0OԊ]+k%TAu[mT2w,s>ө7$黟6_cK!FoR1IrSC1 RRp1<zޖҸ2`짦i +΄3|Qj<4&Gq#GG=?r|oheQ.8?:6](/? +h)?ZtؚmgOx|07Ȩ&cBTfT7giVsCflNz(sR~Ǧ,>%gɒ KuY|`(cP.Ov-\LRTG(_:)miRQraQ*.ľe "W[ȞS,4koxZ bWMЖeIST>#WG$[(RNR5..I~:wUuOx= Xʽf kNHAY5K;YD.5r"} _Df&֚U+5 +AzAMJXU"ElЃ%EH(V&2rXk [@1fMp=wt+˲eK^Ɵpnh[gU~RK2Eo\=.?O8~q_!?;u~v ~]__s n8fO;Grt N"7я/rV@Cpvfhc/fdƹYXE}D\c$N5> +~:`G Y&Y0[)w/Jd3  Il 8z1G7׍Y37hY l~[m CN }lcU kh*]MQrS&e~+ALDcisg90X3߸&G7+TMLvC&W`7ڶÜk<oىT7CЇ0 =i-j]^ < VZJs*VMւD|f2&r%&2S/I''iz& %(':냈rWyrWIi~< %c>8ߓI~[ Mf 4E}+Gϋn$lArېDyx_P>ϔ^Qn 1孺^P􉴐t4qau&Av֠f^ +J wXr[|DfJSP`>LD*nϡ%]%"]:-wC{W ;wZTW)ޘ_Rͷ5+9ޡU_QC-Zŝ] \銷0٪Sgߤ2;K[EhoXQuH {h-wʿ/C[Iz#?U=}ToO~gm_~auKA#gpV)ҫI]zwx WAqYzm#|_ީzu6}h~~od@5m9; ڮYVר2Xu ^ݭzںSM4McEP{Ms9BbܶjG.;zb ` +ka\K.q =eTؠfo?Uy)M E`ZK[ܭd#mm5\ѩzZeOQQU9jn/d@ծ;':Dq(U%Uc)jв-Sh+Xk"̶{.˶^$ae.٫k$ؒ[CKM`A(و|ygF{0zs{+׏pr=ה uWwLiySIo gt+|-쥷p㮾E*]&ّ] +lv&d\L,e@aNB)Y@zєWY)k e2­.*ĺRup[+$?y1ȭΝ{WY([{$= U7)wvTnhEDiX#kD[1*\ԐKW\-6>?ϭI:w|Sw L)3>p;&zx{Z`,2)PFD|ԟݺpQ_YJ FWXš!EIEèhHӬ5z$m\n1ކw|]:yոګ"<~Ĥ-ȸ"vgo?/cbRAW$:hp7?uWs:Ǟ*É΍Pm@/reR=ފ>j :ZпA Մk0;k_v-Vf2R7vՍN/ehnB^au03Rq?-e^y]fK{fePN[וrPTp@KQ]|9%HşDW"HoT>P}DɈ7eD +%׍9{+.nq2;Qz5![;^=#pe2MwEL), Lef/A@8ec-MɅBs^ߙ|]DZ3LcLhofK #MAԌ_A)H g#׈^-^(3%pUJ]#1T^ƇҁLeu3,@Rڐvmb,R+a:Kr 5&(%3utdqyJ +N2aOnÕNBu)ݱIѫb"DžJӐIdhp(du#R;-KD#0m86ʕ?ѫ^F8*b,׍ "MYlCv. Ahߧ'yC8#M/o`י@&حWTN e3(UxF!Rx0N<ȻJ8N'! |,A0J엝8qڡHڄF}Rp8Ѓ~tdЃ.$4JCOcnݘ'|։Y6#mT?Cyݲi,@Y+Ai+r=<άH|#b¶|4K!aNBAȶN&`EMt+6$% L[-35pW\|gu87>:e2U3_8~ELdxFSD_^;Óף6S3Vu+FE=7zsF-TV-0Zˡvi*o)ڭ÷v VF>i,穖^o&nk1M_4̈^W=uh`d. d-VOB[<?_m'8?b%4 %8j]ϲKn2W!wp8G& C>1[±ZгVAO0͒.+T}]82HE;pbl +wf:pי`G`VDgWدpEDv -j߮u=]&Y+7|{'AMQ(Tw>iЫ+GY3(!Z-KĮ?OҜ#!'*gbMsšǯVo d_KьR +\*eR zߌ(FkpUrDz^nңnF $G1pl{tvgT"`UDjwT "P+}ՄSGj=2}/ 1|yu_C_af^hv$번 +e7C5)OnknxB.B=S@#[D]Lv$"AdX% +WBT뭲d7X+!Zy@\g ^WZ v)LjmƐj?Y_sCIm'R'-ʹU܅y$}X3KviI1eh1t'*wόDNSPƈSŽ,,C 2} :Nא?}N 'lⶂe˧1}RTWN=2>K9GRX%k  XpO;y:KH;k2mO3v>eofb +{(Jy Q1ВAJmo:곬kKL]U2ռp +7K36Z7r3t7[xY2S:" +(C??A\gMHu}9f%E+l 1@ /Om>i(d.~'\5E>q +Ԥ)Wt5Cjk6 +m^NwtyOoG~N`D,ً>\8*}pf,_4PU 8nR(Y0dPXrHKي |u^yK/W̟۾dF(e2ywb$''?L>nɈe$># ڴc㺝H7q~'sa>cm +)<=< IGmH/=]K YfɏrYˍd(K]v|"GV[ R˨OY'WwSe)]5t]M 5-?= +9=4QbjKc#e}lpcȍ#%Zn nr)dm(gFX@X7D4+B{(N=$Ͻn"L"pqAk {G~#;qj| yɣc [:mbeZMtrq8V!M4R'Wmu}{]/sYį#ޮŷZLl.\^[) 䃣JI?iºy*+VVO=49xh Qݩ ͖}S]<|c׻Mnϡx/|'JP#q hZYg;lԟqu,l?+]}WVP8HlT˗0g0®3aA67W6IdNKEFsxjnkg\9u''?k/rY2Tݴ% O>\~fwRj;HDŽJY?|Y kKMq+j _p{ +A,L1Q('ʓ&V%'.\]]5҆yn"p֕4x>eUI{8\{5Œk"]%[Yi+=$ԐbMǿq&<<zK" Z]zfkKYJJ2ghѹMKY42XUn K0&0,_Ș=-MdĬ*gZydn>]wñTȫ=~˭mqx5yN*u7HXHW +'^A^餑e:d6d +&Uf_l"q8L|&JirfKK82wX5mSue!ؓ "tdn"8m + >A]6Qdhì2]~M#8G.svb;y#5]\O= +<*&8_d\Ə 7OJ7Tj0^r V$x)2hd~"cWG`0/bL￁ҙس69-%jݾg]4ˌPE^`9rnl\kKz5\"@XXzPR+}Na]25b*%z-f^cIeB;k`qK}\YYA%@tP<)L5x~N.ާ P=͔^RRfO50xO{UҋNe`~=%6RN5m]BuPqpzl +%,)[S=p^S{Z_7XԶʏ:lmN$CMB^nI =$`gR~Iob"e$)ls05w)u(̮w mCNq)Ap <F*$OW&/Wgs{EIZ8zs,uQeLxCqFGjP?Un`Ⱦ{y'RBK{wB-9 +4!W2Bof{[EnmO_I&j֕w^Qt^WjVUȫ,,Œ%h㮏eWDX۸R$$^v\7^'LlO;"ݺpk[_;T(H:k H\=T Sxi1f^n7+n7++2+҃1SB?E^6"AzPG8 u ^ X. AIWڦоTéYkn=Ŏ_\`G꫘!퐊tn!A[g .5"X22έ +XA#;,`[U#V;;}ק{ J<|O6/_f 7N/*vek #OVP;fEy濲%:Z)P~qc.jG(xYsK/3FMà a +:JC~` Y&8a 7ٞ[YTV]c#̪:H E+d +s>gv ԏȧZ;xEXw'Y VQFkcpOYgJII.Te(m& gUpz1oYyphGZl!YM:yKn'ױuIVxR/jIPe|)9r-POkp+춷OhF[`n'{/mTnÛ]m[XnV~_0JBgt&W$8={+ OKm;%sZ#:.ՐB Ӈ>ݝ5ٱXˊZOofr81{2cʞ< ~{/tXr ~[lv48TD`lǁثZl+3^dr{c`#V^^\QhS~v{WƖ>[ݲܼ1saRޟΟɛ`/F3~/6-o@عcvgO@n\GgU0g| 9˦ o!^tN }?*/Eben%RJM +ǫc)\\0J`v.@o8(Y{b[{7k.4k+8HRHK- +կA\_tXB XOȺ MVu~3y7'եV" t1@?B/ gꮪ_͓ʮJD%dPLu׽UTe}X<1\j/R745ch܄qH (7@#<_&7!Q{!\Ns{!nm}ÍC{GPTN7%G!Tμ`dO@35bZ=@2Uh~Ta358oXދjo,anhPcYRߝ直s4* .pl*3N!쟆1WGjXaCV;h5V.ޥ;fGjz[Ãz+LL`4DF 3zS(+F2Qۍ:k9m^>te\bFMpLW/E2dl ;c \=DλB) 5( 2Knݹꨭ.0vKcMd>)nqGF)= 鏇]T،=^b v?`jM;``ԍ IS<`ںyP؎CɧF*y'nOPPypo6]!-L[: sC{Q͛}%R:ԓ`+bR` gg:7~iOG Ĩ=NIBee P'dSD*뗃wPp}FE?'tl2 Թ:,k6LO YLj.Aj 9ȃy ̰ +H0[XG+ t +(bV$'ÓzRljӉ}@ك#owFe,d,;d,'ww]k2)K(OFܩ?G*M$y7"r7* R7Vt rQۼMHWWz.\2a}Id/ +S# <^GwD+Fo^i6TxK΢*B]޼Wf]x՞$xOS_ ( .o^6JUPW7y +ːǼD7]&Q^&qezIvsدc]]=Sqz9/^WZ/"HA\ݼ%m(^\nTAbL;ϲ4v#}׻B 4D/54qL .+ Zy3'szq!;VM +~¡}|f&?n*\ȫuK{}ͺ_D@=~\oE0̌3̔wAC•z7hޠ5lhsyk3前j3.v2Q?KFhH6|.o3+ U#=CY, =Y_i[wǦFh* Iٛ@ [3ĶS^Y7\e!g2BCN^s._,Ҋ| + +PD_:q7i. +{e0 S>SyEK3}H_apy9Wu?vov^ޤ,P|(h~av0;+6[fgwr +!w%nlҍ^g2dϛ4 4p,%rDlE]x]i80b^uhKzC^Q'mևă57IԦ Iq=3&֍p؍}h:^Cr&ubri ٠ۏࡑ$oE)@zK{GWǚ[]BMѣzH{:ؑHS"}7Q!p?pC{qpD/ +2A7{X7&C1Z.k1 DaGLI ]-/!b +qS)VEkD pKDOS׵`K;6vcZ7`"Vu^Ltҭ GB@B}0a ΍A*-Gs֋dxЂx|B38- +:xgV0y{72آ%qO}h43bmWjspdbAΎ(.^oi+wh+B+~ٍehӦN^#lوs}L#pehTiɅSwum9JB'"@uRG/_}tD +0xb \#5$]9ƀ-&ra[#6\kCJsaSo[&?l⸺Ϥ4<=H3_q:%k''"#E"δLDGO>şCNiL\ TQ >M0t%jaC%jʡ١t6L݈uP#2oHX^=&z?y$qA5N"=Dđ%nяNΆJDq="  A7>@:Pz4`)*Q;S` b*B2*o,aqo$d.Hûc1 AF-i#dfGYHcbM8pt^{ 2bdq%a-vxv?MqwV!m5[F?DpuD?GH +C;3B"[‘Ɛ wxqShLB1r̄> lj;D@}sNdA)A@p#-nD8^nfWrm(-Yf+{ҢF;.mKXu{BX e`3SlWr* hmUf?:]Y,<mZM]_ N*yҖ``tn,P><0`9\&5_8GJӣ]֕QZc仑ێ朗@vuGmGRfv8E +vh&<_I_+Md0?m+8K|+E7y,1֫OO%Kd0}/DIGg~ȿL v7 m"m=7'RQK@м<yYDZO$f}ICoH(]É-@GaSۯFA@n;%W1}_^C3O`/|B;|B <5⧟'6^(0QӌEf/P8lX@Xi _Bf`z&ySQL懧Zߵhf8͡2R5=,vjX`/yQv'ULmJo 89FÑPӜ%%@]zGZn 9>uhƧC4cN9BLP!7SY>3u8׻O2F[_J*!hlY[.e=A9>.5Un]s8*5j +Z 6mʿЄf[sӷ zke|tV{-U+ W:R@1տo&r$i yR)J|W2\:ϊ*a.QWDԀfkil: %RÚ쫚OvNf *nlw/X{jtr'=i)x*%Z ~6xh&ҔSXe-(&:fLC9T`U<7 E-U^zk6 wOqjcQjEDV*pIcKD%SIo9Whꡙμ( P#GE_XWG`}< sꎼ+nysAӈ?) (uj +kz, GS"( +[-զ$^(˹X5׎X-pU˭Pnad{3VsbTg1@W`N +σ9xS7_):t0NQm\~;&6~,r>|55,m8E|\8ta8ESjoXG{\$!Nk5@3t33 0tZS<"gMO`Řjt٣lVmfrGSgm5__I=5Ӷ=VvvQ٨eLLt[pDADk?j5۴gTO?hs62kj@u?hSVm{ʪm!;pv,pa;%w<7۷, lKqCXE=O +#s2lS.QWJhMo GmL vm i I>Wy ?,^e.Hq*ID/c|<`.oaYD!5ts!zB͓G5/=DNՌQOS]hjeOaײR,}JDee'$ iw\="(t}ymGIq Cv@e@~an~rR{fG⭮E4V{;π+4d;\\wĭ_6A'v}ڑ P`PDҋkDVJ^HaiCH!Vh x+1zL^Bz[wY@J5O9z'??I|A5!:M@z ɽ$P {6hl(Fé^)Mf|CTMҝ& ?ŮehkG~,~xJֶfǑT1+dAƒ;ʰ "w]hQ1\ Ү*'~0pnnb?RvV %FG 8Y!y%G2oH_t5,\je0B[uxKl<MO\@憓51uX$\$N6f<ߑPMXQ t>DF^d S+fw#-ܽ0oDIA1,~ -"FYX͓yQ]< xJnVB0GK^_^Wis_]% .k>YV~õS&/$>6򟅇vʫqV>O_^5c :钠 +'qI,"Fs 3݆h~a~RM( *~[p9%]~_/*/(_JW~i)^/Wڛy =8Cw!́iͧx `8Kn7\9ל@lkЃ/q^,k*tW_C7D }LAChz{8_x0*W*a ʙxGn搛A׺| 3dy;)YfvpKw8xi5\j`z_ &0Ag?! TROEنB#Bcw0VHx|IꯦWY('Ser>2/ƬG3ftI%G䆋,ye*1KcVavbw|Y -JQw:YUE +S7F L#,@Xcc!!s聋ݧV>֎uq wF.x{ Fv`Ө=r#-#ieW +xߖNoHK#[ÑHob7lht4Ho9$n +A(xo)hh0Dhok0DVO閾&!"[A=ӕRtXo/eE:ۥL%_2z#N3i9׮*XܡQ1A%2h.ёC#Ї2ؿ)>T/=ڗZhGCǼU_vkH*P׹ Ig 2羞K<)VGl4';ˈ%^dA|_ +>dV-}2:2yr-`WkF'&32jo +HqZ.tL%UٿGky\YyH1 eE`L($G +\` `+^S7pjHԍzؒҹn fDrs^闁w|K>ޟ?C+E 4xzC|\h)#Mut9RJ,]6J{$ⴋh$?}ޝЮ *f5@5 +;g۴ $hQ:l>U2@,!]ixFd󽔏uz&>p bP-6~kX$B 7zVm{nd<,?Sw23axsN[e'e3 fePpe/0naIymóZqxcݺN&j0`̰=z莄AM--9-G}g4r3zۊnr3a̖&{Wuۜ2m oHpWLpJSDCinH4Nl? '6&p30HϨo w&ǔ +q@-"X:_&vn3E!y0v{Rx \f;za|G+ gr20 .P04c04_EqmE6c=iz`>_e +AK05`ǹy{߈"#v02b#Lt@1;.I5 ƹIhCh~3.<61@:pNnvY/w./M)IS׎-#~ YH~*Ǚ1yF{8O+WdFVa71# Á鶫3X'X8C~"j.g클^e}kV;Ҿ6!iKXNLџl'v~86Nh:@9nG;0]ӡvyG^}11XO=.*'(r7^Pݡt~IzXI]+Zy>522avM vWT[7hb^ ]SyD`~ꅪ3JqjiM>rNX:#ZXto薄notOC~Vz-BuVc~ Lj$ j l:yI>_I h֋ PtNc&g?cl-VhvT릿 +|k30#ME|G28/+ϡRGy3O,?MWϸnJ~`x>{< V8B; vP벱YjD vLmC.`SjMoJW/0㐝^p`,/bqE*-xUV73…()uHga1xiߋ[k()N2}3zlxxݽ|90m{e5k|? `3X#*wU5l[~"lFK`**ү#|ō +9Mg`a`TYz N).BY_&(Z%.LP+SnhmnVɍ9iiv=F1]r͍/c 1Sr?fKnSB~. +SWzYg[O*me)mtWL :+OWnq(w&H{4eJ?T~Wr]WM]US t1@8z{S\zH] ylն? sW\*mgJ ;:ؿ. (q ǔ1+ dh&0Ͻ|ՍDϐ _&nFbeAuKe59u0bo$,AV6?&hx ^22Xb "$PYS)H"CH_꒛Քk*| ^jX c}2֛5:i[F<,t|eDeJCzLEqہ|da,])((T2gOO&>d5uPK0ӈ) 5bDga*&6p[1{PqC h4:Μ57ωg]tvG{ⷁR^J|@,W\E\#,HrK̙[ow(p#y/9BFttQ,샵@Mo`,3<lΨiP߹zwc dBgR݉ 'ͼ73.V WWhU sO ٸrĦ@^Z +%9@i|nviƵ,"8<*@%;8M ә]{璳$XC¡ګGwaTi0Ņ2t9 3qClRr婤ĺLNaq஘c ȧoHk^c8-3rL{zFe0x/LV@0s[(!LMTfzdG|%` ;>KQBqn%6}53c>ezlE> +GT;reaFf 0AgS yiN"`W^ǖ x"1Ʋ>s +Q&$.Vlq7-|sF _@Y]}Y%;hVV(5̆w_ܘ=!!ΏN0bxw?u\T[sld$T7;Ci'M }BVU&Y?1@m Y_߹?D.DLCVV+h,?}U͊ϹDgQ:99T'&sCS;Xa9 `[IT\0J=ߍf]~]q*S||Ν0>'Kj\=-<̵>2L)sgUDaq-wХXdiNK 5]T,oWvGFDqq98Cв:$]:a񇝬gЏpSɈI˃Hq8v)5%TRJ\2!Qe;I[\E4'Sk)f|4Fīi3 "p __ +R8 #v`Cn"j/sm&pi~se}W~tGMӘ^4Lw!o}Wߟ{ &ȉQFDfR=O0&f%Z,2Q;c"~X Q!l{Gc?.6 4O}fFT[F`i#x>mXP*tGmϾc~(_PcW,/}݁Tz}Cyӡ`ל}b$ u;6a#pFvǐEb;U~oɁ@[vcJ_U$h{ʑ7\[qkdXByn0WN.RF7b gٓجSaS),m]ְSL~ԡ;ܟgTJݛ](?_iCr@jn[fٿpi/qnuΠUw;w;~^r$t M}V8n!Wnͷ_xTڊKT.&uׄĞrs/N^ qnc +:po<ꆡLjeROd?*[2i;q[[ۙ} 9ŷeȦM~JZaOQ7̔2̃yAu2q?IF(:TuN 9^~ ~K-y}ӓ*]C zKyNj")4lаB~K"Dsp,5l fR܈5-p+I7+wqte0]*T.te S?׆ԁ=dP'ZZpS޿ [- OJeRo?h .<7 <\Q8tÈv_\:m~=H×-D)6$xϯKoݹʐ"bI+cs'i4IRƻԙْ1.( +=w ROLJTTY8T9]9@í@(޽-hO^iԝ6uiJ׽woZH-Ğ*@]ŏS2fBE!q)7oS於ZȢ'i%Uzrt}]S{Aw0 L݅ŕon}OL\zJHc& j/9*V J X{#2!#3Q+Ƴ +e.vx;] d4Z//L4U}= tO?dz,=0sώڎ] #Gv-lH+ > -H%tA<_C2)YGty뻿gSйoOAÈ?Iݧ%HW-*ᄔpswD' }vN_~( I|SV[I]<elj&YD8ߕ֛آ'YiҽVq8N5ċqԻ8%65*s>6{0 \Ll`"G-qq_Eb&¢b[&֔' M:<4pD>V&ID_џ-2e鱅O'tx$0b̘Oi?q[mq+ߟi>a ٣M?vjgυdmxLld[RQB۟ oʷ{ +4G\_ 5#Bn4+o/BKɪԳQvP:lPOy9+Yh$[BSX&ZڱJHJp/zA1\o\ƽ eͻc{}a@ExymŎ߳wَoԻ J. 7DX!jW|'Ը vTlڴ!{,$T*6M23~,LmUj;zvEq_CP,V*O%&<]R$em>/2'7Mlw[R vg~U-̳ 5ԐЮ'߶j20ސ̛9hAL:` 2@_~"O{[KE ʎܤܱs]X䚛t"YB+pQv1#w6˿V5&ɨ +SQƑ}^_dR٠L76EjXT$j)Y/ +M'D@~EcPd?rb|HghjQRKuŤ#K0٤/>#uܴubi)*!пϤ-`mE/ " +iE/ g6N'dY[,]u>Ic+5kJ\|eveJL,~sUN/$o*їz& +n?(WYffU;P^a)੬TzP|,~m=VVd!kn+3yڷ#`Gz?0~rP>O{ce1~;r "Ayug(ʄ?t$-7\jv5L/?smn˗p\k3v Y@2^eh;U7p09o}L?KkFD)K-p`)j>n:"I?b$[MhԞ/s/ů`Q.ؐIsL)3).P~Yfitw&ulǒA)3N5[Mq6LY6O sS~.{=7g!pJܵwɭ*q#e{>D1 1imf))ʬ2ĪL%mט' + .sF`M 9pD7jr{WvkȐP&m= LG8lfeIM\[WxYqYrexH9 e7!'ͫA\;׳<8 TP|;8vAy0ฃR=Աq)~aAΝWQ q8pM-Qf!:=] тAqg5;C8lmuc=h<9m8[W\b1>g*5Xl#AY*hxW_Ȭ\t&jD݄r$,= +5T*WĎ[ei=8c{ +[A1ő7|>iF2O C .~ +LL&vY = rM sǹ9Wv3YۑďP27uwbslW!֖qƤ蕮Һk]OYR6'$TB^QlqγL[c;'DO)+}xOnk:&eAlK;U%fI_`HXLPB I HZX4_PLSCiR<%kN^<½:='peq9azTJډG3q抳5:Cv:7r+%R qH40S}i1gyɊD {$H >:S0"[UQ,@ !B 6+kJx((2pĪ/\^[9?JM2xlt7 +×w]kҵ24A7=8\9ꞩ̧JNp?V"ĩ$u[ezٜEA Zq2gfj\gW`wVh漣6ߣ2vʵ7.ǡV9(p#'C}g]mOGJ3o/3JNei{Sﺵ# +7OVܺnUSWF%롽# Iuxc&RYK7hqWs ~)Z֍uRzS׉rWZv[9=;c^1p#.UI8Ӎ]mCI{7:9ʞF‘&\-.=w{amzǒ~M.vLdr'T3E S׻M>HcZ̭k6ujVb[KvvP`||;@&aDj4i"͡"5z)ʬgLҤ31?ar;[1^<˲zMWD/c]}٧6P}620_*uamjk֭ߘqX.&*MdtjE~S+};jbIAYCțD p\ 40>WK"<LCȞZ;k51if:0Rz +.]K&b*fBDqqc)7e*ƛk cKLb h3m5$!fveY"̤%&g5)u2XK`@H;)ފ`ҋGL廷Ca jun/DjԞ[}Q+F^N>\Mt|. {* //y]A~6evHλ/n!r,Oȓnd[{[ AcPs ءVd87}ٿFa7}3Z~eI[ +ndIqEޕHwzo~t9y{_e9ثtkQ >8Mi +~WVpkRG˵^z]7 G4H͵,.4 T!VqPi(},jd|^RbaWhv6i?=G\afMӚ)qzf.^+՗VTUcu{hhsf?wr7)=M٘U٫fjΆ9jسmlmlIupdy{ I^wwڏmqk'݌qjmG:lA9 a_-5|Ip=m1ٯf*1 ~s%Lm2$1`8&ˇ\lE?}2c&hrwS}_Jg>ف՗2>.J{56ҞzJ5ǽ*J 8!B7k1\.,0i|4>9{A5QXjǽ F4Q{7`*TNU,#PS`Guq+@=4 U 6Ws}[y.Ԥ0}֢IJ'uig ȴgJSaj1Ҋ-ikis[[0 bqhbUH[ELlZ1pnq%ׄX|qC~iKXjL~mz +9N.Wy)݊ib&dZv2u=ۀp{kr|_{">)^:ޟi%"|-8^E3-vxM SEI;B+_/ nt( +te򸢎bm{Dg`'rGߝm3@X}LrAkB(߇*8ˎ'x4]"" 2=EU9E +1Ƚ~1P{XiXtDϜElU#xY&WsSjHNeH#lT8u: 3Dm2ǹvܲ`tB᳌bq~ >*ƹC{(&~\E"n-&P:̶`m)vAg\5+>:6S$c |@Wdk")bXwH(Ѓ?'+`ۀ}[q]k>Q˗ߵ|Mh;A2Ē,կmצq+!=GyIElL5V((*M_֧qT'OQOe=sSœ*ӤpbNs*lNB9>_n$s*/sN<"MӮ&MP9̙dyLڜNOL׍J_ ;}Xc`GL LMIj6gw6H`. +@=kݳ=kݹavٝf&eb9~ 4.:u5 &[qqY^U}b`!:ê5GMWCI`~`&G.3h.y$nUѾ@81gѠ]낉;vKl㡴6ƅo8E\zE^u׾r)Z׿/+rVRY@%o[kWx\*kAoMҁ N`~tՕ"W5|`w5?VLu(}/3A F _(K_G7۞}+!\u5o.iI?ǨcͿ7)jJJ)O~T6}r6₀B]rhPP_ZyL:ɻVt6c"43\:ۀ$6( !r7[ɴv"7 m3RelD'K-¶\:]k3&`l:jG,FVԎqncOOQCjBf+z_kbi?en9.qe 'sOV|YV{yp;t4 ;Jc̥XF' qlο%q'L'(|Q yrkrηm~1)X +'ih=;il!_kZǷfNOMLi݋XQ$ wI1(eyi(YYf %qUהX8.b.*tpR)M`NfE2`p&~Ue,:]v줳!5*"2RO-^j|/SpMh G~!|!̷*lkEG5SW8,ӑD43X袾B,saHa3 ^6&9U\h;>>'9`}Xik$?1҇LF^yz~"'RԖ+Fh ;)`Em=/icw<beȷ4'[h-ƛBC0* }U`EϹkm|-_lN?]?ma/8eޚe`wr=#)~=_%ֲ/ՖQ<+/Tqm[QO@),ͪ?M3DUj|eZ7V_*Rٺj+THR +]-bf_yR_V4 dkO*#mM wIT3͹jP5\grImj_mb[xzZ'e:YFۮ:Դ~uZ,lUMnT@#)7z;vTf~̎ +SQzbGUeG_Wljl[ڶl[jm-f[%,e5_ih%OiPڥNXJ;s٫U\oioG6S$S|#BطDVD ƾݎaط</}O?^}+nqo}}DٷI`Ӏ7zA|h9uF}k3nQm7?<  XF}pW>rtiq{>YӝԂ?ԞaGi7;y{~2)2B{>,_$sEk&hE+鑴3ʁRW%XrJr\yqN$}'0M 7~fk~ .`T~&FcWKL%qt=U$sV~<_uQwxA^h/vxuV]xΞ{J휞zbe2q#͍aоHMJxG?3/w1kF1NHSNgũip^]q44 wGz`^/sQJ/FGʬ݂~VɐJx"h%prkR: \M̄|"yP\I1nUpM](ha#Mn(An[/d<趄v@MDPt gb-v;EGDYf=iAk9dᰦ3~[5kM3m5NL;M|YU&@ 3)E)PWgr:")X=[䗦ݨqڞ7:;:/˞ gڙmdIฑDq3C +gh33&\s3yy˧hOvRr~x^az%KJJF~UI"Oj &H=J_ƞqX +NC4)de"9_-H]3N){WO+[T`GVEHr< mr<[1Y2Vb!ь:,&re +h);r+vbX&[x֓R9>[\!„0fWE?p*ťy)Yaq+|S6m9bqJ->OXZd9 -@9/\4 5I(Wzϫm_ߦ|o`$m|Wp5 FBT.s`Ty'\)*"*]ʠų?YΰCp`Gs+ W~!0=>&eM3땮5.=HIlKl]1niwuOR 7|ȈÏ'8ˌ& 7v8k@4wlA`J>αnkelct#e=qO9_`nXo>& LE |\EEn؄pG8K;b_\_Ye8J"5oXS@x CP7KӜ.S#T#8DJo0ѸtVkV +>AU֖wzo l b +3;&cU!U_vVۇ81{\ +L >^!\MvPc QVtx],{ p#/莲@2c~O87,Zթl{y#?og)Q]02&{^h (8=8}4_ ݤye%D'òuk[`2Ӽ{ZSq9#,8֯A>;Cu޾Kd 0qmu +~FCs& >JG]3\gqN+x$afJ[7V gؑQU"9S0>2i C>-B}~)oQB,B[9L;WI~7Y/~#JW1|N*_%;@*Fas'l^kN(I:@IcC/U`!?g6:MR68Cs/,rn |,Qf X"g:5>w^6pØp+5<Ҹꛧ2ƲWx@STYhtl~"{B|ŵyP.)qīb~ag;[*0'D⼾#y'#0̫iR!O dV@hB} ,̴(C٢VEE_F +2}GhQ:jt~$]AXc3!췲~@hl^uouoy )+uyxuvQ@eģ8O\xm'#TPl{yԻ.D'LߥkN> +x\g)Y 7c81qojl A=Ӑi+ń>r/S'cDP8fpϸLeOMxr; @π1UP!u䡿nUBi/{~_u{/h1Yp^M% ~%0jyEv]Z2S-߯eLpJkޮ f~x'wMHa3yme,Kxg0S#勖yolxFŹ s".l~'h{n*\ vV<ȪE,*ߙW 'QK͢y^z2 A8@dn <]%v]{F{<7\Q&oi@F=~DRXWdL=q`糶l~>00vTc&68WƍUG&T^WfpbQ%3 }RoE<" +wI;G| 0C;2nwN=E۶G{+\;3܋!ve A"`EC0#)~;Ahym-`ˋX=ZyL""J96LT8قt KzJj$\.\1Pd+u!͍VTZ=Uf@qY5$&Rܯ+_a-CSSzuYC`T-Ԍ|;rrؿzeOd萅iHξ p}; ݱ*E'QȢ;&qJ&&8,WXIP.mx88R(<Ak6(5˩Ox _=r~:y2O_v +f*wAP:oQUiw +SOLsVY+) b:ugodÍ.3,&;5~ +E;NqejJPE8Ț$NFg1U0 +*Iw_,3\=S1+?J%{x+-BVthT]j BaZ6<-C5͒OZʧc*r򩃒b;/SkTd6-gMqiʙ:iϵ@O\͐0l{-Le=w77Dd$sǃkeiq~tFQ-t~L*.Ǭǜk[dhYpVݤ6!lVqLdsA +* ^N䮅-jTOLg/;/Κ\k\3_P^"d!z*Kgc;.mqJU1@9R KP+OXM^C54|pjGԤV4*_.A)On:_8d]Ǭh +g9>[/?dj,Wѫ ZHcT.<5-4#cT5|rbׇVSl~[׻ +^b+Aw+A+Lc\p=><}8P +pm,$zWU]aHT VXE34am[ +4r*| kϊ!S0Pc&f8qQȦ%PB(} iH(Q(w=A ŹPeѶXuմ)b2e2Sȕ/"9mq ~\Ft]a=>3pW-R?9_C +V÷p@13(;JBty&=- q"=`^^J +ߊsc)l}P +P@0 +n!I.8,z$c ;G'+$ŪI =Vh"ϯGbA +vN#0ݖr= +FZ)|mF}M8ϾNbD~cKU/|sV\FV llwGd,Cq}/ sԆ394WiXtgaݕYo(P R TB8S Q f)ܩ{1ycT~gJ)Lk7Ɇz +h{w_!(S&}YBC'nZ|eSxgݼ~p,~!{7J߃~t s6֓3]JrI 5R|+v~gOW^ѝȻGBs)Haw ++p>Lȓ)P'eZ)5kXrD=dWJ 7.=Oi*B:ӘTwyn \|h},uP{Mؔ/nҨw|<.+ _,$wn{7|'DhʑD}!Id`p%ϊ^c"λ\D2}{gƧf0=v+Cm܈[Tcǔ]zszNs; (H1Hg37_h gw<`H*! )x]-|D+6f'Md֟+*~[Z|OywY&]Pbz^Jw,ҷNy8G+ú܎ +Y6&V/C&R~ id&ACxBtA&m^ +N,* +BtB=7m*N)"K^qʷq|WT>wCuSށe|,uGqx+1IС}pz-,y=<{DBJIfWv @_َQ@& Hп +._q/M)7 +$nwl^ss8UCgcA]Eଉ,_1B3'ln|`ffE>nroYW'ݿ1"z`ƍ1rQX7@#ǃ/ߧ*U2oz 4t^5$:Lܸb-$ϻ mcTr&B͸ ߙzˏ w-rb MM2Ԇ]So|ϲm痝ڇ~[|bA=F-#q<w:b&p﮳m#hW5[:e +v!fxW\TO2vdm}辍(ypk[2$aol/sib?&s?YneT:xx ;3eBЬ,qAV$Sl*ux~N*ne_Zަ/#*+n +_GUІp '.+aM.Bw0Xh9}X QѬ~x[po =vpH#ַbޏ5k8p e-^J;p(cgxn$tܦq4=I66$uHS!N%=Jk4 ;>v$ a5=9upœqPINw4 #;Uz:@\S7zJVnlRINU9K[@cMlzM~K}U{cox,wq?vJL({8b@*q5u/|_ysYk8G޲/!z}VNpޮXsʔw@ACnܖߩ%5\v6dr$gK9Pب2_.t볥d'J\ДYvTyig!Ԭ[”hL?hz+S>~$:ss:|vT,`n|Y|_C=ŭL㱧/#_[_a>tĵ)V8cE`$31oq'U~uL^f{;yTuA!̕¼p?_rC+á6a1ϾRPہkM%DŽ!uYq㔵}}P*DڣJ{eF|Tad]#m-]D+_VwvUJǮO椆`dNzJa/F%f`K!K lQ]vevQ^We}ς%x"vF#+̳'5uaǔ]Gi3}eVՎ!ZvZ՞|KuY1t./F`HgPz8\zxMXxLʖ_ eTBe4-u(ϳ} &g{?rN6@O(+jZk,ط>&٫=sZ{ 3[~luCqr5P >܍ww/ݠxw6Q޼9v\(X iZ&gƀ%w[oi_ԞL'631UصohߩK9b]TZb|=2 X[%Ea"SVOu㞠^K[C&D`xP`A +̝grlς+eNkre9U A7}$kˍoKժ,-xsL`JMd 6dͮWd1×pە*JIga]OŻ2}b)h5qzgU@9˼:h}Eɖ`/ =|%VBx3ぷf&`&RQ?]&鵼+#afCm|o?*s; ~ܷF لe&eܝe}k[83 xs60:?õ` dUll$!RUY-j+.U +#fҧS.|+uO半K`O? y&yx?)WXέY;Ϗ>/\DtSr*췚_voX_sh3m(+v/Ε9{̕{^KwcΝM 7\*]?qkwGr{BK~0'(}ZII|9Wl$y ]ޟvS߷-yG7f{w,f>v͜; <+/"M Vr'R֕A;%27_OeNQ[O/EEf]8*d9?\f䷳uįq''&0vkI%]ٱ\<&3S]%WM8>wFwp@[/g d=kvqBtIYtOS jVXbk Z4\2@C_^Ȥ{L[9B+&t +&ZzrIǸk~ޏb'lė3wYUޱ%ZV +";6GASWkܜl5qȂڒ2wROa,d\|.=IoJ=|Y_!p9IQ}RfTs'g*m-zӽ+C__y6Jljrj\ Cn@T0,vW?5š@Lrh7󑢢eЏ"uEHJݩ9|kz{nu08e+y sM^>j| qDV~ԐV$8 w$b3ۉƇoi9?=WQs]'݄;Ħ8Џ =ooǜ}r%iegY%J acV~[։LӨm8Ӷ:jC"b[|'d]P5y[t]O|:=ZJ {݉[%kN'r'FlԐꇿĬwAh,ߏcIHR ! +ypjPJWd=HPh;=jg6j6yW()<#!on?epG4҈83pඦ 0\?Q6[-qtqi.䲯cu Ͻu1a\'Ϣ2FAFIl +.iЃ +$Q,A)Hod^>Ɨ0+u"E^ D{GyrBDK*mw^%;)lfǣ $tFBghrf!*N wn0M6 #5ߚu# +}*(k-rEEĈ_<$=Ζ ' ?rTRz6 bDwћͶ ?l5͛6.E))W+ oFb 袓_8czbgxx ! !7җ\t> +\sG9IJ8Jp˗pR?z@D1$`SR5(GAVJN/se1&7~K^tf&8\dwq5[ +2g ?%&vq!sS~;*]# XGqr:sxq{H}n&DMSg(PS%2u{9Ԡv1$=<~aәxPPR16Ӗgi!!d/K!h-ks' pz D sR(0(ժ6TМEP12mg'Jg Ǎ ΁;2vz;&zoEǿ.9R.BIpPa//#T& +|jR``@g2B +0"ʼd5k9צ)E¶ys[1a(<\nVJzw~6 QA޼]Ug>:+ +_g_,][o%㷣!5wA2uҏLL`@"[2bZJ_l:ij(0Z?eiYg"8O gk|sbQ,4Xa* +5sh~b#P"S9jH5F]_+(=8؆NeFujD`շ8U *Iv䄬tZE +37rH5\bYe~]pWnڮZ}yN& \ _%uRdCwn5j^dS;9w,ocsD;调nv'o{bw[7@d xU)?6\_t 2YO4dLԭ5k^[_u~yϭ=unaC>%otkufSYtk& akccÂun>DsQ{VoWyhs5m췆~֣~:%RCyE|xwDTJ7qR{ o0#51j<7~1x 9zj}f>5#I3QN7]iQmF3ЌiF2q6"Y +) #l&w!DMछ¸p%#k\@Ljru܍~;brV'rj~Lz;gxXiy",OQo-vQm#@.4y\;sHf4bg0nW#"wM+[@ExG^fsX m1s߃KaK i(=LGP}A{g,;EY}ίVW`P!&^96i*+^Nȴ.A_&Qbǀ[. b&@7s]u+nQ|bNDJ2bųK5`dP]l.,֊*Љp8N6G"ΠmY5k%h]! $ WcbplvHoHL]}#}jVaѼc>p ooVOxLa[Lu|>u + "ݦS\9“~w Tk'MLO*1NP,>XADr-J}k#T1,Ͱf%r%b"U `&.!棡ߩCNni܏U1^.3;q+[)uYL)m#8+6СG1|4d躮isz\R%^/2in![1 D BӪӪ$+8k0y^"`Elrp0{+]-*YGx)b[X44Ghq#߃F$}`0 wCUx<$"$i$X0YrtF_H4NJ=n)9 RFqJBdh:\PЍO'DR'jVV,=9X+]2t+k2h=oz8K(MKsK}VбR +[Di.vM zF%ɃVGDAOSG+;^ve1ʻ$?K6ywy>m5ؚgiJ JƗ ZQd〔\ilb׺<zO_DTQVgDewbVE&_[Яi\ƘhXs+ cEA_+c  +Lc7ұv8s?iY11a31May䘘fXc0:[נSxӤK&eiHmJN7!rӧlVg7`-Ċg5=~3fl7ͤrf"1.+jG'5= +CX5 3Z8>ldMHr@ ΀b~<}C~ Oc:l'(%ݨ[F63n*f3vg3N0F)MqtEd1Poϧ1R8F+3} jz^ -s,A_52ҼX {z-}(}-Jsݦ$K6Ꮿt1SX>RN'*Ngۅ'l؆!}H|`!؈Vx޴m|ybV]#\װf٤h0&Ym/"9g{oz +?l>@K<̡z||`2߳=S>)(q"q4{j'?}gS>ތO(g|y8|Y(׿8Uڒg'?D>ԣ "05X4Pc23>NQL]S1|h*(SBzJ&}IaƁwOuT<-<I)"/p.KVI,a)ؤ(v*I:d >佞gJe .vXBYhvmn/s,Na$j׋ێu9Jt?L$c^\Q/Fb##f$řY\PNH5\RA~? +%2dmSoq-u4썣-Y :)_rPTܧ8ŕvpSZx+KlghaVdšuXZAz%յʰZvTF]ͳr$Y`l<*.8+(ɪXg%M1;Y.mfm&am2kWt!kL8b_TY1?3հ~45m7-yΒoɷS΄e>%?tc9]7Pȫ.Z~KmNZ,,tx3 %mR{ojz:x\vw2(=iIi2!'b^Pkf<&6ioC=,ydyvZm=LL%8w಑k}LZYM*|7rL'PL8 bH6{+3騙26"n9iơXfSV`FTIMi=;eMm?޹t45Bl^tt"h*[QSD{j;\h{wKyϭ%5}xk[yR *u\& ;`ڼsIӢR7"K|Ei XQK+=H~:SnSuUM!FQ?z;`41i3}ez:5E ܴtLңVrw@)X^{wƝe뜮R*hPN+oo"V \"3;T1BiYZBcݓs鬫%?RZ[[nw#ɡ^ږ7roω!aZ +\aä9 _2*4Vi,\q^i؎g] ֕`p"G}TN=gAd| ÓCf2p>&iXlB'( +H3'fD]aw=l?Eŝ,~=2j:B{b|5ŝn񼮞9&q<‰>NHՇxxBYO +<GeOIo4ABHHYDRrcqozxqg|\%{s ٓ["y 9~\*mh⻱# +*-c)ڊQ3Xu4*(*'nz +T!pP{8)_`UVX|u1()/7xO|Qx%[2ϜC;K9U[Bw2W/s4t6uUi7 +7BK6DYR6P Dh˹ĞѝJSRsW$<# Ë{k%)rbrbh~}_"S2*geSW_WTȴ˘P/z37Uɜ#tO_lz;S3͛Dg`2y*=RvQ՘꠽\[ Tm:Siة4o1씘ۅ[ dxKbSDh܅m8y+wVIga< = X)q#FwㆶA,pe>_n̎vlcdx# R1}B.S$T +k3Hl4P;_QM%Lc4I-ۓG㌹^wG9S-8z[:Fc>{Qy*E%Yf=,X&NySaH7C,Q[%>G2*%>K,S۔:%>O,TJ,U8&*|VE<[LfGR݉@۽lAZ? }gLdxF?oN\`71b3RWJ)U%!c/:?9*U@C,NvBz STϷ2Gblg/aӜBrۭdJ͒.S* YE' ޢ:);kT3&)Zä$ũbʁ#TMge嬽n%89qus~5tA{e|8 R^7Q#n6NA0L93Bh,-SZƀdl(b(EZӧ\!CnH/&"Lz )^1t{ː^m{6Y(GIM\VYU V}7yhd'bs Z/*t]SںrrEST.&ZavS_gG\)j;7aޔlx#*Y ̆Oxf7(@EPQɃ$jD${1ó|s lf&Zp'; MX^$2lflK-e&[A 棅HʫfKS&R>-@E13!Ќe+v1z8mħ?>~=ӫCvV~!B[ Ù&ER,il&+2:f $ΉO$a~k/ ,=|cLi3vg >Όwvph/ l^\FiyDnkA0w* +qoH ꕻ~ݢ2H4qUe9 +A.qGKoO [-a7dKOŝ[?h6AJ+6% UoO9P7cJ,fOƇ*2/\;+K3yCrgp%̡1C6_$>YS.rǣ'j +>"*`w*ŋqv2r޲Ʒ 7U*M89Av,eJpUև>I3֏뱪3އo]Đ X}M|ޭ`vdhnVxhA2 )H/T32M]/uok\ ضuZ _궵 f<DP[,ܤiVmf%^Agd\r rń02*].(~`w))sWf> ijk7A"WtoI^T1cOy䞰{ lc$B2A}ڢkztu6l&JMD6f/Aޤְ`iYEMPf#\2n%o D[:O>{ǧ;9^y:3!B2GNt&Y[Wn1ٞmNv$3'G\7cF6?6[y}㣯|ߌیq7/k3kk޴ W^ᙒojwž:<ez,jTnVҸN iɖ5B8 I<Ȓ>HP?f'c3 +`/qLKB,a-nx>1XfH,!$čS 7U^h ZUy XR,bmZʥ~`ITVr6s~jj6ʵ/I(XfGޓ[mF"خ"dEbdEȊ"=c6p{VFY/,V&FV"{[V\6t"$̮(vԗMLUE!kp3 kkaSKg^HIvz7'}O?&X~&H=WDs;F&gY9i@V**|ۅF,nƩ,of57\us})]y\Pǰå'G\#ͺP1͌,x5J|Y8)btْ!e%&ebP&6>5L.߃cUK-ޜо |Z h,Qms,*f:t͉_2]lOW,kZGrk;b\U:ׇf%78{YM:rXi -r9redj@`& cR;۴nC S}ǵ~ݒFEeb˟vhN3qH D[aNUI恎] lIl^k$ R\_Cݜc{wz~} /ā8pqv4 NI3vqw2{6(^=lx=|f$DS.x2aG[aL#SIbĢl,$3{F;d;qkJ*YU4jI۠ R>)Ob&sba|zު rg2\zhB S74/fϴQpA.ǽ^9Af!\X49#nBdcNՉՅ#FVkKc'?5cGF>!d4/ÂxyF;7MQ1r'B{rv͇i_g, +7Gw;paGXW䳈]]{VW7a;`X$~60rSHe >kpBaq5>k k!'|{3+~Z9} 6]KUiSN_X(C{Z=|32Iji%tsř7ꔵ:5~*H$;d@JPA]!K]w^F\o"zfx_E]4+pQlޗk6clOma[νSn;9i6=< `_0Gl4t 5)o쫂('Dމ'FiQqUE۳8@L@fNv{O@9&v܀(RS,6RMoglԶ[ :gŽygܲ0oM1}\<o3yFς[ClȺXg6>t|+s^{]{|·fۧUF@6#>exw੶a=IZJ#,i6uJ+ iAFRqqQvwxRKψ2ռǮ~H9_9-(za^R Jm <`0, +~9, ( S3:.C_i߽y3wkguk֯ܭD'nMMnkz2;~aﶪ[6.BK 9߹gG>qxAr 7awf[^-oo`y!3vw pX~fq~xsOl+,&jL533y&i[fK&7 1+ KIXY~3 +fhFEcJw2#z5?a@X_}Bu2ٶ1t3lI̯Tc0 v ixGğ #1S}Oͩmt$ɑk S;z?V1ogu$Y7lV[uTȥ}ca팣[5ty=G.h+c5`b=ә$>F&'gG̼Y~]<}޿~1;9q |IK<;s18"R{E[ D^o(=YI"K+l$B=\,=[G^zUJ! WY5,,&)Ѕ_ClS78LJ!JVh_$[ݷo{/IkmEc_<Ad͗Rq'Hl +!K'C땘F Rj259(W%v.r^Pn;1}J!@D9mƔlVI0̺bDD&$EΪR;5l ;G5n n.(Ma-["AR帝@ũa$ r_J1_9-n [jnT"-#88$]۾RTר޲e֝,h9-xm(D{SQr%f*I\Hd%:JR*)*գ~CeST^T`;#6̧4ڶŸ ,VO)h/up1,M+ $ 6ϷVl FJ~8 A~Ҷ 7}( Pm-m\w)rY>+&e"dȅ͂%|&,븲/ZneI*8F"W4h}d@bGf쪗̬p'AAT?)V Lh/2`yBNЯA 0V{:^V{k4Pʖ 'R>{!FY؂dO E,<=wQAڨU0rU+Ҋ;tXdp\US`[hڎ/qHmW5jgeu$Sۮ-Q&=#ls=}^F^.-4l5ȷ}t$þdR|.RgmQ]L@* SJqE.?3i4,㣻e9*޶lQc膯\4h]K\T"ކ5=15vJ m*}+@Fb"r^{iiDI=L ] mb7qNM<%ߦ ZVnjV$vה6M5D/`wBX|X2~d!wb-dn|7!n::u-/ JiF}|#U갯x5JwT[S$=h3[53nw +ETYi}c= mi.,Yp+tOknTGp<>1A&FzݡRn~"}P [fZsڋŠ*h ƻųjZ2¹j8ڟhPt1 FYwd׿d(s~l~IQd+ NL"Oz>'zi!QܢQKORˑk#ڶ\!f҉xý7$ZX;. h{x`#Z1JfT]!W (LT+ր8:Z_05% !\fx7=03%Y])@O{"Щc ;sȽ҉d {l NSy[8E~x<v=wZl\Z;&lp.laHstMD$ 1s3 _q}Š7a 8 f >2W5 l(|lwoت?CCkT֧X7kic?3KO4H7] +Jv[VE`bۯ-Q8m[_Į03Ӳ-:tZZhK9vff9$jCdΏF?FnX1 i6@FG6˞ 洱.7n_!7^޵zX;Xnj sϳt̔U d~?,Kn ,458« `?n uYߣo9`ٰM{jQϋ2Q芙h\c+kS٢{w\;EFᩴjٮ!O?ʼy5*\PÎyS{hL`A=e<)^OKdn5ʈѱS[cw&ry DP{ļʤB &-KdZ#KgDTh5y y'D~LYo#C9d j #%82Z +skϫͩ0[7l +\(2$5wtuxX&}rb=~,V10t,F}8gW|!`~4 ?lo]|8ڜdK;19g2Jp=}glKnfgws4=/*w`NMt&lMQ;̐5UyԫhbDB>\/>?w]Gi5n=pssvn׮%YI{J _w3~}+/+*Io"IOBw!N.Վ LNXh;Ya, m-{ܹ#=bqiPkNbQNI:B EimRi4X.,Ɍ) r픭Xf';I~}{Zt`HA{$ć7a^L*r_rY$") OLrQ. +9n[{ݐVϦo4j2bILt&WeKLQGvF##9x7^珔'񚫂Ƨ)X*yu{ %>QUgxn!SoM5JZvt-c.a@_G vܢf* '9\[F-v]ڲ]%6Z"f!A +3)ΘH!=Ν?yɽ瞿yss<'"ɈtRrΙM{7s-HlA#:%b@x^3|_D󏨴x!pmGd q^u$1Upa;@px[0"8D_WcʫNAthcC͠1ȩr(ā|w R\Sl^3*jlDgv.~b?1p]Ng@rSIw~f^%V8WcJiz}BIpcws=[UOrnr-nO tih&Z@,LbF4DF@3WZh"ADaF-Srd^7 uTdceMRθtQ+-⎱ă~۾V_WߣO %9IuK̸ŕjW<> ZL-Iό>]@#Z z;ou\ho ~݈/4J_ԕs7bb",> lQG{|HOGR][!N~Za_m,}*;ml>"ĵ2 +(iBR1tzŲ/gI[w&9`+Ez~Ex?Qv҈QM/Bry[~?/Y3!TX ֻr3\U^hЖK,4@u͋c<+e*@; .(:#Ե8%[;{oMxkk}[0'̲W4ƀ%OUL$##Kq}izi?jE&Ľmx>͹N;wRj-vFŨjgVlbe89i)g 8x~N0,yFlF;VSF#!4NL% "@uhq(Q: ś,Z +I>s +>ͭm H/L\BES6r6:&@;?`Ƹfųy'ݧ l ݪO҈Y=] 0bE8;?Qѡ?c;{4Wtv w/@zGjGK}`;&W/ = >`+(Ս# +?(FBogK+}ApWkS|73^7T'Pִk¹7Ya.!rNI]9ũŽ>]G:w#[Ĕ5##6< ׬2 H3{͐v~J6sOv*!NNΓx[QЫN debae@CF`BfݳS1N#9A[a߁_}[D$iήl 1 4zat^VF@&z8ܑl?sa8N@nbG.qEal݃8"a*A\qLedo(+j9ŋ89JQjcB<`6q]Akvo4.?| x<]96tлS.jȤ_>p + ++xe2 +ȋV;+1!o@N8Oڳ۲G=@pЭzߟQJZ;#cq(ϕGWNU.-J7zȠ?VtpHwk i8ǿ -ә?;^ BC˯zNo onɪka'6\Xk%;(:U/VC-V!Y `tqik?]E*_Rzh.ן.4 Bْn0nҰ_|ެc̒ؑiǽ̭\w#ec5wH8ZQ;8\n\Yef@]uv`yy*G2b8`*=e8O' 1ܱ t2`eY3Ukōrb幢<_J`%|mm<z7 xyU6vedd =D-[ ^MZW~쫏um3+*ʣxAWdw}2">u/d!OwtB8[4a5o2̒V1R7: SK/A`ҍ֋b$O†-' ?!~v^%h ,7!d nڛn ס n +Tp {)u eTA +Q[)$R4h0H>g_+3ȳ [VY%#yP 3gm}<4 ǿFEՂq4b<*z(y5]^y-zvTO^3P +>jȚOX hnOLܟ=\~ӛ1y`՟vqzKJbuI |G))WI[b7O֕`!nr֕LEP3ۧS`VqT7~ D/wp87(~آ> yRA菅In hH)C#~wheۿ&a?-6oc%L+aX ʏe9b5H6`$t$ԧ٣4{18 +-#)kp\yK.t4ݒkwqs 7o7 I.Ah _4,Cs1fƏjYSMZPa~9 ~x.}BPH߿;<μP;ŷe D9ׅr=pR7-SzJYPg_UetCaǞ7k*FEiN:U`fAX|7uTM;CY 9D9}Ȋ~'19-I(B!I=OJ"Y _cz{0xbDI/7y(L!]$>/PYbUn|1[}y"y"ocGd)h' $?Eo*8274]|,3'EWNԙ@vPuÅv2g Gg(_UǸ g3(zkD36 +Ϡv,mo/\{qPs邢Wbi9U;!(s ok5l)Ei/n G'״r:wF+wFp];#~Hc'#]itDzj`(7"]kr"=5y5Yy% I];,t_=A |opBb֣#_{h|Ѥ7/gSb]UiZ@ܗx3`_9Q9}:+}a>@DhjEOZuFD>=BbY~?Eoo1qc`,YNo~,p36!~~UNUs; J+j~VHȁa NtvWGӾwЧF^Cύp_=uzܳC(є?@˲uw-I:.yY.nq써3~ +cGQ,Y{vu.zΚ~?%?WH'SA="C~c!afa?\~l2k5*.QFmCgQI04M3́L;v7!&P~$q'R3eT~3wp{Q ,Ɵ%Peʙ^@q 3U\KqQ>0pE׬s;f]tzG~TZH ak2ge'= `|WOolGa490Q:o5e5+((Vb8?,-,B/l ۧ%K|m0ioNVhbך O3̒&AxLYs&MT0_ptx?qIh;+o=k ۩%5Iy rk&d&֎1ĸ񝌨-z}[n腿Y1kW4dxݑZm Uȵe|ĕK5]̇Bt=vU_++Mz/S> Em0_tThY-PͻDaR 12REsa2}4]}8FMs!;e*66ɒg +dsʱ昕IoA\Dms/&Wy;MbB:7 +*qz>30I isZΑ=#o] ]&6=Fsd w؊2Tm)1S8iM?Jυzs9zpJר5!6ꯅ,c!T~JV\2fk1^6Hj}J }mgÀs_\`MxE([$23k&Yitοk0E.+!I!#VuǴ÷xj/P:zzp:ƪTC:}h(:}W}ooo^n:ƿ+$&7O1^ BduNX1(|4Ÿ!f(8I3w $溦x{%GI4ΓO\r␩u:&VhL˃'38 +[0Nř.ǸjXb~])Ƞwp{D5u۱b,Jzq0W W:Vb%B ׎S+X{V%UQҸ8iõ&7\tēǓH8k~mgW[=kzZPTBym#gzT\y&ʇ) ^O6WqM葫uZm36ϹFq*4?e|c9ۑ9ef@45ypB i{uɉ.;wD +Ynɲ/>*]2?F/fgvF@Dh!V!j xralG)RTyDK[I]h!TyB "$QP$8g^=aɮ-g/&'5AEW8WzjH75/oM~JhH_*7w'hgaBp(*Nd)lO}|=ߠ 7dk) |x6 -Sx{# 4P4  +^+ok/<\vonut`qsR- ̵to]I!+\az}i 97)aalV׏ar!ϟrk*B1Sq2Ö%FF'.N1ejaq-A lNxnL'Ž^sr>ޤ2;֠];,<;7 9ilIw3$)׎).ߐ́H4=q}%}ۉ u[ +sn_rI- )[JĆ#>ZJ-kg<"?тO԰v|un!Isaµ?WO쯘a Ja2{1wWElp1tCЈ' +ЈSwnY,[aDI:Iل?ߢɜ7keӷO6::"zqO^bGPILD$ٴ$]z^a_ؒf^BVLb괌N;iL1LOq:d2.iwR}ז괃E]N;j{iӝiW럴Bo:-RQ22S=|"fiT4u-iߟKΝc4)tSNΝNOuN1;N2͝#:6괬Y:6k23:Өi0ɗiݣ鴱"I6-NuM3i'zd P/RBk-NOvB~~ xnJuZ촛q0wm: Tׅ6Ko*U]O}v=mR @$\tKRLX +qr6I+Ȓ2[4dzQ5WQ@y~* jbMzA' q6Sc0y [;JAH;!:ع:i2$C!Qmz]4hэx)sH3x9Ī~+@!E~NtTD۔I`JD;KqkLĮ>GVeMM+kR8ZiI>ST +-И^{DLu~7Id:Bg=gTFKbub@nܻ!lwtzuca2e}P48}o^)I׃Oo'>nǟb\fQCx$!~ms|DQx[I?1BG?lv0po¿o ohXyۂ|mUew7[8{8>~|ݪ +?7v[8+mr_C^1TmsӼoG x2mx7ڌȏ.{y72 +ll?Aǚ9L\[VւVK?)2LA8q'1,! +قV< 2۳&^Lzb QIv=g26P`rA:y~9<>; +~0t JFMde5ĥ+e\PfNAF.@RɊ*h˾j~tTdO/=3Ô7v{03C~X g\s vwɫtULU\e᎕gU߸k, MVvf<0RRn H+=ڦe%6OHʬy> )Yal{V{ձ?CyCT\LrCW,YC iD^B<4diZ<#:3u#%VL#%% .Vzb%E58<3\r*d`yed;Hy~ ƾ!q^?̪2}j<-ғ #FJ] ϩʇ߹햏og☊s^gn\Ǥ;KL,쩥oyz4,ϒvz_Y#K;chm}"PS9D@狁:J GՐòܦ?Ƌ}>wxs`75q+wE^o"(]kCөhw ݸKk]cnzH ;6N"pK;6E2U(Z0IbnTz|ͽwș/"mCF#ZkZ`4֊[J1?R}قZ#."!rR;^h<>oU=ގw;C=GQg~,5y!̾D?zs4nēMۉb FѐWlA0o4EY؎.MJ?'}¿w# +}0 ʿTә$:҆시kB|o%2+%\0gY:=``.# O B0* + |yҕ?U0^dU1̸{Aҷ'{4 sm4&&tZw "Nl~p{=qGmOE]cc]vVRJ1NG5p+wq'\{ [taX//UG:}͉N uKY4Ş9kB?`v.1o2~}'gvΨ-q7雿}s+%o7}%雿͌ރO.E߬Uq۬pN]?#sSr_} +JߛU;!rlCW+[T򥂿%ϯC +klp-yم;(~p3~_'̑+&q04Rw<lzG昧)232#Tǔ` C{]vjUFMX(#yVZdNm2ct܏1j|F#-{սkίuc\<4mߞWoz[oO/:WЗe+}iP_rK޻4*'i#~V3OC'ZaQ6!u%_IkqI4U._DK-Kl<7|.:STK~dž7S;T6Թk_B` +]7DX7jz+M\RED ?şG9]l7axXj֝,&.I="]:_x9n_.]]o ztĹt{ H ce6񌌑lj_Fk'ofGQu35,f(6H\-/KX +£g#`p<1 H@uJK ;'uGD;6 bcc/b5 ce/1=ݏ4 fVz'L65AXs;JCl:@Lvq^e; +i.1Ͱ7'\m^b \8aV nV-,AďyzJIA}pgOmc>_T*3pRWG~ +`G`͌`"asSئv"֓jd%3 /P<֟e~Fn>Qx@EK:F,M'Y&#Ǵntf8mIGE u#~uMHMľ/d Yi|Da-fځBЛ?~Q'kcֻCIe=uSyXiAE2@ EPE7#QƳ^:vҺL@d fĚߖ :`?wX!c^OWb(S<94g'gj4HmJЌ'(Is@$?O'{&QQ*w4Y7 =;\ H^R okChs0=%JyP㳹!Kz[ACb=OPC,ٳ>MxvxYzZK=5&SAy)&"Q{6#yО9:gC3 Dn_IWAL `^Gx<2]/]x +HU-='JziNOeQJq,C d`peNk"5x8#T{ +Uag6B2Bl}_\+m7I78q2a#Ӊ.FK!Quru zЃ~`؊7F}+ڿoߝ__im<潇ҕsmm}_ NQrPw|tn2[ SB/_W˕6V|ru\ig}Jm ^{y>=.*i_Ow_yxq9R +,.H{wB<»Tͺmv6(|CK*WyT}ƴ@z [w5gv PAR'*w'qѧK-c0o,[n"-K&L S yMW4j9.ѫ5HNzk :{]-I"3}i) .ywM(0x"6屧~B啟ƀrނZއ2RxY{z$?G0'h"/GݱIjXP;6 JSO_;Ɠ|2]͛ͽ?f?y)cK)⟧"@ ?!+,땸hLyfa6{mA︿؇ 'Rri_7s Oڼ?z2qWq_B= +~_-TEÆ Ŗލfqz#W=8 ++T˷ G?9~*x?wd¶2;A2:,D n>% * +ڗ?|om$ +&$FcbDNGH?ķg$VheE 35gS"at Z6;3?=OɱZ:!AQ?8ߨ[X43)<j%f#D 5 +1T%m-jBjw#/>ƕMj $Q*u .H\<`5Y>$U+=gH~FdC!59E. zg' x!aܚU1SlA>Zmx;yʔ$\[g8m>|Yի9^ +6B-ŘФVhD*G1fcd]2(_Ɋ"C9A!;iQGwA3V +dCL+"l/aƯ ƑR1z;AzlD26k +f<<-jh5nGHX6nq2Am6M;jvvRx0F#̜T6c5Hᨒ]ҬhiBم1k:,^]5i%E4'U猑G#*;/aIp1+k2sܗ^-I_ D1( ﭑV}Z<^)]'r {= k}NڋGkBBɨ &gxoKU IE`ERn;Ěy@=jY#פk]n}?ƞQ%jm4j&م*z++EW"&Tk鞻0KzT3j*t7?C3Lp&z*qjFR '09H7R1%=4#D^(=2=A5 (&3 eP r0'p3Ta݃|jՋLʩr&:|^z~Mi gF6P/|k22y Vؙ;%q+YѯEk_6m=7h>qF1\M&Py1>ٷ_:tEMaۄW:{o"e~Iz6Yڭi87)bԈgVLx<8ih5"{%VTIse^؞KkXCS,IhbulAݓbéf(VL:< &Y~T3ԯaoǛ+1H QNK\_KM?Oa$ã,pG#0OmR`vXS{ +c]Q1}a >t[; +%瑠|*M7[3?u᧮rX@ +P%hǁ ܉< 9(yD,1>t~>"7) vC*)ۇZ7 u!wp֘jRԆ!hjUo&Z OsZژMEZP~f'B{ڊ3mEZ1DT-듕R{_5lJz в0ald)TU`:7RfSVHܳ@XQW՟bl:* 8*D L&->dј V O29ФAnva[6hf")67M;y R2Csq og;.35^074/ =Yͬ2q^dVժAB0EqvbЈ;U/s1D՝I `sXH?@a+*cmWUT +Cm(SHp-_~4Nj(FaZTZT? 796d6:LZ\- `t#\/!+l2`v*:Ȼs* 2"d4ȀIB?3_t}iz*T_LYI,m8/L꼥 E= +-9[t-^I^;~Niސȥ-`Slawʖ_2n*W 1)=umZ5G4Xlf]Л +Z6pQObf0q t!= 1>pB,%!(\LJ'IT8u1PH*AgwjژA}B$_x+}SoCɚ+VؘX| É?De:N*Vf4b=}HDaU5zQ2sTEU +פƶ9)QeXdjGv, M8`19 QG/JwB:!G?s;5u.;]ᨻ.9jtUYMA-diY@#UԽ5ɫ )W=ERn_h|@n ҉1QJɒmb |?_. &4vsfIk^[?Vpȧ7E&t%O *w&QrՠQ*W ԠjRp0qdA]W1& yN2YEMD%?Q.?A&].[m+76JLM"PXB1e0fSW '|Z/3ű$%DY-l#[4ݻC7s!zi 4J ia: ak̵!ZB7=XM8?%2շ0韇3Žۓpp~M2Sb stAIC|I4^D +B||`B!F}GBmOqZ|}~[ 60SbSU1%#_@qN7J7HsvQiST{Lqs:G #/{5>dkLޕkJ_2W2g\Sµ\B7Cs[u?;T\@ށ gfrNqxSq0*&3긥lv@/9 .ܒ:D)\GUf ef8(>daPޅً o4h?u $;`ȣ Gw) "}O9{sKg`&"g`=}wr/f*i1O||)H$Bc& ɱEȜFhϠCwpN`ϊбi070cʏ cw!}n,  !r6iaƛ] 8[RK) gj8 +g2b|Z5$\)"9 L};8nuIVn䇹)yE[(3;8 P^y +{'^ݨpHgpK. _q! XtXbHEwA(Q gc2dA;R)p]Lً )5R6,puJ &%I) cG800]a~MQ@QRCo?g+H{bJ"} t gD{_8{0)p1isRi! [&pqxoQ| ީICIզa\!Kuɧʧ7i\ZVB+̺Zi+$JXJ?Cl}8%TIV~NL*37x+ /#3q)bL偳> Y5<9asrb.μ8{g yٗ yZYn~2? +"$\+5ǬގM&BלyKȳbK}~_[f;|Y++3ȴ\0 *-'n;ݚvHO'rH,:Sie7m0:4. pǥ[;:2?(x w>na:@5℻a>)wpgXLjc]KܱTl6yU:w#0NcAkMPճ/tnF nIFōK7xbGsW= hzc!G#gGc~68sH/1 cxD3[0i*sV̻(~X^PKŰn-)s4q -Yb&D;`W4ܒ%jԾi=u'^|Y\"V@q\5_Yˬ@;sES/} l#ךTtB6;{/8nJIx(Ej?›9${"*l2,`){MP JهJ0-F/4qri7[b<ɦ\)R&eZjl J"@mI-P2w8\*g- Y:DnAmj@ +Q.($8 7$9}崁/cHCD9zoHa]$IJvȢ%M⥾"( }]7[X ) O^8IE/(B$"ċI6#^Cx'K>cS"(nKE*&^Dȥ" NƋ8^l?nf[%nEt("C *$!JYйH8HBHJȒf<(COPi77^@@O$P8ߚ)OKµ46x-4?SLɳiаAC@ RN4O4l8>2<7amM S>ܼFwI@ 1+ +M/ ޑfCpU6~ů  Ih9asQW48nRiА IRАX9ѩ`bJB.ZFe rmBdI`~B|0r #,-K2 T-@X># 51=># f + V@kSz+  Q7u+I +.a $0U!%i +dI@X}< Su!@P*u&s*DrBwu!"t@A)@o)%)@Dmv<v3H 4L kakt@^ĀC5e*L"5L#}K†DL@YbgR%6BϳBb)pq ˮe9 1 '. !~%@Au: ix VZZ^ lt..E *͎5NƱW m<* V^ZQ Lp-.<< ++KwgG8ȏ8Y9H_GP4Ψ|3iJʈ+t t%H + i,Ϫ:+[IgJ#AW?YһDڞPz2W47Ae+KX--$ diCaÓxRYKq8Kc @a8PU M\:.Yu9AwWJq?t񟣭@n%$F&6ix u[EEl׃^^fy~a$[JSUj. eUoIT (^%ߖ)VRgpDp!R%LGԙI ɷBQ^UTBGTQ[jERT1,%&*ЎYp0)0~VWXAe{6!ܽg)؋*,4z~^QC Iv +&?yտFMŠ7Ha 3SZQ +eXo-KLVՂyTKueb6 9ǣ*oUUX厔64[k*i<0h2.] UaBV;8]Ek! z Gx|CJbGϥSJy8xњ  ~|o?zJ\Kh+sYe/ Ƃ&~܀ϓF){kv{v q{v_bx؊ͻE+_ǦChNv%QYs,~cb 3g}\P1E ͭ &xs72T"N6nj呁4|VnhZbHB"|KƦYqn] +>os&Ԍ{ZZ*" EICpp_ RXZ!ߟ:]:~V9B]tAEY $&ؠ2:jiE%BGnӢV1 C6 ޴/behb8?]))رAR-F+xԍ [uSZ iX}DA|D~Rk5d +J,149+;3G!}6MZx'zZy LH[i8 IVW;C;'O[he:0A;Jk s V>1a= 7%aT@HL)H8 q^lHARx +n2!!FAp=О*6u: Hb_&1w1)֓X6K˓%%8DC5~vƿ=[. 莔[Y/plU5<7r-Uyk +d2et8hSt㏃֧0^[^k_^[>ݩ5 @. ׶/u \pځ{5q&מMkw%.R}r6֯ixnŭ׆ux푋㵿:R;yH;>2.ݘ2=+R&ya֐Dj84Pʹ?vc^Zy`k灵~vg}v{jh_iE3/,狐i,-nU-W)EKpٕTfyEg1QĵHoK딞žV9nēFjωsajO<"IZ=dẗz~Sm\7}&n.?̊ /&q[d +9 +M {&3lgK+fQx*OrWf=3ൖWf''.Rg?%~Ix$H?TR?[;59  aSs ̓+Giϛ(ѩx- Z4e}Jyp"ZFڏ[7"DZcfmVP{dRJ8tI؆3Ӎ~9Y)lEk)[Mex9KWϙ-K!6ssMNIG!pª1f&&:wF\)_0;O.9HEY l2(+Y4\Wb/dy90Mz26y`?%8^GP~iP6sڨ ,hUY=iڪ\*\]a]M +ZLqAUf[Xe7y,νl|ùKĀ_U|!jYlUK,ƯT hYh0 \ƅZ 4,*wK[ȌwLYhyRa+=Np:4ŵ'?a-Zt1 + U'?%n +t.wV5eh' }O[^D!ˇ>-OAr2L9s#\<)ooNi{6Y}8s #}go~,{?(ޙfug$C_;T0:t} PUkѹ )j9Z:ԫ6sf굛E2f^;GSn~ENy5ýUKϒJe +YTI;x{%m~1;2x =om0<=lM櫽H 2;F]_C^tA%/~{ `[sDK.ơWs=Qs\-o^#<-$^e|! HٗOTHp d@-6m-wN޸ +v_0AȿK:T\AB1wݢ̅6bL@2:(y7 +zD=o -u*l+j5o0 /*ZF'_Inc45nq fg|8 lfM(J(sd +#Tʨx20GR=PUbPOp$q(?HR zǪ#wzi#1('PaLBQ헷&F~/Vqa8iqUkA@0}DIfXghըlLHJ|kcZ$6!ق!ޤ%C(6s|aZB}F F_Ep0ځQ)- +&MǯFxȿH -T&d$>m!sLNn +L[h¸zUT.`))hHFۨH֡#_&ҟ h6wnJM4HדH}!o* 2~-q82J҅ _8ϼo ǟ{HȉȊ-:SB "NLDt[Ep`NMmD\:9ʲcFZ6-%)FHWB0+`9)`X۱`4 +.E Xv=T‡~OezwhkH4 +pPB𔠿Ʃlb#p'5[Pj%*=8HЁL N׎/e 4;j +bYV}pX;S5ƻē,`ErL.1@=OSS9HfXB<4q4Q;,d f ? N PTHkKh|ƳO+P2[tn)4_'qDmp0px|%Hem~!A)*˒+qb@?1P<責TK_Ғ@ybGm0i`~| 01, b)E:2Z,CDi] PM>rk=hL4~ժwZ1>u}!ޖav e>LE{țEF[M _|stYNR}~Z;bv r#]_d#.؈=,ף\Uj>*8=V; Rjv~p;2[`:ɞB^/ʑM#DIjjeFup NN{ZB( ' Egx:)ԍc,on_~|+iONx'`LҦP!*s&dbvR*j8ͮ#=d}%/lJڟ3I]~ŰAIOM r J"rAd~Μ^[tX5P fiNVT%ǚSb>L+S IK&gYB2:(WD7dROR.j}p+1+>8#F'H!5J l$ґ&|f5 ~R1zAna)]ĦHA!RO0%10)j 2hqbچcȹ{;M02:7ٴmxmQGYΊIr( :~PC,T`R +NGQjooxcȿE{֞I;pN i[(OJJ$}5 wTaoФis27[D Fg1 u+6frѫE2޶Gل@z5_j6˪5 +]YԾWY;Ibsc_ĚXH#10Ȋ +[?d]}2>:3Tnd"+#6.56f"ݨA hEK4l*~TM'3܍jK+ׄm/L&? Oܚh~MF/5}>;"'¤mE[XwUZP *}Op)iŃ^ fG ! >f8d dRI5-$O߶IV{0SHc@~Փa"ElöGe[I n1~T!ӊUo TazwT6p*F8hQh%CP~&lQrR7< > W]ORyL)XS)(]|ϙRpX~%/r; ȿ%22r*c?>]T NtyOnH?|oY&#H+1hZL0b6m!j`R 8M"e6GM=P#A6×ԑmY,V 'flv 0ͼ8 qMM)ZM)S$Yj&gf(w0hva{E/UCg) YN5Idih,"1g-DNgI=lro}vrkiřUOzPCY k+ctmA yxǂQ8r^p5csvv*\ټ1 &5m& Aߐ7n Sga*:v?'ܵ>AO/-_7 [9unIa*xߎp}Rr=\.gz`E_B!?zb&Ϊf~1 7(f ҞIjtmA8B/jm:n @6f7@WW>׬9kxmU8kCKkB6O̧7x/ Q5+:eS\ŕ&n ]A]3ןEG!36 +zW) +Joptn<݋ vJOl!oGy4baczYL] yo y`daOhYCڽK;Y\c2/SrOY\oisPTuD.zq.{?/ gKz".amS(Qe7ɑ ^n^=O0Q"ulmolz_-@p !g1R8!ָp6!b^9~'~wEҸȺv,_HY :+ ٢NcihԂuFsѲz5a%%Byr~rl S)o@i@Em*CnIgFmgTk}hNOax?J +RX0)C|S ق/&}WvlAiHg# D1`Mq# +X``bKfI6&xlpg;plA.<+Aч Q9wf ~q ȫoH$A(0]M./ƹA v%VzfKָؕ>bo, +Pz'R>tgFq< Ƹrc\9JR @Br=gֆk&zCU +;MŠh3IER۠d;MXG4%(ȾIHcLfB,W2`’Az7y}7)y o29J,C&j了YXhebq@@t,^z<TS֧r)UzTad V׉`ApBlہh&hiu/sRucEX2E/qxx\F +o}/Szk,ˎG96K.0rspA/hmr@x0)+г& V2}㚠g{#6ަ?έ!$pK + ZW w.-CT/$NhpWKjzgX** +;E=z,9v!7?hHOh=`95;0X]7z Sx.Bʑ@8Uѵa& +!FV{pucuG"{qYي%wAxb6`VohT%ь']یǤs4r87[rifi`T!g X6pzYth"͞( zvTpCoP3!CxE 鄌<ӷ(aBL#HwSݦ:()ߦ! "tKzm:+BN=r{D +GnG=r"탬X&FL\`{2:bTY`;Sw?GAIn!D +܍|N6>"ZUug9q:Z<@N|[%@ +avhUu,op""8)l A8Ό~&|^|m?#yD$1BSPS$0#/ zJB`1WM_MubC6Yc1 :/uNzntJO#fu1?cط +˹L>7b`z-؊_A[B=-LU47 3ޙ̈H7Zx\CH|0g +jzF(8JAhk~&|M bbřQ9r, } +pGQ=qs)6_7¸e0=84! % |[VvՇ3V4 Z᪏ )?8Psn J'6,mQHFݺFtY"5Q)]Ds0̶HB[%'Hҙ)VSpߚHpJS#jB[o,"Aݦ" P4#D&0o9JfFЈ;l +(Jf\ɨA =4!^HAoj`c +HHaZwSAiK$,1 " ުG !7UJrUF:.!>oK\u&?G'im + Bh'MHL!!f)O7R8!#͚/YO\ +nm&N _o%|}1{X-BdiJzKT)躁~ +]OA$,ߕExOkzBvzkv_oEפ0M6l]()蚓kRt#kkT4QUbt=D׾9VtPN:D_!Z&ܟ w-)̻|j6&u1lhB{&6qm5WJgHB87Cz!c[þ1!\ǟC"8x{6*je^=[`roM$oj! "@k&fA6FF4YLd$> ـI 4ihj3m[Rݴ̺삗h-IVQČh}аU~×zi O1Pz\uhLU(s1mKY. H# Ԗ0Ҵ--zi۽0ʔ^i^'b +ZLz2/.݋υfsmSBc.'*!5yକ)GEW<<|hG}kH/033?^::WZLG!d3i"J: +sH=ٰ)_#>4*rjf%* G}<lrm??=2Ed:pO`D;O.U#0ef(2*'9m +fa,y|ูp<5\634dЍ0m,gk/nl9)z@/(sw[b>&h2roS;6SKM$*bڟZ-x5iP< v 7឵26Tf ]$TVZ"咖*c׾8  MtM uMy:JHAD̝FԲA 9}We;J5@X ]SZ;{zծuACwiex+mTG_tfGm/Վ=%QmFz-3 sKp7qȦ,SUìBOtgL1Bp["r9EdI%m{d߱ !SuV_|/1G5O:ȕ5[`;4!4hDy hp &1MM)3p6sԾ4J2+v P];yWLDRӠ8s-((ިl` eL`lGm?cv{XJrMLW|oӏ/97¶GL# + +Y- (] ʀ;Ԉj-mq#.%'SKjJeᣙ0GQbh OǣO$`el6zTw(4\WW?'dN䎁FL +]¢2ULf/_7\.p4C;.THW Tq^5W,6C (.8+ݹ9]#yF E0'xtch%y!0Odb7P8{߁q_L*А:F;K:C u,!܃+݃УpKg/ {xC-O)@m=$|Bg8ï5DSƱƊ; +aJB`/D,w, О=Go;k-`^Ff'WSz,TZU|I멼 [H_zSS]G_O]zDz*)juSQM.\h=sM_Opz*Tr7JT+^OGֿ^-t攟@3Y&lW)Tby۔9nGqLl~ؿse(I]}b%}O^ +11\M68aLSĖ撴)xe +m/!:;MM׽.uʙ%Ra'=k/`C|F䊖st= ^oG~.eY-Բ[@c `ԐDߊj%J;rq?)o2%-+-|K29F[N(<}=Ic㬺HEsC;dዣB^%H*Ni]2~y  '2e ]JWK2~l.$ o.+k1:Ηt]i_S.ڈl.}Ĺ]=x? ?DmHw7LNdM+u{Bk7ږÄG-6n gd!0_^w2/WQi NeژA`,]0in|U| +-T1zW#]KE,]' y\[{8NgkoіBt6r ˫2*:؏ig Ԉ\]ZpϽo\.m;'KgES?aBAþ#[AP=8ߜ:ݼ7Qb14ഏHfEJm;+±e|֥z{{퇵2<79 'UZ'M &V)@1 +?Tjc ߉ 'K:Q-a Y8Yح +Aj +ĀJK +,˥٧ +^LĠIA~87A}D6tk;MTEcK+>Τo[FvCEu\z&Mt| 1 ]kZِyA+IYDig&gas*?#9"tgTBr}%n+Mn&s5|?fHضŏoo!(CVoe~)Z4ښS}e66VBrg7 2YDfh!T:hR%A/Q6doA:`WUWcE;ONhWcy3nYfuc[4R:{ L<<̜诌u@?BV"bCIs~r膄^V[KKAYb؛#seM:%. xHHˉI4;O3ӎCc|}CT'E {ySo<ÅvS!ΠvNuKxrʇ[ٻ t՝jm~t>S(#IΈ"'Add?O&2'jG-5q)Qm&ؔE ;rȝ`=;ӂi۟d]j6RJ$"ZVP7^gn/M}E^"ON&=kpzp$g"}"$#_HvC! K҅xINbt/K*8Yf!h0ү?Ԗwze 5QPJۚ҆z>L.;[>9hXw^yCByK&st~:WCyc e Ost)䛔<9X=Q [9:Fl򏗘+In{*FWC\Ʋ?KX }R&L sc6x2SCP4?drI\4[TwAqB^H`(?Wz1lV5lK 'DpLTO8GUGkD ~y9K?9GPv Jxҝ'@ s[@0O:t)J/W.!ҍϙ"ȉLl?dtJd8)L"/3#;\RXF"Z0"HJ4PXYgW|Db)bCٻ~ZO Vd؏XIIձpAuMtԔ3<[͈.R<. HQX[Ѧ ܭ +RM\8cЋ3dG̐\xx` wYy#~5ػ(;-ҝG銩LL&Zw<ʘc1YNLI5%e!{=ijɡSOBgHd*8<:A%!!jNվAALNI`:ndAow}.- ͂3 =Jl|1~7c1c^[>Gœj>Ƌ?Xcxc|#s628R(\κw"qj4ik~۷O۱\mz #t m[$m(n'[w'_޵)F?S7^<ާ(hGH͝v6Fк'm]mnTr|@%ˡrjP9_}TQ9'oNxt*#'Q9F4*G️fr|t*y*'4+canr6:/D砰tj肹e:Gӏ"͎1atY׃ 0o&:xEL_)TC~x +2cuDe?s27t>~NJ>ݭ9c"F;R#ؽ/a[X~xxf &{a3n؟i9\¢ooi '#ci H 3z7  d_q>ȋ|ZuxƬdfB +']߂y`+dRYwϢWv2K9N'w9At!mD qy2M ղH#@-/S5O/bWZ*U`r7J2}ʦ`cLD"Jȟq飅SءBw4{O/N>.>!T1$(x{dn0"bۑAߵnbнMnVٛVawB9Ct4D쐴\p~ dZq.>ܑ@ +IƏcE]uޤm] #@(Er׈,O'GaJGgdR +Uάp6Ҍ{>K\"?3Ar`3(_R!^<O䏚5v3ha5xΔ /яED-eϗ21__q7=WVgyp(l[TX^lƲˎ)jm>㼳pFN\E+rNH5+4=Mm.?gUBɗb#-\\#dU;N1R$9;.6ۆ\RtIt0$޳G2S>4> { 48ZmG.]%,V~5Exǁ3A & A=gC{ͯmђnA<{p"i@E=>ԶS$'⠅>BuqzPE䃾>-pVEM/yϾB4ؘ^H8^/Hi;e^?99GS!弋qM ;/Mڭ2ui7" 'h~eq3bp?)oK|jߢaؐ77ui(d`%#>Bf͌䅸vƐxg) b°-38K)D}hGA.?1bbӖѩ15WN/c +Mvc~g2'heW9hrvf9]өw^l3_ 5ށ"Tm[n-bcb'ܿGO?&k6~|L0#n7gͿygqKo?Ov6KU4Yo.SUeJ4jmͥ{t*ưґ^M!يs[EO +Wv}g12J,R͊Nh!eψˢ'-fJpzh6 sG&bHES.֠&'ukdVCZ64v0өc]yA81 d@,URV6%F'|b~;m18ff(КP\[8`Q J +p!GT)ˊjh& +yBЖL)ϭl>ҔuBo3(xw_|8BBe);8ZJWOLŮُ=>!JsH)g)}Ľ* +]D]dx$ڤ7"9B㩫q˟FI`H +=MW3F}aO2yEك[ +nu+k-])0ݎ*Y8f/i|%ZTў(^H{%T~: / ƗÍo8>eve>(n2 +%e_gC ;1*:*r "er{㫊+7>7%)ЄJnh`qzA.L^q.q,nPwxtob0ށb.lD6V>])Ai%ݨӺ6J>+,J ,^*zԭIk[YNwq":}VBA=WszdG`7-=廾 {~]Px aNla*"ǒkNCBhTWtH,hX.eXVѤs<*5Aat4l pQW`ABa`a`05.ۇjP w*)֡IYǥv2b5Z^:\I&5(ɗY㕼0`a! %(bZMY' *? rk2:(&$ʱ&\"U$NIis܂S PW!8L!+%F~*޺]G饈*NKqBMqVV.ժǴC¶Uƺj*U9lv_lY3k`w6w>ZgKi 0>=It@!>d'@I㔤x} +9$Fa֪\+uU1mF$ĤʃUd>Sp!QTFJE,N=(-" Fq4ENHI\ H:#+Ol4~VZ9" A/@ +`0Il^ū#Mt"GRiVqX"VY"Si@Nw1e}1 r P89|AY&j12JDaHM Pя-S&>^1ib۔".z"+m @qxl6pi%3$1 >8 J8tŢpދu%4ia^%> &rP +$~U, UڥqhBFlp<Ҷ5ӟΓm +Ai0r揮 HR:!Ed:ůbYqJۿM]?ԋ'#m8$Џ11jG2Uwy 6? ZJJPhI\̝c X: +SQ  )sֻ/Ru;P=BYz ~ h|\;=?NwWC̤ϊuq;)D"ce%A$H `!vJW5/AKf}1(Z2(sO>s%`J xs +'\qqR3ŊQD3]s+X 5F(?#tRp"rIGuҝwRjU`\(z.!L%T.A, >W>&[ 2ѣ mrN(4(,y9 x*Y5Of?ceQ%^mt9D0]P"<˲XGOh4y2? Gx&6a B2VajȒjWZpKDӑ~epX)i'l\!.&`VncߎʑT;|>K]Sv9ShBR:d +=DpF*j< +jWohc>5RpAmyxdg&@-kzWIȖ[#8"Nqb"JYspM]qiP܉ xS@q6= x:!@T3 ȈK/{7 ͖y^o``㠳aaתjUu1ZU j-$ڜ/pmbzjw6NipJkcɠpA D@0(zkծ"( zZp|V"yjPڨhюWAg9?n9UBuP&0e1EM4gmB/$nh6 + ge nv8a +1IKh4CiJ{ȻZa ȳ<Ҫ! ɫ-P S=6huNyIxDˉB^B@RgRx?㖷T> 2P4jJҀ؀& P +~&h$4/o1{(}VcpVS~7=lqѱփ'bv3bo@s݇HQ&r+Cw3F,K'44qi|{Re1n4:%q'fzP 늴Q'>z~M*%j0xZ]0;qq^axbX&[h{ 8~@c: &T'WLH:] <hBm0DE !j ې[̡(̍!#qDcj4 fk=xn(C)"C ^TUo<:֑hǞqrJbE0FI2}(HꟴM4urmGcu@nM򥤡)Ų+3?0`fˎb ! Hz>g4v{<_gkC>$yㅇ]HEηo!8؜-:qk Åƙ7l7:N/0{`Lx' $n"<M뚎;`[Tj_XcYw}sK 0=ux/!4[v,ƍ;Gx4Qcฯ?`{<Ш&SEwI&0W/S͡a(+|t+ˌWOοq]-aZid:l4ɋeCZiK2Jf|I>͐|{"0MU9_ uo.%mĊ$⯵FvV)?MsoR,t:diD;'9؞EMGUO_b;\vaiJ/ϿIBCSsӫjkva_iK͇s&/k@ypPub,t.`s!;CȮ|M (2[>r +{yL5BVrḀ +z?}Ӻ̍:Vt f_չ^jziXu;oک}67yHA +۲[^/}54n|b:-2ЧEa8>oRN19 +hZZxqIj+72JSͷOTv6WBbuΧ<}u|-pEo53y.p7lYU 1%dV{9m KN/t)BG[H'lF+vV=ɪ7v舺zm/Rھ۶JdgK:2! ɷAwcEW J_#+g N aCwDXW #/h +-&Aw4BPWC0)T&z?ڲ΃[D`O=&i8f' oR '>MX%8s!Qhm4*,*DUǾ=SoS4܅`,5&E("8F +~ +:UHU XR/]TuX"(x)ޟNrʚ` ܗ+)gL5@fR (:|y?1^|@dCas}ʞ_&"p/j3=LEtD?cTa287+䪍;x DjIz"bx^k~}%ܸ [}30jW-[XLL~]W?k?f1"ћ5EDV"F:[o*uh( H',)5tK|*+mx4mm7`@ID ZMG [GILO"h1FB+D\]*q6&4] ;q8+;@ݗH?vpQ +Ct>?GH|Uoj6ėNZцU'qI0r&Ez.BFm80?׺BKo0R$iEB $HNB6%.%m`͵{^2i*~Rܩ[Rxg rttӜ=u +n<+k$ 5qղZ=P,:Jd[Aw3SU9K䗁0jgc|6 nŢM/ɫ|ک\1˴ԦcoY_ ]` !K}MY:C%/qO32i|}#|TPtiP^rSxeO 4)u`ΞvU=MzpAY5G}MbG?[4'IsKQ'GG9+F dk'~2ɝ=u#HhD /o&U-`=p5 !JX@4knkͬmk-L6X@Nx +>U/ӆ._f +0%Kz"̼re[dVJ4ib]!qdW.O-~0S9 )oЦwdgm[o'$ je>!o_ +Fitd_Gb,%MT.@k{Llx8I`!Bt9͟ez,v#7fKu__ߵU/ugGKwELtXNUcֶ4_;VFCZ' ۫&[|˱G78īI +oxA?M= =Dz`KT1("x“"xHX8U8T[Jbx 0 `!ʉݮ&_TAFζ#.@~c ,QS.׳]6IDc[qGR$:b}*DЇߏf]v~ ORFZy,> I DOHR=3!y`(´+OGH"[#^>q`2#AeL;ԨMlmFL"0L|Ь5F9;Ф=az3-=gb-:3O['o@GaAOX]n{໗X2gjaCD~?!A9{c^|w+ >iBMdb٨#q'4`[;zGmvڅ%78xUOpYJƝzH|WG'>KL?7]ki ha޽*Y)Cn>I^\OƮ;#p (ܠ/"bhQѢoM`r=oIb#O7Ak& u_7P>v( +ad1P(Nk^b23nR???UmZ#?F-]5{!}!!(*%O$]t$>K[qѝӐF +VtJ]FM0|o:yef 7w2%S 59_<:r^ʋ}N/k"π;5y^\qԇE~, 18`[1sհhV`晖yshaWYv&1vxCK+tmK(S*d`{~l*U+GC+[R7ɿqf~dKcK +;9 SÛ7KKך޽ݭ]_cC~k,xY¬!)u‡Qq4 +P|zBu OHa_u +K}yO`]u~Ӽ_$Ņ++4^y [|T*X U>=WrC!Mڹmc3mLe0b.SCعRe08|땕`m+4u#'?nr]4a.b\$ZwBmtm{KREڛk'.M~/:.uZi2?Zu9͑_aFqf%E8L/iAHmȵbrjAj=̞0i][zFF\6n$.׳wsLozI "T#|ZaqZ_x5wAh5T$fB E`6N9"]> +/JhFu߅w4vE]mώ^ۛXC%#;~>^^Z-A@E.^ҀRC|[ .l}ۿ[ 6vPS7jko\].{xpNwzUK>Z `^jDŽԛG?%;pNxߩ?@Oj K̿v!{%ڙo Z6n€ڛt9C˕~; +!q[,NӧgKhQ[oad:7U7SQxJsf3Y2p@$""Å  C֑:d.'&Kr%._Kj>4ԋT8?-PN$Fn#Jy*b!lxȉ['ZPn*ԯ! ۵)Cq|Μ>qpuKUд#^ς/uG*e^v8?tqpB?^!W^gTXb]Gz-cB}JT$ێY=bݧ9w&ݬVݸ+~ptց568A?NJY ߰vtzqD(W!V -5cbٚKdZw#ģg~k$m>ЌPW_ J8d5EDTa,vޯB_.ZBҧ thp.aخ$Odf;{ٕmw 2z3ϥ/Fuɘ,Ho)G$nźͺ_oY|Y+D[! 7[i3AijqHsUQQVQj;G%t Tҋ;_c!;{V2 rPe-ax˓ ,qCw ~V.Ze02gڍ!M6 b),4;q'7|ls,yҺtzcެ~>!7k;uݒ-H؆8-h"cn3(=~I,>j!ȏA A=@Goc{pv ІTb ]mv C9Z׎MKM|>u01Bu0TۘV8q*۸|:0[/U\/8`:7 4TZ@*5kt> )HQ$㏹v%-C&RWI "6?`{FR;TՖi5k#"&0ClI +1H㉑Fe8 ĪcX"dK5]>Zo9&|}ff̣J̭wxcgm1<F8ρ'RjC+QMڈModOr86hGiWu-t.{Mt-]|F_Sn֒C{y)JH1&pmg#oq(C<:Z@)r5Jk;w'GM3`6<y*sy?h|G&Jف@Q|ltnN"F? `<׵ 7=sLj׺-N/|a ƹy]m \HRϺ; ‰cT=xBz17YjW c6`j7V/ib%>YJJ9fwiC."9.)K"@h Vw q$89y5<M]џgqjRl@z/A= +yCr>E .&g p/4qʿ~l_P CQQ? B8`z{6зΙcle$8C,O$v{ylE&v俕>>}T@LjY\K^ۯ6PG8 O JcB@/Cvr]N +? =7 +~sH*bk)>3F#.j1?$G'Vg 0gV0d@\@d4&vnN /.֝'xgͼ8@ى3rrM>"6J0@? aq=YY6ƪnɃX҇}+|1l1N~ 磤2Z` ֢g~N%stz +ױ +ҡ|@]<(4o +4F1VZa$V=؞ݱE dt[ʟ> zNs yL$#sY4ot6HG:;m@ߵJSS!A_N9[_m'闫qAP:s8z,NzqTvӟK nmܪ7/!ZֳiXJk[V̹9ot.Ŀfe;Dӄw7'un#vznN:Qv|_&wa +8Zr0!SCY,]]=P$ץzb`ͲZ߁U/fz__9lJn1T"Ҽ+hT w+ +1vz¶|.ꮽB> _8_4NFܢOtȻh/Wj(NDv{NWZJ/.!zpAkrjYbP82v k㨘?L$ÖgʄMt[O˧8TG"W!E:`Kq4Otu}iH? +8yM'g|Ӂ(輕|̤wօYfEH tUGpG#K.<.CN3L`Lc[&ii[|PkbD=uY!WMgkn= vOƑ? p(ɂxPX0 fr;U&ǦIXT\τѧsX UykrUgF]!`H+ ])Y Q6*.(c1)\vxGKã c} +ȇuY$]IbԀ~99C`MlLp5L~uZ wIqU2NMuLjrw䨱&Č礷F>[uTTD bUɡ\sf׬L_=U!J_.Ӈ?X! +BnĿBNJ7U~5jB*Tu#$TgՈ.rs{LJKG?}#G +mD> OrI+{*#{ +v欃R.9 RuU |RD]݊,ǹ_~3x[WJ~nvz`L$xZv>~r4ۊ5degD]% zd2k[59 \G u߰ЬX& T\G39KIkќW;m,Vv+70O^tsu6OP}F=0W8#vp,yduju ([WKKʓoh˩8ʅ8lw7 !CkECq8~{\zݯ5-79)ӟatE.d;V:j!LP5?~t{N2\: H6$;,+{ay>E-U}H%5KjD\rl C۷ӻ&I$rNnNhfHݘX3%VY(ڛ G߽'gPlIDvh&Ux-6^qo#9Jo<;v \\{<?mT'?&Oʁl.駿0_RDl>1I ]"0?Ŕs՝:s auk ߺ,yj?@4pbbୁ--gWsπ'4tsV۩o%b +9n $/1>4 +Tg$/g˕zd,镛62B۩NH --vJ|K *O.Ilg6*hx. +vWxܕXJg?T2T1%BB髎{w:tKH׏; C,dyM! YzX绻rDڠi4Y]-"o=mZroU {$C4.ƾ`[> q~ٮm|rk7>3ȴ=L~L}d|LpU"cdzتZF&H{Ӑx!%_ ̎>N[ڥ%O/&fM>?j$k"o$1 yڬڧEI`_AFL}5|_ӘN}\!ܪ $?3M7݂U?:Ÿ?ddw60' !֍4E/A2!ү ͆Hz@ +f QX-W& [tz|$| <ח!0}yDJBBZ8|RanýakeE`c36*a"߸9IXw@_BU#b(?ˇN/ /g;CzGwL:fQԜ@.e+Bi>C!0):QY `@8I'gT"!RmI̤ +z!X"La W_v'6B)oޚY=yH»G<wmN֛݆"'xHɈx-X1nP^)Cꦿy9#^8%f;ΛA`9S?8'#:˩.፱S!DޓʑF ,htoR{W# `g/nV 'eH +uu)<]{(!*U6uep5q^xV #7ƃ5m 3] Ҽr*s/x25IճLWfjH9!M?OdC'qvϢIP6qoΥTW3]v"e/+\E'djWĉg(_į +2yEqтxSXïƃWjqHn)d~6QxLbh|[cvl5z/eSk7 wrB|ۅ!.\</ e&KD&_V MIzZ/BT(O^Y\<@Nب#Yq\n}ӄfq2W+s;d+Jk!$T"yS37ިќOgYY{ѭh;g60 t)K2*8Wg KNjD,9·ts!cbNFs\q9~ 2{}!<&?)zv@_ Ԕ[B8*1tӋRo( +&u "~]+RVe'cT{4qmu Z|`2;x"t헵/ka@}˓!u+*O TŰ"z"ѡ@>L4KJx A4[\\MLbe,ep&)[=j_ [yL<цKM &2[LJFVNv6-~ A"Ulx>vj~Tm% E“gF^7.1䯝 +ALJO,1kWa.mb}x ok.6I_V*eTV=Fp4`(+z lqfe6Uf 0[H]DzaX R-AwŃ!$A_FpE1:j|tSp;9qxIߑ ^@^\J>[qީ%ܚ [̬+BY߽nyկaqB d^̷H?x4juРx3&pi u->i]>9+aE $<OGFi؜BgK+R:t̀t`<'dB֎d3ZVjrIIoH56~qMqRW⏜LɠꙐ/ѭnB@_;!`3n-@U7J6;4挱! Ygɉ?*ӆmWlY&ۖC-mׄ.|kgm ۾L6c6ԧPX콫qN +_/}^{w+m[] D3WxKr9E` +[Y gv)] +${}N`H}ﭴA82}knG}w}}ΰ4{m1 L.q˸#jL$ |"NIB6(X>:z@> \vw?i"X5%cwǿG. +qYkwbj pS) }ejyg*`m9GN([}u4si,'0uPI/}u)~;4N[y,ڡVvNCo+p9xw[ ,~GCۼh0Xzvw1ifS3(f#K5j|Kf8֦~=rB x@w+2 $2pi 6D<6*&P,#dN=`4< lm K<0 Z<\ZGT .d9!n Q:y?DJ +W lL6sM>f/IAd $icf0[lGr]D5%0hkThIf` W_֞5N 5ZU}ܨw14 7қP!u k uK?>}@e6Pa%Uh $6 W8V5PX놾f}Hx~c4]x59 X3$ɍ*cK#f0`}f FRDؚD0f q67pwŐھI/w6luIOيµx0UBX[YrRHdaꞴG;G<<-̼9w;߳[7>{{p0fUh7uypʹZxroV,$jipC-[)p2.&I`NC;$ЈgKb鬯nK`ĥ,.AhڝXFL];R/U |KB뤩@2ܐyvWHM;͟ƽH=@[^E#]P^lb)vIep`1O*s"d?0}569j 嬶5%JA1M[VfmfƯl=vZyAџW1_19H@Q|cv-[L42HV1YөPzt>?-o^ Mp~_CGIM7rfanpۧgQd&+:O-|dW=N]Z1U۩?F䃵fgyc@&O|4W|xcOtCy_:V:۲C2;8#}׎X9/hh(2jVY`_/#̣pZy#Xr¿ ~{=Gޚo~#j,\R.dC-Ցe+1Gd8w"DӾ$y 9DypZt1xY_ý5 :Ffa͑FLmy_oY9>?L;8 K3mv*j= //Oc[ +P:?5ka?#ɏQ*O4U{9,c!Vw5~6F}YÉe\=V>|p8)7˕nAZIi˝o`q5,?]ufqSJx;b>";`팁wX]oK{37_vgQփ;n+^RǿicƳjf>u|E0H(V@E,~(F/ԗw8*؊x/k@$S5%"Le;L76yf.mow^Gyסڮzv,Ff'ol$HoC@>|S:Gڭ󘱙#ܨ% +<~+U3K0esʳA|x Ӻo$G^2yUyҷdz WTtd4eCZ.gxތ|oy[.O|AG.4\Ŝ$9ZL`:A\$a1GAvT/+k +\1*Y*[X{e3I"U$, z1*7tX(/$0D 4bk%4\ư 6]Io?H)cTQ;Z@S(mlEGwFjnDjIe|?KsZU{~I%s-­vRUEJ8hoF\D} )AWh>O5MNİL6rZ$2O{<+^)>y,"qb}" m,tfDG'Vʠ(CbLa"&9O;]8(Qơ [!{/(4K4 R: }b6 2Fx}d"J^' FEēbCF8G"lp G G<E:6#l/+ &@d?c3=Cv&`)MQ4ˢa7,6"wE hX!d@p7AzrjQ5+"atoDFQ?Q?~'9xg .c&JWЯ?ͤ_FRi`A6$e`` gj`gҒUu +/N+FBL[ #<Ğ-x8M A[D:95{4Xb9 `Uj#2l00`HY 6,0 < 0O #>KxLV p$2S"1"]/3#ڳ/) %G`#%A`P;+16pB?5:|1ل7:qL)6qL)cJ])5O94>N喘"9F Bs!tX;l7;au70(68 4W9 6,86#pP@~41hIRe*, [ikvcrFo}J}oqOzbFh]bq!HæCi2G2hL3?ɚrG߼|}\fOKnWSOYv,ѰM"M>k&J]oL'4ӛcg~R8v})+ā6u  +/fGҸ}`˛8P&&B5| @ nuu47՛|@o(<(ޥ4_GÝʧ"Vx=[Vq:^\N`y%}&_vdӢ#6f, 7^[oE]VVr߷bq1ЋC]mof=7&&h uoN:Mxy'p35haMh4aL* U|y&Y<{&uut!Ol>P8:Jj>BҎ,7ǰE |t/bwL>چBYufI\ـY EĊFd n U!܍ TrK +lamTaeekX{ 7&@`S3vڵ<֎ @}IAK~Oޫ+5XkjPSj6Ki8󭘻 K $k^ \2%bl[|[հM6wY*\[V.#0f[a~爐[0T7zqznn>`ַO=E5T6=(ƙ aP.^VCw}S5.$; j֦Wj4.F> + yޘO}ia6qNKV2=žK=>6 +2k qByS9'k_'7Rp`>34$-d&ic˻FjWcDFS5?hSHdܽzDa4Ж=.h*im_#e?,OHc}An Ґk, + b_${' <`O@sڦF +fmVi*o.XaVc+ LN+1Heɓ2۵6N&ֺ]xH%*<2;7 v{{NDzp9®hoqdZe3ex@s[+^H<+OEVfN +}n6_@f}>n#B);p<*otN5$] f$.Lo0hpI“0)\jO¾o]oIl)Y@&֙>GB-41y5]/Fr"ZUi#?Giq9Zqup:q=ayE B~[N+ŷwl5 \Z jMf^A7}V%6m3 +gGN飤 +٣ DZrU:dET<8 ضoBUZ6_D4 s%kGXc< . иv@l.,X;4;veD` pu|ɹ"xO)E:}ffuk/Vl|Xa=у'rVQYH~XpFlഘ%8հ#[G0zݮ)V>sإAL,uyKǖs"zt"YCۙv!F` |;9'瀪6??v6 +6"&'nklX[p"U%v3gڂIwhpDV` +#Ŏ#  ز $2l|  ^SFɭ*&&Ź[irZ%eȗ+FA@a +(>ffhQE۱|")$UR.5K%P ~P,1T7|:XқkX2ʊͧlzc!dFu8h[Yf4ٗ[|`Sw>4il("USgt{>}@\$WK]+p#urbpa +Q19ڋfɓC 4-HxFj8XtBjV ibH'DZ/DO;Wx6VMTJ^҉UoЋEQ7+ r-xpE䶟 }ѷO8[雱Ţo\$mܟFtntt$jN!q g`'8oA27hFDC#p PI`ŕ.{M'H4^WW?Y +3huI +.f!P&(ߖcfoP3?dg4&QWŶfc)|;ҿ_BLJhe\uzϠ|Ol sMw?5OC2G/t_p +D?}Z4ihܲh_;Cwe{jO#A~CӸ;Ʀ䏚<;5vD䶷aUl+?#6xX"Vj$1}Lb7툇EXݧj!X79a:534\tLx*}8ezu"BΰUe~j|'2%8Ei]w}q_Y IWnJ|t:8BTSOFsS{Lo^nbz+ ;=@'|}ڑmyX3AcL=z +ۂ'?m7pLY{s&e)/}m6(}nF.F6cW2ָо'nc˶^2j 4qrSR&;TU{p|/ +pD}vgJ27CK:z[1;yK>=ϨgӐ*W78Y}#ǵP͔#)Nٿc`;acl ^)ˇ;l5:94)QIcF~0CLA Osq)l:w pbvN՟nupH.]w^>U{}\%XՋiq '|bC+`Cua2ڽBU vU{{I!JN ՕLrk7yfWN +8Wy`GY +y|m3]7Towr2 fzDuuHf܉Zí]("~0Ŵ3Yyy2yQ K [ +hKNx0b#jeDΦZia;;<v oݫ͇(_Z.`vN5IG0dIF- =HWYIMd`X"t ]^{e#'qw#y7wX]ƑMbAp:Cv#"hیQH?Q́ޮkǴ7 Z#ZA[K[ qtB>ѲOeoA O,$CE\_ ay7o֠DPy#ogc_{3C;;iȯC;U)!y3f$ARcK|6B(6@'0!+4ZW ]63I~,{"GcVɛ$}ՋSǷ9 t+^_QĻ/#il1Ic%kZAkSwuu\~eT {F}J p > ++yO+|(_B!8e#.K"eNH ;ꫭhdQ`,/pkDQau41FQUh2$Atϓ&:ѢCWzƚGZ \eNr)}z@uW5i ]Z3nۆQY؉:èSu6qVh;C_@\=>8EҜ_\"To! 3l VP 0$6[,vSS/3T,֎La$zanvPhu)HՔ^'<;:mKр +4WV,~'wB51\,\E?›NMJޖwHwNdBDQP먮~/]ԀPl"o,{02CJ9*>^%ز[%m,^)I/ q `!W&u,Ly?bHJ$.aXg5'x?RBm*#D8!!F+G.pn$ q\Zl6} 2a\yjW5a࿴U l`!bh\{"|F-iz,j,m%G_e29#3#NA9,=5?b_:$,8I($D%|2YyY>'/,Z8G.PE끤|!hZ27! ?TarPS%`, +Oۀm'qi1vkdkSӹ!8*;OwNYuP8'PBk=z.M T5Ce׏o:2t j]m7R.Qgvfgia!9kdiՂ~Fiijm$ҩޙbnMEN6l6̭c?Sk!klŞYѓ'&;:~ mi#ٓjj$2Z34h5(W<¨wһXtH_f>)ByBDyj(a+G1#[\Ǩˆ0uzsСYbꉶkia=<"bDS-,i\ƻgvs-ǵ3E8+8]YRS{/W~48Qܶpv#d`.uD6[H +ᯖ@6'p֨߱n7jdh!c@S7ޓfll0gį_Et%WVw9<"ۭ`v-~?7|ya߇'Cfՠj>o-Q/QHͧMڨ5K1aА3O"E^HXjtZs"2îL/VzCVM^RMQXj‹h)SvI!j.]x'Lå\Kxf_6lj]6on!yXu{ =*9ޑRzz%BO4&j!3eSoۭw7!~Om|?ScnbpR6(2_h/[U<Ǭwj/~X+YV6U q q\^X1uT6˰)RB|=E<Ͻ3k;1?BW4tә&t&mCybK3,B=LKvԵ [憎`5#dam.fʷd}3+NSd9(?ӬsWW^ +$3o3ꑊMt o6|0"VWREc&D-՟wES^ 6SdsZ-e2ZɒzibFTiRlU<[2Pbj%ѱ{x`{CL5-Һ}o6( (4T(c,j\ݗҘ0 m˸f]Yv;-1tۍHr9= +m֛M8t%2 SuX",1"JBa33-pLR߻5I}`X + *z?z$ [)$9r?N6(r1>:9M/B8TKI? 37Tg7Td77ʻ4Cn(5TY>/?%nKn ci7|ʛp>Vc+Z$z1[}ԟoѯOO5UաؐR2f6Ġ6~mr5v!;?_^z,<"Z(BgGy.s+ֺ^mrQf;f5YKh6ęWzX/k˒HAd7td_>tl~]̮n6Ta'w2nhWT<; ƿ6ȸ2ujV}-.Md7%hml^Ѩ\gx]۝jdr 2nxxőwGе-U slyUOa=/kC/\]K-Nw_rС+V鶖8/5ל1iޥjTʣ*i|YN<o{P蛛dV 6\0V[ Aidh¿WDD@^-qυ,@Bb.$/(iBOK]#إ鶕zz뽟XlѹI { +t6"1t>|F?yyH2?]d@6Z}TvOL՚ +j*vيreC3?.QUT7B༪D%^\0NlgQ+^Vp5Z٠lU޾DUbSwq HDZnϹzT7BziȒ'W'ydM?I< ˑ>Qt; ȁDtjN}SԮ&|T3ټV0;nA`s*ރ]VܱvmFݗ|>^SF !NxE:* /]ܻbaK}#OBdPntd6d#ze/!`|a$i[Ơ^y/צ=Խy=S9m܊ R?(V\E-zYKhq_;@;mI37sF T% Kz@A  sJ)ء[;Fkiz.|V?[&`px.<"_׮zy0nD޼gS;00 q2γ9QYWԸ0hs7 +xXY˃=zLo?O?Tx[>UΞwS_pp[wx/aWeO:C٠īiW捬kHޱ":x#"]ZG0+˝Ux~V42~hh-Ugdۨ긬92C` sH :JP/:! W%\G! J.Vbq<\u2L~g4@YfJ$!n [lQ{gn #: jjz*"dn޶%灶5PqF۹Wl a1xW)kee(ѓV_K{C`hJCBCh}'/ Dj&[Ww0ךPݦ4>&bEZyjVXBH#D[5g)D.p +3lc zo]O>6KCnֈ_Xzک[bk=jp.6 !fj @Vn&5pi|RLyYjB,O?>tmwn(n :%U\객a0F&=JX0ZBh| R!vK#,q'7*'9$Sk]Ϟ-wU/xlL+|F#.?lڂ2_ }s`?7PsQYe%*cBm/OuzLmT#]ۊEgTy?rĻ HNdO>FqDETp)kP5 xvA;$wAo@)j.J+rYgDv߿Չ>jz !F}ʻ\|!Do01u|?x#?~ORP| ,FP04aV.D$y,d˩Ѫ~dOڐ]ڙ5XRQb[-rQ[Q,CfOAӶw.QC:RD]=*!w4bk˒52xL]e>җf4gN˷T<œ?$6t0N^+t5DUoN]*o=d`337^+[ #Cٕ_6~6vUKq==ypDX[^3+[7v2x|<J/;3oք-COr"{VQCm +!Ԫ/ǟoImg>X;<_ ?VDm߻۵!3Q[U(U !qş#9b#Kh9-]bou@I/F^dh`3@㓓@H1y{>g75k@hav 5 ?{9Qp a.^#{q5S.瀳C}`$4,:Zm6Rw۲)awd]¿cwVY";WNg}#dUHj7Q9s'>l[ l(ai@aUU5;sѰ>|;%O3>H|֝,Aa%1sp .[G[K|Cyj4ÎČ6)A O7ZuO+[Fk8"?see0J[w֮_C^KVvm[Ҙ+Q%W>P?|\%k%M}⑕2YiSl +?m +sp5y s/YBuwӊJ%KT4|BֻJ\gKEn%6dp Vu#n.@'_P,q:2s/4xtψN4{{܉{*&H+SQX6G<OsŦ;`pʹ>HL_yUf3,&b")ٴP%[M,ꥂG&xEƜ:awf<:Ǝ4M)[70⹅ZVfh*' +=p)&j0 tH]gf a(|xoN"0@j ^&{?M!Hlb WoR㟗mPj-StA+q,ԔF?{d_ +',jG@y7LZ,)YNy;G;\{SBJ2qvD$F +O&[-~C2@Pf:O".<u~+8\`r\\rx,yrkgV%|ϔ?4 smU_"H+U"||%1L爩oUMIx\n\ Zu/G( j4Jo0ㆵ{I0.%}OZ#ƪm%nvMR8Tp9Z!TL %v.HXzU}MԪR/Ij>Ob5PQzy (K!-"HT鈉߀Z3p[:}Z»c6hm/ ʦs#e܇m':4d\AaAW2MOMfoqI%o`,Y)יI +)+(@_ TH}|mB {a>5XZD lߏkgz +y +QBMI_X%7]Ao vf +A؞FjG?Fc3?&},>*E=G]45wC%XFTDK{)a S}s,)%pmY'`iOwZ/ghGtD.kHeÂqlH^ *$ +h 40` .7~f[}{`LC@fCS;a<2`X6p*<Sx$xOoVp9c=?Ao$0 +8E1 и#.܈*k3vrk׸(TV=i+CaUXaӰӕדXik5F¯HB%jmm g`E&)v]CCwH6qot%YG0*\,9Zc2*#Q˾+gYb.8D3zUc [rcس17Aqj3 B1Bm{rCsԚT9(ռ4v٦\eʽu\;^ptJ?qrIlpq^0fW~\pslnLp:c{e,[ECxژ s'ο%F1r-ehe̵'ќ6[4DmmPkXz.~BIu r IaoWc,I`G`g@lcF =yTcްJ}J5|*#fKŚĭlȷz;e2{K贿7 RQ,q+u-la]) ]I-H;/q`b8f%~50Lt[ 5ʆCÑUԥj >LlnLퟰŲy'6䫶EV%ٲ*[Il(Hl'6 lI +=aa0XYH9O 5&C7K&nC,5e4]l>D|0=n:-]08*(æ,q}+;n.7;Dț/%N-C8Q"ľvdͻ'cb\ ޠ%iLCDj4se77t}(}c=[}a{ە$폐?ʦ7yܬ[&[ZٺqCnv +vo &jl٩F]<9_ǷInPnmLPo9ͶC}C c7c'<<6n4O!x`[K-oH6ߞs[hDJ^N,1@n5qb`8U;l#9ɿY&E_ql#DxԨ\X{sM#:"9fuP"oguA4tOпE ]ڰ_El@9Qـ"b42E_t8h|x\ۿ[ +޸k?V|l$)0TPpg~:8 OzLy8&A\ 8qYxz<(˕7Ѭ5k3 < aO;^qjI Cr +hglx+y/𜑽Zm媜]00v 75z!Ch$b:\V뉶ͮE"^>*zʝDm`;cQ QZcSmՄ%6*qMIo?.\;SCgɞv຤t+=m^[})ߞͿ`µiD׵8C.{jЫ@kBt4:Oԫ=P/g yd@,9;* Pc=K>Zy[ȼ&hao V1,xsIn4q[6Z pm+7vUsQsL~F!wih7fNBȀcV34429YвVܢ+2utVh-qFí|\'}rx+m Ddلzsf#3>郸&V៓vaPZoow!'fGx4/Ok7ӷs+jDKMmPeT|?xL>%VDF.D_堞b=MEbC6h Ay2!f.X\#C:MDv0P'X\)n<-$N"aA$xJw7iՐD\p{'h􃚼%Od/4e +JZOnY7·M#:$ƫТ&oJ@Xyaw0v> owV"?rM/ZDv&8YJK͚NV)lYGqA6'(ܕKszQkGb :!!PvF.d&<#ټǞ.ha#ss:d5uz"1Et9Qաr6V_u*$xLvS" 5dyw2cK$7lR.՗5Wpk{=~GZ13տ`Ԏ_uKlLn= QxMxI4:_gt[l̓ \ # ;xx<`nϸKs/ VS>N`ݫ* +(cӭ +*]5*^m8]ͨ.\ĕ\S?g$^`?S .C2\ߧ75_FH+ cb*-SXܶFQ<$r#ߛ]:MfFBa4|ZiP&C[i^FJK,mLJ9>>9d1FyxmYl/3흖mU,Xe4ycGl:_k])b A#\{ht&hܟ!a$&HZ(lPz'vYFT+)ĖTkT|v㴋+TBDž oW`tR|C9mP2ZWfq6զ:NUcl#uƨ<.!7uZ.cS4|jmыe^oF4Dzs8EuJq}-x!\W <ǡġ7ᎆAyNC]Ni'qkďr˭VFr|]3isMZx's1k?gkj /e=Ep.\{N|J~g\-/ag|_cz&|]ȮxʂhgC6X{h:%0Ff],9MbBԮ֚ڇ_}|Z+w˻Y?49oY<2_^f~x /~K/%?PdžslA4bHS;Fr'ЗN2D>" [ZqE_B?J,v$㽪IJCMSDb&j&zs꺡h`ѥ3GHMьTE洟g6A#ڡ5.+ +Ⳣg͗9f fiߠOv|cԲ=d<+X/v;iǗ=ӎϮ;mk2{9-<I O :WK/3ty[-qT^l_,FXR_z-qޒVILzcTJh⋖rGe.FiK DzY(v Ya "}›t={Q.Ǟy(?hq +c3\!c8ms?hQ"_j}I*$f'׉7L{JU.%HA,C@}ɧ ܵ=Fo\rUZB&5qVI,DRFiX;@ C~}<gOXme-. ﴶqX|c4>N=椿{1[ K +5Z6^ +xNE8Bo؉碫?bA>p*⳶s$I  {- ;rcXS!@66OR*cjLz@v"x &VJ'b/2^qU;p?VZv}r#|,uҝ懃!_O}/#zǁWXfڝ^5􉍺9HxG2*ըJ:W+lח2pk'_T8M.5*SF7ʖܑ|2u<5+ӻ#3ݛ@? 4 NƁ:َΊ5^?*k,.S1K} rg ®ă]ϞfxIWq h gZrwܑ5Gm8AEcm.KxSܝxS9Ȫ*syUY?̀}w|{*XLm|l񉲉ƭt0IU7-W&z[H7E̸2| + gԬ:b0.i:t3T1{,1FQr3b~WԊ1Sߓ/ֻ<X$MUvIc; $O9F='5rY]4{l.-q#NΫ KE_pU[ 50-0辛m,#bhsp }>/{1( +2v +͝LV;U6ňNf)ddƼJ%N8c v);]/b#]n!r?@1ӯ? +ĩ$ũ32T?NDIAꍤo 0srS]|_D3 $]tL*pO?|7&}h3e̞=f)liYY~4OYX_ƒ"ydafŹ47M()u:C(79Ե4_nrB^#4a\FyEn_QB +Go!H)hp z`{Yj?`sdz/xOώ/_w/E&ReЊXGąC‹B76&*eJ@g*voMv7v]W:mb9U i3ƻ9g`*g쩰%^eWKv{\mnL.nMRmOĩ;hKuJ +R54Jm+TpKz{b=8?8fx*o;ޝԗ^䑦?xL܂&%J=y9v8{·mPl)q9װ~6wEx71̅=c.6 (u93^_i~S~b3S_ܬ/kҟpצ~ki.(3n\O`poDx=wp650Hr].xc48Lw" jI\ vTh z&;<,OI$7~3_?rlIF׺'|T|wQs&.2bD39yͥJGw/2ylOyݍ:H?^E"sppT#VQq ]'],F2I8|q^eWp#42zل6iZz)<#[猪[svrmq>,dӂϻ.& GC"5ӥ8jg +ϫs`C8Ҡ0*:PCF U{Ց#Vӑ 9MZOKHE ֦ 8CC*mqp KZ^?cZzD-X`T{TQ Z3*mA.ᯏ\Us"yI" .$9Z +;3œ#'$`sP@R]VhiU (:蔼4:r,;fi@cwB;_x ׆u9uZ+[[Fsy`0C)ˆ䄾fɂCUAqsNkh*/s:+B`?fN_x`bm5[5jyp~Np.5fz6n>3m)r C4EDj/:l%*jE*p؅9IgZEoCVIja|@јXMԃY bL!ZR$7ajH~Z2EP)1ªGEtqaEP@lA -EBZҭ9djW  A)m(/dCjKAm#8N/K +G v|pnu9 cm T4Dcbu\[vvPpD(:DC\=;_2pw0 WhŁmA +bBDt+^,.XFEhEWjDAـ +G+"pĢ%k.bDE<: DCŎg `σ Кc}DHk2OoN괉?w,%িε,/<8h 9hR>Y3~]\@ 5t6!u 'ILyocg+7%2"͋/EB-"Bc4̃mQI{>ҨWr0foG>p5ПeUi' B\ @:Ey_??#"R߄~޾ i-jfSD>0KQmr%mNSXy*&닕 j=&jY"DW +T.ZrT b<5(8Čj1ߪ4+ ,^;ًlY{^W0IJq3H +@bϸiM L,S3xi<=[04*U4 Bi7 5B v"3#$B@Y"$ TmMh=ڛz+1{bK9h[ WCfDjB-t&k8Suq֤Lrgo0ss"1U+a{=(:y=9=-5~lfUhnYdљe+Zϻ?my8ҽ8eRcYm8gPԥqwzhQ>HLd~o +gMٸ=M{B1H 6^m#p8NS0[S젂Y&*$1^e"{Lٍ5a!8)Qѳ̖s ܙJs DCJ" O}~e ݱ^-bי)YfOlt +Wrƕ )&@ל;z鈑XYv0;BT&w!M xBk;c?Ub^zBK$BNDc~%qq3@W&>O@8GF2%Vr(@wPNtWօzaX`7[T "W"z <0!p!&gA ~IԀ:pX VPD_6ty罇\<Lƃ,IVaOcYMLFg%z 5Sb?3G""4}J,3B+ -g;RZu(E(!㮊8'":01z_I, 6NȀZě׭kf{U BS bYWE>kRz[Hi Nҟ5Tv%̡)wu=|b95*D \IئˡGxb+Ba͞=̧^߸XO2p +sټہ6u?K)|y+f5AΝmw$=gI*ळu^ +N)K QfZxxCp1Õɧ4LZpL9-% +x]]jɉ JDbH酉X^ +@0FWm~QRf7 %jXZmCW ?'h;n=.mq?3|οe`,hb{e] N۸VrE6ȍAg\_?&L)oZ2?T\;{ﵾI3U_w*~w&ѪLMtDŽl @f Iv1Z/3@3Y%2m_T j hض rZ<Zit! StJVI/h;B(˘ ɼ;ʘ^ũ˧Fub`Qj]mi_*,$e}$LU^{ۏTz֥RDI8&QFXjne +-8՗k-=vvb!2zZIyƲLkp)-; /IcV)׬gp[~9EjWjܝ{$ м8J &YU3'˿ǐѵHJӯHKӦ,rqRxQ.T(5`INnĮ>kuݲԉ[6*e)zIĺ_T}-MN!>y '2ܐ)\ Ӛ?RtYX09,Wi @dn8Ү~ڎ0K%y᪕<Ư 2EB!Bi-FNFFrhRus 1.PVD>0B+^0&l@M voL|Kzi{D /?ư'%& +#&сetw 7; jO)y>~w {b)0FԧJ}fUOʷۙZDoFzb&жii5etުԴ%:>ow vN+3Ơ{c_<<ww?]#/ 0^Є϶ѐKIt-X<7qjP MrJ\b#a;Wujd=.\ΐ ,B5:|2C_!wIhzImFnMX>.*Hf>VE빣Ff/<)F`S4K2 o4h$N +Qe7@ze^&^uD9K7pb #M/BZ\NFGKS1twE9epW?kis86gO+ i$`H;xeρ%+E}aT^uW}D`AXI`׊3G]7Z4\s{_3I8qrf_zz;ֿw?9G~bA#/?KNvc] +L1gw* \7^$ %(O Ɣl9f-vԂhpsRŇ9-^g,n) ?RCB{_a33e$Gu9ۖI ?pOXDB@_d9("kD)0Ws-fUtȸt#8zΪu0Ĉ(c BOmG (Ũ4G~e"+3Q_x}Jl¨N*q[9]Y1\`<wRLá,+R~z3Bv@-uNiQS5^N2c&dhzxIj2ccODf9LEK%| +[Uno#AxJgڥ#D~?8?$ S1Rq["U߆5aB^cyYx蒪8|d~3I y2T=sssW_'~gI{{IWz3D g3n>N@c+8i(@7l W~.<>LŴVp?^/َ/xr}܌ +ӿbֹxYL'.<$$Po{m[`Wjqqw?UFpٹx!r+n60Eu Q@ʳlR$ p㒒8PX2#gΝZg D~zySO7w5(<톣䚄6Boٱmfd#n'M,4@UZbwЫm3G$xmMh6 I=́1諫*'3K+;Mk6(MaZo.f{ζFR;6.i6Q6 #Qͷ4tMtQݤ!(T=0On1^"֩XR^rNlZz+,ue/Mipt)+HJ: ZV2B-+tn".s ``S@j:3@.nu3*]s]?jƤ$w֔ΔTfKgyg.$HـNN+Jݹcא^ɔQ ӴLj~5dє\\J\UAnVk>De+N\pKzɔh<pX䀁IQ2q!zIH5%ǹ+ɷ]mAwtp4=;J۬d#F^嗃ʨG76jJVۖ^&X5Lfw@9M%zvHĭ9QԞY#XƵ&d7*Bp;kMg$FfxѲJ! dP +-=KIEw-v{H5i[eyIޮ횝 Q\~؆eorߗ'WzOgƚ,g|ėwj幓7ީyfőS'crY"͜;ZU)^v\҄H`WyNݯ٧$Dw#tzf{kQq?w]ؖ' CӿuǴɧ?~p̚/CDxZwRfʇ?ą}_M-bZEr8F.UuwD,ݥN Mb^"闫D%v3CB}x9ɀIčQ]םU9%6IڏJDZX8 ccԴt?Ind=kz~ztn-DvU`RfQ5a"=y#ɿt7{q{F=|DF_xfLKӉtD z|1s(%1"gf+1oY@Ա8`>c;D Ey"Gp3>!zKK5/"h*%<$&!pOtG-nd*ˁp!!ѽs#Dw%Vo,qݐlc}7y$j| +{y,o +ŻXj%;1y`FR}(:s5;$qhHddsI$DhF"אD;.2HCm;X=ܐdC{rʾ,`KjN2[Bь,2h|JTgp/ n4|)'ǹr?m'qI36{Xz 7RIGI7yxC_O:~鶵_~!Ѥqj//dN8BGE[: cd +NHfdMOEOG([myo6$ 3$7$Z[q_2f$Q*b- ;=/?%% 7EBU8f9n/o# q7`}U)½j+zw7ZqvqMO!\wP4qxWt޻WBqqTƇ`TkSi@uҭy.qsre@q›2q8kHʘOmHE +hBpq"F"#-)>W-1m2x'Ǣ Y}aL +kU)6-AYb\Bò<FD.aHnP"/'X32PPdm_k5$ T%MLv0Lׂc;@ig!^H*k/_/`4ƨNq5^ĸ-$%}8:§S)*C~W)vHJ'Ig_g_[3ϿBptEܽq#lű ʊGS\:KΦA]N <424eY$,"lVH!<)2Fiǰb8,GBi+mhcQ2+(%Jf%q|dPP%> ,qBIl& H7Lp1$T'&]}]s] ڽ8W8]UiJNWս.klL@[4>05j6N* )UI +ָU W ];#J}_ad{SՋnӥ^qIT`du & pS_?!4|':xiGa]paxfI$0y{<>&ܙwa,0V~"qX+O1FN0鹰s$. v sj^" + +, +eeH`O˓<}q%%Xr TeOG/G6)-g],,s,5+}rX5hcsN5pOO bn}39v wbSG%dd.\Y¡!~uako-(|}1s-ć +GNWp_(5- +;&ojB[egH2I/XCZ|/~Sj9Ւ*H? Xw?RײSFK6pJX}$c| -]`UD{4eSx0W ˎeB }TZDZ{7RKw(*NԖDv*bS٘F*('>Jc@>Mk\^̩A%bdy}g|M>PKV ={_I6vOanxD=%3óɓ}N4Y2Rmpx~yFrz, +K +BYĸ9YؚӑxX9ڃGy}̋%0׮[{W`'Bh w%+^P*|&8Z$̕>>pC$fzG-/BhBKuX,ՙCoz9^u2g[%(m(2]CCpM[4=*=@0݃Se*0 ?^G2)FlrQ$ћ ML+Pn6}6|h7i5I$VI>peшIrO2*r 5;'I=`"Zr}Bzܒ_ZCb2҂uܹ|a8@pa&u<|6*I>5xҭ=5VFhZHô!d| +LPԐ2 TH)ET Yy<]I @sƺg|nz&BGwEd!Qʊy q|=g`otv?Y,2t]X!hY=BɅx׌=D#//ξz6O֫ƤFYO;n(brvZ )< 2`SK'. @s6VfԶQ@[K4\VWʣS JRap(boB+d!O $(;IFQV҄Եl"_P@4cOȊhPu )t/5N#MiP& ++ +7v2!YԀ' Ta+\Hh_(ȴSy*3O"JBKA|JDX$A{z&&Km~ +JBVƧ'M& _V6\ +cbv]-4(7ub*ZSխa9.s fj.ݦ"`G1HC4֊{nǼ[ak|"zQֻ8Ӗ=A'cmEۋc%7zFZ ?s w*O>k\jX(L7P(w(%ߥ7X/0ybȅ2ط}&`&60\a~,$tQ@{U(BU䓚Vm.h:~Ŏ0@$MEVF輇lNo/-4Lrw0wBn>֛থ@Oa]>鈦~ !ܧ_WpWE:IZMfߠu>V}{N\X`{vХ)|D!Gм5I>';˘?Z髃,UW0Z|X?-@~-׎ OY?zS|}1^;XֹjZpd.e1?i*r}ּ=t\t;ž +Jx}a}-G=1] (92LǨsn%Wq : ۛ;N{*i$#ﲙ$BjU4g +DfD_SAE =2?=010rY.YJ+tݬgX_9Zg_kJgh:"mi,}+ _[ +Q͊4e|U#D 2ą0`1|>Kj%>}HqvZSMR1`%I$y7Rb[|5@Te.C7 /ZsH)q$@ '2 *8Fl+Q_vkN%O+ͻ2ퟁ \:j[܊5UlI,%?qW36݂u6`_oEW6fD9q}$U'4IAIzjױz U_ q![XOOވ9VVIY|t+SFZY[sXVbGeyR _ab,:΀d^|?;#|{J^mzKA k _^=w5r,1  !.ͭ*s@1\3P^:ͅ"R1J'߯L^(ZZ4Vѥ @YSN +MML/TUp@0)x7k|յ4.յz-+/TxkxJbQ +PҠ^, ٹcc\y0`5= م~6{[YI~A?uʲzŦ)icK1_)y?o^듪#)ĭU+/Ӄ~j kWR̪yĉwaQ/sa@XT l6 +rVj=SO>ό(?cmg }4k~XΩb{F*vL?9 %pBʧ5^}oEѾXq-~g^VɁ-;[hoε/{߲NE<x,`! }V^'G_{XPkڿ-jW­cȉ[~c!DV}oIly<-!aRö8 zm:Ǔm+ר+.Nylǒ\I#HFm0kݤTZ?lwBЇØ+i +j0Pm|r͞K7_GVf c'j$'t +!5zAe$HdЈ﫮!t0(lxg!F̻fë{*Mp܁onE_TE_TECMe>#0'2~㎒X8%τip5"%$ǖ>K0qtpj.ib 2aF \~ww[loci;~AkU)B7fkРn\1{[[Z@_õ{ vܨ0 ך[sއtDWT?npfp4iTa=9=v|q*2,њYH +$;{3 TC :=vzz͚_)e&Ak.wzI}UȬt?9E_kf'V+\16;~.JK˃Vτ#Go<]vxZ|1H?b7+uTlM}=.qS_ zxZ:NQ+vPu.N =ՒY丨Ɏ\Mu8ԆFKNr.umg{NIӋdIt>SUp@ Rb#^3cK]S,}NrT~-qC[wJ¼1m[ןgC𜉋͉j#oCnWQl7Q5x_)'y@[}0M;V *Zw9tnЎ7!ZT [uCm̨v'ԯe)XI.DkX\ZWw>4mzpQ#=49:lҍ"GD$=N}") _s3fM=l$،nޗeoڼ促ޖmo%'l=m&ܩjPBl9qwG;*-^Å]6m.#7nHf1vIɈ;lyJ2{` +.'RGw~LlMډN2}I4GGS.q )dy<-G!3t35U|0,%6a+KI~'1 +crě`I:zݪ?/M~Ɏ +Nm6pjϩʩmvzf8ǩ-=NmZ-ʩ >N%Z q +GTP6]$u4.GĮ~M) i:2 ]ɠ}A0#s4dG3襀[l8s"*CNc`}繁hnxI ]3檏 ;I% Uɻx]yy% X ɑ V}h-y* ~I^dlCᓜHIBuIc}A;k& aLW<+O 6l2#$~gIYM>S;"FDΉZ!TaAz԰e7խa^A [NlsBc [kܕsm8BԊ伝50&˿˿VW_YJ7c5vr<${k=KI(*wa1^9};z'!O|5c60X?H4A +zsE'q_"Q +H +K? +!a/>W wl$:yoOvP[ލ3x{3(,k\:jn:E:$ڝ1EZ4D>9<9< ^GfxU$;"wF^ I+506 p̗D衴CC Hp{#?! m"*EciG(*#lQxL67e\/J!:Į+Kcr52eCnbwG^)E+(˾"nLx#Ri Ef\, &tZb75`|W^)Pw +D+m1T{ְ)<lTմf*B9F#Y8)ig,@b.xA{3-q*14L{;겓o )$PNl"(H[t?A#1гسg f!J#NVa<7']-f\6h ҁI9$ xRFtRx[n. vR8Z>"Di,ttRQ/zYA e +5}X3ՍȄRs +:)%x6ɿK@b+(zEz"1# .2ߘWfG|0XB ۴ǵ.Qg2" C%&!nJ!NS$/'3͘f,]liDjFUn#M!z"e|L #76?1g]3 y_90d I6>QJ]wC}oQ?4 vϭ k@uJKȮt=83N?fg36S)3'&vR:CJ,[ xl6[F9%E6Mo9_s u'@ƶskJhd|Yd \`66j .9i6+&asZz"n ϭWAuR>>۩۴WyZԍ،t8^<ԭ챈cyG:+8fWF#s*j9S -[)]f +/iBTAvZg"c ^4˵'*U2N2^5᷶;hYjs(m)o> a뿿vO y/ArLÆGLMG a(^_pRHC\X B<̃plv;?~@@pIe`"YQr!!X#8ZqUK{$4!IEN\7!g#?)V^AF? P7{b9H3_t|K3xy"쬫uXCRAƮU2:vUZQ{uNw} lLI1gI?--3;{x4uDH vb9ѧklttZ;WWyWW[L&xg<1mN`)Ѹ5m%6$Q hg_Wk*yQ}Huf?CIڗ3?yfvH25x4|~6|/JMֱ7"o>asu>5A՘dϒ`nԓx f\!\Ώ8Iْ!J\޾$`,l]cxƼìyHdtCZzֺElS2Ĭ;$M"aV?D<]QiJ.A*z6mhdFlYc1L<%ٯgv;Vl`h|=+Ǝ'Ӱ3d@n{#=JgYzRѳmY;?r+{v٭kmk9hl]mh_g""w#^>Dk"2aDTO4kiJi6؟͘jQO-OY0ںOMRI# paOKYv]z _Ө{S^Fsr``HN]$ESьzfoˀF\N;!g/ ,>a2DV%o (ד(2G"G+{#GdfAs{mX8,[8 ԳC) +pb'_SJz!@cޟe;+{~Ksen~mnh4ZMg{RMbf)X?UwK\ Yu׬Ǫj̪;ajP>7t;:3Yu{`҇Ȥx+8$"ktpݶ f&d3񐙐-s'di,]frk)IOiN6M~W5* Nzx D':.4't+XoH~i`o5ut#4\ rq]w{uGHɰvhImLH3>ID'ʞl,O#%ROp4O#;ژRxQ:Xpn)[42gȣ{!q`&!!9i޾}}h$S)%3C?^-Fu {[ImuF!QʕƱ˫'ۗLӋ,iRg!%>Tl3vb,π=d/zxT1f1wjFߋmk+c؅9U&" +̼F8}KpE(U&幧`|;÷}ťh-BFN=Qf16>-`|%̓O ç 3l9'O^\V<վs)?l"T"x~NMz=kddś^:ʘ{Z1UrO+W$8yi4bg+ceո \(W>϶rQqX='xD[G+=E4scqnК(\TrFcԢW8m7\9g'-`YߩHK7< ̗Ę.5r n- <(? !gtx۲С(?l:+ZBIWGDɮjoVa35.1~~?* djEgxw}Nc/դa!He_I  KRYHou[,1Px)*C/ꄩ?MutZRއTߛ +Խ*8T5DjC |Nuۑ =8WkfbIɾtqiۂhOÝ( BU *q$,;Eexb)XT_w3m,^w\ w؊{v6 eRw+Z+~T9[9%%ҟ*}Wu ]/ʷ}l%፱HQx5EѷE.yƷcۥ#oGj`\ɏkD1Gɫ8U2V]vr>QW{55T5솝|eVy,k W=E]1cJJf V*`q'OYb},Br)V ++P4m ;1x0.f٤myUs-wmS< +s཰mWrrXQX'Հ1ssF/#/y| QZrJ|p@Z6oWzmlL]>BTհz7l~^-([i` N>qVWTO,3t7֨̈́+t \Ͳ.rʫ +'& +ĺrW=HSDȵJfx~T6kvV4 /d 4*ElfLW4W F &A6uW;uir!]UňR +mqb"[\%5[d5[63$"ր(Ed6-fc>"+=w>F*xm3's.d,K벊?K:vw} .0{ȷpl]F^}߻@?_5S캸Y'~>6di +p${ gFoa篼 ;v7]kB5oaοm#ηt]˿xd$^JЦ&e(61VKqfh\^n&c&*Dg?7jz͏&2C6u cR1|NMĄ6}l544}}"}X_PFխȸSiŭ&xRFEihIۯ*#b=. hfsEK[ Y5bw_Lx5<;5hU%t!Fhd `' '' $G_h.~T`JLSOsׁBG^1xie"Vw'jOtP29ϵ>'HE +]tZ[ n.V:'ҙ.}I--Wԋ iR=DϿm02WB#Uf6){TLU[Vòk"@Mc1Gl2`ͧ OᔂnzNo3I2ˊ?ш߶+ +!F*U2k"7Al>D*&&Н0zuqUS33ÙԠ*S]itJuJiUTW"SAI?betkβ:79_-gM)?:Z4Aȅ}Lp\!0Lgۢȓ,2謙B! +oAs̤H5n7o7ޔ^FjDě|57H&ɩk-N] 9U !eVs7~}N?9l Y2!E#X'ȹM^kE|R{Y@y^# l3yPaӚf_3  1= 8WMێh.? Kz cJhE VЌ {uޯxP&w( bs W !i+د1#nqM&g7BwHqK( gįﱀ5eCWWCeS[m񫉧hŎ(ZNnFOS|,":@_Kf(g5nlkt waK*Ȝ"uBP=eXcfQL@c(CO :EFX b&_5&_Pb.)ێkhgZBh{Q~T1]gC؜m,QS MXtF%%Ty.\c2IwrzHm]cF!@n?2.n>j GVmxɂ}/IaP唉ÜaR@.`;#o(4x ~C`̴ݷjZ[kMY8]F/bܡs*H^u^{ 'ͪ ٣awmxW6۠"#,ZҰ +Ύ٤l40|ёc!34r̻mU ]]gD-zfU"|Cbd7$hCd˿ {=wbſr0;@ƯoX +s~-~ 2ޣLouW7@Es/t't9]3AHMٍU(V +;5Q!evoR hsbކ4p$so'&o^ 3&`e@H4| u0q,d634>v'/ 0 -Gu+z*86ށ<`PtQpP" +7*ƃ+ܮ߸ 9)u׍~sDlܽ×o_랻N5;wb߱m]!e'K<7X6f]Y‮}/7Oݵ]͔e޻q ABbzH||2\ֲ LOԤhsYť]qup|q薃YKYa#؆О6%mLC(W OL۬>i8p-'H}s3_t˜(kݷ]k\mJfx`~f|N; ?t/yԡΩkf##{p8;\<-r\~ ʱle,fY^b7T\nJǓh;tr'Z:  @e'ty+-e{ѭn@ӭjzqDj;JkXI[V 4ޮ6\]KNƓWЎ/2-hj_{he dLv- D9Ma-k-Uq!.\TdJ66U9O˒@ly\ ;>8u񣱡'\'?W4$@2#w3 A2H:+(ņ^'1I1qb Fq"OTc&i! гf1;x$6c~;6['ʱUV#cC`-,_¥l bC_lON KOQ5u&cf!{MN +b5-BA_åN.D`y~'Y?N0׭Bt}^nZ ;[/ɠo[ +hZ/rZ l]bMs?G"~:)9NǺ%mIy{d|-]y>W +~z0ʰ8m.ɽ+l[}, 6uCMdžFqq}(.!@ ]N +ЭouRva\wcmI=CtZK? },݌.+A:@Pۿ$p_D5lz'԰ÆR̤Π[l 8DE`[Ֆ`$' {g] nDN)ku>pO}Cþu<&'vbJ\FY¹LL4AmGbXB?ZU~&'zdŌc 7\6h5Yڕ:^h>׈⇠ +`qORgF6_!-5_@Sߛo~:2

j> [|W,x6{-kbJb1ZSa%n]H榈cj6x6΃L|A&VZ3$i<s\>>')%ҨO4OAiv7RHO7x"9z_ݽw(nwLk:׶̉!*@?b[`e<1wZE +lUDu[_A&S_a<#z^$~5ۦla4EٰRnZ__ԋɭ\2ro'\r0RGE_R'C+pG"R|F"na>6]"4__Y5-DJaC{o˶$a_Vi-_t4 / B?ޣ*j"J [gRQ scHG+vISBgu:GJ'T(RP uBawvtLC1f3MfMHD3xSd4kI#z$ .aFSw #oDMSS#q֓J"w7ыX)U[pJ5DW-t"t2Roxa8F\ow邓'j`KϾ:2ebC^ķ%6xJplC.zbqH9bvt68,a,݊|W݊AIyhl&!/P֬Jt==ysb'} d9)e$/g7V *f$ +S] +޵A`Slry +S/HO^]~\蓓Ⱦċ + @᠂A CܓWU\*;xt?;b\ܖB=#AKl}Fc}C8!!gǟ<|w> ? >k٭xSzT`G>SM{J:,-9w?>ubt AiEJѠw PW-3O1A Kk6"fj-VkoW˵ZQ#V+Df%5y2 D{~eg'/](pO<il`>&aj?7I;NA_XU{:sUk/ 9:ȣTra|*???ph)u?ROg!pFH4_|l녆L Ts%Xu*spûZ^s-DhVƦaip.*п(D^h$dO7=[CTn/,;+$%͏-2ۜ,]{]wI,%H"aqKx;-l}}/]u`W_/U֯U%m1fA!DNϫtpWIVܚJ4 Ӊ>(W|^2*dg5q%]}! +Q)X/YW`W(#pWS.SNyS.Q\9++E7swiq69wSy#9yylE! VC8wH %}3QAyRdq.6F`X.A~:gbrEw\;g:GK2M5lOU_t5QW;>x41j=I[}Y:س>,V;w 4!N\AdD,%vw=]~az5| %iWg>"|7}ЮL,i >w^czH z-s:Čhv<)t4wa }0uaI{h!PuSS>9̑'Lqd N-=>y &9Lt':"^=XzEԑ` 'VE` Dsg E4#F# j 4.`)m6b#waFDžܛfӠGo㛐(?F~~!?wV~~ SkvnAb"Kf+.2N&ebqi%M{/?$G;C > Ug;VDkߥC.J,fLtBu}"]\(?]HVn/(9QѤAXon`ݾ;|a D̂3`>>;;pxk?EzJ*Lg(a!5! %Rv5)/9#8{="bEȷi_ԇ;5(&~Z|$8v6+~0i3y+֚Ii,OScEtP$AK--"P.STggFtdܝOs65W(r-M@^T=3Od!}\!*! fog^V Z{"A][t?7i>pMcB-A0D555za@mi<I@ZAE:&pѪ||6nWh@)HQE2@e/ƹYm_ᕱ%;G+cm{S;6SQhhI}7U’(NSH8D+c7ۙ6܌qAqF }dzt`c Uqo se_6F~taSBZ2Nt[Xܑ.&Un}Cw1K\(e}(YmB]*Lj\㄰ڤzNEȦZ07éw5UԊsJe 1닋(NQf\ 㚗MzNS>6Djn-TN$z2Lm\RqڊQTk#P& }Z| +/μ&&e-}"46z"lS ۴B=zyy>O:v)]C ~KAJ`0ˆa*7AHkv$5nv۟,eXG!-,ϱ\,f'ʍgړ1cfy-1Idmr% úԍ7:ϠoΡƍ ).O6:c-5: w~]GZ}R46X59R<(cr+svrz3 Zk$]7^dqDc. 4uppCD^9xjX9ʴ=0#ޖxo}Obt(Kob7_S\D=5w=?E,fn"z5R=TE\S:khwb )eRz+V6<XyH(#P/U|t'M[V[Q6>)vs6P+<6LXƹ9+4;ɒ,0#Lkw+JxaG˖g<ϰ/ݼ1K47Ɍ7&}fnEzk2iªr-Q7wssQx)Ӗ23mQqkȻuЮ6$c"~܀ޜR7mݜFiFrrs7V1o?8:PjO`0?pȄ3qlOu."&ZVj5tR::`o]Y٪B, 1Z[ϑhm,I}-tOC~s{=Ób@!%[jvoRT} +Y-'82]Vg׊_>VJ+j"30\ˣاBu +{gl?:;9u|Һ!3_-Jz9F$<}{ bUH:&9tH5ݳۙ0o^rd yʗ283LY|{81nE;@6 K{{{j߃,o"/"g}f/V8fUb T@7Dxd0ߡc<3G]}V"n!{02ﴹ}AYt!@$z[S3H!\G]']ٳ[r+Kf#>ZDvp])ƼAU 0&t~ǎ rCS:?2uN9ҿ7>~Jo[Gq^Ҫ[ !g"RdD4?%NQf=+!!L xB& +w0jLρޕ1>X( Y{wg/UJ㜱17E[`lq"oG_FZeyk{h +/OSx?1"/X~|{F7mTY2ـIjvXOmDvZ뮨6f=Y!z*3чQ3V!{uz Q) K~ͺ)#u`ruR$r$PaNP<'(o ZqF!BO;gOMT6TE3>W;S/ba(:Y,gy׍=HHCؾN0ZizF<9;Bܹ1хy5:"6H/fZOE3.$UiӵwUxhk'8S6Hz-iq'qbN52`^MUP0U-Ĉp 7GMKs=ÕB>f +]m}:u.#Pyŀ +XnG_E4J\]^hUĢw.H $gt#5=hQgx:}"ϛa鍈kQ?YtrD֣ g-d,ϱdHT,HEM 60f /MP `W؍k8+Q J!($I]C>Bpૹ&FSi򪲾E#x> rωҍ2h~5Al/vJgx䗊>I6⢗d~5n Wmn UMmO$QQI$}rOC0nb(9gS!•AjQOnHm"F[z +. USF +(CܠFY"4Ae=]iE0U=I1 G> Upô3$-ϓ0BQ6,[G3jMxċRM-*' x"<;scF p.a\r/ۅ|[$wj 4Ԭ\㜥۞\ț6;\tL +ٜcMݐ?LO C^pQڎuӎW1pkc^)OwQYcx*eO慎21rɌ}I"8lō98x\+?*Np^KT|>gk^S:9SoisޝmLQqp,vܞg(ɯ},~j.s3ZERm6MT i/z6qDZ6@-VhܡAʴPJ{)9Pf?fvzy> 17B֋{u(1Z,V;2šlVC<&TFxeNh"ѡUbøQ0Fh!m*RySb ҐN4!֖뤷-Wxx&0ΚgUҡ\dC8g~v6#3^Lܐ+gZR:{ҰPԐv<]7hlW<6CvT;),1\\8V}0ŕ.udpzWY(pQRpCtUl$PջxUBpn3E0@dPxn@ 1bƭ܎sD2."Y& +x#j$|7dXF7C2is\òI}ql!, +ROH΍%eU jjN}>ja\ MmSQk޲o5v"PC*@iY",qpG4 a ԮJxZDez,ADaD0R_4t $# j㤩#]^zxy -T\`i hYtWfjC"qfNkeq e5h0\&kO݊wz"qfR,lWpIb9\N"YGpPh8lUEo 91<,s앗3?}؎^!(}jFd4yÞV'-': q+kP b@kN" EmT((G/bM -N2׃CVѳNV"v#v"xL)Q6HxˤtCه [7TЋ{Q_H/[K&}/z11_c}ir?/{y^/}(ߠ1QFෆjӭztO&kzH/tJJGQѢIě^&5}*zW E/qT[*.4HVYDM@t\`24f94h>駂@L5.(.2T.LRAGͪp"6SGB|\9IrLTMtN4Z[JȴߋVĽG/ +R Z/CDʐ4DBW9)p8 llS5Toϴ"ߩAۇ+&5ma'}l*ݧ6_?hu~2t@PrR)5UQ:JJ.n]X 5W$x<ĚrO%w.Y̹vk4-@jaXSNxGAbMkAbM{a(a4!Zy +5wu-a1" N"m\ox6$qq?OF+H Ny*-8Y@B:'cdAɲ5 O?z~j'7b%Uk&ZBR_N S6KVX5L} n jwa% +Ig[}0tٶ^f"zʭDܢ'c0:<طٷ[ٷۙ%Z=nm'?c̖TRo̿)wbFQcKkqY_!lnpϗ2vʿ}s_{S̯Lk?q̿]ۿt +_HkU=O/*tYog}z2\+U]x7^9g%;0^9G %);Drm2+WYڱ Is;qw o`nUe=>] 2xiosT LdRK[r?Q#ef6rȅԙI%Џ%Mh+7x\)0aWe/e2&397~9+dnd,jkڮukSۇ"0VN_09o= &X*m +Yt&_#af^H(t(00cw쓹8AԆ$c$lw~Cڵ+&G+V9;a>ItSkhULbU1M`O$U1$5F?%n8DiA'rU X ڛUV(^/e"* ܵԙgeP|~|P/e/}% +c]$˿KERG_fZ앧y= $#f(Z5ɧҹ]?xG;ߝ>DsY*z@ "7<P'H/.!uTB?F)k>u&M(muZ|WAU0AVt: +F * +栶 +wGqZ&(Z'/mqIs p.qu +}FE .__'3lբ&Yq@W/h1'_3A?sӔG"9oseVmX `(5[?y=|}(Ɣ|:AA"1 \鞚G*xvV;&yCii?w8Tj,VI[/ѣi$7*0Cg/tϩSfӽQY3Rl4)Vb9&z8ĵ)JVY, 3,zz )2ٟ`:c` FF;z BE+q S+Q6|h7^mt4wd :蠶+neN%3Ayh9^u'|.@H4P|ߟLn -zFƆgrxy҉1Ѩ.K͘GO7E(U{7ȼ<7?]LW~[nR6OTD{^]1b/^su+Ȋ*KYޓcyS(a;RVH-=EG%f2kǁE"@TPQ{}ofgvqp;3o޾yy^=갏/wXA^UFR٫ ,NQ\Ԇ⌾z=vUH:6̳+}l}X!>۵PuA&}iIbɮBZZ*2-}IچԒXz,'F[j_O[f7(#|F_2d°*BHM#5VL0ti,$ }5|&ců$er0ُ*u/ziwY\):I Ɗ^鴎W[b OvIvKwSOoO?)>9ȱ8/9N2 Peh(Oiav9p⼈2ZZy;p%t Vac82Pa﶐ +\Rc$+|sVK˜HqIR9R`?6#a? +WF$Yse(TKA-KK"N >Z>ёG+S'͊,=i&T+"u6U'MUu0)Y%(+dJɋvc،:N h//l)ڪ-R[,eEjKjV[^RQ[٤f:򙶥ڪVjc7jXmEsʊ4!u5nj낈Y?A#c\l )h"(-˰ (nХU*װr. ;lG>!U6W)ٮb3{v3Zb 26jb.sK艌H +FR.7g` +π=v)r!s'VdkgS+vԊݡh؜r4+rd"H +(J_PI)s$2['ў6Ӳ9-{ܯ'4i,X%bŌRc;/n#V$Qk唎cb %݁u!9o-=kVE E`DF#hhrA|n-ޙktg"nxie7Ow^5/3KfiRX;^EYĐc}H '}b%dy +PPA_vBo66B9qW'(BO:+|6&IGbq_=Xd5_4VS'rYE +6l5?I;>!WiPJ_UBWi*͊-nxyE4 p$=rJ#?v(RM0Ij|Vp72A!+#"\CQcP9Glflfl˦.p$+{7X̳83 X]>>Cg i7vZAK!#X~m~RZa`u{.ᐷۻ5ùT63Wsm+ mr-T yL|Mg/$p"RɃۿR}қRrhawqSp >MtypB?\_<}ϒ LX[Wsh96E&^Co43z,~lt[ ;e,Q='g1ITHF3IC+`(漤V+@%R+=UB j/=5Y#4||| ̿!?$I*.Wr{Ł7L|/XDx~*# +1͂Ա?fb AKbHCǚ)"z4#2%j"ml+-g/|m2TRQڅBB(Rb9AN:t pب([U4<X<)kj{`}xUx(k zmzmo- Eĸ`&s.RԋŁD.is +@m vB<Ƶ7IzyPw[cZoDS̿?&MfyKVDƮuWJSd oS19sZ9~qjLo/7?0XҐ.iZޤ_#1<֌M6 U0Ρ_n^.[i6/K{Α*x%ޟ/~3[ې4MfHxbջUofVLww?h鵜ߏԴU>Ypi"J}?N63H=by8H:\h +k7dt__?O9|.ؘ`pTg1N_^SyPe[" Xݮlb؟e7K(Y~bq3>@ff͋0N>%n|ѿԿsO5r8!ٯ.aCv26͆rЉi3ig71^ڷmmُpq8\^~pG':x8i'Lf?1 8y +~"^Ž +KF5+-r@cO ԦYPF(YkPSN85qjԸ9N¨+I`1N͊o7K6ɆIB5P5ѩS'b +J1H|-ʸruJPP xJSPSPzuJB,*`PqbRK(FKA5 A*qcW>:1t yLf`JO2) e2ve4,Fe5/[m= +7Ĥhj.jN +Ԏ< +v/r7iϭpПP}8ve#\}u),~kQsZڜs8W/ +_nkQAmv$j&jFu +Ժ@} ' +A=Վ;$2ebPyזfYRyIԽP|8۰6^-y8pgl8Z>Ƚ7HsLNX#?:Kϒ +hCmH\^F8'8!;}{uY]w,;KNM ٙίWo:mĴݕc22PAЌ]$dX,FTƴPSn_h}B_%G7:*kTω5hgߵ;M,9$7,Z Qjwj0bRmw! Β_ivTHUvP9a.ڋM#UQtc'+@@.Z4c;۱Rzl 6hlcH@_ҳUԩ A8g*OM9md#"b@OXb. 훀k, +[U.:Y?z־Ży1cMաÂ#)vY̰ШCU51KƨK>_ޔ"aHolwdf+s+"EIg)vZD;F-I<@fS瀦=YRÒ5နUϸ[}q9 WA, /р>XhMdP.:o~I4yCyD /Ua7N\S'$,;Ir?4π.I~Mu o0Nz Nࣦv +qfM }dS}qa€ȝ&2_7˶\ s(*3=|J/-+q``goX1Qp4X^1cL5~Hp[rXպ(~+WXw?ZKP75l8|ב(pBV` ;ZLF%WnjrUW.xz0"n3P^ݚ +qԃ'V/,cEru_ +jT:r 3jdp!VuaƃYYɃcDf@D1ɈQӘʍM'5kZٲQ`$gFoA`tTQ"Ȧ`d$F)"93L'H`ט5+Ht?)H0cfIa{jljBfB@?qxC7T$yCX;p$E 1Q>TU"&E؂.Ck*,O%6,anդsMCJe-L2aiR?DŗWZy3A^7s}"+/PghᴼY‘!A:(,43hV0! .RvpCa$!:9f%u(cd%.,,Ї`HÍl +˿ Ш́\lGَxTk_&q +6#}X1# +$[E_>tszBw~aOq}[3D>obV;F-&dU*U.oݢX| 9#K?1k.HsF%!&>TS9 JVsi=\iFfCў@ɇ}dMhX8[Ao{>ɻ(Νݡ} +-:=vSg߈g,*ͽ[1ÍF)ɵ"qV08$wh9QCV+ VdЇ,ߡ{DDt?HN~эJ4 /ߢ2X* ^oc~eT9:F PKyԌT6v(4eNOǫlO8 6`lᆧqZNT;OOtsO? 4p9~ʲߴ=6bmEe8(m@6K6佥gem Xh?C=&;{7|jBK~&BwL K~: +Cq16yoK^ ‹xCnɆԊL%ॊ.Džk X)+I 1փE=82!*i>*$ $FzGYOI `ǹVyxl,4`'=MsDAs X3ҏL\_}Pju/u|g? $׆AEG6=~-k*=ר_LSqVNg~D?}De\ԻUNU]%e*QnBeB)w(©lN䀽/:Sv޿DDe5zʺV ރҐ>e7ڑ\0|`__%46\x^TK*C/KGDi(R`{t?ҋA^R/=~CzdT_\{9rYZCX4oJ?%RT~5e9g k}B3z+Y|7\:3W|^Gy5;~˘D߮L%;1&:gLkX,tÞ4evZD#+ ûVsc*]T6ۣMc̩l=z9|SqG85.[+zSKũa op* G_b{tmΓ(ʩKDZHu=дG|̀gYD%CQ}saG~@Ȑu{ >gb_&`(R<9$<4B4OFx k ȒKl FWap 5y ʩD0E,)8[ϱgW:-^CY%7u;pИoя֧#`p0%1ȝ +m>ۡx/Oc#[H/`EgT!?7g+@;׌/}䝳=xT[Վ񷷌3[ĝp/'ب/ܰ \eW I߲I_r2zRXcW4i.T'jN>ųpfxb$ -Gì?ŘNV?%ťDurD+TʳTid*F ptZ~D~J EN:W DI@))͹t4j;c;s">Mdb\4 CssѠS;vDm_ p(H@qub;dvtZj_UK|X^& o%(`].ȃ 8H}YTAnZLh|@'1U re: Q4Վژv,V+e>5eYuyDX ҙr? 茪 Ϩv"g172o޳0Fj]'#j| 0 +#C-~u|Rݣˇޫn_<6-2J/Vz|5\{={QPѻ4y4b)h飫4J!Я~}_ykUJ*4DRK-\ t"j,57]BM ЄJ$,P\Y!W5, Pv2}9җ}VxfYSNU +M˩˳+)WSځ +ס|Zﯺ k Ԃ!֪SfM֎Tt*2+ +##UsQ=2B LċښvDk~.zBK:t(x{hZ:Md@ <e~&@Xlѹ-Q+ +Dhᴨ 5b;I6]!VT2Tm.>Az2lpM*yꤢNLl4Uf۷[DȈG$8C$mɱ]=[;*|$B+rͫMr%3\io?9>^}ΡN4uoԭi77ߨK7ߨKa7ߨG7ߨQ[ɢWn4oԭϪQ[F?F]\L߿o͔;^Fa-2. 7vQ)M4} +7e {# +{ko1%u@[]{M=_/E۬RSeAt&Xު :}jo!Q꩚{%tդV +r/j%鞋i$-HϠ*5 +L$p,4`J q;*f3{ R/hj`eZI0J)Az%7"}n!m_wM_>LY*b=>=Ԟ;g=VDЂx(Wjd~RnTo|~ Yf%-NmO +{Ay^,v=&d Y"0I$, %Kr%y* +4۳\;(ӵ\J)˹2]Nj-bmufKNs8 V Bjm(67RL0 ]֍31tLo: LT(4@,M kSVN3>,rr9p*z`ݴIMG҇'ޢ̷=ޢ00p9 3Ϛ5 @a_DZ+@J8?ʇQ%5EG?lgp0nx?@/NM 6$bg&G"R>?n =?JJH܅md:Gs ;okߩ~g;oSNX RźRRkHzdaAZS_NM+;$BkQ]睺k+; +`qJƸl0$E +0JFʣmfn3h̕AрM%UJڊ-'x- +d!XqCA2}hFWf-9||'uѕTBH +|VɯK6Ww )q挙74ḃrFl/&2*pz9*묓%[iUYd56}g~RP %[|m?]td%(4{o8h5)bcK%jy O`o3JyoR\W_7-E+~CWy+WQ`U_U˃PHiƱ,&)Guj26&S3b 4>]DtwEB7c?vѭ%%f˫x#;od"*<#+Wuj0ZD/YaD13qE_H.v@&^) +;✗S}dDbcfZ&N&ֽZ۹@u34PGbBQVظ{Ůd&l]TpW@O9/N 77d=g\d8z e6+׫JzG "]boC؍?cF*W]C[1,Vƕ a/t"TSVѥ}ZnWXZAY.Ua9eN$Q9<_.!ŝ<՘FgBsKMlUW«w1ڎ{]SزBO*!uӌҷψHtDkxf,vnĈbDZf˯QSMTxwM}3QHX0ƖqG-4.{QnQ.pG1hQS E)=oG?LPix|G4Kp^,:M[AQx e}[dz,ݪ/3&߭Ę|'0ĞgWϥ-JxMA"FSztP8{S_Q|=EWjqP9SήYڭUYq`YYVL+ +K^7#RʚOhoG#X#P:Zq)1DžѰhR %#/1GNmHů}`zI N%h+~[khdQ4dauk;^^4& UnQʻ`|\]4S4Ī],ױ0#v$~u k;M_V$=8W+a%w^=#HsJLS1Ɗ.&ȏq/%vBo{7z Jp*ƍHrD@S]_L?1HwtXKpc;٣78Z? '.Y7T 5h7!q(ǹ'99FFހpW +#YK,EN?4𮛴6kbv۾IJydu\ xzc!(~X֒ŝfZRFl5< +JscELPgQ:wQwjYx- ef#|5jQ͏ xJ'U=^Z| 7_۽ABy#`]կ-goO(zOxj?(W]n=b7 ~-4* i`e`$Hoġz3HN6Ra6͟gYn6 ͒ +QȽRKM5[7kVq}o_%fy+VciD3? x-Z#"7ԢU*b5YS0Ys%4s- DXGL sg^@қdF>Hى 6Zᮑ 5|ǖ}l 0K@SҀ7|&`^{D?`ayQ]ǡÈ .4j4)ZS'X8h+c"ɚ}Eɂg ,N2/f-ms? x}f=hUdO Y1b!hjB4<Ǫ$Ʒ;iAFbZo!x熯*\LzCOL-t+\(m,qg 5%(v]J>|M¬*g0 Vӕ.m&,躢Ow7̮WQ1Hv$Irk:l'%u\<5,ڵq=u~财VX7ÈdvNUC5H7Ka5JyDoKi3wh$7KWYϰ l,Jy~rEI4aEǠA,6ݛ'bAxX~"79Xl*?|i ZM%8j\C=X`b`4GdJp+6=2xgs1G;OO/F ˧v9@6[fIJ\| ;vF2NhP8,q3'F;jv⫶jJ_5S|҆?|K3GLJ9ѻ +‚.1pK1Fi4F!tK(btٗ eS/r5 +̿dS=Wȋ+ws"HhEz5^`SLWAnnRE:Y3SgNps9έ-8J7sÍv¦CL20p̑HSvB#3W2,쒗  zȓ /[Ks>b.6dkFMC;#3񤿿F4"+4ג*54\SNqdSءqDX)t._M֒ܶt @qa23m Skt6~a TE]L>f̘҃{2eNpy4F: $=``1cB}2)0H$Eᛣ~ #~|IɞEޫ֪:Ab'3ݨ_|BRD=+g)\PIn"oqi.{e7HwX/%K!My=^3i.#SKZyEyrIu_KǴY'k& B?$E6񄯓B7kIV3~?\G MkI͗t̕L-:`:f~끲%fA $aE()0я$ˢ'ly[b۽*mRh-2cD{5z^8$ ,=7>8wK._Qia5MGs9}9[D@"+D̍p+%ؖ+#*RFN8䢿} +ՠK]ydNb@>VzA@(EX: 5U|Q+u(`$|qW$bb0rR0tЃYgѰ,S˝`2K]`=lo[6S + +qOJ|OTG^~Z-G1WTZƹb=L+Yʦ?=z+i;t,z3Eq7"( 4܄2Oޡ)Vf'Vĕ+Ԭy)f[rV c'|0¸Vsy{L_k9]c$~ +@&AVGiX?IpviQ S"ŀ.mr-DWbmȳhRo[O!Wt"7|mj1.ێl, /eg'WMnbºx_3T$,Nci%5"j鋢tsS9Nny E(Қt&aUJz J䏹 V] 7h9vwlo1m_ڙjGd)d{Ʊ#tz/8ϵ>ܫaנgV}0qLlҾmO{Y{;lCo[8LҗA}=\n{'L =Dj;tK>]m>XRMfd,8FJ0'a"5SPsA3deAsFB I!)nD3{,>Aɤ}h(M:{dRi]f/(s;1\. C8ufL}o吇~CBfWgx?Xn3@ ;|ES}޷ZZۮ~,{}uk7\_먯nխoZZ[rխP_FwX_ Y_:c}{.W_ 檯VՊW+>P0Y_mKW^32kץX5ЭGc +̨Yu^i}_VyOu YHϮZ_RʬE3YZ2CW^f Ym~~*Q^}-}Xo}ozUo޺5G=mGzk[wzΜzkuzk՛RoZ:9#| +9+V\quGz֊RoF;3T"G5޺#Kuo:߹zk(gzcOz+?ʃeU-34fW]>g0s=bz7ZO yf=6wwSw\x5yz!Sz*.SmM6^AUbZU5TW<: _kK/,n'7UVXG ֡IjԬ5) =quqhq:So((dee8cqF}vmGh q3ANh`*ʅ3`D1ڂO{5^`wTčb"zݪ<|\,:@@W,ë= +"$-@܁_~<&ج r6Th0) ?9% +N׌SщǾFɃQ^7Ҿdq\F@VLǵ^~ D $I8qmMB Ъ- &ϵsӞNp(=3|x'%^2\BptexBQbHB.rfɕWѬ01:VGH?!s&c }NO`?M #;VИB1Z!V=P=F! +(f|msFç&|35OeȇExWUpA?K4?57Lƙo&^]Hv+Iuz؀eiv^v!p)gMu7uS:\ ^15WuWQ/|J~#uݮY_@xB˰d#/#f!v`:B##%9j +>硫s?==*sZKvûm4#Is>712Xq ZJN + (<[SbcA8{a/g3~\cobꭌiLGC* ܇N#[(enpCA)P̳?yIXXμ4@Ro" R +cfLgR28_dkD*@҄D +d>.by%,h.Hd] +Kf )w7:fdGd-搣=D"邤ۈ{+I0a$ eAxb8 _[oE5+"y@ ]teqi@sq-=_ײE _%,v\oY҇r21,0^.XR8]6z8 R7̝wV:a+pz&neVq+hXIV%;n%izR3s}7FGgjn`fYϴ@Z9W@n4ۑ8%_3&Pݘ4.i'zUpxIc9v&Iɓ`zy1)$Q}G2& //gSht10ڮ@|D3cΒdZ˯,ҫ)^"+C~/*e*N$R5^eī lWj(E@u;`UUyt(R~:Ror"UNE +>e[N|SΆOAG@@yJ3@E}Q1D}`ɝ"GK!BqWiS.NẸI!wK{w[lw chR\!˂F9ռe7@zF̏UIwdW$+U:'ǽHcʨ2N6/0wE),P3^eM|Uٗi̓2WmMZ@sGW񟖐 +%zZ=ʓ9`UXw@Ks2"56Q'A+pVOLT"Ţqdt4Z+hBԅqt{eX̨$ $ni륡ќ#Zmm!13·w|g|qĶܔH}̆oe[oC +E&ӛ|%+eOŕk!E_L[%A_n1-1-f`ZiL{1-89^[_3W',r( `Y =LS~DlOS+\W] 9ؕve](k +o+3{5qr8Ī$?ޟfӒȝdWѤ$ShA4}wç|n:>SOnS!|>OwT( Se9]b.~tiQ<"ISOS2l9?Qě]bEVߝ28 r$!y&'ѓ)xxT<7Q\xAdG9// Azƣ ƣ47ZP;Cj5*]IZ-CS8mT_Q~=t¹_*|f#Wk5GcCdž>aJDkp:b'QQNl~1*mJ'ԤYƨDJDbT3Fe/#0 M9$nyp1C| }Txy)oGDKKf }:kzlm'ʴ WgW5U蜒vj.nZ7B;H[ "b:J R7C!u7m 7YF8zԅ#-UŠq q4f(%WuB#iV;j%#_ +O7⹤Y > +YE^zZs=.=ސ2t,62$X_G%fZPܣCf!T9M2J: +ޏzj# %M; Gg1nL?>Ƌy/d:F-#iQ{fTϟp v0ٴ-"b)`BᓫM ėYڈEVCD?`2zE‹S?<!;$l"77h)cG8fG~EhU2S 7My" (9$k'|-t+-c >m%ţh M|{{&Z6C7]xH)(Q*< M=dr2ZY>~N FX-c(5;w&BԖzHM)s)&F'k<7ғ9t6I ~ +>< 6?V)r@7 z4-*|);y wcPYx$f@41Cm^Ǔzz'Q|M̬I.bK4xhR٩B_~ĜҿPȆ0i=i)< rNMAXg0o82zMJU7QknθbV'T 8T[nn. Sm-5>ҾIfM6 3o8SAFцBDW~>JaV>YefR01g?©cC8dY`!C*y|o*q椧gkNWyIsM[\:#)VSCa])B|mb[uJ=1'5/$VON11Xf01~8_X,q,'\\uY>'kbDaXsa MĐ쾖t枞'%V:: 2`[M#>3J=fIn 5$]biI kdI6;/'ݑF#rZG/X,d&9lpul>H-ەٕm!}l^AS|<T Y4?!(e2p+LOn^yϯ"%Bo8;h"( ]`>BP98˹PjWyCTaW`o'l`w/G󝭎XnA M8(uǧ 56E$)a祄)x3;l37{!$ C5H~D )>޳cnQC$/]ZHp˫ÆVf@5,ږvt oOl/쭃 U }is2|u Pl`l/VH0}$ʙCEN q2B/ȟdM @Zy={]/z]Ӝh;eVuD O.Mm$ѰL8Č~vg SGb¥$"\dGOR>D. 搥DrU擅|2_A*Sܱm a!&Z.Zwl͜6=ȂՎNa;rSk 3a$1 =< &!ɗZ\bQ2e"_>&P:d=fe\lT@mlskqN͔Y]N٨uiRԋfxe9~RB[<x+y cݐ(gL&yK˃Ǫ\.M +7JYHr; { oVwC-t 'slE$?3l朾)6uggBfdc|z8~&a?1ٷtCq=q3AI=ji`Z4PLz_Fwn{ ۈm#cp ,/mKrhbpf}q3N/1؏nА9^;dp8A&H6ӮʙdC ` -u Hl!6=R OO G.Gcxvk U]W?!xL8d^7a>䣑H_Ct@/6+eS6 Ekfz뺙m׻{v_B]]r(MOq>k BOUYq l~8(j^BfSOӘ} +oOS?_pjj ̩$=deQQ+eC/5'IkAѿw.v_沓g<f^5'TZEJ"sz+ya(Yt[1LaH6, h++[l##. +r Rid|xP&8 +@mziQ!7ϔٲ$Z@xʼg*DΠ#ȡ:כekZsK j_X Z~ke1c#``vg(t-("J^b[?#dUQAẁj@[y4!ityX qMo.p]qBRbv2ފЬɺѳ)-3 +\A|EeG~f^yx\ >3I|yzwo+OWi`ӱn AtAK2d PķއU)X7JF|ěNPoV| +^2zd ++K.%Q!kka w|-uG), S`.-c:E\ZJ Gx(V4gVeo2;KaSU B`Sg-pAРؤlbP¥s/4%)C ߤAc`I:l2 At}fȈG/O+u"aY +($93!Idہac-6E^$_cw8h2vTz@b2fgW"bë.W]R["x%p2K.p9:P%$ _rXB\" ^^[a:S6Or(G7z6,ɥ~4S;cǒ{ݘbP?B 6^EC&iZ! +yr-8gO("Z/#BHy|r,*15+~g@iR ч0?|+2 p" gM,O9ӑQOxzD xB" ձOvsW]DC4a6$;(U]V풹'ɼI#t+vB׷@WjMn7EMs So؅(`z_6]G*Ikm-YZ +)g/4ؿC$D%OLfɓ(֢IdpM<#Ҹ #]T{/퓌~6 $ӽ]v^- @Sya'ǹxwqjsEƀMKo!DV1m]-6 `3`/r0 "oKmع/'Ր'P9`9 V w ^I Y<(#H8y&x$$i`VV`VQX7<pOK/a -G7.V(2N| U + Sgbs" 2N"'Q͠`{-e#@֩|)fۗ Lei-Akb Кb50MYɽo9fſ.#!-L6z.(=,X36b.BD{ۃ.YP+AbkU;c q3FaFϹpq ~"w ((>ۊY{Qe<ҵmei96 @zjf$di Qd@Xx|6~w҈H%aMEiBe47)E%uսspf: <( +̯ށOD?H!Ƣ;"mʑ5 >C?xq݈} +9cr1AZ #V"GYMG+I {`%9_jC\"ꯑO~a* (9HGA:Zy]h:bof3M&%vBr[(1KQ˫bl&Q*g3Nzb3 sW9t^P-VޱOmJ6 YO*2x&'XNT# ;nXr_a;<-1lНzH&!$0 S;II't nu$!ObJSՊ(] IɻXlFW~$9 zO5 g6wyC#t+=R(GYI?0}o=`5PE5<Ⱞjk}ӭڎ#p,=Dz>F3ӡ]*. zl*  +J=`&̘Gđk]QB?#m#SY&5pG꺲^Y@ )] 9U|xE)17nƊvTps5PPy뷉MVט5~b'bG 7'Q\i*5j>Z1Sz{֮r0V¿)_?#qį\-'4K#5=q|FߨXnE7WVG*V"qvkhʁ=*G7U\!j$eXOp:NLil0C PJ/&JKm";nwtמrю#SK6`Wtr,ty{4̉%7~ϳlDMNCٓon׶PNIYJDxmJ'H is0^BgfLql`(o F7n9;I̯fhw*q,'8ط/ +Q% eс5'YV ĺ% zYk[ VX]2lp_: /#gIҨ!$PWzy)i=5䑳f.l,3^=2ӻ.kFA~Cmhm=}}[c# ٷ&5fly.̨Wj{,:9Y.Wϩ99t2*GEZS7 S F+8]MJZL.F~~c{$õw.9~b|*8h,_<>]RilQy*qHpO%@I:^.6d2cDXQrpb ԘWr,}տ%X[HɬF6tW'5LZZY/2;YNP)Ð9YN'Pbr'S(^ls ^M_-oR)Uz `=XsFsgs޺gBn݂6S^98\QJŹX:8=Wxd{mg;bO[|x mdZ'} mΠG~8W|fkͺ&tŜEC6ɑ1ЩW{" ,Gi0=b 1Knø*U=H5W2]?)ޑW&/E^jsu&sQwv ׯMgnO:?_ܟMK/?/OK$|d\a]ٟl6=Hcux=C䧵b -ˇLΐԶېxjp +(9OP&]HQΙu@L]03Z|pʍ:߾TFV{='0+ٽs;!mn\(%EEd8+_nkpQWPއ MOj"/mdpiCق̱]|!r VSTia5X4-jV j 煉f-qFjb4QrI".pWc8rjڏ~[bWȭab{ic^nrz,gPE,zб!^hћ xg.5GΙfY1=6w(CMyM*@RHts}Y_x<\Kxa(?x|-<C&4\p b:UlͮwGn0@dŴE1NywI0O~1 }^m@HD`_zɻ:BfSnE@_`[~Ynfto\5ź}:$'W?2@FjT +Wm1jɁmKزr#dÿZm& >'PB[`Z)kX*si79[W}0%HZ~o[$lިCmvu]ꮊwB滽B+^'^:~\W)_aDaɫ%1:ShKxRݚM.kwE8~y!*X&' z|u[`E&0Y6 +"F>\"1 yqX >??n?bE#BH;qB}rF6M JQ֭zT$a 4K'݃*0x]3m Emx4&.3^3zR?9Nwn@8dͅ[r)YLqX(csQЩ)OM뽈vMeKEyg>Wc>,tYCytokprW7O$R$FhZ]'`5<S (:)tN4z5u\h~l57?$((.֔t2+\RЕRd%v8M"W3S>mzowzLj2/$AsUXeUϥF`t3#nHZ3`.7zH.0bu :wA|k% #&)Qhܔ)ӈ ܪ?EK?ޜ#bV^)y?5N+䌤Ig`F HG-@.k, ZF;PA_#Цt⹜d׷/HsBk{i <]WVHuuϐqs!sk\ai՚5-sdփmhπ09Z=35] ڭfE|Ϛ6 ?kYgͥ*@M?fK}f!(br,#v*M`6p0C_"679nCI(h;K9 kuh tBjhx"2Za'z3?ٸ4R$d|-'u`:VaS88e{ph3vmݶ2 x +RwSBږKJ1ƭΠcNˑ`B8zH@Z@~8ք;p/ Zq _!()|uǃ́:sP1q(oBhRiM\oQaqT⹳p $Zs(n|Zp-Mtlr34Εyϟsw +iMn]H1ut[cccc"CŞQ~7q.z޺rV~ +_i_>2h+=̔Q-nBΦD^+[ͻw{:+%ISjc<4g65.^<_{6v}ʓk|IkmS?q +㞧ؗbؗ5&>}Jf:Zv?|Mдrie+N(,,*6GoCԼ#?`SK}TXEY{QMcI-r5sw6nMf/_1^VGoS$_^O^ʩˉM^T {iIaPvڪͪ>XvVjtY:obMm7J9ϴ-q:dAҷ_pvmCϒπT2hsJ I^HAF 8X a9RS@d2/PAx8,j|-i{kB:',|!g pA?'>;#/XOF8,r=L0qJ҉^e'hP: BA•#Kn ' VVT҇Ȍ=fȄ{s()o ~?,mO#*2"ř3ApZ~0(=JVoXlXxz$@ +x+flK*7ӧq3}*m?\g8k վ 2oVDCyF/ oBن4 +G51ʭq=+hWC  \C,GWċOg%'>߇?C@:cef/{u kX#*V\#\ڢj-Uj+IA6!}`£uur-54& J$$h{ƚ3ɨL}Gs!w}{_k2n +c:Cn5׮߁mCv^'O +eWZRZ̚ݭ+orFp}NaUi:L%Hglԫ5rKy.f=1?ɥM1G(|av=/א1mĉ-t}K ƪ7RKnպuupOEꎼnOw]n>#EO!VSgy?g4+Th=i%xZz&p[l؉35.GhٻxbR8'?[Is@zl\f̈́D]Lqzʅ/(/8ې))gJ!LwKvĤ* )S"kixQ?IUs@;k)qwcaq%:e$|$a6"Zʊ%"d#z +Kb|:O]%Sr5oB$Xƛy&n$/JZz$q`zMx zE-0YKzaR h^j~™ݟ'+'75AW2TIzA=^_NIBdqʽW=?N9c+)h }EgȂ4g{g).WübuZmSaN~4~auY!yi/);\iKlelny 3_NL˝/o߸-Kݛ2o~Wܰ /F +$$)%?\c_k׬߶gĦwIoLA77=n< +u +'x4xgki#{zx]_b;i#5vX`#_js_m#5VJ_ԓw9kD]ey><<ʃ M ؖSDu{=H:ϑbLE[Ws_ ҈g?5b8qjDٯzJR ڨFh{0uWv05e4yt7?QBuȮpxKo: +rmLtMaU eiryiP.㋷ϦYtϑ_`kzJw܊ŀ{|Z6B(h,rTs488E4D?ƅ^?b[E!'[>]\ZHi֡Ǭӥuv yD\z \ ;pǂc9%ۯ:9b5=m9f ;/;Dcx /#xF8O0p8t'i%SEE1 Wy_U~dzv |&lrwAzy"X.ir|ړʛ1Jׁr7G@Ōں.$АJVFi8), d{@@OK(s-v,L mł>61}Ɠa=TXλTre +xolt*U[Y,:#6V(X'TL wbZs/4m{.0h咴`*Q]-L9)4|ks. %˜Άc.aƔcڑ'\tĝ)T:)ڋyyˌ/3/rc&GЊf֚4):d5&!d\cYQrd2qB >@sn<2Rn!kLT(v/+6/\pמw + :9Yk7ߖ +Wfp )?szEt7^3ҧ˦džl g +[c+TWm6}h coʹopk}A=38|FΊ3ev1>ho.4cܛQ+j^X1[d2áχp(Sp<xu|Tx3xh̼G#6o$br]jTԻ+-:w}NfI?L6Fj)(cz޺$005Z/D|91.J\YЋT#p_+7` wahpTi9zL'W̿˗E%<"͟CDnRQؐ0XLO+["%o λ۶~GwMΘeQlf忿ENyY:G,]%ڟΘDAֻ2+lufԿ9]#;3LT'Wux1 @F.\}`1؍Ѹ2 yrijG J uy0(zɛ"rWr -Z6Qtp/PZu D3GŻ(J3b 6""xMڨEM^EiׯnIO%kgJx>5uՑ`?Q"*v]YreWԼ'l!pck-Tf_Uq}0 j 'i65oΣc GB/׹+THT'ސ )-FC5ke66SOZ4juϨgޯ3 ?~&֝a}nDsDUܩZpU%lAޥ_e I LÓѮH2 O!>7SP8G.г 㟾.aO$hBz# v%^d{ԏ1OEBȐ{#C13BCA:ę ꛎF0ڸvC(a]9?z=S+@vC DBIMP}h|3r!s8O[i +јHY+pEϘ_S_f_XD:8)jEkUV˴~hֵjsyվWtlswf~XRe]n&(\UHE&QڥܶEUy ^8ۨΖa'eZ\'KT% +⣵^ 7SdEثbN4HsXƜG1٩ "4KW8}9_.0{ЩߜTsT ȪJ-ROdfvTYfOРD `7n mMY*:H1F.taKI#s54L Mte ,-nhA$Fs~ \Y#/d g5݅D08VB߉-~-s児}+NFfȨD"ڑ\ x[V>I< =o]C F L;yU筵0: g%>o$$y z=o9ppRn*ҏ=d>b =WSld\ZYs}3.к1&`PP`zy4YrxFƘf>μɈhl +? >oiaK+$kk^eKJmckGz y!M})fQyUӃK@+ʔst E-grըv`r!h]/َ2Dd;fUW[3"^( 6޿VVpG/igH r754fB)ʹJ,nHyl{6ZZ^˅ (|k*g qvCc0w-Wne%M%%dP8B@nUnYw[׬CX FYx; +,saȌĐ!NbwfK>-&tZu9YEԪٳ(Q\Y<.ר"i?y :$0j\.JB30jm G%t2p9%:*A`V"ڙMA ,S&lpF06dS,Ai 66jlн$sHc/N_w:/~4hsjRXGǨ.0IJݳ+}|")*Hh=V!R"koUP_"~gd0@O(Prtu=BIdpP J8pJ,4?}X1̜ Wbx O2ԪϡMpnekE—DN*ዬ=$5tFyWL.dZycLF b{jM YDϛ4lع3̓+ޤu6 IܾBHFfB)BBILi&wus:`6yKm v'ee肝 æ=){PJe[/<˳Ak^׷PHgHԬM5J$ec.0P t0Ri/%Ph(skjHQ+q#GPtE]뼭LN,}NSkwɄw!~SRcDP0 :#帬u&TS)(wF|L|G%'KRHe"`ӕ])')(<tI^H^C!%+ GRU@Sp CћxG!jy(֕hu8ީ%'hFGό`QpTK]\p?y/ᒴr7I9|zgdl]UiU]mR[ՕHgV__"!k:ix6*= +۠"T`: +0l,E`1XH y_7,X\4{'5w'7MǏ &G#COӠSlչn֌O~=i PG}|4EُЕ}4At^vnWW5zD|ۜ?I?|{َH[E /-$j3ѝΈEgP[#oԍ Ůg:쏎EpDnA,[]6o&Tסh@ܥzEbwp3`Պl-"\~\vr\̤uBјNDljx!zP5^| aEyW&"~u(/ǔhX+z&^L:GŜc] cbC۝2 -R|Ꜽ0qr&Ƕ(a>AtV!\+"2*ThQt%,qlx;ޣYUFjx~i*d#}0 yh\wxӬ˭<=5J*ՠܨI9RYi^G} 薱LC c_ H#SصuTz5q?d8ugqxˏ 0 e49;to5q $h,e8SpE]o6{yl[kV +YEe4D1ߥg]ڷ6D0gmHHPr5 +=HXR4Ecwʂ)ңMBռ9bƓtW@9 pd.lmAO +Cޚ +◈E{0\A]\Lo}!w8EƝCyըyLVҨHY>U)%y,˙3pBY.eb^ O%YH0<g2F} 2AER4^CS7b^/7jO}ʈ=! LW h)OG N j tO| LI5/s"YEQ%s +E"c 1PzI.YW"Q7b#P@D̦yQG|D1!J:)E F6Eax4ǢC,`@l+$)ѸQa$hg^EܐГziG[Td +A"U(ZIT&5 xB@).A$y$ 9ˬYN^7HU}C5 p@>S^8ayt ^ Sa7 /kHr5'),C'1f10rh6q/ 0F I%9J30_ݑAl?vDIP +VN C*gC(2Qy)su`,ȝ@ݖgl&&xG(MT ^,lTMSZxQT۵~ZdDX[`"GDrRĊ=PZ-Sx6iӆ=9iW摒=/@}/?d$% CӺpupY: HB!O% WKj!l:A=;E٤WS 5nʹy!1 F"ÖF7L^\͈ 814(R|H" K"5U9Ѝ)v|XUKUˣXFVUn`w$jMl%yD'f#S PnO[(*;GZwZ4Jjh8&9V̅`o +lx +O WGu#+|* +\bV +w3>{?kQ׸o{zZL9/-?wh +KGoンxl<>xWqtxe`/;KmҊa Tp!)}!X4X>@ʘ@u^0nPMc@}zH"4^i@C@6yr Tڄ2O@$ $ޢp)d?cP@mRt==m&C._%-mx J'Y3jJgj11XvUGqJnhĭ 4p/w,ա0Hч˓p%$|Yro+o+*=i*q%]%n1T|_zǴ $U IUbY1n@F%5K%ߤ*qT]6wӴ9D<[+߫whiZq/V\nq;5^սKmId^p%U9-Gsض ܓJ~;#-;Ŷ"=xv/6_z+]ho \ev]9kwEuE  fK8xUúpEF3$ +ΩAn\Ƕ(NP .w5KG=}_nnsR춊"qo%w;v;N7 4#hU +pS9s?5CB֧X*fKP[eKmUNL,$R[D"0DCX2Hx܄! xW +Bآ^c_{f'd}ޞroy'7[Ic(_)`̵VD GuʡU`CH㠖p".S_bkN؟[ɏ,2cďԏ$k.EUDR8@y.v;eĻ)b00z\<{x{$ѿS"2`M JQ_Y\RA?Ng5G9d>, +lx4xGJf71l!}H ZB| 40L-f>:[I<7ix6 qF3,˛4iq=?@] qr ? Y:&q gH"yD#A*,c AH,s 5wc^Ez*doQL9 >f)~d0y bQ*|U&y /'F=y;1`g2dCzwvq,Jp %rq~_sY8^~ !eZE{nBF8d6iT?!V5UY'6h%pW+*4yI^ߙ`Ҿ`=niل)> V5t}T T>)NC:>5:xu'"S%vQa+W}zaWo e֎:i>L*B#C6 jm*ͲJfQmZiڮq)͢|.g#U<~t4>h0:z[n)&y|=ʊP.0笥~X#c@oۘ|;o|yVo~-,96oܵT[Qu{}~whaߧdT&"Y}#. gspPz_ q}RIo. F] Ri}IO3;wl4wB-gGw4>{vBysWڨuoMɶr{EC53\>Md6$v%zr"rV#`-Ur%'R 6Nθð>1 r:"2 @%VsyZ1w`m\7΍蔉{dbl^X6Oo9>"t@FY=]O3BoGh +{,F=8QFZF ĄGa]674{slG^ZB0Iǩ儦t*%.#wݖH[x6Smwaa!_r#*JL?/-I#(rSwk@FIٹrޒoԻ`.fZ6Ơp9hvO3XDR8p\$xG&L6q NqFC.n͸2ehPn$K:-4xK).*S4.uz,í߁':[";U$蓰>lQGYo=q?/jsJ=brQU$/dEDž4j4.4{?W\.uݛk<}ۗ#;nj/W46.́5dvu=xjxE3U+FliP][]eR(S{43e_V64&oZڂndmm&~C%bLA<+JA%\D ~2QR/ay4=y)wY+;ZV^K5g6Y6WZV4WfOfs<2 7ةy+Qy[vj]%sf}Es7-"gwܢۛ+l{N\QA2>36=@eR{ +sV~æ=ēH=:~;yjS}s +^m7% +{kItfV+:5(ҵ(e3g !ݟω)ֹxi浖`[p=Gc= χ%à4|cR L"/葉s% fH[+K/=^`i"<) f M qzFJ)?ēdw5{n$/ʥxe<ؖOȇLG[|r^x߶|"%İ%0#x2yߓ +g߳/ +IMBVB$q-y'6Y8.WxY0.^"7̓sO/4x1ADL!3v !!PY&wI0K $ZyB4+\,\n)\Ƥp8C\,8-Kp筗 `K!Q&D ̕9RH%[LL.@a53{p82R.+n.-gT!`)Y ~ +ښL=~h R!QR#jϿ/¢*d&־_Ģe>wo>7 Z qZz35R]3-gK?ۙMdfK@5LKuwt| * XkoSg'CVR_P>Kf"m^(0?XѼ>d'x;S=N33U>NlVYqՍw|̮ef5>JKP&P};ovrI:Mm$wݙhtݝ>;(NJu'MMEqU޳2>m=SsrA+{\=il֎_6 6/ ڌoś9ST8SxU]8LD*O@p 'i&).eyv$߬_GtFRʿc*>~YV陼0 +p'jq%~nZ -+3&DkrGS=B~ɲqYZռ}6@5c(@abVOWynn0ovpPʽjNQ:+9q]#UGm|O,==fr ++ŁV}$m(4pv< 7Zѵ )<ː'ʽLQW,M9!pa0Jdӭ#FchH8w`Pj2-^8DspvPUNӓٿSv~kN~[W+?j_C;/NMC,+"Q:uŮ+zyN4b ^6-b;VueGp&h6R=zeNTt@uYezMu FQEاP,yIt.ze%[oo pc]8c.X o['+rи z-:Hn>GB7Ow9-(V2s;ep_AJִhCXQ?1a*B*lP)Gba&!ډel#PN8ʑ EU_(0 a"/'U'#-dIA"҉K5'5u (#j \AꁦITrrϥp}H[>dTTr'.?!}}H_y%A_+~M G{(reUnȸoX G`*j0&]V]C*HR?XR({u( z1Kc^IʐB닮8|f][DODB2K0$zu6|j;!^I!e>}'dHY}gJN:)$]k3Y +X(&lDXey ( rN'LJL|&a.A*(O "_cj!~H\/_*&A#DG-qjm͒XRׇڧ3bDڷK@Ai( 8()P  EN%R$C 9Hx^Y' +6`]!Uʥ|_ [qij F$3ze|Oqd0V$Ja%(SlM*ll 3aSl(eJ.}^6 V"ȆW.>@?䀊<{Xm_[bth +cb?/ai,G5tfc7,%X؃F2?1YF?~L=_݂%ghrQf0:_To;'bQMz9(Q͠nAz%zsUiˈpU XocK _(:ZVE1ttm7r4Jl2$D:dd 6 3W= K6ܷؤl`P!&2S$ & K& 1X%z:%SabnV70W6ddPPi90 m,$+K!)qx5/rUdp]ZΞqHN#aZ? ݯ6 WSf%aTkpD`4,݄!d#ŬZZ@a9+ *̍܈148"M`c),bɘ'f_ i}zFL;ؑ/VA@նHlUU@ZY*y;5m"@ -UFê?U UՐھf!AO1*`1TeȰXR3d`*sapI򪇦n ПaߦQ-`pnf{tshl~tr׏DR\϶HBR1M,B1!.訔T e? 1ې=%?P| +rx­7s ,2qUR*KU03ry!; d@p)Bm0Mh9Y 3Y唣x_gF\WAIX`0~42Ҏ)N.osazCadjDk:c P4.e9{kt` ? wh/u0%f'Dz+B9KRl2[RXc=dPl^bFzZƖG[M< +'zD$4v3hZ8lmxq5yp-ڒ|j\ t0Tɔ#B9}Za,8ħL|zOӇ4'>v} 6W8;B4?*:#*u=TmIP¤T09#7MR<7M=H<D ۠ A6ղY0?`skuJuJ bļ6b4&d&7МxRͼ0rF;*b#T94^[*@} D$JzVTY`<+ 0URQcH9&TSabN9ExS5]f tKK_4.hF~ ,W1hjG "kEXNhP"Cj^TR3 Uz4j>#3 xz٬'P@L gm/#$G:d3t +ao9aG@z"Z=Yg`X1w~ܭKEccGX$v#1S[K3~ãj÷!yn90GU+#:zt^f+kyY)VcOaٱ14p f(|DMӠC{zcHԠ?} yGyH>& jLMqP>4C͇<3|1l;o;eaE__$&K茟1r ++5 +wYtP~&#̣Nҏ~xcM3 G0wjb_c|h2z=7*2dRqP #bhB`i1R CIΧrOIQa9A>ah\!6i|4;we"0SСxy̓7oLT,EK-MT)IN$Y8#r0E[q~o&Ń7ؤIr ˒cV<^)\Fb"rW->^ʖ#c͛z1I&)~8&6&e\)YpI0[d?R$5 f41Ԯ@h9~iyQ~z|yˇC|P|(_>r(E|>ˆ|"s|:|Iʗ ٻȗ)ekB<H|ȗsEfȗAH @B r%Scnׂe$XZZYΔ% YDZ\"XLi@LYoJXW*|A!VNnB˹)ZoTHxq +2(tcEDECZ\IK>a.ʾc9\ Ϗa|lc#z}({%GŽNOrSkVoozN4" + c <}*Vo1lKxg.[aHP_CL- miOE]Q܂`\淚? a~)C|jT e+O*.M s /\TS 7jᔣfs{#+mIzÛmXH~Kp&`z8RfeRxʿՒ*E˜(qץ!| 9nQskԴxZ!50퐨7-o]!߮ϾGɇ'nMK*6(e.DQMlVyXTmxQ^^>nkVJv4ߝ9 uqf#BS]*/<({xPeă |9;&1#<&rH`n)Dۡ G7o<U v@U"Kպf.7\83+7\*i_ό9Gz[$s="= Ws*'hnD)3rA_zl(1WtFtG֕`,ќ7c[/Fn^9Flܢz +$ \n]RpCx:?-~8v8'w#. df c?{~r,Z$i5ov6jE#j:n +>^d-w U^N}T{~:B :Oxxwĭñ+8ʈv l,C*R 綾T%#@PDsխa{hjfnwۏSL^`}>j~8o]`ǷwXR#9 +ՙ]攫`FyK)I O I$h2TzxTnpha= rm:׬ g1ROg zD/盽 y ?v +Y,ǾWWh 3r8mNBz=9G]$GܝދE~lO/uUug# 00RڬF۰&Jۄ˟LD?J-f;CA3v2/Qd5k[7 %3_KB Iɞsw{3?~|af޻{=s=w/%M Wv3Jym{(=ek + ^q{LtmnM|p¤wEI#;\ ٫2rf)ַlq2̇aA[-;x-nZ쨨" +mZX|4Hg{|̇"HYCV$(80|A%]AGͼA4e?66F|%i\wҦ‹\ S@ɸZB fXMC '*P?i縳n@=G'Yz|_ÎLm8w4m|Av7f>:CnULAMKoSEm{ۏSL'` Ƿd&DJ&fIL}BvOFsw񤺲~bUR_\C5[O[c …]>V_Kѽ&\Dd+D'ϳ~VnQ^S=kPocgtXy))P*%ŊsZRJ@:ȺV~-jˌ؏'9 e4^,5k!9}学}Ŋ'Dq̀{ 6wz11|S tZG@SZQH8Z4XDt|VSd s]LdXgZ UHp=vf2®_?dw 1qȜiB5NikYQhV?a߰6'D $يk7kJEN+ㆵa߰gkdIJi G2HHpsF~lS6>X8n}6k7R%HƑZ +O4H?UdiMQl%k+ɸ$@Ցݿ +Ȟ6>nZrH#qC2>nHuWIWk}Fe>xPhKxm?COBaPQpsU&-l7ea}QjMHǁw}ǭw(m?٭\ouyg`߸s^dE ?(NJ'וWBŅ~w2R´´zaZjߠG^XOLsZ~)m#K+]v^w'40pT?^>h`x//޾$[XKU~C}}clWdGZ}cm7I ye]NR,Pm,Ю4t`#|9'HHQ5|%: C ŠОO_~찖ɾoxK*i>0w]N]w;ax>/M0i +}nr y]#I9QJGRtjeQdJ%qyK{T;d@/% +ᮨ酰-,k +MZ1kCC ƭ~[4 +5 v;Lل?vYY LT!QȦ)t0|cgD8E1* ޵uy[S,wګJq)!LaJqnGdK}5rr +e? cׁ*l0T!]l)/ 6&o5sd!phgK=~*ƘXo7ܠM26I{U5 +fP\ +rfXٻID97,kF}STFɽ*Ll3d`ZQFu6_ȉ-Z87D5(qb*6 hT/hhV<\.<@s( IT"r*3 94H,Fg 29$I`X mJ$bē1&(U؏Cc| g@T;7F Taܯ^e- ),xXT¢:sTq괪fQU귭FTylL&LX8 ~րnr֭ 5Gx@xJ|#ܮEŀDK |$ER \ ,񙲣GBL)joRNmd{C`yc4"G삮'ztd]Eb[>7յc@ߞl৻nrAFNUeƾr +t=`pNv=(+ y}d" V2)I:WÊztoo XH:,˭pOqIi"9uSOU[I +dK/ +ߋN@ՙ݋h׍p҈ͨBdf!?`Q +t,Huq=˫-l;LdyV Q]58DF,Bp8 0:AG(v[es<W m-f\EŠ5> mXF>81V^6rL% #0TmE a.:Yebzd,F'0zs2(k9Y 0lo ' ]]u.ؠc=qO$VSKgKa|R?ژژ zBNޤ vЋ^D\@+]/ހӺv[.53 *`,Mh`kzm$io =Z.%iBY +͉G>hb.6C{U;DJSv͔]R2'Ƙo_ʢ[h=)ަ1jo3TEE)܊6!uQƚ(c^HK2.NʘK2.}厣u}1cp* /EciT>>RR[XJNe!Xז]MAfU::8`O@z3MCY/ک.mx+)uz^Ujٟn6!ij-Ljl}(5`Z^ByhdgWegb;]{DM eT f]g(+=0]l"c>h|Bވ  O \,8FZ{x q[Oxxݘ"x=QawlawCkG1aXϦxnVd nvsbya@#6tg0aGOTe59()2!?<__)uQ$)CI""t&k +@/%/ @BooWB ;9b:6g*,y\"f(צ;6{fH.6%E.ヹ=)+Vq,<5τXKL&62!鈙7Ǚj))}d,p̒LUe|uҿ +frju̩Q;@r$ c n bD +E=0*(͑\ˢx:#l&x^%3\ډ+_ +aZ)DX<3+GR{é$k1Q@Vé٘D|jGOmSP/Ax:%,o;bA.+nK 'X[ƐL0j skJdN5n9іE[B:,JNӆU4*x2t&ZuoѶ?">}_|=tGF#q"Q[1KGn|7ASia0Wk&-:7n:X?yq$|I.$eMum$`E:6EEێ[J?f*;[u +ikqL-Z}԰죊}T +AbbŷK|[.=!-ߖTŝL|E)Ir^GX }}V(WneQsj]͵g)/ ~w;Ek𐮢8*tIz9l׼ϧnqaegⱔ)E]L.zrBO$ˍ`]OP o )$c[m\f\g" UF4:!wibqz MyT(s$|[*xWUϸGpP +uRD3 +*Te.x$ N9R+AD+Xcb,)0U!ϵU<ׯYVʹ^Ui=E?fn9(g{uV,O`Ũ-EKm)hdP#,0+mqk4xaaú<=NY6p+mCY;#["5W+ˀE<cs}ja&I' w={9fvG1@.j_IY^klr%׉< hqZ~K7m.3KQk0vZ\ J&Sr13'#i#egJ[s#&[+2WƎqۈd><}s? &gH&#M/=*sNolb2Ijl5"cPY8b!Cp g~jhiA( rA\Sspr#=w5 ɛ*%kȓWqh%0w"v21sަlhy)8Vg Oile%@3zx׏w!fϒw/O)/OO%ӟ)6}Uhc{֟_-ۖ_㠻$*V]i>3+c4# ^]zWp}x % [E->Cr 9lФ?v+ Uiv[~%Þ̶veqk3 ;Zn~mww`2HQ!7m³o#|E&]V}8F˿mNaBbGݯ4wDXgǝJ%'5wܞ@Qߑ~w0(i8_#9Ҳy& 71וj Q;{4Tѹ"dž.Z2 |R͖71roD1:.uƚ.krWS"DA. C\f +ŖdRM?b|$cמ~?s]2l<'z8a/]N|W7%ߕ]3I M G UTEDۤϧNv+%ffwݟ8O$[S5]Cw97nظc&-a/9iV+%#fwBUi/Z!!m/|W^"C+滚apJ!Jwm1ꤕjS%*z _͟ ǃi1+M$\IXyU 2601 & 53\WZ,1p%b 2\- \03\eRLbhI+{G޼VL!6HMp l x QW0<[&f$~9f[3&>1o]f[ccKo])<D='[C9+(T:1"\6o|'XQ`NJuihgKާp1oڹ@d S./GFx(ŵR\gX)Xf>~pyi˱%'<)݀O c9 +! +y~ Yu5|жkc_ѿp_xj^XvM/ʁ0r0a \i!Vq-ʏ/*?B/_ &(\+B N6`?GNj@+5yЛ6yb0O3ȿX׌XuiijrF& e灍uT~q Qٰr^Q "}#B_@yT\+gF!r չtgQ**#oqtY*,$NxxC1ϜSn2kYan<hL+D)ֿ9|b@4<V@w׆]|eԩUH'jl>g VuN-"Z=StL+tz6̕@%,'pA +#&= |Bϳ ;4#1OA_x< +PO\qVfmܑi[G8*ta uoeK<=Kj_]cX= &-u0 RE\*K^pSFyl̬+&}?pr]e\3M(ݐ}ݸr<GoN=mo.7:uœ-Wwm/8L^8vt*)-4,9WXG\q-NR5I)5)!Y8\Ut;ЙS3AgznPɔ̅DHpLgKڶ` '@Er<5N#r{FkR Vf5V (~"vE*<ώ/jq +ut;vj%^0r +IŁˊʦHRG5$(s)Uwo\pٱErL;TaqwH" m;(k-WxF]4W;~Lkz"HL;;Tob + Yp-U͕H"a:~ r~IbY(ISRrV,`^ܩlyK= + +КU F S!M$g X;,Ƃ64M'lpD B?k!$xzhd[瀊%AhPQ*;0?J 2 w2) EBR`sEٟB qٌ}&V% m% +|Ԛ% +ӃDfH}'%;ZA/{0GQL݊=FN$=9J7i3=4!i])ARV +Z"q5}̍AgTa5+CIx;[F_b2K|l..,Ѻ^sny2-ypxБc[ijJ<[vF@ `Y>  ~MDp )⍈wTzu>҅Dٟ;/O/ ^ +N@o혡OC) Bj jFl߂h-ABndqS^<[qtr>|8da{JƓ07dvC4Ѳ,iIs.u ~.QjH>q?c())~aAHtyT5 $)rt\C:oK V-~~"W}ʖ\ Z!F+-ڻJI [*oCqք9ؿl +,!R.ʼ_jPצmD$AjƞdmKMMKEH@džƷ]@1rOj {ll+vQ:m UXqʦb, - ƌ +V(ʖDp굇@{5Sgvb4M Dm8hOM㥓RXIruIĔj(3M03/Wcr:3(xT9ϚZ ;ᛣygs !bm@>J%4OV(dKou6 ()e8{x36-}MѺ=xD ̍l,$c_pP +&Bݐ+lSP(k#ᬂo7<0TA$,a0?Md#bI&!H]g5TJB SWok6R8jmա^z򚺺z,d7P\F]Mm:6Ywuu s%+,l3dzE[*Z汏pGE麺5 r -Ez3ugͬ#EWGx1ư7KWz-]]ljbnK`ӿ T$Gzzo[b"ј`KBGvO"iN[ FLnh#J~~nD˄~.+WM\kƂQj@0 +S劉 +ҹ$6ejuY`:ˑH+MO'R|* 6jq n^Գ#乁ASAq.ӎ1/emlHnP")[v_|΅9KeDk~պ#9 &*( @'Ix(P|­^+s{EBO`˃A[a R ¹߿ .PBDi gŲ}Wnp8o2I DƊa˳b n# Co mgUvO"sVj8W[R*|0Op/"q3B ton*+Q9U빝E̻]r1̽L5:_?ŽUA3#&s?-k=g + W\(,L##l_^r#e|{$j 8lǁ|aHuUk+=S=:AG/ TG =CJVNmtyxI;&| ߿ޒHL<_*HUg/CE !V}6L/Kla@Z^2Kv:T̸#SOq4r"(cԥPOa 21SɄټAOَ;3/#Z/HGv2ҒL"ؽ߹J?Is={{HzߩeN J^}Ʃ!kt'-)J>=9sh%Bk.Mw8yuYN#Ѷ'&3 *HIke~F;4Tz(*y(2'>5E**7͈qn")bldN6xΖT_B/>P"/'WGGQ-jRŷUL!,y93OkV?_o\"d*l3q=16L Y7acߎ^y R/\ FoS|V(0S>v U7S)4|(#Cz"[];۹jI!C)9r6Ohczol_;yM;vuclAc0ȍ%4㽴op<`RT3uo!^~Nϵdڌ/ #"FǛUWSVh{ZU^l㔨Ng¥7|c+7˖j7ͷ!އk,?h{ϟO4h,~\h7[lC6C7iKhK_,ҿ{(י?/VjkCVvu報o>U`">'o;w^xe[Mue<~>37޵Ⱥz[>|v}/}lϭPuc|n}<K³r۶zS_7}쿓X-۲ K-7˗`W6R_/_[cl|NU_z1oR}DQ}xUViadD}<k]3vzR'ԓ 9f[/LC .U;BՋƅrtBH QHu:ի;Zf1Ƹ֜xK JhS~ƪZZH熰~ފDm +55{Ǐ}zLqy]ms(K3j;{m|w P諳ur @Iڸj^>h󺑅i Im"N$guj7[ҧ84вXK +=7a{۰txy@oZ WU +M!߲uEpWqМ>HTv+6%u,2kHY+0\1Of,̴|L&8k/z,~[?w٭R.]V[.Žg-ِi19 |ć̵ Zt ;>7[S]R|q{K]*do(×Z; 3u fw)~vRTL$SQHW4嶵 ӏq!Rb;n]tˢm_zʦnPiv9m?GhĬCI;iI.ia9`[&w& ?9˦BTD)پ +luV#O;taH)eЋcB~TnS Wd[EW*Q d $vN92oE;kW5䍉䉬(5cPc`ȥAym%EiC@m~+Jc`{B*'A y/{ΉIsY'f )0/j=vEc # ,^ZuTO#o.E푼/gσycoц5oy{c^nWtI()#6d B |8kpAB*2eQh#g_(zJSkMj!T?`3U) {oW2 RY<~϶Fsr b i Z_ᒘ8 B2@*$&Kv'7;o.v\켹YOIϜOᄅ}S&t_;u߮,yrk!؊!I9/=YJK2?~ӨJQGm eYk=rk]<['ޟ.~;sP|K Qfa˞'8h 8>iu9`mj(>o|L:#M:l:[kr'19i1z-7܉bBsĉY+VI%a/' eDMzXV/Wʘ9鄥LI[+IbIϰ6ͥV?ޙ+;ryE'Y< ia lp@Sݑe2i;Jd&(yEòS5ȋ1{4 %zN;]eT_XG=xwMV6 OLk"%kgEca:sI8KKCmQ6%$rFjqֵ*/M~`.Xʍ兹[~]7~naÇ%> ~Z( cѲ]1fXK d:䎙\b~W?nj45~5\jxC#b:6 ](t_^oߡ8$-oSq~XoGVt(*iN{'Q{uTį4Ĵ_Z^FU=j=gBmNƐBaj|D|,|0b|c:eTx_ob^6{+i$,o~ž +o2դݙC[+7T^ԋԇgzCʀ +*rP=fdj|F uPinւ'*U%GZ [mB-ZA5 OT#K7pɀqy:6 ,άMf+&ܡ>X-De73.z}9Ő!(hVPԫsvGNb~]+LroO#xtk]*m/獮pDlS9`[,h򈉖ΎḧyV;7bƙX&jw&BT6E{޹$m?sBAXLJ}g-L:$%8?vz\k#(}H~5#-ai%SY~M/>Ymwf퍶=EQ`WϹed|L281 w_3k[eCe r|XA`g H83%Wn03bN9j'OmI,ײB*j@gMFp2уoXP,J{P~J7e 5AUbWG`*4 G"eeɪQ^Sem /yiGH^֯-9@kAYƭχѰVQ:GkeW\VTKAŤs|ĸ, [.~߯22*cFFm.̢ENoctTt{2plti,C+k,'4V+)B9b=™\Jp{m?ֶ"yhw‚j]wXeiRTh'=cfh\IQWۢS T[u[m85W9VkGfB)UvWA3j={N*xBR -Z3J-p_lh dXPHM=- f S*Ď%\fXpv +PLP ,omAg 8KYhmIt|7cE.0rTcCqLic'^x1hźb/6,|G~4UQϗaTtF%|7>O$d&8DzicZMWoX'mW){L2}غ4:5ax-#$(+66(‘< GC SkI\Td&!+:a ?nNA"Ы8EFH!C#ȝv|rEbwnSWr+t+#riWVXChU%'c[ֵyP5#QD8LHa>Λ7;o.|t^kbM1j8W58[Ca A^- /S<b^b(T#LQ)h+5C %(C7J>$ՄŬDs@7E(9 1(|Y7P7Pno.Z"""-1FoЇ~>ހ~6ÐH?| 0@ڏ xkޏѦrQI +o3xD p m$ްG0\%>Nioa !~ŭFYvPR{}1{D8| NcG5C[{5XyANg!IYvSt@6{&j.ŷ Kh.PDucsQUaǪ+$->boI'PlFs߅@j㵢skn,RJSn`XS8xGySN*hƹm 0OTىޔT[>N_#xAo SVm +vCV$3wOmAJX㆝I0~_6Xl9)_" >IoOѰnm_Dܾ23&.x5 RD!xΠ&"Z(kbW's Z泓`F-X"`s;q5wꙭrV0_q ^5ab)d%!x' 4{wqPE!%"6f x@c%mP>Ngw |Qjݣ }~=~﫱E9^ωG]*Y[4I*;OZI׊u>@s΁bጠG ŵҕcv-Lc ++.۠- 6.VX`c"kkBWcvʱy+r 5ku/*a-ߏP,oӾ6N'_9ڦYx6pf;=Ouf7CB}$#DkғtgwijyhYT!1֣^h޻^u%+^yUj7>iĮ-ҧ .gbv+sY-v0'ϳ؊96j[a@rq9q&ي7ݚ}:%[l ~nxpA-FGܭ(R-]]~W,u|Ƀh7l +2BBc][ݓ["g'q\vaԖ2iIEPI--UI(yCf7bG z-[k9'%7t b23SK0S5~¹f۞f\qb^yݷ]sZ S.[͝zbw3yEݺ4H0w{k9@PHJ}Rۙ}[|ԇ<;PKle; KV\nn|E1qZ=Qw+롂,\m_AS8l׷@?/;twPG]x|yb Bw@S L)Oy5H>s>•Q«O52dw-q8;O(JuJ:+WZx,)WUj&Ou*Z㼯?ЗJJ˥zNj{RחZW@wΣ]@$ TDDb95,`-0pyjqJvPj7Ig =Fج-.l T,Ѭn)UzݼjYEf'|BfɟgCy \viLxoC-@v{f@G;4L戯:WT(ˁ۫Vrq'QdŎɚ!;C^v/WBܲ5IE֩R/ٓh^o< _;pk|0Af{F0$1|ܛ`UMy}VQl_vϡ2sIs4&y(/ԆLJ9F.H\$ ׅ?_?{o?$2Hx_)Ĺ&oHsl +dx]- eyn28Wl{OVv~Zשk~eq(w#d)61([hGXJZ‘;P[Y,S9*s K|y8,V LE^$ +4e ֘<$eQ:+Nf8;;ΔGՆ~.1CUgy|L2ߤ +g(5nTIL:HEҹP|ћ ;sCXi;f! &MgRd!䜷:riy^R3忲*W@*v__iV"w%/t+ɜ=kJҠtHU3k(AyT8DdZrh&֨(DR2q bg&Y'idLEc|wXV<)s:;ɩbKS MʑOX-;cN׵;Mqx5@ ~H?hg̨f%Z6wú~#E#_φyD])4r6lx I*t*ڙ/&F1gaikۦE8?|^۹j[5.iBHV +}VC[U[5 |{vV 5xS!$V6>% 12PƝR-_|8ʂnoV+٢b +_}_1Ҥ 6l>5"ʧ\ru^/Lv7/=(QK(b LrHA5~\ 7x]U/.SB0/JνSt!{krӚ+SsEgλz7"8,*xK)kRHg10 .#De4qIpe^( \F:?a\=8,2rw` +@2;+o}>.ԱO¬z\UH Cx)å=~hRN?9SPf +Dğ`X;n[6Ljrrv8$oqj0 .S\e41UruN@6;JC:Neqga?MMڟ^\Z9$Nm3Zڲ?j2K&Xv*;~&wz^||^O` +m!@j$ SYw%SQJOg|(wfTy`*<2g`=z`==/x_ .O`h'gS On^*R__(+9n;ߝzt>@-Y#;"C%,/*Aa8aSDc + {δ ZEW<E`'(ڧw>{W]<.#~(p &iw &s(7w*_n :T˶9Q5QSV]5–GkN;Эjt}H +:D{kaj[6?Xj>Kq3[RFMiw[6FF&_ HKʀxY1zbiDK%9FT{ʢNQ߱ypLj@ K4@jB]R][M"haR("$!rHdiJyHRܑk$DOTC&E1n9ܪrӃa9M-'aYae 7pnX;Sv}"ڂYO͹PS-2-SpBT+Q#yŞ т5-u[ɢ EHg9In5xBGB@xDTV$MoF\vSGM1zǍ\L];z-[$Yu&Aa }H;O⛝M,׻^!/d+!qP긶h?+C)/ӫ MAh c$:Χ-9xSS0{v_3ĖLzs5$Z0-Qv+o_lD2Zq ‘ꆼ>nF2T?`0) IiYMχY7 xA\A&Й@߶8m@@T8Gbl^_09/X<D/ A`@5iM`61h ,:/!JRgX//"?/qa:ơ m_!V-{A)!Ұ}* ;ї,f%Tbeo/g;8+x M>ce(_fA3-b+VxkD%~sO3S%q&z쬠&݈=e>r5W0c $K.;Ǫ! K8~z@Ls2#JV>壱>r++a_H A##ֿx!r+b{x쐼6D.?JaUc#ت_?"E,FgYqոV >3rvW7o}[ij*꣣F;ee7ɦW6rCStL%n5`1NlNӰj`w٤8r"ղb"iʨw!+XBr#Q@B&{ +VJx{~fn?C2N(>ʁOgO?l.~!jl1˼Nr\5ڒ9FZtlS7ո}'$ g҄ݺq zVvJS$ x8[jZ-SvKQc^8̢kgq +}UhثpR"jcq !a)ĴzF;\kjm 4aTR_ -' TvyWPC&+Kɮca8DEu}UJu+j& -L+1eށK;#pR p8R?%s6?Ԟ?B{-|tHQ'x{ZqDz[rέg'q?h4"ZPh%fjm,Z%i/b$2ey +{"2p[/с30AuZy'"+aAO%m}?͛Cџg"dL[mG]3L+Z vhvйp1=bCjL#=,mȿ}oĥĿu7=uw#ЂX}w2x:YBE` }㠯?^ο 3[}2Pjā]JF d9|HZ=B7wQ#~J K?%Ѳ=R@'l qX_.0jJz> seȪ.]U%Hoo є1.0Z衩뻠\:d\Z^X֙0k˛%\³)V~<Kj vI-a[!V6nٵ uJa]_B~l-%42oQ8TݓA˙D^v̯WA$AߏB<ۇ/$ wC? I[-J_Kn{ +noj)ܔYl_)/ +hewweϒ`0ԖqiI7s>Mpz$XWoC7UG_GC;ȪP.-[0o$J2cxPlLZfFveFn<}[R[sGg2{020a3svsKIfaY7Ȭ d6|bjy_3$NAN!6 ̖i`7\vsV eqlmV/a%_ԜՔO/X 031!& ])bȽXA QzS5|5"q)}Un7zI.\+guOPZV*#2n(R2v +* x5xy 7G!YJ{׸$[0zբw9%WAl5<"צ2/r+2BwHV6 WOd4K2]kPR6QF_($Uj0p3xC|[#yB#׸TB(veD?VQŴ]A_i[ߥ<~G0ɺ&x =g%}p7*H Aٚq>1 +UwsJ7 CP9PNACnO:o4b+bBkX锵/P@=X6C՟}pjmd " !rJ-:=zie"c0hYR6S1ם| c`[S %Z|Y!B4BZ1(Qz\ۛbp‚ĕJ WW.|]\s=fxj 5w+.BzE=z4Ʋ:{b)a!| q<xX_NHKS6_ڃmV:/fj+mR pQF?æ&vpUD<Cu6D=G pÍp`8Z_a׻^p7ƅdsQƇZ#t)mMe2 +Z +Kё0@s_{|M~KrU 8ba,d873=nxf*\\*ȱcx YEU)h[6GO^se?}| >F21G|d|Q> + +l| > +>:|\^h`ȿ1}|E|>ه3|86>Ge8|89X"]| c0)|݇;|6>܈Ge8w>ć{>!9YG(oHja}zCc85/ep.W feZQ6201y)ڬJM\WXZd!cqk]om +}RTբ́.25ʔ Bґ -EgZ,{i_ĵ8W: 9Bpa4LJa87[L(.-L;T+|$\hi4f;RE^}pkP \{RtM OQmw^|m%@zj63$CX@ن8S\4*^/!=g~kܡ||(ʓ\ fahS(Ws}> 㾗= _3=(gG[X5L^iLp2j,O2 ze齠J( 1a|v(@Re#(^t"N[.:Ӡl0 0Bu(MzCpEΎ8~EM4H<[o&v8Uc1y3P!/W TsP)=0ŸNUݒLYT +wg +v]H$n|>/hT:oteVCoM +T>Õŕ&%ɃXĪ:V鑎8bj{~ +?%@m*WL\|oweI(@ANqZ+NsN4~D:-BN=No n<7Y*{8^7kX}O 쓮0UJnkG-{Xu}^+qqצ`ȕ'8I&2jҏ$4{2{8ScڿZwémR;Z} Zfy{#{ >4x +0TЈVwjz²Tpߙ +c‰CLOcVe _/e 뛘ȪoȭZS=3:4R㢅?V5ݞ:ɕtO)72T3/.caQ*;>Q"i,V^è+0tEDED3O@QC>s1D\?DH(e`9/5JR(hFA XpOpq{~]H $"@BÞ1+4Լ%ո2)UAr:\)AIKkRe{>3fH"vךS1ᙼ,xu|̞P8K{?5Ʃ1Pݡ?@~3ZQ8אw %Yz1}ox(sgkITRa=-{>eQ#µYBWRHd~ד@ƏC d S L,/8D|X6&W".7EhG8S,X(=YG?4 PlZ!e24qXae`@,ˢ)TJn3Wudg?똊MLoey;{Ńpzrz?y]&f (1g6??ȕφ'gُQ72▩Y\qY6?9?.?ȍM@<%]h'ԘIiZa/eȹcs25?[0 ?|Y% zflYnjY:٫e?~ւClpWM292YU dl¡Y Yք;.t UznNOb7oʙ!~1 ?(l? ^i~\q%l\8~6,a[dҸ#Sg: Ol04=~rdY)#,ɒwr,̔TqCuL&^a\Ьgg7?kWM9܁B+>?~g:l~VY tYGn5Qlb!gg &g +Xxv~iYGV~6MJ 2N&i~6.Ga^rgQ,S?{c>gUAYsT~95LO&^Ios$skM|%J-L\ܝp}ǵ*.ppS=bҜ\M,Ɂ 0G$fJǾ$p-䴵=}kZX +[k$YFB a H$)0Lt{{w{ lDĞo߾}}~޻GI)8q;s8%_W*%͹-:WxB:xtQz&hwLt ^Y~x+Jrx1fz7Ja%V٥T:x9hHVC$-U )WڍONXR1 Y.ĥS,{j=ϩL O,5_Sgsj,ۿo.5|cI^#SN5ipj(H?az'g'(ڟn]5iKc<[$g'j/iaoiÅG9ȖJiT0o.qŴ. +Q8Ze=8ydی as&Y"7Yu*L 0qp시pm Ցd66EE r><;o;7W{@|HתQA*v^Z{U{_*4X5i_R_jѿ]?JaNcLmxyzOSW/|9J(hȟTYw/]$(o9I+^:i{&kirfz/c炠WLȰ#EdwwAХĿenЈnWr cZw=8;2pFFLaoo5tU@~`5UZ57DSS2m$)'ڑ/݂:vr"K 4(KS"Ԯ?vDȅJˊ q~`_QzK  +ER܏u"C(uz~9d.|"U Z wp jMφNn<R]Z6 $u,%E<],f2zuR.IoWF׈p425f5GVz3"8m(%8"#}"/#ЭRlSڥ\)yJfxJ2Ox) \7SܴhKϋPCBsJ("S<Li#d`Ziz+#2|o݈7w<͛C&2der5߼:U6YK+d9㇯Zn?ɟџjWАY=z5&%UѰvm2'f٪Jys*&"bvR~aY:]35ژfGdJYA5*ȹ2ez7U+\D>nHDԒEw4Wuxlg< o/ L*̧'H< rA, 6՛Hہi}"0mb̘Fzwn"Oi+ \Vw-XO^~A׿!7W?]?|gxƟ<'g99yC]*c욎ggv xοe]"N k.O}ktÔZ|kk:Ԏ/?:?;xTzk@׹N/5D E#C>"^|H3dZBFyY)P"w.]>|1$;ws[o5?q?ǝm3>?Zh;'[gO~P?0cezu&3b\B"xF[e??gm"d\G5F;<9x>2;~տ%? U}cV9@ +mfh|bю~ +?ͳ㇜'o?T|" SҼ}k\X>2__{H[_O%m^Gd")d9j/ V}m"T/PމϯF[9`-AtJ_h8:hBАn6b9ˁ.-ɩѻx,@;܎K/jĖ-J+hS1GZ6htYlPAhtY;F7YM%Tڃ!rK M/ G<2^Rcq,4h %O^x*,J;Zt8o66gpa:gbA U%*}T5䎹J]VKrZ*M >jHqS_jOn=Nl䶟o Ø^n9ZSJm?B@MIQժ_ɏY@кȐ)}ܠW}wAu˱%w0.4X~taPdG$w`# .'_XX{KZ NKrCPIu eD%!9^|QHi@N>|$:*7IcR;z:g%pR>BZu_BuG| TvM;2"H 2ezgT#>F#ߢۅ0ȑn؉L;|c4>18azewRk|mm_t|cg!mmM\ ^5jcfg80bc3H +Ꚗ"̪ FZ+O;i/=){W' u N(5Nr +|QlM |nTpQF֩ӎ$dz8Z|aX"hNxODNr2JKNP"D><89[ +#;ɱ&u,Y$daAri]|!Z%NUCEm1!+*N 斘T;&e`m&bp[cbzHc.GjQpkhqFmT|hW]{6Zx?2VԂX1ކScLX.rdHѽIƁ" TlkY+h*ɤ N[' I38`ZzW < +ACTTLT:Me/ʧ8E9D|0tW5y{h؂MW \gM.b6FwR/v7u͵؆g&}Y@1~G/xGt( +Y$gb^z1WJ +>qT kv+iD߃ 35i]#|ew &vq.l,ƓJ̵LvHtgLa>S=),s/X&+ 4&U:L$?Uk ŘMMql'gz+Pcvm籌Ma4r>FWMk|Y)U#8k|E}D 4f/!}!3PHt#ky_D]:;0Wȃ }ߠ<|}cgL@w!: ;M)z_8 KZrZPrW55^U=) 0F2k˅J +LKCE{h280ى{3ؘ[dz88"*gĝ%㦵Yy%E"%tI~Gl4ۨ +⽄k)]: {v0r=a4ʻL7ha<ʛޥaw{SP_ۊ7KĒΗ ~Gr\V3(+jbpvU8&Vӡ& xĎv8=֓pd׍Mf}~n؂(r1'ok~5HW)K^$8|T%zͲ4֞bpJZԨ4ʮ/.턯*AD߱A D>+Y7x!اһnuls=ꦴD +U7U8i[+F"-VuSՍZMOGb7 ;K-=вk2e祑0/j![  7SrbɄEJx]smpE&$WTYkEZ+mrEall4mY~^gZf"!jb!% ;Ph+Jz+J d~~!H,k5؇~AvAXek.9xma=OfP~,􄇍=O~nd4Q-jva=|H0J4K.VmY3[+_E= 1bXmz0wB> <*I$Ud;.8gԐ|Xa:JCu(ʝuX9uC76~%v!.XFdFb:gL4YpWIt=L&lB'8AP+w)%ӽeL-$2ӽI{3K2{p*qv%2,x-7uK u`C9̛?2y{~~s_9ь\-bn^CҦ }*YPhsbHYEIܕӴR} g e&fsעt )GH):su]zg]lhvU=sk |x ̄&%Nvu_.7/)_W_qKW =`Y8ζ"DL+:2_E3WL~2:(Y4Tw(?K%_k6CkR.1m2uGP14,V iLYWu .GdNBt>D+hI[+VG x'P+yI,c#f0zwM<6!~|''rOfM;zyډ^7梗7"zyo$/w*Z>{)kcH/{z'C%X22w~X:X?[ά^uy_!oe. FPבfV Sa_ +=7T>:0'Trd4Z-^V^סvemb2~:Nבn!&<'>]JؤctY]XjN0L~7 )>40?$˞=3:1B:%XG--uGMwXVH,axksy:8Ba i ybxtHu*(6ædhWϳ=wI-;P1" + ҤljQf8hd ^7v +V㕲Fjt).j(.'27^aVMI̯݀)M<lQN1SpO#B? =Crj tuwPI.e?w_}F?  +XK.apIuբbR؁9ݧ洚V%Xp˖- /wy2TggdӽP_nԣbIUc{#au:Q$K+#7IZ>CLZ +mlm72bU31Ǵi.|XcP_m2 ZLU=&.rG0Dɦp]9wVd:l.h1ˈ1X=ZA~eWWsGѕW]J@t!|!Vzw\oKx9hgݘ<VNȫVb8Hme6+e;5=HPg`M="F|MTf\m:un,J9aލ +{ F3؞T@ F҄Lt +7ounk=n_Ġpݧp=luNw~$ +B4jꉯ!4b<DZ"u'xa3+ʾ3u76'T'Yl%H}/f}![QU^m aDxĎہմD+b+sQ^7%PUNJNDPEX0@KeD٥x mO 7tplJV(N|6̂7.6<9x~ `"Jrm!n:*@CCb♰VZ+vdPJ=L"~N6#nHkMǹtvΝqS@>8,egXĦ2dJ$&YIr|dpǘ~Lq S!2)X_wS@*yEC&26g9>pRԓh.fWI}| kWO.*nqe/Jv^"xr$uMA!y"=0WjW|q_:(S_{@.:_X_;~WOWs/?f=:%7>*vS0~زrI`"6bbR:cpZ5@> 6ATvQL <2>/JsHGbSA7,O>u#,T%}NJ\ +c82 # jU*ɣauĽl|fZ4K\df`/d>-+ he#=AωƘ ֱ*Rq'dz/>D\pAuy + ӜJ@UZ\_/'B@y갳=oi4$!FKsթToG7!))_qއ>t*'L>BR y1mej%ěJ[-=!׉P߲flw+ S.)DK50¢.#_s&3v2$1+W0IOK:bf:4ylvzVTS~- +{jNAP3V}ְq ,r>ۑ`1Ho5EinNÝQ"֭Щj6b"}0=RKl) 9F{ʧ};@|'hsa0#YD<ͣ27^?˼>"Tr[:>d!s$(XǬ[@O"9Rbɟex:?\NI +)˶#앓 s[(ij %1j1Wq|xGV{$_f@XHGQcZkv3DFfoukYz&PHxjiaj[h%kB6$7(ʭW.=epm 6+1=!*l X=X-B<2dT>_ :9jff x!Br`_Re k\tہ. f/^L\?\ZuhSֹA=~Q'm 0o7AUNF$#D lz(q2?B0)RԵ3Gv+̉J vk\'5بp;2Ħ S00]k\5L4j.ٗ.p zr$[0qM!t91\s"ȇ{CKϐV&ʓ}4ErȾ.[:+;aӟL[fGyܫ#cx%luxKc$ SS1$txzRz-+ HsWr\knL_+PoB7oSiT'Zh$Y!>D&升J + +b*+4DHǛz5FfI͌U s/ QW&MjϺ5>$qОG\NENtRؚ;Af`Gh髖`;M;`/R~& + a%#/san=B3sd"!M"{~6k½9¼7I}kp[{ lqr~W' T<Жnh3{ʹ*Fբi6]~v&zVbnzޤûi;iҕUq m ӔN[Rv7E'ep:`Xկb$TZ4{Cո#QGw& $Ij[˿)'Ѓ3\_<mjD:[  G$d+n(VJ)wX<nռqD= +iOjfJ#1ydP 1Xm)˨hN 'QuX +ux4>`$%.\;2əc:$Dߪ!WQT.nUG;.Gݸ3uD6 `2 (P71Aru:n:`Yh5)a&0atr+)d]r I)[H .:& +21+̭(⾥{%WuJm@*xBt7]dk'|C'2 hcE!\ + X#2 %hzj ZĐG۰T7p\q^R(MzIn +wjTֈ8wR5ǫl62|e +7301QI۱9rfRk#~I|FQiT58DŽ̬T%fe׊N0lJV3 6As~ӷjUu`UZ͘sBT4c Dk(q5wp\n جm&>otL%uX 1U6DtDlu5|s iԿS */0CTtvF $/b9a9<&sk7%W] <94>%F\B0dsTb{eqIbEq">[,b +v@*3ѡSgfB:8jA"!3 -+tHb!vR|\&?SVZj۷(9L[&!S%V.ve`3 +n +N-T|Bb  l(jG=qY,=%3@ruOMfr9Ն#7@W= 7*3e#cMัo$cp}S-; +PsΔrx$5PJR+TB::GAl˫֍;4?E5Qv;xs +8{MNTj>h[5B z%`Y<Q=0F.-W-EI+ր0̝s!q׉M#TD'MJ4&RJS*{)Zz8Xd1'2j/Ӻyx 4=S^_s j4t."AB&Ѵ޼/gA/n(¼)^F*^\B$FTWӨ_VeG>-.7Q1ύ`bw-E`u= cH],l&N + @Fuُ3ݔ=UhL+{)-&"0!u!4!RcNP;X +,5[mR7eұ4hٞ; .i!YI<:T \xR̈*Qa/;.2N)䢃<tB ++S'e(ɞx4>fWylI +4oCOT?+chCk&RWg 3ԛYh 4xĉ{wQh;"+RɡqF{%,? +xtJZ-w=SrCJNrxF+0άj˫LP}B$9#$@ 5^C;kT,/6>Aqf"xRK:A8bF+a/</uF$(8WH}:8g$C3A %^إBq?yoceC&_K6#"9Ycy_֜!/HYT( 鶚v?`\??5 ꄘVQml(-rGI&dCӘuYfklì-+`)LAM.:dlN1_'A'М[4 +^B넡_8<9< <REdK@p 8\l]/ [L9yN$,*TdE+4.!"Dybo'ZG/-)Z"Qg\ -C3nbf$,aNKGo>毻mKs~@]. 9\ M@" -fQ.S`$Wgn<>F~q /9d`劃=SGc X[F "N-(I"TtGyfC@49 +Q@l"sh$4lm̙Es'omd + +NG ~L٬*K`s>!?$=eW|Cvש|۳#:?3aCU%sfӻ$vݘ8:!Zy®x.)ͥ }.z*6C{7nr3Ą$vߒxoCu;0*R$ +OLO+Zrң:S߹ԡ#U|53k͠U/m&"Qi~C]:,W|Bk 0owS?z/u˦3ef'aWh%`4x ڣys/M{'z9Z8(&A^;UrPg?u" 33ܜIwW&a*;=8olJ'ͫx~;O@v1\JEw .2w%crbcp~@D.Lk:<}9%vY1<eGpB]cV;2fL!3'ָ y +͐k`^϶^O;+7Ȭ@Icmxg7LAPݫ?h LkT/L-q:N}n玷gR=L ?{fcGȥq<< G֌ض8$e`~t A%F 3 ӫK9]F:e Vwuyv.lH ,EudRP)0!cO{GtQ-R$ vh0qو=,5|lmwwQXޅ]p~ey"Oʹ'X9wm6juXޅ`y]Wl8SNR,ƈ<Ǽ"O7_ߕ'>~I4 {clz"<\n:י+gEv1ۯ{1t/Ptie+'?2ss eJI|sԕ$]v%1əvJ0KSc8;EL_y ]#>nι"qQbzĶU +gwfs<}Q|eqxZΞxzӊHk0umwxD>>u xq"H/WU㦿^j!ghDžkG'ӎfLi!"?OD=ZX6VC86Q.؋CJxx 2D)|:r's.&j#=|Ò<1K]7ȼ#1y6L~̅6vSI|MW'YC|z[Q8o[|$_)7j +a 5oQnf^3/ $U9}I_썞+<&vUhVyk"}:Y=O e79*O)Ho.R*6WOGtU Ŋ K*JG3*_RI(+"ʜa!c)eqbffe*'hS" +1Yxw{G)?mVEa>Fȧ9g"k)VѾnM**,BwpEB_έ=7WG6_v9Zl|7;}}ķԶyJXG; ҡ)%rPޮHZ{<*$Ў*RڕzMSg?uSgB*̻TluQ7rCMXnj]IxBVJGz-b߲gUW0jLR}R(=f#܁]8b}^ѡ*;ԨhuxZ~nDtbqTʩ-Rsk>o+?}/sݥp.TbԈtиM5zͫqzmв4-Oku\*0C\z/>M;w|:I"Eӹny*ݻ^?.t{C>Ǹ LLI57[̫yygX4ȕ/D]ȴ̫mѲ-7̥柃|)cE}sLX%v7@En~+,M߿)/8:zB'nBud=^Q1YvIp .N}DUz$>bH5˼~_k1^Vt΀{ +Tj 6K)Cp%ht7g. +So\ +F*z׃2?zG2-gWCu7}}y>CF֩.S>yf!K1/?$<}d;D"kμpv+p|b~ie‚ǜ;i 4m{⣛8Mi1zIk&9nkfTiĶ|I3q qKđpӴpo(bŸ\/\ߦmN\Gc.Q uǪx(>*0;i(͏t=!+AP~J#áT~ME?x9בzcw+{mC57:a5qZL6s!մ=?beI.<5nU'Jc~JZ<)U$'DU̎{jǽ xaE΋܏5R=$Vҟjm߉DԝGW#vWEr91Q r.śAΪ-:c?YR'qЭtG?왲9??ǎUwlQb>R gmn>eX!^ !lx| D PC?~!E/mu\:B?X(yP#GּwauП~&?"RRX h]~Z-R DQ|AYw:W,Wx+e@ҦEѼH>9@}ߘR>⶚UX% +aյw0%sC8 +!ekBEʃ!FP"ԌlH d +f?GƇkNH0mB~|xl HU:p|y<Ƃ"7f'P~3ҬEN +6Uq(sLpߤ2;`t*jX^Tk௬' s.a7mYUv\fb6leq۴o8S;㹹') T4e}x'5 !ER2;tw~ n.7vc`7ys"bf/]|8Z}bVnc^Z\^Lڪʚ؏@j0RHyǞwfYȝ`h@[Q|MCn _;4Wnk^^+kl|kD'l;_ lRlʬ ƴQxo)bW!m7)B%[&#uSr܏?p q,g>jbʷ0k[X}&h|8E}uZGL{Qzɐ V$UD)CR9>=gl}BtfGfڶD0_Nh[aۨ8NHaF٠֞lAJe +cR?4*Qr>A~P$vB7R9jGTwޅ;?ez jgП~ +#[i1P# a0MßVڼؖf+ͱs4< q8q8u=?+Te]hNw_ur j +YL?Bцf{o^.MRn@$zV%Q߾41k!m( /4Mݗ.c=4j{bp!WLڸHS]Icj-kWZk8"уyyz8*5|W=(5_39>o$MrnbKD۴>t* gYTEQ-ER<[M"$O$IBϲN/seZ#ZpN3-C%Ls'!aכ(ؙ{1CymF=47[2Ĵ><ۇnE6t4I _`rCcl®&5d0ցaS_7EiciFqi7:69S36"hmgcCpHKe<.:)yTC|C'zT^\N,`1J%4NjR K"F.^H\ %*t-tțM;%:I#y]ѧдh@*b[J36ТG? wTUU\-Wv6iq似CʔMFDulŬORZV&ЕB`w>n_[ +ebvOPm^&KS,OYx)v"x?8t (&v۾⾖{a{w[lxkUN/=!^@^Ն2 )x ȝQF4Ȭ쓴 %;yCf'o2t2We!Yf;Ί/&oGobK8O<73_ʰZ|mp)`0jƛV6wP|!Dל-| o/Z]n2 zu2pw"2mK>էk׊_k&\$t_Qn/2*M"/,/ky]^^Ny؞&Л6['oiK["#,T qU%>(yϜӭ9o١7JLj;PɋpfDXhbǟdXDeH̏u@}{Ў6J% 0u,,ɈVi"Zx* ϡ,0UWVѥi"}gE^NX>%^5׈Wi"^j5UVZn0B z(wOq*Ni /L#)(+f0DeDX`iTi%8;fpu1oPWL{+҂ThPq"H%BwAm;y_)>%BB +T+7ruV{ű9v/oMVBUCU¬DjaXV;o֡U[!ϺPqZiʼ 6KdWD6qNsQD̄xp"#$-U=;=a-Z9%5 ox/R -SWBN f*FI햀aؔ,"1&L jbF,bL"!sЋqpk@_Z%[4N!TфAA-ViZGZilvGQ\=Zck%# ?CZ#y?\ЀR ++r=hY3O/)ybOHu?#^4LnO Ir6J M_PHkg^/BuiWjyv{U{*G. Bl$@;mc]Z̮ͦR[YūX PAog}gE~xǧ-V ~ +ټFJ1=dYEMN3^0O=/7ϯ-`a%.~XW{%tW3 5P@n\To;2{kxa㪮vko2)i5S-1i?ARvjYY H:6rq[!3Ct?νs=޽F%:uTЧWxhnb ^QFn4] 1{öoPp_ 4S.-lب$OL~rIMM|Z+{=%@+E7,j씶ZNK;'OeNz:Uz9o,U~DfFr3GޟҍJUҤլ"eeX!9xEVԕ{DoDw&Pqs{*,9s8+o FlYҸj^u#I5zVW[jk[{/G^P6l2MW<=U7{ 3\xu}D.뷖5I-ɖACw7.2x\E x3BD}Wp+"m7xjтyI1?HQ ]'9xKEכ#y9Q d^֔}oքTJ"RG?rpYZ} TMAٳ4+Gv VE6I3>:;,e+4G)\b ~/3JE +UW_óȚF" +,DZ0HS= ̆>mV*3TVTg 9"4bTôf[Ȩ3d 7'9UCFN +| G5GNR'A\yWاjN ׫y3K(Iv+H\Ίt^'OT }/," 8YЀiʃ cݽ7@3G.N2&z,ݜ7"#KoM[x)FdjJq4& NǦ !cBY9F kБv+ |Є,8J"ұ[~99Rq.$y5OLUo@fʲ,Ihy?TW&} j">HOJD5@y5|%/5܈JJ A_ 89AҾpt{P"l󒾃iJ)]tIˠÔP&!loT`EI黩 N J$־%Z(9%+od)&57(6RNr +ά\umGeΫYķXR,'e8KZ DG״aֿd_A Mo|NiA܏AG%Qw>2:}@FjqXU"7&9\|ہ܀!1-m h/Y} +8tO_*k zq;+Xz`F*> Gb !#֯h "_Ьy2#7Sg\`YB4FܔaE5K0Wi nвgYHNni@ҪR@}Nh+ƢbSqj=S8I]"ZrJʛZEwՉc{ 8.ua5[&N=; JdX` :ѹ:vc|&Nyp$!=$ӣAA~4{iQNM|aG/n^ +Rjdo;:v>2|_ kwF(Wj!^P:cSxEF!BE%:gy}6y2Xjjh P"e'IЙ b2DCXz: ba@6~ +QzְX^}(ѫoXa ˓g'6HϸSv<;8 +qN_MzT8ztHyut?hLia7T tqMHd_" LXD -Xu=oM/ +m#թ3r ȘȺ&]gGѡH~sy6Hh.n&Q[}tYIT!`P0b*W!^9w}*RxdoP~%t%g*&$jO ٢]BL!o3]^,ӻ- "h*u6jGX]:U]v)j>kGgfsvA |:/ʣC 60ajVsS[jaRZV\X8Sǐހs jME0VppnkS|j&a>0;[١DγB ]c&Ǩ?0"ʒ;BI[y9$^a%dCs`bʡ[c}yodP>@ϋ+p?]Y:0ԯu|LJ 8p"~EE# hzec7|B )CPL9%m#o\/[l kn2`4ehR,7 i/؏y@P\Re-%u@Gkq KoE>9. ~qN(P/2T ̝Jlu)#h4v^sl!%Ejy@ 2YTQ8Dc;ЋMkS#-\R^x;E7|CX[Ia^y+hH)~}ѝK8;j.%kNuR +alRR<u^>"Ά; 6L *Dٛw3Lb}Z*Ap8B$b6+1U '>% ;D>ĸ_쓓RtM?vxB?Zg? <<Slxf|R9sn'5Vc.2FY s(krlUq(X=r\P^4J-8&zz M~(ħD"9z939~q}>3E5*AME)VTG`~&| +|p8+]5>q;8_4B3 +Gptˆq] C)~VC)DMcz.(pFu $MC4S& +gd[Z=}>_ \r۴ `KE/XP;JƔJ^bcyQݎ; _𻆴 +!?e qMHֆ"ؑ?c?3^\ާZ#y`A9GqbZ,hߣ.oEu~ +ΐ C>)(Oj@{Jd8{Yt8`LgkA!9]&aJ&y}I늙,0|.lB_)tuN>2fG&rwHݝpW#3qV.Sa.~Vz 4gnބm^{6A C2;p?:Xq>. Oݥ?.k(Yl7Q{8&x{X0,oۊx52͒Ygn.#BUϛm2\*u]4XHq,*Ȁ@X wSݑ4U8ӿ$ B}@e,M0<]rANm@NtANѯdt !C#9Ȅƫ@0PP +DΆU*WeȞ|x++ +&ΌgFT<3&472ܒntO 6}, fHg%#:,Sb9!'R^!#>^*UkL +-T.oiv8,^Û;&P&mNЪYp8++w]'k{gzg}q'\ep}C{qD=_cNβ`Aj&uW}Qf50 BgӺqN#bӛmp CZ?Z\ @ +IZUL +`N@NoH*+Z:"kT{wW݋=xѻL,L+&?jC2 |!+'4㮩1Q^>H1!|dѽ9-K\tRAY:%I~7di~]S'j9&^}+:ZQ&J܁߅oQNd].T K|Waĉ hh#m$|,ZH؍>X6PH7rSijx27 nT"|7}} dN_Fw=k+*t=m&Wڇ7BPm4>lximlT"!Z5[IA*%yJuL@zM{6ܩ|rbVD`#sgF Ȍ,00'%2~Aχ1q^AD-Yq0}̷3 sFh%<>Ltw[LЙ3}MN F-͗l(Y1qbFQ513'p[_AZ,DَlY{2.XF6td2y0?PX@ Ica>ә&:L6P6"Sz8* :6YP6J-AI1l;0uAPMz)PdXڮ K%O^>/bT7S}:-47P"K4*5[E\#VuV[-[}Z@Ȁ DŝEy:(!kN%Jo]p/$tK=kznܯ*D&ͯ5a \BePjUY))褷0#ďf#jlXI [u;T8U7/Ku=r|M^73 +U~:y@Sd_:NsuW eK86R=HℱP׆ReRCV%~AocBp[=Wrbh{]]ʆjt6%d, +:c8G<w33q%/rlqJ [1uky>G,!/GSwqݻ +tkVm((I`zD W6n `4vZl]ǯD6QN Q5( E6{ "[A(Æz?f{vOOw|ܹss'<;BBi q黑CJ(gC`X @O5mQA +7sNP| h+t&%մnj&4 Xx%M @96Wx=w 1eDb0, 0O>i? g#*?ϸd\^5F>fBiȫ" 9C@~KTLٮ4 + &0ѾL{pz=D sy-|P[L@$a +B[r=O/OH1@_-"5=YDj\8(m`hNyz{0pp#EAz9qYdܞZZ)>l4h8bj1%ϐ L"#Tr5K뼠 R#P DQ43n|\^ hI7HE HAJM{ 3z%~r$#Q$ `˞/w1z; 6'Fd +"}[ Z}9ZCZsė;'F͇.it7b4nL'OKyO6};_3vU>.c=?%'ϸSj)c\Au.>ET!PL@5I A@ĸu}5jKY-A A5;j:b]d[ԃLE0dF4}_{X]蹅b~'"aE^$d +|{J_eR_D:5&igۘe6Hq% @L|2ٵ8n)(3vF @ï$Lf KW _p:"e^!~5ZH)Hyjj쳋>/;܇Zw2"dqҨJ-y \TO#AEG{0~쩼&&uy +o>b?|1 Q7:6v]]jΪQ*渌.F naO[t q.6iFP1;?7Q|Ľ  \xк2]st.dih^k+St}݂ A+4Jf[W{uƠ^IZR'iUo-<.>wZ6dOu 1R#9ڴf[!XXobd%g}96H.J GSqKj.p3.LBmc>*Ѫ3.nxЮz;]U05mK0C". %uN]1|d(nvT+8*NquOZDddhZח 4W֖&IF2 +ԛ+[q%I ) 9]|h4W6%]]4~GftQ;k570hYJxZuVs}0qLJ.^r7/1W{f#q8.+EH-Ƕ\YE"" @&x2)/:s.V"2t@lX\ Ŋ`,)sڏr>*oVzo&/WjZ[Qg=S +4Cɓ 8F+roi+jUdVanC٠{fD~ȽhHeXQ-%?C9.9 X9q֟j:"J8>C8--F EK28dԤ`_BSߑ[ҋHXRM[m{P$H-Aw%A[%-hzwj9~mǦ ދӉ⸥A|S#VjA&1F5Y-u=\TOk(zܵ +}& 7SݡA(5Äs-hETQ((njT^q)ڕ' &^qaٱmGd=,'y=rrqXe5n)vO!w!5؇vc՘j/Kuc%›!6erFѯ}~5J$[L}X&^FAM ǥMiKJ!WZ +F 0jgXo2-RIy$7,j_t:,ܿU!X2E.zzjE>wx e4(%d2o=)ͅӧ{dOi/ ګ]S>.Vo}z! 9~c#.,r;ddu +<),ո L9*u ΐ,3~3XڞG$ؼQB$Ti&"4js7IorobpHPk*qn%]ρ'DleH<\J!oZG*|o}](|Mp."YGΊB1Ӟ%$wUEFٶ5J"2V!3l^#=O9?@H6t~\ʹ c*'ጭuzki3<*҅O"]"]Kh"oh^/9fiK|aByaL;L$?kE}mF΍OR3/=lYTt$F }ߖ& AF-GvÍjT?M, y_,sj?kMwgǟ{M[[pM/.(G{(|uWהWT⫿j47z.ɭBp=W?G roAVF_OX-AxPnxkRU7F(&%UEހDOa±# ?ahâF]}C/U@P 3b^z~:dD{Jiyrf(#4͚iM@RߜM<k*Ud]*mcz籎[{ r7E'НnzniItVJ +䐱!dOИa1"`PI睽 qp*#čLguw +11m jvAY龣 |V\lTϬ:rtiGfF4&ә2D8ݠG)JhvFGP$ +2Bj^ɢ1 >-,A4trZD?\ K nہƓ݈VNzq#hpĎ33J"nٍ/ 3ZazT׺ T7IZ9NvM-||:jP?aFb\xah!bـ +XC5g]# / C5bi9˔{ŔGbڃɘE{@Ons,7;B\/nӥ{C||y-a1Yͭ(.pk@HH4+<ƈDUKI&"\W&jZ=\X߀T_"$a*A̦Uv?gA -fR!*8NSeguRo0g/<s'1wp)q0Ƣq Z'QFHp]/ZI /"yB/#aqW̸0gO+n,6:ڹ~Y%3{S @jgzؑf)|~)%}||!+:Q]w;F +:$/O*Ҡ9#af'*3O)tK.krb=Ǚa_d;~!ԣ@w !a1@G}V$,WC3Jօ-{d(Joi0IరC*At$y0U3!tr}~HB?ShNJJsyTmVo23 }DYNhsRyx u~ط1\k(v 7FA֭9yf(^hȎE~iܐ td xb8bf8b,/R"x⑗HGl}rP.k |Ӝ9J7Ydl)+շz>w:įq8a1jŽ =S@maΣߖܧEpf ݈q :CvF m5w%#E:&OmIuFW)ԍ!+b}j)mR/Z_MRwR4CjFƐԣ[Q5/ne(>7 \T[ʑ6炢gxߧ%肢Wh2]0]h(eR+Jg4V1RayS3l'0㚁5%ZF/#yoQ[^oߺ/0ĵΫ7(LV8&JLc]Sh+vZ ׿Dk_N(ZxI#ڛZO a+~ &xvٛ[fyfg7 4stTNy &ui(]d@0LEeF?OKP7nY\ƹ>]L+DK6B6@ZP"5wD\DۙGjMH"@.Zi$(Fٴe$M,97=lKf]dʧL91%g_E3CJDP0V`,O_sX>zn!RQP1a=y37$2fn --[֙BӱmFb(3= +"U\8Q0:75+T&Sz .I$hOČ'?E^ۉxOP &@xS'q˹hvyU dX[Ig1Y(/U:9wa%],*Q5Fo=jxm }ehk)'@F̶:il,$/"=:]rK^e2ZS^)[P-F[ e`b?hS2w4;ڝx2sR? Osz\ٲܪEW)6N[J#ի0ߔTQ5:4\bӏ3G@?`<@PsY3UMΌ J̗ 8erCpYSFj\Nh |-."oi>;:>{>gB7&p~t#8TMMk +we|U<"]3iUCHs:`{ѾuFChOhPo\u)Cݘyw$}P2|Y#0h ?u鋿,^ϤGOֳa[ZӹqyϧL~-)Kr+^R&sjI5n픻w\9DZ\]]- ;l#Na)Mg!ڂ 6!p򸉵2IY1] +W^htipyǁݐvwHorp+/c~](WC=C'ko#ڍ1F=9AH Rltw@tȋcTH4O =B/l7Sf}_mYPmG25yO7Rr +4r70rn b+Dp'ࠗQ=w-剶KHo\Lz9k*uAL0J*۰YYJVJS^hPjgeAbE 7jn@ #2A?B =+ +yPOLFڂj!r_,\UIBĂ(RVo,/23 ]%R(I xӂwJ>kQZ 58펹:Uh^nA'/^UVմ}Ǯ=gg"M- F,'aqViC':7= HnH@6 xZ )l ZQBA*8# H R>l,"B \S6ySڏ'B;֎f#- [iXKZhNqvقGP仟N} (M Lz/*s*ѳ*BE墭-''*ڌD` cBX5VSB("0t! $g e\L˥2rMF6u|NpX ĉ`!jb5C<WЮLMx$suN 2,%vu$BSM 夳Wd [KZ𭪮@k$qJa;_zTSf5H(m۩p u3rmO"j Ƴ8ųU/;Bo|GlNpoUmd1ri! 'Li%Lc@4{O0е 3`UO],t}R@W.,ԫ*eveheJÑDLw)8rR`%;gS6r ]zpn(INm[ +5v]8E@5G¸i];z +X0/M縉>*?^YE`鱂kfvai$x)UzF?0GΖ-dA4@}\?!(xd?ZBЬ$ā!x~NY^='QF0{z2dnww; k3g + kdWMvLgY:10pܝXJ8IG0`*8O 댹ma +O& xfm$xs*ݑ#Uђ a`-[*±{,mcw[jnW>fqkğom#-w]""xxxq;O.|p -i$UZwa\/s19C?sq.tF#'MS٣a, )^ea' L30ᔁ ّ~jЩH7P?Z9V$C=qjN=9ڍ|1JP*}֔î ĩ5@aY<`.Z٢4Gy"}UxkE0;(ď!2dn1TZ%oF +Kfȏw&(0j%]kub|a։R-ځhGD]h%jWIyd(uVqU75:0$8[CGpBml;Ф'U\QX=|E2p5*'(}Z^ PQrvxPՇyZsb/Ps$vhl$MF:[bG6>t1X*AqQ[WQHZvmv6MK0pY~lfGBNAg__h:8G*i T@eJalE.41ׇ>p{.uȂ":WΓ NMب??!^}`|gnEAQ_86>¬^V⮐ 7^x@Ýkm`;`C#{u3$ rF[kx[&~fP@`c lǑdÑ_i]x1I4v7G:XΦvIʛm3Y.׉l"?EµFf[\rL,++Uf5Z4k}#^薩ц;c~]l`jvāl!VcVC LL,ˡZ.WYvκF# K[n97[ +/@2sjFBF+]lz%5T4"3dj,v6"+bxi,+激ew^p}ӭ~i5g+Zam.zHY'/'IҁIB*?-ٗZf\w1eC> +`=rEoǡYALy2_XD>PNJo*(u.(.-AJM<47$Ҥ)_KOLK2ey_8ܷ]ȃL+)%8VnԳ698s.s\n('AB XQDbBTG Ŋk=QlʫY +\Є;٠[c7!%&zDtqpGǯp_(^-Yh^,s}oy8fـBZhb73{cq'f,g$}h˷nki$>]`?qۅs +l/w˝=Vlwպv؎&ƒ{aGnlpe Xf'ߢGryظBUulc MCX%(bLŅf.as72wtQ8~sL>?,+$,I$X'[.VW;$Y%5T"Coq6dpyMJ"sh vϑav^6_&'}.43s+CDj\kȜ<SۭajY3GALC*&_M9ǐዸU=Hw/zTǗs%Wݟ]?WXnͭr<|l:lG62@ +..;/݌эE xoX|5.IuMۓn EC̙$})y^W*=ՖOo󶛂nNmRp|hDB8OX<Sm)+[ "B{sɠvr'̚mOFd7~BrEdy.K,_ ||Wi| ru<QPW/ +GW|K;BC)d*xfcy< +~R5N%UH-t +(4V<ߥ5Sol*ߌE;g*L٠|34{cV1,ڎ?#VyLYcX*n+=VQV( \*KȐA[[fr$ NNC( +dJOx(I +-)qԅvS@_*4<[׻1:$O_k}[ykotiMwK~Hl꼝z2JoJ")=e+K)K 9Á4us,nZSe#T!] 纘0$/VPT65K_ьuP"͐qh%j#.=f 4!&/@X.y n&*\ML1v@^ qHydybmV} Y,N{n+N=$ϼ yڨK'Sۈsr_Td~L1LBAI$@1t7 c&Cw/ ^*ax b IBkvi)Bs$p /e,:ɐ7;<6it^ƻPlW?dx<p-9T` +=fy_*OL0(.]>nN,nW?MGUSPag-]ˈȒ bOȤo:>F_ i؃^H:Ef´a{}ǩg ,)ljMj!Sjӧl!.0bᘝ)k05I|dxEֶ>#~aB5$x;ި,(5%?%) +)K +Ė)E%a$ݸwm+s.\P+cBk6*9FI>Skѓ|BwJH m,/0Z: 'o'V`GZ=(S+ ӣ|`oJο/? wC3A;DR KҟPN:?͇袏ˬw1PUA=jՒrEmIڌ'('% Ff$t'ȱ; +?akCgT057L? _n|0=j~r$&d;ŵ)wAt6K OwdCB|&!"Z0BO +3 Gkk +nByU!#{h1"4HJiHbگᙻ˄7MQP6*}Sha{ QY[N, ȝ%| U@\* A7,W&ɭ E,^pr#hiD\? ց0?e\I|G[ Pnx??LϪh@ݻ7PDb# K:U6JAQ WoR8E( >[ F-PE5¨E^JÖvk2MkQT +89p[a)2]P2_qHBu4b ƓT3eu$nSdM"ָf%C@ғi r&tQ;o yR 3u vYia+#m(xCoe@ǑF,1At}L3}|r'ωt!Ŗ2KQ$X$M&V;Ǧ[GiJ {aϭpD:,3Ey3SE&ہ^=>qd|Gy#9 @dRtkϏ~VMA^m}^X{3z4e={=~|^8fǛ9ז yrN^L8yΖpFQ@ 8MyrB1~&Ў@36 $zÄ1dL2mRNG Rob6* $v:EH>)D"8OQ4POsT(BWxKAkh}GwY~w.Z_]lk0d J -٭4'hYi$? m$x+c%x `8 zI>"xjAu6>u~WR Xxp]nC[#ض}=ਏ}[FyMζBv) +< MrE? JRO+{WZm|UCV]>|xHFGhÊKAD7e[ŋ2<-(uCEgkĨCDg5ӡV㥣R9-_P^@/[M%и/#_Spqq /8ujNSupB͖qYS24i +N}Sy:\)WJSKR7 +ᔲqqv$y˙az9J +Ɯ+BD\Iv cߣͰiq3iNyj[@2(r#DzHpⰛ;PhkRdTi=AS܍Ile%QmME'~@e'5иi +jۧ綅 +Qu*=myfy}ʁ{ղOcF|$(6 .ɂs·'1|e|6URB')j fET.ϊ>~~guqpM7dۀaަo!CɆ(҆@Eg2$ƒ%;J9F%AX}{䱫(Ֆ裒D-@ +}qv.kJ* +;0pVZVa+> +@8.['0h :Pސm 700#F܆=0Bqeq6ZOpXbZdYKT8-Q(ɲİQ˖֖YVʡU|eh2ߢ<%f,Op.0LL^]d +{P2z&hA[|VZV(wZp + + +x1_[_:ǺD|̫L8}Պ1w)ؗvd`iANR!ߪ׷yUɱm}bο#T'ĉbAyY:)#:W`Z+•?. Wyy=MtZ6\l4os5ZБ«,1.qĸ+crobӻh4b餀i +a;nܠ/|O@F8M15@3O4*]Bd.Et 2@.Sd+>ɼ3Ȭ*FXp0|Ew*3[i\8:- +Ӗ +39 +d`7r0%l*2Ss:hÜ-̸fi 9Ux I1X|?xqċ ^+ѝNQ,8XdLvˑlyr8tN~|B: 6W=.EiFϱ8ɄZ"T< l{V` xl|p q4.r%9Gr] d YFv,#vhUy\T~аe4vvRQ~ܩng~N)88^'\/w,EmВR4&cM?cM?cM?ꇛ#~pV"Q7)*%aP4`VoXT@?|X, I y^ +$vI%"Diȉ)r;20MX Ysfc-w,5 ~r(bjxN5~j;mZq3@5lqiqIy+țjcK/! +Vqqꁉ'Cccua_5.>j|@x*K5V/odXhZ`׊ҊoO=fPx9uB㥄bu"a_".J"Y*Β ΞӺF;ތnpVúY9}Ս+?߿GkzGkzGkzPϯ!٘ѣ!$l=j Z~u#գ==6G*I=:G.oǵڐ IРt66#U`mz<IčK,OgnP @.Ǥ3)GT;$N +DA̒-Ked+Bv[x݁T`(3ٖ1qe$\@؜ RKLLė#zw&:gJkZeU+[/δdA;Ny} ˙K,8匀;fY\upYr c>8clje+Vp+a~ؘOҁ+AlSd_!՗lM"_U;?\J_ qr◭t_¯D-]_J' eb?/%>gy97u/[6;dN+fglJ?[Z6m~ֹԹus`W0U1%9TRˮ|qڑȮ)Xs\\ݺcz+ +tz.ס9&99Q0:H+p" QHo)qrtHoΦ,Xc ?6Q:xqUn wyy^%=uy9͉a1!|A;6ƇFL8-o h7e89(EyH7݇[UUD!JžZjM?645E-N>nz,EwNΌO1(x:{ܸa."-\0 #RE/cs pG{:RT rqtwYvw u3=q>2Ը3?t}U3\QQ%COafwوw V"(-G_01c|39<_Yqn,uPu@kl>h**fE9"Ҙd{jϷ_p\JI &=jھ|}'N6Ej:1J6JD0zٝt0ߢ/#>\ ]DGوQgj53@gɲ0 +\,%>d$p)xAŃ&Sxnjy"s-\30#`E4ޗF,CN:Srhk\}uCWᔐ +]Ҁ-sߏT :!R]Y,!rPG~&  F,ΚDz_ =O I޴TD^#KRs Gd(2d;WdhdҞ;0tf:4bD0a YeСt؛M=6JVF+:\Rt,:qJ.>!TPt؆f$ +]σ-:M_rLy +yagSpqXrA%I"I~irAye0rMu/+SY /0ςOa؄Z"e~F{ȰBEq m<7H'2?8fvB!&۫xUuNW+w`f+.#_YBX\g[%cBg(i5rsCpū5e(Wgi,NEF-\^ WRc%$V輮YHU)%r_yKqނ:/!Y;鿞庌!Tn2nKZ@>T Qb5 @BfUj_G[ީ{g[:^{;#wVx(0 =#M/UG:lO":.Zt i:ӿEgA}Cmc}Rrۈ=׃h2^Do/J,BNؐm2s%k4q3_%fktlop `f"p53гDLC;< +<4PCCkk <4=fR+  .^x_K}gH"bHO*g啫z$p#8+p 9;%\G*,/mVXMF4p|O-( wg0e2`M͓"MpsJ7I\滼+sq/͎¼DM&T0ͼI$rzqa9|;M%f  a $ih9ϷAn>oyD}ӎUkFG-% nmC o[~g¿'h@O Wt{`|~?.^Q(qoJ2}z);s +9(&MoK '5L%~+yDwĨ*!?xm&>x$nҋ!]NR])VJ4Dhk3AÁ054-9u :O1LCչplk.ezv +KfMPh-qIfmg$x>y Í _10.qg^89ox"iơ֍H89ָJ5oE+Y÷y֐ogs֟ͷ6$ӐO@R8`vpߙ|;I-vQԾq*@&X=af `GAq,!XAJ, ؘ`L0އϙ'vhu+?dQ (y@vQYL@K,CO `W+r#VȯUz%ZB~,˯<*˯:˯l~tYEU_'Ag~U__¯3^ku3*TX53tC\r2?tlpmtmA}ftbzval[uMmNA@AC,T M@F(ďA0"Lm*JLDGCN$LVݤT,LR4f#R690,p?wE T}ڇ8{;k[˦ְQvמ=XgnM0{ s׽&Èh(27摣`43qe,L>cM)p5{aGu>tC: F<'`G{w+rEjσiksU|S:sonl+qva4-<Jßz9+T)T$Gܱnsl]`iDm[Pġ3‰Kw̉!p#Uq Q@] 6Cՠ#>je6+$l i|XI)Qj>Z6B7Ch6.HJkCR 00qŽGN~~߳V`BF0px&Cv7 Й;l$$ RﱭG^~[%˞.bm +8ImbQ&0k0iۈM 0w``>o~M~_¡rG KÙ|pg7|^ùSÉXΔMK 1v7.S2:Mb:yt63ULӹWPDnM'8w%zL:?ׄO>k>e BN]D՘`#6` "c b z@;q=x`9سZx`i>ggIQ ,?|&e(AF^1]%0|vٵ9]پb>h>[﾿^{Iȏc}ΓwLo~k$"1'eOn~GAoq~42W\2OBT܊u9GQˎ2ve$Gu|Όǫɠע]aΣ/o^gS[c5V*G/OXȄ&O+!2Fo$k#Sj1g+=4:FfVoekq5Mq;x2rh Ms7ZpIތNxWeX]sXV #.~0u/Ro-Y |JtHؐ)^Xo`Þ%gFj`đq+kX]@'A'KbT[;WEG~IO#yU啸MXosCDDx׎`ϙspΫ8u\҃$qKŪ"H-FLrt܇J^Q0Z bdIzl~'}ݐV++%v&wѰC zp^Iqc9;Jpռ镉BN),nm`p*LI#d1)/΃y$-\g%ioZsn a:a>d`Az3G4 xMuL^}>^Kxd ^{75Yxmk>XCA:5lR?bM+vzz#yьOI)<=yޣF8Vsba$l˥N[ .Ed+Yamq:BBaIf#RWgEr ZDT+a9I;8 7tz^v~|3Ώ?c[ >.gE~t.i^%u>IM,IއP!x ,x]B +rVH4o-9*1*5?׽(*}j&ԯkb*qR%S2I7Fx )!* rVV}fm}LZk^oG)!C鎍sn_н>{*-P/w<pJrZ H ر$=B{G{ "veD ?BЮ|RRߠ`R A +uQ5iY}8yu7Z7AC2h3ᒍwTۀWZ"Km8i(`Y&2>TJdP".qwϯF>D~(1q7g~ ۭwN% O\J'  .qsspevo6Zou m"4o{xټjޔejYdyͼ0JFuy}o ޚ׌|6oSޤg-)*?]p1x-gsz8?c^&Po-C[⭯lޒ71$*cHvCx#˓-4 + wzwC|wwVXZ C0fFUr=sB1Z|}͍Zl_ZNjK|EqM^U&tM\Q {QGP.os'۳uzb]I<{LMӜ'D8*!ĥ5qHz2Iݣ ě6m- o.[ +orhLU+^UWԼki6›=i2oXC``Ncq/Z!Q#oE2K&aoCo4oEVҼ!)Hx72o>ކ=ކ6mh+J&dROznG -1-6%ގyuy;f&PQCRzM*v;>+"ۗ_#OyH+XEB}j=W+6*+GvnOìh֊Hz^><M,zګOq6VaG+;5/?j"\xVhoU[!+Ju%Px%n gf-W;IHu +\Ǵ?,Ww:ZQ1͸ 29#Ss(8 tULǹ21SMmXZ&o8bb%Ho/ dA>pVDVK +g_T<q{K׭6ckLdkLNa Jٻ|kZ_9ݱVLBnrZ +cwo $uLv_V:qF5HoN_> +kG9y GKh T5ί'QU}܎~&H ʧ +\c vJd!9gAW`ZE\w6uQmE[;sq@(M9{,pwU)&lűH>@OAQ88.+"I*|V%Qs[ixdFo&I!=u,2ocYlw*YĎ&%#Z@e;3+}fh_[#%N庫[W0YFZ;.MAqҍ]'j2LZ Vm,=U{l[6Cp:N==fg`5d/HOc/e=eg9q,t0{8O(צW;%W֝{ntv>!&+8<Ϟ٪wzR.[\vre&ˮ.;dw鲛kV䲷r>32lu.;.V&* _vD=,WB{xOe U=YXq+dw)WeW}ݒN.[˿,&n Wsa[A7vfSc9/{tW&kO?wKOEd>m m'O_?F/Sys x.boՀo|Q xcb5۞>|>vӀ3_dz) +CRm/J@FjFC&࿬߸weMGDgxZ<|s +4f+4:?gvx~V>o//R˶Mdk!73e[DtwT?[LI}D6Fs9t\:6guTǭ(Uo`M ;#-|I7hM v:~:xiLkS~čWG"mK**}5^xA11F^NRc@|X6+Pk T; ^K}OcLA릎AC "Rrw_h~/JR9h"ONaC]cˎ?TC%bkEڈ?ޚ;P?p2eG9.=G**15YG*2xv? Dp^'tZh/W[]T8S?|"?6*C{<^:xPP#ۅ6fW@|?X0+Ph=w#1!=ű SBa *JU3uxWjh߽Mh+h"O +q\!ڌh ! l\E9\A=y 0LSKwT\:ɻ\uڣVSUmՄC"'c}z!+Kc9HڏLҔNٻB +-KGs`> xFNID#Alx9ޕsyq1acY(1qV$͞ gBv6ʟfM1Kd;:l(xü㴋TLdGEA>G鯴VC ΜƓ|& r;&6Y.-`²űlqHֻN'0Cm{ /Ր +.xOR>tK]nj-;I?G8zyF4^)=& -DE-ې{W.vӊ-+o +Q-IE=`R6SY!-;(2ǾVĂҪ@(dS2@x# K9rW[զ4PΕs Bբ&ux>4il:$Dl.,MwNs<5 " wM9y(N"EyP >)zr,O+_F[e0,M?fCնHd/}LzaSNOϚE +u\m @%с<ڃJ=u^atxu)-ggw;9jV=jZjN2K/MueզBA@ܾ9nΣs)(;>?K-yN7&IV~ki^ je}sGJiZ:F7ôKӷ\.^m4ϖNh/ + gS#@6zHA)Eǀ4i\jл7.{7̾Qcg7{f<7coDJ?B!8+ "dr@^"PE3LW)(4`^II +x^QY_l!DW n[ Z{W6s z+Zz/5nq4`} ~.{2AHwhݠ^c>d~c@[Z +:iڏ#[(ZPN{uq',A>npeld/楢J )X[Wf]t o]6+yj"|_7o0VY p* Pi&Cm6r>E8u^]~l(az]Wfi6]D PkvtJ3lXmRleS6CP-SFOWW%#?XFljf5f;IpJA]zm5mxdL9.%,TRܯnr% .cH_=~_5^=6VS}^rOEBp!ڑС)pi ɝJ!+7Ynܷko8,Mг)^Eٵ܏y)+Cqlc?4 =FrnY%gױy=W{O%g!y%ur}rVC]ro/n*u} Z},Ph;垶)t%MClor߬b~3K;DmNmM}$%ד%ݸ*Cu]Ñ䦖{O]s}YBh__'>\rsʒ]#h?,xܷf]e{UGqZTA=?,0S=~&-˛noTrO&?{VhӔPbhۢo ,3%m?r?r?wB:ra` iRCnůӢw_B;^)hPm;$+;F +arKvCJ萭Za7z?t`/KqyxCn=CB+GJy.h}< ـ6OJ;X5wx(Toh4Ln?h8`' P~&_n(JOBnCj {O8SQKiVr[,YR~h*kۻ+?FOEiLYGGOd+گjѫ(dL9vkζ&ځRnzͩh7pT>o\ٵ\s}jCdtY=v)dp.e\z~eޱ]7X8Y]S-1ϫjU{Y %,>RqY +BWJ-дPi1tۧNK[ Ej0Č8,GʿIkL/`#;fT\qoKzȿʿd. Q%=οcʿ$n" TNο/i.xytIII3Iru_<ΑUO5y_j_"{L]_^_^y_VS#x\We_6R_& o< 5hK%٣FN/Q#zԜg| * dQs?ˠ32薂쀹ln)FZ v%R0=dRA7pE#BV1bx*@}dk#ˣh[9/_f_d_ъO+2Q>p-Ȋ<ᰚS52qVeet4GM9/5iU8UU[<*lo(r]EV-*KM3/u%x% }Z8Ϫo++T+ge3- =["3rȖAHο$toH¤ʿD:ٴe_4B0+ʿl2ۥοԳEȿ"r_?ɿ8%-;2ZK}R_q_W2+u6k{0,s3!ÕRd<ȚYm'Ep_a ̶<:q3LرAweap3 flb̽\YhdcT=m잕+#pK'dˠRG> P(v>#w M3 Sm6}ȿ,2m6οgοex_q͕nο,ΰtetFusXοBOiKDr3r*92 ~]z !t~:&_Ĕt|e'c*cYc,۹`fě]3rYc|С)Z' :8xM;rCɽˑM3r r8:m{Weunο C ȿ\YO//u;2°8-W%RȿLlr3fξοLL_&L/9{r2/ZQVFeܕmi_~/3oK:K}}F%&6s_:Oq? r̪Hlz˽οgS_q͹/;*B_{F%OLkAɌ5-*r5GY + @.OSB)McJ!FCi^O堇8zZ̯;)#rzg{3rٞ|3z_^Rrb'!0gOm-sL`_sMfeJhDDKM{_2ђw%O!Ҹ3rP+KnhY]oYh3/9GUJE'Y8ny]@f%Z/_NweLwe"̸̿_ޜ;R_q璽/3οfKn.K۴.,u|ȿe:>jrƪοlWοlɶtC`#'j5Ҡ;2ʿs%m+r?,ɳB-ֳQlTd.^yՀu:(BIQ3mTlDxQ'D(n^iZbtTc~BYWYݜY(cXKWEͰ^/( ZЀur1Kzy;K#rEռwJH/Eejd_{}GhK~fVEM4SFɚ9@nSV +{W( PLm!,z"Ȣ䬠g HiEVKo$e}R)8,gGc!hEF/?(e{ +o NCK4ps:!i.yv[tezH@YOQ'Z+|@_nfv rj+W(zEo<-i݌&P=:OI#v +}t%7)E>:MS i_ _gkT(zrAz|I[ pXk :ϰ aڍC ]n%.BA<>>]d8,kS-e/:Tnw9rp+w#TBoXwwvWgU=L|s]MC%tlj J܃S"F)Q#%螦Yh/ZѠUTz6S +IJ%P0VWYX>&wsFzS^<"oe=h>j.+;譢;JmϿlBIRJB}sMy#H6<|IܧNi .[?'$onȊ,E䖟 a[6cEM1{#(m+HCbS*& m$֬P{h ʢq7bC>7{MMnn57/{,Mn_VKҥvy]jp']6;MsɝƝ&{4{i8I"Ec@79E9=9e(2U3{}l +[e'6g^okxZ4D Jb񀢂ȷ ~S omf pJDm~?Dl~1?V#E ~SN7enC~iWӊ 1`B`Yw7g]G^]~9]w].~vsCJgAh^T.njځ֋3WoI]ߕ ٌ>0<3zCڠ SP_c>da[A-S[wk>i9+>]QϭL>Wh>_t|A + +gW<+b>W|P|nsJ+>#p<-wbss [\P;EϿ>@|/7BψNE$2gsО|nǹT[A`_ϭG5 >7|S||>|>:V>י|3ܜ6\Bx\';/uL)Bi iGVbEJ8|&v$ 9JBxْƨU1/w9]Eds3 BYfv9]a2Tѵ)6%.f̾{q2l]jqvŮRmf̾{%2]j3Cr]rf*{TۑDZ*EænT(fd]lE̾l8!~ p|_ +o_SZǁE'$v_~s7_?}>6n{c}aG_@_۶plHjtzn[gT>OBN6=*}ʕ, +d˓O +ǭ{R#$^'Ł?i:퓟* "j;f:8|NGgҷ7[ ߯u?He)UϿ69EU9{n $PzY{Ivz\N ծUxFKS{8gH:wU-3e*.]"֏Zoۊʵ'=Xzgc\œ ȵ\\Ǵߎ\_ ',U,;KTn2F1-)'z"ndE/̛$ĀZrI8E3'JEv))WSʺӜ֝&Gw3u'IKK4)iҺM)w4Н&SwR9tn +%)pU1 lfLѝGwrCJzRNLOi\Hib%>׿Ѓ8xxX0d*i]Ux^Io:e_So:Q~X+ʁ$ʱ(G#/;aL1j)FNybtޞ[.a\]ň뿐S.*1 i[î7*F\CN1ho-Fw.bC%F"G + 1 +B*#!F,FIW& <[_77fʗ b/t`Cmg J5 8"넇~s*.W_p!7l:/@dɌ3똩_R99^Ŏ5g U%v0b:~:UK~ӱ7Cx;;z[k {C'r<.r?ÁԞ񝌞a/bGGQLVKШqpO%-Va[݌36J*V*Ҩ +Q9ΝRJ[c^UaSzWiQѨѡ7Tvxa}h{DҨW25 +_bR6hRvF]M;5v4*Qr~Z0#gR3(bg(ШA!GF԰`}m;&y1WJZX0sT>\LJ2霭Op#& ?0ZO8D͢AwYL/2;\Ŵ1m[p,^p2B-pǴxZ/z tC}A 9p!Ll}O@D vPS{Ʒ2ɉr]r]vWQ.^D2\,-{#εYޚ- /Z̭Y #:dulY+.8wڶwӬeWd]?mϭYnc[PE|ۃj29[x]u<4>/5gA`iK#TFG.u`*뼡\rޕ\w=xyfo0ei>ց<=Bƌ@޺ӿr (Tǁ<+;a'i;dq8o$ 8R %~Lg|=`_Cu??4wF?rﺽp/TfC/;{Cu?;f?T\"9wwx]Qz9At*(~GƤٱwwQc;ӭIC4m=g';Ny.{{nivw3W^˔vϨ;Ҷ˻U˔,g]ݺ_pv6e639wؖ#~TNiwũww[o0qP~];;AXsw hTޕҧgn8wP;^2wgn=3~Y9w5km׽kn-gn]r;m[GVsskʮ;߭|><$᧎%%r;kp~3wJtnˆmvߝߵ/o"k!߶:Rd5DUW.E}R策b.h5UE}j)mBxkRPUQ?b~zZ5gK_PXehV:S3m}"}ľXv +f]ֺYae@nY Iuv }f~MѶIy$oZՅYz16 +~nsu.RunβauF偫{G ӼM}a'J'K1|{!{BmlC>qi٤h|z_.S> ]YYGF#qʸŝRTCjF,R3){  waX??[rT9I~5)y 'R|1#mYQrS*ms +m#f\AskGɇqr S.񸙉~k;KC7;fu7эJ}nuPў٘puIҍbC7ё@UID Z%;(~iNd)䫝"$Ypnk nT8a6G7%_4ʨLhW\sU ,Qhe?&)&2zV8p /;@5Ӿor'\lQ?!IpHLQ/vrC*S-N8oI[4W:Fbi?lgB=' $i?AGJh#o0' CP֔Cˋ ;v~Cˤ?bC?y6`O0:3E EY-%ǚFpr|ox ?'Im*(Wr[?7 k_GU?XPCٷ֟>[ԡʥ?=J3'[?JZ\֟vc= ; +$QdZ{TzGY( 7z}#}2eFyE7l7o?V9nW 2W!B/ˠ_S$ⴛ)zoB|JwY٫#_W%\7<콮JsImx(%!H1'a;%F{͛=.oo ++mco>[[jL-Q-5[9oI&M+:%=dIC-oo"EY-2;;[o_4fu//7I hc/#y/qbAV 2᫆?|eQ(I>/ Q71Q?-n55C~PG_cx.?Ic/[,ں~%j:O֯Dw9~3 gjp<4/i63Js:>ig:u1Lk5Q =_s{h$]QQvuZ&QM0fiШ&8\=V( #3\kTC{Agͧd9Kk[XPiԐQ4j4 +=KrSB-Kͷ"p$;ɜFDTao9k|'.a e" G~7 #+:q̚9(kX5q.<۳00#]b />̾/_0*TɬTiT THVV%)%kȜ@&V&trX\;7x\|Ԉ+)KMj1Ev'ob; (G1mV+$zV%Qxl,'- KSD(-CC,oGR+w<&=^ IpܴO%kX{wijFsp+mմ[e; 0ߺov'xPMeQ9J@he}w}7v"1]ϒ;<)+XhvFpm Snt +VN2dNi؞.Z%Sykg1lG`}LubEwrG5AooWSΟA0皷P-o]q'RoOyv~>DʛŔ-*"Vcf 7-;!k"jջQg4[[[4G؏";-V-'xo 7x7two vw`9;^.s*5~;v*b@,HkWGmZ^pFo2^M;&~My gS~m'~[ro/ݳo<9%{ EcѠW38oRZzO@Kyx//_Iov 1}6oo۹ ; ;toVxUQ/V-&[ ߖN7ovk6+ACKo'6є{d"lg fb>/21s\&3;| s 6[i7V/i+n=Qߣ=7(NwQG%<1XAT|#/cC2;;Q_woi= gZd}ߕY.b23L[ bN}}i<&OêOo<9rVo6\Tߣ+uro昛&KM%)ÝnK 9-Q=2O)/BD&MTÜfsZ«ϊZe|+O72 C!o*j0Ƈ&k+w?4 a|x1|#"Et=>|z/pq$XB}4><]Vu.%d7 G9]%~LJ;|SNִׂ̺eb[0IxWj=[%x@agMxƔjJ}(>0j?Im7с-- ^ Z< Zc"u,䏾SW^' @UH(f߅ y69 Y^&?/GuQyAPFj$繎HmY +E܇wf ݡ/NLbb2q*sx´k(4E3K/ *xl%eEO ޴FvYږ}w0k8MG1ɴ`֢y~ٙZ!5_~;ZWk}_W£mH=U)d');.7`PoR,5k?b6fJC{ic oUӾ#[0}dis}k7 }b|"{t˳VSu[pa}Yg#]I tٴWo/5ljS`NeD-]"6:%GR5Qt0ZK\yB|7D4wY4K&&&36ѐ8~{MLu4>lA2b<8}"fgI<e?}?ۆ d-?}w|; +,(ނ_D,2}  [V/O\5D؞jjh `.Bwrơ*{/[Iܟnm>$.!h|KeJ]/= fsD1\lre:Yz+> +ԥ)5 v7;=Ŕlsn:L1V3 (t +-YN oU\1{.+6#&b.7:7/*i_t_6 _0!/(yBL7(7ݻI9<Vct2fD#_ph6o?⪸5-AMǝ!>/«'C*=鸇X;;|v?[mv#ђo—~#o *FwD\Gao?/:asF`vտ<.;&.5_?--aJh韞 ͻ_C?JK;x'.T5>J QcV01箉W1{.}kV2Im&1icH!6sja3FgLd_ +#`0!/0Arň :B ,@S 75T̶f)[ Yz Z#iX<|R9^  &.z($%}W&,\Χ]L.ܐS*:ʤD1jhǿ_4g铧r(!\w嶶1;*qq45/lX!=7!z9&ƌ "Mʎ $F ܡOեD˯& Z5ُ<^m:hUv!`Se&`C*ՊU{ML"t'\<V<a?j&=XD<gN3d'! ]DpAFJ;D@|ȍd8i@b";l+D^敻N)O,-as׸70>cWbVV*h߾w7S) oV#or;EawM$iG7RXʂ]vU&l8U2+Uz2m _w`WinZw€,/fDژƄ 7c +v0LJ}vk\4_%ʕ{V1n-]Nډ<{ M%qmW/&#髏?@ӅvuyL;.[dЮh/E6l9+2hW+ړviML!nq6AvA킠]Iv9& 4nqhFr%#QHvv4 & h1ٴ3hVJbM;, +vy9iSЮ`+6iWE"7Vrv lYm+;) +[vx:[ oaӉ)Eyٗv9yts+h7nN)HWC 0<*qV[KnU(Ú ܠ31ZzmߣLZUSZ5KӾ{/Kiy !=%ڃ|L^P,w_QW##%ŽON'W5̘1< +n2qUfi<]rwlUe*wgc&wqwױ]FKIx i3tqvؓAӌwUB2*~lp!կ9|P&ҩ1X`C|K52PO8\{K _ |% +|%{/_q&b |+r_H7!~|E9s lĬ_7Zho]];B[I|]|+1G?`l  +|v˪B|}/|8?|%Np$ |%+_+_QWT "o+U| +|ʡꀯ0|-6V6 +3WW > |`iq6'yzNMD.co&`W^/Js#^އ)ywqy>|h<l=4\T!!aj/a02򄗋.X o\s#e oM<&z* o-y)yk&?4\S +y ov+[!]MȻBcoj+#b&!B$OFv!/AްBp +QC鍼?#=LyF +q!Ս< aVL䭧l(FZʍ<4La'Fބ<윍<|xH!o5y9`ZHrj T"i +X_$zU7Ak*b;M?JD]8aSX(<HBߨLODbBX|G5?~ɍ7E[˓S-qҭQZ>HWcFwz~v##؞+Vd! Moa6[tr}2ר(.GHiqmrKk~׺?=6֏Z +^Oa8اcTox \A6Z]nzR2NOJI[tsģ##5KQӗ"w~_ɮ>oҭ;~sr^*??w[1nͿp R/,Ţ?u[˸QM 2x#+gmڊ޷05>KZN +8$p_X~z : ODCVĸ?qj%uu:Vwh*xRB.6A:FزTHǏ#wNOn~s4lzrP]07'mǓ&?%/Smew!ҖO ,Zf"bLtv ځ6B7H&] +>xnY1Ǜ?no˓}I ?^BKFi-v~ʢI[н[an݊tn7|K;tȻ1S* \G LnX]ER ;ޝNARٵr=^^*zllCxƸY~*n?JV{C(I^ϻ"ho֥(m +V~w.Jg7Wډ51|\'49]wP]һOXnZ?Z/ +z@7b )~J٣R,$τOȿ#Rbk.:Gc㑙D}c?'CJ#T|]KI7h"oL~BP|E +Nv$)_ZZǺ-kX{kgc?cSkڧ2>OwLi5 +Y?}ZLJҰ&BwMSdX?X3A+J?o݂tWDžih7m+X'_tGYeGLRM2inҜ_~ڗnQ,1xkzy].)x-i{.JE{mE#:ߢi%cB 3jS',1k~MlZp[G弋-t#.(r*m]^]KlWb4F`4p e/EpoLdjw'|iR!"B+.Ky̐Ve(7.K/Gb|ےҊ ( JjJ.Eb!{]/Ջc"JpzʦdMw:?2rк>5ڒ}ߑ;;$EgOʎY>XNne:Bs=.Fy'`Rs/(Jdk P 훛뢕EEvV4wXGK?>.^ G*ťnFPi +5P!)\*S+J++?,T#`O,"G&y\T!{`EHm-z%h mգ !$/'G +J?_]; Uu_X-cZ"Ay\/E* yPm^ƷmQG>Z ;Ȓ7sn+J;.UvJ_W"QI8j~T}uӂsN(.R>wkyf +q'NɊbR'E?Q3/,M.Weh'& ܠWвVX5+Hzş@vQ~h/&/ +SջHI:7͖|3X{;FW}|~[/ʻ}_O +<>q)X3~ 9Z +%5rM=OХ^]YzNNvpcoeGB>v,o*v'4!K>MO9ߥB .$;lVM\k)AųZ3;OMkV5%@Ar2hfO&;$/B^s|Qu +yMɝ?|<52KBԩ|i%[~QV <C_)fVMD,A-N4W\M@ͪǻ&;+o~J.4lzuŢm-Q=rվ_R>ԒR@L|g{ΧˇEM {r7Ϳ'Q*1{X+Iu!=>{)D{Mk)&J&?$Mn}F.;~!wVW_T{$TR_Z?- ߐ~5!ӊQ54jRWӶLmYm'{- "f3Qh~r34*_=(/;jTaV]_ CG^chwL >tGvM{~"F܅'?,4e"S1yS/3o,?gb[0np&ld/,֩?rLV>bߕ8;kN\m~ʋrY]ciX~QCbӲ&WeMPvrqHY!Q3!z^״!a}z#[]xB+/AߦuE+|^kV[O-vr/[m~|֪u筶u߆8.j)&Tꯉ}Sd_r(o9ErIZr-ubLw55_U=5w%Y$%Ri]*ܥ*,\tzU6XqC Џog໳cHM. cxЖTBP?A; _F>o~lFOk + pbAadcek͊a~F"3"U6o:? RȺukZHXMe:%)YV"'D'q,uV7k(Gŭ/QdQ5 !b|Y>D-λ~\k9`%8ϼ:aVo +O73Y(7@Y( +""aW:YQa@ +˲Ⱥho}=OG1 nj|~률z!ɤ02[$b=92M{yHuR5EiҵShwAN偼E_%i+'g^kZOBȘn7.1UPdHS>"29Nhb() OiQ!zD#jR5cCOt!{m0eWDZ?xi9_xwr3hO|mNn*~ JºTh`D!UVuR ҏ֓~$ɠDѷ%x1䲟^A*)HhjY_Dmó]qrqPMJMO'v)NzR4V[=PoFVQ1\Ÿn*^>_8$Z JP@.xqq>A![Z}U ڮJ)턺1Mx5o@8}M`i:"N}E.OMs+ ]>u1)#;DnS{#)U'G~W`/,?B9m#n5iG$9>gHu{Uaej o~;ܱVAīP%MK4 @uR_ZEr2Fd/btP eتr!o3~?C8H6؇6>ԠyK,MlGnr1X|!Zkdτ`ft ÿұVTd?Bɐz1hA%+2V%*4A6kќNk(\G&=zL 66NČuF^g^pL.!PtX>8 hV-_A,ۮxn ?ɦ_hw= Ȕ,OQ<}9Oʓl_}ӵ|9#R~h!GxĉE,Z 535|l׋-&y<*\ԓ]?!{CCj=3s/Ly]ܮ_.Zp7k)->- o±Kk[)m fa(?u)tJN&rI/L&bgs׶gS;B~zΝo>$a8B?ke'>GH-)ژAs㫙;u;6%4pidb`elO'NGlMO6?1Z$^}P`TELj"vfşc^8ntP&1{`wmW(&~nfN6eo屐e1y@qeť|C+-E߿%H{V6|4,~T2ΒF'3n*!%_ܕB,fxıt␥r@ǭ=]zҠ_zϙ : 2T(!,6:cpe_ѲSf3ʑe_IJoT{_:Z7tٿ .ĪFG{~*:g!ڕ'?-~^ѱi=K\O1Q|2}{ovb_OHwthytmt!N]eݲ6EB˹ + d1n1֙\Fˎ)/<UWD0-nimBO(M32T*ܯHqmi~5L|[:v~X5@f#"?O'4,.u[kn\a#V@4CK4wL;_L/p 8{4y{5cG狆LM,)Pr^XRxvyUDCo9Lo?hy#U7myEedn_U!&Ս+9yUk6]-g^He 1ڙlpQE;#bM#ty' +lfd!Js(55X#}#?s탶Z@7FDb~>e}'yimK`]),{rZֺ_p˰vv{9@?`ߥǕ!fWS&O-a\9Ɛ(+A9LxUx;yqIˌΉx"bx62TSFѵRrVvULj{fL#֢zBd$`l_!,CC?1'̽ 72ssc,ϭawJ75c;y>:7]u7 6 W_2;S!\=E>3\.${M .r]1 +C/}S̮ҿf;cU9T%la~@Y1OIdk lJc_~ɡ@sXY[LWl9sxVj_b oodV1^e+Ȫz{ڥ\bCyo75Y2rgl˿>+Jx4-rv6pfg >Ss~ڡmF,vn/ۜ~R_/\o_#Vp*b.V5߉#=.[R4$M Q%+*rɀFH0ʂm]2/e-,D.T)YRkokOU'gmUVUv/̶7a=ƶ٦\ԾKb +C~f8b>Q1_WJU'GR֑뤏߈>G_k,K6m#d"t.+bu tst*3WJμ +P8M¿H{ܓ#֦t$:~S`jXUik(Ts=v%zo,^m9(勎4ǖ-v &ao ;`lVQYYzWʗCtEǙe`95؃yʛ[ogqVi ؆[nmK}|B +B +)bUZY2E\ܞJWU9l/1=t U; j"EL<&!&YfKp=6GOAED̔wW4 +! 9q4zo уR\>g3@cfo[~o/:'cSg`Y\bVm6+ PA~򁞕$$އԔC+!3}cX3˫̝p"#n!kzٹeuc\FB~Ӯ};R\4xzUu9Q˟B981ibuU}M.7:)L߹s =MSa}^bl?HCj@zo ՛~xX=ώXg75fzmATKA{2HQZdEES;BV$ly <?e6“kVU+[.@, E=`왗U&#MOnUX0At ֖>!r-@mT͖y7(-ޢ +㲵Tx:9Ac]{I# [Wzjꂛ`x|&e:A@f f)Axg\_,cB#J;Hˎp{·rEsZ3&jr2j:":k)^۟_uх46Y%||(K,kIU^ ‡8APQc:qQМ5z>yˢ/E#i12=Z J0:3?r항kd 7W [kP(\% +aE;iYh:ׂuUrMjyoBHhEV:ݎ))_I16 Agc}J2q/ai&Y=1 +]/|{3Me&۰j&NS3kRI +V6Ag_6'UGg8͒i:u>~&5l:JV,g:znEMz.&)hSqH4 Wg3K +?s2?%vaWںen63A2J;dMߤws(~ltBqDZYqOQۙ{G3~)< _1YMP56ull.rsˀzmoV'_4s؞$IVR“Dӕƴ6賢 uWatpQ@S :&N+KXpcɃlBFXg!Ĝ/vX<=qGgi5I^I}vgV̊DghP+Q(Btt@mx4~Gj[_G-E9]+3ū{t-\ececJr%`m؄׬ߣikqz[#˩6j +0x +jPR U rˣ嚍#RVi +Zx\5H_\օI`Ea ҏ͐7|,kf ɇ20ͪ+}(Jl{ Ʊ7c]8#XWY8!H:?D`E`I_̤29B + ygwe^x5AelY۳7.760S c@!Z_FΓW9S pVwKXc"9+xN]Dѩdw +2QW|+.}I߰?6 u²EuEe%-Ae\R`z.OGtb + Rd +z4H 䥏,JۥxK趑>˲&SFsZӓAmwbAKЃlbjH?8ub^\e5%SM$RdoB䙾aMSB SV"跊gpzQh#]pd~eP]-3IJRۇYą==+nM<%ȥ:;WtJg1~;rɜrqre +?_FY߃_~5c9IO텿*N6,[tBΓ9t5: @!FTUz/vtP&LO;SBэ(꼰+ł@ڻNB F,_R1h#=DѾ X۹"gJq2_kc d%)ɔmF-+#+X'Gd~VDs{61{g*K_566n1wb [4dErO#{g+@$ ~k{*Qp=6`V䥅`u2&[,5kz\x!4O#3垭nm˜ȟ2TL 4sA\1ysQ=94V, u/_2fzzaؙ!3`Rm}c,{r{^!>"Gmy2;(ȳŢ\ f񛸬 ' +$z.5kF8z;w÷k\)i23Џ'89n{Dqv<^1NOb OHAQY| +]%U拉ZQ${s( +Wjp#Wt}BzOlU!1sJZܪHO l& ;=lrU&ue%UTLXނSe}h|:/3W=Z ["0y0wR_GXyN%byDK'2!870j}Pj釸i47،hYlGiq*/ZYHl;MvmF(WnRl̔093!M]Wq#B5ն$6>ǵz5 7%_a&oFJy>}Ի7vEDNj8\QO</Gp_q6=MXo_f9Y&͌9+J!&\Bg Ya 224;0!m} +i֘e&OJ)[?ޔVcR=,:Hl]c"Ȏq}ըF|5O':BǔB((tvXd -8Hu_q7hs۪'m |tmm:Wmu{mj(ZYR<+A}g ҡ$;5l` CAn},I@Ѿ"G"MO: nI+-_?)g\?Mھ,%16m1//)v,syBO!r^8-{BzjJ׊oYQI6COe1Cm*)DvYk!}Q{?Mm 7 X7Vntn"CX߃ zojռ00"q.a0Rq<YpYOBSxqvq +`.*HsX+Z JUlƕ[Vihs!cFUI= y' #ߒA&ަ#;4EPbd@[ǛY[ěp?rya2* MXXa~i~x~7uU+L* 5b1;﮸W{!}K־mEfZmvmNyBo~u7\mgzϢAo>4-C:ތsq +9_ +ětӤZ +  { :o&y+rWDJ w7}a6~h_=!t\b3'yV5Oܣ#|Jb#)OUhHlg82L:]3&qד/Q{x3}l}y6^b,ѷKIPh!5eKdg5<ĥ~mřr#gXis(v5{?_<=pnޯY`xׯ +k||57q_lU\Mv6_?tlӈg[PbtHRx'8l='TrN^jV=G"oUW_c+uǚX4.Y7oo?3t}Y +{ZM Ah0ndt(MIhO282@͛-ZSlL֛sm$jR=W6Hgt XCDe;.]:G +oPǥ%ǥ:Ȟg'0 ƫeޓ5JL1j98jguh;X}LG򊎶; +B?pKC!%έssOLolXq}X;۹ 0[ v(o(بayǡ;$@CKCv9^Ţ";gDY<.rA x䝳s}r:y#2lD޹7|{:޽xoh,#WG\ 鶑k=+\/\$7ү% $XiO߷ύ[,er%e |x+}rs[߯xu6“6f"bU+F1_g/\U&OP'0etIh$}@`OC< ܉@Ox|dE_9^ӭCntF9.bĻOyz?~Hj}Nӗ!SWK%ӫx U٦W~Պ7}{HƎwX~8gS$$:'='LDsw-N*_f8:ތd$h_2jNrwnOu&oίR[^v.C5 5uol5 Y_ +WgDY Q& ~gCeZ_84vT[IִfTȕKOB. 0ЋN׾tq旚YXoӥ3=G̭7Rs@Rb_xXf +~Ѱ,~,S Td(ރ<bo^ y`U۷ʖ:}Ê/h<G csvwxzزCRꁇ=">;?JJ=pKgtLz8y}IeXU- SIʂ*Qlڍ/źPE 1C]Sa>q#^T,U"OD>EaxsKsᲞ.)d8WsMD0|x֙?ŲEِJTaJ.G4Oב7v9|RD@:z:` J˷_cᔕZz' +GŞ +pL_ fTG_xLR5p7pRW{h qǥ2DtL Uľqxrxv +>skM9rSwdW-lwUQ pa:^o;Q/5%&$/ !^ ;f{IiB2 +.-=Q2h˲vdqwdQMf;PJ͎ qA
MDpjHלk4sh:^z:mj5@bf`_{fic{y:+n+v;؃2'Luu<| +N';'vu<ԥY$qU:)D7-Rf#~4^%0Ēxu|rև]/N9_Yv ɬdLr]=`R$S?l!q"gRB(=M3Ը3:~a}Ru$ϵ:5:09,&@vcR,zw̲>HR|ٓ3rQ&̞!z xB\Rd݄i(aBŚ/? چgijntg{$h܍iLط&o ll@ۉȻ6~N`.3؄K)O\Iq%̃t_ 5HIW4>ܐ|ĕT|/ޜI,w>lS_`69TI|}7lr0t=_ \%t,}.B@2Q&@8~ ɛF_5_pg3+6yAj[oCwg' T_'/H oWO0x|nM%?2Gh>|!>`Sbtn{h$|!Eo>g7x~ n3!n`,L&-.U,Ф?gF\t߬,]OgB3[L <'By1aC"N 4s],9K"XrFN#΁gF!;FSg{=n'ϗ_}Lt͜~Rw -"Y8q-DtYR IбW(g"ˋ."6;4O9DD@TkON +I'X3Iڃ'S|ItTgo'qLhAٟq8el=*$IEDbLyG )$w/wv04gq5?"%ˌvDs0oET[N86皃R7 Y(azf6>P`y>P ΋UlKon=&68ΛJB +Ώ 9d Fz@㟌 t7G +@]7 `CI@r : 4 T + t%!`J2  | T<0AڔD-r==тfqЂL.cZgUqP-xu4Mbwl쌾]Z<%ߏԈD;|ZLB*IZi-g쫝- 폘/GI 4lc0lQM6Fٍy@@RAv#?fA:39i(Fi7I56tJjg' _QsiJLTy2/k,T10z?@qAuR ve2`PfH~tZ*($oV2R:.Rƃs.`!q~c .ڀA؀Af1q!ߥ<&;1selLNUY|=<8zKeزN>TZP|D +:mu8y A gintc +ّŦ Y+꽆 ra[׉gA;ҽH#L+,/vť#Eͥ2*bC9RZh37cIbHpn]փ-9F %}Q{O.MV?pJί3Y}ق +]90[Lo)8+u%ю\'D M%߸EH-4Yŭ )śi[:No6_߄W j!$hr dҜfZϡlox(LJ|#4(Aca?Yijƣ:Rs9<&<7RI4s3J)f +kd&\p3ØG95yT$|+8ylAMW^iV59tn0YjÏ  +ZD`~~"cCgKQ Ia'$+8\(e! ͜f{fFKHpoLcÇ|?H3ְdN4sLd\.2Yoj>i}O'{!Oɾ';ۉOl +ᓽإ.'ӂj⓱K*ܥ]R2|yO6o7ߩdg6>{medv, w>ݡtj;,o J|Kv㓽iP6toPf(v}.3g#͟F(9B(<S6$!Me }w'w >?$Ɇ%NH'?qo)>d@HtJl(]R4>@O6gڱ ;z1KT4`zD1;.V*1kȧYGz<."ũ~nyDs(#q+"hҤeNz@yO#wg9Q4+uCQVR"%('+St@!v}r_')a=N'FѬ9~9hWqicAǍZ,B$q㘪bUL?xvCXyRӯx3,oyH0C$y#'8N~94ܡx¯& 8o-LA{ iJ)VUѣL? NH#yW8c/D>C|D|)nq UDS4g0}yF8J8"#SrN p/nA65g?E W:ywdzɹލ;d>9j'4 s\)aBsCp(vW^nu̺ <๞c0,.Mg=!0B;I{H&<3+d8#y&TƧf<#CC iDIhĤg E98Y2x0v0K;!D[ZOkX:>iZhF3"62zjdژL{z1<$g${zihi#@@a8ڃhvh0-{?xD0#Ҷ]րCǐv:iXAͭ5f@;_ncҬwƞe/~ +,Gس C1.`/(_1g;s|R?HsBZ0^F` [:*s(lA 2FGV ΐ2䆑ynɐ[[ּ(w;ſӈ`d\ft:WanO>ŮÃ6{8 +/ej7 Jmo3+uqyY4|W{_|W)bǔYX>U?9-1VAjZxgWp]l"[ ~livжh 0Dcj?%bn&Br9\K@;k&%KNX&/$25NdIF6T3Swgs:51 2 2+uM )2< ,_K<"aèe'IeH[ttSRGIl/D|$TU)dw OKgr[]d9N39;a܃r&)'u%w?kyMPF$Z9>o6%s 2S}M&*m69^:邩cUJ*.}B/(A. + +LX|T_Lr 5egՓ@bjg$sc9?46pYi;59^19Za6N PpMl$ +A!PYtl)x d;"@ +N혜7T1QU7H•q2ċ>aTn'sNn2 +\kSVXLyH'Rvk}5MC!sYxy.7 +2HI +\`w͓ddpzTXhLÌzG +ӣfHS)IH|s1nv&0U7T][i~j%dg&͵H#;qifNGJ|S}`&%O=X[S^mcV媌zo`_VL.d#EvrխvOjahp+ qbYt qڱ 543p*0.Y''hD^J^l⁀H`WTI!9B!IE F8͉v|lIG~kqڤZΉOp9W֞xxk-5.Hf+8,W&G*qO +-{"$C:o`NE&_vU+lmoLnQR:ٸ j*;{ĚsA+eSņZ$*%}/]*;[ rVQw6fHA%岓,NmopnĹ.:\MRˢD1eH7X8Y$A#w 첎wQŽ^*]%pdiܰ6@8$,┒V'?~YӐhb+Ng78N.,_!izy{;Q|h{`أ_eje ifP{$ߛ+:wyRSЙ,^ byRmn导2|˓NkCG3X;ڍ9&HD1uֻʴdxRE[WYxMfhaq#6rF!3 Sa1C}Kb;Y&`1lgY"t$gjbBL R#[[Adti@_?5y@t|Qw)@ +]D^R gmXK'V/ķqDJ1KYl4])Y%دqt:Rt%9IxKلz \ O'Ԥr~(%Z'vkTmQjp8ȡ{ +t*䳿4I[J)SCVRC[3U*cm ӫcXe*kƒ[}MwF]z,51#SI@v\Ұ)~$BGk(1K!2wQ!/UG97@(3dz ?% JY&0Vn'vy7zBe nxxv3;MUob_#^Ycaiz&VpQW>t7QAYNEݪnr [#"v~cw*,3IF6ߢh|'Mu9s9kE3hUxY跳i탿Hc.f3;Ku*S8'& l \Cd,B!SC?<#O"]/:N9LajR8&\-^4Ɉs%qtFWr; {cשmYU$iӠ2<ݙXci^ifᙦc;w["<cN+(B㾰a +s+1uVʥ,y[HL]友`[b(|Նa` zĐ(8$1TV8RY:ΗpgLԄH Ҥә^ +5u R'DKワ562xxƪlUejPO_P_6D[D:kv U4/lrÈwuI:}63T zEEg;*4 +n_iQ¹?/ߘ;~?t``\͊Ή+{U온N ++(_C 2>.!9B S>U&"t7+! 1$ a$(P9Bf8V0<]G 2vx jۇsLUo/A$I\?vU +J:LUu +d*:ȂHaz=]KïCs@?5 V \l+pZ`nefIg@; fN';@;];贲;@{h?68 O՟ZSfspP^0߯>ax=8iOѢdMAşYQ`PhNܜX\i>,=O>MoԕC]O';|EyUm =M=Ǹ8ˏie]㞜~3~||vgBor~HGUbLk_ 巢[yn2CqdҟlCrSuX^o{O.n(V^2?aʉ *1z[9,;\DNPXA-~Gy*`Oe$>.dJr*?MS֧[*.՝V/Ɨt(K%T,N-:^N锉aOW~Ww򣛯O8?_􊛿),R|_]i$V9+ FJ[*"140P +0-zzT(1Ra+Z^R*&>bRR .<,^U-YW<-'h6tKЁ8}DoRM֓ u\vZ'{ۄY/bk@Ūo@(((@E:UݻfYkͬc[‹$ !o5^$٪wn1{ER ?6UEZxZ3&wq +X}e^dR c]82XiFuܹt>w^eum6Cdk ?~7 ˟`Qz$J+G$pY, +b,N]h6f""OnJ$h26e,&0= E⠘6#wh*i@S5i8h&NI' YpT޶HS-iZk*-uֲn> C d~r+Ii6  qɴrVb,"^i-2V*W=kDJ+ ֹÉA 2q&0PGJH+ͺg#yFQ+Δ>߭zb3H߉ +W]k [hM՛ OtM+Q/aj8 +.^/KU`جxuo](m0x&5[Mxߔ~x0kIg[ud< ϩo 0"&3{T5c:Mٶԥg.vuZ۴>*Ǭp e"=wGYJr8HXh.ϲڧ0O铳>'<Cwc#i^y@yZY”ssl% 6d1svxϾ{xϮ=e<ҪM}fͅCʡ[5ݓi5܇,5T]%s/ey}iN5KN "N .uԅYB)//|.rlҩ;dZ\o- $ xz>0Gf[[C8ܣ ^Ōm%ܽT]0|=eXm] Lčeqn-vVe)`O0Ds$kZ7*Z7ͭϩtcH₮"]\.n2tqp;uyP!(oB|D=U<htOZ~Wl>uO?_*`fGE Ó*)MItوDv-]B>ܱK3SbDbq;gh25n8E w>4gR^?\q/:ټr//6`)ꭳRN7㭩\b32sHVy`hh.|xdqUYj鈃WEKFYʻ`]k yeH?\z~0od.aqǚi>!,I|ag/OrpEDNjӄڊw/ߒ̍ae&cp[X=#;orN_}h/5[ݲ#sw9ɖTÜnG\̙dH]#l=%\R'с+ՙ+%= VG`6Qj0A5P'{YCwiB y2 Eckꍕ!;eu )cNlos1v9w0>m=swf5IMYBL .}j+yX}Z{Xlq7vtf tuE~jVRs[T)TyVU="e65IMD*zMiӨ 1Yn̳EgUnӬúoa7-u䆉_S/+t0gd +gtKsTcRcyE\in6~=c3ʯ"l81pFF]`)=ИgIV<8.5J-Yi2J8h\9Ոyͺn[zzJYQ,_/poZX|fF˿a(Cx1ӛaZ5vݲ}]+ݕ{# +!7 >haڭ¼r`ј7F eY7 #57Fg箉q_z9FLӜيnGF $)k$+oXGMIxYMxcMW&m :Aw%n711$,Wq:0U›,›E:ل7:DxӵDx?8&ïB} _( V$62COmtLxJW"OǼ$/Mx&ioՎzM.G.U2`rgDdۼ9A\?etnR3{_*ʈHEݜ0]Tsg^N@hk#3߽)^ cm@q0u|On_tu.dimHef.40"gR4v_#ݏL{D<9H kj3]>HR]@v,6ɆBlx\߽Ln<@?KPXi$l6|V*2z;2SAlc ;vg>|xʡ©&15>Ϛ/]G#mRf>o/'{ >χç//^>O;W̧/;/?t33g:}%DZES_x/0=/'O w +)!}a/}_;jpGc Tj2ԮuvʅϏUw-P|U;i;/.P7Mm!EFҫv^UaR>ǪǙժFUx;Nc،'4 =" ΨZxPNH _Pm{`if\kK BZ8J'AljIW8NWp t{|foԥ=2LM)͘61,-&WK5dif䯚5,\4" 6xc0mQ`fh C052(8{$71 W>YOB~k219:\~/4{nTˀ檃q Fe2F'4}i#kTe4+oDVa36K J1 }]>O +& t݆ѥAlKn\1{oՕD.;.9D;փPA3 PX)pgo`sBCzjt7\ kNYTRkQpr dW<rMlXX`1Yj ?fTg 4# r1:ᾯ<\% ILC#HG9~I{l2LJAL=9JzhzOg|Dn4gUY>|wѼ R>m)פLHܷ•Cr)q3va4%o3pc'n2_r/5wnQH]h jsP-TZK2"YbnZRϾ|R\Iz-uztn]OlO!D "}K;{bI 'fuzg5d2UxML%pFlmh ){Z݂)h2 jQq>!=kC]!j$ӣvlGeI/NCx~)E!9i*R[༮𡅦i,tԲ^Z /p+bcT5_E)hH?{#3Λ2>י<ɂ'փ[:{]+05.GE3J42mszK#_Eo7OϳoDwt71SuU:dt#(kmA2w/ޢujQyz2P?+o'D@,.B-RY՚M?̀*PWPS~EVQQFX!_V*8ְ~A,Q%[!;Vrk?D-3(j:cVDH͢Wsr!*K +ϭvYJU-3;̃b45׬yFRjQVy~ZMZTܓ|$&me{m]#/8'[leO劻 8?#wgb,7M[GS7c'?0ˢ` sl0_=E }CR+W ȯ[̯M~N'FI~ xDL- S~IAkȕ2Oݫʽ WE}@>HuT[G,!Qn%jí|MnV 7LWMGlhe]uZĭGk[yyqMf#35g,%`Q!\h~!y*:G|1^bͤU&_r-p ΙL+Zkk@|.q_LI`VN\Tds$*'Xd~1bTMش*#k + #25g[P&AgysEvPpD/ϓ2C)γWOhw3MӞz9Vn+P+viֹ9(zgR_Q%Ec rJN@4..ky~OF2EE +/uK8Ws4}]:}n̼ͨHgȞ:_CV27yp$d'38 Oc#ǖZ }M'"MG~*`%_V9fK#8(`2n*P&JL׿7Nc.w6Q9Hw$نujpG⑺ߛ͏G|s|Kl^>nUꙁ[sɫxLW +?wV[VRQ>+ÏW@ r]m^}&Ezrj5ԃgw&3Rw!FdYV +p؊ yԍߗ}jMbrqոJ&Klv+ٙxZOB7f|7L7+srǛ+uS u{qXk0##1Bq;=x3/bi'fSX$S z) +ȡ`k!-OwlR2*UM6A*oN22<#G,߲ uٶ>L[|4߀?U f >6iVeVϓ500FO;tP4Du2U wKc ^<R=YzqRb#żQ+sG!{xXJ=+eB%૊ ec|tBEM8 l??Eo|d}f uJK3[ͥt"꼅2ߟa+il쇃G)?,pISWZ+!7ZW I{P5g'Uwf^%0;WT9LBX[Gj \(T&n}B%ш0+SeB{g !+a ^KfL HSc؈U=,+ayq+zUG=bw'&svbx l{gןEu5 S֥d8v?Ҫd߀ټjʭskY; H Ql]+;XN̑eQMV ^%FQVMbD9^ɌS.5*Z*YvqJ(`Щskk[w[D$/3:xLtX;XL,#FWkJH3ԓ[* Jj͈\tW/HE.p27Hp?fᣨ]~h?˲615R9L#N,¨,S⻥eIb$nD*<1@ijJC DPJ' +pR%3꽍C2LDsiD9"{m+V^P4S@|n1]Br{t<m=VNӃ5t=1~d +CЫgˈ3B(B+= E(8b3>,7'1zN6'3H BidV*3~0xYzbҨgl 3|D޴̑L_q +)G[fP>Żφ׃(>{ezHrˍKduNeu3_QwSЇY:QV``oC**n!A&`˼Vyylct|$CK Ԓf“2i_f&LIy4ъ,#|#3GGEgT߽0!=^CDt8 +zӅes3_s4*T&_]sK VݑgJ0As}TfC#B#FVaB9NL9Hύu!g'֎)T+0av^!(wL0 ֚N}uFލ ܃)d /ҹ8KީsO,Yt:N䴴'4~+h2nz;n-zMD2_|y@Zs%-eeLdu+&-eŬir0A ۉGy|"C.!@λz'`/EA}ptGl݊ R=P R%|D/jR16<-ty@vx0QM #}0ԃORTQ*c!ULL^S] +7`O)զߜVREHP Q3'! d{s@XylpVxTC1Y<tV,rxkd +eNL|tVF5f|Ă*wY3W7Fe$C70A_|yr(_'E:fC͈!#J[P1clld<3 8:wHU~H됊7x"P8@] "S2Υ /#$ {(52Pv__h{sF7g>F³5|/ڋv^P} +?9FdeB pFX?e_Z݋"Y35Vqq|^û^7N.ҁQK]`=koeY@l{LpPǩ _pJ]wݻ IX^ao[or#8E7M{@gr6Ř썲6]$'MHI!:]:!P gD챻A4M&d8 pG(^*"p}#]{ox̃>:#D' k[ :x1~(5rY8b td\&K +h'ï`X!\l0yq#gL<5<bkO{)X])x!ʌHz1T:TiUM$uU}rӅA*aEu/?*osˏd⼇K#L6-8ꐼN t{s}#zF$Ʊ"al3'O &n̎d,Ɵrу j̹5|JW#k`Xo*08Gx2t͇=31[M + A'5g]˖>5QmFJRFɝT2՘ (䉙0JXɉ^uṢ[~I"]V>rߌ8yH*_Q>R ;jdY(Q +X3cj 3SX u /aڬ5foP|G P*,%#IΊR W bbSFMW[%h0J&Ѭ:d1$tخ1Ɵ[cޤ6bj.=$4eCi\F(јeژ_%^6RF[,14/~)Ҫ\`\Us>!x|QNϵN86'P!r#smn%sk7>a y.vrV#:qCAp_m0xF8#o CH(JLx\m0xL2mؽev9y~TkMBK߸I6F2 u?x{<\f3x\ kYE6ǕdmVām=j(Adž#0b6SNb\_(sU|$|ÒRp ;iQE_ㄥI`Յҩk-Ig!ڞ5=Aȸ + Mt,x3hDZN&DyuݶFzU^ݑ̷f4f>r.=i+1G6|$ހl%>I<_Iߒ 4G$nxsJwJۂJ +k#LWHE;qn!uZڝ.E`dO:]E.ukAO3mlS7NB8tw82ƻ)JY+u܈z +a}BQ}}75|݌7Z w# oj z%qZ.,՛Eazl1zb%nqqt7=GOtk*#17޸~qwl,gÏ!Ƌh/mYOC=Z穠 Y2ApLgɌۡJCXc?65shm.jYۄ'*|(V Zu%Ql;P%|@'D)Kc5xv{tvk?#5Kep1aY^ю^)uu[C!Oq)V3O;Ȅ+lf6q) E'*QA+|-B }OཥѠ6y4? PM^ț&pga0@@[j Js7|PeI}Cߩ))X7 ,UȆDҗLLy\ @snM 11FY[@+E{"- (ϱ lI;1gL 24m0,'蝼/&y;N]ۊ̿%HӶ'@9;,'tϮ?9314e,Ks%U>3 Rhc8:7=Xbp_ ~GO/']D|D5uja#&^S*&+ǜ䰻fss(!ʄW+>3]ȉQĔ`ՙh>%B3 ]9jWa CV|(!#S2};Q !欘7orPGDHKE KM[dɢby-[^kB^u[3׈i00BيpR.2N@h"(ԄΊ3_tb0xuꠓ<LQ AFNKq"Tl,F}8GAh +1juت5S}M='"bRT"0$6uX@ S,_k;DY ^!˥6E‡D:%wRX<)Øk߇ه +e[X˼aWo'w>T~˧-EFa\lvR/dGJoh-B?3iڜAk`*`(: "=spSB⴫ +Fjb-%;$u +=mu{(} +|(G3\P45i sgT \*VM-P_XX1|OPU['HLE +\p9hULnZ|oRWN3VṮGL}@qgQF7T *y}XT"JM W~}'!<[Jљ_+ 1g-fWl~|2K] d.l]o/H"TA@̛zԣ`+JXTW>LoE6=yq,p($I䒈oT-r*/z69Gz|8 (#?ˌ|?]̗?}Y^ȗǗ˔9˗)sEe&{݈|}bZ2Y=r K=/ ÑH=Jr
emn*ˣd:gw;ɇ'vw#C;T:3Tn!UKh.̴owvԹI=؜yXӥ_!mft6˞l~|Fsf3;>s+N9=cf1g>>s&̙ 3T8"3 +<ۑgg6L<4W",}+ix?YJHyQğɲ,k7 +Wqw%D mV5GlC][L߉?7pɮD`3P8 !&ѨUpS8QJ7%j>F>L>wNpbK}Ȳ#o3RbY~g6J3!ZA9?d7M~2ϼbI1gAU* rV(D85j;zߏƘ|/ Ek[Js#~ӆ+)"y},5M(\y<1j!9Nƿ}k.u˷L0xm?sxu7ʦ |4/'7|,1ʖaUPp䀉5HVԤ&Կ 8:nÜdݮTzB$2/WO72xod8?#sT!yTL*8%kvX1pl[<<0DI> n.rs򗀥g 9WIU+FƝej[Au}zJ;8!2oq Rh 5 +ׅB+ eE>6Yr)t=\F[~"fy~f0`r0c~xUhV]k)iFOWop~|F0pLl H +D +"Q +'CEVy72-2%f[uun]؎GMumՌ0`zW0SCBxg)!s'FlN.K:Bm%! 4;6c=E'hz:>q8ݙCfU%^e"~ sD7hg:f-bb)qKoi95 ȄJ0ta'=2\%ǖMDu) cTIK +TqޠɆ!PWfd*?6EҟƘ6¸p\J}:D=RٿMvYqa++L!*seIڠK\7[IS7PfHW 2gTvez`OjvOÑL9hLJ,W^fuZCAU) fZ7ټ&\L}BBcQ9͛4T^$ySᒒ_ISjl#f?3~sǤWߜx"⬓x|+,+>LvjDW$9STwheq,fex6kS);AY,k`@/q$_@~)-gqcf,nuSN 8Y|b)U7~ťL?@X/|.nYO8r_C"=3UEY7SUǝ9`Jو^q%BDlnebxHɃE҇> jlb2Ӫ1V711hߒWxCN BrVHoqXZnьd~RC)ubYė`}~D6z妭~%S#8͡޽`ʡ-u{2RG|t1HdYg_. ?1mt[m]Te%ፀM,=h͕;6TV>lyM Q1#VTHG-{ %y(G?5SyRfs7/@馿4%< ;y_3[MB^ WUi{¯mtt +VvW~?2sy.FZf\_ԕ2y̏n!\"C}PvO'elv%N&MҮ CѢӥup}ZݭyK%ױlU?oòƷ Xtw4t$vgmw uɚmyN2|,0q}3S-^m|39B44*EOE`(q|ʔ!*SsO2?} q-u;w?yʔ4DCMφ_Cr[ «֥Ny}]+>+2TUC5b6m<=lئ,鏳o7FD~k@$ +*GoN\0 xT|6ߦ(wzi.\[3ctS-|Z$Gw(梓U:|ϑOMIa 51`ih}<(L#0Тg1<e9we'h|ܣkv0MJ#68>x}V W6zQ[pDܵPU`Wka1l"~Ȭɔ֌mYdX&^e+u׾AVr+fJЂt|-(qy׮E99O#MS<SA`w<`W'w.rhr#L]"}G>]б DޠB*$ؑ4^[NM6Olۯ27~7"ҥV+)>^w3;q04`Pia@{N拶_f fQ5J*DtUCzlR E2棱:{eSA-}4@7O4dBoPw2?@jܖTVOdpWk^i˜cOa~-_syMb1<c:qw{O6f4=C,~T:9^D5_kOtE"+ټ|g#)8 |# +EXnRw-VHٹ7)L^|w^\k7_[]?"^>>2Gpхب" g&_ݓ[̭Vؠ0W<bD&p=\̈́vBfʘр1{GYb݄L:{7{Jou2 k&ròDro7p`'BCZXtfY]n6!{Ӈ!'K 3 du#ՉWZ?36/P%wå l@q}9OXZ2&vM/*5G޵^qs"oCÞF= (2zf*Ή Akǩaj6(/QV P>ɽQS;V= v'Ѯ:ioyMC5CŖXdghg^=9ac4a.?Ĥ ߲}ݧ>w3Qm[+5lrc!̫fۛA=Ka9ax64"ϝ\lP(4UX0fR"W5d9ӽI@ӔWAPV"x5KxV +gCG+[kC|ǁx.m?u㆓zGz]F3x|v@+`n*zG_ S/{>W1pvϿP>.ej횁[~,| Ln™b}NAv[kuO+&\6W + ' {o&qт]0ve<ّ/*5è^fW7'4Wxu`5o ,5 KӺ_>pL%-i^YO?2+~ J>>ZJ5!5 FKWզ鍞W7'7|l>Q"&Ȩ˔^|_Ƹ./*|_iE<|;>*[e8vR,fY'Dwjɠ[yg~Muh| .'v~X K>YR>kxNM*h4ςҚ?m⫴o2lgҺ`'e5B()WbGغgdn?Amq=r9Ք:<< Ek4eH$ʑz7[,u-et[^떼73wY ,BD+ѽ[qI{0E3_:íwc?rw 94YN٭΄vb[0&,<^*"̾y-`T<V{uչ/:pG紁*w ,% YD5Kvv)Ed bK {0bK%䂇-,402(6(7 X dI@=Li4 BݍCPnt1U&X Cơ 'Ȑyxq3LN^cAA^ɽVegUwIR&9,^wB^>ΚzDzdٴ9D bBlAF.l=&VejbCꥐi`s. <ݙr񮜽\7$G?iܽss׉P'&/g,so*b_8Y,pq"sVTeKRgS +|QZa1myΐ]7-4rq ,dT<J';6kvP38wx,hv8 +z9rD՞Q*&Öu[U(R}WR &AV)5ḋPt! {Lb[hh$2-DZtȜf}R)yh6;E:|+W'P9hyS^5`lK6К,N gLkcsmIqYÝi5nxiY+]Kmv_(^BO竁Y2%oazM=.` 镸s7B](t,ĐV׈Ծ5bk/1pY`v 3_5_bvճ" /4vb;FxJ/Lyp BlHҵ0sM +[ MoM=Ti`LV'8tlنO'Ͻ&J&E7Á@([wy혶r&|x7HA 1>@Q rtx?jG[xbq0ZIcC]")ةREorWIB(fq<ѡBSc~~9IgK6jjjuN%X׏0IJ0a_Я~P_dP_L},jl "H3회/f̕6!2# d˚,B1# a'q}irR1҆#ÅA  +FL ϬWo|#bʲUcd#50El!˟q{`r׉|#z,ƧG&*\>N;?d;w3~V A@-6g7_pȊW/D;wӱ\S2Lm6 k9~@sRmwty{~TH62a}NWAna"q ;kFcaX565*n]ލ-hi|Q^UepFee_dej337wʍقX&Hè9ĵNzH\^n52} \F+/-s )OFҟoFǙV(9s6#S-YKH[fF%3%AYI83W''c_ȏ 62pzi,R צl\qRtQ4Ba,^(+"xTWeA F Ƀbk*Lܵ@UmM w̫4iiHf]0C^390 u|cZpd^zeD$9_li=hJUnnAdLLԋF&WgNِ呣amsR>ۏahz,==5˓6Icoe1VP~a2GŸC?ϚS;tq х|TgUqGYgBaxJkx:+'lle$\|fQlcbDCS;xgYnۄ%<)S3Xg[>zkM>cefa1lCg /wG ]>Vdhldv)čYFƏI/[?V#Ĩ*eC&1Js +g柱R͉-S]뛇^] B6F'Mws&ǛZoG|Q U4Um*s>ѷ]6*y*<*埩5K>|bU3{tP?6c(1pv艂8?cU1~Vű#:f3huN= Q?Qhqno>?#Z.O/V/ Li6a.Eg#~d?[ ~G𸲌eO s63/IcUI:b88LKĘ5 StV5+}ՒkG^_ck?_hhz4GsPWIvף9B&L}\i!@{<$vݡ!S0ذrz4T,v%uWTwΫGP1ZFCO]fh2 NdīݨGl87~"Yaw^!A2',bwr7sQ$rW`z4^މ?h}w?wF'O|Ǭ?K +so߫|~ Nc'K&pF!Z<,52R'؀_2w|wU%Nc]XO'N>?ߝN?΁/#=L4%02zUmЂs<@sd{ 43ύ myFmL496O>/@1Ȫ$ރMh ֡AN]-y_j!,2U>P,1fw6nw^ÑWr(ܟy֡:56C~@7:RȦHTJKջk˦A_I'q5sľHXˇu}'ύf{dhqXh"|WdKs>Քݕ)!lױĎïiX%pTt^0 Fv/AұD2U=At&ܧ]Bi[pwQ]ً[!WhbV&f4aFӱ+ +@j3De=#z] 3aڐ!.$kv%#!lYZYfUG& Kw}ja{9w~|;MKzX 6 [O4Euc:QGy-IGeʌJG}4:t9-d"?nTRhUt ^p)P_YƆ%ߕEv,3p0U;SC!~|Ro''xqK L-mN}tks>=_X&\5; h2(vHHM3ThFHG/)k6ck-uDWc?9K͠E^=sycy%IMo W P@Cu˺D EJf^n\I4ixK~+Xh>"98{sgAˋjzKzz 3lZ0lkqeyaobJ}ҡeηԝfoB0G{loa| pW)] R6~LGa9g[6z%7G.O}"p|S|+оa.<{A-Z0[LV+[RnjQd^cF$1wQrTۧSKd}wקRUJfF)C'uJ?YVNXl.UD^fF;N-o D10lD-g7X 矽74rc`u8`>nh&mxpCf MEnh'7tS.`NWbQ1i!~YVNʡZ]rWC̄E=->3xm3%z Kz۲M Lѭ9;I= zLG1M+5=>υV~.ŞU/*ik11KuʦQ<{NHfާŎߎ+o@^ZƗa2 +ȑ,@s'՜IULawR$cQ[ӥ\O{J܀L_,n']ֳDNoN\5'K {W󵾤7eΧl4)~oq\%8ԭxFQ7%ԷZ_%LI)1m.:b#S;n;#R/R>#>N0A +c4 }o9d)% 6s$`9%.@pnef+tb2ReY!zYּ輡Ho_Lt34l{ra|HF/NI&;tX^鄴tx1B_hqF߲d.OB3:1݋b*5jP)Hj5,ɵ\6< (lee:΅օN{b>I*φ r Y(aARv1W 7yCSӿN5r#X;iT]SҷXg0w2uFxgi#KK ESὣEj+}\|scf ɺko;]hW9'6y3l@L̨Hz#R%o<y:RxוBP3/0,N.,1|?[ F :N2\NXD]F8tQMvs#H5iUGSV;&햱_N?3bd35/yRy:ު_<R,ݺL# +3`Mgcd@X t<īVoI[vG{#g ?ZdL ]V% [Bj):-wfI0[lVHEKv刣~UvG#=v;es +h3Ukכ3_#~<|yggsz|)+G>]%,G[evã芷ܮ_cES(k2 6k+UXc8c` % 㺑h6%'$ E\2F=FA]#5l8U륀ޚA fZa)ɾb;A0pБ_4h6JAn A t=P +yƕll e(\,F1Eˁ<ȫ5HGt@E)P6 +-O˻TJe,PXKWre,? a;ھN:If9ڎCi 4NAD5mܽ-(#7xqհ͵Ij `|5 "-l _̈́9lj d~$WWA.tƚXSi*?s$A0ּƚ=5G]ghm8 G,pu4c͠zH=_T#wwbcv5I  :ںAcԎ e*0 +?ЇQh/{Ra9vֺf0D\Q;4h>.^Tz1MFxfw)yf>H"e(Sr +mRh<lm6<546K8HmՂًXiăc!9MT7D5{ў!9J/a@.Q KATjN"9٘/d5,4d]!"J?:IVq4@Vг1,G3ȝ|YMD s!$'':djj ?6KNdۗ$ +3aK:l + *+ȡ,=ƍz]JaYn[L"c +P?ep\ ^>$D^>L ;<ɱem =ŠHIŴbt15^OL,1\#}2z#YW"͌л?rb6\ +o={g_1d)2m|iIWgM)w<%7A'AK [ )\z])7S{z +9+p5w-ɚЕ~^s0Փc^k19eĐ38FcH́cTcRn>D~N]OR.g2D| .K&5$aQRB9*əP;!Kh29lKx־l| +\_ӽ \s(.amė\_"w%| 2/3/yIK_rKǯ/+_| 3܅ C %yTũ9_W3yK-a;4DB.pPb;cI!Kt%| ƒ7Ǘb dKs>%[Y:LEcY>}s˻sg> +8mhP ;lBmfxʟxJb|e;y-mke׬)֕O})7§|k">RP9V2P ;܈vMV$c#(ހHVd[>y9iC%RWDI+(#EeD2b5FCKKKфv!f2BÌϊ$453>qQH2a:lJ`iDMz'Xꐃyu=?'~ %M'/ +>RyIQ?(ƂRD)N~s旛P+Z4?JVe?hy&+bm#=:ՎZI %RbrA9r %_OHog^}{SyWc<`%pfsdb3H_?f^\g?ca3zw>}iP8Q3 ~oh!0~ 3;3~cfJ5 `dhVeEXߜ|/u;^=݉hg'!_%%Oo__;.jP0]V[>qr(8y|Z)1}km,vmIKQzՇZ[`zo +?7`u]iz +)M +ܣTa&;Asz|SSQkL4Ejוdn%cpOڜnnb2i̘SI2F؝t1+#*ο鯜KH$4&|;h6ܹlbK4T&sI͠_#[&8#]VߊN])84.FgYfGW/84gǤm&8 J5M580w9ν+,xp8K|ͣ>YJ??\[z9lp('w׆fDVAߖswwOɁ)8YsAmNS2DH'Tf(A9F~?':={_P5'm'Yq],;AM,)LDFF,յM2p&NLj@@1'31v8;!@`t&f8]e#xGA/g|h(=0\a1`$|vt2+A{ۏXpL~?RAیC}ǃN,Fao\zv2 +Ud7JF^Ȃ,Yoog(&w*u]%+ DbNy +e5LpZdƑ /i]q:f)}M2ZypSUqX6xY&;2Q&o,&3ASK4Td8R|vgϓ;v_ףdUp((K["C_W@"oD}_?!ZQ}٥)h]M9(\h ! '@@Һ5AMH+"AbmA)\S5l/yrJn~T4UԠTuv +_o8_h^YP7!9 +gdsJe2t SNqan;eo }6"]ҘNMHi_S>7)5%Ya٣AQZs<Yۉ< LdbLrcu +#m ൽ2{v ]\Ql85dYUlt{}8aZsB$VA:ݛ=/Lyyˊ?24{cB@./c_4[:*ce)˔-Mx%1OWe氿Mq'h;ߤku\V[& ܠUAϣF㖠LPBﮮ2 vh<3+K%7 օKW΋,ֽ%Ѥ {,Jd h%ߍͥ]\ū[cW\.7B|\v+RLl8[d 5mk_ >E" 5Ê')lѝ-2N8O@ieN,7q !!hBd5tb8 +Hbs<(.INǐB@bA_Y]Xd9dC`k_ë.(fLM\v)d.⍽i 46_zl(婠 +9*a *'3{wbgo3yKZZ֧0#|PyU⤶ Sw5rK+JϥݣZVBnZ<#724䀦q*~)HѲj$2;Ƃ"#\2 1`iLRZ!NX 0`n, 6V[ ND1MGܴtoZ܄+ '{ϫ ݍd8 +yL_0A `ldqe+ i.3AƱ4yFE:Gg VRXU*Al6QK:I4Y +N0.O0[j\mɛg0K=:;E=Ծ*wgtd@eJ} +&e睷[ Up|K@7OWt1`]Y%X]>8W!i,@@_KIyq=8vt;r!^ilNT4z%b-rGpnH^9+^vܹEQ#_[{9ЩCgJp|Am0M}@V[淃qtѥ^Rk\xp1=t[o#0xuܢL]uW&=+dQXF!n/pث2ThǓWe[Kώu_u C⏁_J66έ"_^2fGd瓡D<R5:" sShbеU(̞BC +gi2& d? +!х]o=E>֏u)|/Q6pxAvѦ_ߋmq<°AT>=<4{Az0 *xzE`rR?Xm^vX)N6zPFK@^zfRiUˋn샬@߀h@q#e/6΀O8;A;cs'5 >g{ZB N +xkS x7XVMy.%+gAibFb(1(V^AC):#%IpBչ~D-GhY ++<4Wa\UJѓVJnDap˂Ġ+FKJ'c&b|;BFxt] ɞ!e1ZDgefʭК Qjvm8PP{ 6ܵƹ.Y \%G+he IT>C>>Pb-zciNjCZm)z(-DI|g7ז]vl̥#^m'2}/o%K)Kʿ+,$h$@ߞ7_# d6T~`ň]Zz勋H4(4..Tg|VT9q?7D()@!,O>EfpLQ"vS JATJJ8l{8O>9;-\$/sDeMmi㡧`b8Dit sOo}oAa%; +wfbI2MTUuΪ(a:62k)79"2c~tk_ڗ_y5n;/̲Jɒd:4ǡ6{ O PTlQW]̦3INaC)WMSr|}yF. I5'T3(<(K#$UƑx@^5!7* fSJ9@y䦸_{xTWi +G˼L"EXљ pG<)~K8TBd>DPl}ӵup> {# y!CFach'bMcK#Vf4A(mJ+ݞ,k/CbUqC6!Ȝ!͍@<0$i)% :v]==,?9p詵% ,G^ć =W~FmZ_l|\ޱq%ǪgG;' t tڤCsԫ\&]&D4,&d:(C^i[=):FiO%r77(|֨-ϥ;w=,۶Fl.Ιr<<iM v-֎BJ\<#;P!z, B QmHLx4/z{(H/ +/KBH/_@1ts *\税.ǢTh o>4?}=Po@N+ 5Ib6VOϲBRhTG#.i"[:?u ,dm-5WȚ:f Iٜ@p1g5kބgY\+T4k%cX^,Ԇ!vZFgEt>-&30>(ڝ]iek3 +.ᶑWS۝
;/qmp{xBk{ |O}ExD&i_-Fu725OA>Kv:ֱE|YS5|C]CQu?ez)3f@D +u<'4 _yn/&ݔTUsV"&9mUab*|hkTMYF?SIYN&)7iO/ya6wiZlWhI`v_C팵M+}| f} mh!wP. <2y/p yAٓdz6rԝAun^l@X#mSg61G t>;~=|RG8;t'/`!9!wrS v]/0*W~8`RdF~ɛzdz,c,&dSYq`p[^hݲgoBC^,uEp!NQVU ݽ ֐:mΏW|TV>棊z,[r28XC"pyCO98쭂9|S"-7ڈMuxuv48x]U0ۄ,݀vP>ovzq 65Ah:<vuxFs/A?i-tԞ_ODnO4t]("w +{?1ReolE֗콯q Me2N/~ +An\b+(fq<5miiMd|l_< A+ G:RTz 91<+RIg +K\jhXPBFT1Teo􅖆{U.TEe^{UA*~>ЄFr&/iނPGYu XTCO0ECJ$% XYp.ċDVDʂWxg#*{>C3bEBo^-B]3غ~fўPL>\Q)Њ!HK.!}ỡuU6Үp1^% +3R[xSkڥKGZī-7xz)5l*:%m% I8_LQ'K#"$I&|wƧ4aȮ>vg.2W|7jqTPN<~f)C8VlO.zN#mbEoPMhɅٴsW{bmXʲ|2߯ڃ\(CF@^کBt2~co|9Gcc'\H0ls2Aq){;-ح_O$WTiwbZϭKSc*ZRrSf.מJoM<~bh)LPrx<ח_՘+ݣ-YʧjY:w*<f )EOľ%Cϗ +w(޺G!< +3 +gMgԁ}YAҬфk ^c]*RL| +NТ|J;JF@L11fG)e]5Y:Ч{tN2&sw =9QD" +|-ogv=e򸔆 I xS8XU0ZŴ4i*eIVzJ~O0vQi,U0+Z{?$W'bF;N# <3w>5qj|i7K|]]ǹ:7Vnb坒c֎7vn=2o>M#i*9>8pw+sYzcA1͟Pf'!̨sLϫQ̌~ +Zk`UʧڨapeD+@+/RAμS{%a@l=Nu'@ 7͟ TQvs{zݬ'"L^>^d`,Ì?C^АOk QVw4H.C43Ce4L5ph6(YR߇4Ή`܇!J)K"w 78ȫ}UHtd\8s^}0ڥҰ8Y,N<~kmC#,%vnIaa".FijB/9p|[y݅ ɸq@eiDoآFq]8[B2)S&4#VSȘ0T ++ +V]ARHKX H`ȥ5]nǖ{4%!lMCCԄ]`m+4|R DhNYB.,91" +2 ܘ]Nf7 +הc3zH}]h)q8NM47*{ɸKڅϝp*SdgC|[_3ķ=.U2I[ږ~F%?œ&J)&ČUofϭQvR_M5vC }|F!QZ;S#oS~]W|Qq Ful Ms [ރ\T <g/q _dxI;kA1{H~׿]XYݸ jt}WNpX$?PN{D1._`zK +כlU/1+j"UӺIdee0nae,1?37&iTVí-X"Z 6?^>՝n3Jb}ѭlarká)vjakˢˇcdĖsI濝\5 _d괪)ݫ1)n_6{*[x*oUb Ļ '~D_°Av;@yoU/X6|Yb:=Y{%K^{viVu{L7ϴpEːbA0LKϟm[U'({rES*"ڑ㫎a-ڍ>axiU:ӑҠNVIՔJ~aKO=4Rby_>@Ϩ*h]s^-2q5/#j:yҼWdK'˼+a*_[M=:HF09 T4'M XZjzKZOžZǮ$M^k6{&WeVD)G97E껋?JBzRLI71gtb ·.EiLƬed6kdH֯27" 0gsrPcFs:5,ueY0z88{}5śԫeaʕ0Ň#}=-^\+궽/r4;-ȍv]k\f+if,r74&mH/0(ԆS>eo֌%%g+2QceIBH$qXyp N05E-k+2~%a;R{7eЍW QSKu)=}CJz֗ >3&DceXW;p L9?wh5dWc).+v՚"°:=a[DT%LPѻL#FxKr@UߗTG~.3+X2y$8syzݯ!O 4E:vqr_?f#CMuBN5:##HaoUΞ2+u5xV,¨Ö%ԜSF:Z`hBgX =d߬^VjRB~gI?$tI..f@O}u[Ť^NZMm7rt 5F!Q^XQR/ֱ:tZuBjºn:9sOI[5ˤeMV@ DLY~H/zJ70|eGYhfu !g! @LaOm DLaќMƱ~K@ꚼ+,E7Kv + BWgѢ )=GչY0⢉&a)(4AHgS[ !p=^e[^2,/ iҕm=Ku1#+JOk@rqx2;гʤ B'!+Q! Kq%1Clc (1b"u'Qb B&2G!GhpUsԁM 1;٘ll 8n%"vs|J /iFEEKQA +N8ij I`1"{y(^X{)0]0-I:Cᇥ]_fP6L{ۗJލG?4?PD:).]"ҮD_W6xjG>JU(U@H'Z&UcK/'mOXοXIܥ/j7*v^3ZeQ|"T_SIhހhވhlPM5 +kC5r&h|ώ@fx.RpC9ͣxІ(Nˊa%rgsYjU0P咊ˑl2\;K`/ޟV)~BX86w.Aנ)^&a2QW<#X u >KΞhTxRq"iLgy8fH!q3i\.cČ8 3v:"(/~RyVpԝr8$tšNkZ8U%mΛa>sD!@RN!4bxPiG a^q ړ! +i` +OQuA O8諁=#Ćˑ6 +|YL*0/I +-MoF$],=Z@ {`Œ @25/C$EGaK$u3Y?Y XnGfnn'LG%_~^0>De)/r1u<2BGi*Vf#R^SM (G9dO.% Aj e 0ṟPQ' |a*8E5A]Bw4,Βw"u%Kḭ$,a(IҕF\$;k4wUwϽlDӳ]\}P׎]FBK!Np4LI9!iA %Aȳʒ3R$ *aG(g!=Ch܂cXMi&J0Him +nr|}%Ś;\\Gʕ׺y'VC-@'%?G,t. }oœ׀BZrHª .}>Z`*Q~Bڗce⿐SH9a_3!^0 0i%sQti.m~T@0,;%\f$ؒ$!@H.]c/+6"gdHߔe ;8oZ Ӯ37wj&!i{o_bK9Ż&i#8uWb-.!LR>>ܘb((_C&̽ ib,8ZJ֪a2xu6aJ-UE0q:~=9uWB$7f(i ;~|H_Z*pYsоoÀ Bu.ׂ6=GZf.9 9#ԕN Dǖ#k]6n }E){1bϋ}5;ok]:Y߅ Ddyu` yo@Z{Rd3qh̵M>ek*h_&ْo̳-9%R[f ~UB`n%PKa#cGqو"ؿa<&5 U`!QԀս+]`kQ.Zabp>^Iv!8E .veNahbY(&-'E`>Cg E1kƍCD!3)|ߥ-yы4?/͒.̦ۗؐ70 s8װƐX4M tߟogЛDe4 +vN>` 7BS.bnIR蹹?44EPd +6dw + g7t `a-!}`u5)P6T)MS򌃫 ]Mr⒕ d?[dߵ'd\XML5^fEomMLk ~M辙(og /E "& +ȾeIy<웸+~ +PzFF>T X |wp}P}M残zbu VF]oŷ"\a[6Cz,uR|]LAz5人`/=~ +ثpI*S1)j2%ёTSg8z5i R6i +k*8ܵ ')*,?YuPWx3ACU,W1 nj煏` `o$KIz( D:S XQ{(&tX&"%=GGt?Yfx0pkg`~rDxT-&K0m=Χ(2N*6z z4ٝW=ʚ9C+fgz';eM3wUPB ;ݴͥӋ0XЬb9D25$CLn.VVgm\ꂃ)8ؤkr1eM'78n#(Lm +PX(XF7.r,V=q +02أ0jogT35=qˆ +oB5:C*\1jt"i l܌Рth,`1).b +b"1fa-AΡ3.Zm s8\}Uypv c21$CT"aaqsZd9goF0D&2B{[i1#(\QC9qFDfQ(l7&GC5f &`_+]xe酈NBC,6׺tYD-$խ^䵭 0@ ث^k\Ghaqb@A32;2+=Ȋ9vZ>Pۍc%}Bqxʯ?-.-m$0l:6k=63D>D=+!VC~c_M#t3u"3̠ntVh(-`n 䖠b(?8(3  iRc1=3"8|[ ,:Ķsضsӆ5byAnIv=]j(حY"p[_M@Y;亃Y;{T>OҘv "|ܻ9 +}QBre *̲~˦3z-1ۊB E- +T hT|FHpƺ(&j*:[<wT_Wf#E@jK60eDc"-殦Uıa)圅1snڞ#?a/TWϙdX+֖0 +0ʎrbh(C KֿϹb4ܚ.|w(Ԁ,)hF%:\Z wJp6,Tx'IA?l1: .Tџۡ&CèթyQ U]X1^Pøaמ#7"[5 yАn,Xׂ.U[B? aMr_{Kj[څgO88[QZP% +b +_;Ad٠j b(J-LY#R5k_d;+#PxvGA:$`݊Hժ(tmW0.r;Ed<-qq3m #bP[0YhR` MEi5=L-:1`F13be Q{xc`f6ƧUX6yJN`i *<iFC>ʒQ LFH2Wr-wQRV\FFl/L\߀=AI.D E6kHcIz +xhHIhs)6 h$F$ [Sz^@X YT+-f ~0TԤZŴF@h e)$Á025,Cg kD=\f7v#RÍ˷ l6f?4n3=b˾|9BcS +Lည2k.,D`Pa +{eTi!TKH`6ē cLw]~/@:*nY{*b ]?5{P(9[gӥה}b92 O8;ڗؙL,y\z+T<* +,تҡU@uƽN{n3׽^c[cM`Pf"ğ3_iQe;9k*h)pY su8<)[t` +uuT![5+Ұ>;MͶD﨡9#ޅN?!6j'>% KNr5v5NTW2i,K'l,_/S8|Sʊ} | (h:k" +_$~3豆3 잲cʎDQm^.Ȏ&;/Ɏŀ%=ʎ P(. Ǫc54Lf4TbD0&υ~qQ#$MË Ad^?b@c_%FX30 2 SjE L͒14Rr-!VWjA1[ٍp!p,+K6K`#Ho5T`sḧ́P]kM r0lqUBHXȋ1?߳xrϦVq`eknY g +{Vc l6gC`X==Ktu-YLel K#(,4JBXNWi37u2uxvkDs͓̍Zh&ȩDd7bvAnă54 U_0`. +zN^CwCHu +{CPX0 q0x D)Ŧ+$Ì3hb=3 sf>2 Yu씛֟*M9{6/J`zEBM2Pm!+;9ܱ;+i.mpW+s=T?G|Fta^֮cdBz-LFiM2{ (쫥gBW}YhP4*PA`_7"H p 4%Ыx8\HI +ͬFP^EMBzGF8'Dz=^o|?w%HuyEM܉_H<^Ymyh@!DmRԂvAWJίG3 ؞vXH8P^-r 4Gxܡ₦0/Ci%|h&kGa/ 5U0a¢#4A½Uz̡FTҰg|&]Ǩzi@}FYFymr q^GΫdbMtTE nžgkR_]]10_d";NYv`|IcX 8O/p7l1Fd,c#U]lūlB ѨN[叄V#F<,7cye62mi륬 )*fMز4gj EWMR4n֜2Z]6d{bj҆:57 m"B' +;uasDK(Au#ezº{ɿ x!m%dhMe#櫚w 2g$m8/GAV "j.ʋv +q]+ +h yEk 8hb L׊[걯⻎Ỿ?;|[_UֲJerzp^nPkI?>^{>uA :N_u"v'}ic7 yywk\h+D]YOןzV.*_cqlJat XEǧ/URz36~gD@~x&[_8S\{Awjc֟)w?YA_[: G-?|}y˱Waѿxg׊i%rzzNXiC[KM` XkφwuK+\:g oH +tglbv dq^a~8am?r[+ PKK4fox~ܾk/nEO};?iJ.|(/~bL_/dK'?OcO/Ml~8>&׶>hcϽr)O;˯\Ƒ_X'L;fA>lctGY޵߃G{}M\5|r5i^wWYE*b_“OnϦ8؁/S[-Etww~Io/&zƟzP3y߱pӞ/1;oq %[<~!2ϛ_wRh~=n!'׊_tZ(2o!S +?h-xI +vn0n#r!h>bv,sz=s%wz1|zxÕZOw D;=w &ygi++S7_87GxsM|cP?Otv|*37(Ვ#ב O}v2OhO'x,eq;Њ #a/QJP͈FbH ֈv G)D}4E +4pkm5Љ!n*#ǫ kF Wd-b}hpJ,<>`Oi WmO$k 40b<7?]/)Ib= Ied80SjCB9"( /]1yW)[+vt&/]{NӲޓ +yϿ{nIFst{^yn%{Vyza'W[q{Oϧ'{hAwxַ LW)LG7s <\Aexʇ9_q^ldmo+:VvuZOY%hGB#[(WȗYf?l=neap_{jWAtNwYk%aAwW-)|%,Mȫ"p)(`yr}Os̘ iSfmx=:5 o'#t]GKhWTC-٢z+4sv-`\>v,S_#g>v3&µ%m8V^!A5ε\pvxe?G|G7#u}KҶʫn;oS.6c[num(ۡQ>Ћkpy}_djlчy6w5&E\pO)ԂOl3n^A#q_Ȟx~Y،5a3dE" a"t`x]3{+ɒqkی}Z[9ԟpל=jƁ<.%F>}շ~b}vyMߗ/l8; _`|v&;:o:MGR7?V{zТ48o૔\b}4/"+qN ]FxʎRחy/xPPJ]:x~!M$䥻HϏj4R m|~=d,O1w +itFfy<'A b/Ā:FTB Ad)5B|Q0 5dH$Hԗu}XLG>!Dot~?()/ $8t;":<};ETm!:vþnӫs +| +OqO󳁟O򳎟{'?5ѡFD E x,>B ~rK-\A-ٹ}& + ;ƽWP]d0KN>%==q9Tbظm~$ea^̛3={T[}S<{gy1>ɫ#]10vvOn߱Cm2w&Gѡ=I?ƇM|(Λ<3܅yrm"&| T _wmUZV V}FTIS݊t) Eu҆w+TLWQE?[`KQXM%g_fi 2<>q2GET=)3*gT톂ir|E7\beb~?ZF[~D:QEQCaV&8>*=Agҋu_^;5@@pB:&G34gi hyDT&x^X=&`g&xyiNP8W}4BaHU,svgܽ`Woi/ tdT&?nāa3^keQ-Hy2x@E*xQNJ' @0psY.˯2';7 +;QF\Pd"ͨ *Q#(i8y).զ8 +yMM)cO-ܰ?)ð8D=}aaۃ8b +eڟ7pEMѥ8[CB,_NOhUz@*ZaN ǧ8 ӪZTG@sh݁g1C.k5e2vHïeuZnb45cr:sҭ ^qNCib5cÈH'!#(jbFZ Y`U~/}~ PF&Vi3=Q(Kr:37ij?KqLn>;^tSX󝼵L*rЫQl ]J$J4)@*˓Gh|V%(4ՙ$njb#?/OzWySq@(VraPb"j`lj©fNuCkfN +l9Ɯ=y(H\Sut|_]_Qk"9^*ډ.&Yv&^SM$ݣ(Z +.~v҂pB'*%_\29J EiQ0 O:FaDix/@mLbJÞ@y``TE4aItՍi1/l]f%0pʍJMmyK7i-> >fGvv0r:H`uh -Bbf{kf{kf{4[zz)lw2V +5[:N:^(3wEtcoiطNsfk.f;M_K*" jLV=F/Q6!zxtH!/&)e37!6C?'0hoQ˧,5wY^zP[GEɬ#Zu*@`,fcX\[8Vx*QnOصҮ T3}ium4n#i/3Gjj/FHV 2HU )~Kn% p/_Q~f~>OcO/M5G G8Ps4T<*ѢozEVOE -ӬB=g^ +M޼a\ 2Ńط}ߢnL}_19ʧkV/.<*MGe٦ `Wx:pkƾ":5S&}r$GEA{QPHUd,y ڳ%E]abJ|ǜRѰ*/ i& -VB1Mj,^1qƌu:<#,O;]0#CUET +DQKutj壈*Lu#3ugRHDY:G_ ]?g ݝ}<^Z_]O;[MZ=Yj93v峟 u+J3 *V FHI n~v(bx^Hh"i-rE)=\1X~4gEuŇU0oW9߮`lUS]3RT%h2"_}WcE>b"6Ǩklv65^ik鉦plW{fBwfn&LKQ?VƷiӠ )'JP1Mj`6߷CxoWum&7Ƥ|EYͶ6toc`@6ϫecb5KfS.X{Aٚ+Cx- mgW*"({ we|Jƫ,#A-C!,>c=2'B2B2{ Oe,Ajpzд/ W`f-΄vƦt~٬N3l ထ&L167tL8Zia\}"v"_u.+i@p04H3yłMy&O9Nm?c,WS̐Y. +#j?iೇnuj 7 dLJ/StJaʨZ,%{sV3/.Le^2ݘL3M\3gy&^x5lo ;hrFHhlu섽DZ#+aE!C_5&ιx8C+a^lu|CfsNW;^,"qVEUg)t-]:*);~U/w>Ůl$\yIs6UrȴWt.гDkaVEqcE2zfGyB88:PKS7As03?WT4q rxǮ[jXt~gw_z*iįqƿ3*Q;o%1cLhr~g?K'3XAY,wYy*bNl?s+Fw0#'9 `;f"ZڶW7 OgJWV{$$0 TZM%!O-N!'a6Ayy9C`Sc'nEڗX 4_wifnpynd-,קq=J,ĒӤ^(ͣ77lՈW,)A#نn:ɳ@F׵Q=r 69A21aLǟ,u.ᨺI1* q9_^kLnghܤJy#:\i#ᄉ KBb' +v2N(F"`F;NTmgEq"2(̎#4'NhfUFaA ~Xev~n1Mh3a$pŪhyJJs 3Rv4@FZ0"k 39\eZ>VQ$56\ѱW k{HJ~cφp/a};'cl;-ߢ&\EU +9!|}=.C9yt\?(s~ 6~y7v^0BSOVfEij[aͰ؜Uq?k8?i CO04 +g +<=hOB/zÏ]5zfj萩Ar[<|oÏcub`ƌDl:L}2uxƏdYFA2KDu_.=_ S፴h3R=i{ӦJ0O#bWf~{ù†J]l7۠9 yfNj.mœju]}J!IA9,@+3V<1 I `o+uaBKW^A䑁۪跄y&+Ȏh@ +g uFvBCvcpn +{k;]4Zj"ztKl=&1fǐ7RuߎZy +v'b>KyBSHt !!S]T_J-I?WCȉ$P2nZΈu{4l8v74e7{iB5!8zs#Q"Df޴ء'oj4Blo&%?'ZyE8 / CW-Bo(tn+Dq7>d6CKPc#"G>#Ϗ!X +dc[RcXaYcR[*&zAym7mM. +/c fԾRDn|}1_$ԛ,9?$]ɟ$׍K\Iȥknq-(D+~vK#]tҏv aʥ&-T1~Vk#Ԉ~7 ?`iV<a2`x*4{29 _ӈzlz؉Õ CO +lzKnFɦcʦP4ʬNH@MFBi)T@l;߳W,.V^omRfP_ F,h['#vEk>2cR;ug~f2.ڡn9kӂݬg49{2:o3=1f_[;U,aRm wB41E`^ 'Ӑ<휮Igx=$㑁B~ms|̫L@y̠WPk;McN>͕"8+1TO43<{LLm%ft-fA1Z\*,J 3XDC0aW~W\2djHInL"Ŵ"vsΝ=SqB}Fmߧw0ZO2+Ki?v>,2$֌PUHAؔ{PS4HA~`Dq6e,z`\+/C7.`?"[С;W|tىqosePlMtAX:ܔLÁAfrh/1<:]FǵJf 쭦+>IApe/-:~Uge4AM5pO60i F4͠\v3`fUMy&BAʠ-%ۥ$d7LZTlHG|9 iYjʩ e3aƼt#aB}W + +dNR@'5WavTJPې k1M,=T̯xZ1 8P'-Zj;?cAz14^Lܚ2<@cAh4( B!q"@`wBhF $[Fρ`k;~ v&Onr^Fٮ$΋/v)D'@L_W˷7(/ޠ<|EeDLHD e^/S;BDHTVD K կߙ//J~Nj=dhL9jv6+ kAYQF u|%ЛuRf'4?wųMg|R^.w2fD'@..d7Q]"~iYdkE+  ҮN|]-0&#Yߩ&D%3-.wI4D2wMey YvCw$0|Ғ"kA`p #-<^{|Oc)@}|h>CmI[Ƃ &Iqg|4>|``MКɟ7 a~mװd`;Hvu⿻o0, Ύp܅r,HSшa>@fi?Ԃ +߮9ЅW#-媞º'.)\eZ /.e +h9=ܚ,!@e |D>g%0rwLHY + 34)U_"qxJ'bYF m^Vg +Q.9Z +46ʻpvlQޥ^íMl b]bLv˄ v)8['m0XAс|Dҁ*ωIS26XfT-r_*Pr:f49-1v10u1oļ,6ϸJE +_cO4;5L#i-Zb1?u3̻rMEn/MZoyj'j|6ޑO:'btx`K.%oroåd-hohPc+I_f0kP +@X'w~[sD_>~vf,{y"6[5'wV.qX-K'*<'֎[x@W>Q1-KNjgDµ{= m7ĵ](Q@ ˀ+`7cm^;kiN?/Ǝ˥º{sln}/wgN  f{]o-{;>Pak*(DT0N"4d4T<MdD Cb% 6DDCXKt2vBE1 =ҍ865=Wp}P-dR2*f*7;|ow, wS * u HWŲy4 qY8}2&s鎭pݶny>bJwt;hy`QUZ^1;A{=^BT_{ˆf(>3Nx.1R!;w21F9ŽI cei m^21w,1#b|DLQdi(һZo1FzR~cB(%_, ؤPMdV4jF(<~חKx oC'-ΚbM_X8dX23FG*jHj*̟6IMFBY`2h4  j_ "&BQ(6m 5trF`jFAX3XR +2WiΠ(*5UM(F΅)UĈ2` k.[<˨wHpr,24߁몳wE3m7mVYj0mVQMUUi5<}+gY1Zmv2W]h,˟5.nK R[.Q:|6XQ޻Ŏ6̠<͟m4X*gSf1X++>M7?,#ő_C!n7*lHYqobȀA$@!Rp\@>Q=tᘛg`,mnIS-$*I8k#k2jtB3!GzN&Oqv ӬozR6&̺!˂1*2EZdV e4r6̮Nfs4+\:;z(.6pSV +"q3W-IIJ4]^%gkylv.iVz^Sĕ[3^hkMKZW%JX\љ2Vr0 Bz m$ V5M5!L!"I0V焅+NJxáv8¤ xk '=7F90|#cDϲZ[m`M{z!Sp[B9<2z:[TY{%E 54# ATAh +E9n+->@A+egZ* Uꥉ",~9yqYh_YW(Pdu<aƱ\ǖ- " +:wK| DmQt`TiA>@B1$t11\cZ1_5Q~Z}5zf4%:dΞt\PLW2C=-6[LGO ѤbFZxVn\֬@$ z]ֹXE ua .g$EUTZ2#w8Oӌ]P8G/=26,C@C,x35zU|MҳBmTFy25ߢl)[vb2u3Oq"1R~3RU((^XqqC54QĆ_qDUV@Y)'ʢ7FCThiΦhfňS-\qlm(|Đg#.GMp(X4yr^khn&C3s_SvIAuJ}ti!*bv|~a뼘Żg Ӝ׏~}jc]u{h&4O|>ns+ߛ +|Mq~"q+r\zhn]Rܝ^UrOһ9JtǡG;_]̥ZmK$si>"9#<| }BvxkzWΪ,GxBbD -6: +2cQj=~ 0\::qzJBʗ?fߎ+AlGGXR.EZ]dZ,gBmhm 'rtcѢr5iyaU*:1q)^8eKA.>.S|\ N +. +8G/7z`taN7yov?#%,ux2}zX+ NŲr)oU+ $briE(FgC"RK^Dqk>ʥz=zss(Q5%/u/Ũ`/rT-.|a_PBP}Z^%WPZcj#:&mYܺʂ~KhٵVp\2Ki$.3-%# ^=Ӄƥ77^_0pLbpwpy0;G_w7Gnwv\ߑ%bco#hD87UIvmrNV f(x.⣂H˱V}(Ufo9|ylDLngOgʚ+w{Kҗ|5se;,uzk+~uP_?hG_(cP)stYaa|L9|k%nn9<8@tr`Yl҆˨f #MF?[cO0GE2o:MhQrFbkT Ch!d`\lTp0nk +21E!vfSQ`Ap~)W"*t bJ ̨8pLӑ}L*,_/?Ve) U ~2 (f矸KZJt^Ufjyssd`Ѧ&-C\Ҕc.|9f3S"/6~v PNRQ#*C &-AMMYh{JXhANTirGC7Pѻhzҳ'}4Mɼ\ha0mZQU4h6x*Ce֜M1J3hphc>3g> G}4.|4˓H139&^hׯYXs>zVp,nYiP}8ˤ:G3o=s>k4mƩhXM,a.R|dY6h̑bljGqiJ7E YNŋ~T,\!q5i2{&hEx=4AmXUې2csgf%pCg9C_Wj=~n3-:8 227TH:5ƼJl9rʹ2$5sΨsD ތs V!ƹSy3%LSM] qPS.)m[ +wŢ yC&?iyuQ*&XsoVݙ +9kEAgi0C:z +ir8VW8ᎩSFD'a MCjs_rf y/?S,CH7uJԢq?Iy\eKfRIVSsaZt3Ӫ^UJAbNzv‚ەeND*;ԓ"g TgW09a61hbo$Mqa.U,8]2j} fhYCHQe=DNQuBz@*ڢCBs yfX,ERWM%^swBG+Mc?KL"􇑰Q+lwT:nkxctJ9tcj_t]^xcG\_uŽEhҩ9P2:`^;ټlR~ +i)rl/vjޱMN*=@ofi^ΧV {. pS2"cU˾ -OR p;D*N8grNZޜL t,<v.e~b_%$/+ j,M1_rϼVcb|ɣi"TKSi̡O>*B z#/<C4 ྐ'0$Z.H԰O>.3wEQ}QAB?9yYaa:\^E\OMX!EP٣Zg<[ f !(0?V? +y9bhs9 sh>!^OԠƆhl`E8ym ͤ sJ$Ȣ~li~9c`ϑ>>稜qo +~cs?ƽ]lvQn :J1{jaJ2`HtVVǹyi?ɣqbYsfkTyaagX7ؤ8V}جAfsTj8])Yrd%Lg`5?J9fhp?4o"%MW"hj\_-H@;cqbC3qMsPGL"0cy`pϘ`K=AaGFqtmD%g +-e;R3܄7adc4>{7Zp46 ύr.y ӲnH32_W%ժc!Yqla'!VS[~KobޞE_n_Wa}Oi7ku̮Ϯ+*=[vv^܀ td,KioާCJ~^ڤlSmw}!\]1ܹ38|UCH~C2bXwbQ(AZưK򳛟] ~N.؇= ~5nj2-'1dO3 UBم 1Hz=_Ã,s:~:#cjL#hXIv-"%]%mdJL~J8޾Cd1Z^wWr10A=נh O":5˗:oQp6=벱:9ɐ柼T%je;a5?}q=JO"kܙƓ;u:QF FanPQgA$t<ŪRkjTM5VzEj^e*v$]UQ{MsxZG)]K{Jې"'y_lȂ~5dMk?_e{xM{}avqB gWV披CVyo0Ol ڕ&`UM O3e j|;xlxn ^_Q;]F,Eb7kz1#rVRa:=tՏ,Jr.0:FXZyb~r ~ +Tq+X=^> |ް,+#h}f羴AgVRDRXTnBtMd1@^[{B l-(Z(9ک5:pW*?N~'ؗ=4q6s oEZՖ-W& Oƾ~r7LZxA Qy1,a!D%Nx&Q w/<Z VƑ5ip85eL<0x!?A'`% Zh|Tf9&!0w,Bs!b{Ka.MAdG]Bi #0sLAN +wE s*0Yh"`*{%jjز_[29N*1mdGU"ZsFW' {qUYqvB*1D&Mu +3BLUYQ$!cy޿P'gAEa+hb;VblAW'N E + +W~[pPL + hźP o('$Z&A||҂| #WpqVK7CjJ2X4Tuۥ~T)?؂?*-7x혁x5M}/( Yi+i4++HSW&d2@/a8,Jcleooa-©0zX) KF}Ϊ恷5Ab3/KXe5AEh@ѬM(.Zk9xn"Z5o8NٶM-nyo>W>WQ囃0BuWďkxvgrqjfB~bd l@ࡷt70O$Wi!IMLaBq&BoP6mI*I0Mcp4%l/LpQLYM!|G7$tFkQBkdE+$2~]O5ՃO4P4}ڇi +-i,{}Q2; xN!4tpJ 1Hނ\`=L8b1̀)HgBuUؖViB/ ;cfd\e 3xBHf +! ԩؔEmTj' +GX°v\;c޳ cT3B0ӐEgR){\ᚚ R2bޚ\ +#d87ǥF}[A`ׅhPo܅x-T`רl {k_?KS`}S`ܮ +l= _mCJcg)_~hO,OyyS1x#k_,׾`a$Zz"E];M\Kz7CFY07qYq9R +s&0Xan 9h?2$B!cr@-M~rtE_BU:Q#dF y)%1%eQԳ% {_%wѳeJ4@|\Ȇ.\Z,O??VLx\_/K{_y>{7~^ݳ\rܳu9~{{)/k'|[ܳ_W{}~_B|^XH3?]HF{J[B|k ޾}.).=cHGx\žDP>!P2AEG Y7 #B-=*1F-[; +p\5 |sV77 =o@]BG,|{a55B]GqBđ|-dIajsJ)˼&lH##&C* 骍o\ߟ#:gSE%<ġ3ƓVSu^APqv{EvRT"ǐi٨U9߲n+.X[s,DY.s[i<=m^wlцфSI#ZauhSIMU;Yɼ検P01|l*о,ҮmGWK~ⷽ%.K{jJHWư't[l!+0Z}4&o5:! GE2ɮ8rXELj8r\}szB/V}ƍoÞ]t{>{ﱿ㲅+k"[vj;Z&<-.[{3!:o}eӹġI.Y*۷fS;>HLC8.762+B :Ywr;2Et]Fݸ?*E@ ܦ c>wmM^N M ͊ ^wdU݆I)h8u_8w]0L+ܱou w,K+iA-Zv>]ZFۚ [s[e<4K4.&K802EKWWR; .xİ-oxxmmy-e~m.fǻv7W.yґ#c\:wlkӚ+M46CBl\2#߄Xo1 qc?71 {9~o['4;awcRºKbAlKoK==/3ľNi~_$C&ul_Ea<wQ:6 |zlJUG&&HgRZdL + h\ U'ju-3{#,#dGz]j5tPuUJrjlg=eБ&פsHWf>t݂gpNOk]xDk6 +WGB14 +)101FJ`Q({iWDk24Ñk?~x$>.kq+iJSYŠ Nax%zri ]' 6S bB>Gn E1+NԫApFCwpFQ/eK2.HⳄ;؏6_a^@8ۦ,Xa`<ۂo߫+8]ӌYAXα%O~⹳V$ݥk.vni4[8nmח/nwaKH*q57L=;]{l2o3ob+M<\~I vο3~2_v.D W[;.нEv\PY,>fF2dWӼ*il|>5 qALon6e>I-|]P1Xnƙ + ~&Ps=H,qW8`xD_Vރ^7]{v!͒gNlnu^uQw" umBW+Z-n'JR:]OzzVhV*dz?cGq`<=tFr[!p{q7|`T(}v7>ڳYtGiZ -{W֜lcn`rn OYu2?,։KcjU;Z;")^2k񶴨uf +?6cڤ8&2B[^[<;uxJ3(9.i#cr-4$"磦p5ߧ<{qx6ꁇˮZos{(/&i +H٬v8ESBBn}'H cp0k,5jYS(q= +a>= -|VZVs]HƽFgln=D-g)p3DKZKNjKemv VIE lg~8i0Bo=ipdl/zK9&dV@Ew>vo콃:vyU%S^c#^kwkO +^mq&?_*iG{e/&-ѝw:w\)Gucu-r΍*zT{26'PKhr{J-HvAczY'i@މםJCL*/ Ɍ)!7hi2p"NҭMhVx#hߧeeITt@FVa?a`z5@;^guD&T@ icE|<]R}*xxiӓ)TfÌDD3);Fǫ˜O3yCi~݅Nr_}>H*܍TvFIey { 'tvyhZۼ!֞(MH3L_|j jRKj4.{?fp443[W Zf6SZ."qaE!KO?bY֝A,%ԞQeiyo yG>#sXؓY^YzKWWН(X,-L8d-x iJEVAbٻxD5D{5YdV̤\$dj.f!wlEs1=R̷}/19l|4/C̯'b ?/oL\an&=qA6(WoĻgaZE/͐= +m i>idOc!T Vk-/LVK ;<gx +_n_"#,24hLȮx<.dmXp7YP8'Q颕gp ۜ!w <)b֜2 2;' _w'|f@Uyz ]2Wv-Ǯ E=V&I++E{|9?~bvxe%ZP-٦5A"#.䶸4*༐-g[LBRMyҊF1+`4Hc0tB%25eՐ2 + "*$D=9q9- ȹܫQML {5ܫ!^ 9jȹCx6M#Hz&'#2&#0tn?z +:rǓDeN#(F3 Xn9ʹCz^+fU3| ` yp<)~ڶ:ׇǷUu>t%awR*Y+pxLR?R?^:aJZŷ+ZYxR'wV}k{aA.ӀUA뀘2p;!L[NDoaN"UV(o#p歰5,%_op;W\w\3Ķ"qF3S&L΃;ELDa^nODJ,ekP.Bu$T>ZuuK}\Zx!8$e!g,1~豕N,g ]vm,G}=]7[F΄츸mvS`ߗ%LʬVۆPP\'V;mq mO] CWLv~bfYAt uJpkxajVOV!B#iOx͞a4ЀBHt,re)4r~xb۞}%kB$QNNN$!'Y9:9 ?5L)  kDM^9FND)0nNf;+)p('c$]FmYrrY LjzG"z8BT=pg"s "kʋ +ܯ%}YeNSwO![Å +J6_w6 ~t&w_ъC=4tZrN8 wi诮Vz ?_g?O񳗟3`Vhg6!]}Ϩgό=?2c7n_>' 1u[d myeeZȅ@wx%bӉǧT ?F->oa;r#[o#Lp ŖAw3<~~*ۍP_%i.-6R><tzҫs**ԝ֞?N=u5jZ`Gs/*D)Qs)Q9:H݊USZ H*4#tTd8"En)^Q> aW+)0gtJ|+Mj+v-t>ɫYܙ =3b_Z;^P+eVT0 xA ;'%mE`zG}3ڀAcH-WV6vzyJlyBђRw?=+=~CX>^MtFngI8`g)Gij{m|a: +x8JQ}Ü=jTo /K+c]Se֟MhDV I:6A;Tn-[SIHh +xc͑5G__/tq^bzʥ79O녜I=B)"S<1 o.J!Ay1BlfH·S !z*Jz"8}#zDlxw; 3#Ì* =p"x«C;i3r.oxLY!"}kuTS8Xz-,:Ү\rĐ=>ЊNEEy!IAObdV*vǖPry$l ;iHd+[ [kKELGs8yQCDePw1c + @ޥ1^)%"FoGU-✏=u 91}Ӫ y} y kwy|Pl-JtA`خ! C"r~> b>ŮS}-I-&{KY50W7_Jq&s`3uxk+z4ǥ簍fU߬'O8Q x/:i0 +5cl1Gk)tdY +MhV"8S0+V!>s m猬AnBmӭ.<:O[1t}\uOf Zތ"(sl@:&2cow^_D&Z.]ob m c]ؕ3N+ۖ%sEsr@u×@B//8dz04X9*`iDV̒=I/d#tOK?M݁FX rH>1{R +2??15"F"L;|3h>QŎ@Gf[yK=F^" +!0ôt+ 'E*mx;mhEbVɸsvo^j,a sZiJz] Ř({8!.a[:+ +lnY%SL3X1}2EhߊcxPG|+Yhp%}Zv%jOyK-+9?Lݗg^`9\uWh[5wrp af:d?p U}7/8NH1Z-/G~^3.'16{ӯφbIWwlH D!;E^b ໝQIX/ccUwǡ^RLr8~+ ؐi?: +W 8B4o`! +f(.݊r'JzPTTT My.k1tu_3W}ځDZ"BCO +6ƞЯȼ؆(8 #NaiՍeQt9_5P;@0W`Z&BMZDFeK꾆- rju=ֶ, +xxo9FA @4-OS6杣SA4xdRM1R}8w+.@h]иP,7ACIs !Hҿ>AlCtvu7{ܝ藨+p@%KICcG6}l$1.\u7 +nm0>$@^OLQ{8-.AAʹi_a[&d->Bʩَ0*tG^$P&<7ꃯYX g8Bӻa8%<Clм%44o šY5fXZUc4^vKDE%zaa?H1]q[z sM 2;ݬ53gfT5՚J$՚ZAGNUòhhOû')"O!Kxz͙3L[;N^%J&hQ]INb'N9TXkg˲qiO=y}My"׹kX&ݯiZ-򜪸H+e2*)ڦ:WH׫-[O+sp_uU)E6eU#{~}w-4\t,̢iƝh) +FUk-}̦qkɋ9igJmy7;]3tizvlkGj<kA3V,*servݛ֑Et❧ +;"Э8Zf̢jIO{clVR\!wkpGj.lf5؞g_D{W] +ňw;U˓L /Nm"4fۤQ;S͙tVMPǂU{jJq ("[xe VPPޏ㛲Kj~\**AE|U[ ~ŽA#(1%XRQ_W7+гmp]TΒf I+\GTj9}I%~Q!,NKN#Lp:Wf*{$M*rNAC߀u(ȧ9V=63э`Cb)#E?$cMH_wB%1*i6ƧCQ&Vm:dÏ +zFKV%>JfmY{^{?J;ʴU [;CHYh[Ћ3.1:,_Fl8_%# V/œg<|t{9kțF hJ <-9F@|kfR9:늋fC ~~"jVjR;TayL*`O4GTvx@MT&*R&/)H(;nJ*$V.T:(>NGURN>cj)]**Ќ7U_TU +wIa6oZ0;TB~;T"̎Y~tF z, +3j]7DAL(;>bÉhٙ贾\rw1}__|w~w:;_^@:LNu̥_Ц{.7\v9_ ~KV`޿gf5[I5NN:^CWE+拵]ǧyij =UhThk}r$&GI4 Wc> y_IK=i>߁XE ̯szrX5InEzixu0H!*fcݠ.ƪ :0ua$tWǒo`'_ _0TS?XAI}ͽqyTJXyNugt];1l^[fhPnЭ;%v^dkd܋dϓ>~a#~Uv?˼^57VDۺ4wbe[ɪ±k$# +NuuZ,y?H5]kXױ-Vb ֜m!sOpBv͒2l +IMcNlrN{m5ٽn]m7KbEց۾+2۹%pdnTpZsf=6\hźfyͭ^1嵊kw0pykꗄeDk6=U48u/Œ;(=v1/a`z00/cX =jo ._u}}F$/߲V{6M]o'#cfvQ,]캏z;5T4t[[kFGeyِaB4/ +Pd{o=t9g+<;s<'v]fnO{{Ԑ/rx=qPg*V';ygtdћ[')nb4$PuK)97ν?Ynl{E,[;38],6֭d]llcօWpc/,q/e<>c)bǒK G$~BH=.{uOCOO'q#gYr/[{E#n +tk43u*&hxzJo`A?t| !."^f,d)@ROLTIv;fy,waDnE0E3koήٟr[>`tOFzCHw8<}4Ξm+hPn:Zi.pR&6ۺE@U;nhGF;37Q ߵA0No\ҶleJ?b.2[uqEXzYKkʾN~ށTozCO(5)b=ȥl8f=d:)H}s "hgY͚D{{Ss7Bz=KKz.}y2wgP DDFQdBtPr +%V +%{ND +%F0ڵnj/z[c]'<.";~o9_ +` E0,"KHn$C[2gϱ}}l|o#ZE+QHbϟIAydSg&w t"uTb\ɭmMFw4o6v{?r35^HڸŅL[PuhjKPHuEK ׄ;=uVȬn7€Ya ÔOFJm#5$nBA!4XoP6Ry_a!A3)]DZ7(u;×|;%\1׹OX_@F |{)LF'%7yc&ka /t6$M;H<"vB P`U; + g\^QS -'QF@*Rp5q/קXVK9 ؋[3{SߎSǧ:lai F&jJM$5eT^ܫ)ϞW/&nivni +AA# X`CvK ~VoH2F;2 Y_5K$410ick˗о8^ة3?'Y&lx^U)_PUMJJU3UՓ|j4_UׯekitMgfUܫJبK̫j1Ɍ33L1&?mS7$UQo J_ωS:zo%fPIVFmfQL~=髤uf<}s͈^[DSB&H^l/xR1i&j>淧=:YA~^YLKfzcB)ijUWjH;z>1ъM;R91| &$-kJ$2䲆B[0ڴRekہt%!3xK?ȴ5˜Aأ +$wm@4.i,ij^D@تE-l+CX5-W=(Y:cVPpp"D#O.uRp`Xsyl oYt-qR1ED&SsADT V8ڳ횖Bu&ܢl@l>mC?C+ }Ê̸e+B0;  ¡3#Y9,ԤؚZ8{ #/۱e,˾@&SPpZփ/m4c S0 HϏ> +y`-k>i6Z(;•Z~!6~=@z>$H!>21"QE_GV|`x?I*חr"+X7"~n"ٴEC^dyy|&)/bɋK*x̆hs ¼qiAӜddz[3!&L;@ȋEoNVE.@E R4#&]M $qHaOռ eo,O? +Aw/'k}* +L=)m2&%(81A-wCj(D9$7lmI_! a-3~L1%ʂoB)O.]JU#JIňWFIOfZje"4L(Dk-e1 Z uMQړFZ]ƶFou:m2F@ʛmFΆF=^EХSZIeCп֭bo+e=>u2HTtUtU宐;WrS!\"SMV4TK.ǁ́V5~~8AZ;p3u~y:Uq~X$Ws *ʸWP rރ 0 +Xbğ "%L#{rZ)(?KD*L}*K<{8*<:.Q4q{{t0F7uQ)W|`YzcAjLNBGΰ'LRH.R@j~k6. V @כYJ+<"b#P-%kjѿW^N o'%3Q=^ +!5!($vG܉%0 ;"7ěuWHRC!êʡ,PN^ t(0TUrw3&Aao6yAUe]0kWxU%hpm^k=FmR|rV$0+^ ͧ|9m|[|6> 3dXB3߇＀ ٰ|AA},_ًLU&eo~5Fmt]?ֹk]ut,^"VXa.K1.<1Bq ƿH$΃0!ĭ9ކ>q**ucip/ }Exu:'Xߦ4cn0}U}7 +RQWLɕ #y0-n`=\'nrïL&5t븜b[Gt>͓3qZ8E_mꑏquzՋO9 ٮg δ!g}Vt6~ܿ(gH1ϥg]ԝ`ju[}V8wD vov?]OPu +A%knt؟|ʢS>[t?PDҺriS^<}wKCGƈ-7ĩ䥨ß ^U]T=KS~f:UҽvWͽsXsNh{C\ظ*uȺg\NЌZK+l.`yR'uş 7=]SA8%{fF5'wϓ*AUXSƍ;,B!\"F`X/^B>=cDwdyϥXN`#P!xZ$CM>i=@%g:d9iS1)-2Jidyl1njܽa2xk'w1K[$i=q;%o@\YϊՆf}z^AynPt˷><|Kǀ~T1\q$ >}O@}aqu6?M ї-i&y:skoTOIqU)-ݣ*)/ȁd#w+^_.JhpR O[!zi==Ыǧy%HU3\ͣp;ʧ#1٭6Keu">Pl2]r_.G-'ME{䮥fKE]:l +vIn +{C<=0B>2? 瀎rH\ D<MRbݧ%=JYIwpL2ӭ8'dOETp$;Z[YR>Ҿ2_ ߗӹ/g?~R㱄Ggjyޢ) K[)Mo]t£ w+Lo=[6r>Ɖxnhw`q?A!ա=rI޹떕GX,HIa/l eŷ|QfWz}b%ZbƋSs>㓚FSXwS\!F&=գ}v]h/ M~.5/Т`[NcEKz>\ IZ3-ꤥ4g+ ޷nICڰxz]|6,NH%3G/ѵ@0ZzX\stU > 7+#}CF76-͈c(>wc 8{C⦞;c #FDhx놕 +-O"ͧ SIJRITpƺ -/>oZo]Xo;w83ۗHp E  7L!7i;#p!kFAa>OcO\~ww+|X|m~xӋqJ _"qSwV\= gQe k?NjjO_.{ cMw!l_U׻}z}"]Maۓxu[Ż~n>ﳛ =',fx0<vuKyONKwӢZ)ްYŲ}3 ?tgxXFu9C˽F{4O5qؔ /!0nh +,KZG![ҨK/p$/zn*ȇVV}YUZP.Uy?/쇳 0PB 3;+s#ovCf[n\oPOtYk y¿{·zrB "/`qN&B]h0V#@3<*璃NP**)O$oqѓYA󾠯@x SLe즚E +޶iϦj ],!]/1AhaS/vJY+mZ!֪OGzp{9X̖rq⭎6캋֪D^+ +rFAAT=k=}YpY~vIpW +]܈;rjEK ۲А.ڲ7ƿx: p9x-4^OMrLƶ$rSh5$]wC*}lƧ!-\cJ^ojOy3#eLBBi#E*Bn4`K'{ez8W٨ D߳*Mʴy}  w*3+exϞ^U*F=QJ*}/'U8;ߋc"}{w.]y1>yWw#WB}ߧ;|=uQq0su=Nxw +_śN=7D{;vPqߧ|)!ܱvJgEmK:ʞensP_DG!OJ,qС=7%6 ToLk_qEtvVvbmYB`.*;j ۶y/v&z0 Mh_epT^Y{Ϫ+_|vGj᩸o}ܱ} +bCG~Ffēݼ^EGVψƗV?cm>mcAD5'n_>cZCSJ"2).+ojȦެDQxcDT WnRyf$o=ާTu⺦x%Oe²҈UDm7s2 +^~R|ӮE 즒ej Hh7fx`HdSya^x/;~0_֌?C:EBՑN5 ]+*I j8vZ P.NA2A.:} Ah:*JJIoftKaox,;}̲.uy^~?{W$qЈVf>·/g6+U:e33[Z/5y^3:o?Ϸ9 ?? 4m\iz<Ulf32iaw!pqV~ v0rn=\swO ^ny}:e#۲Cf9E-Kw{CdTP$7=BFfUͫ +łWR6ܝ`0B%D +,P ¿^y+4UG"q/߲q[ _ J]|D=PJ^0|N᭫O*vIͨ ꈬϨ*H6Vy |LZ46W+p~jUa >Utuf_1dq&%rK|KdԁtJ9D/ο99f ˒6a2̄[V?oy5-Wk=ڭE.[ע4EnF)Ѐ\͝kԋؔ8iRi J7ɥXˈ#jͣwR +sw\9h ^HDoA΅4~wYR_B>`[}A30-@O6p]4!KdGwO0Ћ\//,(yyMl\R-8 0sZ_*RX_RGgI$^nLJCqhO#EB 5d/}FuNT+>;CQ_|;x/w*T*QiT)O^j>QQ>7)>G SfΕj!DgAJqvBDSTkИBD.?;Fd,q^KI? #V#k:1Ⱦ> @/qs(n9D|DP/-P-_Y;#"0ӜAK%-+Gj2G+4`&~<!1Ka;s[UЈ'_);2\ HiQhaM'+ Tr<$bĝ$&o@a]?|p0c* 籤Ds h,7VMj?OW$8 |%#9qyh8[i;fѿbL!qws +GsF]kc٢]4N͈4/dm"yZ-cDJifԥfmodSBעN7=A]". Y W8 sdLx-iuZ$ _(Y=ՀF"L{PQ |L}t9+^Aޝ,x^óɋ*vȋjZ^k"]>/B7 ė̼ -NA`>IBZTKi3aƞiO{56-*BHxLΈbbă,W,ײ(D%U!\aQrm)Y2!FQ gM|^?˗RYd HcusK`-: #61#p.(,bv3gyNK7jdH"ڡ32`bT'6Vд]6WBȲHV/*/D9M$!@02TxFSje+i|O5%kQ,$֜b_k4]`W .M>C nyr[Hrj}C 8L0ぴxhȐ fOL?,)2|Ëk)9sPD( +\5TI \ z~Ú' ]>Y-h1n@؛5=g$G ozxÊ61E6ѯw˯;:_ ;N5S]XiJy={0$_ܟ8lxS?*}ǃw|? #87oZKלO|_򫅁6IA&Axόh !Egs* +'<ΝF 5zk6-'uFh A tS׬F.ZF)Me~:e7Bdv(By?b!l&#IFLmC2(E+>*id1J3DrۦBbFR^{đKxQ Ҍ9DaMÞDIc/ϼLhU0siل!M%i~mivjڑgY[ŠE%lP/gEuŪ^s*DkZ,yt[xXK`/VtW;c/VGevEg,|XyKrrx&1Ne/7f$gYNHd O=%^lBEk4k\ 8hμߢmΐmt~(M  +CUE3 @qEWA)?.zEg ͆Tdä2 D$DIrA"'iSGXD8dz)h-8l!a7&X:._amn4~S4:)Nnؙ(FFk=yjnpiRr57yM\ MMr:4~]5 њ Gݷ XS{;8>{"u{N %k,|.m0uڲvsF1jgepvaŒI=={6=}P;un,CQ>ܪmTVA(ŗ]Rslɽo lp^P?/NYn{f|} n54|&ؽF0wDAw"mK.?~?*8б]_Vwy@w;w{1p6HՄ@, +ĕkJ_ 1$jWB ICMcǠ 1n8+ +1]EVWWX6]S5 [v u{I·-guE\-mn]׳L\=-ʏXՎѢ:.EQioa|Kk=!v };aBl#[֎QAV;GJEqኟz:ZZjxZcB@ʌHфv04]! +)a̴%f=+;"Dpsd0e(4UkP;(ΐ>\:Bn&\:2*1\M2!kO" '2Q(̋0HqOCESZA]=AxgIїi8H^dgPDrՋ @84f'3KtyV1c-%Ҽ‡WB8մ]COBFFg!Ħ}R"F7Db]?iװjxΨzd 1EIrAࢡ($@D@AKfPbw5|A>#,07큉9_mQh@ uZEpuꕈ0_Q bI @ nT F߀Ѩ&q Q nSe50 g̬ZbČkjMOB5ЄG+úCR#>G i %Ag7`0TQ̢:%J*BE߀[IUiA5`Z0h<0 L)6<0xƜmbz'$VE"{grL6=D1!Y?'Ӵ1?G4U)& ĨI&",|gc5@V1\2vXLXj@Amro 6p!TkFUcU@)a:y+#v?EXCr1=jMܬikbZØ٧hӲY͸e$'HSj ë`Z2/F68 +oa:]i̜,|>TO \+}!Z}w*2?{XPK)(e>1-ȡ~ B%h U[4+R؟AOFZ4/CrF_.n!QM8fC%-b +F( ܬ#+O'tud֡P2%BXF%2#mnL# ۼ~Вٮ%ۍ>ٮOW$Kl<#hbVЮa !AbC`0F7t Cr7tT@M!5 ԮR<ĮAKCJvIQ5DhїGKb,cIo /f߸8T5gD՜Q$$ƀ&h*<'W R-i1ƋI;) }Y 6Ьf6e{-Vb(+lw-Cf OM b5VeD`lz)O,:,K9\bQ$ k~\j̚I i +u gWSKՠz[mTB620~ܷcL z6G"G%ڼ3`NW8oPztn"&p_ү ӡP{|[K&|hX+Zdq1$»m{PAa""ޑ7-\ B3r`)jhy)Mir:| 7]M>ç87: 0K2xp1KYZ#%u"[mC +XɆp=:#(1ԋ%7O'qFq:x`,5R%p= BDz]jg[BsMs}|w)wOp1Om~5WӼ +\/ٟxf3x^}- !ޔлX]xU*oV#ق}ܴpen +,e~fA(sh)7Q-pj}inZHsOٔX4 #V(|;۾)E^R`GdtMco2+%>5 {wҾY@j{ad="˲څ@2;0bV7+sߧA6PCq7`F9l"\W|vEZc 1!Y1j'9UtݖS|rޞ/@h7:?MSuۅWg~UTEQq޽grW-.FCГkIo19*vj"ӦsRhE@RFJz#K-GuqM;i!M3;/c7]<ⱃ-)D/"X 0뢊v:BKݺG0Rq:ewmkO.m>)LqcU"ߡ̿A'đCbЃ9 9X~r/Z uz閘P+J?MH]n]Yq@]fҘRq Y<JkJM })NhIG `@bH\霌j`Hȥ 'W[7\d')e.2m_ ERC$Jɘ ʆ3JqV}=,yqV}m&I<9uX4Ra)vtJ7j% AG&z J4h@fXԁo.ٶ?%'uܢW +IkD5j.-dy!Rܹ9E5a1+p`|Jb}a,Wŋ%\9Y{a6m%>Zc27kS (JQϏοc(*\ GXlQ 0"ӲAK>vdsibw䣨d]f|/WrIyIMhLcC3K.q 쫅Îf{~gky*b[xyRťXpV8/{_تϡ K8[s]X4Pvd f_!on$5@G6V1zw79 ?zb; eBA=N'q@!<dh08khwn0b&2cM')ŅDϰKI<8Pe&^&wtxe,ԖP ^yiK&a #{ 3Wfjg-eRh۰V"Vpgq8߇Bk7n~k~3L=7fzR(77}I1#II1> ݴeuQ,N`9H!&% sg[\$# v#tC̎[>) /ߠL,!s}:<.Pd'EWq"mh+]1P#a̛+L8MJByzRkb +lyW# ++(Wx6Dt$'YwvDg2،zsfyfæ/ G}ݑةW ;{u8oH(58+KFQ|BJ#ҭ&ngD"P1p Uj&)SH jZif4c&Dw 3yS} ~uQ*9)3$N ?" JHV렮%>FYY ff&dsh@k& O}st$pYjZ*N(0rM3 +]e|60awVn,a8Ji+56IlEWH+ +#S43^&Z*TØY\loy.7K|}),u[_ȥ- `(iv\ݒJ.j8 -g'G:~;Gdc4GeNgFۿ~ulo'rj-N.ͮwr?NM|ɐަ~"Tm JYVL2` 7ơ:3?uI qb~èd/#yw cv1uB@}]yQơ~=P:L[ +wtw[j7ٿ'?V+/8 +_xVQ)h ԝh{_KI ׸~&Mۺ϶5QpV>\ b'꽪JBj W'2Z~,ZGT.~IjDֶQ.PԨLHNzսBꞀI8C%pye")"3Kq?4N9Ua-0YBP|$@v<29)uG0H?L&Յ٠:Ɗ$BSm9!l%T*WFC;.;70:5dFA-%&a% @%Z2@9s7KBmUDH=-@?`"2 SL!@DK2V*.~wW rs)rNq EμD[͆S,0/)rf%jV̘B`AM/~.0E]53VCjaMLs:wEMl'QDKh8Z_[V_t;E)zqCb{1*żh##unVmxEEy|A#nsBx;D܆;CcNK +oI\EJ\rC#%^5(䤎䰯Euu}q],G%d}u_e-Z1ͬ,liQ(mToR>=9N1dhce$"p~kOiFIwI2Ѐq/2e3jrw~Co$H3ɺgY+>؋nRniJMUR4L}ʠv!'u*w( +hRC + +VA*t02ܺd̘vKm^)$:nrlҤ2f**%P)z(贵;)Sd +VUj~nyZ&&?.R-{1E[E(ySFc]tܜ]NÞEGCs}־H`T4hH>PU޲BY+zz-HcKCM1uc:lP!`m ytuUpou'_틠TП[P0Ca8Cnn&SΜ +avX`IeIfnݲ=$}/6a@vhxY3 U34KzCɘا#[M2!$4"#|&mt+&̖5$!1x0^E܃xM&"6)zs_rTfL. C!ہJ +d4ɫ2@%x;Cړh;RL*ʭE@,J!˓,WŘ˙d;I+7{Le,eHlHѢNۯT{Lo3$Dw\/f#ywa3wB-Shyv;$rאG쒣-ƥx4XVKӔuV2)jEJ_z: c}\Src~e;Lgd3,I.Zu Aks:c~ +p4s,ΈψlXlbrHO5Ԍis.!;]#.u%k:IVcY3"( 7.CfKTc& 6dtRnqgrSx9f`e_(avg8-:, s0Z4-(jiwVaULT_*"Ѵ2C ԣCm2A89a_΅  p $B*J[(nhQҝֺf6Aӂ)T{|N N +XPm +-vjTmvR8c*k5iߡATۗf!8C@CYki<ʍ'+9$ +AG7:i)ܛ$ށ{Hek: lbs,Kbɒ/ҥ怡Gb)g +)([B7vɧ d:"4M;l:.1SzF_.>}fP/v%=lA(/Jb"} o+*.}!,Y&h&D*3RK^ xs +yk_}ҡ)ґsZguʥΔeF4Hk^VWS]˖d'^%dYnD3g})JPih;1uq4k,]xW2ɔ);Ŭmi6#b8u~M+e3֗hunY*=;1JVJR}>f$}F`}^:{-qXgU3*V8>@"clpSs~ȾAecb_rYLSU>uj6᱀ nVcXWR8$ nU6T2![!J+)gM圿hmjyAt%,EVyl ĭĒ,_ZIꦒIu $q<11:t5o:9a!!a ncԠ8KPWwW97ϙ*&-(ٓ1ԧ>MYúsXpK2Qf7#sޔϹh$g⦪#7, }QT"zI/+ށQ붎':?n\E 2 NP~F'7aA˙TN)asD}oCwҁ^]XZsSƧ놸`?gnT_#SȯX#S=/Y&YY5YԴ^;qm܉܉oΝ;uΟݕs7R_s[0zRBL)GX$Fnkm_yuSZ LDHZ|nx#2Cr0d&nG h+n'ZrSW_X,ʕg @ uI>,X=f[dv)ɮmKIY%x;DIPw.8 U dw$ &Q-)Ic @K@H$a"Hpň!4$%+$zcȇˮ!IkR+~ys~TpcД,:^Toסo'@?Б|W6OΎo'mJk}vڼa +T̡sKc/#np`3D & + Hȫ30ECoOL:"q2M Ȝ)F0!czjl)3]nkIɣ/  Kpx8VD-(6J[A2׸aKZfծVxJIY= i=aZTҔT!13cH*aS(;i5uy)L^ +d2j)7WmS֌ɻ(y-OU )dz1-jUEQF ΜTh_MpVͣ)@rAT#Յ *Ȭ@gt;r7s%~LZJR(е4ǷsI˷Y`>?ӟŀq_6aTmD҆wH7k\hqD| `.>~ nĖf [?}7=X޴BAI!?#bXz(]b,􍘪"U[̘st@K5fEHnei:C#A4;u\J0)o*B`Q=E 53Rh K0C+R[*-;nI1l0rwkjIYl.}G4EL롐g1 D[y nѿjJ2=BN\{]?9!0j Π)[ +T`O6#yF8H8#xG"0'2^<@bIG}#~$}WBH& CdzJxGy2t`ӧK -2f5sWVSjCpxX>mSEnB5_l羾hG>5jɖbCAY*q tD" +1o_DiC_PMcȌkkQs;Y7Gd'M3*YuJهz3WdMfݦ&dbhaeaifTp\ЏZ1cټ'0}}ӭ6>Y(j2/}W;_w~_ +u݆kЄ)juT6;u݆y.+=ۇםA:g;uKEcNyo:)Pk{/2*ѳ^cwϜhY:Oi9􈭯n&& L:"oq[êv#_Mk~*(ugsxkԢ}QW#Ʋt^Jb3[Z(;T Ń<Z⇗1~nFMl<+Z ċִmm֢&pR(..jͦ7_6M8q/Ϸ6+)iMX+RY(c-VHR'>*mf|J?"ByS:juʱm䛦2\WݟyOPtT +fx0_\ƴcx3%C5{^7ܹАCKnϗ G`N b j^f5,-vKC!ݴe )1aǿ۞zA +c[J@4x] 5ŧW>gO|5euVpFTWU\-u'n2dޠo26|ֺr#z].oaUCh4D.KqȦ%~ަ[t*j`gi>~$Q3 FLp~&٘ysg&…"\<L)A3z$ | NjÉ1>ON:LFG-*Wju),rQ_$u S%:`'F mi9!x |/m)K=̈́pL1ʠL0RO.WOZ1ͤT4Xp)e]:RK3r.bOK}{|Hl[&esK>v1UMPArNJ2 I̐`M-b}"eTl!%)GmX%g6+NԂ+lA%Gĕ]cM+BXI񈛖VWq@Jԛ РiRҎmD롬`5{X4a䯩StdsInqYٴ;M?k҆/h!SWk9~zp{(bP?qD⑥\΀ iإ.5oHbD$V9fa +' *fJDck<'g=l71MG?/>( +PAa`tQ;QC4BLjyχ9ż;żZ?]̻crbܺHAmynuoPGqϔ6ȶ(wag֜CLݴS40f2*a``oTL駃1R>t;Kf&Mi:'\ MM&t.G{%zm>`kXMثymi4*,kSDGnd';6K6ڬT?Jf/6˷CJp-zzm +rDs|ÐT)H%"NRbm7%AॉMf3 !͒|GDSoE ?ov!MXW͆Ҋ%MKkW<[j^bجTVv'H!㢑Be0@7 si͊>EHžfw܌l(._#R\bDp;B2ct;G1C[~KGʡ ~!]VXĩ&b쯬eD&cKRklmҰZNRQsJEMK(nKiC`¿\L9db9$XQ=򿽹c˗ B7o@,v7/N?4'_{Y}W.UUs'^3JSׇ҈\/UJ֍W|ZQ;jd"MɑSgoeç^>yu}sNK_j}hUs[_bŢEhL)83۔SM.A%#h1?OzT3y#٢i̡&N~(Tl$=b}=#m._*՗L_]3}a 2tZQPA혇 +:l>c.؉ӌ8~y{+.xƏtOG/X:8dV^5" [t_k56}G*Ѣ5@52j+[}?+0 20ӝǪ/b&^fc>w[zpeS=Խ^:K~OpU|y;aLYrivl܆A38֝7#;S`}~dުpmhffcNBr趚Bj@[[f\190At-߭rNE]A@3+ccg]>E%dkXut]1wԞ:_Q߱㾐a$ЅHt}͟/ pl)ꆨ-O,0]nZqh:Mk)~8*>V Xn-nݩJgIHSc>'h7 ?ȼջnNMa'z+20.P^^sa3dҍ'Q,b:nz2-.<16BX׿q1pÜ̼):pXr,󘞯#<&T75Xqr|Я޷O0[ +]|̸BE|؞Hя=֍xe(Q'%##b mRW}l[#^­>oz[up^>E3Iz܋ϛ G^"k5ShՋaFLbx=b~=ܑO^|Qc1whP|XuS)4],uڻM/N̝wSvUOIf(!g>`9Y9X.KlMGrHѺy$^HҗOd[]5PhVZA{bLQ(Q[OyN)FwQ`27]l+Dƪ+WL6-߿ainX抆k1~MP50QNG`d^;Qc ]hŒIRT4#_p[۰haƉu3Kf^9uoʌJ5yum}i$[Oo [7GU>™RӞŌ7-5S2'ݺkfr^.%#Nݵkn0u!3g9^~E6Sq2w잷ƪd:T4Œq{)ԫX}]mė/ܦuμl׳ۙ/֛imclh5[}i﫨uC^6;dbQ}r7R}{ߺ +c){g;bFwةn'K=/{Ԑ~l^ gaViOgduTRgF)7ss(2ϕCm`Z^S5оuqKy|wbǒ9iOOsp.g#8^^AvZb'y'Z4k6]O|Ij&;8Y'1dOZiJ0cmBtm E6!Qhӑ6!Qh3tDЦ7,mBDЦ6,mz>M<᱑gxiqÞT Xږd6QF{ԁ R!")ڏ q]_*اUZ@xwJd/M>a];ICI6 |0){ b]*:$ peFt%JzB(-vihI~lrsxfk_ .zR\t;:1USUN)8Ku /ۓ{ ׉srI-szr/lƚrɆ+f4'~L&S~ q՗b T脄F e4P39тJ%6)(} 60>溅+j/,. +÷- Cb }ib:c,ƵR3JKʅn~A:> r\(pw'MT7O %Z)ݼe-7Pdw5xn 5KxD--U ^,JۭųDg Yn|'+86`<s(y kӚ&S .L-"Mt +@zp2B5 +XYTrVJ!˥ɷ2'ۚqxa7\nk8 +%ЕK3׍`. ꖿ$;b.@EmC n6]Gl +~v[v">ÐZX>y#S'C?2 +uɮp5ʥ֘z2x2NIM! ++ @|UJC(xV ȗ$Mk7绝x*pa際b-HLDoZh oK.HgW;kI=ÞyYd -٧#1nR۰-A ?> +7GMh1W|ȌBFŹ!GB:F:xVIQ5%}mɭa:>qY>&޽2A! ٛ_PT!|*!9C =rm# 9TWOebd,x a~$H!gfbXٶak;g9/"05t]f>#v*:V]AzRBz4ݙvh^U9d,;3B֝)$GC)$;3W Fo0 cAi#^EYEitho S2IFxy8^ةCHH:$Fy)0n$}UMQ,)0ӷhqUxJyZXܔ0 &"sGl6ֈc|5,-Z&j ͓9 +aipt2+#Њ:ꈧ⬺8wK暺ZGFq.k<ל5IAcFJm,r`d]_zКm=Yu4o_淗] jVwʬhW6x3r93*g7E'>MgVY޷ivϮ*a.6 0˽u5$0YZm'Dl( pkG>1ˤ$D~\.&0J%cBQC5&-V"gb̰/دő !LrW9m]C>/ͯ]k^/aՎ63)ظ_y\-kl[{0kwJ`,K #ǹN~M:O!qFuv߲yQ2p\ttI=N;pR/ +W'/xް6= 5Ro"U*4uo6!ӅT ŅX VQBg@"p|V(g  Cs" ̔&oE=srElj" m> aH6)B%t'Ax^t͋y/e=/yF <3p +]%2" #:\By=7%L)::gl/26wD~+0<#pBtbG +Ͱ_y!*Fx]W)Mdn1_O G:+>)9CPĖ yr42p[S%E{>Lz(2{}aɤ(2)c3=*P4}PI̭9㧋1]OfE8!LP`S:PLFXr K68V'?:@L qjC6+n**|ꃬA\K1};j͡ T +?Tde7E bY? "Y'f"AF~;h7©ԓWjO7 VJ_˼$W5mDxB{fqc;U*lɌ" 67wCE4Rh˔?*?YaP )b$#JV@WfZj8P`gOgoXX ̐\q oMSn§8u@@bx_7vs_ Ĺ㙲V7_ oF{c}Sf=.mE3o6z%eK$(X*yO*0v_9 0ֹyPRCEyX9C-r[ |-ȫzCȸb_\qYv#' +|;ƽ aN9}ay T}xb٬!&+Vc'J>#7p~nO=+ùEܳAnA= sa3Sr/רݸC~6d۰u(ïvOVaK%8"үD[qu!C j.Y,T=7,jY0bmC[0Ey P6*s#H8&W;,w9b;`9*'b ޡ_BH͕rɪ6J }dfDяYbBb 3*fx?2'vk;q2'j^(4jv^5fԈޢz 3j秽r0ΘyJjE Քvz AjUqaqPUEFu3_=VxU?yUßeA2U s MP0@![~bBYR`EFk[PM>>擄L">cWAŀPVKG|Ιlb> p'.@@kg:DY~CX׏׵ƴpwʐtknDMvEV;a33;ez!k|G j%IRIސm޼j L=r!Y0CDݥՊڂE+66q7hSG3-q >zC%8Xh&L"x\ FA˖ujXs`w;L" Z%4o&)HrE< 6 a@4+B.FG%- $:M\vޭ/'J. `|3")a1Vl~K90FЄ_lDMl&L;'x@MX o,;wwS]PD/8&12|`-M QNa!9kKT5_ SDeLHm3̞ +|U^(4V:5͚Z"+tSՂ7".XJܢ'4E߼0횚3 $5 o0K I#$g妧GeԐzI(քH좐ytK8`;/$v>Db a571xWHB`"'BW'TFgWL; +-\A`l@jۙ2Lf fpwUWUI6_wޖ/'gEOFK[ `eHDt=c+Β;¢AM+` c9= W٫Tʲ߶Gĕ3nj=i\٪W&*(g^Rޛ`kfAڥrTlZ`۲ak&بSr%X5O755 ZX5)7q=ct]x?-iTcMԿX2>\ V@si^#%D +]_7_jY/7nʴQ W7o;F%h^|ˡ|J|~|ϗs6>w3*!Ȁw"y +Dj|5sd]tP3&E͜S\L5sjO' +Eu~f+5PbZb+ xܠ*#RaLA [<]g`IĻpzW~4NH?@2A*Z4 +w*s򭜡kuЛv Q`E\=sf&͢czp\9 `ulݹLi IM.D5 +I=?artui.4"ͼ&&$g:y=Ѹq"KdBՔu F(4@MUbw3ezOβͺKofCrA 6_^x.~MlHQ({["m޴ݔ-}tE'RIDqr RӨ݌ hYj =$[t?P~(F85M{5/5 9+>!HM +9F2-5 >;5ͣҶ3~Ss%0?B(IT#oH6vCki 1;Wlј +L*!5cms`]+'ϺnCkKN9he'hHSr?3хI!-F5H*U36t̽;b)y3ȥȍ;]#CBkF5rwܠk}ӏP %1>c%x,q/e4S45 ю7'ugӎ}CN'D. n^:I Z@d5'Vcq(;n>YW-]~I& u%fk H( q tqUc䲛 +qOjv[~M)@ҥVgn]3Bn^dꚿC4Fy r˒~?8Zvc236:h#%Y̋Mz=Y&@FHYqsV#n2ɇ vH~d,耬"dŞEg)l֒/i$A1_˛L+٠G2~]: :71:.$'ăF]`,'m1N9F'uѢ.v{ +X\Bsųϯ@OL5`aSC)`N! ̊) sM0YḄ뚤)Q>Nl4Dle%|RE)s!Yv]aDw +P L=}< {?n%% ԡa:ӐKJczutnyWu߲3RJy|wqaO*ƐO,ߺ7|3”%309":Lgn2~+L#t۠zn)ʺPrd=qb@)K:\n*rW +- 惹bƘfSi*cDM}u[M1ALI#r>Y _ИI00.Zu$0`x>H*quΗ"I-j,/SBZG[ lL3l 4`IۧUjCUO0JTZ22$6i/ l`ޅ sn(fo(h,gSur\|իaę G# z^gJ?_y oC&}RO4?({uPdp$(שKIi(u #;SMp7$iq׍0-q-$-Ik_z]P vUȽO6'Qڰ'h. * +m)%9]cpbCm ?>mߥebi X0X?$*E(Bİyj;Qw a`QUY8[jT¸F1Lކ#L _B~< ;',I~0ªzЇCayad8F%!mjWn o[h)Ztr0aq%<͆'do EP2?0T hOFTF2A8iL!Z\5O`ϋFJ4R>J).1k48.C(f P_yqVְAy~9WZU*=}w&dOaCfc k\) Rw|""i(5B^CZȯ=c3y![ /6 |+_h%Epa.;G&*nrnKA [U$oq'WnS[]ˈ˔Z58A )8R_rYgмN,hM4o2hȊZ׊.!Yqъ!fy{a eS$L,IJpwfg S a>`@%` J"a͹sߦ/auЯ9ZTd)?װD SYĥHJC/E},aDhYYV򭖆PxR 4n lQph ZɨHA4`f,W͙֕NJy萢ԨrYy/Bf%{/ 9z[qL1- + lŠ2"n\-+19a=X<#H8ջ96wES!#hlhAǧ jQk Y4ۘ|?CV[A~\ Z()5(ô"@hj \C샄)-IyҢ:1%M{׶UHhk1x5Qy40Ǣ˫F'n=݆]w6cHU $PrT;(U6C +dm/X6 k .`0)*NakV䕉50۸CnXK-/W6lT\%{heNt.n1uXNg#W~xh?C 2|o뒋Z;t lBpƹڏ%#q-$sS|Ǝib\A+ +1됎Un6?!ߞ'` +axviex@?ރ*DBH?U:[y@x KXҋ 5U()1,ma BD T"a@(6*iP#)LbJܯ/_,O@hD %Em0y3Ų~6OiB]Tj@D\|8&Mۣ BQ !H݂H$'@7oGQs +nG_jZ 2?2#JE"X]Ho#h֜1 A BaZ0&%`w;Sߔ8̋Ŗ*r.JI3tk) WnccB"r`FbfH'GvXS#V. Le^ewU3;%Z w(Zz^Z"VԈ׸ шqް>`U/_.܇a=[}a ;O#!!Ӆ 5cob?NBPA(BMB"ʽJRC.VC54HhAy"݅K>j@x4\,pl6``ĴqJȚKAJ=!E25"@V~%P 0NAARxq4qQ+o؈Xz@Rpb6bOz@.z.F]z0#_̔ZzoHFKE>;EWF}ĻbUu^&ۄ P'?e B2Q~XJi`%AMX2J*X|bBd B-z!ߵ"΃33| #tGxx%D$7vI,E/p!}ԂtemL5g`Z5^'@Xy6։4(2U ]*x)?y +S<\TOEco1ٓ(^䪒ht%j#߃l$arޢ ,2VhD* eOXm<.Ν78xŢ{ +%3w,D{ #j..sV%Ϛ_8|wۉ,Dw;ɏ0Z0bө2(s~i&1U>ihi 'Fu.apVb)[m@}T^#ׅa1k=0MV5="Ob<xIMHWYa:<`$ʭ,u@Rd3d +i8\}QBFxDa.;8tn-J*\ ՉN pHP/ZJf/I~m1e LуBr+~B +׹;gy=g&1iF/7ʊ줮Ѩ_t:'t'8mݱ_F{J%8+RQ^KO< 6rfD:7}8]TѨ%ق.%>%w@z|G@NvNd6\-H2폺Oq"NYhю-qEAykLGcmmŲ>V'uUr$n+=x|* 53OyYvpyDiKRwB>^~,X4m=Sf|]畓 |PN^GfG_|!qXKMl2γwZZSk$lll*s"^Tx7cvf4J[VJp y@)WC7ꝨTVXT+E$* 4||U&|H&čDLe*Z +K($a'fTQVV!9fTedr}xJ)"Z[WLXMHtCKW(,ǹ2ՃG=hhZ2Zߨuqj ^V=1lᚅPKԛц|JVDы[:B1ڭȾ@\ 'D:9D%t:G* ꥥ?þNA#&B٢gUàOsuN=qf͇xqiд"pİ.7X_9 j<#es$ uR,Z1bO@dVeG!p"Rըє'y)hQɨ>ؗa와l[n.8/`&4l Y VgIp c[Ynxí _Nx˨&i-̉F@6Ԧ +AC9V:l[NpQvf;iyM쥆h2Ld`Dactb~"랓J-t~:iX&R,G'K[mIxO +'A`9.-is}v6kQceN z2 }g3ͬ!{EI&Q-,QXtѕ!n#qx ϖA"ٰHφϋtѵ9.y%!.cA GxOzLHW7AfT+ܽ{56-*NTh-y*@HkY"RǒY%Jk0\`9?/ Gmܨ5^s|KJ/@w1[iIcYɗU(Fd4& 9:4c) d!W 'kHVZ%ǥ\"ߋi 5!,/ɬ𘙐$/ Ղ ZF2֐܄!qw,yO[ өf\5=K5ć4Ȝ+gu[&![r[Hk}SmLgo^x_Q[6| riLp}TY7S]sA|^ )Z/*i4JU=^74$>ze"[-ޠA]\~処?{GǗJsZwt\.6לC޿>}wYN:-և,d1 Tar[fAR*P,JNJCTipZ: c^d bGMʁ^ kŨעOMvkL4r$&sau{Z/씧bT(-Z,&*΢fɽ' ݛ,8+C˚/DiB鯥‡G]*kGD]4^1>Sk4K]xY6%ĶY={X^G{N`c4T+Ԫv0FE^d^dܔf]Gbdm/yٯ _3#եCjI f仞ghM8CbQ!|>΃W8=+c/\vP:/p.4Gcɣ(ވz9/tY{mܧ ͗Sr/\,|8x;<\L֨>};tI!KkW,Qo9fV$WK. /O3%8ȋClyM}\Ag@͂ǽXwgb`6iۈ,cX/U0+x;mcA:][jgE?&^LnCQ2ES}Pt۟*K7_do\7 f}tEyTMC 2'hpx0J%?lun_k-4Üv8߳5v-ЊNEJ,>a]ƨ 7hwjJwj%N [\~K}fmOmh8d_'me40%5[Y]#hSnCsڳ{Eq\GǯBWm-c v)ϥquhpn~$ +!hVHZ,; RBŸ yE +|:g9ޟL8HEٗZyW9)'n'lf8%d(VC'ɝӼWsmkڶbB@P)U[(^Mt^S~ӓ e +n}5s̃`KNPv!Apwxç|ʬ'pDt+uǯ\uo{ 0f;vbAb3\Db) a*7 +IJ]AXU()U]0]5h)a Ǽ7bkPXs6y^I/# j2_'x {׉*ЮYlK9,-Sj mVr1Y8ˊ疚\$X,|.z+DYmPiգoDDfЭKj2͒S%xo)?2p^nUmѢ8ꇵ&}"Sz+\A-F\źDsrl%7ö"=`EX!,szg\H9\&|s^_z}I,$$"U0.:`I, v|݇%Z7s<ΡȇBYb])WC^Jx&i.85IyUQ +=bClج$̚G{ +j* LJ4X@wh5G cԉϓ?5/hR,Kby9Ϸg[WK`UکVTj= [V-ת{9 ++U;GjY-=!Fk*UݥlJ C@Q}] 34YޤأԢ&?%xGSb02#1AJ) |ɄAfy]Nk$O t}Ը,Kr oXC߰XxՄ4ЭLغpiv+2H'OPdв=T w6a&߶?XPWU 쇻I&8kW dS<)&)(%2{v%W͹5K}{27W +0eBmlsx`:ykKU7P{i M4 _5'[s _[:bZw9vP.Y ǽBPep{|b&×SEyvD7e HQPȔ_fֹ9YR?O.3Y S{:w/XgbZ6`, ItM=`\z7 w籘G =#Q1cĹFy⻱ DAB'ˆ;g$Ox>:CY'|>|y\xI1 ; 4Ы6ICx'y#$2DD;̼(?,,~{#MLfi(Ăw"FάI +ßhMLJσ߳U|$uֻ'M;U}(rBw;3-=^+LOW䠾V=loܣQ,௰g񀞘" [ +!,ph _9@J(xR:'Crw e;B=d"ъC3ugw<{:R%(lóqP%cjsr86Ogx"hOs^k6#v8G"H0g6gUi+c 07(Z^ +FFJX`Z/9n 1!.G4DQ,0CxEǀE's Sr +8?Ro/=9 0 A) +{q,Ni11.yrɡMMv_YWj joV8F,ɶ!XɌo0d '-F8<й0 +T--LI xC%|$ drN,UN;N Ťh{֝;Ѥ i)m!-W"@3m<-AZ(@\in +rJtZ=]̊Tema?W)\_m*U]{8i@gHJ=gemvR +H׌s,([.lO5 +΀37O9]C}>p_͛Ijp?~2ܥW-U˒}Upj*ZK?c)Xnq3Gvbǒd8g?k31{.f/^aɩB6|kyϯ6S6s[XdYMMl/Ln5E§3qhSV_M z~z*KN N#Hi #F>ؤ#Iu^FieAߥyg,'sW0L o3z]UvyVe͂KžKS=CFFdٞ|Ye^X5;*~u'G.kڶLK?ԫ}0 cYvd!';w;;;2]s> 3b0UYLWm*U bzɸzm!`c.w2p;%^ޒ-P9yAYmS p@3Ll,uT{L` η#'ʦ6ʣ?Smvy-O܏dT9_ѼTi!Gh&*#H"[S%U +!TvnSF42Y읛sfc1nI|4>U V>-A:F_K cfs@Еڍ|73u +ˌs[48+YQ.cqr,bzO!IUc׃`JvQvLrֿj3?NM$_&]8͓fYy5广@HH8fC $d$=s6}WQF(NHfዀ`v((uҿ^6 + o/r,sZT\dPEj#EEDH پo"q0%NP? aWUuݖSwLa^P̃?Ip&po$}ru848ă7ƮEE6A]E݊,[vlIr%%"f܊  i!X?B*f^ ^u9 }3fa>++Wi~D7Fvd[IHwt4|j~ډ3B~ۥMk͉ǟ*F^0 dzs1gԇduz-MˠNYಥSY1E jOg3?σNΘH{^8i_ճWPB mɈ7x`Ln&K<:{BCgt΍s}N ev[йA@9}-Z"ua~̕9 eaC 5H:#^0ֱVHmB=vv:xޥ]4)z % ''v֮OΚvcl|'`ל~=M76gӇm"4;Ev6([) &ð p]!LCKhgl G]% DCט3 -g!/9jl.-%q $7t 3!l]|1h`H8Kp3ԲK^Fٰă6Cvl/ֱx/1րH_h|L]Hi#ZPf:-k$}xo,%3Bc$1#={,}[a|^qHn ڻO%lK"U +4LEPъg$b}ݥ?y8W\}+YА> ;.K!JEީ?w0r}nF.>Z{B0& K`dfl%"M38*ut]X57-rhFxSWR+_#2DL^uch2TM0OQ*Ǹ-fU74]_j%yK"u[xyRHӟfZ99irVV^ +7YkwN Yd뜞Ql.pa疔ev%p Lޫ "1lvc[#^x(tHWF}0C= +W4"?8Ac!qˀGbr>Iws>aOX&J,˖YK zM ʑ!2dpl P](`A| d#fT)D34 k"%ҒKp\"/Eb؎|1,R +aİŰ'<1,a)O KQ a~6󳉟 iYr.v9ozeR$.tE ooʽt~}pZ?D$>");1R*"0g^ҳuY \x/ea͍vjVxZ:}YX˔iIRWo-DFvT>Cs Z4GpDt3^URVsYI%7.$ZĖRrz(>9{exB2On|s^zKjyjΖ^sXW19 +X6 `WȸSf:Sq+%E xeKHkٝ41bg'df, 1ybgUZ$>KYB:+ H H|N@$@CREgWH"pP-B1%%l (!|ʘ"řC%l|:"h>O/C/ɹ*12^8Ԭb`{AxYgޫгDJ6d*:<֡/RC)Rʦ>Yta6$/l7V=C'.9& +@ +gl63e4S\qFk@>}IDKǵ.n{cJl.%r8Fo3s<ƓXhΫ5ٟF6|B2t.w5Y>x:ɶ[SɍQ]ڛ|Dj.Z-b /Zl9}5u_l]>!Sg^1X8;?f>}6n[pY24.䄮tW?kH_}jӋߘ+ظ.rp6!znJ4 +Xs7m %YȖ3QDr&Yɰ7Xɰ[*vJ%!a`@ Jf=~vUbF\N̰{7 L"BB ̺s0]<-?=m>YcÞ bcLV6$s.& |?p8 ?EU~(n|1 )#6GCF?ƪ4s>@e ]Ey9ƣ$U4]vf!X$`U|ō=`k{ +PSҤQ&$J(譑XȲQem'hm)ٹ2xgQsy +:fUwՍYdb:1a8INm7[1$GaN=[5TFS!Z&N +n e庭;ב,{5)ǰgŎ@H&i^kn)_g ԡx\~ac䤖ܟ ?Ghk5z>MޥxYtWV_҅h=^1#?}'8ݨ̀ A89A]CIuR'Hy q2y[ns9Q~NRNp +=03RtL咺XŒ\,ѵL'=)_k+D:V/R+^ !,0װzy ؞j+.Kzx{mh+c   H,X+_ޠ'ȥD4' &\?OZ<8ujփ o iY4V> MI]ʄ? sݓky>W3P#SNpkw8%L-|==vO} ¹[ydFJ :=؀{h(.R2p"=BS)~c"9]K׵\۲1MdⰡ wyQ9Z%":߄r]V\o`[x}>P2 _&p .Q@>G:_^ rE~|wxDٱ|L=c[pu:rƏϖ*}2Y".jU!<`vn%!2 E/*9+P [گZ;;q`Հ[lIdmb6Uվbh6$mdHm鲍7RlH~7%qx;B^"OmLmf šj8nfmʖE  {H"i$]-NiOGkV {Ӵ|^=K> klc4 23|ܗl9H%|{Ju;[[H1EیfVOyw5%Hpe'p8lTs"#{Qe͢\WF1p=B]=^ܳgh=|;ƼuZ@末\EC~]PQ ^LAg-)J!U^&0y&ۉLde{ KT~rOGW~BCD`@6L5aL!+}rzBbe~!֧|)@#3[@޶h#g%ADPgB& V\\Ѽ"^:|7@]3whdhE +z(br-03՗aQ#û진'w@3i /+$\UaN DTnA )?Np?O:BsH"Ho[~!4ẃ44lŤ%3 F)Nt%(š&LOLnrQvڈovgOa6a&2ŜKFYS;͊H7(T;A_GPJY 5+"<Ř5oÁL>氍YVh}'u𨷦I ؽm?cϰ#`t3P}wCF{;g2m^<܍DhAQ_gmbF(o#tJꋤ-`vu#uK\@B {."X,_V'_x\5 ,$͈ι]RtP0^ϹK̒ ~A%uF2: "v Ņ`a"/tR=}dj"nþ֛X$dncH')ཧNC+g3N,k笠ފ澧B !&OXX!W{` +/aʤ8H¹Jݬݬ͊nVJ TzvS{/t"*:V 5s3)ȜTlk )\ S$3j^z5Zϑ^/4C8ߌda +mFI;m1VGUYL׍aHj%6u`J^u(coV4珵p]Rd%ywְnROXaA>3}JoJO]aյ@nu!>pO<^[ذE9 >mUH\y%cCK#@%O < +M.aW'DqIW+?}c:k+H\QsxoNc/U7ud47e 'SրN,LY*~,%T|iqN@dI~v?;nyG;=͋_4@#5#NOҩ9:jN/WoRs$8Lsn ]9g.$ҹ=xK͙pg߆Jz; [S% YIqw)|1;~1nk6R:~$]U=<E鋶ʑ@ > .}x&?v_*$y5ݮHU}J.$ OܤL{E*,I)P_iƳP(~PQb"H^]|11 +=sKʍq'0{Ll"K [jhE7Brcb{– N F'3"B*agQiCvܭ-,!Ŋ4"uN1d5>C\ t֑Nʅ!OFbz襤<^_*k7 +^m8yJHΕȫJYȫga RAW>]&6ҦJ<X7},zfŮ`zcCv/Nݢ|Wt:<[QjԺb|g=zezwv >ʆbՆRלl|qnqhUVSÎTzPͫEcyUV s`1T,>uGslR YxAVB8둿KJ6OHav)~II/uz敤wA$-K$iaȇKi$Le!i,Nb5EbB]|ry8{*Wg'=~8䪇ՀkiR>sAP||i=GH9e+`CEg`tQ\eX2I`lػ@Wn1L0n" t/[ɝmGX^XQ |(V8V哂rLl y"d3=[\.KK6y+6~ef)mLXۢLܒmRZ$k%!E&Z!QLGdJf4\#HQ0k,-tAO{"%^OM ŵnܖ<}FkҊd{@2JGOX]hBaN^9LjҒMU2Rʢw3E_|hVY֝fs"^vjg<|Ke!!|CD='hS}­PYtgNkkx +62nB0>F[ދp3 < '#R(>H-՝pO64O MՖRZh# #dfROoR2u(^>ݽJ#Ja/4E]tjRFUxGHD91d٧/ӧNٸsoN ",+M%{y f'0 +z>Γ/) +RfnV%*qs;(kP`@t +]QC2w|TU{/ oC1@Dw˸P-@8ʒAĘivFlӆ;f?7UY#ECBCghU贃>Цed0? ȓ v@;-|r䲓R?ЖC=,..BIJyzB c !!:n nhIL% +F Z +)vNGJJY?XQ*Z;SJ\.w+?z2}'YE9 +i| Δ}k']o·N߆El /)?$&Bu0+Ɋ6γ{} +>a*bOEg4SQh)5[XXT_-nFmLyNg mA@6Qc5%a-C2" XP$Y}J ʓ(HM s40xzˊ)o<: s >:l[#ܹyuN9 ?ɾܾopGn5n|} ۟ e9WR\!  ZˌvcܲǑg[ejnX@*7 "HIɧg#nmk50?on0YcO`By0V;tȬW| q5uddDyHFu +!rױ6{$pw$™W2-o l ;ENMcW1N1!cȀX<=OŦ[fO: Vv۝NRM?C)ۭ(u%fĚ3$fnÃ&Lɡr ~6o>[R7Eb{7G`Ȕt+9%WMAJ)i'O?XB/k;oՙ15nʞvk%),d4ˌI瓺OoSb^NV:r̍61o,6F[~Ǜ/wO1w4FQv*B'6Βcw!~ܻX:v=u 7~F;b[Ϻ9 N7{6ǬNB} ,&b|~y"oVǒJ%4$%ݠgg2h͆diiQB2ԏPiX[Ry"/k7pJ6kl*}uN% sdrp sP4{׬a[[BV$WyUkMQISCӎUb/hCa4%xaa8].tS’G`mR3sSSvsfj,<: gb.}fqü+P}RF7و;%mp7DZ(#M0g1h~0:;0Uoc%yS9[R~)K>M [y{f %س MX1G@ ~%o{MXB%u"y/]smD5yN^ =CbjMqM̛m+m=&SrFq$D, K 6O l-/Me~Fx0 hs'cڻR7BW9 պj޽z ˺j |9`[c p;^Rxދ8| @aKbMggs[]a3l繗}&rFP})v!JPDJb s+w̱rpg4R~DkwK-k 6O4ɥwKI^ǥgKX@RK=s)@v zaȁ.kr)XK!u_s ϧ򳂟Gb1:NuyBVR51IECy-(֚J@nl镣F2ۅ `R4)/N=$u5!Ke_pe`e'Y :Wb܃-'(ز AN"8@~7 |UuHnaSZ"Îv"o_䇧 wQ~Vs?E˞H}*<'֔~ ][3]VɁ +{T[(!sn.J:S!6,Z\2sf2_чI6bdsĜ`[@=5Kr#V<6p`ˬ0t2͊6Cy))*eoAƠȾ[!n +?=8`R n\ ,zTi J֯@>0K4au^ockUvLLaɘ`kR\O9#2nnBfK|,+Y yZ@FU=:TD`HJ6,;U==5vL rప h8Fnr>!f}P|xSo \d&q__%lN)dр:LE TC&q|@"A() p}aG= pAE1%*Lf@ +7<@`^x>*=?Ed +h_'ن9C" 3rP4P0]n/W+VmMn/Nn6O*۽*R9XQIV2._ <$訢{@"X +Ԃ .Bs?};"+iC4c;gW##⮶ '^Azn~~YagC24s1qEU,l=ja- }&} dzve)qA +ШO E9':dEi,3z:)x4 ZͼL$в() 2QJ6V;#/\=.\9 =垨+2&[X 5lE|^%y\o]/ 2'=bmYO[,!e.G`KE)pz3U*]=:b`%X̟N Y%fQxm ",̗ nCJC0b^7\@h,95L4>kkelw 9mAA|,7Bdʐ@=$A&ۛHzaaJpKNˮk^~e|õ/4ըRb+D#X _ 0sK + VbX ow,4FɢCIo`Sv*sM &׈έ-8(!p9Fw.4|X s@i4 7 >Op&v1҄/FbY5B~Y=dMD FF'wt~>O\'%y[R ^F)w bj<(-+I-6Vڙ~-B\3@)1ɧkݰ\QkfJc_،vѰ'7où [Ăt{AvSYT +ceuٶkt>k{۷rfp_kU DOaZ=fV֚1s'l6o'Sn/ + mji0 䫛t.PW8CFݡw+s jLGo3sʐQ]5s#kG,Na}Q`͓{X(}ɇ%.ClfA7t"d6&>@XJ>\`1 /;WJ/C|#0.x Լwf^Ϙ=,vg~r0`I}dgŦO˨^>:+ubwX쌰) 5nY|`;%,v*b c5]ȕp!&/ plgKf-d2Px E`! vװ +5b{Wdq{Ur{:F{jЊT"2Ё [_`XCh + CJ,xlDH$ɰ߲]Z2 <5QdO0mf`*,J*!ܕϨ\ֻP a -#aְҒap:ٺf7r3%9غ#ئX4 q?cfu~|^xQ`1a>VQ>9}+f NfÖy2A_[x ߈4ƸȵaNCΗB#as/8v?Zl;?a?yKt}(ߡE5<2}a5<.xZ]\d;]ig!~fs\ %]pO+3+6+A_Bw =Khrfrjz#JܞԴ= r{?`9 wz7!nu3%Նmb^<}Tzbnu!0ۗ艜'%]N;_n,y zR?)iotq̍]bY!e1I +.8\4 'HŰ&;yM`VMnIh|_lzZVP$aRO/ADlzߦ@Ҋ{=TX4kU|DmSR]qU,l6¨f>^!Z(Ǩfa0vlvk8:%$$!y<`.PsiUlϖ~{{7PTf: |1hV%酪Oi:[%!69z8$;KodI!혻dxxZn Q~-Z + 8Z£1{a9nUX4(|зP Qͩp+ßK+sq?y6S#  fyJ6 I-tM-[x_S~G~M'ʂFU;Wʵ;¥ +D$"L /p*\bVᒗUYYQr4VeLg)?ݴG>J{SVK ~G%x B͐$yG-2SD +* +}e Z5|gDrL Kb2aX ( G@k5E1r8e YRrhuVܟN HɵM[rB_ZVZ;gRv +vLtH:)IZrئXdFR#%P;8 :rY_J /' ('%Syh`)MV~Rcv^>/"/ĖQp1 m%Ƭƥm*)dtFKQyoõ}z-Q ѭ`[HyF-3J=FV]c^ඃWAs-V`+&trw-S%_1Y"_J#Mׂt88d.azM8Ş|w]Kh%%=haK3X|DUspYzͺ7Ğ/P,Ds\:lD!)R*=ɳ<_P2.B1N>x_ + S?߅3LP7XՌX8S+7,|j6DsS(g;d$xp1" 3aE v ⹜/%H}Q,`?H%? ƒ# }wa3$7^anV,,F~j=)y!tk ~uYi\uY6;.Gʹzٓ+./hiXZ|.˝F~w[ u'm<(ג~#6Ҧ@?F]"Z=edwZ9Ͷu|bAސ@{e:nx {y$I϶iT0yծaіn{‡^'H5}ē +} z .Fv+s[߷) QFȬ1>n~fIf/%ܬ0xf%AԪMS{C6[$ ߖO_xQ| "?eB܋V%++88Cd c̞̟W&B8i.DQ\ +4xQ$!6DS%üa͊,q  + -B|ڛp܂ @pZڃh<.LPB%)uoիI,bןŬ:1*bLS!V=%?!-5b 3^j8Ӳ"fAl&⛼!W}%t@6Q ( c aMO=-bT!$~@5hxW[1df=1eJ^I^3ampZIh)OJ☈{8J1|NF 'v sKOIOT)Q +BBP{U2q#5~D{3|F{ F%:Ird[/^ #oFc 1xf] ]I HDW H7葵}3jxfDRºdfH ˥rPŔHEvmH1($lEdA5s Ң7]ilG(slB75ʴxiI ڬO@k~aN(IKAߦͣed&ԷIf}TDZ%]D2TKnzE[e!J$l3c$w [u C"o3 +?avҲN]fC!T/`˘9.GM>qKj4RJz`S% VPl96AmuJeIXR-CY5JtQ>`G仗y emf6:ESnxikS"z!E#݉MK*[0Bd#t!>lK  WSS\W135f1MY4јEk>cnjc(%xZ%r"hM2)׉B{X %͚~G Vc Έ41NSwY߬(oV/ JsmDU?b;2[D⏔ 1jd#biiL8=wcQ"N! +LEfmDa"D6'Bl/sihmæAlWƸM(` F1&04R) Qi5kAԭQNY3 ,khM! cQvdY dfBPmѨܐ Q_WeB[#& al⚫a3!ƼL1k$*I1H0';-y75$qٳk]Y^Z2P}MX24\c? +U|\o4N׈\fa-l7mlgR܀e3!2x0b.aR[M d!I3̑@*\Zjĸ\l2/(LQMլ +I{8b ujS\HξKw.%U3",-72HRD\0RP8̄CXc&A |ohd@z7g=H&0N˄c?F$a rS&aLW勧%oBm\(d/ű#N`f&jBN(M:)^ʧKK(fI]3+gzJFex}Fm"PVE<\="@^v!}@Uk[<`GNLNʗD!o1<\̓܏1ָṷR: L4;uK>ϬOO(TȈ}\Z.i'= }ZNMR `&"01-wS68/ZQ%!~9V:Rҥ`b KN{`^ӊ,ݚHLS&n=BaLcЬ!5yT +9||',Ulcz +dĜsM9tJ`Rnn}»$ጰW xB;ݫ׶ Tؼcd~Ť*ܼL:Q.U{EA3 0&&E{(]QP7R6eS+4\ݐ$0 "׭ +<Ƀ1B/>{F zQz>Dχ7g>K>?M!^̓\ͅ BE?L,h:3a={隢m6 FXR]O, Κ\yuU)\HCDD)\:4Zl:pԮc6( -V۬LX!,|);ytλ-G͋ӄ1q*UCr|ߕOU҂Ǽsncg`a3Te +MzY}n,-4$Q)H"XȂ#I U .2u9;2-;t6jú5' lIJXBNQCpL=V|΍Wf߻26~@|*F@wZ` -9YZ{Q*ӡZxi1γ >=(S0Z' / I)DD͈``z4pu ƒK[C,{ѥ f:{mnvu.+Gd8\ 1 aY .qDU^痩DP0%RYtBao7?.@ȐKWG\"qL!I9.qͰOffdx{Z sY 8.GڰúZ+!UI2ȖfuR&Dں1L@3*Yc~7?J8S/bmOY6 Ӡ,*] y6"WY:nU\]$^P9AJ^ch=lRzâ{9Kp#i8e)VSXZhP|a3J4B1^f(m lbݤň 3Y4I +=s$xьjrU3j.3{5P/1>@T̐J'/O:*6#+.K͵' +Oz:7 =0+p>Ū!줊ہW3nyET+ +t ^B/RK=]kǣD,^YÐ7KrZp΢/Rڍx%hS,wf~ Պi#nyۊW\vad] :$x,o.\t RԙO JUu08t{"NuQlU1Ȑ)x& DYME|T F-"hB[G6K IJM0!꺬5z;V5ٌWK!]qe)ϑ n6FuHp_mH3ٔEؔmEx]Ζ "K,€S,!R[ |h#iqA=S~hd;W6TК'x[t?-$q I⏍N_ +~K9JZtۅBnr}qJtH>.q B5TUe<|hCTZ՚"#~bwtKb +_d =`aGʧUʐ%>ٸu539%@կ[g:,H>O YE)]#2@%Nf+Z *%.7{BE=S3=H>=|zhwS=&OϘɧ'\?&wFow:=nXp{iyXn>۞ThG3i%u%=4҉.s +"w5=%ȫ]3i/w%;4 +~﹣;i'VHB͵n,4N4%h楥KU:,al[f3w털xz yrC쁳Sr}|H2/$Gٖ$74'[zPplcygc!čd t|Za[K^,jbyA:sd&.\]D.tx<{!d\B۾7ELUy#uڕ2z>d?O;tݝ]d#-ܹ]m|ߜlW/[`Ñe;*=ur_?Çr>Y}ps+5uu昒 ~~gY ~~T_ج)g8i԰urY驸FXO?}f '_7&x7>.֕qCS;y'Ӓ8 wc3K\.8] ch척Yz=2`yH^mL{x{]]n۱9D-B@57.בYhQiCz,=%]K?$ +_uC# P#.5jvZ~vAQM,%3ꗏg'çba ƟkNY[Pw IB$cPu|zVJjk.~_[*xL[\[rWF,e猆ǏmX|]| UONkz5Z?xRֿV1ٮPb=Nqm,!^=o|(T+<_C])j_9z7 +d;O"*(ˢg&\.Y1Py0|l0jJ͕r:&]*~3q\ Yչjߩ֩V/(rrntAmlLIb Q>F2[q qЗq0W0! Qϼ\tV߃<E0{9hBğ'Et;v6/Jp5G34fM^緭v/-5!"ZPPXxwJ*=̇%jftJTJm{Owm[hx / hQQ /D"ͭ4׳it}xh^'"NInUce֬DI_jO%W-EӤEUDxW"+W?r zwvҟٔ&6\,Tz(AzUQz~=<)L[jZ^5z^5z^5sʫ/N1d!-}x4jFzSd-J.㚱*XPcf,D6yd G=ᣟ{]aI2[ J9nte!B]0{K|i; 5;n`Dip <ܣȺf[D.az̔77V%PH׭]l-r:F2G՝&,!x։,Zy^`Qx QЅ*ؼR \g ۭ"7cϋSYjmsl(egVЂ;zg֩Pׄh3Tn5ck7v +OI+N5[No%9 ?xN{j>xv4t*1#G R~p%ѣ@BBNnIIC>3Wn-O!/%P]^ "gM27B4H'\2 3l3kvǰevMFg%]n$t&=HEYS ^?)(5Z_Zr[1 +o/f:fM2 ^t̶YFO={J>(>0;M> g<qL6/6& uqp`Wm"$@W'\\Vy$hs"ZG&:B{h211ŷrX5}HZÑ64[*)t#3HǗarJq 9$#y)kcRxL +A8IszW\ؼݲǤsGwQewv ,i AMmmDc_4Lf?O.etg2ڎPr䛱`N%>!.DНwAg8zwV{i1 #KO \Lm֏3{fJ@:=n _=-GMkonm2wl5$א2-R-7 3;5ɚfE|6?r?XPYȨh%'}@TX:W +5!m`gܺi<4ذqZ]-t4,ù+g⽄- wl|~39uNnH َn bwmݖoD^f$i=Av;Ś{ӱ涸]<.%lCc# ;(g,s;d"v:f=Ь r{nNr$\.]`ܬ$ՊiJ9w^{ %dt<%v_Θ\ x4fBY{|7,{RyHJS/|5^%v[Dqּ˛K%zl$f[ȭ^枣E-o9/Cѽ_| ن$vw Γzn_ho(2[p.uɀnրNNQw(vRN5S +yWPũ]9'8[ϢK&|˗z"vF=:}Yo}>ު}IHxwIfmtgJCg*!e`A'EM?Bȼ^3`~5R:O5,mQ8>闭Vk|oޯSMф1C=@HX'vGQ]s J n}B2PB=0r@D$D'J +Y~O%=B[@9x62ZDR a_19wh +qZY QJQ]ܛUtxf +aš*{\v9vǰCyѩ;:i[&?k I%}T+ްq +u#\sp3SSu3F+z*Zۛ8Z1 jѶid& n3ۦFϗ葘dsjhoMh6d{ +tCVhI^J`eo_!2f2==y)9n .{%,C2+nvhI~ޤsY Ix69]tʒVy4il2۔]$%p~|K#Q7H/x&Kd%b4P:"/c22#]cA@5<#P슄-Kwx0sŸQUߴF|)t[z0,s'"$Q2}/dta^qM փV RVoQ(l˸1%W 1Sǎ gilF`N"xZYCq{Um/F'cZ1}vc|ɢ`H!7PABΐ ZX*BYP +u72o^ݢV2Kx4nϜO+uءR2qxKxZ`slƛEJx6)OHdN:\}]3NfҿVސ7ggz@7"BğX&,nꑮ\>$aT ^A h}#&8 Ŋg8WDs]V_9%swY{`>@>ǻo)?@s|7m[YɼM$1rLUS6}iXFS7_]jE͉lXm~bp/kXIG ~.4؀,Oi G"\$ AI""К=lg?ya_J9:t(HCyZ<'wcP=:LIhǯB/ܿ!}QKcs4ͺ-+!K S4[iv)gw*;^EwApWbWT}l$S :f?@T6boL+ʥɘֿɧɡ6F.Og%e63",‰LG$U@IK1.4m#/ԙnI%#Moe)ߩWDI.&Lu2Ei)=Lw3j~.lܒ2Ӗa%Q~{]$Q G>/,cQ0J!fW`0La4MSAI5!=o{ $?7a3}U(% xIĐF>G+ C 4x TvczP&)&۬B*[ *p%`NGi?4!+ev͗Ri-Kk +Hk)OZKQZKyZʓR5~g3?σb(U[Z-ݺZKBKR -E -u#`0;i)Z\9EE/DT &wRzZ[.KA5maM;Ud(2^!QMQԍCn zAkN;#gMc̾;l\Znx9 *fmrzm!$5&yXH|MH0IP1a^oYJX`}Saec9T`ܯRϱREirǘՖҒIL*o&-GIIJJeLL +c6igDQOؗ!ܗ\N/,Sj1_}bxB t*8YHj*bp$fA1#N 4D'[]ʏt0瘽%,X-me + }KjeAe BL (J +_5JBE})]z`Os8홬o3s<ƓlW14bi7P6"d48k|7tP땐g7pryTaרf%:d}:Q>Fu>c5^`/~.yCߩ3|,F-,rBWGBnf:嫟5>oy(l\98xu7%z;Sb6:ݒdX +xꨂ" ,a,a-%,;_²S/nыnUw#EF~*kG1kw.'fXyYŒ!ˆpvf]9}fe.rSH6aϏ1RW ux1fybIQ gzX2waw_2ߛO+}ًﭬ*HO[vpLI򅝎NUiN+(t Xf:X3 u"l_/]ew^ܘ=s_.W+P /ğ!o45,$rν6wewW4G;_w +yJ6_>݆SueKEr[ir[--v$mG ;nDI}vc tpۍ>֤˜0]nehFPR2biDL\bxvWS$d7(ͅ&f&$f@5X$%dKР=l[MԎk%a?.hSKw_^RyвL6c&Y& + X&3Ne${\% Y?A3kdKɄ)q&6S%ۊy^ pRN\uE0 +r38f)IVǔT qYEB7 +QW3?@<[Qx,rMKtI.=K1|pe?`sSK6~0ͷ,&ŲKcj5SSNe8 yשovKf^6\Cq8 +C8'3bh;$fl"y~kkSPU*x{7K7mDt27)϶2eR\udR9,#ib{ +w)OHB}RTfaK 0x9rfo_(2s{k.ODHӬ)ha=@p'$㻓7yt2rq?NN9A%:W @9A)xn! 3nw3S< ~sprWD30 37_V097x`sI=0Ix+eT/א_+)AȹKꁑĮF:u݃rbC}7Z;jaz |Er=vx\kZv{srÃiD 2e:ntFtx~8Rb]Qӯ|H^qxMo,1R a񗚔ϠM&1).E;A֭)!R٘-wRѬV4qT a;+]&(d(gzBl.-e<% L\BŞ!"Kxy u(e/" hLQT +홽X@1NiJ^# yw[,\"^a %^,~YqEM ̞4QrO_h Q'=/Dj[V0 +A3y q+dx@cAK=0YXsQ#S:pKH##Mӌܕk 6)~U|<)'^@+_#e+ōG_;"O%E"D~Zr\ ɪ!=j.:>-~&eV0z^=dh?8CTU2=2& +0Sf+VǸ ͩ*7}+IF%wOQKڀXkx͹\9-/e/{\TUo٢Kdt+ +RCl +ׇ - ]ϩQ ȳ/b<~g/SŨM: Qs-SO\zҢb{aRH Ğ緻(I6xǸ<{=G{tq<.qF܆6q{gK*Sdnݲvn3Vi',{TbG;QI9R!U\IFL(Zhh8sD(7epԣGyQm@*eet_?FT)/h6|w^h@? -HF sw2:6\wƭqFCZMPGF-41ss^m=9Olٟw0KaُgiP0\~=[1d񾑘W09"3v9O'Cw];D^1#0sm|0: w J 0sE(a3s`"nj[fg7 Oq(e`#MC22`TP&(@E8s'_?3?1jrGYN'?6a_|KFG|ƭ +A+"ԞpvI?<0jeOaHFO fE$#PpxȽD;髤kak#װ/|.]~ּ ~8lX0?]8E?[c[!t#`sfF{;g2 lD!(%ODM7AԜϊ-!mdm@x:4i<߬,;#Nh::HWA4$ {i Mk1f o^l wUh 4Phɥ)v%s6q<} $=/AaHlh8=,j[8D $8,Fr 8/25+ ٛ+U Y@AIc<xf1?|4eWntk_ȌiPn+Ի"hA 'g >jJ-*! }eXKC2J4{%k(h\Kb(pGhja~6󳉟sb1䂺C/N=0t17f; uIǐPwaGJ8>2pgyWbC;:iMkWhwEgt+z꽌reo(u,; o(كUYncJ>&O2q\8ged+œɃg >y'1 #j_[ & JB !!E(dҠ[@=Rk+5~#r϶LQEm2fDSzv} +OuVt>yw9D-?uOJIV8Нgw,୽GoN5(w@5frUUQH u\ 1卉 [y!ϕv݌Z؉FD@Bt)t{8j2nma iX!` B{]%Sn ?DMPBW=0u˓ f28He%Ѹh 6 \RӡsEܲv$N2yNQDd˪NERJt^0Hʳ,:!t${_nˣTYf(K4yPqtĴ`1H;¹f|w+$ δOC z*^~3 +Kd5?pC֞\`z-:f4!=]\IO,[vyky|ֶy#>fM&)N#욅LYW^fR]eGv-C5|>b +趰k@9fBYӘp#> C##r-ea׬\@ { (%jXhBkQ9u%皊 2B3yd!Z:L(Z4z2\ԩм9v+T *B'Y/`i!>|T,1A-ncWG:fԏ;*/%G0 +y\{\=n$GK~viS#.~0`m [s +Z ",Ls/W]-}vnE5zbԸ)FNz`ϐi \I- 7*Ro"ŁJlZbv:, ǘ|Y\R7qFeD:vQ\,&D,T'!qfk$R|Uj1tT%CzD zZlxzo(|V]Vbhh VNGj7O_ÖrZf-%DD =h(g+uoV i'Ƕ1>ŭIՁD( 䫯H xy,vFHAVa&ߛ7X,%[wI:3j<1.Y.3K6ܑ:=!w#߾ev)mLY[-SVVy(vyIVf0d\VDMb_r욙eOh Ab{aV X^Ȭ\T bQdhд`[\KFMm9gRaK+72rx6"V^8,c/Յ f ])a xpWoZzv_|* +.ʏ}'0p?ܽm5s޺{׬X2N,KwvV:#ڧk/>^$y )r(Km#}3{qsjK=za8ỳSOPh9nt-^'zҩvk'T8*4QS{/;S i(tEK!t[=pד0tB1nI\EVM[Ĝp>]IB՝$%UJh66M+6#߲L'uҎ:lH /l#W[{' " E'2{E{",LHg#MȐ_z' +c:zzaz9dm',9.t*a.:_|/ :aKBK,L?8/D}SB|B;R#W̋ |D ^PN/xqg={מby,Ed>rpo|n[;9Wz6#@~Uߦn %" L=~gٿͳ,or&}vM'YVW;2;v1 +9efe2c/ R͕yM~n9]aNQ^阃|.HoHґ8UCD|l*ΎhbW<Ъ-K0(H$^}"%RӋ 1eu5M:d D(-LSNq* ՅPC%1*Y-gI<M# ,㭢,ԅ)h`2Yexs%L1:b?*tKOyuEJۘ +?^4H4B')4Kl;Q#R@ 6*KՓ*y]2{깎'/T6$oHRƼ  Ř 3m$Mhe*N0%ttw#D&E8+6%T>Q /=cs'șl_Z7(9S*ܫn}$ +^BP,G(4 1n]m(ܠm*Di(؂_`%\A: sw8x쒜%_!F !S2m}-Bf^1 {G#$B}b/#fF وs1$Fv)z<E0.2^8`^FH='Fϥ[χ\E-ߺZ Iuͨj*FXeT`՞[ +;%խa9 lfjBQ?[~ɫvE Aœ(^>U"WikLӽR5ӝZ Ɍ0fM?9W0 Z̈́$aC(B3~*mhK/j1^6sʧzۛAFI73u0\ dFȲ-,fag0*Y1H|PVRZT3ybWna>%J#\',ӹKUaPwF.ۊ~|qsq&4 &AA<N=0JA=YRՑ11,C p(vU^L2#4b1*&Ę讆+ r/ c+Q_>VH㪺P?-u 8k^WpQpK3+3KKTI8%SGaۿ:e6_+ Z4/U]h*◩0OafGUMGŃͱ(ZTTF 0* +}֛bYTOPQ-H`y-S|RjubVUf[A(Q%\&flť\񑯪6p_5ϽC>}$#ѧ+sheP29ˆ9IMsӫ^a 9nuD3#RhNQ$z$95l!wL33ak>"[q(pVHՔ[z(.N;խyYQnmYOBw8-AmouJvSzm ֒ /2v b:ׄÊ5}\ ?΂f={1|f gy0)1s^J55n՚:,v*뜞V3Y7)S.1spY,0(̘hK͊7*ӫ)dKos^8YUf'z&ʧM~ sUUJĚlaD>wO !8$͛#d~ay KŐeV + +6bWֽ8+C*,TKMbiy^ /&ImsSK[ ',}7kP#(f$&xr[y2-(3.'T,08ІnK2B"N$'V>8qsqBHDC'/OTvFbE5dN ny ߔ3r{arWPm6l5D]s?҅qS}+ 7Bf +"pke_:bwDkM2AiLn˧5|L0-TvДjnra nӋK++gǕMC͛F9{NuSImc$n.df?{o>{u*ozxrAن NwBnm/g/l?r>gFoa +tcltfvKY=oX~E]=y|,}>rYҝw7ss5u'~<`,7{l`w碡g'W:'w%'fMGJ7N~n `g=n 3}_qx<0<`ᝇʻ'ЉͳX$2gW6oW[7_Uh NHlD|?lrM#`ӪlgI+s>a܊ϯ|sx>Vb~yӧl~s{Prl3񐆕76!%# ̛EaKX WWTKo;?߼ܠy1gA^-X9ؿ10w;?w }d/q<6韾g\Zu'9ҁ~A?acnO]~fׯ_|-J`~[vKkkO?hkef[ޟy$,_sϴlϯ^?+ł\??_Miߝ6j^&2'{>MYyF5=좙Ǖa?GfcU= r.5M'6O[gn}$cƍ$V1ڦճ~v{Hf '67lN +MsȔ zulڰߺ5{_lj>w fχ/msYbwKIw7O˳2 +Op'95SIV9NHL(;Dߋ|,VQ[?oDz_3kʲ"U"լVv3ͯfosMrOg'9[bg̱Om]3䮔 J +z>T3~#<||K/KG{78?|-dd}Ȍ}&m~Qf3:_rsݲ[vkr\*4Of-͗rK7͓Sr9KNUةuST:UNނ;v~\3!gyt +LOΟ&5&̱fK_?Pحskݲs*׭ŸSenǝY6VluG!-V;SN[qS~ҩ>Q_c7cG; +T_̟UuGPuokP[9/Le ;BrjzmS>aO'ݭg!su!wWٙ9D9I†̉kacNmG +ֻ 4r*SޖN]3g} J8s}-)]=ʡ;+vh[fcezdCRIu6Jܷɭn<[e17{خ]vۈEܬWo\Ujj2SYGͮVmm+U~-@^X_b4ǎ+nm[-})#\ש>h(ש?[y4ʢy;8:[TG=ua3gr3}ӑcf"|BA*Ӽw[5LCޡ_+sf_22si̡`~yzyo8iÉD?[39"0+t̸=ҷhgiy%rQ/ZQ}żs>s@gkQ˒Wl1~+cY^JsNkk_22l=CW+HV[!rT'@c/|zDw׿[26Oi(Cd{0 謽sO/Cyᷖ2WQu{]ע?"Jж)[V((tJ6]~LZZX2|#~'Hilfzlv-Az}SzfvyM͊|Hoz@zwWb~ۗgzK> l#9Jf|<۽NeC[MWʳCrn[Vlh-*N9kS_kΡ7-pܔnF_7}] 9сtKm(ȼoMƵCN1!/Z'y%ѓ+ 3_}50tZr5v"mmw|:gBka,g'maF< Ȗo_OX>fy{#xz&bjo<( _I sw¥,T$,k0I2t <c;|o.u գ֣Kr 'A}5(<JzZI/ń[if/%Ё 6t*똓uhшmmMPuуf: wcy"~FiL_Cg2WBXzr m3ȍnj+C`'2j3h%aQcngF+86œ3KRs,3>1`.??Ü f~fI7R!/ZjQe ӯ "K8D|3طp?ĄX*/[43suY n! j~s;?g-d/'?~mdFBRW %&Y*K`GsZգuW[E[ac(n MOcK`ďu{,P!"vkOȉgr:Y +[ W\a[ {\A.:oaSx1 4oe= 0tv ?1=#s^{ X'V@"mR1xuM08$LױXxj !79eW'^|Au"@̢Μīm5:&+d.j竸Wg::f4/wC^m^")rgVsNp4>e`𬓫p=GDl#fa~}iUk{{5[%%u{=%܋3Ϭ^[U"nzةV ҨYQTrkPcTߕ9&;ɔg ܐ +oك5졛Ϯh/bth(8K +[u<-\ezf/g^66/b~9GwmXТh5yfSF~C5DNK|F.~%rnű.x‹y(k 甽}z(EJdpo>׌ep?}3w[o08L)GwΣcp [`pb2JZ@d/>c;ȥ'KsT__t?H΄t{h$a{ Nܑⱃ96:Q -[[ojq)Ma r!F^={ +*lu)Ma+q\C??=3wܙ,ׄoݚ[K¦ULCُdںW뇭|G9TV8UnY[C܊B&:o9*ǭcz DUEa55;,ZS9Z1oMv%g&iNK{ΘZ" E/Q0_#WL9!w׵S>@!2\o\tNIg>ǕG;3Kf͚v 3L1-?S~-ȼwl>tS~LoQ,PfY'K"7Kisܹf>;'{QuT+<,̅f!&MpHclnE;LMw]]lWv6)JQtj-Zt6]X$!²a}׫_%(Eyb,SُV+t[cF2=+\,TULnvk9oǗe2>:jP6#7ΑW2.?>n~tgH1T*Zh ̈́\ㄤBR9H)ڼڔeg[^ϱ +S}PGl~ɓ?`dlHs PѴ_X +C5 fUȺd:pnk b->M%TdqШ#\uy e PR9DgDIŗ v4(dqhQFY-0 +z#P0~dqT")' +HNVMOXQ!#;xMj;v;Mx̶Rݽc&Cp) O4} ;:}"\:u0~_zSҧoHs :\B]KQ(6KgDz;OD:[0dz0zj fG+Ti0<R:D:trW\Z:'M{.!RST/z; +C I]]n׳+€<` /igXXɭ1GI&\2.l_Ma܁ \0U,VI5^x? rﶏtl~?GIߩ7Ԙ ?.@ntKF Jy`ѠuC*9Z x ^=VosWۀALpg?~")`#{zY&mBDXT+3A:3Њ,g Qհ Si[PٚJAVKMQyqZ.:!a׌d.=[2fBN;tqvAtIw:6~^"bɺ"/ɀ8nG*~"YvR3b):**%(Y?EJΜ ^ⷽ"^_ʆ`Ƃ|mԂrCcfj*ܐ$%ת}vn00fLeFޭ AԠd,IHX:e Iɻw~g A=;&OvqB[yn8M3p͆#plƊOXePsӵǀ.LV/۱w_ȁ`?٧.?ɽ.B3{͛V|߃ߡmX3K;`dpǸ;<)-FG]KЀ4H?3Rxj=pB%;8@I4pSyt_SVP?O( ۩ ~B3|U$Ю+A˕B3uXa>@F4'x2m w8iŊ FM w_UK~+|u&xὢEF.>&n9VvD&u ܴ%]{G`Zrr@bgM v[P8Y:g}80@FG.IN 8(ѐBAcGK֔PT2zn%۩ЅMѡtOe}[=]\^K+C.?3s,(-EK(f Q8L=^,nנ[\tN?V=X|𽧁`ϬKCeխeg*9 cOvفQ ʺЦ:"KqYfhъ%DsmmۜV@G(НStKORix.㮁8z):gO3ʍoЛMoȞpdGnr#Kqn_ +Pzޗt n:VFǜy XÕvM*dv,G9aZɜ JF)^_+?xngQKiBɻP " +hWpR덿~\$H0wl`uug0s3&Ct";%:A9M_M5-#R E,kc F:Щ?٠d{IU.P]PTHrwy$'ۖus^ 2OrȓiWZѬ]{\}W!Hy dاt 87M"B ƢÚ>}OwLqkHcD_=b_- Qq+L(nK(P5n\}kN3YRb".ڡe}S*7Fs`VpM#Zuq?\B$WG$ WߔU2Wd:f] =k ^X4G!1P3%薖FkGVRFt:Uex'D-Of:7:M-s 8VkIԥ< pK&f]i qcERrw 2{k:@4a +&a ޺D;_˹p X*!|hʺ"kݣfyYUzf"񜌳3QYS }'ߙ1Sa73D>T  WI2 )c&B 1"`W]4'zT߰Ϙ$ G3?_?_qcJ&5J$.-}2;Nf}ӽv\}$Ŋ9gjl>\Ś6 _5.,!-bI`!G-=|oi㹸/^9F)&;&mn>ɤ9am$sB$6ٯ Ʈ&~~<ɟ?ޗI&,.Y9)fEҶ| 222I%I/x-i\t^Y`7cI !!Y"NڪsCAT9g^2; hh4׼P9.J<oT9w@}FzU +\x@rdT2$F5\g KI9?akࣺ;F 3N{5iIk-EfxYm^z0m,ݵ[S% MZX#d5¡DJ$ CO bK{ιw߼7#N?4>9瞏 .[gB=4(|TAQJ:7S) ԀЛ*j X.8@`5(c=;MgNDI:^΢Kh+e6lye6<4.{U.ԙ6'h/v\؇ @Ѳ2(d?7u H^G0_;d[X \IAHChOiT5;[?<d_(fqDr{(W3f,{eFPHYY߲|=GP단4HCwrUZnlC)- yQO!M4-c3zg`sc_ 8U@J|oA~3%fJT7zÔ)7So&o~77177&mL77Yo3 2FC5|o&oM7z=I':hqbsoր`Ξ;xMop^9z{Ό. x oto3ff*)7I=ɔ)7̫L 3 C +F9+0C + ۤ|$:h*fCb鉸W74VhݨfFFm9B,YHD֧L/?mЯac;(X[ō. +U6̙J0g + L%3Kss;3e0g`/8 +n`,̙J0g-f,i)3`V"_y\C^sf;8u吙!3SBf&Afު8Mx T]\φˮ"m2uß4&2ӆLC\66\?A,`e|*J~;<1YEJqi;zAzVil[izfQ~O;/ /eNϘ"a9{-܌qKL*z?'sюg ͒`x1BMD9~F:_iބMzx槧*Xf]١&}~=M3OSoDbӇ˧|Eޛ@luJ k 󫜄Z+xyys_P&O s\Z '-~nAu$h/BtyXvϜg<P&}j%3j-7gT>@t*;b(ao; ll,.,){JG%ilߠ6* SVGǡڼ<6&̺=. =Pb@(9']|d%<4dN +,).mD +\GS<=oΪ2NɊ6٫v+NZ7%笨x iV dKa=Vhh;f;0ɲ,+ ֔e3O S.,L>uyZ6un-\D(b&VL~sطv}Dr. +,1`("<TgN{Kmh^TULE1?^-؁ +ReNG0wNEȐzL ܒ +6r{/S"y M{{sM k +sZ yo_injapb#sVdpw<^0(a|!0(a|!wP#}wP__0dw0dSe|!{+)AqK pR;)E; 5aC; + %axƵ̐zˆ;W0|Aѳߏ?(*rGϒ[ڒ 3ad OLd 1ww^ݨY0 +<0e,sa2XAC`~0KF!cƂ›w +#3 +v + +#}B<-C}Σ@!1'ziX1)c +{n_| Kē/Dl7`FGrMp/zdj?_V1U"^!b8&/(͸_ rƌ/p)[\/luk*%Wu1$B:CUZ.9<w2i48CX̛>!&Q&tqęH#'%ЛD'iZNn +U (0 LSdLڴdX z+L!3^*@J]Ln'T%;Ff0 ;aKU]"vndq|W(B:-N%c!u{ o/yOf)hdF!'4-\G- +A<}>K4bNjSoO_s"4*Ƚp XF¹Zd$ WF( uY6HYo8xAҼ;Kv~¡\F[qPK%ݣ"RA5,%BOҼK'7M~ժ+,€' p+W`m/pxI/́ه)4ɁهB?́<r8;|@h ƻ( rQ0lwXX;aѿ0Qh9\.Q +{ +1`H828qyk\ 2 yag 8Y*J=ǧN:t!T +JcO>RHODE[ӲZvޚa+OxDf ;`ÃuwuOˬW=_{T)N$e=`he{M8e=Ϋ¥p֏&;yiK^$ D $_+RYLҩPˡ=˨ /IŘ}΂*)9150da1%0&#1wW^gD%|[*&- ŀAA,|lzC+C3(C~QJ\w%$]sqj}]j^ݧjS4)h0` &gyp~{t%?Y>lEOTZU%k|]}I2 cN 9pM8“ E1$]~.g|ȣ4+kGt +(`C"`D:*;i-]#VQm=:}Xr$EW\S-'fIeuHVN￷xT3~="#[eи{2- RhWHR4m2d#wI@삋ٴZQAĀwB~;8ü 2/m) +deh v!+8-uX%2uR[,@Z b@ +]RR{Az4Z^NшEjmE{!w-!GD?$*59a|ښ Ș)讫_h5|]GJ*/]u9oMj-Ӭ-6vҊpWj^zk^g ˕&-,i~R]YT"}zS'>/ id]ՇSuD&CNhWmU4li6[,&.ODo{)$+$/Ϝ;5~sĪniv&B <̵[T=K6ܙ[9YQWrcnl2kSQw~Ӷ7T]0V';(tTOwczoVO7t]:W9nNwc=%Zzs[aqʪѣBL_9~E-Q77kf^]ar5UT+SW&W_/3%~eU삺W_^ta1PVwǨjTKZ:2+&YtA{!Vbez!VbYRx4X+%bN%Dq#UߓHY'dkN.Si^-lYdje /1 +%ye*AiYf RiUR^F,ʻN.SʝZb$B)N1\:N)հpqJ+N1qi̦pٴ\fE ?+ţ""Zn{`TV́# d2b2N)`T+PLr6ZĨL 2 ¨VADAsRݖ&Ul,)[v p+=/ԋ%~-ʜRۯCzUUM]]վ/MkGd۫Jw2J*ګWCM߻\UZ׼=rǯ/T B? *i_/.;R%_>-šO{SO[Oi]J8P+RD)'%?d}?DMESNt;kdH3GNUStdDѣ"-/ -u|V-[NMeD'[N9/O=sz''@O~SEdy-EGO3L<!Yk0cDА<z4|V|?l,+YK n찫jc=XMy TúvH!qi|S2jQΣa'[e\#غNl(Bî,(_UMNsHV yq nPhpG!K+cN~ .͏"GɏH1~D?@U w_t,_ЧZ%ϱh_Q(RzADQ'.HZ1/tNJxϟVKnLBqM1F_S%uj)U[4TgX6 Uk/SYfg'jR^ff럟*׬ε_X.fcc,1*M,zZݎ=nzeA9{Ƙ+5B6x3WT${ocHWdOuE|+bWn !?M 6}jE U |6UA _ F9&}۲rN iQ;wYL6ج#r!۫f]VjZKdL6 Ȇ VN+ M>GoV}nwU=QF_r(@B)jsoƱf#^ɺ +ɱ)_Ns3qARjS*&72Ng@hp]aaP:3A8;S 6GiCTW[6{<]Z%AU6m;S+t\٠1Ϻy邱vYc61oS9pP>RWJyЍ~i1ح:J%< }lAjL%|\qA!`ͲTZU^;eIy%^y׿a:uhGׯ0TMZUqu^)ٷ +IZJy-b +N$k%=[mC9]_ZYK7Z}zJe RqcB+ (_@q"_`}j.|Zxz{* <_`|)_@|ƋɊ4eCVdϪÑ/0D| /P+0MVxWyswoa. +򮔢'XDX%6@}r5vT@Ê˝ Q\nE |R +WrEr]ՁH2LnxUFqFRN#1TT0B^ݼE/"N^D\UmrVb@=A Y 'bL )\ċSC +Bk!C Mi0`! EC 0Rf!L(Q&DB`:E[: %mпwVyV%$%)ЁSTֵ(n:ƉN9V9]x8t+ +9);)TQ~'[QbV@؀نBV_ǝZuwlҬ ;cD9֛i?9tXX۾_LZCS(Ө _]=|v*r~ɶ~KdéåM7T~Ȋ2X3S! )uW NHF[#4W-msҶ8ՠIj WIgu Yk + +~L#,‹u+f{dRk5[.^=z4Ջ.T{Q=R'ՋF栺_a:0 Qpg/~¹3^32΄KxHm(v؁:}e\ +}WT?6IE՛MTT}]repQ6DԊעN-W=m[kMWEgRsΊ OLJ=V}Ja[=WFz0d#z*t*V6,im_* +C4Sey~.KC4v͋(̫>|}~3_$X3v7buc5*x5f*HTayUS1x*‚Of^Qiؕz7ӄw.jQAVmYG!֌2fOwS+p[?8z"//6?kW:]v{]eXy50(ҋ)֧:_:㈳?|M+ץeg-KʾtN~.弄 [k:ex&/ 3&DiQ˵7{=*nw|rF(xU**z`,ZBz9(+d!Bb;jIl"Kg pq% f%\zB"6n!N墊kזd ';Of\׆Jғ̂>0kD-O=PF >1k~2''T&*u"޳u&l{UT1m1J: =fV*Ԡe)VS9>8S*眇R\*SdSoNLǧAñdѲjg>erF*40(9S(n{H#Nv!Nu44H:* +v_kD>#pk(A7Ra5ZNg tF +V"KҢ -X0%\.sineąPuU벌&S5R̄ sЯ@??l Y +Z`~y+PfPeZBՋBBm YlQc=BBՅ-<Ů@zD]T)}mu{ڂ'[X *-_Ǩz6 OpE܈*zN_HS{BpG`i4hV ~.ݹrKo);<śyox3oIx3/<ٷ71:Ff:p?_=F?dN͘.^=L +6lqw&K7F:z.MڍH8txڅɃͼuͼle`3oO6"ؤktur6//#2̗6f^İ@^1nAq >z2n^2gg4 wagy=~ -ß." (Gʉ1C! O8zUc-.~?gOϟJ=GWFz6ٮ -fo5\55 hǢ@ϣ~oS*WPuw*(yŸs3`}`C|mP]|88"p)]ß;6zwC8s8gnOKH{v==F$ +//"^(KќXd9"^>7ެx\zzC\̭4~b +Y gOaHw)8 +iD~!ʚl.xapk$ض6OCZ*UuMo6ҫ UHuPvIa..I[ sFפ,sĘo$)?!6p +>PUſy{픯Zo'K8O0.GGނE1Ϲp^hp':ڡ 8/Wk |mpkG\ݞ+IQVRɶbT +X.yؚ"ruf-\݄e"Wf7_brMa8:% (:Zdxf2^tz$B#Zlf~hRW,khK@Wǵ7|GͼaȠ;/n:I.xg>woeWmPm8ooC߆-JPm Đ7=F)6tOn5Ȝ鈚?;c M}O, o83y8jlv_%4Q!2QPG@QL74Á? +NF4 ;@B} j +4 i0BPb3aC bQU E1ǿ(j0Dq.=\ N4ȡSA"Wʩ9Kބrq^.jr +I$ 0wqyyD)dCw1d\JdsCx/k hx +x=0AJ} #_5Xڭj"+լ"Y) $OM$g-Q=>hs.M!ԥCHj*NKPm2?D;Ƅ 08@`M[ r~tIh8(U; 0&'>eKl >|ʏGx䣗VX?If57a)JF/sf<K2OMe8T3GzIS_~RHtz%ye<+zq/' ӕB/<4B}xHnx^=svF#izy^Rex|=Rթ}b`Gh7qzQdABAj z=|㲷5~qGq㻗7#bO=ǿA൝3Vs<2xG&/3<̃gCφ +x6&& S{,vU~-z>t:~lU߃a3ZZZx[ձ_߫x4v}YOhRXxK?\U/m4߶xa ҍT?Wa}5%٪zbT96lR> Ubx^ӏ\cRH7&f5U0l9pdP2qGYlD;1 8>ƠE3 &Vxϐ5U}lQ|d;^Zգm,Ģ},ޔ<[#oAh_#zUX!_^[VΎ KjڶߔIjW뢇kgE[kWjv+u˴h׆ðDWlfϙqd* ǀe;+OO@+LԜюX:ֆ5T,OXTv73>.<n OaAcM,vHԎ!@/?COM0XIM>[ڱڛ9+ C+jo'cE3+}uˑȺN*&/wqoU_+?Z_N뫏EУM=|Bf,,W_WI +2.֔ ޵;XG4qH'nc)XAśX젞hWX Mo¢a]q2}u !گ Ka@ژPݪX'\n(/`{V\t;5ovʴ.XM`I13hgD8tFhZp7DC *A-zeWԗ~m٨ͻQ_ ҿ>Nu%=2C ڲ۵9Z7t/4%Y&+$ߏjkDp-^[7 +#7C/mV52Ȩ]꟤+d1`lP.g+נ.*.i-zWXǟlb/>mV7mGV'{>|K']k~ +O{$5ZzPY}E+y_~i/JnV~Zi%JrHW:ޯE;:?Ov9|EaWEL.+ +$ (phWrg(La~dи8Oj,hNkO׌$ǵm7P4e~7[gno扪oJ}k0MɌjlLVAX"C.X%QDQc0() =% +8Mx^?*pjk [Vcn{6EqC{FS?D@08J@r=1+w_TV= +T?L֌jmp >B5ySԌlyݬdkymǑ&d ˱0ơ'1D씞p)pJ=@SCSѣU?Ɵy=V3ÑL.\;.p TXes}GnZY{~!)׻㣩| +`#'uڙа>!vzy iIඣ ,r:%1X=rg쓁aV:?jgR [8kv[b]A r(Y3WKw[?fFۺU?|Wua{ekr IE¶KbE$%h|"6]$&v+Q>~*2p],@Հ̀O-OQ? +$uHd 9 ,1]ǖԜ +4|q÷4k#Eb$xUfRaTu@`+@H`G3@m Gnh%|ێG~H3Uv{葍$VI&W!EnBMbC qg` Io}=2FGY# ̖Qer`> HA +Co08+&ԶK"KJ}g\e*zd8̀Ⱦj2@~Lf>e8ù?( -qjE-[dh&_+ONoo0Fȋ?*UP"(p 2ozv@-\j;xD18䄶u1 UihIbdKC]s\ oy?z5ar]`ym[XsI,RdG=";G'b##O}~[L)(QbtA D 9רi/> ]QG L/}Bz# բ+Kɖ pm@LD>şl;$6U85TtIs,w+aXהHESAw&&Pa|*+@d?p:8po`:DDG$:e.Jo닁E[*Ï*`yH |)T~/ cȥPJ\%]_l{/rq:3Ĺg ~sBV Ȕ,|sI"Rs# ,W>.켈#Ox%$}/!h Lzf/(1|߾p[>#|p@?6?N:;,CR>A';Er:֧?sGˀs~ tPP UF ZdX(X.9#^Ї5}- +eH\@xn# zwnW|# :EKAy͇A΢s +)\h c+v=ZB_$.|YDaھ ;ۣx=:џSO ܹ#ؕ|~Oc .gw7T]Y$LceSM_ff׷5[r 5z"EAkBu/WuT>rHUW] %#E[`-z8o$>!k],6T箇c=\w^U.@'QcdO;qgb$@ v|CKTrH lS~hm(8&6f>*>y-^N&ptw|&} K,r2 +!5&e! :^"aX:>0ś{ ExE!}r# aQ·v ^MPRg?yAj 'O}.vwzM?A05}UCN< Et3TS>=jBp +qO4,цh6jmDDlD3|[UigZI2}p {7crpi+6o#He_>.PMw(ʢ{C,>mbhϸ89:!,{Ji C:!%y +uL hq\Ш2gsxؓsd54)~G<.D8ϱۗΟApctG:*>8"[?WD&1/&L<5ʜ*=y??B;jVӂy ,f@M0Ec@}Cc,ާe>o>NFPh}^Z~WjkQxn ̙?A/Z??"'.`̅;BPDHD|[AGb~ ׁQ[av5Kl5w'*r(  A>Is}m_xn`qwZE'M"Eb&0cE7lhZO2O ٱ/ 2x->W x +^myP?$OwXtO | i  +;R<sHsgܙ&?p<|ߙ8N&KTqŁ\6&\3~sYNYh,|@n@ +t: `:R LsJH &V;&9;׋eOxX )BP[я@7j])$&%eGm + 18e|h4 ͹; a-N B CTۇ`O;} +oײD`e6[Z–/:X،䫑\X epofjVbLեRϣׯW;`DM~ũ7BHJHk84_4ފ3yZ׋1.r kovˆLPU~fbC{t9rzUWLF|nV|r+iV5҇8J&8<H׺) E0zlE]$mP~(QBf`zxeG7gJ]ly@o>Sx[֛J=F Ε'j>@)5a׬Qnя.l9̏ݡ[04,ؘ=j|"9KnH>>A-/ v/.i:8/Ӽȱ .0?_FVSoލclE]UBQ0QYف8F@T Y36Rc&33K$43èkr^_FtXE= U4u|P\%:6[1b&|ww#f>8B{>wOzqwĒPך~-? Ņ>Ia?/G]J^*ڵk a H:†,e8Dd\f`~[KU#;fØj(@̿np2 ~j.oOLZ˨'Q5pLOz4 +~{H]Ie$X#~w^Sbx5qQhǴqN':=J}S4ߌl}=K=KGU4Q?X#>\h?I³aI|ۃEP#CZg2 }l1ȇ^|Ce@͡e]G;|.I> J2ԏCk[&$]ZtdxQjxHxS:85Er GʮEv-*su \i,Wkp'Iڟ%IއX[)X"إHt(C ϑ~m7M 9%`퓥+S~LXzXPV}}ȑBҲвz7P!AuRdCUڂa+ʬ_$C;}7tݡ׾kt6vfps}.b9dT%^ {lX_rwG0~4@TK^sWAnc~k;O][WG~Ed3NB([0 &Y",yL ez^_[r~KpJ@ +zlab %YRxtG7dG>9T?ހ/{/&OR"l;>eCx%*1AInϗ/Ò, xGG_ذ45Ha!xϠ¹ε1M*Rށ49o!Z~d+vtU)㿹FN'́(@"Ŗ-8hC5!$$*OqZkJimr/}#3$EDV,W5xy)Iu1mP[~eBgs.?ҝC7یW/?#}E%&Tzke*npR7J\Bt)D~J݃Dnl,K?Qxs~իyyE`ۉ."Țd^[ҷZk_t)L޳DaoEL5q8$NnJx~@^\r_"`+h{/zP9815ܟ .L]}+_q?mLZN$mNLJ aFӧbf+6qرO^"Mð/b{nwsX\ͮwL,ߦ}nWZXHnk=7Nl⪻90qvu~ߑ&__u(vAZܔ}qEmï޼1P(~;rr_ ĨI!t [17:-'ˋt++b&9dE*9-I(uې:!304;AwM4uG;АyGF͙}T'y ҝoTwBzέF$ڛ%TWVv}&~ZȾPDyFEe v9V8.ë0BXo}[w3Sv&e#G5&9{@&F{?<s +=I˹0|&Lj \`XԞ1hgQ176^Iu&껻Qiŏpttn^1 0Z8߫ C*Wm2|/"Jp;%ʍp'[\D]ƩXs8n.\Kw?%Y=eb+!phUwAE#0?Z¯3cG"1!Rρ"ԣ@9 y/#R^F"Nk&xK}DEŏoVho9zXV9 nJԕOj"?E"\wDƟta:!7N?YOrg]Y{,,\'uף+q H/TlNHb}bÙs;ub b$EfHJ0U}=~A8FO`7t <.C^ t3 <>dQi>D&H{DaȚ<&"hl4X?p^  ?~|XMs;h-_1oן@8CE2ڝKqYx`itx^u&s_tϧ2,WؘCw#mEsw?}D+1g9gu%InQ||HƊ-B9n_BX p2mEA,zw:d Cw:h|z@^ NJ`efpUc7$ArH2m/N+ ag + V^|+g[Ы!Wκ67x2(B[]qw +7[bX~Bbmhx&z}[%~DE`QRM;#&ٰA($_X4DEpf|.yIt(,Tt_a$CBDL;7^հg2n W{Fj\WQ\մ0zȃIL6u `/<9r?[7 +HoA]/kDb+"\6;wѸ'Z~Ivrhf#iMO^yۜV9ϩN&|vFdG ɄĎ'VĎs=Q퓕76ɽn/A{;cW{Gx5]RFD@n3 lǻ9?^~Ym]Od2YJw">~8' K"MG9_ gtIo%KOyoڊ2I;v8W~ +'(YZgf,ؿL)tsK,j1GP4sFNw2_9LeMpcɦ 6ulA 7!Jߵcf[HpEY-#Z>-?MpYP ϬI>pMn>/i拄뗕OFIGo+ݤ~nD8$>.r{*5!$ʖh5؀l!b硎gCI CNѪs I(OP:Wn.܀/֥/uojJQpYI.!L1 HI>VՑH Ӆ`zW#AL$:fj{cR:&Fc4"P~EQV@Ø0( s 0x33P7{*_1a5(xYv{ӨGkd޿ +hB;jK0Ԕ [9" h!# cH^/-^.ge5 @`r&^r>Bڤ +a\j$" zȖ;8Ge dpYX9?o^Z_}E4^8x۶ ̺"-TS$JHtHpã +wszPtR9/ZiUWH \RvB01Gclmd +}S循8L22t91oԭS>S!qtfo;0TnK|Jꉮ[8N56O O[-,3-ԋ?{ϴw >`_x[ݏ8G,nG?\͓a+XFϊ4B[E^ew++ n;?x>/\^MͷoW?">zL,s}Rz(d%⟶M7`r%[Hz>x~!FFmo/:Ʊ^(1ǧٶ| #wޏcOFx  XVXF m#2db6@#g'Z,oBׯ?b}Y߳d3l &d/";~;D030O&ۑ`ۼW9;@_ޅxoN]H]@~o0<#@+68 X~p©A}̫~նᗏRuח;BL6 +H9E<@k&A;>#H].6<7SRCNf;XKXKxGo8f֖#Dp;&:X=%^2Tu|#)!b1SC7:"/ˆ ͇<}@| :}0:]^,rU_|zdlZv|*]RXs`sey3q (c;Ѣ?4j{#{ͧh3U_`ݯ;7k%6nbQ,GVHu٣ɐF rt +;z>¯AbV|UA fUȇYUì0[ͪթvĢ bib?&: >Ofg a&||;6&Tl@tc +˽05o\;]l[ȋ}㭛[]n?޾z}&<hhpK]^~4ҝ|J0"_f{-Б鑙P)^/9+A-xW_ ~W*S]K?j~4rIjŗ'|ח_*YOQd^ +c^.DJRR=U41;+uq)> +kn?EI] 3I GԾ(fΫœGCi""KrUgۧJLrثlLYȕ𾕲|,sAXLG#T89~)L9= a۪֨2Xbwm;\\зu#/d^; [ySW$v%dfjc,Q&R>L@%s{3? 5$^ \ޞJwh E%w"!/^rijpT5ɋM`2Ekէnp%LX> O}x +7SlvC} eU!iEn~29΅Qg"r,v $Zv쒣f"L֪`!uڇ:B.A^~ca[\4ww3u:lt71~@kD"+ >GۇJܤTNB"ʋZ?OܫN.&$׋%N|3׷tSmNCgb5`-~צRb[AO\ў+4#:xrWWBA_[CVHc|5 5,E-wcO26z[]`ӈA;Nչ[Ɵ3[^XooHVJD^&OΛԤo30B9żnN$/<, ^HJўy( ԑ!!_!h:/ԙٗɼ3o("9S}oWʋ,nv,ZԹT{908 [Ժx=R-љ-&s-:ʾY?8ԉ񧎏?uLjFt-pU>oDOBW9(B¨c,=R)_B- +ygn³ZߪB0tG;I&O| TOWm)mw_QG߆ki mKbU̙+v>>/ g +wGʮ/w˰+'JK+afHeoR+;+asu7>l3]"HFwUe}"BݵTWtKP$t!+bC=kFn?!le5Y$76F+mq5/AdNog_/嗘wb)\BWԚq<(zRt_=iU`bs0U~%; +: +6o}:O0< +Q۪kVU^ؗ^"Rjn;[՜cr߮z'Kӷ:o/t17)Wb&RX]^ +\Ns@,/xO:#8<˰v\&6rs=3WB6Q/M2ka #6!>? +ݵ)c~vJͶB|n#h^ܤ.jwx5_Rպ{jͪ߯ _}| _}|_ +ZjZy11tC `2nNZ{BO6 ׅrTݫruz04]" |vu|iV(AjuL)Efmya鶠YJu<߻ǥm;j)Z m[#=g %ph= bckXyrЄH9]pP_iq!OϷ~Cp.~ 4(y̗_EUL*>$|rS |rpkcz>( OOXF(dŨʊ+EO\*Oy)O!'2ay <{x]ϼv7zT))87~HMSjqZSv]Ax%l/3w1BF"qI_UIʛᓐ7KwNݭ' GƜ+VYϬ6:{G7"E̛@`21 |;GcdF:|MHksƝvL.׭cˑa G7ʟ]Vlw7jP b顳-}]m9"2qʟ |=>ه +-(9/P8B%*i^I`o?+_?|';`۷KVHdwT>9rJ،!#?I;%#wT4ZCA7 + +bd`bE8=9_t&?~\ʏ*9: +B-!/D G ӟ*رkiEH'? EJ揌æ.Ru+a9i6y.HDunN6ЪP;-bRټ+|HKߖZ:w]HP;w^P넫ՙky!|r"$UD)*( ISX R>U)о/+>)2, h+Hö֎8 :vcBJRd@V&Cgb_t5I@_o3ޫmuoX6璉)jm-dij-gǿˋӍu 8~DD|'7/" _K齃Hq-21XGHq;fTx«g7U2-ȼ+vrVGN@ie5nl?L0W|QW%18H%VX/s_w a~e :gG +,wV`UDa}g.n +\EL(o덜 |/֍ҴT,Hc3љb=%ȳ"6CB\yۘ(17d#UQެ9tǼWxhݏ|VF&Ò1͹TwVڂE""S݇bo>f?F#ˮ,9cL;W.t*Rt]Y}D +d=ڿW£nQΌ {۞ +<6?{'D]G6.ω_ğ_L.=%KHĀEd ??fcCqR5 {C FWMNy4 W~"Խ|k]VK /#9NgȅSI<1\GAxIE >C^/7|QB)X/8 Xf \bMF6D@>Bۙ#ĶYx/=û@>8}P2nyX9/B><1 aSPOXr'owY!&D\(SFq4q u85Lk mj^AK5ao$e,%|?>vyYiiw!h4Sa:> >w W@5 +>|6"ލ>=CkA@Xr[b|1$7#cOd46@V(V\Q qքӏY'#~e;z RP+x /v&? $bd"%Vz?:G1\y s,]%8"DPs]4jGOx(bajDiK'?PN$ohko;v[)]B|Ef# +-Moo<.%3ZOGo[5:]DZ"ˮH\egf]&}} )49#zBLag:}hq! (1w[o tuT'>

i8^zUHmvĥd{pu# +n5sRb[A~m'Y>1iIaXfEv^S0-7ZO>g2GUc jf<HBZ(Xd{3"(賡R"&W{J*Ae^x>b߶& p*"y]i׼s76~Si0R+3*][ѡt[؜F$}b(5*A$TyP@krɎGEodENSqcɼT2VACiN78 LJ6RːPJDžg'TP'Fgpc1H$+ǀg x Qo۲ѶensVh?GAVd"*)<>1^A짣F޼GM(nݽhҞ2>%OIy0?#q +M2koN@}BOC>۟?Z+?u}Z?vg[I-(jkI V+o:-^p>KMD!Ȉd惴!cx +)mZ  Jlm> + e:]n?3;KP|Y]`^C_0xx6>l&b:R;O|Rbob S~VyM՘P"JGCfn5BpATdoQpňez.[f!U>kCS~f4@Pbc"?|? RO :/qax91A} 0p`Oؼ/ʘM +YHf5cX9J\Cyͫds{; +I)G aE(}? M$;]Fu8˄Oyx ɝJʻUm fƅEBm]ʤjœE +]{ڧr-񩪮'~&$lmCLq~gofd$SuƌKOݓn +]2`aŢ}VFtcɃ}2kˌt:-uKj\4!wQ8Z#AIvUa&q)`b w?K"HoÝ@/$bdt=3\sq$9U{T媤ڱ9^t䃃UW :iѕxe?~7~\>WpO|6e#^5i&挞^LFݽ#U)y(y*:*P*6W8:TUbz*1`25JMMY5rR,X>Z mcn&!Cr:@9R)s%sQ8c~kcko<#3Muz}(5L#Ss|${ 9n,=AWCLC&O!L(Xۭ`eo2֖Xzb Dct:dgF>#ΤۊT5MȦ(!.t6dZw޴.36jZEVxjۓi"CY3nn).\q ]#k}Ix~iGRC&R-c&VKVa^18*s{&]wmU瑟.i:ުHU—QHH,(z)HshQu3 41#WӮzϜLޅOU@7Wd{)L %L)Hd{&sf3<XQ15a'F +V$Hl_x&$Vi$ogN6G%#UzɵLɰqb5w Y{|`Zl%C۴1Jkֻ-|dvBY&G (@:U>~r#hVcmjbY +N͹*~]$QPf]eX)r%z + ).) ] 9d5?oVxgʘTMV޾#Nah*o6 +)B=*sկ:LVYhAկf7;.omN~M3ݱQ/u_~TvNu2c +N JKm5K<>XFuDʏEn[`d-f4ٸPkLcew'ͣ@ sy4c ԙXN%|Wl"n "AJ?vt& YV#1Yy\&RWua0~/,>#_>$3phvM8:qWܔ*~ }$!<~s$DDqM\sXRVi `U}iQkS2r' =F47Qh=45hr0˴?&M-4yV_|tdz4c=#"'g%L`>,Afx5H3k8tH " "ϧPYD)A)(sgZ]9#s,uSQhZ<ݦv5'IQjrZk紹тF-]􊐒hWX+}6MXg#2"v+# +@y0/t̄[W5Y $Hq> Kx&N犑26գqa'ΓKRFd`SU&xmA-[x)SjVʘG謊zo4x6􈡌Ņ%=HIvk6᷽9krb/# GՄ'ۄwK!i\X[,hcU./2,~Ο_k/Dxަ$ET}t}<%ֹa)JHᗇyV]:w'p+'E#iABLz>7] 7"PuUk |Ud/DA ;o}.Hv2_8&yPCs l*3N>]o}`"I|܋7"M9Maܭq&DYQ RO$(0\d~ITnxUepL4 ?jXbt32~ f ~ a.>C +*/X2Tg<\BèsH=,2C>+&?C"DyYXh!í8o{0Y -pw +M UTK|h|(25jyC]jHwx%!.rĻ%mu鞀ݧSWB;]Yŀ&6l>o`7/Y'Qxި@_oU`} +jU@xs*,@~b\1Mʖ:;1K)>Z)/В/$^ʒ{TMдhucz/Z,L_]UO@+B$=ZW5 YY ⺰5)\ E#kI\[ 5QK^eNwߘ!:b (X8KB0/K/14VDYS5&7\ڍ%iLVpΡ;p*O& l1MIi&]KT@j(B+AҪEstT@:Wd!9d\/>5e +Sa)kȹp}{ +q?BŴ6~f@l"E)䃔~d7ǚ/HyN-Ju*//wZnPJ_8pm0 {am63̬g寺̆F/''cչ9jB[ Mc"V8$:ra?5 J 1](q 'ifƫ@DmqOHcMNӚΡB%8'fvr +j/T> "Bb‘yҌA7q؎0X!s$IaI CUiŀ?ΉAEit:PuR+JR+ d7CڼA_BW= +|nz6[g:d[7p0< r$t99l^>z$غ.`eSHvnDH27{ +sS2en8beXn#Uh8gjKn)cCuK%t3ϭFbӎ$a؎2w㪍Z}WU̪SRSA܂6Є +UYɭ[-%dNSbrb骻z9ww8!RZ99zp./Lu!7IC'&ޤ;& ,I]*DLK n\zpʕ^h*^ƃK`R Z1sں^PTK!ݺu +qEo|t#\!TQ*U4Eg'p9+񼺤ת-2n@~o/X9N/ZFު7 ;fx +rca_qN\;ci'ǜէL|X䒹 E\z&֩f7;=H!_@S4}fu=Uun ƇPwDED+bOZ +bb'uzh'szD]L3Gr=aG6Pcx7XvR0hWxSOt/Na.wʣCQ:{w`3ALgE|h.EN.#ő+|Qv 0Mj9& +6W3$U*: \\~*oyE + -uGa`j#> +w)onܛH%/e{Dg%'N݄= +- 7PI%HbLޯKp8P+ʯo: /7L_NO]Ć+Xg7BWl +$܍Z&\lu嚼T#L%lJ9_mp9kjlםnfRfsauֽvG/O2uݢaePo})Ԙ(E-qףBZF^Ĉ!H3 a=ǜĀ|i*u#k{0u2mCK>7{Lg.O:˫FN}Y^$߾feH<\+<,ۇZLX' Oϙ35'ڇ+wkI1Hꈻ`CnRVLgaY +kۛI_'d;MB9"YwLN7W\idp)jr[KZb0re~oTx9BWUU?48}_حQ ^&m%zU55#Ԝ/WQ> cM}ea=2mMA.nX uFSajҫX-vWݜX*zڍs9 eX:+_IQkd04χD,&ͤ)%Dz"l$U`Ԏ][}rv8zVODLG,.v-{/_b߭iE8P|X ~oQ޸827d7ïj ~A>^1~~.GD{osȝGO NQX?2TOQxgel<$ku_)C^g`h4wC%,^u9 Y~9iHlMᱽK!`jHppсsRsZ `ã7rΙIU!0-d]C迉\Gx5v"gmΫ1Jr9-UՋqC1#յ +&;eck_t4JL lpQX3٨\}!T9~I[SbNQnƄPa>+ńFs=Hy]>6Uy@!+k@W@d89W41Y*3f1nd i +lj!UIHyL8 ,`w#}k%E8 +% 4Sl +[AYx0ͭ3"*:SR'MЬBtl4;B$y,2.:=Ո-;ܞnb,c%/UÌ࿋L"s;^1 5Io7g>';l)s ԙͦ.h*MS{5l <2^j 'pι:X87x"1_V3"9Vv@,c/رEc+B<'f:Hěo8.ߞoUWfLn(&i;寜)pKgY^u |&q@_s$SI^u"8rǎ. VL샛VbGMs#Z~ +Ɯ~=||خ_dKi?U9m/U%HJV:by9#ťHl,-RKaܹBB&2oAsBR.nyěFߠ0C.uIHW6Y'b.FlbU]/fѥ3޲Kd*DCkȔҏ?[#h9Ԉع43\_V:;?Ky!3W s ESɥ$J}eA>0~lΜBm!W5XfCxz8 ^uيܣL 8a"9@ݴcyaXV#GNUz}$&MңUtz`AoP)#$۴su8LJh~ #4H~q'@EHA4[xۄS]viX@DgVhِ QĞhȹtMi\${ӰN5U0s/] C`:,_ETD'A@D**6§Z-xNeCY{~_Ɛ>2qUüN5} {t\F/,k9\|2hQHÖjlAw^nN={YP-=x ʎ˥"ubY~qynlX:εFS&وLlAm7=2u>YFAR% ۜToA5SoPv?V{=zٹTDs\ <|6KZk.%$Ri-c&H|-4F/nYcD3ˡ;H QW< `Ғl`kv=dp!{(s7tm1dp &ކmzDc,~C8Soq( smj yPG"$Iދ;aaTɑu]A W$%˳G6K; "I,t;4IąV?OMfMFf7]TX7 jOӍbɴPw Q>̄l-K +=zB`$1;/NԹ<[܆\֓o{<}dS(Knx'2FA@u)h A%_Q͏A]ַl..dvDs6ά֏ +GJq5nmk5{!:7%~* SxC!B62wCP8Df$a#q@ Glo1nqw"jl~hte m2Rnt35<׌OCaC'=CFr, E~o7MbAPPރ&vFѲved$L#yG⨉a 8nojErڝ)bălK_BN)AUs] lD&S|3%Ԉ0mz=A7v([TMy2E. +UhG]ZF/( +5će%8( ရ+άCj/< {O-dmx8g.?B^ά;tB 8q<=Jd63pl\L0ݑie+g6;t07Z^OY5i=n|i$>~Nո' #˽6ƕ^Mr;QspP +M a=IjўHR2 +!Aulz$|2艌hKiF$ВzjuIͳM Pd^`;Ć ?1e^1$[uDW/4^.zI%0E6`wMn mH2yrp2>|RuQ#F0zH"W]1;T 7L#}?&_Е^mWJXVK,"OB:b>} ;ݒ:v}؂WqX_qN!| Yq +lAzLOn66> csI>]Y&׼q&qGb !q*G +';Y TTs&ٯDb#V>+)@z܆68bj3іϢ{AR@m7Żo +,W\_9+) S1Ȥ%fp{L}6ڝ-_;Xk 'oY_kTZ%/H_W@䓗ޯ2T3es/"Dג%^. ̓dh>YٴeTB qUAG9=g?FߚJ̀UVי@Iw~\E&H&#eV^j%^sN@p#z_dhZyuj! PWMiØæ}+aDp 6(QwnIъ]^mun:(pI0m*¸ m:sGFLWTkیE*!Lx\KO:8\xB%fB5Ю/9I{}EsE\Ko P^EIp &h6oڂi pǂ!#s +C(8W9׋:i)չ;"֙gy/ZV!U)*lzP`F8]; !\ +w+۰ΔL,KzNzZp.OI3FU +:HL'k_̂uas*cj1XXʡ4wza.ˡAuc2 55Vm3ܢe)^6V#(x:SL Ԗ^MF,}waqR8Wq-qYWv^::1duf<>7ս@a;x}f֨c}kUϷpz,j{KKprSnҌ9 +TOYzR"`O>Ad86Fq + B +жl oXAc^}_nk"<Qn3Ԥ~Kf#´c jL5Lo/eH+uU!Yo7^qXV K+0?$ZIs0 ׾}>`-"3G F8߰df>`XoZ\ŰhMadj +,ɉUXȍto9_#? pv]$,e;Um{ \4H4$n찬Җ:3WE"BNo&4q!Np<]ԝޙqd&9ڍ:>n Yd\۴h'EQh{//2H޴lCf ~Qfn򠮧l"D 4XҔKֳJ3ODMI&anhva*_%}ұ>s PN#P}uM2!1&lsCڪ_ Im[1w>.1d1Ĭ BF { 7O*>] ,Xė6LQGj'OmSyn~f|7DO Ϡ%1if@r%yК'A~@4O(oJ5JK. cΨZfMdfڧF觵٤4z{h)p"oqL6TZgɗL fmLkmLiULbu0g0iU3eMVE\Lte03/MJ4#k +kiZOBj/1ؕs+yi3֐[̧KPoq0|kz_|ikZK+Uף]M!з Jr?!%sB ?mYӇL%EhBigM|T鳦k`ME .KXSԛ5Ei}1kzi,-iϚ%u5| gM}nG,z6 &c^tW2U\#8fodVґ&ny2uvɮFģ5.ޖ-Ū~@Άߘ͙_j +QnS?)xsB{E?С)Il# ' NXJM?_\ z5~pdgf{@h֑sK#N˷n{/]k_='3A犉Oq`& @~zszOS=3Soz}Tb_vX7 3yf:%(A :ᝎF◒;pK?b=2 /YCsnWRAu;L)y?Ts\ALg~J xxn&g&ۺ +Dgr ^]jVܚ6{>}Oxl(ltEuJJ[W謞鿙[k\qQ{~H6nҾ}ӷ=%.n> +۾om1Wv{]go\|Dv}K?Ѣ$e,^7^\_`Ү‚׿4Z~?,/_ ?՜hMGG0xoRLGtG3Ύ3r7ZC{SҬh~(~(}7 &u'n&peΩi^?+x }jNYg צ\[lOY'*]@p͕pD iP]V +գ&ٙx d`+}eUD$"_ǹ*U[0o; `ϙfyE!AE^NsY@ +WyvL40VGe^LRS>nvǻ!>ޟ.Vz?Xj[qSI<6S\ Yhߥ吝.6#y^q$hyH烚 !4Jz9aQ7 WM>#D}UvC ,^?:zbOַD&pHR/(*-`-8V=^x8Fx׿ڀ.zcm<5Zfk(5҅e֕X6lW +db0z8 hq<Lߦb0:p id .ջuRX=fǡɐz[\Fin\/S07=uR'xNn6J!^!=8z-W2wrV6}+WSX|۱}4c_KKh1߇=`G55|$v,}7viutȍh)R?} + ?1B>Acc]JL m!{;F嬾*r⥬طzť%z`/W^p+̽cr{_ { VS< 2h k> 9,ACځ2%LxgY/XۋE$*:B16V$+09CFeeϢe՞xRR_ +|'φJ]SO}ǵE]j{0#X&VTcs=c|6ODM —=b8Dz5ѽ4tɔx0erBtS&R(VmV`,B.*ׄG-%63P~e/ΉMn_=OISL1[M˲i#VFpn[ +fxkskhqY}%0 ]7Xc1Jn+g_->|2~bm oiSu| 1?@PD>y3qTz FkCߜكT*^8557g(?=5SiQğ4v*Njs_E +7D2RD{I|oseF% o\w•cq4<T/:2i*h*̰Qf}kj^.?]Xhs,|iַ""'Q,E8 pc@Y9h?Rd~kjO2\""C̚ϴŋ]4셾"ԫx@d ˜y2DtȊэ6Qh"J#n.K淣0E^ Apf$'d02FPGnڼ7S7xr~dŃX5)j8L)yq h(da8tGEFVv`$Rgz \VT| | F0W t{wҴ6wϏʷ+_yq/nz7KLS`b޵LL?ޯ0]0ǐ!w]ULlj,4.e"]t{i&w 8tU>: =\lhitI_|OePf!P rۊACn-q|`%|f?Ja~Y02U[|i6B¶laD +4 6E:`]٬.h_/*D:odq"i钄aM7 Ҝ4D?oq=:^`+X|۲sV8N%y¹"]!xC`bҪ{j<;w?$sXk̬vXF>\&JrLWIhil.ɮRm|wzO=J.In'lR $ .{M <t[P0 =`LR9|x=̆iPfJ͸˅sK8E%$7MP'28!+xA#,L/q8](%KFE1^:2`f{ȝ} `͵qvXuAn|QsXn\µΖ\fm䴛G b TC;BP,l.= +s@7}J COaJMv;3nr'UrQywK5$',2z),ɮ* I>VoҾ%z:oIq 78Fz_}*lYv#}wbsX +n61:'nK}AIHokɱލw*݃Mr MӎcMO-cqrR91SW&!ɤ]pk(pac\}:d缶q pDSHLjf{>N>/kⲮú?l]QovamIoHr2)X61?1wK6N! 7p2u-0^ǻlIcStXݜ)!7!ѝLF5dg[ gֻ3>ft߆?L!S/=N +첋M^7v`n^%Zn$MH=@^Envzj7nUqEa~-p ~[t%@Uh*湠5и9g<gEy8ܮ;CbM~WՊoVMgQXP߅ /wէܚfMQ(\_K>("%%e\ƫ`oIČws9YDҡ#F0p=tqX+c=B#+*Ϭ+5=€7anmԿO3WriyлE~ 2ǿk?-egӯMퟝB& VTH7~fڮ}q<)V4P-M~ 쿃_D ]%%oC a#,l:]5i_&%.i-'O)HM͌[vFa +N` %Mc}Unh~BxpE׋Ake~R=?=?/ȧ?5ܰ[V Oix;%7HHH"{ʦ_fV6JwV>o|_5`*x3PWyh bLWț?i#tmH-Vq#@ Wv'c=ᓛUX#]u$jvVې@×{6$B~Fգ'F0ٹJ;> Q2$hu) ېEKjǭd8ObG | %ي PzV]=oFdڹM1 P`27*+V 9|",h\-x3h=S9!nw ZIuWmHvv$C&1L+uC@MDTZեPJ X܎ENoXYpVii[ * @`̕Ȝp[#0iC * Xx|<zІi祳aeBo)YU:z5d/TZ#l' ȃb)/Su3:Z4P2W3}ep5҉U8ZCsoIZ3."sFDG-2yЗߘlck'q.b4ԏ|>buf |TOe Yy^f Dr=/(ȇ|>H4< 1_E?hvpm!c,X-$P(JuE #Z%0Eo)lhfssGx椏%Hegj] 3Y.ڛ.nt\?0|AVȊƖfQ:W܀7X_$DdwÐ]bDF,)2Ed<ȸcȨkAmnlXDF\81 6.~pgDW-M}X$=bh>\=T8sחI7yH;(ЀniՃ_#x$/4gCep#Uc4_O0Utc1A)AXn?J1m5c?q\`Nsx"q-owGsu8lMðe鞙viE*N#1 >zbBoxB(AzitKtl q]>[:ٺ :~D/2 +z'?xE<^"E~[&@$+!}ab^H|9^͂,o֟Ҋu5oCEQ BVI]d.s:)=?oP8"muEc}3{Z j{9;4.SӅ:msh-͗t &MA}rcvrCr;P:7^JoTnXHmHT?)$FxKUTKur0J41.i-pC~z7]|7b4f$x`R^6۲ * +#d?D>J7oSߢDV;R d1PB' ĹRLI D $7JgV=zw!77H?6ӲFpf{qBΞ_5jw yF6Z4X9n]OQXEG L7#7Dvs,U͒1gb +b55gR*%>+׸)gg.3>rq|e\]$ViTe7 /c iѷ(uV\oao#JuĤ//4uh >XgҗX&{u3bk֮rٹӮ7Խ_(Nsې9|s1ä~&+xUƙԭ@3~&hS h"OE0$OlW͡F-޵8H{UM5߅h^` %ZN5kL[byi8V\f=!ZRPxP:9^.}"V|-BZr'D\D~!`EL%R+!64?M윝?IE̪@ +~q<0WAU?ڃ>/2@gǾ+TX!}:>UgʀMEv了K͹[~oipS0gsȡFˡNڇ֭r\)7B3>d0;f,˽G%P,DZ.TU?cˑH+o)M6*l grK:|G6% +I.Y[6.@rrI:+0”qp<f_fZWX "> 9嶞&it鞝f/{pt\fsz [oV 6DZMA)t5ۓ鰻VO}m7156֮LNt!"2ї-q @WZrLNBDFܞn3Aeo8]dǮL[ ui35n6`<zcY6}WS\kf3&;G^9eOS$Gڽ̤3{s|!_]Gyn~]X>MMz'Jڠ}qgh"`VP;-rm!;n ǖ{Y6yE;Y^kL-;>4/67'y8=6̢v5GFs/[F$"sO ?,y41Us.Oϒ$ϡ 4g݆AZ~UdˑB$8>!VzJ {\0Ͱ vcCnNCN|9D=:D^S{'RIsۄO ):.p u)y4뀴z4|_h皿1 +_eWn_L@rO4B:(jva; I6 +[r퀥e^LFZQlNR/Pq%z/^n\* rO-,Edos#htX$Ft^'#?V;ns5Zg[yQhVԘv@o(jg 7T P4(ZfEȞc !bA[XeGh%!eME+H\:9r^rbUӫ> >^:["#3RnCpGV,*5_F&mĤ"M ?_dQx߀a(dֽR']^n+^fUHVCxhz:UB}gI 2>s'zSmŔhᓏ>W!O~QsU~ *HSC:QR,jKtl1ыi,{a1T)V(^h72W+Vzvⶕߧ4$ɟ܎)" eti>3h4u&a5K9Oeܮ}`>+60Z--&/#z8y|62=:sдMIEwM+<@Lmk8Cz ܌ndr0x!#^!G<v+f=u F&(JhVy^$zM͞&>Nδ *%;DN^QTɞGd@):EgmpL~й[lf6Ͼ6QKt{4Y'vfY+m +8kxCƒr5l־ޫ%e7-zNYնXUƐd\k6ѡ%XM^a|kv,fsވ787⩙QbJ+RFM ́/%!C5 +6;V^/yS"a]7>+0mWe78\t]%WԤ\f5o,̹,)r4umi<+L?mC7k kNIL~ƴ⋚|sYV|l7g{?jr)$U?1(Lq/dsS\#@;9GjJ4[ɢz4OWvS6v<=}IᾭA Hb4v<_5l4/.Iu,|ύ 1 ؏i_o1Ojs[U7+B3.v͕nlpE7Yg\݅EKӑ/5fhm r%ɐM>f!F_{/_1^%da_ G#hf7gE@6xw 8`X8Ȧl2n?av ^4B6lL|íR-&Ҝ5}6m$dF!3N|΀8͹-Jtf>I@Ij#,T=$m3/yu™^5vD;yc ( ,23Fih'̖V`ǎJ{)R 5pˀG;3Kn=i6o ځτ &^ ǡB%٤l4 +(>Ώ-JoHl 0h6M"t<_j 2/.3Ђ9mX߬^:W$yEF{mX߆m¶ BҰ;NvqNoCr6vq{9|#}!` 4]}\S7Wcw[ւQlP'tw,NmN{^dmzw@T | '4[l6fW {uA,ohT%zKhiনЃnb7~주2 (4\;Y,|̒n%ҳ'yȧ+B3wev,׶f22sl ]6r7M{Wo^5j:V#Z?lgG9# 7>G2~)?+[Oڢk8X?TCט.6յe;̸GwߌV-Brky[6}˰DxqWsk?O#|Ay~$E#}!*J n0=緊sL&Dzp/ڛ01Ua&:/?<{$0|:܀?Qw}j?2yXd%yBIvՙ$U LbsK酾 i+1>첊T$K#s66TG|SQ7\^%f[q;4?%GfI5hSwED J$D OVJ*f(_+R%Vy5U [45Y] !3=G]Zl󌕽evԙX+}="8m-a,scy7`sVV [( 1[ `V,nK]R탙H6h):CR]q)u` A#'yv+(yWE }Ha*T4{RghcTԘ,ro*4SO}th)jOYN ATh(Gi֜,1kn{fìm=5 hc2b`>'bfZbfttЖY _. ͝p–hK7&!C _eƆa,~uAE6u \?/4a DoK$?2r{5sG1_~9&^!s{iR(=\bA\w8icf +z]i]sMk/:M> |$5,+ռP|#}M9ؐć4>>Y%>؎Dr1qF{e.MS3yN-en<R:n}߼jꊭ~YC]aۧ2Q{mcݽh3Mtz(imRWλ#lü3]B~84po('լ-|edF917wL!TXqp;7D\F6_D[77\NˀUո~ +f1t]2Tn9.@h6/ Zp[ctsmhӗoxztz]⺧]L\JUYQY˻+uu`X+V61SNI0G +{yɝL}Rr>KvswzF+Lk&n>ă XAvѬ+sبj ??t}ܺiZƽ<^ʷ[^ C,}vٚm2dwdeۗ˴WA,|u f xofcmt  XB,~lOnL 2Uqmbқa )v6}TDg&L>V#h7~7gkͱX3{j}s\MۉgVVvsE'(A \PA;7GakId V 4@hϘ #իq,u[sΘi PUW_v\)vPߜ9+3/j^ zXIףB禁}JUA2(T4a?s^k:^"(imZ 5Zj`-ziG'fkχVr#Lg@lYgG-εVAB  Ē^VX1{iMZ]b) gmͰ90́m +_blsI6e +ǰhqsa ,8^{ +r=&,D圍_vVeә9:3&mQZuN0\u1l~.bd"!,%͋"GH[%pgR"= {Fj(qWV[$*Y%$CK+H t91ݫ>; REKZ^פ77FZjھd^ +zYk= +ǪBo(qu(θ,>m=PgB{Dc]hj#6 +SEP<*+O;Y{ F cMn*{n=Nt.,Ki] BZǸK %Jt' +f:W v 뚦㬅U1:mQn͆ 1Bc|[/RiQvn]2vWh%4u0}h~sPbZT{gSItGVzPܺQXf˄!9!rX6FLt:8M}63i ڽQ't?X=j&n+B;ҬR;B]c[/8. &<3S!S7.Nkנ,p[Lk')mƮy.n]mYx-uc(KRExK]ak4mS!Z /:1.wת~/GC+|aGPGuvN^W",T&"9snKNSbHn>Uls)ܹ^Uge*/_7Ϳ|km3!{x"췃$n*INʁz )ٳΰflGtrjʷuL酿 MPOҝJ ҵCԴB.?#}`0D_qDgI_mB}icL +51XK0gR*[Z&x뜫2U{OmX70SQ-Z1CPQF6MX7l︜C6̆Ev#ѮcǺ]r3z#lu,\]6Nn>lbWkYkcYǦӜ,3Made-ѵqB8Ü=9}~1)n[uf9 `)^y:R!(Yb=!&Da)%Rșp +"VI?D4GQ|XP+S#-\l3,o=a^j:q7MQmAF\`'.sM:כd-7WQ4-( |tyy{ArtAbuotM1^-X+AgStRC&.Å$OEHje,@b%.VΦyM~/OЏRr].z { {|XY#%GRH*23R=Q CqT#Rle쀢7gW6LzVA³P-˴ڛDE'Lӥ[Qi'wN$7o1 3tK Z!KoͤFRZ##o=95_,HL 4b{؈얿z7tA3h+Zk_,erQ@$U b;o$UtoQI/l=ĝf;,|F0N[ ;9loLLЭYk}ɓ`{9nO֫:[j$nwxe+r +N^Ѱ+ "H7rE) lu.$c,ڧeDލ mi-  F1]k[)ɜϦB|q[o)=>~kkۊqoYuzj Z>dY8 yښ:HD}{p"u#9ʡ1[ZsxaNszۇ_:2C)w^rpKݑ+]N+@vKEQ +H 5ዣH^XŃ.ߙܚ)yD!ǤWT1M!?I ߈ MY[f V>~;R݋݊^]1_ +^:]dԛף'HQe'cSS1sNX$#ahkr[d}f4؀ۺ}~1uu y?ـ/Dc q-# J)悢˯EEiy l즣/ChRMUD%|.V'M MDgȤ (nMfU@-*oBtߎq_`UhʰcRBX4{[%}nѯ SC"4@w7QK  oZLiEL.]m^m3 έ1B8$uq=PRgli`̖ȁ=en rVuڐUewH0FIsF (fi`~CM0f`޳jRhf$g( ˘4+Ө4ΪϼgY@ϹQg4L>zu!7(%B EFD o[([A;,P`fO` 4AX +DzVWq"ՁSȓh#?Hk] ) +kCNiqZlEͦ7FURl-0-Q/yt1nF14Xcty] C! :ĞqUCO+44Iw9(&$4]eglBQR'{k Z3\"-BkC{!! a*;4;wOrWڳw#g&~Kn͸ӃW>uxx)>'bc;,ᇬ!.$x-\v /+7!Z5dCd B$ 9+MuR0–/7`6dg%H8K^ge. G'(zDAzlGPT&+@5Aix 3΄炵qN -js9_-[s.J UF O`Ƃ!Ԑ%1Lc ;1 uRuն3,Oa$V>Q>6K{5>1 D~=nwJ#h߳0<0\_c1p8jCi; +BhGlrV4j&_4 |%ZhDD՘$W/ $H}oҫjܙ>@ώIWϚfMO߼IMܱg̫="Ç36.i&p1Q}$iۅz2|rG]7_<Ǝ8[WeE47(Uӄ +"o]5_jդ漗4qwB5"Wi+R|Vt +ĈYOk\*3#l1r#q]8cW$:-AB +lD/b Z1Mjg @qXmnXm'M&q,#;qDX\wvn|klč+|r?h󓢬%\N.rfE@FJf! nx7/qkq7kY~  Ǐ<>gҙHYy?t%*!9qޚsVB9,F~0xՂ8r`ʁrf_Ė{۬]΍̮-5gX꼕BRʆzYלX($A욅pݖS#An3*/Pp,:n [Q,i՘iu[o%CN&4W&x6{->s%~Xd^;e1굸Hwx?9kL2o:_ٙ}@ՕBՔeg8Q$6 +s9-#݁A$eBSdiȕz@(#Ыo@КV"uΛ.^ lJbZMY˃|ܳEYKѴLwvU` QtO#b⼲c<(uؕld6&I-'`NJ%VG5v=,JLy<ʛfjE A$2mJSĠ(6zw?هJ}0w9syh:Y'"0wM3=A,: $Wxj + &_о3#fCCq,#Q[vFTy1W3hYl%ZYfqir_cO?73GFcC/*$TH{pPHK#:/`!ň7Mj*%jUHCxضBp0lݴQRxaFs(e&&j|o\^9`{-qhZ#E[5ƺi{enHOpحV~-i3spA+í-4܀zB)2KU~Mj;E[o)l]5 Z!_ ƛ(K ~q)Rܘ/Z/$ힷ8"޹ &u2G=23)>WwȰލ {e!؎O 4勬cK;կ!.l'pdzYgM}^AKYkY5蔃kKoYڒڕ|䓯|U<ī<?w)U1a# {NWTm`;0{Y@Iԫ2rE3gh"cߥ)^w ZV!Jy*9O)JjE|Fvz\V/ߨۑ0IۑwA$ijj#vlۿIG|x档\|֍E.oX0,- kKeo3!m}KpW˧EpI։8.+{-͐=},[&}71> r##wpk!xl{b7RxHq{)[·@]ӏ0R~dk}ue@5?,?dIu Y\YFP1N{au,qWmDQ5Sav w1bRC b䑧iuyH3wùPyG^(l9܌-1*lΥkmMԐ\T74G'vǿ`֍qf!x-jy:r61ƟMKa29]|{^EvB#Je3흜+/60kfE ~>~ѷ珶mM5?+Uȹ5'>PD4MA%MX܀V"z, +*LX/5(;a2gĝ57C:K,wpuYM.ZNvBsaruu*lB3=Z%l֒klj#F'%enh .=~ c&;m{D}z;`TnWNwFMz5=c &o)hkbk̠Bwf_T~i|c/I/ + -$zkp]!{P7;/Œ+nDr*ޞ0F}0Toݲ̠f< ne"Y`s\8i2sc̒}P$bI!̸!&n?1pẄ́p"z2ugT{5Xխm]5伴@0)UDiU!zxtcOݱlt\tk ddɗ#3 ; ӫIʹX9]ta|aN!B,I1UrCwMHN&9)l?0NDYf*P[B|{Dmӓ䒯%qpb>/ǜ3 ި!aQ8`0}ƅ38yJ +xk1)2tݻ,8@+& blgvpZ(3b*$6QCkjU@NRߌPQYZ K1#zDN@^`A1$2-Ģbm Cܶ)B{hj* +UV ,#b1! (fF0>f8 /Ős L.k&4Noxk otd[;uy>!Guƅuȳs1flPf^{h}RNf*)MCX ,q|"zM QOM%ƨ&Z1̬FG"U;IuI~ +5 b.v9{V; 8cMcx[Tw'Nʡʸ-.z`bN(miŒxq$]hTg'_H9pSOb,`^˻ZoCd$ W:*k9<O*4&.2Eۄ3M+5$r_#Z<9S32taw^^2~y)h<fLq|ߩuqT->7EC0 {fК:S25lkj.ԈizL{ Ӗ՟] d[02-+{տC@x/фᨖՕ}Cq7yn(O-\.MD@Xd^Gm#kV[c|;k3"fbRJsT ((Cw.qv?}X0c'=31iМ%ͽOL[Il2c?jU?s8#&/0t5 *>gԜ I1y&3R83Y8{l}plwA/Z7Ӫu`)2zb Z7"k%y a:48sTa3 Øu9B3սx\l^,SdF\*t>Nj̊o䴦Gt=ć~_>!{YL})ZAZ#4%QMx0p/y;0pO%g(ꎑB>G +l ȴNȤt5;!0q=9p#=Ƥnd x~{efM/6SG[GRBdg==Tpv@˼<_Z +fEв;t ؍OK5+NOVIKyeƬ{vu4壭^qX2kfʌjWV3s[W(1vLzGi _w +fǭis$N=(eݣFބ`*`GҌ8x\vzՍ@ì2sgwJWeWO <1чz7?&2 gR.h:CY5  +210=u{|HBPWGT52N~̬F-SͺwLF:W%KV g/Ids"dmh:>;Mt +D% \Mj +K ? ?dg 1k~U`ij*hz/|;8.@|`qHFI*pL.Yw*)RrD MPS +oQmFn| ;k YS&h +irgFOouBϿLB R,|nL&!z!{l.2R"pDLfWčzP$nKӋ}TUɎ[Dh҄#a  7{%nm/ h*#^YؤY~$eԹXlBn-Ɓ-O2C`"v} %dc걔EfnHy%OP۹лOܷuSN%g6^I_˖'RC18C.~UrJk}lhp#=jmkofbe$ h3q7zُ}.:.ķ)]a*ɶ,1PNT"3w{Dt^{"=WO\gat? +s=E9o_ٷ3m}rd In+5{I`%FSWlԭD&Bԕvo#4FzNŜf',@1.e197FY2dbs]^1gQfl9րgus,ޮJxsV5Vfڡr M$ ^k $ҸlM+m1Μs7h ^r>򘇏 (o'2ZtqH{mYUMxz@l&.X b*9c)/5 DwbY ަ:v~mC`l&!34wy𚀟t2HNGиv-5y9JcHU*l`X[2dDImj׵xb(̎@av^ѡQu=ڬYg:e&CucMNls @-]ƒt=wCƑ }\ovegbPIgMUm:~w~d]6Cˡe_"Se=ek*ڢ1*UG/G쯉irGuei9II0 +6luISl50$ )KBE-LxԎ.f$ʛ'nTV,KM6U%5JJ O u2=;|)l<垎{;{ν ?/ wP/ۗ)C;>ґϙ?{*t,D/|;/L#u%-+9kzGHtSrj?Nz݆)_{v7vT4u)'$ r Cx$7V->jq-C߰I/PM |@h*$3 ٥,ߓ:*?ҧP'>ƃ|YxY<R߹PrZ5rw6P؆ +JMxu?xo|7PT/?یvN-u^bgK􇜼[ȮIWj9Qj?RUΏר0%wi)ﲿ>WMJ)صfOCugj5~?|Z hT^xK=BkG[(}%sm`}WY?|OYӦ{wmƭ[Ar+Hw>-0pm ߉$ g;H([LѳsVSjsk%0$<^†۵_+y˖Oly >;MhY- 9HomD/,aHֻcUWi_%nJ rf3ݪt"9.ևw_jGg>SN?g!l>%ah,܃@D"$#B`v`+$ȷӿ~eɊO ih o5AsPB4RK4TYvYH= +ˆy_n'3yn=Bx#Yd ^r(68_&@s w!$W}B ` 1"tdq`HI>Ù<v֟r<%-=T$Ҡcb 7VKW B>{ɐWcd\V fvH? -|ϡKnv;%g + PM€n aASoߖ J\4rooEb)"3nG~yF~m`XM+J6et59%>_ *'E?8+PA|*YƾK,@ٯߪ-ľIIpoJA2F2Jհ_Hz5>_Ixݲ]1%Xe|=E^[:p@&M7 +C.i\ D*W5r}#Y.zA Og'ZdvWr傗3Es?#@tԎ?NæP s.5ۤu}g<%n܃-~(΁!\a3n X`]tF IH>Fl)ɻO˟0Z r g@pz74rCsY7D&!C9@ . rXʏUg !@m0_N dSYx>ME^x&V.&wq@1\dVoNSvtIa=y#Odd]@㐧\) 緭w@Ф:Gw{>z6Façm$'}*tԍ%?;W)$BsZ'O96p)YfݒK[Aș·$L#jRש>]PiWESu urKob$/6{#vH|sO{&g&5.$܊sH/2dl mRap"!Ҏ|&`"wiZj)6.":kDg8hVVm-gͩi?St2ڧ.(D6}.RcBY_H!h<)?JrⷂZ`B&8 ]&()֩N͒ewk< +O #r51 +U$o0\T0''9>oϖϓ_)_شV}d͒_A:>At[w4Kxπoϰgt$>Nl`20ibi +m.ʼQ.Ms[q义 +ܝ +edpi.of3$1ͻ}Dxw}JIXy!f.aV2=Ґ?a]I3yV- ĵbZpηS}K89Y 9lRj1@.%f6/z>sv.!re[x\RSr%?EjS]x:*liޗum>ʑ`hQu9 ˳#Nϙ.A+~lsdk}UL=&0iި9v`1]AX3 3-(e2,N@:|kPt9Φg-ﱄT6CP~n쩦YrX)Okg3xq2K L`OFT6fVB.jh)@-]8tKZ^4Y:%tMrәjJ3;1pV)no,ɵd qB rKzJ 0 +.:?pL=%~"}wj +SB)%Qhn:%zv&;~(nOeoM+,GAqK,WpOZ񈴪Ӈ>ӮۃB\E NM`*w8~ )wi<n26| +¹Tx>t|UX +@sO(KjЄ [2,'2=ҭ" h"aEGGC[8[,Ap%*ng{\UmL fl%Y>S6rdvگgjY|mf͟LqClO{ 'ZOOg sg"t?>Hw /G&-4!TZWXιT柭AX Av}}\!8}A 2zڞ?{"fJ60V +tPcSy_2_+ํPc25Z֊ 7 ,7 ߾nOXA5^yX $܏E=j 6aDLO}GPd,]bPK̦>~9Mh{y,ԥ}>E0ffv/#$.h})nqUcs7Q_c%-@$ȼVyoE~vmÚR2aйu9R7iƿY9 V1H#O&]<+,lo[wqMv{zȋh#tnn ԱőBظͬ[7șSe4+Һw]ѣ`c[-hٳA<.n5{k&_펛O:3X*{y=]Pvd5NFO5Ќcy;E%V*}IНT*8 #d-eNsa\8zG#*o3͟`LZyL~Q3uOx xktǓ8S]|lV<< 817klܠonv?5,sC)Ј9Uw}$O,89yu$bG%&=nw٘7ˌ%ʛL9$píN|ow/ TCۅl+q^%qw"0ZA!2B5cx~磿&Y|O}fzwX[[^F{azm7  +a &-{v$)9 W[Cf+;t%2lL_$"`\Gq ]l{@KGX1+UwCac5czmA-^i۝ܿKSԡ%pCcJ娉q^m@ws D{M؉,vw!{[O&c+1D{ c9a3c1JWzY`ā9+$ie&>/X!vrI +c^R6Xt5 F  b_O6}uDu#un0Nw~n6QyeYm5]ǃQ [DW(b@K ~< ؈K`ńKL; q9~q C_K6]WmuM 㟦b%B|Lk&sHy8xFnu!0v c^/c"4$BzYmtY"Ǒ:DoKt8)is)9I!ZHn1Z#: 6|{$X v7ݞ4qi*u ;-GsrB}Ib8lb#b,-p^l>%SfQw.4.-Ə1ēhWEfSǏ(O-?FpwyƏ?sďP. +y-w5b!`kWB;q%<%fl;7 "!̉?NWX2}Vp +B zS= +/ΰw+Ǔs.|/x?Z07{#e4FE>($|@ȝh"NWhV߉s)1vZ?Mf.vdJ _\?üޚ2Fe׳?qZ! g6*W NT/%c[=Kդ 4+QGO]Ed \ g>#eRc\i´&hd/"ӾUhO]4Ѯ +rUu^Tm:уmֲ>ѓ'Tx5vG;$rusFc؝ؔnK53I47C}/[<+C+c,I#dK5fKdK2>>b 9bfRLm j)񍧅f4 +Q +" aho#:Y~1:)3b:\6_ϫ )Ukǖ?B* +fp\IJy;V 7-8%yR! w+oƅ<-ZN72"|+a#rfG f*-r z@h;c$@P?ex<G *g*H  3n7\.KG +3n^wa1D7T\BAS" y(gmwPqsCͷ)Y2#rXb2B))e E\jfʩ*_#5sdrQͱ;԰;1Nɞ'$7%;(ɥVN R;s&QM;iHh0杤/^UK}fp֛.,:\!`^t.XP,Xh>x0ĘU*~JIyjՁ_5׮ +sx8 qfkl0'T U3BEɱs%Ga L.ASg105%i%hibMqq"Wf7q-i#N iix'qK:єٴDƁq] q+Om-fCϫnymr"M7ʌUJ&+}j&T2BD{m.^%NjI%$INW\DzLn٥LcZ-yY0ߦn tB=/챺8ߊe߈1FM턈icgu y0iE&:{@ŎHej 8TkLgL/XZ ?GϹZ4k77,-fYīK8 +p.E\+P-mW~;F2 +:mme2څJ+dZZd%N9)Ⱥ7k}f>, +5;m<ĎF ϔްq1|"/M!J&i} r[@R BCz QkȬgbKJ"X-k/ ysͳ;,Jd*ݤ5L@tbglh!/lB8%FVxhujzV2IUɷ- 5;csnNNd?\iȔ +B78Xh%2!玅᳦FX 잜lL:y31/`c[Ҍ-UHM~Ju8>6]1Cb +] =ml؃Uv$I{`m;>'[d+_/ϠR˼5]Wz/• +L >Y7t5K$0GQNW,뢗li`OԨT]ĽSeScs^?{,oLS qx[# 0XmNCX3µah| #w,70߶..læ^2PqxjfiodT9Ua;v^w=T$}AI[vpVɔPC8iFݝ+"XФF]Dp`C&qukNh 3f.kS]b1UfDtU#ϙyMGS2)͆o_]k +C#,m09;13a%X1"2ȅWb[QBoK}S^ꛌԏxi7奾ɕR_6G*G休.<' >5U֬#Jŏ8img[Zj3 ohs⻫]W wn Oˀx`^EʜțUO3pvVhQCrQlR|S)dXLQq&Z|d {z-ɫUL5)pd$32#dϿa^^cI^u+0ʄ Yrgp^hA<ה;|OB" +QKu4UFyKi,+iNh}ۄ]wTT* +7 mN6]ŽAZ)8!`Jo-u$g2̖nc+Hn9TsS[`=őP6h!9ͰnOWm2 ]r'+ Op8%dSw'0qZ28k4RMsRx3'ďH C'BZmFaBwfv!|eiRR?gpNlT8pC[ ~"q+o R C5LXx2ۀ-=ӮJFFZ6q &/P9+re)e"k8[JiO4=84D+q>5XCN⫣wmD1Y'*^Ū'JZxNZSciޔʃ49.SyY%-%c_5ncr2t+uO딴VK`.X3p&IљaC1nRqYx0}Agi oxIpM$8MtAYu+' qkk ZzUNi;:oB)v >tu*PQRwBS6~t)ᜬh@SN+S6o]dH:[80_:##/g#s.S>[=n|Ĺ! +)Qˡ@mo?x3$QREL܊!:z`*niqoդ ([r5P^ +1bVϳ W^ڴĵA#\T ba*Hy?X+[zy y0]گxUGh#: kU6.:.&}FlZJwtȀ +b˶۷6|}zm~ z:q_5m:PwS-ҝ3f6_17tTgP%)nhxCZ(ի^Q*æBzu^ڕWMR(MnvՆ*M@*+U+Ma-gqWKT6v;AI:VB$,ˋJTB8RNU|m(;Z8>hF8_Wavo|(ckYܛt K|N( $\V+gDajDxH=dwH'UHw~&b`|Y'5WLT58<'3/,aOIO!"#v52q<]4lQg5PvdFxu{pVlF>-,Kg;o[~M Lld̅\kbU=(=G0ר9_!`Cj <Śq#Gtc  \Q>TװcPT9:u`_B ^.w3y^,x},X:/ 4XГdkBZyJ=Bku*uÞZ&Ll儋q-H30qbJvVIs4.׷eG)2I_<˝I7̙9?~$ChO~ba0?1"O,|vO?v73:'9Ɍь lxV5~q +Wv#L~8ALb]{MxQOɊ4i)xU\Y 1Œ"(ͮ +4C%S2Dz.qz" *<U@1z,JPQ7`FxW<}"Y$#Rtn` l1혞K֑BFCKƛ ύ,uaa`@%xM)'z Gon4B/Oi\UbdB/g !` QDZGpX4Ɵke"WcDl q )hPDtPV3$iG4\qE3S*cuG@lwdެ0'edoA2k/7Dܵ J#kР' !AEX@myjN@xu3h)3 +^qȒjxbĔ5U < z}3UKuQF#dȼ n5$! g+ Pn@ereNPSAY`C$>NCUp@osM+H!Dovgy$ NLpl,>)6ޟW(oT7nA%%MxcqF+!mjɪV53I_Ν Uot_~:mrJ0-Z/˩na:䙯52kSwO UG̉K,SN'Uu:X ߟyוo},qXi^~dfF.LVDŠ\K$>;{^(k&-3@)͑8)$jN[c)813_3GN>fI4i3,SR9yt.!$e4O =#% +qz&v}qgUh"c¾Sw ^pa, \>zfDeŲ¨xr|L lHΆ.̛&7y&9uѻSc'iL9mvY<4 xħ!Q#X ́D8:Vn5dXMI-<^I*_-4 1 *τX̃Aa]U;A휧^TcFl[ͲƶfC[h>P̐l ωxt^H,UA4Cfwt5l6: +R=yT(lLDe~}6)A;%|,Paړ1NWuiHD^<ت|VXbT +L'10'U.Bvg@Q*}|,%1x͒I&4,k#0vm|(BHxFEYBaB$%Y^ٕQxW<{]5oX50n ʎ +BFDd>BdjJظYf % WPXXuyt$:Pׁ2:P%V^ +5` ٚ {9mXCseFY/#͸>]˱d&'=, ߸vh{u;ě7=d?fbY%+ky YuEX+րc 57Lh H̿Be7%U(W$zN7,4 70g ‘,5Wc_@E.?NK*Ӻ"b*b̼/`J*Tü@aYV݁֬[_ Bkaoί֏NS3]R E +R>N9f!L{˭ +xlozN=kD`BQz<̶ 4-Eh;f\L@dsx̖ΛYh!)BuE .FI3s,HeT“|13RFT`P-AO{]d&B4l t&՟]V@ ), BnQ吴(uƷzk`'ܥUC\3@M=1QMb?܃kW:^w&OOB<aLkW*eYJU-n>"z\,ojO~@μa.qףӱ6*-u~AeN.Fk5C XhtmPj{ydtmwWo6{y8]kYݕ#k|k"^s{/4ύd@Ď7Թ[~?=pL':m-!tܘu򝑁Vzez;٭x~@~t|`xNW'i|07?:0zqB:-ձc`兑FznC{l>*'D)~Ct7?)t +8ҫѾ ݣt#-W#:ǧ@'ݫ-8 kƇU)ZtxN/\@WT PN-]mi޴T4T7%%.|qî0@mW}['cәWԱDcwG6Ώ֯c]NKƺcߣ Ӳe"+oR:թg/G:q37]^?y8.RSxX1nQEX=eDNs9mAiAOixS-eF/Jc5Ki.w^pZ5 -&5KMGj.k(KgH 1\}#["HecUVU#Ty\/=atޱΪ uTgmQkC+E.cT>J|*)yQ mARAԜh!u$}ѫUgV {ȋ. Qst a?mB,p~ Xz=&鷫1k4vПk-CPڀhޅxmwsBG~!g:V-{'}vU?5} +=.x4sh̺2Y޷[> Ǖ:ZxWntr5D/Ew1n9K;I[ 3^nEٵ n#tm7#*30:_ P];{5!tbH'c7&Q-2X}H=_ϒtX/rv%@.u:@6 +&i&yw[<3zQ[ +%Vؑ-Iwue<| _eA[0|ihW=Ğy[~tGgƊu.C*;uoߟ>Tͥ\ !#PM \4%H}\gB%X8(Ik:G2L$﫿# y̩v1g;I3 lcĆWe*6W}/'ӂJxz Zxys];>Mo^uW /^m^uw X]73^d޻L" +7/S L%:k,™GʸQ޵#/yUūr7 +VWtػ QXyH5ɝmMigjN ; +@vȣn8T/P\ Tc/@!v}{P \UxTQW7+«\_nss㣊ދCzPƵ Q#dZD,$iI@-"̍F. #,PN#K>y.)TCA^z}1g_-d?PH\#-1BnY#-1Ba}+3ZCjAO 2ԬZ1BmfY.=8P + `1Ԏ?5 +F/x5,c>|eYkƚ5X 5BX[w pjV+cq 9Ç5Վ79aXn a:#:w47}Uz j]'~qO`Rj!rTu_GQHք.$"x{SOQR^¬k>vn _[㧎sQ6Tlkk,ƚkk#RX|T'Iy-cc$ź濶HGGlNc4:MrZkŹɰ-~h^ߵkfّ!s5rڡ>¿QL6r! Gj;{B%bqؤzrgձM{b]r_'V5Ciq<@mc/^KRWNG <ɒRП7 w6]a68>v2F6<8Dwrw]ꆟwAummp6D}k&l8]1L6Y謲pKK=ҔeBxs-kJɫKmY{<5tVkxFikz~tNu'|uz j`rQOӀ{9(< $uo[IQLvd ͨhN1<ۘoZg2&8"oqO3:8K=(I'K+jx-^{9O֍|}[?Xk~kz;ͅ&?ttbc M\#kў|2 :B㽄n#$? 9ӱ3 sNաVT r#4} EΈqD}E/z}x:^ء i@|3 \|/s1#$x6fぽCo݁E ] .fL$馨+4`1~@Ə^#qsba͸DVJ?$As ;7qHHg(!=OPuuP[la/" i~߮h: i2>vÞ3 C"`su-1x{%l+|6^\s!L]U;\8#: x̅0jB0j/ّ߆ F0H4cBhgyOuH Zx"3P6 nͼ_ho|gaod7ELaAooFFFy {LУcoebW7~bo 7˿`{#X((w\{Lr7E27?(D ?g@ G +kT:ޢw9>0o~OԂ'"]ԇM6Hr}VS^̥xGi4ScZd^4bYՉ^OSU>˧<Rb[bhU.WM'YO +mG!jmvxNmz +?-xf~Ӟ9;OWѳyXR܂'r7&f|-rbg#lC!=\"`b ,+UxnB}0OVb bClh6.(CYe;>흅KB + PrP뻼xƱD#W3Fj0heP64eσP60>X Fe o(xʒA]){QڡZ<_s4g=IlOlv'lgl{(Ul>;۳ƞ1ib[6pL#C=;9 nl6ܖۓngڳb`[6llml-`,esݞ?=;سbH[6i?=Ϟ-Ǟ oϖyWg~!bOCXltϸc <>7%Էg]3pGˉm'ߤonݥ\>+WK8Rs'F)ng*5"ՋC񚍆k&+>N/{m:7J{ o?]f*?&۪Zj)֋q^QfK呀eSqƹ:$k )%pU5 DmW#s/q}75)n,$kTMJ$̶iažG$ 1,KU?Сl+$`8 R/U}->y@WiU}v}5JlԂ4P+y3BQS[lMIR#,oD^BOz$C(zdЬ`;]}5#/޾6 ^7ux0N΁p~fBU`Fu?z4lv{CPl xhgk_}GFz -j(fጐnGi/ +^d6>M.A7zZW!H>I([Ǩ'ٺY9%Ax.wt+h~:pHvFw|lŇn t\3JoF}Dg"@SٲܳKsҔ&ȹK>pvIRɊԳ]:TǹW=7p'|ʷΖ9Ks.^slnM%n.HEB?N5I,-E7$kSQNY/} ,$ +d}!U_m_w^uGa7d:j< (C6$Z2 VtP +iam|mogO<~dӲSc 2`hb +! =cϛ~8"o +mUfa[T%.HkmV>!JliTv܊\)i:B$H@^7$asp!"MyhA"h<ltҬMi w['Iltt|\a(N7ONႧi'p/rmaoZ<fyFgv@?kYۡ?(' 5܅dOf֟%1MڼEF+O;Nz9ٚs(CskN SsZsdjΜZy\͘Fu:B_G8n){z +wGEd׃V]A)ne˦,0o)կ&,`sXgO#+'ak5א$Hr:`ݰ񔦣C-0fQ~i}EG}?KsM뿿Ϫ=|4-Is3䤃u?Q]*'؝IbUQZP]WO6amK$b;P8c]`Ħ]ÔRpK~aB {žP+6_m o`W/ i_AweԲ3[MkS@xP6['}澦dF99rytan_[U˟ӔN 8~&cwOpdBØI;K7EPm\/ n 7ɩ(K^glTEz6 &8ܲy],>׷*UԃaV%@oǸMoGA@p"cYmՋ~ayk^zZZ%8 :|;R㲄Usj9N$50ihuǬ*h`# cwBL┉p˼J)$9sd_G [XL( +)ѼVPk[W}r.K?&Dx If ݛѰn{ Y ꖠP +98sjz2~'vo4ak;Nd1^=C16(ʜ?c|:vxߐϻ~>yQk6ώA/\#6maɅ9yE9$Orex*rLD!Qs ‘b[8(ol;)*Ɖ.qS+!T/:vAyJ$P Oxbȥ~-^Q@bsگB?MEqpۡo/UEז.s+Tl>^ 3*A0#.WL m U1#·R ++;|ă 7 o(zUcS*Z/bXh^#mo?~}tc +oJ#jkuuad]e) Z˹j;v,:"6r.:y:sЏPa ~b.c`%v92n*&"$?>1bKu)1D5(w))O͆sԦkvQd0f7;wߘImM=cC +(R#7x"W<)@U,~~^U1OܞsrNQٮ݇wQZfZIQAq#?OC'3dnCf1 F؊(Ѷ̆&%F ۶#`AE#(Ύ s ϐ]Qc8(Tqh1B F`e_Fp2ߔ8?.H=.Y"ETNz;ڎ\=(spEZ$EݜӂO?.>B1.,KAk1Z׌ެBfT8P˽;wّ&ܾvn8vt!| G[lT?ΜdkC cmNWŤt := ȑ uΤ"|+:odT_N9'ęx7ϧJݰ4!Yw0 B?_ (ymDž;p?}X7:|~R#O_b>WR:bN:Ne]v*JNeu@R`e,u%N@~,qx*20T$ +KV\+8%/iظ NDX8d;z"/itEE0q8ќ9}S8!Tx&Hf!JPwgG@#Bh.0x|ouر$n)~DCΧ潖BvY#AqvܥqޒlmB7vѝ!r.II lT +q<оJ#ֈ/yQ +nha4NC.8yF<!*2x)?I( Y}uߎmAhPҽEu?Jis~Um=h~ϩ4 s@*!Dk 2\;"mD@l UۑUHQY+qaՍKfLXkvQ4Gs{vwUdVk< +c"'T2P=&r(LT˓Ry: %ΧsGd&y1h*9zC9UnJm!n^qEzl$a0tcKdɜogrviyF/e4`{~ci*ow$WŠ"5)g!t`k7v :̿܅@.G0Vui?!p'm=1:hKgƍnH70#c-EI30Oy"xH?\B|:w-y;"E1}*eg)DɟB:8DQ dYz4hA9琟4iƁ2A>Q>I4ś}/bTCES.ݞqRέk҈ @c3R0'蘗 +m ׈M E1Tr˪EmyT2]݆pc}mFN+\H>^К9 p"n,U+uuRp%1yA;69"4+0ӎ^e#S"B)b\,ŬE __ á:O& {kG2@۶(Qtf$w#̦4*I #,3qpi(. $ t$sXcnSqeqIq%qWGoGRM,w'F.|uIj $aq^,u TyHcLXx:;p:? }}5a#@NølL\T>'1q.݉mn\6/^B|qPJ2ЕxJ;*8E6ϑj8!2)Z Vk#Ad\QVf.oY^]V ɛ*X[C-[xWRZ埪`*w';Ƶ㏔t=g8Z1_g7ʷ?5βFſ ug0naoY@ي{ B +zCqp* N?QRiA/.bzQG)/o +);{k>r~_4Ua0'-(]?㠄x~~#>U}o݋CR_fF-eqKƜ]Npܷđo;D,MbyO 3@ J!۽{^w/gaT:Y(nI@bF񡆝gusHP!W~IOjojzi3vD:1$ȯSL`tCy6s$k،K,ԋNӼqO[G1nn_Fh|uU蔮c-PfOA^)B<[ +0s|YƝ6Z/k )^&ƿF89 #_LJϼ睗灞!?czw1s '[L 2ݿx5)`f$;{f6U]CFoݦ_b:I\??Nd!\4i@m*Bz7#m OKFq6L6872: ![B) &ߊ`}9Q +Թ`zR=7O:TC2 ,~x}i']3X~>FM`P/({+P1]%WRa_ee**Y?M^n! Zc9eF| 2U#y24$ $ + d/8D( t>g"4UN "HRI` wxn#)x>~4X1axHPV,rIy-EDwA$p>l)WO2ڥlL Q5.6O*8Cކ,4~U[5nދb-r?/ K@r;Rh0#!QUV:4vP'(uԹWw@#:־{5IP*qOd +&_lFZ8ٞ;uԼ uɠᒉ3 +iL(߸XMrNΈ%qǿHJab)zVD@VfI<~75X~x4+Iٛ؁y ^"]>'x,Oz$&U+eYU+? _r][\bE[J~ Nǿe#.|G~r+S[nݝ<-oj.n7  $_y.6kIF|9|f28oy 9׎kE2C,_QtCl`OY(֡x/p"u=g!9Hb@g Mz 1}gpqU[|p7.,|zl4ݴLYUQ9%'L_w!I璛mak&ݡt#j2|w5BnKNKYN,',',')NN3;MuBN6=7ޟ Qe9+_aun @~?~[?IQtzXkmSvm8na,Lǭq/CWIbL+{u[tq{J3ju~hG줄5G5,2N5!B;x]w`*k07"{f_dck%f Q7D\)~&Gn}D@y7̟ε+l%S]&G=Վnn0~+g*0v,s˄)$&Tثw9쨄)8%IT=4x?Wjo ´*?Xәj:,e>}lAx@ݱN'=o n<spd? W$hT?lj/2,SaI(lE)y͹o0Y6QqsVIAoŽ +}LtߎI} W&Yi{ŻhPuԯ/ yePZ7uQS>MWRi^"攏U(=f%'䞫:% w(ڼ +UWnpiN53A3-Z?]jY6 XSLքPNG 6An xb\]%^W4%x ˼P檋lX9A$QJ0{F(NDk"Zݓ=i5-߁eJsɧL#ƞAϻ -wQ!+uɠ%D5 VS PȘvtBq(ўGCW|333q|33~ ˜ +,dq_Qw'pm$?%%9{\-R5 +% + A<%_kI\<=cAh{!pvd:4nE0":-cII + 9MPYkNC#F]`˭"Ǝ~Mml=9[ +%T2˶~ +Z.6*{  0 cU 6n1xIV9LAapGp6{}X\.3E ts {l!h+kmhM}Ě'oPϸ¬sx,$)Ĥ=7mtDmTc+~F-߶@!`yEwݩu@Dl! l!oFz}t!CKAsmdvQc$K!D0ڽ}nV_/svq5wixboЊj_HKsF`MsȾOޏT3rP9gVQrI3ŽS%QRLguIɤ\rݙ)6Wx랗oO\{L>zSǽ$\w8{ +$JiDВ 0urJi1-1QGbuڶv9횜Cv 7Grs|-9R1S2*"̘l'H8p[^ +&qre W>tM1VÎ6ps.Bz";HC &ZS1a+Tw5fpt5K>#з_<sām~q Q]r.3fOINƅ OeٜeDY@qߒAQ6/Qw(|eH}Ec÷ʎ&rr2p IEPZgq L&H8=3L\a)<~ +@ٷۜz֛PUvE ?@c}n:E%쪻9.{;%J7蟂ˣLbd:B9xcgTh7)>;kZX:V\Pu\):ヱVxFq UC +_1j봠+boi0,Vkn7E%>JP*+=X;%O-nq_ & g\(ֿk g@X糠X粠XYPSXbφb58Cs-Yy wB\4Y,QT_1kt X ig^ qk4Ȭ(5NAiO9l\IX~əv=]d,3#UM8ĉÄG" F,.NpqKJ+fS|R8ۀjF`ٍ]5V2iAGw%f#kkkJ]K#$$?sE,vV#De#F[H&mJ3\YiHj8{K.$}I +#``$4'@4EJ‡j%0jjS >l`Ul8e>zlX + L OϑSFٷ#[p2/{H"8#u j~m%mT%#agؽ ;9¦#90NDGYgӑG&H$c/YHX%g~&5F*8 ڰ^3Ԯ dji6t_$WQwã5yכs\=|nl~RsJ˓5/LP!>qHH'HL +^Pq*-ٖ*h(=4EvPdk=\ǼA\Uâpoo LXD)h"kBwj^>A1j9*9K G0]6ժZaHX >"f˓bJ4:o` EXJK\UcDz" @8DXdz&dl!bRקgBܳ==R FJ +2>IH>@p;BBibR3H%x bA`ф!! C‡< G3 |#wf:tO7bEw5?v?|n{` mQy;mMlPjEIJw:0gex2Fȣ`x#y W1 A[<@B( s}|B,JcB8u= -"͝=nӸ HQ͹/ӣ.ܙ q̍1+%l|u9LVF)A܂6I;>CSRcj.n"/AM"OP)'̣>SK≴!i[q|esF>,nT X]`%w6ҩ861rgrq }&.Oؖ:3!םAɊa>P\(x'׎ tv׸v9=,S{Wt9cn+|KaR@F_)iNw`@} +ka<^`VW]9:EM6\˵sԎEY'Tŵ{l|Yoh.j9vpk]vMq8=>c\ޞ,&}ƌzg\;]W@']uu_< t҈o/](Nu2`9U4wG1cчw}įs7ǩ؂;p SoI;Ac.h1#{.98XH#ڊЉ\`Xփ‘-x<q'{޵cAOœT;˰A7Y^VjmD9ח__h_2.Ջs̼W__yb&8f +8a>Uqy&xSy0^f.B%R#䛒ȣHg~\98c&J,H#&IԠ,M %c,ڬݬ~+j.:F> KEYRP2JY!G?b(;)E$mͬ+H(Xُ4@s.=4hߡ5TNwShTGe=)=&'])dsLӪfO\zy,Q"AaWsס3y@rgldGbi"K΍GGzU* S*=3>[lv[;b %F$&3v;]h}aAwi4pX?qkG364 88cr4̘ړTSZd*Bf+èX`%N zgTxJ0/[ }-]ҋ_ Oݔ^Mfy,FO jyܲ&H5*t [rSڎpo67$xo9c4c{"4 +>Ai?gd(Og-rN,w>I$+X9E,gu>cS NOBv)G9 W +?VpHOP@Aj>k0CpU>yu^;#*14#oJ5"NJ=ΰ%<)G$)^{Jѹ}]AXWPڰWApYgx=ǥtu tU٬Eg 5/~CnQǟN#Clsz rc%T t&B<J*aU“r7'stpt'eM:=ONtPtXJ;ض+V*(EUVؚLY+!]+UGW203{s0R32+%YKeɈ2VDNjm!+q/NܤD&=s;~g+sW8;- x*FqY`800O#Ta~з*A KQr}`)5O^& T~Krvc ~좏T#K oa<<(63LD<17!xx 0ilH#A-!an&wY>--;UV~` ڴ/Syܐ'͢zCq߉+/zORbo[@ߺ7.6AdVctS Z6,'5,U ǧC۠jqhNa4tl ,y g{wSMu{P=_`?S4Î6\yK+L-凉QrG΍K^8}hFy2,(YQx陁Sa3L}vJA1;g7+^1j1CZWE/5DNE`[8Mo JvNpG ld̓%^s*eSgTS/X\XwΞݳdSPj9Y$߼[ov~6u˝Kvtp}m.Nۍv)]1tZp̧z\D&m~&}X[`QFEiTr1ה˘U.R䢏(nC<&b\hsBcTnp R'\`IQ]95[a~mR}z운 #yyF) i=>CCF>$SJ6$'22F{'N,&z*=j"7-ACdn[noiOޗUZ |GSNvN2lɧh< *(*ȽH^ +2*I Xw|1T5m cq{=9st69c/sxWggdc,!:j%5+ |-dm_25JeExA)f*~hj* vD?Bsn >5&L)*R1=g9)%|?Z+^plcad DyB(aEؤݴ.Ao-%j)d%EgI'«ܟ挰IX= 'xEN.gGsQ_a*z *7]/7OGMһJ8SU8]UFOJUF骯jWOv-[4}5r rv 52i dLg71(2&jOAt~2ϔ/8n'v3 8U-ˣ:(w3\{gh^L@Me)S.GUn!]&"D 僩e6C0yd3٪._ėɘ%T&+((}6K + +8ݿ*Bvڛz# GX)O_o fȿDK#ΤeV _g2ɿr'u׼[I!Ij_n7~|GM6_AwS45*0Mo/C<ܓQA6֑ɒ22"m';d'H'@-'&[Zv/#0&¯ّ˩,r 6,ln`J2Trbp$ + sڸEhք9\ ̬ܐ0j?Y26T}AcW}1 ?^wf!ISwO'K̍3>mOE"Z B|O[9 [Du Dwм6 +mO$vLe10~M!_A`<"Znp1R%ӋoYE\>S-sZX]LC< \/NB(N %Ut:,L-{*Њ$AoPuXvZ)ma^Ibq$^5)ػ֐q"r]Z"H-}0Sb:ϳ I":&>K>6yPkARW a|F| m&Ip; "=B26 U]bQZTY͡Y\cvn[RFSdb/5J H3$i LH֐^ =x4N71͠A7L4aauoMND֞aBaQKӐzmn!(R ,2uX={&(5ᒶFF=B.kwdqdsi/')"ʌÁZMqq%y_~xgs79ĖQUQcL.(UgG] Uz*PX|ʈ)a+eBaGY2YqcăQn4' 4*kc󚃛 +I@, g|HoD󻜤Bbyi4kOr5QI7"@{v^i +>=g VZAMJC ^c#PBeΓARĉ 9Q v>'T2Hv4‹0 ɻd5AB6H0 $i*B!Ԅʢb2?Fx_7@IczU4aLꢩTCfv֞GݧpRN1V#2w#e3b*8JZjݒ* +)׮9_ !Э}ln#NY6(EF#,FO 5-%fd#.iDa/JA^DZݓlx)y\5LgHmJ#ksLGz,KLGz%:縲N#Zp1r6>ϙU7(x⹞[v o*^V"'np_3 i+u%R ڬ'sP폏F,E0cO/9to GLIsK:pA  Zb-0*tCfAC6б +kuO;%.Ö5hAmںbZE ;g21l3 +Bd)h&lN(8sᏈ@cG'w8`[{r1vB]2Ɖ㋚ |BȝO'L8!u*PFR$4 qȚS\9 +0A8,9J8ϫnh~?wo:U<'BGBLe&,TT: O5PEa&a4Ce.**M4Cs>g3](ЌuAn/FD=|,9h=.h/" +8qL|g |lF F#+w5CN{WN#2+t'ZWi e9%#|>3)JDt\e'Z.agf#0&_UK3rk= +I 'Sq Z1&+ ()tƀ jb4n8nHN\J!'"P8of+'3~S2dIQUhh=r̷]7\Qnm#g+Q9cV-8gu՜ܞ+ii c[T#@ )zEDMT-Qu~7- K^/* xKw襂 n[j-k몈8O,̦1 3iB"YhNc.bMdfҙDnf9Y,2 s0 9Yd2 _3_[YeWxȒVOYiX>ONMsNYD۪U"~X;\Cp +He6%-%,z|N=eQHE_NOY<]Wd&w)_*G" +,T@ѢPLJzi4Wb؝56 +'| oLzm0!][h:D=+35+1陵E$} ~p~I>ٷSsuei۰p >T%<ݭK]+~:N~ۄp KV.=n +]%w@cZx;_k;<~pxb{Y$m}BkJh9?9P)<Wxo!  +C37W N[#q{KܾpZ S+{t86VClmXxBmMKdޢ9D[f|ÿjb6T +!tGc.[Z M)QExg9_0)3SMJ׼pl.+FwDc[VRx' ez-4I!Ev? ]E$rlחt>3C׿{WB./*1~g7!<19Bݑ߷M O'鷓3%@Ŷ( wT.l]!}scY/lr؎@e[XRxV/JQ,Jnm\*9HGӑZq9)٪nS6xծ~<$Aal:W܏ٴ| jLzԗ $}( hɽ_w)m/֕{7> q{[_JmEHddžSDTQ{Ñjbefd=W鐾CXIpCx,W*YY/< +w4pŠ9"}cWɽ7VUQ[bG +< 8f/OxGwW\|3E7ssT=@s^n @_ݻgA;Fo,g;ҳ]׳Iѳ_v]ϸXJwggX 3?FE.1r|޸/l %r\ME,<³OŸ n{ZdC^K +X>?>Dы#sZ>ͩ˴5:9`!6C)Ma?Vi_/xt&uitIWK}{Vh;p}}`%v~ 8,c!V؆, .{,|O Feح/U%ѐmq $zdbF5^ \wB믳́_l|Ң/ȯQjj6X@fG' oA RVC\P3`SW| Z-M:c +Jv!^ &ߝ#Fe I'jͱjuU-|rPVdMNx+Q8OΟ<+ުɃo6Q@T}fˍ(C74hB+O.r;Ѕ iˊ /_6wĝ;ASa,*?+ gD]Ge͋rckі8TQK D8-NB[t%hxNQZUREF:Nۣ 5Ѹ(x,W'L貑Ae^EHs_7Rdպ\$fA/V/VG/E|R{b49hRK_" OhJ%Z_mTh-DpDHv"[DZK1YrȚy^*i! EEBd/%#GJR9ׯ^hHc'EN KյAI):UQL63FLi13D|t)S8χ=Hf-iVY!P?+V1Ksf\=0vh4lHbp곟6x, 9h-$k#H+A"Y8Pr!-;в떲C"‰iCBE3!,`Zۊ&941f4#Nh¯.{L+N`gDƵ8ŵw|ҊSiCz5]14[U|WD~&nX}6٠hѐu;ei̧.?6C3`n[tg,33Jͧ˧OR5A9cʛ(cg;#db oZ0Ͷ5-SxҜP&2X\{;( dQ4Gӝh8FӋl 6ZxU %PHxhz)X$jdX41]NQи""{7̝؋ʋ_g]U·UMٳPziAӀ + eh #:/(q-u%~Rt΅ +ѧbM 9Ģ{ӍjU]AYQG<F@}pSN93VCε6} IgsrZ<*zVGʂt13uzgUBvz +c.|hǚ%;`)\˗iבVݮp[G>Z̖A\˗9?!q'؇p݌,[TBgoXg5ݤFst~ِvio^:ik A/Ie .?rt(Іf !l$qG}'77}/Nl8o= tIy Kq$.mxsd|CZyr؝. +oRL7Y~IP:?M?8y.\ਲ਼ yb ht9f!86EE$qNs7?kUl̈FL`lwp:[ɬ9"MҤΥlƍ׏`T |6;)Vs{iqqJ\QoL6F +m i'4 T Gz1NvJ[ 6\:-|tV txmDYHu"+ +pntzc3wS޿[a?ɿ#.ס".gpnp~k_bjϱ{u]NyQgB.^~Cwpbooᓾdſ]}\*8 ,<8^+#QNVuڰ \N0ڥS;l;uT% EvKs#C!5ԓ_V0_eeˁ3c_>r:RB#eNߴਲ਼`!F)+H#:F#h]EZC;>(;* *7ǿ|K/ƏCwn{n ݉u,Ćہ c7j1>,XZ_ۦ_3_"К׿$`QTF--@#ֆ0_Ic'$ _e<[J]v$Q|FVvIG1 E~ clu$Գuьl=e NjCeLVS^`\UXJk7ZW-3'pֿͯn?"ZQ"fCgIC 4(+мjO~N[ ÓߚX~wA< ò8htȭ16v\y-On&.i$´1}0:h9U!ܺڵbxB\4 Ca@-)tm6[@%~-#{l\<%Jx$u}˖v;_oN?ֻZ[J!WY]cw]~cVUiS~pc+Ar֊WH:W =OL ػL,Wڂ꠾ eyt~y +Wnu #HH\52[#$lĕ䭨wE}+kt8wJB]=/hM2wŪV:ҴJgh-%i=\$i XЊ16i_OЁoܧ"=k85Jϊ"Vgf\Yg:agQ?/iBǷ ]n=.!iu4hTL V)T;6z啲lAF'j6Imv" Gb}~ыEtB34p#h)\-0%Lmv^Vт W㍽_>%\b k2,Lqs0l8P.ڂ82y}+֭4}luyѷ.l u5 +Xޠ$3%Z!6"Ba8w9^0:Ƅ6"fOI?sgp 6c8\$"i i'3XD?Ŗ5"=yEJ +1Y 1lk +R6cIcQ&|6)ߎnXRGϯvJJKjһJ];d0gh642ۋgJ:|s_-+ʭFҝ^Eh--zlѢ-uJ$hI04~ּpj^{Ig ^UyJkؓ|Zb^q" _p9r[#8Qt-8}rŧD +]FڕEEl>ZT)_{dLiCvO*W <AB^hU\d^݀xUs'kݰ;4S0\$5%¸_D/zX=̙SޓfTr`7.f$m-_`P*M+j֗2d6I:XIֹ6 '+%- 9CaL5PZRԂbήCB{~TX.27@ aS9ćRz;*=kSϚqF5Ygm*z(gZb֨C܀Qb[{z%F-!f%(0ѶQ̜󬰭dmSjSx%7%c,!cߙ> (0?K4$uߟsT$^"HA;kDt"z_E\*T"jjt_LH?]}pTu׮ٰJj&!5aj5`Jax,z`&3u[Ee fXl,m'.#iĴ &ecL)6Qpmple`{>}KZ?@o߻sϽa@]vLB{Ih [Xqnj5<$pbय़Zi)uF`)mlKQFVT"]Wx˻&]W!X2ͥ UtW=1uNG*G,|QK>A !=-P(Ї|**+ŚM _ I\_I1B55BțWZ FIsCʤTfK~ eNT`9e1*sUW5ͨ,i0r>pP{D*eU>yCOmBtp1*]VUaUfpX-:Q(Ԓ;[:rXoL=guX} 尊_J~%鸚o:֧:VB=iđ -A\ an +/pqftXJj_41zsFr3`DI! +]<\NЖpQk!M衺w 20y6 ++j}jҰ +O AKm:zfϣH[uhuGtf//&wT:]c8Xj9;*w`2^{n-얊7i k_jrMO8IeŇR[?~e޺N#AuG>.^Q 䏺''R-N|b!z~UQ5[q=FA?Z;jvas=uDpRVl9VF -"JgT&|D]OLSz +R Jz+(ݴZj[UmVmQm :MU+CR +KN0m(5J̋dlȿy@ ؅o\Nn\PkuoVwpW8/ZXa6]LSbeҫDMX}`E72ݳt:gߪvQj;_~nݿ{*6W{r +wprO{`AV_H_HGL!xVtXNH^r~(Mq~C`is{leåA}YzW'SWm'P⟢XmX`r}јR}(C\ +Xa=,u }>L5@zؒ0;.W*Rq€xEڮ{wIxha?j:nų[|oj4D?UQDx!O_]dލ~}սE~2٤HRv# [QT h*Bv`HUҡ{.:JE`ĉ@O="?SSXd² +Y{RFAt~@I9_cLm:aGERB!)Q׃?>Ͷ2RI^6cls}Kc0Dp !f\tH@H%!dHOB(N+2 BzEi+YrL GHWU t-Az6IAϐa ewHA݁Β_fBzyL$1n|H`.ّf7 +fGV0[@0'D?{`LR,3@<$&M?3,x~ɭL i5ʻ*_3kKb7ZޗES&6#cwՌݑ7 uN/N@=5-q3׃DpюfߌK4vuhcD'[l=7`&]_)/\W Of򴟱a1~5x0JOS?A&X!X VdbZl 7ᙷh=6f#@I–r;!C78 Dz +N(jg/G,}:'hw"M1AF 4:$ uL<Y.Ϣ*I#%r +k,1=oOY 6If]/C>1]/u^meX=X_Vi߄KuXYB%4~%KѢ,upzWUwL, ,+DQ77a<֤B@,G/N>wuM%g~`z::͟[?mmKA)3W9.Ϡ;:,[Ο_1Q)Y{.uS͟43?i*{rdΠѮTNvqzS}2~f?6)ywNoOZWJmhO0;<Ì7n+&F?) +/_U9*_dN.{7>(ϽYw5J@X{,\\*1ެKX?;SK{ie7Z_EFԑ +H1 Bݩ!U0(@GwVR!R=]ai9LJ +X(Smt$\! +b@b*Ŕ.ENSs #X)BJN1nw++*8Ui$̯#ɯМʯtX&CO9/bMWYR0`U&KqɧbGŐss)΅b->ʷGof};´|ͷ| *$Cq=b^BʺP*)օ\{ln&R4N 4L +*fbo .%L`DPedxTD-g'3{')f|ffH1$ѳChD@kfhO-3hodc+`hegazdb9PNсpAaˠa|)Шz@!;>1 +&1!3֝.Rpp?E"#1V΋\4iŦYqg82T*[o-DDaV=9mTzdHՓ̒A'̱ͶI51 Y*dN'*& h#lN=(;Ry袼:7aN8V)9TzLRC%`$FT&8Kr.X-\ 8FaKeʹ<\p\J}#sVYsMCkGR.4dO1Fdi)c/bb!5i,W$ʭeWf%P QA^ s΁I - ZaW<>#O,rS/P 9Zp b 72 CXMy w0%ܤ7)F9 0Or `#, #k.,y8|t"R-.U2VDGy~`2R7,A`$[9ۧ %JюɁ^a0[Rb4RdĤ%VVw'!߃lW=\L=xnÓc=TxLMևʇ`J) 6 {a?VXi@<ۅ(uXϻC`إCIBLh&S?` J‡=)b26F$h̙$* +u\lWˮ o( ^"bb|GWOۯL+dJkOa?P6Ǻ0xjgdh2Yb9a"Jcf=|")2!i + <,Vqd4rGX}?$_ץ]kW9TeqI+׵"ίoJ,\o(%: YSXS ˄UGl }U>ՙ(mRWb~jO[Zv}I\hr7qbj鬒/&Oq.l!OVxp%V);e?G9?-9ϙiYϑ!O˔?Gs^'M2Ft#aF~Hk9FH4Ύ2?*ޘHy-oq=JI|)I"[Edi";%-&teYgNOd2E֙Ed\k";s4:u + +,ө<"@AKYޏ&wM:~?WǸCVaudVw#lNՑUXZ:2՝EX...&9#Z5_{-`"o{q^ >3D:ņbvO@_]wx˓%z\" +{30TQ= tj$u6haiut|}%^1j:U +a]!ubOYw>BZŽP5 / }O7nVՠq`쇳"ICz"Ȩg֔:D0_K*4A Z}yE*J Do~4HOA|Mqn 6awa NR뵛 9~#, b50Wd䤲Z!TS5As$h:I"4 f峺q֪P)H#NgǒZ)[P%\Py M$2D&Be3iZ-[{)h%?W, 25ZοdtٍCU62梂46d튒:h3 +%a?:98$h RdE``چ4 k8D?Ybz}s֗|_2^D\l>wG! ֢s!GGZ< ~Wq==u2=A; p΃N+m΢}-XbLX٣/X*Yf\H<'*B. $3 Td6eWؤZ%Z[&zKAZP)a,xvh`a5S%=^R_G U7jn-8f-ΓwZ$1,PP)rO 3*r.%M7.R>;x\t{|SL!}ZLw] (r5M[,.=`(G`~{~ףf7V B,`h)@v"/ msψ;ƹ(λS?m>9!c0QRsy0J8,%U+TNٛk1 + (w%Lh4YN c%p$N׻_/Mt_[W³Y 3(5ZXl֡ B aMXTVgqrQ_}w@#n fvԇY +P0۱ r@[Q愿~A u &:$M@#l=-Y׎u͢@չv!옠Lцꆯ·2I+hsxkỻ{=fq.&Bq& 3[/9rw* lt#雖tG{Ӝ"ML[ z:ѭ2Mj}4}~1Yۖ+'j4|.1qppQd+ě~v'1ʀGXO#Xz\/C5T'flI/o=ͩԷMvZUx'O'[0<\\U$qFnٗ8sET1uԷ7fǺSI 4QtzgUĩ'~.&g"\[!_Zx*/Ġ-6kvj*Is7=$>5-BhAgp HSr!|A.֓ؼ -죽,b o&y->~86J7ԝShٸ|ͱ +wޜ>ٰID? P->Ĵ!-2W|]|GR%,qIp`1^qr]-uaJ|!`4.YT2k8ȹ&C&L\u.Eeܒl-"8}_*wk D@Sq(*w2!m|Y2|>/Anoj ]Dê%)6- +b|kvmN+ւx`j^LIh HYnk V{H:j[QkS*ʡoj#*?uJ2Dhe(u=tNZsa'A-Nkƅc1" < `<%ʏB?oSw=XIҴ2XJk|PM`mNZ9vd[Xϰh'{DY2l Js)xYhˣ%hFܯ}2ϋIeDZ_b 5(3h!KWqݫy]R(LLHE?̵LLؘ aB^UvW# >V%K&J9xe(`V +HF T *C 9?ZrQ"i37u%ΠMɥy7e4Q{ +!SA=ebv}OZw^;?y5h5_q>$R3p?^V~_Vwv|>a&cq4=>LkނN'On7Ɇ5F&9R D vZpme=2P,BEug/E90Ψ 7}(6oJ$QK)!`.\SaU7Y+{u&r1M\EP<'IHʪ:Y*jٶC,`ŽW:l-&wEY3Fp5#~xLYA`&jܓIEj51pxX3mVkd ĜcPH~2MADri0X\ͶR-¿`hp[z%^/^zIk@V:H:8z Bg|j;_6ɎC4 |"XWykJA[xwncc 4Q~GJb>޿[uK@uevn$UQрe<lvIuiR⾔E= |+_i_W@2lC.thRoſrŸ;֢PiFђ&sIali.m2Im ?Dj^ԇdXHkg*G-ՇUDKR2-}$CK^qZ]U]@=#exu+œ/5/Os)Y00;f 1g;BdA%1X!8S֤[Adƿ7eKܖT:@Y=#k#Bd(jDCg%J"- Xk=ʸ[t[%hĈ%I I˵cBF;'N:qxj3) ]$'1;yrn)ǍT^p 28m)m x;xyR^s ޶ +2sof pu@[߆5G놳-jA%K F;]|'DkmJڐb,]'*me5ҚeEW1fE`ӖҭTmWpmKzPE7d0616SKS#F/_q۩;དbAfq] V'*ԒLUTMXOR%]&?MAiq]p)YCy)dg _@z֖ Tt}|31%QLf Zue9RgP_x*LUqS vY.TpH3s JFeI<$2Tx.A-p#xSOB +lgHQ4H9>4.b8ޯpl,;iᔨ>5#D"4ǤS6NC kE MOO0c}-zhIsΩb 11ZYq호CV8Ҹ1qN.gF$Ēo&/C\XrvMSR|%xxCVaߒCca4`>`f +Ya9B݋%Nhf5q3ę5Ԑ5 + +{IjKk)NW;Ռ%% CºZs!#5mS%V7 5t)˱`Ck - '<ȃ݃+ t Z2TH^E1#"B)28F|_ N[.m~;oEl+j^g8`HJ7k_Cmr/.kݛDaCخWjconڕ!lIUpxXTǁxxutȕ&y¨]aJlU,嘅/lZTbu/PAA>{4i'H>c +~נ,xlGA3N`- /!vϵ0 +_u"<͝j]}V9ذQo(k6b~~y!Y/7) . [߷4fYa.#=bF&'gH6iZzx_B;?(dGMm%m63 +ΊVXIu&<|.u"1%W,wb̚ ɴdi>|t:dǪC+cUꃝ3I=-)~kzrj.P:po0PMC<`kռԅ稉$y+FI:3/1No$T_romEb9,;L sXȝNjLU 'w?*\DȝhG$`V. 9,ux!P<1jD +TI 6I?.} + CvQqp4{\øxqa\(pG-<@W!~d)cr=Rμqj2t o|l΁|wzwgo +LaivghPr+0EZ33,oxC3 EM9K &Lj_^, F m[z%¡Qoq:f6.8Ka^t_|pb_4g#v(J{p{@EI R٨ /z[iRt@H?`ׁ WVc¼iU7 2^%ި đN Jr) :0,},{9  Dy*!F'm\i[~$>H?iϨa~Oܛ !Aa3! ci7M$:m)n*9߃DM=1FKG\|)P"o"c P?K"N?TWW:&؈rDV`y.Չ0H:n_KJ /PzkpF Jx (=iBق9;yX׺wPpQ/T@bNw?H΂gQQ/x +nӉAN}8)Ee(zH fqG2mT 7C/aVGpnss 9lp8SI<@ >Ƒ=I 4 .'HJ@RxZ*նT2;'\"ï4u*d:0,S )k4|[1Wg}zp8!H ]ŏ?/erKԊηr~i +镐OX:-_,凌W_]}o)Ov{S}qG^ʸ 2gh!vl2M2e%?C߶d&V4>U߶M)zIӧlGŜߏx 'K۾a#M:F CLlJMN6u[m⬟t rC1/м XE~KuU3G)UpppOިp>E٩"|6UȲW nH׺p-%okf C! ʥDN/ ˵WU+/˖(U^P*3ꐖw2:L8~An +_ՄoGgt(RsO3dP iY2\E1hQ QHM`ds0շbRf` /2-;7 ?~7La$o.`ߐElayDIu/Q;~.rl3&KnO+|So2?|0 i!iDOWo8oXa CUPX.gPhfl1LHX^%2bx&hdNQ,G ~?\\H_X$Ɉiμ\DqgJ]3d6 |="*"?|`%x)dȟ}?]~ះ>V,G,Yӌ~h C8J;4[TTIJL*Vx ǧB|g) KYOs4wW*Ltao;1ܳ %܏[0R +A'b%MHt $/0XJ f_-9a 7񷃟mUYcO!gLݽUy?,pg_g\Q\IPOZ하-^ Ơ-YU,ڼv!-2 dhnY7.v#LR[(9cx?_q|Q_zcn +MUG om +a :k&(>LJF*iJ +bV%wgg8sEIMz->fA!%4i*|y4Y0ESq/a%js_U8&KrЏKoJ8ТE 'V /TV!d.k(k?2@|ڝEl1YIH͈Q}ԖGlD +eO ٰt* +@7*(/m82 O|9bq_N@gϨU7؀nQ)3[1V(8RLΑoFo`hrIϺGZلȾT@Sy'$a֎zO@E ?N'm-l`f-z2(-KmcIA1 8ӬM"qB˨O(nf#7qನpz/8cͱl 0+ &Z [ )#"3΃(qnfBM˷L?ـh*D8<VlOܮ"uJ7 +8`=#17PӇ)bqI'?CQKG󎋛4zXbw.+}`}; M6k&Œz;"޹ho[8sxV욋b<^|nw8j yؓ8:1 <^#X=[ /!ooavR}@Waڀݿu)턬py߭ؿ7 {$cC~"z/ bAzN:MAvDuW qݢ<=v9̩B&6>`r[zY +q˅1fܿ3TkYE*w ܤviؑߟ|/+"h)cv3{a`7.Z-^̸! _ƽ#S ȃ"mFc9xE!KujyBx e|c56w oQKbF~Ys-97#3<K -/%{uqSQ&@v `bFVn`6-^!Zw d< JBK0Ѡmf`J' v%>>R*fﱲ4d$;s{|IE"~{=tg=yX{J6qv$(;>ɩş&~r~Mhc3c<$3;'xH ߝ#dz-'8x?7;Qފ=ފPwPׂ2tO_ۏ,9In?m7>d@7|1߇D?IQYI q:kinti;n i *):ݤX9ba[DsI5XK'_H܇674t{5aeL<9[jKTd96\¸9al!9[gpjsRAL$||\Ǹe)9B*'sq>~T16 460Kk{zSt#mj +xfx{WbP@4 c#csMbI3A5הd1d7ϞL0FFJ)vS*V{[%T |ѦS=RԘzB2!`6wJ{[`eG%lnS?trk2Wɚï)3C%N6az*YCJt8C-xV>([QۖWz=ThTo⡽jZܴBGSyQFnܚ3[{kl-ڝ<{P,kvȲn#˫FFBF.-JjU#%S(NVWvӭh'㻌IN2*#JjWl +-Ҡ]7p5]K0hK.Pfμoq윝\/ڞӑNSF)r3dq|iYu=T-h2G푈4=i>g!bk( B-te|GûZ!TlllgT9%ldYY1mg@ Aq`T/-tyMyo-^=@KUt͝UHgyeS,Jܕ)P ̅nҋB8i>^D-7%j2Sq`jVKd¡ooO#- YƏͼtQ>~.tikjB'jMt6G<ӺdзT/w&_45ϿޕFvRʲ3K$^߸e"],aS;,!LC@@ +/T!'".-,t\#1АXŵU-!j+mKW8|'5ڼFsZxW< +ױ/ǨQ d /8&|}?$/حvAu}14b ®_0xy?_5F՜Oz +11-2Xx9E][8CbZ.tgpGb ;}PؼB1Nrރ!zR<]F/zVC~\$?'^<:G(g'C] /`.@I?[TLؕN-:ŒRgْ؈0g + ʊe|`~1~i52\`݃Q֒V%kH S 3eHU}%~@2۾62FfۘDd.3l̶ydֿ*,RbųHMV7v>>TeGPs>R[xZt-}.EZܥ}F<_xZtxZ-*+rzhmbW۾JbV[%};HV g O@lևעy-kq}NiU EL8- ?ʍ/?~FؒFL 8ll7:/"˨Cuc:/2jfSwiݳb~a<t#i7qxA --hFج?5p<s<4;0 -SO7t4TL6=~Ԉif8}^pMft:ҿ+um>[|Jʖgai+g=%^Egi:XkiI ]>p׭'^fsznڗ^3qMzoA+:׀AѺP_59{Qy# %ԘUHuC }nl? *^V+؋bĨ乾0U;c"d񅊣J1ۂpP4`+xi!wjT!1oC~}&D˙Q;fJ6%߉!!^~;٢P?]҅z=ן\rdYC]oq t^3OnZ 3[ȧrjyF1cOp!/ :}9;X7`\&II,5%#|<-{h սD4x(9pbd̋!uy8pf +DrM3 5YI@\^$Kc3+H +M K `Ej֒ƷZƷ0FK""5 +8JEܫ`>aSon1b) Eo- uÍo]Xd|9uK|Ƿķ2ofw xnIK>Y%<ҦH$T'G(Z+'>;fꁃR#ߘ h]&Oy-Tv)?g2<B1nThkW9k7QC$5d"D +9v洆0VV2X9P5l:9qXC!&̴#sxuȜtd u`\ xz~9@;}9'?ZzU2Eԙ&]}iz+!  }p3@K?uPCUP +BPy*C H$z3 t0'[nm|+@vdGb\1z On)mSд]>u,%R>aDUM>y_u7z[dBV>W" A|b)*CuI y3FWq߻AZ]-~;o[o_)e9o?揽Yf9ror+Q~))eWa8׎nn}[QM-#1*kZ9 ǹpǹX- /ǹh wV88MƹέJ<U8W@zK;|g!8eCpZ!~i;O|!\v |X [$zc3.<7_ƘF}<|37cnK,bN3a@b\47GN^+;d6r$p婦IuL4j'57#uݣ ÄG)Kn^~;c.6^j ^jm +L 2RZ.6j?J%}?xoI>~e~&&d2C7ys7.{RrℋZ|pqX'1I%2@A~Χ-O$iC+x5Sj':I-!ęIuI pϒiow7wvEvqR3p4ܺɽ gΪq0 r* .x 8Zƚ\6a 98xJ&NddiL$ d3 1EMe]c ٓz[/Gǂ umBI= {7zyb~Sk=%ZLXc5S\qJ,PseiLWGw7%{D;Vij~4Μ&/-wT-B*C?[p,c &5Hm4Ij7z U5<lYbVD:iPK j~iAw7wNY/ruü DV1S6L0u~T +{=8g]PzDF腬MAKCVGEI\j%.ocȬN]XFdn&"cDE=Eil̙=\vgeKQN6hwv 1A/I!2nX@AUsΊ,U^tY {K +qrG| +WVPI%Y;`v{WdS^Y6I9VdeTye|pLibKpZ[ţqIpڪuJdX[áJss$<뺀OBq +5l a.K~Ǣf{df{EYgk]:]EY'ޮ5l笴WzǕ?4:5ݴ{Jc8-fkG]Ϸ{FAp i8K&6IFr01nv~g82YW@}˚lL}܁G]ǣ7ǣ-<'lGc}=ll@ݯ9hq~ 6)k7I*FK~9/[`0\DZ2(3QѮF]v?{3>F+S;rՏ+GgM76*o(%*-/znv5О8 v) 6ǎC-q8¡;c6cʪz:p84phqsB߉Nӳ)j?{OO3٥F$>> +?ǟ=gsՀ?{?IvlSxp3=Gk6PC|?}G,d k<~:,ֆׁw6;廎GYxsqSA-"x}]>嫒IdzvuO\r( q8 Bqu~وFS}I-1a)N~.{K([؋I<}tMp&~v,o\8'>nħ->VS|z[4>pN*I[ӟotsRߝGS}&8)N5é +nOqwNkSqjosv7S_hS =MpSjY!Y^Yߋ# ] 1 Zt9YkH>q}/Og` FئAk'ןqYa/iKfFˮs)H1۰N_K 5>Los|C&"J=4ܪVs|+̼^j<`5/$֞ZoqdYj9dJ\=.cr8MHHi"0)[ڠ]`8%d4>.2^RD?PRD,>4eԝskat+J\IzC,ƃwm)nߕ +B'$v02̵q k|ހ+rx(.tx4MXL|3 LfAINo fI;6u0Q 3WJwpWxw0ŒĔ23T,{Wu<-۳K;QHC8bY,m24\.MDO6zuy;]xtt=b`'N<]ӣ1V +Z^Kva谮vX{ЅmUOSHO;x4o!C_{ȫR&|Npgx&UL9,$EH }l-B)'qF(C(Ԟ7b=1:(i!jL*idb{.1Gt!kRqApٮRo+&1j?:QCJ-Noiw5\ lwJQʳUpc'|/V+yWKװd ȊvbŤY Cfj si|2H+SV M21jn;z4%C-u>vo"X_2 ]v޽ +cC&4x2vJ5K0LV+bh6NHi>dn>o% +෕N5/dBPd_5!t2f-~V glrH]Єݘkޕ$Ń dxD%<8Tjr'[ ?ȷ3ii| ?ϰO<7v{?H55-V,==!!Ar{8lRȌL[I忨RN+`c:7FtP;\׮#"-犤ƱGC?z(lc]ZC2KA(+-'.JƠG$ |zr-Q6pN1 +cY~Dl`'Zⳡ{JGz#~28,_ b3#Oc`jp^~W5̔v#N2LGbB΋!>%L/#^YΏVSa&4@wg$𤭺U B;IHAswXܺŒ \8S2<$ N %U=6:+nA Va22E?ط)Ĉđp#n4-p(m.ї?b]w!^gbuqςؑbƜJ eey3{Y~~UeE&dHيxN%eP¬Þ?HONVD(u_5#uoő.&_y#i䮐NYkTZ?_ _ %\%O1Y.5 8M#5yv'E-4:!*]B+&k:((!0VtYfAO΂!%=LKH˒]o&Ф0_'yWdvF>xOww` &#e<}X;ͅj~Pqn 7} bJ}a; F^\[x6/98 Z `3>S>F.3_ ` Elw/N>zhIеwZG5|_1 t:{f8~ +3tv׼ 5Yx{ABn1NR.'"F( YZQ +=)Q +rJ̿Gg\o +Žǡ$iy4oJN~O1 YK"|A[C`1ç>uqb'^u)~8 "qA *6<V jeGlN]99@ϵBVu2фl$d4X]Gp>za"%؟Xp{'t@~as{I1ڏ0e |4Y5ն}]fr ~8ͭgFm㦡Y9E'Ż  +bqsSL/o`q.@[/xJ5d`f9?O&}aGiגKVK8%e=Uy_\ +A,u89Y?`jsy"w≣|ˮ`Ie`PPq^0ϋ [a"fDiS@e|->wj7 O2thK!$ʾD X7ȏOO2Rt< +ix ym% =D > xx!рߚ"U`cd)oㆬX$eg@9JHuzU9ZCr:,IH#jp [I( N9Q2)0C TfEA#&aB2hEږds,E^b47;ڧ=s; ?Y笖Ef"i/r⤕/.;7ŴMh(pV]F8=|q<e{ȏEg"e/V9_Vb +W8_L _4PTb^ M5w&Z;RJ䌑r!N7;Q9) +R[ beh=X;dm᫧T6Rf_I )-.BW9NmծZGRJ{/C&ل"4rSJD:0)9!68&$4TԸSVbYd1'[G}$z55uaGz0nN9=XϦT}ivꋢ,.1Emw?5& nP*1@SGOR& n.fz@Egj5L2)mov>]27JRpT p`%mR7b qެd*Z8"HЦs*%x$p &]<6a (Vl&d>1֥hM+<"%g_σACV&A*A RhA %#vwfvw3yww{NS::NV7x ?TA~F(}% >YQVeLJd.du^;k)tBMGW lM^myk@#z<`~_8,j$ .$ޚ¢_ +gW=83syVg~ų6r>oɣJFxN-YyD~+J/rRF\ObTce#J#5jLLkHh5iJ&Vd]ĺd8}ފ:u;lqó;׎0c^O{x `T?Y^8m6[qY2N_UU` WeX`[nH!m JGHT8EJQ`x}TUmj*(iX=:|U8q,l"ƏͻvBjD%b}26+1a:ϰ52*٭άj,Oo]u_~7`{ҙ1Z?Z[o=ޟwg!5{la|0qy|&hӮBvƒZD8Xa kݥӥhăOH9qӽq퍺.兿 ?ŧ.YdwoU}aY?V4yp FC+cn`g~?oު㶏s{{f~V&^}%]ا> +j.AifmjEm[X_#5\U?bX/k<8ԫq26Լn'*26&&/FW7ꚻxb5&˾?&Fg+(]ZM_hm|ȉGL-' >zNgSQyk@+J>n\W)GM*>Mx8! #*T x8d_"׌'))@X)>ʴ0N/d %`cؗRCÒمX4PȂ)տƝ .beQW`F[%a=oPNbL "i+¯coHg?UW. NZyBW-}gq^^ăL5N}^ZlM+eUp;dQ>P[26%҇Qg3NwvԦ>/<˴n$dȀnQIQ%VuFN`<ɮSFZ(#<zXZYI +-03 +V}&21)hU-쑖QcVjzխ1ҩJ>} +ZR1 P} "#}FYc2Ԑ6.Va#'pU4 Z}G] 4o fl%+2pT%"c]2ɲ9xٯ,I$QW3?+n'Ȓao_zK%lJ&R-g/@g",-VIZ=ZHPfLfKH2NYx&gԈ,Ʈlr7fe;"Brj. +\S¤P/ +s9 +߰tA䣝VEuKGXDL,PDҠN_x;dAZ]LdPf_&z-8MP^n\6`<[a[5Rd76mE85tnY(Gc+kSWVyk f2luowJ@e,vL1kwCphU2/ՕT@_Ckvɯ{Hڵ=/pqe+vkB3]s$+H1ˀ<3y\b]4ᄉax}St^|2%܇>ZCH O +dJØ\ucՍywi;PsR2'4 GWY?/kFWU7 VDc@{PݲlYRԨk3- /j6+St@ժQ8s8^ [/x:bGtQ͕˫t#x7n~z+6/\5ׁEF5)XPugH& +-kɽ3hР"L)#M]1#K%HRX<^vx;{&<qu: +SG~{_.630aMpG.{f.|S7 \hI N{P>&aqo냠'C8G}o]9tܗ#Y-kXUw5v"[cOMZWc+KItI8H5yI_w%&3շHDmrWİ K!Y /ÓX=oE0,\uD|;T.ل~]y5WzDDK>YEDCs_3£JD}/1_5n|H%B+цO&,kKL{$V nW5|QClDLhnW6? G@-+댦{T5W4Wi?noՐєQuJuщ% O>|2=V7}bн4!OxFh֭tej$[B ^5d]v1 4y8巈1`8i_&YX9CQCQ_P `2e+I$?jo`hA&mP c|.Ȥpte{w181Cf<ͯL7G~AXV://{yƄSмU` +IW1 +h ص%_6yNo7TNnT\eMU7[ )i)dpF[wDHv ?#deK͝QA}v a=,"j5Ѽ}ylu2u WYPoh꜏M!>xnPb`"^xs¹F98T7T5o +xVfhqg4C,j!i#CƋRܐ[ջEP L"hpWu솞vbSH=j9$NZqX&QBXu$QEގCI:9.Yy6Z.QC3 ڴʔ1hL萱&GW#d)S獦X,,L/i}tzתIF^V~[Ff~cu%_ooa cK<-ic"X}tpo_ UY74 0rȔc7%Oq }vNJ륍OU[ͦ>zw\[ +vY]/ +31*w{ +7`]1Qy,xg&c1KByNN:n:!$WBlgGS#h c\2‡y J8 J<  +VwXo֥GHʦL$x0t.@HqO}dTmCFcûܨ"FKl!E;6 v%2Ý"Y諍mȫRmv m]MQۗLf3P{C0,i=I,Kp3&kݣN7PfY~ !1b#::}@ڛYM bX_ dn (' ˊ|]Pȭ$?ϭVtv,ʖ=kjKȃ%v/wCA#&j>%5俚2? +_&Vʖu?%=Ug =Off^x+Oڮݢ ~5<4?"-X<="WqQ;؄ _y8u51la:hmY?Uҝhhc=mrEm ;ִc~IJάv%^u2֠\Y/F7O%W7fi_\J8!ܩYy\Y9f0]0eqD'?ENǷz2U$[/NFHR+˚Tն ߯N3QeHj:?U(Ѥ1 -x/!SsjU *m,[! +^I:soU%HRpJZ+8-p`h9Ǝ;T1Zc0$,ieo+0w1KzyAY;X#^^ebR=3x,d)iN/L,kw1A 2bmAdסت^v z1}$`ASbFH?.!s &+a6TĎC_$n[ <4%]Q<4_㖃Sz~m3\kUjubPeg۸dxHw YY8A[n÷yOA>/-a=ucseB[ La<-\9K <ڇӊkEm/HjeNG1|ٰ!(mr ʖV3NZ1LtQS *jTjǤr=}D8. p|m)gdqܑ+Y8=X JucMW*)w+7<1#e6\s 1N2D=QFlPxo3tÑf$V֒%_{i޵I32E[+D"F:Dk݊""GaEeaպF+g7oL'ahaB(&\#&t[NЈVvp]XW؆OMwSp}+yeq<(J0紡@߳Kd66NI^qfY7 ~u.DҬ~_C3K#sX:O -je/'[1KA&fl 83 J8O%rv/K_s[2kma=f%BcVBj&hhI ',o-u橥$7xKZǏȉ@|6!bg*22a^PB ~P!I)K "YaS!M.\L!yƦ\s#ޗ}/e^O}LҎbVc6Ažs\LyFonbS,(O[s$h:94i:s%\v 6e:cnćdhkmwx)[3M'qH6d܈IΧ~eD?LV(FvL20We]&w?TNL/NW3bCsZV.K/X"8yFwfno_Śߕ韞V#~8?Lٟm, +aYPnNƛ*o6c`$=\O96cM2= v)BFѹ5͓7 +O}nS@#1^^Θsog,Bvn#qᘌ$ٴ#8zVƼqzwQ>^ |A?UH` +5JN,cՙᅢK?8#G pօ9 A#C62H ɠRt![Gc~w;X.iv}{e:B$0Ag򈸤Eي_uW9Hɼ;gs6lGo6f܋dnm[=KD{M$z0}7ԣ zfՓI}'hw^K+]qRrM_PDgM5QE$ (e@GiAw ?m<ԟcwm86y\ݮMՅ_M}a`m4)mW, +/5!t[7%囷e9KchRyS1ͳLe-E.St +il_ao!#l7>JnGFƵؾrlO\[n."ۇxK-d-oh۳u>ןQ%.:·1{su拞<IsVG;NKFrE>_~Ccݭt`ڽqFzfWv>˜ۯgWUۋWū06?՝ǰL9oB_ƜJ#@4̇o*!qTt.*O2\hEUoxk7zƫNJKVʹqītXM7 ūx~c.QMbp5z vok4>I,yCݭWfW9'qWywS+)-bRdxS * bmv3ū]azknhƀWTkIdUDžՔRynbQ6bQP(bQYݛy59d8.#6FBY< *ď%-B}dQA +?07 ~e71L&[,LYXW˔|(\ZDceJ/ 5JЍ܂& +թST_jӄ zZ=& ÿUw:ﺪ=̻G5WO<>kDTzkt||g\ƷSX)uPį|0%tR޷gǯynG=ů-į,̜rmYG.'~e +B +uˋ†>wż{1QEc019g( Xpyc]OlUo,+-~_wґyË_ʋ_9ˎWܪگY<lVKEkH,j*L10ej1? h s[YPҏB!üSؙE' q:`=z85sW:XGwYP홆Ej?a- D$O`!>(8/E%Ah 'D[G8OI!ܟ&XUǰC$Z^Rz:f7V&;27]P% q9}7X+m;>\O_ RzZL1iJ_Owf/<ӛ{[E;ŽWNzƉDF%m^>2 FWc7K/Bu1rsBp(ޅȈ076k} Y/4R}BxI\gww Y}:yC^/k?l_ C9'D;U-Oel;$@\1/&J -j6Vw|H0H\#]L5Z7TE֏.|LZ??)~ f)85|ߪ:ل}|{D zzvoo{9 Ec+dpXՇDFUһ`!dza؟t8>;aL%{r~a¬L#p!y(Y`e.3deet fc;@sFiz?$0# +_aAZi)U h*1,JSaua,֧f)|~u45MT3 NЏzb$&9 ]M^u<ܪK!1g0+(sg'o@%rC!(QgǷ=I{e>) K`6ԇ.]/([=e18PoK;)/x ۧ>C} ^?Yዺ2ҚUYk!CUIn=)eiF:Yx;z\t {2ȋP? Wߠi}v$r֏A) E.aU9oA-׵r_7O_O^Vw[}})32KnOR^x(>IgGc;\kyM$p雹h Wo'k㯜02_{VPg@j!RȜ반ZrXS˷pXgہeϼ n$qlX<:+Ө G>,HHJ@ K,<6ЄqVk?Q#͎C!/ V°r% U5$§өi<@ȇFˤ+Ul̷~J>ȖT HGQILW=@r'y %˛}gþMpDH8m[Λ}C:>K+ !s*gyř}NBi]ZRJNfs:wHH\HYvzjg[0E>Qw'*|)'wx|NrJ6# 9deAL.) s Ahskh6mh` ^'qbtިy-Լ⏚dԜGͩyXΨ9ጚfei_+4jPrrir ?|^4&IJ( Nz0 6/<#'omxyY>swP(8PJfeUd_c 3˅e{ׂ2CrArEr$ I`v$Zzo˵ϰ%ޟEzƗA9]|LMe^e= 1*i[p-}xH?Fn+J=|CX,'|qԳ33M%NwcIHKͽ7,*O/+ +4ŸsNދ7hĸav^%!ܤnISP(K')+ WY{*oYO B `yP2iǭS45uN:,8ݶu!5kAmtA'\ dk?RE~KXtQz5 +jn!yuFs9Yԏ}I"YS\/W!9BC|}4΅z#jF2%+d a-'})6X۽[ml|Ku煝oB(_( +(BhxVw󐏻uT7;z7-½9[~}Q,||ܛpQ@܏qbu0QY½آ{u5Ľ:wUw\-q?Ľɻپ#y!.&pwT3rb =y l.qMcmqzX&9%HF%،焵yni!uheݡڪ&VRgso5%83grs(ɟgCMLq68SrNqi]ThC/g͙;t{Y`Px/fgmV,ml(sRo]^1>uU> ](h0Dr "Y%rXqo.߉ZTbrc9!2 < awΝj@;\Yvzy-3T4%O4wLcġĥi6Ec i$ sh<(_@Q'СS1_'3Nt򚯓 W'Gut24{zgNt+h|>~ɬL#h!d@'Nje'NYK']?AC?h ez\&m ʡl?y>^PF~B(]ylUr'l +IsJ9lu-fe[<h_}ڧ-.[,;ݾ[jk]j#U-.UݤmU9T+43?QrtuU;8͵QZCڻaUUcS$k ruU1G˟ ;#Ĉ9mu +:Lj)` +6'11Mulri%rc.e'l3gs@a?\/]"z={Ssn4{Jmt;t[kp&}CPPj |C-cAD̽^k';uJ NyXk+1kE8Hkqe̷("Py9_Lo蟰FUlk3R9LJ=`Τxc^ ΤqJ 3) {d}W`n{z[AT} ]ZPsĄ<۴zkmz;.˺4'o6nȣ]]zS&{{nmê=;2V-8Tf }T-|8 Lkyx?h}iz7Jy_Eyu:ўkhZj#q8ŝ8HgHi]֞mۿ׎RO_K:gtWEjўUOOZmF=}V׆S]ZQe?VO}L;׾Y3X0^OtUUce:|#Ba)RX +Tݓͪ> q(h!F|NSOC4ȧn٧WS(L%"xFGPU|^IbW]' E7%r;K7 tC +66׿u+cv.ڦx5fouq^iCh@ٝo퐫&"N +chOXn`=a:%&(bq +(y:+(jPWy8PO1$3%c̅8Tt %hҒgj#QQLhQqnd­R]qU/^7(B#0 >;%b E2X]??Y]GVr3`U+2xf 3kY!q8ըɵqd )*GmBtZ22sD -Im\WWVy";Q#^E6^틈zAj1`#vfS[SH]e4.[5ċ4KWXqeUZn~% g?0 wܭwwƟ }2kZ_\f󿿴ZR~lD(CV("$DV8ql +;2oC\˼z)k+Y}Q. D$W!Hf1F:;MwKA:-9FU5of50Qa]˼nqGNcxwI ֝)7(+*Қɛ4acBakOcXwQ儞iͤgdZa'Ɣw;)jZ7=u1(Js1yxV:`z<6нx^XFzΝѢzT8ǙU)y>X[zjrw(`=yїo)~æ ]W*#R0dGn)#AzƶQ-qܿqr3lF\8g8CqsLh4Lt>~K2!8 aL0h}s`makp~z +^ʐ/ "[JT!&mscRҸli8IW%j]Tơl~J}(>C?G^> CMBЉA! + Bj^u}hmmCݺ} 5}["(ȇyzNE0Ͳap߃[$lCĶmf$$^ /1oضa@8i丅#i2ž6}{$Y)Xs_xKF ȍp6 +!T>ɽ"73ȽQM\ƾ>~m~&+7v +0DUy$7mJF˰wWo.rQI"7Lr& w,Ki?A|Id.;'qY)¯ Me/IWk{)݋m\<@R0soA4 )~=%C  !uAaomlx6/6)EY QlrW ŐLÐ~ n'_Cz"=b)_59FcH>Q0gyH>Cz4lǶ?PI[e +D]Ð!HHFP2:H`vWN&?O'OG&a"i-E n;GH1=#"U'L?'7C^ y^qß%e7PA- ?B) .4KiH;$u ^:Ҹl\JЀ&5ҕV QZn&}JJ 7a"<O0>?CY%mk7 a(7?n_/c'$?}{~3se>\|Bt>KjɭyO,|Z$ +@z:}s,l1wLqsy O"/,X@7OÆ!Sx{Ĝ=R12%"LZQ6%EӔP)X 0%E)YMPILlkJH怿E6%C$.~)RwaLY"˔\C&ɔP”&ٔ$`JQ)uA^yGZ@e)miN+e/Ji\vZJv,;%qI+ʹ)9Ϣ*Ea!r3~J1k*"a*r)I,àız4S9tc(lNsPLy S7ǜZt1@P9R{zAdʷͶ9ڬ>,dO2'!adN?N2'!Y2 S}81sc +*jg5=9G OH+q3e)?* ö'B|OQ%+F~hc/qQ̀#rdUL[6(lֹzk9s-?GX 1pg^ O5Qd{nj5[.KнKpe l \k MA c Zm%,Y|f +l Ґ%8Twa[LiV4X\-!%hZ6XfTd[FHw$kJiHeRҸ=álIJ+k +%XAg/LKNV[ +P@Sx.S&{("!DPgy!jO+@O9 +@F&aV`V~V>~V +t;@/mzM+@S5) b:hBE|Ҳ?{W Oΐ8G᯸@1y; +ϡ ՉlTJ?ANS)ef`V4_az3}b ӳ`rAtiʩ +)x1} ̠0.t0=Ypaz 4Z\0C0= +M^i$cs4*.01=d"픔6\e4.{igA)Xi^L;0݂nNMDjꁜB*aH"\)_1$ ^{A!N +%u:T؋'BH='];=Iݿ[LRک>>fR_H5y3H"u#ԙƔ-K&5Oߴ˞/Cmy~ r +C{j35SWH4T㷇&?C8rVN׀n"}I_"}q>%} S ט_"6f_ڦn(lH-&=ZD!$= +⛋%TP&=+HUA]`*Sv1AZVJB 3Ns5)˦4.mg).[i^/nۤFgOm;-A)=R0b`V BP)DP!D= 0f[ޮB^'4?K~w߀ +"y=P7mMOB +1bJ_'\ҁmܧ7hw'91dui"#qs$ ɭCiOt'fK[r"&?IX.m_PEgEk_I=stHafF-h t îtke7Rv(G&}6mtNXCɢNӜP993%-WLCB+!0$}T`E+^+Tu> xMU +^tM2+Zn DJ~h復eCr7~55A돾E_R$"rCba^;FOZYC3 $HdG.sSs3*$r#7ȀRb kZ8Zұ۷Tى:^gKZr +wIFjNg"'PV\Q %]̼) ݌eYn(8wEaVsUB/6/U#nH.ސ#ډ,ȺosXRRiF&>X~E|ܦMvܤtu[V_[tK|0smX&~o/b [=WxA8IJ!^uNF>`9,|njDLe`nA뛏 ? a-+NkМyGW`*zGbGw^x&pye/Yz 5;1U{;ZNKnG I4N@7xGvy*SAT +}* /DO @\GNU?v:ލ,]Dw:۟-qNtcd.L0C﷾? +:Ur3CfD_6Rhz/ +A8-w8XOk^Ц 4yGY:pql8߻]7C8?y]r×B]ͧ`sڔiynE[y1rVO8_+D}z&W+ 4O<#%`V=m_#X3Kz~i`ߣדqp:_d/)Tg]+ST>]bto27FSNUϔR2l +]Ϙ)1zI9ɖ]^,plbtb4ܼ23zEo]$uDv[ &0zhdO P/!%۞*38ҽ|g<3'LNQ9DȔ}L3_.A|(̵:l&vaK3Q? +?㫽vk+ѻTk88ͯfرb4m!؛%dظPީYռK@]lbR;H Ƣ'j5H(%3l}w}ԠofQ7d37{sƻ=1AC,z;ALTZg;Yr J[(/҇=oUyMoqQ[\޷<$W}w[>5޷ߏݫ>w(DyM7o. ݲ~b\j5g})yiޗ-'zv5|w~Kp||Yp\pDǮۋm_Y~kQE8,1E{sn]!1 (; 9sۘb ~7+Y3F\k|. E"[:cnyd2{6GYۓ xx,G:,8cB٥]]3'nG|Sfaw!oT=P/Bd*ߩ^̱p/Ez1!-ht,|ԾY;"v9b@ oLm1;PYzvIہҢv@npD]pR·,!6i;P]4}$JeVөz>&S}pxWBIa p?==8ŒnGGKҞ%}O{Uȗڂ똬ʒ0Oρ ^F]dAb[%leڧYv +,V,Y@|"R)'-Bg=BZ/jbae 6+ȿd%:yN 1.OZO&.x N&ؠ߷/SE` 2XNKL{ʜ c vżo}yO(4;r# +H\ù< +sE(X)5 ?b'\‡rn-| +d1*PxȻ*荏?Ĭs!oܒѵs|E-ōYWfa*)ۊ]o(y?f]X힜xr\!o|3X(g:gTH\AopNǹQb\韆7._?[ϫeQoP]![џ +}|oeLx X 17z;4w +zcq ڑ @GdwBX#&-3\7w÷S 7BhMn¹d"n8OC.C.e}E\2 +\=pt|k1AvC1< Bk[4+B+Ր/!gʹFJT 7zW!ߪ!_Ŭ-ak- K(!\xӤ!|=%5| j$_ȃW g`=o\~o"k]5f}d}*oc}ͧi5ղ( +b}yQ7> +4zx¬gq9[|5;4g=rC q-[&ݱy`>c7[#X'7Hh#U$R.8eSd{św^E$0+.}ʊ[.2g _;ؾk_2]I{m'i% ]/Yf}ڃ7_ٛ]RɪyVM+B7c:Ъ#e!@ >La ,i^~2dc ;8gOX6~.M?Vוѕ+bzSiz[<$(ͭ(iwܒCZQm}V/|M=Ecc!P+e&k`Z][ٯ[o/.Q[AG6JBؚʜU3/4Q渪8'>U_YUVɤ=֟RE2`7-(1evVtP'RW}e嫩kXzbz`XI2ҬTCŅːkBq"Uȧ3 +_fb +go+^~%+S1YKpYA*AB,MBUb,F?Q?fZU)^ =pX bㄿ+ +]~V ۸ʍ ;n1tb\YHE:>t]1@a \'.Ay"zRh2@:-9m v|̾SlPM팇Xrg,f:#B^L&d3!^XIf&e(y4FEItw֒%|:\aI(J,Ԥ(S?ji*wgNr0?:g&'enE^b8 sv>$OBy,E ,՚:RN,"QdB^Y Kk'޵wf#'￴98  O, +`2?%9a +ui6[a|/1 ɤSֶKVCL$0Ytzڊf؅o(Ѵ?FKr{l\aݐyr_y(8w0j^NjDZ/2Uz]u+ezFB*r=žJ>"bzWGYz~~DO Ԫd`@Uaz]uiUi蕳K8iui赲;צBMCÅ^^wziѣj.^c9pl NK tyB*]3ͅ^':iՀdm(-2YdG},Y9̾ F}y +!Ⱦ@v>}Q貯We_ϾJ>r$;\c:@2׾<5eZj/VS3:UV'᪈1Zgxj?PZMS 6Gq& +G<@ *}Omp5OmL4>LS%=5AAi7bSԚ)*hͳg2 cF4V+2-BuԅVÌ@ +Bn&Q*S.ZlPMԆXr&f:UB^B*glɵL2PT, Q ̜%EJ61Z;z8Z-/=uJ'E1~ٗǦJ Iac9*MO^ c:S+$‚=U*g6(wJ*h~ +J}ųeGK +xiZޑ +{0H҆^5>|q -ҙaܤFK#l-ǿ /IC^Z'LKU2Qk~f)\&dd\ sj*Y'߬5N +Oikϰit#)gp C@HrPᇃܡ >䎬L䎣. 7!A=!ӂHƇ~rq@iAVHB:Bar29T*LrT!*A@;e;GCa,s$f:ykԄ̄Ae4a4(FEPiIeÙPq(\FFw(w,DWqe<$u0Bܮ(3.6̬Qug|i9z8rÙם/=7K$(3 SW16=',x^ʄUxpUd`v%8a',9aq3X>pKBɅ&, +NX@?a,ogT_4'3$vgYo¢ b Ehuj~TQafEl<~G{ػ4u $&&K hlIL U( }04o/Vϛ>̴/JRŢh,NˡgI>2c/yu~<=^}?RR,C" j #{Q,|4򈇨;D5Fw4vYYAT5CN˘*)QVR^ƔV8 ']q/wT)v]lX{ 輘âZ995ܮWuc~;'o*V6x㕝#_XnUffn|x nQT|oxʢN7f/籋knx˴{-m6p7XɃ\bfV%cRVHe_r )yRb6(GN͉}/ o1tWaD9.g=:Vy"Wϩly0N꜊`&FK?a% [▚g*ecgг*ߨ$೟'~+(Q kܤ2.^w oV< VUVqϛ&VK`C_8ea+gMt<\Q/~.e~h&97QODY_Ewx7_Hq/~jڹ:v!ȴ+OXEP\/fP52|NHb)+r7t!bŜQ`ts(\#ڹ|+lV  NáNx\c&K(f|'rq1̙ -eޙ`^Ÿʋt +ج8*ߖ8WfM O Ϻ>ۍ'o"ŗtJq5u}/sRmN*Læ]fPo, rLd$,9d].6+ԲEM$yV$dVN؉v(kݸCM@JRI.XQR.$$jY}? +PǓ9.Qs}s˖a@ 2Iftc#PA~^!DT4_QT{, At8r` Noڪ+]}t8o?yP5 eezvN2P>wSG^Y|9D|{5sFAb00TJ=adN0K7'BWN^gzEwE7\FM4=)#tH~_~, +Eݢ~b\ə3 128O23Z_CAk+YV; voZ>4"*F NFBͨ'Cs+ьJh^ǗܻLUfمf|BeHj56k,4-h@sFs5]I~t/+4#Ɇ,gf#4M4^VhFh\Uu-C#)efkDrQhJY0خƧ$İHi;ɕaFWZ ++H;:OV*V+JܮV+ekEkT*s+UfD. ) D!Rjr7%YcfV : a3YPM˚ + 7 jIj#G4##eo*PW[~OTԕnPZC*0_LJtp@g0tfEgd.6XR#Y_v +I[hd)u @ON6z8 (gj?`0sdzF~=KخaTvM;c]N5{jY;4ޣBN5 sO; EQWma:3 'lSh-_C7w24>)a +m +g +L)4v뻍)t^S{;C7\>Ծvey}MQzgB!~MnS()yhS(` +M,wbYft{L5J*!׈ !,4_P0HqL02 1^=m43)F=J~S2Vn9bHmnw|} "pnCK2|^{y|m=x=+>`}>grn{[Ė| 9Ƣv߽_w=ws1Ԧ};n;LJwf#06 r>2aW6t6?64 +4\tgK)';aىu$RI7~?-{E+!Z8p*3Gex.ʵ8ͦLcWioZGy` 2dP>b8dX=k{beŴ86`Ώb,3%”Ź[[w8c0(kRSy;iqړ!g-ݹ,g5rYm3iq2kq(swnfq^<`tفVܒKn]@k,z4M|?ʯ'ӿ Q]in>ʸ5C]ְpGFְ(w5lҰ1Eo԰ְ׈U>:Fy Zsj~ACnέaӰ<ZFiְؙ2^g85L {8P\(d4WW364BSÞF6)yh аa8Ұְ*]iةL> {? $TBHaer6GҟadT&!EVrfqWZ\iȨ#Thk?wH}Tr`v94Pǜ N1ꏝ~K3j.#i+`HPq(L+ʑA1x +6]FFumK.[9I- +r=SՁLN.+g@O~zZ#r=|C @3Ɉ BQ}3Ok@S+HEߚjlpH멅?X䲮` OSP+&4[7i +cNR+TYER"WaV;֤8H +aHѪ̈́19ؾDѻAJYՏKE!<`?B4dxDtSNLTӍL7tS>Ltt,Lwx0} ˽.%5&sat;bFISnL7gmL7kLfql}X43W+L74%91}l:_ZmL7XBF-BLЦQ˰Hiڕi\io*$w+3ڤJ}R`E~#4Ft cp]֖q5gaVd'-N5&p 8mװ*:MװL~װF;'kXV9isp"9P{`0hB BV{nD)2f?@^*jN׳euV)}?YF ?q4K:ityhȉ=ɍ|wǼcڼc{<qxWuÿsr~~uW;z?'ÿe67֖]kɿi'4ߘEag.~iEYT[;T [FE 0ekqW준0dGƈ(M, bc\Gimlb=䲍Mml6уV6zi=lsF{l9mu^h-KֶJ6ڝem36Ę6zVƥm6fm6mϥRE ֶFFX޸ev6ZBQ63q-踶lFÝ@6 +o6Zgj6izjhiٳ5mٲۑ,o\6ڔ6aF;sz涍嵍vڶю|m 6ڙe؂mz3hVnduvz(HrvB0c0“\j)v:1uDJ].'4:(t#\@?9Pq 3ogQO$8 O(\xA~ʓO(X:Py}\|p=`c l׌.:0^.RGr uWi-ǖO{hK/{] ].JB2B*B8SUv6jj=NUU2w=tLSww5kr9UNU5t( +vUNUSc+tTUj!]שkTi*K9KTUNBP= +0AvbXo%aWjz3ec^YTkA;UYQu/wNU=SNUq%]qr + +9U9UUoTUtTUϩʟ۩ +RBGw|!fYV.S'v\ ]۩*ywS*TUvFHJ`0À M8XZ|nFݾ'Voomo /5 t:z7 t?|r4֒9+rZ.w<7+nr}&7FCwK6U$k{k{*r{mrU>{Wűf\}{"7_"C&' >b,aP; y1E[AnWsLux$YeSUӊ +ry`{)nCt +!':gӨntrЍtI JJ9}nNt\C[G@V.tw;ÁnNPFwM9>hGjt3B.D(<Zp{̃nRyǭgxRcp[y +Knqcy$l?ew5aQr@y(P8R?"mlۼlJmK=ٶm+pmlڝuٶ *O6|:V8ۆ2ζ ζ2Su lm i r\!ζM!Yggg+N<ۖÕ=<6}vbXug=ٶun!,DEP&$G%;sGm1+4ӎҲ-1WZě +Eӻaw>GwN1wvOκ(bF01+dbcs>q>acO +riSC:|8|<~Gc+JtxHb>\r>6suxzHBG;QkQ|ľϴAGD[@h#p-:цL O!яr7 1+2or4.eUpx-xsmIBu:r'#"( iiTfC52 鍠ڑ 6 ն\PE9&T;~YPmw@]C\Cp7kk6!YPmPm7ڬ4ڪj Uf6*9zHl L(Hc7k02,Tm Ը62m+-rm$T' դeeBu\j lbZl vPek>TۜPm6Zښr7TkP6ZQؔ *B ЃWyd֏ zfV8г&Bx%쀎wo4dVVZC'-P EjވZ[YJtP _ޑrLj[6N5L75pKQ2>C[Zjؐ,j!؃x@&Z[ZhZ[jUH@# ߇vV:Wkw1~CZRKBbRkoij%:}h t M-fRAJ#=AII'9΄8{P=Acr|OyO)~Od'H{eKe'MDLDH]o;HߑvokJ#OjWhWʒn{vO~PjTÓqpqq#Nesӻͩ\ppjvphNjNȩFͩS lHc5mjԜj09դ9TS,BU*?(Hfq:Go&XRɩJhr`$4R +ktp)Vh)VidSNN5468UTSTe6*wpTÖ8r +TSq ,N!?SHT;G)9ԘSxҫ'^^^\Ob2Q V` {R:Ǫ E$Hʹ:l-{ jA'o궊vns5rs1ݦ; YJ)΄PԕB k&$$D!Uɖk˒W%'f3 zr|_3Iրe] .}SSbLVbmjBHIޜ̼4Tmn+elVjm%/o':Iu 5/|4{{vQKYW(j߶,-oGK#;F(zC$ޔ@j1_Md!p=Cnn+nNNnݶ6*Rm<^ϳ #4׈",DQDPAVrP7_0$T&\ZAABP;xu٬2lWXڡ/)~s1oOm(7"M9o*g<[N)J~C54o**oT hqms=\qzɯeTzM8KPiEGuz29/7=5L,DmpSE%;YS-[Nɪj@Fb!}۹Pͭ2 _V)I~| h~=75iۺ/_9}ѭ(y_ty>jp ?/! E�&o4unoфH[?iӠxC& uO%E,kW)vn+r?dNBxH.gcď-)'ur/BR+įį/&񋳈__iT$~&~6*R$/s&~9a]ȡMQDL#]Y_A$?dzd(dFeVخв+C[{sͼ3_rJ߳nzuno +C"[vBjj\jRA>Ljרl,ٻq%>T1I_ !M9v'?#7Ub\34y&gNG%N>61'rJ픫z韹IߦI$}0E XTImw +mZ9mu[o{"#b~Kf=.){fZR6O-)F8}dt/`P-7{ɯA~2KLF3u&hTfQͲF[ethZuшFN!`4`tft%}hhT}SF\}xhnG,F#0h~ѝKѨK*R1cici#)Z9%n@)BLЭ24H|o`*Ğ +Z9fu#{\a٭}Z+~yxKriK9|VZ9[N)8rd4ҡw/9KZ+oRAcZypYrh &g\jK+,nɡC\O0|nҢ[+oZKJ+/_ʣ;%G+jґ XrF,pɫGZﮮ+J?ځagQrzU=^^R̗NkC3@d!g!@!iHA֡5~2K3iُȋlqCJZR^dͲF[6-CJ:!j6!%MCJF64!/=F77אֆ1 ې_4?i>_Q4@+ꓞWԏmC +? )M )Gh6 )|)h2MC +_@~%n4w3A" )䬕Biː@Tfe뷙w:CJ:!%٘RXZ20tRNCJ4!%eHI )i!%mRڐR ېֆt~CJ:!% )imHI37E_#{:w!ݰN)C +t!{̃ +d9.ZbF1Q÷n]»f1?'z÷ûI{4Лt(/pfsBW@s+L +Sͳq؆cS~V;R ++c&Vi]=db q<~WU)>V,h$ ++s]:?µ6BU}3 +>TvnOJL9^90\^XhB#,gmšB̨}jty`(1*(}̝A@CW5"BjW:|~=Wy]>?CZB1NԼo9b +&.~^/GO3ky?*MP:P:9?ʣC1Qs4@iЂQMQLP 6JY7 /r,X'GiqDmɪX-xP26E<(EP(?Rd "Q4jwAur,B߅2(yG]aGvfD: iv%6ztA8ezqP'L`c cA#x+^ׂ;@A G]pB vmsC Q Y\ &OY J2E0-,&4+"~D - +O)T2H6 M˭>VE H gMR$SRW@r9J+m&++<-gUs݁q's4 c66_rW_/r,X'_g=RߨU)/𼍿ryj=l6{i??d!o_f^,Ba F;2 +[fؤ#LT i8KBb/_5((N@ w Dfb̄vߤR,eq/>oշwᏃʉyYK{tH =&$N!/Hğ A7/ĕ?PC/5i`%N͸Vp#?ߔ}G9Yى 8PQ'G In2Y3uP]3ur2@ +@0r@yG]a 3"f2% &(*iҼcA#f\ d+3:vb.;6NXe`*' ,2lyXe?1!q, ,  <ȯ~z=^G*'W 2OutP5g$ +׀UT/yYOli(K +YS + R4R8kYMaR|;zԉԣkg]RH= 3u!jR`>9RkUNSfHR) .&R|R˽H +RKH"R#R#H=R JMiVyZE*PG*e)dޑbWX)0#Ro&Re&R8KMVVD́O3dL?XPTUFjBjͯR'R\Hq!HE-\Hr"w΃Ԓl*ɪɔC6R1V7D*9D*r2 +`DZ!DPHU21 0BpGF_H}&^:G327£ XD_L[Ժ>!B뎘LN A~ j(D_}&9C c%Dߡ/r,X'G)TʁRY,X}}brgQMR0c. +:(X/r,X'uNmQpتМMRpas +M)8?gSpuCAL s sQ''SLi_U(w2(yG]a ;ŒHߐ9Mq92)LXȨ+i +0s/83fr9H* +9' 1\$Y$D,ϹHȁ$W Le01sEMHHqA|#9H !I-mQ$sO< KSZW[nP"DS,5Fϲh(7ZEwh22F0mD.]iECh0rHRhI6ѝ-Ѣ_A\"*XĮDK[Ţ'jȵhﳝ1% O]?5.>vY#xΨ/g63/3aco޸נ&rymx\ήSe|bk2cG"ge`TN)LIG#hI:_Vh썵c)F+EW /{ 7/క+8~p&z=v/`t {tפOMy+Wcr 5a-vx6E[Eo30~Aq=>/Ƿ '>:m%b__*#OKF+6B'-G*7FKʨjw8RaHF}#_EPt LI ^\Y, aK6ѕ4cqɞCߗEKL=eL9!̇ ߔeQ9oQ 'b͖_}X&SGwl/rrq߹Ȋxu8D$!.o5>-yK%RbxݔK׫FWZK^)-ī=u ,yE'%ck %C^%&뽢YFYq) %rX$!2|?/9'ܿfOsHWo%7kUtn[ +Snђݻ#:+i#7Z.y>>-[' DA>C"ECgTB뇾.IHTFO|g _  Oc̶щ3(\"۔Bo<+geB;E_tpQw& +ϞQE)2YJj/RjuJjxjy~׏@^k"[~<&z9cTB[׼rBi(55*i}Ҫk>_~Y1q q`Y91A~nY^<~'!S^?̔WB + "/ˢE#-%snuEC%U5O+.}7b +.>sc9s5 ZMb/~; ^.4ds(8$$gw.<0k}[ᥞ:++쯓 +La%J\͟T…(ʇ cy$X\b/1{W?S唞ix/o#k_x{魌7vˌeR$˝%)S9׋S*jDC謖O*g͢S4ݍFlJm)rF&:.A,dP'<K) k*3V +.3po7rN4Q~3?G;//ˮX?KB`\aHRss&$ْى9Cr߄N |6Cl| +i ff'f/NLϔ] |nKG; xrdtewu_U{55~]t%f/2;!IUf>ꀗ?r\)wrS.zE}誐bl]w\m׭üu,GZBEUF3+*/J|o?}͈3~/f 40ϐ0ߢi0p/c¶ZIøj`*^VdZ#WR:v{[:y^qK*:6 *X;>?6c! eGm"03 A,ƾfcY!;/\_I^^"6egE'[J%`` +MGE`oF) fjC}04~/TY ^7^~WEXbޝqE#TJqx-x +yRݙs"N臢XpqE?{-4Vb(XWw//H&Yn %Њڍ;G0FeCs +׼,G1BݝG1FXвYΑeu`#Bv\4"i.ٸ_i- =-oh#(!2PpKNaOka8h<~Ƣ`̐owdǁdceE/Og\("BȽI0E^{Ep.QTUGVvF(wsgOQd蓩uDKC }Nki[4ߡA/"(O;$s;/'2Ա#_1L,VW>PS[x[Q7cû(74]µͮ + +/3~33_yn2|6kW?QŖW*~9EƯ-SIG[S/eKx1ϢGEtkľqڨ~U; 7=F}JiC;hyͨO#RK )+:\!(=Qq-FOo#Դ|19R)!̼68SW*W#իO3uyQ3Ũͼ6L5hRrǕ*i2-#xb}պ^juR[`@)% uNG4MQ)SkvW^o)UTQ3}U)h ^2t$ϩ[Fff.{vuΨz~"lʰ:gt3֘yG% +5ݹfT󫲄+8KvK%YFC)$ 3 +@|H NOHAMϔ=>|yǹZ{ʕOw3/$\O9%*?r)$U|XaƹDNE--"Juԕ\+bsjWh a :\u*e7Ѱc:x:uDs!٫?.c_hjl!g4lփpQ*qytAlPnPlPWTM15t'=)~ 㥳Z9(˰?55r5rkd=|8N :h 岹CN̍5-#yטjXDհ}q5,䘐#w q5/= Md+sqeU ȖWy8nw혜@Evvm᮸յj++ZNveveۿ]}<vq#kkF8,3&i@Y=%0rl(% 6,),KwƊU4NCG9{jz{PvϾbVk;F/&<(]!R((;*{řǢw +:ڗL4YSMp_h'`]tUh _B}#pZZYV3Hld_*}==%w枚X"x}k R_F%^(߲EOV"{UkmYDѻbߓsRV/^my/9Qrm0I¥6Fl+!GٖEWREg| ϰqYAl,DgYx^r|٠/ȮS/_rج[.ziuWVBN +)m)k~!-o%l)uX5`$z4K"[-*r/ǔE zrkba/Pp̖gTrD3yʢm)֨-ړ͢Q;a. ].Y壠 MDC'|>7/~)%%MƳ.= I)ql G]fmpb*Rý޷n`_s(|? cb(euBJ@r"RԼ-\)%%h\4-*$r=FG힍cسum[8*,۲=7fof8͕e%3 -6U'?&E@èn IDxW`&g1Ta?m޿?WJW +Q_!*7@ *?T?o*pqoz6DRﶂ ~3D 66ۂ(ڂ(ϻQs b[| Oq I z^ۇs◷9!=A]VDEVŬǹQ)M)`9dB)~ٵQtMw$kG/#`?Ⓧ#-G7+9#;K~nh솩[urw +X_u̻{gd=S.\|jtSYi".opln쯘xT"HJI.:μEW :<:ҙЭ3/KμPJ3[bte7U]㾘`s(OUueOCz#Ay<\@aZpU2Z K|3QX^]NPwJv(WE^=Rӎc(gjh6zbr?3e߈bvj3^m4Y;防r5Uv-,1Lٍ&=aK.(1rĠ)lMW#x\E͉9̉81^?lFpW5`( 1qVo`92.Ӥ&~9S뜹={Yo+3e \ȵ$H,vO1Ic9zJlxF{.T?/T_!'F987|׃CRF׹6*Ø~l0S@dsj +%jyA>(XY+YͷqԱ;miރ@{AgwO[l5L<-[)ntM-[F0*Gti˖NLQ_#Pvumy+r.-Ÿ{cj=0O7=8S8\<&%)zt(MJ-4$Y{i)9[2juav030 1eP/8RQoq 5QdU~QF?'{}6.KݱI TZaiYC44Ӣhha:hL9Пk)+U0%)) ({V5Z 2(\)'h6v~X~Zvq;Oa +DŽQNH9)#?,A/fJ}@eM>LܚsF6Ce"Ym0ZΡAUd-1>>Σ*|ɧ9.%QG%pym%k󣙲E$đjX7\G^C{>#b?yiiMo#yl(;!r]P\ufWlrJc zZj:$X5AScg53 QcMeuؔg|Bɓ 3S7.ZEx^C>zJZQ4K:g{[5t+彴z}s 0pr6T8Vm>rN$Ͳ&_j|i|u$5ިx ~b 2n vmJj+z~'Fa +j +b1ΌM6+_~}3q5uF:|bYL1yӍmR)F ۧGqd[lubtZ@*+(-c81fTfX64ՌWG#gz] IJ&EP/2V%yZ z>iENs2Ĝil|P .A.A֊K)+pI?$_]L8?3 +lSD%]KJ3YT;cMTқC+mx}%oY2Z2mx`@,6*[|(wdHg{K`\֬>7 {sBCo\5ІxZXJR2uNywO51`p.I2 x ]wD.`O +< eēQZ`l;[I]xD\<){."vl4$gEcN % < d$)-< A&>]<[3On\.r.f"{Euv#iPAlXM,Kob1DL)ۆ)M1%aY߼fvr4Sj㵫ؘ)MSL);0[j)&sišABJI{qVx,ħ'x~Yd`0&`o&`y|5WP=+rVį(|芅<=@&,i@~ԾY˫)3R)>LCc+#W˃4'T)0Z0UHY)q|jĖ| +?$ .K'jI+m7Ė5Z52d4H^LQle4ʌiNSr1KŌY܀7ZܘjI׎wUӗc+ne+6Z1{xŴY)f =ElbRrO6w}]#\6fL%RI,\PBWl#$:2"/(ӻ(LJl-x}N̦x* x nTf8{~gϳm' [1(Qhd Y|( K%xD0d$aDf',=1GOnN4HռҰs k;Ψ Y q&˸%O-G &a, 2X#2_PLςh3 heL!]$qf$_Nד-s,w$`R1x3") :G}q4 "Ӥںi!t뛝)țilX٪V6dәFR(XrV -.)өnL[ &Ĭl,Wy5`kx/",h]r gvFrf+8X6cqY6LOvIS~dJD%,ѴCKDV9Wk\N4+6`%41*0q=i&Fw`ðJ'^-w2 +V+OuS+xjwߵ]6TH^//^A]/">8ƗA?ߵ'+Pk +x՘@E{)xa^P'6I].F) uQT0p +cp +7\/ob/&J98$1s J у*P^RO{>J'߼x.^L +@]P$ ʝ`sB_&/ob/P ୓)OC7Y&;LL!OI"ӣ޴^. +\" \B;^ҴqLӊ/5jh>.RK#5%p!G'ɺ3xӭM?v#@DX@_M~7~h) Y0EE1 +c(}]]!'C<[h]ޅwW h7~7~W8]ބ]BvI@BN +bկ(DBٞh/p~^ɺ`j^:%sR +xIZuS+EJ:|Szw%@$ߵDxĒw_GdG,~שuİw=p7Ңaa +^MK$E!qVB^aŰ]+^a`"/('hf=qht< #ik=J i𢑗^d/2KH/zfR'i 6/8"L}E5R&ug<5"_~a"K Eww%B7y#J3ݚ6.BuXwY]/Jz,ePȲR]#^qZgȑ2W\ߥw>@Ss:3bTw$TMd?M!c5ߓ7$8KyEHyQfAʋmJyh)/4.F+2bsa^FmV”\FM/iQĦp=W)+C+=:&%|y$e,/<>Fk{H_w%82||EQe;u=) +~}.^J$3%3S6_vxo}}Az_<}]\Az_z_+G˟ +&$^3$]1 TB7"@Ul_;<(-gSaRׄz_G~Wӣs ~yMGhl_}ãiNGSry4_˛XKäY$5>̰ ~i,d]ZBM8h7_z4 ~Yjҫ%mGs0kҨ+S˛W&}_Ă_l6F7ޗ7Eyi6&Z0 ]WMRܰz_lt}y}%"ܐz_8z_H9KM_롆b\W2E}Ր)11UCwLv`_O hW)̸.O9;I[XZ"-]Qv78g^.z#zV3:z->zg{ 8s^s/*H.۸- Gt>וM7]N||ϐQ˻x- ͨ Z~_brT\?EqG6DtQxn)+ߠۃ.?E$bDh輗%2syj'οyazi=Xe{ʛՒ&;S)F<̳[<62S+[ Y HIF ܾ @j(!< j0Ir9]ڍǁĥ4;s bS9?Fx@$я2Udd4L +}]ac'?(i菱9@Qf#?(d/Y0OLl\ꛍjmK5}7E˪xok4RgT `>;0F2:Ԧd/ҫl^TQ-GnӺ5:tZK-ڸj .u\А2WAR몹}oU +֣ u_9!*wLFY*ҝ( 1{!~!J8Vg{YwSjQTT*3*m,G~q7"˞R-I1]$48AشC 'g~4@茊k>_e}kq\;1tHF;]Q۸+CpwK&1|UV\>)E6+^n_Xjnäáfw{VЍ5Da) ‚kpO PP='a4r<#PȐ4`g~ӡ3z)] {r1# g +ovhyhy3cպ$s ?|pioF4dʶzG\c%-I}ā56?괙k6i3#X&}LcD+]yј :N*Bqix +9^/^XfL1\5I8:. +(\6y^b+TQp77xJeǫm5~W2lzY pp]i:W^ +)kU\ +Y+hO5׹)o[ l@Q]yB +Z?Sq]lGs)3X!`P͟ SdA3 +x6{ιb(E3EbHўEǢCJOQn:)܇" +Uo:U?&:#Pt6r׹v/^XXqOOܥ]z.;Gup;Ja t}u@7\-3݈|ncbnP q: =+p^vh :+n ޽{[׳zY(N!iz߶hveho9S5doF4anq +;-v2sr%;-sW, @j[\}gT۞E{s?sxX2橁&8s̅y5ӶҶñԶ(_URjVFb/VWiUQ]*1eu~kQNÖE"¢%~p}{[Vxo 2+῍wmPӋEo~z@p}ڜJ:ipf}ᤶ~6N:lP5ZFDA!ҰߵwLCZ"[ΩoǻpH8ԍmBZAqrr +:)WN[A!14*UᜒAde;qd" ?}pBӼzDZ/v1w7 W7}.c.υ0X~_k#d6(naNDzݤ_kiBvʬ9)7e\sם^)Yy:['uϽcr(88^7!.4p#ݰ=15s{0!Pc|g7\y%G _kpmsPxpĶ{-,m +^UQ|83[nYr뛶I]%.G6ٜ֬EgM˯1GB!"?0]!C[|ڞ<~R+*u|VVLS֊vLܛ˔-,gVT F Ij̥U`|F:ww0-{Uz+%ΞH< + dWu6c"7+x{W;n9|_Lj/=LkcbЧ|1Δ!N녔#g,7}ʟpxOʬfy}]Oʚ3Ly,ߵViJn%^35T}?+LQyͨlCTQ? Q{5UKq0LU;M9cǵs, +[+?Ɓ0i>,w8sWTǍ~P̎kOh+6838ϩǐ}ϯo&[I+a3lhJ25tΌY2qV+DҤNQ 1."HpMh qחZV֊VV3ڊ7k6:f'"Z&MX=s;fl+f{sϽ< svlS!?>-ٸIӴw[F9dvtbN|vu~KLRbg8wyN]l:;{32RT{{øg%nFgsP򃈿f/r4;&>*C9t~/CI^A:1(8WMn^{2o/T ?10Ml($ى~D&5bhI\9 EIG#M=˹&-9+fxI9z6<RJzu*kHfVe֜جvu0Nrm`@ZԚjZZ2WO"uHRlƢZWOeuHN),*A`G~TوF}ʩI*,WfV弔Q7o7l4xҌpfn/۷&5gFVq@Fz%z?pb3Mٗ>22VD%Dx EqUKeX'ClVbXm9uNؙaGW]vGUuK_X`iӉ +ֵ4eeGxxl4&2˨L8(VEel`6gֿt P{}މC.s&9UFA86ҡ/B/+}?FH„M#J-H8F(QMuJSӵ9w盂2_x<*KnAaj@j*.x'+I 94{`jDx1!Ps0̟M|[%_~1){Ե= 0, 92Ԉ:5d Y,GD1IDeW(#׼wro<[>~;n~n1~%97Ou( ߵ"ǯOMM9ǿ_w3_w{ 9.msuw#Kû|L?g |dXiH'>31,]A:l;sC϶Do;qۡ{"? TXQ 6o\#4ECf=jLsY"='ҿ[靷 Z UΤRΤC6h?ieqq&KL:,N&]IR&}Z)1I3#=jr?{/⽢Zx]>P9?n * RQCCPX: 6Y猑'SZjljVUb'9u.R}OQSeQrEڳiv +ajs^Sj9 ƌF%4)DzU 7T|˥F'e[+Gb~?].YeIǓbxjK Uí_U~~v\G H. eҷ(էl1 FQy^~:̶ÿ.e+Jk\^x!s?[CS#k]so-q/7>N~"߆};aϘCmAϽ)RG<wƶ6NURf߸@Hvso\_ˍOArQ*D?7|ȗgxI$?!f4۠!@Ī+~\" lBSҔh(FUUFpRcĤM|S0$@|-qSpR&DqLe*xVR&Fx8@CeЀ{;RkN,Bb$hRr_Tn:(rk^[M, ZC|09=>t +sC:% hܓl†qyt!JyD?U!ˀt A +yz[ab=aWVoE*Zbc-Nb4m7m;1m;nڍ\[B3f + c|*'LΩpHZjړ 4>e,*4MK?2~\ijy1;&2$@w1 ˃: L3ztF0ލ3U]U[1JvXS/Q'+K0[yRL9˯ϑ`V؊hDĞo|&XO;V~&DڋpI +IzAiDty!5NCu pg \. +_*>6E t|A';Ix/=ǷxPnˬzMg3"dQ,htnG.홍X&FW(I~aC.QbcW8hXE`*h||$F}?ӷj"c +dx~^MD%~&tバ6Y'2k >zW/)K}1lK{&i56z ޟ,(E'zC}'@3/f@˶J;s![A}W?@~'6> pe ca fo4+0)e !0A{?ҸU0HD +L3=f +LnhGJ $PR +LGj+dNK{B`M91'V`B4^@i|% 1F+0MOaHkiR〄Z)X@`c1|CIcACc?5wZ\ IxvټA8;xOkpp҅n m#f힭`\׾|Y2bq$;UVw@ތX%?K#]ܨs:ƨ +N 26+T51q~Cc|\^e`/Sy/}@mm+}P<$v' V'o>RW K"]Z~%mN}` +iĞp$H^[e)}.+}ouʸ# x^y>?AƧcq XDr&6yJc44J7w7i~v+%Vq%óh,Ap#; -MA47"h +@6^5k=Uff~̇*5sף2m|Ѱˣ?14 Hil&I1BV#T1hVf}<`22P$ZG +tijwj6dyZn;TG  quEWӥ`dk,h]ϥJ%x T5V_NZ:HOl[͠ lC0|k }qya9MP) ׾loo*kK[c#1($`DXdsgkm;T y=6k6&|K>nμJ9 M[c^ ">Dxݘ$LR7Mc*1s5{^ %ֶ$θ:~L[+*6;} +Ngx)l!>.>7]aX;#^l.4i܆'j_+@3qEf1q>kdQ{(|}(G8}Y[yRiUϔ_g-Xdߍ_$eH||_$2|F%S{:FF/TM7∮"k]gv_]:=bP kQo6=HrUӹJuY -|y0 6brolw!v^  +nlJ1jl #zKncfLPSsgT&$m4cif{%tYO:Df>VE)8f}ʊqG złx e `,,Ea:Q`(o+Q[ݰPe]t2O}vkw vbݽ]$0.+ J +hwO{uən4C]mH nZ^4 <Mפ3I 0Ḅ˂_k%qCHeEyVYB >em*m6T@<z \Q{a#xdiyLXBif’2yKGk8y-ڶ/nC:چm^6" XS]R7?q\rU'YK/>r7/*),.}k! 3滕Qv/Dן[OxlV fW+Ҫ‰wRf]\ $v i#OI2C!ylȳԗXe8G߃"C<_Zehxw_U5 [^^}vdwC)+ɲ¦x&Gr:Rcb}%F;=g}y>v&̸>&H y}VNk ]Vs2txV mq՛neCꡣjQI`&10;%?ek43R/k +FǡhPڜFpȝb68ਠ=RiF_s +lyCҟR6(q(@b+P=ct#uƞww7I4 j/NE4kø5w+ v}$S4]5̎YAF~4̎# &8h>;fP:x*Ҷ&&҇w!mWջ$YYt8r헲菺z7 2* dL/vJV\WW~ U +T)qʈVw%"7PT +)CTݧ<4:fD~Hnܮu70?FRuv:a+X> +Q%1ؘCp:\!{!QaEw +J? ߝ? C2۵@*++hZ,C +ճ/Ĭ&=o>H{FY"eK0cbU,9A_:dd[7ucnp晓G D EI9&k8i~b6tL a;ee"@Bw U+zY KRtż.])H;!QV ɂo"6jady-B?-fVheelh?Y'D @$%z O..s  EŤ.jٮ6|HjbxגG`w`B?mgPP`|<Fa對>5ƭ>)) kIqj>}q ( Կma5QԨyOyVK726sMݝУ~l'eQEe= mO0,i3*u&y&E#s?q3Qu!g֒Nç !èT>3 ϺӖx_jG +j)N"Nw)ZǺS),Zp?ϛe\DtgZ׍;-IrwĹ:?w:???ݤIj=ׯܶ =/~?|O5_?p֣&dWٛ}Jۛw[\y_lDpaͥZyk9WNAѹs +KNJg(ʬcku];CKF%8,se=8 RSms㸜'RQ-lG~KZ3RR&5ER4? fhjʮWk7z#Iz]yi#aʪjA}̸a+%nPeOS5zRDqe:wRGt-4~95NĢsn_r%K^f (Svn6C'Y=(Tq13ld^=\/k.j Lhn7{cjRbqDTMj ׁb4Ӄ7hC$I%切*3v}6he+U\sx~cbɤ!QfŔTf] Pr­]Lc/X*I4N$a5hgRj(;(1[>/ha6™Tҩ2=R8LYEEX5LnjphZ4>bJ-軠hnSDk}Rxhe- J2O{ڕjb9'"z%|lΏI}E8Xbz"M2<^z3R/+#(w~/4 &}4a0(ԖIrnD2TB40GRs< $򾹽W=*-2w'M^&/iPFVE3WzrWgnX+ΆyRhZqSzKYy"80q*+G4;,H-vOԼ2L#K݋eN@^_5)vAs3_/bNpj¦$ijPw&vG5F1+8d +,L]7=7`g(1a[e, D/ޑy:Jڙ]٬׬]z"`&;ءI{ӓ^uUf踽Ie". ѠU{v0@5QX崚ɭOZ*9کjr4sծ4`R})('/NULUe/!3D5sJ7^IP \ZUo6R+FvtIx +Ԍ+S%W,K?wX3Wd߯`5WOCa /)s_o/I f _{ ᯸=!‡IGAw>%~}+tQ?Ց9L m첏$mO47/ߐS{aE+K(W(c?4cbL ,'< [dߩ?;-L<͵[̵Vζk *CCSjf^SW<7;!Jqwq/*ypQwY<[]޾޵4 ;Iz}|2^/Z߄ܦQv.Wk-ڍhCvS#1EBHRk`Tbք^B%Ԗk`G.N0\VMC)h,1g掴 W5wtEgc9]D1XLyS;uo*fZ#oX(gxyqOz6\Sj}D|e{$GtTz7_Zvu{ɜ)}RbF{Uǰ쬇hzBXa$p  g͊&3WZ.j\ijC07~Ԛd)n(ʃeUƩuS +<"1u'VqEV z;7_aCn3VϗB(A1[8CXE7&ZZm`اmO<%+):Hs`1 ]?aB}7}:܅4E2n y~tIߕI;.ŠjWjzR2vBpQfccDn34/nIj#d1FQ +).n +n;DG0jj|*x"tǔFh Ñi!'ْ3D~^+Kzq Bxg?@WbN߷՞K=|D* +Tɻq eyz 38pZM/t`p5_~W;oFCvIKwT/4}F6Zh7RSbf꼫Q| 7_ͬK8 !d5=Cܨ..z4\~VOxO8VSp'&Cqc6lXPYol۴ۮނj'=v.- ;$fC#CH V w(2AC8A 4NӰqV}ID"5VwDK[k]F,vA&L 8K%JS1k`^ D`8v y͹ mƉ /?u=H 6BտϙI z,1Eel"|S%6~Gmc@C=SrnP@@lZjcu޷y +ZS6ڕpa)RD18uc a?J4Qca'^?<գ^iU9dcTE8 M)z&*XQnY%8Dn܄z\pځN +S:0!ڰAw?D֝z#-TTE< +7>$ uDptB_=s1fWfcYq4͊jKkyOĕ9[nA6ۘcQc6X2~Y3n)9ߣl\Ɗd2S4_u`-h?Ԩm3bR߸Nkv#MxsMQo1"ہ n ovSn$Xj/:ql&~Zt;gijDE&;dUFL}[іbM0ެ+_f}8V,"(ENzZ՛ImM4ue@_%:noU]ZӤ`|\Odm:t[$znN"׆%1}^'1}0]o[>unYz%\xK!os-AD[Ka8նj]kzG%Jt4"_p|T wD,;.z3|n~'_Bb 5vۛkAh&#U~1|1m#;ܡ6wdd?%"QsFt  +]h'hFFzG^Nd̺J2fxN )0lb;  V-uGdڻG0t (Ɉ9#0-xN!<3爚EL< 9E|xδ )"#]‹bI'eY:xàA`Nwp 8QQ4>cZg>g[Rg9/svd_$nj1!#Vhڍd'; bh`Oޕdv gv>CwaJX1)٩LNmMf}X~gL L0gڀ9Yu'Ww wj炃\ϗu^7]q.;>&}KϸQܯB=?b=k*+%[lG铻 v'TX/L=Z5zNɪs٪yF3,nVsLMYutȢ!pelsZ5_nùTwε#;>[6ժi yc}շI YVDVN?'fBDdȰ$`HYu5h]Ablj=bGK/o,Pr7,$>dȹΣwu9=hS!)IBHbǚ_صW5RMi9m̝.ve,vZ1jA%t\ryDLjSFeY:#)]>j7Yǭʹ7b\.DoDg1 k2MiR|(v3[C&0](X=ʈR[*:7&mE$eZ mᢐکArX2SV?kow $X׊LVyo_R4:0]v7ҡB2F٩C˺M' +n*S+_,R7qUa" +oB)m +YM=D០yR&pwkx%Kje80t5<#ySFHW iNwK|;w"D)!AE,S~(\upQ/v9$'87zM>!7^^!ׄ =}y&zMhEzOX%Fp +-8E`萭v[|湄^WhHU+Okxӧ6ZwW6zME˺^7f+Dc"h7g~WNf)RE~Vevskzj)n (_m[TtE/=^'8sZБ \=X]=X:= $ajŢ6y%iNRe ^0b g5 u=&o7HZaNjcP,)Iȱ:{l匭tF3ۭmTϛזu 5R nآDImZ]֊$uXKLcmcW}/D߻7}|A]Auo4m64v>-Jvh$OV%"]zT[8/F \RVw(Bjz,AC'j_~s We(!^Qs<&Ib&>ֳ˦I]ܦިp?`0JW퇷`\/_ +nf_QGp6_Uv7Sr@e=_:\yT4͘qG$34_^L>xi0seh(Ё8r$Dg-f_fh7.34!qnNe<Z5G 1* {[vI\Dt_փSP$mz]8.Fu~POE;?Ptr@t#4q36o.Q* Y7,SFA07C}Ofps3dM V# gDkz\t=ff$'M΋!̙&oeރ oȑ#y:/#2`4MGG&wC/Ŀy ;&M,4Y|X4=+Ø-e$Y1$$Pocr10'T^xݘXN2㯁-[ߖdok mjڊeJ| mWR0gozc%7oNo-UycUo[mߦgmQKRێ fմۂ-,#4jHĮ[mDZYoI:iж&Kf^"\fQ`޼®*8E8͒p3V֞H%MԚ-_'oL6.5k7XV|/?^-!ǝSAnk~Ϳ{-Ko7YLgP?T$hkcnВ6:w۸;3FJ^guPC qE+v7#;B|j[53_VMެaپ'`khُ(DR٦Oztǯ~jj +{ՉW^ܭ? V0b!/?,21x1 +}VCMnZ+V7dsnm V)'1HBvx0a.#6  +L?,\͓Q!p$|߼(!\8긃y>]`8 QYwUx;O)[Zy5=(U }WQ"fh{^u8RF>e_oiR?i>@V)&|vp)/QEm~4ji`RmcčYhwl Q?ewKePiBۿɳkz.P١3_> +4E?"$gɡE;(X96vdW&`mAA\=s_+DZ-oo;/`7<_ +9'~7|uowv?\]4q x&OIE Q AJAH&*vp}_ƧeM_]K: ÐKG19V'F{n=V7VQdk d1|po>>k~ՃY9I=.xV'^.|CR$iIQS(m<ق`u!\v"ts;b%<}"S˖ǥMveg)mn@D u|!}YY^|vQ_ >FEt ^ouyiD lïv'ߕGg8v]ũΤc+v=l kYd2fߦZ~a&,իL{N~L\Di{N]ԁ&nFKvcwEA#((Z};]yS>7<=/0x yeؒpc aBfoaoI~iHC&~!Β9xt'^{cք`EρH>FUuKwZ ;uK7x7pX~cI>O\Cg *[ץBO5z5xzkgR&תxAZ ^331f{s9łO]TOѱ{Կ 9qjg1ӟ< x[cj_<ؗqo{U+i]+7}Sѩ9z; Yj\ܥdj26X'7$^: 7s=Rr+v˥x>Fj91bm2%?H'Mׁ7tZLl#*I@ą˫9ɌZAlQ'͞o4]d |7gah='a^'88wjx`Vͳy{$=6 +w$QS{w3ƼOi8Uv3Ʃs~SS>vB3z4<`*葨z,* qaEͳ !]1ҰsO8Fa (˃5#u:_ 5h,1LCѣ gQ)ke՝?.I8F[UGwqƼiQd2cOn MVT$}*K~Q#gu,EE[o+kOHE,#(\:/ K&~ѨX Ɩ2^y5V}7j~Qb_qO +(>;8ˡ ~@OP4~Ѩ{J~_^֣EEE{/;հw:`7~{%&3aEcUޒ h'Lm5)/6S)E2-S h_4rEcރE2Ht ڌ.~a& +h}͇/oavu +vxi~Q4(M/~wh5tLLh@Xo_T^,0$[/=s1bEa4+:z#H +M,H~Qc-EKhҀ\A,ȷ |r[{n1׆%|~~[핎|,[RD&O/Zt){KVZaq EBOPP97%9ٶIPd߿0 ~}S0{ Q-`Û4~6K&]6>нi~sWw51L$kd xP"Jϡ˱o +"nߑ 7=}RgREDް +< @co$?kE1NCw|:߲jh~'7t_K[?3-`45vf<{$$؍GrnzbRZ~eggB] ?@ +M60FYƩ^A"r]^>.Y|qRGfءJMm*j>~UfϽj +7+/Y|﮳:#o֏`)Xd|;nDsΕOUf82TԦp mZc54b7T$ͷX㥛vY|Iw{WېzTÇ^ R=DS߽ ,ͺe: o[ߥ: %gԯ2 dC0 s@?TZ- y>&83!A=?ZuL@P۷ 8D(bGe=Zc3%ҦCC'{h*%ȧ7-?/NkĝwhNlQUU\a򇿻%YY*s@E{w+O_'uv =H4Oɥ'ȱ&v;>4DN]qy\{/k/[n}R*GK!lz]c桯BG+ ?he,Ih2&ZE,VÐ!Aާx?_H_ǺG^ø4ӗeo3꡻5tgCҺy|M-~֖e̼.,\أ/~Lam 7&Su}uG4"Vwp!BBLj&2,-{5וu5;Z%O8rvML"CPGdiEK!kWzقRJݤRX{m +AUDH"Agߢ߄݉ceNj13p{XW5j(_rYѵ,+/MYQ? $W]n [ */[_CdP b#X߇a/v⓺@%;o̙O|l8}6!y$Ah7cWS Xڞed\}M.]5tōہvmZmFcA2+AlӤ-(r&vj5ϝ.W}sdW,$G0|3skBq w6;|̚ftߧ&fM$ȼ̛l2Κ?9wP''>&.i4 +vOhEMj@~ܶ2cܫRkqضMbkkiH*۶?>&+Ȭ3v([W2Uxbgk,Z!n[mrkEoۘbym&&v'yӲdvSdSgj.I[+8cʬ\Pbg .PnaicvF5ȬZj>].-Цb43Z?u-VTᛙ?D- Κ ʪh@ڞ,ROЀJnPGd|* c/fj?ląm:+%եc@}jwJt%кS 6Nd;+@*^F{zz|Ϯ3 +TRh/,y9ɸT*2&?s[ +US9yv"jơgJЪ3 ;dMgWR(k?@2_+ڊ,o!w+kJ(UySѲ=٥~-?%_En\uMksz?^뾰]wK\oVw6?~ [w7~uw˃Zw_ut}yQ߿ +?߾aݍ_}}þIW[KtCܖ=p.-]kar?凷~ @//Yz [z*sWƟ=?wC}?j_l~ֹo`ܻE6r6S{xf j؇P1wb;+|XwbE/k\rW,w }ZVkӞ6V ݂B7-U6Ч<i[E_I6-t q(gJFN*'X,]<W=Alb'7R@2BzPڹ'7Ơ)[.QyxJԷ'X;_ +p;y`ՁJ:oOh +VGuu&P +̿{PS6"cN @?߇BJx1EBDaL U+2taߡq" BLPO7W]-~\Pr#S΂2-u\/H}f矔YA'"Lf\bA\`Hc@]Oy*^;``.ܚ%WV8;`A~}Axs!T3pe~8/]\t*#e*`hGY8 +HW{牓Nzy"=@d'?_\ +E*%Oq+i QuݮXˡ@xUZM h~wlwn/j8[ʈ_slw!qH)aϋzFV!f+k\(KVaF?rExm,Bs7$nuG!FG,(Ear.x4?E.NTD7F'Es#Z2"+ +E}Yg|^D?|Rvjn@ j&ns9Drq7Ā], +y"ܗ27\;*<mDʍ0SҵC+dX7?}XO OmMi&{CV>j] + ^)h`EGVc'\U#e7ԛN PU5U{⎰/[F^s|\d*f)U8heeD׏hN@v+F$M[Q$čQG=$LC"VU{PT~L:2Q]7S*u[Qr@F=7eij0pQ,#*a-^KHSe`קJ{vDLPWa 9G."@̿)gLQSiM$GpGsVd;je$FPOʙ8$bQ cG;Nx;V bvbJ~s:[73%Pni4&${}i3*uy +|B;m*^Wp@cZmP!Z琉G߸3iSu_a9D~qm׮Qa[ v|l +it1Xo/􊌞p.Ze3^HFocLߏ9{ó~8YL*vXMI;AFڹ :' +Rӵ_>K^7Z{b\+QA&ƌV=^HSW +6|.phy:dS&z>%%{r.F^S^""ϩQ|k𝱚<e>w]>jFb7 w짶>[9& c^Ѵ lrcq{:7lf7 *͝i&<˝ZO3}_9yr-W=G%/-_Ӭi55*~63͈S+jh0,x, m^Ou5m<'@&; *p!5dϱV Yď,chTWm^J^ `kDv/4y# c2NCJKsXn@Vg?q9GE>>a,'@ ZAti387ª<r'WRLpm[T=J +oPv4.]]ap foɐϘ;'xk*̘ۆqb4&&3o=QsGQlQ,aZeQazym͚j5](PxWf s .ﻝ/[h1Y9Pu{z}=>qUb=^Sc&~GykԾ2d%bǚ&Qsg񝙀=:[Dk'a#\.kW\;˒?fsA]`Ϭy>>MC-rSYZWT;5~ F*BH?J? ~ |[=?EBO}e9+wg~Sjd_5_bKI+8~4'@c ZFtj-, \ef~ܦ;RЁd]jp{ DTq52^|=w@)K͝/ФgExt='C~9ϙ: fj1|@0+mmVOꉀ~9\'+zѽM:jţԨ`UamC7nw[2+1 脏?gʤ|Js2|U{M(/eJ5zODL@#r+2b['NA}. sf%'Y;)[; "{RcY)]R[<}Հ(@z:<4E_rr㌹c7Arї8~OEQ\5@iUP#J +(G3*OxY&mA+昒8V/>^FRpQDJe* mQMs./RWe.MPA2!,|qXVƕ#<9G7OKnMsDy'ҎafzT?W +AЖ s 䩨v]%\`*tb.f>QFhڎF=_+TJdʱ5FhR7۹ވ|瑇OMF#lKD| pxlE(1`{DDs>怭myvs\-Cz\]Lu,{G59^lD{i}lM,&v/ݻ$KBDt;2|qis셅%TY@M^9*:lga dL3doweh2ZνPmf M7]j1A4hu&ÙWlqђ2TŰ17$E˧hAhe۩}9ҧ~dJ8Ƽ}Ƥ͍ }(S]v\GwHI3JYh s zj 9@XZIxcpېGa&|7s2n\x+԰մYeCtjJ2b8 [X u[O(p!Q J~}G-/F5/pjq""  +S*AeC,s?ιޮlЯ-}KP|0T]ùm1"7r$fOe\O ˩PԊ9Գu3Ż-$hXǐrKo*<,׬ ѕ$Ŭ?\qQqS zs冱eMoeCgV4i5ws?Hnt@:4?ν$!=>Y Abv~^v}NXe̥]*u9a?iU 7Oe?ŀᅑcSQ67JuGQ~,U%냣<բmG$mOOVQ&$%eHD +z-;Sd?,[DKx~zv&ԌgG;J+ !aAJ$ cj>Zv>Tպ~{9sy')O_fSo#R)bQCϒKu.5=,I$ƒ.{q "DS͘QI5Q1#%j.!s O9tW@r\?.=8Zp/}5qso+]Ft7?j߃F Ww! \ÖҒ~^_6X++4ZK}ҸK(d/wd6Vr gP jiz} kO7m zr}bcʈ@MȲ,j ,Vr)+4[h4:r=X~Afŭ^we%K[K4/aK4Q~1*>1p&xܱ>_L}~=*_ ˙^@mM8)NycWrg/<Jq!́R@I8zvʰKB *e'0:tc 叙%k~1 !SM68s}xpKC `LH14#}^!hzIJQ%翾۽KYA-2":}2p7:I`<0ļ"0vzr(YΑ%=^˼j9Jį͜Wҕ.^h9ЩvLv_$g +v/)Lx57e`qv:퐊K! L,05XV!+UG36zGjQA1kA;€ձL@^?Cܣmc]GX`BVa.F&0N 31 +c7nPuR+M%!~*Fdu2@?D4}e'Bc@*!a)[5\5=~KQ/U}Ϙr3r; * B2r/{hMzNiPb@?k5 f5ۘ76G-rwQ|936S9D)GZUۖMpfx^Ң{"v{:nIrŲJڵKoԆ#-Iy;"E2$C2\,vV"2N6yFr(U襤BVK.fhy !XS)Ke%ӂpJ^T Ic6)8_<1U刲"=^$ic2ysǧVZHXtA`x6;< m_ݲ75 |Րlb"xqSRWSJQъRRe&ŧȪҀShT+TB Z3ƿ~''AQyeC(k}3.;fwuJ) + +VJq̈~9Ѯ_UCJKi^9⍝y4Ŷ=-I"Ib$ n71 9QLӴZ*܏+:uH2=ajTϢFlj /с.e^b=uyt7DE1}8h6/SWx-#.&47(l2-=? qV%wfFT`cZ7$'^%Fѥ[G1Eڽg/vYrYLD͏70K(38·/i)Veb,yF7 !1"d.)6j0/Aayc/{dJك#br]Y0rrZZW10BUQPv#6P«v6Wk`{QN`g+ +a [װkWuYVc…V8NWjg ltVA^;;\iHeR[o $QlLjᶌ2渇qUXVբ*!ٯ 75Wu_)W[UTJ:%Xu#^ r&Q/;ExqΐjlAgoIx7O*!Op硟B%<4W_{7觀xS~ +1K3f駹,P]?%VZ]?j .\Mb jx2n'R .Cu ,QZ?7)~e:\Q۴ j0?7LS>m'Y2be|we(UӐ +QQh2`2Q+-KvSMjg4?BEMDtGL$O]eLgorN66#/]RWu`cNv26>_H`?dUD1|9q$uMKgi1~C&k`Ky0ǥ]EfIYo/W:33-ӱt&nZ7!܍b爸Jnw'-EѦ'.h`;)@,5O "}6fhs^t BHF<,9-C43冇n Fb+7(k>šPǚ{Ys<:X"wYF3+7lײ935Zrr(XcQM0|uA5QjֹrirFت$ ֧G2~ڽQ,U+SNI* 2Rqު ]g޸LnbxGL&@Reo'oej82lTiqo)kޱuLt",:$*r"ylDp@)T|*ɂ|,bA1lWa.A=L"FXe\Z\Z p4Ի- +lP/E*:jTQA=4ԯY+jC;{' +VC_}dZ*Sw_H(ܗXNoloݭ\H3Azb "T-֩!=A&xNjFH ¶Rm[X!%*0R3r)fv( Qw,13 &X26 K;>PXꌍ͆8x4ڬ +ʀ{4! f*2#gȔgt2V +FiˢVA~VN9u H^BB(xʴDt2gG}z+Cgf='ϨV1{xwEوiEb{F8rU +Kx(|{j& ",{Mx,>{KkR3I{}_[)'-ζD%dg7ȾIIQH,CdOV'd/$TKvAVKv䨖 +/L6OK,Ƨ)|PD YzYTld0fYļȧg$0˽e$ ++e0Q\ U?E|]s45կ_.t~V!\/iu֊rWb*ar.& +r( +cӳL"jړe,Eifu ?1(UƲ ¶^`C %BJ"Kh*)lBh*Y?3uM0ΓHS `06gm :cl:arr;65{g#Ӛ*s|cW"jAҳ\x=o_9h{ =^ +c ˧;Rò`.ܰl!9ۙ$r)B.Oe-.!*jN\kTeg˂_hhfhoރ9TַtS[)eC$eq3*"- GyXݎ; _N4_h7/{79mm͝vL~CU +p̻&? QٌBO5죈%yp;a}!H_>('C]&+T|HXq bL`&K Ha٢1tS=_^}ړZ,ޡ҇㻓L;/o7sae_Iƨe&|7}▾f䌌twߺ/Ny5YnPwtd}Nv(;|ҩ$rt._rEX.$n »y%a,W6rg2 ׻yHxL +ɨEK9vIYgnO}`}S 4`5,q&j '*9~զ&ձS ^$@fWzGOV3r&+K&9Y{d'OMgiupJt"I=_ {w$p*[@Cwx?d;deU!oc^WS.In{MGA7349׊ěO ʰe N>m?˪n}iil YkʙًOڶeztPmKz[&%~}8amyo.~oZm:(\֧uGŜlg߈S{o:8*Xz>7E[֪R Q#?~e[&}7y"=UFC}2o|S|JZ[Sv]>FpmLb5~Py[K$n|/[S^UCJ_WF nI賑+THRNJ6WUF.S3zu=yt:y6:ٜ`3r`Ⱥ0UE㴋uܾ_/R3ͯm]EB7cL5>cVևR&yZq5NȄ@vK^v)Ou`:W* uװ 3^^htP5r2Pz~4t᥹uoq|{X*7`u$ҪHW^e/MSʢH0z +'Tdj8BN}Fǚnir9CBIB \p:Uþ)RHzIvՄR^7YZv8nyZ]` 1;͟y;XZꬳDKT g|r)5cX6ZUzN3e?Q:.5Ժ"}Y':F6D>Ѧ%S /=J&N`RtCԎVtZ75 EPezEeu:VcTJNS7R|2vڢH۔ieKvhW2ut~STKH`pL֬pwPx^SMӝLZÑy+E~rdɧ45v˺k [(^$$O<8h'P$鏯u݀O r.'{`b41:qO|9ոoi}[ .b_S뼊j*zt(Kr[MS䴾iXLf T^oOHDnGbQOp&Z8)hd<'GmC@~R)>72U[յ艑AX\FoRm~ZM^2GlM yfSmCvIi$!VcYE)P$ކ"xs<_ Q#qcNgpߨAij{٬~'"Fe}ahv76zeBqQ]NXr?@-D_y:Yb5$pI^,F]"FiNq2N"x@18.̋HTR#z # +nWz+nܮ_ޮ$EI %$<Ń6w ]{7)S5K Tjɥj+J' +>/ZcPe4d.N$2#rІʘrĔG}8⡴zJ [%+SE0%a{ܮmٺQ4aCi {(RE{(=⡰=@р{OS#5Bbw!~-{m>d{tm%<Ag491>L#ʒϚ}bMfMebrZ[PAT9Gop#fE4U{ݘ] +e䓴SdBd;;{d_6x^qi.}96lX~!;W%E&s +N )g?%{Two#hoF<Ї]O(M|J.NoV?CmR55ٞTC^IhhjYOxZi{[Q յۚz &\e@{+#^`#9@B ]~lCk r5R퇄ʮ˭lPR{m ˃o,ȼwx`i7o垠[myWQwQ޴i ޽.$/ }~#=y=wYZ}M"+cPJk1-y^ͽ}C Th>rSP=炼; kEU_GzQ*{} JXxeBջ dN`ӽxsD@xaʹVX U|}wZ5vJuoTJUBRE+>Z!;٢`!H!CXg Ԯv!s2$hPQ>LQy 01OCIT%$.;acl~E7rÿH1yWׯWomA Z ~ +작B`;jZ@\O-xƭRY4-VCzu kckw&MnU_4=n/X8k2ݤvXSZoՔ)j"hx$zbSM'yTΞ|r "Xԓyd(ˠ{GzC:QϙJe97чX~9a\mXȘEω@q_vCmƴZr@8@ +wș#C2Y :W~W$ ڭ(T= nܿ;!OߒA[PMY5^Q зW{Ю];#Gh1ϪBS?sp􉅨+~بZ#a_J)y6˿~XHu%O_sbchhr揱pek & I < h)5] .E:!Αi<:L07xP{<.W=Mn]ʿyB {p^Q(E?PV Ν 0~y3'19W[)mnO=äy,fl w:ODXq,`X aa|a0aMxߝ#]Zbj>{Oܸ1ClHD}]bMs aq|9)Ze/|>@>̂M>:-~zhzy֪Xķ8/obwr??gg&3~cR.o QoInJ|˴k-fI$Z̔ZmJ|᭄iByc~2W~tYc5oS7nˋg G< 6 J-{4 +U^0R H UdR$ 6 Uf9Rc;aUlk~M]W^MemM;ͷ25@ݛx(rؠGSrBk5}f$> +*M>^ObKENtxVi!w>#Owl{ [cn̈́-di%K--0:庱>cya#[Ww-l&8WyȄLx p0ccqk Wq`nn$\q­}1!k94 L7?3K}HXi/ߥge ad"O )q=oFkY`h-(:K4}Ɣf9v1}CB|Yz~SMAO-{uC;YAHʬ{ʰj4ֽh^چv70[}ʮP&*.&UnBȚPdtH:J?H: *K5*hl_|_sOϬLg.Ъ4꿨Ng/?V@20o)+!r`94]ju7vwЪf>c؀[m[Y)Ip}#Tk\5%65Y"ƛ>] r$O&۠\$hۖ,^Wڨ$sۛVa]N1n;O&}!ӆ͉^U.v;FE{γ:bLQ5Pڝ|s#]\hUv2M|sz s: : ͬ=F8 ő5Aeik2`Oc2[ss ddưe\`az=yη;emwNZVR3*H=]zRffBaϳ)uʪ rsL(vݴ/"BX+C-XAcQ\/bַVL PZ-)&!~6;B?aMP3ȴ5 ruO%pHBslUlj8 lbgtP9=e'7FN_yA1mšv^+]aYS()[Y#68"T)#Z ptЙESL/Nd :@^@lZFov +12u\7`v;F۵~[;]xU? [=7=÷;y&?@VF +rʌ?/h=1mK2ŜBӄʨ\SrCWWwVfΉQ5r+'n[XWt\uh&&.r(P"a9>齞ݣuN9b83;\7>4V2_#r ң =gJVd+:Du1{%U3 (siz@FMX\ 4.\G?m2h{o}k YO6zY@iols9'ٞ\# *>頦q2Uob%oOE*@tX9K-霯)fYlֽaLck} „zvJ|:SIٰW/_G}6D0xzk טؤG`l" .c݂A@_ + {)c3=fd~XX}vuNB~DyX҉x>;QRuc *z)[Y;x$3&ZRW$_Ͱ%g2\7=7 +7;M j>܌MVe45o!9jv +4eɩnwe{e$ m\'_=3{^xc^Vrxg#9MOgzu~Q.nzo0To+NpnffQ|ܛܻ_Yl%yJ{,zA*et__Jq¹m{inTM"5<H?2/bݍлs^*Er@J<4Na/dJps2ZZ}s>֜i;)C|"CgH<#Wn,2_H,dbexv=}òi_f/=1r*F˰ol/02f ;;8H'0"dsOb4js1)/f='U*v g˄ q>U,o).~p- M-ք?Ԅ_P mYӶ93xoyԌfե~wiG2s|.cW:=v8bau0x'3K|;9kMɁ xjBv.j>.ID?m5[Z☨S"OƱyhtؘIz GV+{}aV a@7PRs>*SUsv-o;~._K?pDu%l s2 e2RHTVj[#Wnvgya^(l_ M=Ez:"/nj<^>Ez܏MB?Pg?J䎫:f̩[+{L-)%9⼜U}C7l;;˵/)WKg'R1;~i7 Zm]`߶;wpHmAVGj)f"HgχмS$O0'(ZwN y18DȲUe [Iutubv(H9xR|Z1 }Fa[֮IL&S9*P̷*g6wUJ`S Ɏ!^JXh&ϗa!ͤpñC3\?m'x"R-K|# YX#=_TdW6=|'DʚɱGdD^FTvP5MkUq3ɨAUru%|2w*>ت]8E|үմWչ8d%K4RPnvrkǐkCrbFf97 :BY)hAdYoLM"fXbLJ.wj롉poru)erxֱXSZo614`mآQZ Cr"'ǹ `SmVΫ+c|[r.עַqp/ $oRʇ5uXE x{2ܰȍ <r:uq_65!a[ߥbHFDױ"ԅOXߑUԢx␿}(ib!o}jJ[nw>::+`1&` yLZnMC>66l'DrM(?+<-guX"C ǎaӄiBM2֚NXτ)qHTS?mFJ`'DYSIbibU0U.xE@P峞NZ@BiV.۩!IIv0?\Va"08v) (]>M0 o˹i\ߞd*nXF *mѶ*>s˲{MKiOb(Ȁ}P `H {fw7}Zs _u/ʹe|݃l`g >g,P/l&`_"gٌl|~"+sWpEmJ>p>pOAx4 }.>2hXh@+P|fEK+KpyQvܷ]@wp@,bG{ +QWh^SK:Kfqۧ~\?36I#q98N8⼆G.Øt[Qs2z^qLE rh0~!~?w(TQ5'Ȼ!q\W\3M\?D;/|?Q a:#&Q~{y(v݉QӶ3-ۺ)aȴ=]Vg.µ>͊T4 +w֋`\薓W!)l݋ADz~ mB!UJ=Pl6_w텅)!kϫ7g6`UNnї<.+ItS?vfu}]ڕ*6=gG +/HH$4bjLn5LUc +fxa+9Us8-Щ[r(,rQ=C, i,tx`}?$phMiDT x*0xpA9 i>銃nj,'\^6iBkL'?Զ"Cw_eDSX15b#Q/wIY/eSo8m"w#^=j5ݺ^6m7gd,>=ɂg >y4f1i;1(+q wV.w*n5nRmxm_=Qv 4t,% &1)lHVbX_ޖöM%uP=X .Y+"iIhokM6!g}d_ ʆL?&5={NQn/,˪sJ6y y>tP͒;Uoe[.r#ۼ8, -JQ狡4aa" Z [LxY_Dh^A6ٲ kVI kp>>y QxӂdZdwZYENYF u$ H }im} Ims h[;&Xh1N%PyR ?OiҟNm]ux?*1nTz`Ub*^$JO䎻>07v7ʂ?pHgmٿڬvkea4[)vإus[px:Ytm̟F; w>yd>%UWQzl S-0Y6CE<884HD8X 'o;Xnf9s0qpu+ 7orRS&ǮV"l]ݡ>+OmA]ݪ~]}Ԯ{UGʾ>MTo{mj_y[k3()`WN5WT V\=VVv5e!FZ_sUY|P W5SjTǮ ]Tvh{4ڞ >j&AT]9ڞU\+_TnfU}Di]`Uj\RxD`o yS١_Q'Cq E8R.뗚U}TwD²;Wi&SՓj߈* u8_R]s)2EdؗC !h盱.i'vi!80jvrHހYuZsD% +:a]# a-߾VcܨCєQy|@U}Zx;QE40f۬Ϩꛚ=Luzei\h&t׮)MlAzF`=[ySE$f(I) M#JD>i'rpMjnr (gͶȧcZGzaUJ_T7hYYxNIvw^>q-yYP=J5 V5pH<Ս"N*4+B}@)Yn2kyY(x @ X,%tB I{GclZխj s9b3`02Q+}XD̾FFÀ",OPb5u\ةMhn Bz(Nr 2}iB{6}7"|-h*m=!mmw>-V;42 /qZUIT*0b9ya䪯FfFY-n;zi3asb VYOWo<Xxڡ z7௟y ûH%͗_Orf.~&䘪]V,zfV{-N 1찎!sǛOox\;뵚{fbe{Xk&V^Tґ sJ\a;pJU;9_U.UBö8U{gĜf>}:'}e/y. 27|)vu9\zh1"\0JQe݇r9;v@-2Õ6VHaG=abOο #_3[Z/כ!sNRlfvR<]^@ܙ[<;m󜝙A5-p^QKs<܇ڣ=<φ І QeCZJkww +v{MX.B_e$X+#,eɕf64E<62>_LLlWpK/Ѧy},cqRsBAz,h%%er= +Ygٹ||5(NbbTIBfJ[crrMzhCcgpY,55x[4}08xH:=EcsYc8cƸ  jplA<'M +e@*1"GA˻:J l!:,o5ɰ102y͖Tpa {HCrFX/g>e-ٲlgkj RFʔRč8 'EpTᢃAS*DaVORxn؍ )S<]o{E*ȫ'Y6M-Cn/|$ g'G9{,^ vRފ5*<>5;?Sy2 'l9 aAUS-Ѥ;dy@#f<4K|\%e֙ԍ^L#شŅl!CbV@lFLg<1=2geIf}&m%zτkIPVgY)+YtO_p0ҕl>YuNe>;\43 b-cƧ34x9uס"Ş?i)zTRdxDYʎHj.ɯCsgwI?fqp-m=_:._&׶]Jٛ}Y\}^|h*qʸ={i=n-c:(`L.c +LL41rA'c I% +iy !?*d${@<#1Yʘ,& N1xM- odž6j`ؐwc\gVb g25 \kݙΌu740C~bp#RĢ Vҫxx`ϻ|1]/ŁɕUހ#zJ qRrT{wuP~Lu +"*) >K_;͉oL|ߟҹ~ċ/Z[ۃ_2_/Ʌj]L0KϬժެ7ikE稍5l[o'u60cMW>m&bL1I*Narʊ``+&!1̉6UЛ/"_}|z@+_¯O8S,MD*G w{pY3ucP%Yv1=t L{&Z`!S,&@PsUJʧ>ESpܲ< Oo1#r&WM4=6I8ӤAâR- +$9R )?NpJ!' Iq8Gߔk屛{ X F4C ;İ:)jk +OJ:94{,,{6dX~jw>)r`l[ObO DiOih,㊡|? YV )2\.f;߃I<hohΚ"5%cs`P{'mW.Y(LŁ7_;+L8)l1"N vN8Z˼dZ6\=qf H-62$ oXWk..#RJk@.NW G;evP h14 bW;>c̘Ko[.~Bdi S:>,1ɪL +2FWKCRybwۀFV d96o)'ݥL#1Rܓf좆*jEq7~}S=+Rå^넆Lxܜ3Elz. +TIvXC;hlE B[FWa+z^0Ғ{:o Vo0>K6SqNƧ $2~'#[Nܿ\I/DxvNrn$]Hhfme.ÿJG& ۾ v9^炏Ly)-NYyW3ǥQ&Hg| _+x)*#&oKI]+$>cC<&i C.ʾ +/n6#:/5HS,{bPI1~kKqL<*'gQN(x6a<!(|+!4)Oy͹[=gSg!mK>Yq'L&=2=>uy@{->ٴȴTyi4Nۗϊ$e-0]|,HSdov3:7-8M1cS޴#P&ӎܶb޴ q01 8c~yKA@{mbm<D6T@$x[yKcuZN>k;}v.0- ~Y:iԺbx8+Es|,]֎/ËG䎞+ć/1=jF,-D +Ȭ]%`5KmN v@3\nnuܫǩbN[x:k[>V|ӣѼWvnHM'j"YJ_U,,fWF@i$>PGՑtˇ@}$>P TH%@$>P$c`eG&]yhc^#ܻ\d+w䔌 ?1n-]jmMEvwkpDx;U̵ ͚U F)ϲoGkmt objVY*JUlO0˺?bYpY/⟍`SCKCv +U dX}{Y.+tQIO¶33 Yor#kפů`/*DZRo'&92g<-Ά8RȬLVZ)|vchl<8Ualg "1W_ ?o;0wx- ߞV8;~_(;^ʌl +kldLAq;wq%+kU|Ґy0 c)F'c'|yR۔N;^~]cR ؎y_2n+Mܚ|v귝I[FT0ìk UpiIY|`-e4=vB[fy:/ 0yK7XL R7HxVYbÌ-% kwce!8̼ `#[$l$[ 1吆aۡ;**FeIL6@=>-d#HSN3*EVX3\!KgH/$,t*M'l$Ywݐg=Bh_Iق)wEizۂk< Uh:l [,i .b8ѭ"B.'F/(Z ]t~ힰaPϢ|x:S 6MR#a.갛̩ɫPLyho%+lg/wO0IZwv1tW*f)v[{)cyBa;@ +\/R`8+3-e̍iKy7s a))47>>%X0'}ɻpPxQ0IC$`MׄҔfI*UB{Ҿ4 t͇{J* ͨ"m u9~z[4ےNS&9pugXPϧQ K&&WwO~_>MrCrȸww{7"N{r,݈$r#2&k%AnsNጮTZ!<"מ vB#+vى@FU̹Q3ڈU`/6NI|kKyrJޟp@x)N7J]F;$S w)Sg53tJ6>cDV%焟ApEC8`~X0ˌL2_+ղ&KCWB}XT<[bʒ%P3!$61A/'nmp諈pVӼ!9*qje@;grUU?mgU$Wh3`缷FA0!k*gE@0_х'i}gm 2a;'ҍi<(@{wZXuv3fVv54~*u/`.׬cZxXt~.A8#ܡwd@:Α{~-)uaֻwL7^V?*zkUTηY2R.E h3GτzgV-Jfd5Pl.On%7'7$7ISkYcwV' BYmC6hG7Ljr@/S">tt]\?bLӀi~,Eܞv c{Z+tk7 l0IX{pa}pT ߗYs,s j [y腼\{*Ɯgud uK(zk+UYoS9t"hiY4>.Ú~5>k kV/>k<, VO}EkQ֩\WSO/Ty>Yݞ4+=IVc͛)qa-IjĬ~t6;N{_k>v&_Y=ŏ?^io);gs;ssm(OtNÑ(2Pțו[K[*V-ihE OCđnSgo$,%bvٷ*mto= +!N{F%dFA^pH.Ydc*ɶ(ދ cw4+3=uOPJOl6@l$֯j@#5zi4T%l&=ec= !Y{aKxk?|rYI@Q!DžSfj{dy>yƻK}Ǒ|~ZSޝƴb\w,Sߓp=Co4 fL&~`Ü-,tA5Z݋z-o/-atN7ߙ^ltǨWat7.2=y FW.qAqHػnZ(,_hVսU QIk@U1д.64aAh&4U7ݨnD^CݾsSD(Jx~%3Zƹ<`;"ɷzJxyO Lxĕ@\F<LJ18 ߙI&Pe'Hzqc:ɐѯ-m t3pc9e̛'|{,iذi Ȭ@ kpq˥_7YB˦6ݷW:i6.{9Y˵:aN3ӻwk&z'Z4pc}5}WIejZO2-'9@{:NOO==>3 %|߉2>; nfKIncRhVF3fiVlQZ7p/=ݛ掉AD̙偹,2XrsqgϏw /9ӊZb7_-JoY{yܟDa[ZgY8Έy ?(wwcYnzG1K6d eѧa=sg7|v:77tjYr~ enJUvCzGӷZ%`эo4{Jx| +4O _őij84dYST_SSS[3v3.gˌgnV?) ʼn& QA ~@&2nԛΧ6pfv" r~Cƕ4N܌`<-`le ,[䩧]f pLWu18pPKw9X9̒EZgٶM+ئ?cUaIUUl_Jd'q>k8?_b?V"v|soArmgLS=cdzG|wR5/ +_3Ͽ{M;. \{2_Y(̜ծSFBX/$Eo.8V¢{>:6 C^Z_}#[jkx-H}h9 R/~΍+ ~ip!z{VSb{UmmsW![[m'_QV^MY0yo'k͘ ìуX_EaRtuV]I؉I^2dͶ{I7{Ik㛙t8dArߎ& ǥWlZaDZXkPD+8%Cر +w "hWb5:YXʚ$1$!yTK]KD۝c;% ɵE׸ӅJUOF Z6f4i6sm/ b%<,Mc &9fv!Jao]m85w6|k ϮÊhCv!=d C]3 <+Jt.hw~+ӣNᢈUlBAg8Fh!bu4Ga"uKBt+äw BlO',7(X{1b- m +e^z<)Z:[Ihr ,1mΰ]K-X U/C!Zv\մfaMKմ\c;|[g[H-Z^B1&Yуsoi,/\ROP^+ +zhCh:]Wަfd]!*6k/B]PnrF=פ^(igUv\vQ'uWHG;=>[уb:tWMnA1g`.iUl$a#b~i,ퟧ n{h #[hYJLw9 +pWd6E$S%Q3#mQ9\*>W4 iӉy8(| r*~T,@]qF]x1\h9?1%rΪ[#C(Wlmok"믅/&,oxH7 IY~<<wA-` @]|xP?K.:O[FQWdї)N%Z0Xcx_S!h`9ֲz-oӱWHﯹuH6\(twCV[kZ7.qǤSIi 5%MyUrBiVY=p1t˴-1H!5FWN3Ʒx~qq#"i)ȔӔ<)RLSR3t'rAb12xjC4A"'w;U77Nی=u ӯdE^pD +m 'f_B~'ssQZ7-Ӿ7P9/[*!onHKݸ],ƥ4)CAZ kh  u IvyndwU$,y;ب+{+LSo麉+9-: `6U*^Ȯhj5~σ(nRVj ;!6 +#m +vH3%{c8K6R̛sνoaw2$-#Whz_= +www"'JGz<QGPJ짽-'vX @/#= ~rc&]aeL(-yz5\qڎxLJ,ﲋm'tOwSR{ɓi>ZSCNjr6sN8-k,B>Z1c_"Z>STw W)!C~͢[rٽ>\i2;xch|xAM_.ѥ:Tߍ?*+{ql/tZnC>t"͖T_oc)Z:fRY)}ZZvT:)N ̚K/ji"oU"s499eoWqeH^xCW#q30/?~Vԁ|g|={>$AIG }HsiHXZUtK/`m>N,@lZJ[T݀Մ}XM(N|HATZ.rYilO8'Ξ#AA֧HyVڦĻ z҄6682}ϿLu1*>nƹ"!DXp5dA(C5ko[2U^c̭[9y /bzJ|u?J")ިvDúS7n)Q_zc; &κ >Gn鞤ݺUzQG:mN^2s.58p* 9f9;26|v@l1_ZFՁpgZॎ{E%WcKfd0iϸCTicc/!x~* xI ɾ͟՛OaCYbƆ9w?,=䌵Cܸܰ}rV,kﻮvѰ&w4.ٖ*Ϫ+hnCpsGV?|;&a+_KߑS\N WcI oJtt/\= /n +rh[׶c-1hh5_$9_ɿҜjGl='= QoTXEn5]6}$5j$.ڤ/L KK8b tO=lЇ#Pp|n\yM +7$Bdkw&19+7%󉧑݈BH pYeyavP:Shr*>gu0'pLQj>4%p qK|7֘tmC0]n%߀H1U_A!ͥNUH%i'P$=y"Z Q }m)E!pH(pNC?J%m:wPtIr릌$j)OT ԋ-OɿWcvT^}n$գI s} (OKST +Zy@,7y󲻓'h`|ɹ7:xKG6MhSXC[P%HÍ5㾫5K0d ͵F($5nhhDqٹ$.=9PmmڨN?p1 +C*F\h=agk pluOKsmۖ nH޾NxՂti-TZ$RJ |d% G7>bT >-S,[kA-c((~"pQO\p{Iǜ%ʚ5H;-߀^"%0=Ax&DЄk[2ֿJ즏[WUJ6_N0.KF4{m*NQQwHQumsޯaL&=l(sTޛ+a0@N_ +Dy}W,<0LrM'%#00 B.e/?fjKUFav?%`Vض%D`ޣd>>$dG7lK0E–>0eKaLG3fF$45;WR瑢nӥI)vFw/]$#lӻUO4<2% ,Q}xҨ>2Mf  #ף1>:&PrKSkL.xQQIZ4PahPCh,h ZIGfǪCٔc¦FjhHr51͵Fc4[4h6s6 ccߍBe 5|LR%I'QmÁgqLpLr1p0?eɫR@Ɖpp4?rZ1I5>`ҩ|C]Za+hVzӗ,[_ة +HA(#26,#2`و'gh} +m0nAc ޿C0|F)3ǓJ[iz3DfD M"|P`(ˌ0L5 +UN ܕ'Lj_'qaԌ0?f"g)qm}fŤT9&/^J'e +>sAu*7yR?$l`/E =&W=wo*~z]6CɁ-.mѵIkX9lPLeh(c{aGK 62\U f7~GhEQ7U joP/;!5pޥ3J;9;O#@35@_gCCZ0"þfqi˓6+S%S6K1A޽č1$鬟N Ku=nؽm*d(pU2C!<0慈0mUGV>Ìh{Ҳjdj],6 V^Զz;DW CX>gE3B H }o$4t~#Ozئc$q{ޙ>+!BE!ܖY0qʼn3/񂂚Sd,,{C]x,Sb#╩lՏh$K9KlmO1M"i؄]6Pjţ^Ha!EisP?!Ն%' x@eX,L,hpz2(1oZ mjǷA<^sDȯs'K8^!b{ >IEN,i]Z\~TA/){mfh%0h7C#-l- +# _}q;"(D -C_m,B@*OHVΓ 7k$pdDA: %Th t7PBᅉE@mLod|~|sQ|OVxʬb1Iao(eSNK9{*Us!=WqєCs]u5H&֡R +8uޞ:7 ++s%O"/mv,}p%0a%l| e~p屯ٙ[^S;bCpR?sUP U>DjX1C!M~(գ#enE\ߴ4kzymP0B0*cM0G(دI!d|%Nwe3KJ4q'P˺9kPx/NA`B + !DGyZI_ѕh`ܑ4 OF)R\ˆB#uYvdDyF@f/x|: zvNN~]N-c*L Q4_ًbZnEz6(]XH_H7J]zb/} ,b>ʦ9I"}# xE?Ye|<2Z_ 2åv)) + 佋[g28h>_e9lQ2ُV8}:,Ĭ-h}}r:Kt8ەԱ\&j}Bn}Oy27SY􄠭bK7IἸ.KP,*]Kg~[$/p3EEL%,F҉eTKτgBȳ#hb{KF cjJdCN*dv$~Q;nF{~\@[?SOO!}̢[lt|| +ٌk_QO[}DK4Q>[L,&^ +njrIH6qB;,Ј]ZF-wXva㖢3IߐgʈH;1Rg&I镫-Z;;4wR.ݟS^݇5J||gB: B,FDIw,T=iB>v֩(:WQ)+%lӇ)²<ayf#uÒl}FGReUhhe_ځ:Qox&ElDTe;bHK% +o3t}R9/X3jXwwVoZhᙏ噧T(r""tDEZe Bi$ҴɢiѾ';q @; ơ ~R kjP֥@y>BIlHVRFZiUL3!nLQ 0{=o1PHjmDz}a >ǂϱsH=?&Yma*ML@ɛԛxu0ݕ(!OS1 3C6X.X6-us%ߙ ֠Uf~mjalJA5 쉇j'`Ȩ].tRUߤoG68vpޮ3ao.jJ +<#ƲV9ojVRMZk㶸TveTKo=I&ޑΣ]N] S~ߠ8A1_ɹb`74]XfوTӑSɦeI +;#ū +pUȬ.,_6=;}7nƒXpQ\l( kcDO-~U{C Fe@E _<ֈ1 LQZ-EY[/RVGNMZ-}K[?-(tS]]gZv[ FqFI4X͢Q!8X T-}{Ͻ3#$bvѽ{羷~/v#M9l5P (tv3mwź^`zm;(JO}p˳赛+ړD@lgodIIF0#ce.zx{zper2="&6lJjPN%`} ^#[ߥ@fI+nBup 7V~c}PR%eW?2.N1F/zaQҏŚX2y]p}z6RgkD(fi͸FL `~OvYK x TBYv*f/lR++n-mU%и@3jk7wwVW)k@lևJԯÅ~MyR0, WnRƬܨGFv4 ljGGyQa*CzvWduV/ٗ* +9Kj"cy'/m˕6٪IZ3^Ά2#goxOktk{sn웸Ulk#Mܻܚ"pL_PsAY9ĕ7Np(fb?\i@Xu_m( >I-wNTb#Qr|eO={ r 2=g׎ȻC6jkyje{vHWg e6Iڂ iϬ!"̪;G-lg$g~v>u?JSi9bygFCB^s6y1hm*`3Вy.Mdٺ]lɼGc/ +SLcT͜-Ol Τ_w" _ڔuowS/Fiz79%Odjjj1O8ad-/fFvqDn VZ;E6ѐEI +:Jn 32>kˏ9Cu^"0yMC*Ӭ-P*uYȿ\=]N6=6kelnm116r8=N1t$S倒Րrp@%;+k E~RLiɾ(4hW' S׺*YZC _~M_{rLU]s#v֖b {j`؛W +H$Q1{ƞ|s|2"ngl>{9WNfz.ŪӚVuRzaU1UVO_+d!O{0 oW?]/!Y}2BV@ + B<0E9LLPnj%Et䊟#~_!Щ0NQtHqeckdjr$ɯ/M)aQ +mp)Tmk +E7($Vۂ?!?<wx9|W{֫ +nbtf#$QCFIMܵ":oA?Olͯͣ}nc1KJXI3ֵDu<+wkZO,.J7J%0%pዚwҭ +TWLlTOKSupfU:͸[(-7[#fP _>㹀4L\K7 V&9/)S$ӗ( '+Ȼ?+>}?9v3v?h@a%@_`oB=e +Sq칁e  +&h'ty"n Ezʨq&47?yjWBweWvВv %'T0 |i+UN[,}/[iN#h;1ޟ{bwC)][WMWcѣLY܄-w\"rrW;6OiԴ>o˽?]q6%nAٟUkUߎ왣4V{2ˎfS, ; וy `d's?TЪBFB~l̹_5]^ٰW6╽ᕝNyWM^Y٫mZΫmQwu\Y>JuױDi"e\QK /?3+̐m_}j:bQn.KC2{01Z신byWg'$~xR7Aa2X f2E#%,a/>㧚Ԣ7~Lw(6tNG)/ n <e_\T>-vӱ1R6=S_3v㓱/488%Ab8+v'N8&(+c#~dCTߧ'd*r]v hEfX9nļ}M_8f~Ev>Row~Z7>\GrUM/ݼO۹F7r\(Yj <{~BwP;TK531R;?D:D(niSꫪ|>L>5>Oy<H7cz}|n|Y, t%lvzc()xu}EC +ZVc0ը &rv#WxɟȽIX>UQA* iXG l$wy]ЪSQ̨zqX]9uvYEut,V5 [v合!gv1YEnؒ(֍}iEHXU (\CU9; +mS#%O4yqᝫ80~S<)D.1 ` +[CW0h، !4-x [xPk8r6z \k[ڵd־aH@y-x_ пcGNŠ_3pM91芡 uC~m|2ԏDѺı,me2kw}#`:?"aw9w%[Pۇ-t krrfru=RZýzHZԌp{<}=/ȕ~HU3$=hs e|x_7 ܯֆw(EE8x> ?ddד |Do>4LKBag{sxt3SS&G@uB 6%a* 68DoɎ<o0> RM[뷅s}9/Sj~o/m,z1ֶOYw yj-q mӉk7E`a+}Eg9*a8Eaxqp ^y0L89(݃?54ԵN$I-9t-^?6#\d}^d1ÁfͩE!_jbr~-əbⰿ K}Ʋ/mJCrk>hn{58Ç/ όxgb4OUy 3 z,+6 c~U!**g<ċ<GTy/\^4<}W*]گ ) #=Vd^@7J;K[.3+ҳFA*Pr{lk|u5 3";PgUҳEt߃|IElXSV{mFV˪⬪~GmQ}"Ǯ գ%QUSm{Ú1o\}ݥ̈́bFm:vıL)Ǽoaͮ]1HL,Ζ:tܾX[j}@mمvE.h0ZsyX$)GB+mmk|Vm;m;e>xfצTur7վSaEw[iG]6*o pCKzSB9+ "JD C+O]G %!A dŴ%Z^U.{vSPK)?XgRd.Qth )Cd|aK8;!T,!y!Q~CJM.y.˗itJ84ޙ}vk]4h|N8MzE:M#{qiLWS{͔ftD?~+ :UVc#mWۧS]b6 )b;+NO}jg|\W8u#0t|ī]0it}k悛A(4AuݩV]gpl}Vph0" MY0pa|X tɗ+&5䙚:k2Xcjjr͗Y@߱<1vEEAOhupߴK0Yv|)Cd],[[1lzk6Sf7LcNs,/x$dKӗ>//Oӫƌy :6Q=4W)Vb+L;ش7ȗ.Rf1ÃQХ.tzTI}R>)|R?O +'E =3 ʮu;FSaٴh%9&ӢY4aKAD nE=>W{?'x x b.Y:{u~.(3xp6h}FBz_˷dT֏xx3%,HWOIţxڕ"|GM'm&kn;Op=q0IGWGpAQZAKc .j[.^<azŽ6EM`-+*MYb͛"KF +b$X $rjgb(ΑqowUjMcȭ(Bd/}!4߉J:JXJ3,x$AU;myںcGP=cpA;Ts/ Fq64D {D@SEWqdŤ0D (#:vF s0x$I8kȌP Tm_n MdOJXr ޗ"#Mjw w157߫p䟬lN`sv@9qRKwGw*3dvH+v,WEՔqqhz+n15OgCo--&3ִԶǵٓA#Obۤo+@=d#*d6r茏G㹈-zK(%ՠN,GnA.jOEP.DA.imI)b >s_8uI~!5>dKy5 OxR \$JJc"A7.%|zy:Wk1i6cm;_4x[b;)$K.Հ\L=̭2ᒀ3Z{i۫{i#*=\pKǿAW8;d8=VɓG4H跥FoW e57GZYs2O[1؝> )dE\#p2Jhj _[Bk_q=T>(@fyK'>W,•QUAQoV)-ql{ Wk7.!4۶.BpzU)RmO +'[.IK}RQXlqȵNjk^ tn 4y!@Co$ N9=]  |75-R{nrl-TO3Q|Dø^ Z_w|`"-; +Kߢ3ٱ·_ra*{^g.Viro7m1pj[^+vP3%^"8Zuʈ\e ֱ%Gh1k'd(f7+kE˶z^n % <37@ ߔe#)"ץ],QN^ ( t] `/,p()[oU"Ee,B;(GCH.=@npUt5їy cNYۉ + o[wٻP쵬Sa]{~%tKRA'TKN|qz#F뚶LQl&~Bi|]G$akiAOIszn*) +!yd*2^yÜJ!3;TNYU»e VLI 4Q{ggl}gޚ=9TEjgم͡fMAlwϦy7M!3#p + ڤِ uȘ`bU#8ZT~ѧ]xD },᝜>ķ3АזА3F>>>iOy7}v2!.2 / lhMe;[[lU&uOie4:S*L# $~JEOqY~bIZ Y]8 bǬX4U$cn(K Nۡd2.%6,gG ,fm!{eY_ZW9۳]r Ϻir ¹ulIVyȞg {̛5rcanValvYrKN፲RY"[q8vX*oVE}P;:p6iVpʕ5uDXkfr9.%Ssَ,Boֿk4zB$#'I)|h}hF}gf!b{s)IL +GvF*QvG8 hoP2MfWeAG +ak#?XtDC|NHGC䆯E,B)h!m#QkQy0Y"f6]3nl_FM*ieq$&`xɎ[=[MU+uپ}s 2, .${ܛ0k{Z+8?OUXq^ O,D~EeA=-.ү* +devw?fa *B:EQ_U&4pxi"L7Rc6Qo} hpX,mД!ٟRy? tdx5h=ue!fVz vPn ّ vI#,?| +G>S륃Ҽtp7hj͑ԚpUQsv[DMW$rW(DvWz*kJV' /hϔm9*S&0~ + m^b::6Wt0@=6,5b^YC8f@C.Ϧ{ Kŀw[ lg(RBmbhYžuURm`c=%DXifANb35$lqeM:ͲqnIlbQlMbڡޚšBHC˴m_ϵ% jyP w2,J֚UX[kKo:ͷ OP5wͼ1wMݰ&;56xXic|TQo5S4=߃wt=G=;lOlhmz×8+rN_|)a*m.rʖ$'G9pKBDlB$zsZ՞cgRqfȢ%ݸJܣ$eI)ցS|/%/} C_"ƨ1II6}Rx_20SrT}qiotj- ݼ\v7 <;N'4UKU|Dݞ=9eMD|zw3JYW'REzUZ&MIc+;^WoUgLd[#$K[vd 4w_UB8;\f{B,;fPO/b8TmQOt[;OuD&Ft06<e\9Ftn>!_\ڗJsgƵch(-)X+܉ <;섘hfMu~g ;*Sre3Sk&`/[W"Ѕo)xU8qSEiNUٴ>&UJzUFnK^K܎SVS^L2JH1'u|1d%0$:Eѹ3cZ~b9{tUE| QU^Ap(v۪zuQUwB3HwD)y%= 2"m Tx\=Yʱκh$[wMݭ:Ck#hG o7c;CX:f-I*J9wN213[2 Ƿ8-8s g.dI0[ qMKq,bq3hn~>lOvq@G*~~&εos6_/#ulnBԮ9YruPS-9Nv,-: 2ZlKlYi;ebZ!I7l^}QOPm;.!q;&$ؕo^;t~d;pn4&;:ֿRk;#P0Q5.= 9Hn)Sk_>ß @{%i׆/`4!O̹%Y %W2Pi9$TyONl~of' +oexY^;7zsnԛZlOD^>$Gh8d܆.k7xc ~-ci*5Ծ:zVmR\/j.h]_] |ݞk-o延o>mU\kwZۙ+>d}|3':܀$_f3v]ؼ;y:Uoϵ cߔ5+J9REsO9f{9{{Y{_^ualgkyOJr\Ky|_G_v(zV4zTt85z-wFoBCz+Z{twv-I/b7ڼycyoRF:j/dYY6lMG>>ѝ|N>MnV+R(H.h}lʌvcM:2x0.x&D$eJ1qHk; YѿzU3fna`mfZ/dJ\, V28P+Dq֫J2Nv:q +JW@9\TyjCnS.ꏟr&CmxpoL߀,Y"& N|fvE8X3zkK]^`Cf +)Å j2Hp3BwQ6/5:%6:ıfJZ=.֧2j}kMzJlXY.laOcvuoٟfZv@+K+e5bSNl s$uM;.2f.M wg1{2SIf&I$)4ZC賀4;p9!7`hTm1\b3K^ՖVgp!5ň BO&pd~\F3,/Ӂ81sHYgap6ZtV{qbI'+8?^$=C4IQ~ dV6*6PŁx;cAC{Y〬 I* $HD21G"ܘ_KDHS}a4~Hp@?9t)I|}KaK#Gn,7 + $f]<y/?5Y$l^Ltls˲IN@{('6!&LL EnNQ@>D1ءӨ}N?Mc//C6S pȊdK(~]2\`.`{JMDj̈́یzl񽬤ؿblA[# Ƿ0@ܵ%S9KZZ$}ٟLvaAKZ5z'UN.˨w]ټ1񓮀ړ(Ozw qI/xz%Xّ*ΉF/qדs=Ƌe].y ҇H|Rz}wkqz}^B9ӅTe]ٛ*KnG[)n?.S0:|KkvCokjj[Z[w ڋ{?'j1rُ@+oʒ ?b82&*hqg{<4։İ;%uB?*^*Հw-E5x(鏬t*i⷟E*F<ƭyo47l(2,DΏr؎7eޣ0Ǵ&5baj!IM ~G1|+>%Ư/nP Bn, )bEVƟhŎoަJ9!(U3/גƬؔ<4znEV,t{vp{)GaNw\bR!e}ܽznBa͡6xW.`DN/\m1roR5Bs-4G?igHЃ`$}ʶMlLvD?NHw2ż-( WC(Ŵoڗ T:-t/6aH3VQmV!TkKRfE?h3{'?GZJ-BhI< Mk%ޖ$싆GHOې\BT4iJ'[<|$%xP(c2Զ;btdg.3p0IOr)Z?jOX= 7=f>%̼4Wao+$/t "Zd[ca\ؚ{l;6dhy+<{sQ^/W>yBUږ1'Tѿ8H32MHnlȡ\5|ߓ$ +h!2P+6i[0$$4ʖ{0PU3ZuaUM+=]F)%jH 0<[EK8!oهTTB].lloX[\-zᴊ\Mqj Yh63/4tGÎQ, z4ʐq.Jsa;ol;z뺰%vFw/h,=B(" gx3Kƹx*6kvpM&\xo`@Y"a"~s+(ƭ[`B;IYgi3M/6*I"8۬g{_>Љ3]Sw˵j[W^^_B~U3u? €nN Lw\${HP +S)+4S9B)J8G%42Z) WU=R%i7=œ $xHwRW!ݤ\\%mɑ&^TfZWm1R[4K#DIDt ]λ̩D|]X\w %5q7 O~]?3еfNRw_4<]C6Iv]V@}¼^#c6"i!{Vޠ~kSto{e0xkZaG~ }v=$`t{κB@TiNpӧO\pMb6d M9䚑9_T,ul,mn4.,jUϴ:Z=u}^RC~^=y s2UW,-&Ob9:粴lNjNjQ' q^tf'Z tLv?+Ui~zZƱ<9sd0Z6_4񤉥a-1I Mݪծg׏1)OJKs}1uuz$*aφt$g&ɾ^B:.gKro|-P&ࡍcރ'@sW{svxuS(~cV :tXؼsZ)\+e md61Y79d=0쏢CWeK׏+Ͽ+ݦ~M븯/'4i.GRT[H%4(IJqCnŘ&t*~ÄmFV[" i͗NJ5;0_pS[z'Z,/ЕCIeH~gjS9qOBlۜ˰GԔ([ >} eKyJg*߼Sg*3-V7UYsdi8rն[=.p :~f2@lѓJ^/j9)m'y:uI*껦N^|bMƛƆySV?2nRX_u4cAKF.~ E?7׬SzcH/lIrmˡR3K +t?#}1I%FvJy` ckĆ_ {Z%zl) =ذ P&.t_=aD MOԾ義srZ3*Ng3{ +}K5v';.)LD)k]Z:8RSKFy:E~iKxN$Є<'^~fUz^p-vk\d]iB< .-% #q#iX) +=-b}_b43aX1=30i[q\d+Ț'kn'vU.Xߨ,YAJXo}(@haݺv\E< +WWy] 8Xmx oz5 @Bi۵2 X]zXe\U2TK p!Uz6T 1@z݀|Z\돾0ܘXhBZ t QgAB*X^G.0δFc-&GcTk*1w]ЪyuV +3@OYL˩, P\ +ir/:B<19!C茏ltQD^k HU+->`rx#/lFEAY0c:f`zLXE<\03`#@Ѐ1z +k]-`2q֊XhO)VIKQY␊fzhcQ Q:.3o?̽OQcs4PQOJp;L2OR2)+cS + !)lfW)Ѕmɪ*P}>TPڌY̼,]s H0bkC]*9W2Ń,V0r,B}o}feL^Ox'7a晈]l u eHNĮPv:Xbuxkzb~%8[mKm߀ 5vSzD}3fLM?Wu: k Y}خ{CnW_Flk?7K2ZkFMWnqzvoe a>uӨm4ZY7u>f~uxy;VےQ>ք=t TFCWCceMsG*i=X<욨EuMSj\YP:iywcw6'<:z1L:jx36, ><yP(}("Cۭ7*ݺn|_ syq4ij}Cf=g7]Zu0Hw..>?WǫoKҁESn~{IEg1{<{gGxvmו.9 )RxuZ/$F͐^ﲣUioc+:߃&u,=⳸T{ڷ,3+ѐ툙HZ4JY?{Xk׮"d"[+Zh/d'WWIX+ݺN/c2n\|kEk#?dBJX,#$2&p! 'M1a:唘|O7y侬U C)ei_cSz*&MRAغF1ٸǚ=˼ H$QCmb/21{,'3A\19HA>K;(-lfSb# >qm*y1B7U3=ZP'8 +06J'^ & +0) Ip;U~&ׯ TJd*:8N@-@[&h# \Rfjݣ +_~2dly񷼆dS*zT ݶ+JXN z"h$-4R"&i|HWc,>"X W3`0zxC]j)FB"d@=>vT1r@軖giF` gkJ3jS~ +WmqA=.3ɨSj#:Hʣߗr8'7ֽxbm +EO|T1=5J=lǩ7D&h$7UQ߾CJ_AsRڄ_]'LgLD*ι3|U"OmcW<2I '!N\W"RK> xc^XgL<$%#;y>Os^C"ǎq-&vtcrG&;=(2RDLn}P|P 2 +=3%”rBc#S3x`| O1v9mZ&~Qj4vfHR”MJ7S"LfJĤHHKL)2)pO21jZ&k`>Cٗa} v7S/C~f *Du!z Q1x,Vā,rIIIIM&i9zd +VW;ow?Ill9zF1/Ĭ,.1f71>/IrDD}%g\)B 6s[l&'\\s(.+lUYfXX]T\Wg޲j5YshEKLcu33+^fD0x6-"ӞHLT0LF͎`R{n Ծ?,Yw|y/. ͛6] Ln8 +Hz  thuc]rD<)`L9&GH;%&g0 +س{0DMOܢ9όTbϹkio9[>2%~i{K<-1[Z"x۝K,ҏ(/3lVb 7v9pV9}F)8v"VwÌsJonycxw^L%T +0`xq 鼑E9.__]GIw%+,sY~ϚK>Hިӂ!Y#b u2G{57{Hq8~k)) 2jG"c]oNiO-2Y} jw13[=^&Z`fX{Te^X pIMrxHu@8LĸyX2&G;C&8ʔn8:ωk)lnR8V,, ]&!HƔa:C,GjT&4F]yNNvoՈCPV}3ǶOzhA5kH´''w>')nJ0i%QS ҶѤHߏߐy c=dcGp~O ,՗K&L#/:=[P/|=7Qpc/>|L:iRNVS1-L)C&6^ʹ|-J` Mj9Nvˀ6,!>kD48RFLCuIBC{oZ6#qRȮ~8,"# wܐfd єs7../ˆ!v oY)_vһ[ZV\ j2$b N +GB#ŇRZ#ɣ`܎՚- բudDf^o.{_ +ɬ,1 +xk}ʩPh'hlA@n`|ymQm2$&3P"@eQg-,R`oe' !FL(}l̍qx._p,ڊL)V(-Pk~)-tr{ ?H}F1N F-qpelbzVO~m ?8XۺζK]cqZXSmm&>]L%8KЂl2u39|ewyؙ"JٷQ sb+ȞT'e{^xqǙZRRg-1"9Igu*>wI¤0'gɰɏ-E cCwn+qs]m] WU^V~XcV@jY}DZ2 +M=>s!"઄tL]D@ƙ^-E2EUDUΔ +/}s!W|ЫNu{Roj xb<: +,b3?zU-"?ZG+/fO-Z׵Fy.Z%[?zrI52e0fH&tE(4!*DD]|M,`@rw. `ojQN ~T]l|ގ|"O4R$!ʻN&eYfn!@=N<2 0Od9 +ֈ Dʹ>*^o;11%sA3G#4g;]^j2Bƶ^fN{Ft(OQ2r:2{fdvV;LئXG`- Ԗ83rEcs N1+ `p_!R8tֿ2@2`M}92_E?o!hd9HiF)ƙ-CSKwYZ0U}9OT9*!!N{srg1~O: 9(9Z읐1uXBGos\Ѣ\?-q\Q +&Voţaba ̶4K{ a37DC":1^z3Ytk'(b9z27c$ז>AHj!\L?JH:=41d`Rx>,5r5;sr% +'TR$V܊:觘(]g?'`;Ǭ8D,NkTK$] uBk$= .(3>/BYBZsp/J~BNP8<PQIE[5r.azz'V]I3 kJ21u+3]\6]''_}2 %G +: V_+<T.J}`//x=oG<5Huy0<:Ga,@۩ U#6Fm'3ܴ^B紷le;ů@zuv| cyu1ΞӜ]+GB;>E>oۉ7P<8^if_vJu~d8Ki`b.ăp_P/Ȏt*x0mvwO. ;uzyT1,z'l0RuدvYIV8a3y60O4&L TW t$hKAg +RRN.-rbiJ_Ҕ ^J?C:˶-m"sҴybpo. g#GdSJ9mLb6 ى]"55!OZ"0[/¯EIG戹.m6rLIbԓ9mܬB`[ )#bmf\'6b9qQE Ew{,Eg7͸ͩH< 苟]Gi$>AL ,'^b ,U}tf g-i= ;)ST ͘PC&PƄ:gh*ݰ5_P\A]3uM|*HvB9Ơؕ.]<+ZEa Vԁ7"#+l'/T|`;[OEb`mq7kO'#zjZw-ydn{º#}KGo z>Uq\Ű+)O/`RfFѦm*2\r}KBݔw]M `G_&Fnẹ1W@rO+is˧jss(m2\%]-@(."NY@ێ};]"P.->#hPVH.N\D×fj X?+1t̓nD +5_ xK˱@wįк@vNx|E]jX_U^5׏5 '9Ɲݭ$"V>_@2= >ʨ3y64'3V :_~m 5"aR" )TkZ "T4r8(쿁"L&}NNJ_1m 1R'O#͎WG9f*/^c*k8g*i*\R4VWVbm,_l۪' +4; HZ*v\x + ǸuXՇUcCzU{_`c{܎ j7D]EJLkw +.VeY-:Qm*Uu}gَDc,%+RՕ(~~AjvCUܡw;?Xsjm͇c» )VzmT8pb_+-. :A>,yT6C^W(~spԡkCsuCo,[D/"Qp2BH[Z݁N@m__>RXʡjlpPV(ٜ|meqbw@^5DXmN94RJ;H8gǹ],&8\=זXL>zsŤ\}f0I1xm.z)ag5RԚmqUsn} +oKlI`ʼJ@>he4a#E<~5Ynodf08ՠdmJQtٚ2r袑C"VB<{oK<[#}?d^:D϶VpiɫD= +?bDՈ飈I#zCqJ,?p#p0 ݊Zяu2W"?M|dwж4.4 4]QʸGǎqOq2̈́P}'܁x'.湬GcW0">>B'Z߉-|l H%y'M.pww|7wf R>8% 沕жh;mO-|gqC؇碏2hP!QGg5>j>jF j@'}~ *~xrIzyL-V/{;gh/CO wcsaL"O!J]O!Jlg;2I +Q.6H .dB p6@T[`47 +H1ߪmAفT( +E Z%eRc= A@qFj:Y.6"1fA4LW6n<*)WV@tV@/B 42tI,S<8O& 7At^#ߏW0`_6NZKԊV>~,0!KiOy@%ٯK @L<;HlOq]H}>'O?K{X[>2*wI~o / y@, /"+|}_JRĝ;SslȈPI0 -5L@j.pA51#bǴM13c6}Ok@.>*T Fs+ ׀ +=!C w~I"4~߳٬"풅sAܧ&gW@y`e"6d!_ +>_.7LÒQ_*B+?Rk:*W̢7#C; +)B2s>)<<.+\ŌS#mB];rWSbd>f cPsdpyУo+yPTv✷՟(L>-qZR>"GR&,K‹܀ U Ojơ;p +X{bcԸ'ʼҗx8]u! G!Քq3-A0Tv*7qZ}uBN`;bR5I/2ơi_7Lª;A7+}*=H|f F ߄dú< ' 90l4G^ ۅҷq!| BàEA׽zR\Ri͘ +TkTa;Y33s뽈GhC礴Z@]/n:ZZT|"ϤP`o~Q.d*Z6Y^d5bbM^ξn0Q :XzeVIh&A M +&䲿uؒ/pg3ccQ_m' cZ2[oI}p{+͑Y;j4M,C5A2TU7s + +2 +ξJD*"!a`iVONzƂ|*Q:a׋7Cub .7{,alIK1ask)v,+dEB)BJ8]pY +<mҋXe(YDCg3oZX1Ѩ!0+ph<K\opc4;Pa]7zqLV: v47|TMUUĕ9p-;@ B(\dFqCg䅤_i1c VI^ͷt "Ẇ2:ۋKCTgpd2.:L`& /!&-'B.ȩI ?k )-I(`xf 8t,)wR˜T)ׇ9;aM*SI909 Q|n\B^Zã@m2*^rUWuQ??XZFPT J +֛m%! 4^X]ZY>SlCQ`u7l*೨D*(I.r pr{}biow\;:>ns_b#.5B{x}|P&~ɎH*I  Hf܆X̂bp:pH2Ü(a.+Ps7$M܈\I|Gm t)nanVZ&֢%t9E8E2$UI0+㥘#^XBk ֹhX +-rV'ՓdNtK“#p MZܰՀ49 EWex4d-_!AE$'n|iSNi < [!*KCvQOFOJGK~U! + \frWBZrRv~uMS..$to1e{+ʡCR!>y~DB},eӖ-G-}Gnm.V:tE5iXFMy*_m+_¨2YpU2؎ -QEϸz$ȍ@^Q%-U ޭBD~Q.`"ϘR'g?1B*a07o?#c;5*L l΁"h#([YM' O[,d$Mi^zV,0;-Vy d6@`d2V'$roe[9 },Dgl~':ap5=IpyB洏O m9 GDt &. gh)9UcΚkB8s_YElf㰯(86mVlp_)~@ۺm{OG"nU>K|tKmT)xVUz$[mNY4w煄g-u+qxxJ`s{slfTd8!M3t A}/,rTQ9nIȧQ QM uYGuy CJPۇs8ǑaK6/Zpո)i(6\U,=uϋ] >77T{xʳ6~QDeW8f2nQz Ԫw&5w `7;0iNfTˆtbsǀ^ "'DlY*ma%B\:n|k' +L%z劣1wpΈ/eTnOo15u`b Dpig7e#w n?`${ bZH Ŵf#cN;a9DGx& N봿Ífne*ti-dl +{/B*d&*L1euC,m7^&Ahx  WDj2̋&EG"z M8Ղdݐ]ßo2}N~0W"8N%-nU{"37UOi38ѨRCJCآa{R]t75ȷzS&*,pvCz1B󭺭|!k(op /uU]`+k5aBV.M"م]I8!zbBo0KeS$c8 (4&+ A%ٴŖ K$]C:},^1޴3g/ЖZr K%ʜ4\`lmL%X&A9~*čOtw|FZ*ϢA4f]wd@ i. 7mxKp!N@W&]9 w~6dxDCaBzF++0 1;yA;еg)+"Prx=$*#l. OḨn'E[RsIY' ;S] +C֘ڿ`ΠjYP;3xZZIƮu${,`ק)rsX@XBX݃gTѭ, h$X{4,&kv*M-e@˜X k9-H R`@<)JJ%ƴҗ^ʖ\.|mK ;Z-D  sU?؄E#1T2),0b(~ȍq?J5yFa\ *F8Yp5sWSJ(MbiG\' ;pœf46mv0ṕ՞)ˤi\ Jv{0T6qhY/w"@֙G&IN\ܒ'n5VM!xo+d}u1Vfk7 PUkxp+4%BׄFp3Q [ L8Vx`jzBZCa~^18= w}0K缈Εkwmm_Dh*_pk~Ǹ߭? tmyzDԢ"exSvr_ɴ<8,tqy;Kp͌]b +5/ᗑK]'HE2_'2ySޛ ;i.4f|RYCɂ +f3 kbl0q}xk5a#DZkxz8U8>5!&}HuZ{}ai|S?&f* YlNG=lňw:? Sj@uB'ox[żqlVxЭ{ͩQ3 gm <a`#>[@"kdI1XWV׈#ژ"x[_][Ah +MOZW03/ υr_x;]bql{ϲIo]#Dtm T:cJT.lfx5/|WsL&)F|JOF|ϭے.=ޒ3`NRGDħ#ߎv7 kZ .ýS{Z{qfifu-ë&LheQg({է@2>d_3ǵH5q}v|*;ϴjdcZQm}1p縪,o<%񭕳fd%D 8guT7#U2O2 +Ѭ?y>Rcz\Uy5PLh:}᤮,ґ˥*2*;;BiW8ԩnGMtII1O+/L2'Ԩ)QH&,Uw֓?G'WYǿdqaCzʣ TMT硹m<1H0]6Dm(sszûIG'L}5.}-ouO"Uz!b1tPߣC|z(`z>]OsazvVC>u 4CdŇNP"v{J\Pb.W6=1%K B.?u舞eֈk5."EubL❔e8Ez +%G:N%uew!h>Dʓ\|,.!t$+xW%"뫫ѕ y`:,@;QtXu{ zO!+j4g i҅TbkȧxNpc:,~K%Bjf{t(G[vjc_g+SK&Ao$(0yzMFIuF ,QbG|?jQCZjo>G&} 95ۻT[+N4:ʯyF=|T1R$*<2ҸGH-'7#iP=c!#*~=Q{X012mP,`疘sNjrdWk 0HwD *<"ie4ד1Ƞ.1:)9c گ>Hs2IO\Ƭ`vWE7D#Je<|96%E74, P3;~]4/_y$r"`zz{J_2ZʕU(uHj>/-&PYZ&0$iyxe;lݽq(V#麶Yu)QqyDnS>Oo.]vpb,ctR aֹN GtÃ1W[!2, % SB%Lmqyc3zAIɹx-^63Ch{!9 L# 3/ 5[%kpfc=$~Q>U>0`qC0]ȇ1#5;zf "e^΃_-".aY3?NqkR9O97$PVwt'v1N>ϒ[{ݡ\2FH4Ztg)d +[4iSP}*c~ŋl{hdhi~f!9̄Yw6* ϻZDmSl-.0?3 +l4 +x:X)|3 f"ߡY9F*ǤwלݰCĠS 6Ե]R4/S2Mm3#64tP FC#]h5֢,l" s,VA.r)b|$YL䉛ql;3cuьUO0cl4~ ʵF#zs|B>I:,fN>ON7̜3D/ex}2P,X6ϱpOztxrsbM^ʤ5A RnN nW| 7\}gw>[qA}C$_C޴ ~/OrR`"f2}Y,+*aJuT_6nphYZaH'F+p3Z8k&dl(+sit9E71ftbHV  >`8耎pi*1@FC4v_FĆEXC,0EFOl+mNKl})KKfi߀gk_ŷW(zŶ+A_b-ױ6(fI`8=xa4˩bAT/<<{pRllzcQ?/RHU>>]5+ W%ڑoS-q,*q^8`&-{wvSoyf H,; /??/˔*?q'=< u\ܥ3-Gtp`-z<3mq<$64u~KYOܕ;J vHt[T{#pp|@{Pl*=iG (YG:ͷ[vPcBt;^ތJ-s#\*i >m^i 2."jjk;XjyW'X,֨tha|ʙ&?{TR)t 2g9Fu7I⧸ E[[_a}v@Qݥ40K&>!LyWmꭈ8~xo3Nw& |OVDyR;c@k0ޜsO ǏwƸ%YOV.ߥGl e}ZO~tT%8éx]_ۜίk+R +ֵMm1{:(sjWuUJ#Ў{{ qv@7mPq#MFPx1]sZt#Qm|“.Hu{3 PߛjM?kߦF/lsMjM"4 +`J Qh|斃Bkrk!Ng6qD4{~E|dd_/+OPЅ/W['/MP~}spA]KT3j|MB N/MgʞxОN?0+…S`DM|17 +js5Ϲ?9VPcw,W1,H[_Q78CE +~򿯮us`fO@:7yEn,:QMJbplNvl+Vp>&K}M\ǔxS!Ku\em)?I&n-6Y( ~k O'<*Y#щ$g~TFmj޲.=#Zv^#c`3ӂ^ (t b&󺵨#Zd gt݅YVpl)JYbk:1P\B1|fJF1'w˹БEN+tDAKݪG{/U9$D*粲Gov3|B8s7tclW oDOd$飃3M <};n4Wz[_d'sd&wN A͏Yl$u+7b.p \Ƽ: %d ]C*G7\-8 z78#U\G[/n=PHIsiǷE)IC =Sݔ}Ӊ2Lm9 +-g9o6򼦐˔7J +n؈dP1|[Nm9l}#Г.V 0і7CKw. UR^҇@#.̖)=7]㫒^!VV!EWlVQYk}sPW< B^ly;fQ &S;[f+$)k! .tR*-CʤG5x ^ bJ5ר PDFS$j 7@P IOZ)R![[b~Agp|iX0RЦkB]79xl!gfGtۂ,VS5'oM<7 5(_3yZg3?``P0TkWw}&N-@+JRAbm19"frNPHʷ:o6wC"#\DŽ_0Hܢ ~wmW%W5rS*ٖ*)!^ӉuPɨp.GA\deڬD}.K 먌0WfU! HdWDUzM%k\b)k]6 dhAR/ȶU^՗hݭ{3oRJ54ʒdIdQ*YyU輢Wז@Z/l?:/% ?D9apYA<%?7o]?܅'Cr[Xd<2葢:oT}XGt]GO-#WYsHWoҫupr8E:R\w6_[{|]?Οx'g{r ymQ#[*/n0)exC3;a3tD{G#FGF=IIw7+ ΣSf',:E{_AŻGy+J[GGm%^0`!AJG Ğ+]cj|/Md9pTZ--Spn+.Q<5Ƨ, +^] =q> ưJy#IF]H-U/xM +ѱ7KrGKCGKoN-熰wlJ %c<<='Q(ͽE%@^ +1dDt˽hTV/Omx&S%FA=XG'zd]$qbGz21ҰC|B&Dbnz@{R@p|bDIZaA,EO`{#M$k ѻ$z5KFNQ\tLod~aA[`WUu,O +s^XBz`G떳8܂[+Ws{bK.̘ )OlPW砮Z9wmK3i#y%?wb$3F: bմFҺ4eId9 lsGȉlѻBg?5+옛qgT1\kJ "{(}MĖ; _<<˵ 9l.b?y:`9%|r`q@A,E;UuKY!~U ޔuMԒE1vYzټ0O3k9s\f frM{s~\- !pN/X;u׻%,A#~ I9 +J#GK0/[dXl8KfV*EvU~=VTR& RU|],W9;@g_߷T*m/}]LJwc; ݸ@' +brQuww@Wtxtى #Z-Zgiylur[SN ìjG46!vd2 cZ!'iPà)T>Ew/]-%{zB,HUIN࿉mm0&Z=ߗ^ɋe* l#`ߞYCӀshVk_TbwjLE5Jv1 :}eA[v\74bt!rGqzNY;lscFc sdc -_s7DW4xd]W%'\3M=WpZsNI%=4-Xvb4 (9Y`!?K'dXkA'] -GA+cE5o`KlPaڳMn4i%2]B!Y[a⛎h1R1)ʼn4to؜DƜbsS #'Ĝ866t„'\TD9ŷlNp̩(lNOd62ͩ w3̩59EͩunM4:&ĜjG[Jo- ىVqd9ͩb58frL n sl?ꅭd)Qd#,/Ͽ7/>{ ҁqjjFhn> j<\kjBeZOk@IrG#pxL`q8"%5Y4aJ{̓ )Sҁoj4UcؙFϙI%ciy|fb\oitETQHL4T匪ŵG(UU-B``gr/Qd{ܪ{<[ն@E^y T۩ڣnQڣsugNb˸Zͨ,Tmx[VU{"NT5ɬj3U!U|:U 2{UEU-^X+(CjP|g%CzJP>&zfӀ pѷR*KlLe[fD/9,K3ot=c[MƾlRV=# zvH |ǹzA"<e*^')ky _>%7N);_s/;`Bis1J\ υhޘ؆U"lN`bStVa54J Y/ ,6!RDϬx]~x=z8Z_c ֢-xi\/x_(FEOңK>MbU|ԫr#*]7zLXj.0+L{ҭ͆zܵ7G99NzA}Msk99%MiP)Q9ǴSxUZ.=W|: ]EOHI +ofgM{ \+)1̙8hL\c`p.4H\qLC5ww^JB'ib$~/ĦeuOs9bk~o/xI:y4Gn|9rsߥ8CN\+Ym=ǛG;Ga* ⍰zsOYEcؤ@ =Mp>2ćS 0dϔvN㸬' +wu9WpZF;dDxʺO&hΉAޤ@oБQ;kY6y 5rt'sߜiͣMbx+qA  ZmK2$sg'^5 Mm}W4x,N+# J0 +YЉ rcCvT4̞ +K児:b;~f 1zڊCRe[GZGu>ޓ͉ 7Z=any+vM<4vbgؐ3;NqR]ݭcw]QM':Կ+8$G$4ʖ9rMF6edm+QF#s2Q+ss32W[odn㻈u\+82.OgJh!-( ?egO\}(a 3EGdy*҈|^sdg[Krp%_ ۸{u%Sv!4NZZ=FNu\ߺ| .JHAtђUQy\vv^-Hlύx#ǚPC]b|{ais8cP :fYbjETI>tƬwlvt,bq̭BPNtY.ۤ6C%y1w;+Q$6AonGc@sT~ &1pW^J3H_>]Y6Z2+] tI4:D@-vtżZ_]ΔՏY/zo0Woy``r䪉۳ytl^݇\i as|%X[)БX'6\6_ +&WLW8kPTL6ϾL6_5yӳA|-l>f ayΒq&ͥb!u:l.tp|9c6/u8IpHk1 9y\RU^pw^ w`Cr +X/˝qb63i°pAYϞevT5aNK?gǃS=rw\M/9E[s8=&ο6) IUp}vEw~apx;4c*sx'̷oA8'pF?p>ԼknߋGp)BKå 9|-ؼpvÏK1ݠ1: n݉珢1 9y9\RHu{xbza:AGeA@ `32%T\x[|Yiv:Gesqۗ14ows8bGf5U:_6 z'@p+ceqG6.CANKt2:GߜnJ7׵ҟt.K+F(uWwڱS`u՗BSwnnQoΨkpPU[7A"A^ :"tu!U٧)yZUgQˎYM_yf |WȾn{=T^ޫ()12,ۑXOo5OQIJ%^ D1bDhـP@pPe< >̜os18:C})ڽTK!jxOtg|g*:4H?>:jԫv d( +wG$)T޿VjTR3S8cu[]@'5._^^ST׾Z{@ /Z_?Uwū"Ǭ-4zKB=q]WC1"ԏ1  +2Nc3ZxG^Tb>u|EzN^aVRuOm,l եU5C\uwUڿg/x=ƽ3Yt/`si7!uZ\)kg&H_S_qȑ@3$$ XFC܎R#m3Sm8E?7H[Ŭ~N1g.E'^4Gө\$w죨w=x0}iticx +4UM; 4%RRQBiEʒ,E:tD9ýNFdtC4f;}[I=Gg(浘<+k72 t!+z +*f.0Yi,S<*eRVw#oe jK(5zz;fω-2l4~c/Y=[!TW/%mz5}{(0ͷ˳Sm]tOf30pMf32WU'ޜɬr +3ifu+dV4mI-ZR˨_KTZ{>ESYj<1ϲ& +.ȀLdːҞ"$Uc+ يN[{4E=U"u )TxD4c"VӤ4hLf]ߔz_'&ЋAٞZܧN$&QT;u&Th3|4w>GSkwpЎp rG<E;}$d/隄LW>hi]䞁Rs&wa5uV< Dw[Z",y8|_3SMu5S$2U&'0Y_$U&%mO)cΗ, I vpcڊeᾇe1`bzEd"~><6^ބ /g^A+ ^sǭ]rg\<Aqq\F2-^`U,|WxyB1vG/3=^ީ,coX-^3D/n$)xyJ/X<+^^MxyLÂ,y?//XZxy%/9xyt+q1چed啼=^^;+yK+1xy%og:4-^$܅δ@lђnA p"8UqæώW"xy/cxyr5^b\^ޢ1G ,-^?d<h ^A2\WLjYPlEc^'óR6jsvR0 w 2xy^ +WvԙyK {QWt Ϛ,xbX/cd<ԃk</O@0{^J5xy˃Kp:J5yd4 xy8Y?*ȁw,a!hN;f)`<\`×Ml;p8<@fÂXHQ$K^be^:%^^S\]剓1-^^՟Lo}d0//b2N٧= xȳ_c-ط/Xen0`'!o xyK ^e<_crvDoɅrYxy@ +>s +F@Qn(y +ǧC SxyrB~QA+SHErFVV i@9p#qw/o/!㦞71\g:Da/2f9r4yP /O7|( i +.NDAC= z#_vf "q1azk|4?r3hT<as{uI.8EAvk.O0\~ py9xyQ 4lfX HύieP`^F`4:]cԁc:n @/E>~2)Nfԁl D9uA5rsAdFk/~ApK;/^ +^2xyNƛF"b-#OTq`?1j Xψik@͠p +(Kh4>A>%:10am]/+2 |g%NOf 1q=N|n-{jdt̋NWk$xG3bb.SA6Ӓӈ taF́u]6NHΝ|{'\y<<ͱ*ߏn]J>DM1vv,v5'8tz|@yXL`3{;`^0yͯ;b@;O 1T;<u6X'l<3.;`wxoAP6Mdccc .J;(yt `/;0~CS'}6v&LϢQ4NA%'{>0ԐEi" ;O>uWyy@Y+c1|;o/9zLcH67IW\Z7QF˛3d~UƬDXw#ŐN6yAFEG՚ i&,mZ12˴Z'Y91edL'p2V٦ ++lN5̊ ǴpjâEAS4MbZw6v޹*zB":V;[V\v^cva@QKF"8wMNO;?jI`-쌝w!Ld(s;`I}6vx;XA)f/vGm\0<hFF +D%u3j^ ׮'n<np\>>V +j3Pft(.e97kA2P-mc6vK:.*t։Zj|SDvԉu$>v|GSfL/`z]K9%8y1|̱JZK22B mE~^|xl'JwfP~$d0_Bo bm=>ޕ#+8V`ak.C t>u'U>j}0wJ džJ4X\PngOtg|1Q'n8 c{wNO; :(apu`2`9a@8m8^as: 4g겤H:93J~q>iLٽ8GY<؟;λoe6Th H +Q;;U+Ud%Spp{E3VD_62f-Ru {UdțԤ>W}ΪZP$^t=7=WFgdƁ$!*k"RYpQߏH;͢Eɐ9%zDja+'Jwd0i,q B͠' ʒ'_socaٻJ,,{Wrlwm=wJx" soȘP 0,L|-TV1Gsљx3x"9#ss+9{{~6= [i{n=ˍԬ9{O =qo<9:{ Tx 8<5 +j;@5k`&%/;O>j$>Y{0sdQqH/*PM>T:tlY-BYʊrҦl=p)VIzt x=*4juAo֏;z-jT11p샣W^J3@U>Yk6Z2+ 9#Cs0MΆj'N T$weo w<2Yt^a"{0&ig[NݞDzN͜5UF^cG\;-pS9r.b}p8g@8syr9\`p Oḍ28|/|]cs8P3oG;c6rs6tlۘp. IBKå )oo6 ?.8A 9z-pI$ 8|iD>=0"X:R -@ۓY%%yo ^3N6)~pT5}S9'x~9Rpx?O7\^lC\ }(UDڽ#%=R(/ o2|3u^x>h{ghc 9q'C[u /曻 9oԫ=υ-ϤޭibGs%):GۭI99h{+O2J6^3x{?ԥog0.i!#ǀkeCEq\{ *!4sԅwt̥6g}ksN"^bP<=GMA Dv GxR{D+6 u +6u4MK?st,T=;nd=%WO/ӂ00RQ~ {^!aυE:e/OAz\b= N俊x#t[ tj}f0_}%09SB7m+ `6*V`=ف񇾌tBo;z]_+l|=L3fiT[qlcl.:f!UU}IsOvaυTa ٢wPƞ+w'\<*8{zSPH; X{)V\Ğf';ؤ oO48#/]-LLLVߍ)-Ӓv&=S|ߔ_z{!I:#GN5uSpAzSvnh7(sy#x{Nv}<o/3&?6~ڠ9x{} ' n,#&:@s&D'H{Y>F˚q#Mu/grr&7Ny'7N9{\|G _./gB)H|Yo[p~v,>`$b6-k6ە;}fƗfוi,ٌ?Ba,lF /2yϾ/x|&5%}4y3gogŁt$31&߷&I瞰L>3݄doV\L>8oL +ӡ + k’q$EQG2˙Rݮ7_ϝ$aZlO晍6||4C&db:%nLS_%-}+ulL:BC:OSyPj*Eʠg=xd\ynX޿TS0~զ+kli.qn!usĤ1VӻP8EUjh93[״zI6{UduջGWI=EWo6/YGnm[rdɓyxsx9Oov;\ys2;̜rfr9yfe3sc? Zއuug>>tTU{ZxB-爅C*Wu_,j,EOcޏ/%:RW[E1sZEbX0I>]55J[PuhK%2 q뒆;_РqS0t{y+bw1F/Vx|saZ,VeRf޷4.|r)e~'Cxszro S@f|ͷufmrU`2)ZC:* #Cv^{76~0k9j+3oTfo LSx2b)֗(2[~G5 鸤u;=_EOrtwD[m^}xg;Qφs/!>&H'$a ?Ϡh~N`"BE*WSIwsAc* a|ȟ;4تa>eoƾ06~-_%c]AZx<>,/0ca^I_;z.jpANQ.C' 3a}+3 +Z|k_ˠ?%T-z9_E:ϼ7eNbey٫{˻s^{ۚ0/ߡ˻r^}ۗgg.򎜗wYY:(/Gw'GSݭEvPuL y?i$QfXp&Ghu4ĂQfIM@7! ̚ndV?`q_}?7|@t #4F=_?3գ^5K=]Ih-:$xZu[U6=Rj&8r47:B²Qz*\HjWo-P9DΤܮ*$Xs֕{;x;2OWuxsJWӡmPvnI*eevG9W9X`v|g ~WEW`ƇKD +3_S`b 9\ɨ=LqTw# +i^ 8`sC:PpUZ8MpKJ( +yF.H|(WX|M1N|` ^Ϙq@_Ux8d(y>|Q ~ ||p>`yWTh NcuhԜ׈\1ٷT<ɧ@;?-6 !QiCp̗ ByrD] ШupW/:pSSȂ*1xn>;6eI`B x»=-:}-Feyx `ָoy e?JxJ ,j`+_4kZr5jz6[`3a |^S΄)0g:ˌ%$&p.t.{nTk.!a"ȸqDu%*!upz՝ڂy'1|S2U^Wב_w_W)24Tcu_]276A'c+3ˁga 0ۂb &L hQcsuf#eۚߖόĬh3놻NcM Ag4DAFiT ~# #ǠVUՍ ӇF%>{_x7&@?J[<e%S(<c|{LN?a?P89cfZ*`0^;dvz#q#1EriOKd$cMq{Rd9ӞRɹ\ wq6Y"r2} + m 7 Se`?䧐tKI9dZ3F:Yxq@Gk "ma})ߛ|IP xEG  2q>A{1P5A+n=5Ktef5¹  +; dN4Wf3F' +T@ lssb<<WF`"CW[L 6a@CpR^x-A08a8hP t 01ZHB!t(nko>)=~w [˚rAlpg*KBp +MF+cRHz&+!PsbUu)'Ja:H)g|D^.=|g0D `fWQ&~&@^N"%X[W!Y|U}R-"IX_g4h + ̄IU7N7;R᧙D@ :u<wKP!/oD3UֵO*(T :U zQ1?fQh h^&fvyS%JܢkāvH,%i=Ad_3JŀMЃ0`N +@1Xޡ-{ +piIFp=g,1gԊy-0\;'Q̳\bHLK% |4Dj{ngPDޜSpLsE Aئt-d$/v)Px6Cs6*:$t)$RZH͒Xk%Ha(G:%w# "ถo|$2įLL._%DЍNNVQ%2iIG N+O"D+7Rjٙ*Dmh7r܋87g0hMWpʰo!JLxzj +jËKla=VN q^w$b 2NJc)}pq$ |~2 ;[>aDCUM^%M+Tתg,:H2 yLPFP.]D~:A$<YV etgIqϘX&XZ3*M'޴_ +]ilGȚIoJeN Z̏ףG1^_}D"1QNlKZs&Gba_#l@sZ$mVp%JUDWkiS " x\g`] kS9)0GÂD wXkOf0c^p +X2$uoGUYl-4 w +QAW$ +M +w"%%*дe0BVq #pwſʒ61#z+bL mJLo,@ +4y ~A,A+^bF+8am}q-K!Mx_4(h,E/Mh2%Sw<и!U\8J٨; +L< #Y$M$9?gH]m2E0BDA}fF^0MDakSBbXa ĞA,-ú|x`3"z;=% F$󄻊'KwpnWaRi\%دupœoMB $ƌ8~|?o/ u \!+މol{ ߋ+ i'%6Xi@gGrA +($b;kد8ϗ/HxS&:~MCs NƋC%,|@ wr} h­$8;1h2 (a'X( N``S*噎$Q;A[J#rԎw8%?ia ;1`fcv^i^< cvԅ{ Ȣ9vU#!v6x'""Q:z]Q z3 @rÐ͘ +ɍ.XRr["I^V;|5ZkN:euŶ -1F0ƋDBd6^, b2&x(V ^)NflX`8kBY( +0 k8hN-BP];A/VªpnłV& ʽ1 dس.O=an^}I1]xQ}R̕>*Y *\RDƈ@dp'l-̂.L }wh@rX1gW* ~xw6QMp*䗰N{SA-mМLբ֏0`[= +OH?%[r}kR@kAAi("v̩\)B("{QkAyQq(NkQ"$>މ n8K ,_$f96x@컜(w؄ݏu:S7'VN807, 1߀Q +\#c^cq/ z2k7aFoQ%4Մ ݿ|/|oV5ky,DͲxQ(84GO̷NRA"|{iBҞ1pl7̀$VNy#I JW:󍟳-GCG7Gu²,4鎘o+A*i*PC}TM=KbI"\o ƌfIp9وqK*&Pzm}&"[B̷=Cl!H1u%-PB\I7'n'X+\ 1xH`xcᤖH` oox7oP Nf +?x<6 TT xVc(xk0ހF[^8[\*e“ ¹a DTsOs='a=߹"v#˿?o?V=9b=:1x䘍 }b;F#¾O 8=Ds?_rF܌ gMF87Qc~ =#w{ƏE>7flθp.X [|Ӎ{ODX8CI'oƈJK&nh?UpUsySوS9l+{L u6qxgdX*墍h=ޕU,ZNupeĖ+ٺ5Y-*V|nj8iܱ8JeY1c%JeĚy3vḇG6x[W{r E`35_X_3wZ+zl*gLōN4܁Z< :Ksac29?+&\!vLyΞ-!X S`)x1E~!(4?qB,Lg~ӷن-BBW2t. MCOz eDz;w" A,J5Maz,8 ^__]3m<;ǎSBmCsQ)|ך~)!]0(>:=-aXJ&3$@(vX}Ƌg+t_A\m/!ƹQJ7@![@'} +*&wHH AcPaz I@`r>X.>1o\c'എa=)0%PNE ꨔz±􁿒a'~ÔDMF (Bvul }alU%x/Q8X& qʘqT+ĀE% y)>7R֛ҕ<A[QqZ:{dwcؘѵ]uRd,GlWJ0aPSf_|ؗAnwI7.6o 89> Aa4t׸dUwH?|8B kE ͐*)ÚufIM+W%ځ+ѲB %..KGKr| 1Tt5\ϱt!/4 ZHpWoŜ:JNze"4ZZ-&!H[FL]/;Cjx@$9բ&M4Y/@&M0ȳވq'€4d(17%Kr 8{Ƨ4g GUFbbUQN)Ne\ ۆmNGv:&M\}3pNdwDssEvGCf6-ڇ6OWyqv]e ؁G5θ]fp!p,qsF 823r㸸ʈ f+qW~b'y*R$:TW㎫E!f\M606 aN!4W3q$uGvZx_)oYb&UCipфд'U&yfRL#NTHT'0폌ؓ2q`˂y<(9b[j+8"`D xy\܆ǯ<>Qrx|/!GM*6e, 9<^.qǘY"$ d9'o1K*wYxBcXYCұbCW^J3@4v %:<<>hΎ?|"q#jo9Akk,kQgx5 sq1p9|)`"y-w ōcx !>9s8n7;Ac(^]5mqvlzG1Լ kyn߈muΔ):9\ZIZvŅNKsPӘA_4d9'o1K*wY8i4\zxbzxt1i%/š x&#K>r7}[qdٙlBe8h|#wOeR`L {%s{%sYtO&'n,y#eE.3Eo:?iG9r._\#岿 /J <tV.;Օ֋3lSg浦 + nc֏\pt$ ey_0F"YW/* `cb. w?"`ڐ![^үh隭>J+ӵ ~C#|بO@EfkQI-Jz!"T ƒyȅ.F<%ZyR(P4<\QnAy7-e鬣V $^y,UM +;-Yhz j 9AISc:.yuޅc?2N6gu4IOƍB< +& +] +y#¼oy{n$(s$ܚdJ~/VSð1̴5b $CV򯤿i>tg +x@] 4ͯ'Z*?>e + ŷbh焌_P䞼iPٌ @0(iq/NmGsM]k)#Z us. "5.!bC<+}R"HL.U~mql|Dq$( dtIB}8gqrA3(Yyg:>SOTU_26Hˇ֪!Gp`HiOxZOAkN!xR[$hYеͫ-ƺºr,lغaH +w=HWS d#>@F+*o(B'O/D6 `_+O_骗ix9 +!3.L@,j_]AºH!tŇbLeŐ$fG*RjT1L8@+,+#$PZE bE}*!Eo 7V8_>B=QqkԎP_`t,G[U 8;nSZ~&А3A kUJ\h8%.R!d% +V0O:'32,044m%C٫ $:&E<8%$z7H7:j)0f +d +׌ʽ@T87\Kqfv1QN +Wd."Zl.IVgթe Ȭ8M[zPo]"DIq&cT'p7Jףmata^a_̋9vK^"WΣR2tD)xkw(;KƌAgVc/}1_\\B:0U4vc[A_Qu-3ZUI:0 +h8=<H#ۿ`39>:hΡt!єt#7oG%{1Fmoţ?}ߨ3 ȤU$ni;{΄k}#Λf9DcL10 eUhPl& 66ĦհgE60A $Dn?6_|z|ʄO_R`'A3-LI4UE|RUBߗ5&:l2Fc:Z.=[HupliOdoOoOϽR/V"sf8:I!UvQܬ>e]Q~De@ӏ8I +]'&pb<a)K( gћj%brҜ(>y֒qnGLu!VTWT=u$uT4?[s3r1IxZU_q8cDv8"ݡI_*pRV~$Mu!ȏPFӘB1bIWsլ:oIxTxF<nQqI`JNJbiJ?iDd+.j IPuqQ{UWD%&K1`uqk1;12 `y + YjuMQdͥ'FQ|~,nѳis jJA΍` Gv/F5 aɈSpFd9"ջ(>[Qwsc"azԶ|"b>dFHlG͸s%iQ3l$‘K6ח]`<ϩMQ LG㌙z6p]Daj~/C<,""(TМ~pr`I5]@Ȳםo+;֛d1͟B_$B (Ú uhr=uB&r }a׵4ز2c33 '1n$[ [f/4LGOv9};sgEm#3Iڨ!yMo? c|ѮnsEr8= OӼDL??W8܉8?i_K5#]3@*'w:u)$ۦy3S^4C6bҿ3n3u$™ ޙ!䆞0PJ7'LȅKyړGGQ+Ne eЊxkfj3s7{6͙)JJK$&$-N32`,ĴCYև&r^Xa%c1,g2g1K2zIrjq&݇bMDB|MbI0Cuޝg-rj;~3,D>+\ǃ<+W *v_Md 4)԰24 Zأ­1=v ]=b~y)WY[KV't78Ol^Rxn"X?nB BGŢr(_-ќl۹\Tz 8S)7g?-g|:<VY+Xg$<34ψ:`*9uh{8!^e3NBHu{%# j?48p$'\daqo}̵_HnS, 9Y֗ءVCNEWBͤv+d/:ˮRf C=p9)ȑrӗm'#uKc^]VġLy2'?EX7prĪ|UTkL8x(+.R\! +1}t = GLZ x?1IqV;nb,_7Yzte%]^?W~^U"yOR[~Aq~R,~Pq`lwʒ##j<gy:*Q(wp]/ x}y* '>(!o̬y}̰Lj2#cB%gaJ,]FMj6d@M;Xppk 2yc/L5>*~}njxD2VkbfSrܞĬPTUKm%oWě27l/+{ƥ_/l=>~bj{c_l?laoV7 Ӹu.R,3! +@^n!͈nDOz5PݲX ܪRT)`4!<;ay"{MՑN+qn~5Igh#MKؽ)]?[|-t [yB~>]~H##vYAl=wd/1ɸbٙitCy[Z~-`}{\,KjNW9NWrpsusI7sL|Gs|"v8fZeU )q otМ_ݠWEvK(2Q,:z[Eά[_S{=5W՛Dܺ ,M`?PcXփүH]і65*\i!DGhu֫#=ԤSx2,`w znx=]q'C7"ʗ&19JDĪY <̓U4jJ6 MoctC~Jtr?Ztʠl:wf)DRQ#mHGn3 g +Ɋe9kAe=[gxwI&6uѪBYǫz2`T +V$d7kߜW$ +xv|Ӻ UKJk͎1<;g4>]jre!?vf&Q~A][Et rl~o7gЅki3K{&ŕMSaP8m +SSQ0M^*Q79vm9PݪzK#C{Kb #B{˓ Mj&ZäXw+ +a'^]t7cOI/Oy"g kq jS4ݯ"cu=:[xĘmO |'ɲblOm*;BKtߋ*CWdC8l@aޞA6y㇞ h)؝"uVƔ=dL=d,c ƚ$JʭȵF55̓knUՔV5}bB72\kfJ*XSRrR.k'ngM9JUƚt)-ǚj|b˱xm]TĐF6H#YTS [yd"lC>jW}6sL(>lhO`<xiKӗO)W1f5}? /ԕhfMOXSd_)uz +4`󩺾MgAt!]4تp*xm3֤-?eDLSsƔ"hI/E_J(u%M291#oTuӫ:_ӊA& ` ctx7l&{LvL26]^z6އo=2fӶPS&?0X6Q|YOmOog?a?jxtGQU2$q֢n]D'S|)U<2<љwϤmCFr2ZxlHᲗ$}M^VIm/IW. X#PwSJ Ds[ɺge)dn2*k +4=E:rH(Uko Cȇ3N0F-_b%5F 6m 9Gxޟ:b8!]?fs'rUxѤSix[GY*4{YWСl!N\W$Uuc +QֶbI p!9ϚnOnKo +=QC^qሷX}նǷx߆NB0ӲĻ”2+L?P1 ՘2&]O0sGoL**ǿ 32$Zq$/SR tY,9j2,Rs9+VFrO8tT^Gr[9e°W ꠮H +wPOTeLa9 ?0/x1Rﻆ0q%FKLU|߽BkYcǃ^*.i}7 iʬ\]iDŽ_Ks6's ܤI9_XdgajnF͝KBَ痄[|]ǒg yk;dzR^bޭhrߪUNڤ>m!={p챎vXboH>d֢l] 3LUE6N +ߊF$,fb)2f +QLF ^ϲWNY{rޑ+2egŷiJ$#Ȟ`7>%_2]ɲnYf*~팷)gb\?3慺[% ݢad$2m2 Sd55sZU9ӪӾߎBR&uiuSǡ|󱅝kHpn2s)'}Ĭ-Zkm;;4oB?yq!U/q\n䅶~SW$N*XaV!#~>J! ;4 Qƿ.&ɋ; >?W%,ˋʠJUr4l?gL+Wr>|z^?p#@:Nw|zl -u~{Tt}6"iq?ؙۗE.I-_~ˌxL~;VbD,14kfM4C'b]vt,-6T\,*ifpc[֕fҵIr{9{%4 r[󻱥Ef=zQ~fhV +0r +)CB!?c$NګhPP:0m[L"^u7zWlMeoWH^+eZh >6@ogE[kay~ԯ*bh>Z9)>~([;3Ldc)|eǖ`]=+kus{ڜ:%&uG2[-Mts{@|c;%9)_meۯl؞I_3ʎ޶[/Od(r뷱<ّimjؐз׽RQH_vjˌb޵Xû-Z-LdЉNL?$a5l XnÃ%Kr !G~:eKz+gy' ?oğȟOE'O:6soOp΂f];kK|oeg|nzgb(,S,]=0vUzefI L@|N&l߫*Rr.}_lM՚7Ɵߗ#a`Mf" XdqѥЅBBC7ïO8 +k4e;wmMz ՔZ~'@t2d/ (v1427ŰHt  i1)7DIeYV>!'0 +,j; |1G9\jUFG̳Ws4n{x⎩f`pf]_!,~g;̿c`~ߑ1ӚBYG7S +SӾ6t+']ϧzdM9kdOSsFۧ:eM1yvF}N0꥘`v'U ^ǨgǨf`aikGmFȽ=9h@9Wel[c#w[l:-וtd9_9e}B9+$wGoIyPvֶ~@GXl0[M֘U-:Ka?M^6e5΁^כdSmz1糥SӛO_"I9,?59l1N\Pq87lߙ;\uu-̮o%*M̔2kޓgmHuM}^NNYv@{A\Bicgc|orl½$g焫eb~Rsp$b1S9qKrd~9\sInm|D}mE[YwmzGܦw$aw90m 8q9c) )~΋κKZun;;F鴖 +sJzE~RS\:*VHX>h—;B0T!쿅Ɋ^zK7gС-gYe4]ISvnѕ*41U٧֑K:K{:T +,Qw]VzM]ҥzzYڭ/:2xW=:G-!.p)%Wccw]9udnWC(^]yRWw2 Or+6ܩC,vlJҋIbSfe+Bt2*/ w=8htӏTZlwʺz/@_ ԓM>:Y^gxzyTW/PCtE1zw?)~QV=skɣ}S Gmqc[qUP&෫OA3|R$Cֻ_[X #b0Pg*gnՎm9Gcꂇ6 v{Za\;v@4B>Q-d+LѫQTxo׉@=Ri>{np۴Cc6jt( ߈RYKbgz9(aUK2x XwOpyFz˩֪GOS'U]Υ˙Cbz~}>kHE.GXE"`)r!;Qqb¾-!#jib'zz<NJ&fyKy̿F3Y) d._TVTOgum>9OsTj68͘ S.`Lzx迄ѽɞ~ԫRHH?ZԏФϖ^cY9B՝FUr75y + t2̚m^f;*+=a7;Y{=z3PdCpm,syf8OW#_9=E9St(iz{1ձ,sIV~7J ͔=]bYeh援Ü Uw+-yG]#kcxN˳H 'Pc@&rJZ#^=kϓ ۇx_AK :B.{xyyf ¶OϖE^3%Pp/~Y;8Rm _.O7yp@_]yhhHS'h2 MefCuG90[:&|F⯓E*wf$,r?QHrQPK|ϕOɱѨ$aXt,r~h%\Y|IRɣd9L'\kAs+$y̧,a?,Do[օ)_ UN ir78ث#K$?%jY$h[e+iyIfDnz{Ƀd+EkNB^emChl.G_#7Zl&W nY/e0OPrHE"VrCt Ziӑ>ϩIUKgߤlWV:°|Seq{yv{ԧe+ \LTYV\Zf"Q"aP-Ƌ<>L{WJյ\)H/d3#S׷F^Mk#B*"?vKWGB*{I.Ughc6v8D"|Czy-LJlyjѫHHcx&c;#+Y*.YFl%d%WH_?dc-f +Ŝ/{uT +":!NPjmֆk yN%CfŠ9X5Ia*I-%|َ iSH+Q yiR)TYK)Ntk#=>ys/u֟qn ٘ 1EoA pzT`gjĔC왣_2.ɶpRZy(vB N8N *)SdHMhz?3HZ34Loq,$= =׭d ]WD ,4uljv<"zkDVQIįL\blI!$cWS#{T)#GWarYXvHnRb""F_8?m;_ +[@nS[1(Ó_Uc]z ꅑlđ}!clx{|j M|t~ƔWX4-a>[6d[-uFg{#{36?$@4%zJbC_eѾ$T- Ԃ_֐ oT;R;9qfϖ)OzxQd3Vߡ/yՊ&GSؙ.y/ N͍ `qlg )[Bwƹxt@Oӗh%i,/{$}}1ՀN?QaR9rSouԭ wkYp Uh9+,lvCEj4"%Z&C=)Kvg G_Ra:,c +gN?Jӹzivw;>!/O[֐x[ޑoswh|9m٧g+\(2WH٧`OM$9[쟇Gaaa.^8&*D3oܳuJϛiXpw:ƅ}?]_lpj0xMhSX̉g?ke2vІk̤.+Vċoλ(h@Ai(b;ZJƼSo̘;lL̷|jz6gi؂ZӇl@ {NW4udzk + +~~9klcn 3gpaG&^-oϊ 43߬b%wEZͿ~Fo=! Q.c ;aq"2ރG|Tiy"{ +an[Kp"؂>}!F[z_ Ddsq%: t$nsxHZ C )R;Ƞ=׵[D:HsaҌw DK$3,X?BS"OS35"]Nӑy )fX!")=bsZǍQI:K"/b X.x=8 TM]X ^S4 )M`8A _b z(ZzU+e G+yrFŲ9{ȭɠǸFwirz0 <]Q$A8jV'9H(Ы +@[/۰&TnA)NV +MTկXG@@C<Nz#ʐ$DUțl"d4E# AV͠</a, ӎap +H?Rs5T؇ol'c?*?f*-Ds`m_[mqg.0,s*}l&m WЃe c䑋tIztgd "(A +̐?'1mAd qm Y؂o7[8n~I!Db@|M^&XDUuQ%/͡D\u{p{8S$ M<}Ċ 9$ƒ=< I&`U6Hz)٘:0܋P*]95Ay6uN{D'Cm;H޶ZP(6dH3zA*Ոf8!'6I`-^& g._K+19?u- ^ tD'<ll4YK#Liq0g9$[2j +;w:p< *t~Y(v- ==̪<ks,ozgɊ]gzAb~'?'sҟ >Cpi[B[k8不tIer!z@'r q WzB <߿4O|Ό?W**gt6Ds)&s\fOX%K~GĶT;e.-S]7p&}=g{@{Ku\١(=L 3i0S'Hȉ!|dr7RlR½yfnJ=rjs+қioUqѭ!Z/:g/ft.8gâc1UjY56ˇ`._f}⢲tcocOT>)WǙV[t1yi1_!3w+#_V}eC4}}"G4Ⱦ,WH| 阖þgq0ũ ǾھpI]?1p:ۿ,eLO;q5DfBC дxͺ<1`hƭ͛}%5UbYRulR?}zcR59EL4T2a;nU5w%c>cJ]&n82HDҐQDb]b+U{Kk[l'FuepJ`Z) @YE jvrܡ靧lBŹ 3]aToJ?]omnR+> =G@An$ G)1y60Q&nnZuRiiq_q Ź@gYs*n֬mEr@>/ƃzᥥ_ѻgg/ɷ9uZ>" +~/"7X-ilc. ?L"WR +*Q*K,d"T6CoPӑf$FG$h58Hqh;I"yvH%S.b1:G~q`׸FLŅ:ɠ;0[w׈7h8p29)Ó, S@HP 97хo0;3T>rXXt(7TJ12諔%ppѾ .gdp)i ?s$^} $ :V1(- <˺"":xpE& 9Lp]sGGz9=_$#;pḬO67)OԺ8Jh$N T:T,vH%^&J\*T^(yp[n?Hq2;CO^ِ$XTRu+ڸOmvv$wynl;͇UOHZJZjjyFz\muǫM;|trY]nKQLbW46eIf`lM%I<"O /7T^y5gÊ;XaꙢ%{4XrаZnEaX9O2z$tlJĐo(#jBVov J|:zcROSq?~i^4ŏ A#35' Zpi}V y u:f=S {r9Tb3YO"I!&`/4!m ` +EZc:fq%yn.L}zAR9N8Q}#DLHzWEV[Ud1avV,戬RdJZG+8B1_h1ڬ_,׻;N3 +m >Id1ӇɀOXۡAFG]unXМBrUԻ4SXIj<9bh+ T#2dz +2r4꾄gz\%ШpF(|RdKlѡOQ=k+qc汄Cs[gCӄs +.2 yH< ,ܜ6& x3O5Oi#l辇s`|=`acO2HCbdFA l* Nu&=xim愋' m^ *B6 +m7yq k mV$4"$E&j؉qݔđjh1xF+䆵i +Ғ7%1vXvYG c 5ZZĖc$!ߙ{J8nyս3sgΜ9~gf#hBmayn!'LT'h3Dh3r_m΀6_:ybpy"47lSf)5ZTpYy߷ lCm[Q8S@lyN+Π^<=[~>X ?ʎzTUԋU NuEO*۱sm\;Ȼu3vmkۨ6ٹ7yxڶ;w\^g$bB7宨.h8@LÁwF hаߡa6 )Ұih ~ eӰ2) }oO~Y>]d-%o>q92¡[ߣ.}ih/UڻFlcX/6w^ 46rr:%~'flkV%-QZ@+wMu+w/Kwoi@q.q0Gݾq PKT:bON~] +gu|sB NEX#{eBr^^|/^ֽ& ګK/M:9Rp/09CĉXgʪ`owM7VNWu>e;GlDtk6g. Q2O f39uU}3O"//.l |hZ!§| ^V72޼z +/BͼPoXIb/b(s:4${9 +W'ϱœEM+Ų߹I68UOQoUhD+ +jn";֝Pi ɟ,>]kNQeI_?! + K2_x5x)lOXـ=r#1Ӿy9 Oϔ~ff?e6|(H7r_-lny_Onmx})t̄3%=g3b~7bgepdA .OĻ>a{f^V7񉼌n,ȓ['fY}>|67Ȇ'٩bh@veV_`v]4nٌVJ }S(X'_3'''O1ŋ΄y(=7GP8U,XDegDo. +_b#Îҏe{C/ wMO+>9/~pP_"|C ߑOKe /=tŮI7'LIis^nyl/}2%MlN6x94ߜ|jyɧn\u#H9\^6˜ץk8;$^o6 Ww +KuzhfEOA^n>ӣv8AkuaW  }tq8iA'o9Y<$$̔tY`PqHK>`'osʢ e<>7,4i:4YICY9id&vPiGS~ezG3ÿm_2F[)} dl~z"/e q5f"`9K^䐗ci89T OEK+ȓqx|pQ\498PdG"Z=)R"ϥd,G&sܽG>83>Xo[os.O"xǓ!3"^|N 9* sṫ:spdQ~8hz"u^_!1h.mC/a/sEd|sbyZW{5D7yA~}ߠ"'.ux9#3nO{T>CR3w$!u+ݳf` > {Ċ'o8-*T]Ү^%۰ޮ̄Q/6 _N!]{< 7 [~ +OhjmI?GݤF-WL_~sfGMI.A7s(_*^;qh:vg9X +JYUz4|_VGT_;L>oy[փ>DN{+b][A8.TX,Sc[wUǫhWƎ5*ظ̧SΦ + +۳TZKUZ\~ZETåŸ*(>SDsS稦t-_Y򺕯[XEH6w]e.%ޜ i^xJj1*6`c ucrd.1um:6Eg^zj/n[x6&YQ<9kU|]-SsZtǥ|jGt˅"S[C<ȋQf>95#|ӢC4IvUv7[hD@3GYᖝye_'07O5|QuEEB㜩*wʢTr`O6zCoDi1:_yzSGM9XS# Bu㖎׮-t#^uWq6>6̥lkZ9ϱ33?/]"F5w\ۜƟZw[7h [IV\zmqYVoe,GZ_.l +<x^6U陾qVqںŰ TEzà8V{;^Om"UŸj\ڠ*![[R'.&TĮ'PKꇜ6t@5"\/Ν0w @Yd{120}"~4:ꋨw P)OQΫ 9:Ǹe,XUBүZWUBKhx[(q&GIv'g<;}c|GfVT ]<Ďz X:x-Tе ^;TMyU?|'L=zćgk}%|%SvMoMSq7;~C Cem8B ةe&x4S3ΨqNNYYgMҪk|Ax'4BmfD]eC(u7ڟLoU +'g-OɴEi iVK +Rm9>Qa:׀qgvrٰN܏4A ||σ|Ȑ.!SWՑnT!gyQḧ=yUX'_Ѩ^;t>Q'_< i׫MgZ!EDVӒ T޴d?:?lV?־T4A̍K匛ZFtކ[1~i*X6]QV6/<M=-H[V2gC zB}Čogf L9YK#] )Y +ߣ2, ^9QxxW,fcFN8ei-ܾL\9S1XWpS뚤u,~iڿe^u/ <90gRrݓ7!oEwD)en7N5KGyWi_ņYܪ>s!_gR\&W԰B4$ N^}O, yHI{c`!qn.mq{rayZu\^8.㴍oj3es3LdyH6.5ʆ +@Q`hIRj]P"bd_8?KѠy5W K+VghȗѠ;<t A _iPheL@ɉdF(xou|? Ay6+YjsB8`Xh-qf k%) |!}]E 7>M +x[8k4y7.VO>iWHVLFE}kO,KJS%fa(,a`FTמhI1n=N[Qu:ڂ>RHPv;g1ftCZY\LɉQ8?lI{Ѥ +)^ׯFj{<@ff`K]sA {yI S ibH!.^9Րk:)/ 4/Wr@)'ݠTl/5>b>[]W'NCm1vw1N m2BCȳn_ɉByׯ:EqM G+%5`GW>phpsPp5QPUnZh\zpۏcҾ]wlט6[]`ӟѢDl$ ",!kSD`*&戮ib{7 kinLE8jP+xMpt붣␻BvHxG7:60Ќyrd,Am~o{L <[0=دlsCm2\VcRv/MVB_G54tB9fI{Q ō_\k 6ma'ë!QD $~H."4b•M]?/Sֹ]7ۢЯB%)ܽ(-TQ@@@ˌz +.Z3crX7J&7+ixjp|eF?j DJZ&]HcOy9D`Rf{q&→v@vQz+0[EEfڮʜi; sic*$8ē@Aa|qUr^x"t+ɞ2n&`nkuKκm Yi ywNB/B>iKLiP-p0M +PkGd<]8J)èt왰2ZL1vYS2oԏ[B2^,P3 D1+d>M]x$E7'B#57 }z{>\x*+Gy +N:kLɷGiJCb!"`ad%߇+>br[FZE.`lR؇ЧɃuM[tDv Ӄfĕ'[%8Ls]$wqJiEn~aioݖ+fڤ/R7a}o]_~C=Y9gݹH^ `jo N`|~ER6 8(eKY +#H"+V6'gVpw$ SFW(vgQ'a@5w3 #FćGcExJNYd%,N|iy`gr0s3ED9b# +sB @JLmH tߠ?LV~*2 2 49e\m cK%{;*1a@r&.BU{F`4]a ֏B[y7H/ΨNzǚ&o2daH +35|d3<<'"ARFBChv]s͔1jmS %^0sjB>;ݘCT[I'g?4IVfu 4M'3~rN[>? ;7XfY:z_^(QcV芹|a[|2?&VP]c0z啼}L`$sA+Vex6̋k ' ST}HS1}a{ + +[-X<6wY2k  :ϚJ,VHrըN^~ ؋ /q >q/aә0'a}V?|ċ܍ +3 x^?%PT1@3Zfo@WI. V7H/n x)ϗ%v_l~l0x3ďl(HjL RF6/x^9$׉|%oБ҈mq̋R wz@"*IwC09sa[`![*ыH9G(f`@B-3OXݫn`B^Y_>e}RW-Lla;}W)?aX53%M`m Dx Y/z{.UHtز_~2M{1fi3q.PmzeU>L̬O9zGU$ʯjK ɝ>xTnkaOsJx]99QUhՅSt<$$=drnW%E&ۂ՜t.^V}*䭥φj)׎CȰETkrg'E+w2oT#titܥ+GX4$~R8u#Y+PZK}G;f9fT^bpDH+ + /lxcXr@[ql4T=@;UpߑI]ZK+bc,BGuu+on-mV +4]nB|'OyWT囼yGQUBSW^$Tam <_ɵzIeIY6j>0 uޟ˧2/ {i%?3HUϋmup׿|S?Jώkϳ/2 , }9.j ĪRF:FY5+EkLUѓuGʃe|:78/j6ȃ/V[s[jqKOUֿv}l{},ڐ)ǿvl<1d7,ޮޥ+l/ln}RL];]K% |pr>Sl2t>zC?Zd(<ȚS[74e.&X/(mQLCU;]Tw^A f$s&{Y+߰?]&W&xܟ9D? +Aޟݮ ?s +lh35ά,әzogy.ش_369|wٟSLFO^w@A#mSę}׀4>CZx!cVpLoQs$ׅЂIq˩ſ-Æw($|;|I9T (0C A+GCsdD*:1q.!^S +qzDW >m?G;R +I +IB.݂Ӿvti:^O)׫eڶ\a_w yvAI9t@9 S`k `1"ffDHb_)do9M>K/\pA\-ֆTk^3(#|-l 5x#;A1%^pZG7 Ť 0K]m:-<AZKw兏~J*B$#ndڔ5} /Mֱm㼃;rpY\bb\hW:8\nk5~3ی<ԊT|< \o$K +̞-Gh%xwDܴV=uq2@2G{C)EK>gܸB]"*z-c޸\/rxx#>:KvL +W㒁^> +^jS`n]VpUzͽ:k8u+eB6ӣ,nOnlh۫s C + +g> jtl)â|1 A.4]R|̙?.n5ZĤu<*(\\|ν +x^56;Ԩ.6$!¿Y1~X"MǙ0f.4!_!Ec lAV28FpTAQntKGQ9RIQh`M8XG4Rש"8} 7\pZF"Z Zڤ9ןQdw\RJ!VH)6m3|,m33!e~֯mZH܍ BA/H%1{~>YB~XH6mA6ߑoC +wڞC9CdȚzWp6D;NRۜB"QJM᯲t&͞#g\vB#t"RsCP;- +bY=\M˰sBJ6WzL}R&A lSTQd9ոCkAfyƪl|?c9Fq7*jyJZw$'Ϩl)nGclV8Wj)m@?H0r[u$굖Tcs17T z˜Wms,Y\d_S7`W +.NȂcDqdsyP6cT/z! tRSё1wXB:2 %:D 5OzB |YiwW>AΉAkpDp o2O@ +l k|P2FaqFσ>: ΙpcWrZu +g`w1jjE sT:Em9G$ F. Ev{LT5):|2?&r$:Ofp.ws"0;7 +Ulഠr)'ϒ!6ߒBa;55qrcb(3A4⢒'^cb1X=a2:{I qqKAJǤM;HnP'i>ykPp]I jt B 2񸎳aPw!= RpOSu1"QiU]sAt, +sA}B?&ÆYWy,S?>P_=>psЍi&R}@.A7eh{P/Ҍ/KCd9T^^CZ;t\nBv5 +zghAc覡ݦv@ț $?@%_$T inWJ0oXa9k X߉a uHYx+xUS R2>$bVxעGV +P +H)"@`' &}i|7G1$ GU<{و"V5b>/qſd.O(Dq.mfج|60Fpvo$em+3&;QR@O!{]e\!{dBo809]w?b?MTE\L7W8 +I +D)A48Rt(ae*154η2d0+X:xsU:>wUюѼq.Dqog.:.C=.N?GG!)P>˪FS(ù0ad 0h:AǥRJ״X{7uH|"% #I5,~~.[="z0/AVKZ4Ƃ{ +.4?wU>̇,l|ѽώAcX>ӑ8*.A˺G,ӫصb(c1n|uZWG7'_&7F!taPr18!w`*=$s.U.T}2tG ?_q#T$"Cǿfhhޘ|ۙip@{ 8} ( A/˪zv\A^f)pFq_eD7QF"B3ݤ _T"6.;c?&jM00x !ZtOTvΨ-'0'ATrP5ڦlO`H< ~ !->^H#. rI%k#ט4uTNx۸"08G F+MaQ7,v5٘\-F+$; o}3)h\L-LNް^|W0tzZEvD.Gt)8*ԼOQ9q}R|{ Nw]^l:G)r mL%t3A)N3?.:Ẉ:)`/T)9.H>Ҩ4p4_eX?lG-09ge9{!?y2]M$/{@w"~r&Ij0c*R0C2L4! 6N|,#ta$ȔcU?WDwӇ]\`6w &<; +bcI2c'\RNĉ -nT$<-1g_|qĈ2`Eq ?Mq_/arS0:,|ߦ#\}6K*'!emR^ a㝣pU0OJuT*/fsֻOh{s}}F޺礏 ^_=# >ogWw"_wOw8~a"ʨx>mpv֕8Y@'lsOTM3M\|!o\VaPpx*8({4AW1`F֫7ry‰1(0ͮ|2/|c<uܜox.ӑ8*cZЫr: 6rC2! ߄,N|s [n`pb&pOp C: mG; Л9 $7"SEodVL4M0|{||C=JGWqgH߸o6+\Vu' |8n pD +.{;m׀7Wx[\2!mɄ-Eo&22x[4ႷECL' ٙm1N@MmZ07<ƕ1x+#B[h;[k 0`( ^+XQ#99^7$2K:q7Wşz@rz7f{Uꦊ:-Zd`yvԉ{tQ,`WSv(bԳ>Źpgh$B-hInA!vy'ȿ\:w`l!^g5Q&q~>eϦI^h:ïpeM<óhTY#*GɌFt=<8==ek\w@ ^ + @ +uQ~AA+Qm/o^>BX0 Cw`@U+WIKN(jCY;בB>V{a".9Au+ ȹ>-(F_+4<ܘ.z$7A]?$$5U?Ca eO9Bo()OI^\D!cF{%'gIcgKi QZ֬ j:0;t6'm`FB`!t<^@̄fIiaYA<9AuAڸ"GpFOp چQz\7Am٩) W;pfm-&<9B&c +&cemp6v^78dcNtc;2$8~138n$4\78np%Op.6Tr0 O~98NgghwK35͗x3[AEe vbNN$ h;;.c+)ۅ+s>Zy%7: +U(_EDm 8d*c\jNڥN:.uNtqR>hK.?v2z."FR7 +R::ፎ!#Q ]jRsKŊ挥]ʲK#pcu_z_Ui9ߑQ!9Bxΐ':ޔvDGD#7 ͟ԇcH/ ;qo~\;PmDddحЅdq#&L*WAsB8x=GXJY8frMq1j(-|=1e/Cǖ۾u&-n +dܠ=`IHиi@-R[%~[ +1܉1u'x+[Sؒ]>| +ѫHK8.*xJ"bBqc` 0Zlouljr\.5$>_oz( +)ٹW3\ Zm/翎"pY֠Habb2Bd<ON2/l,r 㸍LAdMGG0jobtG\FG]E)ȸP MoXES"§[]/Dc,C qp'6/s˸rE+#槿vNR˸E ƤN< JF8 rdDtqt^5-M洌3O 8[}tȷi|glkN \SRqu$|׸H8u$|7%wa#nLuƊ]ĺpӸHx9Jx˸HqwKxMV-Fq7^&u3Kq#5hy "ዼ<.^!]s>KP M,] b׊ ]⎱ow8%܉1u}A rNb THxK.=<=c"Ӹ/ϽfK ˇxLA%ر⻼^Xp̴=keN}F_ry&ĝeTp[ +]Nގ:c՘5WS$p{~ 3}/_C\dE{7nb]]>bʢWsn/3sUu]qUY}<'7''~=VuHE^4?'̷<_erv~\ü+i(W__lӆ2/aOާ6]ޘkvI(z:: +FysQMy1ntdkhtR5|/S9:rP +] ?b|T0djt[!Ja +J>wq< / )/.wH@Rӛ"[@LƷQKcJ_> @R[|59‘>13s _4{sS4޷C6'vhjïVc.Yc~X7<6MY6<VY=,ZOEW].QY`)>ˣ落7ś,y*poF!츆-Guv$aOC;! sBFӽX\o1#ӂat$ uί] n7\GSn :9ޥ=V(* +brmno"7.WKPPدm;4ou#wi9\=5ZK16y(Ecl7h>>H/;OBlFvHy4)Ȭx. }΍!7HPC Ȥ1q|̓~k6Kc0^Xʯ^BP E;*%ufC7,Og"?>^d 1_@cų"?h}L擹KY|q'@ƠuT.Zʠadz n@ hbtT)J!J@Lt8@5 +* Xvc]QKu{z"Vy?d99HtfC-dCuuFـk*+HtL :_տ4X]dr-}C{u)_;p|~^{}\JXfn%1>KJ +Do(GsqR8yo)L6 CM@䘫74kM͘{t4-?u݌cN>._Ҿ/x-iRG'dR)Ÿ1Fp=YV9f 5L0A0PÊ|S@& +* ^O/Y%on_lfeƧǗ8"6aƊ.6nY3h)*䤮RB/n,=Bu2N:R֎\]4u2('~(D:'n|}*+~s?(~ʛ?uZVCssqYN +ۋOSuɫ=|eRFrOO$teE>a#⒞E^=H?Ɂv6` Iה8|gg)J>i1kۛpg/9:Cg( +̦$!Cy7w'z/g-]sdydytKzT{-\ˍ+9h<*$w%3Rݶat%P0_B +g3ҽDi4ssA#a.dy7+6)?V&!Y%z@o33V\4@n{JCksR`w1MU:]B&2Rc|pO&",anTH,Y֡fE< +{{>o2Om"L<."oyF<f@%lHwdxPڵ|-1)w6E}KQUG.i*T$ w&%^U>2gg +eŒ]h鹔X Y-40 C'nAf~nf2̪oRxm),NF$#E7S՟埍Nmg x " e9OG`v'#<@m(u ]u>#REYQڽŜxRZ<9]&'n Hf"k-lU,2'hʂ\wr92{gɲBܞ]FߘGɲb b_(29<0Itr.@vx1[l3"ZP.xt[gT VzI0%D!d=(`뼜V2dRMB,~)1ýY6M.pV6q0e3<& +]΢C.w`.)DզwMFh"U׌l^nGug965@K6&n0^ J|.Aܹ%SA\n%"y"+sG ַ +aE%Ino1=="ْ׉ +ߝkLsZg2|xbWu& RjmF37"!!=אND `~jUC8 +Dj~˼Py'ɆvOi<&8X! kGk>#Sn o;Vj8|H(^8Ͽ,"D pkJs1wyQԧ2X.` ]Y?YC"3S_AS#Rn9VMHpXLKd~XԀ(s':Fv#Ny}"e/P.wmL]Db٩ +_~2.xRq +R,1"H8d:F"i(?E~=n5ۓgC&rgw~g^?׭8mH>?F~bԂut /2XqbnsQ=JJJ`9#80y)=L7bҡфtq o]M7xVKxzT@N RhG'ZcPd5u9ˑTWaPQkrq"Tbqo)ZO6$X$2#=M*Fi%{=EQw=Qᴨ$~x"J`}H4܈Cl_[-4J" +I[dBO!L)]*'9aȯ#<=]DNȜ,$EKqs]n'!A^~Xof~cwXrayNqlPĺK6v* =7b8`31YwqDZ݊Wl}^«!3j zplWf8v#p6_ڥfv~{|_/fu;(ROq(G]ݱFVh_Hi^q1{!M@4^^;ߝ9 +uTk.Odg% +;YSi-{!-بTyW! x%Yz$tPHK'%' uSʊ捾2Y)ŐX^&KX$V ,J``!:=ڑvxİ=}N`HpD1VPU+ytpn+?_ͻHTuekIۺ;Uixǹ-qz5^ӥ:KztI_ +_gxl6:Su0z3p@ET@gP@7e>/^t8٢vms3V3F9-YtLENx7wR +T:y@3L; =Wyh{z_DcTUR 籩@jnNO +!QA(##zٔ 1 H O(&#>|ݑκRJo`ǎirK=[Wd4WAN]=v\ח?ӷsR瑘I͵S0m&rU^}9[t4ޭ+3egʌʞ)㡨k+rXCQEϔ7,O5|$>>J[w<8I$>|N";M2oN/ftiR`q[|oɉTOtǷʃÛ<  BpomI|tW *| +LCx(,C;s JLZVlIZ}\ )h7!h4AҗL`뙑/gd$IwDH`a+7<5wvGWU44-htp|>1 &AơͿP/[DfVy{ذ +E/>x);'=I. oAƶLMH*d#s?"V5'$d?oDZ>H@d"@d,Gd2lgs<=.6洼RzKDu#!oHn9"ګk;`t3u- Z7[x/OZǘ>/RGH [oZ0g߿pϚɷTD15%wEr24yŁ47X|S|_gF6 4fh`L6g~NGo22Mi"xs4%;f7M|xLƓSof|K97ݿՙfZ |˩_e{!;<`~ 2/3˂{Q:vP.P׳QקuQ~,Ux +D554PW'ӡmr?>83-te~wi6<h8RFj(UzM䰮#xºK8M5,M[ץZg,,^b4hn7ve,ʉavj-̭$R e%0eX`̓t9[R#'!0)_`Wx{Y>ڧwL%H9uA\ٵƻKq_#77@ZQcH͍ +q<(i17sϘNe]r@;2dN=8="d⿗!Ix*^h~pCM.:Kh7ݚ@;]5+V>c4/SX DI<La6&=0;-N2Zj -dE BVM e{ǁ&z0i$Go#)_J+zt"tf׉<ȞqyݭpYD\ϊ<$xv:d͛Q^d⋟,/$/< +\:(2aO3vw)L֯NuxUGt RC-y[:eron:=ꗞi ~稟yt]5TFoep%17Y3-bҿGr=臎:꾐:ql3&+@bn M0x TG% \ +uM<˂k-bX031ǛGEZtJ?M*`l]ْ5kR`r:ԪY k*wRquh~AB6m<~ @]k;GOy-ZML&a=:LD=:a^[IWF`6̺6:Iܳ˟ted _&H3?RgBDKv#%ϥ>KC4/36&<4NINJ.b^Ϯeu`Fq6|⹛]&:mС}-dKMùkz5 1>+'0=K»>uȃKPe1"C]]@Bde1#xh^T!F)3A{ JNdcKk>1(:7L:U[Gd+qջV(6-Ϧ+oոuT㺺 3T?UGog2d=5wuErMv>'vYs *wIGc[;d +?WL)KuUWfߣgsfг}[=kGZ+[գP:-9/Cfe3ۣrCorfܭU+ܭ*$I<Ⱥ>VLaş]WIwJ߳?&NMڤʚön+CM2t9i5'1J䙲3e":M3N7r2 r3oX.kHsyar${o7352xGo- 'Yt58| 嵐{iS47`;iqq|+d,zִR9H>H5dzϜgyƝ3&MƎK*M{SvܖB6&`ӝt(H&~%\gN$x$*!؁O n(\eW>yٜ];Sچ̀/޲(BĊ)1a8Y{yv.1:,^7U]+TtΣ_jJbz8 ͠K/C6|শ&Sjܙ=|\ +z^Ds Y5EZS~]M^j.n4,;ːzؓV+c'2ӟ/\BާċmI:G̭0V3^M8mkwYشcexrwVcZEXۊa"*q[ȉ +Ѩc$\7b"妡 Ӄ,p̚˶g&Q=?U⏼i񇳐\C66s;?xNm{%+B"?SQ8^r#k}f=~2W=drR7yr61.y #0 #p1Sp׏fXk/f@okzaìCᗼat1l֗y*ؔuc_Ÿ(L}LB4USvU7u/};tºozI\17;^Lk2Yg,;]u~:P#_ȪCwv*\!/ ~GՎ +'d}P~cmж.nR }/ա'fqbš#ЫzKKکw`!Sjg +\״F_e5LLmdW%f|z 窇G1j:2zr&02[N3li5+ST|؅M\XZYxܣ }(d); сNG ѣ辬4„YLЀ6#鉹%鉛ITtoE =1ˀ&6zZF>[vX}mR١D9=/kmf~XN0xxGV/rC׹.ԽG1-G]컉wqJOzM~]6X_ O7`{sfgsy^F^e"s^Y`x^+;2Ͽ7м m3fNazoBfzF졐吕EzYzMg̈́ҿ$(}jiHm̞$YOzL9oIc9>1O#% 4Ѵ勦/ߐE3]/~ vNd  +,!*ݕ(~Q6<Ɇ<7 Ӌ뿙LVgTP/ ^'G 16gz:̏xa~$ r80vs3 +̗#R OLNM|~웪=Oꭂ/PWCz\B#l2X KM1_([µq_G|"=klCgJs6si-e|7#y7 .6 OQs@L9žHtS~ǩSz{hO>Lrt>>O颱j^I{C_C˨H"gւQJ*[pS9`/rEMq`ʹy 6p.xdr?N2 O_꼜ӓ_,ԦIr7!dBW~ܚF Dڠ[ VЯBWjYp&$pDynxu?_Y;+Ij}t gq+D'zC,U}(:*nG~]UN|WîUb۬ Y5YhHk}žNߨUrB:׶u}}{~7yv^{6C_;urJmz2՗NKIKjjc3/0 o("Lbf%z*cI;s֒@ _}G\&v>bxJg0ၧ?=Go607t4ud'rrF?5plXTeRyN ɼDxc6Sޑ43pxtR8531jnMz#!P{lMO 8J4t-]fԬ@gQڹZW>m/'xLm]-_Ե; nN٪I׶H8hW[[ueS2ؖ  mߘm&L&Q Ru 8@0_.܉*|T1L9zS-6.%{x 9 %VR],ؗWRMyt&z>z2C2<ό2':ud*Klx8cmyTxmߗAw%׉g*zK*^S4/Q)ʹ4e\Ky%^R+G>Gڇd!Ttag\LmSY"xJG0xqltǎ>=p"O7X}3/ +' |3Ŝ䧧j !BNRǒ)⡣o̬u]eHU "JΤ,>(&C "uDjxLji5LXf/[A\w.qhݖZ Z3)6WOΡum3k-u4nfxo~ )_%o׬UsJ*e&tb7Hil{e>λoԽiҀוk[M^O 9ʥNckw3߰ky^u~ӺjI(g܆"'ŁUjUD!lc:;n)DlDb@ bF Cl f ` aQcҪG7Pu0P{U;e %J_Di0\(=kKRl)A:M>9pqȜ?N0##Y伷LZZ0XY ԃ%F"G,N|B9걟ݲ_2qd `KH7OTe}rI]^jI&IⳀD 1pev\4=?0p:N@ׯY'=|_bD|i~YNjL+g} + i3ey:}^#>)XƈMWa$G!wL(;\͢^.啎-ˋXa:$ٹP:ve ر4VD޷ZK򭈕0cj#Q8ϴ逢KyqQ==~ +<KʫZbBYycجbs쉒WˠF9Zxʽnv M[w9rʃ2Ma4)iQ)/L_l3׬ Y^3sݭ0nFwg<$β`tXu֋pj9>Iҏ3f`p`/dN~*wBczT,0Ais[c'Z9 ɕ&:1J33hos\Q4OT2ՠ;k E%/ٜt\?Axt 6E-K[$ +@=v?M8rأ`x iLg*? + @ aţҲiĥy&}eXmDND+^ aU'p҈]$ţiJ׶pg8 +}yԣU#|,rNhJ:%lfpv3b@c -7*=$D%]蝇؀]̤F718p~Y+-4Cπ\PN&}ۮUY%x6DW~8'=.4e@ xW(kxL Ab?A(%9}(*/Hqd>P.n3:eĆ?;cK|isșVΌ; L9 /=84A35hdˢ f=;)8\Sb|Ц&kz%q@~5RU5V)IJԱǝIJz):n$.!wAy^ܯD_D {>PVN70{ B +,\`HrF|HS^]: l4ctA,*T{p0XT8C; ׫Ǿ!w5*U\q U3et8.o䓻z5,@BmT,YX +U|_,%jA U-uQžv\{M;UͱTR9wHVMxQ%ʃSy1?` +y,۳C*eS=|F, {?|VEɴG%.!{6E#Rc4}Y_)O{ׯ<ˏ~jͶlɳ&)?ɑkGZFڑvFa|VHk#x +M舽Xl't6~8/3ߞ<<;ykY˳#.1 +-d@#Jq N7ڄ9 4&0ϞφwlxogY0y6},_~6z0MFγ}Fbe2?lg?ur+0 jvl}(o}tEs㨡 014,h~EyGy`!.h=6@ @ 5h0 "p8E=l (BnFoI27lg{~ٚas=w9џwҟH`L|A5?)ԩ?okYk9}7j՟+'JîQN#1ՕHݦܗjf >]>Ӫ?Wq{]̨%PUQ"UhʲuŇ:C7<ж;[?sNYvnϲ'ӟ[Sλ ?vYs{^>b=If8R(V"ܟ5Gq@bYWSDnDǵ +[fCݭ,k m]}hFv}L?ˏ7g&G0?ez?k/ҟGٝsWنb?Qe g92!-s̥9/rX-jYĒK y՜ߓPԚsBB-'3_ܮ庖MOuU&#)PsiSix:˒ E~{Y SI?9tUWyUu܇ +SQox_5%[x孢3nlwO):v;\MtpEVyBZt-:NDgyGż'0gb|shu֣203D̘Ul"fAĤlGDLPov#x՜v*M&a @dg;?f=y5VzR[=s*#3QD9_ޭجg꟤3g&t{=33YϤvޡzfvzf`Lzzfvzfrk=2S-.zst=s lJge&PXE!3kk MwI=3A ДUr)5ȯ~c>{5ƫtXT! [8z,,9{#ZۭgLZ{=cIjE1F"s'LK53.fC$8H5+ZM`-űϴ2:1V (߇ui)J-Qp*-%K*K6A(w[/C*=uLQ:TpXά#HP\FlD?rw3ҧYg&:gzgŗ}*7Kn ϖg]DoyEoNSwЛvtFw#w͌aY,z7EX +*Qqn g!hǶYOB.΢|Nƚ} z͵]z3 gDq2>-,˃e*ܧ`dYEk֖q8FVrh]b4 ,clNS8Wۢ5YEGr9Ef-Tb֚SQj͛Mgɻ*Qk^ẂdګY2F|݈l?g3yvgM'қ;Ϧ?כӿZI# ljy4allNfXl̦lt,T#?K9YIpBGu~v&Шς{ga n~lZ"?3ᘟfj6fڔM0򳹾ԝ`#?jg`{שs-:G;%GkIfQ: ־ӳ# U@rTE{6c=Ї#R/ #QS %G9ėLjXv}GE,37.ѱ\,wx!aخ'غتfUAo=QzWw)$a+vF҄:_9=Pzixk܇<;a+wTAblR y@l#m5}%4u[1nyvFL'+ؖ؄OP=lȊ{Se +ܜfz`}zG/Hnkws~(TK5߻cOAE=vސr oXV*]Dtvb<5<+_EYs`/9Te%dHMdUkNA2+"MExOQ~GY(^Q.܎͉/?)?W!;ft?{εSLD{#;32V8|&MbᐸBUa=UD.״b#VH~}1gX\U5\˕DW(2/#zpܿUQ8Rx3Gkp+ի\k&s^9+ܻH%0]XIZɯ!۱g|#||6c+ex3ydG]h h hGXR*R'[Ŀ:wA" )'4ڲcV|X#xqlIJylQ߈m4ai"g(ugCfY9thKY)qxT 3tPTY)H ײ#Nz.*l{Ȃ ;(0~?{ڿ~HX-<\,<< |<*"&@Bk>k1ãˣZG<1+]Ӟfl=DM +?e{ןOsFlYPß=6U]" +S~=[ hdE&aYZIn;i P󨮯*BRk\7yy$yNe8 tp4V'8<]PyQ͐pGs>Œϋѧ^7mXի=ƕCx_dy/SO &_W76x__pT+T}oai3B+QdtS-ħw;3}Þ*9}#OuT^VPeӺR[q ̷S`c_ &$~={|`A{7WgVw/W2B Kgmcd;Jzk/}+lxy;4aDN-fQryNFԓNЎRj +XIѰ0hp )ZΒ]1a ee@&IŨ6lJD+2IQ [lc4~޻{GiɒuE{}^+607vyK.]]By j.`P 8 rR) ƭX d#Ɓ4v8o񿸎E`xyMyg|Lr5ӻzi8ܑr$E$$oxM} 7~ -M *[~C~uz mFx%di^A_O5@+osȐ]-Ym-ۅCJͤ=}pģy1z/Ĭ*HrصMy1 ZX~i(=n{4(. _ZIO>$Vg@rH ^n,=u8߽ӾT +G2hă┱aC3:U03[2_iGod{f֯ATm_nO_25zcћ̮L9+>l#1?o+j`gFpw\O}kfƷ>S9-/T!OЏ~>~*cC %8!*5\lzLUa #V`@DO7I[oflcl@: (,64lEeƆyqײ1vͰs}] mЊ7֙6KgJ6mjMj#{X?fvh)3-\~\ C#j!6L)ԔkNU mKUlܫ,dlU+͑kkwb{'ᆳ_| m'p:zPLn.HdDP!9S/vaܕN6Ş#ZWȂ6+5a҄ѥ_wOC{>b;LhKuqAbMAs{duj73% <62L)LJP +KG'j*Q@+zEˮQ+(-nl7@ګ8d"C +v_/[f]ͻ.7^q͈ 5#gnd]gy@ɺlu $wL=̆V$c;~F$Ee-I-~'q*a܌Cc\zlRMo:Be8,~V,>0#!Gn@FKm1т[EтF9L$mG +醖~oBb'ȕDqbF +х#R*S )ϛ 3$U*===Q\0)@B-T_1+>*>OU1D@tnz+z26HmPc\BAF + 흱~oB2`s kyLAcw=1Jw,RJ4Zat\D\,c\|\D[Yrľ%IuN^/BՋ] ?gry o0S6'/Dv+,YQ\Х;7г!v {G!E, KG>č*N_܉>0NH_XyXp ,!# q_FXv +0yI.2.$X1DTý$ ʼ߰%ø$ą%.aJnǐƈ\%DZ\>=R$.W.OY\\Df1xI^)#Yfᔃ%`LANP'%ٸl^uY/,'ul|.wGLy 2CFgzӝxV-Z,Pnh1ܠ-Xr{ ܪ:K=N}___CG+˩%A*$ĕm`" Mg +eq]"3f,2Z pE}\1H1adiVJYOHe$YV(Fw3 Y8LSPF,)_߅j$~i$y5<`)$).';$ 9iiod +7ﳊ[1=}vITog*I[R,1܉&)d!"!$9:1r{o[4OLjWphA//z>lO!-@-D/H + ~4)ם)9īN"]fm]v&w wr _P`aqMQ_;-d9`CJRkK"D:SࠝU$Z*=,⒄/J*,!?ǩpL + WR᠕ +*=[eg*dO4eQFW%'ElF "}:){FqtdrmFF@#sC2^i(n9PQ젧?r{gTb6!g +*>YDO;ϐgE>mXD Y9Ey 59LO*y١ⳡ7|u3:b`#xԉRȆG| Άs7 EҤcɩ=g$8N 9gxS܄LTpN8\8,ɼS;ōq{Jc})nJ1XC.R./SDwٸEbMu:)W+d:e缨CBzk>3tӀA?RՈTNU}MU+A'^kx}^Oq;mV)BVS5=+ݑ]&8Ko+ϫƯI-fkX.TyHlCssmPGp$݈dmxg7F Z㇫seT +˗wX-,*V04h#7ܫ s:ǣ7i}x.azr +#֘fm (AŁN ͥV\Ued_kW@V軕0[T +/#P.q1\ fP GWyyxs3;[)2SApi9VѭQQ5tZЊ0,۷dκIqfW5߭XO'^%tGI?zj;g#ea_·iE8*US.lmbLɦUTj_2'cynSy6{ղL|f]|<ǻ:"1ٓ=I5$xrmByQuWc_Ӊٵu7z@wx$t%UQ,*I$#$+wóӮJ~†%'Ưa~8u/ NY:ԓ1u򄲉IvhY6E̒3N2i2Ae\e ,5?Ϋ>/WNSUEZ8ezJ x~ES)bAs"TRלPg{$,f6c/GA'mS$,^vV~lŃ!Ay1^ [Ww~'iUrw |wY*|{|=<4jFm%}mjKwRFK;zr4'L QVY;+%*5qN[S_Dݩdmd{:! )׏ir aJ80q Z(qy[͓^'<ɓ'<} u (x]/$R{Sa>&LhiWdn0#4ʑiDb "CiV݃GP<+2kj]<q@'zYMfy,|@P߁|4@3XaUBpJ +YQ=if>,-xy2Uڄ ++HPEX1h+<*3FEQ>W7 c.|W#pT}1O&ǰ효i$ 1#;?dϒ/O:[#L>6*ktJ3F,TYqYҧ_LncbБkɐ#)[JdHhBݕd3~ +-xxdPO[lܪH6n*ƭdc#cEKƋt*! ԴRr%׫Diī0DH^5Fq`:!U4#no_^vj%8_8Lcj 3`^ܘ0i/hHH,HW彫0\Ǿ { 2)h$4C5lDŻƽkG-$CXsÐ3 ) Z14wNUf]98]]}wsԥ%Ǽ ;C¢(nOG$dhB$0R(-xT"7Q9UJ=Y ND{bEv iLֽ7,Ct(ȩUsOr,PR]y,d|?u)rt.OʊSnANr:Ҽg ǡ [!鄜.<ɵ鰡JU%+J"$퓊0PSz +tu,hr.p㍚WtH4|{+ Uw] >T׌N|pCBW׊:y‡2/>TzAKW>h'P(*rx"N|ۉ%o >XL (Ar8dADľQpLJ)>x0Y8+D0k{MC 9aƇya‡\а8-^CŨTt<*l}tX$;VXmgc(/A!trL hi8.PH8NJAh̼ B/BN} ϑ϶!AN CHƋ ťɕ{Hvni>1/pz wO\'+]|‰vOds&aǾLbyDc4d] C b= joZbԻ # 4]}qĹqR^LjXP#kQ5 j 0>`H==A:[pboyd.C2j{~z;M9ܢ R(tET!T0i߼yNN)::L)܆_Xfu{ ~_V*W*!ui^5׀*KIFyT\e\O%]j6̏E#t{bocFnTMΞgÒ8d|D!ׄK̦ZKI;#ﶧvg$"x٦ +YƧ"X0r,Ur !E"Xoo#QBNV~Q:"Z>^*1x<£, +>iQCcѴw-3 ,AIS[kԙن1%ƽqXPΕ٨ B*X34%w`0[K@^WW醦В$aݼ$.ן+Te!/ y;O/>aCD}v k wp$ ;4s8-ލsPw*h7nL {gCULYo-w#i敃`EM2MRVO Wtqɳv_BkKCSnWǗ?' .4]i`0Rۏ)Z!L"ʤi?=\d:"rHPkM}lPT h2$ ަ!l,V.:* fcXdWũxHAN5Tc9Ư1^%^|H} 0PLBM±RĐBȕ JOĩ88;j7 +* Ez(醢)E/M1Q uP,+BS@p yI^Y{ʔ <ң]rrx*R%@cXxo4!;7xH;x>&)}@~ɵ?,knwgX<8TY&]uo]Ō[A-;yK;㷠ojnA` V` V`x_W/;_O=ٷ::FۥAw6#W ˒2馣n[~0Fj|g0c\c,4u؄~\[w@uԳ(Xsy7{&AJb1b1NtL?/>&"S<6he8mwi@Q5wZ<&$@j2X듽`mx`S`pLFvGᳺ>kP,pA3^e7F^| kHgp@9ɾ7SrŔ˱$+7EX6N`[7`?CZhOyA7FZhBZl[QE~ ~z%~el?p-`l:\~?~?)~nVZ +񃎼Z'ǣ6Jnr@.g/`y4sԃfN^G`}),@)D"Ɣ ^ \L"&֡8sWg +o~e+ o hd-KV؛E`-"ٓI\R݀@cW)dIiba-,ƍK +~ΕrTv/X<Mw~O~_c~O_|{ރu۳5 ֬7zi2fkvZq%xZfz=_RSنs=|ˉev+ yVSM&9zz#,f/8Ɯ!:Jv"sgc|-zHYMX='vR겇;dЋd^kNQnψ'Z U$uZv5SPkSZu[x[j2OͳUp<Ϛ!5`M|RIΡz+HJfَ#ay&""v|>jwCZ3Jon/Pq43oPxSpa uzx2TTm +7Uп!7QL/gXgXA%rd1+dg3joՠcFm {Dn^gB4kb^dzCμ.}mC/9lQ#.cndq"R$d!{}jBvF@RVv X#تw(6d/_}8ɏ:+ZdoX&E Xw,'eF'\vPW]O,Ǚ.D#X!d 5/߯g9 *k o,-,̷iFwi>\|^KKA!ۚKN -w92G~;H0!N2/s0ʼd~Erȼ+ynMYpyHbMw*W,ȼm7h2/6J^<[NLv}Bs,[YGnCd +ך +]iwiITM9#$i}*zIg#4F.@9E=#AOc73-3 8뗌}tCWf0z tbMz#wGcRcxqDƑ`Drs@S HO鑆- w`^gcU:˳T.X>4EX@GÖ2ESHP'qR̪DP|kѬrvNT"b^X?{j&[YI`. w+DN,89z{;"dJz+R``+vg&l'Gf<@HPu J04D0Ve^n}din7ߊ/,U.w{8d .~`f>nT=u߳^jVYXr9~wj~RM4R~Naj~ߕ4oFߗH.~]~cU +*0hN;*+HjN~>d#7ۯ9Zf#v:aߗ;^SY +y}ykHJ)߾L~?g"KWw^mf^Y&+W/ ض5wBE"%Y4_/@~.xH%6a +/Gv9[)33vKf`@ _98ŷ轗g]_BV\r1 Cv$H^2t萾`uzLڹZ\^/@wR>H޲ b*rzbg/@GT~t|B !*+SfC6;pثOؐrnsd_[vD-ޘTZx0EٞeGKu^G}\ס-ڮMD2]0- X5oe.qh1{P۝8LD6-b"*= +'TZV*`>ے,*bBh& &CSv$P<]RTڒ.meU^嶵knYщvѥMD:15b&b.Um" uYyU~\t8&PtnNl IC'#{.¶I ?Ҩq;$wn-sY7.ck V|INUw*_W).Zx>D0,\/)KW׌ca>`~nYʐ^.>a765 {*lsH-oeȿ9/WY$!Td"/ _wo.+4hg|#]^_d!m?r+l:`N7[S9Hu8(xk9*彨ejͻjq;N,k/.Yʝ+ӎT'۝5igQg}aT*I]]Dt]$Տ$'2(n M3J@;r| b[g4"Hj̦V 'yiS@'8ͭ$dB&hLr2 Xcxf6N"IZz ٸ{yFxY]+G枔<+bxnIP$TA + cx}a9aݗLɐGz?rdjBle@B2[ÐrPC6|TnNX7#"h#TM-A 7'jX yr/r'`GlUH.P &Q]\j4vMAz28PIm c,t*LpSX185ZJv{O +p yfTWE)X^% mA` +D)x%-B=l1ڸH{ŸȋuFP#N + +TDͮ|1dYtG6Ƹx1eGSlbV_NX%cJ2N"#ORnU#sʞ +G9և;f+~W8(>`썅BTeuliSn_MXn (5Qy<;sPe&Z\4ɆrҨJV *JJdM`UUR%x/dFUhfd5`UVu$RJbhfm*%81=3R:1fim}VK(s$.ݠ/SUrX,Gsg!c,1? C!iRQy.h*[%-Ug<^_wZ̛O[~?ZMO!Ogބ⩋*[Z9ie~Ӷşְw'nڶ>,T3 0Rl :ϦDD.+duwب,9ig Fctu2i6/8,R%:P7N4I9 wx`cOI5=p$`tmN| Խy)Y2ISWl0R)n89 4OTb@uxZ"uq.3j>o/NK&O}*s*nf9So( $]JN2M?;DRQN +FqŅ7ŀJ@Q +}Q7Ox\Bygy6oKѹx /W cTǦ"fDXSbx?RcX{~r=D!$ytI R)O*$s<$5W׏I.=zXR%]GT`/JJp3iҘ+3 k%]ֲn![ېph(:QkMeDAh2K7Uwg_v߭uftGe=WsU]6[ezU`m+F[]گA-NhMtqߩuZoեL]٭ vR;{6h62 ɬsi11G,\X*2@Z:1Κ{Lk.ȴ;~#9 Ը:B`8ڪ^7W:&pkdmLv +1&}[ 런cYAϟ~0*skΞB)Nμ@i91y2]%{;vv"YC?8ollh̸䳖GZv~jQjSnizG_lyV/[4Q[ +\ymX۵ct̼glUUoyܻ2[*/O g0jKb$Ǩn OʲبZnpU7K"q%b#E(#Bm5[F 0(`墛ڭK03Q 1;IM:q<0;]#B߈ևĈnuѭ0ظytG2ŢaDZ+P6aDUC]-#*k\UQw<*6FtӈگqQiˈ:9ˈj=]m]5uLhB db2cSz1Mx@n!324`!yI^)z%YerYv/8هc/+N+,i<m?&kr,h +a=AamaCMZmHkң܅aH;xװ6rJ⋋6 [BɈ ~]jk*v`OWZZmjCah%, tenMLuL7lOQ6A۝DT8$vsAВ+8vȋc=53kumpy앝ז+8T%=WZ|+U[ܨmⲸ[`q-JhqDX-Ѷۺn)LHဗؤq[=n+r;m68>k|+;Կiu F6F ? M@kl#Y,.9]rvdf7[ᵿ֖Nvrl[_nu/}oW\ove{6WwC\-7@e +]{mejҹ6n Vڍ.S:W2osgjm}s-VxᵹWϵN۬^o+`^=u +W;$,(LaB[Y`]E\A]+s]~niw׻Nq3h}c{|L{Lc##̎oxC["+,/{y2q9Sjzr8"v%Iը} ۙۢi^%eV'P4dkx:ȸ fj1kos5lvW,hrSƲr)✧!`5y_٭K%aAk>?"=e9\ؤ%v; lDF'iL V΃i n&V [&̽Vg=)gu#ܑD3q}- ad?qڈ}J% TTY)"1@RJI?"dWjԸgwyy6~1&cU֦'V9JB9ߙT9 e?W:Wj5b._hqtɄd"TW̿Ȋ;O =9sg<r}V4M_$]vJwCY)jjWLfPKP&Od4q7*-K+{8#K㶞2/ZOUHj zdy(= K)%18rƲ*QE$E +wdPVK AGHi` udwƸrȃ0Ա̪LTTc| $HJ.%v^(ZVMeG怤WCd$ +VWh^+q|>ԓ=Ǔ<2X7LȬy5! :}4XRu; /N'kɀA D[UQǹH$0^2M<fyd2oD(*@2.>+3>y:bEݮJ )dGE{ VVp.,#,9Y*21TiP(]s6EHPNRSoڙ$]YPԀj_bvG={mX@"$;*CG0/6ܮ3^% tp"K/$Jf6޼yq҆i)ӚV)-&ypRY zʲ7 +7ls7pIlgn4 +vz!Aa@0ъ-k+=o!W1p9qB9qE6-qBxqch㘧#,FtצG`0j&<,o؊V&[:vƹ#%RWvpQC"u hލ0}3O+'MEx$ V:xjO\ą4`EVP|[|o7y]Kx;y2mH#'2fix^Mx$slyLL<>ͼҊmɧP]M$E愛!~5&~*a<3j̻݊)x32ϓAo:nϪ$8giͲ{CVd|=qƚe8e笛 'QB`.kTb[{X +,;l{Yv'YvzKτrUОzަSd:P,VsT_vG=^bUC}'@_{CrXv*-mAzX> wVf)@_"!Es }~ʥ+-v^ A?oZt~6iV>Vc@_ 8}:IfAwbǣ<;h` *tI{}{y},2S+D\dS}E)uZ9Έ߹"Z d}Umg UazUĺmd GںpbA+k%:YĹ:Zs>վuo~{7`m+kWD0\ o9xtDnxNv'ݱ$_{󵆥|&_[U:!rZπpZR|mga0_+__[[UjkuZòw2ZMVkUrWE\_kZ_._*4_q_s/]V.|-k+1k5i ;lVV^V*lڢ[U䒃i|M&5vu +5iټH-CGZ5`Q6{j]/)N”9=Y1ȓ KZS82f ("Oj'`=eNՄ50;KWڼ|לv/8ZFG]:)s_\XZjSBMS1e 5O+9c2 "=z\O)s-i5詧L9{4eS4KRln}bi],MO8՗$%,bY |z_h:,Aȱ-YZ8%~z_&U,j]T큞d#ҥ+so}̡ .uyʷXKfiO[SҜamrauXZpKkpvei\,TH;=K,*wqg ai70ϣ#V؉7yt[Ϣ[6]K0,%qTLVoLxgru4MdfѵG +qkwϢk7>j~Ͽ05n`sH\doMd3۽sKo1{zl>'DJ^NmdRn++w2dkۼ +Ohu9\gk|C9IK|NZ=](+ˍ&EBWgmN9hs97fscCM8;bJሿq2o]Q:]5gGQ:V?](JmAS:e4*6t*V 2+ަ(j,jJ +3r5ŷe D* vKuE*:o96PQ:U9t9Aq5ѱt]9Ϣt̊m*NB9E(Jו1WRS@Q:a_(Y]buombu]2VD +qj4zCSIauQeu)VP.ˑѺgaF;lh3V^'l{oTVau].V猽uY?(cu7}kwo2֕~uAvKľ&v=Nng2$`xSRz,q՗e 1ʹʽzċ~̠ˮv:$';]o~ѯq<ࡀygQ3Fy!\/`\OF3zx(54Ƙbn)h0/ .q<Ȧ҈{[)9?l&{Q.%C8gne޽֨3"tsņU:r:/zۊ<=k543JҤF, W }F߫(DLgZjeȣǒGV*G"_RA&nġ2[HRGI($Ԥ[(#P vKoTlvg +y"G>[)U^M-a -qh ɂdGzh/-[lm`-?DLz=yy 7]+:ߴpZhǫ&,k +5Ug/P +'y߳f} jԌ&=q>8_mW>j}o>ԇ$32Ϛw9]f${4/ꩦp&lxzjO5}"sM_CB׷b޵6pyZVBR?߱^|7o֯2"} z6ApkvC =׬OQJa .bĆ6RYfFOJ[f3+Ϡ:R74}a!lPcV7`恵g!/T` U1Yb]FSt󘟾NVO8TܿňLQ-Xo(FHFy%go'KIefgD`LKO㪾Oo 5jATG7mIDfkfc2`A A݄\n4 aN80d +0Fw3+QO\)m!j=ڗ}tIG #".aIWw$dV Jf{rFOwLcqW#fCWYC K8AѨ?_J$UR) e8̕T#O^ .$U|&a%I֐q@=UCvxJ[`3/m)yit߫Hi+2 *Eưgfs"D涐x>^@Meg7R"sTݘ ENM@z7̻*Mk(4ᛍw$,G_=AL_!nԢ:yq97x0ѲxxS?@:_R=($ MRY#Hq Rlqvc@5]h5U+حкT+H+p$$oOE5T4TnPehnT897ԏ w9 /N|en |ʐ97$47TQ�p#I@ī.+ϽnaA7LgQ?؎}Z կ¼"63Jj,XQ܁瀟N3-cZ:WBWٙgݺ$*w`X{M&y֤FS(&}ˑk+yw-[B̐qY>9#c^V|mi<CE7oU,PWap0R!G,aclx‰Db,!38xކ> DN!EzM!l'l0hm^hZW dϔYϗߟ$Ya-o"II2l:#D  qקea4Śt"[cp=RD(|j0)FdP  ó:BR.=+s?au]HJRB?éx6g˃yT +a8 =9Kh)dCh))fTex'?Z8VL??.nѭ0K(G$3",4ԸI.wc^ jQեn_L)Ȟr$ ;_pxqϳz &J<~ػ¨ǹ6z^y}KeyDCjB$3"cUsaÆ5eG2N;=4n&]]0/R֞(!;NDwI`8GXW#19|6WŷUrj\L`BӤ @ 4CH7C=mB +c|A-p>&N2l =qu@C8܈ĨY4pb2o;*_H!d%beiB<}ܵ-?甿_?w^HMWE~8Fg3jR'j5I(yd?'#8qbxcM$#D,ń3/RU1˔ 1O!wr e6DhWݔ +X!)7 ^.ת4Ҭ0n6*Y70})$s< uv e)h bM"vR珑؞tQmDR%-6H)ٳğEl-k,\2O'SkXj8\saS19C=Νs#0KOKOȔNGG)5/]NEML6`$bĿjt5%MKwNl.Mwo]:qZ3\EF'X(HKR)j<:*-b`Tj01!tRnB'dGN2qz+t*fIÇ7|U $Eg  =?CiE4B8&Cd@f ײ3$FDڰz>8d,NpYڿ1_?\H9׽=J/?Pѣ)N;38SO\MOQSP;L_ZGjj (M6G,}GYOqcUIx\zv# )PXCj-"xN-wV?AnZA$;+OʂR65\MV{[۞n{߾pk7 kB-K.Z4kYmɒ^5f1!Vm,& ;2eF0z343t5Dfn=)>ZNk򞆗'~Ӽ$3 OT DjvW?RVH1'q, kM:]fz3GKAF>y'M}Q5#\C4OFF‹~6F_ ֯"gqI9wpM~uv|o׌?| w>5wAO[|ytΰtN2$5˘B2G ѳII,G9"J74V-\ ={kڣKɐwE|(W 6h4؈n_rrC;%t:wo`gE|\LK}ܺ||uKl2ej;|q([xPji~0,>3$osClMq/xxl6^iȋ%\Abd*Wd&Cb9wmd49B%Wcf +٭):SEl3+Os+;?蝘Q XW9&90E3P+3t~J|k=e'y&D_AkKJy~ <$:k2!<&<$Jd%a3CY&DŽM)Zv}-Dr+G:GDtH|7l7$_<0煮?V&Toο/D1{+ѡ>#V!XJ|Lh^Z\,*6iY1Ҙ0HJA6nIPwkD*w/re&A4˛# ~#.|,72p޻ĭ );M54a<#z`ljH pn:Ufp5D @FdLNJY9C:OjOΌX&@Y3NRIW %׏Ka^i{қ$O7n$?iLSYjTn陣 #<զd8sĚ<0O867ӗ?з<6HyH~f}$4F#Ԋ6frpT!>U`#jқ[+ٚJ41h>~)4|I.@~8Gl%nBWE}PUγnĒb; +ld϶/oHyW[^|~wpH.Y/XB"޸È +l(({Fcu~{5c*؃z#wUIjUoM9t":N8Ϧb|xLB=3O"ߣ#G>zh Tzy`2|RCj1|r=Zܥ:&@x=3y={5E!דSH$!J91i ӽN,8)ըۆ~ 8优pj06c-ƺXb_CZ@|s#$ƫB|7|*bO>c|V6KVop^tS`3ؗ̍Ԉ-PF܇)#壛&N`Xk:ILZ7^5F>}(˫z ؖSQss/]m|6N}y@q5N94NY"33xþ؁=jXqunTo0ş>So9#"MpNԱ%(Hӳ5GnpF搀zfThFRl  =arkki5.]8N)^0k vͷ/|"w9hߪwD*$ ,g>IM 5hT|i5ޝO"|"'|"-x%y>ʻt1Q k>ѴOd5O4-?hڿ_'/k>t`d!Uçy>Q"|i5 +|"*|"$Ehu' Dx1k>t1ʞO4=hX_'2€YMqwA=`MI-eeCc'DC!OdATj'3e|<$UmrZp1W{7zPu٦`)Mc$ŷ`6.lQ2?a6NWٿgF*v7[_1oFZ_=ZFo |#NMg4ţUC9~s,{s#}fVwU6 F>74 `j4WkՑC]ҷ,~K8F:a '.}bk-+⥕?E@^=h>&:{p7e ڷeUd56'H 29*}ЌVF@/MgW_6.4d\⧑2̦| [ryn^ P y)BshlWܿ$`+*T$@* +}h5Sn6 ?6Bmo7#}4)[|TcRb⚾ +RzeVSҫ%üN>7Gsz9?{=~C%GG>б{/Gdr?跜4[L߄>c:ܕ%v|˿o*W?C߰w<N}m-#u RC'1 #>z9A)BEZ_; ;1bSyq8²s*vW<=]40,K@UM3#,-E߻ć>,ܴ^VӜ/= _Pzauaes?(.7>V榛+xblJCZ1 ī-8g>nDaIa].݌3t)ljз*@zw+>/ߛMtig8z"ndŒ9c5!DC^kmt,;s}?I~;ؙ+_%5+&U#웕*\|K-,><2xۉWԳ`'yC()YD8EP7-#s^ĴM|÷ѣ|4 +&uaܗ8nQ001%BS{S_~B_N[8-͵/-s W`HI*1Vzi4RJtR1I.H`7D0[ Y˿j\Ȧv  ܺwvVOgTh.֘fpq4p 3ƳzCH7=}7'94yk5Wwy\Q^k'\W߿,Y'0En2&4Y^\4l>{pFLؿøA٧9ا=g64>5wI*૴6bL2/sKPɸI1_t1sS_bO?+?)?_U;K +@j:'I~S^EX~_TYR~,y/s%_ o=:iU]D!2TsI= + ! B8c"l{h={.xRP,8D5äȳUBS{5 +EBE)~(Yoi>+l%7WremeV~ ;>:ko"74nW\p$DRp&6Rޞ8-?`NyVk& ^&IA͂? bvnBOm .omx&}wJ9Mj[otV|koXn!#A_Gpa]\ZJ&0y络\mO9y8Nz=Bu-Xo,/8]!orr f=/,oO CCpy-`i_^a!h=TrO\j)a¾)O8'l >2hhyYkH^xg 3>c= f(fFp,u[0uN oNa4Neŷ?ٲ"Mq9-(J@y!>Ԭ Ohqш_swJRl6V$_eFezpk˅Fۣyw<Ǵo^⿕7{xݷ OCzI5xkFsLԈ#a_bd2:~l J4tMgSƫxR/މ命ܡ\u7NMFSU)ak3_េE?PYj)3y- fcײn/E8v~1u-ӷkDmh82val1xw]Qѽ֘8^1}27 lxp suqHiݚP-n3_7{?Ϡ=c<6Rƫ~Ōq?fro2 +eWMeoyRvճ{TOUEa%p!w2EgJQnQnV Kâ5 <26ыsC|!ƙ۸;4W&eբ#I/"Jr*֋֑*;ecTz':8%A웒 )AJ!T r42Y;nLfN{PČb5 5#_}7`v|s5}?=ȢM(Nh7|:V`7wp#5-?o-Gc"1i/[95ӯ3fs|&3ΦO x, 19? z_HOz&*ŵ͟!s⼐;%_*~yr~Ao'U_@Xǯc lӵ9EՄgnCbK9wj3?76_<|Rw)-l`brk$ޟͅ*G? +nX9͜} —.]WV_:g*,c-h۬9DNztM^ 겋A4T#1S)aPS,5|bP}y g~NwuO]3r +b`m$KxJY'dtdv75Ǎ -q{7x%1=#~oRgngՙd뗇pنC'"̌ #T߱j͘<й=G^']^:Ư6a #R:!1((Qo/AMy[lg,gwd X%[훷:oy%-[웷8o~ /D ^oo y0p{0[oeEz;S'a@⎚qohùXdս!Fgi0pC~ō;Ξdy$(,+4މu\q;Tt'^xOϋABvL!L]'%>MN9܋וU[X9#/1O32jfQWSb4Oiy)e4{6NG3o)1rJ@#T0P1Z"ֿ_:O{1擰?_W=/<>dnUNJE%Q^l#<=%Y5vDXOY]:0uBv>QGKII.ɵ*LOuzy+K]|5 +!~؈n}h\-3U']wvlwNxPjR{F6:D=T(+IKI֌|E=:C ͗Әa~xhUs˃?m^Av<G3^%ol gLb3RØi>r8VK/itݞFOPIMս8sә7}q`pa\>˸`gn1Yf7Dib|y:yPV׈ RE)Wmux_w-iLJ%I+nSrnn8>yRЊ 8`9@oT}*pن*]&en'!*MEj3M~ H}D_8_u^qOm 8|$n ;ss|,f\Ud7T!*L\.1V~8|c 4R$=.$IqD 2('rWgɽ8|/$k[#&q5N% 5{NJ)9?q~y6j23d=rz(~2\˙AeCAېqֽWI<r&DNN}rTU_%Z"Hj'gԧ%fj{gO J_݆GLAȪՉ{8k&J2^bt㰹W܋!(Jnj`+fwêh+gX]R04%0(Fvq)K !-l=ֈ`'\|7لZF, 04{Xo&SETHϜP4 E$q9AkacJL0m< +?/'KtJ[l Ui\S쨏>k8'1Ǻ6nǂI9WۇݶU,'c׳9'i) )O@'D>R':~gOx}l,{OI鱵Lw̽Mo&9v|Ǎ&N—03[.q@E{悝I0"A!t/Iq}`LQ (4Р;0LHƀ{AKgF I|c:H;ܭ@T =?:ֱO;0ߐsw11x8/Q*FnOl_gaU3B<󉋸/iK yO.kd?y21.# W=*b|8|W|/@m]&S*y@TSh*z0;.3*dDTῷ$O8`SxP5MމQ6 6Rlʤ*`Q(Û}bALjcpfxJqgE̦, gYԛeAL=/“ S}Ǡ^b["_%[g1Ucy]5e܈B6 jѦ~셀AiDuFT=0kiKAX[) ԅO;ԅyӞqI5b7` {4P~>,{7X`?!z/c|22j*I\Ax_?vCē2hдMw9Hq; QU@r|5 o2ΛzF=3*rrM(x&Hov&cx#t'yP{OeDhݞ`e8쁓Z̘[#wXBpJ1س<2'x )fUsL(\cBH#=x\GPOɐK'&A xi}A]`GAP2,ojF&E2|y`ip)E>r niVbfߣi&1`:Qq" hԀiR"<`:T[C(t`=^vV :uO^ajN}II!R$GI$e*=$& P~GW߀'yVzz;Bw^ar>PykF|KDy-.m+ںyb<ЦxUc|C&W07ˆqmuh#q6ܪgiUChW:Pa{;2+gLV~IcDřOڱ$;瞈!K_V5.KDA< p b̆>͜{jsf5f?TrlxPfc62s:c681eM'y\cr,캹tÖ3U g~)%T^yQh/5[I*C[~pxQl_(5bXMdn_(3b3X@/^A?a'ɛ?vq`(}S`WEEmqj/75bևQqVT~:7{̹'f^׾RX Hk~lv|-4wf$W#>5m}8lj]=T݆0u |dڡ߬@w{'* +?;~ܿ/U8Wb#;Oѽ-yFL4lae8RַZ˘ W}шzjiÖ@&G(^3ol˳V?|X1&%I%ٮ#5#x +h6\^3UAϨj 5v? O1FFӈ|ˈt#rĈPeI1o>zJ K+歱v:_JqŒS]v3Ғx1YkӾ|?_5ϖ4_*K"7ں"~NۆX-f{+9BT'b$ e1nsS#~ >?_]Q3~Z8[|p͙.QI~ˏllYs|طo$wlz H3qsb=c,<߿x"Os8QG%؀QqPm7q?j[5%՗~x5@KiҞ&νȑf|28A! q\\C Ċ=h ):X1W˚d!Ha.e> ?cɚ-1(iK]r[3( UWel8;I#=44qɟ40eOA %C1NKB{(/5–l "fqQe ?>C5 RO,1<4F+qIӿ/12%MDudܑǡgoQ}zwwP{^9|.b 37E|uWKy+͒pI\},.ZQ߰<͉i$Kହ.܋˝s=:x^`}"D{;Vd߻3H? +-h NCާ^.5$ut >->Sf>HV|d>D>W  ^ ~=5 [HNmx Ʉ'+9%V(c&{OmQǦP1}o6JmOo9?k m( uwmW66`^O)FЧw/wDW辕<q8U 3:TC;P̕\g)~iy{xF*2bSl0lmN3wKw;79"*DžUu}Y̥|rmĝ}Dr\nn&WWBLCmT{!ixE>N\7K a~r&p%3ȶ)>ʅw+g}?YTvKz,5xR@;/2?$v??Z,xKWL~_%djv:Ѷ7mR]'~o~qI2?SW61HK>@sߌ@`͉bi.2k,&'y21 .fc}spm[3V=a 7пgS}UrwMǺRm7>;$ ;Atf2bbe>+0$ +.*ѻ6'*N$UW`+JLKHwX]0Va׷`b@=q|5 wSi KbOmғnK{ i4#% ɺus+/BX V3:,?(i8ځO3~-V8:wYz<(w]B(ח:6ЁW 1[ʌ#hQ}:G"O9ֱ9% jB ]+۲TBٶ~f7䖍`XWVLq_6 g:zsפq`?&E5?mUu9"xM5 +Ѱn;D>_/]ҥ^.>X 9!AKtFJR*vX=fՋMܚFl- >9|Uq5AUIztkFf⾩Oi|_e)m%l[ܘJȇLHuD+_Ch(њi_k/`Yr;7v>U=2.\{s.BAj"}Q5H^)m|r޼׫=L]EVt,_kvUEXT$@0>(V%f/$+^M{*+[P_w$^CF--ά9kpWΚcP^T ߆]"w%^c󗭺(An<o|GKV?+ՔF-8ܼD~k<;;uf|-w/:_|:~x|q1^`GW,,;EM_]~M_&\bˇMQ_ \|vfg_HZd] nl31k5`yL'V߅3^G3ҿk.csǙ&w|d] qz*cy>]Zߤ?ax[կqi՗urџx_kU ~ȺH7!AAtiwI<ץD{{n߃#0 | 8>ոCR ^HUxٛ/s#>4UosO5zk،ma5YG]o35}˙Bg{LMH?⥼yf2~Kܟ@1L?~*]JޫgjTXO9K yJ#35k>/~;|荡gBeKק̮IJ+gy+/<\_ߐLM:[25۬=Or)yg޹t|9X窯Cy*uR>~>DjqcrS9lw2SLMřֻuHMyyw͟TT]7W/tPH<<>u{ ^>s>++>i- W_/x߿^}ԉr_y}klDWRO은:t~?OԜoͧx-O=$ +IrkqԮ۞-[|?|Un[^W/*e;xwn'o/e//wB5"=9V>y\V{d}UP;_s+sꙫ]ת?T)8*kNgIA&^U+]oI<\AoUD{kZUQմC[K֏B*iWKb*J!u}ozq'?w?wx!o+'Ew_/~GrDGs_/^~|''_zU׋xoK|0>'?+y|xoE|=|ߵ׏KDrzL 7Vi+3??^uz@p"^Oo\HKSGb# C4:pxxZOOx~Zswi}s-GE> IpRH@| y?񜯒zR:_Oh/3TM@?R -~ʲTMTMzUj܏LլG>iz@aeץ>vMBS+Ճ_Ws}\Hzjzjnr"USyKfEˌg޹tt\u(OQ2,!쫊C+ [X0X*]W_ߗt2USykfũֻ]u^tӖ?W\j#TwH^5z@k+?G<+s"?(>T{ߧtg4is"AoߩrB>5#ηG[498ꨅ,[|?y@2"noz : +4'Jӈ݉-_o+/yj!MHOnwJ}p}r#[U+ x+Kև<_KS+wOŮV^F(CG͉PR9:+kO{!ytWFeIۺ7^~V8ҺJӺ.~_Z~rSŚĀE֬ϭ!g܌GM" ??x[eGcP$a̞k"lfFˌH:i}:dl,yY~֌05wAA8qz1zv?=_HyT7aOh}B81@5O7OӇeң泾lM !}ߖ/`Y3ʨ3CUO_0#'T-M}6՛>-Hd>Ef֧WtV5~'J#w c·&&2 .Fg?w$D * >$&ԶH4S=Qen()Yaψ3pXcK}{̌@֛ׯ{k4*=M:HS:Z?l5輐K: c FF2HFm\> gXhsXE)afvTU|.G)bPӺa☄2棁ėChR[Bۦm0wU68kZ`E33#4)MMxVCpjګ답PF-ګzx枻zyJøOd zٌtplNf$?K{h+y=lOyiܐ̧/}v$re +ԴzDrњ(~% tI3e'mkJBC#b"j4 CatāThm'aJCB O4Xh.4E[ \o5EOp+rc,R-u ``eJH/>zJP9%t!%0D {?xA5,VKICcM/'-ÃCrC+"fZh9pف.r+4G.;z +ͭ ٍiqC)u`M.!.!=fEW+-J\ Lu˿q)"(">*r颏Eten'[t +l߶Qӕ:Z*8,E V 3W%^WͫlqYk8]]7<W\A:r1 +F;pWށ+ÁQa@c4T7|NaWe>BNbt +a ~j? nvs *[~e^֯o4Ś<@PE>"7y&܎ꐂ8HAbl/uCУ*|q1[0&vx?[Yu)|Tl +=נ$`%VzxDǹF6$}އDLMWO?{ij +W0P͑ JW*A1bگkrG mӎh/OGC>ravykJn^IY?`yU2Zya%qaGPS/=`C9 +ӬSű|L&69PאWji ( )q1LSq^-Ŋos+Nʵ;av| L5UhM.-n'dj&SQQ+, +.AQ; +x(.xk2v S4T4R5(\ũеГX)HΦnЍ[|iAD? t#{-?}*-?b39(br^g=Ҵ &m(W +I}'SWk˨MDՄ~U8r[Ӽ@d016l~r7R'|ҩJ6CO)%$,1Oi_R(YlMr}a?rVj{t?k:[YMǚ#cvm ǸHXDa7)Qe,~w^Tɨv?ek#Yj^KC;Xvhh*I$ tI qkFWiJ JwA-(9*\>  zY#Us5k+u_̄@KbmwyK[1wǾÖ(f"ٸ7r,r/LJ 3S>&&; u\䡱v"Sξ)bֺ@8X3[0eV t%ccXJe{dZ+H?}X0@75JnUw"Z$"7|g&)g\1px&J{O^ /kk# > +KV[0ocT9=7CK(lM IHrˋ,_]FyWM^& ftj>\U{&S:!qM KEH1‡5a\[wk;$qDR0#< MGdSA]Nj8"r:R6qB:5uBZ5]N)l> -{v_ywi?^k{kK 0FY[u:%P,O)Y_({yjǼSlWүu=0Hm_@8Ǣ +,IL uu"NEEθ'(~/1+!( (^RC^H>/D +ϞX t>>kd.x@ހR]H@u榮$CG;OYxpaM{}̧Օ^=ܷ~DSz½ {uǓ"SfIr%YAa ^r,  +yK ,EO'"7NYYk|;efwS_A <_j&g@' PS +sgYu_1A%3^ NtT=s$j/sxn hTa{ᮓPCh ̕O׎@X6W_C +LnkwCᬸQΊmVH[,_GdwB[]vKPhUJD^Vwyx،b3&h/¡'L.{Ҋnr)uȧwx鉲uKVh$α8\=.irm,'gM'ȟMH9M4:Ǣ chyAfC&pA~A~vA1>c}8gha4X|2 W 1kX;TV͍˻>Ank]0kGTl%RNj/~ҚQl]~?XKJ)ByLX, ,d]2BN{G&jtʀ-0 +tj$K%eDP:QNGN{5j[X\咴Ej5!pieA@Fy)H߇ˢTf[N"L gwl b6r +}viKk$Fƪp>7Ӛštx#˷*p2Ū A ^:!īZۍ GS>ΑԊ22)kVxy+Jjvb ݫbL{ yx-3a5 V* +}s6 ϰTgƭ1] +. FfHH]'G 4u z:p~k:{T;&up}P U|Ppp)鵭Jn#f4¡2gzI`Nh]{$+rfItTh{j*SB(N&?VJTЮ*{a;DMY $Wz@ $lt>.io M(3j=TflmcySOb^#8m824a0yӖ91Bl{$W$KXZ ߉9B!H<=€YqOƧq8Y-<R +Z/$L{` +{L\M{zmQ6V.qs]e{n01X +رyM]O8> ͔myΔ)e.`3Y{D> ba뀻o?#sYWl\ĩ0 W ?b4XYȥ19%SϔL͗lIӌ)]"Z’.fH4-TMIjj#UӰ3qMP܄98BD':o|?EOUN|ϱ=pDin&iɗTOTH PCW-S r8 S §i9Lwi&oͽyl%|2OIC1{y|mHK#P^ ̆\uxnlץ9=P16@pKj~0So&H ۬8f)N볮f) +R}uy&|R70ɅOny -o]+i 5 ۛ4֔ &|.>ZvN͊f! 0SWm=Ti8O3cR$s )w 0W-|\5nӌr-|Sה/fOsa-fq0(|SjX@[e|)O.{j{Ah"=8ɞ(S7%P̃8OrOuS4qӥ'傧=i*HKZZAB P:ZA]Z(Bhz \u2T/VA~` lq TT[3;f^U}ɐL|ipEp6/dQ0?LL& &rFJH0:0^4DրY#(EP@%Up ߩ_}M{\?E`څ`z#zg2(1@!jheQ}Vd#yW;!9оRNeRf7t3N)3CVq"C/QæA):6hŮ~m!S/.Q3x +Sϼv r>;PAOk|O5B;IxH&FT\-jdEqsL*2(z,Q8Jq^\8pG}x aW@*~J*/x,}(K룦B隦+꣦iڭtGI$MQryTNsˣrB@< +ײz(>wc8CM{\SƧ0R()MSJVjg745CߡաR*uRRwR^'QYB,kUl:ѷ"S0,Hkey.bnD$t7Zy0bKd+&[:Xc5pCoǏ(&-h'iYF5nl wbiw!a0}K(P{]\Gh#'/H)ҩ +'{/HQd?gOkT<4>0gQ}c5 +-K,<9-+3@ +9.%v%R)VsHuLy(A=<IrȔn飞%}} !]G4Z׮U&}0?2 +}8GÝ$ +K` '\(vJQnO%Q> :0Lꨄu)u> cKbG5K5N28IsJdQjI0c5Q&YT%(NtOo C ˚ [1{}2`c*ʑQT#VZUFvX}OQfT-!ۣ)>ѱ.P"?.z@s<ȜLp? +EpM01(,k\Re4gmxPx G I(t=Ry&ԝI9O(rf`u߂-4+Arj\4S=J OіfAeE,YfY,1Vu 97uPf;x1yM@SRh0`!ױP! ׿A*U`O( 0kLb^f+*\N+_s@jZ]Q}U2xӯU_:*$l|!|Tz`.kߋr,3`R1:(`$x.O|8:M<EbBmm$uDK})]H[ԝAcU$DlI(ֿɮʕX-/9:XKXp;\ <$zBO$ ͜(N$[E O/8H +H/YewV :74B$xB ztcPIa1#5HǂT58RZ*%3U +%ۂȘ5AL_RZ| P 8I16:eVq5=Œd=n >ŝ!:HDec#eeE^([Fɬr}PUߚ2̕X=V]CeeV27a +y +j~!yjSziAQ#iGFuR0:LƝᔲ@/>d<{ES"uMJ=wI7$ߘԅ N/7 Ϯю5GSן57PPnw-_OTq|{-DN ".'' +4? Zrpߴx3_]Օ1Ҕ!MbjV7?_(ck]ɘOP@ɝ}^y)I{5܆2es8aN&̃,M''a/Uh'͑'3{,h\iH~,i>|K-.X[iZdݏQJ!?ɖC>lr=Fp[JA +,02Bhڤmf#~GYM,OhjLd, 4}&%2"{w"هy1-WFql%Mj3z=0:Qi{&L~{Oxk&tC0C4S/wI;`8Q0ԉDWZޖׄ)[e15-hQU&u=6V3XO%~rV?'C eXWbyZо,W-ڛIC;pF (n4u?a 0<-kfћp:j8Yҽ=%aҳflw8.R~%x:6M6jr!_ !VbJ1@ۜMD4*xG[ YqQZ!0իô S +u%zs.xF45v C@JUWz,|(IZʄȞ(hK`W,1Vw9ZUe%7 U ڄ@I''&Z`AI7,CXh@hY+./w+~=̼rl*n9ʶØhӎoCtnPVmcaeBnV<"-5U3bK?)#e~C'; l;yZUi^i鬾FGhCNVr}ɠ +~\= +U]&NZ4WRNDk3HMNtF"$cs?CpS:t8k!rqA&a3o iˆOh=#  +`4ٌeq-,[XoA4b z\/ǿv +Q 5A`d4TGu tm!f6A[V鼼P0,!mc`%77߾_~W>Ot4] 8q:@#}|3flvj0 +Mku-qZz6!xBpB8-LXFIQ˷Y,Gq[pSG>s78=-irU++C~ y-TEXb 3֓+`*Ed jJ4cdTƔy!4}6g)'h\C80ާEqu<={OmTukRc?".Q]cT#$wXcA6ܯX`.×{4y`zPWx4ypMgv9[~t9}`ah,spM ͑Y4iS+ +r`=atXe"lW  m60OjӤDv|s). F6 +cސ3jN_MQesL#_pGKe rku ].ylnDұi ~>J[@o9\(G8@K(ԛ^Fo9Q{x R!h! ytDˣ1'J`0)nWrJ: ]Np9 +d~fDAS|a/VB<4p3caR܉R+Vm-w#1@+4ĖM]`K7h!By+3Kxn2*uUS >#cj4 txVUH>0#5#i4H T !X# :~8*!t!,`!gje ˲@^Dq, P|@ @T)7":ѽ20G[TO_?v{{O|wכaׯ|rQW._o~Y4F_t7ZN t}h&1P!`cw8azo|_*؇c_!{臉ڡҶm̷FךL`rT,5 MA0W~L6 u 9LM қe|!cYֱ,[A˛0LM۸_.[-zBG![a~g9 +#q]q/E[67E{xx4v:z,_m}sfQīcޛYy&Y-< ?FslrT/s]֕٣vn\2ShN|:fJ}7/Da7 Z{+ cEXM/ pKdQIaNA54xSwPHWr ',R[z^Z9 \ +im=x鶴(`ok#1x,o>ՖpUO9sk_΅'s ;])~Z9uaD>rUOF_|lt>PZ Qφj*iH侽.=L7ΟgBؐOp {C57YT +Jdȸ&Cz ߀7(nsqUnv׹az-xe| L-x]}n->"?^U# cUVs裞%jO7/?y{z=7ƾ&qtk RW9Td+kQ U <lU1œl9sy ) 7OZ9ܠ#\Du0(raG?qjwoNrhX7Q;VH+aG;8qG+{ւ{ފմ`?0f́nHr џk${.i~ Xp aH:`r]cǪ\)ʫNO}̊&)ײ}SO aX92I7QsraFT󡏧J GRեWSa^0Юឨ?^6|tpR";o,]qKpLV̩Ƥjto 8+deGp=BBZ-'?U_V53UtW|^S#jiaWkc=)sNg_{UR͗_"Za'[?Ź(;}AB BԆ sžrfX2`*6 +o1qK'rXf긷ϗڿKvrNSj/KNWG`Tqxq27*"niXTOVr 7L'Zv)X898%nZ[9lSǩܪ nk`fj6a<05pg*/NU:H릎é +o(V܇v0z>56jjTbNRo9ϛXA@ +Q)?תܕCQ'sTXʌ4*}( +?w1A;}]Ճxky*w+tU\Nz17YX*+\XY#1kq?P,_S%sް̦p/$2}a7UxG33}MÝt-u8xS8+aNOVP=xcj|*\d0RY=gxforUpn-vooCo{g7>B(9}`ZӈPy>8]Ir@)RyjcWo]Do#Lտ%NԨ d:p*=gzVG3`k/,̹vb#Ngˏr~c ,{M~{!+qfxsB@~tvM4Q /phtUm8_"TʇWKY_3/`cڄdFzpT +uB}501|pyDxS09w0Cn#YSΑ%~L3!7}w|a$çn9T +9m%Fdoa㾨 N87e7r|¿>MԓFe*T0snL&a"qbnTHX=P-7dag@Q!>P]WÎM}z43ɪKR>إZءY!׷\ۚkNv>j=j+06K)VD +T~M8DOlrp9濧sv3rv_nD꽯M\qA~XS~ +g +g#LnUw5Pa{^M"ڐ;UY~UE|'hqZb`sj3h+ q"\)#YN]|._8u[]p /<%_ë0>S+p~Zoc߃vYbkȯad%_}&Մqrmq^#S\Cpu>OmCs}͒q꿩:|H8}6kYM?aw"tՂu|K7:bk-g 1W&3%b>|O<]2S#f +gI7}s5nZNnRE\ES.)U~({:if1>_> +"%L9WPK:elx(锒un ^ڌG7+SGgC76WIMA:IO6ქz<&At@)3+gW;Zh%GrY +_><,9(W%J/T)Nw;~fD *S j&b&: ڿ +% +<?WILr,]nnUSP@LF- no:qfeqHQKQ=,{0NGHVКz>ȸ0!GX ԽLK`+!|Z9f\ǒLzzz>.7nVxJ |p/vK.VOHT')i5vx&U3;Xp WgZrwsY!^s3 _Kwr5Rp:=cCTƔ—,4'G7#xi,v-~;}Og9L,=n> ~g5<h|?3n^fYiU)/=ܗW'Qn:ˮsnFUZ=>bE7I9rG'{k݌d7mgڜ,uo{uIgMz3}F=~55ئ_4{דzπ?u&+(׫(Gq=0 zxL[鉱bh8Z%9.BG=QW%mq.=C 'Ez.U MKUu\/+B(CqP(=~WB5\uZq +mwpW2準E quJ9a:(K>VI.Ԃh-|:bq9icc9{jQ)0HOM8W{u!9!VB"Q7.)Ĩ_s7*ՁʠݷH +$Q>}<|(I8)3Uu\6sMԮ'u S/vS*΅>F7n&70}%FWqM֨?\Ub r+MPQM:NS~q{Fo17eMֵ2 \‰Ccp dN:1kMGŶ2ͲS䃜vH 0졪|QW`Ûޖ5Bbo\d츩Gbgc} +*( 1%WAYA#H͈[ā&U;f,0OVp\J܎mp6p$VrP:$$sUCZTs^k!ǯ,rR5 A;T`mmp:Qyp*BQ"ĝC7u$W"V}/38({ )ΙuWxqK39KOST~.?N!6/Ze[-(I՚=; q*.c Unw:pw +BUNIFY*w +B-UUHawSzR`|*&ɍ~ݑQnRyEJLʁהɪ H4A<㨿TLP}nf܉8K" C `ӈ;2TE;v|2_Un ` 챋*Br;E + LJ9/r{&TcE:=vpgZ6o#Dbnbn Bjg oGWԅX,zg0\=xRՓzP ]T[9ߚ6\=vWWZ#Pj2 !թ!М>!05حڿg\L;m0 {8XɽlԃMA*FpO9sJ]ԃTQEUTT?o-˿.7'%΁iZRU\c$=9LЀ|~V;}Mzw|>P嶸zwM3z TnzP?Ղ%nn(촵~oAd S@툫)"XePRjC"FujCwW6(_AZSZMTr:S 쭠sTAR]ԟi:qT3B\.C{?N||usR"*Lr 9 gc@#: +( E2Tu +c+h'H +:irՠqAq]_Bok!qؔY䲘KMP +FIQS$fPfr.G'Ml*?p]$^q,Liw24LKxߩY{% |z.vs SUFŜ6zz_wmq?TA_\ejqݟzGo ۣr uzgSNV\]*BTO=2Kt]vxi/He2VҰ#f(*:CYbʂbeMЛ +.q땑{q N^,N{z*>v7 TW\[9U_[ű +U } 6|dVF킡DJx.΀.)tT+ߎj2oq)Td)uTR mxuuy,T1ӫu5tQv*$rr +T,Q'KErXr! +rI=p'{,Oj)8ZuR/lѴKXpPr?֓>pЎ1G-FV'h"N3`K8?y E0Sf['Ɲ y_-(Y2Hcqtv#JՃ˪q^ϫbJbqbqZK*x$A[)y,do\AGl!8Bb' s}sfj:(y e3?%ljspO@7, +. ?rVڗK*EαުY-R]lfWxWB}P '0QؙzNh8lf)J{eRUvX6K7ÚoY3 hU=-ӺY6 l .h%닣b&_sAx>q,Q:[Sq t +;9XmXX?) jOBS~=pgKxB>$"t$W Cl1Fc#"ƀ =51$J=a졐j{gpp=dG؃6l%b+'Rq06 W8~R'ۉD9#3[b@q_)HOOk>:3˱%j;u@叩Zfyo_IzșB􆔙b p^g@O?Bb|2J¯UM Q9sC2C YnxYx/ + a", +2 kxWм᳽ 4Ё' +3Es-430{B9z. +YO [,Wv3nEmEJ,ka %?]VX rEJ},6X̰e>Gp[)w23Ox<Gs|CyK|yxa!><4//7{xy}¬TG߆{z- B- 'yKB=xxUS-e,<^LȢjϢp@}s,- - +څa|xaAFD=¼L,NwqZ2x, KzL"{/H醥5 Df.OU{D?U,DtiM]S|[*FGMtcG+Vct$7e~pˤ"Td i}[Ju)ut)ۥ/-%IOg)8zK>/A!;^~k %H_Z{ %uǒ.É#fG‰އ GuYNV|?C +:wka.мS'dCo}z3IZ^_a^'>M(z}xPb?hnMĎBE_SB=SGC]&NmB}, ibg!H8TLĪ'V A_։{ AO$#F; A +rO|+w=>įGS[9'm>6rА|>wh @9@_RJ O ~0[%Ы![b ~1K緟&G}yO?'mMH7.JGxG{ꏚy_Ξc<_(u?;']ph)q~4(?Іc#OSK/|^/hm+CŽxm%y6s;|El.f%T_|ьf|IrHy]Czf_i>h:]>$n WU>$~ ?O78⃮-LaCI>$ kg~9=|H|‡ęԚOsIZ7ĝ~`og\^K\wW\OLm$.EvxtK\4CeS85uu\梳:-5K\Q0?/o4{8捲[&7'g7kިuAo߼^.!IF3o_M7Ͽuߛ=otjژm$y#Oìs$zA{yx^[u&qI|Bc>x8r̋K/\i^yQ'HBUvo"q =p"ŋS/~N)KH\B V>^$z{/X{8Lyx녎H?&xYdً_/$շ"q{wO=Q;x/cJ+Zfv(W\ђO;uv%W\P]@6o]^rAgv!߰ey\Ъ˚t!8 ]rA|Zk U.̡s\rA-w\_qq [.']rAg z89 ㊑6_bq栓/ԛ]CpWMy:9CK6=Y3qC46~l=<7}19A%v~8|ZyDon̙ra v9C|Aa;#Ь?/mGBSnGx2Nݰ~Y;/쐫Q倃vgIpv˹C}~8Ύ;T}~0;C[éϳ#|Y|j%vv7ӎ;˥R*#<`+xdݾoC=߄lGz3qEdQ;cz!#|X]fKx-lQyd~-9F[آ䶄"Cl Eq[ =lKx- +kN٢?ju]oKx-ҊikJ[ly},dگk4 ]dK-:q7"o:deYe.1rThK^e6lhK-E:-Y^˯%| qy–.[dO _6Hӱs7U6 /mAəm/A:eC -*(!<ٹ%D_!|-^s̆6ԢiGwfDnm!<S_7͆9lm u6ձO#lA[lϳAFBgzZ'?v!cF,lбYhmPIlAܴ4܆B^ 6hKy6'ڠϿs׳!|- sdsmrkς/_Xi6䴱zmM52;/PUaMx%^-wU-ߘ="m4LcU,+Ɨ)/c9e1 +2]2e7a2LyFP:L owZ9LK3,?պ݂%K"H,`8LK K{"wM+$8mv+v[5%Ԫk2-5iijL\3_?_O//{B80~?~7!_ߒoU>^nnxWx2^>O;e6x5T[K%x</͋E"xKx0^(o1/[ -yx~<_o.ϛy;ύs9E +;n0=].Owp6R:Y ZgVː]Z^iOԮmqŴ[h~yJs㛷oYq6j6YffJ.hJZeulVW-754jfa tѴ8QDf<4^iThӸqE#Oq;56kHHšuQZRcw(a5b=60Vh _:~ _/Z~_/.% XObooog`kHW+]E~p~(1!r7o&gai*muLLm7=tVcS=L1=y`iڑ!Omzx[QfB ŖJLKL?9^+w54-zci돁oM[}3}Saڲ1tE|< +ӄ$ V&ྫྷ6OK3]n{:ܧ 23Mnhkfܷ;o7M6ݹk={L<`!G8v )gΘ=}4Eci^^-4W&P`{BSɵk^M+n4-.)1sSiL>4P^nc|=3}W}1݇u>26}ϚӖ?kMk7 m psss5k57G+g;=rƂm,y{c)rF,",VXz\ "'n@ O,LU|<,oc.K,&XX,!=@,X|֗w2,Xha."rK:`kЃoɪ1>K{b ƒ)2,UXa12h,B,X` %K O,vX,`S,oKǒeO,&] UʙTb +F,'"H׎賀wo=' gGUvvփ؝ b``n{;Oڊع?{@??l,R,Xb=,=`b%L[%F,X`9<)B,%XʰTby +K-<JqŢE},FX,C`e<!s,X,Xa',Xc % +K<X’e54,Xaـ%F,lŲK6]X`هCX`9SX`9?ވB ێ ہ"џ3DPv.$EM/nt@}m^ӓ5o]âu\dDMNZ7$ۍv.oT5qџPߊVxM/dC~kݩפ7gxϵ/6-K6#/j2Dǚ +jQ2:QN.48QPDӉTk7Re#N.{Z#uxMƸbȩ'M}KATI~H _f@={V_[-YPTSzPw;]{꼿=_)Sw]&{PՃuyMnr&Z}+gצj[ӯvuD_zFǚMFE~X=Uߚz7kz&#gբޤnԷmoS}{RR}?_/{ԗtoA}_w}sd/\RTO$I_}v\*e-/w3zQQ=q+[=@KI BoAWK ,XIix{[xxxgoy +u_}2`I/ڥ} tvGݾA_ajcʡma#fϘO[q$/-2JcwLs__edҡv/UkE/h_С #V~Ag_W~A] >~A3o_^5y5t bL^jYvZjt]xը~|}w}fߴF7-NtFQ|hFTߟ>YQ/ =}ըm(]$|5e鄘ը}wQrGOpӃ?TrY:Wԧ#e =L:?+R|ECyOXq+>__Mֻ_WWl_g._я/G?} T>h+5_Q_Sɞ' g+o(eJV# +P&{yjFOpy]?ƍ-JlήoαuOn}P5h7w'{ 鳆n~Cm*7*↾ٶo&L;nzh}Dgos<;3;]vmwtGmEwة[fO[(koYT8iFow;:79_w^)),zw}y5Q%6AjnԱ%O<ӧ5ԵbT !/=AH~]A}{ǏA5kPAR4>co5sv50D :1KJ+oՠ}Ԡ7\VlA+} <> KZlF?Pcrg@E(?Pˠ'@Tc|dh%}ѭ%-F&Tukg?ڂ+V~w6Uo_:ܴܔܷ0rl-:zSkQOku[hkj&ՔZdK-z=zyE޿,61y O}~%>niMǾԢ!J~iDWk[Dφ^^qb8n|'ҵ)n>':dsłj?Ѯ^/F.%'jvS?Qz?ѽ3:z~ih{uTr?:t|nuhԡVSDETrkzJӾx~K>96}Yrסe סAczWyagw+G-v}E#/lۥU'^9y]!݈V/7rjDw_yY؈6&<5pObF8櫃cQy kϻȩϽ׍cQY 0ӂy~;O d0iԤ__,g/`y:tٚ_a]BAע]KjqK4u/ק.u [u(q*QXHED%2A.K|ղ~Jhr%J([Dexuc/*їk*߸ljVH8yYuGKܴ]lK:?= hi'%W|τy*Ȓor\~=C_pٓ% S3Q+\Qd]' (hU>}ؾw' Xs\c㓵Y}od~5UPtaPO{7l9/q}TAhgcNld4^[|+E۷<{6E0|Mr6j]hYk,R/oIhM=/oe&c~ϐ3{d7U#]6AB{ł |%/Gܙ-Ipɂ(-[SF_0[%Ǯ`O9 Sf~rKfX-y71S"8us$Z%5=I/%FE,3nj%-.y+ljaږ֤Htٻ$KbQlmX8ૻBt蔍M qȻ&AUր}$Ϩdzh[nQ%>lD !y| )m)>7 qϟMQ]"E[)iA钣\$(BM.O3潸,Krtf#3M{[\E;) v8s`W"ݺ]dc-Գ秛.:#aK^\ӛQ0*y[b{7KF;lyvdWȕi_{ +oZ%p9atIm|)hZ9!9D2ك[W '-*= mR_]*9"W%M ?$:o@8(ūqj}%S,"jFi! o +ɪr9H4m~Gk1:^p kVXdpB廊u];AP6ciWm{ؼeWIJ NZw\)R{e$w;$ +&D}m$#1%*J0*bwA$Uĵ>u_sC "q$sm@c 7nz'l͗6,0{x/KHFU \\fwu{Jc]sH2#͒4mdMAQskQYε^ Nڝm^+Y?`a%/Ah3_o:ܓze=I߮n0]|yK6{w<Wf:g2xgЧw7 LGO|A1K_&IY0/I{ZMk1t2ea0}a26Rj0Yr޻2e/,ߖ)c)#ʔj˔5?ʔ Dzj{BBW(Jc,2ц&ϸ*m6 +WríSڊ?A^BiY4R((*xFǿO R(a PP(_S(R(* +q +1 +hDrXrf_5U1E3 +!sr4rPߡolg }oV(-P(=`8}.cP`y\V_9P\P2yB=_)J=LR$䉔NYߺX*܌7`M[٥U}f<)y)짱LYf<6ϧX=xٜXfSSw#0n#kȊe.P=>2Ex,JHbd?g2n[K3?eL?7J6|a(iiy1p{}ٝ1̵WnSbǧ|:{iʒZ1̈AmhO+ҼʇCFt3O2ײS +>t_Қ_eW{F3kMhmً_e7%D֍=׻NXĂN3PJ0-6zg3Sx%gmݬ3='*5dlFzW#ٵS{"wVWWd7TAk1G7ƾf'.co rM̳l|/al=~-eLH_hWf͗2ϦS,;d|E\6(dpez+;y,yU8I1s'3/YmŌZqL1@>v0S6Eükcd|H`斖E172`.+j =,ik^.D>j!3}";Y^q2Qnɺ;,db⴯ z=̣ld}uf7Ϥ`eL ?;!9ԼS+ןI|6¼m*١Wy±sRestWʟcj3J{ϗa s龎do>}YERχzga>hb&ɭz2\6.M?`4|^}rwiF\uOHpc7%n试\;.2tdeg?1/.矮ݿ!7mize aUW/Δo6fRC֛/ē8)tii퉆[Y='%6W ȒG^ -˒dl3^J%4m,,yt&nm˒oLcַ̒`0ՙ,wSeƇ?5_<%ߗ0aG%+wfO3s0Uju'tws{z)&A^3!BQyKtϒk^At|S4Sf`MAg'3'3ǤwΔ"`B1w<9{| yqfBcCE^-~'w!1|ӜN(AnY1y@67fw_G ~ZR:#7 +s&kO_Y'l8SoISÆ1X+lY'3F6e-!] b.׾5?Wc+_F}!yE\v5MrOXg叝Vۭ1+,ͽfȭ|S~aVtnqMj3rݏby3^L:byLcFh޲G"o;01+þ:Y~`f7fr>3tAs*o̒ _;n$i1#h/E=͘Cc'K1:-Z0!Dmf0 +A̲-%{~ ֌cI +;u`V0ѯ# t30]~DccEzLl]{X`cp.8'ׂkµ }>C^^a `,`L`l````` a,aLalaaaaa`.`N`n`````a.aNanaaaaA@@'@7@G@W@g@w@@@@@@@@@AA'A7AGAWAgAwAAAAAAAA&6FVfv&6FVfv9ƶ 6 66>| #W>| -c׀>|$MW> |4mׁ>|!D#W >|)Tcׂ >|1dW >|9t׃1b # V@̀1b -c @́1b$M VÂ1 b4m Ã1b!D#!VB̄ 1b)Tc!B̅ 1b1d!VC̆ 1b9t!Ċ`+f` +1k`&Qf `6q`"F+f +`*Vk `2ff`:v `B+f$`J1k (`RQf +,`Zq 0`bƀ+f 4`jրk 8`rf<`zp+gp +1kp&Qg p6qp"F+g +p*Vk p2fрgp:v pB+g$pJ1k (pRQg +,pZq 0pb+g 4pjk 8prсg}_?{>RIg~kc5ϑ~^-ebu +<6G1,o> ٷe- 0-y+4͚ܮ^m&7L6e,yfoSؼ9ra16 {2yr/̎bcؚE'w0O?F.fz؆vKD3ayEsU,r(f ?CŴa +-ϖ3\ly̢R[{3C3f<,|dq$z5]e\Ht?#:G¬e̓o6rA˘7="8!WfymQ5ͥ(Bewܔ]xv6׹$+1/_ŒR6ZCyp9;|v& 3G grSi}y_Ǚ 6Pfjg0 w eR0`YrYS2,fg`_<^ d)?f{ƽW` ,>;q[,'Y{9A>_`C dCJ5 t2a%o]+ܙ^1;8vcJ c'wu,02va@o~ǂ.B_Xpz14^;0~g1_.7_lP`m07,5w&#h?[~awK&#wɓf<=twÂS3Z< 'o |&NKo |.^'o |6nsxC X1b3 v@ X1b 5s @ X1 b(U vA X1 b8u A X1b#H3!vB X +1b+Xs!B X 1b3h!vC X1b;x!,` +;,` 9{, `*Y, `:y,`$J;, +`,Z{, `4j,`ұj|X.)"S-2h}ɨG}!"IZْHpdx+b7HxB1QS:n,=S\ tI~#r ~K#s̕. ?KZӧ官c*#" ^1wRrM,}.HXd.ҘXzuHxbFqu#)B7&Ri/X Zfޓxiy,opyKcқo}1]z0gpZhllެYcdpiy{mz_/pkL#Cko#t>,u>C߳\H{qtviZxyinx n漹;b ˋ]CO;eTCRˎ1Vf̾5wh:rGy&Rɡh.fZ7䙴z!m\4kw;iOh:ȹΚVI%Kُ2}+EYfY7h>(ZØ98[Ӝmp|a֫aT~wKV4W,0 f`[N1X +4y?"j.2f#iͱf= ytJ'W{ "i$)}"鹯^fO?ve!TdÌ|g kw|ݓM7kysmYa2Z:nёc1gf<ݛ-҄m[A[bvr'#v'Mޏg2\~qqtfCs|f_J1͜SLltDf.gKҺWN59c~kz>Y<ĐaKf©|%t|3osQOf1U.&6wl̙lI8}5-~; +4!fw̾j&ʖMOQ}!-ofatwf:ҖաtczұlPڄzf6hȅM +g{eUa(=׍EB+#ޙIҺH-Я5fzI%g|~VufIw,c |ů& Ϻ6Ӌ )%L?I:>ؽx6vϚ(ZVV-[P?fJbwf,V$> +f',mMEO&W6TDtiPXL=R>KuSgl ,a a})J6B4juie_FTYDɭt׭OkJ-kTe<Řݨ'-l`NY@sM.;NYחC-2O֟ +;-}@7j vIoJ`fC3? +ؗZ,08Q賂=ٟ̚P{n~%ӎZRW7'wic.#I㨴i1W~a5;+sfԹ_doGBM[3BV=^r!5K:a{b/ݳ#M9,$$1|W Vw6u}4o*U)lbT-¹sTҏ b7]~}5c>iBufFfiy͒m)6oV.i^t;{jsR٩^NҊTvO9T)i4g?OUSzF%;=Lsk<(+a'\p}Dzdwz|%IO Og߱nPJG7\:M:[qՕDrEzY3͕޸.zwP8s- 2J.Mx0Å ߐ^=z}=a)ſD9}ݰ4u"gz(*,឴zvTg:<,JP& _~-pSDԘg9ѻ&S+qU󹎴(:UDd#Sj1Ϣ li:Q3ZTBZshg}`Jj%/6g+W }'=%Þu'* M`7KTg 뱚Ѩ8*VғRߤf^l裟Ө-Em2Y0t~Sr\&{5)~-U pd[n\*2wF(<6y_&;isn4Vu5e.̦}OdRWi_fygӡYGZF{`,MTٰf,VCwi35#+ތI۾Bif%ӳX*KmVv,VaI[bbZ>YǛ3茲;:l;Qf [T|wQCtᛲ؉Ӎ7vSn{weS/zkׯQ;gw-虅]%lѩ,T Lk7//>DQ ٰYl)#Ɖ,^)ԮG};dN - =F YޅMߛźg^ +f妴E.e8=/4{򨄠6L*)vy֧iKWa;*.ueTI4Ϡ5aOd[ D^B[d ;dk&ҭn_G3Ъ tTl+Yc=vN-ægf'_v6PBE -7ޫCnS ' 7Sލ}ޥR: 6gxh,2t׳WGo +Y)<N+׳#GiGʨYiY#'mR"mhma0m:vbv9ƂMKZF|LLcE:v|4/ 9}հ7:sֲ' SQ?deC [KSf_ze w{Im6 |3^RnLIgK/^S]lظIӦA4qe_æH[zG`>ݴ6^w˞}5e mtGtKG6:]Z۟~('46yvc\5 ҙ aX}kP[NaK?f.lTȶ/z}:KƥSj?(`j®7z̓f?I5{+%bvrz*\6zgۓ8@%aHaA'tEeWKaJ*$ŏ9$ղN /9\pN87\ׄkC/' +}===½=ýXXX˜XØ\\\œ\Ü܃.Nn΀.Nn΁.Nn΂.Nn΃ -Mm̀ -Mḿ -Mm͂ -Mm̓_>|3w_>| 5s_> |(Uw_> |8u_>|#H3w_ +>|+Xs_ >|3hw_>|;xC X1b3 v@ X1b 5s @ X1 b(U vA X1 b8u A X1b#H3!vB X +1b+Xs!B X 1b3h!vC X1b;q0`6`!Kl`A&l +`.al`> &l `&NKl `.^&l `6nl`>~ &l"`F!Kl &`NA&l +*`Varc[u X01`cȀ3v X05`k؀s X09`sv X0=`{\8p3w\8p 5s\8 p(Uw\8 p8u\8p#H3w\ +8p+Xs\ 8p3hՀw\8p;x\8!pC3w \8%pK5s +\8)pSUw \8-p[u \81pc3w \85pks\89psՁw\8=p{ '@r; 1@r{" ' Q@r2  q@rB 'ȑ@r&; +R ȱ@r.{ b '@r6r @r> '!ArF;KZGCn rLk (IAn +rT ,iAn r\난 0ȉAn rd+ 4ȩAn rlk 8Anrt ! +PȉBnr+)N! +TȩBnrk+^! XBnr-n! \Bnr녜/~! ` CnrĐ+1! d)Cnr̐k3! hICnrԐ5! liCnrܐ놜7!pȉCnr+9!tȩCnrk;!xCnr=!|Cnr뇜? @mjP+)@mj PkI@mjP. i@mjP뀚>@mj$P+ N@mj,Pk ^pkV5@ j9PӁx5@ jAPԈV5#A jIPSԘ5'=A +jQPԨV5+]A jYPӂԸ5/}A jaPȠV53A jiPSؠ57A jqPV5;A jyPӃ5?A jP V5CB jPS"5G=B jP$(V 5K]B jPӄ&8 5O}B jP(HV +5SB jPS*X +5WB jP,hV 5[B jPӅ.x 5_B jP0ԈV 5cC jPS2Ԙ 5g=C jP4ԨV 5k]C jPӆ6Ը 5o}C jP8ȡV5sC jPS:ء5wC jP5b*"S4B`i~%w!mнT=>Wوc/6O %QDK7k'ϖ;YXP[Xzae\ulf;k0 Xag݃\yVaT~ފ9ySry0xQbYT_,&,#X ˼cJO&%SB:<ꇴ}d,Y$!IKܡg6-trNfF_}rccXfivK9l٢.G/kLkҚ̜xy>cc譓 +.h81m(6di&y6_<|vrˮJdÎR E$mfҬA{OGߙC{}I|2Z yv$}6ɽ)ON_D5k͎ǎnÞy~qV؝ѓӡ^^`/E-פSii3 ˟Ҍzpi4;4 kR͖=!e G}[Q[&e쫭b*N*51̾ˣuXj*k0 ֎ -b#>,+[S1RuPjRq vR:҈"F{}R:cVj_XT~6[} $+U)Qz]~X`H4=k^~ji}XvRԣtL{:ޛԟ8fu">Q?Ȓޞ[F.mZ=a ;Fݲ!d<Amo[*y-~p`Tr!K>$ݱ;Z7*Oů<& ms5N9 <%-7&z}2|V`{vPt34#.-3|b_mNg)2鳬*&u}*tj֮yht*"4Wt;RolT;҅OjO]ӭʭ)m޵]q0ێwx$}U. :Pf=&:ֳ_ӿ;S_bL},ǟ +;(}![d!^@7ziNZH>CQ)3.>Z2E 5sL&ҷVS;bnn&;/iAtaG4--^@8Ioˎ\ +fr45FBXW-d.̧WoȾ і]tO/e]ifgVRv+;:&R-Z^IԲ'Z?󧃏dϷh-Okխzf?&NIf&4yϣmS_a:n]OWS:motdӨˇ紑SPEmdKGөTlض7|Q5-me}Lqm]Y+ _vB]zv&5'n>򡵝(Ԕ=1\O\ZFJ(4cG,1Z odm-T)Sv阫oJn>l';כ^nb;MxN}kL¤Ohl^'N7 tn*,A6NۓCvpbC;Ⱥn8A6?>ލ !q~{LeBKwګ b7g=ajQ[sH_;ߍ 9B X?]B_+Qj.e\iN)@6ͪ+)U䳈Qv=ۅ.=Ih+Nw=Bw?MUgvCw?Cm.e1s~m9@&LꝣwfGgyʵo,>@҉6pry!bv8[\ƳJ8%U edzG+X; CYϑ>:*n66_@R3WцmҾL7_gOǷSڃRZ>N[cg.Sfۉ eZ=-RnCmШ5M2~ř"tv.C6tjԘ~XClh{1|=踡5= jW蔡k~o&L}۽ga eC~gnSY%' e̦#[ޥ^:b(k=x6}ݽ| PspmtQf(E{|@EƯ33^FEE` e=gO+([ťO,i͖(>إ e;Y}˩Y+{C] z +i13Y͠'k?jzc]LGUREaٌZiSO)iϩ.NTBav k lAO92`wVJzMp{N:gEXLDgO'gM+n@U9f wUO?RUϰde'G?r̎=}Us[@Gf uyyvĎmmizom5eGx6w3pw-Jn٭/{oFw e3Z*C>3V_vtNIKd[GϲByY JY%c; ӔKkfO(`u97TJEنd/Fݤ+7قλu}5EWvXzNmtllu[Yvʢ%@G ~=f>D*z4!CC٘KKtGl6>Ir +vɸ6ԑd:1+y#;^3fctd|Ae'v@hm3lҷ Ul{2-t`!z lťt`W#}5&bX}ּl\?o:S jfKn֙4=YKvxJ_ߙ7fL~=tZoZ-8HS٪]O6w`ozjcϻ=5FCF/:ahWK`={_:}+>-ec'.F,kdd?v{ (ֶo|ݥ;%Ck]lL0;QQXVVc8v`'ʱkaݝݝu/1XpL86#njcggggggggw |Gw)[|o ~Fo)~[9s #8Wp9s -c8p9s$M8Wq9s4m8q5k \#Vp5k -\cp5k$M\Vq5k4m\q=po= +3p=Spo=sp="ܓpo= +*ܳp= 2po=:p=Bqo=J3q=RSqo=Zsq=bܓqo=jܳq=rqo=zq3<l3 +<33<,3F<#3N+XEC_rN AcYq(ìJܝ`\<аYlx^T|Pq{a]reuh溸N={SsVe=ԆzeyuhMvvZ+QoaǨT?ĶRdž}D;&jCȠ5V6X*T,g?6W,bfzď4T *UW¦Fc9c!FClV~UQw*BvQ#yP%pOGYgU'r2ߓP9NsU0 l3#n`1] hs1ոRsy;?<49Ƕ69.1)`n<79ӬfRb2Liǘsk5fK43}fi;r5Sf5ۨ#5i̶4!Qoͻi1QAș"MfC#pMoO&b܋niIbFX 4Xu`UNdNZQc2GYVaX?RfބYPbֆ 92)1uK vӡl7Г+Az͇zOCI!mqh(Tu{Svԝi $DeHuWfTc\kvNݗX=i뤣< +zD33LhL74UK秪H;Llb˪.TfiIj&|u% +U+T/~kj үdNF-Mk>LuY;Ƚ{½#Qu)!Veb}.zD3oʙޙMUpM1/\`Nb/= Sv2U=Vma +Ucކyeގ>ԫ/XV=ުmD'FqZh[ދƸiXF0>p# fAL&#jM|H(ff4fۨ fެi&Wlpt>3Kls feNpC5_X2qFʾ"^%:pjjY:g75l y(eNؕeqbRq/Vî#jY 'rre*a B V|$ 2w8?Z{V)~K/Jð5pgiPPN\Sk^Cu[pRVzl 8ow=uvjA;L'N/srxI@O\8`O33np(D g.8)oj dzGDp>V3Ŧ* E:q"w^k(JF,:a*,EF|Gv.߄]xj(W5+E7 ŤSE42yH|qi|Nͯƫ5䗅&s4囄MhFɳ'MFj]Ӟhi[\G4R×?!զZz?JSN uYcV>F_ҚU7K{qOmqv8zRbe~t-$NM\8~;Dz:>²ڝ. +S[ӝc[ iV`MC1oT屮wTϩ16'UeELvUYtM<%6O+5::v +cMu +SMcnSM} 3O+E$=6h'+oA&L?4z.KuU> uL>*No +H./l7Ѻi}Q>|:ov}b~ѾOt\_{˓O}䴃|o'_{+c _34_>:M^ȷxw XBɓ7L5^&{bGW}f vɏzY`ϱAxP8T+ٴS3ºf|:UQ{3\OU8xd6(. ~C( ?~S8'5G=S\u[:Up{"tu9M+ 9J)'9@PCvQ=7ćn*LD*ݛ\ ]KTt1[IQNvI +[JWz, [L=Tr~l>b}P6-u)fӋYprE`n99.b6%a<E̡V0"R)) ECȥgfqJJ4oVݶSe۝٪򴣣vSTwlCKѿRy*/-"UͳvUELuRk69uGu:/FU`}(Tb@)֐vUOkM +c6c>9b8uM\'ZݢM\?zzŤqv5i-.>d~/n }C\~nmH+5f4)6AV.fZS6}B呚:B7y[M_SaF`U$9i-%mI8]>GhrYAZsWNMiqMqHL慠{f`R|F$XQQ`5[(L} +Gֈo)aOE5p6QdL`y#DqNCBQ;hhr(otD_91)zfwi3 +/64wcV7 V`ORa'>RW/RX=:_Y;RZ|Pð:F;%bjPoN +VƲ@H\ƪ$dJJ=XZrHV{J|4Q/4$mu9+X5O$Ku M8 #4$:`ֲ@jR_MWRꭒ\JzdWJn~f %Gv:S!-{ƪ;HdԤ3P(Q=f%*cIw2JQPݢTp@:;W\ +X`lp:X@cT {}Nz_YKĂG>_28Ⱦaao1 `1 Fv.)6\f0wVc ˍa̴kF&̈|Q!c:rZeQkU&^:{SY7U4τ?ݦ<׊)yʼ#heo$R-h϶R bCLuU>˽/bMJvgEFtcOK9&E@؎=0̍2`Q>5Ä.WzDX9Ujh2i(2j+<4iP7} W2{RjVUHr]*z594:9kgo7߫%ߛ|\g^S"=bf'{J|J \)a\)YSNX ,jRSi+&ϲꦉLnA*L6nw:V$o2yuL5뵵FO~2M#ggHYmL5oi,)uR [뤹Ie_ԧΓ~W=UdHˬM$ϨТYGi;{9 bu:*cj(z`~ET;C0S݋:Tu2}xbljD:{3Ǒ:~u,;qSu(}5Su0]{:Gۜ'dΞjszO\GMxbVSm¨hj&ժjjM>Q\Ui]~v^WFnTO($qPr+V]TFy[@uz=4YjɪT߱<ƩQc{ QlKu*մj/i̕-U(v1T[)3Th3/F~`/3:#^z5Q +f9w%*Z5~QI#eS;|.Y:Bs]|2[}aQSkA</{7M~9 / Kzhΰ@6V@!55 lԐ^P@GM2\=V4c*|:uKwJ7{\HJ|Wn\BRQuk~Prv +@"dr5s`%5T! B*7P MWn BSB?4,YtX[n:TNV[7eW;y=31\E%>l/ח?lMyf&6rv/.[m#ڿm/ɝ۾m_jCvMc,pn+j9:I~uҽ[XBy:GKZ(jcuT9۲rz|Gˎ [n<^)k!\@oohe +Sު.U1I҄nI]I[bMR/|GrWzE1ŢRQ zߥ*fDIRF5sx9eVyO)V4{2Rވ{RfD\{rQ:E;B*/w +U ?oE*wSmI%+ Oi&ᅤ<8`3zj Àu,偐ȁk%^!3)WPەZFTvk>~PuJ,H]DUv zzҬ:u>UL4xTLaaFDKfS9LLf_s%LRky/VߐL ҧt"2Ç7r1u4z +˨w>+JU1=j :up:L5ث~FAe7z3:)jyyv*FjҴӘTgUVӢ1^*Ϧ{؏=FSM;$5YqYj%~VC]UUnCQmv{?uT:"FJ\wN=P v*WYzF}T]n2l|5Ujme/\@QY+5v27wջd9L*W;ut.>2]k;J뤧Fa6%4lfgi7,=,3yfuNXM.-4f֒ɡV%4*&$XYLIը,SjNX2^ɲ8%W 9e|B>e|fO6rn%? I96٠j?~.?fY~JiC/hޚ1T\l3*4Cvx)@6xyoii1Be8uN`:ajHMVNe\g3L~‚21=cWMs]r(<l;㕹JEkb 2/xkLn;PJٞz*oy=#HʶۦΚ>TxVQ\61jMY5ia|vцvvѱ +6n~ ?e6 VvC1f;Ȱy-flض sU/P0G؛ ,U Nc $αު,X}+lO[TB}E)U]X@w|S=fzC3)qSduĪ_Yz%oz#$XwL&ʲ ;R2qԇ +L)Y_57]~~f|}F~MMf̎ju~5go쫫˻kT3Y,͐sy#-r4uXiڱy-kv[gVs64efaM^UfL-;MX4Ʒdưv]kJ&7'o5r mא=lng8n9YZmsPXtv:Ŷ&5+PWVgL W45nXuԛv)5ռNmyrGW9in[.``N@hᣪ\e:+c_g ~QM^B5D&.w(vPˤS$΃UMdsNRMi"Rɪҧd4Sj37goUSU%Uɣș U'jSvC&*m@׋LjUCU֓62qUR0U've3U n#Yݻ35Y LE%U̔UMj̜2i9X9qWzMWUZLZ􎲰"}ʉ3cʠʣϽ**e{)*dLvUV:e<(|(E7}(J'RܖZOݮ$-OTqR3/_qP:1=obLCA/V,ޞ/]5ᆿbt]Tτ~Q7Q|iQsۍJ#bHD22-2ڱy1ҕG8D(siQҤ^[KMG8D_}A:wM6cջJud{H3K7>}4fظ؈ i n!Ғvq鸡cbCK*D7Clɛu!%J{9On,b#\X]z{hᔺ>9 l߹nIS7Nz4lg]t|ȼ.G:B-V :%P;Wf^iAgjWKNwn^hv4gIAic ckOH? U[*-0E^/5`ҩr- kKshYSS% UB_V7j*7ԭWumi幾Ϋ WzTMtߎmRjZV곩M˚.Դ SٮO5+kj+Kzm[_W9ݛ깕[fVoJS}2׼է*?|8jڞ3VvY>M&~.UR:UR&wT٥\PPuSGj=uET8eիɺV-کT6ECWtQ_[ e zt9Wʠ[}籲=UǻWvjd]ˮWw%VZrLSUv$/iOƓ=MKW9&e'$]K~Z+ž]Fv=YWֶ{;t[_+޹GU e=:o_Q׹CZtTU*K{ת{2Nz+;1GDUl\ǩ=| :^PP}]*zra)JaWC)U]פL.lߩʌk{^U"CS%:P:*QkKnZYyzi;s+T WY_mIJ^͚L5mڶӧ2Ͳ>]*[ljOʔmFW726\Rӵ5}uL+jc?5=[}짐mڿJZSsenRھ-/)u5li64p^K[lQY4ܩY~߂VuӃҒA=W[ =(?~IcO*gH S +׀K7WM/ Tdߞ\*VxoP#ӷKG)&+9^3b+Ӕ^*)_{vL\\號9r2`M+2 +(5TTRܴŤ͕ʯ'1kEV%R5uY7P|iJ`Y:%\ +v(*weP-t=UJ8{ +콲+u//:8>9VvHʱ6Rq W崭U?3:J=]N^u[=oMǪs풦ޫ˘ZY=C]nbI2bSjŶO&TW(9j;斺 Ц_o5'ssP1r k5.'s}k4w&ֺiYQcj4V6y kc5-CֶլwؼT a9'ϱ.Msb[^|]fŹ!u4-5WQ3,~nM_Y|RMY75)fkfW9o5\WM&,߂" +q]eFٰL, PO)ʏ=aLB Itc< nŖ &;+ +V)lG`A-==?_!Oc3e,6_QP(g gxBX(?`vcv'𛍛ש_x79l|~ϋa/'oߵf~ a߫>~~rQ~J fg厥K'/woVx_>[?0 ť! +72~]z824]zS2Dd`W+=Npj ᖋ ]0y~Aڳ "8.E -Dfv[ +i#p(>@EpxBWÁ=t ++8c5@$"e`i(o- +M r ,Wf +^u,f#h}%W ) &M(`tUy̋Ӂwm.41~$D` ]Wʎ3.z'QAfRUɷZA;J%Z.0,P -B;kq +CUUiqA9kedK'dڲS 3rodmxAv JW伽WdZzTEmN^[_\˫#d&@OĽD@Qm%$ZV ޢN&MOx& +n7GLf$eh1aWƈ>:|hwgѥSC>e,:u3SKE/Y1Atݠ3ID7?49٦t_ E1o^Öbu}nXt62ONj3KabŢ)?u9{ ik@hώ~O EҋUo}(w:/cjZ(߳_zh_]C-`΍<9Zt"*tېEe!ʞ|`17W[I=hNtxJB耟f߆֯a[uW4-Y٢M_uK/xt)P~A%"*Pתi{C>L-z5;=:\auY.8"= P^4Te[.JO^&yvurբ5 5S,\%R8%8Adkaa7pZJ:~ɟDs +G*\:aDzͧ͢[k2=B'#Wt;sD{uמ0'(rQԧ]Dsc"[6f۽ꕳtcp}-Cul< bq9 8*(gr 2bY9䚖+Ps-X ̢} YkgWΞ-gNؔ^}9Ʊ r߁c* xƖypO ϕk)*Ƿ.ʊƲĿ<%$3$hE5JF(e ^\?b:6W#Ǽ?b'I Y#Ǽ__w6&|]~.xWq6W68@t+I / 5ثJm޴Wl5%Xi +*}Jy ~{nb,M~W-+?}ׯ_ 0pAsٳgϝ;w .\xҥK/_߮\rk׮]~ƍ7!ݺuwܹ ޽{Ç=z ɓ'O>}/ |ҫW^Cқ7oBz{H>|ϟ?ҷoߤ*!UAdՐj BDA!!) )!1TԐ4 ?#|_h܉c4VE1SN#ރuN#t~oMB]-I M wOxCG|hyј#6f'oxo +VjPW?nonTp$knJ>#u.k?^qЍmOwB|_w ?k|.׃.nrDwwg,YV?m47lP9vh8bOg4bS-VXHa?|g?$سeBL?TNO>lNąEąDĄEƅDF6]vwlT;5Ui8#>ح8dlq;WnJt@3-\^衉yqmg's}{ە)"e՛.|4ifm[ɬ5^fޱ_{Ae活sGսD:6_t Unp+6)"61ZxB~Mtbv FlS<֊g^}1O<yOrc8݇J>#]*3c2л3Mz0|qܓX +і-@~ +3 .6EyR4#nQfʵ9Od eȮA94>}mұQ"^+?YrGPUm~#+ɽ>(Ė~Ė}{7~1¶,aW= v~mzR~I RH ݥumVvbB{--z(k/MI#B}N{Db}VSP&ټϛ;jYz|Q+zAN&l\|+0(/x uzV7M./硏hH.Ʉ[̾/¨OЯUa%r9!A8aaN0ABm-BS:B~ +!Subf"aBp~BLo/`'e ͛HgX^*IO1 M %̽M5, I8Mc;m`J`"nBoP>%la؃&O~ cKMY܅#,y/]Nn\Ivl6gl3xNS <@';Pȋ0N҃g>z򂹊l$[T\4||B\EgJ#g}?G/~ x'{٪ɘ +W$|;r٤ag$|GrZc2Ct)Y|vowK͹Ims|ntoMB^}NywPZJ'aϒú!?N0'I=i_IG1Qr iTB;Hœ!S&#,K!;\M?" v0);cɻ!a^ c0HNHo6NI{瓵Zڨ5$C2Xg5da~"[ s'9;Y2̵ܾ$T7oœK&uLa%3]`u!}'v׉s#}Ȉa.'s$|lGks-9Iew5֤hK+H0G[Zl<ٽ\VHF%ɞ`Ƒw%/yC,M.E&Ώ9I͏yA*'# 9Jւփ/zքIuMamx ^><ɌF<ɻ:iJA6N a͸S'q#opJ}m Կ !~ #gXKdf''v)GTGXWKfɬ]v[-5[}-7rzXs6*kXw6ְo`Yg-a ZdKX䭽-HGsrHsXޫf.H3X>MI֨ 93֩ 1Ucr1Wy{֬$úaix~y+1ְ~ֱnkِ\fِš6 r `]Ɂa}듊z)zȬu.taQWt`~t`M/ = ʀ)8߈\LVޕWC] W)@uޑ]xV7{6}}OHI Ojg~=I5lY0ȭ]x޽jcjKiG aװ_jXծ~ >XvNeewԲ |?v`_w?SJ!U@Ȧ`l( ^ T#_ـ㍘%JP hr)4 @W@+. du-Pe_̀>[p=3L0_=T@?ƟP*?]L?3L)5Op%* +tiDt]B6S(K% E?Mv0&="_cp1rلHmBDH!$#J!" \H`GBBR_x/a—%!|DF_p3o͗(K$wzv@?ėH uA V&\gCyipo6{(3Ɛ`GT#we]zD.g.i8 @# aQ}! @# +D HqBC9@> +_p} +8 힁|@Ys0zD /@Y@EPPܻ m2+>_Ȑ{0n}x@1@Hxup $?a܀ +@ +XC 5@oAG2P}k@7/+m@qˠjhRF|!*2@ P X,}"PH'.z>@>Q(3'Jy>\ >nO$EPڳ|@5H@ Bvpn:w6NЗ3o>Os$ f%`|InN +;8p%PHm C&h` s8 P?QBȖ\ԕBąHww!.Dv!,] +BQDB?OC[ p=ԟ(sA'\#Q̑(\H$r$ [@d` tGdHp$,v`}%~D=?؏HxGX!Ї3a͏(]r 9S%u~DV%#JU^D̋H",YQH{ +/^DjE Q{ Q& $pS rߓ(zIT<$_zΓIXH="58( ܣ֓( +OB$ + yDYl@w w ߓp_:@?{Cs%|7<>+}ڽI$Wރrϡ[zϣP3ȋ(EM"G/½ t^.3t H "JQ͈bfD{ࡆEKQD$$͈ubeg_8C fH7$&ŀt3aHTd9mb!Qjy*p[OY{!Q8ߩLH @B(Y ϝUpo!QK˓A~!O^ }lnlo=ϯ0sUC݁>{kKBSh덖O}Cns mB+ϗ߇?XN%ʰ*藂2v?򋠼 x euZKy5\+F Hs#"Z_<`K!|)\C~Yc~Էk{-tK(c #M_hDȀܵx:T Pxj#C zjy4 @D~ (1Np/ A?)0ސA;Po_18(?Ȁ6l6a.r|]b>]e@z%` 5@~(_eqIhhs¿Q&ԽA9 +hJ »_/Pא,xD#J\;(=/pD@((lm#RD#J;u}7їG:Pv(7u9G`ES!?GB09|h'-eS]d#)n:z7Vû;m9]A- wWPwxwGx%H~ +K+:|"UO(1e x6؜]Y4<\4Q (F$^B+0^ hhSN2V]>5r{;K +&?Md| ?率;~~c=lO{f{>w<ן߫!)"}kHfB w k"ٚ(t0(&ìk‚ %JEDI[(NP5>l0"y8 с<3 +#dD+ @DQLÈV~{k 2p| +&(ʄ1 FÈ +;Na{\?Z%+c03ք[0D7h)ԭŖ6D7koCb_a!!҇ecm"+zK$1 mʀc?shƆ HBFt!JF#JˆGG( m wiȓfq㴷G^?iҏ\>6C^\ @àt΃~gj[wCp&AT?ۖ( ,[C{#E CmrK #{E>v13(E +%( N/{ Al(ip"uj8"DN$QI$GEBA" &( t!$*,# wH#RcI$aa<@Ã{Iz}~O +GeЯ=u#AFAhh7Blp@h#a\"DYEa  ȻA?gz*^UQ*9H+<(ʿ!dqہHJ 8ɀ"@.p@ `QP BA}@ >< ! Hxҟ@[O@3~/Kg_`\_AJ0 +*(V÷÷yx +=QDAQD}إP[O[#Ψ({f9(E'G]4΀'C^nQxoE$ h"(l-yA!жt{k Q ҽ J<-'iB5!4(u% +\fDĵ!󐎮{+! ]aAY#׿(Vhg+aӕH |HEyʋ]<"B>yiYGop&JJܼV&Bܽa}xDqSo"˛p_ kx9Hyp/8N5}^ op ‰gDY9\ '?^UB;LgX}A6{A, 1AVFF%aM j[ +y`lPܻ/gpOa`< +Sp} x~Zxg4w'mu݀ܔ^Pp? $5 +(!GJQ7E +@1h $}+dONB H@iH=mspq]2k񕁴}eE2MhPnAYqJw<@H er$ B-@unZkoZ}|Kz;_ol-N[t~ @`Kh e'Ljضd! p%9pA(Au/ӷ]n.j`<0@K@7@`: ʂHhGn{2l;8[ߣvD1Wlߧh")ɂ(|Mp#d'`& +APo +,`M#hd17D; +2X[6DPeYЧ;M Ёn~ m5Bǡokxw=dp|R/l(?n(7p, j7-Ӣ3rrߑT1/&-ޠ{#h-\?gC9fϻßF<(j,6TF7`c9L+| bοY?.>1&徿i_@ Qu>!&Ê1qӊFX +縖k{ƹpjqnjqjm1SZq ƵrAĹ卿M,h\۸k{~-۾on?G}uo=8|-~px58>7pA2{qxqx1K^4~~ޑsxRun#XO>×s?8ws܍#9<Çrx.Sÿq~Ac#w`o8<rA_9G1ޕpt_8:px?o8|/_8p ܗI#8<×ro8\ᖂ>r/~p'g8Gޔã83I>7s18M~6b8|)^?Xsx=8<ûr9(_.p;pxw38| u-~ޜ[rx +l_[9$?JX=9\9|O/px8G=9<×r~o8\?pC9|2/-~or;s͏܍8s9| +9Gޜûr(p*9s8Gބ#9 )Ïs#p;y)ÏsSWp\9\9|-Kë9G9gp<_G8.p&?r7'97gq"788 Iruwprx'ÏsCpܟ9|4]~?s8σ?'r(8p^Q>wq j7v>8wsyn#x8|oë9GޔÅލ'r793Ƚ8|89+8G8O9sxK9Gބã8 |_8Wp86?0Oq>wre,ȅޟs8|-^f? oUwq}!$%A8NB6ZCN +˲k[a/HZIOëݕUz8 rC[pBR7 8`ڤ4h>JRҔ;7,ÿ{ܙ3sΝyk j"C>&:ǝ ><@[G ^?)gJopQ n?*c~UMCڢSpC|xy3)0iBXWXdGeLt`g`b3!"m1%oGGϽ@>|&nz7e;-r *VPҟ?JH'=8g?zxK$Wg}N79Q~』u0}OS߆AU?xjE2>i9?#%{C {~Gы\E~s߰V HOPL}{BT+2.۶[Ǭ==!G}8_*oh="\o ޿8}!Ώ*Ydx.Ӕ{0}Ng!O3}ojfo<sp;`sO{G ӄ,g:`|rA>WO_ilZ4x!}S|·s^-؟#{G,zXC9">?oهџߊso܏ +3߂ 8mO?ٸs 3SeWQbOC}&-gDȳ w඗Q՗VKA oؿ^ʯkOAZ7}ے,7̿m zv0{ǃ' >>6a=ho1|C8N̷)?@)ch~݀',&˯U-2C{1ˣXx+x'8vE<੷~qpj3Ηc[rп>?ܻug߃ȿ3<x_H~370{uY?{>m}/San)!g,П,6e'{-ؾ~9p0/RXYп=_% w^A8B}`9pf!Sǰk("Gmţ`A":{M8O9s1^=k1xAx3oECsOφB?xnOqEzZ );h?]1s>K@zoGnEQWV$.JI]-P}y4W)bs'U|[V%BCCJmuDĆז$T0P"5ɷWZ[,;D;X* Q) +p5޷TcǐFʘqWxV6SF]θ ++CD[2qKEH+.*DOMW2%3E ,-qQ0(s.VMRYXD[;V% +dV_9F$WRgBLwY4 6wGX[iK +hBpa$`wT#Knt>cnE3֪mhҊWk }9{&yT$5ȣ򤉲$5!ᾁ@Uт4}- jåm[sL><7?'S5V$A%  +$ulMԱ5ІxcA[ Ъ cGvt9qplcvtJ[(MmfivI1\UKbUGB2{T-tYgs,`(PPEH鶌LRMb`<1ⴖSr8T\y*qErG\*W5^'=7ORqVI|q[+AZ4Ģ,5K-`{dcJJ4GrB dqG$=ZOe?pL%b|O|+9/ +hM(_\Jexu+KīPd(d TQ |sFB/]J&B .CG\Tˑ|k4+/ˁvϓ#Pާx(:yFce#3Qd̈7Kw%)Tפ2 8fD(죂%ĔJzX1e)/&]x01R Rb_75o6t21\cņp'jE8l2wNX4KlTaUp*+ՇϱI y1'2;z(ƋYHQ%"K.mSU;M/ƨ+H|WMC7WHC,#C}'-M=[|.n!8_w!fK&VܘHcG|8rϽH0"t'{0YqaJﲇ%*u+qٶ#4XŤaXOn Ut<>C\v(KPȒzF=[8Ryy*:BSjJ "hKhwUCbL!LUSbLacAq8H֫!!JzHs n dhԕt| +T$B$/"1|owN%nͿ7G3tE[-t1e]Ov8Te l]纜滟\ IgE֛Rd) +ܾ0^BꘛT>2o.a/Yz+YSԩ[s'Kז-MVʒh;iT(;,\>,C͙|UkdK/hmcGVc@C!4lufJG"YkiB@#=e/`a˗*[z,LoOpAk[0lkхXI-zo Ls;iV@rW-RM |"Fkj,b%.9&G"ݨcF_щj2[AWViℙnU BJիhGfPN$u|J?n&Unkې#sfR h͠E\D+>|b04jᷔAÑҮDiM|]oU5J,Yhk`0'LQzj^yOix'35cL X|vMZ7|%tu 3LQAo?F778jM ]T~7"gdүݥcWg5z7lr[y xX?B6[Fd*m_?if]QfVaHڇޛj# D7c)'Mc:{*5"b`a`f9E{m\bv>:΄i3(=ޣDžeSѵG.#6qWT4?Xkv\xp dYヌzKk>I4ق#5|԰͏Vߣkwh83~2mt/Y*lIsg w9Ї ͻS}w+Kカw06ᱰrb1~ W =fwknP54Z_ _4M-ᨧitO'kߤj]s4cvHQw;]ߙ߇FM曆g`4㄂'gʵExi6}q.KNO.biƜ< FnE4q>Aٌ7^)҄{e?PK +ԋ+5 jre/lib/ext/UT EEUx +PKԋ+5@P<@vWjre/lib/ext/jai_core.jarUT EEUx +c-ϟ/ש:e۶m۶mUl۶m۶mw_ϽsoϳW^+r~QdDƖ l%3=eDh20O@ϗIˈ+*HxOn DU)i)a/kh_ }{ ɭxt0Cؒ?"#+S'Hrn F{5Le 6ʧ߬aek_.Cc?Wh?@ ~ŅFndqyW%5YX͘6[̽8BjI-7浝d=x ִ߳6FNNl24VQq|p?֖˥us5(ɕK=z$7 +5Z^~vނ=}݁{4P#Sզ 6j'@ n]CYcS$<k^eQ6 \)'Ev+qOcu&j3 qɅl<4s*3X%+Hiwa? +j│J #IZCZD[2?ԡWʖȨ$Mj?G"~[U44js˘Gs>"\"(SgTQ"9VuRX2-~+~F:xQRT@eIͱwܟgX4aG~=E^?}#[k]AEb27 ; ^MpŘ8&a 9g<._|@N$Z&G'<-6_t>r˲Ӎ/@.%/ǝkY/Y y=s=ZW7\7jg;Z9Qo(pQ~(O)JਁzEoO;)7 y<4gyj + bÔߑMS-%?R=te|*s3;2V,sGtBqaW,=^ko_ GܶׄbVQ0ª9˸{ + Fj a~!eC0%")#[eMp.1;T^`;Bs+IߢD ״ 3>_CEYtL 3cjmSbS͊@oqRplÑEG*h y>.0b{݋3-÷cs#aKe1T}d@xY:ɲj{iΧr=iOkYb) +PY=R)+4·|!wɴˌN^U+&JuK'в9E+Hfdicm%-ɹ&~WGaDi>ktm>. *l"|D;GpK^3?%Ѥ>s !N.UڶH3:Ń$r +Q Ec,yRze J2~uV[U˖fnW?A!~# +7س&QXlr:LLW|~J]b;~`ø1;F \P0H~p$>1(liQ퐢 LrT2#\|1mܜxS*\|.4sEQᡈ׀&ynQpӤ&ܑɾQ\ f6s>g}F>tl}nS(ߍƲTW["M4HE_+ [^JPؔ"lk yOh[#p|n ^i$_'/[$]e..AU._p@ʵ Dogv@fh@7VzbfkM``_x2TҫwlFž E⢍hmF9bL_DȾtTEoom*f Fٗ/z&jG3a} sg>qGPbY7>[f@G!k^)w .Wr^4i\3pJwE}ɞʷ:\7 W?cg63Xwbqkfۊ`GXx⁶ǤB} +Ê&]\:#Q|Sz%1q~Rm7uKhl YqS6 |p#? E|x_Zڵ؀͑rY(=,a :+J69`m؎ݙ%f_ mJ1hD 6/(X %ı$y]sØ$U%{b]>p5ɜ`Td;b^p>;&ؿ:|O'kTIXp0oġ&}G%Rl5OG0y,"K]n+@7&7tES=@4X~Y_?BE>{|?B4¬taϣ+mTg4p-i2PkY 襵6/GjPp7B0Ԏ5[mfͫ|ة˔80["(7 oWvtN|4PN> NѲp< _SJT:Br>%U~\CyCg$}20b7 v4vX6~ki}ڈZ_f4Z7CUj 鞶_%m?YL;-WXRS@<{w'XN y̏ + q-lW[PK;{ hW^/I{@P^E' AV.>"nBԈn7ՉŦ)AY1/XCgzP Kl74\tBo~}ɚөF͕drjg[I/Q.[''#s4Qq3rfB9`%|,_=oY?h$?%1)mi`٤,d%rX_'C$5OOݙ*#- ?fu LTV%Jc }Cx"/Ƨj&[5a`k])PƢAZ躐Ca\j<cQ X:H|urZ (H`_da ).NPt_x]CQ%S H" 衻*,6kP~۸PC\u041Ӽ۽t!tʍV +M6M!z3i}Mbr@Ϧ,HPUBUQd8qm%im ϕb %[$ +YgGy/OtlGe2W!sIDlz ((r xo[Kp݂DF %+=ÎH@ tfIEȽ£ȡ}# +$# ͆k&/%fP!,l VT(|31iփxX߸Cq7df3]N.pC5@ 3lLm|~+claũke:Myes&*780׳7^Aw{60eVhu}̐ %M&dP4 nsfr=p%S} t,5v_Qe-+/*)%,$/X7qۚ5瓔6[S~%h7ͺKg29VpKh`FpO*ݔzMbP]rgCJ~ώ`7[|AN^xz0<唩O"b0F .8Bx0A6j.0\Ŧ1RoG#`"Ԅ |_Wvl#U1}-ƻWCb&Y{^cE^f4 ?y՟[ $Z7I|aq +}̘ژrB/mo1@969\@2rƀ$13E'y9[݅sȨTL\e翄ܷ A0}++}Cȶ*NZ.& + Rbuȋ2fMB[&3B$z!!Q4X 54x^wh:$eHEB޾}{iMn󠄚(%8z~Gl u2Й@3Q*jDԱtPeZQ:TRzٱpFJ^f%:¸rA? y#u|DF IpVkA!\꓈ߕL_#zHuwQ9sg6FCc#HզO*#E'"LO&1љ)6z9rW@bDAJ/-kJqɸ IZ]/(9פAc+$"f.ަ"OƦ.t[Zc&[zW ? y,4z$ͣj5=SIZUѡ}=f(k#TCk$J55|+gB{ƨbNg]6N b"3"sBwN3*i?5ї2)WGKBhkW6ڭAԎ1w@ :pyncnCw8@1Н-h|1~[ANpmBz3`@#ޔV^\l_K@|s0UHuC=1i#TA>{vwY{[skjf  E Aiӎoe4|~wdhL^eu-%>Q[Iݴy:wU8 +ܧaDa8o$"$u  <(XbQ طtValjA_|$(,X9O8ڍu?jiYStxh H06h%.zL:D~U(LTKWh/D}*Bw3ҽ@ƫ%sk<ZgohlEyry +M`ke\=9?A6)#;USxqx}߄ٮyQۯC u1Ik'W&*'F)ב؀,#q"[ @eWJl5-FAYpXY@M '3 e3&ҢgYʕk"A `trH}C=E)XSR{9u>q%/0*@pQ՞Gr Ǫ"FW,AJ.<ew@P$ 1D8/xIw!̅'}(%T+B(1 }9ypU.>5t[«KKM5bvrʻbTF\pQ֋RbUsB A +r^ +2)$$] =}7#d$d V}Zڼ[4rn@7V$٦~GõM} +r+=4r,_Arkʽ1ksٲ>OLˎ37ߴtw#q00NqwcCLEij!2کC BHHj0d%Ķ7Zl/T[XUnin@I.]Wi_v|QwLgsqxp8l;n?d}t>h +U6Ii7A&א`ll4B# k"Fo E$\"Fx93(#r@$Jyz?zv%v|6YX'1TUK}}Ln>YN 2"k |.V/NBr\LfQn:DiHh0DSU"Fե:@MKqMz.XDKqeȥK;GwP5 .Q'S.8LDphkk^x@!}oDNkkZ%6ʝ#ԑXW:Fv]CqQh:xq5JGkPdҧFwTN+ܗ(/DAAzpЧ eP6j2DIor}`y qV44 dL%Ra|zE4JR>k +Nh*YϓTdU)>lNJ5R1K&O:TݲU5@A*GHV=r,7'LM%gK$fjfz">eZ'Cu,$yjr3K&#Lo6ucv8ɔdt)6E;|=~Jx >?}HS l)ה?M!-NB6gl+Ϙw"#<1H㉬$<;h;Ys'v0lQR +$ayqnps~fZm[`t/|F6|FgրY' 2Ώ|X@gYZJ#ATG)Hv`lE2@c%0?v:̬+s\#' *j2Q= nxCWmfq*܄FRV+}+K^,f9TqMLЎ&lysj4`4QWZmsސ0qk҇-=Wګkrn +8&Gg';oqu,@7ÕGtm4h'jCEL u9 ͂/&p,m7des kE3~#: ڬ^(C̶[C +G-lD!bUeKW7Jt}y+c Jt F3Oێzh}+pGupCKB uKzw1׿+6@1lͫoč} +-0Xc(doir-q5g(@pP6,^p6.C ܜ%F%0Xx3BjѸd, тdB!1ϢhcžnV1p<5GbtNes0K.j>6 pOg-Cj-_"A>|Sd=g͓OjKÛE}!@~A"ȈU|;mkhIrK?=i(RMtlj׎JUF!덕3>%( DH_Ȍ" +Ci72<ḉZ~ )33 =qc &|иw7a#ʻsH7#)xǠ*lVڐ*El랖 3H9Ņ]q$n(;[1映gk5/#Hx㷎Lxn)-KFRg)e L^Q Xpq:8]~ 7m/n$i3l9߁76 +ۨG0 e4}zn e|]o UN=/Pgv;EXU;UըryMM9;MAȏ%h8 yʠ6wUY2q}f}'L2:;jimUpx)-萚 ga',$Td=|RYc~tn/KeH*7!J&x+{!-gPM~P%XgZ(bCCMNR>py= p~/t] ;+^0>}.ʾro9켫]N7t U?DU6E7 |DZe3sTR;v0nRU7i]542= +1gAc(M,r/#ߍe6k8o>y>89.9@Wol1­2>1'H@p_J{bG$*S0:dE,Ea:"XNz<>-hYhE"Z{C؄Q)F%:rA\d!5V뚢eUʿ]1cK*2KC<@ztJ` F/O YK!Zф"+&REiZΒ ?/wpX9w\<O-FGoSLFRP_Z91$o8c/6xmu҉66yN-Y8dW#>Pvׇ407Ƿ807m1#Lg$xdůIya>3cb?Ct%bߑF}1IŲ }en5tRBN_unuoĿcCRFIy>{?ojMЙJ֜ԉ6m TWdĝ0 \ B mBtQXj&wTZ1/Gxg4koHj+LO1Bvouӱ#Z .iA'Ja@(b>wUJIٓl̘ *Dn,PX)nYV[ɾM&ԉ6]I;_ɔeX9jw 7Ez]j$t1|TJß n3ݢ|f-e9'n-J&=JX G@93}OyH&8z{ ͋9%⍵(P9@5FekΝ'Sz)X)Zb5d--mMN#"8"K+2>^E΍*&awrj/5۟#1nvޮ*G 86&JTU[! טg,Om6O"*y,6?Vۛ2kdP1Oq*`.;*MXtL KۋΒ2A׆m~}}VvIK ɉsx%CYD@6o$HqbP9k{OWL,'\qH3Jwvh _?-;x'c˧ p_UXA'3F%Am9-} F/DreLz'S4ngtPo*QMQO݊a" +yG<˱qOzJT1P.;QKVOS\сgf8LD޶B ZVTVDLzL6ZT`njauGU1L5p M{ fazL/Qv%'~Q[=liu(b0b(I[],W;!W|0q/j e_ERXƸ4Nx&v܎p\$Did2+zځie-?j*_>M=y\j׃"s~BdGux,ECۉ7:PISNcxtq(K64uD++t#/?djK||4RݐC!>XTJiV /G _^w}lܕnj:jňWrztĎuD< +x xqTq/j^i$:lu +ʌ*^`Iy!YXR" +$.%^.m (pbA҆NJYG'gF(cf6{ʲ_nS㽑FW( )"ߨ{ s\jx+Kk7B-kT,Q%/o Lq*TܘT-=4-+$-ԛ93Sd*W40'JTv4V6U6+u7/ճOC8,e2ػGH:BzUƐ8P/P!e(H#[4:GEBZ \su}k D ܨ#>* ]'*Yp;>[6b3N'[H> q$fmg r?_icrWQ+;Uq +s<9竘 {W3=Z3g8g|-?p*Ȑ9Xkkk?YojmÐFX(N>5_Đ6/C1 1׈)ML0I_.oLR.21f ?R͖86KMceD XyVYuIko|LVpV-*-'Pt3ι,!p{T[ͩcnmI'ܹW 79A$XE.;!Zr;!r07+罖W9F}rW7b'p^N;!K$<} $[N;!]mAϠWMX RN/64ap3]H+1GwBU!NŽk.˃901j$ɕ̫>ao'frS:r>Q/'a1BguUUEspco%4 x +8E JBFKCy] AMˁLw+D䘲K&?j zҶ\s-&Dblո$'m}ׇSOC +H016- +}TRjNg|LkסEV2ë"$Q"{vTh {JZqb"l87`qdS+T;;d8 ˀ>~|T}K@]O`1=a8ƨ)R +LnEt6Uq{bvSGu}fZbX 旆BiEkCsՉۚ} ˉ Cc|ф KL$S%$IQwBl,]]a~0_KbO^n_QR$=UuUq'C,,"V ^Sa~F"m(/m~̧p@Qlsf ~*诬4,hP^|<j +1B<[9LBzsElqD.t ¤°J@T]S%ՈQdUYHBE(j |wjO¦9BNW{EkœV+鑊 ciC&X+/"2?tj^Pڋ iKc_ж&̍%6/S&8;If+N#Tpiq8$w0)zmw0/C6a\ł,CR0Ta.5DxDXS#1 #<B 0(qokKGOC%tb<4Z̼+)xd.T5jۥ/x/x/\4\Ͷʜ.J5\- +qhQZBuiHPSD|z]m@;7SEࣆC%B酊 Æ;#g*>kx\X z:Z>k:ʓ5¥NA1W S~8ޅHϙvqniI3,c5 +3@+NHM\.b8I,|BZŘz+NEV 5)sGcd݇hxO-be ߤI&t6yr `:Xecl7oBmR2O֍X58e%c>ATA\I\AT Y )ǩ;͆akScLp{]$,,NȱqFTW<.=Y"Ȓ4,4c|SH `s-cf;6tt@pN5kq p*/q$wMF׸m.0D|$5PldtQuCz^S!-ͼ]" 8@,Q5@ nF iFiωBWh8MrT)Z6,x >E!YfU1%5IS(%S-<}ˑmbah?B'ůOg!L}2S[$wJo7UlڒF}u߈,d+ xhW,EDEE1DE1EDEE3DE3Eq\Y6%Nm|z0' tbCbHDX3AFciצ]骪6Ԭ\JJK˹bO=gY H-ceHrHJ-]SM;r>4l493kKﶫO3Yt ͳ(Z"ĭM+ NW +]Rn0S#eS5b :RQvvwX L2Ps"{ub4_̻'vC#)m}WÎv?c* 2S~r8o遴3T0Ӯʩ%+G-Zv0A6sX.wd61݃̓l,1&o]X~.ž)Z;AmЂA.<)f5*:=Ǿ[@wOQglU};;cxx(6)aA.WA > Oq0ɲV!~Ͱ1s%o$!5<1<8fdu5{]'* R`Kq"]#((LB+*4u.^@ds9n;ѯ\4Biµ'(-H^Bl:7hY߯]Cwgd(TRe,1QD-Ie(Zΐ[4__n4aSqx5v!?CY>]*MywO0cs>Hx+ b E& ~HHMEmtXiQceRt:]5+MQCV%m_vlQdf7.n廕CJ\n0'V67 hX6z6RrEv +GOJhHQJS5t袰UUpݣʿ3@)G. \vLi圁+о2OA bOX~E.<-gC8\r1ߊ"4{]vI;L 3wT< hjLt)bVEGxz]Q۔o%̑wީKI0Y_I Wهoe&;训jxXeA׆B"'YvAטܲU)(J +4m(J(O}0A61/hAS\>W -3̹&9 -K540}Cot ;C0RXpK׻  0lNV}_{yd>xxj–=ÿ +H,nd;L8pwcd m\2/w d Yd++[ ms!z C!5.W;5ﶧPNF2 hjyYX("8rh̴+U(O uhm4AoX`LjֻBXbˉ}Я*٤RF6fC#RAFn9j_BVbr +Nh  kiWTӤH͕FZo4lW&mΓyo* bO3OmɱIٜƥ_k.X} +SnBޓփW +ASqӫ,y|j~z1 D>{sHlmhڋB" m6Yϩ]E,TJБZmiZOXA0S_Z@H'lv ݌qe]0e#/ ?! jcSϿR *# +ږ+q eFaT~Py8P.zì1( >P? &{י/?_bDٹ t'Ԋmѷ8D?S?>='Bq!~o`C̚hAc`CչFonFռFr /zC@Ĺ[x(Dj8E/E 7yS两xc B/mADEF.Iձ?Lհ' +l=luses¢q7q׽67\P μ 'P `(e"'FЛŠIQYRw!@*i=-HI~NU-`GPdPדdv+V vTPvt7ùVP X֛AF{yILְXe#EK. T)ETurPZL *& + z.q.gP7عK8^^rrz^͐ aaaA^ +=nyI7Oth }>(#f-te *q]* aGyΧV6sDA<:ߩ@h7Ac|'hF[%}ͱ6Wӡ#J.2MpPUOD c +fئyMT?OZ9k$nl"nC8GbʸS/Ryndq-jrFܢHP].x*pDd1CJW@Ћn}|6CY~@zY)Ǒ 4l< g0w +RGQ#k`@ I"{ 2ջLvl$gb:B"7GOTDE_T@[#+^)xG]ek9ߌUK@Z +3^z6uU rUf:]1d%JOO9Nsxe|dq+q)o2$cl8\$.ۘ  }(Ss-iWv!(VMضxlw!4C:09DI]VE}`mk_0-=;A9 aHn + w$IP*e;tu/Ƭ5{8  {,q.`gQp1'!)og♩X#qr%Te¢[@f'jQC/t`T&|Y#Q ƨFt[N59Q[w,X(&ƾgXY R"*-F^G.Np fsOҋr6ēR Ua^_/`d?m(Wl萸e6(7($z2()5fN6RXLxTC\a8^m`d{_*nM35陞w'8hû6^ 8:[*Bg8aLӜMesrQ+mσB uL=厔o׺PGc(|=zB{/3gdPHOce@ǸPW9ѬncZ!C8#"6sý_3/ޡ\6~z"pp;;Nf,kyy{LF%fܾ#~ X 3;}at- 877Oor68 7B'TRDJ+l σ뇝KJyhR.vi҆Cj(./ Wq20i7\W\\u̳W6CѢv_9h˭TydջC(l!z2y44y$«;S!RDMFk ʟCT`Pjke"sSU'FKԯ 8gKz'j17 yk(|HP꿬nHTETk'h5Z #6>w*F5äuK#Zm +~m|u~"CSt7iYX3fÚ`4|<MՎ3դ2H8tp $7 "DRG;uZHfHyhSnOjJqY}|zƙ}ӷ5i{\%@3v-ΘXqhO!mY}Ut<ZΖ4M8n:E8B=&2d8>6E="]JuO-~ $a (6mwi>/ޣ+ KgLf`|AɥJֆetTDGh tv<Un*Gb 6. ]9Z\ b6rKIvGIu1Z1}ciz`q'_ֲe/}B*-۽Bf1*SsezdnۮdVk3zn6:&$8 2e՟Sre3UfL{i-8B}uf| VF +9»Jst+ޯ6قxfh\T5=LO=LdUv`uZ'VϺ'hZ?a>ڢ V{xiUΑUKwlшKT3'IڰAA(vOqO(< +ހ9:h%@ݿhӍ~z.AW=Vzt$W( B3fE8dGWB3n^<1$C8\Eq C%ʒtNS)| ڳR.5g\rCEvl`knavKY,#tN,++ +! #0zG#_ vdfhTʆrM ~৪a OU_A@`?kIz52XZJbJ2̇Z..,1ȜsנcJeo۟'#5uVU~FT2_tӷ'jwH-<+X9/\Ի^AI`jTyǏGSPJI2z$pq*]d4Lړ' Fa KăѬ-cЀLP@2twDiP42nqB=d>O2ZԃzIJݥpC0N39@4AP}ީMw0^w(CRX`nʘ9\'oIS&51oww%Ѵ=P&5)9pQIpI>ؘeEpEz(dֹHNR_X,zt7 .覝.Iή~n|7fhu'ɀUK5OBGqѣx*ShӛƑ[S&?ﭾؔn5DqizT.՞C`w?&n!̒ E%q(->*_T^-ULR 7Kh(<ѐ$d7WޮC44bu9A3m:S~ ysWӴPxi*w˄VK&*wz4uґ.S(Յ߭pz3x-!fߦodq)L :so[ؑk + :rfp> }0̛}zLccZ{u?  Y,vO]=7@EБ!nú>sM4q JK6M +d23fk5S;=R]>$03'=- y" '84Ki_"wK"ґQQg!p>A.EDۗ^ҭ)  ?@= UGfnC $LՌkkqE!3Ӊ>-.Lq-'͌"j# ")'mO m'" _Y)s,Mv1Յ}6M- Krna<0#?0"osdc-}l^hj^uX?}51tʫn1VGӁɗ@&3Pmbd{8$RM%@(B$b(m0*/B{*8fUq a겙)[!q`tZ^O0ӫ3%s 4c21Mvb[ˤ_nӤ3LS\<53|%z>wrPU_] ݜ!W:k*SDž+tZW4ɤTDM'ǂłe(Pxfٞ^aFnYr鲝Hkgo;Y6x_InʄMi<+k9MȖRhË \Y@WWXcm"8ƌkzt́:No`qۥr,U@&ì:z(疱d;UGͥu-msHhU0zDdh.vIoxysZ_MEv؎ Jͩey~reZY9%B5馟$gq`EgDb;Cp+ncJa7enyemIɓJXb%.!=fٸ?ڋN + 1>ȃZ䬡[Tk=_Ug ]I񐧡t9u t&x%HǞ#8f':f)~Uz}1v`!@a:Pڧ +t|̃aRP0T>${{$ ꤣ2&\two-(Xlat2qp%Iւ62kmS :^~MJ~։^Z6ё}d代폿9DyDYەGkUhC7$H)%_tNk#pydO-%AUࡦK[û" +[;zU+{]kURH^Bkxn `aG%Yb.x;!9%u<cJKa$|dL\$"gT>OxC1B,&X*~(ߜt7MP/Y1AtO2C :7}cJ7zrz3jiw +IO]xj!^t:Xl_0nW4oMH|Vxϴ^ycܰ,ސ3f4s*6'uuMXt/&O,4VY[FYX47(m K~]S,4C՞_[Y(>]k8gzaLvЗ>g%ߵy.nJuʰ!.c$pkqJ3ylД)޺|UNH>\6({Rԗ#}i§G/(hy VĻCŻnHHB8W%1?pؠ&5;ˀ\5tеy^|q4? }W@HVd4L*n\h=*6EWW u6g^G 9_KH%(35@.MS tSKif#fd]V$ԁ,(VpUפցydƠVE%]n +urN{sQ/B1v1-I2@':Kh_h$B,iIN!E nT,J=%th +KDg"^ȄW"%_EX[) l5Mj!"J5W ]EnYi6c}e}V\lhs, i$7'~U\EQQ.c]Ru##Zc=YcH*Y8<}>9 qۈ GXKDϻ8{3ϋ+F +BxJKa8 飤'cvN5$b..3^?FE-o/ +UUG7Z/(\%919(X'/u{ZE + +3ꪐhלt%%I)?10ܖ`A^Hd8I*%~(Pc8s:PCt.R\_ 1X1}.)J~S;Oi]\7H˖DZ"E~2%@o+v`;ΖkJzC蘢6 Xk/NQӶPeb4O?yݑ}&+e-7ĘHQD&1WH#%D`Dd%^YnŸ2*{H;CMO*S./ ǒj^Pۉ?F%/!ICXzC9V;-0{ñ_T5+dlc%$(ͫ\˴[+ph䁼9YIE+S8L*v*;&Vr ;_WKv'5n,Ԁw&1_=;.VQJOuq '6luU^ 8|E%LDӒ>pUϞ%N82btaw^lPYXSφ&Pl¾Due<]>V0aG}8i\UK("U1h ix/jQR-{Cr/nw55 +Vlx9+mAwA{τ ׻{d7(RB &{ xP݅rg6se[!=xj:ҡAڴLOD>$yUQZ1T_dԷ\ђ^|0l}3>9;omxz^Ss7^!x* /n#NI#3{_? +dE @xSDgVG?%86]oF+܊qZu>̚A` eRa:#e;zH]sƜ椪7@7YZb:X\yq2 ͺpAQ6\oOӞ8Mks2B8s j lZ5`Xƺv)Ky8>ټ3vQ*'-j١Q]-jkM/V3o ϰ$u4XW3:lm:m|">}l~«{m?A`kv5b4W?=u}tk,.vT}::!op Ӣ_V+rԌ(.84uo`@ چڒH'IprpH~G0,~?yy1quZ9 [#;UQ`50NDXP-_&̳OZ}1i[?t)S1خn 4ۿb<9*n):,}BV`  +nX4B')Rq62&Q©mf+)N!ƽSb('(r2oEdo +Y >Cݎidsڹodugq/$'~;J8-FGn0Ó45EX6hA.>&3Ħ ANO^3E94tBHB/#"1PR0P?vhAz) -\ooMM! B "^ K [,/-mE%HW&PRPjVh^ls]# +}p9d?LzڏEu="6ҁkDxصꕬeoA ||Sű; #sg&|m sUas5ڋ$ _u8d6د-9I{m99 efZzEJ|Ey  zm#'z0Gy}jCqH5+F; ˆ3͎}l +<ʼD(wlvR=UE[9ŵ6L9μnjs8=Q胜gf߉ y K+!-[Wx \^\d-9HWMa bRsNS%Mhr%2-E1NX"h -#L"Ry騸O,KMom<<ܝB&C11cFt$ 5xW}#5[~Vx_rT1񹓊S=pC ~aJ:/VvY70q{K\1¤rӚPِ ,Rj[7틢BTF/D,d2;L6,{ Z#ð%SsV-A  >:&?F  H(?~v}PK a0y\siX-i"u ʋs *%Q[.穽a>Kg=hy2a=kY8 R]- +*C.Y<,*hf~LS` H@ &#d=:*۱:X#l83bzH-u> бj;2F&Dvt=)XXYq))jDYfT6RUmNraLJ)c]a 0s!Մ/AZ0`Y;;b5$e,h3/=7[65(8"׈5߱hU+.cXI +ME]U_8:"h*aB=AדVu;+C:j^ ͣ)Vx#[U[ܢMM +[t6P :tKޓJi3ks;I,\;dNMn~9prF]Oek6r -i(wDb6xeb|";J*P[*ȞYlǃb/WiMۢ^֋6 " +nYNb^ +n ~ˣb~j<`m 1ѲQ.l۶m۶m۶m۶m{ٶsU1"ygD;77lKU5mb=Td +cjob:²j\#Ӝߏt=[wee *Z"bVyOJmVQIRVWv7%VL7>O +WiaKȧ84֎V_L` !g֘+kI!8-uK=K2d[%~uc|fHavp ߓKgQ"i29(T2C$G𜩆gmUV8Ky/+Gg(˰Q.JѨqlliIplbqwBW_4gmQ0XRfcqj|S6Ш-uQ&WF!&z4$ff9`1ULuLTJpgY䄝 X "wIiFQ[Զ:Sęʉ-ˣL^c:i(D]tvqV:rPo hH7ƾ\%Hytpj~b1O62eĜXC +W77J\nyGi`N#ᾠO3歿w#Wj`BJ$ȷn|@[#Sq-*)WZC<>Ql8y.^eZE(rM-o.b16;W.`(dj-Pa9kP2#z>aiish4z @[n 4 +3cq$85$ҘS+Ӵ 5iCw]8Ek4ج(-L"MBuc,6WuЖq"G.O>ʦzKlσs9 9\*(j'g²$\RiX9|ɱmNlOgK*h-@\yUW66CiGzDhi#Ht(…/Jנ^,` +>Y]:Ad"(h8 EXmP4*~Ǩ)?7. rql#9ppkI>6;d Yƒb] ^Ý +O.M/=YJfie+a3 lC|)W vS]eW+[ݑ0,r, +NXY9]ޔ.nH"ҧhe+s;8WѬ7R]5o89Oӗr }\)Dq4Tw}xDжFsΊAG7Las't|eF)[kȦ +r1`yc NQG]k3msNQlb/Q>-d5iEcXYS /}ט+G|3^):[9{c6Ѝ˱՟e{k''|Xe +:[$-1X\S.cBW#:AoK"z6yK'q9ݢP,q~%gKrRKGZ_xfzjyE9އ"wHmȞMyP|My{M+| vP0C Q?pb7$1[ku⍃t2cVՓHK7zOWKߏ}p\>8\TWZD|tXGhX?6wٟi^\h>0dhtwPxvb0ۊr) SoAACTqv@2錨1IEq2&>fVG 2e"X7Ih()$ˡ$d}%k7&UL%I2Ky~ zIqw!=p0OO^-=>cX -=ޅPofCFh$Dq XVAsJpp`/h쩛剒·D8 yW9d6$3]Yes_4ÏX÷PQkh8BAņgLh4~b6MIt2b Ԭ%V_x䍰2ja'*DEGs]4KNpsTqZJ>Hkx^dnCd[4 ED j,[lxlvBpP] d)p%T&kLWL$q4T/͊ QEE}#ORdD+&2ƥ$) +' '?%F ߈(eC +%x[lHJsS'{׋a(y%ü7~# +y_Z"D/&"4SMo:ԓ` kO߰MjMQk2̴A ,OĨ07$% B{E& ~!<#\\) a[ 7|J4hY#Od]n[f %./;S|N0X>Vld?` xM %^:<ѓ#pp}C Ks({6[gp*#~ܑ/SH]1>l&}.߄ QoⓋ|HSrn58Uo|^WQ{t%( tT7@h=כ(AdI3‡A!І :GP RJu5@.Ԃ F5!*c@ mД A!%l5b! ٠:c HޏW rPP1D; )D/DiQmmk* W Ylڜqn=#IVäٽm5)_z)7bۣkBďҞp ^+ `M 2 hD{ ơ"iy!R(֒9AՀD!(ƽy# ݐ0tl $-)Z0y`KꀏL3[5ɏ +Yg'Z ;Gv'xx=!X_yW78B_d|L`yMHtcNklVMR+6xZUM=v>*$Wt LP)(?% Tz'_}:-wq׶/3 +qKjI2; VSc @ʃI(8MsjAf֎3L۸:.$fLqW9y8=YVTJS#/v w Yj=/t^w<쩤sp]6K߆mFoL.!0c\&0jeTEA-5nl,ńx@9Rs1&_@GL; "n =t2!nu\\q$.?5Q8ſp$vL{;&}`lqO%}x+X |nl@|`N,A0[]Xub dV, 5Ǚs$4eFV/ꑅ1?@HOJG!Si驴ĺ~vD]ydmvmf'-$h-Q G|ưh'@ʭ=-7]S˥R@6Y}ʪf+2-7_%V@F{3ň{H0]m9dB#h~oe~y&ݴ.!40`^#v|lT1bhAc*o1#AkWƸŊ[sdqF vBwL\G xڸx(ZcsxT!Nkqџ@u֟s1+ +rC@J|to4cwGt53O}b| 9Am*P>V)aRU/*|J?qdܲo"CHT*%1Vy%V$g4V,{uCpJ3U_E쬀{i~qh%QV]UU"*ƨ%.VUH1U2*C U:C4;hn-["aZ÷Ku? +#ڗ,qZ|ʀZUb,ҫUzfխN5ViTB)tUyu[Xi:lձ!&g\>?R~uu+TڶЫUZesV9M _^|a4OC X\@v¹]$3E]`6$$ AYt윮prV?rPe]/`}+7ȳq5iWŌ%HJV[:\"[Dr3^->_*^h%ZaJ$H/:ؓf$s{<wD[Sx'׽ByBZj>;izȜdv@2ТE) {{"l/نS2贪Qm/n"Nr/ 7_(s:B$өn!GV{4!%':78fvq8ava8*޾s+?Y>#d';7`)"(-hG]<{ cWʗ+2WoCY{8t9sdُ= ^U6Q̦ʯnBI,?WѼ1G/EJ&ܖZa 7q>czЏRz1ˤ!GԝFUԽE . 32rjbR?f^B:[=#k x*r==F-" QtQÔ?2_mͰdA ?z[/( Zt^!vH¡Z7Bd8+/^8;{Pp{+~6}1SbDyaO˨8Z几LMSGT#(d7 u{WARӫ^A*#++_W|%;,Jf +1,vGft +dђ"v K:Zq;kh% +xC F b=WQ >Ee #Dg`ΑGE:fi3hX͑Hfa=ԱmʞLR?ؤS>:yT}n1~IcaC迠(G'1F_qNSN7 b?JűX:ja\'F/fJodYN ɸ96Dqt %9}d[nErTn)Q C55(&Z[nieӋah ,hlh?O#J 1QMi٬f9ue n"bM"'3AUI{3/ߖ&l.҃,~v10vc I);p1Erl!**F 1ކ,XB#6}){a#B<M=F` X8v8c 5}q[l{-΄#]`9ԓc0Nc8lawh' tPv dbF`INIٟXA,DaQ-bt9Р3ݱTѺȃ54Où['QnuWac +P00Q]O?jipN'8ؖz#lj77=1{p-$:r`ĵK^N%Jn{~6矹RWۈKGGJzwC_P7ew;+ᑡO"u QѲy㹧N(.Q>Dؚf. P<=܄&ܥʡf䞮!eWUѴ΋}5 _͉ |rހ>ڙ]~ G1FcЎa ]'[w({1GW>.ҝ1̞'W^<| {:luaq ׋rL1C6,ڐt} ~Q~Q?= qf|9hd}ǁo+& n!?iU~utvq㶧bzvMc[u\6#NI/O~wCnس.m7kᇴnqN]n}L0G:xTf6]ʆ4R\jܵn&jA)u8 ">;wؘf2QZwrv%+H-vDzm;=ζQ-;T-'n:m֝X8i_eP4l~Nm*#ί :@K$t&KD8+4i}M|s5b^mh  t4l4l4lٴiX铤 NGȴmHKR1tV&NQ^ ;'ɡ^m;h'?RWߴJ{~M=p +_m6GwՋ=`cU~ႊ{~~tlb| Avـ@ o/︙|@yשTaZnpA)cstDXdT.θBI]-'HW ݬ|`AQ: 8fqsJu 3Uz!+lw Ð _!hlob* ikhn6mq E +PҲR_Wp5Mp͞-!㺮;[(ǜc2&e!g= Xfy0PxB!B흝!'KB3bHXpKHMᝑLzE85MG@BnP6uEf[uǾכSYKKN\lt:li!prR,2(7iKR*]v]wfSbEyK"cq5Z5I\fj`Ud9 +isDi+Gr#spԛǭmwO5]p9⛌4LhfT쌃3B(REbrpl:$5ViaqY+w[ +F|Y.)&; @[s*#ZaYەnb9!̚!9cwB^udQYvVW$\.1.z|n[op@L7τ {w,B ȠG}uWeg:Fqb~3E$ܘ(W/Joo +n90?@U%K),6vZWsB[~Qf=n ^-ލ`_=.FI̲R}<3M9z(,6 +CB?|E3A|܉@ޟ E+υo(z#7zGPS&b"ި5užV kcSٟ*-8G 7)I?Q~jTAQKơeȄ4mmKrު/ <PeZ*YRlu:9G$q)3GX#6 1i/&44c|*y N\N<a3Vw-`WD^|dGmQ*dˏdYRqΪAk[ Avhp7N0M̅FE82qD &S'b4,ZIIClد<.6IN!9-esܣCS~u1i㋆㹄+;#S[*oqMigS۸p݄# RS"+U nP?;hy9ex. $;ST90,it`n<- +Ub?#SENMn2ҏ:nz(В fBST0}Grzi@@<``:a~]4Xo900 >`:e00$+ņV}PjXNXf2 a)pI$kt#l8 #\0dtCdÎoG#+#Eώhx" jqk2qHXPs0_93+ L裣6dCXgV_ݲ#Yd[CCqV~ V>̮~C1^2!e?i9b">OX1ԴsbEqD2;5*ӑ!DŽ;6)PD"G)n *Vtfg?/_hx֖:X#Kc&KCy_Ϧ!u$с^KҰTC=Ks c•k&=a2p!P^·!Ov_WE%d?Yx[jRdžpW#0[ÁCQl^!m>(*5K"ide te;]:똰3_dxi־&W50]:_֝]6Uu ym2h&YN4Y%Y %9 ǯ( +*%PBb٣O~4.l-R.wۋ6K2#)lm =>5;^zuxx`ztK,$/#J [;Mq%.sex ߈`I%.2DRģm/^D1_`..y C9C31dVşle #.BGLuz[4]j WnܑҴVEacZjNʲs["#$̌(y!LJB""H8ԋq.].IXq5?} SP %WDU7W&|K"(%SE Pb7EH7Sdb!I'(g +H[6Ir_AQa-_'y4VJ8}d>q~iBvf*0jUr q/_p&j¤Fxh=0NKݕ>_J\˨|TK\VS4Пrx4 `o&C ړ1+PP/@MqdFfᶖ}'M2k^/U*릺;DJrf2|W*5{>a>Hxԙ빣qntEϨ,I;5 o91[,9:u0Wk)~bs!k5` RVbZLY&t+S^p)YϨС RIӒndfbEfZdnV`H\e +N J YN wD J +@po &n~<ӼGTbD;_ip0v-k9>kbڮvvk09 0jo (67sBzĹ.qqr z衼ӴR^}OYd-j5iyՌN:w#0#/M%#AAr:D2y?C(YZXW%sʧ^3NA;KzVx0-;-oI<<7^ʾy >@M=[T͇VAX&Q"Uw \*N؂Pf*^nI +Ea D0ֹFh|$Z#7ξ#ʻ;Wh~]E{lڻ!È0-Sb[kTǤ0%3b&X$ߎO ^pjw%;au5fjM9w1XiFbqOJ +-CW| +x`dDLKKS֝Ԑn^x|H/^c^.*P[s.sg5yb1wdl`w& ܙ%E9ǧLgl'l)w`"ʄ"!͵Ar*-Caa=7:mIv\U=_Rj"jt{uzb;D`;!B1iZy#wVy$\ n$^GH]$a8T*IKԠOK XTe|$ET@*M|Uk,9M|IVc%ܹލh`}pC4334v54/jU}YoiӤt +B೘JmPKDtKXe,MqS!!D/Qa%ne}ǩ9E(YiLϟܻ׷x~+G:hÂ_p"5>YĺNSY {0`")P|YbBwBC,c̞I2N]i100i?dDVR-Ŕd_঳J%zGVi:-sr@NyYPT_:x =`XSW5E䘂)|pf| VbdJ;NLRAD#g郣ے`諴9#}S2f~K,L鋌aLC&n<ݐHډx,n]2v';EJ -)EE7e05#gmQٙ3gwLJZDRAg\cS, +"S˱QcM 4GgZndTkc E@8fbk lRr)CSRrq#~x"#2 2Dǰا17G#!Ȟ@XZ {*9)Xx9IX5S؜{{9);(/{B>$!QBеU4l0ҕ%'-U4]>[Rimm uCFDMn]*#fb'ߖvyB).#Θ=w((odfW3;8(J*2PNIQ@iog6]PkZWmvʤщ4D2N)kgS +T- NI w_ygF Tp܈aE Xizm*;#+nIdyV>Z({doz6d_/H/Á$#C#9lWomW3z7w!y31iZ8<ֲ:,k i{B/e5d2 Cs^hEy;̭]t] `9,{e?>:KaJSI k/J`/i.'uXM) C iEUt[p +x +?\6y!YǵU"p6ÏB$NhfIWm@~8K';@+E6 qir5tLt|cvx9ľrAiy`_1 @xZt&@gKnv2h)H$C+\ޔܛ٣gy(cҺasZS&%|1c'Dے"|5ϝɵ ^v6ƃBndt1Qc.?xe$ˮE+!*&(y?GLlCٱk36ac[8^, +GV@A7XJ113MXd%QDdAN%4x$("䙌v_=.ef]x^I=~ݐ!|U:ݹr8>TgLuӎΗb!.I^# +l>s0j"(D\JհJmK!~C\c s- kS8UQI5)8ԙ! #RäipԵXF^Zk86EY.G6u ꦺ X\Y2}8`wuL T5hZbj^4c%YL(1QܶV^ynOCjucg\n^^_)ǐ!v LQNǬcȨcJ{ n_<\=B}1 +wCR;{{ e.Q!ڇR<"o7؜r= }F!Wި_t1-^Ð=`t %}ut(` vaM2`yvEP>"ÂY K2ŞP{ȍ? }q{>DaC8Ƈ2Dr#w"<`B:{;KH0a@F&҄O<I e dAoYʮqTe%mY ْtu YmIddqUeZu.:gtY1*[ZBRߍKai2iOpٍ1^פ.,Oqaa TD-xm4|XZՕl; ^equ]r58Zy؉Gk|!qC\RҦ_-.= yGTٚ%Pt^P3/ R懛LS,XV2wGxy걔_7]ZQ~ 439|̽e|Ѝ`Z'$LN` q1鍡Azb;qaߟ>;ȍs,2 bw3Iw!L58~u%\2^"%?p=%8OCc<$e0^wu6 gZ_Wg^H`q|&- AqU %+DFׁ3Fh}- (:xMM)@ 2O͋e bSA.`X>fțH^E#'yۭ%ULp*K[fôoKk٪Zփ&IUmc|Ek+ +_,_qã7K຤#PP~+! +SP2W@e>U8GW4Wz{{Xw AVאJ#/j|hchCJ]ވr1~ -!{Fdb)[3,{c.z0Vx ^(W@|aen^~n?ұs 8}/'%R C +Su.G(BCzUI=҉rgR6@CӶ@ ۣ/$({oJ1a9S@QH^p劼-K̑#ub7$'rܐ%.J)QmK0c?Ƥ--q~4q TgACۥX_xs|\k~4C!QR1S`j k>3Ea{Z yW%^?lkZ/C"t‰+ц8/ns|l>;1I[g´pFWpcxF9S*ץzmx T_mד0J1Z:u^={MbwbMc &K0%cya9lI&`I1!m! mv8a=^l4LWխ}}'GTIxio.۟|Mtsȕ?$=-|^@t'~'|KN6'|{%<Crl_zLY{/]yn1## ]y0G#>8NxIt.ez AD/\9sND.+hN]b}ų"\/2gG#$_36x y ]o$WgE@ҘH'1KGRiS|3j&jWK[v)_ 2ݚɣ'pمY9$]C ٦oZkL v\ Ȋc;&artg1kclg֚HWtq# )4kg2nH3r쒎#ry_rn`MޔM,iNM1kj]nc筤)!d[WLLAV􌜉sFa'[ztqdܚ7FjՀՌlUs5;%JoO;dnXc,hMdbdj ϠN&tV6Ric +ũ(MrJ rX@Z'8zƬALJ٤{pr;nemr;ƴ{'Ժ&Ж?Lg +h +ue]Q)ԝjj^bMę#Ck6<k3u:kZdNcP"&Q{yfzCUYmN1Zn6&N=l\7W3a\P6vJ+,+oݜI6߇,Y%\Fu *7rS2}N \Ys9" D4*5%Q +&5FUP ҮK&/ڹ\ tJUFmV{"Z%6FW3ulڳdi(}5:d89}4Lc9\9rcAt ++̒8Sbb#% [wܻeS?Pf=vTo<aH&SrDl`}M˖71mg`˞' +F?xrճgҳGj؞}!t,ĄV5HdvfAݖ &gȊ}pE#0:hAuW;bjh0TthVt6OAJNa5yD65Iɠ3!y:Yo1VwVl9l#nl)ġOj@̶=+%@Jh Dݲ0A}Ob%Az}/I˲NT1%fZݛ8UZJm:EPm!Ņ"`0<; OVeJB/wj )oG6MFv)Z[֮Ll4liHN(\l|پiaarfߡ>S\ݠyU8a)dFau+u)Ys8z*˯w%[ Nd)ȋ!(WˬַiVOa[P~vk{T:iǙiY7mW߸U[>N2؊A[RE=#=:sݐ u t:/.gBzOl[pɮ +ﺲEVk +fB/{O蛉L)!-u30GŠm<.-['U?gKH-#HZt tl;o-{Qu |!|ԝۚ#' ;ta/;[r{>+[n78C!.+] a[~5l%n +?=Q,Ⱦ8 !p`8ēXpV"'輨—l~V֋+ȝL%_~'x: lG=K®K%'%MM!rP/KS/}lD. r !Vo˲F{L&cc.J$NAXDq8٫B\6VwnOz˲9^VW(3Cy!>#5~h|TYhNd[ŸZ#e+MuvbUDb@-v(2ʮpϖܣ4/jfN)vq)Y,j6޲E1{uF`P7)ڄAP`gω= ?m|e@.߅\t|g?)q_(rYdߣKe[_ʌaq k{,+H lcVa +>tlǬfiRv)[ziЅ +>+6#{3sj`u +)F&AhRTyCڄY P-c 1)*EEJ^ao.`X `Q"<8pRn\)v"_ 0{*q\%<7D0&_L19//B_79w3]ߩ:P=`_C'Qd"*Z}\.X/sA1W !(,hƤ&TG< *`x!Rj1GQxՏN๩<%B/R2H;&'<o >0/9)E/O2nۉ$|m]a^uWroھ;` ;"n)o .,iHDlCtV㕛"h +/(ER8nRi9}e(OۼcKKPhZzAkuJxvJ ;h<|+mlcTD{АD$e$VDGٱ)M@!B/k[HYt^wWy ןIR*+7ÙagǴtܿ 䍥f AuFQx-rQ~_pd<(*hhZqB:[zP쯾{"j[XDFh!%4h(*1VZbE#",CE8Jԯ#KA|Ҩ2)p.[.zfd4-A|ZԆW<0{lFL*.L|(řn`ƑnKWpڔa]Cn<)RBF vv+š)- :˭w'}󰚎xqqpu-cyiIJcR"ZJىrDz"=]WF6`ZNc7-(Xm*$\<[܎aWtbPdte3s8cr =x{Ȯ.DD0jn-"Sr܆PKJJ&I>~xc3vS Z1Au ~hm9Y*8Y ApP<<Ɵ8$ii \zV8.1g=bn]fZٴlAcdCq#N8 +dsJfmݜZ)h{xJiqXUݘC{& -j譜%sE)9"F^@5'-1PDI +.]p.|W2k:xN@ @fk*RLG[k SPj@a0PKa*e=Lm7*>Sܟ'C^T[cauPUhU j@KP\U5-TZi}6W1>dPYs1ϴCM%yjv.3NM  Eytؐ)Y:!۾HZR-,-KeWD&9GT+Gu ?-LEݜ-C-*h9 W@C=5gFYs(`H^#mwN!lJc/lёhcB½9 [6u .s}2%yQPԓ̚^^ۤ$?m8J?Q'KHmPf:'m}aH>_7dv,|e0*F|l/Y<9bQ6Yj]a tӿx(XNǚ| =}ѓ} f~=Co=kP{x ++Z*/ +3 H|;5hQ4䍥*Os[^(=U&۞"f_9+8l 2oԇ̢*@[P_E|*BڸFn˼6&I1Ax3#dW(L7L@IH\ޠP d]7ǻP"ހCKX8V6OI}ji=`yq)4tuRLCdɺTN=1 -^=d M1=%egP!F@l16cR78C#`{ބ%g6 7c1A2oe}GSԅ8Yz@)0) OkLۨ)zo 8%wٓW]}\;uuT>'Bh=8=6cQ>/GXb&0n=W6Qo>A`߰Q.(c"N=JU$ +smKJ[JRnP"|Bܟ,Za'%= +ikyyÞԙL'Lvt2;<Ѓb<jc+Df2 2yy$A&OIP;0`udFfSV {0: w^7ܣciKf]G{ܫ0\0bIx8q#$kn)pkGeAҒ[+jT cm1eitl7%ƻ^W=lKݚ•N3ʄgOtВ6u)*)-W6iaDA8g*ŧŝ {~n`C#c.oi|i20 ElJ$N!?h'8Hvb}t apC¦GYfL>aoqVD8 DIir= \LV.%3dΎx#LҦ +Ƃ*4% Foj1s\;:7O"6Toq7_J :9]IHA?:vžĀS`ӷh$nKi4$UyvNj%.A tV%?<*V7S8V8__)cdAfIqtwvѰF+de̲E-vKa"Wٻ]bՖ;ޭ)^a+>MƘQWaAcD[{-xL.2͸̶;dv$ޢ dEM10ϧQ +2M?c&3֥TMJw!usHԝu-k:t4SHPq7ۓ_WH#k.3~^ȣg; !lb7al;#]S;G듮mdviC<@Jӡ߼|8:W+ߋXl3J9R'wUM'B9l;qmQ[Ř6[`9b DL +5E%k_J(#a]3+bF~ g:o@;{an|OpZZ%yasi=`?ۡ,CC xݴؖ!x!qx"d;oyO b/ٍc/d -%!ٺW~'8TNS+rΩ5S[KW2ڧAo4NK֏ds2O%C*32bvQLT/ +I/M4SߘvzᏣ\[;wlB%}p0VkL: + +Ο=N*A燏]ZʄXT 2l p4UL,7RK ʝrP@HpQT<$W `r<4AFGb¸سQ4pzITUKf䭇0ܽ?K,!ڏhgiKkԞI勩ܔ㸅vUnDo=6'PdCMnF;S,Y"L`Ct|UV`;r:.(MkJ0*YYѷKdAbQ\_ ~$?Wg + ?1݉UvWVEJJV +.Nh PA[lӁ)Cv$޷sҒ$'*8 !bm@{7|榥5PS#6ɳ7{52,6@ &wA-Fijr`D(\v撳8(@ V9WLx+ݾO<ّKҜi Sɗ{RیA@EI}H&XFzXV %~t&0ԒA͋e}xh +|҅{q0-铽*/촺Xl&M:pZ"KHQH&OfdkBIM+ZDULCrx<ΉG{MzL7;43Uj96p>&T1踜+gK?$S3 0uIN +6"K.:Rr\kb ~S # VK,0* ;9Tarlyۀ0$6s>TZ)P-HHaƛ]%>(IL,8yTKx~@n&uM@#닣d5Xb(}%ˢi|_%%HAYA°;^MZi+$p_`@l"H {WEWF J!Ń)4c LOxSl*g > u8zΔ &&5t" .2Yel%1SD˵5jC(Hs@7J)Rx +ǁMr?rQ~31$#fOҐPR@6"yb^*ץTKZL_Kc6c+I"9m9s'YCDEU;M'XwA²;(=FIrt"J c-'e.ԭtO֐8S8in W+YPdT955YMNlѨmO9͢L +Pq4ЂRj/EeS{浔d3~7U+a#HlLI4":Kىa->C5bEfHR_P2rӠXI-|vHN']hQRK`Oz#%;L܄PBrlln.Lyќ/Ga1y,;%%=Qߨ4ܛ OnD*RjHJm;Z`,9B;ƈq>;B2= #I:kj X-Z9lLQtO3+W:WHJ_2`Z[KPLd= $7C3fRϬWHޡ7uR3^?-nv5 + 'Ch,~QGlOSdoqHntfVD]Q6&d.+Uu c8v,B!PL#%pup&ڳփI +0Ҡ+?9 +rM7}i\ד%NdDgUo/CB撬u.or(g Kx,$zphCWb򣹏ȴ=۷WDv%< GqůzH+[c>+R=LX'JZ"[^ 7Vd+O5 c*2e^@k/0eik$3e/8 e:Jj-L}R1`Zf |\) &~^bږ_yt @Bz`P8d=̽dL5JA }_0J9fV϶Kw] ;AA8Ddr|aewev/II`V*#7hKCQL@,|J))fRܰ[{ |;Hl j?'*_,JըGDN% S!7TG&hݎ~Д[ug2Z_lgWH*s9sor'>y c"MKZSӮstO?5ʕ|Y#77',㒘YmSXұ+^ O +l&>U +i_ZoG}MdDzcԉl^H6$^O1Yf:Zїh/a ԛV/ȥ^5M}B6L[ք=|u%Mf&UNG FI%99 25VV#%qEרۍ]13|1QwU/ѢƚQ|5BOtbUMJN9+տgl@ԧvm \ +Xiĕզme0>T10rZ})7TGjB҃@8te[̤!l!X"Vkd@<ѵTo!X9Xt7KVodLIT׊7gNZFI &`Y祭  lΣiж@_| Z/i-]f|.Tm5FLmXkuyҺ΃kpi2jp흹<}w+6f[Ȑ>"b#g[NwMȨ=CI˶ͤ_OҶ<"> n#tXNؙ,^QPj!Ux^݋}RwSYƖ?Ił"pY` +ֿH DA_lm"ĀF?h35$lk:_'Q-Qξ&_ maQ\# +yy[qdnJnږ t]v?N>Ufy呁\}?lZG`nVg5eqw-tx; f)=[Sf~F;`zA|n)̑Dur 9?&MVB>mij CMѳܮu:i:Y?9z= #]獃7y5^jb@lf _b &-:)/jԧR`H^C@яpLDU ,,v_]FU}MsWIhȒE:QdWdqSn#xpSje}vV_hmH|;13ZjJp((D`J` `̐;sq$&G[ g"bKWw9z Wc{[(V? EimF&s9.+}I>v!DZ9\[0q Ɂ %$ݽM`w"%_ +^įE1!z=x-j#Kɻ$`v|=L?.NCO!cF7DD1ɰ]"*K}#}(qHø`x 6jQRzT-d5 <9Z6h4^Poi_OՐF4c>HO=qHz/OPRB:jDXލ* Wd>3ش"k-蓣 ܖs+L'@?gGT` ?x!JO.sRϴE*뀟yK,:,b`g0f]_WMt%niWDO`\|@>V^,OwCIw3;_?fV>*J)[$IptJsm V rK1fzUs=gS NX XPI3'ʡ/RbAv2UԐ# &oإ\IeXP# !nRP])w oסՌbљs6{vqk )&i`2yH9>kGXt&)dIGG/qpT#2P#q +c L̷PNL%z$5Hخb8 5 *ߘb~Ct#;Aj츬CJq|,XBJ57&Rz* K2UGh~"_Ǻ?@AO-U1SuLy6!Kx|ܕ,j4¯M#6BSzh~SfJ\ pw`B9ɀiPU/ +Ze%(d"9 +CZ&BγA=gěEciSm"EBݛ,ɥJ_p7 +BagB۴Z%~qU6Œpoh^?p_%~޼O*\3 +Xb0/..#d7&Kyڲ(5U_p~a!?57ҽ >f=8fԽGaLP`rg_eeVԧg=LO%)8,[GQXfዅK~9udtJvQH֤4$l)rqT\j> Q қ)~ZO): .)ǨNJBKb({*?E_%r 7v)ʟe-}-?縅6[68>:˶ \ߕZZU n;3դ[z:=ujC rJfVZ<27΁$n^v->Uu6~n"MԝP4rlJ0 G.:97e(SJ`o'.SQM8!,)k y$;t)~5r iԐ _<V~Qam0pB~p47k˔(kuhE7"kj PZ3$~_L I)×Rފf!(}dh{FRsL!0ƶQV2>iM:9!A*k#D,3?\gn(=q36rQZȻXg#ۚ}yZnqKBgup\hz,7&ƐqEXM@h0gI!pbcJrpd?;qǻi*avdV6'paDGH bTIeχ$.Lܠ'.vfpvbW2.>Ϝ\=#g$ޏ%<&5 ϿsE]j8=v&[f|7 tqdLPQ) dLk"S۶MV_pu|ЛM xųMVT+~ YZ,aH>F͞%` (듕8h9F"C aAB$D*fH+Ɔyرf;Ah~b3me=ITVn5 +jkd ͙ }i{(I8-J=.ˆ)) %=M!^];4UϜhmXJ޸']tbus0WI#]Rtvz.n2 qnpnb'1¶j03;ӿ:B?|?]P X.4^:aX7Rs^Mpǵ%؈DSgnFHa{%&^dpc}lQf<4,,46 g9Ƙ7|.\;vݶ~vZr69RU 2Ðzse܅hbD0[W8d0cЙūb +3ݱQhWWLt!I9 V|c>hrN3/c%LOդ*jw'Me`NWeݰfӐAGy}5]66CkP*6^gilޕ~lv(cN!umFLj.??Taa },>Eby}@,@ճHwwzu6gtT` >@: 2dQ"x)(F74$:bcסsxXsTJLLnf0HD#qn&{W> vI8%[\GMr& kWddtf?*4[m&HJABtJȟRL/oa/K/8R.zO$`h>6P -췴9v$KECJCjwa5ZȦL>:Aяtq^\Q'3Q>vo]=Wgo|T/~{7#T{."WAߒSwa+;hޡK*CخUM TdWZrz=CurhaG;q.Y-lza% YEzȔyإZ=ӗڗ%I[ߵSK#Fg5Hc4~'(V&mip )cZ 9He#'#%/jzɀ3-6 Sٗ,,-KGL*MիA74JAvpMjibF)km͆ϊhDQU+eIMZvY87Zo1@tq}<ƪMrjzLneJ 7]DZih1QL6ʂqƇ F7ua_qXVlMUeYN Y L"oIM6%{5*|Q-%!;~ 9ar)*Q) +F"샲h ҶK!Fm.Y|(feJ7rP60D;i,|ĭahh7<#f4`pH(AVWc#B Ki7 Xoud/_oQؓ:+uwŝ\Zo嘫-ZEsY(Py1e,4U@\L{6tٓhV M6_Prr. o0Q9piOHrDW/?r +S:wF%.@{3sey"[g|RbN#tI^.[xt*{f +Dm\ Zqœ8$p9\Tq,I9,G}?Dtj > hsg B?ʁ;D4ɻ>+ 'ɮR64j(iwW6cH&\8B{n3Knw2\6R\>3LKҺAp^+fbam'3UAi-Ʒ(3v|5IG|5mS<(B/Xژt_.כ\Z?lL}#F} hH #-غX,@Oh6'.#9*`E 4%$Ls럼Q䟼?ģ/ *k[(]U-Eg>Hreh($WMFtAe~7&݀:٩,ϙwϖ]?w0>ZlMM +9Bh&Th54#`C6B O3cS5Mh")tKpӘEqc&!րd +~T$~^&{Orq +JR֛Y{f8qǻ]g zɿ|KL:t-FM +Jz$ m^!9 )}q:e";27ӵ:-J|sz8DL8(~nV†wE.kEt + s5"{/\ep5\ɽM={IŌ +t:p}~LpjW6MhŽ@0$v⨇0(o'ȊZlgnSX$*n]eܞȲ;幡ֵVp> | %p9P+97n!ܵQ+6DiGiN{5!>&k1Kvķczt:{C*Xo9еE^W|E*UK}`6k e3qiu +/y-Pty:FOfb=SXb?m $&oyr̔-tuyscLwHgpzB09"!:xMTdO+xa$WO]A06UE5Z>N"fB V +Z4+rEX]X& +u!WܐS>lѺ3!X"GTPz)i"㟘~-nΝZnW&S,el%DzNI%sZkN",A#J}% ! bZ򹈩(r /@#yA@C]Wd2f-s*R3;)_ϷPTC @ѝ:) $(B+QP8{¬JPGSZЇqѥPe؛V5wij36H[/pAot@qVi\'>d,қ͈.kd΃^OThcS#~n9ò+r+r/q7]5ʕe^<珕=#ͶT"7x66/`MZCRViu6ϵcz**6'pݒI5 Oʊ3^Z?sĆyq ĿD=cA$HBQx ~2{I{Zp*ЋR[@Blh%DU&H}R}Myˈ70 j &p@aKPC 4HK0F 2#hp?M5$[Ow1DE: Bk-tnU@| +Cխi" awՍ czŻʘc@P +Àb~z( +SicB.MAܞ0tm5K ( mvZ򛜷{vߚ 7 z8rC>QfL ;G#8Gl U$o@7ꝫ|dm wBtxGXn_nAdCrx*TGe@vkWVFoMFL%Ge[Xn (Ka/.k܍;e";l1;i ŏ].u=0|99r:M %|Mq'yI +ޏȋf؋t8uލ,OV%ԕ:2gp/ozp}\QjhFt~`R [AspnU)klݵC_^Q\C wtnĸ#(V,3ɗ6@=biGb) F%*T ]D -*E#Wãd 󞐋cUH4EDIep6X7>2 V"xː"qrT7BƁ4W_SB6FOB#ķlw; +DJ) }a{C3i8]f-iT> \ʆ@V nAmȎ% S4nFqV.Fl^SnD1#CrWM:7?P!43 r9:l6Ʋ^C+noi5a{ w=_ER;fD}7 MwDzB!JaHE[e%t9 sߪ:j"` 4A(M6l},qEV䙌4۱m +^KWx%*7Mh;*-?DYh!g&U` +i?*D, hBTQ*_ޅٳ**#MrTTUJ*:" hq@ wmPsBq _/jd(|6^2(}Zq[{PqDP./fԀԩ@z⏒0ݩ1bC_xV}F}[X3ʑs5z(+i<$#{=ݴX#,tsN`aof|)Z[SA 3ol:9v,XYo^i;&ЬLU@^c[J_Q0XV(QsW``I1ӕ_}iܢ#qzۚƎZgj04l4IKϭHXtT-{>[k[ˎWt@lbR29"hDџaˣAP.}JˣA5 f#u3>]0;vDrbL ~ũ`ը`'Y].}4j8@QYnX+)wƑ`qFKxgl|k) +'B%dgjgj"./g} +ۃdJRSR5 +2VJچp0}^B6zn vr`.[͂T%ZrGhT!(f(SVgvxUi׍GSoK)4ss>x+|/ t$͌z@'8#NFpiMHeh"ͨ}8B`(Ԟ G@At?3~;UcSkuѳKva }՗`ydXTu#>>L#*McmTr]bVt*qhY_ltScu6=!Xz<Hlq8φ*rP:<Q $uXH84=*6-QT`=B +i~>|9:Z8:mhpJIXGF < +kj=ܶIޥn;,i2c1٢kEg\Z짦7uX2!cߏ#p$`cb| ={Z +Zgd6xm<,G&V9)xq i3ξ #uNHOu(`QF&%X CQ6l{H!Ցϴ)%_xZbmƬnj)/=o3>-$fv["m+">l5x&gĉDZ8 Mءj uǛd.mX b2wPv%is %eK5M&q͋6 &f! |6Hҳ_ѕds߸_`pCVZM`:֢l?li$;0:q90 A*d G-}^V6i+\T2*kO#MPj +&B:B; Ŋ+59-d|t? `[4+XGƽ@!o)X<&M{V{:y^4{\%ɕ||wۄ.VN,]VܤGS Wi̊Pxڈo\{\2NQOplFTE' B9tP!:0 +mX'hLjvL^LoDаMwft%fjv|λc<*x5CrЭ%*+)aR~XT3+*ʹeu쁄3?QJ=sϗc?elkG0E v-%P q;e5jluӸ65㉀f'+#^!Nҩvtvᲀ y*./1$cf.Yt^)#C:Iu(:G蚳@IH}|γ_ItN.VZ< +AōěpC^6gnnrhYYX79ZC? B̓Z;o ^Kq-5}gSkH~H6G_bu1X92 Q/,ۙmOdmv[x-׷njlv+ *)n\Gq V[OLhMy7;eU.I^XVw40p]0Xc532ɄLMdY42I([ڗ GGiLM)#MvYh\צ$ѵx'i> +-7]]TJ@-I .5L:KY<,m9p'{v(q6lY(@͹ڀzWh>5 ︂αNM&gaA2-,nwxtu$O>1sk "o3K +j;F.%tBzoVTG]eRʯ5uXhG-ye(%8a!"nCs/\l ]w Z\hMxnjr Ёpw0 8wy?'-7  j7D͹r+éteFp-_@o$ު'&eD{K"i[hUUrk D&v2׵)O1mczEYnBt"e +<ڱKRWDWw%Wzo2Mo^#["E)u$+wVs޽& 6͏az yt$}g{/ +j6ގT٦jLk)gkHՒM ١CR$( F&1vqe6:[+piX.EwjH&+bê 2{,$h ~@bu@No~Zk122xTX)gP 0sTI0ܣ: rv2g= ff,]9Fr>rڌ1#YJ|M ĝi;XWGօ5 פ6,hhKKX5Vs+_I=V\D,){4}y'z0ַ"ޕC#Ү sm_G**4o{Cd7V2{K梫;CѶs#1y2cQŎ ?:ytoN1"6A \Pj@&ۃAC=$usSm6#ō9}TG ="Zkpĉۂ\OȫmXK™GrWMsL%DVe29{.:>f7GmܪmAEA>1]|Ջ-EcO"T\ *P(4 :HOX/~`o'FK8L=À]:1RUsJG|fLbv04V-v 3e9P!:l9Lc.%llM&jOS8`_1hGwD6SuO< Q* ($gb_mXn_zLR]U*Hd""(DgVYyk#M}X9D*tJn̡V铲zAX4i81Z$r:Eqyu 4tUs{գȸ l$~_) 7 b(K#mեPSl`fʓơVޢl+]qj.|'PkԭZi7 3Xkm.L<:U2T8.pӛlCGoxAij"=йw&дuERL&e*!nc#Ʌ[4 }3-<'DG, kKBنjE<˾b$xFWwxg$ov߬J A 4' B ( Dڞ #囟)@'] >!7I.Ĥ|Ӳlga/rhAiݤ;c4Sg!® .w8\2#ڻV'O6C.!_Zwû'bI7@Fiy!;\\aac2Zqm9Hj[ΧVTD@b[sD!Q"hFD/԰'/2a s^'5z=$7s~{ ,Ho +0Ti'uF,r, i|pnmU0%R(J7骲35mVpҢ\R麞-Nm:T&UYGg^L_=ҔnHrp^Ðxw(kez vH)U}zH6]uL5kX^uD‹ǕY۫H w@u!p\$ݜʌdؖoE*ԂNBRv҄i (ᦍ$0E<2M{Z"z 9Vz.x +KFa-Գj$ͭHCd.SNg.LQyrs*ޓk5r"25-_)xҨ҂HpӰ5OtE^Qmyn,lr]>"Yq.AZ6З)2ƭ^2:ߋ5"4M-5-G~X](TS|68M}9Tn4gE>*#HM_Oő@2jA +6<{(iQ_HzFFE5@Ba @^?JnF)y#' ]jo6I~xqĽ>)Dwf%*7\,pB9C.vKT% {JXAH[E›@x@a!f'|S^FR\g@y`n˜;"cƥXB!K J$t&W_Wjɫz9~mSY(pȱEvȰZ*ϰ3P^&a6%r[#zR>-5![36Ȁx`'*e6Sk`$jV>T{+A-OKӴ S@[Wf,I] ȴg0|eKRݾ +fM wD{j +=QVˏAGD7W$: v3j;mDf<2>o֎q`>*?~))sZI %2MԍA2* ĂkDEk%Ty* +B +7;d~[Yn7f38b 5P5 ||V(֣b:oiثTktފGL 6\lV-j6n qmNJ0.T;$D Ƀ+\SZ"7(ʙ,П˒{d8gPX4'~1ˡe-vJCRz JbFJELSprQr=\[f]ߜ.vi5[e|Sn3-{U=u>7V}%=JX^|@6Pg$]R܂T{0anaohqhOYcX6ׇR햍͕m0{#~{"`޹e瞞t٘^׋v^zwLM*@ޟ3'/7{/8t%!f`\/vi Yt%uC}7 VH_7ζcxa,A^:J?ܘ 䌤LjMJX5iw3NxUhwb= XT-YWȚdÀCc DO#F&tɺ§ݱlpѳ!%mQXר,牱WIY 7E~Tq<l趈^ 0a'Ӛ^J%c܂:5vhnsVOJVwB.Swt8@'B?ʒ9r U;*mqtGV `}(j?eXIxJq~;qf3 ?!UjaF L_b$"Tr, RadXo3a^%&@SNqD Wl/@k<"RzZJdy˭tMnL=1>w5.{;!o6QIbH藾0,Q'Xk-,`?-N +ޓI9ұ_{US(,$PfiXU`gt>bz<5%4]tnw(ɯ+#=X2aL ,<Gc`^O~sTd<.Iz|mi\?盢mw= +Əls`> V{V*8$&ɦT+X?n?v5MEcEell: MFL֤n%B!ghHq%~1ĝ,&p0H,0E;H!SL>\{F,dYȸEQR3 +@+:c\VdXكhcfxJUd,dΒӑ3 [D]Hp2S`S妆ZIb +'z4J;kGe@; QZP4t&yKMVe$/J7%ڧ5FGz:6(4?A4N_b3+J1\tՖF1T1E$!Gd5R.WPGQb[@EZEiM՞]x$xN(.X;PLSsްBR("N!~PokI%-y%жYJ$55 47s&5p$ +;&#o1&!)%Jѯwrߣ`O~VU+dTЪh#&/A߱#M]P a#&0I$!D h +hBy2x9cG+4, ZmH +U/=&[%u|kk$@t [X80[8k +O1TSz(u a\ӚjH c:*(<3q(Ё+'σXLkm&_0OD\0oAbC6@,Ѹ0*O3{\4jb,>r֨JF ո[u,UIޚ0-@9-ۦLF[aQ; i)sP[A&K =ޖSSpF5KcttWBɉ)G(o8uX AW"|V--WqPSVF4ay\$&d4,&5)Wwb.Iy$t;73E"U=@TɄ[u?<3]05M'E62ot IҼA* +ikx7{j-{͝ea׺RL%KeoJ1\z-Ӡ<ĕcƭxQb1o4;{!^|fHiZ#}ycz*kHUxTșsfid*9{}.3:yJobi5O{ "d-1aJ)1*m3u1Ţlmu=bIH(,'7.fZ*Y>q5+'(Z# ~?[g-m@WImr $*j{,^pق=2:2*{}wi[QCږC+}] ċ|9pM[$A =2L +GP~u6mZ}w0MX?0-(,mf0^-~Ǩd/dѪn*?PU܊Ǘ7nlj-{ M}[{z"*6U[Q(iT M2Wkg U:O^bgKV/}wkw,[(t{ku힭p +\.0ڵi.6+鍦7"ێz+}H^ڟQx6Gs<-D(p9B~BaF={Ñ8'+p5FFߐs +]cZc~unHj@gZg-gz[cyUpeHgN_u.8LȄ|6vh}bȝmo'~RIyT?b┒ɿH,ҽYIJhH_4BKg#""*ȣt_*8?/Y-L533;v;a۹ +3 @-Ա,X "B)[6}{ Oo!PCc7CT@3 6קH 37d:`$1~RWP]122]?Ėo!/Z'\f]PBnZã5 smz(INl*Lb/`u@tj8IO2ń\4O i60j65 4\2r4 ط*Roє˴`ǖ1BesH\tJ1J3=3kJIB"zq"T#e !H9Hբ%ks|h.,zt޲"/WZp11AfuOՇ#-4") +!d"aG ~Q76_j8υ囟 h-i_ZC,ic{,bk;ho)WqN_Rgl~o, x}Ot @6Wo}:ZEʼnAq\ ش3_aX*=7 4?+.1$1Nom3;>˥KB~>rEZ`RNne]vݥ?tڵHUex"츴ÙĉwFn rd_#/~jwܗѫKpȖ]V ^LѱK="?RKw3wU@ql_oCr年:5jJ3PM2!!^V(r\tP|Ө./9㟲<9.ޛ[봌ۖ+ת><+yyوݸ'U^К{B*Wu\eUrdrdf==ӡH1] gK <{/*H3[Ham.7e:|Z(Q{{Voڂ.vG)jDa}w8d7\1*Qqy媙lPx}iN]f!&È4z t[pD/H/{HR5M/׀&CT3d-EoQ_v&vfѮ9F7U: +5Q6nYӔLabX+E+^|mccDr5c#1^u ?qKfo + @v|[ [ֺOԵAqdoM1,D-z3ǡ\y`(Քmc3c6?t\CB&j9}%g~IA(?K10~&<_Ģt=``ݔB*BݖiH,9tT6D33b728 +6!OpJ.0,̛25M4jh9fL5`E{"}H:Ju0JuЅ"UZ)M vϝM@-\-M=l^<("Q H"UeʔT0JbD)If~*?fȺp܍ۋϫۏϣ`bsЈCt B'G◻ 88`10&ԷhB'gTZ3V&|(&$1U"T>Ё; %JX2eH#ӊ&F1)TL)nW!jTS%>ڈXu5=nNg8Z$:E9hGr +3S10bPܧ.L-W,wEXl-Ŕ*Jw1/vFPK:b ys=@7(逆:йM(GVx)YSA\FrHkE;Г_A +=eY8B_#+`OtFW]M A{dalsCf!=d-W6.ݏ!+/GV& a8 7ϩ߿i #@7$al_ ʯMtJBI7%T$6?Ku_R_cm((if,c0<= |'~yr1XiY3~ٷv@ȠgJu8 +8&Y0HPFqr S1{QEQJLfY@E,DX`Ld&gH%nAGʤH/!78q QrD43dMwq,ZC:l[U &Έ9Hk{H<ݦ +c,^E Qt٫N± +3QN7˳))Y(|;V 7&:VּNIƅ+̅43ڐDvn[nZ44Gs'5 ګNNP] ⟩1f=ڟFe&1 #B"*]fѕ#D5D)wEDR`VM2ߓՈ1^q^Ͻ7rvXw!yBfx(L,0((0 3ގ]n,br+ksXĪ g08^&vwFUZоBR` +E{~*Ñ#.5:˜hb%SG8w^VmXӭ=zj3ursvP;2tPRcdvg ,53([ ;& /-a馃:ȯ,1vpraq)_)T2&iI z{lE i׬iv\ 9{ JԘsR=@bmQNE8?^M5H?:2:yXmT_&sFhI'nZl&ڦT@/BΏ) T@FCWB-[Z^Mv߈(*D˹+fY'lCҌ& &%] X@a%-/܉yoF~[nI +bl6s65Zzf9 +LRDbzL䍸ŷ\o3U^g[]{t +@omŋ%fY8ꥸꈞމ]i+J=AH=:3[`ްFu[YHڝ;΋wR>ǂd +u1:t?@%A5 +ڤ_JY}fRYZA⛶Eq + =:AA[ IWL6,Z)=:)}eU9x#x^ ɳFB'3tBsuxd?,rwb %z$:B{ +㮻(/Fu!!?^hJQEAE5Da$#$yYB{I=E$|hઅ0uqr~yp6LRcz)5`C+J[ N`Chd0%XD"Y0dȢc4B1I!EHk7 :zccMD%}:`%g,eSA}fФB+)@GD H (% dL#8QO-10).S 1;yk@4ȳѰD%6`}}LJ%7XZlDsd{CY L盌tQ(j;,R=e + +3V;ەbWYh+ih +/dauc+l}w2bД x6ȹBԚ'\g?_d}T;j7>maWnQ`4 鄃hAeQVq 8QQѕi? [O':dKyb!+ "8'AIfih.w<CtLӭr<d/Yݙ 4MNQb=|vO 쐵2O>ʜ$ #d{5c=RGB,`Xh7Ԇ# 22qW96PE(s踬5kR|hRJPuEAm7\ޫfr| 6o+ܶj]<Mo32I47VKI:vTF 5#N:P(Ua-zb9Uҷ5T Xk0G4&,5^ɺ%p +})Dq< :`PYU&u4c_V]j Cp ΀d񙘇(?8a;cFϓh`4m%L +wІ)UfNQۏdTatZ4-HVs3u/ՏM"ݿgnV\h\68\-fSjs)YIuV o z]}L=&VBdwnK>#ۣ`sax5|?I4Վ."c'artR`]qSuYyҲ!F7'ǞIkgZBU}QXE#IQOJ!L$ZbL-obW]!nI$RP=$+ *VҦJD%5q70EƀMbc{@i{F;'(LX[9UQőD:Zm^~s^ +5" I2W_^HˏPm٣)J GUf +F/F#i3La6"1)6YV1pqxc(fooISO"$L\ґ(// tOhTJY1A4a']mݵ(S㜏 wX'ưέN( '%(oopB>EضƼ? +IS:j8 Fx9F + :#1UF$0#,l?3n~!8!@ hD˶u@m۶m۶m۶mȈa۶ayZgェvW>{}g&w{aKg3gQ'SGX-C64DFn PM?`4`Sʋa W $i4tnd1{dY]wA^R-CaֻyRiI_\U=UVPA(Zj֐uz;Dh1,ߨ!Ř4}V?(꿄<5ƿk|:J 616:Tˆsr(W[3qLU-7*$0'̋@&ki59u[wl.~ 2J?f^(Q]KĿb6zZfOthK@R[ZXH[Qi;GNLTj|'nػv6m:)̲$cmTL6reb5>r& {le%f^ +D!WY4> guL&.cc [OR z8]J\gPx-5^(Ip~(V(n]f7ŷÃ]ڭ]}:#D[_Y=}5~eۼsQ'{OXoXM h8Jj| L[ABƺoaNq?"^A++q ?*/i+L]~ݱ2 ^nO +Q'p +/0/R3,+F}ቄ0و}MXLXːaƓ H>,$J;Ozxe9JyD8ùFdDݜʎJѦ;kD"5QeJSz.t8ǗPߦg)X?) 9MB9U}fT +nl-*2&LMl7e-Z$Bј)yq=U$Mg3wa,h1fL1 Uz$#¤}z(!$5 S{h]tysԀIyF X(RY)IYTZ ;>Y0n?í-TLwdCUjq̂;Iyz5.#TpfQYE唅וS1C584Z̶LV~2u]ތ2ׂʑ !c(==r#5mEܪ%G/z}%G!ܹzJO!̙O!L¨8|S)9 n\O[ndkEGۻʨ(Ja0B"c 6;o܎6:9nܳK(Uކ\Spm5)AS_3C2s|)R`ȻR&D,Oc C® v.9W +Be6a ~4E:]RS GGxu]C+Z%^˭'7%gidȓ%- Dՙ7WcX8荨q٢9"$D=xTAnMU߰\Ww$3-W7d 8F}8|hBFh LOP Ď'q,7ac7n)AN{ľQ[N_uVsg)b2˪`K)Ux4⥔}"C/ĨpXߘoXz;]6ص+Epf8]Q#;_8mد$kݵWٔ}8=cn8͐!¦Ovpau; +[(5gإG | + 7^ y*6 %7+#vjjB_:N': } /j +Z@C|aۦP$ؖ{QE%= xb!m%)gffz_ow:|,j Y]`)>Z(]z"da9߬CvWZlw. !b0:fPy0'(doI6#5Cy5iDHGEVrT0d%ܠn%S9GnoGc\Ȅ9;ɍ8Cc b+T"u>$Ċb^<1.[I &Ma[E?*+]9Sc]*%G0űx h3@\V_1,Wrwn- KwŠz #&tWdt("`i?tϽͩR`t:[Xi^Br}":igͦuUҀ7i9_55LI]rTͅ!JൺW{oBCYIB@J%Lƹ7F=%oFgxuG[{Zǚpe.B 0x~:*M0 ԙu~Ҟ)C#J a12״('w + +.?bRkSjsjȍ)w7i-D*պpftS +pP sF&o\$*bKQ* JE*=ϙt$ Ο(ODSbJ~](ܘ)f7/FKA>byJFE+K8-8J@;#eOr +@5]s-QX7'EEo(FDO%w{ʾ#ٌpuӬVG!3=libϺW3]_H5Ut\:ݲ +W[yN7VDq,qrbpl%N0o]Jd5 MX^zIyl]-..9UokjsɰbC'"F MAc!$; Ty+rM$B9ꮽдӜ0DtI." m +<q\1qei48zUKpG26:@=~_Jwp3b_Y\^ +.28G{D3WυWpCO9pK'4I } a+%/а_qX4gФ@[ T?Obo"LB ؉Ê\),JZ:!n,,g$ ]ǥCuGetjApqᅟjx~ٵ[p!&Vwcׅ0x5hvjzB 8Ȗ,e7qFc)w7)w +Rn21>M## +mk7)7VN1|XZ #Yۈc>ى O'4Nα4hÊp@|)J;2}j4bn#rR˓8ϣ?0jrP0?*Ne߃l=wמWMvn^slLG+% 2Ah T*aDjP+&+AFekSd532_E_:k'{'K33WgK{vӀ̓>%3\xCF6kT2D09%98mh j +E# T$f &|#@c!Cp80JqUƮy;Q lk&tvQ@;z=*jMGd>21nX}sd;ؗ$-N{YA. *}[oa/ Q>bXA=F8҄QL90dثGs;B$`UXp N(Z{kZE_@/.Yknۃ)436ACrHΪ Ko[rLC7"j w;kp {O>8x_񾾇:=+oBOb=d!dL/2n2JQd*&V=§,#)qhYhfPVU5nX)4gFtF,2鞨ȷ +' y@f|CbF+XE&9{FM!"6J0S* c'YڨŁF2暪$p5yKOvQ`pv""hR|L ðdA3(IQ]r胃/rN[lBR|gu#.KWEw=,c`rr?a3rrsUӔT-߫MjI;Sdx:lSGv,ii:.P{L5~e}iF:vQe[ƴ<yPnI~xͤQ,&שLRd$Q[%]~7K.fxJn<06.r|hsZfVX\H%RMzvrHpՉs"Qe'iF2U\.^M^/-i+nnF UlߖbkizUҮ>+ҒHփJJ-{^ܶp]fr^o9LP=ImZ&ϲrTj6J(Fh(o3`MU;O/F>e1ߠɶ,ӀKeělxS;L.?d5hy3RuiRJّX*̤qtĥ[˚YDc_ !/vBD;fp~pn\!qnxp!yE{ٗm镠if+ؤ $eYpu7j-wƔS$0Z +OnAjTf+zjPsh(pWrw둫=XCJ>|i n9$%)w n=[#p-Nҭy?߇+tqPHFP&Y.2K䍂y#{2u1eKjBCr'9S{-USєb7QV)4ʵcW|_+2X"m-c <}Md-zv3A0!͇^%_H]{G~|대㶍DŽߚ*S5RtNkrhtHJkE?BUD}_jIOѐJMWJZpFCڍ_˶[uzl[\EWLٜB4dDobM$Vzw(qoE=G + ?D[}S m- =pVŽ3F +VStt$,O6Zh"":R{_k G-_PmSW:}˻>Ɂ@5QuP);ʈ2*2BH˩u35OTÂj| &ܮ︄zgO:{[= %w;g|}!} 0&!':lUpMP"|g۬;;HX}Ïe_ݷvt7B^VW:\t_ Np{+XKE3NmVwJh4Qa)^Z:Z-cʙZyRIADVfVxWfZPCw&tsGAY VZ'+]F@ Xf; o R+M/ݳ~C+(4\IňJT? lwgnkqkڅLgrޗ&ɘhm#\Cѿ'XBL9H6sTݭ +9G#Lo)d6RߘUT mKNu'A-͗hȃz!*d\UȮ,KؘUr2pgAm' 8gpuQk-j8(\ +!Ə}$%Izr8` I0y7yKԪju[KRUF]M[gBU<2/;3_3o3~0}j)# +GX +aۂh=91U"T´ +CCC:FRB,;E%`L;dءћVx&b3`z5cS/%e% ^tt㲽l.f8i'sJ@;2z=o8iӦqI1 ;,7~` ^kOdN=qmS}zq Ly}eV%sv)y׻}F v$_IZy?Y&H&p qDd3 +C$" G JĂ &;6]ZZNcLap>[ε@VFDYUF؏2 9!ݺ&huPTwWDCT{3SxQoU!U4f +y:0_TS T5Hs jlY;L,vo[rnL jruPбTh%…f$-j$9g4v^oV]M~ vm{z+=FY|RhCRQWT2TC|:2GnHTeuggNUfVjvWuLLxX|H`EY=j*RDl'a=gD☯"y^u]EȐEJ(,iʮqH WIe ^x ] -(dgD`#Y||ycvBAM e%!n_q R?c8+/W7#)q%f*=š  8M ^2"9뀭ocSH?T{q]G$%S-Z:/g`1O&H~']QXԞ|у*Q-گ}Vh ;h9Ӧw3ZvBya{'_9T:|:Y/Y&~E)!ZH{KF"`[k1>p[ߔoSGp[њ%33rrμӐݧ+gƦ!aiWIIh`0ߟHX>Cɮf&Y-3POf~M,7ÈTYy{ѹ(C FqYaEsoJuG%ش@pvo=|vޅ ׯ=ulzUm1PηOr)vi[3l*څeVj_y&q_\jY1sُ7E%H * XG"QQd w-\qAe{)}ædl^͊i8prBQo/=@ "i1DBqnC4ĝ,5gi1T*t^r ROΛn5t-RlAltg&phcl NNO;gTXo|HR`%z2zk,`u+sOC9(ϕve D*t=WCe>)=s~j M?R!Y"$XԈx`L=%t"R(5G-Q + h4kꃠRZzT_{!~xi[[-`m':'#sv:tŤ2iLްL]iv S޼Ũv[]vn<5G[Grd٢~D/ Qv[M{;6͞谲rl%`)^xN FӍSɧS qSet[IŶ"-faٍ_٪^m\|wqmd'"ʋӜ x~mQUJz|ݴ'!QdShYrmeX)92#eeS( +$-lVYQؐD:̍&f֦us6-#2)+cC .5c[(yiYU^6e*a3J 61LḛYcԥ|72I5<>VTt7TܫJB뎵ΘH& N=\LAS(Χe8٢%"LMcHXE,AORq8lMt^g HeCRv1ؖ\M] 󘱉Y|UHhڅ}}N\*|5[֗;';b&`zD} ԟ3=%bYPX2w k;fX5!G) 6SYVuN]f ¾Gƍ$fGO)'0e8DËNaDҔ/PJF= }'H)('י֓åQc#hS}oU,ז;Q%nЖ! <΢x4tBj]kע_n+jQ?6| +A[q,c!+O4-h +H3$Еm8; вBq (gȎ\;qIX=11C&&}SFo+ P/ (ٱRV)\N8#VKKS&TllEWVFgJCCQCHKQc2TrAM1$mBQxލ*. 6~'ZB_5G&K`V' Ove +q =W+CwSsk4~J8S[Q8S!ǵ#X熱EеyBYcI-`tD':72œbYr1::nsūPψt;ҩ9ԧݫaӯ7V Rg}S݌0u^IjҚQFªP4:ƌ ' #(QʟL0RF՘!9s? yW&08JBOE1KysiU?rձUQ2M )zcV 76RȚLX1ӿE} Vގ' Vr}gs~mz:`gm(|En0EXdő51uX(C;Dz"CT$i +9gg;<#NZM>gŤĈ5v_tl_]ʒnVnin&}q5Ъ`Lǃd:WM/]uSC&Y.֊mK?1lE."ٜ5Ntͻ]1RbD +WzzW[AAo-ʃމ6FֹԷնq64u'KJ (eZUq+/pr'$x6<*p^X/'k_^ܒzy9UnrN`)Gg?2}6h<_R^,^m:CW&(9GPYWF]Xl,{m~l Btd'vh|0 owHs?1z+#MCwؤhN 4ZShu̍OL@-1qq['W#IL+]@uddW`,Yn3gʼfo,;l[^ڻmlphxrkL&i.,2ѣJzps+erA)o 7q0\vTO7*pO}?5&R(=oH܍RYhHHs.Opگў +& ; +kË)|Xֱ//M.]I41qe<6!qiNdP `u+D QP9*I52w 3[rsNcWx4L(M pfǥbPXh mmN(VE`2NffLņh֨܈ʈfMГep:xPPrNHK,/֏ePfya뵻M6Pzx{f} }Ju! ^O +j}RsW\E'iXR WAS[mקyJI(%&6j9:t+d˨Ut<^c)5cg$iV:=y' +0i'b 0껚U=A2P]xޢ9`q3XhlslPt1 556Z^: bvB!sz]"D);K[/CPK\(/TtI~z'žk'||D5OkN:XٍBp|NvgJ>ѭ v&|$ +aK63Zpc)>Kb= +HkQz)/v}'Y }r%$B[t&:u=]Aď{Fc(]}]a̴u+*@>Vk $5rʗǥ + գ A:J5J*6/5WAC1'26Ck8E."<Nzxjp@O-_g(]u +z7>'\jad>HU$g0 r yqs_a:#>aA,{Qk!DaF}wg#>qV[%UN!FO3=|"i,,-*oJoh{ytл:G#.du[xݔоT34⿆TUG_8n"& Ppɠ@@6hx!D) +5\XӒ +, I @fDMc\88|_qqnSŧ/V"{<'KIo~sy{uH@S+]e nO45`X2$uUDb0$JUj ;:Z90eT2 f.sRZC~a[vP'Oe}Z27k+KbA0zKgeq|mz#ۄx3Scٕx6=.ZHn-7jg4NQyuMLI^Xt6ep3ȴP,ܫN_[U{ 6['Pu؊QR>VCVBjaj[OK,-'|!3 d\rN-uvkNGC")D 1`դhVJQKΞ,8Ue3xQc V冉n[TeE|`9bq0Q5a9Tte1@;GR̡GTX04NjelU :5S=B#[dƎBM}T{S?6IAhT4XApBk2w?[q%uASP34k7;E! IKsGۚaԩ +(SF+gf&+ 2bs]Tt[lf1N)XWhf.dNG0cW}+e+CG}M)[1s0BQB}TC$x<眄rY8jĩo6#ai2t)\ʅ~MfLB>㈰cg>~"Io\ZV`-E}*$:4fw⳻ +hX^~blV™kU4*!vB +ybV+~Bȉ YlXlINAJacGq_OGr :?:n5 ?8^a_RDJ0};;B1b8~C^ }Dw Pv#ixiARڭȏ2uz V! Ү'EP9EbDG(ʼ#-ɳnzwEhA&aSΏ Qu-]칖l}ĝ M,M=;1[OWQ$HC%tH\r&dv2ZMiko[j?#Kim%venRzߢz^p8{y{ '&ͿٙwOGw9v&C`":#dt -ICAp$DIb'%!&&A'q ?LoBQl Ł4b>A + {DzCy +&sYkbf9:-ȍ6m&R>wY`%B$\2cYR-]-qh'A [(L̒WUaYҋ +88Ad3v38^P"7Ym• ]c<$]4r>& uolJ{Ugm)-$Bl3HBB]ek9$6.;B_CzdI?@rZ94$rʤ:>hq ;s?VHo'Z.+ko do=z~˞CU}W\Vhvˌmչnr5=ܜB]`u?w6~ǹD rJ0lBup+o0/Zo<~uՓ$HA7{Tq'L~V N*9NG}HнT1xhm4+La}vRf.wa5t +K?b&YBurYD5!#_}D70[m/7[4F3 vSsa3΢Waum1(5CrIge[YSZul'I,Vw6glE}%Y3֐Rxm(ժ[6uWْKy-/Xg# !,c,!4j4a@:G#S.a@OTdx;j3"ݡ.v*@q5$Y ݘ|H}ěUݎw9EinIZƪ 8Nt&[KZFO'x stңsA1y˩ v́C?$Yt?#CżI$g_hF/ ży\V#bW/ HFdҟ޵h}\3! 2@lKjF;Dzc]~awx!}ҿw)xisoh oMo5nãVo}tr<}[{{lOQr(Sja/D4RH5n +{{a,DS {ȥXh$]gQFXl%{mSșc@Ks"}e铡E;6Ve$qjSoT>@1XJa6@[>E+jbEDm$qD]tѧLbC O>bTqhZKxZBCIDӘ8ݏVj2kkpzsnlՉ2c_!wSm-j^++y1JޣW[Ü0Eێ7dQMԩh`ѕ Fr.msn"!h1caODrJ4"Gk09W:4h%0p(C[ wH~s蝘R@[.bwZU8dW[ <5?ŘҮ&ΚނbU|fa KB8RSd۔=QsN3XfΊuDʳ%U&!ip^=}O?#wJSv]cO}`JmLk(W>Kv=:3+-. maVx*#IrR|~U NG96nīM#'gu/<ߍd56#9'9dp1߳gcyĔu~Z|C}R#gHSMk+,2}r;BlWJMJ`˹+㐇4ZqWSuVNFOګ)+9loڦ`IY:_ncic= cXYzDlZI蜼˨o7@k=cAu6O[n't6GƧA0J. RU n f a;@%MB5eMk5 x$lb/GŜx9nhWEU{\>PrfEqd%$={ ShQڥć2>(9xTOבHX:؛;79w3eCca4$D,C + +X$Co2FiVŮ@FE8DfZ+]jmk!qۓ Cx}y.f-0R0L=G +\tgCc$vOkzwKƪu@EJvȡ=\Zī[gw, k#8Hntwox6/=u ៥`yWGB6O6F:|Qav527-19>w"j="<ͧH>=00l+w!ӟ3f(>sZ4ܪkYDeU\k̙`sE .ֲpIqrFq>S,IwelƎ+jZv{9pr5i6x1U^+6E5U^!W\5Xd~WDvd w\*QUvh 6d[+_kd4@C1߂UfUphC>i\#9>`be =- '\myM.ڙLIԂq~0q\"G=6/bzum/g/vAE\ʆw( ;a& +'<ջ][kP.+YiE{' Yۍ6;HΥ{ְ +\~ [86Sr: PY՛@υ̸;#m-Kb[@Vwb%㨺L7Yx:ΜMjE!v9ZAhkexCd< (Ͱg@hOkH<F"`U3rz~ܭr1ZdUfWe0gFE\er!Yi]. -?4}ynBծG{[E3*+-Fׄ*Hy24҉MuoX협o"(hbSΜ)DMՊ4>t[FE-ۖ"؇nX6|p(ڇՆLPˊߴ=1`vdvQẽfMbV^rgnGtFDv0wg$zzF#J跔҇''Z/ɧۤ.a$Uu T1K~]3Czv*4ջ'T>}X(To<3ж14ui I˓(tdv ᴦ#w.<ȯe.<)a<`Cod竿}Sz16/K"٘y>P+_<|J_3D"/hUIL \H;9BG 8SKSX!59LS8&R)إH&:%jСY0jĬlP')kHёD.jչ S r6nިGV'7?Ȗ8`@@Y@@A6GKĥh2FBւq x9EBJjIopx(ixZj=xHHR)%(x}(,َ2B77号?" 9@mrCttCu) qq~jlLqq Gssou7;77~1И(nQ!@ꋬX& lH$OV]1'bqcj"cFU^B2*Ҭ*{LmQVEr~%rۋ-zH%;w.bXB)/&Z甖o]Ӝ'5+C^KAGid.f%|=8xLɆnVp$5*-+t֗)ϸ% d*?e +g%d4n2ѦOoaPbbg"J[&Ev%6o`@Z3ǭ@2C2V$˱rSq^JQ ASNξIRӘtƠ&!H  6ī gyf|yP;J>㵶)js&c oj\}4"*TԆO5j6օSAHM{R+56Xmw̢ȵ__ev/x=q8-{!fB>ZbUV<5 0$zQ]}M@Wh$ŷ )w]/iR5h/+k.7jKBCXm/{ٟy>`tgfUQ%]i*EecɩS?-҃p ]fEæi ܬV PiaH2qT)( 6KuU50lQy B,>8y6}Vds=#3?9T,q A cIh0%IOA˕(QF# B&TsGzY=z(~\t&tSpu㤐LܒQ:v >GPK Gްnt=ҹ̎gƀ &.v";gIN)Ɏ!Ȑ5.?6HȇgXPdbT'٠ CQgà +M` ֿt"*3AQW3m c)B8g"hm}vS~}?}8yhWPɳY aYvK !)[;!NkAh##٩, +Iy %7dB] *ƍgk=xs6j3Z"C煉 +z 'c' :Io:YHD#Q"s>&U6&-y^ D,qX):/f!XxЛWǾ c1TJ)haNI#<` YG+5^^Hq#DieHv:[ Y!  ^<֍:J4qݎ׌2d1OXD75]aϐ>̒G^]EPa\JiBƍ+7nۧ@ܽ"6Sک/pۯ*5fH["#s hfQ(e'+̓cH1.bg^cXvDceTKغ&#1f{43A֦,.0p$_$f72L;GU7S^}㟫v +u鯊VTm*7IsoPR[Po[+bA,6D( +sdZxYw6ZOvo֝HHT,Eu|,׷yVL?o?!(7i(lrM=CNKw@ۆ\brTpT گ:_%%FYs XF*_bC@~ Sy06CKa@cS3v=40"qe(Xy +*>=lݘgqƂ[YBP@z3]4ڙqv,d"!]ŢR<<ݪ^)ե/rgՖLΉ]]P2ԧ6߲Ր]E]&Py8xkXUuaZ*]t8/Ip ]Eo Ծ&Iqi.,p{KۂEWJ&#MH Hq5huO\&QU)3?e{7d,6iSLEG_Ja+p?`y/R嶠uOa 7WX*9r<kM{[ظct/VIV$[ڮܢa gѡ s}MsMe|fްŁyJ+Gn]q?24&sU~++BogE~;6|c=s޷HZdB&yr/~0wOw4# ~t4c`EGfm'Kډo;ayMc.',\оfPv.D!8y8>?WG((h=H!!y{-G4V8VA?`D:'ԻQKf3xא1Hc7a!1q oxX$|\oԢN O G,'h@@6 T_\vUǛZPپ*@ϠZ[ڤ(HP;mݒ̔6[/g{U12}?/kƶ.!c}qu~h'n}< ,@AwH&E6UGGɮo0s:HO-Ɗ:u8`URm;O)%\q*lݯREiU5P5ՄSPSEж̚o7-9hZP,h;*jb\";5.%W#;#|`MXr׶ꜳSrzn]ꝕ TS!Ȇ,v< ;i"v>}2彋imVLa9<-ö< ._QWs,S6}ݤ71ݑjxPvD(4!#h9(\aZE3P1tX㯍 dWB˦FhgQJD$`0vWhB,?|dEZn19b#%3Йɚ8 + &|7 @!vɄppzNY^֙4Y>3dHV$^T<]zIn )u7{-Lj7*TU5 B3=mFˉVgAv%mXEOՀ,c]O>2jK&L}ERjv}L0A" +M:$JKü¹maBK/di薡sג;b%Ǩ}lSYѰm-ZΕt wL:e㬋(Zh2ɓey{~EͳQEEc 3 RZ %R[yxCԆ8Qoa0(U,+=*M$sq3& QdsOb28t;Z\PɌxÌ 3tXܿII~)5E26-CaXtb`aK},`xE+=JLiw9G@q ʓUL_VAAֺGGӥns VUD\;iq/+\R EEl2 [󊡥+ ީ]i~.u/6^r-/4$tmz|\7X/.[5q%7{;O~㌶k2.+M-ܺf~{$LcT2vj-6ۍcA=/.HΖ({iM0OLjV΃u&A6v]C!8?y2A ΟV]/dAuH"ڈw]N*Ph"\ Y ?SQ&rw:zz[6w :衘Dy#ٮ0eҮglؚ X<\6׊i<2L״\z~xsvۧ[swZW\oAA> +"^PH9ڔL{&gHSFH-l__DN/O =z|2!WZP ȧ.9$ITVRp)ȇԏpM!MOy>v)k3 +=@ⓤr.fI8iBrZB_z&CS@;Z;{1,~jTҭ'< e1c? lR"aO4ǴL,kayG̬sn;_-)^b!Qҧ9t~'Fɓ:6 ҄Z'#`9Q1o0Tq07ƈ_WѷO#3?Teï>20e@@XV4uؖ[C>4M?J6-K, qǕgD黆uo )^v?gE-Ǜ눁Q LV MMú⬯\֪U&J"(5q؎QiGYLDu1& ϗiϊzE Yxw鲟^E,淡F;1Jp/_8o4fZJ2viĨAEI, +!E6U 5aW;^hkUcJE+zS5-&.H,n_<5#ƛig0T<*uov"R0٭>[")~UZ#:0o fUǛ~ߎۈW̏mũc9~|U ϒٳ8&Y2FQjXt0AlJ@?%{%zi{TvG:I.d^iHxv?#s]_uB+kX;h/#~ўK#`݀C@5jXlelE@JhǟaLH0' +Hz&C8Ne(C帿Xl3 0 +zף7w\o7 $r*̀o$sn<FiCNM:Vсl:n! +Wdԭ7 O#8CE_4`ԡ;щs C!=؍)4bSySKh7p+W&oggeWafkfZӶ3 +NakfG$O,s4Qso0(%=M2ݦ͙K#c&CޚMzVߝ}=fP&F;9O(?+ӠL"ʀn`wKLRME +9&i`%/ 3|2 l&A->MɌ$imuY_|NBrPZԔ=i)Rz D)tٷ9 ӒhIy/s +~Zd5+j]٘:a;zLsyy>U.#dG҅6C&-*rlM0+!J56OuuJĨ(gJՒ$Ѫ0@OhLCJމ$\+pV"0DxРQ=G0yQVp}JXbQZ7+O8/Tjz1Գ%KoHKo.*H!gaSJl3 -,8™]\}^=7QMAƎ0=aX!$}W #[yrP!ZF˹TJuksrڭ]1MUrerGJHjۊo*>yL` ')Ev-haŃ^.g(о2r4Уq o%]Ѿ(K"lӝ]qZ&J.GG M:nsnqІh4UkXcr֗,٫Gt7S@;CkBn"V?:&k#U)ҧ8x`AlS,3Mqǚ0ݵH5\WNTLZC7V3ΚziKK*QC(:-p*o)h[P-7ST!yqW(da-3!e/:uۢR<G1/@!LFV +6zkH'wn'OHmVʍ33rYMvy=~˭up'fd*D2)Cm54㋬]j)eQo %0_* %qEyZKI¢p+1^㋬itBw"l9b!~,H4h<6W*>}W,"F)tX:߾9zmُ4ae>KzJ|QySVH OE~fZUU; (K, ہ kI/[Qouȑp{'eۇ,t>ptyT +1Q0@3Px + _A~ʥzUQoN[kkũl5j쪗m:‹鎰RV0eL{O~MTCh3C5fr6#~8ܯ_]v}H=x>1zw:1oAIwM?2Q ¶Vt")s֕B,ԃ=<6Jݸ_^"xX!F;646Ifƺ*OR1seʡ8@.XAA{?АcҨ)?/¹ǦDU{^TAhojK`IK*[)rB-u} +=X)Fa64R8L@m|3Սۘ &ql >܊؍v`3!Ep;?S,m۶m۶mzٶm۶mۮ^皫6X۹8מ72"32 un=O=ӝ' +<[hdȈ-4 +̀%qPҡ`}82#Kx:uv\tDC9Zbog}/GMTaOW@Nm7z+IC),$RƁPv>uCn-US _RJ|+c8櫢Ìv=z y̥.EwږJtgJ,Jm H9 !5?J&IL#ľlZұmj;c `[R4OK<)1}(;ڴz&-T[Ҭvf6veXiws뿈*m%4uK KhK#( 0D|MlڨGȑ}F 21G@mgϲr8^`xVn1C íÉÊ#-e,-#GCO9 m(,Ǵj6@C4;k't٩~R˙`d*Yk +GCu@CBn:lBelYmbz!h O&Goi+33g/:aQGܦ{LL93؄jkIMd#˖ΟÜwV4iH'.,MA X/ ڜ5Qb,8b$SH{2KX`7רn% J`'&5(Vlx+L9)6ؖ︶OO<ɋB 5P)O0CA]TӍ+V=腠yGzHttI8m;Q!.т1b=бm.Hr[xM8[bO%Z +.zĠNT$lk^LuHm#X)k Gx:/`ϋ9<8C>Z>#$ą7,%R1\;RrkJ ,kpiuلNe f9D+QZ{d@&4fprKbIq"ۧ#2U7ŇV&\[5$[[v@6E4Yrfs"T HզdoKH΂ Dt:/I@yX yXQ1oy?k{z[ ]ZW*,FYBahK#$q84Eks. DrLqO9AIQ+v\$3uT4IUg(-+0I] SwH[\NJʺ:YDM^ +J[OYIjDK`m !cI9i\͔:"q&]Y^RX~JXKvKG""ĊUP7C‚ +3`S%¤q"Pɱ,q7a+yuΗ $$}(ZLyB&n@iD7)=Qa1*~AvO^cQt9lpLm/1"!!ohF|uT'%K `t>'ܦ| >P"*Ck2'f¸Gk4;2exMII%oFhStgNCbLauitBʬ [y :iτ IqF% Iz;Ъ6\)#&1!ڄF(RGdݔ_]GKP +,ĨJKaiR3&.!+_LhxG- 7 s#ى7sPc)ZHhډXlT;iJ.Lh{NReUҺ6X0ߦN)D\ݕE3-O6nMk zZ:%xӊ1uoLٟoD/z$nwq-70,mz-j+e*vٷQ6CJꢗv=JߑN>*RelTa>cணtl= y3d m e6g!PmiV#ʇee 4k/d[!&#UtsQ&kSu^2,F*zɚC*noN'qI +e/JSj!e8`Gv~B˫E&#g*hhT5d0FJjiQ%\G>Qllw'?P.Ȧ=ՕU-+8|25g|")k?IœG[ &:شnʉ&ئ*uhywH:R<&kvu.Yo( tWA_w-Niwu>KSy= R.0.aޤGsM= 44\u`YӔM:fQUI9|,:΁WhvXxh([ktIPʚS©]=pR–(צ4{㍿s)6&+4=,->a2E]5 ><PGh"HȄ9a y ,dqr`TP0!N&1"ö́Hl)lnnGʯz#fwEP˱Bɼ/6={Ѝ_Ik#*^Y6f+Ao ^pͤ Q(K0,3  Y1.ȉf$ CbξBq9i%-vSw%tt5FBRW2 3J`A-IкdR9L=V^uu'+L%aֹF/Dŭj7ݫX{@S);ꏿ,LݙGx7dKh4^ҨNZL%?L=#lb:jKn or`u2}-ś]2q1+[$S bW8&k'Yj8Nޣ8zeWs>Ţ:,#k3%@c:> 8DXJ R-p|lر6Qh3(yac^KAqU}!Qkt,9_)@ KWpYR!arɹO[(~I Q泭d6Q?/߯d +g Rh킓S Zʖyml!>dA3 #kS +n[u5I;qO_M1)ظ q}Xyǁ-D*&f2=FG8֞F@`mj⮰yϸuԚIk`_<\ÑtVY"G*8: k"'&J sS6 8c1$Ur)fmڤH )d[ԠA&K=rY \&93=LS& +k+6;-=eI7ñפ(2*4ƒF=͏~fMk w!s?2Zt +dR%Gx|P=Ydm\ٙUL1;!񚁥s͚MAG$Ѽ +b6Q{JL@{U?j%} '"˖٭ !Gs~v.1&. ("Y66J4ZotM淈#lF6j+lsӾ2O 5^UԌ5_k slD爟@ydq'$ BRi\h=̼.KĨ6!2A-e]—d@ExVkR=1K;k[LS-ޭ%3(z=Q0&3bS.HxzOYKM+tƻgw37͵iku(\|/k/a};B;݉8f!FI4W<{jU}9B@PwRA(L`>oZz(TpQ?-s_h +FL4 oMJoK6>8_/bd045yx9b#qcGN;PBC9X64Yal~'ZJIX5mx)qO:;-,=#t4||&\'7pD'xeԲpD2j>}97i#%BЉuGU:TŪ=,zQܡ%9:E qM&蟗3dM x9ɴ&()l͔Ih +uY3l㷣3rG3f]>fߖb{97\}}|Jgg:^o~fxAl!q=S !%ßF0Nv$! e":Zg3 :}ᛉ1k+$暷iDr1xҲdpά:QIoe{ѤH, :e9m*B%P.NYm.i0[t:%-jvj[>&Q}mftᦧb.EࢗIǮt@^s!`B +ު=#_!<=ж/;Ŗ<QZj`;4TfeviԴ"՟ЁڟLu8,Bo$lX]C.Y1PGNT_nT{ +5-|)Ed79^ԏ{t@PL8LZ"sV-"#,]>kMFI~6F\̈́YHGS$=vNTيUbem=@#r_i"VQnZp~z/_.=!z+4ں<]o\޿" ՐJ,.jʎeMj/h*\@eͽw +uSmfrgpn`E8}pe7Cv;wM\ +vhIH5'̩Q>jJQW-foRd,C6hXŠ;:jř~yrMC }4x  ۲$O@!8R' FP>?O15TmΠH}N2نJs.Y9`c;.bfQUIЀ6l[ׄyS_PFfW&e|:A%!᤭Pi;qWL'ϻ:3/=XHUFбd_UkGeEWIq2]oi%L&2-m6lS|GAdwmfMU,o]g⾦Q%U@ί㢜/ʨ2#KuI$?bf[A7,f=RHpɉʙ>" + /,;jZ w4z4hjNl3Q~Q6VWOC22/E"U52~)9`rI?;fkI37(X"YoU{߄YSՃY1 !Ak \R)S)3UŅ'OtѪ9 + Nh7YY\ӎ96{G\bط|ӈFEO<~R.] +{S0 (JqZk`Nc +GjɨF|%4J[)u uڶ}4]o|`M5?l~+wx*^Q8\}cۂ@I]Y;rG`vOU{C@U7([C:k-:ݚ&Da!g(qh^7#1v 9vYQR8^NUB3Ձ 03&Y5[gtu @ǧH6FeŃl"HL洴f+T͒trZ'Αl3ʟk|e]$ΕnnwYmc7u}Gqq /&aqC`c>{A~>vqp&<ڦfiXAI~B,AȦzØT>NxŁvX9U@E[eu#&"Mi+C3cՎ3WPދ '\֍Q6͞N+Nlv$%)6l.EWdvdJ)D]98IqLl+XR.p&p`bX x +R@ZIR]#9m՛,$(.Ljp` +u vن1ɌN!xAHtt{pz1+٠ l*BedBXGD)36-ȋ"feb|3JSc۝6Ya< YrP&?Ng"h}Ѕ)ʪR4i^wƩO8mhR]*CUǦzS[LO% jP˩prd \𻔩O'EێD/J&:d?Cr?$-@x73T!|!2za**ҥkV,V\BYCnxz~EPݷ#W{z>Ԃ%99d 9 dW݃P^{ZYdA8CKzcaccSOlЦ.tdq|w(ךZ850VXNpKTY}\tiᤒ_7qhE 5}i2eÆCFiJs<4j8|GL~E ;faa$bَ0a5dDZ&2=ӕ;A +Iް'5Jv &هtZqy0A $n"})xUDz50x(aE +2=җƷ|oJkOO7kզuwuE>6V, +v>s Yb +ZCQ"Z;*Z@!v<@gm x] +G*; mʕۆV^WB3)D|nPA|g!/ᙚtpm3nż/,V7[:!^XMxQŧME-0 YVpo̺Oص 8 Ksn\fUX_5mg-m#;mk=M.K/6_ RBp0_ϫ YyPpb:S\gV9/f\8e&l3|}8{n v-=gPo$3>|-!}ɘtb)Hn/@;/H'[pA>=GW}3o&CӺ\󛆍]}P|c0uTnuTRO<-/iڵ3BOτC_`xi%U>Ct,'DR!r*))9ުE٪7mqC/}6:0j#SHuq}7쑵C/1ao鷬>7 -]|:в"oxkקdD6 Eht-f:x/Z9<%vȨji{N?;;q. PZ]TG v6 :P F*> ~zz-d']Pݪh4VtRJ| i˞3/Mjǥ_>V{ˬ9H.K֞k n4]۝:YYJ՟"y8/LVggBՂnT2 oq zmeYіCaN 7Ӎ‰Κk:o&]kdn2w%L5?'*fn9\Վ'C~X +{j77^"= +)ik H1ӪKF1lF39_p6ѢȂJA^L>bap׶=f>bɼϺ 9׳% TY ]o-_ѱLz-[/iW%[H8kAMM8+;( +1:!)? <Ö.8,nWB=>o=ZoWߒ\?Kѓ/XO5E]AYG.v]C>6DHik7s;8 f TakeA\[L}TXƋtԑ^.]HOeR-T޳O$$ + Ӵ1%wXYĸ$%˜*P[hhNfmFD7~d,EYJc4d<օb 8 -Y+)"of-qY̚cYZʍ%ZjES$vt*fh?ZJ1JZ=@qm2\51Vݛ2p"qLS$Ȃsl_Iq'4)pͰ"c&Ob_w +P6:TƬM.~vb)׼$zn= EVrcF`H\H6+DRs4&>jy Vl2/$JҴ+E5IE҂ aH 7.k\PROmv4/0f1-FoҸH'4F0E[3'Rk\;gbXQ֜lM%1s ~6#q0n|ў$)$1&y +WΧΊL֖h9,{߰3?CQLzSLzU@>*;S_+: Le4LW[rpxSԕg}~ } 9~<>VoW{ 49-p_%G؊3 hmrBe @Cu7RXJ]FDUnt*7uԚemDb^B&͑`TFiQ!H]VB1/I[@%B}E^ :8icgDZpiuaUImk$s7f팪ʷx0#/ M-;(zB@+ -WE^tlT\joMmz +QM@݈A^}fږa⨇̊pv /qi[8?j)e;/w_Չ-ffC ;+8 g \3XDU.Ikuā9EvZ/w{psɝfz"Sޅmb/Dby؏*rIwlýh'оrɮrIܪ.l>rs[_ wE" SBd 5 u{xd +3yb/'vs_ +gkslw6Eu}֗em|< jV5WgAd@^ ܉?#O㑺wD &jH3SYEKo w]s-p>"$<mZ3< q lgp+G-X k|[ϕA0oϕF,e-dƖrHU|HrkRzلp-]V949y>ܛ<_WpDmlJv,o rI:^;`qۥk[0=c@4ݱRfwV2ӥGrh:P +1/&2}ڱy-ZscՊ}jĚL9],agt_mF2L m`c#\@0y-CeȆ s% V /`[#ubpCe/Ms-nkmSc'eU3x 0Rq%G+naKmSXvN䦠.79= Rm1 {6 0;s!Xi=@OF2d!嫍^zӆ|ndH@{'T:5aLOCÄe'nw%LD(Q2㫃dl_/oM4j:&.&y2[I0I1 ^ >ŞBQ~= pFQSC^Fv9ݒ"K;)p5(ߥ,($pHJ# zrRt]*J֞չJvMAZ)U(IO +г܂TP%"V'܋_ O(HK+H4ub H.<#Vzh~;~|kk +l琋~! IMCYs\ɕ/9-Cf׽)@gϕݿyEQ~ܺ_,/KdIɂuF䄐'Mx!u{Jg鿁y + IP"I2I==a6f6p}aZ{x Xf$3+nwr[aXO^;~q-I(7=W}alZCm={¬Yn~lPR1GcCNmldm;#9cYC +W2ղdfixG1EojnD= hu"q̠Ri u?eEDmWrgkVUgebUҨ| 2DM1~*%ɸ굽X"B#C8%M g&T0M@]fE.h4?[}w`N]bbN<iy+9.WM +7!%Qq8QZ.H ahX{e0[xLuYFN”-\`-_V41f==@vkV} lnn lI`a`o*+?{ =9…<ۣ`\{ ckUxhDBD߉WTK Wf@*b`.q4| +U=|#@ѿUS-!ZTE(+oD/{Fr]$ 8i{+KYc I\D lyܩkL ./K\^T˫_\^OWqyIw)!&^@)$gԺiݻ"gfB:j j8\w/yӛL/E D{vjЄzpO0NֿnAc,}"RW2%xRLW30Ȍbj(,Wx4ml_RT[6(WREqW- *R +MmqعHfB9 2S e`i{TO*/y4-+ٵ+\<Otv #>{W;I%s(:/X9VZ* & rz Z^pFKI=z` +xhf'f+LH^fa`at|eu 3b6ȇ7}ۇ͊'l2 E%{5Vy7~';KS !NrHzt=[~5,) cw64(jo7c.I_"f)H f.XW+HZτL6"xԼkE#rf`ࢄg:U}!! +߳ [%oƾ'Yާޗ}b7MNڱ0mB | fo'F_v)2r#.NJ!`dTm S }~v]A-S~,LyIsQ]Yx{L>po:Ogě&4cOSf¬}‰zpc#'7}$^,qSpX{Q=.ahN맠?3Y׶6ZPvΕ}35j95Wv۫onPUe \C̞MC”59G/wXr59r+==W^kMaY8'9,-~=N:$_]@Mq$.nhu 秠M5 ͼavwy0K I&造*7fl\%c +,,&Հ'*֗e<5li-:7dVxJoteA]> Ϟ9bM'=1Ø#=$=!zCɴ$ VR>CTKڎ-)'`Ι6(Ʀѩ݅9PKAr-"a+&WmZS-8NɜL8^nfF纞͚Vܣ)tėɆQ5enN M/)NC͜f Ñ?~5m]chGh_HVHdq-ZteyE8-_P7}@ U+&HŌ(T֋dhrd){rNyxUU`UR pswo3DpEL =SGlA10݄N^zg{5( ˘7wQiVfkg9V`h"e% ɦ\:" 9X ;Q x`;W"i +0f-C!Nueu/^)ED~ tܘS(i/q,HΜZ3*Oe!\ЙQRW[c~0|Jf¨5lޱXƮKX-dcduxм) +lhykO' Dj̶WZL+RzeW-Vn(xrtW +vSi6-c9maxl/am#7u,Wz,Z.K`rվA6a⬶RD+q\[Iua[ya^OkUT0OEpl30AYVc4B\';qA_tb3\#9 r k=^/Qل,|W 2X觲Iy4lD[C}j$psݨa̱CXDGf- +1\.D; sN9 ^;t̆w;.MItD5"@ +||~Bxݼ4pg]!K~/\1 +1F5׿xd{F (яZU%L=f .}cVlGZ2/Ř=9[N/A2w{ŁDAkhnlW"CLW=3O|$3Ne<NGg,Ϙ9́e+PG!ǕLO*3:JEmd,:v/GV[eZ9jJXCެqu`Y؉9Cj!VfUz-5 잋Mٗeib̫SSb +Ӛ6bNmpb=$m EmhqT)y)V)6h5w-mE1&nUkFFqE 0!cA,ףƾrCpWC*1n;7*hO-C|uז&WahWL[z$F!; $ Hsp $C#9:e B:\~bLQNmYlK LRfyj.ibSKY;LPj7`2^5tvV%JH/wG#F>+!p؝j\ `T5EmbfqNvSԘ̑'ĻO!wb(M͠j&cVy^˜Ni˷ /K "By졬+B9sп+E<,/8,tuH=%څhw˺ȏ%z 'sI3!dA7T(l@ !zaT٣I 9 GooY|M3g`Jk9Ԧ 5$hcqldi 3uПh DPq2}E&qlpsT'|HM dGP: Ot;=!Ny^$0 JGaMҳb4S :/.Puv#Jô3#Nڪyc}Sw${0 9:`NTk^z0%@|`a^l$z9(J'vK_*3niQj*PԺ5UaRLr4 +.uĚtwH+C" gC핉-KO30=*<2"# "_:~H뮓>0)XDv한DgٚQbЂjx9oLd>C2JzD -L`W^q$_I yd72v9-£'Q.^}ݱUI _"!wG--]yOǯ lR% ټAC([$Hl?Jm+#R,& ] hk\j +0z>+3v m!cfXNLi$Z<ᒰO0x:6ڇ+v|҆s:tm2M^"’t\4#n>,ߜl2%f>|vx^p[^€i[LRuDpRs!I۬F}m!ZA`7p@G Ұt (oj3|[+ 1?5>Y* T1b`m9+?:% Qt8Z%4F*cA?b5#nz+1FAn|(b77V =’ xI޴ +xbZcN>}ĝ%>(T<:p}]I\/F66`r04=%sI2vڰ٘.s>JwG*gNb=̍L7:Y:h@ΫEՋW[-Ajj{+t _7M_oVN^RMZeQxhS4T刅7=ַȘs۞~X{fp :DKrUq+4 [_A,X,Pk` /? y&{͕W0S$U"6T+@p6Ԭ яL /BSbw r`M~c<3)f]->ݭۏ :,#]{o?_׉;^%/05igU.g`u2z?"d$ )ܼaywtBLSѕNfCIRO{4OC슗v'*+9_O=_an|XrX5aG1ˎ܄|@@`sFxf3cWzbIĢD f#HFu +c!{NSӚ-EKrKQrHNɿ+Z1Y)XnDU폫1ᯟz-<' GS9{Sj$=qv +/Sב6 +ĊTQ,6eC?}ӛCHK+t/",f%XE+kچ WB^ .; *&KEFe?X6kPCUՃNcKzNYh9jxo,$3%bAR~ +QC|O/Z7ڴő"L<4++T%L% 厔mTVŅBzAL&- +%d,k2!m8K;\d822GpF`d,z[+Q"cnT l%Ev|TӓG.DD䜕dDw5=>ښ׽, #LAMλ@Y*B 1<{zȺڣZ,O;ǮݻәteuynŃD.Sj摇j&1sj8'1M FI2+밊FvwcX-_{kS[m5X⒣B7qB-uNZ \՚=3 T}jkX}`X]H \~$~Zc8X*ސmDb(`6/ ^d*lGR?#2?~4wL|?Np0/`.XB:@hhь]?>2ޢ$&¦v ^Z+Ѱԧco&m&Uv(D.|򄇶(F&v-[¶jҚr]5}&!y2Q(:Q-B*Ot(?Fhu6 ߤ}NͱiU;Ha\:>naK34l?L`qãXItg>"w@\sl3-9q\`Ha $[K^ZL`}03M*b(r1۞ŭD<Fx64WP +WO0,P5f b=9\q1E+*.ZP=۩_~C󉞢FB|&^"2t2+8h̚\2*[΢a0&:(X^Fn<1ɻ _('$^RYjX`:@U㫐E@<Ƃc]]4==DÛtQinj_TX<'_=GpQ!ǝg列SDcr`:AVQ&Tseҟ?+Y3d=׵]f>y9 L{_wB2;Os;η_P4-C)nA;űFj ^Yy#è,y ǎ@,2ȥkLEFj#فovO>\m`xݣTSMR1^Ub嚤Ѩ)Ur3r҂ұ[jzZ8j2j9x_ X64evw1%s-RE:RՏWsk2bC/ +Y;Bg2Ē=ʢR]j1F.5~T J1͸sg5%bF0i~XTʄ#ʛ(҆<#AC:v.CB-"<2mhA|6; k +7 qt匽#a\qVRedR玩U\%-7Bf:$ +!0z!~/RbsU%B, (#@ua2`r(Q%ۣ=jOy-I7N88g+N(dcCBCaGU Si-3VW1%!5zDw)Aʙ(H2K+ȣ+t8$T&m QboxfO]z^V*b<= *ZX dw74:_'eI< uPx 8NjXӨ; &ʳ;LW|-P&3BLOsù˫yb񣼤gEH!mTn+H)3f Gi&Ő&X⻐<:iX.pzBЄ-&01rzM` * `8 "F9Sddv#cJI[v*FV DqIv>bTv,)'IեRqMM QV"ss77UmUm*{svU.ҞZn8ͬ+81ϼ8෺<Qpr:9 2b%0Lc㩁5X\kJ1LVSYS93e3xLNu Aa6H<-͉( IY,:-яUՠAeywFzPJjr\ܡU)$He~"بH}W-qMam›M@c!֭HuyFS4;skjCLI{eҡI?Dsl>cCg&g7r7ajtv^Tʥ4RI6ex:eݣD2ISۢle(/@LNKDYfy9?E3Zf-/( #b@w7,O+oT3D?V74X V? gџNL Itq,LS AIv eBxAx=N2taOm?>{C{G~TEbĨi#Cr̘J)hӊTB:0Ў-1fD$A*<F̐܇K)9/..Bn욟}8|[#.sF#J>a9pŵ|K6H&PsEẇENa#ާI&!782*>bj>bZxn':ouEQ`i!i' +NLg=(2:l73j;)?"F? + ͙rŬmӟ$sÅRC11Tfl[u{6=,cw&Q'C0rL%Q_|=ÜOY:^;f ۗZby4IͳEu$ v uB#C'ț)[b$cG< x\ éXj5AΉ^)Qw^N]'{=*,, 7~d]'"Ē݉Aݭymhh} +†kaɫ&篼Ҝ+ʏVL:Xf2Pj"U-ႀ J ҖKG bs,Ap}cW +왇nҬؿ6CtS;ٗÒǗ"8fk"ۓ`q.~-OvzýT!,51yg6.u ^ [Ӽ^ZaF>VaZ(3%<-In 䗹~$Ȋs>Abu#@`ҭM7D:J^"!B"~y-|SG8,>f@翗m>Ϩ6D{[䴇Fx6GS6 +d/~-!Jё_(uK9Cq;FH33D;LSGpѥo%dvJ uLi{:5)MSN cԕfIAݣC +{8F]Ot^LBM[7:IE[YFLCSR,>Jҹ<ҥWH|N6JZIpDnټ7e-Ϟ\# A~HHPc2Q0'^bCxGؕsA˥KXxJ`l.E1q-KP|LLJAUj.k{ +SLtь͜jט|ߴz=5[8J,-M"5P25J2io8YOltw^rrs3lAf/Z,na l*`i%C}vch%K[;% +@=`NǺ*8cDwCR+,K@Ҧ% no岺G +ߊJTHʹSgo-+ m7ߏX8Bh#C j34xQ:JC0i} Z $B1ԧie(j$EKQ:l6qP2DG Frz G9iA栖P}R<)XWDk50tVI]s:4bZl!"ΘᚩQ`?0d1ΟtPEr~Kɇ<"'OxcSXކ| +*+b_H<=uSA\Nеܪ<-tuna v~W|񉥷4$2 6ƃ&݊`q0b^DFOu?O8Jr+=2]F˪=[`Tl>hS,L|0`Ccĺ,‘M(#bᕤ!X fi^NA ƥneByHEzZ 'n"ۺsめ. + +QB hrfP(@B6֩e%y;'}Ir鄤raqw.#IDͰڄ#XM!L.2pH~>_gB5G'!B˱vG'cwZČһ3B@X?ȌF!::% ;][;e$QʣY},yMޑɢU+q$K"kܼuT!=B'(x)!_l]虢h&;1[ bc><'[K E"YrwZ\Ȓ'#\~yh\9X.n:WUqZ-wzUQWBiyJnwS0=@Zz j3򳣩R>q׿9`9D ad U"_/cBc +z"@ +VP-mB#5 \ZA$!?t!DuJPhBc% y_S +Cą= $%I\c bl $iS[u2zQlRzڞ7Kj4#+R\jmua{iO1'$bZ߹k_k )cRX>4OY՝CknM~,k߹:U +XtOz;oBxWL0xfg" h.))BQZo2}9RГ,vj9+SzݲMN4'C My!r Fe% 9y1zѨQϘN`ةiT(V:VΪau6P}M13:{7lsjl~Ng!wv)_KTLg ݏ43YQgqLN 9-j=.z_^@;qLp{3HnC@6818lTG+]1w!KT +"=n=HHg-wV `L lcYlUi[L.:C"o/ 6Gp@/߸k0v@cG󧼓ſi@z؛y&ӓDQ`*\! !;ZmmYE>lmQuTj_^imjF}27z`" +YsEp*rh 6"ܛ?b*(.t̉ +?&v +l{{q2hվgNsmsUmg#v?ujo#veronklĝdپ暼#RY~(?WȳɍPjσ_=@B®Low;{,x04_cygl$ѻRcH?Dڤ;7UI L888[X9twjZdZÉ36%/YiO_1SndD\yrJ: c`v+{Mqb [9m6-#cs`äԦx&?% 0*7q߶UJ *ߌinJ +-v_v "hӓ(5 Wީ ֭ibEnv\ԋ >&TYf4R8]TκK3ԡ=t秨 PxS}S0dAI&xg,ZΘeS'(}%jk @05m; ʨ"=Kw]2h>vgN0h啑8"~ cоv,iiZdS/^nkk ]h.ۀ9_d9\b} @TjU^ H/8"9>8/7G&|l퐈ȯbnmOԬ2;9biNx\i)cѩ@iAU4g[Q+:^YmdPPI `hT 6g`#b1 ê8a5XgG: 1F&W@tJK T)ԟy0+tJf0jUou#r4m1ee'Fd.fDrR0fjO`hOvj AX-O`oΊ:w/iiu}=L/. ޑU=5~^-S}L >=9L\L$ ||M7<)q?gYkFsCTt?|K6V}I9Fvd8]nB PoJ{tz7Tz~ |1\ +v H7o`9SB1H#MG^+сGĜw8o 'xn1?wf /anLhZmAt/(g}aQDn2Q b[A'9$ĝ14M(sڜ+U.ƭN!i# :=/ uD;ySjSRΡ;cTfdwg:c($ɾÜJeF4숳N[75H'9Ve5E҆i!hЗCZ G1c<^J_ȷ|'b)O.Ͳ׮$f'MO8zveA}NܽӗG7#.kӃӔOVYդX^N|AXW.:Є} 3 }K28Ϧc4#B#  } "B6I &fAFՎbف$8Wx?4i?7ߝu4=GPR ,.WY\Lt Ey!s.2JK :SVoBCա8FX6Ԑ̞eD' M]~w OꭁZ#TQC5kZD~o,Gڃc7x~){NQ(ZrPS訁7DyqG&9RQUQJqϬ [b;M({^Yl9{* +%'NdEЀ\׶IROSBxiU ++'z~e* d$ +Vki)vEJ%mm +<`Q`ÅS 3tiu>69`39ghTzoZ)'+')6RSGt\J/4ms{97oJ~κ'Zn7Q_?A.e%(yQ&<ܪL8+g`l!zʍJySt6S^E8o7 ޛu#]^9>|pw11YsY d&,E3g쑡[ԃu3|waSwiб"!PF#q +Pr$8>9a^'&E+AuMjBؠ +[E  AlѪRT)x]aFFaoR]{s0ԴV`K;{2Y +Dy,4n`OsLs$焞#"ɩZZ\ԗeJDDkiPsa+qhA]5(&z PN$e3to7լ4/&q`LUR]Չ\Ө?=_5`k$VEוAt_U8j:%V0wSo&o YSb\D +sgn.'j7[)Mφ8VYW2+/|_|blwSn/D+nEA +oH2D¢󢳃4,Yvp 3xdX'V%۫"35e8PCrM;2$_M/',E>1<5NP7]# 3)[hSYg- e+ +0alw9iٞVFuCȝ4CpL-χ0Fx6Ōv帗 } +-=Mh>ztjq +kp@oXg;(}eZw` i0})Jˡη$m q&F]ޣ\3G垍2m~Zwcc0;ъ1VB9L۬_KxPwoS> nmn6 JwHT8%NLK{Hj=!̉pFk1U˰_R ]/tƐ~J'M}M!\+Aady*A[ S'Tg҂/m} +,++Js&9bQV$5N5ueP +Zebuvyf~fEf\foM1)|k!U8u~:b0" `.gUpV<IXq4Yzѱ3%!lj ^6(TD#BXZ{X' )xɅ-9`@@I<5.K\lR%}Y%ْ)^Mx9>Ò/mtabw 3Fz2iw딸w4k7a*Q؆0OwX&uPZdgοvȘ=IJ% :7ik) Դn0j5.iݤn̺ԬǴ AjdU +oc0ֺ`t_x R֌w@D;BBe`VTڎbv3Dr@QDq +]ɻop.If L)c\ϱz@xF3j̉fW3Q>aZ&-Vf\UqP !m0tByU,76r_ԥjsN37Ir+{xN~-3=E`j%E0DsR<ͳ7X!W\L⤗LEQH≌ r1D>JW@/KGmLצ?Z^IyFz+)PTn\\4p[bA: !873`&$& Ə g +JcR.fSQ R .!j/m1I*byD&05YXH[_ r)] ^uy[ 6 ²x $6Bm[\G[681>A C U˪1:q}9thc!pu]x/mcɋ&ٜj1n3 oZQ^YS.(vXhԩ#IԱ+]L/=ITAe-c+nOV8 +p7P2=A,AG%f鸣XE.ABidG#Ƌe${aD{gQwP״7PzPi*Vч} g +o}bf3 +mw]F|.nR>ʤpi(ue}= {n$2+dT߲|BUtx?ǎBl4U}@Ɵ2ztqf`SSwƈDET;qbz +OltIB)^ *?!DQ^!=l\ #|^*;6e+pTC}ʝE|DG@tybj.ihCIB"C.RM@ M7 73wfyě'?rE Ö߻`d-v+,3iŀKG3ZM weʫaqY%mv{y8V`M'tPVVҵ;%mMӽK]k&u+JT\q-͍f3`.cunl^no0hEդ2WIHɂOIh,bD0 + X#Napݡd=W3\\2< JrZ2n^m<+/^gQ +'iF_ +^vcY+5>|}Y^Lg2kl4bI} ƞاXxEX'Suf@[Œ^!:B  _ѵlj&1hY䴕 ]wbQ8Swn?N_51pc!4W*5wiV#oJ_YE'0%$QĘ$n3Mp"!-^lVƮUvw٪y Tq~Z۩> +IJV>|~O.)Qp>Hb<(>fɞi4&n'B;1+rꎐ|MrxV7:l|5[h h&x#PB[fV9*a%*JcQb+ۥ( 4vS;]pFyU7P=F̭̊ENNLb31 +ݕI蘃Q4`g?*SM*XÌGQ3,PhWm& +y;!5?vmr"lnF)a@ә=yQHQ9kUL5)G:c<" P6;~'Rڃ ))kLw\2ioנ.|cHv=]TGʁ4wZ !8!,žX/t>{SP_/|bIMS,g0:E=5Rh7Kҝa/ҝQ0R!0{v L͌/?Rkk<`j6- +oLWu_\J28<V\1e>uXdX*s-a'l@: h&otnj+E@e0b8fgjumvKN[]=?1JZ$~`7}N=F T_ڻڟa\,^~Q kzJ}`PbA8Shsq6bg Fɝ=y1 ȸ$Ulgb~o;_,K^BrqPh;Y3f_koA4?"S@xgq!<@rH5EKkWaW?]aPJa%*G<~V4a]qw744Ifl +}/zx &L4DYE`{`LO1N(B`#daLGk.}?tRqZhOlct!>/sI2؊ +?2~kYJۦytOWCtxH{ ;tA56y!.!s蠢WyDXs Ɨ3lWi!u(c\v18Xͥf>; {>W9z_kEDE]F/&G4l]%ym؈=Ij#.ҬE!*>qI+]=ƾpk 71겨f%*H?@ SɿeDQ G?qxȝ2YicO5TT55Q DžI=!`dJ{١=-/-~8J,ݝ^Y hfo:НХ Bf㏟ +[Q`GUqx`X.XTX@6ҁ_lp!vy[a!'FkbC*cLwDc1nfUTFf6<f s~H)3G +"ޛBzfa2u a0ߣńKc1:窏tz^o$^2Q!:6|⥽2;@Qb݆P*YO!rc! ?b?QU'no6v0`>{Ƞ`j|Hpl-_fN<_tn9iʿnhyۋ>$Cwj]TޔT]jk*ځ1q}Ex*y-$2nn-IUu0cxGS&A"0 o2%-EG`0&:qx@Ngsj3sģ2X"^ǸY$o{V@@y< KU8@bvn5:M&7`’+4:hQ"Ƚ2YIR2k 2I):ud]h +B1t`̰̒Sf]iZĔ>!L +mF~c 1]tbŷC{ۣBdUVv܎ []=d MWFU6O20YyU&'xp +>E\{2ȫ@K*uQ5sQd>Ӗ3stӯnϞ>tTRν%~ͽ&Z&zL%VO$ZE/M"u|ݩRo[=٨[hnX]K/z[eVgS Wf@=@`qs傶PhSM/@މ"I\ vnZ!, *!MjBQ.rͬ;e~_N#P3`l%  (q2B,@LvH4?dٌtNm-wɊn u8Yތ۶+ƴ㇔1@_jOze z@>ia /lb#qq"Tl2AzcWFu{a6:}"]xE'.n0SSh>%p3kR\9 Td4Sb{ C]0ASk+шBFAJjjuYAu 㔓W'kq+5$9RQHgp˜qbE9CKh΢RfVW#rVl4vCo.hfYw?PD2& ]x^+ W k' +VIm# ==?ι;XP-iV`RŸQ)ns#ρ|bkO%_KDXhKg\JQ+$AX&%|gd!a0HVjW5Uk5D;Mђ;sDْBZsobM5u jr"-;V|jtqwp2b.[w ܽݮ=QNr[wLM4;&쥂 +'-#"M[hY]$JsjSy [7 ڂj\{}tD];?)$(hrVհfȃ=9$#*ĥ@w.m!% ɂ1>D:KNp)nř2:vx]A4Kkv0%Kr* ڥZNۦB ^ũgXǨ.. k_fWE<[1 +P,>I '"!nWSVRRPEmi)pp29PZ=Μj=cC"OCh (.3L&rQr3ٍRVj4()ojA&5)T<%bqPTb~5bZl\6̞Y:k `h +!hu\^5^p +X ylm`nmB6p颍y + [|={H]ovL'&gwܱDwq*587BjǸ9ʉ +$ԵB]NpZ X_t񠽄a[6e/׾^5-7OT;k/\WH 2& +]ncb¡ ^=%3v\Wgp 4qZp@}˚0}J>!$%l/҅I94Cw'%|14{;ugf_޲[WME{θ ]g]iwn?!AbN+pw]mЍ7ka2Ѐ?K{'@Cu|8k:mwAqi5rc.)V㜶ii.5hKFVD20yZ&kzu䈞eZL7VNB'+L@1JTt1iq8fD BKAcc5E +uxU>k d֒[vڹۙ\u_|A=V  ;ցhB2w1Lƚ4f|7 t^+*\KbS +r %אsx>̚\hHP8!}PPhhߐLӺQ%Ze7*Z~==r +^|;T i8s,T]`+L"`:ZW"t#Mɑq=e̬3F"Led>_5Fe/Je]vth"Fxup +ag"i Q!qw‰ pQh[GrPG9& AK8n Db5@j!g$uBWw0KbZl<[$@&7أq/-f M'>)ţm2Q8t)ZsId4z|stR9F jWo\k]&-6cuƻ.F*R+WM^rU)K?`H@nݒyN%{CcNpPB"NW2k*f'%T(,W;_q!;[W;kI@լUP~do-aI3 2(@٘eNb!#U Nʫ!/iVz;ySg|oxnoy?r}ly|@ΤAӱ]1 * MhƵ HҠ0 fk|pFݽX:THcnZH1ҹ$:pf9ﲠfAXEHwp `PQ9`PT~*>oh:6`_m[_Y:SueD۩[)$e0 O_Q;A[2Q\{*AfM}] ,֊-NijCo.zX伒\)9M g8[0 fT.o$/GhEaިrNbϝ8񳶂FG:@\vfkJG?RE:Y|g#Ca%6 37O`v2"d@Jj"Sh2gkkt )hGb:@XRa3 E-rqz)"(Y<J7l?b4`7W#b[ ne”N)jiu 7Nۑ&#|N]ٺI'wBJ]xEWGݻHzcbSM_b)d<2!序)S(Uqi9LBUӰVtr鿆la,eL/#gdCS#Rd48PQcY x!AbZ$ el$M7-أYWdNVc@L@(ƾZ.Ԇ[Y sA ׃XpUSޮ1@#/kbscI.lƏ%p!v Q-h!J\j.}z!: %$w),Ò{^NEYt[sk)T-F6E*؞h(AlBN 6ؒR %/enyFGsxTFݬ@TBAu-4 y\狶&3yWRI +k2Uе}5nɐJ u;HΫto{SzF -mqALc*^hcYMyʌ`xM?{iL ;nn;r\!{(=\?K?nGp .n%qF} ,09≦=6UeUDiz)]kQxJsžjps~)g I&x_"L.pA˜&XXuX˕mSx>,2f9p/1Ʈ}/wow-;&SB1!Ի4o'$)J!oO1~t"lYj2XZ BTnHUV}KT&9 >;%Z]#4ӌy88& pqKE + b1e vbaUZM67S!1$S )7\NiWi|d&l[1lUFA ʍk_Ҡ(QI'ͲhZNxjMVw`ŀi~ ėeH -fͩʺ=oPP`vV=fg XdD&G+5SyczG*u%F.*N*1,e@''eiAWIcqpD#`5t1#d45,A +JH076JneA2NDX~1w77ŏA?q!Rs)=gGYJBBK_UvwJ2T VMWl?%{BZ"W]JKhXF 9Ԓ:/rvL垝!5\wUnZZ6Օ=T7vyd˓QU+vRb"tI:lګ%ni7kÄh9ϲeh=~(i0!iɅ?K[9%S %oC Sh:M;k)+M󦗍HyadtT;bH ܆mF)<6ZFJ嗉H,^vl"nl7( +Zp)R +^΁CC=# '*`Xf#6ftsOVt:L=< lWEx !і*>MӇ*f`/~A)m]+Ā+(HDA)a~$W1xDҥ TotI)<𮜈qH? +M|GBRewrk=5$bf_ /yN >c@@9y08MN{C;zy~nP;2^AS~);%}Vȓל݁jGx'"hE2Dqi|by|%.I)Q4E~8śb"f!G +L듭"v&Cܓj"0#uqݑ/ݑ˺/CC͊;&OVց|;CFT*y PZzp-EQiuS:yRTHK> 2}cTS4,ۧ/#;BFӒ7kڻlPCct/ Z`P=I+q*4CJBc͞4y[tD?ɭ;H25~⥬I>IuǐmcgIS %<'ivEź4AgmS]7UUI`Dń0Bd/PL3PlP`18PnU # 2xDר,E?pfuH!e{ 2=Uc ۲!/rDkϲ>$4-W2;?pvCOxpnQʮ _pڄuӟGh!XmG-eo>hi<Ҍn?I$"i`ZNx\XEd^tk5bI\jJkk J_FmhM,z6B"^( s3әկ IwqFT߃g f&jÿ;u6iGN䞬懔J7 G,6AL:Q9[,lQws%[9`[|Ў]%țS7L@eRjx-Ino,60@"ÛJ.) bd`com"jORYEK{'f!- Jc) A U01%ism˺vQKnIPZ_(IM!nāN"+Cu&}ltZe.TwȠ+PW* +=gPb>ܭ]VZHTLW@-@|c >卲.+CZS9kd*e_}B>ӖFs\Sd~fꌆūGj}\łC~[k~%.i;RNB%;AH2[Jf9X +knD4c?3LE`Y_̙YL٭~sQG(` kOiR/,hsU9߱L";YԻVڜ"#%KsQ|AkUYY!iMfĶ(#mBJ?ɓCЌ$]tEf?c(fY*^ZFҬYvdXX~asgzzr!.1rMI-g<*+P:r>XFOÛI@ 7G2deLR&v 5{vVoQu1tw,ol<[#o "H@R8~at3eZ_4AA̖0 _T0 }O!ݐeFgeifPr.n$[A?o1׮5ɔcP:a$=ٶr4t Tw"a=3PE3\Lf'S_`01Fm88[ч#I#Fڢ#BWA-nlaQLS~ppY̖C'l3XajoP%(s.0h"Q \ +/`YxN&SS}BGjG@w6ԕF+,G[6/WY ;{[7b*T`"&`W'hk@NLCXFVh@` 4J'%(lĈKf-tJ>S?h<&rCOGjht/K%shD< ϲ ZˢfPwT +MTyըd +e=h=£ؒ~D[3?q5U5tv4_6Pi7tXS(C!Hg)yu_p7da;{x9/! f!8>W0 X)>2+tFZ 3QW{eNSJ`@BAT:M"e~U򊐝ၷ`FO~څA|ԴAwo7dCʈ4Vv c,莉EE8O~Us)uyFքC$0ٔz޴ e_:`vb:zl9w vYE&ܑF\<fƚuRD3]xaŽPBO 7gՍ\O<9Y%%sr_VxNp6W/A\P'=#+!61<1v 2{et +Lgߢ1(lt4Bj?"2-Pg¡GF-)$Iؘ q21#BR2!GN^^ӼnTy#+2% bHs˾:X0W +5$IHM'ʝ-Xѯ06 t*O`[vUg0PF\8 +؄ma7|BM%NHRm˙,!@ɐN8D q9&ޥ̪ʙ,(DC,%rZ#)Kn wӯ4K03[ 4sdde.cM6"d39K.,UQE˦j(/}v֥ʱ-Mg_=ZkjX݅B MGcDLB(!3V1da[1v;Yln?Tׇ4BćFs0h +,>_͘d( %7_`6?ӊ(A0ރهKiA؋r|fJ^X^8ANY;[(VllP^%98]TRxS50pL^Ջ̚C`k+X'MQ7 T8L[x&X+ɹ +ka*j9ޚgX')4 S]ӭ+^:`QD`66 JI%)gP/MQDG s)^D (ܡXzl`+iiA]-8YjH9?6^O+ZOx4Mn\o*^LFidPO|Z^,tm!=g,p g哕vxՆ%mK@tK6uL~9յoud>P*-V1u.!*|C Hϧ}2숷q%DK!pfF{'(d#Є? Xʭ/*m'nLᲤfUIrUEzpgI-j߹?%3OF|OO +l7=?k~?ߏt9Yi!&{R[w(7nl[L=,\87LV5v|ɰI2SrЃWw3N.N vNn`۹M$!&v:VP* +6;3wsh@;T(Gظ1vz~G0ص7 i`]²up4IwR/>QE7̸aC> -ĬBZDO2xC115h<&0zE +*1$nmA=lP}B8"H +|䅆TFCe'uUMf݋-\3ޝ[VT6%St7\\B'E}=`˶ӣLnz4@sp5aw{fv-K^J anLr/W3nF)jKyjgNbw%flx]h~mAu"<Rkp;]P[(:bvX}6J$5Qv0dVx̆ ] _# }x,pһKpyĈ/J%XP#΁tOB>}7ӷBY+{DPhYZ">xyARW^DmG K %z{Ga],<˛X%з=<2pN"> ).ՇcrU̥m]qr@M6ސs 갽c2Y{h$)IӥTU؊"}GlAG_RJH?!ܠIaapvȘTA$H3ˍelX ~p݇#-r>rdʕKJ:z:z0h"4 ͍#p0-2#nfLȧ0Is ?=/b19'쥴 %3KBGئ4/n(G1ojJZq6[aqt 0hA^%*W47\ +N1ݘ|Q_+DZ=?n2J[ 9O"-(;3!-wExC405b|sj3u$kj;"8P_5ꠘJ4`*R7J} !bCT)Ÿou=D0D&6 +4v&=Т`L9NȿF11wb)f+~Z%}W97cp΍2Gsf1P#WG*dD+jUM$ pIL3Mz3T`k];ۚg;E3G7vY +y%8T֌~㫫摐"[UO)W ɹvFٖC}w!.ϵqeLY]Sۖ +A Dj:@\9Fs qSz[s=%{ 쉻{ + C} u_:̜43Fx3B@ 2[-ZEt֏~M\"ۗnoq'piq6mjY@u4쎢sK0ѓᲘnxy:b?/U(?1T Gv6'e-a1U#hEM X0?ngɔ=gPuu[DX>x [c?sWZQZcFgVt `m S<3cWE>mS/( v@>,F T2= =_I~Qcq2>xGcILT.fWm|MKux4sdW(p7'wnR*^[:.+s2b)W>h)I7cftHX.f{naèNhdQ]IT4!O'&[/"(l?[_+0S(d)Y.epֽq7U6 +F2ܥҬN]mŨ[T&eDo1\Idՙp9--?zyLh0'C^9(j.e}%pL|Rfn.+r΋5KF E$ˡ'~(ɪKsؙs2wdc/}hBC"S|ZˤR^_Uy(B֌ q&IP'D5Y|Al”G:/,$Ϊx'ugX!3hz +{'^M]t6ijp٥Cב=~ (=rߨ!w!vkzZoDoOtjQV‘Շ:Dru˪#|2Ri@RQ>xr&n@nLxhHl ML!K[B(6 EZ ͜[4KVúʊxO}gMn@|喖W;H[8Xo%r䟐ڈ ENGp~L+HtycnNdHou<n&HD'ד۬to{hZmCΐ[Ͷy!AhTGTQ# N<*a9t+J!G2ɐcʱ6E5Xs+F0+`XLWcWm}(cUdvdYmh ;ڻBv,]$BRh2[`[nD$_ ^;cA 6imVZ%_ia"1Tdh .^4!K#&b6C&!@A^h +nDfA1lzCMFVvRkibIi\jOV\|#]&n=2j,Xh:"!0&'~`ԠLP@JJ%Eile< 7E x S&.4wYV+aڵ%V餘? /7$t87mMP?Hfj$ H2t*` 'ۆOʷXАn6-HCVlINǔv5Pqcb!t6[z=Qrٛ}L]r8 b Kj7 GvI,=E0+A%GDљi1j`yԳZ%9] DLv)pFvN5Fl&*%bBzDD,I˙񎟃(~9%$ 2lMlEȌEhZ`sTcCfvrXQIJ?  FßP9~>y :ZPegV{6L@0(~;\QȄ`$|`Fn6/qϛp=jgjeg 1~eڶ,Q=S0%/<6`N^^NՕbڕN~*ڝ,OƉԉCK.e@ŻLXɴE1E˔qgflf"/犃 󳡙fS&<"e@|>]N=.4`m"=bҍx]"2E;T jֺ :۵wV5%;*34t.GU5q̆jL}d곦A􆊾+8J%)iksRM<]mZ%; ؅#bD󃵅Y~gYA5M{s!qA+WK:LGw+ֳu)w}G?umlC<`ZJvPւۏQle6eʁŮ +>s_`||3Md(AGwxEhEiN;KUؙ%Ζ4Zl|1k6`|},- -IM9YL:snXcȹhqfBF#`{Ɏ[__`~ya| + >{7΄frzhD3WBSDOp~TKыz꠵ wH1)yCH]3~} ߹"tfQVO /8nCX-2ms u_ a*bK|.$*.)f?Cn}jIhC`w +aVd o[Vd13Nm6SVdm4GcLEzóM$:ݧoM ҫ@bm2x).dwKdw6mzDg"==4;PCD-.?Aj[}?I_운YS󭓮28u율BRi8R&mlgN#0i D,N1 $P&XekK#^l@Xp^SqXDЉ%jo8=)+ IDn 7y|8xHw~VHUՕ+N:"`+WQ?4 ozMTvW $BNAFyD_8egég+dЫB"> ǛfK̋ 4)E]PII {Ș#:iF]bb40=wZ4` 6jC r-5ѺG"\jZ.-[,1mñKB"с& @y=ܝnNY5NQ/"7a/!݈4_$*h%FIzA&,{j^p%Om,^@,h$viUf -9B KNY˓4vT2$fkؑPM$^:}]̖Fێ rP}uPͯfmop֙\\8Jx,B]8j2Zv,ŖPv3h{ڕa2n6Di2F/~O7жrdXw$6i`9g= ur^G+Xmd`V,lJ6E>,&R܂'!{$ +fq+nv y7Gl ~Wp}&E o'/zk(9rcޗ]N ]i=zx|z˭z&L)ʫ30/QemIlx=;xVZiWRs+-%^Y\uvj7J6ޡe,VHI£|@u! SvSRR /+$綬tMo۽WmoK-.Uْ6=;;4}s4h.:bk9`M-S2B4(*ل}6N܌#!RW)JSV :HckGcŸ/B#fYX)Sjd]^QDjB^=]^iz!Ng_51}үɏg\5W i@Q*@ʱWl%v8oY6?N9dڭKtÇ]X'e[ +jz -.B3mXT$&`hٚ|Ц%4bvY*r}68wsS XfQe!c+8D"%W#p֬8tɃPwq:˒[jzxSffNl kV!6#hx>O{Q7= s^ݧ[N~Y^&]1"L0aHJ9N~"#ZaLi@y5$Si &MPAX&C28b;Fi23ѳҌuBAklYij(,ig3$!{^X U 9R4:QdA'DaGM3DTڱGN20\86XR1%6nxf4L!+"1 Ahn@tjkJ NLXRLSSK/j c6=25B3MQf;43hSPS89p$biJSY UQ9Tp6_1՛f+vLD +t3?@.Sm^.rj8v)tVo,ԒfbFR`=L_:h=_do6#H%L9y)0L9ͼ0M oqӑ9ZNBV̓HۺnB.bdAYiS>Vx&֭Xƺ!*p1;x~qnFx +#S5T" ^)]<|cY3T1]7EC&J;zxL#N{z )ޛ +! a7/ZŌ;0jDmg y[.ZP67O/BdԨ6/~HWmoKpM4\Uϙ˒dSJR0.r+K9kIiᧆDeD5.$F\ :F a2`_hepEsRd6!A<¢0ɟ>)5S5{XEX}&;Wوfz <`Cp Q"9d@%H4M=$Z Tz׿ +~< a +ר-f`0{|"Ď;rx:{.M. owo=/t mq#<*DtR{7 E32BTI9={rge1-e0>*eay,Bh):+.S1D< snBUgrI Sy YyKO|QzуhfnbQl'TWr+gtƈOLsP‚?SDt.!)<>Wԙ9ꥮF#Kςbon9d<*͊sj&v H4/*bqWRClŲ||q=[^>IiP41'ӈX[X PF)]"#ч#ZcE<E4b<mE$u҇13JcT BuF~k*wY7Z!7ܞ=Fwȷx4>; +w >{Z{%7 ]:8=%Y/@4=HkZZ䮘H]m;;ͷZT44;Ih5;A/[}7^7A4$YyNYj&XL79ja99zlZ '4,NWٳVdXkF)%IAWeHHH)ԴJyھXE}%5Ӏda%*]Yf) g-i(Ȍ?C[9ҲP+ӗ Ufw2^l!-`*ޤq杉).հ`Ɋ:[j=a(;}\LlpZxV*?PgS*l[H۱$7#qX|W6{O_>u1;R!C,<<\9,=i0,yz){0Rh&xO1Y@UA_|&61*A[bd /#$fΦIHJVieTZ629ITB}Vkj1fc=ORi_=j-2~9UN;{sM8N0<:FrMpvx^Z; rj'8;^YX%_>i$nAb2/=c7lkR4 ,WC 4W3gb9|2{ )9 Y6s߽\-;w +%T :(@tzA[uӼ +2'bg}&}@s;+`8WZbӕރEX"ktmvC'^O qO-hzQpobW2Z| **ڟrsZC%̺|Dkܡ4 N U[1y5{ , +fv>6QpnvE y <ʞ5i" ҄|"箏^-~-~Z^&fvPmK}^݌|Y8z;h6 vR1>]^sܞgZ/_ʑἃD LՁ2FƷ^9q ;r1w +<m dP~CKo\|?k~0?2k iгԮ8u +ݔ +XDpF)di#9#کg*^GDOƋd~JxFeOf! 4b]w3iW!dN+l%("Ihn +u7F$eh~s kp6WʞڿNChRX-)k EW"i(E<Y7v~p kWoǸHzκz>_@_h J *N-0Jc`[8M]a8o$`*8.&QC+v:!V=v&G:+fi6 z ?kQZyP`'jlhi\$<{O k)pv69Fbk,ZhUq׆ }jY!1`C,*BiL/Ӄ H](h\'ca #̷R, 3JpJa 721;O쨬ӜUW91bBT ba Tmxb aWo@ʔWV wq]Zbg,ʈzP+0clR\g?%cdC#a^2V%4֖wvWz[ x׌ѹO0uiy‰]l) +iSe'sٔQj*<4ȍLa%Ƙ{5H& gYzb-RAm}(tt}, + %"9M1~ZҖ:z QKWOHT,&s_5Q9.* >e]I2tk5LV5ew+ %inу+wNS}S=vZc:pya22kq &,Z.~]HfN,d7IS+yȚ1>:9hS)4铽-L۪o0OQO@jGe#/ځwo,L@? +i F[(} u@a.pywwH<I$ 8|"O/6I94K98{n߃2] w:88Y?Z 6Y&)u2T$V*Ԩ/OM2;]hb7MLo\.f7ynFMI GQfq00M%&t9DΞ=4;oþ{ N^q2VUd5hGv2JbMubGiTdZjaIjbpDw^ ghJre05f0\Uf8t:m]65^6[pEqc QOc^]3%t4A#͟@Bv.R nUʙѺ͹r +H9~JL&ud]h]>$h7hW*{y@7ec_[cz燴3ay*]U`tGPS!W7F \AW+Y+d"=tݗݷf$q?kPM_mWjtC(\붖 +Ϸe-ʣ_OvfoP>;!^EZԚA?X}pN;Ct2]7a32˸aG˲8t>ERZ̳K22ɭ1 +NFItb5B7T|rcr/&(EO)DJkP C) 밫(&5)l})*N:w2h}"1M8Rwۼ(c0 &?3kC4 sOı2M&rQ$\p旔8IGNGQ׈ϕΚt9(1VC͵$sWN?b%5P>|xҒ\Nwu~_ +!^ڃ'"c37sKVPV4/[,U]ط0jݝ:Zy6Su= W][ 6[ V);m9́J۹v9ϪTpeb;^XT. rq%8M;m3ɋ$,6 Ov6cWL4jKGZ8}"ͩ;ǡn(09MM=gmx~?~TjZ "aD`hK'cXdL6jfJ@iPtH9I̜G\p +#8pJOmU!\:ZmV|V oi;r%(4'r}mV6mR!)Ǥ,46eih%86nc6"reJz좃zcZTx҇-xݹb9} N)ɅP| ']2`HO-]<*Urdp&K- y<.2H4T,"~q @'0BK*mQ[,|`X{w`TbM=@{B(M?{! 4G}-u<#u +ڿ'JDKj8o:-syuhom<,DWyEҤfzEDRbzxW@sE# HҤjyaWyd䗆|jY;EYg3wܳ!Kkmv(wRxthCGhA$ox)F#3r~HUr\[5H 6. ~,EMyl|p-~Г={~Ûj|'d5HNɼE y֫nAe ={%"YڇpE{6%k s1$a]x%g(j6/EN.wi5:Ge*w30us=>; M&tO׌Jb[f;(%b}!Yv6&Ѵ1:wb5^ǀpw_oRx; N-%n5T+dхx5FLL\Xȃ19Lʡ#iͅqDEIBiZa'҃{2KƉzb>y +aWyKiX +r)tb\ Q1wJ潢` +\ &Bj_D/Hn%1 $ᤜ;W(cmt"Y5,yR5bwKMn`dUk,]o ++X΅wk8mcIX*k|6bgRLaQ9[*Jc +EŶGό~-מꆠ0w!4?%s4Ecxy&Mҥ3;ckP|DI6'9g$1K2K|N5ŁvN?58P61#|6Gp?Hb_*cMҥ*P*j9:}E%J?#u0XԾA=SB!0T0I$5֚6vmc+ŚA8lWTδ+\5Wd/ιvE~1XνXIh"`phK$`pmH}O` FI4˖Yi]IL玗I0[![a;KEɒ!mqL[ĬARRcD&(^0P=`:$D gz+өkPU%! Ӿz1"IdgUطoߍdP2fNU +Ng[HM32 ? 3vT +-e"Cx®oZvJsUyE`S:<^ѡtq+s2Ltw|jl3ffOwq|He虄45 Ɓ63$+4[vu A1e"z+Isz5,䘖p_͵M+#5n'ORo $oRƚ;u(3gQ80U۔'}0upq +1-db4FnĤE(/R=y||R~xH3*0EJbbY$<^M=Y1"a:lzz;: EGtMwz@cFp;z.;hrǦۇ;` 43G-Qyýx[tqh|[q3+gzc[{ĨJqҚrh9^團,WތQ.ؑM4x0R.j\-dj9(KS#[BSTW['uUKS'6C-R=R]bZi *Cתq;#xYŞ7`"y8Mf1;ޥR|wX+8~\{rwHܣ Wq{*+RwhNvr򆿴ݮ7|B[M,yrM)H{S셫7&&y6Rǖ*TUyBհZƼgD&^AûE-d&hknMg%D[_{WX}+7VOZe~QY~*U_ ]8,wИwt2΢*ʋtm'l卦%>7rxVwuwnyi{2(?Uy餼y^U_ _=f70<3\A,^-}uWGL SՂ~Z"[is$aW%aˇ"vbY{A*|9U@lց=3殮' +ǡX;!m;Aұ_RY:_AHmM"N۾H}7ڬ/VIR_hmHΰ<gd* "p{!8 Og1^>GM0& + NDӇ=QI+,ԋlE_c|<oHqԀV>I;8;c ԟDP)##:)TQܪJA6I"YƶdegujKs}e,)+wo/~`d mH=p$ƿl'L+gꐣ7/MXuO7]_DѮa8T29lb݆*8̗;!{g^͊tQyްUӭ:laQ^~ڭ=~v5%[>$~{{ru{̇,zLρB '|T?u Qi3vYY3 \P&8 JdI(xd c?Vwi'4eT^ +3q(l!!:UE9STS}ϞCTP '6Sna{"Q%J/F2;6g+\=C\zҪ7g*ֿ#;Wf CT)o+ĵRHNJ )ɮc38l#{}"oXY;XZ +Ʈϰ9ZX.$op/)89"ӢY!ۚ Er$'c) {\k#j!oZk=X˂_۟2_~Xsެ +QrN3f+U'QS|,Y Ӗg dZ )C=B]$]R%Ftx-,b/p.hFLE +r7t(2]I&@/dZrmJ m4?A ܴN.ւ CGec:P$v!!iT"VȑN<=NJd$P#΃2tٕE&< 2VA>ǿe9w`Zkvy1ZmA4t!m !bx$G˵6r+=\DD@;Y܈ ,G,]ٖ u/$8>ࠔ̆&L"D-hqlIm 2,KW_(u[.اLX[f ރkYSId$9TH QJ IS]¯_CSů>ДU6h-;&ԕزT#8*pV#22sPKؒbPIF$es)b8Y>Ʋxh0 T.F7' FHSCfq ᣖO9S+f νG*c86GbG3z9s&j%P7.|du2@/,ĂѾn>T}GWX(3RT_pUP1Z$dOkpDl\;>oX?F=iHh8ޡLCI`7,'ˇ Vt3jćй'gg8%k|ceXS#t=py v;M>OFt5R} \;r}c!G;G݅};z';ĺyޤM&H1OjFQD:I'ФNM=0 Ns|&% m*VbKd@Ha@tyTsHE~&C (n rlZO7gң:]:~rKR%+~]LgWJD K"!?eLަMR-#OB_:a j}ϲXm f$< ~|a߲q-uűO(hag]tegѱhuݿD ?(6&D}gY5cdɡܪXF)de6C@ DZ{o=3_iρ"Ը +"@ڑy{P%kTBsaC&!NԩZ81瑘Aԭr5q7ikS4=.l1.u~#]/iNSƟ?.v s FY'0G'Y| hN(`l?&g ْ0GÅA!ra9ZDGx@do.8ڴ]3`O5 Tiց)ԣ\l9a ʎdGwxnGn qۘO{CaS֎$sҟ RtΌx?N|w#펉%{&@$aQxY!ȥϙ+t V< +Vo_$J=O2隴2C>A +H +vHq{U'y"{N>#&J'ڔJӦLCR[9N ?"BH~hd֭)*N-3J;&ocSh"ݶ(e#҈pB~!| ;D&`ҤT0H𻲲|s/@(O/C_B1oX_Y}/¢k4+&o Y{XG[w +oE&0D HLEH%|hB#˻&tRzźж3HONei`wmlYlޢf9o_mY/|3١$l}]g ¦gڵ/:K:dHl {8v,ꁨF8i;2Rm}O;z$[t}6\aϐJCr6y:m^u th?aNq7 +t,ˇj_B)5#F@hX<mGrn@9so +h1+;+1(AaYD!4&p!fѸj/`sP2Nb(ly*s/@'}F[z {5loD K +>LqipK;!Amw4wHCDs#V`2Oklɳb|0Az/ppaG.ځlH|CMaG$ʕumT#y]Éh{W[g:T %H\&^ v ҁڥp=Xnep2RWD=CPƚ QU^Ap0 94LEF`ռ.Ɗ&39Ve.y(cu+aGNN_ą[@A)c&,jye2VzM]L_6y֨qrutySȐƼPeD؋۞Ɂ/FIҚ;Kz~Mzڴ:$0,T\5W>D0-q#/cQ1qv䝓M}^y/b5z8Zu$D԰ Vc_ gBZ`/"V,LŸY..z(gʍ{Ҽ̬nG}PB?x8$yp|d="6yՓPcJm,|$SpI88 59i! +p 9?׏5+] W Փ)syǟ +(ڝ*D Ҝ j<4 f>jOF!~>x?Us.> '/j5!eGF e•h$RTj@c&ut^)tk +!la}328^hmlr3QrK”ts|%~xSy_zu$|KU|iuuWhωl iտTkv ??}hxΛ~94|\h9 n?*$vPr{ ?:@|1?B|'׿}~ Hz+ >@tmC r*aŇRVtpуma[_ىlXMzN$ 40D..21W{Xi5ZS49C2i\Jk]%:8:8eDn4! +fv<رN~Uj@Gfb 5:ܿص,ѵc ]u 7]~яRl4 "]Zb#S +Vt(իq.yg8(#h%e1.si[22Y,X]kM{H@  Gx<}UԜEU"iܒ%ڤsu{vYpdcZ0Dd:(7s S+D me ̺C5NinhTKo0?g'Ӂ,yn;$M($rK` nbڧ-d!jr&%eESK]an޴U=^B8yZzf!PRcfagy'ADv1UϽz77ZWu,g5kO2Dt=·űhIh`(wDΐf^5R(!p2gdiztZ֊d=#8r) ȝ\X12rqNɸ,ɦ=>#8% 1/䫫{Iuz*2> +f)! *B4Qan|g}k*ų!+)\CUvxGLjMwmp:irQwr{\J#byj*2CDi)% W#*-%!񢆏B02w&Gk,_:y1Xu\}Q:hؚ =4U`/w#+ #DEQ6sr$2=XTRYtJ 0B6KZ.HfjY1C&-F*k! -/Ii{ĨT_K,ӒS21k ,@L^Y$D_|jd +e]Y-q3f,hZ;1 uL#.Tvv|vQ ;.wHlb[Pŵ[.vEHΕn ]S-݃Ԡ4F]^HG ԜVe^/k[L.냩 = BGK_[jl| OI~.(Av:T~zK^eE:s %-A3zz?tS}LnS|$H}ҫΩ +g0 S՞j@̱bcܹٞ`>VQc}x^c{"zQUgȚSWV٬$|\IߊD2hR}=ZoqskR>VץE)8vPRNV.'.k($@~)q63?zZ_SJjS|'FkyLpXS'HkQ8*3*mw?.VXQrSAyJ'(*=!Tg=G*/O2\JR6 ꜿ}$Zw:%n`0f;z9͚8# ߅<ԉA` uw7=C*7pow$aee`p0 viov~v8ibpkԈc&W;5:åبh1`J;a %#+[LU"Jcg\<X*me< A@,dIBl %Ȝ!#8ZhNhFi4yr]N>~9)JZAxbDW"en8B]"UtjHIEו)`bu8TY0UwNE1)biy6BTZcU"h*Nm.EZrAN='[\<屵2#\Vl\b8dGZGy9i# +;{6n +&hVmjQ&\Eb;rbؤt(r#oDHg>;EOIUPzw_Cm[I kx= ?≌Q'\Unoo^VsWQ{H +6gBqz"ݻwuw5uu? |8̾\*3}q5 Ja/^;䓟>^-'x%* dn*pݑX +".d +"->(?]]UԷ>Tvl~:=a;Ven6דnaU\S^z7Z^[Y0"\ld UVk=yԪaq qryPDs t簮az{clr{;Lj$iQ)z/F>!d)!7a ]ɒ@Nv)P !Gӯ.~c~ #9?%cTmT}SIwJJ}[QDт,4_Lhvڻ){bgϣUL~xݖѤ9:rϲ\?`cX0`ثdZ1 q$C-(I ӗ109E.S3(#)k³j!A"9@kʬdeNΆi · FMd7egC1^kщ +Ww*U7PGcNw<镧Kʐm7spR)/J˥!RNFH/TantjI+LH~4>mw<ͮ5"4H+QRAV.Xl3i# ^Ը٬3jԅ#,MdinTElƊЄf4 tJ Xw_7NJ7i}7;;{K8I7!Ǹne!x&aM߈0YWqQc!FwX2o;JZ4jO\ &CPȝM!ۏ0#%*GkpViTe]|g|E,c|HCLKGB[s&V`8ƚ-.#v@re>gP4ȉgp^ nx ;G.D9DKLL?Ve=pؕ}F%}h%}= (|l~Wys^Tb{߇Q3 +PE0ePcW3+O`**h +)eJ׶*rhy+FM@NO9S?O/\(Rr:S0҂ڤ5)FCylOfX͍]M9e81YX,?vB5(6+N`jm *icZ#-jg}W/l~Rr0Q*8vP:hvv8va{PxE/tJcC~dRsZ/[$>nO)𴀠Dґ['ܲ q{(3j%fEԖBN cGQKQ1@9Ƨ, QZ2c[NR  ]uufl0Eꤏ"I:Nn4d[*+:D3 K X2Kryawi?kI>29 +Os:/ǂ(T`泭#x9)@o^+ }i2(V8L;DFH\ 4&/Al%/gymKm eR7[jU$#jb| M8e {f],~p6OV qO\vOj@fsC_q#6Fguf3l,Y경Bo>A9NXXzrb=W]e[E/UQC)Nɤ _Ra\?AvOZ + TKKNXjb=\Z׈/^)UKVjn$qMHeŹofYȠCVε@^Gh*"|qHr:jcJdgLB`ǭҬ`Rc 'k %0-]&КBZTJqR69(5]r񵸩}{X<=#Pd7PLHr\~er0q_.ZWׅP7 691KM=̈Y˚N:?:Bc:#}N5U;tNnPP ̦0^Zڒ2"hq6ɾGz3 czn"$)v;)2^<)sMsQWѢ,tlȮFCOXCb5c!ni0'bA莾p",kL&-oȲvA +ԭ5+4au3\5 SeA˽+E Zh̟LaDZiVHV(` 'd(ɐ_>5~=T_أ`5vƚ;Kn0cz- (I#rA^r6]%#>RBBYlatQQ!sԅg'|"{؇Mc^lGKM8!{\iz?+z {eSYѺ e&M +b/s'9T(F:O-oW<8Cg3Oy/Mhޑyx*J+s&+z35{r\Q-/kw>y81&8-s0!8b +c%!qlG',C%i_{.oM9{QbSos`׏)0IimBVw ݏ$gsb#R_к㦦5ۡ>(+x=Z7d5O@JH +~p'#QSda + II) (%{zK+&OEt)㰹ߣB=~:?~e +Ĉh>"guۄ:P@W;_xTxa⏸U4`,o2SfJLeS,X˫3Wf{zvEfc* s >fu +qINڻ*KTE}Ve&ƎbYfUnijUZǫmpaؼ2ǜVCQuUr쇯myJCB P94}2od8]CȌ閜b PV?0!2T8UCnq0#x;  +5`(JTBֺ +4< tq:a괱[6ELv[Q: ˾trTI@VaYrΫG){es }!@{tϢJal,e}@{Q@adž0 j.r@ן.sX8bNE~%h7 Ps= >%Ej_=ή_$V,a//iȝ7 '4 a6=L#bܸ"WXr@pX@c6^L!fxS~D&q#nH[R (}72ݏ 2_x2@:,ܻ"KP@_ݽkgo/@'37P>A$EO7 $vLb]g pupifiiy Ԍ٬l`ྔq뱄\]-v}=Kx5քThŬM IMd?w`;0x=Mς!s9t%uΙޑcO葆c`w K6r+D3Q@Ue؞fŃZcJ3zdO"KxT.S PtbL= tɫA㺇c X#&8i@Mj3b pHѓ|Kʜ8M +:vxJcx z+ +1 .dj>ob\uSiC_ĩmGT|Y.䡰ޱbkti3$]AÂ4?]j6D ]eRCDŽS}Ju2҉$ @5|Nȴ!oxb㶡atDC[}^=59F؉=-Ki>{U`0C@4BLj(K{ Oߓ½wveC$[$iDB)Dxp'!c #ّQb̟m8lGSCZb8tԜqPBf8r`-aglB(!dBu&Bӈ (jv{oJ<ɍ:E%,s '$ry.nw 9rҘ8&& I:ao|P![3+f1BTwDv!CiО4jaFQG$lMjrUcIN%7Sՙ+0M9;u)fЍklKxy7u"J,d=NJ8ɛqt0l4.Ɔ-NEQFeP21pև^J;?  M;αfHmK]ai SXfȗ7lLRMdA0͉}mEk $쮜쮚P +$ť}% ]HK? K?ALoV;Ӑћ…^S;2;,'ɍnl {uPO7%Т>7u1 þS@e +IDRVq-#/vQZ Yv\p$fPrDz duT"8"VFv3y#S +1KU<u jbEHi>\nY1 4}m@E|:c0 +rY@ +x™~l[|nF&ر:ưyfuKȧ!'ǞxBwtmS"ؠ4K[ݳ*َ=( E3YaQbF qR.# ]3ǧ +|6JY_K_8};5V\[֘T\@v'6B)YY%A0E"<3̋ۤ6 +N +!Cog + ~)Iw$TRPch2íM!6Wŏ5xĐieYToûQ]`6>BP~xK6O(:?ASz>L[Rfr:T;֔v7O1A1%Rt6rÆUx:5zCWٓkB.v~.jeY4?rGl JAz\GtKǛ:b`i؉clP.wRCZ 23*b,{D_ŷM7&uJwbroǬ[{ޑsKUv]գ1;X{yd +'7)HΠ7) 99UಪpA-UkU2A/-y$C/1O3LLz9jlbmU:ms~ʴOh\VV_rjm\zhpw4UZNu1 +Lw8 jǢQ 8ި`XtiSBr{(2#dSD=N:;"tc-dF[gF^C*v;`z'22XnVuhHEu,0_zeDl`_,9k oR,SmX8MfFyB7X8=&;3IHo@@ޘersP;QE]Ox$U&n&*;@""vh穣m(6mJ#$-G\kZp] e֡Sot|}u? +yxN+ȟT5%KY sPO%}vB\)-=~'{Yo̿Z5A؞~ZE6wXgP~hX|pB3 }V?4IW[0~-pXh'p +Rc:|̩zOcX?+::nBˏ_ 'Гe2xMڥ?" +IЈ Ag+MKyjeTͦa%N9g!cֹeӢ~攔(lk,i{ ND>وCp!APzw8@Lz3<<.]n06|\$zXgyڍB/&Q!a!n΁*C w=tںNjPć5r8?RMDIfmH)G,ikS.,, MPù.GaB~٢=J\` _6h2.@Hjc!@*ݐBt?oXxuۂљ|tS}Djaɑ_E לg"EFU5ϏN4Od0{$BE[~:utd6D C(/wG^CdZ5%'mÿ́dy8Pn >/.À\h'BYJ%eܥDybɂL:F9t|Zu yfҕ<^P'4ltr, UìN6bN!e=Lh喵#HF3gVݿ,jx w@rrz 1gݧݶE ;dxCɇ +Djb/g:,7?}h˒rվTxt~ +PgOm kCψg_ao:UD4Oym`0J*8@ e@1zglW[^)Jۉ^@IM$G=}Ginqh8iH 2ܯ~~NGO=7[1e1ڙ}:=oTt]if`G`*#Wٞ镪JŶ\I,`Ǟ<\$X1_ŇN +&\H͖(Uq1iLV#z}):dqT"[SM?S#ov=Ao9Kxz:d']`5w-9G^3BىP HmŴ2Ny%Anhq*vkfl´9KE"N ڰ&,d(W<iUAy="O=RI($f{?=Y74wDs8CV (T &VvA>YaMrQ6~4 +ARg}q|IzF,!=Z"RQ1liOb|F{:ᣯ=FxU<{G[db:#g@u*gMY搴g>ŏv{Tr٦>'=.a[ڟfjt>crVW9o̜">WTY6tP GcVxn۶s][KU)v~8w.cw׉c7v=ReaKA]hz(n?wRF a{`D֎izcӂ/zO=+J+b)E~O&w0$3֌Q*>KAs +g}Pm~2cƞ)%a)ĭ^NC[jKrb|&Ff .OMl,f&&,UDOgκzY,Q +.8N.Gz?ܛx| ~~$ůgv_nd >**CX*$Y )Z{lH w^o<_`6p`ykV05-`ykXޚHlC7/fw W1RS'?3G]Z(ĚTTb:A/8(?5JT)@/+R+L qD:/[WmTٶ@d.v(ЪHZ͐xtiUXtc`~"u(ibH+b`"]XTNMa83]%,5ъ'2~Wof9wczo9"Z(t( sLqWwy(i ;j4%22j;Yj]] /Y*(c~I.]\VT,)?W] +g +4. +&֏_N^gE'VWHG:=lJ/q8?T|#_bX)sJ/#""dyWq:W/ktA/=Ba)[ةU̒Y XA ZNZO´Ule8 e&~E_ ƪ[7DV7ĚeM./+>6)+^ p WbG})+>l SxH\~!XD-mw{NiˉHZ Ai]-bwp- F臂$.'.WFh.綽QY_MwhBA#0]H'}`j{79 vbjȂVnl6L1 w jII42`36pC IQ +p@~&`Oeƥu+yBd|30ggI43"ܘtFtr6X6M@*yÜthp>hH,&Јq}|(GChu䚬h9mKRng87` ++N D\ .GSm:drY~tvqfƀ=$欁4>A\USOaJtTDA2T(<99Ȧg{$v]ۢ|j'#R $9y~ cyh}bSf_FwJ RpK-hyEuT/v&m!٥G#(p UCs|uO(0][ }ET %:Ù8XY +RO1}o' g!!WZ2I'MbۥI!bo]u#{~A {M­ LXm[ZcW6Ƈ1)vZڕ9-BwiqV>wx)v[l/E#ՇD 0eY؊ɄDi{S R6'&,6)nR]ޑhCF#/^]Q=C!)i(XTf ieNn 3CKlz[#/ +WdDto'n^[Az m"BBYc# F7{J0*w[c؇ίeBy6BR|n[_Ƶb +6Au +5{Zwt94$:)0 + =/&VxUrZ'/ d ͵6 +&ktbvS4}qQ'E !s!JzҬW^ڄ >шa 9r_!KQH6HOX;ȶbw,f{c:}y#+51׍:'WQ>TwIE)Å[x\954µ oxLCtP_b\߱e4I!aq0 +6g`Mmf;hj@[=:[S58 &)W<3֠V?ڕFr=7&Y:wy5~6떽N'um?,Nyxֈt.?x&> 7z 7@{7FF@i~6u +QTtp|rZ%8-^_!"?lΝ 1wƜUV:m.7WaK1U*]q7iQZ=ߔBoKی_2kCqh "$YurA9IRx‘$sBrˆ5VkK{\B=GQV;u!b]6Qj9/͉*-q? veAƪ\q8 +.dҾɛQ6IiJc, vQm۶m۶m۶mN۶mwO[mN{s?Z,]+wfƪ*bc%qK&ֺS-ai~MxsvW=[X?8x)j,࿴(vE{ +<,ngӜ# *P[\U-O Fjx(P;TէE~[=zq L:OMәM9=s|jz {w~Mh TO%Tu~B*cq+qഏySKӃ bO%袃xQ]E^(\7mg@.׌ߨ͓t dwLcN-֦SƆc#z 3r [y`7~P7{i9 ܌N([;&U30'K҈/>W +Қҵ+ p(^' +dĉ[RƒXȓ.;.2ఽfsq=XNs\vvc/BHzvL)/ C 1^'%7M߲z'xQkkHGSձ+taޙn6>bBlX "F63[PKʘpj湵wfW msTԤ\A)y(r9S"VA43$/ 3 |#D & ^tm` z&jg*]`?|&h@!k[J|Nt,YPkꆤEV559+lÔa @X=qI0֠[p^}Lw8PFn&7;& / me/w=担[Z Bjk:w>dwŷf?S fӱˉ&DߓWD'xMAEsFNXֿ3ؘݱz亓b +tun=zcl&ͶE3+]~=[lM;2mi |8|%&3Dļ!Y%iL>5fyu/R!([ ,< KxR5;^?]}a-0(0`~O@亥: 6+(5_g q$+-hjVs'O>mhTLϝ 겤>%H̯>^dꊔo +ؙ`3Bɹ*|&UK_ eHMr;I# }%~j^i 1 1nɕXM#X:0zB,(Qpl^Ȅ W~߂-ȴyO 62zrW_Ǒ9o):Tާ6{ap|؜2|/oQؘm;QukJj*NX\^=H:ejԕ cWoѴ)CA1fm`"'qt5Y5vZjߤ=jĝPhʲ޲Q{mE #?ܜ=(pd4q%3m׶CÕ搽xӜÁ(}zftb*o#rq?Ȗ`C͖Pرyw[X +#7M3Ǹ_?3Z߄%oleHQUptZ .M'&#H U$ i0'V'Tŏ%ŏ:'j','Ӑp4jLjj 5&~Jm9E.i +IsmDBntsj5nzG:4:[0N?ESS^5Y%뻰F%ܐ;̪YZ>dAM5Z& c:x$Cd 7qsLy^YffҌv K7調Zeg-EgI<"iL&ΒEQgS׸Ӧn,[.C"D\@N}GȈML9ô9󱁸ChC0nFDž;A/2uD4Suś+O2i7Ὼb2}1yb1uM)(M} tF<$3>3!KK%S>6U@sZK*k6-eqMJ{*7؄+L4iD<َ4&N쑃ě7YOliMQ+AjO8e3أ0IWxFgwb'12dh."adZҔXDl;v`O +9ߣDǶSSbǮd7oo[Nw9/=P9'VnPXVv?% hk`ɴjGnn!1J6 {Yeљ>Z\_ #Bv'vg8`/:N'mF:'b-[TJ2q +]#M2OamZ?M] - hgǂ`1㭩_AQËWmєNDE2ەprEx<)Z;cB[ApɠU 9"PҨ0yvs.wA]䂋LѣZ$fI"h0:Qno.+IDAT5kMer);׉lZ-07ӏw+XM8 .Xic;'R$ߴ>Ѩ~,Y=`SJzL)]llյY!U ^d#Qմb܀V!D?iF +|x?=<Ƭ; ubC:[FanQ1iHW7#o4d_FO\o\Jf٬W~_#[ u7;1y6fºMP>L'2NA A<%A-Q%)RLag͖Ra-WWVJ ėUV"Yɐa5mWnov{B dAwkhYxW?@ +bK-AU2Pz)@ Ϣf_ڠh#ohK1O=+IX\`sǿr׷ԼQc86:>[h>e[IX&1{xNo$ BymB{&\&<VG- R IWՂ^BG0!#%;}q7?P@&F?#FwsGuw,Mor%@!ix2} S2 V;Mi`#x.zHyil, y|񔅄8;"\k l`ZXǨ,qϏ1Utwًgkpt> +mgxbepɥ5sxژxWVҖW.Jz7 8*ht܂[ߗj-6BIA.@I=͸#fFʻIY=f]G:ME":O"bt%Z;f-bPSnUp2|i +UpX2 *Kr4S l"+3[a60JbdR!o|[kxT1IxU]0a$pF"0Ncp1Ƌ<0&Ip5zwKVaxg$=-v܆Ud7|X= CM];N?= QGRxѪ5:4dfܥ&ћ &4UC[~ņ*"Dd)L#g9zp0b"k]2ZwŪ@_ˍ)]-ϰ'=Tpňu՗lbpDH .w3ƃڽYW% )ʗ#]@ݾ䜜o# VCO@Um y#Ï+G؏F$QHwbRJ q޺zGEc}AӬ#3艖M| ^%pK->X;< 5s96bٳJOTDj:LQlYm Xkfy&&ABӇ*ꂥzS_?&;Y f$z +1F!_ +L%c%5Gy+VSJ qQŎ]/0'¾+7G{B܍VB&K^2Qi~{>Ь{ѯy06_1k_47< $ " @qqqvq0 m{9l{ W/r +8Gi^2 m\&~oMHȢo:&y v*ǩ "3siaAx>`B%S~8`P\A>0;9R#Nw0;``]A(-rpJ&b6,exxjuzM +U|Q~BϪ#P^ #=;z謼AP0;t1Tzy0:Z/x{1h3ahoPЗ;)P)Зr9HA )$ x-yL)t2vf:u%?L}zHr=lw(MCR0[CNPp(MK65,yKn̫5HտDm@pD_p-vqq"jlIm}ز:p:}(lzlz8q:?&P1tQQy#'N6[Aj?LzS7ރ``#VZȵs`W!ȆD HjC)x~]yI5z Q;!YSl4A4P GlG*7Ṕ!zB*xgҦڦڦP u +e/ڪ*ڪJYX1@`e4}&_`T@@@@-o)#S!뺢]oK+& R- *x+h>8hhQfDDV8Ûۗc]},<"g3Mp'ENh)uǵnuoy'(ԗ;YIxL]/\\{ ޅE}ӟ2Rg>7^6#GY Pv.k5Nʅ_D$\wO:؉ I\qTż[3ƻ*M~=婛0LKuJ֣$V rkŢ|@ s iڼ\;? u>S](#7{p&B&a}uwżk{)Fs{:J%-y$ߢCZbŕ=e 5pLa}'t+¥dyY^#Pz5J[gn;ֽ6]Za~(q5qH3>\tv:i]5}ܶ{*)^U5&MI#xl2N+CVL]tZY'XLc!{;:#E u-x42;P(xNX6CcN1YX`cnHFܦԖI9MT"|I}DAX[ͅ‚ӥr8n(!Dž7r#ʷ X"T"Ym)tw.GGEۼ*}cpIUnc\l.{ ݂ A3zVdP6s)ϪP[{ZK-9*W} hQk/Qj0F]k;3Ͽc=F{r_Z+?nH*PKXVĒLsg5OubV~݇QR+t"'胡UTeɏM KIa> icױʨdJ3'4Q4d8$#Nv9з4^J +1ܴ͑=WghƒfG VfXQ&t~f nG!5it9:atbz&O.T2nP4V@fgǹ̮76֠k_~gj` F$s*W (jg7܃́od@}DQ/W~egD݄A"}}.UneTh8`X}3| x43s2yt:yWHɳ 45thJ!;6Ge\Xu +Ejphi?M,v"+Tȝkh!G,P LW% ~d*0?* +F:xm)709XtaFw@Ђuv@4aًMu3SmA&rb!s .LjpC / `8/ (VJ;vjr38* 6܊pwoBD+x1SoOPN20Qa1_˼m,QIiD&fPETq"윇8.cFrc[6P;;}ѷ<:ԶggV/X ]fV,-vET# ӛobZa:Y-v *aJFW0 où2wݔ_rUYrCq1ڳw3:8LfS;곤FcdXÁ4F +c$)4If<3C12~ Q.J4h4жSA"ҰN3]DxHLc;}|?4l׏ U,12s܁+CT#OA疍R ]yv2!&~,dGu ͥ@F_*0]&*NEȯ΢ RGTJJ26|nX7!װ;6ecS#58eI_^!KUG{z0?}( F-GxT0 R$0HNND^r$FVc(d(`k:Sb'_ᄚ'c;Cof4kl:21.kTHǺ.?ۦFo3-T AZ ,KMyfƍ2? -Li LXk-l[[BHI:JBO +3᨟SsBX23 q@mZCu@Z לr}ccnW,ƍud wWFS_CAq[UaǼ炠ketácK&MaٶCzd,T:Q-Q-QI=ͷ͑nHx,UK9tnL \jEU~ Qϲ$\$'zƼEswLm}mg.{ 9,}z}ӿPpe wm[Eee #}=ww<DZmAiI#y-LS>‚TY`WCErl13pbG3y"5fsᚑ4OˈkJY [6k #-~\Ԧ|!J1>kkGs̛"Eͼ@mhM> 8޽!U:GY<}$x090yvv97TC{[=V\H;~f ++.9bs~Yk֭bCIʼn+`8L9r=z .jB_h +LLH- ?8Jг20L]L\@YTy=L&Vc[?t tϭǰGicP5`=N+ >s>nTҺd{&)iŇWk1lϢ5$sR{kOAGFOƺ&+lR. DKlG4%xqխJC]_cSstR[PjX,`lfxB+B,â qt)g xExŚx%\ԗ!ǩнW~4.­"IJ7 +8%L\aHqCsg" ^\|E C;gG@1ɧJ|h}I:LD;WvT!t6!g;O'>^<"q1' +.trIB+3Ě5k=0؅ui@9S#E[:+NvB|(꒣ `ֆcNWŖTZE3:Ħ]CcWs$BG +f;D|z4%k_J:J,/" YMbxftxI>wPoZWb'PfoW!Bw}w{K#ZH:>MvO+Cn9/)h[$:ߏ%gWD/Icm-+K?1oھ7K@L/JG.}Z~J|tV8 +iz(w\>!'{C` +`s,BsjNA{*ڊoy7ȩq֕ĶYT~yNZZ +C:kNyȕ93hi\2x *97ne~v^[H܎P |SE'Je-is +Aam5]]`Ԕ8ϭVf,HζäT<]O*<7۵="$)Iw̯U)%ےgzqg4[ړ[7 +1ݝ=̥FyRѽ2_O1Csl05+^2+XZ4Com` Puc7؁]vBQGWd?b5*U-\nť`Pҍygjp''f\/"l[LgYL=R*$XoH?>ѧ^!XraC6y韨@rUbZŭ. d~0ʏ`~A +d}cVYiuɱʺ|v%\_Cɩql)")F轄ÃB[{/)xӸc9 +%oDڊ1H] L+h] r6Oob7Oo:._)O&9=G3¯;B U`x+^~ < ŘPg M1OE/+4 Hʼn݂b1q<5EpNqއ $7 ƽ +8;R9x h|r +f,ndd51&l?x}Y! atv' &ѢBNKOͥRaϬ8m_WgvqfVf8lWjXL?[VWU:u3뫨ɼ]Wg((by.ybt*m:2?CL{]ɴˢwE|t9wy lbM=t2J.0f?jI zU '˹ TDo߶2ڈ~+=0L]IG٤QDxe2X.4G6 J, e'x5 +œ n]_7yrQM +'r^}PgGtCөgWtoVByetJl%讋2*s#i1>|e$}Α + +U} +ޙ ʺ4+PzU{?ABI5Fנ$gp#:1hCcTSrUw%6!t0BuDqNtĸV4s +pD /Y r] +^] 6( ^O!׊㱄[D>50|E>j*g =/zH:~$]wMd,50/e8N@bO/Uw7]_.Z8b ʐ0nr"KIlyC"KIjPnRyo"KIjHy$V㸒 +/gj_FGH R.U̦F3}taQ&T&QPj!)i4S!(e`BSe)1i@bR%)t(cRƤd)\jyN*.!Th`4$Za yl\RΏ1ؔkLLj߁Y͘MXj;t9x *( +e%)dWAR2<|j(̰Y0bvQH$nR`$A(蠤."20aRYPx"3.0:0̐$q"3fw~.0:ps KpgqlRެS烯;h@-3»x`hӈϽRSǯTGbgټHq@Fdg">?U(0$a -j;1xo*_,!GN{25@86Dyj"q߆\fmWq^[G9EJ7Ds L^)n?_<*Dm +Vm*6*EαsfNwk<(DJ$}Bpv|iKƐPgw# +;ciߍɁYXX;XX/[u7y~_o)D\SDD40&(ȈV8ۣ`pyt,4T WT:z+N~Nfwٶzg7Pd}9a/簚$݇}a/"pDkp٣ Aiժ#PE*8ԡ3.ؼXl?PU7&o;s0"8,v.80v$xWo.9:!G1nj %DTN;NtQ!Gl̂z\9DĴ/ؓ!-u{6k71:;r>jjf"r3B]zttaD6T df&Gg c`Y?9C\BΪ:0PHADU^TR1z1=s4v5:1>j^wنAoqZN/tζޮޱ`km˳6n_GO?wtv:A*K6H+E-NϮonBqb ҥyB_yaƹZֱ[lxaWS D\1XPQ^m0ЌEsD o|G]47nO?fkq-.ߝʦ[u;'ŲmY;t]'KkjwNxAUϳTS8AN]zͯ|t5bfA7۪ok:C%7s^D{}I/hnsyW fAχwW) x6ŭ-^*R|:t{z㑅,vx޾_"4r10)j5Le˩U|FR;!ڪ2+Փ`pog(aAMߢ龎۫ihUg`BHU!(ޖ_/B>6+ݗ8gs %bު>/hiτq3b~/֧$\y$负hMӗ9Է٪5x4gO s.ar|5 w{ +{`d*`6Oa{v;b#,޳Z ./J-C)ܷ+}W +@Z[nhQ訰lX.W/TTOnRW^M9k& + IM* '-#Ļ4^)C3K8"lc9{U0t7Ef"@;ʬes\aҀ`< 0IMe .1gT4gˆ4.zRZ*H[j@KD{6&R}}ϊOcj`U}`uAAAs!v5*Rt 5s`Ɲ`=p^(ƌY=.Zن+ yGU)yn>62[n7L8j_[' +mH)$;K#dxO%fh*u#G![Sf_bo\ziz0Veiqr)<@vEPd3|dd'8c +XOfӖ9RM,f6{]MOh$ ҟBi Sq;аZ5|5; 1JpVw@In_C7hM&à&CTd5[)6"Թ4e1 +KBbI@hb~;02'@8݌;|%u|#߅b vW-)Oﲆ> +x#F "մ A&xW8`XK9병fk|I=A ]_/AP?cϾ>tMQ>Sm~/ǟv-N8MVfh 5t0U#V6N"XM|}H CF{0=z^m'^?C b +O0`sgf蜋7Uq(tyͧ(\Ķ;keX{IHv 5ZcA}U$9V_"3iK6 +4㚚.)x]nđGH">uc>m ѕI,^C][YLOl&d+|ʊXo\YY(6e_ZvK-b|N涿n4]3^i /l^c$mi]jío>^V7vj7x۲tjGTwۯ,qO~d BP8CVB|*imad}M1Ífrnt+'h j2e7  ˠ `zٸ22ځe~ks/ɢtStnD]-֏ ?R.bCҝzaWt{dys9u9V|zJ?^q\JgNp +o +#VCHoCqK'Ra]RM"׉XaX@zGB;! +;^].W~.%32S2 +nN7WD MXvyWݸ7Aj NLg@SSS(ŰsWԸ \=sx< aϘ[G +N$jjC\a*D13<>ʹ7NQL2<͌_)^%`[-Ff!V-#ۑdD%?Ut&gjI>wDj6X̢dMFaIhVC@01i8iĸDN`nٴʇJJc䏇 "T/YSsmI-,ShL`Su FjA- + '~@~,0A`_P5y / C0⃸ą23%32%23%32%2y3%x3y2%x2ǹ3%3ǹ4rWC)q)ʰlSF~PȸF*rC Cy8ݠns(|:U#*Xk~9a`)qxk ~k 8Km&DÛ>SQ^ʥ ,1&=z8tFtjtƺc,_Jfh]SһpM \Q놤{\YPvOcZp(̄ ȇ_K^SQH xvP&ƅ^]F]:J=qBC&nȎmssh&ĩ(N,ˤ(]Ę  +ўDSޒ/ +D@#UdW_C^TtjEX6@tLc;ʓ8Vo6ԫbs##@dhZ7;L'] 9ꕻyF0)3ޫ P!CG?J<΃ @ftb4AtLwztf5S F? +1K)k XBB x(WPAAG}R=h>m﷝ {\rtF<6&-vfTg5UyPa?*]ˬ3l>b1^a2a3b- 8Yޅ5I>.sӮq& 29X1] 潢z8tz_+ l(D) +]0eb_kO%Dy, +r&ג(ѿ&3myᱣlNl8TD GB38$DShYX4lb4360ynpf= R܆"7e&zwF9!vwCay>w"%{Hr|ym ,DQqh(ȒRp߰< n-9 +oO6 +^ 﫮C FE2*6bU:0^w/‰/N?H9hAYrC޼ @m 1$͆9Kyf=_!Jb]ByGz@Fo3&l= +_t^kz̻CyW`2D] `=aP{%-iu<~xwlkȎ/m}`/tAoEa@ ݁$APr?´Tʃa@G8/ ̇V~+'@o/zy@(\ +A8#G)G0cDo Q- +02Zt +4 ʣ9auk \Q^1C01!>R(((* +f+( r(SWqLZ8LXf{]MaԒMX:_ҦQ1!D$Uɳ)Bʘw6~21b/ LkΨ;$_9w_̉wObwZtDž1VrKtMzbVz)'&"fQ$(&mTȶe1>M zd6i=ҐQx3m엄B7:aE5voa+Z4qeCfM16o}?͞ƾW䜾OL嘾M ~^(>J{ gU7 +ćP&Ӿ7_Ȝ7ߣ 9o k9o?朷?Iymw~b~-UUaoͽEΔ>3 Mь|o31oT\Tb~똷ȷrp߹gkmr~sZܪ{U;'ps囃-o͢?lV\=cUiv=c MZFpoBۮIPHLL7eo$>A ~  m2'F‹9)l4]3"ʤ34).44bUX*2c)04 DeixuU2T_iFe(R4j*RT"4zUʥr42Uj6Vq<)x$y,S\XǸ&]!{22sD[Xeie^!jz`ζ6,w5٥gP6V\U(RNCbR +M& U~rqtS)R)Dbt.m6]؍ƂX +] g + sz-Mdǜy#wr+Ow^op5fO(b˼@_jGe: orOfUJJĪ%"9,mTf67mu56;kms7|j:Q!,1gPPl&?a\j|T 0zFQ#8b΂q˼kXv:iz5r%7>8+TH5S/,˄Iʭ%^2ɿQL&QcR5Јś4j$ojFtZ[{Ш愋1BX"*Ԭ!T`jS_Ċb3,NOFФdP#TTHdH(ʓp ʖǨi@TeNcTl@\U\hɨxXd$|< &Ò򒆓rS1 KTш2t5{RmDOjyRl#B?!ċXE;' 28QjUm+dŴBlbI`3wz% {7nU7i6\Al٭iߌ +aZt]D0&"v.D KB.M?OB%q(Ϥ<խ@nӰ}*`ucyj'={ճ{;;w"HZ nއI.tl0,#$<VfD_yJ9ݯ(Q1YF@C]@y<]X _e:ݯ.Q%X|MF:]k+lw}w-g:XMiڲ*y1EY +Ss9zL,$_e?0i\V \eH?MS<0 b{q}|a}KV L{%δmu +L mN5%m/Meu-A&[[UxLEǧ;{_՜f![Eewz㚼Cj[Yww}SugYoS[wU!:GNN_wLDai0o7]QquYgoq~?'Æ1Iyg%^-+g ߷h.trtVG o-Ko>rpjl]"^H9f ~R, ^H>3[52;ԗ7r-㥽k"^C2x|,k"qm/kk,qKjk]h.>󩉟)|\a"M}؞SFsj啻,xi(.79D̉UUɟ)Z%Nkh|<#3ļ[bLXmYUɡWM(j-B\]PUP_crk[a-ϮnGT35++S_~ʦ&^QRpŦ&WˮMNMCXdNU x|ÒAkJ"?A{7RZ'ʁ*g,A귾O-;Gų>L6SG}_uQww[ ԥ݃N({9rf{[F_ l݋K\e\*R+&)*?Yw~9X\\| ά/zwW +ަT-Ę0\ mOG;[*vZJ[ĩ5` Jy'tU3[eI"%i̎mRڥ4Z5-Hԣfn\u8晴Ir=ET6WŃ}lv ؜V3f~T3Ỉ," cauBB WBy ; qB(wJD@z˗)P"TLN=GR&ƪI9RO)J& >$ID^ZcmkVaϊ&Ί)ua'[ o0JĠ +&悦<@ Y)"kY_IVPaM)SWiaf;3 +8Aʋ ᷭϨBf.N8Oɭ>Ec_cXZo{NYLsUܝxBS`Rass4xcW[Wy AJr7Fv&B{ +tȽnʻ̓cUpo.I_sq* +[~/5[ݝ~*VX3F^?PzYmqH3>'ƂqBGu;IN՞"2pM~QܖQ|50xTwZ5"ie-&ZRfu6!ʎhn6݄P qK5U2A[65I? d%pJg$͏"y"[]*X($d(,'wĸespT#* +a]!<*?Ŷ#YUàRb01&R _PjX\a ɻ@/$ KߡDˡj+=IB*A܀vY{j@ְeh5ϝ3RVvZ} +ڐ/?/0%9_NguE >hg*ohݕz_T=W[p-]D,k6;]B7GuV8҃Qk:y1ЂDT"U{ =0D=ދ}^7҈6x7*'cB(eN]f)_UUT}[0>]譚/%eb|MS ci-. $#Rشl5b kX{_֊;!i͢lj+}{;Pܮelj><ȷәd f +spg`ǒ^Ψk˓f:H[7oRV~kIee +*j;yݲ:}xNO[&6+M%]TIv,Lbⶠ73%b&XE*i^sM e q'T'7vӁE]SMu_i򌥚J~zlO|^>4ٿ.Eitop5iRb)|S5?S_:/\VW8G*;Qz2`I\ɠFL ~ =Љ *^|%kDbR?ѷHn_EZ?БB-ccŒ1'bF؍# G@A9S´A r객hjѨpL1;ÆT@8 Zmީ:0~)Í`/JؾX8: b3A +#hQ=t'JδʹѶnI![S$5 1,Ҭr5^FDLDPvg ӆ<08š^7v!ITc8:rJz4cʫw +Y"FUsHn΄Ug/k1 5LmG"C+=6NVĹ&+G٥= g͜ѣx DO}?K$ҤFKNyc=ECGP)[-.y ݎhCU`gY2r&@;i-BY BF&)^+Q_݈ + H 08_LDj' 4(D<($5 xc9>,,5B){QCy0B߾ ~P| +Ozd kPcDa? +A9nX 5<2(F9e, +u*3Nټwnzgw93t̞,3/tkn]KWtFռa4D]N<1m| &F6f5 +GTGpyH@7@#oƜYC5ƌB#^GY@‚%yoJtQGJ#"3hmm囯OO{CtXsXd^{8oV Y~ _#Ǫ=,a\vÁ_Pe˲WLbDᆪ w#nXo&uF?H2J5G.ԭG_bW05^|I>nQ`ғ5-+( +fGCڑZ!vy\! C^=aڡ8DM{Ɗʒ$@`w!bEYVLZ$bpe GeΚȊ1ԠhNfp_$/xĀxTd Dy_K+O =m +soJGݤn +D̛Q) Vv)/9/ݳjߡ /M9*s +k<8, *"n##A=1t`VC֌kAS$mh!DeExݠ6Dm +ݦ i^u3AGtz @xIYDxiFI=Ta$Ny`7Tehd ( +&S,|2G(Xܡ{As@akAcκRͻyv,Dwk{õo=:[wtw8v BEοv:zx>{R kH5뎀""ug@17n!3sP K Z7$0sUL !RۮyM+zoc M4@|1 &%z1(Bh\]m7\q "p{~ mAA55C% D!q{>VޡG0N~;S"WtyoR]dcG+^A+(pbykCoh6} #eAKڻOKHǥ%aԊ4Bd1G,i7΂9<G.7gkTՆ}ի\~Ȑ9ԩ02q"g0dBQr7=[r\ 6N|脏CD{c4I;θ#Zo>-vã+kd. WM,F39o'+0T3B\~!I  +]|:z9>  { OWo 1w~潩K*# 2')=V혙w~} Iɟ_"H3'&e1;d1='bQnӟcy~Jt( 3F.B@\^2d{5iv\22˙)k/]FnOin*iDԠ4_z]RThU*+Dў#T:%o}J>>gIǔJrӠGgDb%g~X.Yj'wsH%׫Em(>_L448仈|Y>s;|ݹgO$3( 9x_skfO& \h\K6L=w,==WPcp'8liTJ;.p'@'1e\/IWb;Uh{KiĺQ0m廸 B\ +uhxcIEs\\*=9gr\,nx#I;l鋨Uobʮ3JL^e.EynM`N>@tc(-5xtDܝwNr\O8Ҷ+;U\)OKw0zt=M3 9ӑa 0kBy(uImK9 y8!{յikyѴ 6}GWg>G!cB#w͚{i-tf,^ f-^ me1f*!1IEviH -]i˻ Gn'8]˶ +]6ʊxmiz Cѿa~&}Un< \P<) KWE +N:FyJ̒ MWM(L t9w:9nt}P/e_U>D0ϼZTsn^{ĉ܁9{ +.ɿXxVzsTK[vj$x2g=zS3UE̼2ݙH2`fyYPodo˩QVq4d>/iXǬoǬlz|eG-"7.j4ӹ. +cݘSzJ& x]v +c>CW u^}=K0H?0 LbS#ITZfS_PJdXiGJ䂡'`Eahv)8#Ì5|ჲ^0u{k3ˏ&\N0uY&衩Yc (@oJ ?*R)LٍAވQgF$rIcj$˻?)a='3FbUysvJ-+ͷDbճ7q#2g /ݱOMX HY+RfZ\M89-5%떄"Ro. Hqi Vbu$b~Hy B\e[h%XX_D*&q3 ˑ:¤֠W:qq5bvbukH|q j?\e[W*oTu{_d(jL~A0.)S>ɾ(io_\YgDʺlreʌgz\?[|&Uָ+s9h5lٺh1)=D@HA*8!Bdb+;b̆2llZh#&O0r;(عؗvZێGFw.H,gGm㚫_!eFn}- (n[Țټ헽y۩|[A5-W\c+'\Vpb3*Vn5CucER;CVI=6={5Zu܄[l_dƭ}: *5KiDb2\߯Dsq{}ws2*5Iy|l{b *N:[}t֪g o + {Xlz7LҬo>R+>8[[<]X3Db AOya+]je5a:qn!gG>JjpgBȷSP\1|8ԴZ63x5fԴ)m3:PxQzky:_nC}4"Bh-OmKK0doje+9y5AVireTgp˼9'C'*꬙C_~Mk۠}Jm#тƩj+kU=,>!>Օ[=KԊIP/\bM[!KxR$!Nuvw"**eA/ii}bĭx/{+%QT}NɗY뢻"0hNPMWxi$xB.'Qfv%E%twuۑi`R+ ]9U.$`  !LCmK'!]2t3Rb +p4]tS/aE0y֗N/-M7\Wy?="nxP»k$x->AIpYYY]fuE+aZte$5}/%t: tDޖX>Ie8La1:x]y$V^r4=/|!RZkI5(QWlg֨U?uY]%;ޜJ%5l bֈ\ Klz~~l> NZ¯R$,K斍'O]O[M̒;n|Cѽii$-Rq? j-is .RkUU՜*!QjEy&}s +[c ++zFD<5nçŰKTURʗR<_46@f=ɋu4:6m΍z[6Ts赦Bix\[4a >+c U-n-g_-pu-n)f6)c&vHN$I0@[)ļҤ. ҿ1R*z:7>u|< f{w> F%c ^JX D'?8{չr.&?̔'yGǟjQ1Zލ'|P?6wDoȿw֭ ﰛ id́tCg@3JC8$WK` +y:m+(ɝQa%&;.ng $)A@sԲt ht`r yd" H(ovM\BNvѺ(]+Ԏe +2]i(]kTF]ߜKѸ +Py=h@a$m[?'NDK@G5"saktգO~ `qp Hiݳ^ +p;Q;A#%' [+ 6qhj}YSE3Eߒ 䂁+E{R9E _ȞdP)$IBoqzz}}h&v.Re!8͊򖿴+;BgbqNY3OKqƈII);RWsހ l @<$ k{G]T s-ޭE4*^G'In)&cL3 +DA&ӄ(o)GJ-iclåڢLjqۥ u(K0dݥg:X wIcC;ӣ.*D\SvEvp|>QT|8ab!c C1b + v:m@s pPpF+["սYNfaCVvGAMi:40 +MיBwd%^ swR;{ݡ̢[wJ/4Ca!dOX(×0 +cwoA;C; ; EEA!"K?8loThX TCRwi Da<&u=c7LIh2@2Gu2IV`LpY\Q:R!c$T?$)³Fdm| fĒVOxdHᅅ:>I-Q&R4nqf!ng2ԩK`\KKoc!̚ a!ŘC +?q⚔iPWy?sp9 Z/ʯu9=\/uW7rkFʯ3DR-:F+m6a09 +eo[qmƵ]ndk",ϔ_cr#nɑ?h̩gqݳ^qk߈'lF+&MhB=YSG ,1S),7774V\MJ~cVm}G.LyNUO|م]YSQ;fj ǺL{}((7qt0̎y]q]Ub=rSuPT6BF`k.T;WkYnנ5S6 1f #=X_y>1Hj6S[eZ>\:3bs{x^ r]RALS;SD.rtttǸ-v+ _L;vzz jXJ3dpԜӓb57uk1ƚJmҭ{FACqeƪLOD[@cp6QC 7}qCIiEcoTEfoICWEo~.݆s7=baԗWo io!Ƈ}FƒsWar³ yó3}"=(!G$RX/^.=ƘGxflG|&_]SNo4'o-ی1MZAGL) @' !vΌpP9?N&nاϝ\CO>/ny<}PX0!/OPs|GІQ5ԅN^ᜲlw^G'ރ((/Z{Z{S";o]y>>;Z)\{*>A|g#ǣ-E8! bd<"xJ2CB=ee{^=`[.x.X VFeA Fe! 5jH +lHADٞD4pHeME ?y)!汯p7 p!8Ut$rlGz̼8wgW?j) ( wdERvG:rR  +e**\r4r*k͛{y,KW!oDL2Ee٢iD誧hFAܻx@PS̜)s4J <tp" hy22p8-@R_n܅(kl rs NTTN#<$( 2|N,\O,U9&d,ܸS+s6j,s&αgGǴW/sPW7sVMLt<'oêss'w2sws gvSyT%GdLySK GvEBB'vfL|ܹiYXv ƩésR?wS#fn ~ݴ)kKL:N %ޭb <_ IW\l58Z}'AEd,,r\ T/ Isj Ws$4qR>[7DafPĞZ92}6?rQTq\MYQ"^_ܕX]$_uLI@)7s>^ T?*),iwԦLpLwL28&hpGrp  [S) \1 ng7^6XJ\ޡux?1 bgvSޚ:&-/_5s>IS)cB$a +. $Z-ez w}{&0#2=C#0t;no t@׳Tyº}/ٛ"IPK=`VG6wN .IxQyGvȯ7_щ:P!` ]Cۼ x\כU {M/]C8d h]>l\`מp؄LpjӝBRjGF-~M,>*2+|aD'Ă,LMXZWw+=}QAY=^6<h]WaWAJjr$-b{^cD Y^`<= [xh1Ŵt:),$uqxU_MubԤHSm"5G`6XZ [d%7ĖdD` +2Z)nP2EO| ܩ7! ĩثTuAy<ѶYI Ȩ"KsLD0vS )OX*#1@Z$-OﻞV.NDѝ VHW*ok&THh"Du_uI\ZJK +:-[M oĊ RyLdžeyM&DWe #{ a +yx/b a;Ow(^q.ȯT1pgP˰/ThnthO +^oiih{iDhe1] +Js* +)P~Y9eBڇ䱔 \X~񇢖U4 *?q\e뚵ibmnL%L.+z'x|lI뚂A[)X<~LWrW \KҩeDG߮I [!Y0:Ф1vԷ0J].43DXt}ź"A ӜV+^s$ܩљmǪih*{eE +V8yyd&^n&iC1 e{xx) 2%g(IAds+F1[fXf(܄\Wgh#."v)_9_~ŒN$op^̭+}+cSDf?CaV:Srwng]$m|*[$+/5yw7᷀qރ=6l{ ÇS_>Q;o]Ln#_VG9PV&2N +;r71nQ@jOO[TZ2V!B#gL%2?>O$:ṶT%2ٯ{ޠ*:iIII?V)8LkyK]TRR"a\ ueati +EbvEUֹJ=(1Ě;Ҵa)&0B>cs輷#[g(4WnY{xF LO3:ֱzr..? ? 1 +Ms7|$AYZ@u7ڟdz&Ngt}-)>X9@`',Ϫ!5Y:$22,R6/T;5` XWԲ *Ts?Y) x2p~ +:b3ɺ[J}ӂ~wPSvW2f +jF(\X>{_20?ruB +OL+;Egtn ^9@gPGW)Q fi+3jS+S g*(IE.O`,BTZAl˳exf\hYɷmd(Q뻂ԹBI[,bKZ"/t ,}$ĴweX^aKkZZKiZx݃u+Hmл%;ѫaX<&05Ll=78!,1̪:1,D[vhe( bGQn?b>j7W%yش{3T۵T3ۏkmOUWz3e3fW^BO<`0hj:E5hʦz :]Z z HOu/8zvp:1lDHwA !p/,LII3{3g#JtˁT_k"N<99 ' 5 JF%" 1[XVH_XTeAMy-R^ۦw.l;Iohh[k:lGQ&(8/jݑR]}Xޚ,@_SzқlLȓ{Rqf:u->pY +R|a+S,JI~_u(ST$S*rG:z:@uʂC\RY[v)ey%-"3_cʉi͔tL:@I:RFD&);rKI#!U|<*QI cYA&)͕M"%}<޽(yjh|ޛBDVo'#cݍN$ Id)ʟXF!M>Nca0VG''+X=nRg4㼧ikC^%Mrk-w2Uԣe'ilzcm{ڣY .MZ+z9XbW~] =Hsoی{{ǺnJ{٫WԱ{MedW*#2֔Si>P宫aXz(Q?QqjtP0R(\- 2LNTTTX6S8@oWJۺֻZPbۺgmF5E^ͩ28'{SNi68^!b`%|9^P<宜< mmo8;O;J>=:-qʕAaQGHut  +r~q?½.+C}U8(qZ)8 qΆk\TZ{JUpNj^KeV>џ'Gub^1_UP h>W#LBe\1c>^&DH/EFkpÄjavqvW#T jlV_<-QAɮu]_Y9U'£ʣ 6S<M +=_C.^tٕ@0ԕ@ư/W3~+?^~T;0#qf)H;(WjGa|AbծQnh,,7 6e +G*BE]C-l\\F)*%׈_3[_d+#Ԇ..MO_ +C-%; n]J [*猵`aW +l&NGfWd6aQ,0yOeL r"/uFM /"AXCS1ѕd|roH+=ea%" p'QD[xG+?}'U( +򛉲&/wL2֓/}.̂- @.\!IM]W8si#!+j+1羄Z/߰paxzIjSoWxԦ#7* Z?zz=ԭ'?bc3^f&@6ȭHZ$lg y/G6aPzF>4ε+,,LR ~_تx6`ob**dM7I,UcLܬ&h[w J\~8CX^t͓u(!b$W^x:'nnǩ\! ;'⦱Ƕ6!}a/i.\5Wmo o"#B}2.dU\ v89Z+ ˼[k%Q_twG܁et_TZ}Dڷy3J ݼ53od؅Ick.܁#偤~ +ӆz>6bz|jKݭK9֩1/FSUmz%զis{6H$1^P(w_ֈK8ҍk4ې||O {gp~i60<@ OP\OyHê#Bﰼ \Al<]/>HpxYG\ ǎà=o.hK?{"έPf BBGH#"]PrIƝ+]ǰ),uW/N1D&Ɗq?xP0|:Lp zPG+Q4'J>Yһ\/S=˟re!W/٧EpCF}ŠQ]K-)?`,"6E$*T CϿK}J-'ßNbVt}HN(cj`D-Mr %M|7 +7'b7}T 2ڻ >v +!7r H4fn|;Q49o`՞L'-E||O#̉v^Nlz؝ِ# j 69"z1П'v*[>}&yOBh?#0xgzinO8L,Z,9)_I Y7hI >{ zz#yRc4p8dNҶ'iے4IV% zmqDNLʦ-2 4H/(;"'Z;mMzx"hNؗ0exx}7poŊw^iD1Gwy BX +&>YIqAx0~@e,@@1a4D+Lhh">I4 i#yx6(r:zE* xfB 9F'sCCc j"AR2a(N!5QͦN)Ӻh,Իm!ACC}UQr3z6*  GԴO,*a.Ӵ/ĻdW^`nܷpհc6Ĺqkb (~\KwC 7[~-B:l@s=ܶes4uCq/J۷R}O n|C 53gk|0(72A\oXۃ;pFN4Fg8oSû: 㽽=c?##aT>ܛhoOˊ_s>F#o|}>>>OK`{z{"sbϹCMđ;?;?;?;?;|`ȷ gP/b{)(jHH&lJ&!)(e <12hVL=HXS|<1vo}o 9ٛԑ1V^1[RmdRDtPI,ɒsI41X<;.}6L>?7[ .F>{ϯ\?>9.s}oxoɶw]vw~v.o[6]. g]s}9>ovwq].sgs}P9>Fos}w~.9>vw}.9> ۻ>g9>vwv]os}9>6vw{b ]osOO= v{e`=͢0µvUGkVGghdwevq͝]]2|vgT fip-ҳ2%&8Wl;8{ ~ 3ٌєa;a4]n7oim"߻]wľrY>)Zw\CAtXѠAXw7si$̨>-۸OX9\o$P>-3,z)?~ЄT> +,F>9IR0?DsxfݟICgpl)CWe&8\)yZ,oo[/pX"i)oD*m=1}gfV-SZ<H3^p߈R'oa gl$cgit<3 x'ޠSy߼0'|gޔ)}{wro4i)pQW $PCD>|=$}1W. ω hޥKY8xsN$-@:ew)/D%XRE+Lf0v $7 b_|*!3;eH-YRx/K@q$„~?;p/'|W Scz"OC3>]~W%ocp8 ePۜHvp9ZHA; I`! +%zy<9pi*L-[`cp8p8Esr[ 쓃rp8Á9;6:A:!Yq >͍wv;Tz0wsBYE%նa9f5jq9lq9q9pY88[}19x;96g{${r/&|RѲy4y0eZ7n|4VkJ8,%lG%˘^%sT%,^Grܽ9_,'v7fjᶚcJ(f^1KuᦀDB͕._qzI:F頙$Јxhj3KѭX6̥lG6j8˘tJOGg]|OѦ17*mB JI&u[Y"EjC~BHhE-[BVCk(@d@< %*8q5ex_r&JWC`_^@}@" KÅmb8Z cJ$Vhs9/}FV0Ɖa#Lᙕ:'McKPl`s8W$Md`1o`0'߳x)OƲĞئ>یkp EVIG2W;Kqc$%pGҔ̢ kb܎9u1+ֲcrbaF}J4j9F)L6Ko%J<#-bE=߾FbAh>8S=XK "6g԰ E"/Rd#Ra?! ZI,=CjEH~`y-%Ė3$5"-#I弁Z$ItYI4H>%XATb7Y9o;p1("e#Ka2 hTa%ժNЫf턊݄>8b']F57 dn.F\.f)a\FO{1e}3 e+G/u +K-A1{ +fFf."VF^}K&xB̲thI2.xzYPhc(tv)^$ #w4W4g0/(.˥蘛Ĩm?1!WjGBO[\H׾Hɋ'Ne'(]+̎M !\E݋gr~Lʳ̍f ҌϘLò<~g:|_0@oSWy!DעP2-r_@zHH&Ф>䘇BT)ILLnsZ_睽sbttF89!=wsRV®ۆs>7uZQþ JQc0I: %~š(Tab6Sb%/Ϳkލ2V:7UW{j9"9S-z4jNUm$xA*%W"5:oC6P;Ma &1qU8y0}r;` +u`k1*4ػB{絾?&A䃲X6Ul"Td"Хkao3ꊷp_f_Z;X.Z <ZJ;c509WA7" }Mgnt2PY*}|C(kxC4ӆ#;hK0%eᐶMǿj&d]..(Bjܹd?$\ST P4UKZ>V^-tolhca3 >ՖU娘S][]\icЉ{rl]ۛJƩ< Nu) Tr+).ք} {wbn7k+ rӓbcNϴDEʰh_bc7&WJm.]'WB|c}3ׁŒ +.(!~q+ W3 /i qXUcs]8J8*2}2X]2ִ߻A`2Ox +EQU2t\S_쁜 m][{ w6ҡMڕ)x ) u^jdm {<wg]s$$~hk~T3whCaǨ LԂSh0f 6 -*@q:hWڗMq̇w%\>gɇ35c"擈TFIMZ&#yOoB#@)rPdx7^N(WV4E_z^Iw$*wsP͈65Wqj1fp'66Aʯs_]ƾ\|O$.)ےB#&pjG40zXT4ۉZ>'#2Rt1}Ɖa,%Ye)E)o_l T( +Msh}xėa צ4rۢjłCD2͍>շ{j#ح % 4Tjb h~I0%`( RPQ |u(G85ЇS4~tY#aYo.w?rEaO诘ujȓ6\eۤטLYs}HISu`/iW[*cwޯ:''^ĊR)]38ԃi׷_$]*۴-N\Aa7of|Pb߰7[C)VrA+(^^^  +>lξ c)?xGA C1Fn|S ה)Z=`*,UɃ4z5U`l! e]0WOO<0qVbEmuqi+qOsV01{ :r Ǭ,Is'z" OUci? &e<ܜxQ l?P=6)5V+ k Sc,CY'QCۢj$xʽ`|Rf򥁈iE&n6ŢBf?q=J6Co֒KL/e.'QCRKÌfL Sl93դK~rjCe"?Jrb=)&[# `˿y0HL@9!ǧ>2"84<"=d RxKVjښӅlw.%iLKdipb7yקO%ʁ݋+[HȖ-0T""Ҍ%0'=AQ=)$1jԌDLn" =Btct}6c:TӆI1Vtk 4e}́Qz9cRH]6pkZޤ;n+\RӒ!gINE9ĨI֯D'i XLa<ƨ;-|/ 0jYuL̘针,|ЦOV=uM92Orz%=954Mf:9CمB?y~uNtkDR1D@eyc"o=R"mɶG *9ruǼu"i1E#5eR#ϡm<Nk<5O٦ȗgڪjΞpOȁJ׿q"B۶y(E^cp!"E>c˔s(O=۶y4Wy;E~=X`}4m"AS癶˶Q )ލS<9j9,O +)rYEcOu5gU;lizQbG H?S^ZMߥ +M?/JUBR:L!ˑ^W# 6FnZ_lh WmwXu+mlU;uI P Z[~g! EDQeI4nj&PХrzĝ&:;{}7MdiROӠT'N3UАGeIUUA4X'dꔤɬܴ-ܒ] [IzIl*4T02jLZjJ,ppCJCRΏR8գ\e-LqxrJ%y4F/7ɒϦU0C qBGl.i V9AQDn^0Ct[4% 0gݝcrim?ggߘ6^תtAւ( ghҘZ:f[WX-m6SuUϚΔW5 AN4岺. ?]J|m-3.g|MwfuFFՠn]gs5UrVO 6ռҺUME*+J.j&j| +ZZlcj69jh ?B.3>JJ.#2Ko/F0`nC"ikpm:rk$䥬Ej%kXn zJ{F@ըn6xkJ;3 +<0K"&~=ˆ1CuVU-&ϔBճݰ8 +ZtEETDedh슺eōHZr@[r\Nk%o5xUu6Nl'*5U{ɾtlW9>4(xJx`4E*v/°u+ma?1߯iA?Q"fO!ݹ[MT)8gfֵօk Wۋ6!%Sz(V,|F=_9.IuUyMZBYMۗ3/ޜa\Ta4k>eH։9hF-;|?GuK@E4x8 yaZr@ܽ;WŦYjP98uAC{QDp:B݄=FKxC3bRCAtYܽ85w41}T1C<ϹЩ4V}GP}U{g?wmGKu';$q}#&%ͱn:R-P<ɇde O-ʶtOS㢶i<6 0E7xXr կ8^dŤVXg4525A+7EBe!DJy[ռHk%T~2%}2S<%-#L_yJP$NyJl% ޗZ ϗG _FoIn]f_XnKPos+[oiFM`+/' M16Xm#~l֑HK+)_\(FoC_q&U`bj<]dxBp6"7V/7m:ֵ(hK<«$6WkUc)))ߔ4ި ue=m۾LJ_qi|` +V'UәZ3GjPƗdp\{|0NXTmVV PqLC\bS8C +};[@%3]C +ԑ~ZDS$zuYGJY:YWV0hU^H]=[Tt]&H0yl 0( +7s⣼_ +wy+W_cU9~4T@BC7K6JUcC8 1~_\|ëH{sF9{&%12ﰔKz.y#)m4mccylN'^-2 PDsb%~B#}*TkӞvB]7 +>Q¯<6ϭC&1txwr"׭ݡ#h)DRF܀OO*t+ye솬i:~q(wfML"W$ikyddwMεkz[ YZ_X]h⺠LywH1E.5̡ 4ki9a8 >&LqjI?vc~gջO OaiIblw<KOSsJK>tB|i7_+毣ٲu't/&ּ"J/` *p xGcWCYt ! 9qͻ\vŃJS7j3C)73;U3d~rH8ڥo#s=ųr\gGd̻pS[$᳉1 Bd{PĨ1p+lR kDHp_\faFBFK]Β0,K]d m/5-DF&ڝG)#{ߧĦ.QcnTknin|Nop.8 +S9L­TE+:P=BfBaQ?hYd¼~P UԮryG`V3g!L~*FfRO.y;웟V6d_DMW\eW\q7;]_!L-f̬'URwpF2Mv>FmO} Oñ+qfGfڞRږkÃdhUFYV%g)U%,k˽`L|z0ڔ}ԢTy05ipkNM\cZPOJQOWU>)4=8z&;WˌUp 8REGi6k, ?ֶG%ٗh"+TMt"~C &AP:cWp(lq+Zq.6 Z%FbKa9|d^#B#~GJb1|.hG 㑳pi:OϞ&-(!G{ec1K0caC &JyȁR<Ж?X҄a:_PΣvcсgfRc7WJT8%ujQ0`ƌ:;i%ң鍳6EE( +;D'"3 Cq2Qʫ&,|!pj,AaV@ mўTG&qzY4ᅭqW UeI%ۑ؉ॄ`T@UqB8($bAs*vΑq|ks%,8Z2-m~IB/yٖyme6%½. Ik{<;W(ȧ +ĝ+,Xewsɟ/B1ϯR}"%#R@U]bW>6x޼Ha|$9~ 8\DZXX6pO)9ejw\7۰-Yf 8 ٨Cª# +{PṰVŘҧص\2`.=9o3493S78C5F\t +dl8ƛZ+xh?Q0_wZLvn=q؟?1;ާ#{ +ߟ:C&|8, +PyOE/@j +PD69~rޡ>#mL}ulLb>;Splo(N 4OAZTO[p _3fΉ+f>*ysGרWɬ>UL4?v?VٳD״Wa>?^qͻ^%|#^%o +nFQ>lwKE59Ƽygv.d?ZnE&Dr\ihYbWyW1DAlHX=;J9>cCTMع: KW.&REHVDXrˑBpij 2= ar 4\'ȊG u>#$5 jʭ Y;$XR;=> ~+%a& |x΄%qM XC#IX&Nfrgq0ko8+^!O+^sq]'q4B$ś-V%v,"c$(Mjߛ*(qe{Zw,輱cNi<9I.3Ǥ1.I۶Yte8?A;~ ~~v_·2lyUoy FO7u$o6$E}Y -Lwgז}p-V;&V;" +b:?x:?h:>،?h:?l:?d:> BBЌ،AGàЏgMRN~M¸4q +:FF#낞/URQ G!EގC^@2Zql?@JGpR V}#$Tpviْ;ЁBH ĖK|͑푤|"KbOqmyюUBCJ ?2 ^~Ϥ $8%n +/CJ+rImÒ$/k@JJX]]R"$kJ}6#$cpKY;'YrKY!I] 2)އn}$ A`f%\0"1H{ѾͧCG6~}>70+-E[O#yJu h\KbyԴmod#TmkiԭWmWu ^]>!0;^=be:cN`s$ۙ {e꜔L<D֫78%,*x)&Bs"x{B +8˗b5-=9%2ݧ7\ 6F&|} ">6Hq%gT4U`#&&b$,jn^[_]xdd|[;?FU}eLsX%*U& Eo2dG^EGN8h V^={lSѡl~q [tr|] -_AyLf2d'&>CEu󳼓|$&oa35$Ɯhvyx0y-8qr8 m[-~e۶l۶m۶m۶m۶޿;޳č3fffknD A8f$tX[ȒI3ĶBjbY8~AS/D820e.żV]…lI =jqjĝNv&Ua-5Lddʛ}_u !I&(e\XD+]rg^s`~iPޝUõ!ĪvHIiu-9fxҧ6 2 &%|h)C|CeesLkRŞiYCu𨴝h޶R6$qLN˱gS3JkD +17Ed&I3YJ? q!6%Z%ⰣgG,8ZKt#<o|ө^qTZé_Q +?Sn8*dv9(pMOx#ߜ\=!oٵ=c_ٮҜg;Տ6H c^2pPd$J3<ڲlgN(ǖgh\ dgPsNW/>~|tcK5+S q` \%H']v>?3pL-$QUImo|i&J-Půox[!H&VٴTNAgLMWqƙc!pwq2IlqA[Fq\c7( Q+3v^\cGV5j}μCqUlh|}z[8e/}UOMObsWAzdsϿ-9뮼~np^|!H2$źe RԼļ1u"j.+x5#i߉fKRybMU5JظkgU +vK5 o16.&8*2PSmtBXVsC\ S$%ijpZi[Ho'%5TY$ҔZvdNnyQP>zTikb~%Zt,Uũ5q,Ra~ pX-+u#)ώ &h9nR pKFW.`ڦ`Dxk3SՋz"c,Ϧ3c:փIK]Ϛxh=9,]H_9TC [~y,q®ƬM}@ZrP*y8"Td[+Da|)eyh c, T豯y_a(&ԄA-:c\D/·Ջ[ ,&;15erHdݨHw\%ca&ǭ {|$H^|o>X)z Y)9,Ce rDJWG q~G17u5Q!p)C/Cޖ=4J-I[CziZj[z +KT35I0:RęBH +"ߛr5μsn&,A,N-' + h~|iׄ,'g*cNM0nm;KγMmS͔ñ}Fps8B߱\g<\61Nwԩ] 6nx 1= +whm`oJ[t/QfnGYA%'C}W"1,]L9C}QTDPFEr8cxĆyzqp +;ud;k?:rBuԁTXۜaLشܸannB5 |'')x˖vOIv%;?q:Ru<.)Á"V/M'6,y-_K* CzWHwdSwsJ8#l T`wơ#d\]=|lۖ + RHPJg+wR𯚞scdwT-!J9!IEI!JQe*&(OЅIH#a.A#afDi_q17Mgr΢&MGJRZ͛O1s'. ]KXH0{Jgz/P/G}Qǩ搦WOFs oshs oK;go^>t{m|{^Al]L5*ָf'T54fo^-+7h=*\S沏poiz=S]YO2ݽ"o[O52or|%&Hb`~jH(;K$p*%IT\%xlJij0Wn'_KvAŁh>ˠHeJŀhW9I6TD)SP?*2?pi*?D:_"<?U>!ieS=aҢ +(r|P|C-^>9V>x{waV:HΓٟ΁ƪ(Pդu't͝Hr%͜C԰drݳɋ HP#pFίuhSI6hxy]GrBcz(}P+V-]~lV=&]xݡ4`o7gWuS7! LE`1 <5"kFƾ<2TH6tX=Xe0fidl񐵂I`XJmnQ ѡݥ:9ovbRӮ,bZԮ~\[:Biejʣ! d&InhImv8R8]SCɳw$ϷZi1͌Ce#>E1ЛY;ErK1kN{;ū=[=[H{}^9|":KN_Z̞)M~dwA$||LL{MI\Jp>գ@ȖOa;+>b$r.<\J΍Ŕ|Ɵ$~Ɵs(ate+>r?py9=v9ѣ%j[a>CoJkYNBdCo2/΀?~2L "S +$#Tdpb5lh׼:z>:{iF/CnO`(v!Ά;RVvHAfᵑ0ў--zҙr(ٌ{ vQzv9ywX {g+W /C˿;khQ? qtER&?HCH,aQCIY lnXK8z' f )C<׹d23~bXnufw'qA}YK=@??@I+ջ+~5h)  hca6CkYгt 4۶ DD E!jκOLJqZƅBg=Y,iigj1z҆/3WII }y3m_#^+4 ˋ YN .Є<8g$K6Y_!}3uqhڢZƙpCKs_/呖[3 HqGи1,s&63ZPHϒ^h7Dw94n9JA6.;y&|2R^9[;¼.05lNrִq%ՏZhMu?5."W85l0.qs4vVVR&̜.lO%%imOԣ"7$%o_ݾ.(iFNjW+DxL.aOIzh42ù־N*a]ڽsuʵqX +tH'1=8|vO5%~'.ԭF|wp8_*Du̸q3T*&|hxKsD"F٦>)|p5Ls3A^7?_׸> 1rl-ڰquBʀ(R$o\_QZ\UVj8maȋ'®:FCd C5)M-fd,)b<=ASBIr#Y6HU|݌L<(#i)>f(!4][mavCL`43dvKz',}.-&&XNI$+ q +z$IQ+YжIP:2)u$ +1-$/$}!BܓQ`j$ erB ElB>Z}vb)z8۫PFP >u?Tx'V62vލb0Ar 6|Ø<2!5(-d [I?M#j +52,iP%ړj[mӑo6(}h[~hJ[tmXemh5tv`vC`İ+4BԴ"FTJëwinZHn +wOo~݅V&: Kk}'$" +´<'&'P e+ΒnRɴQBVQL<#)#]}x&^@KHT&PW"VR't4sڊ]2JN-6avz+'eW^*N#a8f䵽rlkHN>I8u.}#c.%4<=7L؉.ĒWas.T0ok?:I;7eB]/vha6,GH},O5y"%z@djMUUu U3E,V. k9(5Sqr-ehe>0Ivἧ0Ai$_3.)lsPpUwQ܈ C2ҷ;}m{qOI28{ +3x&9{ye挐Q|EcRٰ+"ahP XL_ jv6o]K%U!8 Lm Ե0m<4`IJv5s1״b6-T2[&q 058c +wa(Ԁ%t okr1&KPJ:ENio$7=~dn4-4>K%t)tVuWQ;;G#b-S߸CܸCبSZjiR:]5ebP9iaވ:3Pl>a;e.I,lҜf>lY###++ ++{CKK(K} [KK$k*o#lY:ȅqWvpm=.]uZ_ODo@Ld4FbempbdE&]fmbti&jmct \+]Zoޜ["N {L'  fFٿk;%U_#NvqL x1j=͐$' V.7iԘW) @#g΢dꔫjT,9 ކͿ\記7yN9NO9fswy^Mk%#BwKJ1P +D$!)x D4!cP4(DI؋^\LSdwuL/l?hCD_4$Pu/n:VJ]1.4rvpZ'`Hπga6`& +G|V+CF\nȐ|(z%dtcdMBK1[^}oooi6uk2^WY5XBHu*ftgx\G6WR듀5 +ޠ/U{oMa"~Xj@+yM0Bt ' ZӲۋ6a`}{&|PQs7]l^ȖSèSc~-̴i:M]ZVXs3& 0C.Bi.-ZݾPEj9Y"eh:KD>ک,C]'xj[~DTvRG}RJ2fC`JEnaP1qXD1xN/VD6`pLO֢ 2;9w7e< 9 rKgPO|IK$Jlqebʢ0Iuy"g6枘/&V[y8ܕo>Ūa' %ڇgs[oDg9#mʣpa׉[`` į#2x0EP}V( {Ncle袩H@@tf<0bXK$,.ԍ,uKh}A״SCFc8E>g$RGql|$CYjWLԯS-hLfˍ4P^LO '.GkU!8T7mg|2댊nAdfIQXZ蒼JP D4 ,|WsU[\8g?INY9 \@d1xyuNVl+&﷘ěc%+,<{|@l`9X9ϋt[:k +;wˬ~ 5ja*{ Zjc=-ΰ>f@'^mpK;c}`,e֜u =ξ]GtD~Kz EE>]iwv~ ;}}#dQH` 4(‰3r9pg*cg{'; ',._aNp@\SfSr11;D*1$ZjCn]1$wI)}'j+"`qΙj[F(1$cJ+i|;n+ܖ1ϾɈ_) +1ջD{_pG(P?T?,ӗA0l`w]n59=n/wW럸9wWdܟno<@ܥn/X9-@@֫&\H\/Z.;"~ !ݔJJ-MzŔ**5)3r`ԏK'gTR&cϝs8eB&gS&gi8R&efNۯ\Fo4r05{a<树t+L 0+R +2 <l[E0A +t Khwz _&ET`RPfN,3。3HW1H+m ܰ3_hH^LқS=J7.,i#7o|N|׀AgҤxKpjq_^ +9{دDaPTـkF%)I?>|5}_nj]W8h>GA'oN][^AKZ<cln~RGC@:8!?l( giI)p됼5'&>F^H`kzp&76bqَ$x.EoesE6a86^bEҸo.vdR6. +y4h ʕ/Dj}4٫ڽS1iN3u~}=0CRSkkhW0Zިۭ b8vI0e$ [o sk0h?D(le8\=cLA?m8}Ah#@Vj.GAE 0h1j{ G°}scYs >;lV4 k4։'4\4$|!sF1Ph}GPfUMߔf5K# ϟKΡ(00bg~g/DG+z;e:C"SpNwKʼ;b b28){:w+#zvq]NyȔ7(S;5-,^ ym-A|TE6KK+_iZ)@QL+ +g<1+ܛ;HSda`Z>Iv*sWDRD&KWj{LK[ ZDђ=1f~Bd,r=kح0-Lg`7o  !LLan]qH][LfYkMǣdlx}VNlcnwmh3G +v: s6B#Sb!w'kT,I]C!g w NG*Bk{-T5t!90 +@I^/!7p5iBD b,uyds .Gp_mDBZFRDֳV=A#{ iMc,U$:JYQ(24aW~[h!a]ļ |{d};zCDmyZ;H(˟Uqx}Q)zfœI-QTr4.7)gT1ܗ.`= OBdhFMz?A6BNu _;W cjNsGA^;hԕQ꟫^LUdze~Vep=.#PߤI z%F02!EtC!9D쌹$1Uځ/U爨"!u8B +bE l"xDPqby"E n%̈́jEj.8[q&$Ki'-hgz´|Vd "eT$K!DwpᥔJUDi@jk"#%5DV0I=m2Ҭo<^֍c|P`X3Cao2QP*CL5wLhiliqSC@TՑFO]S&aS@,Ol}W5J qᚉu[nI;f:òbǧ8*}2{" fX{(^&%1;NF]Zb*1}8/ *MCsaWB#)G 3!#1D#rUj}̑j' BGmhwzS +F*M\/q4]f`&3bC'\}KSɩɨKʩ)#twh z@qa?- 8E<͉Bפٞc69 `^SԾWi1zx1#|13:3 3§F¦ §1O+ Og#fC̼;dNyOE#fx"f#fZk)8u 99W)8#f9eyVB9D9ʅ9lg|qUNɘEa Sهc~r~~pbur݁,h[{!ja!,D榔RC)!3ਘS)U)e+|p 3\%3/wRLHFvvv|g͹)+^ka&!0!Bx8Rf0'x11$3y|z9&pZ跡46p(aת[ {zڱSB,׸3ifG$V_4_2M9-tGK3V+z\F|afϦ0<ֱ.Qc(5Zх ɰ&IctYjc85ij0IBu)Zcxu PI{hkMzhW,p, VC.%}}::*U5/ށGڕ/9vMƁcQt\KIU`}E}w/`ca+FIҌE铞켅,y8f-I~9vY'ă4 6 dHΉ!Q$< c> 8il6IN^of'Yc":&ΗWȒQ"Q^)Uc)+({|$.9])[)[ɱP,!s`%U~}]F*^#M@Ӗ icg}* W򚹚\ >|4R "fv/0 _.5xH70>/[eurF *Qi "k2Ԙg ӷM8l"פwDy㸇E˯r&q7. vRunmCG{ĸ ^zT =|(D{jFuMw2" ^pD e,zB1g1L3< Օf.(Iһ.FZY/̢0MAvD"]|/\2>i &(=o,?HY'2)`1 + V0D--kSЄDCy9׈n۷MƍԦS[\XRƒn2l II(l.$)u@|s<Ÿ̆lNП)"֝e\6*yfnaBRx4O؄,3:_Yzݐc;8HtB+6]T5v,!։?dQr?f<;vIgP7} +㦴>{-~35= F6N E8hWd0uz81Dsmy2Ze`@sySrեZJ`Z&[ +_e~(qws'p,E 8u_MR}f+kprV| j~/r ]n-w__ +718aҜϖªPa@en=lÊA7uYL7 O_Ŋʜ{o6?9*ۥ9P`:]~xj| +ñNBt|1Ҝk8|HFMBkYfhК{P}Be4uj/FIrIimUK4fV).%4kJAn8㆙ 7.Y-xj&7Wf[aJ<?Ja1*S6-ʣ\ߤa-\C\dԎі1 $Rm.*s>5)t_GC%)ZJ=2׌d166$uQVx +rPoVgއ>}DTQlv2HpJ٦`Ifz){yFzɟ$~!gDو%@׵=܂ũY'NiVf|LM0YJP4Z&8vtѠy=nz@\{YDl wBGK|#ur͞g_J2Xo8pR@Ns&Cμ'A)7iI:XM>IkȕAu'ӤTU\?WAK.0)RuNm <>;HLŢ!K8{|οRS^CjJ:u W ɉ8Xi~Ǐ1UfAʆvraG +/uȫŃm<MFk;z Q'֟G↓2c).?6]Iui#ڇb|S-WZjFn'{38HK'GO(MܕsR0a\$ 54XoHcdal6,STSx;ţ~ g ͝»Lsct*riljfI'H'c69`F =-euZb~ӎ>ȠRޙMr:-y㟒i˯rhٟ;ʉ *)*mKmA#l!b{!]r~;kuӵ ض2<&t>?nP\kh5/1k(fZ Ԧ} i8$쓮 BQW4|E^jNe /ZhɚoJxx2)t 0R\0SfZ2qtO.e<bDƪJpK輆xHZ>dzMRvCS?p_8lph |aR*7$?9ɢ[&ET=T^ŸMǚJɪtJKj>F(Mmt-߃ԹC-!.E ^+u\Ø&l.,E (?ǬdEL`]`KƓ=  0RCS#hf8r/@1WCj BND` R + +͔IFi̍Lk# {H T]G h5h\@hb %fu 0-:+ˎlvZEz|fqD4x ~BTpWƭy0|6okxQ1e4ڣWUvlmIU58ڏ;ux1MC_.=G-=0F:́UY#BVH,.y/-x٢<Ż~gv +ܮ.S96NJf9h{g'j@J mPUJdrՄ!$";eUzw)Pr6CXX۸) +(B(ƼRrfyҭ'JC!) +M JND8sʹ2 hH$Ϛy9^ '~i[$\3aNȓ!hr 7AAvd[n|]7AH0Aw/nGY[O~v0׹UY.71w va >དྷ๤AcI#PIAwoo^=2ྂA$AAw^$AAwAw0o2N36?JC&ɀKsf>D2昡W+uZ5P4X 4`W,POeC 7бW%@7W'T5*$*S7ӫɝ7Hd}#O7׋L[}(y(;.z敏r@hV426}H?!6mUMe~נ"RR^~AkE +I՞-tCf^/SS33S3__\1jjvHR[-u!ƬR[z{5ឤ7LG9ncèXă^P?fofGDo4|lz{c tBk7ֵR$h ق"bUC!D%eܹ'z~{kU9>?b\Z4ogh.E{ 7OZ +2VvIXm~J:P@zzAI^ =;+ƬI58$}0slOj(ܕZ]=sJ1Q;=KA|n5ŹĚb(7= ɨ橌mGpaX2nb4ovx?7繷 +EInHeڌR0RLo#(,VZ2R_ ?whMy4ו$o | 4Sj?:H/#qHa︫Y.V ?ݿewU]Λ@XI@֓[5HiI])\a)(sq'.#G=uK%"'o]_]oo_z{w@b!_*M)^%[pQu>1xƙe"L0R ɉ DD$Q HP(^a"Bq?N +r 'Fɞ?̅Hļ%6DvDE||𠆣CaL(J0*DB+CpX(,>2+JSWG C֧KJ CԚk9pioh=ZXl s9Ӓ nscDީP* 䛈!U EBH޽n[[ҷhӷh>Ħl: XEe KQ)` [!zx`%dDĉgYኣd_T3rr0a+@s6 +<~u\$tT'\7)HǴQGYcѐ$ffq\68)hA@K4Bx3BRBP`jX`ja`lh@m-]"_f?ExMR9Dr?sB#!{PaN07`tVٸ"anY$1]~څH6_wK򙟅ڤA}q!aYj:8oT?h[vS+҆3b.ڂP1a<"%ĥsi"Cr9ùT>VCr2.rknˋ_.42Py^cxOn i +, s"td3!rV2͓YK%[GF" r4:6YŦ,oօ%&û%f$E(cܓqRR/+_Mβ "[=JmfȬ%`L;"_v .B#e\K2JʒT]z<*zXiMUA Ǎyxb+μUt-Ҁ|lJ5 +ɇ5qޠuٗb7Wx:FBzz?e z6]ӼsOU܁kc܍ʓFn%w7l߲Kx?l0/ձ=o$- DȾ#ʶ48`o39b ktQ{ypN# (P'-5=A)LB89bQAe)APdžDp ބI^"\[md,AK2̲'o*l:q\2j/%<7 A+H1 󒠩23 LzB("8*s}GLqo# FU؜rOEQ9G(B`,1+@$%rPlNmkaZρ.e`";e'KZeOi4H 0PqtɉlOBNNshfldw#ĂTI\UB]lF^1Ng&r#D8JkRUkߑ1 +(tGTs}sܥi;*Q4k.SW@ѕm*)7OO[3^ݬ]@d{+2uGcrɺZ] BٯbQzrX $ls+B3X G%m|Ae.9%#,>_ӭ`\̍MtC%:?ğlw]۱MbK $-tL3Mø0UDgqY>@,Wy`9=ɯ~>6RS>锳ԈV dzZ )>\i~F:H#;|&$՚Q E/Q># 3F 4V㾥&;e";!CZRBi=9aYjFq0jooUll; +{f|IM 'g4PTƯtu~!w Heq_U +oɟRf3= ٹ񙩺&rirbs1 )8"|qK ; +S{gN#ɵ1MI0bV"8n AP^J٣d7SGBTCsԥ3d+Q)D P" U+#Cm.X[w +hZUWnlڰ|g{j u3r~:_Hq`$FlU|Ӿ+ 'bpFa*qSEn-*pGnמ6bFN +C5F6ɣ*aas@LW}G+̤*6 g$\ 5imb~a Jf$-7ańTƄ6],5/+4L* k*NTUZ8A*ʢ)#s8^}79QTQif0>cFAюkODn@]|:b6|>Yv#J„u9 xۃ1 ѳx?. $Fѧxwf@MĄtsjNj)驌yQ( +yD <(R@>/P>;?3,P]i@(=@<(2,TE/Khʥ _7DG3wC+r4MQŘe?L"w#Q:Y6pwt:50=W`ΎH4VK7f8HǨ^oۨerqՈipPBY +}?QyM3gQ"U!߀wG  Rpx+V-7]:pi`fer[l&mԵ)Med?Mw8nuFs <.&_4S+o$7pwgnN2?٫ ,a ?Ӹ^5/8GGЛP j E*C.H 6q%2kIybJX +ɜP#NQu&NNXVȠ%DZ}M AUm_+r%-K YQغ:ֆ_(ϑij'q#oѾ36ٛv +ȎB{cELn،osˌa4Dhx4Gj(^p`SW΢t,fg? |'Ɩ*γY-ބpZxoA ^L2X=&Y(԰u!˕ +=N,ںkvF@Jn#G|+ēd$-8e fʻeIf>|4vj.v2wTr:.f)-1y2̜9RN!PjU?'Rphz<ז?XZ4*P/wC +YI#Rx2.z22s{~<|A_W!AH Mg "SR"&qO̍ H\ 皀a%!RW{ %/_vQe)ȇ3z_ۆBiNm i@~jRKd⛩77eC[ '%ZUN\kI6`|]s=\&"6wXP +0ÖEt$eBoǶc⊱ + =uZ;"*t+taWD52{owRΎ獶3eLc2ioנ.]WTzG']GWm` \yW"aa뗼7G2lg T29cC q%CA\9CrبJM;;@*8La.TAx^#} sc_e}u NvlD/&-5c-JXK|}$CڸpĆ5 +/(9wCk?ft]),K_4_sP@%jt͈ R&D2 +&tC 4k&J/F|Km o VWQQQ4<[<ш~zİJbV( b(|0ߤ`]Så{_+ + .-ټ6`^;WX; &돛2:,ۚbZ],ٲ,C$킛FXٲuضLض~ݏXiBND uO^)*f%dMjY};b"f2BآƣG3 şM`wC؉*V *L%LtmV?t<| (<"3酔 +0aL"Q#Q p5Y HXp0 #T86g5L {,cXH0@`Sf*m-竁/@a}g~nJO rA'W<+Lݨ=ư}K.DdiNsWwmS9K1Ǝv ,KOa%]')sɎ(wcz6Nao@X YIZH0Qt!z!^!*T5BA[A{X +{hA۰79D'lhZUPn{ sf!׋L۳(vT1}z2y:Knräl{Ow.6 &ut_>U=€S;iQ[Tmmz VH~VߊKU //a(6.zގ+>y5J}2`Żb "S`qOMkk Ӆa,G^d$%\NkA0/ãg;JT*#n"#nr"dFMbF&QtII+*:&<H"-RXev7;DPYk m5G$f5P=x=ϧJK]g&8=inI g +)s sE&6.g>o +9#={/?cE548T6Wo g`-Rz i[mߘn0bڰNb]Lc=%4g:>v@ Q1w-c$F=esx/)k!iZtIHsĎ Nq|ݟ0PT|;JknOk^'E`."ٯ"SkYT=rC.,%yŌ 1P.tzmԍAwMa̖;b9mNBˠHR(V-܀(9FZ3};a + 0$@P.ZTc#>ʹmHtn +sFkP!tYHNݛ1LL467:]RޕVMvQa>P7oLmH7]ܳiB+zcJVug8Γ+óڽKu/Der/N~FIHԲHOk1ިFy^9'>ѺREH !X0_Dv|vw5 +̍K/жY\BW#tprR>>#Eh{ A_|CdEȐV7Fq >PYl&mCDt~I!Lk`+զԨ̌,F:_OWlEq$S_aCOdPD[Cj}]fܣOAAsl|2`azo'{[iX~ȠA{P68w ƨI'nHqZ$I1 ?-VvO}$%Qɋ5$-˂) Q5‚U8`S{" +p?ʇsѐ=oLe_^8Vh)kr/)DpAƢ/O-}詙k#i2ڗN jN#vBgLN1i7s최L~Tqm\Nwc7E4Fkw倓TGnăq<>ҿw mF4/u$g *҆ꩥgdeؿ"3T>EL!zY$`  bC+ܹQ()9[9c" +c?TiVdSG +7fh>!26Pc!օp̚ɵ߹gVHS+M>'sA #g +m$YA=v)}Vy/=IktA! ԝH<V?Aފ"gBj yJ 5oՑmt{\'<dpr-WELBxf8G}LK G:!8g>r >Q#C\,!DFBFL H!/ +7@8c4 rĶ +Zx1׍3-^u\Wj䄙r +L 4KRzz:xHtC\Sܱ\3rb\E?^Ոu34 #\,$67Y5eHt^bLNewq𼇥OcSsΦYLVO< J ZNQDx I dH%&f@u%W_QbbQ]wL_Y95l ÷hz>TO41M1Vqb]O,Fp!cja q-]nK̝ڲ?k UͧQv0cU-"Ά]Qh淉 1YC"b[UYMPGo9H\ZkڴȅC 5Cn#n+Q(BbSP:ȏ:.:oP,h:X]ᆐhٙGpZ[be$%Vx:ptme(\`ʸ`b$R +WbPۭ>Z2؄z(@rE3g򅐢Ŭ`TMo(h92ߔ:HaY#{_n2XB4=LJi^Ad `OUJjAaҢsSO+,т׆Ed6y$[j.I{GDL"8U ucy* +e51ĥ'34ZRT* a +>1 +N?G!YMF"h66U-Q/E鬑oA1%]?xa qx=V?-؇!}x?a_EKFc0xqZxč~_n"'8 ٺve^oXiah@Ké-:*2.)VZL KQ 6"䣬`Lښ*x]nJiE@(fǚ~Q {xr +b`c{#NNE10Z"e_1zDaFxr$[ߧ% }ۡ?suŒ=o_ڏý-?r.eųfmYhsmӒ>y 78l|zJp`L0-i+GpC0|_w +d. M%iJϯ4G72 藠ƀ~ZDj,frSVjI4 7_Ey#L)~%4 I(*1bcl+;w~!|4wJ~%)g +肭ukKnLh| h\ j \joμ0Su>Lh +}ݘH{{o9r+5s,ۂ}~"](aSn95LP79j5eأ,hIvcȮ>T9J~` &k]}2}2,ΣnWP(nVV1y,:juO~7avF*f\`u7ZZih)٥o)WenJVȵob厓$|@NBz1G$%n<Jzat(9ᖕcDeXs{pI)\tSzE[>Ib +Mn:mxM 0YX=;;IwH(,+F7;"W11'bV^j"$'lo@&4L2T-:z);ҕ4Z2p +Z2R9%MrVrXr<%p:MRzZ1Ge^{ٶme۶m۶m۶m۾;s羪ѳ;TQU _mF#<Ȩ'˂ZX'cR&VB;|apV*zG9 ŦS3r׫|xϰ;Wq HG4[~8^+s%M:(wE'zh8nEloRSVrs~K<4f~K0HGG9C6^';}ަ;xѱ[}!D/HvҧXg;з$& ԅ]Mjrt;hëj9>#5 Ött,Ju!!yϘ7za[*z!ֺKXOi*g3ge|b`'Uڌ2 Ӆ +A526TUv2?jnت?hx18l6$M6:X-VVQVDkp2yIWPP-- +n'l=lx~Vb-$˃ԯ97?[L: i)DI0d zc{ڌF$k_9vS:#]{fάD;QϭӸQQc/LAm>p;yHʡ{H; ܄{sۻuI/{bZ;ݻHB<ݔ;T}K"e+֢򿬩pOB2cS +i!݋, Jp= \̹-Ns7 !tLZ|{_ݢrG +,U1$s0?=g QBms2ycPXN%vu +1GZo* +՚b%8ȍ̞M7/.f/D>JxgͷΌqQB3jYt2SĻz-eZKW7PWہXCv$$%שl +K-{&#_]-SnMNaeHݙLkۺ{T JJ65匯.ed-i@bae4>*4 ڮad&1oyBBxdȂUQy̍|7p@=ՌMepH-F׏1]2l6Z$i/Gօ>!2sg Rκx<ph`d& %hoɝZo (Dԕ"nF*AX"{BBU#FrpEE8~ԺApDr㋻TKڃI |?1Ko )+}:冲Ү ʥzr:Ù\d5X6S/ v$ =P횰m+NS%L1 ʄN_S0tm#ڣk׽ E@ì(nUvYAԌXs7T#\Y L ]%@ nbyb]I=}=˽PWcc^)Y`m;[ޒi-}ASfiVD,4$dGЇ7uGo7lR>axA|h< a+Y'1IpU0Thv) xI~T xX8sQi#up` K)dke dkb|! ppSBi^rbf5;ؕS6{ $b$k/=i_&ݮhj7o 2rDWV͵G\,vy=n}>8aO +  0_}}kc'c[+k*.$)ۢĦ(*@7h{2B 4+aQsrߋuƦz^y|\mp",K37IH? rF"'MTCϡRKKK9*W<4Of~pjjiJ_0lٮݿu-*U3.p?i"fں֬Q]s8^j2P 2G&sj)!|!{V۶8 E& pU7 gNg1rG2tdҳX榦Q&ptToQ@qVۘ>Eez;kUv==6(>)*]Shvn{+بAŇD׬hp\QUh~%M$j?u9y#PvhG5E: +E;HiYCcvߎdt|fu̳Ap) hE*}>p]QW)|y<:|$;m~ϫj""(,(mMDہb\qTSZa7$'|1b\m^_ g)e4xMvџqFVeCڄdd_|]Y /5*cO>Hv4#9=/Y`ZZʄt}5J sY 0qti"c1,)oete%󥱱8} +4xqzX4lrNY:".[VyqרzhY\6;dCתĮw҄́K[ž; d?DVfhO@:_ۯh@A/Fȑwj'Ds؛lc3S_Ra _$aW?~ kei94VAyS]5VxƲ9rpՙZ̙P\ee7ݔƾ/%$78yJ,a |Z!Zz-| +]ۇ8۷?m{Evr=DAԧVQ[KGux_汾\_J];lbhtMPQŶěT1rKisԩdܻRǟ|y~S7D˲/=SIysR'x˗]~/Wn#U.~2nʚ 6x2ec9~.+x!{?:gkp:]!q|Sy O֦d!4#7k(lY&9Sͱv*PLVG0$+ġ(c$;DΖ$t]%C^HV2~tmNj۔^U2rhhE+dX<SKJQ=p8xX,AS?/_J\AёiG9f i/\wOx1gZm`r?Nȃa^X΄mfbc7;iN!^OيT+ܓc-uQ|+g5&睄'fJs\wEDʛecȜl26u wN)p%-5%uFj۲Wf:zG]ka--%ĶTcDsb²Alvc {5ornF@U&T[5 C& '7+h+:U)4w!l(ۦMk'*<&^VZB9r^zȫї8Iԃ*mA1T:T1ݤuj4-"ckk-1v#1G+8c@YhCӝ` {(n. j׃$cȀ:U~sYLzհ;nclv[ ojSeWԯ)IiW8b7T&onj+#}4*;^~mzY8×yc~UOpMSDLcզzx2+*f@[}:({+\3 +( ̓̔uɈi#36QLYskN^%cڂ>_Y$T''ʔ',cb;ERa_`.!XP9*sM'J9*Q"42՟1f@{]>654`1Cϴ]dz1Ω?rK1("?cShvt}%HY$$HVtSZF5!m:3'&VZ0_3NOL7!̫FdӬvQ0CQ_m݈Xmָ6@Wec"ӔN8sΟXaRl) +!0*ў M=Mû+ި]'%˛+-|K]Ka܇dwabZ{afga +ѰU/n[Cmz-:vro0AN(-iq6lm&>.".|oҦ` ~m9>CPJڑ ERp>ˍ:Xi׉>.zJJF-e21Vd1cKe23.\#{|]d!2ћjq!yh9Ȅ{ߍ9Gˌ&rt,k[ޱJd,5dd!B#^J`V(.u ^Ix_Ƈ{~FxjLʢd()^.̅[RSS4-hRr*Mc:[P]J8[Bc]@0'a,RZLаϻlb;R3 +q:%FrQ&%\*ٰx$"8m"x` EMO Pw]D&ҔO +WԤZ$s,Pccؓ컨ŮbEΈI\VA5䰞E%P\)L.SjxSg34;^2s+Q3iA0\hȣ[C>.ʭ1Ln>"QMb0}bJq]ɇ|P'򋇕k31`ZfSk}KؙsABA|3ێ<[ӃW8͹@uW. :Z 6xPT}j\QQ'`EzK⃑.Efj9oA:eb\qXTECX&QS}j8;މM2ޱ3UncϿR<$r@$2y]H߿*)8cAdGmPQTF9piX xwI__8VcǾI#ډz] L鮉 +'Z*&y/w0ބ4g.)}r5Wmӣ(m~TE-މNÃã-9hݝ㧂˪$ S*Q9%SoإQvjPbQ<-~>dvɫȸZf/yIlb@cStOol7+Wm +Ao^LLHI +7o!!z/u 4Qb<W2-xp/vdͦĜˈSiEu㭑Ӑ\TWR&lVofVD.';Qf+Rܪ遮ݲDwX4]]Ԥ.bS2ق=J>R 4I,|.tԐl;Y-gکVuzɶE=:SU0,5/V^@YPBvjsB@ABsءA}F +a˕;P+'ڱbzv C"bc&/cǠҟWpIȭlŸWy~&sL?7aE +t8"$ t!( l]aŀ,93hQpp>DWAY hj&cKM\ME;4^NqѬw^#LL +vbC^om=* cB|br:Blu=!X,H:ᾭvjf٣lvE FtU~l4H/Hrl9<|>A{ؚG"XG{Vnoʏ>(nyr8#rYNUWnECpih{ />%gzZZ0ʕ[V[$u[fV$s{ly=z@O`h&';h[@/=V=d굛Hcv-%\ +I+]໹|V|;HE[䒕>{<]DtL0EQpv\>> J=)l/n\ð룕Hr$Ŏϋc/]k@d[tԋvCw. ej W6!Qs ?T]G A:YVc8{3'OMJu=NU@rC/{p[PZRy,"^Fl^ !i3xHROv`&04\Z[ƹ[G>H| |wqœ|a͚͊ͪ9DU,̟Rν }[X&HROg[ԛEnm^svShqA;"B`Ta!"%{TSO< uSZM"!kAf 7I"TUQ~!'7,A-,!rA HS_>utPm;u\D*0-G/g|A l?x9`jC-mg}&yWdha@9L%M +MJ2("G +!E*Hv2bKótR&%+dYA#8\n7tE=0HZH= t _(:f:+>+ TD?YOXd}m^U]C1sM$TM_a/WW|T9$%ϔM*?^_wv e^6.`RX92?`&SXo)꠬zgx%VSˆYK+Tbr="xaIVh&?|!N#́TLl?Ci! +mY\t,}3mhq!f(pF>ɕH:J5pDgP^MLEΫSܾ?\[-PeO 3 +ɚ3֐l/GPvP|;0 .^JJ',)q}=lђUs%Klu., +G<)>RsͅiǢ s Rp1q'́%Q .#&i@xVB@}̈́Dh F1M8?9fcAtJ-VO0G[xNUIu]/lgvk>LX}lSme氇sJҨR޿<-(<: ox/=v}LPb~6}WcAkkۻRuz&Ő8cq2wpĚ8 gV p,3 W2 ?y<(d÷ƬTNo~of0 09M-\{-)ζJ' +&HC!CI1A"Y+UwT6@hPDttVc()'&Sd9d$Z CO~(7Bu(kBs xdg +!# 991!-|)9sOY( +]By|"p (t:r.>8BB K?2R!(2; \"#sv0c +]t +W((R(M +^b1c +^$?B|OQt-t{l@Dqch)d s7?2]Γ]eZqV6ݭ3/)+]ʵi:I;!3gvԊC ɩ\ZKIJ[Ψ7T1%(9%9{l)$~5*V6eP{]v+olz19^=%縮Փ^7ø7SQǃ%_ǰߓl5ME;GSZh [6 kѣ+ٜa'/C1D}Qt[w6@ bjhShlRbY"1&.9V݈S] #4 k6X +m|YiF@*Jm A+dqkn'eR95`LtfK y D/t~=4Yeא[ߘ$iD9 +Ȗkt>CN0W}/qIlK`t&pF-F2PZm]Cj&QZ ݏ`Һꗦ7d]Đb!MR*Vl_r+JbgjY@5ɌTx`ߪ[P1gP_)T΀H'v:q0S=Uv.]t{.3L7r-?w/ξ*9t—+tK~@Ŷ`ޢܔJ=Φ˃;d5a.Q9&DWR0hnҍ^\ tZV&"="_dY 5WB*oxa(ɌkY0r9 U<6ѳ|KVRkuu 0 +;Z5h_UC醦+SsO؂2-OcɆu'Eu@ZFtf_8Eͽ|AQhu&"S"qwF?p~ wve:nsg>/0r¾Nݡi޹xa/:% ?<=*>m-^YR͢Q iFM 4Dk15>`@o$~XL;4ZAqC.4˜#פv}py¶ , x*l{ť8[+p߄o +e[\iɺ$R3 Q]3AyZA3=Qh_!RZn,R%NqZa)YPP!<=&IMg~ &%ɤhR& Mhr~rUr80g+z}IsRζ1S;{{a}e~ДS Z Oc]ԝZE&=>({\ DXcpLF͎K=GHh]w\;w9l-Gv=#!^֬F~ܠi֘P29h[쾼b@YO]!ZTg$mX; DOZcj1WAiy [dj?;s"[>~XJxXX~Vo(&*@g$P@7(M7t>-:f\0ˋ|Z 1Zu_(b2?j>WlV`V"%*3);ʬ!hjh6"a{ܐON_/ +gb'kKK*7ĮmSg7m70?fw8 ƛ< (=@ ʯ=-I%C-}d jtVK߲̼gT7a(Gd~տ|nSX4~0TT22h]0hH2<}^~aN~´xzcy\I((.]S6f;q6haB]6j\t⁌uK@AAae82ҁ%1PQy*eORYVIy{츲ao8[ԟUUį~NlOgfz`C$Mq I NM'[-J,ԍ1b +!!1@pc@lH(ث`:z` x`y}~`ax: :[D,%;!pn5 ֚c%R@38[Yȳ2EkCߡ%#zvfB8"h@g\@Bޔ=ߓ6rGu)T% M ie`|D&@ J 3Ehh( E3撿$oUغ.d^xXS9Ud2mM8y?1 d>.֏h(hTxTpG'}W7㗫g3 a0O'jSN4l!_WP6X{l/ +zZpՁ0߼:069cHpqrsHQ1 +$#6agM8Y{)GG'YFMbqqjqnqtH"uo?/0,vWk5PNyg$sˋkdα ptO ^Wїg}lWonm|՗i/zitIvzn1c1'<`5e oPW کݕ.Bߩ@n :W%;]n0L_o1O#֞_2@:]3^%s2n> ߪߪ"n`8W<!;֞#s$s_" +~ `N%`N `">o|g/XH47 +{ %= *Թ`YR1g^N> +-d~t1c +\79!ߔZ%CqDaH bE9A&DaK0%7ŋ,L +ѫ<E񻺿\sEg01BZ9EY NEmQ ɱG[9VǶO QNJ G qrNHYD!wͤO4)J'\}6M} M.G}fӦu1ӨWKí {0LGvȑ$" ( %t͎M +3 +s4 r6aߘ| uK/^бbG ;;<7JF3np^)3{/ZH{J3;]N=>=W^[?_eu7o;.=M=6_QQطK?R^`*/J7ggS5]7[[5dC˭S1@V~1f;jM&?Q[GsD~1B54ĥ2$- 6V" )ގ~~w+^kͶmJ4? sp^u|}/1 υ߳)+A@rC#UE"(LEL[Aӗ`Z)ђ#qI3bvwcbyO@Rbj0u7P4)l02_NjJxg)GNt=v=_T"̷HvL-,JD:$X&[oF{V=n!>fOfNX3ؠ8-Ґ||͸Ҩ̔rN8gxYG(m +1PPT^\~t.w[mi4\:uUEzLDi)f0N ;~C)tBDN9eS3>TTGB30Ko}b"7 +XQN&/݋|,q^ +x Ih BQG-Sodb|fenDo,9]/"\gڪ.Dl\1j9J +(;A|DA F(oPKQj#r+>jA] oYTp +$GAQ8 Ld(xHW=F$m_q|uGApP՟̐?q8Y ǕjIVLTbk5gjehnK)IYp\OV2! @FNMf)t:BLhf=mVE]:J?dv?44k[xL!<|>,ʸRK&frov&ڴ[3n9jyeOu+^Z,aH`#K1?+Ti:i=+ٰr,BY,((9p|Z4@Ꝉ>:կ'`ߡ_5 +NU1zDpe/wT_w |@RuOck0XS;y?+PKr.E3l0;>^J +tu(qzPwПG.K8LLZ> CaЏ8@zλM7* ?K'br;b̖ :|594m9 I'tW@Gt' +1@ ְ(¾9.Y$Aq!yvs?-D ݡ{qs4t=vxu@?5Fb^ړ:{&xtHuBEvvwooAqp!jf5&.-k/u,?v<,]_cfJMM AP]:uo!mӏfnj_NNs 6kf KA`*G? 8t':Idu)ÏQPcaRcsN +Pyx89>PmWlӦgm"9$ŝc%#-*{psL\ (gxK0RIZR?qTq-$|t~7: 'd qy~t%Y=hgMV/9mH"[Լ|/}ߙюę~>K"nu܆(uy@)/@UI*覱ٕ}It"?_uYVȷ}Lo_}a*Eς:6f vjg.ITd-Ie绕n j{ [QPnbm@ɬa8",=\$5V!1.OxK K,۟n|{ -#w7#Cf .MUrۄ9DmX1d㢩?5.̉%QjQSTLŖ&oW̳9Zm6%qPSQq +p#^BM +/#TW,فܠΞ<X +%꯶U>"p~`Ċ&ޓʻMA*Z-'T*Z·e\4a]4\,^k/JynmI^e` {nͳPn6tV74W7k V2`ĽuF'~u +ᇊK4Նc_Bl,kN5WvVioIkI+ZBqh: D~2Rp#VkvG:[Wp`Y(59`i:3y:kdDSqFJef6 4 0;Yl^FlAKs7 +S>y"mB:7Aj9dDfb55vG^2~b:9`փ)H~wj~jW +!s]Zq{YwMۣ_n@|=6hd +ʪ'YC2d]FlE*6|Ӓx%NbBFRcR9aKo{}&kAM5j֒%*-۳邲 VŤLRYa~JM*VtU]lh0 iu/vt56 +崕*e +9옋Fq'C z eSM FAG^q3& YsGeHM:.ŊfT 8]1:a5T#<.㽎"qgs= }f(!I\=jKoBԻ)xZ,1{AV,!oM gLuߪdo)lP_KeP%ʊ݅:x|]:%5̨, J]&Ԝ|m/LwV ]G₾>TaVNH\Q/ΣmPWW%;x[/"oTZ/W<;ϐhIبtp皠V@ФŒ.؞ +ж*ް>hm=΀e5}>q^t}#+i !+z +>'s{94~:=B!i3dE<ĵH3GB:s!n[$@H+r0C2y t5R+ s~W7\n,묷;?`lLsi`qչw~p^KQRo QsQX%FY鼧rI{XNPth_Y>zنjH䦲_Q0aw?~jG̀K^FK ,"&1J8j$Jۂt&c8 gF,(Cӡ9aIféOXDj@&xX_/\oq郬 +.bxU껤Nx79̢O$bYFuLuk5J$@9;@*5 ZׯyU^T;`+}nҽչ 0]}9|,@˗]}&= #" M7({[cAX]xͤ-( kU:TcIusԚjQ{ w/Ć=E9Wzv +uzŋSgѝ6=}@o .,Z()3&Tԕ1+]ҞxJ̇. S'P۞j' lԎg +߿wd?8rꙄ:=T"'afԧБ$wTP~#ԇ!佈=V8!(>Vm=MU賛Wl&$CC9LN[ +cߙؗ0c j![}FD0Om1HΛ,ԛ*^*Şkzf_i؝~WdD$[,KW_(47#q?^ 99/If`Zt}4AXv?̞c]O-:1i޹Rm2jRieCtyE*F0~q~bsRS:=WV=6=6U=S=>1%ΤKeZ@/mM]W϶Xجrb]-<5J(E%<u']$ +rdUGc_`waoWd_E~Tt`d^ ! y;˂'=Eyh +a~3 ͱ mK̀hWd]rK氟q e8Ϙ2hR̤O"<d38ErF0Vs& !t!tk |%8L|"!nOl~P }T2N,1R`EEޗ0!wlO01 0OP+A|AЉw@H:0AJALw"n%܊;ʈ>]Մ]̈́]xUB),)Q#!BUE6#"##`##E DE#LQQjY gd .Svܶ!bܺ\)9Wv(}I8g"ZSJ\ٌlSrn;S)hZPHm_dn8%m%;gLjஓK6t+f3̐fF<3;k每)y/S.-̱鱫+-OɅO)y/rҮLի--f'MJ5؛WWWWϒWɉ[H{J՛ׇ++g1qq~fvy  Z@⾁ez`9=Lb)΂9AMxax:u"uRqͅ1lԳs[SkΟdȗ}UqU' GD1(&I3y_:cnF㺃hCu *vdd0]~ J?OpM$306A_0i€XjZ\tڈ 2(!]vX6<tI>p9%-:'iaRF<hCm`}Vg X@d-eXr>Qmz^h@{>~35(§s -{F_ӆnEhA׀4G*׃=DF_L\wIF*:ǀ`'|htMXگvHMG: wXHMD+$|ͿU{j +%@Cnj $g"6gDu +m> -|M?Ѐq>IM@#8LYI>`!B[zHłE^>'qŃL;zgP3,iX'-LI $F&nuԬ-%I= !$^;Ұ +W#Yh3Z`sh퐷w̽ "ib@q_2=wG--|C©hsykh}g׼n4Q~#{⏚,&/YXlx/SI7ڷE ja $.E󑫹7(/ˈ`mulk;GY3wj/>Jr޻KbsY'oܔOӤYӵS1U\]^:y^!G{ɝҼƁ*cV[FeCX6VAFM" 7V.1 fRt8oI(yy˭"G^V 589D,Q4\Cr;=dW *aJ ꕹ+:`NizE f%QgvmƦzNSK׃F MAT ΚCj@ 1&Zm! "D&9ο +ݬ~4,l` 4M`i#Bf I&f1)rMMJTE+s`A-:%M N4]+a XՇ,D +Vt,)˯idi)SX~&Bʴ%uړ@YRawa{%k;*pQ8EW4YeX 6MeLvd)N|Ga}kM]5cl͋QznS˄ r/JKTQ@{b8]Dg e|ﷶ`.R4(JQ+`T$O\ZZ4DA@!!:>b0:(j6@𫪫Am+^NyMMMwe+ BS ZU _L޿+zk`bWA۔o⠞k k0yP8~lJWѽ1`zx$!w`B+.9MGz) )Kjt@u+Q")ۊlﲡzTQ|T(b2Uk|` OrAlب8+u.CCG8IXXH$-kjj+ [9) 6p~Rvwq +=1'ɯ.؉` f>[D YiJI*59ﳻWVO +%{?_㪙~a-Tnd!dn%w \$Ywأod1Cw+V0:M>(pdf0x*]˝!#6K =173wxZYmƽd7kͳs;1C53?Z0T>_sTFd`KYt@LJ8J(Tڧ2yT@Wgl S{=%khFCXb{\uj7aJ^F`vqt.=”k]^EQ?r lmU%Дw}vgI) +IǼ:a'; 9)[9!.Su.- UB)4Cv.y=;|L s, gxP4NA#BBXZgQAӁv\ߋZ,M"ذ#u˃GJC)1d F6ƙˡ <ΏpyLUC +Yo~9PTST}#3^Π,XQ(#]qг:PWǸGatg &ջjȰ&{:֤_LmoLLplEjQʸmqۥhr+>0q5?ޚ L:43 K6'XoEC!ёxW?T/l?W/RҖ͏hfn}Q@mb#](!pʎgYLl4^L¶YejX{0=H?fMˉs-!qXՑ1#2~)~1fzASIϐ<$=43-|NY\$ ]mcgkβJ*-c;ˠ{W7+Hi|kC sAzenΌm|brWHFғ&e^vl޽ fWbrO1vhu`T~OUABz7͸F Qꊊe[7QneFKKKu` o]'h4"K,mI<ڲ)OZl1@:$xI`=\(.gB *.Sޠ;+\0s `ea(yGoC%Q6:%A4#SAĹV>,~ik ?A՘A=Naڳ V9uO AjD?YڣG'N +(*&lZꞗsL s  |2`]/Kx!wGai˰cbKӏ06X22U5s>\<w%՜ey9ɠ?r {阩vKa `g$ 0̇ DZ2{h mT= IK0<І@+/h@1Qp{\4y¶n&nq2t|X7M5e1c1u6Mɹјi&]:8I1(>/W-k޴"؏zi^S.8::lbu7bPR;c3r62e%_r y=]@BeFY ZC ESr -s_Er}{> tO+;Ъ+uk6J&fo &=&U@D< OcVU W/A=Ei?^YzPqAsUSnܰ:3E9/Sջ-l>*P=cR?e׉JLؐHGD|Pֳ yn}ɬHz~+5чz[4zЩ~O}ޖ 7|RT:>Z/0x5t2GLZ>={J<>maJWMnՂ,gTaŗQ +鏉!պ Jû` vP!L5]M1IS֪zIZ6I9b?gLcQ#.S$hj3TSaJn w +J;- 1w +ҮC&џiJA&lÁ=tD+/-(Iq䯆!Jj~ ;RP!SG~/#?w^Mk8OzGhޣ$}`\Z-Lvпx_@ s=C|% k-:٭Yq}G>Ӓvǩe GDU}Ʈ>u.~8@RƖnPuAtGU]dr@j2ke 3'LZ(>卉*䒣)K'DZ]Pu?D3yY!ո)=͕\)$ @]{; +\X &ihhɫ%;$-K{5)KE%hT~#ޡ}~ uHm[z%4}H#<]o9+ ye}H{%5HT +%cX>+dPrT8etoǟ6tj_|q=^ǫūǯg"c*E!t| F _K~T(`'X+®\Q_@rQ,^n/.&|? RL\0l^(?rMq 0UDQ^`" MehlLxejEd2{8$>P;dP;p,A'z&u _;;NV^J@)Ӡzw=.Lj!ۈ}>F6I%k" i%bsH%jǥ5ь1x4zp=6jen#ƄSQd\~}Xdx*l}_7C$[ 7㍛ 8׎GD;6bF*Y5Uv\DTMnږ Fj%1vxlSF/r\ͮ7K e-DqVb˱U8Q8` XD{Kڳڶǂ7j-Dzb8:\5HPbjr_Li&2#5l!*j!"j!RKmm#^d?TCrj!g%8 q[$ tVo8w„ˊ̗' -:H-GO\>'T^qùW;=KJ{x}V>fo$ xESl +!uȉR!RF()TlB߮AWp7 +ցwFLiZ`Jqů ь aŪx|Vi555j __;P٫d8RUS8;us c8¦=P ;`~`EvHyE;|:zGbj9&mLD6?@OdMs +g檅ުzV.4D 8Fv*'zPkH*mQV.4DRAӪ]h-<Bun9t)'x&g)48. U$)*eNp䧱  sRi)y9ږUB9Gt)ƫ`;+7\_-cLq["v)m*fTї_s,D.2[ +,e-@sYh +[) f[^zZ3 +;t};zKkι  +Ks mh?qrOj' 稑 +; +քCSF +6 eW3S?zn0Q&{E2PmgO0h昦sm=qHU' \IAySЎ6 kM1̯PW׸.xez X3{f3;ϙ]^z^3f6gy].sUߴjV30ͰfX%ENt+<և!0g!_0=*{k4غwgtjءNKV#+E5;7 ѿjأ˝ґTBz )ɡ՘QH8kPp]$O71n8w:`4q/?vוTCP:2hiK*h}3!ED1>wr1˜P4fDuʑßur<[oY $';='Ѭ`N"Hk#n1[ؗ +/ˤzQ`~TIF`DNqxXhnpbj])tYIu}fv#OC 9htQ _U2U1_V;+ ?a}9ƲsDwvZ3$9ḁ- u]$d^A=HU5O5D2hd){ IݛǍSo)2g7n~dӗa?4-#j RIcj=Utd9DŽ'g}VVV>&~UpTsdWїsg%=b-btWWv/y/~/Z~T<)ݵ8t=vyٵ⁲ ׋8@[2؀Xoorg|E6 +=ۺ2i1(c o#x4"+$o2nb|DŰI*I/ ^  ɍyT7o1TdR{~˓dh%T<e6CH_U ݊fҲwȒM ޺XLQ+*K ߋ +b3\+c}/&s*aR֨Z$TRI&!Rm'3%'a[&{z% [%LLy!(Rth%[fr`m$,1GڳUwޙ723! p=(~3C`A 3_{ca ~ 4 xa4ӠAD)A)֊AP*f~X+A/+A^,dx(S(,@xH_4yJy 7B-Pis?P_{"=zQ-m!Q/jD?m9DELInݖȋɬv&71U&ܤLEI#H G1 (K1`#SvvXB#D:, +Ƒ5Hy $ ߆Ѩj1d"01e_e5.a HV҅ƓF<&lϴXDAnԱ?T%' *BW#xp&rhc@(z/Lzō={ +t [hw hxBH/ƅJw:Wt{} ++c].1DgHa.%ޑM3C,9$۪gO^e{AAyu eIFfu+9q(g`>RqR6(>ACJgL6H-e9!JMOsֹbǫѵcn/{W: D{c9d L? P4m6lMs(9Pcc נY +꿀FfՒ3p}D?GT"~Lao"4h<#Rк쏵KҺɏaP_IRRjHkb\[u!s 5}O`ud+EfkD(j(nRpntDnݸn7CՂYb5ːtU4[&VֈԱ`lGV/)0?XE*S(mgA}iq0vMse$^X*Wu=jEЀ2hzߠB٨Aⴔ3|,V_jsпzi53{?OA%']t6~1,𶼁#F޿_SjBE:dx^W\M 3E72-Vkw{cf@R"7Îz5IfݖhhGRX;S~cL|K$=rMcҪxo=0D0)jgF %{?K;*{ w=!]2h۫oCIC,u>3+eHkD@cW3 ސ*uJoT=JD^zZU5S.;}p(n Mdžt @|WO/{:/ұ^/>xb#w4,G3{"\"zs(EҟICseiq3TpSb(Hsaz/?D딥FYS q:*|PW!:?])؀V=6> ?[4 +A* tP)8fOL9:7')#k=j&6{?(jh% gL!% xY2p`uIJAuYxU`r*A@y1K j@{T,jpLu1m!xyixM0|wA*y[sgsI %1֞EOឋ! +wPOYxBdU ͯ: 0xNBY{k}yM:;EzKsZ|>TQNf 9_WL5vF6tם[K w&0h]zp{HGv"aa}'I=~6cq!]z{ ":C + J@EᆔSUTIGFJb +s5`)[(J,%03`Î?7EsnM-;+ng&mǭ֖{3)X/^Lk=wl|{.m'n>Yt(dۏjS0o:lw!M' (u$0gzNZ;P=5 ++j9/A<m1UǑӥ\bo0rw,BDN鑟zk;OUW"$A3bOoAS 3DG|E +xZy^aO@?vT9ZE?i&ZDjbIنBT5,hJkP-KL޻K*uW֡)o{=լv',&CFMQ|40uēPaM "]zC` JC[ u`& j[dR.n}XB)xـxTY#Z%W]P?So7J=4SUv={Fc2#ڮڈȵ"@3*4P70|~P4g]$g#.>Q5@]Bl9*!Y*%w\4"VQB)"ƚѓĄ9S\T[IҸYZ]Y+%ЭIuz} IC!hP|5Y[b@1)P /`фfDm:+aG2=iRqRւ-O1MWٴވk_NQƅ,&_eCpLc eUZz*%q3 b(DŽjRٝ~EYO8~ _(vZoBfߩoB};.)ɹjADcs:F°ITG!4lxMHc\0W^s' +JPbg]m ͥr+o2 dgI#O+$hHė$ w.h2JrQ{,Wv$e-hOgt(G8&!;T1 `iwY=ƏfSWW UguOQu1! cHduq1Dѵu1X,"xB;$d$%.rdvd%a20UBmskHe_=;"ox$"tcz0n+CD%ܡbZIKQ9Ko!XKw <&ScWq00yeDqG}o1 Yl6[ԧ[yS/3@] +05&ێ&]y:cl`WB,p9&bcmd>4 CU`L,)Q}F5WȦAz%FjiP"NO-%5XGǟB~TTه)i:]m6VjDQۍUw|\FuʯK}mGER.#L%m +=J,VYg'͈ܽ1ӅAc:O..5b*YωŒ; '#g=\( +%g3.S*I4"{W!!RaT++m3T*ݤvZ8v3n!w^^wS[a +6'0>n/Zf`$bX_RTu!n! av_!uUp x݀8oi0tɕ3):i:OR&{W﷯M$G-;]lzXrW@ +] Rv&e群qnBʺ*pҗ%k4D -MgzCQDZ㧅e_Fo:&Rݜ<9Ҵ=T(,ym+vu:?nbc3PhvVfm%': Y$8ܔ"AxK` ZѤ ޏ?P]/ead͇q!Z#Ȍ6)~Po>a;"[oLrrE(yp~۟}Ihiow9S%yqAmjn6Zωm" ph, 9ROSX52Xb2bIjY00@9\ø|#Tr b-%iDzD0|J?ּe=%ȤkMgIM͎[k[M$nOY]ێ'6^({\Ӻ.V0!pF䍪"'>4twmJ40q3hmwɿ;Qvh +2C\e)vԹOb<0社tOqMbiS݅&OXu-Ý GWDXV ťTu}RbF>թ!ֺrKilUk^9 ' ̩"X*WI>' urc]Vbbl֒eb% ѣ2~rZ-5播bj+%1P{~{Q-3 W)5&N OO&?ϛH;˹Wrk2B =nG%=S~9Rt[\*2]1ѐަ Rv~ܫ RZ iS)X 5Ĝ]F[]D>>R<);5e{68^jL xjlQ?NT"E47⥞( SJ4͠i'R-YtSl}9[ROV^t ,qvdDYY ϙ[D3CFtIT2u*Lu1#\k82oąҟͅښ +5iRT%('"iYʔe ֧41B%5궦^|g&dӹ& +^ps +Z9rܘ79I.~&{Ɣ6RM n 36Y0T Pٖ!pl7CXCYbmaJ#"ӣx?#U{O| oõW2cIh=Gfؿǣ|_t#P7Cbjx~OF&%V]p{yzߨ}O}|~O8 ÷+s^9 JD=Ԉ1@OgVmL.qk{HhqkR&;췥~ [16E܏;INO ɩ<]͋`+pMY^u |ugM(:*LU+c!]"BbS,d +)n-+3/>Ni +9ge)eȑס ή zAjc=Pg`|([˧AI; KNMW+|?~)`%dAkNi\\S. +2&JWS7u^ ~|rBcX]+຾+K ڲ204V%౰|]Ɲ ,=6NR0L1('cI2٫~6AZM;٫]Ξ+lԊ1(prf::b a}yL):T KvueltNhnvbT<] u|PA|g]mġy/u5ÂvبUAz3R%ڈh[lEWEߌ9iěV+po=(buif3$T.HYm99$Rm ׽qǦa-ģ35"yfcަnYY'jP9Bl;0`E썥,`OE{=gq:4r' +P6ZmO';7,llWa;_;D3!]yW(7ٍ%h>!\5W5e:/LcŃc,?GEipvRCKWؾvYJD,ODbtv'2y`b>5tSNv  H;mQ< ih8<4-q l><lgzo=RFO>?o{<{ [)|l=FQ'7Jo?$jEh ԳfIƮ>G-*UAj4ܭٕJL, 1lv&'ip)!٤"4-bu#ElDk ىx)y,eX +q^Z/ !fiyH4vՒJbYb6Z*f]:)蝺<|Ҙ:XEe9 UFV 뱻 +M sKULVAUv^,ƶU73*Uk/U"!2oUq n΋ = 8".*eWxߚj3<5gVRRK}EeyNLJŬb-fŚzNF؛23ЅOP p89$Bn`1z "7vhqߘiqtW5-G +S Vߤ}w\~ww C~(w8s0 +Aͻ~F0_/{}+Ht㉫xo~0cCU.9e;NҟբW^vܥҸ75# !#t27dkbܤ5%D.#!.!8LPO,ߜG\\;ŭQ@:^ LMH\9 F4'^}\G내(G&^R3}I} ⳶^,m2 zځl`Fd7Ю6t pŸb6T\ԗ?a}jdŠn Xc=w-^*]л]0^лfjk>^y_4le'7={>$x pU) /rEkrSM*wIgN&Q}i؟R+GyՏj3ag`[0رJ2XݳW:Ĭ[jjMySǴgc&XY + zsK KqO L7W"÷'N#38TIR 0Jpܜpf'JHĘb&] kc&`SQ:sR317KW:$slm1fYU+FL,$4JN4J&Wf7qSS++qSiX SN.(C)햴f`:DJXo-)aİ ƴga:5D1b:@M۞.b7 5:h2wy# ٚ~ ۘ9YpLV-ۯ{1QY11{(Z6o_Ѵ%gb +F%5u2)ww 7S'4PJFѬ{B+ +'Vsʌ0<;K-PU)H\ǖ)tx 8Wϟ? +-Ӵ؎VJ!d* )y8qS+(D1]S ~mG>8WiCjNS(jjǛ;Bz0dP+hs7KdVT 3|g.Yvzhv{|JE8Kzh*`nl;h=',̆^$'^J0f-HJ'6 AZ鷇 YQ!Us iMr&6/OM7 :h!b[$P=u9`=kϜ7T=l#j)2h-"]Ϭ7\BB^4ϴ=f>Ͻ!._!>p +2g Zc,jV].Q8n`æbȭe\+"(F(pf_޽s!5Nx(X@ު!# cj˅\:\R:5(43]Iu3ȀD-:kniwlv(*[.^a6Jl@s X\L50#BL!@;31Uƫ) `RA!iW! *dJmGR+?UaQ?i(4iaF[;P2٫ٟ/qѢ[o.bsm韧aL͋c7UVW3b+E#76H7f,_EA40)N%n"I +]tax@ʴdVg6:14:-kh;1Tun :3ᐌ:G){%2-#CLwdG%8f1=; ' yWIQqjB6ĭW kxJ21g*iUfr"-nE9i&F!E#0uhhà@ Ȍ +@ sO`<%(L9X;ZesXF,$iq:rlBP7VL'_ +0 +y?cA 1)yVI +h6-QF pl +m" ֫#YbQEJ_#9)Zh$/%I0'$ +ݭe0˝ HVHF)`y &@D[Qj wrRFl"$Hf'N#F kiנM%3H5>t 3Ƞ['zY,eh L5r{b{E݆ $@I[qo.azpw=쑙`2F%z`(I?z]8BKқA%[ΗcOu9D眖xs"9}&y+{7ܜpWGYPpxk<ĨAQ=" J ϙP[uɩ\=Z0hj:ľlV6A*`҄ˮ ,S,2R# |uqH;ϟ|5[ +[r/?5lOQA 0D'<<_TV5)YTN&] >[.#`~22O %+'.#G~V]2|g R@ +lYI9߻$8j+?n?<  +Y6 yo 4F>HKl;)^4o,o2.`o7p/vȈ O"0{;6Ϭ1`g*lAݏ#˂$lu^D́oO7*okl!ڄỉP]/O ́7>;zNԠ^^]N=>UX/D88Ċ$N8 +^mo]Ev]))) ( (]3IBDݣ$HB ˤ }8CB~ ZQ rǟ_l B)".&3|%ZS9`z֘l١v{|o ^lDՍ 0<qIK)z!<}.̚'@7Og8"ԂG=Gcx3j~IIIڭ@pǦ'CH?%$$l$ JۇׇWK AD'k$'&PB|" !?QCLG+!b eu"G@wÊFY^ݦ2 +֓_`|_ <|/GV `C_Wg6b hXwgށ5 lWA5%H +v#k6؊?5zۙ"!z=w`{azH)~vư)m w +Fjʑ:;>/ +?/(X7ׄ +^SP?X0_HTs "m7ӝnwWZ~ʝwp+oo’1 fYEOй9ą[wg84]o4 B8_grNH^Pީ(__s:B#qaags(BbdBY89v;]#RB&PRPpa槏pkawSx8w?k83?BwԐu&BgR鰶4¬S$Sx %h 4Xs9^[Z\> fѬ~dv`, Ifs뾸rf{t!՘$j-ч(k-;G \$3+Wc1( +(m-)()mI'q8RCS?Be2oBR$G[1hOیհ!QZMM]spv66Ex|4-JðqxbH&]g2~р(f5br0qU%eB 0 ‡-3m&NlGΡ],Ѻ|NLW(g j ݂ +,;x2HN|(=IL- s!WU59`̈́(PܜxxNJT +LsW*o=TQ:{I>I=¬bݦ.,xsIGI99iQqL\rmmJBM-$갵w H)m'̇ƽT ^.@mPkk0u8;W]m~VIx]\xro9stS +)8Mdà5q+7'n73Bǜ3[s\3aHT'(T +GD(5I +LLOeMk ?_lM'3J-4p)UxȲV8C5H c(M5(@P:ఒ>C5 +0EtfCA>Cq= ! % +e2 |C/϶nOo F {I嬼Öa̘槫/=" L!88$'BY`IXX^ +2I)ycvٲrغڬsixnSR~!p`!V[j |uQ$ٵ%TQ"#:X'DhVlN_j:v=mdZˏ`{gL2v^}FT_S\S/駐g~UX'P7xх\##|N0~')*ro +*{$;T +*.֞^i?_7X@x!}:<h"t Ze.G|yJd|@:oΨW\jB:sR*z}.*<~Jzx/Q vl;8"ۊ[-y)\v y@ù/g C9m3>8M+ٯK\T>lG!K`q|D qAaqqxoˉâI$/i Rs&Oi 3k+w-7.K?x^bn8Ἄ~9O=#n9<=+>y ?]w@/|=Qm~`̬=m=D !m8ӱLOѱtلy{ >RF D%X&`a,Uҩk-*q8@Q@d +%IRnB6uۄ "&Q>b1YD{"5*S.Lb*VgG1NezMM܌j9a;([Pu)pje@D 3NUf^ViJidަ`ת8$U83Vjj,P`\ӏ&""=۵7d 0jB‡G]nQ1B',ofϧol[6 )uիrn%4XS,QRnn%ٔ@JIw@XJ ToQ`+_PPPZC0g*mT.R +l;;;^Ż~K`ZS .ųXsapcS¾~ȧ TJ^WgL= цK}~S'fCc(4lJ*coMm0lQä+h۪^#0ɼx] wP),.qsCc`Bb`XIƒ +, +SbQVwKe=G¨GRm)PӃ4bSZ^Yfmk͊V.|D]P|xQsrmC@Z <$=L3ny:~[Wg&1&F$1cibrZlMXW Ф[{I:Xarũ/]9`,V_YşKEU<2)leG{j)t5 tPxu ;bT]v{Nr{\_{{X iHC4ۦK]cCfŸ 1̳5 "$&)̷F`Dy/*'P۳'tq@S㍍Z'2}=&c456ZjGuj3+TWz W5ƐΪ%vOܚ+ݝ}{ smS_l"F]KSZ0twhVgqi+b;M"l`IAN H;B` W.mz,OV>.{4oz*P` xu'Nh(iy6fXqȫe=9{jr,cBD50M0o+3E:'kJ-ICB.Ǹ2qH}эd- s +- +iNdjl,vѵATi.l=tۻTx~7aIV3p|kenG z϶JžXPߒvT2Qd2ʉ8{Tf87R֎0JǞjnIܱyAu#QSoj qҁ;}~F{B)؍-˲{Mþ;,U|Cpj&D'LJ +%-8r{'XW O_ӠST< +-PPjqT +e, ג/=L8 +` +25-uEϬE8xؕw~w<%aa@J^d֌XP?;Ju@3"=X,p(d,%"Z45<-Z[憖6X{\I XFWCӡI;+Gs'B37uWG"fZ$-y-35 *2+wO~4a{ϾHapQÇO|=rH\3& 2>XaEr}JBfnT ACinAWˮm)<+?lűKP=NKjE(r߄(=X(v +*-$u8&Nxʘ!IԆ(f'Md +%'N'& eD(X J"wW;Yq2!ZI 9P)W|/y ٝFC m8n[ijnBHм\v*fg8zCdzv[;1׵BY@ݯZ @օ4[K<[2R@!d&E I)P#â) %BwE$.ZΦ32^z0HY`@,ga4 Rl'|C32Ӡb꒻~k}%i9v. xܼb"8{.".YVujթ'bAƧY~h޻E0ZG;rҹO%GuQ%tAI{J4_9L+RC,c``~#B 5IL#G}6HIKwUijȽIvQf Lw0B[kل4@rQzN:1WHtlK''</<:(e{EvĊǶȱf ּB?!(7[wzźKʛt}5>4Ecv8eZo#e ^8huZ7!>k-GBpR7~]mU#7guCd`!7nP"m `WJlC c˸#Z~D/j_?v +@?i5jP*(?wnfML-%R[%0B +鶤>;2x" ++RQ (" +sӤ2O^g>soBww`=$|ȵ' j)jP1u,:vV gcm +/vP7\FH]ӣ|چZsaw_ (|EmDžm[۵kqxcC }B| 5U0]-oʾu{zڷ4umqAyoăϳpCq1B 9\4t \1mEQq9w'ǢKU`RrzkIJrSdTrՊ6:÷kCL 9Vs.I`[HHcJH}QHgZsVJQ˪u=Iͳ ν @!=FaǸ[|=`^(*n:iٴJT0*7wfGRj5(kdZwWsq΢Ed‡ܖFիfϦX5(RuFw99'9H#Bp +h%LLy0=O4u3Eit~%ZiB%Z(]Z=x+hKYqZs8S"c]#͕%LL9w#[ +z->: Bۑi%lg1ȑzmJ"t7X pʜ'@{# W'םвtsF:\_90x}l]؟:>ml#D[:|ʟ@cUAٽ4W#Sn̑]xw'(ӗd P]r9v]q)/{P,{ݾO4Kwp˷ʘ!=ȱKvDv*bzma刢Y O=\*!vf ОO){_ƐhKwёηX6bÛsws,GUjd nyB$>Z|t:H'iJJ +m;Ӽ[7:Y +xI/9bCMuglnqSW{*=oGI#6 贘f)OYnxSBV +YbiѶl vUanƵ&- tA3Q Өׄz0\z1,9~MY,CIF_?WXIN<Ԃ_"_ n*md{6Xuna2iMe(Uc>X)dOqS:R}HILYndGτyMʿ9b(`r;H\fח8o{cn0<3'̋fn@FIyhⳙb.-`Tm$)APCG#Sy "]YXq#zp2c*u7Y$) +F{ `I@XC6b YT.2P*ђAƢmr V>}tQLmnrٶè@,ʕUWG.OI(rɨ +g*i/|lSц¦ 1y8ud:"Gn~1X%p[9n/b +/[&IQkwж'{1\_ۡdm:'HwF1t/4r wh7]ɒS8Nʓ:ZEeLjړeZ%eZҪ˾J +ʗR]e.T +ZǕ Z!X&rEKNRR=8'k2#a+QNrH$ ֆ(D9Esg^+MT>@C?:TV7a.7 +^ +-AHKcd|N +:rKpvJڒp\yy<`y$q>Wg([ܕ#"4g(G,hzztmVGQ ɮώ/<3ϳRBT@"58A, I'INoc_ĤnTI 5] v?ޝzn~.L +#mII< ?s֠?LřHjU+<_X@eeXfyvNLiA0ZK]XRRplmErC8eœ%Az6N%}]U{ IF}9k&%9Hg=V5\t|B48HK(dSn>]8@IA2xM|82sKE|'&h!Ρ21nߟB0!U+Ry0+$3m?=ɡEN{F޹=-1q +] HF˪ Zf+#: +'WەG=;v,Ɇ$ fb7MxǷyvӦyCxÑPˬrٲI- >{rD\drxrhRofɳ.3M@Th)}sEr,ex&g/yV3f33Έ g > t–CnPOբ4M/P@U6 [3v<ƒmHKŅ=~E0tF`ѾaT,NDmߌ2APUqFFh%Fq tA{?yT TRu(o哔Y#9RR0@m)>ìT~8|~z8{ls E_ܡ#@$1w%2OJƿ{PTNT}Cğ5r@=(oA=i웱nmb[i?A{kwLM!sPL{-aB7%@%JM>t% y3KuyM:n)" 2\qܵPYQba()͛"p"\H2Y&DVԃ* +r~ 9ЂS BY3%JȄV(\l><\Fpa>U{+1=閑˔ sfuU93J56;S\"ˣq2\YES8 +b)T.h!c(VgXH*B6/_x1dlVJ6aNBG,BHaFqzɢc]8UDCEOy +9fS^I0Xƙ\%ò-T ,- Y,v獱kP~osA`l%vISaV+=؎re=/o|{uv>w3cC.ўXUoݛBiE Wʹ=tӌe%>V;KGw U>8;CndOJ c= iC ֙Y,/>c}S%}f1ofaWo5qg6<4dKVdz!:DEЗG݆q`sݧ +&ӞZ`Jifϛz|t8Tu'$F_x샼D%An~^f; +B4>v0&u/=$4-?kh-۞FvZ1Gpv-r#13'QAt˖p۶m۶m۶i۶m۶mwN=盘;vFdծbUfEf"o[R>3l_S{gW[ /:(h[WǘK3ԾOTKXOyǚQtƎ@G6̆"g QoEcα'売+?Pݡ-!;X'6ӄǡ7a.O)3ݲOk* O`e\!!FSDk#|2|y I? !0' cL=ûj;hyyaJdN&w&g7Hv g u u,9QkD7{h_ވ3Nr/*vyX|^WQiu zHqW [ +Y:kSY*tndG~Hieb)L3eV]%9beB?9|H. |Je>ݪP*Euu_nw2$짜 ;ٟY1}w<a8`? CJPOaBځ2'S-{M<+Nln!}((_Sj(ߕ7,cyvR}3|6'[|%\̻r3^iZ7Gq0pwo9њt/:ϔ %[B=f%5V:tŊt+Uf}mF3hMnlT "k xԔ麖WuƬӹ'dѠ"HaEx#G2 vX;V"<9H LHMM&,rdM=얥E+5EWTcn]3r]k, $v[SfNyh!>j`$;%ج/"|v[23gz&,O{!Vv7xvm@8mm7;Of%+-GKH,]{05 R˪WlG*/#"ؕ1Ui;8ewE3uEQ渢[U)c#^:2ӥMkU{3=I߭۬lIRԬWrTL:-յDK$)T +JKi\+/ L̟HPtMت J~Kj;u5>0|kxl6ˍHZB y]/A=cb1VQ\\y\y +3UҭЌbɗXrU,)]z䩛E +J*7|C)=**8y@E2/{;)xtK~)ա|<`k<'@:JNᤠ'?f^(( _tvaZz:{.Xc }m4<̠VdWr KY i;!1Nhv'ޓTd+x0HM|ob=$6)zfr+ %}Sz-Ic.%N.EOS ꕥ/ďW̝L̝99ˑ[.dQ5"8~YŌ|@zvfČ1!>jN6k"7G<`[MbmI¥ϣ0&$a&2mշ\)~ %p3r:똼Yo'pm4{j⻢w&[+9/f ľe y=jTd˩Vo5L٘}ƺP>^~nh#YWMtNw#ЌzĐ= +gbj?p3ܺ 78ħoz.0V ~h#|;!!߲ht5"ԋiTieo/<n6n)|Q?XE?" @M[&! +h0D媧}O}鱨Sپhb5"Uh0f0fF#.&4 +hWĺ2-زpNYҖMUXNh-~ Ȍ;Әi: #{ŵBtdžGmq9 +}Ŝ[P{[?b Mr+j DAd\)GU\HTjXgHEþ&(щ@sØTDbV'bͺ̏щ\- j\[B#%F+g-!r[N#77 +J*VcVijΚvR7RMoCwѠ(: +1OÄB6(Gi [N^qիŸt0?+~ uxzd-]huQu"g~9Է;xhuseK&|>>(Qʤ1U$;iV$Y:Q%a6R 'o q.2g8UMuuk##%#+tE)It*; Kx!G4fHnHul +$۟+NRZR_-Ȩ!YX)L鈩Gˊ^&@]d/o>O!8|B!ѕS#DՎzSh3Tw32&ph+amU +7(u+$ZčTwS*SߗBb ri"Q:Ŗ |.Nn8ƻ:ahފB +y$jDW#z(9X M5{6Kt%Re6S#Քbg>naS8q:*C)l7n10& WkuG&%']L{rِccBW ڌc-A|hB8j#좈ibn2ZVLrE *(H EmC嶤EJv~כl\]t0yەؠ `w.O0đ?3@VayִhY##hUԮ! {>%J{CWS3OQ6gu'3L Q):.7%CC#3¤䊂j 4$H8 7v$a aCIU6 +\MޘdfQ>܁F9Hш̧x +3\duj$uV/, }%Wi]\mf +lЫtCdEe,Жx`! 񓓪$n +`ہ,;K%wWCNGZ|Ӑ,ܧB. \.NeW /ןǮ"KY'QRȳ)jme$*GV0;:x]לއ* +yk15yy%ZW4=o҃!˿e<'ʭ29g-M} *ޮ}U٘Dު{&UǒҪ~v-avy JXº&oT_'0mƚs,}!A:/lHHlx={@.6%v%aKJH JEklֳ~0u [tbأM#R 5gndW* // Zt)<e|KB xS;t1T)ɛ`[JX=:nԓjJZa ]T`n)L#F _(dqS5AM)_7@iCO :5U5pU5jMPU5e)?.)UC1 YN9Ӣ9;ʇ!\iL53k5wqe0Gw˖~cqLܗ؇auDѼޙSXdOȊ;,@kYuTM tԙbAz"Z3*oI6OSsᦘsC)hF,"Ea^huL[u"-W8sɱ*Trq+ˠ[:}݈es8h` ChtqOɱ5ki陮6<ʸ0s['v^t^ԽbHe^45pTVXr˨RsaiJZZ]9:yVd֕,4հ,p\pPQplͨdShJi-B3';ԇKO::%{62\gP-T tNPnA +"EA +C;pEBjKtyI M$f^KߪJBt{8TYfX1c*^;5Ė%o0A¤&6>Kj0¤&7Fo0슏%7fo׉.+ V=D&lz!wvT9=@~''B%T"- >2 8  ,F6&f1Vf1~b1b1f5f䞼^]lll8c5Kh@E3_jXc5d16l`YYYgY7Ylhb1dTfN-ƌ"51)YWld0>u&s1>Kj6&E3 6'2rsOI0+E:|;@g}4Ɛ?$0h1$nIf2t5IMKXzlI%_[9}{גM'?zt}ˍǮv"[zn;{%hOߖeA1:qLM$Omܸ$2M!-2~+B+f[jKcS^g#""7*j.EΪκo'fb'fպUU3eFZ,ɵ=O?NM?U[gu H&H M  >Emإ9ؙߨ)6#AQ}Ώ=`\|18W6 `<2;p`.|R~>W(?2Yq(0_e=3yh:q^ TL+r{ݷLQiĢ'fF%$F5KR̍RLhkB4bnbxK1ı"+DfLxObOQ&፡4\mgV1cs"kӺ-"񫋩UR1"4DB1(c'# Z_g8bϴௌௐ௔nq]rBx"caGy$`Q!>2¼xyqGGLwx~;Ikf-P:A7f0hk@D⺄jȍx{ S+``+,BlVWk4BqVBxݥ+VBNȉŐ+,yB|>吞ȏtdaK_L u$(M\lǦ/$7U`;zT0k%阵sU9$ 'T}jhŸc`H3$MQ;0 ,0̍+PG9Ӎ &kL`XaTjÌAa O`֌B\̎J=cߗ: a9N9A, :DHul6Ynxk$ +Imt42&bQkK!vE]im9*S|o~`,=UsAaKVLjQP,c-)%\/gu"1L5 b1 ]^s,ȹO<9fy}||S= V{rhcAn=8eWXg<uwF*=?.ohUiA'-_fE~EWM AR76`Vt{r8C`D>vQGbUgM"t%Noq^1#qK e"%lR2@=`Sd\&ֲ_, έ PgܻRH欋m$ڛ)+tM 5t۱nEAtjRq&H~j4A`NbG +ZR +):\6Psٴ:>!Mg,4͕!-Qײ@'sPl6܍Ij#ŋ$HFRdti͸* ʴ6ɻڝ$ YMd]Ѿ ׫̽ Bq4~xCu= [ZcKDmɝBاZWiLJ ys1k*wgVWD"&.guW!ꆬ;s^[DHv]B;=rBGL#6DK켄:o‘:xęA)EV$ހ31xv(DӃ8nPǥ;L"|-\w %)|Ur<7|1&%oͨ/$e##]g'h _Ҷ&zCfV9 i鰼9h.1:Ⱜv{S C{8[~dC”)CFx(dhG`RD';lNszѫC)DabY5SHXCSV\:d7KS!Oa{;gդ"-c\" +,P.-O*4tL'gybzGxnfw;Ai,c}yϏ `_<(ܘ$vyLw{c0l1 &[W2ŬffAVeBbf*&b9Zlͪa`4F=TD:gEw]yw +g:!N+=R_zxe9bQ.e96LXd+27TRևPtO_N9%3m&>gc!27CHfuOa\HlH$@iHqaWJv*ɕz_S 9}p)[Ls$-ֱƣҍI8Y>^_Ճj!cLN!Xb\y t+F{:Ꞝm'sgU YU[(R,0w%ͱD;`yf9jPy:~Ğf%L +чh[/YĄ 8SRkgg5DD,':֗p^uM2-.b!RA:⨪"uȃ@vA$E +ChB 59N>w#wΨ9Zye`qV +?o[-KoΠpt.Fx>1 %!)& G"DFm+_Bg n6qVgЌ83@T͎=h vv>UMkHԂXK @+:&E] +K!u/\]C_Bɍ uZdr|#H69VQzR'B%1l-|;Pnq#Q~<~xg1aD3NDs"V +JE8Zo&?_l3#QrDUfQ>ƞ4k3*na4D[PfX= 2҉M84!ÿ\Ɯt%`Jr%d>u >V/Sk#k/q3\`?̳:^l_ʀ.|$ >C=0hLt1k/"혫w +]>?8e %uI յgcڛxn-xrBYKf{k]y2dZ)#\ZT^[JI wB*lo`c_TVY/U% +Bu/(=LsHfwکh4[M'C437Kb+C40*L`@d +ޤDi[ːA>tv: @j"7"{G8d}G\ xנ'|1:uWBqCkE2;,tB1'n)qxe&נ=u̢&H&UID6:$/R(*,*7z׊ۡalGG!w*Pu)!l5#rmK#oל7WdW8UdŬo'#MZ- 8}uq%lX$ŋ*e2EnO|f\an ޳I%(_a]@;G +7ڏ~  [k\kR +y,?Ӌ5h.LC_񇴚\S1㶾A>;  +o^K-4Nvk@$Ltyhi`, 俯Iڹ7[YD(*(Zb02V< X -pS*oq~!5OzRQ^gOϾf7pӥl˂TuIu2Q_E@z#H^n/+9mp'ixxW; ڥ$>CZܮ=\3qN2C-m֜Dv@+ CŃ3q-xTkU$IC yf/P_v X_&-qrWE:m|bjJB%RbbPh9j!" T9 +=nƩ[s+?y^=p ħ7'O8 }gf( h√7t5(&̜vUH*ȶfvGGbe M]!#ɟ +3.MyOʆPOJ a{ą-\#V [vqxj 'N^C;q4j + Jۮ|E,Wc6p]#-׏\WRbܛix8ORf hػXU=}n/[W-RJ.록,g/|QJ6ο2sgq*yD<>#*n9ϕ1qRx1N0m3Qy|uivZ]ߐ sE[xk]?/4`9sc6}@] 4JTuOuI;fz i]/xa_, Qt+XD q̕X&t;jz0RMٍg%})Kv7jcc'x!:Ub0²BC-j(:2Ûw΀R,WG¯_PaӁ8om!cJRiER3܀t䗟F-]3Vz^#z)d!ɑ'v#m pD|stH/_L%G=7c3vXE8s#fF3g5ĂY:74Hl:r0m:ZJ5 G9$;F(s%ۯZoW]Wzx#z#ہ_>OxZ>E{d![@tR 7Cut%4sTҶř%"gx'(/_YDQtL> B,d1rb2{!?@,}PWERiFbu(E+r,:!~#~D\WS5j,uJFvs'r&jgLnjNmvlTTfzJlULw6\t'Q (\gq;xQpk`i0s7L?U@7Zcz6~eA>=wVsGk'~#^AJ3FGBi⌡ Ɯu:Ў-6R50ë +LJ%b`]`\پe~ +lwSEk&ⴻeFFImi-jE48WqN;D>UCȕrɠÁ0el6O80wgľ<)w|[cp z/c FXHwe8lCP/BT/ .#>Jl')"+" FݶllGGuBqwCr(-Į6T6x7L|z I!i;bz.xԊRؖUl''FGRWW!m'AIR'n}ۦH6%@yN襡7~C̴A$ԡK7u 1%%?uYݜӬ$#7yp8f +TXc{cT^cP6ʻ6k9?S<9A]I5nWGΑ]њoU`Pg-YW˺߸}eMu3Di uLdRZCƤ/`q\G}yZY+nS}uӡb O1{2y߶qdX0z~Swj^+6`4@P?`khΉ ȨZ+t% e`)2xs~TlWQxwC7Fo}:i +[qurr"*jJ5`B\u67qjch)Dt9ϋ-6wNJuf{62*R jZ6N*:0OeQC +\/$o:\:k-jBsRejэ!hܜ!keZφDNvەYK\[8eWLfDY8QnV)$Ax3eu6 YT?*xSɷhsIO]59.]#sp\SGzs_y\BLl>WgBNUVRHbƠusg(5KƅۇGSnRsjnsϜǼ1JLÒۇL G2_sHϖǦ lRsNֹ7wO_%g~Y,j3MNGl,u3KR,eN82Gvn]yuWn}nۂ[ ,l$YKTD2<\QF2r;q3[V=ճ҈u|xQo+Դ͙`zHT08 iG&ks.y1-\s/=!Si ɑ8 ňɃΟ*_t_-궶cj MZsoiw+sa +lE}~(Nw;@01IT)(ԡ9`r-m}و2ݖUtJN `%()DX&4_ּSv#\klt޺4l2Dİ(x[#zVo]މ)p,Y;vhPvJ5p 6p4iͣYvYoHOԿ.X[tqxE~yWt#o`w9J&&öM+N2JmHN>1JiU& o+ergm}]\9zS ETȢU6_Vu]8Zni1JmZ.aC%e^B'Е7MNȕBIq&Qz=5@@'^|- +Ei[\ǿB<'@̙R(_\冤+Ox SJAsN1@{KCZ(4CGxGtП)S b +p4?)AL@S:?עր" WԖ<  +tihꔦfRh A4`RE) (SC-%ύRZf90 V9$mE!˚W,%RHԈ/I +(wtv +D)hhw^Ar-O=@ןdD1 hH!dedF0131;nsgI803JY^:ƒfsʑωg!$B8s)&ߓqb$3 hf9h<|VԦ\L%]pg r78'F reSqc S@(;N+Ǡ[0<:Z#x+ԑ_^_9-\+E4nG 4Wo7{^!M f:;6t:W( qk5 e418O.$+jv/t{."KT0ҧ?^zu@Uza׀.]x) &>i e]pUt>ag킖\<͟ʟ?="q{'A’m_ɴf9~C:"z˶g9DAme9A?.Cal enNnw37Oy0t.a׎XoL5o2ט_`o+7KʘU*칃+FeSTA!JA E<&:0%;p{5h@3X.E10LWuPLl~ĝ +;E# /#qKB~1=>A?ȼw3s v=73BY|/"ArBiµwUsb>᝺WC!87_aGpce'S7ܙ(#/7hiGȵ/\c4i/}wMrЇO?{!(j 6 ^ +$H 4`*BN т1TQD(8FH~͝BǑU"#b $~vg"ψ"r3O佈"QQr0#ɖ# +5 +0KRo)n1(-#5RѫN#u-Zb RģWE7HIAFnq;txiE3O/:Z]Fm.,rAI΄1IKQI;p;(|Sُ$#QI0z7gCPyKXg6|F9\>>:VR+91E܀IA3ܘ 9D܈l? +Z +i} gg^jM6bBulĸAgxf# HrXy$"".%yc2%{y0 +xFB6sMM`W>$ ЖkILhZQ 7_HWtq OM ǒzoAGNGPKQl: $)UM~pBMs@K]_EJ/Dx+G0LEp>d踯F"t=]RI3Ց +OmLx]v/{%C(@,j,eΗQ=q5dF6Uڊ5wh6̨''JYROS_RN[(oT{X&VIJ/)%c?Ҏ1}L~R ( plUx*ɀg׍6M6жQ}G6m?biݷ!e jݷ؂2ߐshξ3gjٿFsp dzB(2sj9%m#5ߚKlُv4?s@:!xQ;c{UJ8 6Btj5CP +'(ءy5L9EMunԴ.er.a}^[]=xj:q7O +QdhACƐl -,)ɘ +c{ae,Xt(J1^$([qcApgIxgU`]M%"iʫMU{hk٤iVf5Wj!gj&Øn)YWEjPA-9U[\/75g M6~1>TVI Htj,"H&c'QQF +ИsD* 蟂6zDeA8ѹxAsa^^R`Gn'?BfjzARӔ^~P?N&R6z"vXY9]+OАci[ +1⭸Ic`ڸzxCg\Kb ]EbTCJ̈́& Հ3A:kg caq_G%C\#5 x= ZA޸*n U M׋9<( ~# +>%[6QnzLďn.>5˜3~0wJԒ+/Ҍ9VJ +)_̰8.,n-A`Ryfۮ,c'Aw5;!)hDXn򿫎9Q%'R"$/K,byma]k/}=C~$Z^x}X=hԞ9b+P~-t:6z0H29aMΐ_V+[r"'N;LdShvgqEM4GݎȌ%a1+6&LSll'+eCQ<s>@ozB$͑yIr R0FХ_RT~DmF8 !vF+oж&O .p{(]).D(aN.gxb?tͬ q!;s%(~ΎH? Kҩ}1POW`#9OB<%p{!9q#RY +Ը篓4*Yѧ9]]fAb`hHn!@!`,iP2L33M V0ەBSVXrU+>[ekךm@$% <^_:ݎ;AB2gǏt By|l_⹏slvO"BK^s^s56Nb T_w%Yviq :=gZ|߬g܏Zw o8NyA^BLIxXtLS*][CY-[*-16ޡy(CJצؔI =X{ +P𢃔0naPAC ?\hrLDL--eFV;b4X"$6LV7 뭐˄$7ĩlEj9T繍 V-E;Z1&!h]qEֲ\FzP#Z0dU:6a\1!߈І<wH۱v.~~JܗyG1!'hy] o??'D+1!E1뢧g^{Zb%oFV)wr֤ɮ:lc˘ፈj#īة}V%5P[na!9nԥ'oqų!E [L2xL_3eU؈9Ln۸?pGX%h#'$_۩Q0(*|z.Fg~|ܨc(ZJuseQ- *&W h:4/:dO]/ MsWg =.y'+_L&*a30I|c܄FL82@76TϤmQ`0,̚qg X770,=Z.A LGEEfbڱǎmzt##m^NJR\9I7{*o;.y[>3க9.z%-?'a擱̟=#&)Њr-i.kIbRkρ搟BqGR_ aNy]5ױ|~-m?f-ExiR/b=W#={]܅QÖme1Dn,y7LܗUδb]omp}M]m~iY\2fdVJORv _nQ^lb44KQ>mvEUN T3ALPڨc憹5T4P|!n"I/5*ViINo2@|A鰰Y~R*Sz(|bjםhmwKsUmMQB%#^8sI1_q]X3nGAC"\q)J8~g|^zU`{шΪ͜}*xٜ[~R |vE AQʇW]tK`ʷa H(e>EG.5Acָ̤xTA:'k"ݟ8E.(BBCJlRCzEi?ђjS%g27FeQoBmJ2L';C5Ȅ_(M=/:3d2ONb% `lܶTK!W/UFp!e^+*V16, ~A,H0ծDOP?+SZi`}O!{ 8Q߳C)䢱(9G,+ݎPrPG*80x___̅G*H"r?\ayE)gV^[Lb(sje7E)!Kp'f云g n%=ۡ: Ճͣ37pʔr}KwV;~k[ʹ\u !oVy`ӛ͝ayWyrOM?Rf?! ~=eu~6!ֵ8̫c۔lpgB5О8ztA9'D#,K\Ж;tHӍ3 gײ].^puz1}xPm1xhtՎ*k[jq%N Xr` (:w98ʏ UFSR! ,cF!,, rԬJYb`nX@WOB[g ?;LMȤ9s<9@R<X<.'Y pT+X[o5^=m~Mv.%}۞ǴmAM~~-z7+5xC85==;ӌ-ӝNp5mxWL/ɗ u[ ƶo + 7r`ޮΩӘlֱ)E.ixvD hSoס<8.3{l:Ez W\IƷEWHKjꆰ6|XmnE4M?~s8F8=Tu'9 !0@ną!E?H%ڱY-|>*B#KڥIm&gRWK=ګnSRh7.e,$Ip+^M \3 +J&hL"!dpJ˶VCQq&MtRUġ +fr0z{7RR1i.lcγws4@݁ۯf>Y`]Ve+٭mVqGJ3EdYUʻ_!F(FbKWI A0B$ +8ʮL6 h%! +:hw364vfFqrG6 6fj639+iRIú[Os;&pJ_WX7v G @\L/?jg*hB  @IUE"5fu%;8G1¶rAd7+X2?JU_Ջd85o,NW1n ̕m˚t EE僧:rdaYL;WzqQȳq~i4O5B$ +u](%$v@bGtF ^Zy.A2ϟ4]*f; :=Av*㎌%قu#VI[+Jy&p&[W>WW45gh2 +.:꽋2[g@F2l\W{6;FА7!z, }4>c-gP^J6ٵ0Z#yΓX5.MX4>ڧ*Uێ׏Z*ql2Bq窎 P4-RpR-RcA{,Ħ3W7qWsX9H̼WU hT)کyIJߗ+Ui{lź'x}y'!s󍘫^B}NQպ2w/{fD^ZiKZ*n[d\[ϟp簽[l^ŏiս[I!~)9RT lk޾z\TЂ$*U8WNmXQu(TfO&Vһ|a>rKuu@.iȅм^ԚY0s^pqLP).8yjWjSD{BKÂU=hTv2"n*0uA/犲D]?fRwǤڒ kh} +mDJ. qԗy-Kcr%/W\Y7 VKr+?QekLve +kX$h44 4ԩ$vI(j,l{;$hsoȶDI$>n⤘${TrY$RHtq( ,B"ܘ&ROdV_3еZ\j@CAZT*ңN¬-(JXxN閭]hڊ5ԙs4V8"ߴ?P߬a>|-?s?`- (uF+v᛬I1J٢VEw ~̎12rf,̔ pC\BeNzW ?7R%PKt bĊk1=39ui1=R 2'؆%߯(iv]\|/UY|lhaݨ.V6lV,a܈avh[ &֏-mXxY.j8bbdWa C|qf+:gD`eA i<m"윥+WKP@v$Kjۼjdh$!JhD\-Նr3LVPFRdT( p!oc^ASc\L=.м ON0t'fo`B"h>!+Of1إMO1H'2,$Tu9cӼjڙ6#a?O~5 Pw7ɂH̹]unpOW|(0 0>4c/vS=mR!+0 8\,fР`G @DQj:4t֩X +"9zŬUzڟQ+p<1gh.[7w &KSEcsxR|r*/Y`ȽB-ֆȃR,[viwKt[^U +TͥPjW>8ZzRz}kY75yCP{$>:1>AsLNZ۠п::4z,Di׸ݘxƇ˄EwSOm1&=}  o^ fTA9!0Z ,#]@mH2?5X:>8xUO !&4tPnc7"d$biflio/?J4!}TNZϺ2&g!0H! M2 1% +iZ>6UwRZj"U7WPlJTmlStWZ|{7v5 o9R慎ET&;pf eNҽ to㥣&ڲM=h + qp*bwJcׄs':#)/ԣ" ,!xmOjԦ/) Gႏd|wBV"=bGŬ?_Pg,aea٩6V~r"]N(GѽgH[ a2ԆfQzJeaocnfkY1*TbkHʖݽݽgWV\"MW@[]爛:,`_ +V7n(Ƿw6(Ǻ~ABt zŌn. 0(EMSpz\rl]7 +,n!1?qP+ukVc@ƓoR)\0 q \Zc$tRk v ṵ)Tn@66.3 xb8 ̖]Bw Nݵ㷳 PVq%ް}I ^+ K0ץ΀QUǍu}6h-_L;;+ls(O0l\ ,ZjTrha`FJ`ñ2͝*YDN :=e~YػZk%2ep|-pi& E~tEbJI"Ts7B[ۇw'*c35MC(bSy%_p"{Iq536HWЁi~t(D=v|dO26EO_8SL??A^_2OjpPY:n.Rb4ʌHu= 0P"C /H2&@"wlʊG%1ܤG.D:H? gBDFthY7%.SNRE*,QD'+$QtH)L-CCyyq9o^iCe.W@f> &73a%#qd@UfKFD!t3%$=!ᘄ ~^:1d +"\fE& +B*yˢ9ʥO=ʤC?WS4/j:R;;x/˵Gf`l6UwKn +;#SB>osps~̵7?!)ε7v˵G~r?G3w'rF,clxw;8з<+X"_ɨL +Z?[!WvnS[xR;!Q9+H6G9ES[tzB;@L;њR  Y?Ki%W&1όy?87 _&¼nwC|W7L)6縓i 77sF?xGK5eΨCO ؼ{Od#8_Ƅ,'C +B Ԡ@  8LI@o!k&B-I<%:ՊTFWG ؼ$6X.ZsE(&ʼn5%$Z:#YEDhuY%sI^.k(J:Abt^t]Ve3hWPʜA }P;w2=aWq컦yD83q>XDw[bPnWUi_U[=V%`4ELJ;j LbR3gaWO>Jy8 ")c+exj?*^ y!#] %aSL4~!l'MEp;ɍnOpo4{ӔG#D.D5k(5I`Hml'HjʄLkwff aJ-%4`DR 9dfXkatq7uXPa(g gUllR[˴F0Ì Uo:`R)A*U_~f 53 +˄iH):za!~̆Q!ɻ62gr2)>҅.sl[yAz̺bZrtrg )Y\_3T`O7\fP؞-nggW^,x>ݏxVuaۑ}h}Y{]c[{8vp{e{}B?')?<; ++&g -4x};F_H;s|&+fop􍪺͕ſx&/{駾0i{kSrߝE8w Wt$P?v+m:kֶJ+Av n|Զ (5;Oتv)ʞɑenrкV\z:;e!:Uu+ur QouLWDev9G雽 +߱8Jb ns +'z +12 !(H%S>'|@\ +ɧJ[ZFn`06 +yM+nf$$qH҆+b[q4X^20 G_TL7 oq9aoHtxc7V+Fn1neqṛxRJ1|V.3I/3;rÑWkU^ڳ{n)4F[R8MOh,o:Hr5]Z+%Wd +DsUTuuTY.XbXx숇%VsY=ƍ,9s>)H\R =mN%W*y+ؾJT߃\f3S$0ْ7L9ܔ˒,]8ϩfK;_L> rKTn8,|޷ϾAɶFz?5w΍ 8="AUP5@q +!@{J,:Zarx{!o;#&ӈ<-b00샂o+rћ%(]T)i*` Iׄ~X/M&[έpKnldrAQ۷`QfM^m۶m^m۶m۶oߝw~̹Uو|~<%y52hz{mL4m @G Ci4=~?Jl(=݂M\"$zɜ)8δ.x_-@xmν-v?pJ>ȝi[[IH:'6ݯy}"e4 xAY7XPԷ +x":DFP*}tUī|k}y\E8Р :m4t#.#jnN>gvN~y02R$tL$cQ_mf5dx1=gjИdf +a"l9Nf p{Se4 +CV:z\Z h 66{1=V5$e];>G<:D6ELunߦS졭|Xa5bU2Zޞ?Ƣh{nv4~4hs1 Fj,)PQW?`|fQLSx4 1׷=Eǚ7x6f2=MMeH I[Ȱy ֓a1Q7=u3vHKcad6 q?!K7A743&sC[\'XѴW$=l+%cy o'W"+wntsLYSxjRSvl*(X,UȒrZ[νUCj⤵,'Vԣ!sW5'—ozhW++1ߺɩվ\|RYo3rZn,]yRYYVWQF;EFVr`$;W "u xE{n1+E,GJN,ۃHEK0N:cvA[wӢj4BE۶²gTWNH,W#Z+GP`8P%*CIas@<"5u>Q(Z>uC(#Wt,#;;';l@VOM,!>iJke JDl<l!0c@64Xs( {TM;(q0PNKmfu*2@L?aꚆ؆\f&A"'K `8βWjzeMea,#S0Ny.wJ/]SEx-ty\ Plʓՠ/M.mDAO~@,#>#Š˽{!;Aŝ41Vܟ&xsfFȕnF+ۑ*IUS[Htp܀ӑ\^=Sa[H$~ʼaO8Iq:F(N<8L73{KsI +9y;a=PPkvunrVZ ~zK#QfhK8e&n3-f.ΐ0̔ +=Sq%lƛa (^EU[PQx(i }Ϩ'Lovn\TBnHf/>v8N7(^d[}ۮE{⟻љ%go.uBY8"o.u$;P[AP GtB̉1CfQ^z=IKgU! C&Ƨsu qT._ƨWp2V(:Wygwl[' ɾDAs+*B͙2EätfS!m,66`|r".`EU8?|=TZkk̘%g|+zc.&ʹ|^c=d4' CDeh=+ʬj7r/!/HOQ|M:lw +nG^AƏcW2繇gd10gމxBHŽ ǃ/V1,9\f@DrHV8;QZݗþgg )݀ + EC"+_R`l"( = gf5iTz/0*jBfע)yzSpVka264vj3<\nteNo_:P~I?[)n#D۠LZL-m$< SҘة܌N!y˗U&H%ƍe|/GyBs4YJ,?9p$>oz|~#rƾVЊuBFΙNeg< -)I %4^I:i& ͖-Z&$WtUsX>gp= r.PR$&(U_(R3 t?9[l/A$,Y6lr%t8$/kEF+g~4fcgۛ3_.B78>9g/qdV/G%ޡh8HC~cyHcUq?R/K3y"ApO4X1ӠDRFoue9S K+,5 St?Z=+ȶ+q>;~(zSXX)^aACeH>#L};mr$]s(V g>dmg6itpg&iomgꐎ"gɘP<;:urRpGd?D6^J@s13#q r ϵ'^DeXc>Fy ToXF>`=j4}2[̸]},';u&*ŵxt&Ǽy^J@6D!ټDP&4rVJVegcdqmqs)bt۬oCQFXJ!u|;Ud: +z2(rq3㪱ԗs @DzudIT )E4lj')Rn@"p8lަE8aIu=,K+Dz`g/= bVUG4OQzj:ik$ٞ&O;2Fp?*O.*>b]Dd. 4i pCԥJz!̓6" ⓐi&~N >=mh1m93\ */K2#*'E&JY1 Hb ^q@& fǔ}@Co݂3`[c$5,JQhD)I SC`7'0- L :a{ȮFL/{WǷ>pxCJgCN3L=aim#n`h13ڃikNjGWh.Q7i='ѹs#kzݾt Mڣ$Gy> {$FZEPu0=f=v `s0 xze,K.}>[< $vS#[qԛ,}M (J1[YP2jZ?OlDXϓq Mr `z6ԼlIrqhchG WIӎe|tYtHؒRh0Zpv~'c%4ylL+'҅YHjp0tI&cA̪xaz||zkv̖ꠧ|Y1(L rB䉜k%mٍ's1a#UQ +>5Gg3 + + +-@37<ltw=h %T)`>>r1,7N\9D@GRAZPf-L>THMLF?vRGTM)R5W n `ei)oӉ ]fR9/'aA]"RqB=$b̭x;Do083;Vhvc͛&rmnlnX_wS;>@pta=L&W3%|jZ&?ƹyOlk3 9_ۼp`k.E,Ͳ;ve2meH ' 6=8$'$_'+3$FH FVhnT/>%Ұ8də7$/*YkL rC&?%!oTb)\\ĜҒD@l\Ĝg8.${^̾ [<1D D9f -*  #H3v'@wHМ|+YAY$.355+ȸܱLFuH^uH޴Cm*?\TT-٤2{FpzlT7\pJ*3693' ą qڭag n)w޳jIc?a,iw9~YSMW#(d"_}jm.:4~ m焮4C's@yh'?LHoeDY#s QaM=~ >TmQ-g;_ P__>Ӝ +S ]YwOjUr{h9{T +N+)9ʖe}b)%~|U \JʃA/nŽcTEJ% *R%Blqn&k<+$T +. +YJ> +CUhHt ]i1v˕+XQCmd(l,u(}|Ql1*>@OZ# ЕE}yqҰKz,Hd,VoF:Ji2Q;QPkj1Ή.M&3taB.C+>WՒ*.+3.ӤJT"eΎ14iÃ3(ܓ(UL?(cB NʪgV +ZhqPmjt)3]^W(>JXΟpI3&}p<怾*aQ+K/ECZRfW gpei?7(Q/W4>Hb_4X*p;b po@^M+ Tz-`ː|xs/BE҃%֖FKUaToN&WG†& ҃ia>/]ʛM+*+3C/ зYҕqkݵ҂3uѫ[g =CUH +X z'AlrY,R6]+YĢT. gc^IAvִu (vbaCUE2qXV!WW_W慽*+P%kDey0=M7UUWg4hD)+ibEc@X*Dj$SC}Rh@V+]Iʪ(-tam,,PT=)Il}n(v[RS\ 0`1q>*olSF0,Ěd'üD!R;W~OqͰD4d;>MVY ${srr5(~OanY!/A=!c<.sZKvޞ鳵):Wl{3~R]9ͣ&S&H℧s4,ἅqt⻥g'#7]JicVur &[vQw[,OKdPّ4d{`h{-|z|"7KIy}IְX;ئE(6GThG|suIVCdKfv~ǖ8[zE!叆UmFE¹{/70#qՉcI9w4ũR*Zk^)2"#ˌzJ. +rS0FS6N/ai8ePhb76f:aE\8,k$#U4XE& M'[Ti=I*c!+-XpbZy>C7?z0 ̘hƇBū',V1wQ]I]3T2kh %̱o1R M7J^A=V9 I!> wum,SQ=o2#쒽a<~`YB>{QQ证ܘUdp2GUQF>12bkEׂv."h9XgSu`3*\[^XIz*TVPTE5WVXMChz~)}_+#6͜)8 ^ Qis]Ss@qi ba$*IiXa\j])$qYu;fqCAI,BAJR75nӌMk6lҚCf1ϔ9maW+dSy^=ِv@sc.CeblkHK`4b:@Om<8D ˢg3ܹ4ʹ {{1AD9N3L&4=PS;\]E4ys=#qU >#!r6Ef;KĦDiMq.iu^c9sE.MyA#Æley:EOCz\VG;ٻtݨ[6|Bm%yl[bJ0oDh4th@yeIP1UVCNJ.po-ս9ٌy u64^6W ~LÝ]oO[}.2 heo.P׳d Tm(vEHUϹ&Q#s{G@+Donf< o̓Ȝs&[k&`93 99E&ن̜CcO6}+9e^{Fs6E-m1/wA'Z=YwXE^ѱ/Js=6 IՁhTpm Ķ}Ϭ_I!)J<)f7dž[`18lCAn=6v(]q䗣"; (N6]˴/P NA qEr5"Zᭆk@<Y PXi"<<ϋe_/kS۬bSk)[a=,Uka1xmUُe;}Ţd8_  +@cFbY6#ɐ{$ÔrĔY3wPp̯t +C~GZ!AY%\a.~!PI7Nfg4R&$1MSX2"Ɩjo9M'._Y(1{RXzڸafJ7J<%Zķr.` J Bd3g:m6/<|3<`-&A}av@~2q(BK傑sHW NDaRV:HrV +בWCB"D*Lgii QKm}tŬaƜozt`0FnAF]¤ /Cv:¸*dzl%;ҞOlbz3N@=Κ ,} Szot?ݏ +;tzM}u3zS›u?r{fM զ$ &90CKtc6C|vܚb&;8ֺڏ{K; }vC mO>ݫ?\k%N+ Xi <䮍 G%2h@(7q:' +P0Q?iQ5ޛ/|+_q4*/#Oon{LG +IiRă~kk@5SLw`Y[AW} +!ap.JW{x.|d.j{' nAP.2.Ct氵q!-ۃՁQoLdא]xM}kW[ߣn}s}͈\fR}$(FԮ9Ïk}ozT!w[;72|+|#d-/g;U=[:dfԭ\=!/BHnfK'͈az'A=Z/ZnfFߠj}'$Fo1!)áˡ]_=7>tȣ返}(w^{ݟ7߂~~||A?λ๿ο ο0ο8ο@ο\g?$g?g?ylysn-`_cR(~lDrqtG _㞺넄LkEsICcT@Ft:u FUi{֚7 -ަ+xs4p$= ܋܋СסءAݡA] FJR[55SUUKuuS$jq}`9B;;ҝtwwAm\{8t5!:`:8u؁nڏy}g~w6o' 6P.搫+_\⼾;F\"UE,{qi%3%-N|Գ$nh&ز'~νٿ}=r9f<йpvpOg"?$?&dP?2l4/s_ɚ t;l{# ^CdY$7L3z_rYoTClT=Ǟrzཱིw%nܤN\c'w =2Cr뻔F3o}H{%hE + bKƝeLtƥçА 3RtUPJ(X'p!$^Ƶ^P?Mz侨 ĿLYףr|1x1p?U;Rʸf=Ԣٍt$ճ Y׳ km3 k."x>p?qotzzww?~@vf##svp( vV"DfXb}hᬟ QvįwCLB( +QAb pq"oǧ6V^nY㯏1NvnA7dg9^ 9ZN')9Ex"(^!h|B?2Y"DqWQjw%aZA(CVԉ77EM<Le5Js/ZrQu<减8 + ra G 80i܉PG1y:b$֚ijřƀ4FMhKvECnb7Y^5YVJ#AGׄŖ\ά;{GQcr_cvJcfʪGK̓I_QX.{ûoE_=#._^(DZZr.,^ѧ l$7i]rӉL. 0kvmҕc,IJ.%obH:t?-=ڍsh/Ėuk9{OJJٻg~Wy ?_(23[&2g]+[J_I71]b[r 39.Q:^ke mo+-`lOxpLCjV,=}g8Tj1? -~ؠˋ=|*Msx![sKC QVI +o쉈qkNj~QKv5-ЉYCt=}])@ޠ._;Q~RJ A#[Pj˗([m:6$h~%0G~F5 <[yRo{{Dp!ş $$HK2HHX B0s/WZȡ`$chl"ZEk*zKTY[{,m׮WDy2X;entk`L"1YPz|7n~SAr%,At]VR'1zrd?S$Jʴ DL3`rԲ^hcN:fyrӋZoz|CT Rc:ag0d<; +῱r#B4pgKt@%r_0\۳2cD`Ɩv޳AS0?V*(#kP#']S٥l#;''ݺu.Ϋ*L-` ms9ίSz~lK 3lJHm}7ci: +[lN[SN}>hHBTfnbSj V'c/a׍0#ee٬MS[,EhiFW15JSlh,KY+ t#GL6.~S=u+,Ժd/JJ?ifH6&0sVhUa; jEtU)7$Nҕh8\f5 ,*`$ܯc&*ei2<"pK3HI@ϔxG-[1;63Q8 cQtNn,)G{\^5`VV>ХWpԦ9um"0jh< ('k<G7ąԙ*`xg u<OUMWф};W܃ XFZr @7̚&}`6"plӯOT+jc !TXm?M  x2 &r*Ky +A'^HC +*ύ!L=^4V)`GvFo 3xmA [+\&TQmbFlS`-ƚĪ` ȣk˧ +rnMwU`2 i:88 )=iȧ(f)]'t`p@7nuɿU2u;*Ƞ_!!ׇ? mޥ1sS~v!=?%{ 8Q{i7Gt[P+,aN  I@1,M[%J0, -備l邪rlkkaP^T..o;6?CS> bkپ*~DB;BH6>}d2k~ej(ʍ7#w8Ϗ$,|>" wEM No Z4l,Տ+˕l4Z-VU\>&Qf핊> `$^p![Fmڶt*χ {굳BG3S + “SlSen:R8 IJӪX;j˰Qz +`~ؖ $ +T̼qq<; +:E7MMF+1a>]<QS-<`"V+4E% DЦx7b 9 W5yH͹hi8L=*\9Z$H*\X_--UEbWST})rGD5.ml[mȮw07s?#O׷'mwRotNZ `y (PLvF^h$ ҝ]rB:<&ڼsԤ9u6 g&!&u9ktsd`WO>(?}qsJrVAV9;prK;ۏyt3zbU82^[SYm llYO0NdTmy¢2!/0Z-GC_`akd3M&.mTWxalk|&⩁|>"/f9w {C0ZYhLҨI6#B M.3)G]@K 9N4`^O8r{Z1M@E-L5{|9`'[dSt&t'kՆԱ[B]~W̙>t]8J=] GGc#CAxw5a2x8?.ch%؆8x=⼮0D\<>ɊM;Kun*FL]\%?g m?& cc]]ꄖ`}nV:b.\M:#)Q;#$=dU BV4N1dWЕ 9:~!'.:y^lh6FϨr~N*x'{?U!?ئ֍"PFK{WYdks&/(@Mٚqt3=^/U}xj(Khēkt؟+}^&W<ﭗefW s:uHFR0IP4>y)bZyz.787qf}7aD ЇOD+1BW0`EF EPBcEhvF#ߵ)Dm%21Vܩq0V [db]x=㉤"%c29$VI`_4WI&iΌ4OG{FeyxbOДݎHc7ueDq)\PGĢ_5੸A{aL=T?Be4u@+ԅ@xĂ ゜0AeҶl>BҖL8ds {Qe8e;).OK5;гА=hDlZ{ ZN{r!3 jE\,J*mRR*pԠO-2Fa;lf.cP [UY_wRgK [y5)z՛Ig&˓ +[q>sg8\3+SJB_kqk:xك%7*e#PDݛiI>4T4E# ֟"UӭH5|?㬓hB~yT5} ь'F0O.ӝXk iF;hhj=VDYmb0ښ6Dm;Qۦ&FUt8fVr8ԋ`EuI_8;CfORnmc'49/ "s,nǺ.j%' c{lWaL6h5\Na^HُO[3{>ĘGdf<:% ;=F̑`xwُuwNu?cZ'v?5L;ۅS4H*Hᅱgrkh0M&ʇђҎ鹦u)W)6`64$8 wm{f1V9ITgfmp[^N[{7yj|6}h f%ɧx[yHD݀S}vh`S\u:&&Md0 3$< Q~xʼn|"2u6AHҠNVlUl$(:=Z]r$ c45<ǀb@SC |A5 ô{qg0 $vf\M2`)8.ětwbg((X&2^|NjP&s-61`WS z +,;h-9:9s0ɉ^zK ݾ -;{O=4k8搂=I&&Z\ lAdhs9$&?w*޾UHF 2@+J #D7hdyzntx@<ԛn?BqF.W@Q(HSI_LyT0/M +:viӅ6J ߐ9+j?U(VgE ȵOR0 'LڃKqil2Mɒea\d-~,@[MP&.km_&>bZiW|`^YA63=cRv|p;593; q?Yݮlw%3 eKI )iay7L{H#$B=+N:8\]^uԧ&U:[CkɄ䜘'9JMHk e3t +VZ2V]g6z5O,$L)?e4&u.3 ] Zm&o枃d*RC]5^l#1NƗ{:xrhQp:uel.BY()Vd=7Toe1ѳd ,G/g ߓV~"B.!J?tD)<[ 얦-=jOз!U|$ +u)ZHzP~RM>HP{M6մR +zȎH#g ߤͧ$t|B\^[95pլ ? + Z..>2lo"/`=+PU'wPnqMgy6*y%+w1 C mC3VȴGشvٌ,?u@q`M4;/{9uct&t[cbeJ |tۑa9ǽ!ȑR~nK% C@fbE@sn}=aIZ +2ŀGXES!'3Y*fu~E]ZhT9qqP S9d1!(!Oext oϋ-<[QGnqغλ:""ndH90O5. avCcX)\ ߤA5ljo4$Ёj`$7{~I4рZ|'3oGk^ytfB~ъ̼e,p6\7H| w7Ȑn@FuTp<-1vp ȃq/'(>|NʽfE 2%jxTV(M!5.Wzn!AZ7apŏp5)8b +.'?xEQ'}!pzQ)Yp…sl0OYƞ!R%-^G@~ [Q\E}Š YiȷKf~^A,J- X^ Ցȑj345!1S" hMbZ-$pWVRmuYAf9DBNdsf+qn]Ϡ:v1Fr~~*YW'?:\6U948o?3MjBf=mтzam_Xa.FضL!fŖ@}c<a67O_gqŘnh"m7oN7?{oARxg}?A@ R RAˀHigBÍAi>̄K' JCsP ˀX +hGcQ9#Il&-Sr} * 9I\t[nkq-:PƘ暩m@4-Jx/}:UR2W[(bn+IcY|)hugl0H%QEmC,|"!9~|C'>FGM=" $5TŊS5X|TZ+cp_8 &=̡ +f>Z Hy9:[R0_ym cT]FX= њ ]h{v۟ +`1,a&4$m/.w6C?{BF!)P2kKF j';zSA)eijf[WEv p۵/Ob`SɜQu9:^+yUP,nڑbhЉۇ EGARF +977J +<"W p9` +=4u1yJж<_]Y_#Xn$hs2WNx*Yo:`d-p"Z M TX䈳6/WD9Je˻,/X޼)tF^AdL߇_(E# d"; QbeL=V ",õ-G7+o#8v>w5*~hqjvs@,kP/vȗ9@jEԳuP3 7?UhVmJ/y>q + +yzڎ}?{ISe{uUPh@ էa3jpt+BCSf'^sd*7&YRKxY9,S*q3ԛ#5('+ua:NJ}2^QGIKqe5S}ҎWԥ@UP)6 +Nhu`#2'J,U؃Ⲡ{(T7EUdכ|:DTm"~I0alœ,Rf5{ JglQ8ǝ0M߭{cD&FЫ_N,w곒oHǑcِ%Ԋ J➽:ͿOVa,?ŴfO}rcrWX /9Jj "CT1(.u-/ʔTHn; GG Wi|Z +X% ן`2)L2lϕL.E\֓O?¶c翼ܲIgG4z@sa5 ,I]kRAU,_7*=)ZjbwiK]XSNr<}Mc{sްf!\cVe<#F~RuZ:tq*J>~`s_&kJv##Zaw#;>?塭G ?%')0ƙQ[R.Qqok;_}ݍi/OU }c@-PG3!S`R mYs򚢋C(~^f)DPOާڿ_Z@o ۗ pzoߩ1,.10K@*uV{"A&6PChA`KxN*4N(O0sf9 ^G3(u-EGxA' {.X1X>ޫ7dѺ#]1jxaFX ¸ +!&E!&Mf4{4D0q0Z<` p,#ӟsfvZf*d3ZGDk_41i:gU4Yw)ĵ%ırL]\%%MK4U-%o9Kct?)oca;_XR@EB;TC%=!oc @Ae>H'ә'5542vKNi=tT|f*XGIcKbgE2pI:bJ;?",`3hʩjT*;(!(*' 0}E &sRNVOabh^fJݍJfoJ?tjGKzlkZIZ٪I''68bVcmrhƒM3%1"L/ct"Y#~֢ͭ8[0XUm[m&juSUr崔2S'd-"YiԮsV6CK ѓTS#v7 o_+Kt "LC<Lݨ?M@,rLǘ++暲ٟCOƑ2*G?#i]XCZ[A'\mڵz\O|ɛ Uy.q/?!Tf^T>(h#"Xu3c!q@+ޚ^В3m:4726ji$>+צclKLj }09&$4.a]6'z ɼ1j<Ti?,P!e)V@o]VzC,)1jgaS3E'4b6,]5MEk^d.diN] da*_݀PI~`4+78alːߣA~`]zb̹E^n{ESSebaY27)v;n.7lDq^iY u`0Σ^0]L&goM!Ih.p/QKG*A2g Kef* >N^b1l\8`v<j~0.Qx&pC ȹÐUH^P`;KfD(#Bo <+WOIլ8>ЙhF~7|؛w Dful5"۽:5X#^|Rl [`̋!,h㖂~njrw*qg^!zmNy~c&+;dЖOMBE5Z<]B<nPtT9mu:MW~m ] }M6l}сjZ0:|xP.[&j6#m:MQj5i5#GP(mh@wSW^Kӧg?e&l&C7'R"VS$ I0kZY \!g,M!Z_A:] 史-94D-2/b#gJgIaYPO6@V= Ig/ 2M>9*;`YF}3#@CR_DcH|t a}%P&łNqkrQg W ?CކVƴ'(xPD0bUCPEBxY,O#y5yrn4OݩkONJYdugB +QSIc_N<3p~i`/GDg9,"֑>I&!W@+Sj]\8P0GܯڙxaQ{%}x6}p}~笝ǛV1YxUyVyV)V' +sQ:~GT /64 1y[ +1R@9@EFxL S\g Z?/WH# 6mu儁>̴O u5 +\VB!G]S߾6")jņallZHZfKal<=V?J났c7M@_~LSeCԖGdY 7ٹu;2 ~mv.GjNr],T ] *r̈/ +dkVv J=RQ> zHIlgJ^ sċ;ݼd^!J637Ɓ+*AMMW뼋'{!7g!}4W12$G@}9 x;> +i9IOOu4=cVpk%6nYI8vif:Yd,> zlFi㼆ֈ(v6Za%;brsN j#Ƚz0غ?9۽nS"h=^aCqRVUkZߖ,(],Nj4U +y" 6/3f1.3'Hh\$!@p“r\Kttњ`&`-nmdC2r4mGNso3cwTuMX#sR~uo+R`uLu>Oȑ:~ߒ&z9:EAi?!`4 1w!h`{F,ͮcMM +Uґ#4hkbbK\f;+՛MДU oIށ6 +-cyws?TKNUEr*M { Jh͞&2z9Z 55z0hqU;og SЌ|YNH|YS.:G"7ꈥKRlquʸyZC߼6ѤOιJCÒkՕ[Rlcsx2MC0RAS0< T~ݣ_4Xo@h ,KȷеI/\zNe71sOp%7'/~9V3G=kݚKz>, +#w{@r:*_Ikot闐T/e_˯/7/ }3> #6v"2 E y j>NaLQ]Ŏcs= ;&W'Sf9Жxu""5%gX-"ƙ b^2?Z.^tȒMЬ k1ê^s Zz6pjŖ̚ԚzK`M]r-NAlM]tM]vM]bM]d-Зz^}ӟ͒^u367' +qKg'G w>D`é5NĊNvC!{(ĜqÁUyrU9zJ+zi8֪t-u=s%S҈2rvC SOIP^pD58J +Q>XK"QV ✔z Ð%>^єXQp +S۔0[g= THߨ)`9` 7M(+`TнndQ7(<=J,R7CUTnYqw;A(<-Jwj;=+V|?#__x;s/^_` Hm]pB.T W`?|P>$("o+t`}pT"C4S k4.}lhM*7ڔV+]\ݝ{X[!mASȣZ(VڣqWNi^kbN2[h 7p]N[()/{Wپ7`Z`~ԴX2oޘX9co}e4LDm۶m۶m۶mm۶mobbǝU͈SٙbmOךnxx'4= 3>ƕ0 ZBBK50#D֮O8t -1L 500->MdaJh`%Ca1ߝS߃0H{RQ<ܕ WN}W?׉s$rا,v'F^x'+}F@|x5HRT⤿} #3//}})?E  $L܉Kcxyt$畐{jjjbH@&$QN})*eX{RIv$Ib,ĴʥYj:ku*R*cDR[ǥ! 撂})L(~ ތ;",I! Z:֔.j>h RbN2ZY#pF&^0j"s㣠A$Hқ Nz@=Aq**.a6&.R$1 +\$(WFUυąO +Ug|DSa>t$ >|g $4;/@K7>d;]7^!}듫C}qe/f/S/.ˣ͌q1<"!5! }Q;rH 9$7$KC,~7`;G; !'>7XBMWD:}诫ru%<m=z=\S$䋈A"ZAԏ + ZkiR_PHKT(J6k:l݌ 6TRǍ OYzD 'J:摡Lcb6 fx*bP:AnBhN8{POІFQ(Sp- Frp_+ }BٮP`P/,*,X}CȐK@؇ӦzGL*W?ARpBoF`㥋Ѧ +HSBǃl{@iǃl1hp ~ncP!_x'' ЇC %P?a>fi؁[rY .Ё9ݧQ5v|X2Ã{(YW"Wҹ reo]Efk )W(/? L~yzp;[6

;۫}y.=x;0?h \ _bgann!ܱ뗇 +GP-G/:S2ot^ǕM:oʾ1M?v~&7.A9bO/׊:|rARPY>%%xNx^Fw*D2W8ꗉӝbA@O+ׅs)\^?FqOxI*J* o!$g]ڞ:(/PMZZPXm꽳Ul¼Jc#8;6a4<şc9|+N|-6s3~M4PC | +b $EZ͚g3NSd4?(2j +b9USGsq&3x[0x=YN8Pf'6JdXFBL92DyUJsR/ͳ@hk1HLhl_ #eyYMp̣6&gxL5E&N089Vqi/1ަ1C.IQХ7+ Jr\PpSq-4*>Hp5CEG}T W EbP eSEc9UE(lFIY<Щf3PQ䂶Ǟe6l?ŋt¤5b"O45jPYet+g$k ;X [MG$WV" #.EFmsAgZЬDgp3`6|ݐp%j@ԉ?|<.i_֠#TFnP'wk$OSDq(^Įp]!:\fCϋ2p?MZMa-z#$lvL[/9YjYϝ9x3 Aru8 1~==. " [Մ2.c#j9]Fӎ[M!~ޗT%0+ *}q#*^Z_ѯ~Vkb(`ݝò߿ᥟGyT讍 ¹:U |X/ンK%,ImsCϝC]V;wc_sE[H.>;k݅ó{u89Wj%nA9a1MgcLqijLj{ #LxCԌ1 +DbI&)QLr9Yba4c #:q<#2d9fӼ#Kӹ1{ML$>szLz~P}c_HzR!PWavm)l!3%deZ|EY$̅eij c9y Ξ IXjQ*R [-zyMH@kQD*+a5,Ѽ辖/qȢQS%5g\7P񉔛xgNМߤ͖3A7Ҿ0sIڐ5gL + odˉL~$9AkƠW@i2R*!6} D@~{#>{>>t'u(=wZ:wdS{o}cod(iԌl3S *mZ7Zw 9 m5JB7fP˙K]5u*{(>q}MPz=CfnE}n5\A[^F+a;Gp93Hcl:RR۵9`cX^_bs^E_튏fy1ʞ,pX@SByh!ujv͹DID`QڶgGM%5xZkznOO7},wE6Y$ܝ8"ge;K`OG—;ͺg]* (omQ8n_٤X+&i;jZ*aXuX ӵ7 Iqy==ƛGU)T[9KSp/{)vzD-=po(= s6:/&}_ yL*($UqDË': [ᬖ礔ZqԜ:iݖvbn~[g\nt[ͺWng~Λ[b>楺,gXHO|?L-;c}&X؛;ӯo/aFz)gi)~^c\ci~2u_<z8Fe>'YGz#ْ>Zfm1{;FUgeQ’|^=Mzgz b?k0'ܱY]uӪ+{ITq2N&Cad'>Q[S)b_vWXpFEssg[; aOAF_s^bm*Jp$|!NoT՚-RԶډ(Y= 8au>GG$Jkzhϋ3JED;F5)6KcNsecWw<.bw;R#O +TJ"u q TH$irAƱ-~R +_R2|:}v*P&NW/ SMRe9{X3WeHLߥn^L(e֏LI_hQ9琡d4rs %WFWS#U.őPP?Wnry+y;|}BX /lu%8DRKo9ZJ>jyg_jݘ];Wfҟ?S.W|"19F|rۆѷlE +ob99BD'K z3[8Z3kB@ k'@b jfq";c hjh͢FX!nX'CKS;)?a$ZGml.o( +2P.,R$8y~8)vt"N {joPsH@}aAr\/Sײ#(ӎ5FoQVmkY0x[(sB\" i]8| cJ(pimgF^qlm\  a*&4՜4G&TRzSsp&Lx.`I;OHA_ e +zYD+"Vl<7TJ+3F?IY-c#fq$TFrZ*<㶺%W'C5ͻ+(Eu/a?*?EQ2E= O D!8K(n2#1}#A}ï9EU(˞56DOVDTv@8MdS +(`t8XpXX)",9uBRI-iI߲z[H-ҟsyE \t%.RcӬ:bQ:fЅdT `p&O>:L3g҅)2\o/7HaKtm.d o}Z՚]n{L6n:G ޙW"\qT_ټ],<"3wo볷]Yۆ8S ݀7P6v+A +ube d3KNQ$Ua{3F]R +-2 իJ3} Xدd^Ӽ,-${"cxCR$1G{,ѹ_v=IO t'؀vBF<&wC_7)(i2b?7{<]ks !pL>-f_3wno'_5TzD@]Zĝ=;3q? r!gtw+8Gߘ9r!QĜN,cƜGG lIL\-#SKTF>&>&ۄrL&ߒ~ +, +|I}RGTGd R<6>9&Lw 1mң=IfLz} |W +11У*s1si1ui1̽&>GupG?1cfp*-,}*4 [ٜ$xDvÞ0A&4G0 !"dAQ b1Wx8h:9gy$ U^p@'V 7/=vfRkx`#Ё.A@;R1|gdyaƝnuf?rPy"&:3(5uBFY}8< ۜ鏚X~  0 iDnT[{B>G{_1G <0MzG-xJA +-po R:JЎ R>V NcrRNN1v%K1^(C -=pB ӋxDKUQQK`lڼKj٣vHOݨYsK+ 6@1^P|'!LRMhbgbf⑤sv5S a,  rgsX?1jrWaF)rs/Nc172Ƭ5_?68mjY3Ja}{'oo~/N]mHx>=^>.3tY߂'s[\Y's|od|DzEOS68}XVϰ:;.M$MI]$\.vK~\GD \R\I.x).t}j}IsŁ]KK5)/r/r(/9E99k/p/\$P;J1.,ENs73142dj,٢S +Lߨ,.eT+X3Z hE Zir1@eWe@[303ݤQiǛN\L=t9 .V:p;q*n7d^0ԊS 5)xNmVwuxLhye7Ln©sm]PbCyDJͱz' B3.Hc,:qK={L+eP\vƄ>Yߡ"yw7IC&Nq)nj6^b7Wx}iWc&N4.NF4(dSs#^4 +wv?+tvnZ-;g[1c['+ 1r +El2 &ݾ%vj u,sܬ7ȏ0!ʤ\Kg /Tb]XM .?ZybPhꈺAC:I.Aj[/cdcB(J%);/E~-wj?<1w( $KX:؛;J:[LK;8뺱 ssGH{Hز%А0kvU +yJ޷P1s?Xje|a?!<î02l-g#}mI<H=3"]f8Ɛyі NCk7W"b|`X : HlfipROqNDxDF ݴVB/o=#$V&[pT~+תtb(f(Ks@Ǒ4N(ڡ!!d+hjĘ8l#%Tg/ɨGUi7 +%'ѭZ4)kU1e-ADfOlNT9wv ~vp;Q11x xX n߆뫆[W C9ܮNQP4 KZ+y5KNdlݍ>%JnwI+`v`&@Ɩ~j#e%](Xt8S¢DHP!ln EM$IMND~B4;jjvKҤkZn]|??g"(%܀8JɼA-q @NCvИ r<T @Gw&` Au*)5X.mT( uh % 'Z P-o⯳V탤igjw*(ujnƱnkthM,fx.5f4j}QftwTxZ?ֱȦ~_eNSnB [\S*dÚ~~ S7҇Gpd"sX= V9oҼb9մJ]{oJkF9BtƺTqjjB kֱ]nene`?q$/brvwwUȚ[h0W݆i1ʢؓ6ܯQ-J ,-aYKscu ӎj_P~3Uxmd>>]xa KvܞR}t폏ZNrBlG3݁SR~-U?o/nR^o/W2Yu\xUj5Ίk68kE '$ۦDZ8۵p[hőz4 >KGS/UG}(-`SƹMF  II#jJԆ6{3]%yg"lQ>n\s!ٜAk;mb[`1{m / m9#ExC R" $ч:Oi14Y4\GdS;_:ct]ؓ!s`ӌ֪E6R#=/Ę R,Xmv1qIָ!)ȮKFuy_Q]F4M .PCcݬD)o0c[BݓNRG`zk.fX~}Ίl{4 C)I;+>eq__ +W9\ +;q5=)wa8 sBc\+ UүdJAd;N?wä  +֡Z +T'ht٬YLٲqs0}T-qYN2oy߮~?H C'n 閜2Q)3ҟAFQiB +1F%cHiPLP4!v[ms)d[;Tn3nz%7;o=H5&2[kHsyϦTsrЙ7Av0k+>y+'*ˬ75RÒ3.qgdDnR>7'g]Щ{,kE +6$+$/(DT]1G|ۜ'T;K5w2yl&;e  !gcZ(;W`:"S]cNA7'25\&6UOT#&{Lo6"[O9_]]6R5; l"gXѦ[YWmxJLPuGVoW1iMbwJi:% f5&WHule=.FggkכʕZM>ڿTLs\| c<"_dbP)m:D%-XDeu6-ҒHxdC ^LWw[k +SV >'7_"E&ZQ-D*?ϵ!$B}vBR.!%b-Lvީ5 !+]\RL -`^ɼx# +C/Vn"e#-0f$@~>dcHO>&(O3D7W6ts{^PK&w7W>D+xuhl YANo +^pB9؂2=E'|c*y3gB96ŽPT?a"kS*g(-hXenIwkq' +94H.k5%:08-_BT#KDO[j8n(ec-EFLThk2pqP~&P*}#Rr&P#CI%;J#YI=Ns *MJPQ^!]Pby9@ʅFfvST=So 4Uژ:$i-DzVr y5CV~i-?oYrA!ؕ}~3g9eT+ۮW o"uKޓ|22hNq4]>`k20:hFJ 8g#CN^†ޔOwHoU3_ a`*SHw6~ x]t t{q1"xrhu;TutJw5^'PIٴHa"Spu0yTҌJadG2fs膒GͿG7r!A&<﹋:=zTq"QZcdEUxr.BC84+ j&`d%-uK?dʔP6َ:|\wPCTZ(kLDabhc1lH*kM$C~.1XShjre[=5w RKT͞qғnֹy.kdc.^ !δ~]Fmj" tH>4vbc탭mG[G^$҅G#}3#>>ˢٍ_?f6le# @RДB$"I6$(EDD4 FJ9y;KMy^^n&?L{`tެ!  ,m}8RIeW<SbG ]o|T0կqva$\!.'8IɅO ,$ %>!y @%7'eمos작 ʹnV~僣 cxLiaa/̒Gҧw4(W~i];6pEHW43%^Y%u5^A>87#e&vamG͂1wG-}XbA0 |7G$YIYImhL I))IOd,y^0qĂCd{Fҋ;eP8QShJNP<8_ׇcUf$H$T#iQ$* cqC*l>Ttl}gZ0{Lai`j,Դўٗ E] M{ vjU]!nq2\Ii_`+}]|dIu ~ `YbNG`>\tt1j`>^ӽ?T`zbT[pRD%" +ZƑX3[5- TTfqsC QY8\UKx|-y>V`=Y oIz[/;] |J%J2n +PQjW~-PYWM$ "@ycOR:1Z0BPVGfL- r倌=3Լ+;#Wǣck(l,*d ]HkڼyτB59ʬue}V+?tSI2ɼSZS_-8KM"k\04ȸ"sTNQZjWƬຳ|-`Sf38%\0ȃoP"ZjL k濻hPG2^c Oݐ]U(JUCB;?ʊ>7Fq&FHP_]hm!Z"b~H88/;ĿW6mzH?);ieվy + Q:#mpՏ5oQ]^NS]~|K @Vkl#RgKkCM)] ч5BAزIAytl-++jW +Rz-E5}: KN5޳F_ʞ߂6`y8~BȕoF#@ wq!iq&WJeBl'yɵĖԝZ~ ڔve:plԔ%mPX_ +ˆY`;S!P@."7eɉrO+m_~*[WboX j̓(:􃾶ƚl(cR0܍\tol)H2EcUF0ۚR F$}akQбr"6V#?]gǤne[x).ggQb㹰j^aUe! %~M=;"v.樖u(Ɏ6UCĈu2rU׽H9HfFUgU7Ve"[rGKeu^ȳ;LX'ڷ +vƊ4J?Z\@g;PUŎk{};+eAUܱECĮZm-DT*q츞O7qG."6ުVA ]I21 V4wRVPP{ZL +GKdy+VKClٰPd;Dv16iz}HZCgQtdIL-BWS,K1$h3J+ :f7uZ58O(xX~b|r?ىo [OBԀֆ˪ F5ϫ!X1&E8fqpQ4,!:\u_"*&.6̽(qPqI!-j-]ʙرt%xXww~G0#S, +fUpS !]*rd/Ca aL8b)q huY+~pJd&nj`%i\㥏/YeJSĆQ)HjSda3Y Z5/w'0核AS$IhHV@]C28-d6m9z%)V uK+n{H" +捄2&N"l]k"aB{K鋰wUEkSx92`9KQ9!Q~#  N4 }=U AqK6gdܲ0TCRrB+XunΥ#Zpy؉!nʥWpyL;q2ԃ:!T3a,@2:hըh\.Uj+\v)$5N)¯}hW,RU5:t7 +) ztua H `c+| FX{e$ :6*VXd,Nddk֎brи6U|=yW\Ko8  +2lN7n v{TE5`I&kvg)ԗ4tW7kD.T  }Yag\-B"'Tбu&tP`FNo.6ssbo9J7F,̲ .\>5U%^pjRqVũ~AD9OäU],K{9 +^!4+j Hes+0HzlE\:k2;=3k%LT!8!Ṟip '/ض@]2؃y^Ex#8R3K T){#փfo=T?8t[̞pēI+cʩ&.Ǘ +ڼ[(&|@OllBo'8:g:S\%4,c03 Mj]ߡa301%&f! X(v\j*Y~"_#z ΀z] +E5*YP ]Z&uviq'q zC=ZQExmJ@V"9`$O:pz'g:#!DOƉh첵:B +5D;S]ۭ_-ntusۚU&_z1~UY8H!=/ wcgB y%eW%c"Ԝt5wL*}?l`Z)7)wn( l D7s(:tɭT>B4ŒaXݸFdDhMc06ED}:R>,a )  S)t#zUth*563BDEd!zZBhaFxaF6ƍ˄JEJ̴*#kB@J(;jBDG&Ҝ'F-q~y0HkJ +;}!ku87P FX3=xwCsi9yǩd{ڳwnHa5EkiP;G8[{MX ;fzx\V̻&ILjG+5< T1LJ +KX"l M`0DUiDKP-ZIjHڔk8ۥ1r5L&ul*jMTPK/1qy,Vip-SE.fyc孖9LtD`UnfE/:BՆbvП?܋eUB%Rsk"Ib#&\06)!P9~eL/ܚ{LcNDJYo> ?cgR(uhh}\{FW s`6ڜ[]GhAcߘCU`w>}g RB,xi],=aܪhTeG_)I|@f T.pa>T^*n٨y#ZpO4!R]g _!̞Qk <VuA +˯5yk41fZ[Ł>'0\YfXD3 *rX9bJ+Fߋ +|@GNN#U$tptX'G5c~(lM@m (G2)#E8j az8;֡ %`QKC1;Bx'ڠ@pԜݴȕN#=NVN)l,%KGi f.kӒ.v= +k6BLM*:g";6 9 RP+Uo2SpC~BfJ]pEmVh:I*/)'†NcECtwHܓτZh8ބ=u۩`iڇ> <)6ך.4c\pMvu,0@+}8 +8 \k90"w }DI@NPxt +'zm]p/4?I&OO< S9RK+tv 2'}$n0Vb4_k`/]c:$˳fZ7Sr/:c C>VK\XLax +'LQu*O[q +~v7507rV6D #_^R;D\O4\̾+XbŎ`l̯3MEV]%r:qY+ pXYTpđo9ϭfY ag%˵C2w@ƞL1QrY5/2\:nò{"F80x")(lu(SaI.laK.-uᶒIwD.yow8Y<(03S<+w]]g |)HEmuK;/j6sC˶pN2EX:ePz['2h I_hE(!)o:(omXGzᳪa7S+7Qe<7,,'HFABނegהu}%mD5(}%*y!eJ.gH M`F]laExpGb| kQtV J'1pY#sTĊ(*]Vh^@6iF\z}ޅTp05_]w^F9>X= +/9/6"䡗XW(!2^֋VnJ0kDc̦8v(+KXiƦIc< &[mzhӪ34t ZԞCVkavZ>>m{msyhƧcsTl^D՝fð;gOPgO8AeWjIOGQ/7cHZ\xX⡼_cbzfvmvy+6tKF?wG@_.F\x5| 5 q?;B@5d mGD-=&9 P1z\17t城[=)`"F9L+d* Qn j)䣸:Շ@Ş8=u$;v75Unt;ZgXe!5HD;o]_VFx'$/X ɋvE^8y6wj|И ]S +1cb⦟Pw=gu<nXM |ڶ31??N-`"!5 a5nOkKN^0>wvX{r&)L%Š0#N$ ģ}#NڴzM' $c':JADM)w w Le VЖ-bF &쓎k7;^ڵƶk`O/Qt$wɩwOܹDG4=:c8\}}kS>ݑ{co/O>U4o̎>*x3&'4X駜-1&ku/00 23W u _~kk-ڑ%6q/y΍~ҶN_Sg?TmlL|Pへ1>+JsEGLNM:i0owQ8!"QN7fmv0ڨΊ4ҫJ\l"k.XDG0 գR o(32fpUЖZ hWc9datη"O!Α=%R'M!A]9{!N@M bAPI[%3;.fO:4VpҎ>6 +̏-%x~. +P˓#D\qD}wL;N :\f^k<;~jRMBn1Zrjn9b%/)!3Px9uۋֆt$ʉ(p`S#t^.CVj;c~8yb=ʓ haf0%׷[- k0Z]x@+ ?>#s,@03B?{N-ZBWݍzo?y@ ~M)&FkuCUm"E_ri?и>rᵍZק<^H}--%ݤ5=ߚ0G y^\3]1ژB{eD2QMpQ8>ɎGO~=zyR+l9yNÏrs{/83}OEj, +yte +Ig㣓)0X!W_06=Dcx}b`6#g\Oo6g}< 3p% sIȩ)Bzګ9s9f" C}6l> țs}^P = /qӒWM,vKئs%K1EʭXUOk9jgsCpDvFde]._&z )}@Pn#)dlobio?@ufzfv 01gJIi2 P 3ȑXu9Z]FkwخlljWjlZ|ʐݽ]пu⟳߉#">/wzɇy_WaqLjx<aQHxr<)t f %B-X'yLG!=xV)}-?rŎ'W/=,2>#}kG/J|">Q#kF`ġRCћ;'ϓ0K)iBL0J8Ӣ[cN1`όB(A؝:ƙM-'87Ke<$hp0G^Ǔ3Qx(צ9R<&1r O`DBmg1_&N_:0ԫ C 61˃ #&D:GFV=w(N6FwRLXN:2 tlG̍w Ϗ{FMI{3ѩ{.P)ۙ63̔}7kv줴e"Nr{}RvzSޝy߽,J?)e?}%st,mN 3)YM|S3$}WP;?@jҽz;J=~)NS';=$^'49^JA!5Nnmq!''IHAO&ORYOnCMJ^3vLRIWɃ:b=fMfYم,W,qHLɞGEPpLI9qP.ZHWGW=<ܴBp}= F" qnP=$*zJ.Q[1ƫ# )v%p>@c%6*rNj9ߦYlIUVU6zA0+nbYZɛO]gYlJSmru"Z=De`.@6cZ3k=~]C3JZ13*'Vpv$à[qpT`*ڍ䘟 b-tT%\Q*?x6y>?˧C@?+I碙W8Iii5ڏ0d Rҽ{Ƕ\l…#߅^k'Y~ISvE BftB?Рsm,Pm( +t^ZVf1hN^ ɓG IS# ^BU,2qW: jI=bӹڀqi]вȜdɞv5aOBF0cz0;Ӫ$ Zq~R,-bZR-)휣FYO@G\&M:'{6ΆhLlYȯnx-xᅁŰ @WD)7)_2r4>C1o,r"r cyLgӯ S+Ap^kPշP,ƼcDTo'  +.3M j]/=1\gouz\ޘ5(W)7 = ?06-Mz}7o᭲Ds^>1VU$m|jyqq0 0gxy7J ܻ@Ƚ6^ MN(!צr,%'n1g𹋈jiuH z}/^s<CV0dʱ&'E6wl$U Q#3d8j4!_Z5Q}u5z4+ZVg-Q۔#wV8eIk>)')K%'$#71G ЊeYsh ;4Yj3@@Wѹg{4&̓3%klo{Ѕj9G~iK:~}wXZ7ύ Y\ZU>cq =?j0ܹ"ZKTҨTs\҂}2w[[c]烙n#{h)JAYG${.M023S~8]uDuv[o d,湛bZ^mK  ͻ]h Dq{xyC%ѝ#f '+ZDT&|ډ*kc/y>O LyolNV)[j,QNG=2u/TJT~>>B?X/;s(+_=qh󲟥wPZ8}}}/0 +´(Ϳ5uV̹tʝзAf)b| )wO0f\C/ij|'a~W'U7UӓOTS3yKcydki|so_#ƚ'全: q x+0»_"W;\$1ߕ矢fl?:H2+>3%Kn =C5^*%FO|<δuq5V]1x[c#s94B94ŲԹ;{}>%yAV]Mwmnܥ`gN5}@43 lrG<^_'d B IQ? 6 +pfA3)"y&qĖ+)ainm۶m۶m۶m۶m{so9sMļ]?*Z+WfV^\cˠ,t%.ˑ. +R鋚.f. O.ߡveoAW+*nBnhʻEcnϖGH];PSzP=^ &@@#%`|AYg +d\8@84^ucAYt͌^ЛN*Z3ʂdueFiB%7iD{9[91|%Ehy-4o:Ј}Qx]FjEڗ;D*_kR\SH*?bGL%w]ג4%lπP G}SuLzUNtfP"6xWS4Ȝ]CgAj_ +D3V-?Aי +T1=+GDZjta0O:NkGѬh!ai4^QI긟<ę +MUkc6Z74fc)i2JZ"  AeJx1FSX1fC,/_IEtU+{9hwXb;α;"v!ג=UY~;Zi_+oa_~@?Mmqft}?0PMXuSAH4Em˹vb3FdZgLB)pvGt_EBƑĉ-#-v:ѣthʪG u}Z\)wJ]hj6S*)HR@K :*[>MTt"׮Xbn1[d1"yG<- > FFpQ`'nSP6W<΂W>8hh0[̅؄ ybׇi9We}*A|vT<$ZJv܆"X;kI.Y?#s[2nHX!/cvC(ͅn0lEkd0aIČ_@ĢX R."%`MSVHNOjfp`b_DmxZ +4GA==z[ı8_=Ş$u7?,e=/kkȍ%GDmaށP؃LaBM'rѕsdeyrղvui3e)=$sx0*#ªp+e*"FR䣽n>Cn/F3*WM 7&K ?qď&U8?vمہہQw w,ѱ ێ".kKRuS̀Ѱ/2{њarY!7^ZHvX-A ɞKw($K.a!MLΙim +EE-͑jo:s8aUuL!+Fe%t~[fU7eze.OS7dVoOoy}:4=pFw!`=}p=c \Pfn ( + jSY\o&IJN'[ӗ]qdNg=1;려 7XD^H%{Rk+[ UG-f&E0㾕@ږE[޻\Il]P,qZSXaxVD΋{켢wUMJ"&a|_0m~J u4|{@pT0락̑bl`w%i0v 6sq6%7H@ٴD~k*τ 1 |++C 1~>̻wEF-0L&S#揍jaE ^3ؙ bU\x>7n 8u1bP_!3WСsF}Wگh'P@=Oxu N~uiRҢRgi;/B/9E$sooiD"(L J +F8 E(F8Z<Һ$C-M)"fcCHNxz?a<CdNeB&.̙% NI:ҚwDɓl\m#?QK_ul̵\X7Y;+lzp *pp,9LӠ.epXEmQ\Zjt"S> 9,0K%[4K`4Vn#COލ@"F#Er/0#v\ w4? D8w|G$ؖw`c/=1e!'tC8|lQMod=}:rEF +8+iiW-u 8һܔ/er_ 溸oHB`'b!lx.3hcs'Fae'~LC`!5D;uWȹ7fC-p:[>#ħu+ea2rSw\/Yr_ɂˀ\<$=c)s=wrRm G WҺRb̲X+]!'Y.|ȓ-_3q.!3m\ȓNloۤ9'M'=IG➴#=IPv(i;d٭W9(%M'l:F .9P .eqE(AzKT_br-Qޖ4+Vp"mebg'8nBB{iOQ8kwh¦>h"0Ov<:hގAԹFu!, 1mƗ2D|9J8ja0` ET^ Ռ3nK-^Yg٣[f9@[JD'x qC:`O dHRGˏ8ѓ JX-R;_.m\:Y$/O8`p +cm/-cOx]sR"?>6QT\YvcJ800<]0o kǻxҔa^AdqPJ_qpt_җ߈"eqR,.Ӆ#ngeR7Y m wٰcb`YSt;`q6ofܹ6&ؔ_\$5/!m +167 wG 2l4ƶRPE3z+pj- 8#enup1ٖ<٧@u[vGpkKs&Ȳu-3ij}e_>*cX^7AR$oa۸, pNRe8dcjvWؓ +ޔ@_.]qˮ +@h,ܦ?q?!//|:/,$~3wќX{H7&6-wGwuv.Z>~0n2~3ٹIy;%%;Jۻj- dR +>.[/AJ{KI4bMWhB9d"/>@KK_D~{NmaR_9iO9P9q!}JZZ9a +I HTKFͳH$*Ev,yEQ1Y{しUP,zEK>j^Ua,OO=yTUKF_Kͧ..]*T{6AxUSg6mԪGn6J*+j0S?)Xg1Ec9F^'?Bu;Q 78ԯKR 𳪾YG.{?>7<'xv_+X\ZŶBo[{s>[0"D6߭&[ۀ7q_&@zLߙzL;&c`?ȡfӜHz}&%m㸖~_,<-1وƴbà [fV%UaU(֖PZΪ1f)j WPVqi^JW*_]ު/ɹ-ί}r艹-z>Wv)H6]iX&f)h%e#*8-J|ȀE>C_ l>ic-V*|crIxuo}V-c![m3;:.yIx`qN5c!,{"{x8P_ߔg& hv[~etGin4= ᾜޟEk}6ЕsIUXW]]W + +,.Ů\V}J[g|[0{ǥ+^ {Y"- -Wθ%g$n}yi+k{ȸ=UBZR9LPNY’U>K8/$R{C`l[R +zq0Z (܊zl@mpN0ؚ7 ,dLN,+BB[WtRҖ& x-;M)Z XvxHe;qPѶa#^Nҥ+՟[pBL>ww.Cj_ +Kk + +:zJQwF~ڊ$W1syj[Lmt+o?A1LJ5ba29worGFw"ٞp3w@+8{,+}UfOޘ~mu7t] K,}+oPïR[Tp[89O40Qp>K1UۜۜTg˦W{{_Ο~뤆ӋN̅;+~WtԘJVA}xҗJɿ EJ x :J1ŞKWNFI1iFRK*# 'K;Iq>J:˸cC8rx{⡑Q,ĩ">Rm +*"SUK_+'J?C#(ja]X I?:>7? (87嶈n[8Ɣ88\2IϪAfZڅJu`,~$B7lqEOV)֮.42/-lGBu|OBw~a)1Ubhw~s#?I,\swޠ|՜WT!'QΌ]~lOQ vCuܹypهF/7;VoF:ʽd+g/Y>_7`H+-93 + S>xP 'D?:nfFC8 |qyqV7bafөTOQwob1k7UZSަM^#/̘'CvvDj1\ݏ2DP =!!J~wN*jr=)iA bόO.Wprh,I|s (&/J]8rJ D[Woԕ tNV0>p*;*{|ܟ|P8eK{*hV[p4ZUMj(|橺SvԀ">7y$<f6 :}KߐIM-X2:cy(\bfo^Q}nl 1; H/ +K%bjTzcucO@Y"$!5ջ f)> \?9%??3}?h^>3Pfb]@enC`v)tqOw9א۫ǪcZ7u^(Dpsг燀vs G)Z݀~o;NzGgU'8$b6UXv]GJP•YzVa8#Fh*2܂tv tqd3{jR`ţ q}%%NqanUJokjtaLɩqFܿ+s$hk/rJq}x3lb<ij^|#^Bd3X<[8 t#Ma#;^-j11ـhzC sﱓNY8_Sq8Ț,5u** + F8ak ~T(oPu@'l\%=|"m^Ul1MfQ nyPxx @o}o]cųGk0 jָ$EoKw P7*"OԇLtCdFgMU2;ˌPt8zWR?u^]IK8MFK8gugQDWdN>WٟEn]uK*DIZDF8RWR-J)1J1G>$"m54{Pa'm~ُ)QI7`2 .,El$H[/<(ݓyİLM6d엂'E/yh:+ECJvtwtMJҷ`t?@[2:C[V#֏f> +eg{k_SWX+A!cr$EQ~b4!&J%܎9ƢN&pI -ɔc4BG#9 UQSD߮_ ˢEG%=Ȋ peᔩꌵg*2FéTf$e=A9Q5=6r Fġ`5-OCmXlc5ZaP=d'\Ds i9P{^4Qtܫ Su؄ c&uFhjtY:=F]fbN0M4<؆fk>_eV= 1xD*`p3RMlrbp<,yY1Z + 8/k&:T:tk3@RGBD7ܿ-s [H2(TPfU(M-wBYOsf(IPi,5hA-5P=-QvV⼱|A-Q18v.aQQ,3TSv#uT3H # +KVȃ,|X{&=Y Vi"4:l Qx.D {|Aϴ;VކZ{ʍ8ߌ*rAz,Wj)[ge|^pDsNdmYQ?/ +-+! ?r9Ŝ]]~U~[/\o]zGJ]v&9;xLF:YGx2u'&$lJvh }G&-*蛨dU`+CT/GfQ/xpS ?]8۸khK&T#tE|c`DhAez8#H}T#+sKH&5ᒐ:3G.~_P[m?ЅAm‹fR9\WTPKIyHGh#keVĄgB?JL  +xq8p?/_X noG҄aPuG< ΌA4߮X O]c#2?qd67~[=<֘6 +gHBAmOӳ:a(RaTCY""9>Gū)E& /JQ8d.&@*hqQTLVY/< + +@+ +9_BFi!{UN784g;vizz^OaX掋#t5]wGp7cC|ȨU6a? 0%Q'T8Ie;@m"U1 +UZD۵qV9j9M2rlY{w1|]γ'N_nTmFPAn:XDO}cqFnKF7DnV:d^Xnf`nb\nkEC3wnzyvŵ`,MtXwj3PwГXս*Y-ǿ~>GN$;=bFXD+'֍9TwaNW-ÏLai6- H,-Hv YPqodfQPx(|<=ҿ>#Dzp8#Wpχ d2cKX]σF5>mztQŸe ۗHʕ0ALIؒgNZH+ud)l)B{xq%]uX侇[L=0420#VϭV^h/1b8M̮ߩV\^Bk8%.]k"ɯ tI^ߍY[m{r]MQZ)&sW8\Hp/0\'찓O" ̑I2qyM৕sF? WK ю7 a7v8閊A6œ\SˉRɌd,h7+" $;JR;5O/du[P?K~|7J@ZƩaW'u, +gu hTswLw2^7*8CN 1Fhp=`>Y +YmpbdZϊhVݲeWM6AdaVwfEi.:/0\陬o3w-z$>nvo|^bBڤ5|R3]y2O9脜b}BȲ:%g [u!Ks bWnQj@10JP ^č/wEܛ~@s;ҽ wr"9YK6.?Șl\aR#So"s+ċvْK~YGɤ155x|!hèSco6)%L~0BWy̠mEZl]ҋyؠbL.0S*+VbqӡUW꘶]u~|rn+&OT.@X=Yd1Wv|K/d-.-“q>SeЅ*4ۛJ],&[ʻ+iwV$sG'avw6ٳ~&zb _toᛕ!5ќ{c@=z{'Mʄ1] +RZs"YA;RZP[m +}\K3j"&͢dh]Ҷޘ_h O9A~~r3B_jc~vo[@3yd'Qm$RYc8֔:K+ؿԡW=ԃ"M>7ԁb ->T"bsdmF!A[M! ٽǛ5#PGfZH5&Y܎k<3ًoO ٟPT^q?_@/qlN` & WÊc񈉣k2"}p1L|6nk9kp1:L< 3GsmW RNoŞ_8bVN.\c8ix##zIW333dL'ɨsƲrC rT`>RV>i,!܊r oz!;]dHZ uH QJ ͪ;:5֖:6ȎKx KxN&jl)2jJ*6`W*phU4*iUDjkFm^2Q*J)7JV +MڪҬz>5.< x7V7"x]0)gLJqS&V%k1V֓j"1+?&1xt) SZ`j7'+Kdgv7y"j06)xvK][[96Ղܘ_+cl>/fM:C&.xvc3'Zuis?L<޴umroY<r3G8-5,»R8GЁR28eG*z8_<͢(9q +1PXaqMD3P>'^&e`zJ0Xml/;Z*9vv`f{3-^ް^466ŭ{ԗJErUp#-&)f4_bsP<6^ƾ~ '̱q0fuBQAU2K0k˚4wIb޻.f7FU?ȗMi\dq~Ѣ &G1<ƶ/!prULtF`F _VgH] [~6#,zPzS R6q+K0}v idͅUwGvڭeTz?@0P +5 !='Z66?=Jbd[jIwc.!@.v *ZavuAQpxH +UJqX5J[rƽ +͛InW;uw~p9"~d җE^ R͝;W|{(EYV2?zf ]3a͗-vLTp9\x)Azp]. s\~a_*2e{FS+C]$Iܒ1% yAZ?wlFQJ.R6LlsL{1;1~e ':6_^-ܰؼ4m3K~:rv' +>e`6/Ӓ>ḋ21Z\‡ \,c0'Œ^qz7hږgTu#ʶ{'ˠ{|<~uӅ*.LG:.鼨P:yERY OQ9&N2HH0 Dd:AAI9tN@N^Diú4nVUNi~nnm7Go׷񧟏t +8v a^ڀhFE\h{Uڴ +(1(tOM~޳ zm7FQC,,'hs-QTzop$Hhf&l,eG᧴9Ÿpv")nc_U[D۰#ĵ bF1"aRu6s@=$h=ev}3P?jlc*i&K/cQ|1fd 6ܒFQ4kzH텺Vm-m؎ xp_ϯRGڟ쓲)N)yxO;2Vr;aFmaJ4e,:2ȱqNXvќn7! +[^ތqm)mԶv7bzizp{(6FC/+#nH +%+P0~"I3Q9xҌ6*]T#Jd1[(P/@9kܶL|mj_Z9-sܶ +D'%lF.Jz=b$HdH'ǫD; E)G9'^8Tq(YmJ8q 2ʻ@9_b7-ODԺqi-M\[ʷ,j*D 0URL{gt?3eH}hU1<Ũ7`uy|nc"ǬR]=M7+?m{l㍃?b)Ƭ  s5`0МҐN欎RO{<>f5攪s J2e{@Q!`N~'A(M8c˂TrwSmU)"eͫ~sP5Oot3nY]X!ä!qǞJUy\Ɩ6Ic*yI++? Ml݆ףS屹=>S4UX)c;7R!.njg$y”?;9F9HWyzu#'@7b?C%~K;w*$9"NJ.MiTl+UjRشIe~"fcXˌ.TSո%C@z +ƕF>aR -.DsdR{a>T(>TsH: jFM6jfcV$O Wn br(4s_]M=}^Y>>a? +3 T<tV,vl([4 2%YB+ z0v0pJUV V )VI,VI2jigduZtV pnVmV Z.%,:}lOKg42I|? :;*KO `G&U-ksknkUܚq_9S-Q 0F`щdb14`n2G +4DئF%50! FIl !I %5P!ņ2DGIf YIfDvHjBj ڢBXPs|jvK^mh32`R¬&FZ1H1TbR-avOgvcvb~| +[]]!]X*,gf*4 {,,cTA,ląٕ "<"El\Bj%O( \ CZ +bK.%ܒ #X`&@#\Cr % w9}gQv4օZ]-*tJ&'| JB bL_*h*H"hK2QU%ܢ]@ff +E+ MAXcޤ گ0dT_]Je3?MY zȺ1r:9A$g+g<P&;4lcM2֮H֕GDnթ@j UE-`P@/ߖlŸu[/7ba,q7,dhv<|rp1F;9 +FCsmbpI4 BƜ:f¸RfbBɶ\@y{Tr"Iaǚ̻fCeqZLڹpżosءؒڎ"}2DziwȁAn 59e!:<;Y%lg Agz"?E R + dfK[N!qr~8}sCVЊ\HVRʋd"JgKi)Z@OznΨHmj-jwPv}6o(DTls TZwv~,7["UI|3~}F9ANahFRԞ{H:#,cݩ;V_A=ƳڳF=wLeuLu +Z 8y{s"?O=xR׹Ȧ(~l&. +TY-"JKj m `UPɥnɱٰ +9Rbau.bbA_?@O}K-Gygsw@aVbzĝb XԝItEL1gXpfhܪ mPܩRԫs%"K +G)'AJjj|dRb4ݨzw摶PiQ{CT;_*$bYz 1cB!{7%C#lRkS˽# +\o œ§]bM~[oΧRd5crAgD3)jXr\? 򟼣?av 5)Um-5Y> !%jBnJ`oKףKY_c͢۾s}λ} ifV:B"]=m2:l"aLS+_1br1жrW$m޾x(aM`Vٲ?r?u >x_شaÆK׶p9C&#:`9ymM ԡ;)_Jel?/9`J)$~1 |9VAsŴQ'JvW't+·R 2u٨**67r3ȼyù,l8RF\`7x08vEX+۪yr|ɓ|sBP1Z5ȓTZ4U'j(Syq~1ɾ[.erHxW ֢1Yʖ5;蹃 ]uF"dnrkw1c&)1_cK'7 y3"4z:JS03?eK'd~a3dd)j8S0t6w;Z#eum|}k +CZZ@e*(B8ffFoj~e]LT^)1ug۵+Onхsb߿n ̬匓ou˻m?1,RdCmW^pԶ6} NkPE{Eۢ=x\o^\pYN^ u_՝ 'l>gݎ`6m/G>93M/muW {뢟&NlEpM4qǘ̼ز3Um4ġfIq&ڸCTDԡ|G箔lDK&mC攽OL>(ʩ\2:iiuJ,FeUKgNңR!Q m.=5;G.pu8Hr'GI 1vBH龕Vu&):qEM +bydUz&+T95nf;Ѿ;l 9̳?eq/OyL_X-$2S7x5ľrɼC' u_MꃫR,~e\׽ 1 C[4Isx+\3`q*JK_O5UsgQt-6cAV㚻 5f(Uޏ-w=@9|L*J 63L1/0qa呷'n*[?U1rجM3 \E@uxex{ +?z*G?N^40|YVNDU:v-L㲐t˫B-wfn[Fs|/@3A{tv1v/vj0\FzW%x2ss Wh$U!cq1\4Jqqڣ<к3KU*nm.>u_=hT*A2*-eIeEQ5,?7f5.?3/}ML}Ti5-I~<צg]xS<|sQ2-ӫ}S}ML׾y>-ޥmF6=(Q21V>qW;H0\}Da L*1jN-6E lEkiu Nv"&w0&o2;Y̱91:Qkvr5<ۙ-uIG9SϤkt3~e0/(_BH#QNĽQ\ 6M G$^YGn?.c􂰣WڄjPWߘB=cNzslEij'jXx'G<\JX(\+F/J_YVUvd%*2gsqdz[SJT9؅onٯX fF.'&kDľ8"1_TLuiŷIS&N1, 3H6%L&8edjEJ謙8m֤Ǥ׈)Y-%%W? 3en,Q~ϩx2/@kJd LyM6sJ0QII,z#eZuaC $Kx92~UAqAcKآ(uE!m9UIj ^3nCPO_#t%ҍM pP{]؁=r{bb8L p11uw[@W|LRԏENLI2fK~3μڑfj"N VCor>XQE=0*.{2)r?إGE /y- +?_zr9KoNN_W^Vw1`泍|o"2Wj^XUYAɞ,[{"k4t-nѝ3a9^OܢucV0ct$#! Qc-iR\LlfKuj-SlVm kW]=xoDmȚ=uMVltbWImsmu6XȀ$fϱ@3КU]q㤣5"䃖kD1TQIKI(ejt#̓du)V1L,5EL*:ENS.$, KLhz\%U|YOTwG ȏ_1^@Ff w_$߰D'7qa wI)$`~r`Kx4/fV^ٲπÇhowRlycuj}(]'B̈]F;y +wZ=Q{Ʋ9狣 tczuK,ǂtX4ވZD7u/YKSs$t-QT)!ʤ HIڼ7(m$9A~-䅴vVf/&p-8~t`` VD17%=E}KN&~Hʱ -U{7$bVThkf6 + Cj*o`_I(vD׏IQ[@&{Ns[Y6 =if};޾#| /q?"ʓi~fQ%ZO.sE uDzнځA=1=ir)2 s?sJ@0"GMbHrkrb ĊN'F@+4ɄT^IF+eQ  `O_2^%li}!׈{%zsΠ j9a׃o'ۓGT ")<ʃuʵ'/]~F~pAn v aKl-'   +@ + +nC\ h4 +@ +  + F` +AРh@ 4 +`!h +V||a>`0` |@ ;֫͒RK5Tm[| `c 06@F]ŘŌtfJ!B` +*6E;&HY%`.a7B_6BG6b6B @_NTNH`0ӵOT TT+g@з `A" +T?: *4,0(-08-0XÕμ=_}-_o(1nO.=(((MA@aזN+faA?Hh(0*Th+(\Ao\u` + + +%J:ELAРBhMh*h7*5ʵFBvAР06 +ԭ +Ej0h" +>[?؇"[!A/ԎG:œPUrk C}?E .N!XV j(:g'9 ~+ +Ӂ(zDrD(="|>qS/; +;|Ė?hO7|LD-LuH+Q ⢋#4~LJKD T7ŎˁIȷ(G/Eg8L|$KAOR>2h8qF`11;,;d%pߍ*R}EE0 +~ +>*# +N{Y0Fœ!oFF+Qăaphx8 +?>},A%l'; r_ lO Z\ool +E2,1e`:p (nB |77\Lϟر: Ѩf`aBc8؆hXxE=|jF,Th9ɶ%ဵk4?5{(;$٩]sK^Jȡ柼)B.;M|-"^AoTr&tkV2v SxDj$c: +^ r8 +wFUL˅r4 y6n6`a?s>dshT\Tdm + +v˅UK*Y~`˹ fi9 4`}veMF7IȽ(Џ e!`S>Ԫ<~]8@IA#Nj#4!D=#d4Ⱥ~^ܢP~s1? +jȪUMm0&*˯,- |.I"e'T(NU㈁C;JML1qs43̖21{{wFoHc1p$,!/I!cF"˜K:c$r܁aHX/}_VΒ0&(Emk[fR*~ʸ'*G (v LRIԢR2MYNHJ;̽; +xN>L ]Tt]B] hAG9EO2ŲEeNm\…_<,fΚ ͆YMrNFuYZϜaLCS&fdD4ddkYt]*2 EsIP^3v +HYzpJ9m +aej?v'ZQnhҕmmӓz$gz0 qZCpўqM… +1vd_wyI#@q76nFF&SUJAhl=^J/X .m ʝWCA@iIkKM liaM a +;|Pn' +,Px>0'Y +j40Zh֒0{a=IM DKOp*G8^gb3JV% -m@@&8][y~7*]g\4:1FxGx{ELDN؄%lGiT3>㿽OVyfۖ +hh%k\l we AgI2,ZSb/M#i$U^qXvhRm4"lZ%UG4:?OzOk,X dLk%MO _Ha\j# i `2f(V |l&3S\bfFf67<{ Fuԁ?Z1,'*4O>9mDYB)($DJA8!?QRT{w3E$|bK"UHmeHؑǺ66{Ģ 5sLɁ&WHnUH5+X͕LZjNu&FS5gOIUSQ8# *ZqO-{ȱz$_V.A"@ 3mWVʬ/U.'ŤN&hӠ:9J7#sҒ76{bv:LǦ ?Oe!"Z{WCwpwX@Co͚AɒWw-qwUt U+N؃N} 5x2ړOGƘ o{ :)9J1zՔ:m^j3޾XOᾄK‡ t#\BU]*U=MLɕ4((N\[^q'1fTG[Ӓ(yS+_1CPwHɩkwfXۄ@v N:f&>,4#f|=fY;ܥue2|N5M/y^ SIxMFVSG6L}t09޵YgK% lWLmݹk{z,zcșVpXjmXџ EN@~N~FȮ ez\]>\]0hn#,(OK޲97pG<aޏ2n_wzszQAx4C=WR0X^j޾206-\'U.m_ͱضa޵@@G#ܕ{Q{ЬU,=sy++[Jv6B^%jjJi"tD @uSRl9m9D^ (OB ˫g*Evwk61dϯ[ hy'+I7g>pN3> : )$T#`- R)@UU"7jrT5J8J#V]s'V:\Q`W?l~7l`=etMvC΍ަ:w]go\7{_5\~.65 ga2aE`|$S8u{$T{Y mfOꙋ,-h.ouW7M=J<ø]ܭjSK İ ] $?cFJی1S|xb/`ӭ+/oR?:0Nn_4oe^nPp̗ зˌfo0+e9Rx<#)HdZ0%G~ѪPVG?eEg` zazzo}CBlaK4^ (=3(C -y6x)_0_V@'$/_`4Ǒw L1_:Idd 0j-ǮN/ҨEVco"CVT5lEP; +]0dӈEW3*iBS  Q kBT|12|mhoPҐEWSET3SQm@.6z֫u:K}d%*Oț[s⊄ ɍ "{njt@ĉ%VGϑQސrF2ƣmu5lY`#o;=;lAwtP6_>'A?twC$w`,d`~;)̉[:{__F*Q=LТK7\Lţj%9|xA`E̓y8"O?L~hYQAI +/_Փ^."/xc }MXh :́I+RӦ(BMdvrI6%x7g8q!dW*"x&+"XQ +L`%2P]tI`'BPMxIQU~ED?\w"5%L4LNo +>@`xd9QQ%KWd'rEC{Ɇb%% ZNhՆ* K]YᄨJW4%EZY,"Q\$R!Z.:Qa//NtɌ*.";(PSGTU'R*Z(b%B(YmdFlIx  @`LVQ@=:i)6)pQvJ*D%4 +A8tŁUC"P鉵2;A +oV/yiIR eYj+킧Á?iI90OEȪ(?t$:hU[VH E% ,2:lvl.\|eGƿ[2\љ0ӻg]yA٩aQ Uwz0Qi(:FR|JXUlPvEC=BGf]2%i$SaEѮeFE f9#*dYlyɪ9+_Ad8r +¨;Wuq-˪oH {EvE4֚m3.bew@;߮tkJ%r<*Hd _'&p0 ҭ!%[J`lp(&nzR{X>5 X3ʠ_` 4'UXP Xms ++ ǚXhL 1SuRY0e#e4aƽT̺ n-IN+BiڮR ޅc *˺٭!Vܛ/3r~ AqG*iأ|s3`zqk+"AQ VPf +r7}u`r@gRK{3;}>' +^Qoޜ8 ]hKnm۶m۶>m۶m۶mw?1san+*YY^;+sMN[s5 +ɛi`8Bqc Z CpzCTxr2Dd`dF!I;MA&>i3xۭX}&̓1?C^u=6Y`˙ә a=1%ʈAȌOP=wb58Y"s Mog +'1'?ʌ0s.pS_(KhU1!yAJk-B=%LJgV9Gk|d-Kw:;Bxl2VPd̓yZ(ޅ5x$ux%{GC22Ɵcb9~a՞KNUllARy^UL-'۟_Q9jB{Li}eYYrTIrD6I$ ic@uAlq|L1gI\gk9T Y$ݤΩZ{WM@Kr{LUjhx5{|Ӫ=^Z+14凈/?*Khg kY0Є ]4$,8z'7%lxFb:t/ }|pLΞcRu߀.ISRd2kj_H'1a;\lfo;4;Ji #R:O2bIx]:8QN,1[qX9)X~m~zd2 GȀ#!x? 1\`}> ,3F/ВI؇8٠SA"NReH|5"ƍj=.r`|INA&?bO`9Ds_X":1ptdyC\17'G SIϰs.cE-J@ϤyN^ 74yx.$*ހ& 1ɡ9XB +`&Ϥ9zIhASRb9>#tK=y"GctES˿zHXVo8G#sВoM#EIo o0%_"hB ]y@I~:oӥbaǭ}29ysn(.F0aE̐]]P:`Aoj2ǥVy֔vC n eX$]it<6/F.=zU5*Cl}N}|UC-rг&|2P"]V9ܯB5Xyȥe^Q@Odz@;3>ƦjѬx4lkЅ+w73'%ۂ3\z$x7h `90~gOB~S!1zoL +R[NQc[/@ o Y gx9=J`3|HAϤnޅd龳ZlٜHXj[GnăFo1mރ +^MN>ϖD8Urlqvpe 2_ӥ@4A8՗&?%x><tљw;nфߒt2D\E|Fu\ +rYg¸x %|8Of!fj~*ADAnAhAdAr +v܈],Uon+dڍ\H(gDzwcU&P]։UX~|( #byRFxC8_''V?g$A@ m!J!..,h +$–*u? +g$b)8Ök޳m}H\ZH'$)vOޓ>ȹ;3Azsj9s9c{šwż;Bgj'6}֜;z;K{ Zch&ҲBh,m%,iSZ h)hSS5QaiP!,"@@EUddYdddYd9rf,Y+I2Ifdb}[JeI*Tuo'VV]'U_Ǯ_cB[#SD2"Rc*i~o봱FxB<ámaXv,vvh2Ht +$(QEl'WIګ(ԅ.,h_vYr՘a{KaF,nW7Q$5GCsJ\aw˷Ϯ|/׮i/_e_ 9%eߋ lmBbG}fFJ= cQBd2Y%ʼnĉA +yf9f-f[UhOQ FlFf +< + (;e^QO6ʣ7u[E`BmRP4tK &  jG{N1h߲PXg;6ɽSkٵҽ[9YIڇ:rGڣ&!߳dl%hGp#)d^ ^^ ^ ى \o TK`BB$K PX^ ["WB1W<.= pW\1<-ܑlhY80ћOOyQ@/I<S?}d󝚽u]}_~arLRcM(I:+ G[+WkyZR_d1Iɂ*ZWQbcI,r '!IH܀* '/9+VH0,](JPt +"+QK+9((y(u"+';+GQJ^Pn8d9HBYQ&p͈RbaFLϢΈQ(U?Vr`;f>/W*"7g0B00pwH|^IT;AƸוIWm"8F5yt'Z$NOBMsH\e8lf~jE9O? Uޡեt] \U`hT&P7IY~#, +Vwia6+?3@ɏu +ѣY?YcI&2;#֢YKG4Blf#4Wxׂv +;ؾ5f^ve]3\̒&۩i浱vYԡ=e<ŲЃdⲙ5YkqVǚk!u!t/4#(޼h' ~w7$YL2'3PiYL8]b,1-][3ABI Cc%Tp6K;=? *%XTxiE]Y$9Y1R݈h8> ebbvT9,U E+Uy!M"OaD3tbu"L2f@ur_t1cBЬ+A(am)2ݫqc#Ӻ!D;Ax~|?Qb!hb&TpJZEb4ZUP+:D9\ G5n9Nwow2uZyaIˊJpkG7KBSBC&B]&6j4Z^_2" 9ն[Wn53+\;6{M`q9NXy^$9{LR}ªEMǵ6zgTr}8ҺԘ؟5m$5~5\>Jù1mGunU=sqam]qqB9ގuz^r?<+W!Bz˻:av*[\+1 [?t֝VlM 2-`k'iUIV00UBR#QҒ +d]X:qLtS3F\Gn}_Ʌ@&qU 0lX>iT9:'-~:<9DX|3: "^F!Hk6cVe=\/ w!wa}]@t.DC?2^OieX/6$H9u& q9=l!I܀)E]vؑvT۟ +dFͿ0[k;Ǐ&l ε1VT&FH#L΂<Y}SWNohY6P7C: +p=bA`}董1h[6J1 Ȳ*zZF=;l;2A3=èDW tw_bcDi]8nGCi#sD!o_ :Dk%hu@3z+f-nrdZibtR3Dlv?&C"~^bp}2CKLv( +ʨ-㮱0j„2쿷Ä5.¨Ĩ1P" +ԝ˰ .%033D@C0vLzڃےۢڲB~K~P&/gH8,kNHs0큾lm3\O;@ͼq&:ҙ]u]R n[c (dzė)k@"((W) )m3,;֫Ư勗[WEċ+KUޓH,a*w͠U$Q"Q&v@\DEl .$~G4Ad}DES/0lإ'u5$=zFs8yojUMっ5H +J!WJNoxGWNoJt5` +%[kL//}?[+$q=AspW//D+'W$DiTWVQQ\DJ->`-6,U4P )@1-&&SVR|DB@%G#GBDYLXEIAP)WfDa+=Qp}@ޢ  c +tOw>,$51e11s;w I'ret=x6B"=\Gc39}9zڂwsPKxɱ I=Mt"NF-9dIb$IxS&)4Dv-$^GJ2P LLpsxoQ&] ]&U(5EB0K GQ܀-tynFB8" o רe*Ilp8(/V[)GrXJ.3 +6a1'BKɭ!i@#Ȏ(uuXTN;0}.Qn^3jT5 b\4\.,(16|ؗlP4 +!@ 0^ B'>W)c\Ż6W6_,+J5"Fe,Ĺ7K=I(%'3)iklJbnOddZ{.iA2swY7\M-@f$ՠAqUU"^[ʝxW0b%0%_^ "}rz2idWdkfǒ,H{f 1Y0agI!.0K#- qg!0V!V!nQlI4*RRsޗ |d}ӇPg%˄G=^Bˉ B#5  +h[WB#q0C %䇓rf~M@12 +Lћʤ+.$I{ 9A#R Q!R"ꪒR!Q b2eowΠ8qk~c;/uuRqqBYxipPD ?)~Єtz&j&uyѸ2j)ʲ2uƒ=E^68 gכםםםסkvGD"UGijEҕ&jAm-Fꎿ6Nֿ`a%k㶱\J uS +7(nn)fܲU-b^\::m-dytm\X8:fU/`x,# Ŭm<5ّ:=18ai]611Z ׶|k!vfL{S;5{X8<.71~Tf9V+z8J]T$nvCʙ?߄^pwh\8?7,i8FN~׆ ؜*_t/uŅ7#T O9î%Ƚۇ%F@]QD{2[b`EF 17wyFbY~9{:.5\:7r\8dD̽!"R2=} `޶`3lR:oA6'ʎG7)by兛r51e!;MRQ{*wTz/D[*4F#u n-芑l8|obuLX#$TJKc{DQ4x>(ok6*Z*ƫ.bZJaZT3-Ԛw,eXq+ŞXKHMB9*U$@EYX"e8&m3y <a-V5)77:Q)VC#- /.WĒjvw,GSPL:ReQttmjԑUcz4T3Аi@l؈]7TnP$g(kA\{%GeWxPyR*T|X +,CLQdAZ,dWZ"b)v'1&']^|+#WV釰X7WyFTTpLRe)eCol;Mmy ̈Ζ DZƷKĔ1+(`N/Qbaѯ0mna Mx, =94XL`zY m匵%<,>*5h?)}- ɓ +]pJz%-v-KNF ݓ +6PўU66E +稆GmZN1s՟Үa)vbA=B$u>͹eU^xja8tckok ,ae&TFsrt3>f"-` '3GX⣱JkGec8)Q+T͏gPoWp_UmU$DD@o{ Inr׍ľ2s /ǒYU ~²Mc Ú]A4tjhVhǾw/Z)ɫa8a7SطaxP>Yfc*F`N~݉v, 6Ev~nrĸ3^ pљ,<|g0#N % ƩA E ܍>`5;} ޷:*P}tr.n lԈAl4P&Pz]l`ߡ҃;vnj̡A @#{hX"[^QC'z4>C#o:WxG!<^/ܲ2y@9¿r\rD7?U +%̽{(0KG, +2̳H1 "̫࣑̩9 +KF=̿$}1oF4 +\č0CӾ{11U[k gCv ׿FG# /Љ9`ϣ  ,JPVg dRYY [WBg2[݇cfBEg#fg[?&c8GHsƆFI)S#~ә2ȾR ckC|< C+Cb g ڴ{( BX 3頥[fHEM 裐Bk轥qC70J轏o)CH2P B1K*kJ߬[ /aY0AC؅Bչ sս,ԈYqkD2ffE-/,OD4֠Ühgt *m;T2u``$B9J g Ns83:HM[/BIRC;D_8޻9Tw s::w[VW59TgÓA˅7S#)yp)[{‡=ձ9b!n/QP_ +{vJπa*{'*>̫dImVPm`V␜H'˲`V:Nc$Mt W9+4\&@O;G|1 +Bh=NƸwVOln3w ܮg7ܮdGndw&+pѝ쑶> nl;NygkPG%n*(T1FcU@TǐvDcH|Zj*t4w0"ɉAw8w3%⥰axRYĐd{8uPpb:5⣰!*1IIp<: b/B'}-JSΜ,ImO|:;i9y/Si+7N\HB\Y!2T{i1tm@=0e9%!=Jy[7-Kɍm[nGcA`_ޯz)^\ӜOt3E!96MnRrW ޭu`w;&/!!m4zr؈!]520`#>x|C!0v PnϨ0w0y]z@2;˜[;F_ UYTو\'mݫOAWk=?պnmLlG%,g4nGln:*nb*Jm8[Ȋں6'sJ NٽKƃw\Ϟvw(JfI:59e`22&ښBV@: 00&0=c&ˡ"jt,QR侈%D&+Edb#E=s1i|*\=QrA+.QN~/塿{0M6T,FgSҸlG7 K@N="mb o |itRqn}xN섽Z߲qZ6]hvbcb]6ɾZq *Q6;bqd7Ѿc"q!=Jo* B]Qj2I"}=SI/K j +Βj0>$=8I휜.}`Xȇp8< =Lpx4Q$/Fgx.Z5]<m1-DpG1t F1BeA4?gthj8چɞ<$oi!F?N,eBjir wjXc>lu ;& r #,\=Q\lp^+f5")zSL1^ҝLl(/0`]Nc[(Z1=_M ^`n=2'бY4u!=0=y||r n37&g\Fcy&Z7?^'t -hD>TZ|{ꌎC|˼-t]{W(VwRb=|&Af=ݦo.t|}k"7YtO7֛ЎDd$N1K$ۃ4;4pz@קtuHeIܼBg%Ejt8 @~tʑHAƩDill%]8x4؜}SgҬCnnEiZ5H-֡Mznӕz0M3^ʑNRHql#r@:CM圥}Ml7>Iछ9ۘR9:皓&{t9ԼZ;Yé:3IѿS"nۼ0ee<+dXFə dpK*2sLjqs-0%jZ]jӅZW~RC\gJҡcE$UH(c"ʶJ鎢Sm -'1b-ӥzn^#G!hsβ(SL̾tW/#Vi rtLRA/hG{a cT69>~)g>jWPhkHO: +W>>zƣcOp&wx#S,ӍA~q^ٸpGcn29"t^^Z!>z7$4_]=X pEOREΩ~ Z\L鱊*zsjd.V/jnY^їnt Q>ɟ"g}Ȧ.ɟΆa8Ga.vN|~+~B_a-/Nz;VXK]ZgL+BqB!CzJ9=>#}ٶ긏ŒJLpbfpےJ~xtA%"I[l[)]Ie_͒r;hKXw)rDH,,*cB iOWJY/{IOYI;j( |G8 0(@v~/Ƥ,8 |+^O԰ ]tD.}w.?*?()+Y7qy5ȗ7~RTqM7}iWW5ϖ9S;7riW-͛ g?V(-ð%'϶'fy=qٸOoX_[g.] <{N+N%#~/<74#ŽWl9=7s,6!245'`:î0@__ KAwSVsix_"d(i++DFu+-F>elYO- Ad"Mucy Vw9͡Wt*3{ޥٸ?ϨF]e]eEhZtèۑu,Ôx T- $Zƚףv몜 +d/9C\ ;A۴ +dwl}2e*|MP/_O?ɗ哤11DӚβn/Zw-q÷0  67#61SQF2j!)P%1!QL\P(X$?`'Je:gpx!k&ENF v8gvresf>z1;<{x~|u=4W,Dc 9Tm="drE2zl[ɢ<݈b/}G,5ۅl"Ỻ) ;caw +sNF־yQ Kj"hwF,ǒm .| b,r#^S E {5Fa9AJT-؋ ѳi{ij61UŵϨGCۅ_%U4_UXX>a볧G8RXopXq;S"€b$ZV/o< 䀘g.(Y'~jJp! |0}lG Z554c 3e {)Si sHaWL,K-DUEl("j $ IFbqVZ4$K:* +."|^D&|w':pB S %ZtzP@7ϼ̜9_kI,,BblXg(ĞjV؋o1b3q0#z,|πwtRQ +y$7K7fw̃ӽHpj +E<Ԝe~$LR=rS{wBBW,KJ<:A mevY@)/DnO +ݕ,9I? 6sR|͢!٤ 6 wWհ.=WQdyj<&sҁ,@cs|\_ͨzUF6ra 6҂bȖGʑOw}5'[ '=q"<$;EiwyPڞ$e20Nj'Ge#%wzH]j# +̎K=纙'eDUT,W z@lԌY꼦+)j +ɯIHUl&nppUBM5whÉG/a/ܰ{ڎQِɛ=iO{8Q%|400ѭp"|7vdgƪpu…,M7=z<7u'SPYi1wJdڕBDQ4}Zowxv.9\5/""qub>ujSO1^89h9&i>?߉979Q \ 44!4{MôjwX |ֱGT##l#K#@#?[6[[]T{Y9XGevJJ[w? oTFOl&#(G*#,w S[16[1r4MoUb#TXXA33@Xd6Y}XuX#^7[אky"АKUH)U-gJBa.-U++߀rLQtY.u_~w #Nzs\(cG b+%"X㑭$H1("w(^_po$we'e 3z nVk}zg <$̐C f3޴g[29L-GYؠбԱg[ HmºYt|t*B֌lFC8MWA"]]"-qlد?)# "=A!$'벛6ut{*&M[ۙۧzfs{{  Eë_tw@sbY'BHL,oXe@O.Tb-B0Wi88S% 8JA=B "Gl\SZ[9 u搔 >\2-B-X߈KizϘtF_CXe/ѯDLPY\u㺣Uk۶bwVV0a={{=gG-,i)V#ŗMg!j{F6+20.ػh80 ݂GEa0xzEX= e4c} Â!đTvIcRl,#Σ+w4ͼ2|tXHZ["Xv$I™33PJRċ8;fz*)guq42Csbf~ɸFF|Lu L1 PPr>͹Ń87BAkIaĆ|5_ +FƙlY P# 3D 8(>EDSaxS&Qc +r1o-ΪJ$ g":^.Mg?U̇:_2uY;gWg'CD0@[MT QR;scrHpv) Oen8+xԭGa֑#Ra{yG~so"2b"YBxjͯFlP[+ w6 Tv&'fj_/jr逴6+00_qӼD/5C-fAE- Ojop_mkdhf&0L^,s3&?X@P  '@: QT۹U׃s7^òrB8y}lh!'$;3y-oS@ *3[|P[Gt APmsXx]?@ E`26[o}Aio5=}b+`SZ68;rŊ&&- !U008 EFWV pci7?xTS,Ne Dh3n: +-*~L{&7U֩,QMbx4kbAhy{U[;pv&O9]IJe]s;c0~hu{K ?`t`.~,-= +}]^DJU]업÷ J'RDצ]WgsV;s__Go[]:'÷f4UfłzUlV? 6 nj?V +5ޜAWLbdlJB8䖝L&ƨC$|Y0G!PM +qp7OR6%_x8c|͹Ǵش5.Fdx1f!!9YÓo{V`&%7@v,ӣeH%2ciƇsZ쀬.D*~UhM%ڌ"?(14 5Eʱ]AA ,'aMIClK(H2$W1V(2n93~?ۀΙ-ۦ6KI`[,m*=K ]uWy0\ܚ>y寋JuĿ}fWy WMgtxբ#Z$친6 +c"O2sB>gC11>ZwO?GL)S&k莗1&Q&=NӽfB)oCڿgy{RvEjNߵOL&r B 4lk lvefw=rN柲ܙmSkl9)sb) |{P>e{=:sĈ]QG8EᄁG{z{ rB#zr?=9?95m-XڜLݑ33->d^}'B28=i#iC_)wl}4BRj뻤y!k(əs59T`YtX,u<+T鄚33Z[p]HcLmm o|&<6s'F@^#Mo +o) +  _]A`.NIAԒ3AJ(//)UO o~/Öʾ8!ᅣ[AFSc\{bY͍b5X&ؐ W$N\ +4Ԏ)[x6vUf>Ky)RgP@d[歃'=:)k-q3eg08.g2 -E*ttv7&sH!I/Vg(#/"E8K-Dv$S`X6- n^zH7-e?b(Co.y1ٙebNi/w0V(fTF":Ew "C:{s_}<{(`={_Z}ª~??q}`0;-?9}`f@Icw^o>ɮ,压Eи'#MDHelC.6.ȴєtJg{vnI@ZsxwiqQ8j>Qq1Tp"lF7iE5 p36whn4Uj r zQ|YܖfO*$lI3@t;]?-S9}mBDkn7Ykp>&"\*C@'xDH +o ʔ^I&)w891 uDRXL׀0g*^f(>nlI 2k0@G W!-] ~]lzZ\D3eJe! bF\q8<_1evnMI%MouONO_>o~w:iBRAAQ:3:C +EP'S"PJ:3I]`a]r]>!ĜzcR$Wkg0(vz.O\EcF 'E?' NBMm!U`XzS'EYHtZp7fzEhU{"D45 Ër4s03},6cK2'– +8 ְ|m$'Qj}զ}:%9Gx3 S`"4 15 +v\ZLdžm܌-!HO] njf<|MI_/yDy|,*@9_@!SdY,;mn&t,RJi$i82 +YL_鿏O'zɹ"5dP'1#FCdgքr-z"R=}Xcd@R0JUC*#'kQ'_`ZA#^3CYd`H-5䴬. dH7tQ/_V\F-ٿ`Sga4ۊFt&Iǂ vGFb"ZR`qdn'(2O1LD#v뼧঑avqE˺<$J?x(%W(%/!r4)UKNn]츚~IR)]Ubv]x~k%)_e}&{X]oqdCps ITg[UW͢JHDwpzW%9IQē݅OoHN?DA/+|rz\LVP@l3+z *lHln؂V钭 u ,X_a[Aӷ h]ҭHlyVr{$~q)/:IrL;@\Hx%ZP)Q4[+AZKkf23*n.>RfBwH2cڜ;{ >P59A_> Ϯ6KdmJטC%zJgF"lڛ܏͸jѾ!|iЗ,/e .p]5 4VJy-tMgl&+//d<^Oj6*Xt< Scl,uqid"Xnu3A; +x#(nNf#ABU Q;sSĒ T2nD]/:nu4H,Y.併[3ã|T>;2MeD^RX?gd>[Ju Xz`IJfzሣ44lO@t'LKY:`T{v 5u bz5Bbzi>:?u;76Iu4;OzxP:+{j_kːnm;0 CE3WKa2ԛiz‹^ظ@w朎O-㒖Wش% {HCF Ufb*l2Zl8T`_WN@ cΨ b`*Q4gBdמt;6?wE2svZBjפwT7GxS௩w\Uu_+6u_b_ӏ4y]9:H{~rtס`` $9v-w!.EJCd)zW ܯɠ_K}8ǭȻ8|[ K؟ʠ̾v/u?ηF ܍u]?+/%Ki]ZЮq5.JJi>"?lXi)/}NGN1ĥ?ͺ]ZZz<ÐmCȑU" +epĔʅKy +u"4ChXs~AäPu(@M\Tqo kw\w*CY^~Yhp5a=܈ք6 ^3$8Jg;/igL4bVDADb5N<c{B _vr+C1цq=8x0)hZ=li11x̘tfPB5N?Y)j@ZLhAW{T ׎tu\2ug2H8I$sVzq[/2l?x*R8XDA3;FT~P + 2i# +ۂ$1k)*ZE5tA3mYMC5q0u +j[)#ɠ燺vt29VM">;'\\%j)1 1sPFEe"|>+oƢ W'1 lM}Gf̓xe0%EwnB_\[g*Kw\(/+[MU}**Y3&Z%*c6T=-+v^tTkKU`QJ'-bA4utEɪ|Su"&Ly?)<Ӛdס&AhP7[7Z7N`PC@^Y[Y ОDor~W8NGʊww7]-G@0f/m֜8OȻ:LNjLu=٦V*=.};Ѵ7C޼*k9\C7+iszn[#`IR#9FR.b0~24(ov7/a!J AQʒeD&(%P* +Dӄh#ΰNuU%2gۂPXKD8ق6Sb1bG&i ̹EbkӤ )r֔93c~_!ۘg6X<e$xV# +! L2DRCze$`tg4 %?g|4^Ԁ$._P,HDH=P(|3xʊjWpͅJ</g@BKA pYImPU1/{FuKcfc3ϣgڙLǛ]N%rȺ">,.֦z 5AC?J~8@I]wfcci`wlQ++CP| ~(Xrf}@IS,[0vX҃噙ו'˫Ÿ́4`#Z$ƈ+^ZGr)dGAPC#ZFK חJ#ToP +G[wZyn0E]+K*V2Goȯr Ј8%r3 + `pepZЂا + ܷ/rחxgJpUpO]Ԗ /P ~mຳ--B*O +%.<)z6kU?;?u"{lEo\Zx!pN  +NӯpM Th O_ x zkg_KNo +`wpIT8iupJ +D^!8S@ vbi-&D&Yo2z&Bm7۝ۯ \>=$㔈MuE{sx/J*q3H^5THGJҀDu8=A{Ix . F>V:q3Í5k)JYnZKضr.`D&}UKu077]/ϼ+NRm -:Ux%wƃ˴ i,@ZKB7K!͇j"1zL]xrH<.'feN~nrS1JBೕ9lńŠrFf4gŨժX@p=ag])Z/Rc='5z2xcyPf?-a`@ny%·P;ِ +6ZjՈ< 5Jmw&V ú>[4*ʽXȇ[abŴ%q}}g|v>ꤑN9t3yu]glL0GaIQ@>i/r=0hDn"Q +9 "pOB_T X`6<|jOHCSb.U&hytYms*Z#-Ro51us^ d؟9LxjX\%iWTG2EEY;AUyF%Iczqj刹&9s4U2q庳8t}&>=\DzJǒ*@؉rni2yx= ')S'hKkʤFD!J߄%c]>=5>4&J}=~!vJڞ*Vfs=0C x9|If#bJHgEYB)5 z68;5tҿ,IFP5s5I ![5C4y}[N羸7IIJ?nD-<&hI$NKY]AdqSʥIV5IYlҼ=:/#UCO&񼔄{1$gż}sԫcXn%#obF|V:yo#C:p}rҊUW'-|^"~uXRShgG:G؈ҢO+LBbx3sg&(~"M)9Y\'ȜzFZ+Ͷ*:k,nũ{ bt-ϙ%{C0PS̳<<H\8[&O 0,ܤ46Ob ߊ@\NhdIorYűX)'!l% S) +h.%N%y>X]c4p8)٠AaWu Y6x hȸaF*ȸoE\oxl.%1iqY/"AG$P3p8max܁i@MWv<] !؝)3_[v.-;5n)B(ފ-BR?eJN̖oz;6 XrZ2A6Zf4# "dɈ !~$6i|x \29!m2hp;֢9LK-)MqzS9e!A !_/TÂDH)| Ǖ,,1XBfaYʧ"٢6k?ȣ7͞X]"bMIWZ#d)KOhGjnJW#7YyX9&?Z=B`y=\J$Vp8A-X>0)%}IeeGvH'l 7k,K+TIFںR-+̃(p;@6h5}`fެj" &ExSMx~W4+7`?}WeWH,? +/׏/Q0 ]` #?J.ïe?l>No*8tb(xg +{{{0~ YfT֐(֏'#Uo4F{쁇;Nw +NHwM9'0 Him*G{5--S'K-{0]~Imcȓ"() 4&iz }0ȓ+u´F8-ecGiӔҌPƑoLdB ΃89<%.rf]4A39pL-ԙtM6B_:|m.] w5e`QLҥLɐdP9Dt 㠐3Lՙ0(@J58}>v[Ȇ3^hm]lI}q##밖ʏ9WGЮ9(`wtGPU]ᩎt:gf_G747l mHCߦmبU V*+E~,VUJ L[Y32Y.ApQ4h4L{FhՙJU0D_^_FMci*ꋮqײ\ +b;Vi"%*;;ѩ;;ӟ63eRg1› c1Q@w' 7L>\&2dՑVWh-N}j EQ|4q-HS@ݝzjzeP~xzq#f2r*:`GvS~"yrBxGc~DYr|DŽ|~G]wa<:Ш;W1lGnu'vR#_/@3% !2buqgH+#y$bzV-b,hb`AW+`(ص"w]gEb@gۄ 8潌zӇXhtC:I %u%m+ȟu!?`^1 1@] ܶm۶mO۶m۶m۶m71;372R"*qOV[&ȗ搀dt<"`@xIʊ,hF5-#jڱ+TTͭZ5ZkjU;Ÿ}vWK @gnmn{?{Yo ?oG8q%j(S4jh4jyp&5K@oSZi4&jEU|0óhv&լۣV;6s_'+,Mn=]kwb;^4 wc@bN)hFxY:;tO( )@F&8u K"@\Wp"=<鍎w8H٨Ĺćv䯳cѡke(7| s^W`|]aM^13=:B@3G36ME>a`EC}Gt,|m%A#S]HojY=1 fߪ>zͭ4HgFɈM!6ǥt65c8EtSFwog@{jWko_cٰ9&78f=*:>PŸG1)*y5'tLINL5~%čFd&)FY]9u~ 6J'=a)%4O[dTNf,̛`BـDZeH U2Y5Ů_>9mlȲnI۬L۰nҶnGo1n~GKOޥa2!e(ڕ 6 9M2 2{a%4X{p6p٫76;.l +x]>oK }Jv̫2V2H"Ɲ|lQom7yz)u"X~p4>{?_{ܭ8/'P;ck0bL˩dFU0E4\@sP`zHb6ADI%V\פ0q`_8S pRoبA (ׯ1 iz#?)$Y' 21mazABAt%քSsV?P&ֺeic=WW}ݻPezϬݔuf:/*eWWj&Fҳ\ZڀnՌ3] U#DY#S|ҍuF3?5$Q3+[UVWb멩J'c Ywl^5ŽnNh IG>f6:i"zϸuMs;`B fmnHcƈq>wTF ׁWq(ȍvdE]]3J$Rn7Bڞzs n@j {UnW~pK =89R8Ƙ$<z[^}Y5Rzw9B9Z6ŸpݓH,Y1e>rwyOɑrv0e%}f5v/CYma>"a-̠ZJge6Y 9kQmOQK-D iur ̧ ,](GX12|x7&Pci1:/51, =וaH\hPp @.KV +jr@T P: (+/hOs3D<PmvDIgOg @opg +vzV7"CMmamĤ;|~%sútέy{#E$S{Z ӮilеjN)1JI +%#XO#Oęh#(J!C!Fؑ#a%+O$KNE⅒ % TBI" +%+XrlDd]]]-@BKGE""*GEℒHx$xd 3+rѺ2 |A4 #3toNŒg)n=z3'Fa$I9ֈlg_ox+]`o')~aҞkG87Usf* wC &#T(h9Cr#&gFm{JRlqrprRމq#qdRu6 +5ȤdSrJRZrYrR<%<ySJa1Xܣ}bZiעcQxR Yُ"WtBk #Q|t:F:f{n]C˴N]wV'n{#Ӆt|'t|y1>{u_@<;#Iوo(=454~vt,#+[qSOfFumQ8-?X&&>C1paL +b6iGĘLߢhy҄q=*8 +bxJEDhc\7'1% ɑo#&IJ +@UCCpdEjrt"hrrC$oC&5hvB4e +TCg_JقfsclIb. 9be1y ^4YBH, iS?bI-CɥprYbh%1(qDWNkL1)ؙq1[>lhsc˜q",M!⳥q%,M1bq(,Fscwaqb_:UL1O  bB,ȥq,EtC1H1YEIbk>SbWv,Q , "0H&8,džWEh\; bʿV l<àrڒ%-}bfYKno~FIޜgFq\;g6oytZ0=o~Nw??|Se6LJD̩G]4<Qp3V9`犚ڤQti-+6Bq=@M?~Ʊ-f1eMlJw/Տ@zg6Mϻ.=|u{ Gu吡~"hWub߼м>aWM,E %5@u] ^BQ^V0Z}ݱXĺѣD9$9ѵ6ʟD Lf|L,Pxy?@`tec?%rct I +'hL+on:jfAސn ?ktZ=#UxK7i pО0ᐁ@>ǃЄOЬ^5 J4kX oƜcX bKCoZz:2~yʓ``tB||7,E܂R c'&>>OE߫?[~hDh2%'ONy8(cVSܯQ" +YJZL^K WCt?n& 724S3'qUG-&tt71m6bbiikEaz +2 +"Č2ũ =0{Yn4_!h]"KxRY3 k +tZ'Md#?/lK2Lp@72Etp֑˧XxcjbV(Z,QȦi:4ɸeL{eX%ON3mH0yYN;TU ,Ykmz[[.Q;`>unLfd3?xӺ.5bhn䀩'Sd +OmjS_#>h=`jR66O; _s~-(6L:h^0xvm12 VmDdJ۹m|As +/5WXm޴54[dB[bhu0φAC3`, k1OuoDPLOzW d+v@l5u G\ǧ7`&}10c07ȡdCfvH))=ѡ\~lG&HrYztVZ|awDCqIѮ^Ҡ>s^jwG#6WW%rkZ(9?yܾHjB.M*#X.2kJ-\=^Qi4 ͖fb:9mHj@(;Ab25>4pAE'Ap>ji#VEˈC(G$Ԍ^O6Au`=㈳2AV=z_fOu^@n) Ub,!gNj:UŕN]5wΕ +}w'OrNޒIƨƬYdCښ鎡lp^%IctuXq`׾;uy3;${Y`[xeFw)'7n#ye%#3Hv!S)#Gpr_N Xw#zEs ŊADRDmB* QBiPBZUƉ%2%m%JGmCi4ħ6Fmhh#o v%AJ46|dlD4U̴0wr1373, |'U~v)Ė`ct3]I-1[{:x}!O&{ yOZ?~f5!%;;!6΋rΓ@$ "NE\N%{IG +{ϷQg)8!QRDmR74gFmQ*Di7)7Ӭ | |Q SciF7o&6 +|="\m❚He'60p$1 B3v;MXXk#wxرi0\ ˏ흢E'Zw&ӔhsQ>ٚuAa C.{"d{9K׷daAϛE7A6e׸(XVPqh4o|FqM9 )♬Ud( QUU|4SHVZ  )V4PHAR+ V2028Ҁ aSL! t10%.3ѧ2SS- *F 6r` npB1n#FOk߿2މ~1HyН37f8AY3Җ4ЃzR )zR^*׃VX'EA+1V +-&5XSZAq)O^Q_'uY}u1jQH+΂m#STZ<AG1TF$W"hjfo^ṁ;--= 9'91{t#7;u<ۢz|uxk_(/A0kD/ĐzrkI-i/ +k3k(n 9(W! +-b߮C =RLe}B[T It0_qX?@m#M [HSyvIw8"^\F:}%`^1|\򻾉ti #;pf6Q,0*jq hݪI}Qu-qF/8d:zqQJ*phL,~7C;ԽQ{v3«WhƷJdtw.$ݮx 儊cj'OOҪq@yF*O*VҌex6RywtP&Revg{EEGQ<#˻(ݿԨzNܯ¶Z#l +uJY[H ѩHs;&(_\(ڷS2}\0ݔ]~ZS~lysRc~v4snr5QT֟/b[:7 ]ze_t9p +WaHhL4"F ,}oYbБQ?|1 |"q08 ژiPBE`Akr'b] :PTQ~K] T4?,7m(<$>3ovr\\(H,a""$! #E~Yc~>w\oFȜn;xn?fyϬ~ 9}0p]!%~֩W +ݕIߒsю1sQEЍ5$! !񍠀0y* /Ï1M.}0hpLM7yj2a\_16.U틈pE\eg,Ǭg1YлVQjm\KQsrΩVJSAwtH1nn2[YSzeNdRWR`2?A‘n9ѱڡ^dfQ՛f-NƦ}6˄rJ &C6,I(yi/?^grgE=Oo|oy)gSt&v@,~R+N%ݚB<$A&f0Aq 3cΑj7Y`$|%0+@u'R`.|>I?2DUR<)\KVS"/ *%Q=gS9!$J]I N#܎}# j @tf@BO@ >rPCVdz>C5q DكA5wY,ka/ FʺAL߾B,W*HsAEK{Rz^Ã7C) jO6ESnXkk(oYNEbf4̢直_1wcI3N0 :&RsAsffȠ+ !#=$zgNzڦ;~K9NwL}>7aPt<"m INε#:"'FP.v6V @Xhyp{^as9|R޳@2,{jjƩRV5S7D tnR4~5E^}<`smB\5l{fic|G_5l`Jkon !8CrN3|O'0A!;Z~? @KRO0keX3'@hJh< + + cAZ43HM0!Ѵ*GQ:9l)X֨UYU[n)+V/< 1 ,;i9;v޽z}G',.gl43e +PVVf,=XF.o. Y(/u^;̉a4hFX\H鷕 iw_=^t4nm>>S] :"~RgNz&]Uxy$Eϟ8|~~#Kk1a֚c ", +O{}|;yۙ o)䳯GJ~e ,d`E]}¹quv>0f;bo홤כoa@<30:7gUؼ +쏣֡o4.XqAon n -(ρ`þ^g["Nk J@<\_wd?X-?gabˢ1}P*>8βx`ϹϬy>W\4XEdLz-D m'2'0+x10%55Iq䆌 ٗ5"N4`#ϘMLNQ %@&2zab\PՐPceb.`Gb.@WE'p-T1#?tAh/ S.wFQ3x ٶ; +[]-bềU7[ KqEn7]>GX [ n + CAO|AxJIY *(V6A + ˲@/F/Ԁ. +}X@k@ *)H + *Th ++*R +l(>t|h +n<+O~l@3ET+ L7\C&.(՛F\Mxz (7hN5ל~g<qqD{%`A =Ay" |DK8bFޑ=C;A/Es! +w[̱]Z;4vȪ] ^?sվW X5fPԘCVd TIK! Ti#S5L T LPBV/ X5VD535Kb\dc#V5~U*">r+1,awytyO`_pЙ8,F6"9[,ۖ ٌ다92?h kt1_gKhq E\2^@kӥV!晏K"f-7Is]#ć+Wrsʴn,=ex~ty2'PKݙFTrGʄܵy;Kȩyhs%"↗/pxVyUǞ"˚=) +& +iK^D0PLTö O /B.X +,*)a9JȆ(T'9[CtbR<*0> _nKEЛm^|K0:P u")Fw!wm6fʞۓӮdsw=O]ڇg]?7?p׽@7KicEw357 +i:i=RsYJRf@,ُJ$xKN<T([Y)HE+%J6JT*qe2 !,RY,$aqe >TTEKM" M&W.;.ωuR·0qb}'\KRC]tM8G-#k7?KYl@:Pˡ ,>0 +RhZxCd#O0i*N5-WO-R|v@u.b +FvaI5' +Qy>aF4 Q? <f FV3UEAv=`GtDa(e=eqҵB`U.1$~GlgIZAKoeϔj;iMgP[Ayʹ=$¢ѭ 8)qc3B"^ANHfb7mc`b6$_yyJKs/c)vuMzhƚTIXL[Ѯ u.sbf˻gf_5QGj<7qeov)׳+BX ;=f ѧr]EǠ4|>bq◱+6ī-#|Ź1FH: +).uo'I0ZQ' a pLH~n|1|Ε2y,ILS;CeΠ ![}4if֛!(@XAq?$(G:# k$J9QsC.oG]ug8C"<okZJߟqNℑ)R8d$&A}0^@%$1 "("E#uM?!eo竮\YNKWvS1ScC#4,S__"[ DE=ɁCJCzZrbm-b%+"&i[4Vr{~yPE.qvMWR$YYgc +]]UvLJ t+O7ܑS0(GBεӚ Wơιk -S9|KidkMGIEu6|Jm$~MWTJ_WEG\Q, _ZsvLQlg_̏/*n]JY(:KQ]*I*w)zdJ\Y%? +GoͣtVyWPmG}iDHDrv4sReW@UmWA +G%hҙ}z6Ԉl(׷X>Ow-n0Ґϵ@ye;bF,NoRCZVP7I2* X?^4P)AS>= +V0,b2p lIbS 45-Ih E^[|fEg +ڨQGlcylwi^j7s,]Gު+[\GˁNJ(49 +L} {W+k/? Xyi=gM1L&0]?,)'ٌ ̔ +ss +D\ >5XX@P1dQF1k>X?5ȓ1xܷ=`@pIV]THbD"K/I6taHI7T&` 4d.Pixajcben2 d)/F~(8RgK+_)\vat8S.G"&rJwA!+D,)/Yi[;`X|~^cz9g>d&õ(+ЩWi񢱳-󼾃R{ʆ}wi|QG~I١ GVʁ90ܩ۞31E<Wce{_ĶDȕ*]myzӽc]|dƆ!fJV^E ڳO{zRmzy]ddy^Fp}{V"oD%DS{%-vp߈dӸlS[ KXO꿷I V_ wGzҥBmŽgʕEm|sӥ4(cGGֆLup{{" D0CyC8{`əhXg ndn1 ؼBob3YQfAĻ8"xf}B ?Is172Ihv) )JТd32=û ϫCF3 F3տAo2,wGGǢsqTw"Ngp-dsHtE8)4$o%FOL~"EQG7Es,rJtRCN{rߧ}Ĺ%~IwZr}sg] 7ܸs"ʜAs"A ;1c4z^昣%wa-.'En4pA;'OeJzQҡ)aCvφyr5ĵ~C'UڠjkaC5応. +6kC~(MbX Z{mglYH +@ { +;enzb7_u@k˾.@Ja WϮ0=8cKHkpo+c`?Hs>bv0>佅n@Nn*Qz*ʾ>exy{Op7'p=B +LJndŦT:PjJ(JzJ'P$Zⓡmņ m* *(?iWb8I)@HP^(JI(JP/i,SU +APGQFUں߁"U,f(^*V,V(F.BUZBUhqṔ(*?$ ,cn$Գ_\x2+O#|$%Cl?#D 0D, &=Xo7$řB fhd|tӠ F\ |No]@`}3Ra}*=H˓mw==ߚԞ۴1F{BNbw:{_wē:wG_yUb$r6YV]yPUBjY]id)X)Z[M6&Fe M-MMui͗F˦K .,լFˈFFˢXPUŽP;7d6;P=rpr夞CoC}. mƊpzX#w +dDrEx7"x7Bv<r( UȢ*юX\E#r!9 @' :_7iտ*ʖ}/7qվ*&XEO&ɪRQuOÙ1U +cD{caHaJRRRv'FY$V(V"BY&BQ8syT~nӦH p9VyAUd*Qd(H%jܦp]=d\-1e,rC +tE̯d蜅#@e܅C%NHK,Ct+a\XA܂93h dO-dx+% |р QQ Q( RGJd\GhJ +G G G P_a# T.Bߥ KQoD}G8nHá7zw;OS n?Sj^3J +R<z>'>(U߄iG+ǼC8|Ck*ѢYvֈ*JDu+%c!2=REԢ3Z/=EYjvOw[fPLr:fP7џ2c L+VÞr҂k+KkQdˌ37zogK+9jcʌ+|MM5R&wݤ+8M)XDFE*ycٗbm[1w.=2zXd#z`oDZgL_qftPU+P>F1$>1R{ܚtհK\LJ D˾D˸DKJYʲd+Kڒu-Ȋ? $FO"he,3 5wL7F3$Gf ]"E;”t  I`M BCN +Z5m +j4-h4U+=Kb\ y컯 -aɇ"Sc@顐t(4v(6vYO# WMZ D Ѻ5o,P>s@}5C+dvwo[ڔ腒5ںgpc0NjQKyRY<@ [.uL:7PH糿e^>P^DgxA1hH?[<{l}u;[o O8LTnA]=.3&9{{ +8.A7VO AϘ+#^h:{xD4,@HztQAm{y-BC!LtdH)ejfN $Ύ| ';su [\nIʕknΏok?e_d!AtXo 2A +ܦ~{7wn[o)^I  ؇Q_?B0Oiǂ}/H]]ߨ`-cE"c'QI~ioIt- d1;r|4sV@@&f0cjz +[!(hIοGT Hc#v~7*V0` elV3)INѽ<8vqE)\?wfZgw!'b!Ru׾dU3 + kGJHi"}b?&#-rn%(u'^܁*"*E'(x^l*M}a)l8bnX*cg ,MණhtiO83PZcXpuլoP7~7w Z"l: &ɘF`\l!>Hj‰ZJOb[pj5;PLMRVD/uF~P~#4 LȲԽNGsvg( cbt2)6Ej1ZV 7-̈́%N(eg˰)-!83X1H0RH#[klFeqԘՂUZs&#%* R[}8#EuiN$h~# 9G0&֙Ӈc7%aMО1tO!929@;P +a8}B%jL,w$J:.XMR`o2êzx&s.%#b; Z}9T4i߃uoOQ2"!C@*)VJdWJ,S D'@P"S"񫑬R!iKf +&Ʒ 'hI\+,+g"VJP""%'\ Q!S"'IO4G$Oԅq)b:,J!Z 2p@U)(UPh@`}g;=E&v=&vqܦ8 `g<3N;JќDjLFޔPv3Pq8^*}=*Cx_/1 LX"BeZR\QSSRLJ +5b#5"W2X dL5-%YТԠ_^]]]ҝSS2@e! Z!0^P2ȟXWP/8|(B ͨ3\=fųþfVwtOG|7 sEi||:]6:N<{>HOyHmz6=t},h{w$;bV7FQjT'as'RtF(5"%R .EQ MzFj؅dHD#,QO!%..MħHħBHgs nN#5<˥ G8(-7),"xD^_Qþ(Ebpf.Xm^' 3$hz]'knNs A#QR6VFsA>A1J@ bD1Ϥ]-(#^1[<7)!.2*B!\h41H ,Q)&(%R' B\SJ`w]\L%OzFq7HDsq r{2 9@M8 |!ٌRT5/=ER5"(H޿E *WS PrY5(PtE,9d++"S\cjX1 R )yʤc!X=/./fM9<̅JEZla%X2y^M,LsC:li䳅datydZȕBX6([u.a#k~JchG>C|z_! ,UY0Ng[_(y@VH ȶC"x5 dd: d衐Ȳﴲ,;)rmXd8c0LC,&Dd)&LӬ2ޥ22U2yV52<%2X_TY}xkOh^0&(G!F[0F".Tf}jŊ$?P,[SҭG8dah7.i1[BE fr&]L39:Ҝ\L8hArc`\b<]6vpc04Zq`>ьh`N )'G`Ty]nNIvR=5+F6W<[4y4]6i@Ԟ9Z.)3\$&<&N,w22ѠĜx*:#KQ=6ZnxAAeљRexѢZx]jb|M| >P!4ν!a!N=ԝG嵂ܮaN2g߭ܞC׍oH:ґJ!Q +<:**a*+f|e|c;TQu^mp~]:neGOm)+tBsg,9BPc;rsD,wl^-W"=5,A]0 Kn-b(/bhkg>̥s]gs@!Gs-8)w2E  +=;Wpx!E y:_Ɲ[pn $3rEѿ?zYz`W/8wlEm~0兎) })D >79>wY}<, Bŀ+4+ev߶ݯ+_0s/}Ż+ _D9A R@E l5!@[^`.Ǚw+aE1>H.ךgSaEV:T7GJ6"a2,`׌>H/7+0UN2{4!: ۍhxkٍ\30 y 5- +>BZCƥ {ǯKj,H8̈F37F$YPb?PfRvOg([2e;@MpA׾M;5 }!kr+'?HWf@9s#2bz>̞Fяax +9 9pQ 3*53x/kA CbPPr9h@4Sq +! A7C4J( }}:<Zh}!P% & 86= 4bT̒bvJՎ%_Ϭ7 a(@["r7Jq7D@=vLqns.x8?*B!.*!5@6dx,ఇ?>=04!`a;뼠xπ4gf=Q[PvT̐;# ݉&Ohm)8w¡ezй a \{A/@xsC*C +A/)Ba@5R*C9p?v{4rx"װH-,u]{bfxp: p0lPld;K %30/J)o#%[$e5å +ec +ˌJh"Neb4sIfd22|/B$}uSV +NR 2Zy0nz4儘V_D"4z/iWkq;xGn\!D7R]1xĚ!6L!6T{.3Ȟ3Ҩػg]=\MM7*d;CwS|0"8657#ҋtMpGpL簎Drysg|vZ:l_{~ɯZZ:dD!ndz-RaD6Ҕȡ&Qa4RE<~Z: aķ/)R!Z@]z7Ks :T;_pMJ˘w1c0^<$ !8vy*2Hg1=ih " +T!hd  ,{jUVVWO 339!۠uϚ͝qh>Ў$FDσ]ӿ( Q "<NZ̭{&00UMJôpqka1QurþpraBDHwU>C >ꚳb -UoOg&~ć<+~&)xTϜ,yZHܬ}c0WC5 +yg(!!3" vm*`m ^5•,+ձ-iSt:W0vw[Jq{ b°c){90<4v-@hT۴1Mƽ6 WOE'9N.uCQ]9>݃ +`L]Gwj2RMْߐF}0k ٶIܬ^46N873- } Gy7vWkӜxy5BH<N[yEu0\ѐc4LKEk,(v  y3H#:0n2Լ`GzL-s8ɾJ֮jg#z%tțvCr$Pmnj &iPLE7OVȾ;.Z=5? +ԴCD`x܎+ 8zc6J؆a2rR̞; +'?7#@&7cM3DVg{\ .`<% ^ߞ/ |ĸ4TrtTg/<#'B&0q°\ˬ7O?6YC)~l.cyOs )#`|ʹKoj9:Ӳ9le!e:u0E|=> lHDARYcbo6udLC](|X%5rn9z_0M fROkI!v:M(4֍+܌E_:V.%'f %uT}Mjh E;&7oܰFh|J_Ct8M^ zRj|6vZ $ɛ~%'֥!3SQGbarQEM$w.V%ʱŚq!H{@#v G^mdF̤{Y57,ulF!Ԭk+P# ԱWjzUk-7:ˤԸTG%q ВaNjt%Cء ;Xj(D5z5#5R% ȥFb.{aHb5+<kuTMURG]!_j9* Sr兡& ߭.yXO<% Yar\\9. bכp K#ѸEkIwjS #mO^жvGAx_12mcbs«^9"3D.r3 ؎}pNLJ٭<c:(ǹMr6e4l0Iߐ'~=)R&-3qtȘ&M=3݌-3,4+/ [Q:[a:7L;i56Z;q 6t`]7bufNǗBq[ij,θrMWOg\Rh +N)-l9SKNZNټoEcbS:Z;TJxPZ9&\v7\='Pr5&sh#zc|ow:JӐÓ&Jߣ9&)Tl{ta xb7p6>bc >"# [jW +R|]]]gfM"-hnzhB}~ZB:2[L{Bn_I6FoO4R95iCm{ڀʄv6$&f̻)Zw jZ)#D3 c&Xh6"tƬ0?L )kaYS NU'1C]hAk-4+Ș5wgN {&1e8Nja!srla̤>6ޯJ(ʑL&KRKR<$MJ*džQosa)Ӂs᧹oENgSuEhm|b˾2z~b)ÔZ_-~i\#xmJd:K\g9WՙuLy8~qJ~}ublvovJzE_M/֢fBo,gEy~CAk1\/0y +{& +?A5g)`>ajԨ@,JQ(+P)1d.1ʞaQ(ּ1Sb) %wW91TZ]χjD5 +ĀnCߪo>sy<p|+υR~9S/sRsC ˜!|C Eߑ={A a=A +P?P8^ + ,+wOAȸb C$-(' &#(/O F$()GDdF1\Pۍ 6m=6pFuDH\`0:!zp5Ly-7,Z`ylO}:L;v6 m^) 9,i2J1g<fd CG^9$6yQUI$I8}n 6a" sM"&u<{ tFv !n0W +Zt}3Їɷ +̮)_ktmrȳ[ ۸^-s.sλPtɬ:TlL=-mX:ˤ^m}jH +6.isܨ+zG?~1}|0 Q3M[:\<ع.?e3:ՓX:HAK먴E&N&ql`kU ؘ}!Y5iT@>? tوiU߆~s&SgHyi t` "ZD,rQ[V2{3N0z[{y +ۨ2y'+=U)߱"^:+#lG#Ba̛mF3}[ώruݰN" +U>mrbRU&8P4hn 3GE|TPQiq5ݴ>21Q8=errըVdqg4"M1 Z$)Jslfw0Rkzzrz|g#irೳ^NdY +4}r(XK2OYu>AM.V\V'ڙ0TcL'iqa R%%e>ڼW.AM:v1ІD F7iSQs>RqhmiK"GH#/3{]L+SY9Kt$ԖPJIw CKf_}D b[{}{)k# a}ntm~e +z fFW~yPl[O$˴Fkۯ{G!1 !+L/oVos~{h|ld)a1ʜ ]8djtaa臣*.*fdFfF3@xuL7h^+rW\r*{@nxWkoY IWUNsdV0}6,cC{ 'H u4-%E: bnNؘ 'f +Sg_5 ӀKs@abFn ֭j,bf+7 y~$ՀvgGuO@m{YZ KB'(kN%}b,,:gLiibV.u;|i>Sv=}o0U,%q$4Gn0)Lƞ +gЏbK)[ֈek[=Ň@";uC7FHL&mQ{TqI +DD {xX--`;zA8XZ +Eq,*Zs v9B>HX&:}Pj]%>Dg;Z e e92nX%:] +͉ + 7Ke +Z6]q3yj5- ()Ϩ0X$? !#Lz~v~+zfhs$ ^qN~'y{#r{2\yTFIh'^PKҏ)/YiIU݌urs;y}Hma!|i&?rr<1 O +ƐTXdq Iиh _^Oa,iT[З,OCf\Vvp*ĐI)ΌItPv721]j +OK;gC;~'g':ÚLܞ[Do9G$6G= ]v.Gۘ٣ Իuɷg u6ЁbׂXJf"yL0N3Qm@s.#v|6W{AmG4(82E C͜ev6 d'pi@dcBbd",$PK2 2͇ (srSy튿''hF}wW`f;ᑖ@0U{3]ID{a!\ZMi=/d3)_jfR^HIlLL񬔒YKn3EVCt( PHT k28&dEI17r'54.Ee;,K<ܭDAf-@4~fMu0ALtmF#F͉8ip?ccsfeZ]l +vY2!G[9MU PQ䥂Џ#M׍*Ci50X"*՚!U[!6;;h1ɑZ;Lۄ#;A8ĵ->Θ1}u(H#7w"A:Z?hK,]<yFVemRM=ۍ;cq tMtDcƹ~fM@1M&"Ts% < ;仝Crr"DֿbYm;5nHejb:nxPspon^3&N *5cUPBW \= _i7Š Cj \tZULp停^Txpw.21nc? v(Qwޝ8 vӪUԻV㦪Ylxha8򰎠x t-yhѷ*d­q~B:uMTip+cK.9=}e窺E)S|#}9#;cxDՄ +o6Z!í$PkkvTA1}%֦QQ:@ ܱF jWbѾ![/Z! cm4!dzL3@l:h4&7V nb4ķ ߹5xW*:X(\==t)Ln,f$Kgy&]!Lk*t(8*uⷷ?h$qh$ +S}#H%f]e/O qqWoA8Jh!g/>[^ SȌ0bHe'/L{n0%u][BZ|N-Y?:hMmtUA$x4w?.0}|Z{\w?qDTBqQt3H@uMqf)oVI–[X"C[IZ̸WFm;TJg*h9@cg'XئYW*Y6txXS .nce/o2 +ʲ(&46S/NK9*%a"!|e 8EW?JX 'PYhg"-2Ԡu6:"TԧXn* ؝VژTަֶ6pwm:Ϻ+ Ij.m8c&_tvtI9*yh+YuaX]J(m%lZTPU,ԚoX`DV C dfmE:&O:NUtޔ7OT.CYO(s?.cG_WxH/epEI^&bQ-6L83J> RGLBG4TמVE+THK2S~mWD +Q[Sd붫hVHdYo^PN:LttY8(1DӢNA+]<2Ӌ &P{QTv`S\%+Ks秱?@MqwLz}ɗ( f]m۶mo۶mm۶m۶m{_ܽ9"+j1#|ƨ.yp3A%#R4RU:IZɬE%*7S:# yA)ϡa,~<]cefܒ_ON ikᕪTz*#.O\!ArJxRBcPfݓφ/.)F8j)fzc%P^炮AuЄQ: +4zsρ wO4w:4D[3B𢂏d?lt!xvkɈF!NS ޅHc |o0H GLi6H"9{x~6IK8ϙ QF>I>(z? e}Q(LRvz2{G1ϑ Z~FW2%E|1nnx%r~ 'ҋ7mO9s~ϺrZ9-xcʙ9v\EjݞҖ\;5̾ yQ۷f3޺gK3F }+a+2oh>yԹ/8 9ZCA}n85?h7foNˣ%$]o|ܝkD@|H%OR&ONc#8q⛙7/:qSO҂ݢ7ߜݑS;7Uܓw/d|ı_BR?_Hke l(S(2Qt L`jBŚ:X)6ӷ Å+ _It4"oyb"AG;#`l B2Վ Q"p'w_8hBb!iYè%u* R/ GnGRڧ')[a-KBG"/G"B:,;Bڴ.'d2L  Bjd![[:B2#p $g.-$t02j).tDצ!tЌn%%(d)pBWC@/p4?:,$>qiO9I: `o֮0# !AI76^ yy* }m:uN׎{]RAPjF A \0 %H"S`h1&b|.tI<\i&#Dt⸮qb#[ +*(paLHRX_#.!V{Im0GB-?CIF<Ζ )k Bz=y&^հǁ!1ہd=j܏UZ@0o[r׆Bx}!?:==@ +CXk?4z{HzG߂0$\]&pIPy0#twj$|Dld:!*ͮp$·8De)!~W?HRn?_nE)Q)ne@8{0ݖV8Mq|:FCUD%C'N{Bw0XKXߍ {:.q__~zЌuoǻoƒ|Ö}.;)a OLN}Ԛ EGY*I,OT x+׌& ^H){~0 v+ !?y-tM^;.jy̏̏=9-M6zH%מ^`t$ З>&|1Bf0. +9*ivǂ^dEͫł>dAk!c5_Ă7ZPdAWwN6?DqIYdIcj/?Ms_Ã,w ^ Gl߇? s|n٫FjukH;dADMSs%a0UTs7Z3S>wtQ-ph 9i +#szA06P1E$L +ra6S +CW_^G`Ih>`'Jjqtw\yfC~BOhn \9eeP=}Ғ焩>AIοĒv6jƉˮ&Pn~  9(Mzj:ڶ_7)v'xc`hӡq>_vN\i_{o˂?8}e7}r6Y5}>4:=Ò;xVs:ȣu-#Ao9J1KbnQw>}KP Q}~ +hK[h~CXܰaYH=`^Ux* ^=pxpEa.FxXl>%-XuRQS]ԫ2ѬUq4JNޗ'H +4`f`M2P? [7PML@n +,6p.֧ ?Jt<N=P:Zbf?ȅ`M'P 6`u L de +$JN3p M(p vM7p n@yJM;p6`Bv4bVN1pOg-T3M!p6Po" ,,fп ;f{ݽ Գ?]|}?u3_nGx=b (ͯ9.9x^p0na35 +x,`$35bD}ƃ__Cpg($b{S-#yQWn_I6 g n~VqŌV߳^XtGV݉]_r@7*plp'Tg<N66Y7=3f~'6(^2O5XL|deV᯳]x }h6ZG9e7k̠!XX g<췜|1ia6?@͢6P&>.6]m%l1) s9[xP`i|Fo!I!DoEHo0 K3Ǧi10iS7&Fq n7,0T2D]weia,i]X|MTM92sHNԇ^E hI*gFѧS'q%?#A? +UzB8R*Aև"GHftYLL؏o䭍'My7HҾ5 ՐJ DA 9O yDƯ0@Ky;v OįiՐ/[+~S?`pL)(ه<\ +b"(ꐭa`pBtnɦ[U=4LzD IQ7cFܜx"gKzGk yΙ[=W0q$%aJʋC/ʭ@AøE]‹wM u?$bMZfaK+(i !%*5vRfz{ٔKQA[IQ>jTS$h +H>:Y F"3ԦiBτwfuWF§ /acb2lxD(=c|u1|x{_U-f̅Zh1j4ط@ +8ɶ=-g{V\6C%L/-tInsj_h'wg%-NcN_A-Hd;?$|gWMٹP5Kn_o^c>񖆷rI~y00aua7%b?p} +e a~` di5,(C\?( :9|ꉛxa퍩qجSꃽ`nRa[2Xw1VȨWOd@`* @yC%vVٲ3 %印̇1rژO8uvz>^\JgНf;c Our~7eC?[Du +6D ,\dJ8CR,’ DAvXs5nr A΅PTI*T!uj +*};䒰S?xb?ÓU?o.'O8j0!Gz4+FZQMnʥ&-*ob!;1LۙenLJ)fݞ?P}N`mL)2uh020EcuV`/j`n"_YEnB^xR3!B`!=@>>t |fIQ]gb9vnlIѠjA{>?)_َ ~ >VާIa^%ϓN{0Ku*cWf"X"eryl%)#)h=Q/"l-W$"`1[yfelMQTe1oNyF=QŶ_-RC:D-~WV{:`1x`p=,]*b铊XalK{.fB%[nVo!Y NsgX~7f5U0`DqJzc3\× EXTlKcȆ4&5.| ccR M? ")-y^ha.HfyKw| `̊`"M_~u8LY`HS0QypљRuWza^ 'Hn2s>0r>XOX Uk3oq5؏ +n1> {*򚄝>ІOB< Dqxgrws"_aLnU5jo]8X?Թ$xl*/)۝bh}e7XmPEl+ ·RJ< k"٩yt |Gޑz*yFX0>5%E &Z&ZD\_FB@n2E4BN(nU5?Ĩ &iTXZhRtM:4E<\'K= ",9hs +HfLjS*$bPmE*T>m^[  + + +EA$(1:%1]aaSV: gcVǍ'$--d:Sog׫Og]OW!7nA3h5uSLu=\UaFe]M]^ˆ_4^48€p +pC9V.iP}r{PdwwZpiۖjY|-X3uw7RO-vROX9LΚPQTiߖ"rFހ4Q})=TۼtH%g|){[֪}wՏڳ߀J8۷[0N ^R:2k)Ո4 #,Ujxɻl>2C6NONș>€8H_%)YOy^@l Ӷ~vאv +aykIs}{]N -]?{`)K!*ؽ5,ţ ~o!6{82=D dzag-h%f t0M =7`36] Xw}d#9] )M!addcQ}j>j1~}F.FӒZtG4kFzˠiӖ` 8 So*40-ݮ64aɢԈt$eHro捐rOx kr~"qjДK6^.Dj=VZv eWQb{`Ő i2s;Y2F hD=Z=.ƓCIl޹fym9xLt1. Otw8WB%=/&_OEW[[Qb`>\/.f)m^6ȴ᧨ idc;NVꄺ>l3qJf +ɬhv<LJTObUmL]Ryz:[|7n0ȏc$N;=K%/$ҕE@_#R{**S1"[B d ,vʾ,RRB@R@l^j-z-Z-^~U^a~~~-L+Xu:a5(::nKwnKKOʏrKwK7vKKgE^9Sǀ,Ph44uCFuCD"]#g(VsыK,:t2j%*皕\=;J.JjKJK.=dV2jFYu2Yt.Yue@70$NY;BD皩W) 싃$ARAi%pS[mTv_Q'Hӫ5]ۄ +a!~PЀԵ!D,hB #q zh#ۄ &UIE|h"ֈHEr1&0 +,:ISYu,ҍ&4unТvyᲨJ$~Խ?<4Qy(v&&|)&$pX$d/R%ʅ5U ]ZpsyQ;%q|̡Xj!>Y[G7Ֆ`1AcI־dV>dWB|\|8}sS#3-nDPc%[UfXlɺdMN|GIp6Uj#''1X)b/+3#{ic"R6f.FJI7Z¨H$yܩ,^p +s<9s9ɝLe 9tNW}y$OWt Lտ,r()3~:*Yf/hFL +=֣ BtewGu3V9./#B$܀$5yWn`IBH+c5OGAӲ +y~`1 d27 !S:p)\=WҘf;E*(#*gչ<3v$s{}l?TUpW7Nyu3d% XZځ̉'ݎˑxM*\A@prP%> {H, ĥkN*IR^ȜLF' /V!oy41a>6IK2 ]34kyk+W]\K@:ΕȲ3-x}z]Ⱦct]f%,c$cwnG#۷Ds7+CrNQw rȑ~i@9۬!Q#ܒ:&?1Fbuu_;Ѷ(Szfp,>M|!3ZBqLDdj!]qP_X t-SHDgÞCGU +.SQIm=;Fd{8(]BFt. +6V13~h#bChcș3D=$BA)dܠD- u +?6C0_9|Щ߰v'Gb-E\51,oD"=a{CJ>b-􋕰YF9K%xSXM02 Md*!>,@@ QKIJ#CSpPHhu{XyD7T|$c[}={{MbZ:@ 6 +TatÑpZ֍ehu .U.A;q).1ƶ0/&=_p^)6N&TUåxY*2{)JUn+9Zmenk#en!gPN c{2\jp(S8$o-nTCko +pR&6=D ~{a;c&Qq͠؍@ؘv\-zor+\;sop^.Q6TIMt _;'$.:6)4>k&K6%k0oK$I/ONjMv >q^#D:#z,oMFxP+̇kENElA_kFzn i&CkAV#@Gx!})'lёŀT<+,|Xܮ0.QS~N"#VF@[[Q)̠zl(uxxh,m]Yڬ1 #"#AĂimq{8C_Qs"CdNaQ,S8KVz38+☢_ZCMVȶpbUHJ4c01xlub-j&L n"FJRBvϮeJ$;M'U*NPد_XK#v ]1vr}oVk)tu^xk%\/;~=2lDMiz\&qb-!uwJGSU񋑝ΎjQs͙rGAhBB +qf%oC4V9SeE͊ üeX]jw6į2fA!8TVj*1dFpwbNʶ\3sS,\ޓF케'>m)_aB=G]qG)++yV3%! btЀl&2r.pZNKVdPsP?W(BA!2Uټ.x.TXՁ;_9DZqb*i>|Vw* +727 |K!p07LYog*TUxtEU@܃;%t{.|3LٓV誮l7*oxYS0lc5Oh[hn>U˖-R~'aտ*_4ER[.'MUɣ]Vܯ1;vTU1>V8F)[ЎWg_Ja:wag*@1i[d=Yv;*̟r=㉪U@@u w +>7Eq҅,趰#WoTH-B+ k Tu !1%`6G(U󙜧@-UЌii um}!qn8|k ICޓ87q#?m+E=ˆܛWԆۛ_ܒ`?hCh v/9*nB5; `nGӪ^ޣD_fj ejj.Q^-\sbϖwJ_:JܧSש -&w6!-|j%`_ +,di4jl9'ϕO^ xIoϵ`+@\rWJpּxMkO%҉ŒRjNJY03Vs7V38%.V3\fhPJ\/?4\މŀ,tRʷ`3֤^lxT^/uĻvAncjhxxQUߕ W\ /5' w].+((w"2UsۜuWpGqG֛8wVؕ1~[ Nu+]_>o#bs} # ؇'=0_8!O aڬS\>ń)d;-][x]{@_ڻ//_s/,/ 2ĉm6FFYcXz"FpvSQ\?}?WFG<rOG~:{\SGtC{6FB LעZa:&sg߄jfmĕ+s|_׉7Ws5=\ߝxy>ױ,f{xo4z\+*)B=IY, kNkNQZKYIB6>>>KHJaoJimJҜ+ M!e^| gN M!g xHI Ȟ?u qf~W<܆HE+ +9g(`AM+ +}Ռ!cru DE;_݄y?_ӄ1ycQc@j>:`p&E¹aBM9 SJ_bNz4t{|cwKXX%9p@.VW^udb8'˴|^a,ycX FEc)E-cLh4`aVaSpy:vuas+9/G/q_#rn`Åsҫ_͢/D%}MaW[u#c3࿌a'b1K7+ nuFR l߻rgˊ73kܳ&! ld_GwE4[[g p457lLC%FG֋-Y׳r#?ɚ(f ofәlnqG`!4?= k}y qS}(U.7Xڈ7kTZ͖^n)_;N7[_=^dxŘOm%"<ra^CD?ZCD9]azCDH aj]T"]79ODvRCv"_3"?;;hRv^ikgD|X+>sP g6+%4tJcU8JQ +oA6188Hgn%-ʅ|7T-Mڨ8cM"4#%#֨o؝ +t\Ґ΄{;bb[Pۖmܞ]Ʌ\K&'Wď9Y4-us㮆+Jw;ɳL䑞5,4eљ,|UQA3-\NmUڊ>*m]-lМSΒ &&KY5r1!G#X +Cl 6|PA~΄ui0rmFJH9W2>`"cIn*2q2 @fjUMq"в9B,CMtO\I@!eOnۨ8a&7r<M N?T NF:SnyV2,d`>{[gaSy!l]nNcO6e֨ HpnjZAITΑؾj7q:tѮzJ΀*gxZz?iFfIïD,׌&;4!-Jm?pd!oD,]MYq +e^$s%bw?!S0}!Qv(a]_VIGMrGA h') 8B%e%!TRyo;;]ۊۖPӓ"y>gԍg}w]NB +E rS$m!}^YΌq|.d(]%̘-0 Y߲˿V"<*qq15HH,$ )j84(E\r/^*zX `*c޷ܸ]ںwVԬUlRAܹ]o(PlbLnC^)3h(QoH1R0< Yա ,Q8@HXY85ZI~ATnFGMS.?(ֵ} 4҇=H۹; =ܐ.`/̑z`6Y{X=aQճOu6-qqqVغobL-66>c; 54'!P5'QBwp፬/x#Aq}ly[/4; qB=͜6y#47dq TN'Oty>[#&b>J"۟G&Jm k˯-c6t#H> Fl?yo$;[b(riבT`P R +Ƀ,/UD^lWW*c|`GI\|e>tW/"-^/DkV=c0^㶏qZ DLk7l7Eڽ_uĝݵFrMc*:ƣ b{\*Jf\<*c4SZc2it>a8ò´¶qBQ1r-_*G. AS+ZS@4;B)ڱ f1B˨g *PC̋nF2T@E)5mB茹B~ؚ`D)9h-݉f>bKCѷT=%Nӓ9ZiAECC>94 +yp +>׶]eZSBnuMSҹ]"akl"V95ˢQz8xGhVXxSx ^aQOxenJE t 65ru^i8"uP9,)#f8##vrqkCctS`7t'?W_}Ai3ug^0;o &L霊l%&_|V/h+G\v3W\Pζ 3ö=>OnG&d3+9SHM@Pܤ7n@hoꗔgbnamH)OI9ܭE Jw&O 9& +he!߹ gԄ1dsђ}m+*shMb:^Iټ*,*sW`*FvhX?CUR;ZIݤL +#+ҩFI3K#/tsϚ3M~`oRx?c|ӵGn@b]>.sg?uS]L|~Ź%d1dTKW *ہ+UΟ,alRv7QE vXĜڶ6f 5EquL:O.hO+m c*v-k[U"^Hi"8scѢ˻JʥR*ߩeMQ".@fNeDXY^nFdN͢F%ζ#mlP" -yp\gǤG^̛iܶd¶یm96| zU|$'o\?7k3K %Or#t픥Z29iZ[#xbmaRs= 7pG;' ⍧$Md@ߧ8 : b<~$MGu"ف۱ d|51xwLLܳw5Tq0^&tjZb@ Y'f95^B)+0*-7M`j^rƷ2?w;߇aZ*yy԰}û0إ d5XTP^gB7}Y.[e\z!UuSL¡O@(6Q+l5s#^$gpqrbZؼ8=ȧ#WӅzE bHbNXY0lLі}Z }K4“%J=I`?5cAk`Nn4Kl{9,HמL;Oۦ0]sY̖kD Sb3V;MD: #$,-iҁq7ZA-#<0jCz1/2`b}4zPx-Xdk hcKLؼ:ά֦H<鎒+d[ql!ٞkӟg.{"o>N?n̸Lv&|+E<,R9)!N^"Y˖ĬmAOqIUpes"rhei?U&mϞA0)gKlfկT+W[s#p8vdP6V?P!,͔$ݠ;& ;!bB2.GJM˓`J!,Z{9,Zz= +=G_8V:^ +hEg?A 1f>LB C#9u+Fp%%G'FZ!#ZKLO=BOB;|Wrv_+wp'jPumARjbΈUqtkD>ƲYtxeN"dV5ɞ?; Ì۪F|zo0|nM10u_#nup6?R3U^ qb"mWdxʘǨV+ -{OO^gn NBmv s,97Y4ֈۣۮ7յ5ߋ q ;b8k{훵4#7RNV h^87Hpef  +197$J@TyBC\|Gf*LԺUC%07j$2Hsy~{!ЧHQHCU3'lQKIO6Ca;L4M(A2tD^~< A'XZ3}pV5S)Úd[WS`@#:NJܗIDK7!2d|7Y{e77 TwաUu]uǤc-Vs|cW?vJ1lNEі'8q燰FAݖIU*MFڎ΢hef(ӇVIy潲""}r`;V, @hxFn)#F,85/ # QSo@{'k,F +!`3b!1 ۄ(믫P&HKoZŲTkY@g&I\Y-T$Hm\vL.J-l|ϾGXɝrnyvrY<퓅 +p'GŁ3+;D, ?f΅kĀ)P?ER?vǑ;7ۓ+ދ<腾K[)G-9$2SK߷ +a!1K@QcGF {Oq5##cHSK.YOT'wG/oZ%o(o^g*ʗo`.ejMzZڜFP/?4Ԗ!spV¼6] +q3X{* R:6>%F3iWax9UF4%\Ύ3Si8>A" k[ JS 8c`9fBzPNnzpur)ׇawLξC_-QãawA*bk@]ְ{uV&R9NDmli2gmgE8;"H ;I3lPel(.fی.do"LTS$gr_/ܽ aKr[E.` *[y1 R[ E%ތцKfGmk"uX܅5!( +y9uN^yӜS kY2+&sl)n(m>ŴFMoo]]7@3FrM|qaM)t`c7zj( -5s.yS8"#ۿt> J"LjȋtetqX̙ qp].G6AƏp>+:Q +KGMǗF=5 +CB]ְYݍI`i,6@~>)!zfQ٢$|ᰕlzRX$áma%wJPmyי$1l@;Dz|AfEQk\]B7{-;wHcb45 gvW;9(yh Ow.$3WnKQ*=סX c|QhcK&@Mi_?쯴)a}&kũ v{מ(&jhri<)ZޅFsyG]КQ;sY1] ދ \Y{[f2K$-\iUdǜUrHʶ$}zI9@нG U@=J#7 }J/4j##FHբDDٙ~$VubY h@EըcK9zbkYB6۾']!Sخ!beЈ]D +H`񠙯{]YiN[ҋ*1GOL>k~zZwI_E;-kJ\ﰫxu 1M%=?RuyL`ɓ;[C'_[BՑ7,Bުm:5$/0knypz3x"R]XĨ"c麟w$`>ix]au7 MNL%4UͲ؍wܤf{ GڅavԯM^݄awNDq؛wnf7f .wƫ5x+ +cKhSjN'?UB?tL4~"`duA,-љ:2P !/M^ +D]>YgFNII^C9󔢺#xu9ZUUGU~?Z~-}o?=?O\W冬C&tdH@AѬl,].iN_@T"l?!+c:MrDGI_#uJ @mt6z#V'>1m>{ ҴM*lB.S5x9KuzrOmv`m3f: +(*&``ء +2Ɵqv/Dj[ wDsajKTCA:&.44 +\Ào7MW%ifv{̔SisT5:A!ɯ +K,7~Kq9&9;5| z53:dyQX.+v Q'^P%X0Vc 8ӜHy0Wm Hj.*h,e/W2d +L+sŤp&ʑy/cԩy#"SXCjښRvfN죋ף M2$QڷdM˝9B Z&t۾> ;@E&܍pF 66p)9sH- +Xn8q.Md/9Rsnj$N0O[,]2[nS} oz.= ׈dR8tvOg&^`D[2#;y\7Fλ.E/X;1N^ -EץptcQ复sĀS @{QKO .(0)&/K{E )bf@NK^xpP~WTZ* )]I+XA G$yȞgD [؊/ƓG +xiuqHCQ7C>yj=0 ]s!SCHֆ?SKDŽC\ɳcx/䟐5\758/[XC*겎jbTIANGrҐ#qɣeC9H&Ah郐&#I(.a}52]bAaX?LxB!i%@Y~t,*Vץֱ"iCs;v{]ld/)34rp4-~_)̓QoȐohP.R}~ +̸i9Ԧ5.btGtL + b԰5%bp,Rk)YAϿ[,9qLGaj+xń$,}X<3{'5öC3VUOCM7aIפ|ܢHT,|h]vy#c6ŏzFUɐxA;=*fY,<  N[[&/wJs<-!p7:zٓ_7N&Os7M%O(P]8iӠ^Y5Xh4EDт瑠tRHBd  ;(3ɡɳӇ>qPV@ +_Clᴰ"iNX蟶#&v@.&S-$/067W T% ӟ7-Z\ɓ'U  #fkNn,IC;9:ߔsv\ mȹtU} {`g*9i9.ә~AK8Hl2.PlzsO[KCIlzgAE&9.ầbHkvmc%f;CPuqH^?l] j*!J`#:=PD-r= 1b :381L 6lcC = *cAe<*e2656/C0N4L‰vsD*ި:A{ME~jFC mLQ% J.VR$F+k,QaF%۝__1-TćDggb^H3}lbAf4M :pE SX;&$}ޚq$}sڋ* }Lj(U6!7K?ݾ +&}|_x +*V@U%Y;~f(b)T#^q~ "FBAǰ" mR|À0mM:f~Ro^0^r+2XJ ״@0"2jp[x-~ +o~q NΏm;&Rh**@vRomL$lLAR z6 >=N U +t^6cϛ(ä[ +ֲj+A l^DYb B.l#6OiYbwC5 "4l%4IOxi%0A!M= JP)HOF{[ ?7z략g3dKWl`gj׃na3Z=- <(UCVs l{ Es:Ğ'Jm7Ќs!NxĜb5~s'ume^/ W:CIKfzhXqOæZ"7'vUk=wEǚ)|@- n^WÓ\Fuxq7ElX},Bo"Z[< '=b-R-bejƽGrYw.ŏ_7c=rAX{sʦ +moE]__ZS)Mzh.4Vh ]F,SHSxSMzQZkL^"^2^¬^Ҹ^^r[,~:~ +~"~7 =^^ĂƢ_}_ _".1~*wiX\/nlzt)Lu!M3djKIp ;DBg!pVSdJo*dkw P%[Tw[ژU'&I {ߊA&AE9;%KWV%6fgq/'$рlXSY B&J^*&hj;TE*p5s@6ɮjլ^¼m!3w6{]R>9,u.#l4Hq[H5@05v?dDxLbT +NoUcQvH9ZDSR.%C]ct=NPl[$4"O@ff!>1GQO_mJTD){r~~=s]sHZ[t~'ڽν@KkMgS +"k$PKHDP؅aQsOɂ!2!bd!-t:(- nPS"0@9. EJ)Q%kIYsn|y9Kž?vw˫ba;0i`٭X˄þXYi3+zф:/)ԕ4͒az6؊nÕx" 0+;$GuW{L~ۍ4GY{`|r=Î;py(SqWtKjCe -?|Kኰ3 Fk45?lQYZ[%흤iƫ.5=7ߘkn;cv({('쉘jO5gDIz`i`_&L;퍯Dy+jt|/L0u!$~"ǻ`\T4mYD*tq&ҜjvZiS%P; \ ̨S Xo.Mh| +Z;P٭7M°>`{FNDLq-{ Zr}X;6fN;ί7V^s-=CO-{P:잣K^Vb쟹38ĺi.kw2{egԖ1?1tqiM/aL`Rk{*7Nzj;V|:+}j%vxw%CGGc㇐94SPTY:[dS̀ݵ}Nو_ܜj̾Eע׋ ўl7}Ib|ddÐC4>0!2TAz +Ne ! +0V2XrX)oYC\:LmWqĆ:fW.\:Om:n#mWG:nIӆDxE3c,L6%4y1?|dlhb,llnYR$JZET٪Z*(:n7SO-DO{`G).E}M};3[ba DM TPE$1kA?o 1_[_,^>/fͫ6^Z'"^{bqvefqڞ*UI/2](vRMj|/MzHOH\&Cdm{2J!Ed6GlPn0nHXH'٢dGU 5z[yݱ&Jf w&EtB:sfK ɲؐSs]$MSL 66שկCAg\Z40+,wY]MLR]nhKĦ{3"LE-4ƳL ogјAO*qq;EkbH`Qf4$)g06KL)'c7Kd)l:H.ܔ[vG_Jbwkş\R,Sg%QgŸNv14ʦ_o<ϋ;4 " Nt[3{HfXd20t &q +I)B0;bL2OBS qУZf11C2ӅmR$ )̭|)x15&L +B ƍs_nj""C>n%l1T$<`J%noLnU^5bP L^'V +N?A5A6Q8mp +쥨S\`e*m$ ps&f5;Vrsx,9HS1'tLW +&C2-moSuuo[ r*_đ=i*:.\ +gߑAΆߠGΉ>y`[e ԚCk".A8A{DJImDZWB +([{>x2gOCȃΣ(`[P{Z6!7A[lĽR6.AS[pcr_:c4gDo:Q,2 (%`W K#"M!eEI5$W&ԅ 4n>T sn Ur!֖hs/# ˬ/1EXe[+Z1zc[0,Ny[DL2`2ea9:Aa5uC@ov|ԬhlB9S;44>h34M N]|{j+.yu 'mrv8Q+i:3~9gmvcTV3pѦiYYQ5 +Y_VOvu>OmF +sḸ +XA)ovTUNVJ^bςtFYIMr~qNH5VAL@w' 69ތ}Fvqv͞~V;ΠJwpUqQqYuT=N=l_R"M()`$վ8a!h#(Qo&lro!q")ӮIX=Dʠa=,oC +.dKTkLo\)0'K6u{/jB"`!*!.P<28#VVO5l\$C=~Z>g#K58w<ҿ:;LzhMl0!w/O[(@BZqFC3~n7(&͞KjeN&kKq*לuݶ2iΨwtEĮG:YdM:I`$)Qpd)QqdU x)"D.$ )K6&apdjq&I +U#+Iެw.+q9!7q]bL[t+qO?q:^ue(?ve դFWfD|]<\If yLy:;0me%VTIO겑$myeBEU +YwB}qLޱLYwr:q,}6k^9%0[(ޅ9jK )= sK3:H늭vJM +δ9L^m?vfG؟tͺtKKXڿC{"fePUUVU')"8b\lX_V +, \ {eAS` fp5# -xnCIVuNTJn/r@ZMN#Gi@{)=C[VUà|fB vEK"`ySE8E(o ,٢yo-s1UM~]V|M|e$+U[!XL +5e2gZ»BE:ӥ";&k/ɑ:=ODލ$#fVPմ+!s@o̎r܍\Į?y])֭w~K͵ " 2mKdk/>a'59MΚ}-ii[}%.\דk5(-6r|=){2t55|wo?p9?6u@&I)d^c`#5$ JpLA᝿)8}TD&X4S0wƳHW7U֯Bcp Ue +֟I:$SM* Ω-EBtdfenɨO\:,$$uЛDR(ѠA-1I,\BzxEQV1C#2]3e+9~àMHڦʵ7uMv^fK=hV!Cw'czT;@! iث+cSSKs]z NtPގAɛ1"!G{!fxl6k\#hc_k5R,|k܋>)^_aG h8oGD1/M Hgo3fZ-"(3OW||޽[$M𞾥۠V_17TF:q+UVܿ2G9G{y;ǣs*I=X2,4NŇhz#f"9$_aqƭ*˾.%)ؗO'<^[WGf^'/ +Y(PȤJĘRAR*Ia"F<i[72Djߛ=ruw̷C7ۣ7 "тP+ ΢f'O3iYT#=фEO\p3 a q3M퍛MM?<) +lp@%SZ֍M5%Ra)Es!9SzaoE֨6/ +OJҸJ[±kTftGYGNO + H:&2>&t ,-Q/XF#҈DsuB0;Cl(kWqHϝsV >3h:R.i X!.+F-8<ʖ,JB%E4;{UoR'Jv7 Q1*<߲m~wD4_v]Ds3BԸMMM1sY_x4 +?SMqKgQI:? +@6Z#7l)[>g.gJ+Ns $%jL %<航 x0'蒴 .U;`_ǝ#,?߮Yd`fmD1O͛[l;miˠUxj77\C6T}K@4b +۽OkkC{˝0fVV]Mکa̅SC,-P;SȨ@gLǧ/{˃Rh%95A]~ʯxźHV +fJ\Z]L(`,2CH. #`+} Qq0ZWXɉeqWыFߑR؎Vٗ[d4Ց6ǻp"s* =+|z.Cv\jyqZ/oG|+q׿ԕjQқZva }&ق qر0=/VB?/0#Dl"#f"2YE{$hJ6ϹaܡF=Hw)))gh^˖"y[2q!*kx~IzX>wR^Qfuu3$ 􍘢uMd DX0Qۀ:ҿ{:6'g wbMScA7cT);(8\BsӻD{m.mq=,-4V us&)wF~}SCrgB uElAU1л^CS Y_zQ:S«?hvlCUÈϤn?v񱊛+++I.%zDOE= zkPNjZFDR޲BEKZCS1(7&B/2VU )܂ kvmu~T3ZU1 vyusAS+OUwwKKuHaRVazW9ñ0P*h&Mzt߃Tp½3P[>߁U +7VYȐdRyb?Wi܉qrw{e"y]<^eqv8Xx`BO$4'tcu;4Dd~)u<*A L+B#`Llh}cÆ+;R@7J! +Q&c.] +Il;*G[=> $^JN]$-5G;Mڅ~;%5=01U0Ԯ,˩'&3y`pDtL&I&=Is G =n<Ёז 5ךo՗U-ɎMDU6͙ڗG6MŸs/Ж+7y.:Mx+7fg:grB'tH +O6VF8ÔD-ZTg밌Td* I4Z HG>!tZbtA=FRQh©BHLD}'rΕ/mCqg|vMW |[;YBV DM崘K)Yyx&-*aSْ6,(<ʘ%ר–Kf%WD3fTYeK|I#Hy140PD}$wddͤ&J8z0<4.T-uSa) +*vvUk<}dĵk֢@2dG=.$Sҏ.zW>杣.Izۂu2djf>GdƺrVa72T֔Zǣ:蜅㞧*xHjn`*Q)$lv¹ccTQdxG PլiXf,+,fj`fzB :Ĺ{ 2eʵJ96P.gM \:fs1df>2Fgb?ef~ry<綱+G  +9r.F\:|r9tD&IP%rP͏7#C<'~Y8TY9X.bܹ̔F=!q ̄e-$~ .=5&3IcjR5;|yG@a|/BQЍ'm ?'ThOS/ pxKOyz[[^˄Ůמ(~y{uTgGo7Be97<.(D7KN vMx 3h2:P!? + +`dc/5*=NкjSvT_d +Uz6h'oq]9O~]:"wx-9gn.u[Vn[V+/?NoP>.mL0({*n/{?m7x'vgσRaA[OmG zPԟ&y7βMJmּMy7Nĥm [0޼Uy7Nܥom ?۵n[x.^;Α?$eٳ + pln@so|.Rj9|_:p.n:Go:p.ظ7op:q.t˼Vo\rh]ʴ.[mㅶ!\lʱ{+V%炌s\=?s)- +{"j~Kr! dZ)a#5 +Fu v0#Q t +7.9.Y(/ꐔFyzkfɷhڴN[kfkFmk:nuI:: +qo+jr^ַ@u37}֩vz]v|3;KV +il35dQI~ʊ@(:OnFy pkߊg C pշ s' neǍqG%s p F {W +؅ 3 pw ޛߖuOMpshQqO0T=^s~oe}'%'}:x UsGw5x+$յsxI%]Ν)^2h0쩿ڞ? =2b\c }y/\X\0cYvwi8]5`hsï~FZot-ZE0$D+kَTׂZN오s;J+fjK:v2NB$ X|*nbdt"ERt(Avuky=bLܪZ5P~{!+S t>W*b_dS1C},Z絸=3 ]LU|>EF$£ r lS"v7! f^\OkG"R&>d5HL@QD?lБ0m}DMT^#3jį#b̂ݷw*}$)ߪ#6pl$}[GNEB@)mFH0jEBG9 L*@w5q6WqE`-'BSC, PY_Jq@RE"4^ʋu2;l}pdD#+㿸"B*b:nr*Mf1tItT뷰EG|Hc6%bœS$*` "1]jK6#hŋƘ69JÍO >@aNJI E4/OĄ3%gEw$`lIQ`nts91K>>\sЂٙyu_˲‚J԰r,&/V|.e9ΙX6t?N;xx3)$n5ro7ijB:hlH_ ʐ&t$=:@l|&OAgnAQ-(>' v)Sx9*"S,Ъ0DܔxV/yFj PΑPlL`$s=Q,]yu=}ދ!xF #p8 f8jTZ8i[--/ʟ,s_[j$LXVCp[z%];dή$VT78Ts֤m k^s$F:C~<c\vyKZǎ nzU${NK >?qg3%׸mTDf!UbIc3 ڑc^u #iYGS4J+axWK.M*ۗ`RST-CIˇNH/%CFE0vL%C)+PgVL`eH2#1)cfϜt(S?Pܯllڋq0, *~C 3'RYX%~ZӆZy쐲kҧmt*&e.]A\Lp@i% 2O\tuu/>;||?;~6n_U79:u+_13s1 %D_^DYNk2S-3\n +;# sװEnd}դb*\Aa(a3Exf7Iv!ݜc;zK۶a $MnSIY,lR xȹe?Ls|k_Н14%LmS]/9e=iMկ|!D3Ԕ4iu*ngb#BElbaM`{fFAJZѺ*Ydo'WY +iqa:ѺJ}ðF~h`l~6v?;s 0ZzR~ji4wk 㡊dDƭ,&h4hUe+85XMiBD-t DHʍe˔e);KTed`14y;=DZ*VݽuGi?"C[Rm6*4;,SZs8gTݴ\*N7Rř販ͦr; 1#"ڸwSNc޳wNLep踨3GO)ekMP&;WInijnbWx|DO[$2]?ޞ>HFmXE`sf ;0uH8]$ 3⹏ӷJ:٤c>mP'릤a6D#U{bag+I?;);( +Zf"*yOK7I\x#Cgc"6(>=<Ȁ|cM;-5xay`=Q$,Xy;-Tb/0&-^ +T6-bŹrMSaiqrh9>堹L;猍b%QUM PH)"/HhCNVN~\FR΋ȒCϡN(;s֌%SAXSvM̀J:T1o}PBHHǹr Ě@)Lqo_JV<1C #Ţ)IVPP֠t=6Hnuÿ`l?MlC4¼CSj\8XJK"Rt—ՅY#S`t'm@Sޖs^2eUi5Цyhy&Cd?L׳ +&0+O#}lі#ąQҜ6cEርY +Cc+O`ÜU8]mb]0SC1H6e + >c_l0.}/ kOn7V71p+Bcf̦.MM.x(R梤F}Y0ai}:R``+"8/aע7lڢ6PsmvFzoS$|yw& )ۂ6#8]t$ jDh&`Θ!A11$@ ۓX)FWT쟰Jo)ńW]lyRsjDӰ7Ģ Cb"~@DSrMDoE ,@V:cZF"^ݖ#(4xL&>xv~iƨd鎪D̖bP^t'D:taM;1V)OiL%H|{1|;wko{U |F|czא"rg5O%eDG~ƌkm/,@ӛs*>zɽkU ñ -OYXZZ0/߯͞ɍ$,DZ#C ID99ɺC!KłDʓߋ;T 98 Vpep /EߊUlncPI.ܳtxila]~Z#n&y]9;7ۢ,8(44Pui5a=$i͑I77Uckr DTA^jX;m Z.vs=#]{"b@I)𞒐OgL"73bօ#R΁ %{DۻM[һ͙5M[9w2buhT )@I"\ނ/*|`QܻkhT̻vȌ^Ch4m 1#|R yEEg4U"ZER4fU:hy&Î%;p_%JSҊe;pb_vE:e;hz"㎘U=hxZ;}[)߯ { fY"4b_O͊ZrJ?)-YhρCM>$H%ּwwA}"iNHBSd̏콀*QL+T@ k?E6nP/BN\0>eA<'0D ,( N&9=F|٤όT]ZN]Y *ICEC-Mx`.bM.,V,U-VWiI +jܣaX#oډZ%&t޻7M#Ζ. Rfq~ɃlP,P-SJd㽏Z%שw%R8 GjNgXԜv6'zJfe7n&y_My+`5jc_ 6s?ɂJ67$W?$by)Y]@,Q=JKPwpWэ1-ЫM + I´dʁ:Qս *GWcW^M"ƅ< zM(QLq 1a c+{^U+Q3C .!n`M46WS"Rh`{n<n8ܐ)I;@~rVK΢FKHjμLRL6^ض$i2U89_B]hhloLv+њ8oUt5+^yێ |XN=}۲k]Ue{x}bt?y/ Mm{|(ck!R]}Hz 8ktT>IUw 'ęĄZ|xy[~x}5eO5zb{w_5xE712ۓf6³t'[5 q>=Z5ւ)ÙN}uJ(/sYWZ'dwu^B垒 cs'!&qxZGϩˤtzi` ԓ|+[j= ["0rwٶyΊǨ Fϑ`_Ô dQҼu#G!Dk_?b&KZ0>Ϥg\#$!LްJ`%k}048Bpr0{8&)50(hhHCr~h;a1׋~r#AY/Xг-d% _sOoJ,Ȝ[>4^zv"V1HMm=H:tSM_Ėı^MUVy0u`RXNm$#]+m'ڜ3ٽGvn%.>#-^8:gp@vHS2a犭 aa@2.8nJ\oʽ1T< 1=Udg뼙 />0qX%HCgAFYt+ ơl+F/)WkVjCOWj\(%,QʿSDh91\KfUrs0 $$4.nbItœtTRQQ#,K5?cxUlܐEP|C]XR$6} $dK2I֧׭E|#{Qx|#;8}g_rһ~O4&Қںj°=&V,2} $o34U[ƶ{"O@2Xx:_:(V0+kϟoJmj̷a7d66t$̔Z=g**OBs.3gR[x=m@oT])F(z+jra{d2f/PRbQxcZ3ӆ[,1jBk2v\$/B1rK]Lv#Ւ2xԙ| ");mU2&û` epWt9DZLvx+³]7Ggh_ymh1`$KWUyUf+h'٢ӃB vZqBH!^?`KdX5+U%8 +z,<'Yz[ָH-^< 9Ikmj\&Ŕ؉7u8ț׽";/\a\ԲJ8 g9ճ8}P}7cDC/;H}p@3qve-4Y_Q4i@- WI㪯^S4=Ė8%UE!4]a< +]#ؕ~;L٨cw@C 4"n2ArPsYw@V93hSeTfy1LM---L7rdm-́`T`3UEU[\p(_q-֤_2vF3eO5RN;<K6 ah z[l<7þC Ihp)@>Fğ*7N"~LĚP>;Gqv?!AkgVҋOwLfw.Uj88[e/)b%LZĨ3 ]u[ lLc7D>OO$nx%?auS\eLWcf6ʓ kXT*.UYL-PRPIm[(x36M.B~0YRKͫL߰y+ [{>R%D|+ڬP3QL,3AL!|YjsYFT|br,1Jvrۧ]:f9pO X2Me&}TE뀡|VA +l}~BxI0J:EZQ?HCRbi'3Mz$'Urb +dI:<1kpP7ĶF%Đ\>/n/;߯ݛ oB g 3_M=vE)upkwUi'Y'"J} +,B5撂a\BiQxDzhaHW]eFjNF5有=\W]&s^GŎ -7 %w>'ڴU4Z<2YrULiPA,r]*6K`ds$Q(ZOtZ/(@ 6LNuyYZ黏LT~8g܇?B[ٯ0߰zdBJ0|&Zw qG{b̦ٸn!ܔ2 7"b1h3eԝ<]h3)_ |2ܑ,8,SnJ8rZML&?sG\EiL>]5eȿ@!6| TBozPk- 0ƺm9p@ C:PmB? S`uM>,>jp_0zYntvO&,+Q0ѴkG2[%75Ŕr)-'? r!D6Ly3uOSߌeXZ϶}$'~ƌfT,+u1/7/d>xz:w:S=/YP=I>wUDZvxp4hHuL.MjW(,^o^y\~rLM[|`:ԫ8]Lfjz/z8 'M(DS 0 Za̯2zY5\KP1*Y-( +BuP[feHTy@ǚvٳV?hOY^ +6Ωx˞k!e|n-28:n>ʧ6IZFBb<-6bb w@uq{T9.{!yY0-?qSumƕ_T_ O= 9j4?Pp/yCH% + +_DÐn}{ƀ/V;w,A߷ODa@"t#̺PUꎙ6,Q3<7I.]l!}zf ?RN&\ڸ$k-.4|mEn0B,qJS_ULEϲ?S=}s4Tm)D`\%dr/~!姹?݉$ۺigiAwO\u +_cGWO8V?鳳z |pƂǤ{;"#2+%n+;n +JW24§0)*cRP]VuQ5d #W/ôp"ěK9rc!!?"Mf5J4U%R;*9H!1$Eᠿ077p23'% #r8RPVJ}:7=W""T'Y[OvxTa+,wjqaHm2T؄ 4?+}$}P&ӱ#%&֋ֶw\#^=52ŻuqR m}\1%JzkWD<9w3](Z䘎.2Ng`Ս7 Y.K!R U\ !el\יִ]]"mD!`pc{f4 ($8D sjĆy'RT!& sh#p~?ZǓ^:T+^=r1UBքfYQOyOT`w_zD_7(ԙ7u(C\\2[@,캏K'{ +' ¬ͿRD0zy#3dvbW[gYzQ?NbbnM!X=,Rr2I蛩FFhW^?%PpFƙſcmW_r]/{x*(M?ǚP$dd| A}6tM.k% _fnXwLO2s{{|ͰCv>O;|Ƣ yh6$Et5s"~6rerѭrx>t: #CԴUm/c]Qcbfb x +رD_P{Z̽UHKrzZ"]vGj59PU8|5ަ"#[ĥXipHfάsm#Eds#28* dM[ZZ-Ŝ0? [⦮"IC?8\-90K G/hQq\KCUajϨ'T3QpJ&sWo =D[ KxJ((KTSK +lWć :Ii]+$Z]K +#1_2|/u"fe}?25'/3mPqELňcǪ^ɉ݆r#+ۜn)KZ 粩YI7-gZ(ݡ$X aZFF( "`tLXe쇹=X1EIk6IȨۥ.?pD*Znj#:JqTxYHPs@tJ8oEND33Ӌcqn8[=*JqhCcWw9.[bbYd0|bfÅ#jb-Co삜[2m3}9{I>b%hZ)wZ rpw!e6COAqYB ghQ5g +d>xYq`;$m_ul$U,K#;c)Q5.wJЭ42ڝb.Ev8 +ig1U,T.]o7@5 }.Stfo-}M Ze}q p3⻆K E KW,s "RKہJya]!P#_9y)xBl酟9Dk\%ny} ܳ#EAN R9~$ILvA n̥*ĥ9Rd:$%/#ZʼnP^~W܊KW/I;12\"iL/=Ըb1T&XG!-3Ƒ ש'65[$.4`pop/Q;m\;Ilt:3$u>(sαzyE^H+*:Ď\g+H,ϔ!/aҤ+deIvr1e ?{9dxg&go; +5 YЋ{N#QD3^zq[4*>H+?\W޺%8#(6 k)|[킋3Z[%vWˣ(qs`4|4W$Hon;BsH~&)> +Y݈ON'zH'J4߂k ^,!BZ #JeieT-ztuú-q|K׋wlj5ŗ+Euz?lM 0;P "̲S}j:O{P~alX CVPțኮ$L@b]Z0;NGf[2FG(>˥?0HÓk;Y^Wkh,~c=ihB[\rpJᙓ +M:v|iGL̘Y܁U'qf +}jfvzIqc\:0W[X Yk#TbROf6,Um2vwņ ^o7v7_C d R28C'  5 '=7A7.(^#!a}=1n^W7Ne7TOVŖ@cʇH03ILYL:Û0eSHgT,<h>_n;G-zu;w@|@?Y='*eN4'x~+2sFcd0J~S, +8o`A +JK2,iyQ!c$YmVLeeŹ WV\ث%ʶH3QVmK +6i%*}W,[)eDIbaiA.1Y\C=7)G7گ M*> q/I5Ej!2XRt79KߙiPHM&!\T#кZSI7$4*xftPlnqH]3 eBumt} [1B ~U|UB<o‰%̮Zzۭ]Eaz!G* Z|ľy#^|B$z!Fn|V¿} pWӲ6ѿy]z!Afg}5۴΄퉂鹄oeax1۶Y$8 ; +yU vA |?侁zzj{c%EEܣSyqz 2 ,7H^w<ӞIפߨvZ68>`Wm +XS UxqB$ :~]5yOg;[G`aؑy?-5L_*?==;(l"^'L_' 7l>.#@O"HWЖ?oKпD-Y.; [g{ Voo0- %)T_f~'(>W)x~ku%̌:r ݾxƠ\ZGj(= +{\1c:q=J5nb>tXثamDdkϪ_Tt;TKVf[cLD_a֤('p4'2ص#Fn郧*D|W)5HѕTva>1M8^ϲ|wyu&%jtJ4$[&0M]n(ܬ-1$Zī4ڮn:WZ /'! 1Rc/M9:-Uݢ7RuNQ0,KmNvW^nN?$ )"A0DFe/22z,!#.{:|~`8E$) + +Ų6:REkx4st BWo[׫[.k_ PL!-Uq 5мjw &&t ӗ{E#v aClG"z 2Tى FNvhhjTͺ%LF&.dMom(6^" +^"%^a}VDM^ fudg"pmjޤuugQ%b}oʷ%[5.=0+3k;GP2c[шWWΟ+(m)퐚A뗕 * WLʶ~KT:Gi]%IFЁ fۀ7JZ/MA_U*JYw*hx%Ko8O,Z'ӷ G=!n'Id9:O<.hOCv-[RELK7XpɞLښ7^@ca:;M9uC )*v'BuUpݽG6 fm +[3̋!DFGh'%!8s5g?6J{~aUwC۫Y*q#1 \Xz)헕5Tf$E'ͮ #Vݮ*!*0lm@tY \>dnc 2_ڊL#\4I<vvɟ!/70o ?U+m]8xQCقf\VNy"=za^ +NG* p*-g33 ɴm&L{,OcoUm]*\Tw R%8&_~ܺaW2~C\pc7wɻmFpox}WfV4)YL|e剎^+n W+V%p-;┙PTپHLZnii :9Z'YoFE)4KC A7P Y)+n3 RG,rC.Gv 53D4dƳúvE,Ad"-qmåw6$!ԡ9=efCze1!rӀ6ҭ45rg ƛޓ%w>˯dF+;xG:=Vn[0]K&7SkNUkuS]V-ӄqgvgRעz@6!=+[ss)K} 2=y#f;jq1~.tܑZ֑z]0u;iz}KpnDd[]bvlMcrZHM:)\MUuxCCvw߯R8ťFo8r9Hkd:k&McKFO]lGmҧ<ړ*'JQy*!QFop-ᴃaPI8/!9?sv$5}FV~ssiEFI{'"ˍ{ K: FGUGt$'<Սe8 MڈaRkeoNFJ-LE4Gj[!%W>X oCS/C`]eQ!>&wt0Jr0k pX}=by}Ӿ~vH{v^޽r|'ʍrs M +cymܣ4_4GGl_&9 +3`z'7GKRFVШ;$;v;Cx`' vڳ3Z}=jz^O\Hqtѵqt6cCbPJJ ?%ҐYzQFP5%|ZNCvFPQ0fHeŪ^)O;H~ Y? ](3<9YZ[ MfArZ"Q$ǵb$&)8RbyxWӻ8, +5VgZ%-ӚGNKn4,Ll̠r|_`xpx_wxvxnx_ux0rp:r0rPrؠNAJG +^'^N ǔ5,(*'?b78 ?:%%DU-ӕ_\ @TUXU,!cJI%۬,oaL9l2ŅW_߯{8Qu^X =&5y*XBWMůY7‘3iuEBQ,J)J>7j]F-g6$X3'ʒZ^9s46^0̪~'`j&G=(2]٘'0ITZc.pBU2C(}{x"eWh;*^ZVwf|'윹\1:ONq^T]bQ^,E+t +FMiWk4BwW=^+q9hYˊѠi ,U0sT~k,pUk6Lio;Ѩ%g[,^;͢$ҷT'h;-׳@9 (5r/b|_pau A۶m۶m۶m۶smgvg&6v6"+3]مlW[_#kL#j/x&c( Q}kt=DE4 ;B`hUt }p7fҿEGpD#8@_,D.Qr2>n>tq5PLud-Xnu1QӺ:p0>*V3 '6$ߨR* DCD>{Xd;>z + + bEwDw؇a:1#f01Chu :oji[I:-f* +ESσV㊝XD`@K=4s6(9Ҏ;KR#noAuo 똋Tٍͭax%; qpCƗGjfɯxg-|oe>-1 ء^zA s{'v#wKS3"$gG2VעniZ>GQP&g>x''vuc1&gruAcmbAl/pS(G3`*TO;N▅E%d+jpH1+Yyt)4˯w6?5+ebDMtJjX%61 Q;Q`T$=J*#jre[pTѶN4.bPnsБ7L̈U#ϴtQ~詡fecBوtfac=?tg$Pg;֜=h2k״-K QMq`gCG ٭]'|/H: 5Bn!Dŋ-'y :Ĉ;Fqدxs%fwq~w +p74+z}i.3q>Qd'=['Wb>rDCFFZy5W hZz)fhd|I}n6_]M,bul~]:I޺^b޻ڞkP+ 2Iܩ{e5g8lUb5`ޡTY5{:咦e R^D3lI* +ȕ)3:^ko(KHT{~Ypѕ^ jP5$ !Xa{[ADG)X7Q %D{00R+^$ل%lL$z FK@5d  8=dlPHJ=hw'Do15^GM#n. sg4`֋O2>hC%Pl$}=lKF7~w4UsVRbT'v q:dūcp`4?ϻZYyg/:1 /+~hDx?Zԃ!^"޸ ˍM\%<rM(PDDpleY 5Mɍ,k0FnΩc퍎.ٜ-VpgX*I͎qdglK3@2g."$TKDߟȦzi#k\?YdJ֜kӦ8Yfk[c'9ֹFnZhcqҬ K=S2Ej">x?:!Z/WaMM>DTWoab(\PqI]Wo36'.{+<& *N Ԛu9t};ؗ.l_ݟ::lVxFsώH[Zg}'=f)j=<|7w <1yEm.rU[ګk kW-a@4G1^bRJ^$AsVNF+oadx{B}SqS%Mm[u9ESO z.BX[xU<V~=˯!Qs5ka\*M:*2c8 ;}"aQMU+r͚T>4(o3@įHI]uO礕TK@\9 W;FaUԍ9qD1g9V?o+nqmuy%e &Ō*rsЖiw&V9d0gK'\ηc 48 -_"]DvAҎLN_aV+2igp,Av؋9 ,$81NAsN:V-H3\lM92=L 3uʔ!Yf~Ic.Y\PcP|mȇOZCqe=q(v\Ю|6j;X L9\|^a tqmi_H%A v4c.,f8\1`A.-0dJA:ȱ~? bH\}X: 1 Llc&~Bd@1e1a)<%Ɍu6HTԪX}ز3Op-,UE ^bBۣ#۝%GT:_1]?NLDW1߅P7ZIWȯɢ#oH3%KbbILb#Ӛ )m鑢XxĜVUQ>(xYL`J"aꦨJ(!P46#u5cĔOֺ \w7cXO\MA9Ua nb%@>-T)ص?x"s M:mіЁt}\3ִD( -\]|}_'o/Ų'6xY%X]6FD&A2%P0mK}輙 +YQHU)hOJ(z 3 E9 л[8PVxƁ"=C@ |<[84YY񒃏b\\j|ۘ5SkSL/e᧙;X0irJL:ZO&aH L8[ONMg*Mb44Yi8jl?<͵Ńc +?醟w&#EcI)L) th,B 2Cr 3l*Ջ T=9d"7t3ЉENĆ?uq!C41G%!&-az%})&17Oiѿ6gF!+K12gюO E"CxQ],Xڦ\RhXXlx_RiloXE6=ۙț9RjR+_S!s7D.-kά MP>Pg}pܟ ?^E' +حzG ^{7 P5iN9MXi؏UُU֏U_G# +d dt[d ٝ ]; !QݭߡRuee`s=|v_LlwAwIsMêٱ'YSCUYCMsHOs8KZ*B/r4w _tE"g]UW*l3w-v]j˭Fa L(OA 4Yd UD^^ z99z-sRFv Ё ^Kq#$㬷AgF:\3R"? ٵ e-]FߴIK7|xp*n6 jFUp +%V߅Ff(忽oKQzuJoKRr +濍߆~ +5Ӡߵu%dV684pwn*°Ԁgy5gf(x+y%7|K/Q.,P,+vܑ.#V-Q_ Ǭ-*~[K ̀-XU#WUK~[6T/0 W>뗡Y{WhGƐ--m~6)Gj YU +k(S%FVK4pHP<8?v?22oYt K:qo.[VqOX|?;1y|8<4|IbFp)PJZ|+2^ +XowCUKmvFm׍k nߠNwSnںS@Qdl|!XSbw@4=<+!@;8w5Z=32>=~^3/g[P˫$B~pȇ }w]cT$@nIH; qIeSRzA`UJ>|  ~! %o| &}ŵBe\,FjIC!ׇ@n4v +B6N& +F,(L Om|_Ko`{}q~+ur &C @7霱3fS^?|N ';~Qk =imhH=jZ:Fc&\WiDv)X̆\#x~=W'1Ʃ}-^9R΁ Qtﯬp)At>AgiN$K,FJikApQ$ZZ&r2olnEnc^qb?mG8r +"QE.d"Dqؑʱ)Ÿ˪CM?ArR bЈ`QPF3X%Eu\zA|p϶3=oomi Wp`ME8IB _ml{ZPVEb>MOHMgyydnU=NTemb3{ Xë;aiOa7$ҙAɟJ4߃+g쾞پ$M$[*C7lij/ Yv]2Bو^hW&yC[ȷ5#5Gζ8Z9̓.5jK#U?S y^#ԼASfWމ9L :~ٌș&G)JljQI +U20~b-l(*mMʔ% +J'H'ڨC |rtǔ*Z%!ʒ["HM@<[ Tws$(Jذhq ×= | zβ.:zf?%$%@q80(C,+U,8ty*?{{Ƈ-3YZ33.J+#O[j_\p85ʪH>X3'2'1aVj*-񴔷h h^.d:e%H3n2K^*)0iK,ZR$MCihR.R!Zyj5Z N,[+Yɼ>mt斩p,@:dQ 3eX;~SL39YzOs>)\jŌ9A?98~C`L_P§>1jZvO3twȖ#v‡(sc\Xj!]$rX* ,!$4k-gy:<ge6 Ԗ{${!YХ(soYgĝd6UAwdnݕz@%A;^c-DEze$wڱ +Qu(t9P +9'|)9ڂR'9H}O1C7`٨2`-7hY1'77#VuYO_j [ S:t7OTHeSՐbG,(|kZM!ً2G'!L7c8ofKvV'hBQ͓`TyE +r"Oyq\4#Vc wx7?#_`gijyZ!c\AjpX|"bûbȨo6rsT" VdLI &0ye%wd%NH(bBZw =[7TNգE]dmGX̶aV8}]af)< hovĸNou)P۠6qIc u繰WI*mٴVJ(BʘhQݘ5.S;](Y9x8BY()ˆ c XYerԇE@&S!#l!{VnC{TO. +UEL^15!܇4I`, -I5C;QK{}›Ҡ7D$s A31g138tAwXjn9TC%?]HaQo9[(:_|vp.In0a*w aM^X(N[NWiVrړ ԂƜՋmoژLxa8SEPtY 8zd1>ܗEμ 'x<t#?tpkm=^c䮌1mgW`edR"צyn)h.IeրNcH|/#܁KsSz 廃gIeF3Cܱ >1b"q`Am|WĭGu޸Zӥ7@SzO."viKF?HN"]c0Bm(vsy8/ @]SeGdIO0%DSL.+~(Jhpj^CA+ H8f\=0cUt#<x`CKK+ BizB!Xkk +U |{sCzMZIʤ!jɷ +g"djouSfˬUHfi9iZIx YPV^b5"էnXb)cٯr\*Vȷ5Er1쇖J_k=IXwsN/,n^)+ S竤SI60 ®q񒨹z Z!JAV-ʃ/ 4EǥffȬsCXc +9Q.9.sGy\ސsnQ{a}at:\ +P2~ueXtۂl 6OYAL8)fusv :O\x +Eœt̞ Bɸ*Ob"\9\g Q}kBlL|yh9N=*.m3#7xp%&)|oUI+ԃ‹S',aUêI$%ES-% U5I( 9r#(% Mp)YG**(%Z)%|ˍ%I+dX$)$j%.(H@()%$#U SU %QǏ$:5HUHuHT(+R$ KVΕ6oa{>̦ٔ2Vd$fPf$Sr8 ۢE\n +iIU%E1A))^f֎f6x[DɇT +nCZXSx +I%-n<.\ml0^Yip>}tjrRn3jlktȴ͵y(h1jb@T^_CV.Uk)Hk\1=,e|@k}49hPiqoo-R{L̳= ==a~iusSYڟYAubZ1<®3}X9#fQ2X x +RT:CKo*)iKLl|eaZBn9| YĞUؚ?TN6ke7Wσ֡ʤȘː`n(w-`B9S1mx]T6EM"wz1mn+i!hkgbIKo{ Vyܐ V:.Ձ緊u5IԨDmms#oAvrS[Etpt]s?7@X\Kkz65hѸ)գ.G(D +( W۽Ұ\F?Xg;q=A}5FkPiY(Ed{(a[Ӏ-HMq(N{Jɹ)~*U/|D.-K~؞L.ʖKs󑲑Sm)wmiuNR5@z-xxݜ9U#Z.=qN ޞAҫNzSUݱ9tgSs1LUٕ +2KrBڕXr'h2S b/*R+'PGvg_/oSR0b)WЙ+!aPEڡӜIK!bzӒWe'fhj͚^a9SYa@CNߣx7F~Ct_0(x)Xg.oA ׹ n^NKo? fe 8);U'☛ȹGv` |`Q5Ʋê!@_+ٝ-.2 +ظ&pUBx&^ ՔldSn=b]/ m-¬ +xoew1>؝da銣!Y^]^3 + $)8)޿ ja" [-Ҕ 7Gq|ޖ`N8$e8nҩ8Svٱ=.) +LpEW#J3=eh66V~38$Q$aM .'V&1XSx[.6{.<f'xH3fVQ5X!?&bRt3Slo99g[|Tř5'\׆ +uF,@sBY;~F=6ȦuQ _6/ф Gc90cPNy5I]Y8ӒE| N}E M+sBtGrNsW0'IMc(70Q9Ƌ .-}=.1G]ԘU錁;}舕sfC e5]96%,P':a.cB= $`/r%qL"Ro 1L EPLLKq+eV>ǂjed +D"r̔$*OB0gOGSNX1:B4eBDXιfr@ =ZNZep +ko\a˄TמZAG-+Ƒ\ɋ4Wp&`v&mf +){wMÍ^ qdU~#K#nK;suܑ jym({L6H7 Sꈧzx s'q{w_7nқ;v5b+U8+% uEv ͋O{$?kK?=t+=Hߗ+(Ę\7eF=K7+x{ո5yTUٝ6i!׎2oyѥg)h._"@q/0oeT׀+hԙHEgϞ@s9h^&'N~AT؈98S;۟av2fym`\P_:عѹOqxE[v 9'bXӹ-L~4,Q`p- +ԃuxvv0|nQK-1L7u:X_>^d*5yf8%sf9xE걪'L [xfyqGxϫ -O߸ !?%`meÖoHņi yTn>Oh9-ŶRvC-6neB-k8nu>*/ZW m\O5|* Ǧa?\BW8v$7 A?ж뢷\B%B! $j3Q-_%SBQk4 YWd/Fø6ZkFԆckCQkm9Wd@`\*V%S-y-'ibu*=KIX’ dBS-oH-(V’k.)g5I/<%'J n +ep$"X|@d% +11$O=_aGfY W^:v6)UD#ZP0O2YM-7^(77WWW`W"W+W,W=6?]1f\0 ?NA6jye[" ÏHUۀ!""۟2r cwc_!12$!fPS8$LFr( ; hq&FA:#".8JvT~bNB;DN!9WSMiȦ4̠E!ޭ:=1&xa3:TDl- [Eq9Bux1;"v8樟`vU&d aTV%dʼn1+3KOP!bb"rv5o|P'bJ)IbU%r#t;=#bqdjA0 \m;w:ȿoB + $vpE-&%hG } Q(`+qD}/a/h[E +!E}Īצ1~Әm\6)d Q-ޫ2dKhEoou)AۚmnVf!QQ6_C|צ̯Α귖@/@G7ߘwt5 +T" P@5,ŰI1Ԡ@MJ14'2R __B#hB#3 +~1 Z,XQ'W{ᯀG";jLrjhv2fHuˆF&~ e + +Mi,-.(k AP.nZ'w4dS_},xG=E҆[Y{a4|@̴(-Ja%/ȼ^]ތ<~58]H]v`^$^(^0^4^8q^Va!>v4Ha.wao\1twAΑ$F1n2(unc@kľ{u։Fl(7ٶ(\tw,w@?D.iUSSsk&B G%\;ᅢۨyl_kf<›~9cL#ffCq q[Ï f,[Y7"q_;xY;~ h{4TwÃ|Mw_f&vd{m],, m !5-wハPm!"6JPJ E[I/w^P1!f@PQQf#N:@DTEU]:{L_ooп +΂hV]{2fhW@>Q,i:v P[4+®#cmMk [V]2hZW@&Q,~: uP4+G.<$~,d +rP'x8@p5AB%" Uz<WppN ƝҐ׌7BwL t\=E8DTCF'c Q@jdĺICӌ!>v޵سZ&zdwˎL#ؾJ'`q})$PJĔ imd<^&%>򲀂e)*t1)Lj3Ƶ9P{2 4GO`w&^UDB+>{Ն'Y'shS K0YFB-pxJ#Ι +ϥ s ?3>>}} ?ѱF }`}}) >0>P蟨蟸\@8%pHIضM4I63 m"13vXU6DӨc8A^ְ;QYInZ[Sqko꾋&XczPRh Y6$#Z-t3(Q6!u5[&T`%%['}yiG*ZZ+YZMq`-ܘ%wSs}@@e +kxf#y혚b* ?b<zH9 %~ +_K_GW)O # 3'gP_Ϸs]ҿ韕?`ad;+V0uf;L:jѿz_ DcAc}YYҠRŷ'BÌn"RߢjTfV [" +ЊhlA#N_=֬ +j+Z'ڇ%,?00ҿabH%GqH!I o,"NO;Ao2IYy[ +)ca! Y ? z9*A~t=p$Eo~ 243cF^H/RW~^E 9K&mSMvl#8q(8)cJ"9)su)a?ôt\:C\Er E'=TW}<$VEwrd?d,9jGS]+pL9o'!.=0B\YS_7yVn>7xa9Ǽ/7ʽD/]07wnɪp7 9ppwI\&/h8 -B=7oҎ<"^YŧٷH=<˜t=)dJt63 4B,sXΕ< ru 7V:&5UPXh!Ms@%֌&*Kna8ss@TP̀NؽN{f0D|0,`VTZT6XB .2UUU1C;Afh?H Ӡc3Z(kرupqDkkN kPDVe<kp=V *eZkQ"m­ܣtO)yp8\T ݼѰg"ƕ&F$>2I8k>܉ yԡ5=nT)S4ȸ`6&d3y̋ <ҔԆ7P H>扗bŐNF2B7ΰ%H+?U=qoŌ͆'0OR +OU/;4 cTNlW8`&EONUAo9߫ʧogI/v 0nO )-crhF6{ΧkYG0hHT&Ǭ,Di6)~˭/I?fZ~D4i0LJW@~ mgVfNƾ #Xm4`7nVWK$Hj j ]BoG ӧ %[tq"nK-A$#rQ-9cbtNr2YLj'' +8bޅȼ IHk}7: +ٵJ\S=]jBo*n.,jŞ)!.AE6wA$ZHÄ1de;R/Rdpvz>:2@}ȒRQ,}ȦW=8h^7o =dI9hgN2ؐQ +{ Dh!( _'f4Gdn +Gͽ<` +rVrFQmouؖgFXGBۡHOGYE3#NjժZ8:譞K:wr2"FlHw.͚M +'?)ɎaѮQz]Ҙa~ŋ^@kFT]w EW'U3a7b,geЬǼN5tYez͌1'EVURi9VrH%XK0G AJ GC'_hwKQUqs-ݼXQRǃ| MRkP-Pb1%t1bF +Sgv궁'wWD`Ύک!hA!yBɸZ=^w9Dd̹HY'e~&{5Gb,VӦ$ kDRvt<3zPf3ڜƭXDs4(s7HGq y DI`26IJR_𔞎6^fA<@̕Pm(tw'+Q|ǡn3[UMwc}kUs%+}Yȃ'~4:s~]jRf.oEna(rI hzO~6(FQz;a((ȌfEwXpDd=k5H2HYRQLh,@JR.9Ha$*AK['T[d?⌛")N`YFC.T\$uN{̥#6OۙxD+W6wt ږ%s `s1#v[ß\ `jc3،xY::!u厦 I[1]l7>m/&bjL D;u߳9ꙛa[ͪ êj0!Y '$ުLެ3@Y\d,(0N̬3b" Zc!|9rshDѽľDn PN;׮~R1QjN"c# Gͽ0P#/4a"SLF襪捋 &NOndvu%mѓcy\JeE/Pӛfd@_e$K:W܊8&Xg<<}]K7X c Z˗wrdNYmE.2 +ϊ2KvV9L5jȎ*e_Ag&L 2Δs= o,B2즔<-|cw ؁AN8stܒ$ܲE'wy2}B3n%nA#lŪ@C3޸#7C0>}tǚi C\\8'/S7_;vqa%Gr ʿRir.y5,0ݑSv{fA23Ήs2%,hD/$OjhA*\ [a%AS*U둈+$Vk+y4Wi 5ZjggVӳe<ҳu4q?uYŗ L?$ǃBh$@ .*A_b乵~*O$ѮA߬#"@hA/%[@CET~D+6EԤw1=x 5ey3:qkI3Ft;m\K硂2f+>a.2U)tj1 >S#V'-")W(f +ە6bytQoH:8g.WÆ2_ Q +g %h)btYe +P4sp&UØ|B :N[%ftΣhT$* Nj_L5Cf|cjpw)cِ[;<ʳYyrQo@{rs+t6{:a0N)y6 veU/h;pg猼AޠY\}'g{3.߬&8w~޽y7F_`pON{6*}1,XREUg ")+Dflx'?<:4WxÞ̕ޓ?/!] +w Ȓ_v_ P(m3`&6p +?$W2? +W֝jxɌGftř'qFؘ'uw;' !F,7z>QL9Qf/$,ҤΟXXBy9g@^RH-%c)Αs@W+h$6M\Y--Z[Fd茆nL'TPA݃ǟT7UفLP#TtN=Rm U%/<.R"WF% W +1ήE">a`(-DPcIk 8e0]PvzJ5?ұ, nnWz`|^E:>3bFI)A%@ֈ?3#3 :(qϣ12($ɟ)הټwja.)Ra P^V:']*rݮaU. "TXoDރN*) T$ JރLM- '! "L'"!+ ٪QRQkk^DUi|Ӡ٦aU<$zngkWUBGƢ T*ha̺N^ӠWb!^S@}+MForː^:K)]7$.o X=Ug.o:7.IFm̒OMr6 go>f }TLN^^ȭN5#M56@''o 3-"?@A,RGdR&ҪJB_A-]E%ʧTn~/M0nĽ VޠtJp1x.[>>AP&XSٜA0=$<]<,µŭ{[_յ=S;)ËS3?scxkӋrcWm4pԢJBTnlxBI&X20kawtKKVR˪0hdVt|a'aŵ]NN1L[KUtyow MMfVs\zJweq_wkqFs2b%cثY߄jLծO|vxd'֔9yZV:t5׊Jv;e@{ THd&f.sggI ~ɍ)~CT6oKщR'7oÒQPm쳍mUpb*#k5˛ȯ%B~kK7弉agV% !,UcWtthb5jK&ۃ$\T +Mks'ϥּ!fSfg'`A+gOzJ +s KQUXޙL1RޠM OLݫW0dxڞ^ߚʋ>P"}a`MC+RC6ΎP>zžNJ'΍ TlvO@< ; eq,ydpsQf~M_R^Rh-3Ul̈́$$RAd(y-2 +{s#Kr?> k qu|:B˂" +jjG ! 5%,ȼBYJLuV oYtz220!L+"0s/x,kg]J+Da 2-/w۔ oXo@}fmilI|1>֭STs2qI2tslK|.!M ʣ9^qpB'Jm~"=y+4z撲|˖5)jBUէt-d5X7t iv¦ +vz{\p0~.a3禰@ yo.B!se 1.ElҐ.9 a#0s_W[31uug$QƦuXfۉ;6]`c.,Kbԡ0 ʊ0fBTJ'MQ99(L+0Is|nECq%RD` +$9ȿɌ!xQ +UIK#Z2eJD9e s,JYga!.O5e.&Ũy$jT BZ1Rdt,ˊz+jHBj 42 D$k@4Έ0wTKEΘ0KRΓ*lŮH&)iQK(r +W&p*"'Շ Y "p0ejp MZJeTŘe=S+{tAor!3ᄡxO)o3&[/rUM>d4q`񪴃Rd*h)L4w 8K-7 }߀,1FV9zp[uGkIEÆ +cuA wCU> [$UI[@@8ld>cFD}j_ +muƙee;!;W o ژk{\ܶ9d̝gm77TdGSʓn_+h#LȪ Or+&;=R8!)\3yZXV~F|@撾f{G~ƹn(ˆt`z4إ` M.=-gŽؿ ϞCqNn9oxp<:HG(1mMl3{ +Myɝ6a=kS;nڰ8W{= V適+^;'ܽoj=;lE^=򝉀 {'Ы @IR+b i~";9Y/_.>Dp=:./R?\?o<>';T}__ww_ 0샴=?KVT{pO4,iyW [+'WWOҏF|'G+ cVF?c!n]4!b()sL;ŮK/Xu''L^I Vs)9& }X~o%'5+t6kPN+h,Ñս7]\ҽl>A,ַt`g180`]4lx 0*I;o~K5(hE%jZ4M0(O:UJ8l7H`L[_9'vߐ,׾ÅE-B~K\ëKB"ybM3۝7 +3C{\!J+UBեfDpEdYv.AjV*jvߨ!ӥmATa:̳d]]X,yD+6qAlѤ[Gb>a,(>c}}`qӁI M҅cƔ,\TbEt#SI|;6}zqM2)`Ub:;|;=9POigș;ग़>K;^ћ^膤_Id/^P5Qb:WʼZ35%huIWYҍ\+uҟ[E0+~hu*7#K <*ZOc£= +2(ߚ]kDM^%k֝z;CM1=oPp>t߼³L??97 r3rrrrLy{M[4U ܁uUzČDRUeMm4Z '()I6+d7"e)3d +8k0f4Zq=̀oDBaܱO=Q%>u8]C%{y"avĞDwW@J%J_jg NO+2o 6@o8tRN C' ֜0aSmcR{d|MY;Woy[[+Nz>N^`AoP&L'Ih[V_;6^JWg+:]1 De +"OOU̡8Ca`\V2 e*Dĩ(= D)!Cl T_bpfA-"Pb9$3P^g5ȒWwιhM +Er2Q~z>S7PXM] +`]LLG2ڙh.UEN|x1 pu;V_J}1PUR9t2FQdƝ:÷ X0U}<g0]Y=2y+vLpF689k+0B c{%3[,^s*xd{6c_ms }u6k6跋x6_yJpњw66&QVth@Dz1:>qw7[vy6o,6?)`dK]C8ϚॿZY?O<xs_-0eqxrvP3z&&D#$"V[@U bk.d +t˃fre0L0CQAW3U7DOԩw(do*wHd[!&uAU;@qhP=PV=0%Dy~jA4 +ʅt'qUp!#݋iP3F +6,G2GR sD :E'p]W'Y 7J 7pes/6L()OǷRZ e PXHV.[EZD΢%oݨ>Ǫ +p߈#{3r*}<;7Iu+b0ιȬS>:T!˦Ѓ+VxTI&WɘSU&g;Ǻ-vQyshі+lQv:'x+w&b{ޓUv~]EԀ;9~{k'# ?} %?P F CG$#hGzomS51%>:z.poVK#)&QсOQ#scE@]7?8+n8cP % vT\ޚ?X4{lڵ)%kMiSx2pcs~0y9ʩzc&࢝3>8+B2poTJZc|8E? n3ƕ@ذF@hEPT +"G/)4IZɃ-HeMRӄ6"s%2Kfťr2R2)tJM%"KLLi(? +Էn{&S{Qb r=KUzy$ҹHyӵZ kC{w KE=;֮-BnFȕ=/|;{* {Σ9씦{k2vIgl!&K߀ቓuIJ >%s}I~>2 5 <.|]Qju.kyҝǁ,#ȚezI2K 4*ҫU)IPR"%G+ ,IHP.F"P$'!'݊B+~)t:}J鿼C^Y 7F<^v5ta@"| @Rrf[)ۍ->fԓ *5*JMB%|rGۡXt}\lm0Sңk7 +7\j{]DG1>mPfE{swko)!N;@<=v03A1иsu$Ho!LA_J`uqrڃJI^NLoڹɓޚC8Yw0,޺mf<.\ A:ܩ KTfPo d-2lʍzJh{7٤dmH6^\T^ƋI@VYt7 \T[6uF..410,K(k Jm.ÐZbJicWɘ;f$ո\&dE3&PE9ݸK_n̓Ӓq-DM;1HbvZ(dLmSy[1'يIW^̆'2H$a5@&B8I%C [B^aO$ + @G'_M7`#ᚧ. mQu?w0(=e9}BB/e̯H^?&$d MM(D& H狁oA;e;G{`8a+ƨAiռ&&FZɺv)u9NQV9k"zYQꇔH{@Ş ;ԑpWQVikn_ rެ0fϔr7;XWrWga}h `殎zVH5뇧L..g}6CTg!2 S¤Bect|vuCv3hlj~CPi4|410|*}Xh8UOh,(sA:r#\V5FYbP͋M1^|*HJEPZ7r8{+xceCR¬ub^,trZE/I.9,i!*",_I:4=^ +Q@4Aضm۶m۶m۶m۶۾K.}$WճڭMwOo\e!j!M|BeД^]K10˓;ڌAE,Fx*p&d9RġLv&!e&U-)|I+cYuDM֍V0KvхFEٌFߔr1JMh+׸ {E쭬}iM[6uۄLOf6د'Ƈ˥ў ^q#P^- אb?/уFϑA,CEf>&l1hcRP*Q_ZEfn]Z/߀:vf_Qmyst/~J' b>~@5rS% f955Atni5OO8PFd +szj0E&?{> j[X w`0;rŒ3J $CEm5;+34=0_R~jmR5_RML?;u٦O!lM2Q^4CbӍ.+A܍p\]0D,=(#FSq(QԷp<)DUI4&4QԭfN +DwGє{'<7& i#|arF_ Aj4=%◕s4|j(Eݨ˝4]7l(!/:az0zm"{ +dвҊ\'yxCۖ>[zce0*T }fCZ=(l߰OZߟ܇L+06CR6N+٤7Ύ茸춣hwF?^ld=mMIĩeJK:c氝sAŭ1`n^<M9!X>do|Ũ~&bjş`{{1dDxP/rVLt;%gҠ:nߕy +J a PqA6R$!%e6d( ڒxig{>?YzRՋke\?"u 01@6UDWLDb!(pUvp3 J4ec"7їId $[K$i+-̬X,{q.ßro}on??~޺󉊈l˰>#ge/`{%C^FC4, nt D-C^~FO PFC޳"Ϟݑ} /a #Q}iGCo P "-I@5MwgqlˀŒF ш AB?&4B%;`m6B%P9B$vEB<p0*qy#dZY&ŋ "P ez ( iM;['`[YFY2׿z/ZWRe]Ay֕9ʠKŭZwW1S{b)0KW8VO67t2~ ^ Q>y#gmΩp+غ>̾twkMnE|}W]CL ~,uhyʸ~nW׻w'?Ow>Mlw27z_imDvKg=zr@x5rc$꼣GYeb,~[/I\C֢U^S5S]B$Ar4V8A5Kc30'9_{ 0+CXҵl- wZL6UMˢ<|5kh"C f_8(|֥u\'/,F9! \"_lp\eQDh@KR@M1}t΁im<Ȼ.\;d7dr%}E.꒵8()$,&e}ry:ca1'D7C+L%J6~@נ@;ۼGʦcF2*MB*D]RP*D>XQZt49Ґ, % +HFzAcG1-!7A#ڠU/uwi$K37%_8MʾpnsD-Xi4bm[jً@P@8ؽ7LãiAD%_@hk,?5`L{\ {~(wKJ:pezj-a^z^Jur!s3rGkܕlvúg#;ߗZ_0GF vR18[-f_ >IS<"hpKFeu=њ[{#31INf543н 4X:mLj>qT#;cTߪ vMw0:n:R{{x/q0KQ݃r:dse ++BnWy/_ ߈ȼZ*`I8&hEpIBU +^ݐ1qj֨Lv !֧:;z*: 3׋V`SEX$"?C/ؖzJUxI—G-$iI*.cdW1Tq;f4~KB.a@}Mզ|#.*̙}TztIRIOI̤ծXvv䙡L]QA{+zµKk3Y\џ@Ác:D|PPĴ u0}}бhֻ2- ҏ7vxE&?1kA[xVJŨVP[jvEkgEJQI[/*M  d VJ%ܝ#$&2~/7E U_&bO1~9 4Bgœq'>l(!CoFMK^)K`] VHF/^/փ3 lD64 mbvWx @=2W#Xﳤ"2\?84%=' Ѿקg۲u9sYF8 ~!bp7>%J0{= tBxth2j~Y҈wHF]04w-c `kg lB\v%!l@=͑H!lZϬ IWZGW>!8O!xd ,#pnZ1!Hm"8zm$$i$lzI +aX/aXb,"lM7Er +ki%kۓ6MRJCwm)Dxl0:F4i3l2FBǶ itF4iHlj  #bybm.05,L#!KuI3ޚm3IG;)g'˨[1A<ֹJ{L{JC|TQY7(TF+e9&?(bR7\WU##Nm+&XHWۆA7j6AWK"/)0m+J pG' #Q>U$oI@YJ_+|?1O72'?#Q\)͙v{±5XJ|g|,Wnpœ@3J3[07^E7ZWd~ԉ?H`w d/;.^ux?ꃐ]_k;  v@!4ԍٚ&iY2JR ٓCR!ǀ?. o +`XGugNqMўp-6lO,8 xv/F]Z\n8!O P}wa{8t+Žv1[;wj;y_߷x D0Z$NҔ_I`Ls>|iO s=a;z Xـf`w _PwH~1r (Zp3O?5O pوk"Th5Q _u6__/O_P,^a^ia /ȏVPh[f8L=\}ASd dqiDhI"Ef#9[ +;&u=R,ps2VŲX)q&\L A>|16@ⴴ0(}S`m$/A^݋\D_XZ't@Ȉ2\J{+ӿ)+٨x*U-ijyL9-05dL1SMT TJB,[RUdlsr50)zۈdi{8ISN{VQ8LnACQ9١w~a1 NWwřcn[DYx)떌^.h2~m~MFc?p>/f#o-Sdwy'r/zG?e'};)6 5M4SkGįʨ_A<=a4ShW` :d/϶|;/ +o`]uhI6|poqaB>Jd/aV׉4iQ:UW7pb;[W:{b;[vC\ ҄?TFqN}NubȌxhNu8 -4qL+urq,LOܒOF*]TWJj7bcI/\>jv|/J?p>誸wb/?`Yx|i/^t][#[mя'ŒFܘ'SQCdwJzEc~ΆWWh;X擖7Rʹ~Y:*eT_%`EuSGQDS px$Ê>PF]p:u)TSԩSEYF'BFAEԱCFZd4GԱ.Eue/RO +57ȒC+%7+m.o}T"*z}7ƍ"o]||5QbG!Ƥi'C6Ķ/AӹDՙr_ + rb _NԋӥJr'_ s}q'eNjJ|V'Jh=؁9@>=|=+!>@:})&@=޼^Gހ OolRLfy2د770ԻA4@>P:_Я)}_Զ"/rMzWݒSBSߚ&Ĭɹ{ TTT?HB>@~&疥7~ji-th0pKp079F"; 7] 0>u3)-bbu|} ~q{ۂc[R&[gG@W&[s(*uIܽ-]*A΂/> +}*@Uꁗ/\ +}*0U/n +? +{@Uw`o_/j +*UA/x +?{q-܂/-]3 Z Zai[10boaUi: ',pi}Fšf^e C6AJ`ע`hl~P:#iE6eM[FrBZd% ŪZ)A柷BK{ʚ#quwfu83BǓ3),gdso %S_k$wZyHp# $[Pu6Ȧga:M.G)-cBWKRJ[e*0}y#iYӜ&.NZgKr}fvWiֆ/ZbזlaZR`N-w]L%o Ƥ,+VIږ\)'!z=g,J*l}yg➃Fq{ [xU ,T&8^LUvd5c̪i{paWR# s LFUdk(G*Qy;N +PsIe 0[.z:O^ըV PQu[Ϳ86vm1D0 +*5}kƐ ZSDZV3PSNgvů㽳70GE"YU/dRͺ\Or$+RS$'-aV *ɗ$͗'[ +%gU[P+gňUdU C'eW,(9SbҪs=Wz. H)nD,JkC)mIF!*Fe^-jHqX:vئ2A>&b:ĥ=(ɇIH:[J=gRJF x.|4WgMf`VuTΫ+Օ_OK/sNGQuij,{UXB^ȬɽyĒ4 ZntB_CbO=;ؿV=dH/fC3A`@ӏW~j􋣗o #·(Y@(]J2yTpBdV ɿ~BZBfU[g +orY}͋h`Fu?{Y +/߿ГM[+E-?8YK q!3U` 0{q̕Nv/_htAzK:wZLCժ+hwՕg_uk[}ƈJ-j nB^h+0a {uL̓ +<[ ;ʔ/w}s_t'Aa_m//I;;&ObPʐs;~d\^>հpXi)XGQf}$ +UL/A10!Y`.HdfV]D~,bEӝRAZjiT BOZd>G]薢N]\ueNeEq1+bFuEWGs@41 PkP1c+Kle|D j%˞n56 cv:[Wf @ZdU +Omc:Vj +P-!9VW[Ѳ ˸?* +qS/abD V@0 +ktOxp~b'XŚz1u[Cȁ*,@ȕ!- +,]FPil =p8һ8玁"-K=Xl-y2hpuE>Cȗ"u0uğ\f0=֟hSw;s!}p՟p{"Ou߉ O%5ybveLQEw*B! Ax0B肋j/O B<K<Ϸ/O BmjAoqfb }^2ٙ@3'KēE@Ed}whs:9F?:CUpu'W{ K$CSh<H#%ABt$-A%*1"|.0Xᾱ_lson_ms6ns;¸=;Z菤_ʾooS/}UW]֑oo_ee{ַL>PQ1F3vlˑ?j4,',(_0Uvnѿ-$\!B0\'uݘ(.CdY(a9$7HĿ4Xiqj!FW~mt^!_t/!OLFN9.-2"/Ctd*'Wi Kf.h=B/-5R;\&z)h,-M15RɄ,:dҾLS^Ӏk;8h=%y'~di]=ePv d{=r9d-1 봈se"J I4ObAkvzˋ{.A0ʅpKxM Erjf`hp=\H˘ֺ~nLF9!zX|7uAĺ$^V\Z<:C{2>}j/R5.ULRA7hϴпG(x_|4B>\̇Mȳ:STY:ggG0>yEB#oMŃ.~vq?9NV VXP0:C L֬D9?Oe0N*d[.}u׺_ɮW +Eʧc3IW_'L)ۧ*_X*cb٧@)c^&*ܡ +wyM rpqSp*grZ"1$εZK|(YM.戺֬ D\HQB"9f6:|ijE%i)VӹuJ-da)\S3A_L"eҙM TL:LNt SItP|Ew,⪇N.϶zTRӈ)JZadt%StGC8#V+74I9+?7!՝6.^9xO f _&X]o h%L'\SsZh}2p '~MF?F=Q7Q}.7E6Csk_7+ ~aecmA{R +/[!wt˂kt_|]~r) dD$xT_@EtyyEї{Ƴ/ybNss-@Sz%/M y_ z/g/sS-ݽz?}U|V,O>'6eNQ)ҙu;ASks3jzqhcF<\&iw-'~kT'ͳ/ʙЎ̋YNͮN``Np=Z(֕M˙N!iAPբ+a3EmʁnSՔSP,zHJ]][DQ+d)I1LSjxN'f[q׉r& B58P C&Q^6U+âywӅ7I_P"V5@+~Lu†8ʞ*!8^#Ƥk}C^"Lg"u뼖K~4B6oѓb#2K'Ƴ73m_qxߋެ_融|տzϞN6DR)(5SN>RSߏً';!8M&\K=AkoQ\ΈW)3>5Vllkv-86,pw腝PԻCsodWɲ7h5[z)2Ҍ=L2,-+oD"`np3L1;b|_V1'p_z +hzD7QC,!9Ct>m!ւ`m! Hm! pCm ra(5! xh4C^!˂'8H Os!ZCi d9ddY"]2bE7] h3\777T `!h p a  67` ܐ!1Cv^1f0`ח,a0=Ӭ э`8Kt +bEFz=1t%<&+0fJph  ;t hHLpэ  b0L` hPLp 7h0.  5<uw 9t؆f81t)[AVqkcT{3!uRT;ia> +X`ٙee0 ,0dXBjN]Ef Jn*K4+Km5+eFd|y?{wϯ%.DSDK2*Dq#M-U&keM߂n=+Qk=+} ZQcZ51n4Eǰc^2 V(iUI:RK6jF>IUI6F.H6 +G. {J/F/}-C|h2.pĊ|Ύfkv+;; m| u̙Mdnu''c BTI)L]GpVل*+Q-680^|Е( "_D{&af/=\&DFښ`2ߔͶG($\63f_إn+] ++]Q?7f0)q úOiVg-}ǩ2 +>f-;ϲče[,dP&+H8-?dմx1/=gK? ؔ韫3ϸ+KY7~2*ec|$ +*nff..TzcM) tw]:_7/>e"~a]!pWZO#^یHhֱ'Q5$ ք`X{hÇc?=u C1oUx\uX4K(VolsLo1.+5y[uG^](]7XuwԵӷ<:^q-=a3P*3G(⮮M)#fbяy:'o x*7hvڑ&WvŰI~m|b2W˹G/+ EeFP^OD 񳹹޷ns92㒚qbэ(/\wYK[ DA>yȟDM -AQ=-AR==ASҶk8\ JZCB2V*6vi *Ks,_@I<82&z :̧Pˀ"O"A$c c4>' 5DRxП` |W2ERxB}1E?̐%L KN Fc[dOT PLf>.[щ ugB`-:E.vP+ ̻}hհzpUL_΂M vhc.*JbUT ĎlA:tnPW7H Ʃ@:ߟ;tv=M}RmO;׀q#vr\$3ꟲ=yzv*}#j?$1 맃+ЎɓɎÉ/ސsC/Db|ggق ʪ 3,7S/% +ҫ- d[lLpupe,F ؑhP]Fpb3"8 V1ƙڪ +>hj &)j`kj& +қV_S~қvQ{HJ՚-1 V7JBd ք5`'5B}bZ%EFhP7汋F =QkOe2VT2RQ /%"KD&,lU^kaYukYX~kPe..5hږ\bԲYqEG\TDf +DaC?5Z9<b#R6HZZ:K~4mZ&I268hDf]>΄Ndt)tu%sHU-I}E2ZQFUw%YkCZ[OkRlIuO ?9μXDEh]hDAi4k(;Ay"^q\ +K֤ODED"V"[XN*"W W ШRF Gf=nj[N @rt)-=oܽpؖkq8_иy _ >#rPF\c yD9 +)X\{R\wF7ϴe>9sy߸?K?3" RVc*&QCvˎر<ˋVZ$NNEqvi-9}R,rZ`g Ӟ7H%2`?HTc<Ȯ]b}b}*Y>Xke!0vV]Y٥hvC Uc^*6uB2Al*փ\{`*zeoX!eAK, }! @s1 + .8A"PP&[!8{JqE8 }in8\qNʟaـ4.ypGl8c8s6m>q;yBwC瘃G}ߔo[< }' /*С({viuj1wxhqh>=؀%0U{3].%m(uǶl8P=Emz)Ƣ{|azdp3CS{p'F6~h.]ʞuެ+C~ߥ'5W W +κ4[ôCM?ں;ж^?[#[`%0e!33B1#…urx/'Ega6fJo7Ɖ؝g" D Ѕh,-.Y˒]w OR50E~"*|y#1f̓mdr eW+W5hOeV%mGO{wkUm]sf\ƵΟF'$[Z@l[n`3 +3@aj`.a`;a;4 ,f6D}e9V?xPOf8f;@+"  sb>x0ՌL1'pibnx_K1/xO7_<tub?!xtFg=i@ +=ﶆ'Df)E4yj:qjeSg*n*ӌ\//p5_5( N( c4c4|OУ } +\eY@kx5 mͮJZIKRRZK`RnZy]\1W5x +V>[ɪp-G[;Y#] .Nw@_ +^UM@%3bZWTQ +iP(*#ҊАBq\d)+,®<"R.pFS!Z2Y*ZcQn)DJ)-Eȴmu)`/'+."$ZSO"j?[L_=0+b~-C,!C(y5|aGs"bQ7M5"G|cG. 8k}#`0ॳ;M\IRO"X +ZWZs7,P/!R4 dY4:N}.(G"z4WOV.[`+lZ -SAŷnE@hK@W֞FbhAeaBPeJePPCJ׷2]p,>,V3]iU8e++kIF+JNM\hlq!vv9vꃔuR^(g5CJCupc}o KrKuh!Vr.X\8 \roArv \r .Y \`erʂ`…%9K[3s.Z?JslpQ`JP24{b17i4h'<gߏ}Td T{Bt2ZAT*1G3 +~zjǸ=t隠ۉj* _9A1PxgT[U)jf9L47s[ 84sPQY ۔vr 0Gس5j%xb+sy'=rF6%*8Fҡ`v-Դ8,^<:0YnZ)c LaLQx%tu$SO6s(&-b #u:3 +Ę@%Y|u)-Ugxt3 Q/ +n:DG%)Pzf&UH5$>oҫQbAi:m^4+m >4pw$sRM,9Q#"P^HogDK<ROγrpp$tpsebtr2"DA]-{f{XBZzm#ޒ 뫳`xj}kKtY"DUI?V<*RQ:UVuY7QHd,DŽ po!^̈́-tT[$;oBB .$~|w{#1Favi0,++bX/j+h;k,0 -!@zxqf .C і_"j,xErKh:B 7ubz)<(_WA{={ڥonQ;x@? ҕi+!D/[) b Xf!TZ[6O'xKgg7l pk0QilfhC'-92.%?lZG2ѧD4qlb`tYܑ?m%_Џ[N{+YD ,)ߔIiDKB+?2؍V?0?9|'SCXU[elU?:H6 4B$$i(Zۀ4RMϣ_@2ܟ޷γ~oblcƞ`GXڌΞ2⠫w0yRˉ1OW0K|c8lNXPP7a\Xh ZIknsVqV`(fC\&#C^hQ4Jɟ-[r\. DZkN9Qǀ hY u @ۺ?EN4,ӪF[@ 5@[xwKcTw9^"rPpj7eS!9R~-K*n, Q64B]7ܞY(UGG?|X ?'-`Z'VV*ܐn 9@ y:F+BFaXgR蔸 + +6)V2D^x.?bO"NC.)%;r<ĺ'Ld$ g> #94ƒMKܱIHm=7E} [8Y6iügd0qfAĤ,yk#"=} šZY#°`ǩF4׺#1H ז= Ł~U(r>יRGz3YkkQHEml[-o!shB$7ohI,fpGZW xRdCĜ,)hXXCepB{n줊g-rI +J$S*ھt*L鋵P\ ;׃0%9n"P(3{["ܵhT—10bOtTAMmC4'rd)=mr/Q{HXv^J(]@q&NQ'2VRڣvЀ&e#>#<,?\NgQQ){SvW~7 ? ܖ@V^-~"?s >=VCOO0> +DhʧNp[0Q[PQALı +&DBJ`ݾDg(h2t)2fnVmZSPHwijP';Exb:\1N `rlDm"=[q}_4!jʩO}"o;*>B#yAfq>rCoPt1\MCX^>jQk|Tp/).B}Agkƺb8C݃p4°vGEe MX1RVEeK/LB<`,|;ҹ5ua~Y TXS2)ɷImJ#N 0odzϐ+Q:Y)F3Иhm!ΐ[aX`Ee䮅Ah CpS[, };hL^ֈHۣ@`X5"W#gC[SA7S?ΑSVGVG +5r6jL @\LaȘ us Dq{SNwy67H>=oIXE5QP`#٦"ci9 SgG.,N坁:q} +ς3J zH8c Tt̄ڂNݣ[?=I ZnbE-h?鄚C+5V3dhSʈ6;J;ZhhğEjhjj<:Q7^Y2h%6<ۤ쓳•a-kvx]AW%NtGPx J^dI[G6Y-0땡|p+yg4<;}˿KiSmRsPaBǚߴ\o_O@ŠxbEð1}`j&Gpeg[`R&{.} 0N {Dƻdf.D)/UΈUjb`QɶK1rdx$(j4WXa{ldՉߍT‘]xMq9QhUkջ~ġvM{y'qt#v%vuQ3~6<+8"FK+͖[CO 8͢uOZypߪAnu~3dd\.]6f#ODZ_]senX[:2S'K7|^LfQ 4-[❀v|+5x T/u3'NېS}[MҸb!VtMIzX +b?ƭ\E!H.s˷X# +0JEl +c(7pSo?C7yCLaua^AƊHϙB(X~lҥs|V9$3Ӕ#RL 6.ܒ2D'oi[rxmIbnsI^DO,orbRCH߸?1YYRsMqY{OyA +[X $-MS~{Yg9>Cu}G&8I41(G"xK" ŋUp!FoWkdLrLA(Z_۔ӂ}竣&@K!_\m78aj8nv>ʳ](?+b}trqv +DT:^!zoH1fͣ؝CD`CI&jV1TsiY)!ONC/j'DrcxC/ G)F!\+,Q,nK,+/A&<;F`iw7yT5~NY??lg2C`` xlHմ*T*$) +̀R 0"dR%* UD6]-ih.!ܵE-?_cy޻;>칇~*<3gfTP*^z}"~KDK-I~yN6.\@/KZYOږ~ωRԾ44}?**̉|e$djLVKߣbRoSR͇E,_2LYdٜDձŔKTY,K NfL&^fBY8,H ],K'c:J~\hD,J%jx4wc#r!l j-p-m 'sOin Foz#-M>XoVo]ӻz'-{dlU/{n^`t/ḧLmޘLg^@{z +GoY6 "Od,#T|<3X'=Cҵ8Ei9wZȏ݉P JͲ8֑@-n-~š{)\{<W"euoo9Ρ@{W$/ڱs_gnSb rףʭ}l>F#_ +ȯNJFv8kޡ +7hH9${/uњy;"_95YXTbC cD.gqB8irF1JوyUIApy_M5Z[ŸV\i+R-n[DuVK_AQ#=y SOgG}p൪w4zpBLXMu;jT3?{б=??9扬FH$f-J%y/_e̾A>N].\3_n:.c,L5:N:x&uˋ .KS#'{#Iƾ&*Ra9Y+>lV6{=l`9|4rboYl-&31=t̓ə~Rkz#FP᚟ޙo|R3;E:wK3g."* U'8z$i oypK0K%Nu3.J5nښݱo?iqfϷ_3lM +YzIhcd:x*aC X!= +IZoL]kBLB~ m!J(ŕAc"[\eYCX&GԦYk&o_ˆ+ԚkEŪh@@v XjPr)%8T:wԠ'B)=V+6pT$\*zaWm.גڐI!u–+t6t.ɧ+pBX;8s|Sz7H-YdpbUD@=ݘ(5ٚT8m9|W@~n~H4Mϴߔ]YgύVaSNxMyǎ[ו8pTXWK[0l@#,14%XJ2g!EBFe_9jʨnWj-:EƤK{V)Htۘ2dY +;ŵx +{u:`l4^- MIM67*=;\'m2ԧ ay3O{tЈop)U^c[42_9jaGU>`@w5Ù{2ʘ0pSRA,8(b*UU_ڀ(x+/[ݩ{&prAёLSL5%kh_RboxHz%x`0][@ęw$}K-8A-PWUPe rǝ4vˋ(N 2s] _$VFn2X7>GP `X sG'-mGX'('.#"'''z>A^_ +6A;ub#RpkD9pU:XR2t#r^p% )ےk.R.ۭy+Od.;b7p1ݐo6:q9/dtF6>ƋIIn2ߢ-l[?-P27DMX=[zȧ3 +uD_TՑYw1u/Ó +__}WB-H]?׷HZv-;]GA"31׍Oo ?K~b\X2ĞM$:4v_\^q\s&-7.r+ƼKZܮ"N=_u S; Z=zލ$S/˫65 Rg^f`Ff&3Jk sx #ƩZPםw<ʻќw=.<높E }RO.`9;sk&ğ$?QHMw oVsH@֢?CBTM\.+Y`cq.A RnQdZuA.!)'OyỂԆPk_nL~]ܪg[[jWlU޴/Fl+n7&'n_3㇛r +FI_CR()6W0S;gk@ -u[HA^wvR:1XO # +oiS?ڣr҂*=T;z$SW!+nV{oJMԉl8; ^-8P!B)X9Z>J1%MnJwg ׫BAwC-]A"X$`)5? O~Ł~87#;n:r:Z.JчU8|- [N^nЃhM|t-[n^ΧЃb<x?<) F +<)`⢎>n(wj~V=c^1nB[<a +E;ro!0BWrdC'a@JPI ?_No2?h~Ȑ}}~;÷/w`okolomonoD_ ~С|{twioqoroG_jtac˞| o2)߈opiD:f:&<3kF;V8l}C{0Cmwl{vy}w6Cua!CÆ@eY{$P!glؐrLy6:VU8+2-FS%z(COV0kTtIm,[^R]l{KVDղEU\R?[9U:X܄KrGRq-<¨G[$; !gVa?ZyoD==WQ؇qpiveb Cz0!@CT;P!ށ C|=`_q:@@:@ +x"܂:w +"!@胄|܏ +B +;!!A胆!#}kGG' m)603 Q z܇Q +phϣmq +p`_DQσ=]=dStBBծB=S> _ɩgN*cvo$PM4%N9#\u|8`ᚠ[;m۶m[ϱm۶m۶m۶7V%IUO=^55g{_E33`K'cSvw9W_lؼ`O[nXϛoxϖ<7[nPf=o_>@|y=sgwOo->: ůHs-T zg<^v7V^t77ڕ縐Ԩ=&nm(Ϲ. +VQwbuz=TЂw1Lxy@MvawJϗ6ϧY=3h@0`=AzyucoA%ow`=eϹ^D>Z #nwA=jٻiwTw̗<~ʿ}T"qɏIA5)b'hV=IKMfsl-'4*")Gf LV P>!۝E[jqjYugݱpnrIlYYX͡}›om9˹>]{Grw`tnXfv+`-:^Jݱ{^h)oؗd>p8J`l]`\J'i,CdH]~]p腒]({09,8L',pO;ߣtD[cp#"תLAdz;z2r@si@܋#?EK쐠n4'\sƇAŌ MBGԪv +J|9կS nGL+س F‰,I\5Œ]nB&X#"ae+~_W2oO&i⒓g*]Ix.gBO1ԠҝUxCD5Ad//A>6xKnU70q$ m|f?J: oPd6e+!s4 u\a+ ]]^+cny1]<^=gV-2}7J4VjT&60@eqs- ,Q՝sR̈́sL{A&hDFhYD+4QL_$:|n| 9˜!|)-,8f(577`n$h)$:4O- \Wh؞R:F +3amsL)&(+,N|)fVeТ^Z^ËTzF1 ّ,4"33وoreNoIN<5:#bA[YCždUT.֠EPPZZ./7Z\Ko +K*A-mww[?(M򡫐?ђ뿔EC6mGp:NDbv \Y60$CMXoDE /ܰ}c +C~wPS \TF b$z(Tp1ǎIq?F6IFي&KDCcUꁼ01dE : q^w ֓msXׄ(J"#X3uCbi#X)Jb'*R1bO|#y(TMs3wx iEdhwfqGx{6lo{3 rNx'W=ug<#+>nr(QM-VI+KI XᢁHK1]@Rs'-زu۽UϘC6/MɹuՔiPaIi,z=C-Ov1`ɤ)-!6d ghsv4jjرIC6 pKb[6e#`0=Rt0Nucc 369 HGǢ2y"Fj(D53R߫1rv#*HG0MsS*$zVT i8g۷4j 1Nl6/O-L?ʎqhȵn|-e!CSqvl)$, Z]{v[oR)ly nl{33yH+tq.qxgퟨWjʸqDCݘ WlN)ToM0LqEW|zCJ2F(_(FB mƤcq?yAMEۑp5K7g#m\SL<ɮ g'Cmj%T?pKNQڈ8LXhC>(6np,ʑAiPqb15J RRۣQџjNQN)םKM{Jyf,sMsk%K9cm&Q9FnmLES. 2|dZ Qt +tJ2΂baru= FZuPŶqv j/v 7^-eOzY0{ۄӡ;Dگ ͳC `|ϳi:-ML51E-jQ :R1t;`D*aȆo Êqnh{x!Z&5cx*iyPz8~v|(>؏1M, br1$}Ql 2lJj籱 WZ(Ȧ04e:m%T1κ_I|#Xz7~@fPsld]/{H 혮v47,1I|$^-v: &*;小֩~!yJUhv.+נW=uٵ/Wd).+V]|vԣvAx+ }DbW(gο,JOӡSS5P :WtZ*DMZj"=9n%fET@S_E3c ܶEqt^brK%tCwk.]e~oKȰ +Ԥdz 1߼>ٷ?󔝩rKrf瞞1|}s g@JmT-]e)Ϣ&;%K;R񷊆,SϨ'Ku>\>r'a} YȖj I>ںVɝEW+$ʅc1S1fN?guuLp #߅ymT zXkAU#k ^3xƵgez&\c@aJO4ђe%A m |pb%%A za$Hfr,9M|ViI(e/kW5c{zb.`v;~8OS9Hj/i2YgRt4N1O!|O:KSeqg4WRϲȇ@rE$!X6xVL&VT%6]kdFlZUa#d~jרԲmu 0|U:v9qeqyiɸig +z|11B-z +-H 9-z;1,0hg {hbbB OrhX]DdL `hrp`@ʼn st%!DJDCdK1pwQ#aW\^P@oJ nɮ0- 0 Ybi:@r7-Z4V+g3#S#ٶj|ِorrhwO(ק4Kcn2'.(SZE n  ;LҢϩ43c3@eXW2[3Ks3B: dFYQܢB| 3#:Ji~įєn~4qʕ,>,֨Г;:8މYfRS;L5N%窤Q+2}<:CMOqY)L8WPNM!r6pw8OޕAeUt ELDN +̪1X6ivm4_9~C% ͻ JB"JzYN wQ4bR.aKBY,CȔ8 +uФ 'G{OW F fxj60'5XqKTcvVw0%WFh9/JU:[Fry箪!9h/c8!of>^ߚ@PU_b?x<2&(Pi:1;IO3JJ1xXcK?ƺG?aX3Y{FK JHTݷ8 +In&)R祲SXm'8B«t),*޴0 "߁CF2Q:x57OJq*"$R0*6[MhiY7PM#N%p9Н=cr~/:U-y4Mqվcz {p(jrl}{ CL5?n iLߝո6E*}iWhLN7E^V&?ɰ}q< ټR++/ɠ' TEw7~ءq?/ 3,EQ7bV5MSr:M![g pMB\ld8*?%/oK>x +X K]6UFpaɅ%犢WI]B,}B)R zTukc&K ˲,)2Xőw`N5[* JHh*E]8`}L.a lnXVHmW7󺝸ӽ?0p_̨s2G\,atcwP3x'r(TaDBȉ +i7.U*PˣЅyc-υt @IMLI:S^ɝ]Mfᝨ8+9M'Xchkh'h-c9s;%l-orRԻԆ"_-QiyLZLI.ɖDR4r֤X`W`PXmʡg̾Cz"KW:]]A)\=Vֵe6ho,~ngLc %Ywf>}Xc4g=IL{+()H_0`I'U}RTNHf+0ӫ֊CW Z:MAmuv.k䶈Y^,.4٧H/C7S.58PJHgr\g"f~TgЖ"C"_DWXf#jiI+vͩA_}x2mOÂtw!-6y9$a~.Ո"R,Cb#Z`V+C&_tZ^ ]C\zJOg=jbom8l3Č+gYUzD>Ur Zi6g +;U+fwYP3 +q0v9m{Pۜ:/{' /hL+FʞHsk%X{;v;CK?s3r>f[]DOD ֡Qxa$jGD;/y&^v#668X !$~q @~0ɜ s|?pZuU<+'j&u~6F8 S8"1wo2uio =hIN-Aͮ)daOٞIh QRzXZMAeuwAf^D Ic;`X;FȠmJ`}H.uW&8yJ}BMyJ*']%7GIG(Dڇ4kL^H1P@~H{aڜ]- #zX[ Dv_76+"9_7W:`g]i^g]I7tg];7BAg~g6b7EOpBϘ<7Ϭ|='7YG¿P(4Sv`9v﮾I6{n_ܾ>*}k:l9R6dE+cZ~'s)a|wc8M?(){p2B-vڨ,l]t?PQ?b##Pt-jӟb`:ܨh"łHِ2 fh2Aŭ P53 } d`!dlO2֫bOVS,K2ۓ~LEiO_dm2ݙX|@&tiɆ'neQ= xGӄ ohƜY%5hn5j*0cvJx8/ַxgGҡ+0$pI>UxWc*)V/C6;G^0$H9wt"6|]Lc[ʈ5l7Ó\zz'qܜ_Hzd 9'F%vf&KYGZ |vvXwnJDV"]Ij\)q)㍭YMJR)-L%=IG|kZ){r'чևt@rorAso.^RUt6T' D̗5uj#*n6]@V6O|BlչSL LJ)SRkU<3ITYkRD9gvm=M,) ^d}1?!e XhS}xj)>g e3"wSZS+KrBt[Lʮ3:a$v?(Dv;˄#(weFcXZ9g$xvRU VY 0jeylz#`;˘e|-'kh͑&պIqH~ 4fcZʩ"؁KBQ?"G" PF] E>z::i\y |^q>yG !&9ElFۂxOr1^gc ()C>GѺcEY +Ԃx9IZ~_8(^ӎ*+9LHtjϋ=e/amyZ<'ƯK{pbv!̷'4AUq>e22BWh(nYb m)"͋4!ń4!̛b0M'!画d3[l(Q\jҗ; ι;Zhai[S|8탛4J@ +V|DkUBmSrJdYXq1cp,|g:+؂ z`2:1b3D`` +`=G/pJ޵_ҷx"P1HafU/@n~Ismy1g  :30p=Hh6h6.A=! "="] uyE\?W/@OKĥm +[UZ?6|lq*+wwX6I >:}՞3""̈́[VWp˫7l(&|ujv|Tdi8:|ߓ=w%iHiz ..ր@w"w:Ҽ;pSoXw7"%pŪ(B5fYij+"-hųP)Îvbpjp,/9}3)2ʫS`C ++q?Ԟk>Gx?#C{ոwp >K9U)ϹrF\mdt\"Y {PB|QWdhD2V\`t"hB%u^dLh[Q݌&!؛d m-WY~A)eO]zVA┭r7B*iUSkIAG)J +~*u}9n"͆%G3i8"82E%#͊x>{c"ˋ$7cSN~e FE FS,<\lMedBM7z: :Tn`ҭ5zv u'Y1kCIJB3:CM,3݈*5s>!t,<]l($vR;q¶T6Ũy)OGoTL!Ҝg)JQ ʶtyQl#C*lV"oi  .No{ˁ{Q1] 7M4yq'BU֦McB s蕲f?}ҕU)bmiYofe9-)S=Q욑.jRWf=-4ɥ {*` TP+ gb/0 +frD˫"m/nK/6߸cxL*/k)Tu̩#AR4&2$ *c|50v!0֙}6K{n7 F`ib@] +RL7Dψr݈ [V{VWlo0O'`ԱQQ8`w<okθa5k>*'/^eX!ļWH pTAF{ڼ2 n(W鼫W- oOMh>.cS{["ܠ,'bo?+ d QfEslXhDžצ R}ierӁTqc`#]ΐI7b|7?ݝ{2l]'OO^gz6@A[p +ףB(H(L^[vgiV*MU?] + #S՘X<_m +&".<znVujIIb]\ 2xBlny)k5bYk8*oy2冝Ǽᥖhg&J>%G[Cgvϊb1BS>_Dǯ [,_4rK%NؘL|쨸%daʿ<'vXI%tf Ti^ nepq +qOj%5* IP2ESRe͙.δ\ced0;欄p 6ϪA缞x!&jS<YÊɣU #!^8CKXx|$[pI![|Ǟ!O~'`mO%?QNZNĞ9#~,I2ʯb8$RBE۔51R3đ/!qzp +Y2<#Lz +WAD[SMe;'UPY7Ԥп{5b7n/boZNʑ4Yt6ȯOBx6gMd)ņuStcH"sȮl:u +䐴ڜg9s]κ=Bȡ/(N[ɨM«ݯꈬ;hzқ^s;jyM|*?r.&Hn.$AL~l?'A+;|zg:+녱IǯŸčlߺoًHޫREZmQBuh):2Ud)!zYf(?O2HgO}2R#KHDC\P 7-D>5%~68Ǯ;F$*={7ťg+!\8r12zћ6W[̿/\$+ylL) _)O} 0o7r?o7(ly//雺3/䔶3Owg/#nyn3d_g¯z~_X`VmZ:dr*%I;9;9+%NŷW~gr?L_3enOE߮~ä\U +3rۍU=2P2R*߲-l-˿ %o.`'\PhcB^p Y v_~)^tr]h KB?`0~>l~)tŵ<.xLyxD`t\s2y®_4 +R%7C*g8[ʸ3T.t'd%gޟo('>g̅ E&"9P_:rOئdEOgD/\ CO`niug'+2O;}z~a`Ľ }x/ RRP*Uǁ_eB-Ӯ& sW[mr RYj[^eStl*[J{A4,dB.+3&B}Wc4< (AӃ>-ptxcuUҌrSŔL`\fQZK:rfa$-! +ˠ<\EƷ7~.1iBrʑg-~ g,(glћŘK^;횵ٷ#߮3خO]߂׷5T'6>T}<刘נ_#. +eoM,nAbTe_0d;{briŷĕ>>cǕ!K5\4}W<$|_8q3fCTH~],Р?>!S *'T_B9ԡT<F[]v9Ҵ; o< )`[lR#dimX]:lfkPldAP,ϝRn%\yY(%N +G0:O9 m&&Y;%;=u}c7Dy/qU_-AaL_Fȃ)஋rsH) qV/]!C bDJ=A;՛[\?ǯ6CV8 TA )OYqUD1U +ªQїpXV MbQP9X9& Ox + zo@-g%t:D)N_3>`J\?dN8;MIZcI6x6߼\7_Ŭ ڮڰRJ-;8Ks£ʧbY+P&Bli$S@Y +k>vbFg}s͛Z1Z#'jl@{%ޝa9y]|yW$|]=FBdE jV´o=:65#jeBW7z0fD7R3ofǐLMvh|dadZ{E 37HE6Hi|nkp&*hd:erzNkPp |2Nnx8hdjqr ߖܔn`?2{1G;Ȃ(hiTJQP1,l +6c.3S}茙y?] Z>iwO9{~޿PE<1ِSdGYdjim2[nx5x$O!l•nCCǶ28ؽ٭>xʗxL֬4{'CGכo!3?75E@Z]{ؕz=jzB)v#V##G`* )R`q{#zw7% _&m"iHqTQdb00QLgaP^2abǥM'aVjvy֖ ٩ AB`sN)`l,DoH_[XNQy ~0Go˧.kG%. Z2Bs)*c(KLAoF8ۆ܃+~i'\W@h $WJN7y tmpx-!IuO^IcJ%!4'D@ @"|0I7& ʗL@)@`0ҕFUoY}~؆VY2W#n󈫪=3U7=Dt@;8|T3R+P6qFw +]f`#.ܾQk:WEUR(3@}mGw;P>6WĤsw#[?go C|2y>rKx Ulh*^T2d[:<7C |ӊ,0ek-tE:S xku[U^]kC |p@Ԟ6/BA'&\7!z`_4="䚇DZP!&*| ]tz3K9sU,t=9ܮO'&NLU-Dž"TXYTG##dr+'oβ1[<-RCd̸g鈈ͣ~W̲0'U)VRQ%B-v IzGDa]J1i&ec\~&~%p# }(X;|{݁0Hw >R \w=%/׹`96aLsG|65a3ȷ!1/>nDޑ298oaރ4o\;hUCnH錈quF7쩡5->e L!#I_+94zΔ*S? + oie()!Ft%ZV[ϊݓVcπ97ӷ x]D #=97قT\gǿT>R3]}֭:^_b|_--1G-c`<7fo*jjJf}zv =*ЊU77\3O,,8Eq˺ +Z) |#p6F)ۍ#)-qH)L *b.E9gR]ݢ +i <#澩?2"+cC r5A`܈j! +FAarwEK(0ۈSFbnG1 Dfk5XZ+-/9]!ӊP.HbuƊ\;[^sOW\E +|vf8v '\֐޽L#Im s[ӝ WRY IFȵ"٦迒9&L+"ftIlCnPjOJamhڌ; ACqA+ueH @u-Uߡ՘o!ms&RFþAˀͨwd }L$8$4F5#}!dQ h;S5Q@뫅3>LCg9̩&g䭑%`d걌smٞ}lݘ#J4>p5=%9Deb8m&Z4$?j5bȷǵU~'.+/ g֟|3iN*A>$p5i 'A*gJyIUQ!fN>:QNJŨd-lDŽ)KeMQUsJ ZRP( +pS>'ZQ>Lo凎WqNs*𤢑k84'xTjn;F"Gpb 1/$3J+L&!'oCQA[`^ wH9#>*o?\5 cqtۡ,XtͶ8vdhhR@4͠vVQ3cA-)Y"VeW=],y爐By*& 4" [V7HJ JJT}gICwQ Φc 1FƘ;X&bΗS[Zi% +pt˞E9r{,wGĥ m +,dWy}eoC?s_SaEC'7.u]n>N#yOߔ>6?t} С?d]b)4 e(isʓɍ;ӉkJ^0ަ 1mM+Ps2%fIn] byM$ÌhUʜUjޑEx3Y~<R $8G@Z"C@y?6DFmaL=!XΥ2K}\sW֎*BN%k9zIr{nAV} V V=.V}6~CX?YXXXuXXa^R"PGZ["Wв +|._Ce![ax&ې#_Y lJ!_lʶ" #תCP);h +GST`t-K,7YtYWN*t^j``,"  zUzjUZeorYqY{Yx)ΆD'ZG?ɰJ6@x& Z'ulc7 * +P +RĜY;v3#qZۆ- ZK[3$K4uFϵZlW.ۊ`+gsikX~ I5!IM|IS-tsVlmI '6P {G]!JQnvjFi۶SXnۢy@l /(6m9.&\oUMA2]@:0 +V:P5q•U!^A9RW[6r]7Eevdd&ᐑeH&U@}ʴZ,u#I7aӥz>Eñ㒊W^:rZx^;{BrvE]cή*'np{AҢ]ZC2ܩҴ[o>RVRʊ'^q43tH]WTߚ 'ȩyws[@X[` {27̪m1}F+3뒪G@u4 c\ +;0ݕr"{GVqF®vy{\U]1_/GqPM $@8C[اkAٹL=]skqR„Zg`I-UƦevy3궁:]@Ә(t=i_ɜ%xa]E&= BUŽڡ$ xyyHwNzd+/"@oIw:s<`su R=H|s7qS<'Wan۠}m$' +9" Ü-BoLю뗨JpkќSGEhjMPS hLȍzlCG(ffiu!Jik)¨ljRBΐ\sp\!w 碜u/5n?{Lj^2%'WOHsgD U9 2 Zjƥ؜ݒg> q) O2gR%uǬj]۲b CKyojt?%،uNHMȢ# }0رçUܜڏD26Id.遝Z3@Vj3}*`01sZfߛ̸kc<2nàzlbuo]hSYׯ+\=4(ш5z.x2֗5I)l+k+nDzz[KdS+tSTj8h6{< ܲDX!ePN (X'VcWrY7\)L${rS '&KX|Ġ5I1{@,P,{ (1 š¡\45Ú$ТġCal4?#hhbͪmZŬ x) 1>?zqڔRmJ:Y-jXY'P.Boh]a֭J1(Y]5(}6Gj54EU!HlkP R٢l\90sE|&tc*#,aXt?Z;Rr#rgHQ9?Z\i6)Q"bV49Vi5E.h13fGAd *HL]`!η[ Mh/ d4y&\䡆D)ja-!8hR'8͜9K[/dRN]Rmn"%Uut6NO ǟY2;8@!~}1M8a.%KI2*e~9\3Ʌ\i0w`}A-J\1Y}mrYcW\6,E4=Q ͙l /4Bq +7E6pɵ;>KCО猱%#,?n,/,gtܻP9j,6VoJQ ll>5Nϸͦww.tHw1_w`oBDg0Թ؏D7,՘ἎarӃ!<8qxTc6'2&7=a\^fS) &::yd"3Ŝ.w;"q՞JbkO_H߃c(ݹGe/*=Ⱥ̺wguKe&(=yxdi泀; oKcK #| ?/0tpt+KLٵiO:M~GVFTFFDWW&r=iL8:}greaA0eh=X0\0`~}Ox'>ZBYFZϘBgc0B}˾xq/\8v Z1i 8c=Ӝ惮`?9W Q^k.{FmC}!u +<ۗUBS+OWKJ,P=f{ǀ^/?:UԈ ;/$:Nv;*ť1j:%Z (X@Ӊ+0(s +뱆j'fq +>R}9޺ j揈q$ @ԺPj8֯HI"VrG.N6|B Ā.w@e6xC)ee<%%%IdaҏDOf=[t^mph#%HL}1'(Y2׻*hW,uD>ܵgSXyW,79fftyd}&έƅn0ei݊IX3Ue~mi{!X849:4UP+"TF$+I48(hܟ& ݑNAFmF&G&"PȿPȽPɻ&N"'̲9(8="^1A x[qsAP! ' 2J/Q 5 y :!( m S%X{[\ qDUDID%J-EǙD EyD%z ,T $ՂIQ '"9De !(ԃ!< 1EDDmEǃ"d +' 'n>HIꠅ=e$ ޱ[t} Wpn>@qhq>.?X@/ LYW-5ePWҝz{ʿ lsu/|spQW;ֶT-.vuU^vw"wojɃynFgb=)$;7x;oVn[Ffd]7I_@4-ϻf\t?*C>2AIpwYY)>\ƴ=ԧކ`~waf?}_u5'>ܓC_w?<hC H! +%`QlfGSMJ"1n'S4SCk\=˵>;sW`uqVW:GsBW:mi7"rV")եq9qb%kNV0 u%kP^IjȬ0j]}, t8rvPPjy=jE`jy$zjms4H47  34=i^j~'-٩ە+eQt<;NLbxYV#.@;P3~ Vc?+ ȋGkMMUӞ]j|ZfUӞ]Ul"M;(j㞂+t1Rk_BLLӴ;/5)LxkKfLj8(U+zxoxaqb>MW;Z #^]RR q<0ă 6 `q$EP!Yt"1K(d:kuТ[/b7eƳ+6+f e W,CYF0;(Ї78+dK1~;ϗ̩Ʀ;zRTe|(?*qױH>T]tVJ9VS=q/CV-|Q}S:iWM9| SH9+wU탬c|PWͦO)_9[>t.4Nw`#m~,XYvS +WouOwoDvρ> 0xߎ_c/N{_oDwGpo?0&_N^o1V?(5x1bھK(c$N (S^RڑSDMm^D+? W8%#gX8Y= nڅ%йIvp&M5u3;Ͳ_aU#5cF/\d|! -JB́.WGa5q_J.k +,̓Yƍj8uc, +&M޾vb&/J,`##OQ=%:=k;x[x/nnc3UB=Y}TĀI(vvHV)p)?)J z6Gw^75kqG0' +=St(Ac')&g'å~^,a5A-)u"NjBκ@1sGhtK.8΄sƄYm<KTP@ך;8YW|mP|oWk*Q@QQzRG¥0Ban;j(Đd L:޺yxΞ3l`tq` enƄq=B`,[R:eqJ3uhKܶ N{wAZں[rZ݄Z|4vjr!񔫍V:q>tEH܇}CйxSⰛu +nס:.TNbXX*\4`" kB͸ sc%/Md_wFN:e[OJn0K R@{Bɉo jTf\1 +N~0ļ1>۬MN_|qR=`@re[m:0 (Y>L)D71AF.CrX ^L/oĈs|du6]g(64|]L+5qPTKLKLKp8 _U/}_JTwn?wdldzleL ME s1eGaf|I.܅/:֯Ucw>'ӿM +",S%V % EwJ2uy V &+"s9IEԑl$$2'150N59Flf;3ǫ{ oJ\c0@e.wCcUB {|b|}z*ecZOl.6.컪aLcd! ;KUͭ,&51VQn"_L5v'iU֥EZS/6Glrv'hEA>Ҵǚd|*CQ M M0o [qTF0;hZthj4O6r8pRh##4Hb5@DRJD} _{lCEoe9 +{ <^`=l{˛y{byJ/"/0ߑ/,_PVI;"H;Yj"(^j%7ϪAf^J !֒ FI#!5' ӽx([[bO=جE/yl"4KUҬ0bj +RXB|7o# +:+۽H*8v>6>7g<.fploBΑ :QUj؎QZ %mFow&/(frx+-x]Yɧ %ٔ~[3P[&)UI]<u*OqϥM3c2Gc2:snV=~d-nq)[Yx£Gyi`NwARB Ύ)@ Rܾ-f@i\)(;_<3ߨt{W9 #h:dl4aʁoyb㒞ROP".ŇoJ.V20%w^ީn;Cul ,a`C?N@88YꗼG J-,Cg!rV^Br0n5cʗa#3ULs1/LN[\q4Xi, dkUU6v$:'cc71g<ܷrZh-,W4fzg-: cnSG*v݌m} ? LJdAٶˠ2eSm}r>2 CY@":? LPGhl0v\.ǥnhAeOevfEV DězMZ$cdVW_=`7v|ja2Lj8#,e\r~ [;C^! \1MBpi'gIOShA .ee!,Q uљQ.2(̖]) Mi5&W ?o51L⼔xEz E)iC6EuۀfJP؍dYJ+u7׃5iBAnžknoݞol` 3-YvY_Q(ʿzW/FTu>9VsLĻM5 xpڈwW06Q ;ٱm۶mgǶm۶m۶vb:wjΜy?fZqw5ku;ʄ/tǂɴB5AST01\IM@"*WQ  +e|<%r)цg-; ~x!\ls:jL@U,,4封8Tb۱ -x>x2|c21uחF݂{ZI1V_PhZkfS&%"yE/XTk,*޶XuTA9cf> Ti/&;cċsmw~*k<θkhfD r/~@738c?=Fn"tAYl'uAXv\u ^ )['4yJ4>ݩWv4ȟgȻFw%&A(`,n,ĿO`y_j~d-tN `*SPZA`2/ ,ۍo !BeUYG( Gp _^T֚ #Ò1R*I4]"UPiwlD78=ƘhM,q>"`Upb2 %x +塊bB4Q;2:jaʼeeha( B("Q EeHjA?@n чݹrBtCxjN#xh ]zY*%1 K 3 0JOI~ +L, TsXb$U9DZ9i.,dfBGp[e)11rkWku,kiΌc5s`o ,Tw24uoWZ3/"n2poǀ̗ D u.W&?;d[Z'zXis6WTf#Z]%6MR بSuJ^C8,e +KBҡ˂n$1 )PNk] hwYm/C-= T$+tVV" UmjP^\e=ՙ9f2H'gW-'DTʅ"fЏKd h{GA_ B~ +X~uoa ey"jKͫt0.-&Uiv49Lú&.oh|ڬi1feC+>e%;긶^9rF6]l"C9E ij{~DSu3,rəG.9 +r1'(瓕&ڣ3 MZ82 *4>!=x Z礉%kd*'ZxMvZd5Jp לldn[azq09'W2U#(:ӊ?؝ !%}@ZP8f,|pu,np\:_i?W?:ލ+ *!PxK.oOX,qwdgF?(|%OcK"-/F>N/|WOM7L&RZdgX Z8i^Ox mSϢp"&Nh +j؊t(֟*Z}˦w /3{s9c:٣ڻuUr0`6ę ՟GZ4>8ɳP RWvJ3WiBid؜ޒT.3.'/u9;lV.YӌihŐ*M-BNkanLk۲&շm>!e]i-BH76gW$eQ3AEgRle[3Ё!|bRtLg&*df*_¾-^ye(+[YF6jVRV}(4Q]8.{VŎG;NkF aWVX ][UJQC)?7nrg +GSز4xu"uXӝ;1}Q*nh+ʢQqΠ#a%-}!BNG_j$K]ŵ;SB, ~qS4-%_FDaDלg< [tSVZ_(TDX+G7D$}X4TUeY_9" >.<>V 6>0Y1^ќjTNBTu"fS@Տ(doI'ﬨ8ʆC{yQ`fI EhT3_&ÖnhƋĢeX+nxkɆ"#jk7-trӸ:@n8ɂmn5]cwWjr+d^s.*/Un4EphHՄ+|bcsRO6<=OAe^OQ]hL|s؏%_s,@ǹǘClqs)w<~TfoǢ﫢CQ)T×#Jո{ex6sTi,ޱi;KVyt|K]-h~Ri~\3 OnJפo Cb\m%1ebbk$4jNI2޲}ٴ-Ox^N^3/A?OĦf(O0eK({V7(O#8 0hfKvr9^>$dx&eS|W8 \y&%]}xsY +(,#ͩ\"=gsj6dKH=УtRI^TT-VT_'cM~&&8uCǼhG]n67v%Z}Z eGӘ2dG[TY[ YBz''ڇq{Q'K9' +OKZEfl}=-saܹg1.T.`?'/CGU5`8mCD pݥS7L +u qEecmaY25p׬!?tЮOb +K[2,2;ѭpߵknגkKkoMGV?W`2vZH7jӴ# t9$.+ᱶpvMWTYPlʮ J*)0}nbo r3ڿ}]X$XE66"nW˫i6nstuHdpXmZqkZ~aYq-|q`[nZܸaym(M [m(?Zu?qGo")z-cWDA( tG1ZSYGi$PU0dBy*# sdj!Y'J,#yT\ Qx=W%}⼓R!}c +(@:(^Q|&V2,}xN̹)B WIIUkuʴG32Sc:#)AРg(N1NxgPrӠrqʼOzr +'; w"4{O-wLgH}U'v)'*ta"˚|~̏CRR@3/PsDwz2m-LHq@+3$#kKBS0uI$3r>>t],*vT3bI,^ #Q}z vUZ\5$OPT5AfTL]DcI` j + ԅξ*6sYm\9IY}4usSStZ7 V@ u*9suFWbdQ6l(18U&T i:Ix7:X'T.]:)$ֻ7ׄE4[埰::sqI>hvyCo&]&'2#iOMF`G:a89dSưCqLIs#)CL p,b C9zSC)C#ƞY\9C]k !^$!Eh= +<MDH}wc&,ࣶE{%*fZP &H7Ai~]) g) ~Goc:poqbɜL'V{~}1\v"Os򦔈do:E^ֱaٱlWޱ'8 b.v%۝8bG*ӒW@P8܂'@rGCI.CDTט,)QZ dR(6D } + ? +&$B]xhE  BQ/c<&:E.<U RADK&/"Mk,QMiV1.e__Ҡ="2BGqHz(h𖦺! =eVvpBIԜ/ +GNiz~k|}5T \5 ]9 as``ՠ8/؀!G:ѰG3됖GZAI5mJ۔ԣrvh֣-[Yx>9!ظ>`?ܐJ-ON~`(PsqoocaY/o#}rT ^9Sru Adظ5n o\Pwη +qeHg<T˹78IpvǴ28.Ip>0N J@tw_ρpw9,Ҿ,1È7S1 ?Y+@@_/)2" zX,HT) Xq"e;3{Jjt$Sf;zZB(_LF6e>q_(Q ((Se_(yx&1X->- +)lwl᤹>a<ǝ+Arfuji4MǰmCuh#/.&r,#a5N㦦kQ'Jq-&h"q!b*԰斴TjrҀB ꩠDU+K͙/WM5$D>BxOJnp3!~u'ZBYg#%qqeF +XuBR5))\&(s6Q6hx(Lđxll{ڴ-% ۘ5a]"9x75.$8U}P63U&zL13XܔO~4R94a`̐q԰|Xb +c.6Ih4u.mE4*xA&ڦrb5e;?b~}E]|9 \j]r}ϊV :NixQ0h'w>BcyQa +YFXyq_Hbl]*>TCW3z9-mVBEIWƸ#ּGS`4G{d.հgD!4p]0g~i(loʪ cMq?>> !_ՂP]}8"ϔU #"5TGDMcG$5.0Cdv4 URRùXBRUp=(uD}W;"K<5Bvz߸ݼ:m~#àww +K!EM"#ՉC9.➓K)zFw ?h! Cf C:a@kКT +N8`>Ba1-MKygI@7fCqKF&8 +#:%3e%$Jif"a8fG;h6y'KiM,#E[dEcpE!pI &˓͢:|& H\!S=Ρ3΋y &5d $zb!NU-G.D>i  6DD2(M h0(ʷG'c@(da"li,!zmCGV A_e3Mh}}}l lHM]Y, E tk5:xڷ:ʇ3+B@X\& !lxZkڈվ+KL vx */F)Uvaƶ.|zX*u027PpH3pvaHgxvg?y([شhTc:0 e^4-j0S@Xa)\.ޅ>O)\6o|j +;vmBJUHң +jh&Je$Jm<[0bxUHrVH5J[ U%wlt +I>YgqFR,6ǑzUW'%^]5K7/?{7 +CuQ`֣0}[XyHu 9%4uzU ]k{HYeJqٮz6KMJlH'-+ߥj2E#7vHu5ƨ9ן$KV(B7GCko"@F6if;0_D(V!֢.s.ֵkǡpJTp¬:)pcS[F5& +j1Fds:p<x(E[IXUYF1sQaʢ ).҂vf6琬ifۦ +/@8w bi(>pW,u Z$ɺgm[-QíX:)-ƩLJeRQJ848= Ty>ggo[:% P靜?EڇFo4\#^s;?\wxNͺMϺ?;jup oOvimU/YRyy#E~%~}E F奮'Gwu&p~bKrd76;l8NuYȓ Şؑtj&"/F= AàXPWIKN0 E>âA u.(#%X=Ff p+G÷v&إȢvK[`%Rd{uLRR6--SLmE?p$QC8Hq ߢv\f?,F>OaSҪi1"$=ktJ}>z!h{e3lxfA{N u9=Vȳ`ɗ(UDIK-1{Z\DmshY.;[h

H45Ojl"c499'umG[tAȚ.={B9{d6.'PC8 &4s)̭YΆ!C|>;дlGEbV<,{nG7epu-zI5#g@|3`XQ`,Jc0]Wk Gݮ.=/??,M㿃#'وL JYIYQ`@עzG=!_AIVl Xxځ`/, h3bݷQO_H Cd3`dhoG?؁ML;w÷a1 +enCꊬo.ujw)ef[ۆi9@p=wfr>j70y3do-YrtEq.mcQXPQ( vsԱofmKx,hni(ޅiGg07bڐBcDoԝΗXeϻbY%麩I{7l#" ̹Ä%:z?Z0x豪gTn$ی.qʣvҌ&hDe Y,AUqSh[*Ǵ/f5dZ0, +eٹ"£+01bژJ3:fK5 KP>8EX\]!~Bh*tHN iH1[4DV| +e2KK]~xPK w8fhS/wN`"Soܳya*3◸+BKBwj$"*~e~b(ܟIH<\ԟ.+, 1{SpN M3l8mC`ZCTh$QCM4׀W#Ğ_&p_:I3B1CSm^*DïSd N2p~ tkg~۫g ˇSevǗx:nNLwD7dM m!=/G`e'k_TћF9s˓+mIwl>ɓ=R1 >m>uf$DH!-wdlLwYhdy~A?^?zbԟJpܫ Lc}aLѼ%hY.Pv cF |j&i0~KZ{ojCUT_UGvjڳ[J6'*=7߱V+<]nպ+5Ve>~}'?\ uĹ7&Nc"Yo?5/D;aݴ `|!n4 +n$<0:|\Yp_v!; q}tKtcȼb{ebXv7 )`i'4O&A?v7~On1Hv6 'Cy )hHy>>pf|ְn\)XL_d4]8~;-DݧcpD&ؼƧWw&F*iE;Ct&sJ%I]1T=Jc|4j7dKJWF;K)vXa #ȼ)$iMF&^LpFP/IqYwliqHPEj CBõZH`yHPQpOxT;XKSb +|絪d8]N8#6O^KQ&,vf|#t;jEYj# +M |-_)+שȱ|ŏ7gO& ?묹Z_xbak.yNK詂7v]Zd¯^ 0R%MAS&.ǎe6χ.l EΉ j0n(y%wUJ2lqoN[=r}*;eGU[ qWyж$N!ky78)?ȬHY!ao",9 ݛ椂PEa1g/XvB=Awo={=C!Rt{"s{`hO^݈6zsW!Ex܀Nmk }%7htͮAXp1@dR2ZU*tMХTbEn/Ti2ڤvD!(Atޙ c.Zf9]3egP#_GW,%ItN` L{=oCY`gv'^-NLuc۳6늎<)yWҁ )}yzxgVmsj +U=QV=U3u;I=yD*ĺ6ޮ4;\+ryD}u t/qj[u.#(+. _ ?L~w0"g(w Ҹ4_i@ Lk9}Kgg@G׶b&nlСo1SlЈげ1Az7V;LooJV7 VKs/pFF'XwzlfU H\L͘Cl;/ybf8\(eHFbf1g )Ѳ3+̔/Gb3 +-?3?"neh+P+`+W VVVVnll + l +lYYYYтӂ4ՂւY ll@ll@_ndaΦRxe ݥ"p;>2uESpSĊ30> mm 2 ւ]&o4,pg|Y{X +'lӆtԃJϞtVfDzdWd$Y]ky5F"_Ȯ1vUL!vcxVHP|Tu钘2fVx`DUR-cq=`7&e+_^lhbʒm,8+8-0uGVdȄ[*ec R.81)(Ȅ^Iek-(í^Qf:)[ ^g*:KQدY;fǍYH~Vi lYǂ0fd*++lBeH\lHfl VY]pS`Ƨ \bbEfEaElĖʆvUeUSD 69NhF%@l2y ?'@@p@@J5eS}ګ"!o:ws:A 9$8dR=.LSCUNZ-jJ$@"=IZ'}/eh$=_g#_337u/ox:ņ 1b6RTÚ=EuFs%"EVجAy5wɈc>gG@2O2YCcv]4mLsi0J\<"{E"Ayny_UujK!ag@jjV)fnf#**2A,|m +36NUآ*RO}(6K;i\l;.JuJrDS /EW,am܍wA wdb!}Jwt}/R;$ ,(*/eNR]Ƒp{OBTq^D)v&_-d8+I;4Īv涵-%ugoA1['>[C>녝6Йcu O~fP-c\^oPK!Ȃܡ g؇#f0+0ܾ. +=dr#b˗SΘ%,W|ZL}cS +f"#$!3c d D?9[:9:[zo/$&%fPڰDdZP"qv]u$Cw\MòCS³Ǟ< x{3q<@i OpF,Y*{C>ʓ1X֝ܕB/ =fG+MTl$%€Fk1a>ʇfڱ Xa6Vcy,iE*06b-=47NCDbC֥{ oTIJ Nʼn1}鸷ωC{0fuj94=Y=Q^*:mIyT8!:K,Rnf&(^[\ai6x 1A +hGQ&+5L6N@>+CݴpT1mLrJoCP,XKoVfZǘG6Mc 5Dsxa ngw,czyXe͏YF'TwӦ] G#lE^=qw(t\RƱѧ@ȶermwlWuݿQwZc|`k &Q3j?*]i̹\=!j"[S4(y~] &Qkf_yuouzvA.㐻cacǾkSb1جR1 OaS ln-[_x owx1Fp'_>$~y'-R3K+ +ddOCIH\ɂPkܒ2?Glvqw@L +@b/ + _KbuZ^. tHtmd&:fxwb>z1TLTU{^GV~+TZ*_\dM(LAArIG.Љ6Z١XcBO00{X$E*fR(BzǏ-E]+_%1QK_bVܤmQ$;P{P$P&~G?P[tk/4b*{Fm +VxzQRֽ2[X_%Xlgp ;TiV=z{SwڛTOı[c]w i(_ },0f|X{=1.\i{Q8h\R=0oUH8ur0N&?(-,Q +(2ws3Y`%Miil.6TTL,&6Vg0L%f6 >M9W?.>6f0Q):K̭]jl~5/`Owx^1X[?J:vhv;{K7pcǬXB=ڝ ;IgWMP<V5ϩK >M"ɸr:{cF?4~۰qEբwGfi}Z"tJڭZOrK{̩ " *S+`iR=6t%%j62) kRWSYU5H7Oғ=ӈK 9h*m]̢AJVW\Qe9 07,u6ֈ#?amVDyîP2rEV>؞ i泞'H'BuP. ^la}&na@P"&:qq(=QOg2MsN] sg3os 9 0,_1 D$پs)y_T/uk$d0N3yY`]I7\ +W)_XG=2`ӗs^`oСK| + ,Ļ}L +gЖq %+Au**8oR92W*uswPwXorn +vwlHCps +^9ߧss`3%PnQlmǻd+/%g{KݡuDHM\ߚ@ ~x@H淓X4ݍ12cøTBTp~kӐ=dkGoT+Vz2ʣVeb^hוwρf(sX,)YN3J'BnkWdHeYUlX!%9-"f,KUKY4ՙ.k\ +_ӾdUxpǑ~LcE8LbqF9h#Qm +|#+3%iCT jbL$a[cc#*v*UE ܔRhk¡BK +iD(:U&n.hnl+7xʝ_Xi'SnXApgj,%"yafVigiUd2~FaLCWidAS;k_A%` '8Edb3o{7J2Ýg1i-t'],5MQBіDSBњDRB1}C%_FGE:Kux)!(^,ls%D'…Jm!]!<왕U UKfjpãkig1|yt+B[ɖR Ķ<ϨxJymZ XmZ)Z&Sf)mW\(2f +n6mSCP*&v0*C=C~_E?b|O$GC3‹[D݃" "Ez s?,٣O/`j*p"!Pϕ}puhd`\DkOy{sf)ge7E`ePwZ[<+wh:Dkvj%v$ڇo 9T Osnn +&o;z}hi +~ܫd/3ݿXZ2#v>?Ay-bQ6^hY[jj[UһaL.5?ӲdıoTOe^Cs{8r 𘡑]n,[^OE/ΕW_/,Qb6ͱiiZ7]zkyYZz5'^__]0x؍NێtZE+@pGe(0trЂՕ^_ a[~-T{K* ˶ 1ξ[<*ln +u;ֺDܘevE70`,f *xW.<9yԗIx]^,D䍸-'#u>՜)d nF1#!W)t%Dhs=Y=uD=8GZb87-)ehA9%֫. FV߳X_nX4Pwnp2B(FZ") ֝ LkՓl]`n8G ojJH; Ր/@{5;5㹒bGYSB3C*g +9~ upSXv%] 7W +2NV.3Cq Jw=׃[ch* Wr";dtɐ3WCQgnCigĕ\kiFj##+:6nxIvܼ1^QE%!:;nQ$u`-JVaakd0!Z_EA4fG+DlscId *V6RN! %RӅJ-N|MƜ׬,՘sLc$Wg9t$kU!#*"@M]oYDV\b"k̡k ||Qf,2IRwex2':+\+Т 9RxKĭdߔq>`z`)Ȑ7Ng4 A74pƛv{~g?ND?[{rO=Kᔇ9BOw;|ߍNNWq:@`g+0xfĞ6d=;to;$`( sVgm? + +BSc1Z(W\wƜπxhŀ6)V3B!WsD1դ9z[8 OVPq|;j]qX1LB9W{No=Y\ OsYp0˕pOlTcHAoOmq_DZZM1~ b$̧"ߝW"qW" +BU?d)5ȶM7")aF-5*5F0YfYbQlQlYڣYԣYZgk!hrL~$JvX(^>PSh6vK{`"4نWwZ~ojw8ijL ^N G ^gA-W,ie\'Be B +bQX0/A +Dā;]G]!1~}o'nqx.v?z_\̋ YcbnQ'\9ԩ&=nTn]<%*QGĿP騷ua砛t>岯9(9?b&v3x WFf7,TX@dTS5U_ힴ#gN܂tćԋrik +ɽexKlN粹 ˖s'o*װ\7N3{ﲯxki]z=qFM{Eakryjx%ߊMaDZT9Y_ }iYU +o^Xw|U }+cBaE|=ոtu<Պ%uC $joQ"p3Xq[#'5#ۧ(s +VJ:*~d˾7J7N6.koq.jV|* )k6i˝U]SF,`<6~~CzW47&-WIfYlXzrI:q!+Jk5tXTUtClb22CR&Ǥ<#O*Gh'G㹊'vWܶ_ Wz$R` gEGؓPvL%~̦zuф+d^M5 Dg{'s>xiީ1n?hi63m V}véhqaǏwQ`8Jw۴v.|SLO4$v-)pLlIyW2Ua7ֽz@-FR]S3)Snwc5y1UȜ} +(P` +RW{_{/w [ٺ2l:;ukhǥEIDc}Q+B9g˘SWU^!/dwk{ UE +;. c"Xl"ׄJ\֣K|kxkyLmf"פ9{BK%t,ebф'U3!0*gzEj;{#>afۖw`wtPTsH7;呒ѢO'723YC6>Ǟuy{}Y-)毜`?\urZq&۠4Hpi$$4W̖{iwqv/=*䚝yRa{Kf{3еpes?bn#_;$)dM(a73#rAL,#dE@ݙbɪu, +O*u\.e#Ӥ\ݓs3skʋїQwrB +ԽrCƓEzїEXD[VY=$peϺp fTs0tdD-^{Gas2 0{}#2K1T Wvz著tc );D?{V'^Qp}fmU9?sU>T;w`?mJ8k)dM/.ؤؘUzVϞng[)sW Rxڸ-9S^T̖fAbɃ#` Q@> +߆33 XI">ږD/yE, *H1qG?/l;gZº!ES֜l#hϸmO{5ޘ6w%ؼb,\~]#Yo%Fx +D +j=n]m2ܔ1"ҜޣR/ +5!/ql?}dG]DqnG>p Z> [oj)K7%h[&k,pkfVO3"[=i$,?\|JZz0-n' C.Lȯar }nx`6 YrpTERyErDy mE8+ҩzZ1*FiXi3 +I~yުt("DancInwި_y1("%Nxz(0陿s(0:ik>p'WFaw[_$23gC?vn.Y5:ZwNFsnkBy굂ئ } jy>yX|gkt8 (mcp;&6WKb\9\|YG>?~.rw?f=b/~^:d3j!Gs/kbn5i)ⷥ3*Ʒ?h+BW]Nō4j7MUy~sB_1WFk߿ߡˉ?W[@គxO݁OĄ~B̘WN0"ό1 +p!:'m0am/ܘ+KΌEb@( X~X{ o6K [O{aJCÞ+)^r $$ ]r (9^ě}FB~HO WW/Emd$!+J.Dts^I] ,iP'I[$sNOSB.K/s΃d,W['M D(ٯ@T&Y._EpL$gC;Hq~t'.iy> __{k"z+d='DR]MoX 1ǑH2>"'r*hh<*j l$ +IԢ2B([Lf^{~1-EEPtID"$8.JpOY_׍d;I IG܄ྏ(#fGƽj7q'y[W/s>w>L{:mQ8&!яUӠO'p3r31T:ǿԡOK$u*>C*09 *E}+097J jb/bY ;8 2@킺ڗs#¡o0w ]Po$x-oTj_=x\/ "I-F2K/$ODʯ$']H%Rdw[^Ɂב\.tȃ%xb͙uȯ/ʄtؕ^` &)EzmB`#|YAm/u^5qㅡUs W0O)d +4EQ=|%Ŋ?)2 ^Wp_4YW\=:S]|XpAfcʅ*J?p/ xut 0xѧmazZVM#kP]7t @#+P+mإozZ[=zN-p:(HX㌚H؁@ʯ9)@-J=Av@Aۀn?BB۽77۾7~,Έ2lt!9}$)oH?ƺdql& N+skmʍw>$Ţ$H҅VJVy:%"o {fv7'c)q=]]*kgX̏}+%j跛VɈ׬Y1уBu[pucMsƤ2uqJuc4uTuuJʎ jg4 s9E^mgQvEjT5YTvpg`5| S'ޚl2߆)oi [~Cl_ G^//PsbtGZ;O  4pJ7hN,(gK6gյ-RO)$Qfڦ/mS5M)tdyW +$[MdnSʿwdoCY + +Ww楅o3o2d0R,bXR9$K|w;u=X +D66ȁHu`Sk5J{ШyMd\cu =,+FqE&P}eq":gsWjYnq=L7eoQDA/@׿Q"zƾ5mH=tsύh_L`DCŤnyg3Ĺ?mD @ߚ15 ?}Z EJuRƚӮ. V>dM;6>Cz fnmdMťy.3Xqv(:~$ФQk5͟vl$4A?*ݓa-`' Y/5E$3<m $HG*y~6:trbeD5W.m'XY'Xq 4VK{'E=)U[{9]j8ZkK!IރyqcOܸn;ՎG}Lbo2̂쓺Xgpz$e#QJbf*L#x-U-tH֪f6G-_~f1OFif' Ftssn*~}gSV`,TU{c?{gz~Sp 6xov\Ɇ;@V$?Txc&Z` +B:~)QX&Z&Yx*dkCbR73 {[Q VMZa[[ᆳU/5X#%₄ ^_^Ó{ `uN[Rk ]Y\Dl.,Ƣ!v1#F$0%7-laDqbvr;0\p6Yp3"I$R⦪*mnot: /Zr +y:IT<&k2 X.Y:39m\Z2[O6 ht S8x4FxďCBrce\ +t_ :]liKR.fcKuGcKZz F6\y}Ж$/.soZJ?p]-LkF`Xx,rI:PF!j\5cqcНAKP[)|GYі|PbO%L-_| ωS=-e1UtXWjf+2Ͳ~F`+f`*#5Q.0bSjqy8(V"CI*VQ_jīdmD'OzrI;'=UdZ-?IJ8P (5үrGv-O,&dTJy,V!!]%X$ίyJ+W/%7H&%5&d+\~L2֨DI3?bfafaRŠRшӈQJe&6kbz@b2LNl'6!$~s55Ybaވ 6+#)>n>u>w>d{zx +}:z$pL_KN869av"gOJ51ǎ!"љ@g^!$39gv̉~<᝜eG;=q<DדUO04GFĖij;ADD. +F@6ftH(n YvSг(诜Ʉ+G${-^A~2-ikƴ;uyuyζ @MɸI.m/CR(lYNץTm꟰]+sF}+8Bf D&+.w~{O9˗QѺp8UθEO3 v(d ) +͕OAVfP_&(04Mmضm۶m=Ƕm۶m۶}_۳VTVZ#֮;2#!y j((Hu= O(9wJV%aIV )Pgd~L/].>uO?nMKV'>M'V!lrȲdmܨh)!3(W+ NGJtm_[|#w}߉;<-'TkS7\I'Ls?dӝ| Ef z,k#*;B0ҏcP_8 ^q:n4pe\dm@%u:hj&՟MtA龵|ʈy4*L'P h#'_'K>M6*S_+4MHQDcr/ЈdI2j5^4nF&`+7j)5e+cr16v 9jA$x./sl$!>HNξL;M<WWy`)Tn"&L 8 I~45eWoJqʐQ)=C1qr;LGR>:U +QƐeiߟȱrf4N>0cFr%]7e!a&Й`/m /?{t bMd3U?i'í)a5 WN터s [󯪌\L3C|#ծTT%.{"il{숴f6N8Qa]Ul>CƂ c~d*% +*gGyQȄW^L)`E>Ą#֖b4%+He//LN)JE6nI)`ŴDRXiN&`{RUŀ'݌~-߆y>]j2&nט紵JTX^Rz.0,ѕhN"  Ag1ÔEls^] l_?IdW -Ts(m.#l;8 @AA+SF@Y2Cmy> &{b+a wu5jxBTá>RourϷM +/tTV%9}4b3-^u/}s-C$d; &4ʊYWǪQ6@KG0֤cAɜť;n=σ#uNך7!Ŵ'fwg7̣2]˒lif2))TJ4h͙KrmHN:a[u%m\ +kנ'o|G|/'١bPR2Ue~p? JD-l#dA?H7$AS̡E$ jd\Ŏ9}QɃ L +NmPŽ]f{}!H_%--;~<7.>zwĀ= rMd]=1izĚ!zYYhe(u'dzs[7qwHuY D2"#y| ѕe.> K+$t%)Gve!973 d2b"ZUN_C@0W'NGf<>cy;،}℗/tV0Y 2-,Exżn/UӪVܘjr'7;Qi1XŸ6sʊI+gE]9H#+K|X5٫ @%_D:V@I ږ D !Z*[^ ae1溩#EhӢZm][hMn3{y>xYػ F0̫#ɝ^hI׺OTi{U/i9{-c5b԰5 !3-,!4K[cH 'BotGz#qp:ji,=4G ; ?YiQ#;q5nZ&cϑ'c% #O6pB6{Jž6 1sl~ S,-#D]vd +5ّt5]%ӳЂ^pu 8*ŝEuR&d=2@umBW`#R)RfK3 PKt2mٯ[ڦp +uq홣'R`QE#8ט+E$2#VMjwWD`8@ }ǘ҅QJGFWOd][H&M0 Lr0H1ObB@NKrWTǯVIj>r.B7\ 8L +U_'CH񞂽*y8+-` `bs8{icBljY";M5nZFJ@q#3h:MLMůqـ2OLpn?H̖V8mV|jz{8m(,/,*D5+NuS7Jlm֥LF rgPwiyU!'vAch^;x5S@c^OH1,]phTΟd1| +{hMIܖCӭ\nڌzWujeC-$4u3Dt C]; آu6:Tlҹ gBSGr b.,\ jZ'JksGPRִWKgW |""TKP*4+ /:~%o+^a* +>u͛MfǪbfV-=U=a"Ї!6#c[úЭߤ2 +&xIC'>igB]%kxy%7s9:cw86qXiWw CqγcتV$;r/zSKG]*$<\ ]>&Vp_ep҅r<U;C:y C=紀5:R\);q90kLTA(?w.f+b'n-yu J+oY6C|RջM岭GM""וcR +~'MyJvv˙v->f>=5fhdjr5r%hd5djL|HĎV<2Y}@4ZW8=TDoΐAB BAAB7~ | U1e ~YOͭIDţǫI)ɍ!G R|3ldĮaӶ֧lAm1Waկ XfSYڴlXdv"_Tdnq#_2dWF{^TeQa0IAOһ4z,RR2&[CS j妱i8l}x@+ge5_2.[QGdfAlq|*ybqrsvctv&@A)uChfd:mMxZ ++ [i ƕYϫٝ^Y] ?X)(0<8A>z1IqE(oE(xGD8 OoȵȮ>3;^<豛Ŧ:%GPoV6ޣbL#92"b6n +MbJGRlŇiS:FE_4ϯOv@*:M C[}3q[؜aD `绸Jx +=Pӗ=46l;+l)9Õl FVXnlLfW%B4e'WF0q$eQdʂ5 0ྻj\G5xS6 ޠa%OF3ՐD/?o9_~F5 a`\tTݦ+o(k z2]lNpn5eabOȿj67ݬJ'KN%i:DNa2ORʱh p-6JݹZNdfum5r=>ޛ=9};8d2<ެ$aZ 2ZuU)%sPz4ƴ^e&q>  BwTbH#mAL]L˵h@f6|4N@783AW"OqE9==QfCwcXi@VpTkyvr9^DZ3y,ƾNW~05/c%)QwLbTFgե$?.C> q7i?#nmo єN;݀׻|!%,L=tˍ浩CWNH.EѬ +x?Jx=6,%h29l x^ LA?EjM2fUag]s^ʨFʨ1*Q"E ɊɣE)M=1_rD;~va7)+B΍h+Tϔ J<NmZ++K9BVMn(Ŭ%S Wt k(b Q^ax 3{|=8(Rްxo_!T=`9"V =Ųp޿!yM;r|@OP qy} U8,T,[&ڗDMÆ.V1eEIjm &|/t[}=g{{+uOH1)N#/*tIQrAo*Ŕ#F;t~aO6l+ȑg#YޞE *&AOVU!c P<ݶ7VxLOꁺ^F,5FVeliKe+Qݾ +؎OMQV & l`kTxs\Eejՠ%)!}y?@>IH^} +68 wx) wn}},[`z,:L} fA4 -i塎3^z_jep-KLz7ILW[6(]ȱl''",ʺ#Nʾ|F5f&./A$7e]:Lf5C_Hi F:Th/hb}:"6"<3_1;wӠn6%m{hZ_{77&W`m/~5AH924?GzůbC"GT&RK~kuX%@g{L—.d%JL +w̫08̩&gKաCɨ,LA:1 +zdժl򜝙v +MRn:/{\Wc_9r&+uPh*5Kf,}Ү5Cw+'khղ+4zq~R)Q 4o2\! B2{gWafɆeJ1P'`tɹ _oۯ}SM?Ma2B], m]um{ɨ~欐E= uRD]+oٱYbܱK-,Q_HP6O]9 Jg_ i +g_ig<l@ݞM).ste|mK$Z/ޥ|ϟOQ |I#eNW}o <RJbFW5(W*O5Q;jgz4|}e's5YQ$ic +>'w4MLȃK@R-/U'p@4-UNnߋTTS7D4t*j/FmZpycWB9r nF tG/Q9xQk\ډDN,:0I[G9=RؗnMp6i0Hel`ﵢ ySF));Y/1aAy$ox+h=$&nvR:fUTDlA{V/dוxhZhՎtC_֨LĜuuRm""i~gin޵U[ [zc±υ$8)t;%[d}#bE7hr(ajMݽV9?x}be,.]H1W˰TNM^6Y޴ +X,o+/ +}ZΛAA8[NxMxUEgih3HLŃZJ-$=25QwHele}YfEWns4|- +xܕ]\6P^5KfCaS4a2Ģa׫/oUW]م?ʛT̫ +&3wev-DGX !Wxu8_c+$3C;f::2R-Ymdkx%Rvr70m~d-J\@'9UW^^~zxWWrԒgtd 8KŴ]Bב.KWh _uє㦑%=AKhQ>i\f㘴@Lָe.k]B د[\)7@p)X AbQ+PfT^_vn~:|285N *'K5c`Hr,[v- RQųQ +M09mjfX]$hhe2wvaM ekedDD6>[en7E%CߔZQc +2jۆfWc!*{($xͲ~p8wYfhU_|w.X@~ڿ6K)a6YXeq|)ps5:B &2Z:b1UA{ۚ-Oߚ4f=b =? 40n<[N?~k$(}Yx}яʇojx"$y豟wwE|ǣ:{Ȓ?4Fɞ(5rޣf?xcNxۓ<{FT~| gk?w?rO|jrizo޾md,x Q'c=V& %k+<0н=LiJJ$6ׂQ XC~uxyMB%G$m9k`Y@ "E$b}i7u `q%V5vaiw= STlV+ h7: +^z}r?N1T.+r%ceOܔ-S ֮an= +2z vt{q̼řVؼ͞t{ICC&Y/1b|dX1%hqjt/-ϚӖmѹˋ"mZEIf|e4YHpp7'\Lq]r9ܻ!#Qs2և:)5axH4ѱp4>7d,XIv`c>AbFc-E$ޟoj#|fyAGKDQag)pu}2>ӂN)f*F +%qɑGJad9˜W4˓cq҉sL{9ӣ_)@At(! +~5T]'¤-enO<ɒxJs;ΘM|&m8TP2;B`x8`,#kKc*ʪ43GJٵ8KplkH%ʶLp[Rm85mVଘ1ZE`Icň6PRelbX+My-vDYҐwcΞҐ//m骀1r4)ov!s])t(L1DR% /E}@H6 oC EŴLI$`P!Cz)tqtqtqt3d7袍-M4` DUPc)cYS?WaaFW5VZ4_L3eoNPF2"r]en23knȕ\vV;V1HCyP% >&UMw_$2 㔢 +T+G`R+34 +Ue', є$Z_gX([[:hR $ג-TƧ˕jߧ *ʶU +X<֊9=Bk8xٮBSJWܙ:Uϖ02>'{OvX݆ [ŭ1PX(9lwAN{/wIGxbLiKV]`Cfʫ?C\9("GDhr֧ 礚5;W!MS$IO_+D.q+ K].MP,:$,ޚ<bwd(\Q}/_p-p.J4ZWɟ쬣bzh:wtry7m!>8T'ƗzvέyO!e +oʎCmjh2=TCVë|zsH^g8j.>3j=XK!eumDOOr1q3cvl4hI}|blM֙w7S"H6rZ}w{SaKKSǼA:*DY>ey^Sݚ=H]-zdy=z7zWi5 {;ԣ8ڭ #g`Hb}vTo};q8TЋxJy {zV#ĽY' wY$:mKG{MYy$FZӾN*u +xf D sW#4CedpTY݊bռ y#N +YL(t}vc +;~%gCl+yOGpDk#~03 j1Ɏ+a9]/mua&Xf~>0%|fnIym +Z}"Օ٨E[( 6=z +S.0X"+ʅɫ=9&jo0; ӯS{\Yr_@{zD=`d8}=[_X"gH~7ۃ7<;(;= oD|XodGߐ܃Sw^~b/͊}7-_kԠbY3SXw'\9P$oDTƖ&K-@7j1ͷSwܒc[M׿{6ԅ'|Oiɫ3ټ :BeNsW$p` ;( xqD/3>Uj~hlqN`r-tR̉Tbo'I]"tшozҶcyTG';UO'87$TmKHé0' 4,6!`,i7(ka>Hbm2;*}l3Nmv@&j@Z>8NN(idrkEWAwwoJ~~zhŸ:vt OTE@PagASSFNI巫f{/rD \|L$DQ290漌n{EtmSm4!|IXadh/Ne?k#7i="|pߓ;l3YY܁lQ>Ԉ2j.N~V} >oߤD2nRwq.H KwԂr2D8-)qAp,_6LHX|0(T# +q(*#_xUCcrV?t'\_"60x*.-dA8*)1eNg2JTKѕ4XiQ0u¤b͇Q8=6CW3Jݙ֌v--`=iI˞Jv`<]TpvƄ %pe L:Xr)Ǣ7C:9"I{b*p]LA}]2Y1oc8ud7)KAWk_-~1> z'_ *z兟ͅ4-H`,&>wX2=} +dbX&mªI&%y_nYu _{˵KD=SnGpctffʣ=~gsy%5{uvZ+|؀KK?vSMnd=tTRRR[n0 UT"YmV!m,s`;uk&ja\c]&/#dPdH OS6'$ɨv;0y GdjtS8T&( +jc$7V}<1(Ó_8M`=$;1“,lA?Z + #q ǀѸ#ј {_H[g$lQdfTot\a5R; + +$;糣DSHj>_C %ifV䆐4VRѯkMWx)"tp'̃c!SªX(q!d IFR׌ڢ@j +svxK1la9$Ҡ^]8O21rFVx tnEʎyt$'+A#-"MR̽I,T"~OffMx/>][iWBmd +H6)T +;d .I60_3$3I)L+졨8bI FAޤ(c6; nO?aߝi[vfsw~qC eD`X,ÉPKi6/5$Buj2:V)?2Z +q=? rO靝ĝE?\Y3Lɿ]xEc*yvC僢G ?ł<"G~;"$~w~t/ZwBAgBOˈqQ/@q>Pj5FxBQo+ru}B|u_vf]XpKp8gBZ}"tV[bܘJYM ayp +jVb휿I>ԄϢWFT,rBDO5J(_=TRa2traϥf5>V1]JlcAXaty$ٱfi:brS 5_}iӥ)TWҊE-_[$!-$^j u}N F-[uSAӭWтT\xQ6Bl g M2F) IubB;Sk֋V ݨRkM }1͝ mwz%uC9ZB'm q8Ht}+;OA,挺!Kux7^b6;$> Gip¼D6+E`@m혳aq5ii]pa/0׽ܢj:!X 0",R4Z`!k.qg7fb:K1} &3eXֲ@Suċ8P="qĤsiZ=+V[^D[^BL.۝@jjcVv?9;T|[@D_=6p(I,bRtuzZ6ח(>b*Ӿ7 A#=sk;/j?]*xV]_eTlt}XѪoG9Nr/Ʈב~_Ji/E5CŔJ\R%O GUKU\:. P'6MUjU R5q>?-%cWiStDYv4g٩T9se=&p'h&{=uqU),lc&u3=&N#-xb#B7r & 3X-8z=/'vRy ]mrHb OAj" 6zġ6$}@r&ߊ^inw,=:f`Im_!Lö쏘E:AD~0x:i<‰T[gV@:sH٥3ҏbU:U4֯a/`g`0JC7'Mtహ?aNEብh.GoJӚwP &tIتCE^*edw\qFrV ZPE('3;@;9\Kbxlg#B}V?9bZoۀ3p8+REAE;x)Ts;fw l6*ZH%NoÝ1ѻ,#n1/N7EбǁōDA:0Ag55zvO,G5D.s#Ox獍>0zD̞fLn۳wF( ?;^:IJD_W^v酷QÀ꒷t q4sxoєT[sz xZt3ٔPvKcWhо5-}ъV)U'ޛ1H [y ž- D!Q|V4D_ +W6v$) ̕L + +VRCVCN XP$>n` Za~oΘ8#MƷv lmz6Z#M-vav~+ KYrA+"vaj>33596n+x+)@#B ̽dOS5qUZ8:?<ߤ\:dwT ŧF +B-%aNEAMh=j_h6[91?}Uj G{R7zZg.nݣM#- +AXJYVոc rca9gnK}q0L$J[H?$$ʗcpA +n2?2wȥD+^93dbdU+P6'5@NVv(?kaEh)CV['Fz:,PeY[kY`6ƨjg5^2td vAsQ ͞Sk TBD"h{!;'Wɉk*0.{7%==}Y?7-XnqB'(0X}_˷~D`V\` @I\x|;?>beچLKԜJ6Fa;Ɓ)|ڠoKGޏP,%,-"cϸ5sX5ˍqcV쭦CFmO<Zv\7T=77^Ge@&)Adq)0֢1"Ѳ0O 2 <1iYm Q2 Yx(BJۂg 9խ3kmHFǚa--2ΑTKW2-V]T(Q7jtZ +E2BaR;|J%{ f C7Rm*dg,Fղ,Z La)^ܢ$1[4ma 6oJ`;m0g/1"gEf-(Ĝ9)ǑFRpg- +2j7B +SI g).5w$r93@j6ҽBpWp&IonP)p!)8A4H&xY8_(+~Hb<-0R4ҝ6&խ5& ǪӐXyEܓ/<QR5j6|u3 FG-_N̒ JWCJxs;{Zw)>5[hcuSՕP7{ܠUPpF^<$nT#9@?eF\@ot0o)  +cM s'ޤΚxISc7L.&έӨ$ZԜUKcbUi*NFZ`GTv/7J"$GM?>NFg6!0V;|phО,i6T-=w}QkuFL5+ڣݺ盛~NXW_bܸ?l 6Ӯ +^ʪqrS׌4s[Izamn7Cn.uFD7jVkOD ppW'IygMuk}N8#>W+bCb% owIv<.N?KGLa+aE#In;9Ql^hmڹfSkiklarЦx%  ~Fu>9J &Y% =zD|ڏtJv[ +] Mi'x}ijQL] ,rRL= CD"3ٺF{(Έj~ty ƞ!)2bP,Ze8Դn@fcYmi|>gTEF9sɂsq"&Kq0 F[Vx +!8 >ɍK.#Gl"ȧo^4-lExH +NbO$AMh7S#'@0(z2ɬ˷ugsD3d>] ݎ8BlI}; +s\?9㠅c9GLi踶۽ABSmXwٹyCrh\[Ci|m;ًz_ ɽҢnڊD3'{RB;FQI e]';'њn 诊/r&dd`=Zg~_]+]]m\2{IYbm ҋI`b֠|,o*gmKZ:Ic$%Mѝ"$zCl? zaA:^!kZzM .6yw91QhyPtٙ`Ы[67t|bӻ<)a5 g{^2(/%GgB6m[u Mǟ/zI.`ը={{= gng^m!FZ +dL' DMy,ddR٘')%2L_AapXxhmexдvUдΥMҦeD+xB%(>xEt Eȴ{/Xaʽ{(DRI To;*W8  +ce#2D XJcQG%G-cXJDvG6]\j8}"PF+0^nw5Rr#PļEj5mVP5` d SK9ڌ9wrÆr6d _j:(ֆʳa +dYP-ܱ쨈t2%dԦ2ݝj4+=ձ AP + >xl 낍 1߁ Um1q5[2K[6mQ9V5Gg#fό`黣ҦBEG-bΎّ:m>xGk ; >r紓:W[danFr,o8*a(V@ea%fJO)m;#3g^4黤{N!7@.im}.>0 <}ݰzivgm}ƀ~#$g[:.p*Ջ舷EVl +bB:!Ia8>ҕr^ '>vgZlZj+xAh4(װ#1fɈ)] 6'wh1"n&>P]N +!8a3P Zm;oo60ZAbw~p즠WG}he~QSR#PJXV?]HxK=WFXѝ_ y:VBNGkqq#Up}Z3R#` 1}3i28\xs]$[0wexC`@q| ?JQA@-J~i.!y]bvՀS#7$wNzo(-eweS{RA܉; pƆt4G֞4Du ĵ2Z21q~IfCTO*̷4DT}YJMqv9[rz˻ qx`vI njVa}$%S? Oǝo3jX'#0Y4*o|TV0ew6;}D8IW;ɪj(b(?-x La`C$.0S(s%OOi>zN 9erY'GGf!23*jǝ._^oB,YJo y<3 Qp+,%\ *a>!~P}TbFre1e1Tp4¾y-SHmUJ(-y&vJD){r}ܪc=#8w}& eXڐP:MA|Vt6jp81ctN,ΪheDNay5b)JP vڤy *܆D~^d+y∾xUP<Lc&ېqYf'+gʸ)m&#R*v?;EII<,'jef uZT@Xx"wr We@I6Rhm%ѵHˆ +ûkJIyy( U =l/T vlJOP\ꓺ's$%Z^ŔtltPqADl1x=5eMX>J?c:]}`{A>#LkަkFR'iuB.%RUu(ApY$G;݅{ayg~qט[YݘafD%N? .v;:jQZKW+~ś= =}{ "/̤LK ɍ;<[3v'I|`"ge=nMc#m9y&Qq+J|ܺlk|IH1H]ڦb<{z+}a KmfA4m`x BĻ3C&Jj +zi\Qa2UV߱ۨsx- 'RtU^+,IքTћ2iKC2\F[AɸѮ>\./D 6L ϬRw +L-s:,7;/jx_tK?w(X]A KPd9M@u9d# ~t@U ށmOE!+alvLpG{U9ĆY?|n%pQIP~"qLէ %TvT硏/#p1bp;R>;7'U߀ JDs8[ʎwjߎzzL6y{p`b +AAx{s--po^3H*V~b.l,3*qMʠ/Cʯ@,ݫ :Ze~#eق:t^7=$HYhe +8^c53y8>QNU!s d{Q" q3"1Uh%* +7}t`^ù?{0O m]u@ ꂎi.k +V%:LlV+vC/obҝ4pӊl 2&r2ߩIp_`("Dܭ_0>bb~I!z ,SY"Lzif|qYsVܢ9㓘>%xxqy4s7s:z_-G> z#Wq wm y΍BD^ܼEK + \IAM 6Buq|ttT}>_?Ȇwِ! uT-5-ن]_Jh|ʪ}lY}*jiސb0ΰꬡ߂}3Ʃ.!6hp1͚Othyu(Rxp-LݡvvUgnfH]_0tTY=U#Ѻ պfэ5jzԥm'._Ϡ^K#jjMR{c~,TwLZ۹ ̨r$VQe3U߆-;|-__!,6?NI_rKҨMt'OLg. Yb;NbnKwvS~CFc{z!F%ʲ.yhG|vlrwfU`<Ğ^Ơz@&/I\BT*`LBjl +bei4̛I[`"&\8G'˭[)َP=0Vt'Bl(zӍؓCp0PeL zFRv; P +$#p**{e5"ڮ܅жb21[Qx`EJvՅdpf<ޠ#E X 1DILϰGp@VZUb6lpQWBd=Ŋ`pޞ4c 3놵TQo+^ڄ۶:n*_xRNp@{k +*azx t+l](ybބy!PĩGUF$0)y(ތPT-Es)yC߸{"ߐZ}s|~hk9aRH^U2 dWD]!ce~K{ }=j8}Lbߞ|k%DQ#7kqg8H02Ƽ:PpWnBS4B~̓ \!|u5+7ر(XE8eRL9*+y=TE"um_ŴEdOYIB`e?#߆/ՊַLI!%"u=O;N|>l +o, 8yd3]@hڢet?.SlI+.[ ;rV4{08fn0s\jyzt7GK0#;CAYy bʢ\jq5}JKzAӒɠ-ړh-c/kΑO4/!5<۴9_zUc.hQOCw?PlA7B.ts)d&rڛee)j=S-{s˜29h7vE=l;ߐ8]. MxR݂)IhZFUtLH'Q 3}ӿ[<iLa[ ^ +ʍNZ8V>Ʉٟ_ Av ^rn@P[' }%CmQ0TqUwM>ib8rq?*ƾAGĄ==5CAHSEA^!6JH`ZoyW_4]B%񝐻͇ӗ$x4mg^fM0-oYPᛸ O|"ylFxJB͋g@fHj1cSb q:F +SK>qlL=,q&K8+[Ԍwf7ş">=OE|K.g:&+hQHTQ.w:MK?͞HjC\I +ԧZ%[+eE^]Pge s>I-2#9?'+l({*DK-lղ!!,j4y=#VvUx˸= 7zu+3m +ݖe-ƴ1MO&,j5Z//yt jXG'D?Pf[L4㒙}›ƶh9vaERCO'l4F,Ryo9&bG/:p%n(>tz` {sOEJRζk㘁S DOP"O ?g+YcL/{BkIW$n"<ӌw|9/5q" +Xyd}exS{P''GNݵZ=XIt. 0/<f>od}-^7]a>q K; ' B'];$ @;A:l u!#7(54/w.P1U3[ *%#V%CDPخrV.[^(=ZGieR '1FLͬᬬA*5.EegSmW.cyY͓~4b xQ-j~h3;s=lDrs@Pe ~2kcj;*#3*kGT.&LJjYxL?5wV'p=Tm7 e" +w@: +c_k\°upEk.RǮTd\/Zl1UOL5%tEȑͩ_nxY2Pn{S VF~powlDFtYêv܆(&@&kb㡯|>O ÏϏ\'"m/Nz̜ٔ&BJbf;3Dah@Erjzycu~#i7͎um4FY*@lu7d&stF돻bWJwcf7S@o W5m,bqbO%Ch7};[u}5_hLacC/՚k=tOdTY[RdY[VU^Ɂ$eఊ0԰Zy[LeKŶjZc&, ;{kY[pV׋/xobD/ѝĠW۫C { Tx(PyhܘOX*ī}Zqn-MrWl_@ΧOLÀo^4<CLepoԛǏOv^j#ߟ#_InZ>79%_hJY;ԥOnͧGU]v^]{ۈ}/JޢxY1h޹O=6ϟ=?]dЙG;М_z{1WPx:go-eht t!`gyx(I[_ZaeEtWBu{eo!w>8w QC:8"*|H +\C# Ne* 麥"e"躢Rl]L%oFuB8 N BYa!aBCBԬCHB,CBX0T ,Fah"jUDX+葦̞珘! NJ!afe,8C8pRZ6xɂToÈ7%kΠQƒ;0UwSO݆.Hev8Q6"ňlтu X)%bTRwhp^vaR u5OR``J*vHp){CǛnTCYU'4Pu̚8^P 6d4fPLZ!xԴ9]F5,MS_6dQoi5F"Wf +{upOp7ZYVR(Y$8$UXdhIe@Vl,1G%)~bV:G7AsĚ =dV$;!My~$G!x<}YLsZpna4׌9]@Ǹ<1' "nO37Xd'ov'5nj2}b4e}'+9U;k[0d f |+eu^, I%XOt IR/*#0Czq|.e1iL-3S:VGj|32wxy;82yC2"}^!)dDjCl_ƅۺK?}~h?fUpi@bw"3{SbZE8R}8VN)FbIGg,=W`TYy &GԖ0_. >_o> #疍m@S&X.Э"ǾQ|XQ>_rʯ)b*G+cѿ)qϮod.c%?/ PIK;c0|yvT{ jaϜn(讍57oRPSfCڃ*BbSjZ/9`tsd1(uM[ɘ4U}Ҷp&dk\294˳`XiFk+UOö_b$o9-5*Gʶ$s"!)bZIXZA95;..Iل*&,é))ޙ@D7j8H٣+t_Cz+"!g41] 5S+4}qUleAJ53XTC96qiYCg6ٕc:i|l&Qi-{C?1eldJBXaHdD͞f,L38!#&zSW'lyH 'ߌ +GڣT~Z@@)jK336.NG"~Նe蒄 X6OMSqTX}D;nt Z)27@68]Ti);]~։WT H> ͺ6xM{oHrR*)sY/|ʔNuL,PbqOAQ?.w0gJ/BUu9<6E M5H%ƒ a~ -N,(:c ">Od5I#IRbsO峀Z)R*VD >S]<КΖjjjG^4,7e;% gՎ5Lmd;5O6 +e;e WL)ӧȔgM?de*9F\9+uuker8J.;N5_:j\#Fz_=M8w^ƑT%6#l;7?omnM`z\woOy\7c: աzMDO7qNÞ.Ԣc`^|~IvA#>1Jɖ4ϖ49~am %UaA+8-b:8ҷN7ޅZ/7ru]W\}D=cE ,#mquvY$6r,XUOѕ#A'FoiJ8θ2 ϹWb>q"}'DUh'C^rKCVZL5 Gi/,}^O><;99GNgi/S67P B[B7XV$'H'v?P m5ɁkkrȹvoEO<0k^y W1lSps(!֭:T#Ge4rdӦP?δ$wP [ +X3HvUé[A. 8&`Þ1[Tp#"͆$Y/e6Z5;5k@8 q5dp( +T_q8e9_.\Zq̓_|bjvFOcoSq׺*x+ou0;[ԎԆ^q0."uVZnVZe7.Fnk6 7 =τI$2s䦜~pcjڦ|u0{&JY +}Fh2mj5Wy /eV_.3`J e hjLKUrdbT$rq +uz]"ztH> {N:p>aSLӧ5{oۢE0(RkL'o45Z.^䴐ŝIaTy.8/8x]vz6^vѩ)mn5m)4P‚8zs3D>=+pǘ9߁8%^OnNH ~f 6dL`kQa} uUZx'EKm6&SJ +so .04wI|`w%饻uȝϢ? ||£x|n$76N+d=WtU I\HcӘzl0' 22u.8C:8w_+=q+z37H¼/'trTMjU4bY^+-@2A}T.@G|ʕVO;SĎ׎֎L{lu@:)Q@ʠdH`cm C?Ƈy‡  !s=\\Rgtq΀[Ґe(Ґe`,ꆦgfԜP l@q%@f܆p';hY,A>*Wl9WXwz,r' 5d=`Lt.R1 ƍ]0<dߑ 3$kƃ?Ü. +:t= ,D6}::,Q I?]%_Z2*z"!tևd0Gaif6DSaqf"dCfB: 2N5!}Ȧ Ȧg@z/2<=7KW"- ޻ ^yp1G eT;s@5ACLǷy.A^й߲unpZa6X9I0,U-S +nNه4t o/@"Y43Adm $rO%"JdFP2$M? =؁h_Wa]3~@/pɃg}n}Yذ((.P( P(}[?9Ya$y%ErU$;H*ӍUr!JTJص;K8G7tҍ~1]d!/Վ*JtK JC$.a%O?vOp,o!h:4f$=i74hr}c3=(ۆ=8'oy5B$\Bح{d]8yFB]*14*Qrg( 6V*w!Җ@gpZxa;Ԣe|W5 g`g3.t:|N=u眫Vz5kWc,hVh^>a|s|!%G%Fަȿм=?o9*q(G2bo׮Bul)W-U*(}sAQaR9b[]#-` R{*0Y(Z1D]SBy%ל/~s)T캻wۜۦi9zq,O _ +MզL+ - }`*F̸ܲ!Is.H7? 2P$;& +Wl:bc. z|e`uP})pn X7k + `f#E=CV[F*^݀X25cJkzsɈG* JF#(3Cs'FF ._hj br܁yx\ k ¨`Bd(q׀x-{-{%.o%gM"@,и}/ hTd W9Y NpHthg;O9"%G fp%7 2%EOU|{V3I^tHRC-); gnO\4?)AΆQ&#{Xhy ڈZB;g=fA8`/CqMaȦ__#sA e[U<:,o.&*^įEwFaX!C}NC3?+,'GiBU}zK~Ib+uGey-[=L*{}| B= StZa$eZfSL`G/ `_!?q/;Wlo[ cVDHDڷw??Z{P#Zp(2+uf3_ڐ(HrfMs8ɂ-C\y7vT.W%. ]rYՀcqMloh[2[37ezKƧK/,G?eOARs Xu6%W-Xɭʔהvz\TAi[wa"S:bL_IUn/Xm/v`EW7)ӗ\، =qWY ӵ h\ @y6@@Ҍ>fx 6IqD:Y'AցuB>AZLhK'KiϫHw.νq69ᝀ)B- V}2Vi5YRh;)* bFӭhf}>0z&ړU$)mL/y)h(z,8He|іQm%ɮ;~JxMR +ACL7E"L;rka s8(  `ݹBHhtsT2YJuA{e +MSW1HVl{ ?Uҝ;|ү Kc-x|>|>T^wK*Ux#+Wx V_yRy S2^Oj[sRYT|l zii/B9:H%^:6\2@p8C 3v0h7yrf6)20_?7{lcC ]Ů18jQ5,BnI1׉)WeU( 0ga&&70PV\&ϪaMU-u$jD5@ѡ훌CjmĵlCvhq^ԅHn.mn^Ճ#R*~EZXhvmxu]/ {jg>׳{B{h7Y۠ j~½oz#So{o~FS3rǦgbYJ[·Z;0gn j޻|my[;̷w +78fܢ_rC +W;E7R7c{oO޺pֺ +9χD?bqcX#SK2'R>b.5sG-`,sIWlk³,V2e6ec:J;]'O~lYzajzͰ6bԇq{Tz~Z=7O +퉓֠9܄y)[,x{Ngɰʼl +S^" +q؋!CKd Ivo9EU8|"ԉB\nLF=>'^gEQ[/KT># f8񾣕phNz2)Cdh:Y92FI6QGZx45.@%*i=֦6+g& ߞ$lrWY84hUKP8<Dұ"JAZ3 K5#(]׏YR }-l皛YP%8X D@ıj 5Y1'U1']2G@ʸ:Їq>GЇA91x`x<Ї$?1z7Uc/q39G?R}$P:$Y*Jt*K5.h':W@k^:S NWVMzlV9Y9YG:1YѪ=YʕY9b3+9r3Vr0Vtr3+:=YΘVt3-1F<%ȭEZd* + Qu*.Eܨ*NJ Qy* Q\ҟ@TtŇNTJ?AQ*:#*0F#*0EF R# X!zr#TbJF(ŕYQJTaQ*1F8GFA``\. A:eq*:Q** +Q*2F`v0̕pbIVGLm |>㻄>5u\}ڙ[+?{{=Aߙd91rл8}ƞԮ_ov's~^ߍWH}Ou: ?{sk׍;?0>sqz{Opߴc;5)n{Wt7 j1YvgcpG~9A\>Y\ͧ~R1w߭k7TZg[nncgòegTF>~ (W^;~_?\%7?[<tO-7r}?c4k.^O^|Wc8~']mL+s{be}/`RiEc7?w'z#| :o>[Mi#CDa:I3&y"@ID5hS&"h&ܝ$D$&轛[sIkN=ޕQBߡz#I?t=vE=V|I*>#T|$J|DQXoI|"ZT|ŇTr#NШoQПDvȝn&u^WV"um`kSdQ:pQ[PfڔNЭmt|WRj:2ǟ"PLǟ&g)K[gDZY\KO tw6*SWݼll!U3=i=vx3MwQD|r@קaZ^!ڤO`yݛ;U.) !f*QZƨ.0Tf NRTA2J--ʃ} saaO++!a8SzL \>uY˻V?tR:uf̜33=h&4=q +J\L M!]S4먀x{s=f+dWUYۈI] `X/d薇o[$ҚST|[G`. &׎ZU{09 +fZُs,CuP [h=5{F~oE @yod΄XN:D:TOI.v>[WɄQ~SGl?Fe+_S]k APnl&)E1CD`DU v]Tcg2Jޱ '.^0L.`4HCߩxݖ#O* +ǖf,C뛆dl#F[PB4ױWΔ?GmeWkkq$YeȊocoE GG2!~M2(Yygpn#^lhP'l5ݹ>!ͬ1@rvnoKH \Az~I6aX^IJ{:|o} IIDc:K:[*Qkfk2GU%9KfQ$ -ZSWG$Y݆ i=# ܬдE"S~>(ǰS^ExRRؒvsFxFt* ;ItC \dw Ä+ėY1N_5DЁ|S ^$?d8v<B`, `SR0ˆ!p`/EU+1f)YۡO #9Ise|+HbwA_"d!YP"%["i\"m,Ն7&W.%<ϴZ6ZR;9 # Ngb!f7#L|01Eg`!# f6̉"$#ࢼ=4x x7و?AFV$Lm6 pD7ɀH7P)v1F; 4$3̻e6̯hO3D3\^v_Бm=eqpt7؀|(&#]8-o!0Do 1dVjϛS{kw(2xؑ~HƋMg!o-g;"֋h_^a'=4R C/#K44(tEZ 3D$C^ONj8]qT +tq4%+ߥ.XHӇ+̑k?W!eHA־Tu K3&6@AUW;@C;2@07)ɻ7T71op;xZ{78bl($7/tB+?*r;@5݊P(W5{ +x}8 +KfLEa&@W[dՆj%QZ! 4Q -UVq͍Ԥl'$BlM> 8!X">*T`V(ո44U~W<'`bRȱK .m[bNxu`dlNW5 (KZ2T+ ioNH^rq )nu9 RhRWBIH4:3ʘdB4~Q0FvGɼY%"ye-9X`WB0$MԢmfrc?JX#erqDrrkmBd#U+ūy/,D]нZغ+lpNF`F1hVYUhNYcn%ֿ::q5)E)uZzQ+!2QCsQC{ӳMkrV(CC^5UijIh oя(bɭQ#DD=Ѯg!:lh4Jć#V+>漰Z#@bg[WFB:iev^z` cYB^(ϡQy a{i)N,c(sJ/>)ߞBu'ldžFԳ?jp +omw\FIޫhsl5yO)FXO"o^g;dt ,i_ kU\#9$' N'4iQ㣇_ڤvs*_$r,~l*y0g\j9֓݀F|m ]?MRC~:{M)V ~rH_k1~}U|(7~U8ay?!?~돟ﯦ_ϵǿCy +*T*ʪʦ:PKѪsVV̛-꾄OYYeKK=uxf^ +jO:_E 3@PBAò= +d"~={l2%,Xme+}SgROprOOx ,[p@#prkI>V֭ n}ooU Oѵ zU%,?7Ͻ5ܕ\/LER+ܐ_f#Fz9s4(ODE|~F-~ ~I,yw +jrVzu=/߉}yz?05`aO&"Ta vk 58v9๫Xnc,:P] lѴ&w[qݾu<%].2d\`ԃu;F-ZWc9`ݲތŚ#] JC>> b ~?/K2\؊͖AYejh]y d\zc5Klь56DcgcgGpu/;ٞNJ/e)I>\ #$ 7XRh /2 +Rr9h~@}֘)~5gaZN nMKNky/oQPA32J3l7` +6yO'w/YRܔ%ѕCA?`"sS79_ﲄ>Y*9)rN?ʎMZ>2j 9iXw6`ݬ];\Kjȃ[.W~s^Vy"~jkUeIxK'S[z{ُ*K')M?%P`=ˀ򴲸]k)\i_CO)Uj?C 擅})Vj?*m>gywQꯪ`<_-qH:y׼{~ +{O rG1=2=_7ʀ<777=7=7@=O>;_?7ڀ=777>O¾?7>}?r?sP?tP?ѻ5b'h6R'jQv8Q;7Q;89b'qb7B'urv,YbsDq,^S?<:'B"8 +{;񡽪H^7_!wrT|{Fڃ#_ѡwvidj*T*[ESդHj*Xjg2yәE'uBv61t u‰@'?ww7861;&1& lW & nW  ox @8Av `기Xw5HA<"A+'@#I+'@^`u<3E'xB"49?xc'%-h'E/p/ԡ8.ȣ<='8.#^[0b̢8E#M;L'Ȱ7L޳h}oxK )nB[98_n=[>*f`/1#zqm*ɋI|r;)Bÿ- 4?/6GǧT=fmEŵY/ r]&$^UpSMR:e({鎷:Kr~S+ago,ϫɊ9< + `ٍׯj/<Gy>L(~mO\6(A۫ZI2٪nڟ/œ%c}6 T$~?iJ|繗\\u֋q.;ఐzO ah(s? +Mm2n:zuB _$[uNMS={>.M5%[}X_OV95vgqh흆{Kd|3%}*i3_uӊiuOgOԩX)E,0]23cF[kuOSvhs?'{>4}p~y8 G~ {rb$0$P@À"B"H$p-@H% $@% \@\@% (;.T y^$L&@@I$ 2Lpގ8y&xx8G>@T:& h`uN & 8}g#8}8~gcHrac;NNT7o%z9ktrxBs'4˳ϜS_R +箜uuT{겥SWuyԅ&zg9j'Xyqf+uRZ$Ru]Wc(?DK[ʊ׵Q%}#Қ1,-][A>u{T +P+RnVs@ +B0tI+ U 5ks2ڌz{9N^֓ -L,W'O@KQ-oK6=/kǠ`4W$xu:~@ث zQ2 +(:l[D\EvB,Һ7ҹyf}Oʷj@_&3yS9^ر]MwN7ySI 'Jt+9r)ȔFC橳\&cԅZyĦȂ36/L{ĦeQ0 F +U|EK3I?{s(((&n ehe&'E KZ2P1*73RԥPRTD%њ+yuaJUN7-ª]Ο GQLKGUd/QﴔC-G9_y*2{~!V#ζJ*r)'RDFD wTl P֢uƀ| -+3X-)Hzh-d L(Cٮ_7d mjvJJNsj8vf,yFUzk/TV6si R!Pobbc1UzUU.{2*`n_%])N^ƅ(*-vCe/Thb(H=rB˔w1w'(\Nsb +lw8P/2XqBg3ƗckW9ٓ%Bs*uvKX_ZbUۡNf&IFNl.4Ս"ݚONm#ճZb{٠\ ^x{cX d'3J\h,;0Fv.hBMbV5#t D14p;L3j5 qG4EP>7su ,/X@ ,Tq4S%,leIxv[Y=@g7hQ(Z,Dx(8 +p'{A~,m¿/b0]")zOK7$8Oȝ=!V(.ff"0&D܏(%-g4KQRR}C oR>f3obХJL!yb^\4l  ;Ld|>c\|zf2X2-/$Soδ%i#oz|)jqthϖ\ֵհd_9DO=z!)֤H0F^c_\1 rNwfIzyQ+/RV8r7to((;2O[0Mh؋UBU,*؜9gE,LYN)-yS+[)uL$*=ȴ~4 R(#pߖwb 0 /64K*^7}wh|*15#n~ǔ~UYw̧qZe=.nIU)%*.J3;[_7zUCAmZ9;l +C #Ԙe1yc)K<PͶ'5j!կQ&1˧'"՚r1=o\6kDMRsP~JWPv_7x8YA^'5Su⮠5C[ڍscTcEӂP '6V8`DaܻN, o8PT;1ܨ?wȟQ{}]Pdh:h<6a"=ƀ1=G>-=G~-9Eh.H9ߢd+EX XTCA>6Jw}s|G;)~驢7 P߷;8_7܆71]+,tf(:f!dN)t P44P5d0Bd(莅`iȣ΅dȳgBHȣZ΅H !l:!"t.@Bd)':!:!::!:#!ِ̝掄΅ȣNG !^t&LBhE 3! C L N О212C@d'Bd:Bd:2c2`LRt(|`6E_`( +mmUғǴ/(p ў߀9iPw냳EO 껋nBk6e2P[|`Oq77:SM :[ .<m:I76w<ԧ|}&zG35ɵ2m7 cmF[ݞcum27K=[qnx=-V_.-8cy3M%[n>=Ycc3ܯ7!c.[qZ͉&sf|~!^>}cG--}:xkgǸvltgǸv }M$-_ㆉ[o[#G5ȜMacs%s̰ WL#2)<侫sS=QNCF%ArԪ汴lT Hi䄊6v]NBf oaR덙s1u׺n9a53v70喃H늏E]:}{p?(VzF"I/ d"b/hU?$\?{ÕReab ^(9iEPmz7<-v76-&ّX]_TBgXʃo[61 +4zҾSXiꑉ3x3U3uĚ^9=Dr\.RARJHTQRtTԔi7@ ]Fz +ITV6]GCOix8 A[|oxgo?PQQ50E4Ex9Ok:9'~^5P्"#K9 tG#/phY3wQjmÕtiz䎺q!yZkE9Z>w gnz+( Q?tґvS'V% D 8•7pULNSg5rl6ǟKװ#!ݘB[2e7o߼'TjA$Z +F[df=Or?LC~pTKhv ۷n* mϕf̌@W)+$-G7[lЌe3@cag^|- QȁlDBS-'%pQW1V)9IV%  +їgTWߘ},]l4nA5fԯd.;sh+m -JZAy,6)/ r$,"׿rg/d}/9OPrrQ0GoL(Px>UƐ>Os =|fdC lm$PJ˃:`p 1GȎ3[wy5æŲdI.TH"$ohGu~) + #4pKv ӀX[ton1vӛæss6z o~Pу6"h(,>h4=@&'p5ҏ^WGߤH?NpwΥ|Dc/>o>ؾ6|jn[ϊȮ8K[6$u7L#{ ˙yo_De|ah5qW37el:ڤM+[R435;j ͫ`ÀP :w5&j3<~N#6c=hv }@ō彍P[i#66/r Wy_C/<5֜Wk,/0/yb_aswX[KWOG^x׫`tWZ\31;ؙ̼!/ d9 BߞP0"B :fs6,3?_?C<XG boKխT1v7hCI@'MFJ((kkwHwwJVH7*y7b׶FE܀akk۫ˍ]pq,sَbiq'62;N=}x@D`;8= 20Xj`rнɇ8˅=0)?^#+'?^(+D2N'%MYR4D: ͆7=X`>0$pA9LrwCA=v}xLm~b HAʙ6L  ܧ)! 踐qjKvNG~y&Cu#MV!s('<>_Q)9*j3]lrL4ȃBj__BξH} u8>s L|m  ٍin(g}w B21vk=Za}NR^l:&@)>mfKuF|M?tL*axJԝgK ,Ix9xR*\ţU'[~nwpBCaN,+gz4_c]nJND8X"CB\ƨy_! Sg +$(`nݪ(XCAl +L{L]tF*VꆨKB*Z氎ߏ +7?4ml0}uk>ژ3:)88cf9W Y#2->ݡ첗|23"u)$dR7 <7%?/9t>R\:[A3Z" Qn"57 }qTXQ!Lx:W8X<DS o#h( hx=+<+1;%ʇ|f9v8 (a=Хh|Aӿ V?p\J!Z\JkEϧa(\ ԻkYYQ9c톌Ɯ\%72Jc<ݎXo<|Qa rzbAq0i|XhPF`#x$IF () E$^k{ QJ7KIcن6\N\hffQ)Y$*)>]l8$!GQ%M~)KYV~zh.~/rLw~&m.kaM^ڤ>zmMk1;Ȑ5 $);=b@8<)n-`)m #-]O:":T?xm?վd-amxkğI uEs墭;"FeELbdj.{yWMזp` }Y;BB&RMQ0mH5pU4jܫ^!wX DT:I^$`m@WvVmQ;tߎ(\2 =ig/[޴_wG8$wby{~Yprbԩ*Jlxz:Yp^'/%nadn1kNbGCo|CC<`2qԼY]H7&yJ;hVtEt%'Og5=a31b(SE+w -P/z4 :7#)MpWah +0(fMmZRYu~#R$T'"P 3&@dnHРjTZ& 33͈ޣ<W읧F~+"-(#0eq1$֌Ј$5B3y)B[?MFd4W@$ {SRCى@(GYvڶ?¼ +wG\~]`5E~T]ݘbRMpo?G/cm0iQ5kɆrEW0ZзP3 +7a2T\FP#`Ÿ.ue>wze UpK L6k9vx7C 3ʿR*M>L֩c(v&] ECxX}zqiM כ D&Mr22)jg։f\v!1~0~,<1Jc%L43xaDYaW> >3$\|yT_ DZY~CfKHm/O5ROsZsQpw0urT14Kb@"6V.CR*Q@rWh:MWIp  {D9?f@>Zk9bl%Q֭4f>Igb!*Քz4%)l6RjM+Ja<]}|RB[ 8ʯީ42-Df\R0h24QQHp3*\\U)3>W; 0w so?Uc/`$oRPl(R*VZw@cU=/[4F 7l4|X(ƒ!4<'gAp$!wU)Q[j';%/筩WOas8*gIzV13OrRsR^j`$ &{NوLUͬMC}rxti0UnI܀G>z S6Hyar^>.%{B(};e tnn;Bj:9[8FenĕjDZubaz0,1h"曱e#"].|U0D7;Wa2Z~ezF + [Έ *݋ 9phA [;!L!nTIz+OQ +wNw^Q~!dћh[ Y -qncyfnc \Ud|i3,67Oao # &p:P@z% Pi"n#\Hn$n?9!`ێN'syT y yT!@gA#@$?H% :? L YɃA@H`I[jAz$Z(o^5j0w񬏎0&/qn)m[4%87 AHLe8}&6c_K2tgoNhVZYʺL$W/utr}ZP_m~Go?UBP%sTpG9QP#z${TDB#1"TUq@TҪJ9RX@TQM)d$eTܚe*hL.!N Bf&q BBFdS-BTjKBhT-#=PatL=*ftyj֥RTrզ6.kU.Q36ܷ:Tت]QZ*Vl(:8uF쳠Qpd7T77]bd\hPIr]@& R;ʅ?TIA%pv + +i/T{m']37l{6½^%-w~̝9 +VnIb9H *?-$/`#Ōy<=#U+, oN2a|[؉tv.sxP/exم3SWmź0Fb1m}b>DQn[/nZRHqQO_lIMxHK)u+"Hg,BL PzRk͜P!{͈,Eci4Rwh)|ň>gL[j$yg"2m,a~M'1oI?-jAk 4r05达Wٽ21Й!Y8SvQ cFu) +8mS/ iZI4!_B(*nA ÕEh3n&n? -et4NRHzl`ΜB۲s9]ḟ> sùGk2t'lorFojdbݻ*/M7;-^_9bZ 9)nS숌r%92g,N,-f=d7֬1lm[رbظBI 'om`!FMٽ= nkBLcsk<ҵ0kדd$Ք<_|UΦ 7} !fBfYcIꍓ%;i #njms?[0tb+MQp aL*M&ZN]aYxy$Ѯ XHKuxS77)z Ys~횧:zVo "6Dۑ*L"u;e7T%JQcG"3+%~FV#racMO"P@zsOt˞h"T8[1}ɭ J[0!tMCcu~z;NS9}v#x>R&#x^ n WraY]U=&3eHɟ>:?]qj7еT^eNنZkUAU/~5^ڭIs:ߡXc8oiz %pQMf39ic>(Mmb1Oӎ/-zTㄠ\X!gD/x>۞#bvBxܗ|0Ѹ7^g\c`٪uLƻ#} +2O-3X_,Q)Ƭeڡ\b_RZ!D.δ |І=jkcHMw'4usI8/C ~xsCrrp nL'-䱆 +6qlFٶۥ; [N i=0c`%bR!C򊮮#qbPKXpffncOpC4sͬSGO[.`:7d,ho)Om>G^0ŋX~ycSX5MSgIj*ԓvgоD^|@L 1s9亴T[irF%m 8|Ӡ4?GOO:+'I%_ORk=#4?@'qsM*!/C G)=MAlMŕWrFJ؂,a+KψxcxEP\}QJyU||Ț?s O`q~W B5߸h|ษ͓AUq2j/ b<64gNjXጭ+Żleb}ARײj>3cP}eL9l Zlؖ5]*Yxf2n&cW(lF^3#+#=3IaII0ɚ~'#/lVǗ +W +S\s'>o vwb= +j +Nd_̮Wu훟i\se,cDAw*⽈pCAlbbm7q^l`y]hVtt/2wOSxPq%O۽0厼#ڜr=_(KUV[]󇌼FS]1֥š)ePo-7i i ^Bo5XtczʟhjN4lФ%Y^3#창Axe`-'aԤ.^5.^## gH:؞ѭNd6t\|{DnϮ񊭰_|e >Á%EM<3=BӔ@a{ C>{_;>soK(`>m۶m۶m9m9m۶ޭֽt2J%Lי, g= UP [օнҸ[^rJ(X3GM9ZlqvJ v1}%9/k4.M_RSib:]Dаg1ۤ +3t&W)r&5_|AεN36 p5mJ,8 Q6w*d%4mޒ)(DBVj( f +C)gcL"AA7p0+[z MTٟyǹ޳;WqWb8wtBPoF5(DC  +IMe%ե:%H)1%"Z EZ!~%"IxEiΩ$>"{%KEKMII)@K1N3$!.Ąke\ s&vgp"'vgtb'~`bL>574=+oNB8:[P-ԑ08 +<ߨq NT 8(Iprxr ~*mtr ZߣfZ-5mєnf{H^܇ҟTsyh\_e襛qfP)%G|/vzm],Ii@/wҡh=;ͻd8:qqP\*/HUwpW\A51fmxTsAa+*ӻlɾ^ +2t|KIHey5K~3W`!fzCKKz`ºdyß5)m$·cf@!'# +E#!nJ;!ByMj^͔*ȭC')oI-JGѶ7(dhLnG܃x~ . 䟯 ( uɿKϷB]:gRc9=p_F5ÕV1c. +DPEX;WiU!i/'H*@;smT_-y.}63ac@#)((7,7 xBMXT6 f!))pMrxɐH/E>Plt@}D .k 8M2TjFU Ƙcs9g2z*uDt]-jZ)W៸2jj\wH.K̀i43fF?^_՞hѡ,I[YEsjYߴ$ɉQއοV+H]{rӜv f=$So#|VxmZ:WHOgzEZ[Su[Kb v4\IN']rXy'nZf߲=Fj,Rx򻹛pm6H[J;!נ$Q悉RwS(ӛ qVBՎf6L۔Ò͑%z8)|D&98\B +{r3gE'&*)hաBӝ1TSKt(y64"l 0|@⓼F`u-<쨁I+{ͤܝL]ӽG]KNkMCKL+tWN8\ +Y% W<\ :n9^~YA0Κk`._iR`;KZ,9mp^"`rp_5@o2Gs9f:߀]A`˚on8=[֗`K\ ՆPa00: L$DX +1 +L`@%2ek$iIe8)3 s +A2ޡ1# -٘8PkB2{0C8"!u sBЛ:CLb bTփ9mS5:jw0q'_y~S84b%iY{Kہj?\@Q 3ta a>G\Gmr2DqLm6!~x^ upWna&lSz\ٱ~mSrY"g_'@{]%@PijR7#XsAi 8`0؎PxD9G3c<,A."]*8IU*c4\ .>I> e޼mG{Y3s3cK8{W/ +=1 e cv͏kZ+Wʺ3Nl͏ZI1,Qb<.v3^EWe61J槏`#a +Q{ 0&`m=g,Qع,=,jNM 㒱e ȠUr!#JvPK0 +^*spVz'(~'69txs/.[s/U~e5痳&ps:u! lcJPSw0}IZkBFӴc`Tvpc*ЭKK05zamji g`jogK_KK;_IH}GDm6 f[74 +oM&ߠP=_LL2*4hKX?h]= ]c|]hoo ,<<(O;T_ 5%Ǩ`%)ү2Ť{z^9w(t9.ؾOGY$X<ױ>_L8T%X_d=ϝ% -= y{`ޭI7idؕ(AR +I xJcQpHO *eN0xekU_c ` pԾQƵxQXQi|jBop1! ,o#m-'h4z_9r a 06KZ `xڐ* Bfŀ!}@!r ko{ H@`Fa^`bS 'O| >#6u7^YWdpn6SYX+$=χU^۪7?%`q.]p\`.WKd\a.0m\~ugUڮ[rmڣ\;z\x pKt+.]ޮ]򣟮>_+ys >R \|5\|U\xoo\?._ܸ.{Vn\I[8o]}8 \wN{~8o/\ww=}o{p_~!wdFIq2?2? !LIy d3Ge2~#G2|d&dfN 4_dX{Nohm&aLHd|;H $(IpDLPllT͠ ZK;I8tX(]_LbxaMy>%w5& c窽cFF;GZ>~kjӇƋīFVѶ[rޑEm~22sCRQ1|ʹ#g]38naέt\բzKҢVuwl s=CF+5w͒їm*?^6Ҹyn6_5g܏muu)-vmunסe]ߏVQT9~$E1q 2P&#'P>$"tfJChI$( b@s +ae.rڠҸaոi{Y- ,MFs"ƹ.3ҷ]Bqp͹N>p˸!MwF:rؿ`g:Ϝ>Hx߅uklޜȯF3P܇qF0Z38Գm)tWz[d1k[xln P#75*jUy}CNLRtƢ^fg/(&J(K2Y nٕdi5uP `+Jbfaa eĻSM)z^}䷚#4ٹnPC^CSBF8/:Km,4ADu:}T&`G]2-kNkɎVzD-W?ܩxF2g.HU:kekMtq4I(gPWQㆳQkj/✕CSsEՕj#^ݩ j!gulA ^]XSXҠa#B̴L2`U뚂nE-/j&$b¢TۇM[440ed#iڶL7dPϛᳱ zkkPJ2YB"e^>5"_ /L.ٸuĈJgcA5]9:]T%:pj 9#̜z!~L&ǩJNGYY"oIy+R_zx^t 9ㆠ|되uӜ:C.ΠR9x-)CH㺬Im8@QL(IjIx3Oxړ!a5\I_/AmU5 cZ,5oI Vj[1L-m-f+^'W y *m3ԉ鬑5^Qf.HvNLD N˝`ii^Gns^A}u8! )׈CxANO$3eO +SSs*( %(J"? 'lMjڸ@to\9jN{y)V~m3"12]uW/_3 9N5>ybD P\I"cTHt*>Hy.{4jj4J7aj<r\a|ImQIfG%%$aI&>9$sĴ=D +KB4KN>*K4ٮYL[][{;|goT)A7lPBxT2)BmQ%(J}(JJRixZ2IzȒx$JD +0f0},#}-4x&vfZd-G0+] fC@o+*I[nͺ;C~VfS?ygO0]"T$缅+UcfiGE+9Ӡ]K#QՄDV3<B_Z&S&Ͳi!Rwxw#Ýt/&( +bp/&f*G1=)=l[,ZSv+In&\O]鳔N??;LJn9@ zU[0E]g~}*[^FrA{VMgnm/'w-ڝ ++W!mB#w%\B +rPz V!:PAVкlZ!G((V6P4<D TҢ2,P8HL%CY,mlJ#$'QK\]b4E;X <KU= T#g/dFvٍ_@%vWf7 7fL-lV(d57L`)#Zr9ʞ1)>a=qPپU_E,E ;а[܁?; k8nl9*]]dT-bjZ.@^!>iJꈦ )=6 S5أ b8!uB,< xBZ0 F/fCPiB)@ [X $:Q(8|Q)ބ|rY( +@2Z }aB/ P|QfJ?i3ꪢT;HʒUN#J +S!^[^_fm* +{Ol =UYkfaAƥY=WTtjZS"Z:m'(=H; + 3 K()=d"!eW8bM {M1FjC0)*UQ qlF@w[CmPj wˣ.`nAډ 4:KqFw# +Teы0j$ 5n<8+cIv)}U$7Z ĸ;֝ɇ0"j5XBc܈lHq_EՏӻcSV; ,1ذm3f}PPGZ=}rf)_\$y-M覞&ċmsW9hO!sBbDّ ؓTUH +[*E5bACcW|}2w<}ҷ1kE0]Wo ' z/Q>r}7Zww}GńYT8il9Q iK*ϿG0 !5 b!h@dg/w@kiP*kWAQ^^ֺT^P9v1!C~=}vOs=iwXrH٠¡_;VTlVGZ _csg?+$ܾ:.`wޡwtZaWwb=GK}P+uRoG}`oS7y=b}b;M(_hv:  W)u _e~6>̵z??Vt_sȎz 3 }6{{Dʻ~IJzq{@8[-_ w<]%@,)sd?e]Xe1deq 6Vq˓+TYnsM?ſ)},!Gh.rmiQӿ(1u O~<57Fŋ$e@uՊٓ'0S8-`BE7Y̌dMêԦTw>"T\5:xs߫F,.|T.l KP"0/:-fƒ&q3E.l~0 +!T@g!Or_VhIѩP/ ~S溹\phb8a1sCD e-ܪOU|:Ŭ &u}F> EJLAtF m(#fץʎdr&PYB rB;hE540XM#?Ƿ7~mpd98\\O)f;i8/OJ[+Psw-e+#T3 +׬Կ;*j͒fd%Irj>ؘY%;/1!ΡEfkMTz`ŅHV'f4ZEd951%JZ]%3U7QU|EQuIrbD qFΩV\CmyKͿ"kVꐤ*.B> }X;M^?9th8*Sd0v(&f ʣ87뽚Z + 1SVr1KM;Uę8Gt;XԺnF)htȊi&D_;oiJ ̀Ȱ /&!XKP$L0a8hjѿH5dZLzL',xmX4yWvŧʡeKݞ_*%XFxFvR Al=<\kPrsdF~okFVi. zm +cV#9q +++:''>Md,$*rrn);F({UJ,pk Ks%t^)ێ,{ 3>NTd^H?+ASZW[BvD[vHM,d X9w0Ҕ4 e8@NNRķ:8 +-ф1o:.2J*@ԵsudHzz203yӰkI`5J*_沸w%{!攖2ďjdwT,0M@&Y05 +LMxZ1׺ LMeZ—5ϒڶf53$#Z50+́al&̈́Ȱ<ؙ|}`~ةߎkaٛWcY$Wc^ 3IRCrKN$tq;\;=s./m"hL01Wd(hc\FsM#ƈ\ ] Wf=]p؎e{9ɿT #4%ֆo[kZS>S;`*& Mpn씢Hfp|l^槌ZKӏd5R#7<{(2%t? hÓf*T0eF=>`{-ii^_!u-b{Ge'61@|($=G ÷[nx!tOZV`Kz'4K$Kz wc?$S2<3eD\#rVud@~ɞ!ٛU^!4C]GxLVfej 2յN9_뚄ngi(}͜P}뽺[Q71q\lL’a$+\ NTYFFZguUKZ1HYڈAbr+4ŠP1yh~Z-d s!dWa;"Sx:PžP\oYQ0 ep`j +:D;i7ɷal*H#2*IDZBǾ\/q@\9q7BXG#Ԩ uQhBIK?k|?`õ1[PqbEtc]~X՞)8)M;0/Cc]6W+nWO~@3dᯀP7{8f*d6PG{735#?;U@xvfä7u7B)jFGa;m^I./[`or^\7F>Er+.5Ù^NLmnʻH^vroMH!j|@!,MP!fΩs68%G5OCtZj= [?-ϡM^_8 j*OIw\R>{wdk]Zj^;ϖD[!QUǿ"k9Fkv$GN|K-e‰R-u e7 | H@۲Jg[O7oB +p킶F5Եк7&=hiP}jLD%YZ,9%7I~6Erg+ʞ %*p/H*#0‡m wڰw8GC kเ?%؝dk>A]x8*\)lQޡxG>p5-t+4@*w* >us3uR^iMy)I5b c3q <@nUX{uȤC $ԟ{ق6\8ȷGQSNz7d?e_ +܅j VhLw> ;O6_.]1uNs0sl-YͅvcDhώrw־ ;5 +O#Ild5yǝ +A;XxG;V[39mI~] ~c^oF{l倀ۓp9/?d<3 6E7?!j߅Lo~P75c;BHs8sgmE83 `+'Gd۽N/V(:Wd6nB\pq:(^\V{4c1d + O!Bo/'APY_'}ǻmv'#u{ :_R/= 37S]r3:`1}FIutm)}@@`_F卄-lx756!ƑbtBNisad79L +?)pkQo0.4ı*3{꧁ih`uܿgΓh0Lqec_ڕmpa@WHk0 jnl}'w #&VEO +J.U' + +#+~PMCߦئGbG~QP>@Wrn[/W8@o/M hBIql1}bPJHXX{J8)IL Ke)c +^ccOky¹aQH9pфUn4x!jn<'ϩCk80м<@JYF*5*CX8 x.Xϙ9{0 `ҨG˂eVQ 7̢#唑Am +Lع)1}'#8F!C>560QWӾp:`;9hL:z؂;z(.mG֝0.Uc츶$ޝPúKޯ6hwPC<p>x ?pL|BX|R`nG> +R7s/}&7s/Qs!!y/hE's/97J? os +$[)hWh0@ա8W{_qkO4h`n@G ~`m\n=S#~WTu;Qf{cG(/n[f`KsH0XOiޖ|^4|>kcܜA t'Pg7,:Aֵ1CHaM, s2Ƙu4[j~i*.0r WWA< _ APE+:n,E.ꥇo/:g5V_5 3G-G @pBzpx(w% 3uY{/h-PȮѝU.ǁ+ ѽn[s7f# ab\թm 128e2$,gpqp6g{RAzV؅{s6*CP_ԙlS;šMϺSOK֣2K:Ņ]Ef0Z% +mG^JUek<5<VTY FMlܛԷeHӰZ 뇲(nBFNݠX+H(RGoPĆH[oGz:fs8lY_ђ;J`~֘pSY7IRgD$v'K\?Y~ +|m̑0CO ^nUZdwױǃذ[#+Sϝmծ M,&C HI[]3~az֋ҁguEZAp43)ޅ?l <,Qb {z'UH&o ~r]s{E~Cyx HSnx3JGbh_9oJwݥ?$SxjQco06Plv fb}- u=- GߐT&Y9*_2f0˂olRS%dҨJXti] pjƽY׍b(R\14BF:grX?߀wLmDnv. ldXκS&*nʺ'ߨkA]oڼg.Iͨ|4giIe?xnVŹ/J ^ξ@w[F H[BDq`G<$s/5V>Mh (B\Ԉ,;0-HS?e}pw ~uEuZ+LsZ,Z +!Xߟ|~@%,^ԖYgnN-/{̹_|y3egˍbڰ Q|mĻ +G1k>T y"AP?*\D@ѢcJ+N>뎛6)VI1kgƓlI~/р%2&%^/iy|԰ƚa@mG}-UQTj9.I0wy0>390l͓o=DHS; n)San +903hns_d5~lŔoX dyU=(IbVzr靀uЕ6MjBDduR4w:#sU*<090P#K7)A,!4? +Jtc3N z1D \G}[P{jP4&JTpM{M;Nh>`ΈeP.sm +:CZm?;HH"c=xbԬձM$Іbi٭l k<#iU +$hؑD,jʒ-xVA=<'lw#cnd~ṝy}x# cưd'3j K4 +K(e$nה<1JЎ7/Wֈ݇S#y/9ͣl#UCRϧ@5Ίت;MsֲNjQ0ȴx3D, Tm$ʨMW9SأrԔ -a,ũեUac)Jl~Qjg%7s02#!0Nǭlq#oa1R{l%zf;>]7Wޫzĺe;BjDneIvrLOӲ>l9$Acs,lspk>Qo +-5MSt)Z0|2s{yt2 M Y,xU!Uv2n9G=̹EEH Z֌[ї@2=%&uG,jEՆ^yl;#f򩨜"__1H{GaOI1*E_̓daM=F-qd“:@C٤C~ M!Fb-\[!elN:XvZM=OVP}-aJn/Qvt"<{ |ڭf9LۂlH*Y LMj +HgaeqcRS"!y4x]\\iqNc8 +bb~{#(.AM EX%{ԫ +5!KƼ8r +~-K݅x ͭ򒱯Hw!=$]7_u!;SB2; +u_R/]!N .V>Ϟc3;'&Xxv>..%R_<2eZa)W^%Ҡ;Uv+*#&i$.({h$E{rIU`Y7\ErcF'&e%U]0Tv1tOQ{F+mۤpQ&"h)HdOiIGޱpsw#"~L a$+Uȼ8xFvV{^> +wĕPm+vԷ $N| ;pd2`ZG-/H^b+'oA:~;y ~or7S=Rx!4:*4 XnI6Ӣ1d},Bc}n M͕*F3+]]Qo}bBUDҥK]dPԧ:iޑM:d}ZcnNfټ}4YķU&} ] P &a9ʰћ2Qc|-~IxGnkQKAƮ Ĉ?pA Yj'B`v58V 1I6k{c1/YkztE;yPCd~, {slC?w22,ɛ,gEk$0s/ ᰊ8Gx=T]/[]i>*@lK._"<43\@ "W t.`f ŞUBf~^-t]!#%mԷakn A0Q|x.sL|:R?AaiJU'Ǽ7[BёD')!LJ<{ z ;-R]ҞBe%݀ц$S^ĈVޓҫiYcEj-ڸi_WLy +zB*ޟP`,B8jmwD0wmE`\x-ug.hhP^.JYڑ0*[]>-TK,,A:;&PAtֺ5!t+r )7Q|o~+M#{C +4ɱTTwHO#w0 Q& &{a#MsCz_e?$/*z}b7c-z 0ғlFQOe+NW Rf,L#s{!7xm>)pe+2e{S(0Acu$溎/daSY&!V*QPWH)1lO;)UE G`Si[)%p(<4=!`X1̚f\)ft!I C1qwq7R[ 7-Az-ħ RԘ!R;eugE6N{P]lc+BH7D[A h ǭ +NvPUtIϧm+#n$XGC=W5ﱇ + ͒j&ء\r>6Ĺ|,뙖fp-Σ/ސpyf;|9 "#EpWD"sg +/'T 7h1&W.~F:H/h%n&n% C]9vt ^gEGx`lWb*ج/WAj룜_]50]@N5.OT$f]#Pcג&Su7?GjԻvsE*>(|0W7<ZٹL-ԥR?W$f^T6` 6v4!.URMM#hz;RYb@l^h!\II +0ӽ{SΣ^dmdmg[ +"Ax<[^KI3Nx:_|` ƊⴔX3 /a &6(T6N`@=eIQXG˜Rq-1xq|#҅T%b 'č]]|8(̻gӰj"IWG2Vy10ئ6A@^H. vv\[rp[{6 mjYu2 6yIײQ{gR;zhg$dreˢ#6 *xj:ȧXzWw]Ip쒙'ek=Wץ8[ةlhr(^ +}߽Zqe0'[DfKWy6=i;ܟ_[@rnm +/`s?.'"jmQ{ v"McO`W͎(@^11exW"l['}1hTK["U4Z:],~aH皢M&uB|6d:pT9f&WөaN$ށCH,Ѽ9#+`P^7b^x[ף.ES01Ś[p2#,>[p]d }"Ih?0{ +LOHe3Z3 +4|e))STn&m8l&$Q(`LHݒǠZis*Eލ /6J7&>§2X/Ѧ:gH>:JVPGeC "f'dv`^!BxH\ZoByLF ?cBvӉy}xN!g1Ina>8g&h>S0Bmv >ODd+|EEe#02sB/}Ke9e_rDٕYl-oyK:HJX|K\!©epG֩s UgS{ЛX0p,<7C~(,'):A+ $)i)#>&czÔ) v ȫBK2rkbc.zjD 0.5^u&eZZ)wJnTv2vKC7Gѓ.гEnɿ]MIQ֔Ԭ9RRri&;Lԥ)nj+̼AW!E0v@}1A>8@qIԓ4SjN) 4TDZ6ds-#u}#jRK˕2֚ 0)"PeyX#Vr X}>9W 1&eWjh]1PpI42禍8*(4 5m}'*bMuJajm ]eVڋR&9YIIR-Y{}9rDtiVBm`41uil 3DŽ#6cbf0 *J-}}IX!wC}P8l XvTޝZʉ|TTV?Y;ށ?/Y2)^hlUњ9ǎbjT.%?n Xڽ*`,&GҨjfjW6UG8Px&o,Ww*`]*ήP29g KbVvJl .65b5¼%wnbvOÓ|qNzAAr8b󎮐N/Y q?;t078~n;G&xoاDpUqIW8aWdd[Hc=;}0i6Sõy2X?52bvٸ͋t}?\! /KSfIb#JO0JdaX5b31)'hAJGLa1؄27e8/1 s[~V)>pgAp>N=RMA|/&cjcHc ߫GGg@/X*-;՜&c~G ȚE"F5jy)O;~+^ǚou; $"0w k\LNZ[ WV+տ9|l}Iqq ֺ +cM lL~ ѰPYep'@a &.#oyr:el]`ɲ5 ]b1\dX)ڡ]x>izxo?ܾ>}Oez=FkikEvķ9^ߟF{h3G;}PqӅ2ja<4@~尗$7wr$los'U>h*`#R~nsjPX(#VX.*n.$=ZQ2w`J>B,en>ţ fNly~|IES- Cڄ`,o0? +w[Uy\IFdTFa,>ޓHP k>e.Yp(wm?d=B;VN`MOj-]dd )Bv-<9- #э*Rq6Px3f)'I3a1N}{E!ѹ=DIwǐozy?!緊- D5Uv9WlWi`g,RcLpcxi%~q%ꊢl $J쀟iI UkT#ףōRfwYaU!Aw;,>/2q.ђZS7p/4dwy/,]B,E zA7K4mޅt@Pbú^ qno.IQ?^IĿUs*UnȒW tubJpOH oѼ2:-0yaG_"|bvf +:9]uɞ9q%Epo,bH@ +>`^$l5u6P\ᑏc& +*XOnxlQѴ9֜ Y&ьSBls +p6:%B&&(1 vr[i['Q!4fm,p +{ǐ%]= z[O*jN/(/oJVP'T% 0ОXme-sok|RfDF|zf8i+%Lݘѵ8QCQ=,"DŽ&ЗZ H7 +VHlH~j!4NɗP& fQA&!!! !o㖈MүMc+`)IJN+ ̏pxx{#Q?0,&ڢh|ăjHH9mGs^n^)©Ο;u_م2:-'҇[7"Y}rUv­Tn⶞]m:;<*f.E36_Ӎ@ raF.2 $D#i xqN mQDi X$:HpI\B12/s̑6-I[H*aP$J|(+ؼܵ-7vݠ8͋ Og8O0&NMMk`OweU;dK| !>( C3pZ̥b8,U{QJȟ0~RkoЕ8bIlϫӟC_p~t02|Pe0 XxVS %|3) QFk >DSD +ɁU!G9G%2GZ?׷X~y♱}Ǡ@D@3CU0]t&braV),r[GOt-.L?ٶn$(ǛIPׅ=E_!=p$6aH'mxzbLxRn9Ls{0ԤlQ]jK_5-.J.+UW>[afw|&יoVpOiѡ;] Y*ß0/3tR]NI827k B 8o4)n L*,mٸj,۸ɪ{9q;oaF+;v@<_1ocE™;9"o>{-܄'AR{j궱c6]tfR".Msʃ(MV4$B%z<"BG56cbeQx A"_6jNka/*<`I֖s{cLWu*]w/:~iAk=@[խ2}-u DhnN67MWfJʌZ32ӽ] 6ܺbTxMPɸxwWؚ:.__\ fjeWBHxmjLO<9^'}v?7r`Xv%3hep)8Kp@dNedN%מ{0MdС> f xu֨> 4'yc uǜ#HѤ!.gO Wo#T 'IF~4lL@ +pSh͋z%CrDT(Mg@ڼ+.5~x LZVϠ\UOqrnq{eo݈n#Gb pͱt:STS8L(l6IH_W$,Ñ_)K6i^|-֐@4nJ *`dE!4(5sc ҤJmw@%@kk U1HYOrdߠ5-~w`DZ,- 8'[G6{:Cogճn|ƟYڙKXڹ8W"ژښڹw疣kh3=Z]2_u,͓>(Җu${9=M!޹M8& r@t1oiYn6VM${5ȫ2C)hP=]M治2IOm,SACpYiؖ F`(_oWzO} ir"^Sh75ЮфՄ5ݶR*6]=_9xRuln~`MƕWc˪bhQ.ooFvHvXj_aA%:Y>[ڝWgP$gW( O] |z&#K>&&#63}]1./R!$ܸJL.6Rc{w; /egkIe_D9oa2~ IIC}:~;- qC뤦d S7،_ ~К꘧<YnM~.EXT]6,}JBE*gjUBDmgO#a` |U6I)ڈ:Q8C +Z pVY-b|BL(iYnbw11>q{YTTy +ǏuԆ/2wqc 8pJ%r,'^oxCL,ruѕ4s@#LygTCGlxrI% Zg@i2ˌ9ht\۔ ٌR<@!%BJPAUdUWd !!;i\F(4WW4cx/ -9g# +))>Kvf˨$թ*p3ijSf6j[=d-ӝ)H՞dX Qo|0-bt-v+v=ZƷPZP!"a\1$p/10^^X.H]r={l-{n-V2I*ȵwR1#":,yRsLNw @] ~e ršڼt0la +7=1hGnLZЇ[d굛zsyOOts'U[\Nnˀd(zkӢ + 2v[RMK#ih.u܁9MhG۹i;XVsk@eAŅpԈĔܫ]-8@ğ.󌙥\5gEaPIC~q[ʌu䆢m} )ሇ!lS$7¥G[Fk Z-/U)~{,]uCw4?WEPIH;r%*p_!<&4s@Ykw +iƩGcaR-L`0 퓌u7=PU 6(5v=2@ Y{vyv"GEd-C4/N(i.fT&ڔrX%zy!yp/gҋ~@fTDa˕܌\@!b5퇷ijeD6yu'K !k{qA_"C>0{ iy_,$xcW CcC6Qm|6yCUm6Z˿=m ԁ5ݱwBwd?~m|y 2VUkbŅC=ZlPE~X;8IX9ͪ&l̊ZEc3T1/ThN]⑬\pA;8=&Gd쑤)&3ss51*Q>&nJT!TW]ʴsHTL~_uT1k-7o|K YAJ +k=Q6}pd'|`w-^ExTxomGT~;wg=Ea01n'6 )Pz1CDcfُ>ÀU Q2{L4Xv6o{ g).|NL8#ۘtwDM$%vݩƺڦ5FUf aK%4ԞyH8Nw<e|kuAِ-oE309ze|mlwDh8-4fH U {Et~S"gϞ#B ~PJDo#05{e'++A |f~E+ 'afzܽO>nK- HyI$QQEfj@q7A +lOvY~56D 3s :aj 8` O񹍜 ez ځmf6  *}*I1ځ9}NH6T jhk-14!4 +GN3[47nM=SOPYCWmw2lF a 4mXGakݸ P`L_!$lG>8b!/0;؈a N=6mN]P!Ek-l{}$ SS=+ڜۜ\9yէjmA H"0ӟ$%U5M8+TvAC8}щp R1ڧɖMt,j#qGᡵsďUoT4L}Dy!"F)kMmux⬓ޑ$ns@dC/Z_9;g7}*Ne[okخs;U1 ֌AτBoHj/g}duO%TÕhJT!U/<=R өYڦ7=NJZ&|!S 9&< +ҵ[^֡VFf1 FK n\(B},)a!A)R8!7`*@f5U只8C3a5$P%`8dXvɛ57^ܢPs5Bp61#Y(͢я9:k>CCxNC=!tZ=hOP*mSBrXP'&7DJh+Li#R(Q=7cpqQhUŧRY*M QP};{scnffP*s?tU +KR]_q[s Q*ŎNG2[x* fJ $ƭN$o*kPeBV?F*̇ـ.ǥarV *&:F_\#RK3ig2q)h# u\6cxfXXJ"D4MVқn֬ w(N:6mU†֠lWEooo),?"T=c7_?odL .2SȚWCWd6Fx\+  ςH[?-Io>IளlKCΛ̏[rCJ-v*zzB?HӴCϺv/[6 GzĞ#xC˔P#zL ] Kw;k EB؋XqD +WЍA0+5}虢z +1EKwMR}RĎ)6Ô2@XZ'/xD' `Ng+]{DM)3 1e{1iDJ,Y6F 7CP?٧+v&SWf0f:DE0@zGPd +=_z."@ܢH:O*nW˙Fn.>:im8‰uV7n[:B+F1 U[ bɧ4-YSS?1Bg`+% n}9𩷮·=p6-,zzD`gF,zH4||lى`@īia E F2Qԫ8tJ>)i{Yiqg|w$qAoa\Zoy{`Mã|1WGoFaA}Ś~q;}#ʛ.:py_ugOat%1F4æFw.ǧ$>00]VQ;ZYE݆5q瀺F"8yH>LFG",Y)H^,p5VR/*Un+ég ‰ ۡCPTD^m%)6fq VZH;x]I=oHE4AMaR*W>.ԅ6/b<B4u9fX+I’dKq[dxfn ڦ&0>52`%v ;$2)='~Ri"a!7"JB|O=ۙ7=>hB R8[QjvɕS: 9#`]X>6Qdê~i]V~+vѽ?/Re;GTʂM8=Vu yD(g6yIƃ9)%F3IQ̰6*6l&VD:*c͒uE~'U\hZM=ҏ3$ܔN!JvT ^?>p}eЪ}^.oM,( 91S@=[\-j##Ԏc$"P:Zrl6:@)QljAy[<U-gC9~*Sʨ +x:OEW␎rh%El2he,CjV(9>D O fB͓ F +Pdi;]J7ӢTt$H" fe˴i-JTAXmT2EA}ms+& +diqvNwym۶m۶m۶m۶m۶ܹw?{wӕt$zIӏ{L|@OR+$xn诋h…3DK$Qu Vsй/_8K12^ux\D{p]:N-E$+ k_Luk_,_v_EuCQܡʴM<:$utlmY=Q)ʗMDVIҦ(YV߫_".1⩚x`@~\*oy#=%S(ꚹW5H޳&E^ Ԁ2faD-j҄ gfnsrui8}O&JW3K6X!G=2OEZ7!4 წUӍmnSw[}o 5tt&elqѥR v^$Pn-JwBw +3@ T@/`SmY)NC1|?B"W+[й{Uq}Qh kbǣ蜟} + uT̮|i76^@_4Z!Gu&IDd[NUWm"GmLY=ܠ )BɐpD"[c1RDjTtx@:D`" +fH.1 +>td0̑'k!f3t܇9wHmBPD|n=8xn̊t +~t=L%'4eUVc=dK̄<36IGvb'Nru>&Є+-M2VBCsA.t"P:'`KyXQH<K=P6`9_k?sE!+V*\致j^]07D\¸3| ڸ=݈ =hI̒! :<$+YSД1zM#yPdinM L{mC읊G]аEMju5l? ')Cf B`]A\54ƿKuwoͱ`!lV\(kܬkLH7ЗG@t)Sw%tN(C'OY;*ivqPMl*  fSרWwR#,j=Z'6( + +`B SiiRk @`5mK E ![XSB (1[kłtB+La:ϧ9G3څS&&CYT/R0ѤRbGBEHjS,lț HL5:yfTW0>Z:f7w=d_/ғ>`*I1"(M%p$*ěnybeLd`˨2Șˈn5y)Z*Ă:ͮ$|:E0? +|r]@;? b w Q; +`80" '#jZR1 &R``yZ[m{39 NpMJ,0O+;!DEO|H)D: +,CH'l~3G-, !:!V;>qH|H>/  ;9c:.7c=Hƫ[x c9ƪ57, ̗eBC)e@A`&J)@RbP4?1!(ʆ~ת}b'Zn_՗rc{A`d`com"cglbli# ߴ^J@YGB*KaHXiU&tl,_B Ywq\]p8D澎{$Kpjwjc 4Mvt'Z:ղVfJ֩mPf$*P*4Ie3ES&(WU0*"u}Ξ#;8QxO#Ѓe u@EŜГKk֎h97G,Pmr!4jpH5Rr"\t=©]6&%}O l AnNʦŻdyx xY{yCJR+ o)raKQ~d5C +pJ| +mIX\u-OP-:*M5| eBܟvJܜJ#pq%[Q۲UFℐXz >,p~#1곊݊>C8_g0W\$k4_nʇt)2Old!odB5:]3[a㢌xUUIJy[|/lAD`"۝ ?H]M;ӟ\~4oBJfYrdrwZz2!YQ 5@aX/]s q\as^UFŔiUޡzGuhO'f_ɐ2*N + vn ~z^!=5zާ1jVj(\$BF ɒ%0BI(tLl܇8-%%tRRV5U 0! Z(*U-xSZt|fe1H&2}f}s^w>0زu$팏 !r_ICҎikƆ鸋up >!~Q;a!{ @A^+'Jk H%z)Pb'"ֶ-ݾ̖E!G|!u ITs&ۈݽCiL`;ˮB^;nc]i#/N] ש %&ύt:Cmr7]  o47DJ`ĽGb{n8j~HOz.e@, +fkʮv f-s +[SJbITI]|\Z0N'K۴U4MeEaqձs jec\_Ȑ3MLht7(;m#Vּ̤\bRI5Vaz3̲1} ;щR+Ҩl+ٔY/wxf`[*у`TP%GKeiYINj +sA,M̤ vԇ0ۛ'P/CE{{);4k.ڍD%;I3I!Nm]ڿ9x("$P!dFy]4[x衔KJ+Ut fцyhZφ~,шy)iψ~B%%E~1OLD=lgVW/D?'4}7+"U굉MPcIT5Ǩkjm;O`N 'gb?Z:4A7( ؈d"& +ȩ(7TNc<#4RԖ2:)ڣa+B*e5 ۸U7 V7 7fnJkGUJֺ=b;=J0p=RRF8uI *m^nd72&pK3«vG=&>j9im"o; sDF*rQx#|c@ከ$sJVcQ:׾NsWdeGo# >AfCHTf n>=s2d兗z((?2 |_/,'Q%<pN$ Hԃg4xTPs(ExCDn4ܵ6iOU0!~]`ȪըLPPԫZ5Ms A8dBwiDNĈby@Ey"C| +8QC?DJԠP~o76rr!1H*FqSQ[L&;hTWļ@1GҠ3(Z)RE҄]uM;xbSGt SSaP7 Zl5K~ݮ(0x@xDX'dՋaUjP{0u{2vwǾq>SX'E?ba C:b̕W:gCTUt5[FoFa9b|E^$b-ɖm5t`d1.WԌj)[!T-Pgei4 Ƹ$b΂P%ПQ`>h XRZ8 WǂbF=9W+݆M4`e呔*lV6 ͬZ3ne&dx≰)%giT*70Rk 2e[+ARDZrY"J-P-*QL +Xb#D>(Q˂Zcgs* *V) +RH!>Ƽ4$ Uev: +JDI~"*D xj/b+dJk!ԥf@̰r&|:$`;ogј5їд46+XP/y1xAuE64J0 >yL;six#U)"0OtYވ{n4eo8{!|Idp.EcFGi!VeX]$ڽ/pOt#Ă|?XGKK,Lw]A S>"JݤȚw50*w0-4elIiiԩH&CDQ@_t= Z0sNInAQ_?eMb- +FѨ_ ʿbvmDۄQj!J.U.m= +_`YP'I@lC,=_f"j!J+UJzirV/Mp'T K;kwSy϶`ov܄|!AWVW}c:~t{Y\φ[ +i3nY5oԝ*Ngh*[tx-֠‚ +ty +vwL-{Hɝ_bD^z[lXjhM%⨙B5Ӟ鹊Bc>G {Nv +N ucBL +3()$h3HJac mt !p-jo㢋bѡϥѩKNe:"RY yH_W ]u7rԥ?}3ԩ>}u<@S[l<b ?*#`wE2û +g&RЙz??OE$t'͕<-@ο( $kWd]bhdӅZL+]#Ң 94,:"ٰDQz-F4cO:Әߕ#E-="F7wv+C58T^rN\tj^=D|[?qzFqoX3Ý^sF폺eΓ}Wt#v@*2A!+U=f#oΥ u{$uQ))xXE3?/+1@)KJBueMG I"4ფOiFuwBNO#%[[; pu)e+h K26뺛CQ4NCMcI9HQoW **T)Kg;p[O5iNlG%,W|!e7&kXM:K#O\N8Ēm_틋uҴ,AtGzKB1s+ +RTQ}AU4!WZ}<ʐi_j0{MHggkhFFJרS_nuliIX|ym2">|E{I&LdRL\[QtYzjdEv8yl\ea^AAVBҹbo6Hnt\ |EƬه +L4iJ%g8RY$#LedTLeJd\'tiE+Rg}JM!ehR}nM+PM )tb(tҚDԮ@*()GHLWM"ǵ!8&gk]"eBTQEO[2V˴QLP{}6#NrF +k2+"0VĴMBR)Fr 洩pZ6XBh]5M5c-NMNQW .+wjʾ=YPApW-X)K5ʊr`~?NWptO.uV:J V E=nEm3WvQmt(Tfdh=Y$vQ:˜k$/ U;g}$ʢ㢂zN) #_2$\bcv,V JtnQ{[V.@\܃mC$*Ӗdnjk_ BA3FDg0q 0S" s;[/Y6KsΟ+i[M;P!AZfYR7ym=kj =zzw 75m:@3"m9 ;R)è+ݮ밪Mҩgv;6~NGZm<]枻f̪_߮6f_q"H揭4O>n"01H'p[4Y.'IiswPseUq::)u/4Ho>mzk +y2Bb~c0W Q8ۍŧ$0% *nUE>:= .u, ͑:%#CdP˜q{ UqڙiJBptxDo(BDihL0ɲdYCG@1/sz +aܞC7sLޚDFI+V|f31jauq]t=ڟ/c.eQCh!Z4 =@+vf 2#:Ɗ4Ν>X~wp*9g"f㸪?as`6liD6u XBv",fNR,w +PͲLgO& B\=,6|a:ʸeHȟ!!F{fm7.)mZfx6"ҋ;o͂9lX1g=00]\ql Bɤ3[ Hޢ7w[2ZµmHJX!z JSvIq%43/M{ :~F1qZ bcp/2,\O"GE%EKxTBMq>mu=5r>>5x=Z*qh{ =7/#ݦL&E9l ¶ooཽ5JHax%eV&錶cLR@U rᰑ"|ZPϷB4,*aZ%k݇\Ց+Ys`@{gp.S|ʥI%J!y +떦3wmB wNڳbjf}Dw!HM9G*d܃?vBf{g }]+!^e1w M9].pdaE^}?k*6~=Ѣ@T.J<*ۓN*swvwm=hԖO0ҧwn)n*P6w[dIn)/ahͷB_"#< ts/F+ugr_0ROtɯ.މvޛ)YHHbBMDSv* bl9}) +]R/蝛(CH+H:.ҏ_4w%K"4#6KSQ ٛZ ؂n_m4uϬvJ6@9.@"Dl}"󻧏(+K]aĘhRNilCYo,̔,oaoxZcb\"$daaW^Ǒ +5@sV+f u!A',tp) 46W'OAu[Iu$z%LZ󥽕G'g+WUqnl8$xqδ>=7ŚFNwOOEf^=!qoE@]ily1|&,juUo=;}a}pdG)DG'Bv1ٟ҉URՇ}(zG# XJ,߀C6:tmaw" +S%D9 +>gT8c2E [0>#M(GZ@[$3/WI1,v@ӆbr 1Zseb4VZ\'݆2~|SMLjjpRrF12/?hFߊښK[8CY+9h{XvdxR+0Q>|xrMX*ss;./j˘QC2D K R0+-^ sDSp`I*9rBL|[HʊCɯ@ A{3˥k5҆g~Xlбs&/ \ۼa@j2B7`Fp ' v($4@0nSt_eit63B19\FEB u151:CJ+6.G+OX^9^D%O,S@N,Orb+PW tf=I XT#q}5EJC_ ҿ%^7U1(-)Rވp?{0Wˇ9dxQJk ZZ/ZN]{LAx;x!V;Īt/Dz{;Z)b'SHJ.63$ڪu2zgPT{BP"y8qF37.qL0i<]wldi\\M{IFܢG"W胞V:؟G(&Ax7OC{0Û!_t yv +2Fr)R^]6{|;}!ss K:*zeh;1[Ez5ʭ[*;*#$*+"*oIm 4bgJ&d oPoåݸX%^zo +o +{R1`B{(Q+e /o+=Y˫wF)$Ǜď&PBxS "2I($*ҡswn ,Z+Gbǰ0-c++Y>io\1s,=wspU~9*Y(Ũb(J8%{JXFzÔz(Ge4Q0a(d5ִ1H~ Cۭ:yյ&D"DtocSS'&ֆGܕK@M3\Xxtڦ(Sr,((ægUsJ~&}Gl)C3X[=E u:6X\3{L]CLV7?}OT oz }X%x>WWH^{Iyސ$p.iF/QWvO-2:}yF~4;),gapVodIa?F;zCd&BZ.lkհD$6֔-,BdQp(hImΚ=#AZ)c\r}teϦ+3ٮaM,=1A tcQ'!눳 D1w+6yKo<6G~0sfy.p,<%O>쀿+&u@},&}x`!y mTCgGrd)|,Xl&XgRVwxCFߡ0C{S1`xFzٌÄʑp{>|Cl"GY҄=ex_e{~'Ǖ@3J:(L[uy# 0 ~" {9b=%1Łp˃({|Mc· .F<8LcjVM!$_NrTBaɸ1z Mӑ1lfYGc]D̒i1TN9Tz.RK +:Zsν2MHT'N)Ƞr0/[E%ihZ0yF2 h-92cB"k%R.7(ʚIw@-W%鬢Po-"ueK7yG8E6ܤYf ^keҕr9)T"zم ?c,L&ۡHRq 0%k dG;[?TVm q=$8ȤLr]tatZ`=Q >!R=5!v >auehpQwn^]v|Kr²[ a&(Xc08!P!t>ГA*= XrŀTI(4LY 3+%ha\wy!u8rFm{g$Q ,T4f@OsK_<5ΝmWV|"6d8IF}DeKt` ; \}b 5eo^`-ͳBP8Epu'~g D-bӼм"G‾o #/B Q7|Dv88Va"51DCi RKVh o5C[6s`=>p E۴P\o:L$)qcH2cKi! vׇXQu F\ԇ^qa̠x̳(̋.=1Bx8)qPy*)vBk_7DڅJLɹUPn"+Tai椯4hGG&hFp}65x׈` Fr9 09'oJd,٢9WQQ9Ѓ7X ϻ)iTabr+6E >}Av*bl/&])[n?z/I @&wQF>A7ak'?}X>8@?|@7iXcvVP>eqsesK}YeWwJKKS.k1iǚѩikv?F|Z>?0L{jC=8@WၼL.={mw +2SyA7OnOAFpd}6-:)=`6?w|>Np]cvP"2Of#P$ v[r;!oN{=- EwJO{JO{F7 {'=)~O[jくl]mҟ0Q{=P %"?g7||n۳LT +~q5<.wxXOt>֎j5)$0qcP8:&}뎚Zw}|ځ +qt2VΎ(FjlDs+i2BEg E8S$ѺIpLtnOQ>+G) ESgq'U& l`sKB_$Q$v1paT11 jDZC,%`H$sPt VOoFC2L ]Yj4f͢Y qIR>2aԢpj$%VtSDipT(vUg`Cݭ;Oi=rqg߾/5b΄r™b6$! W+S'69jAqPJIq7]FUs"G2$!|H0LNK޻"㨴0Rbg4Eap?1F+"+#bI*dјV΁yh/%w+.I;3ŵ͔sC3[ýel8r:;IĬJ(3Xh;]c܆^"Ӌ": q1[ B9K-g]o?%/0iM;;2IOy'P0eEQd# )K_D$֪!ҺݮyK—X(QH$tK w)M;-!p3;Tyu`tkkFϺer֓w2hJh9?'HEXw4dzi!q-4_̦fP=d]6mG1>K6%Z9GbEL.IO(Fm&=*, L؛nhv491Yq_D ~͈Sv*\4GJub":n(FhfHm6 V'O.~}WW)2ة|%͛"Kί[`ѦփSC⌋R9JTM,olnN2YwnՎ^xn"nmXw۠5|ZwItbJ5 |!\YH;QrV1FpgAt6 B\#zgKp.c,މkoA3t"ɥz5p~"zʣy@z׆#z@s/Kz玘3fʣ{kL/+IkIPd6`G|>jgrGL=YBF n2BEF|<.u{ H."?yBS?K|Rw׊F/`m"CⶍCJ/yDdUuAX墄SR/($XnI}bv0 0:оpț\ǿV{ޖ_4s@b!V+:3Φ*VQb?'ӛ#t +s ZJ_$"㑘 Z"uݐr 𸟽`C0ԃ(:xrP?dI[5hP:C0ShEq( YZko(kxZ>wjgŸ^^U+:Þ) 1%wifRP!0#躖{V'ᵖ.d!s?ue͚{ OqFA])~OW9Zlaqӑp^ 2o_lW2.<-9XnDv jY:l8Z&:Z5s`KOy3HnnӾc"T;e׭DIvIʭ0E5.p^7PK:^J&{U?:@!G-AkXG=KoS]I?hl'?|7TpTHgACA;-llۂ8cщ YĮ%k]GP*W[uqt9)05'YDHzdR`%"H4`: +BFxRx | O6-ʱrp&H[#ڔ\&R9gQ )tDr)۹B`DMEǶg +7>Ln)g'H"lyX@θJisz?|E2GQ  \1 &~uU]KƜ$ǼJBe@PA #BAMG7\]]uܴ]ܴ\{|a!˂Sc#x7u$lOA:,\\_}@_vm^yD +YBjS,!:ēaC) g{ 7űv&tjlHzvKY#/d"z5o$IYN@\7 +܃P`<-SĖ ˚hN3R3s #y +pӞ Tl:9:¸uKVęњvPt%evО$IY,p؍l]c%%3sa!OhĕJƚ&Oή?1v#5tgc!EsO>]ZP9Es)b^6B=Xoޘ/`LC<‹=yPq#ِRQ/&2WcF.dy +t݃ [&q߶Aa=0w?"3ǫ.[OHzk[-;7]92w{6N'zz,>Wo8{#^;^ˑ2Tև ]=C~]#b+!Htnɂ΅`p<$ЂW'3^4[8̀|GYPNH)iS0C`g,Yt(9JE[}@CNV6~\VF{&YB\i 4*DƆ륩3u (܃,A|"zzxDHڢb8l񂺲ا618dgzzYy2ÓtɼJl;\dOWk3f<ټW)QXqdX6;yv3sīk`#&Lh^KoL)PQJ. `tqz-sV΂xW1TohJodfXf6JEZj?Wյ*.Jt&vߴuh3F`W+1 "Zׯ^BNTS7"$x]g.'_/ S\.(bLo7ooo3'¢9]o_ȳ̧U1y]o?I#@eNM#~@Kcpͦ5sx]J⋛'v6aZ&\P%[RVĐJ<`kޓ#6Kڿ4aN&-$ S7D2!;lA}<j(J4 7@T]}J)Tjڟ5w:V::P=Y>(uu /羞>7u>*@M;jv,:!=l?,7۾G;_P;vO .㾀5bm:.`<T[?:uXOr{\$_(s?L8ġD!f#Ih}tGptkR/@uAcذ~q~$Y?yRx )v@G1RDy?o!2u8s.9Fg77ɍ"޾e'o4ν;ߣC_kw$f/X}o>!'tt7xxSԓe'E eήW~ N)浧}VOAr[H3 Q^-Hx^ Ӽe2bZ{IDRguTvi!*Pj(cɸ\&FNn7"OGB#:-1wlz (_m+6v&T.>X/HJig7D?oLoÄl\F YAzԍocd?@ >d9(1dp0~5fw\mUa!C=B;?#dm0h+?bGN`-NWg_s +gXr +7yUDN[ƹO;ReNz Mn;h]skfΠ_ki(w[|O>6. +8ܶHj;R^nkVֹISEVq "dӯΐ*;r= )>5N1WPYqbX[~)[85@=|u ʥnAd$of] ZEk]JpC,ץj9+ӣdGt&&KJl.al>1r *slWQ+O3.h=nG/vXFp2x3n;*z%"bl4 WGIi"Y8X i2QaA39*6-t)|S'2UJr,(.= >4CWь]Ȭ%?D +j:HZS٪Vm#.el&9x3 uU|\&(Yy$DHT,VYTF& +"dgKbJ sc2cHPBG= +9J{3 j$'jR"ԗ;M> Wb21$xJkmܭ +16Ql&Ѫ6 M2,l+tG'zXrܽ(% "+:ܳJGӑI+ +d1M1"iZxnUgMQcҒ}Uk]AnJYfI`ґ\^ (uV@Dh@I^%{ju@"򂻜:wsmNұYMץ(2"tUUt@ӭS^p&_͏za+L(uITʜʮ50n"?]vA)и;u2MFcؖK7'ޫrO@R1?zPgw'לgnXUx}"^Ϙ5U|4iYOASyQ&`CDL8{VթCA"R/$O:TzZ9BWTMPY',VN_7Г''SmspM$P`4,1QkZX&Vn }7,'%Pw P@f)}ީlbܘn=sN xaY|a{q]~#ijVN"+w&>v1j?Lpn˖ # ¨x^*do(b\zVfT9T'#>#TATb{G$@<]Җ &/5 KD +ku7 ek^J.A{LOw{SÞiVTHnu)\`Vys5Ŧ_s5q$f5 | iS+r~YФbrlw'%J'<+3_9Ž^1P^<*f%u!ټͿ 6G?E x0W K/uv{("J2r9fA/z-Y6A#U]Kvh*^gj-;OdNYIAYrN 9+?.Ӹ|ɾe#Z!rQ{4ez1>SJ$$Nv9 &Ϡf亱x^uJM/o> A9 3r Nݶ0CL14^2vjt4WʖH3o{^3\b3o~#>m0UpQ5*x#5 T +ժًVԎiTrcz؋v=[CC..rZxf†][@{\>*%>kJ CH=ZO1yoˋ26K]̺8"ɿn`4ѩhFR<2H;p\$vG|0"˷_7(jޗyכ +?9>+2ޔ*?cK`"RG!~2 ޥY5r5=-<#odyZuTIR J3$K4ްn10/&?̶ +˸6f?ncE+M/ JC!$X-ܫ 2 TOK Hw)ljQ%oCs|,uDZoZɒ ZC(|QšwR}֒9rQNt*{`[e~sBt7̽TUp[z@6? +C14IȈR+uJ:))-^QBfM"Ns)o1FJ ,Q"=zCu4 +3J-X@!م/u;G?՜,k(*3HiY*-UATO `ZGZׁLJpu^fRWBrr#TzZ,4Z\C]RP7\4! t6j[f4kݲ#C5qcptia:{ +l-kݺK|c)%=[ps] gzE)0:3D hDF͕:/BN'.X F(Yb> Ru" +S8 +_';u,_eg"!3ǿfVU%,d_`ˬ˖t6%lY[MY/|\ߚ7C_ LcNnBRFnoss=Y}?@#9yDC\ccuW ޘp +jCAp~ԗ닍>a{5>cICUpԗ]`,ƭm6UlIt"5{jڛ :I FZSXmv Jxgo ʬ)~3 -24qBw4:E; +DU5OV8ir3􊨌lcU cT#)T?/𱺨525UyM12*1Sm +<]Kk 5\%!:J%'g\ʅ)nW4% U0zb ZGe$KW"{eS4۽w)W(@ @ӥ" 1vf렔;nBb]x#&R%>[m;^H#2ۑ^ҳ kd6t-P'Q*Ҁ*%ܪ@pyv{O+-1XdiD'+B ]wl9K?ŎVbor 7pۖdnNJUM6y[b:NN8L3jMhoo2|GŨ19/Y1.`ÏdZ PB-pz6 R7><)&-Iᥗ@Mj_RF疐+ +EYΰ2ț{ѳ6 BAkG$^ ^VF,*^M]9eĀӘ"LC.]E&Y]{F +^d{`[{bqILaE]/ S OO’"b][[זɎcgQ¹Tb$8y%zX |+pF灿A~/A|8D~+~A@Va[B&዇D D FP7-Cfm\6+s*RPVsZP"H^Il0q\wűpJmJu:T 2;X,Kٰj fK E ZoTE |W&n[M*LRfՕ4 G>՝Y„kOW 3bDG]7lR߃M\|&%1j_2 ˠ`hmdҵ~m +~$T6H`fèd=  +*9sW5(- +m%s"Ē8,׸ l|{Ўƣt:nF[%T&.8o~2eHw0goLgA)#ƣ/IOd-\AesWt҅K:k5/\+05ZP*4ez4ܓvAx KdWhI[<`Sj֒(c>ނ v T ѺVL"" Eb:fԶ#1P gSk"k!JO]4e#{D`>}1Q}|3'T*uXeXm 4ǖC+Pǩ>*؂f,w\s!+}ɂV#,x45a_)";&rc*oe$DKU+6!t+ZC`lVd!,$`0H +f +ժXOo +q-#gC,=tX-q;_">(OݡtNrएdIR9fAeݥu¡K>',=x[q G}HGudԌAMs1O!JQ?~LO̥"0CŲ_̥9k7+O/D0d9YО4y];/mP76z%Fgnm^c\H`t7c0_a +!JِJQ>;ڳڡ/xS~|Y|;s–) [-`:FIoisܐع2(v: N(qa}C+D:R.}Y & +G\JEFغa $"YPrZAڳ;<{BBAj i%m.ɷLk,~ؘ@,J c 7dDrUb-7$5><9d=Hh=&+~̄/ /!l>;.iM5ZŜ.epٶK4׬z.v3z5?ׁ z9wʔvˈSizͽ6d1za*uhK}ڇpNl+8froI`^:t%Ԃ1 :pb:}- +f}aǕG9l80Xg8Atib#24E:ctmW\%}ƠN}8R0p=\z/jA$I_=(lȎebsćK O26k{’vlB|I$k #Kwĺ\phi¿XY;hh:KF1KP'[XziWAcg:AeHcqWCq| pr}p=C7??ԜF/Z}6_ C$2ZÄk FL+Ȫ\l .t~$p28)7F521[ZFO+e ;d[VQW{rGgtAE;*O& +q娳Eg @L;␦{j\11>7! N;8$'P-Uw4*XRB'\y-٥΁|e,t)hKvx cu + V[.#IUfRn2T)(Tp&5嬓0 ftR-=&la1"҉.oJV&lvH)Hw4tSiݩ)INLNbV3zgo;qg`* e6Ey}T)žxmI/֮6G-W%a$be[J$ְY/D"'1nՕdS婜m`Î%:kܰQDZ)y((l Y]V6jA=|Wu*o 8/j/:\cSwB6]ַٟmW0@ia4,B:\>HRN'ztμiu~Cpy࿒I QZD1Uz2bӨd\t=m۶m۶;==}w#"v̝UֳP{G,s{zXS"=7Dep%6nKF?v R R_*{6ɼQ=/6 xQ?vCf +~O6 :gm|Rn3k4;z-%&_K@OS|R zZ φsuc,5'"{1S6;JrIiLmxz Q"H[Cx!c@$i1GՙF TZh i D\KΡ!y壹vʹ_Q`0FNLW‹vP~w$|ݴ{\+-A geMؕQ8ߠ֕TO۶1縒 [0Pu`o8G=lVkn r+ij + n'dԢ4GLnaV|ԹMD]%l,P'h}be|e pcF/nJ$}txTpc@AD?Ϝ翯ԽQ6H^ɺŵ , 16T7-(ќ3wZZ-' BZ)i39L m_3n33.8-Rffov=|f߿gnOs=JEX;Ԧ>BTz/߹dM ~?òEzu"hkvWrlϧOAo~3Ӯ7—ӗm,8Ps4 R7O~hMAHuvUCHGoSE5us6A.Au(U<UhŔʈzG8{og[)o$c +piު([ZsrKX%M"UD==b1a])fCH/-NM$ZRkk-Eـ~Gsz~POimT+߂gؽ WeYv. =5m e/D퀦i2,”%Pv9Zm)Ns'`y`aV*<AD`Sf%^2Y9iUmtn:%*WXWb%[QȘ;{\ mb+֨HS{_7'֡`2teb+\9^zׄǥ| ;tϜ/xPv[ɔ~SeO,X|0,յ젭fʸܼ\++[[@Hce T>"4_F T1/ut89Z~^lJK~Tf5KZniK-䞞|YúX~K鸔!xV)$I[$M ^deɁjS+'cyj@ׅÂ؝rN2yrm9Uqv 9i +w}r-* g9A̐9៏5U.As'`dkd@^-Vt7cNa|8h*-Y5/ژRj-A1H1eMǎlz _o&4|6 opZ8N䎐]\%hbgKsKZӖӤ+X$AZ  ~7#Ou4< +太TWCB3gI\4x[3.M6Juep@4Xc@MB/u#57q 3KB*e1VkC~CzM6)7'VpNLRO+w[{O[ԡt:e@$I)t0C2^O\Y7ň+>A/UUS5 ,ݿ@CXD?ϸ.ݐW1ul [-Cj-Sj-Y`u[a)5;H@47Ț,7fϥ>XO:x[F[8J=ۜN[zwޏz@ȡlWIHPA) Čա"P$0KG, ډP,zKB#'EK`{J8x|ɏ)<2u움V T>ae52Ir + Lf"$ܱ gҰMy;հʙ{6V~a ui}kU/T5%jb - ʧr٬UaU.?Lg{4ذKy؞2;P,[@Ug n]bܧ c{'i +r6mrbQ 3]aPADrz+d3gw*Oɏ%]%rWj1JM:ej{λ"mPr65y#ՔrrQ`|$i$_0-1Zñ3EL'T6nX(Ϟ-C}'HJ(#=,`]N{'+fq4OzS:I;T8K\,7$Tk. 2T&66fS<`JrzC6NUCV"e&7x0ܥ4I-{MJ9*l46qxCAw D >U wKlR-kE>KpL^v ޭTU V+ۼAܝwxV"Jr]T bi9(fDEgHejsX쉜MC@{:P7e~s\e؊`0i mZOL:*izE:)#k2egr&22Mɩ-(1{;JPyru: +ɯbr/x4|qħxksh +vyu1mhIfy{oۼ7?Q]BlN7)"M2"WP9x=Id| _]̭HJC/*yj]d%P|hmש@,b,HsCRӯyꤎ +u^7hydQGĆE[W`ysYpzh> ܴ4%MI#:xC +]2)N+mLeǣrjtYp,|SoF۳ 8z$^Y]5[C$\@ 3Y# +϶X~FCi~@8زVo..*Cg&d5DfD_]1W<_OX%$_&SF^ ;C0Q}%aF5m$S|ζfn\6W0XFk P]rAjP&(4<ƹ^>bd8K' h@Lbg 9pa =ֻWeEGExu*rX0+EMM?X~r /d +,ZMͼ1NgL`jIg ky=BF9Ȝy=Җx[\I)rDi;?bt{_-*k3(FAUԊ -gF^i8M@"nD#F)=FdYlѐ<\&jƹ9 + yb5a#9(j%Fm _*3X]2*F'eUa%wQ5tteO=gf;}=R(w[m%oPa؞+Z9Jό' Og8 7a3k.:_͜99` 1&pQo:)`pLBnG`7_zӕj@m&JOG@n T0nE@;BC4ߊ{NkeSv +\Nu&)X!-YAA /ɃJ8luk hOAaPETB;22l_D= +쪷qw͡9(02.`ڐƋS:OX +}_PՒ=wH%|PP$ԎKjfnS֛ +sRsh.M$W7ЪXD & fnl9m\`9jpԻ1(|X<{R*sPT0:c8M^qЏ%z!e19U$;~ĖyϮz,凪_T߹{44owi + pY=EJiS8h䁄VF5 R\O.Cdm8<8ἶ9;_elOΞ5W\;ۍ^n?jlC z00{-[z0[(2TXh8w9[z#V +乢 ؍u8_R +=`/L[dDh*MIu5,NݛWWϝFӢvJ_v?O\\S(}wj-"}Jk]0 +dZifHMSaWeیQO +F\! R5nϋ16Wk=\t8r+v.vg7[~ˏKy.$r8EƯMpZNo-#dBOI, 0kqB?37ԅB@GjйWK掯O*wBTAd]8m P,tuW=a,eޘuFC6N!9ZIT^OݵuEȤAopr|趈I3m⿜Kɓ6d=g'VR{‰?C8sU8_ǝoi:}c'`WAp9ZJ]`\[:Sg?I/ Ps5߳!;P±)hbTc ң}++ U~ŊUÝEA5O-4P)ɢ>)@;+&v.K|YD10xgX!j ճWG0ΞEJuH% b [/y:v +fإ\D{甓ֶQaK ]:o=pFk 4fO?+l=?JQwJ)UCCFrɧmBamk@- 1>V?d9q,CVۜZ>_&(Ot9y~UsH g5va+,/0]yHf{>g/4Xì`5vb&[e1n/  +[5щuc&0b̎%1YM-C&wc}bо9 s*bQ_58N!h%[gIeۇ [,/an-L_XMzj~EcogHȔʐ kh5̳rhuGӪ$-ACPw!>t>GPh06'/d|w9Gݺf7GMD%<X-{՘tf. $%0v=yk9f2@6g7|DM[fgJg%`մgz 4j:s$"_H9pjAeVPaLi{?# +irnrǐ؄{ u ̫ݞIK\Fp= [v))>eЖ/"> wϑfCm`bljQPXrDKr@ +'8#YpIM7X7`O@J<m̏i79fmWy*oU蚺d 0#NF̶;IfИD' =bD ڇKՠo{s—\41oއ8$Ӽ _D۲%)4zj3lGV#ujЛtDaeszU wd.c֭)o_d`a$L;H2[f7[^7n73 bd,$DAQ!3`Jɬ!Xmsԓ F(ܶ*~˯ nnC)G'l%6ZLc+R7boR5AɹI&.l#6C5.7Ͷ?Zc(ˎ2S s sB1H# ߷D0TV=H$łmq םtױ8[[h)3tw R$:RWo j,[Z4 4I|*:!F#6H]ˈ&a)ci頩}4`W!v04Brf%Y~TU,wd< [略ŏY鄚H":0Q3aEP M3b#~gSnE0lT\Wy#Esw($SUDjD䥎46i +PdD4:gfDB̋9`S\hi 8H`{#nϵԆα)"=||8:obBZ1 ǏbƉ%V<⟏G`P*H +A6L<m'/*JJb(?)C[@Ъ"FІ6eeT(g #R^~¿1?i߅\AjG|39ٷYv?`CjcXi,wp[lȁmV{(iiMn0SigUv2·|'B'c >#R0l7HuɬkV5y%^VS͙+'m1?l۴JPS `%F]lB䙚rBr#ȾH{T$xN׻|Ħ31 SL+E,ԝ7{f.WeT-9+lQk)ً<#)=iLFXzJ5`NE<(Z'H*nQB~ +;)udzU{(=vjt#PJu*lW4,n6"AnbBr-o>Rh9W;Гi=Ywc[DLz" 0aRcGHo--y|fc){b*ڥ.f% Ƥ^ iYZB1T^nF񙣐C☰ \h7qr1J)+ ڕA߼{*T6ݨc"@Yy}:ɁvC摳ggr|s .%S 4-\O79tb#NNF)(mpί eAOA4n2x_@2bޕ. c YYÕ9AxI/c Q7/3Ox:boRo@/)/~^|cwF mk0ja3$(V@i`KX7t,3IYȯO +p%W{17a>;;{֮>;sʲv_9 .^L]Xs0!sɨ!"ųF'2lDl :WOP-|XA`S +–Y[FV^@֡[AY5Y" +Y/ ; 9+Z}UBnFBaS7A%=--@0?D!'VXhXuEw8%EzWdU:3cmny#T DoZX ffifԒEC*-S!G{REjx +vzb'g-&<()y4fEVۧFD!N᜷ +uI`t.Rv +r3@jwn/䠿|1k,f3 ZQc`汗39`z3xw%~?&_G` nYK3TsɅ51b7;3X% 7)p8+jeu/K|e<_kTR* ZR+ISWPNh~@SD-p;zL%\^dQXYE vIwC4$np lj뾗$YC˾ޗIÄJ'n>nFY V˕_*5`g:}ðg(U&#p[d.gP<WWW ]A@zG9{yG;{Gg1[GKzxm^ݧe5gU5gs\KSoAn7!t+^OMI(?_h& z=QL1{ua.Q!$s4x{.(f""|pL9(C顶(, ]aFDH2Axè"Lt#br1!JׅB !#"rS DpwͿXRΏ +A)B]$i8Ͳ;J%5ܢ}.5]} f&n!J$b^-܇}S` Ȧ?!bH6mt.7U%[]ZYG('"Ag%aJ𜸴"4PZL1RLc~.%* +#L4e[3+뜁3I]Z;T0[_2_u F+z$h3> +Md^i({L#$|Zw4TS)< $A4rvӔHKq8N?Z ĜwAR!WˢُVIHr?gk}}V@iNVEDlP\=Ҳ(8E:tDP촮q>Gw~hwZU$M(݁I(~LZ*wX3P/pcU=1p|MRt`O=AFmWT1SXx909TYTozХ0c}msGj1P MEX%H@C +1i,/,R(VY#s~ee_84sHNcsHsi랭)+72.lاX|?P[.F6Ӵ#bmt8C2,ޮ4To䝆dTН yBXU'qcFi_#ui/>ITxNP +PH/Qm̲AVQѳRf4l3UGW?0tSя6si&\ 3L~`IH?Ed2` n2O1Yg!g^$lPltqynvP< +r8y(.>෬GReaaJq-JmҘivXgbIY[Oh`Nj욛eֽ_'Z vH +".s:4٢2uڴK`ʕG~e9e*,Ic갞**KrD +"oLzFɍ3cb:c=[݉o |@˙yETlп]Q)eT2-yeH"2ΰ߹ +,e +KeK 9va\Q8>cؾCt_[. ov0LeIK`_e2omO nYށWBRŢ00 HV#`ƓyQ]=+Rt!6љ])ƷY`x.< |ON5LB8WnET9V9RרּMbdB^{(#+\o + R +pA /N/Dq9R1xy9y!\щFF}#_EWG=kQ<%AMNlי)nau,BU$VF4-FF O,MG- j3YM6ӛ@y)Ud &,obz;A:6|. + DI%TLOѕ9 +$ytR ȫlΖ'xR|LYt+*٩L8$i%]izZn5U;o !K{- ~#4/;]_LFaKzəLOyY#YXTc؞/V  +BTE_r5s'ǰLX=MWDwsd * t <Ј}:= th<)` V#ْ%ۧ=P:H޳b'ӰԭĹP@RVT3mm.rp2fgHb dmIED)z"B0 ,|ٟD9UO5)~f [tBMO(̬?6AMsp%zz ,sܚK#ؿsTę(OF ATLϚq@z:߲&vTT?D&)3Fbze @AvNZXPYZPc5}2M'}V h/qs d"+:wT C!) + f 8æ܃݆QYa,Gga!`d:+xA=xcor?#Ƃ6iEڣdi !tηٽv:/Y9t nlD)ix71*|f]9n;yS)d'C>INKh{6p6t155q_˨?L̷&h"H-ɠ*6,/. LHEmQYMBnVTg YR\qmmYqm}t%KdgTryy> +1\CzŦH\TRU6(d΋6[mSh+ pg7͔x[bƒ| 6$813h [p/k.HM|(RkVRCFg6m\d4gesRݧ<[4%srB;i8=1MEƗͼ}2דT>)ͬND&|P6Bl޴&NJ@R)!fZP)!$]rTPT,!֔sJPLr9ySʐUEdʲԬ3+AĮl)ߨ>ZL2RnN-166bhu~JM6XdH{0&I40ҔAz*Ո[Fh,cޒ +4 _u@(|A /(di@/9c?VnMդ㬓O{l +Wf2li~F8䐍>ZcLx "d\7&:刺羣fzlä#5ʪOe#RݚB9>>ᣪjX;d7t4Qo-=0mKBۖBp òEQs r +-k7NN`p}{m]>6T?!)$s*u3IqDb$kQs&lQSQgE:fJ'q<҉layԋһ=E?wf: @GF(aŬhLfH5NosG곭V~eU*_u%+RNҞW,u++aءё-{oK'Y +/firϡ2k@־S30BGcGqShO{3*EV4vvLχ6h?; _R>iХ)^=7͏.hi)tL/!oB$20oX]ae o?gǾ[ckBf^]iFmf9h9>T5 F'޵_hRU`G'69&]~I@po( 74@z*2gf8mwq}8o͔ܵ愔x%_# k?%  +K8zT[z쒝NJnf3i8P:ˊsjզ'A1M&RP#<oPhGXQ alIE-d~ZHhFrJiK.%'9RS +PKA,5ݒs9[DԛW>=TG~U/$FhkCc谷cŹmQy\(]<|բvSj?[VQv[=pVha ng vy⢽Z[6X'U3BJ44VVF +uk^ΦtD;[:9Eg8)o1ZO7o7H*i+W7;_O|pũ\G.FV|ZTtwB1BJ,5ihq9ng3jt/TcfmUIAR.ܛulrT6Ek²":CH'[”"CW_|y-Rq{-SQ=F@GyFF6ۈl˄+Of>@ėuY.qxn4< ]oHMsiA/;YR@ ߫=HI}NjCjuJ5tOlus,+pVzZT*N4mɜFيm RrR#ũ^0W+JX.XIU\Ա^/o`C2~r\vJ [408NvN +e]%l gx)FFQpdc!@*O–o(!\4O*W5O%ZjfŒ!=Q(/>o#`L`a[H/CzX}jj> g8݄̋ B)q?,T+撶7T~ +UX[t-'B%T: +pu8Q*ܝP'JTSњ63W#m`zE?qK"`q R_u+Vm`z 﨟cR5H)E؇}2Q:eNcN*ؑ Q킝0BJ%fqHvo -N>XpL[JJ VabD$?)c& S2 2rO  4c{B`A$'?DteacXv+.:wjN+Ԗo.~޾jc/*ԞCcx(`&s9!@zmޒAàVZ[da>X[{0C +$WoPJ&8=2J+zȚ]:}ac}~ e'j$U+n}Neyώg}e}Mq'qG'g5)EjD#,tu5!U * !,Б'Nsh.7;o +s8D-kwgbRLL$M0'/*jI2GB&o$GBѩ#OؠC +xpJ"CB0KѮ~/308/bϔh@',7s8I(k +Fqnm[_HvߘǐCZsHMMZAHz,_Hڥ@}JaʺsșnjɜQ)I8RZ4)|QG'0cC?1mt<46۝ \]ƸUVa8O@{1~BeҲ<!5dq)`pUZNsO>Lṣ.r 8Z +s48E0-%m |KnH1m +t6|n&ʿ*t/oGp"=UFFCHE A@aAKy \RBchr\ sSzmY+Z-drpsr%";\]=r,)V*v%d~˜*QyNg~y냾 +KvgTҸ +J,f@Ɵoă +ˀŌz,= k嶢 +|3qLqG0KN`?) 4RVǾF*cjrUZz-)%;gʡY;<,e <]lk=8tɊH̑ <ݹ2d =ľu12v3NٔYVqqchӶmUHaۀWWO=u_WZh.YJDWZg),T+ʼn"͗T48eHb1">^f5DY sxJY'n##>G70;$dƃtU CEaEhL Ԃ I`C^fЈ?!GRW5',]Bg. ̗E%Pӱ&/g-jc֔y'4-ᗰ?sk-SWW@Տjbb+ITel\ +&ۙQA8=UʹXאqU021tr0ueZMU*DQtp u*Uõwd:IDUV>0)zJUvPe!SʡI- 6#JI]RUl0SczTǬ̳ |{k,:2<3[b:u/Z٩AHhRb~ bY ++ +ڞ.9DVTT*=xUgh 1uʁXV"H͈}g*TiL]b:ÅwhN`EXV @''Z=T S)hS[hv9lծ*_{y1ij72TQ^ͧeut^Ҵ 3Fp74X]R>Öa\(|uؚMedmQM-mrtTe>{>6 +P={PKˠN]Z]{(d$9e6OZY*EN;ȑ8Qo\HZYp[P_IUV&Vm] ~Лن..4,[TSV猜OOi[]8Jٱwy n&'VnLb]QW7\E]kK,]UD_\4cIWi\^MyFc]lD&ӿ۷Jg yN)=GN^ƈJx|* lݰzw82=g /E-鋲H[@.Dz89@◕#<,y-吴pHSk(LT pa7zc+.6t ߠʺ:-&H?Ute,.#;c =*x` Y+uȦEŵ!p0vMa Mzzq6sa\zWC=alN{DlOr#r cQ<+HIb m}>%gNغ*TzBa;ܮI ]&h_~$X#a#b;| fڶAv'], /cӭM\2~  +琭a6mOk{d6Nxc*M9u:}PEz5m}ͱNyuP{(+sfs@v9˟`{ =D#5pqwp1WGcXCu>Ru .xItʱn/s: 9 +>xC .[" t-8eKyLuVj4N}wKֺ2q_Jq%C ^{m1sW?m'33z X-7u(Xgi]kï>:LI!YZ}Q'Numm޶ օ5v>P ?\} @X=VŖcaںx:*Er6uW hچAke*]v +Xh +ABB˜'E'cδ EM-yʼFJLPá[P6HQW cTSGqTWkV ;^8\Ao$w?lSjt*fvp$- ~ +KR7)m? ȇM/z?#KynNpb%0jKmǡebqѮw#_y \{IvƁ# }EߤlhknO)j gXgV cx7sAE3/[J쎏&)R6RU+Z7Ķ{TL aeu[y`U~y?CIq"R5`5jrTr~|KWޠbح%#p6BI,s`-z.Q-2ݧ-ָzO!' +Fo'K/QL9@TΰVv?YXG]rS4Fq+: Uhij՝see5՜WRrS7.R.l=NE^XBoz2XjLQ +хĎl㕤K፧Y, +_%Yz<_#{q sr N6%-Q%؊8SF9\&u%i=]%w=DDˮnC/T<́2Ϭ+? ޏjz3:=4k3 Ս_hfF6c kq"ϞvRF~bn[~o3hnjΊb;mew4xG"ȥ2Y(\Jae?-bܝ)FdovqU+& :So cyZz2F2*_`JZiEi6/Wv?(q;+^rnD5̂ $ajH.$3rᎩBœ^Gœ2O"΂9 gHe>4;&D:oĈiAB2r\Wb#Ge:%| @bN#.NFDnd$aJgY08.ͼk^M!U.!d$!e$18O(,/-`7.GÒ$8*aDHcXfI.Lg.+ " Ìܕ&)6!t?MЅ5S|D#r9hfnA/թ8]'̩5hE~X,Wtj[6fLwz$-C~np;2oHǿ۟?垤G#4:`[&'o`lP&7>ԍ(?_>!K[=oT0><5A]?2x8`>as0 BaC4ѩ~%aNYIQXa%?`Y=zL9Tz-!,:C Cz宿CZ]NrQfu_a~b=Q&Lh0D^FS# (~D~O",E.; sΊ3bm"C\irnQ:F}SII (G@ +z)cyɀN&Co6 L٦SN=' f8<3v96c򽘏3[1FWOc9-UCnQMx3ÈvF@נ㏜H369l7amC4,(|VĮO0~iA Z +xP_1R7?1^Wu>r2$$ӄ&yjgUcGB굶Yts'|@5W)K|E+(7 D\Y2[)98I6z*Ym g=jnFS9^{pz,gFZv8:dLDZ7h+[l|i|,`\,^b@N`Țc'_ꍯ+;??SQP(p՘UW c>>kY ?(y록;:^?ӂ/]^:w`Ƭ0.HIZHPĽ2P)HB¸a]$YP;!eZa{BŌ!gSz/jt!\? )IJb%'bhoi Bz'U:uKU8&_(,5E{N$~EWek!1HWUJPuQNvKe +ٹ?2YˌH33ƬXf}x:`~(' *h3YؖHtsF{@tK tYͼGA_L] Jv|^@rg?\I|qmc1; (y6rwXlm0UB%v#օܠCIǂ* ܔ+!Fyy+՟94cm9aiԲn~E HښmQK3u_;;/JiHI)M}g܎N![SQGbӊ3WWBLG#zhE,\NlrRufu7T5m_sh}B mYέp-WNղxi&tLCaS%%ۢ55[h9̙%sbUiJ 6GlXƢDc2OdencV k3KzBoN]'تgNTx?0܈SiN(Q8~;h~;*%vz=]mO7}FK=%_ # Pꑹ7,|-_{ba9鯀v~.,*_G ץ*ttޏdKM/"F$Of"^:|ID२&2S Cq".xQ$EnEצ 4dʩEigKSK'/hޱ\7kRP XS' |ӱDJx]w&eUqֱ:Azt~X]X?.HͱK@u| 82AxU5X$0zV12aB]YF~깈GR$SK/x«]1k~b6k@<2Z٣x^˖c2QVH:ޏd2},ivd1^cxvķ}װ֎/ULCEJB/LV}0ۍ]jcXON2Nh6_<pw)բԩZpRu>v!.W, Gt/|{4#va۰Z1giBWM нK'|4s?h#o_{p TG~Cz(\fλ6ِ.oZ"j,*`$ Ił$TcvgglI(MLØeíL=9˜߰ d -f-3Hm6 ӧAT$ݧܱ:_lBtlxG$ 1"4 +xEgA?H+ATD12^rE88#rD8C83N +3b=k +x)o[?@0-z4~RݱiBc#𼖰Ŏf +&[;J#l'G!ީEǸ[حS{O6SgCQ}t}cX[l#1yѝf$Ft$}? ZCs֨}337{x]|_"h7x=Mg&Iᴅ$~lVm!UuMʯF G^p$|)1%J=?W3짣0W mTߨeiikzؕSARn +~,ep,.kzq/F,x/ `ؑd%流 B 6EP&'(CI0ԏC%P#1L/!S. +е <+y*xUCݖޔa 8 +B +DaG9\JjS/a94]dZBl3X2QI_(wiV`ة,n.I{+'V*jY(M.|dS UI$#5(iҌTP1JТ2/11DBPq)T =W(dUf iW#VKTh-S9r]ɟF-' +Fi*ĿV#WH !,;iҋSh$X(Mu ,YQ|'v 柢UtF(NZFnU&UT?p4z$W^?=.WS6S%hXvN(_Ȳ +oWVx-R+6 *V^Tjn,5?u_ؒwx- Yz)ȕ-;]0>GlT~.^@ +U|fy.0`r^ yn`0VEK\p% wgU2ͨcEY_wx-i]O3/̞Ax;RYڗ $eۻiLR+q9@AP@[AᅌD6_2`QףDaг܇J˱ MN]dWFLu|;zbN*99m`]oV_@Hυ{nVb9g>muV_^.ttyD]`P¡KF4lXUlƀ6dfJ!}ĨצU_&͍:hj!8VtbC;Z3-.wG Whe$PڗWyz8w )U-l(Skir{H/K4c9Wf*3Hd`cYx2ZEi=K0b =x("YRH[o7&Q'h3յ8\TN`1J3⦙0l$d: +Ϥ*Џ)a]#ffʚ-JM[4fj5vqG'ꗄ0:ms87O׳ j*:H̀sjAluP9O%rr~g̬ lɥWo̥Yo(/e+[M_gJl@8^H6,/,/,bC$Ε {eCȤwd߄=^d}Q="aۑ5$rYU\*XTXϧ2P3ϑ>EM|.pZa Ғ!eW]6ŗEfs<^#t_s} >bP?"pqvG}ؿ#0DfF,a9GF0eSо>*Bl.43׹(5`Jl@D9ߏ@2\m[kI-Z`}E6_U+@1ϓh<@4a0q:M<C 6a[x2STꊆ,?ĤPk?TB!0 +%@V +4D3>eIc(~P|_A}CAY&'ߗ蒑wBQI"Pxuuގx] a)E8ě<9w`Ȝ|HK" ٠߆NE=6+Cd6{ńum| ^>np>x8Do}(_hxgTnWl\&^#^}6FW8_،g5/2K6uVT7jG-B_xm +MP5=Yl Ompu,-H}:O̵|x0Q[ǯC<ߢ<[Jl@looIxAk Z;Й%v/3x2jֻ5ΓFKk>!6"~vG69WAҿ葾%;`-M:KZ vOb`Z=7D6;ם{@1uN-:NV|_no,*v22m\9fXCNZȮ1ъ;Ds[z8kCc -JGe>! 5"_DD-~9pxGX1ڌCWr#w&ཡ_R:XTWi +G3s +?ew[_䁊)H& Y2ޛ0'@A'@[/WGH[hH3u6Phsݹ϶RO.,'v#7dʑ`mK !UG^A}Гe~uW߅r LR b-B## s`NsNՋ侦A3TҁiacȡOˏ*(V"3zKUUviɎa'sY["$]vnn瀴^굷w}DDZ6{b&Q&6ufzS{jh# = ~KzzG~'tf(0!?r?>R*olO婫 v5uݖㆡ708Dvs_dxV5;Ȓ1|/5i0#w&F|IW +ʠϥua>Psu!wG%o.^ttIX6(9؀eΊKmNz܍4ǎ93kEOYwN˸O 7O9 Ǡ :%S:W\rP?+%KZ萱; 9e ܷ>Lc[KP= .W[d[Yhak&m6O-ҚpebfP0T1%i1Rʍq@P%AɔL 1 S;ӌS鲞 v*HV$d§q@)ј,&zAI?)SO_5E +V +hf=[)L} +iA!OiU\{!Wϐj˵ۙ#< זq; +.֖6醡ǘt 0I VIdȱQjkAL}a@ΐQ1UU}т֣$Mێ/aSDS _$aj;L"3Nex[wOU 5Bu*1:Nʐ6Lx~ :H3vƚ=_&V.ă;g,7V#) + +Qސy e7 "aHP² ;=Ǥ`AA6dgg b)~ _i)6p_GD|0~RRМކCe?)P@!i\h[ +O60iNJa-r I_ sƧ"x܏5|:AB&U1 ̯b_f`Pz!*2*A$h%J=!)NSR^xt{: d]:eEˆ`GcƂF PC &&oSY9dmwaZ1q`øz4,N>"v9]H{ȝoOb CLv\Y1壂>wt8iaā"O=I 0~GShXuW2!= iўOxL Vg/7=(_+l + 2ۊ=&"ŸV'<*֫a0hN6 +|4}4!c- 2H6[>W`BKK2Ϡ(,9撄cq)!fiûvJ4a*Zn-͢_!Z5 ]R9/G'^olq E@"/}d@PfS~}f-'q@b #"0o*{6_'CH +O/js!HJqNQy3D + Q)P]"=yB3dEuR:CF"_mōk`#L%nȐIPh[˛Qx@-2)L8\d9ai~O fK +)N4Ѓa 7H=H.) +,vɅtζOgk,A벗q4D'RY&Q}#~j"p[ψ:uzu=e~h$H yKn-5RjgkFg C?GG6۔cO(Q"6-yyflj+;FUz?-m?ջj3#ʝo}qMnYڲ-RbC̐SPt-PȨ_|>9sByM,Avjjd:Ex|)Z85^^Zd8J +}Xi&8s9aRKgZef;PHnm:)(o::$Ծ*R ޑgJ}Rm[$1=9zF!=^9$ymɵ/\`]МJBlmKo@QLsJdfb="Ա@0~xGᬫhɎC@&)c@bT 9O>KШuaLgL &VR;2Hcuh=npp1It-dNlU0C,79oIE'iLvŪH}ĝ/w릀 /,Xiy#b`ܨ +Αen0Rա\(mVj"k%\xnm4;ɵyr ޙab/ LFoY[~WEWa4ѱYDy@r GN~q#x9B#W> +2KoSs"2= GBy]_BvfsiÕŕ/w5gyv֋Ý:1i(+C>ΏO5d[-|u?H67$hەB7:B.E:=đ2''%l?j&Xր kmqIݢ*\&%`~Æ+IO[ YfQyxK>юj[4boD F(1 yYHձ\LNbt + V ͣBq:-$ AIW+FDF)%M8dd8&@5W-`w +sW,G`-i-GQ(|# Oa,^<]n}7Htg-t u*o :[Y]6|}cW3 i\|azpZbbyӚ֕l@xnB{&1AGRѻ-1S祔gD~^21+~MJ/1kԤN|s Ȗ㐀3ur풎P ?6:/j">n1L'uMof9Z_S^3\JX+ l:\1<=-q}`{-`jSafg8 YAfZز~6a1o0bp5sic m&s˱`AGz@ Tf,5*eΕƅ$q$JNWh'Jpi">;5w_VLTf*nlǰIn(O)J$L?!@$Fqf7}7!7t :9^,hd$*hC͐vc7c3;m/XY `=B2(H얺z2DF-VLum{x*n垏5 y Sq{12UJ}}&[.Q~dO [%U^kJԠv}jz`B;y09E0o6,*r6olkĿIT]1`DQGͲ?7(Jn?9l)js`g7,Bv^Xvgeʲ3dz|'%Qx-4cl`QY$ ?V(2m;.21*xW0JbrRiMțdzRϕVWڹKղz73N<]|~?BK$m _YX:vqb&X|B1矓Fur$/I:6T6i4ô_~D!U7BL3-3TEEVAgȫx8Fiyi # i 5Ɓ#8 .`=LߞB;P=q:hzMIFgCc1D. D? a"S!U[p QPyfe"#mdݰRDz\"u-ՔG '?IDK]͹W^OnÈ^Ylk#=^> ^gC!Mo'm/*aZ.(* a 69yѕh0PBi=YKQT)AUݪtP=9Ӂ=\$HST12'dt!Q -c5fl8Di~bu@KM9PXN#,8b7rp@/u<+VɎޔJ[2#_$ݢSG%{,)d u.e qGWCyB +|_xŀl!%JJΤd*{:F%Gcg+PidrM'K~qvV!)#3f: q~<>plG݆! >w&Xy'W+ P{C:'|! uȘ5'LJ?zf6`ks0{w%%5lװqӺ^,(Ȉ)1zvzvkJH-(J@S"-|$pGkHHl W_Z94<&ogfhdg_A~r31S1qAA4 "?C 0-55|X̭"#Pa#o;7$.z~lj>^ZnOwnr:U;b--jcsMsc_4d~Vx>6r\Y?MFj/?*/:.|7@{,ʒ#t!Go/'@WX/-}A^jVʴ_) 9)C3n#Z_Ƽm1 +sv1;?0wd狙JT~$)l"^bF:#\D㫻҃|tke9A12oɬ)#e}pYXƮ3MUЪ>֖w{-q-6pulP٤(ZDܰQÊ;pLM?=iՈvjn瘹JѪؚj`|Ѕ/zkϓ~$-J4hd8W%NSk?/&ZiOfra.4MʹMXs)!}8;{cW<7&Ҽ|rץL,lpJ1Vqo fTNFdI!#I.[_x釣q&/t](Vb̉_ٍVc(Qv+ذ=ner,0z3/|Fę:>EIzkqdsaR)g_k;|l`"ZRX qMH +0_C ڡzGL(c\ (th֤i? +MP,UȜS ʖߚH!Mai){j6 +04F[٦<+m0¿{~]9N 2{dۤ 6y(TԑV$t A&/s0fΤ][^w:;#^HYX]5 )duc4l?gPՅޢm(8"!fGdm??2O:mmfuN/PV@$ǪdoC(^ah2Ԃڥ}uAĺ}Z>./kò"2/R1Zݭ%pұ|Bzя_/h#FW,Yv/hz'٬dS䎋y+,:ui?:zMyȫ^{+E&<9+9=xVfDy|'9Xgܰ'ѾJf#J䚬<Vlp츍0b +"!&%8bH&˚ \pyJ,vq[V^gUPw#پt͖Jy;riEbN\wE0njk.-/U,^%^YyVa)7HMSLA?ѾtЮ JY=o*i!'|h;0bDz”vD 3T<-]anv"YGؙPjH`_nb^f <v@G:9`Db.;ꢜmg=mO;3,m1o癀o +A`nq;/2ɢװ $F>&MQ0jUn$=ܛڼ;8.׹= +\mڹ=[7!_A¹ m<&gw2 ]kGd ^'B OteF MK}w_ ٞWVϐ5J7wVcl]j8FtT,pW5.;/E+27#|ӷDNͯ?z'6_ll+h3, $Ľh;mX6w t C[ٓK]㦇QX7Co)rL{$#pv׀'c>]S{r]R,GM[M’T4)Sư)qL-#8ZL;tij \iL7GD/\3@Q=hړH|=;RUP=}Vuw֘[hچ*ݞVMK?աo\=;wʗ=|9ȉw :PU d>9`d2MrWei'yGj޴c7:G258.uܗJ] sw0*Xc5+f>pPP9BbXByȎ60[QvG,r87l5p|}bJ"( 7#Xk^&_~9Q/E +SsEܧO«t>,PZTYtz2=? ͮG!ہfQ.Y JqL[6t<)equa +h[jkz1uޝ\Pe/dB1&of!^G-.dZV7dꀱoح tGK7؄+XlË.3)I4L:Z'Mے%GQ8gZ)-#ZE&xKi)6ec)Ե `-GO<Ӫ957$ҔNU +uzHp%TΑ1B,Q aK(' e8'80 +m[>TRA.@zIbV#+k`1[l31iFg+9YDGGq@gT+Ǜ݃UN}9O|Z$'* +lr]55 U87*`{G&m&VƖMM6 I$$c WYvE:J>'i 2XpXq% eNт1Mr]*6Sv +Lb#嬚ǀ+H"fܟL-وB%U-(y-OxU +g2ݔW+%ƕW"3^;\s*?p D~Eo7=r;G=GVەۥ}wW=0Aң?5AKKbqO? uFD nA4 x %Rԥ0!,$IM>)0M3)/ui^]H\dJsRaK +ya*Iy B 0%CfpCCq[҅-^pS@Jp[JQՠX:qkڟwPg:!?Ǧ½/ \|'Dx.s^  +@ +˲(ׂ.5 |Boa+\?> )"B +c+ +ݢ%~r&_ThpV~(\H_IHOtC\d%50`oaDfM:3詮>z;?&Sb6EzRU G ݧu%l訯Da#[E=R zܰ:-tOD)~5ǃ7kwašM83 ( oeݤb}2bjBpjom'o8]@s9k\>#;ES8(K ++KetFRR&<"ҫ%ncRGQj[]~mɜ"|9œ 2w=3{c?D=x+1K'GEi,2JUIJWp8NmVNNcDĴN 2 +@e-(>BT**7df3 +xԫM#5ˍ ?|:ǷU:šq:,2zq@-6Diy6g.e["F4"HH#0r jis'S%hB m +K8B KS$˄TT@dŖ1dmM Ŭ:/aMo(ΑgM33fgCT+y +u׫289lKϦʢ%:QX%q qѱ>f|zr?S9rQEëP{2'uX|ҎG)8; {4Gʈ@י\b+1ĄeFFhW؋6@-l$kLmyjx9CseSP*MfS罻CPywa-4ꒄ5BWf +.BQܠ,o~*p*ԁr0>W`#bK.tTDɌ׳&EDy]i5$+yi?d*b#=~-ŠD 33 (y (ؐ/:'c3vnSTn`v_̄)@xݚs1?][q"0_@6ii=|u; ݆9mkVuFs{)d>hβlP[̦ ֔Ȗ&i"6$UYW +c3Cg F@0B yYv]i YS"G;'c^yeVG".G{JIg66߷X U/ZSWaȣp%?V8I]SUqbk"6gb~5є`_UF^D+V"kh"|>sΰ !.-QżE[DϬNQe|7-]HЍRP)F˭Jm2cJw 7Wş;}&a.uAP$kyȄnVOD".lOsԅ}.JUK5OLsncW)n j|'1a-oϤV~A[E|~P sΧO_oDp$U.&haLz|Z`U85!#pp3Y8*NYtܽ}J# 7:̮^ĵ[kg~ U҅KdX߇jXA8Y?DpTP~ӳ 05;P76kjՍm+bO>֧+<fΫ~= fGyL v Il=s|rrj׈ߗKnztZ2{ Nbi͌:LnH>\BUܸϓM;Wl5Rod3@ bt>a&qFBpT[lҚ-C5iɒncD5% +0G.k0sllhea Wr_jmPj`Oǔٶ}t=xˍtGӓ|K=%@zP{tZpW?tol&ɳ#H2 [dl0Q *p?5ޏusM}2| + #'Yxq\i|RWĘ +u3gsފFY#r]2;"tN`NW T (b|Fv+')C҉}cVQjr{)(*?v٬\:'j|RXBWԑܑ%--=cL.LaHTB5e\$XEg;?#(^+ZxjH";1^TzB{^ tK?F +^=Wh@pY{?!qR^oRԒMW1r0(]K!/u/R6?_ྈ}GjY’4 AߒxX򼄧gAJrȭ۔~E@QV OPlby0J71'2EܤɈ-FP)#!OB,+1+>x?g@>OirK E2]F ߎuo,yylIi#@tUt*(C?XXZmS]# ]ts{{ kɋu+Se  B=䞐Mn +=]`T"9[zx+5"- ar4h*`_@n$bA.(ҡJo/ &bU; DT<Ƣl]sƠ~O-LԠ| L0 '>rTM[nvtU+j)jJra@'zn<<Zx wRT thsg35܀ŴHx^̢ZwâESm +JrǓ͡@-Pci(n{J>NžhB"3fmq9@Ժ@0G-:}W\e@FR uZͲ|IqFYR'!dQib1Әt8uPez'0Do51&9̉~ *z9 󺁶\;:|BxޚNsRc*\y)S@lv ;)q1J*zdBpH +i +pssC ʆpX'@*.xW3ґݗE=(B23\Ca|N3կtKNlEPK`*V׮IuЖ- ҐϺ*Jfj0++YиCK]i1N,s?.U#Xv._mo3~1H\89VaqXݕ*ԓ +E\?$]Do?o1U}sr_Rý._o~lō7|bEõW-MLtRTHS͠FP7\GW M<&5p"atQ]B +%8 *u8YF\dsåҷU'$ƩUW}'Lْo/GFa,Unc#v20?RtlzYfu]l +1hU%;N;D(& Nd+}^$e7Yp<̱FPeN.q[V#xMÝ9CZ4SoZ#LW7:L]'dxLYL@>B)>x7 XDvURSȨ(2ʆ?E 7re}.qJf\R.E=y3*x,迖ue#yw gC[ߡJӔ_rB[K[,\ O ]*|y((,^5%'?=p P"LFY.E9^ Xн"}QT*|>BeX!ڂ ┏*L@{tDL@Bnsrj ^!a'Q]#ra:FC%F ?ٕfM ]v3mRtөwh9M/\ +jOǢ6ae:t, ݀PpNJXdU>Y` lvq(z Cq6ɝ'Bs, =ӲC9d*#U. Ja + +t(atN\>^&=%_X4e # +ު"A%g0 + Ex%BP!~h68IڧV [95=;90K~TW-jbEaOaR%!%ޝLd*W*1,?ς } =j",/SEߜNbߦTAqmr'/#I؏N sX63~^#O8)c +ި!")O">e=ovwGT'll22:1:?OTT3/G +A{l9 D!+#tX?+~/̫Ll0iXmRe%= +Ri*PӠ"mA=)dS}sIkȐz;5T>)Bt8SoPɽ,ƐؿNϋ \dMkZ#z*"B0*?yOf0؜o&ŭˇ~d(~OW]pry7^YG]M8*8Wf`sz$o*((wSH6d$d f9Wr,E5u(auP̟B?i +U@*h}6=Zvu2u3{Lf鑝wMu&:PU&5D^;P,G+-ȣЁru , _~}3“" *7ij]* [nyͼfߞ4~ bn훆tEP/ǟtR(oʃyOٽTۮZ?{ۺ`5r[1 +wu c.EMxdlbgαv4A2ᰗ10YS~o#rS,½ Dea:ûC7Ʊ#=0mUZ߱U˽b>t|j㣛]6KQY.`ԵNXhgw~Tek7r΅@CL5̽O+d\֜JQɘf=։ jG<%KQ+v-I轰THwx9 +Jt#K]rxa$Qb]3h(̉RL=&8F3$!trQT3B!_uUH|?\AEwD+ (v#)f?f(t#fEǼKG$ɱ3ʿ*!z}h-0ff>! +F<(9(8 33e1_2t9㟒ݭ6_8Ɯu0 y:5ӹc;!|h )H" :!sȯmba$>`ڱM [܎Sƭ&fȅ)G\Ĺ ~L)ȩx:f7,Ijsx9٨`-¶ Jך(m EOPt]ԝZ_T=%S /18=SMim*fXiQJiT}{)O*0@*V3pϦ[I*RJ? TCDe +rxT(i! mi鶩N<\} )E t}˼&a-P$f XP~d { DD.Ɂd$ eE*i+:h$TRC͈!v@;A_qrB1ynsg5t|8$f:S7_K?趑S }uv$E?1phVdW:u,SCA=<ΦV`_Yf\Yێ\p+ryyjJ a6)0T"LTM@Ǿ0\Uc<.lDEfUcmX~52_j$?NXbu@y?1Dj) +\lx{x$sw6%:^l&;EwP>[(ҩ}JuCs@^J^AϞruHt5K&sf!.[r|'q,DŮ!dLYj7vM0% +{.[vIa!|t"v~I;n^[tʫX ;d*T=fQ-zJI  4=$bAUNAn3du&!b]3?[ +3+¶ O|w97bJH W1>:|Ǫw{UKu{.e]᧎v4]C>,p0pl (oѫDfU+H1F n /Y#hP{xp ea`#2 aX,ׯH4pL +CC@<z#S %+.6ZLw-5ΐ}/թ61z +zqqڅ84]~015Y/˕lQA~,I=;Hs0~U*E\ތɺCTCc=E6w+p=kYQѽz)DPU]o\Cp&,T`!1$A2SBPna!&/{<+2P AdX\h>0Z?+ɰ@a^b7v]/(Q恵LnM$[e 1[ 3%Ʊn "!J&jAc[xJ,\iie9tmwf#z-ܴD6VbQM^H%j4bjkKb43m_:+wIhm05_o!k-9ج깰wW[ k9:aCc5w3`%zSfȻ+oTyYZi(E)B)/Y3R4æ8*eiƂUJLOZy[qF[bͩѵz q\89yB +y/[`cd89/Yp;kuZ:$i%AK}+9K(V*;w:W 1viBѸ觷UEp%w)Io[G ~F/ ЅF+f|l~;tKטv!=n+%JfXKW7dnݮSJ]; +օbDSﵚݖ5}KB!i!Gd+s;K{tw9fXHxJ 1"cMt@iE=JM%rDlGN8|1ɆdSGTR.ʚj1%xRHMSY0)t a9&f-#wa>u412bkM4dEQ}MXfzA"ZL 3J8q"z,Rr%&9rb[1 wHTo[j}x)$Jb^Љy|A8v!o~@߈|#z]=r'oٝjYKl&6`Q4d;5zXZru`ʲeYgM)$m..jeUp#Oql+EfgB11xvx>Zkob,.]w7Ƙq_ov'%<{0ÆlO2Q<2/y,<5x!SYSk +i5Ϗ#IuaNIJD>te21#K ]`a?vڪ> ;kߤ+_!P..YI<K)pjCF[:yJAs5`p/ +?v۷ . +q{2, G_ߝfg7԰QRB{1" [D٫ +v3@>zd:Xl*Bl'^o;S{4̷ZOy7={9M'֝hc{G/:BJ}{!%aKLU 3*#Ӑo)U?QL'5fR/8BQU1֒넩.˟6ܜFcE:G}=-ZWB,W飪GG_Y,Qp͕G*/'Ƹwzݚx$e򋥻( iorа$X%:jk; f7 +Wnsh734ome߁`"d-P:w' +g\gⴇJټUёbZ_[j:5=zJfM[wNe4Z3<)e||+Nm7*U-O\9ٴ+ o?珏>\IGR3mڳ?u#_B-! ׻TaS|Q,rWƶ%~L;M;LW'7A-!̦pTm +x6j-H75(gYC$g@mW/NE(NѥO5 +4rf́gS%ϋq™2wsLVF +|+^Bjрۼ"2>p#U]tH!5o5,v щC3VĩLʓ7E~ JlwH(n!''1/ +,^I2R$Ԕ! s9D#o*H]~R-"V<͌]C(vގq U6{|t!ZqaybR YkaŹK#G tObs2tm,JR bqtXk&HE L6{i=HڹʩUKxՙKX +Wh<ꥬ[Vh)3a*.BT *sJ0pYHy7>4j~MUt1X/>f +[Ʋm2I Y^}y|2+MVe\yAզJ@ڞvafe@U4mĪ_i3X<`g!$-m;#cɹޙw6||Y(p;19S%וr)X*f hУw6 0j]yV=Ψ**r4_p l@Xo +CI?6;O6ͬ50>W3=F+o FqVY9oq&] UQUT+ j]s[ΑUu*$j bqW^Vx%Vk6uPgЏ<3C1`t|gш0 +vv||iӯۯοt~+Y#P ͎f?N54 gȱUG/EB1H +dFUmKmUsWCS=66`'B1vCO%62p3ǰSt8f9ƴ™͜u ΍dm襝|ahý55~'C uY93O #ȟ;c蜡MP 2N/ ]u-82gK2#ݫ2 -0BXi(aLט\MTy?>"kF=dߨ`JX3q"dC5{ )G7M|xE0y $il326V{Plm#B h?\)nwE7_{!19VVTxeo?I :pK.RVeORVTd?薼>`!3Ļ`rIcx*UXUʋIz(6)-A-e$й~0By v91 06AG 6Ӂ'*]}Go?fYuY@9?ugQW,+Վ8sD^#.!%7`:v<oqb7w`?G`w'XCSML}<%QZ+?HSQ](5NفF֥p2NUMP t r=P}4`X߳B/$G6Y9+t +IQ +Is f(ⳏ8&KAV\k60KY'6xi^hҹЦJUԹ3'}9TOy\urf|.@'g{!R;e298ѳ\u>)>DRK<üR碣+7za?@ If5ξtǑSpLLnwAw!L-z7znc;9bW*ߕA'tzQU`u3BGa-DO(WM]ds.Oͼcl.4oD(Жox ;AѬG m0{ugK?vBVTfh,(d]۲͡1E bCJߊG?UK&LwE#6 +roUրشOsDJR&N]N k@2^a.xɬȞ}&0i(6$5R(T +8k0ȡ?^8bu@[d`vKExI$8nKu{GcDvgUVhCJ<&"EcoPH 7޲Ph?zwCFo ɏl\qɼe&AVh(TN*Ep T;m/Tʌnafll-3ﯦjwn0>vRA-Cȝ$FTMӿQ;((P~ D-uU@ۣA<0Vu=~?1 pBW~[P‚Ϊ>|RbrҴA +'JX(D6QRSɟ{Vzu9x9϶)NN +}WĕF7d]xv^s|5'P=Omd;\2@R~Ȱ<^X-"x}}}(U_3fjYȆ}Y;O6mc;y֚A's_DXx!8bGv<<MCD!0ID8IJ1HkWTPb~%VDDžY~T쒼 {8D)y[6=h%u{,Y Q +.q?i}Be +پ4;F<&8#NV1][W\p.-)5뇯Y()tM1Jel^hÜp=K=AԱ羹_^/{4Z_=B< UTٰ|s]osQP*/ +hF.#dȓwg7`D[(˺celpJX\PY #C=%qYbR)\%,xF"8F}ՐC/H4,R4Ï}JF)AB9n.  @.e4s%_5t64-$́]+hAa(QlHӺt)5[+\*|?705WeS0]*Nw^!Əx  @D?ߠ_Lm} >Q!S?xΓ{~a Z3.@ #W*]JLL,DmKn*EY +rs1f8 u`FÓIQqȮVi#zA}8͙nКΈvTSe`:I%@]%"T:vp2G1lӝk4T^MlFI'+)Lբ_pMU1Җ5E;C凭b=D\&} vagޮFtϒpWqj/8ȑJPj`p. h 9UpUbȞUsRܪ$zzѦ^F12W=}5F3[.69$0I$^Z8M8$-hD.1XGt|O=ap15.t4HBi<)_x&fcZo`kHcƉe8'.&"c 5KULܳntQTy~1Әkv=<>vRNNuYi;BD>]ceblEc4Dx`[W~c*ZC}}Sc#B/~.uJ{:%pO,@"@4 +Lׄe,"պPCdkǹ #7%.T{{$"U:AÌ,O29 +pBduA,QaiQyPVA~=&eduQH?4fʏmORR3jf>&@j$5Hԫr;(Ҡ/p4.2F{^oҥOտ^>>ߠGٗ?&sձLh䌂ƶJĽH3,pʻt3֥R}7: ð"d Y: eƅb?Cu_cdYf.L<- Y,T+JRsKmyZi#dyfyV@Q q>Go16[#jTedC)bzUϮLW +6IZBY ufeH,!{㥆{hrqko|E_ j"Us/$Hh f^@qTD:7rIx *jItC;C +D>\ +-kEv?P1}ӃUd؂@}C Db`[ސ`v˘YV.CuSV+ӈj^ G*Uml~#[27_e%svϸ^` ~i S Ujvxkcnz=*> QaE!_!NCG)~ܧy2nA +n\JGSQrА))+qe>R`*+CC"5(Oq%zsDwuZ.\7 +D: XHŒݓGgkAmB_167? 71{5,x~E64s/^XN5A28Tmr^4*z~<8 vR//56$;02|\j%P A\1";-]bqbhy&鹠Amk0j9Osm|B;M ZWj!ޤ08i ? S/.! ;A*]?[Y;bzGt+5rw DNi e[W^v;M$4F:]kУ4ˋPd[u tҀ5!ר9+nJXmջlo᎑o>/뇒wF#^7d\! JՒfKDOq%T#}f[m;'2SkǺH]+=IjBm SFx9FS]-âidͫ L0wf2s 2?PA8jɏ'jŪZE,[AH}njKCm@|ݴBŖ3Kq1R%Us2KI /3b9kLm[ϐC9ǖS>#}}TRX,Nͽ.tkJJH'22Oy3&S7FK Ćr]#dNSQN^X^JY'pEoo*B~hzOlxr&D#{jrΡ-5w]z`RoNg SQ~T!α ^Gw>{uUMwUA&KMĽ%f2Ca*luY\fxr.0e:33D9 c(ۀ.Qoe㍨g&~@lDgO1يȖ"[giS+}_sc4<³ڱvp*^󩗼UŅIiHI鑤b"+GqFesk 4r'$<= XФE|92C6_pj:6]>7/ܫ6p{_G+Sװ'_?0xs%߫8w|H+žχ=0,6-ggx6')~+Q*S$WilX`${j%].mEUʻȕ++ΎTy\]TpghbbAu R)CF0Q0҄q.sQ3JPjɄ<ّOKWE 9?cYGsxUb,ݷhFػ@i/Ю NJޭpJYGlhdM8<,bZҮinK,CoQFW=g&hX51oWI:.R<BU59u|%7y +^%Ҡ?,F*v,nVLLU7]%0j_M8.I۰ǭ7[44d02'bf!Vmm+W)xWXAPY6qF'p{Z.8[L{9j3`㏴Je_ɚN0^UO=hZ$1ۜh I}GÍT0ىqZS]ir]RwYvytAⲏrR,rIex;B޸aSFĥ3gj|D|8ې]=o[|_M;VCܫWV?~nq$'S  #X}63:dm41.8l 2=ó&<ѺDD:) |CL1gD I(uL `3eC'x/uA,$M夀2du愈G}"p+鉊f35u]boT/tfSA&b |?t &kHrIuf' q)2I8F sFyYR2]QECCZ$BES +>%RD7`˔Y#Gʧ<[J +k7yΣl.?x Hl>@]m 鵟ٲF:.kښ]8mΌh[߬z?̘ +@oVXmϿ(j/2h $cdRqtH a$@dWSMVz-XZeMnlaNһشǻO8goy_>sks x$1u&'O=Rg+xz&Et{ҼR7."RY1G%P-JrO/fZ8c^`AwQw"p1ơzo>u@wzjt BtUĮGQwN_ز<X1#u$Z_a06:nDeX7 gC#v`iåo,ata43i"p ۉ(hTNU4 [9NH $Not(X~,y P`af[ܶm۶m۶m۶m۶mb3NDEWWwGEGw\UT'Fƥ>4pZb6 FP(״5|QRv;iJmȎ SoH]U*I'lm( J6mOgJv4o0V LM1E=/[U +Z "89cLռڴ~K < Lg}H4Q$9d$6.>&1&{lDt/JIYDŜKpj⠌ʠrm&,o1^4QN_,J´Pku}i#Aw\]I;V"o0>ԽKnP:_O 9@ZN֣^ ;ć],8,/Y\3b4g&=),3UaMWSvC٢` PrBvWD0Y+HU-;=Nm!ӪoN_a9O>Қ4a M*G.`ǻ +k20{#:Q9Q +"6EXJp +[^ܥ8xtIzIXBaglqAfWWۊSé +v(XU~s}E*Rs'yKab/`|"bg ;EFxu'd41my +TMM.Vb$R$G*&=>Γ{{q `"!MKa`H`UȅL-*rBu";AN˧:sq/BbO,rH]<*m惄ڭ,CĢ= +;ݰZEvv; +ݐ4@/)!,AK(/AcT +^cN0] Atχ0&ZL06.rX.~`VvX>I&MJE(,mSIѓz$(|]CP#Wap 2 2: 2=R(xqJcqk/.Ye )[@ B(ƒ KfSC@[ny AkuЫW6'zZxa OMLk ]w:3U{n\ '=klկ'`cj=ԴGƶ6XrAp#0CgXb8 c&[ / />p Qt?R! ;K2!E%o,h~QpWȣ?Br߲WſzXEq ٖk +qq{7"R[P #QIʢХ܅mq焿7FX ]V,XW3?jm N7-!ܖ)i:{'jGdv|Zn05y5 R?Z7naዺӇBBEUtYr}{5BwP?)m跣S_Ś"Wiɣdz$km{ҥ^SGB1 l by?t_D?(kO!KYPPD . (#$8J1aɌLDfFe$ n]WužϹd΄?>y>&|[C! bgtN#c 8رܑbKHrQ2XS2J$mvI.:rLsz-tPKf ++u$׍:TI0*J7JmaT!K2)lTe*Ѱ ]%/_҉ +KYSTqZ\ē)TBt*;ZnZjdI-t̩J]t2}Ťz(H2@M{L:duRȲ*Ѿ.\~}˒iY65# F"tlqʕU! Y9)4갴-NcZ6kޥͤUDwEdk*r6iz%4I U$As|L*^hsK6G‘+CWwGc΢_\z!tA޷Z(K] xPBw%Q/~f]pLHe"k{ 2A(>8;eeo8KxhV5On^%.RlKxܹkZ28 }604g6E|MgEu{5VHSMUkdyl}6.Z'u&hHPP#9e!|hE3@4˼)dh`b" +p`\iDEV&X911:!5? E~-X vt +i}gSʝk:Zk>..LL>:+8Qԥlesny)a0`؂^0xTkp8G@+}5͏-r𬢫bƿjEIMs툵 g #W&z.3v֨jg'cBjU9Fޚs3 ŴUvUvowH #[0>"[k{<qlg.nh~hٍa7|808uxC$f +#Í-šW %8Ϡ7tߎl/q&]oEf?W$*SWߤHċf_Fs|wu-V &cͶvr8V@gK|ZB0LPfPZ٭3h,:k8Zcx6A}UJˌx~adÅ$;SZI{7,YXF8m ;esq ;G|s#Mcw#b+=aY\ĉZvptl*4P-=*ny LX5vHA(e&T4s_a~ŝ<ไHЍuM + ꬐)Sm\3+$ܩBJr'2t;P3*tԌɐ7cDpލisF wՎŦ](ʻmmRm+Jd*,iuK[ĀΊ{(ҎЋK]H^RQ!n(uD11M 3Zhc1Em.$Sâޜ .@6!I2~usϽ-At1\ϖx-ˆ5J,l1xK-D d^mܼs}('13p輇85 Q$zG6M +%2gy 45|PJtx}Kƍ2QJb=*t* CcA%x6I)tF#J*û7%sPaܚHb :MFɑ!hx8tL.$I 2k,1cȻ#} rFr=X6v>&kWoO +j[(/HC7E{`0mXt"?O< FZ@I=)0W% +X Ohj];DS#SƳ7d닩WV 5g!(d؏摌xTTWdIG2.L~pm 3ٟjB$`h3MDU7p8O6GcdsMK +6O?C?w/JfĽ]y{2q%8K`MCsnu} 5RJbbC@ϟB(%1$ՒP<_9pC + q͍Ap DN'!܏hӋUTʮkTM^9UX˃LW5ۯsC~p#_Bk_X_N?e?~Tİl + ':grٵBp_p>ToݠnNձ +nNձSe$xiU jN^A5AruU7z^택xnon,w)!]2]#Ny2T;Q1-~t"hS 耐/4t!,zNj> tBo6<nN]x (D(>1E!~y1-!I+~7#nFbteGhrE5 &QoB /F&M oփsEN-Hzl lqZ1Qm-,F۰-cvD~3xKV,oP豹 Ɲ؜R쎷ߺY9uA0d]ֈRi~Sgi @>nY< !";^"ߘce͊#0{(jIr/s$7ܙeL8oEBj-3[g:d>U57zI#Ƹ;@|Q:f=Ğ ިCaX8G#1߰F8 ?WX]YPRVyM)ZY!W,yE̟ 钪5M2|Y e2Pb;prV3oei4Kj،'ֈd9K0t)*STdHL"f9|e 5Vlah?…QBW OS!Y0-]`x\h8b2+43#TɓJ=;PiET[ ֕jf qnW"'/#Ț G0_ 2p dU` Um_rk 7l&ΔCR+!/u eQSr٠r < +vh%g0֓\BF@Fʁܛ ie?ӆ[$j\\Q-.Pn}Xz_7X|ASinDU+Z; +ԅNmu#qkk; p})#om;BW6ސv̹U¼R+<๨wNp+% +sW11IGpc#Fne'kaw๕Ъ2b S'vyLsLTJٍ:s@?q2|¹~(K%KdE0XpКp81 /dd00#$(he4P8`N{Vnp5w;m r:7>U}!J/T+Qn(/0|!SAo;}i`mQΎg8?Wg\} !tvH`ſ~RX~W<L2[@=Hǚ>h]L`2u12_b?R,P/ SIfWW\k !!G .t#\%n/En?΁"P%cf% Ed$vaKb;ekLެk ?AJD~^ǜ҇'J@ĄAaAc!րQs ˇz;{kK;,$)hT]zGtCZQ&8$?O|YB>yØv~i?`L#C:{<,/EίzY);T$%_LUx3,_LBrţi:)'I Yz,%Gߏh8 u. ۲8gn9brYf(e"I ;VBhΎj-\5 +jn ٬SޚT(?FE,)ơԦYڪT^@N0[vj`YtUrY/nAuuY/s"mԖJ_*JmU[+_jj,S<x3E"uS'yCjh.XߢmqN݌5)qFkgNyd D7%-czMιzs+1`3qF?xnuԓt$fU&Q=w&/e&h#!L5*^ ؁ʸKƅ+Jn$$}pӏ/ܝЊv3t?VŋYZ+[Sx7{jwlzc"s7 mMێZ-J(aޢ ?e[x;Pg߂&os,` *<ҩ8B88GY̻oI.ħ1y\̝\VPDw9`Hvfs6F\*D=-.3aS>]:/R4ңRڡ4CM#ѧkMEC,r0$5A-jaM`njv䜔'.;ǤZu!{x3ͱ0&ۀ׼ +% mcjqOO ng@n;sΩ5v[Qi/C?ӝw#[2k2L;uVݍUe~ ;Yj>WH˓(t%֜%>d| DCG_ў`ƤP5_8Fk`61Zl4rFܤ CR%{ė2i$TB(jDF%s(fWHL +$}R^+8?0~DC]f N)%Cڵ/%iaLcH]ciTt,p3)FO/wWÂyFPI9swbWio2O<9Hia@x]{?rBp_Ϝu z?tz&=?2!ӯ5C__k|?ļ5WǨ?Lus#9Ҿu/2w&Pâag- +ʼnblXoRd !}}*y +Ay%A{Zԩa})hysm(=RQ׿(4 G_.8y!/!OmNa%lptW*mlXYȘ 7)^0oU7ZqKNDzEg_d .jkb*٧0$6$A"l Ha Ȁj[ӺVԪ@i:FjWlZzTm[[rM O{yoe>0,+>)eJdg>(P к`8ZdtOm[..ӖM]*eE?}UK?Xjrd}yK?X̚Y[. ΰ,Rϴt3^K?Xַ[FCJz}cRMZT'ٲ힌viw~MktD%Ჷl1]wߡP +/ƗnZ.,Y7^ +ݾ+s~2٧6zg`ߖV~!g$&x mMxoyye~*m7_wQzXmB-}E+7_%^d?M_-RZہ$mb__M_[&m!^_9/|?9HfCʅ.^\JOp?Y%;esH?=^fAHJ?Yᘉ@(R3M)7۞/o8iz V.V+ܽ8QeKı%@}0i|}AkYgD\tctټ ]lYnT4x#XKH֐LicD_O!,CgcjJ;_MZ0ٯtryucI+eC`̦ +H׆DdjcYWƲxa--JiV˳` Jk2$eݞV|5J!B{bm Kk6-Π[U^ze/7j&oًE0#׬یmlkC[O^ =J~'ѵRip*P!ՖjB) 3/?B6@luL$QS|0կiw31n6<%sR-"u[DqMYz^ %CoNg +nѩIɟ{b8p=''3U 줋̺v6J6#IZ|rkBJEX߻X +޽^V2zvr&|o(Nm;s e,9Ff6@KKf5v|jJ8u[gl&ŸڠZCl[4R!V2\Ƿ[P{Y<4~fŔn%Aj4R3a]ښj%ˮ.zN_V?!&a)szwKЕJ"S<3]=AOsmNԕ1zs7A}o*_(dxp`^MsZ?OȟϫVLHg+iC7W]%^i}1j(t\룄%~do N鏐%_m!mjTtw7dKt&sX-κdc_o/|Cm4ډtWA]yb+\:HϧJجLx"βb6V:8PRkz9?ٿ  ڐ M;)Z礊_Љ+~R U-)hQhK ОZ vW~uVG5Z 7 Q^h+*&L"XQ4J(.#({([ g3V.$5^#w|n  2!!'VlҌ oW^|kq>]+Ò}ָIlZfýA` ⢑ 11i~v+FT5>aUu^y꩕sXAuZ,.g=2jiހcD.iߦ:j +>oUT^]nT\\a]-TSfU.߶*6;H˙ l 2YH]so~3>Y ;,Zn^ˢMu ϽPu@̝uy˓kKpYZmYy '].t3R!(hm:+>s-(.7*@;wqmdD(ys`k[%ϭE㶊hsV<&VmzRX^m͹>Cb>qsI9vb@g*<nnlORyΨe3E{*H)ݱRY124t"+78kuaP97m1j2ڽڑrÚ\^gWȾ 5:Kԓ⢕4OT2 \uL>g:bE{kWs| $EzJ@g#7R3t>-{{ŴJ}ڛsT.KVJv#V9|M_ o/nA&uN!QoYs +B99e2u!ۣC⒥Tм4wګѬG5o'wnA<󚼞)f=۠,kWB3mUF [wN{hBǓ+,}}\4tfj\%b<թ>k k]<[1RGXrZRP.B=w=\~inB'Y5ah8~RGT3Zʁ?Ip#9~WsqIß1]9Ȭ2Ly+?uvw,{ƿܛn0B *p3D=t[@}\!w@lZ㖁(?lъK(C%M:_n(0ݢmkOok ߋ.; 8/'; I# +Us jSfTŅ/z$?@n̠wɀYA#Ī7FGXuw8ڜ`3.c/@ L7ۋb;qD_U,FmE{&vzeHk('HX9OYͭNLb혂eXdzÈ] Vv7VSpnl8ЌBc7C.P[F.G:Z($.';O7N, w406Ô$80+Kl(pi*Z@:(I3@Ԃ~j0+ Y2lԖ7XJ5>a0Y+zw OcD~eJ|B!I'_*ZRcju:^A.K&6!7T9j_@Tψ>ZQGBU}m~.ME: 5 L LIR,7A0(C$ fHmv-q;@H&$ipILۇ!aFc)[9d&x*m_-{~+2 /Ȟʦ`^YE  _ +I n;Gr4ߏ|amA8ߧ֣j(2>qD|lWП$,J"yބtE<{L z˄%i|yfz+'RO,C2z b!j+kWPY3+d(wܙ#րJ\!]kLvOwGx;->4@4 /ܕ//:Eq̺Ts!AKb 1F;v=`Q1{n̎~9akٰsvLw;;ob?FZUS>H,2dlt5>L-n7 ^ؿMC{dSyfA ! +>w7vQh3GQ[E82 ᡁFМME]wUCoچ;*; +Gn \5_&chvMǔk~NA .)}.- VCαqsI2=R*U >o3՘eXڐI@~JMUe NBM2N5_]iklc;)8nvݚ/^kݝg.f +1Z0,yg\ g.9&^/^?oFQ<0 hXR0z]זcǽa{nlFg>mxEH Qb_2qX ialgrFe3_r>ZIc}c/ZQԩiaڈNTK͂d)cW2Hr^4Rt]ea^1{rmlJ^Ԟ{k]ީ⚱ 5٣kWgVٟ^1?fg1;&lO5-ڑ[ րN3r);q9FQv(8l 2;nI2ܑ"X'%\7Euo'hLzu +=f[ըDIz:NoV6=n#?G^xԲ,[2PLuW?jyjuz8Ĩ+e٧RđkVqw'\ RGL>/IL׆\s ՝4샥 2k4 {\S9RkBE%HxE9;:Sɔ5Lė%-oypԧJЇHODx& s)ַ +. Y6%?aW*}41< . aݭW4dͻ|ũ@۩|=:g@xWÁ(-Ƴ i~yH͝(=Q*/OR|:#?5J_\6Dt5fw=ԕ0|'+22}Ȟo_ܻi/C0پa~WVA'} 8j?\Lf!(BӢ ajt A]ױ5]c<+C+x"Vzqj|MIr+Ph $Wb\slIs-YuZ1L䍩a|=gkpus$K>5:%p=vm8%G\Ѳ6/qu;羟>gOQof-J.bk=ⷥK5Rv+vwRݕ\F+^5 LUS=ƷKa^wH(7l&3C*EZA=<|liwtjnOsVו& VR 7krG"eOe4EͤaA^^3ʜ% <͋Tvp7VuM +W\{Yʪ < 9ZE&hWyS̶`ŶM^(p3ފK AY(-a] Tڎf¬-BS(m?>M\%=;neDlQ +o"OM'K=wŠ~ lX5w2ӢԿ5.~ z)␮air^)4 \35xy{|d⁷{A9C{G-^! 4 z1{%f6 CN6 |XDas;q_\)^jV(2TETekcJJqJsܸgt2L4\DS`1>(rwcrC1w 5 /apU`W k 6WrGQ i +eu՝Dn+VTYfh8`g_tBWՈj+;F}p8~m}߹8Sj;Qf;SUF6-gSj֚E#y[r2.033#O4/dƮa՜vix\qB{ ]_-y}2fL-f_&2R`nPL2e`&_H5Pʂ!Fz suѨߋL;OkQs cjQ[+;Z^ƛ5nNI 9 +gn)<رn6W}s>Xy+B{ ]s; (ȣP+V q7E>Xw ?~Ś]'K3Yށbg\H_yBVU`{?Ckff{bef|yd5퉓bސ~JyQ81+ˬ䨹Lk-=xg( :!O5z Yaw?hR,`-0Vy Yv]# `{ ;At +n[4GvlIE$s۾i ?" rDU$ڰF.wny_o~14NCi2)ćo)v$W5ҪJ.-k;ƧjٝV;XU϶$ݿRg{zm+{-v_GvJ6r}i3ʝ:^]Űav-4F$} , j_'mv6>Ng#0qkp3y6BB,f(vr1@0[؉#Fı26:11a]tNjfq+}?N!C/O:Hfmm6?Fv~̙̙,;M8?Y,M+VÞh$F$Q uH Ks>1LцEw|?9 w-&in`yu{'kS' 'SCzY_nRCZB^"mm6[idWb&WEJ +רa +y"&/3-!iLoswn@8wR#bxWfQcbMh/Qi "DIP:aaC̋#zjRHc)fl8i ]^E4DY Q͑9;9_ۘ s +tmB`nqLa[7qBLGq8vH]a,L)+:Lb,6Za1 $:C NPOز + 8`, ++HPr֜!K- v3Lۣ72]Anmt#CWkmtKYDihPC '%MЗc4k.WD,b_xjf +Tm)B/_6UTݳZ✼Ԍiq:;y1K03]I)I<XroSLQEk''RCϰ'=tyIiR3J^L CE:FsS2i19B;CM><ڇͶ[n,.}mHjB XA*zXQiF m.ؗ6- bŧ 7(W+ ++J?/Y#`<Ѷ/q 1J.e9i~/{q~c_Փwu1mgwh$Qcmg0fV=ж;yr櫭/:|b6qNpem{o?DD%-MM]E,l =%ʡ팣'id3Dk`iKXĚDj"ކ[;J* + pF@~P?_ttT>Ϲ|뚟j;U Aa=m(p!AF3(Ȃ!K1zTHA(e#F3%:^c y3v,p-S?.1".x\''W{ XԜv}֔ɤf5fԥ|6o +x׬QG_Kut +dֽvd4 穹櫽vhHgMs4M-p;-He|)HP:Oۼ[0v%: 1GgZrtf;_M!r;m},We}{]$Ն om(É]n|$)Lg8L^润vkXY-/X}i]w 9$e+=$Yraj +4f + Wi!h=fhX2&O|}BB9(phVXbzZ 2]A%x"1eSo8v`oD g80`(Č9ʞkȯo +Z\iMi hM;A:~115p ,g( NHcP17!ܞFT + +O&YX ig|wA(�Xp +?Bo<:z΍soUqlRr9:TOvbK!,Ubd/+z?6n(?=׽+ s +,Q8-Wfȳloޥc4BY8B‶1r[1ltfrov+; +j_ gA^.k3S.e)!+{hÀ;Ne&;C ~%$uU=ƓO㬾ھ1& C:qq9G &Ibϥkr-Ǿf, ''_K!>HJW(|u#h Tk7kBҖ* :""unY8C:P aFBKm5DH!^I De6&:bj}c#(lHr!MᡇvXѺጋH}Z'֊ ~)ѵEmy`3F]0\r䪱ڻq`OhԭDž'Kfo7k]\րx7]iEsd] a: +ڢk[8`xAA3驈G͑HtgDD򌼅YEѶ.a ֖Z#Wk֎m άSLb}W'Ȯ$Q^X?,0O2O̳sq}dͨVf萐Z̒GvgCfuؑR#N:Bvn#3dZדpAw)3Y%?L?}Cخ?LzpFPXeB,(S,7!EfQav2VE"rVF#uREb +hJ8d4%ج( 0r|:v`sH6s.|-qw˨=z|5LJJA{x+x/LouKˉ{;n?xmx~?ߌo5wzF{PO'O\w?sb;Na?l&!km1 ;e?cZI77" A 7BJe-Уo ~Q +1c[׭e8'\2t3lyI[CWjO 3=uP#.,2$B[Kek&Hf䬂""h*%v +-] n- >!%DW~לo'NK]d +}(W8IJ,8r9{|x!9 +َE䈼?9hCtG{݀[l# <C4 ďV2P2/wLZ7yʼn]/]顺 ď!{0Ysy d#rPNcm+sp?C_]sw +ܳTo;^Mw8fc1?5 +?z?ȜT9FQ ٬&VY0DAV  8WH|X(Dzv{Z=Uۘ12E4<3.g"n`h̗N<\Y!⦓*O6`#,=b➤cPT)$"}(_5MĢ;Fcr0 $8Ce:má$蛳SHzoMt,7] "kq%7wO[m!LS(Q$ ~S~^ZQζ"D( \c2M T^^jU9Y5{Pa Qf.NL]b>&S3jEf9檵'燷An3@w9OVew!Ŷz/pĻE]TˤڙVVǣc臈3vHnX3{^EŐD]=Ugzlǐ54|Hpȍ,ydHE 8kC`AlMur6-kUŐILLþ]rqUe2sZqƝ󂩚tYKuS,2rƖ1.4){2whԚ6?$5k+Q0/e;+YK#&G9\zQj+,Sߌe 牛XZ\`k˦-zӕ\]3:mծVe\EhZݙP.]b+lL`r.r+䮗-{;9?^3c*9fwq +&(ٕAp43 +~i#ϵ9:d]k#^ o&j+j}k܈ʚVЮ6/aMLf2a5lnk[lm,w{ݕսzquiko뼴Cݔ7bk+GRtvjD[ఋLqmLEgW=sWy7SceH ÈKhKJ7EFᕝ9hF6`0ղG݈5.ȬT#xb74X_^Ez.gf hoyl,laƂ|Ҡ"T*8rN>Ĺ޵[Sz6bwO*rVz0ޜEu]FshlړG&?5KheK0}!RAIbq ph Qܡ ,bg>YXj?m4 AvfQQӚ ,oVv|$xp3m* +΂c.bjlDDŽ!¡RCёcӣ{jo`OKęp)֩ts:ՒB=xCٝ\A=E'3spvA$;OsEsY['-$OFO\NGI]װ\"F C|; =6jL7K1]D(~khjLrn]GS\D?ļ kן1Ҭ9Sf).)Up飹_{Q:aQvv v@[;׍*{7UBgnLaw +Z!FԲfśTՄQP}XIf J'K0cGNGQ_p*4-351 XP56ݝ8EX%J/i 'V /K?mGq }>ioRkkw2#xj=QSlDwDlS'yc%v_w0rz/A,B9pUmjNC o\ڞd Y dϦMbC+%uFR 9"Y+UiSRrC +gXS˝WyFےoX oS2yk }(gT5ɷK+(\\}qoBytV] 8XߓAbA*[T`sT-9l3;F t R +$.%#&pB33gЛWf NP&RŽ-JpBm-#pWXLC;>] T[Qݘz7 EBӅ,B)rI'~օ~!o7~S4~!_fdWZUHGfLZJV+dWhp"ە'W3$%o;_~%<+K"LZ]eWv[o_o龠[+ӟ3i̹ZogcN20CB?W:wٽQm.sjU9/A@ϖ0Lf{>Hl5yJu/ 91R ѷ yԂΎօ36#hfl%G,K´YV-/Y-n9g`DVs.RCtH'++z!)/THHi x +];gK@eh-O@3#]\,\]LM/d< +of ZQhK2O@v +f(ǡ 2m$>8M:v`N&]{=?E*Fb!%pEN <0#AcFD4SPtTR:+k4dgXcR4:[ga/;zdEoÜJN閚 未ѭW-qa⟈Icb̠yD@ὐ"L`-Kxӿ.`k]8Y0H.ZF5);>GjUβ!ʺtb#* +^?#0|T`k&~S k&c'a^&+e3Ub9_zWe'ivK94w91ܠ]N$~}a.=_kv,QyZx8/aǥtY"Gr. \e_BҐXAFPFbq7`^2"D"Ś9I!9VIw.LbFe YU?mh{åZ>%NИ#(B? zYi_tNiKɮ( n$&qgɍx=y~!O&i\65䒜&(4f)R;&)ڸT/x}K6޸vhrX '#)y'66"T]YY-ikBPz@ɂ&腅 4 ?akHر(踠8"xD^fӻw]ku]}1 a<ƅQ`!?HӅJx_Yk0nzɇ5NFh& tvYi-B0hV, B!^hEXϳxsEoK?a~1Bذ5^Xdq㏁=帇!?ڲEY<7TMɹW}+ 5"J*9@`Pb!NEq'Ƞmؕ&N`ʫe׎caAiBAkfF' tq"W j@S'J/i^X`V=s@V,~Ǥy sZ>13tI3br +y짭LŠ,<D}E"b!ܳKO[6svc>rZ(y}fw\{Cqƣ'-sN8J'=qQբ웄~݋,pD_tC +I'!Rs£XE. 7ڪ`7#Z)%0[tD<'ǃ);ZV0vd7fvcPf.+-I{t=O TYc:ufk/P=cړlVepObEyC]aYHZ\tZ:KDsvzAC +CwbAb0uPTζ@M1M6F]GW.O 󏟢V4x!L0aRKXUK\\rV腤-#%K%VR@*HG 2 '*K꣌횂>jK pG>Fjjv;`d$^i +[pfTHE٣=s(pEt*qDq1Rp]h,rC-rq?Ric9Y>LH~{HzR${9A,Gԭ^UAI\Ly~|@8|^>>'m#=D;hߐ\G*=#}q[Z$Z'15D1*`<&QfcWD9t"H#\'Tƨ4(QܾŚFg&Wh7!B]HC0$UDC4:Q %W8`2`: 9JIb?T9a64 }zxP (5HKit&Up1"/@H?G dϜf^9\W0,9XtW4Xt)\0./FìXaUadJÑ+ܑ+ L*qA 6SGIF0LR11Gj6PJIP #Lu=#I8X8Ig4vs8[eWtwg 7re#>4Oߘ@0Vc41hLC1263NYi#L-ha +d`[*d7k@c>D{Œ;R/^ADqtZ[IS/=PNm/Ǵ}5-[8vq'[0,KeB*mvu51hKe"e8p2[n +ҫk kLEw™:|O:KL1" +ߖ%GT僉jqV@\[VBZ^'馏cq杞`ȥH k$rSVC˺h^_o#!5⓸X@|LtͰͺfJIJ +BV-34½)frH}/*"3BlN{E}DL~lqZaW#d7D@ U[CP%qF  EE##UEWt^Ԝ![+?S윣A>WJp;`SwORS/w*&-yatHr-+BwOO +,a{;gC;CT !E߮{ ?I^'d %g?3߆͐Pׂ\6Lc%iA0xmpFyk71X0nfyy\yο<ﻫjr@䆹G {`xlY@CχO540жBPНZ)mFjua5-҅u%[+ZÂY}${iG쀶NHNkPZ67$r;zkfd. CRW5TٕdY8TM.[ +Ngm$X7#Cd: \YW0E Kgy.=4#.JI@\^=/n2R$TU ySjZKr3㣨 v$ERn\-?媰8{IY8y`Fͩp5v+۬qSއe=pFL[@]ױǶ% =r} {v/X԰7ERrPōv,mۏ'}7Ws}7júVav AJ3Tw|;+'8*A+ge:1ؚ ES/hr-VgLdaW&CKV];%ÐK2K_*S_E.*!_X.2RJ,EU46{ޔeJ_\xVٹ:.[yu%gXy,uxAťDǞ?2ȗ#Ɏ9 `Sq)0s,;3 +C),R`[֖]U7]ብdMWhd(Y^QLN}5=O7yDEx O^s:Ь8Ȋ'ƌDuY< x^k7.ۅTEː%p/!3v]H?{3$!˳c)͙`TmawR߉ D30fd+~Q d91C<C.wdpVq9hC$Ć C ږ<U0E#h;&$2 7u7Nu;qYAf +2?ic}i_܏:/Y^蟺(8{1n8gtgnfu]S 셥f`s X`6[gp b3_'eC'NNZJ J2Pte%%% Xߩ?ٔ]Q߁:T;f` +1h܍_HJH)j0wIu8ddR>B]R:EJs%s^rTIpV~%U:i6kYz^سݎcoKзH}S썊BIF/ ܛOВ'jƹWK7DhFB}B0e?7YѨ&W7_oNzD gՙWoRo*_s!`fP?*L LGh8MUY֐@e#e>HxNqu"9!*Է޹:Ʌ'$6:vA]E{:!#ļ$ł@*D! !wp\BA߈B,n.qsլU֡umMç+]5UBNv}w|BTE7`L)( 7D.ѠU@UbnTUl8IPN^nh܊fĨHγ`!+H4Ee @:p]ҡuKآUnC9m41r󉴙y#[=XTV:fIk-64.b^i!Ůl#WCZC/j͚Pm5Uf®MKɍx6k9R[ùuw uzճYzYkU!ey;[rd[lOz)7r)8o=OrP7v::(DY. EX.w5w~ayp_y|Q ?Yc{^1)E+Krd"$=/<4e'-؊h_$}䤺9@ҥ\͐6,?6g#e6њIyc3HN aIІhN40&R[Bo+kK;q͔i^* xB]mk'd3UO/$M^DŽpάs8-bt)mh%{uF [/ ^F^*ų=eOS-gtQd YO.gC4qN;=VքpܻD8'b);!KgLg20!W IO"0Bx.m@yP(;GzHo ߰y +8̼a@f{Ca͚3 UY֟l[]^lVаq؂"y=z ;w:OH aK=Okt)4'L'TlcWg+!e+|IE~"ߐmj=R(Jm҂4'QHΝ5E!"!,*I*[EGtX4n Yy j#wB#a*deǸg5 V%E-JlIN%[JuRZm9p7Un7u-zBN| -'pi.QCu1/Y>r4tXqQ:h2c1W0PDܾic0&c~Hc郉ck MckI]L[&++؛YjgT}K,er4Bct D7v*oNك@ĔLki*c8^nXXCM!0>C6g Zik7jc p9 : j TĐEIETU87u>S6o/z~σ9HQ$'\JQ/ب%D٨z`vbòdQ͑SjOa(u#ڨ}"nwpGt*r}dPJDTNDU +|xJ'ݰ7'(">du(ÈCDM}tIZZe.M(ژR9_˽~BXVQms2eC+9.$M_%ܼjsyrRbDžyU*,9tЯĕTO(— (ml䲤|y٩)\9sRRNXQսobEg}XrT gF|)j+1v1̵O%]H*Xi#1w{1wT/in֗i=F_l朼jՂAYWT>h,X$((a{jr1z4Sm1Q +EeA`=15q-ZMgO'ULUϱ95A1jxDO!DJ'7 C(a4? w(<7gR-n#Fy +7M*hJZQkF2!Ypɒl4 h7l 83][?0F&{@5U"[ZA4(OY+K|yQ$@LU<&Y}%R hSD3zJ// md|8uMVQ؍ +iJܔȧ96%s We݉9{KKlp-3=̮:rjnjX3ySe +{6N`_k:O*xreNj̞gRN4A{gg=j*}881.NOsnh' DÁ=kv| N;^_G~5Vzbn JK|嫸?qk>Jy Z2.x!|{ d2.<%g,g>ma96gw:L̟)0z^r0>l#:E0ŵjE6ۙf+[`ąQ>h R:zApixĤôaA,t!ϝ >QSu(nW5 #kmtBn0"w3bކV;vĄk@I;EҔW Uyj49Ҏ.#ķ\<"Vblu"@1ʒa6эkDfMJG,b:22a18P utq. rk%{VL|KPǎ aYn faν6 i +i /b^@ii +uΈ$$dJkŇ76ᖈ k"ju%#XX~sJćQj`A,QsW>UKK&&yKSʗжУ=WԕH=Jh/Y-jӥ1m8aUNz,&oY.^gmSZw$jnT1{KXHd}[H_7j좾TjRCPi)DXP$%h*nROŒC/93lUCj]9]\"μmN_%LWS=p|:C`* hy^gZڛtq^o6[ fb[nص94ojd^eEUm ֒Ǘn\Yk;im$\JX]YZUe4Lu@ZoP#;{T;:N3kX9X:R@Tw2t姪6?r]],<<ߛ7Ti& Q[rTaT6Ia"HI{3A}XB8|+gs׃ʶM>go:^O o~EW@WrVC~W'$0 0i=M$$%9hC=0!ۢ[w qMi t`XN֑hK2r|#9M'RR,GRsbRuƮۍN*i,_N80mԥu&ܩe)|LT2C){|M7 ZW3xwd%8%-tn ]Fu8,pRS CgC?y+m܉Їc>'9Tr4#4 К=:wJZ?$V+e-(j=>(ӛ5_Bfw{8{5aTmicv\;]=I Dsĥ*Hg$iC`1gNJdtT2AqЩjt\뿮C3|!+N:fPԡAW7v:mt<>='<}ߚ[ Ї :mB [CN?/"Dh%I&eI}_.qYmGw 2ZR/]P |ʋ,2:llql_ +h;\==[z´9VX.zA Hh[j +;Rj1T-a =q +A` Tb [b !EA6\qb0D0a魒a*6Ii+8D)4/ɟDY1LK /b+"4fLYHȍQ#&@z֔HxXgxŔq߰أ +FYȃ$S5ءEg%xU_P2B)Ґ +y(zֹT[8 +N`vPoe'6-W rlqxÒ}nv #sOA=I^a5gfo`:QȽALX{~؛C{|Tn9̝ghCۍH +ĝ&|=s3# tnhk;xCfǟ׆,[=a,.fzM~vjqZj6$WGP+ɝBROQ6'l7fne[e I[pZi~n̰Ô!)bNY>0~ +mP|ME5jU :xF=Xd7 #܉Ipedno:hk ZX^5+H67Sl +rxce"{({?oILě&0m(uo |1*=AkqbhnIWI%IZdE-G/RhgIIWs]2剅:hX0xd&ϲd0eEŭT.[cc2Q`y)"22²ݦyD}S'`eU~k;̔qmL<;Q:K77 'iai'lZf$-,Ȉд,l7Y5g0X2ȓ;ъHe/ L>Y3"/XVιM/SNΡz*%,؎rqL3äUxqeIc,G)Îx&_1 Q,9x +a-9IǛx) a8 4٦(GX38%HYQFy\,VNjt]d]mX']Rޛ zi$Ш\l~L,Vnqc\C! o\~_>wb9Jy P~c`|xSՅTvUq4q* ,rǼy:q\BJ%6TY'ș5OSV>ǫ9k)>_iN &Wn¿ \F'a6ab%1@HV5LV;GqU{w!HѢ;O'`"I0uƙ*J}WIRf p5\*aY5Y%fr%ª8`uj+Dzϡ3mM}NVZi۹Z6u/qy.ZZZsId/qH"Ř)'nGBB$\O QM7kp B}Y7⁽:|s\Ȯ)YQ-ͦpC7(7ѿ%S >VfCoTOJS]@|GuC>-W1R#zn2iZ;B˙lX˨1Ge,Re6wkƅ32pp42ٛ3ܦ`cRZVW{#pYy%(m#T5G2GUpQ rN`ʲF_YIs +7L%3R2CWYCKY*lEQoy:-4{uDQtDk?r k=y#,NC_[`˽my\>8DQPKU4]oyw!~o~yDEifD%լNȣyI2X^m4zߣ|ʁߠ߱ 2Pj6־J#_ Q@vzj]U,*ɻ0uH(D $[w"e:y2Z C}ÓfrP(1(q8n-*Zn,tno.c-٧6ȷ5[%lJg*'괓Ӹ=:tQ6%$`3׽J%FI ,HNGgW[2ORLCOlR1+XdW^ƈ#{7N=#ɾݻXd=zBf-ID;e !Ƅ,2!] |r|./F^ +})|7$kJDѡ,qNf[鋅d.,y@76 p}5^ܞ?@u] V0tN.9YZ22L.6 )q_胙["NS0%2uBiGٶiiicnkiDKUD1tkZNr6h0i+\z6X l<]l+&ɻaH[po[/XTId]Y[|-v5 qO cgBPTԀ3ta;[ Ե1tD2? I%UUAȞjS s[rF0wkCe)ڔ#\3@RUЂ>㤹^6}9ǘB&o6Ϙ{Eo^0䋎d,2o~~O:whN P0?/o9]h;~Qw70ġoQ+jN!Jܧ}z,g{ `^CuqosE@ :C yH&|d(cɀO@eNҍ%0}L(oLD~[eD>Te~l?`Rz$CAbKB`Be|f7f#bWܬWܭ^u)5RT/9V]r+^^f(v.-l2TRoY-Ɏհj/"J%1$U>/(_ZG/A_^VKc-r;.RfAb)ZjU9yfRvbQNAUի%g3bԎr6H;eZiM/:2['jc!.AXZp9dAb.aVz +zrAU#ieܮ*aۓR6~TаyaOxXǴy8gh/7 =W+WdI4"wH",go$i60.+a1MqDsOH!3i0XS.;ꌪ85\q(r^S!?v(GO7΂1|h}%DG=BL3( +Pg%},4[I@l@%%fDŽcͼ^C8[9`ύ,N􉎋 +PU5oK:u&)׽,¨mXB#j16Ƿ`0s*,UUqՌJC>6>\XOX(-@ՀIBi1~Jo|SDۜ'z%6b>~(gZo|x֪W3.DKYZu>mL .in\2M!{=IҔ +ࠐN~[d9W]},$4n3n8IBߢ+΀-O4Fwgr .wF-:Huc>Au6y٭U7rȨbh:) ~wrv¹C4|M{=>(ٝx #_Mj]V 9bJpB!}nغ9V +}{5j7l(h#ʘ,`Kz`wՒ2EBx5^%&/E7^TC,ecE2{}έ&Lm8[ձ?zraφ|x#g1 +&+1KPWfr9/~[Қ/7}5 SBʙBQ.C!01>UOG,w;\Mwvc"lcy hk;- *½xIdEk%Zvvb_.^V_ *AjekCiG(Uad*eMWy򛾱ݘ{_կBrhMp<=Z\l# ЛqsDUc gMhYdr bf {|9ԙ>齻ϧkeK +ouE} \$ Ͳ@T?M@=p2*C;]oe4 u٣Kؽ$u'~CkVy+$z(q@|5+V'˖Vp봋!'|p[=;$۶%jwdw70zw97;ZAE۰%5!!?$<թ̨lP},'簋G02dnbhz5a\[] VLvNA"Oir:y~w+iMhðϰȀpF>>Ak~C΃q-vh/%Ћgj{1)AηA}.QįMUīk1M`Z!5r ŋ1zOőX =3# ]w'bM'#ޯ SrDARg cLnHqE ]!DTDuR4X(S#yz7% 6%,m/kQm_k+dDhc_'s,Ͻs+bqjgnh`p@B;;LM%%sߓ;2)oT>!ct/!Z%Bny,s~PgC\JRw ߊq +F*ɒn\=]u@kA(jVܸOE%Op|F"u:FZ5/Rm(^yVbrX8R!/r_,[ZCad\?Oruz,p[<{*IKDku>!h]A 4hFTE=gYQFE}+E +A\Mʼnr;ƦCOI a *$nE*S/ƺSelПaTNj4ͱ՛A- y 鍎x*$8]* į?'%؂k7o?)ܮImcE(,U^bIyS +9쬝ЪU~`QDf?@}QkaUQjj8K-3ޠaa QGɣN͊yMz 5 Lq5aڌa`ړ% + Y٫Qi"Gnj-/ғH#KJ1R x@c,IN{9)ƚ/S _Y?+ 饞2l>8dݦկlGTevϴvϼ` {pggGf:Gj:Gn{G,.6D^}8CkppeOz#=TxVki_=2@@YZ7)fPgؓe}i *;XC+;[e4c&J$SIm$˪WKZ%^1fiؖ 3O,B mR#{KZ-ϡfH!͠Dl-ScH+ 0iDV/Dľ`)V=yGGmDػ ֙,v=QJKP$*+[+b'ig)0.t}DDaZ*QbI='IIǟݫ33`OYSD]t:, okz0} X + #E/dg %9 REѱrBFH%k8q7s.l(% Tl(>?v^!nJB JL!DLN$}^zȤ1²ӻMfj(f%,$|᧾BWָ7Ot"4`ȋxV14\"颁̡q66`:l?ZA,U? +S 6| [9);Y/sjy[Jde@fiU>dn Iы Ӳy`pДykŪu-I@Ve4)[)Ҁցpy)k% $AC/2,0df7[EQ/}TH1ȺIZ\K*y B`AVN`ިWVnh! :' +|#5' +IfvBqAS0\;YҘfkj_dq$/μŠS3ע=14`PtlupjC ҾFC+Œ@>J4x43Z>acs$$:ⶨ3Aj9c>3K/:+W6Ϛ2ڱ>ryR:(|W +,>|Xk_0﹐ 4X[P0H +| GʣƵXAπ:5eBP>YF4;PQ@6`ZuB&=eC7ڎrS`~')[daO.-mBo!jΟ}sn +ׯT(Q?Jb1T&[rDv޿c0RYy'2?1Qy,.őZ0#op%XfjnxlR-XN%koH1X.lXWBԗWwS6;/$.ZZK{wj)[DY2y:bf>@(lBݾ;kH&S2KWl,pЏ2 &Bqeǫe6s ,tPqpmobdXuLxˣ:iy8rANC)ckD=*56y**6%$q6 F7I$mH=ogF 53__2KmTKb)6: +^UR #^EPC L-Xz!*ʈ$#6#SOBlӣEbcR:g( xCT'|,e#gD&ЇglaViR82KpǠ:Tta NA4l,SLwjb/T5vO$zP 3K>IOCNOOY Pi b8LQOӉw8͸ vlU|{.BQ#vP.U0KqߩW-^,gH +2ZաVns^8j5iIC:[W-8z@ 52;P6Mlo0t0Y?(]q^ʲ?96Ķe0KkOZ´1J[m<°0]iIKQyD"W4mŏ he>e!rqFBL٨aKԦ nM/o:?J\QTX*i9 `-r==X禫0,˜։m`>?Jm`qvOD7ߌM(b!+pM]MZ9S'.JCu8YO^K^ynG +#e95GYlf?:Ws +,IYH1gAQC q̋/Q[='GJ%# E/Fν':]3UX+Qꄤztpjp[(C>}> uTƁE{dY2]t &Z2gxU +;0axt=_nw\J\\/|A\kц!fi6#B T){B@+>W/7(]śڅp97,m ɱrDUnp26`B) +b.wM(fٻC@6 hs϶,9a6BPs(&o4clP#.xPj-CH zqevf10T7TԖ'!WEbe'sSBo{ȵ$~exSivubv.[G?`NeI4"X:>ܸϐ^/ +!@{ XgZʙMsIKZ׈-8ۊ;҅\{Y%} T}*SpC vu}"S OU ؾrBފ|@J[I?D.ŘURF?r=!WASw;qV)Oi(=@WOEas,̤.Ώ*/PY1! LJjF里R?~,] +⏰NՁ2"<8oId2=k&َhs +$Z8cUrji;*Vrr9MӒT\@5?땔"*xfRT +0:RعJC:aؾ +eѥ|3x:3$,yd>:t0yqvR;tl^ʿpBm ں+I| Qt('R[Kjf5@涗jfs2ߎE" .^ + .߼wsG<<)QoeyP\y6 +Bۀ%1NA8gw=vq3|?MʵbMC91 1Yq@\פ!p ;ĪN7~ԂpGǤ*\D߳IyQU\ +igp.ݭ3.l $֒e[Y{T;<'#~R$?4K7Ta?M~`cm|T뒁k 2~ BA02f`BEcx>ú0elŹ,oChJ $שi iũ8C:pf+mD˖vt;2cbtNʴgxΥnKf +H8crg&%EF&RJZ&sDR1ޙ8靡di9MagZ+7dBK@7̸ԣP&fPȼ[P5O+ZoNToG3 ;9grԣ>K9[P/GoKTЏmߧ/P^g-^!\Нqِfcn[I#*^#sq@{E^.]777jœ_ѳ%1R ))2}TUZB(U!s+E_?FӰ=#հ6N®FQȧ塢XyTCfdh{V/ K*&-IJݰh;a,`/GI!%:_N||YIR<)g?rzI9>SzQ:TZ5 +T3 \Q53TmdliL1 Z>ǖgIJ;n̮~V=쭓{zc@wyldn~ +t众KИyw6zkY +u.NjUHɶ ^ +%D`: Αdmc-4`"$U)LCDHa 9-|\,+fk$H)'?'f :8\4hfV5 %PljyW63%YN"Jtƶ*4X^r;i@ Sq >c1]VBer|?5z!+(ty2)NM}`h?h6T^π>9 e L#`D#TEH 6`jj *>{SwyM@W HtJ~6lɶ9<{2>IDBTN-̏aRm:cA:p1 \>`D3ioN eQ@e*GD38F~?m.uЁpe4Lݪ bZha$m$qV/]-@? +}Ҥ-ұbE@?%-A@zO]0َ9M6tˠR?H\%S #c DlQ(3&k EJbG ĭ̔[Eo~f9 J0 p:`zh-l'[:RW B<J%rnV*5b$zʢEZ)p!>b{jў]]popy矪M'*tMՙ~J4|!»y iQ[l Q~LK[p^jsoP6v*Sʴ:N$R\Pb|{/]@姯vJ$sOIO*[W*qo<F"Skn9!y*!] +o.Os:r{w4,#"4>K|un7 '5,Ł%A%|% +aT);G{˞4CY臰أDϗɷqSXW9QĒ>A[N ?w$E4gy.vLI8nw ف«u"rrXl!A.MrPy)T⬾1`/L/,Q'_H +E9eC4v(evQt'WG?=K(K:m^WGZ|j߬tV +ݴ .sm _r<[qK|bo]xT$VO3->gN6l~;66K9Bqq +quXvQJ +mEŇNLEҁ5$'Dq$^h5i:NXs5WvxwDO >q2.:}' my xWfA݊L1i1icUv/y++$Ծyx*8!.12P^\4gN!zx~tk h*'F+~#맵,${ez(laSgyPKv߲,cxzrMF4w9wFy"CC:@ Z_"~jF|z g{CC}ȟ #uOjNO }FӂJrN +8j#R#']/tb\G G*ҳR|]z?J}p;RIwrRKE EϽJ1ŴL KTIR:֡.BfpuO045)aQY#)o;e1v+c E3QSvSsr2o`.l&ZwmQaL6]t+cȊa\ CP٠(2|{Ge3LҁlcWRiU^(riH%Vb ++|Җ!Kyu2uJs x+*B|j!:~Z99:N9qdRmT '{ Q]j'/!fK  [ڦ06v7k/b~9G<Jvp*Q ,?<z] +zy])4/ qJ~ +~'1J$;uuf.;|׸2<!F8?]4 jTѳ+J \0[ޮi>իG'3ȱ.cbw^ r(H$,uuL;ok5 - dr봹"?t6{"yIs +'q73tKar,/ +1"CS,AXe䌝iS":I(M :w@fT 3&7 13 EAW <3 HM8ACw9 buEʼCG=ws3i%<Ѝ5”sϮb&jZdPB֌?%&N9O^[M{b +I&/-naIy qa.s>؁/j骂p掠G]W % ܘB,FbZҝ-hD Fp ^!uMdi*xv?* +9;SDLarr"lm"/A#͸uחҖ] u >M-Ν .о 㞠;)"6"J4sN涐 v)/< D%`D 5qD~w;sqYJ\fsǿWq<ȈgvW36Y& ]n\ms?|XTsK$jHœ1IkWCI\n'`d<{U}IjyGX +۵]F(ӧkӈW4_i;9 CzCO{Zػ⡋',Sb\\Lg7қ஼"7,+ӽ9IӾS40N3՟Wow-nu MCض޹͑.Z[S %nbtx'#*e$J*ި jweu{wqqYbȝ ~ __9i_!k$*?f 2b+6$2_ߟ-݋sIw]cz1>@Tb1O^4 ϯwgOJ.cSa˗萳яn4ե$sh^Cاg'c)PQ+}k˘z 0Kg9̳XBNfByJ8dٕh,imb?zAmE* +L'IN]Q^Qؿ'e>Ou:XRSDښψ Z;ͼ?34#dlmEb5-]Eq!=0%7r}d}.gW?0AB= g~FS$:DfmJfY}=#~\!:PFmL|s?OR;vhJ +>`QVhL#bh-OGYS4h(E41I +DCϞ> 2[X)Q/Whȋ?bƝKϪ %,(C0A`ύAG㖷vk&i{̆_#g +ĭ& o F۪2p#x)^ȵ6}NBy +VS[+ބ ~`cp{;~=&&<-`<(esS09W16kȜ۴ka|`D%_ޛ0 ;bS@{Ty_GXkqsj>mSl}S8G r#jWϪwܰ8/ا\+J 6[q3m*>= V6,mVsq#m8GpiGqO8w7y5!74w&=i7!常njA{/,{KK>[7}P|Ís--M>&g0)y2NkCn=tBSx6N̪I]̏#g +[xas.,ϐ-5ſUŦvг>2['m\ {7~-28\jVN-$. +<`6V]Ӧt^0 ++28l=vjq۔hګ~Ft +9`j{ǖ.wl?bEM z FtLRHNhBS"b[QlC6fj.)ƜhkeQSb\E:&9Kۙ!Ȕޢ7OZ Ν>ۀē'C5&TłKuBA1H`NP(@c@pѨh*S;/0(Uvd7ER0C<ׯ 0G%L+Tۥt/,]LJHZ{ +]s Ij]-BJ-)Yj}USʫ00g u [M&p:d\!ġiiHن2 #e55]S5`5`7344HX@=HGN[FNC g gsI1CEK<ܗM7yN= E.@Bt + Cgdv4^¹s(uz١(YfB=`Ņdg';<F5VOdK3f1=DNq-Tq͜R4RHp ?^5O2O~cgf&yJ]Q0r퓵#RC=cΔ9ugFDRwND`L>uf$o{!l>_ݻӍ Qu |)ae]L5k1S:~h•E"#?9WSk}JzԨݷc R=!̧lΘWok1跟eGُqI\ޖ+xtb;wֵ`{BDnA%hFNaS'GaBg,7\ DТp67IZ!?t2xѷZMŞ3Pw)~˅\>2F B]FE●/>ƅat<3^iGZ:8 + 6+!ե#}>o5P[b5ckrd5`c5:( V@$RruHYv?DF7(] +{[p;wﵟn{l~V4X'|W7l _:lM7еnHeإM[=9|s׎CVcZj^|= 鐶6\0znS8>[#>4/& q 07H}[5; ɉE%`13졩_g8 ƸH90âWLRgChB_D([Bm=`{H" ?#DяEYe^υ:76@ɋf*_ԋW`4X=@rE \<"z $@ w?ݰ؂nq+ȇSi]v.qgMl2mF`0c9(@ fݪ=&JNcxyҀDA{};h{#6cM#6J- 蹢bnmŻ>1h#g1~j3 ^۞u=)wz: +1m|NϞȠi'a 5JðJ@ U-`\Xr,7Y߆8%z.'bAΠ{$O(kC3SH01X`UgNed5qt ~kP>L}"Gzly 4?lB>>=0evrkhg1=8t8t3t=t29t1DNFNsDL0=r677xJ XHڼ4wH߭g) d$gHpHKodgbf_ +eO ,dz;i:7ik7if=&Mz [R6;pCe'6TM?q?1??!77772alL N#̮`ǁc)(ŗzVɦzWt. +|([?*K7S8]H"u5 xM̋2G=-9֥:m~bQڈ* S }@"!q"%Js*" dԼN0{֋h "QMNWM>j+T +bI HYbf 9x?Ч!F#)eW*n Ώd?@@#v Uv@Qk'F2]۶@R:B>nUV*^ϲ1J2xrpuX¼- B?f:̖pgpwty^qx\+H+-Xqu6akѼ]O+WMFAC1Mj= Q v9-3q +Sձˍz msjڱ +:7quf"ev]uQni<&Ǔۖ*閸ǕzqY?xUMc3H_L!LEmKk.aLMCD}_t)]i%SF~dzd 43F*t>N$Cp.qj|P̣īuZ{_^S8Y@LY4]`̋n[:0*q)1J ]6*T(Txuo,t5RMhN/jCr$&=p:ȋ'Ü@/`U`Awo^qCB}G {V}f#8tg+; 3%,XCb%vQԢ1ylo U+ qyT< +ΡUm-Z?;=:bׁy]E{UA.a"3}2/몰 Ě:61yzWG G*p0`>il.gm3wBv> +젇`ѦyP*9ȃ $9 @m {x.v~ 8^&^M{Jդ41P[:NxBhhTȅ$t BdOc¿c}n78A= (ݯ7L3ōW"L+^nj0=uAD^ +CA 5c$= v>&!]Gp׉4(2O8x@Q"3__xDW|7GrRW~s 8 9jDCD.M??:!Юg'A b|\!6ً|:)u:/ܦ{cWh5Sރ=VCW}OD?F_G3~eHɷ}55Z,K.Eڵ$@o'[{;S;eC[/J2a-=L.R"HPXDȂ8DAoI&C&E5u5*!#B-PïU+V5tZЫ^w?y%->urVZV̯[~(z1ew'#d.-xZwnvuo|cITOGF +^*声 p؄"O|dkF +_F^` +߹UϞ|׽%aL<5,D}*^zj݉K.ˮh2&-=㔴~%o7QB +~.GNN4!/Wk 詤HL!ĶFSwh̲:9\wumLTYxO4lJ(9R`:'-3ūZnVSn`Wȴ8fѲ>cݫloJkXVS!4 2O/Hj.)oͲɃqXM9)_065S- +▢W5"J,ជu,tFw͓lͤ 2D'ޛFرaP^R`ǎ5]Ro?*fydƦڲ3|p$S1wܛ7YnMQH8tp&?^U,%x-khiy[p{>5 ƴSwoUrw v3 yS/:~5NW/n!]Xs}.bܴ),wmmB/{am/inu@G)noZ{wF)9/r2}.ޯ2C݂YAYa>:^M%^J,) +@HqƠ?}nLXmf{#zۤ,Й^bmZV(, QY-sSɧH Y'd>Dv&?uH.p/kZ|ĥA'tgHQ|;|M|{Pb>ᮟ'$g=0l(D4R:TE&NŬek26Vg^z ) +7dNW݇Mf<˱]?+'' ٞ`-xUnMdA{_OigZ?E iI+@)+11X-Z,"yɕ[/_9aIc•;P?vٟv̖m۶m۶m۶m۶m۶~75s̙:Iҫ;Y~ f6c|Fnt․~/Bn^Evnsi*6)vuNI k|߁}h>\zD][A ǟӽV@F߀,"ͳ]bboW!Bu&xDH`F;t.#-8"F3(L>OGu2Áj,Io%ɑXeU{jv7lC uKgdd '< ɗ{7Ds̏ܓZzOa"g(VB̒mm2fֶN"aOQPᤐUh9QFaD U4-5<Q{ES%SqP}il6+-2Iĉ]tK,G}HY]GݞduW );ב󏷛P+8wpnXX+BÖaZrem]xle}kK/S/60[63_(aʑ/}щؼq;-LkGGatp,koi 8}L4 ,"y-*qY$(P[G}}e@ /aM+ntad̕- Ҋ{4뒲qS~^VND(ox{*M6U{u|`Pw:*Ӫj-t؄k&DsE$ ӎE$|orV@W6Rύ B2f-38m팬mJAS@ݑ.".BDyX۰3g0n +CR[Z&VRq$ǻ/pU(ѓXh'i1k@Ԁ!`9a8ruM34 ,GL$uf65 !!WBPcY _tЍi$Ug +plI$ ̓Fk,?7 v@ 9W" ~Qے/Ծ}a-@{[;J^;( ē +1_0;}Q_n?o ;H}!җ?0Փh/'7VwpBE HDOi=U)dZ=UL>&7loj)lsn(h#SF >: {Q {%crDF91KRҚ1Hf{B1ajQ.)kO|†d61{d9'큾~S|='Vz#%FgIHDz-QhgmIYQrM+It+R!@g2E5ŠN +]o}CΏm__qq˂R'|0%ܶrÂx!2D tS:Q3-71@ANvg ,t|WlH*H$UX+UHDn沤x]%̔U4wE9B21bN V<␊!5ނ-% !%4 sEEAd)5TԠ ]$ { i]Uf Pnx5\7^:CqOl>'{vS”II@+6 V$֢ Y,CQxn4pt#AksW**{$WM\6V6|AզJ+scʰf]cA XUeOj@Uİ~5o}*]c]F5[GTm&J,zLOܩ~@ī'~~Bb8@|~?l":Åᡒr[DQ( 3¸AQ<"'H<21NhQBzbRg)ư^W~-G^@{Y#?OV}_hˠQI!t үHEdEEB(*EF"HF t"`7Џj>5QUΏR l)TYr x""Q1tjQXZ"5^LN/̉qCޗT' 5{|T8m#rx~ozyS|Ǔ|v z8#/ q4W6Vzoz⼛y7nT* é7:{ ~+ {ɾhM׃̣y6ݐMRBg~]NU]o㸲l qMG UG&V|A)6V\*riU=`=-{<~e L!zJEs_.KLW +R,x#$u;8!c HZhmzB%15<dx0N<]c f8 a!Hq%Dhor}P{b@Ч,;͢䪑tVR;Dw vG[y/-q{ Gshؒw$O\"d{'G<=<-#|zs(oۇ9==HŌp6Vw[p=;p#z' +~DqZq^:>ltxCq%1eAՒ9O* te>h\ltaŶ|mJ#lh1H΄5G]MmPj;P]-^swt@q/osf@toZ= XO?s'8-<-؂- UE[ű'[Zn-2n(cU֭lV2"ɗ`z/h;[![,ߚ\-xAmLsƭ%j2#xrhjΊy~AdzngnDcv+WS^!ð1ujm{ු5_,HH[_C˪Q[ FH זmmh\LNnaj+ C!,MٲOjh7od7Od6O$lBV`lBB3GT||>PBC|`Ƒ/ޱ70c0αd$,FA06h]Ɖ\> bdnA vNP6 d4.+`4A fSH64jAϮD ᢧ1=Exk=EŽ~u[{쒟˿3Y9a-8e7ogf_ٶʹ9KE 4T8\-*pd{^-j@Q]'+ ;#>ufܿ)T$0]x)N +ν`?u7EO/%B]uFy=%b!64Ճ0E=MA_5Nv +iXC"+|8e`)^"XW{DWbZy@Swc`Duz2xՃݬwU{^n4GF9Քo@'vzbO^|س>޵fW}qsmQQϻH6);rWt<$yashe,.1m5̏~oVżd}Ik|F?$t)\KJǕiL۸Kٲr +7t\-L, ]LϠ< \˶kȩ4O [\mAE6q)e\{''Ԁ 3  A<[m ˜Q{9Q*$k-bcx8*I]/b#4\K]!|qK+YPRW4otQFU; +2 sXXY\zWl+Pܘz ڙQe=i//N -ExUNX.S ˽r$rĔy荁zz Vgw#y7]W^jFd^ku3пhmJl"Z7t3 K`4էDʢ_E.<خ`8s`<-#5J F]q&iї +0!j{VZr._U#/ndu Pi_AIh&Uhm0N-`7'мuDt.) }yh'(PNhȸ#~XV_G{p `/|Sq}p?\ +;};x! VqB0¾!(̈Fu=AR9 43y1bwBEƟl}}G:CUcSK_41C|(>nFQDY+,,\ƬdG(c +#p ix0S`g@gΖ+"%:'O_HԐdG +"Q^Z߸dSJRדI]`H[Hה0vc7a,JjRrav(Ra\BEQPj8.Rgv&pNAuJ8Cbolg|n-XɡI5Z8^܃uіwlIy3t-"6ycVj_qbR&< b!ːO#}TPI~+녣tAFtC YQ+;`y%\&EGǥ'{G̀tc p=2唤 d߬tRlL?1~:9&ҿyEDzޭWn}vm:;lωuvO'(o| n*ȝ|C_^ӆ]d,_03P-/b#nԀ YK +_߈,!cCpgBPٰ|igL;" l'?ŠQ`r_B{ԹA0!TCPgeQYa"$ 4, +ZƠSdOf8枏b&be1@U>9gl=;o7 B n.ȼ<}3=ȶC4r#8Y9nl!9Ǜdst}F궁GFr~Zxc|wb~m4VֹXvJ{C?qbef<~弾~bQLF+ˑ1eD6 1 +Xj$#j UFb2.EHPhxVWxfwƺJ' KZ=]MsP ({'3 !/:Vfj0{yl1lƎ \:'½5ʙv6-ӶY'*(?a!'d&/dMEcI|Ɛ?*^{hkGLClNC{âe4+N)l!/}=Cz v{ۂNRD1b l8R +NN.뽪X5mwdU?9IIe1 +PBI`-5=Ζ p+;2ڈ CzO\.+BUfvI?O @q#dC`2^H<̱I9: Ӣ:O:h!ATn %㎢bR9 #ߢ3]lKLLLM0}=yλ~\+95\z&JUh>bJ +&DQ9l.D*VcayYaVI':OFdsV<_+/-UG4&Xq,e1`z&֫aaRLf-@P~\j0JZak+Erۡ^֫P:)$y'v2[\:곬aj[fl{"tX>"*K4E?V/yQˉ|UL hf5b\^AXzbqά q0|e@[uQLe~ 7;7.⩾X~4g%QAiӋ',"oSP(&PQɌXunޘ\SQyn_֍K3LwT0Qt#>P ĀM5 yE' %A V GL} 0hҺD{nw1x]GWmQ6d54^ˉu^p;md>#pӺaF`F6qWIZ1uj~]or3 \WsT [odm=bT-f;)B w&sF^r8.{#LZe;ʵ}s,/*6ݍkPX][5'?q!{0q|/ pӋ'6pOD;Jΐw0+_wPx=8([p6C)!> .\A_޸b䖹cH2D댡$HG_MTBB[뱻U @gr*q܊`8$Ǣ8UnLzBS# 0 #:eI1F)j7c\cHZlw䶎gy,qIu׭1N-/9$R}\i}@:B͛OCн) ]H?l.kbn2iiiՎV`=/Eܻ]է[WadM8NmDqH@DHyԆ÷SJve4&rq׋{HlPJg*bjCe7e9 Kh@ؖ? +.{H=ܑ))#NNƬdY4صfQApȏW)Wn4Ajldb$lhl|x>*~}s32di}&r! d + VVjң]F^m4Q0Ro^׷׽m+kg3$h99ϴ=>9_l`憴%Ȗ*ZkK_EҖ_ϝ6 +iAE w6LISDR 1BU뽦J &~WRѤ%~xn}4X6*,ʔ`U#>۸*"Ztjg RGT B,\K8MMtIcXeN~m;.&:jacm#?H~/<\YbWŷ"/@[ +bɱ}o:)md[FD#ByģD;mce +X*{)7fgZ'o8mio.:hHyw]Yư; {Ք=Tc-\,~E*YjcFO7}-IXw)9EY&#mRf7TYv/FfCO]U='a.~eQ|1YsdLZG(7ǦPsw`bK﶐mԩ=F4Oh4fI#]A嚕(>G/ 11v iyGm|3S,h$%[˅#Njqk[~fX_`\YHuT-x\A`do.÷M&.i ]`4U̒mp",!4EWVU%T+ _!sb]a.1;nK*&6sĠpwǟX BE&ce/9sT Μ^$dWݰ-\-b*ÄVWPEpz$ +.Vf +GSJݗRUg%tKSUV Z4ۜ&-\_E!dvcRi|R[.JŰs2hi c(b!:p@(Q"٭EdƐbQЪeVʼΑlq@IY`7J Z°vf{ W2dGbBfƘF]r,mNOn7{Eo3f4E' \Y֛ 4"cO;2LG.^R-uuw7Ye,)Éo>'NsɝTS@=* ST͝ Pv# \ݤ\oun> +/J/˒0f`bbd]!~A\b~ cG70 8!Θ_:R'75}Eb jPR({,$_0FeSpf6Ŗ'4dCƹ?rC +'e0@OrdˊC蕴O#p2ABw<զSR(H:ddN +@Mư]Y!T7QѸ@22먘nW .B'/v5g&xA<7l츽 '쏸a>wj(x*w*/hs_e)L+UyFW;0C5zKlwN8{RhPG* we2Ѹ| i@$Yvܑ Ks BɤpG7acSW$P1^"E1 :m?sY2Rk^X@@V@vuG^ +`/8kOj%#)>wtZlFzz RPdPk/KTR*Q +TK*AV,P+XUk(S1/,0 3mJRSsj4 Ĺ6mp_ҪnDa]ǎJ`1P_Ei~^i91FhQvBqR[-n1Vh+,u#`ҭKJ*JZn׃"s@sMnt}'Wӫ ;uOk޻=wk׮|/^^"=x0/UcK/ڇցeuzomZ/׶\fuB\+ʫWW.8{{zuɫWWW%K;w8#P$w5R`O:=ڻ%c*o;F T'IM %9/>wp_ɘܳ/ngrfcɭkYת$,Ⓨx5Nh~ :BEf+֍+WrŒ=3 OUj>/`J~¹/C_1~q1yCz1T[XAFXư*&,,4L M+>jm#<(m55`Q%g߲5SZXHhmfX8TrTP@R*[RuT5 g`g\Qg*YFMflgDDŽdXьC;ǘT0*4Dj:t% &Wl ;HuL1mZueY*˵nԲcU%Wn%b0u[ZxZW+Tyӵ%iu+d-*=CouPsMs WI 32Iо:[,ef$KYhS$j(ֹbZ'GaJku*Rǯ5;rG:G:?|3,nF koXގ;&?ǐ=V>"!1La9(±x% jİv-B/Y?qB8t3xMxu5w$ޭ8Dx!T@J0ZEDN{krIu|59Ȱ$Ս$Jn| {jW-[ +)\P?ڢb]Btt)we暟n;`:e~yٛ yL߄0~el⋞0q($vfYd7L̈jF!evDg$MWR )oƝY{kbkD5h^ .BҳC3~|׫pz@ߧPb=H#4q_+nX֞Q7pRtsLK}$&ѵtCa{DD[fSm3dMSjǦўLwtM'ezo,\dj*\Zu/g&Pe(y&ϯr _=|1`f_Pž\*j ى5CN˜`60 5s3Gى$;7rxzOi~~@S올}GO.c +ừ~[ϓ'W%v_Al+9}JIJ[I.5*)Μ&؞̓-.7 A}o8]{?cGF[.U]*7r:BndT:Ǡțf|wMI]GVm'RNf#E0_C5ZGR4hc@$o(L + +jW+K(L{nIL{N{5Oſ@!d{9@5ŗppR[^럯7쁫փQNt)Ѓq"g1#"|#ƣ7^z=cS޸{5ێȼ/WO?B{v߫,I/}R\QW7e΄š;YInpiR`xMR&RhڥVX$eWA5z*E/e˽T2 8&˰95b @Uˠ8"fͰo +>a:e墡ȸJ;3s Զѭy yAqMAv@m#f< I,?#,? y_BL4&9\f07@cMfeMWpFh5;&czfh^@Z27{x˗n0 厮!I_.l: Ow/u"ʥ[r߄}Kqorza oѾw_,H/}nfbC;hoϢvN.& +N.N+b,-geCRQQA$G$@`5p'Ԛ{@:OXncA8tߔ]N6|cs}~BC1t/AlQzBW|bl.}IyZk0FX0c*C!1iAA3ug)6Gx\f Ql]HZ3\]fZ6 sN ެ6[m8LM3Ydczl gL)fJ(Ҭ5l::`Y + +GbK~M-grUoZ`U@nsz.- ;KHOΪ#dZDݷ9uWwx! +X@L_9$T>-UT * +CHF2_0o9kQlao"jLSBJԙĈZ[|4i#J2ⱏ~%<)Ui+zguY&t ^A˕ lRET%^0w?EBsp6x_=.@ C%HjK/(m'h|J2@Blo5P{VX*z!4nA ] +:!r]qN9q$Wb .="2._ 8 Nޔp, E&[$ I%Vv aD9.'BwϦ]ExםUZ5HU'n_T_şM*柝gdp04!U6BZAd +^r9]j֕ +N``6tQ-Z]L"oypi'y8 +}(a;1"O&ui*KX5إ&u*iؼ +s:gb*|ڼcO}<s $s?r?Sܥ$I_r,H&qPRdc-8 C>ʟ4%m/:,S$MZ~>+ gp3Jx:5uràq""c,;5XbJSủ=ФLDAiGIIaM$+2{6C#"Y&{1!Z44R60 CQ]$V5RLkZPB oI8֒^gW5$`F%>B\VmmG :HcOdF!e;.0jm,{>WA%pxJNR`B.CځdNR7p/G{h!JԟMHR:5491!Ŧ,J3XPH WS;WF75Ms/ڧ=׫ܻ &NJ'KyYcCp%bd= f%% Zxd?|t:rXξ ~ͭ(^q1BoP<=a8ynq!X}skgk7Vf[ϭ/6Ű%9ًN9㨤!Gsx6a4>C(]>κ3r`̰ Ʋ"("hK $ +mvnsE}{bJ=dr7q웶ZSdN+f'H-MvECDg1}HO*4NPYoI4˨3Yq9ay(A 7&ءr[>PACPFE.'h {fL|kTSv cJ!Ez +TbN` @ *I0hfjf;^$}{D9u ^*+)ݎ7!E@<{ +@N-` @;!Aq NC (DLFLE碴B`%pDdDp|ĤcW n+~{fb). բB5%n\Q~B׺R{*=֖UZ  G,afiaT+A79M +xîb'gdx\a$ci= W^PAP _Uvq=N٪6-'oh)MA 1:nx2ZmqHn7yD&d3Vz&6AsgTS + !KUhU=ͤc#6 0:kvr|F yDWz=1㊊ YZqame+';e=hoV=(]Jb3vq$A7u{u[')DnVEJaݖ*%o℁QiM]8NW͠=޼%X5AImZWĐìs'7WQ '7} +8GuԈt7z"!?J8e(/qGwVYnWr/2rIJ|{:݄6ҵY)_=# F 5dW-AgTꑉޠ{䛃ϭGF>4Bp̰pkҧe.7cq7n6y=ef:O@q?Bwؤ 3oof^_Ap…sBOCh29kپ1$_Qx$ 1ȶ@<AH"GJBBo.gNhy^iW?3mY YsqRlͧ%|;(^k7SiWe_y4_M6]ao^n_'q%_/{oMʿ"3>Ʋdr?FKᢿ׈,: k̦ g#)蓾wsy/U'>1V6_LYo9բ9_Uѿ#>YjBx*Ur~* O *UgšLWY[\bWƲPŦ:&^6jNL|2gXe5k責յ5,+_uf-DmuQnsh #XeKۈVvF/6UNk,MgԦZL(FU᪘ǵƸYI 5t[=ۈ>X/ o3HT5u2Q}ҡ&k]q˥XS/J,۬53M"mƺS)3 ϭclY1Q-B,nk޻L u[K⬔MsfO> W3 kͤVƮɬE[B-T+a t9_#5_PI7Pǵ,lc+]:s\sޠ`/Qͅ5k;6nc)4{rX6ƞ=M| |to:w:F uKrεOHd1%ҰX !Kpu|!H?/i1Ris 8:k FPF#Q/ïUFUɶ,3Jt=[ڻJN-k<  CV{qrIdKyY=pmk+Ť{^MGĸ*fqnO}%iѬxpt,#8܎P`r,5KLqJ(t2`:p,|*8`>eo [k/"نpUt#Qmw9`iy ヲƫ-XŲ]Xܪy̍ukzªS):GEfQV6rF}N".9>ESYZtXkY=<& +L+ +wdX"]s)0YA$ U5s9y2nXܒ6L]XxeHWuߏY f U$Z._H\ seqJ^ΪJdT봦Ԥ宜XD\]\,6-8 l\Wv½o!8vY@tIuҦt:F UԻCg|\^Iթmw2k8 DsNeRԿ |~wT{s`+{P ^^+GS6XaՅ_(M9x$P40]x]Y{[Vysg<X\F6]-Vqrqʸ9Nė5;2_+Şl r꓌OƎ҉F-'P׋/dyB6oyg +dF!χaAע/fdnU +# +Y +t + +Mi-M6^1KzS]z;pT uFISTak)Ewlͺ6npԫnSJu>[po-VgKw̩=i!NG<@ +`=  'PD ;rtMI\⺖.ssot@s'NUc/z#*kmA`?W80Qjd( /itX#s.ɻ}V_n~Iy 4{SkG%'(Z9CD1@PŖTs֋Rp4( +Dizһd}N5 @vעz'j@DX)yS^@\@ym(To$/d;-܄ P^ߪb%# +߂7J{i/oiOon6Nc 8p\"c43;΋Ŭ@qi2?̻ ԝPuKn}e!K:~g-)D?i!`D[b?|fطfvܻ ?$?_N+uT/K7'CA$blkkl|x:@aHfhQȁU'AC78mJ[?ɒv\ܾdx"o̰[摒gH,$E+ukJ4lMe={UKu!oW ^Ѥʹ+8L>m9T~l|v6.ڽتiҁ=Q5Z +hZV!ODdJ,j̜oMK6Q8ƫUSdafB[~u(R'P 9R' +I$ŰrBjtU7Uڥ|JJ- g1d59zlc"-05{t1UTPǝBAŕnwq*l# +l^s1k WZc65ޏ֐F~~eN{_Of4fS5 v_iw[&mZs@'R&4`AmJ߈X֍"mXXwm}@/#׋2jQSM)T!H\!#z#qs? t~DwH|8< !؟AGm}i!~k}=R|$!=|$##CG'+HX5xtN5|}8C+eNN ҅N+BanoɱO_s.-^fe^~ +/_*A)C$=@οD;:=RO@ isH01僾#44Ws.IsU?^Ʈw똏"$$̠U;|$57%քLu*mE̲fQ,o.)tH|aӉ$8ڢGX}Jöİ٠.؜S?_>i nכR ܜzSUo/VRxKߊ} +a6Hk<*\Jlc_)ra69K +*3lJ3mjs*~yX!Yꇏ̷VT *du>ᕱBM+xnKæ4Ti\g''}v`4'*'l?`WѬ?=;X"=)QMjy=R;)o=5Doء%B u!a'&5W14Ί>|k0n`?$L/'S#OxH9 O҄^yrZh Z]QF8:5O}"ӨhXgʏBʐTq$gW_r8m=Wa-/o1~gq*SkR\8W!O؀B,<?܅v O)fKu:)VOoǣ%)>[́ЦhE F;br痞i;t7%_GڴT#}1K[R^[ppήCWI* -q/)E'[8puiw3_F*JsUkzs"ͻz-cTnK|Z_r,BūaiimŇabX*&&%>x(1l_w_H9?rvLILM\._ G@̽E~GyK45GP,=J)v8顲7,/- #ShcfA(4$ 9#Nf]fhdt1" miU*ef)Ħ&LU"5[lXgz|{ݶz eQ1 Az\xh<~p gmϨ=9>kp w xǟFG4?UO٭ϼ Gl? |. +T=cS{+O.?O0?%V/2ɲ?< vdiIwo +f܆rV + 5G0%9 $#ɽGF_wX۠r?sJ1b8XJ7WbZ^8nښ+Ys-h[F5q]$hX\/_մ}#m\4j{r}4Oo[Jde󳩲$MTxnSy!MRIQ`zMMZ9g]W ޛyڌ{SD>>/Sr&Yv2bjz3VlV ̌@) tpNm>iPC>!GeÿN?d}{?V}q(dhulڝ (IthC P3"E8;xFBBñVhd5 DQR'JQByN2{x q9w)ڢjӎ0--kZ/Vi.5:i3Ď +,8R\nSz;f=@Tvĸ4Y{'\ѥ~vQ@t: Yk1qdJ),lxӂ@de%"ŝk|iBݹT jٮLoy~\u!cӄNU.5,ovh?1[yTCudwC久‹2]L +*hth]-Wӻ)_Ne};?;c7 > hu0 Gݞ)7(nev._Ra 3ᐧGto;eB^xCz|31XLO4-/4/.WÊ+l/,!gxD;:L՟R>A~H<hӎPŘ厨s`9jAM{#82Ku6n}Tg@j2 CX/xh\Mi~s4TCV>?4PXΗkCR2Fxډc?h0qآjT X~i>T7g$h(ԞƂ*Ef¾d~39#Eu ћ&CBTSRygԪF@&^p#v F;xUU-0 N>h+2!b@ {QOϪS#5BJ&OFkfU(QD_ Ac*{`T7I睥ZIi a̢<ɯ/_+#hI_VuDW})njpi8nUx>X_/k!O/m2aW/u4_&4?X:\#tɏu}OQ!OҲі6r]t|[9ay,C cSͦ u aHlv k!{)l3a9ی G}t3vڰ<߃3Qᛪ1RG1R1R1Rc U]T\tlO߫rE-a0S)T{)rDz`;EeBM+|E@\ʰQto]HVQo4Oj* +z 883"=T֪ԪŲՂj|n҈jxx +BiQJ(Ї[s"*ZmK{?y<?hv;-VS\۞]ehə!.F1v(:L5*<{_ ؚ1ic(gvyӲYF!oj\)t.v䎮BFv3A!ނi5kc%y5>/na9-giW EO!;~baUh) +ڱ +l~Š?ذHx9U_h˾jZ¡5#ή Bk ZpAM!d/jޥyQ-Ӡ1m0I?é;ujY֧7PzSW[6BWiǙ^ٙzOWoj{i4mX؟!cx;уYJ{coTFlxmu; +xcد[o?R Js:o{ȷ#O.JsKn9TyY[u}n疯[+ν9 $;8EN1:^9Q%cGbߛD7gwu*X|[֍ {ă9MwTSו) S;%" o_72 h;d`aiU ՄQg|D +^'!2(/ FT@M (UYneڦekUa@mt؊=6e[^iu|,޷XՎd9džE/($ Y0C!  G! Ѐlp$ G!ڀm'$Gd0 #ʀp(2ЂHCfAfA! ՀR[{d " G|A!#( B@C!̀v0b 9G!Р89w& Cf"kMx)d=$Y1Qk9rpT\(qٚVJ&71Q߾=bxoU$$ܐ +G8Wn8{K1=%%qu+Oc:,@}BuD]W+hf*|Ң](~Disʲ{ݭE7nLe|̻đ~|3tfLrT*pل8'&\rR>tK{K8aɸBpJ~oX$&M,Nx#"d6W$fqtxoLfH' +Eоte08A7BEf7KEzҊtTE 6#;It#n8I%we;BE*rtY2"v.BXۋ| .ژ7l3e6)Ƒo5祮W:V +7wWqt F?&A4ё3fف|֓4z)!kKlc>ř +BI SI(a;?}>(8hJeMƙ版w6-7& "@ 'WooDP͞mAZq'&S8Ƃك C$gfiN F*^z3NC8Kx1#,@a&Aȣ +.$J.66+pVSln~Sa/!eݡxj BŔt1ƾjJMiq5m˓y 8)R-B`5ӵE1*䲥)c!V&ڱ4q/B@K'zIBvG~tu +?)UOtv+dtB[3MuaDY##V@tZ^4fYEL9H4I'.8Ԋlr`mY=XZ؝^I+)5?IW5=ױBic*$[HiS\CU|w$%"Fh+m[Qa4+(G|5}!1J 8?_Z]dÞ,E[Hx-En:BaڔgV(s_ΉA3%uӛ[()B]|Ǹ'3?w jLfM}_#YveWc70آ>|Z(5BA4k#ϻq<%`mVECX6a`֋`e ).uܯ9"m9>^=B^=`|1ΟruDYX C ]0o`C o;b`CBX T Z4#gB9u"쳠i;O]5*~ȹ|LeU9xGZkrB1tm瓭}EQk4N~z򩄀cS,!&ʹjW<# +]0yMc +0'YJBW/CkYBg2Y-3*2ҥ+Ѕe!I=RHSNj!cTȡ'Nx*Ҋ@K bݞ`%m^zql~2̩$̵KI"MeLpd %RUE"莨(ЁuWPK $`fIR2d M{~P8GB |)òeQ˞=C9A9(0'Ģ@BVQ9uVc)NB+ͧ[w!6<0SNi%EҢв'ZZ0\RKYͤܲ~n)MQd +AzMɺԻ^TmKgJ_KSeClHCt1Lm&.ƔNj>QpjY-]^ NK`%CBwCXתY/=[Ybыt|Wg牟g\\t>ҽ?l?ru"el)[w L?,*9=qr ޥI6fN '@υ?f7p +9q +fO*91IpMN 7v +blƯݛ tнǺwZe.3 9so9Y0wgU. v}<ހ,pʗhĺͷV?˽ ޷WTL\6WTWzz_ J L_59*v-޸{.[Kʗ^ t,@m}3դ2@tH&|R1S>L1%I2 dd0/pB<# /P]Tv%ݮ ]Fg-rfMR_‘V +J{S5o[mŽ9aƟ)P%_456)cR+Ւl]rO+/UלTOo PqwCo::XnF` +A Kg{s'CIg!=TV7}﹚1eְw +#MI$$BFn + +JEh%7P YRAYlk_\/m}sDysw}ے/aPI&0 +hu&JVLS<2}"ѱ8.g{DKB@ĖH:ɔHVa'y?~w{zdX;y 5-TOAqbt ɔL@Y['qDiN9uR icѭGt-ҤGm,a)Rph\8aƟ-T--2lKx8\-q Y{CO)$P(m۶m۶m۶m۶m۶nfNͽ5wVVJ'Tuy^2{'D$ۢD8Cܱ{8'l*[cyݗ"} _1i"cwɓݲ{&lX;S%9\|k-j<n>E5`.>NFd%yTmxe[M+Т6=`'Je+r[- mn6VK#ƱFG'^5D{̥mr3ZZFԊ:=sOX*X4:lHϕjs;׍-9cij0VU\jB=uk,9pb9HM[Vel +&Ѓe$/GJ.N]EB:Fpƫ@"º +zZfԧ%T(NY]婳 *֏lۜӢ3nq9Z] +j1egFBŔmBh/lo*gb>c[E,\~V<1WFfcZVa1fr>Ej֕vAmp@eXV"sLݑ#κƴY)mD1ho4V!k@fZ pƥ 3gSuJJ5Ʒ*6NuA'B uuƞ~,&bW;6Ȼh/R/A9pፆa$.eZ+Zm (m bubQB?,t~ZgFF4 UIZ#5mi^'%f:spb%GZ𬕐y!U@w#{njAlHDxæ*R$\b=}|p#1]7C9mukO6!)Sh29Wd16N@mcP><1Uihgr(X@֕Ujid*ή:ʲLH8@rz^J,Ƕ֍zdh΢.NĪ:d*6{H鹺hVXTԭcFJ 0.]`$KfΞNL Fڃw4J~?79WFNѭ,3n7GiZbTUo JKɴ*կ"uRd<3QMMC5uoBZ"A`0b.p*礪T}8ܯKYWS0ͣJgu,h4F\uQI'mtjhĵ8N62r6uߴ= 4t3tmE;T#cZ!EiU3$cBMek֖$N0ЋW#iҖڢ`Hy+~ +ՀkrjdC.$qӻL7I9#$Dli|\̭ f=q4KiW[C<3-̯cEkF +"cc[]i]C0ۋ"9*lǺ-ǃW +g]rQK+X%%+P#O#Q#ᅃIQKH ɒN4EϣNGP]赹2TdYIJ.BFPʼiA+]h$e&?0aOg!L4I'-3'A>ܿYOA?\O؃qO)9N?wQOAyA/yo'ʼn6/8vi {VWHO? '^~6ď>OaCA>i ~X? A>$?Sޭ5毴v-qYJԕT,`0&4{'<0L\2tk6b.>1YZoC5,l<.t|'UMPr +Gz=8ðsi4wA0R+jZ\XO*Inʢd<3`*eysYdAƆFF 1) lGT9K5>}D+80$n0G*_H>䡫0|"m*cZg\l194N {h=״L3qw܍k NTUģI_ag# 1pKKxRʄuI+'(kƊS+SfkgM|z;3O| ]ހTGra|B \zG]wC +nĦ97X)-^8Ħ/=-S$Mt j=Oѩ>ƷER>"j |DZFvj 1!Gnn0¨,p%_XShW+(z]^ǵӅ.gL֊%oXvsMtS ՅQ ՅK7ܷfne;էp:O%/51B#kvGܦ}#4ٱy +Yd,布fҎKCE?jk'~i'K+o75ߥ'_I ƾNw,X)(ܻzd +Q\JGf1JxnHmI RY .6 R"ZL6\)ҨJzs6<\LjyΧh[qs]@a@Dž Y)˳ZԕS2G +fe9̴~'i{kfR6xflrc^pzC('#`KJUw S#CDKk (q)6ydg$'>T}2NlPe R/ﰸ#VZUY1>y,$pL6$*#OnΡ˒Ҫ -Hi5h82w}oJynq_i5󥍎J/ח׀H[$t^ovSvIC4 Ebܕ"Un!vͫpdjrs0Pmu=yMK_dh-sB՝BN8XNӔ\ &^#1Y0$ۢXI #;@ LdsvEYjfWcx? lvU4rd%e+{=Ht>_K7r7{hA7d*I(;CRC@;Ľ2x 2<;@0_&}q7xi=57Jѫ%#j&H5܋3)ޟTob3b*Fs nr{SJ:=4L +="e FJ1HE{HnqRWTUSFN&^]"}I!FbJZAo 5 Ð7QC;e,x}Qn}wi m€GJ=Mw>EQ@Eszmw݆&*ǥ@f +ذ BIt xt p[0_->x 5 ^*aUilx}*$?s.ތ4$Dp>a,ЃxK. OK2 8sc. գ9Oš󲸄~{B1وN le))ute|p*Ytg-&6@[ VJI0uenujp;5R}jci2]|)bQkBiԼgTS9)X݉)q +#)ZHg*zۃ.RO6!qu9(Ʃ,~‰`npiEzK67XӐe  WDZ뫛wDtK2ʹ6]OtuTM8<[BlZ +PЧ`#aۖYENyDV +oֶS/N=T +x2b>uOASI8DÉ\01y:2 Rb/z#F-BDǁI#BAj1<(U`)a.R%"x_;C@rhx#.Dl,_،npj.l[>dintkޓ=on\kC7~GpqAFm^6Fߨ! 0 x  ` %S/N?ܨV~ +O yCl%6L =!_ܰD6 ս!G7@Ҽ!'7 yCp+7@ް7 ɽ @(Ghx]Dd#{)ÁN;V R ­b{]?RKP-CPlQ-^u钛-^*5[NSq^NF:` ^{`zj^ݓkx=[7z`x ^{?l^M_yoYxCBy; T=`y7p}i?`Vn!`xj6߸I=d(`=fzd̀ukkWV,p\(\0\8\@QuUhZ_oe[3`Y~ϓ~0=xyYPmxC_aZ8x6./B)y6/m^]6_5V -@Z965@s s@mtZց5-k!k"j... -~ܫ|KޅO޹59tmހZ#ܑ5xe^ڧV {k'xmk^[kx[?xmom#i{mlZ{;P["0'sz5D`^?2@;si͂>mB}L~. pr.ӱU2u_?ˤq|eM_^Tr$ vQ "Ml +5fspPmXU:b$z^QsZMxeOQ GKVi*ߣ>_nzϵ_`WvӢ+^{u ['*_ ~o0WTbZoSXI .xEWY6ƃ~55h͒L/!E;^y,Ur "\_6#\\"W^5պQJi3-!7B&LI]0+eJw2O}Y'PR+7,INK~86CҢP $ћ5 +jh7]RQ\}K=lF1eIt+̤R[@8AhH&]$ڔkGׇ 'r~wP&~@HLBLv_\a;r9F6"nT:CiE"c1Mǝ꺡 3L- ߾"֧vei$l.7n1 -%qE;UE[6uKK[ز hvlZw~-}5ڡy0^C<5˄Wםq;f}P)=Į6РpxPŝ߫A/Lz*1YwG Uw[JBAZkWvdd'б&0$Xpg"}IMJ %L!f>}x%8GØ]H*J$|Ab\0c |n63"9I~[sJriugJk 7՟.`o3MD~}F#*չ֑ElQO .nA022q<~)Yw"XV'DhaG̼}ħ%:@5b<%OtHJH?'D2l9| i +*l|d-766qIhHfES +Od0vTLubf\YlD}1I"g5,谚T#M!5 u5/t\gBE ͹-zfɰRRjy)\8 +b*x$%ZM2l Y[ܩEq/3fzܒʭsᯨ3 ex__fw./Rٯ8_9ye- wD e}|*r8#@/(E¿dϔWjjiY/Nk=K#߅S`b'TۈY6ڀA9,x^EavCI\ +sTȾT&_ `? Vq2UIr67ꯡ'WZM]WeBS/bU +!z3ǮJ }R./X|9W//t|Iu+e/Vt_W[$֗zsVK[ {c=V)午1 h\!_" &#}K(^; T[n^F=Th{bxBDx ODp#L Ɖqd8͑bM;i*rS hk+9.},Xg;wCq㙂U^ Doۨl]FMc}yd*B5#ߕj M Q.ݬ`j[f:xSdU| v}(2-ahCB!Dq4.|gu?` rЮFB(/ !%׏,uDU/ Z Ra_^)Uz_nS_rRnQ˲[y_b؄nI/]Qi͠f #Q~껣?ISO.VEubE.HݯL">Ց(UB.!(5\60I5@OJ_!УG_GĆne>`K .HXR[4`B7zʀ1GIg8} v(r=$ %;_I7RDk +&|λYMw62``j_ԝk| a2 NM @Lk >E>_Ÿq3cNM?w!/-{yI;kӭު&tqpW, ɳMxt˂#q|pѢP\cfȢ̴DIcpsǎZE1/TzWVf%v1xb^r `Nsa|P09ݥ8Xr#3Uq{AtLagkݍx3gc;;wW/T*H f`.pt +r7 ^|P ?X 5h%/CTJқ"%1GTqv%ZJ#Qց?{7:p5 0ٙ>nD~oQ3ARSPQPYTidSgv\zViBG˪O +uKP*OM/rٸ%d _s2rt$dr]1?_'E!.Je-l5 z<\0 !. ,H6PF: rY;a>_n4F] D &l+_]fFs,'J[,#T&- +Jn(k=TuEmf@Ul/k57!5G߈N,r i˱JrEc*VbqlhEaYe3 ؖLZV-:[Ƙ:1Y >t9Ֆaz kKb"F:0!}ltz՝a1քU,kŁ v'^,q|>Dz|iNzEf'gDB$꒏_X +A=G})D){N"˝xfx˸iÁ_ɈĹ`A(99$ja(I03ݟ|I̺ǠOsʄS +/3W@fӻM~'w;,ˮ#M($ӶYFً-2V)|6f$4I8Ib^ZlϞ;^i^j!`jY r^,"Fw貍IlܛZ>=G|pɵ$(=nk1hDW1tZ6#) 5G`qp6F,ŠCp)*y(fIK鴬 /R][*zKuDuO;!Rlyh'n g@)U%:iMtu]-rMXƧJ!H1pN `^fIC}p0>/dLw5*L_ޱ:=Z[/.M1Q)>Ɔ[<2b/˲-3rzUŒ[&>b{WnziŚ[>܎E'|_Z zڱc/nc/Yy= o_Џ`|q cw?Rc;'> < ~gbNM:c=%{vW>y |.3f3 e)ԧd>s{'x 2DRi ;z/ɋY{fUv7Ud%ٞDSQf8#|@bRFc9-=N$ᆦ,X2 5xnyX+6IOۿ"{gIxՀh嚜'kº&4|R<@e@#3$ +{@kRR:t>pXTY{y.R 4ӹDA腷.f]ѻ}aVİt4 9 Qd +fϨpI ،ifK1{+qxeW*̔G5#Tu:Q2H[qfetiBWHLI@b _b=t c_{=2+}|iⵔ+1|c-_ t>3;rFSj,Dg<y63j1ș s7{!lO{V98mI#.m 4gE_WB]VdN?.V.-wi"y"5޽KߌKg_o"x +Ɣo"H[ eys(ul$w\昔" ?U ;U*sz7*%7P> @fH Kpe(;a~?N N^( R*$!Lz j"B j EQ D~ m=6?J۝!T>a|cv>$|'=/uY`,׬~~ֈ{v< 3VP'Guh_PR^}:N::wQ zPq^$BJG֍3>y0lxpod9>S[gL$mu&zm6+„Fu-O1Z2n*܈< ܢ>>t+zY +e%mږ2Ae6ں, %) 5w8޲>VVvre835smim6W߁.plm,nknLx[µxxE$k(|Awԣ/b9psm`2;aR;aRF™#HY#ܴql,̌&oki!HQ.RG(;eeͥ ++UN@XtRV߄bVN8N=juN8ԃ(2 .o_/Z7dT \Ba-8:7bѨݺf-T'r9.Bd#;wy¾n;#U|R'IHL S_BK0`xP%%EKg\ȓN*4i7cTB#_S EތrkT EW]DiŅp_Z|ѱcpsн0{ _?sJV]tn sz8ꡭGW'_6FRn,*:k0.(m Uy0|NѭbOb+hnIrjC*.z8ʡ)bh[>TUQ`8ԟco$yd + +FPU<Ћ`>,}١j lf[Rеp ;JM/ z,4q#yY_gcm+}kߓU 0Nʒ[Or3ib_KW[_s/pUb!,8?aGeY+HX;4]ej,lMz:H/L!hMJ6 Ġ^d1;8w"~9y|gs;_47z :;ʭ/O!oܥoYiemc`8cU)XRޞ%k[{kz7938Ѳn5DhKDGVS +K v7scYX0MJ]!L5<ڜqykt狟 /J#q%qud'%hnOZb{ݕEPQMƣCH2(_(,0,OFrt|.tD](hӼ,ΈਿҤtbءr+H8ƠT֬ߣ3  bVtԂ$AuTuR)ru_PZ0t|ʽ礄<CŦ4.Xoj$F!S 5/zR < 6]ӓM1Afo>~ڹl[/ + rs+^+QmATV_63[z^A}kF_7 ߾d@roٞFY+rb|~~8ׅĈ̷kG1܀Dj$iR1!zxn›g x+Fg +h-憿Emuz{EF}|vVq^-Ʈ-Y63W)|_]7?}:s]?C^t^[8Yf0?C-L,,d߲;Ў=׎}K۵{s82O@?"2BjCF:W\77n< yw<LRA!|wnl.ߚݷ{KK`.㏽kvnWҽf..~')Ι鰑1s".b\w|F2UydiI%sGNV5V5EL譇;/-6嚽é@R|նbBGgE[Ýo<`- l }(x:x!f86ÐxRsR21l?QJcS +#׺<"NA_f0gW pEb(L36] 7wG)t) _y^ވ$OtG;pC"qoqr=U c`|:7|.n؁PN0qp^'Nxdsg=:Vxk2HpD$ng _Zb^+ DHa#&^wΡ&1يGe̫" FOwReb,:uv^C'_S*tYL)кhCn!7X"-|,S("HѾ!xkK%&Llq3a,MG&qG(rg*#.[ݙ[ވkkFV|&u=x^ L +<ߗ; ^YW'Onέ^4)܉;z;= 2savn7BHtF/B3ww:]ɱKusGܺ*g|o<HطIF1GvR5mƒ1ڍZb(]rmOC 9dOY%PW#7;˽ÅnaCW,>,ܾ{ؾL}`* F!N!r+%8N9qީS;E2Al,E)l*"lH"lH26rTbcp]ӠTGR؊VZk q)hJb']q;,Z;3bi.ձ2ƤwEnYR!Ǝ)Q1ɀpJQ%vH(\y0`e MZRfPs a N5iX͍k;{aӲTAfeZ>MQڈeg 7f]T[2&hF)9&4F>>]tMry3l*Vֹ +X"]i"O#LAqMi'}G.FˆBKV(c7atm1t7e3TowmÑ|~Y[jՒZ];'@F&XJL3մ , +-vFo8@:{zl Г,ȣB UᑀKlJ4ীGZ/7ᷯeuڞݓFpڜ@"&>"22lriT6aiPM6?MI((7@#lڑoK/#4ʳ@o˰n90Ҳ gonBy%BoٓK ?0l?wNP?h~ _0!l쌕^ѯw\Ro::n qIWWDPC =ņl#"X[?Ԁг>"ٌp=RG6tuRNjC8}8!XrNCtN55B+50 p6s =A`6gZ>ǀ6NDP >XG:09݃Z н/0#'G +=S{^$^| 595@Rt}^xh٫Aݎ[-\,1 P/iFXiVW9"5 kEڹ"2r P͠wTL23dpe!Po/ͨva#]9{qQI?-)?ABy(MqS}FhI&+#L5 #L;cJzd#Mj{_ ?pby~ĮXP឵';HpQ)ly~]Z/o(BXߔRh^iiV#L&6F̤"TT-P+PGZT2jzejr4{0_h^RS"BI\s}F٘_$7_;%N5?-t|TޔUP(B*aj5֢=@-EMk{) ll뢥_Oy5æ*C9 +UL*)o/gQ*m8[hitXwg]8]n.|p*(OBq_ٖ2BᖡX˸UT' (" (}$Td ,KSIj/]% ΌP\W?s /D ٦#8,.s\BLyu32((搥ǝIDC'#X4 #]^a(0MVY']Nѹ'/"^/< [Uo'8_k)IdgNl6Ӧ PŶGlSp'>SռoqO~c'Ät(&F :S)EJQN1b@S#N=#YMz$#pNq)LT'.N=)Sd" mRwpR}ˣ+r1< (B" B}1u.5e(X2pN mit[A(FFHo6f{`5o KjB4}(ad`?u-n F2%td Y7HM tc,ф6h&Q(!d2ɔQLd,Be1%&&r`I_]$]D]?P<-P1'w|3d[~W@$G Oo,~ޣ;d}gh̷\ +I6  3ca05W c "%Tq|шX{0b8Gӻԯhwu ;%;ib"IF<}xnjs:]y!8演X1=Ϧ41SccI=>}_Uƭ 5,i &=8V=V97۱;w3gsl}IP=;l0ϊ7}tWk-u]7E:uAsW/\菂\NO\'/ҟڞmyM54b<.cB@T޳bf4QmFcAg ,[Z ȦG؞5yfL*dFѻ3 ]CR(! *!-Þ`NC2BBQfD&GU +L(0PV[N**h=0u [fO8̜p9013SKC@l[%Ϙj1V}M2#?&~&/j&C"N^Q'FĞ<"O^ѧnip{WoSG5~ԗf$_ +q|F5¡$H+=C0hTSEg,B3 g'+3.-X@OR]30 O]30=yY <6"KgRmܟ{dZnw\OxzG%gn';pܞ]}6GgDK=3WNIlɳcN}.#I'bC:v{gx; 0˖dV 8 Ԣ83{"X^!u ٲO*0J"w!Zwp@: zQhӨވ½+p30(.HiqEgt.,֝t, cݑ%i~hut;1;̽EtIjt.>nש/akS֤ngiF׼nu^?;N.W^ZoHP-w ]ꅮ_zkZZx} tGM?s$9,g?$ UF}Oy?IVy}E>&Q 1HN@7@=i5ɺo}w ;܉0>G+ug))'&_ZKYGT ztvvt<4K8:y^l-/K} AL(k '61/0>~y“G6=z7 F$VSiz&J0: ˧6VpFMdNTzXP+Srm?BB4f4СHјSV oނKum߁>ˀ1n!4j7.+~AW˻1RKf eH55_q$0!>qEgN/KQa̜Օ Tj4dV1{Nt %’4Xsi2 +f6h%U9=Εumpz\)q2Xṕ[8\:JBm:4eKY 9ChL DNc1z/~S-ZlZMFo[ Tq-qnXDლ5tR4Ea壄5;a 󕢽'AxenELR|vpbGY j an\I6^^ݽFc>2IN'3VėiQ]쿗1J~z."w ,<#q{Eq_d(ȸODԨ|.;f9]NfRcutcOINzJt"*nF`A~>2zCsxlC'V֚7]AKXm_>Ѵ}a+t QrX":,H6KS$c$s%pdܙ7FMvkh=`O;Ճd̜#'2qLp^/%[oQ2 +fzW+^$BU_\>z?]3rh~ytiL*[H#m~J):U9d"ӜF5,(皿X78/{:Q+J ԐArmYǒp!ݖ f66 g_?ͲaKݦ99va۲a[4 i\1c9?XO]$q??u'*ƕ!S./]},6L8c1LQ60*fndrd0-fpdvx@5etxf<%_Ԣ5(,LL21p4CNDN je@峿&}c e[8m3&xHn@- 9G(,xT-qG24caEz͓-)s*;xWb t]ƥƜ,_Z^b5 9$ s$1\QGV(/Y"ąPy + /j 9 ",}"'Xdyy +!ZF&En+}PC%F%>ŽeU}|ș@V2j@}&qvEd{&dpZrt<HܧR8zS̋&Y/;~p$5gi';'b6~/ƾ^3OOP*2ʁ!gȋ$3'?<0hlrlX-C~0RakC= >VbX*D9жё~uoA`f3 B +0c nCԗaʃ1anv5u5f[hC}WMexOl}"=V;V%=F׻V-~iUո8VҷNn}|5(ŵηu^&q@'YW<"zAZd=PȈa2N" ^}#L=^(C:#*cKZ3px摷1#"{y4OszOBOp`~##دTOd?"tȣ"(wз R?Q^v̾XԞq]6_7' sǙ0^:;t~W!C؏/Tu; Om3 D(sZ4wc9#dJt*׌MLX!&ԅ&$!>@@-֦+ʫ";weu'"Z /h^HMΪy7n(Ld9j/jIKJYazeںĴuM{Bf tLqz NS* ŽBՉ@gG@L (Ra]ʀ])E)R)UbtHۂԙR?i/oZ#T]H=)I߮q_ﰏ$+17 sӓ^ou8)<L$:|<{B/֑Ph.;ў-^}C&^m~HSlu}S7R]8)]错Bة؅Be^)U.C{&}k9yc $7%q %Vp|wF5$44wjxڙ +`A +"G L{rh)UJ.VPP^iuWjok%'kNzYw{=v `"?7D嘜@ѹLy8ބ3:?pl߸Aj"0a3o؍6G|s<ӱGa"1GS}o+hO @SABP}䧆$'gͺ%(*B>6Ydic{!a4GQ!iwc˅Eɏ!y2;qW_ȑL5=!Dss%p!&{b|Pq7PsxZu_ׯ'CU {q5m蹗|DH\Ŷ6$.poWa)~~L8ҶK^L!bœPsX:SԦrӲqWdE])&L Cͻ=1m׮a:ƗdI(4PSX,E4@3RahY qw9d[Ok%1ɾ㺈Ebm͙jDF.9@b%y-ƥ6pj`[*d:nbx/,dkB Hj'˙>#ͦ]b7BWL#Yo|Q~|\.dLUj=CtXS&s{a/dln}f`;5yZ/B, _P9*=[E9nnv7jky"y׃-Yg${SaG=' y<adG?HFqgW8|tcoÞX^Лc""%$iMjBðnaa~G8W{j=ćMm?{)(`0eSg(Yڋ.+=J0ZhȘÅn?Scs +JIk +NR9 }6DqQض\3jgԬ3JÇ~y YP;2j SYV_ 7ݺ0_)rhҺpMvղ`zi +&knPapJnT3AS_= W\U;hMeW΄N쓌3iێ:gHOre1pi #ͧhb~U/.?F("!YMFqX|גu?(I_„r<~xÔK2K9|28jcPSwOգ f,`Cq`në47ӕ +1ҳݓ*%v")݈De3:QZHAΏ⢸m@堞VqN,1 ` ujGTqL d3Gz3DN`Tѓ3zYؔ! ҭrlEg 4c9VeTH.QzOgˮȵ6kn\uͬa31l۝j"=¯, fsWt3k];WBW{1AQ5>+<ۦݳ>Q;'Mָp9<W"aꆹ08*yKb̞vVt3+7{#NNO1{В%Kc eFV~X/ia>1v1L/#=qqLP,}`J.d;MSGǼv,d\LM- o'xНc=T!xkp \)S̴ͣSRVŒޅ*(E[ +n#e+b_BDOtߚSs}j +<'؉ ulom مk*1marܢ05GU)X{&^{aaF̾e?,z MTAn줣Y]DYՖomaw;PZ4`WV.n^ap>t:s`TޅcQS'RE^q[~ؙһSUC;CDqU$s΅H*%1K`Ow$i%C@"K@j!];Hf//&Z{[`о[W7mh0ssQg.[acpF!)I6]ۭIYͽcu0AJ3_ +q\q]7cX昵μʫQv㊯V QGT7t^-!˦ې2YIݱ6TMiltU'ނOZMa12jI[0U&3g\55f?0mOՅlF>@0=rPYp IgY:BQ앫9쯞/r22Xƭ'K/u2FwXiCarf93#/A 2v K i)[3\I<vꑞoPܧaAS1c]ime7m\!ⓥD)Ϭy0Qs6$h#+먋΄|T ZXiMPxVON俏?O + +Nd+x:Zo}TZGO70HT{W:Z`\Vx7Ƿc7 +߀c}0N*Պ:2rL=,Xb|ygs&'FpXotF_"!-QN̨͖ ?dwe#sV;% n(V~h-ri[6Hk<1Q0o4!fwhWWE'u.ƹY"+[`6s mvţP\`9lL\fj -* v'C+ϞwGX;wm"UZvVIbSwiDWa%&W,pl^/HuvrJSP15(ŋx0q+m5ɏiѕ˔[Ɓ*MXKĤlN29K{}Q%op?xwE5\33aߦBᦚe) ç SobiX8@zoASgtoK$oH^"oBԛbvP%eAxi(]?"@.ۘ˜ɞˏpE6'E8gfM m۶m۶m۶m۶ms̙=wϝgEDeEe+W +~kܕoMj7%YDw7KxM]MBSS&M1z i-Ѷ, I@yģ8CD6p"Uq$jz3N1lo_{):XEcɻPNt0NUCIJ̋2FCgt?SN6-h2jiT rQhH0SU$8ɡEGSwZ Pclu<ϲVУv5Vc&(8uLў: + 4LM$*s)UMtnFA=ާYL*"nUUN6(ЂdYbޣ{8)q\J[gLLN&(06[hu>rPq=r$.LWQ^qOX?LӨe^Wa>-bEǟIuMb>J6'!=uب4=I>I{xBw(^. a`hJKXJH%Ehll䋺Cqlj|.q'z*jN;vi[~˔ A2'L퉾; Ofl u+ Ü'fZf1H bܻTVRPO¶RN~Eؽ_p dJ/tB0 +*0^6Y64w*w9==u: +G\Sx"c}8h_ :>͘E/]Z(ogR(؆yz=zyCgV8&х/>r:@(nU.f?ۣsge w_󷏸&t= dL +!|N> N2¶ec2wcw;Y.:<7$_]V՟p>=-Q‚< _IdwD\ AQ~촹Z`@DJ P @Uv\2-Tt27F\ ] En\pRtw:_w9}?` Uv +* j$A} A c;HMuPt(pxEn!Afbx >U~4ŬeXz7x~6,4ZTG[DJh \Ol:EFD?iOr-0r6~Gt%|%f~:L|ǚ)7_^?ͼ};VxL8eO07t`1}ck7{%E\\LMkĎUUFVGcl"A @U2Lՠ' + ĒVOFݱIdQ f9n*W}GjRJ={syMvO`8irHH7֙qp( 9G!psq_[[ndE7 +q" I_]m jF4%=6IouBF)uG?ob5q7r'aDi-1HeI 4F+D-ڶע&k=Js*"F`Fٔa)>S,7r%:(QM(GiRVaؤ?[#%%В Urlt=wg +S'²J,3rM|$hwAzib5jM5] UjO4̒m@d8syf$Щ4 YԢr^FFQ Ld˙Ȓ VL}M-Vh-t̩ 3[ˈ$}M()L^EZVHHGb*({"*YBΤƚ<&8;(9/ּxJuQ8ϛ]ϝyQCPPTJ( PPN^?qR>z=B:T ԆDsifTGd*1F1^䚉{gXP|J!kAw#pQTpa~zi\#ESlg] +%+mٜ ED|"qoAS sFϓ'rW~ܺ[[qB_guzP-vB-Su)NvSLKP5'>"*j`fX.!dyCљ]#\Cbj}"ađVdö;?^ʒ-]0&[qd&(_ጻ=-Q{Au;9&W1A#o:6ݸ8r2n=bGH]y=z6.t2aFDd8pSǑOWOn㯂'/S8:470fui曏>( wlNS +_aGYp+Y`)vɁF*` +Sfr8b6M,O*}J[R+eh>H~s|_x )#17Gu!\.wN:Po y[TmU٧K/nT(;ʭ(k|R¶ ajy7h*K9+ D΃#Ph-˘<0VƎ ¿ceju2oqJD'W  gkv^]ԼW*뽁T}'JAo/9d(x%]}\rUέ|щ~#;bF=ڧA\;#B.bա5)~t#S[cz +K[싉(1`#Y:6tߒGy}#,|r_Yտ;덱?2߰u눏9/P^^0םjIɍ2*&:F?kTRCggN7pPbH$P0l` 4@Q#$qhkKz +Vu Y?N>_r}Ӫ=cy5wĽ"LɀRO"]!lk:y`玂$cz!N!$U^aWTTyN:OVy[,\9}\3JP\C)7˸-ln7Y&6x82: -8榾L1̂>Ogr*ȉ-]k&9&qY{ O4JHvx2"aᇉ"6sdka2uJ)x268Wؑ*I)0Wylɞz6j%|2uɞ7d3ބ E5bA.KoKjm:C6HeD6YlCh(рzv҆0)$#o3gYFTFA-M tlۀ5ѣ@4܀'\yٲw@ؚ8EȅD̥D̥ +E̥NE̥E̥E̥{$Vxb,b۔+!`d}hk4r"}xi|_&k/Ke*TRb'?3k)/GrmͽLL?# rY\NV&&߼w6΀#b>%~"b-1cj @Ǿݶ\vL +X2 vO1@z?cJ<ֱ߉JWe:[cuwʵY/* D"?mL(J"m#$iw%? iT愌{@޹X@!.4.t!QAJK +K Š-{V|QS# (>a.]!V+׆HKRWK4`,E=lBE^5Ji%' ߩd@]GVW_YUTLL +5xM/SE+[vKGڇX25bF]EdG{VtA` ltɍ"}+ý]] #@pqu6hw#X.k89(h 7( Cī ݄'Uؘ"K\֟ +#0;'Xh'X8T 1_Pq %*g T. \QP¡qR +h6 rB.PmR.W7.02\i.hsW]Qr g 0 +qE \ +=XܹO $o0`ߧD[2bG>1pSF. lN)nL&|}~{@lGq/afٽO+=fCӌɖzW綶uAI͛d}QP)F5 zpYC!-o`kfRHlo{jOZɿnFJ @[hYzbr#;liEJi5T ezZzi]TFK*QuL@2W:{9,g*1ӗjTPB!b!GM +x^pj41y@ƃ!1~_"il9iFRib׿Fpk 3R~\A׼~j^wjCλ2ɝZXvO`ݣeOꁾz0!moo]ځxI7|53(<@Zc6Fdž $˜"_)]+c:s*&p?1_U*:~Uf6Vv__7ҋRj@Չ@|Tx2 bu.&IZ3gZK`+Ή,aZeI+I26hBSTT*}#L#jo _д9$tAش2|W9D+h +咆 zA' 7 i)N*ߚ8pb->x8oU?FqY PY3KH!KH\Et)5JnV6*/Haj.MpT ;GR rTjM_K->^x+F R3f ᘱ(@ۘK܄+b HL+"I%#ԓ:8W@6K֡'X<o`U Wg!ԂPeQBƮF9A+Vr +EiSizHIxd cz曊3,$،$HCX&jABq|Wtt9ڊa_w#E}Y 8v.`{̚hc]{)J Jm @Z{Oe;~k^BYbgX3dO͑f)kGeIp +fҔ66zdi1$BY181 |G%iug[z8ۊi(+Nȉ/JpHC4,RA,#Qt-XWZj[}GS鷳S+T\ "mh{baZs؊j UW'47Ňb}Q8 '0L܄Q47\qI(Ւ,:&ſ}|M2 Ul@lb=/0k|G#)p oJ\D|)3a<)=b4RBB D&7W;ó At/ټǷ:/W*n }^~W6/Hx7ѽmOȋ_~'}ŶuYAz] ?y&E +N8@Rl,L 'RjgUQ=A><[$ +,AI|鵅Z <+J)K^ܬbBcRspTPsza/lv{?rz@/@@ +9 +eB2aB5PP(w +bl:, iLǮ~QCAC66VFNOVO6>ϥKwͱ\PJU[=k=$HxoXV]#z=]f^<O ŹȳQKvZ[QѨUujVQ"*ګ۳Qji M=844q5+uzZWrYJ"Ʈ==]pЊ`EfmӫkNn,41e''wY6'PZ,?G0TO8? D[ňA)'gIU%D,ӥ!N)؄.#BK75ONBhx/Ϧn^]` 9_Lqb^ CLNr,_B +Sb|_N>А|P|n[?{H3;S'u.Ou?'o4QA`M>q?EE<]'#.;(u"3+Rrڊ;Jp?|]xOApoV.9pkLֵ4,qA)rT 1* +ѨUC;W%I ;ؐ_d,NƆ~[2 PҀ4` u+iQ2ґ1C?AQDLA3=Ō!b +VDX`7G1Sn FEd_FgIY|8sLr^+ ,Of|&3O%OS`2~^P)Doac/- ~?i|%8G{,?W}&߹6ʄk+hZh\$W _*"EƋNrGx}HǪ,b[:mt1 +m.8E >UJRҧTI I$%e]VЧ_LNkn6LgəޕVbq!H1쩊-,-g}滪7`f7>2|ɈÓ)t&(w:.z8S E^Ͻ6fe˰1~SDcWvb 969N"fH'\88FW9"yxqs*G3_2~/?^mPn'w 6JJTEkos nPJ͠'GiOZb$#N;%6R\A_~1fO>w|yr2$cJW>%ǐsɛ8hʛ'5v9â쟏F+>\T. /UVv3ZkT/ P0ܿjXJcba +* )AU)DDȥ^ i6M&jV!A@s psϭLp;<1!xó?9Q9X?]j 9p`Exv^x.aʇAGyKxe7x]-eᆼ,#rl s'CA55ڹl\_\kK\fo Tf/G >Hw}APt~RϺ[A8/|qmP:Vp IY2U1bqkx5B="fA qq m&woq[n0ozKԣ-|p]x(7 !z7sAn}}Nw\^EuQX/o+D}#D/ʇ_(4]j458j#?Jd<fHIL]aU#W\UK*HZ.h(wINLbρ~n3A +1#|YgP7x"(- `Du;-홠եX +1#4rCTd<|!G46%ԃ +A6ܰ#/dq +FP +A+`?k7.e ?_Oʹ|O)CzܙML0= jK& 6T͍!YW0ň7Y1phpj!S !g a0]%0#Hˈ(, OZ$- U$c#BK1J?F}A0ecC#\Tիz?w87ٙw:/P: "*1=Ba )!0H-7mkq[ [UZ-|߯6kh].rȥ^"bBpc>i>۰soibxQGO'Lrf3<5nf\n ZEX3%j:aopxuw h;tC5Uts͞f 8q4.sUcǤ:;&]jgsm +jցq1E.7`ߙIݛ)Q0wl_ns}amU؛i+"=}'E/K;a$V-9v% _٬`M6yfvzfNgzV͚PJ:&h迮%nBMD߷6~^OY6Y7._U>^7'ksOԯnsS]=yrɒ*yoPH湊jkPM 2`rW6r2SK^VF(]db^Wrobic9_?Dnz䝲j~AR `rm!Yv@ +Whdz0~Lrg2[U!#2un^Y_fܘ7Y;\2VH-uB  z:4$O2L8N"Yw&/46C?|XHn!/ +ץN[.PV%Kn@Eg\Zvr\B.-vg.ĻR .ظrB4K`A7E]?ު.RKVT̃+.:%FuZ*UxdNk2 k*{Dt\'ƴe!0@w>eJ> hQHF(gLh,STSBAGmBkt/ZꫪRfJJTۢá[ ,h61|ܯu\5 03}؉qU)5ܘ= +\>U(Lв`ڄXϺ11T+"$[{Is>H8ENB1r>EeWSbe^B(Eٴ +-mȨ\pU Ex"n vԏ+ùcjQ +SNZYSoa?R9miU sJYU~%jD N̬JglnO0+AwlRKL2^y%p~ k@[.6f|Mz @܀h# zGx-IѬ! +z5˦iEjTZapl̊*%NmȗqEдnXR3xQp kGA +nbVt-̬|e\|5fo5__@壕Dox; +c=6΀-G@a0Xpl%vZZĺZ3[K9I?/d/-{|k- +/A[HIi@QkK])xܪQSGTt=F:ǰGTcT1=|qNc{,uNN5GT틧<"r_c@٫e&=CŒMqZx`s;rAA+n+^eF,WE᭿%![5jFwFF(D"woț?>_>m7c itT"<3Y̸μsͨ4,.@. K 4lٺ(tO Y v3$MA2et6?TO5۴1kf<@ӅJ'5Lc;0;M~a|<1׀ԩS#=G˲M^㪠.g%Tg0ę54W9 0q7hBXΦA=/8@i ftm9u o*j] ܐSWON= `gɤJy(Oxh} +Fmk+M8N_fhEjI;k*שr}+|ξ*% NwjΙZא) +ޔhoG15S8H F"n6)W/"` :k]AMB,6ꭑ6G0P7)_vM i+L NK#ř)= t)RkNusȧG[0tb#N+Ov)Pwy=Ʈ%xXSciNI{L3 Ouc՜,_V,*꘴U}gXh!$ؚ1lMq6bnigO +>Z?ZbFe`1X)LfL\Us= ^* -R!FPX?r*HHW]p+FpһVTE]0Tl m{;Q[ª{gQBOf^.{{ ]d=>Baq!lp$DCDRL)HzDP #E tEiH(5NyI +. H!j0 r.M~ Y'zGvL߲H Q3,CS`> {lL>cڈ ,;*N1zYŖen av@P; ZRzp**_N()}8/,)U8]愍L vy|PcdF'pT[8e'7E'vomP5/>m "=*gBB/fH/)j& iYufs^ΘXt6bGHde^8s Z&ĤXQ 4Ң>0`$de~&'O,O,O,0(jV2XE~8b6('554Z ,}2F +>_E12݉= " y9V1]?sztղ ͗"x*? x:ʇOӯ$*d,"R-[ԂV{$2>RU"=I%rW)$ FK4)M*n Z@ט=nTa&@bLb9V{۬@3g\Adl%}f+I9HȅpL?Qy,_6O7tݿD߲5)Q7CBX55:NdtiIU/]`) +BWP=+vLSIV+WZ*44+ā}=[(H*v:8P_HP?$݌ $dt{T 4c+'PNKŽ󖴘 ̣CNlC9ns(UTAȄ8pe٬.cLlzt#9:ޅ3{:cG2?pq?N5?z6Ħnucg',b÷le:mhNNwCK<US])5L#ˡ'yO|Ө1kY $BKup +hn˩:1cI~(Nxh +}! D:1h^2.G;&WK1;MAS X⯬yRl3¡_TeV.Fy;cgN w0\c +`Y8,' Q|G8şV9 r pp\TU é 82G\2G}aFy͡yq`7b?SbA[GjѠfbg(]^Ͻ[ 4."` NLOi2k6 Q%W>"F}\!{ݽY]s^JĬ({G,,wU֌TYs*,.\V$2q˄5Oȉg$FMK=n]qk4;̌s괣yI3Kjv$LFxJ(LuAvv2,qԄ Lzub&M؞`,tK^)Mʵ|JPteZxg! `^Y3qvۏN2MunMFMѪ:T,NL-jjr{-il;}p+H򷒾uBqh%++zpA/Jz+mEcݴlfh[ѪW=4R '̜hxu[ +-X֜#Xgn"`BOa7W /*F뺻VZaL}s :V8tm}D2]zڢO{^d1660EYDܩ~Tѣ48~[PE|f3`;QxKk*RU"򛵋>aC84>th#0[ Ra@'CdK2y\ w ֚u˫\N}mGut0[f:uz@@a' zSw0A]Dۚ!]Q-h{mmVqDg"/gمڻۮoCrR wɔv$ ;sS3ޟuWx@ҕ;fNZЫկHMW?"U6Ö=vFFjfW ~sUc/>W./ڗ>}z˜/:^>wL-sɟ-l {/?[~_:J-~bׯWxG/WA(_>BL/}R‹_L'FQOs3oPݣrw-W/8$ &oz:Z}lH{# m +lݮ>Dxk`ZSSGQ8KYTe]XfSYVWWY"B_*J;EZjʊ=%WK]=A%/tdjp5t:Ut7,"" 6u{**]%flZ[vb D` Krzڊg5tΆAr>G-E}]m]ּzK~u ::[qEDTհ,j5hKYMF v:Mm3&OCSYMO-6xF+Xd(L5bƮ0˪{ތaM15-תVpc3+ vp hrF *j [A5ɃT1g`J7FK FK, CИƖ‚[ִ%Z^WD@P}qGv$ A^/*!֢= ܋}! kU)L`=c3rހAV$Fxaz( #;TqdŸH{6v/Fh+Us4ȕP#h+(l=&bd[Y:=$lQts98ybTUFpJrLRf_͑%ņblc(Nhk?xwnn-PHTU )$*Vd&'%вm2h5t+DUv/l`J7Ȋ..-^ +Ӎ{KCcbyN:Щ.-n.n,X&bYV=ءDn L1Y<,Xc%;Saualnn\@{5T \E͆zfىDl^.[C},=clf u 2]A312R>my֯hLyi#  +(w]l^DaQqcakE3q‰+(:P"S,QD %[-cۦZs*> _,Er{Rj\Į! %dX0_7S c><,HZqs ø]GŃlۙ d3e3+YXp3 Et7>sU.KwEmJvIra ]٤a6w-m2-iviI!rXq+jf\1k4 z\.dW3{Ou+[t+zd8$ݲDI'k1 PF1 ĻeVڄW5r`XwQoO]|aR6 ߚ˩?ϝ5~tuVe|xr dK52|_YQ=q#*'{$ZTq̆kzKQ5u.u!Q -˄o½mɚMl NjINLzIᝄ}}+k }I\$qhq1hO~[ifKy FbB +6u=: lΗR!XǂŬ>$Ǹh\NŲ&PD4\-} !bTc+be]`9'B4ÄeߵM@+~%RIfp% (az!, +٥RN:ٴ&^7ٲqgWdns?3{B!Wͪ&D\qdȳJxQ p&b?$SX83(Ytǒ˳R5DK*&[u >]"۷g4H!S\DC(X'Hlѕn6$w\KFDI[FCHDpLj\kȥd\؂4Sn"k=I:,SN8YCsb^4ћEP̉$\=i\Nb$@R~W\x犂=ĞJG;lBRVyE~#1; Ys垕l6*ei0IDk>+9pVy50uKƴ@7Aͩkj}tXkwϷ6zroy~) f:{:`dU%/i/&džƵ +Ƶv%#ٗ믊C t F=ų"s2tF(ULl#=AЅ{ͱ95u\[[-:y5{ +=r}2`~מ1Ie=Ew k@tE\<|giPߧνS]q:qæ * +!ͫsU2Qet!i՞ˡPh>X|ڸ @ݒ}inpB,MQv^>뿱EI,|}/ym`vPEl;JƝ\7E։}\Kj- kka գAFU;Zw{8 4NG:BFel[Fb )han O\ {rk{:6"`40`nf]cK;DͺxvbJoWccwuu]kJlPčtY.p1+fpP PcBob 5~kS5Rmuyi~g~Sm߉imm ߙ5~v~ =*fĘ̨iۚjF5RYimLq,CA#YVe³-2˲-2Ͳ!]WdaLˊg]b2X͸d3EsM4͸6eg]2O"\HY>Bԇ7y\>`كPvaj@-TL7!"w$q0֢5a4+#=$Z9!2[3mXgޗYh&S|0n&]^} (v +̈́a +bjP5DY$f''R2erWKm,rb.?;Pr^a/C=  +(A9Qn?"_]YtLDE5)W :D!#+K.%[rcƐV.G +&AXM8]CI'v#=Qm̛ ;xv[CN G0'1ۛgˊeuq7S EڲS ѯ T: +ŽS2RfH=?iFNJ~ɹ1( "U~0>҇$9/  +Ƥ +wڄghSӝ`Ȉj9˺S6KD+Πt ~DԈ!|sIZO:O:*ɠd_U2 3>͖P I q,6޴^ى#k%^q[*xh~DVƂ*H& +\2!60ݔ40"jc3E_Ɉ7 `&/Ȉ8%8x#G(f3R'9eDuV=yDnGA@BTYF0 ɋ[0H)JdtLp[7['ZBV㬰7pjӊP̧[BѝfY+˓U=Ug%1 {"W`? 'r~Hf"Vy6="w'ZNZ5!Xv=WDmEahb jk˫fL,) m[˳Ejt8Fۍ~׫/v9**Q37|p%rR?9_'* vu0KHMB7ԉ*{\MP]/T4A&e\Q&Nv].H2t>BXn@)sK9ԀTcpPaTE=x'H@2yټ#ۦUcrۍ6΄V0L A({u⡷G4.Z;H縖ž`DCq;Atn%Oe XjDKt&S&n&\yW{. +ޘ]9.^ÀFRnmcp]Ű3.!j +O_#Q ᒡކR!u$s۰w;u"s7EJKqUwf 6pDtnZ_&l<.rw8[Az +Բr/(!8A*W]Ž5rý\1DgDOȣsJ+ 5 R<݆eܢ&q!Ex!݄˹ r^hqryA܄lHob S<'1L)3?!{/`-{AqqwIGwUG˸ 06YGio9N8x33M#kPܺnMsZ*'͵NXraBs&( '&n4=yfʛڏu^yb}NNE:'OI ojd`w#Zt4wf{ rqolo`D'<4`^\;FNq27\e0s׽Nsȍm|ԳJtFTi$φf'qÖDA\6(4ebaֲX {I6R(C(-Yh_-/{[HYB]X R(+Zx!lNtP+!dZ74B'x8£~Et!q2C51sgMJy.Ri(KX&*fsL Zň0ɔ/5jbq(ŶPmVSN v[ [̑[ [OoF?<=zě@t{#">&7U™($PY(h2_1A#/ zzhN:WI*bcho!ѩ?)&J᱓R韓8 ÚpU*cZ\s6\{f-.]5{Q +h+zlJf~uA/N8qo4vH^Ton1񧬟h'VQQ/\^ګ0.`Dsγ)zOO!"^smmd>;╸4q+1CGL?D |}!gдOiд,q'$OtO[O^}A6o22{¼?a^_oo" ;7z8v.pCH(H&T\0amHRKN7׆1 I8qŶ)7+QV3-+>3Vi{M9/M@_v +ÏQG GR +N)V3Ј *T1hqѶhYoMiV"s[[o|~la`dLmջV䢷nlV·nlb\in6pkqvVVV+t ]Gt`U3z< ^[YcU!X[UZU̐ՏV<ޙWVN+q+s:-ZvÒӴ4-=m{OJHN:Dj\=LM3"j*3WȊeŗ;ʻ;ʻ;ʻ;WbŮUZYLgWncuȱ^tߪYXe0?<×o\7)5˓;UP8P6LH*AJ5^{y6"~ S^;&I2'>[' L :E]i^7Do K3?fwBm*FK?#:φE+\Z 5(~.\ +t(}=Tdz-0Ǚ~n1ǷD^`k_QFAHc]'[Fܫq +ſko n+ z_XY܃߿^S^R_̼3^p?20244ppJ-2b"(&ƆulQ-]iZpWNmxjg[;ܐzgM-DmP-7ilW4R,7+ܺN [G,XhUd͹[\lyecuKs ̛[`.V[ipk{][7Եݭt.O0׸<VF}r mԮ +85>u~%>~#Xk3~?[/߭bJZKhA5bCckޤjkr !.Cn?u OrrMsl4}?!Qל_u{) ס9R TPzX#?EM?KKe-?ֳQ4Y/aUJ5>(;6dqbsw8#MO%]]`}׬;{ؤeL{I3@k8şNx3F3s"űSVt8븮 u}1\]T#qu'X\esn"FN‘pt@$̳Pi&Vv 8 ]#=#qs%d(@kWc3.T$,P9y͙\d%ۯnB2d + +7;w/ϨUzՀNP弒TA;Lhw\&k=hJ" _k1 ZJ2r~^! b.饡6h6ҶR{PK}..X10,jh7uީA"OͺP"1onv8]~}|@ftq储n" j)+3FzC 5`wdM&X=-o=nZGO=38c _$w7Wfj3!?gCΧ'^Ӵ={7:҈=C:I΀(̬q=+O9$/#B (2+4W*)-PN LP;K.~{ ݛB cpk~i&dNt{)WihɆ }VPc|iuPWG2ɮ£%jQ(k@Ube0 K/@o +AKhCY:ԣ>b)̯/dL.ec5J% $A(&'Z媏XW.B;3̹ah'mdgjwUvQYE>˔XG  I +1 f$1[2VѺWΧk TBN)UѺnjQJ5 >VOfzor$Z<1wԸr8 +sJhͥs,B7M99zDܘoHZT7ZPs81C Ys W>iWޑNj'T0׳.C|R5Xq}Y'q}DAMv4SYҔxamz6A$;D#_UhS[GUST5uZ,ei~hX@ ACSApH:mu>B8SWRT{mV劬PADaPPQRR5o[URVgP2hyȊ:^UuƷkpChk}]\3he}bb2ݡU +m OPyPwP&y¶fws)$to[@e{^h l)kXо(R:Ϫ\g€SyvtYLE yuc*IT'% .fPMr/Eh-WdRezHN59d|&/Ω\]`z,eȀ~ ln/0WeVpMg㠰)uljĵTG\_ 1k--%p 7RB5ҨHY^wأ YF]%b2X3<+lY@4>ŘŃ)'*ggl)X+Phs|H1b\tU.aqL+R3qD)psPYBkļ2̈́a*87ǎc:PR(/r7ڹ7BUn +3Y]ЋI|~*WY*\H tD)eVc|4\*:Ibj422"w n ؑ7 +Kv +oTu4ҭ0hD-ZbMUزL/%]idV`%`eYLsx<5xr~9-`$Ӛϡ0%.U<Ľ)PK <+3Is^X1UJ[C|E*ɔ09-.OV@EZLmG+,ƪi&YH>m٪2Z2eMRS|Fr{v ʭ`*Fql +2 TZ'KYFg5jEnn7==JRM8vywrn˫Pb%3+;cpg%~IK=JiD=[Z"-I7'|0X} ~˗rhP^6 ǰ ~Ϳy>Yћ>&Cy%*Y͹6o^*K*0 a{xT6/jZBuF/^ iO q.^:-氎eX{qoZUg嘱z#4 24/֛;FYɺ6a4ob먁ؑYbT(QЛNt OްH]*>u$0I(rֹG̨لeP^F\d?nڦw@ e&YUiraNj72 +m _԰2eh%0b#_3Q{8QO"dܵ#exnʀX!,ǁo0lI!8x"X +ׅrh!J9S"=>mÖE-WijMökxZ}|_^^a?ˑ`|f&0M4MưxՄݴܝV8|13ڢIhtZ n0p0cQ_!DȔ3fHcˤFDj j |6hȎA_#,7P3 is.CW8SrwTҦdC2%\_hbdW{cF53_ׂM/_2JyVRDZX/Peh-Firۡ[[ w"%-Jrw݃#V#^R\?)dm,4JDY7j _`cw"-6pΤZƊBZ$ôIJØ=wƨ2}9^\[Ԛ:KTwMʞ}lղIɼXtyG}!L>l~!ٟ@8&Zc +T{"Ah~y5_l›J2Z<+_JGXO~LO{+}1f582_pf0pXQ}Lpmn*!32FY2ĜfN!=xQY os*۞iO%i¾0Jc=4Jc8J[,'NvIߦspǟ9;w宺j/Vrt3MTvxW,W*􀌢8*/ I"WICL"| 5I6 +Ⱁ)ʛT,51ka | ]duBL.5CT4KI_i o I,+nͳ!gi.1FC HCCWή\r1Q𚹓$kVGBްJSUYi6A4kHX1ɪ$RL,_gIz8Agt53rq;S)s㋤ G)4ʗl;d; i^_LRQ}It势 +ZQH=v@TiEQjT$M%coo?j?YHUOәh6G@TPwE*DEcG +&Ze&_W(t~|瓙L}=[`ߎ[@*EX}e[#eh5"s-Ze] +m#lM:fY7E jD"5&t&΢)P +*QEҨΡ `;w F@AY!fî M#'|khFAg$@3J*Оi+'Pm" Ѣk&E?FWRJ;kQ"Z(WXZɺF2mb:؛kQfDuQFa!xl1ܺo)^W#?c:dPE^r;QE(F͂0[ VEDQEdQޢ`hnEz,7(tWhEQE(Fx(E(7g~eV)b)zIXV[TDD@\{TB;64D$F+[Zew)+xpReXo}S4t]WS*n2f;s(ZϬ`ĩFm= p4j*ݠ}OdDfJ80ѓyj*2rm粲5xg;BD|Uf,ި@#ΖLWoB(*X*XWU+\ #/ ,п)͏҅ʊlzmLK7khζwn: + +*d C]ɂ́n<+n(XZ"Fr%3hU6Ħ9YBh ?0K.xl۶m۶m۶m۶m?X{y;ovg#6"++#;̎*s߶X/߫?V5m?EKg/աMk?Vjz?6z^oH7}oM*MC*٘ SiC ǟ5z$|睲KG76+s=Э2V^bP_m'67 `1=ލښ=:WY%br2k^bD 6KOe"_$R>nAh5FtcGa΅+jYu>KW=^Qquz̼έ1]ƙ8EX$)xoԈD?@ꝮߐTtN<]>KGU &GMd=?k1ODnDIk%j(i~,].6-"GԳKyK߽qv sa8l)yTRJL~Z%7wϡCNKz/:_^kGGޫ2sa^zkwOYhsqss* >dBb+;.mFd0C5V;CRP? XgaYn6D8vٻ"uvI*i9Xxݨ{cV_Ȱ֝ԶkXn%T4Y: Y@險#YGoTBm$U헻Bfo[6`M%JKy!`i>/݉;ᦔIH*6ZZm9(zZb+$Yh[(^vc#]wee_SVdR k&W 5u(n[W$Ewcmɪf䛖g TMfeP3xS}1sRl ^5ָYT{ s{+9sw63gV 3R$oTˣEAس7(KhX踨C0|Uy,u~TM3vWNEMXkyCsH8[rnkn3\ul=j[q* HK:o_t|~pZ7Ukĺٵ) Hm|wdMA|/qvsȑq"ʷNYhk#+۳اLW+aG\X˶.}5CܦpQ鬑srad\8Sh HnK, + =P6$$WeT\X%#)k5S]%c aћ|Out(;/x!)%'hΎ*LK}NE]ˤhBӗ$_6/}ї]2gX Oқ$f{fqߘӛw}@MߥMVqPgYkRz7M_7|;&Mڛ^^?FNQdtzP +GH3TJj{3ES%Kh+=f!Oy?O4_S?w+S?QO`S?Oy?d {t`/| ?v==%~;I$Ca͟?(?~rAO JW)sZUp]-mS^vϫkS3]^lUZԵwT+3֯(cVcǮ[Z񩕡]SnQlV--[S_S_^5n+~U3+K_kBnZ95OWX(G_<E,ܝ%IY[{%{9mO;0#sڳ%opĥ\|MmheR65eeV3Ml'M%юGWUo"8]-_#~\7hG,RK$ߤpڽhh6vУoC!GC6oϔ\ƹKs - %UƸpZKMwRHZ ¹m0UbMpkpsl bMPP:5L&Ǯ- 5 eznIAb3Y'+UT7CP'ﯴҪZ_+tt!nJ_;Ɩt-LQHiMVQ#Ȇ?p +H)zPEF\ְޕ4/\y!/A<0YyiDpW0:C#D;i Hj{#3&f,g0MRf$9IQcGZSNa_G<{hyyyCy_De 0'Rf2.5JU*9mѩ)*C>`F敬= .W}3* UW)}ɪqm)?hsV8OyӘ4ki`kpYb^*FNQ~]# +eB@eiq6^eҢ@JZtu-B8$-@ -RO8SKIVr?%\XrnX_P-ѩDdχZ aLW IW o:k6~ā*R:XQ As ~~{q +r!as@a=4, pX2`eBτ }QtjЎ~jqn$X{b50J`5,J{孰ddI@:I!U +=' I I KI#I@.L'E;| IپM cy`Zr؃Z}n5~!o ®aw`m hslG&o~} Q~~?q˗~ep~{m<5@i!D$5ׯg 0ZμzǑ7G,,^#C?(+y ?.-~\S^5+6SHgIأeS[^H+s_J-+_؞w 6YDZ)?#̬HcN?tX7]r_Xwj|ۭn7[-_q +[/@ofp~ [_FiF[W~l豇mpXIWv^Y\ ++_;вJ6`nU):rZŅ 9|d%J.C3YziɲO\Q["kJ.[iR%2Yn'i/+6XSb_X +-CȌ6MҮs ӚSDD}$TlZO=-ߥ/Z~͇"2q%iܬb +27/ qE|޼H"ǿl*5L~o^Xe^˺^EŹ^^wz[v?H͗f]jRt4;&|tdRblIo.x4e!?TiXyV-f4Hmƹ|?T?lqФgd#2laޑIdGrc91=#ADztR4L]+zAj ==qj?v DˍĦ(D,D0D'2"RtDLhLpLxLLLNt +y~_JX0Zʹ|ѷ|/3@{Kԗ}|+F\8#ҚFYFEM`ROIP%2M`RиxKн̌%tceF7;1vMl;70oSĈNJD&%"JIĤP`R*2)?')1%&9%4%4%4%5%:PfD'T,щsD +6%;PN$4%:aN#RDr#R((_ ؈ڈnEKlKlK#mK[˫31|__RtWNxY/ +r "'v>\C$_A=W:я6(Ww/߳MƯgx|tGį,O OOOO(O8O/ ///''' OYW?/ ik$ޝ>Ȕ'%&Uʶb., ːeB28Ld  /fpDU0ǣS֯gףxbWO~~`~~]P܁w̃~(is>w282Ʌ92&. PX88$@Ƅ -Ͳ-mGMqʗvb5|]&].B.(@΄ 5*I u QPRIБ0#iU1-m 64/uzB5k<}Uպ_G 7n7@X]K3v׿_6|9<-!`EW/{߭_{}ߝ}=q_T`ٯOc7  D_zs'ٓ#'7*Ks m񋔅15cFqy2HHTX%ୈs= y<ȤvyPƌr,d,TAu66J2jk˭k 66D (Ht:*Uꊳ +:Ha'MY.(jgqfu·zsbXSl}uhy8:_Fsidb{pS@<Y֋ ᭩%A6҆p# S:X&O5ܼVLC}{ŪV/!*H zV u vC(xD Q]6g=Nœ76Nv?M&?{V߲Gk>GtRʮG6Ɲ諾DoL9ʑ1[c +t e*~gXK_b[-_wlJvb1s#x}Ǟs\yMs咽YLSFaM46Y-ufTl+FX 9ƣu<բU3lЍZ<83ng8u9=uk3wALލq3l\6oOD3]6p^;s8,)[8u2 s +eY)D%JVqJϩӊO)W3ͩrVq/? rJyO>'Q>VhT٢S,s=#ڙ<9ɳJ4G>f5ƳT|eYО I$phFM R)T l賂d\#b&JZCaZ*#M+%䔣mu.׷Ӹ3t.-KlOFxْи_R^v>)H}֭f5g +^zkvå5}q[]l9; 9 Tnbq9=kAL?,#C}^LFHm:W{z?aHܰ"9eK|䮟cv;nl~y3.f5t:c? 7(_q͛qS;xQx$KLcJNĿV)m3ԇXQ O]QMzfxB776 `ocMA=bğw9N6V3p6¸ch]ԙDF f-s n]?:9ك_I 03HpDVm< 5ȺC 2@H" #9`JV09WNn^G6.J6 +7 S?NU6P>s\JiÄ[Ǡ 5 Yg!#3D/]qޗȈ5dA+( ,,eK27ص}.+Rwz×;F#˴RHCM~1k#2[ر&^"tx /2n0g%qn#11 1;3"][YF3\{$ԅ6EX[YLz:Si%H-yHy1TV4n5~ܔ:{4T W)][~n Z,Y6?))4h pv 6O6p pe$XY~n-&qffݬ\˄QġSSjz?;Buu(" v۞OB81>` -] |l/{f,%Sm #/`wlDŽGd.d)=9׵p$U,4hQ b'6a\hɕizeiV?꛸Uuk."ލ4*0&׳l`6v}ɀ'dlX>N&^iAke,pa +"<`y~$7K6a"<=*'0j>`J)A9VB\ҷWXܰ`eeyy~ ? N9|jMV~de7 G{QM(^s@uA* Lq`ԿFƛ}:4jN\ $zogȀIjRlf?O`p _r߾s:@S} x&W3<_vT̝HV$Q〞Gs1Q 4A<&`8$D9nl R}z}ˡ~Axs6b/19P fNg H2WOl3J9mQ MB:'bBA}S4UDyX .{L&Qcx +;ta#Q2rmZ/iHX[yzJOd O>XQOHVSJN2NLE/!]_~sGNd8 Bɴwmw[I㧈$,ޣLyaD:l~Kїp=z,Kx,ԉJ 6+I݄yvn̠iV Sd%;ڱĽ)ii+h=GW;z _ީQ ¡l6msSТډ[#Xyc%Mja>]^'Zp͵\fr[x}'whjΥJ(ͦܪoŒu+|ll*'<"M2O +t-$h|Aѭ*P>4(]qݠ?|QJYVp?H5\J/1J&ݨ9NXB,ة2;22=ĈYTaGc!@!Tq6آ:$P 6ݠgNNd Yo |R~K9Km sKܭb?>#oJ-GI]`ِKd,Dx2i=iWG?w`͖!ΰimpNz-i^>>%D80.= +:Ʌ2x7j5kɅ8[D^+xs9brc0X&{#NןWڷ`+Ɖ=\?Uxy;-DSr\="DE?{əm0ܨs h}h¬V a΃Sy2鍄d~VZJClZhuUl\0g1 N݃}<"atd'WL3IM5,%qwrD߮`j n%%mdId0"ie`%Оaܛz5T?gWނͪ.7?ӎYuy.+| O~B, -ƴ43<9SMk 4I=i~tc;Q}/`#Ut@G5FK?"ma$f2 #ceFbJ#$vT +O2V< +$?SIk-IJou=0f< Y98< +?0ґhD8;,4ڄ<-Y܎./BN&lpd38:ts8dKR@e>L;E BI%IlH3 {x~f]`aC<ƎkTҐyk+҂`4 [bt<(ƚE +ꏭqYq\)$de ƻ \ tRu"5|UnýRfڭ:bT(k)S#!*0\̨lnZz1")(W({HAxad(?oJ{:^lK A% y1(mPnvR7 !rj9L&8jE&61S]jzϙ,5*hʞq-凉:oLi{MIL" $ai $ߘK־@BCmKCU#yi:E +tIdZ6Lv Di|R,KD"B#\HZQfYWK}M}6"}CS}U̟.l dɎvXZi12L;1 "g6S\#ޞy@114-8 +ntS*tnS yS0`&`&.G 18G1ƿS10cy'V0PtoE.c?ĘD;3QA!c79tvIrd.FjIgI0bҳUqqFB,h4U#nHI1 GnY)2RfoF%ML`xftk+IR!~lGiO1nN.9Ku}#BuC¼|+vr/ʟLJ,U9{jM/;XeGquӗY-ؿ9 ̺= XzfԾB;성h +k=L%~})aH芞y +XɅ0[u^ hF\ ,Q A^obh Pb,eeQP/AaZ!>tx|`{Yt1ӵ0&G7j2($6t3[v }3kR rǡ|*24KOEl'1S,BmӚm'z%9㘥PgP2kUݱ4FoZmvFiZw|V[ҹ:s:s.+Jewح`)Ap"uns„%wf=zMut fNYE6ȸ!@)!V[S{[пSkIl+X^OdITu%)?GN'#HB@ R>,(4C#C /*{l_Ie^ϱc7i[^"][Jj1/q橭/0T[DK 4VL_K Qck`!/Whq{ ޜzf^} 9l\sm6) ?u^OTgO boʇ@ -n N;ۣy:ɌXz[6q1աFDpe ^¡cAj+ + Y%5.(( B4D]ic)3W"!b 'pSS Y,ڐ 2fm|ÒQ"H6EY /DrKiG"-aSA D#|A F@[#V!c`"eD5K+l@{̳02 &8`k z,"+HLBJx2zX*+,`ٜa #Nv!3 :rY&A džiAƆuL@hgH?1bF׮c=tSj+6vu,'Z+; s жaUAP{:s'C؂y `SR}HXhvH%DA$>dB PFΣckF5ro-Y [lj ~-4׿jNc4RL +wM&ޖ?-"rB'a=E[BKO /}LTy1t\ba;8B +\_ZK]@mWJ/)s3 j*J\:L*mM5Mr)[ۨ e2OTLjɫٽzTL\={i+A531턻  28%v&5{==5苓KFKB t$[JE>,ㆩODL(=&2&e{wN^GG ָ<{a"pص,"P֮/>"Rta9,|YÈ|7tM ]E$[5FWrqxXΑ2m˅DK"J[).zY9Qzf&K[[]u홉:_bC))4eplEOP|im||Y~|qրMX=jZ += mєڳb=GOCIEYEMAMSsPOpǿpj=[㙁R5_7 Cϟ-FY!qi,橥l5|2 @! >WI 6-ث6Rӫ.ozXٛŚY_b G/!cJV@eTLOwF0ЇdqHޫ [$Yv"K_RI74w ٷ?캟빎;1֖pHK Jqkr21ϴ{șȥ[7`H=M-;"KӨٸM] d+ZjrZJ+KB-coƘk;9rwI4A׼-<D߸?t@__ Ƿ ;@*.$CF)fv^G]Cwv<5KU>?uWxc%OiS7釳zD_.p1T_鋺w4 `%a:A&>oj-X\9OȢhNeoiv\&jM7(l [0<ѭ Cw,CNr'?Cy#X!L?uriTgsmxP} Hozۥ~DE'׍Aц97{)?tϛ@f̒yrzщ +7sSgTg֣M0K-fK7+tvَ$˽f>"n&(nB c&I*t- .\2.~+|'N2F nK7>1!f,:L!tˬ*s~ht5#+o~28Z⻜d+4OXEc=->NJ0y ker^@lYpO0Aw.? +fFt#/-¨P:>t7-ĽCqF z&xZ) FIqjQ R +2ʳh)1FNcjm&]tzZ8U(V)OɽA747>\zPh +U a-4zKr(1'Nr{h2 _Qp<8Mrt2FIlx3(2!1$y;i+'+_P?õ .P?fyU uII$ҌMXYdMMM/$2 q+Yet5vq!fk^5=_t䔽AI7ܥ˸{.zm#38E0C^ ?@aS(:Jd  .PNQ>2e)[ ;akjuorx^4E)\ҧ&&+ο7:ey$l}{!jd#Y f*)%oR]!o.5iJh3!KfS/':P-GSq:Ӹh 50n͖!4.z$Q J~d +^A"4 QSYr#j +7l17~W{ Tހ;,ܳiN1':I^LL:̰)ZZML&{YȎ#Ko= +[`6 T`J?9!P "G͇n +EkW P& ʜɰ"| ݗ^E3fG@+{[6Pf)aԉ7_U#\xM77HyǨ\ɫb$yy54bGO!$rh}UMIXcų̀i ^T aoV/jG7M^X%ݬ&&Lmkd5>'@[CK.$KDom#"%k $=`?T*k0w0(Ӹ XWx隚dPAƨ~`E¤QH xs-f!|ry +x\kRmFs,zW8h6-Y-eHR;ω\΀mr=h!憠z^AM(3لBx\QPBQ.TbiIJPO{ȗ@d&}PѶD/e{QU?m5dgq#mV;aLfVųISxt]%=/wc=uET0%L3ٛVy٧3uLv_'if&י%8p0a&_C;Hts,c"Cl>p py #%ҏ޴ip\ ?Dy)̠ UWz-a#{ 65m:$|3ƽ*|ASn]SGB]pOqj}0dncԥɺZ?P&5#FWD]cb(ˍ\@ʌua=PZ7r(IUYRtLR߹ĽHkh=#xGYO *qcƓ\g ѥzv41cnYӖm}iD6_R=;Zj +s{/l|\y襣#|#Iįb^^SǓ2%SoWNJw2KY,J߅l܅rBYz6\q &7fS+SFIps h6DjN1mt+idu`w}\&7>m-*~6$el%lF dysq'QH)Ey%h+ P-Ůx"L#$fI0ʀ0.8?GNPrI|a\-ui +]qN +>-ŀ L"gKY8G-YIaVT0Xzb^b\|q'Q}QAM\μ̋!*YbЃ +6_D!ÄN%,>Yߥdp_ }t{Km}s/+HO$H7ɔI.Ho6K%ULz!9$x/2e`7&m eHZa.V9bH!{1Tn$V7QI*!n&V@peyle47gAZivϬIE֩'uD-n;1چnky[ya_[}m6o73*{-t9c[5!en\)7pQ.gÅ(%dRNhҖ ǭwԓ=F%r Ғd,[@5C5J<,U1k @$8Le*LQK8(PIXxO%`XpS%C }qx̔0+> ct[x7O8W(9ȷי,On/an-D.%EI I̧+Ao+.HK$Qsfw݄f[mö_Ԟ]RđSp cp 80oBmЕ }LQoFЍ+׌`Ӻ0=O( +.vEW2*Tp\l,;|\;L[P]Q܎sϋto''P=x!RgX)+j+_װ'48ٻ_,ۜ{xE^Z⾪ʪb+VJpoխv Nřqk_y4gdaRي^xԵ$ֵ:L=xցeU'pс81/,;rsABc|@#yf)6F`h8 wqu‘Gl#X(Y@xqA/!Cj'ՏY +^\̏LQ.<ʠTNa3mvFcL$c%F!g߉ՆlB z9s97DnJ=0.}oum1=}hFm`8}<3ܲ-g&])pz5^v-"d-yBy:q@&`e_#!}#F͡Ԡᄁ _M@9i>&(hOUx=Bp㕜ğgo[b#Τ '$B{{ FqYu̖WG 3f\f|ge ;P~ͩ poߤ`x_Kd_8boG,,UPY~Xg4i79pr @41u2w9fh+/ AKAE8r+C)#jn6g7~Yt>αݾ54B|+sCTekk(WH_˧){ fsZ?g~.=Y8+Co*g|v@߲$rV2B.7`tc`qbe +`f{mk0yftѝD"ۥ0[gD~GI0^%^6XўM| nCzY0[GC2+6|#2&2B8o[5 ]emB|u.5$|'(Qjhg_Vm4B3gDlJW`rܕՏ#àkj7pdymڪW$r.)K0o%EfepžϏFgOx4v^Q9x4;/ꘈ4|^!R:o&ߞ%w$_GgFt.-;ds P !j|6|^i^l0ܸ jwQ; +N j{VRX@|ސi(-F-qgRׅ87PPv!K.iRfk`55gjqfO7P;C5ݏ x5 Ÿi궠P/ 4uAT ";V!c!2Ο_|K'{}!6;a3ViPnKךNY0T(MU("5LUH*Z]i-WF / *u +Jx'9u7r~4\& NAkhIEzfU-?ѡ-)b(pgo̗lWcüi? +&nh%.v1}Kܰ\˪nKqP%T4+ »! "t_ ES8ƧAkG +zġΆh|*W.ZІz^X=ALHFYȟkaNxBc +%7ъ`Q誽~gD?}47]rو% W{bs_ggtlѣ6lL9b,[x;*vMX;b"b8EvL6K' Jbׇ=M.ΙFhM7uMna_DU8c#&%g et!wF"ߖF:H&#="/xP9v4q8c;TD@'ʞ o}ekvD,] +d(kuc0{#a҂HRk]L#iM 2E?xܭ;B CP +5).E0h +xS5LbXX‹}VJ7B%[i֗!#HVnC}[`,,uZAYCXhXM[ZaS:i8o;.@unTJZ?*oO|~,Aï{)׌#>*,VF !K;d HG`"fk_DՒBÁO{i(*h3 83 爻;^ ~ghwUw<;µ1KL=vbGaQ2]p:Yr8F3,Gf10oz@WBRO}0يܒV20[))4R~RWũ"V||IME5˿`ɉ ,Et@:tjm7of F8ws@S.4PUV`\Aim,E RQN(C~tu"'D!(+FNyFlպC:Xg5R^~D':=]#KD6jLˈt&s9x S9b!9H@4A]ҧ3.ラ#ζͩΙcƔ4Y$ޱPL:RMz@#%tYΞـ|r-ʖ퀍>6`6珫[0BP aK 5IAk8wDJ9kѳ ݙ6c2s0<~o>pZ@wGgq}jBVYoTY?`X Xa-yo\_xa~FWC遃g7a|0//_"`k'&e\+^Hz,"Y%YQΟ=L5d}ad0ByUu{sY7972*NHf\#46GPF\Wpog ,OcXcE/X?=+OFx=F|f@1C8C#!X?P~Bp0o?Ȳ4Co?#LTL#gd?N!<ҖNdq(ƈb&8$5imxش %ϠqώBzr$9>jkM(t].hJ"Y!,s&YӠ6WWf _d ݪMџKb:{IPHʛhLF.'_aeSoTBWEWVV1l#C%HY)ȡ/>z q뜹ʃ77Dۂj{3ή+-+aK#ʓMi|fftn:糘_S2i).ߨcaPmEW;4!YYֽܷM7֌o0a7UEs^y&KHe)w[zҸda +G}=fCd(Pm{1qĽpJbpk񻴔-DT|OK=2Dy ݯ݀aԴݛށ&2` I%:aQ.]  +<6Z WSonr/I$\(uwImx?Ken4h!a+)r᧫Q?pJ?ey|G-fe{l͊#)Y@8O)wb'зJx` !J\=zz…?6ɝ>A4#^@* f7fWWAP"_tbYZja݄ 7:GIK[F 5_" vmcnÃ0zD{UVAX*%ߗ<@{x4֦S9e#ʧ?u!JwL8넡w"U)\e`}c,kAXj&XkGQy#CT }6oHHOW.FoF$KVՀj!H@f3 +x2zFo>)D!'hKABcMAbe#m+jmKe&E}M+]_q,>ٖo6 ϒ=N=%udlΆ+WPD>{=dٚ't U` n#Qhm@!Fp6ad6ܐ`Qޚ o@r/*4]@uU´ZVI*ZiZ%IlK! Xldr;ll!/몍ğ>E 8 [h*; R:-Os/<ҙ%^nh“#R0ې6젘?䍄pD1?t“"9̻kl/k[Y}#o}wUǪHjвUL &ƓҙR 3hl2J2T4ؓ,X#X*:)IjFhldL4 <e̢lRor:&s"cPIN8"@Vޅl(n`EB"}\D/&1qH߯…}hӨ*_B5/l..I=6bl+ ~6 NDYPM wݥN9b+aj%d6Bkf.[Cns0g-،&Pv +ۦЇRO#1514fiFٍ{e ++yU2heA<&h &U.ZSkeC+m0I&,d +#Ue޶$a<ц|md>ׁH7/c i.McA@WS7t׭.]RhЧCQQq@V7}^]](+ 7a]k/ 5acZ;pU%. +^(Kxϼ|+*UCLm</ +gU7ڦƨUE7m[:TtU7] zeE\b2];`T.ݞ@\ҋZ]rۋvi v @WzJԾLeN#'ʭJ,j/`0JK+0(M$pNjѬ kn"X,9rauq)2T0sۦ޶KrV6 +R6*FM + 9c~M >9 twOd"UTySۺME׼զ8&md@ݽH,Po-P-D?#ˠ4# Y+<R ̍mfUAA +֡ -̹Bu0U zukpdnLm Mf+4_UĶ>IJ;wfn`"CL  0NPL3 Y 4np<ȋ|\='[!⫵z\m_JĀIQCVep5wg\N;ҀM'fcֈ([jE[|b +CU"t,["#~p4b1eϟ]6'[Ge&djҞk+뺳0m e[) XO M"h'r <("$IRz~T)|tgp{f6tmSS\{l!\ϛR0wtlNXDN] ba( : TPt}Veci({؊˰Q5@whCwE:SRp˾<.j{1#y7mgδ'ҹ=)%^cPIx9GA KS3f Ekyy܌).;߹BR兞80#32c]Le̅8hY "wA#<itm|Xk]G vUI{@}(\Y/s+4|aV5 9&~.pjJ`jN:-w#ʠhRЃӼ)O< ZW#\Ok pP@ GۭkQOM_B; J~pǓBA?M7tIQcI¸w|oi5ä#-Ul* b]u{CߡU_Xk}y޼YGR_. 5,WFxe4Num۶mm۶m۶m۶q=UMsn꤫$k_MRݻjYxeP'0DW`UhA_ \w|3fW|͗A~8 1,ͧm\F5O(G%w"0\ xYM]k9GG'CÙ@-!$_K8zf- Vl.OwCEr\ӡ]=|{H״M"#~Iwϓ0R1=jk_ `c%S&B4eN'ڏ䅖 +B׾E#'@ׇ$kA;C+ L!D M&^ `k(?';q":*z>H 䀲Elk>V3F +NfDt_R-ȏ&G) Ѝ~>P~5ϟyzSg!RB6U)YAȡxTYH^ 'EE^ wvIbZR"^rj9xXc4401 +ڪgRVhZR!Eq(GQG_|]×+{g-i)P ʡzPmqPӶ?xzဂI?edx9&-rX1zҊ:#w'Y;x<|!XM4d|j_UHܸ]:Um 1ʳ5iJcmǰ; Qgf~Av 7ۥ~{-:cRpl`c b;:) E,ٮ󺚕Ϻk }6<IW{u@z rG6F5|(6$/=.sd%"³5xBz:@ԵĿ19_ KHz#EdZKj(fm@}Ljp"%3J.<@soUimT_ (+͸.Wx{W) LN8n [O3T*kBNzZkGĪ/jԔy|*JScCS]/E Lgwa䔋w nCV&W]> V2c=L@L^zͫw۽Ѿ޶پ/~OL3; +=h7L7UF!3&)[ԔVl'wu&1p~0rټ>#VQ/Hn.\^ʉr ӻF`X.\:֟9TQކ%f"+[aYG`e+|zUZ\F) +SoèfS%hξCvn9ʄIgӼ6RmkL=7k5ia2TeJ-R1wG*{ +JRI/W>,H9 Bf=n&ʭb5/"k^`'0OtX%ID3\GѮ. ;ᨘp4*L+nG伧z{W/xc%t|d t9nCd] h$^Ȼf pٛ>+ɽW9ʌm )dGO"`Q[/vva:ŸW{ aX9_:/|'K%E{- cDstŬpp*7j7/4. Ī+LB<#I9w$M (\^e16׭ᆴ/V틾ʵ!W*;N+/.uz-WZKni9FY-/Xs+S XgSc5O2~ك)O~@MMT\xƛ]%]uTXϘYc-=;756uyb1͌p{4{ki5dIcxͦs)ɬeu:-HDUc˿Ho؜0#k>%$?4_|{{rOꤧ7nC(oYF*tXy!7:  A6@_ip.m׮aW ?zPw|)AïJFkE)~S-E2RdsJ*+SCBaVWɼvqҫ:Y*w_,u6UK8ԥ+8ET9sx, AOFStuء6P]Df%q4hxN>>hy)IZ_Kn`89,*sGTv݂Q1O%Pq:ؽZ/4$`R9fUtI,I.d4[:'9u1xvzMqy0)@C~q.> g +6_3t7TfQ- kk[m3Ђ]/+zƅ&l2  %5䟴xxqgȚ([/1ṟLMh@OGyC'GWlOQQVELeA6A)-y\B@BmY~EBKۙ6];L6E|؏=/ O6`r}qy(/?2y tf8Q=aQg UG,=19%/Vr{B;NO&ؑSW7R>”F熡_r ܓٯ->)sH+-U0:<5F0榫8suSn PL3c'L 9ȜDPc]}ݢk);ۏ33sS>x(߄F> |Ӑ~3%qV72zRZUgHFɻʱJIpJHr2gæbH` ފ fCgN=;dyX뢓Hݢ=H'+",D[v&'b)PE ջ1o> o>Re7SA udq\2P~ o֪e#2{6 Wh(ԹR4:1 s_we ,gqwlQcjO0#13[F&jHP (6r <ffΤ DP`IAB$xG 8hfd[=%{rQj*H,TPz]ۮ֮ͪ5-۷c {4ُ9ڻ?жCjt 8&rRngB>ʂ%|1wU1>,"R1s|xFM +x1)c9_ +2ΙK$ +4qߜ+a*Cޙ%tOJe^0iT!2\3Sc[N<,q 2Xg8 4q\+9eKLh54Mq\+^%rUΕo {1\KjJ1qP) i=a\I=SF=r=e|EL9l_&iZƋh/ lPGJ9tS5|Er9/6+[b6֣hm`G̳SQ BMH/Ql+:+V57Q@Bpw:-G-i,@bB>..3!1V=tBX]Ds^Z !gLDV+Y<lBAh2D`^y˅YQDhۖjw;)P,C2.zc[C [jIw1e2LJ~)^!5X=Y[lj7 ?^jqXֱmT/ ʯ&c?!׫󙔿v!)>tm!-gtmv:aHa4ٰO!h"Go:WɼMGYIv2,fћ(bssH޴j$C +C)f8RU [) vz05Pkvj&MgHrvƅ)6],‰0 lkN|6]$6_ NZ E>UkIg&gsuƼ@@CJ`t2{_⏐dj-/K;Hh=wpNL5?OR[ q$Dل9)jC(KQЛ,R/f&`YgryTd4юJbd(ڴ|kl{@˺t5):AxeX&Y:E2T! :,鵚ʄQg)/LSix?sڬM$R#\:mE2)6; +%2oX@rs0aE+Ϥ=԰0MlP{صԴyvȥ;AZquY!y fb$yDI;|POB!=Oq@hVpΓ1"O=kŝhzTkoX*\c +&+||Bڤ|@V;\]5߰8X@ X*>V+k m!.X[]=T|y"vry}EͲ11X\ l WZ^qpg읥Pp@HǹHGQd+NDg >uSEEK!Ƿ]l=sQH|89zFoBb p.yE&WAe&Vה#/ʽH51$i14 +˄_2 /MU7g?Tp'5MDɅ +n;ZAlNZUʽbsҳFy +-~BKɘ +7iVNq Ʉ{N"yZZ+>"G雃)wq36?]8QAƂ +yO)OL'V5 ӂ.Ү̶QD&Dƺ9`R+ec󶺉aiK?! >*;Y']c <38F#7=wU Օ{V'g,";_PLB#g/LMK˙,R@LSC 0؂=p؄ݼ޹oݺBc*\/L/gdBe}K{;l;y,g_0i!L7 u݋(3'83pCX1_2?DQҴ1ŭ2̐#O1Av9w(ee06Va}W[Kopv +b{I4qܫQ⭺/34H9%k I\:=}륿#G\THpuUN렗:׳hB_Rܰ~8ꎇie,]T.`6I݀>gRpjW`>Pk*<[=`syR 3N ضjJz"[P^[IX+}="Z+) W󱕫srF"n/¡.IҡEEϧtE܆w؟ͲYGFlu_V#p|f!+G5^ŐnjFcL[H :ǧJm Vq[ňxZq˽=`{|c__º6ߵK.9V}w8i@B`~}7G;LgVB00Z >D;LmTKD=7oz&c5u3L;+.٨9|#,V@2 `w ?RY>ـBka@DFa8i)I&躍c rNK Tc6iG-c-c-]6aI!XdLJY< ڀҔ:I U[İD)Q 0iW( i.7+C%R[YU)f}w<CH7ʩ̘{l i3Z +626ةr]]Pk^JLoĻܓ'in7iד!ruN!<5˶­]Cלb~sƬl]"Ԝ|7p,+=:\S9gtE gXGoݑ:yLBՓOf<&WJvtPSNƾ?hҦ>@I oBԻX}oq)^ b],xn|uyymk4N=TéC_*쉱ڙLj[m9 -(Ec%/ZT2o/v4tH&%K +][ʔLX| +Sp"*jYHe)}m*}YX>KM`KhѢuа3UZkP=vA o%F]vvz[iwhβ0.j7LU1yFt:4d8Zirpw$cNuiV"Al"o1(ylbS1 oljWYހX\_(ޜ}FmݷB?Db{lQH07ϙrάcHP4W '|U5-Ab=^oI`-{V251%.ū8Faoyq==Bo,0 (3NnEvJ- QeB,Y`fPԂi0VU?yCU~)m`5 +),0 HN*$Ԁ qn9͉ѧa{DM8p8p4j +BJCOv_uԸŠav89"[3߾ϵT'ܵG=}"^^49~l>kl:uRnw)fϣT=gJ+\3 +{'39~$*ա9{0 hi*"'),čշIry WZbZk +.F?GAeqyqȦmƚ6$Ζk'Gl,J&fNΎ#86I3'8*I QLEW=֥MMRچPڶ9RCbex6cw۝{c4G$F?boKwfvO +)wN^7V v[tBW7];̷.= ֻ8~.\Q~+/JÜH HӞ}?w|}\>?#,El@tyA,Շbyv{ͼ{>tjiti69˒kCT w PG<+PB +i($!9@5(>{ Q>P hhf'LQeYalr2ƏEEi$(*aC*v7 爥glp,t\8SiDS o[BUG54'ȵTdžh+ * +c4'Х=ѸꅚC_>l|$'oj׫vSC^tvvC Dp<,GGVACl P3;ļsI2BC{؅]0WGBttCUa#w?(iC쪯G{dTU; +z\p CN;-Bd8=2zɡwn}cp ߃ix^oalv;]Eտx>vj4=Э3RiKXV!fd½UT6UzhWP2?`eS%i&'mf_rVbOX hMlas3TnƒҞvЂLAgfRm"]ml ,tL8 2-*2ÕY>2E)-aX]n*Lx1E$kmЏ ߋXd bpga{0fEY%$ș9bustʝt{/4zUsǮ&fO+k([Eg)iIBɀZ + [ʂW +W6WKklz /-!\¦QhAT3` &6XIF7'EȂvTit$%C)8nDsclo +d-D..b:-<6TRbb._(bA$ +k\)%ZmKhɖv4%I7J-Jm8N%96<# #7oK1m9@XRds +˘wdeq*Q[BB7'p\0Brf$X-Pg$暀6]YՋ).B"23\9nCt<8g|0B -NECk__Zp IH6>%}uCDkti7q"C7՞_}/kyɦiȧcRe=UWn )0d/j0>u$C2uQm`IVX[-$3z4ҟ'"tj{ђ9NKފM4~Q +&\O ,XR/?8fE69uShN&$D.tpD r" 1ЂHTfYUS36{휚6*%ۥ? 肌cƥ&~0=P!'qv'#"a;4RB6cNG- 3߹#81!Z 0,O~ +T {Ǥu@#c&l'jLǐ2qD?] +]nj +xYTPK@Ųi9W[پjtF̨6j) 9J[CZrܞj(g Mm)H@y(d=9`4tPO)o'} Jq&i=V `B+))C|_4( MH"XB +vHVQ YUbWyQr9#s??mE-X\!;nS4CVo +( S )Dbwkѻ2rI:?|賠%:o/ʢf^"5@ nBcX'-Sv.?6S`[T"t36 +xj$y2˄6 KkotR6%7ꊳ%W./;cڐ4(JL9+;H(6, +eLREfѼƭ3Z Mo7f7ݠxפQ.'49(M;om&D݇znJ,aqȈGGgݓ}/#˸C걍ȏ0K?JH +oE"ǎ&ud\(ZDsxʾ\5@3gs(Uv|C'lޤ5W*a.PI>nqak.ZVbH[w[&%uO䄕FvL@^)vC;ˮ!A9RN\>2GbW_%c}\) oUc\0.Gذneϝȭ@TӞeH. XJR1<t\Zz7 K8 +_<#L7E@޼|ej#'ϗƖ\rnw\Kf—o\ǐ2n{Y ˈq 1j}aԦI9"R6[01uf,[b=Tn.-BVl 8=@ssLGdP:lY+eO2C}yhk0[0miTx"f2/Q}.aBp.B5\XVWcgg!aא.~nQ˄IM8|$)Kp]oHu +Z`30xAzXBI_Ӡ7ZT)lG8iB˺&Icq*=4D7gxYӳp oZ!M3S\[[uߐ"5- BKwuڅs~Y&V[iPQvV3z>8-lL"y aU ؀VX ydͬ=nBEjPx]ٵ;q:IؿnX>&Z_buxߘnƂ {osU.:SC gwaZݥgM֕sJvdZuQ$lxbQIOUz*ZX^ևIi|+;qNV:CB=loP5F8 )M\CR n cʙ JX!܅ + qqÓf1k8K#LrZɿ!iF'L[9lsWqo^jjw߱#TUM-/EkYCk]0]hʗfβ:Y0 x\|{Vre7.0`1[BIWKŒ]z_A%en͂bbՍ'N.6>Ʀ כe`ؑc[I솔i/Ҭ`-uŰu\\NAsB!M ?:` @]s4QZDpe(riV~h~P=x,s^vC+7~/=Tq9!y_}̤ +{H(dx̌  O߆H%:>-0@41uƂ'8g&˥فLE|}cO-sCD&}N jPv!P I4 JN#E S + Ɓ\<,;bL*Wm(ѷ~e)^Ca҅R"R5n*b4 DY#,Hr~1w7 +f]LCb{ƴQ)_߄ʪq6 +xGGZgЕW,UI]?ɔƙ}'ÊaɫZn1 1945m8zs}lBP[ۀH%K\Iȵ`Wl(RuVEʻ/v+#=NV9}] ѢN`i9:&~KۖuG(CG]C/r<<{H1lτNu|^DߨnP`;OkBʄ :l:WadQWAbQW4LC`!!!CfCdAfAdAdAW፟dzx>ǔH痷PX:6H1L>{c5&ehhSƮ7_ӫֳA.H)|$WX2(L4P~*!<Ƞ806dB(&sLP7XIiNX^G<%_Obb +9>DGskỢyDG(1~c.XP>6 ;N@CW)=NSfo7 &FL PM}:RvUȦF -)MsvhDxVdmLRx`h֑1tLB:{,ޔn{#M9x~P +z(l +\hMq%ڕk+\U?D'Zf~{+v +v;Y /nفɞ}y0nnUQ\:-5,3|2be +f l|yJRA Ɣ&MsV ̱N,+ғڑMa}9DU~߭+(7=8lrlWGEkx/t>n3vh"uQ|ȠwrY0M.cܟuv3'R^fA9u3WG\n3M' Y+/T8kz+Ho\HX`Ўݛ +泀?AZvbz pIX_X@eKJ/HXt,m8E$b%s$KV% W@*2 lH,W$lm5{Fv 緡L΃JFOdֲPj)uX" +Žۅ KXEsu;,<E'b|??;ɫ6m5%; :L%g̐ +5,uMJ[yomf}m Btx$xdxpD2D7x8A}? c_Vg{}LH]&6o1 ¾"MG blW+;f}v$}j5%N̫Kڰ0ea6vPaEJzyp9oMe̺kdnDD4] +p>$&ʇȠ 2T6udXEX*[jI.Za/W7:{6[#;` rٺDu[wRxinӀ[ppjqLk%XQK.lx*'3~mHfiΩ88ZEz$g.  Xk^ +U]pa?Â~{mٯ5t9$s%e(m,W N8' +xR[#dYL'VX5 >M *0RWi=ϑzPгP/e2}'B?Х+_Zպ O3_e; OZ_v>-A`d%ӰQ<@ ~}@8wc)o0xemC$jx ` ضm>$R?s m7V2?BMT o־N$vȯK* f@>(0ɘ`ٿc7*$I(PR'm$ۯ{ :T$GH%%)pиosJ.k^kTɝ8aӸp?̪6PM^FmbKS KD c:FdFpg1wٻA?͕e"[]򶯝zThz18|c:`ulO= +uS1otE% +JRDs673>hU}sH೦"|.vAwh~(rHv;8.if7Dqԫa|4f/eEg퀡PMLZOpM}RY@սE+dyq&hA-x^K)yWM+p|n誤 WWzkքϦNIZh#-ޅ/1:p*!쳴 xΝ<L؅ׇU]SZk˸j'n=M[G/ɽidT`mU]X.9LCkUm &idK~ܴkP91F"2MK.m"Wg`Iѭ^w$OԺ&]&{&Wę١$Ӯs|pY9 'goҾyyI~X/ԭexl {)`Y7)SR?qp"nDZR1]hbz:;ԑHl"62FaHn>GUh]ip{Ôi4wA[`,e7y9jw/kr)Ȣ` +sSp +߉Њ[7h'oEݎk8]O^vT>]W يcja  +-CR!?##nL ݞpz.$Yցd/zqu܀;-;Ԓ0֍X̳YE +Dշ雈wҍnj4w.^գgq 3YS:!aFn`֓'FY>}܄(̌*Wy3ƋƗ_᛭z}r`42Z!<4UajVT܏|ʢjC*-z6%j.'Pj[QC/8n (~B1T d tb@""pC,.K10 *2[d#0i"aU =őP̙Ph=B{dk]kyV뵺 +߿tGD3 `l(dmgd%%(?`S 뭲ofLO$@"v) /<"Fl`:޲BgomuXfS +U{٢sZڵ{mG.q=qG7 էL Qw8Fr(xKjTWD&3̟]Wh.fP]Az2ZPKQy8SƝRj <ߏy](җ,jiv Rǚѝ)>21Q{Ko'_>L;VIVSWAIu6DY#A{4WcQB*@Cժ`jZ+*AѮAnj9@#ۙ3{/2ʨ=~u:dU̇ +a{s:U?`wU3まu:aUOmtx{g@ǣ߬Bꗷ(ā"G E[szChs U*aÉ}Zq#5(z! n!D#* +Ł += S={ +z(s)`G!1Ԇo D@#x:C J읋+ptuQJq`=*}Lj􅉧RFXT&S7'ג ,@&"z|4δcG(b[/K31f@N8B;HX'll,;BM R:/U1lIƓ"I6E>_zm}r$mw^ S\[u4-3VG˒ӈCh%lStn-Az%{A+ex<$Z")7ZFm@<&>8uS "DZ,l3܋bLtNnEhmJ0ZǍ"uS=3!}:!Gg-ˉ͔f +p:#ݤ$J~>MLt +SZ''Ee?ɇeoe鈭2|Z%$uf!L<[ѱYBtxe!PG%b%h@›Oy4Bjco'‚|l=Pj;XjW03Kuc, "cnT; .6XQG]Xe="˜[䅫{`c"~;.@MeXlkH8#ǖ#P[r%Fnj7*3 >V>=}|mz!`{`n,`Tˎs]G!_ɅN!lŲͬ$8#T9<̨ 4x#lzHR,#8-ڠRz0c/[bYɏ |7nؓfYYys pQyCsVݪAsg셗BĕpBФU`wؾLi>)x&a,BA_X練}mVny˾ 8IZ `ys侺AϰQRnV={C^,;^(czCvIݵڰ{a1⁅3j̼2C_y&LQt^ُXWڰ":YҚE*ۛ Cc|($^|(v"Jr)P@V1KTleVJCW|`g$3Rd:(}`1y*8߻BM.YUQ̩+DÓn~z{{~#VYӌ` +|7$7A _wC/+-q= ؛CdXcbF3_?|sB-O\8cGBQڑ<ذE@q,oUm_(B,1h,9V:'W4gccyuM6},~Hi2j?0 |tQ҇Vnjes b!yUiS]rpZٵ7ŠҺT@+iZ-V?Sةϓ *!Hߏ\rW讐`Β? ){( \p3C>EW]zyF (|8vK*5.$e]e#҂Ցz.XR:V$2o ڭlDA z )ڧ6@kfrwNSW&A 87xDQ!/x +Ș0R3a + *K LlEnqcKdTa%7l2.:է{}BF~:f`R{@3T쫩֙Om,78iRJ6S2bBe׻lx Hi HlqWZ4CD;=E./_ƑF^@4dT`iZ;TAcKbZ|“ +ZC iŴ w,MRJ~p)\3an?' lO%ʛEy?+E|Cc^#iͅ5|$*{p&{j`5iC^8>H1$zmt +X@@O.lkx $w|v LlH/ c,yBd +ӣ ă ͱ8uvc^4?/2$%qkrh9ɰFG|KgL׃|u|`v=vGuF=m[UbŠ ^07ƢŧI8?@)ԡb)̒&.ڼx0mVeRf_״%l.VWΟ􅭃-7Stbބii0d8~"kR,iB=qIeۄ(u`h̶:P2MH:׫V>ܦ),uakL9HhlóWrfLK6cq~h?2`Qpr*#=܋v +MͿ=7=9Ee82ՓX޳?j"&N氛A@.D-agg Gr旸KO]/y{黬iIݯIu?- +ii O43m1S?ْ#krThX: ]HPܭ{J"Rol/ѣk~ҥ.hnٶF˜SXtlw Jv +B A¥ {kGCpqt+*GiHfOքk=ӏ֔4δ Y1Yi)xb#;* t!5բ +e2`fU?K/ѱ[`S6Nw5c N k3tth$l%HI@)P cqt!obAɉ9N`f{M'`2ݓ0Og%mydA_SmW]ZrPt G#ac]YK l0.cnaӲ_es_ b0)i^7'LԆÃ0U|ۯ0<,#{f>(Br &9X|j·aF|TB:QUMMI_RHFW+){7aT)!At2d\QL-`^E*J]h8kܞJЃ-Lm^D1<-@bi"iXl0exZ'E눰ܝbRj N=x)}dnB`v | "y|вj,IXXໍ׿EV]L'<D@4"i |aS2TII9-I}hS k_>#IAA.082 9`I|qt?._9GtWʔ>uLDW݀!a<(j? uѼmOÃ>p]CEޑG~K*?mrX Y\hbr?s8yX`L\Z}>-d'cH|P]Es9FLW*q̈@CwY8%*)CƎ&l}8J{J81.x[aF(eHfSXwq9ozSUUK's pBgqȖ͖E^8ywDuӎ8+BN~Oxr +" +D-F9M +ǥ?MO`+I{ά;r "48j I(H|zcVZQorƤHmTEsgTl-IXսբb +f֦΢ίNro,kg]L -p~\^zL%0u=֌&O!~q]?T|yɝ0齚3뉌LcH';:MH#著(W)~Q3~Q}SzNzXڏKv +[t>Pz["EiL'D$U][ՏzގWtO]j̈́N#{]~&BiτD3Ӓ8gFn5l#e(igFk42N&DRFҏ n#ISovKign?E.%clj/WbbKn'YEzg3&فCs_ʺt!r 7*;ivK'&GQ_"[BA˒,ߊIqTd, +,ĨR*~u)C&Mɓ,ov&-bDǬ͘vr9uU :M* lS\G!C1u*e+.N$/g\9$iE#T!Wn+$abDK +gDX5TeWrU$'褎鷯V0Ƃ6\fz;pd{|,92j}w UUۨӳHi8fBHVC7YdFu%hjO5:ʩDaa«>d/hdCeʬ-V >`jVعմ\FԚaelF0фٕo<{0q.Jy((jOđ< {"B_;0Ȫw& 5SxA%7>jOsU1\HrAhU|=j +?8:qȎZPgډ*`a|VP19T<*,yE-qV|{h&[`+TeMon̈́jHG)4T:!}A[Vy8N;nӲCt;ci*\JTm2Z,˾,&Ǽm!@VpQ |ƈV 55m߶$+T-thu͗u"Mc`^+J]9h?ҸjȪ̷7!WUf;Kzx=Ć(gD綊TxEz)S)W ;CjRjsDYR'3x$hh'"ak&vT2Ee_E +1RE8wKYNnNk@R+r)8/(,֣qlPZHK&zDI0.j@4W+fĺ[ ؛v&$oJ\ &I/ pY9? S.eo  cciW[:VK4[BPXڭ'8D9I+N۔1rE W7Db=cH9L.i}_WkP7WJbY;kϾ&ѻkmڋEV<_nNd^.&S9uD~ȧ9Bfzn9"p;P4~_K-iuA$|Apx;>;$ gK,`k"vuʯn`TJiy *UZr?WMsHe1"``K.E0 xw ¢I˭dsڨyfEGnk06%&O1a|6J_ߘppC0GADx?ߌuX=?C)I٥^ a8 qVrR +ɥ|Rw#SjWJJHO sB۵"E'b_Jw(ONUv5p}Q k'#W C~|"XOy(,2_=]zx%xF|r6,[#ZsL--Fô7@ؐ 9hByp)5:|kq&,| S\!HQ9CP->;M&iKmO +M1s|GPgQZb['*P~,%x|6 }8|f !|2S̊a=,V  xx< xF5xG6 +=2D !:P#$$GUG,Ix`J4|aYp0D]Ѡ[rEH]VvpGë.za%.V/%?f$2{ZԆV/>O4Ϧ}~8I,f~LۂG=@4M}_" +j0i;k۱#j4 +4PvUP4U8|~CW!G=ebT/ӢߏT$M)>@ۋ3C0UUY?@L+3lVpVTGztklU*ZDnq-C.O;y֘-s<w^.->;7.ՆTdGiV uZl[̼UJUf@N/ +A0> f?gmtd&vr$/vB$^/$ y|9ƀG&UʨQ ]/qNh"r?_Dsy⍐#И5x&KBh0~]r=k鐹cbhRXgI 0G/1JbD/1gd26VDM"ȝ['x4&"R윚RCl{|Ó:C b0tZ_}ȄUcplq-TIqE.q-1֪L_l9zT{)](* :)ΰߗ +,ML,;>҅6n,hU k].}h*ƠIU1ay\^+ \~_Lޮk;Xrf/o;sVMk%?o"; Ze84OtںPv"&ȃR^!1_3Nd`zF} >a9ꅺY150+g }-=$1rJ)1?4]@p#̵_%$ 16y. [uFn֊;}kckT;sܩu(S6mU.g6oo/`07L( &ο([r8}~8lWDH1GHwTo2(0O_*;!hf{\~۷85nmR#[ә9vQ&$ #۔(e$>"7b$<EK0E{IXk0LW1!L7~] bz#잎z˱IA6C_+*i |*v+MWg=gϗl@|Q%ɟS5QC>3vXJu,_Tĕ/eXSwN3Bۢ2w3;)Is2a=P=mA{2ZSYy4CX[g.РrfH)/nv^JU0ĩy1kɦ8[τ+8+6`H_Bef1hܘqbe9I<:@f鶫lɻ(͐Q%˙iY+;)$msXsj>봪0Agf$JYHȞ57/#&,.jեYȣ~C#УCKl#31FASbrBSVg{2Qz,*R ѕ+gNMCq}r5`'۠2[ԤjpXnH=K0_lzcVHZ\DavTlJL>SǿFZ5]ttEBCCtG, +t;@],GL$.T\TBj$ . #XuO#]Bae6?ٖЛF5AH;mmA& '+5\A(Sߐn0@H}~`j!0Dg}_*|~\umEa@Ď>ABd4@S>HXm|D5!oȗ- MZ Q_7H&BpF:Mjy&5AfgKH<ܷ̋ᑨkEɟ:ooG~Qr/oJ<4_ 2uFl},z+]PbdGQa0GԤ%h!meGY:' .MK%X+:R45ǔwKm\ZC_ҌcHRZCKz)} +4f :"5YMe>_[Pz(sEyTV񾧒&9;mҭ~AGoκ%q}D=d"ھJԇzW?gM+Iû{Kv >Hm`?%g'bbjb?UCQxM1AO1~b# 3 +I P#t3̷3fyq=| +24{7V%'v!w4|,ʴGEY&2 MhhN>tyiA; KNtyUk=dٝ(gwyk??o-ZsD2`}sg;[X;W!*N["(~$! +CjRZQK¨VE<*a^ꗛwoMV_u~4XwhCPao:GRʊTada5jcW^yn5<xWo׽>cڼ[WZY;QXPwc{vwrwv5%* .k_:Cc-5[-=1Y ȶoו^[M +W/I,Iw/m =;IO]m&tcwJO N/b:1G* ,Dvܬc07d̞=#n<>';)^m%`s,(%ЅaSV"ȥ:Hܿ}.nK`aANS)->Wp +<2rDK'Gw;TZ9/1p!7DFWiʑK S);R+*1BKؗͮj^8/h3\n5/߶N3d~rf\l8T?:]pV.ZJ3;u]Vvrl%ϻQ1ˏV/'}|=RO`M=rHO6i[BR}W%UYޔ6&fy2y$/Mzgkg$ȱd¶/ndN7w3U7Q(1 \L:Aj{o֜Iok3w㴘.@c9Y:Wc.iSʤ%lS\a>kS_~qS5}w>_7:DZL$ˣi,fy(~ڷPAa3uʼͳ C!zEF|̞B01Ϻٕbv:%w7sP4U0lNvTRQ&7S$݅cd{%ک7.gZEn_Y۟Zi'Zn5DC"rSFi}뺮&8unO)œzIЯZ^G8=ꩺN0B +r :p4h}:M]M)Iby-oY^X(9 Tnw tN?p I&;u,DlTo/!huSI0^Z0L׍,\(x׹9w5׮MQs]fڽy2 fm;qЫx[;Ya#k@Qbf. +∫Y'! ?3j 2jɑX0;6$ȡ9.Id𐿸nvx:zo1g\θpV!YAy))ҖY]eTLJ/srF٩8Si_8ݕxv/2vE&ۏ\۹ddU-ՏиU/Y)gX[湖SY9H-V +Uׄ !X߀HA{{1=Ns:.N319sdJA?VV[p؇Vz^aŁ&}DGz漭'b"R3fs-gw[n%zQO&mB*=O]˧^Ԕ\?L?\ +"ɻ%a>紎i{8zW{e6?L()i\yd Jr5Bd9D4ڙf%mXʃٴ-q2LV+*`~uJ˯͏~u_3cZ \J +CeXYYAɃ|OV%;l~@c'~Sz_BY2jJ(K+C:_YFw;'GEI#;J&'YM jB ( QFP2vk9D-$ĂPf\*B=[h !i )zYMD0H&$ @E$/1I& G-X.q;th @fo]7څĺCoCdߡ5-Îʉ[SхN#^ +&[21?ȃhKS"=OEbEDGP#DziJ̴z2X<mWKf +Hl +ETa$:\ E::)B( 'E9X04@pd)ˎ;? q\Zu` ծ^c4x4ռ6,1H->Iܦi4d{e/j̼f/68]U8ZPM)~)4cNKN{O{NʻOr,qq m_-Ѯ E5<&xJ  ~DhS_}kk/o+o-o)o.o*o,o(ن~ |ፐCX]) g j|uyz:1f[ e0P5ZâR-6bOF1w>:0 17{g-g X|x;GT Hq?t2d0A^? 2XL%>f}8:&6& +Vמc>2덢]zҎBjSZ~Κ):m_4+L/f` ++R! E8&F:xUG\RՈ/^\C'&WB~IEuO<ЍihC Pu0 pm +d1M,]$Y. A<~l +P> 03/ M[I@T3 ŐrH)A L٤y%/co+H|!4*7Ag)7[m8IC a M֭m`蘂m\DcK7)|!&gAAT;iˀ*?T4ɀ|_HF(QCC_z*sDh[wTj7V:џ臭yE̽^SLuOk{wg *ŕ_l#_DtpKgH?f7p\H<ǩu0dR2 +(l *1^EU*cY<\*yYCH| +آ[(%^_R%_IUFҘE z݋{GU| 6sHy#qjpwWBw.5+lsɜH`BX .XR!.)He!=\u33|He'?l.[-L 2+`z*0yQQLYdHT<"K&SúxG}q7jju|"5@Km&Ksz,3$ԅTtXJ腰HX J3@]pK_B'7Rv5iښm&>暄=Ƭi8t/!G֘䤞D4Ƣb uS3>[8ªb/sIa/edCuͭޘ>>`aGS ׹rGG[6c 0߁+6Kt[Աޡ-&ԋ2]1+yxk6fSۏ۫o燴mol/3Щm w u vgw/޽ tju.~ X1H`BX0<_ sm~0Ӳ&R#A*/j|E+*F<0\N{gx3!#Z.*,:1Bf+Je0Śeؠn:j["rNfٝ'r'Uw#!jE'7;aG(0+#<2+E<Ϋd͑`ʲB`$'~r) t'{>#!Y"u%0LeYx{JY{6ˁ+<2*&r c?l" $޽8`cC5C/ÓWD=3Lz"Q$_T1dw)I?Nҟ0/ 2IP7D=OGP:xjDadrV6K>Ct¥/>h W #71ȃxA_vpeJ_qƜ9ϤlҚU̪c/a}Iٔg/>]Du5+fy}~,{}Qo4TC4xϡZj4_nwEpU}!^|2׊/R B_~? `c'ԥݰΣfK^;|ASs/u +?v_X(!a28^80s:2s+smaZjз+PNuS)xWUe~ے uuܠg 6㩊kEq>y@f;Al'%%>l%8Tv[Vjo2+=|cVQW:aNA{;9|ynP&-sZH"0NA{[->}U[:CG̨4B )F̰+{&䚡_<[ξL{~l +R8B Ohl !/dЅhO93ڂ1'n w3gЕv9av? <,g 1gTjؿ#Epyo>_DdJ-6+?h.]1[@l)y"4s{eL6@ Z=([pB1O "hyB&7j잀=?7phYB1#-Pu˽O0[97[ +M@O,/RuWGE'ܨi%ht1;j_qȇ~M}LIY*RǗ[q#ꥻq_ pe'n4<6R~bJ_@9}`UF;H!G'DOx(9S11FmKik_6Y:twwe.z`w[7w=Л+9$~6>wӳѾ ^ +̄4߰5>̷qaW! }Xb[g&%{%qY=hЇǠA/NmۚUC}tMյE +\s(f`wg r 8 =7/[~WU,_;hu|2@M?>`=Ȏ;7{o7/Fo<75|j?\'?^fD_4pPGgOB#g/O?L? ?~ +(~0@'-ß&\WOn`|Doy׼Mow@\7$xעq>Ye.ulu߽ _j{Ϩ{-ﵖuսu j) ZEh# 1ݠkz9\%ti 6A.XlmemTછSO)1ef+o%UfvA&SkggdyE )$s*TԠ;b @:(lk y Љac% +N `x { zTMzD `|Dt9<ߛ!{ gM-*xӥn=[n?SZSvp$5SU 1Eݒ.UV(FZf1󄌑iqQF#a oe !nX=r\bDlבWn-cF'oe`x"hǻu{;?35w/UwN\ӧHm-mIž`>^bj`žDʾ(M<_^ξL mz+wR+iƾk~vf#rWK "'ƌF3!==Ö 7mW0FԽt=t!|7<1Zl2 po'_3f<,a]GFphTh8P귀ϋӅ ) B V3( w F'mo.'f[g;)z( c_F4=R*$(r?'qkn˯5,^:U;)IN ňUH%%D$2R0Fm(Aa2U1_^K7lO}wC܍;0ձ逪w4^rl~3DѕTiwJra%W5Wѿ7͡HˀW9 +:L3 + itnArh3=Зok7wp"L!L,'wxlR)39(wTDKwuwL.wv¯-l kc^HPE<𷲘^~Rur_'ws)o +Di1^.X7_,-erhF!xԂ0bV`j1 H%|AACncgsi7tO'qACb@,Uq4G 949)m5.C'd!"LBQ6$Q 6]TTVVP#Y)zPGYq:):m,Me~vƾ7‪mņHGRה +MU5Mm h)=e=MN[MR=Ӕ4yZZ;fN_E +9}&[]ê:z(?nuS4]3C-eUE(j,-=nVԟ{jL--x-umY9MI4uIb`+ k0ij)Rli%b**z +:jcn*Ο, B蜟>BWALBnzFnh)+j&WEr(z,(H +ƨ\to;9 u:@dM" Ut̻dj~Є*AYk%]KI[-OSAKG9xuuEOv5*^Em.psSW: +rDt$^5bs/_i+Y%: ++p8 +OǜcrOm-?dhI4-CWKSKWmg$0^KCD-u\gqx>)863$YgWIˣ(LW/vq+&o10S5LI4 \/a@Z ӼK$Bg؝s+}yΟcP6w)bOҰ^ MQD?C xE|X1ר$bQ6JsTK!brHR%Neƀ_˻_nNLhS~u&8؁Ah ƏH<%BY >ܝ,vϘؚXĘ;jf Ŗ11 YN\%Lj~%&'~EԨK|#rnf&,f̢؄ct$ދ1hcx"%q8*@$i'>Aei'^b*SB9M\HIű)Y+-V^VSzQ KoerҫHltpMGR1SƜsJɱR䂩q$.y5Y}e!A=,/Mw 55v׿MRSvhR`hlESxo0U=nZ) {>XG ڢ Θƪn{؜/wnT5U*ARliLJOCEU-Ζgpox4wYMnx o{Q)zUB:M񡕇yS9yI Y~)&6d˕{^5Uhr)>=jfc-M[-v7}CG 52ht T1}6KҦ s frU'[DIQ+h:mdf2ɲaW)*iZvXTYNuK@l ͊QU6- j뉧=Em]Id%vjtΟ+X! f [KM(~6M:a{jLceb|,|ۅ+b7 ',]M=T!s=F;֔e?Ím$mZnlEds鸝36?6Nhh%Y^dA^g[M)-#דioK¤׋3]`;۴Nܤ+t4˹&TU$G0I)skn GTM%\D17(e`§?~3ߢvNY7,~Ww`4@78 #}erʸ/Bf%H +\GkTtmoqEK/3 ee|P'>d>=*w'n^H4EWFBu +lnE @]j Ρ|V@fd`` =2M v?x5ē{dezy>N!-B=p-&@΁_m.7Ng;P&ge0צ(X}@&mptAX)D0G"F'j{OF'q k0e"Ā{b#  [-dήly'eP{&@4nLqbꭜ ̱@Ks_l(,-?iN D:md8t,BJBrf2 +d-MpFN|"m*y.t?*0O +D# @/>rQ^>9R9[N6Pf8TilP`N6|#؆~>9_y-nqx@ҰBc +NB .I·vSnsa`mP)UbVI^#KMhC]'ҭ=0VLR$P4 O.`$V!E`KO"?NVRᵚ;p S #ʖBNy.$C6wUQ#&ۀe4N+ۀ2U7Fe|!_vF2RLt{~"0Y_2$ٿH(U A&aC9XhNWr稍F #Ųbs ֣El`{!>G{A` PA e Stzd,q }ߴ"7{7ȝMp=P-»6S}p"/w9>\3ϴ4~0C̿!Pw!LМilN\("hJrnΑo~ʰ"dkX|0͠;uCU'l ujQ_G?R#c=-Ba%Ƿ$ *EЂ?9fG\Uq֓-"dKovw z ل]hE9͘z JQ|> btZU Zhe_鑗Q S $^ȼ`8p Wnjd$Jo'*Ǯ X/ |R(ErWova.P̋3S. u2?Q{h2ofrP"Z]`>RSPY +(cExi'l~Lu 3 +Ṿ81r0ZAYzqEd&u7hB,|2N:7R=*w+&`ns&WMAzj_7@y +Ɏ{٧L~h+&0% @gRq_L̐+֡/+^@^ȗk;t[MTTJغ$]msV>`VDXXb ۓC6a,5v:s6*ҳŘ.FD?"%z/at)#‚nVQ"`m\.F{Hm#:#eV4I^0JA vC̓wTthx&N HCL^O9Bta/m_zE"ŸX` ݑ'#4Z7x#S9Ei:%^h2O)ҽGR(oR=㱽TBj$:n̢%RJ_QiψGi2X@&IUʠQ'JZXdvM"&ե7}[OaR7$=&VZ FH+qI~CiݭoHO/6$k䐈mUx2~ViW~s] 9`yTNZFH|p  oh_I悴]-l<4lKVRK]se2s%VV1O!-w??yji9jߛ][fi "YT&*[}$ex`Sn;,Ȯls8.$88%j/Q0M$rKIKJay)"StD F-R5Sl.f%<%<%<KZJse`r1)#S#S#&KbnQ.ǤLaLeO6R.!R;4N:Brv/NKaēɑF;(Qhq #>2L2.a aYD{7|ɞT!36\@w,$V}8?'᯦fA'yT04퓖pm+҄*(ԥO=9 | `6>Wu2wKPcKVQ;~C*8EIEt| 8}^wdȇR)@,dc,y/̵)>. ߟ}8bV) 쵓X˔š.xyP4)̐PgR~-0_(KT(R jO:,oHS vES +X~ +PP"&ʑQ<6ʫR٠! +נt ^{@]=@JSQ6$Ȋ˧| +]Th_᳧z +!SZȡǼC"nɅe!^y^xES&7Hק_% +_R8XG},7QϥnR=jtyţXGz%XEX j%SD~v3 YnO+ mNnT\~3ʠ5؁dO\ ~m#=GFv(Ӂ *5Z]tU]MrmS^m}JQ^>|e4X}! !}X#|p⭨x/? b^~y!+4vDSg7xE!rkBv +XOUխctO܈~S=_9x/_mٳn^\RiEs6=1·ɠwBqzR(W /$9*m#$a ԨL\W5%dG@pKqH t{BkoP{ +=dK#nţd<11bx")J0^69,ܒ.y!1DX ex0̠jc->l9ė oGb$v3?Ѭg[A臾p/[5 3+E"6%bA]\1'dfn.8rrEo+C핪ZQ'6*kil3jk٫ F I]׭d +?ɢS]My(Lwu ̴NXx͠ NVq?D]YV,BZ:o땒5#@.WjhQ_ş _Ϳ?}Ss[d k +])H;vǰp0@ +ڦm1!tK +MM9ڦpRFbfc ͪ-$ Tkp-d`eQugGr<,SF2lS$TA_^꥔-۞ K^,mUXڀaK]/WgKi;vԫ5vQO-сΒxվ*,i}TbޚpGM{ׄgLdSr +eeb’D: I̊. T-"bQlt`i損nW5,C[Br 5b[ߒgaAQXjnP++rJ#14H20feVMsb끝q%QBĥ$'9/-l-:7[[>2< # :M3}Ӻ̐v k4d>=VKo駳\o{ +)w4h;cF\Rųo$>iO\_ M߯`I`>SN1Tt][q4 +cT0:׭llȆzH<aVJdz!IXdNAM( 1r(f6"Icmb"IN}&jjJ SpRI +I`1p:?J "[)5Sb(8:DzN]{R[*m푚㡄.%a,IޢX |\mX*W nEX*9.闚n<#o7|)%icwZɳ\| bk\#a쫧+g^nKW˥=ˌE#Iqu݆la| P7,㙢gxY0>X (TZDoo%xBm{AKZMr0L4Z`Ygا_ G};DwP6/2# Wa%;HHLe3rl2ۧKnu}lt4[56L4/¼wikixLda3Ut1A4!:]Dc]W\q Q{>ʾdʡ2^zYλ 6sSǢ XbNgɻc}7d*?h Z/#cOH t5 IaTRD4lNsC;p9TjA#A?@3A1`Y*X/㰒q^z$ˬ\m~C>KƯMwQ^+Cy>fjsQ +Fl>t+١ Uf!/S .ނ~FOomX~k! *gEOW 쫅Qxs'!oVfo(b2puKQ~oոCz7VV_hqp9^V:.%Tl̲?Z6%,b%bQA}HUw{lo"zf5z)$)6KPݲLi]SgBD/{eG֏^ؿYs'b|Z$4R`o(ECa +`mll"Fxy ocG*1[qp!7Ӫc~쮅q}3}C~Y绦.i%X]k3[+w#uw\jK#J2ka3{c`= aLԎ)Υ?6e;v혘L<;+BGz_~{k#urm.Ώ^:qc\ H6a?nY8o pΫleiYϳݠ0OxE?SRY__1ZnÔ3 ]ex{f`Ʒ; Ab4]I}'\ W i2m ԋB*~+ܵ6 U`jβf];l1U;O"wľ%j2|/?/2oA^o!z^Kj0_pJ>Kb<=|`WLJ>v]qy]XM퉾⥳ji0'J!g85$6aҤ嵨@*MllmQ(ʞBm:O_L%A}xJ6 + +兿P#ڳ;T%敔)ݍy\ >K3˳ItzS<IG2_|G_L7~j)0o]7:D|qfnq߶u wN6Es"Lތ<[ĿrlR?#Bi{UvGQ.i~OyUJJwy#Y־*|GP?RkݞG'/Rc}F , e.(]zM(˨FX~ETa&A(; ~͘_O7~uo>}}g?F[_'vBA?0+TWE+~oc߫ ~E%h[?rawUbHtؐu7"u0'.Vwњo]a ;m}kC!ejwt;=Ytk G̚?Rsqy?MGg.~ĶC_;O5tfoʄoH -APëχkR_uCgXGA3\^JN=W6%Qxϑ}z5C6ȎfotjeC?b] vln[>9l_t"KW_`o@:kr A9{eu +ׯ}Rܛ Xo=@#~!;Dpg*N\Mf<ZAy,nr?y`.ݎ|>1uf G1X Awbܥ B1| XU14F EbZF;FA1m SÇDć,F=faũxlClcCscv2?),e`o,fFe͌ObrQ cbz6)Gc<=ؗxT5a6N#o=wwK8bzynzs^›K:5`FXtVy=++;FS;T\ѫ>xh@*`)Ì:U$rҁ*n׏KҌC{Q;yC+l<+SKkN6s?ΏO;৐R$̈WĿĴ` 8Fؑ M0ށt21aǀOܐ";@dcc6 ovSyly1>>T4W`8TDo~Drcc17w(qDxYw(seo@N +d:):6ҎwHļc;x M߉|2&ŷ~(-TY׀'׊?pLj~,k} T|qk2nBOAh适ۃo +:_?DӃpc5n@p>mwΡ?[ܛ(e +%Ο:9P42?t +Q~D|ȢA-ViI.{S%..,M]巘hXGf#ʁ? G9RBYĴ>3La@,1ԒIQ]"~ռSՃp C /N‡0aD0ϋ{Kx!`G2'נ%5!pjZ"{h"}OKGHyl.;2YH{Ʒx6=W3Sԩ*}tr P.0@鱆4yXFMͪ @&13t54_Ī=>(Oz$j$ED0IhCBI6s86@1r89Ǜ|qUn-Z{yYywWWUW᧕;+`eQ,B:G9:9:Ó95&NNdvLFɀF;V#J NN~whټGyGdmVG<l mE7'̚+3fWen 蕿3WexVexVep X8&&sxf=14s,c0 #1Gy`y72]tT(Ԩ""gC`^̙ڊd7_DNDTYy9.%f'RY%Ԙ2g%YI+KcީxQn)/K#'y'T99ԤRr_Rl?.u0B#A]N0IT,60H0` 򘂒g,RbΊ90'9Ɯ#u'(Y3+)edM2e|j(ǟ2(IpT,d͓'S9uWΨ?}t9L$,!)au;VR]Nt;EVS]Nt ORad̈u4֭Sar) M9;!cn`E'xZZVȫVxIJ +#:#4LI#PSOcS!NŠTi'1B\0Z!W14Z+h)k{<}9Ys6ӎ-#۞}-4mU=d=9 +y9CN IJe+IiʪѶ`: ²V#2lNS Q}Xʔ~ezKNWzk뾦/32ήq֕7xɀR4.U}M֞Wqv5TP*R)qh+ +]-UEF VTĻl7yz8ozy8v莉֔L^9ڣ~&1tik+ӑgJoe*V\.QuXq1uUXyjrp.L]Mxor6O%vN]=N^9kVivI3Q5h)H!U|`#uXA|%zXK*$hF߼/TqΥ+SRxxG, #|L[`pmeP10t`ENj:ߴ/P}϶d ד !2inYFGʍ.IꈓpwWTDky϶9y(MrIޘuT" ׁU~DA4`ip[4Z]C>N[)JKcL bV[O +ZChB ثTJ6,Hº^}m!c\r.:Xpc,hLFkkfK}LVY6%ҮVWWO +ww]-bő1ZQW 7Vi5פ]Ǘ:6t3׎b7Вf&^G8=sb GŰP4nu9`b|}Tyt%n*Sc [AQĔQgcSU-5ݰmɅ~D>=EP۬vyum!9϶82ZCjRH!q=+A.YAB;@g~.,eXQ 1.yJIm'>md|z[좲(N []ZhrXCuQvkVƧh=⎰E&ш1;_Ic+[q^|B e@W_MoQ&F4hB']ڍ+jlU*`fs#d)Me]UDsz۱o YBuClcMIm?(:i`'KޢMj)ѩA]U՚"RҪMfwbDNLPS)hHJlQ +hUS֜ pERJO89-&{ts|$^UUd UL2sƻ R[ڼG$$d‘d>m J,jU 7sK3bXk.&3ߢWIZ=HZ\h},ғTYsfQΏWSa K]g T UU=$-RtNsaSH=uTYt&%5lLb2kf_͈ +HajcI_]SQfnt$^5'Вlr-A<&r}+;0hԵdnվ1t2A82oX;W4eI2 ?YQRy;=a)h.tF=쌯&o:Hu,Zr-un4ȓ7&<¥Cd(СlBx$&㰳QΙCZ_+2'];/jU:LsSX@@5'WI*kLBU2V\qjqs&]j.|4.H~>U*w=-rY?(юzum]91ÞQ[:r*8**m9V9x%$_!4]}_]MT0n=ȅ^BG"v.Ŭ9ȪVժbmT.^oG腿@Ypm6QYWSცl|MRZ;'031011BglDHW܇sF=>b CZSEٞ9u+Uyaxcu$۱rp-sjw'iDܩoRjg Sx, Sjz +YfsWM)[$iy$c1ebE)3k\E q5"TńjT1efD8dYNbZ_y<-魐C'[&^{PvZ(]fhY60%z*)nqSjI2ɛ?̪%;ak|Q(呀&rP7^Q)%^~ T:KYSsfAVp]QL)42ڳ` ǔJ>[c;M* +${Cop[:ő!Q%k}j_\<~J 4{&da< +#;ٙ3? t~ +? ,]Ptj4e0Q nUyUegfVj-=&߃ +Uf:J5JҫF.gKZ,ZOUkNՕgh@b}[lk֢ +w%,* kETQ%YK{8lYFH1kks"3"HX~?' .*òRlQj˽gP8"̵\Gtr +wy"cjMa:xS33i?^cFDDP͑_S(FPBIEv +Ww}VB!lS驘N%g3v>u +GR~v}S2+&Νɘ1d[_kDA,ۊDhl cǧbF0fkҍ8mibL:Rq{Y xi"ͪ n{Qڈ b֩->wiami& ++Z3ovR;wcm񦹞GΞcTll'5y  9b*9r>< s.9S:/5#p lYۃɱȹ`zr2r>*ŀTԥtڅ'eϛ KQݱ1_܅oQ,hJ !+\I-|?P`AM9'ar QQ(߂K9Vqq/&us-_ 9jA2'VB^X@jv5 ++]][Y Ya:j/<?$ d:к\;E1mvI 4EJddMHXȃje+(!%v`3K'5 .mhoQSM-19 &>=##9A ToKf,ɝlcmlMr0_]0,gə! ޺l/0dمlHڳ t, qyDXoƷ|4vUw k۶bxt޽MI`:? a  0Q?90X?s;C;n}BCPXD&7DK ɣ84b;@Ӥ=>F߮'p7$Dz 1rav^0"h Isb' H8.ƄQX{9tr %߮[QXbv&B`Lx PzƟ2Iߡ]1WzM8 & 5e;D#K)#o"unVRb|MYꘝ1>b맷3٘>R˳__W#*@{Z Q۟ǐ[{aʘ2@+}-2 ScϹ{/p@`w=.`w>VH~vۑ>ZHΙ +m#ʛ[vRs|@2/x}}w3yTl8c5Q6٢EtE7 +vE=ڱII o_ +! +L}\ې[vrlUL2:q8֪"}tTu^q9pEi*|iQ}Qw|\A,~5IRG%;"qJ;uNGPRuy +^R>Ɖbq1 6\@P$[5SyoW%F+ObQ9eYYf?Oã_ӦN1^G]ok + +oݸ[ʴn%usRb"l' +>(OA!Ƣ+oKGȺ6 6m6:k8Msi) iX1>cĩm]ESIcYMYk}dLv*gnsz~JLuq)}ЋrVL: +!9]؂#9U."#Y\b@laE[ry-\ +f.s$:7@E/qʞAYݗWjA!H`r;6`_&Lr/}vmN.EI4S* +SMسjj~~vfZ⶗Pw7. +iŸ :AxAPJ"&.&¸PCJ.F%>Xyu! tN|HʥC6zA1}9 O|H(w=.T΃oszؐn?ul"+? +]uЪ']& RюTRu ܥTeX]ÍgfC_%CV}$3GK`XSټ雊?Ki"Q#LCūbw1Xj*lmMDLCMTxGÝ"ءDز8%ˉhI@ʴnnZu%Z=Bs*$t|RpU>QJЁ-&-3."Plaՙ@##kI6lom}.žJ_ A˔wk]F6j+U!nBt^Sfäk Ѧdk3GZJj%w78F]8]u2~2d^ $Y/ 3*) jLKW'^5mқm)\02eN2ÍZZR]/:`{g,(R<從gSysIdzMi,~'O͗fUtu~ ':Axksc]a.k ,Pu 3,wUzN,w/.^m 2 +A @˓M +PGW" xUaU A%A{-cT-(iij,9ՁκbgJ~vCmZBMNҎLṫ%Ь9a +Fl)Vˉy,8WZW+ W]M:mFL +)CM>d^i&IgNR߶`Xɧ#f_F -0[T! W;⭙I +v{(_ź _B(]oCBt&^)%8,܃ +P7n&]޷2Cx127B "jD'#sR8ǜOq~ywud>`{u:wYƝ[t +rQ"n*6UǽoVő]3_ W'[Ik<㺾xc|u<]32c>[ڭ2H>1@LUF6(N8i^*XQm +j&`D + ++,+эȁ%$wts һ|u.jŸY)z+Ft?v;o07Z_J\&=cbu|'H #(NB\Lp4Dx P،Z$"䇰k0}TfUIR+&w'P}huO +UL':qP]7ls{ +- @-eɷvyPQp '.|Q$k5qs6xK$6pV7pEo֐m{Z?6ܹ*2pW_82d[q9U\8PFF\x6ape6ԥ x +P\i}ǾSqߺEqCO@1dɸ3/Aϲ7Sդ25hФ3:\Jg0cƷsӆǥG~! F n^u6@~{qӲ?dgۮlNjD'4ps槉=xX/ [MVqْ!u#>1[~궽^;$d *DBu`%~QZdrq78h>Ϙ|})ir$D_lX6t}Z ̢w44U;z-ލ)Jf8@umUB*ꗍFes8u:t }(Yܼ;=L׺j}vPVŽQXAzzP!  U,['ғFl@HFbOlzـ-UJ!-N.|!"%sIQlO{,f ? FE!|%vXk(]tBuH["Gmz%LezKtiju"?؛p @ƀevG+qpkh2i`rZj?p{2ɞ'ݪwZd;? O&pb|θ:'"8qV֒܀gX/q.Ga+Q~hcaC9z7 䗞ob2@6dDN9b'(*#ݎ}o tlo{+ nAleN;Q'zv17fs2nOFF->v`ly2 eaׇ] vP &[0?J!h_NwAQt{muCj]Kڿ{v!AbhVi}GK +!4.@H%+g_@}dh3.U؃U[{2D4ۅc<^ .~:2n߼;;2wrw:6E@޼3 +0Q_:^඗鞒4C4e 7;=jrc?ԣV#5Vc=&؏^*xc;ZOFRlm1lՀ[Q6Dp4rI<LR4㓯97&cg=X6;o_黈GlC{ytѓTH +:C~cUguHv htT8=*B B]@iTAsG$l@F4XJ,n += =\(tu~{ԋS{>g=lP/K/Rχ~‡H~%Q#?teS)?8\nCZ~<Yj~%S2?ّQGW~HW~DO`:O fE= Q_5fYYѯ,.VyGG,zGH_a:=bǩQ_fr=˫Q_g=%{V۷9^1ꝺ;wKy +Su]_+۪ɯxK_fZ# @+#BԞE*;T(%.R,S> T +q}TiT́8?PBD?_!4< K3~~7BۢOP'exԃR>OmCCR#sF44T|^Z4(P>ޱD leb$Q$/Q4!y$pTUDb)6'?5ʧćK)X6d@X~tԫlz w!:BM9O -4C '.R4>P;3=2 V{iLH%[ׅm ȮU^CB) Hy]}"8|jf=!yzY;m70y~z,?zJr%c۶m۶m۶m۶mc9{gߛx#:;*2ʨ*?_G 7so +fs9Z upZ<6mQe +dsc uJIwJv@R4(!]`ܣ3{6ɭcPWݳg#}1niXF#g +ȁT M:P+9jOƉ1'0UPύ ~4[sE[*q9MP,&.<.Y]-\:Na^8 o)¶sMD][vfBʭ +qa!QyƩI.9Y; 8f7C{2hUy-h`14Qo_>mt;gk&aY'"*#p^:7Ό 2%B%WD\PMI%c1Q$G2껣`dALrS G{MF A,MMIz CYz5 0%2:eՔцoת\"̝G;NgmGDM]Ie +fy b,`Ca3x}CkD!Å1JY]YC^&xiM9GF"D^G{"pyN1l%!qhRd [b&];%츜AGp1ߜѸ; nKn_Gn>\W#7N6iy80Csz=m4B6M߅ڊc%riW9YpEwLs;OdDv9ѯl:òik%6WXm@tiǿR5WZ.Üof A1'w\MS0rHΙɑplb}^ۺo]'7 eF_N:/b8FCQBrxubl;!&i~ݠ U7 ;t-Ne~=5N&@]=/34socX`u>`Qy xv e)9me)qhC:>r9'9u)\?jka{d ifd kiFFxT)mb!>/^q?w=hT6 WR{ۿq{ >s+iyݞNQWVJO奰?!5tU іBm|B^!][Hn '}mIhv튑~K;J=A<<>.gZy6\tådUp\keȔ0/)):ס'{秩6c> 5O?֏gAa)/ldAVhԯn޻Q۷>lv7qOs>uڿMr> +pabXFsDj#$9tAzF9azj us=cw7Zo]qr{op{ud퀾lwAݧB;ۥߙF؅lv:[ACByC "*|h*8C&'SudC|ϲf6TH4X#thKzl!Ur=)NJUpBV'+.#Vw O tS\_6S?i[ȇe+bI)YI~ "{@#HN,#y/hh)&e+=2l25&%Š~PMp$7D%MCh gdžx`v .u@Cl i5Ej-ϷТ؜qyXEhwش1GH̻ lv؜kLn560u +bȼ+3+ +rÖ|S|ޕI`,U bÖԼ+'&!. r_kV/ȍV-p l+#1ߔAW rGzB`&GvD`3 rc؜+-z99mc6|o7i>P cCWԆGp߸@lꐛ{_6@ln{_6@l}}C`FGdW`Ć_Tvƕw2lƖwCj=dYW@Mfq Z"Lm]gYSLѻ,]Gr~ׁX{MLzNvgFT`h?9U`WR_@k?]oza3a(aCN lc ph"!8Y#`V3HNU39L胦L QH9"55Ɓ` 6TE"yWVMX%5˿lmAGhD?+&C6Yx7=hl_Vrks> 5WòL@vW?Zr߰@Cxp)gK6r ~ 6mȤnlə4k^VX}&HZf~!=GƼpnQ Nwxlya3{:"o[ސlzz"iXduF菰,À'zבּLC'?! rLݣ_8v,}]3t6AqY~CA'mo︽־qv~cu3_+_6\@z]Ӏ-Ap<Sp.ׂAA6!-Sclj-Qs78FX;=}cYm緂5Ԁ9[^[g|laÑ rQ1eZy0 +]#y2e4diz PKT6|?e|<(yJO'X|}^W~c=.{R +:H!"=`_ t^e40}F=4KG$:4=^=lO^n:ۏ؀9^A]PB; {1]=!"l;ٗ1]KA]H;G({,=Pرs6;0ޛp;]ku6݇^ ;ޟ,`:^?_#/<׺p"⦘g#>eX׽?iRUj;>Hwvrw; (-ѣJ.z9\d'ST+.l/Oj/}8C ㇴ"$:r7zh|_9]/TPwa9hOĝj +R:yN{P21KȆ$@6芓 sQ7 /Eǿ4;V Nk@ rZ]GRfR0.sGo~1hV&; wy誥'XK`^H7Թi qo*f śA#[7 +<]X{nU3@f˖TX\S-yNTZ1, ++*B/\-_~ ٌsI42Lv8_DOU' @E;y!iӆu1 B.MP(؟":kk$wwUߛʪmòeRf{m"ݯu*t6㹪,aSW*p8k!7X}"HzDs\4A}&?b N*&Ss;yNA:sQ}N8(cؔ;AL{:Π~D +|D,=zXA5j8`D]}ͳ{ccdfgMg6 Á-`1_ީ=[׻5/+=^0߆p /pLQNw!<`9*(1\—pfasD95O~tp2L;dԆS ={0v\+Q]}I #XztL4 4L.1 :*hz Rs79N9`Y5 yZD=9sg>F{]d9@޷Q5^|?D8 >/0:jR}c;!M vwq9F-܇n j߮Jb/B, 398. ?F̆/ NK'B+k"Y@lէꎬ^؂4H6.ե-13l>w:tmJl2 ī[@UFVRBaAO-Ĉ"'B[©Pkq!0Q0"XXlPn\&BIqAb.cc!YT%XY3]XL8' 3Lnp StqZ*XyoBIݧDq#"4Pm~vub +B)c3(j6nNe4*g\B5Bz{@w9 ]cX0XπX4+ Pk*! +،ow&v +Y-P~9S !M(1%c򁷦MEh?dЁ^$zBBD]M5( Mqa֗LǟـdB!ʺᘎH&`=2qMm Bu-ƫVBCٜi.9ךHl/\ ȄvjXuvlǹrBթbͮo3ezw43U+-0=+8lsO03?2ÿ40j*ڶbFQmv7'-`8]*KhR[f͎/Of@ K/7];!Dh|Е9+a$>ji;۲v摻S0x9Ȃ){ 5 NaZ=&AQX"b s 0 ^y=Sq;ݎtkN )aVZTjz5  jY̒'1zч*r)eL":~?|ZN^YZ +QQ_`( ]ЦFuDh}0zv1>"hV3yzv? MITf5Om@EJ/'ZP^Y.E1_|)3UI[$2Om,ihu{}NC ♇G:xj!H7 +T?(Ž`X6\2*y2#򑢱ȣHN#MOtf /VF,~`ܡip4akFI2_K ҝ~٦&|ȟ +R5_L*Z)ruItϔiGkܫkUtQFSW哘Z8UNw^}MRhs)DdWIR#xZV ˻}MTt=Ix/BCJ'fKx z ؏⛴] ܡũ+Eq@[lYŒrn+LE1 qVfQׅer]gغ=6"=§)Nr`]T gos q/hEK_Y +А$j{uq^;~rnE5iztd}F4.264' '#ِiŷiϥU:(r|%oȔnc$-$(hUaq }zӽmXuSl=vsS-=psQ"%Cr Q7r=#5cwY=Vw(gݓfhg/9+N%)O[{*L5rԓKz0*s j?z0ǯX?7 {PH𤂩4ȟ()S0Kjᬲjޜ6 V<U`2-&bn9RE4ir};*+Ekn/-kҨnWibw}2n + D?oI;Hj @vW'[pNlEOtqAQݔuKʜUEǦL{<⦐ AĜe "W}q췐;A94(5Se MtUAF-ĹbaH-BՁt6k$ɦ!0InmS[5_c|g Gr7I2:SPЧ1n")nS@RwD$o8wsxB9".g IL = 4 U\HUP2pl}*h鼜^{HO/ o~n. V>;i'xz9Í_߮'/0݃/mG\,,J[&ѦW #y{ߠ-l%4 G\Z.mD8m+9NE1Ay,%.)q`9l17% ł+n _;40`#a5ch6$z6zh +ƙEbr7yW:ȭkfBtʭ[O[r.׳lr \8w)ђ/ ?XƎmgR۴aM[- 9 .0AdKyg80kNh+z_9O| 9ca`-0T!&o| Dh@%(.>a}BC̐2M>2)F+K:Ex# '#[DoM4 +I<$&Gd#yaí5||O2 +?Ny_=x6YU~6ܵ  ABFNkoEYLm-܇nO tq/F"uU_ՏnM +dEsn#{MSq ;G.}3CVYVX fPKT9 2"sdc[%[:B{tp~ouX+81EVս>- p~nzbnb?fj6h,@hcSDhUEF:Y2}h$1v(W9N>oJ8c0K# e{lÌ55i[r,giFalcݶt?ZVS5# l~4vGڼ4uSPP']]qshIDS7ZN]9r]3ゴ*K? 4@8W֛W;bE-6_+@|8ǰg,7qrmDu)mk.tfm8%Da}fo!Ϫ6@CM1o47cSc3[˗o}=#|i|q9o~z;̈u_J VCU28t;r+n- Wo,ה9{9r\x|ʶ'-uP;nOaMdM/_A(Y3Zۧ &9oJG)V-VSD>A13EZ)2laS hr̈%R4E6,|BZtP$,R2]-&‛E'xf48JV4ե] +>]E|GujdCO򩔌$weTEoFGhNO;$b%L6~ؗpNڡ>QqmZٔ9j.2SBM~PB3z_h݋nF 3R޿R(rK( R8sh0ֵ bqGTcm'SR T>}Wykm}?JU!dn`kf"bclG63FCcҥ6Wk` @24 N<&Rx] h6Aqqշ]ʑn)/Of)0̐Bl+΄Y Bn`,ٜ+әH}Qq]έA]V[ MigWTVPL f#`? 2x}}=G/tcfd? Pjb,) PZE@QJVL(_mm&G4ׄH$m;@_Ɨ81RT5bq:x9|T@C&u.ᦟ҆}"cM┄ ʥ9w"*D>IBsJm<0tg9EwlrR:HYXF8F{b7ܜ2,?֬R=4yy66+Q:4.̱\/&5vU&XM0@c;W?E1ם"9v4G1EyvNڈc mtƪh3Uci6ogƒ6 :m([їNe&µT+ %b -CHZu9[3zg,AZ+/{1`tk A|Q>!7~8( AȚ .[cm2[j1OOp ewǑvSPvQt&98.$]3_ܺi]Sojvj-b ?G`f:QI䛷CߑnK?¤! ҵ؃dTd7yb_B˜CWH `$WȚe%--e˸0rJ'hI-@'FOBNG=xFYӮ+HOm{EJ|#AqSQ6fIdqqM7+\az3>e?"z:Y~pC6!Da; [E_/7^X,dbq#hRIp7 ෳ elP;/it?jmcB"v6fP5gc_$iFD SA"dq|?!L"Z6׵hW,!$( +-:mZ/xg}=i0,'ޗ7]Eb@|YN (zQ[.RmF "auBv]wrvS᧮ulNn;yzlq\9 +yEⷳ>|c>y#"&yH`Ƃ-Ҷl=ioOy9sÐ݅Cu;|a&cQpXCCz*c)[&%DP"źG[~6N6Ja /؎&&'RNۙGr\ZQpa4‘MGd&tѦM2fLl!Ï-O` +. l[¼ ?ވ&e , Uw]UCPnVBmL %*8r > &jq]YP$DapKi +uز"ƽ6N!nKB-3]{ߑƲ`#1;<椊`RŽsZn]N5# UoCGaƺlGѫVd("ž`fZ<1>)nV6*Qpe^ ޶,)CyuHaJ9٥ < -P\q:6  %a戅mmiLd"%!LIRst+  F7-쵯m[IYòCj 08)d>^K4$/otES+k^1C^,*So'ϜjPc}SVAs0[V31j~mȯL WX 0Nݣ003ba {E)-a OosEc"])jv8; ]`3i/\5yG3뿄R rRK^~K +o `O={n pcCwx:8yW#|: +Dt `}fʼnAP4bZ#ԁ -ݟqn@A?2Jk@k/n!^ҢΪ_AA.nۢêWL%nKx1-6p`ƨ*P)y&> si+ 8y{Ϣp +I:{m%dh!#`]hݠP|p5`Y`L"A_7akQpJ8<@u^ +Bʛ՚$Z&R?U͙%-8@&8\xݕktQs#2wE-lo N>Y׹wչ޹2S4~M3~X=^5b_`q=M{/̓GWZa+ra~yZ:="K͏XՀ8lB`@69Y7f&l]Sd ף9TgYhB:;ED|L%ա%m2ƙ(j?.j[RXs5&{ 5f7jyB[QIs #qrШhPȨu*Gg_c%y66Wr4Ǚ3y͔ +mX/!64wAgd;(y_;P5um)}6^jHJ#3H~:xqGwinaJY"+s, +ݩf ZEVL QL&8/*Q> +QS{+nVb/1(~\)L9H(;, =by)\k|9f`kz^df:j0I:+ /27X$(&.i8BYM 9Ua1 H0s4B))EpO-ft) G!9bA)@)B٬2oSӯSӣ*Z Q~MQLe-]K Q!|#/ %_0*ȤwD肟@9vgpMq 3NDX̝P {oKI>UXidpR ]u>H]CoHh:ʝ+Y3׃@(1\-Y5\@V-R(G5LZv>]eQv%T UF~+~B3qE"k +cճdKg12Q9Ńj(ӯ$5"gɉJ;b.dqe e +;Q~{7 +Du[AyW u*P!J 'TB&Z s +H:.t6o8+u6.x.ѐTz~qQZ4G +M8  dSAVI(3 M AmIn3&+X.( +Q[jN>yte(iBET^L5qr[nK!feiFPRAKrKC+ȃ[J4 +έ aM%XZbA8ge/%^Eeɪ +e1SҒ֬3Z_d&_񮧃ԽPw$ߝsG6hQ}zyRUz8ۣ߀a‹4sK"#Ybla[Rjj@<ؕoޕ[Q%%9Y5IwY?n`WD Ll"\JGF +Ib/9 7*z^~Mv 0͘~˟wr:Su|@gP`C ;3wr^=Y<=r/E i]gROX6cP{幢 bm[JoGhUEa{9h#oCIXxzC )=KH. hϛ5D} +G;=7wHݻ||(|=lo}Nt`UERq5HUGMT9|ssFIJf3Q f|TmpB;$_S}uVvz +H=[pc!4&u 5MUl!T:{/^-vlAÚ氌r%~iڣ "-,q>юy➛}yK\0BdzNeA)9|V~DF OiZs;) ۑhfkgH8"ddB/:Tt{kڼ:sMuPddfܩȊ=#ƖXi;D!Lެ{|8VzҲT&LjJmGX{0XJwTf:n} %\hE!ThMa'%FN&jmYc$6 +*<)ߤ`yڒ +g0J=Vmr#ga fYN{JOX*lȺ~mؘeb mKw)z O9!QroUSUN +^EequNodyo3ڍ^[w{LfǛIMgţ`z9IEz#sQ({*Yٜ<&Г3(B_l~.5߷p􉃧,X/cVKA:`^׊\:j/^OlJፗިӈ&9 90\RS-Q%^qC;ӢW9?۱P]_*">}w񅫧yx^~3۷?W{X!(bb\b0ޭAgRǤh6eC/FM:s!$8i(gBH'w& 刚o}х!y|b+չ|E`?/%;s <Bl ,TX lZWu?%?MӺq=ۭ񂁁Ṃ銂<-'~.&J o-)ΘU7 +gw;%Nw;[J+\Q&JPaUF0%"cS%u~%5*&Io>JE%*m3:)bb<_`b+ZJVRW-̘ 7Z C*:w3JotDZ?"#3g`!3'Ԧvꜥcռj肂D7mY샄,QOoƺJ,fea4ɽ?VNŘș{ {>^T*5wߨaV}5F.̳EkcdŹsIrۈ\و3ۇ6f (z *DMԹv ~1)F>9t>2I볖 RUHUȶt + +dfHS7qJcKzL>~Jԥn- cLzJHdbǿSJ0eAK".3E凨]H|>WjpG/ +{0π +/)RA٢ݸ Fܧ\)GRPA acoWB9훹5e &A8 [' bWq4' s 35FX6rٗ9Ҕd'u;mJ\.I?*YP+:@;m;绕e K:kW,-ܰ5LґÕVP[%fRSKs9XP(E%V;y&@nM3{*h_?lg5R_j|< QW,/H*!qRN?w3<% BO,T;Ua5"H{1pdB/?~yW`5G'yeݤ$zEZ kS2 ɴIZ$wܷ}\Bh![X)iӴmܜ@Fmڜe6Fm5 E6IB5["Pcg,M򓢄2E+n*57&RglݹfФ tr*@++hAeL>!p(S}i.RՀŊ>v +U8kd/{ݩ.>z[J3;1}0C?rWvIWZ[Z`y*-oUeGGuq}鴽sƌ'6s]ޒRInhJZӕ5O74|[5nL.&{*rMgJPraNCz F;63ϙ="&]x|iM< Nu0fssX#KruK2FD5ibUҺ0jG@ی1BɸoMA%.nu1csB»(v^É߰҆2rdd!846h79ا?ٜyqRjSr&34lmgH X}2鷒Ya4Bw*w[b6t"!IÌN/Rb iD%Z:Ma +O(FAv|mS@b"xԇN޺X 4"Yb+7(GT)vn _SEd絵Z&"1 o)LY׎tP n7rx> +=.̈DB*h8aA@z`HZ @R?_Y J``V$ A1%*'b Qk!Mc&/ʚv%{e5N.:^;+]i\L6LW"sx#DrKƬ[/`ٻ/`=3أ;՘1G(=]27@$W՟~OmiHp666&n!$Kk3{"(-<FmYڤw홿!89u$.nZiDMnDrx&FF-֔Txdը]g,lPX߄yȯHfG4!ܦhE['iIJ>̵@qs3{T<,O:>;dGȮ _::&;$w&K G{??-d]kԔOLRN&ζZn5TT6"qlȡ 6dSWG/?2"`p<.(-5FP+^d^>6e򜹒ll 8pgQ#7<נil%~ܼѕ mx8r:++=ld0gD\HI`dL@:*U" +%+m_[d?q97][Ns<ާe}~Ec{.q'hQoةJ3[sMpSr'ƶpe!H(ز.-̾m&_SMK ִl*[Ӈ#Lh"2I{YY%ܭ:3ݎR^j{ Jݑ}KJ .Y;L Aku9]cl9| +("__D&%H!z +2@pI.nxv|wr2p7b=Aѭۓ <ן _-J53Fh"ytCn# +5j}4}3m\YpnSNa R0&M $Y_[3?rJ!d1]MdO..vxR%\[,|JFxWş2=4 +ykOη|` sЂԭBT bfA:O~~eޔ$v.eBv@y`\sZD-8I1R}֠5"17b(HE\",v*:!7bi⭿Td^9"brܞ=gDŹy,;~Gp Vż1t ny +Z#.mzv[I3!=?JInyX:GV;Q PLh1NLn4L@dD%;O,,8%ɏ)cCBц%-Db98> 44@#h֐J10$s>DŽyךR1D_T ?~f`b:W+.U"ڦ0*mF$}utdCGV >UmoReoĊ[D~Ntq9ѵawĥ56$@6G c@ݞ{`1{FVM|(R!gfB><$mVwJJC]an<;Uuw.QJCe`]`NMIYx`R< J@ \+ &x1{#VŇNOCxπ>|cF+{KG=JLfzG+taY`hgf{ἫqLk r=Vx 1_5ݻamVy|xC ŇXaڙD/U`DAvoyaVP͟ϦKl)>∱EK4˸NۇE iP=;ӪtO\g&T +*B[wwGc)ٻmS9hꐱ~5 LC+LFRӐ:_D壙Qi+.K99Q3}I]^fjKΟ֯|hIl,ͣf#Ҳ*#xC{`%4죆q6W~S=/Z|A^bS/kzH7k%bᗂ5/݃CMj&]-@ X~lZqgU)]%XPhc/Ч] e0 Qҝo=ItR q7}2~϶*xP}, KKoy<_EwvjSkA=^G)K򰌸-.ؔ7.O%N~w- +}1۹"!܎WODفIMPOhH·AlYqBGH(Nstztսl6pt:QM.WJRJmmw2A<V8)&@qk!i3綏jgtGDeWv0y !'of܉>t4>QZ S J24Qy%=f~BXd.ȚnN<ޟ (G-2IP\{'[r*z|r30BsFTk4S<1-6sȯ@l*FN<ΦO\5=L\g|[{q)zqwCmw F@ʆCZCCԣWnfv97Ch.hFBֆ ;R' _RAZȑ 51^7֖h pcUFd>ҎntGGnp# {90~#=fI(D9! dMS0_*jg.(B8IHԚ0p ,Btd2`_JZ}GԚT؂$FW*#hi g&;]&j*ؒaI ܦG8 ,0G #?6L~[@X\|`F +ImK$ɓf6G?yf**&?"xId #uM +6$SexS\42bHsCcPϡ_7Ab_-zqæG ~SJ;"Jkh܆sKߜa?g?T0ń`u2TؑLVܓMrPkG"߬M3s-}T|P5 Λ1h슜SRρ*ř^!8msTCV M05@$Y~,)(Vg}X1+8ݕ+e\/{? e?^p65&( Px6=& M[U:qrI9<,npzt&[v&ѕ2u5He$E"!NiC e՚B-NgRAIK7e,nx<%ʡ{4p YXܡoTdbR:]ƵŜXrbhkxb >rђdPAGخ뻀¦džWm R8h5M׻D`JBdFk, * X{WZ@ ~^4n愭M-]dK;Uqb{N0rZL.I|>~GV^4xq^>fp}? }޹PW0鏉_$e;Q?UtԳ.B)rqb$/Tq!!nӢ=lssI@,R2f- )`F)C:w]"mIS8}RĤ9Q&Zk5n'0bX|_6mw4z]\6BEYT,.miDMGdLlnx?6CM/r +셅0T^}]HmFpIʞy@nb@GxݢWd sBØAa:o|mQ, +;DHn}t#Xd P_WG_`lέ$kbcFTٔY[֯$Bt}Sr86Z}Y-;G{t0H%}Bxʌ/P>o_#T:RF5Y$'IF0f͌[Er[s]5g7^ .v{# 8Vz!bɴ?3+lC("m9bR:獠<:NA3.eVǝh7 p{&gp-!hfAXOx2/ƋTe4!R/gpw:` 3(5Vد))YUH-u+ݓ6imfטɷ]ekq1ytQ2; x"%Oy=_(VuclepjT/2hn,ױxlpI)3aE]8TK`.RoZ9z_eL]A( WW; FN#YOyz"@ȓ?vV,+œL#kq[<k&s =lqA =|j1(M~g6K ^~N%D"nS(Pl]$]`Lk99+΁n#/ b_dJ,%Tq2>KkNKoQ T"e[4C2oȃ[{ߣCb;Կ5Ńek0n!ugiHs1S6%EG"ԎҙWTybwH] 5L5nէJh?gKOm/i1b''2hd$Q$wd(B )wc:.OM<[kń:ket.\|KzC%!WDŽ}d/Qt"kύ-! ,%Q%52 %+Q|'6L o Yκ\gkwyE +Kwi&SXGln rK[֊P`/ǗsiPR+rMSM~QjD6񋵶9cfVޑrvKmK\lϊ1WD9G$}svtu#0$HP!KiM'i7u)}V51DopcBGnme!@vf|xoj$WZl# j7%ztxkI;zcD +&33]t +:M=52,Z + ,o»TT’2Lp 4.{v=fAtOXso?7qMIt<j)eU"΋$ii8t=]ڑ3ZJn¡&]daG +'!f13uhoPW`$_'.N~{g !;P)@!V3Bgx)yH ++k"^V4wUoZ44Tg}Hw뽥Q{iic6֒.Yg}dY7amGO80K[k pŒ$> +PQLޭ8\\M8M >024aoydTJe989[4*[Ǝi+I5ǰ\fdZdj1fiӠ]/ؓDۓlŒ<-I4.ό\inRsPwP'FG26;"~IF0Wu UkDS/H05f < +F?-Kax.愙ůn0z52xp$fo>EsJMQ)vֈjYHd? +Vs .T5ٲLR#Am"%,E|GLJ ,E +!I`FAb٤&=GGlb*81ǡZZh`H C4hhL@8- rirLzP Garrv.3y"$xlA-:<(pb;9.n8s5hNݡDhMZ +[I zE6\9(u"!31#|UfTk- 0u}BWTe١A3S (2Xh)i7Mk UsLDCٸڢ'sZvZ QUr>S)-^F'62ȠEP13 NyDOdb4?OuXtW9q%JD~ -I4!u!9GS.Pf#<)hc>*<^q8TQ]W{  Ys3Ym7+>%:,GUp-o'-R.1̈0v==zz(7Nah|/ 1aS)u]=dnTiYXXIEdCo\*$)z֝oTOvp >"6}PLpR@s(v"kos׋;9cM,ZrǦ] gkELPܖݡdQH:st[{=چ2""x+CWbጨWۄ&Uܔ"At޲E찖W7{ h2z}W$dT0F]Y{lHXiz7׋e}Y/x6ЄCَ'Z&JN$&*42g~(Ygn.|n-rFض?9hV$.9wBk@9jH%;񫆱҃z+W`mKK@-Y 9t4G5'̏g}z{3Pw0.o]i=y RLJ .5ș`nakk_(! ppPmXT"1uUkt3 x$:|4̵@f .ӊ{Epo4!$Δk@)IcS3⮒^L1}btitI0Mh ԂNd*d7o8UYNP3^عf7>0SہR'"Yd[=l1VEMnA|3?bP%M9$NuA-u l EP4vVӲ^*1=Qu;Zɩ.RofEo)zDmN gp+lQAF۱r2J©ԍ8NYhh7v"]yݹhN`k5т|mFh-ﴢ*P\ҢL!ÿGە__1Yf2' +vUz1cS)H Hz1ѕܱ.9q<%ƽs~A[k/8~saqg@f#Lᮼ39$E_Wa]Nmwl۶m۶m۶m۶mg7{d&/6̧|?OUT| +?a.Q2kD,iԄ.XW+sa+Y*Ub +Heuˬ*g-" q6Nh XH"J_Y9G0h&6zp2/r/=LNJcP j TF$]ԇ2PNB h<c+E7gZOƽ>߻:&92w@*ew3XšJΔ}Ͱtf06)iYDdKf]D&K%V8x5MK^a-.DJ*\31qpfFŊ֬ƕ[ C4_J6*FEUc_pwU/p!I VFJB\=mଜDgb+n?Ymer,;;yQf9Lg`YPWhr ؁ucrz LTv*&Lu*fZ`.j1;^ c;5TMØy1̕vZqplӋ\m8NY/?Ng3Mǐ.KN>ӝ䛖k;1d9}t3162>G8_zY~6=6 +{!+KKtˆn9ׅ}h1Iuw\V.-4q)@)41z? O}Pҏ0 (+w9 2oq`bȃȣdAeAª{ej< c1 +J%?Ro%tRhJZAG'R +r%b*^9OW' ʅ=xWb[uSx<{SߦFm{"lSk9}S l3\W~W%n2qYWSůEtEGQF!L9SP8WRm|jRE}OUkYt· +ؗ^w'ތ 1q dSx + 9`aDB̌a!rM*V(U*d4-;6.k&>6]*Z5q{itI0wi_9^wg>sYRL89thQ.Ю +t 5_{CGluGLʟy J((#EBf\zFcxcA50iW<0vȇL8퐐L &EmadlOaxkC8};`c;FT[Em.1 ]]C93V[_=źkMv"D +bg啸qMh#]l"^(VU{bGeXD0F#}ԶR. ڸWQ!]MliLE\Uƫ 0;;uBi3lBaOAÍ0nm6#u?nI\GlJ +`m3+Ljn? hI9Hy/ѴfP +E9)8~o6Cl)"J7PXLZZ̵Bmi^i=pתwV2Q0w&7rN Ź A2RRA6皙ܗeQOX'H 0ԤLDB__J0FS ߴwfI0)L` 76V zP7z&LreC% n 7~]^0?[UzJ 9<4i& %9y` Ff֌YxZiAO=f{RߕeA}c,.|S3$)*hɆ9*T(Ai]#k@v`u煾q!Ed䤌CF)H z>KCuUn7nRV.b2~DF .b~ǐVALB<aݩ݂Op t+h~`|&P(\bv F5XؗJ|Ts٢LjkSN>A }"SO\5Fv4dZg󗧓Y9;z ՖϚ^MAljr!AvK1|ͺc!l6-mydۈHB2pab,ڝ5T^ဧ_\eQ}w\:'bdlKu s9R)$`QJ@Di\ֳ%rwi8֤ @/ՒK,V80mN;Uջ¼<{@Ԑ{t[ya4զ82R%Q0!% +;/RߍP^qѐ ޴ZPn)^vajP"4_ӻ+L:P| ip'Tc6T7HHQάX`֊@F/Ds%.9K. 'bl㻕wZe',zVn;[5d/u҇nݑ7n0;!0`ПPwyC^>k>ӻw\8q^7dr~7D#x!>3؏wloS@=0f}} UG`q~;\%eE܈UqC4Js-oe2*D9L>=jSQ +̚j]ہ9 + ȯ(g`(IA#gXJG=E וW %UxTxƴ3 |N} _j4wM7zHPe1O@i} 8`ָQϾ)|m/x{ZFhսܬe"f:t: ?/ ,kjF(aqy0݆xڃC,U&i?+U$㙀"n9&QRr7|ƑӵڜnORη)O-12#267}a73 +{~3œV'-t@hLj!3ˌ_?-vQZߔkČGQYVTp$I;Hq i''McnNh#+d+SM"TEx?˜r(JK%YpL~tW)Ds(W}T jsg<ه3v*TfJ^X 8HK޴9s {*O'\&ozآB͂YUk%aLY-5o/59мRΖXO#| + +t#sԓK|)sIM1EM sM/ &B)eiuΜƑJgT|+sMZmNx16FgRud` _q q/Rnb:`,HY ?! Z2|bF8H?Y|D]մSRnE,[ysO&'0ڸL궧Ұ&[wUDG7r.~d_FIܔ9pQ#ثktX<,ݛg8E8%"}%IgKiSItv|{_*M+u*5[, w\pDtlߡ,f*uhx( 8~ϴh!EukjV@4.L>>(^1!L{j}Qe_](>[j(?7dx2"NlG[`2UƛNX9~+OY9qqa=LJ^[ Sܤ0|YtJr`Y3]2_͛*Y~莞 o^}$y>3F"v +M&6"t LP1I[WGsUTHCf)бih:U$ A&3#ݤxBW: 'qB&R!_Q / LBe"oQt28W4\9J?"o&""o \A W!١.2Z\) ~SyٱBY-DC;q4_*չ-VH̏T.h ]%u9 u?[i\d\yUTBu>y)#2W؉WI,i.lYGԒlÄ6iވV/R!rzP[ռ +SvSk"uPQ?ӗ?f5-LvNЀZ7v7Wh{ck|nAi MZIuq ,7D? +YٍzǦ 3^П(X)ٔt|htq>w-tVi +?dD NU[NB X5y φRnpl̄W):|:H +z|c1h4׸aqd%6VOsz)vU6O5>AW̲rSb2s[s)_'m[^dig/CE](5`!4|ŋ!JE>϶qkQJf%C׌M,7wxY;>d5ˢJ^8&a(Ur߼;qub˥f-Um36{Sޮyf;NN3(L'Æd봶?Aq'?#o܎P˹bn5GlbE)P,Pſfć"(:<+Wޟ_rI/8"^od!1ogE-HUX5ʾ1 +e .Qpefl6 o`#0Mя9KJKX{Y#8bXZIX +'.*+\ z@&2oxK`(EKH#Mtv`foZE},`Lif~7kfGA$.hl(`ddpAz+|=ѹ p$ j :ه rG kXxPᵨh^)|1$oy3Lٱ#`Lyڳ2svkQ;kc;oOWSY"ܬp ݘ"ݠݰproZl_^tc2݋vO7A!2ٺ(ڠu +ABuABalwE|v>.CDnC$ ƕq_,P_y,9硞As<*q"z +>+EM>h=p]gvw )> i Y~8}Neo2{kqû xxr:C`uY*GO +ptuI}y>{ ɓ#O9 ?/ȃ%k=xaBZ4&x!AؐF\  m&G.]Tf28:@J@.m<8"Zqh@Ghhy6\~(NAc{,+D6{^r_ W4߿r +OОxt +&<YjG,8ZEZmwYW~)] +IuYYO=UбnqF螺¶ʜPA5** +zh*GH`Af%f*IIOZNCyBJIAtd*#3+qxx^ "ڦac2G7sc_ +)rtmUKOC5vr +g _b E:=Ű 4rI2kZpDd&;R/DYBDCF(kaXUҐYϽa&&0w10kCE&g&EqN(zkfL uc ; o8 RG0` "肈+;Uշخ J 9TCpDU{ticGƧg3 Ds:nAP*MјByl5B94ij82U>i>b)S]LZ+tizC%b%uSHM^1Imyt5@H6t`VZesafi mè ,"BfM&DOgc$;hED*0ɵ"L͸|a{9ՔI*13PW%[@@Ц=={&A $c F{ +Cap" Qv>]ic0R¿I[RaQlcHb+` Uk)XuDr(V+|J0!),4X5 CoZLR2+eYW:;NEO YqArn[~U6QSϓLx^=w,̓_N·ߎ@jP[YB37J GPg BŚ]0C.'NH4HSIlDMO ҋV[ꦌF8zxzi)dn v( +Ԗ +.+F]Fz T: +jy*~nHԯeI0N_1vؼw_B?1:o>ևwXR{'vþ}Kdp_1e|1e|=s.}.FlIPgm%Pgi#}drȾ@3o>1\,g!EQ{&̟^!"g<є h$i"CiiDYH2KiI椋i6)xx&4bC1霑ۥ)>*-dRdMlI%qxDYK/%MdR&dW"8CHbXttrx6<5Vdž3QeVF=ܳ~dX#-a,VKX BБ9su/LrT.ٟ}STYo|ZUDD5ۘB%? }.2M5HV}f'n;)z&Xvj c98{%w1/Gk{Ewk ~S^\fP93)6Q8[ޣA|hm +~fb!Pf+lsoseQ{ '+_gTJ:<~a<[(E'4χ۬Zg^1=l %ݽCsڡ {>*/!!E@׎,5@;K : +膘gcVS%$>='0%%w +wt$ГO!@*˔;G9o$A4l tCJ,FSIT/nҵ#G k&}C T4jɨi,Vؑ|f ~)Brc&6ڗEt|w5[+WV'> 觧Gxɷ-wT+/lAE$g)PfIEd"Rl]LXت4JŸ;iyԈ aΒM0  7ƀ)LcaOlKK[ kHq?pf +-g"Zx VR%|@"wA;erz2Pۦo +W~>U%ݲbS׼ 1lvҪ/z⊁+D6^ +vੂp6pKa\e]Hx#SbC?qK+z)K BD8Ė*yS0 U鐻fI7"%}b8$Z. xIt ρk5\@΀iDwCŏ'Kd@eNmiOa=lmNڦ{ݿ` 71& "g@~t`2;r&Ď;q 7Hmj3;ˎ~==@+¼eq[JW;L7,u b!?dG1 B$NCDK(ƈYt\Xr/1'?4f{ o?u- E|o- Kx5txN .eqynA'#)]M1[E@")%#_h.%[ bQin p\,,%*,Ɛ^8jAw:cvφ 3\E\ӍhO}|"ܭ='Uc 7N^=eMD [ܫrsץ N3I+s']7DeE1\a:*@Xˍ29Ucƾ0&hE(*d`V#.eKSM؆K:CUn gRsI=$[D3Q[JLq[\rqR.B$$G4au:I Kc(yjzK #(aa:F"U azXAq5*6!nDr/7l$tj6[aU6AG'gk% 7 c8[Se8X/O+` 4 C<>]$PJ^Dj]0XH)DjaDIDGuxR2:$7sܟc=51Dۑ%w]׊jw]JZK'&q˿{^ A:KQ Uf)yÅHĵrVÑR7LIe!v̼7GV$|ڔn/DT_{Gw82ɚX8-{ï~Ȗ ^^砸.`&h"K`_Wdr׊?%T#?G rrG샘waġr/iari~ŀkX2 g&#aCeoaR:3vJe}]~t8F׻u|7wF[ УqKԠxV]_}(.S'o(SjNZZ[_WsȖr \8gzs"lz)#a\/FV +U_* +^]dzyU9o0Hvlm;#"^U*\/WđM+IuuRY+wJ%Z3Htw ѪqaW\n`R[7ZkRZ7R[G2R%+1CmFO3o gpAf[) 6_6 0FsE)_gKK)VPl&S5e iK݁J3PIE3 %c;',xM޸ :nJH7Pʯn=]R OOU4YXqbFhxTW+1t_%N9EX2~P'1 Ζ~{oVw;{\C qP6= D clKGsy~T"Ѽm zCΫmpݓv F߱ |DUЌ9=]Lڎ=~ƹYܓ}naݥ;50V̘ac͑5"emXi@it1JO!YM.iWk{1p +lS{mp~竗btG:fugMDW/kM9^rRkz?3,CHw޵57MbSGwޭGOB6ŭGj~wQ֜w͙SlZ:wQTIfRE΀ cH 7gS.MwWwͩoׇ#j#vż\o,= _|:.a&=7m>w4;5udƠ_B6LHO o6=O? I[?bJz^ + Фs9RP}nI9u=e!|_ y7j礧Χ}w08A?0?DcJmؽEs60{\4\q%\ ;WD+).@+kfv!Bw_n.\}TQ_6X&0d? %^+4В›.SN5^tܾFo rzTw ѕrbun 1m2jCQ_%YiCT%Fs;`tr/.d_I^sps_27pNa:O9˲Zƒ2֡r?JCIk_K&wG=}{ߧ弲}*D88Yoey{z, %"DRyNJ̄IeH|\F4+묷ayDvOX:⌿1zF q{Gõ?7 A2=UGeMΟ/`FE +O +vH 1Q9MT3K'IXng'γK[ǎT-Ovp,8DKT^u6: ^Ḩxm,,ԞBzk*j/!u hO.3"u2sєn +$$P@ 7^",z" F<87AVLU=O7(el' +B +cƉy㗕ǸQt\e +)wO"yҳ)K:* ψq( T 6=?s +x2R.⋒kR)OO rL")hi`0[!'7H؝~(JfJlCɺq ):z\Lvֿ ={$,3\.(PHfcJtP=D8: gi'<.t>3+2r~_@OR?Sąײ +`AE f?(OY& zƑn,C!6[B yu[rb+wyZlǷYmlY Ig8ߓg%*:bQ@VqJ7zTk@&y՞q +jл,*}d{W4TqvݞN4ZT['YrI{V: +%-\C sgP2MQT3tU?֘SaYQ0kU%[`ϸ$*vP[;VjS6a 0eGV< qM ʢQفN +  +G +[4 _ebdD p@XmX'@U6F6́Y/ v!@VODuOE')N!U.)a(p.)>`a%q2xff߉ܒ/)ˣ=C˹㣗O+ i/y Cenq\N%$%ѷ `)kFޗb:6*0w~g 􊎗uFk)Es Q;ph+]XxUC/,-f=^%82iwΘvq&ݗdL3t?cCOt`e[(JVp_U[pC҃4,CU^ smq#eedz-mV6%JK$.M?0:$A4*4r8z!MgYTr5P hsxJ헂6MtuvM6,PM41wy b. 2IBl 1_P0 /_@@yuJ|`ӷiez{Sn*z. + RE)&n[#J)Kؙ# r.  b[r`ꂮ-`VpeqK3|$[`eL A/DhM't ZdlND"̂Q;pl: (*LQX_*FHppMLXx nx<70bSP[~; +@m06ad|0$d)3^9N!jaBR 7G4\j +f5$Ĝ/\j EB^a!C6=\hY?c  +Z#Uψ`O)$קLFvSH[y%oTf[PXWq$"[څ31`VfVjUU͡JyHq ]ӭKSjGŠfeKg1.k,lV + c^zˡX~><.S=`݋fl6(>` }_M ,I9Yohޗ{&Ƃ/#kt>a۠|>;4~9Ay({+.3ndM;{rw|nO.aXf,p_Nߘ{F@vEnth| ghz};ckkS j/b|~K͂R1ϬKEY.emsJ0QMGժ.rD +Mb& aQ,T@Gg$qɕ CRw{3/q,ZCb袻LӿBԒcs +w+E:/~6-"V=p߇; +6ȩE҅lѨR#,8u=-zv`3dJ^E񴦨kYn!0Ys!V0M U hR]ĔѠgF;Kɰ.[{Jf{S>S3K hP~EȂb\}rkf_X /~/ fW6FǮdzi'b0n*Wc!%["#N- V!K&xcm-E}A|Xl)H }{4%%yM TJzbj2xWP٫( n{R9&܏\Liq&%n' [{9SVj s\ +BeK"ɍڏ+C +®q7FkU*e@II\a{5ΩYǒ&%ragכ1^t'%o8'?!Mt'>UMJ,=n_'F9R$#P R ݠmTлf:"gۍMeg/on.oX4naspTzvE)DZ݊6p1Gi#ZS.YlRu9a}sE7l'lU0/Zݒ6 +} պU5okn^[^QqϚ }PcUX Nr`rt {j=uȟ'%.=AstO[u^N4ZK@nQ=?펺xu_6mjYeYu 3ZF2貽O:hvIjXTnn`#trK!VU.Y Ga !᱙H%(J,J/yLfN[\BB!bUzW֔xV$^WlI"S;X1 SNd>A:Г=CD {})vxxZс#V .Ŗ +*7qRG_8q fR)]:/9#`N$o%DnӇB^n$r%|^msnų|ϟ[ns2y^ +m +Mqb8a9H"q|RntTBEĔW{?fQ,lPwf`hcl`_ FY÷vDjF9\?KRշO?8TdޥrLެ>q 7ǕsB|2:s=%l, \N&qǯ#m|sT|J@^. eYyIXW_f@0ɬtyVy}մCğyFZ^8h½V,}qؤGas6hpKe!|C9/# +#m:+$y{ ?#EbVvC$VMԆ3sV-[\]Lc36$^Tg9&’*cH̝rFC5c,( +EM.%4+oV%~R'7T!܈Y{c8Ȃtӆ$yӫ`PGS9;u,̛X L;wXzpbo@0fM~N=tO~|NіTmt87uÅKxU;2L" rSW恰F}O^O^O@ZFˡSlw#dKK.J҄'DтOfm5%<xo~yO1%%2rLSYH})UCH5ر4ٞ)&TcƆr?;8$lӖabadmaklamhO˛͠KBCH~$% (GOH&Ȁ_AjY\lU&P(wYsZtڹک!yzus`V4.pz/b!W~S)": ~هD0De~.Tzh;po"+=a7@fzg=X|(ذx5'MUVx`,Pc#D-TLz xan[Kc*֦ ZK3OtWNZ<̓Ua|g+ܪpC*ei<[+SSt+ԫۣ c +(9JuꐍKl8V7[C8Qk#Qr 0&lڕ|nV5B'5"ےesvxxy|EZ2uѳӛ%ݪ-YDo-ѝ)Wt"1m{m<ʪQP,e~s\Q.UGG2v!}BF\oΈllQY]K~ZDSsO˿G:'d'YbX+ټn(>MUgoFƾy,ߑ2w!A`69ъm$tyzܰdpd+|լb/NQR^*VT`^Q5O/UY^\Bqؒܔl?g"ַ5#Iq~hu'NJDx}}k4!ȌVvh\6 +gk &.:\-Ǩ";!*r^aeD2,2P+7.EP%OQ7"DE_{V¨-USJJ 5~}?F(7!7GAvUئ\340oǮ!,gk_ŰkGP!Ljo 3c>춅حGP*o({P^ø"X.D7O sRÆ&IaӂnpdEWqaC΀rmx}{w)@ ߈o].|:˙H[Mz&!Pdؒp+li?%ޡ׼xˋN*jNf:>o=_7P}VxC0{')[GcE +Wu9X#RQ74_H̄w;qvTW>P杙ЌO3 =K0u,k#Xdžx=ь釺,%y,o3^AZ/d3^RUz|Cbl$(+ \Z-l&˕Cӱ߉(P{G5(=] w1?p\(/~6eUUi_2.`e3{YOF4*3CfN0g,ypB5k//|>H*x"N2JNObR,4I@8 !?/gREd5\U?׊Ao.z{!5qU>eVWh/դk]xx,0QНc|s]-cl4Oo4ziAZyQ++mmVw,¥/䄡qtTuTi6ɳHTkFw+%lU{s﫞 FK=T SsŌ#1sD5ڟ !2CGWkGM p:#4y)IHM"d'6ƁWwمܽTƛ7ZUUb]8UfB1DJŁIV@CP P +d#uMd$EN5;k= z Y/7b'E[kma2ې&=Ҩ8yR}Xs|T*T8L2-*M}M e-:H73Pf\MFhVuC['QLMtΫwHX-[_8k6Y[7lH=YG˥]e kOBXؼ-RJj u1tY!yK‹IKh)V!ȠC@ %9_4G~+9û3{ι7hRзF sbUTRiJЂ7%I +X hH}2IGˬ0G19[v /w]Uؼ5.h#z4sPn +Fk~F:CɮSCkOƖ8Ʉ#SDy"MZo#腺]72;<D=;Z tF3+|J-QEt<!DtZZY4w73B/3 +Ֆ (|&&Qs3_Di¡K +l:]tJ*ݣ5N<[f+e+Gh:B<;ԐKClht2q16:\`;ʑ#,'u^30;$l7;%ڦ=mrK#+.?W'5$Z(WmOG/MС,V# ' xG%oCY@)cjf!bmbcb,ldhaj$t#ԥ@uYG\x0O OM(>vGBF~Gsyx9z΍#*BZ(MVɘ)-B+QUt!]oY!sdRLpp!4<H%՜hxU$eZ)#c<гekݛ=(*Ju,Kljwv::c!'ڍ !S5Zcdzz@u?=+jam"od?]Z魼w&EFEJ6D &zLo|8B#b/`s Dx +LNZ\rR +kՒr۝! 2F1w? @'hHfݮ <,@zq&׎9Js w0b{dF܎/W{8zկqܡOte X_&wcM2q=TT3 }ENޮ+뼟A>AˍMΔ~>Wt8|=gO9ŰѤz"[1Q!}5LE>{wȴ힋\>u Nz^v/&QƩbWf,!Vְ+g:`ΰ?{<,t]@ot^k/\OΜcR{0;YaOpؾ ~Ff1"B`DfT7{1xJvXglwK5:>#}F;iДޑŕ^vOKn{kK&۽q#=F,n3@|('EfrOh|/`!eN3Ӝt 2 ԫ>rlUAO9\'P4Gߥ9?ݲ*1`1OI뻊E_+O[הyYE+ ] N/i]Q"Z$L7s3~5qD#tВAS$KDClF, R"%ƣy1GLc$fsR[`OBK/;(@Ng B~呑-|MN9aV')igMK$0M("Պ}H't*It#wԆ k ^0"G|lc!)Zazb z'n RR[ V%䧖|l,  ȔЋ$ K5va>앰<iDWL@E) +ď?i@>ŬU44tcS7QZšAXʢy?q!k6eXg EggA` qM鉱oR@gLd"3HwE |}?ﭙ ]Z8Re~ ;f "wYPWH؞TJ26lޛH\%"Ih8=fC?C#JF0_p%-W*Ϩ@Fm%r {jUlւg֑`YSoID,DLlvGP:NMqЪK&ʤ\@+ۧO օO8c8 > fe_6peЅ|Kr',եgu|WDO]o{-_܅=4c}bFvHNa|mL|lAfIDp\%Uk/uOpySM97U'1Y4*w=v>=淎;Ā_p=(wu? {P=C|n@pw(8$ {||[_D=ן%:F 5nro}D`ɣksP0bE/& 8H)2Y4@?QPe =8nƣT1wt ^е:nP;?v9^{e[$cQw^ɈM}g7IAFxHܰvK׮#w€྅|CAis'4u`?~"(Y~(SaSNPٺnމHT2&k7""64ă-͂5iZ N#p5sX4=N/%"ュ?ˑf&#Q,mTx!9 ))P""E"!MZ@5 +ZWWuy5\@v+@U#y"Q-6E/lٝ^ʓgKjt%X6e+"$(3ٵXOݠs +i:!8>GJ`63. J*5Ϭ")/=O?wA죀Uv9|zAF"̐fJ!e)J+JSzGZ=LڅClK?H B}γiptW$3<y,e-9NA@WV<N0C=K|!Z8hr_ +Yʛ{I?nu{ٗ yw' ܘ(t]vIc$6A~X/͘c +>ĩiV9$Yp5V!|XX-Y/@ 'hkWjC]Z< qm>l揌7vS 3oigKv=m 0ae]ڻ?[KgI&/5T>jmL-jPth5̈:|j|! .Nlk[/Aj|8;_ ^j+͠W7.inֆkPٯ2D0|z 6Ն*+^1{,+N5sEf& j +n/2w@`sSމ,Եlll8nX~\TL?@&;VoA> +<'-o ql7YTcjSlO-Km6l!䠠Ե_sy6Ct=(5ճ-þ- L/d}96d.#Ȟ Z/~rE!?M&+WDB#B|\7U+'WT?O\ܧ u- u?q8K[4t|{&%pX!b;Θؤn,gW0AG\WG~82j|Ţv:p o*4݉E2i|^W`w[6}mcd'TzMn5D?Fsr]WRō<([7qha+r[-OqEO~#4Wvi˱lkE?0xv $==TLCt5x:Rf\Xvn;>rlW|>A.ܑ;h6;o(ӁԿ#0=#% +q~d꒸\غ!|J+%:_[g-4@q83k"M%5¤IrR1*+lB€놻CB0 +!|4DB= I\rd[wPI+;&e#Zz'+Pg@K꾶!f'F"6$Zۏ? &!16 8e/H%-iggLאYaN u]܁NC1WޡcFuGj(a:F +tZ׈GK` עTjieYy5j.Û9s9[ v߂⃰lS.H _79Ё."sUI+e- +mc+3XF/X *?)Z,K/WĔ^]c +96 ]9 b}K2Е[,~c.~k)s?[ I @ +λᅐ?,1PU}|[%H-OU.1Ɣ`LIeLb E㕰`Cz)-I %맏¶,p1#mn-6վEbTlj i 'S(g\ +!z{]rSzQcl|cK!mbn3Iwa8 ]d6#T'8{2*-&ڮRu' ش +櫺(P,e \ղ + +#wnBj+, +a B'A`Bv: +|%{Ҧ(띃>)/ֲ*̏鎺+3QV̐Gq滈u # Vb c5* +Ɗ 0))8c +@#_ۣ7Fj0`ύTFSgqŸ9&[x +vxMVOU%L~u^Ӗ<4iܶStV7v$8$l(9aBǔ 6\IK.|(dv_bQ >)/ZEfg<i6BJZ+ǠR:+$k<4u4&sO|ۋbJbh$` +hV>8؄GwW,K:TOx,^*:'gY)cE+Xtk+&Z⹐~xG%['iLk\)AuAH<ױIrlƯӹ+|~wU,{en%|6P qL{xZ#zb"ބ1|D~5gBΎ0X+dos"oLKHraNә.51ީB<nb_UC傪=IDbBh3P*jzȈԨkM>2!lSdz-A곲{%thȅ\~7GA&qC)qV'4TFEW1F>hoGE/)הFwaWg65d($iPvP&\=lcmCM;9ܦLVצ>JE{rT'u1n&El&Sdr2Gs 9ֺP+jۦE1,ks 94xhvn{)J9*TYL&9ρANr吲B'5ĦPNb.¬xPT/fP7~1Dn8j![ +YXA\7,![ ![֛!ob-b![[ٛyxdu0Uni !06vk~&-ئ@ݺ*sbh҉&plzGzM=^/fIՕ5В\7˂vm" +xBmd,yN!>;R1D*VN ~˪t3-zȜd)8ll{\x}(~@n"9NM(%8x,e|:YNfA7'^f"DYmCe 0)axـ B/dǡ\Eҵ!_p%"\2O5+em5_Z')` |~zʖJ ,aa<)iթiHmFn'ʗ/V +VuN)Ͻ^>Sih$?Y޳k)9"OkQM8Lh.03F4Rىxɐ'tCr@Q/uyqnaЈ> +A~d{L輑`op:^U >Y#oGA<"ҝ껙8$"+nΫl'C=X ̽ H`me2#YI*[Zlޕif9X窡dvYU'O!YUV/[OOia\3⤒ + ']/͒hdr}_wlv<Įa[(#")^tz.0x y Y` \' ֘N \)Ȼ$Z+fU6xW.Ga*'87< +-tܲτxU%Vs+@2',fbՓ=`ԻQḡy_Ж,0VGPq=_OpiZJ'3<J?MUnʙaQ*ښWMx*:@mfJ<ꋖYs?'vIFZY׾Q\Z~R$a]ĩ#aYF0wCJSMr1vGFGﵰJag/C>CT첻~6Fp_q1kMZ!a`'mu;n0öt2{ )AyiD"VwXSD^o)MVq>`ˎ @df-a7ݶ]L NUPN{&-P&ifgdkd'|0j6;WkH&*1ɹR7RBL8Pk#}5/[[£b0s3]oxY';D37r,񖙼gXD$xS{ uf Hɷh gr(mp +E[7(}}I駓h<أ݀$9a烊6xD-doLSp +nu0 ~z+YvIթmaO+d9x#=r!ܘJb8cSĊ?c0M.ym۶m۶m۶m۶m{;3qltEUgu'3b.n1{>v\x}#6`W\Jv.vѢ͍ӮU'H5ѮǮ~]&VSk,`dtiϽ*g4ߘwݫ/oo4VLH3 Q2dA/oYnFW?p71 +Y3e5 )tٻofȂyӧTY~PcW7(M`?+Pk'PFa?jun ӢPV!A?g٪[ד1mP1̃pƨ/BEGƒMm$5£Fo$ᾍ?]wBA)6eqDt, $(r +b De0}jG" G$2-iAB"@EHR1*U\4*˕@4n]E58*h#vz~)aQMX}Źm9ekW0; j +]Ѳv diT';Y]ojS>Ee8KxmT57fzx,i] +S0MFwdعT43oKS4Fncl"ac`fܕW^rLIЁ@@0@4Ѥ I e@2!ՀDB(hܺ ضhju{<=2f{ x9uze{}\P4尵.BhuIS-j,nIXմ` \h[" w.2 bY3Z7,oHͧyfas[2,\Xat%@nTm, +9sUlWp"hKYAcc]̕]2C裫y$ޱ.2^gTTM[mR s.upf#(*n~-|Dmٍ\iyDZ< L(й}$5<)D])iY] Ltw};,'a&iy +GL׻aS%49)y¡!i!!J-`i/~ƨi `d2$SSNIN1elʖg*UVZxf<)||DBKU][I* /멫@޺.ej#Ay8y)HתCG} cB'K]F6bط_ooVlUb_cSFD̰Qaơ_X[F3hM[2qBf.jԛ_n,=%i^cSb +# x_bn_Wqf-FxVkm~ H|c{ ^d)Ie'ޠ;Gȑ 8֛xb2\(QX ?rb݌V11iP׽ҡ"!A^lBP;}m(leNTCG}'S'Lk ,]4zKu:ZG}UkG%=Tu Q,:.Y-cB%K +e43 )lqab=hx6Lf`pu6񘑊<\*ڞelJhY)֋Zg$VhDح$.d.oO^ "|8:%:dS8=o ZAmꍝ.d.OЙiv,Saks8c;t= o't]S3'PfޞCi9֔t|;+T.&-IYUK^Bˀ7͕:FIbs+К!7>wT"ZӧE)/J!ܐr@P=i`tjP%Œ`zQFÄT-eqlb'AŖ[ǛЃ{agDeICoiwzAM^o}vi|k#,,kS{_lvՒsW,nEs^, #܁.>/(\AL8o?iIiS4.!/Ůe 0ȳg&hzS֏36GPq#mByn:E+1"N賣ԖfȢA#VJ&̅ s_c7!D#N1NHߚ;O٢gp4_q9 +ή;ܲhٹH^EO=9+` fըOuMUEO ͼ)4ٺE+N">gο=Ο#'OԜ_ٿ*%46gϬߊ.;5Dѻgs8̳^X#}>~?O29Hg:\ޣT<7Yg Β +N)5Mc,)u5]MY +ѭ6 IP f}ViyRL;cKP̕kjۤf{ѮJ*CR Nc[HJ8P4Fzn&>T;{fI ݨB\};'=,{3O/Z HPF+kѯlyhڧA=wUhFNгu=_Ti ~`{fG[sg}7esǪ֗WVWU?뫻_9.9 y,fھ^Q:Q;#lPlC'rn NJ'gA7g~ľ5Ł;>qHrPY`S#Do`Zn Ol=rd8x%&E`vxSGOru'fmBNC0܁.aA&d|kamjN\I{ cت8NPxC9־٠apqȱj󑉤=MDWMMf9[R"R|0:H qa1I`gG Q^"D [0#o:k΍B=6 sZCZn`<^|'a 3`n}@M'}&yfW\Y1t J?S,*o;*<ӇvK9XT w>~Ds>Jmy.FĮҷκTk: W5k}g! *\~32;o!fkekc#"qL7bƓx)h{B1ub ]ehIQ4%F =IId" +)֥GCK d\;Z pҹX^ ߉+8>q~j'o y'd go8!Dm7-%q ќYg0Ai)\i .RXu"9aR3Nh`<6S)("msRrG$2dNᤩ*(+(*cFhW3-X WBh@ b(_Pb0ra<`p +y,ކm"N΢丹J8I>K qddjG ~5c>0hԏ&>A 9K= +.dxl +L ( p1*!Y6턂ffkSQӌknn"Kf!zT0v3%J)e۲@Kú)Xk]_Jݘ @m16M{8{&ZX(\̃q3iQzhgNUUq + LTǕ=BqWӺ}hW ]%u'h!5a@l] u(!|a-5; 0垭;" K7v-g [f# w#tN[Z YS(G!f'טګ`v)مJSk*H xrG w[jCk೻(h6ǥGhxsmcm3B3bΣ]6 a{W8Į h}L{Eiw`\S Qr&X'`^sԫ9"S&ԫa'gnl&ە>Re̓8V=,m^0% \,@nAߘ/SUd}F,E\U f&2w4Ϣ٣]\ e/سJ&N6g[Id="q0!^EWOr.0P%Ƨ %Y(".-!rq(y2>KQG"^04{ⴣu M-dY2ҽ SZt%aİU$ڷ%Ԓt_ /oy+d5~-Rr> ӷ -džgQV^fyMْ%!!Q!Aaۉ &Fw@k4kPmT5kZԫkkj6-kjV [,jV^fs666v6@ +~}:zgo;v~ .Мv sуw#HERЕ桯FIVt S"K 3iU 25e/x&TW;Dgs;V:׆;Z:8ܰd϶=gs:<@xK/LJd5G 휣 ;7'rJ _KF9"%ʲ:9pe>D:UyG8F=elfk#NTSљՇu>-GV'9ںQzPP*8TEUgrE}|Hꝝ)?=jҕE|h|ˎ%"U#->~E?=UcC ̭)T@wR>n tLdQvr<^?>Rކ>?ȵiOx>uw999>}'uL`RCqDL5*OSm8 ȋ(i9t .PP[+.DVbeԶF[lc^F07xkT;B̔抻4ۈKml!ߖ#nX8ZG +XoĞڻIys ̞g*K+YGAIRG/tcdm&֢ \\# +D+.< S"XCe %#W`R|$Ũ(7D{Ԫ[oF3d5Ek Pibe1UZ˵gKZ7(*^ĔDK]*|-FiWڅf Y@EZ-u2XlK1/[-6omZb WhȕוW-7`<_HKc'ö[}Yfm ITiV`_;`rrp D}08BMsi$) ')mu+ +gV-ar뉘Tc$3ou9%zD`OԊm0o +@0\ech'$CEOW3lCLņc>Vjy1G<`ޘ,6b~ͪH[',]IY8:P8&sK+qNWHRcZ% VN\8 +.P+]Z(Gv J--F ?9'.,QQ!6KΝKF"9S`(ńVgZ)ld6iSWT4T'.h S}W=Q@o.M s!ުT=[:wE2K0I#-MDʆo"Ԧ~/%bf 9+ϝ9֩LWʶXK› ?ʲ>9eG 9`̩iKŴ'm{-'`?WgIUXS ˡFlηL+5ɢvyz/乻8v0AncT +:HD`c8ujVHP0,n#!%!ZKAr#Ĥ, > 1DDz e! IJfIX|i~L2?f{H{DOY +HǸAXd%fp4, 8{VO wC:T8>+(bdLү/#O\h>mLNּ ȂxHl53g+k5HB +f(LiE +QXۊ Dd6e'ne)EvOIn╺R^Pj:)yD$S$e EOAtS h'Zˈa(D)O-ԧDs!К\s|`4eb/R:ln~;쒴. gwf\lexpLڒ)8rx͙AxeUᩢz!| HYUeZ~.8f nAglRϫ=(|kvz ,B6qЋkpzpKz`^X/Î;ȱ6!@qp@6Ԋq%;q;]uZ +Y,rx +w^W -fۜ d׎AO&)0x4HuivY`Wݑ](Y %r6E#)K Kc 5>o[ǚ(1}fq$i8N7Lt؍Ń.ePfzN̳'9U1>JBܔ>8k.HTUz"g亖G?Vቷ۸;´Mл=T9|>n선A.1Û'1p%*b;Qa(>)-C (%Nh8)\WVTb$ #[yֽKJfqzCYJf@3Fܭ͵7rq'mZږ-Qzdi^/<ήdƞ[0 z j(@Z']DP&eN:z z @(b),l/b<. +ǒ&z=@jcTT=dԤ(17y2b6f^f7 $%/V&4>PXL.J.b1T WPЪOtnc^N6J6b9a7I%¼1DAZ)IDi.m0 R]M c>qm&K=4FM9eH/ΧOj20YԏfQ ($ Qb1`/ߺ.. =m $=ƪ<'Kgb~2 HKI)#5}\3bhdbئ[S(](ޱ-IM=8ocWSt$z) j"z +I#'7RTUT`?.V+ =Rc6Je*i賔9iZGBezEK7g߈,<@.%q!bt/ɧ‍j ؼOIHu~H;]lȡ7&+=X^S<0+9xz[{ H/;@=nZF `E+uB1T f``_c`@LIxM?]Eԃl#<r7B@ kJW-فyx2Y|Vk'>!,KJaca'&VNjsuk_]FQFY¼@PfU,z*%)=B@Eɻ#|u~! )_kCA u~8k )V}6nyLPP A?d P_Q?'NOaEϑhOQBtw=A*kz4u%C(dxBɨqmRʁA,GL:4~,]j EБ\H 3[*ɨy꩐@qA +ד1:yGLLI/Վ7(0ye)Ս*r-h='FK=y Jr@{cږ$'e{wp )4Ҕ%mAT/Ui?'E_сG:3fvvQV^ xRޤ!Un6,Q6áƠa2.5Wk8Cq>fjGOq.6If)8E%czU9l(73E'M,}P B fdž^{ ┷O{."`J^G7)Sq5&L4]Gk ¼.Ϧt[P$#r fceLIW+#9.>Bhsl0ΑiMl4 &|!U`#Bާ]ؕfy S_QΒ+effZnɿqvHEI_d4镬2P:,3I)'';Iڃ3W^z!2{ɘ.^HoydI2%].xM3{<%dqq6ɭ +#ѲnqGV-D +;nԒnܔGWɭ6Iɔeɩ2I0^m(% +٢ +lٱLE% i> p +;/׀5;%oIul`C:Т)}N|[f8w.(`߳GqC aLpb EB { ʾP랳d64pzAӁS@쐵-C+ktz7˟%l3k"PBFScu ܱlf؛=?E}RjH/GtQwbYHVTukR|KI|8U;@S|,z->K?kH2Pա68ue_3ĉ5=X`5žx;s6@S|RiZ7+pM9SDzeWVҸI[q:s)k3?sƂMl?5#ӄ?ZՍCC^(`z5]U=il\9p IY6E.i ڪkWEMMxp+eRb"fֹ‰$-ke.R#\)6H7}w_',@c|/8c:DZrnfIfA[:@eX7@sϹ ?m +?gfܧקV~(玾[Fo7 n|/[MXև5=:=s<"ڀP7#X9Gwt <0%>ըO]W- 5nQ ~ya=,<5%L%+{!Xz|8ͼ] Ȣyq.E"!@c%BR 󀥶3sa/V#|4aAqqRL3qQ=Լ(癮YeW7V]XP}Dxޔ- W fq2+ ųx^c5)Ԁ@DPp2 c0z|#ms[ ?wG•qAKED' F+먳%uL:6p 8.LR6 4u+8^cf}oqU214D_osݿボ| lfvh,8 0`gkĴ55hMqmYHO fWM`!jD^k Pk䎙ddFT쫤Y=O)"spo[!X NepV\r@ꤦ# j_w<| w qd6.4uNnEŴ豭ZTaZeɌvE5<ļp' +|(a{u%x$iRm?QOm5@ܿQ>rNi{%d{-#þPRIX;+-_M,XF*t@Zdӈ#jVan#'\G^.}]< n^)x=A5X>jiػơ{Bo)8=;#r\)X.mY\CfPk)6k+wJ̪$CwSP 6Po5bcP8#Rފ֎I}qᠣXfRzuOҤw*_=Ɔ cä3}˶yWE38k"Wi>Gou(\+Ү. A6ᮑk]SƞcϬg s54EZ-Xn`- ˳$QYO[ǯo5rk=Ǿc?oKdM!v?Zʭ?SkǦu_yQp|߶ِaE*g_k撦YY%N.u 1Y +mEC7,wip!=gc7T톈|o+:O*,g=+CC[ptB^7:>Fao7M{qzSqzSMI~ǡBE`C\8Ϧ|=)ӛA@9E"W?Y facVf˜$]9El_zEc۵Ab2{Ѻڗ%W* *_yk( uQ=wXkS]6@~a>&C[+ }ŝAX!FOrf$/WDx` B5}[أ.םz`Vo^%J6 3x[#LM٥mZ3 )%6':~V.Cز|2K@[Uf߷lb+|>1[, .{r|z2={@pd;X +x/W)4$vnM:ͅDgvALMMKI5}v7CՁ f4wTxW:7c MB#Fe(*{0.gH1^٨I~+t[غ5jql8-:粣#%qE;"lO4P1jo/pKyb|P$,1\@÷(q]sssk3sȹ"Ν?M3H5usdN;%[mPK<MA\ k!!$A"ICd|oߕ|\bz\}/[Ǹ7Gk))8S=1sc)E;$is{\@#bo=~<ȱps*oiq>Y#ok! xo'3z(m5/1߲`+Am]wwqjUO)8Ec|a=w.n1G {rWGg +: R< ڑM>D(D ̀ CUB4Id lnގ7B0=BBCkO\WQlGE(O&B8:Mم`klV`i;&0)W 0w#M8z b@˧0=<5V c{ XmN;pSQ:#:Sv$nM:dA*8>N!-G9ǓE[{/zo"*oI2_!ҿ4( sfL2`9hMu"`MFm\f0Ȣq*¢&8IPr0p3vM›(D}<9m=˩&NI|L>JW#>%.,W;m" wd] o#ʿQb =;iZb#J<\{vɂ~TQI" RR~i@XKX+(su(1cvXs'}&DG$v^rTnX J 4~*d }bv(<\Bq^zlwk2;;8:l-2t.`BH젢\cG;H)YS{dwEʤQA>13y@]n a&vӖ쪩H|(M_q5sGu҂IՂeGǡ˞}#5xhJK+̌led'Y-.UKax|f2Wz%xRJ 4<)05 8,к2E0&Ӧ9h[O+йABz{ĊJЩ-D|>PnqNaI.3wkuWmXCWϣg45#+pE,Aei>]pk ݙj9 Yo1[vsóxYb l*ač7YշY3 |CѾOTe]8Jz/QTq̬ -zv/U*eR ;rҶ6 ff)n&:dr]:w?򙮒>m7$;}2\}}C[wrYghz*.VM*,8a-1ff^5 ;@.S +6#?5-vlB_Z",8>>RQ^iyxAkKKsQzyG_\nTZӓ +_c%H:W0X)aUg5`)EzyVkl:ւ]#:'X=:e@vؿL3%SX +@lj i ijr "F1'%oߢ**Tn/r:snqrw'ǻQ(#&x$;E%V 1# KW:%k5=l{:pS%=mDكfC1+4Z}8r7G?e!g DF oE2YAXU!l ? p~SZFnaT!kMh'b/< f_Ó!E{nz"X FXl!^jcپ V[FJT}kvu?V" r*[4=W<=I#r[fÃ8I\Z!@FRm@I8K%(B;(Ġ\!)- +h烀hP2vRu%Z}\8v3<^.K4oAb%iJ5Y `k[`|%Y3HۦYijL{pNar:8bgbҲd[h!}Q,HtG|11 L` qɏж'gXm[Գ?*ϸMgd1bѥa1SIOt-ǦE9}"t'z7Louf0nuf\lwkGHu_qk٦ܤܡvpLH4oV:fڎ<y!gewFnwflL8tޜپmC1OMc3;8gg'g lNl} xEI Fޕ %LQ50{CsxazɇRޑޡ!(P-º{y/ڤ96up܇nYy}ӣXh77(68;Y>"l ƒpY@8%Fj$!.Lb2ha:/g"JEjgVja;y.?j CTS+\ND`Ի#35gsMw_g3; eo?.@\LdaF"cDB"Zq"Dl}D@2ɤ,Ujii9t96=^-9uihT剴:)|>uRՔ@I ZGUE⿧B@8<2H.1x}Vaw2)Oʕ5v8XnJEbcRMPM,Vjmtfy5:cm.ٳk]3$s%W|/;9Ux O>EG%Ą8o&ҋwa\lGgOCMRl>LSpFIMA5W=C6.;ƥ9C_uVr3քg' j3kikDXͳe +PA%HYъԂZn%F׏ҷx]0 +,O}9BV4<3YY`zd nX? +9rvM1!HطE1^O\GQF夌OjZ +1^(PvT3 ]-Nwᐫ6O0̉RK,C՛'8Λb 2Oi982cŃS2 R`_z2bPKfRBI ^j̩*u:tLgQ>W/ &TIg$&x888)B% *## +,0sI?^{vѩlJfhDyjީ =tHR$ȋ]b c־2޷!L*!!/1;kq9΄E1zK5o˲ѡX5 1>u +AFc 2Ce"$,Ϭ,IIv-l']vgEm_?`5{?-tVVO.S6jZPX~A4"+ N&yZuƵPoOjpiiY? 5}Ck(w&N?HƗ \C`fPzČe/W"ެ2/s,ru\iY.B8:*ZL`\Õa0T#1_#SUk~rH/F9(BmQ-|=9I e32 5ZmyxG'_VsnɜQ]XÇ:#i,UMYRK/u$ir+]haP !qq1U![1M-|h$oE6{"l`VrN~JnLZi+M-5NOPGʝPD{Psq:.kus繙Rb1Xf6R0r#KQ , bHC=QsHD6a0`'[Jα?.@#V@x2DE]]s+)8ŰǂׯΩO 9?!X'#cpLDWњ!SJyy*"Ψ)(ʵμMW:& .C8H"o57a\/&QĈhYU~7JiCWɋ,; % 'u/f1= u|+Ӽ]Az҈*8ݡܶRw ~+u+Mo~ x2+Ԑ$B6VX"0.|!(JT}yȡ<ͦ~:tՈ'T6X5BP!Lh6iһ2.-N/0]Ҩu=Td.~rB>K|gM#+}L_Ec5K*$ӓJ[N}̩̄`\ۍ[':h ۯ?r^:oG>/@6ax!rB)MzsAx9Wk}5&W#VΏnQk`8vX^ݰrnr2vo:ޔQ d + {#%hTxv 34Pp$t-.?\[<+|lq+7PzgQKTlݰwY{w(,n,?A|z`y3g +ϴ&И 0!U%i^젴{;μ0tV +s*$pX\Nt9%k=_Gxa 41s +Ŋqr'ޥ0r :[Y)2,z Qx/"XY2 +g>'/ a}_)4#vwBVP4&49V39afsk҅75SW#]9}Lc)%}K==q'1M"pd2b6`+4(q`0 ԜaۅDѠ#[tNjyY'qKπvxjJOf)\sc2G6^An84tң:)99d­US<3 ; pT4qr`-2`>Qxo  J?%noSgri$vf-`"~GvSmK}9WEU cYtm1-Ҝa,g_`P>U8\g +`W#ǜ9T4@.=1AvZa4Ү<Hm)9 T1Α3A$/fz>)Sʹhr=ʹ{|^E0сPWf#%G#t, FAP\Cɪ~c&!,BR,^H6?XXoER*Yv}1O_6?۳|W +C4j>_6GߵrjF6 \tOz(V Wۥ.Nzqij^J +Ўƣ_Jכ>͚%9&>OdK*eIodb^ GB%veG 7dC9\r7 sSi/ԎDOCyd*d۠Ntd_vޱ^8 Š +tu/PP\#Nh 1nb:Fu iy#!294jUJ<RD~j#3++Xxr'Af2i<0/˵B<쫷{m JEh0<h޾_QuZkz=э&C>ʑ%#`:9ԣ?x([1h~/{R:h/%e%&r[e]+EJYx##+6XgLSv2*V5[wSrVUC2 +𱊨#^Hڊ +*(]&1tF;0>k'R4-S=ZyϷR-ta+ +NN};|mZ+UʹV2|X3}HsN +TFT4e` =jڼeRe- +,;vhL6'2{`wpk8> x-W~wF8G=6 Z 8B H8A\qUE@^^08")_B1t !U Xڧ6<8(5kr$Sأu[״]Jٜlozw`ԻڏrNjcd9v9y t#ƉS-$ŘeQOe +/쏥!N)ЦmBHΥX=!Ck4j}V5z$A@p]TRN#[GDi@GWRz` +b"ꛑOJi7LghB +"9݌ܰi,8C ^6R53O1Yih^__TNTo<2u }R 4k"o H&fn[wWV.:7$(?@pr?yy㨠5M24[ Y/tw20[d-ҲJXH&6&OGWE[Ugzx#b(mH1QSB ke)+Ztt"͘Y}j̀Fn'>\_%*vHWUlmނ3s!"asw1bL@Uk^fNIPL^L2RBM?; $,m~ǐ!MG5!}Té(9} ^XaJaQV"kÕZoD|Ksh*,eIA#3U !7G tQӜMBb%p,l¨r}'$J<ѩޛX>WƮ(Sf%*e(92+Qѻ3̒9SlXluKhV>JܑfI%]\R("^N!:kb){ +`ѧxk6]ऻJW@Nc7bC-;p ;?9A]XIJWQb[~CqmD>q= +  F +i%POJQ"o +wFZ͉<&Qd眔kF> 7`=pԞ4r= F~OJ]RZIY!wUSpojSX|w3OF2PIaSb+feiذH}Գ<02t%;yB]rJ^qu߁#-bWu7q%^vAKQ띞R\;*N 9 Ɯ+j !|-'j_"96K E]b~J!76|N ēK7(3s +em["A.k]H錝 "r +* +lIB>ՀsQkBN<ߠk&U?"]2ڄd@v ]Zn{~N_V:Zm50{=ʼn,89J"c[8cgI90ܲ6Y}G{!NG!cޓͳx ]ThνͣȌ[WaKG!v9BPoyVn92!%6zz +xp>sEDuhYD! ᔎDGLF? i8S(1I +ςƠؓiکaC٩3ჀεhͽBh%Hy)(i` T5`kS uj̬4oKQYc"yU?KW kɮjK6:!2u`b"ˍ-Rp= 9k93ZVwsHJYFplb@y:իASJN:U[)v|\[`l[ -[r@A9 T5,8GRhlSyBYn n61-SqLJ9m{G$!PY;῍'Hs0DtV:]?bV6ZZZ.rJz 7rqSvt HSOY +xd7q rޅ;:tf;<4FU@%8nt֛3\k9 ;Ba.Y$L7pf9&;:(4&@'7^UVMܝ +MPӜb8%j($\P#;U^;V33[ n6q٭|&S;2kRH:QtS0Rit9K>23Ji v5ÏfwZ!Sz?S#{T[V]s()88V J~@Z!6kES}51 +w<D_:I3d#ꈽz5 )ZF $*(qz>@oYL>/+&LqQ hb,gOd"tPB4ȷtVY^j~uj6uҙ,7Eta Mn*R"w2Nv9_^՛cc\׃$&3ۭs#hBI:lBGNt߰=qO g/ 6rL {/[( 'dS7UvO[]IS03atAwI[rb #vlOu^'9l;S vǝH\-ɇ>ٝQC,"`.0 'RBCmҶz)sT+q]냾HH*U(%˰w33Uh?%֝]8G 2 j6m=vrB9_#aBn_H~;Y{*u_Pj`+E2[7;E#x~K|J r-9T *͊EL KG*BDWyTD1B1a:2#"}ҋOa,bK1ci+zWy/ Ae!=sv"(?F=K5[Fd@lp0 aDf:.Z?RLR*p~B@{:ؙ{Lvo=lvvߟwc85!*he>H,"W@})@E'nbi7GJ[0BO(x~$Z_&qdUKMr;W`;~AS/EI. 3EK? 0r&C*J.. NF'z -Myn=U\2!/Z]1.4.>5nJ@j.}]X!N$?< 7͵Q4)y1G4ؐ0$vG1n`f6ӄfFpW{@BqjBwz`8=cU˽fnįRLO3ei=As MՊ[dIO>F^𢮯:}'h|H|F߁66’ Pf^\ޱ%>!ь +D,HrVEn!NQ{i0 c߁-0NM0 PGAGϹ="+]*P:޲Kg .P7}4m4/ +i<.O)?:`hF=*_&UXEAGG!cR2FnKI֏ݤ8*9eRHl^ar6G&D-X e&QjKP=pQMbo׸flll㙻]oٙ'=@w#A{wUrטRd|@ջ>Մb]Yd&i) 6_<I :Xl)Keu@W\=_]^MjMcWGmgn&-)j-iM^T/hv ;GO?LϼW _]a_.[񽄳O, {}ߺ7ӻ%MdE׷'m_Ȏy_7)ooOxsO8v mۻiM-`GpGy[jGy[.uq)DO~)or|O;V߻OOҷp g)p gʯO"?PaAYPԻ: :N{y4X j[ 5#ӘH6Asi[I> [FO&Q] b_B82iƅn~ęb5[$JB' oJ2R䝷=̂g&j:"Cl䃲t!!ꗒ2Ny?Jwci}xRpvu%we`";/Mڗ+BX0!O뀡nƖ^H/덮 ++/n{-E e&ULedW&ε6dt%T[L%[blWbbip7V:k ∍NK +*#p̃YYy"r# ա!(VA\D P k8ar~&mz`oU9WXh +iBdBQR:ѩFeg%0( +:Ԥ0UؗZb϶~(9 `JL~'Qa +:ׄD]C<-P,wP׷ ;z"V)M%#p#Jƫ 6YB: UТ>D.\Lo>vDL6©ohl* sГ8!'/m k, +cn4uJ~V*Ń#/k: 57"VC#`a&"z[Y2DTkOv߉MxcV J4o?I-|7WδдvIh3=X˜\CxFP'zB+Yez\P6UfJugm3[*kJè +skqSŭ]ji- 3糦( 1[Z]Ϡ7EWCN]Q\nG<0H%e,ka9pX4ܘT]~F|LK[2ڽRPr)X*rߜe彌I^jʚh%6w#3swDA3awr#үL ]rȁ-( "pI@H6.>~( +Hͷ!]lʺJ*/*)54$ĩzVXI'%uu4?ߺ‹ؿeȈ*fInSaGj!^'s1ս쏝6YMW[W? + ZFdwK ])7/UBaL{19J}>@Ip[7y%(L&2d)`!i -c$!Ӓ*Um-e[ޜB҂c(m'K:cE]5XESĔpz<Իh_-´ƚt٢ړzW(Tm&'꓊*O\]<;W@,|T4Th46?+$6oe +75оPmU %TuL,^]{9Ĕ FPVCSZZk^e4On~sS*(D[@W7xJ_mG2~BphT$>u2͑wӥ]P&j.~,[Po._#I ҆2ڑ6oZ ë ͬN1>T$7g٭:e:UnE;xs, tRz[\|[c*¥%zMݩ ɖR<il͵9},G>}G1dbnܫ&F~ ,Gq(1c~YGFt'̤ˤA$UiYV잝 +i\Զ6%33N-J?gjG` ..JudOg}KY= 3+ez@oJW\]&5}UOe\뾲'4m}% 7˾Bj*@+@žO2m]f8Զa.-*}]@er)R;+HSow ɪI(TPy;ӎd#D39 +\[Qg]j)C< +5\k5Dɲ #@gjWvMTc25A 8YqE;AMJ.ks W?ZjEy;>GVzVfc?\JM 6gg' +LjV` gСX'mZ@MH; +=Y'ԓ_7[<] 4ږ.22+ɴFZÝ,ˇqQod#"+5'hɆ <'H(j12#.`4קԢu${m&#=l?&Qg,'=JKRX3-݅s.4Mn:7f9Aͭ%A8`*jGVsp) +Q@W44Fޚra -@,j!GsT!95"XՆoUI6SݷNv?EJ2VyGqpv]p߲dSqd Z0Ӫv@ـװn#fU|=ٗ\BW NҪUiyvr!U[EE.BXr:KiSBR &a ;˘A9'%\HEnL\h,'m:gF癢)·ٜq.ӿ_ݨ>%|:XLsWooX8U&5+$pW}%FCPs 2:b)7G_15npros-j,uV&wV~Vmꏕk;:$t#4)( +Q7_hJ@zTHdu>#ݓoR24Lo*Y`o=ua$tD8!r;;B +6I`Ndi7|MhZPmyz6McOSX8gWg;37]jXV)ʍpRmX*Ԥjٴ?0y-R(Vr#㫗rĖgUxJ=nRqC;xlBdZ2׆qt*W} $p_Ub3)E*[]45(E HLsUIo TtavZj&zjw./M*}-%?;^i.6muh ׈\3NㅓjXp^~08,V wzFBPyG$ ߒ@'xؕUy`rE%5wa=%n%x$vF Ix +_w[(+ʃm)S=d (7i-y(>}8FgN*y'Q=::[%s5#r9'~ܤZ+65qm'jܙn6{-ZMu ^}rBkRva7mX>妌oY9xA.",@ِ —R`dk޸Γyo3GZvjכr6ЪՆ1M +pr7Z?z ~ܞa ߸%i7ghO=M@LQЉDE7WG'$g)߹Ў ZrnVr.S mm =4%Ќ Ƹl [%&)rH^͆n_ܡuJA"CWwmt>Ox 16Ɗ3RLz k\c>xM1~{ ^Rg؁)ڒilk}m?|mH+$oZ0,Jk^2g Nu?gDPXQUkKRh2tWAê *}{>#%5e# XůPSEx\%6dof= +r]u +F\<$ dU@sa a|_t"^HMQںu\NlŁ(Hzp*f}!9:y㶖dⴕrAD_blƙYJzJDLXòTUC\%>HAٍfvdl 91E(XiCMA#5FL{v!_t}Ua>0[+c>Xʏ?Mc}ʏ~Ï;g.ì#hrۀ?d73mH4s4hAV-nۄ& 6!\*_-xf&8g|m+@[Skjs5ssVꉡjnAIF)զ; mJz|4C:l^`R$=*`Xj@Б{P1 M1#$5exSҦ~F{?I% xbHK`w\mm/WB#dsN}%%[Rh1'+ y\R^F_m6]@kgs]Ɠ635Ϩ5V 2h +^"ggtE "Ԩ@ؠ #p58FUԡ"YkLmP[}J}F~;zn&dE+xI L07*+f`%A^?^Ϝ.&ZK8õ2CJn(`x[\-M/E.((F*Uam8\Őeu<\ .bЏ JnWk,G6#4ܡOPD#> t ZX5k(ZbJ幐& Ut[B4BMdeS 4Ŗ'J]ui!&xi=)7S†O@\4~4aFd+ X(r}AHrhC0OyFn8 /"E9[JSAwSAnנˌ)!JC4 m7OZpt@O}7z=TH#N# X +>o߉Dz\Q)hx,\?# hU{jZ/V6AjAQuSZk"rۤs +( 񽈾$BJ`XuH(j_=T5bay2Eݽ]儺yMxmH%jB;wHբ8h(IjPy'MԻ)9N{6at5"KB'RWQCَj|ЖSUƾNq%Ga'O;qySHԵ7m"I{R"";Rr0Hl [3r1yi?X\٭Yu 8shpth< X}5p'q\}F34 0l%>|s(4O;1MUA{@c %MXN<:3 @Ag 96P(tnfHfv\-*VPT{߁~DtRgt,gqXgq{:fI$"<@~mf':yP'=FWgG:JxbMO9#3 +?çxi:vӜgb;r;:l}e9lRCiISF8Z N7'TR?cﰲCӱb/(T(u݇]P?>c♼Jf;b 61}PV$gq-+GPj +(vZh3 +/ -հ UReSa6'j5v{[`+GCeUy;an-'g?o:=u?t܍5ulvMA%`5:8< +@J:u1yN88v9qxhrx38qtV}pYq47lsNAM}}U _H5 4g`3'O?x OžCl)>C d[:zRa 1EE߁F,UFF$+tF H} +S tDYHKuhrzl?o6Y@W ГD6vAyGǖb`xby 5glċKYƕK1˄e٠fm 1?A6oݟPzLwbNjF$&(o|4`Ӟ3[uNv֔3FUk䟲r 1diKvBܦ76V3~x%To?z 10 ȳ9mʅOiIO:ꓪ;6k@~$O->ۏ5n*?I'?~?eG|R$G95 +Ii|dcޣC=L>=2CM#MA~G=bh#K;q>"Ay$O +}D##\?(ӡK%^\>vx-G͟}BQ#G8QmQ-a7E0나 r[tmiZ=niZOtK YB.vn1%uq V+U>vommx/p+0V`pk$\>5zzuEtK Cb70Њ"ylw̰fi#B]8NSf &C솴A@O5&ok*7VFjn0MʕFƴ0VjU+{f63';vA`nLfOAz!76D jA(<[<[#%[#w+[0',E"06Pk!fʦA7n&T[QIfo!Q5y]Wh #Х'=q=qʽ`Nl-$tXs5- ;&*^R%(3mZ?K0l>oRb{ >R{({F][d/,CFuP(3?WxP`( +qoW4+:'+?wܠO_A^$+U0*!$_F:҅`b'R!>_ J9|vKu4M ,Kyhf6u$3NdN(bMd $ZI +l6ͩ@"?INVZlφ:_Hy-q˓ J@^dSr|RvoQtYڒgKVmAl5wznH y>6Ⱥu=uwsUuj.@\ ] k>4B]~@0| A_gMEzcih֬Hmb6Ja=U ֱ6gf5=ťrl꺐k nor*mX~eYL&.GIwvSyN7~wOzoMRStRfۮ}|VbR\K}PO4_j+EZO`9aEB}=gԍ2\ ^sj计==Mj4l-#GB,Zɽn|"?@YNh⌼LOrFW>|2sU+ALL=OsчZ0z&؏-2{햛GΡY-S"N,rr*tj%m\ n6uHDäK>0g!BRpPfR4sg)bo@ɇ:at23&D9WJC91&<:Lɇ6o%!yAC9>y!slVBza[şf%Þ_b1%|0LU g&MAX I=}x YL( ^HNˇs +}Z*I@}c-=aFd@' |~ Nl^:oCOML S&ضu5c+a +atsXE?FWRIܸ@OiF\au6LXpC#F^E1;c8[Km9:88mS07!e58pdTyc[=e :&wHH?~W¾&T2IGSbmYrjҜi1]Q+g&m(N z `N8>0(dВ}*7x@ Cc,f c r#Ĉ1kf1^y1QAќ\l{3*N)}FӠ1KM$KΘ 1a'7&bo+`\&P P64860ٰ+k>e~kA2e2Pa5)n;vnc#TS%Id v}0=VY F?&{IBg7Hԅ BgBÄ{h 2[ iY5o A@:oȌޅPm>6vz@oV#48z^'086`#5U,1sd:خCu#hہͶM(ylW$amÙpj\\=o +_w!:!~Ox?W1![Tf]yqʬl&i=S:afZ߅[89$v,q% ʆ!2rLy19*.`q +D*s6+0AQ'q0ty~WP(p1th}BCx-[_;eEGc@a~H=Dh-I~M?/'|uUTO/!B4C 9E-qdD!)=3A[7~ @@SMCq%hj' ݅y)uq[HoVWc~(H\X#_U}U? }B7>Ub~W~333MtMtttMnkOdMO%h:=e$S ZѤ̿n ?&}ڻzb۷,դ'b\7bV0}AdF,7~kCYRXwo%SFظ055jmC/ߥ:6?pq +!|XnN8YU?[ͰK]]Ť[VGrМqhaC~^m{<'!*[N-Qղqcn@sv/~`_N|=՗c{ՇI#c TYslMg6*&HGB7`Jo׻o_ӿhn87{Us.sVW,g ems9=+ksk-|*T߽*vnlLUaGGGWǫ5VKVGDm@ `mH[ZX2hAЌY5ߢ +'QiTf<%HQcҠ7գPD% "/K;sa C;sSQ7S$VIKʜ}q+~eBw[T2l_]C|MSGs_qC +-m/k~^CUlOCpE&D~b`p'/P0c"k@eZ AqR' 1xu)6/90%mˏpʖ@o"1}\2 s,܌IJESHtqk{-ډ@-v%}FUV#' (9Q/ NE7xڰ'?,ZĜ=جZm07S.@DFv} sKj!lK& [=O86RόyEB`)m*nq]9b{4ihgAajO(C0gk ReUܐ*g=2fLfB`@!l$9ҍXZ5һUGa2]]*JGbV_oCI }%8 _oJnBe]& .AqG`a + G ADL'\HP:h?t# >DrDQ)eNe 30iK9C`&0e̜0sFAN)Lc\A`)0f#(fa N+cس#14& 14涐ҘS9yfNeOjLӑUH ca# +^ ͸_7L2! +"diAos X*,dg4eRjc4J|! +띄źx0e7x@(i87VRcz:NKns9z "·|%lhbC ,mtPV1Qҝ/YSb- 5'.y+Uft(+F+0`]yOQoe/Ώ&L٬5^})}[qJ+C`\ G0Qn)d2cV9jkbm #@GUCm-,-@0[|.u[GbikD-?\ڴ,’4E=ܢZ(q D=v[DT9ĝD \"e+ZaFlvd ;. k+j(?W5uCC²= Z<ӶϋZkqsp P*r,o Y q&ϴth6##&M=1Q.:8yhpCb;jTjHO,ϵ[ŷً:=_E9 +{"WoB/\JFjpl"n,UpcBe#M;_KyQ-6dZB ?\X!Izj0 + ϑJUcp'&{4ij vڑhmt ǭ49+}G&߻[ Hw>~oxs4 w=䋷} }mB#l 4|q5Fƍqm!:5'ڒO,؁Wgz8`#Q;Q;qb\~7 2n!S ?&X r^}ww!¼? '?p =Vo9@IRwk94)SYM°miI|d+: a6GUfhP^[ʹ1KqxZ!2tpCĂo cfSG1\r  Jɒ~e!/n#ƈ: !NZĮ|z^֖&U[t +4z\BZm6W]Qfdqr()Bv"Y1W6O[WeHjk`6CA)g>/YR)ImyѠʅ +,CLLJx*{mhIt + kaŶWXվw? Z%Ry=Pmzjz4_%Bh5V%FSY\#T@G; WWUIkϡUOzl!H'pUUP㤼罶BP=]hk{T[hu*)][h:nl!`X`c*[A.յxOת^*A`Mȧ.np HlcݨCbnRZڏ9աiqUBA˛F!C9ulmHfp(s>PkZCyA7{:]}D%j>+ǻITL0WӚ!K*ao*\\ƅ:@Le0L6Zq_e*lݸI6Y7lS߼Run +3^oݾ~Uglߴ֭z98vھqSm<0+ LF܁dK1'.3!P9KbgB`2r̖fV$daH \v# .P `5D8!@+F usWΖ87ǝ`}c2N )1$ù΁`NG)c;n|̓~#yhoaNLIo#0jdAa.H2jf[.!S(boAD+Ӱ~>[emYǯ-4([em6t$?)܄Q$)]J v;R1Xgb'$BOMP.(_sP?F@2eW`z8|/ l_Q;!Nˮnn|4 gLDq:Z?P{ *D2*H!(P8U1Tڭ\.ܓC=0ڱԠoPݐYO N әaաP!< GGF =lr&7t)s7tqr\ }rubY f}3^p"PZ]玟 ]!&g10&/sܨB!>\T =,B!,7>H/!fd MY1>(O']K6|1xvO2;nK_~3O_['WF6`+7 8ϯx/r.Ü)yy"bd1RMQ|b+~>!r3G41U<m +IΠEfQe|k9q\YeB!\xkP53 )l.nč Gp%Xyq]bHXxę 4-WbG\(Qˁ*z\o0x˱%ՙ'I0]6M)7eKrs9BrKf+kgf`M=!q5Á*(d U$T@%L8 $aE2f{ 7ؤ:g|'T չwo?(uYںDW ­ _](N#Rǵwۊ߃]oW:E)ͷ`W#)xO®WPq:λ~9OsD =*:U:U|9Ӊ8")AU첫*800^[s5Pz,DI*9jD^:jH.g2 6*{R齒nMRw'ۃґP`sS+(*jFvʑ"TIu_="Ƥ|0fikJl}mס±[B[f&{G?|+(!0Dd eM#0DQ ? (( Qs5@lQҲ"(MAm#6dCfE`$h 4>x`#P>}SmC T>WV~{V~c@M-65%եK:`Mhi +( uLj#E?!ѵ"m{Ӈ'?}V +ⰰ+CgecӘLǁ1=ǁ0ȥE+(Eŧp|,ۮݾ4qh1CVb$^EĕQfnb0؟?%}߾_'߾ +uxGOk70jPdx ot]0;y#)1mAΎTߛ z0|h !.QKS5_/4uxkRºlokh?*uji3r;f&w"wJz>) |5|R:W,b] +:i }ʲAW>҄t| 7 m?9z?C?yzމK^( (vЉ7>!A~D6)Xmn}Չk~@牻Gm?0~*!q;~2?}_T:ūS:!g۵S>o-}JHK8>om&WKhjo?Y&om?-rȾ(}cpABIv(>bKm"(4dX$OW{ii'S >Z$OwYSl.b.ݮG|J|}[SYpv))cۣOh٫W ~jIGƿ}/5j,p>tG!]~LW/&R*E, [ҀOzu@Ij#/W+Qg꫕U,i.2Aݾ[n)*wt;p;7ٱںibARUdҿ*D[&ݾHΚOQ52(&|m֡{Dž~HYQW/V2ē0qAr=k V?#)]nEճ#@`?*-! Ԫi۔m) +3b ᇛ6m:pgW.~Sӻze:͵7 fMq@ojt"l:n6!J =|IyQ%̞ UKDX! NKUP%ݕ' RD8t|]~h6y1yRz"4g֯RZߖ05}Ʋ*SÚ|1ʟR$-4 YeR#9Ȯ'ygR]u倣3d +yAj&22n^.zkyUrw): +h1]#h'0=O1_5>7!/G)N3-f8/RORp͉;.x L[28"|(JSPg+\mtݴd+kџg?&Q%p-I -Oڍ*_\MiXTA]A ]GE&*YdPFh`+O޸5eK&ISdޯe|K}[WBM*[9ϹO'|g={ (b`:"cwҬq@^E"[<}HdS3`ϯPwmAD^xHO<!JCBP[ +!N-e]^38RcqNv[Sbz!Fn!/ Pu: + +&u"[c7Bi'2wNy,,teTJٓ 6+G|6)5[f(LCk'\NK$WΡ +K8/IklԢ +ixwN\A5EV0.e b +""T4PSh3Cw-)3rr}ӯkЗ"ofOoO"g99}7qfyRR<\Z2-DFv*iKL  +nYE.Yuq_26hKt'qXfGr3Y!^[ԥ@Z[qsu +@6ؐyr6r3Q&8yfxoLw)+.0 @u1fָ!%rW@RWQyte3lfwA( #q\SǠdǛQjd6TJm%"0+qk熦)"rw҆<~۝X'H9(+HR2#JatdtE8' ./oU( DŷoDnZVzJ-=N2N}H @!抨P攊A"Kl(f*( qRv)zf۵sWh WyCZ* gk+XɎ1Kڧe#`wwcb *$/ճ18M:/?} sJ-XwjUk-/@mY8Rxwف|>:|G7EcDPP+-B'^~ *(3"U4q[͛o}Eod[q2w$q/V1jp4le.77䈒2KZmVPd1V$ v%U}2q^ J$mP#۠-ګƔv*_2ԏv⫅}lp01E#/49 !4x%{?` ➩|e1 Wi4N_ h ܾcQ?s=Py|$)@doF7~D&Tnn0 Hc,MQKe]e TjL[P(DQ쳥e}wL.bbscü河Yl^z=fu26T;.z8%ܦåMt3@3` 3L!/{b<` O%,h0L31c1RfS&au<$`w?@ Fœ + ) +a"*ث_L.d ىANC|ybk@`Q +"il}$:2 +jv8{ ^Ϳo$$^(mPz% \15ۍd~C#FI?dPK.#zjH`%ڬBFkzjZ=yc;7=ZGS`C1N t7%@[qXy0V< +>)nTO0'[Fb`W<TArSi7*:AFJTp)T 4ȌkfbʑD!kj֘_uV~tr+{\BһWF`k}H\Ӈv%w g`jف2DZlC>1]FQ|s;75wd (<>}rʼn#/I o.s9Gݣ(H`G)i$$dj*7s?!yzfgD{GRCg#,aR +tlcuʄ1\fA%W)8'fB}N7ҩ]T?zy%:i#JSOZ$]:F? WF~ZsNѷaڒd4knXJyQm걜3lG7%gzHȻj,EE#.c[,8idmY"H#=?_j11ţ98#iLgh@eďiCdI^,չ|3F1nP@ɂ!77h@$_L3xeT1 vnXK:5e v+ ʬ4 +\򳟯OnXz#Xk A+B+dBϦ!ΘbC\8aXc#.0}v#BgO%U.Hmg̓y f"U`lW!<М|\ɉA30'{($%nX<%2,Hn qd(E rՒ~\q + +gF2ۢ_ըvJl*%G6P/(ZO>w <ۆ} ;ɂ*bz 9ύRB5pSslK.JRz_ +Xg$H~ wIIfEs~D1k -laꖹ\Ne%esa-SDr-_H#NĪl7p +mTꆔruH_v[ҝ +Ygӎ/Z 82 A\YwyŸF厥X + @X_+6g3FFRB^-}Bg'lMg(:{З/d\wnCh{F5#dG=Ŝ%itO!,^Fmrf+'e4 + R(G1ymsQ ߷Twu261uvtT5Melq_0\h#FbC`m!b9 |aA |I4KiG+㝹w3gi$tQ}<%fBʕ]ϫ}?pQy1 fhDt#'! #; '@jb[-e%WC/ d8zYT`@hu q@A֖+A#m!OyK +KMbGl?b9fZEYx醑KiA XhM;y eM,ڔmtc04$Yyof;2]1.W0TP~$8c it\#\D_ԋ S v9 Av6(}hȍ +RL3j9LNja&8MMA?S o f!ը׭Ž!SRlM1Ҿ5(3xN-ĭJ$F,"'O's`0GBe8^,&:}גNsևCֺ32˚_O(7eҢnڥ^V=bD](JЌP@eW dW!-.KT}Џ~Qx +V4E/%?WሡW W ֆ٦Wip3jnSކ6h2/b>3Ҵ*s'F>7!X,,\陝D PH m0 33bb_-ĝd_+$o;~"Ɗ k\$}-U5WjA PD ~KZbg$%dXhON_k͸ Uoɪt^nP('qQ Ϯ(Oa(hP0? GzdlWT!9eAJ@ 4~IJg[DmdT?|9HOf껜K;bj\꟔'rėX-P'N춸$8_3׵)m5Χ?FF|K%S&yö([7_KX,WUD:!Wԁ䡝^IR> Y +S!օ'T|D,EN υxBMg +! kmN woz~??z ....k=]TNQf?13QDdd"1-PrÄBSs? 3MP2~zDdyt\ص> =/L^ŦdF 1GF`%R#U1Yl:mKb׆ɾeZ=;#cQc$r‚ +"֚hlK6-zTFvE܏[de'(5ȴ)Y/&)B rȘ8RB3*_p +7l$p˩S"5-A{eUs +'sIv_pŶChP*#秊xbFD8WOݳOUA xʉt1v^S' T ,jqc1tǒg.]oVx)5A2Ћjr0k spkS[8^Dƕ10xZ/%Gt^j`68[9|"31wSQTv#TyOT~C0~cgǠGT.n=3JގQYQx#*.bx{$6]1~am<z ~ ߓJ!=mg!}*_\ /H_FD j7'֌Lu2q#;D*nsJ#ez-"m-\˵?<>oq3U$_y}]y>9SJzSɻFR5fޞ/[Pa?=3$/ij$7!F$U9B SW汉IEK/ +Jm8<+4xQ IF}"|Y_x`D;H$}I\B&{lm_NioYc{kBdICЕ֯\h"I(/ ޺N +݊8J y*|gC \ R/ I _!<)~*Aқ)g|d GICL 1!kf45i51ip[ϼ2#l[T/.$㶡%݌ks!m-yxwmŎnNR%4x@Ź-W8|Fe9wb>;y>Zzvl\"ػ`bw$uGWJ X^`8y[}k^GFh1ӱӱ1*Ά X],1nqe&Bf:ߟr%Cn$ia<=0=)VΓŜBQeyŝѓ2(.'=}Q4e#jeuG,u:1r$=G+K'o_?LS#S&paTf[+lөᇜqV䍻hި߹qz􃳿߰K*:(UcEcXzB#tJQdwQ +]#;s)V=+E1B;iQpPyDqҏ鏠zH-J"QfZtTZUdP&a/{x/da`QlU'XHvu9X&DvS(x{^bYۋ%%I6@[DV(E#֪<*A9AfؑR{oүR$2xӡi3׈ >#{kT@j—;ߑ{Et1&ny%OPz]}OM"Gc#~mcWloj +[WQsPo?G8`ViODTN+?bA>(X*C$ xFX%@D$.!ٻl^QA)^A7Q[fw7=gQ{wlܐ'ggo$EdtrK$K|_d\ hN-p&'zF(:]g7z89#vf,]g:;:p>4Iv.[g2VCG4EƖ +/сF +*R.N:ٛ."*̸ֳEt³VQkȭIv|!ru8Q,&# ^ :Mƾ˴Qϔ eeݳg*|ck% {TaC۰ᘟ1_33 -NnZ* +r3 (amF-8+!j#ؘ-l q]1cATПOSӾcߦm89^¯N=Vy7 iK4_G`;n#?mY'aavO=j \BK \bk +V͇{K\01qu\pjc΢TBPtP'fBj{MߥaB֗1j(}څ@wƊf:YĊɁ %Pf6grw΋SЁ8Gչ \6Ķ+b QyF+rp!\5&p .S].7SH\Fd1NKߝ:)5NJ+LK9'w)_\GZ& ӧ{i>wAK3e}-(1_+j&mjvHIL"uRwyqX^73v%\a t[Ek(]!_ې~4<("6TjLnvWcb&zpo`rCjDf/f +LڢO?|GK'~қ^% .,T^w$d xC0WʢO4G+䵅vJGV׸BsvEgK"R .8$scBWY+ ! Ml״0?2iЧBx|]}\{?f203RVPB8=/ZJP-*V=EXtmg ?&lQê% ?h tچ<366\4 qDa3 ? 01҃0l43̂@l5!`)l&arV1 Ӑcv `ׁ̺v&Da*1 ¹MfA~jF@3ZS FfysO Fb*$2fäIL&AcyDt"Ѭ%ʥ|(M pF|J̡`mRIbrҍ Y3zfxj{d3繋i=&n3ه pÞb*˳LA-IȌPD|5~x!˄H6'@c}Qc!RNDFMF]S͒H b۠Q-u$up5babNju>i:ȻQMwD' wpu*xE6 O[tD2ǥS>(YŌQ/nP# 6@ӈ8>Vvv%dn1xW/ PdaJCd|)S>V/? wʍo9ZਇD[66[ڡ(I'.1& .UH*AX(C*ϤQ_zXz8Mǫ%m)T;\"I A(ṕV@ T<(R¥m*Е=4ԕFM2P\E착r9c,nFĦld  v#ޓ ȁ2C8PAޟP A ){4/5Zr[vXv:(XvJOC[6gzaV(l UZ+aO5iK,S5R[EpӁ CH+6.@BBBV!U47*eV6";_tک96hK,ebi8@lAӅMvLv[~-'~\H|u;an$n'r +f?j-2K._=bZp.a \`':HvWp'=q|ᕼ:xRLbX`v-a"{Ԉ`yzcܫHVϭU=%Fpx@ Uq[Wr7yA" #AR+d"ڕ_-[҆܆VܷaF=ijL3'nzxa MW_X/ߠgGn9ǜ%G2 1#*J +F#b0Wc =~# h +m2 *$,Q%,4ة~!7{G4# RƬvV5VC{l{CFd +eNǕ㊙T#HVlzf +DL=P=UVu-*w_C[aj}r 6|il:A\bO6v[;bk44_,pry)"t &00>䃎wvtv6x+/y%4xm\f@mhsl_4))́/B82;% u"JO,UYkAȺ- {gic*lhl\%YeZK$-J|RZW]cEuQSk8blZ~(G7͔Yx7}ow$]8,; +SܘUΤ*Z} +ظvO?֮ڶ^@ڐYN hWc嚝i/c%9~fH= ZL[#nT0?bK +q)ƿ?ZMK'IwtkJd$Zīl2&TxzRӻj\ lӡ2M̦_ {r~9ʥ^8I -T~ɭBLlriDܠ;cit$ {~lϴjXs0E +HQ\^3ʂ1:a#^o`S<ܡydC{.Oukw c"3.(YIYupu_?UWn᷎apJJ *.Dt%dn0ikTE ėstAb'egK):u[*F} |>w HIsn4CF{wyUܲ`ֶOgb[-(dW_֍hlɁ0ǡCcV.-p hWw+׽%)}(A}s +etkB>-hđqH 1R>408z >w/I8KjKch +OṆxl<L$/˱Gyla+nmx~c9)_:rOxKNk% #²lH > 'qDpR `P+qP5}Z(%ScOc˹_|nVNNrVfrT(akFD~F~fvFU~ +FVgNT"x0T 󳳒2+S3*kl\Ԭ !4`j"aK?ϰ+H?_lzc߈ *uFDYdX4i)jhl|9t'woe?^p?I9Af+`{]gcY{hX Pb M2#WHA<1v{${q{l@< L EcWIw}G\JOJd ƃ@3VNފD2i4 &]X,?y}dϖvU{ִ- JۮbyLzZ)PѡI+ŪKBN)S޴ L$1" ;utٛSWPRKn03 GY OH{| P嗛7f?QBOcgF_%:sEANAFG{;B@Ơ[cL'Fݨ?yށvgŪJ_^g&zBrc8AA꾆I Y8]&9pkw>8tW(ZEi1!X 7Lpr4 ohLWiAU&&R+zrks}v Ç: Ԛ K)^٣_-H)ī +$ +vco.Io߬+Td#Du(7٭nlH`_(IF Zd[-&Hi0 Vh`V`,@{?Odz#{_%:S)[!W 1O)>*oa$*&IQؤ,H]@0`KB,muրu#`tcU Uuw9_{=2dw~O/;>ó0m `,Ƀ;wH|8#;?0x F0Z-nXH}<T[{Bxab0nCZIywtKlL{`sLϼov={A{U`xwuNC|&|{`v0$vXi`[;`{^;w`~jtC]q0!yw`fg {Wv~?Y0}gk0 #ɷ +ϠM &vCNS wgU1HKaLP%wQTKdr121DZk14R۹x&={o@T"d->,,#8>3yd i,=&-?µ!I|.HvXOk;]I1R9\ ϡcAFqG!( 2q癋p̣y q RL=s-2O GAwƌǞZF} Hfja&'jTowdo9AطkS ]*860b +rUNg+P}n[Jk7Mf㘖^ +N |^lFcjPuk,(GF?Ɯ UVZ %<sЪj!e+jaDNe`CSG`zl儭T%e/Յ`b`yq`}i>UnCqJ*㊀DNZ/PtjsЋ'b6ӊeG#!*+!J +0X? +Km۶m۶mgٶm۶m۶ϻo''?IWfiH"ژ`b?Yb<~s1An*ʯتꪆ!j`c3w\bA9[hkqX'07 H˶a(CַIGx:F7jk3Ձ{pn]A׷g}jHCEҾs 3[xN7ލPW |V%̱dy-t5tlk*sX=`25jdX_-Y9e[Dq-q~`596(zK}=P._[/2-2a`eԂ*xZӞ#)'Se /tR3u]U|I"z@%^q̱Kr.#3Qpэԝ-YPk,(o1?2͢)@Kp3MM-xM\TGzԸO4(/4M֤>RC||2<9]$լl5RRy~37Izj2V +Tg6v'#0Ĥ"˄yHuk2Až}a;RAulV,{҃Ӕw_S_&z~,d!m#֒Nej鴠RBc)g$yF ڍ8pkL4l 1/4>u0XA\`ҘQ`,dpÂ`V)jI\`}b)_[)kFxxP#0)sQ昆rUX~yR߿i%!&tQ=JF|ʒ ` (#3zHvˌ Sz0cl"K4]B e{%iwG)w}ƽcDJ!$U(#VUU r)D@jO4 Ihp)勵O7/bA_2s^Eb_8@gۘf(UD{-:+9:w(ʘ1Y*ͥnк!a1 l, 4Uer7pe$ϢYKM3H-VT@ֵAb fNkΏ݀oTWMƦ\L {<4͓叅rT+,Ի8ԠOȕM<R4APr2\ʔl(leqŐ-DW,z-e2{h&UTDkpg}6UWck4X m|Ac6C7Zs]dm gTydi ' +'3 h% =ӒWIQ<"Q#USn<37t`eu2ň+v}5X"q׌W \*'lV"x` M7m[e,GjTnv#*m6K2lSFD r*aq$FGgNrg8@U|G«ƻ:_`t7k撍(.fSt2g),yYq1 /BF c) /ݣNxѯϡ~`%̩ pة_͉QpjS,f< V;t [)] c@ﲸ3@? +?eMϵ;w ;_;!H9P6 Lh"ge1CO%Б vą<6X`GAv<;;#CRO46jmpxTLMY6g{j:J=-ҎdGkbu!6R<肖"{EyK]7j2VFbKin .fwkdA!8}YiYikw ǃyc<2罒NhJ 8{AD>$@ +zK>!R F \a"W8H5Cvr$P2DPˆćxIF2h#P[ +oI=pI_-!\sҷbqU>b f +)@s4Ԡxyam[0o_y +im +P2yζ~us\o0>ŬWwk>|ыMiŹѲgY2ώ Y}fx6NJQk + 0(vxEtDXX<\D=?s 8#`<]EŞEz? cFw PLBX2 'ioUa *AdcicJ7~dbPJ#O)N0 FFg[ZpPwc[Z*;^do֐O;s(5C+o>BeQʟ Mev2[h`P΄Ζ̜9KT$#$~4 a`-5tcfY0vWQ< ĖNK;J/E= [-H}Ƣ~~\sΒV>g4D]6$c2#G(8DkK\,9%)(hoQCIKUo#UWe 0{%nJW9XT#]cu)>͕A 0uNRފLg%2^"sFJq #!$h~XD T7wl')f MG:L:3GXumFy~.|Nx#_:YRMzUP)7BtmK%4_&~&[܃MH'ul +]2uLʡհhd/ޣc%sSrN@GNXxh-/,>$0}%V6ՀI=^ mPezs(g*>c֖(#5L-n !4lA7Հ5QOׯ=,QyvgXF/P-W'b*.KB:U.tˆvՁC(#U %=#PPKzfL&-pn=HwG=!5JB&\Sn:szE"sx,XZ0p\ ^ZwEvVwqT +ox4@ܒ.eH}2C(L36Pm`J‭ʦ ЭU?G zx`ѓfMËBU9^*$jepJ}.ȽuZ3@ 'Eܛy>t3:Gb!lTGǻps3Mhj')N7E% נ:9á V˔FAvR]u ҔFz}&*RWĸ!e> 1Pr #F!icd)?]]O t蠬KGQ `uٝ9CG 8IO蔖hrf%lLc6)']^9tCtR_}oeA:r䤨bG셁!F:ZiP9ʼ&PlDcE[_3}Nj#R2H/+LA ca#y[G}Q]ܢ 9?I@f[=G)_RSrŔ_5nnqG'4m +Ħ*ǎo>-N640^7R;1C%ύț64`Wܳbء9ZK5OnL?:TBƊ1_!sބY9|Z$ݿvGDwN>ab2Ovٖ`a1͗\J]7?Ӧ҂y7awom}Ɇj:дl:5=(߼6o$nŒ'=8oĶK<'> P pZKhzު OvG<@QR =RQPON}CQcs~@^uZ֒)nxs9># (dc(J- _gܚK0gJ\E ='eY#wz2 2] /G@],Xc Pg*iPڶ bd,eܞe$P8t91^[QB)KyzKk@W ڽWVʰ2TQt0Me.Ha}F0M+͞ǥTۻļc +qMϬ: +~#Yٹ{>w7>ީnNpf!$!:C!:sW ib. q^@P;WrV;t`+?qӂZ'@Dhx.` z*8? +%f~E$IEL2gA%ls>TxֲL}sn(F#C"b /v%m_QW# +Vz!DG zQUs~ TD,W m,6T[j_88&l3ى&5VڑqPO(6@@K 62Onp hٲi=2/⛿*$s$T,|D!!udUpNS.0X3u% Wt5 O[:<ݛ Fws-T{0'}Of;N@, ({<]hBZ)3LV |Z)S4PU [?z1ȱ6AO 3l,n02(҄I:qKb&ej0M8"Ԏ.&7h>x~%mu WoAay'hjh'V:OLpGѰrޢ{Sg&9˕Vq/4_&:u H)LeآB^ؿ4l:27?p,I)50w(,3IDiD&U=O"{ql vĊ[j ŠlQ1_LߢEThP +nEЗ +‘zBwӌ..=`St23|9c,DJ*$! ^/ҎL* eFiJ&IC^-=G-aLkhEXNu::cc&xK\f~5A}L;bMl+==kKlHNG:?e޵5S% ЦҒ71wt/Z: D)@8h&A*#w!]X>#;xе7f&-bV͒_⛖P[6}Yb );AE1K2-Rt^8 sSC6 \gcDHY)y!3!fQquBEOL[֚Sh1L}=Qmz(iB :~<1>9\K=/g3,m}l:>o#IiB*W%+ &4RtrgDm6Xns%@5N 럮o6?fDԈcE#bMq-1mKx+nQS5۠MVa5lix*\l1S0C /yI$*kmzsFyo= Z5^Mi ~!;f*')J@*t2eAvtb -[!/ ^w>^o?쌇Cd'R z'^mo? z>Ʀjm,_nD(w`SuWp&w?ߤo҄k'?q&}\^R%(91 >%4"ru8R>|ԯ@PZ}9+ {}P-ׅb_pJG>i+F|rkB/|x_F<.Yt ^X z՞6>+'¸F60qSU|@Gztf`LMFYG#,-ڐ_at08\'噂eU~¼M0,.8E+BȼEy>@zy 5ӖN>"xshҦAsOi+\5@,cͮye$~.ԶNGA Ƕ" [F ]Jݱq>@_kJ16ܶ42&V?퓆76#}1b.">CkM8&}q@;=>#S5w|7>`lp*`um@9" \vK׽~@K=D~{1إN~zK}6=+s6<ESHk]sxvizu{Zn⑐8DFw O Ů"7A;EݦwtS{{W6\ GCwxjv!=EK{$r[FG#feGBKe]w1i4&+a)Gyh)(K,9鄡lQ9ojC {) D5):gle{ 1V{L}ʪ*{:=mF hd-vI_=g&>pz6$:jO3]}m=ѷPvk _*+B`2@J0E0Ȏ(4),UN޺*d k|n߾-8>c#WA4`Rd&N^ #w畚i<ۀ^Th⢥lmU>Ԙ$ c - ʛk]xJ3*h7W_^ jBp0^.*@N{r1Yvha2L+M; `޴$"T^# s*Ԓ갫E;ǡX2 +NBkn=+Xruv|Z;S?8GeLZ!J-E -, +Vu41{PB y,kOZl EtzC09ӫcVO޶ wzVy|i>C`%p7+*I1'HձF &O-r%phYLm|xSo,wC Gpreuը땛2Oኛ$QX~/T% SOX'`3zf +8t#^pAGgH.GXΒYv)XRvjl6x*l剌0C!+ӇMbp$8Hu9^;S.qd\8 P"bĠY6lHI# fd6͔3d&JcKt3 as|v,cE Tͣ@AL|}B5mr=:bGybwtE(5ysn-`^?wI)ܛ$n +m(#יB9téh}M,B,ZщzJ;~X&#,5b!d<8/{j\ls1 ld&_"pOBTraT)7^VV*(I +NR9u6B|ʼiFtK>m+#=-뾱EHS^cq!ì=T+~Q=}4AG٫wv׍2^< Xbu[!̐ jNT p>O2n8$EdUZ.*ɐ?}̖FI5'.Oև> ([%>eב^Oỷ+ 23q(Kj"PC(^CTW + $@0)-q&1{&8N4dhr,.kDj'Y'(Y8S1?:hX3iEBaT XB ҌB/-?CD4 JȏY#֬<CCя`Ye +#- )VeI321hG- psOP2CK&#a0̗ 8|Fl>py=stΚ 9 4mF˾CMZӺ໵5ab- 4E3i(Y:,Mcӝ-N56ՒI3)O<+7X;tj'd() _e_kUx$B z:ܔ%Uл2 r:%+NtbV?ޭ5UW⨦*>ž"*'BW&NID{n/g*v6pEL.U'~K̸OIMk)j%HPY4ƞz4r =G_F*N 3kڹh_V<ݻ%6!]AlŏF0RԄi*䒭/F ":uݛE4v1qŹPx܏JO[>}J('a^HMGYbhAc&AkhEfV%g W\pQJz|KM+_hG^@\eMm +DV>%WL#K_|G&bkn"VI[2R,ÐlzEv5qq\dя[TA4kmjHtR2f{[窗,K_ V93qkԯ4fH5EJmVT:MJZk19=ad; yA}̾N"8ZSzm8[pR]9s#be9)GacG+^YEG -(l?PT*e7^<2d \OFLr( z;ڐ^zo#`QMXE\>ujE]4RFv{2'#'/!%͍ƣphIȖ*ZퟛM;,V_l<Ykj{ FYcT嵩T}}]->GfO?* ;;S O~eLjrFD% KA[]|_̙CmF*ʾ >cf.tᲮ^^lxqVWa{z.,7*>? H1^ +\9:ʏ ySExg"`ཱ,<6=C]jCm+SQgV4M;lت5ݓq/UjeqVygiqLF+^_5{^i+Fٶ4(/RȖl/ۄ 0B*SC aUY;DnCũ q)?6 +Y!@bU[lRj: !Ngtg -ӵzi4SLtÉo'b(#6 )˭^e+ l{}}a 9σl /.zG18{!Ib8*rA*Ra(Pu䡄LlG 6,˲Jଁ|yUo?4wbz%rCX:p 0n&ҫORLk:7x@ S 8@؅ݓlzd2,sz ꅤ%J(jy eYۘÝ4C _$ ¬N(b4:oB)HvM ^go=IݢʮQ5SDNDBE}tAlJ =sc֯t .D4s'> "qPσ%=Ia{vʔ$XgEF-!>1@-l(jh#`mt9!v״zZzysIPl XyRVgr=^LfsɔEsb37=Zգ#o0ʏ { sUoRZA Ezn7r L'[RS0Ys]' dz0P[AWLn:فLV}LCSőp9L>#[\Ⱦ-3%)!Jٯh0-}01h9hē/[q+j@(zӓ4L lWj<'' NzmPI+<$cְbhՏ/)1EKΞ/covC'!pG]z/&*<jp]OBn~yA 52a3ϔ(pL,| AKc(q+짙GH51mòэJ<7.RO/xnbU,U?QW>7m_8KNH3^B7t\J|7f[9q̊ i践ڧ̟*ٲGTK]gEB $ G(>,\.#$\HrAKVl%H*mLjGH?-{5!.AO ~2N7ߙ7(,*(S V8wd*+5>z*YUc>k3NچNcgPVn[l7<\_P%F0`FQ }`0$4Lp0&ZL,/p6ټln ɷ^ Xp!BJf4Ec]7zZǺ%vu+;;[`L3dl nJ +=F%WJD5c+"22Jͮ3Ҥ(dXH׶lXlޗZ +e!?q?vQL▢Ѧ@ҎulxGr6ͅP!hS8[K |S>-N +hblvNhm_bYʮӁo;eZC0Yx=՟UDZ0`-xNPjptU'ȡdo´@5?O ysՎjя<%aj=|#נ2fc26lxnmGκ#|#v'`=q zrzDդ7[՚^4mՁХ&XԜ#&|Fx4U:@1l6mގ)M{QR ,P{h|'HGXKXKXK+JtF*qtpZ' WlNQϼ=՘'+rTGkN3m vϲvմuTnrJE Xr(^/m,-~(ȣ;ѥ 0zu ,1\_}^`u7zrgW<嘖xT i]stC# 赍%@X\Uw8$U+~ r#k +\S^b]EWNF +~z֠qSfҗ7_W7zg߬͞6rhNKz?E~`NH#6R҇+$V[OH+0Q73,ߐR_\WH7Wh2,4y/F{6Tύdrg'u?!ݫ+^&kNR#bk\yy{ZQv ^L1\I=4l-W8-3rݒʨ"<J(|!v4'oi"\ZQiOHg2m +T5"O׷S9oS2O)CXLi:tWJcH4; +6H7KGS1=UW(M^GpK+7ԕ|5vѵRy-LVT/C忆kB7OzeH)dm `R0i~E?wMBB7˩(aM0" @0CPC `D Ϧ#5,,eLY[9ʓ^O}Ѩ/_}a2N`ғIIԿk}溿5h'Ƹ&Ƽvӣԇ[IUZw Ά.1T4 So6w {(1Ղێ;+k95zow=嚶M); Sp}3lxxF=_?vԤ_['>=O%Fc-zPW|w@GWIdAtRqx'a r)cN HDtM]#nн>t~"qlCz#[wR6þan^|_3v[}[*<cTiڴCyǞcï +^ a#NtlĞKuk@QwߔX>aDS&ah(П f-ρ,tqnaF721pS_<>k. {)"(׏(Az%CM&VȖbp%#Zu$E/VD5I9QnAjяߎx>E}S!Kٚ>E2ɖH Éĵz$J楃҄1%iҒ~zs+*6Ͽ2jC_> >F$ tտbvk6iE+qN< _%Y>BIn?e&˼;eQRĈ 'J% + 1ןE2s *=ԥ”gŵPaNe)!y-?9s C.'*CMNrB%&wK|3R~Q芜QwgH\|I},$rx0YdɠG4Hl>:&Kl<8N#B`bR>1׈5&11%x~ pvdǩL-p:l٥򾵆{"m-UhgdJU0a KO&lA8lvǛRF\챍MaВA(R--2ۂttZد rrTMZFb8w:T1-;|ܳح:oV׷5hYn1h*5&ʆJtlS#M%YG܉0wD%^ti@W@-#'K /Y +ʱM^}dVη_x@u>ۭݑ` +p'34BzvoKCo? +ge@ BU;Ccljw@m2)Xv T2>JP䰒m˼e(h&4< -׼XG=+.ב$WS,y~_xp!SۗO.{6 0W tB4i7+3R")2#޼ezb7d{QdlVNKVgz thvvr#oakiIZS}K-aj亍U$Z,wK\Vhrܴ^_]#u!~u m%lDxPibGn腿A&:e}Ichs5Ќ,͊'-1t82:-+HhhZj)IPb ?&,Z>[Ea1q0>-#oDyJa01 yNƐJ uWtޮ-Fa㮩u-:EM0ZU ,O5`[q>z O(N,O r?#>H.;C,$pGQY<v@د8> + +~i4sjWl"wyj S*i&:0"ë=i>Q| +äŻ~HA +qb Qn Rzg|0̢!nLqQHXZ@(gKTcUH-+3|*+TH?TI@UH@UI.*?eC5}2ӁAu?*"g)"hEj8!bo0DQe쨚~aS`>g4ҭ`!kY|gl;bn۪ڿupoK{H׼j9><`ۻ5lFTx/֣ސ}:w"yzNm+Nztq.[oGh={-G+t 3jRtw%7Oy?<#hkOr rSsL%GhX͛g[=ȿ˼J:7qnޛk7,*6mMxr2}pܓ!orvf?!+@A< 3.[]EWNT 5"J\Ɗ4^I@))C.'6XʶDJ0^b0ʵ%‰ٞ,)e=u#xƿ_!ʭj<AQTv$ֱ1 ((*LLizӌI脯 ߬Iv)p cW~dCg<@a4}{_@}[F* cYo(gy$ }k\OZ7nCHŲ QLd;#L^S +D fg*j&I$%\ՌK$~a7ܠ^[iUOU\R[Id-;$aOOWHג̪.[Ӧ# `[o/5tEg$,P?EʖE今*:ں IiK@Dr&Ms-ӫdN> lpٟ17R]v^lSWZs{ co_&=i,ۑ>ocX~i݁Q8e.>iT +}d.1ن,(ݡkB8XXyGiX~!WX}fdYΩPXĠO|\UuYa *ĭfKuq2MI(άTGK'5e%xi\icJ#%Rv=S|CCh뿩_UcFGOX@.hȸ+bǷ)b; _2 f3б=85 准)pS]AgtIA!~41&*vQ{VGelr6ل +uˑЀEUuYŅ3nZnH<0ܒ*دw'<%o}yz@k=x[VϧJ||(yQJzg~|;Kc;r_u~OVrB_U }Eΐو0eJ a.<~pY$K%&a'z7~ `Ko;@ "9+6\3<5 +'gk| !1uQ#iigT;JN_2 Mzn)t a-I~̦jG(K40#T~qp f|]@[S+ȗYfy go\Y-">EisP`l2E1E8|T< !yS T!FNO)S%|Uu7Erpc\p xK:9_ѣfm1{=gfӖ%.FIi{ă=\aνcsu[kM.i/k/m{n'o[j {p,}9z#Lh=p t"0Z'#!K*ץJq 05e1!-7|%i9$gBQIzZI_bps4?ܸCbĶpm210Lc*=iHH2Zh +9.t`}9ǂ J|-)0:2̳!nu5ȝ5W+u do*A+)4;խ`+ХV`4hL^LN$겾6Pkfڅ+ : m"*,fL&\KQ_MtWf6Ϥ"f!(B g#eWiv4!=vO;`n̔TJ;(C +)BQ$+M!}ȿ_ٮmV֫ Bf䧉^e%v '"\1.P76#L8G瘀l`Z r:کTgClul +Lԟ֛jxi޾xڜ}u3i~q(&=J!#.3%=Si.4`+'0['.ϱ!2_˵?{p2v_IOc}]ߴbq2Y0:dڛ~b]voiY\X lӂdFұ?Ӻkm=9k ; /8Y; +>ȢlZ-q@`US'(zԻ3' `q -,E:G +|to asN*SDB Tff2bX!Fv\d4 Fir)[lUySBD^q*Yg^_S]6>0ؑY6{k-P7#;G=;㡜ZvJ:=o@-b>_^<*e_?`4~@p".8}=i1i(^CX ?{D1Pq#?{G?2P~ωi/'yKh&M3O:e" J: ft}`gA*St\MLEម~ru!)eU6 <uq]ݾN=?Sj "sA xcAMl:|b%njV /#uQ|*@ԳB\GuIC.YKgpԅIG*Psbs 2( +f9L]8&->n̞[ګ{Qn`i_5 +yMrFuA?3)ifl! [lYF5۱%)K"iKY@9 ͱtUV>ٍ&\¼ݩh -6b!eVHզ72aܮer-SD؅~\{I9Cfh}b?Y[˲7}nԎ򸅗1ܲ9Xe˒Q/ڜFy}@DPXVăѶ8!bl͠M"e\{L +8@M fː 6oD.ӨxVvhPy<&0:P tH=7ŭ} W\ @]1,`&mGd*(?#x:/#{(:oBegT!tm⛁ 9h2J*Z&lQ^y +nos6zA7e(282BY?As23(kh%69 9Hhkj~h24hJZ@{?!/{`-M ԳZ;;QOrؽh +z3OhmS]8hfj5sSa8h<-\:6(J c1 sO/6'GbNx!)l%Y11íhV|HRR 9_P >U|ՔfXf3&ϕ _4?ZPzA?ڍVlFqB$Y) >xj`;RDS˶G尜yS<¼z9J#f64n%/Q3R(*1r|W;zЫ=h?03gZz4;k1:mq2Ca׃b7 e9bӝfjw\];@]zЙ2R7D*O;]VS/bI2JxGIȄxy־.lꨎ; 8x--FGfg.fI;YrO >c kla*2V՛%.&-,ث~4 $YԒ>[}^d^ i+--W2e H᎜m|?c~;E/K6\=[ŠV&<}2|"SP9mjeO]6FmjmXmYa Wʡ>#D5\0Qéra,bi8ԬeBhҤһu5N3V65mgZN_9X(H:ƶŽftϥ7~5(fBRGp,hͺrcW9z>Oe3 fܙ%@~#?M޻6葭ɨ"}|ԚS@Yzh>$7>5z^3Szb&ˢiriܶ@=bZ?tV1WUY̵iSW1p6U>k(ܮDGf7J1NܜNZdF/fpgjVtfuF~QU;v8|1bVaE𸂅V2bIy*M:by=hjTR5hh{"KWt͎TbWPVXzȎ-Y)x(/U=;ZabTP7~=W$UFJ +SQmxFQKav-kMrT n!đ8)k&7ZHz tGgPri6܆6C'8RKr(PR(R,46RGx\Yөf;Z]ՍZFۮОJo= uUPmɩ\Q :R %y^/`ObުP<խP>1hSeGp045y!&yJnקM$15| Ț:"j+!6zl,&`>b5r +L i DQm;Zyl$KAq|"Ы# +r65]rw~5nO#F_-_lq>vu\|{+d|1xD9{Sع*{"uJuKM5Tm,Y̳~=#:MϴQ?*zY.W7^Iz }g;s.]v>t^|s+5q/"!fPqƒ(6#=e>!R3#3`ƂqKI7觑&sj1RgB꺇ō`;BRn?Bj9$RY /)!jdiIjkoڽ1P)/@rd2˔qQ8v% $3[I es\2CId]Ș3?~OZjm@-_;fή>%U 5\ 'b<\}q !y}AgsC|XQ< GFGG/xD1s _򠾧CG8sX,C`m)% (5 H + (Y$aة*XҍsJ|\BOg+r19g56_Ww1r(gKSy䊸2d5;|%ΐ˨L7akGpM_E֔(p{CsUam+4HgW t5Ua{?5e&K7VH7Vq4(tcf̪afS|8=2gW-2q809Ii̒t\-]9jz;9D_ӞH+aBW*#,x~1gF9=2L>DHo[׽HeJG +Ysv3S*ij>zu +g@} ob@@A@[e Az)s'誆&>P?=4[\ ]HV?lFJ<蜮 ݹ7s[+VzYj s|ۭfG;v/ۮ(֒J=~(ѦHs *|#fTo~qyB!G +'Ne[[q[ooȶl6Z)bݢlmVZ6ݲl۶d43Iy,lj,<{G-j޳vc eBX-tʃFq#,yʣF#:-3>-FvմmIȤn)\E +MdIȄ;1Çke-E)[ٚztwAn[= La{e Sֽ<pzm c<*e.^ȼr!*wL:-#۠Ff'b?.w)B.Q26FL04ȍ8:±Dp9U,"n h2^Dmp/FU;FVzPDrT8(;m,dj}"8kVдlD8x C`knVY75GKIڙPnvxX +#k;ӞCsZ&YWTn\KT )կ̆zEz(+ז]^l{DOhҹpQ\rIݒwl1xj![fBefqg:ZdWfh?~]8ak +ʼn{hQ5 b:=d`2E3QOG}=0:w ڤO:wk:Qir|:NY$}"} ڙ:(xZ_::gےaw !HnL0X$H1E;-HD}hZTID*x/x4mKv}_;[[ Q @anV( +#W앇T2%#aW@řMyrcޞn#uYu kCcjvUlTM*jz}esA L:iȌJC8ȆfA9c-+}: (Զĥ C K0hpWqeFf/D Wi>q n8[wpsV]w`;Q6|>;];p>Y]W i +"Ģ-)d<$/QϕEY!YɭTObSoϓcTG NЦ b hMFUx̥ J 3@3Wπ +H~q.!K I|3Cfcau!g;`R<*cj͆E2G*Ztq\D_3.EgM[B[XrPE۶ul󆧫ED奒L*#!(]3ÆC.FS.1E'`^)L)J.ۦ].lrN'"}hغp}=H`,<&&ڒ"0;Ij{<9m 2yuI9Į8r'hW}^b ־.Ѱ ,0SIZ0W0I0^@mxVzu螧,qą1u߷i@N #YvP&̒^@s*,^u4Nfi7̓`|7\}sَLF{띙jwV'-֩?_QC ]  +)n(Ă*SOYK{xϞE-;1/U^d?_Ek ʜMJݎ2Jcmg +-)Il;6c-X%S6lєJCCY+(7V Rx +AA{WACSS\gP} +AGR֓"In=3}9rn([W]#bl6J~# ́{.; 3"Z>yµ8Ҟt4#y8viDjOFת%] U]5Y6olYr?WR^e5'*$fBTXoJHlSGY ^9wX&̩)]zx2JidR$^2 {$B<*ڨTRrL|+M>o$FOT˄Kʳx!6b^6 .Dl9tMT(.Pyp6.5]r 8W?%XK MC~ =sF$@Ti  eKv)$zj$%(i/%i[c5l^mgiOέKVjw*VS*eYƳLYlUlclKl l۶m۶m۶m۶m6϶us_w{1#V֊X5fȑ5gq˜hحjԗXJ-X PUS#keF슙tM[S_C'ozEШQWF\,p>U+_rRΆÜSWҍlr֙e϶4rsD3u'futS@3A;f +j1߶e7 wž716{7f;gw 7?f`WIs<P7O{V-5[ʅ)5o9=7{+swJ[3uok`o9uYc&,lǝ[;fRMrXETTvU AZO2?N,?FĪj 7Lreѣ<5$f77*p'y+X\!m>o(C~ MXfX6~4gC5!`JgOi~_rW v`2mzTEò^;,&Ӆ)D~>buCDw~-UxÙznC0k]b|PR2øk"<_Bt#c| +^qbPVIb~rl,(h]@ރxN}̦~bvҌ28^:SƎq0@FwC)9ޙ)O) |+A9[2+ 2Se-nNMՈ4 3wt:GHf|tFk2wW}#WXH(_rZ5ᮽs4ݭ:edm!J4h/JŘjmM^8;K69AB*9U^q]<qB"Uȴ!UȆxX,/+Wk&I\uC!Ԉ33~>,"$4I;D3^sI~cwJaRP]a<) + pDŽ8{e|ZWQ߃!Z/`½ [H.}e]H~ʸL*4N;H+Ao|g7wXP\;[Wٯ&MW=A_j;3Aߛ7;{({>W)=_]$٥U.TiGUv?w0B+<ĘxAe[6pJ=3<K{=հx*b&YqLǻު1v:ȶ3?LDG34ѓL>5?4;eVr4vł.rDy +3ګiۙJLlKV/2M-Gr/D0RUX"Ϣz|Rĉ-42PJ[Õeni8y=e%2Ji;}ojyÊrHhuT6%x Q ~mCA HvTz_ %œ]&QJE)*L`i{.M5*ߛvC6/!9?̠AצI7*3* 6dhy&A&.R*(kZV.!1~]V|-pVev+EOB_woȞw=!W@>o2؃n xyfpYɆu7^Muq!2:ӱ`mU`w϶EψtGF(ս1b+W=qUmorPw5j2[)ld-l5ƚ6]xvBZHO$ޛ{0 UJEZxhވuF~$g!r&tN'-| ?Y:] tw/ }u_dL ݀-9'vQ7hlkU 3? J6".νlvD4Eh֏2BOa +oӄӮJ^Mc}P:x16G+H^EcU+=͆Y>0,5jw &B`8OO)δ\4۾X^,IW,Ace S:gfgÛq⻷ H55`w*C )x Cz{TH'@5ԑJ/R c~lZQU~^cy7"]z$bq & #|;z t^0}̅@P2xKFoÙriZQQk 219N2vCI,׺z#tmBW 1hWSj%»^z7jH +HpSw>ĉM@O/y$TIalO׊}fkN`CK]j%B,ӡAʰC\xc/i Q$#vY&w +$ +St #{{ƙ7̙7ΙUhShPF 8DD *zi)#̪r6?8~{F~#\xUP݋`lQH]?4L).(`91N/Iye]2_iucQЅ@a򸣉v7z\9p |CJ/9`npg4zʹ%)z +7E+`?8Px +A#;ZQ3˷x70+Wk':2M@:o}TԒ.KӠn^Ş4mFcZyE3T&M龎QA]~Dl'G$Sԡ_R0p#X^@C ֙OdKb9'Grs8ۀ*: Q∶VQ%裭ө˟e0HSy/dZO~W/6+7!!ôh:tFU-񴺻 D(c$L"Du[[Nu]&XMM˒ :S̪t8rnHXI6~zd*H!y&p& +!"և@moЕ):)(-s#ϥd|!;IL0T>JӦDXG5#Ӎ ]sTd]bQ$@,t^SP(sI2 `^p(-IQzSxoAWnOtQ~f-QrD-O_)U ɒו +PUIGfi{Z!n7R.I \P`z$QoIZW;@ ;ꪏ*AS1GMUOZYRb22 +NH5$hE2h2(i5'9[-ݤ +) +t:.Sz\cS _GBHϒȔkic; QӈT^rSG8um'DHUc>1v +(5Mq21d0%eq+{@FA`8' 0&ɶDQhDZl3:3YG.pP"Fԭ3 J%LV&2Q&٪{K+WJOVbN,a(ZD:zô4:_:~ǼB`Bdp i*Ku pmYМHAKt92]T-<{7i<ѭ`+",8e3eҤ]`x^.-]/p̶z̘xb ><臨tű~>3n*Vs~c8D6 ~ոžNI|`[iӕZWgX9FB2p +vK>1t~LTҠ[#z!Fj}$Yymh߉3$ )~vS3@% ?Ys/s^gXȅ+V1v.yN쐹S +Ծ$W жBID- %ɦjL O.h).wٞ$>&~xB~*G؃KT/DjAnFCPTE bUX֭F "%˵I +wx3YȽGρL손R7BPPL]Ny iY$K~'8F,\bn9iTJ7΋C+:6cGj]g|.͸;%VHeR9!1 =9RIkUQo\&Hy4|*U"TzBw?Fs65f9#WP]4J%i VLWTOTI.gufG2%ur5"%>CpK{\O)2ԧq$p[r6K*9o :_ӱ9Vκ=H"!uAiQqDlB fkHcvƳ.zCeA(.L5ZtN"D!餂&rHQF+h6QP;!6ěZCJ,de^żF&э˒V2hG H4'L "4ѹSG&)"wyWvvDejV,%LKHnN6SY 7K$^ K\KMSa=i"FdmH/ q-xۙfNԽ&K| YXIMTۂj* ! %hAYjQ=Yna/VDVR^>Bol.qda2OUi7&n dC LTc?pOX})o͐,qo?0+!ciN4C)׃ףW +^E7R6t:݁SΏƐr[ *l\XLni +14GLQ^f(ƌ2`:WN|LZj')8STrVb(U9‚k'๐b#xbϕwyA/is)ZL:w;\ +&m,aNLd"ߋz#pcZKa(ݾ@{1h3iybfrߘc|1 QbFj\?3' !vbtw5*Xj6P06Obdx!5cn4Xg(1:E.רl"Yx+|żԕb1c&=~ %N\DvsvsmwN0z0K."E:D,ǰOB# 1eg]s.Zt,{`%ycPȝQ xEݽe:B@F=$ X̛y"%`ޛ +A{ +RKsJ o!)ȭ!-qf: \Ξy]c5 7ZA=HS +:Xz PՐY!нkFO85WnJ<-SOvuHy)8=EcgZ/qV[E]rR,"iBKT:ᴘ G]D8jAr6ʢGsP Œ(LtCuA_Zij_vksF$1K->߬5;JdƏ-{pK(Ź]iԹ]'kSEj^A5@ +|v'=˿2Q4m{8:v|{FkMnWzJEO&v" d ɯJMsyh.\="ˍv.&JT*o]5*$M~.~T/RLV'QNe'aFtjYVQ=Q*(N`xcTG*Iݱ{,WR9 :٩LsLKU͍,C;f- +i+X6sowHJG r/;My\m+5~:r0ʸr,F,SӕnGC%3j k>>A2M!GJTO[9{" *fH['{_p.Dٹ_qQ%KpYs7Eg)txċ)Bl ;mHw3Uڣḿ +Uv6۽0.~]?o'"7E@4>``BPh,!頻W|(v?JoKD[L>5:ʨ\%S>k{P'6rA^-.[򱨁u?N'S+T.nMM$B#ۡ=FFiPGuĶQׁ^>si'Sz>&ipoSP]weL=\mC{BR~1T9z{LlfȢHLΣLTEFtqFlgؼ,w(+k{DH܁A0:hC!5%{IXSG<,+$܁GӠoc=FR#z/uӆ܂FԩgmqLɱnKL!릐 |!E_8N|,zy(?lB(?)Yvk +VZ4'16},[6%Z{/Ec{ w$JUVm祈8!LdL"6* ]EYWLV8?փn{[OdtImklʝR9:Ngl̍5,e;#ƿmZGi&UbWf>h2n֬{;\yVtn􌺺_8n){ ީ/L8HbiJ8;PS[ō8Ov&ZrlP4AJ._3k716mZ/$he;v zj,SWM5~Hy%jREc#nc l= 6>Beֱ[6.ycM򞷸5}k}-@- MM=\? (\G+;(!Hx}NCet;9=d#WYQGluP2d2x0r닠h.'EՎlB̟ j _7Yr,A$M8fSjbe4Qm(qA&hԾ`n#G=z7wts _YĊ7:1W؂ ~@ D 1_ ?B2u-gmW$&& [PcdyR4AZPA-EHlRi E(yn{+y|`Cp ) +|4)^3YSR$L?n~u=6a!n #VmO*#ԉjP:Iσخ3;qŎǂ$ +t@Ku;"r<*yMp9 +%+NK;z+RБ(iS1sYņtǠ3KCx"86f a#9`]`52cN Wj֢)NK%-ӿ:Edlѽr""=n˔n#׹x .,ubLLf:&d&N(•ӺLjE:gQb}N#(QKK(KQ$EW:l-Yc}aLae9Us46޹b.Kj_"ƌ;xATXBoIayCtP5~ + æ634YtYbˆy("vxl^dt>ʐXThs9yxFwLpPMr4t@($YNjQ4ak43\\*gT}:*v|#}' Ms?\=[7^gE0u+<*sWrs.8!=ARtǪr>! ͻ`YMzȩ8(bd[\'tȍIr>}'0ɠ'ר4g.gD͇J>}ÆP;UwtOHMy(elQt>c[1ljζ28P7QM"Aʊbm<[flKE4V<`³Xt}V)(^ dUmT%Gr"]O.BED]tRXm痊rұ$&>\8 }/|m; +ؔrRi:@Ϊsܹ;zj&3o`ZNz[Ӓ1hҌӀ*mNIN, )NO-wZ !> Ȱ9lrGX[VJ)9c x`2F@*vo5 +B 7|^Eeg+w^(N +dLT\vm"c͋~w0ϹnRyKZZ!k +s*ʓ!3ƿ67=fZ +B H" )Eöny9~ jY@,c`TJ"Њ2$jQl-1~սlXt7 B@t].D]2>) I7 C*1 fWNuP9)ؒD);6IjPWg%_?iF֧U*"bLQi;AJ{GyxDUltxYGbe+;פODŏLmWWټ!&v59UirL$#98$,{+mO޶ 6HY198i/5'޳]׮·={8 WhM:I[: *h]:; +:%=9*!epXM DēSnm@2Yms IZ0"bۆ__e͈T 5ePzi4怫ᤂV-¡Z"cW<%-,\{ۣlhRT` +ui"1@Kuqη*s ϡΖ6j1U"1U>@i|itt +D$9= q(=d`#ףUƸZeX Q72i0q1FqED#ep1+32Nl'e4MyNle 1ܼ!Rc6ưD7}[NK9@Yٍ 6b"oFᜣr9۷4 + .g,ђdm`0&*[hO +i*\ʎ́3STB{-` D1iV$TMT[ ĚI2x +semO}+|KnSeU/ |)gi1/\l ia`i{_Q<"1d3v#%=7CcCc&5L +qeɆӴolե84aBӆ"Ueڮm԰S +`>e(9iq|{h< +;cnлg~1ۭ3?;0O9uIc K+;#:KWmfx +MPt*RӃoL'>#F_S_6Ɉ*da`HbE[czgzmږhEF$9 i+29pBVT_x +x E~Ӯ.[p^ӷfs_d7 +QU(-iFX调Q$2(*%6(JϹ+J1,]%JsO%y< g_V MWɅiDIW᝴.T h˅C;71h*jf"JDB@GI5Ǚ- JVB&O=w^4\SkefW$ ~c(SA!tPv~.E!jSa"}A A L +mp?6DPy􉧧RMWUG>MrҦB3)15LϞΰ2tӭ,(tcY>b +v XRH8``HA eh"e`(-<430ci>uEᜯ8 $<_ : +eWzazӛO%ݮ[(6b-ɤ} ,7Uʜ|;{m}khNk)'][ ɖ`#³Pϳ@w](7+_].\Z/F0ȘX1_,gRا{¹Wx6g^>_o"rIx!IyУyC76$ZBa߼B& f&P[Ș# k MZ|Kg-G_PXO6E^v̷S w7CV (S0UVI#e`ɕ¤NwK׃y/$Wa;vkN+/Lu@$__XΖ~~Y~ao:w,Fv6N.#]Α&N)3@[^ /qQlTn$zD R/=#L_5?A3-$Q,nUA"R┥ qС tf7L.f܁%l5! 8 *7=4y_ES0맯XdXUOMv3~(xdN*`:CGCB޸טS'0!H唴4lwi!SI!z(ZLD&8vwoGc|'D=lZRT%Mc֩ʩ7薗xj籦!Cze ^%(m^ƹ7ȍnob^G%a˾#i]W`(Ph83҃Dd֟Yy5PdaQccT߈ YYR6K*vxZw aiklJJ rvAW`MYml7U`!]-ڊIOՂXD3gٗ?֩ XIܫF]nPuupxТ,!<*FRblvZ>DD60XpxagϏAoB9A,F9>Ba,-`dtp=W6oLYSn7KAt21frWJ}fPAw"^th7hLm^C֎eQ#.ػȡ ["k~bo>ͪmU:L[lQTJ0_(HaG⯒vsQʼ~ Qͪl0k"\ 6;r!N?)\ +tUPԔӿ=y t _dۏ0ĴHSnN/m.W~BĊ3zG3g7o0h.HKڳ}H ÌF9; 3Dx2-:s륖z0+o i~S˄uD8ݎjSc4RIޔ'44}+0WSD ?g0\Wf) +`SGqr>5 Įzr%ZQÛCɳKr{+َ8`Q:o(Z,jzHC=W7>ep8(4YY +:zIX O檷?R fLM[fXɲJZz}bu_<, `돖4D@ ؤ0nMKrG/ +˜5Dc'}E%Oe/Xh@+ gJN7`k#8)[5Xy +opxѴ~ h.+S}-Ęd6Lk,l_(v^ +`?ٚtZbCjf b6vugԧ19NBk]j$pB qRhx8p;6` m" vU09jD%AՆ"HGbQ4=&m$Kt_$U.E?FB1HsO:YKe3B z +H-O M=(\UhV+_SI ]7B1#c% +vVX;Ó&M53R4'JĽDm*ṁ` Š~|8KY)Aq5Lzh8cSB'R:Yj )J(y?ťʦ: *S\/"cV:P֫.[PVUJqV QyKޤ4mQJ¬?m俥%Lbvv[߽J4twcTD߾kI +`|m'xS"C`=;o͌qe${?` q:/KVJ:J\ nQ-:I>;Hs״t^(nfUQr=ァluG"g ǞL5N$:| >QNC*f0#5ծyB `Ap3u瞧v(񩡿y~WyĴHfxkmX/ʏJ5YgPm`=}aÆpi `&'uxaU]*\L3>9m #MorOƏ[@Vz~h{ O-FQ~2 [PN>k.]_^dȞ::4ܡ`gQFln+L8&!``9s]J9/϶MЩ+RLC)b>;1jij=i}$!k۟цx}_8X7%2> +{EA7+Je3$T%ِ ? \&OH%di: ܓޣoV,zj?LKUQpN@ax]ÕßB*j46;"՚>Wީx],"v3tJBä?p=%iZVy?X+m`Uĵ.Aiꀼtr}fN=̐Y6ǝ`mi!13?[JGi\rќUB;+3iAAGCa3q,sbc4Rzd=/%kz*_%3⨴z 41 P_ +ݻ=s<{;v@,ޟsǽDLP{u}L׌LxϋWmva;bٴTtOj^Q`_,ZrUHp ʯokOk M`u6dCܩ>PmCO.W2Aј7RڮqQ+gDF&R3p 5Iw|z,դ ؽ%PY=nq3`tu7pmEgzλRX8OD֛P KD=B0:M<0igQ!D+k!zic䟵6˄7nS*Cw?J5 _]Cs>qx6%`Q%dylX*f'P4\zy -/yYQ#K(6.b"NWL<8 rRzk#$४-M'@X9%|we>ϗ֡NZOd.u@mų9V87Q+WѥҵEsǚJD: +W7Ų#ǞXlRm! +2v[=j24kجdXDCx%&~;kݾ;EqZKTH\2"ה>i& fϓ>7 1π]qD 7 x?20sޭ_Rٌ]JE`AegzǛuM5=(mwGO1@12+C +,ATqLT ~b@(\/uUZ<uB߳x9< jQi +(6V۶Ӛ| cq2dx+^HI&U6w0 AZV,0IK;9ڟ/]"b!4KY|64$c=g8 ]ւW4Ļr.==qtzi nE4?ްZrҳ=̗"g3(ށlXNRNQ߂q0Yq뀔RNR>Mw/5bxC#\=H7OtI6Bpޯǭp92O%ՌF5Nعv"Pd@plzn>Zr)2YB:qN&l.R{E>ȫSIt#w-B&iQR}xW%2Y}=xÐ*HuJŚ0w6,8T"F/&oԄ ˏ1)ahr2L-=p'q|e5/v XYYnt8>bq⌸˻c_zᬿ4Lo<W$ ,$eM +:R@~/rRȆ'7U7$CڧgNxuv쬋!Kꃍ!)ĪIFg*Bl]Vk)eOBLñ_eTI+eAP 0nZh uqK̽'8ʁm!S|e97j$Cmɇ. Vc)8n:Dq*컸t!X6$ DAC *%:$LǣArX6bzz_c&ORz {0Ds[k!z +'UH[1p{_~YGB(ex#ex=B56vp< +[_C$9 g3k;y߃+-Hn^OUm`~V)دϘIJ~I AHngH?PX5Sj 4-}OH+ᤑIl*-0 ZDPZu+ll.*jlb`A~..tUo9jY`< f7M?cKsM;0~raaըkp *oKk S;$Ćm4 ֤+kn_1]zR}?ٙh,$Tu+nZvTx/C;xb 6ZNyQuaz6-JWIIYqR^[&Nz(bѪl9%|ڗھhU3Zz F'qᦉw0$9;(,!4P0u!-7ح& p`)~/ԃTip Ȧ..3-$<˄HEˆPaO)ž* g0 eHzb8⦫pnَ?pۄ2-ox"z7- ~P3+(&xDD*Ulҹ}! 4@7?foߟ?66C8\tª§ЭXAlj)Z{ NW)?a?h7UtDD>#W5q*."iiSDg4& (L&(! +="V+2kLR ?,dw2fk&rK.ijt_poе,ܩP$j3&􋸸yfZ|GY끭BYn~^_3G\6Pm)[ے#1wXYaIbH7W8l g!- oZ $d()@YB3X$=kfHg gH= +P!u c9)L)֓ޓL$Oejv>.:-4蹪r7|-Onair\y-yFuO2MIX_0c~ ewOo:[/T%T[=EPdfww'R֢2ﵨVßHLVOis hH%G #ۻpW/*[t93 Qr8].w!p=Pb tj" ҄@Wuaņ'%]7 >]. Bx^3Gq*5sv |Ϩ~HH{Z"X!M*)8)r7EFr'٨ؓ~xO.1 BY`0RB!wc7S A mϔ .Kh  VϤ1k0 Ï2ulp(vtUd3c6aUEN^Ho3xb]L.[UTzSFLTsJE +柕}ǵ 7$(ฅiOfB~hv11PD!?;oG32 e ;18MTp06xmߞF>H<{{mBP=1 :Q Q7WsjSѡ*/-TIciێ" + ?|@ T(Pz*]-H^yJBv+.-x\B+sWZ*S+.͔*A]+}ET/۔<}.W:+cgiU+Z*,UV?Nq+uKc{_eWA>_C5XH}wps+C@ BJ{z0,ɪ7ep2FU.z1{Mt$7u&/jzUiSxKc mq +7\" +.fzyngG0ԬZh|bΙ{z|Lcc^r.~iTfZ~Ҿ|A3.P2eZ://x~aeĈ +D+`!E"lM,!`o?@y/ʕ5NT|O~KH+v,Mf.}W"AzwϐXR^k"CW" G+-\կ + ZBK&CЯ˒P`v#9xnyЯ1$|'sXz샧&WSdJ>4ByXf!4P53"T?3 +g+sr‰k3H?jRI&Ur c&^b <%nhod>?N,-GZ9R/U4XWC[&ۋhGYőL3i-+s+Ph&%UY=+,B z^kwݵ ]P8wg{8X4CEzJ P *UFrahQt*ED 3SSèyzTLWsw4g 0#<2ݠ-pe$AےZПEsSQNlNKğ[/$G= h+[@~]@*D(tTaGrR-bYmSs+rX'T(ѯFm\=èOcD&x^ +JƵ+8qөL<12֒U|)xBGkŃ?dK?R;!2>U )I +.U1*8L; w ^`wS tXyƱu ͇m7QXXp{2;4y6X6 +U)2ʏxn#>!~ؘTNdQun~5rO^cb< f` Bqd]-aop ;m_?柢"׳/++++(Xbrt(]tpqrח\2aOp( JA^VfbFy^JzEDݢZ8>bU^RzZm^rJx~ * P>)*oRCjkL~$6>K +>&t<$$f\ȟ(a+jvD!O[)`%dHr(_c<'G7?_ rfm]ӷQtִ`Dӹ h4?K$y?.rm +`̆yntՎWm3\DRh6Fzrs={E[S/Ƙ;F6 wX?>i1!Nh-O>_B}cL'1l":gJ@֒8Rj\x74Ϙ4Vk]'M:6Ԅ7(#9]QE% ,Fxu6"Zm7 qA[ٓF_ۂ +_4o/+Y`xhia֤{YAؾ U^0uN7&& Sa=HT̕:H*c_(Akbꞛ' d*CY0i"D +7I+gO q&="YeU8 .6ˍ ++mSI9>prȄ7Y;7wB1a~T 3aU'Sh;`*ªr4ؽesLybMI9aˮqśI߼CfC3;˜?_5,Gp-(c0JaKTW  S"(oi=Nlr_JK(m.EoV /&R9. ?!*jiliȌD$^_'eE +!VU=3< Fq2^DsB(@N^%3Ftc&'.rt _!ڠYKsCr袢ao>ŵÒkƟk8, +] ܐ M]L3*7pE  sp& ZOzSd|Jπї+!qn77t4V;3z,7|xSctZ)eC-!&>SN8<2|Co{,V-[;xE[a|WufǴo΂BG@_C9;߱RH}|Lg ) Vw/'ba{E1U/]e$#l]N\֝,`SӖ&RLvl+>H/9U3v4[d|lݶ0zVHQ:r{S?RVS*y`9Ej~XCCM5F- +jI{=m(-PVZR^+G6Snjy~our> Qcp - xPk_hO7@o$ +i` ]< GhefBL!z#5}8 +dş{?p Ս@ݯ1h 4yOEl+$u ?2<4j 0ޱDtJ< L eT sxCWJ .\S%،>;|Yicbs*xS& ɇ9VNRLq6!X;WVE_W,S]dDU v_z}yb'[67?\?=.:/ᶠȕ,7$WVh=AuFu)z6t/݉ C+;+B/ MA!헺.` _0(ũRLI^!YujusD&/]c尉,//؟Y>  +890SM`N.D_$Fb8Lhp[*d:[HN޿Gۼё!x TAIE8әpm[j$'ݕ-P(! [}\x;0<98# +P9Fg>Ls=0*,EXBA'453N,d*2.Ê&^UnuvgNd9N(Sjm!Ec?9VLw%_ض5G^t\6燍dCw1 W5!4M.e33GqVq#Rß6!CX+F:)ͽ݃ybOfdX [l6-nD5$_Z. 4-ْ:si)߅;JS5))iy8&ђU?ٿI} *W`ƮO .4SAPx$*c o<$*-FW9*v0'rtlA?Le-dPھLx8/h%Lpf4oudp-!_ +mCQ囿UoSŭ;i-ɤ쩍9PPuw{o͎gko>Cr ӖnVj~fz"!l6#h~Cd#cc!;W{ >٤6~H]}֟EHQ#`:iyKtvzדJKX$#a|H wr}.BUrc]K.*hD#y31O"/ +gV< 3c4OlV킭0v~K'4H\jb >}6e+m3wHdH'.VMB+;_F[7; S]*[wXL›G!'灹Up Hw==Y0}/p[,nC7QyC{d>@w\Řg3I;]yd`>/G(ntgY!x!۰J ,*&#ܤԛRjnc؎+*kxyO3pwS[ALMK^Z8,\9 /Ov=F ۃZ C"sE7C6EE#*K(;Nwd6Q4fd<i=#ʺ8L'PXT,4Ӿ4"øK4FBþH{bQ<DUT:"9#{2TqK b="8'"MΡ}D9 D(`⋦-Aܥ,f !ЅJM@U@b7˙ZYOfG9ё^bo|b^Ⲇzvf*oaR^g(~Y\C?وAɌ)w_[o_blLmj E<>Ocewf ƦGjRaV٭#'Q4}rgf3V¹BCDžkhh̓ӓ ּ)b8c ifGR[Ꜭ!&Uif6 +uqt +)чⱽgkw>&E0|^>UlDHmlFM2US/mQ+*Haң_XGጄ=c yQ^yƋаs _B:qƑ1#!\ 6Yp>W2$ADvl^lD4Ȼ#k 4'OvfК:-tF;4 zS+Ř.E}Jg"F|z{`D+p~xU88uCx s*4JH5CblNyE`*"Xv,t|9S?7B+I[94S`|wzn-JΒaUD?irX6{u ef5<'SۊI‰K.{i`zԭ6݂6Ql+? ȅeQᶧI[*^5eژ}riY/8v=>oz@7c;9d( @0|nML: nmo4 $|g\, {KPp=rՀkJ{?Qv6l2}ӪLxQQN_fRiwFTzʧ=&D2,j]ӽ6a#\= 9#'ib=i/V(+ժnx~)݇<]T|/8ͯj&rd]zW?RE<"LБϫבkM3sHpR4@JxamUn~]a@s=o>jD>m,vi9]N4xP9T.Cg+Z2\<+ +RF_G8 b7[p;(WjX9'פ12L X f:ˤa迣IJ/NgP>}G)Rx~m\q|{}M#qJ  +<{\6MP'Z &̛pSYqQw@TDଘz VJvK7}dV + s +}f}?UyWd"dW8%ԗK;#[ +;oBI;u(E ^D}i#v4EKS#G> hmK\6e + [{%vfn$t!g}.,]ݪ=˷>l, &^Ӡ/{QXY1i{Ɇt])`kYj(i\@8ۥVe'qR^S9LaZef$O#Kyh?m=%iA7)9 +'Otw%A b/0h_r3ĕ;gmA#\D+8+pOUfF0.L.Uur%vcC;Ǐ;WXat<𬒍}t|rpSUMccfY]MA۫_=Z}2nY6ԼܟYI1&$^A/)M?Oc6g.j )cfbhGr}&f|5eaSy_6k4k|WR{^xV{ߛ`-#?ޗ>wn(9m@m@h +qh/њlZ M69Bsd\7 )|~{Oaceca阮NM89F7౻Bػss +@$=oM#m-D߳tvzRq; B<6&!}aB0@lmb&?KiٛW?7|_9ŗ!oBqG)H?BGP*pE +S #G鲤])--1#* +)x"9Q`rV*OC!sCRI̿Fn~.hz/ݿEL* %[@<5SLK?5=hN%e2ce>70x U@,=T\65'> +ފ%01x/xS@-d+,}]Dm}'s9 +TM$zP(򷏥ͩtFĽ +DFZOЮJ4~2<Rl^+< /k/߰Y@ ˧nXxٔuݍwȸyP(Gf!Z1*vVQ塬xx;+<}>6?7R"] [E7fz[,=F)qb?Fe͢hڶm۶mm۶m۶mkmgsmT}uZݟߚk}їNBpe i -Դv/:S2#:W,`I1ҶxV[\k!(Qhdk5 Ƅ,0MA dچL!K@/ W}^ax$-BQЪF`~i!g8Tg-B۾.`_AjcS9vdʚStuzDyIpq'3h(T~V՚: SbAogcx 1?_w^"b2#S3%xeuiFʶ$ WHP +PHQR G[+Ts9A9{q=.[l c;HC2vM xP򃪉H/*`2Xǡ|OQĴ?7No?VnCҢxaW=(EUL.LNṂrG%Z mM^P/9LFq^59aAJ2/EQ֊in~-7զN]fyhjkj3t%՘daٍd( M`qaM?QCd(l0듿uX$ ݏ x-=~ +Ƿ1`m'lt8AT19Zkشe*Qt_K9|Bh(aG+^]8"J/ au~wUrw0㹤 X_Hq"aH7Lv'xǼZL 3٥}:^ *nڟ7F&|9lBctx_q'I0ltIgk:,6Vh_Cv۸wixANʪ +@'l@cn2L[Iv>=w4/GX_" n 1etERr` w"]ȗ:;_~sofC_VK䇝=RK`uF<)4^o1\a3=գ^Vz[Ôgj鬈'x ݂YY#TqィXa+*G] +w<{LZg|~Jo?%d;m0<߄jsVyEE.="$BI) [o6mj^[ +5maZDV y spr}Wv*ƺ(f FC7Z+=6e'_FL6Qpw$.eډq`!{ccqxzwpp*FY;W + Bz V=ɱ +nWyyz)np˜4Zq; kh>'7_}{  aj?]a2 UpiUUpu&-< ;ݿѨe}_T ੻M*r6A5sбXтPǻű|H޳f (L ]LB?wF_sst*t]rSZsv08}\)n?#?iY3.zG?\q ȯb?xnץQS6ױ8^mpsed nd YֳUj|fKi USEQTٰ7S>g7;/qvߩg\8y 0۝rsgw@9Q2)٠<%ӭXd+Ht`Գl#`1U1{gxY }]h{1ѓ5 pT\MZcOuVG S Uul5p47kyMˌ+&rτw qY +Ӧ^(|- rԉ4}=ZS%wZ^G"-EM\ɟNt,6?V9{C؊B 5sGfвb[LY.*-MNM#ʠL-AUFb +7^Pb , + o&(0+k>@Pw5o3T#|^_ȅ,%r`NQJosRI^sE׳3*rڔ*WRWSu9OByoh;:sA4)HK8')8p<O}Ova[u 4NFsqHb#.Y   Όf +o6&rzcD?? (7wQ6/Kqߗl}VGkHt]&/@3l;Y89;z.3rC0P3+lDwk R; =mfY$/޹sŪAs5%3` v bzOdM)cN.U4CN+<8@lr`bQ`7/*EZu^tQLs&Z'k#fKGM|E‹T]>bk$9'ޠjpшQ21FkhcIB1$`~gaXQgV + _Us*ĕGtpN.4x +bLq39"87ݢŁOVY) iҤ#qh3Kb7XپWV6 R˭STb\ZBB7N?ٻ +AY{y#a#Bhy:ЀHǢ[XxvY~cl4١?`pu{"d-v!&>p/aU;T'ubLXʸ>.Fq֗^p{𝴮 +,=j=&? ֛3|ecG~Z3Ÿs᡿fk*5c-898ST(,mf=:VQsYq + +$q1gF#ט04E Tn>S40oćX/tsQ)?HYfq@eUttxBIaY}gj o˭~.*QU}FQ%^j儝#G'Bu + #3̸ +Q!@:zRf*_lt/ U[J2kw7Gψ4GghWCuq |})"ȯh\S-`ś@g%.]lue q Z`Y2ɀJ?/ŒU?&4iﺵ M<kFLB_Y `59K[:a>LǮdmeM!8gɚnQE;_-z^ڇ6$T|^GKI*Sfbr!2ElɄƸ􇶑0z"/V{[?+x0 +}"m}N' xå| th귤\}-=*ܱ2 3΄dWAp>IjsUܚ:.5ˌe5i5>->.*fꪄc 3>e%`00 $JU̩;gm'>W8U|-@Y}beR■/~k[!ͭX ^凾LwY *Q=ԖG!OR[$^6K;{hZW~i/n߼kҺ nWF%ZQ F=4A +!'a +t@xE!&+icUJ04'}i/qVǘNHZI$.iV;;l 5%l_fPCxs]GOx_r$H\lψ1_:5GexLJ+5Ӓ.򸐦@f!ʱDy|\9t᧏1T@*0>q!ӆ`Mq(ȎChugz_j9Lx +6nbnYơk,뎝_hDVHu칿Tq6 @s In*emk;f/EفqD)Y8 $+'m9ĀR^P/*)5QH6%{Gv.Xe:ղ ~%@yDH2 xd +/ ?t<*&q[nDfG+=(!P^lqOȑG\]J6ԑ.}Fs +j2SnSq( }Rqr揠ⲍFA6r |<343馏*qs}S1Injƿ~mCmATW_EL-ٕLWR%ܐ\Ghn G}im@ADeM%h*XHDo)\YmMZ\Ȗ:k[=BTYZvedD$L X7ӷ@YG`{!*DK ;Iة\37 8KRfs{Tqf +baMgo`]$JC z4HԘ`Ȃ_yݙ4tVeu +E¬Pn3X]߂զƒyel*V VR !Jvq@T䲹xNծtR +A/!Cu_^-jY=Ug=E^mKh󆎉뎎Fs߫nKs +ajgT'1sJu1Bߠ +U?< zy^_6ğc@erTЮDz[i,w_`3ұB{ub*=_j Bt$l'>$xB` &=]* ǍfXE)YQteŴ8&20X䌠O.ڙB W#NX$4C<1eHn? Nh.?/~h4]pL)nY-K +' Z2\OG$KM(_0=#"›1-4yǎ>/4S]=.7n%08IC';k=NKbVSWPXRY%Pe!X)1$e߀>gΥ%92wo2}Рx^Nv-i?`!Mo1No"#eX|K1|k{),+w!oz#iX,CX%n,,֖oZš#6c>eGfo86ORADŽ+.ܰ-eEȉܥsHG*Jo=#ةX7@cKkFn@>KM:ǷAJG݄x@J{sa{+Lpxbbёe7KzkSH5:x۬o-ӍPEicHڰc'i>H2 -2EhK$]:K_(t +:  5 +V1o V6Ȼ4#gMVhMq{,M\tat٬wd6ca>~$N)Iwy?7M<#{YrрmT/^~e.Vspzb*LOrh*y72n4i:ޏFHW'5(H,אk3 +./*Z4h *яXoc؈ +o4y$\{uCv1u9(a Q1y Igq$ ۗ&oE >X/!Q5ZP_븈cq.0r+2PCM@/ѫG#\l4m}ĺpwa+"=a@DpnCYD;Hw~n-7~p >c +&eyLc +2#Bu[L²\ơy e&Y1Ӥ )2!"Ze)P6Je#FVC @K—*f jlL80;bIC +U$K+,7 +]O5gU$m1?Z1Vvͅ@O%Vi@s,h ijb<Ȓָ&OW8Qy(KqX,K"yv=vˊыt <W.m `lYxSM$-)1KhjCx#Sha8dNmv~ +-xXN5tF&,ai[JlkR-ZzNfZ@( (/N~a=@c!V𣘆ZBjQQyS>rpSBX3iv"նճ +ԟLoyy6DuQC·ݢI}A|t TSK.\yXȰ`2o*,mES=tAsࡷl!4dzJ0AYEKUSAC 5зxRX !@r$$ f91bawPZ:uңti8'AMo}nHo/x ŷݒ e4uK\*@ebY kXbP"M$yH $'aV)Z06POm8eiy!eǷ]dG6BuF)6FC {19} `:IѹԎf܌D_*?!OӇZKE-013 j/Xj{ l 9 _:94'8V7+ EUu%8u0=zBn _@"(* Xcp)2A6va2]u%x6b*k]^xknhm+a)W1ͫ%`roxgoa U>w5dbz4c_׶8։BkM135^Y ynQsPԛ]oG9`'9S <؂8/Ć6ȥee}}@:FzuKS~\Q3w3LWzǥ)A׽f:QK';Mѭvx_%˒O r% c!G缡4~BZo}@,M#6gp EO0D(GѝZ(~&O.r")BP xp•!o85tUJiWAm5cIy-bFS&Ѝ̯qM0,;`c?[Rھe2h/}h +DŽD4;900R"V_غ*2-\s4/}DKJ :3h'T.'s-as&ɔe~a(} g,8~n6:rp7gWO:Xj5 +/rg5+X cdr0zVw9GPlM'Au-9` 3 2+KOlaN5uvʏ ZzF;ՓL$,* O25`=*z.3;`Q2cՃ8ϊct!g,˛XE?!MGxBSLFTEӧߣY; Od1zs[6TM3 M>蟸\FX7R!YPxlH` {6%D8u~bm7{ԉ]( {qmbyˋ<(=;0=Y\(@TC(P+nǓbm\O_0A?߇b6Kb.:u4PX38Qpjd'/rpvՕV}(cѯUڼY3eW-P4BXr||V?GKRlaVɯ~QbVRa|raJ PmZL(3Q;MP"3hv2[0^ɪUuJ7-ou;ٚW4u +Yk 0.h|1Ғ?fy @";V1(^+JƼ g +@˂vWZvj##Y\^.Y3nfI}@IE$[0x}#∧e#v%`` 2y'T X +H|Pqz1/H_#p&K@*C,n "9Qت@nG\ǹ@e4VK(-e=uu2DiP!? QPRWzHg'T$F/aEqceOTD9}ȑ#y!X06u@>Bb!:ܣA }2<<=:P7v7!7R,B9#2Sܾ{mޱ~>~n]w4#&qw8/(HRL<ԄGydwPrgIwQ+&IwQl{fL w9/Qz;: = wA [eP+u{UWіs9FPMfC5j̕HVc Ll8JU:ş6%Xtҋ8܋C +Dͮ)AA6nafMc8J@*L! + /|Fߴ\!<@ PxpIm>a]tI +QOB'd^^Du3DB^yEm׻JQgyhB ?_cJ)>d~^"sAf=g?%n Ǒ3ױZZV5 $jөᦍ[0 ] 8E۶jmR[V._IBo,X7VܡUUlXe]ԎnOjA8[1wY $Y`jbE!nr;z[g#Q0Ksntï,CzDr9:y3+viڿF-;$_i0mMUAH., ~!z 5J U# ݡkKf0ftT؉ojX1 +e % 0IKVkL%zH[]0ȝ;^jz" pƛFp,-mR0MՕ}D+bگ'ok1ܡ#v3حxہ}Iv]kbKפj "ՆKaYk \07oYe/O0<5pO+zvaߎ*o{׿kVTjl,M 2{%OaMO2K0sMe/Y +QFRCEx"PNQFPFxuD $Pvoc !}xQW +8ԢƪZґAF!d p=% _p8H%^n"7}P={c?nMSEHEv wD [շ2iX͐=HD[u1OHk>ǀ\N%zbKTrk2+0jjG?;XԶלP>-^*;;}|é͗G4|>m-@w.nԫ 87sFSn}_dQj[s4L\^CI:7Z^C؜4F(~}rtS/S/QbSN½*~#hvt{~=Qh ##R@:? r/8;c[L|tYBjFF$VyNF4ڲ򜘒5ͨvߛ,K0LAy#Rmg=S^3E|t2ݕD(MG\y@Sۤ2cݠtu/UZf UJR/҄ffre1&ڿ8ԓoz߿EiX +|oiFrb lLy%Ђs+0:"qUFI:"_]tg*DkQ."!л*-p{+9e{֨0kKsZF!sUI|ek"pqBԸ~ԑa|0@L2|Yj3+$9IΚdU;XLt.xˋGBU g,ɱ v8 +# 2]opEB^c $-摪sڈCsVn*B&_.vDK9}uprLEDriJ6TQ9sT1NQb(!+Ũ)yD SoVkϞ/0gi}SIzmmmu +vPa>Lm ++W}7SG}7TS}oTF3u G ?f@q J/tq{ 43ZHwe +qէ n@(p_Aօ @;<0n/2OlKlM.  ~A$FC"۴=OKm O!~rG!_GHF~Gvw?.xI+{lN +N={%+R<,FRjuzsMhci4yu5 ~:VUΒ2Ju. Q]q"7!,\^R~Wh+ǖƮ4|Xd=9tzi5ZHҭKBS] _ɟ􌓑E>ɷ:j]d6 JEg%bۤO'aiۦ5TiF0r*kxP,Ub''œC4 |~K6i{ԸX(ʱWXWT ]R/F=TH@Ѻ]ijO;U3).އ똾_48˝dY%fm/`ӏ2?3HXzbms29uKKk=D-8Sz,9b9"rR*Q0y-V8,}Iuɇ.@\+ ^(R4~Y&} M(vN!=&{<_/}rNok&Gj<fV<1j,Mz@% \W #6D`}r(j$ksB+CH]࿱`XHdWl[x٤Rk$E#Aځ1MG5`Yg [rK>`[EE .$%ڷCN)U#$7dQj@rAћS G B5b{sQ{.Cn@~"dqwoFi.:0: ӂ:XPn>gk_cҚE޼ +9wbXQp&ΙDg`i^nlo#o3HܡAʜ @0 +mHT\j#2G~qp@IE:Lcrc}Y +ovr*D'=X?_/o>d;JvqUL|+Lo㙛px*<|g햺ԚQKfhIHebE UXQL&ASKoxlldI[ +ĹPdEJRN&ɂ;~6x%3&"i7׋\R4iu{J(uddj\w$ Dm@A>:Hԕzb| 8&v e0h{W/BWjwsrC:<@Oq8PPwQX Pr$W̃@3Ty$J$21l +d6+CsТ`-lXڌ?ΐCRX W YD7$ +*o6 +K%n=-n o3 4h0&!#ZBZw8XDr=q ݰRxCa43kZ)s|mh7? +Q)`ds[|c2>]#5ݞX_szAuvHnY8K!Ҥl#C*ZBG:ʝZhMwVm"GޒK0*>6 }ޙ uݙ٘5vf^/JPGLF@|tts.;D29H;k݁Ctr8TdMn^0YuϰccA +=?"WhxHsƱ'~~Q80 , 9Ј46Ǫ)nYx} wV$%h;rCwr:Ǎu[(}+:'#zA ?2-TNS%^HJ8zCt;}яDIT)Avߢ Mf="|""U~8D W*1KbUL07uv,YcE+WҞ;22u1P_㜘c`OUMp;XH q)e'ͩ7a._#ZPāj>76Vd+XfVvceő)Qu1Oe1#W/dC#I8hs] + \$ G l]ڦt &HɈlzmũb޼4XD(ӆ1i8 R1:bW)#q|2Rcĉ{SINXH ca*ѪBQcjb4N{eÑ !\T* pW2'Csס|j ~I~ׯ7l#+_MT1 ܗ&zMjX-aG#id[2ZGJ1/scVɆЊnW%>16~ `&EJsQPQЭ@+dMt*P9G $|WĖ$C%^?,Nw + _ )hZu]%rܼ0^)o#9b,`Eo> eW&XlǺQS!?=)~$^#0ªc#-5cauΦeų= +DBK۪E,|tZ08qw3u:ǟW3580x5D?e5EA2:Ci>}Yt}[`ޡvѾ6/(B`^sQ/$hھ$f[ѣ +OHW̜D`Sn}w/(f_#Q{4I7ɑ d~C|%n:NyxG9ŻL\ˌwּ Z +n:C9R)b!c"cn$i\BmӢLzVo3%IԞ"adyWf5(OC[f''PIBmJޭ-\FIK1sm*-Woqcܶ){VM'z̕&S-\tOB|#S9 2IؽAfM<mqN NEB[qEq"Tr#eS@DMk!4Rn/OdX;'*ߚ"!0)Ϛb)اx +/Vsk^]iS"lr)NfhVdAc:y&; 083sxrYo莖'QmyhSngM)-&$n`ʔVU'dG])%kO '+:Z6R%P3xMxпIڿ$X{TԲaUW Dpw7-U 88刐m`Zf})$:ޢ|d^X!ʗc_ +Ew|x*c8GΣdh}O\['a]|&FpZ1&E5mས 4Dpsn!||||l|h.q0ernAo[ ۿ͝}#O^Õ8~>ǹ0(:;qDVBi&1VIiS;I%t^ vť6Æ*UR>#=hꁝFPvQ.ͶTzA[d0-*5c0] uWOT}uil(ODYQܟ)jyW'%Vc/ I OH~X2cBEpwd[c͙땢rPv-g.W{ҐU&@mX|N ~ `5öh֕&rOw.ft(q;/$i9p66Joaq24`OL$6l=}$A)A&EZSsHVX0ѯ +H(ia9< *Pȑ4\1B;PP)ĒMxhqLҴTq\鹒O-%q%B;ܥ3 F0?~Je N+pY +㥺aL3nL,ꬓ +fdu=Fś +w(VU=S)u-w58\(^B|;mD]gt:S] uk:@whtڃ ;H#>R{jpw q)[Rh$ޑV@|IyIqSeTEcm +1m9s.]$\O'b۠Rx98MY Uׅ&k0VYKL鞓 +БViU7Yb[zةkR볛֌)p]ƚ %zRy^L *eHQ~AlYLD945 竅u5 ZQ5#ɡ "Z.S߫WBK~E615Ls\R'`(/@O P[*ͺ5`{<*Տ="-lZxC$|{~):>e k3`}A,r\ł!F B^r{-D D +E<A+m|4%Լp;0n)qOlǗ'(>HX\BRDCx [u!#IG =LxovX80dcUx n5,Kg"^:Z)ܼ#q),uD6D^!n\/o~e  vE|bj3ɵ~M=y) x.aw^IAn̫%Fcڥqe[P~dpgTؑM {y,17B5pK `J6gq%iA\8ogT|Go8^@XE\}#3!1FB37'ٖrB!p<1vO7 & $6xdm:ۭY5ү؀!jjZZQ(XU!2E[?n8K/^WdMB[KI^޷ﻟ߻gyv y퐥 ҁ | j8GCoi{6lG|Awj^aGHg°+/Ƙ}#o5Fa1}߿!srF|I01&9(818H@1'%' 17IOR*%C1hB3 + \d`Ke<6UeJTu~BdxU\$YA%(ҫ".fJkH_0 kedyw GVygw*̜?vD0DfJX򸲉" W-/坷2ԃTy͍Y[`ۥgH:*-ԶDH+ǖsljdNB14`6ykZ+L3_YJbE37فeڋ)8@mWde& ?h 5gA֘ /aGbr`˃.pBwZb P@@~1BFI4>@_I6Q 96T VF|vH*mRVZmdfia]LaTRy)`=!0:2|ԙ_ Z '{J[]Ӹ8[Q]Էr&\:VޮS,N<Ŧ㪪 AM˘2.\3Ga{2 mL1wBnMTuwww.ӋUEm(B (WCqc EQI{1M`qWb[Vpӄ"3 * l߈Y!Օ< ҁY J0t4(a@tAyV0Ϊqkm~w0sҕ=rWإl zE :} 7.s2kcELVA*|MacF!~vK~h8Em0O\=10o]0<"ZFX;)ns>ּACץm{Kßug=eKKmmSoR0}=X:$tP*Q]A$+&=PC!_)7D^ܟRzGz/\欻ID;؅bB?{>~uIt{4y|ϵץtr4\̈d-Yb@`J* ۣazCNt{i֐k?)~c48a_lveRmML5v'mau֤ n<,xA (_|%JnO{* $a f 05q!o=jVt^͋H hiaqGwK@n];$>H $f3| `nP˖-]J$FjiGGG7CYQ^ + Jcu NV5Ť$g&<AȦ;iQkP5"ۗ/I ^e kʽ\3-NVN,;fΔ{Hm3lαq|N~XX.6 Ty9BbsS{4|ys626{;^ƛg}ĵi ]W8/x$UW3Y(Eu=*i^;.GP>8]N幞:ɕ#xۜo>W.ǖ*BwhJr:R~`t!Fo)<8#x>PpV1`<&wHQ#1V' +7\(w&4V ßPF?кKNRؽ;Yؽ;Xz+w!Jؽ;]ؽ;Բ<3hHq귟H'*bܧ3Ձ E͈Xgp˻ 3P-2Rϙt%YSK%ҫ1&\&c! dXq8ziK;wM:tRZPްP^[z6JFe1[is?v(V GeXLh= ]Ga\ uŸM2bBE<xmHj2sfLJE͉a(Fm0L -K3c/5ȶRrbGP J0dJWIyi2P)N275г0MEd( +ʳ5- +_Dڊ6QE>sܨ4GnJi<\LPSؕ>k05k" buSlZ'G* MkF}ZfKy\Lmy2#/!k|"ZͤV&aН!b1.ףls å|+Vf] ;iL٪oUQih>2k/<ŵ+wWF[{ Zn *Ƶ;z7#og6&ZҞD%.&dS|];r͖fw߭ᰊĄ@&Tu|ܙP@hr=#eyԌܺd#%h6Rbi\U旮U"PJAr5\CuOmC'zEqrA:nw īP> +SkS=+DZPِF0J$W7F=4ژ-ש.um|t~Sl$T8[ȮaKԉo(F&T +Zsw␻w|`6`WX59ʰlXVcjє=)kU $ ,vvg&Ii1ST#c,zB^F g_x>w6#WdU"^lj1_{X]e[߬ߊlM"/WLu3t{#=νdEN@gz}K~njMZ }lˀ$ŎJSpeϚoEȽ'w_$C`:o; Zl>I_6~:;4 [ jwM;fz į|KįrWRS-'=yF3lScC *Jˎ>rf!q3`bT3hƊMHRI#rѤhU($iҜ|@Ts +τ_t]?5F$J尥Fzdi +ęsZ7.:('ě9jQmj#S[ԷZs:MN[a"rNJ;%Bry*7$H=>wWPpNY RĠ&}䧲Y|ˬvLiъ0/OK쭩x&"j8|2DJ|JFjU&NWMk27 ߖlKm | +p߉4, Fyj^ %ix=l(#_,TYZmELg3uO+%LE:294_g@xOD9/_-]Ohki\e_ޟ309O'o?kXׇ^TezUBkNdUq1Nӂs9p`Z,a^şU IalXcp}֏</x.vE?fo.ֈ*Fnlˡ"V_P5>x6cDJq˱CM՛ נO ^8[ g(X`Gs4foa1Rp, Nm-̂|fe?R9q"mǔmܫ;Čdڏu|0e;oD.3Zqī\ JN]aѼL&u55uB&]L +^t}Q97^0ג&kZ%Cg.`,&Tp|D|7uDj/lV 5X, `_: &D1Jc@}=at!B~aQ˅9,1Dt+?+b-9xy*dkj6,M=+Sm/>*+naS+ɏ fHB4vVu>@'z'\ΊhP)d %be#0# OAM_&9JY7[A,.Dp(Lhjzꘜ^Q4i1დp%/m\;hOI8oFd5[uY/fHv:)h؈{`O: ?Z- EH{CԝnWfڌ:Ѷ_[2Gy|3oTK/Wl#!W̳mS/< #(_Kv!K9qBc" +{c7K .2222J[w^6:q||-sg<%cYYK]qB% ޘf@$%%<+|͕\{2QG^,oY4CDV6lb9/c5sBSjYڽFNe 4؋ qB.$ ijkcX[4e OBqu,4[XAU+ivQ;^r|,`>HV{7 3rAY!C=1+Du^0Sڨm<~WQ֔X!g-18qCWzY +DLe99SyL1] ڭoHz .-O-EE&#C=0ۤ3:I +D}G`hŒ4 ++| kEsX96|? ]1{$dy3HP -@\0E\ Eq +Stsv*qLX<7R5N-0Ej)qvAC֪j 2N f`Wf.m5=] )s;!Z»ljQ/qCVX4셥#<uT\ߴ p$֎8K7Jآ,(˦?VJ!Tw.ZPykՒW{4kZKGƘ2"O-,!\TB*Ɇ1+/HKg!=5""C 7f<:ßx>y~+VhXqV8˶Chq}6`B-z@5ь=Mcp? ]艻ߺjd7T_,>V8K'v%v"_sl'v3 +/X8׌[ꃞud>Pۍ@9VN-/y,hہ'鐝p C-~V sB$sQSU%.'jD9be3M!NO5H=5LM'GM:P;INMVPGU(:xA{cz̎)[|1*>krI*W>00Cq@JnzCv`v jW4 x>?RULd&:IԐ'Oj2sΏ&wnZe2D<bd 3V|NPt$H yf+*PAQa/*W Xe /vT><[wL;V81ѻiWuKJAП7%\PF-y,g 4wmܳâk_t:}oLZTr5j`E/ɔ"!.1gVG4ssebSRiVt2sDngG=ghtH%A\ .pHN7HѾfq{i={DhRů4:Kr. ~|uI91ţslh="PRsg.ݤL9oIJ%"N\ۑ$8_f:2~$V_Ik]oiyW+.  ž$^0 !eF[jj541ݪaoV MiH <䊼 EX85W\b(q -Eyh sr{:2-õ|='@o=&ӕ 8_Aoǣxd^ AZ)+ZTu% T dɈPAܸ6.%`LivǎfШQYA$ƪhob6Q^[31t>tȀ~fc,ZI) ͌5It.AyGy&tusėg1s"uO{H},~ӍWЊmBںXXDy~~nSu+Ca % (Ug^Wڝ/ ]]o ugV|#99C5.;ԇb4ۨlgbcXNg9,JkU8'bzVZ!I1!R2 JN4TyYx(2$\q9 3Cɾв wx1)6iO{Ճuw1;ƒ#z_5ڃ6nߐg@hZh]}+N1e~aȝ7}n&,ս{Ԕ1 +?æwG>DZSmp^}=ǟ|&]=z,kQHh&AN 4Q[a{ȓo9x(f;,yfSK9Jݦ7ݐN336u&7Ӝ=>j*N-z{n{v;ʌ_flj؁J5"3U(4vSTUXfXW7s+ +pY&BvTV'mqy +ȸl^Kr\yˍxM~W ;MPi$ juy +Gwh:m +46$]&G#,>0HTb}'#`-؁6*CP++X%@a}) Pūu}14hOOFqg;o+նd@X8r =S %P4s=p^ K_ܡa#JvQˡHT(>D[cl(ٶ+IRFpH1!%EeLYyi$n2F)"u(Xi224ÛϦmSM8C[XX#\RM@)CSP*+CUAaNFy*-U".:SY, sTf+$36&SjZvy.qVh>x~_88%^W=jB+:쾒i<3m\*㵈&abB@T*s{wK[8XJ__uh$lhz@6nN1lm8QLN#]^--(PKy l]3 fa0&4OnbbF d0y{$vSE^a6N.2?F9+ 3}3洤Bb"S/rkb|x$Z.1,LMSeゎ![j]*c83X)tԺ2+20dfYar*?<nVqȹq*rͰ") +{)=+"{ [Ր@UtOCyAk1NðV,xMDKkhwU\Itm~v/RϊO5"{ltssY].R!R8˔Ä\[uMmf;k~j"o-k<l:igv@Tjb1+o`LeǸNr?T }~I3a3Bxn]<>"]EY߅ۗ+3gw&D; +!fjįr ;}eG[ڷl<Լ*N WkBG4:lXGQUS+8˔wypn>Oڱosͥ}6븣=İZ']{`Ů0h36yBkxخ1fl&Uˆb;%ԑN/|@- +K(X +nZoHz3&V9o17B5Sj1܂~DgqgdRrb+kv#І}[Fɏg h1qMz4@hbwwA$&{EWC;KQAQ6;3` +HQEa#@%h%,@X" +zG;]9Xiݟ?>?zcx;zgsz{wx w?zH3PX4PfvmPn[?E,YLlTNýhAJ&yJ8`|Z{ K۬jiPTS)6:H 5()Vge +Qͮ\D1oOiƒEYD-vl1#rJ;a23!F6BUw`{YB40 .fQ&6i Ql*B$lnIh8&EdMiN9ln!<ųqvXzWADpXCE(bݞri'fjaH~+6 #:f@YtX7ЊnN1IXTUw\Ӡ)É\:sZu;Sac4=u2m D5c՞ÉA2l%'WZXL +bөI~yoވS=2rY)1{`m Y/|$Ig6:ot M;d$QƅSv/hRb~Z?O Q}VoqI9 +NaJl&aB^J +2=eq6ٽX~>IUyqտcn[@ՒFNPg?Q@@ΦiB({ :e ^2WCcDe22 M|(Uв~ Gh,qI5O1%˪LT +T$XIQ.81p$aKlٞh6[FE4 .,*eқR:#A>K$iY[L91:Y]qU\Th]4ݢJ]Am]Q)3ܮ/TO.&*bleӏFמOHqޢʤ㰀L*Y0IM `%ӎCv0]U,>1ã^: {ht,(B6.>WxKA%B<ĬÛTH[2׆-֚zhq"E0|b^^G#Iui 1p-ÛOo@Zi:[פeT^͞Iu2[5 +g䖠$\ ٖc,\tW[8Qc7WC\?l((.6Fw F_{^Fb=͢>Sl\:=1b\:'/C&Yѡ~t99p.DDvjA_ajTp֎4f ߄X-E[0q:M@f{Rv0 ϶F-cm` HfMC6lnFz.ě1bA7Gve؇Jdz}wvP2ܼpߣBAȴ-W.2aaFN ɑV&J)5|eW&#J/G)RC4]<-ްt?Q,L..-wVR5k0P uDfkzKSB)s]$xX@)5-s +FYd3O!pV[ҲQDI*$rZ. qqL8'd + 41Cfns6Y+fŀ axHp -괖ᵤc^91-Rz蟳gAl!IvTV#]"D֘v](O5m"sUƇjs-GjTCU6s 2E:KUUp7cbp'crTE~ [UQqZ‹tm!f˺(At69.f*T1a*zm2Di1Yi}Cmg/ə̊+OkB\ڇbAZ?zDcܪL_o̫PDZtq:N$QE ^I0U좮d\0۶Mhޔh-DYhDB\u@ d<|,eƆ(:!nFA_TT^',ǝ|&ڊلrW%ک\ bv2CV$ Iò\ օCNzq4F]Dd[LZŒtnëBk4=\1\t +å斝"h+!dy"BKRqnDEQ74fL xs86ӈήqS#>RcI']fQq&kg3Aydm)f_N rl+#LDT.:tTc +c/F!,vQE膸v2 + + 3 "u4}>k_6^fC 14I'\P&{"۱j.N]Ғ$ \ EH`mG̉j$neZx %vHD03RuT=CyyC) y-C \c:H$Ћ âvALAGx(j挱# ON.@AE𧕠'M*VF9Pfi.:* +5/YfTW{:/:9Td<;N'&tѨ4X,=ְ)hU&d[^ bҟ*K8Vq1Y g=jJb>HH+@VORz w%A9svLIIGV",h<'v ok]5+FLmowH-~T`"6̐(\-֋jW¬7o.eT!E' wR6 NMÊD-=UuJ1Ÿ4D}6_e]*d'ZY|)46;-gk3 33lcCEK# Yb@S- zܙkv..W0Nշ`?1]2;1q䥠ۢ-= B>~ [0#3"ʞh{$x4Oꑬ{Kе1kQ?h:HdAi3ڷ~-5d=eJI7XC9e[SɎ?(Ѡvɇa֪h=|Ö040*LˀL +Lt{՝{ ^:-N78FZbuEWզ*\TI:5:$z,SM^pFhJ_H,6:CDJ(Xr(ĴR6!ҢxOq#Bh O%~sʢ?j:Bd R0^3W1PA Ց0|2 t2EQΜ|zER_*Rb + VQm]Va&D*gHUtT +rXv3QgE^ DHdX!RŵDJȪ*ZBzaqؑ p_NAkGG0?^Ri  _x&4C1 K '[xkL,p qB[^0 &uyHW6+p}?I)$Gd{@奠1n 8 bpZS[2sv87g+=v(]V^`ldfmI\0׏Rbkm c|yj8:}lڤ!4N9cs ]Arab4KN\tRdU͕OLm6pFq|ےp|† NL)8olcqVI#ׁ_XFr5 q֦~v"d} :ӗEtr$*x+u(͇AXJ]|/&񿨶E j/TA,8W"@xIwNΔ@}pDHzzbQʋTccNFk!T`C&>{i17;?,e@E8"~!b&5^]|͌IVdYٽҡM 04y5%-99@$\Kr~$`Z'2oENS``*vJ#dZU`7M>K9?HSCSοkhr#gԵݑUQJr%1̳5Jf*FR؂,$*'M0M0') ؗ{5.D"hTjO%Iu$:e94͵՝]O3 qTMt> +$ 0wW=0{`;r ރF &F e & +V!yx>5޸ixrAΟzZA}Oṛ-lcAR2RYz4s +iVݖ,c{5(&l9 +t2Ĝ#L2]xp7IRt*y@eu؉> s@wq H3s F}qԧ@Rrv6|4DQBAb*wuűYA/jEtԮΑ0ZCst (Ŵ +xA[ݔhw6C=~LeJvPg4<vũie$#A?l]n"u[Tw99u59KVtI:/TL.+ҭʫ[e.*yt nHkH$qhys.B:rq@'Ե}KYp}]O}(npо=XNŴc)DO8_F# +Є|܍6DGoڃ,kDoSEGm92] X3 l''窧V2o՗FjkPM%IDCbLu 4:E:TPMvJvAENg4{&`B"A3ReGO7F?1FMgFMSib*3M;yN; }j3&1:hswx/"-BYC=˕'Y+n- jY5) Cʝ"ۇuR9BLYrmSIk(„NHWmihhncF䝰ODdmb."efFFA +^W.΁U ]ý>[OU14_k+uρ/^++2xMyYG7@ű8XO]5cBJR=b 9b5$v*uQ%/ƜVnRޛThEt`h?psX QNq>.!:R~ 7~TXE6q=IO[e`i_j%70/B_%poþDCS4!Ȅzh;RiO >̾+(wÖbʐ%LH d©*MKha#'Lѽ[AOPLQ+=,Ha8a*?P'X FVC$+ klPh0Fs=k3w)-,~,@Y/pƥ5Pd =J BC멇qrB +nrq v`RRs4= =A& vc8kc@%9a7uK}c+ZrjfUD"e`ҘS=_rSHHT̘$*VaJO6R"j$D-rNJȜts3k$BDJy1ws*=sF-ץ#ocEc_nc#=gLYL{"#*׿o[Z{kyu¸:^_o;rw'ǼnQ!3}?}=iH+-ڳ`~gj卤Y?TiGLsc`Vm>T3Wl?Kh&ܲ^x^,nqmF2V-T p+ˬ:&ג ukZǎKB!'P 1quGɍcqGSorH(?y1OXMoZ=D<<,%iZB6d6 PT>hb"ŧX,ёźC꾠zrJ$ށ4R5϶C}A-5v\,}^)]hm:D N^ˋ܍#rb؃06(2=0:="&JA0u}Bwt usE:=Nыi +:U qbՃ{/rMlu<0[Θ.(2CY O0*Am7Ggf-UksA#uNY*CFi?G +ߗ1՞F( aQ?Y,%כ 0Q-MQv\ڙn ;b"O mȔpA 8XtT +f]e,i{t&Tը2z +?7{!gK>K5MNVj/6J8R ,n&UG.MJ092Qo߳ã$^>7[ Qz0{!ǭ(v# ;ÎWFs=AhPER+VINQUzHl .rSсZtW> |C1hgt#)ColH6 +/8-"MJn֣T:KhsvJ)Eu"\22>T.ŏaviץf5l2c ue lO:j3 !,6=a}"@KaK5^ Dh^ŝ !n󜨟!4cʽԺρ(M+瓤z_:M+p6i$RRȡwnW`c(TZy`CmxSo?~ (rq>B[\'[(j)daFKd@YСfEѠ@< 1I\^F2Cz)G£\@C+:'"rӱә/#ojm6Ŧ~f^!ZT@@q~Dv&j2$qduR@{ḛ4i,(@:M*8A;M8; re^މqIvunMG&ƭ죵#~`j6qC>OU7@iܞ,ۮ*90*Qt:TeD,9Ct][~L[!R!mh;P(UE8d'#!z$O!ghm0^ 9nͺ`vNp0=\a +M$ 7;m|1{h)kԹN7z{3>g2<<<"|ܜe.)Nnn7^1_fX +x?y>OH}"!| HCPC%H.Xa: Hc+M~g+#gpZh3CW[l3GB%GPMp(M Lʸ\a): +8) 9#uTSl _bxҖ`!CKHV`&]) 6J}CV%+hw0b#/ůy(cV^ +_4/F5ߦ9 +m/q(sI_]9v#%Dѐ$6$6ӄT d)yܞT^\YB>Mmkp!tCMj7 U70D_r-%6L[0eږ}pm;I]Vǟฃ]5-f6+O z TsshW=(3Z-Yo`~m +bFvv*ϯ2&B2(,zÐG +ɾ(6-;O(/(+s ?,5L\5XmV˵R` +V O(%]AQ1 +MhQ6M'Մ*+=c2CvNgRtڳN}i>p}N vX-F􂃦;-fWٗ5'Gix[ a mM:SԔ$ 6>K%C3Iu T ~ ]dYwRZR)iPuNe_vr h,mwӀq)2~ax(j\ ;A%KoWyffUV_[lf>Qh?ߐtFߝiݩRH]an$%ۚRM9I2$z ꦗUPt44uD@-QDmTmi TϏ\=޳m韹]WvtM[`[b Y9W?xJaMu$: >fGN7VwGWK45A>=MMţB;8RrgxF7ňnNLTCAAĒvCw' *{;1fIfѦx@L=JN!:J\k eC5WsRG!Wzo,tM '/W+LA\w˪i91vKCb`I0#4B]' _;1ꞪOۢ!wk"d9a@ip1z> =DU/ 0?H-9kQY֮8ZUە灦i5Ol#\JJRGhzUyґ 8(9X镫;W ˾Rv$P[ܿ  €ȿ @=\ cpӐN2ٶ!"ֻ/T?YTMr*E4]'Mܾ:׽jԇVRu(FȶA{3L{Re|IשANO{jyũ}yӐ~]z=1`Db)3>a!&ÒVD)Xf!匤Q<5ٱ$Y g "GhFGu3Wf/] <"ĵDW!:// {JyEDAnאַLaO䎬zp&M9?iZm?[#|؍GB.u1R9tdGWPRCKgB 5)`OӐmSaBu@*'O ߗ<ˑYǵv3-k=41K3G F-'#e5D`g@OoՇd@^ +-!M9.6DVOUk-3VOX,--;XL"TttkmB<ZNPX ]jp_Qdvp1)aE7ăh<`wj &_l1mW!,,sZo12]J--RSs2P2ռQ1)}di."D9sÔcHd3B1*Q0K7D`Sj^&R,FC;ekc:},Y3e8>qNFX#mF LAlFw ¯]'K&cBíT鸔-f?j{l(!ʐ+k 6 D1 #.ȁ;B3Ռ`Cy.YfcmuL .C8():  V_hG=(poHbi[OteHYSG@^/&8X|SKSckOP(Tdp" *C}R-5iz*_i[΢JlRYS +q_P=as7R +BJ']:2?ԡZIw/J SolԸiExyNV,}RQ l? DMjx.GołQTu$% y# -&v񤨈3xp=0=pp"P~Ĕ_HrR dwt,Gn{dG2nrg4+dwdra|t\/Kr5AJy^ `QX!X X o{T[/h xCn{|T?7,\:1pa?:gӼ,(abfHB2Ϙ.Y.u!vdT/PiiBnoLn&]JGj ;Bؗ0PsSm]IE<֥XK =i"8x> F=H0J)Xڙ){69nUujk!UvE`ξL8$HT}"lWc\+lf:I]G3Ҫ䧌H) e|*IQɒ%(2ѝ,=O{f|mynux\ߗz njA>x(ȉ`@+ƫfGDG:2f"fZ@9Q=RAQѠW;WRTpVGk\pΉ[DS{8Qm`24Nc𚣜>KA;$b$'gRfcK,\I"ZM`(֨ae05𒩡yff5ooKwr2!`@v"eA7fPZyT&睼&3fd63m> wā+thٜ¤;g{oḏ8IP{zFh=uC,FDV<~S;s{^-N0lH㯷|ڐCL1"ؒ _$dmDK9\q )F> 6W;iܖ݃jG֎sKQ++Z/y7KS!O?W6~htT4h 4TTKK1lM*1"IrPS]]r[d^+v /Oȟ/bHڷۮ㵾>Fp"D`8 q@j!(l" W\p:DGp4y +`b8%psROp`8>z{&1QpAHHrDAkY AlY)Am]8`:^ĻwaN@7 GQw68HbO,qBR4c l)#hcG5Vh(CB椪saRuSFc{ +PcY jpU@-!ʅC`reFVy$[>1 6'lze7Žr+Rv|4Ь9u>V$>81! 1@&|J WUeq(jG̓AKR2,!}!=ooբ6J1.GtlL%b_>,EPvF]6r\œpL샍d )w6A{<|iNJO^%F1oꌀkg$k ry3) wBZk UӉt@jx.axq ڡ@Vg%5 +L 87 n⦜Hű( +|Y^YdTdB =1c5F}GxLlF1MuEK6&ޣ-pӔۇ'ۃz=b.0'8RRAzڈj'ìg8Fd(4)Q=(%ti*2A+:x={֨-,w`ĴvG͢V`C5L´jV8CU$Ǵ +%U^.1yT)feGxH C2r~| +4(GE!3cÐϕgx+t+SH736[Cs649ZʔXUK0NVf'9VЈRDoȋ)y6mj0$O0m%]xѤ8f{xy6UڭME1czF,ZnH5DZ/y6 VTglU4tn Ք3ϯt݌Wc b3cVam##-QsK6ޓOҴ&P^%^"ľ2~Ns6VuAu- n !aetD-0:DYE&^+3sLG8f88WIaVYd c[TJیFE`ĦxNH3Ȩ[ȮYQ;K̔f 0Ǯ-(zZQTW|U`wD;ptC9ɠ#CäC QĀ¿ &#Աʃ"#NkU ײճK(Vgxr-ѡc#Ser䎑O#6 vGZe2 +0JTPO +d@-%lES.޲pKu]S0|IV`+)i2ra1[67;RܶJUN&jj^Z&D?X&Zʧ_f喉K΍Ҙ3Lxd)e5R +J+CҌ^ne̼5c$qHSb 1),0ؓWf )81#Ym5*l×o/i"=( K"R']z f u.ll+(/(qr܏Q8`L,'uu"w*[4'z|4P+0@ +Qb,g^LSVN] I] < 'ZI!jAXRfVhu9kݸpL-\߅ޥG/" 'u_#QJA6Qq:Ii$8) (Y}VeZ|vOM.;m2udTxUt\(:0"D8c-̍R-n,x|`,Yk#:̪̝mj]=7bW +lY0e!4`Lk)>AZdfP *4IR"5'31e]/d7FԙR2JN|osu$G +_T!TN OEW(}Lr'pzNT!\ @蚔t ,FPK_{l>qRW,n4yφm rSs6^CBz6S}#vҨQQ >H~.NuW*ENl BԉZDzУYo &@Zo?Y "tY?=NCf>zHΟJ + pfb U^p߳{# #-J]Vr? wl7+Q§[J/z27٠_{DOȍb&k=T.Kcdzi/sx1dqaϩqW"@lr眗V-ȴ:4OIȾgx` ~c~{X~:#Fa ޤ!2ۏ'j9|`-%n̺rTD5?ro1gXw 7ENYq?+K$ (#- +a@M:2;͖<HgސWg]*OeXZdsb?7. DlAE4as3#E3-n4!ۈ XjI% s8 <ϣV%?~Snvќ|c{/()]L!QTMڊ{r;HWTRԻ,䆂C^TTԻruxvkWܤ.ym1s:kTL$Bnj0V;VΡ{Yڢ"*҅MF=aُA6{(a~`mFCψRb l62IrW-'gX?0l<ˮڇֆH +%33&a8 v[2-?Nx!%rq3 0ga x-4OM1Ur[F==8ȩ!?Q40P_4OSn3ₕV~ڏ 6  47h-ptּ4 8CKgryv[̗BTcڡWhY1v^&C&d +~N EʸنƏ~}R\{6Dwz8EOmWx9s/C{PQA۶0m۶=6*mm۶gҶm;{>'޽9ߺ7b猘Oo*Tn$ꈖL8}QQRadBc!,Y(G[ *Id*}P4z4!Y. +d?ezr}q 䧢D)&P,s#ˁ4!hax`S̜jI,GԆyi C6 %ae$dїlKL$H@챻'*UtWYki^̟фf3-i\JFtI,,wn!0kzeS q\bjO;Q"%XVڪfV֜Ӛx^bp2P*RabeGL;bw+@; *zi,*:-^nAV.(O AnZM*nS_~y&4$JYfoB"HtE3._^Z7;I]:o`r9zNn&%TV) V=ʹl +Kg "ưSփvքإӟfĮZဎNfP0S:źMȀo3/GդC!T]N@P%׍ǒ7j9FC&q6~?IsXM#x,9}iկG +TLts^Yل +Jix5pRcuƈȎ@H<~UF4'=dK= ++'Me3;ũɈoa:pvSJz-GZt8qU\lȎِLcpYoe5}PzKGWu(ՙ}51+„ʾts rg+R?eT:٘CuB\+רg`ki|:rE\∺4,s'q]ښ1\f貗@؏ ies*5t1:Ӕ40KOrtHY롦8V|ĖF CN-*Q~}2BJI@UFwZPxBBdc{b᧷.l "3Z*+)|%Oݵ{oiyheXHf=e0#W7;ѽo_7/{ ?cE÷,>1:jaL8"y+/HK9=nS4yv- ]ֈNui )[5§XwW;h*VOk UߙByL `Ò i}İ9&-FQN`;L +{H)b`sgQn׬S Snr{R?zmao}|5{T? .DyW#ߙމ+! rtyOWi; CxM )"򋼗zNkpO1#VCfE \Kp b` ptsӤ՘Ty\ o9+(9džbSfyJג4|e-SfEPefٵWqsD]5Y,}7eԥ9"XF@(UZKwS^~P}>@ SJqL#IjJ_fjlNɠfI>3ٲ,,([?HDع,9'F{,{YO:s0fY{3kREm1Ue*RdI8Qu0ЂR~9S)uMNMàL !ºuu -͚FL2.@s"m5'"boY~s/jij>:e rl˱ڊmd, @u-_T~dٱ{cKߧ-y&2L#`Ft$VwX5VVʘ8%,LlP$ݟWV2V7w[OWw?:4=ILʩ$#"eQ3>% 㸗od987͡VadZ==@ՊB5T] zϠyKB2mG,> +|QaHnYREi:b̕HF}w`b*\1M\1?N8,V;|;V^0H ?ߊ&4"Lؼ'A6'VHOP" +^ ?F@=B(Q@>Rk +1OX0kJJӖPjѱNЛ|Db@4`X4kk -γsrgl OSqGa KutI0;7ɢQx~3atRN^Q:eO.p\XuKP$z1ooibmMKߙK|ZBO{fD4NƦOf0 +@Lt`"Uڤɵ(pg e,!]JJ*(Kkb _hsRCFUԪx9uxrǷ6 s*?'$b.mT!JNGs`e#Ffto+t}=Y&Gk}+lBJ2Xk2 pl.FD3;TYh'po7 Wd5 ts]8a=be_Lc!ޙ(3ِm$Mq|R\:6Ӿz܆0 .)!W%ZA#9Zɋn^Cb$zzJC&5B47ҕ }]6/}sGxTvU]?*pNq8cPjL @Ŀ࿔Wp f*l[uX^L`Bb%O8 +yN`6Y"z8L5)L_A#y8z$ Kӓ,@x.SgvXKY { R ӏ. + dzf/b֠+/Ni G1jvnM +f,f>o)kn >?p`dxEMeA"emqݫx&`#Y쫭ؖnGW{`֗+גµ~Tlf7ǞR&b9Y)h@rjcmـpQA¬\TP7ꐲEo8!s⣀I/zShk)A{gʟ#@GIG k wWkGYm=%qZrø [ +euhuU##{\4ʨўs5ģ.H># wT +KSswwOޘ`HCXE@!54յ aK5TKt^pp 5^279&;`^w35?𷍵}oȖf^m3f, [>\EEd);4⑪\C"l6wH6>Ĉk[=<.^6F@YiB!˵NnO&Z pcq&iF"bED" (rl)MXXj+}.`'V;7Q(=T\p2?\w抗XG{4^_%dбaHnA3G@s +` <2_4QtC\ ]Q%~OP&vSy ]3a.TsA$@4G0'L9vdJ冫jM;P*/a%/>ݷ_!eqD4HE3,446*y+g%qOB^i@yvfwExL񐵍(#d}YrvFuwK<:Hիb#H +Ԏd z9F#ؖl.D;jm O +B[1+ɧ{t\VX@o\:CN; +J BCi=4;Q/.A^ßOc_q'9| +)1""Q&U*K cK)xz}inqTI'xxPKc'0رW7AXVx[I@<"'\[<0%h(WɎW2iZrW r\=rX_}oQͿϋ+0 bNG}GD~˦SizAZ^Mj;_7to ^*̡[l|~oi'.ǞoUSAV馿|iRN%2MZ64P33 'QBa9kQ籏}-00 ;XlAHN<ؖa gu2qI;i%|ʹd zIBp׊?`0И+&j~SI٦/T x\&-hJb }>mKLF cNy};1^+RA $3.@YE dɓvnvOls:u$qBg:Пv:wqDE|Y䚐2盫jsܛ6L25%[Ѷ}es#WVӅ4{i]߅$dj0æ4[WØ?K\ +flYHjd.lTm"u{=SӈtJpI&KXh5^-!/WAs3c9DI-O5%zigS3=֒+:(ty1=Lx[,$,D2L+쯤ѷ?&sX FCMv)TmOU_u}ҩxA870e9o]gwLdB}Ckv1U cif}cSYP}?,j[S`^ڤêB@XC;->}Ǧ9cX@$w +?{, =6J}]5ܑw3(QsS4}krzS$T[ZCL25Ѯ&ӕ8p?ʃ@t$[i&&j15kTԝF1*FvUB0z)+ߕM|!=qۑ reGLas,^z7>9 \y>ζ7{R N2%]_sl +C܀fYrvm(uD1EV_Un)bنsv|SzJ!oY5. n9N_!wc3JDcS-)]-Ty  z*͘mpBHYxHݤŃ\䘚Ҙ6۝ĎW>C+س%%^;'AU&޲ &iwHfuiaՠ~5<3 :uo*o"4m,AAq{{#+v"rw}PswcT/(11 +)>t*a8hr#ZmdK+!.BIƧi}ᯡe5"1Cj K g?l%cll/Тs[ןUpՅzl/}DD[2\>sDt_p$L;G^<筒0G3#(r +xn 0[g'>č'7 @2ֱxG*< wG2y9v\?i6GS e3K"j" v7º*2$K\RԅʼXB9Yř151.o 2ӛ]+.dZPf*W +8 J*zYWSMrgdۓM *Wo 5&w-g:Y)96Rv2 7 @|N=2:D8( fJQMI(́g*<8ns%|M\awe#EŻga6nmOlp<[ ݓ̺a/ +M{K}5"&] z{j2/ "yR$m(M]'W !klGc;'EyutF(S¶Gs;+_{7VtZwEg/"e#)0a`uև̥Jc/Zx?HCBh8>T:@~NO{O;4l)o9%)  3 RSx;/m[CBch`k-\̮MyXr 3jQcLF`1%{jMj8?vl&$#صи)CS/DUEVf)2V}*4S/5VP||Gp'.xak :}~f+&If-56F_73L6n=oqϒJϯ/Ĉ +m)|Z* +;.pWХ.fJ6 6dj,Dⷕppǁ=1l$ZM#чj}O7pF]/弈$ +h>~{!%m*Wx$HKƒS '<`ѐ+KSyI0OdD0Ίwm78Hd|Q.6;/n, <~/Řc& +WT +`Z7AJ  K)U +T7Ѝ7DRc:s +)hy"$^Ӽ&MëZm% 58sS`^QI$1%)7}U40ڃqz{j޻dh/ycP +3ټ .c;:75Y,PvLX9Z>T]>=џJObIT&4ʽִbT,RߦdH ?/S_Gᕵe Pg!#l"]AW5ޔ,e ERBTDRD^M,-C.2SFHd ^lbb~mӎU +v GdSL8`۫3/#7ѩ"C}_?O]_W-զ6Zmxl,:|Vݩ4quݙ%3 +)7J. \ϊ`[9.PTT%+N8Tә~vW)1ZFWt_/9WGpȋ)M\`_H H˙oz:C)ãwʹ`Gn|R]=X ;-XvjU8D)үx/|Zc*Q%?E"f!U.en:DޗIEae#&>}>5@oPo&]Ԅ~;$A5UAf`hȮ9sdSN7yBEhGVo, lMlMSђ3lTKM eiwΡjꜙ–_V1WVW5]~E!{GjEF[ ~^(ը=\,Cς" PHokůCE?%'F +n;HM9]kjت^2Ckϛmw+ +*méҧ|"nc#J &ug<@1--śCAc'1xFu"D dF\ +"?hSRu9 s) %'⟗<0*|dˢXd |Nzf884O+558K䬁))an3;=HOV")M_Dj*Z?vg] :dҀbh|6ٓ#/+̶pƉӑ.7!] E=мܹA#g8}:[i ]~b !(ؠʜ KʡnXG)* *;ij# z :dbP+\'DyG 8QZ^Jt1QvWa8eJ9w d]&~$Emi)ظY*.UYSV<<^-N.hu;PT!Y܉u/hLFݠi2{@uc,[G>9l"F(;LZɏ w.NQiaG͸t,fGHpyawᖦ2.9Q~!40λq씆U {;6Y] +կWPV\mBShwKޟ" ý4UC/볭P1ځ~z Ezp‡.?1W s(Ӳ =X`ʍ-mO"Bc_"=-j*JþU .\ez`QZV:|l)E\SҎ( o`=;=\KHB}gJ'3bIϼ:0*E6MK݅1P$"k?,Xq?l?]!}ٕR%7 UH:= +(zyE'4 ( /r5o]C/ O*N͆f<1A}.* RLG6fc ٲ |D nڇ) +5)މzc)!~&=6^Xʼn3$vSb jӔ "Icx d^&Z?N &ivdE8`-;Mc1wЯ~GkɞGtBd1 g)gзYFFcxMr3b)xm(fُ8|U\shڕ[Fm5/}i<blKwL}MbY ́3ӨqWLvӯ̙Tc(:7S:Sm2Gc +5Iiv1'`#B !\Hl\O۪C47 +9x=yVUdqnKyD|n3(jPg|_u*[%?V ʉvBX$= _rεN7. +Թ$ Sy[@;D/mPڪ[s9R譴'a,y"1=, 5ž`h(-Q{f%D%QcjUFɳ{Ȕ #B`$tO}Bإ%fI\Y] YM;/n"X 4/┇]ZU1̶Z1lgϾ +H_uשZc4K^M`1BHDۂC]E氄ϧ&n.fj&^wBT9! +6;f)m0؋dl֞-aѨEBʲр^bw!׻k.f@tԶ6-C@L]Dǰcnj2>Π|ݞly?;8as!ЏUjHn7GSw4gsoNlCiA,?n$ +giIˮΎo[uߠNS>"Ca~dZ4lN ljN{ZN2C@}T:/#|`b:/١%gi?? +c ~ܛ,=$Lye,ڳ[R?#*120ƛ].ZX_Pδj8$ )sZ+VUf::ZҬZY$~`dv3nw6VKSJ3F,6s]'%rN-k28HiI:s#NʦaFqNb]M:ׅCS 4KIZqѭk+AcKѵ+U iͣv3qLO_k3Ү*=]O#%=]USR>`{+]b?ۺZ4 $ŝQpQͲ;SDLX=OhŶ34ʑ5 M=1:ME`NN+E8 HRh7`.m4O55 86'ֳph|{Bh3F?HAw1=jQӜnI (hGfɔdmtiݦ]q(`VZlFw[{\փ^8hJ^%ψ5Z^ ’4k؝7c;'ãhpSih]Јbn R(=; +׺^J.]޺CG % wfCCh{fܿ)gJiMƓ!wm]E?p3nqyS0a4'-X3<쪆y{'"G;-nvAuD,;xό>R9Yn{wKjn,E-؄/ﺊsBv^dn H4r(V;Nr\__˛ck%kqcu 5$y:'ZawP:C?LHMd!er2&\zΘ#p^ M8E@:Ey  -6U9J2k u'-L=I2c3h i"rRrU)Df~JP SvqH>qCd'ŏԃL|d6 ( |׾v,ww?T)W:ܬ3X#.V驉WPjPKԓ'֜SO s9RE8~~eWAݨ~xc{ O 1-'.L) +).B4"=bu(]1ܳUh2HyپT[FK""r! +@E.X&nuv|x 2vF)9V"[~y# EwZ'&5ft\)cu4Y:Ab5Q!V!h0/!54S^sNb;wȐ +D4 j QȌQvؕ/oCE^`aV`Ú^)Τ$HwvQt5/kס\Vnkiأ/ޛFtJDiy6T K_1oJDY/TD/܉'VmIZCiHv:e!$ȒծbyepìHʧi3s7"By[zdoH7J B,L܆.ސ?|s^9$~{f_K[0(hPkp$%VN-E]Wa?6yx^w{Cq "`HOPymB\<3Qds# Z"Mcx-`1:xʓLe3Zj̉)>@ҩ{#Cq7!?EYA@+ r.X]@g&ؾQhK/u/ʾ9q"H8) iIP9nɏ5ok5x0ʩ19,pXFe_|ʴ}0mKgaH%Ƃ +NXf$ q7Rc?-.7Fwneŷ))~.^|+iF^;M>σGۻ= +NryQqSbN}V\kܯ%FKӈ@S9YmO~1T`hƭG"ʄ\ rJ#r~JJH_r1Ӂܖ'DA c~Ĭ:>#M,-OKz=DC -F׉ е]}=~ Z|f=BT &XHBPA^jPO֧N*_3t2y]mN 8Ϊݼk0"O5IHSKAlր*NȕtRǽ({)3NG .! 7> Ȁe{jggJ bB=DT]>U{aHTVЮt YVPêjd6Cв_Rcyj<%fuim33ڼ !ڙ*%c}?p'"ߋ#BߓS_#tWʭWS7N6 `E\6Sik7 *=$e?] s@{9ȁ{p=w7tg)]8{oOx$ĉk/9z24L ']xG`o"5 +w][\#ѽ~Tmk\;gҤҤKj=6?=fTWnӰ"Gly[xd&F)?R¹$Wõtg^ܴ 1!@4 <?pMxm?$,!,3~WvFK]Rz{9^@${#:۞JfոBoOֶ̡7"8W)' mi:f/9!Y_*ة_1` *U5v??i<2Du`Zߓىۋ,ھC4'hI4ܵ; ]OݟŜgpj=aRײXVn__Ş8mu%9{Ȧ(^0 >$ ۂjC% 4hEf90h_[%^肏)lO&ϸ)5H> Yǀȏ <*o b.FDu/Rdvd~ZDGҾn"T|nq>X\E WC9Z'3Daz+D鿮ifAv UB{=GD +}:8q\q\ +S&]~g?ADo0spqL>|MO0&*gg၉npD4b'dHN8QZό?hU0!E&-<2o#rT Wuۊ3eI *JC/OB3EI 'xly2o8E2 ~n:Y'UeѠ[f[fgO7;O]qyYh/ggCw;T +zgמ/ifPBЈ @d>QE>0Hna}@bX$@bҌ!rcC~jKq̀0= ׄINzIKDUcgO{ȍ==0J|0 |͠e8m`{Wa{Pm'SQ^h&WCjc]Qg]6wߗ +BSĝUӜ1Z,Bh5RLi~[g(fVv'yCm Jf{nǴ#I<{ӐCA6Eifx̊̍R">sA8]aA ( ӰVD(%ϟ;AXZU2EX4қ{ЩBfw8蔌s_d5h>5RtHTP,AVO~hhilÄ$ھ9RWW-Pleڣ +UosdFZMfd\ ~EX[WGބbU.ĦWp9em1 += +w/ %r3xLTLO .2f#->[e`Fr]_y? +~ELd#)! ET*&4Wdi1*ޢZv\  TbTjk>TIGGcbGk`a7GGK;az!0f:y20ip.d'XWۦ[8m⫺tR(dsKe%1[S b,I/SڪSS 3{F=ʩ騇P1.ДCVDiU9i(CoGeA^bǚK穰5rSoPƬJ1PDt,$&ݘioߵWu:F ˸NP]|):qQ !&`[h{6.t'/+u>k-st?TVTyϟNUF +,q2ZDY>\|9B!)\>q'dgKJcqJBE@<]_Z\A303( fwwq~3\^ +j=Mxd2B4R] fBċ&\Iڰ.o̽CV"_hyb3Q/7G񏜆hy$L7+L<"Z]# F[;H2/jm˔㒽-(U}}G啱Gz~ҪӰ>/=.^]3s *IĎ)qRW~l%!sjnUY7 ;$ >l]6TgHKոD؜ELd/L59n!gogfjNZ 58Ht㣤۶ Gf}Y@-}aAv8RUP荾9*uUw&Qv-yrws3ǚL1.lòskfBK#a++N0sRN7٣Y:5Z哶+:Ҿ4 2`V&&e56_~F4T]v̑D;\i˪<'򙡎 +.+* !0EG2ͤ.:utt]2m5^x!#vw([8 Y3tL_3tquGW.fn +Ɩn7-[_|ì6zs-YK +CGJMEV(B(6y[kF{2Q2_meL}eb[˥ r{(O-wrK~_yJ܋xP=Ղ)# o%U:Ö́lOC:1;?) و`OdZ5 _@Lو2@6+c1@^;ƃ}U`C@Ѿ{VRXRXKg<=+ vj[l -v¼Ť9 %~kvԎZOuTy.qή>N~%+.6.4ݮ>_%_:b7Dgl^\Se auFɐ~wkͯ"xz c_ V.zovl5x!dlm7&T۔ DFd""Glb-ܰ5Qm܇dHьCo`"g~1NW3AۇUDEoVtË!Svޛ/XOcn5֖ZLDCLR`^ + ¤xjF0:'G|tU?Gq7.?-gJ/]))]žN)8ZW:b> ImYEְ6 OHcg j=Sp%![謡VfIuSL['0גCMjC-rtxn{[̷:ţ/T0=.:=5nwX3CQΪ7U41?]iN7s`< ik|FTz]J v%K?Py0nkР[tXC"ɇQֻ8bqI'fy/"VujN,k4^`V\ E)X1/3 қy"XkQqza LǶ7""ja0h"6 UT0.߼!V,]!F1pvq ,+UQU t5Zeب _$OsfdԗQ[44fҝhCq~yce_sSaTާIW|PjxourY7gdcNA-mmgbxnU;˫j!ÚRer@<@N+]6`MYoweEuRr#jh 'c^7MY'\cH+>OzXj|'2q5s :>Lb9@b +&_:#YcxC&*vgW߾L+7>S*Dc^6BRf\yC27/,,Orаܾ-XJ?RT%.|m-+]E#g\(>=[Q=&< 19cKе ܐv承pRsZV7!IߍR9z1=t|1M4ȵOAnnFL! Mg&\N>T,Sg4>ѓeO,-O.u/h$e簾}չ6e:b=gm3CMz96[)ҧFb +Nמ6R&eDˆ`8U^i|y2ݙR#P0a5 d +t\x7JP#h`@)/-؇`&npUYlv1eru6M5U :Aэ轃7:4_!‡ +߰e,ghog^='m2ؖ.JIܡ=QaoѸwlvbdB: +VVk@Y/NJ%Zn![xIskf+nJhNz.ˍ|RiDe}tq7 P*79_Ɵ%ٸ-pcy }F(i+/Iz>~k~Lʕ$iZE33=r鶺VT9:VZ*X?Lu"#ȍwdװC|_}/|kV.5Z'1npq}0'QѸѺqZy *l9[*.#0V]9nkwS3}^4V^g74uQ:ikU|_i"sLbvsJVF<“;8MRv7:BQ}30';ćhLu ͛l`K4(6E[[_YuDŽKri/'Wh `TFɘ*|R9ڒ6wN +HhD+c}p(vv]ݟ' +7hM'kv_!)Z7/rD6Rl?FrC"/,s=9LjmծU3 +Q5_hdăJY pBDw<񔁮ԓyI ;W +p;7Wv+v*:sY6lY_P.kaf 0# ;:@W*dg9/A +{vl~׾!خC8>E4^tdq"quڃpNDLD ΔQ[Jh_:.\6!|@g5C^,ɴ 02LqL]%8{ZW.v>gK:zՑZ.oox 00D5(Z@ʰ;\cIqs:qbx`d}y+ЬĹ[?bݝ:n2✙zQPU[SXީb2>;IF_a˅zFCyM>H +d/x|5i$ë}eRAoEeCʫӀd9s&d^+0XexXBHje\ٷo2\'cH;,)~@V_XtD`PwM|mP4B898UЩ~Rkӟj8J^O3ȵ`&d5X~莣11mj{&‡Yc4`E5᪨e*D}ɞ\ b['ofSvY`Xmiyf0JC]{+}տyKW.Vg( ק K0RX^QdFE AR JM I*2\|@ Qkϵ3"C6;]{]Pّa/?N6# ;E +5l +6l*k~{,RuIS+A}'phb EIhz`|] Ṯ'iϏ%~mDqߣ^啁oՁpp (ЛpD}:7|(&4ѣrN#t:6\۳]9j \DLWpt̄ =IrLOsE`d*Nj g#F7L[Ώ\].;G%2'԰__L'9޷g:B] +v|q>FQ9URZ~̥@QN6&?g0)H'3"ZKu؟]Q| +.̧/(ՍZKE_&Z<cm]S=N_,Rѷ.ƪh UG=Jr\mR5?J,X́}4KtnIF.@,iyی.)2'6>bC5`9u-~l@F(VmJ1cL, {il,ԎNm^uns*yt0eϞژ}.O.*.f kkTVKιo^b`[U%/EsڑrTŋlR$j'=DIHg*w9X!XKYZ%Z8Ka<~NS6^X1F#!!(z|%ܮoV m4LZ `I'}iIaDMv̜֞~:1'Ll)xLӔb'Uo,~lKJ Q*^|  5x `@fB?eJÝ:T(QG?Ogs E`Uar0 N*hXN=D^qթ2e&9q(y9qTMϊPyP݉UEea|GFBejp=Up# ?9c (Eu}]RZiĎS0=DYef(p T438 3U{{Vbl606,.Έ AMP +z]ȉW# +W-cYJ&r)ʤLF'&|sY5L^;S@On6rt>! "BXGך!Zw)s/#g굅b-!rRr[H:E҅նN;ꯏ^J +PQR* ў :ʛ'9fJHttoHsz(FBVEaA8820+3OhQYKR YcqN37tjFln6s4 :lyuݲ +Jߝa†*brVF.mFA|#cymA`4r^vI՜Z? hfӧne:Ie6T[IXvؓlO8~RQEreb%h^eȮ|LV2Ky˜,0[!P&8%I [#:>+vָG3K͔3.N^̎]nll3<ډys1V&xҹc?שa ^eTB.\G:|\ itGP"bMlGY3eApC0%%4R`OӾ3f?YaihOnJ!|aC7lde-aI##= 㒿$ s)wPGYu@1-=@-??6J&Ɵzh!cZXsV9E rc:V 8 / $s{"Ac2v">AfQ>ˮ3?˔?2@%C(e2SS)YAY3ꌢėƾ$>6(qF(Ƣc5t@`k'> sb\veA)I'ӧ+?+<,wqp/TDcaLTaX!ۀqJ1;:꛶;rJ)X.(n3>H/ l^TqV6| zXCI5UQYMĸ$rtcrtlV$[e_etnIS봿WtMQ@eD$Nڳ"l^c.4dKOTWYtD&\dۖ3m0prew\ Vq2 ,At^1Weftgʱdgg\k$u+e;R©"ȨFcy/`:џKfҡAX<6q8UvO0uҞcmz@ {@M82JHRK7ByL&͘{ əq1Aꜣ!@ij;k +B~Bh +T$RU +5!O.Sml/r/TiGdȨ'{! ?UP͡!%~]Wc7?{xnoΆJ8c1E; V]%r*;vZ.m|F}ӕgn6G|ґJ6"~}UݶRlr)9⼩͕V1ju>REg՗rH 5բZE5ςJ^SrX1=6^ȣw{$[wW!+DBs;GC缒&H`EV5+:TS/qJDJ}A s%b2g-XM|4ݽ"[1iVb2Xv9 +O#jqsmq<5V1П2 GDDF$c3w`[rb@dwaqF#/*ቃz^SRzV>,!$[>ʳV'zWDQіP΢,qj2 HC,Kǿ)MA@)fFK}o7L^5= ~#< <Vr6Q&b +;9rS8 :3bh-5bj;ݸ"¢{i}NWgӼ/|v۾1bCA%_ȣ/ iz3dz3Kk;WPϽv=tM0MݬXЛtݠp ߽ HK#H!<{SNІ(J?!a:9$=!l4He7氿R' +E E!BY(t,! 1y̓: azo:Wj'pTV݅63nq:p3XE]thFMh2U Qՙ*UE [Eyoi0c uSWaV'DA? u?[ 9y*Uxmx +9sUȱ.XG.ۡ=~ 9E !(]_ו)b8Re{re%fTo9TEjǯsN^MMf*M(Tx{ZAH!棒STDCFO <JJ.H^ck&5;"­Xl$z`SRC"P)啲.%,!۹oB80F3 [Q)\R^QRnN9O!9 z2X=q8>V,DQAc6x/c[5 Uʶm۶m۶m۶m۶Ze<;|}{wļ㎸~^sd1rE`636WԑsFM/vʻ+WSOx,&#CF^5zv  +ob. uE1DWQ+vkcwRA|I"f4,@u;ɞ #DL`J֛%% Tz4ticKoRtWO%LX`ύlT񞉩N?T08̭y"eXИ^4>I1{#ό2PՑQ$\CBtRnR*j @93r,cnʺ`Q~Ah3,9,w}Wk(r/F΢peGgiëPu- }8 <_I.Ecb1<-BN.(M=JcQb] 4=o[P)jJ"%?#`[#H̄qJX98y37#>7c8yC\p$:R%AA%=VxHbIeZzDx/)kkƎS7}RrD!%8n1N6|Z|B[kaUS6!8jZ''N"" +7;(C(JVj4;U(A+'P(={B׊&)+>\9K Fg]P?.yjOnoUy+_% +8(^ 8%7IDjj}98*FjPg  B\\(t Ji/&\ qt|Gr[ؖQnc6-sD &L:4*.a8+hZGeA8P1xMKrqDT¦qh?']DGGW|/n~z/tXr[+ufB3KkVXZR.Y}4S> eO?tYqFa1p8MݧȔN|qkIfmCCsA`єw4ȑ-CcI#ZdMM,]!6R(IM{Ci1fi g{{񙞚yMt{-qe"EcvT^9wbwػ3,U_n;O7r`wБDӉnu` skF!vJUVԖx2+,GKτ/3d4#ˀ՘9G{w-o9qc"H,A7z!t t-#}##bqյZ=_KwMa|MAPKyuVjwt-"YÔqӓ״lS0[)kh1z 06*!XŽ+S]o`,ap4-zCIٱivڝA$-z0C'mwa'N[=t @8wыg1ͽUr<#pHU}${DXJNSB錒Vyv0䵙-6T !9(BB]1Ye +pg<_~ +?gYr=. g 8uX5!HCmi+X>!÷j1Һ[o.0\'w*auxp\o-댺ŨYm#74VzP蠌 +@NXĭ Ysݲ4Ϟ lwFX$+@:o46[ Pia ZeBF[$C@<$P-D-H@y"d"Zo \rjSM>Ľ[ßȻc +okod_!{Xbxm_H}"mW0VJ[Ơc j)NmRy[(G3/`a7\ƪcJ))،QN;`BFkQ<&zTZZ4jפMX X(^,բfżʏuELkxujђA: ;"O#НpF-zᰉapSƝ-74@m F;"wbw/bfu``LQ"0->$[<(byQBPRD[U'"ZY͖y@(/gGMt0tΫmٶSկ# I0`;;c-H\כ08~$/ ̾7k}v\|胭w \wJ__%!% 4|ogn7OlʞҽϿr#Ք+YPPTPДk }GK(|+a@eKndbFdG@gϞ5dE4Ƶ@,AZs9UJF*7g^fYw$ +K>A[YWV>a&y\WDe3$ZoQIij,݄ZV s)nX*` Nhue2ƥo'`2X7ΌOY^:yhȱHM^0+ 2ԉZÕ3*v2#k1|X +6s՞Ke!Vic4)}K`3V7̲g_h*X*@쵨puR]Lo@P:ϖ8-)زI̹$S!P@>n,An B2ІD'{rQI1$6~&-B>% ~o.NRVE}tZmK E䆲Gc),#DvĢLf+kZ=.u8FbDm]Vj P_]y(z;zVxdV#C/} R;"*wg$lcվ NsKu`Wv& J'W{M7ח^=ҶRV +du +YO0U{%A3]B3KAYGU̸rj^3cλ`hq&H. \ yK 75{'QBM 7WVQv©똠S_.JwN:ǵ"$;G1t }L≥ˎe~ݨb ʤ6yfc tSzfIyS?m^@^k%5caVMg&h[UO*aD)~u*SRNcvY0.GOT&(a:LG#s4d}F(6/)$SX']7] lLs,4A6 1;= Z`xVyo2sHMoNb/s!t +O,AtIxBq!Wo->!VX'ˬk ۸bDXw*:[z§]ȍl䃮e!<<^= +.~_r6d~6̵!&ͳ.7D wQ{'DBG}MXdG8{I<%~~E%>I63.%Y~w0NOE˷p#9Z;k_!hk3iX2U++P%7t ',]s`I'TX&Yl1 ,v#@~pĴ LQ*%ВKIDל8(YOj }D6h숏uH -`7F;N}к̷-)gN[ [ +Io&P9od+{̭:]=n@ wz>9%k݁!n->?\ǛBOʽ9 (غL䁪ޘn*+n1n".;]z.~Tٝ߿c(?1D9jjAC`Q7lzBڐ?lnh?D31LXCdbxTzz/|k+|z?dv:Ï{}ʬfO pZd?;~;'O]TchBKzF#%'8+r&7V9BK{ f#%V;BK{ #%73o"ﱻ#Փ u[ 7J 3JqH4fK(JmU~<'b<{혮^!A$d' ಪPLtZMZ^2%Y>Kx 4(޺%Ie=E ټJOt~*6 ~8[rPhe*#_iLnU>Gy3K5l.!d\KoÙ4>9N1d;[#:C!e&=foC1ؔPx`쪵nmh7FY37c +,V&&ftma 򈄬da/Gw>H ?0tߙu.iĒ#zz=D)M)+m+GGc~ 41񀃐~{H\kGzpL !zٱ5LoߕrU)\O{}>| 7/#Ԟ}?6dwm9!YɫI+S|B)i,Z^ӽS µp>e=j(;:;&>xs[OTsO7rdj8〱`3,/ܠeNGHh Rg>OIJw=^ٝ5D췘NJ_ mܺD/IiZH$`[;6A\GT\_b`mS`m),tDdw[$Ti"fF}u9ҭKlˍ'En~ +o}h>>3 3p ~Eٔn`ry`u Ε1iΕa:(=p sTlљ|e!,~pvW06?^VVvwtwy$Pܚގhtk]tx|gV5yI==WACCvriEq|8.;|GTEAw:b̯ Sl9%  nKU,Y$h| + +JP,یUT{@?%`Pw?"5S-icN/[iMr?k|DcihHA8pVofA#`5& +$k0A()wҢhBCN{RoDYk%㭭U" l3kСS +2 )vZseVkDPQgyrZsNXXzw$fAR.53V2KRΛڞYx DҸH?b͏?bl-׸]?l}DE)LrE^ϰAcY@relpJ)Bi5WRȄkIQffYԭLm#Jݢ`(!vQ"%09CSwƜ۽n_ګP!3.Hu_#qwQ)5k=<\W9ahSz(uQ +9[CE -x8 p"v>z'%V"ܗ+P4]D6rG /b܇w' i&[%=M;.yTb/ E|,s Ԣp]d$`@H: gSq(;/,op] 'x"{G&C]FAi{"a h>lCx+ >Qn%.)uF0KHne8|a<{Iur2 MsbowOQ=9<>rur Nk\woF>C?6łی\a^ + +s7I|Cؓ&ޏA!٩6 ;wGA8qΓka(."Da`⌗]JF/A:.b׵ozu8v9xR0j8L7ɯA"` + CWnTljy*:ϞqFV)GY"M# 308{ +:8#U_>tYݚcxiB+xugGkz'ރh|hfޠч0 G=Ch $lwKq׭nɖ"{.$:1J`gUg$xFqa3b2ȅ~a.F*C9=c?$,}~N܆0b־TefHY(T 's0kX \|_(i^$h +t7?B(euĀ0B ]k ð* Kbd޼E5yDRʢ*9B^IyZ"1 KgeϿo.3A)>/kV^~ԛ)qwaUH_R5TZ aP.@t$iJbJ]Al$L[Hwĥa/]!RNM90007%5G:ܡj ;iȁɲscrzZ5%YFqT2RK$Q8IQ+W9j)3"k[l:*uR=c#Waq:QHMG]W| +-B_?<.tCfGA z&=7VoNZqZ{kl]Ij +0qgWx< EPZޟɄV\F:JPFSIJO+8.6V?GgAO{>RoD!o՗k͒t]6HcبjrL D̙E6WR"\˻xsniTJc֢P{~!>Pfma!Pfy`bEn'})Ȃ]' Zt`Fo' X H|Wԡk{q4#?V0qw0_֡Ut@ ++cu3rvwrH`;͕k +m>GГĂ̰;e8MuQZB :wFYD +{IM)2~2W-x!d/ʦ9T1gKӜ=5%9.{*=Mqn60MfEߘvjH1 +&Cd֓" +D|kҿN1 +, S5eP 2,zm6+#_Ī96 hb84c!&kهғ"k-y+^LS ЋxLj慏P9h.E%%+i|}%A9:3Q<>{@ `(lIl5Klͱ} YQ;LUh5_Tp (RZx5"!@hayZ: "gnossMaȦ%/`ZcUƟV)mKx{Z֥;pA橱m7DL܇?96"f|D +6-0 (|CWN@V~Ω;6u?9~:\|}8= }r;.+kT_xW 9[/7)1lqNrx +m.=S0Mowqfڸj Dł2 CA.CQu]ޤd{4Hwz +#`CҒFA.o3cL%L8MRWOb@!/4V?MH|۔ߺPG-gfzɈ\v*\x`QKmС %-ku==$ ZD+mSy $QojޱPKTvFxOSP.]Jov"1lׅ[HJIIzclءc$Zr4=T#\e^H CB١l5Hڧ} mdRXL^V-"7=e<\F^}_e-4Q̱mH :,XEG|jЇٷK Y8̧̊1n:9ľ;o?/u V,&ET,l!P $._\`L orS+qTh+V! +D$V?jgYT#|BAJ L2rJyk\S6nn'%b⿋GʭoEfB~ ey` ?Q;(+6o7@K{\,zU;֞F@7_^n 8Jwp[1bn#;!/"wbM!Kx17;͸n]dQV ΡN=W{{ezCc@J#QӁ|hSԡ!WIM-ZȽNy:]O¬\KI}ަ R6IW )^@3$f?YbifLǭ!Z-܃s.(PkXa>ͩ8i4v.k#&5 ̥@` |3x&r~d1(r*Ǔv/&IN8Z!yPC,> M">U.~Y 86_\_mkf*pՠ6;Q0 +B\EN',Fc~瑐i y ܝ^ĄѺ*~ o3CyjdGBmGr62-Zʼ@5vQd,TECVJw %aKʈv!aezNˣH]lJJ'"W5]bvb/A6bK=Pz9| !?L%x߽D%+##zS_ lbvu&kaaܱȬ* (x,$w H`K/,?9pdYd @iϹat=P=< w̵!e P!rDހ īĤ@ 4xYd?֨F|X`i MGͯƐc#/Lw*hN0GQHpE`=O~bb bfR|>pKrg vux"drf^:NObַvַChB QFHd;m4xnU`E &i /kIX +B +=H!$7@#9{l@N R 9ùeM 6,-̀ +, ^bx?  @$+ 'yk" @d?[ +pcv18\,T=Os\&-ndLY,}X~|{Tu4ǻO0dj:"ٳ=E#Ix;\+Y,NH`m| +LӴ3E-E `f)5BI %u>AE4= 0+wl2__SRq}:m϶ύ'aF,񺽦0:=0W݁ n]8,MFM"""!t/#2B @FV2 ͖dr{v6U& Yrz"TQ,e!_ol|"ES^ep=V&aF+ꔃL ii0% >E(h'^4Yr6fvAcN)B]}+h;΁{v^5YoJMJ2AKgUEm8l Բϴ>ilȿ%BWGk>܉m~&nD +d05:da#%J}aZ8ǁTYj&3fГ;FN%|+ E7P%Oc\*[7r9HS~2>i,p5A<ζi('%*v8*JfG=ac j~R蛞5ȝϚQ}A̩"cp7}2zUtC1v0k*TV` Ft\>ǨZNOZ!hgWȆ&$s72ÞѾq."]qzOjA4?ҊzQ|~aN^0Ӕ"5;<3TmWzTBGs A[٢Ix.sE>p} yO@yĜp +`b{(;C`uKuȝ"1!&4qỈoaf SF +qQw +,nӴ|~Ob&R٫:@#u +rb{Wڹu*zUJ]Ũ5+3\ݚ `\3 E`!qK擭Oz5[AC .sC%凒pQl $aǑ m`%GԐԐBMV [4RU-HE<гG3 kV6-^|[tx5О֜]2 ikkO>/9>~c㍇FH_ )>8؂ܡ/1-Z'AF?Uݧ!ֳّdgO9=ЁS9πmр87!E5Y9e`%S6[@/3 &2hXU"Wb^6IP)6S)hj* .X͐wρƝG^4hd"%7덏O4L3}7f"紊bFq)rkZWJKd @r4Onٷ9wVorH0&E %j81 G%C7'H]&]HM3(26w2O.;ӌ`70H dё0gKsdpSvwO +%wMj!cJ`._*r qXW@,qk7rQE N v 2(l xtў#"`t|(\n" -&VHa5r8hʪ3b tbڞ +kzq׆ݵSb'CN*icmZշtpߓ"޳Ԫ=0%)~q9ɇ9%W4 ;+(&,tZaH4umm)&^EQkUlyHUO5]^Q*Vwd800̒ + =0:Q3 +6klvMR nLwfU ^bvFt NSutI^<k@;^%ՇVJN֯6s;ߒ}.PTOu_~f< m<$!05*1LW͔*`x´ (oGg/JDBǟ`.hMXq !yzQ[ ?vsҩzRJiJLڕWJMW%~tuMBpUDj6CACNBd].׊w=N1#j#iJ P8ld.$vy8+alfGK'##KK31%͎fZ(S^חJخҶ=wّBLqݰ}?.k~ *^IJ+!VGr=S y{!3@A^!K psG^(!IIZ c28:s {'Eޓ :Dž!JSFݎ @-ݒW#+S d#0V;dݫ ЅuȤ [ntՒJ䓢nW8S#¼gDZR%t'S&#IDGChlg?[v%BceWmq !NsbYګPgDDRiEEaC6`TcG5R{Jү 3&JSJBdS+k4E~Y{+w©fB MbgyY+,( +1t[L"[^Qx2fP]qHXHI +4Zx@& /K_+eшXd;"GR|j$VA<+T n%¸yP91f7И!qEZok|~2/ AϥRQX=䚡GZq+ Mq-s/?Ե9=5vffsե\2VeB]3MSYNFTAs? ғ)RbFȨ{ы%R>)8N +jY8P>z7:.K0!*fx!. \4'Yysit>aqd(o߄myԹ$ǛT#ORhd{͂GrL 4[=|ǐ7Җ+J 66Eɛx1U@pzĘ +4PPDYo2 _dbh={HQPr <҂S %#SV.buΫ*%LR7՘e`i6g9ߺ'K+oL}ΙRQκph40r$ZfUO<v:=MۮfrO:<^NsS_ $3,Ag /qeۢʋ]JvP c0^9oB^ x]a_py]_c{c>AN?z9DteNIa5Sia4{1 ȷBbpt 3upֳЍWƠR3ʨM +L+IyJ;3ZH'b$,69C5QBq_v'< #Op#+KvE3VY2`KXYФ{f=7ꐦ ޸,Ad`45tI[dT;Af +coBQg4r I2亡xgYzZ{-}tA*.l mUV6pZ wN`\E |֘Њ̊J %.-*.by Q!>ڂw+ʗyV]z^O y{jЋ4s4C/̃i:hYSK!m>{|b4趦*׈ &&Daf߃݅qEVq ݡO #ԡwҨP^ێQ6m #T +[k Cڡ~QۑN5*i݊4?)6imYu;QC]#h$REVf]wC\SP48k.{HYAn3oKM+4{Y)v)"H;=LCtJS8)qU!E>{@}L˾LI`!c+?=R,0zP}/;+M\j-#%S&%|erG٧Kog-3OyH¸ 1pT@3qH_ VMS!h1 +YHJf)ݜ$s$+87#Ɛ7[CgM [50=>KQ#2 +}K}/#" +l%"ܫPc"494*FCr }@F/+eJC6q:gc|@]%젵 +}{I@(TG]/86AiȐ&+(illuE⧑lؤѩJ0mpu3ɠЭ,?$tb^!+X/{v3-Y=>ιy~@l/5䛝r DՖ_$ۼ{8ħ|Kyk+?OA=jb-+tXUXJ?y|)ӏ>C3NgSSS+-'rxE%?~UaSOw苟v1p%u:4vGP^ Vain_nXݼ>H€Czʘ^?Vv$ܴjt'~&oo՘DjU]q/uW_SZF|P}4g>l6#:.Jf*MO b'PŜ6yc)XcL8\ɒUy<{Er$Sw8$`mVk.1%Bu4Ѯ}\bn9rzekCkF@`ew)rÄMD$usn +FManǑ _"VÝNC>B!cScN!+߀ۍb'% ! +2U`rps,jMq/0>1w%[$H؎Im[m60w C)ŘCK bx ׺Fo5}m#Gr deN<۾S5XPdKUf &CZg J+9m>/F%EUK @[f0pGK9&7@DIB;V,i.=KY +70P+P9R <_-7̨:]v%O6ktG'9Ѧ+!U j4fJ +!UE=68I{7k!3)0[LeƱ /s]kNO>dY97xVڅ3Dz`ARB|KUeSz7D6 ֯˙)`g{p UgN_ۆM3sOb55\b"ߧQJV/ai?PT_;9T̼]AKWiP>A?vkoAqG(2I>&wzY-Q̫ahE\1tlEb F!Cp!1x@dEì4t4wķ$oŷփ/"y>gG/H\Bj <.);HYߐ >8@i:c_-d1τ竷);rKMyˆqKFՇi>..amreUR}wǬa71'SyKg?AtUՇAxE@| 7ao# !ݼ ]ye tǘ 1; mL߷G +yK~zz2+RݔV="Euz}z:Dit +kٷlB:&n9R%U#9uzn1%aJ&O+?rڒѷ@H9p!x®^VN$+ŷV.0_bO9UwT_w/:\}(夺6lF5%mvC:bwBpθ)u{2RCki_. `V4YJt٦C\WRe:v{ib&2b ;ݎzF\zVhq^X_J[4e,DpPHIrjzܬ]Y̛#b@n8lT(Ehok=f'Ŀ,kj?] )QTCC" ,*,$!"Y„hN4^ډ1yp³Ԋ@ v +V}6{~G}ns5}py׌GM@(UMFWn%8SJ@I2y |ŸT/ +`E%68 zDNu@qFf/0(AvrFMp a'5ȅr*M~P4B5^-W1(g C푂,dq [!OeLsD5JUNFY&]Nbܔٲ |ቔ +HK6c觊"Ӳt`͡T!T5aMs@XshZn1~nai n< g=#3?Ob̈́Q4pc6H2J(a$^\,|=E7sXc57@ňww *̜ӌj*7m +Y6uEl4_3ęZkyh4}J樑(!A[4{ Do&7i;5>79u y9 )6\?Op}V_=Nov"rGԱCW*8*U]M_|EOZCGCBdmȮC1 3łg7(QyFmtTh%i-R18B,,SH4SZӓ&`|f,tYC#6&o UwPmPn'֣(H8EuM0gH[EN1//if׊HAPI#|VTZ(Qm:>]jơIW-ՏqWhǷ&fY6^tCͿɸYzVQY΋x>B5n sVGFҚUXʥ3-~=ŲHe4N.( ҫR":od"7xa`l*'/B 궏 0˒Ka+my"[o@x̌d捂4;(|D4>b~>+)v#lp#[-8Oiv x vN#V$pup.-xaAܬj[D{r#3;K >Ӵ>~a:`AFYc#$POj>+m&h-iKdpk1wRWD3hMm8,5+{KvlX~Mu2ׅh0xAݿÎl?[l K WGk6gJ6]F%!GqZx]"eՐVߙD-3d1U1nQpd!(yF 6n {b1qLNWo#?y-=<2w>?6t>J\Q3Ph=ś6{sZ[wdoae/2?[ +Q +@od[g;hn_a]ٽrweoaeo'.>o}e$^[Dd% l^[I@@}Õ0ˡ勷c^,R\Éz2s2tJlXԧDձd~1X̦7D-!Ԛhl"R)ja\%AD Ge0d gيL3cD'AqπS 4Nu{TipJyrj7myLt;لb zҩw!ODiT&O[6i]9 t3&a0+v ,$SѹT{SlZ֌#~b˶hsmnSdmFK9} ⾒dj>#Nj`g&QM|&#ځפaCFmʒ/~j;C[+mi\c4쬸 Syc{ mwnGZ# i(g:ҨztX j U69nca +oL`lBRcyyn`J3fĐ"fQp(1cߨv 4$o/rKzn~ 'asR,̔UTH4g5-L(*L}&w1[K%P/1v +,Aoj'85gdzƈ%?ك6֕zZw\0jXTrd PJ1^m(gc1΢2M,A/:CY} ܔXQ"wÙ]Vua+oMM2p lU ֵ̌$oKb M9ǃ .ݭ-T r> ř},MJyŇvIgl`h́"n+SV60~*Jgvױ,Z2rz~7UB|5THT sd^?qQwn#n_ +?Z{0;\V piTNd%}j͋,Dn ?9ڱTvq;Nu{~,Ό)¹XճG'| +ؚKҗt^ɹ}{Er?[ 9I"C.IoF-`Hg;u~OL3&Y$ /ei)O[-#BSxH4ؿ.Z@<6l޾H.ɝr%֪#¾-^3ã_ ZXD`מk`׭](DŪ+.gP*CvonX|(=BD|kd@ Qwbwα䡒2T.Ԁ_,BڈkhbtkD,i~_ddxΥZJ20~ǡ2d8UOPVcC[7ɳ1h"[A`uh/9J#.'2!A{z*J8FNSٷO:dGi!]Z!QQv& +Ɠ)G]2~sZb?)XV P :w/@=p?T-*7'>dMis"'4 x^f_뀰O9+0V0ktBKO^_-irgKZ7/[rKڒH$!Wĭ*H[Idd`pȦ`_C;)d?0pf]f'nk>t Rg#$ NS):l$T L` +3=\ɉlH/׹q#^KuApM|SIs}\'4k0^ST +16ozeէ/ssLx]u R/FpȘglI+bEr HwQx[j[l-[n 7]f ʗhlsDV[Etq7ĵ}X,LLcD ΌzКt(n chq]L|8s[xFOgsGsvIMIU{bveO4V-~]7e&@3m:z1tF'[, >-dSE٫͆O|4i,>)V2VZԙ73z1rF;m.< +UU.Z'Ϥ zCceWY/Bǔ<{ Y{\D;#ZFgY|zc$Xp#sUyV Q*U*uح:4F?l9,ॷ%lg(2HKfL\@U##zobLϚ8"ճ`@c[;h]T?L<> 1f^Wm;jLy(!gygʠM}3,H!4=G{COL5'6\8 H=plZC iÅ0q /uNx Tm7rqLadQzo>f +ѵޣF}? WA$ayCJs附PPs=-b4%e<X8/Zϲ=Ub1<7#QBp<-a5 £fNί%xĀ,n  jNT$=6{5[5x2\h`/hbUM*' 3 Z&b"[BSb5/pηHtX'p}-Ut%aJ~R/Kw v_nqڔ6-^kDzwU6 +Uh\A2Q|=򁁇owdKQV0 +w|-@]i 5Mj[ @rI1 +~DfgJnZ8SAh hBiLb ~QAb Um:ihaYE5ԉI؉5))Bd?,ȜX=Eq\T C`ڼO\=G}- +f XE0:$Jw+Bp9#~t$յޝWs3c3{z|aq; ?ɵ_}6J]G>Mgۂ8|NEo;>k"UlrR?tM+أ+ME.(άTA\\/=“1C1NȪ5lUM5 +6w?Mhz>E^?CXDaxDix)8"<ށщ5ΈyFi)rRՓũE%H CHF2CHz e"$[uǰj_{DI~!%+!%u 1k%=!!!ΩkRG*C*LILCGDgfIJEgr$d@`HS LKZ:8C-9]R NEWΆӅ: +&1_֣._A4ԍkEIC9N++M #D).Ueh(9t:k [Vt]+|vH"EQlGkC6R&KGF),-<=]!Ni,PR8'J/14 !LϠ{@Efvi-OCrPX-&spVHka*K䡧Ύ.ͼ l򝚢VP[J\X}ENX;wgQC{\#(knH2ga7OR06uBuPm1@ 78kXr4\fN{*˦:R2fCf[ڦP:it1A3ϱ!9Bxz\~zlzήsٸQᘸ洠?7J쇩4wCEꊊ4ҙ!}>Eeyn K;9ȹ^ۏQtE˸dPr;k[Uf]R:s)B ])"qѼVYi^-ߍ:Xg+/Yx +"ʷ%[銨ILFi[C6ggk4V=ʲh(Sl;gH;v F4 p搥$I,uvezS5o {f~-2-F5؂9O9XUV'Ilq5s3aW! 7JS0 31~V"\NL'|i D2|T) 'tM6SHyV+*bnUZVsHY61kf:tqvWktbMwq`pe==V6UxQ\A7XĠ0WOT +#mlM88_,&&"E&~\<*fP{b{&1n{l'r=0IcIw/荤haq5jnGzZuc4#P^{O?uq<@p ,$]WA& aW/pA x^>WAbܥUYRx~x^dw*}mI~Cr_`zwߋq{9{{4/Jk#Zx5z"s~?^cɮ ,a+l|={PRR#}-ШCgVV_;ٙg7)2_3!UϹX8 BeÑ'Vf^U >C^[}4oa^daX7!8ABe +xiGu@(^ Kk"54[S"wG;[{bC:a'kVS=7L׷@w˲}l8.CqЯa.lv6ÄlvÆgHGp0o ڰiw%w([sRH$H#EuFhv*2"ube  uI%l*Ō#N4͂qf eby* ioeI$rAXDUWO [ke/EUL$ YcJP9B ţ B#N*h],5M%VWE%;9]N꩒Y*>[OAuIܨ X){$r2@iJ2sez%2*@@]frڰo>Y]5黫Zvt#3 o=XMS3Λzat&äzGIͣ-q{3:XD̽}mt#u&}P#27M?)P)krIUɄZVn DI0HT\hFSMu) ȜlrZ?O-&Nx{WJVggV_vQ$x];d)נPwbZ4kzWer UC#^/Fq6oS)F'`R)Z%>+@ 4'%#@Ki\M`d&]YJKriKKeaSUW5<\0Lq`@d S5L1AuR9 3%H%I%s:JS +جYʎT,s)9KIK77H晆\b[`{R9#aGS9l@rr).#Hj!]; <ݦdR'GGgVat,b@h_t}!t!.@hAփ\)Q.e*xLr-!,S[ 7wz'!ܗA\e J7 +0RHIP +cBZe0%+ԟO WmCpM% tqy?/ISw_{KiC g702i_+.FIvG0E@K7{p 2ی{SkVÐݤuX.yhڝ<(M}jBS (ODķD'Nc:CT;NvEgMBLs 3`V',37׭2muS׺-&(MfF|l9utV(z$= }m`_Y[pV|Ti\ԭȻˆTy.?ƨS([ym{ɍ)fz[0lcXdX.֍kӱUaIIq4L|)k;Pd*&\JV}{:ѷRdE ћa5bEaebi AݙZBk5Z~ewRƈl&Y^d}-dRʜ)Vt̋qLejK'0&P;^*%.ِaNQnʝ#]Me[$ w-M5;!Nª|;_Q[QtX 0c᜽Vsi0GŌkö3s;HvªLtsV+.x£76rd;!Z, tkc4e#U~~p $B1 #z+ @'~HA/7}.ɹaKdc +psrNsլU1g7([AE[JQ%hiZ%['d6vPj)vG0?B161A͵R9z͛,-9r9{9o=>_(b|3& :')!ˉce͠gm@2 IV .>aB\@MHb8$3m &-R.sc&@AZ$ "z*tZsRNLI\U-?ޥ"}Ws bqU5UqXfJw3 ݆0)f 'W!*8 }l 7v&),wDx:S 9S!&yS%2$QKOJBTUN~}"Idk +o,p+Yb=aDa(!)%.1g?1qF= Rh@n=^j_ [F\O4N=$_=f-ïp%=h/}j H{ C0\&=] +^|{nX̾n?|FFᨗ),V{K{6.Ka$d(8ޫ .e[fY)UoɎ7ZI5ǤbsbrYq(.%DC=Ms41Z9:F +rMX2fMaM>:ֽ(NuYD=.HBcj[.J/~ ͉.lJ28^ٺLЫ=.t:O TYU+º߁;yߖ>usv}MrUn ~2ǀ8"vX7lYA1jT,b%)#"|K:7~%{ ~}4D>[F vG2vFd!v۾h +Pm{ jۂSbGzgFA ?'1C@nd& t(|?g8O{8o{0D8G #'zheMmGfV?&,bѭ/ϻqj;}ؽTCyQFS,COg5=+/~D5TX :5 ^JkByPܨn%A X Poxuqօ%2Όmyy |倲E!OQPsu+>mzdDO8liwQrs8Ap!yM6gI cq]p KR) [^L:^~ЁCg=J F{3Mw!Mʯt8E36rqI.ty ^H]RMpzPdsSCJ?e7Aݳ:HʔcFșf'09'(0sIVE\k^rU洃ykZ 4y;|‘l@h(EWw#b`iHQ!9Me358F82/RZHIcCj#j K)R8LK[8'VY$qS귬ꊢ ;up"!2 t}5,ڕ_Q_ʷyk#4VkFf~ޒ/mVe?DwtN-;[eԮ;MEC-b;@Ӽ)S2y;Q K{QkG~ک+ e1zT 6+d`J'&g{:$lomIN;WDzi'[5x ix*aLzKM0mI!dtm,хh0=Yɐ:8l_]|5bizT|M`TvgIEёRQ|WAȸz} 8jlFK#= 8(dw_z`ʺ3 d4j!Y +$Є (Nܘ0w1OOԤZoZՄRY.B )ܺ}¿d#qN{^yI 9!tk51q`wټRGꁾz+ I ƣZE +mVOuĀ~9h +#c1=3ݘ=C|K3Mq3%ܗ$3~I$ݧĔ } 8#AT¬QqY֛YT|F;yf4%\#lvr;w^2]+ɑ>>y6teNa,Ds֥TE$DXj7NLRHv!JVS\Sxe.u) +Pl\eg8Qh:w7PxiZ"{_Dwf -NI>q ecgE>{L$cUtmy}fn6qGf 47++~'qy~f%_J˵^1Cp nLk9@3V,j <;HYcӮv=LW{Uۃ;Iu|8>L?<-+j% X/[ZlWZ%|DyM "Ҽ?>D>E^!D>(,9>H2F (yy(hf GBwD%N*>-^c(bNJ: @E k*I`YBqq0 C!CԪ؊$i,"CcbT=i"O?T,lo K݆hJf 9D,ԞL[ʞٕ UIQ!Q̡ڐhqbxlCx-};~tDP=R;' [jDuOt"6j +Z6(3l;I&;EDPohOKE0c?%BC1=Wsߗ~^W r|19X1G9 Dz ? %IC(( "2N=ud"l EDEa[o28pN"#,Y,Yt>0V99lXu*Yaz%>1S0bL|6gI #amOu1KcU1`EY^d2řa[zڒ61QX52YN]bWsgzR{mIssNI цҝs)G$H5I(A$.dnpG[(Q &Tw&qp_om 4'Dw.&VKeF2iS˴ fK͏(ܨdS#Q]}&\:*NeA>7JuVG0/y*7;e!3, qeck7CyTCv*ݴ;*}n_ṕn[|OHO6}9ߐ,`G=Exā漓Z -ٲݲ7l1f3%kV湛ӆ];YUaRU[Uӎ+WECCx5l]UzuxvUYZIk9EOٴZݒ| OjV;'[,TO.Dc snH3@I:cx{8P8$^Zd8q J֜{㧷ÇF4r*F v@0cƎ|lccG? +KҐ(b6*!6ch8 j 86qj*!9O;E@KB,],}FeW1yF`\h`|* DP)I٥}uCĶuY|uMDKZ"bZ$l +-y}"QgIؤF*J]W@7fiέLke[֠z,ÉSLm. 2EE Qxz#SR(DT^@CvЀ +Ӹ775iQRϫc=YK(R.4y}Ԝ9 ~i&n#p}XAa|)d/8 +SohB"h Hx F'іF][\}VaN{Bbݔ0?½08.|/k(9QQE=~r3aɳAց6S/[EQ;iľ{/Q{Ijcb/S+OaO7#>Lj*= iMD}D |e玈Ov3Km݊BC?х\I7a9j"-W tgU,Na=X?iC\yWT/*?JN3(ѮB EղmpIR8lbZG#vѽUNLvwIqwx"P,6%ԍCs #܃eGMEtǹي:YV +ycD ]ݴŜ; +*:} O_IBbK*q*~#[gqq-sD>:K<W&^?ؔṠF =t!F"le'8V < +Ktɞ.A^>HMyt1M2_rAa>5%t vX rll*Wz>񤴷 dT[ncQknuTFd]l;_k t @?/d#7^mO;rs#VF3 %NYc L=ZVxG=a3C|@hs#9ubesft#a{г'"lDR+y[wVHZ e4GEeݴ]_ApJ-dux+g䴓5hҸ$k5iVQv'|e,,)pNWtnGP<D FS+cȭ*n-!nyS | f# b ̐^Ӂ6tsښO$ OϽa@*L' ` Q:(9͓5DK{fZ42fJ8c:ԞR2j8m4vePh{13]Ylq~t+߄ !WB Wx[gHɺ~Bh4V b=Lg}Ƥn-YP^|hו(ߧa[2lesqǔ`C]_F_j*KvQ¸6w;I߆o`V]kQҪJ;_B^/.v= davS# \\ P A|Ge7Y| +e!G⼍suukRU?s^ D8H{ >P]CH9)KLU=$\!CC(e+JkC`0ɧ#ͩ;u,A [TElB)'}B!_n _҅q};;jǻ:_,~ +mF()h#D;+GU"شcaFs;le(;v?eyqL%. GJ;Dh3j̱b{wHH.bZGId:B"4!l2Dd:tJvo.gg2A$.^d.JQEoMl.v:&繆s]E.$̳Vu5 g~[DfTeU,3"qYrT93{puOEaU!FOkVFr6=Eg!"Wc*SMeKbRcUVpg"B?wp90;v0'*0^,Qj 3LtIk麒MR9۲9&J겪WgXKtUnRIXYn +ˁ$ڀo6Ye}I$A}y"-^g c\]9c"JB~m#`Z6,l-0i Q%Lycćf|,:B]YeR'T;MH>ja'G&{639L'j!;/HڮG]|Y>*Jt0?:6Zᡌ?J@vU!+RFKٱSF(>uQi(mKGv-MF}Xd2AkKӵgO&9@"Y ΣW +Տ.!oњ hVĝƱ.'<&ߋ_!:q;?r۟C2dA Tj[r䅅Xn B$SٱI'vaSŹ,LŸca"9RMu|v=vN9šʈ̇8#OtEv:@Hx$6;REAm+D4X| |ĸqn1.S›z󄐣t]EQL' ӮA[8ѡa6A":y9.m]"wB/=KJ>,.,rm􆶬A+(LYkqog"`xrN*/qc?m`CZ[A&R3@ra(!/a[EVJSz) 8ƮYp/nuʬS;\=+~`_'cbߥ~8W2Y+ZahZY8iwP"v#ŏx4f:E f _݊@+S+;yK`Qݢ_ +vf~OpIpV: H&s*rdS{)ytX`[OwHQw^1c 2-@,˲^1 7Hkm[VB5-lEm*:7p 'Fw` naep2e%o9BrNyMyf/B]ZTd1 B0˞2DyTn( >/rDu( WhWB b$ERSѠVSQP@5S\EU+3pnTMoYh0?)2c1JYpغRfĠ®GD"y$-z"qh=dDڵNSRA=L$4l+*)~r&iJ{5L~ +fzziE)QK3Q8G`]a|}PZۥQzgk|ihZH(IW7|4W Epv06ܹ[gOi%aJ QT´ÇB) l*?i.>-EٓaԎʴT8=٥EG.wOE)LD*%c#DN9!SGj+R)0&68[-cT%Ĕ$6ShԼ!KYLPVg"pIRiψt7{C&5fu2upuZ{9OoXVhU+Bj}.J!}Yz:NDEwmӵ52Q":*ÎBDMЇ9iQ+;Nr|cpVC:+A7ERo`z#ƚv^̻^7.jMtE^3Tl:UuAss"ЇSTB.ժtpndIwӖ8n%[}[hqXcض+>ݳZnf.~*V81rwL7P`>hu<&ũ0LG%;"FHgd?Y3"O8|g C :g^3H=mN^ +TnG}XDB[/ޚ7mrݼj3ɵ~:mX91XQw^iap̫F #r+q;p:>STuGl@21@R?5о*`(` +9+`Σ$-7A8H>ˀWʹj珈[32Q|+/Kf$( ~`|{~Bi6ef://1ef; +P0tq1uki)HQЪPCQPH `c7CbVRԶKUKOn77Ů9'{oކw^A >Y4,BlYh{2 +uBZ"d\X%9 pA'(,=(fv`qA~N#P{:]UJw>,=)c-)/*i7yfsR'DruڬջtCOx< ;I[SД$áV5uV%r +Y< -X"Oq˴Q117-<\|2Hbzɝf%i4&0md9Kahy135w'K%(؋̃]XLZaYB /q-OJ) +4t7tZ`djRvni&[#l5|D69wu#:[ؗr +k,v7 Z>o3^ze?6!g|/Ј $l89^E1N}ppK#FɅcׁ"D*8V܇Kc{Z+'Pf5#6X)*:D^5Я3{,{ؐ1{iC$PoA(^U8sֳtfF^h^}>jAo<&h86$eKr=IL盟nS +FDhsy=@ZzUQ5!oSRHg9˪JPHNve~ϣ\w4|#U6_Y +;A&v4M+^X*R!%LAn RM{Ծ)D w%$ue)cʊM$>;v*:jp..z[ K6z褺.Qo9̲Uŷ("C=SeS{PE:WMx.*<]hկ>+?Uz4F?e~m?;WB=/!0no~ZoBz^~3D,(8Grĺ-K3L4@;Y_7[Yq(be +ۓQt22CO Dkؼʹu65B3rԠ$_|ˣ[g^_羱>cll6W -dpٝiS|~eI`Ay6|.F}F=kG:uCNrwAb!dY +.Y_?ѯoNN'`28(eHS '=Lf|3|[t01!1Ҧ10OA2L *`> 3a-Y![n̎D!;xEoyb6O8}q哮.fWDySPmjK*@YIv\ԣ!_JE|4`(rJ{ٯМwy 1f0=¤_iߜkP5[H2i #L$E@ bLـeΖ M, n;/P%uݫϑL 5WU|ܸTi|oE {:30y2qM0D+k3/vGt>* +(P>~` Bh8 rA!D0j=; +"tAz*ړ&Zy(%crǍ +ϔ~bfyHKZP֮i(KTW8G pKL¸YaΘ#G9*əH &9IBIb TpvRT+ʪl,ƜP GeL$(*7CɄOFr"w69iEbIщ&ra;5νQR1J$xٔD.lUg.I05ɭgHQJ̤'8S2X`{KA du6]Ӗcjn_T v7sd55usa"r 9]D7*ѺeȧA}=M"=,45$ʱQx?;(@DHŋ)f'O1lGL#Ek qwGT x%鎇Т"' ߤ?IC+,K͸E s5\m +/l_nP0;U*[渦'=- %%+5Ƥ%4ҷכ] +If|3]W:~_LJF9 2=]h)FRaoVlmPJKW2ՕwdF7 J"QDۤUZaN5Xm1j.z. porEZ"9,LOg6]1Mx[<9>S=s#*5X켶{Td{9]I\ţ +fY1 P&`Y +Dh;(rLw` +b#7a]vHCpf畦2(ԥgDo䮯:*5D\>>kR.Zh=?I X ?:Aq[]qv>IxTQ,~g̒G^tl-wa>x<״T//|4T85 M4e%ӆ;vۓٝ~ri=SrFtH4u`z`3d:n9gyC%0Hew'`喣¾lX^<ΉjLB]Vgh,(>S[T:Đj[,`[A|ِ 3ZE:Zw_Cm9jFI7;Om,P[R7D5Mn㑼U"1vljXy8.k +}W}(.a[+]AqAP%A: K&@_ үIϠ^>PQ?!<`'d(Y$m ]65 S456u`¿2GPc[kW#9 "R+YH.(p^%8hK'(h}A,X`iZpq`Dns6忁97f%TҌN2{:^g{x*L)Q鶏G>!g}ޚ0.>9Q 1+H)}z+=r5Q|TLpBJ)޾\Q|cQ}(ATzK +Aw8)AvZI7`&$aؖ1,CaCx{ 3&[΢.YNh͑TA%AWR Es}jc#uK+SL\Q';m/Ǭ14^^𥹊Ì0xKίL/0Jkd +eχ޼j"mO#z y8dRwo-E`4/ؖfaV`,$3$}+=˜1`OPPm`1^8R;8^LGOid_:%>'M]NP* m-$p<[ɖdG 5*V̮y* ڔ7P[ZDD!l.>Fwlr] zGLmŚը&6i}7'hL5ypEDEGꄑXZa&jLU? - 01*Ywm Fn;P9gu(6cZ1 T #5 $0ΜzxzpxݳUfS0u0{^̽;/x@|fg}!{V |7NƒtY*袜o~mo1{(e> 2c5y5zMs(QrI3@iV*@z}Bc1.ډ/L89*5в% 5d%-vlc06Jʧ+P'j["9ThiQhsf<-+AiF5b-gMՇ|pyqS)Z}^r A)pظ^0Yv|j+hT *ޡ{ M%aӱM<0ZJc0* ?6)F%ʸ t|mGcuLlՑ챗Pcdz #R7IEezMf~VVΫQ:]hޮ&tjNi@3iE%<&/dMsZӲ" ^]nd]ޭc9D9xx˝] yr?"0>0 l|gTfFcn1bi&$P/uu]+4fYJ(X6m-EzZmW4 >+ϼO_X, +uñ[ SWʲp1 .XSX8u&SNuA i1WmPj_uRy=*cTsڥd뎞([hu=-6^1GYwWO=[RiRNa?mұhsMΚ4(Xg$sdo(|?qh "_Rmrʲf1\K>D\bcAVwfQ0)FcZWtCt[4zwPs?ҕ*6N*jҰ\ޙLI&΁Alva$I"$5%τ䚚 tDBӫiYdTMzz QMypήqv%8crf##A0sDVzуAr +H4K+!7:/* VC"c[90z<"Qn8(HYzhj23LLNSDd)*W?mL͆ZWG^Ϥ+_)vw!\%B'-x%$pXU_µHxnq(:l#WB7]$Nlo:9;C: CHxzBL;? \ e!lIj%ڣ1y/j%=05u8xkm:̣RzLuސFC#ُI|@|z kB}$'T0@rRE^*nVsdsHjd L+Y+1\?ip.!NUKSaՑzX).zM+4EZmN; +9LW +eݩ50S^KE*\SH1WQ"Ǵln$ݧZ}Gnmj\!W5G(oG +mH3ODSع (yJcdͪR_9O(O$i,bS#{v܀{֐]Eㅓ Ȓ'|?AoJdƣqWNcYǐK8oK SBϕ<B  tsDm GZ!ҶU^vMT@kp {-}O98&G1El3W֠!2-0QkOl(/>h}Pz{>3=1wlrށIz-zR򻎠vjȯZltfI7 9ZaPܸEyCW11k2I7aOtr~/&$Jv&47ۢ遽Ob@z3ށ,WM"G&F +A\R35菪T_T0ؖ,RA PbbWSoID~߉̏nw[Jn/D@0;[P~:á[cg:O ۽+||X@ޭ=BO;7C@S +!h|rpG hoWlp)҈r,#S^^N7,Vc=fxےI";|LA2vADǬo=DyCzУDNK.A3'Bh'r4$IيiIKg&Wѽ:_Lr$pqAOx0n d mSzxbŷGx965)t ;3\-Yddl 0"ɛaHoy {*R$+Ç/Z:Z<}Xctu%ÔJ 5&7+"+ɇ.@DYANż`2jL &iٿ+"I)!w{;[OkZHwWlAkʾbrfr &U+x{YT6άN6Ԟra +ėc5,T7|f2 f4KK !3d8؝B5f0 +Y"UbUf:-,,#'Q,HP}#2ɫ)yQ,+*PqDЬaeBE;<"IVE'ʬHP!d63`K޻i]킈, 45 k6;5Q*`ǩ hrdmxKV ++f1b]u39CYt>IE٫XC[yHR7TIK 2CMۦ?ya`볏2,VLFqFpβU#VwbfĬ&!%crdL%_>D۳ι24OْN#Cpާ[66:`5!k]%D+!Si-K,f[ZWAXwE7Ҵ8 H򤲌#KKgr2 YQfW #}}3fB)16WWw1lP[IץBV0 p1WA-[io |UO S +Om9^Mįu7%qYXMh3μ,\`ߎH΀fC4gSCήSĠ֒A \s0xLY6&&i%C,=V0$W/^YnOڽNܥ +HRnM#.j1tOI}Q2?Bѱ(U=مg6f%:)omn/-dɛ'Xv@^d `  {ח JG(ؼӑ7p(;٤M7%ϧ9ϢtDl-)K̢ +W`:S +ksE!-JIG^3uVX:Fa:, =6s3<@ 뎮1U^SL!970)f{b RDFQu|7MMUv9E=_% +REm1 ='gDf̀Yy' '!}3/쁠~D?$D~G7lZ~O7;Cmv1 Mus'uzh El.鍗胁_ݎu%*RXyepAHD*)ʚV#o[P{|ț*GtA~J4[%xɡNҒTл5ZMq&loVo4):7.\PGy-?h'5JXy9('#"ĎJNEb+RYI=,,` L󆌨4vR5[IL;up.|2P#F>UUi\MŖۖO,QQzQ0mzYKɺ7}-1/.ayYaQSxCvbMs`_3$NӬ@'G/(iԨ b~diʌAw|Q]l_kٱWPkWI9¿"P 8A@sȚ-m/n{)JA?u'ds_g-?z~Ou5ŴgLNvNZucā15$"!׃GŃct1(< AdhH#P=f:u(1p wL!uŏ;/^zh*Cn3DCr4PDCv5dw5C| * wZnUaìJ̒SͲH>P ܠ ZPI:}KTknjc݅"h\gBD7ZO_٬Te-T Fcαl(58 Rz%ܮ K$`Y@g2yWD,) \?)lCM IƩ[mZ7 A90ꓦ[&l\f(2 ̹vKaFC2NxKNnz{*kca̓]v:VN҂RkSxid=R`tSxnXuiN3\@7š1.X7oآ.- \W2owmV'G=gQe. ;rبSl%hEHPοl*Fht$nYi]QOAo;k_z$^o%'a6Fh->)0[^ {Yk[z E_y!)(/fUX7@< U?h}P!h+2c6˷(? +7áSPZhCb,O dZm{ƓRjz`u>ivy[.>NT~'l4͂]\g>EB@t$|/Y[ї%X=)}+]R/tML{A'{z%3uC6g +V>u@a(Wxrj(>{1/ĄO~кؼa;$@=$ =Dij@v7xa!(n=B/bWvݻ"ųnlRUF#U'2]5,tÞF'ƕ14YIj0 +g,sܖVw t4{ Z[AJb{04࿂RPO'n-㐠FĔxZoQd!aXWj"w(5-!?9BP՘˱GL{HfV,@-k7[j^s[q\w/hXgƮ:QXPCi),qIPywDlbm;5,M 6R P3S[2s-7Af1+f4x]VR.[sVjSsS@c2y YwʡpQL Iݤmskr5¦?D9Y КHF n:@K]4fck.\L' \dw.]jG3؜f_l'l` t!ëx_AXU˵ ͺ%_  $]  }<amZV&vaٌMNpt0ߙ} 6x*!\XfY)~xdwguxF캅T? JkMf5QËֿNTq?V p@м@ᖙFmCXyL1LLnJ.}ͯs Lq *M[ 9 k1> f0>F`m`ɔrlٕy]$~{]y/`a.=x +j{lcxѲf\L9_bx)R!Qu;HK][\q'r=Tsw&)M4]l8P\dO!3-Lnb;(1ΞZ$OR٣&%_v "uA~fn<ʮ[@>55y“cU()q\++(,3 +Y{o^꼳ScwS̷ssPsךLRT푋^\5Obq<;^X߰{OWzŒ`};"guXYpy'IP)CsSw <]}P=LQMQRU{OmSo-YW6VQtiXվS 6}em̥J)u&ȫ.tA\NZm=K! `hs]Y,<>2 +OGb*R5"y޼A*_d ?3#xj5ͷfΪ\ OxX -_Ƚ aiyH 6tc(0`+(#=Zk`ŵ X-1 +3: ˕:Dny[Y@4Z]-tQZdG@~2loG9D +A(B: LtF@UP ((jdt)3K,,ʾ)^FۼuMNJAAU("+咆4XR!Gs%K p!]8lXh +;d\@۵Eh>.7uDf_ aն# N؛|Pc@ >p Lg7Ē-AD?yҶϬ~ J"$X~ۗ"x :B~{`n z+(AWg0}ԽpX9AJ9';oruW7 '`I9T{8ڄCj 4x\*JhG_<Q^^ӿY/gf0l_OqS:/NUtGC.}bs( mHa[_W1B ԔUU6ȗ\*+5Njf +!cY/<}ҖgE +~r~$msf(&,'+l3ʈ6 F ʡ޿XwʋXC؋"o@#O*gQ:uy:|% 0fK[fNH*K]nJh,QwyUzc錳v=?[dV*mZF,b"ۨ :- +] |{eh&'&lnDos("`: |qk!GC7mgU& g939{0QNҠ.!E O)!4/?>= Qi'A>MJҔfk&7:U9$'LqܠUR1<@Vr/RbaIfoxbq_@j1F F!"Y-x&bPt=LA@-u:]׵]eGU DA!9@n0TAuNTyZ'~ʍrj9t9.88v8<ň^]թ\iBf}ש6_)7-X{'Ra{Tx62/]nk:E_+Y`YQgf-$^.hW}d:YԘgY048jBiBa1Zh*fknۼ2[CLm \aPY5[㼥xa{L|AlKG6b2N[2ɚM5MAi:Ԧ7it&mHZDsU]T~aw?`B,VB,}{`Q6Gi[LnCAzۙ"w@%חmd]0T+N\Ca#oDjy ~ PGGTtӱ^i17*r搘I>& *C/0$֌£)⢋؉eBB9ۇ",e$1iˠb[P\鍵Kj?BҚ9s} 5e k6+2͠^ωtIk-qUۍ`zF}Js< +l:jť6@QJ~ Mu[͡;aaNѱ..]>NdoaJ2}JX7v F>}1#)`c^,x{[+ر"kJ"ǘsI0%S%K lIV@9fnG#peq[d I~0cNU?8@7\v1V &'V!B 'ij"a%u1_g^j C[FLg>w"󚫧0 0s͑I?ΩFA c)lAr$>#)$ښ+F.E u)#x=TNjx22{=#լkjllk D +ZhQ_;]oLU>ow?yxOxo'fA?IT_~}2R2B(8&P8Mx((厎|!!{~[Ljr)XIӆm۶m۶m۶m۶mڋvuUU1Gʜy'c`MWE=p`G `fxGڇ`DQ1R)G;`%9GMFK1e1&<`Iz=wGOmn1֊퍼{ ¡{8jO1Nsx; +&Zv-dxvLfn*7i̢ ?ȥeb7QUV Ps55Ov5h;i1K +-ӄvBf}t-^8t &Ϋd^4d`Uhv&ۮ,u`Q3j Ը(dz ";lerqoaOܒL[#2L 7:(gv_/H&1HKIZްu4KImiG )f _V1~C0`+%y +4a3GB43؆<'oօLv-9tX嶫4gaX7^,/ZD3jBsDi2Z*$qŐX^6C;l$V+ XHܜleEBKQYcKA;P1ΑKp`K.{_}]BAFҟkc`X"W.NGG6R4ň}AI>T^PMN挡Z E +;dt.S%|RPC 4)Ar/=^-ʥ虪-*DӖ!DNGN[ RFo+1:" QY/G;K_pe{D@U7E4E\JH]uϺ6M(\F\+,sd[w(S?w5QMJ2g);Rd6C2bot S~,ӁE n¸sS-#y~N$QD'/mK khA`a>aց}T Tȓ5XAk8Nr\LBi*3;w-L[KA]-p RyIU(u?OWs!\lr{[ T+o+֊5E 5jgC &+{0;CpJX[ma/7?MH>c^(cH%2#H%;:9s;`xN +.`tot/@j +uij A[<fc,#u,H*pjj.$u| pRL~ +ͬYct ./uEeϑ96mԵPFxl~Nΰ$W?+:Czurt;Cfǰu- HXfl7]h^W̱=i\ >>>>=ұNj +n87̰TcĮImZ/n)9h1/n[ s-Q.ecd_#TR1!#h|ܦGB]#z (;FH%4ᢈJ u wj'%=:C_ Ne=B k ŷy~}XJ;"2P*Q ƨ݅[<xa&VKEG"'M"̯/?o+ש`,iks@|_ ) E=^uo$2eЍ H^qDI_n"HF{DdXAv"2>=6+io +pKOz7E\{ƴP %@t3dM$A Ӂ$,1UhEƭ.>Dέb# +f"ck+`DC^d,;PvZi jr!*z,#Ee<-Ns2*5mihqłڥE5q,5-" :HbED򨖕}D~J +[Kkk +v:c +Y +Nb@)ŕH.\֑,"Pb,s&3ZhU;f~e(~'&F3w +fJpyAҽ-n>W@(ޡKS4ٟZ#wƒsw:k g L뿡2j_5_ҦO}VA~?sFRL7y*sĚJT#Ka_<ʈ;^9y68[v,؝ +w$e+Ɋ[3E0e璇NߩKɕsw;E+uw^+RnڰÂ*z0r#;jh:wb-Rt(\(*i k@<.R>_ :Lo$:>tb֘QA97"kˎbws c\iqEB#ʥFP +=%_,Mb&X[7^ĵ1ƌ3 $Sm&Vwlk\̼dR>3Œq# l^ =,HւK- +$z@~€ +Q83!B0pr2[D[p,ŎK1~|HTx=`7(8"-P~ˁ4P#-<<y "(Mz#pURr\wB =+1'dZ)d*uvF@z@ճmzRQrUxwtUt~&)?aen^B;!NU֯V~q#Byv![30n=ANV K݁DH!$(|T+kP` Zj S=4\X^51}ΏIjjM7ڻTtW&A҈ҒKY>å?n+-Gr+,1iCĶ;LC}bhz464`1@uXN[gR- "OMjs6T8ûEyӮ-Y.WCY.P`KȐ C1͢{,~ۨ=-]K7"^x.^rW.5B|=I$,4ހaX"Wq&/ɃEĜb^ڻ ޿k :BK|ov#zBT#Fe6Y=bɥ~x0sN%pWzAxІ;> Mp"`* |WÀS""4 ̘ YJ+Lٚc'%PCo‚3\ +DDvBeNkC:(5B.y:oUYVG[a`R슖GIS$3)m&GJW* +Pbͪ#C>?U)Կ4HA mLg`%h ҇N-gH #5?J?P~YxNnJv&V*Z4qI׸7VkF!G)ּft"ӓD`͵WZf0),HOuAKI*obP-.n;L>]WұET[ZM㗉0ultn-t*U>1ji4mqlC=L6C%Kg_QaΓw:rT% +ѫBjd;ý*BBkbc.Q!%Ժ5W:s2]8 /[:HpZ ig7Zj]"L3L_c_c.EGIJ#cl-uj +jgAYҜ' 7t._l_t1_6+9K{AF._c g22-$r @)CV/j\A>Z?ܫ,BQL;3&/4?Izt &=['taY18x +Tu\#0ͬE2s28}ePfzg7U.`MtPLe: +%lfDڄP_ltE1ۍ$Ϫʸh;\ Q͑Vcj6~H]G@{n|艺.HnGg*X=90Ea62Fh>o?$EU7ueuK ᷖi#d}Dؖϒ>R!1u8Nx_|5`ɹ.v9>T=& w'?lceL̵O7`L]_b!˿ma(/7;i!c@7`/[x)[QN=[pXHՂ+sa:ofNw;،ěCty_`j{{#2nr=av[h cX);iu-aA)TԩȈZ\[ۚNHB6\OLM Qtwy `zח7oB55T|](ܹ:T՟YӑY>cE3a|QNTg5칸)qD(\q"u6F2n]0 rCSSS2&H髵F9o J_s,E?H )HTN0S`R^8ͦ"C¬Kرd'ZT]vLeM|C]>AKJ%Nk@5&fJ)ʘTi"aݤ7]! TXhSeLՉ9*lC-PS8`gۙ +VBs70.`dXQvvmD%ۈ@ƺ4ZO|3WP8GLBMy$ 琯/3(W%}E] +ՖU@3P} ÈQbKW.jI9wP5ỉ4 uS*me}'ޥHL975_Tk2?[=$ㅯ%Dp9|퍩Wo}uo ]"nJ:*\2 W@rDt{H@~;qfM yVv'n` <\ {8z*גBk4mK@.`j(3f L+zM;#TYEHVNi +6-UOLgSSV؛m,o```o r)»&ƻi iu槦8Vﹿ*!\Et|"/_ wxCg1d&j4Xdak 9\VdLupD7&_sc{F(kf ^&c$k Yωr@chnሿ>޸E+첅:,Y1pon h\as̏9hOQIpԂ:ktL9An-u|,!eb)K !90s6ؿ%/! %gGlb冤#e*;% /ŖN!oޒdaLH()Qm~UqRq'plǎyLZLg\{y=f?om{+8X"O9DxhG;c&ok/-M9N٭c=bɝرQb8a-I_=ly_`ߓ Pr\hu32D09Z"/2K5ed(: e撊-##5h>b2GNCNI.(F-9TAgX @ FY"痆nE7zmmg# .puZ06| 8 'MjRMHf1J|`:s[j0eG[2.z6&;i.>o_ nWy)]#n!^I)I]=L<@hb%]׈"zۄl0-)9MJ&h5jepvXtJM͵fh8O "Tj{4+i[^[dD)fˉM1#tWi$9G4 9{4 DgFQJWDW ~HE{z'QjFPKe>L$vGR`b"4%+3޾bcuSR2PgC#O*aa; ҿ%U@]ZLgP0-;[rpݓAP,ƨS ~3ITpʑ#5v:jcy:jۓQV+RoU͂3"X +gf8SE7,oJ!&D+燕:ɾNb 4m _'s&m,y5-ӌRWaS + +~V_dS5&~aTO\b&Jʖ͙-l c7 [c˒B25̋'R]EU\e;Y1 7z>xP61k Aݲvln6a1<áqfjuiVrؚϻ+@kkrKGW-o&b]z^7)C"_iv{`Kvq]-+!朋tל;znG~c +v>&vXP[di߄.jJ-:*~Ny qﳜxMuR1#{|g'$-2L2&!Myf1 ~TSw;*%wT|oVg휑FfC'mpAWCZC%=rrG"L^ lk`NðHHd٢Y*v.tBDjimx]~};Mlؑs~p*jx%3h1? =\f<:[KqĘr6O".0XF-: +S{7'Nxz1X_2(m7f5f6f7jg^'nq>F"ڭFLmV]Fg'Hsޚmy;LJ$")}2D<EMX[x C gum-TvÞ )tv^9D݃.61+> 8Nc񃟁pˌŀlѮI 6Hm+$N!;t&֪d,iAl +E@GmU!ఁ̚JN3#k} Ҹ4\/:HypK +GۓJGk0#ƣ E$]9.Cͳs'dلeB vsM~;6Mev`T,|ոĻ~DY:*>["M4wEtuD۩!ނnj̃Ho0_vY&ZYPʛB2P TmS1ڒ@+u %r<鬟n\6Vv#h"<[(v#*"x3‹k( өHUɑa c-.5f͢8xh Z-»IwD1ԻV@~DG *: )?P}ioYNqlBA#1SLʣ"fYb,}~4\T8 +t *MOY\6+yaf9 ~`D'z1XC034.J);'cl LhXǬ+e`3[t`n>*i.5$C#[*ܧj ~Ms & 'ک , z@5 J1xK 9 zl"Oי$oG*-iǪPNRQ4P+)t*=K6%|7o +`CcY0~J[XmƯl-9Tqi bi!5LQH,ZJPMӱi4ڐ:^DGt[uIx_ܳw\M +ZKjEWW"A9fv[`>r ã +G#`4.g$vEꛥT7_Xj0Sȱ2AmCڪ_` dn(dn am``t6?A ~fs\bz%L<^7Z̺#b}[3a \4`e eLnL4?9t;wx~n zMa-)IH΀DsV$j9ɵNɰvdҬ0sM297H;8RMHebRhmR7@,hP8]1ό> ? >[ k/ڮ\lk9[ZZ?t.-mpБQO_'a,IsnlܿGY\wM 8zOfgP %ͱ~ L]V .cȧ@P7sO%Of[٪/5"mGd;y0qȥ>H5ud?wufN5_ l׋E $5 Xh +ӂ[?hd$]>"HC+ZA1Z&_fxgaDBbs8"x dYfbge7#Z)筻yO7ўM|qAp5nP6ɞoj + _`8H7"m| /U>&)ap {;H 2NꞂ7f>|oanq?~ h@h1L2m셇ׅ !I_P[.""l%ѫ%)lf:1VI@ Met9ؚ;+BlJܿ2`QA6\,c$eҺW܎YJpxH JK"/БzrzXArY1¥XҰ__8κ -%gD:aHmK,BB?Z; +C[pdPJpV+C@@ӱ<]~#& ڔ练\?sRhZjsOIQVXUOHs.0߁+9#q!1cbJ@4:c3=_>L_FQ),GS.^Fuh+wGAdjT$T&N3/I CX~ɅMG.&tw,Uδ>[# _t9n-43v`H Cv`˒ClUzʔȨr,B"kA ]W(AX}ԗÙBFsbjU&(uL󗿨EV5[^>u({s\#jԥ cB\3ůQI_^E;rpHGpK2ݑbkYce9GTemKRY)ȞP& uuJ ux,TjLDFBD*ZYϾe%{4@"۞IJ2x/ Z8z(ۉ9x_L0|^ IO;:SAѺeX̸"4T +.fY ܀ +x;N<1 nq!` + lwf>;s @%#sOA! +{gɉóTF$qs)1 [dox{I+[{kGM}MTG pM~:!i`MFC`$1NFKOFK!i:Th { iJ)HeZ!Q\pN[6uOCzp֍=i`om*&Ķ̳i0;.vg-{=Wb{c ";J/f_TY @1d hGIuokVbzr\Y뱍_޽> +x=_13.ō4&eS ˘ʠxӅj)H-ˋ0fX=3W-Ϯ_m;<= g=`]U?|Q9hv.+#om[<:wS? k- |1G_GcSy?FН |t:ͦ^}~&_Aǵk%^';2Ù'zNv}Eh\Qx6 =_#d GKO%AάS UR%Y=< z?g +zOI-Y<:RA;4dE#8@҂CTyB7~BZ BTۥ a#! nQRܵd8q{@*ož]G-j ҧ$T" p_,.򂻷?ɓ)# _:( Vz7 Q Y }S,-3끞'ڽpy/JYq54"?)EJK!K2 +\i80 CR#׍gx׋[ 6Kea4ԅ_ ,a<q )I3O@gtפ +F:#lK\Uryb/nf^y/s r^oi +hntiWշ4ъVQYi;4 jY9'RzRMgiurڇ,ItY|6b*nlk,mD +6*/Ob*i9)y{ L3?i]?) #bAqG3e+'$ҭdT(E0w~ibDUEH Vq!S{CPΤ@Kh"Sh/8f AQݮ\'߳ܧ->/:pz` u}8͆1LmyfdB@CrBmt$ps8 \x!xDx(D1jH"G ^Ti#PLЎK4)BR15-7A @r{C+;j448Z*qX ;c-^<I*3&w*DgKkY7_y_,(SmT vIB{m +Oڰ +~ScgUsfKf hp)gBhkvI퇌VH4_qbr0\|"o ۄ#S}*䬈 + +; +Q-Qy Bk}t30Tzia4D*~-i命nbj]XŒF;鉱~ +6%C5B*"7uXxujDyf#Pc +oSe p`:qt$k"u uٿ,t +a?Ϯgb`B5:])oh(7hzU)T E"U2 clcY8Yq +QĬ +Bi,P;n_( ١j#5HspȉvL?.WEEO 0f*eI'VgÏ?Lv݌WL;wқ6闖}.ؑn !3+;>RG8F)xCWѦ`Pو%И5?ͱt_dzupX*T^dXІ t;:{wAلq#S $@g]e8Z/!"P6h|hXn׎ـlu777tCgT +at@sv5u. f3.8 +%gzn^:/ Ā&Q=f=:FMp #wH9̄r 3+%'ynD(7: ;8;XN]iP q68hыp_[(aLR(<H6?G!d9CpQoRRبǶd\)gCDT&0r1C.+x`f.Mf +G˘OB3H݊ds|ͩ(z#lY~!K%y-;Oinl岙9B!R8!fAX%w0ʜ6UlmUfk&t"`R~6β黭[uec!`K؅L0 t>&l: 0w$<aވK;vUȌ_9وVrHu/3SW@iU:WQ*FLQ<'i^P1,oEo7Z>W@Sr`WZjI`kiGDne6>2Qi8YT +E7ӧ{18IFbq%#"r@ɳ&* Wٶ0IO/xH!w4,';,/rfN+;ULM(2>DPv~V.|5mw::ĕԬήGSVY?*F-W5[2YxZ3IT#5!bdB5^#c0n"2CL17@ + RqK2 >7+M4V,.UWSNC#'+!;KL=0L+m 3=PvfCOȋ=E_EMu@d 㟰En²6%t.pҺo$%)\eStUm*rIJ𼢬$sqƌϚ&bʇ[C# )bO$6 G1s1E.*#%A!#4 +#|R +&j  B j4ݠ ф9.o? l=΢%@]~ƭY0gca !8"Dd0i $"TJUJ\V`#Wh.xE;h6z#w*(s@vg f']ڍdNڴYlze 5bxa9!٘ +_5mRCOJCWHw~0JJHVkbM14ڡ]ݿx35>5V},n137ëա +!Nak2&Rgnq/"CZlSio5bUmx®v;]! +3`ܴ1 R,ZiƐ`Ɏ݀wf@C2^ h;loinKDzߒnFt0x\6 }H6egje&EεMO;@9|ϔ}[J{7̰E-zWYu +ݺ|) s/R5*=l%s5|\^O1*]$47b'Z&]5;RZt/{XzB/}`ӆS dPD?d0pBKys8pAI*H\b~{U۔@,q~\ߺP~ڠ}Ijsx#rکqśYTZatjFkz&H50!9J,tq7Wv;)TWzD6 &9Fc>H אl>hG^P y27EWVY lkj惩ph +g#^*B$ gm!lSUTbFV`վ1'o 2XR+phVG-)Я9KRД[Ru5ZVnXRhsXv6/uFSRxyRQUP鵳>RHESɰp0~L@p98tm]r;r#0ju%(R"GԷ7<Xy7 @ nhn(Q՞I2 ӻ  *,fHP eW_&cZ./?Ul$tgXǺ`>)<`K(̘p D'F zSX'=NDh'?gh'>`ɧsbXEӥ9d/`SFFݷD gzEHA a,AG9#8ȈrNT9QP/Kw uA4HJY Hi,v +ys);?Cg$^u"noRYuiCg(F+U)ڞqi zvA ;'0rй$#lI@cEi؟`h݂\hG)k> ~p]f(xb<(.]̬2eW蜟< '#.EWݕW)TPw̥L]-4IOʒӢ i0h5F;{-R(:XyARV\u^!G&)]YBJqqP[aA[OW#V,>V#Fݤ+xqKKL/Xs@EڒJR12}chc*c, aϽceԍ@ڵ !#P٣C*bWgUʍ +G +Rx)dHhi!@YgdQB`^lb 1H!wkTBv'8w*jA!sA'uueG-zB$Y$I8%6?4j U3ZM iDIR AOukb"dixIlpDm Jd +G 1'*, 7dNT BM޸ۂoLe2g%g) <؇A7-3?4/S a Oȷ5+".F*4gKƨ\g #zݽYոh|^sk}d:HM343ycV@|N>jGԪ ]ꬎz =4Ȁ0Z}>;#7|rlȘ{Rav> p:{xH Z{:]`A=w2z.8a8q75SmFBjBLlɒu Q(y$X2 Ӈ"2{uF"!8Lվxby +2weZp9ZsVR@\vPWgʹ[ɹ<*@¼@ήm hJW D("5xȜM|XS.)>Ya))Da5BI鉨 4!HeU$ YE@*Uaq\(̘nd7pZlZ:V xi.hIPٷN,ȍempDUcVay St!9I*$rݭ=+U;'=wӬ0- Yu][8d8cj9e5O\܉"7J-[nfHi.Pqml],DՔ!j-|X<9qtiQf}Pp;Ԍelܳ c|#Y:\]Qe#)l,Sڽ`. (+hrqTr]|)عɟ}'z4i tMJ5Sewi-ԘbKo\I7iٿ޽N&Qs +?aT+XPq+%0Y~XT7&-Omρ3xJ1ʎz@:zv}F]sҿK;<=:dCQ\ub8RB~nOM/ El6=8͗K]Y` 1̖?Y2|j RL#)% r["2F&DŮmp`D.\?2dyɧԘts8@-I~D?пAo>FcL~-CG1ٽАhaYz'\wy#@̩@ޕRi"qmW90«&A&Ỹ^H/.m^7[c׏/8G +8_YamQi@ 6Kÿ#;ů]_a0m.m6,oo\+]p07]ta8$>a$yn $t9N4؟?0??E^j(f}\4x%&@4%%A +\9]MӉ/U#--i5x"!Ԁ5-Vy?8?E?nl!ybNg9oٟNwfg~}x (J&PCatciHqSiOWq9qS!c ~@xfeBB6&,0Lq 5@SOЙC#}>_G 阺)0tsĠL!0dΠ@nP_< lS^ =>&ΝmkjQ/"6H%[ ,3xW8fnrN7svm8NDes֤T@YZ`2Dt-SXA?mZP'(T<A2wz.HϹR=hvǗ`ӛY5ڽd%22OQaT{>/=C]Rk(XBJ2m'@K_~@h +W3TBY닰']tDy,;j + 2gcxQOQH:~ bc&jF#:Uhiv+M+5 WKfnя❼8p lθ cJ3GtGm؂NKI&R>12 jKȟ M;DE0Ԏ~IdIn|d]3!2 D\'K:@A77AC7}g[U6Li=05qGPҳ +b Ks,, ZZ0΅ӕ}6w D5Քr7ۇrӕ +1fPbv8AP;&_"5? ɤPaYS[uDSFM,tSgԪ/~RIYM4݊c$﬙r+~i Z*C}s~|U?(<㊀Ž!>b_%6⇖҇sq@.x+e#iFbޙe"s4x9n0SpyŸ0ovwcx|h*ĭމ Y5n,3]am87!bVDZ!1 Y&b!;/#3!)GC̙#c KǵȜ!zc_hf5J*~De%U ̺mq7a{𙙑P )l2oYt&,,L݌DS &"`V :;@;Ea odү s:FܺGqawQh 9-akIL\J!O6[=~- qc¤o[ܸ`v0g#-FW\4Ow.7#M#nCy17Q~cnCt 7ّݸ¨nCdpvI7jch4I7 ~Qn=P25)Kdز%sGNkه!@e, G"F"MT  l~$pf3(bR%Ӳ<3wf ) sqNI.zfbe /%Oіz`.hݨRYv[ KUμձ;#*O=& o]~)Nhw0:3DŌƀ}^kUm<*iԃOEWLP2ע]3KR}K+jʵթII3{tjF l(# E>k}x3^E&wq1h\eldQtpwL-;tHN4ƃsXD6ʀMɂ`8*[0OTe=w ++n=V!Z^Z_qeA-] sTD QZاH ۞&r QJ\[yN+Xis薇t9KU|Ɣ*i l\^_8K|]ƂM +/ XrQsk2zKHн >R'|%,X E%MAjG7T3){H杇y%' CemHAsޏ0bRDm~vx1F>eT +=B% ^7jқ䒆IsI7ReӊGCѹ0OKi}̀5++M{(C9B-bU,OoC:(ͱ.˷n9e%zNKI[‘7Go + +Ӣ;7aE耬KJ [3%/uiޫ/Ǽ ő&cbDS; W\JA]yiT.-=ܻ>+)[@v:[` qx(iz0,z>,mz>4{/_c sƂ½"ea !9p~ wF0;w b7@م`m)ȑ:K52{v\4{PCa}4Lij}/=,#8o Uɋk))x5;j|j1cɈr4u.J3&9GI0aGm,73mn0Ay"BtHӢt%zBG/EYHvcvHBB@52IJndٱ`&J8:Bc?"S=Յ$eFҸk+ʉ_^%z**I^b%)7`I\jAq9U.G!{ ?kbHuNwķDHV;UPgqy=j 5?ZE&tQo=ޢxłewS3n::EgrD0!ǢגgIPxCQhs,ptPzpM[Ioy%Zm8d?d b[C4?wTˎw'E:b -aA߳Kޑ#rEQTa]Rf1oXĉnla2[5`V>&8{R{AՐI9vMBy+C? qr9d8;J)I +ޖ'[zW, ^&{oW4)޲ywfheyYf )I,Gѩ` !vNyږo $g# +qIr W+  H"ca>b្mM߾=4ED0Cף 0]@0\w^ba5Z0& [6=@)l!Q ~EvA#w4nn#2n:h<zC '<yz8w)wف +$HY@ncymlQ\F+5hͰi=ZJ54M7XD!rU buz-;AWdluí1?E?D Ԭy{MkUrDv"b*I U_{AU3,&0#j!KqL4}f)Ub5 ]Į0uyI y̸ We4]0ٶLatP$iT5~ 9ތTA]blkhNx:R>"t;Emi:)I]~Df2dNQ炅9 =Yk<:;x̸~;"r۾%$TY$)Z:Kչ.DXϲ|wċ]tryh:վko.ɺl^Ȅe J!)EJ˞:t+šFf~_ r?W\&(7+řҜCpXM%59駮g|@F˅F D/,Is5 3Szq"_R?\4 eC)3[ &3@pt*f~RK3rM-Ll*V0V%lw'*PfB3ɘ[&`P_DiZ$,?,;FڀNl'Lgw8bfhׅtNkW9we +ANw$yЃUWQ?S7'(dY428T5~#t8܁4|85AVIN1F[n1JcA15Ἠ]=hH3Ve3x `2{VSOv)Hg <*fY7M_=Yb /WU%k?'TJoUᵇtx_*?z$PB ^A< +TJ3S^Fwɔ43 Wy\a +go')5)twon[ߟh|Y wh!Asx#{ g>YP"3`gx4c`{Q*F݄hVmHhFvh%FS{ }g5cm}tFiL`|SL7ZZK̜ڇf#RV|o\hjÍ@zYP=bΉ}<a6`"Iis7ګCx"(~ ׁ$Ǘ`DPtѲ:e|$ qhqBn"]ݬCFP ãRSNaZdQ+EVHbZ#OleE$,֐5Xt#;DINK{]3  Pm}זQAV7F 9Mav7&J :sA۳Hŧ>٪6qK 0CP^54z4vkI3/ z~` )u*a f\"Pj;;{ZQHR=Iwپv}@ ܃HOɾ7HAjKj0Nž7сށX|C9u<'icvD &zY.:haLfGբq'M MK4oK'`͗FPIvSXref вtǴqdHSEmu^rԣ pn&کY6| ې.%K- s1t&e)Fs1a +jXaJʳu;cCp[bL6KZFZU!XN sWꞷsdaV.)|¯}ۯbo}r'HAbY=7 2Bw JcOFˮ\P5.' +yn +:x&MQݾWM֡ጥ:e<_ɧ\rjy@  = mEXc\Ca `l.R'ؼEwB!!nȔ $la0B*a^):=J~묙'm9}3!Y9Ȉi JypBpirq^G1w&Db`8"]_9Q9լJPmɶ++@ʴPMhB /P$•=M-j/;/l%QC a8B|A6Fj@0?>Ior44׽n)_ u`<ٔn\a& |QُRkOJ, 'rR#ٰki_ҞIgCurR#G94)W\'M$AAq*U҉G8׃=UU . +څĽJ?8,wy9w=S "&aPA5[Շ:O.f4@ :P(JX+7$tRz.d`cDsM,yaHu, F7.}5싄 gl9ܽ O Y9Oyz~@찆CɡRm$4aػ Cb"C]fQFH>ب,؁GbE8l&aS +'ޱG٧[ sbC`OB0x3H\gfm?1pIMI:m۶m۶۶m۶m3;gsʇezyzkי*t_L%=\8LBbL*7Va8N >lVMl(%tMBE$>¢Y" +S06WOiYLlZA0/D7\S 7)(38Tz"VCIi,h[bk2]d,So֮v|b)=l#֞+IPf?AH2%S@.TJo5ǝʟk8*X Wx~FؚFd[@H2p}QN v:Q}t74<|k p{i'{Cs)x$_Z'{RNtJ )O4;[H{Z+jX=%߂##QQ/0Ӂ3bUĤ²∥Ȟ,Q}8EٮpNSgt襢R_t9_ }(mD8w񉲗_oZ:jׄ 8\H|N,*i5Q~e(hR5*[R\( F͕`޾ľ-Kĥ7d8VDk=:']/Yuq%7wۀWQm,Fe,ChWYDI'FVKSuce\l08bl1|%?x?-Wt)D˾uӃoI9RRE+Nw`t?8;8{[4xn fJ{+9(nF SfJJ1`X+6ҬnW\H!^ԩl +.va[ rT3Tj"3 Wۊ4`>[+DnsGKH#atCc3~Qn"L4y\&Ya,nԸ񫺰sz|ߨ90 ٌQ̙7ੴwٝ7ܶ-t3-$ע +V. +K_ zu (|n?@TqN!`~dC.pΝZ@Cիv0KwGxGl`$HI61mS;C77NݣM1"#5np X vNe_:8/K2:ـR`Bf=(1)x.}~ʦU7v/9?1` ̀gn{Lp4~}?qX +Q+%'br*2tg=Y  *!I~j\>!ŹC8Eb$܋ j@N 2'9x&)$:hwš-:_S!rl{VqSH.&$8DP1ey3v'(ϔ" +Dy-1(RZТ\XɕS\BuQ\|1s[ouovL$Dvc*S?I."MoӈńC(S:  +)oe*7o:o,0v4BcD⒴pԸMkFNDe,t^t_dU&E.<5At)VElhNE% DނdYȺk5 Hwɱ\ڝsۊ&V P9#W(Z{Z`FhJљlhQkF3IN;Mq2 -Ka\w{IR +){t_aXryr+DZXy&eG:a}H؊kK;b<^"/8De*_o.1&QEMJ..1puj Hy\ƟK8Ĵ϶pHt?,0(4 2{Ș9̘9Ј GŵRKLTX3 e&2PC%'6YDwݤUx¼\fκq}NqCs|딴SzRrXx .{n%`rnnDp\ʳM= / GiS0yB#"CDfO(T+~tL޾$@SOO)tHh󊪜ś>c4UOaԸ YVW;93=&w۔CT*minSЪm$"{{|TTeQxѴ7K[*Vr\\;MHA*>BwsZVl +0,RFyc}~aG@wb;R潻V_7xJQxdVwb&QX~ν36`f̖^5AWGn9EPs~4An{73s3B((_T .6 &daL"d }Tnd ̼.78ĝD +Sģŋ0͌m^iɽb(PloIJL`>* /?v K tWatuD}1]H/wa!xq*a#ٱJa%s45V}HQXz{μ=Yih,Kf8NEYhUY()1W3ڛZ&)<e" +5õNQ4tY8Mڅ%$2<Uq(=@eo3hRVRmTZe6 +MTX +hty c&9IzدY<\n9Dyd&dUF ʆLJ$ر⎁=ϗY9 cJRbkr9ڲ4fX5RyM\fGB`J~C~*TS"䊖hKfekW7ҟ"?˄{g*#ۇ7E&)}`bvߥ1Q[B|GFMu'linv׍]R"M+ESd\`jYM[V3"4n +s}gΐG8`Z45O se\=5SsX8K55a!Gsmg1#E++I $ q7ԠwgEB.}x P++kbesmɾxXp > s9ѝZ21mZCngA"J +~6;K_>8 +F$Dodu&Thy+1:g;*EI3"ZG3;z8Wט}=бIf|/mg˹NeFUA$9nK;M9͏ÁKe-+@]"G Hi=incF:⃷B_HMIgӭ1(W]⯠*Mf}+bVKCD&-+z|W}QVl6 ^}Qt216s~&Ыf2S/-9yJ0t&=mMVGܯKT&Xݪ")Ub:9%J>^͛t,2|hu-.=˾MA.I)jv(j ȉ2h @?kHB!P uL)F>[m i༡U#?m(`)XMKbEc2)ij3%$=P~8 -QR,A#(QT1ȭ<:jErv|5]pSzJma$[g ++U2Bh|A1g) +% +͟!AHe +%f +s +Oǡ7dip!xXQU@* +`AԽJɲZ`}PCxKNTK,`5fQ 1D8Ͻ0lqsΐIASds_Xw$s_AH^!ܣnH{P7DQtm az/ 6I~CxI$^VΐH8M#Q^AC²@`3N0bf JXnN2h3dɲjࢿ϶QsGn ' S;%ky}{GXPq϶NU ]Q MITT%FHgiq~'G^H}^$uAByQ*-!I]j[`€KԎ;j>q(b#r]dIT[ktMdo6,J9QxOR0}8DQ};U.kn\s'YVIT͉%O/ +ZءLCz+ٌ$.*KsٕI#0{<4v1JY53+7~ dxYqج:#P 螺m%퀓;Ɓ)G[}) +btf3Bl5OkaȕUZRg DrJ8{d&DZmDL"(z>ȳNy4鳍K1b%jet"vf8R*Z}TNsN?\Rr$i6}ȭ%K yLPfTch018R牁?mǗl119$(gv67W^A\j9uKflFs4 1jc^36:VUdYrMCz04NTPQS2j-;=,tE~'x^%xSZ{O[8n< +YiTKuxaWq5s@We зx%KdܚSEhfkDb$ +E2sDƲ981hUoo?U9Q YAx/L~zг[s[_tkdjPR +;幛dH/)0Xڱ=u|GMRiK4zʇ`QZ-X[݆EJh]#G*lZϕL R7ei2 +QKJvg}F#?'$7#320Zh,AVrt8e r4ПSKеnZLu >=)#N_<>)!jRVV-Q#W43D1m8IT$ I"'%a奈_$W W {Ba`$td *= +ZѫDŽbg] nJ_*"ABJ}Sq}\#3:CGiYėDY +H&-yVNg,5޸ˎnr<ҝ[BF|CwA{@\ 6Eaq+89,҂~5a!yEϊOt-xxDּL8/\S [rk+jm xVp-;BBtI)3@H#FD &;?r>h36GDr+yz8=+K wӻAsآw5()MXɅ4/Ȫ/lU{}Pv#&P!|M=!H Nllv4Cyvmh A~Hv!{m _OؙvkrW1lnnrs|YX0[۠rH7}`<C<]/0ePJ-G`b^TrGBȃp(s:P‘}!0Ax' +$X0[VQ_rB_aBJ A(YoH](Y·$DEyȟ^gcB`3swA8;@#-ad +MrttDŽ^ )s)(57Ϳ_l݅`7[!j;#^B5e9 /okd }2vU'cO,ؒF>e|r1V;(Xh V RЏ?`>g =ϛK /۞7k3m/5{`{ڂ8`M6F6Y5jt_ax| “hdw~n8|"f e+_#v~#wF-IvK7aF Ai$Ӱ)N]@$i'Ɂ)fGs̟`#i_&UZ\&/: g[kcW73C`RSM eh̖r808 V%*d*|Hh %A{۝LnV3%4-kP~OA9$ǖ4f/5xSBqȡzE㟮fGn Z#WLǐDbOiYt&Q86:!![iK blN쵵Ն3c\-؎33`d#A39 K&&?[}4a55eYDW(M_z"Mbxf!L7qFXY;a.\&I+ *i&[)%"RLbo UU6P +廝ZBlw3**~^._͉فhQue4gb1G׍Pmuq#&Rr Ƣ8-MT;!{Ӧ52C`cFi ;طPUmX[Ն\UE$3Yn%e$Sj;QSiuu2cn1J^E۩A+3fGω{FБ2Krgؤy u1%f= 3cRBAHtC +4Ch;&0X.L3Tf2(mq0?I[MΨ6o(EPk EBn`P4)]K&xD$u;i6Ujj\VMP +>pL7Li2Y\kb%6ǨAJ-e#9h$%ؗ})a9#Ag9/<^.mI3 ^Λ=UnKBwS^ȿ: t֚y93!y;xFTUD5.b55LVz>$FSoKKC]|٣kz,{ۃ4d.jԚ)˻O[xmXsozUGb!`Iя#Or-{-^='лL +dxw|X.b M^KQ1H?V 3pdV W \J8A-˖[MƘt*AC@w'/jZ|$ iMnW +W 'PW]K]LD"h^a΀8['>5>,GC ;(ٙ# |]" D4Ey -/H t\u{-0ZXQ>s3#(Dy4;݊ ƒUF+FWl*톊|zH>3F+ː+ODi`L^0A +52niP}Mں%7a1a> UP>2N^"&w5 `}Y +!@}sӀiA|G0 ۘ)=@-@;17i4\qp6R{\X.|(HtRt슁*#:"+R{zf1,AME!BMK֌k2*X5(lLLV+W]x #W' LS[AsǡEeN<LV(czGUUeTD^զ+Iir!qE@O +uIL9K + v=3,3\j6>jir-2)t}|B%+#c`,. @=\Ne ¼JO ^ٟgfj@С2Vu} jni]@" o?386f->` |,nFĢ)gG +̼|n 1HK&GQh1[pTDTF4D z7Y/O(Q!B /m4my!qk |?aK; E8;TF؟vX1,8zcCmE#:+Äq Nܢ9hCJ2>Jk\C,'!_b(ǔJ.Q%4_hРlӮ Db{hW&V3VKw(.pSnܟ6*AxYp.Y@z~f@N_S#'H +ɵBg;Ik}Sտ'47P<X5QB%WldB.6L!2SOh˦ӝ=>-嬣/lOs#C3,rgpl:}zDFAA|P$e#[SE#3!LxCdwt0((_itB1)lA`Q?e}c0ϳz )-26[dYJkOILJmst+i xNPe}h0Zb"1)&=֊\!3}mW5}"Q F|yb?ڸ!F-SGp WM&ˌmaMDɢSbRYdGU&4$Q/mGa`Pƒ\ @G9Zp{EdȔ0sױ;m2! 髤:7J#SGe.v2hI*9[!5~~_4UX$<:5YsIۃ g0OFOK& 'T+I kt +c3 zX?.н67'B6^䁹^W4UWcqި[]` #I7DTxux۹.<{3<{7UEY|(E>y%B1Q ڤW3R!:VCB+~%ju+:a$_FMߡ-+zTS5|L;2Y7{nq>:@=9|RgW-kg|x}Y^kjO7x]jn;SmE +,|Y뚚ap~ +%r!+37ʋO` ]ʷG|xyڳj^O,%lN!OAs +}JkZa$`1y)n.Z_D"AH +". hƗSol觬*5a~`Jku 42/ sd;X@$iauZrueFJnl^uctܡL/T8^Y;i;u8a^p|@t~ }[ܠ^ܻ~tQNbwTf!q@*/}%HͷlIw ! 0wekAfCF!U癜eX4Y(![1j->)^$x1,-@ga֘8CުJC +,i՛i/ݓl 9gJD寪-6 [u)h_f"7f%O2yR'I&* .:wPP\&춇y0H}*&iwRFCT`Cӌ%jP?R~9=\OvsoTt,q{|s_Ya!Ux 8?#H+b௑E {ScK{ "Y{=3v͛<S$) FZ +iakXQLf#¤X޽ZvBؘݼ&qp I̍bbiU:` +@UCj-LU yԂY+q M2N@ILWԂv#FCς@g|`Cdœ.>fz vJ; m|_+oy 0,vdwsL7u +O{y0B(#F:eӵsaQ-j[0Y8- mUֳ<ܗV ^ 9S7J^(emD:5S*Tm8I :HX6L,<<6Aͱ޻)ô:OJVn&ͼEIv GzִX ? -^lus4SOJr?OrRQdSaͽQd銦!űԱ!"q&Q Ӣ;)Y|{OI,X΍w0," yEDoS5'olGD̡peh澯Yg^܉֢YGPqWqDM"?5&+(*V +Gb݀eqMI$S{nCkqR#۶h;Df/.. kkgA5)S+oik*;Z9aw"Y[eo +L=FW`~%)X`\MB#e-w \c7sk/M*(¢8͜rպ((̈́E64 k㸇FQH:O? Ofκ:CX׼IpDkɫ(sgO:XKRe׬_<} +ΌŚ#V~jgPX*V7bsKT-ץlhmgv. aŬ68*8V984ʱ1@)UQ0̂iߗCٮy)S!k@WGIL=ٲC)$&nTU6ub,#62n^lPOPfk1{xzPQ"_RX\("kV6rk?I uE::ba&wG.golO`  Rrъ (ϟJ¼` +`I7\6Օև=yy1J '{]= $dHɰ$X&"J;P 뇈^j^zju9a{,PYD.7ݷkzs2! v;Z R'%KQUIP嵺$AxekF3fdn1]g1xuQ%QXbh$責I|:LZ\^@QgIkۍk!ci_tXv1FI1V~#%*S#& e6b˰+c %0Ђ8=^p\M+xve7ȡNp?4bR~R*RӖGǮrB)dOfWr+$=5X^Zn|nO*{?,J +UI+UiRSYbnb7Pi`~ȼxB%ތuDnt؈fK02JMFHa 3'lSm|E31AbJ!11lp(gACjjҎXoor &W|:35|y@'R[(^ +l( +UbӇF+j7!8N_I ^OVID +fpʁq@Wz+k93aPYpsfT;L.In'˥} +^3hiT/! pgH + EJh(CJ$OMMr"Bkh}C%PPܻ̘e掯3ov&|-U1#I>-٥Rv˝BH?j@S1 +זº.E +pFZ?~/b8Ke^(FO +/|Nyhv< FA{m=lqg:*{<:x2=`"wwʿJdzQgB3g:9U9͆%堺SE]q3Zkn) UOYP&"Xb0h?ԑ>㌳#4>R?qM J]Mw!qR;]fdSSx1 qg<+&h VM1$``(*16(Sq8lxU0_: 1$c]±Æܔ_D2N.c֎No~p~l-VufHTZЫs{2%ﴉ'@wfpa @h_g֣b+kir,nF.du]1\Y.{mڗ&`GtB%B89ҹObMjtwnɥ-}Gq*ӵO`wT^:aV(;3pvBLa FIK戩:-&.#YG+^H9?f}+D G ՕQ} ݷiŦ2b +Cd2ƒ)NMMs) ,iXA4#^8qt8WŹmF}> &: Ɠw|F9B@V,Φ>UbbIsOHzϞcaqGVIp 䕕?ϱϋhU o?([xLJI䁓uKo{(NG\%S\< +{;T7>3#Ma*H{ HYB0kT>_~|M +Q.hfxٝؤt9DI|g^إԫx$dƀ=.< 41qiӤdo׵ 2Feq4F!C,\ 6'ļ6])A>{*0_hVrGQy&u̍'~^CF 93?!/ݮ !Huk>~GI/wVQ#CLȉ!烲MKlജJ=`{M&;Lo\zže] *Tzx}dܦVW[OkXW7Ij +O z3uzm.ߣ}B}(B; +( OmU5d> CPkD8I7_k$ɰk{)aJ0LΞ"bH +KDS6@nd݈H JVj>gQjzBu6BR%{;&בV11pS*P"-[>k;Yyx^Z6GQih|IwBպ]; ܔᜭ-Ndzw̠o=pxym]kvԇpKf#* K>:+SnwxTwzʟol(:js2 dy P*PESlP8t'(:5z@HXR5+ +J3hbwRxʂ,I4cr?Ǖlk4q&d'ƶOJ6G7zc|t$6` wcIj{gh/_[wɊG3~2#\Ⱦl#ڃ/+t͑lzn$NP JP=UprL3&j|1~tQ2K3y Zay汣[$cfi*2d3RB^UaX(>mSi`h/\Q56cdGjYF!Jf.zg2Jps{!V{]tOHϏն?I]mIG~k +TWf&,l(BNJ≑4֤H_/ H5ۮam + + ef@CTc>uvxHaA#waǿ"Pem!;(NVA'}2Y Vզ[f UBh6g M&I[̱֙~ѷzW.i~g?o}OVL$oO`]o-]7ÊBx2P kWooX j ȉyM0)#ڢyus&c hG׊xBf"=Ip-- 㭛Y1kcMo~qWݰR{R,†<JKr\;?Rc J8֜ߖyҽ̑RBDS'U*8B!U{TәY\Rljؿ/Ԥ%]f~w؈?Pe=,(jX +!I4p,)WǒtkG5e_'XP7m5RsFgwx!wd=۱F2ZvP7)fĎ !^Mb[3;kvQ=":-:vmƻ+Q6f.,Q4;cd$䪬32k|;$ŖQnaR]?cCߠvwF/yQD7&$|L`.НR~o6F/xe'2Z@ 4$Nݎ=Syzl#QʯFX'nvwP8Bµ=- R*f29 +Կg׏K䛚K `WSB +en*UJFKHsaZ󶮰MUXV K3mrP=tC/$rzbId"Da-Nwk']3.%>}Pۇb. T02wceCd,)К`}rg֛`{7B6&Gex.${\Ŭ[ym;Nvm^\3rgkUeD +N$3ݵDۄEN4J& q ^p r Wfjj&q: hTXq?mC@@QH$t 5M`8 +NZ 5r=^I t| iD4GW,0?`-&ѮAh]rɀM?`?7i8g@4{AGnK+>&+(;O15'WcHDyʥ5cT'޺k^\Z,``Zպ +Ku'ߖERŇܚ\fHi3GD׎vpuKZfږ1/&\XJ Iz%2>klkN\k~Ee pORɥ'lM$Rs"G,dOL}hb@{ N~{3&q72!d$%*| w/<-7Ұj*"8ܧ";*Pl?;UCX), J?M 0]K#t\c@'p~!Gg:($tsqOuX#ˆI١y +#ɢ>h%Mr#a;rFG^|~g4u5dvXٛl#hmgfuwT+n>:Co,PI]2`׈m[7H=s~&*8)ȍ{$IZ 7.;ZHx@i;@pO vrfArqv> §Y¸J{1FJ mfgII#?f̖}RoQ}c( +* %t?갶u@tOJQ@@=wNYjk f! +=/iPդ +Mև4`{Ű{ʐ-Ҿw% :#%y-Ӌ ~He{17ʯ\C>T0KXQPCG!mOyQI/!VI5oΣ9kD$Ndb\0Diph +Mvu&dA7I^N47D…Ԍn{&1Q ^atN?(qVbOb `SN睖)֜-$2|Fc(AFy0UIk>~T.DA\\H <$5 /8I0WNJ$g$_VӤllEk)WK #E*7qƙpCD) o>G_KU4.BnP :جp?'ޒA44Zۢ3vnUnUp{aܵ>^\z"-jf^Mi,5ՅSxm*}]9ʳ/ 3ώMAQfo1pfMjF0*+ښ>[W' )PJ`x Y63iJ۰``,ru#Y)*Mn=Ma>x9Րr |+2scc{:+ɣňU:npڛ-.]D+o ('fI遪E[{JP^Q9;5#e}s7_ by,\xxv0#dxF^ +;nYײdd_ɴzp9@q 0ĉsN0;.HQA:pP"[93-!, +O|I6dw[l-6J^;mpq-;MK\K'">cc{}đb(-w=|aSiV/XR1o]#>70BcWO~FJ=ܖթq<'9 e ++D]#"|oO-T%)QƢHPρZJ%EhddMacKh/gT:*yq)E ټgj2kSG҃7|o 5 wq@KOǎ]s{CTv 3 `C*NzC հlT_Y@Dqyl, [4ov .yPs^:\XlOEe(ᴃPQ5/+"z +j{^CL_vM~xlg?C˱xEɱeʚ## ܸ$B,1]iX=k؝]mXC V7z%Q]]WZ]]kuY>GE`kL$' X@B?K/u@&‡%j>d:^ӆԲ +ySuyx({׏ 'Sa[oIu|SS ܤ@-Ui^ bɕ4s#+hΨ d/-26R=pœo_4 7ff9ppYC҃/̷{Jpy]J`8\#%cM!4.DGƮ%w&_h.c0|HL)Z'h43*?RJwJ"SOI0ɝEv(Ǡ*nl*(xMkTrkP&EXIR/$%(*e+KaK8ldB&mD@q v"ΌRЏf)y 15xN[9i#˾!ĜP8>T ꟗP%r<[a4,QV!t^+*k77DSn6K=pT,, /x &j ,fdWj 7t߄Ev +;D!Xj2r4Hݽ޵Rm+,YG" +>~Po K7D1Cnb:e%o$:!.QbuaV?fy$ezfE!i~ KS>af|ax:F/F!޺i0ۀ{feUw$D}q@('O苡 y=ݼ*{,'-^oEDUE1ChQj#?vu[q77[,4HnKt^럺Dlm"_bic*bjN`JOVS敐b%,/Q<ǥ&:>_03@?TG(9 +ҢOuiX&:oKIcl +m (iROc.ff9ί¡`Chb)S$ԾhL!9۔U +mξ(R/Iǵ{as4,;+B^);7k.z*؋,'T^ Һ0¦+dBO< ,(j'mZqwGd-I\@K 9oS(!'QՅej++]xqHBk"D_7)9a۔g,JBHXT>Hxh'<-z<?%WE#om(Iu:dQ휄K}#{N$/6GBeZe<(9 +='fQ'gY)D +I}<&zt.F!0y<Ć1vq%3gY;,:)QI!?n)ţ0y[(JJ|H> 9 +ݢa="k3f=Izń,wE~?ɦ$1}d.!y +'y نJsXҼ? +hyJ#ǀht#?mm>F/w6OxKۿʍ+YM3Y[d5N-B+.M&5lc޴ R:a˥A g³6llO:iͶϓ/ TLHLd*{P:'J}R` Pf(cCܩGL.U?ӵ(:Gc-ВA2&8n$ytPbq! |DKw 0΀!]'ĜQ.fvNqh3,a,u.̞ iR8z6e6w0jEzN$sӾqϣ +rINrpcyN>!G0jZFg*;Jc$!!@K! aJRcX6U`@т#84OYVnrԬD '%9\ѩKJb y~v$=Z +Ǝ$wO؇$6 Q+X+Q234XY$+2Вٺ +fQ!ŝx "snjn0{H`] `a+pOVnNȍ+CȪ2-0qμxV:dҷҭ6j({V; P&#(8u iT|wp&l=_:=pa\tDqNbA1Mәdnv)Hγd)o6[u*?qnafr?ϩNBoeMlb~вkpat#|wB0՛eu\P@*R7Bgju&_Ah]-YՅi!`FZ{ni$OPPt5͆&+^I!ڛh6GAD٢ѳjSg۷{ +RtB#qk2=i&TF|2'd2ZfiwAZm Wuՠ.%!mA3b^kJU4TM<'ٯr9|_.u^ +*;J- +We#b}\WCw +WS(J" :N(粌n9ނ0z[r":L$HBqG7aF#P[5YLfk옋ǷXdMAz%Dт߁Hѹl.`m0PT جh>b$Fvdkѣdvʄ{*zr+tOg9+-@\۩ <}"* + nmJVti/' 7eBQO͈kԹJhk$-%z_:#4cC+{ɷ+u\Dgn_.՞!-*|k1ο"^+% O͐T]NjB{GzTNNUEyc/a]dY5|$RCheZEas2d UI(.E\}JD@r0 wlhjn#6K:\B<["t|P k2 M \+ݼFSBmOx㋻.:D{͔ax2T_vi'$rmУ]WOW{L[~zQ31>>o/m]a2~}ӏW&6F]"$1QL:Pb4|x QMMV(΋ZK|rQ*"`X-=j P'SL7[@ c] s+XF>?6$<[J\!l8m6 \/ls$#mլ2e62^^ pŎ&C)lv[eNnFKnZٚ`p z>1yMzbuóvͻ(TA=qJ, + stA$$#|A$y/0u&/l}Ihh-iGĦq#A:yRCwIPs1 b!]2k3Kf@R٭Bj45%q>$>q,A>+xxI53UlǢq(͑E&ዋYU|3$ +M5HDfFB_Yz, x7I}nt˴/&t[Yl6tMVܠDl9/AFs& 84"%|uzDmdL$D91o2N, E{D@64ؚؒ1 +j rޮ2dTߏ=Sb x +Fq蘚 D)C:2%̈KKw& +j%hd ۘ0̈́gN}P%-cn,ݸP.>< 2ˎU>r䫞(W咱uɴU=H^LWJ,-%qvEB+_Ү?+%3G?/0/O_(Q 0o  uAp۶m۶m۶m۶m۶m{=sLQVEʧVfTeO. EkZa+밎~<6LLpkW 鍳4Z巌1i>tX]Q/ED |<@6Y|4ܱس\ټp߀lIk)6?~y7h5KzcLeaRNSaomqYq/cm4۰s<8\YtE!L,dDO? ß2,7\`h%0(Z5擹5%q1nAGrLkGi+P ׏ Ӂ;~Ds\1fw7|Ӎ.T9-N+~`8H/>o9o/Zg'# G]ľx +"P~4ė1!#' +QrsB8n14+:͞\lB(c#nY!1Z~F n_ +ǟ!T_&v 'L+x&=.)X#L4} ^ cP<̭$0إb ++F=2J8\ZȏgŸUM K+4}1,?PGc~/v|Zp]5s'YMIБMQMZsNHԃ돰if;FZ1945W|k*Ů_|h7keZdv-(#qYŲ9@V珷=U&<<3kP+A+ZoF hhU}z>lE,>џ6D`bb{Z'جʴo|z4}c<\W\*SNoµ^xt]J{ߍ=U>S4|]CVjV>fN+tͼά\u8#V8`W\Q:}Y4jQP'(vukMg1{Tr^ l +7j?V^MU@s:(Ur !ʸ.u5(O++?TkYʯɪ$FRގSl9 +W7QKė"Sb~sgs\TeH9 1WEb:BerYkٖoKV(c!m-L~.˧,uJ]QfK- uZ]qj-n9n˩<}ivz[./KxRd-9y)jKV^Z[^j[bR/I.4%Kx^]zv%ݗ.{)x/m/82—r_~K.Le +29nNdn8xqsA_!ƗzJ9@Yn7t%J:Aݞ'Z4#9g eޜ}Ξu*Fx^/ѢҠxҌ^ +F/<$ATxcDI{+|\#M|^0áKaC$m qǐ}%L + +z}lnG Ӝ3T<'՟(Ovi9KtsOP%Þ8s]`1}_b~yؤٕe ɏ8RLs낂WG!Tb)Z%=8~Btp%e_;.)^0o` V4;&dkvX3P1蛈H!gj ++ko ;-.BȰоp)//RFayW(V}cA9!B_ džD2N C)0MR+lH11gv@^"iۤ&(6TR Q365ViCx]p*-HP,Yg1bRnjx%i7sLt{O3F5!rv4 5bUQSb\LtQs]dhd s0z0_SgԍZo[`ж @*F+OJ "ڒ90i([PB**8d50:-xh,Cf@캨=~WAMwdhe47^H} &J9ށ8/RLVPM\l}Cti)#Ҽ̉43h$ +Pz-L=ƛJCE7٩[(wu'ڲ'n1? -]Hx({rQ *FG ,RAP 6ua^Zy[@}H&K.1he&鯄2Le;Ƽ @.2C@Rn^nz86e+Z$t| NuˈK>Mgq35wt Q@0++5-iAhAbǪ&Zlq4EhZ$'ӓbVZ\=id3|Y5(\p{?7&rlp쉙5=Mo&-iMdOMLlr( +ߗ ?-gMВ߾Q S >ZQMyc$}_WX|xs8.|@wih@䯜=~X4$@#D j%3U@˼&]QWL>N<پt7hL+E8zl4Du.H'22ygM>K3U.{t/-T&g}>$1_26@1 !t h\QUxێܝĺc-\C$s6;aׁL[;8Ћuɸ+Py2r歭Va\Bnm, )FzT'!E\#ԋD֬dmfiJU-b.Bkޏ;6s(l +@p&1/, Xr +HP +J nѰ^vtCfsy%tz/LS%bJa{UOpU\kدTdo)IuK2֔vE;նذAmuIȑ**1SWlpuM?vv F"I'3MPٟALڡYٗjD[#\md;[6dF0e*gTD8m3LiYnx}iczΐU|YNs; 7F2Q&zɽ'8GL8,Ϟ +=Ee:l(҄VHBӚR)טB{{dҗ j 4G. $x463Ba#Ozy6/mM pe)Zy4#]L. i(^ P Ѿjז{y>6)oj@a\4$!z-o8׼Ԧ"KƑ gֶOnPfɚ}PwzN)z--f2qLڙ=\6 \mgPU]VSVfs:m&4Yʥӻʝe-0_#H 8TV{^kۅgh +?}MIsꡡЕu?i8UZB8 ozO5>@[[ށw:Gnۊ qkJzݘyӸc4D^q Ͳ"Y(| r8'F‰(zmH) t!!d䀽['w0/H&ji(9P/=w`q޲%Ь}xGG[M:q)"a3.N!VaBt(PaJHXrzN];_w/G y0n 1۬;77܄3\ﳂ?^a߄cWAG+/p?hDʒrB %LN" fPJh4^ 0v|C3Ar3a,dn [ELȔ- 0Q%"&*a#K mC^Ua $0Yt\j71{N`g*C QLFGX`1eI-1dÙKZ#KIjIK=tqD_|Q#&ж`d'gEU'1T:0jHu!"~sb(3% rAlEƞ,ۉpmEQ',mh T,ԛS1Jm {6&q*V,Q#C5'WѣŢJ ]c[XQ5"700. s 줋RwI;B!uRw uQ㫲bhTL+.y=XW33=eJt40!#ބ۰'S3gt}XJ˲Oęi6p5* ʸJ3(\l&ېRoâLDL/2 + 哮]"oq@J'N&ℨ9,TU9o{U:m1=J2f("J56Y&D,c@U]l&/b(5 +#%F3L06 +n{]|NeW^t_ ދг?PK% [q0{[cTxe]d9\J^ˇ];Px@7AB>R8C.>0UC@?4cs85#CX<׏G qCH:r?7 % q4z쇮>{w?׈?7" B?.. /! ZgΕ+;V<@'τ7LD/m36hThd6Θ#ߓIAmk4r JmHI-+kqVk䉔=˞lޠɛ;#>WF{7=@c]\od3T'RKVUsSuIe?B_aTnw3km5j0pH#lh[au;$t톐:Wt$Cq`:y]3M#c}nz[\1u=|'B76BMXaӓ:b}dZ'cxal\ق'O?( ;#C_ycý#g]!0!a!)ZqL _":}| {a)Ud=CpBz̩Ƌ_F~ }kC D".E!=-ǧg9?FMCVsblZNK +HHݺ%1 +B0Kh]QQ&.VLVmVG[b?P^Q?&NC%AzkZ7ܤzM5+vXB {Ki~EU1*"!^սqjW&_X~%PWX;%a \7+ч"r(;d7!pv䷺ 䃸"rYq?1Uf(C?&\"tc>YWk_H"2JEc&Uԩ+?$TSʎW )-Kr*~ \;sk2R:~a7KJT8lIG'a O{L0{GHYH +Gqe%VWRքnC cd2&1GB`ǟNT>+K|.bdهP}pmϯ}v'ݞp0hQ?P{ۊ"`Z~)&vxQN=oS:-z!%9ru$‘_3 2(olLCS0D&zU +=+4J߇tsK4.|`HRm}a*)nCs=0*~`No Yy Gü%haŒ2OƻK(( >\lZJ1&.*Jj h^R A݃g*]fJ{q@6aڅ!C}S@e%Z˗SB ZQ1Lls1[EV o (E߷t eUh/4s}? s)n# +LUozsҍse }Or~Or'8ݓ3f**c1]eLWEq!ZX"g2tb%9rz0ڒxi[g6ue+OrO_$@Y&A}`\%:3(s ,itaH5~'8 +qr +Ʋ6U|ti͏OO_s![eryqңv1hq#$̧&HVa'ic @%&t@iǁq:`}" !AgƈF3 +(1m,'6K^6)'$ NwnmD6/ˁ~2B?$6$B'zMSep`'1lpp'ǁ y vP~0;8C#㯻B~pe2~H_JwrE̤rPG&>^a ȯ/I#kr_/ßA]j+(:gFV2nZBjY&-EI%JKa M6u&XE ^Q0]Dp鍉(8-oYne42z}o\ٌ&nED;텛3 D3u7?7T%AxΡdR0!+pfJ.iYQmP&e*5PYc~uP{ gEJG笌3Ā|rTWk!aM| t䛋^EJi`G3 2cfgx|U,u>>DQ a3H܁1]Zz%=>}{ f5)Dh{'6U32Ir䦴% + p*ϗ kDϬ]Q+1Q)L AOy9=ل2y$y.>6t iW..D: n7 + sAG*'.$0Q3ѕXe1f?Weag#n@S-a1MXq9wLq+,)0[fvy[y+ODw2a,PcCIg,sŤGoor*LsT׫[pxbzjZMv1ʭLxSkVDGfznJIB+q%-~ jd)s5mvѢѨXm`)Pt"̦.s(W)ptI_~Ҟ ыVHW]`iվHW6m +Y8\3_]'w[dK +x`K1v~=j{]Rl;]@{~iuٿݐS1^+gw\j[jK.h m^VC=BA_ {9 H@>A71FU,O•Dj H@F̐)'ybziإBܔ˧DW:N@Η*ئ +C:)Dgy1s(*ekj:ktŭG,zB3XζpebP6޲(ln +j;B:W߯7=A7@PCQᑠjS}y +T:LdPH v(ۦ,1׵A"iDw@a>0 Y2J1̶ tt2k0#y0=  +N *Y]_/sN$i 8+HD-BTa$]ӱ ٌLBTFZwqm[HnI-oy9WiIL N'6Az]0p@Q`c,<&gaa#C#$VOG>%ُ& |KuӏzFqSyeL$sahAANXzgea/minjCQ>&[}zzqu#p9kaCnφ}= m$HU$%KZLf&ŵ-c&_LjMnf1in5/)oԨuMHfAv/v~_]+ .m:kٱ;bɭ.)SȗoZ%cĔ왌D +թ t(@7faՔ;ַת}jV!uVu~Rjr?L8Ďċs%"ە+ݡ.;<'BEiTPԃkY7&ݍ$Fe1̣D|ӺnI>Z +vtGBo!{=UB;fmZ62z R1©ӳc"({a_nsUx3Y2$f [M؝ʎY\\2=sSHRoH9EI;=y6lA|Qps镚=ϥ Cu+BzLY[Ab456OՕN!@ܬƋ-&~T=n/òc5= VLǎM ș2bf%.KV qZǷHlWâ8ac 02r}Y.:r8`Qq°i[8Y凾8j?gB}GTqzB?9o8#u.FzT+q~D~PuݢQqe ZjLK5f4ybjC[KdSfn\]+|jj KRJ*(WsEd}'ܡ!HO^ݵ<;b\fzC2? D$Q@oP8TTR峲Oi:Ң'U4d~3ft`Jex\V܍xهZa }R +j(BՙiC _Un?JWpУĪJw0=<n0l*(:wt"h +'ۈF: D@3u5`z֜mofٳb:lRP1ޟTW38G%:KT*_]Ĺ_ W42]?9>Y{Sĵ[48ILc?&H+7]#qʙЂ#7;Wu?KkzP2o`2kM,z`֩9&"IL^7:u&P 4\aD1 5-y +PଃE>1û&4JH9.O \ [eYrc:ԤczBYA/l +eXvķ ++\v!O啣CrC|$3 kq`&y[=r=š9ݸ#@ggZ +#\pMY;UP7:n]I;9@u(}FmpdV2TҖTbAݖ\[(j:0GPqcd!*KjXbUV1O 6qmWϚUlGs0CȬӠZ!VYLXK26{UF^D/<CQX6θ+PkdZܶ~&8t+0~o?,-$h[gG!\$f=;_9{vǯdUdޭ k)n -Z}!%V_P( +^9'Jo<++4v1M=a']s3&g+;f&@paYρnQzP(O&M@߂Ѐ'B٬B PJ(J p4k28=PG Z6L\G1lzץ|C߹2X[ǞyϽe|$S6Hr! +raC,aLrӧ1<^lKOQ:bt!LdL:wcBwdNҀ=T+0M/1_eY9.Ĝe+´哏+F|GEZX`fldӖgPZ=\MU%fjbef=k-r7^M.WIj OeUBSu~-c.iU-*m&D GVuQ0elԪ%X(i_Eˑ|rv7> >e o<%0ͩ2Fv2g-KÿPUQ%Bg:հJ0u-` n]9LnFu=Qjњ\ΊA ϞVP9=Lz[BRˣն{FUjjoF*dIe7k[{mA699dBw@V`¡Ukξ3R:۪Ƕ4hJKxn:?Oi ) ڡڲ!!LoK9 rY7aT!9_xeYBxHڂ息E_P?|>U|Wճ뾨ڏ26'I89´>/N>1 +7 y?9J)8YMqH1fHR⒢X*C8%I397zcxV~G_8k6.P7A듲#tJ`!}_5+sv]'8*jkdi?žӬUQiotP($SFÊ*PIC0B\QZ%!( E㝮Ta_~hs9=toHnny8}VtH[bSL 6C}zȍ=C$LdܚbS(ZP մM󘫧`f"ٻj@]lќMW{FS`y t`ǑJIc U3)WUj!!m8/jtkRquS&:nX[]Bg)![{"A[5pgkuae3fS7EQ_$+G@:R tI&Wf(Fj\TT:RY%q[upqМu.;O6DbfzQq}ۨ+N;;v /@.ﶵhijR]4fL|bZ'{6M"YUh/,!/Xj^Awqb"JːZ_cm RkrȀy6'#oǝE"wjJ"MR&A]l,k+(6p{'!z.̚jdKC2_tW$3dT6A Fh႖4]Na#UBM<3%d5}2#5Y(![""Z5!nᓜ*_T**'-h̓lA4N˄j{ G[hn:aYtN+tNlC\) ?lȦU +Q*ڦNgCGF!nƀڎ=6H~=CqLҕzEZmJP5 +|F[UXTrE65)_ lYW 띿<)R1R*q|zW Nܪva)WCe.z`lO M6ffBo)ʈF!W}St`mͯ@j:OlR7%ͤ5u̞\f| ד@|E9LH}a|٤ݧJk n%^o`eux'Y{5Ÿ>. %wY`m$IK,f&c&u3NmXm8TmIJRĔ+ $!%T͇TL-B[x02|rN + + F:k/$Yv>~8ԩ`E_blzͲ~G~LnXU R=b!U#Hg6gn# 7t(pCj`i D31(zgMY43|׆cYT84%u2#14KMGŬ +;EטĶMSFYıǤĶ ,|\T0%6.8 7s-{d]k%*?c3sEI\V]h? p!#mIS!:7?8 J)#u*˼Q(lJwXr;Ws,B1F$,74EAIy_܂hSZaNo:ab7V y]vF7ȵ\ +m_J0o>aM%Mt2YDagv㨒Kb*mjr +Ŵ_J8#Sr +ب$UlzA^꟰9喒sj\$3|Ō%jvGֆq,@6ԜMɻxFGqP>V_"3NI6 I3 V2{b=TK1,OM% o Zdk涘4%I5roz[>gȠܰƠ+:}"p6 p517mPn#11# @ъ.LD3xP"FWƢ|D @SB0 g C8=Pq˕ڃ4 @K+t/T^LpY7/Z[0:_üB+hbcɞfH&}#RP:cXST.TcV֮+whB9/COTZ|(3륏#a=qAJTuo\UR,'rN /xEqvDTbF-kLiPl $m MML=QOw2vb@D4IȅaY$@,03!իV֭k#䀊" t[_]7s'sh|9n~~9vOO|2= wBN8 O'`ACid7;eCGF2xfޜ0N0BПp:1 @x1-ъ;qmBc a{qǷG.dL("YCŨ +STL` Ƀ,`˘3̘3Gl͘)p0gLxηENUK#>h8F&2w^XMraK?vW9P@uL´}nBX"][ЉP`l.wDzD8뭓H2 +մF^KviJWp?*]:ԼzS 8|%m.",xQ2kX:qX)Ѡ4nHfku*3pn@Xc%8YEvrg*(IJ3^VXI/4xIbTH}Eȶ°2)&bn̰eH ܬ&HdP|*MjAX3l|2|O/ơ(?&v@I 68ػV <"E)#wIxy B*Qe:)2uuflGD)BoUIKŻϫwon*i(5edײu̫44貄92 ( Hײtm^+ltsbbyo V+%^\j`2S a40[l5ZrmbdYzq91Ԃpeǟ Nhkhdj螋lpG.Ն$ M.ٺזyao5'Na-uFi +^c'd:EgM&a~mu;M m[F8XJ^Rϲڧ=yUfm)R)$b9i#9,h 9yMrB +u۵ jLӜ̚RvD<63m-ՂOEW`{.V @xLUZ!x% +kh:UE%g3FRbd9YrD+ b.w;2vF^z[Oj`\]ܔL"EyܪGnDtv燓9v +#GRd [)TH!ͩ0~!umѵQR?h:n( ٨6>գnD~Tv(K2דw`Ƣ?1MI;1|?::L:uژWnDvGrDwh 4&;](=1(;0w 0m#Gl;!b<50y` @ۣQ:dGp;0vk<Ћ#GEyƧx&/T"9&7uQxn]󦕝nxM#yhȠSC")C,VK&bzo.  + w͙ب`NVՔuV5Y)BgUEve}]F%u.t!ߔd~*15QQ7S[%#d]]ÂRm^xֈ.c:Jl-Ϫ. g$>α0q,_ӟ8=I+Ps5GAM1QN)w_zYZ2^pyTaը^l#K_>Tw.G=_k߾C>=sKd'G}]dyiUYLsLG zGBtow*pGj ڴ+2^iMA=QkerQT9nn7g9W#dlV&# ؉Phـ-Zjy[|.leV7R'5ʢR## leVv ڎ-6 8݈l 9 ,WAMh6#>V67vmsgCR\'#݌oGY*.`|e/K$N KepB9İ|!rQC$RCW4 4 $Q*Cgx)uG?YT{?y"(ѓ,)tDr_pɗ 5c슚 Z cᏩ +SƤTmɴ1 ͳٸ{.Old}3[ɳd=9+N˳ F6zB%Mb;r㲱NxQSX  QЦQNK_oQވ$/gd x+:iYc]Ffy0^Ș3~q Jw#}&hEw>kxSga)t`@%q'%w}B}R}r8~Ca"96o LB y, WM_6)S8'-_)$ _STLRWVaʟĊJJR3 )$//o02 +(`&rӋJԚ2'1TDRLySE)J#Qʞȩ/ʬ&cuT爩8%9AS3T&Hk6 \r8f)g1T@[Ml[9''i^b pEKE|1Ŀ0FڥzĿaWT|z*kMĽVh/ZvP%v\QDpO#I\tbYZь*ZA4b]-8r% +#LJ@IQ%bWKV6<rnҹJWC~K\8)A4K`8l^M|=r1%6Ws; +M)ڐSz?VgX{KG,Ce!h9ԗ&sۑbM'mZ0f9tuNՒ!k^0pҒRnnj7hE&6Kivu.O z]B߹wC2x9ͥ ]Х -Kr4xCN:DXoZ'FÛ%$Թ.}dEDXh},b5ZtLS&yhj- yJw< l&(rעIM<)" a]0ғOC!NٚvmN՚oyOq$@Ԓ 6|#t<9{xStUqm|2?&!+riz()E:^R㊤V,Rx|$?HKB/=K&/u)~%ܯ~K/L0l&0? k6,ڭ7~̘)ھ"!%T*TQj):;R1r|kOTkc5˷E~(擿ۥg+m{֝o~湜ZkV/|:&3+DW?BQli!KѧW4]kf9S|:6”uHŦ%ݭJxF'L2MǦSΧ)̌sB9Nti :s~Ƶ:D;Fp܋3<#gދ;7J GL/7{>$`Ova.:{A~q`* :cU\Pv9On2uu 7y#VLC&Q\KKYSnC%7I%?SM'Mo|9* +W8#D=WӾŎh'S~"CmM+߲Fu\A}J,+?$+j]vhA갼$&=$@Y@SfYu6y=>M `3 NT3< 8Vi|q[+r(Hn mQ a\SЭZF~V$ju=5ArhH}c./h<-.`=[Iچ̘u4O5l[ +73<2.nHK1 zD_KV(Fz&DjֱēG-|Y2ބD(_?6w"SI!od{PNo? l\(81L {áM]SL : sh$ѓd2?SO*Q.408*͑ G|85{ܧNqڍR~5ePGM -HyB y5bGdX^`x^IIMjk~`>{ `vL-h:\yysǹ9gu'M#}ˬ@#g0La0ؚoҀ/oJc8p~M{1觬%6sVcLju53lO`OzIr^#4>dq,!~H:8,uY9tlux;&+cyhj{DމzCDDa۪]y <=FJJYLL+pPnԦ{>^,NYraR.F_R5v Dzny[mƩ*`\xdv~E=NSg_xRj:G$Z%3s7]<ZqK1Ϡ4\*V`, +w!pd2|QcV8#n6?2R/48Pm 뽉!GҪ}N-}.y:zX21dϔjr ]ĹzH:*KⰋEo c՞Kj^1&i+ٳ0y:e_$c&C!)_YjWrR q8%@ujn G`l=YГځ{v5qev yZj}TA4rT=Ohb%ZP˽0DxBٻx,c_|d |1rIA@=ej! 3 KɉD;js +6|3VeA!KHl Wc?Ҙ>>?O)F! 9/AxDI;.[ ; +wa@0ƞҥca +єq<=t. +~yFuگ<ъ* +}`aBl.+$%3Ceuӯ=s,!`LBT@(  #I#dh$B)]VB5JTŎ,P 6HH[ЮՊ5z{?]/s's߿@y4go +P,)s.l1K1˲f4f8R>d>TQ J4%QU;- q] fl K3&9gZaN9CfPn(T91')+{]jݕ"VV91'EQY:(Y91ÇgQBPeX-A݋"YVU.zGY,SxR.0t꒏C1T]Jcu[+te$zV9#1m\n%(.ըmQvW8t[EPw)Gu]Y~R[xwKqFl@6[>ʻ#r+`:Ya9Ih˰hH97K϶NGYQ2+w%q^lKFv^}Qdy輴Zx˄<]n O^*eע:_TLyw90]̄^j+ K*=$< +INPk_Pe:46Da[$ֻwNyJ?wJ]5mUeJۚ Xw~7HHTt#e*'4c-1_6futI(nՁ'RR+kwƸn2xrVЧu4a :&A_ dt{=T+BuJc| ꗿw+2${5r@X +;{(P~Lu&FԔhP>s*M0]]co u:&W(,xd$,~6 (=dP䀬3֚Rݭf3qE?$.OSvGAf(~?/prY+*}LūA  +rWWP(^ [#V\lpUoq:7H:`"[,Oߨ#^NxGȫkf^AL?I#?؍&I+~~jԺPE7 sGV%䨯p-uzشb=r#ڼ*ss'фrBNLN>XT6=#E0( H<$>\>sϬ$)z*k$j%U!?=ܯͤN!t,K9^D?dӏiumbbw$3Ȓ)evԗqxa,qsMލI; CH#]X 9u u,2(vl*o+'% ՆxRe:W޺u6ݢC?CUX ,1",wOU!L_k3o SMHY$qJ |:?A|…tq%.,@nb2M;ވ0Vo;c +߀w8a0 + O)Hɚ +&cK쟀˻z@o\؇#֩2 0+ܹpW>DPLD1eq"$Qrx8Fuرe# _$2[쟘Tr,_<#?֯0_vm2 86M9ڔJ?+(cl@cmFeIЭJdV3yLefqXl6d֑ 6ꊢTcO +Z|R奇/+*Fo}Mĉ + $WfЭ6qhD(b|l…JW3[ +`P0h1L/I9rb9reǕ`:I,bUw!#Lr,xi ʂf >&IH}/J +Λzeb +?Ayg=\t<΋z8 yE;9i*bL"@G 2Sӝ!ʺcZ0L{a/cxVw<܈MY&Ͳ m +},gbms̷?)MA(*U*-E]z#IYWYZJ TOM%L\> ȸPDBrlL +x ;>qm+YPXY ݧ=kW?evULl}^}SbL${>/SX٣O%kgѩU-fF&c@п\_ GLVU2Z:jzjjn*u'eQC ~I/V;ϣ_r[_7?jԁ,޲6{ccUFݑ0"͍U5)s.3H_zBLG$ sߍ{L2li<[]3;_C*yAmNym5 Li5MwaB,?j4odtKzGHcM@Kfk[+{Y;GPʍ[;I8{3VN uu(=Er_O?xdSӁRXFn񷷶?}_? ,Ƽ]wOݍގKȑE[Yoݜ?@>QJY4{~?e#?2ڤ5ȉɆb`ɰ?IY zXKabo%hXl-G)H$R܊o^~s36-/ +v3z&R 7 TElExNh?VgnG2 +Vk:iE  ɕ4W4g) kE~D+;jf+3=5#F5E5%U +ܐJ~Cv[PO{}RJ +5 +kMi#hrY9F1;<2|FkGcw_Pg.n EӅؑ +:' +eJ 44`<Cc"<< eb"I7Zg>$Y>|OIp{X D>^u!,WY&Ab^SɈܽg.iDêkӲf3;M; ^tٹ S꒦S'IYEIsxTiFoC8=Nԥ1k" 3@7A7CF0^ +aH0{w ߪVFkeӲR䦐 :d(B3#vS@c0XxS$1]( +z{M*AR=#'SK{3yK`YZ%+k'ZfT]\qe2F7D93d!BW;гD6\Q2)Wˡ{s'i53Z:HFbd#/̲qBuvh +TƔBeB͠T9aYF9GZڣQ[3:Sоz!a"QrTĸv,|jYJ_8"љ&F\D|JYVo-F7d!g&bCYr\]Ȼg'X$kM21X7|373a.}rCp_ϕ=ؽŦ*XP9G78TqflQؠl,:1A8SHH1W-<.G=Diqxj LA_V/77l +=A_~'sߐTFOw|'wjx;dyRL7"29V.>m4ڤrlm9 Z^8j!Xi3M[T#P;U(1dO bbRcpql1$-PSGBc$pDH'z[A<Ѱފ wCP*x18ιAq%mJJ̑k>TEWw&,` +nL +an +b,nܝcEVPO aVLJG8W+Oi|bī Vqgn\1畏VZB]~}qI2uʒ.eur"׫!0Jm̝t*1^*q<[r#"ĦЫG3-f,րun%A쩵;'GDGY`5Yǩ}&~{!sls HEbA u"J\,x%aձErJNS:O&iI˶ANw=xU|FCA؎>,wKI~mU\,kWOX* M*>h~%661g;3{3[?6ۉ*К +uVXcpQS/VGnT w"Z` Sin 2QN:Q)"dI d3fՋdk~ƒ,E/tUdY9$NI1cj,SI dž?.;w7VrG-pgKEc+ܛ8b7bZŨߋ(3E ej8ܩs +{i4!, x9 ȳC<@7G,H B-O;canGn*R1 9ȨMN&li ,$[޵=~=@!C/ + DA/δLf5JFJىCJ2^pPƎ]rD7 O-Bba&y>=Ki:<9Ɔ7?آjON'N <T!dzev3WqLG26Cq26âJLccc ot>X3}ɁIscEybbC[vB,JA +6B4?jfXnHNw*`4$6Kڙ:oPU Geu|S3"Z"AD"( 289q66[ZTZI")@Ep[Z{GUՒ+y/9\=y y$0^ StIXz͠|krL(s\yw.r*G4}!zpJ<=,Dro O2}P:ʑ鴍!TSZ4UCi:M (G&s萚Yh+|Ɯ3iO>˱9I!yҩ h7!<ˡ{#sb"|a=t1㼢nƁ ;Ӹ, 6OO~Ct̋$a)#SON~aOP_,xQQHuB)^<{ǃ^ZP}[ڧ[ާ* L?١NAG:8݀ù)5ې,}gXRF J5Z--b^Z V kp3O4+)revWjC/N#Wtd)ᚂ4֫$.b) +kə3ᅨ-c2aq"jWЏ57qHʱJcѹC\ +yKաSQLMw\:Sn;<(D&@ mCLv\%bQ.:mN#ؠ5QZh}xQۣ| 3&kN.G_LV.3+.Dt&Zy\"Z)yDUv<`qd)֎Q(5DqZ9)X?9h=e5lpN A"5XU1ZPe1Pڨ;f{_Vp)]CՊBd谳ŕF s |#F +vpI뉙.lZUpˀ7ͪB-a +a [pQR;-QfaJIlxk YHޔ\:a+I$iE*IWU}1I]jɉS@% +](d^F@eɰ_*˙&K4(QX?S.B`#>O:̞TyWת-]3HrQ; +8<2 ]Yx㢫('s2c]\?dm58eHHo1W+u䒌mݩR%)cJPZjAG,z1 xLTd`pkNSeedۻЪy«A/Fc2 a]zL)3%9[VTMKˤ;Lcw# ޜ9#pL;쉗(  R F` ¯(eFf: -y.y?cI1<栥+cP3oR $f6Ed#?B<}bf2 ŃKiLkG>X@TXw2o X/Gf $g˚,?ꌢBC_$oj)%`I2T^GlXCʕXncD ̸䦀lx@ SgQ'u2j#nT LilLݭ/cLlY5Let2GTD0+a-߬eC4VZΆˣmu*bX=ayI3*8w1kD\EǓ̞Tñyle-:QTbQp܂hZr_4E x,9+wmKq=Ο j=']*:},3QLA"RYC[e+ɝ͇rǞ:IӶwTi,USC]TnOwOE +cMA{IZ7K6"=]v T"ځXhOVܸNΕ!m@ܩl`;Wkb6>"\gYV?+B\TLa$ՎrJlkwɄWĒK*[£Nb0oBGw!%G(ZV兢M<^g=ǣ_r!\<ʪVԆLa=ўgZCʘU0/oI6utuև4QvKN.SBá[;zCYaC*5z;X6}A,G]!ƪ7UtUi|"kp{icwELڭiV?*6u}fgFsK-* v8IniΞ%nͯo_ +yʜܥ-E؉JVb"xJ /(xx~e;)q4mi:~]Ҝn萧Kx7=!f@3SG9ADV^˲ͣ#_+c[bv7*_.Vp WPL A(w{M94OPy~H +M/! +sFA L. B~/#2G§Ir/ؽ KlZw8CEox(1˷c?l\B&Y +g#V9ZJ$-Y`K Vd1%v~sؓI5h ?T $<eF1kp'Ul W)@uA /bccц&˳S`KSgގ' sGT=Qdʞ?6,u:Ki4cF(n2v*}8ȯQ3;}[ p /K0Qo D?pnXik Tlj +odS2}졞^cU']ylhߍ2P :s.=)ô_=0ǯ!irx<NTʴÆhӌQ$@sĻ2DaFطXoTxdoGGxɞ +Fb(v6F<< B2$޸X2HHG?x3GCkPPPa(1:dJQ½oD;dGsPV RX +qUr-aދpmͨ,Y /ᐿԩ*rPͯZ ,n}_X/}V~ +ëG^r2RQW.0Hs$$FdƵ:S|v;E{z }>Ɵ.~ezMgi-%J 6@RS[k?gXI +D-vk{W|XY\W4U8L![ nڄ=FLc R2N+ D渔![ڀ+sB_RiH;/ Xu AR>G*3psn* +mq$'qsG#Ңe713c1;竅@"x/FΞ!hDH&xh,H O9$Ul +ܸ ܰP u324VOfOfOL@N@fOfOv?`:VQ[91e 9`Y)ӕ1gj#%E=Mz֠Z4Qu[&N 0~;OYX!rr +h yƪ'Z0_\/5|Ip~+0 +u4Fr,uh7h |JϵOQ4 ws3(EM9FRغ4W^6DwN8eP{%o[A*Ҫ'qE13?/oGӱ4:]?:)(m ۭNaօNJeu_l)Ŏ61ĀBåIZDQu/#H?=rA;@t\ODS,.4uR1}dGp/HA~/Sҩ $.8A#L:e|w$۷:!ۤk@6;}=WA%L%ŵ +1uHat݈pJ7Ù HF7H-}A@˾$ƛ/F\8}Ɏ Dh&`gmAϐ[ )&'4%Fc('<WCU,\dwPn`vQWCf?GnHBxqgqd>Þ rWQ'Bb:INfAn멯65FR{.tI|}O @)yW98 >sttq_y8xyVz@ۣ +{ǰw z} )j\}¸u<ycq q5P +?>s+0<ܪ9N/;^xzGXzXxgHerOg`ά4s!41+&0%9 +w~A5rt"p~;[u2wʱ{UߩlXΘ;one;3 0ʤ+ND4]g8a29Ûap$u vK{°kDҦ!ꄫ3E]Ufjx:B5 +śs[Cuz$D#Z'fPT(+N0)aiGL uDdL9$fCK~e?g:E,aȈ\ ǮR}5SMR$ +I}E;aHzv8^}d3`k_Pk5mVŏ-h\TM@8+8έd.1؊.*c+owuK! 颦yL%8%4$|l#%f"_cHP$chblMjM<I6 !3Qkp2=ì| +mh3X?bCD-z}2qX Rk(7 F{}vma]SC)M*1d#â9!tb30ᥠCFU?!'KeRD[P"7 T=#Aa><Ӌ.>.+Fᷕ G7m 1Y.!K2S!IYpS12Hv " K$}' smFCiɩ5>c m*uNt=`?:RjlyGУV4\KTpQȠXqt{h.Bh뼅0 +JCNNgohWCJ314Qfq6 䊖Lۺw慓ɐ'cʩu8@i%Z(#XPJYh1fG~EootbX1A~@a;\syRe{%QIgo̳bwmn`VD\P`3c"v 5 }47p[6/MNmh)i"}>[U](iZ"_WX$A}ˑfƾ& nrb{Ĥ%-ToN'ђ٠HE*׷_ 9n2z1Nί-# *7Gif ͩ$t y~¡l-OClg_j6NY{vFESW(֒#5si"YX&bFAؗi]K0PQ^ѡkE1 NSvS:,{С$,CX>)sNN=hSsG!^N D#؏ ;TW6R#po+c" N"f:5є҉ڙk kT_Pjg2MӘ8hFEl-w%-" +;X҈m|3svynCC`tx#'<&P7GM/6Se{M[0Z"?c0JH ʳDv֣340o^ȍѫV@}TpO؇zO;H>"e#TTm oQC~T29 0s~0$*\5rL/61_#p%?Acncz٪>,^M3~]7`%jj7My; +}>L#˧~^K Z<8]{{C{gҿRɍWY&BFW&D׊Pӹs +\xy!%LTbZ6fӭ~ w^fd>+Iʎg T[fNSL֖\hj,?K*u0 " a/;EQ+I6{Q[(/vSqK:ݓ6_'lĆ!!MK#/!O&oi|#p~N1o4x>)s&9`pˤvd!D;ɭ GYN@+ ؈f+O{Wd -?Gsܧ#4dU[\Pjlew^hGqRBYF0wzl%H-rȌpoMHMuH&_g+6UzܥA+dnt) :]V[MK46A& +\)Y] X\R29הbbݫ]F")`bjrgҜ/DTJGA8{_=ڂ:נwh8Z ܹ!Egsz`ycR?b>eN Nb $!Sɧ#$9iLafF<+gCf2FB@(axR"A\G"؄b0PhHIt`ܥ>M?$yYc?s3uD]iL3)?W\.+bIMbzK~|}2]Up,|9'E䰟W\eU0ޱd +'b׌SOYl+j->)[p$?M~DM~LƟ̔CE`qx #N(a`p`0:FX!!i eo3z1U҈aeWR$4BFXrJ">22AwL̰[)seŸvybR7C'aDo<vKVTVJ'+V#OX&N Mr0CdC }RNeD~Π z]0QjWèx7N@W. +pU[w}jXi:-RO5X^d ?&8nvD8?t'78U4Xk숅!2?on$CA8//|Ƒ#?1E#/=I_2ȊM!Wʬ Qd׉.% 2i}xtP0#lm@*<駪LeE?2 QeEq#luN~^I^/NyRbe uchc|&ȅ 9fUBjMy: Dkj2zec~G9$-v3kk2d +{pJz:YS)c܆N,>K/4*uX[#K_{4]ftN3F&UI`VBz>iϑ&j L2;^9J. +j<ܩ_c; X3\潌427G)tdb.\13ʐD|T}fdz*99X0>v3b`^)QTdyjjcʏڧʿz1zLIc[T,$&)4 3oYdV9V̟;O݂RNEeshc;r$4KX]xN'cŚ{THc%e|f=r X"T[yv!+W=yu]Ȯk"xChѿt5abeahC^@$*ƨ"myaEv$/lcTb]^&#[-ϱv^q)E3te@!znZ.4BEkzh|"})5L4X͸͟K_ +eA " <*Dni:Wd)s=i-n, lڟ)b"u  $cJNxkA{nL֡[oNѯpaR76 ){J4YbqIvlkd+0Am٣=Ȇ ~p* kΉ%R馱X_6D(.2 s7ן|;nRZ5[d+5QY33lϼpcwho3̌ < +/9VY]=@.LYXF$#rht[G>ގ,>4lrөL "tck(Y;Cˁ^Cia+! zKwv}L~igҞy h?,֔~GCMvgs9cCN{i% +֨ǚ8[Czv y'7 +Ꮒe%#TF5IG)sWZ;PAQ 0-TQ"FDI"]M5iGEƚ8hǴ NQ#GQQག9ԽJbb, !_'c~CQm_ڑױ*NCoQ Xx$,2F @Y%e$KZX3V,K6 nҶE>u5oRҝpD눤;\v%D;uznQ "M"gy#c%͒D3h>leHS]BԜ1Gf_^j){ћ?1AQ+@]Cݿ.`#Qʡ +cא+Zm5[bpv!\ic11]!۶i.xn#ju(&u.$;}D`REpO7fIpOO8k]XGN6ų9r-9պsһO7=9t:'9G֢ɥck N|_0Iqѐk8Ȋ.rE4[k*H TJYDa5g,]mPXjbƃz'u0yfeKU}=D#M?Ia dTjPsc[mTD@`SNDŽ|B"#-!ʼ*'lm|vj;Td?.6e6ֶʣQ;da.;jb)nE4wDmTL?шerH8x`x`fi%B?NH/K&bvW +؍Zv|ŠEgH!Jfs ʼn:%Scp̰pf;ύ%J.Tw̫RՁh++=5m DP<(9=q,vW.ksfP&Jk͑ vf] f^*S =RSJlU[yuVyEvSqiѨQI}=|Xuۚi0"?{d1א5/j"KY#q<L xSj@}]xx&d-^M<(&|gTm˼١ү.ܼp.샶SR֥ڀTFLL^X,䪇>vn0~kPeK?Ro&a/Ŷ 8RM5vD{C3NܠZ=o?8}m#WAH>T֥? U +D?k݇#-M_@skndZ)|mFܶY{^hw뾱n7+_xm7C[5nZ$~4)r3 zO$ 9mЌx\1GS?lMjPB-YOPpOkIE)^Rr w;_qTKDR^5)NpMfM8TC+jۏXfm!-;[O As9/E۩Gu&,du5rtҰ;Ảrm3{ ntL9RߋMi%zɓ>4*Q$\Dɺ\^'*]m*cftիYlt㊒ÉUaNdC'INm#ȩnD?aa~_C!÷eGo=YX&佷1t2"`m(1@B2ū:,3;%sw"%3f'$+LhQ%9+n`ao`8 L?H=Rԧ"%IJ +g}a[ OM(Vd~ ~9J(30cdB) +ɹ k U#caq]v>Y((fÊ]>`y6P􃵾"~Irm:}%cݡ)ډfhi<7L!yD e}|NWWcO` SQsu.-]2߁U/tdR|ÂaotA=@)2IEvP 60Xo BT8&aQc8gQi};.YÄmRhj.}#݆%} +sR@Fn_jRbv[c!aF!EJo(FW7@@H@@BoWPᠨsaWY'|X`n # +N)>=hHQZY&Վ.mc+Ӗ ]Ɍ̚5}l*(c^zyDCǥdx9h{G ai[׺y# +gvC]<Š5SFz.B}#uj)>bFr~*t? GWzn  Ɲn0M}>)E<C0EQQp);GkB@ݫ@<4[g6 \ܭ`dc೴F:i^^uoM<ׇIN:j1 >a{\WM@u[SdZڨ&MTD oU;g')f'#&ks5n~v:L.S9 W^6a݁{ĶuzK:J`jo`ipOemC>[/(oQC ?ICyY /~>v!75~Y.q»CNQ+³UQ n<^:.ebJ;5ғj| 9lr?>/Ԩ=ݥ(.Ҕ?m}헬;&K(`0z;̡f@^<2B_~ +Dpznxz +F^S|A)|EO_$"m`zrIB,ߎس< D\ů'#$*>#*Q~B Y0jˆ{_*{Ϣ"fq4&,+òF9f%۠P&TqX57`jZ*ӼY!뛋Xua=J!ҩF>eU2υhE\nuP N<~9ݒz5,%i&T@#^oiκjk ^xNqوuTLdZF8!sQ]%>(}dg̑_ޝ +2W9sc7vS\c,ֺ&xhʉhxW E7o|2[it />ymcVav[O5%BLx +#O'=V7޵RA@t`Ng*fvc|>`0n;6%F.K}fGu굗$;˅@Q[%K17 +Vo&;ӫݔN z6 ُٹBt +ڑ=2$GT9R [܈uФK%/L7YKfsdW]WpUW#DH.FmsښI 2Ӽ NUR6eLPdq%ٝS]5Ȱ>b:. qF43c =3Ӭ Z*qˆD-~oi \Oizq>n+<@ҹ`tLpIZ K#DHI)bˍړ=Zugl)YRa,ӾNo;qƑkplKqZM)_co pNw^Y3*OF=(|-uqCǫN/(liRH]-FP< +4#bIJwGU8*pRL+{C´*疯`P+F;(k-4U.i=ȸ +H +0 +V4~t_{>|VMK]mwj6 PF{;4 j'&jfNSDcӁlc3d/C_09kWh_1q+ӡ9Y2]ēiB%#HHsݣMY1,pNsC][`.YM-s'3v@z ⳿};nC9f[Ss-(;-SUdc[gvRQMv`ʝs I'닾 'Ʈo P#lOWg\.`C-Bi1,թ3΃C}sP Eyn ;;F[{hFJ=Wۆc\|ز{sPW g=T= +M ,̎=F]s 眜{&wⱥU`(>A\Cl:yv} PsہS6JP??~ B8PL:d9Dܐ0V`QC,hb% ]{S .4s{`;िE;y5s"Hj!C ;nb;/b# +L{͜媫);<4S +I#96,^{_*jjs / HOj v3c6j_!W.$*&FB抴 0.q0^cO>qlNjhR 0$7޿l6,q!w=G`꣆>uHuaZOnO320k%cOfǺ#kk +7F\ 'qMcuqF6eM"7X΂ƆwGzȁPq]\=A䰫1SlV0a=lDR^Na'RAX)rU«vf , +C:@W$riMހmNc1VtԷi~V.P'q8$rr|/(5$'Z"<}BT-HۀI*LYu4T;;oCCmїA&U]Ƃح_^4|s&u<9y,!z x7 hN QHe8m?t?ʽDF 'QN=RC(Ҟ4|㷲K:PM᱈19=4Z~xA^oZ8%N]U⊰#BUz߼# e-ZQ9`iZ^%煳F?+9\U=Bpv!lZZm7J 1%`*-,^PjÖ)1h!jW >fӋ wKC폡 Qn DSf !4 n…SdO <P h~ LB:{z (~ޣVw 4,n1:Mhu s(k.ZUZ:fmĉ2iDWX/G#ɄB.;F:| +,CϼBi9,,k6-/?EV*מZc'I%" 8g6kRo݈c'׋8Awj݉ +=G3E~/m+0xwdLU2/]"%&3J.7Td%A UtGnDyCrWPEc )rc]#_CaNm-ĪrVl~@dN$orH栲pmmsy'vڣvd"9.E橅&X8tnp+b؝ 3i w\>&뉢 +(_2\4y?!YR%>[#v|_:zlO7n0:*dfQ.®CTŽ?8ea$Ț[d=8gjQgt> +r]d=oL󹤴†zeL0S[cD07~`-;[$g7LE)0\# + 4Ȝ1̘SQL3ѲrL_>rO$rn=\p j +[<0tdsUt|RǜSKJP,ߝƶ1>Œu0 NAFe~N2cд_sDs'>\U-ێJORVIgɒR WI7ipi +)ӴQFA`6N8"T)$9eyЗig9M9̷F)( \V'wRl볤B@TLFfx}%uuIf9I|lcQ,)0M.k ɖT䏀nd;=r;K=.d:Jn7%(vnG6rU 'JNݲf|4snZHzU7NJ;awJ*9G}qSZ_O#WQ_ep:+0w]D\U<7}MԬ|w2TVCtzT|?X}Bƽ|$ K"M3ګ7wco CA5I3+20ur(N{CSZKoQ֛h'56T^/`XNQ:dtk.Zwd\ gӭqw~ Fxl 6le {M( C*`oq/6f}gꝏP9E/:o0b$ȦzUcdWO3Sm\2Smj$+.TZ}oÂ- +Ab TGKJsUmiIIiƢSG=nux_(GuQ+d%vj{{=:AB;W3~$#_bk~JX,O`PY))_vۭStj:"p[;.j˃wMѝ5EϽ1W|s;5h.9>fLҺO&F+ݣ{ \ytRd< +$䔔3&P]uKXSyygqήbعy!UgL孹7c#-#F@%t\{ߋ6,#0}E\al)) ;O"d! 1^voJ751*VFP R)^#fC!LA`9l?ʶ|d\(^|ĸy<2ӧ+ab=ʬ.}^],FE.B2͞+Y|CUUPK n+.w}#I=Ap멕T0KVJhr׋牾sH1|M}9I'aMi֕^@\gi5 6z"S'Gc3csyNK8GQMj>^GZ#Nv;D)cAQl?ݭ= ӓtZExp` >d +;3p@ULwI_@hQ3Θ$۵XKq~WN1K& 7#sfH(mB.`A?K# *{㳞9!|*ۉ Ty/9~ ķ\Y~ķ _1x~ϩI0j=9i>E}V]g5iQy'˫o7(oR\BCS{znjLS5߾@ERT{ pIU x0e} ῷ `PTpJ ˸" =bs1 wTkiY98sJ~3B˒*ώk8Q ӫDI/bXǜnfu$`v}hay\82Fvl^$%J {%z= 5h *p ¿=CbtbΆ %'Z2DՌ`p^C>L a7 ӡ lX^x֨!`NU'm)ZHH;?w^SA/umÑ"$;] h=DF?09lؗ'#'mBz + L7J6!Zs)h9i7ùfZ"=3=Hd(2 +"< 伋9ߥt,.HDF4Zi2;15F{ÏLx$g8A)#zQ#V0oN;ƻ x4P{ {}c{VUȪNd$wĩutEk`O M DS|Fl^5'Nk21$@i'8v.JT}ŴY@M+)X3﯉'李4i뎭HSꧥ !YHV?B| 1X7e^(0/~д;nmE3˟-%cu\ +C{'ĶwȺ04ȢLjY=S|uEtf!E25X:K.5ؼYE8L&@]ɩєpQMU𽼈TsvU'.x ƍ)vW.B X#B`z>`ٳwZHz%YZ[pr ~+mwJ4);e?Yҧkʼ}B́@7SͰp/q#xWGЎEm"|t}Dl_JCQ7[QYNGv0cya2czDF@̰Q^!Q^ؑ=b;d{ob;bd&ĕ{ +ZI4Q&rɰEVmCuA#gPC_+ȟľ8fL+q~Kvbˑlc~a y EHBH ;|Q>> 9 (}Z29H[>6}b O>cbh=" >м }x|^HK ,p$X ]HE)[T& :bF)bz38v,>ݿ6)o70H34P>]g?/Cg/^ t~t˃=?WRt!0tՃstZ+#=%nިa\(oo4:?6S,'|'0`*!'ߌ@%'l>Tz￴f`d'IQXW̴l.Nu+U +mE#{g^Mj-+ :;5A%;Thklx`m"zWǷ"Dv 񼌠pw=U -1 #3G}95 c˦58% #&Ԑi$N' F̺'\V6@Q@䡢VGQ +qۆ\FV}`HҿI$nU,YH+4 \VЍeCom"gОݻb8kOک$@ZMRUV$oswv_IA7ׇDP}.QrO.}ň]}T[6`=FX}wsN"Qj}{ C)aX_f@A}>`LKp0WMZ[8m9C[5j m!K <6[6 gJfMBY6t\:V ]{u:Н6`N 'w~r=hkA{9hR[]"^B;PܢJY +cےq^ӣ{eH{UpV! +u::)~ -72oo0daP,kmME`p+a ٵIWXfy fie \gV?N?6} ї'g|D:6mh)&xoj'Y q'pXiiꇗl]AiDȬ}{?ϻ;֝p?tB<:g T7ZnN"_}p]A茜7~z)p\mT]B + "w ~ ~,FKBt?ήJ$? 'hZa¯FWt }nU7gcv/[v qzb5xm>~77ܮ~]">qT&p++wɿ1`>_!dsfNoCnmTUrcQ{mO,y1X\M>5Ӂ) F&(܂ $jrߠ` +Tǩ\*2[}r kg-Q0,by.ssMzhpvͿr$spas(чyŏ[iҠU`!ycrȎI1mE_Ө,?Gb Ψ7>zժd=P_jI\d(?(4IK_Xs~K pEpRdʋ4I6 +~mMhq5HlJM+oX2Te {.*<׶a2)6*-ݕxꊼޘ|}Y8CuGZBA6tuxpl7:F>[v D/8iIbF aW0yRK2?:jJ$< 3 gZJ3lSŮqu`j{&h WiAYoO"|*𯗸_m>sܸ4`er3 28EݤgptB0Ԩ:9]#0|!%}މX""ݥ8%$O "ZG3rWmo.^}^a5.;d {B)寺2w^uUE{pQ8 y3az/I_뉡a+|J1Kol~6s/B|"\NT](z`u,FXbN' .u ,XEȺ[uUCϿn?>t138iNƢ -7ikKdm +O7sԲw:_x*pLxK~}{"_ײ0c5F[50#=ȷ^^mpH)@8܉ڂ+LtxV]p6p_2*Mhx6bp@PKO+I\tMPu3W0%`wB4#!ʕv y򞩖q2xoè +S!":[UdG9.T汐'739tj7a~(8:L>]I5C@k^:VCF }wčL\#NYNaG \ZFGG  9+4?WK"tDVW @0@T.u:!ǁ3y~h7$GeL :nO؉+1ZfqhdšIن(Ez"#QYΓ KJrUωL!dO + + GFG唢|(-8dtx fΔYFr)t%ۉџP89c#жa{ftc>+#:x<H__ Y["FeLvWc{qxgA(w/CN,Fms)5BmF,WI;:~'qYv|b i&4ڙsxjzi|uSWLa|1@;CңarmILYf&=J mmbLFJFIPJEն &oWV^nߖgO9yb^DSA9TAQۯpmͣP(N<n'[h\`!G=yS _^BԚ& ҕkHշJc'RDS?UTT p +3,YRߵMR祥;ljx찜LvQ.5Mn--FJ2[y;DjN=BKǰG֫.%u뤑.u[j9yds +U|7iBRB~ؑߪsu97XW5p׏ bQ IJV^rdT^4Ƕ:oTãvϸ*z>4\NK?_k7WqŝOy[N55V0*gs@DC}-w侱hz8:ψwp +V3#/3}QQXuѨ^ 3<U"< ЉZEɤ;2%jN&+2 rіh.sk͖:x0@kЮ יµaČO R3}14)V Ji^-jZup[-={9_A:jd+c%,IJ汙ŽiT3g@)}I4@,f5[ә +nw01 7Ĺd8U=*cυkbBbl!^Fn^l˕c#f:qG$Uo8 +񅟌HJ}t+J=Ets:UaqRSybP~a5IJT] I@S[ȄL.z6%kф$MBRusPaFJPܔBիÂ֨٩KĆm棐MFΡhDQ}!KKGc)DTqxբ6帏=l- S1PٿVׯi.ٽ LR5d0)P%U.z?uTik@y]V/I>C\&ץI^㵸l;AxYu +`VяX"W${`g^Vtt>bY>9#;|+,m=N֤HGRǎ}iydb^P: uzK$#sv3W~1OGy;I;o츫$OgvGO"RcmDw&4U/./2K0].&Sv9)HWm3TAbК^/Mӆ1`\@ļgO$Rǥı?XCꣿIS?wI?ԃ,w/{!D؜C2Պ uw)a>o= )r(<ℰۙqۅp^%vx R `{R-$W::*i鄶nCO3bꐢPl:kqi!ˏW)ʚ25)=dWlt0E=0 dR෋O0?ԛjǢ#W^1go2??4]ɍ;"o_&o.Uđ fKO?J\e坐XW8xw;cgr]eg^?Nκ +_̥F6"(<{;Ѥ/\> Qid*=53ʹ# ϲ3+Sh:<2 ;6rc뛦=0=UC)4$Az0LP"O`&sOpeQ;biUBnȮKsM2O|J2$[/ fmu&c ہ>LtH~ | y]|_-2g2-FT+,uj݁GMPM@2c0zCӫ VUF[{W*l M1^)ETMe/qK*df`Fi\#Ŵtdn|٬ͩ Q:1_+2<*?j%rFxRv~z\1RF4y-UndWs"ø+ɉnWevDDImנL7jVw4pdwԜë GXYp옙&)536^!39inZ^\ojkRmbތS˶9UdcG.!0+DT.EäS')GM馞qIzz5qݧ=uc5NpT}x &ύz{N-I"XV'1DH?{-!ůn1_ gg dp=@zxL c(1|#.R\5qɅTQev6 +@X-IX}ҭ7fй\ڟ4oї5U sꮉwRedC~&':䘖zoīԬC2'Wxܓ4M-y' ϳ$^:vS,7ZrsfM+r.lړg05zg1}D1(Q½qj(½O[YΈ$ 6v+pGm;A;}Ǧz_ƈ%=㼔v(ݲomg ;=O +^hUHcoCxZ +IgL>g`VHMJ[{bӇ"c.ݭȖQ. b4iq|X+7H6z9E jZٚ80HhK)7D\L{*J2k +\Pb2}Jyj)UyU1=]О0{a W 0Yݪ*j(o0'P52~/ mW; {WL?lPGx HC e$Fq\\x0Fa )}dY]Vq}zrؖr2s +LzRLV |"~ZF} ި~PΠ>"#렝1|%gec[bxS99rڠH jd=237jHÑޓZiJ=P8%?)EVQYݣ#9=$ &N`zkZozhZ +솺)6߰^rj{JF2u] 'X(_Y^wɦ ,Xk-jTp`HE#:Z/.jmqZ6JP+4IǤBiE1KtxQ]W0g~5wJ"6 !DE%bo]Iatjnplggѽ-LmBpw ];5xp=K-y7s?g ;kM\꾻-qjZٲ^H0k< )icÌC~,w\>P˶+/pa`S".+ĤEƬߊa^a Y#gGɦ_FN㥓ޖAf&Ͻ= ;Vaw~I8%CepmbWBZ3I5O7_^~Yuqdީ)!矎Nsބ,ۼ|wc+M1]0'J*Mw J#Q˛R0[5YlaRWpd;PJ8Ey:JnJ%yׅdpAQi1g#]D,\2J 1RAiZ\܈tm9@$rq"vEueL]և[IMw@1! άo&6ekg|^vVHoĹkM'=OB2z[iF6qѮ_Ѕ&{(t3SskٙۗϹFd{.@κ?k.T0ٖ%kN'1+C򟹦A+1SgG`9ηum8B^cTn2ApsfG-&h"vXhpo9DM?i weY"S!+e%QƜKwɬ=%Z4N?3Ss3ML40ר A 7@F8I;Nxj;zS4w/l9:Ю2AxWȒ}9I#|@;g lzixk?Mh|!?}B utɰ`>QrgIu>)7l̬yV Ypp瑦D֜bib+ fr>E +298Ú֫ao ƲynR8Q51ŗ6 LEh,ʄ%UC5>L%=^S®uHWw~$u&]fP[pD;/ hc/ΦA[fKvBi7Vڨv泽&VADVR9KN%irtl GEt-*ˈ?x(@a6 6Jta.^L.Ol:Oȴ2Y@HYELT b j9 LaZ[sBJÒSSK1Lk5=qzca:qF*!CBm6G{wőp84 5?M~^15· QTGP8`v`L@ ti25|;&;ekQ^FTR,<gX(?X5I%X$Au,mIC@cpc4[uqO mPF< lTAr9mUs{EWZY tA ╚`24=<^|A ^@gu\ ˍ_Amt3=kMj\Fba{kX^x2O(\RfEp.XrAt\Gu@įEY7hiڷfQsS%/r0y!hNNy}Ӧj=:-oGe'j #aZMͫwM ?4LU1_gԁLLoď(+OlT[sx͐jk}-?S:l.];A+S0},[3.][bL5Rf5W%gy^"~?SG-ŏum_c$d + L~v_婾8=̿JKKvdX[MYޔ)# +q;g!Wn^fM QURGKxku!e:vZJ>Ą`!KD#fh5;K(fN ޷:tFhJfbBE&C`_O-N<%Ɖby+B:wmi콧Ui_N1`}$X TvH4QJ?>NF!S҃|$3\7):ݚ2PmxIB}OϾ=H +lKgL0AW~9Q< +v5R~D#7zm/džެz/acg +l+l(n;Zd<#?-?Œ-26w=ͶYم8% Ipyd9xSSs<1?퀑mh4HW8Ȱ)EdH#$ŽMZ}.~]:mys;*BSLh,Pd#APF͝#p]~R(p ԓ?C^'nDZm\+!gJcj]A>EN;:h S7^A\5)%: /hg VHʼ:[JJ$Qy*YpHb֊)Q EOb:ϐLoo,R'It[wX$[Wu +XĢfu_%5jA@m_DJA-icEfdHS☨4;qp7uzd5Ũ; qqncc$e4կUx[_.~y rP ;_/vOn<]: Bo'bUfd%̓%R*؎"Kg3[yhmth|pW( =D)B'7F1e3qv e)A<^f+8j}N 4D)G/3L/Kفq`ſb:0 uDYX 5; !ޛkqhύ" 3Վ9Jz0`XYKIq4/ ")Tvu]zH}̺QgRRtO(?wᴺ;s"{1v+ 8c2ef&'!u*U//لSH?kaRZd@F*/nth/*b@R +kgW- ZY{׋(xa1\on'%5sA3/@Y#[ 3Hmdj=Q0 --YwDXys9Fw,-lV@ Ktʭ"Gx mm"~+rz0KƪĦb[dgŽL&W{h9AZIoz)|l~[ 6`^ ;`~pZ)#H̯71҆0pݦ|a!|%?8xݻ=p"0x8!prnnшPES6JNúZ:DL&SLf#)y SZ!~An5Z}7uXk1w,G/Jt[FZSg`aRnH~F\O0NojsOkSA&, Zh +Sʚya|-G +WE 2"YF&-HqoF%S{Dlqk;{ﷴ + + 0ܩ0p¯PoQ@,H@MTh#F9ta(74.Z-0t +9Ϡ_V ֱ:a9*J 𶘵&>3{6c$}cuoךXY*msrEԁưrFoc+\ +o)@ Xz}^4*2r`޺ym< oc'C1@$pl~AHj֐A!XCFaU"|H+* .q\ꪂػ zWΪ?-'7o}ҮqP + D ^)z\ ze%ZzF/.NƆKBL>6db;{v#njQDB-B#-+i@pOq_9eHnUVjx,We>X]ȇ&=@D{cXNAA,2?u2pb| ayp`rdWT8UK Azky^/ L~}jzWXm+!/>}q+nN121C:cJP` ݵ rXWhd8 5',YhY雈h3vv@8Kv tzx-FX09+#j7joln>6!ayCgRH9@)ɢUT9v +Q(ֱAKPNT#lҤ`"^<ʵ~#Ob-5Pq{VX(B{R7 c8|#*9,*eH31@ mykM,ד'vⴐQ4w zUVMwH1:P^͉HK q_r6+O*49eP&T;En~|! AB[p qH/;慀y/=D(lC1$g4๿hG:EXO[tNGSgpTѮNdYUk"}HwտIg L1C.3g¶E[xC|Ť$ԺRH%I8V$poJZ% +#2S,aѦB")oP|"`zTDEl7{ ёvPpL|r #2|=PA#{Dx tc,HWr}aRgBR0=/Q1H{3yY^H[MWad>?;ـh2=(UHWJb,r͡2s90]_'?;$0W-fjO_V BX0`jg3%fzt|]Et{7q&gBŹ]'TOQ_pX)X_@W +sf*X 5rRz}_RB7cww*yYzogR%^*hzK|]1==z$㗭&ƬRm[d.C+SSJYx@ɘ=$RSAQ"'{/yZ˩[H6EWtUlJf71 /2n󔗨+NF +Qm7prYjaɂV]o;BNGg>C<#/pU~n0WX߯L3oq[g. 61(' s_՗ʒ#2% YX[|j5Sz& &lX_uт$bIH|ߍ,!\d+ZEx^+`6JdlQj/ag^UZPkr~g&q&p#;y?Fڀ6Áj?O#(RA Iұy D}8 KM| # +K5U6$65Z߮zp xdN!:]&6P\t"'iXŚ(7~,(KuH9 qq݂a8 g-XnlsXMKVኃގܩ4-j=S),POV}w:6c\{xL/\Ȏ.Ax;UY,%#'7.xS|Z j5 Z9qQ.qefḚ\-^lmi \mLe#zۅzw[{L;~_.ՏNزMOg;]4^EE2_ÑO|GH̺ Gfh[:L##6Lh$$6h*1ѶB?p!g&5hdf(K ј]\67Ⱥ^o]#̷z|}mڍ͏?\LLƆ]=ʀ珷W8lBj^{8$ 9}n, .;/5Ǻ3!Q٣Q~o[/PQjiwo JϚm6t!Jei"_.zi@h G;`oWۯp#٨7,^! ĻFWu_h|2qUJǶ^ +ц#ED JQs2,ZF 3>XI_M }5A&U ׉9[ũ!3Vڍ;sBwScǞ0+'3[WHԗ 8 ?_ATqj]ݡZ]>˼CDB# +@?ʟ&GgFOTc+ka,P`5p!h7rk-qA,}XwuhJ&Zrж+Vx (o~pZA}4yw[XrvE@ +Oi1\(n1)MxTFThL(sDžu[eC7cMSSoځaD1 PrgO^u70 @@אϙ%Pn7fɤ4Mq8+ +r9\DQP+Kc᛫HR뀱aEHf7455sxfd ]GjY#~:`jg–@F2gb-u~4fgL|%H8t;aZR,)0f4ekIf(t1ne+p׻E-b27 +gV) F50 EU髁Tx϶ZYsk Sv˸!3KRVG~9SzqS2rɓZv%ӍmP~5JG#^-6~;̦oŕ<)UϯgI7a -ŮWGi#T7 +m%нrM:Q){eĠ1 :0Hd-_QʍoH`#J]unԳ! +y."+v^*ۿ +- >+ ri/N@% +i;I" Ij aEy3 G6 +;H΢ /* +37dv )m65qK>E~C ܕ:[dS~)ZFXFŽ/wQ'&saP) ?H XV`bHQ Ʃõ挩s ON<ٞ;F/>b7d;~KçÓryq:ɔ9F@I7Bk!-䈗oH _v15p7́J;M5{#KD|rlnAM䕯q3uĶɳn?X܉;^ QCbqdZA}Gc+cGGE'sSIJ +r(rJ-rљYQZ~h$,;P lg]seub;!.@F ߖQ==U ?wHrq5$JWh ؂l P;}CHA"߀rMA'6SM;XQv*"7^Y(#(LfgPYb0MVEٛE +E99b⫺J]gUּ@I (-2Ϗ=VJ,Jq@ݭʡ82ʬQދ*aS|R͋jJS9 N}^vhL79pGf~0g̒c.32Y[8!qH>69Xe?4 0벨Bf΃cՃH6RwjeT/@͗߫"?cXKjPR쑚Yne"Tr'aʳ$~a76v߈ZCCe[l%-N3mI?\A>t- +@z<.mV臇[M{r}jT }鳚 +y>~{>~Ot Y:"Ęcgn|l8Uo(-zBAP:J9ӡl"MQ_(k@CJ+tCxNP L@f$":VдQU'̊10&e'f®џ&G$K42&5D%vj\H܎CӇiNS iMA8 vBAYc0~˷ڌ 4l),ec":5/*TgZ/'M,I(/-UŸ7' FPo.2?bgOZyEus|`> Us I&8 +k'JWј +ּǬx#BGWe&'c>cRDFe8Ir lɍ!2'`4<-CSW6Ziu>QK8Πςq~H-{xPrGyAS7j5/WYaIHmOjtt&ybQT(mЎf́x2̐ErNT2r&i3O0PxO۱P)d[l?:|yI*n~(Fj\|5+mmoʆNZ_[Y +m$&Vl*WW^lZ@*75 |B~_pߩ --ӮIyL.шPE eo}CnnƇ'ض-هPO8$2s{g+=]2^!I;Zi꛰{~8dSu\j8^_*k*q6ScfMI"lB5@@}ĂG\Z{O>W5 iwC@mH`} &w謐 }b= 1@@P +B(pm ~EqwT?31|Սņ"9;0 +Ma/;_u[ظvXsM2^ZI9 NIK=aJ$2z~w~ \7StMH(An!"u N1 P+ u}#]S&A\"ICc%AwP$thH悆Q߆ +}'9A*aW#/F-2nm-imy%Zǝ|!ϡwCm@no,]I$z?uXӌ3pS1nպ[Wt+n~N/6kw7].+1.\ݧ\N'ݢܝ\u#l=#u vz/h*W`G墛/NFJV_pY]VΏRvZ90.Ӽmn`n`WÄID5okFčt ]`Cn?\w$QP-lҼ&rW*.*b\q qKbMJkf'C=b=Gɝq6leѳQ}b\"HsH(ԉ֫zƖt +sBq\_7s ڂޗeJX–jiM9>l-Cl/Ǎ +3k[uNKBE^cEl]zk6#Gl>X}^Qy<dsdIg NG+]qBl D8N l$w 2:qLJV,)saL@&$^P%^gv4.RyVTP&v4m,(J'q` bw +5$cwPl։f5SGP/`{T$8ZcgC>C@f𳤌h-2sQD +GPL8K^׏QB.KcKޯfLؑ2Lv)hƽS,-]l}ugAmw*\+kxZV9jQ' #J=|fw7ZwW1aEι!,#Jը.^|u1 ND,Z/#1"`cLHu w(.Jyzy )n4"MWB.=#] lu hczFXd>wܜЭK +.9Fd|=C(𰪌yvG= +>M1d,vfR84B|1׻4x}ݮp< +3gnߝ.0l>enI)ӱ =Cϖv:0+^|_P=lZ`$y[=9c"y/@dG(,QC0KDE\jOtхȤ6n+E}@AI趩!+\*檣SZ*'SVޙ7pz(pqY ꊖm_'>U~ QDTavbqVkf"xl72r^ku)اlȼxJP3V{+Tu&JeCܸPRpMiO* 4vrxQ - %@PQ*Q/•>_r_W%rBZj *蒚dP?X;b +e553 |G>Rd +]횳3:pHWn:N'>ER*TVd]=*ωP;'-X]+f KȐTQL/&פHͼ-4pCQRPGki)U)}qy##B40f{%/QoU{ζ0˲UifK =~h 8%dϊ9䢜a\/&{j_\a&FMiW 'ۑэzc|UO 3d7YrGH+2!$ HRCNJ@<1R+r4Nk9ӷr"gIg_ϔ˙w|D;7Y3v EPi8ܜ ހI@s;hw !;ptM5]öSsJy1'r'{U%,Yݦ;EJt5CqB pɑ"гp~N3cs7w㯉x= *̞$TT"+XmZA* eд^Gxfvj#cO67/8 +r~n\<MMqj4zK0UbPp 2)cL7Z>uuB ' +Kc(o`\EbJKZ|2*"e]8y^(`V^X|+XwҢWtF4s֭X󰞴wUo%KmQ`\xEY=#?Ɓo +ƿп[A"zt ÕlWl' e@WX%Q{$瀵d7/>[KlOk-D*"~5 7bzo{66||X5q(T. Z{?v\owɄMA%u;[tIjc,.`X'7sAhLzY)/)XÝeD6h^l TvAYlxZVq< ݴwbEn{9*c|(#p#HI ?PP IC?Ֆvwܰn&CC=Տ$'`$,[;n +|[cSs9_1G.H0Ԩ;'H ِoyU`F EF^SqO&}RD8p{/:^ AE t4"eQZjDɹӆAZoOXb -++9]^_|MLj՟>gvdA@ , W (N4di͕:w",7RnٰLH9 M5Ԝo >.H]'qE8h?>C8ߐ;j/cBNru0SSMLզy‡(LH:eWg[#{xcނDџe +mrr +uVA׏nHq 7;֝~` O*>LYWiFlwRJV'|E#ߗAw585S:ѐGmNrό>z8NjDOWS4B]AkC"_lJZㆅUU!1jD8(D]$ZVN$T[ /Oe5Cb"ۿ۳Ii|. +ܾa= +}NQ$B~8=p(Nw!/:ʭSI_o~%Ȇ$r7&' ^`g~)3bED ;!Cd7/ fhOq.:!Ek B)YُȘӌ!J$1.U)SH5ƐG<;CHdIʠZ> +cIlJp7Z'WNO@h 0Ɣ UL옐 bs$uޠ#.J4/ HzU VkØ6*Lǻ "Y*4R^`֍l|S!I7Z58)D lw!A=&XסZ'v#1eќx-7[ʃxo h`]z!Xk(| U3+yrRF:?Cl7෥? J!U/ +l}l1G]@m^tl2üUãt{gsvэPbpzv&t~jb-(qCqaG`S !E_\XK3o !F9ĺ}ؚ F]B,\Mgv ITH +Ͷ0Rl'5bzRy7$߱ɝ4jѶkW]Iz*|l!\,5ݪ'w"auW<}n ֚خr㤗bȌ[*~W|Ԗ7/Um@m>7`;!Yb. ib:Q}Xg1q@>4V.VE@aņ#:-pdC`sk.IޖP`Q}#PuPs[t17v$v#~OAnx2 n<6 EWSC=^/uܺF]ϊt_@BS<Z 'n )]Aޭ'օR="MnV.C0 C~T嫶hߥm}E~…q#m,©Ae!JHq?Ilg!َ_j+LpwinQSuS%/8-.ZzL}EMhq=zFq7~lb*P:^ Hos>T4uT*yex},& ?eʳo_31T(3v܈RTGРB0BUP!_uE`̄us7~=u!.# \mCq`{u5K4h4ʰPR4ZT#vЍ!3aRW׍IS m%$Fqa$% ³^`ë]Ik[!+k b(CS IHѺke׷)9c6e(zK5|2az%QVDtGxJ"V[o|YJƿ+=R3!*Ih]f}L2v]t:8 g͋i^{mrdgoNPCJ|QEAַΖ!l۞%*Lכի H>-p> :iUK6&ulTЬ2Wi|4.32!B !G3;\bC݂K̒eK֒i¾Oskm&EIoҲA}}Zez%\L]@_6|z[ +z;H>Gj9MDdQ&~&.0 [*('/Z*9 X#`$8%EqTo!x~ܸ%nӌC),"yACub ^WR>5g?b@򄏼, <( !yѧIy|r^QqݠdIU헬̺*bldNKEHV $ eBlI-Huh:Khj '<-ZZ >>0j_]ov6w-.LjBցw.-G.)[YwÍ ##BK4Q $i7#^#Tңa_R*(~Qa "dwޣ',$Ŀ8ʚiR$ +OOho{z Bԣ|o }/Ɍ$"Eʋ2r9D9wW29},ovξ\ү +i&{Hկ^oe +|ߢ#~?>xT8N-KUĻך[W?ߵrAN;tx +/mZ[(.߷Û.rjxXא[CJKL/a[(`oqZ:S՗f(H T]e[ta`+ضoa_zC˷,펕 P!l$pX5'[dxϐ A氣dleD3R;_HkXs0cly$D׬ALr 鯂dşڰ/N^{3%=MA;`)xBD?~ĘnNI̟$odޫbbɤrE-5~AnEZ^Mvߗ5/VYpQ)m)V10$<?duԝ Sm!9䮼[Sb?ECbNZγWwLۀkԤ&PA;C89oTp/C/tu*i,*YYۦvXTAZ/XcjSq'Z ZeTlBkI;gQU,wuJAvgG,ظ, SV->/j_N/60즐e]aJ?W6D$>yCeF\ r"V97X+b6!PyP?~FȄl^VgԔJ{$)S;̨v,X!ځ0Vu+ȸ]Clk]punHPK7R4|lxy" GP\13P-ׁ?8V'oӮ>uc:;RX&IZ_CiQxrcCtѹ|CrL~L*k504B?dJVNB9]AsR PZ'IJ^Nkzt o#ye +G{_wuy g!'M0>F|}o| %Pr1a Oy:wC ,l[-vHǜ^:Rhl-BT8ʖ`҉K kz$z*.E%x-o,n ^x2H#9J_+?ΎH\\EQmM *ú/7ocO9m+ ޼޼<ÁOho-6R5h`?i +g؉S%_. qLֱ"mEko|v79ht KkA:M /CDw4P?Ͽ;QA9}RtSBeget7R CJĠ~ !/!<`COʸcW[RY>Q:\RX W٬ԩbzB:z3jaY{fEN<# UY9$6 ] dps*,MHhmBS++}-%dQ'W̥ +*o2g].KDд6wOA_vtE%.IVh5qE +V:*$ lp}j!_\fap#qSWg&ۡgpWkid@9&Tb.\^.)UMfN3hU31gJ '+^6S8jF(LWqO?|wM؇fEb"ҿ@{W\N Fܾ|S\L$WH[o²VM mg#\S5Y +*CW=[ +<-/ұ)L,-Åjlz4T 8%mKpf{Wa|% FlJ>745}*cdb1fLf躴,B Żt+~隭Cb]AJKIEUUyrwQF) bI+D;T9ۯj k(5cX0~I $q7G5$@:MG2{eNt E)=n|Kߺj܆Is'3ŜuRd@  Q[2.{LѲ?%~ۗ%m{¨?9h*ܓM"_ Mx$L ?Nl"Rl8vy~-x1%V>A.JQְ(N#aDɏ$&C聴bbrꖃ >L; S5Pݪ)b:q=m>dGSDmJ~7pAN(kʌv{('ߩGnտkZ9"Nr d;sB(ki沼%#^ vc5HG|I;VwFR,\DEZ`\`dքj/` 2Ԕ7 ]VŸ.''/`?n"_7y[:f-6ayNE!wζX~CxdÈc4MJZw%mlm%Grx$ 3I.32ȶDJ,j0;[Ƶ^{!TGq~UT>:g]ԺӼ4Q4|!\ӋI+Dau`&L"שn dLS{?H <lb,v/0ᔔaO\E*߼QS#\&N|Iv{U9wM8Tiޚ#$92B7rQ#z6$8 .Xc8WNVdZ0]W)\Wqy=D ` #iEW ޼!MXL@8Q:3?ɝ"i%>;0rsVtydC|]xoY +^yw c7 R3 XI }b: zW7iz##E: ~+<О+o:Q3LcJʓtdu=jOΉUI!X2U$3.\,Qn_Ќ#[(,ck/G*Z 8ryJ!(ߧѤ%t%{[;Y&b_& V.%Ieɤb^ gF.h4)eTrےk;EB;Uv5x[Q#^W..4VRTc >f Cf,~f]A)w.h2˰1F4\Rԍ}Vf^IQe)D՚DL l[i[aΒ-0,V+Pq.o/qCGz,L9S'l<.ofz0]\Sjq\>")a F\M_<1Ux5F]'`QGИu4i pFaEu9'2\d7dW)Zd[LH;WhUfJ||~{s){4iS3_iscW;[{ #:PLκ +W"#CT2>•ba9E"TN!2ɷiQW3 SؤRԱ&-=Zǫp3x-OrѥAcV(n#mِ!QqB@'#D'wO D?_4v8.bne|Vm۽[Q4EV`a.˹ysBh3_b+I`w%2Gc?1KZaSuj8! m7 ,%־־ɴbӽ kĻM}?JsŔ^x|~{Y>CznJ/(>,o%M?k_%9+9_1_S\ mq a-]s><85+?pǚvOHjwKs2)=T0q?M}L6ҁ5k\$AnZ$_J('2Yd.U8y~B끢"ٿN7㉎3O?B/LC7,o)zӼ6@Ũ]*A|M|ʀqsMt)C{k|{Xszcu3SqYٱo# )@W&M^bPz +xStҒF ۈ]޸*"VbBh%ed,iɖl@"Uj^q]7>ݹ d֙˙f_/`⢃nǸp"Q̮DSϻޢq(||=9JLŮDٱn`(EmӼ +|P~ ]{[D)2A՛ +~O }gz_q`ڃcvKcŁ˵Rԃ);,Sސ2o΢oouIQ +Ngz[q{GڹlSHuG=ޒ_PjH%;{n]nnp3oM4{Fwn/efӇʺ/搭]6k&_SNojڃY|FRZyWHQa'>},2+US&I;G;Г8_U-X>[N|ݡJtezk9{$N!Wy?ѯ!'=% +hF֒\*]:P~TP o3vp/ w*׿lH$j~B\&q'qEk)Xt$.*'=,[-6u~F59BÒ9k WYYɡn>m5 + bXk) v51٠$V>G=Q$=ᖁLLV|WHqPb]̢ԉNU/|4|8دvd/`Đ(%i:-rPdΑVN@(ϻp3~I)Q*Qh$=>ǪX2|L Cཚ)Ĵ%c%=0~YOq4p|CF OFܹB- n=`th K(u8f)̂(TQ]zn_ՎQs-,$M )}0ĝuZ9!D޶sX~<"i(ߢ㖇''t<v>. +&rьI *}"}}qF0Gŕ-J*& b^;T+b.m2mqXa bM\9gM?>zU| ! +:iy-FmFTVІT2HU&]~| *bH(ݔHWMoDR!Nd.% 5L7*w/zYFsDkY0pTUXB1ۣ2 lK:OMFwJM`ZMWx;?@hFLPIOi95^&,bv4[}$~f[D8ilFJ6N9P2Oy?0+g0rcǺkNo8.wm̊M01x{UgZ R"rqS;ί%~BC*B@R*(V.8LxRXB2Ԥ%!{ UuU/\G:A~7%C|#PCxݘxJcH/GբXVYGNV9"TBvvHZf+5ǖZaDžԔ+WPLy(FqCżSuX0#o, nXh液wJQTXRWҫm* I91!aPsH$A(:~BցT0t.~How"b0( V#\ ̳vLLrd?dt¥lЀ_X-d6~hDIJKʼn` mX[%1AWeލxEXV?ĔS<8 o?c:gIs.C'MH<1f sX`|EQ5NO\D+5 nSĄٽ7$R2@Oq I +{EbJ=Caaﷷ + t$Jƪ#ѱؑG+`&X"Fkf%X)<^EAeiA~#jDwhިQI7]amm50!a"DnyW83H!߻jfɐTwDrH<*vox.|Ma^p*;rP,;@]4 AԄ ?v dQ \ޠE;I,%KlD87f!Re:=S}]lG;ӬbYtc:)o@W6ۧ4a +T(-XlbDh'M}q"G:ܤ/=>\I8|)_&,؊дCQjkMKY79fKG>}0 CiYxcL0HķJƩ~i`%\"j,-Q:Kh1]K7Be>"#[a5}F_nvri : 2@tRNbE(S[jbw|f9ɕQ8>;N| c3N6~]|B_d>Yo0;#}YAɃ#Y%œu)]'x<CJylĩZ6ؽ@Ll8rS<* FoySi9VVtXe 0zEV~]]WM]GT-N 񻠟u6z@aK__+X;K|xRm@lΦ@mw\Нy|+:< @mp(P~Dj5gfL}++}C1"ꇀG+#Ӄ_ $V-C|y;:\:Nϥ?ʪebt?;oTP4 >q%|f=wyogg \VD.ސs1nIooO͝ 9N@G7.]y~y"o R@ $I& c.{ +aWexwBME1CN 37Ba7pWA $aЊ󄞓G`A*AUy$y%;q_ygtgiU$<+SUqxL!fJ}27T7RL%}I= vׇ"OP t;FF⿏* (4v +z$JH~CCcGG["1Pf=FGn~]~iQ$ZV[K+Kҥa>~G[+g'cY3=+/Kql%Wn +"L(Xnܷ[qӣvl6g[@u_W$}zmt)Acw?~ +,sm}jbbnc,`nl`nwT1}5#2, +j|1(?fN>CC7~"bY*7%53$5$EJk\gw_U>Ur7W3Jwsϣؠ(~u6<.` {ha,TtL/6l )^A"?jr]^?H3?hh +vEߍpBamT~XztE+ 'V'WO%֣ƏOt/?0^?흚r~|s>6w0x2"#)En0κ_ޯWh'ۺ[9-@Vƞ.{?*Au`4AK]{DZv揔@Y۟g\{ 01Czmbkb,&;\өw ?]%(U܇߀hJϢ?H?Fd;Gm= UVd!AE=rӍPGu69O6FOLQ'l8JɘQQoTk.PwkJdYs }~ă\"XoY?/ndtY>o@oM"`+9o2"9<h0~ǎ$<ޞjNM_8&?v5zFd#dhY`e>O5x'ٳ7iͬxD|s-y` dnbhnkᔣyƃmNw CϿMX &l)"kܳC_3w<ur0jOű+jVor? +Will(Yqd]YyXd%w$}`/:u727y8ѥQΖ _o<ݹ瓀<(&GbN֏naioϞr ]sգh񇪮; + $xε;F6 On /ڸ;<Aj?1]?әGJٚ>j_F?h~^6Ezjkp¾cj6 8`?hٕF3 g{DJ{ cM#qѐ>;(_h}!FQ;yڎ)UȞp CAQ?OW`~ *W6 6g+g+oSx|AkmO>8*t'e?30ρ?hzk;xl &myat#1+ ݚHL4ppGg}/` OD[<{?F+;?fyKp%.yAS!biT@#參meʟL1s?Gw>PNЯh?[=Ggwh|= H~ZGw ++~_=>(ELv.7GF?رoV)Ӱ?㫓Q#7a;|s'chg% (}|z\ ЭzG/"; {cm XbRI$lqqmV*u z?o']fU !y +=;vWu|Q*NLSw[ԱI0'*/_>!o4GYҋ@ߊ*gEl.C0R dCO`7o86?%֓.ViPEn:={%+f3[OMP{qԡy-ZdZx|8Aw_r0s"wJ h;[LJKnV߷y-qH8~(ZLNZA8ybV+n?cNV̤ ^x )LU]P!9Ϣ?>I|˫Oԟr6x~0  MD?68>)` q:m1>ƼRs>Ϣ?hHal/y=V|kS]E"D?L"BZ~UL}w5/9߭ g k3o`ʔG>. q??ӞC~EDG@5AGFF[Vqy §VwG%mm؊(gzŽϓЀ?:IH|v &4{3뚞C~loZus=}ρ+j"qit9cy5IFj@@)o{?! nK/0HޟK%]G%|1Kq\G [uV97sY|b?GZiw\7#4sBt޽2N/Sl Pܿ¿|TKGw(U~K&cKw߯OVx}kPϙQa';2-4`1Џǂ`9G}gx |?駟?qŔIxȓ//4>{m?i.~r⫏2sa/k8V;τ?M@sS|icGLRdB,/O~p6c* &>A폇-zMغ}Q1su1&Æ\~p!?jvP{(QУhp.M̻GB7F?izK>vz掼UMBr`KȂw7V?ߒ3bt+4ObpP =c/x%hg=  dw'< 9](7:sv _;[a"N!J>DgMoB1VIyg}'@}|8EF@C~tm,/`b `isg8 (#;Xs?І=*7d9V彿b~ZVP([ٙ=|NHr1aW,GXRUPw;*FX8?!,Yp~;,eb +;];:aMb0b4!?>o6f׎?j'=[etc|# 1{zQK q޳ ]n!9}GJQj`n@2y()6?As B X{q&= pdE0;`| "~($pv,+ _wa?<1đ{=@@iG24i1m |xnQϴ b4>cxv&g5IdO qB|?>6/ڠfyw"~ă-D{k!sYأx;)97`<džG/KNB1~wxqxd#\Ars]B$4}(ҐlI?v? +S{0>%TuZ|ine|{8pn%bNwc}x$y"y-8+dq߷lwǘB E95E/i>Wiqy>"G9rʃXTQ[kGtCgǸ"2Ҩ4/ te>u5ҞuUu?R=ՄԞ<+r~;<7͟&lIYG=A +@ 6 Ϣ?Yr9@\Q0Xq"qcٚC(U\akᆠx\/?U0S `UVxsx?Em?fq\TR5} ETPc!y(;Jc.:G{ Pޗch 9ay? +f߇GgĐtUncP)[Ӈ=* D<{uǶ@>Vk:z@/s?l< ~$<}aɩxb>71wr~l#%Ïx"Yh93GNgIxQ:i%=pN]EE𸂓#sAȌt8Eq#+xk7\* {?s<}b0nۜYG_t0UcTHJ2 Rx39z=gŮG@=Hڊ1w0x6:t ?.raO Vz|X`tI*2;hR$?`Q;(]ݔ"ǔqqvqQ[4PX FXP!JQ 1 + ..F4&b;k5FM4IYޙcvڽ9s̙)%"6INR vJ$0[fwS-kEdekSJz#ebusåשSJ bV -}8^2 ;4\;;R{}\~TdI0!R(7ɣ:m:5'bߤaaERbc۹3 SX'Q&o]J2]&/Մ|ĥHzșJv.< >E疸 M,fuG^ ;&DS7Yn3#g +|Nso\hdYzn|0vCh2(qna+պ*.M=cNW,mf+D6 WP +*wP]IVr"TߍUK*)WC~pvXIG@Ehn{ؓ+(\N5DUaZޑ|Fԣ2g꓏uAU(U8A8Xcx"8LvIϯ䶘8˓PI ۔C&Ob?Jۛ[_3lS"62ӳxGj\K7k.۔]^=B e}+3y\EI7|h߶]C2萜&*Õ(c6tnC*e%{aƏ*.snx,]+w X%4!L~xeeם9E? +k-KTs65$\[k1 +}4v=ztFIv-{ -5>¯w)t-bc|%/괾wX.< c37""he5aUeš \蛬{&O~Wv'EEhnk,8)Lmo\~lnk3=d'|rO:P55K` >&5V;mʵ}Aa'8cL NJ*)LԦhXjN[`}B}>s(z87,Ѽ3]|sŅ1NoeO3w +m3|OO+W!Q⤈:LKAh5R LoW~onx>E̪ήns-|qLAwܮ| +_qY(,Io&?|\ϢiZ:ѯA΂pn$9b8Iݛ< xQ `]chXݧ(C3ukDߤ cqQ6Y uo a.+J5XEa}m*4#^o.%H)Ֆ]g[*|GKC:֦lSѿ5R5Mep|N%ЛD7>f MM$_ CB9gP{ZT> :|0%G #`q)+Y`)^Q0 4e.ߖ t)f tP]qk;dy^Ope-DgULSQt}p{BIlGX:%6a_"࿵!.Dy/>McDo-BՀC/\ޱI`Y41gTX^M% ʠX{n.Ӳ.޾WFҠJ(?abfFfg|U IWF +?HDa_O!8E1J*/ DZṕXW2TeSK3RMTٞI<6\As+ްA!4S IDFWUB%5 M>[z.﮵ķ`fHj.Zc?ěkblFwkuqkй-S:LCFe3udYv +r_>@miF&A6'3)"72z1IQ܀IшZQoR-0L)Fh#z63ae:M>PC k/VEc?Q梂9Dp-8 7>]Á@E`:vaf.S k=MSeJa' *D?Q:CIsf|3rXIy1jTy%y 4fޢ H6jo[9>">GQnԍ-/BO_$yS8^܄ǪW(焯>{(G|xcg,"Qk) q߬Y+EKRf"q',:h9s;AXʿu~Mӌzڃlgײ˘5X>Ex1FlKisl$go/u(&Z~/4Q* ̡ss>ca/!?v<9 +\hkY$3,ȗmmk|̟#Gg\;^T>ڌ'̇WxwzX*O'@|뙀; iن0e}jrGpN*xnkP `1z:[X*ѐY:-hvige@m2̐Zkcv©A#:$m-DgFs:X̋m-9HV} WWUl#) 4wBTv+f Oץ/O}oX޽VY I݊_NvD3њ +2zI %gw5'5#(wMS]9̯#qZ{ѦpM'*nE]$9{t]O&ij}rC'/Kv]? ena(ܾ"aaq)]FW#nPI&0GJ"&:mdMXq;Y^=1F` uF8i\?ƳLb"c"Y.N(V>Hl|Y5c%lK5X;+48ѲVWO{lbS[+DZt uƙMCCu[3aE n"udθ(DO+H}N#ҕZ5f`ͽw:79=zM%p7(0/K@-jʂ~~6Rg\!*E#9L +92\ƞ vWGt(k&7dV)'G'1mtsG֭a { B0֠ax,a ^;3{!Ø8cWXeH[_,ɡ[_ޱ;:zXؙ|EX`v32_/b89SEM1D 9hG'uN( +ҬWq~r zL;Zg (֣}Cy~/|@!u +ٌHJ5En> nG|RzQ:wa]d:rR*x۬POߞ_'";MPBӒ@Cp?kɍ&f^읒ힶ61+NoE(wv jPSE}C?(Upv q +SggU2:=eWQEnO +W'iTRv6M ,<|ѳ>03|Rʤf8b3rxX9+ZR{+Hչ/N"Sx#B9ή+y +6jj5l 5-2<J"GDzǮ{ؐQ%, +45vDb ؞"j,I(b]1TKT9 jw7̹3gڙb.WDg"fTAerGD۵Otw&cl?uJQ AlACű=)s-tGDhB;&Qq+cňXKϗ@ӉGd./aq,yf#_xx2k,½˂*qM5V_rHþ8x!Lf⥸d?{j(wߕ\W:og_ϫMmšWZdޞBю)O%WJYDa#>06p0rRhT1el7|xU!47˙y~;P#ϰ#Fc ~nxZӈD!/YM:rm"9\n3i=-ɯai},Nv 2z>1ǝNJ`vdj !QJS2ķFˎG2L/԰ҺƘ8BIHLX^͈tOUbh|X̬B)Ј5f1CSq8B!R? +EaLoZ1včpmh8Pߎ:ac#0VEf%#&zaئU,tC&{$gX4x?ų۬sc{hu"oRaFMp-{!S::piw Qbkiq%#gAwLJ-R%ݞCtd^#P'oY:t06!#ԚA]ԕvYỦjBuq#˚ק,f=)`vd\SYDj:1#V A2쇅!AHQ&CO2&GghS<)R4=᥼4xU䒉$efciӈ0? 5 cNMHKxui2EV4nBONMGdѡ/rs@SPLenTFdb5g)8M}~(S{?.F'Ϟ`kbatu(aF,)xъDxS{OYdÐ~:[\'.qͺ㕭P ]J66vahUrEor?rElYO{Ԛy wْQl//OHOꎺ؆æu24q~MFIL(<۶ +Lw.rf8 GrFwnfMsQvD;>1N`+&,WK~#P|f?ױl +qb}}"y[qNn5i"GB >I+A=MFa3I)sȓq@7^lNvUիd if/)lAVc 7nlf}3*d7Vst*_Sm\&\"[\ȞH%pM]b } Tz\zw*O'v`I .Put~Ď`<^MKT,9ÎR޻cѨ=m~Ӄm"k*Z"UIb8?Hzesλ F4Ò⎬ټxnj@<} +.DZb tP`Y_7`JkQ% #"Ic^eㄡWΈ_s}-fpZ-il6?Sff 粗Iዜh 8+`9 s۰s&%'_3Zaj9 gDF[%J0l,6v ,k1'f6Y]ݹFaqGXXh&qԿ7'$ًT$ .Y.9Zb ~6> n/fid^`/mHY"'Ц5=qgG6ׯ2Ѓ,>σ7IYh.cy`mPHw_=qv5t371EWig, \oy~y.,NfCqc"CK7Lr<˙P\K"2r|HkOvXt^ {ó\C~%(&'A )kaʿƚ)woAbY|,8[1fw~ݢocL,FY +TM,[r 'dz$Z%l^w G ,۹;x2]?nY U:2 >@FZ(Y +j2Y:jGIQ3lIhpstH }_y%>=[ T[R+"Υ˶u;+%gW8oCN2%^C[<$#_M @ߛ·/ǜ'lgJ]&;!3GSb1޹vdԼRtDg=)줧gd5xCk—s[o`zNFH/h*S  3̨^s +/j]\"׍)Oף[ī 9V NΔ]% 7\#FEBbw}:LjZ9"d~`9cc<OFdh ?\ 6|fpEE4y!g6"36ቌ ˧SG*qwZV{}͵{C*m6U{:!LiPxG.5@n|9onuƕ#v#Z\)W ]j^7)n҇)xᆸ1m\ɽ[k, n8ȿAC 5B?26dd~PKԋ+5m"pjre/lib/ext/jai_codec.jarUT EEUx +6%m۶m۶m۶m۶m;ǝsg"3"y2*j^{ծ\YR P㘊f(00KPz9(0Y Q%e:Qn`7)Pn2.c)Py2++7\;$aϟFW/I Ei:{`]IGr/~Bڎ$C\Hfgל/*n\Dy9&^V7GrW:7~Xf^"9w>.uO5 +[BUI{_NU q޳={Nڟz]tw,y3|kPN8`M&ƴN󫑝 -h8Y89E'-ʣ]Nacgq 362V^RuVMg8Oߪ6 -=y&@7q6¬`X(2abFr՗A3Wy%jE1c3POɷZfcPx LeBOC:JSd4ަWiyQ*VqyZS;0bA $/)6ѣskS+UlUt JzWv]Qޓ_QTX)k]nY"n}2S_dtaMQz6IHH- y!9\0]ݼɯTw%¿eBgC͵ +:7-@@[d +71*R9Bu9IxW@ 62t6NCǦ +=b޵|8Swb|fSv!$yc9 =O #mbq-rH|&FfCrZ.ۿH D_ $8M!"^FHJ\ Kb9jR7_>/|먀U]hË$<~3C{ [8k6kOAG5և`K|-;{49Z4bȿH3@| cK8R Y` ϛ6 EwX8aEvz] + DCD#9InScwႄզn!7jitBL\R*c,-fjU{.|V (Ks&)69T6:,>ƣ>jODj0-#cT۔I-a1c jWD?՝ عiADU`ִ}W &_8Z .½ibz=ڠk. +nNgɾ6wߨ Vpʢչ貖 ۓ̃q擏tCƖ)mas_V֟~l =CAWشɐ;l~&o9>]²I5~-b`Q8.%Ḧ́$$= N_;#$mtpw+3Ve"m&AN" +1TGR!yL(ݕD@F'hZpԸcɖ8U`/UW&tGm@SZ~s 99"} [ 0-}>1ZI-@^#{R'*ΡHFAak.bUÌT ub?i\ÿv [K&\00Q,~9;;byG +rDWEnMs/y`Ц=!V0̃QFq }O_NxsZp-nF'(VTn@v!a?L6G찡4=2NM?I{F%(EBH1,vOs/ Ut9#ƢNq{j +S:K}uK4 ԍ&7ϡYT^]Cs^9IPyywrX$:,$$"a$X|aa~b!!̙X9Vl kxa偘`08f?.[:u(->DZ$B<nLm胔":I+ |BݗotӼ7HD(nawFz $b݅GfL]:$K0Ϧ}6Vj$BlhPvS^΂X{vFG#|fX00:i7VʉQp+ ;]qLu`XIzB1ʶ<"TCEx0АԈa qI; ;'%"r})uSA4xYyS,&d 8&6j`{B#&BF&08ЕW_cK=rĜf (_ɼ 8f&n[c)\yH&sCE*Sgŧ7gwCn4D閷k57027]9⩤/~qP 冬xƵe/LP?X~z~:>%*zogn!& XKTr.\ܖWh_&нfv4fEghm#h91N|Rh'-nʳkiۛ"OI\6MDLyxL;,Rn/4it,kJT#YyEr=.D$-$P$'lncEo$:s;=kg|2M&Znsp9HBP>NFϞxܷWupkR;Kz *(ҮP;Q[p8 yy32ULG=|"_!i6ZʡBg@챬N&oe~"q$"'=lϾ_XؠP]" \pT`uaƔ*O*yնÆG]~68vS'a &s(tW4}:Xm`zh2A4)A44Mǂ1󋅻%^vHF Skל{Dv%<ՙUzA~40=pRΟAԷp䭽˵/}2r/WCڣ[-=}|>Ѷ5be ]p{l6G'&X?hDqCJ,vo1kʁYJjd/DUVQuy鐀@D9@(88q# + "Π. F 7Hle/M/ҋmJ]{ܮ+#ItO_>g>6~P2ض }8+R$fO^:2e1@3;(o;zF:Gkv폘t{|| OFڲ߷`{؍G2y wR(JN]@Wf+3є1uoqWek*:M{c::e.8XYJjQb+sU>SƜwջъgI{ ; nj=x`j">Ci( q߇Ŕ^V&AV[O(u,'|c* |- 7EMMhlk)[;WP'3[+aQOGx3z{QnlZ];禄ḻ5 >9;uV6nSM4ih'z<3CLJ7pEhrU):@| eT6oMvނJOg?xX(K9|;`j4؞~}3tqO">f1,X~(JPׁ[M@hsxݠ BM؃ +QۇjWA篽tnz#G?-CVxK?ꥍ9  +]A0 e`8_arlsLRx+uH%͸!Jn/EN5QoUc0ROy+r'oT*k9O/tyvɼjsZK޳_CG.1~~Ѷd`y5bfDRkHԼ) : a-_kb]Kq\ξGm.l.QU#]Y}K ip8Mѯ=.d$rP;!`u8 S)sYik36?df +s:fu>}8rǽ[}恬+v-&eGajsьIMyKdq +|N-78v^;pЕb'"Jb jԼ +\E0.)SkVv+`܍m ڋwvhv}w\#D sҮWحK--ޡT 5(WDHAIyɢ6H#kM (#9SֵpQ@Pr +I +O}IMS- @ıw19V.)ROTMgC' v#D^k$~c\uTˋ[_΁6kvo*UM/~?u`?vn쇲OFJOѐBkrxcҞD5U%B*X04N{PҰ?~_^.n,F\YIk%;a/C–dOc,[=INZz#ՉcnXyQ]p03j5kUFUQW~aM祀?>veAn†:՟SʠS( +jZnÕO:fђAcgys=uo +0 ;V0"խZBm URQQL"}MM=Ó_fy)C7܌T4;jP J+G,ZnrƤ{(S3T?oXwnK.+s}ܬ#$ZIH8͌-@UHFVBFs4d̘3 }j;E +-D35y_9x Bӧt捥Tj&4X :,*o%x?qq IG3Gڋp+(ly$?-oLZj.q;3FƱ&c }]C"Y<}⸛f;C=Kק_1xI]% _,.Ywq)SpˑȞRqw'qѤxk/1K%r\u?\d{Hg# pZ/EUI!]Z6f&B?[]y5g.BTnAAFa8)̐A(,8|3ӞnJޞsm㌭ALH8݁KźӍtYwi\iۅW.'`^Q)>w_"j qE_8 e?aiP>({Li$ S2h @@E]-;~!䥳P5x-f.Y!lKQ|4E8FtE\J-Uc§}]@Uivv2W{a,O*hR{.pil=F eT'g +x +FGLa5l2?}@|${@tHhuB:滀xPɽ-hr-t3v.#Y| I@u] 8T$27HsVHҿw[َ`/cGT/Z<]$kFUJbp{c l%8ÕSY iNjMY"E|Zy{+U-[,z}yDf ŃHMlLD.٦A>QBLRH3̹U݀^ hZk 7RbbߚO0] =#_dR%Od?6ՁN=R=2vyUEZYK^l,ffzXwKɽn +{$c{?L"5xMh>97p3{( 4z?v\K1H)6,NXx/ӨY#KK@r~;`{%B>Ѻ:mAKhC\&U 9kˋ$o?˿}[s%c9v{{aHInɽ촙*jqQ?Z㕚t`=Po.)Io!޲qIP\Cٮ+Qd]]DB)<\lw EKz2Hs)>aZk"}c$ϗ_xi,d4k2GϽB2մ?T-AI5ɤʾxJ&Mz笸vtA1`t&dnWE#yZ*=;s+ӴƆAc} +E_LsAJ$͏j1sH!4sN@t$v3W'X+㊬e3Ri4yYSċ\Ju6h3x KW&{eYSb\-:gV(|FL'i?EәxaݼM`Yɼs\66inmhy!ڶ ~̬a@[QUuUU嘶MU;A>|S\p!~D^VR&cF*kX@t՞"h<Eq(־e/kvTz'0C2p5s05woz&v]J8iV|Gg8Y?9R srƻ"̤o캱?H8q'"5yi:q8w m;\5Z qTf7m̷ m)}?{M'uArU6 +Ĵ&:."cckXW `W}H1AeH-L^ +5|ngcon}%C2\F-c ^vmK!2n#/4'ude<(@)BVgll36;mNnZ R2(]kĀm8AVX~8.KoQK+.*݈~njV5{-?ީ/n=z1.퇗7=G11vmZ67onޡ=1gzTp7_ԁرI)m8n(xgˉu|#61V7'QVgB{{T&J H!\ʎ+-@[@ +(y܁9}t՚jDԴ +; \qpEF&Pr%}T +! |DƠҶT1y&g.&*% nݯ TY5 <()n^qNoKhp(JMb' Nd CǤ"eȕTNeGv`i +@޹?˻Ck6ڳWӂ0OFu/٢i_0Op#pnŅ||Gӻ9mF4Y1$c +Hu4.mJ&Ӯei29|ɏcyBSZosjGNE[ 6c :_k%_0P9)<ȡ n)o4H#ծx*R}`b*p[zmTF +žGSgF:8~{`Gn#vC"Z7) e芽@#eRWy ydi=F3Yt>OZ7م N@+hF6i['pΎW ^.*2ïgWxNl3};ո>?> ne/ҘYkP,/1SY,Twǰy}^8ĝOvfAs\|rs@Wż3Nɼ?[qi~ 'zt(s;B }{yL Au@}F(}rI^q;`"t.ŠcFP7 sM7rYMyr&gG%kw0K^[NǮ][8qImզeM@[{SK,xuωVx-ֺ;hY~(8hTlk 60Ջp/(ԫl"M$ -W5CdgcϠyˍbLb1 >R],P)J)LSoTGꗘPJb'$!+OPU ̉YwRmu +Rt!EdؐyHh%x΋15>g8|g)J}g*?\K +vR˙8xh5ʽ.6W*~{ġ ݑBr8~ +߸jRYuzX`=io-?o,bRǛ(=4xaHoc&RJ sH0 M 3*V-\2!D7W_u(Ce2jZ8PaN cSHf˔ _Që$,Ѭjn\0\aNKq˖KĴ4i痣4A,Əis~_}jrD&GprA-&d+jU +aoY +멯]w7ᝈ/ym{ \5*p0[,}6!tV0lh"[Li]kE#6GrUPq PL2v #1wQ+;+ΩƽKn 2 Pi-&m͙V}jLÍ H#.@¼~`Ci iY-XZuH"iDEh"&]-;܆zpYL ʼnLt,0(%jno"ϙ0Ct^o2 ZG"r4VKόPYY>(?}/H>%]sL MҠ6|ttƾ# ԁJ?o grMк;\ VrOz6_江'`@(q)U(^LJA +:jhS]UlIQT +Y+؂숪TH3Ad)vz9IܦiUYm^(NwߐmyܱrR #S5ُlnTgcs-&,,Ϟ"-ˆOK>C521`" tww,9 -ӦsLou3&=_g &fqmƝqUpӖ1mnE7m| Wbz=k_ ttV0j{ H)i2&>Es_j<N?"%,uI XǀCp{ɢ&ߎ,v[ Q{cM&ZKs耟!0ZCKeo~d,3i$R18kmq" e?V!_,X* b뺠 *z2,dfiGS\[| \n.WbOm-06 3L8;N!̧!{IM tgȲ<1Do"'Zn"L![Kf(C=|w\.gpw8|/fp!Bco{ջfGЧ +*t]VYź>g f0h{jrftEڲ8 +Vs|2 FOALYd +a l +2Mgc wɸ'1)*fV]q3XSk,1 `mz +!,@ΫAhA>,hAz2LHMלT0t 0@dw"B`> 9ИhaB1LU.YG]n|lނJrfv B+W:J_]X|f/ΌHj}VM֢'J΅%Hx9o|G]|R< Zͻ@z޼{n4O +.˵PN5H~,~%!عQ1 o!q=='RG2;Sx3lJRӆ=EKcRv?যikk;6x?me]9i=]&]Y{.Hbȇ=$X0  +ndk4L_ԩwClHgb('ↄ"4F*!=u)!5 nAf 9ݓqr^0nVTr-!Z`f v Tb`02ngjI{:m">4$K"NL-0L)_$t;0D? uG%7aDU,Q,+G + * %hB0Yj+$/|0Ƀr@wYH!l&8MS(]b1gR`L3gk %Ό'JIbK<%bGb~#bCv=wf|(OsC'i٥3݀j&O +40 +M7AykC( m]qqVıO7 MSq_h7A#i +RþysCyoCm~2٬ǬSWP"Xͧ2]PFw\|=У +|`u Xds1Pg~cW~8,~BQ' +/<Q4(Q,4{3f?aiKXFg6@M\ M^Zznk;g7|@6V)۵N!*, VNR@9A@KҢm3c]f)wVk|lI3/7%>/pr;s06AuyMQKy0q_^ ztrYN&4vQ/L@4+㜏FQ@ԥ4)Fa`l)(G\FPm8՞_Oc\2ul#݅鐼\R$D|4FSdb +Z0H4ٓCB]&]VE!ua'BX+yUBƒA(E,#hh X/R" )3 +ĄƬ,F`؜D.V hH#n37xh(YhFP#YZ@'^f5^KzUIrX@gbM/s\qXd5 -!2N \c"9 "3!۔W^T<9I̹}5#orBA˔m{xi!fP;u^P|ᇒ!@KTBtadAA3h$QАto(o8 ))PgGĐlnd0|]5.4T_Ǹ9V <2;[_aT;T4cwn&mdL\%Fze,H6MNWh/Id/ +7/_y?mubUٜ3$␼KKQ }`:dwDz(a9%8EpIŵ6#V=\zC*1hBk11B9"w+X+<pvJ:t)rKqwm!-b Fqt/͂)kxw9T@Sue(jXUgW.Qx)1R!T{jFlnN]iX>5\u Z,ApEĵH ͨ[~dlyw QNvnduj0E2YK^>c0"^^/IRuS pV@mxhڱB;KJ1vI]Ki}+{6&^yy[Nƾ)ݹ5 +i}Y0#jw] #=JMt_!NMPZyF#u_=n#;'qpߔ +Qwo˅2#u4;QH(צs+r~$^]t.?=S!4k0z}.!h<*ޒDYJxDP~ok\[,a8KT(n/v9 UK L+?_8QJ . D{!/OXG"yH`XbyX!wQٮH-0kOl]8b M\4&R]GH0M1U&PlQX݇ݗTtb(ӚÙ0wjی%,mC1V.,q \~tu1f-i<+ty*FZ`3V~KB0hR"1>Ӛڹ)ɔ2lʟ_#TbÍmn60Ǭl\َJ8M0hGryᐜ_ +&s}8ZxN І\5q+`7hb9aHIH4ܵ-0=H=f=3]ø4e5xj[ S*[EcR16/'q]>S2BfwD=,<"tF-yO%}iA<b;vEY;u5We;]Gg;:c٢_CkQ!@7 8%6\H!` +l 2Oճԁ WHcsKIh,'{P2n[| ~tmv.F:-PԂOB>Ta 5֎% r`f .r ZR i =|, !h +Cȣ hs6>;['>ʩƧ冥mޏ`<8j]iRr$l5>XAD 0/J~+2 lIr䅿hƎQ=ŀ!JɸeFLcT?:qm%~[]Lc_s ^xO6%N_+wWF!3o:1GR/m*f6Id9Rn76[7_J%+c!o-3܏ŕE`~4:DпzʹݟxSIIOZ9Tq׌gean zA*YG~s`,xY~G`}N3JXoZ*5 *k 4H/L%R:ZnW&zU6b-l 9Ww2Fm^8m[%٬.X^xbP[4/ΏqUjIZQ%V,AvXTa{WgX^ҼW5e/I:_q(S"v\!mԕZ!+858ƌT呮B@]gׁyAMQVo^nd{s@.V2-@u\PQ`keUlQɶn!"#:7H08 Vvʛ -b,%ZTÔu#TkA qny\o~goժmoN)XQbVrr"Y2@w ՕFqyFgv6G?3,k9n".QEA˼f2C)xA(lqw*Lgh4'C0 Ȋ̛54 +߄ toӒ)|,kSw0O4\+/|rWxrO&A{v}N:F‪K@#aZQ>u\AJA2MT=ߌ~hZ6ɠUefJ?,__YɫϨ H2=UvNbQ]JfɵR7yT +\RX¬SԽ 8XB; ()PH cN%] j4VYgO $8hA"89h$ҨPTYǬ˥5Gc|e CN9B= wb]c88kOAFaW9:;DD^s`c~@fXfOeAeV Cf*m ]UfƲQTGY*~ =|5~@y91> /a_t =39 +yv"[i9/UI +! +1owbDFZxlaepۤӂ@b\sF{0o6{aWSXb`<`?>x"slݨ6A ̦ VPja ?a1vFQgKȩldm?hu% U {?8_܇]`FC f78hs(7^_Qew/u0RYed +~Trܒ_jؼ޲J-/K'Ipwz7G,&;F2DG~ H 7Hg#Άqy[UȎ[V'1+qz\ UJΚ eۊ2vLf.2PcgV+/)5*I]vBECɮY,VxѬ{ʉqQ~{`G%6q0T]"dh+9ZQڇ.~ fƫƘ!P!3Q$gi:1 S6GCyD.4!LN ;pȭ +Ce҂C$8dZ>5iRltY5*hGQ:v.YP_819 a8EoI{0FZH +G|ٿGۃ~Qȷ&OyCfhs nc?XFXFCZbB%O#gEgQ]ᭂ`n)Ǖa(R"i,c[" 7Dnᗙ|UiB{c,ys琻ufNWŹ醹TIzn&SA!mKIž"9 1Ob(Ғ.t#ސ|L7F̟T*߸V +XPy1x kgo#ٰoi4F(azd^,Qd=[YYMnMwjNn~dj_IFn_ɪ0?#nծ>:If_)m}b ЧHbcVn +?bc +̀Ͳ8ӶpX6HQ v/g/mw=̂4~f 3gi_ j_;ȧz7SQ;w4՞Yq~u"rԌ3~nw֦1~Puڕ]֦~(}N $Ѡ#o-0:89rKҸXǑY 2ԟ{yt8#i,A\ME΢.nX>H`ܽdJq%Nuj-z];l 'lz:E)o@q@;EWcn4ȼ2PJܑb ;/|[ +-tHc='`I<79Lv:[aQ0&-^ x&Rr+cYc + _`Q*Oep%sϬr nԕf2; 2U +(BǽRiѯ|JJ}:63L }ΐ ]=?gЕd*eEJѬ48XR?54(?s/vpRhgitviS=CY(=)@<Ӵ(T)x9`IC Mr(-F ځP* 7ԝ%趰K9Ҹ#KvLz*z^m'&NrFDUO"[I1;3]*Q-,]F#Afc9;秒x4 vi= +*H<1ਢ0kki7}t4Y̓OwxEipǃvN>>V0ƒAXv \>U ,#[* cم(]=R7í,U{=[6N֯/Ħbhg(tنژ}3wE( q1~):)$< .֞_{Jigy0 &0wD1J[<=J4$RñĨ2:{cUj9OC;Ş)[;paZNpyJRX/B;dpE%BW g\p 5qͪA%lZџ$20|&tj9@G4U[3ͲbKj@܋ùgE EɎp-WA! ؿ"rSc\Fx,5;9E;8r7V@eր+}gեa>3r-aOpFdz$S + ?ʊIW. ˱f8Tx)CCk$2OSD2 Xe)8l%u)5tHb40 '6r5/ŵ瀐63렗R%DoM{;CDZ BBq/a +&YjvЊfNOWRU^I&ә@U)4{f_h$WYa&E'GiR,{8߁uM rC1CKҔ=tO9[i[ &Ze.#{wX׀^bQt\\zvu&iڲYCH$I)!_(dP",5 +[$xP;X{l4kvᮨ3Ƿ>* += +4dؑZֻ7(>,z2(*.j~2 gt 0VMЎڬb.^6Z%&D`^KvDpoR^Y7^^g49l~K̯NT_O!VqZ9&ʼny\uK|k1].L /v@,^\Ղ~4nT Bp`mr~u&tI'BsHsJp@0Օ;#4iz#,!o)x~焕'9X7&S퇫H' +)^tTĜW \VP.">YϽwB)Y}%W=b l\9Wk,#ζ񣘡uX9 D. ;/_b$E~cJd&D4Dt(s?ITkUSm$aLrkO'xd( Lp'J0|hw?}~hOtV@z#hP3CD0`{ŝlR}AzH?\ +3~?5RsFx~M~ tӘ.bYT/\e:Nv=ZkM@sP\Ei(eLuMH-/P[hoXhtȦS}=_sہ̠ 4%Evz=vWyr*KJ\|/0mةnڼ!o[-UTRQ̋ۈ, +lvDޜvmkߖŕL> +pQT8O +M@Ruܐ"뷓Mؕr^ ;G!Wg}5S6jϰS ed{:F{0s7y +' NElރs+ #s8LCF8j.xw/RkxaʩI`:"HMv"6sƒ»bEa7$O"loB5RAS4*t}`N u^Y$ԟvZRb$3@E*X7S_ r nlٿ?SO3r֐ +yƙ33u&):ŁYh+[^5R&*cfhh48oDoTުЕ=|("k,Cc&qѵ‹RWLuQXغLn1J4n#N*豋M>NzL 9mu ٜDKa1~ƻBf5wѵ<*bҎVh*EqK9at Śe;<!L&q ,贪IO 2]kFJ I$χV?+< Mף6L3rFOp W ~ +*u- gK<1m|} u82sz-itbY8- QaWw<\o:̣nkax0$=5*8Pp};K=-\D\̀=LIP];ȗ^]_۟. ?Zaa{{/w|?:֡{^r!0C/p?ʴBId}s JƵ𮉵i"h`+H Ng͒3}'[7ڜڎ77'[#<U ,YRE裃")I֞-|iթ4]%&hAi(I , +8Ցr +Rbjß6[֑sTŝ +j16˃b:cuwE_U ݣ:zIU +1Y+Ik"cK?'ҕ\LM[gZ.;G +.Ip+O6,DJ\!8fFkͪNMY?[JT.ak 5k<_IN2L}h5V%@r "{#C%RysJCZ s~TPbS]QdӖ9Q2h(6kerRz(,ajN%Mϭ>2!Ըfg뮽KۤCiJsȬ/?ꯇy$:ERv 6*~@ؠlڔƑ 6SyO`3H+k-@+ӓ^Vj5,2p䶚0dQdda°R{Hdg{wb)!}C7=>v ߏfë6ZꍌR #V갨%>R{Q P8d0.hތ%q6 +85dze>4`yIn-IVʉ&w~50D8?"?V/\B \0!l%f +2naf\;if=/./퍶UetIyRTxJ!\(Nґc^v '9 㳁 5zj? Ydbl?u*J&f6&2q^%gU,U02*FJI@Y8tJmJ,##Xŕ}3`P&nrnqf1/08PG c,`,D2 * G@qH;{w9ZLjr7T(/6[ +컧]2 敦466 +ELan8Ō*k:/$?L4UļEJ] g]MmON2 OjBTlU V=fњl`Țx1Ԇ>qҨ8L~C +!Z'(b ea&Ҽc`=G#idƀю& bl*$u¢f7J`\[+0yz ++ +R=&Rv\ZDFQ,fO0 󋑌p a4FJrk{cUѫ=H ,}{Bס8);kr~C\7CU5vr WF \HڌR4 }o1}zțՄ=̐(c5XY(7m,w$3"rkV-"'_*SWrq-Rqv<( M<*)Tg5MOh&IjZ>||MI#DCxtQ0'1]bA2"#~ EaX>in*τb3)ȿ:V7k?U J\]6&Z ^):|H<FΪoN|g%<0>4r(A(ӌes4_#s;؟ј,5|`tTDBl5AK:uyV"1ᆀM(UCz\lz'i& M:Ph DxcfBC xLu>镧OyFvK2iݺKS-`|;L.M]8?AaofՒfl6!qHX y\sulŻ(UYH%꾧GΚswa^:A6[l͞Qȳ6 +VL-eڣ̕zSi{qXHi}CuA`yAMO iS*1h 7֧,}Ɓk`/|aCECQ ¸7 b@VZLWӗ?YR0QjU"S s-;[zX1ى~S~kBvItH9,ry9Dh ϐDer9a/1{M8B0Ac$1J`E2Q,qpbZ2lp)%4Bb )u.mHi'Xrwwʘ{@ ?|:$:Q#|ʢ]>_FBnѤjo*,*8.MMzxթ +*^ڢj vRXH9ɝs?]RAObju+geԟ#GD)&0YpUq0CZu@ 6&`dNa|P=V=H\[+s+U[[oG@M9N^{ngsyc`AMNG.XCL` + + +0JXĝp/XCXN3/xeAėފN){`v Cd0&X>g/Z﹀%o5+2ͮtA/nϭvXt\ìCU|,hx}q_ۗJhoViktK'ZM`^c䎹FmYT&߈#/m~76Vϻ5x6!$DW|VyU4-"V^/J3OMf1& +Z9 +!Dʘ wpoR/vX5Sj},PQ%5Ġ_3B+sZgں.we;}p4C-;J3%+-Hr"k$ڶ76>џ@JqɎ畈(G*R!.jlz[绯XoZ0qc~jD~X ]]*, j4T@v4N#ڟ?Y~Pn[ڙ 62QӜpx.47('PBW? ;0%t;Vg$Jͭ1ZeL^7|9gL]t 9UG]aX}CtK(U_C$%LyΉM83%ek[)f/֏ +1)֬tw:ꏩj*4`-u'e {:(d Z*s/ND9`kœ<~˪nK-iloԋv?ys aT#5ϸryCE؆\QEz8v!zZ!+wt${#oX\:Îj6`N.dWC ^hnU84Yʆz>|LWEk0 +#[b &;?K״=Ǜo'nπ 2|VޱI >tߠ.mځ/>EgdTHLj?ZSztќgi6o=zj?^ QvϠvF%SO(EUtQ6>}}yT'-Z3|e~p/ >U3.~_uk}vd+1VVŧ!=I66b^ +-2j eQ;L/VW/;|90oKf%;uEoMݏrF:qB4n¬qqBF 3 .aDϕ=ZL'Ks4~\/: u0Wfs*Fe5A7=fkNh\Ȯ.vëܓ/ N(*O^;|?:jO$Cq*N$b卡A17Yb"M#D,7L)!H!> Ɍ-"}u'HCn |Aژ?krCP H䊡-ޭGG} {!c}>k{Mc[0HXƉ8nOY\- 'OIT(W _KnHށQb$г T+@E0YF"έ*Wcsؠ'KCP8E.`J|C3GI^r g}ɓɔq| 9U[z3C@ @%GD-7U2MwV\^ʠQ!D~L@>@r3DKkH,%%^s9B3v?k)q2zϱL]X?f^bW=\$o|-\불 wcǫ+}[Y~[PKkk!bunmo;$9B8T6?G?Jx:mxG|@o$購|.r~]Jb31bW>VvHy  eem!qnI#tn8%r`hHo *H"!}[aK P$t8||ttX44i}^bhpM@9tG~QFt34)ބi~Adr]GBڔ'1}dV?%lICJm曫mBƘ_̏?4yC#—̠su)sG1%צռKصn3k{:vieƱK'Ѵya^l,0,/:/Qf._޴IQ@A,Vm*̓@VX_.t3 )izDrF C2 ?<0i-0ΐ}<`(FhFp&FPO$aVr&uGŖt +\':HjzRߴ)HD}koFJt +x=A" +AxO? GrAo|:7l!K"pqb$7 4& Ca;'$HԑQ4%\# ;LoR_ֿ9"Uv}V}VyE8F+L[ @2-iZ :Mr>a6/XU'$m*ר}z`RGKf6i8طZJܜfYGaVzm{`#gq60xUc-UX&sl$WrTfwh^Ct\阖by㯆jlVg*(D +-c,?~FS15%K0MOmmr}r&ͼ25FP6!@wǀn?b*iDgB#U +0Ձt@]C) ZFb=t!jotC *NEѯ'bzw#Ov̂J +mAz~$:l%j7mbZ{Aw0ƁG@5wO9>q}_[cFCV)&ѐW\̻(SvApMB*& + mFg|~&;xv[+$^)1S8hR;°昍2EqݤiB:ʃҜ-TZ ( +*橮q+55/{ +=#sQh<YB+}l[ ۛ$#9#nfjbLñÒ戅6鈠藭ERSDqhNSO~:y) p/ޅ!7k9jMS2P_w,V?i/1M BEDJ)-?YG]KCXgh^2?=.N14'Y-@'0-ot%eRŕ=ԛrkakG}Qg@uGck&߰JYpԘj{'dƨ|5| +f<0X"OhcRڮvD\Yؙ.8Chmgyd!yȮ.m]^`VF8tJ PiMIؑD-x2/xCH rTiRǠsHv-z݁ٴJl.n$P|c!Oi #1p> |Q\u?=VKZ5L1uV(a# c 恬;dXMZ" a"w,%0XROEj%LbԭR7ΘMgbc7 YN4f!EPiU8&;@.N0#;SScCn"'[:$'ac9K4UUP-i?T| ;9"Yq[/Q$wcX_R׺rُ7R]p[j]3_HhŠl.DU+k$鿊r\MhTnfgs2cDHA cD F +I ̂Uk-|ՇCej>H>ڶś![Z]?i 1=7N|zceFz]tދ§tNWj%i%ɧ8;=.\ǥggl%{{'o^򟿮 x_%E |qa czҏlzOb=2t*Mk;EtFlWT2rm\XG.O K'h2wSX,Gtac!J,H&rIfѬE2E$0LRVNݬ Ϻ٧.yj(!B̞O #KD:m̫8x/]$(uѮKXXXX6QtO^ q*QodBya;;̀D2OI"Yx}6z{&J!9p23V C8Qƹ4OE a KrQ6}=(Y藀qS2Tb'F֬3BahlPC]jVhK溔`$Q6qmƔ݋ۑ#\3"hW<l>PhR(PXhBH-HQ*:% 1n#K1Bj`g 7yڋ4paż +e0BU6Т`?Vʸ6JgN2%Iy&FXr;`$:wx6-&]@~&]qLS5]}.ڃN*ī- +̫҃iqǨAeu +~իYPx+tkec/¸StZ$5yFp!"\eL6MF4t95Zh[yllr_nm-K&w8B$@ Dl#FwV7$rfQǞ V~06A4 +SZ2Nj +J )YrQɐآɀ._RTB? =^tes`#d۳אiV @qH=4lKAl8yMgX=.7 "Vޚ$,NȁҰzæv [8 CE09O`@c&;7S{Fh+Ka,Rh{6YOԂS9l楟ԛ68uꌩfPa`g7r߁>3͂:n;0In; xM }v#y)M{<0`{)i"۱pY3b,ݔ&ZWpq%iL:ΗtTD3VCD*|:_1ufNuPC Tj=wxH&a`J !zđ/fQ/%'X-D2ɍ(q#CEn.Z~b&ΨU0"'e]c6Ӥ%آjd 630LGq4Jpi#kǢvuN\G"8@jOݎ +90gaOw|LmkI$&[Y$,z l\Usoz*Fw.y&{%*S%'WjPCb 4.2ljE:lbL~OA]/ij:/k8g/,~DpI-1conW[z!Ғ/c|E[LI쁤YU$̍"FvUF&$^=&Sݓo1ڧ*UL`:g6Ye<'~>L~Rt9Po QAb@閭JU*W?-1#UMC!٧{{5N4sо(IVOGqGIWaÎrۅ֑u z6&LQyX{M[JeMBԉ"[RԾ3(%HwQYd\4HKR#S"Wn.vuƷZ]U5L"s"Żr{hOuIDeLr$9吲0Kff.̘_KˢAfEMJѹ60`;NcLe ++aq؅g<Okj.AO@}%B+Rc>k#4 +>7K|za>qLlWP/)K_~?C< ^! }f+ Z56&֚ݛ ?1%;2N1ҟx:9 +`}|P%՘N(U[ytiO +Z~*5WxuG[1\;vFWz{$x~!j\# NP/]9${[햜8F͝Yufl^筠9Ihֳh؉5lK '[!s=nb`Λ ?.B̮)p` +p|Ͽσ9=e( n&8#Ј#ܴh'@-w@f?RL-YK7A|_l5FUXvtXy0BBLϹ/+BZӕdéȳ^RIGħU'D *5%ŨK blPZT{'^kav3G#.(0nGPyiyOj1\aLퟓ?A٧6!۬Xti*O9:z +t #e6ejvǗ2|Ajh[]FJc-e$Ԝ_p+=ޯ_Sb/=ö3qDj,$30E:)W)i}pr޴x%+R:ݕٓigXYstW ;T+knf,Ud5EM%}Gt'獃>o$|װj}uyfm$Wȷh>1.k~+kG gVL$SNL+#T"%(9H:?wHO:P/'*7>$/4;00 U#Kt[uSAR/ ٻ)ŭb +2y$hz@}z4+ ʭBPS`!>l{h@wM3&J=g7YLAY-?{ Tsv7~ gaR h]C{#3koM{ÇbWų~Y˃'uߦ1tx?-% !'9_vVO)22 -Z4 !l-.4+ʉ{9y>3s}p +&`?1A?1g-^C+s<3w7/~8:5AtH$H8 rAN!O-qjеy0twRȒHj65{`3g F(13@hF{sfOq وTFQoqCnX10/ưJ)d3iiZla8Q6Z  HpC[H/F'%ȳaRt$qgI91pL6O1pc!&3EG.rJ#*ce%LqP^| af)9Д>PC{Algaj1Aɔd@ϧvZ2ҁn =Q0H0@M3yYh*NݪYwW如CpR0F%10̌di CJb1 NFtSǰfH<'"ACK(= vӣUysc`Kܪe>!;v:rgYCL(fvج&c~ޫ힇 +)2[ +փbTZ;)Lu02ϋK5NQ[zOϊd(|oJ;jppoZr*:knXu䡗ZFhNX|8AlC5wEnn}D"`02qWN`'2uИ3$tTҳ 7{.m_ݼ#yԲԜbua=B FPr=WrVwUPK B?DFwe(8)§{O05؄q]v:£ʋt3<`D.꘏x 𞘖=d șy5#4$[<י +V+?oP2\8jX}ݑ9#@-n(B@.Gƣs\p+>P\g CYCJ+ +씊fQ?BZ[ts\UGs XOj(k݀H877 +%T3UW'EPͥ1 j9ẗ#B0!@#F10)P#FW s>@!P#V(.0p%m-Y= ;{ +3@-.͈>-\,wџ;i%ʯOlVImlxr'$M[JJﺣkuS\ԭC;C\40F ܨ&F!.Svt:/ FY;;l!;_7I/.^ՖR Q1aQ1$W7"}ʩr +Q[!##H,hniS=?Н oPO[][YNR>"eQ+FzE6@:VS ŚVu)ӭ4ǁ Wj0>9k;}/f+1w;f ƐX?^H΋$'ALDSHjP_4oZ`W>T7?DB`P2) C*BW)0pLtYG0Y:F#XJVĈ8rgV!#pFۣ_:S ڮ*`nã$PGu]X1RSRv>T+9y::ZOV٣u7*ʼnD,m&G:<{K[U%J K7oRvGFNM٩MuּW˼&O{0VCb|ى,!K eRQk!ǁ*hU@AHMMakd"IF(BHyZA0"13*s#KQ {aa5{KI"LtJnvw?rj,Z,7"<ұON8mzA5$RCU) ;0bN9ڥW +W޲ jymhk:g?#bL,甪,d2H;_SOԊ.vƀ@7]q:>a6+'):4Bgk$%+r w>s1R&[uѩ-V Y#mD80A KacZokڎ&}&dm\)=)=kǔo7qͯԣ7Çͯ˱}ve*ߖ O;%u!Öw^i! +(UdP=/[QHs/˦(T\! ++FO.;]AOGL:#voBipDFv6# +I(_ŰIu*zd%T\WPܽ{ݾm>^;8r}=#K)oܷ7KtUp4wtj~M<ǃ[ +.LkǩHA@T {^ +qPͅYIBT0+1[A~1Kc +#yF_S*{"/5\B Y攪Q8aDW\S{@g +4u115suPp254GVDmM:*E Bҗ +טZ,ǵ6"=w$ŴL|6Bh*.;ךalң= ᕵe + _kDyQDn},kX}A">\27G l٥RGZkwdv-[mYJ]ZI)gZ5Gi,Rϵ6z6CGDY:ӣΞM?DNYPp6WG :MK¡Ɜ-D6Dig0DmeМL Uҭo) mEn g1|!qNs,1]_mۯxL6]aste$Sh,WWE1Xx9o#yRG$5amOI.nv`c N'͢am`􆓟Vu% 5S@ض|OxyʎTuVaۭ/:g<;udhq5[5fяFq\. 8pb)=|%2ň~1C*ۥ2@yZA ctM7ZNr'd +1.} ׀O!9{(2?O( U>ͯ"";Q#1 +P:N~}"5>j--Et䌊)])_MKQI )Ru&< E,#aԺ;OX9bx$WMPLda$iV&?!<oWrn[-it.nHmh.f,Uu/+Y@ ["/vVǁFޡ*iIuko0wy]pO>ؕ0[L~8܊](:+W+b5F={ h)DN{ #]ixҬ *י'/&_j&ŏ7ۍ?Au&Esi<*h3]'r1K VKUo7;9\r,5UGT'^zne +NR[#7޺ zz>E.s-} ╔NVW_gl1ŔW7? ,} v;qL<vIt_F^L< gz"Z0SZKB]][\ݯH~[pT$yo MCs?;c]C,Fw7ez|eصDF0~}w~{im/,&4Ť&\_>_kG ?ݬj6 y!.MѫI-l|&T$A#DG +!v?,C푃Y"" LX8:a]#`亁s:3֛c-:~a2~U 世;8L.4YN&b#J6ii}+^X,ЋYtQH ~: 3q4MNaO={G.S/∡= oÈtf4!\{RB_f59g(=ߣOuJ"v4i"# ԫLuAt xA,76Ԅ:ER#?/pӆ߷j=M=lj6oJQt-p)5hE8JNZ*QU%e^5eJ6-GI:EgK*8]}%4;6L>tSl-[bd fpROl۝Nv~D1R%*8)oBL,>Ag1=,1eZ5CM@14b{?D1jgX=+$-\.Zc@ LQ#".m FOD+ GL :@0c vyM.ˎRȬ.SeafAUKڥ#LUy9Jx6 ]9vTK6eos$|nhQz:P し[Yg@_lU'Cpe/QB*ҐɅ x:Vnҽo^4N<狸qc[o3j\̩zP%{vln&*(x YCaۊ6eYLg1l 69/㹭fUc 1iH&įt#xѤأ3LCi.~qG"B9'L(s#7qy3R*Y0RX= ʃ$O}Iq/;q/Gt6C/;[`G$ +l&p\k,2is,louLj Szgߎy<5H4G3jۙ{vn0ΤVxs @@"us0-62RtyP`{, q F/Y-HߓO$D);9(.s>>l*'e3uVȋآ.B5cx .mڀn< Y=kw2~fV0m$Mh*ѦWxUS wV?%߳z޶)(=(o'LS*([krVlXE?oKl䉤; j`=  l]:z-c)CU.L?1*VAuoaFt~^vg9븳 ;*ť7T ? +lh2IDIe5mCnFXn3:Œ@յeJ9qx-V36B`xBKft^fEߠ、ru^Ogb?]zj#N<[ χ +@e,f:n[[/^zQVnCL_߷2A5Ǎf@ov}tϚ^*g.{'mgmk4jx"8WEЪ17\* yZ+}V EB(rb^Ni7e +?*jeM]=Q+G\}ЃE CҨbm]u>G|&hi'q2aAmPUWE4qВVT3"# L"pӉ7LlWq7gih2xQt\5RMpOEp&#TQug#*<άhdDepSE +C_e4cJ`B֞)dQGƺ3c}Ju&HdBbvzC٣?dLeIh(#O "^Ǹui`E ( |SCFRN]>6甒A 9/uOeP A%JˡXոCS.+堧 fLȉuS%URtOT{譬=a2>lB5FƓ"YOW5i(gT@8V$4J;!գ +n%DXTZr˦b`\.1eZ@>i*I1;0 +T0o*,PM Vc@34{+&XY.lJ +h;ùlc<[B Q?_ϠrnLWf0͌yj\tճ,FT <4\`G +^&n@9pͶ4uF%ф)!:5┿LrZÇ +u^7@!1:P2I3݌&SfNfe  MLyt%6(YK%aVwA^!>\ CX~xǏU쮔$eLd+ @q[J6"T"8pfXXa8HY k3EՒOl8eN徍pp#V)j +0,DbLHrʴʞp̯x-\<j3 ~kdHCJc xQuw(NR¶]+,hH^?WpT%^$aUE6qyUvj=|x̘TY17Rby+@)0{i>/~R_GnmWr]21[PU[ upR\/!z2ydi=|v,4?+mS] +aa |e^wr#ICLjm4g!Ļ=V2j6GPĚN`PN *Duk,<)8?߷_Hpɯxx6|p1"N;z A%V:ɟ!&JpYh}NtҊc0Ht @Rv-ʎO&KN^rvytK0l(2p'q֙ =;9[?)áqTj +z![ 3o" @\vJД{!֑ugkO lYj>5`1x(c4s;](x/Mm6g.7أTCiIh1?!BQdm|ؒ)(my#9ת|ԹUeqE^,"ybɜ*(]aKe^%hZC, Ԍx7#İCLG0!3aqZP3|Y +k"0?2n)xeVN뜶`ȷު̴JPh +T!"𯞷ܛ ;?L +_NR&?|H"1⫵wfП,[:p]HSݔ"ɱ. +;Uhz}5hl,!`/E0ۂ;3.5+uECR<~;ԑ6/>^.;VT2`l)_#M)Ux8ñ|ǖOD,q.}05xvp+kkK%xpnp0dF.5flǛ:z^:J 68d.'m&ރsy<?_gTNzkE?];K)|мdfe_>:/ddW1{ 9I_bzJ}w -ce{XCb Ki:7i-& SrZz)jXͼφо7&396dh$! ώw;[=S:Vμ#VfQđ. e]#t67{;DOʅ\Pv?xu'M'TܽIj!91+*Er%EF{n]r1kTP( BvDHբXlϒij8I[&@VY2<͢>8[ҳ8v">ŸްEfs=ݴ=|ݖ}NQW,m.Xp$4Ev=ruݗ ʠ҃ؒ(͉ՄZtwF].l~ uƈ#htC]g=b%z,R)S7{Hf!q὿v]?oL[X|N~^2o:6qO0q/+`Kssv"sLCX|iE]mlK" +Uxe8vk K<ӂvPo߅z!GhFgnj4Ths~qp\:6&r_bZxorHr]܀ +e*'#uԟC_m%n01chcGd⏶/16Px$b;CgY&'-vDc|Z>"/lzb7?,}[N݉D}?_!9l+\#H{q(._|]Sk=-}rjlo `sa&;T#ꑉXS` αh8oîOZq#W9qkj5 6na̙\]qv ~n l+y{'-6(YaK?,~Y=>feU=^Bk^ P #dۏax.fFR8 u jD[",Bۼ]E#fsGw% 7[y:KOQxYe`"-~6ij`Ҵԭ/F՘sSpxYsS/KdghB!zctWΌtdy ܕ1nSu"IaIhL]*Oi?+r.}] Q,uyxbcHGGNWbi1s¢wY5E\ךNqQLeMC9btvVc}x-,iVU$U +s#%O+RTQ4ta0۹UʌYQ\G(P  C˩)_{vY%ʬ$ٶLJqSw!#eU܇7Q{<7ĨQEuI1Lqtfgi9Xb64 ~5 я[ӒH.CגGwr 2LE Yb(ZaznoH& +T%.? bss78SP.~+9txpĮUF9p);hgCҿﳁbfECJj:$E7sVbAf+X/Hʛ؞[oƒg]n*c7E j95 r[SWx`/zR3` ܬQ%Q67D3ZC, +Qoum;zɘ &3_ tJC,)Wc(!T:`ݪZ+ \t~Qw UL7F}e09)L`_r aGe'v؊]Fdvf(b |~ԓVP1ʘ}n='+)m:Oz˓bz\ ;^I .itzh1QA걳N*([/ rw]`ZWl3Eq}62%q:4yĈ>#$AiB>áIdCYv [3d:~p SrEX_  '?Otd 4EqYX#[~Xi c UE3 Bhv_s; P8tH *Wգi#!`ԬjREWV^%0d@z>Πt7hpfHhN8y}%q uc. ]Z@{DcbfˉyXh,/J%aYQG%ѥXK3PȨIEe ':۟"e>L<~pY)pl3-$%e*K]hpҡA(MLs*M8B{{ X7Kro.r76:RLckPdʹ5R)J!ڴۂCX'gV&وuҿ[cGfuvݰłf~O}㦄3&4_ d6s`\zfH&RIR Λ:pɺ358}Sa](ec=4ι͒ \t\-5ܒT_S1[D;f,nS0ТR35݌;,p9v6D+MBjkom y`׻\橌>Mv8;6LLu;)*/|Ygj +tuFţ,_\aơ@ ZP%)$f~1*{wUPJʪBdh Lpn ;ȷ_4j +z z9Pa%UPN1{@ZTXKZҚ]΢ww{Ł>( oĜ >h(aLa b]ʣ]ʇus-W`a43p֊*ŵyl:5b{K@\CSX u=vb<"}\,ͧyUo.(3T=C q-ܣ<"f-tœz~:SҿJTo(X5DBP }`/܁G[ e('B9_&$m M߄ vult)@8d0OK+!Ie(fBp3+cUA ٭AQM^Quⅺ yr}Ӻ+vx0Bn3ɕG[)84~PcP 8 +KW:PGRRm{X\A, L v~cx`bO ֆա0e$d@4?JB !51n3 X cɈj9qظ ó +SV~>ʂG[ѰP`p3 ӳ/ xQQiȧw3Nw4jKሼKQ0õ{ճ۾\˵{֣;ƽ=~鑎}7=wӣ8oՊlU,t@kmzV^7|n!2{Ssޑ)`#6fW>>T/5<>rʣ6 /rlxoaåu0H61Jb^d n rLF ˧6(6@* HN>cI4Z(0:T)zÂ9ow+ jg=0Cl!;&N$ Ua)f|#Dǐt.uYtTJp5jz*pl↟V!68w|D!WlxxF6$]H[劜EvM|} +N6S,&N'&aR7.q&e޻;"2wD&W_wGi)\#02B"zr$DPUIS2ʼH ^_Ds}gB%8 +e&Bロ[9;vx:RH`XhB=#xБu!26ɤGQlB><> ֬*&,N**@-(4<`%""´9L%ѳBNha0b"!"ROr%8Jv6TV0ߢ_EXE.[̆u)]b$E\)VQ K%e3>a߭qF3r5զ{Ȃr(.VԍҗS" a0-H鑠)lB@V<ˎF||O}X#E(oe j9-[ =f,!~jmtSA%ޯfBvd"ĀZ⸒yb >12B v iz~n IS"׬/D)Y.㡉uy&@\k2zlI~+21CO\IԴ-dRn .NJttrGfX!ib + z1[='29B|.cSYİ2 v>B)2NT070xH AY2Bõ1o\'2U=GKf$OZŇPS]tfɪ=6q9`w 6UmB]\ɤ(+1Щ18rM ?̍Cm0pQTK|&&GoGF< _*B)djWm^5P|sw/<<W&}Cj4Y$W ߦw*\q\.qZi' +-}})7a!hxtm|E&Z_ AVXhd@EyXV!cbOA#3aY]QD8c !ؕN3)Nیrަ;Ĭ'({W0)VJyEjy dH L1Jl?\u+$$T\`⧢yM *JV=zr]˥~7^>Y=ӬsR2d}^HJ J]RNLs78i%1C:%w8VҏKbPKr($„xiߎ3£dI+WqT\?(kP)Sc۝ ^QFt b{}%#qOB=rj̭TsҜ`!27A[f.:˰.rۀѴH]%٘O![W<=1位(GfLt?3m41t7 z'N)XC/S +QPATR""ث.%+if^=b=`U/,|:om 0Hiz=βz=͂noXmx>ĤayPӊ*ɔ{#*vm._&jB={*xw+{jǺ'{FOM{T,Ӥ^xBR#"b"3p :]\­TDŠZˠ2&kPcӑPr]M6Q.&+Zվs-7EN~#R|cQ!xC@pѴ=|l2=F:t{#ttgm=Hp &,BѐGL ȼRyoz'TL + +&"%fX3}`R~"a?z̥5ta~jAӯ'gq\P0)*Jw?OX)P1I޴S6*W|K!x ĴOaT7!ZGzl/5u(T=R6 qQ1FR)h" +XjVp4شS&iP rrNgA!H:ׅzM}XYf[dYhYto7W_f[ 6jDxˌ&-sf_v_3-7I0X)MM݁Rĥq[Jb64ٶHv'в-Wdr]folLuytiy" ih͔FfT1 +O9EIAgǃ/5~p< ^m| a 6^3Q cv}_U!bibrA눹yݙ+ƻHoY>*Mrh$:~. +1+ 7f>d 3(oV\,W/j.HI7[|7bĵ8MOs7RCW]LГ"L%@0uTE@9:b +כa4MHDJ_af:l~׬Ud,M]1v r".;ݮ4C`gvW׮$OL S\{xF等u2ud#};MdxyiyoH^`lڽ2fr(3B7"y܂f xk {]>v{z"@ؙ 4|Aosy'eFz^C_O \Sb^cה95ܕJfL?jA`5HxDfP?Gϊj`N#<̙uh|2?ȓ3X\_QNM#+)e[ +Z{OYG5a\oJUr28SKӉ%Ua|1KNbVe +KjJ:|bgfR2UMÒqc Hb\&ᚁqh@c0{%}<KrRŨbPT417uN(2׈ _ґN%P :+@)r yՙ("f>#E?J(:6/&L}-p-9pD/tN+XB˕kN e]La'd mdM[z@OC Y|S)~yÊx.Yذ] Ǣ\)G<{*KWT5yFmGLNCuIB=h-Kև1D\tB%7 L!B+g!@wO\̈́*PShŋBF9dP絆X'Jذ ͕O2D;@S,Dv[Ʃ􂅢 +&.@RVuAa֩c]xi46إI0xۂlm[2Vh<]s).G3MCoQ_0h2e`hqum݊Ε//F1=ZVa{do"KZ?8IZO-K <#lT1xUraI$,=O#+9GgBP+7j}Ja{)oʯ&|!yK~0=rUz[jt!vjy"`K&`ӛ?Kkv %\J`CȺ=4ra[5rݦ/mScyYb;G˔r+MtO#f&p] 1BbA +AH0zwIaG)zdq8Xq.s.|CIx 8yXNtXwSI'w82?|G$C,uD6ud># (نr>C)=㸇 {wǺ{g}Ň{Ę2&7}0HVHv$iBL7"I#?HuE<=-AmHOQ@]*8VU/Ա/vo\AcDn"p&vq}|:D;Ca=JDH|lYdYDEX!GVGGzKd|ʩG6g^)1EPsyUq[ϕzLGsAx VJAoYp^KB~28zCj렑#GV~2JfO!n6D!؝ ⴯+`^+Ntg(޸3)IG9&9ޅOmO g =2_Z"AO6 qЏ֡Q0<(c{c;ڻw;~t:(|) )vOE95o# _ٌ7挚 ;& +KIi4& ;ITsQ5Z=؏oi}3>l'}b>'5!`>X=w$<={>o[5_"öѶЏo8CC}_6C>GHZ# oڳÏo>'(я*w.?GVὁoۓ#@o?i#&>ÿmO(1'|M&4(*,U]F*n )%d,mĄ!)ٸMiHƔIIJYT))Q`@r4L/"kgLZvɷT&ecnHr3AB3atYd$sjۖd\! + ?zX[-C/*k 1gٿf\A:ly: +Ydf*eB[)@U+a? s\A7M;({ď{aYӷ>g\N/_cr8$0«ܶ5&"(0Ԙ⼊PxL):'[6.R j8u[il&2T(nݙ;(.ҖJ[|$ Ņ 1Շ $%'D&e0Re'3Au5vxR'iHOFR43a~ #d7k%̍h\k3D`$wDOr֠Nhv!ӦD<6=wzi,PCxfyۢ +b;|s)]'v`Ja_0Q `W8o[(<% i=5LcUg?* +bњe"*oE}X&ԇmEaueNUwǔ>ڢhl9c=ׁ8/᱂#1J:jG1$Qe}Xψ֯ыż#۞ < O @c)k _PkĪ4&?4c,|N4!XCE\p8o]il{d#[Yd]n841zD`10 iPHUe; e{$[O\ꋺˊK~-D[؞?57\$m'>d )Zu*,lfw:+$O!A?,8)HXllo9ٟ%7kv?s"Hwe_A3^4`aP}-23x谘RAJx``ӀNlXg 4lB-V z d$,bmz$ 2i#ﱑ!d״mLGRmzX&y%x&zDV R=VPG`(%,C@{?~-G`)\vsK+[+<n~ +i;H0,YltkȰL,zl(5f6}TvS ++ eez!}{_shhPM?(xzҺhVV@&g &,2-#ƖE8Ӱ& 5aLB16T4*/z( ի(N^5.5,kS*<(&M4ew3B +O ͩ!:DLp*OA˷*/-+LQkM㭬kA4YHD +p*$G<QAƪض48n}pĘbyI΋{]u +~ +ư'/Ah(stŜ[1WT :wӐm2Pe2цh,/U(hn:~аH {ꖇ[w2桙zz8f8>h'bg92ѾEp\)?WVF-[n mY;OF;P^QdɾgHlhHU"fDKAvP;΋Fdc\F}iU.t]ueMa{;>h `.8v5fzj%# J6Ʌ7"Y,buWe g=i.mzlw̡)q^}nCm. ]uOSTW9*F)CVTfTEt >=韦\6vuOvV;ep2'aNƯYD,"O6\W]aTlQt ? O2K-chWxU\FNj7{zVR1{"_*/;?Y*dh:z~TEiF!'mH|{eg1ba2 Miަ9'޶3:g>Vc$al)ظb"RFnfeJ֡ۻRg~zW1-h6< kG5tRUYSqjeƤ=Y]WcRE%O̧#Ypux4-#$XKf`(*+zK`TCZӚTAioD4dA|KN!v.+sV +3ЋWL;U+ 缊yٸśu5y&Xp!z=&T(U֧*q1FZg+rxp_;4bk3-5s3*Y)/WF۶rljv mh,[jH|O5.U~rG95{qn$`厅wZri'/j1d#AegOc*f|}Y1nCQiaہvhy!_Ԯ @[kdc dfm@h)׃`[u; òy؆z+tg98xSx掶cz 98dK%)vs`+C1'j9#u3Mq4 UŕwSQ-ا9C +%,_2+=ϷCFE& ~ +FJ#SND*O#(9G1QrS ++3/zP+k~4CFeF>rt"TOt'kPb$/e28dʊ{jithp]jٶQ|qomjiWBWqnfWozl{ rF^ rEzVpO[(;{^z`ޮzIqO4ݮ[.ًz!Ćr?Doc^79>5b5%S˸mroPB?-up轸-uo1K2vHG=/*-=(/^=pj B@o~&qYX{vkZMd34;EutYau؀!wNϹY<^ :@ǡ{]0 +7$:N;!O{_kěk*@ Đ;T^6Dὡ'he@{PW +^&70l|DEM("tETQG3tM&Rp3C䌬YQOG@`ɘW֧,⍈3iKXjتX8Zۥ~kNAf/}H?S}[\z/gn0*1c ݅jC[m`Z +r[mCUBG-`qH҄dVU ?DE"x쑅/(WhymwoT_7sm="_j I~{0>=S#A9`82V~U]JtV}Ƕscly>0yO2w %ݦ^3&/!)eD6>lif۬ySN[j%BI0rD>&;};qhTIa/~6|_T\{ΐR0;Ŵ61#sflyE+[+P+pYgݚyHGj"_l|9/Vw3L8pP nCy"zRwukB.,`1[9iX2m f~K0BLv|04"ر-l +UX&5hR͡`Ha$ww;){;t흦[zn!N>#og΢=Y[;M{]R;>Mk"ԮTy{쯏2|^1;9^Y; ,aNf8GGPy8TEVRyʼ|oL> s"9Ԓ8 +:ӏshm3Q9_J==ox_Սc{*/9rnmݔͦvΫvPsH. Av!]-XJkb͒AS t@TVdPcI~НB` +y:qf Rsxe)P@y ~=_Zyď.k +;re1пn[# Cz^3O^hݍ&5`[:C75whSm7" 1us< uM7@M+pz- 6@];MaY.wkE`-싐=o5*MOزOئ/2a& \C[wcjJFI] ]4{ˠm' + .%ŋ8掝ya0Ğ T5 %cф 4 +rRH+C( $e*zy|}a1X,O&:!,.W>pkΊhQ6؃ib\ch2Hj |cl!ז:gɨ9yw-^[1nݫvu-zp>t }J r.LkMH)pM[Qv)RG)aNy]~l=Sos u%#=qxw),^~pwΨ)>̛TȌjG=:OG+ǂG7wGc٪x$tTA-3Jw7~zٔ19ēu{ڿ4yG^*cAupQ,Mk& D z2 +HRwLbXt"?QSxEOy0.UyEy1*@|вS0̹YE,XyqiPAQrIV`~2IЀUmnVljO<zoڋ'bg.c8Bh/Cwtm 9z^f/ φ=hԑ<|sZ <NGBA獓"-o-[;@zuԢCBפa,9QjMjnyryVutKi +C{yaYG=1+^/~@#C$n♽T噚7Xh^n6?/;[Tے=]=Hh=_;O ^O|O% gH2ȟ)slɼ#@4uO, 겻ܥy>TCۃ`l;Dn}ބp?4^oE'BP=Taoy3B>t⨀?` + Pp̺ rN€9P( +I䥪 +: SD[s[C^[dsX\sv:]҅C B!%H MiC8’Hn9Jahš2CX0a \5ړ:5հC:14a:AjDpaa:,R\TSwʘH̻ray!RpBv :&7jjjfaLfjfa+tBvk/b>LC]BM@kuqg~mAD1 + Wj- +-,M3e?]8?[ut0yRl0m3oCf%vqɹDIΠSɷ{qfw?4eu4JmG}^/k +'t{O5ۭAYl3r"Fsv G aJEN+B]1Vx>+#$Œ $%* ۑ$$f[|{c/n߇qPp0ţYrC쩞'*apH+~+1M)Q,.ڟ.W y:pP@|FU:;0 ) +st” ~W tcWC5#+?hhg;Ni_hqXosFwr V '$p~~6w6't+sHFE+(/}"li}F<čU-i +F1* (&[.auTQde=vnQo)ccbwf㫮$]^i#әoV!1Hjq1:!46I Ԍ_v0Lm =3y3)7%SX}lېݔ";:;:Qhf6q&ՇHې 䮖0B}YіUfB;5.qLb !S}-}ȅO3wRrv41/Ť@;!f%>R?RPij@  $+Ƨj]n$^Δc89,,(ً*O>fk^;v~qz}"%]0QKXeHYZ@Aj< w 49"'OTwYDpDbfG;rgSefԡOpkvdݸ} lS972 =S[ɓN6 m]ޔIa=fH)JUj*2NU%%b4L 6!2<15NJ*'KI4Rӓ!nL=V;<б]{*3#Y:?ۑ>8 ,Y:SNa2 8F([!-g%,c} S$2d9XrRX~BJZhL550F>a1CYf=q9vl0Xq|pJM&9u_Y{)d0S֔Zm5Ѩ@fÁ2 wm4]{v+`YQi# :̀é; +K&)E|1[>{KT34/;x@{ă{w*tUDۙp{TV+8V=|6+vpJO.en9^GR5j¶U"čۅ%GA!SNdMB<6MS\V5|oXђ 8W4<\1F7~1Hc={=T8H*3,+Ou۷0O?=6BL R}(_ TfU%y-lcm%VG$0N[z庶`ŕwj `F}%7#=@=ߑL#=p]MEJo4l'/n):I{m>.Ωwy=}/_ ;Do.k`37*|]=X֏7z1 &ۧ >#3oz֯(՜Ik:u!՘ha"HTO/1O6fQ2Kmw.4~ f009P +ـ~080J4 =1Uɾˁ_ CXs P  dmכ` )HTi1V%ZД겝Z/USԮXyvՑHipjD%a6@q='VJ dUh7W Edm!z2X+dF;j#G"j6 +Z4_Pyμ juv|t?o2I\qlT#XNlXcr*)~.kI陨Y}5.)dm簄.-W ƈEB KO@[33%"1 +)! +A_ǷҚEr)MJe+١=j*ovAi25񤸅B:|ҥjS[ qTF7.JlEMƢjL4CёoTQIOWiw;)/.y/Kv8!]ck^ Nh@l='HM !:iOs!>}A#./A(Lvn!W>2QQ,t]K:26Z= );%A,>SV湕;]xIM. z=(HhƬ{x`(zLfZdm!f?w)!3Z$9kfT.n"mB,^wbI$(؞@T_XKwYC%3csFGF.]q<Hs ^O@\Ws}ó`Atyy\$:|Ek6]':W +*{JR`Ej410ojGJHT,r h1fkH#m0)s-,g ;U-̋bjzDZt}ֶ^v(%M^/*DY0 s>I]U/ +4E^qr| +:#JTSSPibvAT5`w$ԭf3k_ṖqV5]eu +f6UJ>I՟m|9vBpg/CK51ax4FHElH``RֶN9M`̩X# L̖" {(ҫzeFǕ̝(e[K) \DQF&k7Jǡ APIUhMiגsroeR;' +M; pnYJ1loO̓H]9Nl0T':H | !4Qq1IudzsXXnq/ 2ś FV+m3 VnN^=Z֢iڥL :5Cy4hDAAmIsvnry6┖rNL>97*'LAM79Iʰ~V%wq}蕄wPg6vSbTuػMsh0'C"2.on_33€摣DP3)xwɎW]Bc3,'R(k/fBุ?dR350bϗTߟM u0Vv2Vc]089Lshx)VG +lʲ/'CpvT2z(M%?luxuq7VrΌÕ`Ք%]G^ոrǹ/_C<{"w?@o;} PhXaZ/4~l"x[.ށuxʙ- y:_[<,4Pz{f.w&%zӺ-VA+.o)h*Ys 9Q6Mvf2_ ղT RkSō1($䪙k1INZ\I:ffª,_/X +5!pnk|\:PDN_HuR>c>ΟQڏ'=8愌TBX)V+inPDs*+vQorjyInL)T%%[)_PB(y +CU 蠹 OeTԜh)cTAR԰Ь 'FK~Ku"pEM~MY,iK!_4\3McMɜ7[9UNaYٞYuﰝ2'~C)&!oSKiKg5UANB\|%dQJsp"R*MBhs6Y:k BCAa@uc+o _ 3J=Q>(S!؞*`xQv?nkdpeS;Ձ&:*< -qs喑% O-LFc<`)5DGϦIl-ðyq)*!iSd*k DRUeIKAwu͈-dԚʆ [ʉ{@NErYa/!ݩzŸE-FAE-Z\yWZA0p{I\31q[WH/?Ll  Z0zmt0^eVhjx >[[^ +-~ͶJ+ǝ_\s\ V8KT=7ԮDa]\Lq0{I3M%px{Bi:o~˱H\7`-3I>v< +=m + sX6{g +1jO>mkp=I,c<ɒkOY +::L[ibޗ=X#KCJ0Ef|tJDz(4R-H%`9"e$BsJveC5ٍH0D_P}`\)i멓.ʗU ƻJOe3LnަS~}A#_tQ~Z2=̟e(J~y%&hmqͳy9h3ˠhi\H;Scݤ=;-uſCWX*c>`8$/<6k<,vꌦaG4f;Јh)f^PZL h{S=?eoKbO*g$NWHA,X1wAqc91{9&_َ]U޾M==oTx ݅u@!lB7C1ݷc˹?&u=( u=DgcEEt"7aDU^T_1~uԁ~ח?j,+uHAosv_hF˕}x%+s8"a{z&+mY4QA_[RjMg]FRzYYUv5ّt!UX]J/F*hE؄ƽVNt%ĂXYXmJO5n 6j}bƿ V낸MIn4%F=""r?m+%glaJ 6ҠS2:Hs}"ڰe->\ތ +2J4IiE Y@tt4f(r|5o@i WÆ-:EF,˨55 +6`4,2F$3v#%zsA&M=[4 +*qm4ࣔ;hQKF-YUG"%d@6>Ӻ& n5'CGdPk!tmP  %HŝFXA|m56)֬$_]^o(>-snm24 +cq% á{C{֒H5ߔexoUfLf5savXS"(|aF6s ~V* T=m\|ޕo*H:.΁bb1(~ssuԮ}^Wٕ`:y|/ Tϛlkl.:_w!0q@(Hc1_YZU@o0.:H^몊:7XЯ6!C4$b{H/b%iň,B\D]h0 gU|c{10$Ҕ ]&ZdDh7C4dzaqEH#WCRΣ7}Yoa*1qL0H~[ +gdX(fЙjMpzlHExQ4tflJ*$)9B*S𵍾L0X)S8q󎎼7FeўS#{AXlCI$C-h tºdU30Eͺjq|rBT@BS;yJ?v]$inGآc&2ȪsZ\Ӕ-&VE\*%$ڗ2 >SBg'^G12&ٌ Ga!Z d0DBvw}%<D H#'<(RSr-[Dd%I XvjɑGb + NX`XZ]LwÓh .JDUř a{{I@˞N]TĄ]c;Kɛ4P#KS~_,Ŵes:/5?X.j t4PYNW7}rźYP;+W VZASbWA!G,{|St?Dv=J{Өep:qȖdE-8-[-;x-L[҉{17iqX}<Nj?*ao 6*):]rXàf3'ubߦy7~!dL{ +i~t4AA@3hh׸uw-m7 -!M>c_)\gntc6.ß(~\~bA?M?Q?%|^cPO~4qrg/it!ދ.Z'}#a#GV\z]fSiVLI&;נECʫ$av C.$+)+!1v\KGv^ (qܝ!LFR􌡨 +&Iz1ˑgL8}% .#t/d +_i<tTڍx7:S_7_҇g^izOm^i +EWgr*M[P'tXG7RЁfsഄ8t[W[u!iؙGk-W=+/W̥9z1V34\ԍk)|v +k@,FKp0T#ɿ~{qpǓ37^KϺ'7%2[w>-LS;a9Z:P1?paPH,u +Cl y@~cKim.ǣ`u jI߳fw({ԯKq +!#e~.eyQ,8cΊ3)9ŝ.)XxU 5%CmU4e);STtiwbԔj}Y/]zЖgx~o^ dRL?*jʗec&Cw'wTZVXduʧ-\zvjlt"ʌkR +s,ۣn5!砷 a<1>pʊdS͜(m3]P n[(σ%^"+zVLp +WPO+m$/VȒKWPtBiO#ji(SzǼqn>[.o) :wKIX芰SO*}:(>m4*ugNI7WkPHYՋr0!OJ|aЏpͥu̢ZYGg"uny=t3~4Q֐c\>͜weJmʭ3}{Rr8hKĮ5uVvzkJv̡$9TICw#K+uj֘BGc>>2~&ttn}o\\ȼ ޞoϽvOtNmQ=O4ﮗ?\}:CSrxq%{-7w5DsrKkˉʹ逑aG OqU'G"[ &:]\H{ Nx3Fr\*}n3pDŰ+,DeJQ:sгWA>`-u(7Ml'ON%VPv\QϮr‚גul\o ^6.w[Fٮ,=ZqV)a/o 1[.>gaAn[x3&Tk \AT4SbhShR!Q)7Q-TJ&Q#h(DmS}qZT)z:mU9SӔZ:WA-dSNUyLUyhD1r)g,bߢb÷Q7M }틲3 +=\%cNEx~'a:.n Zίՠ$[T?ZrzYJ+,s-"1;Yb2ˣ Y'EzM@jաqɠge1!RB$j47=Eb~hLxl +_HL1 z͈lX \6\/^{Uj%!_AK.pX\Q{|[~l%yA$kъI u2FAڝ%:"vU:kũm +/k]Yy +>lcu BDrYAΙTXf-7ق -b:g%۠皈~i|e;k?Dw2Ψ y V?'ĩpޡdvXDaw;U=ꃘM/X3{xn__u + F_f55`bVU r/WT;(&| ;+OUA;p&1y^H=)GP_∐^b:U*.+yt$D0O$#7*$=Vm=^ _}&<C킆{iqLyU o{y?9R죺'֗ ~tZ\ UeqO} X-ʪzAdʆK]\;W'g kXt' ue t.{Bt72dN+O!QKƼ~;.2V?"^`\S"Um^2Eonk73S/if?E|S6}`cg}vW<~uWPŹ݃w%>FDy= 8~ۋw7*KS'< CENj>(e`rX; +c-G*ۖjDN5=L~ftOl +V;#V[Aʚ$"{e7ygtL:u?߿ujy IN$@8ؐH (˹8ۻ8 +)*Zv*?nz6T6602ۛIilYD^65k?|-32$"@ĵ@NHLMO>NnmŏJ3YCAf0xe-Vs#4`3 s<`GB hE%[ͲAמri:y OҼ{o )_\Vоb=|xl'LfeZ%~Tyj0{ApLh{UjNoNrh5N,9Ѫ*!iv*,x2,E&ǝL43fo kK.GS&Sx#lJa.'.=XHRJgD@9E@mt PqL%f踵/$EGj'/Lfb"Yh"BPZ 2_§T鷂(ie7םf2 KO$UʺH}Z?3(;+Cƛtr cL +".rd-OK~nt:/ڼB9@V0? Ds$Yn ,GRH?bnYv@e,毡$=Z&ro!Z;PJ\?-as"sbUbG$(f7Idd|\Z'@bH_+@C|y>r2} !_[i~/+^d葻:߻r! +UjVy`ޘmcX:d7濹:(72<Td+z, +*2xt*C 7%;-+\5c0eI[]tT +d.-əRLxθJzѩAza#;;g(aa6M/tOWL5K NRA6ذ7dgۊ?%d/%H.v8wZzH`OOdak&mlbk(hԤlc! ] +fP B5^HI"Rvь+nzi T~ 1L>@6pw/gMӛ k1,4wѶ}wfwga>(%ʼl]M*3?#MZňW)5J'@AQ~DE $7Z%"-FD]qfFGfuM^i+_ؿ(:~Zm \ƽH,)E2g n9J*37 1\ FsΐbE9?tExT~edlwfͲS/м7a0r# 㑤o7:Aʕ4FM0_y9Qa]Hg&=Kuz9 ãgY{t;a Uk [A/V}]wcrnhgiHf3aI22.۶4wMWXBkud :mt_63M䞬 JʚMSx'2=y vo(/&%JՊR=og k*QYn`1vn*(\"w^YUإ)ՏQ +g-QN:SBc(Ħի.CUga{➺tLTG>$H*]`'f̺%'*Ů{+T9wG9wǸ3^$nMppN~1z;['B)?iG=N?WQ?$ +U|4K'5Ԫ2K@.r|7M;֐,O(b%01{”%tF=w/c >)~Wi LH`Ni'@]եE'&xPO(r_@N0ARa!%G#/LDRdlb oG-{ּ匋'߃WËOBo6BC5>ULUĵ<jI9+1 _î~ ?0{2;Lx}̵j5#DBu f#تT>DCRH#Si [t*Ṕt9lIְ"s0~6JDF+5<=@;? l)ch3D!2*ȭ)ƛ +0Ma.RjrS_eؔA>]$c*hWvD +y&Qw0hsN2d֗liY6=jCH 4m; %}+J?@.KE9Ǵ1)kkBr\'=Bwf8o :.d1RgIÍIپDŽ`L?U!yǶS%^{.ePB#@E? R'&?y Υή'ðF:޺:j{(C#(UYBVY$-wNT @rHmI"5B  S$S@ag@; +n=S_'W! Է02l]V}nPW''wUVp4P$XL5!Ւ&&*tls:=lbX!$(eGOrJz)7R(^b2m4\"094r>gMr.O҉ 4cї:=qf~HY%S.5W\.uRŚVM ..*Y\!sTQg-IJ Vً4Ts`JsǜuL'2Pޙ6m/-ŸUX8!N7CLq,q ĊXԢ?HlbsGKMJ*OA ,E܆HWI<8Y꺃?K28IyŪȝ>SпCjij,ݡz5s滷y?:CհBRFta0ai0{PgTW4BwK.ϓ!=vW ;c +/084:4lZn|YXXgI"UMr(NǗ4iqPE.ԗCU09@jJOdvT3eZE1& :SKӎ|ORoƛ&FA[ky>9Aȵ(ݎ֭fװLK`wvau ?rpY#C0ϋ?Fߪ91M3\E73]vmaȭ,K+NODu]E Ey-_bs(vҪ65kV/cb]C+prf}DQl&:X-biin2{݅6ש +MJk&]-xѧPn]sٮNu<·d^OʥF-tUnAΐ s K'˯q}bCߓpܡ_,xJ]hw\0R5#M ezF-bƭ[dJ"5T˯5T\9Y(rXg xp}r >20 +aZ&yEG9!$DO՝) Jf^…6g0>{ S%uMr\R,G0}Հ bޢxn;]$9ZⳛM0X&1TM$n x_?9gvhP=;쁘'un^Z T.'$ޮ;weA]'hAЍ[v- =?aOo-3(/H;#a +Zy=!:A!v<¸ox{#KQ0%Qm)vԿ.De|-7H6Lڝ;<k.'x!Gt$HBu7RmwuU@w +w],qU-}Xa4n23ŨU`sRM~'GN#flC^ۃ è`i8z+C8#wn +,.B2EҒ)&V4E:~J0Lf0%dܐ"֎F%o)1IxߤivdȾ-#4Ǭ0Xd),uAiȱt~I@HRBh-0J0vG-D|5Yr^˙MﶫVkصxB +4`u%$Qɔ4 F9*_@7˴GE31E0үXayn. ãFMzc2F§'#%b9`$s:pF +/c$՞ڻq3I5OTTAh&iH Ҹ.jLuI̶-&mBڿ^cB7>Yޘh"hf% Y0W-_z.%ucL\v+vB&V(B"X؀K1e.E ʷ>а+8 EDBe ML r˻|Dhgf}DZ >ÞxTܽ0>^L<&<9a KClOP2ʾ4a%N=\;0n2_12乘ߌRԡNPz:hh݉(mVWh֠«Ic*gIH\nE[iW|,M vb*'QBP̴t\ewH}=(첼Ykazwh*"."kslA &|X+tBv +5&ik(2ĥ "Ѧ,V}izv +)D.έC gXxuub+b$6ͭ&[aDhB9Ap8wŅUk *.| ]w{\M{6[KQHswO X}}k ,i_ѪzDaN G Nㅌ2^QQhl֚ BE $ 1%%rf2ǜ%Ltt"&WLti: c9'Պ`n"qcn^dt2}ޔf~Vq Z:. L \%H99J>ˎ5 +#͚eR1UUϞK45K:1G*uJhS.9j)K PK`*bHD~A\ 5bŊ=򯶤0KTx=.UNzԙ̄/;4^JhRB96Ø)AOXCŘ ȮSE" 1gU iUqi2jÜ] F.%IYJ88=UKDo#20j5$xÚUqf2 q*16g\r\es6̃A+4-. ՃK<ͻ/)%xv \-z8DZLZ#;-+ +LRHmNInsȫ#V/2$A 23-m13rcxC0ڭ_f}dbH8瘶'AƎcrCmr(P-.+ɋ<@vGKt9/R5p[|*M=DT{ +ZK )/s IQ1:KZ &+.7-W.y:YL^ßuZ߭\۞h^f7!eȜE=+}6%S`+˦%*ZXqdJȵ:#R*Aٻ5C䴮 Yig&f fs|iRK{5Q怵+q:sIVbC<)~{-[NCz@ audcy +ayf {.j|z݆| =楛 fCdJc%z\ džÉ~7;G DrC]r*v`]gZɞdVm(# ԀF7Z?A+CzFK3.(b*ӕ*SV]=-; 1~sd'3ig]? -MIZ7飜#Ǘ'oJޛ(/__ o7s>0Racg#S"ARwnj7;tYN~ˢn6p.y:Hqp:puF>*?6*G[} +,@!{)pݔ:&4/́f.'fu)>`]}Θ76q/7FG P9R΂VuJ +8̪+'y%m3˻йpv;D0QZ{9?jw>lnὩ`MlpQM-"Th{ TEL+=Pn:;Հfԑqu6W{Tw @Ԍ$xzqfouv.- 임O eDqEّ콈B瑬>QE]Z1HDl"ziѩQ$r=hgUVi3iuTovo5ʲe틾kgpc(t_/bNV$[ޣ'nm{Rzτ ByZ,zǻ$督՜7A/OzGLծhvdNOk2- ߳E4@\EXH0c?B Cªgk.j}.$Jod&DoJ4~Ox=4[#&qCVyq Zz"M8A[Jr7Q{ò8Nj +UNnf:K +B._*!g]x۩Tn"؊ܑ`r:iϠQ>nyR+GzOeq~U `Uf`Qz[ҹ<:62H ģX(%JY>XɄs@OYuCB}$qid[ n"7)':5 o͂kCĆ/'".lQhg S[Y?=r,k'"'o*NJU0rlPFV0.&/@"%I.3<bXG 4?c`Ŷ6\ 80;}˳Pw+ un,S !H V_շP7o>Bssځsu9uOα_tx1-˄{> 9 L$9`Í =8u|ЪBZmvTT_< &0Iss= 3Rd~2j ulX ` fROc;#"E#2LP,+^f䣝s&O$S+$ˠ@\f9^]bnJO[-gp~x&QG{'νLS|( f:{۶7ePvKVy'!Zd+W,bMAOJs9"b.VNJЏ?Е1pwnA~-BB8e֝RQp?Iv-ˡ W鬵12((tu3R,>2I$R9e] +y1+fa^حבW8? ˊR6vK(첆[\#(`B`OFQфudtʈgG1Vhe۶m۶m۶m۶m۶mu/_Iۤ6Τ3s Ƿy4 &4y1,suse^-Crݓ98DGI$/#-uq;#g(2D >o0c,n;lʦؙBi>[ f4lLV"* sZeڬ՜5:Z,bdnф0ZT:Gvs{ZvlDVT̾ό=XIV:¯0˥6I~bM RӴP=z?{7緗F&ߤ:Īa@JY4g xk.p6x[p-3Z대CoMݔTUB::ȎxDW;< HEQ^D8cUU*Ge&MXOlnN*X?gs2H B|M!E&bM`Dlm2Ӭ Hc/"nBl<R,.nn+6 j%3}=;SLcN.Z@q*R@W/>KB^@M~GoMgc(p=<ʖ8(Uz1$-@* yA獒 K&mU a#L 7ގލ.4N$; -$h@n|/Ώvc~F7owx7YdeH@~rDƳ׽ȝA u#dDJA]rv.j#7l/L҆J*Sn=.}=vo~0nLq-OX )羍wD5),W_At;Ip4oUjNHk.9&6a4!0 1BYfd֙T2RR!KAfazd?d]MުԌJs^_oM]v{K}Ngȵ!١چ~\7zgB|Vs6C>;Vya& +ֲ1Ts.x!E=! Qc;s*o`ZScl I̚!(_k0a˕ 6ЕjS<669|w]Yҕ6P] `(8=q:5qz">}@!%4O׷  N> '\FGwT#$mGVΊEPeׂN2E5KfxZxXs}ʺ~pT7렚EO%u! d>bjկ&/ nulYvCId9أO.mKG7wyIht/߭G6|9gvd ?ѳ](P﹞#{\Vc-28eQ'0? , +QAKh-λ Y +/e/v0H c(> ;"o5Seg!k/W:eOvnގPX!6UGPkxeejkK~ XfDZ-ɕ͙R<;k'R :ů ]⫹} !W_[jT(<*/6lyN00gTӠb +ݭJQ8mk?imfW,xfqMGqW< ?SS%+ِPtX6Ȋ]z{k>qT;P7ZoU+ןWnq_MXøE@W Ϣ'vEfr?u4t$B ZGɴcvSsPyVgk1Hl+-u]&WZ]k`*k9cWw V:WS*bO].a]5;"O·y/TW7m*802Ms?xB2G7Fᷳo'[:Wm' pM4m4^U3=wV}Kr2WEC‡-f8,-=AGgٚmyWqtOa.J,. ؎@׉>x#H` ^GЉQr~f-4Ta.`^<z~cu.vȒZ/m?D*6?:Mςi^n~.0=HXD lM0;Kh HrcȒu:6B~a)%)]PPV@&D!0!6Bh*5] K|Ę}/' LaFm4"hh@U>`()[p|?2NA~Hb.<7 BgnJ$A@ ݰ O`N)uP>epVNC jN?,)T(\Dec0dIL6a%D4>g(A;PM2M--5ᑜ-7T2)xehDPs(ɟ/}j3rB}(X}hɆ+-ݗڿƎaT;Q_]򑨤m1 a+ju1m-k.J!5Mh[[2ғU.]W8 <[Ki'/r9, 2+0ȅ6lCu 8l.)q0+x#ZAd/SP ܷ8e-bqҒ"~ŖYpJ'Ku(R2 U>ϗ~Y\T0LS)R\Su2C] +S|cTm> TMU/lKZM8Fo +qD ķ1|K۠D/'W٢Dy„/WSQf ^&y%L*LSW@BtEn&'1a)W*+WM B?P3ݔoX.&R)yZJ,Ԕ&$Vt3+?Xz6iJ4E7YrNňj*ɈWϏ&4% (.."-M&0pC etVϵ5"Iv.zXv^ʞ:U#l%-a7hBF{ل\˶j"[iEP݂̌u)HƟj ⰺB"l"]N 4 =mv7\o*zk k@ C]MEx(nÍs"a,- js7=? hE_LX+S%W.52lNZ7&R;*RM 'cxf_NX\ԯ)SU'9,0$kq(:).rqb0qOtdR<łˑbbxHsgcfŽ:Ҕ7aADxw-6L!wq4Va 8$zT.43V)P"xIV[5Bs&Քxid,jʬN +r0k0Y v5& W[Xs$%6sd5:mxrU5v0o\#&Lf^3"|s'M)\J*4ft *mSb KuHAc ke~YD*aJ H"e"H\<ia]8!u  r[D /?b(qScot{K,hXڎ-G?f2K!ҥ<$N #EI|5K&Ml[lqbixX.p1<@Uw0n)gt$Q&e;NedW1zUJFNdp&5L[oMwW Kb̴NxU1f&4ҏdDo}ՇбlHdDkGj1.%1)<H#RI?# H'y[DbO6xaVbț^?xP"1u{nvqexS2}kgc#&K;*{&@I;&@.2^ƈv ^߄s7Kͫ.W$Y4 +r=餼Di;:UUH$6=5P=Rf/r=)yʣ+"P +"rMx| +|js4|/ 󛙊0-`l8姧,K찫MHŔ2w1˳&I&b!> ?ŕ=`V޸=dI}H`LAD+r0g\fM9Mam,S$vR,қD;X73L)#6rJ&XLgLLRTsM+e2J>8;TR*^0eO +J'&PQT + +Qq6x3bYV8TMdH34uUv?q|\cbVyt"@VA.pT^TS%MEmPYl^(ջ9D;tO<pyl14P]EΙ@6^u@;vfX4G Era 00:Yz–$ qS ^z`4K={!ۑ}"wiI j~R\6G>)hcT 4Mu5"[QkaO Y`e{$?o `dү4dnT@ϛ/S5Laht%&ȉ-aQR]rjՄkPpaP_mbW)@[ +obpt^W6ԫjȸݹ.a6|!YY.5K*r;]Q83gub :*=dIUj$ڸL+oP$+ńy:$gB'sN_mlv->.ٻVB72tم}]"[daC*XP0|jX*^oQ4*0-ib!hvYQ;{5//Do]9AV+V0\$x٦@,ΟoqnPVYz~2#P_N[uT$7[@Q#vώ|3]ڀ-Μa6([32u1 9'뎍4'oLVBu7~,-r^i$vъD +RIYZ9[;%lASRɀ7`XҧVjs#\5^65U憽|jW!M8en($5pܜj,|Jf=$nT؜9MJzϦmzD'gSҶ:S](g׶>B&/u +6DSJ'YM՚Rn^ |LZڪ.6]ua^ ~^|>W?gPU@.p%RL*fnaflκr^˽6π=_TUg~fE}K +^~{톇CFcX:KJݹ-{*>z0 .u;`H_zSuՙfWRz F,jն`iR1Ԭ9sX~mEP%I (Զm'7(mDhX3$+ :TC]P*BS7ҡz!Kq$Q.7Y(SQ+Cs\SP[-'ggˑ%vZj^ƨf2.idoC}iY7j +=X`a& Uőx2/tCBT8B,m0ǚm8Վ:BQ9`F|i +$jȬ XB ~ğ͌Jw*,$&_J0P,$2Y}Cd)Θ@d+م*_JI]" }Q +G0Gfr/k6 JOX~d$hurm_`[ܟ皤wrWѳpcjߚJh,ќ4[ +>7"xQ?Nw/L\Z T 9go[XS:g'376܆(vBz G"ԃ!ԃ x_:VIfØ\Dh,*y̔}iOB|@VmBNj b?^7ghB$̙4N;:6_ \8}c+VJ*yZmF'T:rFp>r褔犩ghOݗ(N%$kA:\oCgvC> 0tC(#򆉾#{i#Ys o_Қ + +JA|2=}|J5=ϜS]>'h6gt"L2~ +=|-} dmh7^Sw庙Y\yJ3`{`v==`MDFv}lMc7:@W3{{θ93}{:[=̫`F%RE}p`%l")pMC3d6Z>d%܈&%>uHCiaeHEZ6s @ݿ(W6"uCkv1uCCs1KsʹCXHڤwCm7rCfŞHk7m[;Z;%! +@o:WVu"$^pY"{SlN-kyUy^hP,N|&h-)f!ˆ+kXg/(W^zLA-[Bp[LF[)n`WGεϡon#~gmoojL pɚ&pĥl,Sƞ2Uәe uT_$N(-8mDkpvKj,y@yX68_7n>.#n}>WH=*T̵ω|w5v2R7N˼CN;x܆XugiBo 6w{TE*ha2rN ݟu\{ޑW@[;?z/9 tyaY;/[4d8dw{laSEǛ W +/&a(rZPu'K?P{ Ob.qNiQsA'$q vp=QM}+StQXxs X ُ\=,}q ˮuS{ffA/Օ]%ԙ*U}SKj,TE֢k/y [A4܌-MjK{2I}VK\˜WAkh$@HĪ3ubZɻ]ϖA#U, k:w9\k'`+Jk(C< LLg5eU[%u͘&L9]Ŵ` Xx9JUH_>8 TAd\V3jVD@NK]٧UΝgX aEK8>)7{ʙ 3Vtv^o$eJ;*KK6Pq=' w!7HDK-GG#]ȄxBޝ +RtpCx2؞Ct{TtS➅2{:u=;-x#f}35 t~ +Ki?" Đ+L|af WWдhǗxʏ厇G3P sFω>o #/o0\ +BFF>>Zp!%%:|4|]1aTLγJU٬kMK,Og=@lľSy !4Uû;,<» }zJE%RYoeV\nX0XVB<Z7Ķgxa$7B6:_ZW#MzK)"OςbAHTAF=r 3T3=JTݱ^QAh؂k,uSW{(tl,)[{ϯzہv"y,Na|d]7IpՉ~N9 9T\ +8<a: %&5U@}W"G?iS> xƼb!\ꖻ,j'ߒi0|ݓ +տFwbwk#0OB?cޓtO/7G*ʷn^oWvx[L'qm*h%|8T,0E0EZ4m~KdKt+HO('H>xc8>Vu>;`bDekq1X:?ʥ7Tj9 ,5} Ȋ^D c:,:2"yKJ;OQgdF4iࢆCii1IhZ!׉YLP#j굶 [aRNi+pGpU ", ј3Q} H^/ +3NPU5nFzCV~kޚ=3$W^'w},aGCFOioF_אarL:Èڌс ٓy+}[Q(-V\[NfνB4ko6 + %bh0"͠~[ ڵ˦/x ?ǀY ;!ANPQnZqN6r\C2O Fnt/}P!DXT;zTaxX f ,-Ooc-TM_`Η>[$7z›U q3[dymlsx*ü^~l>ydJ#ز$:*aΉ|”ȡ"iDPʫNAAWm:}iA1vj&tp#Em*IA#ko=;=!Pd̶A8y LxRvYMTr1Q*[66R锑pk#>n&X1x?6P1 %䱾:m!S؀#{uсG7Uxҁ-%K*C+!}%yt5 +&Rl&0cě]5 mubӾ5mlRh Oļ9"8͞'6b9iʐz0֔)cˆ:(cBT!MR*i#8i'I#-e‰$`s E@t6ļmn#8"m(1L.ӱ}#뿓F`|dp2 mO GwZFDjԙԲ&E YJvކeW8(-M߂L$ +DtLBieW9}(>#:Q66r +NOoZ]a64hpz+&Gdq&|\cxGnXcy򵪑YC2'%3jX!b@zq {h2M=΅;-EttFgdCx.I"|\jԆ<ht(εDo鬓W-u-[89qQ}R +!jU8ԩkBہנƋ{(I5#1V|V5;ɎwRٓ^! eKbιJ =HqBC?rPsosW:+[n0cubXDK Y>,^ȑZt?97̄k/VxzHjiZ*ުin?k;BʞK+$>{Eb< +w̭:GWmV2APs!3+rY"CVqSP`S"Hf$~^|Dv3FP\=\IMMAprh.l3d >Lkj>wNX]z0P|"@$p7= +-_)oC2x['Bboc؉rSs]|iIum)$kӞk~X{C'[a2wTx_+~w CY>m @ݮx(atŏu Ȫ?K?pM/٦w-hZ4@sP;.d8BY^uъlYتqBɞցiׯt 37yz"#,vQO{|.CsenΦ2aX[,@mXa3A CnU@YofvuҼl!>_2.lr&29;KWܸ,'ָ,ݻjBc˨t..ohrM:^vEy5M9;~n|p-M~r/WGyWV?QbY3aK^\g޵63g 4"4?SSZv^Z2FOm] jk +x8ܯ> z:cS*jF1D5yo|GvV]=H^8P,&Y/U4@1i2gQ%H[Eİ`,2|m<#|L9.ZuH.|)M6Y= K8MAf/۶ eI岠}skeS gM fS3L6Odm>êΫ0mu&JqƫT[XY,c.bKYnnH!%Ӡ! dJO5lj{lrb V6^V1Cr oBe\l#]U*XDVU9 +)E)R[ [ICY>i|=~I +枰H5ԃ-f%yLMpGDޕ&V¥@(чK-߶irjS|-l?Z9ʋ 0uEW4PzrEbIb Oa +w$|qkGʇY@/\+UMhZkE\#\"j6颭擓6![VDmoFT(*tH +a[aA?0 +a26n h4f`$6uA~w ;?<3f5Ew `\iT[7b=P* +h%bʔ] %.='βtOO~?C1Dywu{u|:}^0t%&1渚H&;E qPaTQ7N:Y v>yowe;'W29/%Y_.qfP.2Kh#{%m_z[FY mGlYOm܇xG5} +nM6giݠ}aU]߸ #_~+`w}2sr>ҋbG +y/G' [+M&%"eL/:fS!u˥W*=YekQ/5uK0A\H[yuu +}5آiy5ۑlY  +4c8mRO(քM\0]6u8"hPYV׺=Yb=cB XM|(Lk7"z P5 ս&-I?,uCb7ø[7]O 1>[= FsO(3cka Έybȕ#u|4Z RW $%&ƟgZ#h +N""avzކ`6Y."~UiK9^\Cv~Lhn>AnU̫w++tRACNZKfL&.vߨ>Zմ2b)4©bƮ2S$YdL'gU+V +HIž Si;H80~2veLl>͡@_N_=HMbkc!tOp[]!uQ, Č=tEycW#Ѣ'(^+.9i7wLL 5ShY)Nf#W?Z2KkៜWhսh?ezISU,k?z`1#gWl?{Y7Apn>`l=8hUws;{@|^f=!fѾtW{cޟ~0kxH/b3xF?'?Ze}t R/5M!a>r)åyKzv wKt$ۃi'IR L]2:E Ddb@QDgrHW:'Ձ:_M0ÚnhCpҗ 6A~p BGk>?S BHjy ~Z<ǟI+ q՜dHZUu0(4\a*qʠheȔE.ATyu$E23VEvDN'caO ¼+y]2P/^s۾Mݠӧ}¯5-Q˷#?(ŸeO|Ӄ&ټ Es/|YtY'_B^X1{R=&aՄ!0S;A#3[BHo JFsWA4Mf*K%4 +CzAэqJpog2oБu Pj<1Fq a8)EuWdv@B'w>y^i(y"-DsS^qMzA/S.蓞m7?g,l*(AJ=R)xӆ/7@övlT`BɈK#}E_619v0Kw/.S,Jgi\/3-De6=H}e0u{\kζܙbʨQ4RVpt +Zrdes δ})>Pd6.!r|l-92inM1;lTT InRA +]HuSFOa$+/dWFI~(NT=Q, v/OPbkYI_ 3@ ]0[jUOma/D =Q!q+jr&AG-BC6*kܨ S0=*VTpO:C>gCM[4%PD$:nXd)T i +NG;Da[V]3{18^= {Nm]x=ԗ 0)o:]sy zި1B?Ce>PWpOs煁RzAoNgvZGb≷ 7\p>iMTh8jxX+GoYJ<3}US?&&C]k??"?tZ~D {,c $qRmJ]+aJL9ajM;HVݕխMϖ֖U\ݞ擿/${36]&]l;߾8ˆ<#[rQP$R cci ti(ɗ*ym`!u8:DoT+W[ +2Qϻׯo x~*Aλݽ2Ox%%C<|O 1\^8QQ18gX_CQ(2=>-) +|G'MM| r!S)m,BL=jLQ}w[*m=>5>*܍|&A% pM}]|%?=>A|Fa=-gc{͉{]Ó_PƀaZr?(d1zs^_,m|D@|Ē!xb}|+ w 2E@ Lj|~yLLYJ~u1.@Fhxz~r"hlQv~Fhx|1Zn$7&WӝGv6^nXzV<^%BZ +MβȈDȬ†Uhy!-JDL/QZLH y9'*30SI'4l"ԥ}"ˋGFL!LGZʙTy"шQ{bfrƆ +Vm&8HMZ2#I` Qj]MLe΅fimPŤ,–Oޔ =4TVKbUv6efe[ &'+!-HR,cֶ`yTgšPyRzrH5DXaK2&bѪMyꚖecvmL٨6`+^%R}Ц5L@] +CaJ+LL!si3u(rX`0M xɎ8Uif{bLZj6IP&A(@ ANVp1K[bԥjv:8o ^Xm $-|r$_ `a!XK *z?'f%x@ n]zP?QJȫBe`,ޑB:V6h]!:FF(p#KQr(,f5=Y325b~bm5QAB x6N. /6YTU :@}Tpm;oՃC 53 3)m;HleԷHƋ +bV&acC5 OWORg.G!Pio1"N.G !!'"5Y0 %hiJu W؛颣."\e peWZ0" ^#aUmC+ +)s +Mmn,WBetۃ>KD벲 S$|*j}\Y yo@%d=^gWa{lX_Ա(HyS:aq]w%q%*S0{a3!meJ`RsT &cJ>UFڙys92r[ʘ^U֮##7S~ +Nxuu}T e! wɑ;^;&T ,}lv!fEԵ0j0I(tgD3HmF&2C_@`/0uJlӊaAtֵI^MZ^JK'bPa2c֯8ޖeEMZJAUJ)`~e\1Ȋs{ܦBm[ +f˦ +]~{!fsDqR9 +%)'Vzly-[ؾ5HP`*t_HJ8Ee@ڟښ k[w6k0[K>ymQJvjfkuRuKFKMk: Ta&Ӭ02G+7BBCiijLpّ`9TvKA'1J~N5m;IkEMom%sg-5G6mZjMb{ϜZuN\ʱ]|RsEKӽst:-hVd9".+.֥k V:[խ-FAYNi(`d g|3e3[h]d$E'! +vμĐcCD\JZ +mRYnQ!~XnC'I9V}Xpj "hsX3MB7sg~)A$͟TezX" fX7tU#ޙ}!'Yz_!Unm&^ މu #FN 3ɽ楎_?gqUCo3 4fźZ ԷquFLɤDЂ̟ 7&m<3/&"4"G"}?eܺަs2duJ6~Z;hka=*OcTkݷɅD{4C"25n̷[eOdc%QGeSJn1yT׬*gi Þ;GN@J׼bLE%ah1T1OK?3<4?Ϩr"6fF %BFG^T,ۏTE=WR1=m])G6>>7Nr&:F~F|{e]Rghi,T33Y ᰶ$|G-!|p۾no͌|&+w}`IbCґHU&yEW/ 2yO3Ol@e~ }GE Hi_ Ѽټ~~n\}\dnxR=PdiN~=7HTN,r!OҙB*^'pR9Yy߃d 5! "Aao=}l@k+NQ_ %oyC +Z.%?Esb#m'W&|8º*d& m;Js3Wyi0w[Njx3O!BvH#O2BlHpGI& /Xr.d2lG}w{qmIBo t- ؇E#2J`krend|#|'|@=e:T%17 |= (Vxj +ʞ `dR  +XZORz}Wߏ1II~0ZEӹVy0ٔ#O޳^9%hh·K⩈ +u u+[AtY{*WB $ט9%ʥ O +E',:JzO’jӘߕZ'X`J=Lf ۣ: җUpQ +C[msPV{,-P ]̍i& .=:* +.܏o T{'+i\llua(V{pm;vgXL\`X&Gz=\ +\_S2H7rxJ,bV@ərxR]`ԕDE>HR? ѿ莐3/ J ˒"!:Hvٞdfx = _RE69io^74*-isa;jڝ/͊}i vJ{_ky X޻Y Dn[36\9XkQ% dghD!8M}q/z߉* uQsp^ Rd@lfH>iu>Hn>M3FIѶwQ±Ĭ^#F_\鿷Oܸ( )i g84$"dG 92 Fg#qa%\?Qw%sFߐޝIyoTacgܞ񻥩9(AIKiBhCkܠ$*ybرClѥ 8eg<QS0,8 w!=);خ`[⮙@w ] +LkM0V, d;L}%lcKY +U!¿|_6GEnW~X"PX)ǡ]y61/& 3D#OGlr|fRr*@b!rD[Gv4&L%6J:8.\;g%6ɳWy]u64[cIlENK(bkOgG 4Rf=G<}E7hN7ELjԣe.Ig[TE9 +0D">f"~AsfAiTfvQt,wh>9fD܎+_tcNQ~є)]ae/q1|?f*grڎNbذhO7!%/QuN2bx\bQYNN2b}s|,t8eZ7E폱 wa lg0BˉW%ا㞀< ?ĸ߳qWa![H 5C=X^-&Ox]m@_"g^{ϥZ>߽|D|c1!T4u _8` Ω_"+ +v +`z˲ 0=GPb}BՇ AGLHK_M+&pRk7IK&p |e)U|xhSrl r7Q8r^Ng*PyqIţ)V58 /t8v:"xn|S(Cӏ8%~ !fFS,W5|$qV.,*~Qe UC!`Ρ4 + +CĘ" +֨`csҜVt6"/ n<; vT•#yvd㱼!$.? 0aXu2YdPQ,hx+W}#/-"[[/yk,dK! :>-@xc0Qܓu" #F,̴نE +0, |ӦnJ3C2&ݲ^$),:ڌsy)&,g } p%E+>B  /d,DZiD$90J"ʓ6r=ϳP,Sȕzh+z涜*YD[c܆|%]=n}ԏG x?X׿J[=NۢR}7O'-XogU(Bb+ݐBjAkxU&I!!hmK3ҁKꀰ%'ӭҊA'?aفs"vq:zWxrN4Y+a}Zc[NX9ؾFԓTmLȳ` *sPpucЁ_΂iߵhN63WofN:_ v~מ6EWQݗ{{f=rkaS]֎8%SpSpѣϧboI^H:dD|6}#j7U6̡#muU0ǚ5vkeT.$r[ȷy},TsoHixolX6WlbX9'""ϋ^~\W7>n@#{zp9ڃ߉~;"߉;zhCK;~}~ !'#`PwҖqzpBֆYԴ\F`Uo!)2-o`Գ+Db[Q+{x. -3zޙEz FN\^Q{ jzG[[{$۫;r۫;a+_{s{[|#/S5RǩS$h竖\PZ쑫YZQ)ǓWzpit,[-,[qxU)S;?[{t)|=OsN ]:TQuzU[[zT̫Yt{ɵ]R U[ûzLU[;z{a U[˻{Aqi US-[һj{{B)k8YӒ=jVB G C?!7\P%zB<^u@ǫ;=@>ĝs"i[W8zN`h"={4.~!;Yof;=8C(4;0II8~$ESQHL4s͇{JإiHIy؂+Ĕ>)<ݍ;]KĴ$o8ޕW:[jI$D1L;`nd6x}teYdEcϐcYiֿH.PeRr*</{/\t;d"6z +ud3c{6kJZ$N]A]{3 +%b{)/BxQ~Pu7ì::|\#:>ahyo[}=B{'[õ&d.2w㜩2NPņ%9~Y>zpTqqu"xCv"0I;=yu!`(4}q٦$} +A;P€&O p 0rp9hWl\f!JŽt]7N9-՘hk։.g=|I6]]-~{NgvKf_cwilFRDb~Ipz˲-MgdhEtӹcYMW-s/4ҿ"jnېaƯ]&ī;c=N=PYlt}בBG 5M'nѐhЯg;OJ sANHjy3@XsY(JYhSKfAyM+vL@FuA7\am3L!_{It|[;QptO^ +1{7? xF҅QVKl {;Vv%?<~M +;[ ++ sl0jǀg+E#੥ 6T\xȝ4*N4'ꌔT.Qm?x@UDv-WlڛA>ͮow2M]Z-S+I悗rײ7wBT^2.zЩ8^{ zc nYBylݕ֎ ^D.}I "N G0_lȘR +с9DܰFRTͪMw`.o'E[$/ohv{bB"Y@JDhq~^ufIk1K:cz8Co U AD `d262HGVbo7imlR..>i/A~X)o-@{no [R`KS>@̛,cbȈv?`.K=|/㝰L;Io`h_EwG&遻`?T]'5H7(!}MF;7"]o Ae>)="BA >rtU5Bt1C +Ugٺ8(YvK>yzvts;*uP5ff+e0 :T]L0Uq/"p Ɗǡ*((-qΝmC(A8I"( =anBTa@gCq(H('A'0B4*VIKj0Bq{ݪEP#f؍"N-F+-SM9@ ^*T'rS(CqPqNosX9 e=vD(ƦOydyv\py LISd=Ō%Dqa%vv<ҭ< n,Qex]XŭNuc#wǛT1aHXKj696R&[wap LTa(Bwe9LE'M۸ROU I~C,)x3'd9QIܥRe뼍 +ݧYq&JHaS%z#gh!ؒ[ikF-"!8J6$wۺJt26>, ՠme4=L(\e=cVq\+PQj))C{{s /j2U[05M1}& k{wKo٠.]H2=aۂ 8v)fAZI g*`ݦ85qWidCPbXT)+䤱?1[JP +u#TYQ"R%{tBR+uQHUݱ8`$~%5S]7螈96f3 +LvaT>?g| u7 lr~'paY q51^\TM=-6=IHѬ ^0f +m+DRcSU ? ])CuS+CdI3޲iD쉯*5)P=Tu]aSj3CKVt׉t`N9Gsȵcvi(H%%jJV.q5ռ{I:] +u)|dfyԘ;crɮ<* tY"jo>Ę ɖqIJp9ɰO|f<`ZyBs*?FqĘj!d:c[nȠ$WŌ2wUXemur|(>tt#'YswAE7 5*Ce+Yk{5:{ջXdz OVkx9+Bn~J6J·QP1\A¸h9scfMkū>/p}A%d=շ^wVAe}fgl-gimmginu:Iq-m;'󩗲w۫âǟl<2Х>ǿl 8z +#}T^{ՃlR.u:/0K#) *3Q:U/])<2V1 &rqxeV}S566_Wqw6as. H1AWd% +zNQldԃb}p]3{jan KXcT o$[iԊDwFуs3U ޠG\(mzD${0^>QԑV;hMi=[-U=@#YAvPb۾'wہAvx;0ܽ_.hX 2^{9رhQ#X X1x#msB}b@k˜׸>6cvK -QGۈ,f=6PNȖKq%Dݯmg8D侸#ӵZ*ܺ3.5;i'8)kWU\a+\h+726$} dރ2xo'>-gSD +SY=Q>3ts`.NqnPlJ Jے_hłZWi>y,zՙ'\ѫW@f e>nRJmTZ@ A՝gZ;wS~$ +PLid٘|^ +Ք7f=P'vm=Z?WY1]Vg==N;Q&5UtU?KFnJnX=ZB^*\i$YФ֋XI歜ߔ,Y^NB ;7eG/CpSŮku [:):xԱ>+:*:&"!u%9Dst2X*VIʿ&/Ln|:T5"g}.;qno>D7nAw:>}7̻/Xp: )XYiY_xE'Pߔw^JcFۤG>_IwWMPKxy. ]=H/<_[4E! b2Ǧn{cȉaGgcȶuj"f.LEQZepsB7幟P 50Q3Mux,*+qSe0:8mh ° bzDRHjPj3Whsʎ;TydF3RK.s˃-i;wIi(,?}O;'F3t?:n&"4>f] _Y6с:Z[.gϰ1mG쾸7jۋ`O̪~[\"{ge>;y{?vK&I4J3G&Ft A+/Xm f]w?A@]?h|u<rd8MecH~HzP2 4zh6_1 X B/-ոZԪtZUmtiogcO^sssV <@08o#].EtM=MȆ C%6c%nxBgP"yrT3/7p?^~`'5XɆ&n11JQ4L^jp4L_rƷyIDv_qnJbwo[qnIcz)Lgzq wy&c?ڈCD4bG$p(|f\|jQp_E7'2DYrQ/hmDžICgs[Rȝ`xfSyfq,d69fP3703ڃwڙ5wcjk 2c$ +,<,)(Pְb$4%xwQbQ3l4}u8ǧDD{y7aD-|4_xAST' 67zx^Fg6(֟.fbJˈtW}*5R8aCYpTe=c3!m[j+zrRDdziP)*~"',,9-`k&cs'j%t[W+dO~Z`VY| AVбG($2!|$Guxlim4/4ILՄ:@!20ݪ&e* B6ą\ƞGLwI.4h)8E,"ֱBK&ƁB~l'dؕ&\ecyFX8ֻƿƴ,X]R ~hD-W7uM==تqU)pq_K0‚J6c+F=BI!*?uJ,˰قP>B(n0HqBdاYN\`ăV3E]X3S0- +o>{5>ɊC˭ *Hh4Z :\+"(C;7Ԩ 2hiڵaÏN1K|}H9IƝE +HXPpr^GM4F,G+hJJ{$<9G{DA7f;8cM烽w0KnǾB+=Bv(fM{f>C죪&8u91aCʜ&l5i< +_3tL.?RȦ" @S1gpfx=Pq\r=6A^ròq DC JhYvNm֘|ݛ1^O2Nw/|Wp+ETqyoJˊ'x^jm#5$ӱ83͟7KBRUQ#*bvᵈL3UanWǾ.k>"A;*@chJF6:nQ.ԤRcғ)+1~9<$Vʶ{R::Uߧ_r1lX+"8? OL]Puu,Ck}d:5GLyYctGgU'4X>S4w#_n.>DVْ#VP +WgPj̞!s&=zo}^u, +Cs ۨ ^#`ՠ+RhTp+mKh\cgJT~*o/Z{Z-Xu +^V1O-,>[u/"ϺhϓL+D8.K4ajSΜ[>t[uY[KTxǭW5{,[C]o{\wKOl#kB;NE٘#[sM4nɜW"S>Y ҪG(_q_b˷W>yj/y7\y7~ps٭!/9O+gvi=-iWr۪,Z9"_`x8Wx/B=z)hx{LtӜؚs+oKN% #xJ/"cj @O9x`Kl;KҞY[7DV]G=9>.˚Q, v+Am>^ >*6!vSיr߻[)a(zCUn71Z\R(r2KY|b ۩Pxa^i +;>bhu`l[pGڧh-SWKɛ/BzFKthɚPP} Wrfoo1sra^SѶփM-"mI] υ`@@ @@ (*%MMLLLMqLYȒ7̒ȷm3CY-ź賶 +iuKUai &Ӡh/L20^}ƺv޷{;>o,\ +YQ"B#ty_36䅀\a8^,CfcH2ӏzW̏~ %6`փLD 3h Tpa,"%#҃%h<9$% P4ͮ=.!> +I +HNI:膗NM]?ZBqny^/a.P}ǟ-H^@)z3 /l(zdia{o+,Z r< +u.V3dh*/k/O>*5z?2T)w\9XhT-~,xUÖ}ٔL%!SrO*H&ɚ6-}"'ZVGF/+ě'c<أt7e: +&pFSfu e.hV9 IiA1 +;6>H n_apG({f'tb^*c lv:4gG9`َ,d@d1 \gktReS&LBR)QODNݍi)AFa!Ӈ#Jⴙ~cGa:3`lvx W>8ed5xv' e֤7A}d-R&Y{2"5a궃Y]1^;ϊYy,b 7~n +/(5\>Hk*QE"p"t=_JmF>-lBi5y2Ґ܃K~.DfB'U +F#nm= +46|z$$C'@G(!KΓB{e5IgQr%M2a1M6,ȹe.r%GZ1<[|EWJqri/ B)ՠP2,Ԡ.+4z Z=~ځS0@njp<*OB`Uv]*#B9vonWB#::'X;5eQSO[Vri̸'BaBMEBNPqΧ2SݢaVUjiWG +$\9 +!g1MG +}6ҠC+K(\S%\)C;|:FżJ_+tz)Ab3ȗ +<HQxx,-@K#N»+nϷ;=Pvk3]B8c+)-; +4, +F< +x .Ͻ!j:Y67n㫊8^,-֊?A+Yib(r( jU9}L+99RQtQu#O89hcڗO/G y[L tTA0 ^ii)SU[ 0ɫ98:L@n +V>@ˇ"v;Cu799?1EHtz&񡭥ekt?xxC]~7Y*FP"QVS7!s+ !E)4o$"<_R[P[*2R1iJ%nMYߝjtVt%pKR{mz/ScnxUr2RVڌ浡wwFWށَG=|dEjۦK,U;R:3Xc֖: t#;tv%_JQcoԗ[J>߳Jb'[3$ήu?zP!=~h 5sN5;^yv>i9=g&w#Mɘ8ia7ݩ=ft>-zM֢qu'L5쏰4F!@i$ gqC`?l]\7.jRwhGg'2Hi̙G8dۑӡ')笉)5ǡӛE94뚤FnZd 9;$D#t= i.c6,v^or`]Mn{O }c >d:8N"%Ni6笲kKWBK9ޔ1:Qԁ]"+{g&AMrL,櫄W–#NV!Ls'{*z +zO` + Y)bלgI'⼑QvԸR"mˣUV-e9rj&yK8JQ Kf-zuHk(1 3 +ܓ1jX{X/ge-䝄ced:xz{ ;);S ^{*~wկE9X vK&ZY m@L6̋<^S#x.5@R1sxPs=ǣyx%a%lTO=!sGgV\ Ko!r"P~CY_p:r޿ a$Xh *Wy'ٜq>@Gk=rlE/]F!Av0(tH;]ңMb>G.׆hT"~I1m.EIkGu6= 3_rC H#XTj$CgW|ްڞ//4 }69 + +]9N)C]Bŋ?)]'E? Q:;8$@!E: Zw?X- +< "K=6Ch + nԥ+C' Ǫq Wm¡2&H?!ZTj: ? -d/Isұ%P%SY7(mqJsN\fЀyZ]\W~[KO 42j,j$ڰ`ԋjuӏh8aQv4%U 8W{79?8Xtm9]%ˬ,:I q5? +-3a?ZCwk!!9a#mϝwAExsZPk_t %m 1V:>PF%Ȃ%o]GΏE2G|vQnwJؕ \ L`#n(s6=Жpn[$tl(fR +K1D֣"#/ l+6<+^pۣ<z'n-#!+Ѿ;"6G IQ5 E!Jzp F <(@V/0?Y1r#/৿z_Cu(q$eӟ8GW2m9K*jzrtaΛKPoa qBЃ&*:Q!}?Geh +lq@,R-DNg3/82Cɼu{9O8';s#}ڜ LKN lD+ׂ6-0^[߱fB__]^^stf7sD+s f3%ӝb6ؓdQ%[+aF,nf*y>7u,R ٽJm.CQ[nf:ezrmV#<é!zQs:h*,hϥ+@e+'LUkXbնϿE}(p}f҇O:ݺ\!Ge\>j7^c0"'}ĘJLyUT+ZWi/; IQ>7{L9:\0\Fm =-er +v *\dX{= ]/f淶SO{z̗W:#(B#rI)|R,K'QJ͏R!(uJϪwj7Vvjf&dsҶ|\uо 7P-ŏl2U"%K]SN+m^{4+K^VJ)VSҖW~bd3NcZi;4` +_>s=S¡ +wHumޱ0!7-Ek%?ԁ̛`̈́ь^+9(j1`+j]D[xYp5pU}Y|`)n]ȡ^@2 qKY^&G&kW6Ӛ[=سkmN_yBl7HEBd(\̈4^:NWv6yP;?)vfOz LFH-3.ё1.~"_%z8'Tv]oIwAtaSg&Nݝ;2)샧5U2Dv?覜WzF`xR ɣ37Qr/ivKpm6T{UnDfk_un6]Y<<}(WXۙ^1_ˆ>,/[/^랩]&CEp{͜ql6uZ6g/BZ#2I!wdŃU5*b\&>Rv)|wBIu:b+>CkѶ׏^oڷDlmtc~.[k!dM\9BD$UM^G碇lެ6QAzpl%v3ӸwSIg1sU͛)>e*R+r%f@?w#+-4a w_*V':OU'jLmύ*q)V԰-ϙ͘v09[BgF>ּ&rQkYjCbD4w^1f4ADd/+r2RZ.Ws"bMd'τ>˨'හ[s'!~Hݰ9R3dR0Te4>0u{R݃R4pu(2R:O Ll~M Ɏ%+F1z[L/=hVNyfH(]sQ!L&XB%~G%7M3Ό>'MzmPP{Hd+'+jՕP]j Tܗ.yNv#8l^k UW{Zf_|s9[F^ׁ>e95Es@24@a\Qa])t+|Vo BnL…ʼ=Bʮ0-ɼN;4˨E]-зicv-kucͻmcJ࠵Qg#|I-3uck҆йkri͛'wcLgʡ,0ErkNӼhaTFq)Zaoۛ*L` #bU'}Oos~۪ԟ_/Qx% Z mcU$hm,oz5|bW֞ϜE2jgKx%n~B!x"\7(qAB3gTɵBDXrU⍇s:%2}YAw7'28!7FHn*>$2n[Xz?nڭ_ˢX&0P(-A0 B-wJI 6 t[F/ʬ[m>KM䣞PLk(CC +]?r:#dNtlHo+q?!҆iڱsedcr33:iNq[i)LFuXk +%HCMtYF^H>Ѱ|W 9hi/26t&tD֓*Q]Ps'oq+b( +cla sڲ;\Y yԓXi'\\ mrq;Zʵ?qz}stF/#鱹2)pƆ]I4q|cDSȺъ5uV[\/Œ=# +|)(ֲ(z |g*GS~S33֤wW+6k`TV bdrFwV*Ǹy_2_:vFs+xܬկ*ڑf= I?/t\ ]2WL~+i u*sTEgxe1g<Ҿ3=3̤fqzz<- צSǒy,OIVB^J0=tbӧԟHP s {5\6Q펍ӨI+3g܎h8DxdSfVl%;?R9;|xsegOnbNe?0(Ƃo" Gٟf{hw* +I_DK ^OރÁ+B%T'8)Uln>ʀF?$t@3MAT>Բڃ֕l㩡jO,* +gӒz>¶w9r-n9WӹN[ѝUJp1 m{%d>Sw:Sភreت3݃k_4apIݳaro! j595v_kPĵmGvn{ЛE"~:|2ھ11/`GІܔ URoZqphZݒ~5{yBtBgNiΆzSU]e⨊׳1>nDo:+>8*ۭ }vieߝ,H'dt4(,0/3 +2@3`CO6i˯IBM+32n3*$X|KUf S +E9r F fRrDT|JMpefZk1wO#m qY*9=O Oٖm g-w]^yOkso}7C3BSJ*um +~mQ !gPU~XݮZtkٚ){!n1KeAS(J5A0ڮ)d&=}1IZD y[XsgIuY$Ϡb @9@sм w`/jFB,\] .V_a[tE9qn-3_UTёv7ybD_QhM954oK en Ƈ8?aG ξca RX7 [%uȗ*}̔/K!SkW6gJ'rfgk1f 09\娺Ցr-;e-[:וOSWTS WUe6q6F`V1=Yw.lźl`EX@U j.kN2;&oSY/=H= 4QZ-ƽQmp;a>[Y[hZH15Rx. +.N1{%++?LgJc"WQ^Vܲx K٤!ŝ8SC\c]cǕ0A^΅gSR=s={rXU K6qVUWمjy*K K3v@ [8 8ݤFr in^*=S>.:xAe :;x;':4;D遺1P Ѫ@z%T6J: cC](6P]YBMcPͪ^[Hu^]X +f,\U)*)}CS54 3,Vf9oRopjM[*n=pFOD\X"Ce+BEX oȷ*y~ +]иkΐ V6hxmNhޟO;KG۵3#9xA'C!P]C^_fŃLFcP톦Ga%uyz冧zN^枹}'Wm(΁7L}k+uds7 !?ɍwhxA'ׅyuA4y0(|א]c&4d6g~Br;F`Ċg6X Y cmuzlÞ|L^Vo"*Caa3Xql>/7@!kA,?hƐ}?[6[6Kjq)L.6XX>\0E?6P~r.2-oH$?&6FV&*,'"#B+b-+#+--9;7;ZT]PUUU^PV2_y>W/=(>h%N+7x< B9(u!0u # '}4H@ ui-@1`  s`K}GMqЇe NMq ׅ .9 O@} 톩 &1k'_ oRco#^*CnC^}nB_9> ?o|~v'xJ:x0io^p|{AwBڀ7z/>~ !@l>(p܀~{ X_57lײHDBs6++ 9E6$ HjЊ jB67l`E=G5D! TF= G= ""*[!*S@=T W.F.L"@OxP!T`l6l> qJ"Vtqu@օO/qPP1 LoQj4nڡjCW7+(H5vAYDJP];Mw G;U/*(*zW'w ,apn ǻ7h? 4vn_x|{avwn_>@]B9.n'V'N'v'lS?F0|'؄WeXUvey  )B<*c)NNPya$ϘCZ(9&Ua!OD kg)6n#RFä0\gPsas2+xg6:H߯gCjB*7*¯JϷ=0Ȱ00mv<}0]en<}кZ .B]B7>t]8g?.P.stz䯷a6ܿj^>R-]w_avvzn}q:xu͹t<{ݶb4+/?mksM7~K;yOiZ==蟟yuw/bc'7Zagn'-yYR5{?x]0pݕ(?!/X!ݼ2>H-_ |8~! C@&XQMl!zj(zjPA2M8!tX!zj虠GC՟Ahf6:6n 3a9n[H m=WB?s @ uHG?A}~7aBgݕ;3D sBcB:B`;P;:+LkwMzSO&>{<7ACqzQ7WvR Gw2EwwqwXg[{_~>Q ^17= J/A##@C# a#b#:+E! I0p ) 6A@2Fߐ@ qfпp@_!ߐ0@ +y  !`~ |!~&ݠ_ޥT'S\  I"뻕/ VF % Av>QǨʟc~Z]=n,p,лίiT5xxOb/ʛMnkb9[.n+k" +qg%Mm>(^s=' ԹC-}l3vWus|W <.9>Z(qnp8qxg8x]1NkrBy]0γk<݊`9p (92ʤRejIԨr]SNutY49FE&/b-Fo 'Xt)Guim,U#I41( wH,&&Dp`Q$VUJZs˝Q -t;{UWSXݏy_>3S}wHҢ%kUV=%`с8'1N.Q/ _m0+ S9׀9r<%ͤ#.H™9t2 C 'J0zQox acp>\f{7` Y vZ YZ3Jwgɱ`كH:Se3ծ;;$u? Bݏvd]ۘ'8"׏V*j687 _Daǁi:B3FGÂfv +J: D*o<65"bN| _.h"`|fX"` `n m`EpV|KHA $ad4!DhT/h{ w}yIFiNп~ ԩԑʚ~y@ +[Cڀ6H`G}C*h2O A%OWj +N]u6˛-MQ,f-5%8p!D%68]vrr)zJ TdsO#f=bͽW[ofc븞K[y<r:-4n&PtFzF5>;9vG U0.ֱ4Nr-(>>ʽS;Q-nqIU82CXWIq*18ZKs(Ã%C Peˍn΃m8[R!+b4YARҏcCP 7bpq7e<'~,*43 \%~[H&qEYwopnW; +q 8])71׍qQp6xtr[(f7,a Oa s6nڻ#Qip?'匬sN[4S%icsFx&8>4%J;lɟm8h&jƥM:?8syDBʕӡ>Sux8hNƴm;8+ɡY +s{Ov%bw -7̽{l :8 _mq3~DHؿFo>@E`hj}A qEqÏֳҮ>­^\=K9v=\p57ݶUPb+8986DI?YC5:e%]e_0pߴ:WA51)*Zr[1=+PTI YgTH-c /ضO9OIH|+)2YjT:DTE,3&N䣓0cmjzS%Hu>pz*e,͙EՈo$Gw1vlѹgb;~k ZO[\82_YvyFGؤfudح`BXz&\9J]~V뀷!7&v;Y_l|/GKDzTGkzm7DŽ}s#Z>* eGAz5Ųs3{WKƫ"]|ehYת(7,x<\@Ph%͠`(CWv1Я?Xw h .OnRs93oZ㼡*RZ0Qk+!6c &-,q3-i_'.5>Oj? pux]j`ˬhcSR| 1A@*ԛ +4f=[C*'ӣr! +|ҚXn1e);mT$f@bLyd)"4lc@0J^!ZxGG2K@;S f(qTMb9II6Sjv?+y]Ѥf_ujW?1t86Ȏ--TRtSS7şE^#~4OM56ꜦZHLkHVLƙ;D~ +1T ?)"0zK=OYr:WGd؝ 0ȷ>!+::?ۻK&qZ7gkvR;u*|`q2 +:P K`]}u7tvo}ٺJ7v +z7^By*3O? JAu3¾]n@ԻBHgqZ2CxObŒDvh4G,M bJbyocʹTTj.M,[K}d:noƶ(a%h+?[H TǬϪmn0y!znAB4#S?K0_P < P~7 ,pSuK@pzP'D }#lp#Tu[#Hz><\c +(1J +b^a +P|8CP_Bn8w`}_bn΃ǡ? ~}ߘiw пoWBC0^:o{d/-L``j/ǯRN! ͇K 0mpNwz DET+"k_'9|L5g&w% >ҷkkϑ__H_HQ_H_H__Q__PI7"l (/n&D,~(LFޑoXx_(_Ң-o!oȏm$gI$g*$g $g$gM$g$g$gp$g$gȏȏ$gBȏȏȏ$gU$gHhu T']`»`?>$~d#"EmmGj,/r?6fȱ +e>9'.Hf":WZzdU. [ yO~%Y8ey.pooo|.~Qtw}npcn\~g5vL$nueߪb]GY&i&`@v$p(Eb] $?!"[jL FpSԴn4*(Ȉv5kSw<{50<`gVfw +dQXl;EC ?ܣx &޻oPf̰ +vDz' R\ElrY v>[d$`] #:g.| -%!͔): 5|z:3HB9P\őcgB<@c93 BD$oy~:_q鋦GBͿ/+kG:`dbmBʓT>$ʖo̟5QUW8ۢZU& >޺K+ۛX7JMxx-a T`\fzP&8wk)s.wYx}&>a,9q 6f$a$58F#8Ae8c$\ƈ_ Baf)7=2uGIa̩@'Q&J[OP,#\V(Fɟ=LMY*Xum`]8B"XSRJg&I]5^ >n+p^,=v cT; u+, YVԊ=?+,sm3U!aftP5ccl_aD:NNŰ6;GIβʭ6A R*N_f̂F(b*]hi2Z5fڞ C[Laɴc1C`/I74߬\<%-Fv=Tv,_`⒣Y8-͞IQs[n4pFmZZI,6~)Q ԖsIg1gdj%mv(G9yZkpM7ǦBm޼b %rAH|ؗ:(+Q| 8ٴn~bj'%HTrsx4YZQуy6OCjkoKQD{*&fm6'(+nb}  ֔Ǭ1͹ZW#Or tngм}U5oLO=U6Ɋf`lyu W@5,M阃UⳲ;Jbd,+B54Z'pl**QrϩN +[FIfNqFo¶Y+$0"Ĩ&PJĂQ>R:•^ӕ2CiRN"?2e ӥd])_̃,=7M$KSj[B׏.aᩗ h8g1\`J Cá'Kyl$eJнめ\怼(3`A*/cAİtB+R63By$M͠K7I f8Unv=26[723723|rrQNӥ+SkHZXz^̐+7C\]fI[A(0F"")T7~q%!"R ;o@˕a> ֝H"i~;@!r$ZXH/ 4~ ]@ ⒊оNM?ʴģ/8<v7ˊ}?lզD1gڙoN0>^I  ' sTZ]=NTE{O_ z0_iNjcRÐ[(<%zBGٛVx0 +9 4nz&+sd\R%2T]USaỲPZ0n2[ EVbN`Uf!oBޭpglM!\Έు 7>]mKËtwKeww.1<+4+#7w@PAdPg>?jdC븞wkFFBa`k`YH͠\fc-/ "pa4xg4R 1ѝZB&0?}~asG{+U#`襧N NH~7Xt2J"GՓϋvQ`K.ЮV^`ˬP[/ZQTD0¾:k)d.Iӟ/o`0xnNkfq>SD<*k5E#nNAJi ^:5} Vqeʨ-i"s!%bDK2p|Hp7`B BO t(=\Sit0UaD#j=6pEFJ<kJ>lT% +jͮ=iPn6j6ִ!|4nB{|Wocz ұ>Դd΀wgC1'doeM2 <1G)7ѫ,2;^yhvw>lL0j8t-0+OAdtOlE[/ثm}<}֮ RnTc~8i+ >Vq=*Xe9:JЎN$ĪᲡ!HQDzxIZ,['DX\&(hzM?'|'dv5^zİhrR^"iTSʝ}v|r=95hs/{cTLwa.NnrK>8Fβ7Td.1Mn (v7uif32;,<\4>`.0(&.g>Xzui5fMts&& ҹile?al-(ٕ:_}$ O7 1K+[vOyj L7y +KbnXd+j}+V#wvp*+Smf\!QvmbqLLb ;y&`Bǜ$ڮvmq=ԓgV.UuJѵֵ Lel(ao)K|WQ¥:mPH]8E66y:K(|p(<#2w%aqm2- й?A܀|oSѾKOӻN?ԣ添'߰ߟR _:pMg;!B0lVxfToִǿVzCW2Y .Ct@V?:%,[ēmt:^mSEt;#]vW ɦ:ׇv=Νi B",-)H4T#lnDmN즘[ Tr@6ġݨ w"Z%}4*? F J aO"M1Q,YkǘH*SvD1mG$ys,1!°B:_Ы5Y nCTA\z4$'㰫8o 6dX?yG3PB +vĉ +K + ۰ъ:xZ)lN~n8@ϗkoAgGO@ Ϯ@JRT6, +yQB$ ,Ǥ'p'B Y?TI_tN@N^QO¡tga\yŇ %3xhiW/XVeAz`6~ +Np\BM\hA-Y:<Ї6{8oς'_>SqTOĔ~ CCM;C +qC,y1}t,*8q.魰z^dUOěߺ4rLſJ+癩"*%x8KmB4~x QAi&>āᵆI`jSߗWi!SP$=sK! rn-qpu!GhV /iśoÜ I>\ntr Xƫh,>Z$3f>2{hX\R0.Q@;W)3d_Nd%9)r'pU4KFCť1H~tǿhҽ;O OHFc9[|V Fh/5%xȌ؛2`Vqi悤Eʧ/b$m2'@H8}A)0Sb\bq%=({`a`&Jm۶m۶m۶m۶m̾3T%OOWO,Gf͵ 8ou#OoA1$B I MO]KEc0)x# G PYpd䈆7yU)8Rڭ}9ɟY60T玶 Rq:elp&\V̗\ߠͶ!as5Z=T7 KC7a#H~յ*J'6 =!mOB=O/ϱ]=Y<:"0p#Һ{U8 | F>zx ֕Z֙Bf_Ñ_ "iItQ֩z(cM qvZB}g Sh$"s܃~wM"|^}_ m:Ө&k):*O|M@d JR˨܅;j9&Qw6&b + vV{/ψ}9TNV< 5'*N5V>_ yv*ڞo{?U݇\uK]uk?=hUѭ>h ׭>hr-ОZ|Cp)m̭>:}|lz}P6 ͓=T=o|[U}xg=|X&b]=q=c||&-p=}f}rIM1~{%x> +1>Ecv6dl|F=8&}:}=AZ!ڥ墦ޙ .dmf 9ER{+,,iSzfy4'?RE*Jftf| #?y9t4J~G_EޑQ +\<dꑭ~!}E<88:e^k)j hi_o2Vwj۽  ZѮ(n֠i^ 8 N{G(|Sxzワˇ@sԼ?bϥ6Wq +vj׸Cq +PnH3.Sjȗv6(O*#z $ыR nD#GN**U2nX,WEcB@[gsk^\ܢ4 42" >OXmQu\4e mlXgu`ȓ۝[-:V;_Sr9?1imx|oCD;ls +t +^0KNt + +CLJB +%BU>.JBvURZg9jW}+ Jy~ʙw,1?9juWuqO:tm +i{)&_.r-R`(rk1$M)Kh-]3w@3ΚSGy^T @y cm֭J\ExxCQnE04AA} N LtG?&%z#YV|t'][Yu xt*qGQV~ݐmA(OP6<@4nOb6%^[&uw%JMs9 gHXb4_vLO;g{4אַ.7\Jso*W̖^lLpN+Z;fnAb`FL{H(;m}dcfw7N3 9 +ttlJ&ePfhtQz ܄e!sM2mav˳˟5ߥ6 c"Ɋoɷd -J,I`LPvl@05+$,ۚcSf|]D77|QAOk +[zo6sҴZ-,X75:쫄:pM4E5Jf\#ZT!Es #$xh^U٦~vj"V_谞yK +yo'z\LƝ+C7D2 p|{CK:Fw$Ѥ%)Ԫ[<&:6{KpNcta%`GSxB6w -d}V"%<3sl7WIC'61AI@ר3;쳕-;2*"3e8|<[r* +⺾5}3w̢Ҙ(Íe*&͵ӰKaeL8{.Yғj5GuʑKqd@{uI4x {fAMO3;X[R#V>{|窕Jb 2& +-KyeA9Hp uzuuc"$~@yiCO,0o4nG8wӤi9[+]X)VׯpYQ ϕBg.gp)l .\rjS9c}$zh ]>gjX`s#Gmi`ըmmH$؝OحKV9C 'K@igcv#As6:^{f I?7:q0:@fpB=>Z ^hlHA/UW?ugQ0< [UMRB>g)Rl c ŹB;'@<' 87pN:h NHqhNq/ [5eDl7rhӮ 5U/ >s/M_7 'G=8lW]FW?pܺհD2>,x$f̸!GKb2g]K5f1%h1,%[hD'Y[ohCObj*ŷ[bNq*YӄN9+ٻW cRO%-mW☏cn߱*dPu4ۤ '?1EiDDء۱1h *P0"D2]FxVrd/yİQZrDIУD9-$]WWAV-ؑt.D2QVBeV1)ywrdѤرC\@ZV|d$ñ1WVVpRhfhf)CCCCCC#QE%RC.R'YDSCF\)ů)mY$2汳SCGCGCGCGCG߇C~ƻ7߻ZOWOWOw!QO)9)[lJY`JA&*HY١R/R^+Ʋ534 +k%UdfWR?HNu&ZvE;ޟM9ES9k/a^>OM潹y4nHE@Azm7|?q +ѯ 9چ`%[bou#a + yFǶfq^ +[d~ 큔;S ѽ#}9}+[vK`"]%r5K`]:<ɺ [PL9z& /M—-*k "Q48WbO@B: j(^`gJ4AUKsX^c54DXGva*M|EYi5B9SO1*\G-#,TڜVYe!{. v^;ݲfjr_o)>n: n`NkWA[|7.5.)<'-Ҥ?V]N]Jo=lӖFdť:A* mns~+6_&U-=}#8YD^6ڐ;Yw`g6y~9y5SUkj6#s+%bz9d,SZμ_Cv~7 ;0L.eKh@gS{" +Kha &DR|h0C&$75w B{=||cqCgr+y!+PSQ=}jWtC/T$vaK?aćRD_>QQ=X2Cn^>?6IIpvhm ?HmK +(-ÿ$e9K};;?҇^寏^<~ߥE^`Rz,&ő>epՙ=:71 Ht璱5>*D1iA;{.N`g/O5(d[|掵[Kd73S{7p᧰o?Y#ʚ{a^{g2z~?X~Q^5PW|?j0+-SB!}ږC/ D <ˢf9<OHwyH \oy|M,͎!"db Ao\(ۀy/v%ʻɟ rcp3Ge2Y9:10=SJܭviR#^_eN|z +yv~י*JsՄ7ykx?b?ewr|\ygx>d= "6]=&XBZ׀H۶Z$7 I Y Ӛ+IPA9k)dרm)<奋o-ӘȠ)31!=;~oaꘚ:we:^ a<m幸jS/$4H]jI1sx>f3˰tmzao^@4qQ9"ʨ6(TiKLfHke+VC9 F80>dO ~LZ<`36PCKEV's)kJ.%u!)eJJPXuΐ'ˊBv-i4Xxa^՚N:je+xZaX=$tdl]LG.Z,[+ dHByyR[eիYiNru13WCmY-Cw0ӘMLQRgध@qRu6?gEW\?v0OK4qep XI()d!u Fӵ"xWS bLMJS'iEo轘wEZ9jVcSg(&HP}[#aƧ̸,a6tx{1| = {*4 2׬C`K+t,HlGzν$54(s: }mWY2.ik7ߵ)̶¾;&.i zGL_ #MyFl\I$zi5w)>z pC7=]-\jWvA/}I/!x-N[!zi8HW[.W`-/a O0 Wpl"-" ,%bɼȍ6I42"cç^/xs[,ɳk9(;&[ +gp`ӗvN DGmG-!Tb-v45ܹF%GɈ/7wM?;vqd1cuU$Ի"i nUL4LU:bxU>y^V ߰dg7ȣ))qF4QP-1 >pb<0bd1>Q4`@'(|~.HK[OciFK,*++?m_oލپ + #gp?)K=ry-y@87FsѼ!J +#7yΞyQPpOĐ#% +CTмDVp*S7c>sLJҞ4ᢏ]!=k,1 `:5ɺ)yRFyR9cx}IQ(Cp}YIJ88yUΰe_]" },@BF#ۗ؞hp}1Ec2$Df<9hQN_6Ax{sgj֮AD{""Asz-ْ +u aKoiЯ6gS/n˹7x)t- ݋۞a˥72`wq0kCjOnDH[zw}zH[rHEN-oh퉬a[ddIgt(d.On] ~ܕљMnA}A_D /$.qg00rwr/# | _ <GVGڱٝ>/ +=_X.w_V\!f~EyU{}l%O"f}[_e7ʞƒeo!_%JCV|>PX!P>\X7Й750m|||bHV@[euƠG +)]9e +C8K $K5,ᄾ1 9rBc㤉T$4^d Grtb2x) +0P0 9E~'2{',2(nD9-56?z@r.ׅ,S$j2 +lH6\:o7!("Ȱɑً46bDceDpyjʡ#oUy;w_%yfo_~w9F+x_vcdWtueߜ~5-`{Tlf|#U!I 9%5mJG_=Iv u_w!s>\ uf J`#dq ."*$ZYe(jKǁH{MFqW֬ڧ&>Ѭ(lm㛕3mhH5ï)1p(VpRvwGҶ|T˸"Kܣ1F,(խj|?mtm"15ÑCVl# B8]<͊Y *˸`/v55 4dʸIm)B6 v++"  #¢mXOVVC66ˢ(k7Sju1˭bO1432^ Exm͐7RQ,d5$SK|144У8Ʒ /+k/QF1&^FQ۸,Z#aWŵxmy(aqA_dzqHPuX:-jm:d.168I՘:-SնILE88 D͒z&%텥֙pmj'CUrqHiHE =f"c@5EBV7&:ʧ$F .:Qe='i X5at?B_h.׈@Z孼GHj-XZS ^ f"FiU6*!\݅m~ӗ9'@Cpu\rՕ+ȅ;f"ȇRQ +W7 b2S]OmA4!]#x1&>,C^Ӿ3a*Qy½K;y,ɿoL/\ +P۽;iea_q +MWYrNN^"<@QrKQVC5΁SvTKFdݭ +E-Q\ BOKS{Pa IXti$qw(­P24חQ56+ۊ)^̿nNf3H0ib*cj]•tV9W\p&)v2&'SQ{S81F\zp6ivte/4i`6;P&37 i34yD3UbB6vC%lN -h(MY֎&elcs%=6ސ3aX#p,w|Ƞ~E +$bfՈFڑhaCE*iR @dG +BѩC/\L ‰酠.)E#:ǙSYFD`"¶X)JTs]#G)=O@+FF+F.  b-DD`jB!~I_nť%2(/'RBC'|&Wb/l[W*ј! 1 A +/ [ NQN:(5TB4\S +'7 PQվq-!PF:gǢL:ũلkjoM_˭S +u‘)>9d1M/uj%_Y&V~^s|MЯYE0 Sң Ћ-O'KOW cd lʑ(mjNWh9kvTIC3ifCE#Oe:1E‹ %>2GaB:'I+=Ħ\UjȖF<Q0[5£r#] }OjWѶ. ]nE?dt{$捍S}Kvyo"E Uelv`ɸc mWfvu!pW,9שc9]WM@ Z032\qjAn:ڎ4̠wKh%e9&n*m{f)Sg uO3#Ery'EC?TxH'EC&3 S Ɩ*.2mkmdFbEfCKLD0IK'ŋIl5/} c /Ϻ3-yU,z~ MAH9OY%2r@+qqij3۞Ck(\'~!"Qk qw!sИ=X&DtVo9GMvz Q.<(cH#k(("Rd2N A?+L{8SOYʱv́k2|lx>5Fhc~P;aVhm¥^0_¸.."[qGJ&peHS7#\$ ԍqYܟaL!aU5KjJh|iRS8h;9^RhA8>jf7cY +Gpo,%I5oi sΊpbn28h1tM`]y*%ڭ8Xp>sls7Z9IHtsef-]TloB\շ '-\%r栲B)LNI`0x mky&Lz)%Eq;Xy>Ȑ*t xKlidܐvA OҊO 7+sm>oipz'ڕËqu3ޚw{ϨޞRW?2\g~~5\D'3[u8_7G +ftjqpㆹ5,zb'ХvBZB/⨱1q6Y6IG o`~x=-^)q; ;E,jV?i+zO?d!^24!/[#0H'[c-@ a>Db0|TҁZҺq0Q@kyO 'L6xY<-\ME)ei/s r!71:NAݿMF'2h2cA0hbcy Pl8%r:)(`2zXvg]v o{Tu{Vlzl~u{\z,Z{/$KB(~vd/;ɩWuHE*y+h(~Folrz@m^zAVVHzBhx&Df*uEmj vI&|u)z34/\mIט]xr1uK4biH}Жxe  _Ю~Ĕ|(PhMahMGMZtX+oaGu&,~&vU8ް"aUmhpLIh})#'jck;]tnK6j" F| v-h"Bl$qz$Mm)o!'-Q [,I۠,(FFbֵI2C~R-$8bNÖ8Q7Bgbqd + +V/o f{K.o +Eʤh@L @_GczCFT@'hHIZӏT{ (K,0TzdԱs5<&Ck tjaXf؈D4 yUBVlwnZ7I?XmBSNEfW䘭Z"R10U?J!0V +Y(A筳B֚L !(%dV q$UR(s6\.<.gCbCz.);\3x_z.34ԨӘu&;zwrxwx5ůI],MW[3iӘm< mLoK +Zi?$zw$1. ˛4/\gEsbo#qŔΒ /܇8Hf\E|ldqp[ƩH۲_ F&L_~:fYCܐ.Z-[/'¡Eޯ;VN=x #-6be0z@ʲdo[X9 +, lc_n +[4j>+rgy +r0Ƃ!9#\$ѶTku(03sB!ƗXhȋA֣l;#3údX6|qI o5$ mL9^ԃX%%A]D԰>FG`40| +Țg;AsDf821hB# {BJtǦk(Y> d,!?C?ۢ 5?" E'XLyۇxyL<3\@cR0ifD}hzy3rUNT`-&}m@&Խ$ǽȚu.pij(T3#q(-7_lޗ= +u`#G^0\_cm(tJ- UU(&)0Oum:@YRGg&I!p٣_<BlA_/ + dZcYږ_>'M&r';d3sbd -n$3Qe =mHTՂ H({nLF5 {M{XӶB1{BgaY}=d+9R eUVlFY5t|d{k&xfE-4JE)N-[#Z@s玽ti~)RvyuiUԩN= g)UT6V`3قU}8H䅃K05?Fl8%f4p + | Ix) UޙEQ &U3fڝ̑3Vd&}cq .}/{XCvZt ByaЊ)q9CYo|@Z ?ZV#>=6ਮQ +YcSgOU&f#jæLzӕP- Vit.YQ@k=RKO{g"BhQZ8eNLW"z5FV\]QrE\A:jմ|tpA +yTt˄ +(07#dBygHrF:ݠ@-8MXq~W"y,URF׀-&Y!CHׄ0%v]Xg7B.,&kȓBe~YwRRfE0@ݝDyNg7zQ^ZqէhtCl1< 1fH_}]7iFU4^JW5VZ9J͎FcE?6?kTWAD `Vɮˁ]Xj!Ş5˩(VW)7- 8G|X>.Z4LM`1@5 c6B3Y $6WӾL-_?U^ͥUz?: E+÷P>R/v-3)ikf~gRtD36 6\z"<t`![{yY;ٺ$:-9~x|YN ht47UUK QXn(=(9}n_VGzR9LxƇ^ 3>2$y3p=Uފ(ߤdo4yk).D іG%[: 3<;`?:huU2\kpHoqf1vA>yE> y%Δ] |J.:>ټsb:'YR2g\V0.9s:[=Tmohj<vO=#ۺttXj5ƾ־޹圴}{y2gкþ}k{w|`f{":sn>jn˾`|l|x|z~0~H<߅r@0FOr޿r>xrrrsxt戾显榾派漾ʾؾ_lS#n,F1̣Ӊ'e$GI3FXdS8FG3` 2,Ӑb|!3墀R>tubE )xbEnb}㧎g#D⑧<|Ɩ> xF. u3o[!/֡y};~ X< EE!J~+~'缳<=d v!DTBDnqIE<څ*$D^H`H@?@RuQfnP߅MߑIƾM˓_L L*HPH(%_H,%w*(7+SHWx)&.WOjMpe=:J/`g=9j/M>LКh8rQ3L^CLF%LH<$jekWUK0LQ7)l&v5~{LQg|d%P&; &[QD)g)Ri)VL)Z&O)Rjig4 +l6Jl$4jtPh0&U^K{hv𜨜& &%{yW:>ȿ}Rx(yL-Lb0I8=p}Lfy*2Q̩22)utȸd&U:nב˕KRY6~ZfU>Wj$gJTJȇ֘V)ũʏF@uN畯O-k?Uo>)`X&Ul^uk {U E*aJ+NB_p?!4'}nF+$q7tj/cY~Lul Y1&ˍjQw]Wq٧v"'mr),1ܶzkQwFkAvukVT*|-+}@ lX&u7qY#;q$',l?kh<{9ar?ᦦ xY+uP˗XgB)N.vQ)oX3c< O@JL:A']lA=o}WI% .ޙH:["ۅ\XTJ# !OuB2Dd$2aVcK0;>M[;2~X(U +" r=,XUnԽ3mkvLQk߼-!7=F˩haGED8=A1q-̣i b`1M<|,nFɱImVoжЙ#k%q#=٪9B, a[*IJ%lA& +oVo2ELG!5h ){T{r + v9՛.pSאѾr%LNVrmlJ{䙾8G؛b ,M75TGc݃B?zwk&˂]DWJNnd>p+7D72L#)ʧ&<$y} gV̟r>\Q?;i_6# {a 'H۾9q+6ߊFmVGkۊL7[ >ۊWܺ7+8ag g(k}dW? EzĽpgg'4nLW3+_h@FY)ʵw"u]qM =Z̅4lȍ"Cqͱ*1IM/E-qdN yeW7"/͠ݫMQog+'z^.%XéAm*— qwzNkhm}|;6!n5wLk=*˪۪{@='(&.lϾblzK-0ɚjiY@kDZ R+N#'HZBB?"\F{ 5IɜѼG9{u|DsOjǮHEjfYiZhʱ ;[х @?v/4%}'J d|޶2;b[ɝOm6'9W܏ v7:nݘ%k5;j +~Y] I,= 7[d?7] gonL߾w4ֻ ?LLP%ّےǼ ٰm:"Z\"0b!^u:k%FYf-G n)֣)!%"X[&_!22ѣMiYYfV[&7Z a@% KXVg ]!ׁ~1NX*@MvfbKp^AuR+|)MApvY,MrMsMZMv AY}oޢ^Q&?ʡ5Cr>d0 qJv$!ZhvjхM*s# =ZiAYrzcl$,AOm*]aX㩓vzwqtb +my{Qn e&j=ܐuMρU=5.{UOY<UJU@d t)fV4Mv@KZ8LZ}` +9O>m–q"(Lr> íN#gjY,wլliW^j<%֑ؾ:|B +zeEiB(ҍbM=gF4W_rHu-EAϘޟxOR(+Ywܮea~6,K1[7!okV/f_OQ2m7I[ڼpl~) l΅0RϝS<,95n lVˏ_qwf^aG1E5n+jBMޡ +D<:])Kr ZoXoUxokt!BLn庰yG6SS\YuT7cm }oPSkw&Cmȸ$rfo4J\Ѵm,=otWX4Ѵn ,čv $&xUǖ`fB'C@?f끚6:d;òUqt4]bpq0W$f;FBz$Î:Ć@][CCO?>_ Ⓔ# .c0~<_8Ҷ0‰>"s ȬOmz&u:Whr\@%Q."Rܛ$}!30gFc`dY`Xy߯!b\ C-6T-Ka( *]Ly~M `dɒE(bXpRn-H4!Tow276}'oQn0sTo#_moIޓ^1têZEwK{@z6nܱ6_)k|@F6c^Y|݀ +%X5DlQ}̌zbU-sThRU+mh˭⎱^v Ǚ]A\yBv59'T5=3]b\{{0a< Uu,n9~R];Ӷ9@\W"!m#BGSu9ߦX˹ΥT GJo/3ڞb^6'}>6cTc2vLl6x @pd=2[@'5GR}epzo^ɾw`Y8AsUa 4+AtB*>Kך 0_˴] K<ԡ,V`Yl1ujg(/ff@’qzg "zW䃔],.fs:gPy.R=ݲ2^ 5@W_1zYDGu+FNٍ>OO X\r,tG'4+L"-\ɿP/ vaqO->ue4Tmg'c5@". !@f% Ly&+V4Tb[:"7+ymbzظї?: NKD>(XwvQi\Jlg_uFGsC/JU,$ +ګ})1Iˇ!~t6|L/g dB>/zVU =za惠] zYσh2<_d'oE] {y:{fE`-23ZֆE{Z88;d~z&֡N>uO=,gX gr۸{IxAvl9d @0SHK>v1{ Nf/UJ >:?27ʵ$8UD\;SXхáD;챵4 |BLOV)j`IǓx|4ꬑt`?HT/U+km5۝2혣j6☛X u[K M {:7jV%D8aڎoe t0. +{%Rˡ#4^ f0"E_.9TUT +9&\L:ESee=W5(wg8Eh۪Yy{MnftEyɽ>ޕKt{9ԅr4D/|{SDiߛ%&/+RZ5tpH}I8ܵ˰ ўO5>ߗev-qEp҇ $sG-5@x +hqHAS"}ܾAQ7'9$KoNJIѻ8*\BXPދ"/f֪cr݃vދty/ b=;6gȐg [@˫ r-;NH*;I4[w4ʛͬ%蕇7;ևrjl9fގ|][05Lo^wnlL$,=»h9kLA)}8 aE_f/;Y + Dc_)(ڎ;TYe$qx.ANWy:M9e'Fn0:]6w\ =8{d.^yzk75l'n]:26#3{ X:Q^Z]#S&/9d~ %׫g4ϐF34,DF&[)ĤTƐRlZ0IU\U&\.Z%KIG*MBAY:n^%+΍[]P8m/GKЭ; ֈ'YjVi+ZWPKYuo• 4K џW|"Uk3zf,#ytY*l}]R|J,8,ltN+#HKX7ҙE`>~x= o`wY*XN!okCG٧6872k3 n\51iI&6+?`n>RhlP@ib0sUX~=X %m…DŽxG"H|aO!3Isz@$U Z +pS;jxN/bYZI>-FGʁC60ByO%KjptQ/')OU+cHEfH +vuJ~@sAP6!,}(<|q"YM -ctD)*( E>Z).S[ % L!] s0g!HOL[Wpc,Mn[B!<HyoP}Hԉ:@?@/,eγh0`)=HL Z*TZ .7BMzH|()s^ ANe8Z~žqʵ3T o0Rq"|t4.Cl8@ͨo(j){n.;Q\A;|TRR8.is8HhT>͆JFMfYz,yf@ +UXݎy*q[}$@vhTCwR)lܠ턱I(8yUFRʴBPD- +;32~ pN772QZ {.ڽ1|"vf^"g4Cuwv 9;!5uKqe{Lċn˅ crgFY/ U$eMR'AR&kIwscI `AsςRq=r\Wq4_jɡh]DM UKxFlԺW gc)oh'Sbxq!41j%he21KT"-@lDQ*̎8+H5U(0A% +-gXl"m> 5miWgEeuy҉hӚ8ew,y4(8V VjќM-O$Zajg},{JN5m mmxrBrl +M_R,mqyIf#Ytd#k*bnEe˚ .E$ahMdln:QQju:z!F*]9{(ovg%b8:aJ&f؀ +%OɡHe6/:ٺzq!/d}bdڃ˰feu Cr+4Qk{rw!" BĈw㓥Cb7{ػxDJwߦWa{Q-I*4.˕ e;Ni~ᩍNuU2\kd3[ԧNfs(N%|zi ʑp`BPa!v;[:IQkD +MaWxw]k# GD=DkPffv)63W+''$s4Q]rtלÐ<듢w0;qh靉R[DB-qJKD KmQK;gуBu4QJʕtj +Ғј + oAKm6l ]v'@q\ 60%ڶPS4["B6uofA/TDG;ubz$#T;vYϰvFv0_ʈ= ėaw_e!Y2΋yncRy"I&*[ގSyĵ9WA[_' 70WyZR=R= 4 ݛ>E7]gofh +=-R;7R2;{\63%rge w=Y6|)~eWS{dsQ &b34_ Y~K;KIHHj=pe8GX 21:5}x"AWw^VJlPΰ)waSNxov|aeW%|=AT;t%7%67\҉2r2L)%^,>&#L#)\~%g9BG ?sFJa֓e,Nέ8rgQe.Ԥ9 ?調y$O5ދ~wT3 E02dK?2J&AeHO GXKܢJ[]ڦHY[> +؆M܃^^ن\jވ&Sؐ;ͷTA\v1}%ad9;pC*0B!6|C!B܈p0ķfw^xڰɷw{;/߈ʃܷ7ʾ!娙!1G$w8C,'sWaV5wϷa!%#jg`OV:R y V + DV-]H?(u(C}wat+yI .f%Ѿv'ѿWKWLD'e<^26@APG: A@A@Ri5 3*, {Ж,z(Yxnf9:|YXshPT/f4DXk,3se pζ|O nɍ7 !h[lҚdwFwvoO.NnniYIhߪz%F[IDR-^A/!ّ 'E`J#?CI`Jp\f]deJz/mMnssMMFUް}ҭ6(J RuT䱞>YĠBG},UTTw(PmL %5:c]8B/]a{YuUlcx\]xD])Q)/f|u #88g%aG}U D_MENځwəA5ERyMZMaمEړ1ܵf u[#FǥU߇H?U`!(.~ \7[[-\7kXC{&)ab0iMQ$tS]H@UάyfG^ͯVitw![C~}Oߗa*tku Ӛf3p<|v >xm_9 \/]S_D~!/lyav)3事+~2׭ɛjNM+. [&o@޾e9/x^/qf_D/C1`.iֹ[N )fiL&P?X^pxKc*xfPʥ?]wư/|&('B/d+\b,$nC,8_̮lc{rQ+HR Zuе^Mz*NQa Yvy_:KK77I+ḻc}*YF)m, :~/W5pGrѫoؠ]am˞-6{}3c˕VR-cHv}}9|q^4MS{X{jB۲A5Q\;<תhs'2"G͍\9u2f5_}bGX`pʭ?vݛPCR+|h*i.? O?D;6mj~lrk?@= {NC2xDطD7u@-Xi߭ףNRFFWpz1ڈץ +b^{=-8_Om3 2 Ʉ3-Nafγ fF\}ׂȆT&|MnuwkwH'ok"|tōUDݗ+S|51>;e+fjG>xQ i|kClQo:; %t@&on7OG)ܜg2>#)'l~H;i>/8(y׎aߔXU AE$5\n1?]K/ɔT +me,-bP`2ˤ!SdȆ:"'ؠbQtc`DEg%g A6!-'7c"lVxYbh2+Min l|D$"/2^v@7{@җ^LbS8zb2!B\EE=wl&JBM&tbuBb` .ۀXܹ= +- t֕13˵pbA3lJE>L[%o6A+ Իs6ҫxCR@+GN|݃s/ +%#C6>C7{n4N(p_0 2BzG +K-?X{xY(.ƃ;5X5  7'St DR'M!5vڄP~z~cF^y0ɕL2vDjje>ZȨl-B8BAjV4WKdё +%t5tS';/Ҙfj'83nwf2cLWU#w*hzў-Cy/ /l!:g'E5: .<7ІD%͆|k\;7ʙS1.DIfJ=f\*饂@ׄE[bJZTbmԤLjjRݍ4*&0HTɅJ {/-Kr,i~=a9'n_Q,kl:fUɆޖFѝWZ novg谎gk;@F[bst}6+f,o{\ _u9z5x)L +GJS" W+r>]gt6 ؇/SU 3lɶy6& քw9]9BcBfZmtl/vp7g/t; E::kt:s )l +SRWqQNڵSyaO݉KS[P2YXem:&eYjP_EWk{?0ڏE@F{uHC].V3KcgN-n]n")?h!uhl7'kt7Gkz7`k?z?L1ho?~3X~FqO?ib;N *ub4>@I儵L*[.)D3 yO6B!BJebCtB dr׊|X~4ijjIbW0=IUA>L=x2@m_jNK.*I5y[*y/&ڲR!q#˳6|ס_HAh1a\r͐== 1|(2C3,wl@s'Q>߃3|)?}YC}?Aw=l=A—4X3}\XowgDAi?xGՍ4]hLa@$%KlV!cDDiL,wp)+:#`/28a**+ÎĸMLĘMLX3i-NalraMb<e&5&$~X! S3ؼҁaH#ؐ)H1jrr~pR~6xd\(y{̀o} WȤ,B,:}dE?(&YxJj8@? 3IҬphf*yu?-gR]SkpSlO! bJDlKV4z!Bb:$wC uCL윔8֭p;Kg.ww%;jgy5X#HI8G8lw+ױy >PVJ^&甄$'܅|Vno&m&izi*]J L )\Ŏ%U2C4M42;&#H$ hlHAjo}wNJw֚33Lވ3Ŗp@=ٓȜǦ==oxՖXoy~mfyl`CF;0Gavg/'Bև0-.ә';@L92 );fџз~FlrlT%s/Ø_=:D́rA .x.&OlyQ&vPsNoe>ۗ<毫=/&(FdZ?*J(UL47ɉ<)LĹ"ALK%T /fg=V,J&o<< (O&ټoٱFG.ϔ]' M`^"ҖT^ +s)03sbuHk`ZrC0C8۹4܀Wy:4(\2`^ K2LM2If2t>hGn}ݞ>lbvOጁgЄG-Jy?SkX+){-&zNoauI{~O!zFYor==וzgnd#E#F#G_:3U6_Xm\g MEQ}4fÓ9a~g#F6zH;˵e|4Lۊ/LOnww/?Lo,0~.v3NImP/G:YԫUN s[\ 8^b=Ѳtz!XOW_r0„~@Gq 5gf'zm'dΦp͡O `DrU +kqi[biW [_Ya:߱ }~(vsK@7g[Co% ~(wSoJCx+/ۮ0Sa?-apB_NIA˜}Ϝ sG +KQt J.6Do4c{n83WxV'݈w~1_.w +0.TFA}hHoi4` \%!X4 7Q&*PnRWƐb<3cus]y鄇S/v] ]/]ۛ?h{(%OĶ(SYL0S*Wǰ% =޺谦Kdl҄ "s*쵡Jd |nkU&Hu Ǧx bDWXG!XO.ĈHb@M\bĆ( !Y4](S YNeQ eĮ^QE )QE qw"< YĿ_<: }!0Q#A##F +T byDc*x%R28dQˈcF0 +)"ǤH!$g#F|*YhiQ#PaFDz9$iDsh#h BgQ#G#yiD(Ԉh"s"fQ+xQ9k##S#"yTt@GH܍F +6µi#0G#'G#FLҍ 6:u<:aiam =D#"Y?vZv\r;b.9` QŽ t  E]28];.iR T֎x|hj G#ĢbcH;y]<-<-<.Iaf 4QQ"QgH;tz]B=-R=.t GE;QkkĢ#"2#"GEGE#"oT\?B.=.#"ox*/  DR/#"w_#w G(>"x|/#"z jQ?$ m}/E#"|ߒ(? u~/E*/ԋQqRFGQ2GD)DDElQ.܊5EQ!E nQI((WUE(QK(+Š]EyQ^S +)Hj+PLWEQL)(,*,2<)))ƪH-ZĪ) *(.*!kve#p"aoz".AY#uBiF,e)-o1`)q3&saLY*i4?ǎl r\4_N6ˤ7"t3VcjG.@3TD3 asS)@lX€4@!eC Ỳg Bŏ1ytfD)q PkQ*_ l TBdd+`yj;#jU2,ic5pš9i,,)#'+C<cɭ1xQ fc00u9s,y( L2 E25+3h@i}ŹPn{KuOcjHٺ~bG?]}s!\󈶗b.*B9f7{;` 4lm`޶ЍAZכ_ʛR36ꢰz9hFۈ@ Cx8P0N2=FAرOa\S<ڝRnN +/yZx{cwARwV/S( +m*3Q}Lnvvu+K2L H 1u +܀,C(ѥ(Eu{Eɾhd]J hzmo2*P#m``y%x)dnL4Gvv\ 3M## Ɋנ^>rt}鏬dal/"bo2q;I-ɫ 'ښQ;PԬ7SlJCWSNBVэL'- /$o(?xKu70߬q)gLNJm=Wɗӵm +[liBUiìɥ-9{j['~l*&?-ZSPol5~w8? +Hږ\鷗CvLE{%;;vwy;~.yHu#h۵kOI 7}H ]e:٦%.An94G|]]ah0 @ˑ2d+2gö #Uݶ|(&~3}ODŽŴF e*uF(CWb+ Rb@@X\KL6ybSC̐y@%f/,;zN^i'(trr2, ddPZ"ɱი2d e(n Jb/l_=v +odn"8'Q҇ +NN.:eS#6Xt$$$"2DRdLx(Y.b!cߛfPD);iDif84CJgJD ^r_QءI .ۂj!w3p]8eLL>9 :rw/cPNY!F3N:$r/ꓘ3+6. +呁̀#m^ c8]I֛(0_HhMu]P)unp3ReB&6/ +LSCg]:rkfq2ߨ_}M\A5VR_M]/)f|2eRfv;cxzWWJMeڒˬDr!őy G Llf> +^8$~KˬM4/]^s߽μyLưwGMpU #Xp3 b>0}j>yW+ح<9*@n.jIRÄ,z,Roz|)`c0@JЋG6N{g]Xd,Q|/[(ϣA~%ІSFhkHPƳ;)UBcR0!lcAIWh)ip`C7'mH$2:wS0CS#FR emL(ڳFNߢrDqK^x(jn7mV!2ɦ'`M溨ݣz`Óq*U*D_4; +?'mP3XL bQySG%UF) Mvؿdi C=E ~@F&օׄIB{K*dYFr]jMEfʘdx =N$44aZ\2an +1B aBDrPy3}Ddxl _-fUh=9ZOP:9GFkMAmWw73k`v&=^"d +?2u ܏sP vS剫쐻rC + ҫMbVaDZjTL1p(`JlS5,a$.c'k*|п_QMÍ^%y^Z|ܑ'vϓBO)8$3Qs3ɝn̷iL=zp1 +0 vk:RdcLJn_1N&FP` 18klqG7^(yT0R#baŹ.^:RӼh}3M'X VԆЪUض9 Ip x@_Ôyphx@v)infyҋ$Ih 4gPMPe8UBT_#(:Uv\Uvc-:ܕ79ww}IvcQvOoxE;Ɠ;#?4 'QB5n& EN C&sA={zD}ܑ>I˘ׯ_ 5t^T愳$'IhH@8kA "mv x +0@B %er0+} ҴF鶶U BRG^W~Uun麮q͒vGxϹ}3GT} M}Ծ= ??@ľP  [z@#3X_.b +W/_ՀO{*Q_QZ>iz0 oD憯QFCE=&}K) |{-$ʇxxJd `IA9P&ܧ:2T9B2ɞh`tCOVa$]){887vQ͹E0ۢ(0 +fάn8FpVsT8/ UA1*A(BQRUSZmj4-&hRpSI 5l- _\SanjNmlfQi#F&>l2 ibn%F!%* jJJtʃhV"P$hgƊc.c5zʂ(6R~lc Yd@n6JZRdh-kjRYEc>prK 6{ZVF&"(~8E=zAkh[$0WݪnBcQÏnER|@RiEqX͍h#)Ds)-b觪"x$Y.(wӥf6Ef;MLM鹾mtN~-S^7Js:k}jc̄&#Nƻ +7ըPZ`k^9u%M3puPf!N)[^z%_Ͳ% u kwr:ss|([U(RQyR"]CJQ?3Lʣ35lʣ37ʣ#nqh\šZ$9 IτٛWNd泼`jeTj4Bը,8SnTLh1ϸo@劅[* #/՘+LkLfe!fC z36"A6eU\HswXOiީV|~AƑC)2u9],'V_V]f^)5g7-MU$>H9hL6hnX6D^ݕzv9̷7ep PcvZs/l8RvJ̐!b^Iv!ݤknM.ϭQTwLSS stj; +>]C>QXPJ:G-]C=h/`g.4TvI*Nrz)P 3чt(2氤|8QIE˩BR[+]<3j`.E"2d a*kH.ݏeo3",oNCl+2FCT;*GƇ/k:t8Z_[wNzz `*&1pAW>֚HuȻnLD#RS% M/\_D`W\]M)*_7MqLd4_gʪ_ޛj..B98,@ 4k77,,?-4N72TLlwU/`]0d %ޖ l%㮜닰Ub6+|}x7@u! Ab"|bQB2gOA4$l!j%..FRўUAMZൂFm8-''\(xϸ9*˭za9f]4yj5HUNzinor^WNGSۢhҫi+~a& mzыtgFAqW a?ŬoP|k|3r v H|,Kd%O|L2hKե t  ȉ=pBƩ헸[ /ͭ):/~e@TtEGtfr.Dt])ah" ÿBص>ݭUH9L ys/ MyD%U~L='r76~8f8momW27Ѣ)fO ogZn;C>L h7y8un-|.>_JOO/K! ־!T/]ݙIl2;6 .2,KȵY$u0E jVNԴVtu} K*wm--O޶q=êҼ>I-E8KǪuw6O@yZm:"i;ccNSsJg]<+TWYNJ>>jO;?-R8Eѵvƿ2dmɎ R' +$J"f>Y4,±4x(Gb +Ad y#fJ© &:o#[d@.Q#/1Bd慠"wXs +'z?PK%4}.>-qp0xMHȔ`GSeʤ IYK}ca^E7PP`IpfB|ci.Ͳb&r܏LMhn+[ Kӏ$D"k>WMު}c27L\&#'MGߩ! \U8Hbۢ(,+EF6-XnJT#X[k +:LC@i=.MP.SCLKs*bV \K&dj:*ԛ;9E̅b0PWRCњ= >ZX\4fm٦Pw~pc{p3LP0f8.v<12bdĞXl 2|+mn.Ne #)I㸟|cc,։Men/и˞䱴[z0״4F"Ē_$6Im\ۤ96 s$6>=/w~/OC{?wBQo3^p;;& elt&_Bi4Siߔk%u]R媡P ZElKTV`"le5>ړ}/T= ـz+eWb&@D-HG_ ey8Q疩PE/ҙ&Pa@uvƔX楀³+8n:8_ ޠ7Y..]NAT?t*q[_Bzq\[=ǣ*D{  at)<,juGZUedEވ9Nzll턚;B.Az@,R׹N+~V4qPSB=nS0U*<*)(j>-ʔЀ*Ԥ.N`2%)/L_J^:B*?/ԦT@S._m ͖67kҥR-_MXۂtrf|k{21Gm~ml7/a1{ަA5%@K0hnrqywx 0WL6$O wC%N4=O/P^e L+%*f \pJggC@yy,!4R=`{ҰSLZ4R +sө`]KR̻5ߩ./ΦSd^ڛ6`+XymU\3x齏Eg3sXxxVqil9.]w30gȬMQXrHik/xb/]zY6JL+ZY? +nW_[n%7sۉWsWwX )n:x5ews3,m#:xܰ,}uO*`~jYk[ېJ陂R(F.FQIV +뢨zUwFȴS/NwQ/BqLtBUZt-IG:VS/G퍷 >/z\ ?PAx6Ry eEՈ>}!ac0VHK +|?gG9Qi_2x.6vv.ʆ3祉HjA{Ygr2ϑ:F E2L HU?`N0ENDWo|Y*!ȃBFZZPiYGVUH%.wpYmY>Qf!d.mVږ'w*|u'yz S-.s+o[*l]+|i_|~zE(A3Uq!j*XX-PCܳwh>MY'} {y]O" +ܗ#lw.|&%8N2NGgo-6oz^LK*zi\6pbB9IAW%-Nk$k_%`F6%"SsT1![FocJEYmkEcg+NvxthHB4vt);+[)B N^ \&g6X:0^ڡvPeNNEL+i)/fm˳ +#AWbiM ,J"&w,:b&FF'ۢB6ޣaņ&elcPe#j,[$ +'%E723kD +4]õSi/Yd"dǓ'76o,JNW/N}<4k6kz.ςLik|l]\wԇQz`\MnYTM<`dSzf@w>E# x؉uxEGmp1`kPC0OK̳;%ˣEl%'M]2g[O݁ '@5", 7w7]Ѿl kwK|dRĸy+S#Y-6wת2c@>^(ꈖ֑CڵB`gN)9[.JרRzSdHf8}y^ j"jXVGq[}{Ԍ{Õ5h)^Gf̶`]}r&QZ$o1v-mkd=IT6K|JT'[ҿ\^&Kڔ̗ʾ|zobkĊ+_GME]l^~\F;U.k|3UA.YTkސ~97+\tirlyDQq6^KN PZys/f]b16y&s)mc ݋}wݸ56ep3ǧFq >%L“?R.UFl3`z^?Fz_M53)15Hrݒږ3ف1wEoz ldʊXTTZ Љ+B0 喿|Q{BhJ+Da@|{A{I24ȍGϨ3sG{SuDat @A<*Kȉ,h%0Ǥ[͇wfc"Xj-HnI:$j$oYX͚DˏMͥ]t~{~g ʦΦaXHSȎ+a$S_h0`Y0к#N_hV$. y5ԉ8yR?Z2Ӛ5 ھT,|JuRe8T@VX B\'x_%A\P7jʎ#X\ESX#\[Fꉑ/7,N?Z aued)bo.́ +Q >7h +X6?6h*J,8xBuU]٨[N7(OD樽-DFi A-ї7ktVDW2Rˉ$F6b-3WU8ꀸ"Ԅۏbs)^у8N/<,xO*̮6*NJA{c|*meӘ&o=F9&9 `Q|]|HƧ[ !G49 |BF}E_\8R'E#weGqj"۝1-V.uF}lriP r+zj@+㪂ۗ W2p /$uV|N {Ytwts2> C 6%kp(3$Z'˕Nr&5|ԃ3^ {CvNam D*}b^|ǂ@v}mDxÆ\'Y=+[AtS1n!Z*"FaT1!]XD2USf%%$+E +L)%vHC zTT<Ґ +C/'ܕ&U4PMR2c /$vӬ/~З`SnoF#= ڇQ'QA$(M +o|A 6Ξ]?h[ZU73'zq5LH|01FO=pbB,mgCXm:7kPIkk +BVycg=K5V$9Ƽ*#ͮ\^=Z7z.+O~ix'BϓY}̽T)q$$0 ;kQ<(,'8T*0%9SGջ ϿPnBUC5W**'p[uyoP Xկ~*X(jo\rGUgKuӷ2^~uX!^u\j[3Q#xz.e^_ZYk __.Tw@ڃ!b#~n +>28ɢ}?Kx^ żU< +T1e<ҐG偅1hzTB3c1K=6~#HO3\{4ҧֈO1gUS1iٳ?L#1)"B(wըI(z(%zAjB=z13"ZDI8-?QdDm-QzO%]z#M/~DQQQ+:JSӖA7ҏiу^7'@yeA&v5cgp~nzBww󜰚`:8#42V'm$dIO yr.&)!T"yWwBh*걮"/D:f:A72ŤGS6A5ɝ{54EyWSU"B*)\PV!U\ٙ2*D&ֲkՐYtzSO,?DO?lifGkH򗠌t$W1l8 h8珛F)]ܗ7A'BEPlh@L`AEqcnXdn1 ģ9&CW'=o m +qR#,ZJ)E-#ï G.[G^B#ͯP87G[T#/#U<7Hwn<⽣LnGx؍qQ-~\1ιmAn@.6i|;[DYLo!D&P<lxσݛW<Gѽl|>P?f\$}N\fEϱJV}+بDv\_|da@lX~}D]TV 76SUbҥ~ +dw<=Pi Gt7x&߅s_PnhQV rkQZ8aR[,E[t">t C.Bzԅch$W%EvK$[FRޚ|ze~hY ~i#-wNyعEOW{uԧLmVF)tKӇtU+f[ػW IZ+j!˃~ PO}+:6mzT(QY-bC#:-`^-8#"$\E0cY +y=$ωΥMH,TMXHM`$zoވď BXl:#y^fBa$8MA(:P߯H 4Tٙ鉜iQʲPӱR JƥGN5"ag tqPK`5ѝb^޾BgQî=INgܽ prؕ^E23/۷ʹ8KG 5W ?R\x:ﴐSBv=}wOXioC؝~Ws?io~H㕟t_ZڅDié滫 +jZԌT|h'aj*J{ F03+TGpWSRW*H_s ]78nmyr+]%ҍ<8q˗)8fr2L= Kx_|p#3n]5/~9řMpN=ęѨS`N֧V.#:n9.|u rKd]dRͲ2/҅W2?p.1d ڤrnX3>Mz웨斘>S_sA˨ָb9ArԶ ͒(5;L +:ػ٘.+ck6 "%)T@ 6XXFZFmtsMP{ry[=ʞ?(tϖ*~u}h8 &i71($I' ȁqHLy6zcfp tץ-~ +4x"6nZ| ++ 6Oy)rԭY\΀quEg:ZQ2zE<[(hp3 W"'n%=DDmOO6D%q8Oph@ 71==16c-m4)դ$.A^{A] wTwC;AUUgxt1 !9b0|D %0sO qWf3 * Ekhm}Ns",x $/Lx*1ϠW)4~ f+C"'8[?>r( "[R"`n?qN)≒oGO(cC q-y @QCXXY~`Y$"4E)_.vM9Bw}~wǻE4Z97\wǝ|C_cх_Flh#d؋8t ~BW4*d4DSH6k<Yߦ%B4ˆR9&SgR? >1b6.uVktrXb #SHJkPbQGrK 4HBVU4s8ǴIdYT_ymK~IEC Ճ90J, +4oȅ ˿{ng29cqV%j ,dL\֪5|LB3A~-<a!\.1;Yc16TR+9iW(8$LCoQqnw$X*Kwsmfx"37FTBV+cb4,uJWUw +.XŎżk$nAx׋Ɋ66ܳ< +[ ʎ^+9-g쯲yxĝCqZ{3oj玚uoo!I"1~YC-kpo#^ݷXH̙Q&[osmub#:쿋|O"T܂b1?'&ަv_`ΰdKA&kxҘvuh/v,~FmgIP_>e& 8lK,AD,=l';F,x$Vs$fi̵E(4ol,s9Lc4HaDʨ&w4Cte_^`0Ȃ&j_PU5\h]D!t->PKG}_>8_ӎv*r* +ݠbT"{TG2-9SbiȬ4gNM4eVЫ̢qK19%y3$KaPE_$Y/hfn_̛fߏxv24QG??ݔcefĒWoX\K6M7S%V6vwoW[~Np/?Ɨ0oIw"WN?)Z){Zz-l݀ԟajwV5{,06mg-w8*d8՝|derX\> Gk\KZy}<`8']o`iX%/ Gd"JL /N'Pcޅ.,O}K^K{$XCa!kE8tꠚ~Mw` +у ֘ wYDٵt`%Xkc^Fj1?gbVZT)7}~6e!R]p=/̻:\z@g2\HT%LX1C~}E%=qsWM]wVKu-O0C76PN\[NjU-ru;#tiHYjs+Lu)L5Y|$? b?-dn ;و0 +ITifF9Ec+4dI'=ZckhjzĒޜS;Qz37Ee-JT٢V%YHg&}\;[;ߊ$ꇂO1e8{]{MwV}+'XpW?Fį0IvJT)ZכFNGt~Χ1Q4+0ƛLxMN$0&iqW267/q)#hi[ύrxo晟[ÕC;Tw. +-JQ{fwOBP)Y9@bMP#f6>?և=~8fC 8) 欰^#:B?#9+loc2zN]7w vB9!ʧ!Q45lߘXivI(< ŀed 1H4I@" G +1wwaC:>/gb4!)b;._˒]+|Hf|+,ꭌJokc70oWuR߯RYWgR8s.rAxK?x=v2]Bf7y5#ټta u6k>,fz*y=kz %R4"_uԼklաdOaZY~oFY'B2!GrR-*L3Ƕ41fu)N@hX}Zlhttj+kkEh:tvԋfɉIًRjf.muMku2,;.ܛxM2>mNȚcy{ }文ywMlD%hƪ|%ژqt:1nj q8kµM#iC`r&XTcMRutVcMeVtWѬsvnvafȥYƦM+:CXp9oLOIF jPgs'LWʵ\V$b[_^?_gVVm[2 @M-vS:3VѬˊxw@׮X/v~hj~an5Nk ٚq:~f9fV,iB KjV6l_Fpnҽw{z/z:ބ8pl’D> <#k9/7h@`>"=cHb;5X(6| |@N'3<;k+Nzm23*Y*şD + .߶/CPLbT{KuD&J>n$'%w "V|x}x {2nm~xu +y &@PGn0_F52jMI7Ҏ%j,( +|Nut0 :٨1CsNЌU2)Rfe}emNkY" +@ iЬ1cs7֭e`b50V4ȇ-&^yC5*cIL6}DIOBM!T`~+-/\V/qY%ԃk^dZ|dc^I:Ġ-ȱl\XEhJD@#"Zr5RCBx&~̚ +2Z 1ɉ\e9jwd8WT0`Ԭw-,Z'Wn/)AiU.KouqGc30(7N/EYUz+f`a 0 qa .T1gtl!Z-6dضB:x}hꤰd`arxYgo 3 $P(nyj Bno#"rd%b$PT%|W,BD._)cbC,~PXq$%laCP~Fg?׻Ac+x2 HJS ])K0]!MJ+ L*(̨(/@ݺU=Ÿ axEtz[@51Ā?2h%ƫFѾpd-yS|81Dj-ɟO +ü{~C2q7屷do\ 7E~a!Ue70K8,F2¥mpe\ urzwVuKbm6,wo*-eQGd +,Lj?Ď"Dl),6x 6N-A{ +ݎEU6F +g|ѼvKm:>↿K_+7$\q8ώ*p5(?d4 +EF`L8^K.\L(*~iҞxgj^A%V^n $G$ Z9hvUhI_4z(I:F:@\u8?ྦྷcoYzm{],:ܪh!)_0Cg|\^Iթmw2k8 DsNeRԿ |~wT{s`+{P ^^+GS6Xd/o*gefm 9ٞh?g+uuZ}~6wɭ#VNQ s26+T%ܶ,cq&=  +"!Qƺ^$-y@*y_T~Z@DYo+)5Ѐƀlpޔmu;n9 ` @xB 7!r%=r@~6=׷XH·^[ӛʹӘ-;2WNbnbE1+;=Ppt'T?jA|_5$A/%OS6I~O$%vwk~%/_+O_ +_ r]5R)ݥt7%5t7HwIHtRݝ) a}ZVtq{ҡN%>Q1868285\HjvXB$*Cj9a@ ir/Y~Ն%| [6wT `Ht!EplTE*"H|N 9ϹJX,_蟞;af +ro n }nh3EbB)[hV Hi(v[mݪxPLul de`Ēp(r!Re ԉ :v|OE,p 8!6),.V@Y[ 5ӥbVÍL̉Nj*D)i ?NXA#Wp◢Z8'%o`(bT̫ϝiXyEF)Ө/kEX)D*M%|lw%ϓHoQZvzL} +KtgHAY[$e7@iVgP7SRUy0쪓ZҶ(%7/$%2))b-܁4FS +G͗vU}rmN=ҝ< *ce+s1ɶ"zBk˖U +yktoP7yj"@7^_l0.ΛI|Q\J@C2e卽Mn-&c9 rLq}cBr%umV! .Ib'F5Ǖ3z=Ygp5oh4Adamq õ'?:1ߨk@Ֆ +MU>/6XNNcÙq o e(%nĤR>Us4PcoPkD3'v%Vhf +5tx^RP1;zя+䳚>¡ۧGo,*c(Md%Leiߘx(^uQ+PCk6ԩ,V7 z3SY qx2= +Z 4|yAB@eqf +C".sd&(WK~`iVOh{$'=%؉JuvTenH,%ټQ}| u^{o1Ï(n_]# +ru-;ҴP(-ɺz ÕpppV)//~[B5n.g)mryެ8Z|MdVl͢0y- +0#3i"kAjY?J߿lj^32;g >Jmi)Wo6_۴_7+ ԇS}%4+{tn./7,/b!ۯDqN'wyF(YϠef9uZYj+؛4Gy>p`tE4dAkѲ9\U49\) Ԥ[ : ¯RVޘ6̮K͒W٤8%+oӞd 3h߉Ց8&O&Kzj!ĭwx=]Z#LqvBu%Rt ~zO{:d^? +Ju?$p{x%9LуvcX#\qPh?)b\{tR#@^5‹q'6d7$) NE9DHt +PfC h7}zgbྤh΅g;|L4+("V˷dQ;Di+112s J]EzX风Ӹ~ͶrkcXtm \BGpCT:VFXzzHQ/g"FL3 +v2 (Bx14. +-z~\h;P11*}_ZAwG!$/H!dZYn0r +[hW]"]ܖIAV '8e)Ŭ8a 3eVtbBK"I`V̤98d.܂//׍|AwJ9H{M[Id#]D ˜:A55\nUI~ ^u,V23j|%o쮀LkֱZ}k'Q[\ +t1P ;.aވ.XC͸{쇒oF[-T3o)9Y.$8/HTM>!QB )ӝ'iUQjR,I~nb|&LV36YϨ9N7Xq3{ҰU +qUĔk 27Krf |qQQ2yiUh [_8j`{2I+53v,wXq3J9uϝ4N9Lt.N؋t\?I~ָєPB?V!fa٤WEfLҚ;b4V(%bU!+a۴+|f>=*YS]9ޘ^X^ Y!/(̉u+~ΛZb`hy~&ol m.٦~-ڝ Hq: tw8a P*ʀnM@qk@3xe@/0)D% қNuy̪FnA2|̷}S_bFfD98M^hȭaL$K6-rأ$/1cٞ DKƩC&Aw(.wY> "1J VPhsmwK/(\zl 댻[_:Ե t\1C]/yiTIF> ``X DaA*/niw;جPP y햋Gk x-UoƖr)yّ(2'ѦN I/HyIX#OK\9o!jܘ*M4A]%[V5CT_!XV/Mb;E"Iy-xznx8CaCcUdɣ6*=ψpy-vwRS@"EӼDb0 $KCqB5bŹ@7>[>]n-J>U|3[%(2`u`g,sds B&s'B.$@Xf%E*`FmC-a, +m4@FfT9flA]N:JxI cׇjfa& < a)e2jtJ!Є_W˼-ղa+Uُa E$\, AofvvہuR#w+j.ģ +p׫Iy!)-ؤn7i1nt~WjOSȲV_xM\ʎT(QI@Qߌ!ڦ6޴suL$-y-^-X̘b3!1XZ}tEa6p!rj^EMN1c۔]UKcIR< ){8}թm!11*#l+6`>t*W^hW=ܮ@* %'\[oV8G<x,9&XU#@ΤץK|['tH[{֔PraۤlOW1Ev+ +b󢮐ތEJҿZ\#ըNHFrДa4fZDWhk*Sã^Ug9{%= &tB2pQ +M9Oz Y> bmAZM:mc!]q&bgTq&EkIj圊Zd”79%)&l + ;\hv' +"_eE=vG}1hV{z&K;8y+ա>ة_ܿR}SP)g6'+)CԷ`{O־Ü6qL^o EB)zʭLw1;=5h)n d)ҵr \ :=ߣ52Sp ljJy5ͧb)ڹ^8Uo4xib&]%D #fp|ؽ¿{F|eMʤt ]혘{<]:@<}(je,6rRw"׶2 .{SZ9x}d&oJ>5+!Q9IPU{UӉ5xk VEm>L]ddhdk8 hSpeY/.a 8"k+z*S \GSB{0'&$Jc0ɪ5*9č|iq^_<;D7aX2ʮvݚ[]}yc^OnY'DޝumT+1\F +^WC)H|ᅅ KܚV!,s/COS +E kPwĝ_ R*'Q6Y3,g? + Y{j# xV"d=!jWW zf5pƁ6Z;Gxmzw7^34 >I/OOCWj9Rn3`PXmR/]1rDӞ"~)[nCK+X;m{R_ 뮤.tQäfrD3E;Gy$+c +}y$V1__2s80w6芋HuN ##/E$&[\R鲽d)DAvKMt Ϯ"!j=>o0JE IIY6sx&:YNr\E z\z}rջQ +65$bH B6)Żٽih{LHq R53KkW1WxuGk4v71fWk3wS>vTn+WYfu[22l߃SN܈ܾ#fq6"uøjjXhٲj:gG">ꈿ:|sLiwQch=lul̫J\`5R )>)™yEl5b0qt2w|vjYSj]ɥӍD?of=ޜ͢^-&Q7ʵxN7#J0*i$afR!"kRZϵhA?|nTr-<؞,TN=I|Ԫk7l2tbkoI1DX"7i'TJ>x{zҋYͽ<Q\+Z*DqQb /yOE0mW:ObC¼ka .}8};_C6ھG1Z]LH3%7čU+Q cƧlxŵ1n{p#GZ]`FGtW7D+'qiFZ-/<6TbŔRWĆMq> yZ mK_SK1H~uWcn +Ү32j24Br03#g1fܦZӽ<)^gY0_SC/Uy]?.9~r !C'96s +oS _;4r>أɼCVjkp? 4~. ؘQ"ܨKCLy¦ +"kW=!lL3sWwPK^ZvZq/nx:dȾK#u=R|s +~ }ŎeƗ py[҄S¢}j7;M5D|%EO33EYhDHӏ>I*Aig15px|ˎDr'Y!qE}fO{"ET3W|1YCӥ6lӍߜ-x'ESp^,b$' !QXj- U'Cjbbku~.N=C谯n"\ѮIMjd4͆iG,j/a kR'q 3(q XUpe8:\BKԵ 8VJx$4mԀVLFQ&B')PMgWH.%?rk1tTÕNG'(prL!W…'Yqr0M'X~*UiKSn]z|0P2;+pe)_jͤ՜iQEnp<.0jK=^%{wQ1'ж-6v :Q^>E:ͭZH@9'ޡY[uJT\O Sz$pudVvZ,lTUϫ<d }>uu#]!:~1DP'rPPXď{iC2}ifHnψyGP.XgNjU,pۨs޳}/Z4.XIx e2EQ'%Xi,5FI8A +VR753·7c:w ʘt" N.}d֗`4KލoU!}杖1[V\`\l7eR\I?E&‡dFhMN7_tY7ajg zvRE炗Ϲ:D{V-lczysv{aڶ 7Tz6~t-뙁\rt$MJ%-PDb۟#o?̫]rsP*2qv,.@Ș`Zk[۲,Q`mFV;g(Yp`|vj:w<'iYCf*t!Yt6ί.:1Qi_Ƣd\5C\܎ylQd&8^Fom 26(|y$ʯGD:_p;V "HV/s_ ͞\5b<Bł'XC4Uy ggg"GVL\L'q- +GQF\ +F_'F7MvCkp$Yg5'h8]3PXWG몗yOwI=lvMZ2m +~?]| 'zNynYGg7ЂA7n߃̧c ٣)"2sCj$?v>P.~|$ɳq2d΍2>lW'c@/( Dб{/t8?_~ʭe x _<MVHNR\LYQV߄ + 44n  + _k0 *޿U0J8W} +!daN&BW-Xn0߃ k q QqQdxDO2f-x L (%,w ,? ?@DdJ +Esz ``?TZL?2e%>}-?T^P[g˘l f lB?b~L1hƕ9[t`U5xt_~r +ʐޅc6@#@c3`nWg}koBww-442(:Sao HF t_&F AJ)kbcp&J9gO?=rۃdeg33G'"fHѻ@ <Ґm'Ȑ@ӡ@de.'گ{4]n;`>AD!듼C +<xH jF"Gn"ftb/KL~KtO6h#HufH^lj~P1gBZ?7K𖝷S> +O=ׂ luߠ-&: +^Hj*h̬b;@)Տ1<06yQx tX+9T"p?8$ j&G ;[Pbw`?89#sƿ>g~_ha_OaX+t;g3׌nu|fDoPޯ*.j[%00B>y[{8 tl~{.z8X8(o r~t' ,iHq9ŹgX@/1Ikq|0^DIHhyY +oζVu߿o@3 p}_%b^ Ɔ͎4:H:AswRX|;>;aƒ-0^BRLaÁS (oT_F-aԎ}Ўph 9AǏ%ET?/f_;8!?y}j?l?`#^?J\@'7L)HCALY)(PKԋ+5;ejre/lib/ext/mlibwrapper_jai.jarUT EEUx +\-i۶m۶m۶5m۶m۶}=뜍saOIzے7R@n1X?2"4t?W"?lm,# +!*L+#WHJŒ !Mh&ő(udw-Zm{;Q> ?QdI'^H!Esε< D;\Fv $$0I?#jSW;g mC7hEzYXPv5I>/ zM)6S+ aK^nk9/p\&Ò{SWLw((-ր,A( GsrE9ƓVHK?X!䇜H45klmCJi[/.<Cyi[</_IHIr9RIJd3A^:hDgACd^kz񪠇R i1 wr. FOscLၖ,qm +9%+73;Ge7UK2TdH.g;a 9xZL$7W{OcϸA!ЋdZK]Pq6|ruV7}-%Z8tNeڣ }`{^w"PC('2(vzgV(F^F;nBTg逽CuGYP'saK~HR l,X,ffj96;y- :u|j1b>LR|oXձ0T?ՄC.|Z Z|gP(Ŕ5y&T@ⶸ7_Ԃ*ߡR|<)6ێ+iT8yՑn +E@>Lq;؏I򵐡 gh +Tj<[ c|'muG/." IOtD!ȯO,Vd3^+WCAAG9(L]9z=qFgB_+2ZQ^ \a6 Iɗa8|.~.B7dD +CpՌŠHfbPCn1Tx;e+ ~Hkroe/6VtUړtk9Na㯨nWuËYCӼWlK85OGnf>z.L>nfP0@;@@XX[8ֈ{v WPM Bv-^׫a GӿV@P#@yeuwPUv& ãL3fGvD bw}_GkWX̝7VGujopmR=#?dm~$\ӝ#=d;&&}3|B]d˰}n끖/;,m_w0YY=-7o8[^#@1hވw_8Woa4ϱW6ʲnT`'J_!dTŠHB:?~vKn@Zd}$/-DfT)N< _;eH_U~ =}24]ę}BPݛaweT,V6^QE|M %F00&tpu<]jr* 9|)1R4;>. +sNf=3d6eFP4P/WLʴ`vØz/M<컧+.PiPj^!v/̲t5Mbp|iu&uEͿ}[SpŧLrt}{ɈBN4Bf$r\@X| e _M3-4*gߥb i M(߬g%?/uIZY)M!nz+MF]z"kJkj )l9`C"SZ+xUEH$UdR f0> 3ɢ"Q^3vs%{~>$l^k3%4DK 0AjV1h3 PG +U %ٴ]|8\<8ϙϝTƫwǻSMLA 6^uⱀٱ +P,rQ/z!`+w?SI~&N~/a +R(i:>1_"? bpqM!ij#Dh-RKCAPBwdR~c=M63xt;}##\Zk31sC$ (6^4tuVɾMB1}!G2ЈmR[[Hd>NYVXf5t\T zE`nƻ@jE#z^~MWH%N.  60PC3 !ߥ$(y]3My6Z:xR>ϤSaFb'[';_!ju잏E8Ȫ{؆'  |V6Gn0Uk*v2L rE3Bl!LҧE)z7A6hcD)C(Q +MzJ"-by͵6#xj~udw6gIĴhZ$tvD> ;58֗3QAM U,'T'CKt~Jb+zha!F +57tcot]WW02Vԓ,#Ph)P!|(3lJX*y1:-`tڙҼN?Hk}%Hi.EKuED6AV*0,UmczCn,J =kE.ޡ= {b[|.0і). +}A,Nk{s,GG5kcѶ`TE{54u{G(] +]ۨk(-_^2axA4=۵8W=7W>G P͋G2p*`f +. +^G̿ȸ΍ b&gMXjĘԹp'uԀZBۃ/܇- *hPC̔ZVFШsGtx};DI + Vi6 \;wԍǜs\a3F +_>(F'Gl#䒬aj78*g4N8ߞ𹐋EfSK?ٿlZ]k!AB;d=&[l/ B1{!A։6EMFͧl‰+.3Ⱥ۽͕ۑ]Ѱwro6l0e yХCttzPR0 Pùj!|K1:QBs:J܈yvg<$P$wh]hpT#%.Ebд6֑< ;k.h{2 'v;=|fH +D|;B3B#V%Ul[G%#{eX4x$ bh-ͩA/y8,\2 +*Žb ڰ=qzf +dҔ:.3!n_YjR@4Ń Nخ f4-yks֏ YZOz7F&MxG:0+B)gl^u?ե Bj;<'SAmH+4[ӝi ֑$!+uVsZ3.*\ bP-M2[E_&[Y{.ݺ3U\ڻ2df2D[Oط,(9Ų:̿)8^apZ놣Iyk."P@0B1?{=. &rԇ4cvyl!&>:rNrͲJoX12dG-<,z<LKSieHjtk­\)5T%+Ii=K_= PHg]3siE1 )r73FN0[+&nH-_s +O1PsB1za0,4L*^j:ed=!/d"o`)/5ݻ$O]ԛh7adjJQb}>ZBz!9V/W1ⲓs2,Df;&.Nfx#fb.m`;^W_nu[hmU!4RF{]8T ;+w]qXv$ӎ3ZyH9+ k%96FKYq/'͢GL'_JlFWy[Ie tܲ +Rqejn12dJ=O-!}k- +[.JS|c\kD1\-Yzܧ& an;Jkbɨ:Iw%c6(*NM;޴.ft?241 +lƒzys)~cG=rj}} +-I$_ҫjV?zQªZylpfN4BcN(/|#K|4](]@-EM1˚|l/Z.dv!m7})ڪg:+T:ۋw.\VqN;*A )>vv7'G7Xh-bo!PkCI޿,&%T% zY򟢻: M?Mn9D*͊A{6Us}uW̧<5M:HP}Ek(wM X9-rShK|_L[9xZ]bϧь;R$a*k'Jt:|<G\Av#o.Puhc%Ԕj\‚<[E~$@1wbzV8n֍XfyN)eД0R6:MNZTTY/. cy65>^cm': 6[DlIY_?W\rRf;akĺJ-8xsڂz4Ywtiy5>_#OV +5ݫz:1_MãJaZDuVl%^lւZqzCr.?x>9:³Ģ24/_~ê(QoNo07M a:8HAqmKD:oqfoA6 +Ɖ,'3js]Q RppS性=نHpf/0BЏ +Δ$`/P(sh;N&<9G8(&C&;9_ >k\d(W3|4pƹ־hh77I`=7~57ʶUo+=7~d}]'}===h?/?7Vp^7~>/QP;3o;=9]7YwY]'}O >C_߼9<䏿sOfȟ<NpPwt|oixA_Vq?{dwI~topwqѹޒO#MsL(_Y{ o"t[_& ?)\>*zAL@=o40_q "wz 2w p|_pQagxPzw| >gdwJ#L~o_wjwVoIK .VQn (pa45r4/&/&aĥĘI[;fL>Yӝ#=TH8vLndQ㜕q[N=-0L`=ڌ;-&k~-e~+TΙl>Wr'=؋7+R/mw}o Lǫ-,I3IGWtr)>=a㜻9VxJ1_Hqo%Jڹ3?oJJЭЄD1QӂQlu9nljќ= $c0P~E"sF) ŷ46q8tb\N{$ܠnP#nu7;G`Pvn&{zć;vUTU<>_E}ש.شb'uGnq u&i ᰋƺd>Te$Zy3L50h+z3?#`%рSHI7lglJwSm ;[ ApXf\{#upY$ezFI)#@rḻgz_2IBvNN#Kyl3g4ID+"~G5xtlmNug_-lh({`>%z>o5}NP30_8˦(Ia-(\7Ot2c*ި~&($!<ȓa3Jz f@ۅ\jAr<,>sY;5ˤS!ֶ#!a c5=zc +&,e9hT]2Bdv{,ॷZ9dӚI%)2TpUM217Er۳Ǩ*ojNaF{'YIT3rLPsqK1;d)';_5==GiI).T^2uو}}ooT_Z:I ?9 }&!dőe6ᒓL֝޾5m4"q]vGHgFV*йL+%$1׼9 OD}Uԫ)Wlqr7pr&4`cv8g͉&g~QigC}Ho=* +y{ȱ3g+ejbgFu|v'o:ƌ[>^,7igso7w k*U/RiufJ `$B Z5mQ*$Uyr$JO-y T|N\2A .n 9IoTwE?`t}$=oh:Izt#nz??\ +, +)"_q0 "&`e |`%Iϓxrܞ +Og,>{eӪmUߏg&&p)Vm7f?(!-70Zr5zD v 8:9e=q[ enCSUrY 6ZqԂó(Gp+X K~]$b'isڃX56 +9ZsۉH}BM)*=ȇt)xYۈ0uz]C=#wt8X9#gtѡQzV_h6]uGr큡LJމvmD *eg=?i +/'y#GNuGΝ@BϟNC9%?`@;˛ޓC=6xL%őmƃ30/;9LBV1_] B0t%Ctv]ͰUle7(.C`1y'gYMeAx. 夒>h%?B!BUJ]թ˄9rJe*իe{VyFCE& ѻbxE{EENf$,k+#jgR%eWUjoWR$gZ\]_pܗ_5%6W8p޲F Is޳Nv2 +P +cCO<{V~Nr{*9;Zؚ9;ٛ8:[8/Ym;}Ržl. i{@f}L{ !?ߒuje^ ޞu3>Esryl!LwY؜ +*N3+{W {]  qA6>HFW)WYOzRAK!RUHlj,1&b/XyLB&a gu'Hԋ BS`\!8{^>zZU3:K ~2)8\^hB`hhuN8ex~H>Wg!_Vӻ")izk0j,rPvxT;ۡDo]!yl`ӄ'<#'ctމ;p΃5-*qђIFGSa/\GoF/fC\iuÀʳIS[-cԯݎV/O6hv%^7^'_Ls;̿Wf_c/#.Z)w*h6n!ɐ[d%HH΅EԁG-^}] dfY~NE eA2#)z &HBZ,\:E08b WZ֜f/E Kj>jDB/;WFhb?Xz|l-_'ܐ  K Tk+-]5FV19nDy#pMֻ*_UA_.l.؁w.%=*˺>Sk3JE;z6zKTܿs.kWj)-/h@lI݀'X]^BV`Ey)rI1p T- rrE`Y}& @AWnd*=tjS$S:yvPǜP]tq)4b:1yQi8cgf\';,qymdv#jҠthq4tگT}TarhӓuzIc{~c$i],Hl%iab%ivhd-t2x%uHor^ͺvEAڨ-\Կ& +W# ؤZ! j&qI=[eG RQQ",P Vbke5ZO6X :r<4^K:cL1ȯ1V47v./C[W(#RVd"NgN %o4lMTUTJ?+L6\th"g1u=nx2^Z&|+8Ջ{Vg0/!/3 a lPsI9$&I|q/zȣT8*&gQ[C1xK1诪[t/@RFpEOCKx(:8]hWdCB9FZNU[mkP-+*O2+64<;4.\04׻He\KKPb!j m) \ffGOL!1\Ln&NHtuxlKwI?N˜--~}6[3TS $_YQIWb:5Pa2D6 xW6fO k s t#KRUƎ0IA`XoDI2ҬLQ[h㼤rΐYJBZ`pM`~z<tΪ~8}|O@z&fvPu-@%m3D3'B&qm +_ɲ0JwEsDn\]G<] +YZz{@gb!r!ҤL=vRG>,5u€"P64$zZ:zzjlL#%k":(R- +m\u(9O3G 0K|4[LXPLIbUL0@<&Os5(̗_G b[/dѡq9uP8Sh=w=OI^hg04E5"daqm1UF 9tiC7k#[)dӹxyH*4K/ 62Misd샡unL#|p?pZ)`\gS3T'JyYYdCr%GuKnITҦJ>>y- C&2UU]F*B4..ۈ "cF|uh >AXA 4.M#T>ص 1zwdQ#r!<1F$>4z-nrATKCFk!hJ+b!]B3U{TϡeVlK,'FOXoYؒMp(&K +t4Txf> +>aAi>ڗW:޾v7/sFqބyyRX0+~|pU?l ]TIocoYrĠ߻)8MK&)·L}E\Hzw_W XnZ۴۬Ym{ uX iEG݇MywCw3 ܤ)$u3e˔_ m/eͣpxG&ʓp ILHiTi.S/n>Chk&Lq+J:S,+SWx:č#^Cv ?,OlϭhqN.:'ǭ|Hx ox)6q8hL2qsnNF}ܙԄ j +MDgs Ĝ!oJHJ\0lKT,Kx5싥j0قgpQœLVo[;RiYŹ ֵ!>w% +)>7LJqfקt ѰKM.};7rL[J1#dxޘCyo4`,6} J)ê5Uc4FC#c6ժmqژo9K]Shti%.(o‖#Uu'HcϪBUmwt3I] XWbbl٫EXaf#̙M|7{1 +?2EbgGG;9Y+}~U"]ڷ9 ]%1$Eμr@k qߊ>Xu v +<͂߼+wEjuvaךT36,pD6lkrwu_H1y㿽 X܌ ˘dA6nPR1'S(qEb{Wt$8][Stq[ plJ°#Y`_Aq l羾uaE(}ȓK;kn<|\M&F&UsDY^q\gRq;}}} [f2x>û(i J]:w-"^q)펻/;ɝķ9h(a pآH 0T K{rN-Vd"S6,j,e "ת=~'Lk +_7m6{Jn._q.B+H65ꕜ'NkXA2z.=6w(];m-9Xf--~xWM;dA4 9 9\#$UUD&Ð0b&rZI۰-$2}="Urڂ=evʎrO0b1vr[ Edubu#Dz_v" Y\g}mΐ@;O+~Xy4C;,W mK*F?ܯk.K !$-QnzmS[zt `Bqp;#&T2zU +YV_anbi +6* "o0@t~,-Muo%QU d +:լc)^Blkt4h01 P0nPpt"P;hJRn K7"FpL>EHlRRS#ǂʔN phT&mq)_z,mB$ %|{qW-2^g+8g&a=.7]&5Q4S[=dݘc)g8exqRn-i ?u4¥ιbj70!z-5e!gVב >: +gXב r<[5e(il(ϢT~\vQ>)g8 +jEgZq`\/<6Z̽*ʼb!z]X[n6~/ tYapVz*嘆ʺC[|#ف꜏[F;;pvd2smx{/??-ߋe~x[q?e-b +K~|#d )tELbWFۿ ~.E^Ci-\'"sCX?7cziQIid ]Q$knŸƻ] +u +\ a7/7~|.s0YsMbKi\O^%x.Y $jKtg|%: ;iUoEW'/xE6UB=>tC|ںlB㨗 \jWyթ@k-~@-5|Pŵ.9h@J=ñ(] v]\jPF^h~Ģ"-}ԣ⋖E@?)Y<-Ow^8ʼnjP8X]\X?r=/n5KS8 | ,S 4Eefc߂M i6Ůw)Yel^܇YMv@[viv/Aք]\|2x'6L.ִﮆEhm =+LvmK#4SNh1L ĺWH< YD}'Sr1QUPMlA+ؖyܵj|Vd"ٵ&~g$j%t}ƶ}R#Ly`|& /Kt~g^2=`nJjd_J`j^\67!_ ަ^ٷIb;_.^9b b쮪g^rDٻ +EصACiaRrg19oS^jAɠ۩+=gmM'G.U2yedbg::r5z6R(׶r ^4.9?>z<3_S-fdش9>hm3m\^̒Tdxͫh% }e}EF11l%+% HsS4.Hb7OWsVB[bc1|t/t^[rQݱK޳6RvWiQ6bfW$O"Gmqr.72Y6S&f.}vWS\wʻ%jCAjPH%24K(g]4mA+Zf ܑ\I J|.<^0nDTLAKnēv .:n1ɾ}iG=ӾznbfǕc~ϫ7ܒiBz\HsHKuC{e⸩%E=#ʃu݉z݉{)*]%+\øyjt߻0BxҰPZ87,D8PԇvA^n3/7kG-rdNvO` !@|xD:#"9JI|-\I""ŗ)jWm;62O/7MSgmm3`=՘"-[qqٴeڝ@rr+7M+G|k~\G+nTXk4?7au!a"]o8سZuo3Q(E})ݾ̷ n?w~oTkp^U/Ъf Uo.Ԁ p2&-pZ%mܰ,Hj@IX"Cv0 Q҆ji҂P1L +G 0R1m#[SCF `pF +1Wl'y +h1،^!) +!0v[E].Q'h~ۉi,aRQ'U&.""'536`g *vg鐔k+kHv`o+ +/ \Ţ!~,#skyC%~*X>)GMqEїmR);FNQs``S3 ):0k6BgU2jDNs^䵃e<4"ܦ˰ТhB;Wz^U8˪=휿eѶqdu@G}3a<4j 6ZYd!ƪt~PDػwizPnPAXf%AxB΢N Ԡb$.1gsq֍8qb ʘʄdQ7jnW6.o@ڱ&x܍Q{ouP{ݎx OK=kk(&{S;[rlcMJBLt>3o+}GA#NԛkdWT ӅgE90<* 0/ 0bQs 2`Tx>@1,qr7/,NoŢD1zMl+5 +KP +C`B\69hYtڡ_ YޥOWn +5|Q[m`]kX'].Z1}M%3ո`reYTk4 LVȰվ⮬n-HŦ6>BeeVe(3heT yd!GzVO0a-Uڌ& /,XDL 8"A +.Lf &D:a6PAĬEK1pe [`O&4_Kt|G~ڿ\U^RKqp7f  NPiI/>d,l}FJYz|ؘ5p8ӫj$o81vAi"x~;UE>2oNY&\$ J Td쐞jN1 rn2FS_bZa1CQAFmɪK7: vؠx띃22X+aj{_YMfYezsZU>ځFV)\\wfff0!jX\:Q1q`Z=t0q/8L,DxGB6v"y Ӓ^!ŶCvy浬5KKwE +ub=mʁgF/']ی]]&Ǧy|SułֳUV̿͵VuZs{<(,+ K5-lx֍qR+Yp$6J=IUIP :3 )NY RQJD]:цֶ׀_:=V.QRrM4RWӻ : +8בjjРEQ5.\\JorNq[;6= 0xt.d. +/.\\&YVե)j;.0܅ f|-i2㝷}ٷ%Y![ sY1LJJk/Ї0O3o`DmRF348k~џ?9m$NغWiVH(U]R (c 8@9 k]V4&$ d6;fr3FJ xsa63OBOBdnj uLB1W^3nGѠ)7W,ww;$Fd5T.{iJ槝Xt˯MNB Db6c"&~zā\VµUBd1R84faEt +~##tJ%Ix #F% %I g] #Bq , +Dd3𑚬 I$k$׋xsƃGɦrdEC7,3uJn푅`;$"]E{hKPF1SS#: N J2! B@rPURۃ@8@ȝ=E@ ~E}UCa_nLWE('jn0#ڷ&͢ nL7g߄( WMQfqG-m|;-T!%n&A"vnF^xD7isxy0A%*)šE@&rW)v#+SȿXh פ%D%-8+g&')L$N/ +QQ ~UeHmHtTN}d&^ QY faQGWq&>] l&xw/ +{yT)$V $T@*^*<Ϗ7QB]Z EڋYXDS^k*:{x-ר^s-bh$$*/;BP7=4>}/ նo' ;4:sZW68BSg1k 6nl^ )4~08, [eB 4.~c>㣣$xA ςկSo>Xt *; ҅Ud4 L1ҚO> &fmz2m!]{AZ(hWa )U߫WMKM%nJ׵ӥ)q>s: +auBR OVFT=l>G_B_- b_†D{Dq}vYM6]d6tHtHY^еcb8}%pp(lDM ̡,5V((O椗<UJ fq*Dhm +8RX,z@N; 3X&}e%AO"\1`Xe>v'+L)T"sx# azMl]f}ڊsh=RS$X&q?F~]gn8K讃Vh{4taBtB6՝fg(ˋiЛi=pVdgm!%]\O]]僒 (h1{w)"x3(Tdyʇkr_X+љ<DP | +~G6!ClFZjV~hW +E񦝗ɖi4q@Z1(7z +z2[āzp2"1 ,ڜy.͏06~|&f犡f5;`;LW#۞Hw +{Ngv38LAv0c6n+,9tz~cƈ_j4mwEj6:Z$S(t|/t<B«(*HF+NyRT;ZU/fAB`_GSC,çY:+.<8|hmς5nG+,#L4[Ν3r{@u>ڟֹ8`]m/k=5(P> +^$-tVzRּxT﫮Ul*X=5W>< +uX'y "\(ȷ'\?]3'# xY ӗ: IPnA؅ ^wEYV/#i{]RpF Lr`Gcd[@6gxc)T^bR +Մ." +n1X $RC#$ Sķ -!2 $W@G&`'Kjf= PHEZѐ[>^YC[![^P{bɅz $`2^ "Q!G\Q!|$H T +_ ]*'5 +@"Aj1< }Psl\# u T]iAMjH|A˂J&@nI]r2"!Rṣf%k"XOﲣX'TEbۊ#U7ƫC鶉j/+mw-Fpc>;R297?}P +xx~4D=~Tu:{yPuX j뀅ykf<%t!p0\寰M2q +( +@Vltb$aj"Y[GC{H}: +feUl53Hf>̓LX'e gPـ4W_a:1>Fe4'd44d[ҚiȿK*1t.={ +m{hnB6m\噰!8;B,Q#ö!1Cfpf Q+v[|Z;پ^? fG0JCf# E:Vؼ@QISP5ǯ^p!?* "f7%Iė!g*Z*ؖZ8G,I'0 ̑t4g/DK}\\!ν!>?,畋<瓀F\̕KW\HcLnT)I"fWIŘʨ㍃6CKHd{V#:rUwMK!LZ26Msv;ɑፙ>=KE8JGN+({9ngq OI}g|D]OFX8&y.XL.Aծ_욨tdyATȰJuS+ҲW 7-FrI56(! zxvீ}P +\>KBx8Pp@c['v:GSA8|A2l^bF$`9I)|&E9dtj&Ff`$WqkOE{\YaV{OŸvj5]mٙ WTXJԙh_n`A-(qy>EG, W!&hZ}PC{w0nќ q;LDyA2 1&n6KFkm#JvY"zjv1=3MmRpxI4U-$$3Hzpy3u1!N#JP.P:ei8Pz ++,nnj6JvzlE#}]諳5%tH6Zfhu44EnWf} :rBѕ!fx?ՀDZ + ʣ8J.Fh(lV(Z"%bXuMu&)a,]'G' {C! x?`< {|s&rū+E;N3^uYogId@."#%| ~%J&ɐ0K.@3&*Ig&A5D$]hHAj +j +ޔlau)5yI1}e$YMXeHpfy3nĽLĕDȐ C:̌Nk/z@?B]eWr/v LL7dB^xxJǔh#, AzmnBEe:J 'BOOV" ++Nр;Uo@020dEg _y&hKS'hX3eCp>^@pKli%(:}Q$9w(0d?@m?3ɓ'tPP h`cOz>ޟ۵y:G2sGzO'a܊p/N ",3x"xmSU 3|aii XchiְhHDюHp 89YIͬ~ZTn-Mn%;Q:b s'5o$9 :FYFo> A0eȡLg=6ds6<5i X6kV!M?t'1"|^#^ WUcC^rߝ.tN]R[ɜgi=߱)6D*߬_ԓuKz6ڙ#7 C.0j“K.,[V-AW_W~fW޴N7Tk =.Ƙ#aGuA-Iu=`uSgK̷H.wt '[\8Pm''I9G"Zvp>V؝;+7/,)Wm;4G/t>)Gw k`+^Ѝ^ҍA8'[O9t,CROדj^=w :wH1F8~OKGqCOVg~WѢkJ@*Jf JpI&֘Z5pg\ 0dki\ª5gQrX +w u&^3dXc7՞ PZ7W@z7W>׺cOZ$)PU:4퀒3cӫn57@9.KɈb%߰˟z]ξ&0q2d W:pl b- Ôp=a}&pLL %TVKtīdc|k)|m)|)ySrd5 cuJB _ҭg؅ +l)>fPþ/Ԇi)QujBur0W։2 V,icN,ER L[ڕ*)c[t Ljfä8&8&92_**͎LԐNd=d6"Y$ra%wlnR %mzŷ' Ij)^Uܖn1 +Qٚ0Lg2#~ްy 4m\ۘp6dEz3nI)p/U}l/u3gnBo}A`+"p;OL]>+P58a00< $1_u~ؤC~,SDqH*c1Κ$a|SL-B;;! O 6viTyLC';nНG@)3X];ܧ/[ SnA#o?t&OUCɱi 9tGA:c.] +RoBx#|bb1JF.}gSrޱw.iƭ<@rg0{<{ }J;ν&rֿ`|a{N)jERyz5$.UP}bGjSpOkXм<9G3h}ö0}t=Xq2M$L ){~Jj!HOLF]a9gpw{_{sC3Dl͕.eU]u-'sԙv^:bN;L;Z%7^:-HX[i݆a@AGA @A~<>CۏSo|mE=a> M{#9 }}g*_GjUQԨ!k=5`.09Rȡk:);My_|fP +伔y,: #$"X5cb{ABB>Βck@{r &7saHrN<ܷlR@z?R Yz9|nG%ؘ:ĸlC;LsYYxˆ^_sʑfiȂ(#gv}៹B#' 5Of&9d/PP>p#>A|0>`_t|4r4tdxduiVkŃЯujbEAűwKzjd$!O~\4(Hłt( NņKaDDŌ M8 0_$FF$,=d1euSEWpTɦS<˃_RF~9)KQfI$-dZ[M /]&ٌvE\ +S[;I~IgXGp4 [&ac\lvu +$T֌Cעi7Ġƺ{GiɣUZLVil$x^\K:b0r^l& ;+>Yb-]rujHNnj3ۤ"sWAW.~. ] B9Kjv88K=-Ԫo~0tN zyj7փ,u5_+'x6yZbhێP‚6vDN?lZ6|_-_Z6rLLξ>ؽ|(pnp_is;FwD &(:pT|HOXtQ: +B^Nu`EA^:_]o cA.wA2`G^<zzzΈ|MwB%?G$AO$w[$@QV&h!AcL0^% 9p@&ݕdAߎSgAMzӅqcJ7P~xd 环_yP,/?HL@g3<ٙ(qI{qiWo['xiQP\^˼~* +뎲xu~Aܒ{M=q3%ST,RG*HBd&Hµ)*dK&aQ'0OdL58.@S7Lϓ&[LN.NR#4mIUk$bV.pD]N2wD-nL4v)ӭіSV]Laql٩˥`k6psضnhHQrOJh~ϬB5HVJ]'DH 8c DTPݼ+\Lf]Ŭ󖍗+JxD`J^6tO10l+V8|\gtE'΁͏u'' uIojdR pQ3*|B-= Dp_B` amg15~*- ު.-uMuEiTⲔT9C/߄vJ40kÚ*v!({4|h̼3D,G엠>x;1!P5紎('J#%) c^z9*%%} 4&sw 5]b{g 4=Dtui|;(d*oX*^Bz] P/5v~t+<]e>tnN1WdC/϶YZ\!U q_F.x2GȐF@'@q0nHxLcB$_uXrE\:Ai&v'jG"V!RWH!9z\>AJPvكgUN,- .w5l Z;j|9jPm-裐^(HBT7Z;b%5^l ?_ ۇaPĞ!:0Eՙ +''eҺxYxR)Ӷ%*OLaY=Ox5rлؤ꤬V| ǤVwSN˗-ƺْB d,Xp0k~?L3PR %ZrT3"D+qȆ˅wUM. 4XhoI>o ^f7)퉮Z-,y^JZ S2TbEB!"|wĐuVH^e#j0 6Epd1n +jYF.S `{$\M/a$LR-ȸT*fPa!- ³. N&7)I<`Fz.\Bs?#'J3J + BG =V}X͒ݬ4-KATURwʥV*K{Jz+*)d`;RZ= +::e.j9.zPH_%1QwU6e޹|1Lȴ̴Lt!~Wk9*B޽AbΪgUg} +~#;g05Uztd!3ED?R"VqUo$.Tqe8TK4 &av'5 ۴N +A&)g\!6XcY!}!u1L}ja*q*?87g2Ry<'9)NEJ +Ӛ1~Ml9j9VJ}s0mOAMG(SJY_JBzdN﹟Ts<׉ +ε*o(KwIFԀU|IǪ*K.ր +Ct5KieeuN` M )-љ[f8fQ#^u镥d/B̪ѯ*+$VcJm2OcNه\K(^O?F_u^<ԟ-~ od0>ϸ! <.:S<ԾsĪc99.VͭUv]r #cMD֊떬<Wb\Yw$B=4 +@3' | ?4]ͶZLyf@1%xF9(~ݛ.Nǒ~p"n!*95<$(ڣ +mw,(v$T[Odգ  ɺ姡sJ~Wz:bIB*+jB7@d60$:{;*'ۆ']P$[IU`턟.MvbB3.sSGc?$,%?UېX I9,vNH_8{p};\2r)'?F=KZVO:o]vC]6]p?[цa %![7 7L>~9.ozp=\}P>OlyPv3+[/LV"rV7trb: ;'hIll(0kbULE^M2 }sh[>WPF 9UX;&I\ׯ H7 }(-[vEB?S?ZjA}'Ir;&w 쀵k6xԃ[L?yw2gՓAO %}A3h&_7.0MJ{HȚ5nߪ[C܁Ww Ծ@6#~ʕ%Yx4c}m(ѾHĘ&ɌtXy[xN(nA躔sQ ro{zX*#r,1[2T93YT/E03l- CC$sVEa gVY*n#(qeQ Xwmf7 +PoQW8Vܲw"z='{%WU^IYK+}v?\4TUuJe""#޷Fzd)߷1?> oь2MNE׎9m}kT"4/6;'mp!?CbN@k7ٖT`pBيr!r2oW~uAf_?jK b̈́R3asdѕ78>l^y>,qU& *53wFݵ~O=3kG HF;$GkuQ-xUG&/f]>R +ۅ75;z@BԒƞBLc/)ZօKR RvqYSFJr֬`QRb?ޚ"p@@Xzw+C;]=9D*i[bd\{[-t V{# +wSN-Uvє&2 ]:,]eROy}Ss JN 7r583)n&Tv 4P触<.a1&n"E+J! dӍ2q?қtvWDTWGnWT2()LSVKʙņ|~B-[mT-bWA\O?*{r O$}oI[:P w .> =\%4Ō} 3^ƕ䈃.D hǥpq35̤%1w9k^i^}b PRDMZtZe˜'Gs|IRKG\F_Z:I6 +D ii1]Fll bPBt[Ftz9qJ%* PMbI8#EJKmͷn)|&On/Vb MP4mաWbQRe~S=*>lKCOj1Jjl:]<hBQP#\j# xmD =i5n_\_]"N^5V 9IZP:ÓT!$(tɼ hNI]8/59c$tmc, mfu:WMndNfq#3[ژa4ɪSȲۂU]$6Ϊ/j(]REɼah+NW8J8Hu zszr#S`>~fAv}zJwRL(m+jJׯ꒐#N& IxN)(5EEf[Y~c(_mۃ@{ +HC%(wASX[SEg*\>+|X58PwoE&L@#J. "m;j=pRs&<{O(;go7HLL>iT(KS,> #i͜ō#%mn[GET0ã[t% `g&&݃h V:X/ia@qun8Єք+[ +Sc֥ӹS+/qI#ږNOS˪h8{*YSB^9 k&ˇO?#Eir~ `Uw]'kݱ:z֮Z9^ lMDZ0JF֕|RxIV^":,AJܽ }VULIC RO "GH[`E -:Yqo N5ȺhvpGm'"-c-$ F sjrsh&i<2xIpl* +!1*jFó>|Jy*G2{ZDs춬X%:`(%4>Dh3-]s2]R5F; Ϫ5Lw ok+$OPztk;}}(InڙG@Ka)˃0pxѹņV:}1ڦDlk؂zI'+A}#bj.бh4TY>高-]HZ؇A+VzWJc7!U-3Z¡޴ڪݝvkF}*cVJBDȕ_cBwD֭Og>[4q .Dgp}w6ZH=j]z<8w)$c.7E|m{H2h&8.5nVuD45rD.Q~9L/"*xpw +EWZED9a,m> $S7TFrw,?EfT/P҇bWrx].لh m8}z>ݬk!6I/{=hW>?p_+Fo0q^yIcD:g:mݑZBczϕ\ɟE0)Ccz6}M8B@ :`{{孮Wdq qr /59T_t ;Eol|)EGWM~L{:7ÐATgUl ؽ]H>uqzx,0F]oP C'|OE010`;p˓љdL HPaCh̾d(9|b1R2o`M_  ICcc쀷Lf!Ka @|;[ ]8e~I9@pErn\|HFb<.c{=`.MY_ !Fm<&%YIό$ +~^PKԋ+5 :s  COPYRIGHT-jai.txtUTEUxPKՋ+5Q! ~DISTRIBUTIONREADME-jai.txtUTEUxPKԋ+5 +[) LICENSE-jai.txtUTEUxPKՋ+5ΒnD  THIRDPARTYLICENSEREADME-jai.txtUTEUxPKՋ+5}"/: UNINSTALL-jaiUTEUxPK +ԋ+5 Avjre/UTEUxPK +ԋ+5 Ajre/lib/UTEUxPK +ԋ+5 Ajre/lib/i386/UTEUxPKԋ+5>o8 ( jre/lib/i386/libmlib_jai.soUTEUxPK +ԋ+5 A[jre/lib/ext/UTEUxPKԋ+5@P<@vW jre/lib/ext/jai_core.jarUTEUxPKԋ+5m"p %1jre/lib/ext/jai_codec.jarUTEUxPKԋ+5;e 4jre/lib/ext/mlibwrapper_jai.jarUTEUxPK o5 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java/src/jai.patch1 b/rpms/awips2.core/Installer.java/src/jai.patch1 new file mode 100644 index 0000000000..5b51cff4b1 --- /dev/null +++ b/rpms/awips2.core/Installer.java/src/jai.patch1 @@ -0,0 +1,49 @@ +*** jai-1_1_3-lib-linux-i586-jdk.bin 2011-09-08 14:03:07.000000000 -0500 +--- jai-1_1_3-lib-linux-i586-jdk.bin.update 2011-09-08 14:04:43.000000000 -0500 +*************** +*** 1,6 **** + #!/bin/sh + PATH=/bin:/usr/bin +! more < $outname + else +! tail -n +139 $0 > $outname + fi + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." +--- 81,89 ---- + outname=install.sfx.$$ + echo "Unpacking..." + if [ "`uname`" = "SunOS" ]; then +! /bin/tail +137 $0 > $outname + else +! tail -n +137 $0 > $outname + fi + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." +*************** +*** 119,126 **** + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +- elif [ `expr "\`uname -m\`" : .*64.*` != '0' ]; then +- ARCH=amd64 # linux-amd64 + else + ARCH=i386 # linux-i586 + fi +--- 119,124 ---- diff --git a/rpms/awips2.core/Installer.java/src/jai_imageio-1_1-lib-linux-i586-jdk.bin b/rpms/awips2.core/Installer.java/src/jai_imageio-1_1-lib-linux-i586-jdk.bin new file mode 100755 index 0000000000..0c0bfd207d --- /dev/null +++ b/rpms/awips2.core/Installer.java/src/jai_imageio-1_1-lib-linux-i586-jdk.bin @@ -0,0 +1,6430 @@ +#!/bin/sh +PATH=/bin:/usr/bin +more < $outname +if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + + sum=`/usr/bin/cksum $outname` + index=1 + for s in $sum + do + case $index in + 1) sum1=$s; + index=2; + ;; + 2) sum2=$s; + index=3; + ;; + esac + done + if expr $sum1 != 2473689263 || expr $sum2 != 1668322 ; then + echo "The download file appears to be corrupted. Please refer" + echo "to the Troubleshooting section of the Installation" + echo "Instructions on the download page for more information." + echo "Please do not attempt to install this archive file." + rm -f $outname + exit 1 + fi +else + echo "Can't find /usr/bin/cksum to do checksum. Continuing anyway." +fi + +if [ `uname` = "SunOS" ]; then + if [ `uname -p` = "sparc" ]; then + ARCH=sparc # solaris-sparc or solaris-sparcv9 + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +elif [ `expr \`uname -m\` : .*64.*` != '0' ]; then + ARCH=amd64 # linux-amd64 +else + ARCH=i386 # linux-i586 +fi +if [ ! -d jre/lib/ext ] || [ ! -d jre/lib/$ARCH ] ; then + echo "This is not a proper JDK directory. Exiting install." + rm -f $outname + exit 1 +fi + +echo "Extracting..." +chmod u+x $outname +./$outname +rm -f $outname +echo "Done." +exit 0 +ELF44 (444H,, /lib/ld-linux.so.2GNU%51 "+3).!04(#,&*' -   +% $/2},;'<@-L~"\=l/@|8;7Wx.̊7܊l7s Vy;^,<L"-D-H-$\EJlD|myVL-L-!s=P̋q܋;h =,7,<!L=4\;el4:P-T-|1G.|= ̌__gmon_start__libc.so.6strcpyioctlchownstdoututime__ctype_bqsortfgetsmemcpyperrormallocisattyfflushlseekchmodstrrchrwritefprintf__deregister_frame_infostdinumasktimezonesignalreadstrncmpstrncpyunlinkfreadsymlinklocaltimetcgetattrstrcmpsprintffclosestderr__xstatexitfopen_IO_putcfileno_IO_stdin_used__libc_start_mainopentzsettcsetattrmkdir__ctype_tolower__register_frame_infoclosefree__timezoneGLIBC_2.1GLIBC_2.0ii ii ,3@-D-H-L-P-+T-,+++++,,, , +, , , , ,$,(,,,0,4,8,<,@,D,H,L,P,T, X,!\,"`,#d,$h,%l,&p,'t,(x,)|,*,-,.,0,1,2,4US[tuv_x[5+%+%+h%+h%+h%+h%+h %,h(%,h0%,h8p% ,h@`%,hHP%,hP@%,hX0%,h` % ,hh%$,hp%(,hx%,,h%0,h%4,h%8,h%<,h%@,h%D,h%H,hp%L,h`%P,hP%T,h@%X,h0%\,h %`,h%d,h%h,h%l,h%p,h%t,h%x,h%|,h %,h(%,h0%,h8p%,h@`%,hHP%,hP@1^PTRhhQVhU=u>PС8uLt h+]ÍvU]ÉULthX-h+]ÍvU]ÐUhLjhLj hLjhLj E hp-E PEPU..E ,.9tz1u1Bu1BuR;M v+,..t&,.(.. 0.E. 9u. +.-V]ÐU1ɉ WVSE E0E8&PXBӃMd$0A^&t-)y1-1<t&-,t&t 1t&-t-1-t-1&-t--1--~&Ej=.t-1Jv-8t-1"-t-1&-t-1-t-)y1-1-t&t--1--^&t-)ȅ}1-1:v-,t&t-1-t-1&-t-1-t-1&-t-1u-i+u^;uY~TF8-ukJvt-)y1-1/-'t-)y1-1-EC}O~8-Z-=-t u(=-ut =-u=-t?=-t6hhhH4PhH4h-E=-~ +-=-tB=-t9hhhH4*PhH4h--=-tju +-}t"E8E 0EP&=-9jhh-jjjh@hH4 PhH4h-Ѓ=-u$=-u=-u=-u =-t.t&.E8E 01e[^_]US]%Phh-jjjh@hH4 PhH4h-Ѕ%PhhhjhhH4PhH4h-Ѕu1 +]]UVSu] -5SVwe[^]ÐUWVSRQu )Nj])MӉʃt[F03F03F03F03F03F03F03F03IuF03IuYZ[^_]ÐUtP4]ÉU WVS=uNhDžt;1ېٸst Hu~Ή=e[^_]ÐU1҉LWVSEEEEEfEEEEfD4D.fEf)P'Eău6hhhH4vPhH4h-E.~APEt+EU;.}MEAM; .|. PE܃ EU;. t&MEAM; .|p ED.jhh4.tthURhhH4ePhH4h-hhhH49PhH4h-EfE JvWÅt].1jfP'Ãt7;]~]~*hhlhHthDPh`1jfPc'Ãt4;]~]~'hhlhHthPhL1jfP'Ãt^;]~]~Qh!hHthPhhH4PhH4h-fE=.tt&,.1t&;t7-PPhJt۾}t+,.M4tf0.t&;t8-PPhRJt1}t+0.EttEfEf}t7}?1fMڃ=D4jh4.7E3fE|Uԋ TUMXEE9U +EMEEI=D.D4D.y%)É)ޅhhpPh@hH4-PhH4h-E}um=tdhh`hH4PhH4h-Ћ MСD48}%)É)ރEv},hhpPh@hH4it&;5|tijVtPc|h PPtPEX hVhtEPCP)ڣXPT))XTjh4.uhWhzMQt&jhh4.hWhEPhhH4\ PhH4h-E}u =u=}hh`hH4PhH4h-ЃtE t&UЉD4y%)É)؅ ;|tVjPtP|h PPtPX  P)٣X TPT))XTjh4.uhWhzEP3jhh4.tEhWhURhhH4 PhH4h-EgSÅt;h!MQh-hH4fPhH4h-Љ]1jfP!Ãt>;]~]~1hh~hHthPh`^&tPz1jfP Ãt7;]~]~*hh~hHthPh=-=-t11VXÃM}U؃utttu߃@@)@PUȉЉ+Eȍ4Eĉ 0uGhh@ hH4PhH4h-Ѓ}ESUċ2PD4Mă@D1 t(EăPRPj1fPQ?R 1u+1fP1fP‹Mĉ+EȉTuM+ETT+}1ɍ=-tUĉLE+NuKjhhHth.PhhH4PhH4h-Ѓ}Eh&t, +t gvt3]=-tT}J=-h=-u.4=-P=-t?=-uhhHth6Ph!hH4PhH4h-ЃT-Pj h9.9 u@jh!hH4NPhH4h-9.N}uE9.8$--vhh!hH4PhH4h-ЃT-Phhq؋M utttu߃@@)P<2 +u0ut&--&j9.Ph!hH4PhH4h-Ѓ3&`- Åt@;]~]=`~/}tEPT}t UR?EYEM9MjEPtP|h PPtPvU TM XEf}}G}EȃPƃu1hh hH4PhH4h-}u +Eĉ=vEU9U}EċMAMU9|hjMQVuEE9EFvU{tm1fCP1fCPPtMhP1fCP1fCPh hH4( PhH4h-Ѓ}uECPPt?hPh!hH4PhH4h-Ѓ}uE1fCPPt?hPh@!hH4{PhH4h-Ѓ}uEPEM9MVEP}twETvME<uBj,.PhhH4PhH4h-Ѓ}E EU;.|MQD}tpEMUM܃<u8h0.PhhH4`PhH4h-ЃEE;.|UR=-h-}t0jpP}uPh"hH4ujpPh@"hH4]=.t&f}ujpPh#hH4.juPRpPh@#hH4[ PhH4h-Ѓf}jf}uP1fEPh#hH4PhH4h-Au=}u7jpPh@"hH4PhH4h-Ѕu]}WE f}t]EQTjhh@hH4|PhH4h-и"t&3f}t }uEEe[^_]UD4 B$ȈB D4ffQ$ˆQ D4$QˆQD4BD4B-t +t+vD4`&t& D4Q$ˆQ D4H=4 *=-1hjjЍf(1P1PhthHth +PhhH4 PhH4h-=-#=-hhHth& +Ph"hH4PhH4h-ЃT-Pj h9.)9. =Xh PPtPƒXuXv}n|&hЉуtzt8(t1@8(t,@8(t'@utttu߃@@)PRh-=jP| T .9~6} + . .T‰X)£X +X) .T X%T]ÉU WVS} WEPLPL=-}u=`t +2dD4@uN=-u7WEP|PP9=-jWEP}t +55=dthd]; +u +=htChE9sSt& u) +HA9uh,t&{ +u"C& +u  + tAC9r9vV)=-u9SV|PP9t <!=-tjSVh-1e[^_]ÍvUWVSE ]E}؋uENUt@u H-E D-UE@t#u t Uz +t EC +@EU uzEPj +UR EtI@tCju2jt!H-Pj +H-P4 LJ6:G,(> +P1w,uj+]CSEPUR_P69%EPLJVUjh'W8Ѓ F;ui+]SEPURP9%EP*Utf@t`juOj~t>SEPH-PqPH9%u%H-PUz +ƒ1e[^_]UVSuuhCH-PAPE PH-P%H-PG Et.j8à t) +t$ tqtQut&j8Ãh'H-PH-P1҃ ڡP-DPt%=w@- u t&F> tFӀ>u} uID4@ tt u3=2u*:t}B:uH45>1<u^C[/&<u"F< +uF< u~ +u FFCC-H4=wtBjH4PhH4h-Ѓt"=.tjh'h-ЃF>ajH4ShH4h-Ѓ}~ +}lj@jhH4h-fEvEhh&hH4PhH4h-f}EWhD4@ tt u-=2u$р=t}A9uD4@tQӀ=tC P-M@-E쐉 BEDHt=wE C;uD4@ tv=.uBBuf}Ih1hHthiPh~hH4PhH4h-f}5| PM)Ћ T+MЉy)Ӊ)څ}:jhh@hH4MPhH4h-и9) X]Tbt PW~hWh&hH4PhH4h-Ћ5| PM)Ћ T+MЉy)Ӄ)څ}>jhh@hH4QPhH4h-и9tOjRtP7|h PPtPX~8P)ڣXT-) X]TWPu 3t&Ee[^_]ÍvUWVS}}P-E@-UËEDXt=wEދU ‹EDPt=wE 9ue9taEDXt=wE ًEDPt=wE 9|9} t&?t GE M.1[^_]ÉUE1]ÉU]UjpPtu9hpPh@&hH48PhH4h-и1]ÉUX~ .~, .‰X)‰Tt&=X} +X]ÐU .9X~8} + . .T‰X)£X X) .]ÍvUS]/u@h!hEh`'hH4 PhH4h-Ѓjt& u;h!hOh`'hH4PhH4h-Ѓj=PtEPhH4kt&jURhH4uE} XxT%T t&s ǃvĉD;SrZ Bs3w> XxT%T t& ǃvĉD;rBs XxT%T t&CR ǃvĉD ;#r +t$t&BsDž9P +=d)PRh(hp(hQP0u +DžtDu0=-ujjhh-ЃP` %h)PPh()h(jRP uCv7=-ujjhh-ЃPu +DžtPYPPPP|u,PRPC1v[^_]ÍvUVS5u7 XxT%T ƅtɉEKw: XxT%T t&CtV ƃvȉ5u K1t&u K!t&tt&[^]ÉU|WVSu\Džl} v lU1󫉵X} ,t&XXOuE 9EuU1M t&}u,Cw<t`E 9sM }u,Ot<th9vE 8DžDӥD;hs*,)Dx+DCɉD9r,)Dy +D, +1ۍE0Xhtx|(8OtXXOu狽01 󫉵X1(0vXXt<2G;} rҋ(810\U tXDždxH8T@h9`u`,K40d\H9`jd Hh@HM )@ d@9vƋ`Dž+Hpى@ӥ@9vep,)4C9sB҉9v+t&)C9s9wڋH;lvl9Hs+HDž@ӥ@ \@PyTu"dt8P@@TUTTMB8u&REPWV1G?u߸'[o?E-1%;uP-U@-Uu \u +-u +1ɊN}t+1ҋEDPt=wE 1ۊ~-tg1҉ȊuЉ9wUU}t6UDJt=wE9t &9u }t$A;Mv11F;u,}uGF\u 1ɊF}t51ҡP-DPt =w +@- }t?1ҡP-DPt=w +@-9t&19u Gq1e[^_]UUM EPRQ6%]ÍvUU:t/<\u ztBX YP)ڣXPT))XTjh4.tjhh4.赠tRhhpPh+hH4菡PhH4h-ЃtPly)Ӊ)څ}8jhh@hH4PhH4h-и;|tUjRtP|h PPtPX  3MP)ڣXPT))XTm9~ރtPce[^]U,WVSEux= jjtPCxPPPtP)X ;x\PDT9ET8PujhPž TP9TsvPT)‰)XE…})Ӄ)jPtPi|SPPtPOX 9P)ލDT9r8T8PujhPG TP9TsȃjPPP蚞 ))ޣ|}?Ǿ }9||jPtP|h PPtPcX = P^T9rRT8Pu5jhPuPT)‰)XE TP9TsjPPP莝}9}=-u =-t5hpPhhH4`PhH4h-Ѓhh`+hH41PhH4h-иPT)‰)XPT)ƒ|.jEPEPfEPf EP}fEPkf EPvEPe EP1f.13e[^_]UD4=w1B D4`=-tD4@ w$D4HD4t%B tt + tuJ D4`b1]ÉU8Ej*P,1EԃEբE֢EעEPfEP f EPfEPf EPEP EPEPf EPfEPrf EP]fEPKf EPVEPE1 t&3]ÍvU(EjPu +3EE墝EPfEPf EPfEPf EPEP EPxEPGf EP2f .$.tD4P@ .1]ÉUWVS}u EEt1t&UX$wUTtt&UxsEE}^}T1G EEt-}v#GP_UB &e}Et$Z;]w;PUeEB;EwPUBt&e&}u EE}v}I&}vn}uh}t*GPUGPyU BM} v2}t,G P4UfGP"U fBME|)ƃv21WfÃGP1҃ fFU9Ee[^_]ÍvUjjY=HtHtP4tPt PPt PP]ÐUS1f=th-u]=-uT=-uK1jfPt1hh+hH4•PhH4h-Љ؋]]ÐUEPhTj3uf}t 1fE]ÉUPVSuċ]VSReVjS袓e[^]ÐUDSt,]SPMSjPe]]UPVSuăVEPܔEڊ]ۈEEEeVjEPE jEPEP諔Eˆ]ۈEڀM +VjEPߒeE[^]ÐUWV1S1UD4@ t +N1=-tt .|-1t=/%-jjg +u +Eƅ=-tj/hƃu +FtCDž/twtLZ;t5SvjP17;_-Džt&P-DP@uB~wC1ҊF\=-u/t+1_GP-DBtC1DBu;uutttu߃@@x/jV=|-tn=-u-jVh@hH4+PhH4h-ЃD4f@% PVvt h`Mc\u1jVhhH4趑PhH4h-и"jP!jV[^_]ÍvUSE Mx-1ۈx-Px-PAut-x-)=~hRj軏= .ut-Py,vtLjt-PhhH4讐PhH4h-Сt-P+t&ht-PuIjht-Ph hH4EPhH4h-Сt-Pu|-`%=@tOjht-PhhH4ߏPhH4h-Сt-P\tLjt-PhhH4莏PhH4h-Сt-P t&x-/x-x-1vu;t-PQXt-P跎x-t-1Yu<x-Atx-Bx-+t-=BAuuЋutttu߃@@)+@Pƒt-u + +=+~%=-up-PRi+t- t-t-x-uh=+p-P蕍t&x-ht-PhhhH4čPhH4h-иc]]UWVS=x,5FPÃ|P褌 h: h?|tPVjSًǃ9tWhhh@ hH4PhH4h-Ѓt S菌|P<|P h jShe hH4袌PhH4h-ЃhSߋ thl {S|P茋t%EP]S1jfPR! 1}u 1fP1fPþEuEE=-]1fCP1fEPhHtr=-t/h1hfCP1fEPh hH4n %h1fCP1fEPh hH4GPhH4h-ЃWhtM=-thhh +hh" +hH4PhH4h-ЃD4f@%Ph1t h= +譈e[^_]ÍvUSD4P w,$\ +1Yeڍ"؃u Éڍ $ ډQjBS:D4!X1]]ÐUS+=+t Ѓ;u[]ÉU]ÐUS[([??-xCďp `P0HPБ@XMcentrallseekEOFlocalwarning-sppppppppppppPppppppppppppppppppppppppppppppppppppppVMSPK[empty] [text] [binary]testlink +extractinflat%-22s OK +׃Ѫ++++--+-+++---+i++_̯յݯ=wb +bus errorsegmentation violation;Zx0N[ %s ] +`*(incomplete l-tree) (incomplete d-tree)  + %sEmpty zipfile. +[%s] + creating: %s +chmod (directory attributes) errormapname: conversion of %s failed +checkdir error: path too long: %s +checkdir error: can't create %s + unable to process %s. +checkdir error: %s exists but is not directory + unable to process %s. +checkdir warning: path too long; truncating + %s + -> %s +rbwarning: symbolic link (%s) failed +-> %s symlink errorwarning: can't set UID %d and/or GID %d for %s + (warning) can't set UID %d and/or GID %dwarning: can't set times for %s + (warning) can't set timeschmod (file attributes) errorT@00TTTTTTTT+31 May 1997error: expected central file header signature not found (file #%u). +error [%s]: attempt to seek before beginning of zipfile +%scaution: filename not matched: %s +caution: excluded filename not matched: %s + (please check that you have transferred or created the zipfile in the + appropriate BINARY mode and that you have compiled UnZip properly) +error: -fn or any combination of -c, -l, -p, -t, -u and -v options invalid +caution: both -n and -o specified; ignoring -o +UnZipSFX %d.%d%d%s of %s, by Info-ZIP (Zip-Bugs@lists.wku.edu). +Valid options are -tfupcz; modifiers are -abjnoqCL%sV%s. + skipping: %-22s need %s compat. v%u.%u (can do v%u.%u) + skipping: %-22s unsupported compression method %d +%s: bad filename length (%s) +%s: bad extra field length (%s) +file #%d: bad zipfile offset (%s): %ld +%8sing: %-22s %s%s%s: bad file comment length +local header sigfile #%d: bad local header + (attempting to re-compensate) + skipping: %-22s %svolume label +warning: can't alloc memory for dir times/permissions/UIDs/GIDs +can't alloc memory for dir times/permissions/UID/GID +warning: can't alloc memory to sort dir times/perms/etc. +warning: can't set UID %d and/or GID %d for %s +warning: can't set modification, access times for %s +warning: can't set permissions for %s +replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: NULL +(assuming [N]one) +new name: error: invalid response [%c] +At least one %serror was detected in %s. +Caution: zero files tested in %s. + +%s: stored in VMS format. Extract anyway? (y/n) skipping: %-22s encrypted (not supported) +No errors detected in compressed data of %s. +No errors detected in %s for the %d file%s tested. +%d file%s skipped because of unsupported compression or encoding. + error: %s%s %s + + error: %s%s +not enough memory to invalid compressed data to inflatewarning: %s is probably truncated +%s: unknown compression method + bad CRC %08lx (should be %08lx) + compressed EA data missing (%d bytes)%s compressed WinNT security data missing (%d bytes)%s +error: unsupported extra field compression type (%u)--skipping +error [%s]: bad extra field CRC %08lx (should be %08lx) +error: can't delete old %s +error: can't open zipfile [ %s ] +error: can't create %s +error: zipfile read error +warning: filename too long--truncating. +warning: extra field too long (%d). Ignoring... +%s: write error (disk full?). Continue? (y/n/^C) error: zipfile probably corrupt (%s) +--More--(%lu)--- Press `Q' to quit, or any other key to continue ---   +    + #+3;CScscc !1Aa  0@` + + error: can't allocate unzip buffers +unzipsfx: can't find myself! [%s] +error [%s]: missing %ld bytes in zipfile + (attempting to process anyway) +error [%s]: NULL central directory offset + (attempting to process anyway) +warning [%s]: zipfile is empty +error [%s]: start of central directory not found; + zipfile corrupt. +%s End-of-central-directory signature not found. + +caution: zipfile comment truncated +,2BRbrŠҊ"2BRbr‹ҋ"2BRbrŒҌ  ( + +XX8o(ooGCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)GCC: (GNU) 2.95.3 19991030 (prerelease)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.got.rel.bss.rel.plt.init.plt.text.fini.rodata.data.eh_frame.ctors.dtors.got.dynamic.sbss.bss.comment.note# 1((p7 P?GojTo((0c XXl ``0u X ~ 1 + v , +̛+Л+؛+,<-@@-@ @П@PKbM5نB COPYRIGHT-jai_imageio.txtUT /E/EUx +UrF W q;qgzhN;nq+АR>[Þ}J6͒ A8~o)/Ҧ)^ssMo<֒ڞxr')oo^7au]mߓɔ8s:prN/xՈWSh9!G&&ͯ*ʞ_@OQ/-wrႜGM4x,1d[;" HD_?8W(~NrI +2$qF$ZE#w9S 5_sw@ޘ)w<}$x|y}0 Fd E<&jІ!V7q[kxbY<1nYCrab\c"d@%v}jhEey8{H3v|`?PORd@5窯l:I +Mznbh[#9аΝ"gty٪1'8DNq+ 5?B;Q- bk#"AL i):< te!HgMF}:_WǛK~!f>NG4UwW@`\.&̀vN]ٲRҎ#6c21f`D|9YhJ-6(6ySoT{bi OSŸ$xpqc1/xU}fKcݕJ2lWJYpE+=W0c^Bד|6Nș+AU4,jEyWiFAvO+:.bEwY ɴTMNauy si} PRC)VIsZaa/:j$@,uj_$Hśg²Ý4uJnJ^MV&煢r -c"L~E`A55nOV؀SaޣT+xAjc yy\ iOlIOf. _v Me\BQ@\ұw.9 +i2tv!7PKbM5@"DISTRIBUTIONREADME-jai_imageio.txtUT /E/EUx +Tn1\B$(HA*UD@+]ς+3y3㙉)Oƻ|:6fzx^IȉҖ*~?WSdu朡pqtc4$ư.X4bUoIђO|u3! rUo;;@p4ĸ ϼ<,YA9`"=)zRsHʸ-GkDׂX^i5/#0!Ӑ: +ͧhnrM^*p*, + THR(`CfT&\_ tTx.G2~R855h3Jyq~h B^[eZp}Mm.Րv(`PX<'UL`rqE\h>{]ceѐ_+lWS4;j(_3o1rPKbM5i ENTITLEMENT-jai_imageio.txtUT /E/EUx +Vn6+ | 6." /="~}ߐbY9|fP/GCL9^tһɌV_6@/_yEϾrɤk6vtTUjUe%Pa%O}%rkZj'Ni}6HȎ6%S,Mc* a8wԻCp7{C3iFX9kZ$㒪v!!Q$G]u^/i tGt ? Y/kSDm8%쐱Cd=Cx<]~NS~;(]Ld_5w5rHҞէH׽dJ6!8gcM K;N'/z2jK{2)FAAQVGo~$`bs5[*§:ԵXl:Pr7Bt +J2(w: t%09fk/:/T.ʥaw W84;9^lyF$-էo.uR Ar' A?lIvJ%<*_#_s2/qA`UzDc]oNNR rUYPKbM5U)*L8LICENSE-jai_imageio.txtUT /E/EUx +[]{۶~~EӤ=^1kWܜ\R$$H h;=7L`>-]֕9FPMt.WmyyzwVZ->?Gx0.?!)U\6ysTNu;sR`o:m'&IUU.a}QOTS/UK_''OLudMVӟj]UQ7NuԽiB]v' zIWjL,(d̛cp _%-z(|7: 4 `y dtMJJ"AIZU%GF̈!: pN״ȴ@և8|WIՁ74 +#9 +~yR3'uތ*/m wiEs]^Hy*K@KA4IG=Y2*Dwd iIDDZEgD!t_ N_/MݶԕN |u쯾*ڜn5ILd(t!9UQTϐUY5[7ZR;RO0]6/#aOطƐI#٢7't9/8eMʷN_*3G8ݝkП⯐:$uC:U]mUe~KX;>!mKk8`VuObrT7:pس'),J.L ֚WӲeuHX#Ȭ*V̵SSi/۫<21d %R)63X@ :!7OϫV\me/Tg''NT1C$ 0%C԰Лxp8pǑ@v$Vt)-G(Oh7᮪^61 /KHӊxdRxFNYO$F ƥ2- 4MUh^tk9ԬrjlI=gRP½ʊ͑ߓM(2M#B =$D= ",9 %2cYHywuLkM`Cl>&Ntf*WI1ER㾞\sЩ|dKf_M~)Ui3z Qj/Vj^{խ "7!10}Q "']O)_f Ń֋2RӏhDqZƳx^.qD ͒?_Gq,ۈX\񷠆/e^/*Zx>S/Al3TD9z?IwEr|$m)Hl,X DT r69$ϦR]Sr菘(RP'Qxl;^]E+)&`O-dw!vm|n^zVWzDbNCKL "!"0IHpe, .RuR )!7V!t.ʛ$,Swmȯ7#oӧxN +ʕr\Xlm ⱡKyB >tqK³sCdi +1':Æˠ]dG..{TȊ#h6F~mD) !Oܥ 1)Rp D7pL%g+ *b lNa s&KjR^YFCm$uBmxT2A #i:yDAoDH'e#At&+P=qX'TTjs͙=x} <%"pɧǯ:+7d  Np["BU!J_"Ƨ+}8j +mށK%% HT|5luk`>{i$Y2?#Ag/AwTplS+^ 8YTqdcxVgLFa2kB&PdxsJuIȡݨw R%i"emmr3سiɽZBu$+'PA\#_ ガO8%'PH}EvVetvB'J PIM '5@M6 ^%HHCTAD_ѩM PΣ)ydhv"e]y +$.eQ%YXetSTzْ(}Ukw~j#8;BQnn ܞ)ˤ37*>{az=Q>k$:'Usng.7iÙZǩYdk +"򝻕[w9y3Nlr~B)U3ѦǼ6 kdM?vDlz&+NMI;:K;2UW6gt`akE`?&yteB]Kdu>*eR;Luiъ(lA \b8DU{TUbUk#9"F5PTGQm(nB y]\+~5/hEAE@ +ʰYehT0N"2Mmyݫ/O`Sj8=FݚCE&.a\HuU/dR#'QbH|9:=:)[4*QnF3ǐ]_v{Ϲ]jKAusȷճg˷TSёcOO}U ?$#JYD`SShƃZ#]C1WdK#.8ݡ2ŋ@Q%ݓDyGϝkHP݇ݥڝ$zlx%61߰]%(Els` >:݌ 'iطfD.=W 2-]+{W2-n6~..)jE|?h}Hj<4R(rh7pI ۂ.q_ +svnOan(>n\68V*~+V񱥳Q?zgfCb`TI2 {+0&stzxf\foC跈hS#Ҋ$;7z <!X>l{W{e3rc<䘃-IJCzNi/ 94!e-~n~'mnCH~x!|?;f4ab $?** *kRu[{kqA8K|,}  +6%_I>Is?e zA JXdA#.*osvR]}VJ*y'}w$lzMqboH*] m-լ:I6X0|u7|YA6΀7?pdNa1Y\®ލ]̀οITlrěG;0AGM2x[A3׫3D0˓3bqj(q9oI\"@(l)Zˑ#~BK?؅&NR0g{1T3XC Z:U8zDAƄ.UIj;sr3TסM-WOO71dPC]pG|ᣁ‚{/)鍆H6.C)$d<\ ͡q=6mZ`[OI^ "[EsDIH/dsDmwEaؽߣި,Zi}_#)ƕ"ɵVr-kZ" +'uf^S F@ +"5*y:HE!#83lU١Ӳ 7Jq&6, v]aܵ%ZPJ?Ǐ!<}f ;h];MX,`<)yC(h I86&&lox]]aB te)J%lG[~,|q@^b[|6%Ij[ +)U%r"Ŝ +Omy&/}tzꯤ1?*Q2X⑿pJMW68`<yeɫ ʅswUu PgA"%l¥&%\`U((It +]Tρ~۵NLHu%`.ް3r!:>uvXRtwx]Gᄊ0ūZir}1^.x4?Ge4_O+Ƴ &&O]"a: zes,Zb~|1=\a_j2]g. mfIk,Z*X\>jDG4N {O3s ;ዚE! +z?,(,00>$ mXIC!$ |7?1425}O'2,t nvXqģ&Kr:SnŒ ˊSY<(z*/s^q7ҁ +I6hWSK`[HMK26޹o\k\ l4v$(EQI9}9k \%2@Kq>AZ*ܫk2G߹t|dq_jq޼mۛo|9>x Kj941d1a)%_ X In.ҝy#ʪ|M.VSϒg6ǮP" Йd"\8)rگ$EgW|[MPJOоbg[&+2o N)L=GȤA¶d2 2+&/߆_ٜŜ*)Ā|²ڪjVԳ~9;/bF4qs[\e|l#aY{#RM3^*3,cK('D.rӥ+R2*xfvͻ՜@u +ZU$j\$59wo]]! c[PKbM5Gd!'THIRDPARTYLICENSEREADME-jai_imageio.txtUT /E/EUx +ZMsFϯ%TL! Êr +DB" @)?ue'JUL~xyvR8sJ Vvzq ]{t0%'X݆z<%۟|ϝ]/]?o(i0n]Fiߙ*HvEPٝM)ft_EumJڊ}5E}֙c6t(7YMۼ"_ge+V|Oz\ώur*o~ߥ U%0d83Y^#*]Z7n(Ur "w&KO?> K2ZUOYm)]1")Ǭn{6oTvwy +inҟ_,4+h$7鮙][gMV?fcl+GmZ%l0˦uWmEFOiCeZj=fEwm몹pݟCEQZ)9ODOy<iAlڼ=2qޖUQ=޶1M'VzE MsqF"O򂉷"?%HM;s5o?+@WCv:覯ڦ裇ǁy 9zZDPݛ֧V8Dscx6BĶ]ގYCu1.os:}ua.,w]U(EpSV) +=U![^ôDV>0pQ]PImH'%L./.kAVR*2Ç"S3eSG\..E&umf|SZ~'u1N.g%Z&-tb&gwh 5(%`Q(OSX۠!MKCQRSkdmxi:?%ce0-⡐v5uT`3Sw'a]")Z\.;kզ˻:㘊z.=KNFFZzj qIkNgD4 L1 g,zT4B7TRO\rtӢ⧤kʱpfyZyZ%a|iO'oY׵ OtN"+2HHYo몟3#;&[Qt xcTB];ܒuO0ԍuIȌPUedBMT +pWP9bR,2qWqh^ rRqg~f)gg~›\U6/#5ނ 2:90d4-fȔɰ5wxfo(!Mj9+3q$G '#HiGO?`h0:A<@yh32#gHΕo 'C0viES/r*bX?!M"miuϔ84EpR< +!NeKawGsL\=TH`9-w +yE @}cr9[|r CRkR]4~չAqB2.q/CCo2G#9g:I~uT3wi5Ă=<@p 5sĤ/:DvcU;9Wp,m ,=0?f$y[gEUpT!VX4aȂwi)™G@pK`b >d6 |t)^6v?tXvFU!Z6$*-8f%E dbGQ4QW:;%. +!2a4f-8ѡ,Cd{x׶N-lክ1P._ZFIMM߆RKn%ď=w nD :[Δk +-?&L_=w'X!Uir@r: B$mnU?YER#C`NF >?,Ԩ EI8Nz&ҁB>Ru()ԘϊS_L714N8 (%nZ-T0A w[&>^=˘% 58%sv$L\%->ush4L:p8" +X'4G3*x 8ϽfNZ+g ǩ]Ą+WI{m|5PKbM5c4UUNINSTALL-jai_imageioUT /E/EUx +Qo0ǟ.lDYd/,FЧh"ePP7lI/w߿M;e ҕ{˙9T [(h}:=m1ݧI@E8g'.l2NBg- V=PO $vUxԣA~O2*GgΙpEWuAo=D wi䛄6omK#G8PK +bM5jre/UT /E/EUx +PK +bM5jre/lib/UT /E/EUx +PK +bM5 jre/lib/i386/UT /E/EUx +PKbM5*Wjre/lib/i386/libclib_jiio.soUT /E/EUx +ܜT\/?(ZVJ]TTBJ7lE $ CB"ѱI26e]-uQiMꎕ=='.=gmaCO9gs"{ɽLH:9O?}yy{'mqqqZ?Ѵ<0}&u=O@KvO\#J3gl3$nM;xd&d!A"Ҟ99.![ /! X$-ȝn!߄`[!? +y 6 GL~1b_l9.d@^r/ QU)l`8΢WC0f.)WW A}CXWBː2AH8|yH fԚC! .9H:^aHŇ=!_ kSoC9I&v\GSz찞Xp_X7 {.jk+ z|CN1DQjFQj'+&g3=aL6j? Orơ3ґd 'Ø2picE3רq?~1ю!1Wg/v<k'1(Wd=G\_alB:=BJxɸO*ev5Zl'YuuQEL;IPr+t8[ d?b9f<|Sc~82@ +&k #2ꉴw}Կe,D%W"pC۱υNOy>n?e b3e<"h| 7ǿ|)k.og7iey~P NY 5tx~z ^Z;$Y>_RO0/"? -H[#iw3cK}%΃ˬ/lٷӌ׷9f?cfJfXF!S/z +ކ~j7-`nKr729c<C݌Ϗy?pۼ֣Q5xZu-F| u{NO]骫p4y-vU7d+r~kp;kvϴv2fmszZzP!@-S2PFUL *1XYuU{K]t\t\2Bsibɚ+FUL *1XE] +gb].lr)1m\؍rU6qe]:m]ºuo^o=vZtXfkoYټӱtmvsV#kտU;V1U} +jm&DGw";r5ԍYG+beTw4_:n宸8߮CaQ򌣱ѸcVtb+R{i8&mkƸ9-c3<cbީhEJV`bl'PdٮwjbCE.Y͢4.aoͦ(( ZDV{,ݸ,.mc n^7@F UcG]>Qõ5xVr{=.W#(NO7j(stw6fw9|kg] EUz6K$ݍvocGb2o g]͎6q_td>Xb|.IV!a'+15]ĤD]nuwEW(a6YNcc2f]ynYXEK.[XY)iKeUk%uؽcVcnPNcZG12l'抾vx3حZs9;*A^'TWzݞ:DC7jM_ZNI M6]kjs8i^'ishM*|<&=Zkiu#.{R#=a/WgCksO[hm\fկ >y`t*[k|k0!l|_Υoښ8˟x&q _q-NKyVѯvm1[Zb«XQe5~R3 )Ng_p_snujO6׌gmۤ%bYH5d#Jv]I 9LgQr 9INgir Yr\ /m7H&d +J5&Cy\"Ӟ0Efyd!YD6'IE& H>i0,%u(9H=JdIfdGEd YO6.O$r"G39NNS49C#gyr\$HE&)d*FfYd6Gd YJJ'Il%;N(Oir!ϐd''Ir@jO1NdId YI֓}y ,9O.KdL#,2' !kItd'E9D9AN 9KΓTid:EfdYB5d-.$ ar#'Ir!gyr\"~2L'l2, KR%uEvdC9Lc9IN3,9O.Kd't2&,%kZR']dIv=d?9@(9FN49CΒ"D&=id:EfdYB5d-.$ ar#'Ir!gyr\"~2L'l2, KR%uEvdC9LcH3(9Fqrz/CΓ d>d&Ef9dOd9⢟(9Fqr$ȳ49Cs,9O.ErLla>d +JdIfdGd!YD$kZl$uE>$Q!ȓd?9@!r!ϐ$ r"ϒ "gyr@.K澓Id2JdIfdGd!YD$kZl$uE>$Q!ȓd?9@!r!ϐ$ r"ϒ "ϑ<@^ %Rpd2L%t2Ԑ?1;I7{ԓkos{]aFx/Fޏ!o[7!䍰y#܁DOy#_FЃD!o!o/ o~EaFxy#<~y#F8y#D|N DBѴwU7yEse|^ѥynJr.Jt_*]Y)]Հ9ҥIWZ./ꅢ+]%۔.o\TWr.og(]eAs)JtyyNS ˫s .oP~~TzZ-fO_2ޯ֯tykFTW+]=֯tqMUWu.jJ)~Z-=֯tY>֯t jJjޣ?N֯>O)уJW/>A)5˧wW.-[82_$.k{^|7ieZ ¶|j8^Ӻ w'f>zxʖ S{/ %1@"uָRmJK騨3"QD 6U %Z +g>긎̺ +6qvpdFl͞s{/GڂC^=sZ#// p2Ű;\>Gd]0ApC`lBƑLMO9=aq_$oח^zRf|H[؛TU~ ?0I~0E~p.'NWs$p:;3I&]G>axӏ?K κ' 'z1i_R?@mJ9H;X  l?I$6 'y.v ԴZ-#KğZ[#AnA`ᬯ7rx| p)ތ)u'{js5d0x;Pӯ_bL bJ!XBO_YK߇zy29JĔG̱9%nqQH u,CXw+PL+<7D\OXƱ#6&*{ +x }H+7@E&)3QC,wc<ֺy(+[&SB4HD?*<*N`0!"h/NRX&Aُ*~(*$>q&l!$zCK//00a#Jy^|7ΡӨbB&2*. +Of~s<-O{f?3|1Y}W/=}u|4g] B<efgvvg蚉ɐjAD 00 aKTK˶%VsJ򗊏/_^Gկ 7W||cWo+7.|K5SM)2|N/#Ip\1?Um,?ci#`]ع!L74Fyn0.)ChjxhLIޟmҀTyq/CC aLQA`cQ +BLܑPjf#ɃT+@*!IXzY&GëUB/Ɨ|1x90g_l$64SKq}/Ò`Tlt]e|`P4 YfjszW;nb% \쟒sJ, +CS}w_065~gVd$ +%p,`#QF bRɜyAkmB7Ҿ?CsLEIt紫3m iT]!:]LC4|. nbƐ +>E @bTtNVƳiop]<慹鍲Tu7T [5 + iGWEkf`(<ϸ6;;ו~7JYzcr\-nϻݵ+(Y&iTb"#NZGT8xH!R2?w8-,>tAu,$hŬׯ~tłxP!B(/>:B>;ؾ.5)gsϚ5x} twxmgl! Ah(Z<㉏gUg@jnռɠO+B^vi‹xAW]6kH]~=E]ߞvۖR]p}Tշ_o)VT׷+Rr]h}+x)6^z{V_S+P_`6 yvgOȈzFOU}tMnC]3( =*- OM^!"}t柡ofQa+^ǘ%;<* Q,3V5e}ظӓubŀ/;Z_5_5^_OR|.ȂvE㋇[ŜqE61>ؓ |xb|KE`($ޚŌm|QEd0,-$.zê20&X~\< T0xpG Ѩ7P̗_زEfw"V4PT3<ȑ, ASC!r;ߒj%Da7ݹUZ4s@ƅKdNw>*5]͚MEƹus yS8]HVفPϟu+e|㿕F\XF6b5Vݔ +'u5L`Pb j-tt?p܍HYXi`jճ+J8,RKxQϳD-SNH'(SI +O^Vg?/J* NQE +CetYXe-TX/u aDRNAr|0TFaҹ\Tt $iDjayLWwUz[2_|?^ڟag2s k\UҟbjUϛ聳P^!ĈYSU;X%cMzFR45[ ,kyW:U8qH\H[k,IjмMznSC;"B6$2`VS,v*)g]uˆp{dݸK?@k4َA.y&L`R5[qD?bh>` xCtl +ȔYLaP]) +fe4AAƸOS'Lp>>V(K3=^9҉]h$ԘM:UJxB<]pP =^! zXj{:"^-:?@6TBC+ BޠFM%Bv=D{Ox%zgIH*iUH!kdGgt2%B'ΐ5dnO&i_ 26]mXOm.3+x#C`a_W*?4 $DB`_nJGt !~w]j u1 ϒ%Vz( zoH +<Œ؏W–n#ƾQo^VgmniMM;6Iw5]3J |7}4z~L-fd{@^~.G D! +drr&(,^:n i ^moڥi!8&C|D_8Lv< 4,>ўnR=&.ߙ?Nm:O z7NOX|$龞#1G} D2+ğnÛ*9|W9T7[`bx `a)cv*3GcOx&yf=w+~_>. .NS'O>8>}ZƧ}߽$~(?ߗy/?.O̸/hD2b*X-G&?I9X8%!0Z'GO0!ƁNV\c&Cd T <8x_!Ùz+Y gq;B(lgfd5^j !U s{+ oDz2cr84dPaf|Zm+>j;1OAM^&;_T5,l{_22an_tS`:p8UkMI$6YΩJh1r 8@dғB-WJTE LL\EM13$O + ̷g9gZ{ubxz!'ӆĝ/l/zUjc jc7tTܧ;]V71%Ub-ƥˠJWcT$BD k2j[8_B@8&c$yQjŸ0JR=ϓG֧H)Rx <֩<6"7¡k+4tr=4D`[B?X|rP`vXzvtXȆFHLVVXkG:ᮜגUiO Jo I +^S{HKvOܾ7 +tӐ-%KIy0pFvnˎx?%< }+t%JH[j"(51YU_ݎm*dx3S-0얐 kA7?=?"ؘxAyI) uG>*Z9zc_4QNT@KewkY3e_SjjVc,z5Iy4щ8`>?"Cn8=[/QPz7@ yn;%osC x.?D+L^ĉIf43‡iR<@Jgg/&3T٭ވbq_k/r~UņJȡ4ΐ5AxKqwcVuRMDzCNY 6;mvY5r[M-FÂSC趸ICn e.NGr;ЙAlj~|6NQy"rS.3D{pw)p\/Պ&UL]g*4@]x-HB:}r)ZMz +o0.i},Oς3y~pwjK5,$#[Xj/ZO&\LP9(}H79>_$`ϚN$)XQb_̴cr9m{yKB+8nѨ8㍚aT΀OYsH󦌩b')h%Q '[BV4jw;^@K xvsԮ?^&H/󞟊_U}oKݽ$Oј?&?j,yF;wqܑl4J])cM0PV1u7J-cvT(?P L#RPp>\)LiQx E [7pjnx1vǺPQ`‘a#"@"[XŨc6c{ COX5!`Z0qVX{qzrN 1im|rF+S L7,EqF}Ҷo@(fPh :0(\UAkԼ`˧XY 'Ui\DvDZy!# 14Ǿ(F!+wSBZ(9l} x,+f@y}֮@0g3P([_BҊL4DAÏLkIMxJ a/+G4X|=9\Xd2p.#0 O.ȶ>78^8ֱ*ͦ_BgZKuO΀796*ԣzVL)*$d4Ey )RØս9s@=lCAmAk[ (Ȯ R3bJ(P<[6h7:I%u'so1ut[MQj$2=I>I5kFwtWlhx[Mئ6OjS>2To0e%mzQzj@ݔ힮}0^SDni6t_#ϯ ƽ)O8cϓZ=f{U>ɣ|9T Fۢ9TҮԺPk2(ԴYM4Eݳ'6ԕ`2i PAq-*`QjFф)67kcb3zsQ-xdpRM }ayX^tg+c :u8 CfgzN9wp>>e@ePϋxoϫ sy<e71ͨMf^]_HYlK HN(jjCo3^5+c^STꣲ0Ԍ?E袪)N` +Av/YU)Rb* +%/CK~^mCřlsڶ +sȅ6$>8#vI~ZTbF]ˠhD+1j(pF>=di444f4"̼d՜gefyUx)!XC_bQ'j5be jF9BL7¯pȧ{EѯǨlw K5Ty M~{e.Ή*(1弩8X5."(>,3h:L~`|^}\[k&bK  /ݖռ)6P(Ʃڿ +l$`jŸf>w"ʠx:^E p1@ᇝΚdd^9:O<)l‹'.4b9W.eGWSpV+R!tGFmimR芓zww~-rO=)rI<Oߋ<%9X3`@ܿ#RCn㦋rp6rwDh) .w gq-TsWC%@daXzmM` ΁_[L`O,|0&ͅl;Z ֓UϢL՟|DIa_@Ȫ5'{iFfk(@%[U]d,^QE{C" tpĒ&Uz.XrjwKwtK&;D&!EYϜSkeބW쿮>꾂P #~}+Mo[;@5f +dv<ʪ0*M̎=x3i-leB 41%:Z@azOw\ӄ\\v Hh`PGJqvNGkHUЅ}JUgwc* MQ b:h8Qe/(]lZ%WIİMhoo6\Ic(]a4@z31<*_!^e79Ż"Ƚ!WxLT滴*i.U5@ydzX\-3HR7& blݪߵZ'@g=vzҶ|'YJe6z?vJlE8%oow6H˧-Pf%2ah |*غLJ:m emِup>D u?jAJO@?[gY9zZkrhvP?lύa 2cGtk+e᪅pU׏u\u6\5m`YCpۡZ C[^n&,sIKŀ1]`WK-Kbmǹ/`.D!>@|qdV $g%q$ȬDW_CZۮEۅs4va[' +Y5Q~v7 Fީ^ ex*W[&0TsO@,gu{hxh=2^z!א:GcWWiRt= FZEï"@t *UZi믑``5,rT?#Fu Xɷ!o3Vw|_V0򡈀Jû!ֺm(-c?e'ㅨH"j2h'4OШe~&&\\k -+$`kmW84YΛY*LB^Y|3[-u&d|} ^k`f=[xvM#Zqٞ 2{y[0=rumeleS=WeWr*A@B ڌ?wZic=l} qGG\9:Q9B"|QVO8+Q- n ꇿN7E(oG6ѕۉluyq&(at>އX}7 !HτTů*=ܵGs(KyU{[]5&m$g" NW 7dVkn ϙ@Ox?JzRTnwi ۸icLԍ H]ŋ^EI[^ܪ{ /KT~HvZg9?~>葄o ΌeumEBgXsg-W2vLS.[$*2mʂ鵺h%+)`-gďzh `pV#0Ī1S1҇^0(aImV{/Ц&Xnv3\ KG)NfZϭ^;c>Pg /L7UYMCYg]4I{ wL?_wLkVF(@]Ea-I\AYp-B#!Φϒ%hQZ~>\Aߡ ?z;pHjA㒳XmVcHz^6G:"5=o96Z㉘c:QMHҢʘfd1u[H`N7â!*ZhpDwqIŔ:!dyw \^q))߇<''c$GȮbACtQx푑9 "J!+L%] si:7V7\hO { )<FzJ-ՋYBִ81kW<. s)>qe=0J@:A3Yςq%Z|-џJ^G/䣕g޲-ob!]&xSs((nj!7++6+/IceL\5 +=V+$۫!׷A\3"]B"-'xk,'3fN 7TqTѿ.'l5&oJ7}?ot2EKsU  w-4KfZ? /F;A1b`A$)@[ lw X)>w m@a4H޽v e5R†CRL_&@7w^ h_Z'PdNXy8aO9#eo,m^s%seuI݀] С8 Y (ڔՍqmX2dsyZX:&AOS Y۠ҥ~텴B8$,C՚|vdB!=!9R:5cR{ 2#)o +vwN<;fqpG0*\ȷ3EZP0Ay&`R9WUda`+敿y?'~C~ovDӉ A64 Y~!g{D0còdԨ<F4" ++K~ j% m(z[8ٳqϟc;Id=rMWDv3TƱN<<(֨ףQͺǤ#W viF,#5,~t$~OSm7]ѐ48Y'ԡ&ĨXr4En+Rp;nSZ';?^>4HͅRY-R#0rImO_2ux7+O_gx%S\fЭx)WaQ ^Kᦥim +]a)H%[]J?3wL]LV֩` (rrDw@7+LRєO:'^ArD%yUGL.[C3GKbG{M@P/#NҦIJ;jҥmC]r9zM\%`vj7b r%lHr;nDt7cKғدgcاAjXPNFK23,8F!hR04`k`NSnUNNv)fI*+yAx?"}~.os{>}L-VK19(rw1/DaLVFcF KO>JmGQQ\ +o + +z{Q#q^mй-l̃O"9n?4w.f8:q]0J6E!gyZ^M7ꕶe}]xq@0Vx?62XW0!: xY{%0 +G4VT>TLz_>dsCG'Vs(XnPX+jS-ed TLi^DѦh ePE${UNӐ>Q 6P\<̖)4LX +Q)L :9XR'f٦pi[/zs =:\cL1z8 `QRäUG4LΤ&w[cZMQc/FJ>#\Gkjٖ;)?$޾ݻ;@wy}Uca@#"7b甎w6r>ƪܠf\|TPŘ'ȴfK ;A(7[>=rU54y*TH|N>/ +B5D(HQa#a|֡7c_ބՃy(/KSGم3 D vVW,OI/I;B8,"ـKsyA ۰q&9!9zZtʞptԊO&.3#l& &F0LpipsG}lkiw!ZACI#/F8d?ik˦M'& ۭ $fpr20^6 | x[  8T_ +YB' e=(f'7|=ه4 pa= SPULj6/~3xaZkwJ_㳬cZew}>L0s9)f\qD yGӼ/h$, %M}6|iߺ7B6WAkȜaW +~{8Zdpv<5EؕF$R!=| M#e~Zɍlǐڣ W#pPFP{eVVh>KV{Ig!'Zz2`x"=ä +7p]άue>O'ºKn#aE@Z~$ &c}ԸH%~G(G9 q+|DdDy"}xP8ID>G< +a=\zR貘z\)01x7>8!xSt_ux4]#k9K9NWDk|_ߵ1fNS{mp(C+5Fq ogn2t=K@`9DXnrH`9I-jtX8K*F4>?zdJOS> +p”6+ Jy.>i3]GMGW^Վ){hW:>D>™|tٱ|kƋ>fGo.棧|m|cduY&,Qڪ0cBD~|N(%Qcҭa{ўX HQɞU*< 씴WYrfDl-(YüBU4  +ũ,a+6s +ګrO[ùΝ~Kl<ȓg}Y$c 8M?s4 + '?{D{opfǹV֩ycz VQ\NnĨ:jtbp{ DGُVfU%?QqdZH;~b G2p|om ho-EN Ja_}#i\r(`Ւi常*=qMMFSfx{&Z߄kuΑز 0\aaf:9ll?4.3Y ~R65<Шe82QPXKXtH҅$v%YPJrg ̒>"r*tY#rvo<#!yz$>r(.yz%iΗԪbfCnvb>!̟ LwhrPSM!/:Oؠ3#?<z pm%<bkA|L42nDyRP3 G0ػXk זC>;Pw@zǫ'jtqѾ +LBFh"ф<`R'g^^󕩟}N :]ǀo$_4K{ͷ7oS}u8P{N a%<@ H 4aiMo'ܶ-[SrVvJ5?GOA[0UJQwat\t ;]?2IQ/Vj6l/^?gG > +s + +|h &a$Hl0h)0^tA^`҅5Pf7gm |oFzbh|Pm +̛CgIMAk(PcTiQ+ o;#H&Hzo7޷ 1ejD}oI29l`r%V߲[X}÷,1|÷ V&|;zߎx_/*>,q}˸K|2[ ߲Le·,eշ|^=h+dh$}n+%EW$MC`U3v1=댇._@'ye0i>t +GH\FhdKIG3&u q4,)<&J'"nR$~ǻjE{V~4uUkUȼ^UgJkoOƯj&2~#Z8%)&QmL௡bv+,JelcWgld '7ס-<@:S#z'.ϓTɍ$O:ޓ dC}uI`:s13yh +ɶ&0åe8;>E:+nɔEK04)?Z3hpO.Jh Swa4HtnUori :yPs3/ )73Fx8t2Dgr#αu02Rh܎z±"a+~70U2 ;#.8q+l~\:sM|& 0F: QܐTsevjPs +1:S׼uQ-\PW@n5\4yQJ=~Up\Qhߋ)elOj+-,EF.|uNmR>hh?Zz|Kw5("VmVֱ)n cae#.l ++TB7 ++uOSVJQ(|(;VJUXYO,bR(fV- +V[#ĀJPiTx1j:aUn߀7EtK۳d}T5b෸%ΫۧU9RtT +~:Rv-/Q+WQ%n@ ks\79F1PCvvy^[ͳͳYQ @+8){e.F9oHjK8L~%& n`b#G #T#ה#G7~H+alq }=B9c:ܧ>fo?@v0oM$:#CQbZDYE_*{\Bz||뫨YuT?*[M oN4ю*xp1\udtHA|O+J-:2VǸ,;>;YlpJhCB)4l?Ts{uYIK\TG퀆4` 0,HBćHSF:Tb21籶AɊv")mrS%mW$Qz s"cۭgKR|7Զa&)ަ|d5jq5|F[K`- ,I[8,r V#2e2jt5-]MFW!+,#IԧM.|S &35O`Dr?T5w>ÝǰR7<$CŧT+;;ydP +P'zVtb& A&*63Sr|)x85@_ C1f"VadM߇}8L%t:v[.hjT΂1N)KqCaOݰM ˇ +0kf&lYCU5+y]lѱv K J~Ea;ɗf#@VRt;0fϰyj]fXp 'QG|ibۯhU%mW.w(ovnpy+w3)ٻo;fH T{#+tn;7_r }jVH~#2Xm;>bv:? *װE_N41}8v~jϱ"QDT={=G{Oũscby= 9z[Fϱc w^ x GӼ:EU^2^xx^qۛĽ{{ NeOGf½3kӏ-̎{ǁYpo{G sV$oV[/%Ɇ{UgD2 AeӛEॱz{ tM^4i0deieykIVO#KMR`iIԔNHdt OB0cI+g f'>3>9gu WRD؜e⥧3%D,/^[;HM^$ @R/^I $ǜM$8pt}GNX,N1 {/ ؘO=% qo)Bf'{u[{%ԯVmPZU3) l_:&;GևEDg_io$ChGGkt\(ƌ$|Õ .Z`բ|!?}S0.a*Ň\􀬽D -j͕B+ܰ}O YS%0Xzxj}D= ̿GsnNc G$sDzyȿB?zS_EmlLp*hM3\, Q\\] W&K:3p[ eyiy`ix`J!>(z!w0Wu ӓ?AqTJ""+zës22?Y÷amMڿ̆k"˿4̎j)~[s@{P8%18s G_'V + 3~9\-<%r"*,u)qb_G;cNS 1' +eRFQ27 !TI-|Ps :8U)at!MviQh;1HtS&c Ч9! t `C(Xj2"?a?fAW>|`!aK6<(aqz}P<@l}Zl$+pr/n kS`HZ36!{ )f>@GCKb2yV2dx_f$l"Fj KT.'jͪʃ>?L c3GAתRLy85r*ǤF61HxRQcre\+~[~~(3κ1*I='C+diyDKQ.hdx"DFP:z T`mڏ}LE˃m:ƶV?k֝>B8rQ{Btx8l> O%^|J"ߵ݋>N~&Et&Q&5$C_qS :*CyE$HJk #<#$iSVq:)$iz6P~F2<ݠ9xcQ%ORѩ't9濃 %sk,9Jh +2 +(&G<{QGs۾L|L1k>f%ܑQSL>fD8>aSacƞKt&Bgus( ф|-( . KbEi*+t5c)IqR^ =hƳD ^z:s[̄?[;Cp:v=E6w[ U|,%U +nIXmMp]O_m %W[vRbV`)](us^}_DN EY@ϝۃ>%snO]HD{| "k#;숄vh!#EmD;Ѷt`!sNQ +@ s (6<,p :fCψh=zI Ϻz,PY6 Lv(;ZgD/]=\L :GM]t% =fku8fNpgrj95 \N&ui?̧,ɨH!sIi6MKզ%jmg}4YպRe(uMz:IP:nhIZcsCJqSKc,stݗ/θr/~]CKe=4}CLx2e/j\6Bo~OCw= F|dzWlykR +ƒ@D<&'PY/_V}_. T tG쮬~/K"N.jc+QPݘ{ + +kWh0ߋ NQ'wN"ka=dE `cZX bd䱩 U"->Mc'ԦJ5U>U 8Fw654F9Pr2Q<×G| R{{n]6>DeP* HulTE[g& un&j:~յi*6D&bs&gh*{Y|0Q' +M'ߢpߣQyeh&jmU7SO7Fw?9wjAvVd,&R$=JOG<~[Z7Yd4<Fhv%iEN"=VJ|WmZi$঍w3PWͬ~j+o2>ϑsF; VÅi>9q$}K{K"kѦV=CfUڴI'0(#~cy#G;3 +H#.WB>ޖ]ݑ|W;HCJM鵁A7x1pCJpU#` +pK>AǠ^*^Tr[4&{)?ĚQKܒSCL:Bכ1*ʈGmU%6(KsLKd[GSB4)P)i =Fϰyc7Sͯ*5(-ۘ?"7 ȝ5>rg{L?QpL +̬m +?!X-[EIAf-'jDۼ=ި/7L3D iJ!*`׼Aba@ \Γ'7ŏBT8^T#ߎ©ur@70;9@@1Y|xS(R:$C@S1m*yfo +&]qUM;aq69V n6o +J 79ROJUirP@f%8K瀙φ831V#zUc&gΣ:wQ)+?镝ʴ gWIv1|VE䬭jYСy%et/W6zbUE%b&μD%٭˔BJY#DKZXũiV!V%qXt3 $M!M]f +]>=%pTLuEjB#-cd'cC,H=߹ݕVÌϹssνWXV^GƟx@RaIqaFv?.]@z<vq1;re3JHsA E"^Eg' ";!EL@fa\aJ +?j#ڸ跓6L}}jdJ:J\ߨ&He0o[q|CO*=%X4֬!UތU'xuuz yqF(K'5}v.6lP;v>qHqy?AD7gL4G"OJ? $sٲxD(JH'.Zs$3tpl00CNQ+ ^,MɹOFKBzf-KAѺF!AUFèFlB +mfPh -Zu W$N4sǪtb)Rp8UxN)-YIfX3K!Œ<Jki$Be ͓bt&0y>O'xO䐅p,Ef>1{^-0JXui?ٍ3U٨{z[.CZ&/"d sM3]EPXRP,AbF {+tDƕQ=IL5BP3j}L- 7 +x|60tFS.jQ=qԟF&U6.-/Aa#i dyM"+XJ ^1 +rVL;g1w +/c5 +FDs&ѹ6ֹt7ZB7k=7j:r(xM 0xp4My2ǓE)ǓUaN2U6mv*aZKΘ45.z;ifI/bB}4zwoΒ$/ +Ґ7NSb79JN~V<lzGd|y +9$ЕZ{>n^xYb}]Ր 6;̋n7U54躸Sv뛗#wX qYql!UF'3NH͑mNi4UBQ#455zuwgQuK >-~|dN@JAQ<*Jiѵ!EZF{z',wHDt5R W9 y׿!|C[0XKՐ4oC e mr%qep]&dڍk[uUz@o㺻~35rdBo ݺ?袡KC?Q΢:ڹwL9im7,7bOZlF`<=Ng; YFO,K6>};uOINE}A&3/8[]|m&pLV(plm†"1"rM 9SM4@$wOf +.iO*9XMtCI^>c{I,שcJKKV>&PG/W.|(qcfl9BUX}bNΟ6^g!+b|gW7UP[Kx?%\c6"H/l);~! T^Wiq[Kӻg6+8`VWbڶ )2uν$"55*\S3JJppC ~FH@Q VdJA'^Q]֪ظ z34lZKi +kA6=ڨΧlYuFuQCR-/xН?ClvڍW16\33㿉PH,eq^"/> bh_j + + mv /?a4\[MWd,<*_{oI 4s儌ƽ?yf$kHշi [3YYlR6iz쁫_^bZGҜznIMm7~0!9& 2~| 拋ئ海l$3&\JB8|YU":2Rhi#^J Tw=y޵ISG&>Z~R v^Z7T-s$Y^+L $~F}v4e*g1d֙t0?",np jSOP} >&3tccdd70[hҹZxbbsqGf,,r1 Pv([dvb@JDJUmZSL\DQցЁRvpspaqV' l HREcmʚ%MI䋰#ӎ5 WDPsӻ^MgL a?y#tlD{#ˏ$y]/19:Nt<;&LAf ?A'A}+;]p){p4a?drx8?}>HhMuDs=+D8cp͚} çQ6cRI!כ޴^VFq5m{ tjj$[Z rYX1nB\|AP-[4Ue\A\lU^jL\3ze^DV"*@دĽ-%}dˌuG|W_멅RW$!k>$xWZc9p8'j{<%w0rsue@L('YhԲLvsdX XgIcD瘬=|,Qwb.&)ˆH6I|]@xWg?u\FX/`f!/NFo!3۴+ʭM!K,A"w ̬<6cmNbL엗@>4_"i>lTY7揹~. ;ɾN]KWs#8{E4x :})!{Ȅe|!l]hM|";U Oj \^ s<l)ja@߂ؐDXp]m1=D96#dU]U^ȪAV63` ^G11p؇+% +n𐊧GX)Jt2&b*@|ϝe&k r,i2RpG#2(o"T=޲8] ˈTlFdMg yQrb"яF-~^(C;!Á!OKْ -I2*\.`!@ Ğ7z O0~Ygl"U93+0e^@]vUJ] JS^kƭE%Ij &! + e˥ (TܠWc|w(@_5FO"'؛ I/.2n?Y;P2J5Y4Jc9 çq/Ιb18ggory͛4/eX +9I }\9s\q^ߑrgS!V &JxKK>ἦ~&Ǚ ƑcW]J7d 3ڻ6/_jGש`?DEQ.Õ#}&u?Ζt4RfY#ߍTKcU_:RmS#]=Pc0ߢd=T@M9hԮ2S9w̮bo@Mִ>cL^Ef{>_못;pdVYJ•vIEeT z-" W)>=S3_^qkr,Dن +%mƾ۾B]m_Z +^ȻrwlOdng@3+a4GK58Tmn[rwxmNFԶr/ap3P5#@jWَ&gd:\ovJsbksS쓪rǾ͚ڇ@9j +m= z2^hI~ a| dHq?1O;Ѭ[~°ɭi:ZHe,^`Jp'NHi%"{X$[v&ń"k'@ +Oy308N+xIi޴ql&}'ɍPO饡u޴ZK-1uNqⵙO023bV86((;L$z +bBpl[c.kK=Cd1\ ̕5."3+V?(9xV +d}pK~Qݝ⡰ns DSpߟoޫ57I}|9?\'l>٭'䴞YO_0 >н]zJKr{0JषaceTxJ<˰xJm71 u M3o:r;.M#2Y*dGnb%d~ӹη_ c9YBk1#ߑm~J ̈fO6=z%ll.)hUp7>$"*BelzpV"G_:iZϔxWZS{HpZZ=IAm0KH{.cPk{Դ laD`+MmqIVÝbF ?-,g +QiprBƉo^w%qTgzF11\eJJ,aA#:,33THL/嘱1f4F\\N])WaƋ{5@{=ۀ+K%eF~?~U>.ϒJvaF?.$4= {p\zX1>GP2KZ ++3 +Q1E{a3nz)*آ.uE_v(C vo#]#Q $jDzSв !5"TRy™*W]KWy بC'ko;bRDz$Mb}[cLݑ>^ {C%~K_s D%de&3LmSn̈nSڨՉ^ej-$vxx'LH yt!$/LBᙖ!&1qu)$YVK2P 2W+]eet UFFٍ'0ʮ#3()d:!:[?(ΟyǗ(M};50 +74HIt:+m|$Q^0ƻl٠TnfxiJ&NSjr;4mf%Gl2YyJ/^a{8sc*HS\fpdu4JO0:y -2feтSF ~E Oc"^0pXxAlz`$5IB;Vu8EG,]y4e`/9xx{G񂗡eM=uଳx# aiAW\=vL/h9Hicx6?FR&~͞}ݴ/vqу/gao&C(ߖ'FgYLgNxሉtO1~8 WESD&?U/L|(2oxᤑ.]vikO#2O^WGTWJx`KxT, >$PCӗӊ)ȡ}x?Q z(6axZEk,n/M- 'JiTӇ)[JxfdE(cG#U")P%K)}ߦ%y;;ZsFDEIUڰ8{-̔`(A{]fQ)K5@[䘹 1c2~L`ē%$c ~ +X/-d_*gܠg?2`/TSOU7̲t]Nk׾Q'M SO +bj΁,k:m1߮ +63_ +Bq|v$kSN?1߄0eL+rl̜f! >DL\)*c)C%" +sHgD%qrX=Sew_2!<ݕrg}F38L̮N]$O]c/De[9|jwِ7$$QnGpHd*6&]osrm3j&Yp`6UвR0>H8]jA ʂTE3sK +4dm 9!mX?ߩw vf"K}iUu?O֫#ۨq)pܺ#wk:GbF]:[Q!- '?fNCΕ} 0Ou~vy톍-m ԶABm>qrO]w3V.j\]u0y)1vvr&5=!Hdil l--dg 2U4v^!{*KxjIspDC̍akCE`nQ-v"2='k KڳAQrD[C50РmƪA]_>cuk/) &O ]*֌?o=)f꽋qDWgǃ .(%:nUe4sMԩh>þ!rLDE F +AD:!IcDR]ƘSJ 1LF잓ssnRMb1,sn>AanfxclfiB5^RC*sQ e$>cם9FM6 6׳O1E" A{d#D/ Bt itѬ0@0-nW =a!DZXR 0Uz*aE y_{.Q&a9wix{;L!r~~ZM>i5y3!t1Z6jqrÔfr#Gc?nqTgw2RH)>iM:s80iqf~2ftŘ.gtM̶qS3Clz3"g0jᔞ3 CE. 3#3 KY%(,*m8C:w ANڕV.v|kmϠhB` OƱX]ؤL-/>G#OǂAY t{ +| oa}S Bl_2ףI{I'0QXx3I4u!R@.vürFe]d0S9p`v 4 q'iA4sB?9cfܙZ?w#:me݁4`Q#]# FU+N_\?1 +^/wɇKh4&䟩?n"J,DJG np)-Uߚ=Aka8 a,x1[1{@& ɍl8(ۿ%'<Ӓ}&FV= =asa&2!هq! DL@_!rJb aӸmSm̍,)^/ + gw m3)͍88]au8" 1Q5ο9y1xs}'$7gg~3f2͝F"aO.ЫaXZXgQ'}w]Qʺ,?(C4^ٶnŕv7#ͅՖͅ zmzb'7υw‹ ;UW.8F؟,Q\l6 ?Mn:7fPWŲ㏦l|1$6]=h[UyccUАZrU?cM~;íJqG^i\)Jq\R`.SP?vg|suxrE=RKle/ØrMɄwș~5뿣Q)?idZWZw$&)U[ eI_^mcOvE$[aPࣜa",ސ2mɳ7:mR锄ww"/hu`iP.9S]Ciƪ*1Y,L+*5t&[nYFiș]g|^Am]%jW-Sq߳Pd>#1_a\+{͕'"J`6aU_Q<, NK撷˳q)tH%E1 GHIR:KɇSQLS^?֞NT "iό%֋f򢰰mј*u^Vu#Z^b=ķM|XE*X%NeaA9^Yr w>=%:GsJszΈu_ЋJcvlԟr:I2 +.br-M) qҀc/*{78X4L+@` ]KXx^ǟŴdVJxF1Dꬤ1n5k-N")##Telj#)?bHO݌Ma͛"jSl\Scid5+Q,IZV(y=~EܩGa|'t;:n d ӳ':ϐ\}pO W4+->96gh +H#z[B +)I[p@ҁ7h 7v ךUsd*K%㰌dzL*dT;MіDfvH3[g6?,aFJвMsXmS|μ@)jTJE勮 PnתQO) =n VUeЃ*u/9GP pȳa*x#He>\af:00 cE>RK&R}\#utp]%| _fI:VZ@OTc|J'D=sOogYB?#MP0*wZf˫ؚٗx" V5JQI^˯wŻyսޣ~xo_~s3,ygQhvԟA ?5q56"ԥ0iyI4Un*+W]OpwUu59C23ѦkbK4V ͤdfJfQikS1@IOg3UھooV[j7(('@iZk33@={>}ȜϾZC/60r|vz6`_flhX~'BgߖK 2`V}qd']oO|!GN'\ -89q'&N1ar0a94٬v[}-C Q,IƥiJ@Vտ]_^uӄ߿MʎG`_?ˤi/N +8s e#ęj1Lb@51ΗR򈄮)^BDaK*s6za^ wc*;Dy* +&S]W@ꪽZ? j-j<)P-|K 6=n6x /m&փ=+?b`ZR=s(o UÅżV& C\D\VRfF2>Ж@;ַhH)F\6{Zҥ\뮏{!漾Ж 'uA{M< 6$?rX,~$0ö^*{D%q ÄA^ +hO|`ݺ?˨Xy|,%jRqH]JVBgڻV*誘 1ݢ +p*oel3u?7UlJP,v_?A-l/S@%穴rt22:ґM׭y_-H$!J-:Hi?q~GvsKw.;s[[Ʋ,8Qù;G_6A_+y'[,QWqbB{&KTZ!3}Cɕg +Sc5>Φ)3bby-9Z ř#/7荈Rgkܝ`@)UgyO>iD 4H wf^&h&4qK'YA$\9-Z$@Džў LOJO0XJ _:}G/ -{vi/td'V:DXHx<ĿylXÀNM ;\nO{VW Ӹs`;)lO{!D…dO#{@ex#2U[FZ£oQژ +-P +K߿%P)Q@fWT X cCb:BrZ0?%f9QI k3 +p>ڞ4"g)0dI.UD+Y5b$- 瓋b^ fg3[ +幓-&Z^~OAoݏ.( ]IfGۀM>-ω Y%lcWcY&jԕ?Mڧ)y +v2+Y\ŜIz6\0$ݧ}VQH+H*/"~G?GIݟIAXBt_HH7R9χd֣5I_M0ʎ껳XCuWhf'D֟˜LH|^ xS۳LҊ`Jb]nR*P6VP3LvHRꣀ;*lىF+zKs#fڡ'\yȊRµDS+/]m,WA<6~:n%̍LMX1$l8QM(, --3/; 0v׵u+ʞ-ah&\Kḁ匘jۺ<+)aSV[-rFߣo {,;j,iD17^W)ɶ1D@Y^f m(Gh*a:~g ՂXvw &.b" = pz`¯sq˸sW~@\%1-$"׌ڮWunA^)0 +"vQLH?YkcRgAF2u_H8s#QƱ@ +v5;YE[D+}bx']2ωX+:Yt$Ra4*8n nt'F9 geIW1v9qjMw.G=*O{Aw\JCWUZFLlzGYūpj?v*}鈱ZEb]U @? +#m+X@>=ZsN=#=T `TPlq0*?g53ua,^.$EC:@4}کR}WL]̹=+5u1TeZK +Saa^g'/:v+@Uzq/{mB2oH d,LOܑkEv07aĥt@,\x#<~3sxL5^Y[ +8vr,sWjlWNVZmzjJvZrն'ua5lMV%]|Y:VY)Tj<&O>/}H&*!gkqU&j&n.Ԙ92݅{XhP4Ýݸca]hO5dtv!zxL2>}Q=q =ճU1/+C]kF[ ӻL8ͫI1 +ABuA5\fAe1w7E'-j4 +Hn_ѹ Ta/@2}X H?}oƈtG{̈-kp#>E(#&A̟Pl%&?Fq+ˬ_}w\䣲KmoŠ9JW~.{->mG I4 #k1MpLf6N 'B̜֚?(joHZ'ѧqYӧkD$Fszt!x)a?j^^zΓon$wú*9v 1R7C[vtܧFX#NI2_1NsunA +g xGluk9E.-f0wd-DytO +?g "҈ o~)mŝD!& +_ }Yobg"9 0 ñ\qOb|2~4WXX?oܺ|Z7F6jwMFFt}9 7t3w!k*R,] +sIyei!3Gݲl4~Bz5 ɤ{ Z@g&X܆ZbŘ߬PgS؅cEV\V2i9_FJ6o48;Zs됨/ +eқsS'?LL:`Mf + Ɓ4\9ħ0ў_Hޞ~"|Iff~hkN呓VVqD5tqHmnҭ_ B߁xj֩Ӽ;,ºH#4[MRp%5+?'tN07PlmPAzG]F^mr9Œb|eg̡y㟤k=;4=4)dyԋqV`0He~܄AѣHg] 2XޞY(PeO eX>&u 0_jJ%VWAS: +R; ֔y* +Q t䛘)cKUnna 9z!ga(T XD9Dk>w!I!@@<698;P)o8#:~<k}.$ cvFU2WH( :; ɬ, &ixڣ %\#e%ּRk5tDLs̑zՅ@Gy, cαGKifQx^_9,f%Q7y5&oReROXN^qeitB.&(NY0bBBvOwSB'rH=^C Ls^/hWNҮ$Kyƿ{rB".@o-txZ;-`aPzv58ZJv@0R~v13%$¢F\Bg@i?,~G10C%t}wa q@z =-`X8 T_c.p4!XrbY7[Pr݉ ([hQoh7 + 46Q[LՑ" PvZCհ;Ye=C]yn^?]L]ph!tVYڋtoA*ԑbkma^R,vct1x?Zad̛ + Sâ^DߝX4!2߲@cYX&N~F·& FxUҢhQX5f5Dͼ0v?{y)߲,@>H_pR/ fi{c B~zbvN RJ֔n709ak0/[ +3 +Q`[5Y[G\u!]Om BG@jd$/d  h -s CIw5^tqIt-ߤ[F(OF~@lz nt9ZA t"ʼn¼tM?[ 1DcGM۝J+NVuI1@?/P<ա6kگF1r$}t,r@y蠢FHd֤ͼVCW\5;3()pOY>^Ӈ-QQNN=:2Gf)}寸JJ8ֲ,D2<0P#̖Hᑜ +h7i͐Iz|iɱƃ sй>b_h 4+j0qq"aJ{=G}VKzDo2G +!h9֔#XY}q VĤQp+ZAAd|NLO ]mZɅv`[ۖsiW>xL k"Tn FL%{;јlr b/Zz>Bz^r+|d\l)LoPkg$T?L(S>t zx'`6%`}S& +Vf9N 1L9l1gVʸiklӾWQAn7 ؃uE՞Qj\1m~~^wSЀ3ՉCiM@W]6(rŇ.4HRS#,ًHQ5Ei2gqA#9پOq0^/i_Q!^dZz z<MwTk*@ށ+Rf#r۔J* D +6r$ @LE=@ +*6R5TY{1+؉Dpk`_51ic/7|t/\og({8JNNG>G^OƼu+`~\Pm )ೢEd: ʨdk('â]>_o.SEC>^cUY0) 4P?}(%>Nl 0*dԖߠ<>"Ihw/;qI<=j ukD ԀXd \v"bBK%ݱ#:K^TD@Y;`lꛃ܀9KB,UP +zB٣Fʻkmz"SĞ(KkBz"5r[ /qJ. $ +ХKR{C+lIE[9xV"]. +h ffIݹGٸО'YԅR=e`3xSrs uM>ʥΒ ὏$Y4f3OfXG\u46Ps-+5$WZb:}P%4#sj2Xm#yV _n>pm D2ChTkh5^U_-b$?_?KWd -ଅfQs_EtMZd>/"|G2*xC6!X٣/gbȇZ:]..'`^R' Uk&\PH8_n?Aq4RMRg߿^vIA^BV E\n . +y%*Y2"`xyw|y8N<6NbV:{jpj,зB?i5o#F"r˕BITZVd?dI܂t>Xəz \K2m0zek'Zu=I4!Kfhz"Y )`|٧op3[ec|UYcGcYcyB'@bJZ,M[z$mݛ_Z\&/ ::,$cFtQq%3ˠޓ)Bw,=8oOi(Agv߁z9_N 3Ȼj&&{ef_Խ>d*G9,VG? -E6\]>T[IѶL/[,5WB|;<FPNSCh`90Zו!+ڸ56 밣7#?}<4ر?b}-:݁,hxhx0I$)Ý:ٓ@`ڣ{l.5BznXvl  hGum©c&K,pcm5#un]?g?sTOď.S< r!mcý 2PHkPG{ ھ^*^_qlMꌂ+JPׂ.ݹMietC!sv +RT%LNtj_!C]J +34Wvr@k2yZ2 } 񢨃wVx+EZ^Q_D俕W,"O HuLy>_y5O<^=Li<qS;#'黶âHwZݡwkytd1/#;"8kxmώ>71Ikw"zްsGHEپC>ǝ/B!":#z(/-[!JMrhR?7iEEdg<Jj_oS>#vExS[*1uؤ?VTU[^()C_?O_V~o<+m?7w*mߣgS6XoǷX,\xPi2@XsoEr{V+hXͧ3y;KGA`JtwpEnuHR,=v3l cAi۩(uo +؂}2qAv0ʌuUQ hubpmvF.Tl;ۯxFQfibsЪ^Tx8gmKi'}aB^u/ps}ߞ``e\Y*hRo[0Q_$jD[x)[wi qU"Һ^HWe4n؉>-BfI7KP1y/RΌ=0 [y|ђ"b~9:ˢd@jaCȁnYef +?L$<:@G}=)GTUC|ST ']VOC%lz d%Eqp"%=FC,y܀yu0AXm;6adgFϜgK5Q2 Wf ;1C;/sk!CWs꫿G ؇W2՘z5q107(Pnem6לƔH 4Lk㷥e}L,܋Y1YQ#M:u})l@y0v<ѩ;g^wj$#k(qM:jlI_ xrmtvy N-*4ޣR7BqVcu枅KN _1W[KFga [E;.Owt{0pla5Tu#Kt9Jp7slɕ .=db{ ab#I.E<7y{m. ]"ͼf7#Faʹ1+~5t"mqYƆHf +t6^)FgUҕņ6Ԡϐ#Ow]G o0M~-qb Z{蒬k_HE֛Ct%(2-wԎYZ.΃.+鹳urWYz:^} _ڭ'!5)IKW{8團9V#QҺ" htc { '91K0Zɘ_7 ZvC6!X:\ ־U~ΞD8ꫮ5[duן}b +lL1Kk_cI;o\wHmyPAA:TG;@Ӆ >XaP8(=i(,SɔiSSho}P&.&ݹ'_bM]- ɧEQhʉm\ H>i&Ъu-{ 7^P 2[S C:q [jcˉCc47yYo qs<04 +_qR7>Api$eS)unXoI|)?=+c*Xh1t\jg kEx}k}/Z_ ++? =D- Jı?#xPK7/9⽓XNFCOdʈt)^{Ji}*٠)Qdlvdڗg`|tT.H +)6pRiEw; ?'Qjz0~3R̚Dd +) XucҺb1џG<= +Sj[-Nz&_[>}xq?KkdBٛ]a/ц*(8y%~ 8&bGQ'^g{]2՗P&7 +6di7G*x:d/ BJ%s`5:5Lldz} ȺFܩ[FfܯD 8U +^}K@+9kC K ً< UwB"B"2<0'A7" q_AopRwm$Bpwh1,s|T&9˲Ҍ'G]@R'Hb5u)ϝՒ,*̥ wẇ:%E( &4'Yxs)>ԉB@z ɺt2YU)q?Pԑr}(c A &B9i޿1+/Wx\D7 / + Mg m3pqnUuX_zo{Vs_Cӈ☚4 $\ `&I 3~< x} &8qTyg)ߝ^=WᔽASIQbbT 3ɜ/m|M!;El+x]>:m*@_ġ8JN[@7yGXJ}dN# :IeTC/Z԰-jAtrnSGNʣh&S̳'I #mjw]wy ݇αRoT t0|ެ5w9CX0et讉rkWJEYA4GO#(.Zs! +,_@fu(~%h! Z_A[(ۉF!mSΚ$g(/g1OKgH|׾Cz::M˽zk!TH4KB7S2lօ7V8]A;n2H/N)N=nbMb^ +D!m?vJe?Hû'<@M_ 8$׻O7h8LQ~o&X/%vsIP hIYbQMs-Qd ;M;9x9Tv̍#>2@j{GJ 0҆s0w$ڟS7Ou)-"#^`FJ/@lO{7`³`W'B>:P4P:NW.4'vDZx.L׮]`6*Gb.MX%&c/~ +ď DySL?V0gu9&C!gW4\s\wM{i }A)hr)uɘkUTbzpƁAǞGgoh-;cO  F43n׾d>s$;K2<}h<1Ϻef.(h\p.5-<[@v܋EU33noYDP䂁9?.#y^ϢftWVBԉg jcM>`Ŵ +6գ}r@:M$oyQ 'F**rCP01BTLh_od5σ{r,>bDco59I<ˡ+9%W˸^NVw;]i݌)/!_|K+$Q2y{!hBFjV;B8cz(嫃J_z$stV3f˿5 ]Vc?+41\=؃ +Okzw{WXjCx\?+aPht}BJx~RU}KAEo˗ T<>J+[z9ҋo/,,S +^@{U? WF,ȐNi}Kcx/]@~|н_ƅWSAχWSLjXͣXf8vD\;!4B F}v(?/C _.^4DxQ"Q0(SO_gKǢƣ n5Ic~y H pgTΎ,h\`481nh|aEp0/E,tcYR[:en"/@| ? +!ͣ$f#eڌe:lY}NlY@=R\u>pƑ>9 #]]~Ù6S;㔽3 +g:TTqM%IMw(ѩV Bhx4My}M~;|_g+hDP^;D,dZ4%LG[9l΁bIq>e/[2?Gy /SUsd+Pcԝ@s3탡 4:tg9xQ{`f^CG0`(桃XjChyFSB "!զ0YІaP6F:v5{Йn>f^wM>`Ĝ}u'_CK-&/UOU ZؕP"Xw"zr[n n;n~@h?O휅&BϤ[Rhd_Y;^Af}Ĉxth+7v+t/qy}}F e)RI+1,iѾ8aJ5V.NSbD^]H/(.'}pY!C:J'A K"u rm)xE^f<6 !fȏ7g{6n%ݹxR"%OS; ߭Y:΀؈.]6HwWJɧ XKڍ"cɅF2?;bhU|P*D7XkE0 0 ɟ|L?J@ ^Ӌ S5ex؍b[ פϿG#YKQh +˳bpC7:?HP +^wlGM< +)8'UXwKQbı^OA ? f,gA!k+/LdǙ]k2|-3tlM2> ,1șL; 0c$wͥg>x^R /ɪ˃(Il'o^/Nf|wA(: +;do*:_B-tP>F Hf?fnc:8j𐾍]7߫u ǧmrԓ/Uh-˹ }b9VԬ~)G290#;#6!:)J_F`7{4yoio!QkH?:Yuxݥ"a&zzn0UOD&K2SJb/;eZx0g-cry.$ȣwͲ͠_X'Ċ4Y ̽IY_ +~4} Ų˸ȁ;.YJGU"Jwj" x!ԎOޏyYFVcbI rKʉ[̒S@4NKN#yE=mQZtHqN)* ŮWa0k#PP~FiEl.(\ Pՙɵ`{՘2tNVھH'3eS_a=z v5̟j#_u66 Dk%#\6nFy+Ef2O!W..E֊J̕a%J_^v#k}+o*\pfm`uyyF!S#B.>@"/X5~W> +ev+~].yE;:o.r:*aY*oev]t-w=K5^vqh"$k`rfd# A² (BY3*+/2\i~,I q"bFtqt,R# t*WfFlu:RV\R~5A?ɢbߝV +MmHCK{ d {\j |QL%4-EOH!wŘYB=\^6*_fGiM7[mxH<Љu"nfQcWJ=XBVFXvu^d((MS0Jc[ E>#jj-Č䖀 l%ErJreDJ^z9LFhg^$⵴,ԶT\c=ӊ;ak |IJhz|1љ|1hRKSԜŎ'Oљ\÷|;|ux1g +4^7Gc_"[ݓm; +'̽}IF?M;rZ2r9oS3r~K$im%6͝ kkSJ.~L㩪w ` 0٣e48z17t]8n#_mK(8QFWEb(L+m-@i{[O4d" y/RwF#t)8.Uo*oz'ÏΣ8!ku>S_???G}$'hPhAl-SHmn+WR6P6)(>l +:0&7nPQGtz킖3'F/_lty'n]wJ-n<_B(4IazflLiٔ&C%"h4v 9e~!K4`%֪ZA +ۦ"A+mI}"3Ӕ(\Eo$V{Uiz$,&ƩP/H2%T)d\DAF\XSZW/jSHt3m }Px +$W[֖$I`wL׹ݪcX9bSRbRI]i/RBj7^s><{(e2@N aGɲX _rj/ޅ Ks`Y.{] W.3ȗA,fT? +l#l-|l xq9bБʑ<s|2| Dڌo3*v0CV( mXeEk`=r-+,:"q:iiz +J*I a=N4͋|-tMWP7CYxJ5=P<&qYJuWDŽ=yE)#>nWR68~zLhC/.Jndn?cMċt.]d)Jy6/xޢox죛aq?"> ?EPʜc.e>&zs(dK +6-$ K>8e 7q@qlF_5 }e{(}Zwϼ3zPnxtq="P|`sgן&W 3q~Jh{;c a>J*3UD׼G*O0kvҵGӊȼh1>Tޤz0 5zBxC %:30X\莼ڢMwnٷ Oߗ!rs> H? L +~.4Dm/ަ%y¯pwj3Z[DmZQs`F]*9֒WN$}-:< [0,ǔAt-gClqUC*&;]Dܼ~K;Pr'޸/CRчO +NUsݎ h~X /¿b7 V;k_{HvRZ5F #VW֟aoR 7[nle3[.#lylT+Ѳ:` +f~|ZC|)t[Ew5#BnZwBp_0D"02)&tosý-8fbY)])NOܺ%Rk9p%v */p꿝~>~-3ڷx)>;3Lz0AC-_։6*:y6 +' ש̓RM\VrxĿmŏYXɵo|{ΌIuf Z.bS/-nd)M@9،}x.bugV..o`2iR$\ТRr^(ut _]U5$ӐuKKyh`r UB Ge6ܼQ3ԍ٠̘#!gVW`|*t%IBEQNZcGZ>!ք߂ +A)UQ"iP=\ rJM2 e3D0&a Z=p>KTEz7B F8)1hM?tPDvHwC7k\E>(Z)Nrӧzy}w0wNUjVu dgYi^7 \9+Y4ʎ g |!kcv7I':3dzq#Ȫwj:Q/5#VzdCrی:zvҊ/TVbjh~ F-&%x^Cp nq0W¯[*#{ifn_ș 14pSS"mPhxJ?G%bߕ1PH Ctet 5Jq&$:]V>%| :C0-q(IcA,R6Һ@8Xw323wԡpݨ vJ +; LqIGK* sPyzV)9 +5r^HLzЪOPgaiO` u'~K%~ILpߞV??^^YH)֠(\0ҡ+mR7qxQ_uįJۇ*ekpߒ> Xǟӷ̹!Ptגn+z rY 8GйBA.6UPod Q̕G<x 3qةˬvK &Hl'?&D|,Z:r>7\pw9J-Y+d6ْ ^W2sx>^<1ȓxtP21a KnwA?M]?L`xʣgz"nw5?$ynuhPԘ'E f͉*M_(@̌ADsoaV5b,6x4a$lP>&QMLNMr~\m&q6)¾F\&h?BqW]9E `6<[Jbȑ;pbԃbKIvH};FTC0(A?ƲȬKΰZPoz"VFܳڃ᰽G|TIes# ]1f5`Y,P<Nk(V[@O͇FOSkg蹛qc)Z,m9q"LV0ka{၌Gb= +QK"a]6 ɸ1~(xu›MBR.h+R'c+f>1tELZ~ﵚhNq1fDRyHk)^m'I\m&G\pZLv[igb[e)CGQ`?9g#`|xcc?S<=J8SBm((LrQXCf pW# +A)U{ ADeiT_4ajgOR2Ta6>s*u;t8bߐj(f'˨j2@LGok1nJ~?tXA`eeYmi#o$=:7^5݇ uWaX5>5qBotiSk{lug?+W5ʎvu rT^,PB]R[[/u&ud7Rwe'K7-|¥ q_e;Wك_Ng|ۙ3O܀j~+g6,j@ Dz?xڂ_ : x" s硢c? +xWr#QVSY]ػZL 4YE#<=5mm7>Jtwɛ~jrO,i~[DRk9wmpVB?;< <8-s`쐽gP1iWtYtzH.3$ ~ .z-u+u׺>Y0 Mi Uzӌ,N_0>+фܙ"u/8ZnOgCGXw]=PtDgiY~Tg,?9Iy'~:|TEN#fax)M0!+0CxՒ6my,yjj)6nnL'6)Ĕf7 b9si`"' J'ĈXgpOIx0[)vJ%f582j$d 7ʣ`-T51lkFdu[Z@AMm,g41*4^? +2 a@4I<@5?fI6.exTxqx(#w*ϝ)|,Dg7,7o, +{9vsg?3~^؁scG`ZSS6p*9ȧlx[.<وe|C At?L*v'y~oK +L0[x5(/s! +0Bh`lr9<ȱ.m_ϟ#fj|=qi^ @ d68M,%= 1WF.ΗҎEXnǛ-(nQ$J@x]8태 'P*;KB)ѻh;U'CaTѫPa.yN4|}|:]>U +!O4Zu2tB;d*-J^Q<UW@}h9ȡym8l]f~Oi6zdZ X ZEI O9=h?>bIsY4^h=Oetasn&I07tbkꔂWrSM)m_zR2hO,M[cdW>E`xVk*{WRv ֯ԑu + @$؁5퇕t%7Zx.O(gy%q@mx(4~541"6y0WxҖε#!V}\rx;0t2ʈ0gWhZP&n)/5/kMmPx#s[>ԝJ!|ڃ16c,B~tcLɻt}d_{4X-fiI-6ȑOǹP 3k7vh7I42VB5* Ou{/A\ +1s/&H}R٨yܰEHЁ 4|߂ uO^QKFQ=c/9n^iU65cɄFS'Q+l~-%Ql&qu$|{i8 ]s/8[BWn7|ڛ ^DSg^_vXS3[R;]x,:1,\f5Wc̉xl&ww"5FjԸa$9!; v2aк{#ac&M{1n8R7h}84[Q۸a̰9>*ZP%$cӐz~eF2ђ h}ƽUO#3]q:$Ӆ!*.kF"S_wx2=K}f~޲Ǟ$YF61;L/pEQyBfצd]{,>rҚu=?al@›lx>Cx 98-ZgeXK{:$Z32RK2r +lhNm*7uy qS9 ~WYuNޥlozz|ˏ]9A{W^Pcc]u0gY}>PJ)R1q!a/@w]EI|>&\D~ 8Zo}&~ٚMunE~vIGqyWC@jz QMh zw[U$[TQ9+T^׮ *d^uE+åQпH +Nډ[@dO@ہFI}L%g@ɠPSG&rZ>,b"_I%[A+ SI/a|(L% @SIO`Buu*i"5댱(/}^]D} TjȷP -&=B@kJNl)BȂlcE@\:DAa0 4|NBRDnCb0`ͻZrR|+9}z^vZ:NB5Ł[hKJ``d^k`V*R!6#_è&CR3-UeR*ύ 1f{@42ɸolbϩ6oAegL2mx%g>䒮ԡ]:8_/2%+o[ +T[Tv@a0Z `7J𢕖 z +rH6IQ$ یQa M}}LH:mȁм;Ep瞈e PGF8ك9McQyD\T8E"쀤y@4 "|d(_ Luz +[?ـ=8bsXhqf)lC9<À T0yP jz:rhmƒÍߗ7vobäz^s?m{o *(]#+Kejm ] ~?J&6lD{d  |M3qM]vx t k&PN*ͮ#?bbxo5"Zzs@,)SĝSR;7BiϴhKhP$i 9<{kMVCГk2^T^~fQЄ ݊ulE>G?Qzq\檔1Si S S' B}mhն 7Wwz:7bi[2-M E221o^?ImI@W`rۅ IAh{(n1C}0hdto +H]\ɨVaJPr^36Qj򄩓t)IOCL002]3[@CaV0(77_UELT:5Y=@ \k_XZ C +KhfTc?p7^eKQ(- +  vS'}W9BDuwXjZ2,)g5lRZ)p]m5<j򒍂bLA̚,_-+ѧI)2"Rv-r]5¡exX?'+ױp\)(*(ʷ(ZlFQdw|(mǰ5cLLHz;gX.U]Qi/Pl; $cI_)ُX}~%A3u'޹(}2+nuH  ϣ=>Y%> + h/}Hݶ#yH踱cwP0=̀IMz}eSNQ>F:1|4ydKج </>H;F65:BMPL=|OcF"}̪v`F^[i59D0)ku;a/!n_ ~n!f1JTuUCJS(_Q?tT/Ba<>WCA,9Syf;akt5n?ހv]te؊ ufYڛ>_Fpr:=&>T^/0]ݙky~Y'SͼGz Xx +WIe mL>{q#8ChP*a.Q$}? Cҡ&کiₗR F7Y@"U)qBxɛkl} LX"i*{qfd{+|շ!`6it}гt FR g rE揣C[dClk_~K3Y,B[c,pQ΢86iJ\ܖSC)7qOKVqw.|N^efق/gS8J?BY@)9/ ޢoۇ/ +?hCMQ<|ه)?2U/oWTC!ʏ+72ǝ7Hyoj *a/d} +j 1}+S(~O)~f23~"̣ 4>YW@w^3nxZ<xhדϽSSȽESsyp|nUusNDײ*Cu̵Z(~%gO|ؼQ)+M}wJս&ܜ_6I) O J+sO1^Y[FjtacLI}zn0>Invj{zaI2qQ~\<\ma%e˄G_\Sbu'c{gBƻL6}YϤ +|\5<`QZ6*+f ) _EFLmj! B'D56E +-sy%bh_B8VI^9 Us}<5%~G<,:ϟU7G脺Rim:N¸k|ս:& +SD]xW/8Z a>$3{yӒS2[oQmm,LVbdf7tD>uaeH༼i_{~wZa VYˆ "+KC""ӗ ++,)EV"+\PuB ;X}1HnWc% +U='$RЪn#qBqճA0<;l@+?pTYD/E]C =1yA)(b!1J"^t7BeE@hD/*M(F5raUU(JR4#ZU}6cb\ R.)2\4RHu|]?"[_% h?`OPc O /OI;;MN%i^ī %W[%Sɧѿ0@b2Jlo$ƽja-ȝŷc>ek9a2#>; Br]n *OMQEC<|lu V}Պvk,@/ g@+mi}`9+daTQ&>|;.%ķbWY=ݷ:xBl=jZvi;G9(YYG.>D2|5F @GKVl,wt.(9Nv@ ssB~7A"$+puiP@f^ e6CnYꮆ"6^Z;g +sa>z닣*RZChT@E״ZO:[R,^Ҿ\E6ZٽMVN\>׍H],XOJţVLwBw P;Վٌ1Ǩd#V~}0z~Q©S%'AqR-U&T!Tst]>, +Hǖ[ErH9.7JX;: ol,f_"ѵTDYEy +-;{֗1stnmeEJR$QQʬ>coLЬJe+,6rʡ?@y|S/ߺ@Q;+@2dJJYwyx&Bg4Fd dYa,&Q"9?.riZQcJ:I:a h~m0C%]~+l:>l(O]_%3 ;Ozfp*[rrd"[ͦ?g:Tr1tYцMZO>)sGGK=0J5V)S<_$,ly +h+t(OM'舨RY;8ŀf}eNMa} vmZEF@4% ͼn*sJ5So43(vëD]Q5)tz9B=o` tЩ(‰lQQ@hwӟ4r~'0uxE1OܞR)Ur,|AdԠ>ܓ%⌜~mYWt /\^Ķbz}? kWSUG@q#y͢%F Fdm(v2NW]d|R?lkT; W^]>P]KAI# rF{NؘG1f(Ϝ'iZi+5?Uk˨(ۭ @'fYFd2vtb!:&B+aݼzVS%fCSB ,ԍkf!TYеqxO鱵@(r @wO)%{l%qx=\zfxW[ǝݑ6 +*+鈺p$ѣzcf}"K5L>s S~YlXP4kX =ΦS(2g %HGNmB.ci 4WAK5U;(Y~;vP?`abXAV<{ye1w>~gRk?ٯdtuYܧt Oacz\~,ܾI#6d/B] q;ym{%n;5dءM_Onóp2xP c(A~j[//*ԙ5p4x,Wb jHw2vַ)q=oM*a#yOJ?E\cttzV;Vd}Q.9`l*1ޝ/)^m\hB2sDb ۢuIFxq'*y8J[_Q(pWvWs׊"J &V2}\(/F!i fYPMh4zݪɬb};Rgr}ITπr +K:aufZ5@8/@ֆϓ77(èuŋ޺ +^S\:g~EiT]VoDe)*:6<| F#/ _8?B^mqa*ۉgf2PXjk152[mf-$Zma-VV_V|.d-|M![]Z +"#b k#1#mR~, :ޙNԦt/t V _0<2:^-VMǠ VU.ϯ>B{z,ja@k)dcÙXIr8~6X +(g!rZ-RfjY2O\.I˩E? 86f J12~ԃ]zJ{r+ӷtaBHi/ 昛t#aVUɚ, O97<4M&;Fl72c%GjqNюvGhţmҋ FxBtZY8 H$誚 <ptI(eUNsbbXs]C+$c +h6{1,3Dֹb&0+ܪj Vϲ;^Oh_^XiEw/56f&C77W^]:iuv患@`yz[f'E8[avo8{I*:xMYn{'(ŝQtuso5>!FjD9ȥ&arn.PtYSG[X] ŏ0bqdq,fY55׌MJXo'˺ߤ*REN =I4V<2θt撹§N3suTƆ Y49YT$%$  h 4>0t/2}K3# {"x _XdIZUys."Z)UC?1dTs~77VP/&教1%x9O)D]cuD\>L ܆3a]*Wac3`_ͩGWQyO [>^Z!])[6qnLgRg߀Y J,DKF[Ў=W\b;-Q?+a?DEa4;0\lvY91ٜ9&n?ivϱ6Y5ת|fB0Ϭ})탓w*[Dc"^S \do(*Mx;L~/mw0Ũ+W|0QrLA [wVV>GA'Ѐc1INnt?1~z}}}KTD[UmQFuxoQFv3T(b?z3@.Gwxl}|L2˛(KPr3` (2\ O&A7?&ȨD_yű69l-~whAO⏝ZLԓzzI=aHCx +}q+0dSl޽.otaFNNJbs6 + H¶#|L}JŇf|x>DߞUűyW%n|.G :S:S;}uq7#K-榌I*Q+{Dg%)r<ڟLC[1UG=QOU >$$:7fA/2>mn+m."sק-bXFK/J?H=M=Qf|u SP[8+!TG0ֶ+\U[ghq>NaK{ O,{ h7(/5ڒnj*etnֲ/Kh"q,] c{KwPě>xoZ&Lޫ/2C v`1H'_h`vԆzoRs涥De25gMƶ.2<m$Y@$p7r`v01oV+Ae[̠Ibh#އV/09Qltrh]r 4nSrRۇMtCY.C]uRP+|7_a|4@V"ڠ=J'肚 %'KF7ĥʧΠ hJ?!R>gos3/Cڲ2n]gjK!yob~qtbLv1Z^nowL ?2'M1gBy=>jNNҺdzy $ + +klhn4(dg:+@Rqm XiLR<_c9;+֍~Dd{o@#΄8p697DA?ĝ"X^;D*Ho"ZG좖}==_–=bvhgrghyE3A^ڋ~olGtꀺap;7́Uͥ=?gm3~%VUjg@5i؃ ݳlY QŻvfi#޼uؤìy0; +ȗG#֒EWbMf2ݺfL( Ko?r]𴡹P:hx%-Uo.*5]S}t; xVoVw@nC?9F~QfR#w\JHVyuDڱcCY|/RӀJgP)EjTjբC/: hfrx4xI3WD㨔L^E;F|^`ohh`Oב;J΂TTy$@yVtxTboFZnhw8ޥ+Nt; q--?g9'ג흟pU aOߔOg/@f2 mB 2qfQjSaT| Yr5rtN 5ڻ jqpaG0 yd++b1[iSIBrjSb2:^kKW/ {i*dBS0z^=L C![>\ YyC9aC2d1텛JbBbPWP)1_F7rJH"rTN91^ٞ"J>7@W'T+_S~a64[p=2_eޖ;Awn!zTկ'>K{].zN˛ u lȮW|W8VVU'&VZX##+/S<ނ+P%Vys|E7:~{Cf GJ̓A"&`C!;ܘo>^ /{B7ݥ'Kv77ZGk׆w繳fSߝ>k h,H=B&QLϾot܈V)\ s&u0`d~/Cg/JmȆ8}%YfcG:P?G RO/^${WՁ嫕ow?U`KIrVk?=5vlpvO$E^fZD &^\-!-= V3}HHےx,r.ƝK[iztW@7ͧp` +EU2hшJWG庫UdS9Ծ64 KTsSÀ(nFReRks"lz&BW+=y:A/j +(_mV=1x +Wkn^ZZ*Tx_M_?s2~I3`65 5u`|46Wp~y2+-ʐOeViE_81,5Gq"&WL>^g-5҄m^{i\qiŦYL$,E45f/cYS6CدbV|w@ +g?=@OWJjn譨imk;OJ=/hنhNS$`v\jYlJE ĒDE\Z=7)rӟZ0J)_A9rq,] *Juٔ"9 +29. !tJ4vh;$)8P-O0؂YY =\ۄT-2kCqS| 4㹍lh(Ǎ<'t9m؛b<'ۀU] Üa=DGJ+i `2B-p f ^˵V{Md2q=45}o6}h6(\h4䧑hbIqF `Zk3s ϧ>{k~0[ֲ7OA?jk@ZYm=랍s"E5%\˗8 ݷU,D_Laq>DL\¤]ȡu_d~Ҵq ו|FR3Y~%`j#ʦmjN( &d]=J=waVJ6A}?VzP =Z1Bz c us[,s),s~zM (Q*p QQmƜxݳQkŋO[.='ɋ[O{.D$IJ A@oڋ6d2nD~n/b^ j{3.O}`/^JJ]O V¹O +ftvй;MtR:?}׶/Ch:8];/Ww3[E}q'8JM=8fL>!Uz䭼 ),Vսj0 Xtv|̳eY^նQ .mjUD:*Д3rn҈G?_1\ϼ擧9K+QSkBIy㦷iOxzZzԂ VgR F>S̋nԷW. +.~)zGC_iOͩ%Ԯ:FctTB2c]r~'Eݹ,x?'kM/tD=̈n%9ij! /sFTwND?Yk,4$OOxH ny;2[#C2xƦfQǂ#'N0({ ^;F__CWzgDRORƁE;Lg` sJ(0V4&'u]cVaP V2SQ&"w~16cKV&1ah;{ LgߞUtVbB ofox7pu 3J:b 09q!ykGVvγ7]h}gqf3q~ԹG뎪7%=Hwњ2SaS#/J4z[:.1Xc'P RG@̥`)鍗^t)+(Pf݋~*r=.o/H4dOgZ)'2L\OUuO+By?:Wre uE.s-@5w-;Y[(CX__@15Q-VuE1DwpY25_#G[l}}}z{^{=s*3Ei:-pDo#,`g1e_L -[OOgd /mv7_|Gje^~)>t)йp n bѻ=|2̀>՗q/mֳ+i@:ˠg/?YsG\n a9%y~%[bY(N=Ēy~ pR~LA`4vs0,-3-R%楗}6aJ5{qx}q3fStvxJ7uYCp@vLU,NE]8H\dMJGcRbp{Jzd=hR""Nf[>nx1* 1ڑtޣsЊ+,;B<ZdBVA>f#\1 + xcL ik s:}bam]tA}F7wjYtD}hq裞VCF7GxB{|mH]K\{XG4}=fDGs_PJ,.6:Yָsg=:t؝h;Qɻ ޕ8-"PTygxg΀wC+5νPVJah:* WNNˋaAT"Krc2Πɒ&KT֌[.,=q}.'4]#B[`H]~G9B_ R5 _ tݧ>Lk+ H"k.C4z: +.Q̻ٮET;T!{ #(Pva¦qo6K"l+ggu0VYl ۅDIj4JF;^ke`A5UI.+"2#`557?@_aU>!/䳼 =:dKVU;Ew*ʈ|[zQMSu#7'>K`9vzfr~v`|1bp {ئ=_oށD9Qk3tY⡬!Օk~ܿ!r֫,:KR SZO`.̹7n"|3m8dNBn|lW^ڒq&n31:i}7t'. D9TK# bz +˃Y}+S!+; Qr!Fd YiÀ.op{h1wo[Whɰ~1y*׮nݨ_AfI*hY-1WG9boULLS]PAsSqIܸ5O<&r?!S[]#kݣvw0R͟bYEU_:lieǩ)x4tV!)2Guy`wR~@d$֟T_|)NSr a>k(b Wf-e-CY >Wa0 f넾('z@}hAF=>הּّ0{4!QѩT &+ 4 +RT9|Ce񑄸t<,~seݢg]dSwB̦TmRMXe0>.cn)#X{-w~1S%!Z7vR}^b*WnIS* jP=.^VWjuT{ZgDWSpJ9:ovӫc\Ե(1?USpĠF:f9Jz}yΧ*n]fȋUEYN sXzGT JMcz0kP}%^9z>bC;G#hZ;AmɈ$oq7J3<:BEA2lja|_l㘥\.Q\yNW";g a.٤ +mB._fB B@lLO 3B,];Lv ldװ`tC`jx7Cdd=0,k} 236&oDqB܁̈́!kK3BD- +ɀYf? ]x.[m2:K +heaՋl_>d28-2PpXPH#rOi&VGd/:!=rQ.P."ʥ2 jaYOz>#>[4.7 _TK2\WW2OX:[m7672Nm([P#uvttOmj,U|ir#h<'f18""ڏ $W_upٌ*xHLS'NV]] MwŮt +IvxJsEqS̹1렵hIT1ӖR!7dSݍ*|Pqqm/F7Dq&PZu׽:LYq?UlVzdSD z=zT$̜>#0 k=Lu$2B.Z#YdoPFO.el4y`ix^`+=JUۇ0}5!* +[U$uq;2r=Acp`Vnœ|z+/p[c +_3&k 3Uu ҅e!׵=#$Ye$ +IX.+Ks3-Y{8EkkHY> eo +)еKˢې u +nUn up[zQ"p&łxX=f{q=Y$ +J썣UF(@bFxKuf^OڝBGQS +(ќZ>i^¡ ڠUe<00Oj8*Xחq$"]twIGrcP'ຩ`C )[1PlyhnAIl>E c?|f ?5g{FtCP#!Ā*\n!Y0DXMy~6dc##zEhj"{7B^(7KU>!JHCYc`}z"tAWQ@R$,h16[A ƾXb}yn|%,ݏ- D+EkU}Ȭ y_bX {k%pyq[` Q9C)9F;Bc]xF.rfI=fI/j1=Gx蒎uH~/{e??W45B6ѿ@F^m+`LYUdwaȥljKGp#MllUKIk"m }a0j h\F0WPz]^RqUkRYu +Io2=xn=&y'+PM9NsyI&oR__ +US6* +VrK1^LeåËgþ xSɚ Jˊ:>\̘Eq̀&*{ b +g >bxW8RrNϪ)C9U^B a~1"I!Ļ+4TLQv8d` +~0VKדXG Só,5 +rzA|R /Pq.WFF= >WOD f51% R;fCLl S3ft~pt=,N6; *EcJ]q_W +PKGy3~(5Ye?"MeRt /jt:Ģ8 QfJs)Z:֜Z85 d߰"B:z>EhanG#|?u%^4%> x]GJyK:t?|>3=bZ>ڝFn.-Rgv?~&o%D:|V ./_P<][e_ +JM8C'{>Oƀ1b.r^67GjYmWq NVr%65?(cSx662waNS]?/`2VZ ӿAL,WfJ#+XR,//T]^v55命M%xDGیh-)nLkm.:K $|  >}`V{fbeYM_ '%A;g?A Ad=8Xh4F^1K㜡iz"? +tvQvs%cljkޱTeĈkbJԡ\&\Bs u)\1 ;L~cLD|Kމ4[菰R C +OQ>>{E{f wb.^cϙxw7{ƵFi3:ݗsx}j8z"3;c=R;#u?97W[d C]<^lfi7vh񓨤ڬ]d/L+G|6ڬ#ivp"R޲~`-?u ~T֮%3|ŒCΣ]G;? +W?[>(/fP&&bI +!^eg|kj4([o_A~|̈S]h`3lœ}<,S6S/0W,k[O߳IɾvX %kcJh`m!LAuo(cE}3}+_7f+skvaq߸kվUnK1;e♼"v_j,g3O_F#{%{5|M1^Î0fk[]'i!!)M410'[J3֫;mjk`9dr( 4ݑj.{ǚ6yœ;%LxKv45i+{tO8 tɣZZݷ݄==O{Z89;-vi~ ml==i#Lc*(or< %  di5דW.7/wg9xdUO1w})4JჃ)駕䆟1O Ά tP]'" 0f "2ɰq,'g N<{ams.E=©Pthȗ1o6y+aaȅExڲkr?.x%~KRհlU_U6/21"څ\Wqm୹܋OmT# +=-F6`=R]spu-;/tKin'K)I{rmv G~ }gp|+Gz?Eb$\/ +CCX(EZ +.#qӌ- +3*ҤF-͕\JWgs)a;=ElM;mP*vk_(9&%X DZ#H( FK}ɀY8p=pS13<}` [<ZdtX+|[je&'Yj=`Z܁HX ֓WJeشoOsgCD`!8M\8G?Ylriv1ћ M:2s P]k7Х-z{w FT.q.9lŵp80QeM=YDlJ]"ǹ,S)XîB <)ډy~Z-ۤSKT*Mֲfݲ +*FTBT,Xb^|xb: xӢX*ѧ0#0K#*iT,UGŨ,E1 +`gs25a:R4@ZT@F + u]oe#HҺQkDxI) +| vdbea;/tKin'K)I{6 TuKud;j-$̝Q|Qpc4; T ɛFd/%JjuS݀T/N e†0y:#)]1?bXb"}:i/#6/"ކˑk{/`kѨS5P* JuD +d +cFW눁oEK-h2u uuZMɢQ' Qa*'&w9O2B'B`ః,#8R0vE|ʵ+tI^6†@KӘs|1H)|M>Ĝ ВTy{;_b!--o)ɼĜǬm?gc+4+%&fXnlrf=Ԭ&;8mJ λ0a Rfq1J~ðm[[dZ;bp!a [亷ʿnڶȿ&g[oAzQ_Vr|W~v汕)K5CrC;sSDYEMTJ)d(1`]O# ????e#T5|N+{x ]1e*YߐGqެI*X}U"3=Cْzf6,5 +2I_,)p-'+պBΠllPꈔʆxn}Qِ?C(WP6OP+2 ʆD"9RiO\Ӛ9*S|%T"]سE [9TpW_Xp-Y u ߎz6{D%Hv5:~T+OðD(jOqn,:P[<)vhۘ:{ZMA ǷP۷;o`jS/=2 cccSEY;(;Oqfq\fjяv!;-m;7J1M >g7:2fRsǭ a8PBhxNQy2mId!up4xm G;_ItƋ3CGø2ą/D0]?Tg`THX{nͼ.ahR2ա$lĩOv͊S +'i'WNZ%W W{Z ʓ+H?U+OҖJU.U'i[C\\ӎ{*k2ad4hWXY? QYfi珥;Ҍ ⓯9}Z裖Qͦ2#$eȿ SjB5.GPBFdlvĕfuV,?XUyyuH1]ytJ dğ$tU2kʣk: kZ|'$ud,g_X,1lTK\g0K] +³38qJ(F+]^- 2Ŧ4nK w%WM7DW~.^вtXKALVf(uU1.[:ᨪ nx^;Th8mZʹu_9++pw!usݽъqSrE$_QRH: >K ~C J_-L oPm&k/`YLRn|vIU_+_1A<+_p5/%53$Î\" Vv0,E@SxuQ +X?*uKC*^>p<%xZX^/a^P=&7$ g15"r -ee9=PMxi÷b[Q˞QC,bS[3aPKr:) +.Q+Ih4GYLe  )'dTBYrk0u|e{i`!`%nWzGGeQ*۟iΜ2wO֚uP;pxQTZj[j3ިT`9ўUM:v7oi0x -1@# Z 뭧Ld%[+0_ $IgxGCC,&Q"BcFe'KշCOlBΜ?R[͏пݟj"qI91 +!+D4_tE}$cA(HLQVjyrV{\l() RafwIIgsҹ(^HLyHsJL~ۉT}+/taC'y0-2;՘i~o+E>X9c{qww3-Z}/FCAOVsPC4/ až]m-k :Nlom+ubs-t;-Ux)\4﫷Vym/=({hM҈G~FnG^i*deGv6a`"8!ү'WɎRV¹/ +Fhu2hpʎYEzL (,%*$?hfG6*F0)FJX MpZnqRdU̫yzM]6[uNZɫS]0RFg]y9z7gq{0Nq?n{/Naͬf.4D1*v|9 qT| PUsD~0m^~ l>8 +:5<EtF:)|\ak*W,詄-a$edp$Y8jLvA\up ـavluv/Y^fv&ah(/6|N.Dl۾G`2]̋ItaYgQOɿȰaJB[+>{?ۘ :Y[\ݕ.dU!簦$9:!y;P}}s]><#1%/4XlQ+gٛMsBfǀ"[v7+Ҝ͉́4}P姥Un)bO8GCR)^d=<ُ!o'eb }E +%dRb r̍qE)l_]B XӀXit.`׼SNCƧ5N\?7^^a!;s9{v!OLU" U( +sOcZ?Pbxָ7"fJD%T;>̺sǢE߮GLmٽT7-UBGh;@%BNu]b5%RhN Fm;qd BF2Џ؈(;{U퇺@<~X2_Qu>SYƿDZrk ^Sb5IyhmW݄/JEzIdP[YH ڃ0`#u˔'@RU0+n7ẻ'ʫr ^Cyr(^9͟UQ֖qÈM@x EE )xG&,ͤrLƍRʍ|&.T=yJYi +̨W#{uR"_;NHdTٽ݌JsWiM(>zN\Y.->ȧ.#p#_g۵Riw., / ]/lM-HZ_hmEb 4e4eϻBN@@=@ciڶ?-&/? -]$ E;5nŀ[^ E_̣hj)fn˝u+:.7)+[{ӥ&A΍7սQV>]VE`Ywv>+O0*jT[ٛѺWϫe+Vǡ][wO'0#'6 eo%Fѳ';eu'eo׭ J8@h|ҫQ޳ {F^*lW,'~&Z- Mq3@!jCVaUSW +&A$w!W֠Ѹkg{FVγRYqի7B@u [H{ |eDՖ3< }'XRPa%[dP΀Բe&.u8ՂI}3e?00l)=$˖Mt_LAVFaVFW2BɂV*ēpX+*r,8KCcV',7Om&[ָ&%W*ScY҂90Dz +s0oSxlMp(D/J>?v zGB7Sȥssxnۄ%}. pߜq_6ܐ5]9Q+3P9u$;ωZO\6;L[4`eYcsaz:>tF\~rnV+`}x\G:j@xl[;pղ)%r)xq&^dZ< +Yaܺ[p3jo*H[RAzN|F^YϪM N0Vmv`23/ z5f/zoU*5̧^f#PwW8c5Y<(Lm~je/*{J,j"ZdǨT.C;Pq5H3״! RTX +`}A][`q+mg. ~U|M483tc┄G=Iah>^`W@yx_s5פԲJ:AsOM6?W|֘4GRs$_r * W#/;S4Y4$7wzL_\Wۿ!У~uqG}5)=5"hTEq$f<.r`!;ɯ&+SdXSsWVAL(bY `ZZ[h0bLd؇ӞN)|@V.'F5%7:XZ;BqO 1%CTxNQwKIr +pw/sn ֬1H;2 ,1:(!7mh]4 . 5kɌ/ߪ4}~e&7@ZYFG-i4`LI;bis H30~F_*H8W*Jr9EΝO;+F$'l}0fZ찺737$NWwҿ82s߮dKpPq~ 1ČaRXgahkŤWVbjCG%ۂؖ~G4Ez2D`zo>ȇCu sڄ[jv}-VzY xF  %"{ٔ ^ "{X[hǧҎ i-#Hּ**S8Z'`F\@բXX܍J$GFЏ  5[۞ek(cn%c2R"aF}o:%ٶ`~4E5Z0@R8]Q;n߄gmMʛZO8G5!tcZڹ>`K ;, dZdiЄvb [Kki OE ٹ9wrӖ:~{ǡU8 },s.mt*/f[uc|ky-IHvӒ;[^Y'^2r8[y>-u +y>e!;[jci ~nPBB1R ?GQN('{VFp HY8!}H#EM.`;FՆJ՝-C> KޏjBM^VR5Gnr0HƬ37# +# kqo}3gm=wM0)iUSmY]Uk>ew"B$7݉gҮF4f#7~p)8[W3qpRy 4- Ѓ$2Yوj` m[72Z.2 hxlTFSE 8y~c@d9 QyNΚ0{P%et~K16o2Vm6Li$tODŹU^muQF39ͭ.ڻhrU~!׮R1}Hqsf]~wE1NbN_5{O=цj ((y>Xً;fd$Z[1ܨ +:Ot C2s\@ey9΀J@& +zCEfz7%N+WS7NzrQ}2}6O5Q5[%#laSLM Id xC_VnF܃͒k:O{ v3L*I=^): (LkowCD䐼0ףA²Z6KfY-Pu̻;{'NΉ@c 4{߻W@% +tgIƨ>f͚>A6{[bU й`%B=a, c "Q g/D~ıX@nl Z1T 7PCmdu #imKm̹h;i1y޽`up ۺAϘ 298ғш@^kJa6;蘘͛0ub\"=>hQ7nQO QTD}"M j7fx͖Z}=ӡ˷F'E5@ׁ>RYm:qtD-5&\,a=9:Z`ž(CbM;̕ե:^ۄЀ-urZʛt U~gN +,QїX+䞜]ω,|;( +m!uC7d2z͂fN- 5Gy~n 4ؾ+Dsל^F+/KVTOywT_F@UDun6Ga' F1XeZvfYkZ0ɺu;AfW$tXyϡAsA;,(&srDC4̥&pPlf8=]_/GXe}7)7 3h^ Ʊu>^|rzwbn"c8bw `SN'v*fSOQsǞJR햫uvɶ\^떬#5jiL rs +/ ;%{#JiJi_g7%,YlLuzAFpKo~nڸfmՇZX>}6sjDlF`q„mt +6bN[]l +D +<p:ɪ]*EJ)E\]Rmfd+/6KE ^m1CLچ)6r4Q[\L&AF0[fEYA .tU&Cb!zujDmDcq ,/aIo`f'nҴs7&74=iZ"'T:Xʈß&;_Hέ#)ɸ"u`_S:*?'Ŕ,+kJG a~ÝJ#(b\Wog^# FCa RKQ$"ݤy6 7X%Uf~ +Fw1 hh8u͗VxR}F_”xr> UϹr2G6~9 +}}do4.}Qpn(zeNs5IɒEVYofr?\Ѵ3 ީx z?ѥbwUHSX-#Rk0v?|%mS+JK?|o u y&!y2 ׄy: oIڈv_"2xk.o> ._V2rA9).YoݽVC d[:~f{sK))_hj=IɵikV"͌K^Q ܢƥ0+.ۋ>16(ñ@%$TV"VM||`i<,Om/߬}1 +Lɜ2I]x/^">D]Ž ++yj:UAMz? t c .t*?QK;kfw&)DJƣFcT=0Q"SЂR G>"HŸOʽ_YilG47% TZ;CiWxX}Sl\MAMEZˀH++fŲ=ƣV3V +.m^H<8 Hb^ †"χ'Wѱ\7I4ƳנiH S≟7/i^CT-i(Y,A4L~^{ľWnK2o=e @7etw!B~n$0Rlsqn G6e "\8Y2CT(F,UΦg P`|a0e^f0[~"Ա5M +mWU]{ V_pi6`hkc˿}jq/֒-UIk <,6&tcS8wRE7/*WԎ/U4O^5s!3sڈ(FnFYi7 HC5MDBZGn5s j ɏYI?i&MqJ'֥"1j]|3w<-_f}G4}^.*C+>$@:v?YCC5,cqw^,36['Et8=*Ⱥݨ[ CG j'7#jHP}M"( +8B'FG2n< mxHҦ{(^h{:ռ׃fjN|iݏM }X| ?%ᜐÜ KbdD/\ d֔Z(y+އR*$P*{ft]j`BIу,)xWD_D€}@ ?4cqˋBoF⿙B| _X^У᡾oІ]Rm'=.*aUSd8 U +"G}SlPl)6޻J=^.L/ʿMjzo΅&>CTx)E!u4otF +DHxOJcH.Y;?.|iWCu7aZ2kjb G[„~YUO—v;WN(v;4maZC$x o"l7$ Aؽőa3?ݛ̽9~1K"6 o}lV@tIbÝ}a"TNO2"Ξ|M+[. >F*W kzc86m3AyPlypIߤd9ɞ_&2Ib&FĄC{pD^"NvH26֠ 6l#A`A)s$+;uqJ0ea̱Fc4f09R3HԀ8yќZ(%2ų53SC1Bd8y*-F]b<ivu9ϫ\گ5 X@ qxvc?C$h_|ڝ}$hmǭ O +<:c"WmElBAw*p #kM"POPt`OKNoѰӣ}Md?:j\?E)=][ŏ3hEtEn>~7Gkf +??;݀v˜.{|)i&AFbd] +dE3zGQ pSrc4Wx؏8udoŝ*+ʫ1"j3ERX4kx(qVH"KlJʱHeR4 jV^Jf,骨]JCHrR9IW$l"Gd&0!_$!QPU3XZ|mdU[zS\U^ 3cDfm6t˄ : Я h ac\rsa{=<ܹGX[PA>f݆ Bw %>!Sv%wJ%+6OCtj_sɟ/4?}˺O@@ +x4p `mf[e Fԣ_*,lյ7UwOИ\B7& l.M~N>FUah-TLvqH86[>UzLf-=&3iϙuˢv^,KJS?X(f` 8]EkwEi#V#P'4+A!BFBG#n +GCSS]]J4J?6%(Z6E+0]6V(V(),B>LGR +a\H}j$6,F|A zs +)Fc V Cp6!5rOmQCKAfٓa8lUJ1.cbkM_`%Mv}R*Pvt{a-G4hLpz4FмG«NOipD:N+DL׏Q v - HzO 4 B=j~T#5|zDjhDåߐ%GV57zvhY5 RL}p+3ŭ}BdcDL*I}Y*/A؅Tm*p/mbw,7%^>5A3iLԘy:<&' pyXL EiL$$(j9tk㙑tD_Seʏ#1hc;BGg 4v-6}$ږzՎa;@0M(SG4qJgq4e꛵M֤= ʠoqGQ4M GL(Quk|GEC@Se}z7Ghsy\D)# b_tiS .CXƕEdE5wtrX|>%qFe02[HYklפp_-MeLt%)?:B!(*4ũY JcP:K8"x6126^^Ww6X5K%< |Ԃh`ж#X3[Dl雈Ź)^>mhg7]??vh=>r`=9 ?Eыس]$>O pd7xK(txxNS')z4H3wġ{>[cّh +R=$Cޛ`-,QPwܤ D\*op}߉DpGcH;V_~;6~NNwMfӱQ: >)ƾ)?(O'.p-W0BU窵3i-nywk'J0n gEPD͉.sRjmFMz ꮅ?6}U1gkѧdf}8cL*ul>q7Ⱥ\ۃt1-czޠ`; 0=?u#{1ߩϟg..@9HMr#fUȜ231`;G;Qܩ}G3Khw;> >&|l0zMK bQLIH~{"\K7w&1%|l>ṱ\ofjd5B};tV1Ep).XX:i^&XqTxv|3kFZ,h77OLqOm}?N{6A%$eM$_kNDӾSdu"N ~|t<$jW&s *ܧ _hk ؖa|X߇^zX#h慘_3'.҂p1Rd4 +р~Zw1y9GXHHLoZ2={ \BVbS}̅"h&.D.rbtEˬxV/en&Q!3 9lDT>.b%Ӎcu?.橫 ]`L&I +rCkZܧE\ŰQ\5OA;aqz:U;=wLCj꥘oO6WJ}P; Ϙ v蛱Mn[U=HpJ1Ϗ:N-fhũko݁ls wde7wws@=^m~Z_.O]طat#mn`vKpj-A8-XSFoZ'Ypv$8p*wtMg{oLe"}+ڨO`f6{Dۿm#֩6c_TG_[7֢|/}.QeRuhi\ :WIV@3bּK6T\R( *K'>V-&bnB %ljc4vg@o_2ObHG;A3 V/}?t0bNTH4o%2Fq,xW;؞͔ƈ=S+wݴ1$}4I3cjFuӉGbT^&}Xϻq-*N,{'?'y+6'C$ھ&ĭ ل)*ٵdYD-__~4HNb>@3ɳ5OE _,8o2Lǣd"jϤO%cS4PB_؞[>3B~}zǗMs7Kܪ23ŝ"V|;pkq8Ku!6OiӽH|PɂE>8 +#}0E\eĺk_G YgLcTA{HHOjX1AF@[a,s](j ߫*ͤ痏_}V$7:~iOQWuZ͊0hFr[\FK]MB`)(ܡ/ V Sn8 VhwG"kLeY>4}<[geQ Ͼٲx,^kFi0 )ie7`ı*È,"gx:[ٱ ,G`j;=6UrOΒO5{c)4o?uXg3e `eq]< BGޟJJa|B&Mb$(A-Hq!*w/npdҺtʘ."t%̲rEl/۔.] pTU-mF@QPw BE #ULrgZץPHø&[q7fvu&qL:1QvnQLP${_үCZs=]7Y"?>ET"ETڬ-HoMނ4UDerDgׅβ^3c'܂*fr9>sr9ACdPG Hwߏ;l{('I/׀nhky:XdΨ宖rh˕>@C] Hbܙt[̔ F?wVWΛ2ytu;IdJ3.-KTosG2s=&9D2O+ ?zq˦ ǀ,O|]ayÒ!UfgP 7wr^N8wSz(O)~%i<2W;,/+䮒٬J<=ʸ{O %5dc&ǥs'KZ2g&6՚N*)L6OvγBN/(!%9Ӏ2k;ze*QOxߒ2şe<ͣ豴r{JM_$2KWߔi|Og}Np0 `c}ZF=½i۾I,i7accg" 0F*#MlyۢMcÄ]? ?jSwŨ)9~@]1j|I&pQz oc[&79σ# 2 +IqwL[Pkq%&Fyf?"iuEWB:ٻĮܗ$j {\qCcc +.OC2`6;$IdT+[/lL[C!f}Ty6φ/:S3`(ؙI2QMIcl~qW𴑧cta $vw"446j*v7z +'G,)h|fnps=Lj +%GR>p +6F=6zR ywY`^SRnN4}Ϲ 0f)>2'H9]6[2$jI. :`uti̫#NYM=amSpLx?LfO.8L'h]:ɻask<7ƭu{kwQLڅ\it H@ue(ݬǑ#OY(O$D>NWԜyS+SPRvw3eV{ -/|AVdX?$%I\w)a>׉49!$l板]X!mh̗H*_2\ؿ(bpoz:w.:xve#|3Nyx8ݠ1;Bx\~ +2Ak yI=!}ЏMm"ƒ "GgIB0zdtqtu5!:f!CG!qTWםLyOw,cq`sԻ"yH>$gTRAL^B +IN4heP|};;w_ +NHPv/MW|CϷ;0í>Gڳa +#YGzAlW{sz?h459wUѠN8K"c I*ە!d2aJ;ەAz)Lo R"vpL+Mx_SE,[DW&|98QXk,lejM`~Mi ;xm ^o,ܖ *@-!#w}5ÝL1u[tiC +< bX*F!ZW&*ϴBFS;Yv 4nM`r Aς7Ykzpzd6q7GJlbx):JG׳"r=qۓFPvj:F"0s ataDa 8qi([:V +@a 8{(0l=}E7`H (U?Ǖ_=͘1W JiZ EvPNH ǰM83aEY8(1-X(ps nj9jmhej-xR GR#jRG0Yr̷cW VoMuBTVla>'1x&ܓ˹V[ ףL%~h#LP76$4|rA,;pj4Wڗ~t/aԃ"GE?">K;~;$8|[1,cz  ߙl,Fr\L!QpV⩾LZ”\w?YBXzHNj?C8Jd^aEPuZC4vQ6 _PT:jC/c=E!Bc&pO&ä*QulTp8نw2PPZ|RQ̶l۠2ۤ~~O\֖JMq̗r/C?\T-aE\mUf2hn#_NbVT5f0ѳ(m8ZIx/䂍 f5pA-0uqj޵?c hMX%7DTR E5LPhFuQ5 +] cgT׊< Zv + ӧ16/9m} +mgS{s`*aμpYMY l0dVǶXo϶dC8jp>[6-!頥GӳD|k xJy ̋Fvd%2ϸLgh6'| +7(][% JDV-&Zi,[%ѓӶ֥c(^сlFmLћD%el6c4#~Uv4X[Hm +X*IX=aztX0't}s(HDaՂLޘ@HC~Dht>,o9$xoY$^g&2N6Y/7A~8So5_FŨºFroYuA8ћF@>ނE2_;TKyLJ#V@B;qCN zb<)H`z5+^)T+l _m$ ${h6BjT|NxY +rz_Zi#|!?A3I977W"ГBޛ[)[0n( v޸\8 +sa^]Άq6hy96~wV89hI<9 +bw24A%p $Kxp{Y@džw˄sSI+Pȭgu'CHKz'v)3{JCRJ! *BI쓣Z9Oi ~Iq٭Ζ"$NM E]C"IwGHץ1~Rd :ARKc`'hߢZJ-!4M/ܚL>_ko6qb.B\VjWb"vDYӪZ{b=~'qe>cS.+2sCs+Kڕ>|BƅDS"{ם~ܙCHz`LyE^|5]}tTEOw@pP>`иCv3kآ.MPiY]qlG:I c0K nsQv D%DC2k`I{~Uݯ:?f_w֯֯>ٕyŮB?<0i%YLUfi +{[5rF+q!v߄ƒڤ$  +Czվ ~5hl+!jlx=&!"CdXeVD>/Dĩ@(4XΔ_d̚ RVX3t5L=BUyӕ_ rod:Ƀ!zN@s!i!0>J9{nnR{Q '*1hdΠSo'B)A] gk$XvG I/kS:dw) +lk:eK~BPoL y$\oj[kHo*83$jv`\XHG4hou@F;R ;yԹס1XڑiQg^.WG޸8uBJOGc( @WhT2ongR0J`8YJqL]1i<+' b0 e0臈A{b0hy ASaPX+d4@cיgn?L9WѕR+ؼl?&DЇ !hFw^3Wt\9[ {kabXG +dhaO += +d hN=?uN{ڣޞvibvԔƘ8mkmSgbj|)?s#qO]4W }P,mpWXJ*hJufW"~'az܎VwAOyICyҚsuLsMfzruiUMkVjs('1Ώ/`&IbTAȩAH8';?1DbI&=;cq04h1* 91>z +Zҵ t6@-GAt&..ޑ<5=[m\EO%Qr Ch^xU^AxkyEM1hܛGpW;lc*MK{c,Hq/Mmls߻,ȱsxřS;So0)/> {D#}Z+/اD%8W[Džx IJ„t14b`<C:~)}ojuX]l^)*NЛ-3+9s)tzEJ ;rmE{T]l/R Yl{H"ԏ*ckѨrM#TO?gh1~6OJXN\݅'5]u;.F(PR$B1-!O_oQ>Jcz vܛY8G/)ZOڼ)6@\_b_% ,,TҢBrjBŘj5Ę4cncnS~w+I:@tn> p`O0|yg}Ɗ cDEl M\(¢jqoBc܈C.dףݥWEFq`uU?} +]̛Oa 3oP +2?CD;Ûβ]x6ST^g5>ʶI5ۢ_oPX]t`^.=UmnˇNF 6P$ac6z@V礙J 7`%&c0 >)=5lt(U*,ɲKPv٬Wr4\I/6Ʀ*'+GN owiب@0d H`U%G)mߐ:k+Zh@N5I}FX6ge6;Km†ez߾H"kZ"DO| ifd+7!WTsZLpL5ʤk鍊Fhţ&N/\9TB< jyS/0.wjt~[4U4d|Frf9*-*W rN*n EDGU)u*;@eʁ0.,(UȘ*3-אqY:3AXWZ"}!=S.eOpǣPd@ֺl"6Kg7;JL!HUQx]c8(X*邾!Klr M^tSyVv^ 7F:_CBAH?}\U"w dƉZ^} +V'cG2UwIf:>Vr#Е&f#A^ fo}InBsK"O +RҜKlE~M )E3M9o.٠(}_h!bwB gb[&9=$bUSxHO^Q zi.ρKfc6=7.W8&?՚σI j4J\t#)_/0L{.OѽYJ<uha6dc0`?Ĩ"cMa7<|ǬGqyCp Ɨ 9$ӐIM#T\m:igzƠ0xKo蟘%7]0`ag}^\1Eϟ $",ګSyU\tr@ .3u9AƼ“=G4$|COE>EQ i+ +hYmr#k|@ #s+=-t|C58%$4kuX46xo*0͜iݖ!}]5-HPfsu3;5*AaX觥3d:?1?c~6x~ D 4 6A񞑀 [5r?V3Ur +gx>1]ײ3)/lp`=PLsy]vT67ߤ4RӢfF{Z^tg ěEX?.>ߜugj|s Tnva}5++n_nۗcDStnv0o!-0׉N1ɮBU&1X6|ƼsyM\_"4*BzQYv꯿=#,3B xPmY$}Mtz +A pNkT\Vq  y\q!q!O 2ąǣ5pP9q8SgE:8:5"{Չ:C1n/h:,С!OâC:5{ƼM贛F[S qС@C*DͲѻkz`DZջ~Q= БEhXh~"iY}g#? jC;?_o +*( +zP0I..T»,QgnE~b{h~-h݄d}pxԉ8ӥx>4n ĴL2teOKC5`+ ]!̓?%}QzYU:}r E[s>6pw r]Ɛޚ@1&":vpY[~f~u2A*Ug\,yͅ!=(N_IKwywg#XGqU>8l駢#/Rg#CQ5t62hh62ADs jϫszzO͸XUHcyRx3cFrQ+0dr"U ow5ۄU1Ic>KXflЎCj(۔S,5dmJE)6o_:͘mNC^{ӓ4qfpoS_m_fM"m@.E9t/N^qN7¹8',ZuZX^08I?2x]1uo9>}Ũ#cuͶnMC/YbVkZ(9'*E%QI!9LCwM>g䮺#w5ypp<;SXέ'k*V|y_myQwS[uGzt/?f5@>S0E15PۢaZS{^% _ ^>}jbG]>L&-V $! t^_E^Yr^>V +gocvUqB+`vRsP>irSI3IóX)^tvwĿ65޼+FљϊOih 5HGp2;Y6,N,É{4[LӬ9W"']N7eYA‘ D "!kn+%HuX3P8SYhj$?Cƴiz\aNR!7*C4wޓQDxx{הD~ҧeQҧtC)]cD`[%]эg0:(s:Z/x<ne#BŸ\uL}*|^ o_g+~opU\<+,@\+q-L["l CUk~kp1\g川H*ѥE*EQ|n,u"Q'+(gi˷+qA,7n5$sNN]ٷ+[䟔e_ܹ0KR.{9V|cMOls_+>tRvH,w~!N]mlFxDzheߩ}ʷ5jokPm7x`eUw0fa|a.ɍ(u\lӊ'ʮހߊmxooČ͒)3QZ?3e(h#&UHݎG=dSR(9L<ÿIYyFٷP[J#qh?Lw7tKpz|Φg ‘Gv)˃? AǦ[?=wvn߄oݛ]zWZhz ku/uoUuNdT6qvdmH$Peڟ۵]d3L$ތprm[v-eWth&eɋ)$LY3%ՀBr%Ap>0y<94PE%|pHqKTsp||rTE551E;>*_H.MNGLKn"޻ H~*o/5PQgNtA.-sHY (C$şhHORrԫ5|T !so!xY=gi, l[ŋvt/ ݲ#-;P#HۃUəigcnc/ځfrbEvQj܏s_#ņ#EOoECPrZ-aeFfΒb0a̎PMNt;Ov[kΣQ}g`0\ a-[:5[+/ZJc';ϨO*U*Hv}Mt=>tEcvAo/O؝c̩&7a12+3̢l:~vldp#nŰOU&>? YM J ~3wmE=Qh mg--aAҋ6<X4?Z뉭jmg/32ԋqm0>6ȧ"a5Jқ_ܥ"\gsΦTjjdtMO:gzd(AY$DUЇT $]l=_/x8M`N5IM sSM/%#kc fhf/mʀ;Ө#OQm*k:;0# 36:^WXu{e3BP }> DӄP,Ox{܁&g,o]aJtRMvaM:^'Þ8 pVX +a8h(7%'WQ9zjy$ T#!۲ $ WdÐrR"3»J+e+tA[{ +gJVz+/IgOs)y#ţ']hL|Wm-.6Uk=ݳ eG9, rQnB/$gXM,F(BuZk3p`. |)v%쳄whc~~Rt3&{1p? 5yl8ҧsu î\=ēK4N+gN=U|՚S+*[߽JI]H?48'VuKVVd5AȎ4uUMdsk+4aKځ6 jg_>0A*͢JͅIxZ3KWX-ͼAbHEUqr,Gص[Jzůni U@/Ш!AnAT7|T7|s G{Igqò(~ݕzZH1E._)b]B79Ĝ{&-t<{Zcbc:?ˇ.W +_9Hs6 "B7;QIZ"~[& ?֦ +QO޴]ݕv4~}T&]~{ㅍC95!Izs*f4GSwWр/OAa/&(>8S95.r3"Gd5uw8YY#МM?&?1: +aQm+ +WI'@ Gh}[9HDcM>gء~*t®0vhszQn0_~v9(X?fJD9 6'{yE U T6UY g~>hI# +6聼DmW@t? Z.w{sP+9T͙ +xk1ACyF~/jYq9@UFԮ^IVJz?Wy&' hS2&ERXȧ IcqQ+I ?cwKgΪpo5χru_ADh? 2~]/k MkqA~\Hj^dX$%ѯѓE oj~s\F8'kt-9IrجH OO~I U & " ^r?1gQ#=P:| (#@^^bM,o(,AfX1B|NRun$ZƋSd|* 8MG +P1NJ۰$PA'%(CnmT;38*,+݋hl"0F >z@7QF4W1`1ܞzSjݐ?6wW{! vp\p +ZfCjDZ)=&̂i5au_0֩.K4팘F`ûNLӵQ;'=n<@ty`xЇW14r7j[cE`$@(۬^ RYH} + 1 ![caaiw 2-]B0{ 15^ 8&  _<熗돑ɐD{~Jch%ݠq,bvϻmQ+Ty'~ ,~c'nFG!%09?_V]kX(Cs/7k4;Ps|,L#-7U%0XȲ%G?wnvQ̔dO;@PXcNrbʘ,b=_ʇj75`&=_nZc[ۤp*fe&;[J<2.֡q6+*+F-|E{۟Լ< 4Ӆ.4;0BC6\8F@<l_Awy-3pn8TPF@̎#Xz0 Dr&6gt*ǻAwg\px[j=C󂉆rh0#J;>5EtPnCLGC3Ag@^|vTAjnAPj*s"SQnȎpIS*;EFsO)FaySő!܈zeO#,6jPsBv-\؞d &.+/'~\txI}MßʪHf%4t7@gV^DpfIBno.t¤ciڅV\D[QqY,BZ{=Elg$إX搂6ĪCXO0 RiŽ^2]Rj1 ))vPdy_ãp +i5ŘKIQI*7 \~h +}UMNA LLLDVv` E*#)B GdIhX+> rrA1.ϢO>`P"ǹ!W3oӹR*iRiw&Bw\<فo@+kjC sZc$bg uXB̰QXNqkĒbʯOe+:ǘ*Fx cٲݜ=@Q$g@͹SLaJfc#^Ewꄩ0| Bc(WK3Dz%Q2e3gOqa4ߍ|[lUE{$%W8%1"V8Dbr8>4gSz>* EoJq)?|ROx\'IN-SI +"wr>{fV\m`m8/HBlð׊`iFQML3yV0&J@h'@5]E i,Q׌thYڅqC.mxS+9'+:oZ/·IMBvM>(ĊoY qF3~W._ +} g&[+KjW+f +7(֝o%zPƬx y~4J%(6K\LLZtĶ3y$_.(Jɗ').HcY /; r(coЂ+=xOpsgtdF1ȫ ױmL=()I d+j "Xe8BU19hƝJ3 @.9ň3@c1ӼQSУapLVy$oZ NѢ=#fluC-냣U[!v 3\tw*B#.B>J5V<0x s&rA܃ŀB_o.]c.Jn߹d&7#PYHmԺ.zIp]7avb2W<%&H=9]9k~A>΋F7Lؕ%)| M}0 cF:+6ìJlfMi(W?$ sJ!o̟Lz.;C F0߬88& s7edD-yM[8!!*Vܙ ]IþcMԞQnY!%{Dprxb莚$`ʓ|gW M8(lmu>#[E#וkn6SSMp5 9ꥴY&_>LvGmrҞNPփn=\c=LH@[8cߎ=,{L +Wm1TTݍ(gG{ϓ=xMg +F՚R^ml!o!`x>!H +mT;7Jρ.e74QxI0;yfE(6$uԄas<-O74P# !L&\ +.̗52H7Y<*4f{Nwld_Ǯ) ( H3 UET+ \&I + g}"3W(Dz!lhB᠔ZhCy ~;mw׆ o@5'*Œ&kqqB(vKRWiR<3ѥh(XT7JΒ4yWQ6pQQT(E K*e+kD)ִmqD9tr`=ֺYt}99F`GqNEK(&AX6$u-m-[c4T+# V\YFbZQ@ٗ-)|txuXR'? h:u  nrK70 W?3b*\zȵta&>#mjeZFk] ZO~4̎(<48IY]'YNqMj\W#O yӲ9?Q-GA ѧM hHes5X92 dC: ц'2'L]p4i0#N]aa4݁8( im9@Xld3?w:]uQ;,sh  wSDb=\Md䷩4kB $I }l5dUkO[:I#`k6ѽvUt`9M 4R*6,Bb4sA7X,uOьӁq)QgPR!'l?J24 W6JP}8s6ҥLN>cct#rLP-܈Ҷ(X|GKy4VЎier.8cddeS ^d <ϭYЮs rn ]D ^4k` 0!Yu%-L殭3mf6kr]>!ښ蛩)L ⃜+Gc RaMm47STʥnPV<"+&'t1lUd*'npv0e,!NlKF->Pvdd #^ e#QRn1}t-Fٴ&ivk61VBczlF ZggPgTÜHs ^*6ʥ{t_W%Zz,]=[ytR/%ұR&A˸ˆ + `h=Q +h(oPsqJj㤛Ee%!!Fv$G]Ȼn]h9Be[0_5&DY#aK#K,,=$OyE>f|$㟘sd:x\(O̯)a~ܙcDZ1I0(Ԝd ]Ň- Is>f=1.R(al3}֪v6EJ3Xj%2a8GjxSjxa씃%E2 L9 y1z8 eq*\!쳦57h$><~7A^YږJzjk?8RTOf#6 d&P|m81A4kCcJLu0KM 6 (.AJ ,k##LZJeLx%ґIRM]0SK;XΚ+t +ՙG%%$?O#/^bd$)Woԭ;tV@9z:)J"p5CYPul% 3LDoquh<}DHT6l_pN 3؟x!1)n' ߝ(cgWjBb4i@ީpOX[6'6;3Ot1i2!a'+׍9M̴LwI x=_:eq/7ag^? ({Rr]XKFxTh&2qp}6j.ȄbҸ h1ksH( eaJ5KmDN>f]  &5i޴/htʄAKV&n^SYz9 O]җet1ܝ{ɢ;mmr@$UuRl[JEQwΞΒU(Eo@܍z jY@ati%L>4XO>DLȩH"u˛dQ^D[B?)<R`9Z&"agE7oΠ[6mcv^[%.ki1IY +b+8A<qSprx$8ȟ4aI %L ̌HT0x'}Cɹ$n;c8vK7)0ZOP19i!.:#\/Q=ӌsak 0 % + Jۄ8pf|&}n_a`*>E+ Onyן Ivu1"CIYWk̨02I= a}SpKImZ߶D +H~㒃ַ'"*7&HoVhVTG + + +O"dg~;)noaML8B6(s +ꯋ;1<5)H+9r?RmD5 G (yv:뾁wFnmHM| D:FMa~؂_gK#F6k#'e0Ũ5"=nO~ \Hu]pw" #lYP{i iU! ~$PR^V:sy5+La_eln0Tx*$T+P}Ж'ESWgHip-.%2*j$+i$D'¢WT1W3g8{EQPʟJOx"2qx}?c`5)<O/n/ +2UI@F}jI2|xQ15?>Y1f+ ++m5 6F1+NEh}-٪TGl^T00݉5UC=U*x6WjV}k|Zb+Wz^ ҕMcf:u9όAv<겻#A-[VN珳B8ŋ`bc~4RB'lK"O}@4] 熏*=֧ϗ3]8' Tkj] 97rc:k>eM'c8@N./ Ie͢ ӬwjlfnVZ~/[/6wOqf , +wzpw{&K|7Vyc&Ǘ.FX>Y{8,B)GO,kͷ94]6O7UBgޠ;E䡪Fa@DW@)^7mu+ _6TB5zVH)#DHPU`j.tQa*Ck8/Fw>:uYm5KĪ#c;ji!W-tm# +M489n3,;tC,z.[$HqV9O鏘.xS%Ak.`D؈7Af +%GqB53#p$-LƟS@>j:M8J}v,xR"iɊԨQ*C8krK^IL7#-~0_Ҁ MV ^H&8>)yw؈E1> 뮍bDDo\ƓWW`?'-Gr@zcOJ;A#ЬggfޮD4B:u;2G7ޡ!؍Xel!rne l:7 e!-}En29[T{PQoG9ʶ p>;xz"N<Y~~Yr9=ʅqi2u7PsN|Lǯ Ο3bN-+Bp[vs!L'taAO?s'Κ-t3#(!-v tooJ̀If0<8qD}7z(Gp~EOF o#%GN2~/fkhwyˎ⟁bpM" tfLS c@N%1F_6NK*L_VYX*քɨlj?DC#?MX/c?IĎ$MͲiecZڱ/E +_p?4_B1IW[k_flĆ]̅ +v鈵OGlvX;DC#))"'/ۙR5q}4;-ڙcM׾4#iL/4ڗ+/L+&t +w65=M)=T/2wEx3#³*k_&^&k_q3b-׼Ճ(#i@cG翙îM8l4^a>5s]ۢIbYG +2^+௽)]ix]_w^~0]˒C_RR#@)=>R_z)| PWId$2_3ǕlҞӛ]}@%ݕ|jvR _l!w6ˢu=7.Op"Y_w!hZM U!%I-wPٵMjr-ӳW1qTqma9="2YFHoj,~ 7z:eT,2gњW/"AJAJo,XqtJRB9Maٲ]wRq91gK9TTu ϊkE}^ڏjm/˄ۯ))>6юXlg3nVJ跌~wnʞm\8T"ԂUX}?/96t|"#xf(a-$i$kG?[*[++˿s~KKw3xe8S.6\h ʴnmc@}NMjlA6wZV2]dҬAC16+aHcYPp1$.7=V.t@!e3kx?P:UcʛW])N +;UBaq8>r<p7ٻRiXb8,MžqXN GAS)3OE$Sݭgpru8B6% )zvگ|8 X9GӧGHŽvY{#{L1{a gK;ád aF3V;9]M;/dN|^^dk2\e&6lsA[Π-+okl/JK&kGtKcώ^z˶\-_Znx/>g>Ȳ?Dfxǜ &Q\ýv oU ejoH[֛ka+>^sW8-g*:HgXB6l4@9"+TdZu찃Af; ˍL~ƞf3h ;-l6]p}q8;rHg&:`ZԸn(wYoObg7m!6شI%ĥZ:802.&\%m./ePZqwk鋧ݴr#u=Z J Ծ ͢pƆՠh1$^6 Y +:]v#dՠpG|yf&+ԼJ뱎(I;jjEAtq\HTAF3)_OUR>1L}Ẍ,ܣlrQ}F +5z҃y)l.֐3kOWOd}y [^ Gwf"IdJ@nEjLX8 a܄qć m\^ME=kA&q}xy?ͩ:򏱜jtg;,RvQ +]kW7PDGeVwYA-/TJ{/c[wIa>N=ug*{(N>d2][D{(!f"o|Fch#)j5ލTC{3vӔy?P?7'ϫ?="xƁq0%A|4fͥFN5xU}UWԩFvNftnq=Cn;(=0U[C'xm@Gn,9wP',r?:AZyӕW Ǔ=%-ƐftK|,R]½%@oVTعw> + +cߐTz2OTF +T?& 茩H@o9F +]qSa8𢧙yA<{9[ݐy3Sxg~b$cAp^QK@@; +^~9ݿFEH13Nc@f2R dD-p5hVtfFW}_vY?;N+at6Ę(z8IrTy܉?v5CYuAf*zYNΛj%.A.̅:p/ti[KQ6(7:KiV3鷣Tl>fQ"n]+u]ˇuu%߈ѽ2E>}-ǜ9gF0 gHO }|];^&~%ЫD n>, 5PClu^,|M0Uߛ}_\I'ߠs{~jS]2kFOu3mzK/4FE=?.Ҳ(Z7` /6}4yXK̺_wXŭ|?b.)'Lq:O1C0vOq-q~jD +G x:H~'<NASObTS៧ױ_ձ;YǃT㹮T)=;&߄ɣ_;vx"'b +O8 &fKatQTxx~V$[Gfx%8ϱ%UɪP'<@)>;ȎXEƁYDI?sيłF ,Aeh]IcKtP1 qZI!a0WKUݳ z*sO&UUmwS{dE!>1btݺPGN"MŹajs2Y!I Z^7̕ qxSfM^Z@NyNηA˹e+h8j +`/u4{$yنQ娢3 5D;k.V.!MIepQ> UeTJ׬,_YTUT.O~16`'eQFέ~10AX{%~v~؊謜Q|>5 *egBo:t? ;=gFH w/z +f/t8[(SvhΦGr0# A =&=#jD{|Isw86?:he{emzsSb[9|EYpk;1Hr€.Z=ɜWlȇ +&:լ)ʱ`yaػofޝx r·|$_V&<[/.l>Ol +pٶ1vFHEk eԝ6U:uhߠoTκ Fie0O}=u^yzqAgp ޝ%o ?rzjҎ:Dbuһ- = khit"X)W9ɭx8OBA4XMds,APhI/RV I@J~8 r MC1%c)ѬV]fc u+ֱV/ELZXyB~fkآ1Cz @  M|Q ~0 T5YV-:VZa$~4K'[ϧoڈ#@'Ne(J(mB~4Ȩ%K*`\+"ځiCĜ14M ~Pa:'@ Ω1Ӕ|tN:~5uG~0 fabdLa0`N?W xf;a]w?uI޽b2k.Uu̻{z$r@dEl3hcPgcLʷOHqvX\ ֜&p +͒9kx';w]|T.8 qN\šWOHmPxwv?ǘF=xNx;78p{^(a}x\qxq ;7҂?si +>Uʂ7#&)W\7&)?t&+LV^qS&)W箼=~7,Mbi]Ppg#Hh\{ J uQi_yaaIg~4 4%c[}n͎?H=Rxf?>Ik>P7LfCc{m!4jAUϨ2OorU9iw#}ۍ.,_uP++#CLR(\Go{+п +}JBaGHvDy<.oU[g ,ZK*;DŽtNd"NȳS·_z4|'A@kg.[Sy;"}0Y;d\НX#0zpZNkbNk|C/bq Yn݇[=r +MMjyڎMw,giQcHs6CGgg6,dzN/ +EƢIiǬbwt9χSI*2J6Y%t=qۥ]9Yo' ZM:$\ZӀ-;%\j8S<;@퐾8kmz1/͎9HV6NjƋlk[k7Hɵu)kBy.czǕB߰ma݇^ syV9N`*D>T"@iFp NoSӰ7BsU[71=]s˓ޢ{?aFu9'5.Vu5լɪ8B/kU.cA5%sZMΉm$1NZS!B'tڀ4I¹;\ ֥g~`_f"~Pb &ӹq׬}%ѝŴĵtZ׶D81+*k_'z/eS)_LݮR*'UrҖ*uN hAK2zv!dVQ]^"c}e!G͞I:]!oׅy0E ,8" !脹 AF ӅgH?t!sWM@@4޷;174(R7;u 7O0<`1Vq`v8 z2؂ژMP&3!*yd^Cyʌ.pGqS)nT(9 Q?l,!|̲]vqVto2Dߩ"ra6?^|[ZA[1d&]+nSPifdZ}7-e l](S{wAUY](=$OZ*W)ä~;͏a͞m(j)%z\|ťNxX`kWG.Q\C?EOy~Edo(:K4]U>h/JxQQN0$݁g,bt'Φϓ7`Bg/UÿtNBda6 άhdh}d|"tX߃t2;g6y4~ %uۓ01/zD'& N] +̰lEf#s?!S{V5;'yh-Pz/)KsAʄE*͹ʐ;\&R Z\9$.TiȓM}Y^K,R[Iɦn$F'H#  RƁS9wz`ЋBRVQծKA4&rF7{#tfvŰ:GwAnj{֥Vw]-c옚LIcҔuDXvw"Xvn2䤅CHIO&˩p9w]ܞRҿ3ʒ2hҌW#ץpu& j&4EՓar$jjpurb 1DڠX4,7S<`Q# +[@ M8i?iQX)&֪)yVYzZFX|4z Z6HDH!6Kjq#QdwpgA`pw$K}6ڞ/ɶlMki +e(ls)9gQ~Ќx./ZŦxUUvS3>Qcktl皂 BOf(Ŭ,$qu e)f6tEGr3'r&͹!N9䋃K>f)90HR+RJ}økJ-wFkѣiKEDzʖB_-< %p&Sf%<|'8Dݧe催ZBt;4VI]3- yr's9h]tbI`ӄޱ +Ќv{7!}Yk${&3;E(9KK誺YzlQT:an$ӹkvft,w8h٭-6![W\[N.%gh5)kJ%r[&#EoHmђKYX*VV20g9U"<`@*$ȳf\ ,>u;Ԣ +8ѩrkƮ5ݣfG#o>ϞAjrMn``rUFєӀk^B*2mK bX܂4n-8rc"9 tftN_ Rrb~ +3M#fDQLmfcH\IB@{m@;E-Dt4h*5dmM@w+>V3-inůdsz- +d=%:q0AKMR`XmH%L!y* G@1Y3Pg_kڤ'/>cb';61lB1mYb3Q\{x8bZ@r&&$(ާPzB +ŻS(ޝ()Kxu;Wg~Q:8nx-xBˢ$^k3P\DSY(~5wroV(ޔPܬPLjդ(nP< )=:eS +;(|U(^A(^;7:?H(~Pvr+?8!&@jP\bc>Bq} +fxՠ efE`3 +Ƶ$!66!A\j@N   +r{@ ^Nnp;o+,+@¿V!oP3oJǏI!MΦGp=]$Fi3xMpŀZ. ,Պ`AFO-5.t`e +F֙JJƲ-Պ)d2R!3$SGBi7U؅VNNUۃI/FK'-i?iO\.O:=#=1i +0\32-i^cF %[Kb}@KT[Iȯ`OH'LlRx)/1 6peXbb0TJR:(6&U\hP: je(h|v^%;iq's,踇}8|X=&sFt :=:=DSǢN$ԡmSg E{Ҩsj1iJ=;&Uiz4*%=Lqzi=q>qqN +AvHPޗ0K72ʥ88Gj'0҇T3!Y^Ey*AKE\NP PDz,L V)@65բm+#Z,a{+_B88 +Mx>P0 f>Yg0kd'9oXXۥYF|(o0v *@D;ɦC,ԛ+ :jְ+U^jܫSv.)jC5RhiJ>v'_OqjSm2-v"ڜڢZFÔ7;v:{ \2;;?vZXKq3kUEE+W9m /H  >0QK2$$'\MdI[cWb;.͸G MA[g6O|?Pw|W)#&M\9M13.sxRA>ƘUhJʅ, %bP(>8 =⬤CHnCƒxL +3-Tb&)fRaILLGf9V)P1p2f ٤I}#ti[a'?9(tuH$EYR$zD#dBs=FE(Rnt&!`8,2ŵ|AI{(dP[`@ٚOkK9 +P-.x Qȃz@WHXB):.bY+0Y6Ȅ ̹`b3ҏ_Mį/iyu>QaH˜TRAJД~_s5}'*TU^ c V" i W29X)>^oSŋ,E6Ln/|An1ڃkO7:[{/ 4%hD) r#)O9YlSÄJzhhDRf* O:e JZӺ5-뤤'%mÄ[q|LWفC8t +BtTjg+Y\g⼙SݚZM-JhjOZ/D<2;c}a,jˆ(( Qu$\qʹF42Z̪9^FW0Xq;piM:ʟ&};$O" #uT3 F8ptJVWqY;MYb_:CLXcϗN̯ZJPɉߙ; +f7˙YMRV2#(B%`1I|LFe|Fgn|ߪtNV~_U5G#/cbS҅4%zrZwP;mQs 45Mhr?Zr vKn=gI&.?lG_{*Ю'Ɨ_Y_Ȼ._'T͡ldžJ͝ʌw53o;$IO@2[ǕPMM#rkbf$uP%?Y6'!b\IK:QNPtԉ|>YE~?ēywC~\j%K%A*ݫ'̂ +I)8Ў-Pb3tN@ډH<*)4OrMuX=ięK謸 rnJ'Ϳdi@ruOg׻Fջ&#S3G2h~*Ɋ-WŖ'.RjUlu[U||ϟN={8fp? bS&;O (26}xwwSǫX hXݷ&8mZ*~WL  O5tnzPIJL_vS!ZލKKJ'xU [so/q#r3w +SƟ!k܇G׎9et +, 1W Q 1o:[/yuSwFOh4+o]yt?%y0<[o;&ry7ɺ4'| +c߭6wCݩRw/u9h69gf >4] |=woUJG\ЉTS7,tjct_bjd'*qLdkoE/0m٨S}O/ tqO6>%|;?Nt~&nlG`7 v[gx~Eru!^*,;:YfKi?iin#{XbKq N%6H-[eIoj]R5+٠KPa\ty.:q8g$KB6Jm"&1Mv#ժ{k[lHY˿\^mZ H!lF5mSlۀJ@NAJOKNHTbĜ^Y-8)8jc;sESܻ1yGyXI}*mm@yi|; +{y6r*1>k^ζ¿ZHץ4ru5@B \G pu]<2'j\eUF5t2?zC4j^>_L3rKP,AJ7z]}>rROGj˒׿r*1w6Pĥ50LGp1n3?Nv=}?3isxnEK@ȊtŗVqf¸-ukX@~iLC}X+cFwk[KG7-ŷ^r"uĹ*ZgyiSF]%>FAnb/ /RzR˓(zSQ\ +$4rnf?BN%7"UR +#clYPQFY;o6o+dh, Z΋ tum tv1'4A=i~|EaBI *K_w;_a^ K- WkJ94A + F u;dY^&^W+M%v9Q< ְ&)oko5*󨣢r|1w>4*g1Q .R Y ''5! VdZ v 5z=bWAu&n[j= yטNH,G5IȾy02i0 0~[! z.e6֔o@}ɌrGJNFFj$bP&+ߡה6jV쏖SxYmaY!B4X(#+!v.u.珤-gSbnZkVN/S"@zkd2r9QX3_ +J0eE+`Ʋ%7w YT&+ +fkqW'qr iA>$#VH κ5f<.Oqѓs;sf(77.)ƃ.Vlj򙹯+QncŸq!yx.b1-u;Wj} УSlo3 Oۣґ EsUifp 5Z}tH#N΍ X?&p7FevLO5snUZdFx@<7RXEn 7/`w /c'N]ŵ F4|sLoD|oޅ6!Up;qT ՘ѭ$.d0)mm+>9%WkշY/ +?pbHd,-+Pz.z=B ׌h>1{*_M1Y pf Iܥ( RgUYϼlŷF6h`=+DSf!"Ţhb-e0Y]6"ےo;o†o䫲J0-+yܑ&8)i_ī$ɭ@+(wyaRA+"Hfk ju$^< ܓ~&fi @R>a c՛c|;{qƨ{L8Wdr7.36|=ԡJ谦ޕM2͍]xщQ76 D0D"8 @3Vևob_9(Ջ8l=@64{&vo `;5 +lA%bC!{?</P҄/}Б8})1xk'Ay|u)KS.@//@}}>'d*JT' Jq*CYwQ iq +3;ÜY\FF jH+q~H*4@HWwt'aPW#d+PCb;jo|@!hAA3wX)A8 &~<uiT6^wV_*Q BXyڧ( fB 9d%?BG{;eG26 l)n`;qdz`fپj`݉A3Hhܗ[-d#+s%, Lz[@V3Sr}|%p}Ƙ;I8m-AHZhn`dZгѬfvri`Z1WusՖ`BVe픛nH}%}K `D|{<>'s^Kr7`_&. ܰ~~R<"n7|fSxF&0!Y5 Y H2Lka\Æ"N`01}V[8H0:0gJE`&3:6{UDlw52tzk5 ]GiХ&K֋LfedG9zpjak +EFy1>u!NEe/bء6a<)kQtw5mlI(a(@Jj7j WLK@^>M,|J#oHdž& T(<[p))4[x5dtgxov$s_uANn3;i\R.2'Ó̊-BmP >¤ }6,eVX֚ }c|@yb >'P#FDG ⢬\o/ =1xQPĪZd 8b޼ +U5~9@]Tf5YF#ߥUo/k^+̟!7}ɂ5SrRWgjQ ]MCVMkBPDaUs| **־.*ˉAwۆ1\c@d刨L`U6*oK+r&R4"'4N3sRVXXcG(=(N@RN! i1A${](k*pQGn)UeL7_ܓ~AYC*ߖYĠdd-v_TY͜|e)ժneBU> JZ4iG2 IUZƬڛjBLÒN&]/ИPwn= iFm(^AңiC։P.b|V)M^6_!PNZ_o}3>s"a~U*q@-@Xn|Lngm-QB%vrR^Ɓ\.Z2yEf A9 lUMl}z{:>W n)ILY-4YF֭Ï&tvz4ͷ&sԜl'6r(MoQ#߂ui*H[=br_p8fWh >_0=u4 Tw_KW1Ln<5xMGOGy>M\IB.S,GV.?%gHVo49"/Vo,<0uS-š:nsgĆ:VyVĀpubFΓb=% V#)? /4G4h5rH1~]/*#E*6]aH@ũp7?R$xb9"OY"Yi?jtr +;u;9?(?Cn&!U'L6&EF_*+BYX]x't?oAp__~InHohf& f]躀t]HיlՔD2#%lMdlrEvW 2bAC`#RL0QL!<<{yl)*uW;ʜ)H r6mgiRluCg| 1ʍ#I,b^sM'&ORlal &z>*==X(pܴy@Oߴ]X LD^ sz^[CQI]o[<"d5f‹p9jRvhځ,X_0lVZm FXD=ɭJ_.N5´*KqǀmÅ?50B,~u˙ r (ըz#1+z߸Zz>p**]y`G@mi/lN*?.dmSvy!/;ʯ+-{-O¸pb^}{ЈÙ\ + +`{M J-RL#RNBp5VnDo|4s8@*Nu^j^6EpM8DgZi:.˸z>cܛh^"N +syyʍކ\Zi΋3;YUbVd'vX_EC:v|lvSbǩVXuG]q^X 5dW8k"uB2&ε'p{#qWsaEi.+ >*o {͝xa#&*GwyCfiz3ln  nHQ`v:\tZ2ǭfݚ SNӁώj5⺣_)n]j{࢑H:cϸxgX9.b2%7KA0n0; }WMѽ?QnQȼ;mdTN!!ܶad z?A ~v"~v1wKĶYM4j;ۛ +3LZG FVY9l{3ߎ"N^]ZPI' ˝@`3Knzj˺Th4 w,|S'L^l>kNX;2³!ٰHO(s^e=bTX?δ͵&b!p/*C(Oa՘>a*dɍl$@23 mkXϧf~g4$k?)%i#]p!smf&{a/m)Z_0Wsʐʹ s bbV ڋ+ ~#L4-0|Rg l,PIE)1XEJn:YRD5HM 87ӭ)ɋmśb}ڻϴ9NןVJkܵLq[k?KbF2+jD;x@;mt` \F'7ځPTar C9O@)mf@4D'HxV6(s +CAB%'(qZ];?VdFW<,/z(>M5#j4JM%㣤EQXe#-yѶ#n=ɽFrpq:z^@sʫD]:EGGDZ(ONQg eD0rߑ+cc7F=S 3q ~"{sVC?7˝I _w, Efh[xlԂsTn EEd&"R zie:DUy)a!ί}%U5YR}vS-!Ɖ/,rkډ^-}z=9GH+/t &6~`loӅSR` +?b_{ DПo?th,nk]1?S7Nne'4q5qW,,Dz'g\{s!CYTqp^d"(^?RUY{G l|4~k׀oK^A%$OR<>oT +৯:xԿ@{Lܖc-p xX@Wg ;Y +"c?RDjԨYr3r1Z]u3~U+OU`w-Xt`;ˢQɔK*/q**ckmo +컴/mH!+`CXgGQP +s-.I׋N0$g5._M44 G-w?`]V./AG' xhջZ.X 9Y2Wi/(7_S,_sOAx1em! a: gN8IQL&Թ~ +60:?DY[e> +]C(<oѢw(H7;gzovC: lWO\s<9i4t{0Ė}ĘP<#Ӭ67J3d!q,ET˛ Pޯ~x%*QrĘWœ]Ist\ p󢚤RQ^:g $90yBqik8 rtC=/sW7sOU1+DG#G`"!ocݺӗ֚6(vwy]"2~dWLK) y S??5b 51uM4bV4 +ج D&vgխ1#xpҨ7j?gC:ʁN؇51I;E]1EȎLAvN6{o +\$Vn\m mm5PvP^ls;P1mr_oabHi2>D[j۸^-n~/Q qS7}}8/r;B5 .BoWlӚ,~=Zf'ħ.r'uC2jMz~w|=+DMoo ~xm1sq,$ӡ0C XYO + 1_`7'zl +*3M \ 2P3-I+qWKT\r'+{Qp:.Gҡ7K.]*izBmbQz=ƞ.][Vȧ-o+$`[J-YmWmVc_%sGpAmWVKwUƛbu5B^qi_Z.|#fm.X ]O6`sO*KJlrRy6 xxm(]"k +l.E0V(.EɛEH5iQЩybo^)]@CZ4o0^Rr6zL8-N +] +zB < BS;9$A:[#4 @N~ɿWIZq:#9ЧBc0٥R`0@𣏕9r#iFd7.M\>:jR#/pK)=< @O@Fz"X`E،kqy0;yw)Qjά:ey6~yj cT+7N m +I9[ *W7chiFil6|14_ON+Y8\hE}E(suj^^iw Imy@P:@iiތ:1ЃNo;d"- (Ljc F0[•mʂ'g +\xwX1/c=.7? 2_mD +ݒ{\1? _]ok TyZ]*0XԄ Vn W\h@ ڬ軴d; i&U 59TsNWޏuYbKD1 5zEnTHR*JxU,bJFË +XQ ,Wh p\ B$5Uް+*PkhیZQJr9/&"Iw#%ZO7FuxB7, + +Nůᎎ;vUySCmN^ѲRRiOZ*C (KXW8="%ċ@@Ly z +eøGqN?ߗj G~D  n~4k= '= 4P L_ _y9nucP-8NL^Nc`Fτrc!go*#d)ͤ%EsxNdYˀ?u]N[w>md8FMŜi=&7ޏAqa8N>"t:7Ż <;Fwe"-k)n?Kϑu8nB).|m%I[Ւ+,i>!GXrg-9/Fo%+ 9n}r?μ֐q!*;ܕ,jj1fk7]XV.*K|Va R)nO[j;nO[ +wź=m=mieix(?vn TE +vazJQ(<[x", E/.dRthk,eʢEĪ +@ELUOMiCUƐ`Mh'&jBmhZ V|Ɋ]BN|~6 !\d+F}5W)/1 +#VS{3Zc't2Rfm lZVojϔ?RJiK>S~?:G-3z`4SQ a~͋Z?G 7Cdvg84?{HqkfX1"**y[;Q(?uћNv~NHN^a?ly~X/dŦ|jύ 2$o>$H=sǡv1rcDGgRcT +G}]<>2r)#+sSA?(2EPnO~d`Aa |4|a,0r43aM2Acm&H(,ylE8enQrS8#b^VKү{,cNu^3@ôK{- t,xСξ%qDk"Pjm2 PL %6$/NNurIꋈׁX[.<b31]2H.keqh4l%|P(e@sXKg%J!'3OģϿ i4㒰c|@ tR['=>iV|H4{132}ʯ3Ayշ?z2, 60-=k55I}So*Ox)᜚&n^Dϴ'NtFʃnLhKk 'Pchu=zFnB_5wXw6D5Qd#>Rˡo*AS>h>>h>>hf鑒D?\_k~3_fk9vػRڇd;ssxނ T.4E:jp4<#aۓiHߓO7>%S qbBώ3ĠSW+r2%}gvgIljfNy G_@<͋juH) TX}Fx/p{ɄjfUB)Y.[qeua+l\ U2]Di˔:s4]lg 3Z}T9'njdZ;O@y2-L 7]IVeKlfnp^h۹c_V +eWPWzF7ὂ30"Ů:>fZ?S<^^`> q0jy:?o ;-tSao&Z q۱A q<<*qLkH7cd܏6ƭAx SՏ%\'4`Gb +Ld|?hRݖ-hSc>Κy5qSyR20\Ty[w0s1^]0dBJ8HJ& y;02Z +Az8 +;dQ7q;4DT)T< MACѴ CMί}Ubu2eQ6Ѩv}Ȼ41{7ɀ|+wQa$.NGe=\m h.2UBXfbUYŰq:WBeso,# tSP2>I q9|88" +Hϧ{>C#LniD-JJ3 +`q}(dnDԀH<%w!V3S Gtŋq*R瘸TRE**\L`ݢ@KѿG3O +4,N1?BSEZ2fmЈ|/r};b e&Viz&Pf0+(z3#CZRf+ ۹#1- ++f?McInD77Ƶߤ +eJ圚'qswv"XuG:5CM\u[_M6Bhl8"0&[SANw/`GIވ<_N}6o/ b"TWuaY|NS/ҏjCdh>'q24ߗɈqʦ!}nP +iāɉ?ͬPmU ^Ӳ 7t&3ߊ +7ɟ V9NNk3g%rIkAnQ84Km>Wnx$&{>mf83sq +6/J ^C&`q T}nTc|(yƫ)I3-UsaQ` u܈X>'lǘ]ܶO,F/ffoV >PVlݑ4(0Vɾ\mT@(1 9Kl_;ܾ[1"#TɬTl,h}Y@3pIj1>9\ݗ{onlbfNc5TF݌gG_?( +Vv=y/ЎHr8 Y[/ӺV?ލ.G'JQf=~1뀁ǛJ'͍v5 OFW|y{o>\ݬ >u(uVOZʓWp e/k}5F bs VPU{]nI}/ m|'?g}ǗsqX-5[3Wهtه' aG פ89ѝ4{feB+qԇ4/Wq_H6Ce eJA/cDcb>D"L),ٺ*'Cœq޸#?Log*cKhsCK.twfG x|}{YQjGz~ \\ඡMbB37_8۪x% m ߮/h1"mVbs/RaҬ*up7dЗ?#~%~%wgax%|;pf-%}ta s_EC|˰[|Cg=!7!fK#ۏnV ֕mζ'K0\}܇n -Nrp/|R'cRҧ2#kF+q :L^:&G)z ?C߮bfkFer\$6n}8~uap +y#HzTčr(lYyZdMY/ߣTV*aK]4'miSρ4}6bb-xf:⁽$5L^,ߥR*U)fMbɲkF.MtLs2vtg +?*&U;@d,vx Xr:IBwKN%Ǝxt4#z~ԩ||TioKOJo}#̕7j]svDg}J $Љ1h쥣c*kBc)`>M], G{64堧x\p=d2xFc0i gwQbVЌF~ߐ~R.؟o-M.O.Ht=':+ڜ݅^Z]=lN"Vo'Gئס)کҞȆit4E .})jE.-ST'pMO7nHșNnlD4~UXЯj&l ,O&mXz-B혗]>1V,Xba6S:~tecmoD[/,Nk)y 1( +DykC6L|p[ϊ)6GTk1Ƌy"E>I6U)&lNMQ,+%_@Z:-إ|W;Xi=`t###B`vv/k̬QfU >Q?F0%g~UH#L92,9TJL*qǧM_t 7_5<_[Pn'3FSƿ(j`7BaHWG{Ϻ;W$Ѡ"AĄԉ ҄b>7xiAv wQtoAtlocR3m[JfxQN\/Il^fʍNˍx=d*UF,j튐?KS3R@o[VNP@f!v؍52 3Ԣ<Y!uB. XȲ(t}*=>Wp'?Rdx<̌̆w6ᗣJiGCUV xisuhF]w -.\/gug$SzTז-gY 1ixSL \KV,#d ӌ)2>ga^?2!^U-.XUtzeOno^: +=k[ +#z#b9=FDBKUiDp."첏{+3qhqiE\zaS- C &R 12HXJ(*JMk  |i3\;a3j}fp%'&=L9AZ5gw?LsvY8#X2& ?GgjR P"eg* C?lT ,ơNR4|e'~gBdž!T D2g KL^q1n@7uYrzSŒV^*`v bP\n:=Mt*Y94Ge-ɍ?WOܵ/d6 F0-4C +-1Kυ\ sR(SV-m?ULV>GDp[coM 6DMd緇(?d`T3(nCRMiTӚVOiMjJMiHJɕWhRe&?Z]E:-`}19ܻf!W |" \0[P#.2wisO'FyX/`*Ѹy9p˙ `4bLڭd!+81I1xy P([r43rV˙D%%'OiEa huoM^V{ձIMuClEb e2 Jh4.KMiPx9oЭ'/X16D\!]_HPK4xV;3*̖sQڻ;cd۠Ě"qPjI"xkEa*jG,<\L)6=M !j:345r FnEAz2{c|3M悙apf8mL4_qȍ];$ݷC,5 rڤVNl%aɍHK(!MZ$CВt"X؂74׋|#^ 3T&բKB+l07hxλoֿ/"K_ vZ`O~1ܵ&?$YɘNV~:+%#4M@7&o Gr:D8+d5 p W%;  5PDŁ9'J_2AC÷aPLw&6XJ4c#H*C텢V NY)9l{Nri }r"Ύ +{R6AXRBv!; >ԈSvk!k5&Gvj";}-~&ڡ=jLh"J(7:@rFDoljsxje&W~; A9.̶+? W-J s^cQ]OkR#tN1/Y]F>q绀෉+Y=ƙW W cB%&byC6Q}@<:0=o{d7ZV$B=԰0ʃTVƒ&0 =P`?$kkxMkJM)Ο/OSWxe˵3':Ĕy]Ŏt|]yȾs_bN ?9x?9>%IsGnuG%t˒de C k4]$'?N(71MEr3j51]RKmtQslxdIoi ːs0>S:Bc݅*`]mնGV~Lz=*9(c nKВtB,d9ETG~6꿌^| Px̄!)ThЩG~LCKZQkԉ0eK6vkmz9A/6TG̃w_+Vm?[;]@pgj}T%kG;rvIq  TBM\xzA&uN$i5*h0[8]2?&. + +-yL2J3.z/ zK Rh+fgkg]X7jDߣ +0-XCR%FDƭ5HFt}ESg/zJu9[]`<觮2HAqiP2 Bt)8R_zLC@5)zk@)|wbqR;"BZSޝ"\Mvf'tAf>"f15vr_/̃ ``lHCL=_O @0Et\eGLi^}iĽ-ʉod\)7?n.p.t;0 ¯)BT KIcW5X͠Rh KUL|xZ*3f$`áTAJ +VB@-t$]4$7w;BKZ%TbB%S ðV6Oj( <.I5lT^YG/zg3PK54C QjhnWܺ͘V܌_5א"x%k+Y=E%k╬*>h"x־>Ը[zop,'{)x`H3/h$bC* ͮ eʥ*LErѩ~$XD%LШ[H%ސ0 xha)~ +2:斠=D%)$$Rv^Fԍ?|&:u@@`TL 8ľĵ^' +X[,Oj < `@<بӂhA{1ųI [0lGO(EbdD +$pA8 uICmE(B*Y]χ\Yb@t^РSFd.h -qA~dbVOQ)XrPXJ}"h}&`tc/8:-:R]3hrCm]0؆cA*@v4DSo]zŁX݃4 =MO ʞ j[umNUswmX],uXOצ+E1kGӁغ  i|.E8(> yBX/^8c3FeѮMtLJýW-11ZmwRQTH+tF o||0TCocdDL'ͦ|HC<,м#Zؙ$lH@{Mbj?NþFmI,~Kc b(ZW)1ffۡ.I}-XU|M̶6$sO~,x$n@{97 2嗘k X_F-ʻT^-%=5_%r0LɶFE-7V,!~v,m^2 I©XxݺK +.I4RAwR剂ӨPm%%IeKm$o0ӏ"1K4mQK4wBn3.!L_8c4_tSioUίQբtdoJ%NP (qś"݁2U,8*HqZm9 WDi7z OLu śbo2J?gk[^o:o*>?n1Iw)9#l =Hח +[Z;7>L|/ZU}Na;5_g_t^N'r2eD }l$X#\Mھ_Yo|!2f̐E*<=26\ ϝ dvWw0/3L0d1)7UyȬ)A,f;PQ/U$ЭB]V + 0|e,V_f~?_3OA*"^c;:fbq;l  Ť~əن0s@Vr'3ŜToc.7PZ(%SK+f<ӏG#{X|d^nKpF,wzLr1q2xN_xNJ~ +DACcǒm,ٿ~'SNO5I=107;zT0GN(4#QsGq8KBC$?jʌAˌ|ﰯDѯm4-iXA->?v[*#!rm"X3N'skӉDӏR蓮'oS}bܔwɩ +gf鞙?N|Hfu"w;W~L$~ u@$s5r^3[p<-kQAMo|ׇw}OV^Ϯ[yGJI)da} }6C8]ox;^vTO fi"ߜTFT0z:<~.^7']O6IlI͡i#g@jLk 鴞Q>ty=H_~7%$:C_+ŽFc۲_Eiz9/6hZӼSQyW Nn'~\Qq04ۢ?Pt'yJm,EosQ TWVQ\73lVA:^~ DVX:DHt4]҅Cs") r `*qz)oRԞ%FlyQڡ<4|M|Fr4C+ɬ%0[dɬ!YC$Hf "5D2kdɬ!Y$ ؂P9$ԑC!C-K2~eaKBRQ0SBN%Yǿ/F?dqܡ8 Q\[\Lܵ*_c+Qߏ?oH5x,7I-pM~)v?t8=%|VoSgH.~Y٨E`7y 8KIeF?jԣ2ue󑹆<=lU܀m3Gb.#=F>Ymi sL'C8y5V2ߡ515uzX;<ݙ&YiPjrĵ0?]?][޳xmd⻡dtjNFع޴5 j,|wxԈܦ&y2!;r)taȂy2HV(i̟YQ#- EtE[j,ruȌ&sMMηߌ䡜Jeػb:ybt Y)tꔄ%#NQ4!vQw@#g?]T31_OjB*Twc?UPm`AVBEyEz! 7KC^fpFZWty#؁!KU w9X[+݉6/ɛzS1?z#CRϧIl?VWEV>M +#/wгJ%;[]zcP`޿Z8JvS. ttMJ􀣾|,v7?5m:o| Sz盱?&Xx G,Ȕ|SbHu:tJRXba k;aB󖅓$lufȒm;"cp)rFr٨c8F/]* t6P2<|yJrF`pyي%aCȘI v %hiQ*,-ST ~(xM* +{2Lx%wC̉~%$jjN[Cr8 O4ʳяjj9p>z2JY+=u_I,v)w>=M IGM|aoevNs|U$lXwmM&|E_GH]Iz[xT0,xȄz%G$ -нr{ !U8Pܸ5G׶FoKڏ;%<8B[Șp *[? +96GtLMp WB\H@$Qfj@X_ez\(StR'/N -I\D{LWGȉ2ԤeҠ6'eVx6S$E盉{gT{uЊJ4:@-yRq:&\BL_3!F(SnO)ր򁣞載}ݕ(k0zD?OIXN+ HxtRgR bń2~|@qu:\2^Ҹ1ش떥w5 N?:>{)ά̈Jj/'˿%cSIDG転R,Q(&Nf Z#yLREp+No|;|BR?JT[cBPo{  ?+;QAFǒlFc#hp۸9oI}o%[On<_xO; VCVR날(01 uߥ04Fs/^O;yRSзUgf҄MIQDsMp3/L재+?V1GF>]>xV$;&>zF8.)O@z )hiU+9i{5XOV=n5'Z87NV3 dDi)`5N-`(cmN,{oYoY[s{֦N#]Є" 'ik}Ekci&00蓗نjo#(03 +wȆ{#>Ml>KK"SᓈFUɳGc^o +@rtVmRd܌N}&6v.vv%h'{S87fܯ/ڟ|H/t|/Bgv\:c]VpG dC)Ҷ±8 30~gY؇ЬSgz zW~j *~;e}Pjy< exz0[ ťH bj{gH PV_wm9x}T'-K'ǻ臓Ƨyjzxz% M+znKˉzz$)Nw~ |53?KD=Z$!8lg(Eʖ'*;ԨFe@4h`n7UGQf/ͣo) K£%h#̏~{tw^{q}R)Dxe"E{`ЬC1_LKbS;V OC.ݿq`HQ>] I퀢1["v>DmDIFcx.}kwRjhg<_+XviHM1 +~vN R{Gٝ\_^k56 J~Lyxs?xVtFtZ( +Q2v{2l|.^mۮ RRap[ qcm {ucᑛnfL~ahӐoYeVI9!T_ ˆl-sOb +X4>%ThBIO.4cR!2vv^Hh8Ǭj59zLD|^3YkDς<3f".Zib%ֽ]ftuk*'~5+~e&>8:-0^Qk1?JOѿ@7Cy_5bB~B14XKxMt-z%<'}C$|UOY=OK0 ?=ڢY\reYwzd ?)$!{B͓[cm-p&?f(O3[{$IR'CqN*űi#4=3ϊ;WGh~{wsGG~L>]? h ox ֒֒.ђ%qc1jrdZE6`B'4Gݒ,7dXH#TɈ!^JpԢ/ELJ>4kvA3\fD!uZ 7_w< r7Y#"Rq[ G=QOQ<".16a i?ժUMMQa''?1aV]`3b)jO_OE, + 5JmNEhmrqIps*PSBalfuA5a~t} (GQ +0\g_huqnx;Fvӯ4TcH0D +mAAiv5b#)[?XO +bl;5 y -pimK | +?KEozYZݴz-7.->Uf2zug6h:V;Ռ5@=&m@ ͦFJ)Hz~rzXL8\0#j7<ʶ` 证mn@cHgRX%h4ڤ[J]!o+NT9pUB<*Hy9>i?s1a5F`; ߁q-K<- Bۨc6!fs2stKv{pbEl] +4%aTf_K;? uia3߀Pu۫^Kq4Pu`*&ZX11Up~|Ӱ++8=`= jf5=NqB3 yGNp򆶤TMtFTY8&L"YzPZcy:V*N+KXXbwںmI~:&< BmAYy- b;EG>)4{t17UjbۙWF!o51f /1T!j g<W * Oi%U?Gï*gwml6#usRBFr_sG q 5m%ȹ#2סm`T#6%)m|}@wi?mM~s\#id|Ro3}oEѣt6 2)~Qf ,} +WVf&ee[aÙPnonk%?3tDٛwy Œ+eޠn-aX8mq\G새`1 fka"Nr_Hq{ ߰;(2ް-%/LΎ{j{Yfۋ(nVXfm̵j-+bޖVٸSsbd1 ۧX6% +}SVZw'lXK +w ϐK,n7Uw89<\l"5b̐*IC-FP<☕̽ܵ}ywq2MY9nPH8HWO*`NZzo&u⻰&, QUH+]M&UT0pa0Л0&,Oѻ h7 m3F'̙}$˷7Vj_FЂ;lKFGH)Ǘn(,|ikAhʂ'koz(SފFabJ) +׆cU n9d@SqxҿM!"Xz[Bi/Z4ru ~߀$bBÌ̷ˍS 9o7&cI풟:][Hv'q7BuM}->(Fu smT864VS@+#zOPjB!^fDMFvLFZ7of.2P|o84BB c[-?C#P~T\-J`.&.06@b$6@b$*kYqW \-ekm}A7J#_#6anۥNBa5'EhԚ 0C  +<&nٵFTMÐ0y_L_ g8fK:, K ;$F +U]81]øQ:4hK3W(&H򓲕2C7Cj| &f4 ߒ"iG+efz) qQD{m@6 >#oc RhuEi26dq +G}G6lln쮗?O3r5 +R>vi<J#V'm''IGNk=o t ܢ=oF5bLl9o~ sh|csV+ZPG:^..W +/Si˕q +ʵ +&<"j'웠s*i?O~ŨO}ByêpZ5ؿM7}wfJ\F#wu%I'@N]|DW?Kctx]az,ǴjFu)Bx0ѩ?,^raO%F;}Y~Y3f$(`hS:\ XB#c1GxjI.5h:_%0:ߥ!9GQ +ޅgokf5--E7 ] +LkMXBY_)EEINXm`ߤ6n](@O74~DQGM&1۠6p>4xi6ENsiZpu2oUUNTZ4]F+a)}uNʀ%y4a@,Oʆ!V;`^5יz) PrFƺ: Ra. +0.]`^Kn:(|aUmHBP$kς#q3ਚd%+]nFCJ؇!$֧.Ir!wKt=㟄 o*&)Ff_FL + k*kcV2JHP-08Y|<<}@ :[KJ_XQI!Z"=$WF(*Yiշ(n9̑ga'dsOq85  ʊe$yƆ0*6q~)݃V[!УF^ +K@uݵ*rɶgNi#5J|> +7^Q+LRۇmVث a5-)Q;oD]C/?Ն{ +xԀLR=I;Mmin _c;ڟG6.+ˡiyېC@tv HOMVq:=t"F:‚u)K +@yRfkiں>GpV5efaxt~rʍ~\@mu[Kg,f;>\P\t,snRx (Yo;d]]#\ћC>@HNIҝI{Iwt㇨ؔx4>ª,ABP} +e:aDAmWO!-^mv|Rbf +x'8X~ua0f$Տ<.ry,M 2dAM0x;?r:!7jHA2`MRh@  pzsz +B0=l}@~(}CZt8lK':EqpػҖjnq բjWIn':QxYc̶jby ؇᲏Jg=IǸp̵ۨC1.7 [N(ok-jĬVYNjwM8.8^͟5Մ#R[5" G(:*Q >/S<}5E7 ]zU鸛j `mjX6@X0Vmvk6D۰%B߫fQ0,!FŶN&ԳF_/ 3h$ XNnS}z9 p/aѴ@gu6gԹ_yjҐwᐻxcB]ܶu. ,w@aEBك9%Ƕ.嘿 EN]bvh@5}rCK\Ԃ`'4O{H9JA%PYPM^2ucǓR^Vvi;M A\6m899mǡW,%ļYv~&4U:*C.^ꓺ3Q4FqvbneAeC䉺-kԇnLz-D:B0W>fLZ ;:ZnMoXgId@z#vHK.%$F7atmʷRreoʛ61]'8R _i Pك9X>oIFD1n Wc׎MB@G8z2[Gb QK'B"63" OEI?%=9cr3{=Lzl`]Nj!^]HM:> /`7X&! Hm4:brmڷM+jնDwņ.Q`]{݅ANuwS `T0:G\IC6@FAH`!*uBQ?0aV r k`0?.4'['ϫSTe;r!]$酮{Da+^xn#jEBݟ܈Vl^t |# =<^ϔ5 T$>IsP,LYP!Hk?T-6<'#(PϑsКeEV2G?gƋXJHP=( [vԥR̨~͢#u]{q*Ġ-n9. 8:KwLռ$4YS> I]Ӵ%}a 1}na\=2P mrC{G axӸDp=`l*=;eJ` ?%nB~[:VV0Hm4]{V>PEسo gҖ}`ۉ\X/˿OrbZ忝'<)i,q_54&͂oXDϽoYR Ȥ[ +iKZM9 E^foyp@rxqo&N7`9!:,eGUKx&_q4t40 "WZjaP81QDŽ3Y$eȒTR l0>FdMmBA@&7akVmIMm[ l9]I[.b66e_%J –EIUL,:lt"p :lf&Öw8o?[fl`+6 B?rgOЫ +j9 z^X0sl*p 4fK&sX/M5cXABaUW! eoGWh|@/ܿ?tEԧћ/ 0*e-n=KKxJZBߵ0n./#ĺ>7Mqֆ'UƉZu*Ҵ0Xq̷> WA]5z*MMP6ii"_7-@e) cwq_go]iT<:7z_q o%hn[V~-&;澏וҨ^f vm#`FntmC`SU3?Lضm/i"|,+"0Ja6}5F>|rlnjM՚dud/%w9t`bl )ynm*ǹmvmW/s;Oߍ=/+|v۽6 +~=hnݙ4>;PkwmW$1!}[&!$ҮC񄄚A?wŗ 8(nѧ%1]OwΊzZ/Gj ǦޟiKPۃ,nн^hGq[VذJ6|>ULƼ}Em$,_DgҾ1F?3&!n1mRI#kir5[,q_iGgH(ƿպ\m;],kИ5XQ *!]qϲf{NG! +z@wІG$͚ts.l#Z_I\ dҪa}hFpxpNm>̎5%|&ẗ́jc#.+eb +I&av? m ciaLz>fcQ/x{^"/Hϑm7Ӽ +y5;D[;^uwire^. 4ʋM5h>KѶjCd08" RݨTC)AUaqiɄEl;[BXm;eI+E*sm;ȳߖA+1+]Blځ X[*3b#=TOa1KFZ)kD)TZ4uLNhoⶽ C;K7d핛I utC8s +O {kC6kCɡ~k4ovk>Z- }7{w6Fe؇Ec[ -̶kB'ֆ]bm؝X``PTm\p- &024bLtYɻ_=ϫtyQ$clpC _\@WNUZKh o"tDRsB(JQgu6~upQn O^%jP~=%DXW+єk42__QBBwIuBwЙ{5%[wBvTg +#̇BߥFv|AO3A4v7\!oU%|?ڶqM 4!sYCDhܘs++Vv%YjIEM\&i8w> !*ar^kܬ`Ŵx={CQ& CFMFtXuCU3Ȳ+;[K +e'(zuŸo 5kEo^!dy +n4в+LxKtoO03ߐ)7sa`|FeB-Q=m=:u hqt'C;DU M7@Ez&@ ]=x]zĦɛ{ߎ+h[;?a6XD$ nZz۵-5Yvld +|/}/}/Yߚ//e`"?/oYۣiJJ^_K+—ėxHK~HVpٟXe"2$*]xU:8iAnF}]"w.j9I.m[]5m+񫺑g"qN>@2~9BcP> E0*@νH52 9U,kgPF~MҮi7YǶo $:kG繭jkh&d n2ݴݡ۬) JGnV +K%umr؄dw95#VJB]uoOK h)`N|C!wjhKpiyȧɰXUJDLB$ +"]HdҍJ(ee +\DhԐ0ri] "2jɵId0L`J'!T8tDǹ}D%Oqir&% I(?խ<7kV2hƶhf끉ܔG>A `gW|{Ljd2N8iuhK/j^{t8iqߍ23uz +Э$񅛉NvO(_ Zv ݓ$@Uxw8锰v5{0~nBIh<=৓w#Kb̳w!zkٚO]_c0В[S jQ^Y9[} 53l15u?@bYC[A*$p ~p2; }^5b = +43d#~RS%R1|=Z<>gnZ0{r4!s$V2: F&u1o;&Ca,$H'7{5B 8w|2-g+pѤ|:ihh"Ѯ_ًV +:o nV8i!\Adu*u]:s[ A8DZ'&X]jerN`Qw;'䷶N`Qw +5E5&oIfQIbQ'ڨO}PYɣ +b¯M#)Buq +tV~ Jq}eʏ%{{9@ (tNU&}GZhUȕ?+ |=j9 AKm[*5W O8 b:m׽L:2Fw}YN!aN7t=DZah&a1$@u=,L?% N*gzf.>8O{^> ,znOvC2 +QyO젵jb&5hGZ,$cA+%`KƳL3OKԌҒ̒@_ԼV<2>)x%<4>@qXqK"=AYۡWwaCl .8O*!MH& &WLpv3x:m}eec"i4<Mj;LaӜlB~:_c2JW'ܔv#8Mg2Ne[m*:ǵ'Q7q7$xR`l If&ME[:+tFҮ%<'h qǬ޸=N9&w$EL'U?F2[iGʤxB}ZUx F2lߒ!`{slhn!zkM6ϠvCvŶ:^3lPdSBܾO:Al@qd+_#ފl.^T\RIp9G;6 e|zd`3?'=WAJ= +!77[ T5w+^ߧ +ti2ȍ)*+j^Y&uIhT8utfE.Eyޤ_j=Qr8$EGFA|?;m Gv0֫\ av6%BY?U=O'PHQ$7s;qRZʟ7|.jCr$ПMFxh;Duu#65` XԢ֞n^dڪݪ/x>Mă%ỈrOڀrӉ0ۖD pqIv4{5(4aNk;GK;ךĝޥۇ.͔N]N{h!IwSU)PԐWc1l!WI\۔dU\6FNaNHmiLmX!Nnʛ)[aLou&sȞ__׻;zi|mWc OhvU+0 bA'Cz+ jeŲ@qw*r6"uTt,Ea"4A iGV V*oi_J*I n)%>xh=dfP3='ო{$ǐOp2UR_+i\ފnh{s¤NEz0D{eoVzZ}ZXZX^n;iF>(e1< P'kշOVL'9 ;$y*s ]{cWkV1eDqF @bR%$NQFpbnj{XIH[5gO)c 1¹;ЩNFڟfu$fdBEOE-XⅢPaE),_a O%, ]lG?Xڍ&+$~Ow(f(Z.1Lb꒦\2>|-ڱyNT16;RE]ļR;nD ._E|r9P@Kw?/N'5|E9^t 7]~N;6<,: l{OHQ Kѵq\|vry]`FOKtcG3?=9>$y&wziFSࢮk/F̹Fy޷{N +3`C|x变@ns@nuާ3(Zзû3? eGdt<}|w{V~V2`5,Hr=]ċ+ub dTv%iE c;A1@V6a+dU6U|[4Y_RV i[(d@2!TљV",Ⱥ8W7* n7Ao3UkCL@Ɉ~Vir:AVg<=#'k!"^BT詪{0@* :veB*"C>+㹝gPW/wfrAt/0K"䙫r#LaحY( 4ĥ* L(jKRȼ(8K[|QX _Ob_KlhNiS>EB{;|()16 +:^<POS7ە%}d/: +| }u$3;lm؉^:_<\:K9 Oƒ HI b5K@)O;à,R,3Z::R5B4vg] 4|>M1 +i) +o=Zxp:x(*B[^Y^Ҝ \CA-A3HEow(戓z +_HgZ#؂1mײ`v`VG_,T_U72rWq'NqGD-a٫EXq5sac^1^-b=i iZ%ix=ea(MO)a@gjJgݾj5v$ا +BV +>9DYw1:v>_^.2}|1d, +SL*-BinFmՃQ-/ _S m n&iI h791Il[:xn ½[ĊJAw ؅7Tt`5&iL8&R\Tj|H67b ɺɍmwb/@ޜӀ~sBCCK/ +R, uu ٵr̵%J^q + ,,w2oc1pqEj,};EAVE:<ʔ{ >*z}/HP ]X BB$B ;l\ Sp,M=D&| G"PVL-69 iJ82C:儆AJ /J"AqX]Y@1A*^N0=7)vU߿E8o&{'ȵp&W~2QdK؆OyaYڬGvY!`z:<bZ?D&2r:!=5`&lpe;H;Gr?g"sn.HS晪ڥ 1,Va63u=>;j W-sR }H$>dXmT̔.L&*dН=ӆ )FY2ߤR'| LƁD*tw06H'%MN!M7j_s8wI;N^!?*31\KЦg: fRcVW)šFrȿb1Q jͼggQ0aIG:. +$ dOc.LW+C +K5Lr?[48d;+| IBP!Hч]B6Xt^-7aԹqC׃)5D H 98dϞ794lOkdP=joiQC_{22Pժ>p>Nn,oK艠;<5П>o 7.-D.r*zb dMx5˔k\_в$.6ܖE|kW|^`nu8buZ fo!(<7\xP__d < ړ{A$>33:nfےj{0/bo j csd: {7 +G5(xfg^.nTG…wѮT()/i*vI+[бqqvC6Dt)mN7ͤ]Șђh|vANS1(F°/i%X4,HYPaddGLv (;k@g g dSWG#ҤEb'DUN?T=Vv!;:f?l}h3h[ j={!N~՗[y;i :1ElGl ?l8凡 bYcM5˼ۍsY Dz '˳PxcgDw4k<} fhcq4;t 'ߍxuf/ILEҜ"o50* xauo}JkV- cQt(b +٫QVON!Dmg?&y +Tm1) yfةn?$KI[' 9|lCї_O>8F@&b`Cuw- +]PLbbzN!>;ZCf_xP0 pjc8@CEuzG%9cJ iLm4 k'X(CHrlwzd7&L|8$wkiwnMT4e*[zu&Ec |a@0g{μ>>.NiV;OOځoSŲKC#,X!hayAzT/,h/;DZ1lfSTUƒ܍@ ЀVRprQL8.*G{ lUгϓ \.Zy+}x89zpjq0@{zm! ̛5 'ӷ89-{lǫbp.u1EV@C ڬE~&iC{;uwp|_+g-T UJ_MmAv4KD(mM8ŴW׷TqATK ܜ^Wky2{J+Da/}*]6L67\́ak:t1zOS~'-|[CB>o2-DbZ. ߞͶvR#*Kjj2wDyEoIn6gaýWtπ?Z,/ +KXn ^Vս\{|܈4|dX+: uJJVUq$#rtI`;j|P+߼F~ ga6 +|6}iЎRXaqmA\:}yj5['*W0"Y`ǿMΣk'wc!~{ s(-Q܎@C4/uZ]+o*N9E|L̊¤|ZN"Tt/oX+ձp=XL/ŵ,/F+y5=+ 8Shb@;N"}0H+*&KgU&v:͑]nፈC"o1W|ĩ).%zI><,΁EHo$зXoN?NՕDU5a@Lo3"5Dgf \Q4WqPHY:uQWς .?kzZeN+x ++RrպY-ֹ^Fi1Ѳ' 2% O HXOdۨ [kƤ5!)VΚ`#6 TM&`%@-?p9e{e7.L e\Ծw5kxmEua.b&uyMU +JI򷕐Q~bkOEc.FP^2(#ڑ:f(0W.hr$I^c̐N&QanN64E>o[5!%7@h[?o`/UCJ0O ڂythMSæQe Uխ ՏWe7Ł.)ܝǞ'ԓIt}n=]:∆A|~zΞDoJO6&!Nf] )a&6PEޓf/RKWxb:vy56YTY{,ͭJ2sOKkmКmBĂIAZY Կ>m}vynJ3Oʚh#5a}4MDy:dM0k5A\+U(_+Uq(z[M}e;MZl;, Ԯ8[:rAҥ,\Fy[ USٹ~"Q-gg#u{ZU:d)mGBO9tS?f\ф.KT<i`6+ +z21KlG9Q$3֔1o,l3ʗ+LE/- k5}'lubժ_b.]z{M*7nVbz[`A.Y8J!!oIgm>`#(mj%÷ppd@`g*KFW +hKǹ>HgsQ:df.ʃM$enAѹLc=S8Lv,ҷgw*DCe 91osmAbt[H#4)R.rz*(>&ۆ֌@ЛH12fk^%tн[nɿ#W!Oh StDp*Qq&[Si?U!cDy;sҸ;^kҾl6oj7+ĖA@j0#+T|9k27]ZyC( I@`"Ppچx7xs_oK hSٳK}=ە/.\٭7Ұe$!٘5M%Q;׸yfT!Q~c"SʰCkE<l' FRoj5'{g8X}g},gcBԑu ʯv5Wzdwfk7̈5o-ϗ25m'&Sq9 s*iy*|S]ZDʿb>R<;X% ]2Qh`-!.OGut7+| ~]Bz>PwE}9i-1&S;3՜b7Dc[f7>֯oD=U -22ev?Zb:Ғl:Pg@I4iRSȕ{8j,W@Tar p߬vQԺ s8 ~vFSj'Imcp!*df'M Z'!w"yjܝdE7UA3u8!x`8c56KK O&3,޿Gz=j|/i"84}h2?h?l8);י8td~-gvetd} do=;9&^$MGU؟k=(pv  2d\Gċ2h%9A3ݠGf .Bۧ/31hd;u 5R +rXCu=LX4eVzI׈Vdؿ7 06qqPvJ|BWLrtFu$n +۳|Mjm,lP_6<{2?LMv״(S\13XnL ֹ4h315w 䁻 i/]4>]WS'9p"2cR~8 {l/cD,kՙ9h9NTMfM' NlqI'lnZMҎk77`RB![HZ~>XGB%'g~xoye f| )ghɬE..¨\:\eZ]3çF%]n95QhozfP&5972G:[ s@xC;/ck4 ǖKF]kGbrL + H;(\+?'"\L>ZDT mB㲕M97H/.%\@1kүO閙nH࿝aN濝W_s=c}Y_;%`RB9(?SpC fJ{WOOyTiQe}] IIPDune,Gq=4kخd \噌@ǹy|$9_8et iUx)ڤ<~Sq<>=)?a4qAw]3ƻ~e 3_Nϫ + _9ةS3ätDNͲP=RLI,DLy};!Kaw(Q8潨y(0U 2W :Bvw/JsԚe ?},UyI;^:kUlZzS/JM1zyCTt†ƌAO 8~rt^^+3H8N|ʐ ; bis@4 gYNWK5 F/XtCh :' B0[NQ\7 +GG^PɝK$A>s̵@=dMih.7cp:^:V\̦ ,D%."#j0?I%mhٻq1XXVr,p/0ҫtLI;Y@yyp6M<9Ks90pGoǏ 8F?G#_/uQlKu }uhm IeCY@{n]{hcȟY^8 [xt Q 4K`FEXD.yKf^vkc Q>NZTiOccG #^"GiMC Kc}Fj3*@ +Z3R!uUL M&3F]A;2FJ^T_R:Ѕ; &,u6ӄ-& j.aR-,Sy>('^~Yi0+([0m rl: j#pOal"y9҃w3jOZ6CmNisdk`F!:{S/l2m/9r3O[ಃ9`YQm_3[U_DMh2I_$iWc~Cy:Oˆ$"l9pƐ9_9zBv'j~;5m1[ޑߓw+Ŷ[F8h>O@*"&&o̡!q_ɐ[E3!guѴq|Wd;FϩGO+ %A^'oѡ _2;fD(ƏCI H'a1xwdbܨ0.wG<\֡:3AYyG:('±#"!!;&}7S#JZj4㼬a3ܛ/vRHOR:CU:hcuj1JE*/^e\X)-p8F(ntUqj(g/2{#ѽGwˌ>f؝|דƶ\̿w-[t7ݱ˶ol9v}mϛ4 챯͛=6sJe{l*i-K8g\/[cC*;"==S-+3M G3`mD3̰k02,WJ[T{X*hѩ;/'gFe%ei] 49=OwW _jvx%m1z2/@,׵ N@F6>. ;@H'kW]z/e>/Wvٟ=}vdۓgjOϞo}<^?iY8^ض%O = /4_nÏ~0  [xq0mI4 5R& ;9/+nPP4 2´0 _;<¡|b15O:%΄ Y3>HE(n Y~d@$ZlF2 3H6ST'ff)f0d. Y>d5AID{ bE:A"{_ bw}tG_}|>y0Kr.bE b~<6a-;9b=$6uݴ:^RFnE]h%T勲 +J nRg݌~ 7nJlF{aca;[AׁpVxljRgԮu6#Ƣpy elL.b.(@-6Po񛫠Y˛. +7ޗ2J4DJ5ImQZY- #iQGw t}lbKy5FXFH{ht _ceD(\l3¦̈` ht;ބE@HWM}oabD5i߽ü˲,ћmT^-]\LUʘ@FvE E(znW{y=dTqP$͑0zُ! 2-.X}1OPj86w֌6[6308H?jb݉c1Hq}??'c}¯79ɍ^|2/}$^}x)_m~Ky^ʩS;M8!,^ʞ?fWs\Q M_ ͌sť csgm-tLkT85nHn׷]_cZwtƷgO^^|5fH$5$5^$ I| }7.#+WƝsjZBh3O|ρ5-=#ӀBϘŇ8 eJeç4zѹ3LU/\0Y%11Rg͙l`[ME īE7}]sZХ*j$S&)hC+٩Xv) +'οg Iq3jTR'vIZN[Mvy(K~;XȮ@nSWS1ny0ϑ '|9 r@ϳ9Z{amQhԌn~Yr,9ܔ%Ȓc琚qC%˒sI˒dɒsM`Go[@jalMs*@r˙?Ȗ. q^G(~ +bK7,TPudof|W\+ >싮R 6a x9X@$o{F G #(ܰױ$*uZU䤼Zqڍ:ɗa[wWit;-}$tt:*F~uQ Ljc0`U̹(y4Adt&f5Z&ɸ$!>(h&*zrdJ&W)nxνd|r8lMe)W ģ_h;+w8mTWoBNhhFdֹ.@逺gt~jv6vn|ARxwK|v|$~wIJvۢ{5"Z1I)53 ks(Z/>&bn)`E6=qթ:ƔB_aJ aymLPNFT[Q>JÞa&E`O"2FX.MH:~捍dxaP_;U7I=ae1/%VN-;cobFo;m8 +ug(`D|i`EAy()֓y +6K:Q\qHrʫlr JIٵInSy)~KXMs-p;p⍨L8G]{w:Q)h$ Sj$Wr}cyV᎛_U+b=EO]CYxKnpi!Fy8) z~ȒMcnWX}-IXnüٽ GnEΣ@P \}ڧm]^+c} h$lW3J+#oH+wwkp++X?#F(7ȝR6EGrkMnJ:ě}'=]!\WC-ߣca+_tU~}|ޤunP-xGJ:/>xഌ;#Ág3|^6} k;(`9hiKC|a ?/Il?e8˗&xѯC R5sx>WA6\O\U+PQY(z]o(NEᗡW 8 ;FsjinM[1>.`V@-/r?k)Lgh#'F[鲬_qw;@L+F͇P @gmm1L]w{=:P*O+}N0~bkIlʿ%/+2k6 +U>݀ *TRAw Ѐ? ,ko.ZEWSsQskYW(>JF]Hӯ76y&>>` ш3 8U⚞FGG 0iexte!4NVtNї+;آ@]IJnHn'AQ&sr%0FN[A_cŽyXAkp5Ygxu˙}(ƬΛ<'fu^**=:^Tt`Y`S+[g~Goʡ|x48 VQGև:gBm/֚@ Ӿ D>?" 9 DNB4E_ieS "EwO> "{ًI^ZH1:aHqĎkNBǵ|5 RK6)k]tӺ%Gꢿ RVyu0sL{2N= it[E 3ٱ-itku?kr (P$`EEVڞ'2kPNO 1ӂd8&YHjEb)V$[>;s΢o ņ?@~*:_9Cg58}N}Ir J9 +x=;ո@DTM#OߑܧHw$;}}#i|ڇ\}8\ -Vohݒ˚9s~9[MO䱕  tFVrwy#@*qU'o %E y떊ΡU /n 0=H/ }<^/-%Pbv(ZPgm m9M`J'+N*꟎/I@eC})^9vM1vͧ)`*ٔ^ +0 .}œaD'" ֋. +r4:z%vG˽kiI1?f˩٠[sH!حorgoZ\~S"\am |]g-I-> +NxV*K&8^G1x~Wz g`A˞ԦA;&z1:x"ʮeeU? 9N*t}<I\.OE&xj| K#K,T?ɵ\~cfG"K{׋on; +k&n@ɈgkۗO NZe8r%h=w8`Bumby+RS7Rlġ"sw oͣ<^@-I|35.dň"f#1nxtX|L6/Fpu=ZvhbꦘamL>?pܒ0 + +Y<ڍNŒS%=UzIS< &zUţ4\k rh#rG'yqsXtT ~~ j=Up-,AKPv ϨT6JlOz?% Bp Ghv wf- 3N 0iŇٛ=@B@Qy*c MLR8_i` /Z/g'@gƿDJ! [/LOſxv7_< bCP<7ų_roςȅt3D2[['>W32~f?៨_០_</●lO +I!ZD0?+3?3b|¦ +XbF}@I&'@0g c2 3^d,@ZC1+>B`OD W1Dcǘc˄T|eG}uAϷ@+Dr@dlfcX|st=Fe\s!FHjiyQxUz"GvQbn+],'{pq} b<߯m'^ʦ&"FX0=\)pyfD16Us>=e6r|c^`~ 1}3TTN$Go~Bbw7Bbgpb'^W$,,DoK I 7wj =җBKr'$!)%<0} LWJJ}$j$U]5R $)>8,Rq&aA%X|dk?'f,tP֎[^[>hgXΈSxJ?Bx46XrVEx=?9%Kzӽ&?ݜ-N!A̢eڰU>ҚVZC6|ߤ}'--nr?.Ӗ~vom,&-ppcg?.$e! ⁏QE3-)z_=z_CPfoQ84QpzkPJSCq N6iIQgACLS> #uh=)#?ﵷ&Җ$ ˦qu,Oa>a5bTwB ThFbyydx@ifx6죢1fx}(je)m%2)bs =_=_.Bt!zWPkeWM[R>i?~(yoT-egڏ+4j+A t0q2>ZC@wzj[MIg]Q38sbC+8WO%)"gGpX1Btւ8%gᅛc…;n +䝼[5jˁ?yΌ*x Z.kx:$h/ bٻb#"0\G^F$9+qqIgEw3UzIϱYGkL8azb-K nLä xI#Nocłl#JBizY7Om&"X 7*poauCpnZfS]m^^ je kh-$QVvV^d2w?͌ל‡,_u%e&vJV}umXdu#AhtEDv}fq]'̎nԄ]9^K7mC/E3v0E.a'~jHBGK8N5R;@NB/V%JiMvڽ:}G&1 xL\دqhǯ4-[MG%Ia]Wi3g2'֞бI wf%׻rV#- ®f\^^Qz [5v5V1 X^6nCˑqkpJsve*,P뗌N8 V,?=l&|?@!TwkoWvx3/e)-` [5&brׇqjخLفxUx֓8پ +_vYg6[UVmgyͻ[C>di+*5wB!A:Ujü>LT UsEW# g9xB9 {eۄ<NG3dJOY'KWwj&8|g7~ۓDi\VC{|lTsnw;䉭Nݪ؛j{#{KNӣ]{A|ުpNI0KJ_Dt>+eUX3AoǛt^8ap]uXB#_]u9E~*I+W/1B+oӨOZB_ӆlExAg\E!52CmZܤݤz7鼛Ɨֳ +lsi{* >鋜'є9K³3^3~oo?! p.lwɛ57i0wVmA^}ۍԳN ??_߼ѿR,2\M}Q(tTF|)!hCdyK^_[՟!g~;a7¥w\ѷ8_tVRNDwuju59;8l^\Oakp }b/ޯuq*P}}\8E:+pH{ʶh75s-u6^|wTBj7{m}kU||R8i+%D Tqssjhe|*Z9)6y h+> A<RxƮ!7Wی~7ρHsbZ$EfЩWbEQogj[*L*. AC>=R8\_>ai XTDhlnh;k2>Jmm~1d']RJHm>ǵ; 0r鎂s˹r/&N&vm:)Cr<6+O89Vbs9cLE ;(hc rb8VVb.H(|Vn4s.1ft$Y8=շ5^ߞMvm…|IdBAvLp8@ n;*׹$S})\i],yr$#6Q +fV1av 3;4KrSB'>=/=Uq=WhΪ^;ڣh;){Uz3HX1Dŝa 9l^ˣ sjŏ?3ɔƠʣG8W]ff(ڃm(!rUVORV-|u b$+ﭛw4:U1rxdkU$zp_\/ne={hDpШVyKvr@9 +F1<|cP) (A4Qf}F_l_gZOP)p]fΪ$˭^gtU_oZ>3I5s%.w^`]8 Gfe]٬hf0:y &14G'[E,]{s(co9Kӣe[ADEY6f1>A1<K-ݭʶ̼sLEȾ11$SBE>Rl5 cj:()Qus؆v=9I:3Ɩ[F3%4ދOjFB~sh|Bb| _zp߯qIsgE ¥T11T<`YK +Tul;|0Nhqk 6HIqDL>_Ln-Q[N.FGPs@*[ LX\&sfI4H vpxt;֬okh=l[fq1˔`| [9!#[{y4b*{'!P%Chw/747sKuR.E,Rp.PqR+yˠ=(9+x7C~x?zEK/`[tj +a08|1qQ96>I"^_## mVDB8Gk\$k`99bl|ː <.&d :&<ʕfwj0"WxȖV8 /x +F /-P̉R8E.\.MKq=Q$sX 8O;R"|1bIrTϷqFGRHYHjUeGmH^ u(%N.25 - ڵ)UR bi\jR%P}et-McNČ,䇾ʅglļj$aGMQk<*R9NZ=q2N We BW۪Rư_S8eSӪ;wkr#`Dx$V*&P{'t:=Mع$$ +g[6Q>ꂞ5-Ҵ UWp*,I.SU̶ww%M˗Q[Vl(S凔EqksKVy!k^ٿK*Us˨5 5E#c+7NVgsuKIt&Zk\K-_,`٥Q_CFA,CSKs pV;XAIMD Ր!396n1^nl*w8 +I+A-ܪr!=  c|RHEIm +ؚS{$߃151'pn= kyS[#[gEB'ӂ\fB$м[O0|uV=wco&a' A`Y4*e2X wfh2 +\FQ_nm%X0:G7JtpAC;WC<}x 4OҜ][El^F8$B5F6==#yu:?Ľx87$AS-hVlI$%VZ5.ۼRK[ Z&D |(D-mRkR(&ofwKLw `VZ;:3fBXN:@tMDז)3T0"*ՏI+jKӂ=L&Z+.8mje-(kL:&V(&Q' $b\I4k-Ui +vvDg6Udrf}f2iy*)v(`~ JչBt׻u!Ŗ)DPcg8 fQuT룕!྅:_1Z47Q:jE_%bHZZu%W՚"|x*f}lU:"*~PkpMk_u(kD-(Ч`͇q4×4 G9xMMpj6:JpI C_=>*>*˾<(˞wΓAuY.gAWOk:/ dH\Zʚ&U{E^/&LZJn&|ۛT2:O- rKp s!WDhj%=4/^ 5\;+ƞ7WcWls2Ԏ A 6&M1ٚ6&tw0۝Ɲ]܏eD܆=9g$yvS?(Um:X?,U{aUFB|]Bγz[,}9;1+x4<"QpDZAA*Q<'+`踭Jvss}@leaG*WA1} H8_‘}tzHW]@ `rO-3'*b)%`ZfDW&U.D2 שiIY Ig^0=̽w7=w@{&̽Ac\;L!@iY| ڑ/C m&;UE:},JVNIUiʭV !xsOҾFTrG9wW;[c7@;fyg CLrAO ]})y12m䶍tL6{4a`yMPix=,kcjXg`2 =)D+Lj;,T,;k&x?J`Jx|S)u|*obcsq٢rX7+X {gRVie9RA5w4IR=򪙻Fͥ'/ղomWztBQOGּ]̱5};2{vA7QFx(vVxϝ{v`7%mwٝJ?2sݱMm]рt 高g+VRkYf[y&5yVL 5R.{J厭XgCnmS=/ #6Eb-ܹ[Q3!3L؛ 鍸Zrgec +%=W$Bo*: 'Roex<="-]"]ޞ&e=8IJ{ CI/GsdIǤ5[;zdTJL}I@Քt5 +"V'BqF{aKJ~P, 6c Swe+Bjnr;zU XǩGv.jCڋC#O-7Z\=ٸ9'u +9U6qF~%cvm*Fk "PM&w"JxQ$דnPAZ q4!+'Y7`MH`a~]%( Wh#_2Qi#tH1[: @|״oMQ5ДP4]ʿ$|Vեiܵty3mpW:/6o( =a?L9͈~1r?papm.߆kx* L|!-|8.+>c{;zq_li4uoҀ<.+'2=g?'K](`0 /bs/ Iobl)f +ˁfh|yns?L! *E)Gfr~44DbU Z!3`0[틂oƊW"o8A|$^pƉqA('2AĺBcpv=xT#Э"\9N+3WSzDr H[a, gyf[xYD TL0_rZfJ( h)+Zms&{;(+$qcTlt᫗/y_'  I|iHFgy&{,{ZN۶ulyY@cxBCgb3Q]Rf + kq/ (\С̍EVŖY +^7+wR:eP̫Wfۏ<<9~[L[zPVV*uyU{.z9Y( 5 π +_@ZS䝡欷՗n u"@6c *V9NKS/WNGh + ;Zlv,nT/%[r{K`CIhgY*W.bvwhϚd= f̜5Mˍ7x[`ugC)k0כ2A<H:wL ?Hz#~˽={1 mZ~O__t' +Us ۩wUS#Z;/9%z?AwT? QtZ\r:gcFk1;P3TU8;riOu'KF'OK- ЯG+G!|T +\^ +?ejBtiZ_V>ΰ"ZYNhvNXNj|k^Tf7v~xw+JN 5i/}-Tؼ b`]R/Պڢk8 TXC7n>S[ {/ꮥL p~ +.[{q#cwgb7;Wa U;v+r&V%5AԜW:m&o?sw=j$q[i>T<= r@]\]Li?ô`ߑBg6 ڝ|x.>a+QfeeкCŵM_,R4hKYbGٿ +E;[{琴l5ݡ*aEkSh4i}/HBiӋzyӱnrݔ'bDgDh`=g0P20PMz2ċY9"~ďU?63f@ӥ{I$vIMb;dY&p-`y>3(aa6+4M/*Zp^*!%׆I^Yb!$Li35wk%<bN(S Xؕ 7$X\x "q6Li( &}H~\v,nr!^ y(7x;4 \m(w̱ WѮ#2)-W~2Npڋ4ߌ5f/OE{`{4]2TxRheMQS!_6QOx=#U߼mB:5*Ցs+$Ŝ@ ]VYj^mV}_ɚR(h;I 8Α|!c +cx5+e'Z{PBZV3EgCae~6"J`3 s2UDaǝ.l sQ$;2`cy#@3g=6Ugg]@x0sӁb8Nlh=Mk oV.9MJNJ%²g fmێw]*N1`Yf hyyM3qq @ yN0$݋.B"\XYe_Ql Zϲw0׮c>YAfc7m4;uב%l얕$r{iJfs3d3f0g2nB)634*Sjd+ N m 6}e-]ZbZq!̱ݍ/P8D;Я҂r"WHgih"+ob5](X;() MBޙ5C8LLAA^AG7-YDp|W]ͦpyޗdh}cjh깣 >;ZC=_FB!1L)vJSX+‚z:[`K +uC tڿ$AȞ =`w|sJ\>rѭ7rϙ҂`o_e4IM]Cnt#߀仙fL qZam臺\MzΦdtQyk&jn, +9}w[QYx +8ڶި{Ӣ֚N 랉e_.&6ކxN<QKdW\Yr]QQ+gr,{컉h=Pb#%zrHӈZN +-`?^W~Y'̢JҎAvCOLaz%`OEvu +Žap-nZPghCkEz jBQWImĂE j]4f?[(O%(ǒ:vcYD Ρ}̙qqbYxF pWLt +,3Rd5OV]В +-3RdD>ŋ!6^{Wv\yMi-/aay 9 +4ۺWL]Xi"j1׿Eq)Ow5opV[EdhlVu +WjgY2, AE)/ }hB^`3ƀ>F8AAQs&'ʢ?=gL9fQ.ˌd'cL]:4LvslSD9 cY, + +S10/ }!.n%91C' +XG~櫱SFɯ'ʾ:U dlM LɄQǙ"5)DDuGg*['W{o})4㑲d}WػqUqf1jjbs[͝0ɜ ŧtB ~2mߥO@G'3D*n\s#u4&f<Jh\u<|AVpV(ЁՂ3ˮGgџu~hz\ya( F( +B#,%q.@+Xua7qiwŷm*(9 Q|(fɈ0jy>6.1ceΑagαq.ٔ)Sěɦ7Es$. LaqA~$U}6R.jDrM.rȕoW)*Aba< 1fEK'+tJ-( +![EkMk}/iq)؞pR;v1'DM"ZCKГz)=L=C:Xvj+\̣`L!F \(M㕑. gG}$!ȖpE55[!NPDD3#̋H(H^:(\γj{X(ݢf^ +@^TOh#MH`IBiMY0Nb‹7APNQ 6UgBKLJT +pOgrH='lE!anxM|Sԫdd20󜩴W?1c $7 o)k@IҚSD=x- ( +UI\b\V^q` +}*0YftX#YɾfpN-iIDVFGZWtꭠ6WU1e3Fm 2]N}ފ/g u[W'QyFCo_록zhzS~v:=zGSZ7Փ|KLXol]+ ,R 7~rtL0[z uqD4*ba%^c}͓lh⇎53hf;.hf/LgQ/k-`!jTz`jXk`=d 1YFk 0k<k-Y 4i[xhu#:񭲺jLX?TXϞ<;9})y=zQ!*C+PCWUơ `+b3 PGYp|d/qъ4"^_*℁="~b*Dhsإ͌v7ضcg51/>63ߘ+#l8mGmU$Vl0ĶQlx0Vb۷Y)d۪l;*)V ǶCqqF,o-RgTĩ3:wSktiC{>=ԤPzOCCz(:#.ojF|nHN]ũwIp8u N;4cq*rˊΩĩ80O|L8[7x<b|_W[Nk O#+"W)\ R*[fUYƪӎh+ w|j mZ}e?yq2U27=0{buoW1vePVJ0R QPGѯl<L-ʵ _\x*W4~W͉H0I8?'9(~OQgFϵg6Z]BUdhޏJ - d~ +5JI&KJz=o@jjլ I`]4`%uL)كՀYw|bG ׌kofoYFY*\Q*φOƮ9:iet,‹Rl)mϱd,)ݣ_VRAL) CgMnXmVVgM15t)fNDk8wYAt/"cS ρۀQqUnte4H@>{(_E~)O>=s4UR:d :h#֡2h#T|Oc+ ;΁`TTFB!{: -j:L]L4]UJ ~ޝN>c:gǁ줼T o sF&bl@*U2U`ޙHpo'Gtg9ҌX)YZTdn\ǚN-iH ,%-xdY=R~/20L(0AJ.I3]ɠF&6.LV6Mʀdn5`h2`4؃l1`?`_3`5؍G]cq|^tXj}4>:C1/ אN M=:)ԡ7AC5A +Y_b ]yD[PڱB&m'|~ڣ~Q5vEY7wHfM6Bi("و6ſî`5`3wi5O ii5`4f1ooocΟlty.TM)x,^bBs4d :O Xwhf$rb<}5 vGT}QUȺ/ UG' “goF|\3GL4vRHĞ7%v|Sӛ{Ek5 N4OAl>a{@kjA +C3]4GN#AT't)]Si?bEALE+A^{?I{X hWRnTK#OoO߈@5O X\jkг(Z-hNWsr;ڑx-W,p۵B 4谕Z7р}[t7`*xq8A}YK12ѤDK4`4X!q>Эn:OQ,-Ȯqd&)ܒeRqqݣn)B<jۆ"ME3M0ۤ`(kc._w6ƫŇ.˅̇}(xq,HS|z\xvSuBWi*7e_@R]f伇OuasDy_?9%5 ނ[bgÐhStRaP/ + +:F-J=>WtV S$!/i8e ac^(tLPeeiK_.%jJ/{29 `#TIed%16nzr=y:,̥|q*yJ!-L uHǮ`{a.;RRv8?CJ;ϏRh)_i5|/ִŚVXkZbM+_i5|/ִŚ2/S{~r,bl"eebRLb $IJelN  ~eA/{#rpfA/!b A/ zYIH/( U9m5F<"\x֊VlD?og:egn~Ƣ5 1âO iDЏ4~?~ yp,g(QU/QSeOjd%16Ѝ8FB0z`R Υ E0"~ҾAC#ꀿ`$fq,Tߟ`L W|p= GܠE ̂^OHM=>*aRrK- ECV~Z%e5EnbWZ cYie2-P35a(FJ%N?0ǒpͱn1_*`H׵_Beƶ `!!($S5Q(y ̀=j T VjFiln +kn`3 X_XM6` l{IY ؔ*4ivOl{Rm5`WjvX0`?` أ`,tUfkT6AoZ~FZ7ë?L_:/d[RV\RY +tL07 + +@A:ڏrh3{΃#o4g֜0O;Dsܗz>њg֘X!hIa}!E*4KO?+|jXh] +]WhuuSH7pL_T>L*`F[_Sz ҋ4@l 5/uX*]$\ ma:lн&Vx2|J=(sZMZTrh̗p[vMs>g pjL8hm[jEe}=Q2-$"ۦEߣZEYE:헙S^ZD*],/  lv5J&zk%Lo(+H(XG蚉NlRdto[2IfPw JkJ ^sXjazXFFZ3+oCq)^(ة֭ oͥkfSJ?QĺsLd'k |dUcJQ$hW[`bcZ1dhIe./%w@)^&,̀e=2oCuH9&&r^mZҜz +3(f2}M+Jx5.5DťSġ˔Ym $Zi W}+Qc@kzrUAU W^Ml;:vaelU7#Nf:zƑN[jprM}F%!SHpLf<7okqi|+Q3լW )VvT)4`a@nYæНP&'8^3J3 `Wq N_KxJT 'GTй~otL5aYYY +y ӆڇh5RQ#q^ ~f(hwR*r jSF5m +9WSN U -(4LDU$ktz$A ] B$CsM\S8b +O2Ǜ6#\'`|0HS7DH4_u߂)%M!k55\]3֤8?Y +NU$|^r%ʫ*W?*wVWFjG\6W-Uky[۪\2э?o{U~ +^joR4.Đ_򪀗3}ˎVG]U%$'*_WtB:|v q}sU6)|Wj.䵘(ذe8e-)[$G$'A3ղxu IBi VV'7 +ŻskpFA++.yv9nEsXg+xegt%?_(X0U_?YAierU Jr9<ͼ*0Bv.Q )(0 +`\ SpE +S5>JEavIբT _XtO(Lk1jO{-i, =foO+ ʜ.26& @*v!} |N g~k-62tb+ +T}JG+\9 ;~‚bWŅ޹Nd _#Wvh=- )~㤒k p7X/! ":>PD1p/dbܼ*B,\PH> *l1=SNiW%#jKL-BU tN&ZGKF%M-KuoOaTB?H:8 9fX_wYp]:t ty9!-)}Y囬nSCv+:( Ќxrڬ69㹏bk{S2GBa _[>|#rUfS,*ݔ|P6ʄo,c7B?sGhL\B6dtZl"NR/crw` TMٻDaE4T_`Mj)|TgkEk9:j(1aAإE.q?H\u oɺR]WYx&RjhnWlG?J}AKȾŏGЗ1_G:x#X-ƽ=d, [C͕&t8+{ M(x`L|6)8ivu>$}(-STUY]:J?Yt$úh߷7"7g O$W"7DIQMWHiMAL +At¯t1.`#,.ȋ҉᳾YE>˻"b}1 ڝ 0%HJb`ZeHLI?jK!6ީމوXmCjTX3BygW4UP,.yȊ6|y"#tRy,}W(20 Y,~*ӵzҵg +Hp7&\zz8iJ=.:^W&Qh5Zg{ W KQ:<|֗Hj#/3"W W$H8#c95i Lb`דR1΄^Wwj;YV`CL|mrWyxtsV{g|-{MN)׷פi>T}|wf#>^P`:2Ӯ_#>rp:I$&w%UivJ+WUZ^ZxՅuY[Iq.Q4+ke #/}:R4Zir JVNmFp1g?3Ǵ\х#h~6僆`Ooo_5w`ı_*RXb[-,d=^1x>>)kUQRXS.3ĥHui IGAWG߈*6XIߥ-@/bX0LrJCԤDRsaps1 + vQ+8D!8?O1G i$u8فjWP}=ԅy5aAM1Wu-TkF9s8E?r$oM$I¾1/zy8""T9Po]j8&6jj^MNMޮvf=DH#WD,N9 )EƧ$mIaio$sVD_#Kr2o>N8&cs"]D*1ӸKtqѹh vz˪\)K6Ǵx&GɷQC} 1æ|W'}kH.mәz?qFW!F]nS@a?XnW0o8jE ѫ=QЍJdk9)#'h+zTP^p: 0Wy:yj}h&:`ԥO}_ߕƋc-B}*F8dSWNy &NL9EvW#m/1kWAb!HoEMI@wvbv6Œ堝PBLmh! S`෦{v@xYa'Zijn;U;ᴩU0tÓQ\,f4V\fj54L9a 3͟q!ٵC +re \FԄʰ&\G@Hhu. i` XEMC&ve\W>m )PLB9،]e4, čnFZ۾˗*#=qh V`4QD O!tgwkcxS=Wc%]WswU m|]!NQ0[ネ4*%:)xr7=|! +)0ä_<و56GShn؅F`^}yhk5pIuB #~R/b*ڗiנr[^]ًxB^JSX0imNNVW0QտoJHSAR#XGmO!m,hu .w^Y0պknm_7) &ϩ@f0=#6Jz.a.ֈi5ۈYey.p[VX2\EZ]%Mԡ⮐~(A£rj²NPcĊ (6-4p/nXw5&Lnxӭ*`b``$Q.#P,2I*PLrn~$v5 4ժ-;Mcb zF"bKFkk1Ŕ>gik1b-f UA} +Zan6f%u:o$vFУYxa+p[; C.bӉ4U`Z9, W0:,whdN&zTWK^(Z k1ZMpjښԉadFMަlxR'bY$5=7 +KZm)Ĺ0m9z -{.r=fGXSUaCoس@0E}Ć R`s2<:dyA@@Y  '>qBa@8s\b e'%7 W^uW*"? +! + +5!MC#{Xp. %"{=)9CD+bXIq$=<ϐBR8r@1ˁ:mԅd.r\. t5٢%R5սȨFTM|qPn}Jh{3~#H5n24u6@7>,4&QQCŘCR +栦 1|4,l5A. j' ;h!m +.j&QGK +kb(  }GcpHZSsfR1XtsSNNjn*:榋Τ澖 +@'`* ʝ6LDTfRsSMJ76TB'4+Yc@Д}&`YܨPY)#k2["j͢tfw.5GmgLqmL15Ooj)ڸ>DjRsQs/omjsEfHsv襇X@ͭ j(`:' +xp.L;*PsmSERgrTb +n|H1]j{j9_&Xe9CS^~u8j]pBj>qOiza`ѣ=fo=NJN9\=Rb#m9y-Nc$x0gxcJ#k<)CcZ-Q5ja捍(~c6{3=SGdW]/1 Լ^85Z5cxcZ/iOL1ˆ^c^/4x}٧V#c$(?uhO?jy1SàߧF\^ktj,yk- F n.ړB/xbDz+qGfi>U_u 7pŌ7aN!*҄m2_Yc=uenu!c|5>FtП(ܽOQ,GQh.=ھ/ O>x&Ĝ8/O '` SK/UoAcџQ,B$k;{4ox!%?Zj^AqC~//NT9滃ÿfp8[h`${4iȩz K_I=j{3բ^|,r{;!&Ū =N#\:vs_}4Ʒ^IfyCztzmQc[O(4vbQ#f[]E.s)aiz( nW[]]Rc?:vSWcJb.Q +s. +.+(*MM폢F#G\6lW GiGmliCw>>=T# CpHo Az o ECN GB 1$&1d-6\ +4.>EX +5 !Lm7';ETdѿFqn`!ݐ{~{|%=6L-P' בT?)@R3' NGym IRa8`c:_X;]9~*)2 *9:BaAYOURo*Σˆ+SKE= y'VD`5 nP +-v +9+xUZmckpD, g&TeKx\QPwfCbx@Y@ +27O  G{F+)_eM7/>#ؤᑯE 6~/re(r GLF湒Vl#8b +JBc]DR6- -pJ]?:xMDh7Ez&{TA}+"&fA_,jz%~}H 1͏ +iQH?llTݸ^=лGFbd<[$n~*HL{D(vf2 + F&.FpC\'{XV]YO4l/*ao"|dlHZa^}g8Gʜϖ;V4^+xc{:|}?P4Figil]d@v-+I4m/lw +E";}&M۴I5۲y! $ņ1.ynkXdRA~̕%~^YHΜ939933.㡧ic%fS?:4J趯LFQfFQFά:ZC˙ROhq \]rk2;d>d$ "Pp-YtNO`PvB ?ΖSݦHo~]1͝mTC \S1b4w9W+'(/+d(;x&JkVk>AgΧ焕xW)_xbtyM>gP. ZlPif<ZF;/O,}p O%J+s0j3 5 K.IV/B,9 \TcAi.޽F)Hq&G,qe}sF6 رOej|c遚|$${n8uAm8%1d X1#BM $1=doGI.1Pmʂr[7hr{6-\Pc%-xM-Z[haW~},-/ jrA+SxNrVM~!UI]Hc˄nk=2&/H.brG*m>kr+J%uB>_?8/舢})ё%#V7jŰbT| +X .1d-$b׆8OP ,.m\9=g鋱!?e{v/Kͧ"´%Q"6L˔qw"{ĕS/`ɔ#qNՅ)6GbPڊ:iUa\(YG%1o)HZcTL\^/^z$zw~$/hcu]![W~@0"^͔XwbyDΒ^Ò~P~ +IZHq(HBob^Kr)+sJBz"nP',vl!$;Dx ~(-;/tOhBK4~ #c?2: F׏O _E '^Έ)*F; RЮo+4"LLԗy]{7?N6Nj^B4|715ͨV9E0fvPfZPVʮB.o&OZClȥayp2Ǧ#R.jUZJw1 +ܣNŸ8PM"s֣-4uo)})9Q@SC;+*1/ C0 + X$R# + +FwB+ȣY^+L|E +$d;)zXy< +H>&%E|xm1 ;8XajxmrkϥTQł@uc"mX7 FAYoe,UNGR%5 a?R Aw.8 DŽ`=^p9n)% 69b"v.q:CaW5gF-lƈ(/pհy" J-x*lфk'tVOK!U=;#3+S]++ցT0;k qf}ͷ'/3!흪+{Г +׌/= N|jТeғlbST<;?d{/ـ<'!h͐3TQv/QT' F)- DWXUj*}El2gj ڿ,e:+a-Xꗓnp&~va0;ds5h v",B@tA*;WLWTsn0:t6L_^hAp /}}L8uVهG,Rf" {'aVn 6A&TӪ:kIu>Osτ|XL2Kk.ˎBW8SaWchS2S0 ߐrZ{#3!ne,h蹖,9~O<|*n$-t3JW_0|2i2}A?-'wa19<9>%dA/V7b\m=7#G푉0ƈ6F\E.qq~` ~:sn}pvo&1=hUɎ[#, D۷BUk4mᲖ9"pAn 8oi28rPQpPzBtO7'ުI1j0>_F-@'}D'Z$#FDîssƃhf?]E*bo}hV"#c +Iw/C^ߠ *gkv0؈L9S7M~:`sԃuV4YOa1,/ v㧗קHg!S7{!2˘?{HT +L<`jOTfAl9u>d1 NԶ'U38׶w5p?dֿ@{t!gn"ۅ=`6#fשbh:ϥp9/$qF-kPXG,Ȉt>f52Do|-0{!{6qXvթp+:F^G+tu?x~Sw U +C콜`RM*r>C.X Y!]m;]W?R+M`bK=}X'S"H8S$ҝW‰RLAI2邐z;X%bQ-==|T IR0zwOξ  J G8w#$W7LY9Gq4X@t/қlUt>2!C 8D0\8seR~}ZL]rv:'o^[q8x>= Rދ:)i}O*@lXحRl ^-]v,k۫\Jg)s aÀR%ٳ6^>BM3lo{g:P.9o-cW gaJt_;.5q(xY<ӡߓ}nZm}}7i%,6Czyvz̷Fi=;MrW->~R h8UNÎ!8\xhE\gBެpț[I4=CmUVDͺurT8_dh.YH'm~v& xq3#΃R#W/ G3i`#@emԁy(ޔM%J rCU"\{畞z90x վbSZ^)go +wbg9)Wf콑]ғ}'u{ocLC.ѡ-߁ӽk02fHxt Zxaywz4z1.F :#lsW +o9L('Pt^ /WB ðZZZ noEu%E=c:Y$}nruӫ(2,͝cCլ4qE7x%vT,7GEv^PKdSd7Ns teku$.|˪)NZ1D=F՝ +(5mPwH,2Z uz(d{d]{y^(Q,P("ZuQ}Mi e"WRCCunLOS2gS*hZЈ>`HNFS7~[C#7sCX^4[tHF~M9 +=گ<} =]Zݣy^Xt_F]<%?{mH< Fz]t + +1m\~H)hְNpHuXTݦ,S~8ݤQqF;1ۤjZw3m[OCC=4iu5@ 8Iq?RDǨ҄h* x +g6ps(#):""FtWp1ҔsriQAJH}?V쎋 $`uC~9*?$a/CDrv)D6eo/~^IMH?{w}` z*]';uimH 6.^&%psIhgQGaD~6]J{j čY3W=Xiz Ǵ- J#u 2^';68/*o5;8|cAɴ:2KQ +wX9{=9׾RU9i +->|'_juWWx_ +K?E,4srR o8Jn,^pmZG2~y\Xg7㾔qߛqQkgdU ]nhaߨ(ĨZk_9llTbhG,/A|ziWjn[M]@!..+n,z7}* ++,3_P + }^N',0̧璇H\@Q}p%N}õ_yhfB?jK?ΒKɷ;OnxtͪHD/eph.dBkܖgcf|8%U_ǻx/$<(rtn Da7HDРȄǫC:?swJ ci D]OuA$͡ h۟Ac1Fxn<tA$b}}[it)Ϟ΃Wu`1g12&0A=#HS\ lhPgI̫[K7(Kbf=j>}iŧ/8_VSI򝝕FE|uF%kzͿ须_>/cXmeD\fQ` чv[?#?mM^}9ioCØ? NM˪CJKn+{Rꍞ)LNWWhk4ȕ %s9d5\j!3?bB|¾xz x&%,hfU݄st?O}Y7~rTKs>J+x\X09V= ?!`6w(f|kV-572+y#CkK%Q-S P*'ZShTa"p^@s)̓9/`|կ(8hT[PͰՒ? +,qQ .ß ڍL<m >r$J C2%l?nٴڃY3.$Smk&i*$K$zeȲHcJEh;~~cGP(Z"_P[B=%E,O:팾Ks|EZXdҟL *{٤%S? 呜lvHEkX Y20; f[ax=pт"rdk 9"TbMJYg&ZYbxgG2\%.5R-.a V IȚ @$a{Alw*f$)g}&ZWz~m`-)`9q߼ޤ^6@4ۻ{8#T#*G+\uq?­NsǠ%rf,I*YΏJ%JrK(eǖ$ oCc4*I& Tal0Pi~Z"T;6>jnU)&1b|Ki\d@R&4u|xsoĨ()m" tnO~sBjf`"h-ESt|jvS@KDRBRk0hȦ'{H6%O4R<_5 !pl=0E3;=%2mHLwo\ p%{M| +MwuCe܍̈́߮ezp7vEp76Kp76{p7vEp'R-.sJlc(˼ fwt9|7vnU+1T|=|7v46;|76 |7vmߥwZ|934.{n2 i,.Tywwc3;u˾*|7ߍg|7ߍnjˀww.S;wT|}n|NS;Z +{#+u.?ěwj'+]Yx3z^^;I|GJc%:ajⅫUrA0T@Tk +|QB&cÐ%wd|c ]Oؠ"T7zotfߍ^ѽK;u +8+BQT~T4z4:;7: 7zm^ޤ^︽'d7:exIro28i!, 5@|_j .U;U;S&! /kăHMQrHi4}8o4 GX_2?һ 35m:߰˷ S _x9;ȧJȗeB/* C^{l5;,LdRߨm!-䬡zŧ/W1>8 z_gXxK{7f`cn@C0qto<'Hvᆳ*G5י% !J\{ mnEG"AGT*`c2BH$i2f}Lop gyPV  O_rk@xjRߐITS>tY[ƒ5 Fe-UE-du`Qql^ {'3rt|E1/oՎj_g>Ix_[ޔyވ̚#58HFT+0ޮi xOhy1(W<ٔ4I,xsrc[0gQaA +_ ό"o**& +961q`ud-2YJSB,rj+BO}֧W6TW\η&G GL3~F7<-vɧ/'SŸPḭu">SBS+ȩ|D<oV |gX.TL:wʪdc8‹L6zY4dCΛRv9|UO=ILϤglBQ_h^UxrN%IxbJJY|E*^fqICƶF n'5<62f:*F'Oh Bddrg +dtlj:E&9&MM͎Qu 6;v601- Mi>a>[4>Ϧ㳩qlj|651MgG#ET.>g&gSaj|65y>t>;S-ϦEϦF%M)>E-,>[4u>|6?gsgD|֋l3YFg]gc)3>&'kǨ5&LNf/^">{Sȏ̊zMȌ,tlr:cgd31hG7>;2_3Bώ̿g&sQvDFphn:MN&/N$TA'RB [j9. XHIZ@uFռVbkWUUf )) ޲|t=^cNת6kˍro(S/,ޘtNحŝ)0&$&."73r0Y%}!keJ[ ehyv=2!b%ZN~r]n21֣Ӝyz5 ݡK59Z/-1qM_Un$7|nΗ| ϤܛX5LYQ>x ǫI}]c{^/]b.9q ΨphƒǮPgw5]H4'Ȥ8hxxgCvʤ;;} GK.+|P({X+[e#}N;)tHjaj8S* e-X&@ʅٷ9Pvr'u/{9BL@W䌛 +òJ+:wZ<#dwgJ;@4_'t.?ϊ(H@%ouVMIYX魔%x`BQْVigqw"!2>$b$#LT )+ONqgPL_Sr*9oVRN3_.w#{{X.QYa`c_`\ +Ŝ'T~outF.#l.nJCJDEWڝCI ܬs}{nTAa343jGrJkyulIO.]ɭ$4:x.sXym^[Y9[+VvB'!GF&n9/9 @aP1:F®Qؕ.B2~{voNRV`9ZE1o}˅קv軕Q^g[HOG +8Ǚb>AxN Oێub>'9/wJgn)blԩ3?u^#gO .x9E2-{H/oAIg9 +ܥ>Ck xS̈́p,\mEmY4 +hXI"rB Uַ$qtSDIKq*QG%|[Wꋭ +ʏ=y"VW}9#'=Ē[Q%.Wpq琈АՅ ΄ݖ'i,4z}5~mPn͕)!X87ppﺛgÞiþ9pYyd;ZiDdi$eaCb izO*_X"66J  Hi $`ݤ%@ttt Ͷ+Oi KL4lVUk4a&ɳ,;MiLBlh% ;Zsڥ|E",::"&"ȭm~t#zH-ÔXAZD.NW8_ Bj}!Η!4[mwR?' "t/ԑQH?"zKlҗ67cFPcpɩ jidz!ӢFSI|I/NDk\h btk#wsyPrKJ;y)[a'qBvR$%"C3Rz'E$眤 %_sӦ=eZ2N=g R~ ĠTC{= J!sB Lj^%ogs0*AWjRU" ˏѸI%T'jAکg(@t6K̾xu~:EoDK_ש/r_*K=nkÿ hǮvf6ƚ^"J4bkHۢf5@ZDHBZcNigO#2 +i(֏@o ~zs69;yx'Ͽe9xM82ϦQAnx e|k<S>b<'eg{p<7,TJ#)ծS\8c<0w.NheXb *´nI>ӯL>& l socaU8`EZ +?Vq)!ã-Olhw["ӫ4׆ae)tT!$s,Nl Hew(f<$\t +4j{af*M +8XV0ML3p{{D%Ymv0;qV|_$SxEH>5la>Th4A1շ8Oޠ#.2oCֵ/X`؏Ʃl@];22QHlF{zw~=e>L~\B+[%/1*Y +AqRl0P4¢_D~DUֺ+EbH~;.6Z-=ll͐C. D]-<*ւ[^ .Hco0vkU،U;0mn8he7--ъؼW(cjZ8=O "ژvl~h.!hSwh&090\Qd$zVK2i̒*.b aj6&`39Bc%Ц\fȭeoLSѾ>&[7(F_O FR+v~!{ )~R_ߠӷAO}n7<Mh=fr7Lr%z-G.Rn׹f]?|GosͷRfu\um$,NMֹ䞙rݹfƇ'\,"4g\3M6XZ"s1#Jq_R +eF{{V#VFr`|N萐t!5*fl޹Vc-g=D)~,[QHaHJG{_R)b6QY=|*'Ns񉛼.>qeyJƣ/Mknhak gi\|wNZ9ʻ"T*|4pu2}$ +}\4Y!k2? +0f"FK  /"tB]&m0`עYl5LuBw G5F[.vsȷ#3o,H쫞jZ%M>]XID禵5R,&W2@/ +H:4@efa'}m?;Boq>Jiyc1sWwd'Pde +|CZB)k@u<9b!3K,;E )PFmvJTbD6 ¾at4ƥD +"n/nRICXE| +&+rR׎!Ր_WTMQ!u1 쭿8NT#ׄQ +qK22mB"Y=6dpk@߭2aAW;Mzke^h/VKdkӮK†~E&Un(Ң0IX]$ya\pU[4C*11ɢ[&ofdEz4|Ho7y4zcs^+WAZ S8r=NN)dWNjӌ{9wc1>|TɎE!.('NX"@U+'ґ ha\< IUZKCA{u.jUm g˙ĺZYHFD5'榈dtGK$ +ֻqVKw,=-Gq&üL +x{39Qv.d +ϻ\4ɩ(#]h7MU1޺&K@W??Qw}pv/ӹ{K{vx{}${1o^Bh]wD!+Mk^v{1AA5DrA Z.=ދ5Eg[ xgxga@Ej&Dfa!(k'cQRDp5n:%=%??uUO[\?}ې!acr^hH!U;&x >:͌J Tq|߾ +DG ˾4"DWMe%U%:/i7!h^9}hVgY >΄7*N_= 2,J ) +yz 0 TXǸľOW㺈g2.m|ߕйuvD|G<^f\β8t1}F7$dvSNfow`kg]I<9!bDzQXZT1.$#:0t|qB*AJ ݾ5QtyN<R  7yr"'BȪ!䯞D\>8 x}iHN!GCȽ/!j-/ E,aJ!$B_tW?7~9*?){sEgGEz/i"vOIL/64v$G .~o+7ɑF;~ee(q9zC [GZSiw*nB [U *}C=Q?c_v3OK# lN#pKdٲ?|m.GyLZb++CAՒbz\ѕ Ant) w>[4 +ㆵغ!2PQ}mx(JNIj;F= 韷qa1wQ]]+iMwkMLp\D+2Jj +̇JD+]U vrW=LXjMǞ8ژl+)ɔp0VZ=8I{h0EK( lJRK`ܺJ{NS%~ͪ<&J_XQde50Zh$\aoFX3u2m )&< 6~GpO*w6th_VUA-9g, *PwftTS\c낭*?]9o[~ +*q?'X7+V9~侟Q:2c'5y<0ᗍ5ksw(u/AK V 8_>ArqDG0檢Yߞ>O\|GGopەCp2tsG@=GzL <+e{<;p3oŭK0F@xq7gH\ǯ/?Sr?6„G[@'W}BG; wy(xK3:u uG -:%&[@q+Խ(uhCMR:9a:/3E=)+K_፹_D( +4)V<#^`V˃zwҟk8LVdjGX3%8& *v%K=!ׯYEGENe ; +B8Y6BRĕNzonW?P\/*dN~eݶ9Tj J~N1op2^)t> +",G/8C9W?J?h(~޺w "X )H-Գ뒛\Q<񵩡ԌP;߳nWOLLxDzy}xtxo6Z(rto/?#/_t\/_ϵ/_a  x#inH&((y'gQ'7z݉A_.?WP|+(~Q6(O/xy/ӱ1Ͻ;" ZNw]tCx۾*C:DZ7z-BG-ͨxvk/jhAF͛e+?"ۗZQkUP;MRSKA +26#HMKB(I4I/8`R;=nk冿e磃oqW=xCz(>3 W~^|z^Obtp4ʍI&bh/hO[AHzR+YqfET5b.?v 34~lU1Bݙ"RŐp?b>F.T= wN;JM]踗O9O}7P|L|Ўg(p~,ܽVEO \D32_(w!V/4(_u\|JD[鷠~*௷0~1 gJh}F~@ԘC +{ P'[]{l3Ɂ|`+Q x5 Օ/rI(oaԋi"hOgj|("m +M2N1<3Dn z^ׁ]T|7'JTI2N1v۠i5-?W9EW^HPq$i8|z2qMiY0)3x zx $OxMSŠU1)bPJ sGf 1ec''"Aoi]JkW\ 0xoUxsxM^c +x}izOH¾_+&8^[:*6vSԅ[p#p=ن.nm+ڦ؇B_qθIF̏ ̎C8Wr(- 37[E 'y g7'MwA?5YI 1D[i%S+J$U.(qTDRv#Ħ.&rF[8Y! +BӍ&u{]#bXpT"7tmAevރ^/xz@|byFiI }HSQFٝfPjQQZ-D#5LكuhCuB.>- BQSń^%c`jASQبȋ'?h^$p>jO]P;-jx˾%{$2')}wvaIk;)-E;D)QZd4EBkĞJJOrK*R̂K$j@PO'ȼعpҒ꽺뒖jbj'&;i3O i-ŀK_Bg#Rcn>@:>fT`W`T]0/䖨b0_u 0ฯ˃$0"ByG9 +i͕)~S8N7adBKxػʉP zJlr#T 3D%@@0;)nd#XPZHbZdbj*F_DL WDLA6o L%SCŦ͜g]JJR=P+J@iJ@(czd=lB6l|ۦ Z˽RH\ H0R@+]H":tȠH%Yl` +H`3jV4X1Cb37-Ιyw[v(0)܀&s*n=\4RgQpvWa봬}xF+^8/+8X\cMB)R,`47A"v2NCf +7=<'Z1S޿a(yINB5Zr81܆u4;S`ϺϤv!eq{}xN3I*H7yIr/MAsz0J/OYߤ3zu-")5BLSjq|g@_跞0UM|2A x=9,ЧAmP_(tdy)-v@7ccn> @߻kz@\_$x#FnJ^}I"S#@;d{\|zn9)snU9ؘ7T67D>9ȓ*]+i@s9 2Ç|qBn^3O-$*MoC7jv,cmj.;9 +@XdsLl4f%BK5Bސ9,h_059g3w&xmyt=YzZC2ol#mVլkL \5R ҠGO<]}E +?h v9=6~!||Й,xv~4'?\DŽMTZȫSLEY,Rbow4"Dɕ2E."!/;T9a!35ϪڒgNh pWXhkCS:10IY! 60fFKlX\qX7nҖ8 +&[v7biq vV1_,!~$ +vt+l'R(F ^pb@̈́49 [Y7{w{lݙL}{w}!ŚI(c.Fdu V v#eQm8tZ]#ݖUz O78%5ª[Ǫ`P@ XmX:VMb#V^0"/zR ` +p/*u^*/+z)*n9 ˲/zYeJE]xS&h—)`F<ěR7!70,3x֢C3^mb؋acS@J_SFNUȩ ++!?n @"jBt0 KG՝֚>rrHk\n>ܞs&xY!2M y)R/R^SE))+7;dٶXlSY'D&KmE&&y{iB?}5E#<\x駶1G?1ɳ'0x3X8|1 |1  2/eŤ_44NW|؂&A_$<l7cLXBEis2g7"On/R:/!s|1i_nA<9h#t>E>sr5y9s& ylSZQ4nˉsr2բiΙCi}xڕTs5e2$ ?nfI5&3jه`XR'1_E` 4jLgU+` gۨ d/#%ͭx74bً{nÔx+BV߿2 +rx&͗ȗA:͍IͣL*ż}k1 P%e(󳙾IpOl~HRg¯QSi +~9('@v F#~0 nMjB l\;3-P/Mo)tUI{3H+R +SoAk[w_|FGf1Nj鿠:D[.D4-9mDm蹻˨ d4G58%&@)3.l|/S%=%W!8_ppK\;${YpnNK&}Yy_Ay_{}a~{ +i"uUo]#A2r +xBV g4돁 YH@3Xp*J|0 y}R|k +#oeRSMfUb2ɞjrMf5dRaG +B>5>j.ȲT>R5H58quJͰ)-3.>Rqڲfi}0:>ɯȰLH5^v #JK#ҡG;3#ۭi0Mͳʇf| ;-fNvZ:u|vZ4=*avlkiv,toκL;mޓN۲:N&uOδ~:mڔ;]HYrKNW*&ѿ>aUi^\ev8'ڪM ÅIw~԰ U&Mհ U؄'#ת f +Ѹ60E㏬4G'c-RCH&OQ!UJ_2h +(9?Enr&MQB91#kDE` )U1GF?z?Ҥ_GSiP ەYܢjU_O,IT45%nR|L:=A7=InZ\{Z|%W +EPnim99{!G\Gt_ +U]_ૻ{ImmfmnԠ0E2!K%(wC>ުX& F|+{t Vu"Uib1ZT| )BBc\$ w-uj>ޚjk)#«Xռ1D8yW{«XU:^ҹ\'G(4aCb#=TP|"P+"eu@O3yw;f )2C)BtbRШFm䨍) 66d׆?6赱@AX8Cm,pm|/^QF.X_cֈD{ AzH P&ʕZ_0jV*e]$€ "#rtם cQDz.¬flם9קk_XkLM,Xo6?˦w\#gi?wO k,-sbOock9O9]|rWy>Ƚ73m5z +{y +[Ƨ1\}!N7VOL~gy\ɶܦN)BVE['t*Qfzo|9Sҹ2+P4MON6u+kϋO(_ɈJW&vt *O;_Svsb=J:PR̂*D:Gr3)G EGHw*2A1e3[?I~"k{.c4mvU랧iPׂJxe.}KcC'N3[ܘ.{ڬ{hf⑆R!HyTvq{nƥ&oz4PSn:9a7H-:H*WSmxи,rk~\gLxbG{rYdˣ|Hȑ] O 3!Ygglkc d'a+0LZ/3|y> +ڦUЧy~"^U'+@FUuRFS6jUrU[֎RPWjrՊh(0oO+_A 7tB(6+=8O4|_#Ķ3OQO* +|~ _A` +*GMGpÈԼ/>bWV3H'3>1dΌO +g|2?,J6jXG`g q4oNEYn&"&NL{槤5Ҹi|N_KI8SƑ8<*WS w: ' +DajL\|#zP 9Ӄ +ͥzC)Mu 7lLb +|ʕs ͽUnܬ]҄FsŃe/e~105GZWL~lIC'&[s)91f7urrqj>@ӡ%MK+w] Eqג,⮺w5]mqWS]^M0o\N*d\uW{+6sהHó⥯Ko=Fy숌Occ`O}Koz)alǔIc(g?6 KCpq.CH,e@g)f ~07ʣAf;(ۂ=AhcczyQ&^feއo=JNwq;b( =eo;EP.4nvlDJ,>GVY!I!o}kͺ<x# S\l+'E_YOp䖁mgh}M+sp޻Wd +;Mk< +gm8Wl^C~zO-'.0[IgϧɞU-ę'L[FZ_23cOZB; @s/eDW3nʣ,LdF6(0ILN䇼;&CNO妚}\H7~eu'2dh-MJ񆲁 =tZjʳp<}QI-P|4tfyi>`CL r㴐kXAn4~A8Nׇi/V ^}ڡl1;3iNZ;d$v +ZK4~+s[;VuPٺl؛0lWh~AIK7f>/pqřhڬiCzʏrB%-,J3ZUk9vt7/KG8sI0ϗy;FַV2 +_řx/7;yA^ٶtLvRԭÏ7;f|˔5 o9-hXj~~:Kut54{&\b/j-|.7._91Iqn|'7xR~&k)?=|-߾=6&,Xv "?H}BuPvtalo)^ǛKn֗d{:9S"qqeFwZsAܹ(\wŝqgUYw:Ƹssܹ-l߽X>%]H8@ߖ`):}_V 9=\Ǔ(x&W#1SDKiJ~V6sjPWJKPDQjJP^ +k_8V"4%X_> bDeL@NT[4J GC\aS$ DZ4'Iv51v  8A1%)mH"R,;hE/+ +RAT<-Iƚ7YYセ_36^K}j`T bBl1=(:f-j~m@d);k{+X!GiuvwsJh(vCjeKʴd =q\  "Q~vÕ*W\ZP`PyV`i\+*ɘNk V\qRC[h-ogX 6c,oZkkXgyvZQ6J%tz:y$W(/iI^ֹgV#-n^:`kl3bWM )[4V2xG$Mŭ;'讻͆QWRĔ3G/e)2BrC'k78J<b~)GV.EE.+=GQL![R#I]u#2Pg JMEi"UϰvѩzޖŧY}JwpYJ7125}۶!m i+fHci`zƪ) ɯ5]kZxE!=M%gA +I.'t#@@ a-&ǴXSj-ɒ?CO vA&}MgmxUWz[N޾raV +O4[$)DG5ml6rWN:$\*28f"+G/c /|#%rlc2Ыe뱧oW;j.&ZK8QETRd ќ_6?igQwxgKxm(k-!Ư<m7=M,ϋo+D˰63&):gYx]}eZi>^nt(J %f.Ma.GM ~-^@K!KG +NWxΚ5A1'h0|-F އ sd +L, /3,}]lvt2RD6BQvKd=曒J35.z7cKSN*P]vJ Eڏa _%|Bя%+  ډќ#CN#flvdijX!CT,1~4x:{:F7mQ@׺kE_!3J$[Jz}ΔD;%p#l?M3,<#Qdȩ4(r=IS!VDfMkd{?H +Y#_!d-jV%2ZkųS։er[uw)J\XD^κ}-r|I,4"jOGx46'pc`s&L]=w͝m;$_T~ضmdg`cv(a~)UHf"a,g9񋉒Vi)wOKY4-eebu JeԎ'N'Q[\ gt34;wٜVxڳLvTuB&{<路W;_KF)ȓ+*Tt2U:IL dEcR4Z؃p;mqp#j>n,@cVC#YX)~'~ӷG\a_iq֥XxY;,WY+]'/B4^ \›z lpăH +y`b;R/k6jL?q?!h=v;lVK3p ,վܸ7Т$uywn~CxCyNs]G>ir1}fSò;^6ϣ,*prՏ5s?L)nS5rsE\@~!PED :GII1xuFtp u:(b?s>Fm</"!vN! 6.<e?C$<]!4"R9Ic#4LJxۙKsZ7>EeVد/cwO/U/-Q8K:fr7rl]yz"cH< +~k-*Z% +EdFߦfݧݿF{;C}kz;Nv /,3;$bZ@)'HXߪ[ιZ\"grxzO^L<< Q1NRA%/ne]<{'2{M`B.I_%RhZ)\콉; Ö:s҅v23SƜO/E-uS#DS1Mz">a~)\MKRwB~m7e^/'Z" 8iŊ`{"xwaE*&<>>$~rSuܾ0|C"a~B,ΏS~lyКz_d47(˹~458 mA?OnaYlVKͱw> }i?"Vljw^J|l>}Mo#KDʀ&S4ٻS#SٓO}&4"&᤭-&{}~4EuC8/AT8mȧq| !vpK&Ha G5I'o&# »D lT5<(3& +a}` ^&K.쑰{e%*Zқ"4UGY-"VC{A\`plsDJ;JuǾ:~RJpʚ.T6l+2XtmN;SCX:\^}CK-$Dz1ӥRza*`g&fW Mk0fXa_lqɪi>s_=pUSe^|VWN~mٯfI+e,2jd2p򛎁Eν58NF䰾Տ(,^FzJQZQZ)GbVg ^Ms Ыx?5ͅ?٪>u[ޡfa$Q).o&vGA_}| axaO0GvX߽>p=|^6 g]lLƜ +s~¸B4Lf0oa>9(TLYhY_J}5UrF +Q!q +;_2>uWFD_v7b7u3!pBj 4PHfڕjV&Aqe0ݱ&`#} տoFM$/ef2=;#,JJO6UՖ3# Io2,t,'}n<w0M>`+8Nyܴ. w0E:ny9I +~k"9xўnOni^SXk]v‹.>2|ہxd>ہM-)|}ef0OT֩+LRZ +ތE/E])|?$8 vݼk&K}%qC +o 3'\,ʅ'U&7c()>FOXMjF=f +*~e/[ ~H(x" +ޮ0T1˃םp'g>pOV?BJqu9 fz 9.Ǿgg󵘜o;Y.󝍽nq |3rI$;23#[ĎLk?5 <& +S2"˛z+H&ӶÊ)GٞiEOxeai9{=N]ca 6+|aOǂ>9 o!|4&{"v'O`@d'p#W߫Ah;s(}%] 9"E7;R)Z)Z)Z)Z)Z)*)rHѣSC,+Q߶&.‰ zy \FIad=@ ao-7p)"d`DQzIgb8:.C5akQ{ jeEV F 'XՕjbjb`:_~B4w@/Ę(6)<8l7_3EȖWLT{pBZJǡb:ޓ8?^Kyjv9ujY% Q(pG8nd}h6K!+Ksms8Ep\u=x,~BZ\h\  Qk!Wi 䠬zkٮQ*V?Ut089!Vy +8&(шTb4\S5UV'6p.8hK|8#? chC3GDh}{,٘* w~ ✟ĵ07ҤaI̙h\[/?:B-%V0 /Go(&Z  /z^Z* >b0}+??$1!C7xA_kթ籠7rB`)CP%#E $皠 N(rwzT ++hJ;&Af|m 1HE+>Rh^a/9\j~TTT!819~&Usmpzb!O҇Ӹ#i+'GK6*3H0!5"%u3uZxLabEij`d'U2+bմ PPi2}hlJeIߵMi)QZMogSW$%2hǯ$8o $ՊaqfIǴd*:~gB@v\%QJ+M*4II*_R<}Id\gO`L%? bbcA8 7A-&hʑzV(YM;[ _DByD"&!#>D'&e@dľ4fю2z[vUcAnTu6 JDV'fфTgF?~62 #ƻ3c1-m~9|1oy4Z 69wk`MFVUο*8xɯQR?D8^halۍ]]ᚫxV?k&ӁXb{9#aj> |L[m&YJ+j +QfkI3gGPH#;Q05SF)_K8LUyrm] _ {ZكcqwT*wL1Qk.u4/=e5WC%*`xd]e_U66ʀsJǝ[EzE[pE, \ -Ʊa~%ndU ҩx뮊2?_lǖĞ`Okry,r +$-JjM&B;9vt2[3Q۾@tm=SAYL\ے-fܘM9 a*tSv|W=#r7C5NF +:QzM>MqM<5>;冾oEEo7D˙zt~0Feom+/j%v}܏N,VS?yΛ{8{u7mF[KheWgm2)ş/7Qf4/K'K KolpPǓzuثs^W']½zE)f֯/XI|Kޟ7qb1wgh`|vݛUOI<ǾCMj]doa8)Z@dl7kE[IɒߎoM'}Ý?{(yɯw64-S.u6~ɒP7%یoM\BMƖ[5sCּ r6P%=Ql{6I" o25c\^#E.N#)W9ҫB4 F.}wR #mD>'C1+q*u?\xw`yC*}KxS*J%WғY`q~~疒7|#-I)2XLAߓ(5z7E]N-EErAEejoM÷s1>mlwA+PmOP/)bqd'k'88EK:ȩ*?6ri2Lşb|A G'{=| 7KJů^8;ϩ-ȹ_ߵ2 k-"v?gW+ν|")'n vNG_Cz;/uIx|n_pxXSc@.F_ξ3OL8\QS_z9Bzſpػ ȏpo(!f+ғu~GNB$B8ӟhlU_g@p9Z_{kg84cT!:nR3 [ G"} +.E$Uz#*9mZK'iSWpt{_s'1*#qcfL_uWݗRB7G5#x;#9w^y.Ny(ۓ3NtQ(ľ/Q no&HDrfK^Ռ=kcK*y`(ݬ*l]RT(L}(U2a`3Q[γZ;*r6!JUWpb-@K2%&tLb:gW=c@3 f(; @2ARՌZ8 M ^ +-S&bZY{CJAӠlZH(MMH'OIKq[mo'wSFóϡMۑg'ϏMR<9PqTͮg75in sR29c|<:k/2} %ҸRøG*}##qPXmDVh19# NL<^|}x<};3Hgpr.\*o%q?wHIoJYD `7I ,4WGq-@gd\z~J++/ezס29m ! d K.N'eη;&/I%DS~jۄT{RgRG3fC:d=*jVJE:~VN\!L˜2\>?IhSS]0g-&ӪBHi}ɕq b<>e'wiׄxæ.xu %7.[w>>{Wib>xGI+sfl;.d'2?u5dǵ"ЇU\LuMc!dU1kTSl.U%{qUOE5ŰW1{tmv2TwjS͂-M]rgSxN5A'4+JQ/R4ʛk=nA>5u[ Gۧܯ&^Ӗ9TO_cfjf}rVFm1\kǧnp +薌Y,-Y*df/L\ߨ8au*~:&w>6 lժ ?jOą@{0%o3jJ(S|3q Yc6%T%[\|vBן&N&r޵c}tl5?2j5DsKw,l)YWI6n"xj fTٟYzȝnyӑtwjӔܣ637ُ'(vA{FN3ڤ.-\-Qhzgp wX8{蔛Gu/)!b>n43'܆1)%*oaҺ7SQ*]oEM]rMH!_^&~h$ΫWo. +i +/5>xNa"$L=i9)IN[F BJϠD?X EZ{*;xǕL%7R+˕ܘM)X9^:@j\ +c%us2^x(SwCԎF@ek .~,i쯏oV\n/ۣODwēџ/15xlXc3aPk?㨰BbY瓿#]GN?- +' I}L 6.ZYIfBYsA6|:bMX$Vaopp;QXk!@\̗ơC;Ј6͕ܪtM qNF9j5Ox\mqݯevRe#6j#ғ+Up8K9|Y?|Zz) F\&uwC(NOq7sgEHVAKW4S?,B5HYuc*t?ʎۥQXipF|k u'Dh/W ImL jG#ʿH{]6Vݭԯq* EUmvڏ<ڶv~x{lN +1<USc1Ƃwѷ*1Y"6+8]p6[ +;Jšu7*ϓUl'TBn+˩n^rf++\~:`׵/8̈́W$, +G\[`@$V@ɤ/(uWkm|D`:R2/͕hxXyMr/ +![V;fXNKH6yh$F-{&%j40,!AZp0Nj]t+|=\ƞi<@ aZ7b7e~4UVQ}G?Yl8j)mы__|V{1E}W]m4jjQ;Nit!E9Mj Qz H@ !#Hwq 0Nshj<>n+h%9}uYV)֮.&Nu3U@5 +S|o8CH/8zi +FrmK|e')?te|5 +k'Du;0%wFF-12|rf7BԾABd׼ |-$*ZRyxPRu XY#|tDm$hSyia5/o*0U}P rԱj\VBW],\eNZE*3drUQ#J@ QCG وon29B嫳w,dD^W9/Iv4!dQ6{hdE<:AUk4Sm&H8-ߍ9o'  h8[@ AR;8a mG]ΐ2T_f b2)@EFJ;pcVqӜ˕WBШߦeA(T79,n+%< "3˴ݜW`}:\z;_rB+IJk*/b&tc9B[nķ#R{,"iE˄'9KV/WDDTimvxW1ebJ#YUn}];D)[+x8x\J |Kc}|bSDADsb,Ep1<;"5JuIJ;߹BD|wjΜ\b90RFf3S3̼dkPKH|E;Vco%9r+_7.\yTt|94'2^-(FKk-R*^]U‡SE2%}S%.Xj&B07Wx#U7d~ДN/- b'>KS4|n\z q+ 5g7Ln +N_|L"5z-A ]oi<09!G5Ȧ|j $ +n *i!n̻@HlnMX)L %~`ЭgVղ֒ _we@u[9W/oSokaq;/_wy#5jML&SOz ]ϸ]z[ί% wC霱(yZ}ypa"y,sߠkSo1uǝM`]~Vf=u{okypk: 95IA8"= -m: }ejH&;Hj?5;Q_QΤPcLudz-ǨTVîLNv4Хz#8jwjT\EH! ~xdu?ӅK4>ʸn>Zm(_'B3`49xn`ҙ+;rZɃj"1حJ`=tک @ \swa+'gy>kn-νs:Y_:~ª*]s$zD%aYVsC9x8JԽn,+ִΝҨMM1,%z lܡ`jK2@H Exyk?U.]! D8&". 33Gp9nQF Wr p*} EɼП,p硏&˚B{]F3i-*J jEIHWQ/Z0tQaY?"Bjl¶lsKWkziuwW`g:CMgZ;tw{L^CJ/@a1.By7~Y;'~P͇vE>fUKe3?51 L33DAޙ0CeleiԚ~&l5&Fi\m8.+>vf5ԯi8]i;ө2(o>~ʌ3fGMp"ڊŘ7Wʘ-$RүY )˘aTRVi0TRkb/8zՂ ܶ+6 +R9;B$Z ۸9^{vL0BnleLC7R@dC,ٕec\^բ!ORƸ{dMץ2C(SL/fTºҨd%Lړ,TtI*؂?(N6^bxp4UEJg \(*#=a 9{|nЫ!܍}\ +$5h}y}7πn6OtzM 4TRبu Q=jQ;>GrCx{OHO/k(OP-;"vO11ѮRv&~ 8f+ SSgKkXn; *mr]h*WhT=Ʃa*;U5զћkV#f5h]7׬x"@^U!UB2xe5-owKT2O +o@}ĀV3)=D3> +1gyS3osބxܓMHQM?ʪNG]l눕s)BUVUuGmL5yjf};TP(^8봚 $k=q;*;VU|yJ I<'lhi==9vJRc"9gKN2Gjhy[5CрP}yì/1utsXG_ &<~^E.`5!e?lnzI!G6BpݜW}"> }}挥 d.H|mN7s]пZp)'^~8*`Kb2_=UYgW=oY?Lhxr׾ +OViM|k]0oϜ? I7>{hwRM,8j gQ?4ƪ4qg^#LRvY3O [ؗMϨj>c}byr5XgiXU!!JJO/RVN}ZF/c;"eR2cvm) ݏOp NXDw"aK;0SHhX #H=WR6^-qm\*9C;\|nЫtoq3Jf&Ǯ! +{:k;n[MҗUh,mRZ7b8V_1t뇏*QgǴ+BYT"dB~F4[T8DFMϖYa98*bF⒫v]hy}mN xyBIvdp #xQLo[\Ba>Xz*qR^H65Y?u&uUxR?*U CﳞՏppɐ;MCQDo{D%ڮLJSNцJPQǞif0>)g 㸥vghtgI";qm'||+p?@^ޏRO$q5o΄QĶ_R>ګgz.!*Sk9W[hy2ʏ@ڄTEҏS7*} ԋ/co;|Y.jFٕ/pd=/=.L&R ?uȻF 9<-#AA,јG.F$[8Dz>@lê6zV; '!ձ$Ǟ"N7RϨ[vG&̭6 4"ڨ)V/!+A>26!j5P+8&F1UoPJp ԝ$`CFɥc;6 +T:${J>˹ZO:W={oH^zylCAG?KyE0qYOḊ݈"UAy EFI(U%y1`|E!+8)v7l47 +K"[UF$<dLYx_L҈H +u_ZO}~?i$TiE)^/٠:B)*@6 +z޽ +\.ꨄҜίha-av||U#~t]?nWXn0x k2OCáˀ +!/TDZ-~Q c!6xA]kkw N" !-ws^Gn=B"_nI|0׺BJ)nq$Ցm{n삫 k4Kȣ\BWY[e{!uF4wYM4fQU`3aþ1ӉtոN9u3Y71N'RהN3w:=g:mwv ?G_7 >YEXi5ɼחf$?GƶlM|m:Y,#WN:%ۓ7Pvk +qȤI6`_m6IxvՋWήzeE2~96~W˼dwH3;iWl'9p֎0{&pj.5*qd#YޗLK//LXWh-3ipN o&\(dk_Jki9|WP.s~7['OMqudWgQIb:X ~ul0Te2 <,mJf ڈ8_poU8[:j󉕈FD7$Sf 6evcc=$SZ?jۜ{~''R5ߋl>KK=yJ nY=: W1ct\: <;h,o!=h0__pv9Wxmuk\_o⡞[zm|vf TIW3e`h Dstى))sPOaRiNvAgqq9x9ҝ +"sFO6<OnAѺޫ +\"E2A +е}(qup"lQpbV٭92pµt-U"TW2{g.uͭʸG߷*6gcLC}?T1lٜro.Q!w. 3Dn G|73iym {{c뻛h_e^3T$_;D+BKzC8LpD rS*0?4g32|CzhE." +DwE(}c9` ssL0lab s .My;HOq5i# RrXY.q6p7O +npG;=ҭWIWi,/0w52 82D1Xu02} ̈)~b \sl]͑+\*4u -XM$'ϟ{qP\.NRhzk&`V2L++؛":2~|!c!F6IGUpkQt" +5 +OU/tcѶ OfvhyNV0ՂtP?J/@1ܺt +BOCbm%#\i"JWxGbj+[Ӱatk*V>67-ƛ~5ye;;¥gEzyr04-6Ϙt_oS\[=?,zTBxl-ٛo3\/N_t MOAxODڧ!H}](\px/N:X>Gxxϩuceިf~d>9)5-VTgTLx5|q 3 sd R۳qď!Za~a_'mTg3-LAxG;R-8u+„tM 2k*n7읗^5#0앗wXYXhul-"{g؝'y`d|e>Gb؋*}؞Iݿɲq"W"YMD'6Z0Bb۷oM ?f$ I0H4>l9Yd vGGK;=yyk.@s~67 +YV 6aK#:E&/"yNc)rC|)&.On>SLyZ7b4^B{XC~D98?{ѹFyOFat^tF?v`)9%:fpO:pؚɞəZru42;V3w4YUmG!ad]ُJRtGok"VOCe#<'G^VD~ HZYV-]^黚TQRSſW(Y`{h] ;ĺES?NBQAu$`IwzBJvprRo<h8s}8rZQu8\~/M*~,XCڧ#I1[I5$֐`[Cm(5 EIK:̰.|7U)ݯX%*[* KOvZ 둧`.QZ&=:DFH)|Wf㉎`rTOEBJ_WVP#CtU2@c7p& Ӊj1ZӐՍzR$g 'ܜf,Ы8505O[i%mO-HDrPnU +5 +ߩ>L?w?X,mU;J&3X^ UFՆ3oWЮ UAL@\l߻z+'~E1 ,CDqtbrug%׊c2 4zjt}:kX'v 69V O5#`pjV<. a+#(תOK Uj ׮fh7@N#I0;u.5%GKȗ%C_z +LB5Ą&7 W~Md-M86 sΚ~ĮQIJ..M/[b< C=#FiDrηϒzI{Npq lrETY}xTՍ-댫K^a۸ +Bw'QbMԪwj`T.^YeYJ_qr=(X()NxAIY Z}*Nn՞: 7C[z7NV>ƨtB0*Ia&]&9 +O7)!u(WHS +!TS@Զ\s +qnCc1X)? 8xȔ߫ ٯλ߲y yjzRrmrS mbx! 69o.g|QQijUi={7)pYN4tU+c&!Y9GhdNPP;4b~ h Qx&˷ +'%jo:'=;m|>;uwc {H7`_'fdi?BЈ4)! ?I'Q+5l_@5aO![d$$ؖT=C>gvq}5bIԜI{jeY$9BϜl4% +Nq3`K͉[ipy\ފ7TsbXkgnJ}"81sƙ +Cx͵nۀ==P')ClZ>xvB t;DhLKy(L"B  +):ĂE` +iYPY6^m\yO $RM Z:>g  +y$ow͖ĄC-9<|.CGYz,̷CxPjDE-Qy\Bԗ%f_i̷|^na}}UoMu{|nj#+.B,Tz*$&;1Tyff~vD1= !L +/9Rt-rT U~FU=)=srspʻ6MӻG:*^!o8~b"b_*ɀ9KUDarJ߃ "elXn> fcre*&ȭ)&H[gu<#57S4O 6e_$,eof+ۤ%lx!#g5\m ֢1{d=Б)l>FRIy+Ul.l0P^ð~w( n$句ExҎ p»4;p,X"TLx;B[7<< 3prkI9ēY+mRl̃bSuF5[0Z ;`iҟ J-'OQAٲ$+|O|lWԳg/|T|f9@\\OkաuQ>.S|DQ2t5 Y( o6ɣ}|Ԏv7"O7V->pGp96bDW?*/H6iO#VF~P>߬lBPw$Eiƙh4>!)2h1IsnuTZxp~/S1Q29[Z(5 +?q(E $uj5U\a8YjK78FOi64Lk}MQZƪ`ݜON&+_ea..8]|\"Q'Cj$J*ɮLv]`Ԅ]}I^´jIlc/3SniRƓ8$ӔLZd&U)]'9Wʳ:OUJnӇ'FE1Kf ڞI"+7x2Qd>du(mP:tuja%f#H]0L$I" c*y,0T)!Ed*1UZ{B 9*U5׼9a*䆆ɕmt^f$DICBĒiLlR1zKf:,͓X +m-eQcND`̏O.FAx'xcd?&}3'RX&'Rh^M'N=?oĤG 0zq3o]5KQC7M˟lF3N7qgaq1y >-G8'Y#Y7lZ v`\+`VqMz2U|{j+9ʛQ)m S_v +m>!}sdwJ?oi#&y=?Bv?hΫnql\zɸA9l\2.qblӯkC>0SD `OS6҅'̟;yol)\0cRx(X%S빝cs(jM$j~vqډzm%޷m! |CFyk#WÌ!nNõȚeQ וxv[?Zo͟K ‘y&rIO{E> \b!իi Z쉶wGŃp )b@FAzIq/}(G?!₵'}W1+d9}rJopA_>M/؍O?zW>"`w!oZJ/5?wpU2Z8di,/d?&9mŜw3^%Rx{Ϸ|FqT7;o6A8=Ɏ2;@8/tэf}0J7]x»Vg>jN #ʂ'wE"{iF̩XO%ݻK=Dl*T7xhDSmRF#Gryh saWnIR[-*xvaeGhyT˃FrBr{ոT1cj"_PF**x!Pr.}s\8͵ֿaJ8ۢH WLUFإ&9^ޟÍjGcE*U뢾*(U"UGw(flX5\PMJ,oR9G]kp  u(X~x$د,rSRS8gy_⚍swVՎ* `HNIinnd]z#v5@ܴҫ1U[{+y7]XXbŷIl?+O~@>j/ ~?{ӯO(K=F?[n17->%o G=-N)İU.";ۻEqRb|)Lֳ#|.F> +%2Hib]βX2ߔ" dLSP@浀IxgcѺ/bwH zKDnNGri"ݙVЦm2yJ_AAN*ԲO[,xqm ۢV_zhDy*TL;s/R+ixI U +}&6>)Ch+,&ԣ{'G\7:u#R YɁCiqE9h=hQ'i9t_[UX A;ҟL'q+l I3&,xP 5v@c,@j9r:N-,u q1g{ $ȃ$h$0;\XbZ2AKSُn$X^h) a@T'`Q#&by-&*sj{DNP% (Tbd$)֛~viV&x?)]еATJ1Md _EBtHMSV: )Ycf-҉I`qQQv/aDHXzH^# 6c{/m,#vKҿZ`ϟU, ~4 +i<bI9?;v7|NsC+W`ayd]&]9 *-t +4 U7U7MEreV~fz!12ҨH6!3;fw7>j4 K9:h>D;qY9pRwB#Jvׂ'i^]2[ۧZN7DpPVP$it`h1FVa713ɣvgPx<00puD6{z=&]xEH-`D|*ֲjӄ8yXrrVhIIWr=ɪ!\LPU)j83P(?g[m*6 +x :Դ +6ϼyB) `ӌ˄&[ !y:sykrZRSWs-*+2cvrd( 7oIhbmh 69˹z@g,k=$CSkOЇTOq!*ݸپVDGl% ՔznkO/ӢȗDl[e4bѫ13j$`DtRS +C`0u,`w f +@Z3"\8:ys}$rRu,FOJu&a+U +]~J:eœk͖EY1i=R(8JѾ?shvxf夠)A3\qR=-WJififE*rD+mTGXq pD'l,o^ vc~2}`C(H{"{9Нƍ2| +ϐٜsL x|'p#yTx-GuJSG?o^Uq+&s2?`~7Kͱb)?ЄpܭpdKƁX-r.u9AziW;MX[R&pQd aJT8LvS"*hK [ؚl8xtzGi "oGnb٧>>eRmAz]b܍R}A`G/gi ^{PP˷0]4j*hkVdGύܿ(3IE 8"vo`vAjHQ"/ܿ@E 6Yg0TC5,0 +ռ9b K4 (^@ӧO5 +}}}+"ſEVH0} +=֗֯x@%zH|ɽ\Oz[z~[SƦ 3ӢEC['s(w+bjmf&LM[\rnA!lP^‚B=)ϳJøxx5-:ú7@NFb$n Τe_?#FT8' |?Xz + +6C,t ǵ5@s"_2T"_z4*0@=öC[#ejI,HCİ`HdM+єRj e +M^&>x"h$ϬfՖސ7-hݪS3mˍ $`Dp0e|9n' 8 P0M'1s[2 fx"͂L[k63T9xu˸C/ 3}ta<ʤ|Rkse[%lkzsF~3BrjkfCބg)Mxp-\*#ͧ Y$~ .,r"wgkhZ9]=''DT8|FY~LK0GF-,c#*8-ߡe>_ZٓVFkǕ=]BgTþ!}j򭎕pj]iNn8"ۈz)U=ڟUXWbw&3*_CRq:1ˁry\Ec` +U +W'B9\6q!$F1?¨zh#W+L +])K}`R|?]+oEkQ29ǒ!#77aTF3+;J]V*gul +O0IqՐYׅ(۪QG?Z.m,g?ʂD83d{kEU׽=1 +md;DEApC@ۿW7_݅ 2_vckm>lQ\jAнx\z vR]zv:Dfx"JҋEA@H-իsnĉ>' +‚쵲@0o~nl7!rW +ˉIe +([hs` м ]AݣkZ'gxs#hc|["Wua"ٟO߯dw?VQSxctB$br+G`~w"T k/n`DYQ0pP+#k+sGKF*āsyڤek}S*/I5'Fj"!*Υ߯W񥑈Rm帰RFj>5iLS@ %2r1Ǒs\c/UOfDK_Tؘe! LgF#o +m!GqVJAXua=nS!]<<29k#Cf$ӜB8;"X{IYqnwʧ8>HN[xjf +uv&oƂyW"Х"*:uF!ojÑVW& +3Cr1CEr)_yR2tQ.qp6FA;n 9Tl$h= NpwT:g:mmJاPo=9TOnD86 =10( 9Nm E^<2_9]*o4C =}仟7# +p#71ƣ~G&<;5+,<#ا_[R@THwTR-1.=;J%'WGFU>o>שPcQ$YT62>I @Tav)R)};xC +ʕG癁EV/*IQ{vF$^E u*c`s +o-!>n,LxT$4O'IbԦǡMȻpp_#q ۯCi +!R)kܪԍ<8ʰeS*&迋iJ阦)KfW'ejWznH)D_ᤰAg3~H44W ZNRȂNIvE'P- H#]tD.I1\@R ui u‘^Fs{i=,N{O5T sfQA jjX.8-RDi4]y ցH^!b;"EQa{+rmz,rUE.VQq!Ȭ݋GYPd/,U.P[ 1"<5o5Q6O.Qn|!'SC@*~=v nЂEZu6WTaR~ +NCw:d@E..J" 25a;4᪄&5;X4efIR6݃槔IUxGꏬ`s YGR~)1>co[&R!x`9$^!<[׿&~h. ߝ4gZ|h_6Z CŗJ ѢrI ƒx&[e l-:%e^Ͽֳ_)yhJ(,FƒW؄S9DEh(Z"h(*E/Dѣh(>}v_{:_}_{_lƉ#8Vo/G7nA~o00kPf4 } /h8|K?WŭuW Rn3+xg̑^*q5'GyJ;iU +NYͅr%ޕDu :u?Yf]TA5%ԏG +\g/vy+։PleB Չ5%yQuxB N̶z32>7PP6rەھ,NT6qۺ])Qۼnkdu-eSs<uBuN>fBG~<7->SרtFʽ?ՊbS0F7GxH_]*pnݎ? *7^dZJ'mMĥCz+Kϛ:0#kFŖ,U-fRsSlqMbX=y43u"n!^YO!z +7|$0 +C52̄H;mJoro|_/uicq2 u1 ">W%BK wVX6dW+*@sH“ L1bMElɤVpob+zpf_6͍3_e}$_ wcV;T=К,[,7U\j)\U޾\MCtg MޣꧣrAFv{lÙ͸BX&;389uT-x5Z b?NHe.RyIesqds*⯲Lh +?\x[NQK诉O^i,KD Myܸ2PmBԣ#9 , &y RQpΩ|E**| +' 5RgZny <n]}*5TjNf!Z<'-7CK&Sj͋Żivrc jOQ1?8jƮ: nd+,>cq0fWld'KjBc,nϏuS1?h[|cv8TH HNq,r1L01aRvt36Ym*R%ZfIK;a F07SbLѻsMfқW,+A<ua$HE!FKl\U8fFlN:Yd`Μ)h|@,]ڨwc :m򍣉BUWhS;7"wCM-2z:^ ޘ>8[qFdkE5**ZO8`Nj&4.<{*Cy2#< 5P%.+D\Ӳ0~ӑFY(.gZ)ROxezL4֡Sŏ˓(#+Prz#1ZxBz| ӽr_i ~SxUfBߙD' D7 b4v].<9:u0 +}a(!ޤ]H0NT #; q˼bxlQ 5aj 0C72 +\жQE UߍK?ʼ4Q0)NO+cIVox$5Y> ?ȋ:%7 LX" JGMq ҕ?F"Oph>e%v1:5}6RCgOţGD%@|'Ék۲E!lL&f9$YA#8DS<ᒍP- .*H šbn.|S#U/2ѨGqIu_/bhM,'k#ؖ@,xw] ' +b,:X0K aUa͌R|IGpNwIcA 8GZI {Y~pb 䉌[*\B;W?o?,ۺj]==d$f `W禓vs eŲ3R$)JT18 piѸ| #Ƙ,W%'3 OHx;J_@INQH"bȘhX=L:yE䤰ȖX*b>DYFB#3i{};2'-V~+ [3q/>jTET`-IuoVIus0Xf@uHq ٩BU"7Q9*V^ȡ| 9%ݏ3#}Ot^ku ;x |"[%|C=Gl T7`{ucj0~ 7OmVqR!pAy0CYl/Q<@_FBdDcxro +VD=i_Hϳdc0u ?q]BAUܜ$}ru,QleycVbb1yξsȺ!Jp:e*N2YR?:V%x>OQǣ3]W)}MQc1GFQ!5f4.KyybM/%wL@,xR,uO,-ym+ }t* F)<¦`Q!ZCTe&QߍVj3υ6;jXNR3P՟JT~ 7z4O.ObJ9֦MְXpGO İb*8W],mvEݙ 85}.NP[rN)0M?֎tynB%- ;sqT23 cRǼW"a.~Z3PקTZ :gJ`؆ԫJzzM,)53K@ yM1oQWUM|a]k_9D?;8& gk>nfB얾%ffJj7^LUm7+m/iUvTMPE϶g}w$$giݞZ+YG4! +_x\k`0^x08CfXtãs)je;Pқ@!=s e<W.Ľ۩ҒY*/EiNJ*~w m&6ǨSgj͚y]œ܎]@o[7 RDj eo +61<7 yE<7T;q [*17,zH= 7 Obݴb1}‚h$zX@rbU͘Ե-ڤjrK놹7Td&UwR,@A7 wP3uʹn/gլAZHZKڍr[%Xn $XD~>9ܬA6,jI,7ެ0H  .Vr#ugd*iLr.Hi,z H޶P٢ JX 9XJ8HfBe Qy;$SH5H $jVGnsx!UYR T +zKf-57{= ˍ@5k0Xn'6AYg?Lժ,2'ܨf O  +Ikn2 un5`}P\jo~PKd{ש3:U{rt꽄aWgt}bK3^x `lk2#We rm oz{G-2φV}u4Q D+3*4=<~4. phDٲ` _[^9c<|>-MA+#}]{r  k'x@N9Eƭ- `5Թ6:!N īLCfd83difmH|Uϰ?AkkcsџBիTH +# Yt B6Ab)834 I=D/dvL^spW}c!)Z +=}yM{4 ӕ@[6Lz7 UVV!TZ xCfc|i?LIX&,!J,Ra5P /KZ;p暼!xCx+r&M_J;@뫘˲E\IF6::&ܯ?=oQ'fx֕|]*8~`Fˀp˟ej*+ EV6T7e`~[)a e$ \ӭuJ6ʐ}Y[k8w>v%%82bȠ=#1o?,9.nʟ;;wYMSKz yāwT.x94bE;n&Z*YAm('yVYO3g$ &:E-n!n`jQIXN2[6”v}4.|Ǭ{BHW%i)&23{Kh6\%? gg +I kfEvjj€Vi-# A9251C˲ĹZϙ% ,5LhVGDNmߞJZ'fpĤo~V$qjԩ^a`~07El@*+ˋv![C2Mc {,>.7Ф[t_JU"Dhsp$N٤A&"@DY3/QwkacjQ XCtp] [5֏^:/<+0Tz+"u1R]߮ +R> , Q&gŽecpi1?&H̀ f0CbiYr}ZkvJ*-wІ ; qOrd1BÝepjXga ;d`HO?hH +K &VM!>g2m chmS@?JpsUؙԏ=T_.YiGMONG&Q?Fp)ߟw)xdHGV!=rP +qƸ gkaE4q!j}ed6h +'E˼'Ѝ } L W"ԫ=B 1j7=.]7IM<5#7}9!_S͘5'oV iҐ壸ƤR09ЭnkwO8~F?Ͼf%B@&8~d>-"AXQ4Ȟ,@?;mU,L'IJ~N&T#2s2ttiH̞> ޷iʞ1,Hg `Hi`pLG.f oº?ψ?;xE+9ǟ"ZU:H_5\J6g< *&;U|2%[9F?pTzedo?7+ٓz%WW4xE~[x+87MjIiur~,[-,O?!. r|3sbtCJfx / < !Czz3{BMBgWUyjX^)ql>w[^ms)t@+1_;~ksEF,;>kCO@&ƍ]ݬ_0b=:M=ã  %]lddhjqz׸_b?J/O^&9g^_+˚GbC) +LXH&O )_SkqGK"}mZi6+$J#T,mU$AP&EK)&. ) 7Jd3O?W? cu?,)8L͓mXa; #p+l?HS޴)l `FL=iJs*;imJ.l#{p3!5 +ǷӬG٬ @2 HmJvDRC=cJz֝N8I.N _iPk{yBzoN|}7Ig7{wUhzo%_:7 kM a)p1S +?ï={7zW~ ~e_/+C7`+6Y.6&˼_t]"ZanPgm4NfZ"ߦ eP;S|FS~p5kvwX\ӫ&é\6 k~g_$+ +~H~ +"㭦){^k< +=;eczd"ʙߴ _k>TAľ=p- إ?V# \O$FP %VmETR[f<0c eR=$%ڃ_Rjop߯Ͱ UMK9oƤsx,xU)㠀; +MGNfVL6ִMzKe- +Lez˴ɓ^j5t ˵S/-8ʾ heK鯭RiE@{7}U\KdTJ迕օL31ʘjuAR '?5ecqUIS5Τs&{E=Կ3 Ԛ, =}=MSCҘ\kqC:ؗYzh-QcZuxwƋu;?isCY>}L7o_姑Gv@a1 5m' Sw Iڰb /4{NNIPD +MGwG{nʏғ輍s~Mqy O0(UuL >⽟!!!CqFzD_˖  +2dQȏ֞|m#@]=ܣw2P{p I&ϼ~Is:3s Ό |&udIDܧ LC\$3҇>fs،>O:{Ǜn LIL>)0t;NBd0u5rk脑5&Ni@,ogs&q.雧Ϙˉϒȭr7*meMȠeVvfN5u':n>!Pՠj{f'DI]#0f?yOdfgzrd&'=[?!vv]HDJ c?i' uwdI*=3|P0_tw*||Mo~? ޭ" +\ ?MDϥC- K' +\V~qO^9[t +o7P%v.n,?nSz9GƱ%~1ZmCϻZvS\n'v`d+ex$B!mBΓO"q88zDrn{{S ~Z|̰ +Sbє8IqG6vGq=<ǞB'q˩# sf<_̐[{|#y>Wl +¾4s񘙑t?e4[M_ڟ3?J#$/'|+_?X˟OWӜ8D7: 6/m8V+nrZF_rDxHDlvuD"Nj -8% Qjz1gFfpӖLO~ړ'yrl3lͤN=݁ϮoEk&΄#omqN> N;,qר'*IŒ3-9ي@iN[*f__6< qEKd$> EEqke4uwRq%0˃[-mS׿Z)\w?Z*}?*GZ^h#1ܡViIM7sS7=amYtry( f*aO ԵWɡ+6t9Lok=yMhHaKHN6pzGLVyd+~J8Ov*Ie]Wlg$*;0jƗ1C▞ ~lS^>魹W{@'}`LN,SQd7e_k@?P㩍STwm]]$IaK"k'A&tiTkL["5T=}. pa'dI0/"ά*lB'tB +8,\LxF#قC{?X9G>Jm4?y߽~{߽~ Dqߔs*` +xO$>`QkMSWzST@ +@LG =IkL'xvB>"H +_gĐ:0I\O aK +1* VK@ApBzE zxߠ%[َ,DCl h6Ue(MUI~sTÂ`?"(w'W~D=BjZMKZ_V^="|-zSmOwV< u.[M=tΚ^рàHJ +`Q mm?Z +[xh?0?cA+RmƝ{9`X0`\ .`w,,[`V-&8{kMPh8Vy?v#9 FM6B5q ?1.ŷЭ,ڞƘ;Ďm͸*U +N4A,KK, XiZm$"`i>z$! =θЄOt ]#@,CD)ۋpoɵ,#h(OܸK& 4 y"7E'sCy(0#vE^V\wKnoƫyhr[?h[ax=TM^<=`$24gNzBƕl#WD6}A\"!. + Gp_"B\.lqh6G8IYcz[KzDAm=4o bYM-3㒠I: +m(Q$,J 6A-W Eu:o4(m9"isO;:.Up٘o]cN5U߉8WڅōF >iB|>6e7Z=sUͰz݃Wkz2}́YY/ (}eyŸFcvĜ+o23%K~Usky[^m.wt4\[SM@3<РWkbwh*چ'!b +T3k ^pS9O\ +>_Fh,*@tT=r%y7LmFUL]-+=A:_|̂Ye8@0~u5x]\=a8 JLUxZzW8ʘ"iejv&?S,h);⾣(#- Z1lDչx"n?qE4k1Z(W+AMcET6_Cژ@%@OP;waqښ@&6P+.lz[Q)VTWNj.PF2t?t,х6vu:ְ($6*Y>.!z\(oxlR_ONcD@E.c*gl-h/t̠t/l m` ŗ`*N& VB3JAUk#ƥdY~ 'ډ +l55OB>\;ـ:;_v 0 ?F0]iA,c,d ڎ 2W@Cg'VQɠPg;Wg#'C`JB]-\y8鍝8˲naϪdЈ2Us\GWǃ= X@;D!0XP?rX\J2xh?}Xol %F$!+axpܲP̷c؝b&f}^l?6StğvJ<{?|`?wMPndOr4aևQ1\E)Ñ#}ol50^v[%'봴jA1 ݝ^ie ۲0"{=xmP%1 [<޸(5ݺ)kp~W&qd6dxTHVDm$- q;^ҾEY/e$tBz{6ǃmxUy6łt3' @_R\ cmvvشPmI*mW9Mײ`w*s8.S{g vcIU@nu'T?K@5cN (U!쬀( (yr列ǻ)nP2.mIVP}>GuΥ -n-Yܫ,nݘ}WCI91JJ_P61m8NqILt.w 0~Ѣ]0.8 \OW>*ڵ*\W䒟GKߏ7A +*YM($~E6"~~X䷩X21B;v6}rXѲ}Y>&s4l $T?=TP TϏWU[o - +a:C2Ltfn+_-YZކw{Jjӎ7@ۧ5zHOWÑ1ey6.-%VuNFj{1c=v7VWNߛ{63σD6_4X.& Blmq{,nK-;- U>~5yT <PP C=˕>mFa,? C}$W{ub;0 1dgI\ tBVv^#YhWkl9 iHiadx.o7ـ0/rg.b|Ayd_16Qw1]w']7r/+8n\)"F-_tSނ0v-`PjPa'pBCЈ|o-5ֲZ/Xy׫L?N | HǸ0 L۠Bhn(2uy<^s*w$A~NndhN DeEE"$!R&P^n3HHl+T?R 6:3&!Vn:jGVnØ6 $WjZ_\UͼnI +d/ + nt>="(mK+Mʂ5F[rB9(zjH\8-Oz DnE&bl1LJSj6.9*9_r9Z3LII8FfA2uG0|). lx|?$rJQHې\J\QY?/Ɵ"A俅 GJrV& +|Ynh4l<6 +>5zQ$<*xr<}`40@N=])ҳv( >-ԠwIڐ%2"'pR`k׀i1^ڪ5g؇E ^cGp72^q7Aa\& ȋY y W݋&[> ;J|{ u{$3 +`BFֱs"P\L+ϒ|Aɤ?,Wbt;@iP̳%@dA@~xW(ĘZA+3J 1:c}ɎY:Z[FCh9 r0g,VTkJlTF-chE39q7r#4Sv|wRE~K2xĖQD2r"K8Gb6\v}vKfu/Ȅ>,1a!ִq01S^yx%I,ڭ{~ţcGJ`B9f!sbL=+( ,Alc >Kuz[Z xD|z?]Ïmv3vbGk\#P1~'!͊HTWGq*%xPt|6 +.Me2*;F t:dL{2h8C2Lth + $ 3ɍm#̔E\ X0Ghoh*4΅ܭԡ2@ޘؾ G޼syyX48`+`$E2qjVIV -I7Œl".%GG7Pz۪ibx[wbBDr^# *DIȉ+O͕eoࣼ;qg4H &JvȨPx4κmŎ&`!sJ$-ݒV*j% a +"ƍem (# X9!'g?أ}=v97Wlд / L}z4!*"TdRJI-gbQ&;}HͫO$\Rڸ$QaLgJ)qQjA}r*QeOE ##kʀ9Jo| N2cMѹ'z{jo$"# m`(C$ =aeL|z~/4Φ)zͽVF/Lm,a`Iq&/ߎHì+`qY&X, +Qo}Uo%z Po{pOx×HTBjQF.{yQ1Cuf#U*ۿ7E 8`/֜&k"psVOvO&d11: +p;ȝbWf+ٯ6UO +A)zU޼HmZ+i3F)5Vn|k^y>wӘ`y]ye+n .>{`^q<<# mQd`9If[[,57!bm?B&{UW)~KK7H뒾<KIo.?/Z~uR"hDUXeP;k/ңd>zg~K<a#mxSq>=v#t<7\_S'1ɏYc(*=Aoܯ'ܷ}wm'mpXOo?Ao[u~l 3lPc +<khF9bVtk8?) vZJݰttd#rѸ0ҤIӣK`BA-[ֹom:/~qmXIo7z[=7_o_y˴P27}{mԱutqa{Ig72 )mtd!a/}w=?0O4!^#:g??UTz/P^(OÉO|l3諩+G+$^g^~,c?z^6U$Ye9QV;/F*(j)KA#sQ=k*?v_>mʼnJ:+SCbIKԶ$qZK (H +j +]#bw:nY^^m?O.OVF?HCaop# )4R ~ +X N j#={]8s HzP6(E0bz1W'-t1mtנxXMuNr)bp6c+/plPy1Wed|1;qx={#06z:j;kQlgIɇ,l=x{x~-^_U?m!K׹uQh+#|5ۉaMa٩.cRl:-m;E˪ Hqz<2 D2V$UO#}C` ^K@WsjbҊL+I*ޞd?G%JO$O^y8+BU䮗5N.<7{E0G`6E|g'ok^ OTOuxtxGptal#3J(:`gbiuTfQ"Q}B]"_FPXnC҆SygM<+*r%]8pDͻUOk'sfC؃:a9,nӎT \@-Bq9驝$4|"5r]CwwSqu=99W8g9IuDM,Wz\v +:)O5M6oa5/duoV}9TbJ2UH}ƪho/ _h Ad +wBC^<櫧ccЗ;[c^zs8*>?Fhy61L8OMK|z6ͣ Y8nB`"I7t,`K\U1h!uuVnY:o׏(ۧ+7n4zиuCezeu-z0/6ssS<9pTn*|( XLUX!;UůTH?%L3h:gůin*}58],wK :'S*A?%^ eF 7JnwK۵"Qt:$;ŀ^b&+HFʖ8^e#_:~84 ʽJ7|BBWJuRy29०0gt)#RwӇEG ߷ +יnNfxwx %h|l,,D? Rd%WH|쵷n~=+}z_]] w~iQV~((:d\C8_D 胺ib;01uS &"$I&Né:İ + M^dOFʞԦT}*N)Wy'_NԪ9G8g <2Cлp?g<P?AIbھ=s(we3:l>(_ bS[s.`nRES3%&r88:|`?G2SW:S.FKGs;S=UeM'xOxjNjU NґN@]BG}@NX;L +T`I!KKGnxa .X +6=ms.p0CBt1|R᮱8+v녨g58տZV:ӡtTuiR>Sʟ)e[G_1OE]9-e9}Sun +8g /OF{9_V=p/1:4K!lq=GGhJ}|(q;?Cr+j~`9{~ h~7PX]0 +ވP*2:t !cpy~*`MѮ$NcW{E{8$de :Qc?G*ױ|wLkLࢥ4et5_ ϜCv{O3|Ă_i}6j"F)-)L "'wl,coL~ʭVM '|nY,>5MB=d|YSwꢕʨp{dt*<`'bvˮ>NK,EB#QGXN7^OiS]r#4sz0i^rRArXI\PMXJ-b)3ETwx/Km HMT%CJGun ~޷ѯ \zhP'{kOLw '56$'x-o& L<5h'GgG8,NtEs :% 6M(+}2iԏvL<>hģ̦P +1B:oBvd&&qېmӡVgNmTJ7bbJy"xVE,P\%?H $\/[y/2 =`l2NݴtաG~‰qۏX+M˷;qlt%ݞoth@MCo̡/kSot"& :'*-~ky|R?ɲR \9_#Oc'm OӟX# VnA|9rj %L z'cb<#8fO^BrL?T2*ܗ0癹5vQiwRzI#  md\RD & _O{7"PS\ ])sR4;?+6d6kB鋏h6jUcT]r3 T77ի'M>,$u$ѰUn, ܬc.z + bp8O銿lC-|毠7Б_ II6-Rl"v\ro* +MEwME4" +R{V#A=0--ܠ4&})4dyɇg|)'SXr Phלf-/ %f!ާ֙)? 6'캰7cU~^~AZN/8(E c^ӕ Jkh/yW=yݗ`׉&D@Yֳ)g~k6;\զhD3:eYW_Z:"$:o~CRVt`M>I;Y$11  vx !ҟM숞<2çB:95PV&WѸ%F_owV* +ꭋJC|5%H!LˀӋ*3ρ˒5RK瞌`q[״ӛ ֱ, +c9aTeVX?Qs|A%XmGmNW0oKs>?6c|yS-x3>.S3<FbvJ p+|x?d,";(NL(Wb|ܛnj3g# OFcA錊TEN +2ȘS#_2VPz/0fX,C'e^U}e]1F^W|$:K#3#s#çC* 7p/Zar #x Nl:rU_r5Fis YI8OHHξPYZe8x2~H]/||:X,,1˩ |xʩN-e2qjN)^ElWHoC6&;/)4b?dz/* +eköc{XqNR}gZsAf}p>H *ve_Tt`b>υ~' -$! DsAx JXG[|50gHGL#Hq }>μsc!LV9XA$#9r9,DC[m|e|&GIG`7>OG#.h+w~{؜Is(pば> #c a4c84:g :oyW_vX+A3h.!,UBANv ڡ±cEg8{L31Ri8 Z& ?Lr( +b?C0KG7tK\lI;(z=K1_L_8k(9 _@PȈS󴎍ZTbm>Dn>^y|v}0涚܍/O}hp֊.{{y-Njq~k};);_ja~@2q] 2yr+ <<8pxUȱi*t|DKDsR9kmh]d6>z ijp yJ]2%VR)N%)6:_Qb9;Azϳ ^?hMbX(\z-AX9 FdoV+j5>0,;'gO O`3<X'vEcwT~Msq.G όuA{]sILn66l;)L$ l돣 L7w5 zOks.Cw|5DsQϾAhP?XㄮL޿@Z1+ȚmпP 媤.}^b25LGuN 6Ô膎 Nhmh;hZ֕O|q#]s7͝8a ;:Z4&cF[ow̛sʘ|W)=sQAksj@>0:b:v.3!و*v`_h耊Vt$u:9!W_]ֲź8{[e*6*:}z]抚;#869FɆ /ftnQkl} +*21ڇ&FlgKW֨cry< %lc̶SEu'7:[ `U_?,} '"sDާ{(c؜C8=TC=PC:G0'n_2ZsSbM9I lQ뒊\ +Muh"0n|)/ *e8ӡI;!ĺoS[Mk}z%P9X]_ϣG)wӚNQШ.rMDrz9a$xMygFvz*Fny)eCvaOk +n#xOo #ݪGLbj6\\Xv amB_79'1 +.ݠL2j&C9 +t֩'`iIjMl~i>wZϰ>/yxB ;cxn:dⰊT7FLND1jm3Yk"c!J)XI /KpNC^Ň9GT*'< \ʚA0]jqe3*Eegv ZowW :šEOsT>Sn;<KNDŽ:&GF0 +_/O{XO뷟ēg +`J;Sw~r5N'L+všPg˞^\Q߇Е +;QǮ^gAD.`V {WMTUE^ +(Sh45DsA|"cp?+½(Xl{lZP#F!FYJru|C\Y>#  ;]fK}߮Gp'2.:n(_Lf@xDzXFaL{D[Hάܺ"7Zvdӏ@ZcpU^5v* +tG/~B24dHE<Aֽ|]Rq*Epfj30D}P10uYZџ f4ab$H -*u}w~n[M71qnģcT26{ %$+EG4w,ViG(+OdոKݧՍ?_Z}cV^X%yc(8I `|=%(x+D\gzK5-4 ~X\bx#EڕܤTlEç%$S'e9qI3Ês}A֧mȗ;S9Bw ?` hqhgCGb{]/3~WV14l?i1rluWeOi }v_ +]4pqm"$Z?]nС|#Oы?I=c)^؅{ K/`z[ 7B Ct7S:Edt $@ !FFq qudO:@'&Gk?|\z_ơO7s3z De?WߩYa rx 9{[n\PNLSq.2i%U.|/p]4@X t/U@?yGz-_ ,*ܷ>zzMb~ #G>ab9W^Oڈf89~~/ X,rIN+yZJelPb}G"^G XFϐwzJHg&i]j'nnR{| RymrDӡϡٍKi*SinT,/P&[DPtʗ(ezyWM.u7߅:?ӆ9Te3tE~߶0ھrqcSNEXV+%&eg`YsN/lj[މs{ +uR ~S ptG *J!So}?}^$՘V:ls՜9(']9=/G'Q/1Cއ wG_PJYj.W~JZ纂|ȇ~.G %FL<Х~HK 辉t L ^̹!,\0X0\Ќ1<xdépZ>,ȳU7j#C%E#fMh:oΐvMƺQn6H޺hZ5A$*1&ޣԻZd}kn "BD.;Eģ]LS$U]eX~wl^\4L<ځ$쎬GansGF=zݼxCG <-h+UTGGv_TNGzsr6Ω4N˙8ߪí:ڍvsؙvït"cαG`ۺ"AW~o4k6JHxaׄD47Pqk⪝ +X>YΎsk\9AM /M(MpĿ|討G)GG[9!eOO`=*$ͫu8oOMs.?Xm>ߛݯreH/) 9=I m(qD g fc'ڮN=*jp/OK +wΐ~ ?q9B#㼃c'8]/ƙgsy񗽧ޙ<n. I<=s@^<ǟxٿ<#1w$yc]?<>3|Ob@^$'>]k*q?oi֛OJ +"s@ÈRs BƷy9!!ԉi8|}8,G@u˧9FOp +Yx?tAZP4-Е &x23ٟ,.Fy8N<4Z, 7vw2PV 򰊞-|Ryhx,H:MҍVyeA>X>Az:WN^h?" h&CgFqCKWZ6_tz:Kn8nOxWz~seꧽQax脔!Tq oqsADlSi\^rRZvS#pLޓ?9~cr~Mn +~* <'6tlGZr?hMMnґ38+>Dl Y`(}8~>[n~/T}7}Pᇸ!!#vfM}peͳ]&\&M&&$ %p h=M?pB#F)fr#yMnйfĆ7KO^EqͣaÑɔ.l.EMT nNl&^/~J͢ͻZJVq 74[61cwC `W9"g59g6zFF X`a/ pVnF.q*/.;(CEoιMYl#? ?ucꖘy&^rô:%e}PoS߾1ʴ_-3%b= +ĊY׳TgoU;;eo˓ߠ .n2+Vu18ޤf Oɐ7Ilcק1pư ~[;GD\ +CTG*7Q}xQQ.J3طMw۬pn7̔:pT⢼, 9RT +vM_G 1omaT`|bAOo([1,LEwOsxe +<:1` 3/oPQ 4$A~Swev|oSwȧȧRy+ƾ3 |ꇮSPo0O-_?(<~>{|:RER/Od:Xiٻke+>U+sWGTLV+C:EGQ]g]Uv>3(ςp2βFeП1_)r/U)炼Tx$8KNǤy_b25k&Zm*@k0])4$Z(.M u^B]+L:'& O-BZ*X-H/}I@{\E,ܫ*#^$!h^QN>qV}:=W{;nv{WAJz9Q>6\6/c˹iS4xL"={RN VStsZ[ lSw&WA+e)fro6 =~he'7^mU+S~+9~kaJ(2'Z O, Aufg; +Mb4S+:>XG} XG)iIц U:6@ylrzEΖn-B[K◦:>a\ Z>.t]n&$G;!V*XEUL m?c>Q;_*Iyk'˱,²G,keYcB~l o2M|+ְTv L{lIsJ\[qᬚ>>4 ++&yCmf0 KtIdN9[b[t;1mf0s/;^rQ%h+~:5qUGM]v{vE$ 'SY"k=kK7U^)Կxmj5\5;~\ډ/ˢXD*L\ *,)oԀ+e@=)d9ḐA'~j7D'긱8 b..R}p,,pYvATR3OtEDgDUe1Kt}u2ɼ,(i}C]%u9쯅[W\~Re^9%_u]M3x. ]' H!H%H]ԩO0AL 豙GIwD䧙'Dsa$t ZH+ӫVmM1c]l߾L7c%/tC̸+Ƨټ+ <~BU,V]1nvn>l+KvE[ɮheWT$NZmcܔ5{JzǕ—=e7C<\mz[Tr_{UT*gкTqfqC!E:ɑ4Zc[qKp5n{{~@⒋7 +NU:i챝~V$ x6>G4I o1rA\#!gs:5c$U +-H%i, G ̘p:,ZpVPyKSnÓxdQI(Ӕy?nGc걎,>:5?NGi|N#*%YbKXѝV%Y?[sLNz.*%GY'~:9ŋ Ć40p´$WU=0i>UL䊊:D%޹Fb%͡54byS5*T6vV})}\ANmCf00M +$u2l1n $r+n=:0U%硞ՃzsL!I{41~LeLR7DY"!AΈr*/_%[ҏ y qa_;5à2 w +3g gOyvϖ Z, yKAT|O<GeuyR';jqC "՜572TQuD]hڐ.'d4]NpE$C147dmsbr`߆$diToa* S];$ YP +ηP;Rc`<s,y=^2.}L\zz5OL. n2 FTr:;_%a5WgZV +2R}<󰨔uߟg k7 fBA:˃JquD!4I >ZC2juם *O綤 c} eF&qY7u6}KxVYpvux"%Tl:1R#UЅj2QYT #|b4^̬ITj(8nj5y4&ة:BдtkU%u]:&y:Z|&jkoR.{BG ҔÙ8n# B45{:_ʶd7uɹ$U6Rĩ0l&bzзHc ſNyR;[Lx"U6̤X[CVAs8+g>KgeV)~H58;uuسncoGm9kZZ1?bMoE!<ܽ芷{C%IFK{8_Hӫ&J#q AE`/{wκ r8\+e>Hpi^i6GUt>\m\B ]=Asz$4]k\U"GOX:"7JS5*_G`+V*H 5" }fK*_EiN*\NX=Bc6Yl1KUw8я`5 DۥB6 h"W"%_~@ w%[Gpd\G>yU!glKKPp ֦6\G˵663=ܗ +Yh:ɛ-k[#> 4SA_2'gkcgС !h?|UT~ԥwKq09YpjDwd &D@ý4 O{v|QBJ6a;wq<f:h9MD_F̨{gꐊڌv}p:Fo>6Xd%b-8gFGi?7ͼ>8ͣ(V3}1}]Opڢ:tI[jEoouQu +uԆ;fDf3hch"۝;ap,_. K89j*2ΉZBmk}ooOon|oFyO<}ϩ?EYa]U'FSYɛ*?U OY,z?e} -_pqjC&"gK]-F]քSQq6yy\:BA{4mݴ)p t31겮UޡsOUKVNR_ݷ97X@x flT*MSI}N~h΢dO>XA+[x^CZ*WeL Jw6OABR~B`hzկ{\h%#a [ӑ*m 5[}~y%^iY iB1G C ߢC{a B|w1B4(*`zدayxI3[cZAD1AyC 9^do +!2gh&ڝBgݿ"u*4&Nz΢\! [67#.#8AW2kK\j+DBUCD`[t-3 +#!|'oɧ&u5_)SXCI0j7jPCU]10ʺg2yr.PGQw] ȴRa‘h:&>\RE'?89Hsa@\['h-FJݎ<|yvoy~0$k,z5 L ?xi_ݥz&}`p2" \{i_פp*P=7b[a}ri1R{Ń$}5Ccl3OAm$HSav"߿I9'-%oQ jNzds̉vγ.!-/nqF&ʭbO DD%8 2,tۨۤFvq`JYDp<<"YY}QKi 6JW𠂛P%1F?Rifѳ & C=r*[Fa1>I 6t&wS g`JN!8,C`+;ALDLk]_hIċR;4+5]wYtTT +9\$7j/V Q +^&ɦ_dvЏ;&ٜƧF+ʽasABT ߮W%ߗ{ ׽w{k]NV:PkB;I6I'SB ֦WԘ^zMZSw^D 3Ȧw 1߷]w SS GͽsVҫ %"G%. +&M pYj¼ݠPfszvFbL5>5' +ݬ9c*_/%+z9}u{]M:`oYjE{D +n>NxsWy+rDm>+w{+NxmA uVn!ϖt/h֢@vQwa+* 3V%.38DZfӍf%P]YuP%rYXFtgzj^edMK%x/0c oTBB:/K:7js8`y=!B"}"?w 0TҩKj {JdS<\s˜mnׄ|ԚnRoma)'i4fxloaz~LL:i +Fҏ ]B;Ό|K6}Kɭe60^Cq*Ҿ)fhXw lA.n0!3n̜Y$p0`)y,R$r 1@ r q cGXIr %OZlFHu Z:RK΢gfFJ̯#&d":EK Sm>;Wp8JAmK;+@6kfEs ^nYS.[53rCۿ,삛V3wF4 N1~pϨxD`?hS 4C_bz_KIi+q⻨^pbox!lR %@e[J@vB=8 `iDNnP`͠(qf8 tjǜAxJll{Wq⌵gxߋ D 76\'0tR)[?^",ڤa 6iSmx:rBLgJwvs }ռvs;xߜe3!jBoϸosk+fk 6?ǾC>åDi)-r΢"{'7Ϩb9 kt 3p 1!F6}g|,~ ھĕtʞŽQGkRI:fPlU}UZxAzCbV2,'."0^>SL8KUTɺ;<~'.YBbnD͗s^f[ Oqղu ri! /7VaA1{4ir\7C+'0aPJ d*Ͼrc\pEiZj.w3̥Dd&]bBǙ ;Sg0\cD4/"jm:|岆-#śc@oI̋$AhqCse$ߕb{$޷=c'o +f0SX eho4ܕ+Խ:KfR'~Ŕ%SVr,*tN\,mRb tD6P*f}qQ^b~Υ.ǟ]M!>v-BdNqD}`|r:x@{1!}H}x2/o h3  {>W4fC-}--!zw,@l!z}m=hCF]`}r:ktރyD%zǯ {= i"ڃv8ɈhpŞ$uUVNj=?h>&>2yFX Wfg$!Wuj{;Nn +1S*)Em!<5d=Vdęĉ/k+YWiݱ= }h]`F="4U"aV)v5P4(1*5Z%FoٽO|޷!sIGu] *bҸŪp*IJt@Tgn$]aՠVw,J-.x׷WyG(.}~ f_jqRt;ŎkdgxA.4ch7WZA`7Pŝatj\E,o0i=jŨ+uϨ`XGT66nw,h31pPOyw-)߈ i@kק:bBB3S.'X# 0ۦ:}ڤʫ <Σ&KD+fD@[&nVy;N۹;iPS(,F#g +ƾ-6a{U>PŪ>] blW̌Dzžz=UzJ2u}zi2@'̚#g3?z29d wGݹ 8WpV\}a;;;-,R<ao9;tQ6͍()x"NӋC?0'<^gLkilč6M:+5k?3y[svcS {KFZmYrPZmA:ި1`- Qy +85]_}jC]?Ǟaj>8jۈZbIkō@)AOkvؖ,O3HƮZ7b=/rQQa_)(l5h?f3z5f5`a: h+͑^m6 (Qk?c(E[B:Mf:YagF+H\gGqF䌽#LGyH.2LP憰Bb6S'*׎U>0. !vƽ˻(ډP;y>u j_b`Z=Q'4l]rSƨ:s=(~é"5!;BG/up* 'X +1^ +Y +N*ǻX +UX +LP{5iuN_#-B+0 "+ܛ{Qޛ`^ZW5pg-5Cc}kRb1&NA a~,etub_ +\ȮIPlx?c$B+{Dc7v @P5 '_&B:Y m};H퀂"6h1FC? +wFAe[PY;\TxJ;Em(@\,(#U*J ?xp6JAQEə|E0 ^)s?8#Q@5X}\qd+n*_N1{sMa߇nWB^I 9'k*8h +4A;%CJ?&ɼ`k>S/^A kz8p@֑l ~Є_? +ǦTa v ~'q~ًő6e.L >i{wg"?Uƣ?ǀ]O3S|&{ ~n6|f**׏ps=JiϮepE2e.'i*MKVaZŽvnqt/'hjey4~HN P5_.U׬we:±w{F g245uВ#bCla lf?X7xw&c^E"ѯ<*o!" Qnmdo8ww @iK,VX7st 97N]"dpD;Ecދo8Wի84…A^zP;CZ9Ef=vb4 9ͽ], +ڦzDI8I]hivi {jZ!6,s\/M謀\{Kr"yꚮȿ\\m4B w"!P Vc0~ +%1(xЍe|Du]sh ~r >,T4k(TGD7Z#cGmY&0~7MܚKD[?Fxjc>4!ecObka' ۍS ^y%T4;]l_-6{ $U](!n9j#'\mPNAL?:aɚˁmjo~M^'  H@C]lj8M'TfJ9e;ON]kS)ȶCZ#m 5<^IȊ5Yh[~#Al^ƵH\#pz \UBί:?~^i<ܮe7ޭat0Vˮ٥ O-An: to|La%6T_AlgYflӑSB"Lb !O BlhЂHrp׉AxB:1(P8m.31vBb*/FXaq \jh O2 #c`7j'̈0hbҷ:[;Ld4lR7ޱ1n0r:Y1UdOe9Hjr]9^p@mڻ@g$, v" n(`qV+E%>} NΗ4̐) ["b!#5_{}jU%|M oJv%@%H>~\,&7;f(>Oo]xyn 'D0$%Og6+v !OɌ`Vu/wvGخI!;]LG9,EgP06@>H˵>eGA3\jPgca{MDa1c!+#˶bDb;Udr^c#;U&:LG#?DJ(mg>y?56[6E94Zzvl*^p<,E^鵜y':bF3Xv-yLD +eZ;Ue]2; Ss2<-7}W tl/4 zZzlVhѽ'%1 Y>fglA9σMeKOժJ=8 HCW@"&}bO:H|ۥ"-">bՇVIP^ q.T`)/K"u1֢VxQy! }G8=z>6 R>W}\=W6 +q+|F0 I +GKR~vvKEDuO,U %U\ۀ$|46đ–0$ xxZ]e؎s.E_by?:\:H2z, + + | kM H(E!#>3oܓ$.W΍scJ(m3fBxmͨ+\`F)!3.C+ޯvx%>&X633ęHA {Lrk ?<$sPL!zv;,5/s^ 0(0o Ļ$3p gR ]b9%ͷ IAZ.v&_7cx8d99]`3qF VW$ +&d +ͩ3%J=aoZr {R$4{L >u|I+9?cueImطo 74HSfs 2`E/)~`kVIo(y$ƞ)dJHW +86gW/kp֙ҭ$Ⱦׅ/uzI7^\Rb +H1 UB9"HDe *iGѷXa]HK$,2t:1qf޸c`.fȏ=;)D1rS]ˍ$B)azehsī}e$M2w܁4OtxB4㻎f,⳥yXh *uPz5Bth\e<4m,yk^ "Zr%f܎cP!"?x23iﳊGA,DuY'YSk~1W +Os6G5=SU:^OR  ӌ@Ѭ7@@ P&)N.v?d5JLy =o{{zJ,ڭC'@"پ`oS64`9"*uZƍ9 Sϸߵ섵}l既DEwN|=aYc3UX|൦zXu٘LE::KnO40h+,y`(* + Ď?Q67!l=moDa"dNݖqWܹf˂nDj1ytda˂.$V׆Zl,Y -Y~4AsF|gH3*a~,>9%0@@9ܐ)$^1HgZj]EȆu=OgeuC CvM2r\<s)Q=:TA5Qv{A{̀w&ص*"|f2nE3Vt&^]nE՚TbA"R!C>[s>*5 +Hw΢$7DA\>(TTcRey +{7 N@4arn\hP.v +ʥ&e$ȵda[yCէ227ټjll'F%J,tSLfH9׉S=UZ`ZFm.Nrð%-g@S^upo܆I({uR> n PSVFaY:+d$Uek:iP踃Jqm0fҬ&Z*"[U48]A%ԝ;֋Oa^=?g;]<iD0 +3}vT.NkgNTe%4U^`t32qr@&*8)s:^sVJktXHL,\żâOթn=Υ'y?=ew +tZUW,hN >i$_^l\;23ﻲ ¤\YDC0/AA&[޽~ W"&aR!\8|k5~De^4?IxFDz WzT}YrQ-W2Qiv'y`x4^E[RBz^m+ʜP'bשiA}hw#£e8Č}iM•wTs>YSeW%n^1]P+ԑp4חHtsB@{5# -n4gA; F%=\:GMeҨVOJYU4$ S4Y,.n3 7U9s!aS3hSl탍DϿ,e^@xO9q+4}h"KHV]o6*XL$ByLR,3TGj혖#@?mcIm"5o +,O ,)XInvE68p:HٞqC/(I6M9e,B žSxy!WV󳁰aJ?.gm.8F!婹n/Ųj mLAgeס!@I %[r*.W록 b”)^aw~)7[:7M< CRsbzJ + yNy#qs n U,*D:mv)Fy@-*/tgyA+= Ǝ2 652)=w{7!-D &pQK$\%@_Yhf wqF㬈< 2sqAd"'&q6(dה~Bv/<5%pU") o30XsO?+}pBNo27B\- QMw(Z/jOmk + }H\tn|2,νplb^03Bm/JYG{3/59kȍ)Vn}SՏqx0;1I/(72,> JጩrPX`MR8IVCù/4[L~` @2XO\M܆w&ro/Mz]%~Rz +ũrT›+)Yyۯe3HStp@%^a6qb TI?#6>*SHTf /d{U>f14f)g1j(_9)Gs~~U% IAYjs^Ю{ /bWU4w/G;ZV-Xxx_WwdeM _'Q:?ZfZ' ֙%aYADn9 ]IZDž]K#1/~eyP̝WA:2y%rg#*Mp<`qi෎ 4ZZIn4N' +]"dg`|-',^#*[輚uCg9dG +3QA]@wFZ{7 LվoAܨ\VpX[8pXUê\[ xgz`w%ٳ̵$T C}uwߖ%@Ļ.Q;O{UvS w}@^q e5;W{#idL,-=\е$ѝ +9qlz]76(\KJrߓ%s& ʊF+¢ʲn,lsܼp=IGh1T&K>b ZH§%!ă+RM +بdG,ШwaG]kcl0.ZjuђÊP-~)Y֦[ybzđ] ֠]5 A'ЗfeVύT@uD-ZޠDg5IՇX +V/Lɖ ǩ${HWkPy<)?~nJ,qn+X,Mԧ%-)cUkJr5<:`9S/xY)!}.#_i_A=7uZ[Qu"ɹL vN FiWp +`VL*Fi/^tR1yJ +2z%o"%bToǸ[D-V1fN>$^nNFS[3:a܍`oDqNUpkY +b͝+WQ"8IխH$fD =1F-\^H"d\C" +G76Ńsk\DJK._Mٙ5l7a&XRJ1g:.0JXR&\,uuF \oDKm\M> RG$៊43Ϳ&ϮNMwK?s~nobZoN6'Ve;EY i!̇j]9`vtju0=[ VINoqsG͞i&QlGӉgrfOKs +-Q:,؎/>ds=p erx$vVigGw\Ee"@͏#b!'Α~>nfx5˃vߌSeg(L3#{ 'Ja53jVa3{ }* oA9A4p(s r4'&nbPYry D)E=-.3h$KdGQ'vY~K1XUd i#NRx*fMIWa2 +0 v]xݣ|nGɥP?v#M?x1i1kFc݄Ơl]YZ'{Up0:UM^=kt>D!LRnKS5Xi`9.=z1Dom^l'PMy: U)?=DOIn颊EWlZ#n7WЊ'7:NXuj&}`UP}p!ٳGe%hrVv(}%Ԥ߃)_p3ܻTϖ4A,j;TFկU#BcJx1ݼ$:*Ҥ;DHpzPhK- Sw1)^c`m1ҔvHcA \BMљfj!#$2;N7tA%[v: oa#xNs0kϽ\-.%N"wW{(7 H:סu(9S2~*yk]z;Yɇ-MB^{mǷ)HK/Мw^2K1c&3}іzP=z $ Eio4'P)j9L&4nhS\c`HƾtkRk^ +_8^뺯˪3=^ 1uP_vz y=uWqkigq(p P7X}UdAkVDwWU@y/ux|A02SNh g|6uޢ{CV{%%Q +]4©[ߗ`gpr#}6Tۑh/wȀQ+F ֠xjZt$Ҧh8,*'L~# S@zrSFpq@ŠtGIBi'~ZRv/1Ld+o+|8&mB)y .g{?7("7:۩kPJ!~ CY{&\|anD@iA6 cl@))3͈O9)XW bEV=+c8n(+^%Qa&&sn^xYA%ar ĦQGPPJ٢bT)%f_gYbE5}#]fy5[XS.M"ЫN*xupfAfvyFWOY#e/!>zU.Pm^Qkbxڔ#d"&vG&]תtKT<ܪbp96 <L:LY^V>oܱCutt4\Cu OŠC,={(*>Lv`&XP,,olW^E4b'狒Fn! 8v,˱ZC2ѹTcȟP]JuG9u4A^Dޛ n6h=ayE~ů)8Lr;xwVF벪`0ɷכ&'LBLfD2sLw|?)Jen'x)uYn0ә},@˹yNQaYIt'MnaZGkޅYBR깈Q靮c=I~YWUSc =4;mBָ8%YTcHc '~pX;uRGp7ݓb +7S<1dȲΑR❆e*T(%EWY'( BP3 +h?NA +)\]YUsMk98%q.BqT8$kVrP}Pxي'!#8`4wޠm^+muek&&)28)% A{;`䭺AN" juuu̺A&ND -ڑ]f-[8P,(ѬAUE[SV$'.ک--W&X$ƒsC, cz(3lܣdU↗D3 BΧMj_m.pb[`ů<Š@JY/K _nB?7LŀO%T;Ou#; h+[zl v93" &q5:W>9qHj#0#g<,w`I Z\aaֵkDs-3M "ڑܙ.LEfAQ&I`RqcIUx |ȁ+r$pVB*rYC;k_ÇrHz0=ٱ:n.DpSs k#$ih*g`YIK +mFh#Aӱac bm#娛kbѠX\\\D=kBUV6>V\r7u8\ Y +%NrS^"Y >`%kI8s}q0N'&*g_ߘj)ܧlg`{ E5?KO;YG%gKqP3y]Pz}\NԐ% QSoRu]=`&Ay zEY󺧅T(oh?V"(Z})/tBEuϬ(h Ye8"2w#OT#ijHMnqG7j~}Xp?Hn^qӲcW6 @s%Uo"->[l<2+r}{30K6XOXDgαMVv.xSjӓK؋ q? P/!Ż}QBSDf/<p<5cpDdA+hgB].Ɖunx` 8$F̿1K,B5],}:\yToywWm=T$REmJR7.Ǖl,.Wv +︾U몍v1uuɺ6tm_)̄kZe'z=?cucDz/%>Ѭ󐣼Yr^RdquSNפ}*}v[a#y((uݿƆ\G]Dg΋[32Qߟs(r(2YΏ\]|W).ޠ\%:uϺv(Z]+yN,A#j\rg ~%6Ƀutz9D#BhDF|U:ZZ$pb_k_rxh~Y,p+dUÇg9Vc,@dx8"҄МȠi ˊ12 QC--sCMwyqy'|@>ZYbئyE&7 +;9G5(&Ts^45+UnNIHd[:dQPcFj=+>Bs]O)ZE65+%:gbo@Q92w[˟VPsT]inSRp=يv8F0\b~ +fhx+*ɓ6r2Pf'~/D+\G RJ,rwd1JԦ}6CF-猃7ŒP + > OeOx VhQ\Wy\#zWHJ/V;ҟ<'K3hQGtŎO:#E.=4 tK d0ՉNd_-77z97}6Y+}^yBvgeXz?Cdz♗L H5Bs#1!j>տAukM :12?ĵQU RTs URml>;Ӻ-:ZhVn j:Iy02uĞf;@P;8ɬ;ha xN6]gF\)EIM s~ĵMIxzL0J˜7okYS3;b]x?ӠWhPj/,r*\CE) +DOȪ_al؞9:fމsps:\DaD?ws'UM?1B%7!w. 9u!S<:URZ0ْHM7 ⤞ hX<{#i6-m{Ή6:7o(e3DeFx<O.i0:0;{f4?p>iTp.;R?s'Ü~ldϏU߈9t9JJOWNQiyhτ)0k @S̾y["cܧ8a7񤻺t8e #0}BplDy +5VAuhp5.]'piv6:Wpe uPt`Dcd|p!@1>Ur^6yaDJl_1–$ +c=< UX~ Rw+OJ +kfLȝɑhz os;߾)4@8J7 `! ߇ 8 l[8d\+Fn#KM?A^\?fjr_S4]wI5}4 d/ZO,?g8GX V@Ow5NP;O lH&2lwuwWeΜ@'|ћhV~rv HXss"8~/Dl_T\@щ!enF8'1tLg|q(LCU@:O3A}k3p/E( +NJ@:,7A^t[J:2ZhT~=z=<է6 ΃=bɑtA8iκ66՟Dh#cZ +(݋La.ˈ Rz= 0o VLZӋr8G YgGwcV{8gf]+$u#qټwؘ#GcS Mk }Aa9o֩:\Ŀ&}^3dY{O T=_Q0- ħňOd *=xCM!ъdpswa׭'=XʶcI|vEQ(Eu E[gS0F$ h΢: HsI<)ɥD| gAVܷ3<)%ʑMF(hi@ ,)Q_Jj΢Qsi\d&Y+6Cp|fN\39+ `@j:jAzKX*q9^_ FYR!bӒ{,rVC\')@NZDo;t3$G*hP;.Ej@xhVӒԬWEi# +&Z5h%U"a*}V) ՚9IeGERusTTӊ4^I$GrKE ڋK77D*4c7Ү 4&C (߄÷y*f؍s0!I-(!BL]jdƫi4&j[u= 6wFehLEL'FVc[B"% "EG(ELc+},kهic>nfGyw=.oL_=xL6:\3~0iS+Euy伄'&9h,fyƆ/,Ϟ5˚sꞧsyzSyz>=R8O/zw9iyyz*:Oy:;ȅQn}pGO0y {wS]W<\>X;> p$@>E 9Ct=9:kP|Nݗ݄Dk#ж$mOɉ:6٣#mpv+o6{0>\OJx:J[p *c]jΜI=:Y8 ԇD.nedzY=5wspN>Ƿ[䚙&zc\F#]Kqj)H +ڷfe"/鞞cl`#i<Ȏ:5@kk|"Uqb81t^b-aaL((>J_[(C#go:-q}:?V{R3@ +3MNM5"NөYxqsFaБpǿry2˓.蜆=݂=z aFJa%ّB( rde$\9j{tv::+_QqA?5EOy<.mSK7cG F[mX,n5.yu^#ݺZh. tǀ7 iЫ]Bڭu[G7|@eBLMMbt)>_Y?/+\Z.\RXFKZ(7xuh#i70BzT/~"ȧbX ͏[wb'PglIn8; +*mecOg/m/'> Q~Z O+nWpie'k0˄k,v!혉y1 xq=.5!X17nMK&ُ'NK[Xv%JW +k7U騍ig^.?_l&Ys&|p*G ]ɣ+WkV>#xt +ia*r [ʪb,{l-xϰ_Y;/*#:|$ivg5TV[}yrh* :ujٗvbp*=7b-¾4hJ4ř_ *_8_}:o4Q!9E1[ +FFL%{m5fbTx-|;|! _]7S@bkuu4g2Vf>,nFݨ" "(iv~Vb!r-D7{Q?2P@MP?֑ʉk*2m@q6|IS?ҡ~XA|I +ZcBUolU$"aj>NYVI2pQ.U*B_K,6.aARWd-; +}`+\A^Ji=Jso˸Yj>uWgku"<ɇh;jq'.27ojZCzPkC:*+a]B'xmjCNÖ  pY,`~ij<'߹H ).*!)'dxu0As|4DQЉ;%.$8eR thj]@ZT*5wWXľ?0e޺ag骼"BoEV{xبϩդ +H^=*8Yo|tdgʍm9Z|lQC|W'Cly}=kXl)f^lyɒM7굊 xe~KTU:;%:c7#Liusj3=w"L7{6;6,yc'LL(FGO084ᄏx'x N8qQgQAqIj +x#},Ax$38,5|zGb6r OyI\x ]wd.]nnvdVGUM# ْko9b'uZS u"rxRbOf>Q'$~ אXM؈%Kz@ؐԕ^^\Hodą7,V[;u39ƖI-Q"x7P/k7 -]af ,e&["BK$jpb`NTv } X)u}sH U_6-:)U(Yw'Mw/ Vqu[dn.q+uKdGPAwԺfh.u/%ýCu+:b;'u*%rV)JUʻSoD*-d#K%nQ#3K\:Qi1c͇C+ZWIT7禠Woz ˠu@VtW]t+u5 x}VL~QQjƨ_Ըm|D)>y/qAuK:֬jpDJj&m%P^B-ѿ}vQ];k9&4$}#+"H +Q0Aޟ;W`TCu.SMCTNR/*t + CRb{g"+TۋRfɬ-VwkpjS:T"ݓzBsIV>ɩR;tdr(6HH@=^iסG we6v$p;um`]z;wk WڷD2DtBBIX;F[qGH^4o!~i?PIVfz0/iٚ}~512e> 5ݿdG X9"'J1y)+PH.Bz S +Vp"|λ7F>@J%]9~6( xv;5)p)Xӆ.@']8|bã8eZD7UPN)'y,ƟOѐCR(<nT \2#E2")zQ`_3FSkBq7^#td`~;Uw睟{=%=i[=4t; kAEJlobY-\US}NF:=evQf6' Q +4ج.9@}=o}jSaAMƇ8݇Z+L))is~gs޼x0XU#:/[uM ܆k)eJ?酝-PXqwOKx@ B"6pЊ<8/Ԗ_GmEDm3a0 Y3>,#"nn:Go|x?R{r_!pjϺ3_p୶h-gpx돊 F k2 }3k?%I 8SdcV S^t W)F?.K1`74c:m]?_ D[e|V0@O6.Dmapa +7x5m^ +hp**۴[:ڪu0EDW|'92c"ʷ%Ut. Z'Y۶Hod*Hyf߾Bװt~n~;vŷf~6y`V{"k6$"YCGTʈy #x% 0Q).WSRg[NFbyCC"W7Xp}1|ʏ0[.]w^uD ?ba48^vǍ~":fn/c?3X@b+} ]9$?/uA^ʆQ_lG=D ظaˠ +C_- +><0J>ҡ tk +6-hO8;X +pH/k谕(:LH H؎ڞb<cɄe' ;m=6mGZ[;.DE&P*GCʬ %*?$i(۷w{ov+c.h30g~J*Z(@|OϑP(4d'CYX9IND®m1MG_5n-Xq֙ ĭTy(Oiv(O?5 =MG;5آjmI +]Gĉsd +E4&:$%p x+U + <*ƒE  +qf lsBM )܉l xzAbHkPsG)qiq- WF6J<4}ꐣ-@$3h+OփA]ih lǦ~dɗs4C{D=6~ŞupVL SIŗl^AGPx%S:&TD\g76)Mt,s-ҭX( +8J\(NCCزVvquc As@Kgu~q=u U6}?Zw ؋N'gǿȉ~֑EٱtS:ς>/&ë𻴭}v&ITuv3\C1GH `Ǜ\ٖ m7s-EWuBEr@ K}0ln!E2[7:CtyLH_S:YtuzpkM:G8vpt=86ԹGOw'dخqZ8A}N-_ܖrU^˹!bSjghigƻhҮKH^ YńҌ*]$P{eu!W5;ηфd1ZP ɮ1U5qL2|%*M?4J4=8X8y_1wkރ΂3"_=[Czo/pr=7(ɽ]mvF/^ןKц j!z>QyTtSSQ;S}PZ'{ \yzr:yo&ڽgOGBwm{ߔ>qK wS۩S}=>3!ZM74Ďs'z_ +zߍeLWY3I#]2ۧN*Wm2P"/]/8Y 6Afik624黄$O7GL{AF.:'/.靦s)~ȣml vg8KHt 8Zn*?-/wIcP63~T|9xF@2 o7Y^hM_?dxAPBT!FU  `va7Y > ZチY j+M:ͫbQ8\X)HՂ\ +Y'H<l\[LKlխލ4U љsgӴS{bmajKյ ;z[iT9R]pې qE¥IvT/`ݧ;tFE)_KNƱX?0\Uf~mV% u֯*:ϿjžH x6%ATgRT7/'|R]QW$b>TWKuc>{]w'ya,p Z`SLjk X=XkcT`ፓWo7^ ҕ.͵Ppլi2'/+g4&y)[0|bnQ0|Ԃg C[&Ɵё'uo<:t4?Ayş\H^p.$Vjx.ʼn4+NYt""[xn;9l.<$޿zuF ps׈v6,5[ق"z:c/29=o*m_f>"1<(IOALq.iWs9WKo0_DWY@][i B(C T@12᪃65^ +*hɎh/Q[;ńsVI Y*ℌ[l(*C؅R**vɸA`Bǔv6@"xwSCA *&^pPn}x +TlW"" iYh>~߬u-2L Rܓ'Ҥ(4Px1xi5^2@`w(vz5eNڡ.*Z<k>Q\Ԕ=AˮQvJM ?)m/;Ln|MOeӭ04tk쵭H_`R.~!>D|uN3xt悫RqA.3[*=c @g+ % We2z1V>45-` +ӂd/tӂe[tljq[̵i6|o1ylN|‡tpI!<|IC?!l()F9+{!\%N8KŻED؄QDN\"#xNHd;F;P))(rG7*4%w[y׾.KS\M9TE~戧KQbvjv]Ź B^[郲l+4#Bu!DR >~e~-ƳUw3 fhܲs%)UiTRH(n!/AbC)MW +ʝXŝxCs;a'^" w%*w"G|40oUP\bO +J@9}¥ MDP|9>F1g &!w*zj ;p ۜ*1 9zo8PB˓â0d( Qxe&Sf +P$0'>NE} L+d*R+i +ׂ_"~+f;_7P6if~E)K +}1!3j~:4tu +bk\'? iiɵ\bKatw7 +q OBQ+_jcM֛m|pfq| -׊oQ͹-)Xj07 L!HI*\1 F9w$Z誁;s2Ls.$-&܊ie| w.mʷp[oqko1y-j[-%zA*arΝ&v,$hA!h]nٵm\hA\{o`n|O7!t lZwO"7ͧq$(R|:,Q#1< nEIR^ Ay$6ˣu$- ŧFg1zu-ύ1)߬iTD!;5$XB%*B&@sZO}X_rVf[Z{WQBoĞw1QĨg55o.)kSͺpʏ%?(h)?{aS'AlW}ѯ~zѯ_ +R>o^'b¡, M̳冑F8#b \8i=8[IKIe94/ٰu%mʿR^(/3enrCֺ-Y+?Gҹ%//6coJq10Z `a:;ޏIrSw]}:էK}էG} +|Jy5/?͔2ble? ~[A +b ; +d(2$QF{+www} +ܵ0F_Rf^e^d^c^b^a Sևg 3tXɤx ~T~[q߼^u/N^}Ō?+V;3YM͐tUUv05HGvMO'CEǓQrؕ|0C\v'M3d@c-O lO$zdp<$1K% @> ?{t?ٟ0'qoS^>AYvڻ0ybiO:ɯdOWGD!%O\icWmł]5/r)7ƌ5&bP4V\Jc6DxD{obW=>|V |yo89'hqkK{¾E\DU 8_*onä)G ;LytDN=Lvnj|Ұ=j~6|Oq|8#YKg<0cw3FpwmzU_!DZ_f@&[UE;p?8/.S|EwEuqA0kMa3 C. 7G4Y3|լ~Y|{@~Y.7_:vAѭz,}iۥH[ Ie?{t$dor{a=XExEN +jOv|nU:v#'Bʻ!dԗimD#$B5bˉ\T>2IlItIr+^R n rl.BSL>x_y`C+埊!!8gy~ͅr %#g eWw{w[%.E#f5_$.W 5l7Vgj0G+kiɦ.jע(կ&.k8lwYp6IGVh"|ڲ08 +)/|}m6XZɗ`K",cx)K&ae69r+?? -^{ $1,7 ~m^P})\ah[ +]Y|p:~F>jU}$Ԅx~ &v"HFCE;zhhm<!Jdr:CZV;u79}w8W _pE}Ҩ/YE}5z7YC2LwRGQتCB\"4A@Ĉln˷eu RkЭ亇;7;*t'~!2wB4w}sI^uT>*_Nnӕv;GtԻ;$WOKe\J N"|Oy#@F8m %>O>Um@CzKN +? z |") +D/}u >ޒ +Ջ?t:"OTɣx "c#̗ࢉVok/\Oqͯn/)~r a_bp$ex; ` ͫ%$tz Sэٍ*W~O7>ݫ^!g >g߮T*eYN?V X?{ĉ?4rzݫ9%?!&0l4'Ie]Szt>63^{iPIHϊWլ2r/"#|-9Rg1(*DZa9d(ؕ3#GBMOb7m^h |ǜ؁nJ+BE>rJ/KDN/`0g?'!e1)TQr[[7-aHzx]?Pl<@XCV+%|ʬ=d}@)~{Sb6|g}ːSgԺe_J?X@soN7;X} 8X:,/;X^M<;ҠJAl JE"3 cNaԗ y.'>v Yh YBuкdT::Ry#ƞYy!cT6ڢ59׌BMg:`$ipQ)Iva}it˂ߤc#ݡjqH` u>xW1| g\D۵D^pnVpJg;_67W;k/M*K93y[!(KfiLN0hd* դw"="%jQڔܑ%ÁV]~WhRҬsV })|Ϙ&%l%!|Hڿ+dDS}!R-P,E!u,pGȠ _`Or@l{2wtb8Nud(Š8[ hS;;'38^GOz!Ӭ GLY/ ^ꔥ+c1! bbPП;ޢ!qsi~UUB1v۞ȋdR?kB>i$z?9%}JYo!b(K;aUbl~7Hde Ta5vB.%E>d;>G'/xEt98h>\ o4g""T?xPB\Ic._-_Ŝ6 /h7ĿdPgȕ_p<{\{WE4uD7UR^8?G-Fb]0E'MmZ5# +!TY_nD&b+:8myȨFeXS^7I횰GpzKE#{ ҺZԳ,K +P&xpS5y[V<:R&);7fbF_ZW>3>ҿ^FȜS%[fn+ †AwhӐ4)G F4PMħ$MQxըEV䤸a]n '7;ްɆ'rŪgyǕHWԣVBPԁNTފ5ڈ:jtA + bDOهI vF \g>qd0^cbkb7{HP'ѳ^. 1bֱ4vl7wAnzl& =63|!%q0]FnH9D@) }nBȁ]mGngR;X-*r'@5ER^ mVfw:QNСK=wNTVc%zlWU7{`M":͋| x;38PSDpuKBCXߐK?ZNdNq+p%m@j"1 易ȿ GP.i"!g؝<}UA=L)"TFu"} a +<Y)CY=ПÃPWz-*M,鈍/]Ϣ|/bn/ +AE=Ȧ:o\Ll[^dwFkzHcH%XO2]"f9G_i똢{B塭ȿ~UYt%TO LV".Hȑbaa@zyo*mf:"ة B#\_| 4_gWdcw Dr t+:)ba{|F_Jc*"5h[nVG >c%jl ⷰb) E)\?e? yC5WE}ky\ +}ʷAsH[x|gٵ㷟U I5ﵵ&Qmg)w?uaYtjBFIGixRtsV+#y-%+仴SWQ=[))[GW[?*7Kft$ҪwVq\+F^^O8%B-"p@ @ gLI !eG<$Qp4 N$_zJ8!,[iZ i2[-b`vrL> |&YeaaitQ k*kSLmnax#F "K Ts:ZnNޏ6TѲ,ߣ&ǵbՋb,.ЦnߌDVh7λdsn "K +"49'xCP4؅2هh` Yn!l&DnāP;"9pKDG"q(AH=qU"8f䏒J%CrЄfI<_EӺr^''[Ս3iA&7ّ宷G𶁨bfUo +q do'"#NѬ +S>UxGtbݬNЋf5Ƭ7fN=z ߵN_ كg^,&W4FޚQ- x"vk筳Zmv~h \ral(A~7' Ў3*9Ҕa㐒A[; @10;V&QVztlP<톹mAEe>B'HpH0}C'' '']]N=Tz(zJ=Cqr!{kĆPl9Dc;gwC3,ih ?W,&p(7٨muOF-7vm.2srhn`AnkԹ5qڱ&э fk>m&l= #iifY;}JavsS%m#`3)pUMR"7P+lhlDk9ݵ&HOߴL/윑w(pFh10Bб[" /.xm21id 0k# p]HfxOj|񺀓&ފUC'E KJFRh#$g&#Z]<=.]êBWpJ4k;m5F;0D'Kz^k5f^-)"E^E/ G56;$y9Yٟ.Lo%`^@B]ϋXaylQDvF2M5q1~wF/LGPS"j   .% pzQ\יas=MfmQR#vhb~1ؓjO*vf(۹nzsȹ%sO81t=Cg 1fֽǾ41Ӿ|_ѹσ`nyd0|Q}}:Jru ]7ї c?:P(g-0J/?is1}fcȧOMn~^X`2'&KS$H{D*!t5Ny0=D6<"49)Uࠎ. .fS~$5ƪ65a0E*LAJ3sd^Ydž{olׯk._WwK4'[p݃nNQ!G-{fpo 5qc)vL3 KY^~_lk);|Dp?*cC_BU aL` =?D·_m_c8lmX;{\dr +Ia5H0iZS  ^&k$7fݩY4 h.<9vX cק h T5Lv;,v `'KlYnuli^]=+xC:]CmNNZt\*V %="vI&p|S@*1M*H5d.!כ}"8aն$\!ܪ#ˁ+NsJ@We˺RސTNϰE"+BLwY%_Db+sֲ.fM"`zîrɮgA;{ʈn4?Ic1|%8C,8 ΓlfUZ[}|1:N6aǣםuy80dKOOFF;Y\((RPs`&4=l3/0yw "$n-jD ’wxSXX@f8=&sMˠUKr4!CmN +7f]L)&mIRDoi 1;]"4Q㧷s>6nЫMe̥fHL>Z(Oh<n(MzMڍ#^lbϊNq +C`7sqLOH+f_,>9"jk4_Aj kSr5@e*#^BdU&8Adޥ 6v(~WC`q\hV! `(D}Ȁ6){,;K(zh0&nRq>@H_+IxERwcX3DuR%2%](FUFGvPYFKj|)cx= ш+I!$@79(0BX! +t*NdLz.Q*WC-$jN]#Ehw"e Gb0Sm5g=ȤFI#*`8z)gMh]eQ +֛ק_{}ss}kV:zSS-"%]`מ92nzvV 5|JvHe%x4q7Gu ڍBTh֦ʭ"@Wy"O]^%B; _\n<e3ڇPDwˡfUAYvGBϚW]+>_2N^fz` =]V +řjﷴlsk]RO24zBU5d\yzZ[%M^Ws8RЃE(0PPԉ 3:QX@ס,B͎oe"_HzQ#: :/OH5,fWJ(q,V 5^ +WZ%Yx7y\c@]B CG,Aٟ!LՠDŽ3#Y'`q%&΢XYWIx޷u%F(w(@ٓ5WC^`v#k r0ڈg5e@?y"\X s7 R yQ&KG/B`h\| +~{v<؋u|=&saNDȶ.T)UAib"j3:P7!z*D'E6Ni8ux̄uќZPo(d:")9-E|#m#FqOco ^T:kv?ƑA1 J&$:U7|1i[nC!^'v3NHE؈ݍ-jvVgP*T48 5Qz9ld)s%n#9U{J0jS._#%[BV5Ĕ%fQqIwϣYV7])*Bq$8B,mԣnq7|4yktSI: --Wk͛]s7wtDCfƚ3y?-܋{b; kmuɯ MٌOuKtmrk ѵVl+µ{XMQnӄʾ<so31OYYv5_K ךN>2C=.j'LL;_&{ Sf˫8_|~_`?J.W3p+~#ŃWܖf/y"'J }R>{S&&{p;}>OVG?J>'q}ݛOPR|;3S_ӿ*!I;yxvI?9T+z2C/g945~|&5s4s5jyҽhM5s>m_> +Pֲؗ&ްạE[Z_.Pͮ |⪫3OSןM=|&0a缬qx,E1N.&NA5E/Nr\UgD|4spjOl4S#F5zDh:t~Wn~3f-QZwVnW a=2 vW}mL1@w &Bwp֑K4Pf$kx])[ݭ뜯1 ̳ȳT#1ٿ8&7c'Zfbg艿خpPql[4fYh6npWy:I/>&2sh(MdYƉEe]x\7GqqcǴ.غtEv2\ 0? 䉚Se0@2SDXB8c;.!{ 9:[F MŃS!us &3hۉ՝v]Y͂o{BY&dԾ|R'#q9й5 =߻e=8Vvmyw3X },.Ty+5-FP٤Dsw탓MTr{ +J_`w`=Vk3 =+ȺzT55B xDzqXW:-kmҚR>Rwq $QƱM:ʉx<ǩS81lbplq2wN cJ-_bq&~Fzg>lhC#y&M4 8wUA=. 42y?9L e%K?O{+gv}$%1sA_~1H>*H^>R{RokKKg4NѧzEANB=O൳ҭxܾ'Ԧ>q5#h1RMqV`G0d+3\^2s/[v|3z؁o} gx7'7cO>$/O6~f?=7m՛>߯ϊ1 '={UiW*q6wof][21)]vs׿cKDz!Uņ^C{20E7(CodJ{ze"B7nH29ס#&4d?L~?uZ2oNXFaYciA~6oSp\㤃/ s}kܷڴ}36Upls\񧼁*$Y!ڏee)<ƫsƗ7n󳢰A\_0,jnb_J(OUBmyUW@v%[JbhZKt&N.o_Ny4O@X,"=X$y3 *ʥC+Z 5◦yN+op]_~TOtKspJI:7\gg/KsvrUAxu0z vJ?k+aut;_k +Ăkjf8PR[7"]m4" nr;xxs +Fw9UtݥeipT7dDvvsk* ,:U*^CVL1adCy%3ϧզ s(R +A :7dT2K +`z&AsUT`6s+;5Myi^X=ԳOtw' Ŀ Lnژ'>ş;(HY )6\(BE^%F^NcHZ'ϥϣ!fg^ꨥ'OXnŏ g.b +}sB:U~b@b.KbmuMd?>>v-=lGy>5xq&ɧP]7Hn nw ;k$\8"ۋR +A?N$wmrO1ɓ=O|w[u.VTrEKg$ŗeF.;88|oEߔ%t"ʝy'8KF,`)Yap7.wr=(+q}W+.|I{f''vEs:W~(ׇ3H29Md~&Gy +Ɇ]/>NL?2¸Ń6@ =4yämpS#5+>db2x+o?I~"Y_&>Y}k +斾0|vɨrQʯ[b1˻k/}ws76AtomNۗ'Ѱo&$ӍtE@mt1]q*QG ~Yl{;fݳ{ݽI6a.vXTb@L"`ʆMd7* +qWfC`ػ ">miK+**X$%Azi9gݿX>!{ܙ3gΜ93sD->#:>IbRQ]qY:wcntTuZv_Ԍ߅jcΪAi|.@i˫>p _ kYD gg\bjT[tp/6i0}`1o/dSizAD! ^K_N;t(H"EӲ(H[Dž{}!XGbĸ$YLXy?NZOaiHw:7J͇>~L!s{ӺFT =} :Ӷ:`y:0Ӳv&j;Q X:瘥-bwQεzcN-m chX<36wbq<ӹl~~vʱt3 H[X65v&wCI!k 7)FEk# lلKxj]#a GjcQVg?jjjT@>@X={Lg9:ޅ>ۍuloVz̧KC1RcM+#%$TװwV /'DRIhl=2ºA^2 Gl@%}hZkQLg7V>\A%ƻ@tH3BU4őHh7j؇Ng) ȾZ»fQEE3aԙ"5PKY+U,%&FiXj{4V'zjQhr47 _G o0Od4oNOٺoWo@@9 +bE:7ao-ͼ3Q5=B# + $"u +B6M6L.X5C 13v`ͩ1G7S$k `5JV8hF}?9[wZW^H@6 liP/-FK_U9H` ;}ʐݐD +[3{.WG`@!kGaʦL*5lVj~of +|XO-τ _idA.fjv!-MЉѼ󩎯U0cnfGFd|U/8XN!AGMj1#C>tMȍGHd"[ae/.r}hΜ~)ȄfP!j=L=GS|3ENHz/lԍ_CBb8>(-Fx XJ*uQtHF5cA^BS<۠1_T1e&H3iTh+1cqq)#D@D]ۼHYMbG<sΟuE&x)vۄ!"_z?b){ѾXS˟IZWak~ֺ +鳑z^,GWڕyHU:ǕÛ ?e\CP5؅qJVc7d./AQZm Qf??M{6EyF˿塳7bx1?f13N9Ú~c_XczZf)2e<~,ǛcP"E6,1|TjmqxwpoVu\ )ʝEǙirֹ;W ?]2_ͣ%,,v"S9Ā;WB53wU-ݿz~!#}bЈEE-0{J@§S52Nk@jrtZa&1ڹx +Ü_Ijr,O..:Czrm3Iv})5몾 S;Aa/ڝ~b!B"a_tQӭ_Vke$*6PWhMd=b[?ű ;5Q5/ +LC*JS}D -ڷa)qBC۔=l⪾3n+E[#FWm~WmpGr>FCdHu8qEJ^D8%{:U%k#Z!9 R9ɧ$,[ oGb!߮؋+ۥf賟xmɐ䳜f,fC8hS~MڵY+\?)sō5:_ [xl;_K,LwNE5l^ HĊ ivH +MFK ӈkƁx ++> i$p=;}M809k:ĺ&bJ*/h!$m8TL)OY X-$hK05{}?-HS 8]{?W,Ϥzo?_q@bL;k5VWKE@ZsS-< Bq(|~˭ Ŋ`+#6@ eI W O n9+s9* WQڊ_*| ڙoIETsa :zv \q.JVv X>Cy7~m:_.6O982AϘs,+N6WuĂ%H}ks`:BiZnoFGD;q ek + 0+.Nɲ5 #}U}YfRL.{C7+? ZZUpv>ҴӸ2С,*(Ց=R3zA'J Ͱo’umZ\:agmNُy7_.y :}Fb[Es* ۷C!7E +,[eKCdߚa^Zu?,[Bu5y`tl݂>;h 룵 +XRٓhzAJ"r}$ +RT}CsFi{VCZ"J3|a\fʅ%@K{# +N3cC#"` YGw"+|<0`_}zC/VWl،bQNfOgp/W}ǭSWĵwZco7dMϺ B(Q)q废w-/+ȚL؏'lׂܠHY> 98Če dq~1U{R20c_:N-~{yqȉ3# mtɌ;rHAhfMPƢHDR~\͆ )P)ͽHw*i~L}P:( p:aT`YEr( M:l3W<$/OJ2Bؚ#:2% +U)9khsh/PJtCWڴ\Ppɔ'A2JKR |YRG[x a5D6FtuOG6n0҉IXCs( +%;PԎfi UY.]H",2?,h"wQPVFw$YleXyr7YtR[;`:}iRFIV5(FjkZ :E{yU4+?I P35je*!AD HtL04N+ęrB+!gheAfunf%Kd}$t^ZѨ}$w8Ua{Y7mUg^vErc5y.GlUJ ݛi!yl,n>:geMƗ4㾫z/G.SK!Oupn}['+IM+{hjZ WiJ.PNAKE\,M'P]O~p'936e4@2Sz@&0J0f?5p8F<-MeQɥtTK- :H+(dțg-/Pxtt*[ d;:&&סk+a0[̨jiK.Զ&JoG{*߄2{+8ʖ.x%W4|5ϡ|gF H5m\4 (PF'MY Ċ[ȴ)D!1M#5QJG%kB+In66h6d#]+\|ӫrFt`EmwadiqQqȵJu>}2}~co!Ʃhœ43!tF2YnCVS[\P;bbIR,j6X,YNʖdI+NKFrK jXa _O?cՀY>[x ЭY-Gʜף4ύ}O%Jkzp֗9љ|ʛB6::iɰJc ~yly?tE5<{w,<jl80mfb&zPRR.ʹ O$j/0 @w +d hr2+Ȱ>m*0:DнX*9uuGA\=@7*Z+w*,vqSrGI,wWSg2Ur{|<4Dx^/࢞mFj>qsr7E:B֚1?N!H7#u㹕'!/]%~تˏӂ#YaaҀ +"{p{s@ zSٲ{#=wv7F͇?|T rr$Wе%ZmUF;_"XKBcZhq Ӡ%R) K*KL$əDz(?_w#N0cK~?_N'zuV~>:SGJdixAڒq#zf +(Oh8>/΋IawBO1gAS-%;i"X:3Axޏ +8tNNHnk?OT3 q}k4< PZ(턎='ahK^vJvtH"I[C\:y΀( 5zt8z}Gk'Zh׸Eږ'ȧ%IzL4y^>vT i`*8  MhP3MhC:'MKZW35cL9D}Ff0 M?f('5I65<_gAy<۔9y<ޫh?`!|Ī+}@P,PɟH*b6T$āKOzp5nCnMk9i "ߜϋ^Czľ&{v#,#1UM69rBR$Q&!z_&zPe礮}wJӵoS&ԼbRiN +?I,^bxHByu&Q1q<KMi&1F.M̒˥q>]9@.[$,%žu=0e[ؖY%h$;zz.\#tPQ,T}CH {s^ Ϭz2C|VބMi*$YۯB϶B +W˳ +PG)AkX~d9f~qc)g~Z>}5o8Ui`rBj;NXet)pR.][c,`S0+e/MnQW $ӑڇX,KSGDR9 D1k3 4M_A+m +r]ՓBWcj,'?30ƙ('L50`?ɥ%EK1* d|n]~̀zD@W4)@مztCoɖ6[DX$?&[ +bH +h/m:vmRvnvd;/'*2J7d{'yp#5 W/ Yx$,ANK1r/ӓ$Ǹc, +PFFsZ62:G FVWH,_[֯KQ)*=r8O}*c ϟ1~LLnFWEoK4)[{іNoF~LM>9>t?uE~#G7W_#Ёt1ń3Ej5:rk+-x$C^HfԨqxL:$VF4Ytcb?'L^!C:(Za k9Ue#CuMkoč et 1mz^s빚KOf{EWI575O_H޾^Vw +$7t_*۟Lʼ$6‹z:੗H%Fl߈(Y6z';hu[n!Uvڥ5*Cxb/$_ӫ={Ո[ "'OTdԗ!DR9_ߛᥧ!k`[FFI^#,` #]OK)tjhھxK/AQK\Gj]@ uݽN?CʵߗK'ܬ?M_OKrj|/٫}} nXvv.ٽCS;:{FdQWHXoW]ֵo-kV HH]%` ]⫖iIm`Zd*YȮ2-i } A`e}k+mC`u4?)ٷ3J~VV|@oE얭"8ޜtiOI^/F@d:< A5\ZP$HzC>l}=atc< uΔhi:D41~gޡ =7˟H \҉ 6E=\ElRUMD&RD4p=TPfCT8:G´XC # +I+lcc5cˏqQ0AztOh(jRK;jzP@N`RX <uW3;qY d*]啎r% &Xjǫ%KY1 QRNjs&wSSςrloo +^lT>OOp0X#  Uh0e;+Fy5`MP70px=5YIo“kkZK$zGcyPά|[$͉7Dy)̿rXK z8)kI*!Ycs5e0C{G"UXJӥ$hq~Jٍ%QyCZ~/~LBET*b]mwJ'ꍍYt7bVx*N')-3UoqH>GgZ,p\9·OاMB:G9 ,EBGBf>@, !KoLG-(_'dY)t6kkQJa RP;zNTFMYL)?;d +P[š\y5:Xd%ˡ(RN@Ulهs s;5dRNxT 5`@KF"YB'^.a( WРn̔.p,Le(. SfK,3,K")xMPMІyCYε 'O[PsUƢ$OU5D˫3'b'X:zbRS^*QXZDe-"ݨcbED\(*TK v%WѵLp25~}B#wy%>ՑУv}x OGiCd.j +SO1Ù-1?QX&]Y J%5-dLpyAOS҆u4ItW,"4MT6:0{H5G\;45hӣ~ MtOPl5td^ٕZqfuBm.)>Ethh_/ʖ{>D"Z53Mq#$8qfyQ^27lo{ ) hO:@O0$T{ J䂯'09 \NBTdwjÁgOS;^LvgWdΐAD1U7ewz1e[%K?ًfzģPGe*e;F۽ 'faBAĴZLkChO(7b FjSKѭZb/l| " O(Y[|z^ϙ5S.I&J*畭YX[IϻU\)@B50?- Ho+*,vj h9w@麏يϡԭ:u--Y7dXEoha,[@U6`;25dg.L*yalZ|/9=:{+J1_[:݀ZY\tD<mM"Z=%Qmnckf-Q rɪIiσ8}Msoc[7oؕG rQr,lK,𰞧^,_ͳ ɖ=IZԬ^b.2Kto2@mԉ(oFkQRIbpCXy Owa:On 6+`7rڛ,Ǹ^~ ^;>]z 272,m^@\>~goO,^pJ4'<2 +- Q1^_8w;!v+ ?%I=5=zPo.Ge~&#,BPF9hq7a,R:zL7yD +9p ec:xA Dp#{K7cdD|/c7dB}l*ZvZkAOzu'r0LT|P%݋7 +͗/7xgxøӷ@E8А?q7q6Eü$s< Პ.;*1lwyܩ4E_`Afn!9 2ά,=*r `+fE@cC՟τ[:[?2@_U ݋1>íAyFy7ST0ll:h aŒ:4Bo8Xz7+[0G:Rgur)BB ~5RYqذ>:Ց4`t0xI?MYۀGq +{9)xNL9C26 qɖ ~wl=E}CQer"=juɍ釒kҫ"n!ff_[,S ^1IЖ'.}Z.T.l(X$·a%ԜԱhRIo_$9VꝸۤT *+\QM(Q9M]Bw3BNTsS$>yZjba9JE1tcO#!ѕMKFF}m?  Sk 䱩u\^@,F5:VVe;OŞ2zβ_\7)+ ᨥf4d[u{Qu馨#+Ϣ\5ݓ 5S%f/],Sߖ-M}W[:ixZ,[H~M!C@'Qmh'<';k9'㑤w4,z쭹S\{7| =$l6WDHÔ!妆rr JBQtRdiɨs?2+R =IŸg鼣sZܷЅ=Waz5t]qYg@M|Yz}z:=wi7jTE,>]|Q.Y^C Soa 2S*G?CSsIu xv J9:EA^7;zsti z4ɛ#r.x-RZI2|hbj%_+ա}RiN}8cWeFX {tT,SS 7nBJ:\)SsudN_& Ήs&vᜉMͬMEZ1 w:_ZcC 58 CĬ(%SߪŚW#Oeti7KZ5XBhkE(;B(rn821iQ#-%dsȏԗ:ך +h5n!yٸiI?E7Ke#6}:l=|-QOo^VM|=ٯ_7t*}YTW$fD]TAyaQWB&1˙9SjO]-iEw/IҴbyqyL/eSe!k$\\Fu~L.<etw=DNhOm``~5PSBbؚZ%e`k)NBdiȴӌiG<5dqäoo`BR,^4BdzTIUczM+݄((oI l> +/ȍY(ZZʮV닥GdeW:GZ!? ;K6}5d WحѧTbț>s#3̂v`m|7d5_h)@زby2DK[*eZFl5>_Ll: 59aZO̬Ŗx3/ Va~"/j ޺ Ok[8j&IH4hʸyL0q#TZf-)UpTOXGƬ~Z5?UnT C(]6AyA8|w})!`T3KLNjۡcԸ㤜x q]!rq Lb5t!윲^ߑ(2JGPބg![݆آhOoX$w 7IkGr⊽lE:ϼv D&9 nO5_J9 J&qB@ \S;r,2(P: +И{Q6^&/t{q[$N,R>@W~]~Fu}gDwjqw lOwQ\YqqvcPFc 2XhodL ĖΔʨh@1O!Af&NNJ:JMGfR𸛎Ǫ8I 0H_8*g'UMGƎ"3 ;D<{L &HΕѝlwgQ#H%bX2d1Z RQ;Nv\SP5(}`ܭAv2KWXN_gاֶ {KR5fɘwΏK6r=I}G_7_Cl)Vi^bi=2Dis- @}K[&&y$ ̓M` + Eː="}ǿfj>}z!Z:Qס9 +xR^#>LN&ZX8$|TGuHKŻ_׳;$De6騠| Jk#yU_Fll4k\}.][4 mCnI\EA4o\d"@6K>dRAG8$=!@ա +e{C6Y7,h3xF48jB@ BpDbQzf +YMr3Ur5r@4҆[ ?N{P^ Iωn`1ZQrLBN>ٗ(ME{31 K#=բɼgς~M`g%}w;֟-J3ew3~2= k~]Pf"ٛ7LR#=@F/1Da$=@|1޼ֱL|z |ֱ޼ѲueHp=@ }q޼dx0 .Y{. L*ܟxo xWʑa$Jje0CP% uLOdfq?KIDOqʏ G))`6ռKP&b,zb&*_/8D +T U ?|o2a.h̕-r4s{/01{R Pᅫ=Hakȋg'{%e,שVE< )T$曾f nA!OА(@Y Y~<5eMoh념X{f|jz;eR HWMy^P5Er1*K}c F򹥓;Y ,G{ZR:Gyɡ5e4$~g1yRputXv!pR<*;C_ުۘB2k 2"oІ^w8m|_C?=V(Y߷+*0UC<FɖqҼ&8z:KT2^ E 4W^Z8Q]x;z?/w;3 FğQ\ +0O?ʳߴPO#";[2}3Q$w%y%HU2N|N f%)$9 3Xq&^?< ħjϘ8uքG@;eNjVqq!W v&G(;"%2TEAw)x;v|;^K`1IA/GCMo6d Y$]D b"jČ{xhѢ$EGxn#80t͍!Z6? ]m&Ӫ⚮g"@YBr_Ws" jZ0w|WvzEDfuB!_C}SK^dҸ2>33O#(#r0SU n`sh3Ur59`0!Q%ە+S]m>Fh'B}c.3wWQP%[iۤkwf#%J5 /V/J}oijқj2_f GdHpE |Ƥ G"JEoScAf䟋}1X2K\h4cm}3=;9ڳI+H+K +u״zPv:pV_يrR$v2r lE%߅ + LmyAа7bm92q;aaW{zyz{gYPw:>~X}-T7;z_ =COB)!zJO}K~*J=k`%y#_d6K +e"%4"﷞c+nE]@/\;7C] ̵<ȳ?eZ4_j7`'ѮTzMtk8~W0~"6*4qT"Μ(os/-) Fc!M);kxꄸDI:m>,}lAFs/tQy uS媃*ګ#;u:l^jm!/;an|IyWz64s6c{8vFjЊP "<&WFF|1W#Dx! +kBa |rVBnSzR %Qi5%7 \خ?: #H\^ U0m\UH_0y h3G2VfCT3Gh'O GmGU&3܍fIKqKX?/4Jdn0b WP8,Prqo|yE+KS/8',AF )\"$9~n5heS~ޝ?$ %F2ؔӬ[2]/Ǧ4B4u=TП3_T]$zdY+.qA [qtRHwɦE4?jt+@^!ق?ۑ{ƒ mJDjM +#}xL%_G_pĖsܢ;;CX, m XiX79a7lM Z O`#Wtf`[Rg +-/X +Jx+h9eg+ 3+ΔNE,S@gݓ*XyV*7`*JdEW)]zK:Uo,TK/tU-f`"^XݎR6G%n1Nw`SRN*#}^=?bD6/֓)8ژP+( JpX Rx)=gs+0XUZf9ƹ#G +1=dj,?ɥL\7$Ü+9A1߀t2 L*o~jmZMP2jNDz̬u2˨22{9'9 )ץ08x҉ˬΐ~iyu<9CW9\<*lx6\yd2zWFlK賆#ѴEqs(0գ<1rzZV @$Qe0_w\5!W] 8Ħ}Oop+9l}C=TW,/x+--1=~?5>u!w~5Y gĊ%-~ϿL:͋,W}O0 Iy)ƴ+uȈh( 1T+l^YH8Y>b1S^ø;cMf.OЌAPwVՑtWa{Sf_h 9[Gg@m6K'"=XڰY{Amڐxu4N-sސ]6sNWqJϣFjT8-cX-9wu</ БT[ofKPq;-)*?:5Qz9J|"2+Q@,*7b +EJ"Ձ~E퍵3hD3_Ђi]vٙi >*T%K qq 8U}RV[2(VUAY-0Օ:aqw 8K3%%*oh&G+zH +L']h^]9|fCMYK, +H9Buh[/*=sΕ؟z_ =If$ ;^BSyH//[LTi,'os@ +( I۫jUʏ{CC5Bj'>[:G~h\uPVn:;@5y.;$iSl%HO) WS d:dd|W'\KM "e ~<_w/ Ph5 #U'{{",!G5e(uJ.?0;?rDiPiFPis(->)}: $DfFKpF0Iºҙ>,Ze3ؔ;i{͔WZJte(iCl0-ID >-yjVSm-bdߎL eDE̮Qv1z`FU#i9ʕBXgP?+ ³T+jZ5T\Ӫk«0^~9%֡Vi҃dwBvlctqg+,s6}f$Ǭc#'=\6-F8R;ީ?$:Ȱ)Ԝ*8wU!ݿ:Mh&tCW'}qחmEܸ4 ܲohDUe[G1=,*Ue<7R8w`x |W&@ An3*:`==KRɛ4 0WHIͲÐ["~o +#wyY\uc VQ-XYjvI" 3n͌D',_ Rs{6 Y@J5,\d sY.vv +s-yjIEb5YmՇ rM#KUhGy{W'YZX(C2g9]^f355w']vvS,2P')P'$ma^>WqFQEY8!dStv)6#/QHQQp4rz" hAFGVCX' +g^uBu}q끩!GzC6de)%m~ХQzl-G&Q )Gn"Ł:kðcZf9H7st#zK#e@1>C~ ¶Oߔ ɰ^@)_T^ E3ղ16Kӷ%Kש)#n!y|dg!)f8XNn}4@ vӓ" 7xzdڱn~PoڝRBmN +55Av76am ܠyj6ڼ6amfmnsuDgc<^yF4l&cyHO[gQ#9% G1>6btlD⭞kCx+_'5g?"q@SJM@KDq` 6u]+TKw.cԇ` e˟i|CtMem8i W8-mFZ.X$9y5:lEi?]4V\_N*1tsCO[BO[COBO)zM/]3BΞCOӺSUic3BOӓ6{qHªs SI,TzօBOS>Yo@>JWh C-' cgLX k[BNPHtD+(Sa$IH'9@,6i؁'uI{g'ku*5="1z.ڠ:6+=%AW!*UkCRD[zZS~ ;'\BN6:+LGKW Hb|SNyp9F\ҷoBoݾDtO6kD$''ҊYd6j:uA,mi hzN5v'(A|$!z@ʄYU\R0 dWC&ɹf(;SL5#p*dd6p#Sqm"уdaS rOGe&A!-G@D> V +!{l\ vħuO:Tj׋1SW|$W:6voU)?3Q\}ղeO0{ZBL1v}VٙiMeap( fA9UOQKHj}ub +Pg}΃TRWАI8dVtUֵX}42*48"x=Ab0604΄'@sx.@J;Jп l\ҁ s7t"b%]xh։㰂%rvF|9)34`?Bbl5\TyP?X(/U_oRF?:$GQCr:$G)$GQCrZ($(_H$(_H$(_H$(_H$(*AդxzHZ-AIPC:$AIPC:$AVjM_Vħ՚ԟ|cU3ֺ?d6~< (@gfM钻C2I4zN cG=X WaAu#mX^DUQ,botm,} EL eL +3\i'+cV~x]UqstR7cjq +uI}VMY,^c# )%-fkfTcXtUc6M!F,{yOybu!#<2Ҭ|壱IPqm^~yjJ76'9ï,!7 <^Oſt2zbIqg#h +UGp{`-;R,ܬcn +L-!PO[eec?WڄP^v #aJ/e84@9 Q~m6V U87fۀ4N )OU{S>چ=Ny + W\B 7K=DxݷE%z m]TNƲE1ȓPeAr?'/d'%7ea0Y{=L2la=AvmZd` +Շpˋm^g*^%{*wFɥplQ[,Ϭұ,W:&w)֍){lݘ+$ܤb~XaBl؟..Ӻe35W6Iu~AdA/[Eڏi>`d }8g/2=ƴr*}2n@b *Fs7y@"F΋|ˉzvUۘoN1CB;@tŒ\W:mZ'WOcwWq + uiX_wپVnRoZ-,L$Fbȇn,r!Ɗy wo^ZeL^Zer^i/m𒩽|/ڋ/ӵ%G{逗'𒧽tL4k/]c!  +}f{#NadFNv} p餦pFdqR,ע~V7*ò0i$6m$|sTp q-'g{Y{@η8Jչi:ULNOOIَ]c*eS8E!rY%Xm YxkmSm- ogƙC  ] ++3@N٥x<*f‡VſTȰc3\"ף +; + L[$1LM:fH5GB:UdS،?D5^,7z\{ C~ߪ+]{Y3ѩE0${OU=4|ތrгI0V"Yl:tyzUJONѫwޏ7fͿt7JLwчY|dߍ6TQmCLꡝ7d;Y`nV݄j$ͺ?$WzlA*]xSΘ9tL͓} 5d ų{1 %gbޟy>1l.[TkucѯD>| \VMVM-6xZR_'?.2;oxXsN NT1tcp3Vyrcͧ:|'wK_Ir7~ƭo{2JlP%;kU O0ׯaJgk4ukEu1z_"EEgrNt'NoU_Yz76 363ih+@f^5k4MRD8`(JjՔ{+ *+vRrtt;$i&^Gu0)z.t'e'*޼N:n:OfqIOg-]0%L-Qv+LDY N@{Q-xxOl&܃GsVg'JZI<3HrW64r6<3!i؏P,seW! GI(e&X~)9z} 4򑸯,^7 @{'"~J&ZF bHҞipA%WUiBL#"f< IK neh7 IeZ/POүn6o੠! &H}$. vH=<JI"qؿa]j~˝Bk$YedoxG(|Y@~D g%;7V֮~+Чnty\_G?puPvnO|\?v;N?Ip +^ {3IpǻosK?S{O>a'LaBFzLNj~qs7ߦ8]G]GUqdђYO,V台ޜꛚG^|`ǸW;ϻwsr=!h|\xd,`)wtK9C/~|c}.[|Pվ%Ky{p>Mp.XMy6Kn?hɂMg밮o;ŏ,}h+Y٠X|O̟x|ӿ nӄe?`CI-o ^}w;ZV\[ءW|5Kц߬ozc-]>΅m*xHW}aߩ'zc߬;yʼnw؇mz`f[=[jjO="諊|%7[^_~{_ٵw[n['r2^AYцQ|key^?(Ѝ7x~1cݸז*x{-wy*qO~_TeX]GGݱm lxnĻ/>~׾sg%-y9^(xer$7}4=EۇcOص.3Sd&4lƽWG&)yFw{}m۷}˷S|?-~zg?7|UC/:3r W+xFeie''g.gӟ;ڰvi*A٣7,~#}W>iygOϧ+oUnGo>=͓ +O?iho'rnxi;WoyQ g7Oy[>|8}rֽxӖwؑCd7q\&_Ƨpø)T:KLN}ϸ緙7>2q˸nk.̝-Sw|[]_{S|yâ/w&Do⚜+[Mox3#*|rɳw7mwi*_;1rCASJnݛc;W$TX,+ [ߺOyp}߿mc Ww'_$ͭh梣7sq׽ȧ`} +@BBM:+kNfs"OT]@]X.IО![RdOX+n\$3Kǐ{K*!"`tôx)RObbbR*OŠ=^ 1LUGUѾ7c"5k^FvN7 ZhpM1;il Q^B#ի폁@!ε|mZ<-Xx9h#ˏlߴXGlA+\\ùw07P~m@nq0~8Yxϵo0g[߶lukg 0{\k?\w7q8tf3/8Y'e8ӬZ/a0c dIZ_7u&ڜ$߹ZW9Wg?Wl7cvwZ?(o93Y>\u077ĮS#GbF{϶1a}l7aP0g( 0xl>N S2 @#kwbAEg1,6@7/0DCt@?Wc!g(Klc( 0xa叡0P +Ca(3f3ϛ~M@ |L[Gzd +/o3).IbI+D1e<qqq8cf1yab߱rbʉŏ>?8Ï>?8lcØYLlhw,&rqDpLtXx8x8xxbGG?8я.~tq]GG?8я.~tq]30&l'F-&-'!hi1D>'!!!hbˉpLl01pLl9 1G}~qG}~1?|8>q?|8>q?|8>q?|8>q0&l'F-&-'!hi1D>'!!!hbˉpLl01pLl9 1G}~qG}~qIZLt9Ѽ-'?|4[NB\9aED}tLtXx8x8xxbGG?8я.~tq]GG?8я.~tq] ?\?\?+pq'pq?+p\?+pq'pq]N,H1$ĔX+c'?\?\?\?+pq'pq?+p\?+pq'pq'pq'pq?\?\?\?\?\CȓaР-|7&'r?$K*߃47p;޿ÍRyg'AZj9j)nfsv2q?R}Խ7a:)1]p#^^NRbFqނE܃!0w6wr=ĽýK;"n>Z0| lp.W u:t}Cpat{3, 4P@oXB(a;F0=9"#7< +h-jRwD`yB 0 0!r!Cy={?!7`0{p`l`7.{yGlɃckcm,v%~=YW}lf( n8Wr(> +Ca(  +Ca( ^0P +Ca(> +Ca( 0~}6!!CCw%cG8;i ~Erg[}_?v |1!\;P_} @?Pgg=_@ua\ù`ù\o?a?lcyi?G?gl +bC`0aP +Ca * ?C\`Ca( - 0P +C? ǎ9:2 Ƅ!C1C 3:6&:ϐȘ4W,;ǜoVMqW'k7{IGHtaz-Qڨ뤩TzmHKvgU#H:+%Oz}L-eRApaS|,t /$oE!M"eI$>6vNr  Rh‚ bmlk:a̽IHɤt֐B$: !CC:).GHI& _x"Y|9&NWG$65Wʲ{j໥[sWmUܱLYIrTi^V&_t/z>^k-n'&q+Ӥ*G*SBoLą99IsX"K̥],Fwdcų2I%,s*"elvf)R$/rr6,p,W+-Y0kn d{/aZJ۽J<fJ嫬2?|$&8|Ϋxo->i^;/ۥqS^8՗ |1F\{Ԟ/x n̦EYFQ,}Uձοi>s iYnU×'SL=+ 1iGlf4G#wFY- #TZF +gq=6:J6n<|Sfﹼd ZzKtXTfVƫj,nK'MB>Bi=OR'#}#$w|cIa96U(IXŸ,O( +q^ZҖZ DKnH +Ay)JphijQ*{!SnryPjۄ4>D%бE&Lz&1}}w4ȷw~>Koa&>d Ff3+$[iO6-?oH\ݽ y+0trcV~:/]OC_ a}r;}4 @WV 9!yi8lWNrU/=m]1]{"IlW eS9=44tNRjǿ|(2Y]Wt&eE^]z %NݵCxDn}%N۽Sd/z<aZm3#mĀsUxWT-țZhKn2n?v@#^Qn~6a;˛EЯHuP1t'&n{Ɗ3j;MIO4\$3i>4DžHSHHHCHwm6jK$|>==פ$Q=gد|Wиo67&5q︡ BmzxXtT9j ?}լti'%Ғ7륤\Riܢo$M"YHQe-}4)ԟԃE--yks]鏤'I$Dk-}M#UNڢ'μE7&FHH1/!-IOolHIѤkǤ -z=i#N:R-e:N\j^GZN -!WZ 믵Ef =-zO&F\1fufX,}ƱD6Ma?g46NȲ*wa=Y:w.+dSYW*%,V*Y>9ZlVŖE, JVV2͠cejSo](3te=r&JtfFOC9} ?C!*3߲u۟__]_yuk恃9z{8yO?;繦oZn2" + #Hg 3?qwGt=tO2ck0dLѣg{}~,Ǎ%6w7׏I.VnylW(-߲԰i{}% _q#vu#=&M2cf^~ -^2G[Uo\Mrwu&>#Q?V_*7޷~0G' |㟆mϴC92<"*:4,&$Ѹ(qEDEK 59*}vx5SyLr6{5Nekf*XВql[6 Ku_w hkCEJ&Q61[gy2ژ>Í#oSms}‚i + +$$b KxĠȮ鳣,˻ŧ2b):s؏@nVH`]ږ(Vn>7RMa5FaVxZVXF9,QK+E <~띈?w}CϐΑr^|k;2y}&i$)ڻYC+3&ԃ&bԃ&"ԃ&Bԃ&ԃ&|ԃ&<ԃ&\ԃ&ԃ&Z)A@ dVz2P+B=hF=h4L2 (jʠ:ePETsP(tAuʠ2f (jʠ2Pp28 L'80 Sdp480~` F <2kL8 v~ƃC`"8G` +8 p"N'S nPNGd(,ee lA6 eMGd3PY Ed3QY Gd(l +4hUPlԃ* +j +F=JPRԃ*lA@6 +j zP5G=TA d QEUPbԃ*l A@VzP5 J 4*Xj`,h@36̊ 4*Xj`4fPA l AhU)h@36AhUU=h͠ +փ*MTzP@fG{A5dK4fPA l2MTzP@@{A5dh@36̉ 4*Xj`\h@36o~Qzqh/'ݟ_qZx { iAׂG̗?-h~|ׂC-ȿ ӂS_-ȿ ׂևX/bhAK7)֫XZ]@<A ?D<ED<I+D<M;D<QK?E<U[E<9e0E|^PDC_DG#DK3DOCESS_AE>YkE>:oM?9_ {SXc^}x٘On=?y(mC~yecMMnPk߬:UYz@<9SӾ+_y@>Ql9 07~u@.ZYq巾_k=(mvAyj潝ɱx!}k=$vwռ3u)搜6>,{1a%;,߹bǷ?,x7&lm#򞝩?|׼rڳbr%SzO~[ޓ{?{\ޥ\sBL!#k1!{q-K.ch\ ^jrmw^׼e]o3uqhZ- L>pEh}f[g=Wt>Š^?gW?zJ.;FuriъC13p.Xu3\kV+]=^51<6GXz`) k3ugN3Za#6j>j/fY#ix#K?^ZWls5Э?wjMeyV3.3aly@ةw_U2>`',R&^/ѭ:PTk="qsR7ec_ Aso=d˯go%.UJ"T #W[ile"6ϡ6mJS]1b؀,fϮ\̲\.fۏ0e}1{hblu~{$b뙜%ɋ/gv+a/E4$gq +mjW Z?gY;-xPVBO366~nǙBrbI&|kR3))kMJ,CڿJi_7)7SMJjҤnR"2LyIoRZ5)1) &%IH6)[Lu +Y"]y'I*|;5okYG^_xې3t,EQ~MJ8gR[5RMJwX &e,}`RXS<4)@V!꾡akI9Yl5WxlR Ĥl|l+rKVU e' +5CkAZgmMFքkW3L{h2]N)sJPڙiCZPgo%yNCOɏ*B.< ߐ89Jd?C $ V$ d=YG֐$ R$,"qddMf$L'TMdxIƑd &H8 CIFhP!$m06- @ ?Z?h}zBhi=,;1Kgi,ںX:[ڧj6uT[/o孝ڴ6孵MkUވB9 brwn:5; KjFWɪܬJ+*vxys}9N]* W]BiՎ5_8\waTzġXVWkk{}fiOjk"kgj'hô!Zoms&rhмi45?jh255Ǒ55ɚuٚi(X0@M?M/MWQVB y쮩hQ3}M__SZL "[&N"/ыODxt<[9#nfK7dK?^' *=;\.aHIITy4FjTR+90~iْ%2iҦiZiIb$ݸc$ٲEڐ"پc)NM i=҉}$Ága)iױcout)wtYRfft3+Kptlku) zNw{w{g|(+(J0'O'ϞI/0RTkT&͘; 9s5kq~/=qoއ/'ccc ccss ssss1౰Ą1Ⱳ 11屵1k²&|mF|񵳬!֒emc9s #^އ߯L_?'e<"yyy5nj\8qP5Fp5:xׇSnY:&ח3_o[E͏5_yI旻o>jS1R85_ UOoO5y/Q!C^xԑZWxyu'u%O^NjzuuZQj[>0ld0cȿsοB 2 !J @\ * 7p/>6?@~0!"! +!fC,Ֆ2X B"$F[ NH}p0c' 8 !W.p\'wB> +(~' ^@)5X޵ +Ђ*8CE +TjաԄZ +A]@Ch@Sf>/h-6ځ7|| +@W~ CwAzA0>A @ A0Ba a0FHps10A$ 0`L) SaL3ă90A,̇`,ſMϏZZ~??e?b~vvOvdde d edF evvvʶDf6& P"* Xl֢oALHl7A1$1Qn²ϊ919bۉMDćbbvbf4{}:MV 8". /XF|"ĦOۥC3a3aSA!7[FL_L[LWLSLOLKRLC _ [ W S O-nȇ+ mf/}*2Neˆ7TrPQTEzbs~5ҬhXڢc>f­znwpEXݟ`VTf%{XSlEo`1hVjLۀc#wa|ǒJ848 uSpkVz>z1OƘ!Bu@~ J|/lzY?6~0+eg-x*PC_'(-4+w(B?vjsC>Bp~6+BY9'czlð CSyWl+ <b{v†G}l ΁E%zǔok(Wa,aXFɄx +~I{j۱m|]!h;i}|||j m志ٙ 'VVťz5j֬Uյv:u֭W~}w 6lãq&M6l֬yO>jѢeVZnӦmv۷СcGN>sg_.]vO$w#00(g^{ӧo~BB4h!C6l#F 5j?3fq"#Ǐ0aĨI&O2%:ziӦO1cYfϞ3gybc_`¸E//Xde˖/_bʄUV^fuׯOJڰaM6o޲e֔m۶o߱c/LMݵ`ؽ{Ϟ{ۿ:|3; 0n9o*&ʌ(Z[baYBYZYVZTdZVhZZVV.f9\?_;'{ߗguyg 6nܴiw}/(-[>p֏>m + >d;>vܵk?={򫯾x}fsٲsΟp?t?r寿^v�6sk;,wlTjQG 6 +&ԌZRkjKwP{H)nM.^O}?DPA_J4NS)=qz4ZH%zkG+ ZMoZZOhG>mTD;3E_З5-G*#tNЯ;2:GIWo5̇1 fc5X-Vc m,5aXK֚ew#"]f.zx֗gw,Æ^fY*&$Φ!6d,{aϰyy6-d +[Ɩcx̧gX=OcehQP"W/.v.Q9>e(3F)N+D<=z#TЂ}pP}GG{)F +Kԕ/sԙ v|F_NS _lقzV@KDѯ㳞ޡukm7kYMPGg%j.G:+K_z~/45|Gxil4[>_x1#z!Sџ|{ϓ޻ճa{ϓ ןwy{}mr DW>fF 7̵okKЁ"պPWr\F=fs"b>\h` R3^!n"R.x6|<%Njjxyy>|J%R9r,cJj(wPbyW!6|QzuF$X | ?Vcq9z|uj[ѥ+G5KD?>kơƚrinG:cNuƝX^11$gCR0UPi,=\&Gأr4ʖSl.FgsrQ%9.-eomoCQrKo8JV.~"JP(5OAI>#zh/BoDoAwhG +r#s502ח={ d]eqn6y0OA@> #g#}EH2Vb]f[Y!]Ë1D^$r{_í@x]#g3 +f{]0^gH{X~?A0 }S&} Z@]ԂFP>@+ڷ $8'ެ^6ڮ뽀6{zJo@yol>N;KOpmΌ(:KuϠ@hYҟPt>$&J`:Zh;³ҋ[`C/}>ޛ'E-}MN*GoWÿF@R0zWP0zg'P8)}8?t>>^W+0;_{ەgP(=7*};(P; ?!%=GxSKO=Hz +#}[xVy OKo/CCU!3^45Tz٫;3(@ջEuzh DtD!uO@!:zXq1wޭ$W]?o6w#LwO ȉYȗǑ?O""U~AWOꞁ|{7X2| w}z)x+xWg{|S/(j/U2O/+ FE;; JuAܙ6B/ +a*>Cgj] ^ c_q*zDsIl0F͡Ľ;1+A[/7ו@o4EORx#8$d\}'J߮?\<*ȵG<{_#gBFG^Hk2 qNo"< ُ{Swyw>zoq'/B N׾{gs#xM^ɻV .z.Cp)}t:&{x6<;$%,SO +ZHN)q1IUuwPIS_JҠpℤadk $qqs$Ua'~~%-$MJ]LS| ~8sKqV+(V[ rw*NH,Z(,K,ci'Y%cNE',?sq9s;R􏐜{¿\%qg )#* 2K3zLA Iיqq֮Qs$;2vZgP +3ZF qW@W`GNʼn~A-qA1qAszIVr +sTĻG +ZI #;tN~!&Z%E`<Av,9\IXɰLb=&( +A%E` $;~0;(`~+&U&-ÂHJCwU$CX4(̖4,Ll596h+Q+Q& ,`ARi~"k3|m2R3K,DeIefwЉHNOw]40I?FRjMZd.Ĺ,y#%}&[J\~I:,,nARs"1|>e(/E兜_"<7[Qċ`or6mEu}Ʒ\RJ!feU^% UFMjj 5EZ6HV,j4ڴ̥ ]D1YBQeb&-ccY'뜔f#Yw:>En酬{F1,aΙel9c'(-q޹Ywu.6=`s1OZ Iæ ВkڐnmtmXI6X6d6Tv߅bm}LK&fmRa16ilDӸdSL٦7`^d49ԔUnd>|2y0)硡>#pg<2>gfGӋ|3+'kfO =9.ߧ%Ytn3+>:w >yoro]a~[\{`ߒS^.{|'څ~/^-#n~b^anl~f́UͫL5q9?y[67lnB{I-m)9ղ%u[m|}mG,EY!619=?[4ײs|/VgF/?z>};B8`{|wptS<?|=?]#%Wf=ba=jnb=ni Ӭ:tTMۭg"8l}jښZښclk%ZMlak6ֺ"[7no֮~]»]w{7GwJwdsX= ]cٻNXim{3]٦O tӐ"BbDŽZjFH!}XBg>p `Y9,8K`8w!edy*XPF`8WFRNԡ&)`~9]Ӆrv.QY2>G@(=G'y:\X2>O%y@] d_yv.HHA(H;JvA.my*(m.|A%Z[JLÀ2L 2˴'-k%S|OZI9+$^yS+4w ʯl_4_ `_YW)UHSJi~_`5J6] L+(=H~S|K#HDlJc\ QD6c^J6 8L S"P +F0ҨA2yRj2 .ْAy|C&H>DyU_nKA/ѩG's@>(cefpt8`1(6  B9 B{AӮpO;AbPO[m5$PA: PJ JkAVbPf@ZH ҲBPHK(83AVBP$nU 4?QIil%֨Ajר6-֨ҨnBoըIF6k<_Zڬ(_Q%uZQ"AyuQu9S#虩QlF5OӨ7;^ pk0RD0hF4'A4poF95rGiQ +pƷhBKj4ɡQzj4F620kIGcQUNٗ9=qӓ2NsOqz$gqz 09-iQ1=^iVN ӊ͜Vszs-`jNo6;8 K8mZisq*lN[8},(?<0ٲIcR'$0^YMQk[V+;+$>}!k;`̲k>0D)(aZE;*.~VY'7?$}b`kI$gl\_\( ZLzyEY7WkXqQvTvY꘹1x>߽?_ >^y| +?', +EªTw-k``j<#N3ih0[Lpp8>`48#->lS9̵}5x ~+`8 | +M0j=[ <;`8nO;< d(a $R`A" ڃ ` +(4 vV` ~u`8 ' = bxA- @'..@u`"8 WG |@ B؅`~ lG؎`7N{Hml +?ʧڞl[^UySU>P*MvPPPG+XT+=T1>\z*|JOaeRUk+ZoVS?Q +QQ6L"ߣU +_~?l/~JoQS6L?EmL*J}}TV}^**Um*ܮ (^ Umʆוff+RGjl]vQjl+QiO>lo~EeUte;?T[J{דƪߨjWن*U +ޮ·(¯P*TOS:3= +SiP +W/R]UT?lҞ{Vپ*(+ߵSUmmQړ9Ʃ3TR +YFj*c=w韍ET4)SR|~KՏƫrgn~__e~?DՏ(}OgT7Sb~?@Տ*}"K~_T*U?HՏ)};U?PFQ~_HՏP&o46AՏo+}w~_JՏ?PJhW)}U?DՏQJhDl+},U?/7 >z">z{!4D= 2Go +ԏ;ThtI>z)磧o>/(ڭU*C<'{WǛW"E[*Cvء;T̒\p$?[m%g89rJ1vWXqswH-25u˹s^攒>z!,oN9 Դ)aHu(FMMKI[Z%=ybJr Lߧ!aop\*hٿKAd8o& l%mb7anIz4dLK : nคVe|P-4J-5*9A:(lOͿ3Umv[#`b[-a[]m۲gF-̳_lGALm}Jm O5h$ݎm8F4ڋC~b(lmxlE{j4ۺxv`[7mnlsklؖm"^l+6|l뭎-c+R-Qls ~86crp>G&tk^DXrrOCĚ3V #'I˄'|*%||=:mUgmSy!V?Nlwn̘/bۇz~o,m˿ݣV -Mm,Bv`=Wi|CpEx8t~h"<::Ls< :+Y"<:GhGZc6~ =ףsIzxУt-BǫR*TxJ'6V__C\bP)bvwyLNϞ}Fj|lJxژ=RLR)(5>6U܀*npF%;/b#M=R=`'3& /Lc?_4=DCc3T"~;4``Fn[mn1Nc X]MϫFuӮ6Z=Va"gZE,~&#TM_|?}tߩqfN{Hω+mkwcӯUI`8 v[+A87X__y0x[{]D@kp +x lo +Akp +x l`ͽ/4!CY(Bs`*܄pcYh+sԳm^S Pa`*nL9% `rzvD|Zs:`U6:,crs~OZȑ\bvrgpad#86*ً,mNY(Fw,T|}ƒitc_wJmt +דs֐z7!>e-6;5[3_$(-ݛs8v-s誰#|RE>ky6u aY69ZXOxݟoq`*.Bk"{pLv >5fЏ"'&bs4֋A8Gw8~ o @:lT6qǵǵy"]DZO l縆{#O#jg=ݹZh!=밅a ye܀ulrA~&Mlu+V[o +|+V[o +|+V[oWnڌɣa3vgm|.u$یnܤ-tcFuĉ [C&zۤ~#Dzv>gCwd4BoPtsj:Qq ,|6`g .v*#u2EF' n3:QEM]#0z#D7o9QA]ߪ:D]~2٪IO[쟳 ])Nvdt@iQKvfa3Z ЎuG9/RqZ_q<;A沞}7tN N5]OzY^yhw?N~*}9-P ]ҝCyKj;t8D{gsj1tN*ic99E{tBQx:!VAJ-izWOn17xr YDzfT :S̝61ZoVesУ z!ٕz t5h_C +J*;sԛbN{]./be޾CW+Q1٠OBbЧ2sͅ n +kA?K귰jy2h_{R@Y>EЅJdS?p:)!_Zij: -\{z] =ҽ,/-['{+ zV~zABۊ&~ZB z#٠ /0?'W/ЃwWb-t7> ȮJ}:àOBOY@S/@0+ Zҥ}aOc +J_<sȈŻ_ 0GN?'䃾[|GY>^|nH )o+Ќ7`/Ls<>^М h{?4w@J^=}=K|>}Er'UQ*,m(Ug >-|'JxudLʉA8э;ѧ(|\6ʞ?8:ʞ<.Cu^BZ_AZ#oa-f?P^]ه8yNq/i,_oh.Dx.ͭVCBFyÁ +*Z G&Q6Z`哢Uk^~ \!Z%qyMUspIhjW8FZ^ys>4φ7|p|Y]OO71.Uc2L[d~%L fodp"*\*׏ppK}X_nou;cKUg pȥFsKs8ޥpQ=RrFOؿϥqgjA8[esFڞznՀG˭y%Pҥp<\??pq880ҭxjQ|[wG8[g +n'(L10=3T;\ds##;imHЈù{/)G_kG&Dx[- ;t>G_Av.\xȭN߄ {۷pS/yw_Onm$G_?V óJׇ+x~/8G.e<= +g @S}h3{φ; / ~n$,Q;?>M+joGV+h*Wù§<NJ +i_Ek){G|mlt8/ۣ5.|ѣf'zԻ|9ep`Gg{2#}|B!/=׏48w6|=O%/4-c}}+=C+{>HNkDk7<b"=oq>EOxn7dT%:i[pَk'{+UrfpO~܉/|>)LDž@p19xDkKG"~ ~-x?p$ {pkpQ[*p}`@ S"a?+LO  5_EIQ'?d/~ KXj ןI4:{nٿb_?L=߽}gY*9_U槳5|{=]Ƀ-{aGOF:p(>?L˶TiٿBv%cFX/:vtc{0?&ajMU"N֦~0Kxa#A?P\Q&;ϗ pBO~~[D,ՏkXj{2R;3IgK& ?*}R]}|R==bo\R/|j/[[jAn=e9#%,{M=e>@=GnԠplu3M;/o_o8嶥d-{xJɲigy rjOK؞#e/p=KDX/þO F 5ܱ8y{נu|? Y~ޟ7FmpNgj8[jx>eގQSVǨ o>d'Åcg|Yu w +wGg?g +<= $Cc$xӴ?¹\y'þh/G߂ӄW)pU᭴~pڻ{D|M; _} 8Z=.~U|xpx0=/| \wkKJ[ y]Ӆ3q%״CEq8hp@x +&<n,<&<\FeKk9F87ƫ^_@SӫvNǫ:/}I^{:ªH9ןez#Caj@;Mg=p6N86֦y0+ +/LspKF4p[W"M VƏ;"TƓ,LaOl7/=A|g:{ZǦ:{DSkl(-Y͝廿| ;$<[ESiOBn,ݯl,Bj=8TyUb^Qomj +׷>Ne?wWU^U72|yؿës:xUu 4px<ΗᏅg +o1/#)|Hx7\(L)g}uY?Y?ʝr֏SqU^S}AlG>O_YJ+>Mn?z3{.8gc}ix?j_BsoiS"W8Umm_/X_ĩ^tw6Ϸ׎Ԛxj.gҮ Ү-]nn R]9.V |}p]KxuUaCnzt?i+6iX_]a:_Ц0߳k9[?Ix:?x%"+LmKziSa + ~^^"^GxN0+~ oۆ~'W<^ͫA8ݾsLi^4i|Zy>%0ڏ[E+7q^w6GzH{? ?Ά?o x3hxt=,<k/<8¯"Px|P9xBxp6$Lu~?Äa^b}T* +S}<}T{үۊ^.L^!k@(\4qǿ -Kڣؿk|~υi|af +g/t2rM*!'ƪipIB^3ַU-} z06=q8#幽ybqv#k^^)kJ?ԦΟT.TzxF' S/oeh@0߾}})Ld; [ up{+ S}uWl/ϫT ߏ(Lu~"N%ao_ejS}a넩B~g +n0]?g?avtm|i(LSUaj?(ojoA~Y^o~ׅz0]r{"y0] 1 k{YF|M '^WᆬM믅}a!7ݛ>+Lky0oЦ5'bDm 2<ۆ>oƆ3 6f_n|c 4pW*T䏎WC- ia =?p(iF_S&L}7*^cE,{L'WGzg(R/E޿K1!hpdM z_N~gAnb)>5ߧws|.Ms|j ?dQ|O5硱pBMx9_S3y<Ǣ}*8+NoO: z} ;g9"(eb"o +`K(gYUT-0gŪ\>`?;pn72~t+Lb)v?]y(ȱx Wג/W)\mqoOoEE㍄3^5a)~9.}۴o#7ɽճ0L~swƪH+xՀ\r"JnÁӱx^d1wƫpTXK9{`7pEMQyr{[p>}~)1j1eG{<\ɧjs<Ρ=9.XJuR%oK|>mx\|~Cs,ƞ7|IS8}Bʓ>\ GRUīp9ƱwRz+>rOL9j|\ O-zNK֕۞܇<}|[8({ ˎ$$d DeV"K$g aC-`vYŔUJ .P찊~Zy=p3yϻιu~=*@ܗ-G:yG`Rc|Pt]3vW?i_o2]/E>k[ME}~w};n9=ὀ`;LG MPWWlKz9lHxq!/Q6=r慨E%,"|k %=BlH͖0s_?XPoc%2>2nb>W~i},Joi +=y7? ga9M็`Wd/8 x 7AK)*nn-+e?F3kCߒ|N+Ynh?\ <߫F90 csEUT#Df)c ~p}|B)^d~GU[ly p %/~ k[ߊAS|dtD%7CpU<c|V@ +|e>8K{jO_oBj=UkwGYƯ\c_6j[gR§Π^CΟɀ!I)ؠ'Qە^7]'C/ML怊x +À>)~mN=4=<0-K[n E?3~ +Q~`< R}UF}rڏR5JyO+صxdF=(pWO_ +@Ϙm۞lwep Z\Pmɭ+f,>HGo>j=W>/ d\5##l,A0 L{. f'r?7G`k=,U/L|W9K?8JvX_L_*Q<)Cf#mz/aO0!$ŀ_j3/qÁ,*‹f%p2D"S¾/G OG[)?/}u^+ *y3zao~]kJ *˂zMg}6pI)OϞC;NT< Bj.iW}(zqߴ=D^`elo5N{I`2v+`~nH~~ݏ޿_@/oJNPL&(p˭>sOwz<7ՠB>/f|t7wG_O zۧG p?2@(`W_dWq(8J/jg<<޿ongRoWID/zT^.7ZO?4q,C[.y '|35C/l_UWDG`ߊ0y~pG;^gh_Y \< w}ӁE/6] y!l*ٝ-UW?@/=8tQk3h %[DZ_=e8Z-cdu=.{JWMP\щAu_xxjIh O?>>4@7m|K}N_6wn[9H}3 <^7/W0^ {]KS+l(!Ckel䷄A?t 5?Y +cѿ^xh/7ccC;'b_ۄR6ao#K2o~}&Q%swhr2ItߢOɃ;/56^߽!|pw" ,'OJ?+|,Ϩ*_ wlPٓ'`>{)Zh2~m;7Pelן`w@h{Clc*owKV> \+h`OKyxd瀲 ?') U֏\a߃?TcUl7ѾOd >7/r_SF$}v 8/za9{]?q e8W=}.G/Qv36CTa,-R#խtd95R>` +H@Ͼa"Bxelo"~vuDQ~@ k%SEz:jgFmymyc|~p)%lW1S!w ~TچK}8w0pMG/ IRSD9m~uk_ xJuv?S;}G0)lNP/|J~J EX 0Oq*mTIgڠ׿ڣ)A߰p+Si8ȿF x乀(eoz٧k6Q ¯{/J/ +Q~JUAx}PycQ}+L ~%w]5&$?>/S} _"߷ {M*Է(!g0ZE(yyg+}}*;>,Ce/>ʷC- +y`X_/J7-|/a!苳EJK|U=ટRMCϤp4װ 6cGaQe5eQۀGӧM❤\ߟ5T`Gp`MubFFpf~7^֩lTǩ~#y*qI7>%m9@UPCg9b|LZ%ߢS  x )Ee>uA5^n}roQOn~.xAw'ܩv<~GnnK+T_o?Ad+ҟJ W߀3_\ +v=):O tDPGE}~|xx^Zo ;88ť 7)' +!c'(t.p˿>v#ey' г{t|_C1WEP{A~=% IY{$p-%.C«O.Qݐ푗SDdmY;~v#~[Jϑ94ڠ׬;EŧUv]S[s<~S9MM_)?\?ORٓ'PESSmA{"(gW:4o۳j{JaM]^~!N%_}Cx&U<+y۞%{h7ppIǎoWWp +'C w-/M`7џG[?Ts>%|ugZot# +]=} R~ \=\}'+,r:t(/Kyp p_4=uQ~˲='#O݇{co }2J*U >=*ҟN/`^\žj[OZ4YϏYoG?lM˂~!Z8!y\>-ɯ֓J$xgޝ*{_~\]e~w4w +ܴսvty2jDW/wex޿5ђɿdd/Is gE~J_Q'1W|S?O~<w;uxƓl2}`T>SRϤ@|J  pmKW~ 87bXOV\n53g-`J}7T&Qirl@Unm}ߤ_'|B`_~EZ=Z{FDf=xƯ6}z>qpW@Jo? 4Sr~~J(rp?^.9+>% vg[J /)~<#?W=YES>'>Q5` +G>fWCw[ +?8A7UJ΢O]QUmMx,\j6-U7닀[+&E}7PE(%J>{xdomOG/J?uClPw|6pu}*^מn'N{>7(pň@O3H/c;j}g +_Qžyi~e xy،g}R@\` x-nyU?Ӷ/]r&|{W^R'3ooAOgRYxߑڿC&cfe;,{da8,yβ}/#*|PPWL>/GV.V tp#>6Cė/g<֟>׎ +<\ZεQ/Kh>εGʀw;k`8[ջ Ѿڞ pqGW{ pӇlo;Ju~jaYclR{v+{W*6^>[mk$FzS > +8,)'+GLRf}l_1_P}Nd ~l_</v؎g +~D}d:p}^hy^$|lgbu?E*?\OF_^̬5&c#\d܇G_Bِ(6Ϡ:+KxWGj+2~0_b>ʁG1<}O_;sv{ oN+(g/σ4~pZMCk :'(ped_ Ƨ'YQ}MECLbn^FR??{Kڳb:e=y_'x܎ךK,RyW^N W}{Z]N/ܾ?fO6Ͽv}^oޯ*1v;NT|+P3/gGB6ηINr6Cϼ–/~ymnڦW_aRgsJTs%OS+)}+q{[.)aog|u[}[?Ҷ ɬg>%E[.a xv)xrAOa'|}/dد|W%vHy͟;@}U\?] +lF?۞nyTſ}}UNR|h %lH x~տW4g6WpbDe^8{Z`o7S_LQqwW}V?{\pK#CUa;> h{ ej=xx_Sϯ?t-ſ0e8ngCe"1~3+7y{J~r6Y9kkq?{yZ\_c" y[޿l|]e^O?K7h~ r}s3wxruE?\G_sEtݼob7|lβx }[nGǏLo+O_aTδ!tPɣ?n`_վ*նW <:t)p_OHW8j߯4ߠ7Dm%_7bzJx`Ϡ:SxY7pSϽ7ˀ[ޟkJh7oE>~ =J>Oפ|REo;};7 ?E3y:qvp%lo7S}jg7yDr7~x}xsc[`{ϣt(? <<[8鄛~E7§N:x K)#DŽwn&2I7gn)OJp錟 ݿ[qO]Ey(s|O ίBxtqy:=Ia9*pᅪnsF]= |>Kg%wGS>`X*#(ҟ^WKo'Ƈ |2kx9L<.f ˀ>xt'D9_ M_@xp !)> :VA^2~9Cc~N;Ģש<*}in5T>,nY?he};b>Zwy=ۀa\w-nc =D <zY!Kx~~lY}Μ,%:A^ݞu#pY6c=x 8#ۀ0Sxh{zwI]>HߣpR?~cFx#3$?E{E%hrQ<s3Na!?XF ܄ gvQsu,z~_7kFwйz?'pA?#^h^o p"=^Od$(A[NW_V!c_}5r/|pAQ;o9I^1R~l_ǜâ_.jc~wDêz5>wu=_'#kO8d}K1v0kO?Ÿ:S=ϨDebSٔZC4П@ghed<[ІX=h[f2l#.2#NϳEgm|Wf«(ΓS\7hEDs[/]uy$LWLZskՖ^ޗ_l|dhwN%SѶd;Gx7zίOҏL3E3FX;㪧=w!;.&3ˤ.K)Sm<^3|;D_s\|2)03YAw&g6Vvi,1I ϖHt`锝x\^%kYȚx6Xfy[ f$x$<#2Fbd^Ekflݬyc5kvU0eM&:S&#jM绌ny<#a`]x;].l'ʜ"xʢL=u%:$]yњS /qxlG2V,HRxYJ1%T5T|ĺN8t<ω\vx='qsKo";G:O10تHW< +:yT'8U.MgTG[2[m|  $%4P".2paSrXPHjOUOBEM 5R5Sx//OK0hvՁTU+ 5(H`#!'2x*Y?PWOG>֓HbkJGڒ|OT\2K^񿼃|xõ/͸#uRxr6\t 5 uh-jrɬvN u:#t$hJ?0seb$(,Ebd*E~$RyHXe WѺ2-vK$LѿME2t\YY{WDoG٘G,_p3Пdz²0 +h_aY zO|:y]$'A&dCT̙O5<#P[.Ҭk>pA1H8TMƢm9R`Ii56ݓjOGC2|6&zZ_F׊WW{#Y9[Y?"aw4žv;.%Zuc%2vF05e˜mQF7. Aѷ籶*@yƒL43<;<hdcy V|.i[9 36Q3zh<l0&׋D|W\G*Q +RV)Qx&PePEjWZLn#ʴUBU&r^+)aQekl#F,fցoA2jDgb5clM"`d&lleLBÕ:^]ϬʛY ٰtQ@Jr駹 h{=3yzhz"_DL;[JGrk%֘ @%%E꣩SR nG-YVoUqjJ s9 )N$%"N 5/Bj_no}cFznEuhք8)aj9.:nW⼂5onչi|6֓d7EjD:SIk:yZxcڀqv 5?lt}{U\?,|ijN>{QfzN=S՝Y~*A x\$\;Zx(ҩ@]55.N6N[eo깵[S )aciфl3h=2fVqD *gXsFAJqNc=gGn#\=Is&Fj¼EVb]X[9FVsx4MR4hJmєpє))4)0XB]b b 5BinQ$aJb j%xܪ}4#ag7򝦆45Sx*wLHíњ!EaGZQϼCĆX7VbXkJ InO2FZicH#-$($xp.ПBZiv+wǢ ƕDw)QcHno-lA֎_L`.2Ҩ*Fr,(o>‚'tO*%peB7ƒ#8\zDOGGw45"Wٻxb*OԣL,ֽ~UA|uxʳe\n0ʘOfn3&LЛSu3'~N-<_iJ{iJS:0| :A9*$OgaelEMN,x4+ΎgDQE1P_Z2:@Z'muS, +銦Rd~ OtvWgLwt@EyБvG/ѿ4 d-2-oFUx'9qa?igtF83g+LS"5{r>c|#DCnrqZNZ)|s_55_ '.&񷆹 IHY,tzՒLR2uGsl pQ¸3#s>y׸twdw0 ZCAEr.YHG<\yF>_ +"KϙѼq]cdF|LgS"jc.i+~ R3 Zy䋴y,h*[gXV3y'IbXD:d?jC +ЏctvZ{)4N[ξ{Z[x֘xN-g/ a&ȕ9f)iA#4Uȋܶ"+,E^t5+i}~WSSN+gCov=:)^tRkYxK*ϲNJTpR,W%EGFE{x>zkܽ^ZjyL^q\]JWCdc{rˣO#ɦ K2FH{\nt-C\L^Fn W#AO):x\R +{S4\P s|Oasdި[rO;g7Oֱsͥ. XC$jcL|DO?.@@ŔBLl< z`e%T$6'-qbMsh>$'Qvڢ9Tg̓7e~rrT D䡭Xo˅Mg+5/zĢy<*XI I& +29Zb)&XWltۑBlDl{^&[.YE_gE|&Ǯl;bqOD=qgUvp&dKL1A`1JY{f8ˆ9ɭ4YdMXٖ+"mds[f^|lLvgлT(٧c="81}?lKrF2ƳtV (6 FJ[2ox{bM 1b 7 frM\=vY"z`t%5pY4s~mVSn*l1uX1//uf;Ma22NQ!mxhLX DkPm$ Q,Br$N5\͇Ix*OpBϳ .&{,gD̑:hos2" +]%ۮ":kwl?ⲟ46U~,oDn5i9DMo4 ύ=~u$9k'%'sگ{9Yzp!Y=G@2'r̮q{Gװ^$.u"=pjOtGBqi4U19pRgÿ[h[F`[˧-\䚻E(&bA*eU *Kl6\O& 8euN(TjS"x+@6#>Re8Qd!,'qr>R`0zձUr=mL tq@.$ mG4} +9MnXN ɯ HYq}aI:kĞLY%۹/Rq̜u9R3U.8j͞6g?JנYeK͗v\vȩ`jWYJ"{oiKLXBH!_Rgߞ.2k&dJRBB*9e[OLt9ciȳQŵ>Ye"3ٸ%ӝ"u"0uyKP40bsYJM(o0BqptVqC\7;"K,ڳٲ),HInfGdږpYcXqc:OaZ +4cHbvku@>&l bΊ2[̋ +Jkp\93[;&fc. WsU+ÜdXXw"jƒc1v`$D vH@z,[M:H^,lbL2"[xn4凉r=m^Oנ# ,Hc%iz\cTM\UXB^lܵuDfm*en ÃԥOFKMTjYqLQ3y&u=7_ecdĖ*?4(q{M2ԑ$ΞF{+g "gE k :6VF'Rn>[$Pvҹ" ŇFsj+gm) m'#kNɘuźǹo fD3>Жt +2E9K;V+]]k3ĚLzmH/C1zp'B85 8R&۱NlPiq*fjd'qrt:8T[IccpK-9\a]-Gh}v9yc{uSu"!ԱĹ8--x ˣ ^do0Ґ%RÈ]rFmŲʏvRvF;SHҐo@7doqjHoh !M&ׅ5H5s0.rL8؂Ē/0)=q )|;[Wj:JY8%Udb)"T\`a0D(޹HB ^I؝1`%XݬײD=F> \i å~Ri~bTsy|q>()gً%5Z:%͠[x/R϶֔D +AF="Hxة޴'_ +JX6\@YuTRHMYw1#!JS.ן#Mg!tކaUSE9w 8rE"Jޙ bi =P#aFn $Ҫs"X]o?9˲*R hmVajq@o<KWuj\Yg'̥ )i+ҽM޾N48CUp /"`eˮfC]~;2p͏hm|L&$2ꣻđH4`ULSɈ'`jzc>gG2$,/p^mHCBnz-P) [tRV@ +VGF٤m|r9n$T.ČJ jRGL$yMniwo!OvW +Lq{/fx-R+PQOC0R?Chz.хhlÑ@Z-'T^ 21iخSq"Hn;:\k;>q5@Hx]">lվI +GX.np.]sN6amu`_+!9󴰴 (r/5(tLքV"ք>~{q9BŦMy{fRp5H',d,CBxEW@Wm|oާ Ǝ3km*\ bq:m\4sP@R]̿+\뢉 slɌKY<'&3'YBO 0UL&:iXFg^` <>d!Ebrg-vrViXm1*Y7:ELf,MGJFHV֊,J9 ۾;0d ,/đH cOQP54_ 3/#&-4&Lho16"~# +[Ndp$&v{λ2[$*?yiceXfp\-R(e *%Z,ϐ.yM>w@<, RyܨhYbN +Sb[Yh}K"NQhOVaݜsKJA06@a_yS=W2-הgLD*kW-ojW?:M7ꎷ$1Rn|ߗ7oL[)zZp=RT{_}o,̈́WYUszQDP:"=pؒ_L6%P]l. މ M-WZ3 +Qz<` A>rGҮЖ*+rg~!yc89.ɾB} =FQP pA0x)~kk +aa4K(&B|1]7h;A1 B' ym+%x塘:L"GDсܐAw?8-z,O|=*S4ioUO7{7q5L4脤3]!pIoIO?C`WW- {ϸ+.i97&mēci +IɆfO>"DǬ!}[qJ4T(jq5łE)ON??VS,=Rf+nYwnrVΠKyBMd}Vj&<S>ϥFuisr' ėz}y̫V({Z*aJ٨__o_\vj07r[,FɠQ/'I^DeqH6o:1)Ǯ*0g-"i[d_N{b~syu|Yz*Nf[Ъ:d"zȬT)]~]|iF8ML4ȇ֡VB)0iz+j_4ï@}+]+ÇƚǷ9d7xx5I#TfKf?xV7nGY %*)#7?'AL4v.ۉhخDOc?s ^za=t_| &NZ,YK$~7YɞCޝD-c)u\Q5KދҔu. "\әR9b`'y4aዻdž1$yjU?9Σ.{M[ NJڕ 1tWyk 8DeZ? +re)DWJX#^D=K>ahƢqq/)?KT[A ؃d66J|> P;IJ^}(z8[\x(יN&υkvzvGƙdMgȔg-e& Wj%]AgZ^)QjB6iRh{T#?o|&'tJ/ qA`|(_o3md^U@IgVCS}yDlU'ߤ9N`PK +bM5 jre/lib/ext/UT /E/EUx +PKbM59:gjre/lib/ext/jai_imageio.jarUT /E/EUx +Tkttwtwwtw# )" twty{}%k\qyf2 @?<$OIA^*Q)!{SlWo1I^)Q!AyjI!.NNOp,>>(Ufw֑to9׆>6lkQs(13/pJnո%iGߑ],VbKpR,N _TYp~`<ϻo[ššw\WڽdTzFx+FkcGuu/Mq- +[W<KxBD[_-߾[ /?,h'<SD? Y򬉅|6?ga 3 +0 Iʈoe[{]4'{,Yc5PͲOk5j!ӊ]9k7'HO8i|{zA GpOZ:OKjMb;M E AUyg'8ّ*ۏ2VV`40u0TcTkP`Q' Ԙ(JD^)BX3S%2 +2*y@Xic Qe3 WOd ,DEq`д2B_ 0loᯒ&3,T"eZ]{PS[TEħ)fBL_8ydy).^=II d? b?aOX E !z±~ bo( PUɅG Ku|D%Ë ! IPBDҝBD;Tj*Yxq۠5ڛkz=*Tz:,sd_="#:ȅJzcP>F%4Y,e5?nwt@=8\+h2)"})3DzŽ6~9sMh*K Ԓֺ2b=m涆g&-GkyZ{8-TvvF+z,j`aCVE 7`:ܜw,3`cHz-,܄o7ΔЯ ՛$(| +5`G%l%2\'xSjHD}DQ3@9`Rm\Q)!j'wP*Xx6C?A#)/"gHv{74xaV 2sRP·HgE?A'X1B=8tDXeMvH٩|/2,.Knv*yB|w`&[8qow<S䒓rEE>ش>@y![v}+Q#=ŒMSPEvؙp*'@-V@61 Jsl gNOO,@>{_TPim &:({bbVM + ˇۨ0qk^Xb̜!^A?> [ %9<(~$,DObXĺ39^X-D7߃/]9:l+PC‘ǖ.8trFMZaJ̧V $ݮ+L-}-?>G]GAUc+7CaeXYE;]В3aY^N4>{^qv)3;jr(GBgz4"_Ym ~,g#`~GY~QDBӝtFȱY9!dw6F֎S37o K g/%T=h@.1iؔӞa:퀾HSF >kYMw"}'2="F1?<0>ҜY7&և{:+{Kz:VK8{+z]~kPѩv<#%&FXUss;O^<:5ɱ#BEmU3jio9ߗ-iZ& +% ݧM j)tQ)8~YjzV32,\FIx5mLnjںj&:2B +zHB Fd$nPuQtޠ:|QL%{,J*TQE +22^'/:Dw3|f2ѣhc#eI[ƍeWAKK$Cd3,V& {vQbkt/V*ZN!~4ErjN! ufZZZxy%|O$i|4c@C+;q[SFSR(,kql 2pg$CQ$HVj0,"ȩA'Fa?&Ew#9_~X~ yGV՜tA1L,Nz+ӈ%A^t.0H|cDCSOX(ttE藃mE{P`NA;N3ǃtWA!h:+u;eY L vl*)4,c%p ӟ3WHv6QL7topk.-1Yu8 +]Mѐ1#Ƕ= PÔ>aƇ|~*XO +*F8xE ҕgGDeM{ 0&v}x&[`N+xO˷~f,U՛ xa: kn$dmo9]:#[w$<; `+>sj +eojORKg7$ȳug:Zaqj.arkbVmB+)(I9 b+|d+£mܗ-nƱWA9bkabZj!M?tO*aU0V. Rڙ ?$ ~.ڭZ}XHFqܣ1CACR#K~9izևNֽܕ" wq ~#;=սh¶{Su(\ 6"(QH[Q_6EH<~>1o ؐ HAC8 +4 5Nj|6+j ZdӲ yV-&l|}4gB6c`^Z\*%,l񵵥ob3VEӰ~^J򿏯e;?JNN,z([6-?#WX3NsO,&s +wSP +#$2%5ih:%r wVW$j,3T70&fIcŨN:(bMMs0KZ-pPQSQ.Ja68N$Bm6rz-e9ϺWmI_*5&R>YW,`a54K*9jRC/ɘR +!LBrsAv@! O'iG,ņ|J$6ب`M׮;bu#>_͎vٖWIoN8c3Z Fbwޠn'")mq"Ax g䷱$605YbopӭxPXGރqp3;1ةM! G{@ÁN`+kamLV{|ϗ<|dFDd^bRcZ9w.ksM-%Q!'kƏ5h.83?ygs[Z’ST^yO.k_^`p_sK,Iq`&Ku pq8|QiH)).v< E +%ͅū doDhz(p]8}qjtzPS40&rÞB``{ 3ȁTRM͛>8j;zg^Y #/A?|3),%kƌq zHzDN|TmQ{l XM,hݓPfB܅7 ([8ޏ#%<> +&WMLS/Rb(8UBnI֠8oG@1.< ܷgX9PUebD9-u> k!wƬ 7iN]*Te،o + =+s+[I]y4KV[S2R>H ~~$dݴ.0wG{P`՜1@jJGJ[qXQ`eEG,ˢ '+ 1-QK}]݄5>JBG' LAet1q&O  m}1% +O +ۢ~+^( %69zJZuQFHghoT.j~!I<1Kf6+ٜ&xY˫w%t +1^T>r_A[m9Q~~ ?aZݿֶ;;+˿x2?ecDD-) ܅cB.;&<%<+vUQꂇR +Ə׃ī#M{;j\/F7ϏN&) ͒nQA{taHe:2F@;+ThNHGt4SBwqŬiAq͝5rYh$SS! +`w"&tG +>r,rF)Vn>8#!yVoAǖ7܆ axZ|LYS Zk֌3a` Q~Vݠq2}hJ)} ^f_hrz;|-@eVapHozw\Fm&n(ߣ[u3cTG7-툭BoBAKjLbmɒ+lB;L|_;& ׹l,c\;H; .x)bC^6ȹb&W_x_+k[#c?%Jqٸδo{HռkfIiB.Q*zm&/5f[6SaS0zոH<tN +>ξ}aE+Z61(;/enQ$,EDēC[&* R3sq!Q B3â<3=eo 33uKL;jF\vGDUCWah +v%auͪ1)8pVa=yx/0D0,R,$U'cr1ehqSj*J(ZV6f33:縎ȹ=~<}m$ϰ7 O!7V`O!+@_*XJb* ͐SШ1,WވDVWk9I+1ozĬ*DE 5Jg +:5yd&n )@K-8\t/G0L4{1H\8.γDک*1T_|dʩHA<}Zpa, +> ɑߙ?lZ(:VlA$5F"A>|BzIgd9fcQ'tljDͧ;7J'~Y|Ԃdtadq"n6|JQ<>8 ^ߠ; i^G Dz׿}@KV{C=yTdtq:tO|E('zhUW&s0Wqg4&ޚ}`Xx pu-Fs_S.e7k?̑+?Z:XW<,a 4t@P"@ dATKn#WOg:ĔhttfYl`(0tS +!jv%m2wQ$w|Xf>@>FY6\,.46)( c0As:?X A#%ȸ=57O +&"HLrf`ԯk1ʶr< =w'Jr4πDGt w~v"aaH:fKQ,8b,3EʖPM |:S3(6=q9 \+O2d^>ܷ64DDJgq8|ݡȼPŏ;"*G >'[~]::[#QW27 W򡏀8 ?UG8ƷI.'!~gBg/$R4 )sPEC0(ƨl91!R3WaP +%u vh3x&_EK6 w\7UnGWnR(ndoI nsg1Yc*\z*8i'/BEأ䄡QO0>^d 8Z$)ӧyd4&{Zǯv6X6_X>[IH%B(G%Q!9=Ɂm`Kg}R8Gz{Au,NQmᴥ0H+Se][]1`MP0S|# <3 yp((h>ye Dz[(;"Ґ6ĀTuTŁUM" +߲FD =jnseOZfiZ&{mǂz7wُ 6"V8ŀyߗ238\m: XF'L*%rAx-qѡ3 :8=ޝ>]Ek~l|s7WNs +8 壯2`g`{)bҿ*I( X>㜒Zh}_oƩ{!D<f6AMGs&Dlo:Zg] +gT%bT68 (`pݝ҆؃\BqU;*BUҤ\x90ؘRyD嶡hy9>u*Ϗ~XٿA-.h@Ue3]opoOxZc4fGσ]#xK]bf_Om,ȺHSmrI2_Fzy!PrzUF:KOSrc zY nY# Y}Vi"^6KiͦUR>p.LA4^eioh^o lw`l^KM7PSNۄ@vG _b6l} hG0E8Y~|` vhNs䀡G`uՁXH"w[rG91 ++Qv\$Dbd%p}9|WXnk*ii#1I8L\E +ŰnWGOfdcdS@ +ğs(/8G=3BZ@9fۮTjosPQeT6јAԕ.ne` JPL +;l?/~Zo?qRKI]LA\1q(ߒP* gڐ5CEǷm7ݸXg6H?2˥<ry>,n%: D=t N ~Rz Wr4,m)ݹ[RxAU2aF.9{B(ʹm )+ҩB< +(8cəHDkt6G3sv$T_mP\xٙ*CrjX?`Ϡ丒Z[ƍXŗ<z|eG&U8f9I~D~/'|QDL' oLJA!J|ldo)?Нμ&n6|[VD4CPalc濕 OJc;ǁ +O{&:݀ |6*QXs_'`~ƈqj;&~4s$.gILxSk;ɧ;RTaS`-f/V_"U0> +nP?+$:sХvnbn,Jw,8EL8\MjRiKyuZ'_crR~{5@d/K-\tIޚe=Wwrg&)?%y֠D$?pE x3-Vib\b<~y#*Յ'#GQ%LSb 9dԖ% BEO}׋bɏGƚZ=!阮C~y[H -!jfʶ??n8fT@ AWЎMdYyjnαY&&W>_KDe'(P0ߞ㼈kEo61VˡO+/Ln&9:%Jr|lhmɵ*L0kqxD'7 ֪7H~Ce>G"{A0J?$)m=yςW> kOc,A>\Ỷ _mC7+YɚHS~ 76%(A.bUhuM%D{&TղgcÈN@@. Np3NZ?9FCv%$S&ICOৄ: 7YЏڌ<\+(ImCOdP2YI; ?x)*͏o@*?xlܝE6UN,:$Y_p #$/kiQB?3g= E +:P<02j{B~~]mpx,h;'F~-qAѰ0+M#/;c=Ag~9 )>r SJCŵ'v;gՒu)$Mom8Q#W\VQC^SB&|dJك֏w߬etOnHYĄW= +dpƩc(&AT"jɸkřM͔퉋?U7J&@ +s~+6q`~2_pɔtk>r;<4J=Q޵Ed=!('1-˭?wXw 5Iˆ8u #& _iqJ"?M.M@T^ɀJtKԣNHP3)G'p 6 חŶjf.hLŰYvz3Mӻ-mYRWBE 2ӔD9 MFZ z_#bVvv/NV-鐸68Ѝ\vC`|$eeCȉ%}R2:Q~ a(t7=<yZ=Q[ے@5lTWC΂ZcZN:"Q9KeI2 rg/M*4.ӿcC] эDTu*HJA:?ΘȩvUnz'$1p,bcI^}Jqhݾ>}mLBWOs\bFWމR׿;v@re [uЩ@/v>DZ~mWE(S]Տ+!\2v{|KjK^80w8$1xWOTJ-ĭSy ?Pȫڣ"@iƢHdheh)ϭ~_\ы $ȎzG][pڰ62V& +v/vwW}%*ou. +GδwTgI+D_0`½8n^.Apƍ; ; +ұJdgZëFf˫ԼT8Pw\!, &>x +rTwڊh/o9Gs'Vi8]uPd(0< # xI2w]^]O_YtKՄ*9pb^0t _̢[h` .6X>`OOyHޝlL=5av%OtӌjjhV\/? +~bFʡ +&/Qʞs%kT1rDSȉ%w.r>UsUۯfhYL9OkD\vV: Xag7]v?=[rL +[ _`J{v }tSb֔at)՗sgɨDJn*#o qIEQ|LfIWQhv`x3p8i69[v;Qd@F>I_~uF<!z!B0#M&KBjz4/1XW)VxBjuYBYf@`yħBPS'L_@ F"k{PGﱓZzXD7jt2drmߛ?>yDZh\H[>ov#Y'dž`;+ť8 =4-0$ÚjO 8I6W.εpB˦$tN7j)eVkXjxqOYB`*va0#/qtw%nG;|=0SR.e[U]++ p'? mk3G'v@h" :ݽ٧_A0^zrrE0M gҭp&TI_SQ&n/-VrF]BRoR?=>Js?ϜYNpHOM*V>:#|kXNbҗ~5Zw-S,BTUͨCщFk튔ES/r"%*Yrރ z9 X=&|S k%mZYwF0ŁMrnx]7$/=HI8rsօo3 LP勱:r$GWq# & (ib߰5Fv$§){1QlF<'mڳlm$w P?@ 0HlBg!LDE'BRVuP"GM; +Z~U 6K"4L0>p`X,.>1ooOycXEN!Ǎ_ M7żyZh/n={ Acglg7Ch4cp;zۆ1S{V}(Ama"ʍ4ab"R'yמi!Hb b}f~HM;@LIcXa.neOqWOx@Ap)G|>C/2\/3l8=lQ}jFW2 _ WFA/35B/gX(\}3}ro"VT_s-mu#n+s|*e8܂ՍsSΛgFq'N Ƞd +^̺ ]"&.0YJT6-\nf_ 7c>25/38돆rmMnɓ[BE8QˁQR)g1l +YɄ1L1]إ7;*'z]hO"6Bd5²-њ: +)): 62]N孹ihł|0'ͺxLљ;ؘp2*{od·#`x(ѠElMx}Ʇ!"D%s!5XCv @_a s46e{0r9 +uWWϣ Ęn!>w_y{ +N9>/`|knU@.1)ؗߧygFx1 ʜWPwl6I#rtX/?WgkO wV:tx8s]\u-F_M9Ŕ?ۋlb卩IVj\VIV1D4oߑ O'"l{ZNxv}0~׿pD !K10MmAmx _cQgsmKpƝ4 b ͵F.mֳ1̀nn_/_|EgRXU76! /梫yЧtumXJ&(CToFY83cr`˟l 2ydUU3`S!.jpsjQ$>z&kr BR8;m<&c_D'k >x`FvFŒ]/X牠N>= +nsBŵ*y[[YmMfmhˢ,xzwhڌOkB.sJ%Pʣ58ўZZ1vdU8Ӎo]>9z==pc+ov9`B[MY2,6 Vu>b9G& of!<6Lzz"‹P/.}4MK'Ib6lrb6r#0¢7-9EnG4eRR"VhMW2rVϧ>ԺKjrBs*d2O,kc#(u5 r|oTyB ;U5/$<%+\°3 X=ՃT,tXwѱۺ2/r5蝴`-Q0I +{,ܼ;vQ18V}gH% =rd4κLt!=̲@; H;P Bq|8zc\cXcxM~Ľ%*kj1t~kư} 31׵Ե已441r/>I37SX6\ȅFَ'Q73m@pAU Av= G`?)-j6CH*[)Yr +}pl4/zSn߸/AOVM.x#ؠMŹ*h[9NY23~Xp.#2H^FݦPGb<_R/-\ؒ6\Sok*~ŝMz2 +=FECw\xFWJ_C?+'T_zW Ao3@ҕ)۶Zy~RL/W=?tr⟽OZ+VdLF&(jbܲL!( ;upDVWYU, 53*5|{O-u'/xh6_}|T/~w Ҳ21ȩms!MBEg _zIO-wO77o8naVFz[ġZ8 ,/SCX   FZȕ->#҆i}61O4:(Z#uXAsK0YWWȡڐ})_Gz'&Z2|S^dNVexܺ SSi'p/g)+3™Ax* +ͺ &, CU]Fh,ܶv+tSڸXJ-VBđvGpW3:`]#n?5JYwd8JmspP?=+ t:7ؾ\d1;^SFץ_C81gT rE&S}{#1#j+(q4N,;i\-\?׶ZYSIfKpMxU\;-X4.s͐ G +eJ΃(>(E+bZj' ?^{A,Y>],?DG<Ep&ڤp@ړhh/Q-|E_S#!**C`Jv$)?3BU$C-86WV1i/ [k@'IN0"u~/`d+ Ho_8CN‰-y4lu^e@j?@x0׼β8#ΡL%p$ V&̏(iΠ%RX7:m}Tq8[2tB2]8҇v}:S|Bɰ6֧p;=kܑۮ,  +ǛG;lG;;"C(]Me.}F03mr?N(Y9M}$,󩣯M]%M L}YSsfBA п?YrўPQoR{7]y5ZRI?B>]kRB1K~UEXjh#ⷄy-Bx%NZ6ܠ٬RߨTTE`إ#@$xEäN7lzby&htO9҇0k0mLlbϘ:^جRKB+ BR--Eo=!#"3m]C|95m;][ l>g}ΠB*Vvюհz=v3π8s?N%d 950z'A?PXF+hޟѼE^>9uݑW}$'HAAGgk 'c w80{f-2A9JZ46VBkGT +75ow!\pMs#qEnpi })ZӒ?)ޖ `8wEDeãv?R6Uwĭ.#×#h$,7Vߋ+4vՍ&lO\y#N>0puLT$޻o43F6k:A}˰ZEzũ30&"+M!\M1 թ:9KPqo⣁BVNRɊ#lQ  + +>R<+]7jsg S kMrhjT嵻Ch~r.5lDQ +-w,VYMKyWc++_GqYrO;dY4k<36Qz\^<97$ڹ(^ܓ2N%x^hϊ.8S!nkᚈn1^:oj_\dzGKxVK.Hy-1CoTLmDFe=2m3WMd?W_<~ _\-_C3WJ(O@ + hR1g[N+@2e!Ԝ#H$ᳪHPfMKF +~P)>h3~YN$Bg졘Dƭ 1ʗع5Lf7 V̻@@ɘ~M%yê#`zX~Cov21f^[0D|'5iH0@a_3VƯ`-ylZK֖r/LzLw31/>BZKǫC$֊Oy녀"rn?͂&͛`~(UbmyY + +%opiV`D_K-["ҽ粜[ȟRӄT1+"{ JN8s{[y +̵7/x:5p}S_űSF)":C7nLXs~n>&S Ty-6~>brRgaE6p]Ǥ0DvPʰ3ݐGe̙0c`ԾX/Ȣ\o=a*5fCM'OxjN Bj$4Z;>]$G6$F2WTэ>}L2kJƃ~Ĝp&EJcI0A )BGGP:ıVUi]DQsU"Ё$ОmXEts0D1_1ɡIlkNK +qI`q~iՀ'ouYCR4{nVF^^OTP`kwn-#H7(OvvjM)g7ޯECEv5wc/@W: .Ȕh*?T +"bZ',Cb%{xs + +ŮfyNU"F\8tGV 8k·EzFh[E1EmlE&:ƃx4h1-n48~8(JBLøS7X$Sc7אR5c u~)ǿI1C +g5wi46oVQ1HH aS ʗҰ*)q5tԞr9FֈgZ5RD3֞^ he^_V>J_SkU xSMFN.P65[)a<(=wGKWlgPE2oh`R?[R!L iJ̋ 2'+i3] O ,XVAwKiDij)҂{sj'bŌzH= NHTuMKy"pĘgE`GhH6%nG +s뾏}v+X".q+s Sd۩n|)m#8\=0o!l1bujbs< +Z/TJ-+&_lUYDM?3`&BE)ȋ/K5Q:oVSvA5I>}PJ'4BA)\"X D6+]*8.OTO?cWyOmX~FsI G 1RŘNc@8*X"6m;tkܭgtŰr"O~a tM_7% \N)[4~1QG"(ZKM QįKF*!ppLHݺepRcٳDC4'&Y Rɨz&:TuO&.߶ZPTFɾ2 /\bYDqC;8+D z2^&.і]D@Wkm'VMly{^ʜ+%{8ퟓi䜾 EC5ceŅ=Wr]A;ĕZvshrz#ܳ?O}# S\b:3o?~]TF^^u̗A jЀZd3q?=DB/M/6@(:/8qﴩ❿v\t=h%Tv$+G3B3i }`eU~ ϴ:oLgzG@ʳ׸%lG@Q0>v1}1"d\5+yяJ_Ԫ#,J+:\?|_ʟR$26 Kw}%%lVb^#6h@ŜFQ@=gd"pY8EΑpL&`n>YsVqz)>=u{N`BW1RH^2lB"ppKl ?Z`Pk-=Xb;s1Y|sb7Q] .$q$KL$fCS (bE>ȬLpC2jb3N?o7FED#}<3ŦP;?$L n&}"tsY4UF2PGx,#GѻA~֚ ^ g>hit,WOPaPvA~Ɋ&I+*&ʕagMӿQ_+BCrEU ̫($/sdرJ(*o,|%*'=}-f' +" E[?C1q73>Dٕ@S\c'}a!B {಼5ѐŇ^^8+qkNtn o9lIpP%X'F;BfL%h+Nvf6Vlٻ0֫I1ux8X$YzQlg3n^!d)gT/Y ȟmn-5V+M?/$XPDOGg^<ٟOHz0*4 6^B)lyy@;5t ũ_Vg`"M1؅Of? "G۲Byb6"tMa;3".mPͺ18q1AJŞ|32GIħ繛q0W %y9]eNy=9YwY)$ؑ>mx5NhKH\#)z&!8 Wlhkt\Ahq5eo-O=?Wv{%~3}Y&p8:PT^w]IjF4H?/!Ci Ȣ(4-}~ӐƬlsQY54S@!;@p=b(u7%%P2mV 伓"pà/}bsena3$ը7?s`H쾜8a9{nmYm^TMߌ+6ӱ? ئ#`ϰ_VѲYӝGp<hx'y]1S(2D9!T rdd/˴8N7N`/Dq\!Mʉ@)V)L~*ĪkC`ln +_l7[ M_skr ]^^[qxd(RyʪѾ.ZzoQ9y|`h +P͔@?+(F7BXiԷL$&B+(rvan_Ŋ0WuVIA~0aϢG ]>ƫ*vO7/y|.yrWß!-ÜMD:Wă+*2p#mGd=@+_h6#x?#Z2u{sr8hcKbcQ +WS&}[Kul6DVK>Q~ە;z~lp441r|bXpOP"@O ',Qu|@wGFotR(RT*d:Qz{!eLpsu9&ߕ #`j%Eg:+ͷ3>EX%"BQ9Bu͗l|v;;#P c@|>{7L"!H#Gy (S}}E"G\Q4 }w."fVчPL4n:L'9i:396%P׺]~X 2pԗ%ԔRvxZiXn+w?2wی0ЂD_,IJ*<.m%6xm?usufͪ59=u4=#V%LJ b%9O)ȖүP =xC`Pa/ ט +@&j=rPdȶUb_`7ZٴrU9;uNe`_"SZQ#)oh;o~ nHIK %.>Тp~jU C s:t8 aā`ё? H{'3$۷0'{F2~^gC,rV;ƛ6G] 8[^ejVS[XZRnn|9RgQLI~;*\\F2nFq."L-x?ěA*6嫫ôAw'U//y#)YANjC98mX7ZMܰ!b]]N̪h+){E?+ l~`/wG}ݗLIfջ +Qӷez&}Pv}175!Ow;Rd󋎐gjuc3|ӇxY %tURmي͟n69E? H#_n+]]yw4.faVhխIt1f9&5WYn/1/TNL^, +&/ rf*oYi-<;aۥ%v06ebWCc'J2*ncMcQbyJ/h K1DCNs& +.2h%ɓEsBvs|/' +Eo}n- q ~+'*]lPQ$<([g_JyPHcBM@Q2F +St_2Y]C] g$JJA|P87xN]oxLXcQKFF$IFAe^Bˠ!(pR`}v1$4v'{or\(E]|E$AdpQn d"r<3Qܲ(FrK|ͬQu 8ZrK͜ 1MZN12_s1m2βqktؘn{*AՑLq 3%B +gcDQ |r$B +#~@NlC,Mw77dM5ȯ +M6NlTj"I@!MSt9*QxYZ$BFE.mȝ18v'pZ} l~ h)- B7y*뼐(NHMڻȲ%+|rJ]oRV}ݘU] TQuoGУDD32ѬO@ Ǻ_vLch$ѽ4 TI4I-r:EQxHwD@}x)+P%(G̥myVIA JHvw [:BbdI`,_5C{yDm\.d@{d@ .iyS8qp|soOU~ ^Y}2ڑͭ_=dB/Ϝr4X2ϩ#8dl.PѸ7U~Z%j@ '5Q^M<;$ujsJֹ̹-0yXJU{7g|{`?;gZ4P׍FeBWQD[o@a0mאvvea:rldNJ>?zF"?5 {3.{X": +kb 3uj+x ۙ0\Y5Sו2.G(9Q"CGl€#PELpBPoL: 즩1t]wb X=_-YͿtuꃍ L3"`&N==On<ߩҏ&jlM7>&a}T$"Fa~3 +Clal +/@j(x8Zh]ѐ+I<وZcĐ@ݡ_(@mnlb{H8 ѳSE2,ڮ!M_M$-G~UTAX*[wWwi0vZŒt% fRU[cY$#C'eurlS8ĸZ16o S{3vJaкNs%%Cs[YKb͵h܊5{b)Z)l*Rrn.a<ϩbFF6+ 3>}7qH1r1/y8T*PNi3k j'qNszc!wLaOGy,z+s㱠Y?/v-kyJ˚$a1m者_,"Y6ۻsY]S1gQ̙/t"40NiS (r3Bm=4/8XUUзաX볐EkUT"~I"?*8d8QHtjxoK3upx(}IŝB +lP3ߨxbDɝ;2N_gб=r=r]r 2nG)>DډjfYR?`]ZģnB;iaεf.ӻ8 iu>xuo O7aϠO,ϟFihn˟ZKIuI溝)70* 4J(7 +˿GEKps8ox,~>f@_M{0+zVktwNaP4 O֚hC̶z=0i^ "śa)يٷ He-x{Ng }w YTѬ{lzVÚ8jPW`;oO6W)HЯ?]IyQm^wX??jR=S>d={{s:θ>}պ2xB)M/9O +;X,~~X`(EF\_oEXjFiͳyѽֆ).6܉jtݛހoa ҉lMms&STڈS'5зZϴ.KCUT h%0ˠtPhKB+"0L>4kL~16p 0_`m؝0yB96 7 :ԥ`.í=ANya ŋefl7Ceft76vfnvo ]̥g!Mxk&+Q -[Q_YR=+'\NLPO\5\`_T!^<4A<%9a?H}V{Wr%dwEU)weh끶k"b\) i@rSkA|z +J`iDdTh@MzxOԧXΓQ-?isз%~i>̖7~ /<5gדbe +]Ym|Bb" +|e{M;d_LS(){27e _jjmZ4`n +wgruq1thK?7~;=V.7ӎ6.l_DHv(ƶCA+'qRlPIBWv{05ɦcD%$N$/An7,S^]SloA6=1 +#rO.[j{.wP旮YӮluQH#lQWa&)!zȓjK%B4eԞ_=mfz`B)<k<7:Q]#"ⴥѕn]jMߝ(i".DjʇzNvJA~3~mA `qwyiJ`\W/lMQyq&+X"Js]~VH K^R8/ W.wa0uDxwk 2'nd,R[D8t%wG]Ic +ԚC@Bv/j(雿*k +`ikg ʄK_Àۦ>^nq.쪏"Gz~z@_=j@ygѣD~_LvШĠ)`BW&$)F¼6WN5y_}U zJJ +mp +Lst tlXEb2'RbDԽǏdƥ;ipۋyF<(ݚXؐ2hQR1#l:a[RuXqs']^eAj~u~~},EJ|]/Ys'/һ_{x|l<䡊b;z2V!>E +Z{m!7Y0]ùS=jyܼ]HpԈk.߄GPF]>n o6'>$qNv@td*cʜ1Rwf\7K?x+ӡ ʷ+)oNoh\>iu.$, ^c LLM=h7*4(-nnk`G,{<(JW-&`F;ʺpClƦۚ頿$F'Q{S9M!] -Twyg=Z7,}?&0_2[)xuugŀ2A@`еSjzz<{Fz%aV!Ċ MZ;-%&FL^b:)hnI- ' +Ll8pS )A(ڦα= @2"%; eCe L,L$zjMH!{!8#THne& Qʾ7\!޲`IMgTl6 ϟ|!-b^q?XZC<*\1fj<</Yhwy"j VS3^\| &oA*shqPN/dY߀9/,jmH?Ǹި#=rQX\#:@j5UYfzəyUXT0#= +_ჶ]%P" ݿړ˅6z96#z4?}! wHI`.>E$-F}*x WG +9v`ŅX ,^¬a&3T'sڽ,aD q +V&'JYb MW[L׭ߛڝM2Ʋ!!Wkc.'.%Bѕp +ț"OI翿OC炛/1P~-yAH*ߖ^[pC8@IY (P$j O%6@Z8# '}sDǕENzWXJxK7tN@[_ :o(xŘm0=/'dJ:勯v=c.&G˕ė%^Q`OB0u[fľ{Ek2wrM^D(kXab|]9 pp6_VR" pCɵÏC[Kɘ%EnFwho˙SR {m0qkn +_]߮kl{ ttGIh(2NlTi:#b*< ++/f&T\h) =rrw&WdV!Hy+}?^kެnm{Yܫ( +&þ8n#`"kV7*XRGUjthkiʦR j20."1-<;'wlqB;o&1`D#t)8'0f3EULpmc)b?…>Ā2QP+Vh&mh(ҏJL;ܘ%J2V$JFmOga AͅӤ !ATq o m0Doe,?ٸ m1Kޯ W͍7#:^R2(_{\Vg=*:b(Y .6#%YU6~ -] =@rDKs-'޼ a T Y&íɚ Ps6U+X#2?Numr*0*+\nO.;DfOoՍkewu_>d'+^$bB4b(TحFa2e$C827zRRbS~lPWͱ 4jlw^wȎ]{I`v?T6a +TCޘ'E}E{rFI;.kKfWz17@Oo S`驁45Ej#%M<0ߝZ#L\.`A($gF=>rؿgH_R \ydߤQ&"=ɅwSXđC`hl%,wsNܤltJk{}Eqt֘e\HݛJ>3NS~0`|045 EzS5XcM%'C$M5%@ AAi?.rw~;VY7Ʃҙ&+51`i~U#j,Q#I^{W@^EgJ=4 j ay>_/AO􆐊?9i!uhciR|U0 ofZm)=QvvXFTYYQZP7Rg(%W*;ҧ= +0woU?c=0,rn"4 +GBUAЛG+X!I,sA ;gnZdg[+dxudSI`iGO{>6aY(c/B7c׫W^rR2Pڄmȫ٭@Tҋ+PF"!EH6%\T fE(^M[;=$>(Vϳ 7:$5{taU_ooR&Z5qɮĊXOn3s)[[_gT>G)^VI,\*~X0l6pޜ}*O.~/ڹ@WwdRel YeD&C-wQ +{tzteLXir?6hY| +ufxH ee[;Wn Ȳ${3K1 +\eBmYbI̴ȜDjHp hϝ =o+F 0a,v.eUs/Mof˗UgX.)3R^6(ƱWT _g:N %c"G6Luwƻ +SH'43|R@lGnX "$Cע*ٴU}x=`J^R'ڞKzIU?ߎRkJFxIdʏmey/$̈́(X1-AQ'|^j#Ux׌zx/,lcߞn8tu5 L>#4J# s!6lgo-]h~=U)"ߏI5k*XgnR? 7b` o4F!A g1q`kp;rA!+г_*8 um AϿ򤒧k>jE(V7R(޲⿠:φ ҭtsgYt. j?TvvI$# +_U; (]OQfOE,/bh)Jx*fđQweMţq?;吨R5JfW:/7=$H҄r]3Kd9;FE_;8lmZ|' Yz߂dPyZu EeCg{ǍXoQ0mG0 +m$8I!RWRl!AHnVUU1X3o̟C{_>k@y+ވc a1_8L-V*9Ic3Iɀ̉4Dko" |< ߻f ޛ(+sY4J ę^im$xeaUH+I/%50K(0,*R}5m .ql%օ `})XAjF9_m!%=X$xQQOŸ=9 $r @fi4~iAhųUeV؅Ph?{ŷ9VQT+f" ESڋ%P]?r}07CAa޴3qϴ rW2D#fKP$Hdaاɹ)Vl"gLPbNM9P9ҫr29]CP +PyES?ybzbN :D6w5I>xޔ+/gOrt*0yBy}\5#pm>%2wi('U;hӢkrB,qbRfXW=P7VIoi8a}y\% T=`sy $yԽlP>5|P[ k%Y&LEVV'PpKKxM0^7Tʷtq<%Ģia##"D 겎9m*K=?x̣mylWjn gVD +b4,ހ;Uk6u$MCBYؖﴋ,|y7=%؏蹁UBB&JaML\K|_`L=q2joȁ}dwޝRb}2Ci택ZM= +Vy'" %Tݓ112sO>Œ}d +^o8j 7 Cae+&$@H啝䖜)j(hgʾ_hJV;{CC8^;&r|3|#m3٦=و8v"6R;%GdЙA\YT$lvG>ܡ˥_Ufr ;vZ]4jz =7'EMx+o^qX[x/c)ؿ^8&"CISa"vT +{h}qܓyk-Y#Ee6t#]A tW̻yǎ.j`H>H!ɗf_*ԋ7OLAٲllp-[Y*JrVL8%HP@|eNhrLRIeo1ⰟDӄٯ95L;xleX~aāaIpK9k#cEn,a5%[)@<~T$6PIRrIF^(F(ko`W'2 -ser~x6LۏKc")=DS0U`!2dm_\t&g)Hd3J[&Ք(Mvkf2*\SU%dBpt \|ST;}se 6L%Q3Q ΣF,:?+囚 D@tbCu!gEWQ-{#It`'njUUVȦRQ +23sו 91n⎹bYn|pL 2߫Sr@Jke]% DD'/!s\[TĢc$w9b'%alyebzJ͔9vQ9?d!Mg.DFr1IM;Ӥqf(aIRLqiI\';9wUe7p{m"ASQAE3CkC^ykndD%L7)9&B[?!.Æ|$#<-ЋD|W;Z+ݩ7g@4rQqԴ +3z-Yq1bT?L'mזI73~٭eoKjcы%PJeYh?Xsn2Qb\~_ޫʆNxPߩN>0O$a?y7:użH +ER^RĴ5$X*m:d6Ug5s_这B}JZ5ٽ1c}~¹їF! +P|ãQ1J& 1[E2>zIqkEԉwy +(=KL+) +=U)km2L%_/mnB$-pzZ֖ ; mn%qeZ vV.n"$q8^+Wa~mgfWj'O蠟Y=}H ުD I vFyCo7nHaˉbeWd0yZ08W6W|KXZ9#\]S1bK1d<15_#ƜH%%GF]h +-EͪZ\^ ܚ=QxƊ%>XMELH2JK^i8z5TwپrӯvFo:֞ pGpR5db)'vȓje׏" b8$z?qeR )% s݌*+4nJCʨ@F1L:GqOdȃ q %qΨ*,"@(ꫛ aJb)KMfEEQW"-Q4`?7mHZƧ(r;N<i!R7XB Lx$کȪ@zP=;SPU]Ej,"Ml=[fi9X# ;t{. hS ǐ+٘q1spV$-ŀY/NLTq=w 짬˧@%ww~y6Jb"Lc1thpJN?ذf^ˉ`@WoI$ z*_JZq#^% ~[}CjO5Ь0LfeKZON 4.KIu \V nlw#'uSî0RB>|`)Gv6u Eu '!舱L1#T:Ӛ!..ѝahKN9+gz!gOZ`8݉V@-*wÖBUT0,YںkU50;JIXR<3Ov𣾰 8ER[$W9WkL\je2o#D,U2#(9^;ؾLKڨ9+jkI-g8 ." v񃫶8[ 4Gs20`9 +dmƄϼ;^8{yu早naΖL*`mFF4,O,99ԝWku;=v<8Ff(qIu'7XIfjm͌7K-|[> ^,ѺZ呌8j%7֤gNגx##5^J7BWNA렕Uv?mL^<|0LnK>˥3*%˭9-Im~\aD `&d$9@سg'U-ңe͒V^KF||OoanZ|_kA`?q::%@= يx8J{WVOdy*dT$>hk7 D%lLS`t..n5x0QLWCz z͸oNhG{ݩO,|`3Y='hTG+e2ûE )45$" w‘ҧU花+C(11_E{ s2(-};,ҡcs-X-cK6':alVϴ شy޶5%-v#0o~~c\];vΦ >48{ƶmvl9uÝ\Ż>׈=.w:2jW帓HGPJ#box `ELkxf9oշRG9 dD'yNR)bm~S2~[,u*6!z$|Ȭ ŀXD@n϶]ѧmo^~6|)&Rfssc?v w׉^&§ <#5%tSp0EIP=Cֲ=WrfyդRI@{v-g_ks:h ~f O|oFw:#(L` + p]tfH ɼ4Ari>uxRl Sojy/j/ x0msfgu l``ϰ[[B.cs C$~{_sqY^)Okߺ)t%CWub &+kC[]=SsSz40tQUZLi(G<^49PBO":OES@ ZaA}iniyѩ ?[\U7SoR'Xn1/.iWH!3^Ω\_)Fs/!F_3 2Jbt*6R$[Sټٓw&x}TXPĭ)8wyyYK:,`^xk{q$wWՕRc/KR!-_hvp}wH ;?Vә-'*2s}Y\VHRO ? Wx+‡zsg\OIPutrn N?,мQbY;#jSZKNW\v#K` œ9@E(@LFI=q\.;t5.;AԑՄ<_7>+hXd_/[2uXNc=ɽsҒ&s +.'wtzs -pA[~ uR# +Jo"!3rn"+0O2U(sV-/doV2裗qa ‚F xK2稷2jv^F [2|H` +_̴_ w 3NdJ<|ן5.Z_|#AF("ޛ릉)VU5LQVODu{Yڛ (buU-);Ҡ9Ÿ2ownF.N(TE" f \UE^  =>,{k=){!?p Ibn~=x3 {ݘbcz% h({]kNڼɺ3̒5T CVmg7lXVָGwXvz64űe&- Vs`i1Fi0ShF͌ηW_92 C]]ojō6.}AZ_sO-V0.k* Ѯ2yVT`HuIqpH2.(Λ9&"W*k43~ޢB%%4߫~'k4rIOz1U_t]]GܷJn"xSy0c KXGU2gb3*&Qv('ߠ#_kh?bȮH]FӍgQ4[EusKb'Kz4L{E?9\נCTgI#*&Y6_MwV=!"|Lj6S y"jgvh1C+|g cA_^2 `okknoW&y,| >G >RAQ *xN%xJŋ;G.~UV/NjT4kG ;(dHqޚ)Ф*H 7"u6"2Bb|?(Ă&v +,6824S7T@Zj%̋ +hrN^S9/Nne阌w`ÚW>y} Z7m_'Tw 2;zNsKf qcQ!js>SNsƍ! " +)"|pSu^}7:<_qRIxp'\mMMvvF&rH͋{ X"60[Sn $$&,jOPdݞwv:2HG|'cbn9Z. %S@& +P+ka)3oKvDkq}s+O Ԑm̀- B#UGۙ3JDK̍>RAW&x9Rwˮ&kR_`}V7gz< 8P9s$"sLw"ckz}q7Um.$| 3ifKb7s۲Ml &䌁'X a>Y]Cַ4S36p>д]5ݱ +Qa!-m/Al U)dk*(U[ +,U{LX 1\"(~D pFUZd6*d Jd/]6pnWy Ohd +ushqIYSž>RxΫlq] (3={[E60xGbn+`&]Y1Hý\de=r>k~ 7/]l,4!rxCbene`6|?z fF +&RB]a@-u[? #hc!{in:ŅjP|=1 AԀ\SineP)VWbV?˗"'4.mWKb +ڜ!Tj +.9EAm$}}/t7wd4#1U0WuǯYY-e:G'ub_ XH]R^(SwZu+Ώ0RYᯨm@+%I:NRV(4--B?X>?dIK9prlOs*1s]A:y,=tga Fu=Y&ۃuY'릯 t<]퉌 9^A\Р +=Jǽ +7v$! ^4HY$X|[IIaHՉ|!sCDG꫕+ 9Z; T(Z$|wp#ڂb,qBLj20; +FvdL˺pKɅ7RZ2ٞ:n ,)E21KwfҎ xkD +ÈUi(EsjRMf?BL,:9@rJ5^+oU`ѺIY5[pB`J"Z57`ڵ*G8ƚ 8nKM'֋z!B,Z!<|.,\l2)NV__^hMޜ'}2UQCNU"0}GnU꛰uFp"#LvVi{ְ \]ӮO<6ݙ%OUR@7-ȚYiUb(vS)&DVl4O㷑HɳBf71*kӸ4i|"<-˅ms><'گE-HF`t=(Np`t!Et"+x0llPlGQ(~yK<{,άioE=p7_PzTKX,a$'z/Dz s */7X_`;4(<rynݫc3Ҟǽ1|Y#V7> 83g2^!`֐mdVcRV[aPKn+vT-q4V)Բ?;;ؔj@^xl͘jz|&Q2fvJV܊n9at}Q;~fRFT\0@5-&g#$].! gwDqEd`;6tz$ߑ1c"5ߗ_MYz |Q<NXPq74X|fcZuޜϋ}gv;+F3Fh~nߒ7MxC[?ko740EU##WMM[8QAP#͙XPNPNw6JZFC\VO*2U=;D3)*x:^.ݮṁH Q[r: Ւ_0g7M0m܆В*ϒH$7"o)QNƘ1Z_K֬'1^re,&KNTYntҠ bw~b;4])ump i12jS +mzWV#%ڂ)1ǥJECYP&]\GLjsY|}JePtK-utUcP57fPH] + ^dz)hjl +0u1| Ԝ?S̲=09=Mb1m}QKc/۴J!lMk˨bÞhc`qCi]&0<4 xF9>7uچ+7 ڗL8@z<`N+IB*8j%Oԃ'Ro`k,&A²DOAJsd!c[jZv }V%kLVsByplϭ^ i̙G|Nb4x^D_}U#uݍiYӭ]|3'33c1wG暝7KX7C1N+6=+,?U2ChjO}E Xb_ml(U{J qK);D_C[d_J~tW8I._3ׄu UӁ 7U5RF>caA=4(j4<IY[̤̔u|h77>r\rL0~(hڿuBeÞn>uh'a^`/ EG>>\~AfQj Ei~6+=}(YTМŮIYZWi^6;}=dd2?Z ۚZYGP"nlagsjdW_I+v(mu> 'Zi;|U')vXͳL3 ue2lŀG4hG慸ǶEqyaY)Ni6c`pNL:Knш)聛`&%6T wK$Kz=W4yfG_%8}\j=>9- 4,J~ݴ##+q3'5* |**:`G4tBØi6+ +LWjT4Ҩq+VxH7]5Wza~W 4w#t_~b +4PK=G +1Hxpنq(W0H5Eֻ.Q$ԷًˇVu=5X{(JXib7r$($d =DJ-$%7†ptfQU!49[yd+jD?cW9F./0C_bP7iB:f]Wں}5[7hKs`H!V|K|] ʾ/t*bT'l4Vu] #iɶہ-_QWcEmXm=؋H+ +mÅK6q'Ǽ#vyO1 *lYa;F'[i ` wfs\.6M{Qm{xRźpڦ" +],$kDrB>ӒMi"UfC&8$qqJURgMqk7E ~~jՃY +ha&iVY.gR*a.qdEcu3;u}կ^gٹ+=N Ag,*cKY7D A58})Y X tRdrt]Wi߮*wS8p!UƕT#˒) +0Zgގ[txuz~!Nfu6kdp('.&S?NI1"nAMhQؿ(IUGQ'M&'dbQr 2zC?]3ǁf-%_#.Id6ڐ*VXy^ a|,l݆(q^x{Cu>Øurŗ `:DH@:L'm`;V4M?_:+@Ѥ@"ƀdM1ج@;LJĀ-`2cFh ~ \&co :./0'^_=]Ft0 E +%;= +G2X+z?7cb>tqSɯUa wJ2G"zO1#휇xbA)qbD'l;QLfǬ JQ~",<!y[aK­ Jld†ir_v_ RrZQȫe +auЬ%yj혙gLO.ϻ+2gO"]2> L:D[FoRVAS˗u8:bNto^z<##1p˜yϟUCsv3dth *D3[ec5|B(㑎5IcvcԧEx'(q@3{Vv^ç}5]Wu"xfh(fU߄RC-Qhy\ۢ%B*pO|G+*0D<Òi׽M)w!hH +|t&%Lɲhz1\cAd5"'/1LgR+f}= Qm)<@$ykPbYDT`1`9ݯ)RÕU)52? m9JԜC/U=AF`w pY[+c[_ QoPNy(I 4s(,rD):$l Zߖ A?k; )~˙y9,,5X]m;H T\TU.*U..`d6(_ )N|$[˞D/򞄵7%\4FnwB +B:BE~ʀZ~́== +)hdkP"xzV>aX6 |jax7 n2f$b&5 #`aoE!nS`r^ GEF]9[ǘNKWp а $;,EH~0ҩQnqF(lg݅/lxJot~0.xu +x[xkv_`z1BMX?P;qfS +)Qh(&]!7܁P:6|}JMW~)Vǹ;zXB-pK.X4prJ9)1'!rcL.1s+s8 +<8ڋ 0ȘRxjZ@4،?בTQ)ɛm&И*W3KʰhEB5Ɗ^_z9?r躆RF{&i +HJ5ի= Fd{*Qڗ^ѻԺIS.ĺ8Nn6orr1!;8 î *t&v][?BHo_pT 7x@BoM m!,]g}҃@V;鸟ƂWZi cgoo0܈252:"lyaV^2<ۚɠM8yO,t'[&tOp YBn([N$G4$ոp)ÿ,4UGuG=4 knI(T*2*GLtI'5͸Q60pgjM_/SYzGnj]ݘ[BJ Hd?\^#;c쫚Yօi[ ԌQvQ'a̵Z'mWq!)} 3OMZ*,vIVI1cb ΜIc`by.$cȉ>]Ԉ()P1x]"qI` 3w"SĜ { 4?|/~v Z[~Q#N$pT6E*&U>z~lHk)Hq|z>k+C،Y'wf8::';c +. sg3ϤC a?[K|NNIk.F9aY0# 7LSfDa + =IHsxhT;3Zʥ&j k!c4|@q)=ƫ}7~pRM4^M>o!\пFSiCs*Zf>.Ala^?fu13NP<\l38$Ao{G+2^(3l}bcE=f3[1ZQ>FYr t 70'J!R|edi.A 3-jj #V2ƊҖ㦠}gpC/Ʌ8ӨHx A: ƺ+7p'eX +ܗ̣|i% Α=[7XRJ_AL4H=t3DFF=J*(VѰ3Y2ZX<$e@N C8%2ÔE Uک|á +u ]GMJU%D+#'z +Ձl\OxP\&8Ob$3 I=d5>EA">fY,ygn+g?fD$}7:I?$ +1UKiS31H}y$T0a"Z l=ַ2eL8hĹwqC>ib +)ُZL ,OF@X1|!J:P]'QVO"WmŶnR^<$kki(ohgenZ(Yu0_k y)h( (GJL]¿(Ֆ؏O̫Z|H}kF @.Ь7 +.|+;lo 5v$80 0<0N]䱃gXM2(/F :c17I__fiU*6iupGW\ WLjB(.wEFouj؊s`rn~Oe춇}nQh +UZ]%:6[8P Qo@8fqَyuDH@ЛGsc/(nvٓva8:[7RV=@k TNuRfx٬  +TɑQ1BbcVv*lT$,P¿#YӐX_;c:/̒X 50T}b=DN|"UʇeԜG"m8P/CE}n˘_&$zT&mYDEPgƘ`NQ1vahXcQ[J*Xw$fH0֎⇋ q)>f3+ADO>lv渂!N~|~gNŪN}Z6!A~xOMPPNX8MO2ȸ^FO$uc'?t֦Ib%6j=DG;F b<i.[,3 +MP l~bzra4#BLHD AǠ*2>oKuBcJwQT-)񊢛s*x8αFSTԪ/}91zf4ACqy0,2'1[+ѿ]{Z>~q,QQy,RqMơ^ddB(GB4 +,Ifv`Ay^j"j'kfgˌ߯_. K#|z}wq`&ykl?)aDe|DB"ǿa._JRά,lg|Nc-Ywv GlOwpWZ)NJYq2, &R"ՊQ69CU<D|ӷeJC~֡D?zv` |9 +E?lI/ar;>lX-)^"ܽ +1.{hr5Yw? ;=4,tCmaաDMo +@桦7xՏ/߭+TuX Ss:E5ԁLӃG$r'hR'/}ߜz͝otC>!,O*ۀFy!И)5PsFPVd썖!~SEQen +$Fjj4 ST + Z8W?ziQLY7,Ҟ{qa<5V ,p~NCGeT!l~1mE "-Li0;Rɪ8!R3 ɻ5Z{‚9{QR]ƒ HFߴ9@A& (n태! р|j)ػ 7W(k`62iV`T*9άTnUV) %ma7 +_970mH"}~̯<}NwzoױKع֧N2zk;In*Y/12+o4c% 'H)_,uCxu[[ ]UFL4gO/a'}x~R6ն5ERN_tj[rF9-21qLCY*D"UƨLHtLȘ* ܋Ϥhi'!m/oº^4)Ptׁ%2&&e5C'h}0ge J1齈Ʊ^Ö+k穗wFF-u:PpA벝xOPe FdgL̙Y *$P(V;)ϩ#d]&>wEY /ӻ `F{As U&4:.MPm{[WJv+j r<eòӥItwisz}AΕB]I͞D@0.킅c''p{Lp+B љǶVߎŰ!j߷d>s-}se2#2B=s./S~Ҕ'C+!,E լ"BpF.u'?;~Є,Tk[ a'+}d4$:kV3 8&pju&l(jCZ8Tӏ,)wȖvj Bוn-=UIX(J<[UKBf1ayIzv3Sl)U{5eWj\`.5 b 'J.-@NQy:/ro#$W.l"<pTdOBƙUu1uUmXbUd$Kr)Ç, M`R<;r1Zt"лBB<}o'$7>P˙O>%yQsyqqmy{v %R7"Kt_C]PR.< GͽUw)ҜiG +Mޘ0hJvZ)1nE%p+ޑPnJtt9b@B4h.bN_|̆M:=sil&=u`PCXv_U[Me#t}^x%F"B +ޑ|&;7K md&5 HPJCe$(F&`M s]E:Gk'T>M1$qwJas@ew1̰t5uƙh!n61sIQfsgsgJM#lCN-l=5cQ T.y%#5xdA +soL u(h:Ysh(lAS7D[퐳\Ki2Gn֡Z`qOϒ 22=2BVb2w:aFbTYyBU,ĭyl5 &ɤ)\6F/FE6HS)RTpc84~弝=F;ÅZCPy*QabT]Gn(%)Yoi9|\9,\׫, ]66 zxE߲-W> +ZZǕ$t9Y<9ɫ]iX| +#>"|^,v v!sEޅ`>Qy +㜽rAV0--צo _ľ /)=6)LT:uTH~0 㢸5(W!kݴ$bBkN+, P> +R4# G~=,].9Ac{q)9>^KB+L.Bn{4tTY5pg)3j%0bʻ| ܡ|uт.{ٱZTH/0.8Ġ릀'U׊RV {gr>dZq(*ٸ>^uk@8: ։ (1sn\L<2MhB| ߰@_ܿʆ:$e0ӋXYǂlaPa8c}~QlvK7n{ 7'oH&eTkԜurh \3:-?ՍOcHgZ].ى.  lo"A,=rH;Ju9AG^Pu^e<˧?U]_´)K)>o㇙ {.9(RBe$"S|oTxpU[kB'N4v&9/TҌe sU( \n) T) l{5!CgpEꆅ@E/&}7}aCU_ _H:I\}p#]J]^权Nj M0uWG^ƖXdyF+ҭ8xpw|$tRÐWRČy>`#L|G!{%e 7a:1L MCbbMtJwUNn*ߚ'97S74еuYM2pnO<"2V >Q^.c3!Pn*较`an,ۤDg棋szm<'=DO;@Z +KWm:W&RC/ R7Wu=p2o~$fϛ;g+=NrL-Wc5܉ |9H"KBI B +cn?\Y ~ϛ5$a" ֡\|F˥g SvjkhYuHn{sݱع(E*GY"#V| SZLd=7_")l;F9؃qkd5JgLG2ӟF$G5SOCm g$D( ;N:< +_5l|7}iQ}ۇo7__1&ʮ.\"}̊vJ/*^P4U}R M^ p9 Jq[ʾ?-9< ɖ*sfGi lZ*JgLG|%=+S!ء&(ad`aRUmFY v٣vkX{t\kkҵ\9w^Pڟ9_;˕:$ `1"|Lվ1SA}>7 ȸ=͏ҩƮrs}OqC9'=o%F]}XƨҮҤeJf⌚}[CN#^WTE.kXVi|#@{GE[)OO`v@M]Tc.W~ݣ\NķW+Ąĉ9dc(ҽ"<9zo~R;2p, :4m" ]`ǟq-)(IznёKU}V92}+qw]DF;?xI,S]؋kifV`S_dUZ5xP3ǠnW'$+l6w_+tm-LSSw lv ( +3ؿ~PUZ>!LtmA`L3pz_hKeW &~Q+hy&[ӛ5?tƆRO%l{DR3SH<j)<,; G I +EIK,SՆPba nsҡAQyM-Țcjܫ^;OdRZ7h=9ec O>,-9,dOܺ.`o,>6ܟ\ H\`$dG %[yŧ z"oC!k.lkhcoh,ohgmeiL#4w#QRT.L )ywv[02%۽k77_]ixhNU{:|men,$IԵP+H^жaub#GFY^7:4,(1 szW65riZ̭u >'[9u 4Sd븼̜?<Ҩ4joy]ޱ42AJǔ4DX@mT]3&((!!d)D:myffT{gF[]< 0u08Oo0Sia+w)sA'^&uZ̛k[ƹL-@A8\;?m9a*Q!T2MF6QKłH1C +],lk䙁DϬC3h  sL"b¶!Fl0l}&CY6#=Ds-s@sc+*q|dgǺj9p,4Yv׺y -˸F r`/h~`'> ?;J1!.fz'#eNC+vd-lm E#.tt0`duyQ$|ĝ6lCiUs8/ZOStFP &z=KtfYUTp+c)qQԴEcYd=\A&z"-)r2f#rQS;m}î8NG՗Ơgj{zuLb 7OCAH1 ) .8:}OH +9Lڢ d0P}sZ2fiȡ-YVL}]cl1"DbFHHG>a-ڱV'Zoq6HeLWiR9< =p鎦|q׵46@J 1YnLK ;2m.h 1SI-8[N{X""ǛwٽxMj `ai'+ VK Q93M,9x;&-]M)骇)׵MxEdxrd8wDO5bB,80JUZjx#]J;ɶ6ݳٶm۶mvl۶m۶m]k;/νQcTDE'f'դg~0hVy>r&({j+)(?wRaXxj]JwAܡ/*Tp0:*"G|n0jPHw"m +3Ĉ@ip^ 7$!zyktRv>|} };[I!aƇWP<.?oe5;/hm`\|'xշTLOR]^>wIf9;yAJ VVbHBKc>p"yK%NBS:,_0Tg/S0N;x C's%9JS)S{OlG{1鄠\嚮=#Xhu3vo7>j=p k EuNrD5H#яЇ&6EF<Ҍ2p0c2iLU%;$#䅉;x"_ϔmmgI<j1y +KK[zldp&$<+>l_9t'rjV.17J;I]-$6 04z9q 43R&5~ U<@]4W7 >$VInɒ>OѦ'H#He_gpeg୧Tl0Ol~a1Za؄|D7kɲƻ[s=H2"ƲF3"}U 4 ^iP53w2зowL2bt2O!LagS-Gp;xW\kWuBbHgl0@jJSQ~5''|SV&(Bڒ_PJ{kI~e=@jJג P ~ CRX %}~ːzPPIW{(<=%H@Nľ#a"'b:RVQPZyh룾Vu"J)ITygyJZV|㯈ݎ3|31E\s3C&f{ :ė}24PW%%Ooӡ̞~D@e1Hbh|Im*%c05MM3ĢV; նM=5y^*I^0IJ%ނ>al,OgXH,V97xm`wv8jVc"Т(A$ccZ+>-1`=aeXOD$ȷo-Z0BA _+S&&`)8iU+e R*|FEM W<+H@@*ڛX29oC$kV n|mrNսMä#`e"RqMM+DNM^hՂGPp* -S=F,Ec3ծʏg%>Jj 1-U+N1  G+FHJjN /IůG7)Ļ +D 8EDy r$kkPg=IJE1kLOu-aȢ/j):`of0++Bt\`E4)tF~*ᕣ->ch#0g+,N>n(?cLb:AlhџH^JX)*>zCv^1#*X*rW +SdMK3΅% a9f,3눻*o`4~2%!S[ʟ5o/3Ӻ'X^+.i9g46i4PrھƄ_~R+_ DaF]Ajs1%P23SՂY8"Tj3::l/( RrP3B$twɊˢaǩr{?/DS6YV̷g>7-a!1a(_lӏ(G ̴򎱢{5j I7ALZMz, .m,`)ym7ѣaS!}L^-M/!D +u6=7 +mYJ)3O oyv.$]H=P墿>\N`d+ ׄyh +M*P|mQ1Z`C:O]=Joj >xvV gxh4 K. Q ~h\ŽY_"WrԪ=Iʄb1HJ%ftEZؔ +) m8fV͂~:]VH(lݟa +(O\B?߮-Nk 9j)>Yb]9 NEF—Lv,1LsֽRpBr1NzX$̓%SGC!1VjAʆGۈJ7=4iC M as ׊Rs +V9_nx)6 +4 ~f pc1)S{.F#=W>!{nԠk7]fo+i *XD&4r͚.n.cNFw,(<#gb\sFJ+=/RՆ!$XH=ejJ\bV]- S*2ݨA[U).e*zU)a3Yn~g\1ٶK%r|~,Ѽeom4aÍ c$ĬӤ *=r»l/NUYջOVהXB]l^?0g⟕I7iFºم%ՑpFn8gL%ކpզt ?-;bHNWds[6,+Q{0$z_qdq Zmٳt[]bqHU^|<`T3a"kw&в& Jee.U0 V҈[.uM/r뾣>^.$=xVi!:޷1٪8p!}TG9v +?;7[/jG;,h= [q,>_f{znyV-qc~4Z]qcu؉ϼk[1l:?}z I~qP{09ҏBۖ˲B5ǙqBXs|S9S@\;Y|4~MNJT;ʦt Ul+|;*ALM–猤D+aɰ6F1d)G]96ɇZ9D,(OxGxeMfVt<}mm 0R{:[c|)fI} ځ  p;xǻZcxK)InRJ9}cy{w3xZczM?~.]5$~pS>5X7Ԏp=O59Z ++0fs-HB"[6d-g]IÈ,TO] x >k.w ¹gN7*w O.1-o7ec'Bgb/«Q鈏CVͩ:X;t#vJR7e?ALhpwv +?Ѳ@5'NX%{l0۽1P^$#_QX^,l|hGml4"RzA~2l-+fuO vvPPhQ]!R|_it#k(UUj/k/[Z)}_A>a>2dnv4Z mP?Od}\]\Q>_;To]sfw<~^^ qRн}R$}C}&h:~ߒ }rz8f Іvј:ؘVn~oxeޣ,RdـRbd™l:߽Ò=tCxMPbDžup =vGu5;}u 5;vu'fV /fȋj$OMD}'֧~Ꟙ7b7?DcX2_#l^#}#v}0c60n5vr@ufvdx1:tpGP^?0٧Z%Ep8DG"J2}wO0Uh07mvUVv&Y'nY[xl*&ՌֱFi_b))wKP'ĪJQwy5%&5Hl]Ӽqxu5v{Howu$n7~ _u?cwWzfxvtNHn_m\mxJw{P`}@T`\bl`4O|`y+Ve1cr L{묒Q@:~'ќp78?)L9 tmﺷǸ\%kFi0AL̑N њQB* `5]߸(O2C8ٌBkaQhѐMq,]y *᳐/rgR4*sZ]jcN"fcI9V "E b&iEziKyYJF+M/i%=ϛr9$JQwd-a2X"?gB?3Ӟ~4Sy7XΐZu!*N[Z_4Σ)uȡ`OG_v'G :/sDT%X~@XCBNk. &Dvds)"GJOr%_D +*Qvl_^^^.6gE</Wjھ0C2NL^`N01`&"WW&ٔ'9{F4mb*׺#TmQ/(L;OaE2tLvW=;e4lDZa hh6EYRBU/kbCVl仒Nbd4{LCNakEUS Ul7%J͟nR˯t +['.gFД ھʏ +4CDz s%j/DSE3 ]W_2ԏH"š~~b6J^@C/At!vG`pxcHTq/ 04zIM ?fdIw[U'(0PA5ŧ셃$4Mԍ:qJ!fM -x8锛 &}Yt* > wO^w͠DHvwp8ݧp4zpn,<\ԙ٥q/6h|Fڐ\<a gD5gm)buo( bs乤FCCAd@{aӿ2o +  +!J+i"#}Bj&EY@"5YiZ7kC_)$Si.؄}Cωީ& "&Ms:gLtCnW}KtiynRنg-R(6oY'*-`;)};КC4KawIV.Y|:/I"f3άf1ƚ!o>ByOWoha?UY d)'g +GLcrsHFF{_2.kmNWD1^ƶglhhn.otU7  ygyHMP Jsi Κyv¨h`!\kkG-:(B14zơvbPEFVَmS[-uA@>5*gZrpߐ!ږ0&e &ŝJ}wTrVgGa0cK*ʩ]gNor:`"V_ la5@źm9mr]6#ZU ?_GY}S+X1!T俆r_i؝F/o:nI6HH}l)jsq ^` ,xb;߾ĄBLaƬOEL$D$OMcx`L+\ɎĭdI$#=mdž'fƫ7U>?4WՊHsT;bcV>3{ y|2wn.3߼p<}t y}%~JE'2^,"Ne c+]apN (ݰAIcw!scC'[N1RA<NU)0>V}VdRm՘zKQmӇ &Q"{eE6-6S<>r_cئȸ']_&{CPuT#ue + xC2'J8yxpT`G?6uCکk/SofG\lkG(M\c`JEwORDRB|ƆOve5$kAL D]Z:GdY~"k[_v3;&{_Q275 a"ٝ{"(%F']N_G17~n %ۓ2.<[@MB` r_-FOh߿0Q@m$߼2e@-.I\jfٲ֥35IV0 2?z]}mӯ4jOdU->=⍭h =^ :>iIPI:+&Nz'jՌ +oL:ԫ`IL#tt/L +p,YZ n߯fR{ C]M =螁+PS5hDDq(h3 + {E.hke hkbb)hAQ"z*/6(XٿH$z@`Ѝ,{u.tw:d B> P¸|klBpX"MQZ(\J?O/OE]vabBu^9RRztuyzěSSܰ#`s^&=s{L;}x ko= +&=ߟXpB/jELY(̄WsA@S @  qj;- ow%s0vt˛,m)=sn(DnN^ṳTh.D.ijجQ +C>` żrH9]'j]֓EJvƍNZK W j"=(=EVj؞9bHisGf2:nLW$%vCH_Dp{o: 7}  "6je`ҵ`#$IC<)S1k'GZM uMjU(q㚸 +rVZ@"Y#l |Z#³y k O~ҟ#08Dl N!ꋉi $WdYn)l=> +]cfk"9XE7tn0R0QGad8p(5kpސ/w|-g1Lvqb![" ~,hp"潕'Zm\-`_0mn`$,Z"BSwV#q-z!)Bv@ MaxN"[hg#>g{$r"\mIqeDG7QDI0C +j|$hgS0ք2+06x_g5 ~c#|`ydYx'$ /1> ~_"KKȝ<{PlmZsLI>VZ*~|>]BưL_!sg%sKo!s4Iիue~vEܼꪡ> 5oe~6@jYCE\e~F&[ĹԌ4I|aʃ7͘Ho {!79/Óv@Os ,, 3(6|]O4.5w/T+ʏ +ٮ0 cZ *Oꏏ]2@?n cL\H.=ix-!gR6@-13u4͋7ɡ2ߢEHt 1TU+AzHۢM["W?RF0BAIFmm :B [p}D-CTJz _P +R]IҠ`1UInYiQQwl_a]RETܫ8qjݱ*V`Kc + JsJ#'hZjj rX*%X\h*)j3d0LADh +2̽~]U zv*+eP)JRuQkukeH=iG; ؆t+/Jf(a5%uj>3$?<:n+RDXjm0Lx 0ep DuPeֺE=U` i#`(0;SQN>\(dE BzJF|z|dt9z Jpa6tx?؆n?%C aŢ{9:Ng(IA=~` R"EomǷɥX)Aµ'&7UbK\eP8LC杏@LS$ ԖJ%U_5)ZjTGizbFЬ@Q6O (R' ウ!;19tM$[ju7sKŗz1:(SC8 9ލ'`><6.Sa()5Gj{+h'=659a0/ɇ s[k#Q|0_o/UnGo +5hRS ұ4œ pdӥ[h*U%R1˳X 5/UU8h3A}Q<蹈gXR_91#U(QB8FZ8 _)Ԓ=#mz"..=h7 Qf:.Z:֗,D˓&RCrfAW2iq/n"ؾ]D/j!*`M2b*q~HOZ9a6eqPp +/Fԉu@+u2AG$SYD7ŅF9u5[YdYߒZxt8ыeHCĦ o@qC6_Ñ*B\U9@Er77̍:1V( n@S$V ZWW-K=; E2RD Ћ1=X$,VWUFZx5șiQ79i0G7DUKۈJCP^Eb%"m,}=v^v'ICFTKY=B_)Su[zGImb~W!Уѽڄ+3&ji"#7FݹOG O{utrv~ΏhudCcIm۔ڷrIՊzݰ`cGeGX;e/Zvo%Ӈ% +o_s-;Zq/͸x +JB)N+R#gJBݸ:*ؙ]%q1@Ii~iz`0)Vuu٧{ {E| D$;펹iY5q pzd|g5Z &OӐދji;'Bk}gj^c' +]9Sc*Y>sEUoı:n4wH"ҤgHWCp@}[76 Z>^%8Fʖ1iFN{lI3[*]>z 3S3csQZWZ(!,%a1 +w1l{ `ӯh8cȡ &`3G#iWênQʔemEI\|L9*4^FM;T +cM;hwz=MσkU^`O:@٢'7Pxfu/toXԏ ,uC@)yòkh[p=Dm Ok!%vA 'fu t>֝s F’ǃƵ*lɖr`(vgQu}[^,Knc믣h27a&vEga窑-9 &G,>WRY4ҭcl^YfNBSK_g=_<@/ؿ89kFc4;'IXɊUuČNEƖ.7I7!} JDc]Jٷ"gƢ8gky  S`2̆:p22 EE:sp!|": x8d?~T"ӲEtd pU|#\]畐Uw2ш=nq^c%p辗9nH}HzJ 88,nɫ0B(0 4LDۦhϿ޽N+s@}V"Z3< ߲/^Bs`Ga.Hmr>;3p;/,@e -ngYX<]lqAC+1VU?zE Oؾ} ) {%oğַĈ9a!b.t~W՚^ށ~`"X;wGC^o;[`Q,_Fpwz%߆3okz0ݭ2}}']Ӎp:p|Ӯ +cv ~ QBB ړ WW x0uiH^Ir˧r i ꔊUt,TF/< K5;@й±O.4M(!#,Ǡ rEl~p.D9U=^Q5쾮,Hc;659)âR)fڬzc/bz[*`\eN6:٠1=i )VՕ~l|W06:R>At8)5zޅ4qQ+YvnJ. gMg6%@iwŁڤ|klg$!”a; pg Ud؋h-vsK4^/ [a~J~2+϶h"q{|DXe͇A+]6X4!~J/W7i~12dY?W%A=4'+IA~Bsh@H\Ga?"|BNjV9 Df#vY09S@Q3` 9Yh#Gmʅ$+4aMNIP3RJDGaM%[/,xH]Rr3Q$0)bhFQõR tt#yKN -uj8pzJҶ5퐍UV(üsbu^I~Fa +4׶ tڊL+>V[S>yTX,-U;xLMEW)mCs ;DTA%SAeWKi\2EcNji\ +z{S!O\+Jm`'$m0'A'[.lƫ`Me$eȜٱR-ר9}݉o! 7'fSpPkf@Y2ů`:opSE b7n Mi䣅t&*͛%աB-1}fqiQ$EЫ!_x\bޖ-( /,ިCn[/fVyAl.Pj^<`ʘI.Fjf&<Fш_6CZ}8i8{]uPin;yWOqR墨1 @b,kn|VzUF0}le{E|sk^oy<ߞ~s];a=6`}Aݪ:'+S1:*(:,##W*`$m;Ul^Մla~0E>% -ÑYɀimyAlIi,,{Ub-bPB X+ԲFJ݂&_ o=Zztv>dq}^Q)6^5h P>֣v 7&{a۾uf"G0FR '|Cԇ*A= U䯍 +?xm _;\Y%8F䒇 +dhW8FN_>n~[ӐU>iZYjTkt;X&/ +uhIzMK4Tz5Tz^'`%5pD/?Bno'a?T? +H1b +Bڏ>z@iI 4I b"RICbG3DG(q5$/cJG'JJH VGj~bHCn:TCi5~RZhuZR K&Gd] Y!Jg7~ ۧIhQGcmRu#"k(n,Ko<#T թb,yݥrhsedjPg+b>kw먴?+?{In-9O}O{:CاL:T ~K"qQ:(&/RQ KΞju"">2V):q಍Jtg86P'ͧ+T|Dh>KB`O…,%0sA7Ix OݢB\܀{u8%`0]!F*/ +E'{n +@ ̲PK:+0CU6XlqBTcNrk޺ >3^>̈MV0 AݯP&̊"ܩ]9Mf^E@QB_-j4 n[ꐖ_ 7l_f5h,/nx+:N6&p(@ڸk*ir{1Pi +6c+[3T"a4Jh 9Pth㱸͓h|d/̑=y[g4w5>Ɖz5tAE$5r=;ib~ Pǧ.E," +ٶjFq!eªV/cÃ2Օ~V쓅ZL穩|)[dC/s+@BՆ:*AB7"-p/*!5`Ϭ=CfmFVѯq, *.T]k9LaMJ'c}HFSIJфޅ#N^Yv0'J$݈Lߜy:dP-&6Om._;ɽ79עޯ1NQ2V +Q[{ARj~6bǙBCmG2cOcg9*\ܻ2Ngߏt_! &ˡ|e8>6q̉ce } +p³V)0vQ\_B}$Zwze^TWN Lr^5:[WĩV$(;;)W2R Ɇ繺7 фádzZ=믅H3x{\ϽDs9=uW|u1Vuq2jk:Urzi,,UKrsײi;Z #΅{PeڕaҠ9GirsbSչ%2_ *07*1Q */,1*?>{ ^3y{^3K6WfcbJRdALN8gL|x>m;4~B;;Y[1(="k_9 O(O2e ?#oNb]qy|Cj@QVѿ1kT9/^9LYO-KF \oYUh-[Pljojd,:5Z"|'*") sTs"/ky2(*ADݼRm91 xt>ߣH\O +ՋB^[v ,ۅV1 +x l^^pq:^zgX&`BF/q5]/l?s4_&lW?j/74aĻ#c[0PN|pWhWAVWhUp&{NWTK8A놵8鍤{z8Yd0l +ke9XOzJzn6qa5Oؽ>Rrt`Iq}EK5lzy8u7?š +kj![-iϏ"SsW;a'!a=XB\ӮMx$*+ce"W\=tֆ9<,5<*ن{J}I5ve ! O WK &2gOGZ,aGJspB'LѶj $x{3 +YaP _vHh/YZ"' "N֏TXѬ*%!?:OgҤXYV9Z_>mv9[۝wēAcxď- fEp|ˏ"R+9 z7[3ڌ:xRůh͆@܃FZ p}/+%R-kMY0ctRΓՆEW~qPCU~]О}jfx~|趠Uּp;R쪧/B7*=$'UKw^^H뮢"}M~7~2d;feG9#iEȷYj0Skѡ4s%l`_ؒN:|YOE6lY1uer\ķ3R{(%@]Є庐J({sˬoQ`[^gH$. 8(sV@תj߅e8?+b?!MM$"s43)Q Mby.kI&.JߦN3ֆz2 +/ݡEHRksGyEtalP,G'X([|W9=D,r݁ԄZxҁ (gi _XdiNNh)6ľS?"BZ$L_fNlTb g5ׯ5>}3Jzִs Y'M7w׀uV0gdž1*'7)Mc=L٤bMa47s:o;3x!kбrbv dLwyS7fܻ4? +Ml Sx>`iB*|^u{`ܾxxHzhmmbOV,S(-Kll,Jt1JIhIpBHqyi :;:ϟu(8#IJE>F#鞶u҆rF* vm-#2 X#&$UA$}y^mvۇͣrџ\A%ܝޙ,"D[;ƭ3akU"a5B»aW\_F4; +?˜pExyIz8U7:Iz棭b2vQ%/0É:x_WFXhVqPD6bzD@!dw3#= /ПImqo*&i֫lGEJÖjBkvP e\12$K&GE}O5ْYaQFi{$ú%[0K@ Y|I,U0= xkƐ15VNV"Wx~N9"z85u@iG3N]XԐ/yQ+3MMD{@JA=[LGtoմ !Wc{fٌX;Q߾EqR.~ל&@t;6b^yX-XP.r + gu)duGT,62k1Ј(/ Ƹ:k3tޕE8ƀqN%]ƳЮE=%/.UͪB8=;?K"zIZze eh.)z &X;N4ZH k()/3$7DhCSeěK:@p5Dyd63d +׋ ]Tn>WƌKˉtX5 +! ͭa..aKG2^xIE!|Tc5$Я4bK[^ʷͰsʫ K8ǩ`fiX~2im5m5iCGϊR9=|thOe5MWRou:3j7::ڷsm9hOɻ%`sgkv4ךS +2v3kyy)Z5Rc s/5yG;c5ˠ#&.N#5)~<0ꦋnUyCQ#K4"QuP**pPqWrQd*->H1bp(IJ l10 M40h.G0(J8j.8tLg.i :XfM=!:EomP.9eړ448f>Yiw./1v~VYeR>Ux͊Z!fZ*:Ÿ26I3›!;%bq̠޶P`ToRel~n0휜Ve|~"|̱b|Vm9T}^1S1%]=2Ebylv2v@ºz,`b{Lnb9v\`Qة r0j]jYtLS5ީi]bpBjg pÂ;H:p xe93EX3Iڤ;n3ϙt}M78ɻ楓c֝F{nN{`m՝_CJM]`˼˼;s6sQcv"g=BX^vٿzEmbߤx2z#Cۑٲ96y==LjsQqБasPen̹uysmkB@Ocp=Z~pFWRW35v_ֱFS( 5p-|Px=@aq-yW~`fx>!^Sx\=65-d4kwYYsF;'da{j~dOdbtCUV*8᥇~f2!{jhӏpF\c9['=.3^uuI1% ked63\ fr qfeL%jцU߅|i[Cz}RjEtCSXL>FOR/be!#NdWr,T +~nIʟG&B#1}kuJ\UfQRRܻo\cqzv&yx9J1>&QK~*`3r-Jc?Iϊ?O%? 7iv 8,ɪo4MRUG !Jv l^A[]Uc+;j}/u ,8mb0Mi;bT/a*x%wr0k8۰wVtgJ &ڐ֠بAqMR}}3G +NeZvCl`ۃeOK1O%IuVc6wGP +*m"^quS^!)*2_5X4+>wXxQJqy(*6y87C8^\ǾmЯtyYt\^qǾ^'wf*qbxx.}}#De"0>VXzT>5wFo7G8?uG_JDߞIg~6BH7Xvud%$/O{ڤ Dl1h Qfl$@ `YJ/1&Y5zTyѾg |n݄2/W6_+>_0!aB3@$F6fCGrhٮA\h3RVcdIߵv0ТR:)v}xU(Q^bbȈsntHieB:US#O{[hg!D608+ 5?s4^E3(-:acZ,,Afیcۍ`oI[à']2ʻdP̳νaOOgQx"j)He0 fN$VW0Z{4fGffs+;,[Gw Ο 7R 7`{n!}/W0[|VQ9eCb0:mSAޓ&4鉵@]jO)9~#|aEi}BªW :;LMKkI1JD" ;z*(}sWdAV4zv랔\ +t߿dJЩٕ+ T;@itRiZt1jmAJ 1a+}f3@j,@̀g(2c A[LbT#%<ȸ]2=uI:"!+䞓[`zu6m=YX in$` _4 }&;uoY zw՚u.}e߱2֦952d3D.sY @.k-3\n5&lZx)Տ m zTOтn9MoٳE솎ndW-GHm:Nt6LYHXT*WqyI|`> WCse䅂#=|iW7$|Zc>rp $Y +nEUuʳ^rr3LxM gUsO3GBU Tq"z7Hk{bЍГW_koތLztO X.i櫜ؗW7L4 Ke^Wm-̈ks\4R"NkacT àWL|tSgA-EْQIS3=F}uX9^KTdC?ɐ+n%kʊC: +!n ^oJ_XpK/MWHC.=CV11{ 7}?M59k 0ZCxmWˤzw צQX.hoo!Qڠ9#Ό6Q,nv6k2sg58M*:MojCOΰ4!s^ΑLO<F@s c^H[$l8A`3mߩIr#8ZĮ1|JzSĔθrmո,n2RS!J7rfg2[-6@IʫQ6IKPgPV}oܲ'?.FUx;d&:lohTByD 1O|Fyš-Nab*vY~ rZglvZ!#X# 6Y Ӈ'6#-Iuc4$*&3RVjM# ~l{g,7_6s=Uvݐb`$3RS&^\$[iKn؃.l/{YER3uLF쥞fƵx\5_'հOH \ŘT2G_&Դs5D$|tayv%C E) +ܣU=:Duc3l=wv :#'vɀiղ@RP".;Ys0,1kb^fPK.e)Q7}JV4n nD"̔ +J2ީT(g3b(KowZq2ˡVE0?6M& +o۶m۶m۶m۶m۶m>힞8ӧ#뎨XYrC>n:#WдM& oc\2]tٶ7g!rpKsA-6hùnJ`ɴ_4xi8L&3l)m~ߕN\e9jirNީ/(c?(X,~:ePgwDUʇU +#"W,ˌ|U +uAV+MyW%!pƩVcSrӨޟTsZB1mk←7C6 NAuyҵtھW9O#>7sCwO#ҝͧtDOH @x"tg|4ʱ"$Sg4QܡK`%`yî*Ua\1'ÇY`ZEE;KhmN- +GlcepS넹Jۡ+`K%wo' +F[˧J*qC|+_ bЗb=ô$#Aȅ:.(9s^]!xz#](Xt]Wq%Yqww^59mw^5S<A'j|_¶cWq _W}W12>̏쏼id}qݘ?L:waaf+o.ɏwl&okkwW+;%a,}  +Ì z bG-dd2/e_G /ܱ/~[i^g~7e]_ywM^evxG{njOIFըR-͞YPg~Y ++[eziXUxP2\[To*y>)f YrQw+^wt[_VAcR3S&+R|#Xg7މsn8++"°8ɶb [CUKv g8u&cXlMGQ}liO˾;*mDRxPv]*qg$,Ր];QC9Q~ozϠoq{mݨ2Lݪf}Xo;׆8o~dMQ+܂vxܢ`1c9~ohӖS?\-k`pț# }i+4F;۳c|GƷ j(׀f**wG`7 7X;N~[zP;>)8~*=?xpb~1Aj0 T~u0a3\>ʀb7:Mv/Uǰ.wϭNwnwOwO9ΊPRzbHVfg=gq=z)U[Օ2W1D$)_OA_剗%SC/?Bh;/9 9vH i_qJQfI; lA06$ y)}@>ȕ +dR22<$sRi;eNrjYοz]~?PXNi<9(e)/) `Yq[ž3(I S68SMQ1tve" zb4V/x UbȩZӎ[DVOvU2юYfԧLsA)ۮSwe= + )iǡ0a.bӊXϧz%vNI׳u ޢ~`oŊ72Ñ:J-FZSjAb."2AF5y;#>"#e]TLWn@5r_ iFNu<L̓fm=]LoM\}Sr~'&1Fp|+aUGY/;È sds)6:u_d֖9uviҬjFxYۘXn8,*3ƃBk)4 ;b:\w`i3(R?%[t#ZT `ҿ'όʀ4:SJ!R&?ta0TGaUݶUfr٧u!^>ȫXNu+gz^c Fk#$, #  Ծ ++5WE u% Iԯd>7L 6JKDiʙ^nxpD,F|3%.8x =3rb}#gX9AJW Y\rE"႒7C-~.=%6bb@V糔Sk#zdn^F@b +Ba8J2d!Kҽ*ĦiR`%?D.azu4~Y"ab(UJ}HIg͋U}ږNYS>D?u5V\Vp %5$=OUaTBl=&rEz:5^ZcSXݨ(Fy!*0spF$DɅs(60N ++4U5NJZ +/i"me> y*C|ʔ{}-G-a,tE+Dxr&, lcDTL ͊ N,2Xuך`n0rUg4 %TG0Z妺nJ]ʪ7jZJ{}-Jgv9Nqa4}y! <j5fIi>/= n`AfW +!eq# ;T Y܋h߈wQ]V=iQЋޙ;L $7u{mr \iǭe# ґҶmQ'^RՕ7 +=-7CHy#y9@#DO(|g*Sl;8c )`䬂Mqrm H~qlٍ3V~!tI'qQ{Yq쎸3IF1vI<7CpXZp61xlI|KMKx%x7P%=1ѐn$lZ0(ĺ<ˠA.=vXv-z^ cS~@T;!2\-$8DQO]gXrO I teOu'}oƑ2#nɾPAסYْ*tnGm^H~uA)% jU-xrJ`^Ɇ8(t@dk;G͔ͨeRNh0j"AAlvg0&= 2w1ؠ' JA8bhGjȦ(~{fɲKh(![`$e@Զml +WleїelO1\;sàpG~1q=ݒlsw|y|$ϫqv8r3OOld=)-3 EQP ;1āT{UAҲMQ5#Q^tZTf!t ՜.;[ B% GLˮq.,ġc.ąd!&\+>fAj׎$D Ǜ9yq*/OZ@jʄk4 G=;!MO!* IL%c03r<W24fu`=v1G\XhgHvYf]V\.SMf{.tUʁjPi yiKazMg̶uձQ+u gtMG>$Kyy +í՗ΙxsqyBJv&aXԲ5jzvstצ\t1Gu[* EtﭶiɩҴ!kaO +6*9'yP挻ׄ9{S= Yr O{P98 ׫Fi֨`I٧ךq<ˀYú71t}UXsDEIWgn(SA-sZea1J w8.ثh/2U׭/\4,.SƜ]l ,`M` NϜA#trB !o`@=yx>y>pHxЇp`x>yD>ˡqwsPG_ T3U2 =˄+KKIJ.t =5[ŋIʌWt~CrC |Ҙd<1:no䧸s=7L )in] ""4#JFR4Q-#F}0w~>#ehxnj%4FhX*m֨q=fg+$6ӧʐ,d;FUg +6)+xwq%z +kU}Xa55Lsm:PdkCQ2V+<]IdinY5hrXC-dhRkNe˲[M*k{ۊedĺKz 9Ҳb!ϐe[b3ωYTr'S@2Qk"7)b|`)rN%63yH +G G/p6qk}jO3^QA1Ɏb~Jbo5ΔThMɓeۀ&\)!3n*C21ʰye-J^<+nvԀx/?BXl&'@\mՉMKopK6/AA9~Cu@Оl89p*%w` +hMB;<3E+x-ᶭV^ƃ #W+[ax{^R{RyPQu6T|ڬ@U˨Mr-蛪ݠFW^=X)<rݝ.Y+Ⱥ,FZ<,D!TC,@abb- +!gf] eTE'<<@뗒1Zl7~}[pğ ja0"DS M0St}Lx~-/]/6;kx Z~^[mQ1Ҝ]7"qY?>SrLpwP +%sH{Ee_ljvC ZzcSz'sX5(-QŚzq'[ 0mb#Fo9=_N,,r=!2ixG}wa1(wKhN28a ǣG;v{5FvLW?+ON:huףV;k;|t]ujsCEnH.~r@R>=启ӹ1l?=!!w=:d!'s7]ܰ}Zρ$T\ڃ/,?‚x J[ ѠEn/Z5d u i-Ҭ ĉK=1E-4GU G T/Ŏ?[>%3,0,#b/ ݄y飄L1pB嶄t.P)e"E"]6մ)M/}X 6ͤJMÁ,Ju[F`%`miMAJL%͒sƍa(lv36!)ϼJnw?. ወ?f+x[kz!͓O]Ēs\RMLD> !X> $H/C* ]qāLo/ĨJw FesT7ǝ/T?=Y{GWN1XyH?4ũ?HrȍWs[sKXƭ/VP2>Jw6g^@TK:7﵏A4 +wjaIJu_jWԶsέqճ~ivX1޳|Us+{+=#/pfcg$ ,~#>W~AZ?d%e.9g +[kMxɇ:EIV2O~ȗ~S.|my՘b@'H(e҉uT)+mXQ/!ꮪ=5~YCFb7EX4:=GϪ em>I5|;`?k2zǏRƲ]v%֣ +e+Դr#lNP'ǎ\XCK9CQii\}:V(K7Xc  f?⡥nap%+LѶm~ek*yzKEM|֫qžR +,(]3yHt9뼮f/&|90{Ĉ,sDžK)@kYMhOA}f<}1Sy*WTaeӏN7%cПpY,"BRּ<D/:ވBǟ(I:"sc@!"!5>X +rbLv%+5c8nqO BHa(wĠ˶.?q)5a8ui +JS,Gw*^+ NǪj"8s~ +_e>v"4;2B;ϝٹuT)K|ʏMr!jPٖ&N{cy16'ފJJrUnN&0MyCc{֕x3q/(~6~|E~MNGd(9tz v3~ֻtb +GlE=I˜e=G+ڦ<YVЛds"qys4n1ўOl?ጽ{n}QO̟`0RqjUyRuUItZ0:C-ߥJ"+W>C*Kll"mcj\̷]twPu21_'S7Y:$|4c>Ռ1D~n3$͠&fp + iudƥZ NDE +ܶ9r +J/DǤi3θp2" ! ΐ +Cd!*HC!-8` ɠ !!9f p1R t Ƒx iCJC$ fCs$ nC!! +a  Fp5U*<@ +6d̑,FY !BpЎKs]]fB?ޘ=CJMtKUh#GE@ e'fv-B-UٶΣU1x*)jhU֭ٶZU׾n7%Ufg{>,pg9Z ߺe8aߙ}w<*ݞ!?rywzvL ߮J vb:ٲo 89}17 V{Dk͝7X;tdI7zaF5j嚻=HVPSGj GKPV}X2@?]e^)a"4PIEc-rOzm54"M\!51NԎzEUZ!P!uv]6K^rWxkjÏ F*xDVH*զ QIQ(R-ZfPc•V"~TL$,jı= #g8*uL[I֐:֮.?k(=ν5.+%kz "!CHć^"RLX?f.h0t7rWoDr$OyU.DEZ$u!r543^ͧH;(3~gJ~ޚJAf15*ޡ6POOe +oQ+f +UOo1WёN=&zQdK^!6 +EX@6]Rv h}G=lkX'%\]~3 HϴRLM6*~{OՐ3$3WPQjI5Ш#:a9[1*U<j'/,.?;UKXqE%gPK3n{8&3>e&kDž" $n*1-|AQJKv3!ȝ6a%*b4L |<%)ṲE.NMvs+lKu'@8}'(4IX#K&7JVL,h4c[rs)Iq- uL_}XfAR˟dd ť{f)i(/J5Z))4 +EnEVF!/ 4 N ڮs6rr@1VuNj]` 6Iyr,' +\L cM1Br@3 [,!7CX:}qsp1ly|j3Dz#y A/b0G42~KC@^toYHCz(c-JEuI*~[^tñ,k;'i=)moZӥ둞?|SgH^~`zLb\ŠI2m?SCxK+u-J!xauhr eCV.ϐᚬZ\ 0ބ;IZ(RG j6i<3jAHhMNjXT @ߤ@ĠWQA@@ ;0ac7⊪4:yIa2 yE[W(\Yo[R +ɜ܉miҰP( `w gX͚=A, lM 7ai=s +'_knj[iH9CG< ē3*iUa@mpAnV(73(^CuL}`=5<j2Xښ_-cY>+c8as;O"B >q=;wȃ;!w?iH>|(|0q 1*N)U9 ̨ $ij%Ɲ\J;Ɉ2QH1 (RdT +ь9J`%vH)2QhucZCl@l#A~!)qxpNrǛ}G!S.,DC??)!%eO'٫,*O)!9HOƎuP/.HKA:З jFU52^h S ڞPh/apN@_@Hl杻HrX =,xxv O|>_s 6 7זHCl}buQ6LA +nHv! h0l^ꯪ.nIf2=9 s'!Qo̍ } +sjd2Zxp) r(N԰zP7ʴx֋PBE +7j0ӆ•ֻРYP5W|RF YNw'+0='usǓ}f4GOZ\eqUd;̠餖duu9;߃m;<d?`/l7k7yT=UP8>E_pN3 @vx9`{2vV1:1+|:Zz?e8ؘ8/Sutt[*%CCRMHU>ML6ˬ6Y6[%Rl6-LLfBn]PJ( )4f ((:\i&idyy޷t)J j/\;?5cѷa/5Sn7}+qtX3'wGX<Tx*zWNdo:>ufOzo `Ҙz,=x~G,ۏT~*X5c? ({%Gn-`h2|'T{eG:qoo5vl=FU}$Fp +0Uq{Vcʠ+#U|TR'U|f};7*ouuF+=Rh[,>}wF+0B* +uOG5bcUeIP |}b čEwF5#?ѢaF|CTד#t?Z  w%↘D.{: {3 vv^Ł%%Y:`@*Q67ɽ8_ Pa@ MvEtf2/"K%S-{7'вYgn=UU9]_7p2+ry]$( pƸfh?a =Ê(7r %Vp#ǽﮠ=p;;'ϐ%^_esY:^AEyQ!;Tl{:Su|(DDY  +NȳNH,-fNy?;Y60ȁֲ$y"u"wjk"Cyl7z/פ\u1j x̟]MOW%)#j1 `E|Y +RS0XX3Œ&S/ҴyؗDX[ ɏ6gmg˽S$m <=MeFg6!{G9s3O,|V SpQr嘴OR#NI7<8|9+TN-tO8d%Ȓ[G_ }Sz;;׉.KnKZHr8۔%Sߵm,:ޢ:k@ݲκ6\F-4ܲ#ݙn]|.ݟϛb:e齺@y{fSz~k!-I$$2\?bZY|)iǼw?H|f#? 8/`lgqӦ@)km``fJ)ӖVlBtPU'Qx7lG+6ϭMs2 "/9r74ܼ`~> Tr?o^(5{xPΣǒxp0v3S-|%%sbT^M4>:̧L/)0si%ٖ%)o "cvo޸g8,QdQ.QS.(\#*Uc:T8RQ&]#.6 +;LI$9g$k2n;8.c-EœuHNxG$8;ɖ^^{ QY)IY^ڶxXYWU&C5;jˊnY%ON*Kޠuۣʭ\J)d|ۉGtE<,x"LL7`L>`OuEtz% K+jM3NP Q'=48Y94ziCK~ c m DfRݧwɔAe٧TkG{Z< L> q]?&aeXiC1KD粹ɀ]afXS8%!'!mMJ\4~F$3_+g-lTkdhi7*'!)$x˟H,qb;71ŸUX/!Ғ0Q9$Q(Oe-obߪNZ|DeN 6ffWwO?92Es.i/HmvuD  {{ ج W+Jq +ceR/*\Zl4k4],0rD8Qx`jвTY>F8i:ۄv14_c2Zts$уZ2yst =V%\UX 쁏:dEsxU SBֲan}~'̆>Tn@X|`s +C}y݌߲lUDb2@~]ֿwL(G&z= E+F JxoEv4n6!%ISniܰuM:b(IAG I*ZJ^2a i +OBG=&ė,$`n!9ɵZ !9f7&ƁG4IdSNɜυg9t'U=I3_Iv u]>lExځ47fm& :"Mq!Kq?_<ĴRU9V3M{l?gZDי +,:+IMBͦ7ggt Ɯ)f!I/(>‘f*]P}/(( êXi}-ٲ'o<6 Z!i%D\ +S'oxd[|S# ;JUt=(eU+o[+":$w86s śs G,$u^8Aw\*v2ard5k[܀;xExC8:X*[J[a]+WM>鄈*l[(KAWC4*,^~KYbN)C@5A_{ +S6ěX = +#*@'#( +PYS^C,7o%#Wp)7S' 3nBR7𓈏/Z) xUsr,rx?BCYn] G%8R ڪ(g!" REp +^7uT*`]]δ k}Vz`S5"~}(к,Sז$<5 E@?ܓ6_)؊&zWbxdx#SSϐ+Wg7eI"Z&rJj欣b3gG$]?f\ +#6t̙lP +K.4vI{_AqZ>.3FJfc~ V󇮨)LG>֠ rgr^P4)C"^]je[ɲueǽ\jhb^]j&a/5UL!ic^Cȍ)hjK7=ݙ@8iy, zQQP5sVD VGfPJh +ɯ<5fU\j +it9zif&;c+nI!戃+qnLa&^\C@CO \C FW~>?=s 9uC ` tKjñkk ;i[yxTDKD]Ns(ێeRU,*˃5N ئ2avSdgGkf̦VKlItf#6Ȋlg#6-3KDGXXx!]PԖLvRaѶ ܏Fx҄-z{ Hx3zRb&1d-IRPWRBhB7G~(ғ)^=I͜/2,z|QϿue&{(u f"I=H7y0m~t֓tjqSmd>Z??9|ʁQ;ƫ\:n"z5Q:juNMqˌ9"ZESTBWKS_И +D@aWFƯljnkj"k`Q((?u.*ijiqgfh [Zcww17sZ(i/H/* +| h%B/;ڿ +.w;LA-o;so1`#U e C/PR !fq\aYS<'u}ǝaYaaygvs (½nK: ?+s4+1J`M0ԣzYm(ޘ 8AQC\ǨNQ<i-;5MGnYGԲCz:'H)?qa?T#nW~"a@{u` \JSq)RѩA&2 9,ŤAj[ Cw}Xq8s Aa'лQf6<]b 2Ζp"YTvKWG- }rBR /Njl`/Fd9hϪdZ+^`0o5Wp?m^S4OɴV#Ar&wHW*nro7-!Xg@B}! dҥ#A&T'H.Kɫ0TH7!IJzmP]4Pa[]{∯SQ1(ʓ^Mn䊡@C,*DoI9Ohd"IjV*bRCSu+~5G5_4CX/1c-s[H%;8":O) +qϡS$VʓVmϚ q;" +Ҵ.ST5af&@ BXB5*jH"!i y {2(h%n?8qP 9={w~x֮ N Lœa5-2ꮲP-41?xBGI@3C8JLWu1Wy\;@7Gg_"$mh<'eZN.YZT_ +} ;bVd"sNxBfgMcaERypM mDv:^=- +طS&EwaZW,pR.Jb\<sp. v.3R~ 05GP rrx"b>qo nI-.#խؠ: +b&0]lbAOP檡;xxcPw a0 }gƸvNIC!&;X=rTzXr8#*r0 +HUqVɨO~ d~8D jnh*F= 5٥\%A&x$Zؘ=AA+#x9֎% ,Q[Ȅ#X~Ƃ%4q=:kQ+T>E*Q,Š!:EmQ=,^ /HZXR3fe2ET˘۠ÉN8jpv_ ,!-n>\d͢ܛ nOtA0ʍ8l-jɗ9]5{a|]2 wM½& : ,; yx=]=R=.M?..pO@?'߫u'{a9BKc…Mv u"N=?!x7|ZaX$-5G4@&0m"l(dƑ `QiE`tgtwD:PtuDj&^Ѩ8ƆY=%BՐg1^s2OYt[Ig&;TӒmB CA$ + +M }Pi(2~P`666Cjbyw0J3^bh ainH:edDҘ5A昐Ćp昁5|s"]7/Z|>U򼜰uIS#~ZR|OD>+.VU<Ȅ{i'feKCrȽm&|(WxY="Nǽ Ά_juMg~efqwzo*O6B4jp ;sv׸0 +j/;ۚF=qJﮜTYNvwV]}Xl] +ԮԮ>TqVwЍ-*X3~@׭\jԈ +O 0Ev*=?W*ek6 K#Y?wx #_Lo @1G bSs+˂̞N?τxɒ=s}ӳOiXQfh&--3CEUfe[b馁Jl$qOԇPre0䔒o~f>wd bNR1:}3JƔȖSÂrj^?=AjVLvTEo+AEHK{+xqG&P׃v:RY]7}xw虚4Ї6`Vz"lg#&Jzڻ-[M5_z*mXL)X+ۉS1҂uS + B Iک6 |Ðe(2nFFJӯs6ĨǑ:v"V( \|'kBwtD1^@Okr$؋W:U8m#;]uyjkԹnY7Xm%2*i4GA>C-2@ԯ %kx#<&;dD=+} :3Vހ_<~nw[3 ;8mewEԏb ;"7Ny>Lg9)CdPMxWZ>$/KH_UxA$9~Tn(wz!KZkb#M# jzQ1u{R5X3AL^sNUW״1&6"I#L\6X,ےpyɄ/[$ْ\Cg$%i>f߂$ԧݲ5jPvG|iN{=p,*=ՐO~C'2 RwK- +Z?h +tpG\,Mmav!6Krix@/"ϕ (8Rܞy,Wk |w];B3FRhAv'a.1s_Pxa'u*siӗsN$f3x~Ak=mm Q_猪dXno~47XA+ŮNyal*Z] +44~V dd`\zR^R)&P]_D۴4Aw7ސt#,ŒY4Bgv-~$ ܫ.f$1c:/][ɿf˧E)/D2mW_I%4 }ɊB&`VvRADK*!)$KFl%I?@t0 4Ȯ(?~˖ih +t{kw1CMt4ThUMt n]0-eB$V,b1z ,1}G}@EMg;g9_}G@/f #hQTCXSDmv*\~*hruk5mN7]L\8"xʵ\hP튎]/*z'Aʩibg-0ca(m4_(jh;a2zNZncUAmnӨ+iRzVXjo;_ft~%iz@ B-Z,"L@{+{}EoX|׭[`ovi7>zJi@yUVgs6Q"j!k@ ]%H!kDQƐ6"uܜKRff4K2s =DANrsvwLR1H- \%DׄS/{b M +2JQ=Vdb|Gu`)s]nH={`3+oYy)@Uߔ+?O\G^>tǠ$3D3+K ) \[(oD3Y !{K,Q7$WHTH(>BZ!WL>g](k"o`"alŒ' uu6eH o/{Uӑ')\=|0W604/GGΔrT@ZmVGpHCz9;pN1;r<.Y`Ep1SVbd1FadL 0Fܱ8)NC } +U~\dDuYEy+h4ѬB uu+FsXhlCLcefȚiPj}E[Uu2]΃4ѝ"1+^?\Է7I¥S$/R1r'yݢK4Q?jy=ڋr@T[K`+˸sZ)vV dzo\a۱ Bs2dΐ%XiY9͕r{/˜yJpfUe!-2]FUfN[3FX h;;{=P`ee@+[:vΣ2:uI<mw4J,yMKXΓKv GLB]i"9R,B?#ϋ[+Uw؛l[? [q.У[cTP ߯bG< <-mIޗ[!kDHq+5߲!2LOOWr[ih_=*VRI}"4Y?nȷc"fO`mzZmZm(C5 '#F6ܖhVl@HBK РU.6 qt V>@|w:tH_{t,w-] ! KU pvr'h8-7$‹ +Ub"hl$0؀o$P޵Mqir7yns0"z`p0XSI?b>#CCq6dQ8B>[ͫ<+ܨ/BL +WJR#<>Ѐ$OЪ% ^OQB"Y9f0'G*lY+a'tLZѴmآ08_n-G0d/k h =( bG=zLY@֜ڹ"#fX3v\w}nj'l7@;wec~AuJTklOܴkY(DB7u[_KY*(st22gә}> @ߒ$GXu@Aٓ" + +* +RDpL+4j#v1BM\t3z1ij4\k\%|-b:xRmpW``zCIcGdj۴,W$HvlaR|K}wo(+[;d+Z8L,;kכ4ٿDOSO3q7-u6idIHY<4TsĴTwHGikgP:frg]Ǚu fmBMpQ 3>Î?[`?`\lK ̧b|X•iy.u 83:\>wp]FQ.2rhrK,I0'-.!n ϰ aqF5bC 5ͶK!L#X?}.!o%ҥ>&9^*d\C,S4r;'.UI!?bRA~2혼^r^ 36Ȩ\Ci4 Զi\e/:Rw;%>qSoFR:٫"ʽ/Epzlbn+.:xq''{+jO⫧F"^}_z6z9<$}RMr寥}`ꛗk韟q@r +mUCWubC5Z_T-5G?[J_m5=ۯGZ>A>|Y{uK?UrLL;[S*V*z_ulcޯۧ^ۣ 1M rƤ1P$^:OWc|l .Vdk̵Ul\H&Ʉ^w=\{l^͸d&U/rѲLxh6gd>vHH{ڜK& U71GĠps7 amkyEl^flwf⚃.  =z8w2x8e+֋:xZ)jx r0lkFc )Lt*"nljn&v4(C-DvRd5U]^B$S,\!0-(e.jrC]6W69E>J#c[Vi+ghGA+ڗs0u @#j@˩5W"Z;mhq#OL[aU>7 +6% Hwf{0f4KczӼ`Δ=%)ZlK/5[+6DDl '+ru +{ { <DncxC"';;r٬]6M)ܞC$KZ~P)WV$:Tb t-p]iomkr~vT*2йT-hZu-tk'uWjĶspɅAC[9} 0p/:D&,xՔ_dljn#13g $i8jlI5+V6u#]t:KdiU}O6HT ^7Y/Y,lORmp +Y ,;!:0A:I^yuQEM5Zwl}iqw9}HxN#w].YLSwd>%|Ɠ]]Um.յͰzY%VqEbbl5y^n0Q|H'k%ޥuҡ>ju4ӞU,CdnVouiaWت๰A`%BԂʿNE!ê6 ß`掑X::;04Jw6U7h*8b P7尛!!!IVT!iKXdKk(c.)3 +fUVoq[JIiÛGјs9չ&?{E e *ΟM#Fn\*=*{=E֙mS.W<% P)E'pذ)eͧ<~ScU_kP]Ek+%9J+M7kUf \:JY*l qF@pW3S-8,jGȊpBd͛RV7K(SUsOq br`.)7 >Jq:/]C29s@@vkbb)eKN{4Ls"{b00rldM-#ܶ/2.7]-rc$"mCITʁ YUS0% p/~J0S6rx4#߻GA6!xTQM^1.:njHʧHV+f 9YUxQ r|VSd% B8:[+e8L$\^h{[0m5_.YD KdQ4MϑFkʩkYu"+yŴN52yQoNX `dtj9i YY`Mj.}Q"&-ڗHZ{l*trc< 29o +dK΃ r9t#ve9$WA@"u4j{YH+ͅhʼn, * mE zj #Q-\xQXۨ9ϲI/s`,$-;hxL[_]$tJ)xAٲQx;w/dSR'ۆd4?͠6q;gۡ^GVUqk[\k]m.-npW(_"֫w%USȻG⢍Jï^ 5FF5#G>^#tUVE]h;FS6GB/#d:GQ-:;R?Hu +* +}f<)b<:ON{K(rp|w>np|^h0 rf6^$'ur +O[V5֦ajQ -fP>:sLgĴ`."ċt":*P`>g>7)M1Z/&8>gp`_'BiS!GadDYPn[!F{;x<%کdѕhGD$ +Iܝ'w?vO7{s] Y-V_xs|Ľ_ N+ +6%(')/%|k +0G/Qۑpެ3Y85y։dOn-AcjyO/{j V9W)/1MkzM kOܾ a:iў*F|)1lqҴNZ}˂Ծ:kEb2A,L)l?a90Q@93-tڮ2%Lˢ20DV S:0z+H:{=eVգIMqbDfK̄rI} +jNvk$S\.T" ӥ_Η~D8+"lAB+'ܒ8%!\B+O|I42O|%R~Ѿ?TG4~ ٫7< +{|3gP&!g3_G 3#גּ%/4xބ1\3{s:g4`+@\1лi?Xv'ܵkR vAفS7" >olc2$2CcسNl1K$v8E }'}/Egۓ(*C!4D-at})4k_'7Qsɘib&nJGԛ2!SR ͎(Pp na40(c,!(my;?. U yPyca˴K—/H)}6,RbFT/lT?hseۓhu.Lq%a@̩Bm'rAi;*.fA{XND]+ԺymJD'(L( @QVS* 22&ӷEc?frR_MjTF9<=Y =v 9ݗ,M%wN΄-c7'wжӘKԿjگ~Ku8Kn'[o\( 7Jc7zA+M4:ZQOu%Kaz`^-ҙ>'V +gPg謝yaFR !V< Ž;Q6U$W _ɓ!WwH{XD9\B]]`!_K;M+ByT? @_07l-C1ԙr,N??' +9ce/ݙx#({y˙?+?ECdF=++e'fyQuMm.C +`W"8\fѽHkhT.kȨ\L6x>8$;_^!lM&dD\& )鄎LMj^aĻX#W_dСVd UD6DVn=SNH"9Q.fzPD}\Tfa*\.!MtRI  +0W&e-Sֈ~q)a0W(WȘR݂de?|e::xa.rL;ԭ*2"h X+W a`&>f__<߅/3AnD\m5 $P(R#&ژeIjh)o%)0lXl;73ܪ);Y}El?{GC<Jzބ-~2BţP{x4KdE uUh-:5|*'٣u(<)N?ҍPNqł 5&YT&XTϊ5mlEzf d.S#.b_$zDc4"On#t01)`PpGx1a/v#0?0?u> 3@ssY&]*sbel/KbuCI>z +1!X?W)C)[\ZP kFUOѪTcϖtIe%Sa``1ʷ#ĆegND!S%xo.} Z( u3\S` [8 iTI_|Oks|7εJ +6M:Qh$;(&نVil6ƞvژ45x +52VVyߪVXaFvO~eR~; lxRmF "XWz=b>Fq@j]rZ7R +?O놺7[nX5ɳUvp;iLCdjz/R5ݗ@fPU'SA{ۂP!c7ݗe]T'/ذ@%Aj`Yj Ra~/WK'%t:HS3BLWB"В]$P Jy:] 2[ +$R5c۟ݦX +ў_aiT)Q +hno~<!V^] 7V|Z AL L{LKR\r +R- c㑷GBMƟoF>cbކ(C/w(0{J&RZ4x)Mϣ@l;xF97BR  +{(vghksI'8Տ.Û IJ;{~/b{ .^* V eRF%W 9z>\R຤I 2E\.a\! ( LH +i\yhQRZ +řBw4jLOʲYcK4GR#C?FK6ۂm۶m۶m۶m۶m˶ggv#kƌ1⊸;xp!H]2;F=v|7Lnd~h(Hld7W])̡C>g&\#ϋ|X $ mW!)צ h N9`wHQǯEi1lR=tQ? iP#j)(9@uHk٦~:?;iI&Mt&C:r/צyNzO঱CK9[';:<8}VCgz;H{ OR%eQ58p1~qvR'eEEg*hFň CCCèi:0:;{t(u/{_4lfMK?5v|-!ء,$yvH%pT&͔z~›aK|8E2⧃L%}AΉy |H[9~.JaN̑Sy +.Ղh\!k=/抃<#>e!ɭO[4uTዋ}b~:lv{;SqБc^]$,#xdu]&|rԡ#B=m2:0>'TuBKUٻLIGmU > w*׽+`|N+Ծ$k +~ᕬӽeUG}]rQx/k%@} ^ V}]1XJOt,]|Ex؁_Ļ;KNյm1@*] ђ>3|ſPȟTڻ}|Xl `/Folq>ୌCigL';F~^*z|_^*"KjS|qQG[_ I~rȉ hPu$Pw{ż +p#E6ت Ҍ/CN:?,zXo_ 䞹kGLE9+dZM5Lm9y2'cYF]Z==JS m `@ȜCIuN.˹*:P(r!M8.c9"w^<$ lW^➥; >%? > <H:;CS?-c M[0| +TaxgvAYox xŢH/9âx"ŪxjHcYc652h:Ϟ0ϑiksDavByF_.!e75xb6qyb@B\\JLNV˿7*hFB\HZdBi:ܬer2eeM|le*-LW-Jk.` aK^?IT."c]yHi : zNg$`^=(bJB}"B$nOk;lb*b=,VGV 22Ȯ"UG(nLzQ~q2[Ps~D "`AE"eڦ40B+>/4\1B.0Lv\5okb,8VlmCo*ːmt琝5 b:zc4BDYa8]Lfԛ"!|9!-ux)C}AL>~?\v#>auzoGs";LP#6:?%}yH>+A''Gz _K9,D vGzWoO(m_OcD#4F*!FitP5b +NZl%txv˰;{ jxcC+%!:AǦz![A{]|`gP`zr)CF6ij3/A 3jG,%u7 +했,MpY\YɅѸKP%xKP\&U/1Mvx=f;.3G R{c.uE#ma<⡤HR;;u)T噣Nsܽ| +x˝#hR7(jVݢdEޕ`91Z˦0fo5,?foː3E .c{WZm+ЙÏLc$c{F֔{/ǩ:9)܂U(eox84,&r>ZU/+D(f̭]T+k[>G[']e`~тg*a^3 !3M2ל$JdYC2$rrK2$N9L e(MO2&i4U'yu!"0cC̄@[!GR( Y3u)pʻeӞ̹X~cF=hWi*F'9bO27YN%:6&FXWKQ朦Od.?f3k?.60X,ʡ2!kxwkjN7k./9s RAa:r'8nP֩V+&ŠO)ĮTBqwoe#>G}'|)ڤUڅl6{K,S F+P*PQtv&2/q*NKR2-)@ȗt([.x7Q6Zȕn.(^M3i1+e!eA ʦ Iԑ=\WLhyuIJld[:svvs9ҫlXjcuQny, 5w^IU Ԑʉ~E[sU Ma-0דv.m]s*0(BxM:Wq˂h$xPf^y4W7v94@$I}WQ`k^8ĹvONGc!\Tqѷh*2de5D;% hS w\tLcQǸi8vUL֐ډ.gi:tvI%\S{9lI%,iZFGQtOU +PՕhSvókN{xD6i8GBfH%4xurqHtEhnt9 XTHxl$ %-|/E8W. ~UE.}mwoZ\rE]½bt醝a;-m"~0 5ՄlMgcn,Y w^sQsT%ySr58j&ɚ٤yan ݥ{yVt5ks֟h\x>SV]ALPx LD* +=ca%{T]i\k"SU^"D.c֑ccA{qyj6:ir4Tyy["1nhlf=‰C~ޅ(vB!a2\Em3) w8AP`4~fSt;h5dϛ8UYQ3j&@5G$!>3"!G6MƓG\2sTmDZցnj'}4;Ggbs/ƣ-5׵1"^D[?bq/yKy ^9@h|5{7?n0:Zb(f(}!%<"k4mTZal (/ ߍcfV<- +p\IiDQ#FeB0O6ӇbT<|>]0hLDF3i,4zmU +`hKCzq' p Vw;C1"SNz%t !&+7{3ؤ{C[z} r/|Ø:#Q!FzqA|-Eh:+*]dUZT;C@pjvrFj;o']|<ݚ;85EuTW= S78np.?WBg$4%gG [3e$EEZK ڪdxfD6L-D-o^Qs z>q>jCp "0A0aù!戰Kv (8Ɏ_ާof{4p{b(q +3fsfTꛐ e0O)Aф)@I %]A4D pPgUsB8o5l5ya'uȏNDDE$Tl+XQC( +4#? =lzeo_n|dOt1Ѽ[6 +9'(ӠhwҰxfJV~~7!j٪وӄsԨu"@-uTSxQ +KJu.$VhSzaҥHUTyސA %Oi6ݩFG\rYˬz%&XA鬪AHuBBFFVEr5T=nbͺrJj9stYnʮ7EmP'B>'ᥒ:%3JcArAIh.giBPYbZR'6bO BM204}Ye9A7u9Nz\H(b2[г;n@ ,$u7gYyU}CЪE=b1 D#р;`};/_x@}-It;BaE[/㰗]/ԑ; V^`;oX7қ-M{ + SMMk#qJdL$`nAn7 7̷Ḋ3ff!aSl_U}0R"`:hIU+XVuߐq'wG-B;}x//vDs- ʣBW~y6o^ y0{lIm>'|Ö|̬ $}1w)[Nse]XjqmPE%kYa콻rm(S_Oc2Rf_xjj]zro(Г)'cJXར*VE^_Tvr0Z& *'}ԡ1 (.%GZ?j].~̨e9m*y s{|Vh'ڐBI]/zCxc$ʮ +ܺ%PS'*w=?4cNCy\OsU&"+ma BXDV|BnLz4w@I A7A")gΎ;`"jPLIʩ_s)ھEpfO3j`%v $7a{,)Jƙ>n#0#7lv Wrܩ/(r-V_$7c7uy#O_MQGIg)VK-a{Q3r| dq[a9"`<%RbE{Nb*TE]VS&<.ݘ3R2AEʢ +*,3iTPR/X_c뚾!M~4:>l;|X{w7uFZ໽xH:$|\ ҪլZY5HN͂Abq>qq)&iXH_s§s\{a.:Fe04YHl#z-Cࣱ@3ِcNxu +NXݎbuY[}j\ʌEv\`ʭP*7WeL'9kRS +YMTh"L{Y5Y+>=r*ۼֽ`\ҏH#_SzXKx,3#⠍pnf8GE:{NP> ^;qSF{R ķ CK17a+]aKn 2~Tso2^keڰZUS/A8Aښܫ2r務1S~7>aøiKu;^3:!<YHM³t$yMA{>gϋaLjG}MT n$ +9|`O{T)z)ohWT_V =&cG/Ӱv013ӓ!C[]'$,PA75l;Ӳ).NL|mD&؏?q#GNPͺ A(/[O%Kz%oFHʔ4ؼ-|8N,H,5|1%M"Wx%ZlfGI%M]2*d I!%_eu%lՔ1n(~p=Ot QH4#aPL8TEFI(Rj#?1e'^?"G%eߙsg%iڤL5vS)e&KU\nGǨ2|;ةҏ9FrDWIDxr6Ee&Nq}-Ua^u%u]0"Շy,} +7{WVuy?SaT]WZ0dMF[#ٓ +>ךWy]Ü7 +. t N~_‹N3hyx,?4TKwH D+J!қ<*RvGBνHV{"EO")>ĩ~6asFL뵽uY.}i[dO Ө0XZKApgip +X5ua_mRc,q L'}Uhgp(g8`g<'''`Gk3E1v>kZ18Z`W"*D2׆8ѥ^6W)]M1X"v]i'Oީ0Y~,qƯ$= +''ls4b4rj>|/]s;ޣtKV1tg&R-ӏgT:]ذٻ͔q8]S wO*,ە 0 DGb;.º[97S1jOR;y%7o-NxT_׀4!:"2>;؀,ə1@~eS\$J"rkUCmkukwյ wb8)m$;Nyq|"6:*@ *<݌O]0iO+ $fk}ѾB:@m +c+ Kކdzwj# ImJρ{%7fnOn/P o$o)-qXĈMiJ 'ǕqgH@GKD*- =֚qN |>VPӁ<Ⱦ2f(Ԟ) _ӛn/G/ĞQҗ<} +o)ؼ,B1?G =? υwQ`"b4!f?*., w-q"x>CH)SR#qE9Ow51,zTitfIN$>z6TE"0j +q+IIf<+y<,wPi5f4\vD55oLd0]shٌHQF0s*t 9Z#$ wcS{5%¶3vQc> cϴGυ]FFȇatH @; +Ьɭz6 +:_t8 q 1􎂈{W^Kv6%ղw##ǎ5Ų55ȜN鴽Skޑ6="FIu.W%"PVFS46ݣ崛+s 8h`/8My_"1:&l>Je5\) `SrbPRv!84$$fgM{|u d/Ӭ'rn,ѦYX1$y@B!qÔa0WѪNu-JV_HHv\PR0)8$' ΫyWЎ,.ИH*ii;~ybMv`;7`iIpk-U=1qMuRR$^Z4Y~贲;nf*Yy,-tlΈZ_#IEj=Xzb=B"iHgGcn6SG8)ЫaUȴ* 'I4 +ƙ+ +Z$21}.ę; #р ^ ʄ!6&C$ꒀ2)&FTV!Z̙(vUŋ@˒N\l5M䑝JfzD7zϮ[32 Q~ۨ(~=д[cKWc{/ +.u|M-0]I|Qws,nv_+gpCx4 5)ƝrlIA@,}(=лx@nN̄G^bbfG3;x2 U]HOFD%sSH{RL)X-=h-讎Ȟ03䵌|O5ke%&>q,Ԃg8gO,A}TZ€CH6C4 ݥC;_=xTkz;VWy#R;UI{$ycC~͏*2M jR|{*)̂Ns=Bpi &#$G/1q1/9wAI+eY +20c1z^kRJquDr9x3ϤUzeDa9'tq'Hhr/$xV4-71xaB^%W cy#v{M[kTh+S4y"?ϹXw|C6܃6:BgRpm̩g;ZMFja7e9·~`+e~FʚDoF _)Scy+#y|ťTEm``Ġc`]B)-A`wHw4..W%/Gℒtt_w܉&tS;p/:;1ߣ=ҺLwR:F!j;w-#<}<=Т^A>w$ lr'<="w;WP]@V`R|@m6"}[Wu6s[6 YŅR`pFKEi1$קQa(dj8;`B}ښR.θy.=#cZĪD'@KM3]B5Ң}v ٰQfCl%(x%͉`VfCM%9MD B&l+"nVcgz+,N$^w8ԈQ$ƪPUOLT\MBpuZhs} 4&=_B:܂DSpn +ĥjh!G ^\;6}_aɳMIqkz .UC#3m`d$"0*ڱ!`NٲRѮ VW܈{8Q5Z.Ę}uB +vf1=$?6H%gebDNubRK I5ЍG$rs +(MV=6:ɭJY}>qW9Ȏz۷!أ⋳>1{%ߣ\ֶA%?-'P ٰDoلJl1ݰ+)y=Fr> 41e \;@Τpb4¶R",쫘nDl aI/aKl̜H=Yχ@$AWxW%㳎4r1.y9Äk2&(H/UZA,jbJ{l!ۄJ7AFԛ@[Ci;{WtA#ʷ^HKDSG9=]$&HZ3B}C0~ly|$H^AvB<)!GP +LQzDgZU'; +AlD`uK1Y)W'7˞l&7n1ol$P9C*$jeH0AH =e+%H&&CS?K] d\Ȑ4=}gk 2LĬB{) wՑc*{M{e-͵&D"GJO^>`V,%qBOjYY~ cEK9 /(<(GW A0"q3ޜ|&Kdl2a;\,*m +C& EΙZ\zIS8t$4TJB+l)iަiZHǤFt˴YTX*YBX$b8kz8}4"(G/ 0>5"| +8̪B60 C&O=v[>,CغB?sN`ByA{+umz޹%0QXi+c+p4Ƚ<Jw$ʁ0AuG\чFXʭFx]Z$uǦh']Ysj-%Ƚ&TȽ6s_wZNڤy[`b/G15 /Z>?p'夣V\{%8߫ 8AFM%8O1R\eZEPo&RfJoTݡ6˩0` +e otڱFM@O?n:{u9Т + bU6=+`v0K/ Y dk)n:#?uph\p3%8hf6ra8z,ߜ ȣiZ٬vzyd9Hyq=eݢ3 +h[ffGf =&%C&81D=t6xJcMA7E0[>U펖 EoZbԽ.mQ . =q[đqD/Y[ +/M$_2Mlu&."R`TdoxD>T8-7uÿM}v"Okq9_#53sSZ*OMhbFAKY@^o7}a{9I}hЅU;6\>+6m´ACNIHǟ%N.!n0Ƶp#z-i[&]qVaƭ{Ԫґu&=Us^&vs.}0`sbeF +۩ , 1,fr ,2./QqcreqyAE?M A0]ŔNCmC^[Yf)m[ 0Z #zF-j|&xdQЏ rԠNt2`-տ]ԕ@$E^W %T;M +OBNd>4掝[,wxz2;pxLRW+T +}y~W55é-]c_uծ>GQLNuoL{y=@ &K}G߈A)G (xߨ߰=ڱLi(C8XGzd#uݡKPaK (8`&+l +Q-(*0*HPbJq' VBSSKA<)w!|jǼ)N !"O+Gx!rr$*͘mvA yB!nK` <9f-R¸W; +z[Ve+R._Ud/wNb%Hnthf!/f88*ASʮs]Е)0vsQ1#9o-3n0a[0~_y}MtP4F@g |-sqǛ<Ƈ/*-ulF /Zbb0Sqp<,R `g`az'3oՊoo f髮Ì1:pw!XXXXX1x;s -ͦZ˘ڿ>cW/b0]l%LjӜcVccX2 (Ǘ*\<$AQ2weΕʖ4Utc5*-;_)l/d5ʙoC B\ˑ =,E2@yG+ܨ+s?}/l U{꼾|N?n΀i_CIqZr vl_Ǚdžb\Ad+|~,Ty|My,_T8lVj_t{֞[a5$?ϣ&u2aA'89|0JrX`\8 HCD K!El?&Wr:eu.V$0 F &T-j,^P~ZeVŃ _Ƀ}/bI &Y(4*}*y~;%v`3f'ФH3@{K;] +km|}%":$ڭ.GJSr0ek6ɯoH}8Jd]}qW-M! fv-^cV:DFj-cfa_B\/y'Ej(vV*A,A5%ѽI +@Xյ|7sI$ HHaq4mCϫ)4bݹ8襘DeϵJAnXNdȵn۬wR$G6+{] ka eRQ DgkG gIC@1 +J2^Hl{9"iWm'p#/@śA(*Z̨26]" + >.G/&d8䷔IrW"'ʺcʦ|]4A]Bt?OS:ǽ$`SUT6PL_ -VG?|.ޝ1zf͡ؿ%!N}b7dSustrf0k%IZyy%|g ]wPg_z5:]ZګsZ}7)cETqFvE1(̜ 5 "1VDҗӕ5.hE3H1cNnD? kU=9_!HH:eIL.JcL Swy#{QK2& 񅢔bD(᛽NUޔ}~pn3{OqEKR`g':Hׁ@'0hȻv1ɰ YL;M2BQV~:'(/9T:'͜\-26۹d#|%3>vD><Ņ`%XXZ׮9(/A:D2P}}O?\:DCx~c&o-HOg4RnZ(e5ZD:y΅1棅l;y\뇫VD$.[JH:N5r֖A]|tܔqq#!)dIpgn0S†(‰ 5qŻh$rzZpwT/Ŧͽz:*~6 ܔt`/?׻7|Đ75 Af%LCncS!8$X T^F'0'Gy3tKo佱xCOuFC3'b;sv/ vÎgN#+0ngfSCv^!YLkEӼ%%rA#7}N?'M9ngPw/|sZDz"FX?z ;{E#=0*9@,BS((EoוDK˵ؗ:zysrٶiv:}؟ \2,Tyaz.}PdѴF5Jp"#exÔR *r>t琌5*vQcnW]wjV㨡0h?C &kNٙVcMNh0dfnѡ߀җOfѼ9eյV ;޺֕`VCtKP-_H( *kTv dZ>#;2EĢB,lfni]ԟ +LKʴ lsږaII!l`NNCI4fJHZ%hߩ +E` (26JnRx1; g*2ߖ + "†ǠyNy30!ss\PyɒGdc ſh)peh)̙dMOvx1ԅagdߎ>h``5+ʨOKrc!V T0NCVA*EHOp1i2іzR`yA]![0vGn0Rk17g{ɬG;{~ t|CŽ(l`2 D2dEq^T7#>Ɛ ƨCaP$d͹~jdTY:??[Zǎ7/ӭqI"8xIy`Y~#B RHryTІVb|ruTj M5ȗMcOI_ &S﹌6ˡ8 ~>B7v ,8oΈؤb{Jv +B[ÈZڅΨ$x|O-洳짃Pg~. ſ$`K9! ;"pp0f/|th1GYO'pfrEY3iSx8hhyߤUJWƲ)IڲLy(YҲCGƩEM4 c$'g.ic'NsK9ILddIfS$ +܅wTS*/ +R#ZF$Gퟒ zf*ծØdhpڔphhZp5@IRazvS<1T5oHfGGR2T,GGRڧX#fYLJ~4;16&XJl -94ldmcD#\g3"94QNVY4H--/@3*:(0 -4vlTƶaeb+J7eh,՞R>LW>4&+:Cg"(Dg.z/w$&z#tѢ|io09 . B*g RWTB-SVhdNpi.TWRWPTTTݣvJ XԗQ0u-K8.p2G% tgЩ4>Jx5)"$*18RՎrFn1)g}z|~qSy5(,#Ѡ~чu?fVIҲ`IԲ'…ҩ泿œC_t܏ I?bAVs8k=*CT?D/zuʁjȺ% h0c̲8p%4umhnG'ɩ`hK%՜1a,@Wfqjt…$}hjhsMzk{S:928,އ"#TF&M?}3#ufd3+%&c5}ju(%sTZSSxTߺ3Q{9gFjCvlEݍ=ʳdI8Wb?ITE&lc#)D.9h΃{ eqLÇևGQhdVIQI.ړ&Fb4MzFAd3ẕ smݔNTSʉU}a B6R=Ah{t±Te 3``U襨,`ݎJP) .x"$RR8 dΧp +G!Lj&u9f&5[INݏ%{i4-r`1LOSʦ4K4"χgPFxt8<"8&#g돃c:EZ‘t5*IObR+B#] }5X$&$j,Er +kAYr)&TMJUt5h(x|By){SD|_&K}vRHrĽc +A5SNǝ~u=rż<-;FN!< +/S&zgkDzuOR.5NBlνlǼ;+8*} ji&kK+CʾcUYs29\&' }6/<ĘԀi!4vDd399@d1yZ1+P``WG\tYoGK5|OWpj'yC3|(&=vAv|7Wp8p}l=OTsit FJ&Sb_t/%R:nGsx]]d qL0c=v!qW M]_3"ʼn`7m_+zm$hxNI q`gp͘;7Z2:* !DM0D[Q_5jwX2J)"GKH-Dh}=m6GU*1 ىpMNf׶Ey4pe5쥃)v]d+e,d*'M/rMY3`ЪUϵФDZ*֊+!ekhtkF}@&i鯪^Zui ]B)҈k'[[o%9HeK1snBԺ4fOzA." U `XiYHb/KxB/x~ygǟ^ͭ,BsAQ1{6q VXfacǫ-'qw>qSN34c*;dWzy^"Z90˭#5MLDax/pUY\|1YɧaICELN!aT#j> +vH)vR~ʽ8[bJy) +ɷ) +ɷ)|<ɷ)reuvfvʽxǟbL|A||BasNEOcs LXcgd|nesLdħegʧQ3\;~K~!MNQpK9}M|\KȆ%4 R+))3ɧ;nmI9`w)pnhJ2VYHF?8R_OxqO0IVta_nO`vo{ oWg@rwl<3pcMĒ(HziBa:y+R lǼe;8U,we#rIs_8NXqBDu4Xiέ=>Ͳua[_6‡=жof;T_T@t`e sZј!<&kYJm=Kkh>F`q m$Cビc8t3Oȹ&fۈIޥıdFD_7-= l:\3]()sZy6lXQGhYX::3?a?)jq)vgl$Ԧ?θ4c)XWpn DzFl20]cj=depJ3K(3e-ݡ;AO dI=e1QgV+E/eP $VB)^I'Jvv&c-p39*<}B?Z;lUĢ SY^HzqdMiN֨93({P"-Gh\$!xل!JR0"Q&qUp3뾄$̠l/غIj_4d!RVJ6vS`s!$WdXk|2)}s$kϔU1Mb$\D6H-`/NYGBCf3ey5fd7aU.ŭŭ6=!Y%w9}parUbfS! -K#V] ůj,_Ch$2(lE𝰰)2gp14,a!~\ +KIssW{n3]ْ2P¸bRlPR]&rAYpv99ijܕYT1rIp2+ÌLL1nwVf)dcb5vP}GUܽpMES0c`TTS%9EBcuq ǖivѪ@8|3FSлr<(R5Ҙ %6DWt+$[f%{/qW'yCZ~AG +!lVZq6=5]& I+C_%OAV>ٿSߵ`4]WnYf828fI $]I,-RX-*Zpרuk;/ y8o:7- FCsZ(oD L75䧐Г5ϋ /k%i_X+u[z$N]ڣeMMcΩ3y=mάttUkJuC}hXS1_8-Okʧ@)]3!o[LL&+Ž%_eK<2 +=~G +aYp&/hΖ~֌ VWY^pSnvhmokǮueH\|&i +\pJU BzC)ȿD >yCSzbo/# Eم֥3 ![00#q4yq5q '⪇سF毲u|  Is Sqc 0"ط!"#36ĢQ)7`CѫYs7`E\p3K] q̢"!#C6&˿n9&7d8⦎q+4"KNҍ@v TӴ3zӦAv@M٧xM9|̥<Rnrҭ3U+;K SdTRA-૒t!U̲R-i+׻S +iè_=o⹇5ߵ슎poce545׎{u6Â;=DضFW86E{K'ⵕ!a}ckb1=`:^Ŏc+w:p>:Z盩yebq˜7AuB}ukG׬xGTk<(W-Qtdk#3dWteɧGZ)璓&+xSgЊİFM$E|X /jaC˻0SMǢ0*l/4ʶ֣JɞG4y0Rsa˅T$a +5FawGSڹ,Rְ+-`QigH+piui[DYԴ3-b0OO NF~ _m.9j>iWo;R27 Gid\Ì2Qj*aܚÔS@S.h5m%9m&qm$&A tCi0閃tk.C\D++ׇ^o{D5Duw'R(Y LNj ^Xq0+{*aOIĕ5C]~Kruxޢ43 +;Mtqm1e-a,$8"M&aZ2rx wq61w΄PEѠ`.! \hwPۯv_aekh5DKI`4-N{LlPڵH-+Wr!H70w[7Qam0mlܴw8+%#&-bQ$0gUi|VLl $ӡc.ދffVp)o-X +9ڌeHբ ?*ݑѶiR ` 'u6V͝]{cu> GtO4wSαnԝA lC 3<%W6uX/fu#w +c*Иə˅hLs!N|'|I< Pㆅ8(bSփR v;Йy_y5Π67XnD>A;rGѰPy]=@IC3mFt:ɾKzsm=KmB[ߍ"Ou~v+1Niѿ]4rxPC](,J1xP,Qkr,C,"!rnBCqclRC5lb1m*Q5U%$dctctUŋǣv.\D#Oڸ#c6M]rTޱGu*nq#NJ/]T#Gַ._EЯ +ѷHHbWoJ׽X?<fN!Oz`d!z(O "^#ڱѹ\ +`ʿvammWy'|_gl12+BitLR!pGqx7A0>hgPߝsX_P8Ó_؂5A]rg[4z3zHD"Ʉ + b:ƺJtT&if?MTAA׳ocB^W V$5I9q氄L/wZ I93]ңZZ ĶJԾڂiz\)FY=C@2U1W7H^U+_j^aqgq1!37ӑjvԛ!1(Ov),ɗ14*5O;79U$v)&Wsn>KZ5𭂾=|#&FKUA49rv4~Q3j=閇f/lm$ M)WW.-41OUx5/gi? 9*h":'S꽀F'UJ't{"ivˊ?>ܘzq 1wzCephLسf89& +w ޲x G#(^rɖyt4B~@0*"`#$)9|kgg' )&%/VdzWV3/2sA4`W!+2^zT#WİoRZ٫z$׃ i[*gXĆU=rwRMhWZF֮+=|$ܭ(5Ɍ+p dUpz`JӫpWAst^!% ,`ADLhמAS 1@D-A-0@ϧ[`!A4^= H,ds_,s,S#H0a^}M[y0?^K(_=)Hf&>91d8!R묕xJfX$(^D0(޷e Tպ*5ڹ5sLQ("ʒ/_|C߹wwQ ]Rܹ~āj4V];J_^t0CGuu |fK3%f2BS %hC%fU +M%H*A 'i: +MeK~SmKZ>h{a, !)}=ʹ>D_TFa}U]&D، .QGy:(!{M׆`@FzX z/w)uw%ո%:d]N_n>^3d w)"EBn1هqZWKK99?AblFSP{Do:xnNf; +yn 1JynW0 +b_P[}g-Ȋ| +]xkFTbǡfSfA@EJJn#yZDxj:rVdU36fHhJ:AgԋHVyR{ wyTz3uUz^:*j'u3ɭF-:ЎQWzd1N>9S Q}i`m#2+eWV@ :ǡĆoW9P#NjagʸШbaN7xKSMxU*A(00'IgE0< -aSB9´F:{ &US,Vэjxβ*DeZX80R|e@s&c`}sΓGo_f@p;X;&Ű wXs鶯zd=5>r7"݀ǚ;mvkݟs&̪i;zE8N.PMT~}d[ꁄ /vSo= +@+lN>ec*>OlKpQ={~ILf@)L s w?_S~A2zſu[H@B.!0H82t=WWXh̠;q%GPG! 3:;9Jp?I$AS4"*qt 9et"A27Etu591{ ,8ꋕ?=5"2h=2mk߻:0C!;]Jy ++KGk#s?M0^zno6'!gMŬ=%RK +Hw!Up%+!*s-I4;:Bp$˸Vrѝ)9d(-_Oʙx?ǔFTCY|_^p |āl!cu_DI{C1;=dp&qfs%(ivt!&̛}I&_ASr&gkt=S6if/},&LSlSPt&>[fijS}]?zC'd_@ i̲Ha@s#Y +¡i$iCdtYĦCnO]\լ(C&ykC&kpCO_spiˇ ^ D)3o407~'jL| _h|nZg~>0Z~?<+;@(^Ci?A +uH #vk^@zw.Rޗ Gcđob2쁾cƑczjѯn<bn :in\wEC|~hسvDxCa7WEGj\K9ȣClBpQ8lpFdxGOH7h ΅B+k06q+v"5w,A}ͨ[(#!цޑ( +#l"ѷCr ˟(3vS9?ɣ?wׇܑ?HöN%)8xϖW f%=zkY +a)-8#3Nfq[{.L,[ur]g7>}xS=<βs{'>HYF]xk$(b;~:D|Qd=NnT).#V I?洚TrCRA δL\Ԭ(@PTy5EX-Nhsc; B!\TKBnT{{9g%.ug؉qCc$3EV#FrއDu  CCP?DH , LT +@BT2q$9?O+T`liOo4 y9 ިdNF& + rLg6NR_emxj7h)'ZpZlʴ#R"YH8a HUD[qlP!OY9@f#$ܭI "Ȕr&ɎW"Tb]fnJ`#fWp&>]џq8reGlt((r.*U.*џ譁- ^D=h6nTYV(]"(vIآ<\1c\܂>XiPMo%np$_gF쨯dBh@ +1heW,=$} +]"aQT}.f2繲, +pfB>QNODN! DBNGUH> p<~^FGFċ6]Yk6s>㘃br䗞 jh#DaPy ^um#gZ`8hwR(kouf/1rM ,m "]#Vub-mV#rt#ӌa{Mԥwfry3%et O1R,,v}dĭo}_p:o1x]dJ0:e]eXe ġyLR,oO@++}<\?~NY:¦p 4>﬛'H7Hm~JE߄ i#.Fx؜Goګ5qQqɂF~Pv_s!a;^`x2rvb:řEE\;Տ8t@ io=Ϊ8`V}1_iAn!i؄.9#rxhd @jO4Ж?yn olj [m1 A Ĭ6Ai@i,BQNS'art ddSjղY B rb`"Hku}Xf7稘$UQbU>o)[a{BOAgXUᖽC! Zf{ @}#PQ;fˬW&PIb]F: ySuG> 2V' vf&iѳ7&lfU;_&S.(lOK8̪b}1f̚Yמ<# ZiMTiW4հPƕ Ԝ^>1(w!|$$GI +(XiU *!TXNJHHY4 $nXԈdt=tv@~[V%c!OX|yd Ђ^$l~j&DB(R؋#蠔Фm#JqŵiGu !R)Gf rW' +(*wn15yi°o_/4Yޟ9z`˦Nmý'|~#_FVc痨@]|2%ܼu)hzpt?%5+,-4%=]U]:܀}*!ZgٲpwЯɯH65kh, ]jG.C}IO1SD >Z"DtӒ,6`@Z`QM1~*` ;@y]e}l1$d^ $7R0 +"@r̵_p|}nnʕzN}.k#86l66 :=z$W706M{yHǽ!7*=v~w@Z{%ޓ&[{RT;kѐOX08p:=͘܃mn=Ĉnؠ]zƟ_=y;pZ=wAɡ"?)@H18ҏCX~=hJ]EM .Zjj-Rb3ZIɪF&+ lFQE[aW<4T{; ӪJe~O= +%_oF+NF!F 6'!8n>rVù׻BR<%ZOQ RUedž)Ԣ.JZ8:+єM"&t{vN> K)HZS wSw <նl 7 kfQr]ss ƫp@UF5/pMn_K P7r5z=2AcյZ<=5/ +Z2^*+S\8fχB<-Cɫ|[O3gæq@A+#沐"G[5rbNJV`5W5@蜎=:r|ި;U˫i(U-E&lűC#0)* " . +\ |}3ic|ܤ) +hxDXpq\V{?)b!Y>47#: ʦkZb$~/1w*QSb,"t "F! "He# uƢx{krw +!~j('!ܸ^>%&&u@EWĢԩ0d+MjlXSVaV-E̞*n{7VsK 6QNްzݦCW0wCZp%IW;jt5jmA TRb+sgQP褴ͣX iпaψ¬*ڧQӢTw$V4V*;GlD)j D@vŒ0%}4C71P|hP IX79zhl4 '6MhlOFeYiosk|In[GxFL)fZ [_:'6 B崬ǀkir%NkuninBh]ûhip'7Q#*0lZC%2xz[Fܸh|2Ĵ}cl1o'I|2UABմI}֌.`;DV0Q".ꀱAͥJd8xR#a!0[KL`umyڊBZ@jt%hl2'HL! # -X4j& DpY2d%4"mF}3$Xgr*QYgPh&lZon0꘮3*6j(Jځ@hXն"$x^ll%n^a}cMƒ7?8SBh^r؟35fzjlºU=H[⍌46s&Pv%q(i0&L9&n4Is6CԈ: +;4q5EI̯ 79 ʙrtNY*+yNo(ܦ'"͝ALs&H] 2yvn%E%jd3,16fBLK-R\JDYx&PEEp!^j(+(\Hꉆ`4ʕ)nIDЃD/vu5a!+XDq0他0}>;'_ itQF%ȩ|2a KdعҘ8? pp;fN-=1~vNyAB[a&#XAhB[`I܌z`'<\Ŷܮ 'ɖlM2`yI}M '5AtHt[y9F 3_*9G^HpnSi`}ޤ|5H'ݹ[ˉ4jv-h*tԙe3j'Ҟ;pvbs0)Lgj*Zհmclc1\KO5*@2r̖-It{J}DH^Yc8}YM6>86(PHÏ +7'cgmdMl"@[EAqc*rX09x oKɪhK CذACrNm^||lKxpYZ֣ kБ;#BfF+HmXR3ߠ!t{ޅC&厽@|s=xFr:E iCCW$'3ZW:Y +HT0ȃ!LZY \;Ctô-sY|0Ѧ{W^l,Z~/DlyY_׍[F<ԑ9$L)fV ;&9&F\1/}"˙sǼ] k>LvØS`,\y4f2~\){O쐚P?[_%:'}@/TC \^:z,`{Flt%g_pʋ>ZǺ #OcPL("oG,zIDOqObVd'O&< DEǾ߄(#wD">Wre֙Pff"}/`\OT@X 6 +lMdgGۃ:^~ +7EPT:f`P8Yn ,#bs.HhXv9&[4Cd +҉(`F6 hǯ]#6ґ?1޾*/M0>XbjÅ6o?$$cJ'mցŸ^faL?1atΕm/MJC!N,32`|?Cj1ӊj1CϓLsPSM!M,މElvii!CfթkrJN&) ˩iEЙ +piJfdx,xn I7gZ^"6gۓYP ʎ\N-@O򴃢ωu~9ߚ$s/z{~mov1jT޷,&lԋZGq+Za,6n((j,kdZ_^_愷A }:O[%($o5|KjPַS saJMǝL]UL~q{VS ~!(KֳIߜ7ߌyPfje1y^bCܴHG$NG@#ڏB2m,ֵ"Np*>o1 TA^pdoEQ&_%NS +Kjg; ^Ԯ&Z lMӂRAsPNb$MbcLޕDɦkkyqgcM^k!`'cG,.I +l&u@1gxEF1K8 KvbƞU +Ӕ= 9 UL$#&de:P(`̙䊇xÛǂYh` Fȼ#H1|ݹ6D8D4Be %Q&idcjܷ\!4 ]phdP! +L8 j=#S>ޞ_p8>\t|?IO{$B^,~:"AX "(!a~AtUSgV+[]сO-5h= qt|_v/Y2pq+[vC'# qwCރI!i6%VlLse(ӫz-.Yoz-xagp*@\ sg2~a,Z%{8oxXlDV| l_t3I~W :G9H)v)!@`6ݻ1'{J{ c.ZA+h,.!i@aUU$H\;t?G[&PA?bX +P+'ǁK,"d@A+. `dj\c*KvtnI;wjX;zXFEŎJn;% vYGW䞶~B<,[F -7=vnP=KNaڮugn7v:Ms/h' oè\=rڸ{vl#Xm*Q#^o8ڸڽޣL|oձmoHڸ݃. %FJC2,k}2nmaΥqVN[Ӄ !j B[Cf֊7?Oײ{'aѥO׊\O:w[B&{L>(o> Z {"a(Lz`;(9@\{DV{A] {BWtw;fz/:,*ũ6L C +5i8[SŹI.gY`Q-)Zq֖HG8-b̙ +4" aGy34Â$jR CtU<4dT**altjQpCK&.Þ +ukȪ[Ȳ'C\}qHu 4ш\!\HrTJ.Cf,rYJF.!@[wH͡\aCÙCCřCșTSOb!f0.C,<J{YVX.CV}..-Q-؈Ꝕa֛LW@WWx-IQ/!ĞC][j?= ,߃} ݧmΡ͞CCC]{[]$w:|{Wwpo$CZwԹ][2gb߻J'{Գ܈lnWXlB+4FF.!zDvekc+EcT&5ڗd]r Tk^2Gq[b7(l<1#>Ry.El06IK|UyDiQ2㌌I=kaPwX%_[(M|1 04|5ﵤMP}-yx$Yt@.T~-!ԧQƲ--<5wG|`o܃ i9kC/ *^a( !p"K8n4e2kbq5+9Df(#P55ymzCÿ{o |]!}|n$ d\잩z;oB /CS CYFź,l!{vrtHA~/clޅࠛMja"{fwJ8#{jwPpT4CWXJkYZ409^TCbѠT>$"-& hfMHCCh?\Iya +؇@?lQy%@/^b-;HO g[7V7R ;nlO 0Ϯ}m>/!"L;$44/' +` ]k]^ܡF+X濐̠x1l̢|nBY: k5nCn G~'|'DhQS%eIT#쪹N(/ytjQ09rshnS~b'!&ty[ieژ5S.A݊jS14kSE؄uID/AԩlqeH3UJsInS9:wD"|pStE`)q:&Sh +0t(,y*0.j:{jjpˢ|alp) >=]PeQrlCx;,:Vm iC6qh?FHѯZ8R9_wRaA{|+uZ\uZi6M +ujF{c3B'C|⽢A.MX `CQ`B\G0JCك+&xD`W.&y֌rW%P,)~( b%U>DwÖ2jdOGUZ]8g܉4Dr4xwaI tb׆cۛ孬E#D#0_AsV0*CL1wLʯ,ݤ/ʫ j73wSb/=:4m= +\\Fbdo9TW^ߟE '?';2) 2r'YF=⭵o/Xߞ'ŏH19G|B?%8dыBf#p(8AbqY:s+cu**ay+59$ִ&Y&G**@(@)X8O_XdxQ&Y$RYt`泄YӰ@Tn@܁% busZe٘`bjo6Ī +Ʉk9;#mBz|>&JDk軅: سidj]ysj]vMnJZbpCxt< ~I/z{ftZUGG }⠏e_ay Vk4sKe-.sP I'!Z1=D!#" +b^q $HQ9q^mhٴcX\a6^k,oB&JҲ Ab5B$׿/*L\Ǎs!Uhs aslR5WTwkvw4%T&BZ?bN)fO"n?󎶓0&taAR{ꐶ-Ӡ+~b5SqV7cU+*:3DP TZJ6a -H3Tu1vTK(?1FtHHzkJȰzCoW5G ( +x |LJӽx`_ͬV:śU +krxuipKU & óPRC8ﺮu{$4|ͽ84:@Fj: \P1 %9Swm sDޢsN WP멌\9|=:\==bn s0X#Xڐxke.T\Qdb^~"XR(RDllPQ y#A#juQv,[0h(,n $t {Ddg _)QK4K_ +FqZw ]Y@T{b ;(pJR`>9;*̴@zZ8Ox(et +q횘V)㞡pPܼẪ:uP6\KI$d^0^}^ >V{?|>WlSwOcF3ċGCa&ubW m;{tw%o ߟ:U%W:"ݥp.%Cq'Q<]݌c>XF)֎GN PܜռqXSwr=8VڼȑiK||)>0UK`nJs^(/~!Qh#{Qܮt%ލDg k [̼[ӫf㶛tY[5\1ī׃Z\it |_HȌc $n#'{!xS݂mA_woN\yS0a;9 \! 4ɴ^(JJR-+NulQA$nF:te#; !8>cMlؘ's9!xz<¸EAD?R3F]A>=J|}QC sBn3b1WhC5#C>BBBR ړ,oH1q)Ї`;3K鮜9Tial\$se9u^A4if'19Qw#NNYH2,2NeFu`dPKyɞNʻ֥?'Y.,:R\ff,1MOguRGa,96gh \`%Ak]F7ex!d~ ;M d[*>aeR<7!GoFcI G*5uI#!16Ch]15f@稙'kϵ1G41yJ*vyGVqɹO8`]k9 +P!qO<൪6y +D5_tCW,oR1)ˎ~ k:s5bMv爋Lb+˭W\ѴMɹc9av"TMedGCyKƎ=@w4-l/r!S-F<wG'98Q[BP.vYx0eNegy!wYG0Z GTg+P'Vlޅj3s2򳤘MOSڹ;26qT 3VA +˵6>Y /n2jFRjw=>ez1 ɪ5x~,dEF'kT{cքBy +N^3>.*+aC!UvͽD|`J[u4ٟPA,#( +9Wy4o9H):@8ؔߘq&(EeDyI n]H!LkP>ܸԎ@ |WL*Y*)1_՝d("и@$ئ^}QxtϺKb(i [pv#4k@dL uF\'9[P``\qr@e mq/H@>&$ttҁhp^S>ܤg5dj$f܇thsOt$u݇!*q3P*Rݳ{l4bA_v^Icwg 4oG=!ܓO^QQI!94ӭ`]D4O] 3Öp7! kFh=”iiSM{cF ZFPQPq*FӃ!E2#c AG4ܳRpσWҥL922c@fL!d^)Qa^ ShhQ"%`U+ +S#{G t˃&tfceW΋B#EfB7|k+fPsmp!i괍l5!W_iDqS8p!oU(g+uj 1hʒ3N1hl:S#.{=4wX?3 5AlPհi'홝C*vy."y.##,+/0$9z*\<+EE@ƚ 7{`'Yqle-ͳ#s`-r,֍n`-PY59PP]%_rUɓt,I SݯQE }CDgӫ'hٶ'-Φ?NQIC"ea9%ZHTntHXy: .Ddv#tu&%wp|z<⹼;6AU 6U9(Y> bga_nYPA=q86ŐHpi3xi8t~|;2jTZ?A $8& j6۩kF踽u-}2ETFW`?yK؉fX,ǴyI  J jHb3iTvzTfTܧ1nȽd]>DIfAa}틝Cޟ T@C[Ff/ +mh9X-t"n{tiڲ]ܩa<[js0t鯉s^X%k^ݰq.j錸U~p+Щ}\fT q+`ϔ# 66wf=ʠqeKbJw 6F? #Y[HB]g3Qޅe\>~&7441(JS:D]3ouw!L$j:j-W1.t[Ilnf hRY#eLP.Kگ"0u*vh +ĂpEhl&G1ϕa tvQ( +ԣY2,ac5"Rʥa̺ʿCk +|vZi%%khr6Z^U f񜗎 +13}L !=>kt1UsB2ʧ-^s6#eyqnpT27H@1IW0%/<7mH_ mJfףt Dg{:P_J:HD\:m;]p nۧx-4-:HK282&."_gD*wAV&Mo;(H4C0I##ɓqjJjUZ+ښ&շctNZ47KHM +Uzz2+NmEG0UH|KSfNb$g /V o+z7H3IeH%m X@;n+W_fj`%8ȊW*]J&|Gm+E1%A4g^,=ѸqB9OOz +)L|Ž Ԃ<U\glA+7gͩo\^')ٖ6X)FXBf!XCAZ,-Lc|.pLG9T_kЀ>aߊLò^*#+d݂gqȮc ?^;j ^C3MxJtCl\ae3y)9ukÒ&jdj%҉B&1ބA nOJVcȌ#b~)7M&@XͲo~Y8L:PW>$ads@"R<.V%l1ݐ#FtަGGaK%/O5fKd Ə+3bP}I:،.EJd`'}Y׀EDǦMKCuEfLjj=`'sBu$rpv6 %4 NC>Xkt{aؖjog\]0l$N{+$サb!#8>f5]6 ;lnkc_x?7kuTP}RF`9M(FlN,QhFQ=T8h#X_C ,{ aܪ%lο+"]ˊWZR9o]UE VG6!04UH8(5%?JV$$2 *\ğ|(>KNOz[COG⃍ArHѥ%%mcH,nUg8 Yri<1z:`$) $C|o/=,&5RJqS#xG8\i6 +D:EShb G}g9=qsEeucm Fկ/!c%p҃W3u;$ΒD&4ij_DG0rk=y )> ~&^7DiߐҬkH xe⥻}ˍ#̀a9|wIa=ar7!Fk :}N,AL=b¿M:0δqδS Yg8Ⱦ9Ԑ;":xt̰+p~e%.K-Hrv3HY]Pz~.o_8 E^d8,z6b̭|,N?O@3'}As=ݵ_uV~܂ڎ1K.(4qm@NJJp&Oz%{90#jd_0{Y;[@d:|0G +!>S*ԡYv%g/o3]]bn-is +y ub^ˉ0f ?~oW麬Opr/O۱|F"d>Z1 꿊S7X/[gq̣S>vЃ SYÖ K5:bio7l:tDz:@pA_Eզ<`L&=dC"ۿ(DVp?(DCzv`EU8&j=8FqOpǤC'9Ѧp9tVO+bW֎;HYǩ]wOr@z@R=iGf;FX;@\ɺ7 Wݎk;xrps' t;h ~ڥAMp{>idy͈:N4o~hˍ%'K-;MR'rD⥴;yoߎ: r /{@%5;I{FKۇGS-~o +VyY[։d[x/i[<䪄S+; +-^=U +׺Wj+q74nDS;DdV ׫z ccbEsx/bcҋxbc:=%ƌU@*&մPj,E2thfjp6J{h6&´{fM8H~ȚfL2k675m>nwe5m6`Vye) +H)XOm(x)o{Ӌ^jONV#p|e6K6XKqزk"흂mv׶m۶m۶m۶m۶mgF}nET=ìJ93&;9pq<-W;#s|ʜG#*1t30ky;l^2mX#(ȱ:\Ƀ3Vmth5mwPcPn7E]݉f1D53U|G㾴aS&4(쎱s ދiޣT(zÎӁ3LR(Tq=5(.UR +?*US +FǐEUmTUJ,fUM*T].m 3*f*%LN՞ /jw/T{}f+ *D1cpʍ,aF +1-+bz0mUXKD1-Yfڔp̶$u. XEdvg$JY&TNZrhX*U)M;( +^c͉W, (CD2;0SKFV#Q\*B9>?ꇾIp TI'%b8`thyvor7!/EQ3W!YQ +I<9,Q!-T̥,QAE4Q*%ETSS8lAް-Vh 7Mm 7c* NφoR LQ>+'clX;( ā%s +DŽ 87eRڞLOvyCB"u7h-O. 2;JToŮ:&&;_߼r]crVs>)ai'L}h? gH2Ў3T%?1F3jGvNwF#g0>0dDSjK*2y2σl{%VnȇW* 쨰Shc 0ZV4GZ: LZ 㴬!_;Z ^._:[q!Ȯ&ށZ>a7}A٦c#ĵ$l;.6%NC̩E!ayxWfE7og/xzyICL(]Cȇ +Ik„]bVb5znG+`c.sE44|j!F"Ѥ*uY]\FwX;ލ ܉Г׮w<`f1zV~rc)vJej9#1{swડ3,?7 EaGg:xu&ǣ4L_vSvE/5v3u zMz㺚}nѹEfjëދeg#ï9,!XecX01*QgZ%odQuU7!PN?$<$7=x7=D7P4&a?zŞc׉ W/ϓv6LUY֋B8/ʦb\>Y$gleBaO iI (^_R\RQYێ>@-mO!kO<<)I4p =m9 &;xTiUD.fmxH@͘o(h:4Q ѕitRHBxtګPxo͝7TAm( $٫zg_1*ICWѧ Nf)ibHcv E?JY[fMܢ GVbMfx7 +m3 0ɞF4vvVZe8u ё s rore7 JH44)Sf=݋H''͒^ɇGcJicS8 WgM^3xE2J+imlRѝ6% 8'Y~o6s\39hrpl1˗)csqN?(\j 'wwO~ϓUsfUεV= +T:Tރ"0rm"K@bȒ6UW?^N]6,Ѫ94yy+r&yfCр'1 0?s@3ݧ\+u?WTd UQVmyGxżc|zw[/ +Wg^W6i1bB֣XV }ؿ5]9WFܳ]ws6=Cudu&ZK1;1'3 P:s8pLQ3^ +u֙ͧ'0YgVy4{-'@@c+8ٹ88֞d'%مb%ryTk/!KTs?%*[G>^l⽡yzɇ f菆ln3W<|~|qj!p{j{TuA(ZVUlD[aw\bϝ0H$_*zXL#lI54j8MG[V4EY3߲e4LİCQ-ı=J ,4ƨɛ(nhre<&& O͓{6&>xVD{J(W DPˉԁǟ{S] ?L5R5Kiª D$/{?I2lt82rF 9_bdRtYw1&å1M=ş/ 1uӐ}@ o9p͝7B)eJax䡯m7< _.K]V.A48WBB(cpg_+1+1N$cIr1!'Uet$wM/$0I0rq'9Ib'H0eᐢ/a{{IV_&}Dt$F]}{_exWPq(  +@v cv%GzǗe^BKNoC SqZ+umVAyQv6} az̹5 {yPJs/"B.q7oVvb+l9b'.Eˆ5.HL +հASقlC?ѱZa7PS`xȁgp(*k5RYofkz!0 +9 ˓4O(!ouVڥ3zWA%/5irڲqKW; b@[#|}}_S&?ϫtD q$-YA;2U2oj3sKUv%S'V>GKfTY:*=eЊz Gݻ#w@R^rn W& 7a p5&u1|jͯa|Bj2A.W2vd5}I0dW5XcWzd^tHX8~Q-)234(m' aS + ѢYΣ1&|a8yHX#/~(iS`yeK9H|t;~9xxIP> P#3' 89^1I/oxgmG c#j"e~d̙Qߖ-UNƚr7 + 45cvb.u / lRg>N!'D totLN;rdJZ RC:-mz0%oӐbYSj%Scl6Bf1jz=rQreqw79O{L/JT_b۳0MstB +WTV%K16|եj}@`T'7rjΟd +^Ŷgg)mKQoI,>׻#dpjǛOP.!B+"ɶGd;,N.gnfVnȌ:~s~Ի)#/y a_G tFLv|ۙvH;9IGd~ϵ펄o]Lg-2(V UFK))؈Ggy1 ;x1!% ұ-̤ E +ݖFURWI&j\@2 ċO ͛Uv3sBVfc3 HY4TQ5d2DZw;5ZD9- W +%DRҀŒ6NP'H1}œ:C2<0#;gXFj $$efժJ>SJ"JTD9JзI_y\yIy29"G-49#%_y + l)g#m +qڦUOIoCZ YE\15cW6]9I$&v,!w[-0h<~oƊq!D DW汣9_3H=J*RERbC|o|e z}T@&xޖ.vrp [D`BmO,IP"͢f律h~tYT %#zP,Dl7Cabԟg&'#쵔1TOv-wk-FZ P.~zK݊"nr>{Q̜ >vt ~^yb~\w}~i%`Ia-{Ÿ8Eu濟Hbz}E +j:< +HfB#S2s-e%l`3(JRJ+ݪK!UJ#Sj CaP€p$YJ&Ga"T-9p₽#V"YxRʧѢ$Rb?lBPwб]=l20ڶh\_\]sT5L|Ѯ x+YfD|iF,zi]X/>m4Zьg3e 51Jl7#1O_>D:-'A +c4]1wx"UD{Kh~ wkWrƎjR {g鸚}k4y9/ -?#bNI!+-i9>ću:u +b-O=_-X^|]!]l2~Lm(H>psu]q%A:ʕ 7~q^P ,Id1-w!_Zܵ?bys4bAet0 rVUDj( :O NO-U*תՙ?ӢPT:;oaOZ|\$AOs |Ce ,e2G`l1({ƃOَ3+6+{Q|d3GJ:L](S/g&2 :%~` +S?Ь}9mу2vW'/+-fNg쇠}>.%?дܚVa݂g`lIK#N9+̡s\[M-){NciQ>, 4U^9y϶H2S‚%;(4깈rvsm6,Ѭ=[|oy`4eYn}Kes=7N8v xؽg !oX!2 9gm6G7 c/0 ~I{o}P?=ɧ$] lۇJc4$OGEp.OD 6Oxry@Pl!iIv&]FݐMrNl&yEa^Q9 +E=Ii͝Y7$k Ve^Jv{YCqo ؏g!\oz$Wr4]X.d(I>́94eB)G@gY5\1=T +5w-MVΡeوmvk;T4~ǟ41MX▵3;RM/.'N.7#W%bb+39ѡ,1A E6Q{%wvȽC/%.3 krϟHWRi]r:Oa7?fb1Z7ևvE0 ext 6 J Y|Ӭ]t*G,`XՑMŶ<ֳ؊n#;$P۲K& !6hF9'B g\%qbSKVRMqL'ْۧn'Pa'4 \wB&B ;eu1ߚNB˪k +~GMm]~{(&C8.!7/JzK/z/liN:.|h6\lf<+灭 K cȫpwe=vGSOK٨R0|ܥccLf#UWe7/3pWWTNPn鉵oaw)vN7hg&ayzZJ,qS6q66ٝ04)8.*vd4SDxFeZFi,Rge?J{D:Ͳ-)jcʖWvBD2SXbEdziXa5N%v@Fja:eGIR4e?$enBJAgSuu YIBT`b4y#,+Edv&-CnL{>3Nu%~.?ooSG }j|xV>˺ ]\<AVxi_L=(ْ~{F_āX9Y9Z9]+]/|Ew䩹M^ؖ,}*O.•_.]o⪺UV<{ +|,/Zȋ-I{T.)8 +m HhYds/rK:h6³gqDM|O9VH>sHホ:sc}Wj݇PžJJ67KԮ +3W: ;s&$(PSݽ`FŠ)] Sc v *A;jf$pSOA >'O:`&@G_NK-< fq8 #B6a|cF1G)6{nP5AҤCVa%3ańw,Va.PJJFFEfB`俥mFM,Q9&SW\YDD0)4v#"Goh=3Dcbyd+8B# ~̝WȅaGT@WΪ2iZZDöhVh6nr$c'-JJ +>Go&;87Og@7&N"*LanD+!QD%mpn Sja=6`%#T̤w :'[\%܀Vd2a^jT3S,,8W\ 91fǺfY [r{rgV$K56tKQYJ&%D: ʖXqQ4PD z`@*ҖxZ]taaasIfÐJ#e S1smi^}9W^Iɑag1V+z<{^Gw l0Q+!L0(rY>2Pͮ,9TH6&2V."ߵȕ^r20bれhU':T+6?E9XܪB҉bspðUWI(E\7a}>|ðGDai^mPde)gZlhp"db礠2`7t悳Pa;ףic,iu^T:]b,~ ﰰa!0/?`0̍  ӒZ3^Zi_/)1p$wͮd򆏉-:k)N)d&7#S H9 $9:<Ќ#S2 _Y:e{yr upx**^&Fš%vCLJc ̈+!4r0 Liܧ`seÐ.!V&eǕs*ӡyJ,nբnWQBx7<6X6-8~VϏ:`KX꧆ T/C1w(x:Zx+JQ!t Bu T0tS\L*$D+rCX ^'])bWc^iy65AD|H mGtBy@E]޽/_,t;dtR\!sԖ}ʖJWL9[gT݉tu)wU1t! mO87A*MOGēj;lTfD;ƟQD&.f`η,i{ђ&˂1i:svp~%Trk$Nn-Ś')U~|.(kE)b籋-!LoT(>3'V߹B–7((>J?0R 8'8fF_\!bQg:]V#w07Qy{<ңpm#¢&83oHaQyز4"2@Ə +ie;rZ\ +xFL_:Qy(^C>Z_<hTVi4"xcwuwQ2&Vc}ts]?lB-XdX& 7J+n.Q"4Ȝ' 8j-KRb KE ۣ؀Re$X/^ma80+ˀsy1*9xR4.MytQZf{^ye&ʫ `"^wOa9nW b;UIA\)UIA^Kl/ 'ፃy;g!:/?i]Et͛$|GYRɃ.tofG;1Nj)ʨ'~%۫u<~E-[Mϗ0/l6\݇c헓'ìH!\1'`E0˲{qLzq@p2 Zˎ|~P밝d"H&ݗnkh84SH`q4D5 r#1~×muy>^9v =80'Wϴ5S}VOvhb4])kkz!DDY{ Z~h[rC+qF{L=u\% 7`;g؎ֹg:y!g>]+t"3䝂ѹ8 o8=CH!E^ތA3]O:HݓsXCy@WϤs/E/~27:돘L^E%x^E3#BVPg804fg3yݍP'|,q:wsST0X=”ol>80AMPHpcCA8KJI J4E93pˌa49brBOyqG(wRy€h8b*\3RT2Iq9 bx^ 8/rb.>ğ:@Ras_6{XoȆs;@ԜaC2J[Җ!K'ۖ,|1溚!(Է+.l2PF}I jyt$!gf,hQeHKBx ]?/ 0͵p HfĖ +ig‹Q2E?lO+|ru] EP|ؾ>hdm~K +Z{)c_@80ڐӚc9ҲK{Ak Iu82!ZSϫ=>\O;/t5`r?˟gxI0|L2D%^v̹=ʛrpd/;ʤ TY`+}؆MGOh9nu+՞j\X1[R¶%ftj[pq J'.tں` Pr?8w7BwJcps¡ΕTw0ͲЬ=zcG`MOx Kpm'1 mYɖ'yiôk~~=:?vC( +D2׺q4V-a'R_\޲_ꡨ|BxǾ~vrԞ?BNayl[%k= +L}M6d&ht{(42/F_X +o3I9ã}/R甙D.fJwshfV%Ȫ3g'1~;XQnWo(w}*pG +N3a$N-ǖ,-y"(3h4nnѴ3, eۛz-W}w;}nYXG.28i.- fXr g4L=^ڰKn4Iy8K/yi+UN`0s$^QP1yZyG"q8M5c(o휰!I@"Fv@-PNo}4`z82|-E}/\͜g'WOfezZ\u(V׼q +UvC;d9EWJz zg7^j~%%)D߈0 +ůX=qvy1KTK&]EB)÷~})p.kՖq~y6S"ɝ(PߪƬxhDIgn(t(FXbP^ +?ʾ3T̹~WB"6N xoxGڜRN-$H~G1+q~CCy_2jO"g;tu;^귓%jZyVdKqEe{@l˟`03+LO+ѝpPMg?SJiB!ٔE]'זh>VP-栐 n6<վIlp*;۫ށU&.c [{g%gGcUICVDU׊G9>J4ҫr^- {0 Đqef 5 I!M@9l.m@)X.O!V˵hȲb5H< 0 (d*s݆yMJuIeiz\;q_)kP+VA6JLuR,8ȘUQ2uQTW;sD6 F||I Kh6)A-僜rHs,G,b'yg?l3^#j?GNH*2T=37dDI}`fi'.G@L?KA?س@[96k4= Q-mDf9Dfx;%BE)ɣ^RaxDa9Qϖ j0πp,hEN˙t@^2*hBt.&ՋU6Osʆ8 {W4kkHi !p=֟gu!5.fvBCRM Mw%dG?,NmS`?ٍʌOD3Lm\K+(Cc y#sqEEyd_Ms.y~a=ioS{L@֊@!÷%кc =;1n*'FpYY >"nz-9!-{ONk,h$)}/A_ +=Oy(qlV9!0Ph&\6?[}MW8h""_̽0<2֎4Hp_ Rȸsp̚TWoQ DkVɧ%dEGn,_ sIcIELͧy7PV c[0 -=ӪɥiF4MFEЖ|QC(95QMC_T3ZC? y0N>O~KMFúȪmA~T@3y@)+@r3 +WLq|`(x|JU R~:97.yrĕ)XR[Z簞im.Hr$}=l_^w#Aöa9H&q' ";CӪrÚW]wNƀgWwؿu~5#tg>5$DÿIW^N-[\An8eEP4,^Tvy.YV6DEE9%m + e:D4e.KAJA,~s]~Qu4;uΦKR8|S 8w|& [FO?p r JM("6y"XE\5MԦ;?MnnU +Z<0ئKաf( +AwxH.杺7oGs +KG&p Cx­0w#1G)8Ch, 7_v̭2KzV]:s*aʭth6~|EC|#w#vpJ%o_'K&s7i%mw#|'_R%z 6֣|g=j9[!cW/twB_&vnC^״ۏѿNꁵXmcZB"<|cDoqt)9[y:3Ul?}DcT3])c+$Jaw-c[^Tj0)3D/嚦yEZs[:R0 +;cr9߀'i)FnsMJ<|1iv \&"DQdȈb$fWݚSbk7MҺf2$(#_u'Bt8[s]d.>\h͊I+ܝV|8[lH+nZB5blMJ6@A9GQZs| 7֠JY* )LV޹uؘD +&Jq.Xg\W5=+ZugdxKMlm5(dm9 ĥ.9 = Bϕ;ů9}t*t+F3MO ΕU$g?9V;ەU^׮4mB t7'i\GZFQm>z3\7 vLH60R5{]f`B{%NA‘$b +š`D +.:]%Nmi95̦n58yˊ'S:EQrr!E_Ij9T匵҃' Owz\"r?GE?m>1r7 362ْb\bzxȲ) vYs8 +)q2LY(kOyOو7Gߞ81B [0jXMv*bSʇ܌:<ޖR]ÿ́bap,m}8\G|dC0%>j+@`%N|%;tKƍ zO-*| +K4B>C;P(:JhzN8cs\dbtP {bSCxOvSW*\,&977M + 9rL艁(Adj[1:{D ǫ@H@&ZՃ@§-p?e *ƛe@șm$Gag6b[oJ\֕ړN]G25o3JWvOхʖ.swT[gêIO5I,H5돳*mI.OJޚ;7A]2vn #;uYg]]r݉`Si{ΨcBOl]7D$K!kbNrnEs4OJ_& "On_fޝ1&3F{jgURLD湼;uo(*dp2g?rF#.b0 }![E&ۮKayiN'krunYlU#câ=S-Od\%. + 1 %mJcn#*,-H^:v#$s x eS54Ao *4Tg;]VQ z\-uq?qHzm!XR=Pk]J u_%7TʸEӨ^U{ N0v3~]كkֱ-E:F'1 cGy +ga|jAͩ1E~{ĖUYXv/>syD +O13\_2|2Oʲ-|G2t9/}u1MU5zy#CV-c}%f9$ p@p()OP 8{Vj'YV/+ YZYה7̗0vd&2QͳfʡҔ,ɮSEγ/]#XȜ(UMԩY>S +d{G: j>61XL(koCکЉ]-r&5Lcd=f;=:j(*,Ob] Us\.2C 9R-o;S4nv4ɻv -S1Kb(,D?JRXnIzJxSf7;V:s. Dq ;`YPy?3dz!>r~rQ\-΁%0w 5r #e)9i?"C ]pj/ښTT:>{71 P7`A3 xoS3 hy$HfL4@KxB;r5d4`PK&c.wNu͜ 2T>~)J@XYeQ"ncv +ض?vR?~t@ +H +an7+;iG(:nX ٫īVYt]$74v^n^yc]ˆbȧc娢&"UV4jJdhq*uj0~=iIJC8,ҏxO&L+\u!MyedyrD oٸ|gbm 7}^C-G>40%{K u$]G6/0wya2|DL̸=3!u +X ,(=/1OH,l4h:k̤ZJ.[Sb;2<:l8.ܶqiG%~/Ɔg#֊ugi!ۺZmnmb_mal1^mHOqdpWy;ƚ+W1?jUD}u?BZgx6bsQ =[3|5ÆQ!%@MvUc6*sQ8e8>*Wv$6ɍ춈-m2_ó/"œ%"żB]+*bo WnKE{J}3'_^#H:qqȯGD}-, 5ZA`Uc]BOŹ4 +߈I5.*NV+q:ٌc ƿCz'FF*N]Ў.%7;|3|c>*4LkV슱%c?{yF8Y_|~Zi-q̖%J{8PP9/Zu1oB[ s mLԻJu)pY nؠn\ߣY<^TU=D#=[mQA `@z+_,ù/.ȸ_%H?I"!L.xqmij!""v t:\B.x1Ru W?!66)O8;TTse`$đjD4ZH=MwmKMh}|Vڐr5YUMϒ- ;ܐe6@F4ݐ6x| =ℽr_j5 ;u;tH>6iJkt5ؗr>J"i =,I\hHq|'B;S簕|1LNiu$Vk!,٪~KQ==Jڔ%Kybb"Ox^JmcI]ahuhu# M-V-, 6vKɵ_EOӹ#1}XB%B mBY6A:nqozeaA{XKJ.ԙ4/78S#۶^o ,wY$V3s_ya;\@OWX'7 >r)a@`pY,,8Rbrq/CY3I5v(tҨm%0qB+>|ߗL! "-l-g[Ab_q ^CPӰ^\0SUSp}۱bѷ +9|l+]'"rwJ-}ȵZ7fC $UD폓.gb\6Mq>r)zaճHADi7H'vՋbϘyy$gw梐c0[0˚w1 tǴw:mbD}: +2''SoJ4툧'#ǔCuŵ"՘q's{R< +YX7iP 7x?u:ΈNbUg42؃DXxZ%j?G=AU`bEX$;f0)˙Ywx|%" +U% "埠&/`TQDE#!F0J& a@ TWbHD0+ 0҂R+[Foqi_zx1=fŝE˱33lah/ }|xBfE\ÌF? lwl>;4W-j ^dN';.էI+J,AHV5BX)D-Y Y^ ,Z EZՋi@+k]0yU1` Ӏ6pN9DTb= bm&DFB"9GEe5GΑ:܏ Z^bIƂR/39n絲sl`¼=|LHm0mutBľz`h\$<roV11pR?c̿Ԥ-sE B3o(,d7;$byЍ%&a?쾾;m}̌Y:`\Vŗxp}XeH'bh #0##OGH@$'P#8%| KSWVl CX玺x +Cp ^EwGڧ nEpG ~E' +CxCg +ECo=o\o `|{fj!8vi`rTj3fyN -3T+S};͍%4)eMT5+GKCp9{>Z`bk駡 0VG %瓆+ C3.Ư H١L`Mj)VzǂlD LLYE]jSdX2Y mXR`u-L&^ hэX=t@`QY"Aڸ6\Ǥ#FLĶbMuDǹ93 +-GR*gqY2t&&A&bg'r[57i ғq:+f}[(;M!f! "2bz]BtD%V=$V*<ǔCfQo+hʌSsf=zu.Ρ Ӷgun)x Ma vI_Lxl6 :M6d^pO[|ÔTeeXUT@\aA0ύ@"ð2)>Y,L-HWI%d:3.K%HZ6dZ-L'HdX 3k$ r77&'ʸ2O$IodF3O+%HSd^9r%;%ҷG2r WelMgs welM%I-KHpGGT!=cg7OJ.M;$lͼƴ'hx1%$/@+09G<;nȏ̳ J!;*B:s` NH|Hޤ(Y +~D*~$Ӣ7xlhjc0t4;9ۚ`Z?H~c(1a!mbI7ČkJ#ԠTw'n6gl*ͺC$TG4}VՆӫXXdTc(pԕ쮺V q wш{OL`ց湰y#:z0NAӸX(T$t"%u" :e2-Խ(Džٙy]ɸѡW,ѭUęg@tT. /T s !R:#($kb9hQQqg1?497>}p9s +򠍋iN$$%%*f!ZMw6?I֭c!LI (U UT*U +[m.5j-/l_ ?Oy?v_{2Fvyx}ra\y`Ve9Dz g)p_}8"+a&Rݔjs*C_s\\?ctߠ=(E3:5jua&u,5ct%uҋbC b9k*s+s_9|ۃ8s/{#RzC97cA>ۺ9eӡӛ +"꠵}}PD(W'kp[$nYٶL-c$p^Ll_8-8fx^g?/>*7 i# + wP=*o@PV:+jø0mmzG<M +Z00GDWr$2$# EĴG2t[eq_ykÌwµTuh`fv`Dۍ-Eu].9LJv3,5]P,rzZ'M;6Vӹ+rC".+N4lUuD; *,lzPdZ6gZFEu1"HBRcWH YNE5-+J[vqa*StZ/W5[T +975Qd@EX9[{j/O45CڭU87mҟѝN:F & ׫7=m + bIK.Mlr";pYB+md5Y=O?`XGdj|*Tb!a +p%7@a~!_䩱#<=e]/`3>l2vGXi tU%81LTGA Tp[ *l2h'H4㷖y BV.WwT +GsF|D[΢Z" / x<#T=KttPV6կOt2HLlkh(1!A-5-uVjFm7蝺 +\"UW0`ZYXNٟՙ3oV{^FHh\A0T[.])Zl{=lB55y6LMI B\a" PE|fX/XU !gj9Pf|aG휈;'fеDY&lj=rLZsxb++rZai0*LȸD4MQ&*XN/@@ˎrpH%XO@]%<ƈoyLۘR{=NM/!+^Vأ[p՗R_Ւ*Ct\N0 ύy.^>x0Ɔ(~+w"^CYAb>^Zoqu=2陦.n$zn,~1Xi+[TU9a^<Ky^ͪ"RKi,9 Ug:HhL͐#meǏ;m2^/Y܅@Gkw1t +.8\:88!vT&-ŀj+WKB` kbˌ۲?UZt}N6HGYD1d*}ǤyةImrZ~P~=J 幩2K'+\S^9"Xo_&0&g+l'hE0jAۦ|bV@Uha\[Q.WMipڎw|H#>b1ݙB]U3H{X'?CoTf:jv +A{ e:wz#c>z ^<a8e,k'8>1];8Y)P@^[A0gʔGH2y%g>UҖ< +f r풚T7nwZ'DJa1Z; oaQ6(g y)S2<Ҁk\pU絅Y~qĿ)y}`u|s8ks@-9&K=ebd3 1HX8fpB#!Owjeo~'Kc>Z|xI^Q" J 'u9yX2S <`&nD w(܂wQ"c93h|0K(T]8~H~g*ZX+ +Ĭ?dSGշ' +#=P{-?'T1 +Yp%Kmn]_yX 95x}*%EQs{e|c &e9ҚjRsyͺەz넃y% ?Qbrw>/'%Q+WiEpx} *BZJ;&\ҭkM/i'^֟ -3-#dF*y$[G%e5YT +,w'-*(k]i) +4"v.Q@ݚ'/Ak&t1f:.  8H5K^ÁFZSVul\I#4)@ilhܦ^]+n?Ԝﳥot\ttrri)Ʉ $P~Nl7ꬮuQB4*߈ + Ŧbps I*lGrtbl%<+>mAug//8U/꾙!je 5usR%ŖkUk ϩgXh#[H;%W+Xd,]CWK==#=VZSZ3?9^"|ls63"Sv'xJT :'᭭;FcqҝSz8Ϙ, ZZJ+Kl9Vm۶mm۶m۶m۶m|$3_rN;I'ZUl3j=3HBJY.0iLOmw1јȴ ET b e`+1)K%ZŰWܲ1K͵Ura_Mx(5sF,ֲZ\6ۅH؜j:ެO~ځwzq3\ VF'Fϔc61ٱ>PϔWz>4?[SU5`HgR<7?g#m-RJ6ZDkX缮|#mEݖ>:θ#c&ξ~/tZ}L*4hfؕXgCښI / Ze,PjOi[g<ʄTS7ANSlzUp*WMs@7=++U]gBFD/U\E*U;4V%gH +Ԓ~d5rN3l̠UNLC𨁒=^Jϓ6g= [3[Ubݥ}qKmAGB6@g+"D_7?k(lXWʆ.`/? wE,i4 6fGxcD$M<SͯW\z$OȜ-]~/eaBIMj(!Я'@׏:12N?cfgW/m-Weu W=c!v3D I,b +ەNP(1O&ݻ1-|]x})pM or )Deح4枸Z :aBE%U0_qPwhߞD6rG|\uI<]coCp)w)ד>W -2gɯ2'Ց! <ԔYS֑C_MǶ)z3vOcDV'fD2VR2@3]C+Ġ13sgbYvT !r+vVܔ['ZD)/jrd@ j?ȡ~U+E5[}dS=&+`xh嬐o 펺m 4̈́Ў Ӟv lL#WI# hl>S؃N[l[X?rW$+&fPR((tWd+ + +͸i ɀޔTW\/wQ4N8.5A΢XJ> ?4_*:D [Wa + 5JGEcMe^Wg劅Zp2N,K K]t^Qy$Veojۗŝ^{tEw,vwea*Fa\{蕣t9B+݊rsL=e-6(̗xlN\OK#^~p@>ȟ_6Ɖk=q +o:0R&usxOTfE8% /րmZj 荕䍹{',#8YbLr-Yke=w ;(h_lK:srțI'0v +,UCD/0:*}\WBmrS1_2FZݯƷJa EWm3_/,XQRϫszcq0wP<~A>AX B Ts =HȈŲ1 =y)bĐ>nuLTgJa36,@?iLl2T?,]8r\ +(1 +y{0]', )"l1, b5\U4B1E2OoRڎS>cki3[g_Q7@$+0gƍ`ZtBtѤ81"_KPYY$i¹#RtF1%5"$]L^[Y)\Jt7U`8ROsR,9EvT$qJ$!-:uDJEυB śX_מ_1dP]U:[뚻:jrW3I]S]z013j&AVi"$ۚڠP*8*=eTs;)tB9}k n邦WYÀU +\//!!Suؗ}d?'=61b%'f4$\9EH[P%LFƬ!BV[ZtCzH E𵎚/Poli@uiYéKQFY 5gQL8Wl0f!\ =Xp@cܗ c%!2#7SeN?k@cGYbKάhT_bFFyOr])!Du]7+%fat +0xB٠wm2Kk-#ǫNxn6܁:͠B"=,n{O, +wWtx˼Ou޸-ҧBڀ9]T_PR+FԢL du2*JU?MTU_\[<ݛzkt*K;- ,JGuq1Z=sfoH}n:p|P*-HRyb]GR/0-6i_:GV-h63*:{P3`Aj O?c:0;YM'X'cTx; ߃h&H& 0^$74qG"*6]wӳ k@-;ڭdHFE)#ë43^g׽̭ = Tݥ2\YNAbM*VƄ,!̀O"RX3HX/~^w 0?SedDYdjBhJayAܓǺBq+Z^e`[2\)EKbv$,26yY2}łyŒĢ rIl^&eESFcJxY 8<0umzv+,| +i_FcOj.'MO1 =&y ]A *ry`?I+ 7TlC}Ql +y& &]TD|͌= +q!a*=igs!ޖd;^z낥 (Ok~] l}z S琦X-d2-);$'h:rDcReN<\(T`rM3:r/3!Pd!`W!FWabE!2dzS~[{bJڭ?>:BHI[BbP +(6= ;BQ6 +`БjќP1gUшoaj9 TbTgsKE 1u|KX*_HCжX9| +NaoH +Rȗ8DGa9Յ*= +45ζ{Ԙ%9!+}Myb,!誺eos]8GSE,ĸA<{壋~~yVaqRKq8 U<,b#'ϨdeZ>yEK7iC8օfGhxK^*eb⇊m1scwn9s]Q1,lqE[G}yaH1 bHɣCwE¯6U:1aenj]IpգC7^j׉b|WHX|r>ut*[-h*-dID4JUh*`:%џ90 " VeDJ9#2٭F\.ZٽSi'F/Mm4 Ec"0 etY["C:?^JIvf@<ÎF}xzfEgGD*m|'VTRh$ + & /,5w+ɔw)t݈Ҙ~04== ^e%vw?\E̊%+s +g;Iq8^s#5TQfV MyK/6sa"e,|5x x6@7KA")|dKy-B*{AMb9? "N-C =J̕ +mrGPMo0t1 F%@m((d\e37npLvC9KA[w믑dc  gT?~roGޛ6N]fhN:M֯^̜w^tVI5CƟmH6~ؗm!rRW7cpoc|ssCCtQf\6Rrkj2+ t@A7ȅ9!:ǿWA'tfҡZtJDX~pn-&*}Aۖ5usL)xI$% a%ē;[Yal8^naêh^ Q.pU2*DzlCJ1q]p';l ѱ~蒝PS_>t9,1@Uq 沒Q0~qw{@ A! , k:Pv[ag-'z\ްrDC3;Fͦ:z1U*vTl k/jUT/v_T:Z-V;{8?ύ \RuhkKѕxz>JouYIn?bQd`;[ll@Xݫ@{Оz*@㟻oV>7\Y>J*I]Wk:woFkwy{֩ QSN!b]"x{wL +qqF:˱~~wik9s]T&04d )Deוj&8VWҰVKf?'B >ĺ'ռU.%yf&ޕj`x]tvzc)%ouwߪ]Tf6bT(PFl&"aKEK[K_f^֬a6i7u{Sa/7.g\]#zAbLw=QKZtB۩WuJwQt,hW>5$S.&_ʊ.h2|ңOT.jjgdM{gfrf@fr4pkB);D?Kp [}5urjuBC!hdH`aKڍaXe2_%k$? ܡC I.3Jq I7CMrZHD2-Qosr^ W*(\B5DǓTIvo瞉[du3(%;-Ry<Ƭ)5>t G/ ;^74(3j{(dBOҊO RkҹfݺONM=!gNOT_[*oYQ UasIRR _b8"@nzpI9Oݰ +?ZsYbAvqùr2lTkbHsG>,CΠgJlW$⿴ 3jw&t9[Bt%؋p0+Zc"r2m0i;Ww,6[WVehZiq!;TM˶8꛻%~aPi* n7ST¨W5"!^]%>ޱI%h9%TᾌRS S{ -Ҩ)Ρ3u>9kuEh?`5zr5TQ敊-P# K~`?}E1lyxvPLJ:4ڍax#Mr ;}!`nك` & ;Y :%Z&\5:x)88RAJVz!r&Ctφ?uj}ݸcV@/u' ׷o MjfIx ,3r`-8˼yR$h35L3s$jS5 7\_z)q;Y&;Tdu;+ݬ>T`2T;,/=ڻyUޕWb7_;-~lgq_YdL/P^#48Yz)Rdixm*HltV_L ic!Hrck'?TW eYWjz[9ke;[Rr.ک~+>IBEnc!uZ2gѡ +hX*:gPa9M&&{=4*'UNoL>ޟ>f^˖S:zWDE"E R)!zSMqip誧h1R )˞4W-T55eh86@bZL7Cĥ̂6Xd+5!g~td*P=|xJǁ+7dQ?&V-IM(sjBuy) BIhL:[ףRC`av>xg8$O3ׯ|Hxӡ7mcK %SC gF;N.?F~y.زr- ++Sz%(R)j@ /5WOo>h"5,؝EXL<\tZ!NHR +ewQȪaSW+he+xcZ@On s3LZm2R:UM4m$ܯUw8huƖ`ДnQeCFWu`sPpfꚄ +AI/V욎7 AJ|MAqjLIZճ꫔]`WP3Z?\Tk b^FT/lBIl2*Yh*Y-K-R)uIS!ќD + \[/zsWg;e(̺J :m;B}nlW뭴iVf~GTv5eAn*coTq5FdiϮiUsR=ʅa(;P9*)cmf V@zU3}1LZIk?풰F=J3Utv m1c@\JV=OK>'Mt#V<1;,K>7,*z%?1g Z_0KHL0Ihy#3 { A2EN٦SSf4b!1ȥd_4 CF8%=냮I<)r 7(5k\{Tw0#Ebno=d0nkg-/z#M(!yQd܈dzʔz7 #ȼLV4_R'rĦp4X]e>+ ˮNտŻl/ ] 7Ͻ1AL^TCA|0}BX,;[к",{w~drk,0@oԤ=>;KC9LX&^򽽴3v({'0a,8pX'7h,_6҃P| wǃ1EP\r,ǃ2lrFg"+[DD >jV1&9^O4c1̌Wc&l1)Uy4b$T9^WG82{/sOZ22-~Р&yT,UNcBWrOih3KfkM[M~M_+|ʲvz]Q/:"۞v)<'~Z,AC +{3O̥- xq&at)TN; t&W Z:Rr]QMHQEx;8='pywtkZ>]M^Yalƕ+=ڼ#r@_˞X*Ɔ#-<?ZqZ23YxotԼqrY^8FUAmz1nZ$E|ނ0MfgPjE ߣR5ȴ0u@k$3U=!]Ai5ߣTіadlFYz8Z͘ЊRJtXF抙里_$gdlDVArV\ud+ǜ'e6]* 0,]謝5-u<9*>\1fH%De7=?.ez +b"(tP.8LY{pI6ɣ6T\Z7ڈ}O:tNX| S(7)] ;78辚.䎠!`#V u1Nbz<"M>RL +Xv#18jjQ[7F%5w +l},w#oq܋\X!H\\H=>5X:XC|nw}N|"ګHNp[x/֤{qjA,/K{S(SsJ@ԏ~M~Ȅ6;YG31_O9bC-1w@bhNg}z{t +Ya\;ۡ/7DƜ%H}΂/P^;ȃI1' :”TN*6bRl9fZmVSF |}ۊivmURJ`2EvQO􌳺e&o9[MS%T*kb}C<Ѐk~E= fTѼ; 4s4;+ +kex_vJBVip#,k,^L 0{dfD:|R|9n<_I@ܷ.7^tu#śRi;˖/у$L{Q]NΖr'PC*L |d0eIyAF^l >l^A|zNlѤ }BҺu^Ij.ǂhS?6Y4nHwjL#8WI Dž{¾F%YiX:u(arcp +&^ˆI $2(!(]8Yg*$/flyE-S3o¿Ikjɬ9}\BTbA4LEtJR;ټS@P0`^j3ڹGJj3qdMA_3toG{5,x0ױvar2e#C%)ä0TX"pJ /`X iFM@ndN JtpQ4Ô v#Z#^kᑒ WBYCd.;P }MmD^|3ЬCt|FzJ9|.Q-.⺣S")iX.(^fye*;jY ]z#b.uY@ e}ZwƝ1S $FR|}Q`3p?L> G4iVf*]ve;"KeJK͊jMk_)$ׂ\Y_A:>_>5v Cp +(CLmz(66(," BBn*ʙi*a R=ĹB!\/dKҠķmmJܡo8 ^3$x)az#$ߒe$-vOs`A{߲g$i= Q~*k$i‡qHvsH~ +Yv!w.c48ܞU&oaV7W/NrYF6IMEe9*qa6 %=V !?Fər#r,ȲqG1# TGi+g@LdĬYm bWJI+iG6 [2T9-BwNQ*+5e@'NӨZHdi-놤%;ظ>=;bu *6-r0\dxKxmYM>3u,S3řl3.3Q^N GcU܌ ҡH@G&Rs=,l|5y$eḺ(1KPe1 7V0%(U'ܳx¶hДnD~f5Q6{icUHr^=v}e]5bR?K'UIn{y?Ѭr`HW:Wk/W^mRTk*N]v"3ܭ%_ r5`YC`)9-4lߋBX[!*d_PWb^7UVZ֎@c䈙 P:6#8j˭QJ9]ifSS֞bp n%y["u@f̾T4K[O|#/ x!\,S}"E?2xlr +#7Z }Cd7 s4hRqZW^ ca G+."l j%.DRJ4EY?iq9Q},";i'w7u@[RDB\$KTecVq/  k+IU*#7 #&$yRX9c>{Y9. Cu +4"?soe}RF=xgʼG .cbmOo{Z}G|=`⑘tZ]s Q!&seѦF;j@&X'cǕ53ʓ!t-KNrSp&}'2>K;7ӆFE'I,=[·#s戶͓}G>P<{.wPBZ.W9#M$ƴ/9k"@Wfu__I aCҎ#tcf@AO=sk*L8s]F#U>~gZ}_Ov[v'}ks: + g剮zx=dT"vǑcx;({@˝`LJp1y)jM8{Wg5͈DkPR"@g՞\^UJPJ)יGV12(a----}pe1K[4A7]ܓV,"Rn:j#`/ZB җ/_5~*W#ϫP/Af%Vꈋ6kQˠ|EhdS\w@t"C]y}f TkfNB%yQu%3b6JqJݒ9%3eX9k0AS*΀u9!ȄBSVO㧧^#i$e%2Q/ D뷺L?\/'mˋoOkZ\kPdƽ4[ӭ b̉@R2ܧs_ C8^VH-}RA$-tSlԐQƅHDG,mEEYcQԒv&LMgg^ZAI904g9StqT9G rpn 8xN' h8yg †pzOp||Rp_ +U)Lp+$JUVHNSX2s9L\J sScm%.k,A!5]u6hU?4.&-%(j1RwAM'8a~8fƨ(%jM-C!ߣN3f1R _QWmƊGiHn2 ^%8[I+Jȩ\c4&ܧֆ/\7Ti.+@8 p/|ܠ"N9+qX4Yea@fO:HC+ϛ1sn5qT@ZkurK~H$c_ tNZ@萮0ܸ,VZdY* hP42oEk!`V߭,n +W"+h@ VS[ i7E^DwV)xbCiWn$F$K؞WaW[HɑCb Qˍs޷Ih(0Qd1Qh}]*^9{9:4ڠ>8l .dс_m_Q~)8Yej.>J!Wm~+@8a[!-!Z/}M?*Hgp`ūOP!%Ƙp逑FHgG #;F&- BpC>3 &dJM&eM#fJH#gH8I)erL SuF6]~Dj-?M4K!WpTƥď[w3[{-4[qDkw[sN}j>dWr-8O ކ`\?k2LW09\9_@?lltԙjB )G҅jib"{fQ: +m0V6+xI_BLKi7F 뭕唰πvs)23Qv׭,zu HE )PfIJf|ˮkR*԰,15]mMy4w.r˴gUuJnӚ\gm.Zr56jTf͸ u*;Dޤ6M~=GU{SN׃@ueYvg"DHV:ӬLc^K\ti^eæK)ͪJ˲B5߬yuJr͐WSthH!Nf{έ\ H^;{Q N_p`la|K6 =DFpܨśEe\{O'Ycv\Ϛ&cl;ԗ:jk)XyyD1udvE3]h{2ma\&$f-̳ 7!.$w ]GwتBQgt4hBhmEݖf|bLY\Ji8~@JKU)!eRJh%^VBOE[>f%GMҨsZyԶUƯHfɉ͝UM4Df"捼)5U:W[ +&g^X$3k%fOmU̇p!3Da/pm& c;Lb +1 Xƙd/ 73w:wC7%N G!MIќ_@7i%vϔ /mtcr662魋fTVJ1M~ F#Ih;YLJQF$HJo fjM;GuފcdXm1fW} vm>* ͅ 9uIĩyp̉ 0pK7/ҏ(f؉PRBN7LTlM N5ebST@rFiE+$Og8-lĮ%l`Gzo$GA})2N,_ijy퓎L)]IXr⮥^VXLlγ"Uk!mS*^sͮg% c$*9ix~78={-]3R:81+Q(ɹNA!ga|(;jܚ=Օ&&3Mdx/҈$ѺٕHc xEd& ob^4mĥӣ*49<SUO5AvJv)F3Ʉdmm#%;d'8IQm_9DS"UX:ȶ GJΚ+KI3IFJUWy\1NSNxmFlɄc{'y=NFUKfr#KhGvwr0y_jz;sW8#NaY^F>JOʝؽ #uLg?nA pa,y|>jVsxBUA`X $rP 4coec{潋ol2B8p<d +TC  KBi6DTJ9@O!0ۈ8 Eȩό+C4caW A>}gѤ\=/Cf!֎qEĻ,=b 39fy[O im݀ +.[{ϼzc9?^E=="oʿ!Qh\Zy~hz-I wS3>2nZ52Ao_/2`3'}V1\.X7kq1EgZ.ݙ 4O_PT&W8fCAӜTlY^i\.n}F!߉{qdyyHX)7CP*唠a}}ysz/P qmA,E1LCP/)u;[5S,qř[28+`87cXԺḃk_D- +\#gd>6y%lj)Ħ +0@LEOsVL)u&x-GQzWmPOhw=XJo1Y" Tye] S zm|gvn#(m ٲ7 CY|@!K:92U/DCBƯtd%̱xѺeQvfv3ϯ +$L~kcҷ:I]H,yQlp&]NZ^F]V˞ŀfvg9 +t=q3hr[fmp3,lx>>gQ'J`">Է]ɦg +QE $iTV[4l,xmVcs㜪EvL46|vz^_f&Mgi[ +zꍟO 8Rseτ] oφ\|MUGfq}uGэ_}^G8nzI_L0?'+&8h£LuFٍqRNz)W/u 1sh1R}Ƣʺ3ִwЬ뮪4֔wV7wŇGg.Z&gT]ckNEsV^4Wikfu:5WV X-p,^Lͷ3QcT<$RpzFt2V:4QUHU"ʴ=)X wbVE|ǕeVJ7db2^7iK9IIW!VB%>za ʶi8L9?Jpq Ea0Ж&2lUs}? .6D\pނ ]*hNՇo:2 +@/By n^' -m b]r\^)`.}13 OB}4rALrQ0&|fS[M^: gצ9x4H-Wlo$RQ NSON|"+EY/y$2r|h4.Lx[TZI?DT22LܒTK3kK17&K97|2p 1"aaL.7$x-Xh?9xCQˏ-s|O^HKsw%F}1AH&Z 6 d >w L>~nG|ċbԀ9 /yOVӌJ>4C?͓,sNT(cbN?G}@6@Uxb9N RNHa +78|:[b;6•ēxLOBR7X`qJu*Xg؆ mOe1y7s܈?Voըi;&OO{DQA 0rE\'`9WmT$ˏr,)r3z[.tu|@tZ|-+9 iN(KTsTfa< <3H.^ }'>ۓlq\W͜}\J5$zϭXj(aff{,s;)m0 PjR,uWw$\D|Хo [#ָ`J4E|8_B~gmkHTSdcX,ڲ:F/iT#TI I^hWNQ+ټA8?7}#TS4elQݭd$Y)$a=TTwYDG=^qx\W.7X-)硟lo]"/-R? +o8z~*ߘ~czj`tvX#Q+_zFׄpL"awfה#`l^'y گR>!' {M@twMD +c"I\#y[p(Q:X)TSRkTx2 %A^zĶhWVBř6ɍRݩsVo2/9VI14io 7w)%GEEhNFRJ,x5$s,l#F3"kbM;CV]( x+:lox %,*?; +ynmhQ7pjۓ4ZwR{ΟbE"ΑAUlK巶VG)ƷY:7$@&~Jx,ib yDB=,!bgڸ2 X1P‹cX'#߻8L̸u.!I"؋E}V8 ظ}#Z\am,5Goc"ch=6,TlGįrPFaWпT,~Kn +9oyL?E 3wCM;6x&|#QhC,%QG7;9òFˊi=' ̛<*:/{C_ѝ'pZ'l[K߄4o~jj&TJ#TRP0I`L:zjTJ8%U)eU :'U@iGPjO|XUUBGj5B+~xF$N[107ڪ\1ߏ)b)8mZWqG\Uړ@d(bUҽ,Lymc2[I]GM+Z'd<=3ˡ*ZJP ܳ&AlO`jS + t=k~B{7rH9'G]*5Y<]:H Q wm9򹐅u=5g-<_{~g@O A~=&LSlc%{+ kb" Oe.$38/w^Z +_R%ji4՞ G}Ћz>e/Jve;pe3;a{be^ ߤEqbh-݉lxfSS_(7[RةaQ P'y5JT^f@O ?IDc!\:@im'm/bRZ4mZƠ=#T+\.. 3C{Ҟ +mcU +&ĒOLR=-2H={BKU=|Щ>ܽ, n9>_H[JBIPքd>53ĒrZG%t^ٌL~2G<#CAT437 cۧz]I<8]H0h$\2҉k= $8V1MW0p L\C*)9 7vOWAVƿ1EHff`Q[&}jV8+mwv)tP#/-5L߱TT" hxERVcuӵSD6tiEhb {?ͽ/^3SuDO^ߞ30?gt#OyPfqHA#Cbt݁0JBp@IPpPK'`sP Gx<zM"ʜGdSHUak(٪bWPy!m(5wTIs;.nYˇiUNj5H(VD)L zrzg΂lY73􄊒>^|fxLƕ,;b}V,ƗC|d\ds㘮Y z:? b=bwy㱗l'Ḭ7AW2MVDsFh썚bLf#cО\VxX׷0a9X?gpܱ6NHxNYmPb+3^K5L$*"WvLdw'.( *6Ԡ{fz+)܂ઘ#[??NPgLVq4h4=TʲE[N$i Rlj穝bOeu]J4㼨\qy~q{yqKɸXP.DY_1w&#ppV"4McH/GGo]|pm8lRP+0v2[ؿPsۈE'ҩZB TamNqV}I2:( +y]VЯM1\d:u’B^='0%.׋i? ZyFE929"K)J%Oc\*rW5d}狱Zܹu7}{ 7ʲ+"5yX¬7<#EPF)ދVk +.ai;,i_%([: =+Y?K@=XgV"%˯Y%TZ'eU*mz?'쾿ɰB$"`}ׁ^%!sc6Buޖbw-BNh@q,rҚ,+LK%۸ q rNj^DeM!Qs; 8KCj^Ea~;C Lp-poYWﳫ=fXNm! L(>G+ +|c6TcsRsD54֫nySUAW)#rR{3vup.OyFzFgxb;`rEuy Mj pGט# {>wO_dn_&_Npn"kkr?8>kUkhBL㵯ʶL8g8N{7M0o!0)C,|{H-|+Ozw0nˊ},Y,+ FRUkEna4 vb0a6zeW+Xg8Qpr*oh`Ulǹ4_:DR:(sM!s ]k)LNBHKA$CfsxUմ_14"fS\9'9߿:Ӈհ(3)u-g;FC"$"$mᒷ`ԗ8V3J|"E>_0ӏ&Rp[D"ןa< hr"+ڄ&vh[R UJk50EKfdUr/s%ZU[*g):8+e#%رF5Y/gC5ph]֚>)ƏY&5h/ ,-C"UɿEv>}ݜm2!d#j## .#Cՙ))ؤKeE"*N +d :[ؘ;< YU7ڔ/}(sK2S@I3gtq+Rw3B9"ro#$pZjJcW<JeŸvuE:6k$'iA<}7 {cM,^\->Z|:wf2B3s N mU+W~niI_]]|Pk`fa/ۤoInK#ز)7=G'~h߿[[wsYEeu _ + qEI"A +JTI}EDIOz,ۢ W79_-6 4({YZ9[pfSO]wɄ0- C%P5CG]C fm%fþ5ysInm j@: uR(-PCoz6|!^T݀NtJx>>zɾ. o><Ν or> *OyXC<6>+ݵp}8HO<ھ-{nݜbh^TcM%w=+Z9@i +jǷf)=s8Jw>;h\2"h6q(O#ҫݿK_R6 `kĽnQMe`L-ϘՂ/K5b e:j>i +K`F1m܈ +RUi\d8Rjh*b]ĉ-BXJa:W\HThk,E+LwٶlӧM#a&]8,QAJK*"j.$"O^mgpȑ+H⇕n*ivfHZ#)MDy/#\'*1e^0ZpkbeE.pJaÔ.6jX?=OhYM*M/CN_(Ȋzy$4nN&-_ 2Pa"V1OKDYЗr@An b4ؔЬVC1L8ռ +0M,ٵ ]5 duEn16nfJa3lu!/ɑ CT)6)wya|4 +5Mp4|0"J8 +Rv16ܾA3&ϻ2+T@U@RW>MW}J͛U\bbe _)۶voJ׺ISk]+FiDՀd.Lti- +F?ˁmuBdD_!ݒZRcrϏ֤>ڄȴ&Z70RM:'µ}ȝ0H%!HzB~捉mO=+8Z8.b[q3,nf@uNmq+(Sڋug!+O|FÈ +j|Vgbe=԰n3=E=OJ2 LC2RNҊd@̶1-%_9cnoRsSRΦ#KgܺNl}˜7n-ᰓޕ$j  ?ar,F~&UϗjF{_z.n@߇w='VAժ;D7tsJEaz38fYYTwуi'ɘsf +ݙLpI[~ ,B uts2Mٷ! C=4)@ϹpTwYJ^A#Mf'{gmd0,K[q~R}ud6-aIuq t.Ҍ{ +M&mw M1KCt}a1:6eCbN+$&?3WMkp[D6T;m^]`8v'v\DR[!羴?_NCN8SGdwHC+Xֻ1B)<{C`tz%:yb3ɩ{N p ݲ{pJizL1J}YڀY'A{fMxdƴfM|Tfo+0J1>^VFJ33KeYzbp"Ӿ]iQxDOd?8>BEukYj.ԢDQMq)mpSk6h%Ңk}w;>û*QU10%/k幠V>gpUm&Sh%m^ɍyѮ0'2i-kr{(~kT:g/\2X|";TZN \A}+UB>/"liR.V[x:8|<¢[:;:(BGl"I##Ā +A8@]'! X i;؊0꺐}9䑔;TZC,o<#ij |SXCs|55cz +sVw!5Ms;P.r1,bNH\&V0(=O_$BEInZ\u/^V7O%L%R|27 FLݮh2nm]*&޹u%1/+1&8P/ɬ]b;4Oqbި/ +8R:42) t3kEv>[5-=2x[[6#gHb3ZͺL65VkL.. + BU9=y8@?:ӌvdZm1C-1=3^c}1obà&Y~Cl 2 M}5n'qYjSfC:8|-{,wnk+7=ƅ3nߤ;]tBk܊I`lOC=TѥsM9@::pw}k۲JR/p,%{Fhّ(CFy +SH;A郘#V:鋝IJݯRfDb ༄Wߖ<^ F,D!ϓ,E@qWp".^`[^xo (ij}" Ϡk{{G" 5b$DG5q(Pl;-Kn,l18a$k&b`g!(wp_k !`M@oT*/x,UْC-ij)2PpnG), M& 3Uk*fU{d;ۨ` |36rH~y77,dZw=[CEq@1 +Xr2]L13)={TC.bnQE*/ƥx@9a'i}VDLwz{t@q*CM*H/s&OEi~aѦn92st5Cug<$)22י-߫<Z׻q! qg={:$0/7w>ͯ=!:/q`>ķ>:P{l!@>"DFYOaĽ0b{ +ds?Cb"~ߠD GAIl! *6"e6M2BკҚe |3/e9iwxg4LAIdQ4c&ac(i]˰jZ&Қa~Z*R5QkG\O׹fA$6c1]0tM0W}KK{!U)nY-BHO~OS vuoזѣc VH[cps[!(|!W!"!^7M<aC6]9CIh(|桥2P?w@P-秃mE%p?<eEų%(*̷2zhZJ%:]2=Nl*ev p+:I3t9ZJ:sD=UV" X \L =-;6л0ֻ )r +gE.o O_X㧣i2,{2 KI$K<_Pk0Q3ӸgKPfހ4[gQ5[GՑDF ^E$5Tt'ge@O\šgS=+$t9 +Q0`oOPz$u.GMҌ0U648Y᭫言?9TsDt{[ߎшi70A2OW"zay\hH9;\VcTh1tԊtSf4m$Q>SgÿְXDEKRڄ*/KFNZ '}* ^)}iZ6K@`-aF VEZ`^G gR#a+[)Rŭb!&f +ʲֺ<ǨXNq01uh!h*rN۱MFT(kaҚu0̨X`<0L[e]FgSI}"n .jT=,J?P @wv4 ++eHjL~Z?ȷ5yS@Ⱦ?3z8ʨbݾP, p30akʊj>KVƖ֌i@ hG,xsE2\.NɫO|ˤF =T)}Β~0-]-(/YJ%x[]%,X+^h( eۢVG% wc :TOPÑ"!{aS\%[Dʒ` g>M5?6EQB!šmgWX(cm_} +"jꪙ)yh%Z6T&NSlNwhnf=hV5#o}]X$,;݊/E/lDR8u0qͱܽ>I i lUip[QQں|d".Iԡ +N[gQibqP0X"596q־2q]ʦ dɲDT-pjEu?ъ)]qűP )t1 +цKZSR랋Amx0*Pmqa'P&_?tBdMT8;5TQ@=X! rErѾ \zPnVGѰ ONHL*l|:q#х(kÄG#2FZ/(J07.>t\p)㺸V5t5%4z_hM3.m*^ٙJ;*m,?5Vd|IX\]C6LWXZ ++ոJڴlq[Ƞqg*j#ed|2 UVXXC6P%%\MZAǕJ:< 7mFjvb>FV/xܴCe MEmƛjql:* F ٫ilue?F@E6@9ΔmX!ʢmiOδJ[UEf.GQ +8JiHűf_q.lszYs=yXNlQ[o?) $i||g ;:wc^4^8bTոr0̐CaC&JӪ:]?^?Kj{\p4\`u~[f2z%ޭWVh{ Kچ/! |Ӡsdq{@>4U>D{Zz¬_{bP;JC6⿔Btl!RyU>CEl;93'Fz.{!Yɪ-{|߮착c.W.qk608 /DiD'oLt3v}V_sFTιj}ŝn.qȘH!YgN{]~k${C"p {wj#ڛ+|cBAzwko8'-Zjpb % +;yMlVlUa}qk[E7H;z-O1Q[ \8GX)ܲ1:w6ノܲE~#PutI::\1joNf2J.CG~K|fWχ ='#-#ɓ\Ry)?R'UOlopd0~Í+ O 4E=GT=_=5g*}5er*\tSz[\rWmZV/UyٶPA*:dQnfΦP`FWJaIӃ4 g!ZƍY`ts& +7:.U/s?5iڗibILI@>UC@*T,]>"Ô|cc +C(2rIi6 PaʤzBn0zRe!I AU&Gb.GruKcBZNK{Zma:5y$oq¥(v͛8!ͪ'\BU8hk2UB=]Ƚ AVtvI /65-]>W>~Qt +8AZUSi2*8.۴8%fEZ|rq*vAmF|g98MbгIh 1Eiq fa~" 3K u 2!EWwRWDKvҦS|cS6SXdQlAOSc:|Ұ 6 $"~rAS,֦rѩ[ !{X&w}WSz`ZX]d0IBvava1tK:[:թc*̘aii̴ݚYL;,o[(s,5*}@񙷪k0$4e=wͮKHezO?SZ ѴGN):}c1Uf׵Gl o!XT"ѮO : i9Ol'/ēEő(MkJ5әLA!_qgN$eTĕjD4e.v"T fåN(3{ G ..M(iVHDnD;|Ywt$M5t(G4#|Vq&uˉ꾁V+Ʈk!Rz.p™vل߀X](_xReYl#w#gH%Һ.]P%E愺Eļc!t(%g:>%:.=t`z!ϕth\.z1H;.vb#,=0't.%s D?=@:GEs<=HOϠEQ{:Ϣ;1ϤtJ% N辠 ϭN Չϰtb%V֛[vW[{37GilXP ++l%s~@]{E=. %wbyoGz>J zDEwcܾێjpwYՈ_ y6$w]qiO͛H/__w}7z [(w;WT ܻ~Ɩ뜛_|KK)+KsX|}&QCgw[yV3y&۔s\}~K}x.HxR7"8yoԾc%qɷك"$0`p?HSp訑591 ?#~Wy7 +z&omJqꠠhl{Q%>߀ғ`ڕvK"xDS"@peN^*X%Hyw"(\472ǖYpe 9W V A:097V4M5︝Zw)3oЬ?"&q# CrE/Y /r`'A ę~sq68 dׁ'IdHbc8`>>7LG)qdl֕RJ.sV94vp`V4 )1D6/j_쁅)[J<ʺ +Xx!yͲl0m%U~ ӎ3)h ~wEmy׋i:;+Oӊq%Yރ/`6 \A-f +G +D>TAm "fY-0Ɇ&1D9._N-ƍ +V2@l=ZH4Nn3$0&H^0&[[f~0] +>u˒c,]hjڃgZbeQ?ﻮr(jC$9b3A؃SKa` +供 +`Xjs^ r'au]LU"цS-#鄺&y|#Am 0]P^md >HO:2V^0hTD`B,sߠ^@jDyM$`nyqI G fU? \|Tƺ֢e< 7y5i>~ + r6ȵh.J +ӈݴ@q ȔPa[@55r2Bچe'}#d i k|v; ߥEzz /rB}9T0Hqkq+1n5Z _݉W<{*C""x>1@p[9k{ӳa^*.ЩNV!O7uqAm¡5tx.-5ƙLfy D;8Jh7bPr.vxA717?.ڡmg>,K?mT=}v +77ILۣol̎6Y)!J ڑuO[$j Y4㋩:3VF$j[jCF=@hWi3E(Z$ӵ"rcUu-;x#$it i%6$Xqe8CZEMu,Lt2+G8z㇘% +a0|EwGFZOG@ڢKa4ܩsmZ0SPYlC8|ϕr ʥߓSC kWO614t;`ͣՁ{=z2d|-Q=){9qK=/;>p7|𡀾7ǟaK70`ˌ7"aK7ў^A7R ٚ,o2gy7Pz7DW̟՛=ɛ5N:{?{@?C?z? g펼۟?zOΧ#98;(yKG#~/5Ay@1SjاrrHӑGjīO{ G5m'=w5R hy8>Y|=>5=}}L3&șOf4ܔOJ/?o~ ;GX?p7=9V)-:e/{J.{,z_A-_;ȯ_nn3Чw_v_wWivlx7>yҧ1H~/۽8ivuPd*ű!Fv rCj"Q[Z(tLM,>WէFQ^!w&Y9jL$<2(3V3#=ϓYh[-њ,>zT[AxfnIQ)<:̄M +TPAP"\9E~_#/6#\.0-7e/v0٠fI}6O=kku'+tT-tӡt}plՈ?1F\/`L ڲ!E 6c1]s"FXsj x98s΁a&nxוw?̂fyگ>f4.'4PF&Ku=RPIO w&]8[ 7䙷9'je_v,1wZ#dɘ[8Ë&_|cm`4r Zw㜘L "d%JR*ʠ7Ƹ˰-1n2m;nQzI6 Ժ?f9TAZ>1feߡډ9Nÿu@4qOmgۙz +Y>%&0tϿNW[#{Ҋ}dS." L(97FBߵ%![ER{C#mnD+&0Fv4j~V̞|n[ŗ|?X7K{ls ץrb%[HNqs0"0XG"hS&&yL/PUX1OxUJ~+#/JF+T%^)b6j5B ow~P.wc*F:u .VT ?\:spdI9!|+R}؍?˾<}T _`#>FRkhcIrResDa@pP䉞öZdkIK 1k$k煕p4ٹS nXQ$kM/pWZ +쑷&^XAk&!@j?*k 93PdP8IڍT}'S=SJ$ VD+pVt}QsR/=]D`zEXʮ>%\/ggP`69@#1H#E|&U\1h5-f#@-vԢH!%~($+ӗ\؈%H*䴒%h%KOOZZm6?twɡNJ[@Vf:S]G+̹< +tr֡JJ/j2X#$0T8@ WnĨx㖧3fn WYWO%`#UJDf,O : +dRɓOșDRIMS)*𚪱hTʦ`XN'^'{*&e\C\ۧL뼄/}9U~±p I&uUM{ǝ, CF{^DO ھ&סb&̍@ #}Fֆc #"r̈O9bʥ gQd]!qWTzgɍ-.)1d?*N8`f*]4Cr1mZFL*E!~>eb535ybU B*}.5 +Y< _bN;+ dեz!5ecһ;*M~lbogZA8}I]XhJ1_2 ͻ*~!9N\7˱k5R+4kW s@q0:'J_ל9%_klx"]zV>T۰I1M/GLP>rŇ:a#aPIvӄO4Idʇ|4!ULp\+;} KmMXu(huȯa#7a%6Ӆ< ЅgWhvΚyI'Rk(uNAk{N +tt̤7+Dv'Ѧ7>jI鍭N^myoQ5>)MMpyJn8˧f{(X:qѺ|%_i1$_bGADDL`M!% }\D@3 ^|˄D݄`Z?p}}՜I7>˵sjI d}T=d<zI|"K,Gv מKĬz'j?oB|I Jf%!3'MoiWV,]1ZS/9)LT8uN=ZS:} >rhBc;:vWI+ ?,Neua9:;wf\OwC>3 MWrHʯO{6ZlkHÛigu5ŞAQ_E/ ,R-xf Ʒ3U|{[M&O4bvD,yO4{+Ok%M\] XXQa8>K_>' |Ơ 7>a~H' yD)Щٮ@.PSD#deEK{)}{ GɜB_N( i;*ּTU.W7yj | >? 7-J5ٚXAڅ16}".d4{"Dth FPL(:v bQ5(* +ƬV1hCLjkwHH;{jB/) q?zp6wAy:@eVLe|sTXX]Nw#"0(p2LҘ 2gd/=|HaTngpd3S¥SO(1fQa~:f;ɘ&KCH$L+'FJ>ncW6dak>aG'4P"S""uhK +mf}ՅYg֐+.}{ޡ[e)Ӆ- jb8"^ꭗg/tme0Bl(1HeV,ۮ +It%d!)F\ۛG흧Fkz.JEey>gH9! _mW(ΘWCDLX+D !y jVkNm5J+ 1}wbi-m]-6hCM S8K%|׎_ 3(K!(< .T/N^` ŔS.(;i%Q ^o:xu+:xgay({}}|od~ɻW还TscCFkn"z`+W+\qϑI=x nUWuX[a1aBMB7Gm=<7⫝̸ۘ+cr'K| U9E*^#Vqw(^qTl1S85|jvR\vd>RO4ؽ7;ώ.1{Ob *^AT{ vͮEi35="*wB?w@ΊCg ł* >Z> Z@@P8q]`T8u*IV TgBmxJ;*Bۢŭ}F^hiWƽ*V[/Yr*5CgΚiΚW6@/";vLWZ[n疱^czկ<:Cj;cݕ۟`\vīb}Z6WTmON.QZc*n|m)s^ ++?/o+?\Bz%iN+ _PBZKz¿tb"|XgT,-kU(Eh(EJ/:v}*(G^?D|tG]dk*E䯴+Uݙ{W}-;5}JU~o ?*%c^lcL2#}Oǘ0sUu<^e]ں(o/<ٻF-U͞קa/CT?n>[P( r _Lw=ܳm ?8xzpg 5}Į 2bO с-7{qчk h@߻Fgㅃ&R|l=7"؏1G=+,nEtÕ|>r/T2}P* M_`񅗾/7K؋A= @.k -$iH[=Vr?"`fMm9F >9rT*.@V"ܩ%V?)@L\s)?8WU?<[}}CE+pS^~(ʿ |9,뭇w(xr(Y?Ɔ]1`"14.@5@ >/=102NU+nY|&MS-Y?\DԂ̉?"Ƹ8@ {$yv8;xPP wFp{5%>x!|"yr̸ +lȦG6tB4{TBx}t[Jl Bx};!~.%ٿ +aZC6l -p%F{XG^>`#9;pؓ]%¹uH3)F{XMwȱ4KZbǩH @){:cH5ȘeboLMIƝ,nƻ%{mEkW[YX'V'&88;:X:[ Œ}QbUHm=q`'~vY×N|lӾ3q#g@x5a[RT0c/.<"k mZ΍ 0Ę \q|+k2;uVyT |qSa +o\͆/ vL-*ҹ *,\,;QzIi&*,hQhy e0nTdǫ) FhnMGa%NŽO/PwZ -*hDУmJ`1S2[Ӌ^zڿH@کAg Ү3ko{&npsQC~9Y]oُ.F|z{)s"==Xϼ{ZbMy|j+Nޠ޿|}oO.zf!N}rޘ,޼>}&]^;<ӳ>lۥ>p""ϐ^A; Oi'ɟ<1OboROM|S[~ooE4|XK[cu&M(; +'f;@4QcDURTX_Aee|fS\ܕu%x ;|S]I|Ny+^l I|ԅQxO|=ދ+]ȗ|~S;mK0A`TH T1= `4qDRۈe!̨IVaT̋,`Hd,<10lrXb 2 +4cFim oN*)go.Hg0ErM‰dUL&Y0",m=AeWn_=ښ嬜eZ/(y^b,\LH+.Ƶn\1g,8ue Z9N[ؐ!9^@d,6[ByDnD,FgUO{0wF.ќ?=ϗ&\eµiea,A.q4wm,ǻ{]xpҬ[ #6mt.İJ\<o +Аv5|mZ*ͥ'.Ԧ; ^J ڰ1q~44C5_hZN@zMKS_UUPF]V! 胚_wTSP5  +^sʔ5dΨЊI~WuqeZoiN̲eP[C\ 2s&f`9z@FT%H+ʉhЗad+c dF^9h~;"A@0 33cBl5rPmnLQ6(?!+žX.˄ЩjǐC`hV]̧,њ"vذ5޲CMִI\&XʤS=s˼z ̪yfQ~\)"T3&jZ0f[VnG$m UtH4t*OS]NT FshXpl')[ԕZee&dyaLKB$q^l3Vv]p2ؚ`⬺B}yo MqjT&IdHhKțȔùo\T\Mf*ಆ}?&Ž̡<.eIj|Z +i,XXL04:Rن\߯;ZV]um [Хy/ӂ)CZddA((?_Ks&RV駚 3#}N #A6 P"ߦ.PىxJ0# WOL1xMYF}:%rGދD+ -U8e÷,3sv:ZIu=aT!g`r@j[Uȷ*!i.yrJ|e=#Ԥ 6V~Wkd`aXՑ02)r9%J*ee}~3CFlCs7ә +`( 6L^ZQ.?bڋ g~y!^E4F^xUmJo3W*~.gSh؉ 25uٌN)*&nk~{RhSz-]fv&?1L6 \-hM> <ΒhN?%X2H1bt"a&3ez|sK٦m-+1,tmyM4 xi]SCɦ^g1kX*HҜP^WiXS|ڙ焉U|ۺsU.)Y[V5dW|]y w 'Q6QESѧ'Y#TUSIjeLK6bn1bȊ'<Ӊ%t'Kno)xڑkOxBLZsf-yS ^/FbW1SLZf-~ ^/Ŭa'XѯYѩLR{z/C幏 ^?{<^CEm)E[9j9aPv߆|Gn';ޕ`{>_{]OvwO?+ +?.倭*.̱'$ezc {3*pX-g 4e_ nK,nL1`K{w^ȥT^^#pb/QJ/u=*.1`` / rsnXZX"#Wn!Rnw%[Tbijb.b2i4XSd})\"xÝ 2\2Ccyxc::R9%MrI$C5w^r?羟/V3Il7Ɵ /1uQŹ 68w%2dOcZI0.-N];y`7J0pZDY EfS:g*}kj-zbpE9>d5c?*r}s5ak<'Q HذY9K4jZ~` " te W1fz1мRޯԻ 烜U΅Ȏ{@x?}ۭ Qo[8qVrHfO("Nn>Ѕ.7&Y\A8`8m};Lmñ9:gTnFz$ϴy[c[p:ڽI`:ƞ%[p}-qP*0*O'A FawEޟ0{ a`܇>`Ӭ??ʶޔ[b:EX*n `vݗ c *}eLi +6skbP& R6^bcilil^4s __"piAɶ%1[op>}me\'2FPE+]1(@}ɚ1%IW@zc\{&(o۽xhm'}j<7E;} |5~eAqI~3g #H}4HYqRwb_يZWt +'ga(=r_>3Y +`%i8]>@( 0%>K}d |1K&b!iً?aKGr6UD_JjIsvh9al3n;]i< 1th x&`g5=Βh@uZmD$wR覵*CM ܱcjjfYCdѝ[A!tA)jN;t.(]Lb&|0Ӭi@}Ǎ+5z 9ח~WUyO;S:zxv"s^*4R#ǥpWu-5SvyK'rF7=N|tk&w= `!L z8Dsh펐hB% %=|g~We˂c/~VSeȻ"m7 |$;b'p`O!׸9~Y1WZ~;F,a "Oԣ3;C0jęgK*A?PsG @W^sCxN*ʂ4hN$I^/>N1&07$T;LgdѰx:w.;NH]Xm;}sD!]b7df;jLPp=gKb|1NTb|]h "Z^ହv-+๫1755FST}|j2 zNWU,S@nWu;,,48442)QNpK*\ugA oCwJ7#]_7^=8_7nl7_;%t%`*9c'Xɗ_g6A c >%RF3hBS .y|βɱQGc8* 2G%זWq`V| gDH!](g^hʤH!J^B@ј4:CcC%ly*s،NX~f~YGih]ImT M$z׳Ft"?]E"|ٙ +Vɩr%l=K2Qz4zB1sE,dB'aEOQ2k"T&v +Lb"q]ꔱND>”noف$7Gҏ/T +W͘ Yl C4dEڥY F"s-sW2UdHr;TYۺduk_d +71J{Yz[foKPuھt9)9RjT[nCji}!>Y@h`ۡz~L?.Ms[orQ'0+y6.[)KQߖYqem˄仭Z3[q1 &sX1 mJТ4N/Z-=1QzǨn'G*w6]I͐s.˗I2$I{D%Ťh-.n.#5-qJ$kj:Xv VNUcyԳHvz^ ˋ92|2!OfF"Z&b)$<<;X#|/`Fŀ0Ty65= l >h~6p 7!ޠ4(bkbOsR:Uu9ZLGpl/̜߱lI>-]]5 +@:]&pp3OC gGLH^6c͏43h. h2) )'01fu 64P,fh$W> deŒ79+dO- c!]i_NFSi יV?$1Kvw<tNbMjqFLMp"WM%1I gK2.41FEJX-Pǧk1UMa +3訠F)>,PVHj Xh0 QsG~kzԍ ]4B\ m?F4\|)@t3 US?ANv>JwӕKb> vs[zePa `>w!nˎ7KLj77Z,_}`b!~,535Ʈ[ (/loCX;s:b@dL#oRv;b|sfuMnYGqGn _:R1YnUv-1KJBWQxFv#N&#j27CiKʟC-RZ/E ?Hc,򆼮S#Sza#A:kr!QBL:5bB7/7(%,2wX=e|BזHp08#"E1+43P+aNCJYﺠ-QeIM- Y<9B0 [b@y^ZUj9cB^ZP#gQiRå}18dDyZ.ו4KU[֥ϘjUFZ;GQ\Tt<# 2Gfp+b([+k67 +a=`W&3zeC_ߚcG0/ +3EDWx;twD90}s+xS!"uZR =r퍤G#*G +-@7܀7Qw>g^;+~_8Be #m8Kf<ռGY&tQC;ǰAkZ}jo14 3H9 {#]xe $ɝ!5-Ho^+>Z$碁>r`>ğ}s(/Y>a`̻粖'!‰L R!:R~)!B+ܡ 5(ECG RW/) I*̴Z5s3uԮ\v*g'x}/oϿ }3> oFMt*|>Yl;B͈HjRԇ4 ;?^X0tP%K!zD&^܁(j؃#Hf/v$nNt!N /y)~5?b+oWaë\\,8meGJM)-@q&f§L88)֚[!6B+  }ɳ#ϕZ'9a\sw0$vb{&ܠS@"̯| R2iofaƮk 6\s)u Bw/;VbSq;w~~%J.0%J7_a^ZiKvnё݊;Y&ש ʄQĨm1 '?-JMlTeo68۬ -GITsu,>FZe?ZY\N,4."j7ks% jւr.Z~5W87Yݵ@,8ڣIuka(BfubQeyT]hoY +E}kD4Q5WAaf&`SclIs&2.wףM==z,:lɂ>&|+_P>=CQ`t?%j^.0)W_[v'ț.~@u)$=;=p> 00`<CYm*_Zz_0y4 7y{Ӌ@g/eе1 hw:x$ڢ\nɹUw{(D8]L^uq=?*^C8 uk+_˲l ݊ޘa]&]/jZEj:jrnCjILw{KҍIˆڴEP +xVZkZ DrÉjC|~8,a NM9|Tt*Au '0?+Dm  '!f'Q(ӌoV6Aܓi9gvRX%+Ş )$`)rF [ȪFtz4: e#'7 %'jAE5K"ءj/"McqQQ"DZ,FsDsDrViV7J$.CKN[=/+MzGPjWLJ]l"L"g4Ӟp1MH#xd_?#I}x}hL<ž#nQl4Ek(/aK k¦ ɣRizCgeu>J/51I!U ;^Ieոe>EuOhF'ǍIp3_<jT+ +IHyf_Aok%oKYZPWJ<ȚحQs ^{\\-zOK&ۓ͔Y!?}>W/k`ig\p>AוN7oŘ25hT5JT)7Hё^{dLf5ԃhoYQZv)\\>ЧɽzD$˕sjty: +~W7BێԔx,'~@(z塙?(n`Pj~OSrTCf _YQp;' 3TJAuLǃ?4@7'gI!O,)]f0)<U?!"`_$,>aa'k.{f6HT{[#|{_Qm~b<[ږ۝Lkr*ys,/(?aZ +<o4D HXU}6k&lu\7#7;}⇇Hiu$%8{%iz7ʼF3k/d"xRnaҢkt9B٩<Ė_J@@8zۀ$|D(RSۊ׊&XJ| +8r$8Yz5͸jI* I'*3GɱuwUBI/vb҆.1>alda>%]ap|soHsa<coڏHHdX֟wLY<ܳZvv-2(w jfctc@X4Ϲ}_ح5َ6 C6?/q?~u|Iʇ"[lPIPHc\?V'򋌓)#|0J╄uC+ܶeXU3󠫳La E|[8ޟ3Uj=4"7Y]]20gh_񻼒 yDx jNܤC]k2R"EGxWU"+댘:S,mAj=4!V$-P>]p_7ˍA cgP5뿨.Rtm_=aL)kڔkwy}kgh$zd5ʇ}ot!ۑ{_ l߲\_RVYiB3i^0v3 ^>F^@X܇"{f''Y{Օ66jaMoD'}esw]䥚/p! GOGؒlq/k&gYK9H}1c!@s94m>uD"womJ,:.q$f2~k26c)X'^21t1sqTU$9jSȪ8e&.P- +e%B#R!@K&2x2d ݗ迂t+w0%9C߷?{G_;_G3 ^q Z0c#2r&#&nlK9z<Ú9ЄJ9<ïF`h,Ǩeh3I(3UAMF$6*&:cTeʭRJI(SڂV.Y_EC+C'ݒṰEXl&1gBf`ƐлL}rёW(YZ&ȩj R"O48:FU&\Wȧ"xd&l_(1.5m۶m۶mkڶm۶m۶:SU}JӝT%#)nCY2Ҩ]8'I*%;7ehK=WɐJ F2̨;Sޢ#Cs:%եD!veľIq`qg9o~XiM6l=`0^|YG1p1/EaRJ"R}̱L\iqE#woEABg]TZ7,"&5d[U$ez 'Κyɉ;3Q*3hsw<$X8A1Hد[ɬR([s]灦3$X@$Rry7q95+ *CsL 9^RPE~KY򥘉SN3 &WoԵYn4|yO2vZ fNpўql1va ?Zc:\`ef*K&y֝ˤfG-%AvULg&/_0 ;pO73̓> +ugBS +/eKMCe wh l|+>F5s$Qb+oZAӆvtB a6~^#A8Q=P)#VEY6:*!5޴_8S5|J8r$#P+ +@EJ5"C+ 8&xm$Z_;ƻ}L3 +6i!]Te1"H#U@كn0n:&ѧEc=9G0ӠvH dܕƒCd݇2]!d(!,eI:=fåJLƌ1 vpV^jyoCݝ{x_%^8 +9-P܈SýBz?eAW8%[ -Q+_>.uSDFm ٳa jU7W{;Qա(#!V4W\A_19,VERM-rϟ0#bb޲}{Bj)Fخzvܩ@gcUn!ڸjC6ivSb +*ֺ,? ߓ&&[l;! 4.V-Ij(X#m(A> [0/gKEGB>`9fS@,MbK߽Sڞf'6glxuy$jjd>h hN/0&YêGO4d'I)U 6+g/4,^nFX +C.G 2 "3ؼ: Հ#}RFoi0ܡ(O,J4+.%^]MG`2ДB0-o$UbmrS~+6NbIB_I؋)N_ \̃"-Q%#<QHHMoˀ"ɠ!cf.>ܖ>(f?T8.} +OP +d6ΰ BaΉćuxys֕^7{?6FP[/{j4 +{Z(:b92C4oepdD;A(ߛRzau:%&$"ds|2s] ߇ѴF}"rI1x>lEzs 9_ev|дoRZAehz 8ڇŘ>o7&kr/QBPͯ:ÂP@)LO)DbE~zQKcOe +w=Sgrmc<,H/(R<TI҆;EP}+U&XE Ӊ0`fe|s:F6?-o; +S%Sbv|ZM/9DZ !#dǪ6<{{9\Mewu'~.7=t;HWAZx ں"C5/$Fn)J8>?p1U>4*3jRRm~CnOS1J$LӵPsef  +%1MgY7.4v[*:I5wa0@!gClb4Gr#, ta7/RW`Z%R\VwXLG``뫿_8Մst/Ú̮X~mh>(QQ~F>3tbG`uy$KG%:G0na;f}(b5 $m(E*,U(#(Q鞿~cnw0jDž fx^wfxNb~+F4ڃtj=9®SAюp·5ҺՅE*4)qgEug+Ú+̏O &eA + XhFs2UcϝN4d_x6ˣi6Uzk)(Wi:U_QdlZܵUh7~xT$ejF7l6]LմP.OqӝjJzُۗnk5~P@C q$d;T6.r[pJ46 !KUF)e>\23J"]G)X+lPK4Wm[0U ]'+pzLTit+3!=QIzkԨhcU"T4SIU7+=e`Q)[R+B8 ]uML7l?geyMmSm'6 zs'/;`0Ng#܇8J爤[NDG;FA|k:wF~eZ.2h8Kcu5, 'TK EXe( ƞb.'N>jDP\k`:#pTު链hq؍ϸy&:٪,t&'0FYіѥ11hۥ vdifpq>Rrߐ{>o U +nt!a$gS5 K PY?uhYw3kNo:okJ( hwT[mTA^tEsC h`BRk)kW;Ɛb(rt읺.}?gz&yqw=ϧOҋ{ೢk^2FlEdD7@"qbY+'oKЏ_ӊxlpqxȄlpIơo⮺U#')&/T%LQ VSNZ^44Avv9,3 ta#{ ?;H+ ak)'f~U!|*xd\7l])j#~(& ʘH(-QQrjT?<T8v3L.5JfW0J4+<- W = i%T=mKw{c|ZuD~kDJP[Iq&蘉PKw&AvV_P vo;(o!-_H;jJjo#ϱlGP5,jd_GLgUN_?炅LX{#%DXa "vԸghooH J^`nA]Pۘe2G2$cl^v| !JɗZm0ҝTRB=l|vMި 4;t) coRؽ,y ٸ.մrچ)&5.PF%o3ڐ[ Ϗ&3[O9ż%9 xhM(G藤vHZꏕPyH +#/j/9{/o +woDlZ@97Jv6FF&NNrg+ U ꈹTEH8LEN̻|2{ 041è3zݬ~/-撨zo}^}գ  uc&ҫ?6#DUБ ֨Y)ÑԺ1ÓԺ9 ൡ)4 R>MO#ѻXD<ROy%1 ${(_X#< (hi 1@ +4/fy"P}MI̶&NV e3V(˧7uZ%1Tt  dJu{F;%af.28 N +Fg׵b^·'b^"1{'c\!4ޭ/5v3 ̓BFX )ϦJ,P mڌ +%-CU*k`F絪6[QX΄S^b+!=q[KbsL~e@S!B4,4 %V&^hrvM/,Al%GD` "caL<@y=* O=;uV2RmL &ߘlFK/)ʚ+UM,8}}r$α"83Յ"3˲=9f17 Υ[8ъy !ъenixl]&$ +' ^ a`Pp+<,ºsN60K@H Z7hUʞC*(+vu03{pZ5,T^Iij߹5 geOBf)Fv6 +ybx d+T!p׺*Xᥥ4*8 rCR]s0FRZOhh`a6J%q#Y`,cDc/3њ`YQDEu)tQFJ 䉌"W#"9`XQJ&É[[aҁ7p2t7`1uUNxEe1_z&QĎƨH&AJ3>ظP[܂AG"vM(m.梗Fwdb[4FXȂF9l(QAG1¥uɈfpeDZ+%Po2yhs!SJn +-< ŪY*GW 5$g/ v vG^+`T$nTQ/jErO bSn_D/T+ُ +i!Е<~h?+-R=H[-Kp'TF!zlUBp.%UI0Z@rZ-Gգ,⌨˽DugRui +#Rru$V?U66(T]5I|˄6˄ֽ\x42RG%{`jF03|w/|ɥQY]Wc6aO7D +}`\QEcyGIWu`\KG֚, ta +:kA(x)x- q>6[ZPTb +< .;A0:q|C!~->X Q㈘5;M!~OWUՕA{A}x le+ {liCwK_NX\"F*[ͶSDgp%8BY4㪥uN`3H6zt=/ڜ\gQAgSR*mBEwhc4K&9kYǶ&Й ƥSuKbva~p԰yI6Ymz3 B)SwX$T3? >cBwRMaLvAp 'pp Edrh<۸+gsxgDBv/\M=*X\pixg8:K AQʒ =FKu 9\=v7 WMwD%Ղ(7Ω>8vx%Y _LwՈo$C]&"3(,I9:t8< +(9Œ`SdD5E*QKhF63my$'VX[8bRӋBptX#1*G5[YS˜KU&!ܬ;'@֯3R%ECf#G f/Vݓ3M+ +o3Ȕ!ubfR#wUı$`F"KZ/VR!RZ3 +US+1HF;;hN/C7ٽ<73XaRJ& -&宁*9\(Gi_ٽVhE 7Њ+7&ʹЙfcֹdL,adV[I4V; "BY}g 6 +4+ nN9(k\o15~Us‡L{񩎎aJU +7şUQ) & EѵR\H@+=t*q;G &$iK;j-;DK9kRA1^&(>bFM9LyɘrGqU"EZ#l0t\:`z$ҙ\:p{unId'X"-/^Mt맼9:I%JK})8=h!G T4GY(}4fN +\רm͜D. +\:"o\y8^8c.uby#J?tQLѻEr^u dx +;댢ܓ>;BrOݎI~? l)QCH՛Q_Flq㮞C_N؂0Ƚò+_>̝宜7Z}\!j’.GYc%!Dz꒥=j&@U<:Cs_u]m?S!@fܻjjvrsQ:8iYκgiA?n\]>{IK;{*)/Ֆt11ٔ=Fc%#DШgr:ixHѾ$>hwkjuN_MH`Sa 8kG߷F7]2\555 +] ;ӹn8iDrEIgCK97ω(JG3 8Q섟^)A=!9ϗa?㨙V5ruȽXB\NiCQ(#W+o-G`BSɁ{޻YO|ks)nЮ0"H=:뙻:5Y"MNqb.ǜ,QiJ +Vx`R޼1>tkK*]mcZXTaѝr\{JMx*c-x\BO!M=B`DcNz'C)!N"k0 u4#ެ wx9k픘Yvr aOSct +ҚoЭu@7x wʚXLcĈ )!}|*5KReնyt*>/j=?)7>Kv+ؗ[,*eN~0xB5."O:ML a5_tt`F@݋*(P*CByV4fs쩀uR9)au!t6hl?\İ0oVNB*h;qAAR| QEWM(V]`MW=&IR=ꔆӹ~N1}+ /ɎfN* t3wZte Rx]X=7̴Kpn;'v~;ϪL# yԇzLa[z(iXz=|;d7qDs-P1le&J)OV\$oR~g ,4[d{Xȝ֩!75piQ5IC #},J8 q1`Rox$+R'-rc3->>WsSd%]B-WM{MtReyp*ݓoF~pѯOAgg쉓̙3[W -9?H jЫb' &Ic[ mMk"/֛͗ʷdprw<7*PߖlsD,ه=Kʑk$r`oPy h&6X>Lt[փëS5kpݫn$5#Dۨcqx?☐d/٪=:LI7>c,AsN{_otCQŹFcnmtXw3NW΀ttR73&~ճ܅wlN{D]Sljm/mt0u +ů i12'3?f6)5ЙSg'g =`Je`Ne(zJ>ُ㫁UX_HF-~'eH(NWfܓx3 1-k-0fNygY %)SGdM*l=?g.!/0]LvD'[+RTN+]=Ōw~v,j0{=|):i53Jn+Ƌ^)O̍ /dXh w!ۂȚr gX6?~$0̙ċidXQ#>r­M m C 5;ğ7#jTG+Q]S&`9FǧHQQoVk^{bݠ]k2ghfH4Lo8lTG{C]УoF]ƾ(b^)dKyL PtifJ/.m-Rw-%0ԤJ l ҽ|k n2R63co&C6|p\8иd? rl|bp^Q;}g ˖8vU? Nqj8#)_.Cj2A)Hh?fFB9^7 q<R|xxŸM 9bR +c,{cS%Z}w\˕F.U{_.SÔVZ o 5lZ^LQ5փ_+y=$̨p}w,VhӒQQF$&TKG1jBϟfPnH=1~?m^ʡ 20,] D$mT dE`Y*tj^]'~lEA3/yT950f1ߑ'[x#qjuc|uE˓ ű3К7ԧVFu+Y:|394;3P0gj@E_T[X`C<҂mG̕uT6W+[tnZW4d/߫YN9^{[T+' oT+4ѩ3@(r8ՔpvuEusO`?r">=P6{joH5-WY`,hҫY ^kSEYg~ L7{wű9چlg"+8oi ˙~`,1멐׊Zt',|MP(0nd_ncz6ϒi뺙a޺m-㖘1O]5dkmQ蕻Nr[)b ,Cs|i |s6#K◷zGܟ{̷vZHGFn3w~*{O쭇[~+=(f +&{J''§xgT^{*F˕PW[<_k z _H'}QrR|X16*r"L 4JMF? 76ߴi QYdU5c yj yJ^lotUίnޔ-iCKЁ@ +AC~ E$  6_WmBN~:u 7ΑUh +zwBB:E +_}c ~'G~sg^/#5Z}oSOTnS?;|h/E>(!8 3, zp5[kђZ Up7mE4i<*9pǠ&E h?|wjD+1@Xf}1CW fIzԸ j y1 +ԭL \8vQKhoaZ~^m#XY$ +Ѫ~|aŊV:|_8)LI&L;]%iZIwZྵo BŮ5kGTY_ٕEx t%|U[nM\O ?V_sf1K,lsO3W&C$2hp>&JrB.e0z+\^6^Xͅ}kK X(pM$7[e$ndjؙk Ъ1]8Lst|_}i1/Z4S?-)vF#q|NdM,Ĵ+Zcܡ(h\+Ϙ/-j}h|f'gyl+ڝp߼*<ːi46&Ӭ8kKv?eG}6 +Bef:TѺ#CW/+_b[R?CutՊf5l▖" +GdJv ,CuB]퇳x"*,<9L jq?<Y7<$ 3V}^ HOdadaEP0772]y&1Am"][(捱ⅅH>Nh6>lXohbŽPxО*GV{᯹{\Vrj"|-R*vU wX,w~$HY +w1ozE-1L 4+= +%K +/~/gu=,$b, + ƍ71U!^ꐦqVhe"uy.u +kɐ TF֭$EZI\e]07-qkb|g9}8ZGヤDe;iy՗e>q޷ ;XjJFx8IZ(*{NoTLF" 8%3/d5cζm[Sڊ p7wJt*Ϸ|*J}q/~xKJ:lQ9LԐUor$*ݵz|[*Q b-{6k+{魪c&^ @ `d J`e6ZXf"ё&C%΂֘ᵦ}mh0+ziPchKFkc=jT=jWJ/v. wĥ :#18ྰwJ[rHT1E#]iF_fe% +:\Aktxx+Bya9nA +tR!b]ϐ$k0n'(IMp'B(,(nh yc Tt'Ubh c *&j6H,HB\` i8&6~Fsמ_"!*]y +S69 KsʎN߉/믻X/h,b(%ESS~ 'n{E⌵Wxj {L=`Mc壝3۹P_N-</]nڗa+bKp{ƖQaouM-/UXBRzwЋc-YDPV\#k8; G{a݁Ƙ!- += m3cI;3> W.,mmݖQͶӁqY>H0 Pi4YMlS]k :.gYy:fIO8>: C|r5}$\dj\W6=^̿Sxy= V=i`r"rdo_K7,1愕!aZ٣#` z,Ζ,QdnLKq*f+@s"ͦ' +f?}}}f~ 3WB§WS\\p~sVH܊g(D((g!#cuyC֑%AHI yeߊ,y0ӭ>}bH1洠 +Cn*(r$(Ï]Ctk%ث]CsLtgY&H|B31H>;Su+9f@%&b1!LWL43^Ug6l҈G#KH' j3 zGᇡx(d9-fQGu7zhTH^mKأKt70TJW ,%: +H[a];%kYZsy}FuD %oPkMg}湁l|>[vZNEZ(91 +(Zx[+i?$wZvbJnYr6(]Kҗ80O8 y֋ӗ>ST#S#1(C319|Ȧ,2 &k *xUVfnG5f/<ߟ|6 AW/棓{hF ꜩMya@Bta# U%U'8BG xDwF[)p.Zb̜s̹Oj#_%N22ޏ\kfZVtEז[P݂_I&n?ӵ^H-1g^Рt|@眣˚&NDh(Zӡ#B{~1 +撵isl9m3Nx&1SPHJPPPINQJ* eXJr@ |{_yٯ |,uGzr݈Y1Nw2)bQݔy3݅$}֠-9ՒJP" ̈́%x4h+ze8dR0)b*&;:l4n:o츮FHM3mq'iVyWVVCQ Dpdep0dfdbkvVjj>F>ʹ% G[r +(<\[ov[SQEކ*,f9@Zzgj> %Qm<*T~(^ٶ2_pUwjl&ۉdkP# =4$M R+b,@sҐ]/[܃DM\xHm;M6F[ANIM;ɖyVf]D֔F`k8J +9NJdCH_R!DYInqLSF)KxP "Ûa?%`€>}X<'r8\.}x0-lt{~hκ4eubȬM +^p6 ErOƝ2x%V{=8W5ql,JloR ga/p=>o i\ñ8qùt!Q4ZEAe1O!#ЯG{(s@h2 Zq=aK )#KMPllxSU5=i v q𓮐"KP3.a K uc7/CWSvkM^0U.ɮՋ-Jw+z][s?Zser(mL,Ӥ\.ZZui#s=_jtr/ +;Hp{77_4bȷ.>7AC$ƯܾT_ؗ׭>nY3iS0"`tZbow~c9!.v6ԬHm9M('=g@B+mt9Y@Do\s? L3j&7we-od?tl`R xpBx8~xxvqBblAsiPR&S@`;a[a;Q5 0ꆎ2Ճsgϯk߷LC +OGX>utc+h`c ¶=)Z=*¶=+=7`6xkҶW`-p[5ɺے'-['-Y[:u׀β+ۄ~nkXm1{~ `Pkk2 EYEANp|N$ /+n30i#+Iҁ޸'De7dEb߄ɅFbҫ? $ -j䏔&D.ElX;{6/^EDb > > ޒ&kWP?| >k?FCE's#rGG/K>[do?4sʅfu=*z.~ӆ{O& m#/l+=kJw=[SY0A$?Xr?}3J6y@-w\xƧ箼k3k!@1ompN}_ !o`xL8lx{Ԅ>ѱ%Rw`x{(8pHWĨ|Q$bqR;rHceAo oX|ʭ~5˓zɣTL2|)xӒyNJA0a 3zTE B8nG񪓺IDvVsHSZ,bU(p +)}j.msaY6i4JK%LmMmA%s\4T +pIHOTBLtc7K gyj&*VW[?1 i{ڢ837b2NSDa+mnPSVic@X Dd>c5Ruĭ 3ʴ6/H"X:%א/nV8r +ń"yy|֥NqJ>P>ND9m͍TPQ}hf8`G{d!uYBZ a1Y"ϙ|I.V__ӒTWΜ3>£cs4Z39/~g7W{cA9 F!ME;i2XTI>Jl`"'3kKk W̤JέGP_Z2#TELш^${fCD)%C9s߶9B_&"@ugڂ2]oZy7ۦKdaئYԹh,DA0B3CՃLuRl` QdHU-?I .0IV⏼2]a y"FXFhћ8eXSKLGT@]ֶt+EKɍD[b'P6¹ ԡLj/I$D6[HMX<5=1.rџZ/ ׫7k.H!pPzM``ָ$ « +%;9J)(z{#@s6EI1"?X= 3;>[ɚJ|%?)"].($UPFWSJW5aj+RMΗy Ky[jIX_yH$(KX -H:FՊkw;֖#ޠy0pd3s%GӇ +@`L U@ieأ\ se[Nh-mּݬ4iX%Єw>jN 9yic)}k EXV}X1\V]_B\+]NnK,v#70P33(]rёB/U"/YqB[/He弤S˘'g4N: ;rG:sv%K@!X|֏FT?}wZ9LgmoHn +M"Wjeaތ" H vŠ4'+JWm-V؄M)K#~ZE<^i$(r%xk5Y+ߍ2Y+zg$Z-ߵ>9 +g5جwͿ[E.^")瑂@7:vyE}<ٹ}ک|b+XEGvn8m2׶T4H6X-+U.tdBcr"T +\+cJڇpGSJA~T' 9Kyh/g'BBSrc^Ut) D-/ŷD̫0E򍅭@tg~[ی|{(C-K+q'oOl(@FMd;Vyf&|~"5mZ~Q;-s։:= y(&r_ +?–: +Anh#N*1X=YHk``CP{iQ9.OKl +$f> %r9%y%RYN0^OKϋyҕR9%rr1O +ϋ^!/赙 ;p>8K]w =}&_Z}/KZ/Δ;7S1[ /RW 5/ӕ~;+̓hV"Rz*4$?)Q Zxװu j$*8X%+JrCH  eT"T*X%^{wwwH{s{ww{s{w 0 0!0A0Ek?ݩ0K-)"\DC֌s8x?CyLՇp|}I)+Wɯ4s0СWU +o_Mn@'r%'p!fI,h,eRPH߱E"vO}|B @2BRJ u>8*WUnI25p+M +l + g nGE"1'QO6CȒ9$N% kzDAs~QAoq̋`g2 m+#ibi n^yl,ݹFXقdQa#aU2 Y댻b>&旌\swTQ4]+d]^0m%E eeYe _`?21B{78ƚhزo wޒ +nnec!`E1/Ab``@Q.*c7YL +DSXC̗0[KkIKr,)o;P#MIhƈ8B&L %(1sb%Y'4K%po|b8&P^@Eѓ,̊ %Њ*67cіniY /> +rGEQ %` iSO=Ջ ^M@\~ 8h7p@QMшdY%oMe6@3VQC(2!5^Q p]t jjՄUgR(nma/іK4t|lFM^jTQ@vR]=*odK=1s4}6w5c7FeUrL۝ 1i#|Wtz4'FH32Ti"v F&d Q-n pzug(҄-erZ8t-2 XZ~18ݣ544;r$Gg9u֖8wQ2k8$@,_Gmk==ܧ}f5uԖNNFlcuR\2=He{"!zB.nmur"j_gt1Cꚁ0F8s~ ^HqBq=~|u's;s{%Zz=i=v?rTrv@Ѝ e~I( +s@rȨ&+ZW1)$>},Vr* q}&PW+JdvN`G=yJsk>a6l`>vM .9r ;w#Gآ[YZݝs&ZA ɈʇtɆvVUѼEԵmL|\?~[w.u킃r7޺вAUVm^a]MGVnˀytbPj- >S8l-g)8~HS#~IAV :L+)'`M({_^a\z9qvYl7G3ۗ^/lh>[6_n_)h$G{<+ 7.Ӹ-i"W&=<>[{jsM5]OY?ZJahSCj5OSM-+Yon,ݎ}g})~KfVzmVhU>4LQyTez6(:E`kUKadg {h. +ў67(QU[ZnPH}9\r>;fȴ#U}L& +c͐Re;`ل|U4'[[zzu4VӚWS*ƬP,LDtVc}FH%/5zN{%`t4zr=Zx{- - }kHӖѠvs=(.(Q*mgaF!;U3SBw+ngn7WNW|{,4AA[n&.v #o\w3,Ʀ^~a%,Qvnܾ)A;[a#WW;iVZskv@iYSΌ`D+\ŴW)5^Vga!yR }Zptnkh/A(|lʐfQ8K/fFJ9#[k9S7+E"p@_"wm=NܰЦFYlWhZe@L-hxUm,ny%Suq7ss482̢ii>hAM BA{Ģ:ΓhLuGkM;Kqfuh`|%9M gap*[w'+_%]x1!bEAR.%1i>c>- 5E@MfIGP ;@ ܔqN*SŞƯݹh띭ƄpE1VROm'O +ىHglܝ 앦.M +0 g(O£aa# 'pl79rH^Ϡ5?ސV-vlM>7J؆+HsBf6E({,>b%@k Ϝt<&4-VT."=]LYrfs +^:8u72? ):BsE1:?ES EH >uH\isA2Fwr qPu?ꚴ DZu|;~KI]j[Of:LsqJˤ3~ٻ%w't+#z]1!f|cNL뒆Xt1{wo7@Xuz{S$[!D)W ~X1to`@ =n1=EnB]e}~O$MiAImI!6 jqP%uvஇeU.݀IW}n.K4=>!{=I63┣0&d$!eD;Ś@qIc9ˡV9?wY}' xUg@li5jS{T쁓0j:uԘp08 P<2&{q&b $\/V  +wnp N zM=~Mu{Nh*7Fa1(do=;7{Dced;pZˋDex1{npf`;اڒ]וFxzo@5M Y$$b˂*p2N1b0Ifr + I/SڟHwV:.Kjcc5ULcZ#C^.r6#tj%4 CCHmtHqZs(0IQ +!pG1׈˞t(B8!z]M/vB1s2 V4(t.&[M uBǒ)7Y](T5Wo {07ZXIZqgPW`Ei> ēXM@eJ 񊟻3|*k~y-B*B<4ڡ`whܡ٪]琴 tJIV5kan$[8Hsx:7 [i~ynŵ/H((eyfk;ҭ #dؕ}nXn*%&-1^!<l.B*=Vz ƌ`:d@w>s>Yq2[ Ш)ސ&ʃ}`I@,L +&`N;ò'!6dzoMFK J엹L>U V)2vo{..*H#< ֈduQҹ4'ȯ_Ȩ@.$فA#j/kzᯣPIc0˩!OsobM+?ƥ[9zſOTGNp˂%J+JS MLS32-qI; ܀NpFyˣY)&rU8 T5M׊=wGPҬ2LA͖ %Mq#gTll ͙XehlZ.^ok +{+K^<Sx6՗ 1'?(7C"zeLޞ"Ju4O+)M)=u:P|o(m^[Vp~taew ;bjiXBvN2XR_=XtoR1 c[jM ;[GiRgV?P7?_<.T]hA_aLE/҈ O =>q](Lq ` $Wq/yM)#۠ N ^rm󎫹AcS異SHW7a.{:%'aTFvޢ˜H-d^G.[ne*2.ݡ!7R.K_š!;SMr(Q,-Х}x4Џo()yտhI +g%.W]4JD{Yɺ <3`-肗WyaX|`0="?Sԫ#ne +G0{e^3W aK_jzͨӥ% +]7t$âe +F1[jkӎgvJfHo_`@ns<)R,K*hn~?|ѭz3*f+r !XaRWRڳ +s`x "?5jׁv:Z,4$MYRNP; AucnWhk*B6(Hpj/a<jИ)ha;sl:}c5}[iZ$;asښeuլ@O.q_7H~@-⍈iIn2#7֙lBU%drfGiQnnƾuK_@A\(͝;ԓq_[;(䝧CjA;f06/{$~*ʐ;ųRjJ oү((]A"d1M?^`] |Ԁ78"P> %6  |>;Q]=]"@ [2bJTDU#4a7U:؍-_;9E'b9K՝r9KbU-czH:qÐI\D)1߂fwգdAGwS^"d};hL|!;GG#`R&9} ~/4 `o_\YV*Œ|gFees <^!7[>cq>"nXqx i)䖇ph԰<  a>Z4r&-͞o uRS<=' 7κpWAWa{"MJCE'9&G$@"OM}gRO^aOyuYySv9r7csQ[YYUYU 3}ZMqfGqjGqN ^란7:} U}r0V|v$Nal{ +kM!l 3>\} /W*[O7 [BzJrv|h]( "](v~ G( S- N!N!Nx7Іb7՗|^ Їz Їr Ї'$MћddM[ MQƗ7OO]"/2=ضQirc۞cgQABSA:AZ2AP6A"D,RWu(^WHZ?yBh; -> +<_s5ڀY;R:#y|-;m0[[q4iY2rsf\eB1eYsx\- T&=Y#b1Zi9ȴ=20éu&/j[LHS<6Sj]ףY>Cxސz5aB1`"UA2yŶ uHp8_Jn3`Y6ϗǬBfwLKǹ6ji#G|^T':9zsQ",5Y&+2*.oz.&p،q?n|)WQ BTĦ|M OoA {% 򳒟>rVx<,ӤY{is=%~FA,lJ/%F_7x ,[wVXF$Ӕyx5JwW= H]vqT]&F}q̃WDtQ *;3$Q +-[cZQpz's"מYe% g4흊wePp}yδA.FjJW_:('<F7;d*dm h;ifq +d,G΀ P/3W>ΣE3i R|v +:B"9D{q7c%tv.fFY1-B\g|DӪHvQ̬4i׊_֭YpIe`|tԣB%߾@!#mwTgp2fZŅyoziTHLF46WXnkyo}/>h wQt4#dd:*ńK)Wּk="5c$-{Y/6^[Q)NwJnوΥrmܦt[21FvLO`sS, +c5Y[)i*ERv>p +0YRHJLXQո9.YF$GL#[WI 7&:D;گ^2pho5 S5CFt= ݰ8 J785į6{sng!Q"Ze!luCZʊ+~~ɬ1QJoh)9# RRxj!'B(9ك{(-i/LrԹiX-?[ۆ<^pֵҦVNl4$5e'8zc;b/fRbRmsR^3ю!`Lg0qkֳUg,XQ:Ҏ XkR*kaj k`sXD~ Ţ9mR9l 'Y *Ӆ-m¡.mїtg.h>8e7^s<s=s8?xsP-kx_qJ>&ż y dtXG EdqG+f\11>O_'ɢ/K5W7Eg']ח0{)!ubHHbƭbi򂎥6f 5-p^gks9Bli`]3f"!Nqh|6H6O-Å3))Tq7۹N.y3]#oUw >z-+aX#_Ұ"ˆc8_tˣ :`a{_Q=s|\.M(5&>i_ɝgn/Q[}OV>'xto_f83:eHQG3;T: +VgiJͨӹSf)k4QSȓ%@8bL78"m3r漢 Lfg˼g;J{&ԂdO9㰟v } > <|@&mSb# زc VIS o/kKC~2n>sIJX ,|W bc~1+CRBeT7 eM ++$7tg|+A0d"ۭ8dXLX~*cFmzS3KPuse2@Rl0!1gHMUKa ON +GHj81?BGT%(W[ LnT\R+m}j/m:S FTAs ^`jCFT},čz{:2xS`eM]UU-u "ۇAγML;g"o(Z%KtN4i%ldGƎnz sIU;g}7XfuB|8뺺u,]yy-#K++2A+Q#iM9k6G3\ώ[}w$L+1y I,N=Y7>~oz$\-I&9u3 `w/؛N|ԣg98C)mvVuơ3bBnH'}[dueG)Ε?92r㲦Z1mN+):d%$Cec+nD[f6hzy{{ kj߹h8%epR 5ckА-]mQ*$T,K >Phg8!0Ys + y<8‰{WOA 7-oIy`{zTcqe{mj_9Wc#T[g iy27ll^2t#}SV3m{hof5@z$5Ge:H{uuNpLͮ4(`苄(2[ taGU]LNo"p^9J(e!eAXjMQ=8opܿ|6&@!b(KYF5 ej.9-O' DA` +ukcjsN8'h'*\4Y׀potuP[̓qtWsP/w,=?ۄnl߮dAzm!9` kQ;=%B0aA}ޣ[A;TcAnx+s;Gm Gm !Yxf \!えk$O_k7?=p&ik#)Z3E'ucD6`J`| +qO玌WeZ(U[ZBI[fsG=?1O&ƶ. Q(Y*aJaȪ0fLG)I5bHTI޸\/HPz*_\Ywë4J5,ipSdMDwvH58fXzB%'bP$&Dl-kƲGy2 BQoCFPYb :%2 ؆Vn. i[nΊ!.O;Eml21Ceٳ6D8msP{m/n^0 tdm;e 4n((@Q'CJ54@LqMpXdex)j5 ҶSN +S3fǪ AzIP)xNS$ ur4qЖ6>HA%{S-3ğHַ@e_,y!- n'+<[x$JSUўY%\r˴-ن47t ^MaLm% ԀR -e>altTZkNF)5yWHhW+#z<ʬG=fs\7ߝX>cC rC#:a-e#Ҫ tϦ':pέ*g]ڷ}~ 뷺 |¶. 5:cGgͅ;2;B}W5 xG 7z[7 bƌ/(_8Wd6$hE`d0.bi5䉸x|-/hhK нĮjq^ joe7tjFWzj~E;$;prh͍qzN`ˋzF^C'-PG z z/]_A_EP\7{TPS7+b5\iZ !q\w`u 0gX:\82r숂u3*.8Lخɾ5$h@\aADT M* +hjRTTv,6g:'.'^ΉR,v = :&>_7sw];7 }Hf:YjX66ս>7/,뾒$9 6~?$X3Y(~dq2 kbutQdc +uC*5`ջdCrEЉ9딢ָC3uxHpŲlsCGM9ԩA4(R18BQI( <;@msx8=޿=2w=]fpW=#]ӗ?.{^$F 1kwrGW>FFЦ+*g+L.(Vl܄ΚcBV%e-&eٸZ?5$+T/& m+H{V{3?ʕ֗MJ +(ŞсrdXk<2ڔD2x \P9qo:YɁ)h,8-U!Mi(홰9[4f?nEq/;1M쩛duO% =c|aO k/0fhܢ~!дIRQqg]R4!,a0̀ޅՆ*@]h8 qyKYMQ|Xys3fG! ;9#.X+vҎmCn˭<9Jk9Jļ؜JkY4Ė0Gwd$4gޖ]]vߞ# -4Ui`[m`=b$v y^qc!ޅ;i> + ,J.TMb1>G޾gQ\^~t5rny}w ..4M 4TmїHًտ~9jϳ08kmtMyeqDY@Zz|W-h9=Uy{ua[؅\-$*pb6D `Q[Bq/92B>s浲0^ɋ9> ͖Kz~q5ō&{KD6TP׈doӒtM>˯Abs|UEHv|> LUOK_MwKjeԬ7}b]EjA| JjMEoσv"v8ۅ ffW tyBeqa }3jz6}qaH9%J6zͮ=BD'J͠U+hbl:سy.c ]3'[OJWvĀ0]H<`]V<+w3.}g)/fl}̏e>5&mC|jUP +*ѧUE]{B/E+) ?)zB+!Чx y(᎔y$5VOau=8n{%죪ג,ot6ʔ5CyeBPi*ނjfN':hu@{N'U=zk\Ӏ{rj_c[{f{!7gxr>so侸B})c3j\ݰWܷZcEp)kTcc#Vgɔ洏AߒL B^*b^( E5Q$ɠG64 Suww29s]stWhi%ߡԓvi;L=l +MֿBq?wZ4+6;+jo_cE 9g IOfљ<^Z1x?PsӰ K0{v(li rȶ?84b <}7E\m'6b|G ЩBh씯h#O$x| Խ.tԠhDסџx^ {tQ#DP[q Q'hH#huaJݗCVݷCx2tZ U%o嬵!"SH5'DT%1yrӘIbdLDVNQcBC;йBГLһ\X9-3mQF7׫K%󂢒RD6ŌCH[_m8ga4A϶FDd۶g;.Ӭv5t\P3y3'Y@۷ZG:-֭*qT9qHŦ \b]lܓ.YN& ީVC_3,MCpY\XDmWa­#Q,'["̔BIMe;M|j號8ʩu9S{d;obF\0 +dqaQO (vQ%1#DBX+^9nGZ0<3K<7p"@jK \Q4e f1fzĸjNڱYPp>m·ntkW^²n%Sr{nDV-g#}`AS$ $[rn RV G`Fڐ8;cz7gdčQ@k.jJDE'Bjc=~hDEJW8zk"W͏ +~!ަ[2#ڏHA_ \t Ji}o`F+zI, tqnU8Y\6iPɕ^gq-|&׆܅x7*2g}4qͺP=hwGL1269r-' rn*n4GtG*fNS+Q0MfcP$Q|cB(HWs󼏨 Z=l=?c-Ή6`Z7<&@t, !1c1 1/ONnl +e%ґL=6$ax3{WR.oUݹYFY9!I,53uvt4EM3=-~D2zWp0$Z,,;F}/0N46F gAGjфxJ<-3Ha'4hBWR\nٗ85UANoщ`eD) 1콙]ac17;?D``ccQjo[Y5B}klD~SPa`B(K[\9,t#"@6cɈ -5+oTN{!ɞhH3333Dc&~ lyImf5ns__ݲrݗ tU%JC0R +zx D8=ъ"@c{TU`="}A; --mQ)x;ЬG>U=V^Я2r^K_\ziںUJf/K]hJŁHNˈCCCYzB,Њ,DoCa QNuTIbxQƸ&)UZM171`D(4C>\g`߉H.X67#w=,(i2x0@;xt`){Te"e`4nB𿐞Wf99YǷ@To^^uM+ejDewx6tμpX2{:ނԳh4w=hv#Xۭc0ogn@'rB +c !G-gM9_AqVF]9WZ\WD "r4 tJoaB]7$A/.9XQСqw(cw[#*Σ"\##2-E eczۇ3EN-S  1PtP:8k. 4|W {&%*<7## \I/r9 )xctW~OzǜsjBU:E(.'<@%+m7D 7Lnyw_ +_ k ,`/9xh_[u.ߐn}MsШQ]ǂ#O-'f&Α/r] D) 28}I]}Ս3liZAA"KX,p+oO6ϟ?1dl6Rd<v<~[j5: Ar r'o0҂w1zA2,$g{RgG.%z~UH)1E(7-H: ] Gj;6>1R<xR'8DnMԪ`&"Ik `l9/Z'կyC mx[bWwc}k''@ȬCzaePow'{kn!;~nG{BZb6tZ,1\h7N9Y;fذ %?RxA߀R%cl`l? ,%++|glLvIi!ԒԢ؉ ͇(*󖀅R55;[-^-zSo|o=҂/ilo;^=g?_܍i|i#Zϼ{75Yix6 Tt[yq̻pd`' Br>LpSV]a\imSpwl2E|Gx~x~EXF#ywv<\x36~}yZ^?CzҦOKpDHV4ݢ{S~PŨӨP|䚑4\ TBK?\4&m{]P)JQIi4+r|qJ4.KH-K4-K/H*r+ז.nXqΘ6+CEj\:K)QT+Iʭ+RѨT`rUN=KKⶤV"4h¶rM(ŁzXWw3 $(H;B  "bVÍYBQ,(>k4!ځ{0uw6ԗWDBl73l++ibŴ F.ˢjH vXs-"7Ĉ]Aĵ{i23:R0,{(v5pjoc-E4&߅wJLSXG „'F}nGanm]|J +rNp221n7mrħ, Ĭ*Atd˼Df ͰoJ4T3n +nXI*)6^F*>JD:h,(3ˆ:Utsi4|l /܉'LƲg|:kׅgV^Awnv,]cL%@O|cEIJ=#ph2~s@745t'pץas_!}1sV>c%咲6CgZ+sVa[OHUS;!:N6bv꒍q҈a 1I_Jo8@+' {Ηc1lZҪWivQicebn<\d)][8>kF(njڬfmκ&C%j_YPݭۇrt@ +*֎sjs& eϥm + +|f^rB1Y m9LDbuoh>bQ!k[׏eW'ބkԬxB0bg'|p +l ҃/᪱Le٥`BAƩCC +$Gi1l#)Vd?œĠt`}8 +8-\|N&"n4~q5He-Tu5[Rz6N认N%Zk}20:{,)"I?-cu*^ 4om R" $y˽^j^+G/ϥN].ή7gJ+qu&/b\4Qα)xbL]Wz<0CUr?.;Gg*Wg,fQzck_+Mq!zI+!.7DL/HT}p^0~Lߗ@/b>ťpOUq#BȳNz>u{ #ueI(|oU{UtB ylHY_kS,}[Td]jOJ: N tSRƊ:EZQD?]D=׈Т嵨uZw"d;L0vl4,SɯpN{,TaaTZS@{L@w1-fb x=BoESH5l1\FC=jvJbq>m;Fv/<{7HB(MG0dRtM&94Rij-!j<e`K:*hHOkJ|yeQdݚKu]WO߭W_a' HSdis5;Uc/oK"ڨ$֧~rIm :} zUaHy&)hVJqs:t>~LtqAjPܦmV.*\* ڄ-Oǰaf%Y`}RZ;jFK RSE\10 P|SVX\]Ν;qŵ-Ǡ.k3l 2Vqw89mHxCGaJV{Dmɥ|mc~ڱ0DW>Q +rEU8 <V.^|-gъ왬8b +mTqqI]=,Rd=U(}҅ץLy| ^̉\cvTvi>q_a$5B섞ސr%Y` +tٵc`ԲM۲'gڗj^ZۜxY1SE} YƛW7ཬb:ug8?1o Ѿa_Or=/ x {4Ebm$xڲoH&C 6f~C.lלo  \wp"ق 6 !Cb.&9*+Lx0P)5064 :c}6T +kLzF2uEx)"a %bSEё%D1||U;Z bo0+UHF,+RGDfD a\hqX>NQC4q_#ꍡn2bEw%h1=OzF +8 4e5d UuBڴ ܅ar\֪G~-m]#sxAI.];7w5`G-Au;[Dj-yFfLyݰ_"{3HNZgx;<Ӗ;p+{xvӕsay ºg +S펅MA5;H ra9Lڅ/mᎡ#k ynGu]}͙-Sp-FT枴P gv(]FD67flPY2̑b]fIw !do 7 MנCHHD2U0=v[TH{+t+WtRS*fj vi"ˊ?4j޶$}>Bn--y\Vf ˏJ߂;-DE3̢ (< *"^How0`;l 'S)%e>zqh%Kv=5-ݛr jUlO;?I M- {`NlsS)^MQ}U9^]9~$=-@wUqbWiVyq^&!n \F +F|5 01IOjm[ͽ<2EVGcxEƗ5#*+%ЀGnҹ{1.H/oNx\ +ޜ '6Ash:86VHIqTqa: 1"#PPX5|m6<#I^C>ڔ\j>{՞*ِFlě&dmkLO3O iH;r#>M17JqՇb/蜕X}kۣoը}xW&D3')O0Q3읹ED=ʱmh$ifAPQѻl.7V?j7t8/ )&H*# CFҴ nցm$v87@f|鮞_(A@U^("gD88 ~!i#Vj@8 +;*4q2C4 +DX@s-ksOM<ےAUT5 }"G9KX!/ b.0Oy<&j=x5=$fzSPgX#REqK(D=Yk.s$u -ԛ sч._Xʃ,[Ewm#nC=_uI<72Ϝ/˖' _p|+7$՚7a(ԇ?)oc7A7;I\>aex& >AYW*]"YO%ޒ6eYHUaK7W o~K+wXZ;_#(6rSfE+f_{H go7}o/d" rz1\4 "#%mO{s0\'~>"#@;vhw'om +}354{=» ]>B$< Ŀ'= ?)5pRw? ?_p'_p-ǖoF{l[~uX8xT(z[ES}cp@p~Lva$d.OEV!rFf N-sqg~yVSP67'@5du]۞sAIq WJJt*r^=Z~$ c%I'E)C*1*/Gʤ)ԙAI*xu/%&x5?0霡@9W+0EY*14ɥ>HF{˾5|+L8EYUxB:ycB+7" {X&f'èp +IDzG$^ạȮ-yiw=um;C-$4E?u"bNj%<|loMvAwșNr[  (Ӹ))/kFYrE+ IY"J+*QJ2˪(%eVZ*/R͍#K5-sm*X)z4" J`"b`2ۘ)bcHEvb8$3eJ34,iAT0`ݳ+3,yse B*5WӍl}&NYt#jsߨκ><Ĝ9?}pXPHōePR BP% BMSTW2(%],atJ )9%b;,386(*.r@.le( t/(W17"tlnU{Uk=i@7sгuO1͚Hґ9<4|iwA71Bw+Në@]o(@ѡ]x@c5:Vɪc['/)eIb%byv7/!P5zljRK _#]:|rR"N/;n7vDOi;֓7:#>O$ +Q rci_-D[O+4:|lCפKs#ni'v` 'տe} ;[}Di-M"ʑc%QRpk#'[\ơV`CS3pXuo?! 0leτ8:ϭ&9? 촥mo,#Y(Ƴ4?&G[t0zlĺh13;|2Q:k\Y5?A.ڠFF[ՠFjRݦ=^|њVI'?YW,doc`r`Q쏎d֚ HV|9u vS6&q~B[lS_h)=k daWxD˹&/ݲx[tՙu5 +ԉJφW"3:߈[ ƒ_09Na[ݜy^Ll+tc ZŤ0@1T:谠ܩfӜav|[M%$ r)"}J E P1U<($\F+-uG_E>M=<9 &'c ެeJO&!+#@`Y.RQ6sc +|S.ﵵ"Kɋ  W'"WD(ZMPa.jU}Y@Ue$9Z\v/8UBoî$X8J˃k޷l5QRiGoPw_ (m;k'Vu+ןH(vթ-XGmhwK><1>G*fOe~LO\w1 Cb9X(iUT&׹#"fs8 wVRQsXV"x#s{ō3@oW~"F0OO(Ưq'B™\3 _{Z$`ɷ3\i}t 7.wl{Ft;F_Cqtpޤ(cnCvɷ(/͑F_ƒF_Cbޔ(k$X! "bR_vT~7])#KGVrԅ,FN +I~m +*ssn|o0>ؐep MOBA;6[HK~@y9-$d猂~]V~'FeŃ8jUg0z<*n)}58kЗa8+5J]gMjR%+Qx䪗g)0boaϺE" 7k'>!Y:6=ࢃiFQc 9C):N c˧,Nx:9*?D¤/zB̕V ғ[. n0b/Xp $+gY4btVn.٭+k, TRȇ$"k>ca4 +e6<""D@uqLIlɏhreTAB5h>qݐLq 67woZH;OV?{{  wkFjpJ}~Tpj.T=f齄2d n[P,.+З $Ik\H Os&/7%/ „I3Ճ0plklm l7[HĤ/3]%/)^3QzEXDC uvI{d0zƤ) +-IȐЭd&6-+5kWc|0 +A4BEy`I䙹n7-"qTJ-}ktb YߌE]D&KP/Ⱦ"?Y=E%RhO_b%*ݠ"U L7rMQ^9z, Qf&i}6 Th$Ql`K;h $e5!p5zhl6vhIf1U:|o:jRd j7kI4S2Č9FA$HZ25fh6_Ae{;: ,.)0Jt.2 )]0dz!^QS,vBΤ +WlR&TIJgAIHϥo?\cecZ^V3NTdCܟ`蘛 ;hyZ. T<*RRWF?e(|lW5c59fP68ì+b4< SL`SrU{@G3"j<=gg.1{L Z `,@|yRș; gqRQa+7Exqv}!wlkl/أ9~-Oċm.|̍)>cLԶ +p4r5K% +ϱ7 #B}Y6QV$w Cv~# ?l KK!]HZ<+>qsySj KW%(*ZAZQR m(n'.~.WC[3QlglGGVS<͸x8G/t#$帲sjn{hm}k Hf%A,gBڝ7 :/h':"'mѾ,1[J'q~&l|ɰJl3 K*ޢTNyB&|.|%I&ea(, \!6ƙ8OYx8_p'+g#BX3>Xc:4a  Ԭd)i`8i)iS[z-;.܏K._0Sy +]$X*&rs=dK~~ +CNZ'܈fH2~+Lԛds@H{ &7Y_/YMCU|J6OIOFÿK$ļNiTDfTː4r7GfE*YUy,'ImGN$xLsY>4j&IyIWucy ޼ –JT2Jg7V4Dß/ƱʅeO/N&w&<=ԓ 4%@S@eoJLK0efM@'[0 nezO򖣡`1HZDtJ MrPv#2"&C7"^GZIyOI dĸ0LI[QEsQhCwnBO}LX=rmE*E$Vzt lTIO&6&&7@DVQUTcDŽY7zΚ +DDF++1@%ZVV-sSmODsX442nM<{ʵ|˂Tk;&/xiҸ1$ghViApYu3Ҫv zѭ`ufdD4w ׏.-Lsddn) +]`V&Kyg0'%2 ep}o_ijٹ(a(^NsVt%[Jr;Ñ,cHvJ|]D`p 0$#URcN+\ hceխWW!!}ˁDOynJ*[:4~ID֮%^yIN2]2i E ͂si،Th"^)lXEL6yfV|~ +u>u66晬]7mF)JN&v"$*΁_hvIe r%1f6(˖ŮWC ` M)7{uc#nЙ#@> +i\}ZnRZ.hvrc-8-E*u#בp/^<< +b.ݯm lP:ݖv qOAIIWknRm.6Sk՝yl5&Z`hǯ]*}U.~v/4uJ|I +WDSҪUJ9cDNmHF&+՗yT5iƂWkiTȶ^Ɔ߈rsdU6b|E]ϩܑwԾ'U% +r @'!\v\cǜD3>w{);SH/v+(4V+X)+ KRJG&XޣV k]W9IP<7 W]}[YYu>bm/K1=YsEOŅkP X pJ'|lJ|u*) y-LOB(Q* +1;)$eҵA/H'o([FHjhAp3bU +#}fUD"ރ\>]Kt2w8^?f1nb|o0 Rd+ns%-ģ.lĴ )S +`4\r I25 +^^K+.x ._xU$/\M/1`iz1,_t.kT?mt/ZE?p,nicsE%&']U;6LwKN3BuTK7@N#҃hWJ)IHO.L ʠ1$8i4g +YEY_f +(?No/"ɯ) +m4Hſɟ +ivOʸ#_ۘk\5pmKտX2Epl̸&^7^Go7^68'*Q`!^ >F"}^)> _38h3 ? {ܔ`-@Qd-b#t"|"(gHt3P+$#8+8 #F#~5|"5?@-#18-~~W6#y< .#z| .#{0>(1 > >1 +~0#e@,˸,,G 1 pxw9.#j<ָ8ڸ86cL|-(qP-1>px>`x-P>@¸/cR|\70D\4 /#G|s<?/!8h7~`/J<g810ݱhƸ/!h0| >qq9~_DGmc4> :HA_G-x;~_8EGx@mGx mG@iUڎ,)N`,̇{0b:߿wx&J&0yq֫q0!:j_?D='A]G/4w"{9xn*A]G4}o"}w; So>P{oI^G7_ >NJ1>w_F==_c)=_o>R/ppwq|5k68x[YރĐtAEdI \7q$2uep⸸OE>>{ {Ƶ20O- }fuyy!d"P%ɗy^u@ +yFdliI"QssT +#Eu`1X's/eCCaAҩEhA|J!ǹ%^ n(xBn;_*H̋O֏sΉmj(Ϩ0ۗf F-6r{H{D{|Vd[LDƉTaJbI"J SH{†^xy jڌ)s U4QRtG^n[B6Bd⒧]C C į{LT%+K o [71!9k O%+!)1zlL̕d૵DG&֐@CjF ~aV9hz{Kw4ZVVɝ@Ppo J0A@-2`%80=UY؝63L;x¼ʶASIp4?<ᘄ 4J)ONeKlQ`Re |IwoQk3=d4,]Rr72tln( =F $@3q>dze yE \@;&b^>74 S)E3DY~ygiNP 􆲯H)n"[J`0[Iaf/wР\Ϛ|0<ÃZ[}QX&q(t1;]qXa98-T/`Ec :i/uk4rLqRyȾr|Jk7E]Ħ"ff&t<ղtPq"D,l_B$qQHsWi)PoE3F.+;o*fUq3՜D)8_*تS;zipa 6Jם= ë*N^89N<)8 8A3ᡘNV2<^ KSb L3Jׇba%p]ܛae~}o5d +zvr}0 =Dxx΁ģ>׳Ka1_XYa!62{ ob#7'b"/Sg΅BZހp2Twadlw<﫷G弓Ɓhm+g)٪+u"?:d5 t噭+Ѣ:Y>T.n-,~6%Y`FGhx.#k%j;Ҏ[ l<O3ӑ(@IN|f8[)wnٓQ `E2%t+:i6 'M5?̛JUittQPLgJ+uۃ$}co[Ǽt?SXZO+a8h^I!@ ؈no/z& OKK=co tJC(fF3*:sn#o#)VjyPJ68f-ShڒLsJF +y˄8Ar z /c!o~lh2KWF߮V$}du^ uGxg  7B .ROq!\ sH1J")8iTy:W:\u46Ɇ )!a=zZN0X̣|\6Y7į"nn]ˆ ݙuybހ@K2F_u$dz_. (%m9Aj4(%*s;iqirhM>NԼU,%>MAfFe'xayTCzgXwKUo-;-A8[vA^}Gk8lD7%Ӎ!v9R"Q'홳KQ&aeM "un[`yaz", '|<4ka 3s%7? +˼{28Fq(>#e0'k"ؾ 7h#; !v{ ޙ@soa $O{a`$ٶ/H}:Փ-ҕ Jث`(5 ܓ-Uq I!fG@IL4j 1R긦F(t`ܼCVx̝4;N 萕z4l/Xmu6a ')_Ni־P!pz|a(+ Mk{zahsdEG Ze6Ã=ڸ6Qji-5,}Å{KG͚!|#8U juK}215-eؕagzo\ָі3pnH嗎,cYe_oV,]J.(=6vnH%Tw9y$k ǿ-7dk"=ݸwIv)oOxk$hc%Yp-KAPm#c\L`tջnal}#؁Z QY22jkٵ>krMĸWKMݗn'8t-"d"kyeenmbK'$:bhNO.=f~40}{ݦᏱ\T,*kf'?f8ï7ͣ`{נXDp?!)jr/n;P=] qVc`,Q@_Qn(7{@r~)+_/O8P)O\?0oct~5U]>ch&l&褷2o fU[KD}s +sg@b8MqZ7 ̬ch~_ۦ{98Ki*ZD[r\g lm6Ďؔ߄S] b)0j,iy!)AiQl4PS z5=mk.~d"&F)ꎉR[({ESqS.{P;6Eӭ^$3SJfx[1>\;):[~gxD73;b.Ӗ4Y~Bq ;XR +|x3AD\̻tw ;wػxv#zҙ/1T)$TVGR4N'X jyLeLmfzقl&u&L&ؙsbuQ@s]"B 紘]^LC6TV| By}" (ٜgT"NOv='vLQ'_{Эy0baH`bH TCrVqD fDTC b7~m.*ʦ8`NAׁԶ<(1۰AxSXt`,ρ +㡨`V84ѡ.ax L٠NpgPAJDqr 6K$\9Lׁ[G5e=YI̤gQi7ЧU=,1C>$0&|C4~iMڏ\A2֡h .RamQ +sn.UkmscI:\<͗lbxJko b`l]m`s\ 9#`Xүz2X8ӷr~x({}$uwH?]m㪆ȓ?7DڙlTo';0E.-1-c_ڝInAUTmdpNb c!Ծ߸q ݬqlHԐhվv}̲趒E(tPw$2ʵG٭\R7h 9j]Lqe&MaX˺jRU2 p_}ȵ&ܙnOƀ U_ DQYd.nw2Mr2P^W#SubφL4(-#'S5aɨ[U'YpEп-&fidRqv!>ڣMFq &o._09tnyHiV$琵.j-HrwSMLlO[zZPS]F=om~1۠(Wǖ\͂.gय<ڷFco;WlM;SjXc`J`|RUagޛ ea/_?mt;0? MdW7&gp# j75c0F;!7.KÝ..>Tِ>j)3ZdWӂ#=vvAB1o,˞'w d3bVC ܣ]fXi}jf Vvdv6)%ߞIfz"As2.QW _R x +.?e-) 5Fd$)]zfdDc)(l7H!j7pC9YiSl)Zvk[~>셄wcaGD:Q]H, I+c#U_lKuz+ub+ +hN6ō%-{%]X= +(22DF_WyQ3?0 jHW|1!pcDӃՆAa[1rA7cic,d fMԧ I 6u ;QLťalN~QcmھqS@clt}p2C4#!ч`J G9u!-/CכWO85 Kq >8 +k(G 2 A&is_Eձ՟Y@!Œ#w w5Էߨ)?ֱC9y6ף1w,k{myh#VÎɛ9ɿG0Mf2i]ޙU_F?'nS _|+ )T }UZ~jnqn9y0sYm[K{Y#K!M:[b\ԇ%:ڥ~՞5&Hڀ>oX!L_KA곊m*m 029Ҙ*-Vt e<|Xax(-j +LqQEh?@1L4mv'̑Y-o]>A9S(vڼa4/yQ\D>Ju-]H9=' @XM2}Mq&[D>J\@nEڽ֩3xq*=0Is5b!m`f kv"8uhk ǘsC<NiBmO*M; r] s+uh\{x-iqc%yЌR~K܎6uiy3:ie:]l *"dtͿd8NNoAPJogpUJ*voܶ쓋4Cw5̣eteTrI_(c`S}$^8< +Ue1M?:aٞw_μ;% :ڌ&hXOs]1mǦs zIsH8:I%o=LN#?INCP7Q<k T'1V#O87'\ꉬSo782uV[wyµ)3cBe-S9?$p_; ocl|ǂѧiЙ{{oCXdUcf<ڳMBvdh3vaM}@Ast~O?HKSyU)Al"TvdϨRw=QA<ԥo>MBq ?iKdr c/tzpu?n06(R(q%=&1.ңmg=%̖bPe|[/Qi7) +=YW+ + 0ʵ7K!ST@)VA+=S*cU},XRFhTAXd,2S+&,YrJ+V]Z2+lo/}]7 Nɔ;<5gTת,{=T#,TB$iX'+F]2WF5JGk,*1DbSpW`@r}>K޿ʼn]3"U];])EnUd3|ypy^K]CodnU(D3t BD]^Md,1tG[|2{ߣ)}˄ʦMfK}v;vOv'v1~rlwZcIwNm{\cMv>Fw]7L)WŢv"7M3E=DZCbtHBez +q!b[Z;|8`&AG8pCZ1Wܓ͙N^FqwFɻE葺-`2Bw5tebO@̪쫺C6C& iU"T_:h`N> h5(چ)̚}aƟp[>\|ɾF\VL2o<3?SprfvjpPjkUSֵ +xRðtBuXl{nGXr [tſm9Y9MIL!,VО29AN@V9-@ŕvB',=ǒtm0OibYdTWP.ktTriֻ6(0.p]=]T]PBDp<2NҐB%E]O6|Z/BߋZm{d}ݨ``D]Ӈ@{mz`g 2!Sǚ{hQ%[F=ꩌ3)FL?q(">ߙ8_WCcIzwĨ {` l`*nmk܄2]%GzB* 9ZY]٧x:m\j@ J]K [;ȻD.*tU5H)"`ЪYpdw@6LU(bYu]#߭0KptBx` 8L;[SUnSq +q_qks?:{a'κkařI7d7Ry<' mb +T; ]ryL4gT-ߴ|\lU;Ao\Q.5MVQ©9HNLrƘ>-2OM`*gIO;8bȰ;@F7+&c@Dx;%幤%9sf<Oc'a&&' +T +<"],@5٨U0T7 0"[ZZ\ЪZSk_seo^~<==!̣|/¶zzzf~A| ;d/njݳ' sC:xO?ӡLeMjRE2̥ҳcНNO2SuVOaH%cTCs8sWcϮsێ@t%0B+34P԰0e(&4R K[V;Y$6$%S,~Qpꔅ1,_n2y64@~5CJsq>&Z`Me>Ȇ*JT7 +A@:7#!ő2("<,7KdYh~]귘5h$i@\7tNhp==r{\ز9-S;=ZV-`xf VGX" ZzU PilR@h*:kk{Yzi^/3e4)ʀNNr$DW5 +ºsz+1 $}xpCd0tXPYZ#XXF1v=Gڄ8""d޾R. dAc𜃆~ +H~OC:!W8{X4M;eä;wI.^ˑ޾V@& 9\tqWsmR ohj(֒,ww,=ճW9V#QNoN_|یngVek8tBJanFyL5.Τ:{ݔfWLHqCɮ]#imRCpJ]ƍg5܆hn`Obei#wxX;s; |C D֕iytxL^.H7D= +!䊓,e1|KzŮof*uX] lWa^ +PV8Bκvh@}؂lVud`jcs7rLHMoQvI`『 I_,LZ$]Bh"3"J((mG&u eA(P$4M(sOq'yH7s+bG꾀\MHj՚$u3ܱ 9vMCe0ʊD+QFT.K!FdBq=Y. m$јh> +$ŏP jO>ٲՂ}Yu^8?_X. +!9cq +*5XE.c*p3<#1?KHC%!;c#i 1Ȣʎݩ )8LlL?1vJ10#Aњ4sn8չʚ +G0qYԩꬽ2^:2}w|H/7F{zAٱ>1d ,[|DF|0%TIgtB=z3ڍ!x{7=;>qOnO5;3!7FCwxeokgng|^gz(y(B^SS}i"~6>=tfX^/)6ʝ 1yXQq!“sf18ԓA bC|H$QNg>~Xb6sZGې~('CpT6̑a;VNqBBLݓzwhAчvxP̙![x$1Ð1mWVd;{H܉!%2!vڈm4B BiT:iǰδC#6#C\ْC(Z'-49RDJ0 p05ֲ|IdrĐ9C |qI|uͬkP[',l;].ɡФ4"h!k>Q֏ +oqEڡDKvu열viŶNPTg8*KCI˥A إ7SQ']N`<3.®<mFDI(VZ{h ^GyG@< y1_7H¨Pak^GߴGi\7(PF:s+%ջ'JYન}d×d@è|F;YmpZnq.NK?-'eg(%B'(0س %!Fe~29nǩhW&'v0 @!ʄŮ0~&jmb1pWj0,ʟe7BF%ucrrf9B35 (}@MMDt!ؐƔuRaI^Me3: =;J1zQӄD'W8ݾISALowV+'d890.!CVb` B[o~Ea`I$=U2VoQYX;%j\Jwl~UIXGA'#c'dh#. ՗Q"ל,cyސfXԛSf6){5 3g.]UD=DE"Pг.1ft?Ġ#9[œvz;`y1/Қ"&޺wq]Y,~<^5jv٩tO&c15+e<3C1dRFP"ŕ;xZ>fh?Bj VfվLzCK|޳)-F Ƴ ϋ-| ־,;d Fј9TUf&EXr^n Xj?3qIk / n**[rrzIhTS%ϜO] vViimYa>,ޫ辆4k5Sd.6!{M2PmMbW4N훶X5e\WT59S-3ۍh05(HT9ssv97tς4DVuk +a=\9IiPZ/&*&#gŁcJB\|j _pk&8#|*|H5#t +/9:V(37720 X֤wbL^gl%Ȫ^V/QC k iV.6*(UY]VQԱxko1՚T<7);xV"AއFy8yL2e1N7a×?\kSsP rX4,W=k90=搊w@ܨ/C"d:+ir0ȏHTU?&Ia8s+o>v!kl*Xh <5]qNeRP$C\5$+3U +BmQVh 5K e}? 31 Š I/=PDJ<HnTLBb*׊HGv+h_amߔN`iLpR( KgP3gKL|)SE&f +P\'kJ6N ؎@ha5/>* à:4),o_PCjDȏW\1م _HZ̃!`ߞ" 7aM[$__`="o3eހB _zup1@'`]X nteW(F1ke8>rZVC#wjC,k(P4ㅿ|[5D6űClE5NhE4Qύdst+oNhZO޳K{}d0^î BhrjB2X|LIf!&dB^g^8_ +\gVr HsXht QQi!Qj1QkA]q6N:aCPwnp.w9|#_׬Bix5ljuPYW-D]8ǫk,e܇f8:޶~Qtدlg[m52aW,?nӸb`ہB~p= j+zlC,OHB'FG,K#(Y\4ُ`o!0*rFʉN %8BGCh#@2I$H2$P\4y\|S54f :MF_HoN6i%l!ЪM+HEܔEKDqfxb.y`X2@yPMG6!HKK?6Љmr%ONBH +f;0MsOWu@&Ցe<65_0L#``;HPtykNLa .29ɑx4Rް4hY +M} Srd`M~@BqISaIs,JvwG7̉\2Ջ>j[wEt+I06V~[ƽ'QsbtrFb}ezUmV(lS0g@' 'V$"{nb&ƌ5zR% 61]ǛJ +^cxڳ)B FdisW$R/f ^6bϣ[*~P+gD>$j,e#2 мo"Z40- +iTxr5+_n1)XYT,NvvgU3 e ![AVQY.յ>L9݄U?Diz'?lI:?9Y&w竢RNxfx=I6hB&~ZiRI Z܊ޠZ/wͥ~_/k' +[էX&(kՙy4ך3J+8A:kB:G #F@-@p 0gtAfwCq۟Yge>jukɈOatk@=! ѬGOQ噘6$N<;P#!~fwg3=MϜҤEVQ14[-| mHmg^ Q3 e=P;>y/(Vv|} [ ~p[G wJ@Aƅgvi.`-|ǸMk_MnJ=?s6hGQg4O;k;,rH -&\Suχ&K>ۖwSJP#EoM BȬ68}7@4;m:H뀽ZfmmPve,+ˀ u`X5}NKZW’LêB?y"L׸H.6^DelXY$pѐAz=&8Hˠ k(ͤY|ը>Rջ5}\Tyd]㤉#†`bT3O%S6u<8ƐX:~p˜Ǟvr>?1[fx#L_s6Loh~H־{;` = s;Pβ +u |`=60Kw9n:; ;.Ay x 4쥃t Ce`2{N1{bVoX(}nDa}n`׃{F|OȹAw=oΟnttpz5ACw? Dv#tn.`|yƼ߄fOv,&4PъѰ'y|ޠG8҉9߸~tDPvd`#s6h# +Fb(r|XAA=}xb|q 5d/|,ei}\A Pl!" HӮǜ'@:NUj¯їyb3y6?[`K|; +j*]h?)'5fZ 2ߍH&i7hn'{WhbdC8#$fEv)PE1K(*ŕfڒ:(o%.>A|~\0h,0=^0b:Xba\;YPRtX~FdfR(-4@p[ݬR"2RlcU.Gݱ0JJ*]ULFH +s͙7K,j.]S˓ҩh P8Oڦ,Au9kl-s)C{o;l/8і&g,jh%Њ달P ˕BVsJڌ8*h- LG3 LGU$Z@~$Q@U/ +bX*r` QɿӃ^ı maer׃PtJR{fXl@O!=\*XZ5} +a5S̭bF(kX)*\ ԖŸ{v2#uAzx9v\7Q +c 2!*Y9^@.\/٠.u؝=dv;GӸpBXT=b_론7;Xn7Ys!~.=7-Q!s(!.ec?!v`9ØCnꡬn끭 Y&!cC tG/XSfJ3ӄu{f!|g7xbr80/ij?{ф!i6!> +6t(9{b~!㿢sО lgyw@C|v8\G'z)oM(͐=|D/^|_ͼf+uL1ғ1[y_iPwdݸ<R4) uC('2 vWWNpH8kau%癗3LSO/[)Wh"#  +٥5A7xkR|k1fiwLYCšL,td֝ ?Gv#jiî2ӊ:](wBή!no]h {ѥbQ'5 COa֒4K+':m }zv̓\"֥q&T]<$_@:ni2qÔl^%60%Ծ4LG9b~UC3ʠ'bhMcQrjnk4mK$CH\.d4Q\ rncikN镌U: ɒb@+?b;^rեpUvDp-F!!jrZUBorвݪTAx&ԟiX}{}%<: eRڪT֬H vc S,=c[NkS1:VNi, +k)QuG&eր)> =_G62f zG1졝ҖlK2q ۤV;^4@ePk J2Y":}^Ja5+SQep'-LqU7PޕǾ)6wA]\3/ Cns?azc3CxV rzpFs=(z z荴ݻ|C?:D+)ˇ8uoԀy50͐ɗFwn=o[7>8QN#~aBCdxbfJ:$PLE±A< RIbfHKtsMC9%/ь_ +a)JPKZc˒pa*԰ J-꘹O=zD{avTv5)'?,RCq!^h!o e?  q T|ᬎ&zx$fuE\{7pp4nHU8;Ea;\d42bmg!)5)5ښ>ơC( pC#JXψa$g[ !ZƢx*!& d0;9\輞؅;q;<-)y|*;g2[n]'ح3x䯬,'6{#"y\,'T O*YeQo+ଢH _~cTsahʦQD @wiN-W3{dͶ&Z +񧲭 + D8od +Qg\I\`'uu:kCm"OJ}ܞ߹LWܣ5basU0l@lrY媽'`XEEkWPlԮpl+$s g\ V0J%6:K[:WJ.Xw<pbz4Zx6s Mj8RG 7F_SA,Ҡ<!W9yrQ4u'lH/7yPU;}f;:/<>U[ԾGCe!6~h];""hHCj{B-Rۼݜ{<8>5gj)m%;,T+2& .(j@eq( iHDŽazn}[`,BuN)80TΉ8!qh}zDE5{̃WEK,6Աs4qaQFaEp+ճ1d%jZ1eȨ"Zl9v,qe1JJ1;² +psbFV*<31vG{]{V~ހq[! !!Iۂ}]ν6~Z +zU?daW ?[#Z֡_G}5`v}|\dG,̤Qd#ذhsG U %(uX#Ysq& #)-y !@F|2o +XȒjF|40ICrL!aE.UD\m 9eH蔪I-/%a}& li+ r^/afΊR-i]K)V<*1r؉Ɵ~ߢȁPA2lBc̱7ɰNƦ*#] _U淪Tg­@@/B äPMZJD.XǾqN| }:01;$6#U +Mj4ZEEչsS)u\m'o .87EٯMA%iMe5@Ufc'wI!iCzD87 [I_M^JՆA7O=vA\Aېv"nSoCB@:m(RSG#eLb *i&l,s$,nFҶl4#xpNi%قt! d4*I\wmێn%\$Ʌ&?-%Q8~R6Б s#ĘKLH̉h%PY#2Xg)g2*=kv{#J~L3XmVʒtB^$"촾'{\1 M"w,aJcgAckNyYnnsDWz[!i]>hl_R$%(7%BD;'q#.k0ށ7ay/‹?:~~`rAe#Xe(c wuj$'cx +kTVฤ qS0gXL'өAEƴTؑ"ICO'EgFg 5QT'"/=ʱc4@BЎe| "5(}iJdHٴ&&aSrb)'jIOTs-b'ڤ?h[&-dsZ^as Rm& /J}ɀC+ DqR~F q8n1IG :GG S'(du =jצNb =wNxKwIqv㫎-?"Nz6 +;N|4R,z6;t&m4S lrC pdb(mŒ~#Wu "ٺ8X^6@ ,zkNjףߎ]ADp#b=$7kC!'SB1:=bDeEDC|j&~7KaB1;Tʌ;ɦ8 y>op-i;;SFčs#Lޓ]p}%t uSzM I# Biל<ԞjJ{a;%q~~^ǧ yEF)F1f0dpD3Al[]*/[n*~w>gJ15N8 ɯ8'yAP t:B0M'T*oj>,(oxĻGnGo2oGzl/oBvT7z#3l|8I7In7~NgH ǾEc AHOU OqDe=s39F@<-y|H;^^q ئ瞥bk +fIJ] Ga4 ' M9SwKޙ,s{ s9U*:=djZsbA[wA[spAcc 6]A9NW,A+50zٚOl bmqэ+ ~ o1a| s0?!"$U\%5i:fՏ$,Ԍ+o! -Y"J]85v,M%z8{x]ݨ[)QFQ)o|bX~E[Gr$k9lt +ZQQ 2id3R-_<~^ .O*ޱ$c:!`װ0)OYrr,J] :ڧI@e)EoFZUFYjGBՊT T֑-7@4j/` .A(DRC-?<.mi(ARw1^"LRb$Qvg}`Bc?f^maj=ME +D9I;Ga󛕳`va`T8(ZlGO빮'SӇd"XH4ADaH+@$ai"92gV"HHm,-\|HEACR ^&_d5Vx$&V_'nHv勷h"4հmx/#m^hRzNgڏJc|ʝIÙ2i=-MY7Uly;ԁB]t=f;IihHI 'Kl0.bLjGhv霴 d͗i!Y@2-Z^+!Y +E{I+FaVe 5j1 E_?In~#i6l#ּC1K%nqڞdI=BNedZT3-+p@҂7UN-Oeř\+(VE5%$iF?l&,-]ݠ,"@N>m٭"` 6kUiEFG8ܭ} Oيjﱈvcܬ u7ص2e k35ݓW9W, L@lҏ;[+8pWe`$0up(e4s D$%#` gd\ 9pjº/u>3SZ0 iG3 #gMԱ{;0;fգ=3d>wH@ P[>wqpލ76NVqc_΀=~4Los!RgN!Pgq.:ܹ*AYEiA^)ǁ|OkPKpTHHWC;<>#S7hG'5 Tب`Rm%Fɗڈv0DEU֐̭H+$fO2-TӖ =pl K]|MѴNFr0lDϡ );Θ,(&ԡEyF:CQ 8#Ѽ-.:+%<#d\f3k +::.BF4]bAB9Z8%UdžNM=\g'+ʐNnxmZ^{t0A}jWy|l"#B)hAbA 1SO2z?;G\F:֗}\}UW{ au&gMtF2w˲ZRwuɦ4gq/賯S6r2@dZ%/[ Nێ/q:򗝧 x؝ԘTEi5ŠL&t"?5i` +iQQo*sv%kh8#{yW܈X l}O~J<@o#x@Ďp!'bq<&_^|Ei}nt`>հ=JQ=Y3mL*:Dg1a}fs +DG?oڶrDF"6v$euHV8V۞<0I.<wiߨ+?PcT̄16Kf6e~`^jwe|5Cl!z-?\uz.=P-GjҮ4Rvv/J^ԫcn9jzn_M39pg3̧%&mę= c{-k"L-۱:]4 k3 EYS;Vwݡ]k 2HI[f< rnS#s`| gب(N4!/phYQxXa7S<[2 ]#SjW9t_܉~tqDq!oQv|a oC,sм٣"^3Ҁd2Ls=z{ю@o;:kG7Dwwoom^#X&2ݾP#%REYMJVA-٥N\Ɛ 0' mp}lJjnsGGWbGNF+Ǖ0^t^Y =eL"D =eH?_`80u}nIpuRtjTIս+Wߖ|2+vL}/ۅGl䟐:PKvCw +gPϪPqdD3`gk0KpYfB36 {X*93ΜkI}\1(>)Ec\ A2Yã7uOMq6z뵘gqcuބw#^ǟ/+d<@\|3> +a hCgg0a 5Dsx$rX?P,JTle* +MW1Ge +oY[mFB|u@aK(*&â,o,spŕƣKՐV +ST^ l[Xh:`j1Uy /f}xVʸC&ȠImg6Jie*!0O oL(0)S{ͻ|ٵ;h~5xyh<3 D썿GToF|$yz$"siR>DP<.L_ζR9O~)9RJg:֋(h'sΊ 2'KO$F4삷+Ӫ/zBdJ[iR<}~p2RNEDkn^|r* c?C<#Ee8Y(NC<#-E|,;wLz^8L0z\Y~MW.h|/ +jpqr{OՕ;5X6 Y<=qaw#[t:.835@*׀8:2 ҎyeWs8te-JkՁꀡ-Kn/RcflD>kU+&ըt=LGw;L7z!jΞaph-~=\9vͦ#5B}o>0\dX ؋~HD'E 9 O'EYQCC r|HmF*UVij:Y E + x^ ;Dz`{p{hyM}ۈd~Cq!M%5!-MhؑXȳU"KhQ[Z%!|2^P)iZm){jE$=>%$<۴7y 6o@ qX`L֓_AQ=I2mh;Duת:c/l>"֖a6̠"6r6_#ldY=w /fUx]|#IO ~~o:X/-+~#lY6|U]~3~RgN2 z +`[6%'‘r >t,BŖɂI<b4aBmrs_n%Gz {TOX4d)]2O4pf"4(i(t;rڔ>TcQ] +cRn)mG[ +_[xþn=ěCPon*܃O^7&iWHULٹ,}/NO> pt ϚZsB4q(o('E緱V-oEÃ[v?Z-$k*^fۜ btfs"`HxPf3!A,i t},@He7MNf87L[)`o'U.Z}0N+?.?D, }i ؊+U*jBBPVGJj.,.ٻjX] +;0m7 *5kI>ks Te~Y K/>@v7AA Mtvi{lXOS,3U-rζ˻3G +{@ݗelOq~6e'm8dGm+ +/ZmMUoZ\bd^L[0v|.:|k5rxpWsR;[Nnggs6s6s;"]Ym!npTXԊ[;Rk?43;՛=Qjp#G7 +s21g gs4ft^E^gi*k#HզyIa\}9Ԉ>}[ aKbK;5 ` +l9kW~>b]>D-?Bf.4]+Uvi T`rOdϸDGqiͨVJb,unNǸR/j4W.]ZI-e:XgKy"a)ZՖL6gHHJf-:dHox"`ddΐ:2HT?+/l8FX–7]Lm1c{d^f\%0E@.)#L1]y~n42&hE-p;r\Dd/!\GjD=Py`BF> +5yf0z-3(Yc $^&V-\N#iE}qB szFi[W'w1$j#9\dQ;Əa{DwrF; LUQtMKz;[l"Թ}M\x2E=oX4<V58.SAlRd +1Ifz3=!eY9gWO|nl0!]{Jݧ#a,_E+y'dؼDwˠ iVjdf??{+U5&)8 N&+ȎΔ9ŶS(tүYigBU&Pr6/x% *$%''텊0g'ƪ+ +L[k8GN9͞(q@2 [ң|%y~2ܷZ~u'IO +-m-tgLK"qeבVґۙ===zaػ0(KDi9S.JV Yp CLqT<Դ'ؐ.JX7M6Wsר@Qv}ag9{dW +bPŭ'/d)8P =4%#-֔a:*|t)&JٻW`}̢(D)H{(T%&+s.:80Mxv@cg<.y_ޥkgmhލ% 1"C*$2 hQ߈:h^r,=(ӠHF>NvnКNgY'6"'C>M r/O]/+y($^NhךHCwwU|u)NVs*+0RB/}?ABnCRj'@Js3 07Ѕ^ +>t^]hHzmh$ۇt9ȯpϚ vpMX&%עΕTx&p"֑[eWCG谱5-d˪fx42}#`űK咜p+@S.8'}R3Mv?򎜈. r{;R3Y&=IkFtxUDj䝑V=;TS{DOHˁڒ b#vH2qrƱp)X1h5 "-E-{8MԘĄ.Sc)smowrď)Xkm۶m۶m۶m۶m63wE|kJLu bbx]%My<\.|n#` +\%% }# +wAm)4 *-[Չ>k\ުu o*7{pWt3Rgu0W$g\j ֥s r{}imzPz'>PVX?Y}4,Xb|{jw%wq|^@wIn}f$Q)pxZ\1lOڬ|"s_r/T(Cp'r{LJ^6 +DKxv&颟DzF~zX?H,s]3>9 2=ucpTWNڧLg\A(0~Qϸ11*-MY*B)U^xr=b{>P>itK>%MUpOΐ XPw= hLJ@Ĥ9KXͩe}mqj`(2,vaTCgN/i8^^y`kScn4G,$ :@мaf,Ԉۊ`\MiQ}U3βPjg׭i#nf:nn iU;ڞ}Bը~06E='{R1h{vTӁQÁsV9(ڔc #kh]ڽ_!ˬ۠=wj8Y:q}Xܨf>9(ƴP~ĥFH455h*S`,1(h&Xz^CJtKd0&zlt 4'F4:0(TI"-p{%В+qD:{\Ӹ@Hm++mS[SλԷ +jԵ} pTFδ>O|,0i}@Tgu.~BZc +t1z5ָ7VGxW:i}N tl7`[CټÛ?R=M׿E:UrAVTCgLD $b^R3=GaAy4ԥX~$TkRxR;hT{xIJJ**JU`nHr7կK}gH&(~z#fT]n+oLa˛&L!Z}={¦*hfOb̧ؔor?txfuO/iM0$(A:f1|F*еD/Y~"K5}!~NXg:HʚL7:%gvd4$.}|I8+a=M7^,Z<'|D[dבb)(6J9UL? 5Hk%?Z 9Eh#kƂ׃,X,lݖ\9ۣþT7ƦS GE0ߕ-Tٽ{h]Qf̍#y648 N Q+cC\&{piY +XoNmj c T>!~ZgHBFk9~l9]8.2եN7=!O̗rf&֙"4jr7G'r^Ho~I1=6BL*\\^Ja<^xoX7B1&j>pƒDXjA0쓣5rc/@d6VPrV;y1@8-QI8( An#H/!_J' C!I&hT8!0Ŀ}Y65SA:  QAlğ8šh90Zyb9Z#կ>N@U<*܎IPk;祀㵱W sCO6z@6ʢOu +K;ҁkrҁ-hؾiHX~Q;`]I:_#-}Vz05C#CYVcH8 {ٳiN2].nWdۥ6ޑyptt`pӞD!Guͮ%Gw)ۓ{xbcqkaZ02лB$9SY֧٠itqFp[ p,x`64pޜ'i/Ӌܦ!S̜0fmw$ M\!.{ \c,|ᶜ +dW/prIcI{Kԋ0c٣#LqG`{f|ˏbK+btq MypX/QPDDà69+Xߵ!2G]|$Lk-&[Q"0B>xpsP.x߄S!ۧk_mδ*-EԾم:؋KVA`hh"+9Wr|52`=_Tы4LfFNY$ܖN; lG> m -ʠעigE `Mk +v;J}-YS2|5U$~LJ}f;Ic 홗 UhK]+[geV +WE{SN)+@'ai>v},l\~f[[}o}Lq:W`|mҸrh!450_]]/S=@F !??L@7}DiXDbXaORw*Ta )*LVdjJ<){r*R*8⹓6(u0/U՛kQ NY]nW C2גHYߤTH`)w)Ub(PlTiLnT0**[MmU4$**MvYV`H7drHXW<'DڶYVh4^7ݒs;u0oӅoY3#]3Sʲɘ0濫ӏvq~:0 wC; #Y  &''s Ew g.uMۓ KiSAHD,cg"hs9Md=MAMd>nq׼W>mMz:` `u)^+Zş6H1S:n5ώ!$X>*%D! ]K!I]Jl ]J mJ\>mhc:jo8b<-گmYL)'6,ƸTtV}ٴMGX:=l^qeq!̑ܘ#`Etvʽꋛ[uA4ޮͭ'GrNm_`猍jz2m EQ 2Mw~p\)^|M)dp_]$y-CGt@G* ya,N+䞕 n7(aW3V78?wfwoγ_o`+n@Nj /7I ؅aA|aE,:l=<]c2,V YCmB}aϚQv°wqD!iSV{]0yG.95SMpδ }4t +܆:@Pd|>"l;p@>u`=iv`Ѿ&6p>ځ=4w=bl</O=j&owr EHB1"Ϥ=Ed}q]tR>}_fFҬiiTxӳ뇲Ų˭1Y fYz#5IIoDH肢?@d>ِxЅ~wr~dh&a`BBYܣ/mJZ U݆|J, +jexˑDb/J.׀Hɦn ̯i) +FĸvvbJRƵf=EOdN)GL86(abfHK͔@?>?ժݎ_[A$Šn4i#:Ɛ)j|''J%v$0FZOf&Ns~?o<}8 %/Ki#7&Z(Jӥd){euņ*A`!#YV;~m$_$EPXZxbg%R%RE[*ze D#uoOy X(%)Ƭ[=y9YD->NZA\\iTYm#/fhΦX~Jk,b,pWB/W!{UmSY&t\}Ӥ]~?65a)7 +e!6 ]#| f %FQ`UKϑ83` .S0ӎg38_J oK>о@MA%u9`oыsZ^};ÿw#=:OъoYFs<||hL~ #Dz%͐G N@O{Q z n0'o{oFI>G<_գ 2_@N;S&漣Q54Nsj=w#@=2*mgPVx"t^Zw!qYP]":Ӛt ΂fM6JbM`+ Q$NBo՘i6gX}`&!ÁiFҨ%*gZEQ ۔k"57dW٠]0菵?.kŲfGUGq\8g!8T?HUq5#l Y`.e +dƥR>uHK>.y paTE2PV0FK'( r`n>p2J9Q-vxsHWu׵'E bL7NV}.2֞-Fsk0=m \NQ7/Uf_=NOTKe-NEY}lyG<ǘj^-}&{~lhdZ4؉Eh(xGatq#{\%4/j\5QR!idַ-ͿiMd :*%U7 d[:sӔECu14Fk0PJGrm=O#::.Q,~PÛU'mi@Scc=cL0 0gW=QOR lNB?`vKƼ6<\$׸X 'q<Gz9ZUjR\.|b0-S(ʩdagLfUc0QL5jQǃVWD.|$7j wjvZTNwWggC-8{ M tn(Ru@ $ КY˘Wy ݏ4~A0š@/ (0TxWΪZwo BOϪ,RBIS$ =bM2Lo^?Д}v7Kܟq'uV`"TAM*b*=33>CƓ=f,yw.Gޱ8u;f?'C I8f4A~:%RJ4:e@4 Pv^E@}l + ,m&fluư M6\'ӄI^_:DX\ɑGg6u%]NFEפTf#XOnǦ%^p"xۈa[ݢjOРF "H29P/b=qs_rB" 9 f"W:Bslֹ+x#uwcoǩ׏C Ӂ%eUqY&RR6eҼ<ƕ}wW'׷:jK?Z + T'Ü4ѴadfwYȪe:thC&m,ڧ_Q0F=FuūL)눭gh|ͤ51rV&_\ZG_zqINwemúnŴj_jRG ].tŽ/ˤ ^EЇex_ސݾ@?>J1)4-Uj77 uN&%MHƣdyZE{KwfS_QqMMChL>{3?- +}c~mC3+)7[**.~6PD+8C(0Md4Z]X<v |ж^қ>;S)KL@ +{1V,KBa)n`ʿRu jѹg> +Dʀe)k# KZmY5tN/#<1c6(߲LW: kq՚=dқc궕MӤ<j}ŞQ>/ⳓe)IvՂ R950"B!w5t0)[Q$zQOnd*OӶU_?c_:!DR:p`aaF`0 E*< 6DZ-#^ cF1F.D×b(Q[bqXUu|/Wq5V/ب0Ce|<ҵtbуAdbտxTk2mp_ ^BWûתˎۃCFZ +0 +bHoq\:G]WgL`G䯇Ȋ`y7 K IRO%:#\LΌ#ZCg+]FĎT޼1|xc;E<Dv0D|AXif4D84cZ"iB`,j] pǸ ۦyvs'y'xG9,}{c;4eɤi|ʨ3cdN.?.0ᘦqC1c +|a!fsۤ)N-^ k(1R*:ZѮF ?OԻ-WaG\Dp+pR{F~H\Y ᾤ@T1,g 0u+{ *RfTjCE +2iBc{;z'C ?EՂ\0Y$S<|L9\j2|Pئ-j76v)*?k4BE-TX/ʧ<)jR0QZ.Wc[/6WfԦ_ژך7XA/?2nw4(o4(Yh@aNh5u `F9a'J!ߊr#x s{F{[~`Et. ɳz`!־ky?9&)"`ۚܙV/uiXvs4dTk8T0`,Qg4!)>OMTTiD$ &1WM'Zϫ,\dG +dvQ};2JO zn ΚP쵷~wtbȺⅻ;*9 ;edafk$I'k)-#IYYJKR[*.{Z5<67[A/氊|{d(/?,%m4Cg}Y?0{rVV9+ӗ2+."8180-O( P oZۅgv mĎYb*c<;faZ+'}{<}wQ_pʀ8A,{U1=טa?n7 ]T\lnUi"A/y67݂Vί^&!/nY&iJݱO{0vjB1) 6GWzwza"}1nA\X?TPFRdR,~ul>uo0Vn7DTźXStةviSe:@m:sD + ;m1BcZ8@+%;j;~0Nh/T_BL~N\a\a "O秬㇚&D'dX٧Ų̌/^[E8Ǯ6>e鵵>3d(o%6nT=Bꍚa^C ~+8~~%0f_m~ON#VWos&.kGh</ +|dQ$6Q/@*m@.]!v D$F"Ac"+`6K + ?:nHI +o(4b8͊J<>JT{9Lb%#}MKI]%@߾[С+[_@=jRuBn&+kx}aYl'0L = } cNrBJQ*H*yTfpVڼdʲc,M <z,סM ↧ԨjuR R0ƞ8\d)GQ:)st⪥UT9dajIf%LU鍲sէvgaFެHb,]VI`VK!M'z^KGb,I m, 5OY>LA2NvPB$PTWȪLR8\knް=toaTf] +G@wvM:Ups ȔzBC>rQm 6Q+vپwᾒ5;?cSHCx'GH}^dCG R. j-Af*K+,ȧL'ʷ&)pAQu-8ċpFJ_(v 5kd/8:n&pDI=Vk9ƾWnݦL)Fc{^ŝ\I;EPuڌ|B ϋ3txUm[l3x\3Ӽ?0f)↥ݢ 2|${~lDW83̬,|Gc>fT|jGx@ދ!gwx.8dzPÀ1?'>5:7ދ>>"@ZL;-az1ԈuHg1{0 1q\=rP{n#p$A`6za/<$;];9[Ct;]j̘HXz_W C3r^@JulJ "ot"3 2`8|xOInR hOhf78`!R.zɡbMVwh5YM58\4joV ?sKc"9 .ܹ/D^B>ҕJ#Dqx_~QWnd`4vflG +@td]@ԠL2@Tӂ U&߰F@ÜYN8SzbXDD$^8350-}~׋8Ԫlv+Gv? +Y+JC3RYB$=0B7ڠt@xd. ' w!Θ#ap@*J6d]q3$O4pB$PBI:pCbdtd5Pq948ri%D?HKԋg*y0u>4FdfR)tjS2h/qqt۬FZdcZ,*U K o9Rpg9777kgf_|mk_2k8Ar@LIBJ2G@k 4T#=5 U8Lf(Bu[ VXLQۙfZ $ܼtb+oNamJ롡N"\،$ &[񘭄e9u&딐,ݜU(ݕ,F#Wul +c;"5 ~CZY=DYF;ceDnQoQ&c5#@xxqeT KϿ}J?|Ϭչ,Ef6)Eq^48M7ݺt1R32C\JyCY )BHz"ٞz`/iɽˢ݂搷ڋq2YeV 0gs)0uwyп|ZhjLQ+ ƵwMuYU$ligL}`GD*{nws-W{$n,_wݯ\T,CƹUcD kPA)Њv,*SJ5DTԗTi Ʀf[+h4[Bw0| +)#Sx}`\^ +do(jloׅWoC'<bff.:,߬ƒ0Q;IU,lǁm(;$\Dŋc]8-_>=.W(A.Wj,8 $~/ XzO'[Y};N'5Y{lSq~Krݣhk$?M1=cJJɐ҇coK_`nbtfKd\=&K +(ũ>R@] / a;_[C }%" mF4P`fEn7/iJؿ;^O,[Y~4'E\ipޓaP+~)XFOp q*m\ y%j7uþGԹp) +,޴i r3/۹_4GCX )iA  "5Wũv[i\F7=wA2Rd:f}Fq+=ys +ItϬs5kH҆hu&tlF2ES|4Mv|!EMq%׃awGv$oL5>NIRz q՗lvCb(o13*lt +yJA_AIq~8xtzj1b R,);oz\5?z eWrCTCEG %1n.. j[%4Tl6O &0{=̫yP"(hy-ay-`@Ӗ҈9nzk{=~$vCAc\=I?HSP)|H?]`a U:Č@z'""'HlMbl$m24Y9Sb'WJihMt 0dԢlfK l1S˒f<6AWITlW|6(^lMYITH6ݠV1\*YBjtgΐT#cp zgH3pl)H]B*uWK4X!A4ՋEr4XQJ3wCpgb^4JɌOo`v0AXϏ*}3A++#:B^ʂcAoFNiyag(Нr"M+0x]b?8 DeNW_J E$wZ.Ɯ`Jiα ɶ&6x +36d-fggvb5 kJʢJQA1Yqw@T +70R^+[)Uôq}y{LSMw> ຠal1iE4#=T}a r|i6yR!& +Z x3/S?S;QyQJ< !W#nwl(%5qS%qVmLc6M~14&0㾅HUP!E#Ud^fQLִ+{Ǧ԰ +"dC}͛f~FYj"5Q=@O0 ,410o ӟP<-;vs+>mĞOD&]46!$Τ4Xn_G9J0/:A/Cyn4pj=5,H84@ṛ=f@HZӰ<"G 1j•hζgN&=߬La7.j-"V;}֑Ve^P('Sr[JN]Z;'s9<"Tb͉ +6krxL\ bYUD5߬yx iBH!D–Ѕ~ļk|d=.+`Tk`fńV@W(X>kE&|"_le% r>w&Ӻ, !'_0aT-F<%_0萱 +yH֌+{HFAf',B !KHj:섚NmA/)ݺil fv9^R}r9@ž cR'PK\5)[-/Hzrr8bM@@R?J7T#ɵ +zzEK@FhH&(#Zd`AI N$OZ- <;v>jݒZɾHV,9UWʽa.yג Liᙻw0j8o ʐ#qH\HHe:H^9fL *Y*0Jhqen4M IqQ^^ t5s 5S.-/A,?sI4f)"lҴ.xnYaTpӳiQ$V)8QH94/IU?y2Y\DW;媏DIpSӲ589UWqm(BYqm&En$KF乛MnLBǞ0E.'1pU&(vC :Domn̻<QV8k$yl;_rc 3z Xk].pOXEz+8;; MX7҄k殡I-m jgԯjv_fgԳ8ںE1)61q{aWHl]de*3lYǼ +y45Bo6| 5qUQwh@4F ɬ|J-q+ra6^۪@weQAsVG.r83\m;yɯgu 2tHD!8\hdFb- vJ'GoxF'v0&Փ2QV~t`msHA'cvAWқWm"~uE}Q?yrM]V@*'gpGF<@ja(}-dT7q.:y;ΉADGʊ5nѝ:F0УxQmXt9hLYvoױxǜCQsp6 'ry,k+//|˩ MkNعkۯ:NaCK_Cجt̽HC O'}h0NKН9&vh]{:7U](v5,T9i!87}ߗD,1ox>{y!Bt"|9[iMme6;';],1;/8gjOX]p7JgPX/˳ HzwPk^yW4oxvpAtY26( 0>i`&=AԞL-hKhU٘z5q@&RaZ0IkQQ-WE@B2&9Et$ᓕ2U}=z\g9 OQi3W88U:؅{H GIf:  g$!O<{a{OVβBi+sV5=T +ᨈ3E)hn +F8 <AiI?0solT}(ԾsP>Ub5[*JzDu)_Ż23_EB|1=hiԤ2Y=j#;-ːt+IN_v xMޞ`mT;Gf$f e7=mRvȪVu_-0)=|u.r類).zqv,PukD]?PeWuoR,[P}fy*0u>c[%Q3> +c>R\ h\mY 6PzigoÇ܌4I=Rt5DRYi?_L*[=Yz㚪&"Nb U̠>!]ncꚓ!R^mXS>Q~SQswWo=t1w}o3~8dj 'pp{D O.3 u.mD$ή1D`,%20JmP'Ca Xuf̍ ?}+5s+"~G(^ɒ j 0A +#}QSesK2&-Ԟ[}^y[i^ZU@|/!ToxjGN(*8#%wdɓ14#&JPeAfG)$*3S0GOM@kKvH06~UY"nRUЂ**l(;+^8iMHcg:_A?qN)WCn*ίC8A|FܦƼ5al&cgERdM OZRT#STQluN㴅Ac +0uEK@>dC`IH]  .1.;8]K!6(K_>BNt?zC*:Y3B<.[D 6P1JR :(+`.ZD} R#(݁N1H$ 說Ze].+9 +: 4*@Y(ݡk&2"a&58TG݁opq B77[_[4ށrA08%;ٱY9<;X0OLXvgсt %[/;u0s .&<(Hzm0;V꓊4{]}R}Y[d5}88,[ЗVKݪ#^M>zgr~tQVTlb~H$áwJn(v,+CY%y0M1&ݷ1!G,Fvu{?qR֢vᨀ@^xzwJA>Q4a1#8-{Ȗ:(bR/%bnoǙ["䨔;ҔeVjU9h$:޾ow>鱸~.'2Igq/[CC[YR1Abv32ϲ4ef/+O$ll ii}W%u +K"gP{C'Mf I(Fk/>`'n|1* R zêLHpb}! S +3 ʬ"u2'؂{A1](z*JN̪D:bj +>ô/c| pÖ>v"Fn(rւpEo /^OK&d ^`[Sb}d2S0*o7Clj^EC#IغٳH5oyI#7ƩHI.dz*?]h+^ƍha2)0aRGj d* +1/-PGEpzIG7yQgG6y%$*D$.,'CW|+ -VBӿƼ 9)> )Z +,,.(w|+r +G 1x(q }IlijAW/ $ˠKq6hp߿ʉᶧ|8QDgVE KwT3GW(+d(!~6,(n +'{0{SJ#J%|\b}Cz]RqymGϭ+@;}Qnw`pphlQ).>kK[qIkP K&@$иTh6Jך>z0ąItC1gsnj; ݳPȖ"  sȜ,ʛ,J"Iz|)[ۛJӋ'A]GE^rErfҥKRHS%S%t+Y-=THehq +7pEgPnfy +.oS^:gjDgib-QzAHqՅP-9TE"d\YTy5*cY2Mfg1B]݄+UF99QynR vQYVƍؠFq}0wY;K Xv?C}0>W ]T8=5N-=V5“i9n)U8//NYx>*V6XmP$n5PƹJt&-+k_4\щf,O-@#y+T`Z ^JIgH[:O;v(`1 2L_P||1/.< +0W/vug3 PvG;/Uڹ {99΢G.kvXQM^ Ng'GwHiQ2պzÊz夅 xq1FC:`V׬:;X\K\ +q;{DUXF2W +)qXP +UJ4n=/ku!qLN @ %o:8:ݾN^=ZN+Ie$9=93;W15?_. +),x{n]X>n,OW[`8z,SWF^Iq/ IuY[e}-.mm [=9[K7[--gǗ_^GD, 7E; #ו[[/A +n%̄[^ϰƉ[ޕٺagKQ`P m+δIl w` F$b1{W0ӄ46Qn eI}(C=AP1#OfA w.ZjR6[jb+jlqN-{St}²4){F\XY2`Rn3Ui*˲p?.v$2 + +.j1xY7h/8t30љr ĢI8Ӧ +OƎdӐTxGJ ^Qx#&wY n @DɤCI_C<V*S}iGJ`ܱ??wߺC8wQ)4{'d͢bB.'" +"gsƎD)oPbp 2mzǤ*%ȔJ&T|@+e +̊aZ 4한FAz(M4Jɳث}jFx5R<) RqqV3("s Ule@U5 +Zbfn+mLRjXgy'׮iVUx(+vm [>SE, +)HTV=n#ɘ.$崠@Ca/Zy%+t@fȲr|J0M^ol;@ }h/CN;&'X)Zk6Q8䤶"mti! ֮++s5ep[saBfm]fUmud}`yQlp41{\%./9YDNGr}NI)Eõ3;h69V6KjZ8hRKL7Ǵ#Vu=*gf5T r:dmN|]T3)\56-yWș4P +L}76ɴ?&VAALojE f;dȚb&gPE +igb6lhs +T솵`qZL_㞣lPz#~z:X= +Va]ag|dlz0}0sFlξq(Cs37"ӟPLI:\m~lfmDB^,; +@2j ڸ(T5:u8ǬTl*|V!;XAܘS!AT#ֻqRj:fi]2^,Ӿ[__5Gq%᝼؝Gܻٚvt?Me(M2r49݊d@K%#mk17tP7QŭDukGD2POsghR D F#:O`w_{|c۪[°Gg%Tf +ЧƏ3vjIFP9"k^ +MD:\3B$Q3îޣE_-aBhzh +h]]8I'|Ylfys. ?|T⧅ j'Ȳ +2ּla V35qYf Gjzs d@_mG- +)|=zH2?0t!-Bz,(ߊ?Ļ2li'X]Wͽ}V7`\|Pvp;"  +\ OQ1l(tw0M5n;Hw2~-= m6c md|:Z㰏K]5~bRyѻzԺk= ʬW>!#8-ɳ.GG8yl`e az|:*P\S`ϱGyR ="=z:qccbL7e#Z9K\q~HYqޝFx6N|rbqpH|1JA`ļ!yLyf}af4bܢ޹P8I8b* zE YQwfF|%d>HrKq?@}fVsPvt␾d4cxŤ 4 +R!Yۊt%^r+)eRi02;V];bWJ˄aX?~7w pw-ww2&=sNSw( H:H?D2j0@k3`OXE$^ P˟FxOOo l@ZF􎛻po , ΃7 +u!;|R~}G%0uU:BRfko]LIn8w{W:[:t81U:!e'gW[OL#_5\#Low R@,zo|Z`ɨ%\@ckivWZ)4ˤd9Lllb(h? iug7d)t3t|^yI~ + ;[M;BаAKK +sfom4M&?ba~PzA\x}L!_@ia2)CqP8--ǰ |)͚f[cS },AXH?+HiϜJcChnwZZ)}:0,4]2uTK;M`Ȧ`Jf6P!$K~8ЍHTŦT'0&'fZw)d(RH$R"R/RR#=VV8H, 3xqXN!j-pB\dJ-$+cYpPA pj +G('(m; Kq8CLN8bߴrXfrcCc3X`L ~ah7dswg~eo7hJ}{O,~b`OVcڄUEЩ0/v/U;wuYͶ" Y):5J7f% r^x]ukd9M˯'-5@$Ro7IަZsȱ*Ώ1Jl~Vpb/4[9.79:ԕr⃤CJ:M鞙Џ^8h/{Q/ LYƤ4A]+QR5ʔ*iqUDNVi4=Ff:D+_+ATp8 +zr馜;#=2r>`njM#N&iԇ|7! eFkHJ)+qOsUBw VcdIS .!?+C !~dZ-$ +4HW`$FmiźM*Zȏ0n1iI$ U_ 05aRA6e'b$*yU~es)p0ߊKsaBRwg,Em.ลrJ?D{7Cށ@Wo@>~=OMVa+C(60Uy6xs5#Gky{.-ĉOBuџ=`z(QVߠeo8D!oܱnL=0`J#oE%Vj\20Ni77fZ#3>| K\- aur(]Qzp?.Te"^j(Ym44O~X(ʵ?~Geט4sHB1AEB5C@o +}lKyuWG]5L{W R!6 \.ʣʅqijHݡtU71N !>|@:x fiG@2gR׺Z[Ѵ]'A2w@憍3&k4Fe'\bfU0cnwa+hG>i5)/87sN>J63^~~o8S!6cj$Q[ 鈘f齐 ˘88vVy񲣅G<D(dE((\IB_%9rubg:wnz ;?B랲I[v%m1%}O /Ϳ/O+ݏK|P-fyx -  1(!MUّ.YMsbgs܊gu|FԖᑓ,+z["ؖPxFtWpAxFt`Bsi+z[t+;LNmwv7X ckG1/ ã/#?+{|<,{8!.1$1v̹!A8A9O)`уHQHф?2ᑅHp|EXK+֛msͼ"~Oc_`'/O&1or.{{Q{r..{u.;7ӗQȯzNWطOqFo-(]I)^a"_Q$rހpDrTD^(dCC&B9S&FhseUke'FI#]a(f2XC42Y(A(s܁yʽ%S>H)&SYl j5F?>!>XRXL$Z_DUe1XAsIHD"@DE=Evܱ2ZpYR&8I]> A]h ^]j_ A]L'` "[`(Ob9dyC4I)0 +B[x \[p_QLpbT$\[B DXG$ +B[h_i]ph2KԦdl}"[K"[Kע[K٢[F,7,87̖rf4. /ye]θůOE0k{0n} 0pn} 9x~%\{:9˽XTGq`sbzE  Ԋ\t(Fq>F*fEe+M |ИGɪJ&ւ_JJYr^GdʪQGs +ǣG (J14e4#+FHyuEMxS,Ɇ^fENb:G0ˡVn&S91zb $zo`$`%1 +VbMzb jFM]tc[W@/w ^Gi9\>e<>F7On>qu߁v +$Ïmofwջ%)#5e"ÏKޕCgUvT3L>o%qJ{C<1*X<OrKΝW^G2UդGwccbJjw\=ƹAHN"XL +S,3)! KRH_)1~.aD=TfIPRʻ&dQ@;3 4 ~hÄ)neC%9#ZVFkT\ֺ WA; U؛)5voQ͎p/B4"G{lR˜"S@$+8T+\YDZIDkyz0'h"6~B +8^5^&jO]Vq, 嚠 E,Y*KP:SUĪcUGA5vѽOۍQ\%PER7g޼#< (cepa`W2ґ*FZR +]lW4""' u(U=0D5ϣ0lcY^j<8g;))FڼK,U<l=<:<47.Cu^ܷOoMSΥ? l㈳$\ݏ6xSˎRˊV`Mm 1饤g%<"?ƒ9T[bQRQ<oǒD3;71u0؁Y8e@6 ⷭ!jH{fMJLv}Tv!@}F`ByI`\,ʙ*1EIgw< ih ג0w$mU)\rv$L׀+j 6ҙ.]D'r)Iu ++7ɻvIAbRұnr䉽0$1iY0x>(.cq9i82]cM[}e@ ֵTXXȌIWɕ 1+Mj+8C|G<j/8oLx+Br,1r>jCOd,oNr~ik/7 ?>m%^3!"^s*z4WI33ޕAd@e t0y byH:ZXЖsh'f;$"||Sct#}F #`D ()96Nن*+`U,C]36{m_Pk,~#4 M=[ oeE-nJFN*cҋ (klp†?틁pm͒ZX/'"{$cH4TCm)O Le1,b +s5ǠB$Pqy;.PaGB ymwXP.U/qYVs +U8߶5ց;CmLᚋ@j&I ʓF7EšN([z6g田 +(p +>zEEyJ2CG\S.VX=.-f5\wZȡnJ{$%>z/{g &(^n0UL=˙,JAFC%Iv*K_O?5LP06#E`n(Zsn2D2"95I$bDž+L\ M%cpQ^ &>$AScd'hy yW#aq;U%eUzx ĝc8uk[pF#4jL^jaD +u9CM"_vȹ,2Gw乇ZAuz//[tHɮss ̥N qyB?Pli׼xOY's-ǟKmQb^D>99JCJMg #99L/B9N=(ևݡwG *=А+@jWbCl|b{VuX"x{,҅`["#,E,uIrY"x+Uc'{7EQSL'0]UB^i%pdaG4[gJM>>6 +'d\0,WZᅄP&o[]ϷrR~؅xXRvKCefӚHzԥGvWE%)'͑;啛9qLo_"ꐰ\3.L_p@[#C?LWHNѵ +O +o1u?.@T L0T߾ Q5H7ZYdAX79Bc3 +`t9:qԾ u#=v;Q즅?4 +#%DO @(&'豰iJ?W0{ztBY3&wAfr HL>eT*^P[@ϾGVV*Z)EFPs4afWq3,KR,,OcTLW+* $O}&27Fo6xLIsk'bߊ"[[vDŽa6Y͍"Mi"zx*QQJ,Jڈ/e,LZfOuO>χ/I9vz] F4nA!˹$5UC$  Vö# -#!re;7^'˞Cz5\$yzq ^j&% + qRnm.RF*9h(х-^\Pa5Ǹn]q +^Iە*ϳE?-NyѱgCJZA&mpe0izg%={Hx,;{R lDoCzI?Q~[;SD5lE9u덎r-ji[] 3ucLpJokΣ^F@jj F`~>pvB"և#3z҉ |9A|.P^Hf\E M`պbn4hN. "wLt.owAx)Cl -TN.wrqðx{)7pܰDL33c{dvqa-0²[a$j(b aSށ ڎ5_fyCovnk/hiwFkd*!uH FzZ\ y;:slYG^q^IRqVpDBv@|6o"/ 9hUSoOsvpvK9(E}<ؽU}؀/PGH+xؖnf81^vf{LT\Ġ3>OHeQ搡f_JE% +^nZ xG3p"ƹj%/N]8{5Jxvz ~ H`K7ż?.ZswervR"&@TU[kO\cdb;{HXP4@P^c E@v)֋o.= +ERry!3V-VQQ?>44mƼwXKVʇ~V>+&8_kewh JEw"C8<- +yr=|". +Ią^T_ p- y",z=sr~\95GJehfQǮU nEni:XĒXšn'io;Vqxrw\H Z}m۶m۶m۶m۶m훙l37U{SI'NNTUs46vh]ŭ~cRه1E *]D HVS\=G\\m`H߮}SpKDN?,˚$x{ZiE6qHXLv)_T.ELt gO%ЖЇ +& *Mrmg)[@#0Jӕ0[Hjr{<V\[߱9tl&8]'J Mv Wb{t}gQ<᝿^"˽虶n@ʽqaHSSMLVe[.=pS9jyR\f;n)qyWU>#,|C9ljW'yhlq_P%~[~EpC/qmRVܨ̋Ӯ%b}_qa1YIv!2r40s2.gSK+ )w]Y32c-A|S4@dJQ<#ʎ;B'BT=pQ{IO|#"μŴr!U}1+9ړܰ Ż#Y; u8=msƀ%((?[; lb!5E6%"L߉#@`[.isV-M&o9< lE#AR]r ǜlsfN~^UfMM4k(kG:c8R.v* pxuPy) [։c^yk# '*P:Z/V*xMah渝r+6 53F:>~'QWE!rq {qc]k?{G V leTQd9,݂t.2fa{I6dWj)a9/ CwsO +As^ +BD9= mQCsQJlECLwS 7褡ב75%e zT۹2MiBsHϚwԩ癝. oY.ܤ' I&xbz֧ š'|NC_ق ẙ#'![3 +,fo nFX' r$d7VDX7 fk7 m4C7i" cܵ&8Bf2iL#P#NfsLXW$eeh[М'մVvP|Z9wkͭ0dp؊ŧbHONB i :JB"[ 4.+ +0rh61pA1nļ@5=w/µu/ƞ%ߍň^rOR݃Я<=ݞNK"v*w,cXx9X+fK8 a9gUR@y\&Ϝ(5($ +f;OlB vVA$, QvL(gH̔7`]sP ԁ1 =* Tdn.rcwAKKBY˞Aϛa8bYeK`NezŇp:s`wJA,1o#OD , XhMۄx5a`nA=f6j(݅ RA2]!Np62eh2EOb2EI]гg)A9N}kS:Tr+ȷ.p2 +fLlmwrǡbhiTlTBW +p01ׅ!h| ve҇>%gw%6{7t6:0V~]Z t@ڂYkskӇmgB5뗺Vp[75jփ^Пk,XlDSʈ1gPg (mj۠~5Z\fJ1ɫoZ/~5^k[jMzm}5k۰fzj^w/|wƝu PP"3`(|y/]rSr y?~4ddhnxe7w,WX@g gT uhn=}OW3a e +Dw6hxK,k 5c  3TyjWuOlG+7?[R~XlI~LTYMX:.'ly)w?/LUr>X%>;TO^c_JcrDn%yBss|K,tÁkGl5n`>}lml=TJ#=xtQy+|Z4Y#w& 1Q̌1}Ɵ87H.:ÞCv do<ep|Ed6HdaS),,Ib2GKev0Ixs/,+pEi 3Y:C*,kHi,5"Zfz5հЦ`PHr}2HG7${ԟ tZѷ>,Poӌ/) +(R5Jn7N< /R9c_8 ^t>XE?b[UM +ؐڙJeH[|Vyiʥ|-B}u7X Ut晟C7;{]`Y!zYtK@[BwYjA"%b܋RP}bUrJai説pcjBҝۀ: +K][i0D6# +9@vLèN%In:EJQk0;)I{wZ֚4 7fYԳ1tXfsomx=d$jm{5W#jqKн}Վxn Ֆmpu;ۤy\[p˙{lE =7@;=LE":6r66G3j2[ra6I줤jK szurcҹl^F;Fmp|y9m3RPm;hx~:hȎn};/Z\iu{h 2\Hu{ "]!*)Hu{NѮZd:ˡk{[!k{8կ;Ͻ_n3l?Em +w[M~PBtofjt,jU⎪?9kEK* %t.HƯ49XϮŴO[` Э" ks/AQ:Qo(;C0t|Cq~,Ԑ ڎ\3%Ҟ(.$ՌW2'a֑F{4'µij SOI@U-wf/2(R0Dh y]sZTc}zKNw]Q5˜Cš|8J/X{E E ^KasC7 S¨=<P{4.\ͽ48,Wh74+( ([ .V!rP_\.fKZ\D|,Dkcd F4Dk&c+u~ ԩWF&vEКFnڦ}cUWc7~snK5p8U.8[;~Ȧ_f z(I\GDi6$@pU7䋅0כ󺨯rhsI.لPM^gSd=l?s?[L}6 +g'1<I ʽ?u? FC`}{p eZ1b]{ֆ=ǵHaEvAmva&q!#g+})0Ft.0x~r:lq<4PNnp#^1#rW=#udj+LDMQt #ZzxdnL3^ i?(S"I}֧iڐ},L&yo aŌ*b]:';puttu>FV1|] ?&gW4_vvؼ)/;vp>H#dr@#n12YaASR4I=H~5xLZpZ]߈`LZ7ȻVMJ-Xbl^'s _x֯;*58N,[umV8h[m^ZsY҈M#S0o$c\-I*#G'Y` L1:_a Bs%cV8xD7JfkΟcrtފ, )( 7pwzdW iޢ旖Ēk6K0QpiA֥]<k=XCgLLI3n&ikݡ\_)L hE;1EEb^ˍhE:)Str3ҥ:y3=ݴdۺurײM!5MwGBB׮H]K'|SyґΥ wxE)Gu#VٲMْU3uC7(J46:%jZ֎"_i%_S+.Í@8fV.WւTekM*_Rc`)CnWL+_ό^5^F[Gu[q- 0ڲҠ7ɬe<;DCo#o~*yϐw(gW<- n!oi{k1#{8'%{wiW ++Y; ]ևfKP^ +o挝;mK_\G%og_܊7 ϤXxQ.2ͲRagyA. +%rhEpȴb]K)]DɥCZv.Z˥C֧Z^$%C wE/\pץ׃Kл +_D\c§H +^cѧrvQvQIva ,ƊFc-څG-e|#)Nũc-ܹȎloK緲[e#َoI ۊ3܊YR̂e⬪JϲV͂Eg]<^Ir NrPg <ݹg4"%6ٕbgmկg5nAʇgvnؕg ܲgDn3srՈgn'*On>B'Kn9ߒȧεxϺꉬATvgŒ'G$FeUChFMBv2Uҳ噴OSvbۅ,mn\-w͜S3,ܧOE1KIiPŔOFA3ҳ(ZO ZgFM[˧Snvm[siT-KyL'jҞ֌ҧS`VwKͩVw[ּy!J 9᳁?ח^!$ZY)YWmGzz[ɗ@JvDz| b ( h-(u%X|.msjG^>}a +/l3m?m3nS,}&a' +8`K(rAu. sLCf>n/ˆߜ"Vmtn:xVA_K"4ZTs'W_7/7t`5y:ϰ* !d ~B$Y@~bh +#dа4FbgF:7dc_8b5ܞg+hYo:gɑ'W*Y}Obl!i4 @O0 q$͋lxT@WW|W"96x~OI +־cZ)E~XƨcW,997f uXɠ|ܾ!t; vʀ}x8m[t୾aM JOs-mS t+FNjKrO~ _ZDJB"q TFAo9W$޽gp춶U\|nKGB^MbO=^ +O0ꬁ#F /x⎗% l`_h#-Ǡ! 뼵 D.Ծ#Cvzcǵ_JZ=k3*?>VM $fKIL]O&Q鷱)?'+}]A4iձ,DŕRѡAVXR)NeNBh4 ڳzC\q:Iߧ <'siP\]>=]>'@љ{x q>$  AQ+?ƾÉꠢ&Ǿqz~ThD_+Y}廭o4e5BGy/X{pt_smFJG5AX+GcXHQ+KK#SMT=xoԫ @/WDmD~Wc %t}.K5uw~1dvsPwhZew~q>ʼ9 @ yPX4J;A"Nq׺!>uv5.&g5K &lfyjPI]c"W%p>/Ub&h CއO HP +ĈNTp:b|ȨU.\P +jzkN0/CXw ,Zc1Ӫb `3b p7N̑q +x6ZF8"^ dyc/Ah6HPf=P5XwjD>XomuCJQ: 07##J؏ҕ} #O=hwpB2~#R.l}14Tfddc99 uD<]JE}ㅱKگ8"d Q$q%h= { M93fn3h|7}\+,(Tˍ) )5"3՘Msj~tܔ HgWMy0cGQ!FW5^3|dbJ$h?ƠAQ#-kEa =#"(CԶ4V Zہ_#s2riͩޝ=2[qc?$hA͋z#v}.bvmiV=4'hL*(Lh0Mdfo^i+ +]"U; sMܨxypTȆ"&GSbH|Fin-L/NtP$R=s4i!N%\έnI ˓$s(1>>Ka5RHf5۰2~'j~L0wP+5&/;$e1Fl9TCOܮ,v,14=TS444_>/sc_j- JDk".K +dc-6;j>1H| rd2z8|u 6O!%J"$IjVqihFCΝZ5 cZ86HV+%K3%K+卍]reEqPqvWy_Jf] Ì6iA??Y_3Z9}Ez!o$(aaq4ʜQ;Ӱar 9T2X!HkD9r}z0Io'ް&a!ʕ[C 2ֆ! ke!]kֈjn!#Ieo&} SWli$I7C"/7 GTfRW͊:a裋OK78ϭ9 D/g2lo;Cۡ +-ȞؽHR8ChΛ,{9O "3 P ͝<$l!DEsoWSσ ;Xu<+p⽞wx'd7VeJwVW_u~iG[dt!8 JKN (a|]vYQ=E^1,I ]a{]]=--]Q{8x{s9g\+ZѰlOvxD[]xo!ixC;\a;j԰:,Ïk$: <$xZɁf(!~OZ~Ґ(MxG|LOMj֤({{:q9՜(chbg^_ ՊZ/ߌ<rO}o},Zjo$vUS OSYj”DdqDEQpuP,#Ήsy:Qȝ mt"nx1ZDTebhO +!#;ByW;ERTd^YGYL݃d[ aݬ7W\4rUQ󖳍 B[#O2&9⦔^On9|P.~&7sK Osݩ佨Ub~Ay1w+3Q& JBŞY~n_['I'K1ŕL6_7*þ { 'i+{ ɍ}t2>bG*Ah@yB+#9Ho0!xjxOĹ#JmBR=~2N{Xܢi"!\bqXj*On0Hw1Ěptp>"A{'&zJ(rݚPkyb3߂ҵ,j#S Z3Yoԝ|"Q*do%vDv= 7UuAH d&1ܠ~nED!fmB0Hz{vk +ĦЛK~qFT 'JVWT2!6ՏD +㷭EHJr!a KEbdBl ez1uP=~\x968T'/bq1fd8CIй< +~~aP"0.Z$^T8K%Y̱˧K5d,[TwHŽ- FLQdNC Tǭ᧔x{} rV;$1; 29 Wcqy骢wuu!Em~^ >0TYɐEYFM3{i{Z[K{N +pj߆flʷZiEײ1ITy]Sr:G$f4PeB +Q0t]~u_4pG7NqN\М+D|#XgPu<.~uRԮ5; +:AV/H:Q&QZ dAФ= L2yB-RoH5R=Hާ]kӥit"ʪ;,:%S-ڤ1d:Ycݺ=:yʪxfEgRu"۪{kubJ=y|u]=iŏk,vLઈkjfT}|E.:StR+vbXnW}[Hr'7?w_q6f|s:p*~st;jW7ϛ3׶9mku͵rn\s +ǵ>0K?#ܕ`j=vs;X`Tc1J;1JUPntd 1Bܵ3#uk7 !t]5rw}5=r +s%Tck '{ȳ0cFwƸvZCx6Oj_Rln+Lwx)@l-f]|L#$Ěug)Čv_ԝZ%U)aҎ>,}UZ_:Y`,ez$ܥ͊ϳ|pвf"Y5,]ۘ^PQ+6>R7w$X3g~ޢCnX%OX\2R%O oe> + F NTNCA1ד+ُR \zR٪UE)yCЏ]lGcK6Vvv=/e,f5ei҈ء W/I#_ȏvH1pI>Fq̷_ pFrR~z\Ӳ1Dۇ +y;[&շ`CVEN~wE@.|ݓEOYE@s.*{eX3;=F;!e>D|(I.gng?[=U0*J5XkP+[~ب>XK5r]c`N5tk9>eOnߋڟ.Gu= v6[q5oތ:ccx @DIp`V}@lb!Wx~-nJ\â;fMEŁPhLמݯ7$3ko~dJv^0#~#>DwA9pn%9pn{3\4w}=o}4_j>#o D/}9:nR]~ۀ>o}>n"7o~>]w\kRxgrAֲGZ!T3`IKuV*-MI)X Ԧ}h*Ӎ&pK@U }eu'1j̢g]C4, Z&"HR]pԃ~K9(ąXVYE+Թ72+6biVVžp5JD%qɧEDF3l:ͪ唴,+)>a#P +H^_δyD,W")ԩð&)#0L7I9Zv g(`jw6ȷ|AE5oFY&WH3:|LQ`/&l)eaIWQ8d{x7ؑ2k.!P5B7 ˋ + `+Gezvfٸy۾+E+n* q+]6_ZôA [Q'SGW[aOSX`EO,S%Ǡ>P{#kq5ӉsG$P"i[me:N!ZפDqnNOyY-G+ +ֱ%Bo-uwN˺)8{Ub\K}4TJ[ "i}:k)UB~dIOaNä5 ! sGb5-,c1VH]$IIɈS GC{uqv~lk83}Qf/';cy׋`6%vi$Q#8ThqdVN+ +MA("j=oߛVuCY^Vs(4T([ Y(gWOY[9NO cwN?pnא^]ii}nu6ɟscmKuM{}9dlVk ~)2k Mw v-D6Y弬$g9?ݺȬHAo-%e7s(H_&0'@`G> +3erGYg- !R[BHb%cơAnŊ6SfbŕԦMۗ❕иH!̀Wupr͞V[~@zWoq]㛁0m =r>''<6˂u=vtǙu^yi]a3l,?W9HQWY!_Wgwiv[2+UC#+> wv\C#+ݑ#gBc L:OBbՅ E";%2]'BB?,ffMDyEɚfT˅U-aH+6y-ٜ#֨مŏMAjzZp*#s+}F4+ŘT@[8.@- }KX{Q@š~ZO\o90EgI{l;`m@O]8]~3KX}@5zvH>5{H%ײ5(pFPu][!6{;8++G_n?b̻!N$#>Mee`K5=sgkaMF +Z`.+v%O3̗6g( <3 sjAkx@#0$rx %P)1i^%]!!,S{(#Y'BZsi)#wYԌ'CڍqgY'DڍigY'Dci*CwYT'Eg*cY'Fki+cwYԍ'B'킷+W3Gߒ4'Ґ4'tO4'Y3RSͳE!~{?Wr.ˠؖƁ=L*.ʢ4{1*t{S8ljWZW~zMcV`vUtqTH"&DN90DgnE+l{@{@N\v}P^uRlpBZFL7QN㨗6Yc^=%eͥW1*]tsϗ+ˈl|bG[f'*sQYvc-/;%GeKb[ -勇7q Mŏ[$?̈Ųqv;rN1+)ZehSIM2Ѽkꍃ\kq + Q(Lg+z#-'Y+g="=nVf'm5’qqJCf/#LckU<}K@C@Lc~9jLf]sA/* 6g[|(bk$]òc7usTv>Z.͓/z7J5=jVV%.ht~|} %\] r\=amU,ǭa!n?sJEoTHXjPsLg[bdxx"CcNң:O/sRȠ7#ЎwqCgC҂v댗࣊ŗOw@;S] :CP P#7b'WgS47Ļ_ "5XvW "7c#l kAusK hSÍ+x P#-9Ak +֠=Ww w>&$`  1>&_ چ^$:FEt +^ǧg53F6Ή5G;% x +A玗'GdpU Ai }ƳACz@k ?Ʒa>ƻBCxw lC= B9+qs,sHx\M|A{|`lhMx/&`Mz|CgLx Z\s._C71h7x`/#J|v|]70`/L|/Ʊ`/MA +[p~jޟ'ZfD} + +2S]1 +;ȿjjl3h)Ѷ x.륮f&;0Uӗ!@LgoCaJp"iQDhc%T6Ξ3止г2*.zX, cHƅ7>=L_IO2-Ȝ !39cʜH6My$PkP +b/J$H.U6ő>Z*($6XsM)1J6*0BW~ +֎:y;,C̼?Byfk6P&*-@^3`9+!Ygpfm[?Lʍ(tk-SGhK?| +Ќ@AuV%9"fٍ)kTLï'[E.Sۆ/M!G3¤aH\Z ^w|l\#,;+h"!h<ۗ2D" :M^ccmt<ʤ ϝ2T5Ų_5UL':kPP\~6A x%D(۱:ak˖|[fc&Rı`Iܜ8%%8\wA hSK'$?=lC5ϓO&olϼIXYi +&eEߍVjjQAyǣl"8sg9%s(2+sJ [~%siF2S٢ m[D** +dgGc(-5YC ^28c\Ì>錨bsbuo^G ^D<4˸MvSIwFrh>"ѭA!Ec M'7SWE k!T0* "L"0Pu"8SWE冈a8?NZGy.[ Ԛ^@3;P;8Z6NAl΁vAvaaz 3v =6'~Pzh}7.wL D!oh7kFɆ?fn0 N1 v0Al3+!{ܴB!JrQ_@4ܪӄm c%+bvp{*#U'eXpVP}BZTaXIв j UAh%F$ ]T:CL~%dG>hfN QN,[8sCOsa|!##Rڬc%ܮiW0m0uGU+>1k9SkG.s0vjҴ\.'ɋ}54$lO`Ѧ8S; 췪Ý*7K2'9!)^Ҥ$ IQRSB3-pQRZ@GBVt谈ꘕq̄XAbJ%eDV2‚2(r[cLK*kطa +B362#6280ZRN"0b! `((m4b|ִ%-S\VA7*"V:UI*oymùSBBZ`U MVh WGgsfV" Ě=->=RKBRV^ԥVE$r4|ݛH斖:k /S6 X fW/'/&BS Ζs1%K/;X ҜF>Pᡉ-1Ӆ)ʘvUV6(T ȐH&L7ůӔ$TXSd&EXJ k:\$RLO!XmL} + GĔ.Ԙ,#%%MH15BxqKB..ۍ0$)6A {pWU8Ph[A/8ܛ21!FZh {ؖQaKՒo04M40D-#[X1-`hl`4ZT^%%ҰNcdcd$mOٹj&6ew[G)&O^cFtZdRƑ(6^ ,ѮqڛEFI ̛㾗\H@c8}X-Ie;1J16[4I$( X'45Wp!`, +K6t,oo66d53 ᓃNbQq8`]ż;˃)>Ir7#޶_\%edҹ;L6.gНd;>Թ.1|rZ]Jcg( d:ȍ.3y>%/D̞w\l`ԡ԰aIfDu@s:!U gL݄M鲧C,q:ԊX7cܡB78mܻreϲcS9ݔrP`md1χyCxiQycM-UG#kaW˭ kQX~񋯌tF$P/a2S.rG?mVC@lylwn~]C75y +.CDxgGHS2C8~U/K xB9BP1{xaĂx,b1ܫx x1뽣 +퍺A{1|=uf|dt+V<ñ~xzu.?XQNo;+AQ`�|u]b~A e Z4 Hly2h lbW_{8ǖE ?J:n2ݻq0bGi3[/6 ')s~;^5LM @}#nΞApʙ> +nR{$B)2͜T<#Jp +%f'9WA +v+Z\^UPl)G3K B"q䍯J8lpڝ=z>Kyn딟JCC 8҈ljk1[iE KE +L7{<#nf$'*ӥ:6G-?ٔZJ +XR´zSZIްN6*  'T l7SE ʅ~"՗O(jTnN8S@ҪJbP&ӝ{pMlG!)~'>6r$xj['Vc +>_7j võ8MbdmpC5=rD7!ȩS. RGƠ9q"Rzq+c cD=yN=vn3NS2k.J?<]b^_=?ݰw]R>,6B\2/_ˬ3{(^Yg+Esb͛ЂپIC5 e9>}"vHXjW~ːKavl.JՔJD0lNo̿P!AXjrNf2FWb2&.Jז!.P)1VrJm*ټ",Qq.ed!S22Ewi_!CXF2X--P5l9оD:twtKWF($٢ʉ +i%yO.9&c&Hh^y׎R(}ZEi-yڥ: svaꂤ^mK@y}@7͛?.o_5: 0K͈}h-Ps{6gs}*cvl%Sߢ.Li"k8Gbr!Z.ͻ0}ha׉IIDW&}$o;C${KHӈ5 \a% m +r D[6*ٰ!)"AJۡL=+c$X].n5S|;ƶGf_(QN$@%.Vm5$2n7H.J{a#9ξQ>ko bHVĴFD.:p.A$K:7Wm9ޙ}*UfIMZd2sYzMY?ҳ3LLÐd4MWw=R/v.('R1WT?}JN 8"$R2M؜JBLg9u&jwoB<J0R~@LIuJv~fJj|.NZ99K81V2L$YT/ #^5J+y2?S[?J%milV2;h5usLs/\^];=+g9u-gmV3V.2Ke4"BL? rPLBRs*E`挔j:LV'J3HU<6 ]J2ڮn/q%1'6ql 98:gxTlgOGCViXci f"~}J\_4i +7-2_RXU'7 +^:}i'uWԣط؄$]'%ZMYi,QK2xٟA2Z\*f- !] T?AOwŵOMAP7}Z5%odR<FԴ2i -;/TB&H97c^k#:6P2ۓ# Eԣ ݎeԃL;P?S#Sߕ ұhsc3z2VpW)SS31I3rJv b[{ë +4=(u Eݓu{#&DEפE*jM:c!£Bnk gE+qǸ=>|QR}nWG%9D1Q25hQ L>dQNUpT99rVZ%߼Xx zD{Q,M޽GgUvg{}>q")V=UƼgnUa]ӽzK쩲pYVUt˼@|˭=0}Ohݠqa O0`Ja;z~,qd>1^;d;P!harl5!$ks+e` >pA='T#n~ AGbFx!f A;rѡ\j*{sSrqe;d +a.FQ$'<GD +40n"x_hrO N:Dl᷸xrpr*|eq.FhP& (pYB#ǢFᷢ-ĹMQ̢̢YrYlKdTuu7熵Fmܖ5̓tCTC~S !X0KAek&CY).I[BdžZB#"HԾAfUˊ+*R8411&u,M}Ӂ*NJyUQM ټŻx ցi˄2XE߃/*qQyM:/S<&TaÎ,.ϰf/,fVϳ[4ldT!YrhP& +\`˙oES4eYmH@lFK; jZ ݵApGO:x%x ^ 6(k0Ӂ+"Fң)^$ŭWH`ᡮ[ٶm۶m۶m۶m۶m}?97JRddd9W|xS("wG25:˳O/jN/rx.Bh #^2>1QUuKuO@ gψoȮuHn;9;IW n$z@-.,|Dq`|9ּj-ðE2PD Fs=ܿQ>\E` E9زZvt}91^̐u[_E`"/ڏ)K +} ernWF>f=Yf;^Qz\UĉɎx>9nM +=MhK,EsIwGX)bsvS< #k_<CiX~%5xS5$ԭ>RD8Ho" .=_a"oVR|V)@]"3ߔ}TByz{Q ؠw: lvA%LώX|FߓO'9 +d:8'f7!5gC! ^O}hL5U(}j#ZKq>B:1<\2c^A"x7v%{3EUK I 7T:`\ ~SS!* CzUyQ0&GցbZ**[g- D-NWb%KE duFeBK Γ3V-p7d`۬G&\A=ˡ8bi9c! '^'}g 7$1]8-դs2%{Llc=X4oDu`Aw a,  ! +"'adz1Z{"\.[ث\ȹ_qM {}FIS"2G&gra53ίHMnóKj}m+x(.6Ԧ)7&UmYXulQz88 +VWrzpyWЗD/OͫÃ^´T6JAF0dcq B! 1)ݶ1tLF >UD0J5 {F4++&RӹVb^ QFξ #t +[{X!7)•xؓY])r7)ݹER*DdԪ@&19Ӓ(1>qb)v/n^I|On[XضjPNBL+NQX?Upw[N~凩#0{[,Zx=)w +epg8))D?bM:qi]I*@v2@ NL 孼> u~9)_ĭ@2cs"RRA`Y +N_^cm5'VjtvkJuq6d6-q0|ajaϒĪ2BsYboi^f>CYĄ>0 -k`]rd=#7L>,ze=3!>`P :fMɤ;2jx/ j`nb{O=-bJzi ̗Ԩ٩(H40&vŀ(`(NrCls=˙='  pHw<+|`qdw +czFݫ%r>؎qCUJΈ+TMwn_r7_ަ6tִ^fd~x5י#Gdvָ>)Sk뾋w.u?rOA҃&FF\ozT-`_#&4\*=61I 4c#!f ;(~3V[18[Dž&KGp>d((<,M,(kO2r?rЏM0丩vO-u1dh;hs$aQq&ٵV8K-_w性EMm]{-<3 p O>mn# qEXf fa@{(pLZL vlG﮼6-TB%8^"`_߭:b/YnNr3D0 drF؊Gi.\>O;xߛyHRvM'3X%we_b{/g\#=p"e&WPσ>&e+C),W^$Әy"<%\)n_^%gI7J o[P-|(:"W}8c0+`¹;AH[_;ͦARi3FC-Xo +ҭuPFp= (}(r;>{WaR(,+K@,*_~lʰw v d$/繷fՆxmLmx:1Yչ3g`+ESt5j 2p&ЂILsJ+Dt6u,W3̄#RTkR)B,Vc\zx~#.`:1/$X""Zząz1&:y@P4ƄG;˫2< Tf4J*Nrb3_ ZV"' LҗfRmu}llݕk5{;¬W?dAWG -$@Ţڈ2NT]I-9TbZX̒ZYWq;ha2Elw[F{:MP/hwp\U@2e~ ~w#?} 8#&~ū'}4h_ e~$Bu'Uz#Y5`:wH'ϔ+hߡ}AU }PU={ }8O14Ľ8V8`V=#=o:7 olw5NX8>~;__"\n$Q(Lϵϡnzx۲ɍZA \-H#J5~,Z;H{=C*6;/f? $ET~t ᳅jC/m|x {k +~쨏N6Z+)h{Knb"${獊/ЗꉕdJ:pD٥t9?ݯĤVMRIInP{#?*ѷ~e-G"j+.E{%4zζ3o8&յ`z) j͌fG'O. Kj>a1<8X/c\'b/8lazl!b* (N7 +ʆE{aNON@GYL}%6vO׵0Z `}mD7*Dd gJ~h<eO52 <&=yݛe),p|Wv/$&G?sF~]G93~V=t@]ದB+>#P >\dv_f3W3Yg"C n* sf1YD̃o ,bAז~zRrm,Gur%[@DY@US5X)|6,j~4,rlXhPmZq9˾~$Bp]d4  +^m!Wxڳsn†KHϠGԷT3Fܖ-hEr$',В=`NH^͑ՖՑ=(!P9SRB/vLRҦ!#R 7z~NPwoqFygI'n17/Ux{wc0IB7L?wIt>_V[Vl;qҜL?vҢHmV92Cr;V<1-Cnu, +DCRD0ѸJ>*M8)k=UQ7HRToa ҏYWiV^g˟Urpcb3VhBϲ5 6Bb{aO:ef `LQ7M3r4lq1}dRB ϴbRneIQV3;]BD10k!76=kgNDEf\vQ3Jq妰y=xP`Z3Sk^ctsz+s-{50[޹}QCIoL6UKIC=}$[[xߎ0ʽB Z0;pBzO9^H>HJN%"b"J[XlMAyC`=(dxmS_%RZ +.1z)Ϩt^D66o^:Ӓ`Z.{^-fOp7l{;B%%̜4j87+97/i)PunØQ63A4 iYzh2DEK! MǜxFq3ze@I3GnF^lԲZtEt,u Y,5f rC7IT> +euWil.*V[_l;-^"iˬEϨb-[#>$n 8 0SOzcĕ,i=ljYBE2̵ [1/=p Ӌ85!ڝߖ씔3]#&5T +y>5 щk$Vn;@ض(؋cszع WN}Mmba5E2e9x/Rl5If(aںz"A$Sb +q8e:݆tP4ϖmqs"V^*r#vkjENs^"ɬ + +4EuFa} ˨7`LՍfc,nC*At^H՝f9*qA@"e[ί (jPaz?ѱNX"Nѝӂs)=ebҭrЖ^ @WV攞m&F$LFI-?Gf/w'7ѼĸIԘ^y'?T'A@1RvQ<8O α<дF a_oo>Hvy+DSyW5|woF+L77@vO֯ʴo Od6@m({DN/@VFe[vϋNnL`znߝ;#;NoP@a|@1!ʄoJB5,_lzВjذ^zТ,~^Hm;,R؁n!70#nwDidlwiVD+ycyCVQdqDVDb^iH/N$ ]հi;0+hd=Ch4,@P%V{S!nt%s;^;v, p&>ډ;#wd n'v wgVڻ_#qvxg}T;+,}|#L/,,niv=ډw=ϥCo8K={#*3 e?{eufmM{Y'E'I'_N^ii*=76$>S}Y[SǼR۠JԳ5A2\aM$³\hrŦPGGҪP?;ߗJ/ö-vA!KO%ijXMr kߛ̡C.Y-jԎ_a/|yzm a*fǡMҙհZB{ a媹[BQ&ܰMz< BMfaa]Dkm^ g$Lvy +s rڹB%C*Z3aTol/Co{oXvMp!菏BvrVֳI4Bi4RۃE 7 .5PtxS|؜xnQC-7d<ad%V0$ۜP{i/?d)I?urINeq I]FhX)%%r$2TɜpkTNauJzx̃Xv{w͋/ =aXe߯yj&m + s#>on#9n_ҩ_x;V{,R|TnqiM 'KnCUv$=^`Յ>LZ\ ;Q,Q"o0:a[}]>/umhg} ('oC;e40>mʕ֦('pwx( ^b+[/ĆG >>>f@J>I(Wq~d $q|kBSi|8eI1;z ꥿7!7؅rߘ o([ݹsu ZIflvjwA6҄s$ ³bn^@{!X']'U+&yV4ĂԞ]l2FfgТ4UԩۨFq8.L9*W$M_(܎>`\LΘ#J1fi7#ޙ4!UvY4[(g3PS^1Qx ׊ꇵ_\[9Gޕ򘛖~6 StM#Z`BezMl82s%d)Z ߸99Fs! "-$ \wg7g|(B$i9n@Oa(xhZÓr $O"N*8_#^,?;+)ˉ=u=:2:pv'QW +ww~̗ v.,G݂RB.ڑLWF"X6Ę٫olo.[$KT$k%gv jҏfUwE&(i)[MC&]2K%|k@qW{xzû[6n!}w׵utBB,m)8 Lyyze|0h;NReg_pK +|D$oYdN-AŪp^Kܢֺdu':y%kF̪BbP1AWqh!ݟ c⨹3(-^K'c1Qj'=nV Yoِ8 +Q@PJ,W5n|c PWbqj; Vd瘈@/Œ>Qb=aqD7E #oXKa=mb|?:ѿI!Ϝ3h/큉Mh嵉灋ѭַ-fz[%?2,q"dN< %a0Psj;Vוs%SJi-,K>Gymvb&Y_[Y0#D-ID0BA5'8L&n6i3M2ET4+?N# (Mr~Ě QD`_=+=?LlLl[I0@2㔅LI55VW-  -!.>s-Q-SM?=NLAxr|oNv{ad|tXӠTt:&iՎ=צqp`)@yAO'ES!'^pbp`$UFaR=ʃC'F' +ڧ DYdLq)cpqhmLIVdN|yV+B`jS:MNjf3y7psJ0צ`lf@@`f4;6[I8B+&VP;yh%B42n!5R."-F7ӥ\e,76H/=}.eItG㿽}\ѭIXm1l$hGſ\ &4a ɘA2xLhF }'"Ԯ)M2)aRyϠϺZ[bރsvuٌ2ቸļ];zcY䩲_>o*O%YzBSrB7fC\=6D_4 ˖oӼ5G![鍴w}%gh)Gߣf(6~djaZUKND' 圃#R.+gG{@D+ݙkh+޿wڥ_`LZikULKJBpeBO?1CvmS?W tfI4f7' r1, ]O7ݣ=vIghldƘ&F㊺I@\٪^t[@B"raWb 0T{QrE+#LۥQ +%UDW ;u61N`x˒k~c]?Oz̊\+섑]fl=17H.);x㛕K&Y?Γe{FP@>YLdqFyT"^:ԟo5|{8>xH?fOÈh´<7NDt$ ~?&tD#>m"")M֟913`pR*cXWexƀS9(6t8Bá;wň!c@6oK#S`y_ŋA Ή\2y^7ܭ^0i,0ؕf~/SKG[8mv`.vƲ V!ZX,7wA)c1$S$k}>vGst:us57? hLpόfJL<csYf՚˨CGmąSݿI<44:阼Z6c8f;JAoٲjx8ohд,kh E#\`DXۭ@2`@EgWp29<tuIhP7Dbak,XVNX>ds#xKC135+#>N,:e;5 o*f +Yej" S+)WB+iӻgַ;E,Jw-QfW4!㜴x8 ͽ73$D-f!*BwrKT/6![{Dѓ&$d?ԕ{*"Ҳ#}rЁ#NGD[HlrŜ:ܙ}O1 +VU]]u:󩝥#u߫\eV&1&ۉ0i#pWd{~ȕclQxHbt\c~[yZ9̇,/YQOF|Wأ\L^c愷)Br΋ٍeq2N]E_+H5Q-L\JVAsSc~]9uY/U-Q&KNx$; W3DlA!0ЭQ@ C̄>Jp&b2?|n !6I[3:w`68s3~``L:g.E5]d +s +̳nϵ.], =kQÙu.}4V=a&luJfvإ% MNQl8=D`>#8a=_f_r#1%f搻L(>x +̐ +NnqZ > ۨm*ܢ"`Ӛ_׼oc\/<(yO*bVo +z_=ai+n]g.8~"+"IPbS,[NlG-W?Ii&YTk,"r) <'1}txLxuf[x+jT,Lia?j 7}z-@ :5Mi3r(ӍױRbaѶ%4wҊ{`<^X nyk-k@?D +}ьĻyO%:ATۣ0J bt zF@{< .ȿևHώ8£߼Qld/6@_p )`8 }{щk.D<Z ZwklK)|h )VX;N]E٫=5ߘk}R,lvDž +a1%܁eĖ q$'ʣƖz{fc]`-a൲sdY&$g6y7hUaZyʰJ9jBM @QI_3N|Djuf[eQÁ%Nf49Hxq: FUQU/T}׊ZJFEzcW;Y`֕)y=㔞l Rq{D^#ue*3( +$amZ 4W-@p{bϘӤ}@XŞ7|_dgä'W;xkv^0Kj!D?flڕ- _ +`޹^)u&XM>r}u_IĿ1{ >xt ^ܱ=Ek >j>!ݫE{Y f }Ba==jw0.U+Yvk%wL@'1SEؑ|E +IyŜؙ5L~^qrO/%a*݁x}x;<ݽE(?钥nw/ ]BCQ QC;Y d?$CżAs $=k\;Xyp +9hႭYh>`88|C+@pÿ/PSngI;/ι,Pgdvsr|~N K 49ȶ[H-kVp +PEpp_+064Nx^T=yq$Mm.C&+gsʁ=9ޕ#psY\jte~7aOw*lܴj8^"Xȣ4M/ zlc%v[3zsw(gL0j65 C8jx[fs|Η!< +W$ b{ܷxƗ˅s wӟ7?ԫ-|b ~zߑvmeQHٿߑ7 $ņ$͠VNj!zkx] lǞ y2Gv6L,Pꗫjf LKWuD6 NC7o&!'. ;ғht:e6'sSvQˢP:`s}{@ǽt d74]?jKmk)o'u%cF@`U=u $"0G:~%ȹ +v,>r5hsa@ᙔr󼠼ndZ +xϠ~A) 29Inn=FJ6ZUl~74^勵Kj_}Jl'vLXCwk+45V8 `aps͸yn` +ycIX{JDu"˷2}-r+gy/޿& #mAz$1qe]JefybqpLe5_N1BJJ`V@@݊jmuJu1prH%6<%}u`]-n],j,R?,OBBrKO#c5lSrQA^tPE,dB^8S#fj$ˠW*R {N8O7F(ڿ}6&ZD;#l#8*{@7%]ޠw[-)OMv, Yh,X{aDSlzNa~Cw(xq06yD7ٸQ(mwD1L1LP|H[1 i籼ܰ ߏS?Aamp +1*x&kSyV/hlyGdH ZQB6 sK~2Jl2mf pnW~@hSqc|ò$QGI9tdV>r9|2l]p\ +F +?ʂY𯿏0τIDw㮛iT#/2 !$t Z#=C=ۈi +5WK_3OF:'wuv$^Z$ QkRmA +(Ȕ\ +dgjSX%dhA3O2vY3,Ϋ&{!R^wv[{z!"'.?T`n">:X3GWwn˲;vЄFF>(iyBy@ >O<+̬[q4{>იʋ [Ӧ +߫zS!* (ыJL +qd.m2Gl>xb#4Mexͥ;TB%Zh.iS7 `4qa$&2̏aϕ&LN#ԱVn6PdH_}CHW2 +H{̴>+ +yٿSho38]wzo s:x :\cIalM%}~pc%J\~Z#Ldpu +}P@' n 2چYu|@ +v +I/ס@)xN CCQثh%A9Owi3'u1( mp^}gkډ8NP;}9g hVofPIp#^2`'8ka"C6ʉb)k5&β8 J՗yOLU!͞\(z7O3HCư]1-Kܑl͑ ;BsK /#9gsA~9y?~,h,$P$MY ?ޔZfZoIzH$鎳o?cAn1D%=䭛FWeئ£mυࣄ5ϲ$f̐!iOO)Թ[Xbs#Ez?zMK +r'1*OHkCYRֶRiHUG"CYHo0ZLעGKW(EHe婜vu]X!B^69i2swߑz6B)ln,~^<\Kpk%#now$uol>㦦 %fk%O [V|C)+8H-beF. P֮]6& S+䁅C q!#!}&J}}b|~wnF$k QjK6<\KT]Y\Wq5QvzT<ry^P Ŕ#(ܥG^zps΢p}'Yx&@a }-,!70ℝ*_9 +0L93CyoVR'5}:v +Z3.mT猣1neܼ`xgԥs^nReu8͍cuoXSs1%Uw5XsK2)m^My77'91 C,/>acu3)\KZgRMFgJ[NLmvj ]wQ}bOegL4}E"ʙp0s ,[%2/2f%Nٚ4XJgNb^\-mx.$I٢)^T/{ +9ڌ׏((.vo˗%]$- Dc ޲>IeΓFr4„yg6e ~;>mZ/;L׋3Yl/3&-oYKD9V]p^E 0[t uW[kc95OQe;O\V{p;]vꌻfh(Daʑ-mJ[Qhŋ_9rҖPe7rQ;{xw^O;8'c]rDIo+j5![S[)խ?_*&hAc-Jo9ԞO#7U Co_ope6^W:/T0ԐfXgI00;- &P#1Ɔx^nm.jr:$rBZKU&U6{l%􇴞Bՙu{j$_-R\UT+xQ̡>/԰u1ipi܉ՅO.V sW [`!sW GC{@[7AElv)R|&-nxB.? H?{|-"Q#fx\7HZކH?cƲ|:sҪ~b_hd8-Wn!.MpoWCXuav4/T-,G$-&]& >wN2_ٵLϕ`NMv➭5E&in)^mMAa/v x*-$HH϶נl"C Ϋ0jCHv7 *; 1]CDPXEHT:+>a紃 8Ōy Kj|\eDl]X]{+:Mi&={E9 +YѮ[ e!$[]EK|G}jR-ݐhZe0 OT!O< 1j lJIjnc0պ `˜ܣ+$LTac^ V!cB.: X +6 q(ӨF[m<Ҝ}P4w8/T(ݙ- nIN-@Ůih¡z" V\YmY],9(Y5VTSeOC >Yl vL +3aF6_-9˹bq% +ؚ`",^h9Ƞ,2|SN &J٘,.uY/v lMj' E(e goSNCH8[CO}B׿ `Iѯ|(k}8 +@+}`HI}&C1~\~(=\So 90gyKS O}`rIeycvʠf{껇ٹcjm1et*Ck,?z]Rc1K`pakaXY))ϕDc? : .B̕Z͒5z@kOCDNA,JMXc{XW5H,V}aQ$sY -%EȬ}F5zCk pxH5 'أY<4) w,U8fIWLKhPW~{0?ogr(ٓzwKꍘV?/!q<|cw1;!.5]'0c#]C\O9Z0{.rm&W4Cў/ +]\֦5y1#UeŝX%фM1D]QGo1/jvwO و䪋ঊ@ -cno]=ҭV7L¹Y%/NwP 29$<*gZ"T!\ ~Y 5gFCMXg(Cz}ɼQݪBS. A|P+h˞{.4kϴiXh~Q%sUuσ:[7شgKL}Tb7) 6,J7B)[r&⨧#NDq;kp\u,ǤYj3hS~;/@}@u%$5dUjb ed**M,o]j2YRצl|%?0Je9ks=]87gNN[/ov~dcNqT P- +DP"ĮSTEpD"F4wm8 d{Q9keLՕoض*M6eѣqm4—ݳsѷ8' Jj1(n #rQWҕY-eTigJ.yN:9\&gb2wY]WF_OێZSh9Bv)8v@מ=&ePyZA;MmUqF @4T ˺$ZЯ94e>ˤ=o4vIķUiPg.&֊)-'_!mmn"}<ݔ33[:fh-)[צ=W\ MlAOqI}GdJSGCyt3S1 Lj( +Đr=K.\@99N9٬@Z^pJ MJ/O??Ѹ53#C fm``JޭNjV!ډݑx)z{`w}MYt/ N; ;!QknjL ij6}'UI@84;3/<$$\k!o³w  4&ko WSu.|G^9G^*'>@)eQ0d9,0ՌWp[BdQ.n<0Lb ?b(O`5ܦ[=o~xoPݶa1@,&qˤ; tw,wţ|aݤ{uSضZq^<=rcBCn|"rUEiG qZFKsQW4O # *"D{EFg6ӂ7uѩNП(:b]0e}}O뇓M|%}ڽ<*v?Pi(e ٠8Qj] 8\;=sNweE,i]Y7$ĹBƃWUW 픈"lፒ«vz:ݫ;k^0H#|>zttVtkZYI"@k7@ DV*I'qPN3 E.Y+ hξ͎"@>3G IHV.l_,'5`&S\\8PZ.LU\R?Bl1ݤ^X0Oc-yP YBX&V;Je.0`U`;S-C.) dL -s@x~D[;3 ܹ_$% ý#@-|60M:—ddNmj~6iFJL)*nt }LL~m{TGL-Ŷݎ=-}V-+[(WqV^.ELW.mѦx6 Ee:N.m7]*P?u.T\db/7F6x9\~(ou,+ xȓ*jj0濖d 'Z$J9vvT)x‚Ls$^^ʚ(bIB̠UZXzPe|t+#f#oi +NuL5f +,E6zy9=Duc: D@IoTmDX,xOZm*ulynb)AY;Ks|m:uV0L̫ (Boԓ Xj,5L5w+jl +Cz%rh 3a̢頌R0Oyvtv!dX2ư+ 9_ Ts&"FZ#^'EykMJ3opF~%MVŸޏT{ zRCTնILE:7Ӝ6irK; &C[Is%YZ-.|teB l_/aĞ\MEV2{fIؚ߽%tV-Z+T6*!*fZKqwO B7?1s3rn)㰗G?4pR_ceA27N^+Wx%l!`ߢ478PKST+Fl D257ӪH"rqu fЍpL ; R!m8 .;#a ۯud][z{?)-TU:D1̦5U0,tfwv;^ +28GFBT'H/pByl'Vca1tݒ +ԖȾo C]Q'%JEΏTDȰ 4CYN-6TQMb 1,U( b e۴.Ml WTmJ)!jy14 #lV 1Zu( UnƬjk860kd}ƤMȅYĦx!L/'MB]&vfvȮAFLa8)A)JFsmQMށQ|FΚ3r؞ϑBb_$M&~;v׌z,_m\00П+Yw=U=j9J }3>k8Twon"d[JtRdwJJ2La&O>cZ'JXd%@3Q@䋩tb2SdyfCK.=v+)wzJObx^{&^NmLF%u'4V+( pR-|2U#k# IcNJ(B + ``GIcπ10029` +ڊI_@՟(. +^c趧"\*[S:dH^W9]I@u"Be3#P 5U^bXIVj0:v w;QѼV|Qi(ngMmZ˵z2"L,g4,g0zy{ƊI`CSY = +hR80!փq]"^ךe?M~ar`XY +{ +%Q羇U(M:s=<䄿c) j&#%} +J!ȶ8 m#@ .B %kz=c"$A[TŊe%K+donS"4 +S 8"m$w; Ţx?Hgrt4qL+YP'J9^؛87@)J 7mj#䦬g njYɕ= ]K|G)n# y(}8MXՅH;>C7lо;vnUXP@Tf=_Qh^0/]ۘ+2w )kUv$忶\3 +Y5# =I0%;ïCMn^W 0p7[:cWpLG()^ pg(_acfh(*e)7U@|!"Ei4`ϯWn{`Ѫż74m@u '_96 7r?B~DW^7бB7aZC߰uƞ98W6..uD#QbYx.zS\9pk$7 7FjfGX{Hݜu;d᙮V j{@I*C%.m̔f/iu Fohܡc'=<ũ'ht188ˮE(ZZvUѮ6G4;3%rmXM-23o%O3aq!@g6\󱗣RNwbEKFVX[(qN H[Da{ϙ8sy2K[;io;]14fp2Ohv`Mzy޻O?5i_<θg^Z+/? zP(95JmU!4nT!:f3!;.Zgx4kxZM+$<;ΊTylX=}IVϒ%#=}/௦$?NL(^=MMI +wKWL~ʚsNKAs:`[.eߜ]lh#6a|L\B! oT\Sp0q( H[yNֿd[{iס#GV {V4N>#z +B/ʍx991!Q;J Y23+ Am!XC `wcpѝ8{G9H$cK٣0C@Y.bKC:@JCfg͋m9rފ O~pىN:@SP㌖hjdVF;cΟ<`-hEdg}me=WwqYYZ%9zݹ%yQJ[I{>8g[cm DfGA*p[;VͫJ}ULRSv_SIؓ=s|ΟؕO;Mt ӹwROKa'smfYRC23R>+ҲT2J ܥE~]FnbElEg+s,>vQi_;WL_XE}ΨX6]́>l{&d/{Ğu3,ط26;KGO-i;'l/&͏#ߘf dTcx TQs0in ~L ʭ!ؘۆ^΢ ZSk'N+cNѻVʯۛl=]O8!oC -`/NZnR/UXԋwƪO\,(R񗡞*2c>k#PvIu؏YA9[$GZRlW4Jo">ʖ\k)LK \f]ܝ})9yƃ;POPz*wXLCb/oȆ_}酑!b+ IW Ee Xȡ'~i" x敐,ACDac!^z'nG;wǖz\KP<ܹQj-^ K3 c$uJ퐗ﱳǪ-N L3\(8DyfY~',h-eXv22Zo%F}_@V_,.;=3pV:ª?l7 ,S])î7"uͅ@Ӎ9Hs 2ԧ<=CԆM#҅VݟAܓ=Pc9u pCCl{fG3w#=tk;hǹGhrӍn;lyVik3w{6]t|{*x*ە +qNj8+TN7=*jzЌ[ +y [νI;U[7N +$㽖wok[ ⯔fϪ彡F[ ovYo!߮ 9 EMb 6GLc,GgbYBi27\.OD9?O9fYm߇f5ˢf.SD\O<7AFڮч*fmA.9Y/nSOX͢7"oG*yp#:hǧ|!=tIpL]8]2 +<8T$yہFu"VyƹM]\%֬|N1ȎId L~#dq q6`}ec9sσFg[*,*+?)\RL<(ABQfty<_(:F4ܖ>Ӣʁ`\[r+(ƖvӀ[ S!Ȥsitg4͹lJVs%>&ߧ6y%mP93yYVQHsX"LDo`*1qDbRT$Ye!jyWԞ 3]+`6# 2ZK* yz;Kh:硁Ȉmd엓ur]uxdSԺ 6}!mt66N jylϋu}h/.·Uuna\g|~b#5E3b\>7cȐ\+ +۹Χ5 +ϩ(o%@ƈnV MYՆ4SU(Wf+"fSuz|\ 7SV؋aYq@}:3^IWIQ&˴<^{I6hE VIFN)'r@[" +It;G}q=GMZ.N&*zwlef=D*-PRя]a 猃P&m%WNNҧ՝x ٥7!]H‚=.7ݠ'OC1O;OD|wG oA2My6Ew,S3f""M.UsjBwTkEW!>!Cu@d +ی\ۼ'1v]>&nP=@i#Rv3)|Rl C4%XqaDF"$\$wQ`bOqb⁃%&u9ucq}I{Oz^PJT 5:p׺\՘nS'vt2(Ũ=/BQ;v[ML o3/L}K3Eĝ@˄ikddff5$ƄQՋb:pFq iK+^ëQ-4 Qׂ'&S^@Qғ%ɚdkKER ft^\C'`:hd&K^ d[> h] S>? œA{+AIH=*_zU]v!w_%TS'L#)VְiY[[ #ز4f5u)x' +[(U9"$6~p1M<}91B0 # ?q@CqڋSG$4 G2$L[UbS -Gn!,(RLg۵GHV6ςY \7yɸYգ9mU|xOCk2㍇4؜['.Ԥ-9x;Ԯ$s~kza/~٣@NZ24Njasڋk%Pwl3J>bK#ij=6`?[Aʺ n@!nJ!|T̜&1lYi 5Ę,}fEH2fh ]-ÜjSʢJNQ(zxĪ/(OHiIU|z"/ ܐ sBIɎ#Θ&I +<@yOsq_0He9/T6/MhYk Z&_ᆚy';YeV! K +:]qFhQ1C $<"?@O,K _ξ'RrC1J!'&*!v`J \ڪ@VNR3[L)$ސK| yd1Nx~&}ZaqPP!Ϸ.|q^xG`=ГRGst-'o"cQœߨh]`*DN])^BAU\j + +yެ0T' SP,n'cw_a _+E[cG[gT;[o۔)?D0?4j#B8!| hc< +b@Mf͏DI7JKUfۦJ\݌8ϻ[-r~?ހ^`B$iU28iWѬ|s9S +«&+ܘz5IJ@MNKbU_*MKSTstٙNEiF>vH͹y_$'+7|$䌕:-4n/E'B[u3P +ЗZ|kdytk9bB梁UsU~9q&چ} Lg&f >L`΂m4@2k3Kꈦf^nLcJK+|k"\plhm,Yus[i۶m۶m۶m۶m۶߹rvK+ec􇨭Fj|S2\N\,A_YEV9awtzH +G{kζs^LwwEYBQWZ\a-=܍W$%64f,3WZՐ˗ڂ]qJ +J]L/- r\B44,bɊݞn_mb\in\l-վ#YYij)RmZU7on&JzMZFQ-r8Kh$ (p-њz T'JEj43Ⱥ#0s⹱QӧɍffL]E,P:7Č,MTpg"dueyzfYzCPd64s5(zhϰ檒{xIeFYZZ&mƞ4t$ܨM5nqIݹفtn[ͳ"%rirhWb7,+ +{kӜAzp I3r ʱ,kݰ|_#--6Z-/=oXYkDzL !gف;`LjD0b2n.`ΰo׾ < n4pF!^c0"6SsJ$øNiǶʃW$3S3?Q{(1OUAOv/Ce8:l`AI$ ({]Pơ@0gm68,Z@h܉mΞ%4hXA&j:\xUJ{2X|!L&ݮ!:gmAaDZg^%?D mrx<4*Mh l5~LylΑEծ1"n!'̝?Uhॵ%óhۆʼn2ʖpgђt"L:]H͚u_X_6; s)I,CW.[śݛyE9'lJg~ZΪIΰ'"a+pYE۬;'"wه^LVzғ0{JHXY]Ǡi-ӝf[ǜH ~ u s[avpemU (V5RVuieʊ yaPye, [ƶ] s;A ]petp" Wx%鯓WC8m55`3ў=8E4*~/z@\xy>NNJ?6J@jM*̒0g:WtX¹oЬ\Xвfv jNI/+]8s*ʥTk^P^\f5>9i +~f=g-hҸskh%[~nnΞP4-AFmwX*3RbXR5+u6"L-Y~}ti$cq)oqFX@EVn'=MN׎hwuOqrr5ahLIDuj9>z~.-;uV7U[#ܓ)Np8(R=?+*cf)`\pF<0n-I_A\SSAeni&gEBj*s%Ҡz!2ӹZaݹyJtSWG `@{DnWfչ[iTY:TyaTc)^Y[[;Uq~.Ts{ܕW;WqnT9W9P)! A< ) +I`!8‡1\wEehF ]&m8];$Jʔn`{w(!h{"ٝkT+ԓAw tQ07ٰ.&yLx6 UD䥯~8'BwRg\߶^Oe:6ZC6DZaȸKO|CE^}g{|1K3&{,Gz֣pQB7_v*|6*XLO^]S^c mZ?vU3*4gmS%{I @ʆҋ "W2NJZi-r= ObMrMh%tߒu#؊=qW:Ot敯i%\bw^2Ϝ.ʇ'6 o0?:tF}@Q ?[!5m5C^:-I4 yؑ#$yP6ɩAx~CQJV>>Ү %{nԻ}PzD12pv[wwp(CoY^ϾZ7ڝ3YQ(EOE^ScH3dl=/y%fCϕGRٍ̾}a>סjZRvg&s0dA85C0310# q R80Znhax|1jqͣƃEs♜eV[:鞛 :-:"6#dó-)Mc+r~@eoe) \MbF&,bN L`ƌLpG%Z%l5ݙZ :-VmdaΑ0l YdOnTf m1`\4RٸG7dD Y(kmNΙ;v&0ܒ<!e PĩW^H צg6A=6R;E֣մ2-J0y1@q3-WM1y jjf&"I +02% NTlXeg,[4@cZJ>{bvJMd9go]Bt e?Ve庀eJ*rJ|Q໢j~GdRĒYf,e5{.\ٱfVFie'hyFo1^d2AgUo +6P74K ZC䊵.9lX^XMdN,D2:GXtf~lYY%.{a5+]6DMp::jul5ʛP@_ߨh dѶ+d&l43A 23aNѮQjRoa|*VKF8(05Ps5kjrpڅW&XW6Vh*QE z \ +T +:CtԩOهzK̷SC\B>0܉[lM!5W+m: .G~-Ζ8.u@Ȟ";?0,|?PEǼޜ&Do +>%=mu.ΐDѼ73>-JRGIf\ˎKVy|X+=#a`8+aZUY?Mw,7f͑7) gvk#f$2 Y!&q Q&uYҳ%9jO?b&z:dB]!ʬ k̏8Hq&U(/l,ȕ1dN=ABWU(/9M=mK#\)ɒ\j"ɔ1 '޳ASh9[/&#*^ap!ᚡǸQ|uHu!)yCQCDe> oZTceTEĩT:?<ѺVj =X\zz9T-'+|\JsIqC/|Em4P0=1Tl4(ܘxx%ьS01Qڡ4R6Ҝ{y=w,tOe,ي;bQT zƪjUg#j" -n(|/hQ&ꈃO03A +AMJLIatqb˟V(&@Sǭ&uDTI: +[?q&q s+fE7sЪ7'Bgrw=ZNƀKn]nq:Xcj1uhc'x[YnY}"|4meu@’( l+j붧:Ѭ'ʾtgęUr3\KLqL!ӪnNi8\HY7MȖ ȗfU15W䪣<(n="!Pʺk[5K~4RbHK%/+59m sm5+W(iOvn=P9f|~7m0G69O3$TZ[ܫVߧ5((Dg\p +9 _C+/rJ)hOTSqcC"_\,)/J4 z؇jjoȝ8mMxBq}mW:|rxmpNez].@"G6L 47 ͎^q {=>@mxGщl?Tr Dԉ-?i'hшR\C6vYUm=0ێaFv ֓ѮpGo=wَiGw58 cd~`CCȅ80#; +5"Ch=5ѣ!;$5bңz`R R䀫C!?T-mFqz k@G?=إ~W~ڥnzsN*$M2+p~ OygԌ}щ7K}OKݺKlwfKyۇ~䋣ۧ~%D~o=ug- E; +֠of.sַ(;Jba4ĸ֣$m-x'$ݕ~׫^݇0֕R]ez6e%ݠ%X>BɡZɄ"zb昹Kv-q>_i[(=7C7C_O'nYy?/cO{OFʯ)c80<c7p8uիpn.!a;Y[ڜBx[YO|Y\$z}ĞRۏl!/C=i4V/\!CCAϱ5See!MAϑ`tP!/ +\"Υ>oS;}wD ǯSx)]r\?E۔O0o3=~"_bYGFTc"%5,iӖ:,tby䪘*$m5,IwބXK:Z2 ZbթfFU*%.͍Fq''M;OMf ܤJz/ ג ۋnߐnnn߆n9 2 Ŷq܋ E?ewmeKhiK z:@S'`9dIa}u۵ `@&@rS@AvSRAC}X@ç؃Ds Z|׉A%UкiJBV] Ye[]*0Ũ\fnV(FZ l>(RFԛ)5 )w4:D_ ' ]tbvud#5IMcTX.5^23[ŤnnId?r}a)_rrO,}xň*#ЉJ+r)~ҍWd{Eԑ"Y[ Hj2( g&,cg'r%(_oA]/Iil `k'ZFY#j+y%ϔːP7m~9^ |jX/'7+3gR>{$vHjCvXIOiaA7H,A\EP8ы__JYo[?,7-kb ޶( }kb.x.} \O8)_{畋iEUTG嫭G-+qv2v?þ%ЉUBϋұT=4]!FMÚ Nj.j. +rnjp" +kKYTn~u|b^+s(K9~9ӥ<хBdgX6.*e!k_sSm_o%^w{h7d:L'v"wa2g{0 Lۥ-kx1w qf"VV*-uA?5 rCV1j}}=5*Rx<"cT<^FbLy/{b#M@bK#(uS(p|> hm!ƑCv"dhPY!(` ܴ +Q}5u!}!E|#X~`H~,ƴ[7LcGAv#ǁ4\~(d,|gl.OS$ya} ZSDyl!01!mG*AzGCp6c@9p*!^Ww.G0cr\h!Z0GI0gI 4xQIYR ++Pl[ GQЃmX65pi r /EZJ8 yFNҝC_j`% Y|r~n=2Zɏ-G{mOPbtZ!PZF{ή $:2rc~HF˰kl><_NyQkkV5,h9 sIp8:%1wgiMk C?yZր`Fee:G1C%V*aJE4P/Κ(w!}[EYklA:pA5[:0BÜIuiȯ+&; I/d%o&+'!R8HMȓC'W҃/ޠ08'$Qzz؜@~q#k"8[ƴbȑQ3œSӞvTצ;AU+PxgQWXOnlj VyՕ2f^N[FwD\%^&-{4?]^m={?[]߽ڶ7?J& bE0^?Y+DяOGC..iM)az#A֢ ÁAV5ZB\\kO⭇΀G 6|PCy;~B_kbifoj rD_@~JqQʵГ&G%Tdk#ޞ)얢T(UjJlۥOjFaya %F ˪丄 ͪ؄&"5K]3cj'u7 A-4,\^aӒxQL{1fLK/adEMcyIbfچ. MGL̡qXrcǰp@ќгfw6T4";t^]'~ަ_+3S?D``0/#qo)k"KcÙv)i"^gNr9 hp9 j1cO tFE^*,rs>JVt-h| +cZ7G9՝r@ iAJ_H3O//xqRxSa4-}ߛGD)bǰҚ#Mr`ݭM-p)z'`^0:OROvD2zm - *.yR+0QWKD/8(w6$LO[u+=Т<-MT?afHk?jeM6S`D+?ã]%;^1)4BH8&K\7oFqy$_(Z?ܙL!9OF8ƙ^hTo^cb}C?Kp`fNPPRDR^;a%TS6@=@)[xE_6@D;1f{όܪ_S-Ko?ʮU[OAK' qբkE(*UvkJ_񇖑&ݬ Cw ,Zܐʩo)(@8iBjR)W?}sʘR|ob4rOD}pC1.|V1{xD$Mgad4nx')koB檁=xM]Vc8baĦqLUR,<'*uiNfyZN)&%M,8\||uƎ@ڶ5?mbbaq"! GQDOaF&ffgf>Cuءi3JgPhѢ=q!ZT}BD$ +=mM~he ߤ:/T_4*|9t y +nx$C2ojA$y&MKŁd! .#@%5K?^ +kⷴƶH*"!@inunluik׼f͐ Mxue{>.0c xt!zŻC}c,>PL=`a }ތ}/¿z o,_O78' .P: dfBGS,({$UA" "TF%r +āj~ϔy[C%Jv'CaB-@`x +BP" +jɒw'ŠE{4X]lyO{H}SBR ؼ`jpuSYUN(0ee*F @O-& e"Vp`+VE=uЮdja6y$-Ft$iUbD))/?ldHhj=J$R1-ٰEeйnJZ3ef +r:VLv9ezU[<ŲV}%!qD;v9ShEڴ OZ{کy!PlM'!*puR-;mJ"c$4ْMY- JcLju}0u Ꭽ+Z.l)is2mmtsR͟k)yeIy Fj]ybXRS'v:S oKUi椕 WM#{~ߒL+f2 SUL1s!yi}QdÙ7   +%䭉[Y [u& HTT[E0X1tYn\/#(fklM sZrZ'\]}0)9kI[/ڡWY] }/My*A&t+L]:]Jzz plkyg&s3h$H"s*o}VukVt׬\r՞8Ig)ˮ.jtWwF|];%]w +j\ږpu95;tTJ]|`אRUZy2bȇ_ `ᇳ㡐Lq|oq7Tф<+Ǚ]99' \RA}ÐrJ1ː͓F̴Seͪ`[ܬ_\vvK>x`΄Ev`4ao2&i,YZCwIsg3yXQP]}7DO34@8W2"DXX(#61#FF1G_R$V%l>փTHd:mn)S5W-YsfvWmxC(G]F'|iAjYu Bvf=ᲲxǠՕ74OiS;~8E7coCrL|#zI6lhQKE}fod*29WTbV׸`` /W)QdNN +Ƚ_s[x%}v4v9[f5wFKw4-p05f-W~ g+tCDx"yT +pF8S7իFnjϘ sUs房tyek(n2x={"Uu+=捛\f'+~9Q8.q+ѳRW1F:q,Wʘ#ZۉѲtN9kL8ey˹9"4n/2e#f1Dl݅5!TвtPfӏczow ikz}ĶB\AהZ/Ew#ӲԐ['DQy-_vOyAбǦv# ?韜-3d}RKyS(Em4"En9_(XN&KKo?܈m6(6#lOӡъa# s}ɬo%5ۊU+S-=\{j'}dvQv;oBë31jA@eVE¡zyYwk,oBYخ!ko8\؈·*ۉ\f _Xa q yD-n8|aA׬Q]Lf FL Խ(*-|07lnx;=ҳZoom[ݢg|:MA<7࿃ ?[nSr`)TV|z@p,aQnkq7˸Au aj>2U7̮?ӱb)t4WiP =@Dv@ P٩7ޙ5i=T($HDCCәַdǻ}JkGiR]V.w[Z\Q&Ac_0g +r#.F";^pfwC{Gƺ\K'gqMfjh#{8~fbSLRֆB+64ܢV0f _t}avvK"\up:Y{` 庎pyfxgi! !#1ܑ\HSOɧ! nӥ p#*~=+O;DSA¶4jaZԟ rEm1#@]Qh"Bn!UӃ16 B?qCʢtEN6ekBm'90;yb(0߱uw;QO`&/N:ŋN#60Js0钭Cb ۔pW^6&m7sE 4Ȥ y6j0ūM[ A^3fF[3ZaScit#4Z +Ւ-SXȷ,.@Z/EuC8HԜf$@aUf)@QTebrP*Ee@T;[G˝t/ƻڀ޾~ú@ ryn՜Ϯ8 Yζ#+9ԒW  WXZBwџj]f, +|o+`c.mnsKG<&AObq;2#;bU6d6ejk.T2gWzDvM1|wiTҋnEB5qk\{^o]N0㸣MfB: ƵAV{n \nzwim6(('_u] !a:^n#qCR, 7a,LEAE D ǖ&TdKQ L/̬ B}z]nV[&؉@ooL 쑂7vA- xCH+dRiGW})_}'?՜[h~aL3ux}w*(SU_Q.}pVN1./G/sC,8*9/Th{U7'k\}g|O*s2#'w6'0?ިϝ^0SK=q>A4KtVxs)=ka}"sy(dP+HR΃} "SÁc%N+^y#U).gZ`濰 + :ZZ(]’2F6NvnNUmU뿋 +A=j)1Bhmם9$/@X|H, $<kwt7?ykwٹ?OCvt`cjy +ñ GD F{M"wϺVHIc 5{OMm->EIWzwճrTMjPJ1>+={rHj."٢#xD Eh"{sFD+f-'VKMsLXl`M-SexlJlI!m6_*awwsX۹XKշ%:UfgYYLdbeP iNuTkT+\y8MFhLFEӱ6bmdવsj +4KJ]; M'3JhQWɒ&l%S*-4'eP'i6Y'[RTc++w+)ok*=䭌75}W;CL;Xm5T޶c-ˆ"؆[¤M׳T5J'V~+}-wm^ G1B1x#BXI~̽Y~L_EU,GnY4>E_+!IK"t"zS mRu3Vޔ&% iXzywwec0Fθwg Ak +!q-SjwE~$fvtol6 /}XGӀ2O8cȉiSKJBtgS~\[/.evxNK$KN"'K^]4&(nAic _ekCtW[Q`4E(y6!8I7CHvN1I›э:ө}N8qaҔDC\-N$"`vp*l1O#҆Wk[NP #AV*VV?5q#fw-|HE=B+g;H~ os(coF.f8̹ 6˄</z=j]Mzf +h:wV_ClK?@? =&2Fb"DMe gg9@ 1Δdp3:XB-Iifvlf<~fLNIBQNN?Ea!IŮb08QiPƚDBSo[:ް6T'NCA $2Ta7^ChH r,C}$9ivc&<>L=i>ês&O"'$Lsa n#~C(&PSҁ$8|,G l$ :;Q`@J{,g˳ejw`qڱGx(&o3 L"S)x5iΥU։2]6sÿC%TLOv(J#AXxYfZ-qrs޷Dzym3Jj)n6ѩʒj2gb8FS%*3RRSmso +D\}֓{)͂!U +:E Sz(0J +k!gM&Zk85qɢ +L~d\2 +] څl6I7뮑 ptl<yK⨠z-4讀35TQyM,i)QơAi>SxH5k0e3HwE.9ؘQp=^6v(8"9B=EpW~(J jz\1\C3mdܼr0b"ǎ؛CV8[_Dg'n=Ov?ar+8annQq=V=5ƧO +mGٖs{:٫]asիG̝AorI}7ס2sl6&C2]iNZT5uBƊ@uߏ%8;Zt-PiKD/(@{:Fqr<d4αjԒ LŖne#=#35w+E^xu@S(\o*,F+0:&dz'PHZ. )_U_Mx{{i5Hy!" (5~UFL[Y]P {|6#i!]πO0bb1Ds'+|ȑ Đ9}&wX'Ve)kOlO/q + +l<ހ8Pqm8ؿ2T˄5V?Fb U [RTWT;m}Un*szm!TO" ZUOљB1aO::o'Щ% qCHviq;U)ʦv쪮;ӄü(2ѕވ,qq6ңM2ꢈiHP,f%E [ȚUN2מ`QV$8fl -P6ڔ nw yɃB ׂ:p*YMv+)Mv[^ +xw7;Odށ;O* iaW!xkաCGD΀ⷜ̡#X^^{/J  \[cs=uCl FٝYŻx0,ʘk9VTPn*/=49]pK}쒊!.1 xEqm? J2ޞPcl| E`SMSW2k2V3t"~?].0*lByR]-3r$ݛwv߷ o]h GQLrTD '8Pd2Pm2V2i %:81qtX-`~3P +e  8B˹zN<`tw* fI]_ky:cӉ,V\df-'^bTӚTj}R=\ib]5*:/Huzdw#;զ7:Zd[$ۥ۔Tr-h"bIyҠdخhiV#Aa7çA#+:B&(cԢe)Cq{LDD!̵HԘ^yGx6K6SdQL}@ٴVmzۙ~Ypw$ܠ@ww)f Okuē푮ɻCTܿ5w{x uG#{IDS :Q?%;bȗko(7GIm}BQMa Jo),qXmm=|Ece=F +am|s23L"eȭӪ F(2#п*Xk/a'a#S-S{dhgu Z\I ϥ+[KsР %SCrEgXwC,σF}# !%VӏJʑf{~)@To%k6MRQ$aD: MS## KE+uK2Wdu+J\2kK3.u|,M߽vkPE FїMrS5ta~y`ravaIb/ ^z|-Q.wOq QZxk, ¤ 2>_!o7ߖ:ϲ`t{Y0.d k S_+/ȢDН84qG}>1̈́>DW!1ƯvGK7-\s{K+]A~YLy#{5¢b]b +\S:˱*S&{7[H M=["VT +~ǡIKJSnLnD KE['%&MjfZI~"5Vh}sSh EӘ"jMVޑk~1< GJ`z_dMD R3V`H:O bE_Y-0~`kEN5k.D# F+)0 IL[e@qLd" +'' >ب3V'$oU;cyf2 +cRpB~L]7Q r@x &U 22E#B%UF`1Eqgqbҥܾ*ͫ#T3re҂(6_0S/Le3{ڸ]ڰCn)m]>U>:+gq=aDN@|!?"RXWg."&r;4v1{=/mX\%]Y&cA.#c$9WQo ˌ.AO3'zv uC2A]-j>K^>Þ2.3! 4c )tO|eZq+O^{T![q3&eѦ}_}`֢ťh흢)*j|f=syOb"mJF{%TPuVdPr}rxH;dW͞WZ[=x=~зұ@n&hR˝ܠdiCW,M5ƐݎZv٩o=˵eG3hvܲ"#W5Cs=F|x66Zu)tur6. +ӟW)Hr{f-w5hYn7g(11nI8pEpπ3,m(ՕUf:vRQdÕe2o@EEGc&5q.eζ9#qIzs~FMJ0W YR+nXHs27xK>cFzlr&Ƽf s)\d(~,w &CԲc-=%zm! YI 7ruӵ/?v/|)լzʥX!):eq )o;=^aٴ`w2*g?vY^Bdc~NDXShퟝ@iag< ;D3 +m2>!/tJHv{׷mXs%hJk@âZ64PE7!]ґt]I5W0*_1< WO=d_!ڳak3ε{IЗZEcM(bp?g墇EtSlK |0(~2uU ]!}b& +c*r< Тڐ-RPtLb3ҧЃۧ/.v޳&qtfy:P(- tW@~IG W71哑Z^4-> v_p\\_]kvavȾέ 0,NJ9-lL{si943Ȭuˬ&U#M(Wb Sh ECJeөw>ʪ%WKy䷃F=DFmϩxKpk&H"V!S [C-|4VElSuz%UYE_.Z?u*&gY 0bC.,X5?NN f}Kzzo' / C.CM|ʚ$[s*WᆊɵfRwW GCrծ̣/Y!ZAr1n[ Oz-r趭{|Jޘ?_>O0kBY4!ˋXd6'%E quk F'aDT|RxeT˧>`1%RWw5ӣ_NLɪ$6!H~AKSzduwcx[pRm;OJ +tW!jR&1Og3K?KK(n` +KCX"VzHyu'8 HCwXO[lƯJgWEtU!jw~Ԓ?4+=] #@Ba-2sFkָVKwF9Q_QTgļ91ڙ5Xkȕ֝ c~gxӾMotk};lg/Q\Aq'$`mxz#>"i >F!$!XC^y[ WM(86,y '-hReIS GeTXAWCM&PK:264eWn82=a|s Be.m#qIU"c{Wi-p +4z8k{s:R7;EB"QpK;5WַNNC+Ϲ݃I'v H ">Qah bŇ2,[\ۚet=IWŃvcXe _sgHsBK#8P)4},lfC{>$>AԼ0 ,7omZ+:f!}XlV.jtI-R7(䝳cAnCx/LoH]ΞeVi>Ŧf(͞a:).xj޳Fi)n参|rn7<]'7?z{@J<% ygQ I%[a{3qlC*a&m%Sǭ[ߵuUw\TI W<@@)/F-K hU6aIX]=M% phȶӷOLu9cM9 R#"\j Ε$z{ + +wo>&n]$A& +> A6{oҘT NFl֥57,v=a,$2%E:ʤGكf.ڿY>nQnŖJղf]TH 3"؊m VQl(ƔbGJ54.{TR?+& !v:?PLPuo?MWP8*^~L5" O4]u:G尭*k';:RT9iiO@wBܹ>7~y>d)hG7C Kա鹬^h4֚)W(z>8M1q9e'B3Q\h1hΎ@UҬ5,]UB(FmBOe+J+}7}4ے'{.wyi,;c}8 HM!iWi>VY*JÀu.zvmc-̙c(%fQnCw`7]~ْ(pMG8 Ԑ;^eni ! Ćx.y7|i@ LizZ< ~hGF#3W@ H/}X>0e>$ 4G%i0ŀRlY#Ďp2 +эx밚24BX Ys=boGrX (Bi9,; $W, ER6ĄRE.C+ +Jx<L|Q3.2UjQ#fͪ\hej1#\=֥! z9A!Zf+Z[3慾EDRe֢!g9b#ZPΘ*f]"$a\KPQ4FPUʉwM#72A釣{S3!`WKsRڷC%&s 2X֩y1޲$ W$ YVk\зe ?#4{/z`rv4|^*?nϔ4@!aU*3O 7wɎQ}7m7oϮ___ɗח7W_V"mj-hAsG~\}Wb '{0 jC KjlFjp$zÄw" i݉/&5wx^a`v&>~ecܒb_wSu(m2^9nTIsJx6}[$~N.5|vڛeCc2֚ǫ[nʡ1M$ۤ-/$l +) +/VĚwJc|[kb֘r\G˷?;.(3l5;b\ڂ^hӁΛξƸb5uPkYeXc>qR;HkJ+XQB +XRGA:UdkvKXS^W`fJU#IR`"ne&(W Hkv/J>4;P- pvm5,jVfLt0؃MnflY+X,`eJ3IVIjy֙{٦[]l'Ιooq{{\D*{?MV;gE'R%!(Ӛ`UUYaUie  ,**oNJ%cYLWLf~ZawITU}8#%>G2n]2^3Pau_ BX;\av>V +֬|%|TU7ی=&u?g)ZdCu󇞤@UgAKlQePgiukϰUJ8N{Jp}hZpmMBW*}ܲT|Smmi"&ݢuǍE44TY>lZ-NY[} sggZsrȢ<ޏ \KXErg^i_u^ B}rQ*#e +[,=Q;=ff0ikr))vU%%e_#_.oSş,?.T7"KI5rl-G۾2WVd> akC=vLz%.<}?>yp6soLi %ٴQ~dZòft[!g%N墏(VSSV7ޔeiɹoSq !O(Lۆ, 4f22i#)ǜc|BZsY[5%e^y#KYsCW+爐ڤ/ L_y%m;m%&~Ss@SW(f@nww:X}@=r@}0yXp,HygsP`|s`?@9 `MT<$R$7jB"jmOiSPangj1 $> XÀiS _hSNjAT +`!A\ +D@A$`Z@# 6iLC{H{h{m{}zz~Tzvuhuuu? +z݂6$?ݒݚߑݢۄT(T?26tH?J)ķwHwhoooQ_##‡#߭GȇFߣ޽+3=|t}}}}}y(GGކFGGGFnF+c*͞T6cw ?X5f0wbm܍Xg͘c aL1sGVYF!Z^}lI0F^ifؠ֛bZ40^xcz3ɘ8H^C3eY3ʘ?`2&2Dm,ҴΧϠa^cU3`\su3$7 z^qo@+ǀ^e60ԧM.A ͊F'JTdtICIKI +P@,K %ԓ!)CVn$$ "!$HeK&PBZT'T4KJ%@jC "9s|"}Ā)4i 6I^Zu8hĀ;I? :$U$Tl+I }h}pÿ^Hj$?R4}MÿH7H$?$?mRب~3d"H%% ~KՑ~w~II~I~ߥ%? mQ=rxrxrpp`eapx tGK{|>BA^A_dw2rq9 l䂾zAA /#&)#vxO%=PpD=iH{OGMz'֟.J[kZo +z..=$_S+ 2qkWc%W= /.=}OwT KN]9q#vż1^^4Ă6gwƘ]+1|a߄,OVRTa0 kH6Iֱ =b $!`2Rb"b @(]uT[/I>[o3iFFMߙeó&xCɰ:Ӂ5'RHt8SѰ<7Cհ=R7C0_dɫ4ξI `=$U5d7"$ڄaJESiJ*"RET D7ccC$ kJ bk|QtFAu&YdHK|9y5JY%zFYk9"/qK\Kdy/Kt"+ABXF0 CV*CCVj1JJڙZb1jL2ɚ*̸5ΏtTT'je >KRӕƜbM+P c'5Yl☵α5}۹\u bۈC$7`1  ֔?zZ퇍Vї%#;W`^ɩ*?+#J%GPgk*ݤ+sgEUz*|?ISG6)ӧOXQ .5$5GR֭67BKżVvNR[UHT(ǂ*)%j(&qPRIϊZSwHxۧ*m,Qefj驺΍a7bwEIgDvi/X5TBSN&[ + +jf˓E&e:WL{j .E;}%\%V(V$x6_**}~>1ػRw״.` lk.$|V /Fu=9z]>g%_X6bv嬸83T:oc8њ~:N3Y,n/'}9y(V k Bc@TQœH;rԓ\J&֟S^4i3IM[rޔaADoyCr2J^oLυ'uL}}\ӛIYwLY,pO>c*C'UlQnm9i JN}6b3rJ\7nN:PFn*3fF{_EǎOeHdn$N$Y~X x )m#.^Yzt<gOLtl=Lڤ_ɲM>)mLjsFX޴k6qͼz'ĕkz] ϒ9rsj;&폡ȨP?2^>wwv9@~mUZM +Bssneb_]p7W1}qmdXG1ο{ |:ZvPP[r.~ޒBJ/V^u_Vcn+$P +H&T+x"it˱^y^?"KCogS"p-ѣe=8V +7_j kЄ]K=2l:ir+;(l}]׶kמ&[nNQ꬛|o +9lv"ʕ1LK;NxoTpCh98׬q\~#TnC<&r?R$5؊m#P+'O/$=yD9Oϩsf%|S-"9$j=N&w +gxXW=S'_Po _\.jq<Xa}ђ_uκ2Gsc A _賫 +AZM-Bܻp:T<}Phx. +WlS6iNOr+* Ǒw=LSbۿP' t,Ne'+#bZ jO)3g2w`q}اI;^F>vODf!d7!vNMږ*[,y 4mƐ4BHc쀦:#y^Ѣ].~i Z<<9#hC Fh0NiU j/XV{9m/u/n[cm#Q`+r=kpek'Nrv|9K5,^f2_b|Ib8ϕ8 ,?m2xҏQjs|EFv`MZmF??=VbJE_*=#a\Y>ʼd{vvX*1n +T"[)s|am h1:2g5%;'meCNr X77zs7b^k"򝫋7pOQ(';2s<7O]:-7!oBÕse=%[)[uG|}y6Q.uquiǶj/_n8"%K%.ǬnLèv_NN͌~Hn.m6l)m;0(qWx@ZS05VwvUO+|xٶ3۝Pk@[&+*Poy}cP~ح=oz~##IgۇJ2Uvo*'ÂcKfqۣPеem|{?X}~Jmxє`|U?@!ʊݙ]֙Z rȱ`{w9׍̷=ͷ=}}-juIa}{E^T`rxaU5uJ_tĖ$h۔YxaX#iAPyn*p޻c}U +=jG=7V؟UuLzW}D[xe /H}z}ަ>)2-+dtf/{шcBʷcƧ2R4ޘJ~Y[^G7qpB +kOs($a"v)xH=ͦCi)K댺%}P+d0yW3C߉iyd- OxᳺL>/!( xb]/BCƻP!P N)[պ(d#=X6$Ĺ{MOZI/u_(r;\=~ʣ:"Ng.<+f¸ )A|FDg޺[YHy ^bk|O2Q8+m8=:~̣|#OdQ@D8 ܤomy9ȘtLi,FN_%w839O?R$~$  9SnJfu*1=x9R`3n)K}Jd/= ̃ť%pAҷL)K}гɮ/?qxl#H;鼏DrQ SIlZb}KT KVc(ÍX -]{E}1ڜ^] :[C1Q=kƎvr@:ذx`jXi ҇/|M6TG֧c–0g[f[f9D[R˿_D--yQ˜_Pw4Vq6m; XISǩǭV30 ?ݧIփTKaʤ;KSabӊTus61ڒzhyDr%VG*m3K +uw0>/N^,\װݿ\=~☘smJ$K%y`0WB-Q!EA"űtLmuƦ#[hLCO>tŌiu9&^A9}Q]d6ȴ?0ݘ4BR4ۂoc7O2B7˻]O/{%흗+YWsoy~lwG]{SknY:6r^{ 8-~|O:WVgyZO2_iʝ 6梥’Uć-+IJl\)JaBX[՞Vr_pޞZՠ;#Q&e%y]!ÚJr-⌨iw1 gU]ާ4%)Ar+nKT>@au-C]qNJatQ}E{BoF+yQkjb(}29=Aro`+DYK1_.j3ZwG>Ũm^K 6霞Q`A_]C{gSO@:4zAcJcu3 4L-|%SS^@JNnƠ=*Tw+c A7u[ Sd {fvb1Iuzw|Y?<~y3qJ؝\35tʩ;p[Bp[;)~_sBS _SLGoS`笝 .=u N3,gAϪt@稟 +UGEVN3soθUi. NFړbq8Gs./SoSFϠ).͊,'F|eNSg,FݑvTG]pGUQg[G`NW9NLJ{RR ŧm%N]}}cP{/p>uWh ugO.gOC}o|6u@C 0ľ*?8AZV"T|I~s?n}> a>MhnXonXoM]b"K " L@$#!L`~55PP::.^ؖ@mj5:_DkWj1j!̍F ~H0?_ݾv<?{%} wԐ8bLwc3bA +d쓦apP R9X!=rh (:gE5T`:w69\r >#Ƞ́1D +cs $sOLڃ`2ˁ;w`Ɂ 2tkS!SEO֏xX|EfU젫`Ѕ& W:Oyqʫ&m[@Ұa/`V0A1[ +y n;`v n&qZvETsYF^{cI:m^cC1&Vk!4dr o{x(>\j4ؿ?SLi{JMs&&rhc=wB萤M"*-V23KK#K:FipM-::jj:[Z[kp mn 'ZZ>nn:GiiI$Drq!$p}r!Ira{*i=08F3P@3+֝:/Nli>\(CXj靓j?;ꝕ\zX]>_ξ읙}hk>nx E?d}0 BGQ$P}ArCgOaDߐ}zCkWqd}pz@vCo_! @¼)߰pzCk93ܩ||;Rሂ !|02)*P/1X21aۀ#@ilz֡\v\{a\!\|s 3 O&W'ٓ@_||hHx@W\: 'βxԎquPh~8-g/Ak_}b퀳ޗ}G}4k~|GM7HtG<;}G\;ȱyG|;: Wz?hz$0W{߻+VM=ش6nl&[5늟? 6s)':1}EP1paҍ/&L fdqI6)'MRi1a6>^bi)SK6oi1EC<J"ŔO|d$Wohɀ#Y#]"Ő"GeI3L$Xƒ-D`"m>5 +p ]rbr=`rz@[q\q1ɿ}X<]aZaabbZ v-& >L<f5TX䥟=uOO>0'Eg\s<LDej\zL3< +J3_<q-\M-Ŕ O +S,஑ǠZ&`S]y+Gn\rVOC]ГZ=wP 3@ Жk˲aG,Xܣց 0h[EA` #`ՃfNj׃ Rkv~36l]J~1soCऻ۱=;޾kkecp~mg1gwt$Q#:{ރ9$?,A`'N4W7OΦ>siˊԭ:Z$ܗp3'n`WJ?$Up??qK Aą&r Z:pgAt` vς9GB4ERրjSjG30OO6FpW>=f WzQ[ݾ{Nj_ĽZ ɜ>~T/x{_WO^s1(m髾k鑷 繺}_/jv:۶Nw(;7JX~ҽ;7Zx~Խ;7jֽ;7z;7-܁ٽ;7/h?݁۽;7/Xށݽ;7-ߠ}{YQs/d+]c]Z]{rU(HdIdHHȥ*GuMɓچ)}S )fj/U/P;ˆ4A~Xr+q}˳r+ˆCϴ+ȤoI2\"?NeᙸNE2\GI♸NYβr#)ҧXIi,v Go;-in߹ >GĈav6Y+v7dux=o>+VVO K*qŊ:1ź_ +Jb5P5BylCQs7&,m[٢A#ZDZՐqjZqV-Z|M-z6lI_~OKwh>qoQl^ppj㭏ks/U}epky~6Kh0m: emNhe"[T2m87ec~OyQv -㯝K&Mc̾"ÅN/@pmB'OMc(B9_ +cq!$G9{NӲѨTi} t$l%MUj8E r"8,EEII[ٛȓE>̇f%&~bg͋-lllj2l(1y^>_f PB^E4-'xf-gNdkXb+*{<&]H},t1CJNĕ!fǎ4; fS3&c>wQ\H準b4ٸ#C[1߸7Ti5s% 7Lj*Wjpi _.vْ6 -'RM?3y[P9&W[R9ޱLWyUM&ԺVQl"Y8?FJC,1G"pK-5BmKa+_fO4rtf&fi9:'5 Rzʗ\ YJrԵ}ʗxPe'V׆k +&HӘr:Ħheed4YR4"Xh)KSBd3YfG'ϡrǞۑrVpMoXg"iBY;2=RpER0e6r LukTm&-m* WĮ)2Ӏ;ydrv:۽xy:/$-Pu=C| {ܞ|c(r sqvQdYW\sq𬧟F^xKʍBԋ|W6ښ.@ngd@)15:X<(xq "g- ͠8Gm :D 䮌p ]9i%ERUM.|%s{Jo盞lNux_^>Cb +=Pn +7Q6lKNe:OHQ|Ԡ_N>OUg.YA 1RH +%˧ +xh%S.Z}1(nS굙]VU ֫I8J@*կr\{\Wsxb뗧IG3k몗Ckn=ɾ7:d9nGELWef[82rII֤Lp]fD\G9x>*; ˏr|=c.sLI6ߺý3}bEus1 ]z#V4狨ߝK Qr"s3]D %K~y߉Ũ7XʱwQmLDWn5v& CmN +Dl眍kםn1x{n^YB%+nC"Ws%/UwR6=24jf@kvN<_#$X(\g#UTyRc Z^3 D1oħmPU4ƃH4V Ѫ]sÙg]R0bMũ2!^ |Ӹjg8(.G=*K^R3g26Rز 6Dz+x!݇}Ė!5 4|OI22ETQ m#/X2S .f ԡpPsS+;F3õRS)lUx'KkjβT:d%(;|n\Iepzbq_лVJiGu*2+9U2x5ff$ר롢"\랞]vv)4(bW(xFt?€gP0\ 0ĭpٶ(0벭c3+tF*OB~uFg n[CDq?sA͓5 #&C;JK d@9JI$0n¼j3m-de #%ɅiKkɂ=Bs$}O]9$zx#KtFSz蟀ѻzbdg!kSRLRGeyY;ݳ4IRo@A)2 )0HD"4p(B9$p\fJ q7j*jֶy9jGY~[muuˊZEes gYߦWow-W_Ϗ y' +a}8mix/^L.9.Mn9TAo8o^b~B^C%:Bp@#}0t)F4݋$Mq mԅWTfOnG&ov:tE7vJ]\H6mNōKp$b1|qۘZ]~sc[]/tuaydLS5:- %ˆ' +tUy]YHpt +1u'ur-9A6%0< uƑ+T +e.i՜OkE)xYg IStU`_sFȔ.!/j>ȩЮb+-c +-[4u2gn{U,9gPĜ0cV8g6"QNٗV#]Ex%7ǣMN!Q_ԘE\F!1=Xz!P?m%sI2hyױ7#;KR 7EqvyrXZ +6j0%-ۀ~+v_BO{,v8=]+UHҶWx{l 5mBW[5ioT꺦z-vurݖV%샞r0}#3kG/&EN(ӰL ȥ>g{k3y9XT)qhgoiyAL3$GA,y ^0L}v4gZ'ybj(23ߌ2MaksesB- 3a2vfFLL7_.ܙ}SO #!I"3r7dgm'F25* \+pfKmkqG#O] +K% #r=3#Up̮մ.j|-~ ǻg,DGaȷ%xzlG1l1 Gk}C[p{ÖlV煢s`er9z C'RٙI݅~$w&&^PA"=*jf[pJ6oIG2=LZ&.nbR}uYӺxy>cS{` lY3W.'®|nI]lO=;/,q}L Ҟʞj)gjqETQ{X@x!!e:,(d*=! (($E*0KlJrD n5ZޚOVrz46 º}9|BiV{ڈK;oX/ G+ud.mV osӄTFN PuN' A(1Rrhy覾] ] aC<#+PvxAJB+|NH +[1!aHq<@D3{t Ztb*^&cs f60(0s'r^f0>7sV*D_rHmCH'+Yk1"QlNـ{$snc苕8=ll1*9;}^mDu@,4 +*%|HoRў=-3O/G~֢t U>'pCu,.!0<8a,Dc?0 +NZrxs )܅>;%0 .Vei~ i/ Tg2cl-YHsA;peG" +b-\4ĒFQ$;0\ta'esՊ-Z?lurR&'| +5˼i9c?tߵZz~=Aٲ6> +|HnԷ;N]=`OUn=FyY\|7XG eX,$u:ia;ܚœ%V gr6kׯD+ !(J"·2nG¤4$(' \%,zeWeKU3zf@(Snx*eUHQQ6aor%w O[qZuzIad +mߜ0=tpCmScmSzKaJb ]e`K?m_!'2ǖi,A]!za :bh}g9'Mߎ\r@.<&/sv<ۅ2M8'ILͰZp5C*'fXaD=jt?fXԅ8YD9 +L``ws3N-3 zb)a6|BN|,KҷK-_)-:ʺWWH˞xFFXop{oL>}Yo0q?a<'NqA> 姅Z_g||x o.xhG4{0T`?vC>aF7auD"E1%aOYq;ʫ^Q;AzB>}CKA, ^h(J&ʳԉ!fѳuò`yrOo8Gp_n'zγVky]ulytq?F,ON, 0LI~1h-ʴ@>%V4j${bQO6h{<hPpRIZEoڀ4фLK*(S35QZ>5 57t+zE \$biuZ{ wx;DBAióe_ +8_ˋ $bSpbe +nIs,8 킟<̤!&$zȳu˔~?%*AI1BE8:wZ'mU=KO b#{ hVK)xV0De>X_| a,G /scEMy6^L[4%A5XAO?%^'wOp'|bVf;}q>@o({߱_ctZn/'sO۲JyO$/Zۃ~)-ejVS]-JeV-\y#_c-psu}՟b/˝|r두(O\E3xwYQ?x -8?/ le|=3* Fٺ%Tx/VNj2ʰ^lpHn_ +ѧ>&O2gMzj( O΄(Nah +.Ou 3L=I)k~`%Ix7Cq R ؤ 4'1̪IvwO{,#z,mBN*kІڣh2IJI[d5r|MN?ҥ Ǻg6).(+6B {_>SfsF$p +ݟzTB1aMw^@u%D:! &W +%'hI׃[z4&5V`Kl}F<ٔuʄmjƍ~*i&f!~0@9Bz( 582Ȯ6XYXe9x3Ȝp hh:a +XXB^+NIL'E2 D Ln\.S0|NyCK2?עt=կ6[vK-gS#-TnqӟB?D*<*c+o_KX_!ݙl+#M|@*p=9Ql2̉Z !XZOˆzu [}}֟ց<.&.{  ľq{NOe0Z (C + L2kHFC.k≤|ݸj1\iX[G5:պζC3 Fд) bhmmKro^3EзE0ʤs+nIk˰e[Wk6Xw9do[7_ORYbVzml@tqV,Mz+˶/Ro ̏sv)λ(´\Hݴҵl!he +>{Hu|6DXO-bh_6Eߴn#᫐Ӽ@2׸^0׼RGliY37{JSkZ_Z Oyi׻oحW} EX$4ϸwO~Щ- ^rGaYD,DAX:Glђ,ˆ5[ޓ_jպRf7K/X?xY0׼"@0ոҎ^4mXs'WW.k!/i/he۠!Q 1xOO`K(PU4* mj/[Xa\(@v&g$qMa `/]YKJ6],%GYkiGkuiAmoeX~DBuƒ,yT6Cݗ;&mn:.!LH9sn ;%}ZNاj?AOni. !&JÍ]YXH A2͖Vw^K:ieF~ܘaI(!lMsz:Ƣ)OsMEԶ#_+VycP@#RUqBC^SVˎeaEI[[swk\]49th9 [Htn+Kx +:#fiJCwG +uU\yUBttZw~cMU,vQ^evĢ,݄LKzz™<A[yGGR`8q֙nŢَa 66+D {m*1M[5(fB*v0tYJygke+s,u6Q d2^Q 5wRl +MTK1+{S+PVoLlБ[m~DSbV奅kemlstLEЄ`֊\w=ʸO/9gRX{|s$uAu}~p@WU#䵑tNnXG-SD eآաH4wR,ij{uTMUY><e$2wį<޵E4)v䡌@eQW8ue#ucuB +ϡ-cKyųCi +e)N)~UՄ]W{>)G҆mLYiH,vu9DKcYI_6)Gm|MeYUy;"XjzlQ4ʂE_FӻUףX G4 zc +[f+wr2p%]U֋g![ʒʖ f$UnTwu*:]LA=@Xݖxd,,"VDK(ܱҚRHKKř4Y[ʋ٦ErM0fbI8mֵ¥\o_97p{JQɼ^E,䪰iJ)- +]ԷkFd:&z\^^i;ض6%.5I a'ZoƤ3/A3$)F13CNb2 cf.t'5ؐؕ@n;f0& V8f)+ل`SnN?b7]|Ɩ(nԈ4i[af_/&c5'9/$DATv%e:Q&o+I'$RP櫪 + *R; H9e&_PLi0aS7;jw]J+cj5DV&,mhe VZGL%oTtA''CS塓JcO#)Lf-ԸޝQaDQɿVf%PdĘuW )XjItQl#U. [q&v'VӅ"dE!:rbXO!w̐C?DfRT{k6I79|kK,;ü}q8le2Jł3QHW(nD  t(wwLy5O͵mi=򮁑{ߨ QeOK\IG/Lyu]cYln{wL;.\)"-ԖuU֐T +.M2zO\(-dT<;m۞wbZF r΅ *FJJ-`i6”iՅ$,D^o1gNf< ҦvSʉ2!2N]Yk(}GSI$'9R *܄)*~j %яٓfn_FNy +Xڤ{p*hROZ :H0e)?E[:EZє>4jO$V*FC4㤁ԮKʥ{K&vhÕSf'%,V ӳu>:zRZvcج'S+Mz33ɻl^VJ[*_.f`ɗr} d$6,,=ɣ1c>ؔ7F0 #y|Y1e}–3J2 "N ,dscHwXy=t|L;x8`LB/t,-m< Rt4ޔ$֩?wJ6ndMryOkjI%uM;%,Jo}A!Dq@dy)}(z/AaaCB;@N6{ƒ!9kӇ+~DQQõ[Yc"BkFIouz\~z|w{1_+}°^f >S*d*N[iLL]D%mWA{ ¢oXnq댊[6r 6J4lv!]}Inl!^pp-[wSq,GY'VvLәW\\[|^Qnoa/B+&AkB{n͝I\VMW-нw@8؈3RXt'v(`UU^vg;Ԍ| շO-NSӍR(uiH@* ++,;-[2-a%̹hѱS&̾ZIyB>r-l:xJRչvMQ߸"+.ޠJJK%CL/ߡOQ|n52rwb9ou޺mf ++|R=\xi;WS]ۑ|+O^U4{?9<u7]-VR[-X(W-S5@#u*Յz +2lGT1{\B@ΔUiY{%:˸ +qMu<m {beu%;K06t3H{D@J[WEAE׀jn 1{, u4>3~!㗈-[b_|8[T!ߓsIw"TKZ>y-؟c59n`ۘݢ>^ꟗ&|i}(vJ+ 3_uS#?BYO"UW*E d,'QHJ +NIr=Ao2a>'u=$o|* +qc{PgG$Ἇ/Inw̑ PFo}i0㇄bDS + `_GYxqC3Ǩu)bx1oxĬKc`|?jnm[A>)цS!N%Of:U(U=Mg٬SR +oԯAHNXĹ]DBcY]F$YECL; ]\M) [ ƭN*OiCO'i`$41 |gAtîf"Ũ JKPm @K1+:N_kik啜o 4{V1qPاأ̳XJRrG;y4'`Lb=P҈٨v%iZ" L@8Y|RKspM:`?DF +-^\c2m 3 !_ԆFܢ3Y`7]x-L)P痯:fz2fx&M61AQwPj!m4NA4@!ԖK>6v q_7=JxᘁX@Kn,ƒZfr1GTE|[g]2OFUQWU0%.u _GtX\{-A-%KjBk\Vy9!B\ll$"*Z/닩۵qP޸Y$EyqZ@[Vx,F@&; ?p{4@SFז[7r }ZkDcv9n]'$ug;\ԬX"ur!lZ,zӊO1tv G:Y>o?9f88caz9zK|@~wZ?phFtzEj ;j3fއOa7b;#7:Լ~ekl4ecVU;'`b* )$-41UpC'1@,¹"PwպJכXX& gl{$&&r7B%L `)X8AHdjlZ~tT _]`|8|2U= b|`Fh1e +ad>b-?=ScZ‘%KB7K@"=D =rJb 9I ZPʂ +G`y$AYt|kRqfcCMAbql}P,uŽr oZӷE77('3K|9vh(2IBcLydMB>_-X#baA r/g8\:T]:\&Vؠ;tZ%Tp  xIAqHa(Pl9K}xsDq1vuiV!y h-EJozv` l#Ae~=%Ž)zvhnW">BUWU̳^,xc?Ofi䕎Ȍ1ڻ V@U,]QSfK~^VFUE.D&MJ"iXt+X9H:#{̢Z +8u+-BZ=KцE*U +BH):bj )1֊'#n32u%zb͵uH֖I?WBu]w]_^Ge%*T{^ѷ|˵Emp4^ Q!xK"#F{ھ6YxfE^bdy廑SFn-%J %*$UcBEODL+La3%(! ˡo,u%w P4~˿?sIPuߟ3ӑhhH SQ&x;=fBlXV( roِl<~654/uwpR-:jp;B{埐56e=#쪃<ƀ촳?,4:DEWҺSw"3b x-{Ouxu܎gYO4X*.7MjkfnAr +Ys4FPdUr<RCq˽484*J ÂM(YPPJy.h+dԅTKiaLoB!ҕ!QcḾ#}*?Q"DSQIaK}? 1'hT$w)B*>sCrSM*膹83s1r±kSrh(o<#NBd+Q`\6h9("޼LF}%,Z_·fxqUF; ifߓD(ؚv{Z@ݘ.cZ4*4Z|octe#(RZUt #{Ъ}rBS>sp :%ρܙ|<0Q~\(v _ײqXBĹ 1_ % %|A,va +NgquqlRa𜷩c+L'moɄ3}f-;őطj 3?ҨXEN}3_϶SZhd% Y `ص+RRjkLjoАGg_&KK(F/n{`!F?B6/aS.?Ե=)!==M#(yZ|*tx0C;z8✕D0`(n:w(Do=h\0ܑ{ X={)tBplطܷI>+(}0 sEUIɋlco!'$ome/~C:`be/8/}}YGb¥3}8X0{=#;چgzq ]pK8zhT-d%B8{ȵHgraK#D Y\9sS#ʪgJ]RCm(=a,ԭ~yʄKR(MD\,ev}VAT45#O>i/5J8ϝ!D.JZ2I?>ɋ hN^k[9󌤩Jb b#/4xL4w*JZrFJBC$5Aё/eWOlIߢ\00zCbUq O"g_}o`xӱA,xnm`,V>qNq[adz՟X v˝aKX#^i ꣾd& .jᝣlYkB[!By#xux+1x?ta11MPO*xRgPO.xZB^1txu!. 1=wxB\5XJyQ$U>?ȫDݐ +C.0]y!f.c|[Bd~lXq0ɣ!ӇP(07䵙ԁk,};4=2=8{,}d8p 8_OXGځ.{̺d>l+wjI(}]rc6<׆}2fzFF[ɿ"=ǻ|`& TO.׍@*Oy4`vg[߯0::߷mznMsK|c~GAhz};^} 901<8>ff>f޹ccGsO??PA9w(_4toFjQ_<#oF@3QeiVֈeu=hnPQ6TC8 +}Mg?N5b\° }DH&)=BɘRtJzDS4ezSfakt9Yɘ{eJ/cLjm1QؗB8ð p :!?Â)Jt5JF +,j,4"F#mКG\հ_#[8Q+Q$'Zَtl)T1Yy$E;rN!fj3zGKO(5J"eNE@;٨Eљנ[=u^1FLoɞt d0DuN={J@6 Uz aS7Dk% V[`UZg4YW{w(t٢6DW]w4KwFrT]^rC\j[z1t>bXz +v` wL=6Ժw]fCxruȡ{OV@sk!yJߙfEpLýn=}顐#֟`ڹ='i|d]~HWӗ~Lb3Pgd]oNpTsͺV=]Dȏ`apC6K4-t\7Pk_7l+ok}(ԴƛonqyV&cNƼ<0zw-hOۏ]~{ (۽:>*x&7u7l3Nn~?⮟޾0$>nݾ֦xN@|cLGo&4kagsj@{Dk/[=ݳt~fC6 ڑfIpˎM芖"=/O1© B|P邰Z9]*Q㽱P۶!ua6hi0M((;+~9K:z ߔhBD xlj]a]]<zC A8B5bX " ^ F ׼RG_o +1Z9bL}B֮||fs?Hca~Yz}FjNV2zqkVXo>UiwL(05JQr{*_v K1#cg +|$&ɇ(m6`o b:32sPᜬ MfQY]oA8wTyLr_fV]\i1 CTbťNxseO! C+CBܾ=؍?˞;B~[m0MikD ӼN ^'ᬿi?0TlLҬ ܑq9|(uteJW" +ۙB's#ܩNtJ6La"B#H+|fͪa\.k~Zz/aҤ3f%#q{ ,*)dJ",1ǧA$.潆aWz6Vt߫ݲOxoը/ .~A8ߑ$0IѸ>+|u,hez]?z , JYѬ^؁j$Җ֬ 78N]r.:x'9h[<6Cp[x_(g%PkOB8+ػbB u–j2~s5}v + idxD+[T+Wr!տq 0NY{A# SZTS%]~|^ ?߅0@l)~lt2}qNK\%/LC2o/]QΖ3*R72RenČ/e]u_&pVˈ95,əY0-]p<ӎ`7_Ҡ_gwb${tUCtc=xx]7y=Wc< Q3sA#_eDLI0. 2j,yR0l̏ \7|VIҊX芞6xX6:HY2<1\_<_ . a VBн m{-7{at U[ x4йG4 ] 珈 +a~gHoHl{Ԓ^$393qϽ5{f]BR-Iؒ| ms"ok>oS? (?RɼSh?Hy ]fMj۶m{ͯm۶m۶m۶mq有={"*"o*2*J\_͓r{rr);l6BX0Zg(sYD/|iʑ*U/p~&ISqgQ9u'( /쩣 Zn֖Ҵ+]l9m |'!vSIRfc:Èk% 8^rՇTD* ^e7F UwCV_8f^=廲nQ퇓* ;ףS.,8 +WtـĈ 7dbCI%cP=I?Y!N `(锌V4օnzrH^ɼi})2""Q焼&PqUcӛ2ÁxSw/SʌsWqG~CzE}?P$ +z{0i>Bsֆ!ɭ % ڌg2}? _z +ՈN beБOu-F;}NGHaSirfw^YȺY$}4"/zJ3֔Bt,V~&Jջzc銄#qew%]ɛ(-Y@G'* ' k0lG6ug͙kv؍ZsR`@<146t7mhsf z(ڵ,&ussVNh"0u18I@$]U*9Oz£vCXZF̤Q[x.*o{eb@ v̍0I͍ `Wq&v;nˈݔ.(e$[p/nMjeݸ# s0z%F:hR+eM4wذ-XKwEu@!gSt"-?FJ@ aڢi]{C,x +/>G5r֦$ymӴP(Hŷ$6 Ϗд6N3lr-ŵ@zǵmvƶcu40O 0o/y @ +$$a"$Y ⒨ N4/N(?3yrC̴&4G Fs!sLXI~ .s]3H !a1GhS刊8x a< `"1:5sul2hdvf{)(AtH6K&zπO3s!?ҘotG̴# +wtrgC[=lXh/N;X85H3[MO UPt_8ȟڇ=)sM>/q?xvWh37}@,}Z7}͠[?bAw0>@1ԛ0f܎&U])M̦#f3`s>Xd2ZTh(\%gԄ5ȲdVzB$1K"\ +J@UK N2[R例Y%e''yJL|.'qo.t6bipAJ]I_Հ+؄&5ѕva"@7 +-;XR;@5J|ħ$R[IY+ȑ@"8GWqQ3U#ZPBPq#!;n@1ϬtY2$9˯p&E huA/82<)Le\i0b$e+sre\`>%sReQ_44Ex1% 0:ʔ6x')X1L/br +md& N#'f(błdD1,qjR2~[͓e~ q dD89wbGYμ};T*;$=1T^ I*yPbLn>P5b +  yi5x+J3Z`wdn!>Iȩ]Pq'^'%0sqp,caH%')QZy_($g [+܈MD7A +$mţհDŽ`M9a;y(KzKjppB)5MF|K + oMݤ(5SCu L?iQF.Wـ. &JHTTn"$ +f1IKEP2BE(8윉>0%4{b#PffJ tC +ևTQ-6wKy;+`U2,],:D5mE+EA3r6 #hEIEͿg'e)b6^! , % <ҁ`y`20,iM MN )\dU dV y&di, z 3-+F+f FMdM F.2/\O\$Fd/E⦅d!iV Fi8aN-fLXVG\d2#iZED촭1L2vF qB9#iiEisqZiK&D#Vq2 E߾I{ZS^O $ +f D Ry4zIoS^z~Han°$A 3iH:]CEm/5GZPf-5.˫[T*>{{3_MN^|_|89AØ1(8aJ"eJ3zl`0' Z`0'N .sthj. Ĩ`ŔerZVNad#{a&5V*(TZ)Pf.Yp6Z('ZAN8 •ϛ˙\!.,B4cw8{KL-=tt.~J:4$)ԇIv!d=5JLCU-nB0]vH!+cM"_Cg+0\aB^Mжm%Զ+¶=Wƶ~`5*<С-cxByKP FWfX]B' U;NTUq.8&#t9a9]ξ,װ{[?j{C*+ө'X-4dՁse}[bgx{{@P&͎}k^+pJ+F׬'[3~'Wp.˽+9SDШֻ}82r=o/t'&aS/ǐ[*$[J}?@,]Ʒ0I=%9E55L";&qgIN㎩=zU1A= `@-0`LA~w(~=0!|S~;Q&Nd^Ȉ-w@A0ԅA= ?RcyTr Tr^휣 #}~:,!lT46>T,0X8yBc#rU4Z&+-Rh5!0IrxfF %ƴ @N#T@wf>=@ ~ub@:tZX,:D>*WϫP\j'8< FՋbꂉ s[qn9w\l#gi.#0΢*"!(i`r[UOc؇BK2Cވ"Vp`2>VE݅mՍb_ÏTT`̌yhJux/CA<5nBu`LP?-T \k #S$xm%š>0#+Ȭ{j%ɽ Mf *',FA+D5oh H&j\]l^zw02*Ӗ+k Y1 [>!D CXI/H^=s8شkU!,js{v^ĄD -zb47zee%WCKme-GMi1%vCPƆR:J!;E:>tbP?C|z$ l{N:4=?tڠBJ.k??XS#0>b!dķ?=K {g/H5Ϛlr5l-𭘋rfKzQKS +"9CkY1IP[r4 orYMMQKq[~{-#ϽN uc51,2J$HH!Ia2+- 8}_X}c=gezKj@ `Y]Bq#r\n 07U[1g hmX9emHn8 dٴnDPS["Me4/ dDCj1Ioe7)]#JU } XПY')ϛw$jE4ݽ1وx>72n<Op~ "%b|x |2MҬe 0F-o)f[ұZ+ڵxBNQnqK=ST=P:nb ^0x"L<ѽE#{V~PX^ g.=-!7%Xt!4~1-@ gtg[3QI6C5ec2U:4y 64ަbGF⓭#In͍o:iSGܜQTSR5Fɥ6n>/wCG^wB3v=n;^[XX!d!x+Gk>~$307c07YrJѠ`QjaXp% N![̭HsN`k#7fbb(rV%M.m'kXw#Uɰ㺼֏{ ǭih1LS\Bf LLM}''<6)#2;mjqnt\R+Wi7ǟM[ ;i"&E%ΆDT!(\0wWsmݹ+[_@|y2Jr "C{:"4.! z:]-ICi>N g^aR] o8UYlzxWMܙë\3e}X+SErI(i!3P +lVhd,B,.ݳOv*ss8uuM0[9s6~)p'v-kcץpmDR{G>;J y <)yj'Ua3V3p<CC +8Z)$ ͨO@.j)"l2ac:oi<:Zp#lՉ_~?+h}s^; ژb {,}eiuf;Y|[B[ +'͎x<0e"ЍT_P&SWʖy]*5̖q!# .׸k6};rHiGO$;Tv`'i *aFhVP-I 0X&(z^9>0\>(JO|sRS2)fXFTzfU# B_2U,\fVPQHoj`WQ2WA„\nJDYqoѲfE-ђfʬ6G9{dt4֐HzӣeUjvrKqUrt( Ju ++1)l1V\UQ\MƤv GFdysnyy7@y(l_U'l+GRވvu53LՃ,nK!VIEv^0#_L w +[e8;2":)AhDRtGlIrCSlOB+\+1߲pѰ;xW\eˈFYl{/!ɟmHT6,+mJ!?$z-.. WJ&.\-[}7[ 7Ưn;lEc>xC3Ac=ѫ&œnb9dv2ݱ%8SiftnP67Yo6^l$Ns01X1U?1tr4%|NR! VN P.0]+Jh+ҹ='}ֿ.*KeXr ]‡\TvP Aid8}슅&ǘodyg,jrV)ݒ?vy#t?*|X ٢g>ަ3כ|![r4yBoiB"#˧?LaƥhAHug,$ekw-*q 3 7ć-/4XzS۞7 lK`~3;=jKJI_a$}є)J(<٣k Ak +"x>/#d,DpcalO|{62fYh1h`41R_?x)2]>ĂijH=b|oL2ݡ])y?$ :&norHky%g<*}`Y}}uy/&%e:Z} @񪪠;޻iiwy&E ͿMU(FrxTzeΏ$;bģuW4c>1a3K CʴYyC& S3]NqaL RWC\ha` K5]$}6,IpK>4llc!V/pz7]'*_;%ߐ2׎lfU9mܥS4_Yxv MIT_Ctң<23<۽vk죢O(Mt,)"vkGo|[TyT߯9i1sHvm t,\ⅷS8dX /q}69I`t2Nf֪vpNVC劽tbV=''|IL8phI,Fo8eK@4܁P ֶ;Al ^Ʈy> Cyvdo:`W5C@tJʣ*P )@X77ؚ!'~i q>mUn`<b;YFV|Ixb 4Oy%da-u 1U82Uilj9wDz̿TSjE]~TT}u*q*=쬣ݻ6'Jÿmd1pD*Rpo_t>tz~R"@l*\LL/F!竵 oy +?QA7RT&1 q٬ lbHLӦ~yZϓܫ<6K 2$Rg9U# Vz!TJ9g1Hc#c;Jýh\Nl ⹓Z)Qie"?2[k;7gJ ]F-fmY.&i2rfti4rm5?D=vH=AwS1j +Z@+*#f^1poTQweK\ +kr;ugdChj C˯Dgq\di8 w~ۘ=`TUDr9Lڌ5PJW弼ȧB[cTԾi??Aov-4RK^'jt ^Y܇'QdIy{[G'oUn'l?<\]ۧ drpk\D%7{Odx1hju|Gu&VH nY6,>S5/Zַ?){;/@5)OϾhrw@fFSP ;:̇:_99X:oiE9w*qsns>|ʚw=Ǽcp5$1>Z}g]bkK(gXJ%x&7a!a!#Ȗ$1M<';T:QAeUaΥ,*{N˞*4*}rgZ@U:$ͳZHUXg%3%5l'[;X̊qPRC1sPw!s_ +d[ZՃ_e9u@gy$SR*pzyиcx + ,u[Pܮ 1?  +?6 0?y 3upT{^ipZ@j`fKX5'v9^y[vO<<y@<`MS]ggs*!_Wt_iO0D"Mjxqp@nr_(Ėo!Dut9w +&<+ -'>D;m/Oh-txpae >J$=6 "|-a3+ N r0|PsG}56(1.rk5ѭm_^5|WnGUX=l+`H`!$]Z.ORXBZN bs67R8UȪ>M;n.)_i|A;aԶx'Pp7ch>{RBTQꥐns" he}2A:ȠRhS@upBx)k4, rlv#ӼiۮcXpxk22]Inϥ +mcf5|@4|ڟӻdJND\I d(p%rT&7rt7 ~;ZZOdjaP|`YUL t( %98Hz> tD׆1e+x^ρI5soc}^ІVd*C0r5&6s-L8A,(E .&=> LФ ?ұM(UUpdR㷐WgҨ㥄t(qls23siQ/mSP4J=Ў/ 0ĕq(}Mrtp"}gL"ѐ1s"*iEbq09b>#G{rKSFͺ{nXӠc&|2[u9xWxşdf +_Zr{@?~JU %v~Mu?S􇟠 ]-74^h-R /G$#x"4K|a$ʀě+cvg9gPXt͠=RhՊ$ &-re'UƝj^8OBһdD"Rww)tiʠaut>T(} A͔t +yg2i /J*=7dɐFK}FT:븊 +bod%r޿؟e ARܠ&ok79Ѕ$׳X7Dλ%.1Nn *<xz,`eRm MU Pt{^ӆ nJ#"/#tٺ Lǃe6KZR¤5i|.( 'z}g&4ܽ{ &4b~:@p׎5D`]I=XJ 3j@QXnCXQӌr~E\&^Cz[ZJ xކ5Yb` @}-Ī"f^=?eR2VQ0*D0.P +&*_>*$QQ0O EIx?(Z$Z@&_*Dl`:d:e0-j}FhH32a7,H_d}GFejA"C4F("*Uhjvf"fBVthT `m,[B#_kaw_ZѺomxa(R-aZ0HCz*[$#Yd.*[dt:C> +"|D/n!6k;߲F}z iL4Q6z- tܘJqgoxow6kյ,n;nFb +-Ջrrr(1Ԣv  ׾vu8/*8ZЪR;}{u,e-+'.lTS9%qKc.d*(Б/pA9f]2∶@l8;D?PVMD?ЧAӊ}l pJkqS~@opJcS p9Jp3(쳢@!Uyix8`ޱf&A"rOhAqJAVa)8h됯Cnq&#,öAR9s!CAmV3g;t~(aJǤIw|j1-iX>Se@ +5&wmcoVD6ؒww~^` i;0$SH<vBF >Q1D1QF%ޑ:[rwR|P\ih\ I81'3HJDIS͒m:zS`5/o᣹2>w7d׮q߀t) kI㖍rymB}J`KZkD>C +FL &đ|J,@.g\7nBļEIm5 ;'#r8P~S}^Cnq4V&g0nrtvҪ.MA{2rL [De}EtqJqڒ@iH}$$Xau6hȪFH{,:.MR׺kw*fH^})_\|^B8;Mq%Βz:͂j>ba;0J'`tLP;ùj?bN.8D/򵌿Vl8k8._B_<C'u<[f~:@>nkX^wMQRCz@0} +>vRG!O3g]8w".Xf~M}X*XUQ/ibtL!S=!0ؒ@ i%Hu}X!a.vLD*D5 4g8u$cjHٹ(`M42[^j͜os]Hp:o'5G9^ژVZʖ%`/}=t]IJT(X%oN[z쀳) +x\d˿dA>Q醨?!.VIgz >DDq{$myRxC~ @ݎ$})~v9}W-rb!u h>q,⨯$Ws9qBx3Kl  u؝eWNQX,)Y-e{ˠ.Cz_߼pwAc_=ve|r콿gW8јLX. zpkmQq-* +2>:5LUت#nÔg#۝ό#eZW i w=ṅ4uXJy sָ8{D.i<)RJ#vsPuzPHE]s_ؕ:KOWxF9.xP4'a59=Bot;Ha/X '|I*ja3;HpR]:h{nHf br?;3xrȾsrgD\iZTǛ_#>-ʏnEb0(ʎBEW%[,R mܘ13ٱ:b9'd9_^6vr(_ji]>>^2o/Gt;(e|q?<@Z S5PFs\ lc~#ߛ9Q +6őӍ9k%{jr d6&'El6`v fL`m XҦH[;`?>%CA5c3H͍fM` +j&jlaMpꚔ-h*ߞ\_6%E'\bU=r'V5Hc.dT"1*FuN$M܎{b8Y=c.7=U|~\|\6?5܈!;t u,lڔg1f!Z%c3NQb+Roߤ_C\+}@xz7ae +1ȼ@K VʿAXwHE".6'E8ψ%wlfW}/\c/Gxcc]v +^CkTW7]ؿ>QJC;\K,UC ]#, cnZ j2/!Y7|Ztl?l)]5Wt>w*cb-tnj ߰tW{|/:`]%PK gQh[r:@5ETٶi_.G#U thF' pjs gJ%zu(U/g[TjS6Cr)O'5Z{4juV-lN-n/Os?@7|fdKt LS/@???P?(&۔ XZ5܈8B{1Qak;D]!G>2_Xsn$첰|57mr*>BD&aDQO +1DB&qdKk(/j3?K-f3h<3чq&5L7u9FGZG S&Z.%%dqWb+3dC%jP{Js &Iu&3E߾!>v,̵ +~_L[?ONoqs@]rP3|P,ХB:{M{8?ljw#=}t:.u 4VI.?F +=LT9-;v #CguN"yD?9 +@@0@@c8U4]Q~d%%'eY#͛h%͇9Id +m{:'g +*L_7W{ޏ]F1%B1Q11ЌPFbǂcGl#|NZ򡥲P8т0Gh +) +IR\zaR/342\`ǖ7'P4w7&_*UJr̍qN +حC T0xgtlc(Ok57 ڨ/5ee~IO3$=ڋT,S4JJ2HҌ(+ 4SS-x" b`L.ZXNJT +`Qt"E@j-Wjhۘo25,pI11"* cALM0Qg#%{8Jfe.VX(ѺVb KKTa61 &}]vE-l; +Q˰Y?+Ob>ʤ2aȝjCۍ{qK DhNwnD# Lم*RƔ'qSvH֭\!"1?91[='$ZnRm>a&-ctZ@~DvtA$`3w37p$f[/<9b]SuIaR(K~xQnHUNERf*s(~(BX}&RϩEy'9'R7HS<i\JKEgNZdܼ:f> +D+Q+SX[iӽy:(IJNsӤtMvC.z&`.jkv[$YwõZwS.Qv^k% jZ]4'v +nkݒl'BWU7k@VçD?,_ ˻j!P]*6Ҡ$ÄpÞ\Do 91QH<9PNQ>mt"7ؙ[.|>E0QCv197|>KKÎk+0#{6Rv3+r[ͅDW nZbP;>Uخ"FW;g{ ]Žx^­`\Q,Rb$GꅰD`e)O=`쀇!#@+02a4!zPr6>( ų^l参DžKEMؾvש}Ro8#peҒ-Zˡ\t+ +^@4 +EGꂺzG2?δD>3 Fq㧹mymKu;Ӻ %{'촛1ON㲩Kif}d+4,dNs." O(8+!Moi#4g#bE앁{. 23d9Hk|9Nվ՛67E-Ⴎv$PvGl O(A*eo\}%tRA_A_udBgn\I!-s-|曐gGx%{BI0֥PM0֩MMŐ(YSi`&&t ɒ(nIZĈUkXg}f!-Қg_p[,(TRwl?:Cqn{Э&3&6|>x+ẆIdg'oOj2p/ y0Jژ#do7$KxI +_%=D;*Ps"d-bؽ0J&1&9ɂBB=#Ir=G/;v>̃8xXlY +EFA(<RT\sO`>ˎ8: c(,t ; +S1O cȔbk}k8]`ׯDRg<^] [{@wL^TLI^Eې?9k4ˠyR B>\ +'@.XyG3eZ '(#} !4 lT"Mb|H_ %\T,/X82U0"Ny`E(X$A1ͯlWzwjBZR@=Ȟ".%d˅CtG7+!cK* &+HB 8*رVB޿}vu)jbE×/*[vXӴ([([D?E[!["@m7UUuM2(V%zznp7YbT>(hw%/i.k(mSCW?B/XpJ>aӥY;hD]2eO62V҇a8(?^Wͽ.ԏ0}Gb]0>b:0$ +(׭ 4L9sD Qs\;j#9bhVbMT@H,(FPηBx(C/~c, rOxg P:J[NQ>J'iˬÊiG3sZ<b֭$DXV>/?3OTb `&G߿%'WC'- =ò1BGmO) +ϙX5{vAʹ2Jg  j +mD H5P*K˄HG Xb#+) +t9@`X)AʰD>П1R)Z +e@h@=0,K8*d1Ç2yD?!5i3zSI~ @W'˵k(%:svm`Hd&XjAf~q[E;"?E)^2~yDW91WAA pdLzid@q||br1wR]:nrjHe~+7K dMm|u ֺ",1-_ɄVDҴ➑%ZJ1 "&NGU߿Ѿ1qVt e/K214𪄱^T%X +*Qd մyIK JX|Z2P SVjGc;oP q->SȘI͑Јe.54j-r FmdN#(OHuM;c#i JB˷L +P?y+)x9|8KIFvgJȌ% +O_ 9f"2ookq[E&I"gFc(mHt:JZ,KhT,uO_cK087?G.ڣ7&^Zk"_6QDIuW1M޾6{sL| 2 7uq؋?焯/oUU?,}ں +$[dᄉ/TSFbd YlqD%9vN`X}~o/HƚjwVEBրd$}m#'wE\06O.e4ɼ,i(NDz\y97% J`]$.2[;i^[ D+P&m +"ʂQRƍI75?X[?ENIMKi~Plf8\E{UL0v-T$#G&iN/;P"ixCR]4,=%J9Qh8lW\C(FZwTIl^zsR$1t `;[q(˜4߅rZ>d +8RQ4˓2%Ls_0WIli0:SQ@N&Eܸ[^3 a~$mԾ[&8!9 +]/}*&VAuk~Yy'Jɼyusu܅ܑTI¶VlG%(Qx}.XYQ+RkQlzJDi0M!ϖX6 /Yܤ2+*`>fc&2h |IXH-?mݽa4I1*++_]f+ijd^[ֹ5_⽭_^d^9̴'ЂOPS F& <'Woc1&dFc`wJ5hŗX<#)(XaSV1ѸN~³$>3,<v_[Y^ᩭv~,v žCWgQD[oPi86 >wM S&9cNZYΓ0JxM5h|?I7ͭԑ;Km6*]-s˪KŶ`xQdd "yEpSE,E N/ҔMe8"$6ť;׳Ss\_ dїb5l@!FL )Z Fōn>L[~n(4 `74? cGNxh!."{v4' +k4cD +5; >SIq.~h IaU Fc1>4P"'P7S֑_PN B#ґBÚ/Mkb,#"Ǫ(шwK₯H9`m:qXF"**&Y%?hWs}X֑Z}"9 +\N?Do$\-gkm5mPqϠK5]{fJ2O֬i:r!?n[k:~+3>@^OKBMT +>u +Dѐ,-?yw)_^OǦk&SM v@mvob;ZVl&\]{-hc9bmJ Ӗ"IҬjmF68 A(Bcx so$ĶvZ>J"mm/Z}Ni[M"Go 4'% +إx×]i*sen0o˧?ViNn#Ⳛ;*la9䓥DnR ^.-޸~M]{POx™"hv҈Hg0.v˱-^dݝan?]f)ar] E+D=^6R^1&A|~wKFmo2z4JZpji6rVRmyERO{ )Y=,t:].3?r2T], n7?)g^2;>k-cA@3ɞ6lzO[Czg6/>7\zoQ7Y3G>cC +ynޗ4ʷ`mQSѫ4ƘЁêa]u^(J*sQ ~tR7Oa{w^#U=](SA"τU!:|rݨ}yTkn&EQ^B߀kMft134[uh Ӭ-?z#xPg+e(3Zೱ6_N1eOn-ݲ?Bgt鵆ϬFAOp_\JGsX2U'O D+Iwc>)ݝu^aXў![E澯^ fHRcԉw ºk".W $Qj'qB`WVO(BBͨ ƪ6IP$:.qn[)J?:>) uW-ZWmV +nάR[u$=t+|[J眔ş%p=);~F݊*T#p!D%?A'{|~و͑bC2]Cv89 Ak6j8,n`dbw5q%{|U7,kJoȮ!8iזDlqvʟ5??v[ +76]r]D>ۭ+#Z=I:`Y O*65 +'G)ZGMO6)X!T$5~G'[*v|NM&Teo0s(D {5'L݆$\%\?mem +6+8!;il5>c'QNɾBPFbr[C+搩]֯.+1rU}@ F/Zf\K'pn3 }X'>` +TcE0E"4_s/$dD4]6!+A'/rӀu!>%o(݈*w$[ƒvK/qϰiwnNZ 6Is\+|`]>5JaU=$7}H<|))e/*05[39r{E}|DлL&2Sr\KlYT@n'Q2ZVUl I/t/#x'FЪw[ެ Dqy͹SP&2alָqy{]t,PI9IzV3xꛗir$[B@L;YxDCQUtഈt#HGF.5!2^>@ jѐRq֠hgHmEPDct ,́njה2XBM6y}s||mXʧ_WC"bʘNn]Eu֝[ Qg#Y_ f>tHzI*fBf -x뮱6OzfPu^㬯wh$.o>ZvOg9-t?ۯS;Z3|xiX*^c &LFE55o%P",\kS.eOCE 4z |!!x(׽>/( 2!5 ԓk07G keaXA/0xr/&fmhQcG=GGo,9}'x%J AxQ@ub _ldba'(& +2I2P3 +Uh )\]x0@Y6V{PJ`z +6C]l\]\L_$?_ʴ&u*g b K6uBTeg㕣݅`N5N;뮣QƔV-ЧOE(fxDdO A l~[sy{>gk@' 7ݘvgհPIUzK;yzjU9Jx)5j xBս0E)d6!9X,dhj6w}X5wctv[a{zb܁FzZu5s>V@0l *uDR]HE0l e٠n KZcp b]JC\cc)vb@mLT)pK4w7ˎQ?!ceݚ꟨鮘P q -wB0Q &Qdl]9Z75> u c/jgUOZo6yyVT2vWvP.Dp|ƈ4{<+@cE$io1R?A 56ݝ7FF!݁ w\%X֔/RLWGFaN5ePgbo}r!?8tX/\N+%KL44*|v?৒}2"C`d} ^PsPBDB<`BddXU4R6Cq.KD<^F,@7dL4ħնXg&x 6خ<,7+@NNWл7 o\?;)pMi3C6O6xG {XX>g'J= M@vYV'<[[%c(F_>6~O#tߟJ=C-T-$IJ +;[K()ѪBICĥ>YLzU|Յ9QZN +db4WG׋c}L#8| +:ӱߖO|Ziet^Zopw{bg>#;/>bp_x/c!BtQ{hnZg!Mybzt\5~Ke#b♊dL#g,Mdid53ȗK"c$Me x^ؓuL޸Ei` (e^3O-Yv8XUO-kdS6o%d%0Y7o*[@e=1sbė\S:I(҂'d ÔEd{4ꨴj]F\e(')S$ĘTWलPEeF\$yibaBt.nG(AfVXu2=яy>Mn2q~Ǩ NcTvxkcC@GJqbh#%Έi#? +1X!4=xygM+Dz;:%6"k 6-K?&Gzd]۳oBWt0B;ԍtv*v(1Vt:'hEkgAu&h^צńGE/{kI~ +me:Z<3VW0W7/Q"]_`|͑+̑+P,bd3Y1XGm"!P>+Wy f/s w.E.cN1]c T[B(u{rV@,)eUKR2idCOvT"@-PG'X0X{o?lY+FZ%1YO=z)Ub{F fhR gÓy [YC]Λg%d +FhqGCY^*CWӼD ɋ@!E|֦%y@M;:D?f!Fcp35q0c'O<%n *;, s2U(,sjǽ~|?$ݿ`|gMrn r'M"c3drO#僑cmdraX":KME$S8sdNC?%I-v2;9OH 벒.3=]vŋS@ʼn }.6Z#BqE̙Zb FCSr͙d -z 6;ϔhF8Kaʠ\1 "|G8y\?\g^# +h"*'տit* bh0-hbh&QΌMS oϦ?Q]&sG&<7KA?=S)҇-T1DXGWA?s 2z!$1-k0bXPL%1MwLޜ\i4`a\=$;g("UQM'j|@M ܖ\Z+$vcѐk\MʎցR Pc&lmPrJDDN#MBAzˬۏ:oZ.:ܮ?nzQPPHS${@ -qLG7Em'fڈ-l@^tB បNOK4ht|XK`} V *[ic-8NL1&?_ƔUor$X!)vY)4ڰLdek5vNMSG,lN\U-{ +zl=nf5:gA$p0-xc=}YAС-){XN^n{eb 6 ,z͖ 7CBݗ%BAHGxjz&VAЎ@ox2@;Qm5P}\5^s{ۛ=qkl{dk{g}C8;.~; +e;{κ;zC;ɿ6?\{?,=oN|یRj/aY&D̪Y\l9jbFxMT]R]f,䳁K3سͭ_l(o݅Q$2؜nBѼn&&:1le<|AP)24!Sfj{e]&-UMU8~ k]V ZA7K kvP> l}TRդ~,IM߀e*ڦh߰nPItsqRL`7>0i$_lgo?ۀ{| hxI[ҙڨzQ.J=sl}ـ6Vf˿K/\|K/<'.qf䄔]CAE,\(N4K%RЩ@asf\9ϰÊ*tHԾ쾜cM* R.6ob˸C&f8`P)+$5lBJ= (0&8|ȸۥ|}YƄzMdCz{`$Xed߱lX%q`eX| xi`ܶ۶ARӀYiY:qh_\hd_I/usIpy_#i$8"|J㽦R˥\4TZ_S}ix\ӡ>Q7M[G|8}'ݎտ>}R'e%8ee7&K8gee:ue$?&LJKH/t7p+'>E0˨>T}(xS}ӤjgIPIQš&&ND&V??4=U&&X&ƭ&SۊH$|Uw񾓻>:FeiIe)]aJpr%0 ]K%c#ld wىƣPJ19]nIU? +,mm۶m۶mgٶm۶m۶gL7>IN'Jn{*f>3Ֆ_QPO*_iz `TC#a^/=t|8j+ԋ/AeAT/G__-H-୙͛WKxZ%q)ĕKJfiY]N|vTT=?)]z^T.V]Y+-.pxcM00xց X !}XB2LɔGKso*H~#Vճ oXRƇ6 ^`ɔڨC[F{\hHq~b/> f,5c%baf +t*U(:]4'9LKedZ&!H?ȼWۤn0GSj!9RiVRU{s4p yax`_lhd^h=K ^[A- =>wnh=>Cչ>L(>{U/7EP#/m9k8C7#a9I32(I +6̘PjSB=NS[TxyGP{KIG{Rٕ=_ѩyt#tW7JP'ٕGvCЈ*}rv:ꅓvN-D}`hN/ҭUb'͔ T|mT?h#C);j;tvY L k'hԵ|Wg:!#/Ml8O4<= 7.TGśokzFi>Y\{ԫqfa:n6 R~RV,ȷiwu^qp>p ػ?;^߷ E?u@ +fwxqq +}BY走FY)_b^GCVM)H2U%h܉rѫjaVqfzuDOeƉۀ'3RM?)u ^u'_'{x3׈uY 78H~o.s)Pb~wFj:$#{%$]di-:R.2D:;HZ}6&|hez*֡mm8N8޽_]:SHyt-%V=E 1 g9k[d@W@:mZ<} o ]LDcž]zIrw8qqjeD4 +TݭB9$ԝ|`Ŋ vÚqpIL[KI猈>r\̳o LŸZQR;7NJ [9}/Uv*H)Uu/r/@fZ|f_q~[2%0"s0V֝ @̒"kO&;Y/94G9%@Oh*u͞NɘpɔX}.aGfĭstRjM:¤&O{f /+fO +}u?͕:kS> f] E íDnŐ=3KF8V%>o,4v +9*'= ԩ1эi6 +Z^/l(V9vvR>6զXfQ[6J.K-jL6ȯ,7@c}!Q??[e3nRU-Eq3Rve^M2+ވm܌zH7GKլ4e]LI9ñSe*gKѶt4-O{gWyCٛniD8-1O8XKϭz=ۅ0Oz? e0aqz@M$W3`Rc5nCg>1%m0Fe bxZGGnbmmCc7Z(F(^YQbcO9 BF%y7ɱQ̒;FY7w9b똩>nF~ܱ_M-h1G+я\`Ihh8Lp`fȰK1-0ѭl+3:;-t +tcOf]Gj&֫mZ--0ZvF6G6F7F6G6GCXrpDݏ@=$YHGJD{bt|HX0"bF`G1b)Jl)cz@6L*&JeuXa=-'> m1Y'uLKǣfT:Ve1=iؚNjt_\rmּ3y z7Α>MhW虾XO~L{'q١_lr<<{7pj^Φ?O-~tyGg0qnX2 OM9G(<3bJNahK9Gk8ڗh[3sB5-FN/NZ=73Z8Ff;ذfJN3OQK ^j>Xwlx-|j>?f>>4`6ce~76aqJ[׷|hb4Yr?me/Q +zPs «?: o +tC~X7Q6'+[;HR6(Ԗȅv2hwgyݯ@!Ws*7v|ɛ lN ?</Yw^2Kѡw-9@oݍU?5}1HP^rQ -w~Xe\J1Gl䠲GY/&:±.~m1/U w }Fn٠gߥ~5}Ճ~˜|L2GizIDuѨYElI?+5,}~}+.]%g4 jG欯Dz +H$+ɷpN7п5q|!w}?3"}-ZM&R_D ^lr–D35oX4~{o.upf#oe-[ѿ[Έ[W}S'Ӓ\`et{/`mb ^Z/y4VOhjQ+?AZB~ݼJz+uktз#<}EϷ7Ӌ u +sc|݄ӵZYS݁6Sդf}D}B>{&\7'BH Υ1?s ˰uYj vi/+l!)Xh)M 7~~9^V$ HakY%}f_t?ȯ-BRjhv1GKn֗뭷ĚLeL*eam,ց]Z,]gS|0*F,S[FVyl;`<7۱JPq)0gO=*xݶK|*-s3mHh 'LˮrY[)RR=ܑ25XA`;Mxhf- xŃ5Nr)vz) Dto{ct"WPҭgc7DRXCilZ{ԡk +^ '+F"#&{W8V*STM Uw_SWj[ ^#UP2<]I呱 { 6l 1[:i}s'O}fW~+;Wpx]DRg"6q𗢣xDs]%{% l\݅a1\a,U||uh B;PI?߃L +{i!8/kaAc4t8C+?UI6J\[׍o?TkGgs7j@UyIý!bk@EE.E6QPtDv mím ckGAm}īZyb]riCtȊ7]6; +\"-eNZa0Y ӷv<5t }aWH)щ܇N)6D`#F&s5ceYKv.K/颰 Yހ݄RL#;&5lj7Tqހyz&Y`mI׉˦/s1щxV{҂6jVْc c ~e,70dSz".;7=udALLH.>. u9(4 X&*  8@I* &ɣ&<⬮w;q;~d]Y\/h0dS>7MDuAQyu7|~y!] /ʯ\<3#G +G:֯%گhEo LRR/%} cyeD-u{rծѩE-.E+5yE{jY +n3KMƷJkL +R3՜t`uTxCsgP@^#iyU{J>Z +f߯YΜ_s|kզ'5WjfpUg6ꙻSJ:㷴EoS/Eos:+ʌxOE*ohsՎժeq8ܵq:xY;;>y<0k\ V'M-\q:F;Cw>ᄢɚMƀB>*5 +?`~HuXwYqS=tzP];% n1DO=ΐq*-F B9 +X'kP$^)%Frb\ , Иv=_̗ rޘMCUMCUsɶU+lF9]C**`+( XbRj86Sx_"rEѹ;хl^A׊v%sq`ɭX]`pLb8QqT+HT x&Xɪ& +ulVR J{; +RW`!3V0p ҤGnlT)\5L.fG;+h H]1\!e͢Io5pSdzR'[rf䣲ĸl[珣70Cá!8't#Ɲ@ KnPk:Y r!M)*O#ѸemHI&IF2>)&Z-unGeñ_9DV2L8r`40' k*n NJ0{yɨ'Cn|pGbx) FrY\*G bcL*pLU39,\᭄~HJf??i$HFŀQI$3bHZcH5N CR!pRs&=?H7L8LVFcS|`N7 +6यmxG7\+xgGIhT6!7K*ֱD63vR|/ϴMa#M3ɭG&ɓmJ`87Ő)XFˊ!⩹9$xKe!7`n~1Cù,܉np-o!˻1P7c8- *r5weJW{!lYȦz"MhXKO%7i,-9QBDDvW%L%9VA=»uDd\Q]ZЅX_["^0lᕯQJ} <_iJz2ӭqmd_Vß)Zf +2e8+7Zaݖ>dZ)-zraW&k:jTQ:;q2$}%!-A1b6TyZ2Pt(cIx(>Gu/F'S_lh|Y2,QdS_W@5PrUJw^+Ob7d=ĩO 14$-b6>KZ)/9mPxyy& +\#|wBv{y@۵Hp&|&FgQDpZK4 +1 S["%C Jx}B@=AOԳl`q{BˀӷE6V1vSܩ@YйV%DE֖k]4VE%(8^Qh1k.>^C|ڠF胱!>P҇G|`]XE{@\XQY5?fe}|7 +G|Hpy7;6?\H:3Cdꃧ7O.}?ܱ1~c~ӻHT&.c!@[$"@!6e +KGE7&c3iڨ[heҪ۬z[b~L.m~۔)Gd{~ɲmlYZ]؞dfD[%̚g_ӏ'zX&Đ &KGl֍T_h"1nQC=a4>LJӎ m5[ˑ"AL 艊diQ磌Z-sxҒ &],ҡwAj&[{[v;(YJW#yi^7tzK$+ۋ -~OZPitӆWhla-۸NS-Zt+Df%*S" *{\j d bBP@$Ɋ)aQ #Hi/WT +ޑr𙰹>7,@'oT 3DQ +Av$l@oVւ ZkP6bM9};taSyԃz`1A<6JoT{ϯtchM[ = IiD$#[)!Xk.'p/fL h6h:+ب +;Y( ++Yu:e}튄m3P{8*:?6Ȑwn>euL:7`> {| lmD}x6xz''ꨧҧZ:} 0[T!S't8 %':?iaA6 qDxux:AÁR2,wvD&uzlf,$\P'$&Z̒)zv37ۏrV-}N kMיʋIgDeѭuZIuIrEYHIx$֏%$JY$)<fĞrMh*TO;@H! +%k-LZo;cnG?;kf:ʕ7ddoZMh]/m;rYɀ#(a/v#%C" cq##zP5$&$]5iãyIdfN|?zON'߮I:kxPj;woF#$.`@ {. XNHcmGnZzڦi;n:tdl7BuwL!-<;msj+rjb*SK&'?AݗռztN0+ViAOL͡N$uZ4Eb#?zTV{HR?z-;~ï];-G_<.;.]vL@) +VI0\XvaM)dA*G^i<,]0Sa2f7e_͘8r5m!΃q4l):^^l>+NpLGƐTp +~(FKQғ3mԛ2]z{jX)0jD?g3S"RDhSCLlY&=lٖC~1f~)gB29%t ` !ek!Åx( U"< +ˢ#|Sw5P2-~EzdS x)F#ȪbG,Ԣ 1RQܢ9RURZKnZ0f-` 8v*Lۡ[j +g.E>ȏl- >i;b^Q!b DkLE^8f7(Uh"Mm09v)VT^9oiZKrdn#_& uxhd -k5H]] @?`? c^bUq$GEk=2*}1v[M#a? xLY cGE?4{XY27 F4;M/.I2szOuv L096Zg<e;seE;x,Qƚpu QF<;JDB @eώKL&g8 + J0Q䔑OK!Q"5AK9Sw2e*(Fց|kSљ+R٘#/Y . +ʌB_ NGJ)N)ҲS͸:i ȃY^C}r$)NS^h'IfΨ\kӒgIz& o &uʳW5Gmnv0|qF'A:5 2W,1*ԲiAkKލ/]jgDk$0%.2q)ۆ&-D@5=K^%]pqWMN8-X0?){OV%8Hv>/voӋ6ߍJ"[p8F}͕#Mt8h(JoՁ`)ʕiN+HI B6lBǫM;\:%8 ՛mP&dDŽ +9:8)w"_hCV<ál9_);>Q>Bێ׫\`>GUGeT 5q"G1."8?R2Q@ίcE_P4Ji{ +1[\ϊp=;7f‘;1{Mѧ Ly(LZ +O4`ͺ{sKusՍt*5уֈZ̕}ҬAs8ۘgm*):]z{fe16t<>=a!Y*[Mvխ=ݽr28cEv S!',Pi*UKv!VZPŪ: icnbˊm$Y{uN˨8|L+#\'G=+g=qWrfB2۰r݈WuyíP]Xe]ʃ"Phk-mq=QtI*:8~4Cfq]?:wJ94aɒ vUA5 l*h @ԫ#ɾ +:1J~!gمp k>PR1Cf?((äC0k"keU2r#^Af?$(h!U"̾($j&ެ hgA&u'LwCφ>2Ȑn!Rh:ܥ +dMEQ/7+]>Sa$U=4ơ!4՞ Nt۬',ЧC-,KaaO"堡WG6kvѶim}?Er R +NN$RYARiVk$ MmкUa+gº˲h/юt4=05ɝq4+ð2 P6J٘lz:ۜ00Rc,4* +BxfBc$;а wc 1V#sD-2\@aׂ)s%Y٤*[8 +< ªjӋEddFP;VX+oOF +rW$ +>^?۸BHV{h6<dw3.{F;OVH/s$nF-tcGCNwb4Yy;`8EN q\X/6M4Tg oeǰUj} #w64R7tD]xtD?# "E` Z'W҇XRƃ]?moJ-9$yr.Kc*z܃KOSfec͝IJ;]}sЦklU_u1e0 +d==T2>gPܒ.-!vi4r}g%m GTU~X/NH1OU3GEwb;ބ$"Pl +jaBR8<~Bĥ!sUkYECKۂT$uU+uvGn27c 2=gj.{X4 f{pzC;@K{,:P`)ͨ&d^?l<RhC2HWngm7EƤ+S@ gpu3j$)xwvQp\G0zgL}%Klɖgfz>2իY®^+08֢TdZDv(Gx,zf.>jΟXaZVD-gapO+d͘^-TU{Fu-ʃ **#SXi)SbBZK/TV[Bcui_Fp,c)s]:舍~nVcYU~,m'IFhdDi՚I>kȳ#˺^=/wu] XT'JJ;?aYnVdVv`29(9KY( ,tݠi-pijDwG[*UfI\[j!RliYo2/^z֬2,:tpYț7th>.f% +fNr7R:sČNs5p6ؿ.t n2P];Z+bfh'q1' j~:n1yٶѓd n究bGc)hSd8>`2\ .X*-RfȩߠA0F *,"fRr.onVcrg%2h{mYhD|!Uxp^W:54Ou96[Yx Yn%&[XwUGؖ hr)Lp.QE\ځyp~7ʝ{e6\Ovl*0Τ=d>&}-fd h tqhfܜG&fp; 13zKw&M;#+-h +lY#g;mnv-d2rnAMo 7W^!q+ +&MxCA;4%>:rvBհ }`D-ܼ#1b&Si=$W,CI5 #OB,y+Wn'ea~fzڤ5X:ึqnnĥ c`P,ᓙ:1qFV=q BRR/h>/cٶJ"W'Mfha;%>=qMrht'ޢ,)r1yh=,C8kl;[ +|8m sS[;J^M>~3LY+Se6P|U5HA7Sm_CGoG=fߨ\5i14CxvPAYm2ZDYmn%>?@LAXBEi+i3 !mJ|Ó +MW@ ǾGPA{E# .Ф>d&S;p]L*@')`Oex=/yiiF)Q&?10rF*o|VuBGnnN/#4DFO^}әl,8i9GmNQ:)ɝluD3I|%[WN<ԑ]C\׊' WJ:V:AIV"~AưrvT֒ܗ[!6׷)^h. +恩I$ #YTyȭ'wHd+'>^3t5McYJlvs@91C~  p/#/u*٥੉RRr?ť'^Ck΄GDNXEܷRw ,%fvax:6otqGPkdiJG(Si)oFaqF zc +?2;NPf uTķ5$љ~ƣ`d=E/Is,A+/&I&MkuDw͝L{ +!l5vK&i)[<>^ܙb]Ԩu~Z# A5{/zi +}$n`=}۽JrDWz*ǰ:a/j\I6;CtH +d1Y&9UI:#:m8ѓH^ +zTdO/1,t@ "Ќ%,NKG S2'(B}ΚDMޒ}-A#AU5}/D:.=dyij|}e:B]ԧr3G!9V\ fX&70e#{ J1~q <\D" V;2  f% ,(æfP#{h`UmF_-{CC? a/ɒ'MV~('ʜ5ݤRZ%du$lVcr-(jṵz2劋W}u,IDE \ՌNWxCZ^fmAΏFLԓt+ +& ԺEǽ#}.2R5ټ5Me+6c^Pa:+iSvU&G<_(քY6Ovo'>B]t}X 5:vp; +us$=;nia_Ldke Ԟ(0k8FƔ"Uu#g'ng \Y2ȚW! 3BM,Pw-'IaN;p h 8eK8@+I߳,HLNuJGu[lO*y78X)!WhWPXyU20H"" 쎀BͶb + uW&T,}TNnO6JQ`7[|&}KnORtd|Qߢ6*Kj(;7ɭ`հ +!l!B H\Ncp̋a7+ŽϦj#֗zuUS&ZEz߲?r~^K|zY"*p Fx j C eA>B3 C,tA&L.Ljń.X/ kq߀BjNPvr߾ArզܬZ_ @OիbfAx 1%eC V* F=Vu!J%yړӤrߗe#n=yoOK~J+v aĦ{z؜H``$ƏX 𭬼~dGCd|b#җ .n>if-C&vm _4&)N: 6+EoK_0Xh89mEK ~m+*ByxNT#E9Z{2oTXFU^az$te@!a(nD&Ƌ4';KЙꛍF&7SgJr.-;}G)Rf=wrEu˥6e& + 3Fun6Nh~T?q3?PȪ7_jxp*KsK PF 7G|9ފp>௚c{\^SWH]R)]#IH&N^XbkmQI$%KH**!y(sSg A3 53m9G7M?N,fnfKwr(0,Q?(_[NseQx梓\,pNcATP#@w  ß_bWr:y}r+a s)YƘ׵d UZ`t*02)Ac ű띷X3aųv'40WߺvP)V*tzUU"{GX8UTI)CoJs^W-Zh*2-CaYZ?gN |'Gm{ꀮ]?3[Nw0JF›9O3XhQ)wjGfnڠ`Ϝ8Rjn^ζGx83l~De^\*=ᝂCmB &ݟ|/9R<9o5qD \&mʷ@";;Dnm(`g/ݳ(SՈa':[ߧP9Lk9J[ S~R$⊀]b讏T Yi2Wh%x})Zy{3e?O?2HݟTeepTqx_iUjQhv(T + +æo`5x_GE*+܏Vc$F`BG7{_np9f30"P8_G+ *hJUe )*+TT*`ت\kc5UhR9m)aZr CE =w,Y5K +vTt s<^Ė\ݲ^c_ic,3[-Tۄp16SG%!I{O"r9Lm$A{)/8vwrTbYTJ$Xk1ф=]bNx}'L(ˏ1 YRա_r -}Z#~h$8P:>qe㑊d,0mZ! 6;vE lYHX +!绂j:fx +BȎf ^Lۂ=swk˧ĭDWHnI= +-#EEjlŻߕm!mH(5) 0to'wv#ɔFxC/zǾ.1B~:bҥwTi;B{,k~ꏟkGa1j|Y]/kA[gS`#B~X:qmUyeV/={IYǷ~f"Aҧ"!Jb{oxV@,/RfIaD &O&̈́ԛO_k*+9۾YD4Xl b` $] +VUԴU" /dʖ0ŷ*d,̯e̹Z[?f{6Fے_>8=9"{]C!@o\Oӿ;C^#8'ֿMCwԡ9xlo $<C{t%![ j'gmTO u7|S=9mjlVp/}ʚV``B2Xӄ"B Ҥ|;f;Λzf{*isȜ>ɱ]sQ**F;s9ba\= ;`ǝi}Ig +k" {9[pJ>lJ&kj붩qX*ibf%$߻Wxb˛C0 tːn!yRKhfcTjD[E{k~ޡC%V}Ć,#Ş}n~vֈi0)E(dmo/Gi}Oi2/iA;iąDuE4^pZ:9BˣjEkϢHFWX1"ÙjvʪOk +ʢ[.ƨ8ȖQvJ>HO֛kQ7C vvlh } uxuW{C~" +,m |ZZSsܦnҖJV:L&%Kɧ\Z103;2uaJ8v nƶ.=2:QrRJƖ9 f˞XYXYGX^8·sr|ÆzڵQNk:&\{x^i25&V;)%ySr{R} ;q]B=禳:م,؅xL-^^}eU}Ԉ(D(ᅩȆ,-G +1u1 >vI<*Û"(臒*Ge746BCM6s _R,x>{o{sa? Ncy{Yx{(~wQPeVx~IqG-}U}ix+κy6XXyKYx; *2d)v +QLθX)UX3y6ҁ*xmtQi:&4uDDbIuOKNLr?C>YAiaؿ6eQfw"eI/W4/ 8;3\3Vcs!Yݨ10_kf̀q.W: _>պK8-Wg{:63>'SOm.KS K#TbF%e^Er>YuY &nG OiV R-hP΍"%Yƥ2㷟b|/(H6 +`la!G8I=kd]rd^.IX$W|H*;IbNT>^U.*sM#҃ukS;*JTu(s5X3.MeHj,j2MdVQCDp+\XSfoCO"@q}ڿUʣdz2${=:wNלˣF BBD`ylSҤSzd9Yƻ#GDe-|ǧ澍:%uL kD˖79xFE=KS}C|5-?Kڂf`㿦.6T ꯙyw܃Q]izT(ۀ ? KF61;&eEdd ;*bBYRRyU%*5ŪTYGEj޷i޷1^ﺾ5{0rY HԇpqAnj"A691oHjF%RM-AGXVNzbz@IuJ!rFiq8XC?7TW6L\VԝDeVkfݏGt0ܶmm1)ىΑFVԶ)E@%һ4n3ֻ-c:a7Wgž|ˮn:5W.[҃keΜg#>!RIӞ|Q}3iOWײk%K<HJh|GV%nlPGZT]'k̼+Ld)ܞUs5juj29͟fF(H&ֻݚ#([) MQ(EJBMlJʰ;l7rƷ$?e$ItN"u0Su@",H=D EZ4#-G$}yv)4 +NEEhNg}<Pۧ@ISdW7>7ޏmT.œƉ'x35 +J1Aa\aYURN0c! +rkt{,D^x +ʿ^sg)؊_^56c$i<zC + 2a%CL]a{ cEl!&"YKDuy`_ ->OݏFJBc 3{R +ZGw`aw/~5uk+̐FKK2m``E2Z<=$bc[k}z̉63l?OfӓPa#Ǒz ެ51:tllx/Fp=AM.?7tQ C9e. @\u9xMbbN$/cj[P׸zdI-$+U` +0diI'}_HSq^jg.d[)NaCʲB"gNMAMxejxxў氥 GFz!} ݥL1dcL^jJ1"fQz+ZY&bE=T!A:\K?I})#rP|+\q~{ ~~+}yDnrG?$V"?=77,?ļM֯1o!9ɻN|d o:vx8yGZ9IU.V z>%$πhdWC]~D_33=V_IѬQzI(ɒ_4w+ Ӑ N` {0W:Nc>=IsJk*?B=%fp!F'K 3`Z,(_Wo:ª+?\RS~P{_qi!8u=Vs1Ems#l$?Y((hUXY䁲iulΒFv3BQܨoJoVTUPċ>¿-=/|K2=esx2F}J7*>a067q8J`uLM`w:MԎ荐Y.1<7N|?ۧОswAt=uȗeŊuϊoo]'jM'l.잀o"#|d&у$zcmHcdN<(t|I32e3,Bqi30:{9#[rrRXI EFE;ƞ)MJ {DxK- d,0KH)$zդC ɋ+w9[=1UTT}Gg&J͎BG\.FBr"EFVύh;) c){EBN,M3CL 2j6q&WΜ0;6D`?|yHXz|hѧ38a$|MCBK0aOP*oiDtB~WK d_S s\ s ݚ*`nRK;41pk Pbf;Fڏp;M(FIΆ#+')1t#buvSc4 2%͂%'c.%ˌ"9ƺHTY w/o>f9iV!ԡQJdbV q|ˬI)هZ`r?~]n#%n\OJk+ۧΤ2%[BV.r4J4=;W`KCN͙O)q!UԘ$bQq8>$.壔o%UElTtŮꄱ.#mY唈N2Ѫ-|;n?,%_m E #ZguT;c.PՇ֍B&z5h5Ur$w>jΠ"\;]!xQCv~z,.߄sj;ko8};moȔ@TN"K^D$ZRs]n:1j7!0}g8f /`MOQߊ0ꭹa0~.)>rޛZm7T.QmAOG( +sˇp=著>;[UD]+,%K ~Y&hm!joK/Iݥ=[O }+z !`0VMS>^rOZ8%lLY3T>3h_ qEFT[q n0OpD8h fX&m!j`a5^hGPK[.aS +M]!b6!DE)Y+f?KP+Hm["TA2z91Þ Nބh@?V ،:=$8Mٜǝdm(SŶdlix#ǛO~MyBH7h PCpF(P(VJFTɷ>%3@F"ɍć _*X +\g +ٸ%椋l!4| +K +ZM b8[ H +eavBwKc*se-5PP3X:qh9&7Mv?|Ϙm5`= +GCl)3b,ξ +c$F, ڴ.^d*2z=ۢiU=7/Ni$=G;1_LV2W':uiC&_zf'H7zHuU"D^$ C҇@Iݢ$JL83zH}}2F=$DHdHΧSH["TRdr$G*Rb$#lD`49!5 8!?xi-$|?VsH[%iVap״J{q4#kgJ$ jT_E" 1.Tzc2f{ƽ'nI4ͻ5WWpXwhF-E> SazxL0NdQybE#Zg]:1j"9}X9-h}@Vǩ%Gc| Mťszcҍ-Z`7yt3܉CQ=18냷8+,#Ic'@R%,OXjr> A%(5x0PH"+G\FY$)EM)N"L4o,,GYSu4"o6>$@¤%ǸڥxHN!k}z+4LUID,xժ0b-tϧ7JWt>|E("!< CfRd(- v(1(H!JK~hWT+.=a\B׵0UmPT1~ nji)j5hkMrwqF1܋E%2$GI%c^?]_/B99eހ{g?A⡽W uxFY'GY7ݤ @ 8` f,$h ȁJjEn-BFܩ )59ߨ㱃AVڌ4u^9WްF[Lsmb)2[Cdf|Tl8]}8YK,6Y *b- 0;;aQCG9bk7Z,EWZ:qlMZ._ے3e}WQ̶<"iT$&^{(XԀ3)QzXߏP4C@CPc/Ў.a(S."aLUdT=IAfc,we/uvta8䖓ļNPcľ:]ZЖXpZ φTy,4"%gU~QcxHkY5X>֕>#P;>0hDsTH'5 ӹ]DӹX^EP6R'Uu{'bcx)"dz.&iAn~>M:8J'GُJBX{/JC J_RQl$tyZ.4 vA Y`QY?/X 2wO%Ѻ'ق;Rbؼ?0(sKF31 H3hQE5^B&u:w\H fc E2U02U1JwBzOyֈoT%8mz~PlF(КŎcF¼K5|7KIr=}S'դE6U~f(g<}xwHX랪@Xˠ[=*چԽ^%eLN E6sؔE|"C5foe=~t)/SkTP;N][g=4p'n?qF1-1 PVy[t+ΈsB{a'֫^^=dkڽ};i| |I{ԥgl "V* "!6&? +9 =WZζs2'#`55L%L$Q*2HLȦe ޓ; P+(@̥i@P#וE}>Ulo=]ζ5|:m78۠D<ȥf*of}uxG+?$kc:fשSwphlh@>O6><`?^"y0R~R؀(8@<f2L8]цVɹh; .㞫)~` p?eqq[ќod2Qxy& + HRMqp6B$LnAyTcN ?$(xD%T5ѡݴXmwП axPO|1XE$2KR.yV)1a4J(LŨ[gD!,(2ViQp䊾 +XRlz#"N Ho xiQ˴Y]LqCNs=bU"/U] +܂IQ|oEEx!:2.Tg1 |bzhKnڄ6KV┺o.9.(o +wyIEoUR]zmzhu_/=WRݙˣGܯ~a\پ@E:۫CN4a%?,,b[̿B.bd!@%q`Iq\0SyN#p04yW,KpyS, KɨOXz="uٿ}7j[ 2o2;+f@rG9zʪUo>7t~=L@)3D7݀=OW$xs\d{Z,;d7^1vH;LطmQ70>XNH%CXp3l߶p;١;܁z龙:-jv706>.!.8B,!aLP2:*VK3:=@;-/ICp{xBh*v9$C\{#Bup.Cn;*alz$էC#NP;*~vE2ou[}"'aF`v@bi3_5n̛Kke['oN֒םWvTk3ȕ7_?΅Ze=C5Mg3[j̬9ӽ .o&OOȽ IONhaF[N˟ߪ[+} |W8C7k/e{K;n!>ޥ}f^;-LK37V[@E>Ďvzh)hi\#JC}\htckiB}nذ^)w h6pԂ7(f|nL,,̖4.,,7\iּ%i~Sҧl;`"a=asZFTIXL:+wQY,_ +3`_XC9aP~ױ|E'=Oҭw9@{ bIMݒ(B݇N5:W*ҊٗuR(ga@%ϛvf+5DwfbG&W$vlsޢTͨJuc6`4x\&j2ud 5 e пF70pv b%)k,d:(w"l`E%Ō?BA#E}Ff|u#deTK8TȖ`P pJ󠈩=Nox^{v_WV\ E718'F'BLD38WC@z-zV: 5>S5Qd5YGfԨRQNɭ|\ϨZ*,n6+VLNKsЭ\m԰FQdgK~K2QN#Սa`+@mdr 6`sR3)cƥ Q|_*D.ozEq|F)<`P;tu5uYʐbr4#csNbcOQYg2wU1|wMvMVy˜+QI]quf$ }K0aU&ϼN55k=vqwxFQ+V!2TЙ>te/^zil/=5mb{D=w7naP׸%5nhܤ%*w=`ǘȒ~ӛ]An֜9B( &&LS#+|>̷ۖ{=g`%vN>gLJ5G q?*c\]#5(׬#(o(p.Qm!ٿH7z}SΈ' L$|"a]$?zzrR\Īz?X!ο3{28>XZ"^KLNdrL\GȋJ.hzT/ pH+OIBB(~5we9#ɅW/ 7~FYq|٪@Oy];d䟒F9E:Ŧh* _' Q8i4I8x.s.W{,$s'zYS6&fNFn ZLk3N'ދӪkF5Rcq/g}𫽽޴z]CFg7\yKKZ֖waF ZFoG5^.%WϜ8ȕ/qt +ӭ +;GU:Ч$y6xֱr䯼bj'p `LoJ=oa=('L&Dic1P fb.JS)(%T@)vbN:;t5Z a(Ĩ_5Ʃc 'q9C.W rV#UzELR⽨4AfM 't&L:ّ9?_K+rKPm$3Kk$ Nk`E'R焬C!by9>mu+RE6Sg~$LҊOu2~)ޘ6~%Wbdԯ>ZNV)b 0u4;^W5"!80F&gv`g&g=h !@J !EVDq|!iQXѰKKOXCP\(IJB%5-Jk⧠QӔnX"&U3mezф袜e~a!j|UպB-_0 O_"O(;ŲϷK 9Et(b@O#Ʊ(BkQJ'kwDrZo)OCFBJAM,hָlKqW6^Δ-k;4{ iE֥. EvxdwF$#QrARK]os[ >ɀڃ5JVSIHmwxh٢a@Po8tK(Qjb9HA_WYjM2S8 RLEKĩI?jU5+L"?v,Xć2cFø~K~\ u:6mY-sL>~K0+!bIkF3ݾ2usS{M❇R'qd fz09SV|av1fH. *NWt"PpjH%J22hxI!͘C+nOqJY=W0 HJI96^ Z +ŰNEbN7]A3^?9N7<9ӡI[iG'p,L[1%K=}8[[:mt$%7;[(}Yйqytw%Jz>xQEsb_>0XIcb‚ l0ךf 6 6Dp!uFE%TX ߆ĊB;6.H-bMCh^n2 ]OCk~d]HZ m6 {%/7%yX3f +AqK +DkH/ixtxc=GTaČiyUW7f7oGX:zB\$c%=ej(tLo<ϡU<3=Hkt6Sf֖BŃ u6BZ|&NcBLT+$iM?qY!,6irƔs^̎#0)M/y>Fc 3L?kq\C"B+ Q)8ۀ{RH"㠖=~H瘲V:!"H3$UI5d'c\A&?3 Lu,?z& "S?c\9{ Z7ښ3#qT +#)6̑Ҙ\2>#3WRKf&c_e_,Zv%F|=qTD9W—kGCٲgRjX0́ PJ #R(6LZjT[ޫ@DkJ9t{_WFC\޲**B·耫xrW[WgWY Pj_1@U!/\O(P\!/=@KPAP=& γ~]t&9lm[\QFi{!s?-\VLaC1 n}ο(=%;#HjW/9dB@}(q|; L24#{y>Vngu[Kߴc{l- y_ 3v &ic>r0gDgG`dSZ_X4TkW|a<"HZJU8l%To3)LK.wrCQ1U-`崪 'ڳjtQti~y~"ݰbZTߵJnk0 +jr&K_ ;qr㼼,?m\K{r_[ P +)bvHXz!9uoȷxh* CP)K>=o)_ [sͻۦh/'0~@D_n'DL2#Q0vzT~,"%Ρ@+rMW#X̢Tv}V)ûPT#Strl,ZUh_};E0'u`)\Y !)FpY\6+}DARyecț!p5K$͔&smsqnWLz2- BA}+ kULB$nh9z\{f{P&Ȟ9OsP*dah2)B2qۜ)L|1o<@or6tTS4鄂Β )|Ԝ;݆Ѫ)HGfS Y+ +6`{h6Aژ& ,Ӽ'XE#hA-UYBK/+Fnsq;nveԵ頋-+z&u{̓[]x< % /{L s izHOX_^bMi ;wyET%ף.g^F.]iX=Hy7f/uIďH+˼U@_*vڼwݵGBQzM_5(EշY-0%;گ_>Rih<QfM?SX${h"^;$"a>ΚB- !+>d!YJ^Sjy]AYF 3$ GJ%R*Si{PǃjF\&b^c"tU`{)d7/"X5UpSk;1)9PxLgNhaJiEܣ)P'nNȠ4j]?ݖj bpT}R^QYDugɮ.Y5׫ ˕Yx+Oeٓۅ#QFWMѵy|{eU+_>4FPR|ɨKuΥ(&haEHcb|`ڜs~DLu-lojRxVFBo5)U^&h;'|5Yu[^d+tvpt):EM֏ Fb@OD_'_&[Q=e wxCx\~V_Q{*o bg#$rd<%gtSA׸h;Y1\8uv6 ^NcNuYΒ0y(*=U\oAS?MfUh +pKn1PDkB1YAM@, EK\b>(^!4K ~N la-2WrϹB6;N\2 -l{q3}R3sgbQYk*=$aCoT"TQPRO;"Ԋ76YIyǐ!ZO>ܯ}< Ţ +Nl'*C2h8 +A3kRAFƯ/]a#+y/Yu),J A`\Nkc&\Au%p4NMX,2A:=D#ahxyIgn b~e-/so2BeSŘ D,A)BL[ϣ<>r BusO%6&7> Qil5$f{Qhôhpv @h#- hRF './ch&etŝQ!z娚NVa-G."c5M&MFrfn1{+isNhNKQmy +lA.]#V2L1U vĖj}j+{@.jғkTp%"鸸OBzhZq-Hxk@ʢm4H$0\~m>S NB894fעuU8|Y}eHKv4ׂ{AhqQx޻Iy= paf>9éB9"ÍoU.Z1!VVu5YF"$ثKPlY,tl!eJ>Nr>%!^[0[Š윅7%;m|^7nu&7yX/:^**Ժa^}=d2 +敏LS=_MU6DFAW5qTMدaC>g 3?^V}#8“h +}oxH6rq#%ᆏRJ!zX(D-#] >h6V>jK&/$E{~+<kokdÃljjE+$dmc6 foye`9oh|i<ކ|/doܛn'I6ػ<PU.PV-! HAd*\<үM^8sOJ|Yl"P "!Q WO1nC|71qPR( ҖvܧϚa3{_d0mbI#9bcs %sOS]GS6ɩA?+kgҔ9cvEw!4o*`yJ+BZE.O7zow+ez;(CޖL'1c):>T Phk e EA򖳗4BohWId${d2K],k+~]9lVߙODk^ %biW aEx̹eRTFD5:M$;dর{ J13i3P&K`/C\';ӞSYӬǬDcKʿjDe8J{8AfG*G47Qa- Dg޲=7֤Ə{P70{M{yO^7P7j@*6T2 )ٞ_5 +Az)_Lm^dN׌RmV4f851?!3ږ*}F)ԏVEꖣx0Ya8PEeO:+pZP:lbb*moGkE+W)GGX1Y-{EG +RH>:o#DlRj@ڙj[L˕'p^Fd&Bb|;oO2Yiy'$d7!j$ +AM 4/ӯZ>2ćK Yc'Lz"0QVhԇhi"-$F)MV wm qfH @,t%NuVWc0U3`- Ok#.ˢ4uϒcQ/mߢ / I [QUb3M~^TG lm-u1H_wSgvZpu(UGی?ItfvXQfʴ-ٳ.RT%pp+p8 cXK EbSeY+:dQsxK & Ls&SMױCtPnꌤhh47n|4u0p"GgJmdxpΩKS6d:ڊn<)µP n8ID= +[un_@I d,bt MVDhi ,m‹Jן_lGj4|[WҍURqJٸ >ˋ$9N[]N[ 2+=ٺ *lMhh +d Iݺ~m!g\<1aCk\V'a,H3 +ҳ1i3==?WL=~S.MV4V3ͺju +4jO":@9LK,3fd&VD`)g~ǥYO.P9*`</N]~p81\|ÙV~!o"sG4-xQ#EQoq6I icJ/4<9"o!DWd#fNijLxk'_TtGSO÷$M<1#dn(d<<erfF-"u 2#WE@ºbنG$E2ERY4hLqo6bݺGxӵGIu޳LFhNnCEK(G2%8#`#&Ng1X*XΘ#)Y '7MkDRy'^dhhg#ސ=r5U PnMgV@GEG{!yeJ^z` _:Q4__bqA.~w4/Dp!G#(2B c'CO }1t&ISFD9UۤyESMF4F`AGN,'aVh"թ<YuRv 佴oM`jܧ&vh܂qsk0OZc?/b:j(?f/5X +vWqAI1J`]2fnfK066B@6KeE0Ȁ`plqqqA3Q:( ޯSf3n7tz}ܵN {E r zRιڰch[tMi +,qtLD}hE aWO9RKz-G;Zt[xtf>Jeo2-+ TL5j/ɂ eŚ Ɯ,)-bÒ8ZZL,YKvL6 'Pe=ZL9t@<-j' +4oJ*r'%J0|G_+Ϧsi&uʕ?g711,e.|*NMGuIʔX7( !JYI8ܕ)T=jƸQJf->u7!唅07S^?գܭqcts/m%3[(_EnA '/8<.Xe,.3|rp`>ɲnş6HLH.ج'QD= +܄z؃= qVōJ7qT,hƪ+ku0Zj\k(+&ek!< +mT]b!e*-a0H{KU4qfm6`;FڏKp$4͸в\sCCտ9!JR8ܼȋs撎2o a0*8& Z'TM'`K2$ 1ŏ +]4N+2_jyk UҎqɩ&RӸHzt]#!97JOoܵ^(\jҵg^kBvxWBc\nA^dwTg}h7=o۳ɮ({>Qa(0,Mi(a[nܾłfCT=CY]=TxBhY((t@>\=Q`BK1L1+jsbÞL]׈de nI| +X9 ?kD6,>“օl +E F|#ZAߡnwYN^Xz /t'Exb[r[rG{Uv`- hn}p>D %j ONzdaL[,\8KPƨ2ԽƏĥ/t( |`S&݁P-&sO5:V5ERiH=!p/Vؾ>oZ&nv1y \)%BME3"%I|* Lu/H; :1N\k5eq@>v,QϙFLAtjuja(ˏst,䈙u>`tІyj3;R +v0! +q]SD(*Tw3@I.*$u=}cj#3O7qGbB[ETJKz1H"((ܿ]3jxx,sLdizA]r*hۚ4xcp2F2n5*(_ucFGDzfgiaCn&E#'˭1zuf%ˁ`Wp/ .61 +1D(Xh lə$PX5ʹh+ 09?_,=V\((F$x爢5ű+^ug{9Jh2 Y',SA}l!HC+0=Z!Ě/1m0^) Wh0@/g잖 6j[RمCі%֗I ]=L[dlȾ׮G|-r5rjęANĭz- yӺD"_,KxhZ!wHt"]\ |ˈcSQ{ Ť_s@$z\/]|jb-i4QT@,>e0Ed0ۣ\^{0dX Y0b P:d=2A!UΚb x =)ZDq w>tV*('t&潤:IiS455(׍v?ĥZbGQ5EinҔjĄ5Rv! ]Zٞ0N;`jF^snDFEtMvJR:j-7ߘ-sLgz8hkQ,T>GJUPF9*^ɦF #bJz9a4zkzJkpQzn鰛!%ȞΔ`Cik^55ݜD gk42l&44ȇKfi;]tvݐKϰ3hlý!5M\vc;8˻xLÅVoSSu% vvƵGmһ߮RIU@Fڣǜ8N {w:$+$ER`88XnF/5WҜ{Stss + +%>&HW<9'RL iU\Ь@xdKKFrz*SHs(j94Z0h3S)[/#}L,* - r9̫K0}pYcya$gP㣪_oH/ASMeس)`tX =L%fҵ%HӲNF:̉yml0&v>bᣠzQMMF͏:Qc r!6asi=(|{ gR3sOQ0ztSr7yK +UKrEn Uga8Q>qp;!r0FeFYYMnzvF$hOatKELf3 _"xc$ʲX*Zu؈}a|/c6y_껗Ki0R޻W&*UMKzȟjٟh蕌Yq~'Ӝ8 C׽E. +ychͨBw!򴳑C +JU[!1s=<UQ."vJj-ϖk/ON?ݳ-`a0_酁=WZuħ}ב~T]מAv"VŭJWq2k{Tm%ؙ̦t|=捡EȬ/@?O U|h?ƚXά{ezf5b%ޚ6DvњzcWcE(LAM0NbFb24fIo@H?,K'D_q%D֞ vZGr5d4vM ZlEB5c|-nUۍt9gx(ޕl s$?#A pݒJG)|X}ł+;{˴{L\jI6[nQonip9<8mvp#^2p"ݢ wOlinKW a˟R Y8tHC]P4x?.i |ݙ]JR-gY]\){^EE?jDJ{hnL7m^b[j]}Y+r IxP҉/*g$W8hdNj/IXqaD$ ?qͯgH_;?~0}"**}1t؟sz%`$x=T|mxX *Jm0amD@ߔYaHn@pl@NQۋƝD@|p ;KJpA_l%;(rH8 -CBԈP$ퟤgAbtLeoyw?]!:]Iq 3nMK?K p V*3P&+9d;Lj0Fq^t`Е󀎿 jȋ>%LB`(xג664(<{]7[EW+a",?SJzvx9/ vP6y7|_ +~<ͯ @t+=T_zy=D|Т" ;?pAj1OJE[@FB&> ]#EvXq4>aja8w@G7eF&]?q䧛0?H7L_Ք˒P ^~r pzŘkGY +%OJX_?!oa(1@Hf@L8PD-V\ַ([5ʻwL6<'ØK<+R0h$$3{2auj ]yE7fax:-JGq=3n<ze}8:|GhLwFawf69q@x}2[^݁r7s",zu}CrJ~j(Ac50L~5gh\Cٿ?z|g?ieM; ^M헿2t>ȘfzLaah[vS[.y@I驰:][ߤ^> 8yo]M +L?a,'(f}ZO> wUoKb x%33 K}6Mf&v6,mPwq,ҺA+|N\Uq +!S%iG5?RxG m7yA{j 4v{| K+(ߣjvl +*b AvV@ܸmHZJʿ4is@\?6sAy䴮VeH1ZۅKtڥW.%Pۼ>MC&HH%9-J&+,lT$3o2l)#!C5;mKj]rM,:x\k}?\uƜ[-T%0]2;>cxvKgN!}c]?R +%9[{{"=%zB+DlMj-P5~l)r,ZF)ҥAqB;<#OqJ#[~,ʘ~$Gǘ GEP)ZS'oz?:aM"Ur%YP{TpڛbRFmm>$:笍y<9aCۑKE֓D匹11 VXL/A)K$p|^ xzd0`hD;:@ui'vD5,l_pX`1uK͑ +[D&U`X;F3wʃ3 jT&H3윩#n|v +iRѱOJIlCU Sv-ۢn@9dQF~lLrJ- ?E 4-  +@Uy`g(㦈bn):_|WOGg米ngs5W&uċS;v +g )Oj +=q.=)4LEl伈#tj)z$p'úc+p$But +1b!ZT})c0.}p2\Q\?j}A&Hm4qJKfff4yK/{ |d6Sf֎u˧ Fó9[{&_|HWĀN/؄Du?/ Ec!d@ݛzXn!{G;{Gg 'i@~[`&& B|9>WS] W\R50^} o| 6^Ds3v:vw"]c'Y(wPW2!ᑶr!0"x 2$b.t +#V2% mV8NwX=Tbi?-ZHbU1"?;0z 2le Tm?i musyZ ".WEt?r,^@H Ht8 _ Ң&]I5L4޿p&]JAYSn\zx3y_p˛$kO;bJO(h,S ÒDڕBZyX!jPQ4>$gٳ}K|ҡ-r#}zས{yK sưL&NW(LىSgtRkdj(ceN nKdϧVKyܦ۰:#of9<-̇+W֬Vh@\Z#UQ6'CJVݎ|TX-'2/&ޫu 7EV6I;!vstb(I'N|aa:?OAJccl)k:0Ċ6vqV\]V o,BYSVq񦊼Kww8VDc~6szwu}E+!ӥP(02֕#D4O[$g,7~0rZj%8o}e?1YNrr#y?D #{Ōݕ]DW?{*)?2$,DRSz)sEq8 e0~BʟlW^po'x0z*C c.[=G8$w +Ot7\[ +ugg4,[/apD1]E5;%@&סЁP$9¸b1-b%%+gv#"\s1,ӂtgP +}c  B$H+#q~ucyb +۰xSݒ2!]BdH)|h*(yJH߸kJRs}2֒JwÑyIo%lFu*3e+zߦ!;hij1pjW1_^^ +k9OeϬpzE}<\׉z,6M 0-f7A~0eNX돝Ԁ;S˵EhbE0}f^Gvx.yPX zt "ဃc}RI=S⺵iP-."<ڽ7F^+,gMJzQg% 9i*!d&:y!ꢣ4{ ~LTlc>DyC'15[崃i< + QyW #m_GWȐک + d1%]'S8<*Wk5( _H;/܃;)CLХy}a^ ɪUkIk8Dʄ'@ R[F vOe+!e?A) g@O|L@״saϜ-/4OE.(%RRM0`IjiH sEI\KvrMڈ}01G]"ㄓ3*J;v#x,eDS.W'ψ <^S@je d7I^E#uiLOC5N %ѡrٓ7Q)ܬ-<3֕j=k +uM%'j/UX̐a"iZ`:LcB1 -Y=rhE$m1эzj}\;լ1_&2&e#& F-fb\ {DkΚKFq[DG_hrѝt֝r y4QHjj$+zԝF=GaW[K龂$lG:Tg=zdt4l@33,`</q(b@ڟ\,ЮNU":ubP&nkVԆO Xer3/.1ŝWb9Y̼]43Q|ҜhRuӀ?2f%qI  ?>2ƈL Gc(I$#+,–6~Nn1~Ol&E{U[*^ƞ%19M BOUgH5g>:wU(ˠ&hL2l/g +"@_beQ;^Pj2^~#$()a KKHi)_N]- +Y:XF94˔bM\^iVwjd@"UtѧW{~7™%ׅ' /26w<_(ϳ§YoשkͨVBJԏ/֡}v/2N 4Xnnoj̗ŋfr6 'd\B1Vy7]?r "Vg *F# O7ga!0ykD}n {"ɬJ-{#:`8X)a,h 莘Sb9^s GMom.A.k95'RKڶsܔu(=#8 +Ew p?'>z]k0VB; Tz* Qbn*e:sj#Vb`87qɅx*1_ ɟho3 rvۜ> U5zMòϪw/ %]}ŞS9n|B.Qϵc~ne~S܉CFa=RCo~yf/:pEN ֍6z݇ʽec'n5fgOc0}toMd >מݝa#+?ZL@RUG/LVZ1H">R۞D&=Lx;"ROKK؍E~VU_+}W/% $ZV@iD-m~ N䴭e\KEqd--M|{}ܹTPiD_ ғtEc+>յ!gz%|$ ;~7MZ!|&T(vvDX08bjœ%)(oJi:0\ ys;@#H+|wtK3D\мʖKp(ywҒlOങ gG\KCaꙏzMD/oPV_#4ʼ}ڸqPe +VzMΐ߂az|.0Wތ XnКٷjTӮ&"?QM%{!z馤H$jpiTfbOLZd唁+n;tN ]t`ošwWTT4=+c$Y3m뛵󶸺WFTo(̀a02Ր|Ȟ_̓˟Z0{!a;Vhp`Jβzپ>vCH19}hAV\әeI +MG1?̣J;Lf{ŜPUㅡLN21B5d1oYf"MzؽlҊv:s|Mr)ڽT]EFIzarQEds#C"L̉}PS' dWE֜@{=;MALǹ|.RcGڦ: zSFCȴMB +&R銏 +ȑg)ťH&hV<UU34G+BɌ&acjJDz[ +ڦ&x539G^ B|!򂃏h5J@dSr1HD`2JaR=tR!Å <ńBa0S̩]MԒPȱbW6n$ *C(Ok kZԁ WWx7g~X KzXMǤL_{PZ{t0@df? +tw/ԟe}w>+ -dOB +_DTonT!ئ| H~P/Ow=#Va]eowFOxY[>aCWeW{ {ne&fC(yk[[DƆRf5]9qKBu8kH\jJ#.鼗E!;&B*1%n ׶T4u0-bT5ڼ!>18InUy.%ٌ{s8r U$W+ T9"P rlhU8EG,lP:,V龠X9=+& KkZpض-P8_fr@usj<+QHXzؼSg~ljh㾲G#Hv^MVWPeEPuD }_bJ5$/ ,(1-#c1g9즼chϢmGC9g "hX<qu %qJZ>cYgϠX +՛X5GN76Q &n |i|rZWѾ}b }}ZS;# gGGƁ W<ꏳ +/$ŗ! q]",jsSJ$V,є@)S̘# eh} SĜBF T8tIlJA{H.}6cM`y.I0hF-; aɑ!2hFQ(ndـ^ L/>%sv\DT{1Thj]*#5'{Ɣt!W_&@{eS1P<#`Ip L2Xо3@]Tiրr^v9YYԔ"n[]|d8_Si-T[["Z, ϖ/#PQ4I#(N|-^$1ޙBe@q~dvdj&/@T拔k?NcW}2zgm'iߑv$$~ׄWjTK"|h>hBW6I֕7Ɔ˶AVUoCSJtnZ[,s~Vwd""Eh3Q1yA:`r{ ?e-'NMa#979Qmjq#,٘21^rTل\41qJ6g{&/!(bty:͸ 3r&SËvqfSV OiQ]pPϐ03c`*Ф~'YxtwLYMTyNwƻ4pBq:Rp oDJ*UCZx0`kL4KW:(u> K>mfbBJoO+[ 0'ϩa[wŐ#A'TKq˸V Y¬( !_סZ/Cm52ݭ0sod \5#IrЏzvTU>}ULÎ+.Wi==E&4\U ]eI6IuD6~Y~S%r:lC C=*إ ʾ>Q>򍹪 oԬm8/ 岥3 +e~ܴmrB=ܴŋ`f¹H1 VRC–«uncm&CHz[^׌J?6>tRhGBx6ҴfJh6&S $ӷzΜ"tYm$ .i~ZSdC(!Gmš[+=B]JF$`nCCAƉ+|T%Ik͓(*\gqw\@ Nb!kf1tQZmB;NyA|ϥ{@ +P?->s#a`%^=9ȄWFײh̒&eɧ&m"(h;M1/)iT̏X`n,):|#>a1kx[f~(Lz2G|ܛ!i7:¬r>!|N!mݘKݛ}_KU\RݛiKb@'.sLâۅ),Q^Xc Ň<<9P("Eqa0wF_a#.wF,F'qbE.fE?.89ɮȲh Xm)p +V(94ݸw9r +f(cBKcCV(wL.\zjwB`"T,5 ͣ},@(Z}9$7 +^9 PG)й? +էpe`TOiW5P8Ma׏ꦂp!; yPT0[=&Xkk 6+Z&`;%q'`5UTvg*SE}x)V:Boʡ~/Ӥ'?I9MḂĶn!TqyhDFԦh0\S! mmMJT_׳l +ЧEpov vOO5s|R<]EwNvVE\JQˆj}]Lhjz@a0|y pE\r:-W <ޥ[i}.sĄ[,Pkl. +.ϐlLs[T cګ͕OdY/'OPn18,߼F_4xG]cxcU'APwF2dxDHGļcFSǟr,~xO{Qj5k% rsR=uBw/y1vSN{ԎEX=0LYeDY:G. e?ShM%xm۶m۶m۶m۶m۶o]UwvW#iËb9[A,;u) Wlᅺd7q -+yM6ky(P6u:Ru 竌Ku.[wϮLb}#W֦}8{._X3-ߥ|Kɍ05ɥ%kFtvWW)'qYȖ5>{Yn7|jrIv#R^D~s<c[vjיhkhEҰ%]ڝ2?ɂڳkAN28 +{2Vs"V bFʥѫ)֒Nx=/,!lǠ gT)mKttOۛ-(3-upamm&uvE*3a^1HZ|g!5Q2’sԃ%Ы3l`Q~U[ڈ+a* i, ȾX'"b={:MA/}L@Df neӄ,ߊ4!x8= fF0< 6I=#cVfo}aTuf&ʊihDy Z8<## ދAh xcHYG d%d#Dm91z!iɁckHCW輣(wF@PseCvC[aB}ZȶTt5mbڪZLStWLW\t6m[AfsL&nJ촭S :p5t{&A뮱۴eWDKJcu.7QRvHy*BӋȒA䔐̒iXҧGU3D][z7f-uڍ){Λ/5ZwKN7+#JMv/-nʺ:'%ב`y~6ZNYYQjK1h2] `%k %tf 4PR/(+C{.6z WvP^WBI#996l5AE\uL,22:q~o&p%jm^Y Hӝx=M> 4X ST1Xa(l j H&(-`15D `F0Xwȯ'4=.KQPY2̂۰˨Z&I+RbI&/HJpK7{w=FEt*<單hwXݸC+m8hnxV 6rc5e+;]x˞R99ȵ$%fd RY =h6R6֑>n!) f6AMg*+٬߼ ˜,K 8@g/$2jIV~-=E&jȺuQ‹GݫMRQ>o]Q:{6/ĭor$Ҫ9XRO&qWާ8Ay= l_4{OԚUb3ĻƲcߦu5o,"g{؟cV R@R6|]u0嵶[1m{X,f-+ +i&qW7/RPsP0 R`BMͤ<ğp'4V1p!;]{ڤ,!vOPqXu3R7,FFE8$ԍBGлA)! iP2]TҫZmیŻΩ,\r]U)eru8 -D>Di$PlRm  P 4 +ԅ",3m!ޗi}gMx7=j7NtT؛;O jiETaٲ4Y*8q0[tBtB33n e rB͙=E&wlA1BciEU9,Z::3mHIDE9ܱb *44-Y9)nZܣ{ J% ~d);C?1C>ZS"n%NLϲcsN& h8mKEL#z0R{\#mlCZ A8ީ(fZl-(C'Z( ~mQP ;5QO5ƬM#f2XXt!#G6-A:G3$1Y:*1Oa9~rZplFY#)UPZU:ne0 {"sqՂi'#]-_ѬX-tęs8/C8 1A9Zzn 5#yp"}*!7Q z=OX +\Qu9XkjD=Ȋ"F3;=ɢt){([:8X{q#> w?PoSMfq$4hIm_Վ1L^O{PM9V۝i;_*·ϛ#)uB.Tf9HӨ4v4HA$Vk3pbQDh*IBUK gx{vsʼ RQ9P@n{V3LףUgj":0R,اxz9?Ae2pa5¬8-1DM3ԥʓC UK#1tC{Z"D׳⃛);Vw]2K&}H˄.g@YC&s>dqd7a6[0imiLy)J>3Ƞb`"GNrVGQ[ ~oԛv6jB! \9AT=VNtv(B;L +\{ \?.9R'i~d-O])Dᏺ6ز̸M!7jWmD}2v/K(,>7F+RUQf&^/=`F^Mm ǝ+NE 4 +OAƟaj*k/.|>'^dwQinwySkOJ+nXjlsp7oIOXdc vvZ'Mv*JBqO~bM6 dmrÖtU#X/ȹ%Y L9٥N~mb4;#=^r֜i_My ]mVHV]'\;ıKVy2 zNZU!t>ePGQT0rwiZ5PUFa|K,:D*9:)3L6OCwNum+m2skVJ~RdÉ(1:X"0'V>V8.Ҭyoڂ1xA4;|$4!H.!K!=M $!y +?!l8a0|Cu=hC+Ps7M̾OPǼAgWgJhQq]=Rn՟-Gw;q_(g?Ǹ'لNX#m`E5>HݣM.#/ꞏ=t;q?k]}8zFFX0 ϧ+44E}ֽ8o[Jkû4f~yvtjûΆoh%9=6'֬|0ֺCP* =| ȝ?n}*|Tqgi+XGn) ] W"闻BaԒ O~GйU!+\YbGJF\Sea?s:.Q`WL걤ĠҾ<*\A Tn1*?٤ydr %襗ѸuosB&?We2s57R{2Mz=[`2ӎ>9/>"O& +?yu/GWpJ>q$~6 + V^m"ګST cٝZX='hr/Cߠ;sп O!+ ښX{UGNҖ(/l 2@70b"<$pO )2>8)mDP(nXb]=5hTsx{ +՟A$,DF# +Eޔ8 -Fڃ.\ wT02L91L'ӆ7nKtlsi\ ح2Gʑ B,nkG+vcLT] /L H!ZJOǝe(0s-mrڼᘠ wh涫"PQ\U}ӪUEf>Z4|>9Mk +/ %7g:]"q^EQ8#]y +%lm9% qy(CQKPƌiZ,iR}%KHaCbEFHI3W<RT! ɹ*0ʑbP,"J 댁bOB:}eHs&mb%O91.Ln;yXyqgZr J(D TcH7 Ěn~9E8uDP_s +p~qЦE|腾!> q"vAk.^{(h ݤ 0}7r  F7o@Y76)de-rFPCl+cbr +wrtYL<34]zɦD TYIp: DvVHXS\ +To?LRl.Moazϭy]Lbp(bFת~GC4 $xjJHf{':ɖCԞOUfBctU*FFD'MmMչΦ^Ifm1 >;EyapԬ)ֆnv(衔`&N)P|KS)d'6Ԙ C'c+DqVӥ)@X}Ȣt #s +t4ZbP)lPY 7Fhcc4dZ2}'S%4ar!6$#5:]k@zwMAr(;I{[3R˧"XV#t7lr$ d)ᆴ;2RRӴSb] wg: {h"$%= ݌:>o 쯒 z=NoYaA9M$hs Nz]}|VJ($BҁpӺT%>w1hym1/g|\ˀug)[R/짅4F8 >7sPWG+yt*o.y4^@8 =^9A~Cû󍞨>Ơ2=z]yGBjaL̀rEIǓЍWaΌ@B_9q>#r-B,Ԇu*kV!O0A_пBkzOjpaw8{FH_;s`~UwuIG]Cy„/rX1HoG9$vH*YtB|6 +2K1[d r/ ͻpk Ļ3,x!? sE g0"({T6Cd}@OJdʻm +Ux> 6{d ۈDn^Ype sgLT]9 h wxwl0bFN .,[Cnܵ,ȉ,  /1mXX+[ܢ7YQx'!v1 DBFx`_F 5%@\! NYlObk!EU< p q:kX>#:}R@9$-@Sm8PUN]C+"jX`<Õ9v^aZ$80faј\ 1< ]! ϟ; x>³NuT @̇]2$/N^K +MN9H-`%=#%Le\JDžx GqM95 Ԧ2uQ#UiL3c?zruߤEX( !Nْ4+{ +[X/G%P>1Ⱥj`֚k<@ߣԯvkVFU,KL]zvcS{XcS߮ЕD*!"m(NssϮ9#HK6<6Z?0%D(M}2pAJ{E@E~`!av1Z6[aR=)FCv1@6rl3l6QzCJglZS|.4Y9囫FleJ PBFW;͞+~QaL p2Ƽ2ޡ1C P?i֌V.íOx $~/=$w VfI ZcԶ {~z6XTZCqnm y#7U֏V2ZdMg= +Lt#&l +.dn@>$Y%|9$6E\QTʘ;AXڀ1u^Ga͊Y`~w/PMޯw?7Q]y%Ov`wiO~}Gqt=Nkz5wY6@~u-p|c{x +axY߿8?ZH~ayyYm>ctR/Gj=A6wbHfGy1{|_~}?o2Xf{(b=|E@A ) +E,G|z0, 2hxGpi@p];{ed6[kzaߕ0e6pﷇ_V>3%:0V6x~a(Q(rJ0ˆ&ny%7kl\Ÿi7vN5Z gC@iD}3r7Qdț{!ze)&dD̾RF$[T>ŁĞ&&Yѕ @ oKw\ ^ F:lߍ&`'3 osA:NjrgR}$d7S)4$KZ/~!AuEJgŭr !8`.4Q+4לF$F=Bgd&)cK"~ATSƂmd; ߶R( /'uѩUH̆P2 ڋ휊7mpiws%yJTA+$G8N &B$e8Q`lVsȔ bf\9Hv!IGټe`[&:xBy{1{1Bd\ZBhWDiZ}VX$1͢T#'_gh:=@Ι݊- DlK+:1F>NrT>x1,8T Ph.d;4ȢRaEͲxGl5U!uhgs|u5U6&P( גTy@v{Z ~ JwR Ş u0p>qhW ~3t㶨C-zpX7ͯ/çk[Rg 1F_p:4LJYLZS > ʚ#9l +-h7(![w"R=RJ)} j6kÈ=.0r}O_)yI^,G: =]0/t`݇ tZ Lzpǣj.OR[!˭ mip3ϰ_\2.kX Q{aM͔{M +}- !;B"RvxmT6M\" ]/f{XOw~'{de扄ӦPjඨܼ$UPQ9"`%\?P @"r%Vݫ0$K>LjkQ~{+2nyvf>YȧeZhf$TQ255shU<{<R9ic\A8X \O4ЀЬ AAY)UsCXA4Эf1j VS_ykLAXVжW#8=KlO]ۆcZlA[]0w\GXЯYK#=nO-ݷmC>oqwmC:8xay9mC6}b cyH;dJǯAeسC*mbܑ"YZ7*zM|𵏎Zwo,4>EAsq:^B2τSlќjDȣ;Wq_xsdeo'WS,qcAlQt)8v hu0E*4[Qt`Di U}UPPtJ5N#\W閃2{"}'qO6r }h0m Uyz:+pU~hpO CN BRD2ޮ4ɺm,*wv_3| ܍9 Z }|V#~a3 {x`q71eUmTS.ڒ;^Gߦ~KR}t_⒚>2R&Ž6BkVzFxsז+T@2:WP"m#1v>;Ojgj{(ARKgqs<ers2b6͔1{Ʋ**EOO|4-VR+yq a;V? 7|Bu +c6/i-ܧCB߶3##A; ʣXA[LCk.>K2=a s nd3FSr#oꡂ;+j_D7+1'Nf&mT{KaͩL>Q(С Y3_`())ʓ\ka sЗ +m(=lʆ0.Bl$BP3QQj0''O V%V~g~O[|0wX.?HWsl5=>w1dHjH9бGӬk|Cp!غH(ՙUayURH8O0 4 ә/``$bB2#d~t1аL4Nxq=R~5 l}tfvR&:a}"gDW=k|(쀯ENAƮI|J`;jdHfz?Z1FomdDf;Ļ%iWgɪ!b?'!F=}ග } 5$? 4J-AJ8DŽ;RȄRPuGGezYćaia")Te:9E!5*aij8E. 2ov,}TL:F}Eۉ4%~ ұ DM0jAL- NI* +wsӞJʯ '|Ju7/#R†#(>~R젃e0P/h tRK\|HM0TzCM@g\P[ƙKB'R!5ɞÊn<=#KN; ojYBG329~] +@&ܝ8hz&w՝m_J+DpOc]fUHPML{AC[51,ܙ{L.>:V;;ǽ 3'}oͩkGlø9c>e o?C-M=p8 XGt^VEL!Fvl)$a B;@ ;POO`|&# lNG5U-;ӃZB-nI82T'rP9,?L"@def_F5V?%k +)1*je+=(+r,'`Qf~.hô)YE?U8?k%Q^GnI~t.q7M/>y>;ٵ܁+;QPNPUU:\H=\<as@>옢vJ( ;nJ;;.TAV{DϪv@>A =4;N=N#G#;j,9C C+!Xƴ:> ҁ渰5/Di0}AvjRLJ(GJi͂O@V2D,t\3#5{2?lb6Xo|HTE9Ԟxt`DRr`/.!b7t:6UFQ3(9 %\zJ)MQ +=7tT񘭏 ,}=E?Ke6itW|l!yPX<}^6792Ę\󱥔 GPw/T(e=9~XG(?l9y\|uHtBAzt"zl#b%Q,QzAC박vwl/c +Dsob!v4`iJؤaUVj +ꙊE&v RgKK +eܥz.rYgj4Gua֩$9ӦBðN`&]XXnZ,BGCǁ<b Jh8 +eY\O F_!W_JIXƇm3mxsȆ\mgOl =(v +wCюv ZMzE rzgü =\B~C# .玔pC}Cvp+C  {POz>WßsfDzcG :t*EG&g.3E@D$' R33GsRYAʤ8+ +Za2S! C~r;:O.>HnGRoC`v\1~@g +ٕq#.]:[#?A耯:=TsjD=r!ZD:!0rw@z]d{lP_{z@^jA4L&u40CG6$r`H2n@d;w$#;wk4IN<av UD4C/:ڟI(=U6%q܄ń]6EODĸL^{:NS]-T4Z-IP/eIY| +O:$y|dȵ+%&8FkvrA@,.1N5WE`lm0?2i_8d}H/{l!m1Gĩ˼KlS|+kKOێ%#MDfȥ\h[[~(-Uld̮ףo1z.O'v%PХO~(YDk2}XI.U!?yr`?QdX݇QE2A\Da>IIJ + փPDFG: /U^Kw}WNqfuqG=F5 ;^AyХ}u%8@0DSHl( V-#d 5)~ iK++5&k[ ;kev.'˅6'DsR0ym +c+̋k xQ0Q|f|\]z +9َ R'f rKoG%HGm WK0g%Tz@&goI2oԂd?'?݀ +zN% +뽨W`}{/63.uvpes*ŏ@ꊇ9F_@c,=d&>z= 16g4_AZ*\y'c\(Cn?6cXOs>W(Me|£Y:\62k~M2zZBjr{JesѥcE.;٢TI.i[h1Iq1.b=SQ?bIl׬JMq!K3FV9x|=S p;aIhqeѠjoZ'gs6Ej58(Ju~%=\<.;( +G"OEY̪۞ny;0=E1 o3GX4M1޸57u#=VtttVIC/4e>9*:P6*01`7qt6d/ȷ‡kijn~_PM],6kA+eƦZB㙊L6snJ}n:i(m̗\0>OFW}/eRԦ%[KM>W˟H7o30gQrNҷWFO\bð#0clA;.,]8orؠq4(aX1ܽr"I +Ǖ&gC[l(@̂y$p}ܽʢωjH'aw [?RrJ1+G!~QEb&"vI1l1)bi1]!ӊfLm(3*P3f+,݌M!T$KoOV.iGש`E ̒hw*#"VacmTWif*z y$x$?ԂՒg!02W {t,,[O_/^ّƛl6`=b;' mR=X:a!/@/m=C܏^^![:v| ǃ BȠ6aLGv +6_;@; !!w`M鋽33Gb6{K .H#a3 QЀڅ\ ̦RZRP{yml!( ƹRO`&8Ƞ8 Fm>2Ġ"ꐱ#xaa)mjQ-JJi-Ĝ \RɧHu[2xȖ8Fi)*'W$Kc[SK% eo˛?ҰF+KáF? ҵ\eE37 +,Rb Ro5S +iR#|0B^3E1]#ym"{46&펠ŽզeŃM'ݻx)DG񕎓Fh|rGRb 6?!ms)DQFF.H5yTTQ)J f2kOV:#);ƃ„ohہ-P>WBTOQzjOe7pL1f&CNcv(%{`C|K /}jA&-עQ0Z=2.j .H,K5`@ftgacx*i\"ɖeې 2:ܚ8X嵼uK"Z~ Yi:j-X@53!2+f&l-%2Eɪ KdJN&z MO++Oid2%Ggॷa؝b  r.=k#\Mپ1ք"'Q_ +,AXPm_RFgH[0?$g j_O= teh3# PWmg6fW\wQ5?X^ f* Rp$XE;6Ԗ)f:,= =l0ԗ˅IhDZ<'ӀV<.5nb.$6R/[TEŸ> 6SՃD Ba +Hk vK,:7 Wg|0(G/ͫ.Y3D7*?@Sym)sG]ho55+`Nm*K[՟Gl]J?+7?q:=h>q1L:9T.FuF 8WSIB@ !CCtBU- )q-#%_됚)SgX=B-U]g6h;<'iGlOޝqDxU>78JV}Pyif 9a8V6O\-Ǧ@TuoT 4Lp?9}~+l gGHf, + D+?+ər Ddi0F\nlLIn`$M.iZZYyg* _tB#\q3 % +7-az @g8$8屆5Ziϣ ƅkz <20ka$t7bx=@:b Vx5sFwrOL۸rkpBCvW" +ZyOzi~3qV^6@rܩnH|d8ER\:}$:CGЖ[і)@Q9Sx`*(;#}"\-+>Nb˯ے:% ϴ=XMwP(q9E\@k5/H@==jMTU5 F+-0/0(zOQrص]=TEމc$Md-p+Q 8 ^[uBuN㘴M+Q~Oax!Z~QsXj杂!8cZk+}T d:/TVT5Frz4!ܕW^pMeMwO0%FY'7NC˚NWp))T.Z9RjqPҶZmUBji]\{ڕf̀&h{x~vM"L]M8%L>&ҥ\.AC"GGgt !'*"MN<IYGu^$TiAng]6".th*S=QUWHEb<fV)`Ta]>%\ig=+ L{̆\e`a˙cekϽ) $bϟ?fPb@AS?S#kS׋"#׫!H(lXSJw iލL'IW14 FiloDbbeؙ%•f\5!AwPHu_-VdUQ*ǼI9sżIGg3UvS.69]0S@c{]:5ƍ.f%jc-+s0`\{]ܙoZRZ g *Pzi̍m17 .50_zRco, e20ިM^T3rK ɍl>b,iU_jα\y[ %4!-K H_7]3/`)Mi`:n;]*_jD_u3)lGt!BZCQI*A%#) 4}iH}!evh:lx ͩ_ck! ""o -V č(=z8H^gQ,#)5#{JAvLhXNP4$R`\O8zg5VԑKor꤉ֲ66,uJnZʄE*?uT!!R}sjS B<`.XTW/+ !64r4b`jȯDnqHg+zf/)ZW)7ؐǰ$Dtᵝtƃ5ᴺ6UG%էjl*{tݐ7;)&sRJ-N(4swfRPp[{2=؂!a{pvW=Cl(k g,hˁG/CWh;2Mrab1߄x2SVJIDcG;Ay|WFIu3F\*e&6smĸV#Ii6ؑ0-/q[-ĝp>nHQ=v5BƩ.  )62ƨ!#lsL\(Ң3ɶ,*xAN=tEgJ6BV䔯$޵9s&$xY[45ZLrު;C u,je_U7=;uJ\<\eaVIWT4RF[}fe>ze@Ţ8>Y<KG(sb.QG*jNF N~aKnF_i#"_ңRA Oן.*I׏[r&m׸:2])&] oΗED.C,Rf'\ʜ]<}'[C9ASL#ǢSp,J%Ic4ZIb16t,KdRTJz,6q*5Agj0֪R^MQ7;J_R_tgL2>8a,JZܯ~JHMHz8kAٸ6tEG)U_&X'F(]q)VbS!f"ʑ%Ha.GqDK +A=iY.Cʡ2PfmQ{ˤxo4iK2rYx8G\ʲ1sDW{zt(gl}٪wə%.3w^%FxGkRgh4}ޚjl$%hHbBWhcl#K|^'h:EvwxtFakXȤLiq\ixgR jc|ߔk% Rsp{TwLX/Av!'MMxko6&3ʓz<-\Y[p,.AA;m !Cm)Ժ*PLnZtIO. U`[{CCp5 Co.Z1-`onpM1Ow{e %$!voGzwwi4*pA9EDgT_H*ݞHvIc 3'ƓiwLӀ)\9U\v{?mg@ $_w&O#$Tzzw8U]zCHT6GFP )iZ>[ 'W'Kݝ'SɗN85k *Y's6[8.ǠaUwYozS߶C1UR +iHY-1U|[. +U);T%Cid Kl^tRsGҚ&`~.͞D .k*^q6!S6.{Gi^ɩ?3Gen߼ fGTun +S3;L`DiY_-4ɐ`6 +؉t'82,Y$բkwnw K.')d̍GFM1E9%gc롍Td^<"CYċ2Чw(9_tb9+ǖh)?gͤ~cf:M $XrBzBjʛevZ7K: )q7PUp%,\o|jF } S8:Z?;|w,G,QVݧ +,! P&5 GZP'"}?zpOF + 6ȭ +̑=*=9s5Ԍ5zD|_ў 1!ߙ>c l_/~VϾiO]jaܹܽ7L%j#_ <{X}&цHÝbK!\LCPT;AώPa҈mlŀߞެt5փ0)jjjKCE5+U3m֖.e h`1 tbv +|pBU8twpG2z^ܑGpR9lƎI#hG@m ?^4P\!=頝1A.zc=h5 +j\oIdFU{XZ>1^OO(a<* 1"|5 9_%T_vj?}ĊӗN c0juhawKi7TsK;,d0TR'⽁?RfSa=rnZj#˼'gbC7b[5d=gur,̃53=])*KK%}@򺙖19>;hրǬ’Lwiyc|IVjhgI1;knai +uA1p<׍|:6Oj>l3wp KJ<΃hY>j>Jx%YܔnWg/J\ʘ'wxCψa4i9,)tXԟ;9x< "B;' +IN3U*=0ђĬŷBQT'TnHgSj;T(4irѢu!qsZ/e6tY phv{NR6Y  Kf3m&]Sp̙XO9L,skI"aeCkՂ5 mA[(3yڼH6*iw(RͱW)c 5]w|ƀC,װ dj9sut!Gz'H2gbfK j30 C0| { ninQOP7s_\…J .%%% Mv6Vo8ClDߩEAw'd(me]=?I1&5^ݳu83H0߯Zw唧4dâRn@K2otLUw-iXUz/w3\iϼyʐJ20ܡnl鯆;q d` 99q<'x1 !?aShsd=\"1AtKH@]8.~) ŔęCɖʝ;5R(s֨,WJ^@V 4K( $ Ŕ YbQ*&{S~gI^+XN +t +j,E?c'dP,ZgN$¶3rɛR"ٌq*ebR#s*(?C<8lnbhbom`dbcbyxkNI>6m +ILHR' 3! *"?fzfLktGR.Ӏ@a"#@+Nj(4ZSui||um{q]a9{Rh}5+Dн;.=pk߅ep$BP1z ϯ.:4MMzC2g]Nھ-9ѿR"Ѻ]Oٴs=lj7sXm.ܢAMO1^fN)k0^/9= %1rW!q.5 pif\mXm4OPC8S;//|ϺcR +bM'SP(R)M(7l/^{&2r؄/솦X:xtHn&94QZ6F*Ťڵ/k&Y5n.L>]69rk*r}t蘆P +UA}29 +OӿRg{֕Q "i ܜ i2ȱJU*B0_E2SYhh6R`@b{Ur xA'$(8e>&tOw!ߚeXQc/dpnkx)\Ⱦ%Ve`[wP1MbDҬw1Db^ # fLzaoB)Z G<]mXyO.|=yv2=h6bu޿$;'%b~vfz)~ +)`}C3;+{h^jq6dLZ!x +sx {Xzk#٣]=KE%Nh۫*'.ck>Nɯ]Eޟ"L70H.fh#w<~^:1"ސ%"&/ +N{}sGa="l0D*lceZ^uID_>cjS'T܁rOAxn!Q`rOiFەT|5#P8ͦ짐sW``GImvB{_YLBkѰ l4t'Q랴Ka7̀ToHD1WW /ܕ˨˧+wC6nkw#̱PIc-^ + 0GNb=ںJc_ S=̧{"d_vj+ꀞ A1rn<weP ܴE *h-, +Wk.lnjcnlgP>s3저:^L{9^?w٢DmHPc_1HYDTv`\x0`<؄1$Np`ލGQ̩̮qcN&^ًܾ(ɠ$JYa !2 :2$oSu٢I̲IA V1"rpߥgs琩G@^mmbOV27f%O3{=9*&\UtLhVrxiL^pNyoOy_sc!~vtJUTYXwK/. t*;%=]UN<>`tQ**g7YTU̡6',S[g2Wm285Ʋ6-w;vc=O'MwGDiH"6gʕoĀ +'ejw  յFi_ +uBU Β33xv\b y:2̗^3^6$ +BpW=2Tz+OWʛ?.k!=VSPbPHa 4XȮG x{|ZxGaxb6ڧˊBx24:!F`7TS6$$M&t +CÈ=M')ݱWGi>CȚdMG(I]&U1udi]&}vD,.CH,2.m(rI.ѣq>ѣrD-rMf!cbo2`dOLj|].qc՚4.yna\gdX]>>^\cjjw}eque+~^+0E3MVKleVL&REA\!,}+靈`q]~:^D#vY}ǹVr> 8!e y!?sϛnK,f"ea35?09۩>KX!zv]oKD")#H\<8bӭ-ٲE/Gv{ntq|e!G}vK^(k;p EI569{ yp0Wy:Շ\d š\rGOݜQq9<ˆ=X#%:dž<%ُZ׬>q (,b%d{,#\R=NAٚjs^`8;"q-H"7vjݷ{qBuG)gDx[W"fgjԍ#ȍԕ -1#Hg%a6dk!L-KDiC$P֘BŴFu #^Fm#aCHضlHP6mliMYP:"hΊ)iaNӻL͹_fϳl :b.`=»=x/JFz r/佄Y{cU6J0`7!#e\1y޽+mZkiL?p!/^&bHҠ);[m +'4D$yΡ2ʸk p5:c"KZO~_Ǔ{Jfz +9d<~?1Na§vK+$Je{2=^ieN&`%a mҗtEpRV~g3+s`´GOnYu)ܣFvK UXǠǷ5f"$ܶҚÍ!h0Ąc-}h+ɶ"IosWrwqqk{UݼV[]B<~}'Ջ#žgooZO튿/U?q}nEo>aUYxD%hvO2˽例=j7wOx׻nj7uM~%;,W+\M`9EخAzx*<I;pd L+֜E_(݃K'E~b,auC+Cª 5diFC7/5pQվUֱ۪Q[GJѕ+q%*6 aa'E  +tŔ" .R%nj00qa +e 11k*-U.@BV>(|xܠ2CG.Z;^@y$\0H6z(U +$Y"fEedVZY""jEgHEeC+9VrgXEf)VB" 6[!սy/YV䇙АrClJ݇Ktt~riޖ6Zf}";!R ׾I. zvLm]NWHz ~hHQ0-HC{DA>:ܣ/h#O +!S^&?p^Q6\ʔ(g~0" 4&%O?-r'6xK[c 8ZgnSKPsܕ}'G4nTV]wȱ`r}2-W 9O[cͦ@O)&B|zZnMP6x p<|cp@ ~ p μ`*?wsԠxNְaм?m0 7坻`Нc0!`p. F0#|p۠XoT{w)旯i_+|S/ƹayL/ aظ-OCToQ̸ O:ԁQc2ăDE 5?0pVFfI`@ V %# T^Tu:ߊ nBG]c&\Y6?.Y"|gcFIk18u:up.(u#u#uuɧ"%ǁY X?=_v] ];#644ԑZXȰd%hW#d$ֶf +&]~ kqq^^vBp1 ux;~h#H: i{1~!20]I菚@$,tDXuEv.FȉP"? $Bh$5 1IKwT?STK1)gИ{bЄ`Qq1|"QltM94V;vW{m]h eC +vTOiȚi{GΉ@3tp1{XY|ƕ ]|RIl+Kՠ,lO_,)5b(/ K1F +C~zTv%wvGZ!G]FA,оtgF7n!T(~IumȽ$T0a V`!V~-7m zC-"!"csDHh; :UE/AD#)|C} ި1c)Eś`qɋQC` 01PBD@@KrhǨ:EP 2he7AS]'ĘDu$]rqgqv +E,F-x>`ogrr( 5iN2r83˜Q )es5̻E/'*1K]E+ݠZ>*w2zBL$F +6B̀XG <&d@n֭ VZG[T+tm[[}왡?[99y<{@6e25qμG:3ô t=^x <¯Dw9$::3GF1ɝov<^9Thti6uG:-`u/SxC΋:5,+&j u?^gH`ؼ 00P<Нeh17@: cr;&f9Av=![axy?0mpv均zC|5&Rcy$S~96#~"Y #|#}#r8dHѣ{C=HCh;X?գw(<Ch <v!v#w#xt>} CoC\Ji =(#p &}Z;8;뛘czUzg010an&|* #Ņe+`Gzvƚhe K.=>IFogci*ŝM9j 2EZ$,G}i47K[@k+R{25b4{+cNfHT>k{5u<3u_ 7GTB +b€4$*7̃ZoX$ 'Źo<M} M +L8M2G[CR.27(FQyzp'ӾkA,+ZHJ+$= 6#8 .*UCm@/i"d]W;.uv^RHAeO J*Ȯ} +d#W2"3.rF! imB Zø,#$ +2f]ދr{Z$xU~"mmh[&m VB^C}C; +.$M)e>m ];b[kEq)+Wp8Aseu>ԤC4i&z)d9}"+S2|qc\aE@Ƀ\$+:hp1+e&BYMdHy#H b:;["V{+GtP9ʠժS(.zFV@ K1kz¥yK{VXe<ץ`( B\S(.374gwbuRG0mhTp_ +.B(3ւJeuJ6ˉqҁ,XH+`(jyD +pVh0pK12R" SI!dvn^چгq`Lb,T}THP)Ōn|8R!<յ+!]9Qk̐]7(< Rf+3 as-ײސZ:ᱢo}~B9t -F ? 6-:,$sѨYD?).95%CDW qK IK2e?CH}Ij+Qk9;G0Bz|t +Q&wSfтj!+^x >cMO<%36Guuӌ<ぉY͔ jKgX-4Kݐc $~HgfX'X}o +y]O耛'Пaq?⨛,`}0>4r3E'7p'YSMy}Q"ۜ€h%|zk_ť,n)sNE)V7%^E5=@YNta2G)_Xv4W=Yv49_˜ +OEi/̒Ia!JD醊W #j=ӒT*0)Uq*csj52f}2K*$Ǫ +ъv5UrdSo:(%rƚ9r*rR<>d{iӘJd} \Z(50!wY)MnE"T5i]WI`?gdJ1 +4.6§c疖'WQ❈:٢&%QȖI(ZeW(X:16$ صk,/ eC6s󵧩~ڇuA=;UxʝoHqR85 Lfm!-k[bEY#R4>ڀ9y;Mѭ)'*xs blW}wQ1cQbc-7m>/0ki *+{sJc$um!"Lck6`,i]Q>`ޗ˽[O^k/y-_:T?)! W<秸cV$K%o7wћF3fɋEo7gћ8;5jjݚ+FСXʿ۵~<>եj *X@#m(bNWX'#[)R.ĈZ)}ضI= eFSb +L1_d\%'>_s\ūi.<_y?d ~ަI0M/CA: u~6Zt9G*][6gvj:+*vZ ɐ^fJB-?dJAr~U3j^8F]?$P$饪^@uNI?EW,ُZ ;..H~poVM0nۏm_=P25Ӵ};P&xE;B"Q&Ңb ͊(ذ(gYx$Lkb02 > - V %["A[& - ղ!j̳w ,hgK)=A,$_/613 ds֓#-?k$轚z{Uv h ɜ0/N f1 p +fUrp0 ' Vapn 9 ٙ7@:Bk,1[Ѹ4anD>0qaqp]yq>@q.M cF.9*,w+7Pj߫kIkx5꛽z |='IE_hO5M8(OٸKq(OdM*GS!OLc%v&y<U$;DCne:lCnilꌆV$;\ $;VY 3je7!5p C52xݶBI1ksDRN*5L.;t::B'E b)7~IwgBIvlёL$~^Ťi(QWvFW\CJTU+FUK"µ :;(@98^'K;rH]UiglQ'DQ(0f4Su&(u-ijnVn*T`BTU~X*xF忲?/\eN{Af" 5o=;FU:HPG'ݟL@S|0hW]/8aH600eaʮj +a6W\\G>bllk(TGz K&PE1XWnRhd4^T?wJutDZmτ{26;?a5~buV9YśU /6&jL{1 Q\rLrIc-L2ْN`6nI|`3J96 +FdN!*:W(K-0OTbbD!O Jkў69$+=ESԱbsM;7=BTMJnOpMP6a@⺬ tdB;9‡)S,h?Y'Fh#ݣ~ns u#WLWF<;JO7ݏhׅ& @c|xܒg>/aϕhHvA:8=pMqM kDpXpA+iFR*s$uދV +M(]OnZ•}+žVGec_Y ~ {G[!8Kja.waO~#1+-ge/nx4!'3/6P$Q@_pQ3+!~ I !~ĨߨEx!mo rh66%L_eD(,.DVZ +n_{4P) .=G|Cc6U߮s.st C3\IJ_TzaÐuh_Q޽4g·`o20д`}o4 "2t\dֺGS069#6X0>`74̞tAъ87bt)R(DP/)s9}l NbO6 ^KP0|^w{^`!TvO3ͺ&=0:'sW<_sgڰsܶL2m*%ï)f˖x}AW +V}Q|'-<.41j~;n?j{a}' "oU + •msVBv +&~OQĿsbb``I6 &Y1Y/EL DA׉v.Nv&yzfXhH\P0$L!D@||CvBBA{ch) yӠj$jc _keM5v )O + xM}ywywmrTa-Rsfdwj͸ "}+ᐐ|gi#W)$w#Rϗ4@W)ZV:*ő@NItvs|&]-~8m<<,`, 2" )2hzB7L@PĬ{+Dw*s̃cAF섃R6ZꦦfO34!FHTTb/ Znj{q&tXRJyхF5+@g?#$uФARԔZ,)Qc=v%he I ZLfyHNbZ]ݙǒB{xL/%(Ga͵Xv"Ywp ߩi ?4'rZަ{j~4zr|ƣch}y4 yX`~s 6T״Z7{IގeUfAN)bp<σ /i9͗ZL RlѰ95/W*- skqPE(+3)v;ҵB-å~0XYe-Z{>c3q}< m4Cl n(f×͋/­>OaO ++W|Pq_[>|»]AaT#F~JP>xc]=s`a$i3{>ː'Aa`LgqH뫡 D=^Ag,.1}&J#?⹃#Su7?  įA7;8ߚ#t-BjvEږٯvԾ!- " B?-ҹ#;b)S_,gA<\D*' +Φ'qJt"}tWZIJEe<D_p/sҡ7|2#10lǻoB(VB drdnSp8GḍD l5 r/Iu7ݺTOq}p?tD˞4f!a=u8nb{9kO=a߂`oOi?h{<όLjΰ3X;gg(n[x+> Ҳ4%%$-albio'ahgbc_pJe0 E:ʎ +DZ* k,APn>ǹfnf?ȮdQdRI4uXv@ +le0RN] 8IZ}Xo!8 +TF`j͛60Zᱹk8QзL6E?sD0Rq"CImthb3v pdHaSTE 0;l:qЪ*}X0ҨY݃ʏ;duRI zhfR &44Xl + &X7+q.Vs{7F&E k&,ht*| qeƨl烈j♚XZ#m0 9\![+?tf`a+;UXk|I3'ո/Ě,B?y;"qP ij_IϴWNvfգQMa2),$M(0-tl9),\3lEVHȂcۧ/XO|:0\!@CNLc aU}n9]~Ma҇OZD)#W}Hpq t[Z{rGZDk+\IO^Dw&lT b#ZX=c"YFՆ;7洙RdF:P,X׃s8ri5ua~k56<!e堒הD-y1F+!\/7xu> wZt0thh(]%Iq…Ž!0d* #uj[&&_p47nXrN8׆\;:=i#4xMj)qOV<{QP##%Tz Doa]2iA1GDLI|8y)]f,ji۠8[Vk]oqLH 8X*CXpQAݛb{%HLR,Hx$#3lB010G~hJwJs4ge!Sn6R:g,ƤZԄb|7CeqK=DBp 0bU=4殜k‡1Q)̌sc8o ˮ3UH3*d,g +Y奱@Y@LsnfƧ”:@p)gzVXCy>?B{wE*Մ(\j*ԀP2`b@sy@_} 1΍ĊJ#VJ%+RCJ_YOvj;oCOTШ {%7=o,.NKLMVC>"el=]_=dϓƓ E$|6%.V4ro\LKc&{{wFxeG u~q{8YGӏJ!KDpչ5E6oOu C|'m-ͩG_8E;>VvϯJ?&z^C'ae$_EOjᄑ>ٲdV +Y&l1Bd֒Qcy2d ٌ̧nUPpi+ը&]TQtuo>{$nS?{5|.B٧4_#TG/ɰ"f$NX=e=Ű0$%>ޛ1Ză/p1wj31iŐ&fރGV;~ݾA X~Èl{&ﱑ/[swh2?"b_axyhJCRLc{dCPO6:X*eC1uɱMDiQ +ЦzsPMewVdN&ߖ*oV̫ԺW^8:g#_o1Z7R -*sE2G]U]ѭƳD +O_7<ݺ5*μ ϴWL#F;HӰR">ƌ22IBCnbo!Wv{{kKK˽=7箕'R +-%-}H̨q1%HM ^(DII]yydętJyT6W>81(}-u5bʗ5 vfȕ$Oj(Gw[[,n rq Kqrƚ֚лʣneH7Nn60'f/5 dg~"0l&7?h6re7%mu +khr * }BQav"d-+POA,'UYWF?NLM+%. LpO{PL%e*wg]C oɵ %[2{&ԁsp ?~ +;B3&r&!U]+Q +QԥI2m̋ Ƙ&-tet)sК}\2k~+"a.**d߷8ez%MaoPL5^#HP,(BVy=ğJ *T~c^ u[2 n f]+'F;'g&dƸX-#v>:a.?,*7j]=C1IX>`&Vx}ePfnIRvMzzdJsH#Cҫ|Ӫnfݱo v৮?;>_SE4ԿkF>j F8V&0s@:_$ "> H;$2/©a(a0e,JqV$OUp!\gX)W`-?a&Ml0 +LmUVfV}/r%w䌎~&j;[m{`v %hcnp#C`f OqM=W}v卂7 ZpV:)'ֵ2Ȯc})š!#c>ScuVtÅ-gvv }G P "k +f@iAa?y3? G`h//TlÑ'/&n4ZR΀bwgCr{v :C`DN<̢{!\X(/؅`py!>{YrB׬!Fsm>U-iZkʳΡc^C6x_[;_'p5'l>fm񏋌f^bB=}ΩU0񉥄L#dBCBeE3(o8a=OS.d9gBE4:g#MxE0MH S/;:θPdmo +k-paf-p/+?? h[Q]+IX8,JjCb<Q;`}Q79JCqcz~qD?Pw0h~S+ TY=@W}KՎ֯}ڧW*~WzȊ[%V"ebߟτS=ds<+ +Spu1?@_b3'NwkW3|:i5F|)Hi'}H妱ZZ +]՗p ybvLld܏0 ]PnUT{a*e+FЇ)jUzd"wN93eeN O]C#C]ԣs38|J[gqFR4m6fD2'#&n^nM4P]`fm'P&ŋљT%bVUEըjJ56֊o.l닲n3Ƥ]n{.- iعHyP ' K%h% 4m7+NyV;P(,WJSP?uȣ_eϖ/ ^`өcNs$f\|݈U^dՍ)u?n'Ş'T|K8O>ɶTd= KgZaU`Ud?EpFQFxXE{ЉQ]. |M e݅:O;Ymfh,/hqRMFMwVܼ3YW;fUYҝvLvt?H4KlID(ȝo+=;I#?wKy1!Mel)@ڮ<_l9;ν)G~HzT_ĬUy(hY+14ڐ³H~n5[bݬ;|m*`T5PЩ x~=_{aMWc>:?H\r+sHV]BUtUF/v>+`=T'bM#Bbn !m V|ܹѳ%t +;tǀf[9Hq;}i8e9,ǎ~ Z B-XP ^1άbRAAlT['a_f=d >);gLV"Et?@kfLUs!|6h:o1l#?hhi<ͶSA+PsoQ~քN؀s err.6W_^řjU[D"C@6H " +θm`Մ7 ?GKfugno|_oÂhЛ"uWÅXE*@Hgf+zJ+2I1U҉.+?yHqw2Ă"+1"C!7VyUKGL}%Se.񋅘c5AvUq;? U#_7l.5UIhmPf& %) JsdJ7fg`\m^Ki7Njhpe[crSR3H].)^SQ'&MD/.3ۦ@9>$ +&ZuwoV^(/jK:{};zX8jCBQuQKd 3QR,4x7%v!z Q"9ή"E~?v dz&RJDܳu/\|:>`uH&.6eiׇi-ԺHvgcԉ%l A%S"O9D&d[ O]. 1 רOS_I3!0mB{Ʃh mQ &Ip\uizl=}"wmX{>8PDpO/H QuQE޷/blSaܾhQFi$ԖkkjçP"]- HRiiiZ eZFb(e(cu\se=i|{{~>z !3&Ձ r0L+q_&`,b )cb:\+:S!;>:N WȈao$$ +0@Ya(ooݢ\ mљ +fQ b{1PMjR{ZhomVk}:48•u `4 h +2+d 2Fj^+Tè ;$&8}fGQӌUo95_z55IMCL*n +3V-h$MY582WsZ}Y,@|G?NIr^sC$awL~3bClBBGDmhSJp!3!\'4Ң+ݹAb6vV#UIS%XGb Q@ӽ`ON _ywR҂'fvڤhuqF{M!vFP͈N؅}z#07;LR #'f>T}[IL@xLwc4[Sk,}QߢtIFnSPo/^&`&KebW3b)(CT!i*rvW"g}d]es{Hu(/ EHUW&1*`~سI4qm+5-HQԎDVFR=Ɋl 8E%^}@URJњ5hͥ2$|ׄɒ`,syu9X>.խgdĭ YWL_]m*Gf9??dR05< \8eVfs aN&ez#l|EvôM 4n"(<\O`(܏D$VޏR + k͚/CAIwڏ9. ʴ@Mي#1,}Ȉ45p=5Sf=r^̅Z圕hwfBESNWqNj HY,`aZ{aᇷPkars@ n4/ ˌs# iUd)#҄WK2SP@ԈkpIQnrL}[p0P ? sP!''W(tŦ|AQ)"""aGFJaKm[LcO#G1͡ "#3؟f'z#aWHsֹ,!Fiɦx&s2Ķ. 0x 4AlJ&C/j*wXU? }31JězԣF+m[(~;4X9: [zMoyL6gv#2 Zմmtk]09+ظGzfq}l+v SCS0]ayw5igUNL(El IH& R)hr=fs9}n t:($P)4) ɨ$e6e8P/(X+@¬;v pW;\J>U 6 qP}f ~Z;\vZ/@Y%O=s0eLm`M8G06j%n47˘̼ڛLD =KXβ{i7; ޜ1Qz[9$53곚Lww'rj4K#߱Em+U|F.Unq5-RηS2SWחB}.,j%.#dưVT;y 4YYxI} 6 oE9V%|w +u9qk)n2n$9TXwmˍVmVوы:7cmG" ðga +J*;[Ym29:м͡߂d C}^RA( bVQ'?pbN$:)6!^,kn ƛ+ZOzlHD8 r7ު̀_^ TVm٦Y@'i*%ÈkfbG>H'sdp 9O[̍+ЃVND҉u&ƓJDNƕބ`nQY[ⱡ~oѳޗoLI84.57EDbKWYY!Yg_ N*cpP#B S4UCחօ![<{Kn9~9uA[ +$+ +F!WLSmbvͭz]Z?YusK1k嚵lvQ[+}o/޺w!)C"#CfqE)ޮ0cXLxeAeDW{>?F:B:umgqԟm-4BZ3CT40hԘ 3HȍHZ% \##:h*)ILETn9*sB?RyOxNN^f% /W2셀_t,,eD EiQB)Gj*PK}ԖRTAh0t>LAD!yTA>A?SP>Y?U Q>Ta!}-AGuH/ TǕC'Z(K +%ף=-QyP{)j +{f(V2,]iʉg5rʽ^pdQtZM&եg&H^5heը&E/ǡn$M=Xj[`S1aޑKZCKy>I+ש@Ny,ExCY6+S8kWتϜNYΉwXkJq3&K J&>~z:Ѩ>?5N +gJm#GӇ>ń8~AuuW#>qCd;6sIK\oY,b^bD!]7u);y +:#QFnHr1nBy+XE}̓w16o",L>.&\L\>?bՔ +>/|'St~&Tw +FU1=? 3i+#h3nT7HFwr+˜$&GXN f-}/cr])] ԑ>^Vzk[ox)jciMT sF$Q-x4' +=D89Y?RWP8m8p?8tRPLxQ.F%> EAq-=m/?ay.|QM0q;,Ю]מQxzc;g቞x##]P;!p,ƹ&KpK_FgFj@5,:ݛEeC&3&utm^A`'9]Ҙ|l}V"Juڎ⎠g{BOQK}5_V]rcWDAOMDIMDW~YO}I5Ups$ +>rߧF1&CHfmKe4pI(=BP^iYhD/ݓ^ d1GL-0L%6JF,hD'QxLp7ɑ;j" c(7}r +DTA.oT +fyͻO +u> +}һo|={#{Ai̕n3acl2Tqm~}ƝHu7lSWc@"@:ni<0j+uˬT&cJLJhN㛴veǶ~~;HOp# +I u#6ҋ/=2ޮBc՜lAwtgO:ITj(륩{qAwQ_ TE&L1b 6Yd.[6,XܝmAZ#XiW9C&y QC&G2B(E i6>QiS W?(X _Ep )gr)oI;~a7W VxM PExZjnU#4l)ŕDУL μ'qwd׈_51䟽j= b)eAy-|+icfWfڀKab0}j Po׏=: +f#@%L.Hm`<$-VVl$S10fh)I7DOH .r_󾯻m{7a^wѐ(: qti3TEbfN6Mβ +AWPRPSP~1أ0* 7#|,2/绮U1i15mjmWc*˚ A=[Yv]=N4nZkDdϳ\NCvHTmN s@AS%=ꍶ˓ln[$}`3UWo &U X&>)ODBg"6.NGnraJZ|OOgՒ6p\kļlcqiM9*C}OY?*$Lwsmr`k⮷ټ5P!&F9\L+Z}-RZJa!#EigetD+iҁk^zՑ [/ g}T$7x}{OKk8 +rѠԇop`ȁx&DR)&)ROW̑ ެel2/u/>i0?h:-8Zs~pR+]F h+ }(sCMD~h*c 3_e"<5Z]a8eXxoQpx_JYLcyn#Piɓ)jZG\ޜ&&ɦ/G5(Oeee1Q%ߤkܹ<|jw T5dZE6Y]{Ufm:܋q!p +JKOP>.nZn@$Hy FBX2%$X?< FFB $nZiK7?sώxP|5xZ 5"B|&0(^Q!rU$TqWϲ*8%G!{JJ7ڣT0C(&PrLǗ,̷J{JyO0>$Miva:uiלftYc6&3G9Cy7eL֦0B/фZg#S4xLJ!!HZF(F@I1R}  4W(ReB*",shwɗC|wΑaVD:aYi72I=ejOT,44c~O~0MEG Q S pk_ FCgTMջ]Akx)4}_UOǣ>Ynv=o׀?M ~]TH[J=n(pg{54{J)TF`2 KF/).@]jy]Aep5epώ: %=&O\%p ts\vY|6\>PC#,ÍGT~+ IRڸx\젧ҏ2...CM>ͱ#pB|(F4}UsQ"uĊ!: ++Fh"G!dyu>bej>U|[O BR2?$l2o9ܲĬ +o_-j/l\q30[Ro?]м\NhBaNM U軧~_ 4m?"[1*m+TޣA((_&ͯkMHaX)XY_O#%ʖHQ$1Q" [U׳\3i(SlqPO.wR.sp ͢*ORxQX5컺]J%,Ϋ^r Sd/- a;duU*Td"NeyyÆ~K1G8s m`1 ,34} s*sv4_o3;8c̓+ރ+ga'Uܱ/_&uO#g<׽-ҴW"0G!߈[Shj8/t 汤N@\ߐ0ﲡEov..T7%>W B5w?PnVٶG1E̽lZpDm0Q*qRV&@Yؼmٜk} Hb0d,FE< zD^#=6-5s>#ϊY#@5k^ldAF +A;$5pؠ{EG.TeGڠ £UoPU\*7jzqOjT($.&*I~n}uua>q 478 y_YIw&3m-]3ٺ{V<'2RO&Tl9!s- ;vf +B27HbB%[w'4n(bv Z72-07k&jWa'o1Ocd޵ V%ݹ0HST[1c4=S"},iSجGQ +!™$sI?M!  bB4" +g\__)Py5{!0kkġd +{q]b +YkYo8ԴԂw;g6g'*RءC_߁+qH:\ٮwAkCH)?-li.E!?M(|u]( ,StwF1_vϻ3dv]_&;ڹn?\Wg3FD:Ƕ܅U[ࢵ"gz4&Fi X#Uީ\eb=MqJo.OVnSSx @LIWR;9#d`; 1ͺ l۶m۶m˶m۶m۶m37f{̮̉OVdev?ȓ"r  +e9bN~})BƑ3}]|W;, vAe.D#lJ􌻲)N)N!)8vN#̿S3h\"')}6Q(^l)뼷QzD\}wӉۿ1VqfGS=9')}Wt~4Jj |(yJ*1hJX I?ej̵w35JrWfKYE&uJWf?Y; I'kiZF8{a!2B0fۜK +hvzj+g-IszQf\,SЄ$d4;CqԐ^Pl:(= d :^u;(`gHA-kicyfaCmn@+d jɹ.ev9^va#3s"-Ί4iPu5ufU\؈!t s{;AJ {BoEMW} iH֫vFgQXq0ۊ$L&c5t}o&j*6ڌ 3LXqq88,gyt*"UfF-v긴jhYŴ#tv;ToU7~?vC-@];9(\!UQ:t6E,( 5tbUz'1XW72L6Dmnl$2{KpNlUd{3"@3$uSt?Hh[@)|jcm׻of]1WbAэ݇Fְ*12{@K3Gϫ `vԂۘ:kQ9,x<;T)n۴n ec Ib0.J.\g ʒZC: {!$$Y¹eJR(X ܢ٩P7׿ d `Ӗ`+?r_7Z2dA"=s_?7cC/~ZQ) ?4.ddI2LI2xf{E4Y2rL#,I2x I |/sqhSag!sl]QPzFk(WPU݁P +o&~Ps({_m>C@*T$%tZ6JL SIlIW[i4zsް įFrsA43'eNص.~0}c2#a L`a,6wwSWW?s;ug+@-vg.ڠ ``s^ +_#6NY mO %$.˕;ٔdhO,;ےbF.tfIZxQدdf9sNȉ(Mr=.nD-~\gka%tɶ6pSܑk3lɾO1tכarS"@ҶJsoMNt+n\?iPA;B7H!̈ NBȮJM5R#=FTa2ވ3 +'ǠGY@O +!$7\wNx>Oa푹59#L1r Y-5n 7S4$m擞7eTyM1ӘXe&S1@M]ѿ9?Gp?&5M`yz"`֒fT +<}c~zh\MdXDT%ŮjLac8dVM`N^Tz`[+G@Bلz &75>,AXkȜfT;v!ʢβ9\zxxl}%?zSF`[TMOc,w+,ؓ9*.YW ng1ځ U9£:Ѷ޽vm;s=wѽw +VfNG_|xqvhN1~GJ滈rBh.\%Gw{p>hjƲMh wE!(MyEL%y~5av Y8Jr\S:\64YSC?\ccq `},J+w0qh<,Rku'hE|s#ˋtGhۇՀ`o_c??]ݏMsʦv48Rb{%pgRqNVH58Z9TOe\dbi'1`75]X~^/t?55o +X#_b!ڊC OP\%[ 7?]#mҿ81 #Ѓ91[t$pVR"Kd>tOpSB_)H©݄ݏhIU>.AMڐoD;ϭ^;79OzG^`uUkS!qL-}G~u ]Nrr{>zC;. 9gT ;e^<)e/XDsL+\oZ̡[ߜg[ ~w]ZM#+Gf~awN58ߵ0=lѫ1=byt'orXFv%ATGT-Gas? +45JgM9֚܄30,>GU؍g- Txӳ*z嬒m*TCiŹG1iI' ԞF YS +/Uήi,AD뇲ǯ#=RL_~]55VcŮXG^(-FNSajw?ܑ辵D⬍}߃0}ÿp._(^Z#FDJ|{(]̝~, yG+ X/$*U.E (A1[|CYڜ"n ab< +~7.i}4us.,'༩ &z(aT;a"d:ms6Y(TzCT]E\)؎9tfpUNA?cڶ'ƑymLl6ڥC VzY% 2QZԎ^+,b>ф:::F +O#7ىE2 +3]1YPLs:;jNT8@#Oe^}oAXtuj-7J6lU 4ZJ#ۑa>Ҧ53hDu fHy_Q +]J͐ +\\G}?otx{r .>I$)IVV7IѣY"u*%B]wiIEVB7wܞ-SaCUm5wV? 97ޥ dhgB\ƽQ qJi _YǬz߻fsVkz$ 'P1Ma f'&¾tE+ykv],d]B z׃ZI~Ps &Ճ̘[TU 2Sl2l3a7h#XI&BE4bfB{!F@ŘNE)701[nYOI>.FV4ra w&ױ)V`wK1XvjQ."Å1/rqANh7a.gCk "5pH{ʝD촃Apl[:[.LFUiT6] vuY*Ό&:.l7f6svm\4V4Ĉt<@O?7y0qlZ{ 44{ - +m"XFWpZMF X69Na`ߍ=W(Z|5 Z7`I0WfAW`/@GHA4nx|d%?h3Ƭdrᇢ) $1~uD֗߁Ev REd{8;0gȕ`!FGХ ) -KY* A{hfQ|.I7y`ax+ީ>O*{1{&{JU'IqӁ_qIQ5t3fr{9" )5KxO'dԉ_iGT +a$GSroP)^8w =cFq=CXk=tRGM_cbuD&_Awo>ÈtoKE+$$g9\vpB(tXD_L ֊W/XpF*Uy$}Q5F|V :Ch!Ch-2TTvΌR*M `eI jd.pRM& ưO}[şI!'~C QMqeME[b8 1V@esk{>5eMYT=+rڇ|ĝvM{ҿ'sce!O (I=!O Ő+ x=)O '$]jlaіm2\vjZkz\!ñN#5L5% WMt(j0"# Ru)|0WXI?^$GӒsj3d5 ׭EV UnͲci Ί*6ͭV:"w ɐ"F(ܓ]"29!p>aom4D$֙˂곳w+j_],PJٴ4TZn|\9[ :Jͭ_Xz˩VDN3t_>}Z*]+#_UťsgUް+ ]ޖUKziφμiCuSCƺuK\FMG.+6-ː&|Q͈g&?;w={={={t `>>ry?9ܡ[qp<_x__= z?:>=R/LХ.[ΰ=[YӾvGiGR݁W0?>Y_/;Y? g, :u`_&b~}~:AAd ^\@KXv8 *t8"V#l^ |I _t +)ɜϬ{_|j.jppHy[{` vP^6Pc)9Kٖ_AG.|k8kZQ. ;A9ԛK>GY=/7fù&1cn$Bk:iM!n(h"P[;.ܢfSR$cc]4*Q`Hz9ʯ' W*=fiL(ݤBy ƧJGޙc^E6rZfe*3y(JspGH| :|cUTK#迩MF(;MGEM >Qȹp*O$1S@) T*)$Hl.q۔D2k6v'M2߽pp=BxƁDGB@K|i! aIt<*oCZ&U E7%o(!+" eHb 2_" F Ҩ=A&倄xiAW©tÛnSQ{xci;>1`BMզi4<8DӸ-oz*tI_u;N%gYBi,4R_S׃QU +P4SPSbSQPiTLOO)lڮ6$GӯN>jl)?jj.Rg)>'iЪ8Ow:n`Uuc*mIU@YmTۤzlR 94[ծZ[RkD&rN=5K5YR[աz%(eYa ١Q'fxk= ڞ;yd;\d+WTi!h3% Sn'o[nȤE<}_2s&>Tyr q@-EǷ6 ɢ4^dt#7%ѦdC!LIyɿ>ز`qÎDTq_ )h)$ ݃CdJh.l)R4=MqvF)R0h.C$Qeռ&UcS!>.3BNCM\OG.0םG¦2fn#Aa+y/&]=wCaOm} +i}l~{0#qT. xXa#糦6@Oo3gBL\k؛;gio`_/h7Ȁ 'I ~dT%B)S@SErhEV Pr}˛ 4`!ƀ'n2 <5p]" 'o hPbaH0/\Ȏ~> [+lD=[ iQ`/PkbPZDx}8-$_C%3э(,ahRxI\Rb/`-p$j>yGaw찣Ѳ_0SUTzmdld +Ĥ%ḛ98m BaI]|.PIW8LXUIͰ +OLdEs,fDtn)Ĵϫb"d"%zeLHqG3IlH|V9`OzF?e&QS`9aog BYzkXס%ކ`-C k h0xFҞF{g֏u֑u%1؞UqͮF%ke rdao B)xY2ٸ\ݮO* MrsC3vW)x +ɑd=-L)j˸ޓXnIxo c%=aĺ%5zb##u1 ҅@DvPL'>=PX.OzR7(KA}p+64` COz`bMC[jrݮ>87Q's-n-B ؐntapPOӺB9?ވF]GVr@Yތfq]ޯz]kq[V؆[G^f hc<~xmen =?~]+]@1$>PJ\s ) +  2f+TÊkxO87x{ڝz#qK?ºbWwcEw2;k҈:_dC|e5'tga!> :H}u7E9zg8V-$n6g=AWSdAVZ4azu0XɗŏDmSuoTg0rGkQ,r0۲Cu?pr#cޓw}6%{eP7%垓uxkĚJJ̓6"@$ѺĬiq1mE'{+z 'Hob|uģ˶.Az8q+Z'WV/΋[1 V'JIA‰g45„7tsL.tSqN(L\젍9q>: +mI7;Wm 6A@FW P^)լbZIcE>/TCve< ˘[Was|˘]#Ԫ>JGEأֺ6)dc|#أyecrBkKySXCt מIJ%[`Fo[*`T\ү-{C_^;K鐙>5(#c I9~J-'#&^ߎ&>S\ \oa'aN^Gy%_DEњF3ؔ򜵘4GwxxG ,7OO䀂Vܧֿ@ . uG~#D2d~|87!O[y^aZ^;^~ӎ-`pV irK$΢85m/ew u)HA~Ա&?8]ԓ4jTՑ`)Rpu<3%f5?Ld{F֗l7`Hmx`l-f8J㦥_*2WNYX^EhAN|PgM>V'F( IL/VvW!18®Uc{* JU'A,SHrtc>2g>Bׁlk9c3eyh]8]@ retZ*fbr~fd~D~dd><H%+t ^G 3 )>ȁ1ywBJOYlN,ZS)WŤ0CV'i)l@ۣFGb/LCC +RL%PR)f +wAFhYSAe!Q pWD$JoH [~~? |0 [ +袃b5 + +/)2kD:PI)9})ٵ͚6z$[tA&W>%go2 i?ˋekKg g g ό{AB>O4WDR/os(v[A˛/$St8!F"LIna^42Xkƴid|d7P37%ѾA3IMa +W4,ZS,Mˬl,ZTa1{G3GoT +!ϓ,sU=4?냶@ſB12B?2Q}b?^^^Qgӊsj}&2bw8 +R`Geqz8t@@HQ֧#&ㇶ{ġbܿ躠L +>8@~ VtEZc'h[7P`c9ݺd[rl3fSGfvxQ,æ`Hul[Ae3P.Ǖ ^:- օ0`.PTY=lIՔU!e PWn`yIA&W3 =+5vA=Aގni0nCh/x;ė͟z;~$~=ؗG|I>PU+y=x|^@u~^Ha>B4~pGc.څjz#/ >sԵVSJ.S\.ť>g0E9P1wɦzBtu8br*f, <_}xxhr'K*:r˂EVq[PYUPV95MѴc 9t=6 ?!`\wUq ˜7J@aE7>$Qoü.ɼ杨d֬/g7s=̎c@gЗeU~1cw,bOU+΃XK3TiǾ}lwWF9*Juޯޟ*mOh|yha\4w1BBW%`hFܹGسsP\zˌuƂce.GѱűɱP-=OϫJ5*KS++6FiNt4+j52N7uDMP Na$%ǛRT:$&l6wAW+QtTګc[Z~S7`|Y*UUU߫+O7'xL!1(H]qV}}pJ"eGH8$<V Y%hH L4tQmhBe~c}{{`k~v p)[XNb=O?8Q^)ll ]5h#v /Of )IYj {kfA+jdӰ([]A|$%6MP9QL-T GEX1_Y*7N i Y(Nuߣ -jJ;\6T>-1,ޙefI2tC%DC9eXGn{cunaezQtJ7+)55 a1oʆx;h?]mDhH%ۧBM3L@M-!%OmV MU|V[*+-= + &*We\7r@J1K&*K, $t6w]QDԂ8X`;L_eZ:GJt JDbkj5 +TśCD^:B!ՙbrj\J1P-HUn68ɏmӛAM/ƎXXMP;?--G=a]jEv$TA0+UӢ& ;ٛ1VhV_.IJ%xP'K_ r +kX1?TX2RFSNDz-.ͤ,-,9yG謅hQ\ڃHwM l9:jE 6-ĥ+JŹ"X:ĎI ,&@Y' $wib8ljHX(mLRTTs*fc̎C9D B-PmiM,+J8 xGIJYÚ!% Zu + d%eE+K fib~lNGDbdƔTsĎ\8`u]?k0`zWx)RlH,]i` +@f9c۷ +ue_:wGh8֮nIY.JUsR--^ǫWD=P֞0/YZW_G>[6"rDJ[ѫudH&C޾BpkPXUjZR[_RI`(y nri_(3\-ڼ*ƦZ’0 +!)gAm߬$*(ܒwuwo 򠞱AշN`t9j)m-շ.5z'hb׷N6Lt9}طN{Icç-I-A +Kbp &:R.e}IuGȓ-qLJD=T<<[EGH6s~>&Moyq鯢Hz!@ߛO] Q?JZڒ+lKxpcFw!:y GxG`9J~S4>G6~fO}gM`ǿ>[|>+w^FkM~Gf~gE",!}5F,xMåHBj"0#xY:~.$9t[)-T?sxx/>)T&2.˴4m'4Q5~—Ap8piQR$G^Bv0A# ݔ'9"0ﭿDD!4:{L4͎"#GVn>\PIL}gSo)3Yo>!{|+b?"0,IIY цw>LQZ\|ЏS8ex|uג){ ˾K1s'eVpSQcpBy}s=l~^'|gq^I;^@@rZCYq>4=Nj=*5UmޯR\S +&|}2gSB،,8(ZRw*lG^ٹ7@^SrETw.s^)2$Ѭ? +V$32 *dcgzZ|>V-yJ:hVYr*ZdlB)+]VRWvy9k WQl6[(AcCglZaycl"ZµheI jƾ CJ{w.CbgZ.KQKe1~Uԛ2@H3 Glf~sqJn];9D?'銬snŤ/RP3bX;uDXxRj AtQgX5 ~I5lf$[hŀ*9YŪ :t)3Y5!o|:؂aWAF0T m)eQ9hj4lMg륫$8 YkG= Re}1$| +p7 G襸a2ixВEUt-8ДpSJuNy_ޣgZϸ I9Su53 ,JAȠ$`I j9dB؃Di 1{t=q#D$KL E%e>ϱ^N܅Xb8l 0KlHo )_\~J2V3ƃe:r"Y3]-<׷3.63k;USPc;18EX^h<>ur}K}31wlrO21 -b}o~tɾj0d;|wOlDŐ0_Ҵ>V$\:/4XW(;qmg=}O?f`o!6Ť8TPQΆx"ܲ*t;:ՕbV{-gk:gy:%:@{ԣo&:Gޤ9gl7{p4M5oqNl@:+O|(@Y +1DoL;LO*eQ"T{y!FKGvg}%2z!v+  Tx鑱.$"ǗG;: q9őw62""I<#2=#;b9Һ2JO \Qn-s%|[6g V_;hrCY2!=`,<[ޔɄ?pHo1?/?u= ('`d٣>doC־M[DmFL71+Is `j26Ntnrl}N"Ӟʱ^amD O|(e| '%ɐdD083Ʊ'CR"b>fhcU':fԭBe5?p>10L,#RC b l^JbLhÕ݅1S#:.dݘM,(csHCDzBHBS4'dm <պ-[MzOI=&|s5G}&Jn)ƌbAf+"M3*2KHA$KL:c;;됂"[z'42wp7`%|7ᇺ|?#4?蟏r"Pw4a(> +t$ːpePj߲"DPvh ]3Dx`Qx5yPWJS6Ț6#Di<0n׾$^:M޺fwЎ(_83>xd$,?$|8Cq KJ9u0Iyq?NquO5F}4[#D}DrwFD* :0h+FK"5b B #:1/4rhoć* Ci#*ٴgyڣЦ tI#V:gQU&!bl'Rӳt j~ۦ|.Gnhn۠s,Ê'ZGOsv %V&:ME6X\Z brokxy4"r[ PԵfF0#j$(pт(u I5m*.OYsL)qڄSla" ֈMnH!!6Et ˾5S@ +g*04'Vܝ  mv[6Mv~/QV,pvĿw +nDWͮ-sC¥Tl@:RiXmG ܀oݐީ9  ܹN8N@8' 7[!J(cܺS.rDF%4R% trbۧJcĬá±-*n`sW\.d|e"4v-WxeLyZU[b7Z>f'䞢טqHK" l on4 6<2j٬I,iWwG|v< Sq p`=E(PGiZ^/qE?$-JӬvOyAkyB3d־v`Ӧ5=vM|%n"5Co__>QӓӴVh~'œHmէm+{v .(2uKH lyH C!6g{E_:( `.޼ü,AÞڐƼ6[$jx nHYߘ%[׊y%rr,nCtotݞ&E-!Zy8SRBkdOkM+F8;7*ҝ3_wkl;F;NG{"{e[ )4{X2W،Z.el.Xp*J0{-0'`o&b}:VqQע$o$N.|E> 'lWtk}/WU0&QW:P$]l:-M4Qhi[pY4XP_,t.H\q 锭Ɣn-Xh]a-wi6enȉH\6yOD2w Y3x+nhr`X_]^njEAu"yG72K]9l0|AGغ@hs`PBpBNM0AC'*d~SMwظ輫8? 3J'pRKiNT0 +љOpJ64F +*ך؏͞`n?=j5P xv'ϥ= [Otk_}<OIF:ӳGxTaE :5`# ?jxq!E:JШyXZ^[bXjYǟ.x/=%ƘD5;|IU ͍5V+tؐo;rr/#U 4!r.LzAys`Ny1 4%Gƙ"fNA%ּ2Iq:;țA+W>͒պ[(ZI~Wt ?UW4E ?/f6eױ+4=m=j6g^^U+Sz+QȎ ~ PZ|:C0(Q,fC'%99Py~8/ +=̻<Ѷ ~'p;U*H`k.7H.Bp#,i0T0i59o#{ ] #hJO?pI7غfN}}:[*ĈG?=LfҬ0MW@4eYfJ_<5Lmg?~T 3i]L{M+t& fQ&PNvDb,6?w7#X + pe7q-oE]ѱ.:cVy-j + +:e},-n,D +n,|]7[_)xn ߥȽn}6GZ4n0dRgD:ri \6oH]{_\oXY 6 fv,^ل3{毁,%n(ncjC 6#`B+؀xjG S}:r[.$+t- Ũ"FY)TCZlX56֨rCz=d־#]XٕG;hL%`K))OKzFtS-KE?7>-z,_%zU˫,\UG ++?`n^m1~tmU+]P+_|9jIzÌu*$FVl4"ao!-œ;TLRHGRҝz5Po]_5weu]g ]Yg] %6ہw=yo Z0?H :%\/pͳ޲kͳ{:P+1k`k1H z=evr=e`zI?!c*ic +-H;[_o_QDۮ2N NΟ͝][ ȥE@h-'C>>*Kw\^2f`ȈEkX~zV/ b7A?4{9/ s]G_}v߁vkM#c߽m| α[D,?$̼,?26?yƏsz~إ Fi,'|i[?z> yZg}/fw}X a/w>ޅA^o b_˚3vpjAd{K̵YX_N$U[ԧ5ݵ]ް݉4vo§^]݁'pw/'w/EG/IHja׋o/Naه'7;=&.uhQ7;6vX[,NM +?3pԧ쏵8ާS/uaޱݣ :G$"#v4Gڂ,=D[ #1&5R m65ۧze 2"+e&qkJ|J+&qX4qyt>ao[{h8|=퐰w W^?CnSw.0w1 +0 7?M޳~wp;CQP݋ Tp@{iP{rPݽyQܣÃ񠴏 {SQ Ua@@C(3H UЛU_hV~b.Lw9XFӤU&an($|ϴ I6dH6mA\%\Uݩzmɫ5=ܚh%T5[(D٣uN +$ApTj6O`=j뀒5]s % {iEqgݴŨ *JI%yL|'&~eퟖ:n9k;O'=b{ ZFأuHySt`-#G*v\zPs<\F?nۨ^qo}|bL&G/<\ï>[FC? +K{a/^و癐v/s͆>T8Vڗ 2}֣ p'C1⽪k&R(αȢ4Ž/OFIFll|6p5TC-rpKJ|`qs#]4. HuIgi7Q5e_l|r[B;nn-;UMy̋H$c X?rśJ Ucʊq׮/w"/J3n{|p[a 647 b>HO"`т%uj%ΌO'i{v044:aaW̉- 70j߾74S ӛmeO"1(1%/@ZӲ&{ݍ#VFXhpf3!~chcBl 1J1f}"[+$Epy,bf,gb rF R6,M0G&l!,r OXU0G@ɺ:LtFY=V#퉼:#xfkm6! _1Y͏`|OF&hfn?B̊b}Wk{5柸F?M~4 /u3T/?^УLi`T1ט"Q{#x~h*RQ' hE #^LF9u#$\U&Lt^(x'\bFCZ5ya*@Eq{)e[OmBNLy!G}HXhM.On6~QivG_a vcM5g #f SG," +¹Nomݏ8skw ?25|Ur܆XpVn= xLIח5LG MFdF/X3(x:KwN {v OEҶ=b얨 Gn\>bgUʕ.P1uo~00wMXNXzwCc ҎHMJeÖ&zHI nyxjo%,qi8+.+1{0v54-^̈ǖRylOyA(wԋhe⼻, H/zdž# ~KUw!.Q;E QyEeU<HF3bhrʉʸ &x/}.}Y1Pґe+i=|^*RꤷnQH?!ϪˇkK)Om '92fٕ`&"ҌDS^73ń/@_{JvĚyJY4;dk[A5>)-i?覆Aѕ&׌-o0؈2{5Aq2Z:Z|҈dI| 9ތIg}v39DÃlk)c4NjZ +Wa xצOz F[IkҴ4m3 jFdI0 ֌zщ>d5d`h*@dpovkCtP'qthoz.mР~2?ù{slh<\wh?֐q}0}2A}՜>5]Fw3{oZ>o۠>{{ޜ>>Ħ.?hT_?|E~r:5~?G_J<>Oic4Ll Ƕm۶m۶m۶m۶mۚo31gvĽ:+{E̕Yՙouvv09P}0=~qʟH }UlAOgpdxo!EFP +5LC$ig•'^;$¥~ 2] + ,ýe +m0i0,ϝxt,7gl%Y%Dqh@$7B$BNJqeȈK%)fþIr"ĦEhat$*ؒ4!hUr +#ݞPlF1yx$\ d9 R# ZQvheOxKjZӮ}и(e4E4IC9S*hdjSWabJ%8Gdžd}sXd:aHwQc 5yxbPx1ʪP!q!*Rbص\a[250ս qH=(B\3PFhFxFFNBxSFiK[lohwuswueUX19u)4[-Vɨ3 -}{2 Jq(d6-3:{6̸"xD:#9i.ۯ"o8 +u:n?prE_^B90}K i͞\:^(z7 +2]wQalx䤩&rn0>*D2":JH@q4Qq%zq*0Tx$};34AA8^T?;|1{M +k$!$A&ևBV%Wڪ5U\F@"0ffe"ZIoВJ[EҒݸFR)3ZFyOĆcdsFQ kJ]Kƅ)ť&!+ J2\x`;5R h3b> #e|ɞIFQ*`OmmMXp>)#ZU₄5޴&!Q݈p{_ĉF8I[Iepr[w H[p8g针ϯVZi~U٦Sٲ>0)\}JHepuxE_LGDd+w}Ʀ`թB쪂 Ƈn[:x$|)s; jeGGfMt"fXb9 )UtnD2+r v|{v3zZXa8F+)MCuwЀ {'#zEJ >#!?CeϷ)XT)+xJO1*y:hPՌ._Wzm(ߐB %l6?Ppʀ.nlXִpf0V *ao( B-Y[-.3LUpY&N`vRi%l1s`5*6CbUÈD +Y- }TҦ#DɮӪB,8clSa0G{}N`Z#F1:-Tk,I]XHҨ:FG(9#pVUqG{fV -'ĈZ)j`|]PIebY0`Yh{+<787{Ff[)i?bM+Y&]7p=ʊH +3)L:lb950#3җ֌J]@TZ)13#FAVʂpbXEbtHTBCL!С0q.8'] M.*43SWCQ93 "? B`% 6,pjJx<*@Dk2FCj,dZ:NS&PqЅ_K&늆V02rz>83um3xMj39ANO\upkbdDoA_}|8VK -е7ĺ-`"0" =`M ,1̬cN,$Oc}ޖs/yo]Lnqm e`DW&K/s3RKb$tlH.IՐ34s\I22αaN zE.—%BSO͡7zGղf=Y6h{{x_ 8Џ|\zH|1d;M2{ lȑHZO%}KF-@$`D60Y+JG-3z SkF y "ȺNQ Ef|e8RV8dfߞraLN::NX32jDQi˷eSQm7&ڤpﯮ[ phYT?MN^>U +xӠ}5Sc:NK{$kJY +N<'^C68<)n&zдV:~ +%k?c7R U L>WTaCnBV؈s[U l~ߜ٫=iHWrax [rS_P쨩2@8˕!m4"#ov/PN.XUPĶ88Ko; pDcz3,?w464S60b;NyZj'67la4,`~­_88 +nE\ +@P/S:{rKU9McB}n7*ަƦ@ +vh~8Xhiu@ g9N0)C)o<}楧6<Ȳɗ%Ɉ#4XʉLJ +pr'6ϖc{j͙s9v$lsn s7)3Sx (e7Vr[xra4COn_D]|W§L:OO} +׷.Kh{oD:u_,%}D<+(°N-ߟQÞcXm VaY i8TeۡZ2i'A.tW`pS x[0[o)KOHiI}XaEזy*lR-c݋~2IKi2%HhLN_ +rW.]Z֝M(M`Χ$z g,,]#+r? H#ML=p:#1J<oby%M>OU +N7IY-= y+L A߄ۛ)߄RosS\V;mP9|jMŦt7-4c.ݢI.݀Nw}YKsܾtDP7KΪ]gR(/ڽ+fuͭY-]FtQhhjg +ޔ&;]S<#i:-x^DyKޝOUTm蜳[%)/H8 k5k֮\RBJ/g逦[1\fIp#i[w˓sK׻+.ތ1$~M֮\cVl۶YE M\m-g2^,] UւP}/e+:R5l)sPt.vt9 *ۋ׾S흾sco·ư']{e#HUKrZlsdn4NBSBVlKôs̙NCŪWmMˆd POyUs.޲>7Pb&zl"oxD ҖT7J_~./fslQov322tQ!TK\GTrBpg"S7_Pa٩k?].#Ҋ)O VX49v☷0 Ќ ?FK&;s\'NH7&9)|#ZL`ўτx]6;~)BbOHL%R؝Vb]efʇdh, +39 `cLPm:W}ƅpz}dgOd؇?2L݀IꝙKegD+p@ގ!ohL]kDdpEdǴElRs.’:bw*=O;SqLe;01%:\DI-ܓQk '=|")xZ_inivD*,{jOJQ0_$~rp 12 +! +xaD-ʉfRtDi>zu>5 }@|ؤ< zk N%|h!=1Ɏ}x!=r1H}|!= B>!>Q?vm(Ii=C{=@]Q&?2ʿ q'* ˫5;g_^h\ &4/6 1s_ p 4wv0f&oq}J.]@QEeSr@ +%6Pkh ,H *kלmj3x4T Y"͕ us1p5LKܘV\[O[QCz/rKyF"f8[S'jW@n,;4*șFFM;[X\ȧ)v5~9&W>'['v= vH Ā@ &KԊ# v6h\beWJ= ƻBSTlOۅޓ,ꀝ`7ϿB|?,ݍ' +ѾJYoo7L=q`1)-$* NW|Ù;rPpC? G f%G"bWpɲ?(ޗy.f6vjp$)bmlHhxX͎([Zf!Vn)Su(GD5 %9%@[Is0 ʰp]0%GsU+`[n|<(r6`O> P7r bx:zC A@䂴saGx +K*=cUo>qBpmE"ąؽ"mNL5Ni\bhUCv٘h35R8`XyHְo-BWٸZ4nhkV&rYRIlJZ|/z/jJH B;b O[A1D ^[ ;ڂ1EK\ikEBݵZv?׃UzqU' SN36N-vɷoC>UnF8oAZJ柔}>5MD{oL{MfZJtm=m۔Ij)O3vo ln L +o!o +D +'q>Žez*GiRŐk#qX@'JEݬZEհae({q +\!^𗊥ƊxЦ&FyCp4e'zSWLycҩ{%ӆli;6NCy&sFẮDuЊ}=Vٵj1T" +7 >JzGvR_g5*Y.}%eX'ոYzSۂe`Hr%ٸ5تLiu|UxyCØ8Sc jb$WyI|rڳn=>Έ{z"dy}NzŪ<`+ù\@j,rbrٞ-\9#ٱnQҰrBΎ~:tw x2U6!&x>;Hޖh?Ns/(x.? 5>ϿzN((曅=#p70=o{Oh;/$*uϰ睮/E-9$8< +5PJK˸qKpKخU-|Nx}G4H!{E䛜!(!s-Qn!,|pa0Z!gǐOetWM8]A8RA8AjDڡ~ +EGr: +=uVs:FCOڤ1ˀ2FP{f@r D5 +bu@tOuV>S \| & .%%}5?P5ˡu5h~E>m#LPQ{k"Q:@r{& +D6xXV]lL(@5Bƾ5M0l-ju0P]L/ZA +ε␕Ul{r$Ǻ=J%K]Z^+ܱ=QlxZK{l~m85=\ר/Ρ=kkw4jdXz^IO{-CO{ +mlP=$/| -AYђP岰Y9R12`eHu"װ暄6gإ<xXhz +~| hXa0f +ԸO? MԂ+iČcItj+) N=wV'{j]l-5gOӕ4*f#Cw r`kz+#̆̾$2;$*)KNI1&Im=L4jmad?R:+i}üZ!Prty%R3J%zu|2f~!W:.>bp 9_k)޳C.+xjsT#1pOmF ʎjKcj0dfNb(Nq\XHWKoe/}.m*mΘۥKlKOCf'{ sx?'|^Ǯքn [J\ ~Ԭà'a=nTnY˺Ǜ ?6`ed-RWJžQ]ׅ~A 1 BWN2␫U!Ea(R*Ҡ% QUCnYu8;TFa,-4%-^>-x}#G<q9# \j=ũIX0￸dNr/>~hܪ'+ j3)lB.KYW ud/!3dՑ=+/#k-rmrzOVe˴^<`-t^qw0^[jzv`6Tv'y +なͅ]޳Y sZm?*(%UY3h}b)ƩrϳçtcwR[R;}u߅z-a+NgzMm#'ٳ9}n8A.kGɣB]> JA ɓgPO&$ OU +-i9S@+!s'`ۏJCS-֡cH@Zl\cigMQ'):ttm3m<usUSݩ>mMu'1h:B=O@q]uqE'FXK܄ydf!M{z8~D&!~zGzls4 {< r2{" ش~4^D~ml:4lۅ JH2c,2U63xA{n4*ˋ&c$h`-W$Z,uBWTs+SQMu0\-6rX}K ۚ:C-6bD͢5\JX%0~B0p#ׂ}%©9X Нx|Ix؅]b@'Iq07US+ @0 MԝhdlcK<xqC RJBcή ތ8#Ҽ roڳ&ޔSyeB7LEumWm1A{p3`/ZƩ̎f2 ROl$ջ ̪w)dUoF/3Պ1+_94 Z.hw6/ Rao}$qVzA/k0b|00YUşI?{o,h/HZI>NӉ~ {sm-PbG>ry#s[&hwR\ ^rz DytG<-%3Ah4 \ !6 ͖ZdU4ά`sPCIBZȻ[6-UBz69OeZ^]!eZ6oU+rbWgX6Ao]c]Am Ԭ6b6[Uo8]\yJl,Z֩42zn,Zڥrޖo[{]vZr%Z4W6s^VpO,>`mdJx&sao0TsZF(oFl!4oB{-S?CQuqsa sDohCߋo:2'm/3C]l)d=r$@—xHa3{_ =w$.SB-sBV+cqk:;Z$LOkeZI]bU$WѮ9^L]RWf;ʷV&˵san/غEK~r͠2JiN4 \ܠDṼWƈ.[8+0SdqFF2w5#)Z3SՖW}WցXYցY4Z4+#&.[p\ð\\0]p.\]yM5 -6ij +|"O˄iꩠZjO#u#vq+p2K>s'巆,///gGWWWWsSlяf U) Pt @q@> +W}0Ƣ<2ż"3bE=׍}Y3:EbE9XrIM}&M3yCU@*Ove%:9R1M!oH:iH* +zɜf}-W%(=L:te]*}1戍|3OJ8%+-)5B^b`]Z!e)), mY.ĵRz#hho.iV6jYθ9@Cr׾-}7a1bmW]x?ϽpRcJe +IZ&V1Ҥf(7BՃSQᳱZfeh܈f+iՅ& ykʀ,#7וq7mEz3PKrN =/Zٞ$q[0)ë/+vB7%:s_2oW'A4MڗAΧ {.:AC]S3ZV"`k"zeULYZG:f Y3zQZFav )؝32k{vj/͛BG [e{*zz_< [l{tz +wj{mM+k{{M+#,#T|q`P.8=2SXb:dQiӱ^CzqC7,-{P h9Ki&i_ETY?!r(| g̀РG, +}_mNEmx +?[p kh{hI۔˕,7KNumS&gQpg!w!v\ >\;pVοR6& %~(88}^ĭg7Мa8 }y5TR?*KUdDaz: R!$o59 +mCu+35;1ˁtQt>ukZd?;`,?(՞z?˾O]w 4h]qA5Qo!ֵqQK#|Yk[#-FW7<sF(D&#d71!0,Nt:чQ +=cٟQncӚQdDQ9 &(=6 Q1>{o#tuZO,_upB"taq,?wA<(c ?RJn{ݱ 19zn<"XAa#1H.,AYLGF0ugC]12u 0̴&!ڣfU>(\:C, 80mMm1Xe鿓X?ۣ_XnGat 'uG2?NAp|lܪM+;6oFXi:m[=4SKF-@_7 9ى/VMvrގX'$[%2hq c?5;MyAVﶍFm4)iR7KJ +Y-M7>+#ζҐ/̂*Fm*-.{D>tfM=}S=>lwzuG*ݠG.KewG:`qwC0GB̼SF?1sGPͳy?+{IvG`!D[ùlwBGpͳ^xCx'G9[Y4xj X@6L6MF5/4O#V7 +R:M3[[tH@M5FY(Ҷ4GH?~hfL?~؎jV$FbƚĸR1FAѥ @x7?J>qs@кʾ|lLzRU!8dώ|C͙_%S hIZ!hwb05gšʫ(>7(` qS03,NS +pHFY 3ꢍC ¹|ݳ1Zݳ~9{^Z3;6knϙ,}8{rQd{z9VYsN0 -Xiϫ +)h.![+H+L3A853:iNQl< U:Zިk .)ŹRٺ /̔S|bFuOf^@hPk5O2cє (z4k3"z|%:q +vy}ʚnKp&Nfd9ljUQN{مE:g Ͼ FcٶÛbY7Φ ,>mOܵX08f}4h&~v rm_U}s ڏK7o&DN{hk`stQG(c%ZT µ_V"i_Uʔ=N[$aa'w%V%ၱv?wyr*K]:϶,|KHsuYųp +>0qTHn o$+CLTkZ>&3Xҫƨ^l⭑mW3fie8IoQՖ7Ho,\r݋6>n(9rpCnv;i,顏2aلI=$0z孜[ Y֣.v+* "=p +`5)`3m&ZT~hxV"HɭWΥUUk[?קGt*00=j*8S8>G +%zq&{C, 4&:3#{R)hCHz~{n3?d5TOA; I;( -}FM \z[@ +t} X@WF tS~.ݶqM VǨ) !iHPۡި>V+w 7о,CV6,!Ƶ>YRC?Tu w}҃cK+Hؽh}=yw6[0a'cQ{t}{onZaw=e{+Vw{*0罍wgڀ>){8ٷ@߼*B{,w*A^ǽL7IJ栟;T@ +8izw +Hc`©Rq#m?b2_ %cI9z; *3񴦆򪹱Tv[*.z@S6(efP( +* P,_W"ubL&gU9s.Ss#/g_c+ Loe)K'{ԙ*;ՍUmy--Ijr +˃dR*ðbgު|QIY! O#hTPO<ɪ +r!_HƂ DW8cLxZu$ҔK yQ)8n$s=yC +NQg+JMBG¥yP JEs +L2zm)m viE&{gpl9#Y^_5-sk'}U)/cWI-"s[ce*Df%ՙ=ǨRa ֚^Uք9 + Ea,=ה9%4 5 i%=bV;ۚp5泴6e)&QElTAq(R!fK%!e6Jm!wM SQN+vZBcժQqH55#|P; mS MڋbMO!e~'' hHLA%S#e"I ,.l@F {;ND !c.3f7x5LEG*7 B?eƥc@G'tE}G,ݎe5cNCfםro- .JC H>&e_!'}j/'}sӚFn8NVa>!p,<`kvO-csBsUG/,!b[Wae6NeV('!΄^/9Bİ$}X?[Ϊqj( +33S(^[/]ey^k.ܔEE{r)*Kbs4c' *SPf1ȬM9rM҇O]4zҽB\[9\JUsDX&dArYsԭh^#59 +9&CweFɇg [I)M B-?9ދК!:7(u,WCPaSvʓ)5!Ź=bF +2 m9EB b lݱd%@dk! pꥳ/өĆz0C`1]{tE%65u;zܔs<}q<B՚S)̇-:a 3Maě(){Wz6B'=ݩO')eMy)*;k,>-Ux;Mnlc9HΌ37׼4F&Or݄QP~n6;5c,/;X֭De)l!<3 )q{:I[>Y|%EĝRʅV ){щqR#; ρ #3cwso=肦[u6bx"DS\UiHV+U<uy_#z4Y\?!smߤ D(rtF(rE(򫕷]Ґ;E7/y(^.P÷;4PMws*E҅>BnZ8 ?c :: <٦([¼v% tKEەA; +"DL 4up.;2g7ρ:;r==Ar=֯4 oYEXƬ.RVH baLB!jV!C)BrJ1JGN|r֬o|J6~͸ik 'e R,h2+KxOj#F4>Uhۍo[?usNċkx@1db[xhJʛ,9%ܡGԆXK +xڏ4NAZ Fw';SqcJ07#rsv +t[KnS.z/q;D_-S:6*vuf(W;(&Ϳ.GsݴE173/.0.eXP=RR Y/=36<W{$FdȗfMȗ`"`7E8UCl$pu+7!کQ-Yt[f]m}ʼ$레be}3PL"zQf.J{N.5&i/GՂW6ï6-EEs0} ް~V["AJ&uf}Lz׻;QoRqyree9i99Pvxi7?\oT _FM-q00K\Da*(L9\)nFǮ8;RrJ02<;gۙ-9i[>㗮<ңlb2qEVQ(!#F"=Jǭ9)sf e &,e\("I5dz%P%wF 35ԭe"v$5Twٷ?>ec/^5Wv+t +P0G|m6[[;yU_&oQ;{ ]}/|QUQb-ۮc-Fk]%f +&Qc %odG~: +1CcdGט;Le>~j&X\֔,eN' XpDrXeN/eN+l@[som"9*MCCOXs9>p?"c#(僮 jZa=3~{GOIkIPTF-A5XXdyZ`vx0a·|8yݷbKo8:ġxX[ni>8  #'c1xvE݃<Dԍ3{Mugrşe5%pҸq=ZxFM=x~- 뭌ی-x]޽kZI feIaDgX>GL G]}%zfv E'XF!;"W3;;eo:}TRf!SױLp'ɠvf[DZ2,o?x _0 ~JF;nFSIEFfWG T %v#wDh ;Z_|g_~jg~N;E.Xz;!E4j2v!DmFxը_*İ/۷EINQ 7l'cΡ7,2)U?Rr*q-{bE5Enߠ"}FeEiyӅ fI-l!F"Gl!AAK @Ev!Fy!Frwbw!Fz 7Q޾>>~ݡ}}}!ɽ!Ɂj^s##́F% Gxsԫvc ~[=>x<?"ǑvJHD` + 駐@ϒ] ˰NK)" ]a^8z 5x" E⎉Fpx -?4R5℆0)|Bq`Xdž à ؇e+8.8FI< +"$CےG`lZFN*oplS@UyaIK Gb%S@:^2ᚲXA\.Kw}Fy-\ͅ4wέ13rs}^BL +УELZ#]Z#e2&Oj|暚]%M{W.n{退Ϊl +2: +WsyI1sP݅B L9i 2{V@2@.5dѮ cТ!ZN;{?D땜"uaHjI;w汷8u۠H$tǦAÎBUᙪ=)25dcs͠ irz AM KM]4+Z+IBhhL ܫfRRGeaϼVk0?۳a}$jH;,Zf 㱫jCU"#3>9nѐ|~EM? ԆL֝rPnL`8{: 8Yv Rl݅R} nfќ\a-ck'n)U. G#$}mԽFPx{[H1{uPDH5ѱ%R-BٔCZu +ZTٱ T^T^IɡӠ1ET#&.ԱcwH6>$al1#c6]ٔ #׉#mꯪ.W G6M$#lGZ/7r#C/^J oiRBoQIJ:L1SQn;QI.M2f0 a$a^+?iN` \]hDoVtUގVމZ=qVd#:.9+\D{㚽H+OVڶ#W58~3.FUhowFDj)0\R Fk=puq]?gQ/Ogy5ym5y?Vm\m~A޹-FL).kA +*5=ƙ ے|{ +*]u(}Uċ Az0R:_+/n1.f quܔ_#ͪSM +jHngNULW g/V E/Řs({@4jG/<1@ޏk-EviZ +{tݵO}Q̲U d 8nr:ήt; QAq/pSL˘SI,\M dC : p ֗+KA4m8^Fw5g~&U[t>6ʬ/h_Y^Gl@‚J>d)IM[\"gY۳]oKt`rj ]29(FdrdtIJKYncz(e$ 4YVLO{"0vӏoddj[k".r*GZrW {L؃@eӜ|xݒH E휷're-'}>_7) +c/xW(`y[ڧR=f ye!R{2Tb^-׼,kIb;Jcrh =mVa}aKRҊy)O)RU4e)`< @ +MpK 7@u&Gf3@l66oL+'!-*oŔ!J>&L]oYJ#YEVIw ++&S;{/B[d ŅEbWz*Ñ#od=;Yf,-$<-EϧK7o&e QM9[0(جbw;$w [J_Pwc2f*K37@WI]=-tE4;KvB*H@a:3V7utn+Ľ׮2Z;:#j߶/ʪOy/7ܯ:5ǿ俻"r^/Q#jt74dZw9j$AVa,gٶj*'ŋ74ۃ-aNi;?O) Y)A31ID+uD1CCP3_F..f.aC0Gwŝjݒ(D9lR iBl#h^(I^`enŻ4Ā4H6HI\߫GS87H: *);2sl_R& RŅѝ΍usUEUD1Ɖ8nd;3Q!(y-H!> +o` xʑ䔼履;&I(g^<{ƪeGf., ˈA˸Sao~ǧ`xY7j1rHØ̽Ɵ=޳o1ܠ{!n{Jߑ_#8@G6iTTyo{>F8dr,xp g] sli 3GALfJ#ގYR3@Gcz0Fi4隫+"Cɋ}ά6DWAKB# x c4L'K;ƙå\\CJ:dC@BYye2Dx3JD#D{cX C#dcu& L=+%0#(ё4)Snb4q(B+*~u4R#3ޜ\P4 HSR< y%2Cw"޺Q_NGhsDtLf4rL,1|# +XK@'Q6:?yLXԡIJK+ 侍ʝhjt"tFu6*0cQkղjz34OTjin Ø mᝐ0-LpJ#d:= +z@K)UؕIE4G=řG-D5ǏZb _L։\tCj/aLJJZosrGYo]k=;5q?ů9 ,:ZӀ)PʆĊ+*i!9 xV@;BN\oaSZY~r[wO]2װA<|)wQ'V.IF.S~LGzTF>GU}Sҩ>6B|oW!IдVѮM,7nT(I<؂ozt0,NA[yΣpl.Y^vTW1P N}}h6H C:A^=N?g=[Zv2Iݣ; ,B)vO|u<}KZ@&BmRQ/A*x۴ۨZ-Ӓhbím +DBuyl7ZUj˓I;am;IXtLZ]ê Eڛm17NMwvdt}4kZF2 el@mIC;u1&Z k@~9+`Dةu7qr'tvrXPy{W +& ZEf +^3PNv@7+6J9_ӎː:[9qҙƋv0.!ɢZD/wUl)Z$,@c)f_dU$Rr9 S ܼFT HGA6`~YT1TCÍљjډn+#K(U0=@JN"6<&W:|:3AD u>o'g9LU^ *8.ɓ!UP2 4$z  XgȖѶLB/gX2( d"&$GIkW=dLR8xܑ `Vs*![qaآk36)+5-}"k^bsF˫ԙF}xMT5'?!cO'@va6=!TI ^L5h#c6>,j$Q'BD%aTYAP\+#=/+X1$&Xf7EW%^ #&egOWeCze_U yKVIi#Z)dTdZZ6'#Al- Go 5!5_:JBͿ_ AJ@R|5jZ(YEZE{IW.F̾}F2Ȩ(2l d ++.zYl*@:5ÎĦ.Z VO53`/:*gd7 gGqVj6mn_YE!9 ewtDGcMl.Yy)P,wUKSJ)uTul*م"-o2$ -=!wFne\*ksm)ŷ9%:ys6%xGC/=ƣR)h+|JܴM!B <;.\'׈vi=$CC$'3CX - wBEy4u jy޼]|fNv;|X)TNo6'p:%*{P]dcNHE<|YMr?MqOq_i~Oh!K.VE+O9Xx1c_*FO>r{ ;cwEI =.i_l O{C|q11~7ArS` a qxfp!aEB 7'F艺1q@ޞxt@na@BtyGzwr!zg}`wu{:Nw-, o7K&4TGĦfْ͔FU Nj7Ŀ { >_E}uIl]HZIE̒>e;vۋȚ71 tX?]BR{M%*I>Z4$pLM_DQ += 0V +j?9}s Εf̬EEe1QǢ)G059Z8I.ƯhY)5SU69VKNԗ0`8j/C@W>,]<3l]{Bx$(_ 2,rR eUMUwl1kO1g Nsq̑C-0hhx#ax#DNyŸD׫\Lx߇PBěOAIyEhkzF|b:〃])3 2*O0i!ݗ^QrTWxʢ6X6xXV7 Ƴ~=P0YBO;B5%Zrl]Sz+B5Q۝2tBGHLQ5C+i^[.I*=Y|B=MBFRns +$ 6qޭYfQaEw:H=:ʧ.x|[fu-yb@.agU%&YQ'۽Nq( 7Q,u7@9<M1=由yMq}5*KtVJ` c9-OµMf  ϔJc e߭B 73V13|`ӹN{Gxi{yܻ;1EfŁ@x`R6qmSV:ǨLE0. 1 IaHi$l(Df ]UO aC_vX78(P®cA5 T iW@&2sڜFFCc@~B<[JEVS ::(Ψ.*YIoL~ =`ZDY}\qD=Ψ:pXHb`ƄA21򃮒9c-Ѿ68kcH05NࡁF2DviN +[9kNRE^mtBDxGP+0}>=]W9ge @eЈm"wd|DT{|SaXMnv~l!){lTeԭALhʄ$J/NA^iHQI]9`JS + OcAdY%Zat@Cy=5r"UhI(u;b\,N˔+ +3bRZ:lJ^GQ`E0|FDF$oF'C ? t:[] nnmuw#Ӡzz)붽s@#|Zr 1GRTapxöIEx)G';ʊL86؇ɤxJpr^D8w >߳;},nOI -]Oc/ +v5>vݾp470}>_8=I67rP=B]?7<~vޕ<=<SsPt %>;0 kAe2~٭4/ U"`srF /88#v} K|7KM4&!Z ꑰtáF" ^aɂ̀O7y?u,F2w4f?}eV$f #v?´x6BJ+S+>7.L:xW `NC&b: 89IOG"ʉ9|xX!*FfzɤDH,$_QЙH낆Ny8O˹C#K%cyyߒ?v\!ֽ2qYq;kIڦi>c^z&_hmRbZ99,vN:{&)qb%ƛ*.!&<޲ɇSi? +Ś+*,5?)0ֿ +Bnߦkޤk}Οm6Și;# ϔ:9*5b粻-Xa jݵd" ՙtʷ^7gnS9`V8ÄW.y?I85vU=fD_Hp = xd.#7+f.}?@b+`7]A >r4Fe.2=\)F6D0 oEk;&v -d,Mݓy15F:?(w$tlQQZneB1KA:q-CPGj`Y8G9ʥ3NpS +ՁΰuA +]}Q{s0dҌ}Y骍*tUd\h\C}$5MLuw9BS& S|z#}hؒmi߂͎6;0X`rmgF?H 킻/h% 4DQmP™ځrd9nèS{kO4A! . F(V,J4JIe%Q.c3+B5Ahjl3̂rx ρ˩S]Jol70\NJ|vL|]zz\ +̨0񤩣v&Y@ ic;Im6Libsbfvmrv঎Ea΃lwHGx"`}m/Xљt +)BCOs 6o|M6 +HRԌ{o1dwr,Kn0kҜN!}I0;wEq_setue۸75gQFKcKO|AT{8R?[YܘnUXs)?5J?8KP-Ҟ23 C̔鼀=_Wm5_,21SAaEX[bl hh>s (D ;( 6MQjN@r; :@jguGBDZRoK1MP>y U6mz*gj${Z6t-ahv +CV;UWL=] v%Y'/N7 ~Rsպ/pi&51110-hr<6T=WhjfI/{~ov-ܱ-Lf+i\톢ʲ8c1jEڼ)B}ߞs ke3(=dA}w6|w7rlRVuSa`%etHYvkhۣN(uxf p@Va(:6Y5Yvӥ:jk`oij[ɩnlBvE|FlDɁ?T6yu8k\Yq`F=͂us֚ >)9 kԭ/!tn(4H3cbX ƒO^I;0jy?4!(?'D&,KC2#h3]vYoրqweOe뗊}bk;jG^`ڎ+*p> q'Ӄ?"Ӄ?Ak~ТЋ3'm9 i;@Wޛz놷z't?n{' ' WyǁB(=vzFj ~`??'7";@7hWygEG5-:C*B%%r̮)q88(#ܵ+ U5[ +uay/_)vlY'>oқ rŞ~efشnj'gwka1sɹ;3z:S";eLf!!xǹv~8s_)^r;ګӸ~luΙt^ϟhГ{-)ˎkR 7^)Tv#Y m)SB! 'šg8k>q%,CױoCkkM*.0c_W|N$HAJVbJ;5 n7ȑNܘI- ƬKB® 83wiK~gwP'`K3<;zZm֖߉ܽ^zPQv+7M9SGk2C/2Qjd"?(sSr8UG}mo{#ǃ~KcZ;m蘽g'}j`I~1^6\#]<Su2$ή*j ~#q˅Gl`ͅ;|yA ovF+|ZTH_+| GM7F'gXO`ڮTް3g:`m9'Y^W9)l.S$n+2r~W}9T8+]hWn^/Stܷ2l2WA+WBSo\ܕxuܵN%]~R_d͓J8E?%KvM2|Kθ"7޼;D_+;dM;VkA`Y+OniE歼KE7 A;(jѕ:jJ#t%#[0٭򣣪u2\oYXP-bm@0 M5U:#IOI7u IESNLjuk?QF5jfj qTb +0w aMxID,k xnЃJS6m=|Lx_@LB>[,SMv Йڤ:P~zPdE8BS;bŨ7|^NڮBV y0Weݦ5f׹ɕ|T*rk`]6[qiY3[fRFWzrY9u.JSR[)a[j S=Ui ѯhJx'' ~!{PQ_: y'&1FNa5U#ٶm.\ +;7LJ ʬd~%+E68ewlQ6PI%XW _{g 5x6?wv ut?tE4|o2oЦ+h)Qٜ\ NPy'Mm"kckDmM߂&[{3PW'oݳFAGX5((yx( ? Ų:5)+x+8{j++ɠ=)tZ6]֊ JԀGY!%K`qЧ7%F [sa>x&; +x +qC*/ Ӫ515ߠ*= +Lݥz?>6/ph iܯ/py/J{:忡c_z:+PsKx2T9aYu+Yö۽Gr9QtQUQ\2it%^Cbe|rmrqQ/:q3^4;cK^D7)2qW9綼I|=eEBeU+u`ϡ]Ly6?n@-`Oa`(IBy^uF +V\8W9ÎNA̅1AT ;vB{S}[(OS #_ *.@MڰllB1s*ABWTR?T[H0%y1Ԓg_+e)T=8`%k1!b^41aIvGl tD2rt/:u`ߧLyȶ܈2:RߩKĬr)9\;]}WDީNޡ2}k =6k2ٴkmMB&3G+N@ +<܈qQøX] SNN<'j)!S"` :(nj &t0dw/D y)A5֑O_õ +A$kНn0>Ģ2M]Z⣺K.'@48v@}$Яjڪh&yqjnMNf,*BfsC/+u=(VvGS ]k[~==#uМv{J~\VVc+GRy+KlaWZr+`Lêb+L]**J-ʦFEk @X֬\jkC)zp}tF=7]Șm N7'_V4 Ǔ:sv$:Y2m%,ӞWVy(Ďk&@LE>#dd~"s}de} M8$YpeDI!V{:ڣ3v0 y- |T͈!m߁'Pn@(;}MB~kNBN+-)J.c՚oVnDw+d-\}7L'&`QuÂJF܀QV C L)/U ~ܪt(^^0} YL%1C5/K 00@Z6>п^X{9Q1Rx| %6 GGݱm4o]ɮ6Gsz&6(E⓴;VSj.z~2ј +Yw'g[fM5_#hkv[oPkm™}cƎF4ϾX:Ь$9Y嵁۵"m֩lzZzoT1O1 f̹?#L `[Pu4#󡼎PF{7D opfK|84f7ږ=kzV-InNLX%UV=I8Ӟ9A yM#X܁ A޲4:,騍t^.ǖplg(Y+)\ZyZBz{'W:CԼa*> ~/i>lkgt_*kM)k?1Yqy'N\$NAqQPPP/jszT[FzGӯv$I'gM8n|ZGK^^Swi4S6ԤbQuk{%sǝ!ldⓗcǑUǓ}bcmJ^c-_G^XjZoi^^G҉7VC,&onv6XӉY4ʆ÷ҏ?#G%_EietUrr)iy]9RūȹqܙQ.45sb{©Ft9s4-P yTyj:SZbN + +g;Ns%q/ٴCQ +ADSco9|⎕uK>AE&b '5]EEtGe# DB(mlK(QSqB?sd{tl@,Ĭ( +ⲣvZ^ׅGjNeJA-{($#YMI7 2I$f1,iQGc6 0]‰ %pb&&|?=^xi1C R>eQΫd"M걈dd"MʱdS$i ?U$Ui$&hj-Iφ$#j#*NDE +$2/I+&HdF2jZ\}+d)LmXA NBf%i%ګwsiX[[t9+Y$ڳv@P2ؤ)$t&Kɴؙa(aZņBu%g0h4l(c aQsL,R#0Z4˛2PZxi)!b55V( +8<8D9!lbXhՑ gn=޷=XtĔ,=T8IW0,!$lE;i9\j.AK,!g-EQ8K,jWhEPUm:J6)laV&E|T5HVA bLuq+"lB7qHΧ'+Kˣ7o'͗3`h:8ը |K)))X '53.`'-Uڋݒxة$X/$$T]EJhCLJ\+gP+/ȅ\DA-ibKb#4zXO_X浌k5Qlq+%(]O+KP"'3*Rʉ]I +cET ƌw֗E\2.c b FUu;7i'S5ˑcBkbYo^4:6.rqD $agb7"y+7&.q~Qf9MtZM_ WE,.2AY0ٶcǼ"1}9:K^-d2|>=vxGt! ^yq,.ʩ?ʅ\q1Leob&RjJU5c + b^ռg~A Dӓ sH:Fw"k6<^ڇ Ǻh +mW񨺞 mǴkp@;"ur u_|t%]4YIN; yp#y|Ag'?ħhog|Kg`Ic;kWkkSmڤ9TtM4Nh9 +?W(B-F&pSaQgMU\ nTJʑ'uAhHT-?@j1#_,=~.QBoI=;zugIX|*3D "u;Hud 2Bu6S]/U8Wڐdq"–-GEÀ1Y6 %fma$MpVbVއK؜'O## +.e%u>dSedGZ1L`0-I'|/a(T\Ϲn۫NO;f+ؑqSs&Af"VQ*Jqe%Vs +<˰%p˓N:Tpyr$أLQ<%\B /ਘ/ď%9W]44N<cТkV]5f{->\5J +$KuSX wӾ!LIp +g;S#+mq>K=L:oXvأL 8 "p uYHcl"H%!-HvA9N2jγW[ P*R@E$JYճ< /l\ o/^8o=1|p`BV&-|p7KC\}J@N F"KSOd x⍉Vۃ@dQm-ҫ<i~"A|S6.Csb OUt2{uCu1#w ek3QKWa/1/$Nܷ>`_[{&-xGzT #qF$qR3Ov?geJAiZZ-BZԭ>Vs}"V OfRdŚ?gԎe>!&%pEpxY>4`z$|0!k`EqyCc0zȯuWC60}S|CohHO#0r% ̂ CoA[0&z\ƴq~쐱ƅY)(A4^Pzq{? s ثEuK~{HO,xtu)5JXh|PkHҩ!ཀྵnBOZ}KBlKsk;vD Ka"noOC,m)@oK +D:<$zZn|îɀ1M'. 8~Tp$Gh7VYՖI_(BmJ+rEHGk:\-d E8C*m K:<]9=r=sӲ6N- ۷s /sJHjڀV*ߛ݈.y#%9&T`Jqʛf?#;Бl` `@A[7y|] #H"-M;Mqy JfRxo Lޙ-pҭ2F}7 +McsSsEgfK~)i՛\F$5ܖY_3~S󚶲ѪJ͟խ% GK Fj]+ `&&)nj[t ;2*P7~ v^Y]L(bwMy}n@(J Ɣ5d L cK= Z(UD?;Y)e@cF!᫛ [%|sp+$NR)LoXGͤkEˣe<84~@z4gjG z퀲C2Qk0#KQzԼ1wPoY93{[1jz#SFi INj}懨հMSRuF]Vnv{ݱݹwܞ`G](Gg7`C#9iwh_Txzo 0w5H`|䴨yL5yz"ݦ5HBִp+#k-7>ް{˘E{K(~c/ zQWʾ~yWI?i ƘxLV301Θ~nu YzfoM$G6S^^Mzӯ㋼e }ӟ^Zag<Ӎ<~?}glOT'W`Sm'fC=]ԏ 1Ͻ=MDȚR$lCd?$qlКfYfsY4oGc6Olcf^ήNօ(ܺr>VGz֑|IMͧj'MU5 K<:PSlR}^VK}2Ƭ@0|+WcC+? +ZW"`^';&{C>\cG) ({RtA>@"cdc<l >8<ڴs\5HsxcmR +)mB#d&t$IFIď0рW\ +XgB>wZ1,T'2鷡΍ +&_!/7WtV.Ȍ_ 埂׼Ӿ) i|y :[6H +Sq>yR_)*MʂG %%G"& +:g*{" +YlC|<8%*mfϐڃ4=l9V@۵مG K>M+|얮|%N0wWv햷`vF2G48y7Hy([-&.6"%!D#euf~Ikvӏ0\7[k?@"'Ku4ru/y( faeL{4`-Qww eӫPc/Cϸ9p6wF@rŋJmPeMC"e;M㝏M(E7ʍfOCwQnq4UeG秋v4<GUp(7|emynD o}&Hh#/:۔}wEsFD:(Ղ.E(ejNn v[|5EfEb*[2h^PR+u:ڂhxS+U<#Փm[D;G{Vu EeUqf~ PY,l6K1qǼJpN'6??feX7Oq;'GҨx8)ϭZJ_Rt|8j=6~{etLtM/K\o7v_}^4|+6;)ٶ/yx6F?ut~l7'og?uh'Aw7θyB(_q(ߣ8价S(na;Ƣ\߹u(AwT55'A)F-|RC"E-XQIuv瞳yw!lщ:0j9O6O/HXo]ޅ}Mgxp16 +n}ᆞ= F_\(#ݴa\ ^OoJ3f{ia>7XsM_ ބӯHa}O g`?XuWvN~ng +koD>k7qM]_אx$іLV/ eJ{tm}zv5(oV3ȵou1&̦k7y;>_o^L#_Lhѻ]_7coaݓ7,ީw^# .E.ѥgGZ=_j{R28!foF=1WYߢӻ覆_[=_^̉vԍMdͷ֍n-DɚuCfڷX΃mg^7/b4_\o^y#3{w~oğ$o/_HK⻲_Q6ocC{)wz/*BqP"iC2s,$] nD +'OAInRQI/P}]JEO#Y3-^0p9k k0o*d9]aloa6Q(F95Pf E8]'')XFE#ةZzvc4%ʭc}k uZ&NY#ĉ4eNI]o~| N%Q=Wa [AIpT %/N{ZjV-.--ɇXb:V9rr5 Uցè@C=XUwDKRe,,ͪ|[55& P*Я u9 EC>. ID7%LjSF,NFJKrZ>J× 7? Q 7'7|;Ueźd$sᱲ̅m-zRA=0Q VRDU]'ğ&5ߙb 0`b=~tĄ$`^OlFi nFqQmF}Qf1\O.0c;YBgfK.6į6eV˷a_iFdQ.Otr=pyo~oK664˸"Ky'c]uA_>UVtATc,S\$ޤSbVCɀb73B;3sT1A|dӣyfENQ1rKt& 5ՙC.,xYKvkI55 a^d1Bm^Tbhik ٣Sa;'4BQ>2QR*tWEGVQӨXp "xҤ/#}8qJg!AB^5sXE橀Vy:Qխt!`:B,%az:&}3sI͞t| +T<2Q\t3}N<5F䏭JshFwH5_z$T[;oĪ͐7D/ Ĭ wTQѽػ3 Hq^x zfr=]4BkOpnABS],۾t)joY?w,F~\g|ғ %H'g S:gsF}Z\Aߠ*exBוmm +IN>">X_漃;Rc5b2a^YHgZoB#$)|֢^zDu<ə <\e_mٰ/L(Nńa\ z y'lMzm*kxC}Dk?&-&NiV6. 7?;GRb=ߏso8.}ӻܳ.w'.'2+жG9ִǒm7{vmNå[XFr/5+L& g9<3 #RMvTg5/K#c~qܶlZ .QdDbnV`NF-3+:TQ;a$ήy4l(2 mv DjZe( 9H@jvTwohB#r.?9ju.(gK>⹋qtl2=}9Qr +<H/GjI 4q#ۿ[M%IxKW NtEJQ66M%9 ->P_!rzn3(R14Ox[h.9ӷox@t zczZJťFl#7%-M>ܶSzB_QƥH[ +Ŵxmzo/_owF߿k&Azw9Y?![ՙ3wP'm*+-VNF6-.FDg1+մZ\SJZ|Z;8s[k2.0ģ%'T+/0M"X/c3j%r;,g(ihf.&hK9F{hjAU5'ʯqͭv="`د PӐgИK k&@cz%.M\`&ֵ7E@"𿅴L3)_dM%mAHmȡkFi{[B"j]4W3e4R s7/ >܆"e٬gY LD$Z:1),x`ED2`~3!ڂ)H0rRF!%{S4MStRDԇq;U4svf=cP4tC)]G,}nCZ5PWUYh DC\Q Q2kYMŚ_#QDW ѫi0MZ%[f9Ymvf|yF>;{UV&x-jBPua$lhY-u[Ym_gמ,+!bMU^ȰA`MRŲ0dK)EbkT^zƓϙL7jk'ǙYU`8S1TL"hl6mּAi'*ce&%9qMgeVFJV8}L veB^Pi{RlMJhXE% 7֘3Y^Qv +bJ1*T +7܅rng266z!$>&|71"q0o}|=,Sk͠, SQM>p=%&m! S Sq_^}߈!/ ɸ+3fXi0&1y.%UmfZvT?eHFLW=KF$* NLw:WvJf|"㶦R1^`?R;ܳ,쭥WfҲ@OÏ'鑞Rg|Wf/^msX +' OJKJRg  +1S⣆J@v#4T!cQ2Bސԣ0iCa@)$_$׮Q/](8PeÿX@s(܂f_|ij<(nGSpjQ: &%#Gja zHt ca*#.p{+0-5%B5ǐc"- JBdO""-hI+ݞ[=/%ilAb6- '8wlZ>#:`URN +Bm}32%[\'DC) m5F?qj sjwŽokw=+o ^BՇGq,"Emu/ +M\Kor@K/ӾѰUPP}p G~t`G~x~|~  Y CO,Wt'!0&vexbLK0آ=A*ETTL#EQP|X[Ur 1"f(Cg/]ԙȴa*i_úЦu ɐ,rUpC[rQ%upm{QUQP(=F 9UIJ)#>hVs~ckec+kg۴Xt]@3DmM%BA)RJBQUzB(YH +rq8rDJM&="ژ9Fi! Fd%DzSL^o Eo3VLr CsH+7TBJJvaQS֎6 9$)(g7dlf{*~2괩 GlRwd9Gg.Sl^FyL1Ǹ WG>eE((%]s0˹w}{ D_WRS[>A6ʚP. +E}C x8(qkK䔧WJv)s⇍neđfvH@#"e#l#ڤIG~^;%q\thDޔZ_|<iw@uc|- +VU>j|,XtON$ T,r{"?3Ƕ$eƒ4Ef'/S>lWw&;9:E4Ae%| ء!$Y3ɲά4܁`}-eWYO;x&s_i5 "ƯUu ?:#cm2i}ԧޤ NI-HE",.r+| LȺT3@2dKQj&:nh|UuxyDPꥆo dw-?$)|Wk+!iZ^);RwY|QO6aV{*oޘ>ŽHMc$lYFtdKG/+BX)̂n/R)R^ϑìf^P7ˊeGPJm);m#Y3 KW3nw ;҆y qC=MpRp#?gzA ?|w#Q<.:_zQȡ|f|[k WV (P.0n,KFZzh$LzմU\m3<-m 1w\ò=Othn}3w!T -)R0NM ;SN)|K^(^8AT` |JbtMKO=0RTU_1a ڝ@z]' e7U V?z8j3뚍١m Z!z F*VT pzc<]vXI˗O߅[>?3 "] Pof3*Rf^m>/1y9YWܫk;|ƥ팤^' ָ򔁋/5v( +2ΛK2)ՙ[GO>"~@{ +Dps'qQ!ʶٌ^ɅK0bO%$<~?;0sѮR?R-nHk{r 5Ƴ#nWPz׏s~~t)"1dIGY1 2|]%OQcr+;*+)+)ragH {[zg?0sKy:/ΌΓ} +/vIQCllJ%,kYč?Y<:NxU}9_dp}_rL3V*,]w nZ W+mX-->Y,ncXsb,щZx"5Vk2JΘQ2HnVhv~&l;`Ә )Qo@3P&1 Ƕ]1@)>s 5NXxn (Vq' >+*7.tV<0JƩ`i>ρ>:K gxc8 .eXuEwKM۳{s, FZȚ-.[(nX*ѐH;Ҋ;iz0[hl@LmݶGklb hʹxx5ԛ;;?hs `wSIiҙ BͿ('! qڴȱ|qпbnE܋OEe=CU&i^SaEQDF:K0ds1,N&m뽜svs/fWGө6f66N f8 25yJf +v/;"*bvBg}&+~X2 !Le>~٬~["?@?0M6kobjR#UҶG2D_Uh(ܦҫYZd!<$`i6FO AG{I܏cifeg>˲nzZk0ݎ" +L@sLb +°B!h? IS!k@4\R.2' yY8{/ De]WviazĖ N=YFSEz1nku;~pp 3WƾҚEFϰ7 MzOV\.+rݽ,lv!gp=Sxi pg/0P +#xޔZ\~yuP(oЗT; P`ROdٌG2WbWvb@Ž6z7uLnH*iRG )0Va[,N6s)YS/ź}:rn*~te@*|9|~~=dnp!rB'ڍOF$pZ:ufd;`3 `lC)CC;bg;9ìu::{vA^P2J^OY1qzV&QPGM7]jw:Y5YrZ!jBwa(<IFRQiW`~~fnII:ӬS'Zm21Bج;rI()" cl)(. ibI T VwGKU#PUs|B'M㡏~2kSZf}?DVT@ j~]oR5Mb=سf+oX:i +2447%0 (~~Cb~ {EPCu=?#LG T{*`iƔq[$&ɚro{G6ZQmSi*wM֍W\j)H'QvMj}u?=m5eW4c!)]5X.ǹ@' jyBΝld8h8ƱNi}tnZO4+ SMoH`6XNOuFTmTL<:"쫉DVqBdšpWs-2S {%Z":O `G<צh+2yQT6sC5if?QWy +?ALI4aoRm"L]%g+v瀎KnlT_T{k:Oǭ YQfit*$qE+w4Q*D[anY(JAK'BFP(~LQ(e\&tl$63j;ц:tf O?Ѵtbca% EK8vixUz~q<eiO[!DQy4+LyNbP3ɝ:!iEj &] -HB5h^e7b rU] U  ./;rqAнIRhB Gy 6N{rIhM` QsX=j=x4i]` 7{Չ3t:EV _XES:VSϻuwUWviX"^0}Y>}\Oğ\G)FY߄ѻ{_ DߙMR o8 d-~ΜlASqވbr4 m}iy>%q9!C>,OG}% +68D%kOԗ8[1{VX~mGͨ9⯄;q p`|m^K!|}>byiP *ĚًljED@NҺ .3*Tx^mjɭIT 4zİK>+ +90+*zhRw$"Qrv\ڵcNj||ʻ66 Gι~̓sbs:2>]tb8hZwa&tz:vV|ԃ4} b"^q{-a|n$Ns){B1ShiM5{bSlG-ȼc˚_硯Ӂb,ѳ[M_I4Mc HId|1, {,Kt{}w~/8d͆Æ`1b'9<q 0RTF!1M%9H\`f')$)Z +BYÛ:0Yex){Ø44d~ou̦L$Q rp\{lK`O:l,-j7VQ2ݟF7ZJu@LIm5RY)tq"mi9E}seqE$̑0QxϋOb@2{Y˸%uM+U]% /%[O. ENZ ҡK]TcQfpqP -8#IMkEfRm$;9EժvfgZ]ROnfR +I{49V2D1 vy*MuN$}]#\alݖW +edǬ> g 󟾀X3*⺵vuVYiuоu>~Z߫Aj/=;@7ʚ3JNo1qAmm/`NzQd.E@\")g\O4ɝj|s_CE(̬r" +a|$Z@-R?3_p誂TGwDbd<~x2+tlbEE1C3XA>"95v~_v /Dȇt1l8-9DZ%<0NQ@*5;F?}-<܁uUOɜZDZKb;bD%7u6ؘ̕xI'd q9wٰ wEO1 R(Jg c5UpŧxMCMECI$u_7r.k$D_$gAw:$=%itpl1XHЮ8hqmb+~9$Ѩ[0 1+].DV!( ZcfAOYC8۸;1+<$&6uìF(G`KŪ"ml06ɌnN.}̉;[:_A-[F X,k/7!X;K l:0P_RG)>zc  f9X@rВ3m@fiLƌ\eK<ЦIN8ES BԖ"1;: KAsFk1^L|rSzg| A߂݅X pD,kud6^ѵ\N,D!o\bBzoݕЂMQ>o]9kwGG[0k<1J3M+–||t#B>daDU(IjԖw\›%"QE~8Iz]ㆉm!2>>ɴi:'&ivNFǰ,"lXdwJIc(1H XԙId{$1Rl.ISDp=ipbE%E8&â&0.a3,`vr3,Eݪv4FCUž3 p'~ζQH [ɺفQ 19pCVmNZ1>U6!ycN sxָ2SlN:9d1]r2 ɘY07~3Rе`5x5"|5b`.b\e֌v,vcI밮XWa@}{P @(twpo*mܠB9 臢ÞvsuVEtBȰ }A4s n2K;ՠ("f2Z:kA? Xl#´!N`v+%'K\* +YCA0{5 Bw˶mSl۶m۶m۶yNwOw{f~DJ\'V#ΤwXEpg0n(5lu +`t?R%Xle}͞[t93EI-E9+$1fه"csg(d.MفG#;\I YXv;4K%_?l 4~C/)k3>_n+"tT:B[Jm +mJoۚW1-a>G|*-Jkς;oK_> f9%O0φN6vN&&1ZI[gdg-vfkFl)O\FD +Q8 $frj >q> =;l?ۑf?'Y:&_zW@cN@cOgc# y폐DbpA +*:a@t ׼1LTMɢ69ʎ#ahFGLvZ԰.Te֫<lJ=u\.|>LWյi9ݴ~kvX(=B!ќLDH>&iOF55sLLS+䙢jZd!=kYg偣D 늕c>V W5%sh$?13 IV\Z貢ei%o2p*ǀS7׸vm-\[#g}WU7Ԗ?{ М&̏:.Qڒ^4̋Q=W/espfEd̮ z Y _}&_YpC܉_ +ŎЙNN[9Gqg +l8w;"qS9}@ R-=B߼++Ľ+ho lGV[gb[U& |sB$ޕ*H7qx#Af<9b[k3diL:x],P[ff.+8ДbRI%aC ;1Uxve4 o iUaT垳{ +_?\ǧub]4fIc >eՎ-ذ[dR<=2*g֔$=*×9PkǕO/+goܥoEЕq]ЏG/,[R{%/$O^M(? +ʶN }- +qqa7`P4HTF5JR(ZX8cݗz#syAϝnןop?C+.r^SoBH@ȆTiQz37FI6$r1tc7Dk)%xҡu +2 3߼fᶁ8ߠdv[U< 3l(}+净ax_t"\qڴrxYwwr)-T7vI\UɃ6kl!adHD,1G{hLqt*. kvА's|@>.% 8xĴXYF3ڿ""v + +o(C]Y_}EqcpINf.Y~|ݲs +!lM{>LFHjcv_leW*no |U'*:5 +}(,3ASD7,T%A8$5ՃpErr=EBs?̻M":[!MXHЉB +E$QbLCQ'ٻ ;Tp; zQ׏))+7{,K,s !mqY 8jYp #޷+}Ȇ,#]mٸi?{%g̝F[×B~-47"<yl&LN?ela^{O0!fu` +q?E*vI4,y cLu7xЌ/u޷òT -ۼه{ RKݚ٥ݬS&dHc"l;sM!me༁/(b;<|puRY>H>N)%).ZiY Eg% %$)GxZSq06x恼 J)R,}:=!"}Z9"?1iPB׊miVn+<],o"Q p(Sn;)ᢡۨS(%S߸!pۄ!I$5SZIm.:{2$ +$*+4\@FzͧZnȢS ϢDh}"vd?bk;* 8<< ߍK[V"WGhQQg2ZBQC#/r+Y_j[a&*8 S#ۚ1?ܜ&j|-C,="C"h|s^2s޳/3Cj~miXѬlW.S-=Tp$Jk,mKK= +O.[ b +;? .xRyou1afj A] +i 0ʳdwP&}R2>р0:NX/u:!DYa3z]ҷ>;$ | 85گF(*rKR2F@r~=ΐ `CF"bœF̃ =( ayݰ}KX1A3qb7LC>os_a_T,*ōp#lMj({U[oaP4g{l{{:QwGzvuI6=i,/O6 a=:Bb?W/zba~[t5SyuxFy"ብA:!1e]+^uM_#}GvKcd=#--%X-hP, "AꈂS1ȘrC;{b"eǀnC' EFgfڽOZ?w.@ dЮثoqvfUnmncyvf9C7F,/_o{ua~f*gK?Cf^F,ӲƪQ. ٸ1VQ5봆{U]Ief*ҡ4 .9c$ 0خ:u;2 o U]ͱh%]ޠ&J&󦭖q`a膭4׬X@RD/Êf%JUA,15*>NUM-6bk^d344qH9K3l1WU{0jgɹlZ N9JiQKqfb7f={ +򹠂KJ\Õ59ȣ&(¾px)/sv; +z;N32/OA|ZIT*P)*\w![  z/<t9J V~.6C^J|)!gzTJ^^;$e&vwWڍy|KnF{G&yW'JM }4jdmbgJ|΀麚δZDa}+ LxNdgilK!1X :V)N 3lSRӷRH< GTH_GFō[iGR|3)2unIM,ɺ;:fG9w 7F2D-]Cf1#RvZvZIOL_%+qbQM*&I"qSnI8"9=AIyzf+_l +2$ʹմS} uRSJR{S S:!רXdIk#td4}N!i=3 "&k *oŔVTf~Oaq2i{ivS#vL )INp`ŭT|h _P:X +t#PRDfS(tB<ͽ'D ~(y@/lvxM4t59 >χ4bVHyTZc#ҺXZ]>H*VS6М +ZzMyKѺ^tfZ~4cH&dʊd,hCV|\gZG_fjjN(3"{ʭ pP^ЈU\1|87Ze7hGL:)!C/hxQm%QQ:F\ګصr_]ar7f=+VN_rrvɹ9fCW{o>9l?no̧ߝGEû^wt䑹$HVNq6Tf,O +"ODхje;EOx2x +XR*"9d,"ѫKD\J|/gSrqORWJ%)Ρs \!vFg%0wEɝ9/]U| &5:3֞Z: ^0dADfG6kYn#XkꁶF9*w >]dۧ\<>PǤ5[erų@+5sPksbr%V#t=#7 W&_HK+03d[Ug>T fZ(z4WJ͕I.GܖYY=K4ys_=Klanr$];@GTCp=s: 8Zf|N=œM-ca];&僋ԳPw!qЉ`O)U/~aR\ѮIY>lQNc, 3sm +$4$=L$IߤIdyA$}JqpJ}pcP:XߤK$@dA8mJeJij ~Pz# y -E|q +: +X7L : BD2 +XL5 2 +\Ao?%Xǁ@.xVƴ5iի 4,k!uĨ?АIlC8Eyy#>eL1x# n*E>:ȂEHD:_rYbJUQ)P˘Wi*eGc*yxءK(l 7.&u MjC{g厪K36~-4dܭaWKa&_Ⱦ&q 8լm ؾ#fȻ&MpI]kTAy⋜m&q  +|| x+`k`Q\]om'ߋT\m319k)6{^W8)L6Ԩ>Llx@1ЙDTu ::Nm|Ы0ԸR -!,A)-,1j]q$Jo"~B0X%?<Y @ h:j j|boRy#$R*4(}98"cRUܳ:Q(l+JX2d#WTBjЄ"$ m9 +Qs`RX nMV,$q3̌KFJYl<.VcąN{FȘ _97v4F6?ͭg C$=Ia&Hmb#yxH +Iv2;1/J}7#5;u, nZ %M G ?7fN#{+-,#yVP~[s YV\HYSZt~`4 gc`^\{!D+',XFìBZgK0v V_UH↟7;Xy`wdV ա}6rK&ycsKBXWdpw@?GbwuTՃЗĘ,;$+h*bD#ua㶏q8Z*pPp8zԓ4%Sߕ^ekvV(l]T%=ں`TdhI/q: ژDD31-Z*\)GZӡTV$sf1r }U!cg^JISf&Ewc}R^t,=.:j5F! %Cg-pnVw=jya$=A + ˋ&I{ok (9ɲ"ucF jL_  +:hԘj:\)`bQƒ9NL#&Q3t4s,ѡ +ˋdI0u1@ME5muV.?h41MK~y#Ԗ'HK(걲̥UqeғU Mp +s2ʊ;՚Mb #}-r(+g%j %k,҂6"uu=%C} kf<Q2w$UhlL8; |>n c$0gK5TUv'5Y./9|APܥ$\*9dJXAqgok{;'H1'`f;d;x-.BKVѭ}CݭXO{h:0eJ !7ܟ׻97DLܡk]/IIaS;a%Nوd0s,t׃Gq_cBz{})]t!=U#FEITCl]/VP6qn۽a-jg:u]~=^[ܦddC@Qo2#ߕ;`z +^HP-Jfuנ)ǙxjA[wI1/ Bp +_&5A7LSmXR.uw0Bago4=ANw =6"G)៖m91SN"q@CgN gk_hw?~98ro)ߠj*B[K‚nnZIl^&4ܹgO26ąKl]v ڒ$}+ݸ{g neS"g¤z,%?yFC&asvҖ+1*:VܭSg uR'' +n*k) +ŀ#X  kf.Qyg+i L݋e dW3ϵ58s)?"U9CeiVQ{Bː!CۀNQ+/ŏGU(I3%I_:K.X/C+RPqp'aT8~bfg4lgxLY;%=5%Pe{die&ЖAÛlj};/NZ+$4+h[[GROcꨋHYዮ&jI^k1MO?h,TJUɤOJNsV꒛Z'QxLe .m^ø$ d +IOt(^nn[zFh*~$hh49|-l Vc +;e`RUʓRر4=y4ypv4Dn^~gmZx2)*JHUUax7&ZOY.=íAwp>:oPAV۲OA_t_LظO準8tAGz?uоAwt_ +mwdw2A'?mлo? oAr?N߹捲oAH?^؟s&NAGAWz_*?Xw:A.?%йooZA^лRot_??wkr$_Bot_z?؞d_?]]w+Qy-{TWyޢRR@9&d% y6 2u:(r:E f )%,pd~Fl`uwY`Ggw 7qN([Eh$ja7FC*ݷ@筐<nFWW`G0UF̖P Li)-D E$PO6!ٲ9j `aT\o-BSaD_ar.il! es5\}\A ^oȨ; H屰s\TGs,97Q1YĊ-P_ZCU$XIy+Πs2x-KU2xakx@ .Z{Ml hIבZdAF;Rg~YvYϲWʖf/[ dWչ֒^5ၙD5M61bɇ6@sT8InH4*%5w 0l=T(+e.eDsnEcڳ -TK1ϊ|֟֝-XyQEkSH+@]b|Q2n7EEIBYg4avxBm&"J*3;\y\%6늾k|m"vZRoaٴY |Gٕ 6PHpyՠ06,?y=W7r/ңH>-=?fZj:=zΟ?f:_>,轇ŷ.IW [ ?yOc */(??hzDwCRMk}XΑpV3XiÔjWy2p|p*$ل) 50uq*')gʔKd;N) O)S-K"V)HF +"+qXs/ڑЯUOBOrSO=VR@ޥsEW@A,%@Z1 g[dd1$滸"#otOASaC1Ѵg80KG+K?<)qhz±A3BbS[uV.Ӳel5wWD^dCTIÃk8"'> RD88W} X)cDm5"8JNk8Zl=aڃL}&"G"XTc9RLNACq.dDYe2{W86,k#s,L%" ǩВޕ0꽾:_Y^:L@;'xDT$'<-&J&NJmP3E-q(6zs*.ϧDaUɾےP#hsYhD@1=ϵ+v Rg4qU 9n܏r׾|宂18deyM*\Ykv*?;n/Jf+/F/$azTZ|eL:?h^T\ B>R>j ;/|B?vo=^? +na/z)t1vUcgɟt3Y#MMWk~FB*z/'%H;`88W=6 +NV\3jG[ԏ9ʱk$G%>e#)٨NH>PqEX6%dqȓ{CQ0ɇ;BQ.Q\iq^oHҸk(V5&v.gu<[vs玏{}{MhqΨ:8E)fOdRs]p{TmRߗgnLb/= ?_+,z[:c27YZ;uIㅈ7il?kƽ3z3Rf]Hz)6-z>:?|_'(]`'tX&o% Bwuo6o; :G-9_OGWc#+[V&s'?/~ӻ?WoRiy§w:rgsoW[|z~ԏ{ng_MM6n=7|J4_M727^LbߢKNý + z~'/2ޭZrM|"BrF&+M@XюPcqݸZznfװ"g*NDg.N +xLA <[^P,<77>K97|ԫp74?!Vrs)Y6ZB^xJr]7f"_qEπApViC Գ +I=dymǪ]؅P?ߴކg>E-2~Ko>)\w r]Ԝ |gE>֭{PjUY>I$nW^4Yx}Z5PzJM}$_qc~Lh&Υ~(TП>%M]D{ ~~=p|};`!؝I?];I{%Rܥ>x~1_G |b.%/9VcYEW E!Â%\p[`b&Nz[SC)>`ܠfmXWX)/dI7*(e>]4`GNꟀ:9&$VZ7eQxX(yHfT}SOJ\hP({aXQf,SRpoуt"._df^Ҹy7뱢QvN-Jv74WE|~ %92ݏtxָd^3y=؀f3|~dTi[A܃$$`ZGKǃ4~HNُ՝Х֓UilKrC ;ތ;:prgp,=܅24s}J{ۆ6B /R?WWlZ' ~NZcZNVe#TӔs/kyHW^Hn^ٺF 8Ful % #ij4ɿW_j(69#_kG{$Â2:B<}# Ohѡ6~S#ymQO+ qXV 42/JV> QA#?UE-1gm3SuL~@`mӜ.IShIcI$뭦-F0QT#S8UAMoSiZ|*d1C"2^%}t&gj/D$DS`(Ec>S8ț՟0~:DjOˋ&<"Ndb{vH)6,wnqno*$_Щ ;l1B e +|?+k*,w.~Xɓ]HUE)sveO + S)ܢ 25^kϸ"Ms'lM/37x\ci!Ӌzf#HIWW\2w[`\GMUS.;9h"LX|f}O1 8gUDfMx{#ӁeaBPUq#1QxfUx@ʯbPցQE.Gڣy.΃fbN:a~U"$$K>5bEwŦ@~ڥD]p4ۺD`uD^)3G8j3<#&j~W"FFԇecoEF_I"zSrK}MPr] +#Jp6$Z5%H:saW>& (6hSLyhrMt!oLC 60R xs(@c@h0!NQ>ԇ9LGCbϬElCvX; 0o4^2K5:&\TzVZ *CA"rV2ȗs@UlhIu&"̐629:!k6fJ;xWYTȮ&W]]d굑`y{6wľ@ ŔH1#W +.kc +U\P{Bꅂ"gN` +XW҈۠A:6'YI NQ!Gt=&@gP )Dz|Dv#o#@2"e}'Vc PEEٹFd}n.> *g3;$3䠓g 0)R*b(_gvߧT˜mėܜΕYJb]s_'q[H,}0BsJVҒC@)6F . Hq0}5B4Hk\iٴ2z;(|: Ez+7-Dg;מrMwF.a (=DI$7 +f2 orwL[JBSזa +1PaL ,i Z +}*1JXJtSF:~*}2z)b$[IJ]?p݄,:c|6e@fh[:ư#h=V4嵿?Ra~ +hWVō~@yCmN=#ꊋȖqj&W.w^7UKep` CFu$ńֱ!faK4P]еݙ +9iH wl#Y)urumB$jUZ1JTS)N]@'w*2E#X6ޫ| pZ\0hC.x&q%y|Bm~r/wؖ>/Vbscy7&0BY{ }L/*:V8j?3?SS7pC.$BM͋E6kdlL;& +]*Olʀ+phAxmyP"(H\MZD&woOwo.v? $KTʸ2> +*JUIQӔk&yMr}L9f(hi[4ԛtrX2_ow܏oDj/@knU٩W.Sc!hӬDT֤lzpov}Ϡ2RO@32+U/";!*?"K:Xj9d_e0j,w #p " 9~B#67*{ݎ2^);,I<7m!7z4Gk~3"鰊VLby NF׿|ݿdР:+XEL]&EqNak3U@S~7-[ %j+rxTkJ)yKJC[m6a$)ĩ~ gƁZ$Yx[KL1YFĵT(EԢZt[a~ʺvch!&ow$/f $vc.6^U6:3ު~oES -/k s5BNY-z@sppS z7[焕) VixbHԻ@r edq*iӬ-UJx씭A?֮RYӦ84J'WγT#ڋʏ.Qda =m*ϦE,(#;?!2=1i(<w#!ϜK;X(Q̖mSFqJ֚1vBҭC־U'#9ʎz +pFM|WzpB%CٹY ȋ!9iOxs U=ITЖꐹlZ!I%,lV>(&cmadžDy uJcb$;+)9Q~Y8쩇15wu-kLXKiQ*vZ*oI;4?A ́Rs#j vDs9(lWH}+"sy;WL/F%)0@^b?&1&bc02-+rgDN)=+*== K:;+TD yPcBWwonC}|UUhކ +uw E:Ztlab-dd3ф~.PǯHcv1M($)k:)i<Əuj^VUbv-A,w瓥$p7]0Y󓃇Y#E-A.s~1 'M +iP={r}8tvPOeƩb4B?UDPHNYZ?Ne xCZD9?|qEXqmD[j~H)K,˘\y>$ ~4ٍ MYEo35H[cc5& #=dXgG1 +99`^**O«N8D骓eBU_ +qԘ|@m0w@"cO۱ ֧|DwKf7uH7E 0:U%r$3Z8a~f`[WA +LBkwv+( 7wU_uWXނ0wX6,?x{kiug=])JcLp + 6bD 0H"kJtGb4t3juZEeJ/m4 qwcDm눞/gi07V$!M_nAZ?'}xGOz~^hg[tf8.^*8h^FԫC]pag5ɾwV{vgپ0[:~۔T59B!%tI ospWʧL졭$݃Hx*G{dzd^%ZIj7 ^{6o?OTNyK r}bB3؟J~;p5rG5F/L{wH-WKEOtxrh6Ů'Az1D u?5 k_ +(&}@^>NED(>nZ]!CA.kT||_NQO@(E1eD6)'ɞ!%P@!l K 1Zno'Eu[O쑉pxjt 4"=RE# xbuT.^6~JbsL1dfvKZ~GI1.!]ԄTJ--d֦ }:SՆX"9Fj"|ʍd*q9RRMTҔE%\+(djeQtL!Ɔ[Μl8m6Ǚ5!R_]Hث#S8"NskK k] 1kt0eWנ&Ҥ1؆*VLm} BSgԍ^e=셙u&"~&7J %2w#QLSuh!͡%e6& M %uIOpb*fQ#5_sdy`b߆NƤM>d?rrd d BQ:KQ _3 + +g-EBDI< +H%fx[䪓iz$b͏Ws1 ?G!#N4Ǜڴ놨 OKΒFJU=/g,N7F.ǿz+r(9} Y3rHeY;zDjl-:&U;ޞF歆*i С\g*8:շ+z>/(VCz"WYF4!įu)AOkd!).9kgߖRaU̗fsl9LOc.MWS7Wi\ݝ&ɢ\/|֬L?cLg'PAXTMm6^;ȷ;q`&ZE^} i$lm >}i MAWgi(ggvuO`ٶG .3Uʤgר\ >tP6 D"Uk r$Qna?t>XnK-GKr5@I R +;e5Ͼ9\] Y +9^e0kSdМggQC no.S=d4k\}geeCWS>m<IN+;wOc<^+H!𹙖qcu%űr,oJ2zkW=2R *e 14`G[Y3 x9?ZXMIspqFMx>1Q٩ޞNgBRۨkx*}|mpJ/RCMPA WP5U +W1ykysQAEoy'0Is"V; i}gq=ϭ6- + $\鈬/p}ʼnjΜ)0 , ɭ/^3VAXJgcv8]n"R[ZTY +0 'GJ5Q;=F4Hsۏ'GOl1v lh0.9Xߛ/ +”ҢAvV__c?⥈!~Ge]_vF1,WbʅΏ fd̹rNVl}G*XI`^ٞhGzjEڷ fl*RV!*Fj:%4גK lW]Pj +K ꋛyy[T_ȘW0b4 ߄-[G]-/u0(:t5928F99 +h wޚd0OLzgؐ(6Ac^CohNR&;abYǶxo<@$Eu !I l2FOY/ YRS l\"6,ykQZ] ^Q;h]d*ג_fJ2"WubN:JM'BhYV`]Ͷ 6mnӕ<aMC`1(n xje g9AA߫/cR7bLcL|QJ&s˼G<*KuXIԴ<~@ORM`(źl˴:}H!V^]b\3GҜoEBٙ7؂3ޓ"dU č^TJ<ŵdI]s%gg%Kpա$bT(|_{00F |_,4¾ᘿ>;D*.r`Y0'<>_HNLYєv|%i`j\VmaڠM`=BFc"F92rbE09l8Bؿ rHD$"2RYjnj?S$E#Z9@;rǠCuKȊ$$EiՏ<U_5|Ӧq:jWq`k_^!@j _|XN ަ=/sp#YMJ|xp\#ɲ|dq zG^ iLx%U)t]`^?. j6ܹ/T`-sd}^Ds !:~F}Lz/%C@wKM-߽#aECP2.l|`|`.Pۯ&# %K@̈́CF;9L~'\<RFXvO ՎClMT|:^xN.,.5L.JP@ebTIeulB8D NGzI@H.=Z:I?7!2B;h߲\*4b~w#Okrf w# )Å(VB"s wLn5Ԝy +OBo6Tо:FtP׊^8KFpM1)HLZ:K <6t1~!y tM:Γp}eC.:UFKλ7{qcH[ ]ڟ@l0ji{fh_%en,s;s&Ctpg"J 8Oe-1Mxʹǡ7Tm3 [A*_D^`{ +;lgwb(W30T RH6& i3gDjMw(Lj2;HO} LJ_dt*,6Mɭ@).2fPIzXAB`UB33-#ULArz`bQt?Y];o~r݃x>L|/X9A¿%鯤)w5U{t+J ~he# z/n闀,auQ:O)_wq*'6xsKSp #6C+fRWX>-;G䅶qy6phӿ:6 9F_UbGw0qx ` x sl1;?nz>W}65W{4w'<8 +>JCf_n*)Ԃ:{(#qo2r8`6Ŵ2] 8)_^AEIo~#:l`̖| VДQpz”a{R{ Mr6'j[6 _t՚Տě@%!MCrĈvonp\m{{ЬLIJx @83cmn$qw>5F׶I158jq жS1MFrPa{e/!Ny3{(cRTS6ȿ9mHfh3~mJڀa*p|j0aRvumbaucmK#shoT+tFbh]6w#G[}" yHuycf# +"!#D7 g>\1J*pˏ\&&xIM+ey/1fC<,fn5qJi˦s.(%6 H#63Wp=zv"eV ecs\+ ʎgdA6)"pF8rs@%VEy8_vh^[8f + JL㸦oo|efJz/ޙco2!tKO6gܔ16 +\,P4NfePm'Z9 fYb<`SS>n Vc*y|uB,ENl 6' .ϔ ]nsP`e&]B#bf~ՈӇ`T)(#,HD!b y7̀S +4>ȦtY8KnY^2L=(Mp%8-&')rָp=ї&uB]m Md(ASe(6(Q2ʽG&t6}"wY:tU~AGs&~ /\#Thp_6,~W\pU[="1`yjR.G*Cϩ evEdҤzJҹ/l\j_>;zQtcwe&g ݙ(|~/<"-,dM-FblwA{1yGIt|]<0wX 8]"!.@fNMY&ޕF*jԙ#M9#t{FOn*lQ{ dН(|\lȳ3vWM3 +u2UR?uDž}ۍF;Kqc[^ 0ydez)(,\!:Łoy찣0jt죄Yzk\=e +G-C[a-j])CK`[ʇ j$QwR/Oⳳ9q#/[Y_ABPwM<ש#yO͖4҇md餧>,˸5Bk|, 69~^;M< \oQLro?;ihzSURgROvM=ţkq7lOmu,Avjiy[l *M ysu1v>ۀ&- b ܖ3=U5B>VDEsZyasF#aLw2u0W:][r `xS}x͗Vp0<(#dϪܤᇌd0$ +񰟄$g + U%F>+-kEi2Rvwǯ_v'*+d#nDf,B> ny[ڙYC3wR髚lP.NRgز%^ V_M`3Os%,_n4@mE.>X]pbH5(d@ʉ ciT$)e>3%Z9}nT.,6u x +nO*@P:P 7VҲx},V,;UrE6-*]K#@1$'' +{'vLV]GV6P 8'TC4--(YUDv1ɄhE{[eC,D~=5̚OCBwY`C9D9]$"mCX u#>a'33d.qWVxL@/$,q_jJZ߿_MV."'?Q9OڬBi|9CAJlN9;&q S'q9Mz$- m9xs ^Or[/,Z=9|L>5BY5J15CQZ4pInX9#qC̾CJ{ӢM9rI@"s8>1bsmRY +S7!νCKeo=COWнq_9v~Y]iѢ#9HWyiBsrBZarvBZٶyyBY̹|FعC~*GW!"6jBOmRw乼,ߕ"@$9:_ZLgs']D Ԩq;Eb\V : 7lq-0g?7#\)WannسVPsPg[\}VAzJe~9U]],d6@4y>]D0EC~ӾpM|n=PxCDoYQbUo}= ?ɷֳg?7E~xB.qM҅"Bu)帧"0, &|,ō#='rd0,ͤ:Cx{+p{^Ez].ǡ/Vg ^q_pMȜA_=^>TT"ֈL^H$, 1?eqTXEp E,qT\*,߳ "*T" |T/L&Aƾ?e!`EQnG! `8o!Q4L {3 㡱1vHJG(E4E<E Q(܅pp"F qB8pfF vLp7Izpo # +c0GV + q̧P!01O0 +5+89)X&m۶m۶m۶m۶m۶=<'fޘ\YYUQ+S!یM) , ++FifTСNrDI4}A=8{)fќ:%D{[*#r+:{JQu|wTĎU6 /ElG4m~V(2!#`ʥСĒVQ*&R٨璹V s +:Zid4Re`V ,¡a}ޖQ2A\FO#o9Bh % + +MG{+ ɀ#6+#8˿ +r϶wk[mbpar54Stpuy F_cʤ3% 8@BJ\^>p*'3~<)/6~&x"$-+b\<2>&L2e_ұ홆#k G:x0%`E +bbg-xH. Rg28H1/1 "r'`$%S53X(H( <^t@{o ůP#ɄCʄkKHF2qHs>ԗ3 QK30 &#0.Q\Tr3ؔGkشA汉aYe"C f%NهVB3Nߋob0NvI53.R,M+LR9*9.0R30.%nY,M<r3FFKL^*((m.rFX;+hQ+CB VJ?ADf ({@X>S.xvsԳrA;&v6d=GG>Bh=&rrMRѰ3r=,ަ<:d|7tƸFvxaJ8 Zvbx&~ s<ku3 IFo5di {\}n}n6R:;;-{a?[vqWo_ kK)j,ǙkCӶ6 aYEZO| lC:F@Q3dC,~fYs"OހYtFT zAo;`}CO2Ԭ{OrֽQS3o5fۂ&oYyEޛ޸yLyC:{mzR}.|xtoT4f7jߜt|ϙ}IhA%_*MQ!.*$XE4T|ZVfZCyBk%.Uyj%.i r_7-UngUgpz"մ`]4[[K\^O~Bzc u&{Suub`{ēl:5,&wFy:)qKaK-|p(YNXּJUԹإ'-6˿] b+{U $`n%(*˳ҽ=J>ѱ50'mgpip {I#<1f>8(CH-Ws\'ˊu5&2a_4Ήgh?}p]]BK_߅ 6pZi0q汀 8& 9Bw )'1[qCVj1nIàxrT V Fx +)gIC7u |I?Bc3G3D_A`ǗkrACebʴkg9=9ad_^1Oj1EsL 0<vqRbNVEVP^,,,,[ɛͶJ{Y6&Km֝6Km62{-^>}|QE?Ngt\lw+4` &csƀF\ --)WJO9JV Pukiz| /FllLm!"-W1߮9׹pyrϓ>ڭ數a{4zΚuGz#w7Å6k!~f w)z +1%Y.ʏḯ3@]-:$pL[ >f:5GvI fWP٪D`UOƔG[!^1%IT4WhoW(l+/eٙ8+Qߚf8(-W f=+)%Y`=IT*ȒY nxRjDJs ǯDQyBm'{xdgM]X5xY:Św0ُK& !|>iys[Svk0M)v䲅absK ܗO"4KVOΉye9eK3Bn]EsԞcm>9*mԝكDJ䉒+o* R:Y-yVT-"s +<5O4}wiD0# +qF U5JO(xZ; RTJQ+'+5 RU+js9?n-+"{c,Y~E1];Ho'+W.U:=)?fkdB!yxAᕢXB`>'DlO9ȬDWA0L?u0dM= R'z/UD-\֙>5!Pzơ ۆ3B ߆һdjG`b :{DƵ}:faLEhRMb1'1WI=_Ele U4}єxBeUH=DCHP.: l*gP2[%1@E ,#4p]am{'_@]@=E>+6Rg;-3ta +Ztm5rj蜁#ӀXqZ+v$8.ek :4D<+$t3 m+%|yhH}੪vʰz |}үk +'g _mo{ju%{dܯk,J ֯(i@I]{1Sڃ9)̚Hfp3Ʒx6xpE:/mLNH=Jja-"rh9ҟ2ɂ\PVЀ%T2#DF +;Jgd`7`Gu_^zc8;;YwB5  ZbW?a `hgъjw8GֆCZ_q/.5:@>֦x +/DB'h +ldHF x\BI'EI:3Bgt[ufuSر6@Ρ9)" |Q$rlB""S1´Pc&*^ep !-t#] %+䡙i;f{Ek,v-hO&4+9XU6eӊ+C yI[ڰ965h9m1' ͹يI.EFAʅ0wV!…zķ<TmT#<07KguFd*iH49\;=°tCʛNQ=ȍrYԸ52 @abq%5/a+|=3bhm/y^.أ6[-h+enͭ/)N8 nIR>n<I;9(w+ݮP|. ڃw{-E&`c.3Oxz53T37cirvv*[Do`/2#0md^3L^Ya3Q'q_ֶߝm,FԻ&Oxi WT\Gr )4,;q}r)ѾwfZ|#Z_ _BE%N&E+mpՊB0h켖EySnf'RNt8nOB3. CBQ:9h+Ψj\RTU* ,یSU!Y[K_og_/xVN+Å" bX1'=1+> +A3FpE)L F)0T)&Zhs4㍔*s7 +[MMt, @ ` +ZJ"$akjPRA]=b&aM,1`J<\v7>ұDW//ȧt!j1*;yZ ;aR̎4`]tޏ^t5;b )׆Yb6Z?a~IUgD1 ^2pGɵB:PSGi^S@즱l>vm.oij1&y}i26Qg)Uj'|Yht!kcC5cJ;^{cdKjJݗT癄9h)< 2z Luo2Qf6I#(_(r]ࣩ$A87hS[*.aIJFmS܌YZwVPb=͖.oxf/kDck"}֭W}a%REiarJ,F2EScQ[X@:_wx;N*;0lb7fa;F+9@@d*AJfOuXzq\h/FKjU*L81}6oM>c+%KK)R%'g#m"~jgP'*+CxT?#yXrһ"!>VY y1~ @ɠMp$XŬO0‹YXu͟[g)/.6/F΀wga +P`t }Nj##NcGJчrIҠ!;tiыob>oW*2 +!" [* >;Tv)]Ⱦ#sahsî;ҼfzxleFq/c󣕰1;[[ (| +U}PN֕Սq՚p]aٯ!F$1\>#Ⱦp=;w#{2A=ѽaJ14<$D9ѴKglFK5>DDH% >2 +Sݣ{6-Mt,-Lxo/OL "dP_OjIeR-PYigcSٲjP&崶yfwh尪{gU3w01wϼlT(ӏ{qFjm#xX^p#CCsKAw*T$!7#@ +V^L$K|l|k΀pS<1F`I{MЙ Oqi̔pKD,9tPcc@[49pSJ%"WUݐL%]M:W]a#z1Ϥ1v#R t!#Oe(}H|2h dȔu"\^bDbL7]ñ`9x^[P>kQ^@v*Ot}~ut䕽% +A6,"и2{fe7ڕP:y઄SxRȲa'~'b}6>.A{ +^]Ƚ6 i^"Hbᕻ_5"v1Y(ƘI+%QP| +9+cT{l+vDB5{\'$g`A.2 X0V ORY#z5ǝhMYnF|<:ǝ:7M˲qU2rF1HMclES6uo] wL> fuړ72t)>ŧu .2F:c 5E;2/"WtLz̹y)DL P*:=<ݎ5A ;2]g<= {wL]/iA #3`#Up|'氖Ycjjh5kԐIe{@9 K}cf}G8;/Q +dsgWJ(DT(-`g;R -Wb ذ>bZ(Z-hU Z1VaY/*5VeWR ˫pˉ{[Χg`ë\柨LhT\&,IW_O5s!MO2G *!gyD7kP囫{%W>U:N8af{T,a#{tDC +P\->A#tͭ ?4txEN~LAg+ euX vb_Z)Wf+ҴٌD ۶Vwqf-.&uA Vp;buݧZtr F[A ^[rAc%⑽T[aFsXB,e,pe$>ZD8>)VWyQN]͌L5!%fɣ7ˌO"+H$b]%5*nwښJg6<`*2FT] +A +9L~N.(aqq"왒1|z?XHh1m#;ol5w@ԣpwNHlm\Ѯ@gNVPN\ŏs8jAwx岮]'Xky]gW5Ⅽ!lw%HYFȅ2tɼе\3B,n kJu9)j7.;G%7MoYf,Ŗcbvc ,r"&}r枕F>Ͼg=7fvg G`#X0 osN5Te,# Z4җ(h.rߢʡeF]+wL{hN]ЪhrܻsſQ3fnh/mRw&Kݍ2ۣfa+ +ٵRbiqEQ/&WJ y,ܵ'y4H]/ d<rНtWBs#_jQ;%$^lι.>i9ʆ>=U.[y^.~/TR}eQV)W*3 jK/3>,sS4h*~Z5kh*c>.=ZTT.i\~qV*^.!^<%z*(9JKN+81{IŔOoOP*rd=:VSвQ׊۶(1@I 4H?}TRkxhgW2|U&RI5LNRXI:s|&f[Ep1jl6W<^?p4a1~!w_`]2hfj,?ou,Na&:n/LG6aυEUsf܂ʐV4 v7}٬f³ɶ/iĪfXPlHJm}#Kv`mz4|rվ%Q`[ضEҡd!a{ac15fTF*l@Iؖpޔ!NK١z(aBIpv[,DWmoFS v?B2X(H52=~&u_ ;)Bпވ I$zDa"H~f zZ|K=mvϰwHX#R n-`! GA1cS֓3f%v>0 YӨ㖄@H $*/&5g(z+\0c_/nDžTy ++qX{wlMxQEe"myUmbmEӻgp[;{;xMm{3労ޅ#ؖ# ޹'ymitMd#dldLx`%ut(6*9O["v\̓$WV]ah `It!)Mt6*l1k}U+#sz"iq=} ȐjsO Og'D|dוoXh2TGiSԥ*r`'WũԵOIo:4vN ~c0q :T Z + J + R%O)i +++,=%GZMXzJe[\Oͬacr j + z +:,k)'4dL~Ҙ)j}^L!}p:4tDe`VTlyX߸xX܃6ph#:7ɑfuqB1(# Pz;PZ9GIN##?#H6u9(1#l,1Sn=;0(NY< q6PWyClraFA~Q(TΒhI_:J8!è#އRN^ cEX + u$ qaÐ)00 x$*@0naߋe $+@4O<8:0288qQ!HZ(cPטxPDPJ3ւJ )X$Z-XI\X<5Wz_<6^C1"~8>AP "xB`d "qp|$˗f64_B$03 N@q7Z>Bg ՛B#Vk(k0 0փCABBV9ؒk7;(JY>>l6KX +>e%wd|nxe?;)|7E^wOgg׺zwW}14ՑFOtx'ɼoxeI'ar"RNyKCɪ4et$إuUɖ(Cl >L{'\ +bq9Ȉr!>lshfD?/Y1L^Zh6q<R(-+O"$jv)ۤV% +.*/h3Sr)%r|qrRN^|OE@DIѾZ[Pd*᱘[ջщv(*,AZ!iшXY, Rt +`e\i1{rGAޠ\%u c03]$7IDQV)jH*@fkEa@PE'E@b*4 (BF*]PVx!쀽5i;`q3<=!oD}OMF2qმЇԊB @)s&E` TjFz+@fs6~;wD<{%9j6 lDS]Wヴlw9n=VtS!{pob6rGщt+Rk5+-KeْltDgHɜu du*_ ECv;f] fs2]H߸%]wH{>\9p\^>$y6O d4 m_Gp]nކ19:b#Piiq7aW|hHT^L*4242CIx2H^+B7a&[zó5qMJFp%{l +LK<@ +P lEIf4մBcCCiEw 9j!iަ䏧6U(gnGQQ[..*&:Bkj#5w&3|jOg_~ko~Oc뒺B X/[)>Hl;&S&8FKg/;|wfX K) ݢ @R˃b8eNyONpVW,C+,UǀQ22Nҁq{Bg.1"tĽ2_˂DG{=r +O{$cr9rYwI2_TAZq"="'ԗM +DZq%-q$l`n1^;Ak㤣-/Ԛ6Tʣ=!9&Η r37؅]@J)ɩ){iyCrSH>8+ހ-(dd3U"u)'HZ3R;hr˙İ&%Z0UqC[]N%tq}/<\m!(4=^|]omՖx G70^8J@OO"} z&EK1ACM> +kԱH|3IH-= 6M/8|DeFq&0r3v3%^%KRq79,ft*k$m4K;;(N3n7wp+ ^n~K.x8Ȉ r3@Lo|<2A? +TcUPM "k_|I%V:e۴yDZmebdp~pcK/k%b9lyXs,~ݢؕ<bHTF/rNІfRKa別&m>la!lK8E' O~k bYQanl)'yy؈d|!tmi!Wrۼwy>_$3YC/u!gyۈ{/lxxH:-Ra^xTнzQLpxm6Af-.rjO3llnR3Xz]p8MɊx|<)I\J8(bt0aPr!3FI惛9$ `“~#N"6>:E3 @E/Gw ̹I7zq95Rr6i2#Mr4qr?U%,I 5)V@6(5-Y3@X2^B' {KͳBfw!GlG֦n^w{^;MGuz~Dq2`Ca0M CCC2Z0xLރޓS0mL\ E ]+uӍ@F4YƋ-עMV+UL-`OHp81k) \OC/07HB/ @W$?{edlНv3 ƒ&ė*#,#$"Y6v P7z) ԪhC_j6FĥC}dsMfd012=}z 󞄖&F6fL$T +4L%aA=brI9%6Cΐ)H`$t +OgյxԵyԭzbr5ӭ{>FK&+~Evt@SjW +QO:zVFw|r$ЕE](!9+IvS9S;]H!q1eAŊXCh vGLCԸ:zo^UJJ1|63d֕#*Պ ;#tC%psU8{K-hjC/" N<,~R8%e8%u8ŗM$l/N8 ^x>C(xK;ShHJ~lgy)vEȊ[uS2/W+C}wYC>6j0 m@R Xǿ6fHIpK!Ԛ h݊*mF4?v8GGQ5uJ`"*HA 6M) I/%zH+o +=|aOHi+6"A +^DbNlKeWdi.>,Yݜ`J=GS +ߋ^ҥ@WP@ ܖaN~ KGrEBдڡEՕ?#@Y* +JڡR %h9؊g[ +Ja}0yTVXŁcFܚwEC[Ntx^x9Qb0twGjijFnKUQԯ!2ǩWyo,3DY +I~_݇_ pp4 *zŰRy=Ÿg2G@aAa0$ aczE/ME״gt 4'aM7D7_yԺb^쵖}0[y +P-MU QgK0NGh$)!IBA! -f8Mۡ5S먙Y V-c)Sp-8 Vd mӪ V.sVB0q( '%S&S2$1\qqaӫ>wnf\w{-]ԷsU1VoBYVp0K?0k|#̺jj*Z(-Ԣ*>̰B.Mڌj/Yֵk\&&+*h6ӿd(zq /O0يJLʅBW`kpe{W49 BE( 7W h%PK1,<Ȇ(Z΍B&Yw g!Ҧ-fiƙzWJ ;M=Qqһi2~J5FsRg 1JHqߐ+k%( Me5H3o"hx+DI,X#2U^9ChM8B΁/WY(quXt~z~|b/ 耒7C=ku_k)8O[gmON{R|y|7ASm? ~uFqb?1?@w OyQ! +}1>>.R+53iM737[(,;UWX(jqelkI؞"6SBFلj"/жpHpX;[tUFNN0_ut( 0)PS' +2.vޖF ~?Z 7ppW,'OT4zW3kIӈeL‹s -7ZX2<<%R5cF.B3¹^yOKU7"Jacj?2I"\6(@ONA)o'Ls͘ݢ#D+pD\cr`q<'-~9gGrY"2+#PjNZJǑ,,P V8{ yev0>|E^ aggfȄkl_@^v*"p:S{Cl:2# +ZypbE<S'i 9?S fẺvEo#2C<;?<;D܅:Fo\g)jԖ:H *(OM:?!s#F?!`xO+֎>Adx| N+ z\g+aA':+Vf<\rHG b+F ڋyNL&B+&=`xdNYxc\2Z4f=Y2:fL0+&GEiE:Es=N"_=t' +QԊFw[3F_öaFǣmO CzQϟՑ!Ar\7tkNke< { P]5 5i#G!>[PLI^Ƙ &fn,N!፨„ݯWT$|ບ1ҏޜվm3 / _`fneީsDS)]Ó"NDI1EDU4akeV6;tc`(X@n H•{Ma۲=yS 5Whl؉G 9j e*IfK {HOoH^vN'![T!: k0dcΰ/?%U2#?疕Nx y\}p7vE}wz{٭5%m`sUA(+zuzQmx(Xz fl@Hy 0j$~ClLJ45ak8I$i:#Uq11\׆#[vMDyT)yUZUFl]ރmP6Zgyy "g"<Ľ"x< ByYŲ ]>rtiC_\1&}'iaКH:u!|SI*tf~I &B=xăb EŔ' ҅Ӱ Dͬtez9[l69ⶈ\n[xA[y@kA֚`ٝ>Hi-ׁnfĨwel6b>L\.D% a'+ޘFvdVO*Є)h VuZ|CDxWSS[KG ~5>4~QL{HJ&L w?#k?i8-esUGJJHHHH'hzɧ)#a@u8{Cw7:td h[, R+,fn:`)H;&jolRX!\i2Ԥ> . (;hZw$ɘ]jh.i-ayXl'Xf;{&LJ`dZIr GLUԜGMG^f5{.9|9iZ5Jߟ?YF=azޗyOoVCm$OnWJIڈdJe6w".A] G6?2]WmR1R]טZ?1 {lB%ԑBP29smxZ8l`kF4sMRq>6%S=J^=|٘㦠ϓħHu,uͪ-B9X~s 7;; &?kKF&S҂ctecpۈU;Njא4~:i&:!+^.ci\a>{O'Xe_e\U\CKBW'!>*_R{=AGO;j:eTCH_ӶQ]L}}ӀJPڑFVu=O`VK,ߺ΄4$]X~YӰ4kaˮ"()GPA`)Pj'e\3֠C4,ʭՋ@k9SAIB2-KR<(905pC4I4a5.˕Oh+Y+C6e+$::PtS2.(uxUUJ/اJsFQjt"広iz(ZպCkR-׌.8]=5JufX+X;}D[Um n\텻cJ2aUZ>kqMd6~z>wz{\oUB>BъnIm#/8 :>z_~ݢµVs.q +}i0;{v"ɾOZ8}͝ yu:և㽂y$>tRE)ybBs Qg5bڏ[#ts)¥@"(_w֣)2ni$ni1ϚW U_)LR6^1RL,9mvdgqwN>ثqMuf[ ,"RE$)Zy's{o4V02M9&ocCc6-e`}{g9][B+O ņ>Xz6/Bvy ,.Iϫ?ib@hT7Ԥ$kp-+K(ilӢ]?P_n_6w;ҎM7J܎uw1$7)ֽmP6heݹtk%Mك|I{4E`whD!I+V4*SSxc;ȗiAV(J[񗒦^ت8zpu6C0h3 'w {l$FTXsnL=0f(i@,jZ +$lp?J;!DNCEѵ0*ÒT W&rIJ<Ьk=.ҐY2(?[s2zv^^^Hw^e-?*%20]H8Sa+Ke*QSXleьJ-Tu[S[{XF]O 0&}j0i/^zhJbOBt5_$Щ +d9diYF/ !г"_AiEGڧ. jNqE^Pܸw.jG\/сʳ !6ŨSzitTS| uLt ul-ֺux,ۨS]J{4ӭ\F4dӫ[P+7zY,,̫]S[UBSPZzZzZzZ& ة++-ړE4[pm܁ |;n`wߔ9a*ؐ)ӷW23fGuz:ecO-*L6; ҙ}pH%Tĺ̽ +6 @:fXFq"&O @'"#'ulw|taJ ^Q+'k/pD=!IS{Wt\An 2ڧ=0~|%r̠I FM6;ztwtB-ڨC_D"s٧~a~r9v +fk%J&j@Ǝ9F='\g7r*{%\5GgO>!Zg@tnXgRG[o(BkFV B4>iV>35{uvuNnWP2.c}:=n;ߐU4O\eU.H&+ռٯV2s|ȿpf7ɒOth&Čxa2c5zGٲU:MglR-s]D avm1iRN:>96rwN|/S>s=4 ޻ ;Z^0c͑]ay="ތK~3h; wϧL5ͭt8_wZanȭLft!^Ǻ%Dzm%!+mJ Π>C +;M2y*^|__/9O:z/S|/= ];\Q( +Ɯ>`u+}{ݨx0NH)CZYBT,0'z| úx!.G 9Ic^"Z_*:Łk=CBZ+ZZֈҫ?}ij5@aѴGk6}Dq|UaB)2@U$Cπ =bTQ׺eûo=^V{p K<y7ہoD} c cm4t l21fKҡkI'KDwak:cpo]kbTȰ!5a*lҨ}]5r+zM8sݴ.|-mk!=}=l0z'л=z.ȉܻO}<(.(.ea4nƨNHr;ӱbeB$Nc|פ̀k11[cWOC=,]-k@yDq$#J۔vR]q(5M5$LJ0:aa͓8iGe8@ )H;NBꦪ(sT( "b55+iɿHX#èO"bu> @ƕxS1/ &HJO<"7O,",)`'~(WHLLj%4%7K5 +bjŲų*!Q}\tr@H$$ +Ƃ˵,Pɧ" + $%!DprI-fa |ni'LqI.'q#q4r"nhNېϸOפөr}M'կQ1xC0ZG x[o][djFln咑~dڊ̝ܔ.ȓ;:9st<űvhoH2}4hc<8КFnЂq^LSB聾{?5z度zZW(j_U9O߳w!*`춡~ez Oqp>}{ JH"ջRixTa.L~6Y^m`b{!kX}ٚ=־Lؾܾ ~65\Q}xks!wQye=}-yoyT܁=4D}y=\y=|my'};y}1] ͇Tr$p8b{JEJ4ude6\]'Fމt9vqyyslíyͼ\z%}WX\a_yZp))V#0 *0*XTÖ`.d?9] p7>'I[9 $#k*dAa kĠ:L3*ꛯʓg_R[Yu?`WLpJT\<~@B %2^CA3| +6D39 F3 B9@&g +&.g귱2 z80mkN!<-sa2Ddf(s'Ss6D4=J9bٝp֭2gج44fYIY0Ŧ֡O)[zrxĚfYNx4NU:[܄V%H%Y>қ0Kcw4/SP౞ hl:^1KL@hN$D&:^L)&o JMuq8;f_ưl +I@g.ȜM8H_8cZ6H-pZ_p8[pG?/<*jA'm4 Vvm+HËY&SuZV$mH$Lإ+c5̩f%M`X& ^&M஝+ )Z:)+14MUdZ/gZ='xc͟M\5^AS._Ü>ff_5 f9J޻sNՐm, ̼Q5k.ؽh)vߜTv^5&߈V~#nfO~g<\Wހ!()E.-F:DW` +;lQ7.amDZ449VUB^g<շxsqQjƆV4RZt ojr"M{ +W$hJ^j>1 0l0|j-}*5(4(jWV&EV&jRR^VuOHot;CiwZ &ymT[zp6%.Zb,vts,nd-kvTt,*yVnx/==48}|~}~w +ZCp[6bt_Uп}|Ӎl[$Ϣ딦 w׎1(h&_FædbEx64LP$&T{ @K)< 1;5!sܩ)E(ͨ,ܱleI -ï 7_p"|N#w1] J@cyؽˆ;g:֨α#495I:Xqg]FX1v׾ 5n,UXgqzMޛ:fߓ}w/Ip<;qÇ2n:;){> +!p^к Q}eбe|vN8ݔk?SRꆒaeq٦G{JeCyS :<_ѝ~w~v5"XÌ&&TN sI|XmrH!i\\@% epߜܞ@Ig\=^!˽x8+_Pm#cώ}vhig'n,kC m m 豸0`箽0ԍՁ~~ꗡAhbt߅/ :!Qp:+Ѥׄq`)EEI{ +|+} *ş_T#9)T'h^Yb2tm晽HZ {lFhѰe5PTn +@jbY;DdSqCfjte&sS8 LmA,DS@qEK*'ꋕnRp;A^kF&!R!*^{=$&unR ?C7;unZW9T`o[;ӥYjEK NeV嶝X]Ώèp0iKq63ZleXEXtq$&K;E'8KǩcAR[SĨ )$ NJ3fQ'ERq觲48uȽN% !-<#캕g'.;2xJٲ:eJw}HϿ%Wij"HBGŽYt%E7AZ%G-(A{cf; +rP)@(+ڜkF㢽B@$:%L)`HBjCC. Nkfm^ +oȅ"rl[B_I +aFH=v9nzL xK~L$ʅIJA;&$=~B)6mfN;I L>+RTlhbTUN{ l ?}A0¯5 ]cA#[}Cg= }hOϮ1%QT9}XLX;֨Pe!ݎ_~Wt\fqCex hSpFֿ,M|$j>'W rttlnϛJ5@j%ZX98ֈoΙYpZGЯ(}&dA1r MIsdaH\s/BW` Ҫ)^{@$b=KXXDS|AtDM7lw +2ƸQȜRo$Fr)Er9xr 1TT[V7z*K8Qgg$C#H%36 4~-r^m2WM+RT(ͽ E.r\aDPAhi~ '[ P\{V_.M%(( +]qG8zCcA/ҵ'$Z3!٪EM$Pː mklQxٶm۶m۶^m۶m˶S;uފskf}Dz +ɪOB"\)ͯYFhлM SC測n[\yw3+ ̟6* +5=Njtf2"0M\0УlW㨘.Hc&23B EE-ni ?qsQC4eH )%V4mzbonф̮6Ȳ\@+{7;GGC.:*.:{v}e Kyfk?mc1ٯ}-s/`'_F ?\v25_gm hP|A 9>*'-y792 `DH@!3阉2-徺j ֻ־5" V)j-V;Z+t7ν}{^7swg twEmwƾK@?f|wiK ` +M"x1|O6́CnĈ)1std9x@=@a ~RXƃYKYgrP=0+3>ʒ}&e 0(e3[6ȡ)+.j$Mӿ_=ƤѡCcYȡ)PJ&h%*D 9L [p ygɤffLX- LSf?g/T!7 _ _Y2JJKcAAn= DZU+'J;:٪VHZLa HZ!L B!XHR:I?yBh+ޘ/I>{(XDaEn2ApgpUXPKWo\w om4ƥ]4.mw2=%Svņ +ݷZa]`^XĖhy!ƐNCƽpA#$ǒ7ٛ:k: +$^Ɲar.Fv\7TɺYL^Ί'nDən"\8?婥s=0ɾẀ'R<2eUxoUPEn:ŘE;⥍#\CT``#ʀi &Yia͠; KB}z?ӨB_Oٸ4+ER׵8Qcalk|;4{jF KMxjp1"s)"ó9\ +w?tjW "c}jӠrޜ1o7:2l7+7F ?=@`l͒+QN2Y:s.d#( ܭE> eZ&֢NՄ|\BpA-Q5ډ%%/x>æZ'JhS:tdcjbMd\j@(mcw}LqD"{)8 r/mĢ ȲT\Ë7Q+"Y5@imУGܪOGvsE@Yv6.{@#_~36©Sp641cZ܈vm_cJJ__:)XX1FWtHU̫# HhԅУڞP/Y#6'U"HOZu{ӮcggZ椼CU-E)jI0/}&Z/"Q3'~ukugMyqX€w)0hbikkÞ@Sĉ8%\r1귢#:!.<&ҟXVXgId[s@}ԚuVe@F)%\P,Wz_ +sJdlGzzXqOD?/ 漺.2nrKf?W3frׂ͎?}c^ "?) ,`7 S')ahox2w +vN NXp(okȵ=adqXGN\Un#*(IxV7;q05[qyYƻg|[93t0ؕrA4͵/-䋱2]KQمЁLg ztSY7t7pZ0m9_ +:d-=},!/r ?cPM9TVT[8[g -aBhh%2Ly6uˢC>7oW43,9vd)fyĘ) N}qqMXV +"亷mnWw{5S6,oD!z+ >@qC$d. h I%KO]M M`#.ƅg_@qcǷׂ?B&B!'`ySNX +9yVqm'עmHdWo^wĮƸj6'FD;Qy_a[umƄjr7MqS;/:GFQNV=x<ӏ'ǎXp)sK`xȏ+~UYq+4Df*CĊ3%*VL 8UePI"muRJ/p&*t%B.k 6儗-;s*b,ҁ.bT-bDS[:&>1eZpcC\9 xƝvƉC˹5?އUJ(]Qtk/h0.4>/\3PHtBZY&7Xԝ=nSҏqgdtF Lߢs殙L>_NIC\윕޲Lַ´zy;*TM +"qG䞠}ԆK)1) {,F,Ӆ.Ќ!iñc"cQh^. )/OXV4,v"P]^>ktLptLeAee/=ćہOӚVyG8ڹJ%L%K"(x4mz}&>c.KWdfrxgeR$e_L^L^LBM;KdO(NaK~\ ՜PЙEF 3*u%wT YmR}56;Ԥ\~.K7<aOh箽p)RS;sœN?Y/^ ɻg!6vGsb[i}.nyI71WxvSv|,x!dP)rx렟֯-.2~{ߤ:u%Pѵa)5 ڦrhӤftNOwsNOLNN"OИEښOGe28kOMMwOwOw?ѦwM/C2CšʚghRL\egd1122g215b_gxyJ$Vr^Orv$v}5l~rVmKb$ZhIC<m*9EQ)<{b({8=d=>=>y_7u*1=H5Ό Y䘅2:7Ηgx4c̭NLPQ$kbSllc`o?7 +_.3{EO.|׀U +ۖC-ّ {gKm~2;njۍ5=HX=݆ܢsOY|`h+Fr%J/~ǽ/1a䔴\!5{Ef4)w|5$vu~CBvw-Hv*ιIjM̼0-BϮV́U-U +h[O|!VNwcEd2ԭݸRQ8̠MIm^MNO lt!4DMBImhrwJԊCvb t\7 =3RQs 6s\,)3ՊӢ&4AӊcNmȳ$tkTHA÷boEsS5zLOkjl]G/+x2wrNT67c:ipjB/Žq7@ܱ9ɀިƖE .3E(11(XBc"ʹ:U$FiSK0DG8R1IWQ|TzQBbi`*ATQ%;UlUZFdӌRũ}ﳃ[_'=d#&Cg.q[~A=&5lC#VA9q@ڶ? +F0ev3iUGtJ,#Ci_R4+5)q]nNk} H<djn1F諏[%ȏQ39v&lkOEbQ>I\rteE,8ShaMRpQ'.78S>=hF|LoC ثiׂ'+5]* "WVE}I oSZzַ&`-95k"r~ܮUI#էk. uխx3r(&Vՠ;A-K +X uWZ4=.:*sx*2 ?ZP˿Mܼp`j 5/K-=WP٥A0d) B&HI[@$M0sHԈ C'ӎ5Aլ+\G@u[Z倄(v,TZݚ|sW1a7$"PoƳsgKxuiF*բ7 %6)ތɒſM~6S9Fk뮟\oM:p8]!0m"w1'z뾵l]gυ|tſF_]#8 dAj#s: wGmzq >1ʡgm_Yڣ}ˇbŦ?KDɌBeFeqf]m-X95+;!=oBMLN-5e|L1󁈙,G*mz_ Y܌(mvdĊUhK[ g[|7b^ +鰣oƦ֋*^j;/Lh" 4 <,^K`t$-DֶtE +@xqw&Txҥ^~V$R!^#X dwb9LbshU +xM&Z[&e:BQ +Lȱ` &:+4w/Z%jKeO4Dس9ML&5YU4%3*B睩6hQ#{`%k\2[^L)2f㥚u==1ٗc4&q 2rAi7Jm )uǘF*\CR/dI0ަ)V +a^'=D Ѧt}!jc 6%-u$XlSxnOO֮-AF$ƥs ٌ/ +.d(ӥ YQ(ز-~u|`Z042DiQ)8x,`1`qMXhxv*V~#D 5tĜhHasY!(qu`~CXfy8`xXh}iX_4]w'ԦAw`r_wy `zQ`~dq_8.<12xPdLfq e"}%uui`zckIМ:ԙ,w݆k륆7)0ΣꌍiyV U%[8*<ʞEԍ j>C +Hw>1+l%!mV SVjNV!E8Xv'qJ+n(*9r7=0kZ{nY{}\Y{Eg/8W~ua}le}ti{G˷'/;zkCI{ B=p[ݡLqqlx襞xƹe6~ ף E0O +ڊ،kd>fhAct?omܐxBxQ0|B5[bV |rSl$꼐ź$p+I\J"͖dszLHbO0\-A,AدpL y7“}u9̊7g|َ)5LOU g +Ă%T%MqkOc칣6`eeIF*L铒MfkJJ%BθѶcjR g\#Ww#)bj0uǝK)⿒DK[CsR4O{\Z\PI<7Ԡ"5R蠜S +aV^0E #Q`4Oc|||ݩl4WSs TNaE>n(V!Su!êAO#.)K@?`f@ ϟ  Rq2s6Sv0Q_gal3,),%ʋIQ([U_'\8;}8 +d{S4ɉDg2?Ƽ(4^$Tk+Ͳ+N*Cl]h ڋhWɌ yH(;~3Tן.X6+Zp:- Vcr7# nppp2߄jI*h$ߌ#kƓ`ys_;e;5XF&\[jDa4Jݪ(`x/6ˈ'K~mΌ{PڜI9<1)&uKw`IF#΅_:*Z!*;9DJc+CS(E<8ӌf(v,?=}.~WEic6(-i-)s؄@6h0Oe}|Pa|G AҀ",y% +_A&%Sa'FCRFa ;9u >VYusc3"hDDⅧ^6^X T?g"L=WHYsh`H|Z8Szb[]A1[oNp>2oN?NN>:8_pᜊnE$*F}p67K-s"5̗˭_+ +ɞ%㋬:=Y/kC??WɅb+DŽ|# +~@.2}!_?q:U.Yf^7Zbf=݇!c Vr)\D^C.m337! hTְr4~E-g|7~ppm#4 dco5YM )5w%k|Y Gg?pKou!7Ūzz[@ *02ӴwVVdw`4}/G!s) C,u:شƙq]&-1g0GJ`7ܴ%p7 y&GTp7Xb5Jxfo %Ű\뚾Dkm NsIS[dRQzV.>á}lLRcNZζFOv!C jZ+i62!Jie,}&#Y6b6%SY$ghNf%tc[9kGv^y+|+Lv}޶,W9;w—ĩTuT7/LϬACPntbXR rŮGU;,~$.,߰oo)zXTI!LӮ]{vBN=/&0WbC5T2Y+[Um +\fhҔ"^^ə/7r v>" :Ft1FqGцxIGg\tAh#% +حg*J;#$'6*xe|9BVI^c;SXsc>j0cfb|;'ρY騲jCD̰py [.)IvtN,z+3٨ċ k T~D@J&sor *!4X9:ɼ:FyrKץ}}?nٮUZ!>R+=JY,i'N!Fnfjg/k:URH7*G>a@q%xK PUiapވm!c+TC@Wqnho͑OU /&Tjт0 0OJbE~)hlP!`A4~<3,bM;C $O< )ƚn4)<ɸ{yysa [Ɯkox?`Ni5zN5k<ЀehF{6r67(UԫhZl("P#8.&s 8Ո;p)SFeD.UhnɨG>"mPu۷Qgk{@;ˡmXtIV++CkV9lݞ%'l 1խWߪ%CSx]a>S`?ݪ]SfqY>2!50E١euޝd]8RGƋ Et-6I=tYZv+M)'E'SSٵ(B(܎%cnk^ۡ\y<$@_-c}1|YL%xQ{k.׷Ĺkmlp)kt˿ knjq~d9J14ax46ޏ*`jiZDQ{Ѕt8&08G:Et¸Bm13rœsM#@y@ԭe@ԭ-K2FI$SPqT4"CQ/)F6Z< Sp'!3|'i7G//kvz ._A "0([ L%BzDw1:,[L.^M<2b#Rd>؏wHz,m=U86J;` \/Xr30{u Q`䧓d_)~,̒ܥr]i}hX_ki%[) Mߑ>O.SLb£R2@NM8Njog+ tC [VGਆB&Wuyd/񦰯(k:S6+SM[k__ӺgAj +ͽ3Sl m1wה>pM-Osb*K=p9!a{;7SmPRlmTTvo3fϛCJi-hoP*[մDڙ{}8s +" +H~6e#ܑvdѐ;0XG~4a_)AǺxow;|htӡ A`SHH0!<`%GI-O;4獵Ckkkg3`rvr#':eABj .e5rK,8gB*EIZJ;&b5ufΔθ7?{T+`MrK.Ij1q11R(Ԍ0Jl5r~,QJV +3j22.Hi 3Yc0!bZFװLsو3tyoOy& #=lLXNIT?Xa٬[Jh.@-+]O'NjXkQt#ӘHAG y7?XiO:ݰ倎dtDBQ U +qtԛjF+cp _ޱ0?3DAÙ C]w7xmaPoIo:6 wP=9pgaD^s  +c(>')`lF +fvRM^/> .v\4ʠ2ʠ1gw<7 Fuqk]{<#& +LCtPH5GNH &_P0oUD`=f G?{osjlkh_4Reׁ/#\[T8~ɾ9,ik.&y8/8SFۥUs}}t)v+vw5Tv<,=k3[QBz]n?{#-7ނۍ-h:U'Y`7Rh^={bpE_T:qܶqH-~Ktv*ƏTc>Aԏp~ReYD +߯K~nA?9@f^W}s??AeZ$GxHBp9Zx19Dc޸YphqJP'ī$ج +WǰZ]SHr \\*~.$^h>?D5// _d[ +* +a'1ۤ X/F) <:#$+CyyjoL)z5䶌cbԣD4P(e9(Y1"vCQjN7wf݆Ϊ*;Z;yݸs;{" VvK>{,c8C?;Os( ;{L wz|-f/po9^|S*cCC?0xE4d@bncp'!kf68??#l,I퐭k rr:5ܵҙ^z;9-9dЄNmAPJ 5 ++"ʤ$$9=st58ϸ~oW]q5̜̿1X<[p=b'ex8+^#8މߙީ4Y}AuA,Ѽ=ս;>nϔMQn D y&Q3BbB^eAQʒHmYE .|:I@,eNɒTUZlDK*3V[X;3q{9F!0 +YH:iuR +8ZJXAS1Izv3V|;iExj䩡ID`}V; |b(;u\ Y2sE鳩V6b|sFlv!] W%aڇ/ cvȆ.|8dYCҶU w8\sU `LW#9P>wL@}?X^IJ;k?Wc[-Ulpb=W_qW\A؋HY51=td5dZ9݁\PViw+t)lK/"ٝka6!8z5R(#ׂ 䏕K7tqeGNdM$z +.6 /ebwa +re>.z`Br6TC7= ,E9 ḅ:83G G02AƋם!ri#!>ufc;UWUey Pw9UG +k)fAxi(ڶxKc)gk5?թ?< kqƴ+Y2՛]!1OW@ YCi[o8V)֪j"iѓSosfEHEFiO1X)Ӳ& cbQ+R,J10 3uE&`CS06ڤڤo|Q8R<ƥZDŋ۳<>ݘGt>Ϋg8smMKGFݠЯ=EXMsz[,^ӗ|F d";yK܍7lHncm[Z HFo"à0p;bic3*+;fL$$$hd@ b +HQv&LLL"[V5-*ʂD-@%Z:];UnMn-{޳2`OGsgγ8s cGܞѺ0Sn` w`L3A]z/pƔsz/G|7@pwGA0~At_!^Gv8[XF AEv@cf/3Cq<~0wsM G0zQrǣySCrd_~!t79C9xQ` <;;gK^_-v{wmb@όL 2.}g/h 6qY$6z;]Z^|`E!t4Р=ygM_=t AQhc\9Fhw㬺[ኤ eqJpֿr󶛞V߱Ih:(gќC*C:aW QH,MQJ"HקjakWZ jp* gc4ґ RAH+*:>="8%DPp1[ +c~ 4^m?H;6P?it-!(q~sɃ+gMUNke5R +hDuЀ}*,bL}]^xIG{Wx',f@ Iv)<t;V:s{RD㏚FaO-h>%Rxn\;OWo80Kֲe%nᄝ(%G,}\{b}w%Zj-l _>%t@ , |Gɐ*tm [Gӹ})!vd(fhH1ޅ/!efJл&ճEKH~ת OU$!:9ZNgXWn| ?v˱"5`WZltO҉׋)RcnPKLL>-dEh)7 +|XHs|Q1'n˜:-FűsH$yKVeXYddTsK!Վ'qʆ4˅aǍܕ9lϑ:uXPӳou[>;<X5L/8(U_`+4DJ᧰!k@5;Dkzi{5 i ^t&nĠܓ<#tǧ WaEccr`3?܉dN + +K9_rÜc[?)H ~',1`mxCr$XSayjQF0O!EEEоwE1~b\Y3M2 tijh^卜hX|_g œ34'Irc{H a˭W/x+ז2v'R qS^9^8}w7=muW7wĊS&S!rPIж/a`udɶIIgCXFŘU%A",XDJBD(煗A5hCudx*u +:RC!vb1gJa^`3z촇Pz{3;lQW.I[=&>1550c c)#s'ǝBp^e(I`<*y녦VEءŭ% )/:$8l"ɩ+(҃xh~>lu`U[lS#_L\rJ&5'5#'5C[$nuh.6QE%ܸP1:qx!.BwK8BI'̯ +Iؔb9:^5.@?Ioթ;̡U7̃WҹUqz:)܂8nk?&0XG V×߷nc2ers:w giI-R}ILNX]5I|'h0:SiCU |!=?]hW8Ã&lNw%.I.D$2*r +C?XDz*_Ӷˑۑ| koSK:&xլdzyIV#USJ!Qec* ِaZ63YI +z陬enWR^6՗In愊^{*d7@9,]Amiv,\&/INԗW`a OCĜW$R]0fA蒐s[ɲ/ #fN.l4gJGx"`-O?-I^I9۾'AJ(2O@@(yB(ĐɌ6Y^jPYxCOcVCt %ڦv][|:P~ӐwP}w}q ޔµOQ 38_ݝ +S4Pxץ}B?s}E +ӏ`?ciʵ7b .kv@#pϢY7wY.Bhm.g<5}>lo+ xc;; mȰ#8t=y' g ȐoT:,(eE})َڮd B(D,hb}04lFߥH`}VӰ%X2kuN0*# \kL mXj#7 `,e!vNL|u( ++aǿ]WCʕ|M88 X\:5^R|e:MM Qd=9;lssQp MW $%qO2_~dLm5d׌Ή$jՖ+q~ ˆp4\;YmcN<+5%7q]B4`z|qX~܌@cS(p0d)-sjGYS-9R$9͇l.-mTֳ}|pajv{'JDRie׶EW͒K!g +gޓHnwP\WBlq[r^%A&L\COfyKG@K3lsٺ*k/5V$D>-mb k$X{~ao wCD0J,"cE\ۼtQXĸ䩭9 Z9=(B. {xn8cTbmD !iOkN܈'9`)-8:)f_Hkc/͡aen"S + +!3yA;M` yt6.So-EP'΅ 0|pZr,aҒ$8RCY1c|&'9甞JJ<Ьh?Ar\Ae!=(v+d1 +,B2vp 2CYs+w<y0RT?UhLRn+'#0/d!|cdv6؄/8t.QtcĊ$+ԇTE).G9 Hڸm1Ÿ%)j$)]qY&Z[R\G$'Oh.M1U82m=,"oMg춡,5Aڀi'E=y4gڀ5Gg#?3 &ryd,\bo|6N+Xo)7=d3޲1Hh,:"k,"BhR⃷ Ru~tŇ0[T^<:JҲn5x!;JnFtfz;iڄ'JS> Yb'|\JRny1\;x ӬM28r$byh#w= iSܵ]ɗoܹ G\]O^u9Y D ~qPpę ƞ99tbQDrtXt"uȳ05X4]n) sv+A0؍U!+^ȬvHw,Ko(9i>I rS!Ԟ(vpKPG`s?.ic {; 43YB0>MZY0:$SKƮC(ή$]U B6$V<&md8={ިuXvI$^v5Bn`TΈ;W/iHnM99iڊ>;nP<4xrxM|QI]*m(q92i}$8ZZ$©JzĂ.Yzy &+P{9}05@9[g ~#;#0_#/J &hL] Tz>!MiF6Ad +s r%Rnr6) Sj@aPjă8TxW," n_M=lI%ύ),E_=:X%HQ;g=¦ YNuNR@:~F[GոTzJ^Jο:wD!{`]W:t{C)(.(J +ңf7ΊA'v=Δp4r4i a*(٠ @2 aSH'ǒ0,FtzayStx #jdzA}$"puR|)z9J6&PGġ,{)Ǫ9F7h{#ïwg\*:P;$HQ-FAo "μ*q~vȟsc7œi7jfX{<^מ0=p׾j2%7$ ^yG< kJ5E7Ӧ5$DavKWhO7Qi.|YoXI(O`AjTcL:ތ(+a2p[b6-F^p!ڳ&mZiްVlZ\=&*vHt2q&Gmߚ (HQ>:tsbNd>a[Kd&քJm,2Vf6EdL2Yf{ O&3Rm@gg[ xf M!1D╼Qݥ] NG $U͋0A_.B$ʹXN\I~SaGаgJåTJS];N4Kvr $:b57 (\&Md^urnҳ;u+zs͐˒lQ74G}b;{2%UkN̹pbCVp$&ON Hs`B=,Ȳ2qE* ~څ/)wVxE=psY@F)45H*K!U$jy|9dE + PÛs +ک_݅W! 7b +RilIkMm9u{ۏYw}=(6x +Wkب2|*[YPTXyhS|KszT.TTsخAcUP[\OI(7, +$ǪmxQe;*7&#o! U" &7>U6AmHNTgi7@X]XzW +XJ!I%y +"*TZ_GF\8]@XCFn>6lFq8?otzQd A, #@imY |`hA-~_K% :l+$Ty?BM,+,Lg '}q'{\r3x(㱽v?#hKH+<Ƞ7:7RQG'BMͣ{RCen@) +̚lZE2)Tؙ9W<揵4tA!KΥblw@E3Y!B(Ҳ4qT#n}azq<vDkk#?kĻr8)I>(mWFLKrCR(Y!7&QYcxpkMa|f|lc[Wb8]w19 )_rMo>!O<4Q (cC4Ba졪 ! =܃{N]cB1؊#gE,zM^,tpQYrup]`l.3j}t +0R\BɘohM<7CK[^!M$ 1gI;(=lK~D[80r>*|tomKvGpKtdϔ,ϙ- ?mۨE讥y))u{lBJs1["(|S GrŔ$tBiɋ,QB9daWҘdp C}IYBΕ[!NiVtH*CB2V%%]VS!^!Q˱vra;GU+\|',>Bi-k77M:9l4lӃt %[ 'HdqMf>b;%S6߷T,zP)/~Ud'^mw\ʴ6YT,Xٚ9uwT`mZ +|kw2jh1TSqp)^Ύ&b8[d* e{bTw.LitSM0˜Rޞ[$=Ǔ+dQVnl;) +&]I pКgLhY ە-Am쇚pمvI|53aj%XU\ 'd7ѪæGS1ITǡŜ5HG}HPsD\O7wȩ;wD< p Igkώf4|=Tt?45O2j믕 NT{г]EBݻEV>?*T/{B< +pHqц^d2|IyG O3iwXWDqz"7x!W>t>rts7ߏ;d=SaKF͠SE)>{&x}^LH$&ޤf5_5__s={%&cH}d| 4)u% n Max_0e0࿏LEV/==zAk:$R~7 X<XüĦ3%cmzMX v\\k55qy˅;BM󅴇0|S>;<@W` (|o=Y)0hZ)$Ǽb:Gfx}M !S]E@UVVm*ׂz&vB-LBD +uURrJO-'į!Eo4R_"TwG\lɑg}x6( cp¨ƝD17=YZv:olQn6社Zx,t2sz +x:Y4*p 0t=.4U2C5^R}eL8OQdcݎ*DE +Ê6GXRO޻c^ +B(,_=* YVO%lvuJWXhϫZ8MڇxMC{ *!}j bn~:[d׷+9!2A:S2]CFagcjYSS:&7P>6>[ ȢHENJ~A1>K}(W SPP(8Kv4:I!'G xJPY]d,0* 9D}欼HrJM{F5֥@)zJL,_ŦT͈ӄ:ژ"ERTPU/)WaBm8Uw)tXL8m<9H%Ig\Axrk 8)_r{<ű$5+ƺC!p(>ШgmOӚޑ5C]{QD^f"Hj-Zq +QwSIA^oR1rȱ.u~^XGת@OpGg[`ab6*2ksK1!#%ry^7"qc}JQ̉_lwcOWCyS'tnm)w)>s"0+Kڹ Hd߾^AD`UarBHi$bnɳ.X n.(ӑĊ@G5E̍ ճ^c{kB?nSϕUz=^;a(J|8p\r/qpS_Le$ř6n๮*nǃSo1=W){9^%=W Ap[Sxͺ9~!w=Wm~mA!/G SqW}aMi=6sۭҳi׾pQ#}dk$OtYJwH^BRufnOv!!l~DM t^z;8C>Mh(^̴M[VGtkO﴿[>L +w8~P7CEO:cO 붏kq_ h"lOѹM/مjrt+**=KGTp]Y ӻh_ޛOzQ+:EU),8I|##* :o`VJQ̄]ö)qi2y:Nhtrһp*МokK`݊R [SN&hA]Rk [z?efj-ZeZ[}0\*8LZ(BC3eKA9 e$? S*<`AYs) +n5#Plк1*[;ke" Ze /`lU醧Ho?+X3(U0͇a`~Ѯ`XRW6oΊ(MpZ> "9wLk]J)5fuTNkM>~3Qb  ('{!("a\ +_'ԯ#\CְR>by|_L_/*!nu8),lY%'#VWC9X(kEٶm۶m۶ͳm۶m۶m۷_2c53r~+c{|uԲP[I"Rź' |9Z*ĞqxEHVFTF1cˋ#P_kiʠ8?]IЍ/3Tz2{bU Ʀ*"Ֆ%Ç!cu[bj +rIrJ#"]/'WNyDfȧAP^S].Ke?qoE0'j!/at$YGxMh~ClRLM)qbiSUeWpũ7@Jo0o$泭TwNj#?꫐n$XۧkI2k 3m2P5j0Z[OűVIN;KJ`Lz ~fɸ"gK~. 9SkeE.;o+VSVdG3!#F-1*۾'@E.X'}^x{YX>ujx!^N> gׄ3Kr2%g,J`6Ӕ!F] +҆otJqtEN;rT!m%H/"[y$PE+.z'.mtW[s\cO{SCWÿ9ffcN7kܞ?F4fk_:g^ 8n%L] +LIʕ x # KFKf-e1JyD"_ :oHxWހ~oLwhS#ivuQaq@c\oXoz=.'hm.IO[*a]c`B&`"A׊D&M*h\ўo=mU}-O_.쀑@l3PҚ#5@&߸ W3\CX1Su뇠{t;5v۹|@Y,Ch,xH*r3ѾhINqE3z9TbRCD>ϨnvdNU mbs~mnTmmEvDQZБ!^汬Śe(J;irڦ(؊BMtO`F҆#bcٔĸ\mzG!4 Wŋ_22GbQCV1}MIK9 lQ4Eۑ 5Jq}sOgV9'\B9ԗ+cvUPƑ -}nyR2۴vLY|.J&L,jW\v-7~FAtbsE_Ѓ6N6johRI#jXCWf;+;;7+4VW-6IJBdtEK1(/:LHR󇭄܀P9l NH7FSMM +TgUX }ߔy xnN*9hk#9ѻfO}[*&㒝0"볬?dӝoPg1GlI(1ʯ譊&/Fc`/שh8(,'_ k!" II'梔1ƳV D02i.f[.dA_2]BsWpڴWpJ6n:AJ'Z=525nه5:AM3',(#XB)K,%.yQ5k& 6"QYYEǕ8&IVBɭ}I{5mF5i+TaQw,݃7 ei0D&ls@iOl[R4<.zs=&ݑX'ru@Hw#\>NmMKE9VGj4,'_3]5JZlHUȦ_s(Z5}q%*e;`Ɨ wj]U%(&"'Dw8G-g#g YDlؚp=KC";yHA;E;帰MJ`>u>jK5wfOMD7JzD콤gӐp++1fAffڷٱ o۟9  @ +8+89%ja B3㘃X@t+@Ri*Z/W1 +Zuvw(mQV|~8 ܄Xۋ 5(nS}<8Br-k`]G2Bxc]Yeh5o=-8x 0[w|7yAԑ#49Ud}%{Rlե}+T+2clHe<h*K#]&}֑7+ffj.*=+Jdy4Ԟ7k@a&iVy{<s..y1LP<=eD|. i4=lx5/oQ餄AM^teZ/Π+ALm56~0jZ_4MR(|mN (R!쪣ƹr3xP+q'zjF5*I+t>j*DKHO|ⱳ.?eAx5y?<FAdEŹކǁa+=63/2%i^5ڧ"$HAzfiϟa4mf:I)mM V4J̜ Ծ9=^4I#GPIq -SoRą7'r!9Y3(xkLy@ OMR. >acH0gi1kx)b ӊ ZuНn+x7Wcw YR| vzJDI yu +&qQmcuO)x>_ %񞮛vV[4u{6>[4۫-.%D \9q6hT!;Yy< 6W-p\|Kr5PuQ iLDoPݥDWF&]_IǰBO qf +"X ?_ zѱj$J/pJ&<;՜F ߮^PRїhCF j+IĠ*0s=1wF)۷0d$;p 9=,A +N5D}QISnKJ<"?X2vsx%?6q#wl  DuBs`JxzoJ>ߟ fG[aA' Y%Cc &j8cK<78~n6bhZ"ix싨~4$#㲜~s7+jkU=gSĺ1$̇\>_]1ҊpA}~ilZ T( ̷8rE2o%ꅆ*UDE?K\*]A.u4[` %1nk+("4+k<]+hj]/l\*UFBx:DJ+"n*zà9+NHG{yho}GL:f7>z !k2)puGV63f%J"ːypFYtye9 +;xd4\ԕhDGnA%4YUWTM +$DF8:edaF+9;ӋtmCU- Bn7cz-͖b.jm vxby,bvmlՌH. ++{\@֋x]2j}$Eެ4%B5DA3MMtnRU;rs'K;6juJt}.ɉ-">{L +Z[0,x5ej6(|&6Z۠=DY(ݎS!M?ܰv26ooA)1pWsx)ID-{\GuK{Gi# 005K36L5|uuipK_5t}GGrxqUQ1 |q\AU + |Aa*fGcqա}_]'oPŁ0CbQ+ *Լ|EԳdq @L3+_Q&;r\O +]41SV%"e +JZBBCDÖ +Fګ0/9bDDKL*2hO'C֊J@dΆy*~zOW9G.[:ֱYX' ~TŅqd@6$D&ƼoWiP9"UHM欉e?t1g:."G/Jx)^Zmn٩H$֬v)BdtuN9bF(ּ"(Uf$GI#ՏgWVZ'&%2y;וUkJσ6|28PpD%66W_ ^ Qie(\gqowj`7L5m?6$}+I0f]FSF5C1G3g;@]L] Ʀ)10̠HcV6<\VC,o [b!t`%y©*P%*2lK4ND(#W,:)lXhQ1auʤ +e\6iZѐދkzR8;w;Ec&&^IQPTX ]KY"#If,xFC*s4dޜ㠜v#"\ s 07^61Z 8dV9KW +?Ũp!C:\ë_rY"[`(~G] G)]T[;,шHc!~Y:5`3ǟk +͏; '4pHJ5bXm:vc- Č 9-kW.I3T5msB^a=6?˨7yViΧa&`{oQwZA V֥UD2̄]C]ׁ{\oᰖ*bԙoPwH3ٌюNV(#׳*/(((++(((-ܫ((WAPWBPւi%h^^xX,2xB {o92 Yr.  ]Q +U=u|!X_?$>b~nbZjmnRrhS?95R 1T(I+qo:'~kZ4VqaeMKܦl ?|ȯսrqꓨn>da8ns|(jsI0ܞbfӈ5+!P& !"#A2GE=]!Ud@2`&V:SF\U#彤F{\1BG]! +쩒I􊆧JhYh'eeZd#PpH}f#d-qokz\\i/v_~pR@>%.,iCD*Pk+j]u8/eS'?_up1u4p7k %bh,h? PձCyH, `N0'&L"6$iK9zTSCbkB$ἇ.ElOb 7kHUNy7r_l8iþ7"wH}e6L}1L}2hDo<LtP{ 7ҥ>*J4\:JG@C1 3IӮ!otѦ8ab.sDAd=³9%b/θ3HN_!4{eA'[KQ m#u쨓}j1Oc#Z,':%k i-1ܗ]$0.᯼A>$e£+ϔ +) ]-?5(u0 [Wq!Qݽ*6^(8RDR!1?SmӘUh:p(f` +5pt8,C7DCgR\%B9P|l#f:La႔N9dR= ,!]\-{_XDMg-0"dc=CN$̄;C#(0pMa_4˖I̳pJW3`x08caz>e9*k@!!$Ⱥ7% :88=>_aȲvEa<^Sjt֬3{Fvb uJ~W`D/ 74jiH<#\m%@x㌼ۃ8zf@wz?rg?jit>'<"olTࡩ^2)@V"ԺmX+z@w~f):2Gwu[ ڢꊽpg42mw̧iM !6;w$Wewq\r+K/62I_2sɭQ!/m(<òFi#ŝE->i kltt[lgT 7e/Օ'/9?l$<{r[ /p=s/eOdĘSE\2Wq~݊bj\|8WI+!D]bbO"~樽Not?%g{% OY_kk^茇+\#+:^$71 y,dLƓtD$6/g,#eٓ3(*v`H9C +y cI憸l~:cE5 + Fgn^ |vo9KBp>MĢj~+> H Q͝] +qCnFア8mvq游FQ_4dzr2 +y*)]ΐ@MBzF}E,,*!&g5.G +U 1 c~'s )%nOE[X Az +L11ͥnZs @B"fv9<3QaEVւRh(s1 wi\hk֬ŔjMo~gM t6m)a,S|?^lL8.h Of5xb~-3Esݼ_x`+?8(u(߀0&Y$c׫Sv=[F&2T+Ctn 1R勚ÔUw̵6=N47in eส1weÇÉ*#ސՀR ?Zg4qgŏZ +U:RG%p',Sf硇( (rRYQơ wUSCy՘tU"fǏ== KULR9֯0PFԀ3~NHs+\DQ{`w +lwr\a/%JXAao"6@)I:P- <> !-4Ǩ3fR3kt ⅕^q]It42 rq[Ic27dirW:=j 7 ()o'֊g>9t=hèZ&z< 7V0WJh4ƒjSH+T7r-GX'' f E^b޼eX% Xgݍ8(o5_I`%kYlRiKVcSqւ;׮g` y^6~Ck _)om>g[콅'(g}Vp~uÓ77v?H0 0J>c5a'eO.d,fY.WlC.-.Ctlgm捉6M7o^K~Lގ>e!&랩8Kch3_RKW5&Wa^WIw6-E' #7Zk~ CԞk8-plzZK&:I+T<+:.XB{Mͺ_E |HähPZ|Pl\ΐ3 EpWqJPk_$5aUwAtϿwCjp?As ?{UVgDrC8GLxk08m6fSg?I,eS$0^CI0٘0Ko2g?źpe[Ijzt|7} nZm|O^YA͏::_|%ur3X\(Bn]ʿ- n{+Z`/~,=;=}uHF7Ud֖a\Wl_(5 xIpYMfGTl)YRh"!(iPcDщۏIV0e#&Sv5Tz Ys>]q_1Kp;>12#S({,!c<"199U`Ѧ&?/@A5ܴe kb͗W*a[ސ5G? B졤`Ca2Yfa 2!Ju*dmp({8·"2F:!TokaX5YyO10 bƕ\[sDmHWԩ=o +ʊ8}xC&:ĿHO$trƸ!D3PJM|P)z"<䖮AT>.ݣ2RJ tp{AkZjpik4#dzǢY@y-4tWסuQq?6fyHBiuLKQl%UaXarqRL%K6Pz>ɹV:TҜ]SMGnXXSi[&]*ѥiNli]nɢZ7sO}?I_Avr!dz!S0gAG@eݰjܻ a5v/ smo!7uP(w=}d˔}/^qe >]4#DR%bA\>A0nqnҖ',U(FX@U 甾;d",a;tkMwnK4REMy-l`zVŊG-P[.f|hBPϒqxicq,yPFx٭ +h7f>;a##%REeY8xP t ?D.ܚ|_ 5]@Dԁ + &pyœ:!ÜC<``㋧v7Y%<߂N$|@[ʠ^`+% AK o')c* \ewK2nL +t_rugMɟ<ħ{D7 ;_p +Sٔ0C $k}DHk@aRa WT>c{aN:=O]S5pɫݶ@52_ڠ ua:|]^w%u.]Hܾ/Y3/>{Ow^p_ ?7~w_QjPg(ʪON ߉ RkSM,T"aGL7!f&%8[ogC}%JVDປE#֡2]I;_NW?"GB@ȂG&|P` =HQg3L2kXG~!5&S5tkE/7RjX'Yi"8hIZTS#Ͱ{RRZ=<7+nEEz*Xf~e$S ӲUJc FqfJC(a¹#:`{c( !~YZYwۃѴ"O=B$[ >RS8^=D4uQtn' wWGCa=Qk0eqdhڗuݘm}͎-;OokcAUiiuk:^X/ݘQ9tODZ?=IL)i"tIHX"7N ~,*0=f?32Q۟sxk\) iF-(ä$nQRX0Yl΃.s +LlD$6: )q+п nQ1;mFΏG2YU2ʼnW[*af:%V/\$ o+3M\R68+1I[J4l : U^l+$K]ۦh:j[3%\=.˝9-hF-0)%(PCg ?nԟ f4roK!_sX'+ +Ri\q/KkXmKpWxy9:'@dz}pPc4$Yp<(Q+үX1K, gI믺M 5` ٟkG}+0>mATaCM0_])S45(ME-v53I/40ʼn\aXڄ9c˔`BU\3cʼnrK=-IO/>x>ӿCN,:BV"ǮF': Ie+Jq e{tC7z9,Yf4WM-ٸ^`T2UaN uwsEi[A(d%TN:7EOUB]RݷR WW,vӸ=e#Xų?LoQ,$j\D)#J}pVcѾ$uVB w6=KcIÀg +%RJgCzȚH2b2r;9m@z=}ҹ6 )i%t@9:M[9N _+&-?t ^v˒OP_<oyz@f+B`ŎV8)<pqrx_XSїuSiڄ (h*|ѣO%GmK:NӠN~loE'!0'x=BH US[iR>hA}+9ax7|YVX-@Z`7Kвe(5OO29XNT@}Ǥz A|Œզ7sMobXO@\$T 2Եo5O^3Xa/ P(j6Dkϝϝ37A0P.~M wQ}2ZI"Ν/L֬T\wxvs$}cc$ZY%->^0oA' ]=!qt ɧ==w0{n\.$Ln8/>!JM1b=/; ь\Ah#(b$lt6qLdn&U~!i ag~<wg ЬmWz`]ƤQeV ;uF<* :B5;AuҦUy<,^ӭ:ͯ"rBD?ޟm'5Ԃw(oh`_qR@ M55+]^JpaÑ);Hۦ j9p?~I읨]郙]tlxvЄMPp1L?As;C AY=U'崣 J%/R_HVR\]pɎ;Tvd./ʏaJf^]G*NJpNbwANǦ͜X4?Y.V}$5jsRN 0V*ԍM/e^Gayx[@nd})/dOmML#& tfNSDHbJ!M4C)_@<(XXLV̻өοSy3=˱t[8P=Z6"~-/V?J;@ A D +v O#|7=NS%=J́o[M-|ljYQ@ 'YPR/\8;O)p<՟C+, g^*Ğoa82>{#R,T( qfVf%2LWh +oS 0ϩ\UMni&V5b9nE|QΖQq,%Òʌ㎎I.Uʄ-4eT"*RF!,BlJJ2t`5\\>SN#u Ʉj)jՉ.MkQqmeqltH#TKB/ ,Y"G0RSIg^%bƫrNAٰR+nb̫]}Mt &%;"gu! PE*۶z*K[!ηikRӅymS~GFٰthHS5~;7NF5 ܺiϐpH4QF_+%c'K&lUOWF Y'3\ # VEnc$y36׊TzDQJ]}S^~A:+x{*pwC5/QO_*W/٥C8̟0W5İWްq zst:Nnj/7& 7GUr*|?E;t%X;7 鶖oo4&WK&D޹ՠǐ촩Ab'!PYw/FC<&g+Iˊ:H`ځw+N}9 @_w.&ͅyd8r-/IǠfPEE4{sÊ[r-M'xtmͱNˍ:m +vE誖:|n^ްkԻ)ظ(~yf A}Y)Zu3Y)qd+1 9:Ph@4MwȺAfZ;eXt`*__ mؓ&_8 x6O]ynTx/56e,v2shcyuRB`jx˰!Q3. 6 +ǃi V&Þ( gܚX BK2KBt`fɋY6`)g6hτվd;&J,k|0yNMt -+#?\VdZS %n1pӅ`F_`[fIqpPcci% ew ғ{#*,C6Xđh0Jw~ha?H~^x4p1?BWo0eާQ(ا/B6 ՞QڳSӇm0k.; ;Nl-7Sӷ(nuU:UM qı3f  {nPЊBm Gv> ҭ`(HSy)ԉϦb<!> O؈`tҭǁ$ ᔫ n 2+G'˃*,Bs11;٧dY~e[!,5)k ++)Y0L3,v$3^/XJ.h^, bMfzs7/'gVKr11/ʚ_+""y+qH6ArX~ݐ<8^ X1j"3I9hҋ&gn 'A(?{sm*1iR.5lM˃Tc͗uk xFo{`.A@a~8#SIwԥl>nVj;?X'l̼[*b{%]6!)JrVF H W0TCDQA&r%/lL+ˆ -9+mu qF;C[#&w~Ьtaog6O)f  P-0})b8y"V_N[9H9܀=2lQc1tZl.+*XF\;q6h->g|^ =v?+Ztб@3WȘ5'@ SWs[UO I WPCP8ri#¥/x2`10Zxu}c-'Άo/^_uS3ϵ'RjN:50Gi)\Mw r^B "Lm;ni5HASh: 9dY(WZfYA=Fv:ZT >b['3ئPyrrnYFLH.#DSO 5W(*m}7OhtGQqV,1rfV>>/ja{hS%aZs4N[h[/:eS qQV Tydwa-xOQn{BVJV꣢ +nR'nuOHIGu/8:Xxʸ< F* +N;V+ XbPvDƒp~uL3S5).m +IG C^e|uFl8Sϥ!ڲ!G$ ɋޑ jigcI[}یawcrn=ζlOyr.Ɋ6DFYRmy"rab3 EVA:%pJ#`v4w|0ldBUfiz/_NMdsr OިoIF@ %S$9h 9ϸy d#sYy Ni8WTsޯj0=}%т +HT.Tra Ûntq6oA&8mH-Ed_nyo{=WpgeV# +r^w:Ta!*hׂ Ȃ"تp.<&&v΀Dٲ{ݸfQB@Jb8+=#4;Ը͝32ʶiJX]GAmiVAː5~6FݲK﫱fho J#&'o5y͝'- -p-ΣW~ОP{׀/Oh}';X!  uQ~|cwFRFS]]x1>7Y5g5~9^@P",) Tt ϲVzKVGpFlmZ,f#R sĿ{fw@ESz@!%"?BK@B/}h߆۰I$. YJfqkMG1g҉%Ј!XIemo]%wCJE0=ŽJ[\ so 44F:o S}}롰G*\ߴ@wro.{88`"|"sP00~Z94[#))C[0ͶAtfvA)|Y|) +4gSuuH1ARuڒⁿˏIﱁ"ؘߚk]NĜ$-5!5R" W{'`B-Ɇthi -TSXqjc31s6BZ᳷ Yi~|XVTVV~X`rU#lG*nF 'l F$V6|sNn̩ 8'Xy#iP5FTWloWED4賣ɮJL.ԈXk/݁UW.#|WcW^`?;YYڦOsDh~[U_,<@OWm Bm~C9JMB4Xlfϸ PW[~E1O7YmA| .,B'&m4p&r:TVg|Yҷ0G{%UW½%ZCAEwWy$QV* {"Y!IYo2:Pa7naܞ*G#jLA#1RF_3Lz%LiD32;>4W8dPHi3C(0]}@R'ݐ.Ai֐>K4 RqHYM<}h4_BRJ痹F_5uΉCj[I<p=ezJ&lmО9Nm=D5j!UHc|n2 3pm0]S3eFaDLfT6)cSLʜ;ѡqzƭ69ѥuG +kg]@;֘p\Ld, Qت(C ҝ3%[=uC2YD8 +J\Bw\o[m[) gz =u|fMVʞT7/yM=!.>@ T t;VjT+i㎠zPDsV. +FĮвT)dZY!؛ uCMY|ۙ3/#N1hf[DSɼTwYo6oG."ܢҩyKT`l3F-oٲSQ ŸQ@0xз~s<26P8a(pvh>ߣ}r4ѣ%,ń-0{d'S^Gvc>Gw> +, ҅#$ZRxrAgy-0wYB 32WiGCs HY!Zж@hryF5W+l£ RtN?{UI vW!ĴIEaPPO8SX_36vY:"̹w4VUX]Vs + c.g̬ogԸjNO1sX2>>(Q3-ħW:sm ' RѮЍ9! =&pD~[W* b\~Bz?9:z;#ʞ`hLg^< WK+G)ei<_7#g\$q&bKq8܅)AMseǬJQo;dfg6=m-RW9UCgymZ6g +ae`2A[a"ʑ{ey̎G3\|/|Pkg9B֎t~ yss揲3ܿv +?/1pW20u@ #gA vpAxZII|2ϧ߁F١1czعL?xt fWԅ : 2v\al>Kht]R 8y!XNiqve=m!kʞ$Á2qSOwⴋ;YǃM'ȢnÅ_ 7Wh$SnrJ4/031hBKe;¦|{l~̋%hVh #.6o!PQes/ݥ&r<95JpMu-~)j 9Z͌_N H,E9 a%#Q鄴MRkCe=PԏVMܞL6 :ܔ⚼&qԒS"kRT$̔Qs'ꦪem=4s9@+ f["!!!ȊE4 H>*0rN.PAL'el0IZDkRkP7@ś-Vb^ʈ#` {@NZ+ܜ;EGPglI|TV&%fK! F2|HŜ[LJa GmAku@_Otn 8]#k eTiE 6bNm%aG~vCKdt&ofG_EL2#͘O;* YerY LiOV"ݥ43FS CPltan4԰DbMK'fKТ~#Wu)# &B])M͎tZ; }3𷫮ÿz%8ZdUXX5n*dξNAV ԩ.gˠYU œ]yCPy&qy -V(.;BKTˎ5΃* Po5r #o=}̀8ţS?oެZZ*dofxIݞf F(MXָIp=(1d܁kߐ bUx~|w5!D |#rQF) * |ɡ~%{Z _DJwR_QzTo09)[ s)`ލQ;S)Ocș2͒f.MI%e*K/k#9e+Q )/%3W#J'>„Ch K[ +,][ʿAD{Q;]֊mT{ME +͆=az :ݷ?9 cy16EnfEoמApʉkU{LmNhF>'[6=yKן2L8!~!Ȥkz"(6EvBul~o^Vy3YE 砑*rs@eRSoxxF۴n>.:Ɑm9Mb'h`D]B$$Y0akJf:+$©>͙!x"ݻO|+װ;.&Xپ٣$cS] >զpt)"1bPX׻!0W~9 + ;%&EP?% FZEs\Q)psI`6Cbv\KwD Wi2GiM5L ?R$m&LO;QehDKFf_O +'&bg5-?2 c7^pƱq̈"*318"Nἐ/}PVv p%zـT3Rv q$ + +#0D&ŬWcv/۴WeLF |hS* C&~WjHC;;zF8m(;O/@{7 'mLd'ĘMpzFMCf[6! 6!ӧR#أHѲ7.s>Rĭ=>N>d5-ث#Mh G o&qғ&gB-UDE[p]!l[.~83 %36d=2L]7n;LxM|_Z>xɀ!o99)ALfjO+BhMl%RAc1'ExAP2NVb&&vߗ5|:|wnr d%J4GAmv>- ޒ뼠vȊE{D[)ʗu7[cdKQUzw\?8_\ܮlte =L? 4 o~fz@'e.Ƅ4&kxdMEýdG5(Ԑ3BV6)"".zFa:5p dKnDx;vxp4ɮKJ +K0jK!D=&],q^ -w`~H +iXW -h!Kl=u9T+#A:Yɠ"= :Lt1^ۦN[9}G AGOͫV:4;03=\]I3/9c*#JlZLa3w61>E#cr@]E̝35s1r00:r-tD2$wpO#4" tSOsi+)yj/>}Ab$aەok{{_z&"h*TQK{Th@7^x VS>qK$AMM q`0Es\xG/R aУ`/u33}gl ;CVU"`=@:}>3X픬JEvĭbyS %;/a9& $}%*ɶ38̉AVNYqJ+ҍ9zϥX(*J<d^0p(qnnbnjnK6bs/=IMiUR3gg +F/8FCD}nR~j Ϋ, ;|X1,kTv4ܙ^y"$S3PX]F;SNXw#pخ{Mg8]߼ȴM>֤i{p? +QSFdYt*S!B#F}=J%F9% #D剉QI71Q]|! @Jp3g΃XؑXaJczVU>d:}d9̥zG\J@qz(9b޴1\'ڴF*d1ӫ=ڿyU!̀E1QS@. ْ( p'*k5[a\l[dUD>GH.kD,xAAi!s^.stFƲ4SU0uTA5XUbGpP͸DW̝(bA"=:$ Բ.R۴TjE7yHtЗ*YكMbJM[$ObW6V. rq +c=2;]׌ +ǎk{:wѹ`]]Lŝ{4>4s]Œ'vJL(,,[C[:Oaavn)kcQbֱJH~1eOțx(ÊG ܷthwa$ +} Z^ӈhRCjQ;z 58˕ɵP}IRDslEvBp 0ec~!(\du G-(6%xg,x$朞yt&kN03@7Eo=Sc _1|bĺ~F&-Mrk)?j ze8j`?nj8Ǽ6O~"K'NMR1]+,U/g ffiNOj:jN u]* rX)I! 1)<a&sOϋP:2FGR0 FqѻnM Ezw,|r%ͷs,{ws+)=!=Z,>+ +M]$s|žlN |&bϓDŽ4 K +(3Y\sBdH[A -E Sqbi#[G,7ElЫN`I*h*yg(x`RE$9[]B=vLcX_4$V4Ӗ?tlk%ܜYZ^ +bqW: K\Z/˄Obc%̋zi7Un ʋ4; D@|^30@`/P,){. JE=,R&ϙut=mҬ<6h%2'^~.wRaVƖY 7fH6Ox +q31F{Vl&_ +Ge+ +;qQ?v$rqUȡj&X}sh? #I*SU8i.TSNӕA||l{rfʻ|@>jQNx-q|\-tdV|ZY>6Gr#5g)>y ?nCf/7R>Q-1S-TzfRjW%T(Ƅ`>$xr+>H +`~)9|<6ȝXƠ{G9S~&W+tPZ),šIOpKPYl-eQC@汼.uQ]0wAU=0a16}Yv&L@goFOe_Kx,JmR|tf DK @7{P SzM(Z6,GJ +Ġ-mi]J7O4ƒCeTK +{?GëB*zi[z.JGmE]LU<˓ +6HLI1yOV@|#HM2Im\ȼp*&ĶaWp^W)@?2$k 2aqguC'AYks` ɼT7я@Efƒ% 9Q'i8Q# +X QW^-օm<"7jCo}Ea(oa1@b +9G(C9HÒLJTXoą} w /h^a ^"Q =xxbύ$?Z|$xVN=rŴ0Y3!h~ſpL?"|ixKإq("zjެ(DxVn(_L]2dD%ETE>~VL{"Fxٛ"q1{#';+`ABsyĄl!0x[N?'iFs[^1W~S6ݼzN}^ +[Ht)D=/}̻ݠcNضE@]ɛ[&oyS")>gɐ)7's~HVkq?('ED2cm2M|7=:|ydp2<ѽ) TeQݘ+ԭ- YS^OXC.L Ƶ()? fЇ'x<Ѯ!iiɊᢼ#32ñ_;TcѽTR&/ză2?],ejڎIP‘yk,kBf 27ĢvlǢ:Au?~<r5T{9q8FA%7P8{5daAŪ^/:2Bh*Eՙs!^KNA=Zfp +;3S@` +6 2N4iV ;p /1@?R; =6 ڢF +};0U)\lpBcC>~5ug'irE)6Z=]I7mPhZт.4e} d _="T +fyaXLv.yUd,5vP`RmRop gH-])ks0㚌 (= !NEy^E63=vH:gv +!RJ][-] .ﻊMse5 I{ tҫ8|X7O20el2}p~LWGD|YƜ#k6D);{״fx[ 0 O +@zZNJχvץډZ"#cz(0xN<6dM dbɫ-2ٺB' +2&&p=!3IPK2iLT F7M))Z@H,V044dC CaO x1O\ۅN\[6-'V3|f6+uڜ03v؀]Z2hVNOpT5%lZ3G;kpbSZṼޑi65 +1MRU:͋ JYsVM=xp=,[2ONpwẟo8s9cUkVȃtQ~XnD J`\YSu STQZQc[U:UpVޡ)R`7'Bgi--1ILER 87ruhؙAO +$BH3%5OD"`erqD@fXn_03S'X`W㖦pH57pB8KJ]A* +LQD+>i7w֒b+#1峒)?P4An6*H#s$(@#d.NBUabRj2rR#+[X9Us1B?Q<\ib*1~t1+q=xH@ikG0: u~_!ǚx/%0\S:lW m>s>0bj-zrַ|%Cj +&73Fr|2NZao}3K3q30˹/,<fwX7ʘS(k_cL#ߩ`u9k:;>`( 7oA~yin,m+y~$ىt8ø $ %'P1 :F}aH1wCŽh{&(H. +GUJ#z ͊H0? ۤ+ء>?lmQL|"oP>xT5xy4B);%F!aNo_ܒ3`J! YQ4()vIbP!+Q8vNDĶp~43?QOP]@TNӜOdže/2iB]zi0d{ok`O /؎i7j xaWQE" ߞ,>Q'o\a3B6 *]^yF]9Wq$xFt'1%&=%Zz6z>a zs S~gK*ueۤ|8;Ȍ Ac.JwOsWq*eawBWlBi)ƒCMA= +sr"P BtrS*BZbrͯ|j+jݬv]xxѮ>6Or"w.d0;K3;K$i4& +h@HLLJtq$=,vކŸ Qω5'ѹdVNyC0PȒL{wR;O/ʯTX7e- 4AB*| J.Ǣ94b^RhB~b\$y-2 +9UH~ߴ6uAXa`6YN+yʲ|LW$-bH_re>M%I#$=EX/$դ2Eׂ ꋱTKzO+Vaa4?Q~>Yz5*T5c0utK樹)|5q7ծ(ݱ#6w,qGrzmzKtwu;d1gڃԃ }ڛqa;Dq76 ?kۃ7n aOt蛫ooo2 kfWߨ#/X +nm]2+Y}\t,E"l%Dpl2#r>WEr+eWWOEGۥbsgLX"4RK}9}`!]"2. CtߐnlRvA 0n1~!U1a7X'9oO9oO(yRxR@}4Z4ҽRΌFH_QrE^L,Ѕez6l|4ɿYX_0.Ͼg,8rCNʼѨH w*(`)x +PI:_z14~t6xR.R9PK0&::ʕ׫pp23D؂5iN^ǎo)@7wi8 ax#-!HlmĨhtod:HG5hmM`ˆ۹0ts DQ)"@>@4õ~Ǯ$z\yU[^0ZcJ'S*r,b\ba)8H UT! 1-tš|Rc)GhCYms07CxHM&[siܙ#t.C*RSsy^-.2olLΒ[%[֮Ly''4Q:(#lVفOMgʦ8WiVBBUOZEֲ}#NEK'{nyhVLy$u]`]{b,[7x^K*իc\s -7){ٞ/q~R7ڃYE͑EBQޮ]<{pO41@Gg]_Z rVАGo'jܰ_* fXJۗ ^ }a[3䟌/+'-78rNN2󠡞N2yl{@/ JLoOiu i[ޔK-8݊#ڜZca6ېҮŗ̑Vr,t3)TUOH U/)w9{skG+k]!/:nJX&$w$KUaD*75.9l^o}` n̆8h06$,SX85JD2 jRjG8H5Fy-ȯcz8Fy +5eݵ: N|wӞL=|P+,iRlZg?'kknuuݠ#zet1aM"n'!ͪ!B1xK +;Ǥaߚ; E\шse(tTPurYҙ`hS Ui EHXmu+MG(>HϘȩ?_q}Iͩ"UÁͅ"q2goN~3(XLU4<0wD5àterӚFDe.gxx0ko`Mx&z:t^*Pva a+\ \S]בRDxwpq@QuJC{Tk&!ЄieJfU(VUЯd,݈ 'QuNZ7_63}n6ε|к~qC!Ml((l%1Nwc튵v.2roEj{xmUDT߳u7"(ojbZ}W <ǧJdmxTMv~+ʻ zZrzܘYgyD /pΐ[!nyܝr +6m9MbҔ&;I֜\L閜_L+DHw.V bn4ꧩ3?aԈD'gt % +0Rks<-tWWLJg|P_&'r =v8X3lL Wmrs]N^7,#q.RE9X=~h[@d [;&ц2VoHiKof 19Gc&lh%{q/i+߳y+_muM}0;Bv𓋷ӑTy.>kkY|&e^ .<1/g6BK#2>j3Q f,Q ֑%?1Јd)cN +XkV~##ׯ}a|s1{[kQix#lޘoPdw*(wI0nSjs<;@CY#nw x _Pfw<=o9CPw]Ahfxb TB>r@&]ԑ%bMS; q {,hdЪlj6ۨl޸UT9)XelAcW54qL0[:7c Fl@f- = DB])"/XΎ}K +9T= w 4)W/o3 o .HRl0^i@0$su/,K`|yu.'ǗYRs~RŢ,*DS忑;=R|Rl"G 3d"`%6{q;w|qbGY 0yYyFttܣ ^[ͱfZSdC,_$e oü}U͌A!EP5 ό+SS@&-sjHpp"1E9%L1KWO_;Fk|= MGZkY[}VZlۤC!㌟4xZg>:gWV/Fg9La8!=4 I!Yel"Lؙw(* +~wpdb-xWYCa@BTf CQr}͗EC DYj(Uj +|ɋ/oFJMzJ="kYYF~]C%K +ݾ&.%EaVÝshڢ;8dI[fSg*Fj +]㘠;WӓEFL1j.:08E SCh$b3)_)N:SO8K䛕Ef w% 4?YpV7L:*ƸزR+rmDsK7W0W QnHU!gIv~D(M&p_aEnojƦV֑]O{),"番GAV-\{ZW1}"V-+fY~h4,Kn,Rk Q oо9r]x_h?_ղXk>NG!Z)D}eа8{a]s9VSQ~i@ +55]Á sӎx!$aQ [`[d )[ׂVf <ӱ7Qoګ>A?`ݺ/q<#(#a#[v] #b(,c6q\:Cq.Hx +u)=;e~d9"j@_{X SV~RrJ%i0z∪LE2l ps qv̼"`giP Uh{ Ty P+S4RMrTe9> ~@fhͅKpE-C/yjOW>Dg+eכեt3EJR69Ѭ jl2["?}իw|jfuW^XÌaay 737;{fB)H=ڦ#_~j\/HBSI >Ɏc$@ x1D([/e d. UƦczYdC )= .GG|v Pc`=g͏61mMzCsuYp\gR𝺤r MS{:W3q4Banx>!l jb7p/lj1Rd= =H+ =;.MlX4uF%#*5P{X&`w'[䣶D &պnbv+{u֫Uwt~^k;ς6_eӽ# 'gG[ {ؚ!ݓ}z:O@II.T IIⶼdlD"(EQݐPR[̗/jW#h-˛N#VBOrN8p[lU3`%٨u$* KZ<ju$7Uo^sEǻ1ƿ7|BB]+ѯRdƉ%Tt]bϫtț>*%.v_[?-s /rmji~eq7$s +$yjHu{_P9:)5eKR=w5F,UI44P05t?JJlGdclQA܄kDe7|+4Y0"OkIc*g"D+cch$,EKhe0.8`^&)FuY`*0r.pQG.#> [MLN;uiVM)GZئTM)}6 W=3Elv$4ܷI@cY gD +H*50bY/f\aQYceIJ ~ǽܲ;y/ 2a - eXl37ǓX9w+CIuMج˯Rr$K߲IGbN X @plg{̡ÛbF#G3_ $1 +,<•㶏2䝗< p,3 ݦ:rtad)٬9,HR3L=Z=iL%SFkGIJ5QY vBu>uc¢\:l0* ÍrW& eqRDDj< R2~sM Eɓ,e?ՊlM?_vQE(֠0MT֡qpnז}Z^uwG9M/ڐdF%{ETYϩr-Xܚ +0?4z0Kx5TʓqE*`u>b^kQxl$Yf:y,7ZZN)sn3{p8: ֤E~I?\Yչpr&3 #u;4ZC(}Cm:B8َI +i 77peGqھR6Fw8=0)wUJZ%uƶ=P_e7z/@qۿ5Ub3(yG-Ƿ7:}eQd^rK_9ߴ.N9 qB?:ʌoǧ֤(P_l{T'2[p34lKǠbr,L!\癕^! ik"#b7O9S/2w6C1kl.Z3QNGזNK:cJ9,ETQwDJ] 7Ȭ4 ř޿4]W0diWQ,& !N"qS8R0$IPTфNiaM2'2 T!Q{ISx=t&]r Xtp"'0XSz0P2So\dcl2cye 8ɥNN 6y1pJ`a4p:mSH5 +yڬ-dt.BUՈS_#gB%5,Œ} Ӄ-&_K/` -)x:5JKJ/=6 3e2!.Xs|FFnE BEǞ$2Cp+sye2!يEyNlS ,u{9(eÖIkMr(S,y (1id[}Q,E7""&)g1Z0BLV"Ѭ4\RI[x|UJ*7R Ecb'T{qe0O M\\D;"ٌ&x + +jDo$Ѕk}jzU̽iA WMbrnC5 MM}R en /C*k3\NNnc36F nFfCMnZ9i1 bI^*Pͯ%3ˮ'%&BZgn׼Tg1HFTn|VhߛXif|~cg? .;6́',,x"LjuLkg!:gK'k&>E*VOQluL4]TM\vcҧSv+spZK-hR111ge`:`: `sT(s*@jʚLuuhΰg!uICxu lsb ͉7캅^E;w1vea-"@M!sqDtA(g8(e<4gb犞95Eg*_\bvcG6;rgagxbOx>g|?#M >m=GOz'Ovyvo)ק^;2_XcC~'kzu.]h4Sh䷱AS7 G\tt$r?jORi<2t3p{6{NJv'.X V}_U2#?5 }#]Mz#ʒώL;tݒҧǖ擹@8?[ՠTſ7T77Rp/kxC;b5""N۠c[/W0Qc($- q5^}u9Mkc:-^:q8,k*݈JK תW023  24c/V W%f$58qX U_ԅ#VL>܃ZwQ)6{[ +6}}pΦ-"ŧI~O;"]:=b@m~ +m]Tc ]W'|{vK3w5jp]^5vbѱ= zS2AٹUuoB{ ayy9iO &EfF sb[)͍XX-gLyi֧Jǒiܺ1JHX8b :#$=XGkˤ:%:n=O:m3zF>ѐ=4T#pGK!H c~79}tDGF[|ě~f~⋭== +k&#~'2ޚA +|} ;e?vl ݓk=Fn]νpdsTz* ōg"4FN^c %iҠNF:0-{a^ :KG"g/^ՠ +MQoJqT_wfcɖRD!tqϱKa'dj=?B\ SY&N&ݖsQ3S3Ű[xwƇHcU[{`:0mIb3ZbOslpmcy68ֳq^ 9j 2[j8iͦrF?u[~p Iww^AȨ־Ӭq~Mb,)p Fl1$3vRU;K>͡] [qiG"#c,-:wūL<9٣^) 3Vou#>ߊ+uqU +8ѵY!XśBۨQ;Z~āB-:K-XcHZ|y~Wl =܆=f3 +{G?#eӇQ'9&X+dAkFQH Eڀz?ܑPB>9/}q`!#E=l3[vLcT[p ]ɴ'%4Y0՜(TM=pi0~1\Z>/g̕-)Ę}ĵh}]{bRsFưupU3sc}}k q+1({8d4cfm%kߘ)9ھn +lh^v+/qXq5h 8fD{0|(>u~ǐ_ů'!>s3~-q2)^7 +b**ui6lIҮޗu_V7'Bq33z EPjw߾7`wrӨFuTm٘z8q8lsu!1sYnO^yygn4꺺r8AfF]yZzX6wCz̚%my `D4vugD]r'fx>Q *(4L@(-I?KV)r8"W^ +؊}qTV5Ƹ99-"&83.[RFFOؓRni$JYqks5W(+S$TcNX&K1B̀H/EbPb7 CQ? Q6&u$N9CB!$dBy +L~㺗=}JΈ ,IC%q/G6lhgBOL-mrT#q־{"y,:lMg2qk&\@47~ȬIa]4zgP8ʼQ cc'Q&Dr1^wZĭcHx}s=f! L& +&d5т[ZҤfs-,~,%ÌR[JGŶp[WZI[k"`@*+ۺnK;Ѻ;S:yBTV}6<+cBRJxg.&epJpG` ]h4vJҋ"0H'Lc̼t%-f9320B|K҉ogrE +8R^BnV:K~@C,UyOЖ:=XVjPrk"c)@?+0A8{PyAv}^e2 +#xSC| {xq"rፀsF 7Oc1OeĤpI<.F2{ sfy?m'F7Ύ +Y(Jsז.8H1AMr5Y<' FdMexОql{Ql`_+wQ ?`SB | 5-)A]hl8|Q%]XCqc\Ntv˼-:cvxazMa,QB"p>vI24J&˵FBN?N$K巛PV=Fbu2_  +u#=U6*= +IW:tS52G ?T -yJDO(&eFuFJMa*k"-M\A42M!x\hlX=v_$=TSX?Ȑ"l+5k6e/} EM#uB&sekdoY7 TC0Am4r(.|-秚J*D/.&Mfϴ JP`xLmо4s}I ٫3@2NxqcjÝhY1NN1 }bta#BvQ#I^;"Swt5 +4btEn[ڞR<z53sk9I-v=I!i$kDl:QZ_=$hGCf= n}lt j4öwWE gGB*+ق<35,#]aODPbLDp29N \dx3yPsG+HQV kP );LDd;|cőAjʇ3rf2#4 CߪW57Dɤd/ҪN-qXey4S_z,ӳLv,)tY8aH7ːlq ۥR{ҔѷBX8Sx5` = U!m ++L]1YުǐTz99U=YHRRvR$Iz 2#ʱ*BgEXjFb)q9"RU^+✥ tOSrfŬTcԩ@Wؖ[I%+:@N}qudeN;&.{ +.yM,:#zF-gSrk&u4+B@^u8W;d!S:FBٲQ~utN"`hru.ěwyt sL=A&<}qҬB8cΘ2/ʕEvŜMj.gR٥ruSfbeE ïH7}M7S֍DY5jaz$/aAs*Rr͘jt6D:YҘ3zQ߭BlBQ*1^sjg߿F(w7--ܼ/ݖN`R,C/zǾG#N\(+H:(&39WxuDAza9SpJ,hnl(a޲|euY `PCT9ӃZ +'>;.+w]!eW˜xE:wb+@5Ցtu1PijIwSI{]5|b(mBۢB*VGI~08GrFh >E*$`;6L_O0$Ur1֛#ž)YeEB_2vF^|>ĸnL_Roi [,+a6 +úTMJ˸py[!QEarx!*1(Z6 + + +qA]U=&+'W)g~u9tcȦ;jQ{)~3gvz;d{Ӈ<MtYԂʼnK%T dh$uP%@\Me] f._oM|ھ ]Gwګ`[Prw~ ͩ ۯޠ$%瀴U?MIIߎ-К(]kbC}f8Әu+q yl;BEGYvT^e_lڊ +UlO`ٚ +ŭCSl MT&;?ESbCz]To i %Gkr;z;KxoHuVG/ZUD? +*[oduC,suE(fd96!TCh݂{OmVI +z?eK] @ xLm4##ed;ݶnq7~nVaBՖgj3ۣ^t燲3Ԕ: ߥHB~zxT*~ѶLu.XT*OgQ-DmYc:P8ruiRHj%?oztijđ2x0|dKv04:K0icKXܮ'YTnbrxn3ڐMTˏ=\9d26Z*eN~9[ ?r$'M }MD2b V項C̏,Y6jVuS̻ qNfװL<,-M3x:e^A|[} XHYɒ +۴yV1O( 3MH#8)̋3[NaZv'c~_Xtc"]"#$k;q˻@ +N[@#cBJa8XS ߬f )ڟB"մܱ[p;MiJs5͏A5T}a@ir.N2K6/9;}Pqp*dSY _ 9OLڙo^`&V&:ΈWBgq4-UW,sջ6d +a}7豛H!Z-lTY Ʀ<8 7˂;*n7BXYg2BKtق4Cjcc2H#4[ApJ@ O@<U;]({ 45뚞x53] cML_`VwP 7.4(Y%#͚;(Ch`;.حEoZ9Px_ޙ`PS];S z<,6kse!BBTՋ$7vLåoEGGJCT?Na:sN ^ǧ2(0FƥVk޳*8.3hQfH: +9Jˤs[LAUj qlRIL4Ø~S8If_Rj7HkafQ18sŴl(LsUCWu쏊A#ie vv$ê8*($4qqMX H +(@HjJ <n>ލOmM(L*&"|Bk}U5T)sV1:_v_vr_A"*mK:Vh? (?q^ +%0앇ulQ_xF|*o݊F!Hb\#Apb>rX+1LE /sZ0k\Kh0bs wڬ`"'8* O4g˗gܯGn<[ܶYxZЁù]rn;#u-6Y:s09b|MxΓ*WSqHq|1QwP`;= +q( 0RɩikrRF e(&$h& oܢaNྎ1~#2N]d6Pփ5@ Aӥ1T(Uʁ>T:3}( ba1Tg!ٷR;Z/QXd=jͮ@dO!QBÍh>7vRqYq}AฌרfJ#.2htFlj*?6c>rs~B.D6W6v%2 IzTuwy>7(7~D읮!r'GMH,p@:vSPW{H]S F>'OpͲ=.(,h;=I~swEoXUO({uug!kTkBX Pgz CgpQA1'.4Th|4H>LMu1e+e=5 n <AiMJmey,(}3E4KO~HRiZsXVCx4XSx +6WSxKZQUS3=a+%#G],`}/ꢕ0,R*X6Y!H\9Cȝ{{M!U@!1j@ 4%SI%۾7&cy=/g=ѥGu,Hc/(29V2uJzt:: ,iիD#U,> e hL1ey7$# e_&':Loju23%uv@?M]gWÓ?n'̛>fj3y Sp%c< ))7AIMuIJ&4. >n?ѷxh=&fo˾7ݡHaɣی3+~ ;7 Ȥ+rBWewh'/a(WXQ]q4J +̴TYyR! βkEiiweN&P6EF|t~Bt>ZH +\UdQdsL Kkkk gc2Q{Ԣl:$>TYW@ʕ8DK(VE"MLXCFZMpL +>t&}R[syir8{hlSi,Ul?3bX?46)s#M Si_pX*ڀKF/u9H +QNOXlM Y"d%/Pljm щD0ŀl+1Q挝| IꚊ!cXm22BB } 6>\@ʪI*~$,˚JIқ +ĒT^hǂ1v0jF5œ=ZU +GjFD!ՕN4ZAV-xZIjɽfّPXp>a&=\r}5x +ݞs &M-2~-3̽9T(8}kk{YfeSDVӁ%JE 6>4PVP!\!Q!8㭞7Z>1͌ylfbB#_@jLooױQ吼xHH,E؄;,9](#Q]-<]W%@T?8NP;b;= Pn[v7O5Xש+#;a~ZЅqXK} +1ܔ#W.B+_(^k]|Kf9GQ]{{^jh+_)Cd/K'dC]]8 NsƬiĺϳo"kpÌ-һїkRFٓLȾ?Y6 pg")+Mq-ƔPP /ɗrQq*$JL-׌뜂o)1VB[/jhZRo\x.8c+zL;&j4m6Yb.E>36C]E*oyva +c.}#d0.D&@[_1ߥFp@w0A@OTƱ (wp@Y#ZǦuhLuEH4ShPKYy&`w˿櫱Aîߥv ,E.HgC֠r(@ҡH6CaR,U5b Zu+zoOgGځ3]\ȔC>N;M!3Bߪ[ }EPNZ\Nq)-ze1'/b +m + kgczK_,À9mh6'H1D/,5'h)Bm!9S3O4vgFc锸eJ"#>;B_L`!F'._xGED0P^^ w) :l7v1a/sb_1X梬A.pbTQGpҒt2>^xH?epܿU. \i +"ŀ< p'8$ Ky`NP8^(rmhUJ`$QߝLtIlx|tO,?};6nξ((yErQ}0^0]!"6^"LJYU.p3[ݟ#T2o!b⤤+ZMМU)UUy + \MMAKKHZ,M=skI&j@!x$Ɔ'J.姥 I t'K"`g`niat 0JZ Q<>~}AStT"?|5ӦOl\6#:-9iԠy'>*}q( QNkro爲YC'-;UVb?ALj [%"8Um׼)tÉ5nZ*잙- ;<䂗K~m `g:j"0%LR0@u8Az4ki[jw ?N: :0BҴs5W4L$񃩔ú Oq,-ܳK+[KK+6ZRa8VMRw;HfU:Ēs si\T3h)Mݙ4Tue^dԫ1y12qoј93'{X:I1\WS*A-zb20 LϮz016nh4֖e{C49FV!CMܓm[xgy}o^T+*cմGxƴ'tZ^Z65ic =E/B*ڥ ͒hU E*㒤DR4J ChFwhwܕӥ+5n)_/mwU1F&O?` RE;H0)^D&3X|RR)+J瓱""p' +|_ѹYjo(GՒr' ;r@ϸr{j\%CY7>,[ǪƯw ǯj/V#!``NƷK=]X]K>'i߇rT\?1$Ay8J)2|r* XXÄ !&!Am&I +nCu&U]@v,!ciHח^A{d%2 JΖ@w@-\">|,:3'K.gQ7$, IYpk-ɂDmNE{59y O)5{0Z>g*YwwB2 2.,[<;7\ƫk@O%Ԯ0^[=M$AͨQAKr۩܊$ʺ.M7 $[_{Ne<[B"F.v픑@s,u,T O>ͰiS|ZrkMB7`AzFނSw7Qk6k +z2e:쥋k~6Sf nk@cL!Og uVq^CȄŨcB<; /1A #''D}eKrXE5m *6tVWoO +#b2O8',ŘpmJoz\+Q{ ?S\t6\>F1@^i#'8bW{A%{љn0-~4콋 ~o_N +gBKbt'44u z_5LفjL5m%dQj~i73i# Ƞ +,i'KƁZoJͳ8FY7 +Ss$8E%с)fko(F=Ca Ę&Cd6ea7 $ \ee}8"BB;=-s_,w%87(AgD5e#;{%{{%-3VȦdJCHVF]D(`XcDF9!ĆbQP*)GG$"'ϬW~"Q:nkvc9_4CG{QH]A8mw:ImCu;s_$3@60MX.3(Fb"Օ# (MbB0s_-dˌن7© m'PjSZmbRYFwy:Jfvbf%cr.ڲ61R' gӀv+E"B]FaYe[SM@C*VV-ҥ{de|qi'HzWAK q௘7{fk֠\~ҫkYm#4f *cՅ!ȹB!7X}+ourܡ7\گB>+qilSWv$'8&y-`+8mQ/ȹX&zʯ' s'H;J/z'*}ڰZl"&yJ9 .PHfWQS#:OۂOB\se" |( |!NGį~hxIھtyo[Qe..ٗFga_~9'kuL\P[kF*gfQɽ }; tq3$OI@#` q8*S*.tw8;7q_q#S&ol|%xSFm4{DVLz35n VܖEmѠ(0}C2*(N]i+HKl FľcI3HoIMzy;͍\N<[$Ǻnؼb:΅kv"#N.9^}ubћAReS_G{~ܴvxPxDk؅7YH ۳[;WVu:1@*$Մռjܲ;䬏\3n;x Pc@5;q{\NT +Jc(/"9tzfzQآoS68Hm?nN8M;Gb>áFJ.5. @ wyfK4 Q)Je޿Ǜ4{ć'Zz!]I60a\2Kgj(Ӣh`djh3#?oC%ѱs͙A?a,J%Xdd ?}HvdmmNt['Pl0=- AR^cm2ǥ%Nin`:cyxYY4=^jHT?)N靫0jqGq v׋8´d?ꤣ$J[R7B:F8]v_' +nIh8Q9Ji T\ ]Wd"WDMl$1𺛺|~GHhCc!7tD uB"w~GNBb9F:Mc5b*WT|.C#V^a)%[f12JO[4ME/h$FDeު((M*맮H\r٤0(WI7.dt%j(QX ]ƚi9yqЩaҎv+BQh"m\&3# KP;Z?ئif\vӹٙ$-6Lħ8(($ji5v8)T`\U#1 n>Z2FXj1("fIM5HsY-ti2'r~ѡ6Z(ҽʿcxwՃJd[:'Ov ?oS7z{MT;,D"5bjUJeUr]a]Rkˍ;rCA]U23MĆXc䞏bLpQ9e7jQ% +^cҜUjmVZ9 'Ǎ+%ȼב`w5:־>=)#cZcBӱ~;2| m{ce֩@"0 +;,uFЙƋ-yl'BDi`-==xOF(&Yt/;2ZvgޞmľtOcwC"T^ay~'LY*Q³{C3+xe$؊7^[h6)G*rTo]ԗ xbZ-)$ɒ~:ѱDɨ{;Inx>PqtM^s}p4B5[Bvy ^!^xFԡ,^if}?1P^Z$}m"?oO:,09%[iqIFy*"E}; e#\AoY>KX5 egv]gC1>r(8V9 e,!t!Qz ]Վz}GnqB@ts 'g3pp"?[{@@i9X7*"q.fs5Xf7q'`T)j0Wof,@Y[` qK +UidN&S b^r =XjsMG Fv6 _C#5K|78jJ5=A] 7N5,+Yg8o:hJء)S ij=7DTfsH-S1f!un]'a9Pꈊ}Iɮcu*[L + SW'9g ywg~ +m?uUzva#ْ3;75(d5ߞmq*k"8@ + L\bb~&$mkW#W$pk祆kp&7JE)jjE1y3eK1|%<2R踃GNt-[Nྨ+)AŴ3 (08_Ucc/S{o5 V<=0joWҏz~$"|>؆m㒒 ppɛP)V&3Q\i#,hr$Gn,zל%xNF."'&*)cmhV0!$ +Kgj^ԢzBȗ:*_.Tq+OnQbfy50xbV9|GEPu,D`qaiVnzזwyW?pD?d>67->h0q5;|z LTz<>O7濻GqrXzzb9@b9lrq%'#yڄW vGjS3錫vn;zO跨xg\:V6^(SAuL\%1\W]4ZYa'QO tO29>OCRJ,a!LdEn +4ggrjCr Cjcr T"0 jQ?=nטX_d* Gݟ _Wf꘩mLGӥqM"z+eBU=+nsf:U P!)[si 0qeAv/_ ;_)X=zy& ~@QaXg&$ ׋ab_SyE0sV 2s8o 3A8>> Y`39XE_|9|:Ag3|̞p2 :,$/ ('1c2dya!GOY9Ƹt?>?!͔{̩kiRЩG޻O>&YܟaO盨ChJ,~݉H휈bݩHm'^SnK"3գ˼x\uoో1Toe1څF{lZ?>L8T j+Z 8b/&"Y['I95[(BUb2b*y Q$?h>%4nf=ɬ[&^%JE7n6Jc+4摤JvWB +4b v(yqx33"ZT(KƘ]qpgŇCqѿW@̉-Y de[w >BaA3OKL5y AXчZ*(Yd]kҬ w)FI#sSm+ Amp0 .BwN)%:fIP#Yk.<ktc ?;ٛWrkxpRh{?q: (, feqgTgdsm]P'Ʉ_䏵;:qyߝԖO`8јsdI!!xDhBnp8?HH>7Y򇉾9N\<7a`;KPtzA 0 ]Rbd{#TAeJř,8ɗR8YW&Ěs671&D0Mx 8~bt#K43z֭=䳛g.Pי[ L;9Eݵ'm+"C-s5Ah:ABJ?YP)!cpf\ڻ;^4CAՈ2Ӏ2r8rrh,gZ~/̞&c;Vw+Wd-HXTM(Piϕc΁H([}ꩨйo5+Q<@ܸT06Ow&eC,bxDPK0NJ9ڇAT~Y0#;`8)֨JuV!v#رE0t.a^w[2X'I@w,$-HT4ZW:SkGZvjvqOO8Dzϰ3BfQ=xAgCfko*5b=YN /Xp`8M2)h9v`γ>?&E#hO{2,#͹\ m8ݒxHa88Q&Q +4\vBZE:eJf&#osnkyB'-7?{l4FY:S_(}C²al̀jU5.ۺ}>ߘYrYpgj\d)$sbuO~YI*\1Ó֨4nnAIsJmq$ ׯkڠ{USJeLrx +Wd1eJb*:1e'Ė*c%u=ɜ[eȧןJc Uیm&cx ͆*vCѯnm_##٭^ Kuim&V05jDMDaԷrܰ72I3Z-mζN:vÆ]SdvC|>l%eS3̺s!ԩj㨐rs;o^ ˧6@=B;d;:+LK=m$㛆sŧ_lx, @%#Y孼3>.NL`N.H>'6.h4XYRqd3`4i/F\E;ݬAeyԳ=Foc4ok¢#T +׺oMp[ih~ypP _t7P?m?C!.=K= Y_7^6;.|+ĕoË$6 +=0%.b/(; q206W\[!e,elel +}ev .[|=2헺Pc+R93wԩ2w( +][Ed$}_0o&@]]۽1rVDJ,eK[5QrKhkإΆNgFH'|d&}Fl`CtMZ _}f\4텿ͭ===Z(E% " r 5 z:HuLEzmᤅ>:#.E (,1mv,U{ߐrH9,l>Z1bVg;F\QG/"F v3bLS؝8241vgq"b0u,Zզr3B[(]rs)iҲ,V0>Rgo3Y$ /AuђRmj7#15UD܌vwN;.\1(eL(a([ȽYsT)N($2x߲IL bre ӃNAҠj qi$fH4Sּe5>%R¡YCɵEFl,kz&EA1*51r.;D􍐱sP4:x]Z=?bg8QQ{wʍwSyhUtUv{BP&&@aPh1}comQɵh64E$HapAvp.͘!!jFoc7DO '͟^IwqD S&(P!^f1>;dJpmi4w;'rx^+\IFdbꃁ]R/[\zYpNpɬ)!ޝ)Szg_XM>YH8;5ߪ- 0*hϞ:u H#7ě5ɣ,d`2pd-Cڸmo?@%u9ṆhĺQ}ϾλcwQewFԖukFxp(_Tp0v7e+5mdd3)}9Zjtmf2!(ڝ~Z9tT;Q&R L kCu$iT\DFLt+ճ6UKЙUbNXM|Z#υ"Oz,&ZyĚnѡ& 3g/,:GrS MUjs@T6;ӑvOl1eU,q=R}"VMi\?J;]üVed0J*QxA8~KG=m:+HEn +vgVϯm*cGs%{As+Qe\O/fgtTN(ь?T4ءg3"r݆eu8B,Ğ` + 1t5a5EģB^6)1w q1f9ʼCkPuu@'*f60p͋Be7]}mbG XPeZ,\P>jo~$A@ܬwg{G{q⸴+n aI7tʶae gOiYæ s)]iH3NxIAY+y[=8A>;|oCt+v<ϞB+`Pchi|N_G8`Q,N_?|=zz fHt QUxU_#zBx/l^|ȏ%=ƣWA>Ry4¶jK\@ܼ)K&uYW{WB7uȮGf8tzn5pK~qv +bp(Rא@(_%!w\Wآ>o (sd\<4 jx}| 3ڗC4zwcpiO`osd +-O6G`FۑvP5{HzSCvY!d(pCoCtka9(C\qw?u?_\.}il o4#j=Vw0C2m9=0 +Hpףxνr`x<L1)(eFS.˗$ۚ'LE/Jl"4,rjd:BIi9JE< xVu)Y/Z8\Z4n N{dp ⏯f(::,pL~skk:S>MYVo + p )2y(lFC.[ۨ7[ȗ%!g ]'؉bӝ՛O. *˛%` ad:h@٩IHp//Cswy?Y$RO5 Y0к&AU<2򞤊S oJ"v`؛ʇs:O`~vM8_ +'XjgѤɱo`~Z^@02gho#zX(md5kZأ=QS%)kԎ/L5j90DŽԔ =}LYKli5u"4njMF293ؿDV he-zD ^,(Q\<,+S]BnlC*?/Ͼ +? ɼ4[Jcz2ɖEEcA x8$CQ\<<9;MɦveEݰźLveVջUj#{b-ɤHAF!C P|[S +BuܥИBΦԢY|^V'v(}"iI(caֻ۪4+(XPfOR2Ӈi1wв2R. qG'"3i. -z$C"_ I֤g a`裻ࣻ PȔ@4sehel%&p$LԵ22 + Iώ"魜AZU`:dh4[Vh*,&֌e{urPcUoc@" D- ! 6IQ:C]qDu6-7dXF$u;\jUAw*Wo;*`㢂 +~tjچ7M"[X^,Hz=`Ym;)7~#B9"`p!s^q:왭1s/ +tj0q#p&Cs# +ށHohB8ƒ{p8u oKS EcBd>cyboQ,8Lgեq 8 l轾XaO>3!DGGxpďbE|_cxF?crL~G)Ȅ+|kع!}c'yb"*JEw +Va>S4 Ηna(3JOFSK@+:?)+%AJn9d= .ARBQU?6 !xwXm| d'3ǩtv 4~Sb>#4 $Aހ͆Vd~fv;cIx,i޲Kr5ll #*U2ۮ8;|r f?/{UC+6|O&ȈF{%laz|)!BcSOnLr@]9/9FサfzV25)èWdIY<0`NCtL֚,qcAmW^*¸k#׏00ko[3K[Cgxıq_ O}z&eӯ4^m, U2/!܀pa_yH:I}6ݑO!F;|/ͱz݊EBkΟy ùϛȝ`W} @9p"n#UlDVo_o:R}?6⼎lMƵA"20=~hlJbfQ4rR£s c%CO%kk=bW07SLS3n $3ӊѺ/GOK3 ]4, hbq +eHK.k&!;a߸|y{ a ^/[Sb +tC;zr mkUd8L\ZhY$i(-H:WΚ,AaLl9 t(|35oI>nyW : t0s4"xCûyF6ʆ(nNEbni#:Btvnj_)^@.77lujx>' +rk`f%%huK#1BӽT`Kksz)IM9ᮤ%ykp4,ꎫ%~E^gKkمfLL;/dkzx$ +}Y$50 8نw5gҶLۖ +}e?{}۟mX!Ci`AqV6jb`|Q6֟=ڿٛ e]G/:&QAFwd<4U5eb#+̼,4F/ewH?e9~GGl*8c=Kd@ݲUHVu| %< Sіy~]b1΢y1am8Cf(RIMPDJH9>(;^ _g}Lkg4BwX;`2ɍvx } @$?㤝PYaXK"wX5 UuoKbVZ5-*=N'; uiv\N'ܦ3Y=W}hW,H`F}҆f'RFN7[6Ҍ Pbk8-8bF33 _\ ڬS̓L=8#SC97\QaNWq`҆Ƭji{ȤJv0ed{\&a-چaiFIްINSFq[Scq!S2ƶN(3ƀH(X[&AF 9c\RN$ҩ-]jW,g&q.];|I)IT[\$5GQ%ālGEǹIl,JI2Ƶj%X2G@Y[ i3cl wD{5+UBHU:;G dviˉ4A0` _S=/A&1/McA;6 ϡ RYDMT"o}0X"X6--Q[lR.{",8I 80ѯMN1H.'ɯ]\>a*/Q]Kgö + NXN g{nah(I{Gu$}̲WWTU@ʂ_` +_WjW=Oa/M BdϢ(Z?-sc~?mf]j}SUYLse+TĂ^.5ٵ8}xAUGA#nG`!g'Xf5W45X3{}6N}:Q%7C wU&v0vh/,A~B60-|ɴ犫$MԬSpD}i(g88z QN}!NkNo@}w~,׋<=* xA+NqȅP˶o/ y2#^R>{ܾ;/Q0u04CۭC"zd. X<ګ}#Nܾ Nޙ#ހ07$A}'CqbX5VIEN#oً7l^S/ЫKOBGAm@n6v q}Ur) @=W.M+? [XP0Dr%;/o:<>9l:ԧPo)Tr2˙&? A `3Cn})_g-(/JXa CٸkD#3oMq0Fʇ l,IDp`=G%/ blg`gGK>,cZE؈mY ږ0K!htəs0lwkr{{8請mu8×]h{OpaFL,m0t$;Yvaޘn +[AEo@"Wix=輡Ao~}oCebboN  +oQPl?SCiC(uVluGw#|J"u(x2"|RcI|vR!= sÌ+fcb= 7iG+HwkD7+o$$3iДV$ c4[c0f3.q!Ja6/ ?j:ŏ .#(^!a9EfYU,&@"aڂ \v@r| "K LUG3yOZ>xЂPql}AMYsn/Buɽ:Z\*uPp9n~oqG*/,w5^ߚp$_}OVT !zQUΔ_~*5þ<ƐVx{rRjՐrߧAd\Rsž+&S/șdpnHK&{2p+>U:;EuC`=}gew$anl,n  girB|CRI&:IA36wQ|j  Pe`E.L^d8ٻtNڋsI% :%ҰAtQ}ðf`_wj@b i< !]i3.a3hֆ?"\Ш8AgZ2ﴣNFN^-`0Ƽ/\iR71sr:-H *-]\m@7csz>_GRռȼMнܜ4T~jc'66)|6u$sD0/ǿ7Cߣ_+ *n;bBr$a:PT$ &4Uc}nC船hr4_*KmN6pnjЦ=9SqouoWjG7zBjv8lVq {_v&Vh3dd'8UY~7:D$61f%ek>ɠIwyN%2ذO l5' zijEf&p +M5cmjZz=)uYc_s!{ZӇN#MӊUH~jc6V 짖5MVV+} K '+I?ݷZ=^VVD'^2 gcIOJIW%! +q>du3K7^'(S?Z[p&m\V$u_CW_RVȿi[k)ȵFi{3QNt\V!'w hDDWETYB=?KM7|ɪ +xSB]/kjCYy,dlNReGhRJGOMpCm1 ړGdB5ns›6mw`@!O2w-ERև.ٶBYIWX Rj'*3RC,liHuԊJxa GP׋(D7[)OWU83d 'A1L7J3]z& {.x{H[@y9 +I g;eRyfP/Zn=>@bOݾ0cpcSO[i9aq1V Z+7A >GyT[u.Mai1ҺbkTM氼ëp.+HR#X8W(_,|SS2D38;`7_@b#1%abpIxB3#$Bo%01*\*<"΂+?= {YbY,%?=aؙG6Fs:eY0}3Zz0YkdK L<-vJ1m>&唰vи4&)#L4w ^FOfP0t6ްhwl +y ne-o:X'"(d0tj$FaD#LN!]k2O'inip7DS0=Z(bX,jlɗ0|!'?TV[RLuᮔ+fmVlJuP!6v',!M@`۶'}}dޙwd=X0M=} Ťo3RL[BDQ\M42ȘEfL jGPBԺag:U'8q%$ + dOzwნ8Wd"Ox/U;lSg/E2[2GW^#J_MF\Nxg%7C^֩ z<cQru>duu ͠nۑJ6" +Ϛ-£_=*ک9y:+rPſӊ`/nc+ S0jQBC,e 5κp ̃܏Kz -Jlr fl-UV#3ILXE1,Rr l<ejҁ0N*2TsB:QxKKQSq#Kldִ +O:yE,CCIR_bl2<8׳eE`y8'vϱg$D ы>0φ6(*f$%l]DŽFV2'O#U9tc\@>RgjϞ jNv߿! ,,~޺qa~_GxwuEFa^r\T2DEwHf6qb +RK9skbkL2~E'X 3$ifA/L͜qwXU6ڝXsQh'wW%7wuLJ&p ryL*uvV4 NgKfɊݤiL uă )#[{ѿ.M%c,DƆ +w6AiF@N7yD "- '\c*?^mӭ2kqH­33lxArAfdo0Z֞HspF׌=b Y:bur_Zeme̐4ɞu ["7rWs+wyAK6/T&D,XД)bLӳŒ6(b!LX{s3٨%n`@6 p[.!4NWa=LqZ+;aapwFԧ@Q1i AsU}}C7awb(0K)sfQH5HîDoے;$Y l bEb_(*Chp\:q&"\4ͰQո9-q XMI +Iw!l~Tb7[b9.B;4\xXĝ 'KwK wZ_Bt~8˞_5#eTaDhד+( +Im=z/.# +\B% {Iڥ UC4%gZM&Z[}crE VDysC>G$ru9/o#.hq[2]]`́j4=h.Dw+D]&V̦̠3ȘkE[/G==-si6n7~{ww, v4M!?x[A_.#*eŬܕK>`ѠM͔H~ s;. (U2dљjd]{kzN†7yO,f3VfJ1Զ4JmYLm񳬡a۸Zh~my<$U]|nE_3lm +#ղfe2-K'R[)neKc}YXJl`KOYYNyK2č'݌vZ_ ;%@;o=_hyxorKiqXrzxUۚ ̰ i`_ !\qE\yb)l?QbJ8Фmå}GxD[~]bې +b։)^K6GřĈ֍ib2#˭},Sia2ɗZNiWJ.!)n]=م޿>0ZԀیcO|?|/JpO0y9V55Q.P9iAAxGoG_P7ý{z(҉Bg)t f\ >g +_^r-qtyg_|.`ӶW*_9Eҷ^PMȹv<&)!CT ] Z2=iQ-.ʂH> )KfMb?bר{y/-~feN?%B2V'f'IL\_.bilG"ol[ָ,Ynniujy|3F|kMi.:R^'vl(7`ܱ>Kz8 `1,(7Q`\\֛/}6@(7,XƑ o4̗p]$.!njӝRjp0.]?4DV,hQP>ZB/ ;[l'ЏGd>)ppЏ %ѐO,V [v==_Ѧ_C|}`>ބ{7Ѹߔׁ7%;?R^&VRf Jū BG*UGpU+)C'Du+5f|@.i +UcqZ-"-R)硅{ノ) qʔ8F5;髑t;&Sam lSV%qQoOUHTFƕ,<%Vs˫ӔwT+hp2#*ON-ÊTڂ*Du,aZOFS%j+͍$zR)TDAYq7Z +2 *# 3ArN +1~n֦l?X *uAV/ɷPG# o-J\:9SÊf]Ɖ3m\ 4/ z+쓦)lĈEey(B{P&Szo<Uә G7fp6e&x\3ݵAnjyJ^^y1EdڻdE AƎD.oއ6VryUr`J/w~9Ғ91MMXcP3L3 3M#5UEVb[z #nq!]Aе,"CRYe6<{ZP_;hiAqWX2ڎӃսm..e4QV)U5g$H 6h8rqSt$~VgG;x\_i%uCL-wsO\E}J.VC0?]pL95NCY&l3X&cP=+B۸0%\Kc^ˮSU^םKz4Jd0M?q8u +)y&[6N1 +Z0mR%GWZ:s(r$+Eu m#JsƥG뗁f{EsmO +q8ܧ+`B }%.c> 6+zlsS;| #Sg8$4f(Kץȼޟ +wn}\]tg ,/3_IVsrǡC0e< W]g3Bvc<٨5x!#Oy(cr<8%Fz ]T%ډ<צf\-nGOG5~_HWAǃ"p5K%޿0q7G*rKcKU85pܶ޳#ۇyLo)u M>3}t5; Sym:b-8lnu7Dy$٪`0{| +QUgaAİiϰqwpbL8F V>Qh҄U*OE[^J\#H%m%qU{]lB>џS'{pzt? %tFqoQpU5Ioȝ݉+6 7;SP]A ]Vz$zҲ PՇEw3?:rZĨ3dvDev#w aoG0n3: "㏃^v}?9Å XWݕی6m`6Gb#pUa_L| +Ŧg0Ed4Z> Oi1!a|i}GiΝslwMwCO q,Ґk):1])/ܜ/zsx} <ݒz7c ;'ISl~BgYo^\8lJ] -#;C` st+,Lw[[)2TA׺(d땪@7_um m-S*˞爾_|jkJFӅ7.rzV)T`KrǕUT$tZlKl ^-{aȈe%HURź`D 3rӹtW V*]*|yA{Qluy8ƫٷMd ۋ\*C v;6Acf֨-̠Y˱-~떊w$O(w;`\>v-89DpájJPgJwŎ2w:b-e)KFism:gn| XR].YWh\ +v۹{Qe 4͑9ڞ7CµЭ3cArCt21OJS'֒JGO=V5XQ:ߍ|* FOOɗ 퀇ڥ\LW/";C˥]4s;LֻUmKoQ>X"#ll>)wh#x*l+C"㇤zQU$W٤>܌S3Y9Lwz!Jմ-p,sjp\hwԟ 9~u%Te6udJZ0KaI0eͭ}gھKK^D13G:E, ʄ*UKUK5'' +v*N!jW?б+7c9R̈́ 3\m;5|&=aZ|G˪hҲ)oKpf乳$[ $iQ֒TBhpu'!p{BfAtGvy~L0kl{#/Z6i8,6aH'zRh`Hyo_ G>}e߰O+0{lfp ++J",zi"HԜN8cpat4NY3n3obL' 땨tp|Qѧwn{쩂h)8dB>NRЀu}WyZ[&$Bըi +i +tkޠ}w X{Zet |ԌT]/tY~#=A`zAA3@Y4#}>@ @)&.Mg5hVux>am?=Ω PcN# +|/*qj8j5XDt=BjXg"&ErV$Z~$X~Ta (=l0<5/ɪ]Y0b {3ISDI3FI5?R$f U@R $&R)%#q/A\AS:͗+-J?? 4Xm-ѦCвL6%bKFgY,@H >/ЫMf}STYҲPi4O:3&WG?*Ls\!.AvLP١E`H*z? )1Ph|]s׿^e;ϴNU҂uCB>0r̔G@*yӲ::ٍ;}} Eˏ9/nL$Vub!Ҿ R_on~6BWe ̠Fwn 5kӼRY<К3XrI1kʬmW5vCD0wm +m04[PK!G3-R@o&u +vx"3;4OJ 8 :u|@~nx4w7:;<6^u>&za.^ Bg4N"n/ "k mOT>2 bn=e:( .85u=_793Ay9bkz>ZcTU +#[5;Sҁ [́"/q%3^-}O~^_S9DZނ<> __[wÍfn] 8phnǢpS%n$l8OD0B/2xP줢_ZIiR|3eh8 }GdKF\wz0u(66ڔTd:1XD{jL[mNSv ՌSN!Y#֙@]c7F[omknRnr6痤c,ވ-B~WJľib'b8Pۜ98!@><'Bz@(A!ZL啪J馲VtfGe쓰I0p wDubgx5Fb::@C1),>庀!g_?fd|T.T{$O pos>/"|ukdX$p}@C {]fġ[)FExXny 7CM{쇋N΋OEJ"wnA蹻KG(VءWX>Q_b^onp=9ᝈ4+<ǐFiLn!(kwUp %HLeOy]f?[ɖPG\+cW}ƅ8Pژ9 ]INGFӞ2Zؐm]<:G +5kph!6uA]ȽBtNy)JnʸA]z),RULP#?eIB(c]<.(Cl6QY=opc&ݸcx8yt;&7J~ kXR9GKgƝ[֐K6[Ą@MF+b\Q!ӂ*=q!B#8pú~'$D'uBH9 \/o0)C85}u}fk$\skIpʰs J S~临7>71Nozp|5ڻRgdP|D}1&yE8ƝcRiBk +)S ""jE?Fx dAM535&nm0 HskYLqr s V#L#KEvEN͌~iq1YUˍecrz*4EIHg|pU|^:Jo~{jh *z-C1ؔ=!ᨁ1F)sQΆژ<ńqN GҊ^zמj-d&ޚֈ6(ٺFk0U>zn &gd´ޔ6+g70jbP +=#HyITl4مbē|q!xtB{gy1)=/Yc TR%8Տ8b7-:`|y0ޅ ĥAgi3eTzI쉄GPc ǜ¾c s 7.p*p%}@~kQxRrnG@݅wՀ64,s5z>A  _. +TOҌ ԌA ,'5_ +dnd8Y +*GͷشOkg-yKnݒS*^B2[YlS"ؓ HL#ǶS3ҶwtݼޙQGoQUGoEMד39(NʢЂsע?vӧ`Դi"ǁi8WэslauS̑ca[w5ȺS$hް Kݜx; +pm8U 8!NхL_"\8ȟK#`|Hχ*:-;..˨ ߞˡOnFZo޳:qWP, R=4r"KuᇢfjV:NjϪeXrYu͝Nv ,wS̺|lU?HK:tSi.4E:% s XOAAoBOqeX|3rزoY˾geI`0af'IvmDRʒR +VE +IlyGe~s|3-U1dx] 5TfX>^3|-TTosZ}vI٧kp!#YqGUx "!׺RGCROޙb6bb:_10j).TccrCQu"R)3=O񲚴}ߨux3U|orka~9qLa;XͲ^o/f/ٵ<Ey +ܦw%n$tZu>[Sn,˘#:}年u]Q_In4{\_ƹӃ`VXQɯ;Ƽ[h}f䴬sLmON7jқ"K68вSȜyQi6PR(Ea+璧LڻtRLul]+\?&r9+*eO1T [8a>"2d̵w&iSz(ee֫GZi}}+(!fX bqow뺟 75`žv6Ʉ,jOs^9uN(`X\SqG걪y{n6h8\> [HUf;ya| M[ ]U6-߲|QF(ެVaMa3͆wƘ9CKƁf ;=Ďr ԗ-oE~UK_ɺWNp妟.ؠGn&4:T~[O7ynnrގ|X-y_c$o{zqYqqp,GUNn{ޚZV?"̷o8x#2~jL%ǿ;%,Yʨ*sSvF۟MLiDV+"`1nu].gLDo <+ͷȔUH,Uyʄ{|qkeWJ9zyskio{wq`W| q43wVN H\n 'jnIH}8%y\DCdQc~7 M{^ƈAV*ȥO;$jzet@\IMƟC\}m~/XRWe+i;|] +Rzz`z^ :*9VT %js#Ьa{q[,X0uG_ڸ;uƆl](6\Rz۔{6ZNU("DtnNV*W'ބԞ.$29U5 +joR*lxWaf[nWGqӃL>Ԋܩx)A{rzaWhKWw}8Ibq}=s.pO<\{fʗEr;!˫UdW._2$f7rd?¼"ѷ6)6ʒH;֩LWc9q{IEYNaض}w6Q}x{^bwb[k!\iy1ݬل~]|d'wK;KLkC8/ӌ,_ qtyiJʹi،wyU"$o}x׉,kIKm:ax}"GdǛ-R}<1wto'}䦑ʣ1BVy-S +M.J؛HWaK,wTzL';^K78d}N+gCV/ Xu]"<|Q7ۆK}kì w+}y}@w~Ѣ^7I\rHNIڌ3uxlUύӯ_+?vPI `q,AƯ28I6{˜]O*?`tqՖ+oy_{CvFƢOSM?G㛩,i LLIEoў})PQv˜ƶFJC/w0txoqbL)OE肻~ܞъ7&w;/7b +:D˶_qL}amrºfx FlB{Lqc]NY%'ѥ-4\RLTv4?#隚*֠O:ȥ4VT0_޲ﶵʡ n᎖hnii3.GW_zta2<^5GRWvuϷo~T+g# Vٻt9˛M֓o*2E^:"Oj#fԱم᯵tҍؖ8i6]Pk쒕}U~xZ̶ÛYXRYݝ|3Ӝ^Y)I\dBm̧KQǸ{nWikU Q%e˙RQ[M#>9,,|bwNv30>Qun߱=̫'{/$r Caz_ηkR>z=NrPb&dQL6xFkcsltІ laaY~Sө4復-97aUVa<67Fkx58kk6mƏEUt8O.y·'q7u0㊒+6zJ ~|rT-`YNHfM ]Hؙ3M#ٵ9;b%o,><0pj'O\SM%MJNM능3NůE jLL}߱+;ttРőwS'u>bB+z~}y){I  ;ê5 o>XF>^>_oʡRIr8B-Μj/h&PSwO/qz]#?|hiV"Z!y]k&m)._¡Ӝ7RJ_tU\@|HۛgO`i%pk?!K,N0׎:zDh-cB6|S=!O+& 8߅m+oJK?RS75>Ĉ6WLeA]d#Y5MRɁGmai3 Og __F`Ȉqz ɋ&1F <4c?m~0t`wm@P&ss~w/OҿxV&S.6ayNq+VǖJؘ05fS]مʿQm|U/PXf*_VۓFWRQC)؝l85~DɣBe9ZBKŔˤ:߯;I槧A@{;G;vM}ݵ63ξQ$O@k 1AWho>ۭ@uX{V/У-Cst; v6j|j~=oc%+aw. >1ҵӵ_r cfIb􄻭A'ZMq.\g|.W(2<29Y7'谴cBoƷs=6Mkp$=5Sܨ_G%6d%MɊJ[Ms +rW(1l}?wuxpFǽX3å"-T#OGd}|iўbS΀R90C(j=WqL6叅^f6펖 `w8xZ],2N]S+6"Sߋ_nϞ9+аhcMz` EI쥇grxvQ_Kkgջz; gϜ:l,Ň (6m-0@N:̩@HfKz|O Nj8M(zYg遨8zFp87yY2|8 4q=q*MmDZ(> 3jaB/U!|e `yRB'eUI3%֦[_ʔc.mmwCϪ~ڮUH^_*g\u~$;U3T1-sy5!W;{J_9DpެbOӣzXg^WW:칽g2* :h؊艢^NX$+)`\ak +!=}[ 咇Mڐ]?_78{TQ;(s:.e7bn7ӠҔz z}9MۦuF2Z7j}GnUQ[Lc70jō9]WTλ5Gn +lL@X)F e+1|d9eZj\![pٯFa Lt43I)Q]cFM) CQB]DMSwQt+>\U?x 猡n}Io~?+cGX7Sh(ϳyըGPԲ7I+r jӖXV[BL_,Q9ȨihB0Vq-K^tt&>BgdGh⓻a%JpgP;{ef)iPa+03xHp{,xXYvW ib_ >k?$]G,GDλI,0uO&cW& 5 9\C=o9}<`Ek lH4/;<L])D +lBqŷ߶Y) 5V*0EYA5:Ie4_}4%sPV\đz, + o3 +yX74]51}o~ sƄoäR)]Wa/$\z)mA`8$eA}Zx`#j4KD!jO/А;q8aS}8r ckxCcG?Ӏn@@yDCӹ~>ŏ>*|um>ာAGn&IݜWHx#pG΅Ź6 I,}wuIvRh .Sov^vY%Ӝm2 o&M7:]yDr'fqlrՓDqI<λ|E ` U^Hް\zܵw,= 0C#:ld!&Sڷ~'If_R"x=jf.u9w≟nξsCb0k2"?oXD3VWz}+9`-؀v ر{ +kQ勒+Ѽ;랧G+OGuN@ cC:tf]t̔ʦ{kNa!3XKjٟK}Y1CNjŲgˇw9Y[ @''n)z|IVS'&/'g6Śi +S.%J:5Wc?3β9Mdɽ3$u݂ +Qh,lp䇘_om 3ilŽ8 +2Hp̘ e,"UzwU#fGftk)o㤍fuOT-jO9q_ 7/yt^ +9<39iùq3`>J9Whcejn)^ݡVZMdYIʔ{+0 ?r#BЅn׽yiMMUm]U͡]d +\6jFϮknnPp Xŭ;[%.,ou=zM_}Ns=hfY䐑QG?1&uaF|]=od0".Ĉ5 ]KS#C;{i ?q+x`p?':@fo}7QxJZ-Foe+ˎY|x2Ad:WO dy`F|]no~mU 1kgaom ~-0^=v'cr1S$ S[VJv^d  Pڸu6$ |Wv ܭN{WkSU:]dh ^>@X3fb7 AtT\qWjɳsx7Mkzāg\ϬM<D!M>v.A8Qfy)8_h3[A߰`1-8tBzC&$;4[HFX 8)Zv0#qN `AA@ ӼBh#^ҡp,ǗGq\{v3Az4"*8AhG @ppbňU2tXt*!BRw + h'D0AS #.C*&J*oJd]@ȝx11XB/GpD4R~S4Vb=\+o 1/fV*TZA٥Hcᶈ ƆQ(}0 +@oo@;DD{rvardh׺ '$A [Mп^6 ZxբYt@-%H q$SwX>a:TrH;MA7N2RyU C?DHI2Ag"Zv7=`s"|}^H4Z,d^yd,E6Ύr1pW+_\ЂΧb\uj2k]R wq$##Q0ʓxx%.zM:zɫ,| T&#b &}5T5:Iw W'dQ"441pwӳdR.@"rQ& 38$u]U +9E|rE\},ZeL^]GxBU1SԆV&6Qہ=A"䓇yJG&yM CgS#ck/tqH\-yCƇ^&$ȹoY^B"S !E[%,iE{454J"*>DSl5^JXF"C3D,\7A"[n$Qy̵h{ +|vt2Gy"o;l@&*$T4,dSio5f fC6lDuߤ+׬Fa +7O?@6Hb">v8$BȤ(֥1 "5ȼHR$$ڽf4J^wMaW2Nw6L6qc{yDS vнe@|:=1-CBy`c#yxP0.ڇ0b{B\Ϣ|,8_Hز0;oƵ H@bK5p0Wno'A 46ʳmc0*ɖ (VH=%ҕoFM ܉Jl2#9v=aʻKAuۑ/fd/i +HAb.40JuQMwP_-#goI0 Llp>H_CO*eM 1*]x +ٜa["Oү$>AHNeȣ~tBi\X#` 8D +ш^Hj M$;t03/x+1xb|(bWwϰ2D!>&Le+d W58]^1$ =u + C.mY'8Dgx0;nYSj ]}Յz-Τ +^[z\͝]@W)hc8)eg! +4Uq +BQg-88 P`;};֭$!WP_#zF9#f%?3 "#9% R %j53M543HÅ!VD8be $*N6M4by) .o#ːB27&msR󲤐sNg Bwl$C]۰Q23R$jr3/`v lp9@A֤D +[ +I ֔D>`ln@DHCe@5Il^Rln:@.Al8/{7YuB`LD7d`:A )zp#]+g_xÎ"4DW_+IY " AT4 ?>2LFFÊ᧸='׆ [~*@a2if0zE! Y4D._HYzG4@{#Vcx {+>S84">64cB)|f ɂ'X,V +cB*IL +H,w|[a^y,d?עbo8Lꕓ#)sD逶%[y` (jM  L U'Vfg6hWg*Ywb5%%LSÃDZ3̆ 0X?ʁaZ;ϻnBm^/CFH?D ʟla:(Wʁ?ݿf˵UAomIrWJo"KZMHsI_GL& |@ـOS2j^5C :}΋B*ŹZK%p +z|W53{а?X DC: kPцSU_9h"^R3Z9 °[6Go 8ehAd +If[JZZ[=#b|@KU&GrT8g׶OHVlaȯn~ `s@meP}E\xTP$^/''fU9 @lW3ЧX kkZ!qZPf d=@AЮh7J+)<ft bD`)'5 +0͝Oݽy\ZE3@ݫc_^u&`-E^.f~[ʕSCǮeoA"d@z'CF/A,~xPHXFX˔{9h3'M+Z>ã{ZkzH/>OK4f10YE FT8Eze b-(}{#`VkuryZ ZjdD!5qP>Ƌ@|!Qw $6&@wu5ի2Q4GP+$B4Q5gbA,( @BҚR8홤[ٞ$ bwqҥ^YN@7{ l?ȼ<DfLG{VZ襝$.tʕ%*ڃoHSͫ9jkoӠ)|'Tbb).ba0JCI*t0JNZ7tIIWP\~@&t]UͧA0\y(EŚa@>O'9 x~V=qV UnEқ`ްejWe*nY,?:P9t;5qVRIMϹ59Ǟ۬3N й[/d__,t0qexPX&hқ`DD+*b4*(D怃 +5chQ1FKbbCkb H,1{́{S۝mFqQrvtbGtgfn5W ZmDڰQmz=q%_oE*FEqbb`9FOou F]6@yo 6~ł_zl/7-mRCR#o'uCh-ȁ 57FGSaj3ՒdьT67I2=i'D>$KKV\/(`2eg'fp7y5w(^ߨ9n<=ȵ^ei Kr,9ѳg3rn3\Vkҩi{. rކň{OC4z]p*o'z_ǪgPCYl}ke d},~ʳvPI8)UXCHn#OG2+4GԤjGlaQ|ֽVVca_Gl1@֫×pO֤5y꽿r4\fyhN٭kSJa#}&-jAЦR`'RJzׂ8PrH6JWZ$-o4w7Jk4mN}={l-ȄvC%~q 6)u8DvWZ(m@o:JkD7s_ym M sdizi)p.?g,lzdB֗>o0Oɜ\bt9x&Oz}ZE7Ж!udS n 1(v s*\vϜƐfEh#U!-[\ɝCheѽަ-"Q_ L'ڐ/%83Hkqĉl,Ij6.8s]dqũ5xž.ELXu,E5p`X0eŰ\Av\]*%\ß>#ӈK|973{YLay( 9yY$*.)ves';>˕T1)\fE#agvE 7*?mEN.*" aƤ(1"cB$~Α寿E-*fp97^IGiݯ~%(,#hNr +d$<.Vt"11y>T*/z&-W7裆KE7 ! }$ =^[+b%mKbd{GFaz.%h5BTxYOviǧrh~y} ]ZR2x>Xd&JTtHnsBٟwAB-H;_M%W6[޺Zv4s~XÃRu1H)lοq!YۺmwL|"wRjJy8;= ;kBFR E4tkNE SփFqQ7phxekR|<7*u)5 %W2$XhA lJ"1F-[IA7&/\l.4dd>"$7)UY$t2%/N2<3u&Ee4 `rʢ+_ĥxś#w!)y繱%m ZE]Q ZLT˖!q%Z&X",$\,vRFlr(Җ/,Q/wL1g#{Q!bp(pBZE7iQ](7_6 q(͆GU2Q~`F| 2XWTU%|mdC[&';#-RFoxjEH9ߵqnhd-^R? TI#}<,{TN 7b[UPLIä$wiD.nq'/GU6cûigS'1q+rېz,˘'Mzܼ0:+Q8uY =i?;Z%ra-aWR j(!uzE|Q 3'4|OBKoρNۑFD/_}yKt>LvdB)Eg36ziCvvcji5aMܠdN*YdD qa}Y~(-=~W j~S;᩾sdu d~N|sĺaVj, Kg#nnwOeoI,<6:k_Ku\=!eOazs`oDjeH<ʯ,~Ϝ$JYdnVhŜVnj#L|_gI&'աV袲R lbIF%A-&ѫ2w޳"ӛO"csRxr77n MG'JHnW9rNr%\=~&yd[', KHvlUuxZ*W-hN)pZo .wy H"[0ā9R5ᜓ)J-kYU08gv&ȢJR$+tbU)dvq;oWYr|Fa|WW`TyZn,d!qbJ|qNk=|Yh{MbXtѧ0`vrfQTðEhvWҊvu'2(X_ }}hEH=q,ŻfP8[rd"3B,YZkddgs-G? W/?ćF &z\gFR~BƦ SjRhqpV0l?@jƂ0ɿ"=3'w&`"Y*z#2u`x9%.X@HX}R훾R;ZmC ̮TtcCS{T'ϞB= 2ir>KRdzR*J0X<jњ՘T EPVBե)4K`@m+@t73-wMItH.7wÍhگ@{ѵa'Xc}Q +~{? mp qO˳TC bAN) 7VG\swRpcCqrp&(Ŕ:$Hn4M: qƭ| 1 + + Z.e |K$ƆRn}p.H>+$ƅ Xչh-GϏ{bؕ KnFv?c&*>O5ca-aF(u*O')tqSN"_`A;1GdO-n;`=tޯrM@:bN5{i:0u I. SԎ܍[*kF.>u>eV,'t^g7/4yO_i8 w\gtGobdB3;aj;[1w7eôg{Gg; XsBq{sz:i.,l4#Q=yYG fl~,xezNHa>4sic `Nf2>q1h1+0pH +d[] MKIxȞS3tcPV3GYx/Z9> +Ga60 n>)& 2)Õy4u2(IE&-XeM#A?.>OKw2ٽIKLbwLh3w Bco\/>kE^#b(E-)n=p!qv>rI9zܖ$ANN?9Gh7ad8x!w[´ûiW?u 1'>9j*fLc/; D2om: +Hے֗-XƸ$F1"eeAm ά2,.G_tbjYgs,ҌL%탶VugYc"LNIG[lR}fywo BF <(/qk%Y Jc};#lM,NaTVh-Č쫛f4z'|hcGd:uMzaێ\sIC +l}1)4ħs!KCUkhɸiIiH.Ag7%W}ՙ̃&<w *qQ~s_04'c` h Ƽ~2qKם) m K*{1yTb6Գ–\xFQcLK1C9rˋ߂)J`[c ybouW yDDL *f_v{r4uvAMQ&$BJ}|`Jb5V%88bW!\L ZfCVmfZQbhKjQ*m&xqMwvϞ={vܮ`ކPZ%7t#-—Ҋ@!lyN9/%tF tşE)D9[ݰЂqu(-&X7+j ҜXsmShAs} -z VӎVC +z)zOWzmP:߅Ԓ?\=+v;\أ"\ 6ä5HaK=vxu;bɰLHEVo+\KbMU^(j*wh**?kkD}"4{' W#UDCGg3MN*#|^Ŝ % S0zK@|Ty sq"QpWō6gUkt|7Yt7J $-VIo9lD\Z6JQ2|ռbÁl37D,zhw`.m":FD5GH~ngcEJ-PJ!uBL,VWY( o="*ЦWCT2#M_|?3פSAN.@xf̟en*Gt~E2"?/G H*Oȱ!ȇ=KRe܆U% n F9)>@@4T2zAkMT<_Vj4d(g3M*zĆ3?2=a8gS jB75-PF船/,(pz J5n'S]KKT;}SDDhQ&Y5!n~Tcu.ɣm;T.7x > 1Cpc#" ꦩQGOX] ]_B%+^_8|)V +nĨw1B}8yXq0Tri8eqrY&)%OEI{5񙝊V>{ЄX%S9劜X7㞹#%5P8U/gf̜idt CВPogHȭYPKbM5W jre/lib/ext/clibwrapper_jiio.jarUT /E/EUx +5ϓ. +oݶm۶m۶m۶m۶mϜs|s97Zݫ3WGœTVGU02?_ &Q-!"TFed%DEieDCxE^I얅+X]*ץ<ӞMa?ng8^S&L`BwQ⣀V3=){4d&7. ޞE,V qNb,I.S6'/IeB$/BBR dJt΁R;3W7RGKwߺe idgCN.1100/čMdiaaGGh +:9:;Y89b Xa_SE4l4o'RDEA0:_#c8;9yfu,~? ~-ސQ[+p +"Yڷ+piT: F<0*qg9( ktXWZV3HOZ_*c77Yкqtl75J=V@e$>' +Ί!iCzf[0 +ŎZu"^ldo1c^72b&vB /ЧMP!kM +RӿXSsLa8#zX 0bdcO)"^U+/C-5NL5^/]F PuW1oYEϦӣQų +??m&"\fo‰zJXs0 45mj#ղt@ʼOjGwtN +w!WLXБO5`A7Z~{َ<*cҧT&VO5|,8q}\PXϞ'`r@j$pm(gՁ:g~Sa{MmH>==+*y{' Ζ؍Ͳ-qgש̷OeBٍ>(O2&~Jx@CmZ-IfRձL8ij{s\FR!sꑪ}$v -y f8 ~jOW/]1Wa2bPN]b#,-p-N.qԻm@/MwS7a9K{Mb/Jߚ<_TyTy_N̿ ̻GdI?r +>3j"+КԚؙynAFQ+$Iei)0+$t,͈}Q8ǾJQ"|)奈Ny3]q*x _W߻{m?1/8} myD??q;}>v- +}~|E|  }<|?>kIof`U-~CdyڪA!6K.!Gš2Fe\&]26D>Ez/b|LRŝr6^s油Bc2Mmc5RcEQWO{p?n'@+ѠL4I}~@qƠn{VMu=P$ʀuiQVe)WbCV)[lֻ϶a;UuY[XV |f~*7敳{ s;A r'ʹ">5V5!(څl[I'%Pb׵p6> +7&RLKuOwu,6GLZSu/o~|ez)r=u43<3zǐzCBI{IdV=siܷ%dXQȹ猶(\`kb`c!$HZ@X?|&Y-L3XH;#}<Ɩ##9LqD~$˂t ǮRp-Xʕ +NcSl2m M+j Ųj|TS[b8jU7|^J<=:K6/3ڮz[ӹ/߳콎>o|3HN*x@RPpf fsBHV +J[lUa!Xs@#{l]NrB +Wv BADoP}譢gٝ%SnLD6e1i%̗fԽ|.òm(EJpA`3Ґ+a!ƅ`#粲)$miJ& u d Q H&NXegSL.vS0#N l H +w1 iJw!+1%}HʑګbXZ]8zg~îpK1ʵRW +22+[rRM-ɻքCHp, #FF;dr֙ E:Gn:[GᴖX(P֙efi@9Nq@og+GΨtGKiء[n{PoL)K9!Zgn]6h^Y"X4.w޲6 t7?l,4L}F^3~cV9E=+hєL>&hn3ݎO#`:e#<0fSg6<殠 @)=!+Ă .&ɟB-E>́ԟR D*X~dMr(j(Ɏj'FÃFVpFrx|"?~4X|T ܒ>.9hs 9X9p0$s?Z4Zkj3N`ߨ<]°T4n@iK7\GoU^'󄹪=DJsh;ep#qv|T$;MARew}0bl(2Y;،s,3A>qu>&,R8zr=H +R .勠Qy#!U0~R0- +!!eB{[n4W)]7Sv'PHDBQ6F[7vܠYB9V`CZ} D[tbB=!@6lrXYC}H3Z5*ģGnY&Ib/5?}w z!k۩bEⰘk\԰a1ԕXhQᴣ hhÇZ SN^ gKjo&ǖXjⲷr7 :湖b"Tz&$&NMa<ϓe3,KGtA1)N0cŊuUe'MbMdʃE0ZCbP{4qt"3xֱ&>A.c䛊{)7Y*}b.=1ް0__2`7i^}0=U{^#r!pIp%bBvaA D^Fjg٢ŗ +!aUP\>r7R+1ƚ5䋊 )t;oy(&*ƺiy PÒ>9a9t "1ϙ'Heh-ʝYCx}Zz9â-15PJܰpgSo +=0zUI0nmbxpAwfOAfft\svB84si603zB,^+ƐٚQQ /< &4"]d 2:-d*$CM]yAH9m:nFHISMY%O3 0OޖU!3T|soVhfcVu_ H_o!@6 91Gw#o.`sY%$ ZU9S~T{istU.^LXbnL ^pt%jVzsupƒCa += +wI~(*0z7UMEoxpA+{fC"bukLf|x.Dw)Lu4:%'o,FlV+zSGc<4_ՒU15F}bueCSk&f~P9%4I$o!@qQQWHcrBhie3ZBO5Z@J3Zʖ%~}x[:}lh2z7m톄(~8λmE@;4&z#MGiZvXPdu۽.#s]#ԩa{%"=yK q}cWqKvQ;T%/s l*G[gJwŖ]RA,Fh:O.MIx$[ ~$}*RmF_BUV0u.7,eaDm^S9'ɼQi{iм߾1iC Jo&*.kq%t&l_%%3.(FgGP{j_宀z:)!{[O/٣XJ#+w1s05Y[: ]RH T[1&hf#{:޹ot7Ln+`M(^'H:@!H9*<159{2oaHs~Ne %=]A!)!Y%;%gt;żQ bq9D?{ +s_oV !Po75)p,oEe Ɣ +j.eUCT7NCw]z>Pڵ gJ`n>1_0Y'+ǒ7 x4tTB%#\n y$@ +7[ Z(tt-G RhߢPЁH91oUˬ FAf2ڱT'pp^2oZcH&rtd_p#Cw%]37[?;[OCC9v5DE$OFą==G,b/$Mq$TWNDA a'irarZЇ_+b u6'R6.#%%NNe'b pP5T4cFO)NNLG3RtVW[_ t++lk:ݚ[pxDje#G!S8M>d(Z>[ZhUS'XlI6tZpМKK~mT==sA6F"&=g'61tx}[|@H C468~O`A-Pʇ< H*C}PEp4jg%E5a%`<;Ny=_Ӟ:'>S(sBPfЙCrm+qۯpVlݑ|y9^.ԣ-YcEt,#Py+>{;dv&e3 {oEf|N04Oh~ =otO,*X+•^r9hx؂pNԒ̾+* va?9qReɫwFrvjK|V i3KkVf5) "rѪ ,2@C.Ø8C*-c(Q}* Brr|W8$K0nKzIfDNez +Hu IM ͟ N8We/H_8t}J StnRTݩ%kIQ{:`}kThDW:o9vǘyGtpM=W|h؇ՃzW?Ĥg0 {Ogg[]3fX]'B}=rfexIJk{ +1`3 oo2MdFיvkiq\a~Q"H*s5`~z|j-DE*a. k,͖~:"zgKD̄ zu+m͕o3ZKΐG[F( p9z@9Oai +^5 G {}"Y6M4_2k}T3bx`M8e\>xJDr܅6y0SX߹2*ᅤalpɟt;&;ސ++{?CA $G%[ FE$)!'A@QDjiT' Yi>(lC#u*UQh5kR~9^}3@-?Cz= 7bDc'Js23^ S%Jf8%'H &J{vF3]Q|w%ї%5_E*u3[L/2(Ȟ1OǸD +C1 FP0'5J6afL6KPatha@Fa@Nq"FffAV:d$q0L\Cnv=*_d1 %1}p78VB`6e MmWtHКFL6R,ʵtd&d1fA}h0R)p4ʍk0UGF.6(RT !i$U0RjEƁ#q4D%JaJ!eDL~ƪ:2EAACoc4%fHQ$ȡ#j25%e7hS%bJJrjrɬ;b|=tlF L K Tef{`SrBm>=^c0a tnVN V#J5ң٩ +~g ȩeM%jODdžG0Gbhn;.+[c;8`;FIgES%Lw]sj'j̳ +3KhӃit7 d{sb(?FٙI^^#22װ7i33vs4ņIuYH,dvV"Xq8)e 9SpFI7uҴڪ2k,JO* Xd&s7Dw%fePcqfghD IZ qt&d_H))Tx;oMkNm +T橊jZR3ƌU8+ +t5lJ,'9N{~)G#c ָVlh᫠ETUY GZjڢ+qiYQA>K _H$YhaHk1SG% w/cI!lo1niPhbP톢I טJ˫A[y]m kTY㮓D[.UY/!ʭr2 K +ı;L:i`=  ko(/iK<2~p8d$燿upG}0ƭM -F '(n9LIf(fџCCu_sqb"OՕƨʴ&mTK#776t0N ê=tu@S<*ҵklyLI];cFe<,^4(mr^wh_+Ahwb]MO -:ޱޒ~4pUߙ2CO7VVSY3lĶ}%Ppp3cqvMpw_ɓgK<yMH2$RR&4瞞8tʏ&+ <7_nH>@pKrT0t6U/M2nYl%H`6TQi@-gc7F~]8ئ.(bѽ0kݢ.Vb ZPM$#bHЊGv0tLZO <mW](5NV5A l,;jf=0G ?/ȅQ'1+@C=wOTWc@8Fr(T!g|[Ŝ7(ܸdn`9j,kizP֠l3;b9@%$wUq:Vz:ȎŔ (o?/&-xnKgnA"G ?5׍Q\X&JP~t`G.!4q<|"Ah+\XYrVMQ^&2bWG(c5HmG3aVP,z>t(K[!ZEEzMᔱo*R9:I4Eqqjjkn dӧH6St\0MiA*=h;$^B;[![!FP!_=pJH5\]t.JAzMm]?J@vڂ\b &鼿#mU"LU۴~h|U:&YӨqQ *rHc5APeO]#B(MZXrA4Fpw[?]y[M#qO\|DymoZ(|bn <#trۑX=gj۱䬇 }nQa;봾1c#vwi#>Էc 0yawrQb JH}(fb"o9/ jr zӨnt$K6atk٦UqFۇ'EK:4)C; 59;X8,N/V &WAV #BV6:DJ!g.S~PҖ$rVT|?N,pV"I"(#dLlL^1k쭚Q0޲1'_skPqk8E +ԏV 5f֘H(LjDV5auS yCu$}pΗHohnYmgglf,poߵވ)~*,2;0Y2Y6*4!EVнU)uD e QM5jBdiBsD2tp@L2JǨC5nݛlRAj3xјBiu +^-L5ׄ0ZJ(Q%IzƘ<8oc|v__0ɜe1c^Q[i^nTjO$i~rWF(qI)h4`'щr9^\['<T,JMpaJa6|gA$k4<鉟-٪33yנd@'ʃB"P8k[\3VɊh]S0{VPFO:TG.eAhV3JβxZ $Kx`:&zDLQfąǹG#FB<'Ņ0%pD"A;u:cpU&O4VЉ˝ up"IC ϾjmjxJ;੕\XjU}C0*xCϐU:JyռQk+{G6"jzfSo~ȝuupQ]yR>bq |D+q¡ƕy͞]p[I';r0]':`IYl\-Im)k ,+)[J,6?GjŻ<\6bŎI7_,.,O]k+ `xi3nj:X@T +rEc,-YfW9i:4ZfK<VQP4ٖ͗X4.t4鶫Gij41a)%FdYeYg"5e2Z@(-lnݩ:N MYVŀB(5 #sE#Cx"c1rI9 >N4qy/MP=Q꾖rP B; 8sτ08xj1>8mFnF09~yTQ&ݬ(z!*HJ1MUJ(U~~!MܥM/ ~ = +*^[m]*ejbЋw`ZQZLw)TAe"e̦݇&ҒttבۀK>*B5HqD)k \44͋|9/ xq"}-Q_FYtqR|*ŮƭT4nV- [)函VB4d˖ܞ +z(5B+ th/&X]#tM}%0+s2׾Q26_ui +qDę-,I~ +mӂv9Nji@7ÓWIpvqnL[zqʾd2g^2w-׎a'?17%ߎ/H/4"KjU/6⬔3-኶aȞt>) [Zl>C k^!TՃf7@+E/۾BVh2iZWh^%'+7MtGB[A\/GQ+^Txk272auů a"%]o8zM_3Qe})̷݁ wA_Tkp!^Uf U\A#v;5Ш%LF +PK/AT~chA(;4۬HhB5rfB#(dus!D#ZF(`6 u遠Qu#"vC"h]#"lhaQ-zXvA}><4Bu횁FAQ>tϤrrjȔX.JKghgngDgFg($gNgKKzgRgX|NIyX$eSnգ in3փqiA#Z`>6 Y-vuKsf&7_w<ߌ2=k75{޷|'ӝ,c#V IA͞6liؤ ށj=S. w!&kCT*so*q%ZSSpn(q:5*n@sF;RUwjCG@}֤["mh!~l'v7Mu(;oRR^|̰\5?f9ӻw?=?& }Q&zR"Q| mj%R@S D+l@rAg1$Dm2ꍥ9NLUŴי +I3gGNʙ_ f,J:QDZV߱}xȦķAIsPq~m}*?*}{E9s4 YACҍ{}'l|çc.YJ2qv2/Rgfvn qܶ9hy//{ _p䰜ʶfϳ&na;5B#uovnnbm/[q'ٯO 7R1F0yFܩ5 vIE{FKVN0{~WL7+|^LU|W|q XeWVP7sæ>>JmfVm(3dmrr\uG׬RM(s)5dq!7vL߀:M1+mѨ뙩µLye ?} ^ +O!8k^zkBoTp(wssʺj%[_- z9X3لCW.WSˊ%B nǚ}Zp&dR4Ϊ&ʡL%fO˅x刨 +0OK8)*xMS3-\٪TzjʑaSE5f!E[_~NM%Z] S)}a[!hԢW &&XMsU?ʅ)a%quJ7)bu0EXkXߊld/2bȰE + t +n!+:5&wl]^,WZPL:\PGh1=v8IZOc! (]N0H"Nvɰ^埢ʎuաfɚf]mIY}a4݀7U홵QJP,AkK +I 뿮5k=ͺiͺnKt&k#=E,BWO-WUAϡ=`681^ 씕5F.6>O 9qZxQir)Wx)[e>5?%- +d)h]4gD+iHiŢ"/\)#ۛ o=kĖiF!͵J׳ +97Qbjkѡ]!Дu/%΋w6(^_DŽo[k;n: y6RskuIb\RK47\ O aN16.Qt0u.]`a ˀ7V%bҬ9;D͈KzÂ$>1DMG[ _ÅIH 0GLFϊFZeY6WQAv"CJBÏ_Lx+՞)HPޏ(F +P 2?|]^DjU'e,5-8sϗ7Dt:tI0 9E<͇iiRݛ82NIK +9.ʛvȾh/7ѥH_ay/k!;~o!8or{'Lmq\H^<y:<< + (ZH1B9R>\w"Ua|~r:d9qyp"T2"&4IE!DSEL.EaRmtbmtqokrbU-E]<`9qSrK#-GNb :|oR\}~/ZeqTa9y$arT0A E\}]??[rlE&Nuu,Ϩf +gUoiC !˺y&NT9eCGf7LL5;LfvEu/ '=fV|,{Kfzp=l.C06hY,w?GcTrGeYfu+]|unQ8^lEZ{I{M~TtjydbS9Cg*d,_FVʬ6_4P>p1kY>h=~m[,t_f+=% +4P oqgYƠ:ES`<&=2DnGp=Vp)dJ&U韩o)T*" `1g9hOak]uqzH ]PlvՌ@9Nd@'PBK9 u$(;b)YNSh& 0 a0ћhٺ 6 (g<*[?! #BN֋PARλ(%^tg٥.1㦰ZjLzBaJ +QL5֖zkN + w!@Ж27)#ӎ6挣F6GՄZUsɛNYh OXM<ʘ~Z8EF^9,(ӅQA#2T3ۢCD7TP]lo/[cݑǻso`s%9uC- Ygвگa6qLNS|,2eLY"-4wOhOʤ7> ח@@ MQYWԩFk):TAU 4Cݕ4_4uf-vb55nl}噫9r)bxjݩapK;X5tyAe<~`&Y\D~aVЋ>a[V>}D[p)WAI]#2ů| +DE Ս?<=p*<Pcg [ +: *dX-h[pX"ns"L''V;gLy,^ Rܒ{|BY2)qA +mfaЎ3\4E( Ի;<:Fjm:%oH A0@TX>x?[{:F>&fo=͌bM=sCM_IG8t <Th Kxj"1 iMޒ,͌M|1uK/k"1&5qTh(L4BM85^S8D2qZhC8*1JaTL~h2Uge|Ч/*^"wjEyk0~|JmM`f;%Ig p ߖJȫJXǤw}~TWy_Vd}sMKBer*n,ad@+6J? hDv=Yk1 fw/80n$Ԃ=Wו0#٢rTݖ1<8zrqkSKݬD"*KU˺8\^k(mK[m{on#ADQz~]NVi2۠"C84(~,OK +J)G`X""e: +eӽL%Sr**ܻ_];׹2B'6C!q+wC=B`*~|)~t#%xG|P8c8F w-7:ʗ逌ŗt厊,&8a +K0 #3B֗0?9x^tcGFNI3Gќf88J|'ֹ KΓoK"..I#WcNF?:838kF4X1yк1V31sIZ+ ƘQOr}ʖ~\ĵcF1^G\i x%w9B\:2/G4=!#/x>i7&c=q- ZeTɤEc C +g&giMD'Ĥ ˎD}E8|΀Y1Htc +b?N΂)(U#UmŒpE0ѡm8)G0Rp)  -, _%]1M77u1ⷋŭ'clꎜzlߨraܹ[2iq/6}-9@pʼn5QA@8 bȣcؕAP؍a)ܠi ;whDrC>vw `/h*"nTwQԜN9)_mWGhZY%E\kHQ& lQ 4GtOZ@”U$eاI%e;8S##)(U뫵U Q3(` JVl;6!ND? #?詑Zu-> [v!b[nDiߖGՔ-$9vД|=،_1(cs2y)2qǑ["pIUշ+(:Dq9K:GF(gWV>?(aqpf&V52!FXNN o#$p`"G0VL5 :k@)1wT7ǢG+GOpg8}j噥ACeP̚ .> knG@[2aMv^}*r(mWcꀹmvǺ@|}l4ʾMXǐݶQ>k [AWKB!_o#‚v gSg +rG1½\#jekG$ +mUȵriɽmkͽxk K3o`Ф|G%*weʹ:/Q y7"R4+KF]OvojXc=A8__υ"v4g9^<23iN-u 7V^h9[[&3/ J[h_Dݞ cua6_Yj>Jmwjn^[B`ГKP >+f_ړ';Vp=/j3!-QrStiK'iyk\I1ؖmƘ':k\Y.blؙmC Tnl|Iї[W.ʘ'K|0WC.Svo x3hW:3$GpɊ3WHI7?mb;6?V8z'z L)ք' t-=w xQ/U!:X\Q0Jjq: lGcj-kֳIڟƘĚZ@Q̕+5hk,h:gXV?)3V$lݙI=\ZuIl,hÛ7iHw,]{uA+7#gZ\kě+oK/flE|AW2c*c1 [VR:H3@g8=ԀlT(S-+݉Qu1&aJ|IuazD2&Cb&q]DE꜍fds[ +$\ [0P KNMe@fnlXՈi911B(iؠAeՕ8DeP<fA>)džU12+dȥG`q3fWwIFBds2!b keÆ$3V~!lgy_@[PvYԙ|RC 冲FM JdǓfy|\uLbtr ؘ&ڵ;z /~KlOJM}n1d1(1"ĉc6]a(E:>Ѡ9FjdGU.8VN*;Njg:IMa5QY"Q@8)aB" jB"9r]C M +x^*%AhԂ~ N\hBi9<7^4g!VY7#Ѯ4R;q0:&;gpKM:eJ{&ky 5b*K)"_8v|[sllYB ))3/2Jm-/㰽৖^iXM s]uiynG-M;m7vݤzjo7fݤv0cWBW.j.r +Y:OkFzv:O5- iv`<(:Oizptjv쵘qGLCEai٫>OXoWNA<D^669 l¨1Oa{=a=[']NO֩ӵo\R=o7aVx3c!-KI'ƕ`}Wbvi)D`])s` %>a-:4|MWG]k}e'DF4Uo?O>ݑW0=@1yRo&t1 ='7;';ԗ! >'"4Q_wzubv;iP2P)0n*~+G#FPqv2xڰ2Xb$]GXl1q6 2D +GZGEW"ɠqGe\ڄE8|c ľ ?: !ޔrdzS~|L U%82INniXhΙf.ߡ7$J,uiN\vJؖMM?8wugӕM-<T+ij5fy,g\lE R ZGB4؏CyxJAEFJsa{:,"0_{Ix\C2-˸ 4? $QP.=чu/iaŰN~~ MUOcSE;—B oΟUT H9pRdSb9kɷscfJkuͿ$livW ˟u@*%~XyUS?XqŅLC(Ab Oyn Ok}#xnF|b|(jj˕j&Ֆ*U+ :C,Cw)|;/b+mQc#ł4K+/f,Aժa -eJ5dIĞ)Q˘rvJgKj˦%B~s%+Nji:X`X X\Qm&dȞtԼU֎:'/rK +vA_snhBd`}І^z;1.8;( e7ZUjVIVs$bw?}}WbH{ģ0$&2v5T+k+P~uΕ- {-4Vpu!d-hE; Xg5ž@Gj zLY]+Tw7OAg^UU l&6{>K@M|M&,Ygk,?cuUԋ=v'o9;!kԽ%;Zf6wzei.gBѱ[vE:{IQqDdpL&>s Uuδ(a"*#kN`N-3CVįuG;e-}1{Wİ?mG?@mΚ 3o9ŗYGKؗ}kn W*xB| `Yn658M"-PRu-S(+jZT-* +]6;͟Z87o[ -[ +]╭K 7[p"[IAԫS9P6hE<׶7R^57z^~g/75=qkdzjDyGt+VG6Љyo,DH @`hHG C'J]"8Øuq;⦴< IeP^9Ó3R#ls7>i }FVfqyoI3 ]]/yͯaq wi 'tw]Hu8)}9P o!>ktæparǮХB#{٨IB{)+_;I&]tc,Ӵ*V3bˁmWi:geV/Ss "Kv&E)t0 GY#-(\ס܋rQ778qלC{dAV "@iq6\_aSG%$5b+NsE=وe8 yTk3z,)d¥tBDXY80!+uÑ!P=ok*GmJ{PCmy -/'j*.KbXϪ.VS OFf؉X$?ceQ\¤TʹbFr)Y +%J}aI&"rzF:ꅂVW5|c12S5BSjty jDs B +71OЯ)KrrvBXb` Tz 6Ϩǻ8d}A)V' +:՚^E] [,/YY}_o|"!uP|Īo r(>Jy}sA4o-O̓/Hל3mWTCLxBRȴ ݭϛ@;Vf`Hݝ[y2&4%̏+:pvv$]mP{S(`|>'&+آ5DTW2BSCs3yZ$[R-ݸ+x9iˡҢkD۱r\|nF߮jaF8}]Lr\T!ay7Py+xDFA5 Z!GeE);GOcr@6Sr j0:_SWw!JǰAxOƓnz[{!*#5eJ-Ưw*E݃M@PкLl4 ڈě6zj$hH&uh!Y+KWw܁@g'RoH擓-4SoBhrpj42%jgb/M.:)N0 a(z]{ +$%\õ֡ȪHM×;4ѝ[{ Y#T"pAy"U&B[;Ȭ{&vkkt +Mu's?-7扳[{x7b $REc?Nŵ244P an@3:$ܽ=@t 1HC}W`'uҤց\j/na< 0z8"fӟAs*6jR͉;bd~=X>o(s5L__ ,^LyЊOU_*ҶR=Xz=hs!Y?׫О?h.}}{?h$$j@(V򈁟w{âH{#+ >I2DiȦM>)i5X풸y>}=㹋uWH}3=pp DA/g|fh4n^ȓa%6.a5x&@Ԍ1v4ZEmJEoDZkbm>@5/ߊAZ'~ v 26$kHf12Ϟe2| bH>\.?dÄ6]3?gyeA}gI}X~Dߠ~iMcMUØ*nS@xt^RJB}2{\7K_c}5>ZPsmW/9ϡȴ&Aˢz2ySbft)- \ /S{؇:S_Ǫ_GS/Eob6|)db|66m.:D6b],5,5C-K-spLf~]'ߝ\]n]D]<,iHЩ5i:ӌTi^Xx!/hIiܗ[^"#M GuX,8:6p|qS^ӭB}r=fبi)O5V 2>DgFRdي2nL$g>Džo/{؅/mȃrfJ6QCmehoZk?kF>:v$NOǦlVLsŊόھՉܾs⤟`M[O1 @_Ig$/?F`gEpw=36ԲSzB9C0q- a̓A3fs^_lCb/5ToV {] +yI6 HFW)W@zRIG)Z]DZlj,1&b/XuBB&a g}'Hԇ JSh\!8wQ1 +v V=U;:K ~~ v 4)S8< CU<:Nj22sla$bqhCȫȳXpL+[<=iKc $;]2^P*#c/AW@^ Q}g[hZ&oE* +E[D[Q)./lp(ro!o ەJdGXo񏊊8ӥ%2Vv6B:go2Npt_tklao +7L|Xqt{̚%)o\(9r|aA)j/ʏDV[fTWn&Ju_^rSkx}_ 7[iǨ%Z3J8f2EרP9%Vz Nlv R<l E%[$SK쓠fw1ja 8- ~c<6DWX-xT\&1e +t~[ȗXISs%rd>|gJ (cHIQ*Rf*|U\ZB`)a/ +,q=9jmmtruI{W:CX'+9ZK'L*/4ʏL퍻̔k Փ5i~BwiX{eϯ3\c !,hKM?r@B:(EO⺃g5DÂE2 +bYbK<tCrE &(JC:̬[oc7mMc۶m'ml۶m۶4v}w{߬vue<眭8B]ᙻ &|оX[$gn4t-y6C͵ACQz:zIZs +\8޷@jqǿ +XR`>    x|% +nX^>ivKIIm.X,Xn1(  '5~&9h҅2PHj;J2>NmgF'OLrܙ8s7݅rT l.\FRh}UAl#I ?n|JD{*0P@D)]SơEV[m)pڱCYdyM FZh&Z#~Tb!v~}BO@#,8bRZL){ +BdD`[ӮE4׮کK}N`:Prop +$֧ դ:]̄ݹ_r_w{ ɝCIL$իh\:Cȍn<5 ňr +t̕2Ȝȑ9꼀j?vQ6ߖiTT4m(ڑ?}/φW,j"?ʐ;|y $ +"mV#\ `Pܢ]~ihV)aےWbCQb)n}kV>%j[O_uZl2R|eվ6F(ۺ]Lj:XQq2L 5Ljb~],0ID-ZEmFwcgEo`Z(|jcUm? +|:ԇ>'Ղ4IvX'$C,eAz%'ݻO tb ~XGЉsYs_jH 3:X' +͛lyZ?޼ZBPwO]E. SA!+o +hA+4PHVSb<C5a;;W[EH(=ѐHFTD6m&K#(1/-݆mY{~aDKFJLC XnVc:/%grY"aP칊)@nuAA^yצeJt,HC~_yhJr<:2}ăH.Ho (;#o>Q% Y6i6xK,waI֨\C;IPtu7F3O^?[u%MBa~cw^dt&@=O ĒO gNbmyq9ח/#$ ߅)nNu`@ px RNa# mDșjX|"<;aýX4>Ѩ8,|j3twή-$}}''c+"-)'u7_OC>hNek SKn> +>h~9KeMz*nm=%=_4 zkIFL~Z uP&{xFxE yF4M>c~~IT "0cfiؤG|Ʃ/=jh(Hbν·hct +#RIa uN%gh$vsƟZIQ 7l(l[Ԑ +ϗ  0@h+^}j +|$dnmT|\_rJױQG솗QGsB( .4} ~lJCJ:bGOpzn7~v݁쏼*֐_/h'r,幖s@َl2;48/=Po>:0`(>]`{7 Šѧr$ <4= pK +^ %Ŭ5ek"6p#b/#u;sEgS7!H7עIquͫźyfѽɻ͊rMk1čQX3 _Ʃ)Jm\s'mؗy@srhPՅ!qFIi͕F7Sּ,jژrBXkT3RI욶mZiaQ (k& k[[QQb+[>5} +ҭw,v]"j#^ɱ"N:ؑT +V% ~3UO -/΀ +gB|*ҿzI To#Y.gH6]gw>ffy:faU a߱]4ӯ5{wQc( +9Y\ΉLBO0qЖ#̼h} ۿw>tbC5BԂxCpO^m} E`Ws +ʘ% +."f*cM[Vn/c7U ITg{n%-H?:>عg:(yYpL" DkQomArzEL^.Z]ܼ\;ttFHt:A1A¦55L ƀbkʈo.;:P{22 /7/Qβ7YK8wrƝ<Ĉ3^gl›7SD!q#=^3Ŝ+3ğۺ_ƅŇ& +x5̻"&ney>ҍ\m!0F*[!%m|;\:b碕YCPges##h!%7qVv&܅OFԈCXvRﺸ,rpCǙJ1[ PS㊠#PN^I,hYZj3 !+l6x)lnifQİ|\9yg/`x,B!1gZӛH7#yXDR,F۝me0^L#j:8msRg6z- ͋'~+ѓIB@ ;;B +d%+sWSI!GϚkXc9A_R)mS?zdpPݛD ZSXZX%v H2r{~HJ9*b~+/"VTc 3'BAP)# +1 +5;ſP,Tg ~A\j ELhh@lB~CauR %bc0A:D5v O?lN ?p9)fTʋbvGŢæ J$o~$2K%7j:<aD\ͩ6:]")H/)`S3dkmD_ x@.h&3 |~i=UԑgBjt!d/BDvm0![X-SVȧO[I:d*&*sdt}~iB1(ZwD:b5LUƊ:j[+};;Gig;ޡqob.cHO"FPX`'eOğlKA4f"h +YW U6g+t-]ԷIj_DqIFvڅéEjCV&XPX>yFvJ-C ^fYR0rV#GO!)%em|0-4r+9f-a!g1'YUZR\Hس`3S|]"Yԛ5HXr]~qf[W'`8jA5CI%78OQ*p|_N MNV^.` +J;& MW`E =w+L8W-+Ȇ.HM++n6#U> E:|^2m7h| +ۂ)u[XP@j͂%"nqJ 9 NL)ǫ/anǨV0mDŽ` ;OcK5b'En#ߣ`#`+`3TءHM+&xP + &yLJ҅؃ ns$s4GN#8fO8Nx@^irPqq#sbzgv鷯=?,ADi4c*U"ߊo*N]]6OX;c1)s)ȽP'7c*s]ioDb1 4WҁC,&_X{۬~ص@:^ io"YJ + UHZ<6aG5IΌ~}|u0"suğ,B) cPK!T :nږ2/Xa'Ž1%=q2#^oX|Ucc6risj{o 4Ё<#K|i#|#W[+ 5/6GM:}s MUw {1_2i+K# @1܃ eLng,]m0l A)rD[OT,;ȑ%91YeJL&~ ]՞wboi(l ݗO@B @7I{P IIRia+.XXؚwuq=j`.ٴ2.8R }QVr o/C1_"GB{!#Qdv{p>b,0KK30JL d 1GF[rsyryT:XXޘs;tJM,. gnGJ*4+Y-ĩ [t 4 +*g*z~$DSBh 0FF.b8[Ô(oK߇?oVIQ.I7%1XPd0 +|, 7r?\Cv>#%.R|Qʩ,444ʔ"nE ZR5(k7oI }4{l,g;p ii^}mm$R9O0dHl:hD }6ȻlVMn_bb [CWtbEQZ>3gLԣ3฿zՐz,/J2a3I)9a(!sT^JUU҈ ꢓ  +KbfRE2AJ-W f{T|M`jmVv% 'K4 KAADd,l:">c1Nf4GaЌ}1zJvSGSӑ:*/qbځ,U8?mto9qlpY}j7|vf Ք]**ʍIG| nz7f7#32Ekn_-V^jO* f}%MOˉ?!dJu6'=XL_lloG!0ҳjtٷ{\? I[6VG"Duo(|czS+69`'vAQ Z`rn'rm03%&9$;"*i%4Mj(Z_X4&Ksf4O "}YЦtG@@uHobO c@-X |pKܧBrw}K2C5ZYHVr[yàZ:LEϤڢ %uGBbiPO{Z.yp$N26J"kC O ar6z ]- 6Y+XĨ[%.^{z%^dW<-Y/[YS멵tQ.SLrGlRt ;]"l +hͷsuecߦ 46)͵BS mKe}MHٖ  ^&j5^c#C"nD ۝bP092RɂZYƛsx.0[ kT)(YjgiX>dsz5<2N0 v< oLT  BJ0Af|M6|HQf\nj 2Xf՚ Vrd.g0)1Gq-O[FL*L9SjS_4*xq#\ŕ"IpHG8y{$3=Ha9g- H4w;(SBGNpaTvЮP% XN4>cun`ʰk~[2׷o:J!fT*N0bYY&t6;OPTPeXeU =tR&,PngLnMvCwJ>7nix@5 _+lG( JL"Gÿ=B.* U8%qKEmʥEO?\^*Coanr.Ȧ2#޹!8*jYM>qj)nrun>_Hsmw,jt'YXH*R7&Qg#W9Kᲂ` 4o#=$\/U<#N0cz'`&LE.V|5T?8"w.(H!Cw"ҳjnwi6!醧q{H<Ȗ]050u{}8VH$3GނQo,OJO[QizL\V-Q䇍,GZ|+l)-FC[M4:7s+ :ҤD^aezi%U`P#<{"S!r}K\MZN'4*NOP,|PH9ed N^*F]p.M +ZjSE ܗc/R +~ +I +QomOhF-CFPEpA=f*z|| +\cw%{څ(Х'К,Tl]sJîti%0|v1~Q~(0->O] *N/B0VhvZ\s;ՙ4Y3t1T֧ ](?>w]Y2^@2#Ǖh>!ĵF' wx2;7::?a\夕lMjHSNU@楠+bQwI}n4a!s-qׇLT,4H؎߄:հWt_2c!'_NzXi%-ΫDCuwXî8D|S|;h g8tVsp]CA!_ +hz`f^@{QtiIhVt t={(]^hk4g^<Y& rPn^%2(LY :ڧ0A2&>]k6ImO£INUɁR"3Fj#"jhQe2ks[]>*N +$zeQ,zCeh&^R%c:1#WKoQ`e2\R0a<4L=bmC4fg"qbe$sgs8vW&L3l0\{"c<-_9gI=Ϙ<5-8.r?zܭ t߼~{9䨃&$ H7G*oMʼIKF +<,PN+wIi>'"kE_nFNw\cƴ A7p\aBzJ&48*h0 +I:T?k>ᬧ:)Lf!y' l!!h.UѰJZzOu/X.xCr@~\ +zV-^fS}MdO Bb`zϴDpe_xGϤ{dxqz>ln:h(){jRNӑ`E <'\!6q,訉us. ەʝR +ecB}\6N}2I v4dڱZlZ4SswBEGFň{Aqf>Bkpw>_v,l#Qt]=ѥ j0x]iEü =w~yx'[3Vc:l{OR3wmw6mWSe^zCE0-!^;ϐ9:`Q{=C5;C=Z},EW)Q'iq>v Ra"}RCEw:THLDC~zf^LUsI324qof&"Q-'O]#,|*y}D7 &,ͿToELyƲA}dDh1$gm&#~]eC4ߖt͈BRԻ"P#MM4$yA;`Okɷ @N:` Nc3|LWފ[8]lj"تG'E3fhj*sQ9EGa{ѻ 2EӜDɷsQ@ V^놙YX%" ( 0<U1@C}+/4;׸_t1 J rcm"yp/x0&* {e'2K3٭P{Ks % +gx[I$Q3;p%b&lkoMcܸdKŸ1Ƭ ruA-A\)ts'&Q* 4 4w[R+䮩>IMhqa,PeEx?aىe^f:flR<nj3 +b-]'7YbEXSœfдFD}YzkEOIZ'b}@n'/^Y}b [U%@ |,U$9;>%7xSS툛=V_|e=+aPdt!z`op>e6\Qz 9D 2f}-"'ͯFLa^ILӏYZS{ w}3f+vɑȨq`b*3m#e6(@@5$%8%;42\#~%jkoCWjtq3JfG-߹#:qݾ}$kBYeZaJ ;[ZL9{\lP[Nu<̲N"? +@saʠ{:U`LO/fɸфj޺)dIYC7п3FK+eÇ~k΃tՋrB`NQ9h~t[h,)=P| +i,hI3EhFluU#^זq =beIn4cx +wk0Z$ ^)?-Z y-ZQn =[G) &|,-w _p%VP*WilGP萳d^oq@SuǠy8b+&5P,!YלQ@l3%,^K*wѦ:Nga wnAS4 R<:B@7JP~7d62j̙)gGGu; +)e[Dz._ޤC'݀9A{ڠH+jWc πsmHEӳfgN[Gaw"Tt){ܝ8D )MX`A A"CWZ Cb +@.=Wl07$}^n~zsVBa1-rlև lB*\8=PVZѮ.#H7 ʁܔ$@͐e*Bt~ͅjoh B션q3s \S;C6dq.竊ʔFs #d@3Xе,*H),/^owS3b*PQEfDyy yA͙YVۊ/=O MI6"(tFQ}dQ+mAWJɦ QòB֚́ɋ4FHH,8>>{jzǵQ(,b\Ē)^o;4na'Cj eZb)?Ġ꣱dϩ*x4.OX)=R#hu+'ƖkHk-(V~.mi9*LJNSE'{ Fe`_b6Oa=gfā{g`w& ;i80^MXqs!D%7fO˭I;;/|@4@Rz>:;5▋"hk}/Jy/"Ⱦ7lJ^!Fe $PrlnJ^R[#r ZԹ+XQ2 +e:z$Ւ=׍y. +H#֛:>>N!z;Y>QTC3B [ed\FXjRD͋)e+tQC.:C5;Cgx4xpO +3}USbvy=1z 1)e9ʕL PB%sqF; }9#ሙnإpB({Jc5RrbaduՍ4[KcNXAD"x=0 55Kc*zO*u1CqmGxAWW|G}pfiXr֘'8 S 4 *q(Ȇз&6ʔ16kzQAJDo13ҟsIC 8KXt Dr E4҂P-w˪Fj<|gdnǶ +B+9uK_Eg A(hJkâtH4ıGnӒ)wD\F;iPSF1vM"6`\d γ6+z ѨJc† H?H, X]#'x$Ŭ sfC@c0:J#!OD<"'+iS##PzGA3]}v5E_|DC+m{GT2ZUO{BD"m;#N!]>$V +A.dR{TLwYN!SWLSI9-)}(2¹Ѻf8\ .! ZX.d0n;S FxU-("V( ˿H<6FP>`z|l4/1 %i[(Q5ܐDc}㫉VJ9NPNQ그3Y[5#:6;#?Lcto]r}AoLG{F36tUyM XrbbSvx ?>~ڌl؛.csk)u kiMĶ-J/W`D.1./?e DL}M̬Kܰg R^sB?5Қ|B8p}ktPw;_%gizj|p4J{vᣉ$\1~TsY5yaëej ĞLpCg9D gATiw# >/˰EFܨmNF&`+Y$" R9</z^6^6*B[-̝py +Xң;k:h0lw KT X>xWM92!:x9j<۲2f} 5kHZ>MUJͅvLel]eHS3LJ|v)DZFD|NWY'=i"_)wu)~D3G.Ԩ93?96*<UM~c!IwF5#EЫwT8MXIuɳǴbw/FMQEMWW~6(ZMǥe;pF4 ^8XVh,(܄Sʾ}פe "\9ǠN0ʦr0O+TQL~Ro-TVb8\Uhd yBQ +.u3iK=,#% ۹D~25^uƌZY@1Yu1gJ芔s{n|k(0l*[P{T,Pȑ/_*Y +2q+I@7k6{_!e(Qh%k71p(G1 'Q-w zsP/3Ɂߣc>+OGu'$' ]RhMwa"G  5*°A5?ST_ Ҕ\VqbiEzMt*ٖڦ~K'GuoR'MkH'aIݦoRW\KP'$~3GS,W'k1M0tiF2Bf221MXww߂y% }7L6ܣ9Vgʾ㵰 n}-, vw܅Hi>yr?Y = !$34lϋ { itf6XtJ3( Ohp Qh ql ++do3g0!rOq.B+tfoԇ5JDq~F랔 myM;Hà"AF_'i@0fT&#fT#h͈g p+pv!^r؋ zA l7١OHW|SwQ!/߃e=2,/b߉P>J # O\I\ƿҼ (;iD"WG*޳k9V͎PXvZ/iN(.9O:=6}xu!ENg[&oI/qjREZ5#a)=|*)ش(:@;*Sȩ({E2S/րc +Vc)7F^;vo[pϞkN[Gn7i +1W[Gw+ߢRB6kg+.7꜋zc208Ν(kS-@Ng߳ih]$,!Wp؃ƻ§磬m98jʉEPwSl@{+n](kQp6\},?Xb^bh ,2yjNYu[=2GCJj^ײbEgrkE/21<>kæRdk[jqA8Iv4`F k\Lãŵ|&{JE-ӣy#z#FsD`…KAޕe 2}ӋQRb}4x GX%wBFSF=z +Ǔ)s7ۓCCA6=*)g`i_ "KL W ; + +9 %YX\[6'ihȄyjRD;"#>'44461@3^S9sہ* rfO -̆>'Te;Kta鹦4_8x \Yp$vZ[|U22rA2i\@,mIU Efqy4Ӎ(/E ;(oN(AH :'$ވO +OC CVۈXԲ#{7.V/p U>OD,T]E捒푀sm}5@P{ ;q _;k tuu+f5o8!^,˷ߊYZ/|CRt0ʿs}ԋ{q +դqοi?@q&1 4L~ j÷3A<;kBi1PRvn]w*P(M+3) +nHʎTJh6i)57 C~Fo PEd{kmHypG'.ϖmvOq*yҜʋ*3|ǍEW=y;oItM͉%]U uQ|-zuqg[]wxHL*#Isy! tM I)Q.)Y2u|[#I(+cu3've}&',c&'|)ܖZbXN2NY~/}|4mT}PՐJA+*Td2C=}8h,Z]j%E3 ~IΝ]YECBCI[3ÄŘ8=bs[zѣДh4i}Y7>}ہj,}^? slSZ3=V[: Do4;sz f=NoJVp ک]!/H;V͗ }VjFk;N%[n،$,]bxro>v;.B]%&~ HƂH c:_MXU5[Xeӥ#~b'B=`ɜcd,* ! +"=FՁ-vFF !'N,Fϸ=zݹy+],}o糗b/*n; 7H5*XhsZ6ae'"/|`@ҕiT=:/|?ոK.êxQHr,8!?\kTsI\UXΓYa_>yzhqY/>_x`OY_]w\ } |~4!Kp{FTԎ.T-nPC^:S'maɺa8[h1z?{WB=%{M%1Dֆ̲Y%4 D]gh ͫƔliUS3$` +*LNW'Мۻ$ýG9i, /RfIy7hmȍxbGܢtg[QnA b7[ S<48c+w1u5Q{zԥbB-u(}E+ C +)a!WP/C?|%:Cv G 9c4g7N.,B3/YPϦPJgۭ.%&Ų)>ɍfVCJFȶ6:'Ĥ(SNfq@d&=> kƣr4TGD80~xWؐe>adyqlW +{UjEa*C&RgD J9/5#yċ>Pc +! 3v +Y9dBL7)X4'hozͭN +-f޸A"+[ ݘĀB~8Tk{ȥD7%}(zwFڤ#9gpmu&u +ɠxƓH곑1(ȯx䷓f}4 E^"JRow ))>G0BCw.!"gbY8ofͯ$aH>g"Syѡ܊"1- DzDɓKvk?OgRWaЁA챁U@s"kࢼ\; <<\jkW +GCJ)Jp(RD>4ZZU|'!WkU.c4eI`EMx|5tlUܚ<Ƭ@ FAT♥#K -kmFqAMIc {- +R=.qilNL8*Gb8+x#2i}nusFjX_U=>2K8bK!\tPh YLɭUNȔZ(j9iJy^_SEZvc641F0a +HѤa gHFzt0 BtMWV}ڙ̱,331( WT?F-RVu[bGL~Їlx@\`+=ČơpUe!t<ֹyYNte uqH*ipl^QmCe[^VG3g=Ls2&ridy SSStF=JghcSΦ:'2s7MkL/E8jnAbUi$&>vG˨T + jhN*fcI4°b˪G钜ól`#ȴOx:ˡ7,VqɪIĦ,r [c!6Imi0H@9pl+4,VĆ>~)mN6N_Y%y^H djo#*KiQН]Oŧ +5vrxx/{.Uޖi||bNc'@`NA(ω;Gװ]]=y +-z4BHλ/eb mP#I{ +vXq;ӶEV һ_on2AjX$ml1qnWW +,UIHs88KLɓ9R跟q # +=)p*:xvbqYb rM&1W Re>HOc |<$HDa[t`hzhXƎS`Jv&iv_'V~Dl:LWJ(Ȁubr#ǺC`3^b{;AJ;wM/!0=fJL'wIݙ~pw1BəJhvpH^ϢdVRHZn66iuP^4K"]7XP=}yPZĒ~VT[,![X:Ź^ܿaCc>`HɅq:sD W5qK!W9( VF>E_$aܸh9Әg%R* $ܑudL]j}zsI FP؀qw(M܋7рJ57CSy(!#8-sO v}Oc&ժw,ToU RL4ق)Fn5V#hZeȔj6'Q=Rƥ P W*g rcVF.YMa$͜ 4N5JY-,#yL71vדּA0sA_+n ~Τڎ8s& p:Ѓxge@57GZ)z{'xVܸ( >f?F2ъ)4Q C2Do8-%9 qb"k:vaZ鎲L,K&d'y]WSwz^?CDٛQ13("I,MVMDULck&1sCDt)Z\cN~;@X`A:X'#dZ7vA2&l0xhXpYN\B\ Gg{MDI?vޢL'V}>zj?WKNTu1sPA_}՘^>s ⯺R sWIEF9M j?̃vF-sh%K'VPKbM5نB  COPYRIGHT-jai_imageio.txtUT/EUxPKbM5@" DISTRIBUTIONREADME-jai_imageio.txtUT/EUxPKbM5i  ENTITLEMENT-jai_imageio.txtUT/EUxPKbM5U)*L8 k LICENSE-jai_imageio.txtUT/EUxPKbM5Gd!' "THIRDPARTYLICENSEREADME-jai_imageio.txtUT/EUxPKbM5c4U  1UNINSTALL-jai_imageioUT/EUxPK +bM5 A2jre/UT/EUxPK +bM5 A2jre/lib/UT/EUxPK +bM5 A2jre/lib/i386/UT/EUxPKbM5*W :3jre/lib/i386/libclib_jiio.soUT/EUxPK +bM5 Ajre/lib/ext/UT/EUxPKbM59:g Mjre/lib/ext/jai_imageio.jarUT/EUxPKbM5W 0jre/lib/ext/clibwrapper_jiio.jarUT/EUxPK $| \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java/src/jai_imageio.patch1 b/rpms/awips2.core/Installer.java/src/jai_imageio.patch1 new file mode 100644 index 0000000000..20550f0e7f --- /dev/null +++ b/rpms/awips2.core/Installer.java/src/jai_imageio.patch1 @@ -0,0 +1,45 @@ +*** jai_imageio-1_1-lib-linux-i586-jdk.bin 2011-09-08 14:29:01.000000000 -0500 +--- jai_imageio-1_1-lib-linux-i586-jdk.bin.update 2011-09-08 14:30:10.000000000 -0500 +*************** +*** 1,6 **** + #!/bin/sh + PATH=/bin:/usr/bin +! more < $outname + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + +--- 160,166 ---- + fi + outname=install.sfx.$$ + echo "Unpacking..." +! tail -n +213 $0 > $outname + if [ -x /usr/bin/cksum ] ; then + echo "Checksumming..." + +*************** +*** 195,202 **** + else + ARCH=i386 # solaris-i586 or solaris-amd64 + fi +- elif [ `expr \`uname -m\` : .*64.*` != '0' ]; then +- ARCH=amd64 # linux-amd64 + else + ARCH=i386 # linux-i586 + fi +--- 195,200 ---- diff --git a/rpms/awips2.core/Installer.java/src/jdk-6u27-linux-i586.bin.REMOVED.git-id b/rpms/awips2.core/Installer.java/src/jdk-6u27-linux-i586.bin.REMOVED.git-id new file mode 100644 index 0000000000..ba39329cdb --- /dev/null +++ b/rpms/awips2.core/Installer.java/src/jdk-6u27-linux-i586.bin.REMOVED.git-id @@ -0,0 +1 @@ +303a906829fbffcb6d26248c0d6dca4bf1a115da \ No newline at end of file diff --git a/rpms/awips2.core/Installer.java/src/jdk.patch1 b/rpms/awips2.core/Installer.java/src/jdk.patch1 new file mode 100644 index 0000000000..0ed99d1c6e --- /dev/null +++ b/rpms/awips2.core/Installer.java/src/jdk.patch1 @@ -0,0 +1,19 @@ +*** jdk-6u27-linux-i586.bin 2011-09-15 16:16:27.000000000 -0500 +--- jdk-6u27-linux-i586.bin.update 2011-09-15 16:19:56.000000000 -0500 +*************** +*** 61,67 **** + return 0 + } + +! javahome=jdk1.6.0_27 + platform=linux + PACKED_JARS="jre/lib/rt.jar jre/lib/jsse.jar jre/lib/charsets.jar lib/tools.jar jre/lib/ext/localedata.jar jre/lib/plugin.jar jre/lib/javaws.jar jre/lib/deploy.jar" + ARCH=32 +--- 61,67 ---- + return 0 + } + +! javahome=java + platform=linux + PACKED_JARS="jre/lib/rt.jar jre/lib/jsse.jar jre/lib/charsets.jar lib/tools.jar jre/lib/ext/localedata.jar jre/lib/plugin.jar jre/lib/javaws.jar jre/lib/deploy.jar" + ARCH=32 diff --git a/rpms/awips2.core/Installer.java/src/pydev_certificate.cer b/rpms/awips2.core/Installer.java/src/pydev_certificate.cer new file mode 100644 index 0000000000..e4463b923e Binary files /dev/null and b/rpms/awips2.core/Installer.java/src/pydev_certificate.cer differ diff --git a/rpms/awips2.core/Installer.ldm/component.spec b/rpms/awips2.core/Installer.ldm/component.spec new file mode 100644 index 0000000000..cd24da758a --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/component.spec @@ -0,0 +1,411 @@ +# +# AWIPS II LDM Spec File +# +%define __prelink_undo_cmd %{nil} +Name: awips2-ldm +Summary: AWIPS II LDM Distribution +Version: 6.8.1 +Release: 18 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-ldm +provides: awips2-base-component + +%description +AWIPS II LDM Distribution - Contains AWIPS II LDM. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi +LDM_BUILD_DIR="/tmp/awips2-${USER}/ldm-build" +LDM_TAR_DIR="Installer.rpm/awips2.core/Installer.ldm/src" +LDM_TAR_FILE="ldm-6.8.1.tar.gz" + +if [ -d ${LDM_BUILD_DIR} ]; then + rm -rf ${LDM_BUILD_DIR} +fi +mkdir -p ${LDM_BUILD_DIR} +if [ -d ${RPM_BUILD_ROOT}/usr/local/ldm]; then + rm -rf ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/ldm-6.8.1 +fi +mkdir -p ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/ldm-6.8.1 +# We cannot safely build ldm on a machine awips2-ldm +# is already installed on. +if rpm -q awips2-ldm +then + echo "ERROR: the awips2-ldm rpm must not be built" + echo " on a machine with an awips2-ldm" + echo " installation." + echo "Unable To Continue ... Terminating." + exit 1 +fi +if [ -d /usr/local/ldm-6.8.1 ]; then + rm -rf /usr/local/ldm-6.8.1 +fi +mkdir -p /usr/local/ldm-6.8.1 + +# Copy the src to the build directory. +cp ${WORKSPACE_DIR}/${LDM_TAR_DIR}/${LDM_TAR_FILE} \ + ${LDM_BUILD_DIR} +# Copy patch0 to the build directory. +cp ${WORKSPACE_DIR}/${LDM_TAR_DIR}/ldm-6.8.1.patch0 \ + ${LDM_BUILD_DIR} +# Copy patch1 to the build directory. +cp ${WORKSPACE_DIR}/${LDM_TAR_DIR}/ldm-6.8.1.patch1 \ + ${LDM_BUILD_DIR} +cd ${LDM_BUILD_DIR} +tar -xvf ${LDM_TAR_FILE} +# remove the copied tar file +rm -f ${LDM_TAR_FILE} + +cd ldm-6.8.1 +patch -p1 < ../ldm-6.8.1.patch0 + +# remove the patch file +rm -f ../ldm-6.8.1.patch0 + +patch -p1 < ../ldm-6.8.1.patch1 + +# remove the patch file +rm -f ../ldm-6.8.1.patch1 + +%build +LDM_BUILD_DIR="/tmp/awips2-${USER}/ldm-build" +LDM_TAR_DIR="Installer.rpm/awips2.core/Installer.ldm/src" +LDM_TAR_FILE="ldm-6.8.1.tar.gz" + +# go to the ldm src directory. +cd ${LDM_BUILD_DIR}/ldm-6.8.1/src +# set LDMHOME +export LDMHOME=/usr/local/ldm-6.8.1 +# run the configure script + +./configure \ + --prefix=${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/ldm-6.8.1 +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: configure of ldm-6.8.1 has failed." + echo "Unable To Continue ... Terminating." + exit 1 +fi +# make ldm +make clean +make +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: make of ldm-6.8.1 has failed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +%install +LDM_BUILD_DIR="/tmp/awips2-${USER}/ldm-build" + +cd ${LDM_BUILD_DIR}/ldm-6.8.1/src +make install +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: install of ldm-6.8.1 has failed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# copy the ldm src to the installation +cd ${LDM_BUILD_DIR}/ldm-6.8.1 +cp -r src ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/ldm-6.8.1 + +# remove the build directory. +rm -rf ${LDM_BUILD_DIR} + +# re-locate the etc directory in the install +cd /usr/local/ldm-6.8.1 +mv etc ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1 + +# create links to the ldm directories +cd ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1 +ln -s ldm-6.8.1 runtime +ln -s runtime/bin bin +ln -s runtime/include include +ln -s runtime/lib lib +ln -s runtime/man man +ln -s runtime/src src + +# create our standard directories +mkdir .ssh +touch .ssh/known_hosts +mkdir data +mkdir decoders +mkdir logs + +# create our ld.so.conf.d file. +mkdir -p ${RPM_BUILD_ROOT}/etc/ld.so.conf.d +touch ${RPM_BUILD_ROOT}/etc/ld.so.conf.d/awips2-i386.conf +echo "/usr/local/ldm-6.8.1/lib" >> \ + ${RPM_BUILD_ROOT}/etc/ld.so.conf.d/awips2-i386.conf + +# install our "patches" +PATCH_DIR="Installer.rpm/awips2.core/Installer.ldm/patch" +# Copy the hidden files. +hidden_files=( '.bash_profile' '.bashrc' '.cshrc' \ + '.lesshst' '.viminfo' ) +for hiddenFile in ${hidden_files[*]}; do + cp ${WORKSPACE_DIR}/${PATCH_DIR}/${hiddenFile} \ + ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1 +done +# Copy the contents of the bin directory. +cp -f ${WORKSPACE_DIR}/${PATCH_DIR}/bin/* \ + ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/bin +# Copy the contents of the decoder directory. +cp ${WORKSPACE_DIR}/${PATCH_DIR}/decoders/* \ + ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/decoders +# Copy the contents of the lib directory. +cp -P ${WORKSPACE_DIR}/${PATCH_DIR}/lib/* \ + ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/lib +# Copy the contents of the etc directory. +cp -f ${WORKSPACE_DIR}/${PATCH_DIR}/etc/* \ + ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/etc + +# Merge pqact.conf.oax and pqact.conf.template to create +# our pqact.conf file. +pushd . > /dev/null 2>&1 +cd ${RPM_BUILD_ROOT}/usr/local/ldm-6.8.1/etc +if [ ! -f pqact.conf.template ]; then + echo "ERROR: pqact.conf.template does not exist." + exit 1 +fi +if [ ! -f pqact.conf.oax ]; then + echo "ERROR: pqact.conf.oax does not exist." + exit 1 +fi + +cp pqact.conf.template pqact.conf +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to create the pqact.conf file." + exit 1 +fi +cat pqact.conf.oax >> pqact.conf +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to merge pqact.conf.oax and pqact.conf." + exit 1 +fi +popd > /dev/null 2>&1 + +# Move our profile.d script to its final location. +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d +cp ${WORKSPACE_DIR}/${PATCH_DIR}/profile.d/awipsLDM.csh \ + ${RPM_BUILD_ROOT}/etc/profile.d + +%pre +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II ldm...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = /usr/local/ldm-6.8.1\e[m" +if [ -d /tmp/ldm ]; then + rm -rf /tmp/ldm +fi +mkdir -p /tmp/ldm +for dir in etc .ssh; +do + if [ -d /usr/local/ldm-6.8.1/${dir} ]; then + scp -qrp /usr/local/ldm-6.8.1/${dir} /tmp/ldm + fi +done + +%post +cd /usr/local/ldm-6.8.1/src +export LDMHOME=/usr/local/ldm-6.8.1/ldm-6.8.1 +./configure --prefix=/usr/local/ldm-6.8.1/ldm-6.8.1 +make clean +make +make install_setuids +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "WARNING: 'make install_setuids' has failed." +fi +for dir in etc .ssh; +do + if [ -d /tmp/ldm/${dir} ]; then + scp -qrp /tmp/ldm/${dir} /usr/local/ldm-6.8.1 + fi +done + +#if a remote CP site, copy over the filtered data configuration +case $SITE_IDENTIFIER in gum|hfo|pbp|vrh) + echo -e "\nInstalling ldmd.conf for $SITE_IDENTIFIER." + cp /usr/local/ldm-6.8.1/etc/ldmd.conf.$SITE_IDENTIFIER /usr/local/ldm-6.8.1/etc/ldmd.conf;; +esac + +#remove the extra configuration files +rm -f /usr/local/ldm-6.8.1/etc/ldmd.conf.* + +/sbin/ldconfig + +rm -rf /tmp/ldm + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II ldm Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +/sbin/ldconfig + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II ldm Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} +rm -rf /usr/local/ldm-6.8.1 +rm -rf /tmp/awips2-${USER}/ldm-build + +%files +%defattr(-,ldm,fxalpha,-) +%attr(644,root,root) /etc/ld.so.conf.d/awips2-i386.conf +%dir /usr/local/ldm-6.8.1 +/usr/local/ldm-6.8.1/.bash_profile +/usr/local/ldm-6.8.1/.bashrc +/usr/local/ldm-6.8.1/.cshrc +/usr/local/ldm-6.8.1/.lesshst +%dir /usr/local/ldm-6.8.1/.ssh +%config(noreplace) /usr/local/ldm-6.8.1/.ssh/known_hosts +/usr/local/ldm-6.8.1/.viminfo + +/usr/local/ldm-6.8.1/bin +/usr/local/ldm-6.8.1/data +%dir /usr/local/ldm-6.8.1/decoders +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/binaryWriter +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/binWriter +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/cruft +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/decrypt_file +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/keygen +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/metarWriter +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/purge.sh +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/decoders/textWriter +/usr/local/ldm-6.8.1/etc +/usr/local/ldm-6.8.1/include +/usr/local/ldm-6.8.1/lib +%dir /usr/local/ldm-6.8.1/logs +/usr/local/ldm-6.8.1/man +/usr/local/ldm-6.8.1/runtime +/usr/local/ldm-6.8.1/src + +%dir /usr/local/ldm-6.8.1/ldm-6.8.1 +%dir /usr/local/ldm-6.8.1/ldm-6.8.1/bin +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/afos +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/ddplus +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/dds +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/edexBridge +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/feedme +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/feedtest +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/hds +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/hrs +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/hupsyslog +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/ids +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/ldmadmin +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/ldmcheck +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/ldmfail +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/ldmping +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/ldmsend +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/monitor_data_store.sh +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/netcheck +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/newlog +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/notifyme +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/plotMetrics +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pps +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqact +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqcat +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqcheck +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqcreate +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqexpire +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqing +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqinsert +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqmon +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqsend +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqsurf +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/pqutil +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/regex +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/rpc.ldmd +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/rtstats +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/scour +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/scriptconfig +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/bin/syscheck +/usr/local/ldm-6.8.1/ldm-6.8.1/include +%dir /usr/local/ldm-6.8.1/ldm-6.8.1/lib +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_date_time.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_date_time.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_date_time.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_filesystem.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_filesystem.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_filesystem.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_iostreams.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_iostreams.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_iostreams.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_prg_exec_monitor.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_prg_exec_monitor.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_prg_exec_monitor.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_program_options.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_program_options.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_program_options.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_python.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_python.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_python.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_regex.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_regex.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_regex.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_serialization.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_serialization.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_serialization.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_signals.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_signals.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_signals.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_test_exec_monitor.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_test_exec_monitor.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_test_exec_monitor.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_thread.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_thread.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_thread.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_unit_test_framework.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_unit_test_framework.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_unit_test_framework.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_wserialization.so +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_wserialization.so.1.33.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libboost_wserialization.so.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcc.a +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcc.so +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcc.so.4 +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcc.so.4.0.0 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcs.a +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcs.so +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcs.so.4 +%attr(755,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libcoroipcs.so.4.0.0 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libldm.a +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidclient.so +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidclient.so.4 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidclient.so.4.0.0 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidcommon.so +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidcommon.so.4 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidcommon.so.4.0.0 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidmessaging.so +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidmessaging.so.3 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidmessaging.so.3.0.2 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidtypes.so +%attr(777,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidtypes.so.1 +%attr(644,ldm,fxalpha) /usr/local/ldm-6.8.1/ldm-6.8.1/lib/libqpidtypes.so.1.1.1 +%docdir /usr/local/ldm-6.8.1/ldm-6.8.1/man +/usr/local/ldm-6.8.1/ldm-6.8.1/man +/usr/local/ldm-6.8.1/ldm-6.8.1/src +%attr(755,root,root) /etc/profile.d/awipsLDM.csh \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/.bash_profile b/rpms/awips2.core/Installer.ldm/patch/.bash_profile new file mode 100644 index 0000000000..25ff7c2770 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/.bash_profile @@ -0,0 +1,4 @@ +export LDMHOME=$HOME +export PATH=$HOME/decoders:$HOME/util:$HOME/bin:$PATH +export MANPATH=$HOME/main:/usr/share/man +umask 003 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/.bashrc b/rpms/awips2.core/Installer.ldm/patch/.bashrc new file mode 100644 index 0000000000..3326d32217 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/.bashrc @@ -0,0 +1 @@ +umask 003 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/.cshrc b/rpms/awips2.core/Installer.ldm/patch/.cshrc new file mode 100644 index 0000000000..9b3115ef44 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/.cshrc @@ -0,0 +1,6 @@ +umask 002 +setenv LDMHOME $HOME +set path=($HOME/decoders $HOME/util $HOME/bin $path) +setenv MANPATH $HOME/man +setenv VDIR ldm-6.7.0 +limit coredumpsize unlimited \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/.lesshst b/rpms/awips2.core/Installer.ldm/patch/.lesshst new file mode 100644 index 0000000000..e69de29bb2 diff --git a/rpms/awips2.core/Installer.ldm/patch/.viminfo b/rpms/awips2.core/Installer.ldm/patch/.viminfo new file mode 100644 index 0000000000..e69de29bb2 diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/binWriter b/rpms/awips2.core/Installer.ldm/patch/decoders/binWriter new file mode 100755 index 0000000000..2ac993b1a8 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/decoders/binWriter @@ -0,0 +1,93 @@ +#!/usr/bin/perl +# +# metarWriter +# +# Program to split metar type bulletins into individual reports, then write +# them to a directory structure ~/data/metar/yyyymmdd/stn using the station +# name as the file name. The additional reports for the hour are appended to +# file. +# +use Time::Local; +use File::Path; +#no encoding; + +# process command line switches +while ($_ = $ARGV[0], /^-/) { + shift; + last if /^--$/; + /^(-v)/ && $verbose++; +} +# process input parameters +if( $#ARGV == 1 ) { + $datadir = $ARGV[ 0 ] ; + $dateTime = $ARGV[ 1 ]; +} else { + die "usage: metarWriter datatdir yyyymm < rawMetars $!\n" ; +} + +# set interrupt handler +$SIG{ 'INT' } = 'atexit' ; +$SIG{ 'KILL' } = 'atexit' ; +$SIG{ 'TERM' } = 'atexit' ; +$SIG{ 'QUIT' } = 'atexit' ; + +chdir( "$datadir" ) ; + +$debug = 0; + +open( LOG, ">/usr/local/ldm/output.log" ) if($debug); + +# Now begin parsing file and decoding observations breaking on cntrl C +$/ = "\067\067\067\067\015\015\012\003"; +#$/ = 0x37 . 0x37 . 0x37 . 0x37 . 0x0D . 0x0D . 0x0A . 0x03; +$increment = 0; + +print LOG "Set line break\n" if($debug); + +# set select processing here from STDIN +START: +while( 1 ) { + print LOG "Starting work...\n" if($debug); + open( STDIN, '-' ) ; + binmode STDIN; + vec($rin,fileno(STDIN),1) = 1; + $timeout = 1200 ; # 20 minutes + $nfound = select( $rout = $rin, undef, undef, $timeout ); + print LOG "Opened standard in\n" if($debug); + # timed out + if( ! $nfound ) { + print "Shut down, time out 20 minutes\n" ; + atexit() ; + } + atexit( "eof" ) if( eof( STDIN ) ) ; + + # Process each line of metar bulletins, header first + $_ = ; + $_ =~ /(\w\w\w\w\d\d) (\w\w\w\w) (\d\d)(\d\d)(\d\d)/; + $wmoHeader = "$1_$2_$3$4$5"; + $filename = "$wmoHeader\_$increment.bin"; + print LOG "$filename\n" if($debug); + open( STN, ">$filename" ) ; + binmode STN; + print STN "$_" ; + close STN ; + $increment++; + $increment = 0 if($increment == 1000000000); + +} # end while( 1 ) +atexit( "eof" ); +exit( 0 ) ; #should never get here + +# execute at exit +sub atexit +{ +local( $sig ) = @_ ; + +if( $sig eq "eof" ) { + print "eof on STDIN --shutting down\n" ; +} elsif( defined( $sig )) { + print "Caught SIG$sig --shutting down\n" ; +} +exit( 0 ) ; + +} #end atexit diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/binaryWriter b/rpms/awips2.core/Installer.ldm/patch/decoders/binaryWriter new file mode 100755 index 0000000000..3cc31f8f26 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/decoders/binaryWriter @@ -0,0 +1,82 @@ +#!/usr/bin/perl +# +# metarWriter +# +# Program to split metar type bulletins into individual reports, then write +# them to a directory structure ~/data/metar/yyyymmdd/stn using the station +# name as the file name. The additional reports for the hour are appended to +# file. +# +use Time::Local; +#no encoding; + +# process command line switches +while ($_ = $ARGV[0], /^-/) { + shift; + last if /^--$/; + /^(-v)/ && $verbose++; +} +# process input parameters +if( $#ARGV == 1 ) { + $datadir = $ARGV[ 0 ] ; + $dateTime = $ARGV[ 1 ]; +} else { + die "usage: metarWriter datatdir yyyymm < rawMetars $!\n" ; +} + +# set interrupt handler +$SIG{ 'INT' } = 'atexit' ; +$SIG{ 'KILL' } = 'atexit' ; +$SIG{ 'TERM' } = 'atexit' ; +$SIG{ 'QUIT' } = 'atexit' ; + +chdir( "$datadir" ) ; + +# Now begin parsing file and decoding observations breaking on cntrl C +$/ = "\cC" ; + +$increment = 0; + +# set select processing here from STDIN +START: +while( 1 ) { + open( STDIN, '-' ) ; + vec($rin,fileno(STDIN),1) = 1; + $timeout = 1200 ; # 20 minutes + $nfound = select( $rout = $rin, undef, undef, $timeout ); + # timed out + if( ! $nfound ) { + print "Shut down, time out 20 minutes\n" ; + atexit() ; + } + atexit( "eof" ) if( eof( STDIN ) ) ; + + # Process each line of metar bulletins, header first + $_ = ; + $_ =~ /(\w\w\w\w\d\d) (\w\w\w\w) (\d\d\d\d\d\d)/; + $wmoHeader = "$1_$2_$3"; + $filename = "$wmoHeader\_$increment.txt"; + open( STN, ">$filename" ) ; + binmode(STN); + print STN "$_\n" ; + close STN ; + $increment++; + $increment = 0 if($increment == 1000000000); + +} # end while( 1 ) +atexit( "eof" ); +exit( 0 ) ; #should never get here + +# execute at exit +sub atexit +{ +local( $sig ) = @_ ; + +if( $sig eq "eof" ) { + print "eof on STDIN --shutting down\n" ; +} elsif( defined( $sig )) { + print "Caught SIG$sig --shutting down\n" ; +} +exit( 0 ) ; + +} #end atexit diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/cruft b/rpms/awips2.core/Installer.ldm/patch/decoders/cruft new file mode 100755 index 0000000000..273977765d Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/decoders/cruft differ diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/decrypt_file b/rpms/awips2.core/Installer.ldm/patch/decoders/decrypt_file new file mode 100755 index 0000000000..e949ed0488 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/decoders/decrypt_file differ diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/keygen b/rpms/awips2.core/Installer.ldm/patch/decoders/keygen new file mode 100755 index 0000000000..5c71e12d47 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/decoders/keygen differ diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/metarWriter b/rpms/awips2.core/Installer.ldm/patch/decoders/metarWriter new file mode 100755 index 0000000000..bda8ed38ce --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/decoders/metarWriter @@ -0,0 +1,78 @@ +#!/usr/bin/perl +# +# metarWriter +# +# Program to split metar type bulletins into individual reports, then write +# them to a directory structure ~/data/metar/yyyymmdd/stn using the station +# name as the file name. The additional reports for the hour are appended to +# file. +# +use Time::Local; +use Time::HiRes qw(gettimeofday); +#no encoding; + +# process command line switches +while ($_ = $ARGV[0], /^-/) { + shift; + last if /^--$/; + /^(-v)/ && $verbose++; +} +# process input parameters +if( $#ARGV == 1 ) { + $datadir = $ARGV[ 0 ] ; + $dateTime = $ARGV[ 1 ]; +} else { + die "usage: metarWriter datatdir yyyymm < rawMetars $!\n" ; +} + +# set interrupt handler +$SIG{ 'INT' } = 'atexit' ; +$SIG{ 'KILL' } = 'atexit' ; +$SIG{ 'TERM' } = 'atexit' ; +$SIG{ 'QUIT' } = 'atexit' ; + +chdir( "$datadir" ) ; + +# Now begin parsing file and decoding observations breaking on cntrl C +$/ = "\cC" ; + +# set select processing here from STDIN +START: +while( 1 ) { + open( STDIN, '-' ) ; + ($s, $usec) = gettimeofday(); + vec($rin,fileno(STDIN),1) = 1; + $timeout = 1200 ; # 20 minutes + $nfound = select( $rout = $rin, undef, undef, $timeout ); + # timed out + if( ! $nfound ) { + print "Shut down, time out 20 minutes\n" ; + atexit() ; + } + atexit( "eof" ) if( eof( STDIN ) ) ; + + # Process each line of metar bulletins, header first + $_ = ; + $_ =~ /(S[AP]\w\w\d\d) (\w\w\w\w) (\d\d\d\d\d\d)/; + $wmoHeader = "$1_$2_$3"; + $filename = "$wmoHeader\_$s\_$usec.txt"; + open( STN, ">$filename" ) ; + print STN "$_\n" ; + close STN ; +} # end while( 1 ) +atexit( "eof" ); +exit( 0 ) ; #should never get here + +# execute at exit +sub atexit +{ +local( $sig ) = @_ ; + +if( $sig eq "eof" ) { + print "eof on STDIN --shutting down\n" ; +} elsif( defined( $sig )) { + print "Caught SIG$sig --shutting down\n" ; +} +exit( 0 ) ; + +} #end atexit diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/purge.sh b/rpms/awips2.core/Installer.ldm/patch/decoders/purge.sh new file mode 100755 index 0000000000..0921b34221 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/decoders/purge.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +TRUE=1 + +while [ $TRUE -eq 1 ] +do + COUNT=`find /tmp/sbn -mmin +10 |wc -l` + if [ $COUNT -gt 0 ] + then + find /tmp/sbn -mmin +10 | xargs rm -rf + echo "Deleted $COUNT files from /tmp/sbn." + fi + sleep 5 +done + diff --git a/rpms/awips2.core/Installer.ldm/patch/decoders/textWriter b/rpms/awips2.core/Installer.ldm/patch/decoders/textWriter new file mode 100755 index 0000000000..cf9d5bd312 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/decoders/textWriter @@ -0,0 +1,85 @@ +#!/usr/bin/perl +# +# metarWriter +# +# Program to split metar type bulletins into individual reports, then write +# them to a directory structure ~/data/metar/yyyymmdd/stn using the station +# name as the file name. The additional reports for the hour are appended to +# file. +# +use Time::Local; +#no encoding; + +# process command line switches +while ($_ = $ARGV[0], /^-/) { + shift; + last if /^--$/; + /^(-v)/ && $verbose++; +} +# process input parameters +if( $#ARGV == 1 ) { + $datadir = $ARGV[ 0 ] ; + $dateTime = $ARGV[ 1 ]; +} else { + die "usage: metarWriter datatdir yyyymm < rawMetars $!\n" ; +} + +# set interrupt handler +$SIG{ 'INT' } = 'atexit' ; +$SIG{ 'KILL' } = 'atexit' ; +$SIG{ 'TERM' } = 'atexit' ; +$SIG{ 'QUIT' } = 'atexit' ; + +chdir( "$datadir" ) ; + +# Now begin parsing file and decoding observations breaking on cntrl C +$/ = "\cC" ; + +$increment = 0; + +# set select processing here from STDIN +START: +while( 1 ) { + open( STDIN, '-' ) ; + vec($rin,fileno(STDIN),1) = 1; + $timeout = 1200 ; # 20 minutes + $nfound = select( $rout = $rin, undef, undef, $timeout ); + # timed out + if( ! $nfound ) { + print "Shut down, time out 20 minutes\n" ; + atexit() ; + } + atexit( "eof" ) if( eof( STDIN ) ) ; + + # Process each line of metar bulletins, header first + $_ = ; + # NOTE: added 6/27/08 to prevent invalid file names - mwf + if ($_ =~ /(\w\w\w\w\d\d) (\w\w\w\w) (\d\d\d\d\d\d)/) { + $wmoHeader = "$1_$2_$3"; + } else { + $wmoHeader = "UNK_UNK_UNK"; + } + $filename = "$wmoHeader\_$increment.txt"; + open( STN, ">$filename" ) ; + print STN "$_\n" ; + close STN ; + $increment++; + $increment = 0 if($increment == 1000000000); + +} # end while( 1 ) +atexit( "eof" ); +exit( 0 ) ; #should never get here + +# execute at exit +sub atexit +{ +local( $sig ) = @_ ; + +if( $sig eq "eof" ) { + print "eof on STDIN --shutting down\n" ; +} elsif( defined( $sig )) { + print "Caught SIG$sig --shutting down\n" ; +} +exit( 0 ) ; + +} #end atexit diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/ldmadmin-pl.conf b/rpms/awips2.core/Installer.ldm/patch/etc/ldmadmin-pl.conf new file mode 100644 index 0000000000..aa6626f826 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/ldmadmin-pl.conf @@ -0,0 +1,158 @@ + +# The fully-qualified hostname of the computer system. If the name isn't +# fully-qualified (i.e., if it doesn't include the domain) then replace +# "dev27.oma.us.ray.com" with the fully-qualified hostname. +chomp($hostname = `hostname --fqdn`); + +# The LDM home directory: +$ldmhome = "/usr/local/ldm-6.8.1"; + +# Requested size, in bytes, of the data portion of the LDM product-queue. The +# actual size might be slightly greater than the requested size for performance +# reasons. It is recommended that IDD sites keep at least one hour's worth of +# data in the queue. This means that the queue size should depend upon how +# much data is requested. After the queue has stabilized, use the pqmon(1) +# utility to monitor the age of the oldest product in the queue and adjust this +# value, if necessary. Understood suffixes include "K", "M", and "G" for +# "kilo", "mega", and "giga", respectively. The default requested size +# is 500 megabytes (i.e., "500M"). +$pq_size = "500M"; + +# Number of slots in the LDM product-queue. This is the maximum number +# of data-products that the product-queue can contain. Because it is +# recommended that IDD sites keep at least one hour's worth of data in +# the queue, this value should equal the maximum expected number of +# data-products per hour. If the value is "default", then the number +# of slots will be computed using the size of the product-queue and a +# mean data-product size of 4096 bytes. Use the pqmon(1) utility to +# monitor the number of data-products in the product-queue and adjust +# this value, if necessary. +$pq_slots = "default"; + +# Size of the pqsurf(1) product-queue in bytes. Do not use any suffixes. This +# is only meaningful if your LDM configuration-file executes the pqsurf(1) +# utility. You probably won't need to change this. +$surf_size = "2000000"; + +# Default number of log files that the "newlog" command should keep around: +$numlogs = 7; + +# File paths - everything here is based on the $ldmhome variable by default: +$bin_path = "$ldmhome/bin"; +$etc_path = "$ldmhome/etc"; +$log_path = "$ldmhome/logs"; +$data_path = "$ldmhome/data"; +$pq_path = "$data_path/ldm.pq";; + +# NOTE: If you change the following, then you must also modify the EXEC entry +# for the "pqsurf(1)" utility in the LDM configuration-file (etc/ldmd.conf) +# to ensure that the same pathname is used (via the "-q path" option). +$surf_path = "$data_path/pqsurf.pq"; + +# ldmadmin(1) file locations and names: +$pid_file = "$ldmhome/ldmd.pid"; +$lock_file = "$ldmhome/.ldmadmin.lck"; +$log_file = "$log_path/ldmd.log"; +$ldmd_conf = "$etc_path/ldmd.conf"; +$pqact_conf = "$etc_path/pqact.conf"; +$scour_file = "$etc_path/scour.conf"; + +# Whether or not to rotate the LDM log files whenever the LDM is started or +# restarted. They are rotated if and only if the value is non-zero. +$log_rotate = 0; + +# The IP address of the network interface to be used by the LDM server. +# Address "0.0.0.0" means that the LDM server will use all available network +# interfaces. +chomp($cmd = q{/sbin/ifconfig bond0 | grep 'inet\ addr' | awk '{print $2}' | sed 's/addr://'}); +chomp($ip_addr = `$cmd`); + +# The port on which the LDM server will listen for connections: +$port = 388; + +################################################################################ +# The following variables are new with LDM version 6.8.0: +################################################################################ + +# Maximum latency in seconds. A data-product arriving with a latency greater +# than this will be rejected by any downstream LDM process. +$max_latency = 3600; + +# Request time-offset in seconds. Nomally, a downstream LDM will request data +# starting with just after the last successfully received data-product. If that +# product doesn't exist in the upstream LDM's product-queue, however, then the +# downstream LDM will request data starting from this many seconds ago. The +# need for this parameter can arise if, for example, the downstream LDM has been +# offline long enough for the last successfully recieved data-product to be +# purged from the upstream LDM's product-queue. The value must be less than or +# equal to $max_latency. +$offset = 3600; + +# Whether or not to delete the product-information files when the product-queue +# is deleted (via the "delqueue" command). If true, then the new +# product-queue will be initially populated by requests for data that go back +# $offset seconds in time; otherwise, the requests for data that are the same +# as before will start with the last successfully-received data-product for +# each connection. Relay nodes should probably set this variable to true in +# order to regenerate a buffer of data while leaf nodes should probably set it +# to false in order to avoid receiving (and processing) duplicate data-products. +$delete_info_files = 0; + +# The maximum number of extant client connections the LDM server will allow +# before additional incoming connections requests are rejected. +$max_clients = 256; + +################################################################################ +# The following deal with verifying the accuracy of the system clock. + +# Whether or not to check the system clock at all: +$check_time = 0; + +# Whether or not to print a warning if time-checking is disabled: +$warn_if_check_time_disabled = 0; + +# Pathname of the ntpdate(1) utility: +$ntpdate = "/usr/sbin/ntpdate"; + +# Timeout, in seconds, for the ntpdate(1) utility: +$ntpdate_timeout = 5; + +# Time server hostnames. Modify to suit your needs. They're accessed in +# random order. +@time_servers = ( + "ntp.ucsd.edu", + "ntp1.cs.wisc.edu", + "ntppub.tamu.edu", + "otc1.psu.edu", + "timeserver.unidata.ucar.edu", +); + +# Maximum allowable time-difference in seconds: +$check_time_limit = 10; + +# Whether or not to abort on failure: +$abort_if_check_time_failure = 0; + +################################################################################ +# The following deal with LDM performance metrics. + +# The netstat(1) command for printing numeric port numbers of TCP Internet +# connections: +$netstat = "/bin/netstat -A inet -t -n"; + +# The metrics file into which the "addmetrics" command appends data: +$metrics_file = "$log_path/metrics.txt"; + +# The file-pattern for the metrics files to be plotted by the "plotmetrics" +# command: +$metrics_files = "/usr/local/ldm-6.8.1/logs/metrics.txt*"; + +# The number of metrics-files that the "newmetrics" command should keep +# around: +$num_metrics = 4; + +################################################################################ +# The following is necessary because the last executable statement of a +# "require"ed file must have a non-zero value. +################################################################################ +1; diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf new file mode 100644 index 0000000000..bedb27c722 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf @@ -0,0 +1,144 @@ +##### +# $Id: ldmd.conf,v 1.18.12.5 2007/02/16 17:29:47 steve Exp $ +# Sample ldmd.conf for ldm +#### +# +# This is the main configuration file for the LDM server. All lines that start +# with a "#" sign are comments. +# +# To debug an LDM that hangs on start up, run the following from LDM home: +# % bin/rpc.ldmd -vl - -q data/ldm.pq etc/ldmd.conf +# +# If the LDM still hangs, comment out all lines in this file except noted +# allow line entry below, try again. +# +############################################################################### +# WARNING: Pathological Product-ID Patterns +############################################################################### +# +# The REQUEST and ACCEPT entries both have product-ID patterns that are regular +# expressions (RE-s). It is EXTREMELY IMPORTANT that these patterns not have a +# ".*" prefix because: 1) such a prefix accomplishes nothing (i.e., the set of +# possible matches is unaltered by the prefix); and 2) such a prefix causes the +# RE to take MUCH, MUCH LONGER TO EXECUTE (by 3 orders of magnitude in some +# cases). Therefore, DO NOT USE RE-s like +# +# ".*UFPBA" +# +# Instead, simply use +# +# "UFPBA" +# +# The regex(1) utility of this package can be used to examine the efficiency +# of an RE. +# +############################################################################### +# Include Statements +############################################################################### +# +# It's possible to include other files by uncommented-out statements +# like the following: +# +#INCLUDE pathname +#INCLUDE "pathname with spaces" +# +# Non-absolute pathnames are relative to the directory that contains the +# configuration-file with the include statement. +# +############################################################################### +# Exec Entries +############################################################################### +# +# Programs that can share a queue with rpc.ldmd server, these programs +# are started by the "exec" command and are in the same process group. +# +EXEC "pqact -e" +EXEC "edexBridge -s cpsbn1-oma.oma.us.ray.com" +# +# rtstats uses the LDM to send product latency statistics to the UPC. +# For more info on rtstats please see the man page. +#EXEC "rtstats -h rtstats.unidata.ucar.edu" +#EXEC "pqsurf" +# +############################################################################### +# Request Entries +############################################################################### +# +# Request data-products from upstream LDM-s. The syntax is +# +# REQUEST [:] +# +# where: +# Is the union of feedtypes to request. +# Is an extended regular-expression for the product- +# identifiers to match. +# Is the host identifier: either a hostname or IP +# address in "dotted-quad" format. +# Is the (optional) port on to which to connect +# (the square brackets denote an option and should be +# omitted). +# +# If the same feedtype and pattern is requested from multiple hosts, then +# the host of the first such request will be the initial primary source +# of data-products (i.e., data-products will be rapidly sent using the +# HEREIS message) and the other hosts will initially be alternate sources of +# data-products (i.e., data will be sent using the COMMINGSOON and BLKDATA +# messages). The primary host will probably change over time -- depending on +# which host can deliver the data-products most quickly on average. +# +REQUEST ANY ".*" awips-ldm +#REQUEST WMO ".*" initial-secondary-host.another.domain +#REQUEST WMO ".*" another-secondary-host.yet_another.domain:3152 +# +############################################################################### +# Allow Entries +############################################################################### +# +# Give permission to downstream LDM-s to request data-products from your LDM. +# +# ALLOW [ []] +# +# where: +# is the set of feedtypes for this entry +# is an extended regular-expression that specifies +# which hosts are allowed to receive data-products +# whose feedtype is in . +# is an optional extended regular-expression that +# a product-identifier must match in order to be +# sent to the requesting LDM. The default value +# is ".*". +# is an optional extended regular-expression that +# a product-identifier must NOT match in order to +# be sent to the requesting LDM. If this field is +# empty, then such matching will be disabled for +# this entry. +# +# Under no circumstances comment out the next allow entry to localhost +# The LDM will NOT start if the entry is commented-out. +ALLOW ANY ^((localhost|loopback)|(127\.0\.0\.1\.?$)) .* +# +# Give permission to the Unidata Program Center +#ALLOW ANY ^[a-z].*\.unidata\.ucar\.edu\.?$ .* +# +############################################################################### +# Accept Entries +############################################################################### +# ACCEPT: Who can feed us without be requested by a REQUEST entry, currently +# this action is ONLY needed for WSI data +# +# ACCEPT +# +# ACCEPT anything from yourself +# +#ACCEPT ANY ".*" ^((localhost|loopback)|(127\.0\.0\.1\.?$)) +# +# accept from your upstream site +# +# WSI is using ldm4 protocol so the accept is still required +#ACCEPT WSI +# .* +# ^[a-z].*\.uni\.wsicorp\.com$ +# +############################################################################### +# End +############################################################################### diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.gum b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.gum new file mode 100644 index 0000000000..45e936e7be --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.gum @@ -0,0 +1,162 @@ +##### +# $Id: ldmd.conf,v 1.18.12.5 2007/02/16 17:29:47 steve Exp $ +# Sample ldmd.conf for ldm +#### +# +# This is the main configuration file for the LDM server. All lines that start +# with a "#" sign are comments. +# +# To debug an LDM that hangs on start up, run the following from LDM home: +# % bin/rpc.ldmd -vl - -q data/ldm.pq etc/ldmd.conf +# +# If the LDM still hangs, comment out all lines in this file except noted +# allow line entry below, try again. +# +############################################################################### +# WARNING: Pathological Product-ID Patterns +############################################################################### +# +# The REQUEST and ACCEPT entries both have product-ID patterns that are regular +# expressions (RE-s). It is EXTREMELY IMPORTANT that these patterns not have a +# ".*" prefix because: 1) such a prefix accomplishes nothing (i.e., the set of +# possible matches is unaltered by the prefix); and 2) such a prefix causes the +# RE to take MUCH, MUCH LONGER TO EXECUTE (by 3 orders of magnitude in some +# cases). Therefore, DO NOT USE RE-s like +# +# ".*UFPBA" +# +# Instead, simply use +# +# "UFPBA" +# +# The regex(1) utility of this package can be used to examine the efficiency +# of an RE. +# +############################################################################### +# Include Statements +############################################################################### +# +# It's possible to include other files by uncommented-out statements +# like the following: +# +#INCLUDE pathname +#INCLUDE "pathname with spaces" +# +# Non-absolute pathnames are relative to the directory that contains the +# configuration-file with the include statement. +# +############################################################################### +# Exec Entries +############################################################################### +# +# Programs that can share a queue with rpc.ldmd server, these programs +# are started by the "exec" command and are in the same process group. +# +EXEC "pqact -e" +EXEC "edexBridge -s px1" +# +# rtstats uses the LDM to send product latency statistics to the UPC. +# For more info on rtstats please see the man page. +#EXEC "rtstats -h rtstats.unidata.ucar.edu" +#EXEC "pqsurf" +# +############################################################################### +# Request Entries +############################################################################### +# +# Request data-products from upstream LDM-s. The syntax is +# +# REQUEST [:] +# +# where: +# Is the union of feedtypes to request. +# Is an extended regular-expression for the product- +# identifiers to match. +# Is the host identifier: either a hostname or IP +# address in "dotted-quad" format. +# Is the (optional) port on to which to connect +# (the square brackets denote an option and should be +# omitted). +# +# If the same feedtype and pattern is requested from multiple hosts, then +# the host of the first such request will be the initial primary source +# of data-products (i.e., data-products will be rapidly sent using the +# HEREIS message) and the other hosts will initially be alternate sources of +# data-products (i.e., data will be sent using the COMMINGSOON and BLKDATA +# messages). The primary host will probably change over time -- depending on +# which host can deliver the data-products most quickly on average. +# +#REQUEST ANY ".*" awips-ldm +#REQUEST ANY ".*" cpsbn1 +#REQUEST ANY ".*" cpsbn2 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PHFO)" cpsbn1 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PHFO)" cpsbn2 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PHFO)" cpsbn1 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PHFO)" cpsbn2 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn1 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn2 +REQUEST NGRID ".*" cpsbn1 +REQUEST NGRID ".*" cpsbn2 +REQUEST NIMAGE ".*" cpsbn1 +REQUEST NIMAGE ".*" cpsbn2 +REQUEST HDS ".*" cpsbn1 +REQUEST HDS ".*" cpsbn2 +REQUEST EXP ".*" cpsbn1 +REQUEST EXP ".*" cpsbn2 +REQUEST IDS|DDPLUS ".*" cpsbn1 +REQUEST IDS|DDPLUS ".*" cpsbn2 +#REQUEST WMO ".*" initial-secondary-host.another.domain +#REQUEST WMO ".*" another-secondary-host.yet_another.domain:3152 +# +############################################################################### +# Allow Entries +############################################################################### +# +# Give permission to downstream LDM-s to request data-products from your LDM. +# +# ALLOW [ []] +# +# where: +# is the set of feedtypes for this entry +# is an extended regular-expression that specifies +# which hosts are allowed to receive data-products +# whose feedtype is in . +# is an optional extended regular-expression that +# a product-identifier must match in order to be +# sent to the requesting LDM. The default value +# is ".*". +# is an optional extended regular-expression that +# a product-identifier must NOT match in order to +# be sent to the requesting LDM. If this field is +# empty, then such matching will be disabled for +# this entry. +# +# Under no circumstances comment out the next allow entry to localhost +# The LDM will NOT start if the entry is commented-out. +ALLOW ANY ^((localhost|loopback)|(127\.0\.0\.1\.?$)) .* +# +# Give permission to the Unidata Program Center +#ALLOW ANY ^[a-z].*\.unidata\.ucar\.edu\.?$ .* +# +############################################################################### +# Accept Entries +############################################################################### +# ACCEPT: Who can feed us without be requested by a REQUEST entry, currently +# this action is ONLY needed for WSI data +# +# ACCEPT +# +# ACCEPT anything from yourself +# +#ACCEPT ANY ".*" ^((localhost|loopback)|(127\.0\.0\.1\.?$)) +# +# accept from your upstream site +# +# WSI is using ldm4 protocol so the accept is still required +#ACCEPT WSI +# .* +# ^[a-z].*\.uni\.wsicorp\.com$ +# +############################################################################### +# End +############################################################################### diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.hfo b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.hfo new file mode 100644 index 0000000000..9657b57e15 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.hfo @@ -0,0 +1,162 @@ +##### +# $Id: ldmd.conf,v 1.18.12.5 2007/02/16 17:29:47 steve Exp $ +# Sample ldmd.conf for ldm +#### +# +# This is the main configuration file for the LDM server. All lines that start +# with a "#" sign are comments. +# +# To debug an LDM that hangs on start up, run the following from LDM home: +# % bin/rpc.ldmd -vl - -q data/ldm.pq etc/ldmd.conf +# +# If the LDM still hangs, comment out all lines in this file except noted +# allow line entry below, try again. +# +############################################################################### +# WARNING: Pathological Product-ID Patterns +############################################################################### +# +# The REQUEST and ACCEPT entries both have product-ID patterns that are regular +# expressions (RE-s). It is EXTREMELY IMPORTANT that these patterns not have a +# ".*" prefix because: 1) such a prefix accomplishes nothing (i.e., the set of +# possible matches is unaltered by the prefix); and 2) such a prefix causes the +# RE to take MUCH, MUCH LONGER TO EXECUTE (by 3 orders of magnitude in some +# cases). Therefore, DO NOT USE RE-s like +# +# ".*UFPBA" +# +# Instead, simply use +# +# "UFPBA" +# +# The regex(1) utility of this package can be used to examine the efficiency +# of an RE. +# +############################################################################### +# Include Statements +############################################################################### +# +# It's possible to include other files by uncommented-out statements +# like the following: +# +#INCLUDE pathname +#INCLUDE "pathname with spaces" +# +# Non-absolute pathnames are relative to the directory that contains the +# configuration-file with the include statement. +# +############################################################################### +# Exec Entries +############################################################################### +# +# Programs that can share a queue with rpc.ldmd server, these programs +# are started by the "exec" command and are in the same process group. +# +EXEC "pqact -e" +EXEC "edexBridge -s px1" +# +# rtstats uses the LDM to send product latency statistics to the UPC. +# For more info on rtstats please see the man page. +#EXEC "rtstats -h rtstats.unidata.ucar.edu" +#EXEC "pqsurf" +# +############################################################################### +# Request Entries +############################################################################### +# +# Request data-products from upstream LDM-s. The syntax is +# +# REQUEST [:] +# +# where: +# Is the union of feedtypes to request. +# Is an extended regular-expression for the product- +# identifiers to match. +# Is the host identifier: either a hostname or IP +# address in "dotted-quad" format. +# Is the (optional) port on to which to connect +# (the square brackets denote an option and should be +# omitted). +# +# If the same feedtype and pattern is requested from multiple hosts, then +# the host of the first such request will be the initial primary source +# of data-products (i.e., data-products will be rapidly sent using the +# HEREIS message) and the other hosts will initially be alternate sources of +# data-products (i.e., data will be sent using the COMMINGSOON and BLKDATA +# messages). The primary host will probably change over time -- depending on +# which host can deliver the data-products most quickly on average. +# +#REQUEST ANY ".*" awips-ldm +#REQUEST ANY ".*" cpsbn1 +#REQUEST ANY ".*" cpsbn2 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PGUM|PHFO)" cpsbn1 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PGUM|PHFO)" cpsbn2 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PGUM|PHFO)" cpsbn1 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PGUM|PHFO)" cpsbn2 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn1 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn2 +REQUEST NGRID ".*" cpsbn1 +REQUEST NGRID ".*" cpsbn2 +REQUEST NIMAGE ".*" cpsbn1 +REQUEST NIMAGE ".*" cpsbn2 +REQUEST HDS ".*" cpsbn1 +REQUEST HDS ".*" cpsbn2 +REQUEST EXP ".*" cpsbn1 +REQUEST EXP ".*" cpsbn2 +REQUEST IDS|DDPLUS ".*" cpsbn1 +REQUEST IDS|DDPLUS ".*" cpsbn2 +#REQUEST WMO ".*" initial-secondary-host.another.domain +#REQUEST WMO ".*" another-secondary-host.yet_another.domain:3152 +# +############################################################################### +# Allow Entries +############################################################################### +# +# Give permission to downstream LDM-s to request data-products from your LDM. +# +# ALLOW [ []] +# +# where: +# is the set of feedtypes for this entry +# is an extended regular-expression that specifies +# which hosts are allowed to receive data-products +# whose feedtype is in . +# is an optional extended regular-expression that +# a product-identifier must match in order to be +# sent to the requesting LDM. The default value +# is ".*". +# is an optional extended regular-expression that +# a product-identifier must NOT match in order to +# be sent to the requesting LDM. If this field is +# empty, then such matching will be disabled for +# this entry. +# +# Under no circumstances comment out the next allow entry to localhost +# The LDM will NOT start if the entry is commented-out. +ALLOW ANY ^((localhost|loopback)|(127\.0\.0\.1\.?$)) .* +# +# Give permission to the Unidata Program Center +#ALLOW ANY ^[a-z].*\.unidata\.ucar\.edu\.?$ .* +# +############################################################################### +# Accept Entries +############################################################################### +# ACCEPT: Who can feed us without be requested by a REQUEST entry, currently +# this action is ONLY needed for WSI data +# +# ACCEPT +# +# ACCEPT anything from yourself +# +#ACCEPT ANY ".*" ^((localhost|loopback)|(127\.0\.0\.1\.?$)) +# +# accept from your upstream site +# +# WSI is using ldm4 protocol so the accept is still required +#ACCEPT WSI +# .* +# ^[a-z].*\.uni\.wsicorp\.com$ +# +############################################################################### +# End +############################################################################### diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.pbp b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.pbp new file mode 100644 index 0000000000..9657b57e15 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.pbp @@ -0,0 +1,162 @@ +##### +# $Id: ldmd.conf,v 1.18.12.5 2007/02/16 17:29:47 steve Exp $ +# Sample ldmd.conf for ldm +#### +# +# This is the main configuration file for the LDM server. All lines that start +# with a "#" sign are comments. +# +# To debug an LDM that hangs on start up, run the following from LDM home: +# % bin/rpc.ldmd -vl - -q data/ldm.pq etc/ldmd.conf +# +# If the LDM still hangs, comment out all lines in this file except noted +# allow line entry below, try again. +# +############################################################################### +# WARNING: Pathological Product-ID Patterns +############################################################################### +# +# The REQUEST and ACCEPT entries both have product-ID patterns that are regular +# expressions (RE-s). It is EXTREMELY IMPORTANT that these patterns not have a +# ".*" prefix because: 1) such a prefix accomplishes nothing (i.e., the set of +# possible matches is unaltered by the prefix); and 2) such a prefix causes the +# RE to take MUCH, MUCH LONGER TO EXECUTE (by 3 orders of magnitude in some +# cases). Therefore, DO NOT USE RE-s like +# +# ".*UFPBA" +# +# Instead, simply use +# +# "UFPBA" +# +# The regex(1) utility of this package can be used to examine the efficiency +# of an RE. +# +############################################################################### +# Include Statements +############################################################################### +# +# It's possible to include other files by uncommented-out statements +# like the following: +# +#INCLUDE pathname +#INCLUDE "pathname with spaces" +# +# Non-absolute pathnames are relative to the directory that contains the +# configuration-file with the include statement. +# +############################################################################### +# Exec Entries +############################################################################### +# +# Programs that can share a queue with rpc.ldmd server, these programs +# are started by the "exec" command and are in the same process group. +# +EXEC "pqact -e" +EXEC "edexBridge -s px1" +# +# rtstats uses the LDM to send product latency statistics to the UPC. +# For more info on rtstats please see the man page. +#EXEC "rtstats -h rtstats.unidata.ucar.edu" +#EXEC "pqsurf" +# +############################################################################### +# Request Entries +############################################################################### +# +# Request data-products from upstream LDM-s. The syntax is +# +# REQUEST [:] +# +# where: +# Is the union of feedtypes to request. +# Is an extended regular-expression for the product- +# identifiers to match. +# Is the host identifier: either a hostname or IP +# address in "dotted-quad" format. +# Is the (optional) port on to which to connect +# (the square brackets denote an option and should be +# omitted). +# +# If the same feedtype and pattern is requested from multiple hosts, then +# the host of the first such request will be the initial primary source +# of data-products (i.e., data-products will be rapidly sent using the +# HEREIS message) and the other hosts will initially be alternate sources of +# data-products (i.e., data will be sent using the COMMINGSOON and BLKDATA +# messages). The primary host will probably change over time -- depending on +# which host can deliver the data-products most quickly on average. +# +#REQUEST ANY ".*" awips-ldm +#REQUEST ANY ".*" cpsbn1 +#REQUEST ANY ".*" cpsbn2 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PGUM|PHFO)" cpsbn1 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PGUM|PHFO)" cpsbn2 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PGUM|PHFO)" cpsbn1 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PGUM|PHFO)" cpsbn2 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn1 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn2 +REQUEST NGRID ".*" cpsbn1 +REQUEST NGRID ".*" cpsbn2 +REQUEST NIMAGE ".*" cpsbn1 +REQUEST NIMAGE ".*" cpsbn2 +REQUEST HDS ".*" cpsbn1 +REQUEST HDS ".*" cpsbn2 +REQUEST EXP ".*" cpsbn1 +REQUEST EXP ".*" cpsbn2 +REQUEST IDS|DDPLUS ".*" cpsbn1 +REQUEST IDS|DDPLUS ".*" cpsbn2 +#REQUEST WMO ".*" initial-secondary-host.another.domain +#REQUEST WMO ".*" another-secondary-host.yet_another.domain:3152 +# +############################################################################### +# Allow Entries +############################################################################### +# +# Give permission to downstream LDM-s to request data-products from your LDM. +# +# ALLOW [ []] +# +# where: +# is the set of feedtypes for this entry +# is an extended regular-expression that specifies +# which hosts are allowed to receive data-products +# whose feedtype is in . +# is an optional extended regular-expression that +# a product-identifier must match in order to be +# sent to the requesting LDM. The default value +# is ".*". +# is an optional extended regular-expression that +# a product-identifier must NOT match in order to +# be sent to the requesting LDM. If this field is +# empty, then such matching will be disabled for +# this entry. +# +# Under no circumstances comment out the next allow entry to localhost +# The LDM will NOT start if the entry is commented-out. +ALLOW ANY ^((localhost|loopback)|(127\.0\.0\.1\.?$)) .* +# +# Give permission to the Unidata Program Center +#ALLOW ANY ^[a-z].*\.unidata\.ucar\.edu\.?$ .* +# +############################################################################### +# Accept Entries +############################################################################### +# ACCEPT: Who can feed us without be requested by a REQUEST entry, currently +# this action is ONLY needed for WSI data +# +# ACCEPT +# +# ACCEPT anything from yourself +# +#ACCEPT ANY ".*" ^((localhost|loopback)|(127\.0\.0\.1\.?$)) +# +# accept from your upstream site +# +# WSI is using ldm4 protocol so the accept is still required +#ACCEPT WSI +# .* +# ^[a-z].*\.uni\.wsicorp\.com$ +# +############################################################################### +# End +############################################################################### diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.vrh b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.vrh new file mode 100644 index 0000000000..c0c945bda4 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/ldmd.conf.vrh @@ -0,0 +1,162 @@ +##### +# $Id: ldmd.conf,v 1.18.12.5 2007/02/16 17:29:47 steve Exp $ +# Sample ldmd.conf for ldm +#### +# +# This is the main configuration file for the LDM server. All lines that start +# with a "#" sign are comments. +# +# To debug an LDM that hangs on start up, run the following from LDM home: +# % bin/rpc.ldmd -vl - -q data/ldm.pq etc/ldmd.conf +# +# If the LDM still hangs, comment out all lines in this file except noted +# allow line entry below, try again. +# +############################################################################### +# WARNING: Pathological Product-ID Patterns +############################################################################### +# +# The REQUEST and ACCEPT entries both have product-ID patterns that are regular +# expressions (RE-s). It is EXTREMELY IMPORTANT that these patterns not have a +# ".*" prefix because: 1) such a prefix accomplishes nothing (i.e., the set of +# possible matches is unaltered by the prefix); and 2) such a prefix causes the +# RE to take MUCH, MUCH LONGER TO EXECUTE (by 3 orders of magnitude in some +# cases). Therefore, DO NOT USE RE-s like +# +# ".*UFPBA" +# +# Instead, simply use +# +# "UFPBA" +# +# The regex(1) utility of this package can be used to examine the efficiency +# of an RE. +# +############################################################################### +# Include Statements +############################################################################### +# +# It's possible to include other files by uncommented-out statements +# like the following: +# +#INCLUDE pathname +#INCLUDE "pathname with spaces" +# +# Non-absolute pathnames are relative to the directory that contains the +# configuration-file with the include statement. +# +############################################################################### +# Exec Entries +############################################################################### +# +# Programs that can share a queue with rpc.ldmd server, these programs +# are started by the "exec" command and are in the same process group. +# +EXEC "pqact -e" +EXEC "edexBridge -s px1" +# +# rtstats uses the LDM to send product latency statistics to the UPC. +# For more info on rtstats please see the man page. +#EXEC "rtstats -h rtstats.unidata.ucar.edu" +#EXEC "pqsurf" +# +############################################################################### +# Request Entries +############################################################################### +# +# Request data-products from upstream LDM-s. The syntax is +# +# REQUEST [:] +# +# where: +# Is the union of feedtypes to request. +# Is an extended regular-expression for the product- +# identifiers to match. +# Is the host identifier: either a hostname or IP +# address in "dotted-quad" format. +# Is the (optional) port on to which to connect +# (the square brackets denote an option and should be +# omitted). +# +# If the same feedtype and pattern is requested from multiple hosts, then +# the host of the first such request will be the initial primary source +# of data-products (i.e., data-products will be rapidly sent using the +# HEREIS message) and the other hosts will initially be alternate sources of +# data-products (i.e., data will be sent using the COMMINGSOON and BLKDATA +# messages). The primary host will probably change over time -- depending on +# which host can deliver the data-products most quickly on average. +# +#REQUEST ANY ".*" awips-ldm +#REQUEST ANY ".*" cpsbn1 +#REQUEST ANY ".*" cpsbn2 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PACR|PAFC|PAFG|PAJK)" cpsbn1 +REQUEST NEXRAD3 "^SDUS[0-9]{2} (PACR|PAFC|PAFG|PAJK)" cpsbn2 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PACR|PAFC|PAFG|PAJK)" cpsbn1 +REQUEST NEXRAD3 "^NXUS[6][0-9] (PACR|PAFC|PAFG|PAJK)" cpsbn2 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn1 +REQUEST NEXRAD3 "^SDUS[4][0-9] KWBC" cpsbn2 +REQUEST NGRID ".*" cpsbn1 +REQUEST NGRID ".*" cpsbn2 +REQUEST NIMAGE ".*" cpsbn1 +REQUEST NIMAGE ".*" cpsbn2 +REQUEST HDS ".*" cpsbn1 +REQUEST HDS ".*" cpsbn2 +REQUEST EXP ".*" cpsbn1 +REQUEST EXP ".*" cpsbn2 +REQUEST IDS|DDPLUS ".*" cpsbn1 +REQUEST IDS|DDPLUS ".*" cpsbn2 +#REQUEST WMO ".*" initial-secondary-host.another.domain +#REQUEST WMO ".*" another-secondary-host.yet_another.domain:3152 +# +############################################################################### +# Allow Entries +############################################################################### +# +# Give permission to downstream LDM-s to request data-products from your LDM. +# +# ALLOW [ []] +# +# where: +# is the set of feedtypes for this entry +# is an extended regular-expression that specifies +# which hosts are allowed to receive data-products +# whose feedtype is in . +# is an optional extended regular-expression that +# a product-identifier must match in order to be +# sent to the requesting LDM. The default value +# is ".*". +# is an optional extended regular-expression that +# a product-identifier must NOT match in order to +# be sent to the requesting LDM. If this field is +# empty, then such matching will be disabled for +# this entry. +# +# Under no circumstances comment out the next allow entry to localhost +# The LDM will NOT start if the entry is commented-out. +ALLOW ANY ^((localhost|loopback)|(127\.0\.0\.1\.?$)) .* +# +# Give permission to the Unidata Program Center +#ALLOW ANY ^[a-z].*\.unidata\.ucar\.edu\.?$ .* +# +############################################################################### +# Accept Entries +############################################################################### +# ACCEPT: Who can feed us without be requested by a REQUEST entry, currently +# this action is ONLY needed for WSI data +# +# ACCEPT +# +# ACCEPT anything from yourself +# +#ACCEPT ANY ".*" ^((localhost|loopback)|(127\.0\.0\.1\.?$)) +# +# accept from your upstream site +# +# WSI is using ldm4 protocol so the accept is still required +#ACCEPT WSI +# .* +# ^[a-z].*\.uni\.wsicorp\.com$ +# +############################################################################### +# End +############################################################################### diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/pqact.conf.oax b/rpms/awips2.core/Installer.ldm/patch/etc/pqact.conf.oax new file mode 100644 index 0000000000..3f76922610 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/pqact.conf.oax @@ -0,0 +1,639 @@ +#Text DB IDS|DDPLUS ^(S[AP]....) (....) (......) +# FILE -overwrite -close -edex /awips/edex/data/sbn/text/\1_\2_\3_(seq).txt + +#IDS|DDPLUS ^(S[AP]....) (....) (..)(....) +# PIPE /usr/local/ldm/decoders/textWriter /awips/edex/data/sbn/text (\3:mm)(\3:yyyy) + +################ +# Valley NEXRAD Configuration +################ + +NNEXRAD ^(SDUS[234578].) KABR (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KCYS (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KDMX (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KGLD (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KGID (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KEAX (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KARX (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KMPX (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KLBF (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KDVN (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KUNR (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KFSD (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KTOP (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +#NNEXRAD ^(SDUS[234578].) KOAX (......) /p(...)(...) +# FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) PHFO (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) PGUM (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KBTV (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KBOX (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KFWD (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KTWC (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KAKQ (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KRNK (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KLWX (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KABQ (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KPHI (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KALY (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KEPZ (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KMAF (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KOKX (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KPBZ (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/radar/\4/\3/\1_\4_\3_\2_(seq).rad + +NNEXRAD ^(SDUS[234578].) KSTO (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/experimental/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KREV (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/experimental/radar/\4/\3/\1_\4_\3_\2_(seq).rad +NNEXRAD ^(SDUS[234578].) KLKN (......) /p(...)(...) + FILE -overwrite -close -edex /data_store/experimental/radar/\4/\3/\1_\4_\3_\2_(seq).rad + + + +ANY ^(SDUS8.) KABR (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KDMX (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KGLD (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KGID (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KEAX (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KLBF (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KFSD (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KTOP (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + +ANY ^(SDUS8.) KOAX (......) /pDPA(...) + FILE -overwrite -close -edex /data_store/dpa/\1_\3_DPA_\2_(seq).rad + + + +################ +# End Of Valley NEXRAD Configuration +################ + +################ +# Valley Grid Configuration +################ + +# in base +#HRS ^([YZ].)([ABD-IMQRU-Z])(...) (KWB.) (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +# base does not include T, that a mistake on our end? +#HRS ^(YE[IT].[89]8) KWNH (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWNH/\3/\1_KWNH_\2\3\4_(seq).grb + +# in base +#HRS ^(ZEX.98) KWNH (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWNH/\3/\1_KWNH_\2\3\4_(seq).grb + +# in base +#HRS ^(H.[A-H]...) ECMF (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/ECMF/\3/\1_ECMF_\2\3\4_(seq).grb + +# in base +#HRS ^(H.[I-L]...) EGRR (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/EGRR/\3/\1_EGRR_\2\3\4_(seq).grb + +# in base +#HRS ^(H.)([I-L])(...) KWBK (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\7/KWBK/\2/\5/\1\2\3_KWBK_\4\5\6_(seq).grb + +# in base +#HRS ^(H.X...) KNWC (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KNWC/\3/\1_KNWC_\2\3\4_(seq).grb + +#HRS ^(O.)([JMNQ])(...) KWBJ (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\7/KWBJ/\2/\5/\1\2\3_KWBJ_\4\5\6_(seq).grb + +#HRS ^(O.N...) KWBM (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWBM/N/\3/\1_KWBM_\2\3\4_(seq).grb + +#HRS ^(O.L...) KWBI (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWBI/L/\3/\1_KWBI_\2\3\4_(seq).grb + +#HRS ^OEBA88 KNWC (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\4/KNWC/\2/OEBA88_KNWC_\1\2\3_(seq).grb + +#HRS ^([YZ][UV]M.98) KNHC (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KNHC/\3/\1_KNHC_\2\3\4_(seq).grb + +#HRS ^(H[ET]QV[01][0-9]) KWNC (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWNC/\3/\1_KWNC_\2\3\4_(seq).grb + +#GRID ^([LM].)([ABDHMRSTU])(...) (KWB.) (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +#GRID ^([LM].M.98) KWNH (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWNH/\3/\1_KWNH_\2\3\4_(seq).grb + +#GRID ^([LM].E...) KWBD (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWBD/E/\3/\1_KWBD_\2\3\4_(seq).grb + +#GRID ^(L.U...) KWBN (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWBN/U/\3/\1_KWBN_\2\3\4_(seq).grb + +#GRID ^(L[AB]U[ABC]..) KWNO (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWNO/\3/\1_KWNO_\2\3\4_(seq).grb + +#GRID ^(L[UV]I...) KWBJ (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWBJ/I/\3/\1_KWBJ_\2\3\4_(seq).grb + +# not in base +GRID ^(LDW[A-U]98) KNHC (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\5/KNHC/\3/\1_KNHC_\2\3\4_(seq).grb.%Y%m%d + + +#GRID ^([LM]DG...) KNHC (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KNHC/\3/\1_KNHC_\2\3\4_(seq).grb + +#GRID ^(LJ[NP][NT]98) KWNM (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\5/KWNM/\3/\1_KWNM_\2\3\4_(seq).grb + +#GRID ^LJPZ98 KNHC (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\4/KNHC/\2/LJPZ98_KNHC_\1\2\3_(seq).grb + +#GRID ^ETWA88 KWBI (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\4/KWBI/W/\2/ETWA88_KWBI_\1\2\3_(seq).grb + +#GRID ^LAMA98 KNES (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\4/KNES/\2/LAMA98_KNES_\1\2\3_(seq).grb + +# partial in base +#GRID ^(E[A-CJ-RWY])([BCDEFGH])([A-Z]88) KWBJ (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\7/KWBJ/\2/\5/\1\2\3_KWBJ_\4\5\6_(seq).grb +GRID ^(E[A-CJ-RWY])([DEF])([A-Z]88) KWBJ (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\7/KWBJ/\2/\5/\1\2\3_KWBJ_\4\5\6_(seq).grb + +HRS ^(YA)([WX])(A..) (KKCI) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +#HRS ^(YA)(W)([BCDGJM]..) (KKCI) (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +#HRS ^(Y[IJL])(X)(A..) (KKCI) (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +#HRS ^(YV)(W)([ABCDGJM]..) (KKCI) (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +HRS ^(ZV)(W)([ADGJM]..) (KKCI) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +################ +# End Of Valley Grid Configuration +################ + +# OPCWave models + +# already in base +#ANY ^LJ(N)T98 (KWBC) (..)(..)(..)$ +# FILE -overwrite -close -edex /data_store/grib/grib2/\2/\1/\4/LJNT98_\2_\3\4\5_(seq).grb + +#ANY ^LJ(P)N98 (KWBC) (..)(..)(..)$ +# FILE -overwrite -close -edex /data_store/grib/grib2/\2/\1/\4/LJPN98_\2_\3\4\5_(seq).grb + +#ANY ^LJ(P)Z98 (KNHC) (..)(..)(..)$ +# FILE -overwrite -close -edex /data_store/grib/grib2/\2/\1/\4/LJPZ98_\2_\3\4\5_(seq).grb + +# AKWAVE models +#GRID ^(O[A-CJ-KM-NPY])N([ACEGI-Z]88) KWBJ (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\6/KWBJ/N/\4/\1N\2_KWBJ_\3\4\5_(seq).grb + +# AK-GriddedMOS +# original pattern overlapped with base +#GRID ^(L[A-JR-SU-Y])R([B-J][0-2][0-35-68-9]) KWBQ (..)(..)(..).*!(grib|grib2) +# FILE -overwrite -close -edex /data_store/grib/\6/KWBQ/R/\4/\1R\2_KWBQ_\3\4\5_(seq).grb +GRID ^(L[CEFGIJV-Y])R([B-J][0-2][0-35-68-9]) KWBQ (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\6/KWBQ/R/\4/\1R\2_KWBQ_\3\4\5_(seq).grb + +# PR-RTMA +ANY ^(L[HNPRTUV])(C)(A98) (KWBR) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +# PR-NamDNG5 +ANY ^([LM][ADEHKRSTUV])(C)([A-TZ][089][068]) (KWBE) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +# PR-GFS +ANY ^([LM][ABCEFGHMO-Y])(O)([A-Z][0-9][0-9]) (KWBC) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +#PR-SREF (SREF243) +ANY ^([LM][DEHMNPQRTUVW])(X)([A-TZ][235789][05689]) (KWBL) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +# NAM95 Grib Data +HRS ^([YZ][CE-HO-RT-Z])(N)([A-JM][0-9][0-9]) (KWBE) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +# NamDNG5 Grib Data no captured in above pattern +HRS ^([LM][EKV])(M)([A-TZ][089][068]) (KWBE) (..)(..)(..).*!(grib|grib2) + FILE -overwrite -close -edex /data_store/grib/\8/\4/\2/\6/\1\2\3_\4_\5\6\7_(seq).grb + +#NGRID ^([LMYZ][TRUVXEGHVZ][BQRU]...) (KWBE) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#HRS ^([LMYZ][TRUVXEGHVZ][BQRU]...) (KWBE) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(......) (KWBX) +# FILE -overwrite -close -edex /usr/local/ldm/ecmwf/\1_\2.grd + +#ANY ^...... KWBX ..(..).. +# PIPE -close /usr/local/ldm/decoders/decrypt_file +# /data_store/grib/grib2/ecmwf/\1/ecmwf + + +#NIMAGE TIG([EW])(0[0-5]) .... (..)(..)(..) +# FILE -overwrite -close -edex /windata/sbn/sat/GOES-\1_\2_\3\4\5.sat + +#NIMAGE ^satz/ch[0-9]/(.*)/(.*)/([12][0-9][0-9][0-9][01][0-9][0-3][0-9]) ([0-2][0-9])([0-5][0-9])/(.*)/(.*km)/ (TI.)(.)(..) .... (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sat/\6/\1/\2/\7/\8\9_\(10)_\(11)\(12)\(13)_(seq).sat + + +#NGRID ^([LM].M.98) (KWNH) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^([LM].E...) (KWBD) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(L.U...) (KWBN) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(L[AB]U[ABC]..) (KWNO) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(L[UV]I...) (KWBJ) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^([LM]DG...) (KNHC) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(LJ[NP][NT]98) (KWNM) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(LJPZ98) (KNHC) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(ETWA88) (KWBI) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(LAMA98) (KNES) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +#NGRID ^(L.Z...) (KWBX) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +# *WARNING* The following regex turns on all GRIB2 data from the NOAAPort. Only use if you know you want everything +# + +#NGRID ^(......) (KWB.) +# FILE -overwrite -close -edex /awips/edex/data/sbn/grib/\1_\2.grd + +# Keep only the most recent SIGMET. IDS|DDPLUS ^WS +# FILE -overwrite -close -edex data/ldm/WWA/lastSIGMET + +# +# Bin all the (Non-GRIB) WMO format data, using elements from the identifier as path components. The minutes portion of the timestamp, and the retransmit code is +# ignored. The day of the month portion of the timestamp is not used as a path component, so it would be a good idea to run 'scour' on a less than 24 hour basis. +# This action uses a lot of disk space. +# +# "ASUS42 KRDU 012259" gets filed as data/US/KRDU/22/AS42.wmo +# +#WMO ^([^H][A-Z])([A-Z][A-Z])([0-9][0-9]) (....) ([0-3][0-9])([0-2][0-9]) +# FILE data/\2/\4/\6/\1\3.wmo +# + +#HDS ^SFUS41 KWBC (..)(..)(..) +# FILE -overwrite -close -edex /data_store/binlightning/\2/SFUS41_KWBC_\1\2\3_(seq).nldn + +#HDS ^SFPA41 KWBC (..)(..)(..) +# FILE -overwrite -close -edex /data_store/binlightning/\2/SFPA41_KWBC_\1\2\3_(seq).nldn + +# stored by text pattern +# TO 9 SHEF Data; +#IDS|DDPLUS ^(SRU[EMSW][1-9].) (KOMA|KOAX|KLSE|KARX|KDSM|KDMX|KDVN|KMLI|KEAX|KMCI|KFSD|KGRI|KGID|KLBF|KSTL|KLSX|KMSP|KMPX|KTOP|KWBC|KZMP|KPQR) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#river forecast SHEF data +#ANY ^(FGUS[57].) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^SRUS44 KWBC (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\2/SRUS44_KWBC_\1\2\3_(seq).txt + +# stored by text pattern +# TO 9 warnings; SVR, TOR, SVS, FFW +#IDS|DDPLUS ^(W[OUFWG]US..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/warning/\4/\1_\2_\3\4\5_(seq).wrn + +# stored by text pattern +#IDS|DDPLUS ^(W[UFWG]US..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/text/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(F[TC][UX][SX]..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/taf/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#Text DB IDS|DDPLUS ^(F[TC][UX][SX]..) (....) (......) +# FILE -overwrite -close -edex /awips/edex/data/sbn/taf/\1_\2_\3_(seq).taf + +# stored by text pattern +#IDS|DDPLUS ^(SMUS..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(SMCN..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(SMMX..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(SMV[DCE]..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(SIV[DCE]..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(SNV[DCE]..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(SSV[DX]..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(SXUS2[0123]) (KWNB) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +# stored by text pattern +#IDS|DDPLUS ^(VHVD..) (KWNB) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/sfcobs/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^(IUST[4-7][123468]) KWBC (..)(..)(..).* +# FILE -overwrite -close -edex +# /data_store/bufrua/\3/\1_KWBC_\2\3\4_(seq).bin + +#ANY ^(IUSZ[4-9][123468]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/bufrua/\4/\1_\2_\3\4\5_(seq).bufr + +#ANY ^(IUSY4[123468]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/bufrua/\4/\1_\2_\3\4\5_(seq).bufr + +#ANY ^(JU[BCFJMNOTVW]E(00|9[679])) KKCI (..)(..)(..) +# FILE -overwrite -close -edex /data_store/bufrsigwx/\4/\1_KKCI_\3\4\5_(seq).bufr + +# has some overlap with baseline aircraft, use A1 fields +#ANY ^UA(US|PA)(..) KWBC (..)(..)(..).* +# FILE -overwrite -close -edex +# /data_store/airep/\4/UA\1\2_KWBC_\3\4\5_(seq).bin + +# this pattern also contains airep..., use A1 fields +#ANY ^(U.....) KWBC (..)(..)(..).* +# FILE -overwrite -close -edex +# /data_store/pirep/\3/\1_KWBC_\2\3\4_(seq).bin + +#ANY ^(IUPT0[1-4]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/profiler/\4/\1_\2_\3\4\5_(seq).bufr + +#ANY ^IUPT40 (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/profiler/\3/IUPT40_\1_\2\3\4_(seq).bufr + +#ANY ^IUAK01 (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/profiler/\3/IUAK01_\1_\2\3\4_(seq).bufr + +#ANY ^IUPT40 KBOU (..)(..)(..) +# FILE -overwrite -close -edex /data_store/profiler/\2/IUPT40_KBOU_\1\2\3_(seq).bufr + +# contained in text +#ANY ^(FAUS2[789]) KKCI (..)(..)(..) +# FILE -overwrite -close -edex /data_store/ccfp/\3/\1_KKCI_\2\3\4_(seq).txt + +# contained in text +#ANY ^(FA[AU][KS]2.) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/cwa/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^(JUS[ABX]..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/mdlsndg/\4/\1_\2_\3\4\5_(seq).bufr + +#ANY ^(JUTX0[1-9]) KNES (..)(..)(..) +# FILE -overwrite -close -edex /data_store/goessndg/\3/\1_KNES_\2\3\4_(seq).bufr + +#ANY ^(IUTX0[1-9]) KNES (..)(..)(..) +# FILE -overwrite -close -edex /data_store/poessndg/\3/\1_KNES_\2\3\4_(seq).bufr + +#ANY ^(JSM[TLF]..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/bufrmos/\4/\1_\2_\3\4\5_(seq).bufr + +#ANY ^([PQ].....) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/redbook/\4/\1_\2_\3\4\5_(seq).rb + + +#IDS|DDPLUS ^(FXUS..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/text/\4/\1_\2_\3\4\5_(seq).txt + +#IDS|DDPLUS ^(FOUS..) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/text/\4/\1_\2_\3\4\5_(seq).txt + +#IDS|DDPLUS ^(AS....) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/text/\4/\1_\2_\3\4\5_(seq).txt + +#IDS|DDPLUS ^(FPUS..) (....) (..)(..)(..).* +# FILE -overwrite -close -edex /data_store/text/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^([AF][BS]....) (KOMA|KOAX|KLSE|KARX|KDSM|KDMX|KDVN|KMLI|KEAX|KMCI|KFSD|KGRI|KGID|KLBF|KSTL|KLSX|KMSP|KMPX|KTOP|KZMP|KPQR) (..)(..)(..).* +# FILE -overwrite -close -edex /data_store/shef/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^SXUS44 KWOH (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\2/SXUS44_KWOH_\1\2\3_(seq).txt + +#ANY ^SXUS50 KWOH (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\2/SXUS50_KWOH_\1\2\3_(seq).txt + +#ANY ^SXUS49 KWOH (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\2/SXUS49_KWOH_\1\2\3_(seq).txt + +#ANY ^SXUS40 KWOH (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\2/SXUS40_KWOH_\1\2\3_(seq).txt + +#ANY ^SXUS38 KWOH (..)(..)(..) +# FILE -overwrite -close -edex /data_store/shef/\2/SXUS38_KWOH_\1\2\3_(seq).txt + +# Needed In Omaha for Acars since its decrypted as master ldm +#ANY ^(IUA[^X]0[12]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/acars/\4/\1_\2_\3\4\5_(seq).bufr + +#ANY ^IUAX02 KARP ..(..).. +# PIPE -close /usr/local/ldm/decoders/decrypt_file +# /data_store/acars/decrypted/\1/acars + +ANY ^(ISXA..) (....) (..)(..)(..) + FILE -overwrite -close -edex /data_store/bufrssmi/\4/\1_\2_\3\4\5_(seq).bufr + + +ANY ^JSXX((0[1-9])|(10)) (....) (..)(..)(..) + FILE -overwrite -close -edex /data_store/bufrascat/\6/JSXX\1_\4_\5\6\7_(seq).bufr + +ANY ^ISXX(..) (....) (..)(..)(..) + FILE -overwrite -close -edex /data_store/bufrquikscat/\4/ISXX\1_\2_\3\4\5_(seq).bufr + +#ANY ^ZETA98 (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/grib/precip_estimate/\2/ZETA98_\1_\2\3\4_(seq).grb + +#ANY ^ZEGA98 KNES (..)(..)(..) +# FILE -overwrite -close -edex /data_store/grib/precip_estimate/\2/ZEGA98_KNES_\1\2\3_(seq).grb + +#ANY ^ZEGZ98 (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/grib/ffg/ZEGZ98_\1_\2\3\4_(seq).grd + +#ANY ^JSAT98 KKCI (..)(..)(..) +# FILE -overwrite -close -edex /data_store/bufrncwf/\2/JSAT98_KKCI_\1\2\3_(seq).bufr + +ANY ^(J[ACEGHJKMNPQR]CX[1-9]1) (....) (..)(..)(..) + FILE -overwrite -close -edex /data_store/bufrhdw/\4/\1_\2_\3\4\5_(seq).bufr + +ANY ^(JUTX[2-4]1) (....) (..)(..)(..) + FILE -overwrite -close -edex /data_store/bufrmthdw/\4/\1_\2_\3\4\5_(seq).bufr + +ANY ^(JUTX53) (....) (..)(..)(..) + FILE -overwrite -close -edex /data_store/bufrmthdw/\4/\1_\2_\3\4\5_(seq).bufr + +#GPSSRC xmrg(..........)z.gz$ +# FILE -overwrite -close -edex /data_store/q2/xmrg\1z.gz + +#NEXRAD2 ^L2-([^/]*)/(....)/([0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-2][0-9][0-5][0-9][0-9][0-9]) +# FILE -overwrite -close /data_store/koax/raw/nexradII/KOAX/\3.raw + +#ANY ^ZDIA98 KKCI (......) +# FILE -overwrite -close -edex /data_store/experimental/grib/NCWF/ZDIA98_KKCI_\1.grb + +#ANY (WSUS3[123]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/convsigmet/\4/\1_\2_\3\4\5_(seq).txt + +#ANY (W[CSV]US0[1-6]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/nonconvsigmet/\4/\1_\2_\3\4\5_(seq).txt + +#ANY (WAUS4[1-6]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/airmet/\4/\1_\2_\3\4\5_(seq).txt + +#ANY (W[CSV]PA((0[1-9])|(1[1-3]))) PHFO (..)(..)(..) +# FILE -overwrite -close -edex /data_store/intlsigmet/\6/\1_PHFO_\5\6\7_(seq).txt + +#ANY (W[CSV]NT((0[1-9])|(1[1-3]))) KKCI (..)(..)(..) +# FILE -overwrite -close -edex /data_store/intlsigmet/\6/\1_KKCI_\5\6\7_(seq).txt + +#ANY (WAAK4[789]) PAWU (..)(..)(..) +# FILE -overwrite -close -edex /data_store/intlsigmet/\3/\1_PAWU_\2\3\4_(seq).txt + +#ANY (W[CSV]PN0[1-6]) KKCI (..)(..)(..) +# FILE -overwrite -close -edex /data_store/intlsigmet/\3/\1_KKCI_\2\3\4_(seq).txt + +#ANY ^(NWUS5.) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/lsr/\4/\1_\2_\3\4\5.txt + +#ANY ^NWUS20 (....) (..)(..)(..) +# FILE -overwrite -close /data_store/svrwx/\3/NWUS20_\1_\2\3\4.txt + +#ANY ^UR(PN|NT)(..) KNHC (..)(..)(..) +# FILE -overwrite -close -edex /data_store/recco/\4/UR\1\2_KHNC_\3\4\5_(seq).txt + +#ANY ^(FVAK2[0-4]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/vaa/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^(FVXX2[0-7]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/vaa/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^WHXX0[14] (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/tcg/\3/WHXX01_\1_\2\3\4_(seq).txt + +#ANY ^(WTNT[25][0-9]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/tcs/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^(WTPZ[25][0-9]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/tcs/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^(WTPA[25][0-9]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/tcs/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^(WTPN3[0-9]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/tcs/\4/\1_\2_\3\4\5_(seq).txt + +#EXP (ecmwf_decrypted.*) +# FILE -overwrite -close -edex /data_store/grib/grib2/ecmwf/\1 + +#EXP (acars_decrypted.*) +# FILE -overwrite -close -edex /data_store/acars/decrypted/\1 + +# added for a missing national product +#ANY ^(ACUS..) (....) (..)(..)(..) +# FILE -overwrite -log -close -edex /data_store/text/\4/\1_\2_\3\4\5_(seq).txt.%Y%m%d + +#ANY ^(FE[APU][KNS][23][0-9]) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/text/\4/\1_\2_\3\4\5_(seq).txt + +#ANY ^(CDUS4.) (....) (..)(..)(..) +# FILE -overwrite -close -edex /data_store/text/climate/\4/\1_\2_\3\4\5_(seq).txt diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/pqact.conf.template b/rpms/awips2.core/Installer.ldm/patch/etc/pqact.conf.template new file mode 100644 index 0000000000..e7c9b2a9fc --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/pqact.conf.template @@ -0,0 +1,561 @@ +# /-\-/-\-/-\-/-\- acq_patterns.template /-\-/-\-/-\-/-\- + +# AWIPS 1 PATTERN GRAPHIC ^[PQ].* /redbook/Raw +# PGNA00 KWNS 010001 !redbook 1_1/NMCGPHMCD/MCDSUM/PXSF001CN/20110201 0001 +ANY ^([PQ][A-Z0-9]{3,5}) (....) (..)(..)(..) !redbook [^/]*/([^/]*)/([^/]*)/([^/]*)/([0-9]{8}) + FILE -overwrite -log -close -edex /data_store/redbook/\(10)/\4/\8/\1_\2_\9_\3\4\5_(seq).rb.%Y%m%d + +# AWIPS 1 PATTERN IMAGE ^T.* /sat/SBN/Raw +# satz/ch2/GOES-11/WV/20110201 1830/NHEM-COMP/24km/ TIGF05 KNES 011830 +NIMAGE ^(sat[^/]*)/ch[0-9]/([^/]*)/([^/]*)/([^ ]*) ([^/]*)/([^/]*)/([^/]*)/ T[^ ]* [^ ]* (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/sat/\2/\3/\4/\7_\6_\5.\1_(seq).%Y%m%d + +# AWIPS 1 PATTERN GRID ^YEI.[89]8.*KWNH /img/SBN/Raw +# YEIN98 KWNH 011800 /mRFC_QPF !grib/ncep/RFC_QPF/#218/201102011800/F018/APCP/sfc/ +HDS ^(YEI.[89]8) KWNH (..)(..)(..)[^!]*!(grib|grib2)/ncep/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)_\(11)_\1_(seq).\7.%Y%m%d + +# AWIPS 1 GRID ^ZETA98.*K[NW][EN][ES] /img/SBN/Raw +# ZETA98 KNES 011516 /mNWS_190 !grib/nws/NWS_190/#255/201102011400/F001/APCP/sfc/ +# ZETA98 KWNE 311200 /mRFC_QPE !grib/ncep/RFC_QPE/#240/201101311200/F006/APCP/sfc/ +HDS ^(ZETA98) (K[NW][EN][ES]) (..)(..)(..)([^!]*)!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\7/GRID\9/\8/\(10)/\(11)_\(12)_\1_\2_(seq).\7.%Y%m%d + +# AWIPS 1 GRID ^ZEGA98.*KNES /img/SBN/Raw +# +ANY ^(ZEGA98) (KNES) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/misc/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS 1: GRID ^ZEGZ98.*K.* /img/SBN/Raw +# ZEGZ98 KORN 011927 /mNWS_151 !grib/nws/NWS_151/#255/201102011800/F024/CNWAT/sfc/ +# ZEGZ98 KEY 1HR=HPBL, 3HR=5WAVH, 6HR=CNWAT +HDS ^(ZEGZ98) (K.{3}) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)_\(11)_\(12)_\1_\2_(seq).\6.%Y%m%d + +# AWIPS 1: GRID ^[YZ][ES]QA88.*KMSR /img/SBN/Raw +# YSQA88 KMSR 011220 /mNWS_185 !grib/nws/NWS_185/#255/201102010600/F000/MSTAV/sfc/ +# YEQA88 KMSR 011210 !grib2/nws/NWS_255/#255/201102010600F000/WEASD/0 + +HDS ^([YZ][ES]QA88) KMSR (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/grib/SNOW/\2/\3/\1_KMSR_\2\3\4.%Y%m%d + +# AWIPS 1: GRID ^HAXA00.*KWBC /img/SBN/Raw +# HAXA00 KWBC 312349 /mNWS_0 !grib/nwstg/NWS_0/#255/201101312349/F000/RDSP1/sfc/ + +HDS ^HAXA00 KWBC (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\4/GRID\6/\5/RCM/\8/\9_\(10)_\(11)_HAXA00_KWBC_(seq).\2.%Y%m%d + +# AWIPS 1: GRID ^ZDWA88.*KWNO /img/SBN/Raw +# GRID ^ZDWB88.*KWNO /img/SBN/Raw +# GRID ^ZDWC88.*KWNO /img/SBN/Raw +# GRID ^ZDWD88.*KWNO /img/SBN/Raw +# GRID ^ZEWD88.*KWNO /img/SBN/Raw +# GRID ^ZDWD98.*KWNO /img/SBN/Raw +# ZDWA88 KWNO 011400 /m0 !grib/ncep/0/#236/201102011400/F003/U-GWD/0 m above gnd/ + +HDS ^(Z[DE]W[A-D][89]8) KWNO (..)(..)(..) /m0 !(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/3hr/\8/\9_\(10)_\(11)_\1_KWNO_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^[YZ].[A-WYZ].*KWB.* /Grid/SBN/Raw +# YUWG97 KWBG 010600 /mRUC2 !grib/ncep/RUC2/#236/201102010600/F006/UGRD/tropopause/ + +HDS ^([YZ].[A-WYZ].{1,3}) (KWB.) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^YEI.[89]8.*KWNH /Grid/SBN/Raw + +HDS ^(YEI.[89]8) KWNH (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/[^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)_\(11)-\1_KWNH_(seq).\5.%Y%m%d + +# This line enables the regional rfc qpf gribs +HDS ^(YEI.[89]8) (KALR|KFWR|KKRF|KMSR|KORN|KPTR|KRHA|KRSA|KSTR|KTAR|KTIR|KTUA) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/[^/]*/[^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + + +# AWIPS1: GRID ^ZEX.98.*KWNH /Grid/SBN/Raw +# ZEXM98 KWNH 020000 /mNCEP_QPF !grib/ncep/NCEP_QPF/#218/201102020000/F072/APCP/sfc/ + +HDS ^(ZEX.98) KWNH (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)_\(11)-\1_KWNH_(seq).\5.%Y%m%d + +## -- ECMF, UKMET, MRF -- ## + +# AWIPS1: GRID ^H.[A-H].*ECMF /Grid/SBN/Raw +# HVAS50 ECMF 011200 /mECMWF_139 !grib/ecmwf/ECMWF_139/#001/201102011200/F168/VGRD/500 mb/ + +HDS ^(H.[A-H].{1,3}) ECMF (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)_\(11)-\1_ECMF_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^H.[I-L].*EGRR /Grid/SBN/Raw +# AWIPS1: GRID ^H.[I-L].*KWBK /Grid/SBN/Raw +# HVKH30 EGRR 011200 /mUKM_45 !grib/ukmet/UKM_45/#039/201102011200/F042/VGRD/300 mb/ +# HTJA85 KWBK 010000 /mSSIGFS !grib/ncep/SSIGFS/#038/201102010000/F000/TMP/850 mb/ +# HHJA85 KWBK 010000 /mSPEC62MRF !grib/ncep/SPEC62MRF/#038/201102010000/F000/HGT/850 mb/ + +HDS ^(H.[I-L].{1,3}) (EGRR|KWBK) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^H.X.*KNWC /Grid/SBN/Raw +# *** NOT FOUND IN INGEST STREAM *** + +ANY ^(H.X...) KNWC (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/grib/MISC/\1_KNWC_(seq).grib.%Y%m%d + +# AWIPS1: GRID ^O.[JMNQ].*KWBJ /Grid/SBN/Raw +# ONQZ88 KWBJ 020000 /mNWW_124 !grib/ncep/NWW_124/#253/201102020000/F108/WVDIR/sfc/ + +HDS ^(O.[JMNQ].{1,3}) KWBJ (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)_\(11)-\1_KWBJ_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^O.N.*KWBM /Grid/SBN/Raw +# OENA88 KWBM 020000 /mICE_120 !grib/ncep/ICE_120/#219/201102020000/F000/ICEC/MSL/ + +HDS ^(O.N.{1,3}) KWBM (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)_\(11)-\1_KWBM_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^O.L.*KWBI /Grid/SBN/Raw +# OTLA88 KWBI 010000 /mSST !grib/ncep/SST/#235/201102010000/F000/TMP/sfc/ + +HDS ^(O.L.{1,3}) KWBI (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)_\(11)-\1_KWBI_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^OEBA88.*KNWC /Grid/SBN/Raw +# OEBA88 KNWC 271200 /m120 !grib/noc/120/#255/201101270000/F000/ICEC/sfc/ + +HDS ^(OEBA88) KNWC (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/ICE/\8/\9Z_\(10)_\(11)-\1_KNWC_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^[YZ][UV]M.98.*KNHC /Grid/SBN/Raw +# *** NOT FOUND IN INGEST STREAM *** + +ANY ^([YZ][UV]M.98) KNHC (..)(..)(..)[^!]*!(grib|grib2) + FILE -overwrite -log -close -edex /data_store/\5/TPCTcm/\1_\2\3\4_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^H[ET]QV[01][0-9].*KWNC /Grid/SBN/Raw +# HEQV01 KWNC 151200 /mFORECASTER !grib/ncep/FORECASTER/#211/201012150100/F000/CLWMR/sfc/ +ANY ^(H[ET]QV[01][0-9]) KWNC (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)_\(11)-\1_KWNC_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^Y[IJL]XA[0-9][0-9].*KKCI /Grid/SBN/Raw +# YIXA48 KKCI 012300 /mAWC_CIP !grib/ncep/AWC_CIP/#252/201102012300/F000/NLAT/5791 m above MSL/ + +HDS ^(Y[IJL]XA[0-9][0-9]) KKCI (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)-\1_KKCI_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^YAW[BCDGJM][0-9][0-9].*KKCI /Grid/SBN/Raw +# YAWB43 KKCI 012200 /mAWC_CIP !grib/ncep/AWC_CIP/#252/201102012200/F001/NLAT/6705 m above MSL/ + +HDS ^(YAW[BCDGJM][0-9][0-9]) KKCI (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)-\1_KKCI_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^YVW[ABCDGJM][0-9][0-9].*KKCI /Grid/SBN/Raw +# YVWA41 KKCI 012200 /mRUC2 !grib/ncep/RUC2/#255/201102012200/F000/TURB/7010 m above MSL/ + +HDS ^(YVW[ABCDGJM][0-9][0-9]) KKCI (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\5/GRID\7/\6/\8/\9Z_\(10)-\1_KKCI_(seq).\5.%Y%m%d + +# AWIPS1: GRID ^[LM].[ABDHMNRSTU].*KWB.* /Grid/SBN/rawGrib2 +# LTHO70 KWBC 011800 !grib2/ncep/GFS/#213/201102011800F120/TMPK/700 hPa PRES + +NGRID ^([LM].[ABDHMNRSTU].{1,3}) (KWB.) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# MosGuidance, perhaps others? +# LVUC00 KWBQ 271200 !grib2/ncep/GFS/#197/FHRS//LVL +HDS ^([LM].[ABDHMNRSTU].{1,3}) (KWB.) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/%Y%m\3/\400Z_\1_\2_\3\4\5_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^[LM].[MN].98.*KWNH /Grid/SBN/rawGrib2 +# LEMG98 KWNH 020600 !grib2/ncep/NCEP_QPF/#001/201102020600F036/P06M/0 - NONE + +NGRID ^([LM].[MN].98) (KWNH) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^[LM].E.*KWBD* /Grid/SBN/rawGrib2 +# MUEU98 KWBD 020600 !grib2/ncep/DGEX_115/#185/201102020600F090/UREL/10 m HGHT + +NGRID ^([LM].E.{1,3}) (KWBD) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^L.U.*KWBN* /Grid/SBN/rawGrib2 +# LAUE06 KWBN 021200 !grib2/ncep/NDFD/#197/201102021200F096/CLD/0 - NONE + +#NGRID ^(L.U.*) (KWBN) (..)(..)(..) .*!(grib|grib2)/.*/(.*)/#(.*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) +# FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^L[AB]U[ABC].*KWNO* /Grid/SBN/rawGrib2 +# LBUB05 KWNO 012200 !grib2/ncep/LAMP/#197/201102012200F007/CTSTM02/0 - NONE + +NGRID ^(L[AB]U[ABC].{1,3}) (KWNO) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^L[UV]I.*KWBJ* /Grid/SBN/rawGrib2 +# LVIB88 KWBJ 011800 !grib2/ncep/GFS/#255/201102011800F003/VSBY/10 m HGHT + +NGRID ^(L[UV]I.{1,3}) (KWBJ) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^[LM]DG.*KNHC* /Grid/SBN/rawGrib2 +# LDGG98 KNHC 021200 !grib2/ncep/FORECASTER/#255/201102021200F036/SPED360025PA/10 m HGHT + +NGRID ^([LM]DG.{1,3}) (KNHC) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^LJ[NP][NT]98.*KWNM /Grid/SBN/rawGrib2 +# LJNT98 KWNM 020500 + +# AWIPS1: GRID ^LJPZ98.*KNHC /Grid/SBN/rawGrib2 +# LJPZ98 KNHC 020024 + +NGRID ^(LJNT98) (KWBC|KWNM) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/grib2/GRID180/MPC/opcWave/\3/\4/\1_\2_\3\4\5_(seq).grib2.%Y%m%d + +NGRID ^(LJPN98) (KWNM|KWBC) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/grib2/GRID181/MPC/opcWave/\3/\4/\1_\2_\3\4\5_(seq).grib2.%Y%m%d + +NGRID ^(LJPZ98) (KNHC|KWNM|KWBC) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/grib2/GRID182/TPC/opcWave/\3/\4/\1_\2_\3\4\5_(seq).grib2.%Y%m%d + +# AWIPS1: GRID ^ETWA88.*KWBI /Grid/SBN/rawGrib2 +# ETWA88 KWBI 010000 !grib2/ncep/SST/#173/201102010000F000/TMPK/0 - NONE + +NGRID ^(ETWA88) (KWBI) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^LAMA98.*KNES /Grid/SBN/rawGrib2 +# LAMA98 KNES 012200 !grib2/ncep/RTMA/#197/201102012201F000/CLD/0-0 - NONE + +NGRID ^(LAMA98) (KNES) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^L.Z.*KWBX /Grid/SBN/rawGrib2 +# LRZY40 KWBX 020000 + +HDS ^([LM].Z.{1,3}) KWBX (..)(..)(..) + PIPE -close /usr/local/ldm/decoders/decrypt_file + /data_store/grib2/ECMWF_HiRes/ecmwf_raw/ecmwf_decrypted_\1_\2_\3\4\5_(seq).%Y%m%d + + +EXP ^/data_store/grib2/ECMWF_HiRes/ecmwf_raw/(ecmwf_decrypted.*) + FILE -overwrite -log -close -edex /data_store/grib2/ECMWF_HiRes/ecmwf_decrypted/\1.grib2 + +# AWIPS1: GRID ^E.[ABCGHI].*KWBJ /Grid/SBN/rawGrib2 +# EWAW88 KWBJ 021200 !grib2/ncep/GMGWM/#255/201102021200F180/WSTP/0 - NONE + +NGRID ^(E.[ABCGHI].{1,3}) (KWBJ) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^[LM].[AB].*KWBS* /Grid/SBN/rawGrib2 +# LMDA98 KWBS 160000 !grib2/ncep/WRF_EM/#130/201012160000F000/WXTZ/0 - NONE + +ANY ^([LM].[AB].{1,3}) (KWBS) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^LGXT[0-2][0-9].*KNHC /Grid/SBN/rawGrib2 +# *** NOT FOUND IN INGEST STREAM *** + +ANY ^(LGXT[0-2][0-9]) KNHC (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/grib2/TPC/\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d + +# AWIPS1: GRID ^LGXP[0-9][0-9].*KNHC /Grid/SBN/rawGrib2 +# *** NOT FOUND IN INGEST STREAM *** + +ANY ^(LGXP[0-9][0-9]) KNHC (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/grib2/TPC/\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d + +# AWIPS1: GRID ^LDIZ11.*KWNS /Grid/SBN/rawGrib2 +# LDIZ11 KWNS 180039 !grib2/ncep/0/#202/FHRS//LVL + +ANY ^(LDIZ1[1-9]|LDIZ2[7-9]|LDIZ3[0789]|LDIZ40) (KWNS) (..)(..)(..)[^ ]*!(grib|grib2)/[^/]*/[^/]*/#([^/]*)/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\7/SPC/\3/\4/\1_\2_\3\4\5_(seq).\6.%Y%m%d + +# AWIPS1: GRID ^ZETA98.(KTUA|PACR|KSTR|KRSA|KORN|KRHA|KKRF|KMSR|KTAR|KPTR|KTIR|KALR|KFWR) /Grid/SBN/HydroRaw +# ZETA98 KTAR 012300 /mNWS_160 !grib/nws/NWS_160/#255/201102012200/F001/APCP/sfc/ + +HDS ^(ZETA98) (KTUA|PACR|KSTR|KRSA|KORN|KRHA|KKRF|KMSR|KTAR|KPTR|KTIR|KALR|KFWR) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)_\(12)-\1_\2_(seq).\5.%Y%m%d + +# AWIPS1: POINT .*IUPT(0[1-4]).*|.*IUPT40.* /ispan/bufr/profiler +# IUPT01 KBOU 020300 + +HDS ^(IUPT0[1-4]|IUPT40) ([^/]*) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/profiler/\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d + +# AWIPS1: POINT ^IUAK01.* /ispan/bufr/profiler +# IUAK01 PANC 012300 + +HDS ^(IUAK01) ([A-Z]{4}) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/profiler/\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d + +# AWIPS1: POINT ^IUSZ[4-9][0-9].* /ispan/bufr/raob +# IUSZ53 KWBC 020205 + +HDS ^(IUSZ[4-9][0-9]) ([A-Z]{4}) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/bufrua/\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d + +# AWIPS1: POINT ^IUSY[4][0-9].* /ispan/bufr/raob +# IUSY41 KWBC 020030 + +HDS ^(IUSY[4][0-9]) ([A-Z]{4}) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/bufrua/\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d + +# AWIPS1: TEXT ^SFUS41.* /ispan/binLightning +# SFUS41 KWBC 012220 + +HDS ^(SF(US|PA)41) ([A-Z]{4}) (..)(..)(..) + FILE -overwrite -log -edex -close /data_store/binlightning/\3/\4/\1_\2_\3\4\5_(seq).nldn.%Y%m%d + +# AWIPS1: RADAR ^SDUS[23578].*|^NXUS6.* /radar/raw +# RADAR ^SDUS3.* /radar/text +# TEXT ^SDUS4([0789].*|[1-6].[^K]*|[1-6].K[^W]*|[1-6].KW[^B]*|[1-6].KWB[^C]*) /radar/text +# ** TO BE LOCALIZED *** + +# AWIPS1: TEXT ^[ABCFMNRSUVW]......[KPTMC] /text/NO_STORE +# TEXT ^[ABCFMNRSUVW].....[KPTMC] /text/NO_STORE +# TEXT ^DF.* /text/NO_STORE +# TEXT ^T[BCHPRTWXY].* /text/NO_STORE +# *** COME BACK TO THIS *** +IDS|DDPLUS ^([ABCFMNRSUVW][A-Z]{3}[0-9]{2}) ([KPTMC].{3}) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/text/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + + +# AWIPS1: TEXT ^S[AP]US[78]0.* /point/metar/Raw +# SAUS70 KWBC 022216 RRC + +# already included in text pattern +#IDS|DDPLUS ^(S[AP]US[78]0) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^S[AP]US4.* /point/metar/Raw +# SAUS44 KMAF 022214 /pMTRNFW + +# already included in text pattern +#IDS|DDPLUS ^(S[AP]US4.) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^S[AP]U[CEMW]6.* /point/metar/Raw +# *** NOT IN DATA STREAM *** + +# already included in text pattern +#IDS|DDPLUS ^(S[AP]U[CEMW]6.) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SAAK7.* /point/metar/Raw +# *** NOT IN DATA STREAM *** + +# already included in text pattern +#IDS|DDPLUS ^(SAAK7.) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^S[AP]CN[345].* /point/metar/Raw +# SPCN45 CWAO 022210 + +# already included in text pattern +#IDS|DDPLUS ^(S[AP]CN[345].) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SACN8[5679].*KWBC /point/metar/Raw +# SACN89 KWBC 022214 + +# already included in text pattern +#IDS|DDPLUS ^(SACN8[5679].) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SACN9[0-7].*KWBC /point/metar/Raw +# SACN90 KWBC 022214 + +# already included in text pattern +#IDS|DDPLUS ^(SACN9[0-7]) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^S[AP]MX[4].* /point/metar/Raw +# SAMX42 KWBC 022345 RRA + +# already included in text pattern +#IDS|DDPLUS ^(S[AP]MX[4].) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^S[AP]DR3*.* /point/metar/Raw +# SADR31 MDSD 022300 + +# already included in text pattern +#IDS|DDPLUS ^(S[AP]DR3.) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SAPA12.* /point/metar/Raw +# *** NOT IN DATA STREAM *** + +# already included in text pattern +#IDS|DDPLUS ^(SAPA12) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SAPA[34][01].* /point/metar/Raw +# SAPA41 KWBC 022200 RRA + +# already included in text pattern +#IDS|DDPLUS ^(SAPA[34][01]) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^S[AP]XX60.* /point/metar/Raw +# SPXX60 KWBC 022214 + +# already included in text pattern +#IDS|DDPLUS ^(SAPA[34][01]) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^S[AP]RA31.*KWBC /point/metar/Raw +# SARA31 KWBC 022200 RRC + +# already included in text pattern +#IDS|DDPLUS ^(S[AP]RA31) (KWBC) (..)(..)(..) +# FILE -overwrite -log -close /data_store/metar/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SMV[DCE].* /point/maritime/Raw +# AWIPS1: TEXT ^SIV[DCE].* /point/maritime/Raw +# AWIPS1: TEXT ^SNV[DCE].* /point/maritime/Raw +# AWIPS1: TEXT ^SSV[DX].* /point/maritime/Raw +# SMVD21 KHAF 021800 + +# already included in text pattern +#IDS|DDPLUS ^(S[IMN]V[DCE]..|SSV[DX]..) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/sfcobs/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SXUS2[0123].KWNB.* /point/maritime/Raw +# SXUS20 KWNB 022200 RRX + +# already included in text pattern +#IDS|DDPLUS ^(SXUS2[0123]) (KWNB) (..)(..)(..) +# FILE -overwrite -log -close /data_store/sfcobs/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^VHVD.*KWNB.* /point/maritime/Raw +# VHVD29 KWNB 022340 /pMOBP29 + +# already included in text pattern +#IDS|DDPLUS ^(VHVD..) (KWNB) (..)(..)(..) +# FILE -overwrite -log -close /data_store/sfcobs/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^SMUS.* /point/synoptic/Raw +# AWIPS1: TEXT ^SMCN.* /point/synoptic/Raw +# AWIPS1: TEXT ^SMMX.* /point/synoptic/Raw +# SMUS41 KGYX 022356 + +# already included in text pattern +#IDS|DDPLUS ^(SM(US|CN|MX)..) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/sfcobs/\4/\5/\1_\3_\4\5\6_(seq).%Y%m%d + +# AWIPS1: OTHER ^UAUS31.* /point/aircraft/Raw +# AWIPS1: OTHER ^UBUS[12].* /point/aircraft/Raw +# AWIPS1: OTHER ^UBUS3[15].* /point/aircraft/Raw +# CHANGE FROM ORIGINAL + +# already included in text pattern +#IDS|DDPLUS ^(UAUS31|UBUS[12].|UBUS3[15]) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/aircraft/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: POINT ^JSMT2[1-6].* /ispan/bufr/AVN +# AWIPS1: POINT ^JSMT4[1-6].* /ispan/bufr/NGM +# AWIPS1: POINT ^JSMT6[1-6].* /ispan/bufr/MRF +# AWIPS1: POINT ^JSMT7[1-6].KWNO.* /ispan/bufr/MRF +# AWIPS1: POINT ^JSMT7[1-6].KWNH.* /ispan/bufr/HPC +# AWIPS1: POINT ^JSML1[1-6].* /ispan/bufr/ETA +# AWIPS1: POINT ^JSML3[1-6].* /ispan/bufr/GFS +# JSML30 KWNO 021800 + +HDS ^(JSM[TL]..) (....) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/bufrmos/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: POINT ^IUAX0[12].* /ispan/bufr/acars +# IUAX02 KARP 022359 + +ANY ^(IUAX0[12]) (....) (..)(..)(..) + PIPE -close /usr/local/ldm/decoders/decrypt_file + /data_store/acars/acars_raw/acars_decrypted_\1_\2_\3\4\5_(seq) + +EXP ^/data_store/acars/acars_raw/(acars_decrypted.*) + FILE -overwrite -log -close -edex /data_store/acars/acars_decrypted/\1.acars.%Y%m%d + +ANY ^(IUA[^X]0[12]) (....) (..)(..)(..) + FILE -overwrite -close -edex /data_store/acars/acars_raw_unencrypted/%Y%m%d/\1_\2_\3\4\5_(seq).bufr + +# AWIPS1: POINT ^JSMF1[1-6].KWNO.* /ispan/bufr/GFSLAMP +# JSMF12 KWNO 022200 + +HDS ^(JSMF1[1-6]) (KWNO) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/bufrmos/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: GRID ^ZDIA98.* /img/SBN/Raw +# ZDIA98 KKCI 030056 /mAWC_NCWD !grib/ncep/AWC_NCWD/#255/201102030056/F000/var202/atmos col/ + +ANY ^(ZDIA98) (....) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3}) + FILE -overwrite -log -close -edex /data_store/\6/GRID\8/\7/\9/\(10)Z_\(11)-\1_\2_(seq).\5.%Y%m%d + +# AWIPS1: POINT ^JSAT98.*KKCI.* /aiv/ncwf/Raw +# JSAT98 KKCI 022210 + +HDS ^(JSAT98) (KKCI) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/bufrncwf/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^WSUS3[123].* /aiv/convSIGMET/Raw +# WSUS33 KKCI 030055 /pSIGW + +# already included in text pattern +#IDS|DDPLUS ^(WSUS3[123]) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/convsigmet/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^WAUS4[1-6].* /aiv/advisories/Raw +# WAUS44 KKCI 031822 AAA /pWA4T + +# already included in text pattern +#IDS|DDPLUS ^(WAUS4[1-6]) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/airmet/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: TEXT ^W[CSV]US0[1-6].* /aiv/advisories/Raw +# WSUS06 KKCI 030129 + +# already included in text pattern +#IDS|DDPLUS ^(W[CSV]US0[1-6]) (....) (..)(..)(..) +# FILE -overwrite -log -close /data_store/nonconvsigmet/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +# AWIPS1: POINT ^JU[BCFJMNOTVW]E(00|9[679]).*KKCI.* /aiv/sigwx/Raw +# JUWE96 KKCI 021800 + +HDS ^(JU[BCFJMNOTVW]E(00|9[679])) KKCI (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/bufrsigwx/\4/\1_KKCI_\3\4\5_(seq).bufr + +## Hydro portion created during automation ## + +## Model Bufr Patterns ## +# From modelBufrAcq_patterns.template +# Localized if modelBufrClip.sup exists -- going to just add all for now + +# AWIPS1: POINT ^JUSA41.KWNO* /ispan/bufr/modelSoundings/NAM +# POINT ^JUSA41.KWBC* /ispan/bufr/modelSoundings/GFS +# JUSA42 KWNO 070200 + +HDS ^(JUS[ABX]4[1-9]) (KW(NO|BC)) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/mdlsndg/\5/\1_\2_\4\5\6_(seq).%Y%m%d + +## GOES Bufr Patterns ## +# From goesBufrAcq_patterns.template +# Localized if goesBufrClip.sup exists -- going to just add all for now + +# AWIPS1: POINT ^JUTX01.* /ispan/bufr/GOESSoundings +# +# JUTX05 KNES 070326 RRN + +HDS ^(JUTX0[1-9]) (....) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/goessndg/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +## POES Bufr Patterns ## +# From poesBufrAcq_patterns.template +# Localized if poesBufrClip.sup exists -- going to just add all for now + +# AWIPS1: POINT ^IUTX01.* /ispan/bufr/POESSoundings +# IUTX01 KNES 070307 + +HDS ^(IUTX0[1-9]) (....) (..)(..)(..) + FILE -overwrite -log -close -edex /data_store/poessndg/\4/\1_\2_\3\4\5_(seq).%Y%m%d + +## HDW Bufr Patters ## +# From [east|west]HDWBufrAcq_patterns.template # +### From Automation ### diff --git a/rpms/awips2.core/Installer.ldm/patch/etc/scour.conf b/rpms/awips2.core/Installer.ldm/patch/etc/scour.conf new file mode 100644 index 0000000000..07d8e5f950 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/etc/scour.conf @@ -0,0 +1,17 @@ +# Configuration file for "scour" utility, to delete all files older than a +# specified number of days from specified directories and all their +# subdirectories. Scour should be invoked periodically by cron(8). +# +# Each line consists of a directory, a retention time (in days), and +# (optionally) a shell filename pattern for files to be deleted. If no +# filename pattern is specified, "*" representing all files not beginning +# with "." is assumed. +# +# A hash in column one indicates a comment line. + +# Directory Days-old Optional-filename-pattern + +#~ldm/data/dir1 2 +#~ldm/data/dir2 2 *.foo +~ldm/logs 2 *.stats +/data_store 1 diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so new file mode 100644 index 0000000000..52e189b59d Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so.1.33.1 new file mode 100644 index 0000000000..52e189b59d Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so.2 new file mode 100644 index 0000000000..52e189b59d Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_date_time.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so new file mode 100644 index 0000000000..d6416f9be7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so.1.33.1 new file mode 100644 index 0000000000..d6416f9be7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so.2 new file mode 100644 index 0000000000..d6416f9be7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_filesystem.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so new file mode 100644 index 0000000000..033916d2e7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so.1.33.1 new file mode 100644 index 0000000000..033916d2e7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so.2 new file mode 100644 index 0000000000..033916d2e7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_iostreams.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so new file mode 100644 index 0000000000..d7c7977a7f Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so.1.33.1 new file mode 100644 index 0000000000..d7c7977a7f Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so.2 new file mode 100644 index 0000000000..d7c7977a7f Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_prg_exec_monitor.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so new file mode 100644 index 0000000000..d009048359 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so.1.33.1 new file mode 100644 index 0000000000..d009048359 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so.2 new file mode 100644 index 0000000000..d009048359 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_program_options.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so new file mode 100644 index 0000000000..502117da83 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so.1.33.1 new file mode 100644 index 0000000000..502117da83 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so.2 new file mode 100644 index 0000000000..502117da83 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_python.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so new file mode 100644 index 0000000000..e6944a082b Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so.1.33.1 new file mode 100644 index 0000000000..e6944a082b Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so.2 new file mode 100644 index 0000000000..e6944a082b Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_regex.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so new file mode 100644 index 0000000000..ba4aed030b Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so.1.33.1 new file mode 100644 index 0000000000..ba4aed030b Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so.2 new file mode 100644 index 0000000000..ba4aed030b Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_serialization.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so new file mode 100644 index 0000000000..7e3b21cca7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so.1.33.1 new file mode 100644 index 0000000000..7e3b21cca7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so.2 new file mode 100644 index 0000000000..7e3b21cca7 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_signals.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so new file mode 100644 index 0000000000..7917295486 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so.1.33.1 new file mode 100644 index 0000000000..7917295486 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so.2 new file mode 100644 index 0000000000..7917295486 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_test_exec_monitor.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so new file mode 100644 index 0000000000..d690317f28 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so.1.33.1 new file mode 100644 index 0000000000..d690317f28 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so.2 new file mode 100644 index 0000000000..d690317f28 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_thread.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so new file mode 100644 index 0000000000..68e5d26e07 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so.1.33.1 new file mode 100644 index 0000000000..68e5d26e07 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so.2 new file mode 100644 index 0000000000..68e5d26e07 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_unit_test_framework.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so new file mode 100644 index 0000000000..724501b49e Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so.1.33.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so.1.33.1 new file mode 100644 index 0000000000..724501b49e Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so.1.33.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so.2 new file mode 100644 index 0000000000..724501b49e Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libboost_wserialization.so.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.a b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.a new file mode 100644 index 0000000000..3edbce7a68 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.a differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so new file mode 120000 index 0000000000..bca8208f81 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so @@ -0,0 +1 @@ +libcoroipcc.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so.4 b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so.4 new file mode 120000 index 0000000000..bca8208f81 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so.4 @@ -0,0 +1 @@ +libcoroipcc.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so.4.0.0 b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so.4.0.0 new file mode 100755 index 0000000000..db11b0e5d0 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcc.so.4.0.0 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.a b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.a new file mode 100644 index 0000000000..f3143a7f64 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.a differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so new file mode 120000 index 0000000000..8231923529 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so @@ -0,0 +1 @@ +libcoroipcs.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so.4 b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so.4 new file mode 120000 index 0000000000..8231923529 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so.4 @@ -0,0 +1 @@ +libcoroipcs.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so.4.0.0 b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so.4.0.0 new file mode 100755 index 0000000000..2acf3ce8f2 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libcoroipcs.so.4.0.0 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so new file mode 120000 index 0000000000..be7a476349 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so @@ -0,0 +1 @@ +libqpidclient.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so.4 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so.4 new file mode 120000 index 0000000000..be7a476349 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so.4 @@ -0,0 +1 @@ +libqpidclient.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so.4.0.0 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so.4.0.0 new file mode 100755 index 0000000000..a605493071 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidclient.so.4.0.0 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so new file mode 120000 index 0000000000..dd3f10f6f5 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so @@ -0,0 +1 @@ +libqpidcommon.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so.4 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so.4 new file mode 120000 index 0000000000..dd3f10f6f5 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so.4 @@ -0,0 +1 @@ +libqpidcommon.so.4.0.0 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so.4.0.0 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so.4.0.0 new file mode 100755 index 0000000000..118b5274db Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidcommon.so.4.0.0 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so new file mode 120000 index 0000000000..4effa60ca2 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so @@ -0,0 +1 @@ +libqpidmessaging.so.3.0.2 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so.3 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so.3 new file mode 120000 index 0000000000..4effa60ca2 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so.3 @@ -0,0 +1 @@ +libqpidmessaging.so.3.0.2 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so.3.0.2 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so.3.0.2 new file mode 100755 index 0000000000..a1a4dfc0a8 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidmessaging.so.3.0.2 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so new file mode 120000 index 0000000000..5e9777f8f0 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so @@ -0,0 +1 @@ +libqpidtypes.so.1.1.1 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so.1 new file mode 120000 index 0000000000..5e9777f8f0 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so.1 @@ -0,0 +1 @@ +libqpidtypes.so.1.1.1 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so.1.1.1 b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so.1.1.1 new file mode 100755 index 0000000000..dac2b637df Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/patch/lib/libqpidtypes.so.1.1.1 differ diff --git a/rpms/awips2.core/Installer.ldm/patch/profile.d/awipsLDM.csh b/rpms/awips2.core/Installer.ldm/patch/profile.d/awipsLDM.csh new file mode 100644 index 0000000000..a027d7938d --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/patch/profile.d/awipsLDM.csh @@ -0,0 +1,11 @@ +if $?LD_LIBRARY_PATH then + setenv LD_LIBRARY_PATH /usr/local/ldm/lib:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH /usr/local/ldm/lib +endif + +if $?PATH then + setenv PATH /usr/local/ldm/bin:$PATH +else + setenv PATH /usr/local/ldm/bin +endif diff --git a/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.patch0 b/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.patch0 new file mode 100644 index 0000000000..85c992ed5d --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.patch0 @@ -0,0 +1,241 @@ +diff -uNr ldm-6.8.1/src/pqact/filel.c ldm-6.8.1-patch0/src/pqact/filel.c +--- ldm-6.8.1/src/pqact/filel.c 2008-09-17 11:35:18.000000000 -0500 ++++ ldm-6.8.1-patch0/src/pqact/filel.c 2011-02-22 12:31:58.000000000 -0600 +@@ -15,6 +15,7 @@ + #define PATH_MAX 255 /* _POSIX_PATH_MAX */ + #endif /* !PATH_MAX */ + #include ++#include + #include + #include /* O_RDONLY et al */ + #include /* access, lseek */ +@@ -44,6 +45,13 @@ + extern pqueue* pq; + + static unsigned maxEntries = 0; ++static int shared_id = -1; ++static int sem_id = -1; ++static unsigned shared_size; ++static unsigned queue_counter = 0; ++static unsigned largest_queue_element = 0; ++static union semun semarg; ++ + + /* + * Defined in pqcat.c +@@ -524,6 +532,9 @@ + } + else if (0 == strncmp(*av,"-log",4)) { + entry->flags |= FL_LOG; ++ } ++ else if (0 == strncmp(*av,"-edex",3)) { ++ entry->flags |= FL_EDEX; + } + } + +@@ -707,6 +718,19 @@ + : entry->handle.fd , prodp->info.ident); + + if (entry != NULL) { ++ if(entry->flags & FL_EDEX) { ++ if(shared_id == -1) { ++ uerror("Notification specified but shared memory is not available."); ++ } ++ else { ++ edex_message * queue = (edex_message *)shmat(shared_id, (void *)0, 0); ++ strncpy(queue[queue_counter].filename, entry->path, 4096); ++ strncpy(queue[queue_counter].ident, prodp->info.ident, 256); ++ if(shmdt(queue) == -1) { ++ uerror("Detaching shared memory failed."); ++ } ++ } ++ } + size_t sz = prodp->info.sz; + void* data = + (entry->flags & FL_STRIP) +@@ -734,11 +758,23 @@ + + status = atFinishedArgs(argc, argv, entry); + +- if ((status == 0) && (entry->flags & FL_LOG)) ++/* if ((status == 0) && (entry->flags & FL_LOG)) + unotice("Filed in \"%s\": %s", + argv[argc-1], + s_prod_info(NULL, 0, &prodp->info, ulogIsDebug())); + } /* data written */ ++ if (status == 0) { ++ if(entry->flags & FL_LOG) ++ unotice("Filed in \"%s\": %s", ++ argv[argc-1], ++ s_prod_info(NULL, 0, &prodp->info, ulogIsDebug())); ++ if(entry->flags & FL_EDEX && shared_id != -1) { ++ semarg.val = queue_counter; ++ int semreturn = semctl(sem_id, 1, SETVAL, semarg); ++ queue_counter = (queue_counter == largest_queue_element) ? queue_counter = 0 : queue_counter + 1; ++ } ++ } ++ } + + if (data != prodp->data) + free(data); +@@ -2289,6 +2325,30 @@ + return error; + } + ++int ++set_shared_space( ++ int shid, ++ int semid, ++ unsigned size) ++{ ++ int error; ++ if(shid == -1 || semid == -1) { ++ uerror("Shared memory is not available. Notification system disabled."); ++ error = -1; ++ } ++ else { ++ shared_id = shid; ++ sem_id = semid; ++ shared_size = size; ++ semarg.val = size; ++ semctl(sem_id, 0, SETVAL, semarg); ++ semarg.val = -1; ++ semctl(sem_id, 1, SETVAL, semarg); ++ largest_queue_element = shared_size - 1; ++ error = 0; ++ } ++ return error; ++} + + /* + * Returns the maximum number of file-descriptors that one process can have +diff -uNr ldm-6.8.1/src/pqact/filel.h ldm-6.8.1-patch0/src/pqact/filel.h +--- ldm-6.8.1/src/pqact/filel.h 2008-09-17 11:35:45.000000000 -0500 ++++ ldm-6.8.1-patch0/src/pqact/filel.h 2011-02-22 12:16:40.000000000 -0600 +@@ -19,6 +19,7 @@ + #define FL_LOG 64 + #define FL_METADATA 128 /* write data-product metadata */ + #define FL_NODATA 256 /* don't write data */ ++#define FL_EDEX 512 /* send message to memory segment */ + + #ifdef __cplusplus + extern "C" { +@@ -44,8 +45,23 @@ + extern void fl_close_all(void); + extern void endpriv(void); + extern int set_avail_fd_count(unsigned fdCount); ++extern int set_shared_space(int shid, int semid, unsigned size); + extern long openMax(); + ++struct edex_message { ++ char filename[4096]; ++ char ident[256]; ++}; ++typedef struct edex_message edex_message; ++ ++union semun { ++ int val; /* Value for SETVAL */ ++ struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */ ++ unsigned short *array; /* Array for GETALL, SETALL */ ++ struct seminfo *__buf; /* Buffer for IPC_INFO ++ (Linux specific) */ ++}; ++ + #ifdef __cplusplus + } + #endif +diff -uNr ldm-6.8.1/src/pqact/pqact.c ldm-6.8.1-patch0/src/pqact/pqact.c +--- ldm-6.8.1/src/pqact/pqact.c 2008-09-04 15:09:52.000000000 -0500 ++++ ldm-6.8.1-patch0/src/pqact/pqact.c 2011-02-22 12:39:21.000000000 -0600 +@@ -20,6 +20,9 @@ + #include + #include + #include ++#include ++#include ++#include + #ifndef NO_WAITPID + #include + #endif +@@ -44,7 +47,10 @@ + + static volatile int hupped = 0; + static char* conffilename = 0; +- ++static int shmid = -1; ++static int semid = -1; ++static key_t key; ++static key_t semkey; + timestampt oldestCursor; + timestampt currentCursor; + int currentCursorSet = 0; +@@ -104,6 +110,15 @@ + /*EMPTY*/; + } + ++ if(shmid != -1) { ++ unotice("Deleting shared segment."); ++ shmctl(shmid, IPC_RMID, NULL); ++ } ++ if(semid != -1) { ++ semctl(semid, 0, IPC_RMID); ++ } ++ ++ + (void)closeulog(); + } + +@@ -203,6 +218,8 @@ + (void)fprintf(stderr, + "\t-d datadir cd to \"datadir\" before interpreting filenames in\n"); + (void)fprintf(stderr, ++ "\t-e EDEX! \n"); ++ (void)fprintf(stderr, + "\t conffile (default %s)\n", + DEFAULT_DATADIR); + (void)fprintf(stderr, +@@ -237,6 +254,7 @@ + prod_class_t clss; + int toffset = TOFFSET_NONE; + int loggingToStdErr = 0; ++ unsigned queue_size = 5000; + + conffilename = DEFAULT_CONFFILENAME; + +@@ -278,7 +296,7 @@ + + opterr = 1; + +- while ((ch = getopt(ac, av, "vxl:d:f:q:o:p:i:t:")) != EOF) ++ while ((ch = getopt(ac, av, "vxel:d:f:q:o:p:i:t:")) != EOF) + switch (ch) { + case 'v': + logmask |= LOG_UPTO(LOG_INFO); +@@ -286,6 +304,12 @@ + case 'x': + logmask |= LOG_MASK(LOG_DEBUG); + break; ++ case 'e': ++ key = ftok("/etc/rc.d/rc.local",'R'); ++ semkey = ftok("/etc/rc.d/rc.local",'e'); ++ shmid = shmget(key, sizeof(edex_message) * queue_size, 0666 | IPC_CREAT); ++ semid = semget(semkey, 2, 0666 | IPC_CREAT); ++ break; + case 'l': + logfname = optarg; + break; +@@ -421,6 +445,14 @@ + } + + /* ++ * Inform the "filel" module of the shared memory segment ++ */ ++ if (shmid != -1 && semid != -1) ++ { ++ set_shared_space(shmid, semid, queue_size); ++ } ++ ++ /* + * Compile the pattern. + */ + if (re_isPathological(spec.pattern)) diff --git a/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.patch1 b/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.patch1 new file mode 100644 index 0000000000..9994bd94f1 --- /dev/null +++ b/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.patch1 @@ -0,0 +1,165 @@ +diff -uNr ldm-6.8.1/src/pqact/filel.c ldm-6.8.1.patch1-dir/src/pqact/filel.c +--- ldm-6.8.1/src/pqact/filel.c 2011-03-15 19:37:31.000000000 -0500 ++++ ldm-6.8.1.patch1-dir/src/pqact/filel.c 2011-03-15 19:42:54.000000000 -0500 +@@ -51,8 +51,6 @@ + static unsigned queue_counter = 0; + static unsigned largest_queue_element = 0; + static union semun semarg; +- +- + /* + * Defined in pqcat.c + */ +@@ -584,7 +582,7 @@ + strncpy(entry->path, path, PATH_MAX); + entry->path[PATH_MAX-1] = 0; /* just in case */ + +- udebug(" unio_open: %d", entry->handle.fd); ++ udebug(" unio_open: %d %s", entry->handle.fd, entry->path); + } /* output-file set to close_on_exec */ + + if (error) { +@@ -712,10 +710,10 @@ + int status = -1; /* failure */ + fl_entry* entry = get_fl_entry(UNIXIO, argc, argv); + +- udebug(" unio_prodput: %d %s", ++ udebug(" unio_prodput: %d", + entry == NULL + ? -1 +- : entry->handle.fd , prodp->info.ident); ++ : entry->handle.fd); + + if (entry != NULL) { + if(entry->flags & FL_EDEX) { +@@ -751,7 +749,6 @@ + } + + status = unio_put(entry, prodp->info.ident, data, sz); +- + if (status == 0) { + if (entry->flags & FL_OVERWRITE) + (void)ftruncate(entry->handle.fd, sz); +@@ -774,13 +771,13 @@ + queue_counter = (queue_counter == largest_queue_element) ? queue_counter = 0 : queue_counter + 1; + } + } +- } ++ } /* data written */ + + if (data != prodp->data) + free(data); + } /* data != NULL */ + } /* entry != NULL */ +- ++ udebug(" unio_prodput: complete for %s at location %s", prodp->info.ident, entry->path); + return status; + } + +diff -uNr ldm-6.8.1/src/pqact/palt.c ldm-6.8.1.patch1-dir/src/pqact/palt.c +--- ldm-6.8.1/src/pqact/palt.c 2009-01-06 14:44:09.000000000 -0600 ++++ ldm-6.8.1.patch1-dir/src/pqact/palt.c 2011-03-16 09:21:01.000000000 -0500 +@@ -552,6 +552,54 @@ + return epochTime; + } + ++static void ++seq_sub( ++ const char* istring, /* input string, possibly including ++ indicators to be expanded */ ++ char* ostring, /* output string, with date indicators ++ expanded */ ++ u_int seqnum) /* UTC-based product-time (might be "now") */ ++{ ++ static int seqfirst = 1; /* true only first time called */ ++ static regex_t seqprog; /* compiled regexp for date indicator */ ++ static regmatch_t seqpmatch[1]; /* substring matching information */ ++ const char* e2; /* pointer to last character of seq ++ * indicator substring */ ++ const char* is; /* pointer to next input character */ ++ /* ++ * Compile regular-expression on first call. ++ */ ++ if (seqfirst) { ++ static char seq_exp[] = "\\(seq\\)"; ++ ++ if (regcomp(&seqprog, seq_exp, REG_EXTENDED) != 0) ++ serror("Bad regular expression or out of memory: %s", seq_exp); ++ seqfirst = 0; ++ } ++ ++ for (is = istring; regexec(&seqprog, is, 1, seqpmatch, 0) == 0; is = e2) { ++ /* ++ * Process the next date indicator in "istring". ++ */ ++ printf("%d, %d\n", seqpmatch[0].rm_so, seqpmatch[0].rm_eo); ++ const char *const s0 = &is[seqpmatch[0].rm_so]; ++ /* start of entire substring match */ ++ ++ e2 = &is[seqpmatch[0].rm_eo]; /* points to last char of substring */ ++ ++ /* ++ * Copy stuff before match. ++ */ ++ { ++ while (is < s0) ++ *ostring++ = *is++; ++ } ++ ++ int printed = sprintf(ostring, "%d", seqnum); ++ ostring+=printed; ++ } ++ (void)strcpy(ostring, is); /* copy rest of input to output */ ++} + + /* + from ldm3/dd_regexp.c,v 1.24 1991/03/02 17:32:08 +@@ -1005,6 +1053,7 @@ + + date_sub("(02:yyyy)-(02:mm)-(02:dd)", buf, may31); + assert(strcmp(buf, "2007-05-02") == 0); ++ seq_sub("/tmp/(seq).txt", buf, 1234); + + exit(0); + } +@@ -1110,8 +1159,11 @@ + date_sub(buf2, buf1, prod->info.arrival.tv_sec); + buf1[sizeof(buf1)-1] = 0; + ++ seq_sub(buf2, buf1, prod->info.seqno); ++ buf1[sizeof(buf1) -1] = 0; ++ + if (ulogIsVerbose()) +- uinfo(" %s: %s", s_actiont(&pal->action), buf1); ++ uinfo(" %s: %s and the ident is %s", s_actiont(&pal->action), buf1, prod->info.ident); + + argc = tokenize(buf1, argv, ARRAYLEN(argv)); + +diff -uNr ldm-6.8.1/src/pqact/pqact.c ldm-6.8.1.patch1-dir/src/pqact/pqact.c +--- ldm-6.8.1/src/pqact/pqact.c 2011-03-15 19:37:31.000000000 -0500 ++++ ldm-6.8.1.patch1-dir/src/pqact/pqact.c 2011-03-15 19:44:56.000000000 -0500 +@@ -118,7 +118,6 @@ + semctl(semid, 0, IPC_RMID); + } + +- + (void)closeulog(); + } + +@@ -218,8 +217,6 @@ + (void)fprintf(stderr, + "\t-d datadir cd to \"datadir\" before interpreting filenames in\n"); + (void)fprintf(stderr, +- "\t-e EDEX! \n"); +- (void)fprintf(stderr, + "\t conffile (default %s)\n", + DEFAULT_DATADIR); + (void)fprintf(stderr, +@@ -289,6 +286,7 @@ + extern int optind; + extern int opterr; + extern char *optarg; ++ + int ch; + int logmask = (LOG_MASK(LOG_ERR) | LOG_MASK(LOG_WARNING) | + LOG_MASK(LOG_NOTICE)); diff --git a/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.tar.gz b/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.tar.gz new file mode 100644 index 0000000000..b2e3d8c677 Binary files /dev/null and b/rpms/awips2.core/Installer.ldm/src/ldm-6.8.1.tar.gz differ diff --git a/rpms/awips2.core/Installer.localapps-environment/component.spec b/rpms/awips2.core/Installer.localapps-environment/component.spec new file mode 100644 index 0000000000..47bf088452 --- /dev/null +++ b/rpms/awips2.core/Installer.localapps-environment/component.spec @@ -0,0 +1,73 @@ +# +# AWIPS II localapps Environment Spec File +# +Name: awips2-localapps-environment +Summary: AWIPS II localapps Environment Spec File +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +BuildArch: noarch +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no + +%description +AWIPS II localapps Environment Spec File - This rpm will install +a shell script in /etc/profile.d that when sourced will set all +of the environment variables required by the "localapps". + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d + +%build + +%install +LOCALAPPS_RPM_DIR="Installer.rpm/awips2.core/Installer.localapps-environment" +PROFILED_DIR="${LOCALAPPS_RPM_DIR}/scripts/profile.d" + +# Copy the profile.d scripts. +cp ${WORKSPACE_DIR}/${PROFILED_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II localapps environment...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II localapps environment installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II localapps environment Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(755,awips,fxalpha,-) +/etc/profile.d/* diff --git a/rpms/awips2.core/Installer.localapps-environment/scripts/profile.d/awips2Localapps.csh b/rpms/awips2.core/Installer.localapps-environment/scripts/profile.d/awips2Localapps.csh new file mode 100644 index 0000000000..bd17d61242 --- /dev/null +++ b/rpms/awips2.core/Installer.localapps-environment/scripts/profile.d/awips2Localapps.csh @@ -0,0 +1,18 @@ +#!/bin/csh + +setenv LOCALAPPS_HOME "/localapps" +setenv LOCALAPPS_RUN "${LOCALAPPS_HOME}/runtime" +setenv LOCALAPPS_DEV "${LOCALAPPS_HOME}/dev" +setenv LOCALAPPS_LIB_java "${LOCALAPPS_HOME}/lib/java" +setenv LOCALAPPS_LIB_javascript "${LOCALAPPS_HOME}/lib/javascript" +setenv LOCALAPPS_LIB_perl "${LOCALAPPS_HOME}/lib/perl" +setenv LOCALAPPS_LIB_python "${LOCALAPPS_HOME}/lib/python" +setenv LOCALAPPS_LIB_shell "${LOCALAPPS_HOME}/lib/shell" +setenv LOCALAPPS_LIB_tcl "${LOCALAPPS_HOME}/lib/tcl" +setenv LOCALAPPS_LOGS "${LOCALAPPS_HOME}/logs" + +if $?PYTHONPATH then + setenv PYTHONPATH /awips2/fxa/bin/src:$PYTHONPATH +else + setenv PYTHONPATH /awips2/fxa/bin/src +endif diff --git a/rpms/awips2.core/Installer.localapps-environment/scripts/profile.d/awips2Localapps.sh b/rpms/awips2.core/Installer.localapps-environment/scripts/profile.d/awips2Localapps.sh new file mode 100644 index 0000000000..ebed002cd2 --- /dev/null +++ b/rpms/awips2.core/Installer.localapps-environment/scripts/profile.d/awips2Localapps.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +export LOCALAPPS_HOME=/localapps +export LOCALAPPS_RUN=${LOCALAPPS_HOME}/runtime +export LOCALAPPS_DEV=${LOCALAPPS_HOME}/dev +export LOCALAPPS_LIB_java=${LOCALAPPS_HOME}/lib/java +export LOCALAPPS_LIB_javascript=${LOCALAPPS_HOME}/lib/javascript +export LOCALAPPS_LIB_perl=${LOCALAPPS_HOME}/lib/perl +export LOCALAPPS_LIB_python=${LOCALAPPS_HOME}/lib/python +export LOCALAPPS_LIB_shell=${LOCALAPPS_HOME}/lib/shell +export LOCALAPPS_LIB_tcl=${LOCALAPPS_HOME}/lib/tcl +export LOCALAPPS_LOGS=${LOCALAPPS_HOME}/logs + +CHECK_PATH=`echo ${PYTHONPATH} | grep "/awips2/fxa/bin/src"` +if [ ! "${CHECK_PATH}" = "" ]; then + return +fi +# Update PYTHONPATH +export PYTHONPATH=/awips2/fxa/bin/src:${PYTHONPATH} diff --git a/rpms/awips2.core/Installer.localization/component.spec b/rpms/awips2.core/Installer.localization/component.spec new file mode 100644 index 0000000000..cbefc9a6ff --- /dev/null +++ b/rpms/awips2.core/Installer.localization/component.spec @@ -0,0 +1,70 @@ +# +# AWIPS II Localization Spec File +# +Name: %{_component_name} +Summary: AWIPS II CLI Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +BuildArch: noarch +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: %{_component_name} + +%description +AWIPS II Site Localization. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/utility + +%build + +%install +if [ ! -d %{_baseline_workspace}/%{_localization_directory} ]; then + echo "ERROR: The specified localization directory does not exist - %{_localization_directory}." + exit 1 +fi + +# Copy the localization. +cp -rv %{_baseline_workspace}/%{_localization_directory}/utility/* \ + ${RPM_BUILD_ROOT}/awips2/edex/data/utility +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(755,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/edex +%dir /awips2/edex/data +%dir /awips2/edex/data/utility +/awips2/edex/data/utility/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.maps-database/component.spec b/rpms/awips2.core/Installer.maps-database/component.spec new file mode 100644 index 0000000000..7706f288fd --- /dev/null +++ b/rpms/awips2.core/Installer.maps-database/component.spec @@ -0,0 +1,396 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-maps-database +%define _component_project_dir awips2.core/Installer.maps-database +# +# AWIPS II Maps Database Spec File +# +Name: %{_component_name} +Summary: AWIPS II Maps Database +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-maps-database +requires: awips2-database + +%description +AWIPS II Maps Database - includes the +maps database (when awips2-postgresql is installed). + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/maps + +%build + +%install +# Determine which version of db we should use. +RPM_COMMON_DIR="${WORKSPACE_DIR}/Installer.rpm/common/static.versions" + +if [ ! -f ${RPM_COMMON_DIR}/LATEST.maps ]; then + file ${RPM_COMMON_DIR}/LATEST.maps + exit 1 +fi +VERSION_DIR=`cat ${RPM_COMMON_DIR}/LATEST.maps` + +STATIC_DATA_DIR="${AWIPSCM_SHARE}/awips2-static" + +# Copy the sql that is needed to create the maps database. +PATH_TO_DDL="build.edex/opt/db/ddl" +PATH_TO_MAPS_DDL="${PATH_TO_DDL}/maps" +cp -r ${WORKSPACE_DIR}/${PATH_TO_MAPS_DDL}/* \ + ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/maps + +PATH_TO_STATIC_DDL="${STATIC_DATA_DIR}/maps/${VERSION_DIR}/db" +if [ ! -d ${PATH_TO_STATIC_DDL} ]; then + file ${PATH_TO_STATIC_DDL} + exit 1 +fi +cp ${PATH_TO_STATIC_DDL}/* \ + ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/maps +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +SQL_LOG="${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/maps/maps.log" +# So that it will automatically be removed when the rpm is removed. +touch ${SQL_LOG} + +%pre +# Verify that one of the official AWIPS II PostgreSQL configuration files exist. +if [ ! -f /awips2/data/postgresql.conf ]; then + echo "ERROR: /awips2/data/postgresql.conf does not exist. However, " + echo " the AWIPS II PostgreSQL Configuration RPM is installed. " + echo " If you recently uninstalled awips2-database and purged " + echo " the /awips2/data directory, you will need to re-install " + echo " the AWIPS II PostgreSQL configuration rpm so that the " + echo " postgresql.conf file will be restored." + exit 1 +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing The AWIPS Maps Database Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = /awips2/database\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II Maps Database Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m Check the installation log: /awips2/database/sqlScripts/share/sql/maps/maps.log\e[m" + echo "" + if [ -f /awips2/database/sqlScripts/share/sql/maps/maps.log ]; then + tail -n 6 /awips2/database/sqlScripts/share/sql/maps/maps.log + fi + exit 1 +} + +POSTGRESQL_INSTALL="/awips2/postgresql" +PSQL_INSTALL="/awips2/psql" + +POSTMASTER="${POSTGRESQL_INSTALL}/bin/postmaster" +PG_CTL="${POSTGRESQL_INSTALL}/bin/pg_ctl" +DROPDB="${POSTGRESQL_INSTALL}/bin/dropdb" +PG_RESTORE="${POSTGRESQL_INSTALL}/bin/pg_restore" +PSQL="${PSQL_INSTALL}/bin/psql" + +# Determine who owns the PostgreSQL Installation +DB_OWNER=`ls -l /awips2/ | grep -w 'data' | awk '{print $3}'` +# Our log file +SQL_LOG="/awips2/database/sqlScripts/share/sql/maps/maps.log" + +# Determine if PostgreSQL is running. +I_STARTED_POSTGRESQL="NO" +su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data > /dev/null 2>&1" +RC="$?" + +# Start PostgreSQL if it is not running. +if [ ! "${RC}" = "0" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| Starting PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${POSTMASTER} -D /awips2/data > /dev/null 2>&1 &" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Error - failed to start the PostgreSQL Server." + echo "--------------------------------------------------------------------------------" + printFailureMessage + fi + # Give PostgreSQL Time To Start. + sleep 10 + I_STARTED_POSTGRESQL="YES" +else + echo "--------------------------------------------------------------------------------" + echo "\| Found Running PostgreSQL Server..." + echo "--------------------------------------------------------------------------------" + # Show The User. + su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data" +fi + +# Is there a maps database? +MAPS_DB_EXISTS="false" +MAPS_DB=`${PSQL} -U awips -l | grep maps | awk '{print $1}'` +if [ "${MAPS_DB}" = "maps" ]; then + MAPS_DB_EXISTS="true" + # We Have a Maps Database, There Is Nothing To Do. + echo "--------------------------------------------------------------------------------" + echo "\| Maps Database Already Exists..." + echo "--------------------------------------------------------------------------------" +fi + +if [ "${MAPS_DB_EXISTS}" = "false" ]; then + # Create the maps directory; remove any existing directories. + echo "--------------------------------------------------------------------------------" + echo "\| Creating a Directory for the maps Tablespace..." + echo "--------------------------------------------------------------------------------" + if [ -d /awips2/data/maps ]; then + su ${DB_OWNER} -c "rm -rf /awips2/data/maps" + fi + su ${DB_OWNER} -c "mkdir -p /awips2/data/maps" + + # Update: lwpostgis.sql + echo ${POSTGRESQL_INSTALL} | sed 's/\//\\\//g' > .awips2_escape.tmp + POSTGRESQL_INSTALL_ESCAPED=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + perl -p -i -e "s/%{INSTALL_PATH}%/${POSTGRESQL_INSTALL_ESCAPED}/g" \ + /awips2/database/sqlScripts/share/lwpostgis.sql + + # Update the sql script that creates the maps database / tables. + perl -p -i -e "s/%{database_files_home}%/\/awips2\/data/g" \ + /awips2/database/sqlScripts/share/sql/maps/createMapsDb.sql + + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Creating maps Database..." + echo "--------------------------------------------------------------------------------" + # Run the setup sql for the maps database. + SQL_FILE="/awips2/database/sqlScripts/share/sql/maps/createMapsDb.sql" + su ${DB_OWNER} -c \ + "${PSQL} -d postgres -U awips -q -p 5432 -f ${SQL_FILE}" >> ${SQL_LOG} 2>&1 + RC=$? + if [ ! "${RC}" -eq 0 ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Error - Failed to execute: createMapsDb.sql." + echo "--------------------------------------------------------------------------------" + printFailureMessage + fi + + SQL_FILE="/awips2/database/sqlScripts/share/lwpostgis.sql" + su ${DB_OWNER} -c \ + "${PSQL} -d maps -U awips -q -p 5432 -f ${SQL_FILE}" >> ${SQL_LOG} 2>&1 + RC=$? + if [ ! "${RC}" -eq 0 ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Error - Failed to execute: lwpostgis.sql." + echo "--------------------------------------------------------------------------------" + printFailureMessage + fi + + SQL_FILE="/awips2/database/sqlScripts/share/spatial_ref_sys.sql" + su ${DB_OWNER} -c \ + "${PSQL} -d maps -U awips -q -p 5432 -f ${SQL_FILE}" >> ${SQL_LOG} 2>&1 + RC=$? + if [ ! "${RC}" -eq 0 ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Error - Failed to execute: spatial_ref_sys.sql." + echo "--------------------------------------------------------------------------------" + printFailureMessage + fi + + # Import the data into the maps database. + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Restoring map data..." + echo "--------------------------------------------------------------------------------" + DB_ARCHIVE="/awips2/database/sqlScripts/share/sql/maps/maps.db" + su ${DB_OWNER} -c \ + "${PG_RESTORE} -d maps -U awips -p 5432 -n mapdata ${DB_ARCHIVE}" >> ${SQL_LOG} 2>&1 + + su ${DB_OWNER} -c \ + "${PG_RESTORE} -d maps -U awips -p 5432 -n public -t geometry_columns -a ${DB_ARCHIVE}" \ + >> ${SQL_LOG} 2>&1 +fi + +# stop PostgreSQL if we started it. +if [ "${I_STARTED_POSTGRESQL}" = "YES" ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Stopping PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${PG_CTL} stop -D /awips2/data" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "Warning: Failed to shutdown PostgreSQL." + fi + sleep 10 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| SUCCESSFUL INSTALLATION ~ awips2-maps-database\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi + +POSTGRESQL_INSTALL="/awips2/postgresql" +PSQL_INSTALL="/awips2/psql" + +POSTMASTER="${POSTGRESQL_INSTALL}/bin/postmaster" +PG_CTL="${POSTGRESQL_INSTALL}/bin/pg_ctl" +DROPDB="${POSTGRESQL_INSTALL}/bin/dropdb" +PG_RESTORE="${POSTGRESQL_INSTALL}/bin/pg_restore" +PSQL="${PSQL_INSTALL}/bin/psql" + +if [ ! -f ${POSTMASTER} ]; then + exit 0 +fi +if [ ! -f ${PG_CTL} ]; then + exit 0 +fi +if [ ! -f ${DROPDB} ]; then + exit 0 +fi +if [ ! -f ${PG_RESTORE} ]; then + exit 0 +fi +if [ ! -f ${PSQL} ]; then + exit 0 +fi + +# Determine who owns the PostgreSQL Installation +DB_OWNER=`ls -l /awips2/ | grep -w 'data' | awk '{print $3}'` +# Our log file +SQL_LOG="/awips2/database/sqlScripts/share/sql/maps/maps.log" + +# start PostgreSQL if it is not running +I_STARTED_POSTGRESQL="NO" +su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data > /dev/null 2>&1" +RC="$?" + +# Start PostgreSQL if it is not running. +if [ ! "${RC}" = "0" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| Starting PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${POSTMASTER} -D /awips2/data > /dev/null 2>&1 &" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "Failed To Start The PostgreSQL Server." + exit 1 + fi + # Give PostgreSQL Time To Start. + sleep 10 + I_STARTED_POSTGRESQL="YES" +else + echo "--------------------------------------------------------------------------------" + echo "\| Found Running PostgreSQL Server..." + echo "--------------------------------------------------------------------------------" + # Show The User. + su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data" +fi + +# Is there a maps database? +MAPS_DB=`${PSQL} -U awips -l | grep maps | awk '{print $1}'` + +if [ "${MAPS_DB}" = "maps" ]; then + # drop the maps database + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Dropping the maps Database..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${DROPDB} -U awips maps" >> ${SQL_LOG} +fi + +# Is there a maps tablespace? +# ask psql where the maps tablespace is ... +MAPS_DIR=`${PSQL} -U awips -d postgres -c "\db" | grep maps | awk '{print $5}'` + +if [ ! "${MAPS_DIR}" = "" ]; then + # drop the maps tablespace + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Dropping the maps Tablespace..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${PSQL} -U awips -d postgres -c \"DROP TABLESPACE maps\"" >> ${SQL_LOG} + + # remove the maps data directory that we created + echo "Attempting To Removing Directory: ${MAPS_DIR}" + if [ -d "${MAPS_DIR}" ]; then + su ${DB_OWNER} -c "rmdir ${MAPS_DIR}" + fi +fi + +# stop PostgreSQL if we started it +if [ "${I_STARTED_POSTGRESQL}" = "YES" ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Stopping PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${PG_CTL} stop -D /awips2/data" + sleep 2 +fi + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| SUCCESSFUL UNINSTALLATION ~ awips2-maps-database\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%files +%defattr(666,awips,fxalpha,775) +%dir /awips2 +%dir /awips2/database +%dir /awips2/database/sqlScripts +%dir /awips2/database/sqlScripts/share +%dir /awips2/database/sqlScripts/share/sql +%dir /awips2/database/sqlScripts/share/sql/maps +/awips2/database/sqlScripts/share/sql/maps/maps.log + +%defattr(755,awips,fxalpha,755) +/awips2/database/sqlScripts/share/sql/maps/*.sh +/awips2/database/sqlScripts/share/sql/maps/*.db +/awips2/database/sqlScripts/share/sql/maps/*.sql \ No newline at end of file diff --git a/rpms/awips2.core/Installer.ncep-database/component.spec b/rpms/awips2.core/Installer.ncep-database/component.spec new file mode 100644 index 0000000000..2d7cbd0787 --- /dev/null +++ b/rpms/awips2.core/Installer.ncep-database/component.spec @@ -0,0 +1,386 @@ +# +# AWIPS II NCEP Database Spec File +# +# This rpm will create the ncep database and tables. + +Name: awips2-ncep-database +Summary: AWIPS II NCEP Database Installation +Version: 1.0.0 +Release: 1 +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2/database +URL: N/A +License: N/A +Distribution: N/A +Vendor: NCEP/NCO/SIB CWA +Packager: J. Zeng / B. Kowal + +AutoReq: no +provides: awips2-ncep-database +requires: awips2-database +requires: awips2-postgresql +requires: awips2-psql + +%description +AWIPS II NCEP Database Installation - This rpm creates the ncep database and tables. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/database + +%build + +%install +PATH_TO_DDL="build.edex/opt/db/ddl/ncep" +PATH_TO_SHP_FILES="awips2-static/db/ddl/ncep" + +# Create A Temporary Directory For The SQL Scripts That The Database +# RPM Will Need. +mkdir -p ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/ncep + +# Copy the ncep sql scripts into the rpm. +cp -r ${WORKSPACE_DIR}/${PATH_TO_DDL}/* \ + ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/ncep + +# Copy the ncep shapefiles into the rpm. +cp -r ${AWIPSCM_SHARE}/${PATH_TO_SHP_FILES}/* \ + ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/ncep + +# Create our installation log file. +touch ${RPM_BUILD_ROOT}/awips2/database/sqlScripts/share/sql/ncep/ncep_sql_install.log + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Creating the AWIPS II ncep Database...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +POSTGRESQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-postgresql` +# Need this for the lwpostgis.sql and spatial_ref_sys.sql scripts +DATABASE_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-database` +AWIPS2_DATA_DIRECTORY="${POSTGRESQL_INSTALL}/data" +POSTGRESQL_INSTALL="${POSTGRESQL_INSTALL}/postgresql" +PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-psql` + +POSTMASTER="${POSTGRESQL_INSTALL}/bin/postmaster" +PG_CTL="${POSTGRESQL_INSTALL}/bin/pg_ctl" +DROPDB="${POSTGRESQL_INSTALL}/bin/dropdb" +PG_RESTORE="${POSTGRESQL_INSTALL}/bin/pg_restore" +PSQL="${PSQL_INSTALL}/bin/psql" +# Determine who owns the PostgreSQL Installation +DB_OWNER=`ls -l /awips2/ | grep -w 'data' | awk '{print $3}'` +# Our log file +SQL_LOG="${RPM_INSTALL_PREFIX}/sqlScripts/share/sql/ncep/ncep_sql_install.log" +SQL_SHARE_DIR="${RPM_INSTALL_PREFIX}/sqlScripts/share/sql/ncep" +LWPOSTGIS_SQL="${DATABASE_INSTALL}/sqlScripts/share/lwpostgis.sql" +SPATIAL_SQL="${DATABASE_INSTALL}/sqlScripts/share/spatial_ref_sys.sql" + +# Determine if PostgreSQL is running. +I_STARTED_POSTGRESQL="NO" +su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data > /dev/null 2>&1" +RC="$?" + +# Start PostgreSQL if it is not running. +if [ ! "${RC}" = "0" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| Starting PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${POSTMASTER} -D /awips2/data > /dev/null 2>&1 &" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Error - failed to start the PostgreSQL Server." + echo "--------------------------------------------------------------------------------" + printFailureMessage + fi + # Give PostgreSQL Time To Start. + sleep 10 + I_STARTED_POSTGRESQL="YES" +else + echo "--------------------------------------------------------------------------------" + echo "\| Found Running PostgreSQL Server..." + echo "--------------------------------------------------------------------------------" + # Show The User. + su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data" +fi + +# Create the ncep directory; remove any existing directories. +echo "--------------------------------------------------------------------------------" +echo "\| Creating a Directory for the ncep Tablespace..." +echo "--------------------------------------------------------------------------------" +if [ -d /awips2/data/ncep ]; then + su ${DB_OWNER} -c "rm -rf /awips2/data/ncep" +fi +su ${DB_OWNER} -c "mkdir -p /awips2/data/ncep" + +echo "--------------------------------------------------------------------------------" +echo "\| Creating the ncep database..." +echo "--------------------------------------------------------------------------------" +# Update createNcepDb.sql +echo ${AWIPS2_DATA_DIRECTORY} | sed 's/\//\\\//g' > .awips2_escape.tmp +AWIPS2_DATA_DIRECTORY_ESCAPED=`cat .awips2_escape.tmp` +rm -f .awips2_escape.tmp +perl -p -i -e "s/%{database_files_home}%/${AWIPS2_DATA_DIRECTORY_ESCAPED}/g" \ + ${SQL_SHARE_DIR}/createNcepDb.sql + + +su ${DB_OWNER} -c \ + "${PSQL} -d postgres -U awips -q -p 5432 -f ${SQL_SHARE_DIR}/createNcepDb.sql" \ + >> ${SQL_LOG} 2>&1 +su ${DB_OWNER} -c \ + "${PSQL} -d postgres -U awips -q -p 5432 -f ${SQL_SHARE_DIR}/createNcepSchemas.sql" \ + >> ${SQL_LOG} 2>&1 +su ${DB_OWNER} -c \ + "${PSQL} -d ncep -U awips -q -p 5432 -f ${LWPOSTGIS_SQL}" \ + >> ${SQL_LOG} 2>&1 +su ${DB_OWNER} -c \ + "${PSQL} -d ncep -U awips -q -p 5432 -f ${SPATIAL_SQL}" \ + >> ${SQL_LOG} 2>&1 + +su ${DB_OWNER} -c \ + "${SQL_SHARE_DIR}/createNcepDb.sh ${PSQL_INSTALL} 5432 awips ${SQL_SHARE_DIR} ${SQL_LOG}" +su ${DB_OWNER} -c \ + "${SQL_SHARE_DIR}/initializeNcepDb.sh ${POSTGRESQL_INSTALL} awips 5432 ${SQL_SHARE_DIR} ${SQL_LOG}" + +# stop PostgreSQL if we started it. +if [ "${I_STARTED_POSTGRESQL}" = "YES" ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Stopping PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${PG_CTL} stop -D /awips2/data" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "Warning: Failed to shutdown PostgreSQL." + fi + sleep 10 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II ncep Database Creation ~ SUCCESSFUL...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi + +POSTGRESQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-postgresql` +POSTGRESQL_INSTALL="${POSTGRESQL_INSTALL}/postgresql" +PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-psql` + +POSTMASTER="${POSTGRESQL_INSTALL}/bin/postmaster" +PG_CTL="${POSTGRESQL_INSTALL}/bin/pg_ctl" +DROPDB="${POSTGRESQL_INSTALL}/bin/dropdb" +PG_RESTORE="${POSTGRESQL_INSTALL}/bin/pg_restore" +PSQL="${PSQL_INSTALL}/bin/psql" +# Determine who owns the PostgreSQL Installation +DB_OWNER=`ls -l /awips2/ | grep -w 'data' | awk '{print $3}'` + +echo "--------------------------------------------------------------------------------" +echo "\| Preparing to drop the ncep tablespace and database..." +echo "--------------------------------------------------------------------------------" +# Drop the ncep database and tablespace. + +# start PostgreSQL if it is not running +I_STARTED_POSTGRESQL="NO" +su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data > /dev/null 2>&1" +RC="$?" + +# Start PostgreSQL if it is not running. +if [ ! "${RC}" = "0" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| Starting PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${POSTMASTER} -D /awips2/data > /dev/null 2>&1 &" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "Failed To Start The PostgreSQL Server." + exit 1 + fi + # Give PostgreSQL Time To Start. + sleep 10 + I_STARTED_POSTGRESQL="YES" +else + echo "--------------------------------------------------------------------------------" + echo "\| Found Running PostgreSQL Server..." + echo "--------------------------------------------------------------------------------" + # Show The User. + su ${DB_OWNER} -c \ + "${PG_CTL} status -D /awips2/data" +fi + +echo "--------------------------------------------------------------------------------" +echo "\| Dropping ncep database..." +echo "--------------------------------------------------------------------------------" + +su ${DB_OWNER} -c \ + "${DROPDB} -U awips ncep" + +# Is there a ncep tablespace? +# ask psql where the ncep tablespace is ... +NCEP_DIR=`${PSQL} -U awips -d postgres -c "\db" | grep ncep | awk '{print $5}'` + +if [ ! "${NCEP_DIR}" = "" ]; then + echo "--------------------------------------------------------------------------------" + echo "\| Dropping ncep tablespace..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${PSQL} -U awips -d postgres -c \"DROP TABLESPACE ncep\"" + + # remove the maps data directory that we created + echo "Attempting To Remove Directory: ${NCEP_DIR}" + if [ -d "${NCEP_DIR}" ]; then + su ${DB_OWNER} -c "rmdir ${NCEP_DIR}" + fi +fi + +# stop PostgreSQL if we started it. +if [ "${I_STARTED_POSTGRESQL}" = "YES" ]; then + echo "" + echo "--------------------------------------------------------------------------------" + echo "\| Stopping PostgreSQL As User - ${DB_OWNER}..." + echo "--------------------------------------------------------------------------------" + su ${DB_OWNER} -c \ + "${PG_CTL} stop -D /awips2/data" + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "Warning: Failed to shutdown PostgreSQL." + fi + sleep 10 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II ncep Database Removal ~ SUCCESSFUL...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +exit 0 + +%postun + +%files +%defattr(-,awips,fxalpha,-) +%dir /awips2 +%dir /awips2/database +%dir /awips2/database/sqlScripts +%dir /awips2/database/sqlScripts/share +%dir /awips2/database/sqlScripts/share/sql +%dir /awips2/database/sqlScripts/share/sql/ncep +%attr(777,root,root) /awips2/database/sqlScripts/share/sql/ncep/ncep_sql_install.log +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepConfigTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepDb.sh +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepDb.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepNcgribTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepNwxTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepSatTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepSchemas.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/createNcepStnsTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/importNcepShapeFile.sh +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/initializeNcepDb.sh +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadAirepWaypnts.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadBuoys.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadCities.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadClimReg.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadCntyclst.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadCoastal.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadConfigClo.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadCoordPts.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadCountynam.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadCounty.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadCpcstns.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadDlwx.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadFfgzon.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadFirezones.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadGeog.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadGfsmos.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadIdft.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadInactive.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadIntlsig.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadIsland.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadLsfstns.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadMardel.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadMarinenames.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadMarine.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadMsfstns.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadMzcntys.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNcepNwx.sh +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNcepStns.sh +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNcSat.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNcStnsCountyclust.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNexrad.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNgmmos.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxAviationforecastsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxCPCProductsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxFlashFloodBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxHPCHeatIndexBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxHPCProductsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxMarineBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxMasterAndGuiProducts.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxMOSBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxNHCProductsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxObservedDataBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxPtfcstProductsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxPublicProductsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxReconCARCAHBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxSPCProductsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxTropicalPacificBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadNwxVolcanoProductsBulletinTables.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadPermclust.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadPirepNavaids.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadRiverbas.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadScdstn.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSfstns.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadShef_COOP1.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadShef_COOP2.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadShef_COOP3.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadShef_COOP4.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadShef_COOP.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadShef_master.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadShpexception.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSnap8.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSnap.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSnstns.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSnworld.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSpcwatch.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadState.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadStns_II90.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSystns.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadSyworld.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTafstn.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTcabkpt_island.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTcabkpt_land.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTcabkptlz.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTcabkpt_ovl.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTcabkpt.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTcabkpt_water.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTpc_countries.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadTpc_states.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadVcrdgrib1.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadVolcano_small.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadVolcano.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadVors.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadWfo.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadWrqpf.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadXrainsort.sql +%attr(755,awips,fxalpha) /awips2/database/sqlScripts/share/sql/ncep/loadZones.sql +/awips2/database/sqlScripts/share/sql/ncep/shapefiles \ No newline at end of file diff --git a/rpms/awips2.core/Installer.notification/component.spec b/rpms/awips2.core/Installer.notification/component.spec new file mode 100644 index 0000000000..bb8e97a4b8 --- /dev/null +++ b/rpms/awips2.core/Installer.notification/component.spec @@ -0,0 +1,181 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-notification +%define _component_project_dir awips2.core/Installer.notification +%define _component_default_prefix /awips2/notification +# +# AWIPS II Notification Spec File +# +%define __prelink_undo_cmd %{nil} + +Name: %{_component_name} +Summary: AWIPS II Notification +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: boost >= 1.33.1 +provides: awips2-notification + +%description +AWIPS II Notification Distribution - the AWIPS II Notification application. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/notification +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d + +PROFILE_D_DIR="Installer.rpm/awips2.core/Installer.notification/scripts/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} +NOTIFICATION_TAR_FILE_DIR="packages/notification" +NOTIFICATION_TAR_FILE="${NOTIFICATION_TAR_FILE_DIR}/edex_com.tar.bz2" + +cd ${RPM_BUILD_ROOT}/awips2 +/bin/gtar -xpf ${AWIPSCM_SHARE}/${NOTIFICATION_TAR_FILE} + +cp -r ${RPM_BUILD_ROOT}/awips2/edex_com/* ${RPM_BUILD_ROOT}/awips2/notification/ +# Remove the boost rpms directory +rm -rf ${RPM_BUILD_ROOT}/awips2/notification/rpms +rm -rf ${RPM_BUILD_ROOT}/awips2/edex_com + +copyLegal "awips2/notification" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Notification...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo "--------------------------------------------------------------------------------" +echo "\| Setting up the AWIPS II Notification Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +echo "--------------------------------------------------------------------------------" +echo "\| Adding Environment Variables for AWIPS II Notification" +echo "--------------------------------------------------------------------------------" + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Notification Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Notification Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%attr(755,root,root) /etc/profile.d/awips2Notification.csh +%attr(755,root,root) /etc/profile.d/awips2Notification.sh +%dir /awips2/notification +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2/notification/include +/awips2/notification/include/* +%dir /awips2/notification/lib +/awips2/notification/lib/* +%docdir /awips2/notification/licenses +%dir /awips2/notification/licenses +/awips2/notification/licenses/* +%doc /awips2/notification/README +%dir /awips2/notification/src +/awips2/notification/src/* + +%defattr(755,awips,fxalpha,755) +%dir /awips2/notification/bin +/awips2/notification/bin/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.notification/scripts/profile.d/awips2Notification.csh b/rpms/awips2.core/Installer.notification/scripts/profile.d/awips2Notification.csh new file mode 100644 index 0000000000..5de8cc8e1e --- /dev/null +++ b/rpms/awips2.core/Installer.notification/scripts/profile.d/awips2Notification.csh @@ -0,0 +1,16 @@ +#!/bin/csh + +# Determine where notification has been installed. +set NOTIFICATION_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-notification` + +if $?LD_LIBRARY_PATH then + setenv LD_LIBRARY_PATH ${NOTIFICATION_INSTALL}/lib:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH ${NOTIFICATION_INSTALL}/lib +endif + +if $?PATH then + setenv PATH ${NOTIFICATION_INSTALL}/bin:$PATH +else + setenv PATH ${NOTIFICATION_INSTALL}/bin +endif diff --git a/rpms/awips2.core/Installer.notification/scripts/profile.d/awips2Notification.sh b/rpms/awips2.core/Installer.notification/scripts/profile.d/awips2Notification.sh new file mode 100644 index 0000000000..f9084dbec9 --- /dev/null +++ b/rpms/awips2.core/Installer.notification/scripts/profile.d/awips2Notification.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Is awips2-notification Installed? +rpm -q awips2-notification > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + return +fi + +# Determine Where awips2-notification Has Been Installed. +NOTIFICATION_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-notification` +if [ "${NOTIFICATION_INSTALL}" = "" ]; then + return +fi + +# Update The Environment. +# Determine if awips2-notification is Already On LD_LIBRARY_PATH +CHECK_PATH=`echo ${LD_LIBRARY_PATH} | grep ${NOTIFICATION_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-notification Is Not On LD_LIBRARY_PATH; Add It. + export LD_LIBRARY_PATH=${NOTIFICATION_INSTALL}/lib:${LD_LIBRARY_PATH} +fi + +# Determine if awips2-notification Is Already Part Of The Path. +CHECK_PATH=`echo ${PATH} | grep ${NOTIFICATION_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-notification Is Not In The Path; Add It To The Path. + export PATH=${NOTIFICATION_INSTALL}/bin:${PATH} +fi diff --git a/rpms/awips2.core/Installer.postgresql/component.spec b/rpms/awips2.core/Installer.postgresql/component.spec new file mode 100644 index 0000000000..a43deb4f67 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/component.spec @@ -0,0 +1,360 @@ +# +# AWIPS II PostgreSQL Spec File +# + +Name: awips2-postgresql +Summary: AWIPS II PostgreSQL Distribution +Version: 8.3.4 +Release: 3 +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2 +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-postgresql +provides: awips2-base-component + +%description +AWIPS II PostgreSQL Distribution - Contains the AWIPS II PostgreSQL Distribution. +This is just the postgresql application. There is a separate rpm that will initialize +and populate the AWIPS II databases. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +# Ensure That awips2-psql Has Been Installed. +COMMAND=`rpm -q awips2-psql` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-psql Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +POSTGRESQL_BUILD_DIR="awips2/postgresql-build" +POSTGRESQL_SOURCE_DIR="${AWIPSCM_SHARE}/packages/postgresqlSource" +POSTGRESQL_TAR_FILE="postgresql-8.3.4.tar.gz" + +mkdir -p ${RPM_BUILD_ROOT}/awips2/postgresql +mkdir -p ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d +mkdir -p ${RPM_BUILD_ROOT}/etc/ld.so.conf.d +touch ${RPM_BUILD_ROOT}/etc/ld.so.conf.d/awips2-postgresql-i386.conf + +PROFILE_D_DIR="Installer.rpm/awips2.core/Installer.postgresql/scripts/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +# Copy our source tar file to the build directory. +cp ${POSTGRESQL_SOURCE_DIR}/${POSTGRESQL_TAR_FILE} \ + ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} + +# Untar the postgresql source +cd ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} + +tar -xvf ${POSTGRESQL_TAR_FILE} + +%build +export LD_LIBRARY_PATH=/awips2/psql/lib +export LDFLAGS="-L${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.postgresql/pre-reqs/lib -L/awips2/psql/lib" + +POSTGRESQL_BUILD_DIR="awips2/postgresql-build" + +cd ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR}/postgresql-8.3.4 + +./configure --prefix=${RPM_BUILD_ROOT}/awips2/postgresql +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi +make clean +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +# !!! HACK ! HACK ! HACK !!! +# Note: This May Not Be Necessary With Newer Versions Of PostgreSQL. +POSTGRESQL_MANUAL_BUILD_DIR="contrib/spi" +POSTGRESQL_MANUAL_BUILD_FILES=( 'autoinc' \ + 'insert_username' 'moddatetime' 'refint' \ + 'timetravel' ) +cd ${POSTGRESQL_MANUAL_BUILD_DIR} + +# Note: This Will Only Be Needed For 32-Bit Compiles On A 64-Bit Machine. +for file in ${POSTGRESQL_MANUAL_BUILD_FILES[*]}; +do + gcc -m32 -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wdeclaration-after-statement -Wendif-labels \ + -fno-strict-aliasing -fwrapv -fpic -DREFINT_VERBOSE -I. -I../../src/include -D_GNU_SOURCE \ + -c -o ${file}.o ${file}.c + RC="$?" + if [ ! "${RC}" = "0" ]; then + exit 1 + fi + gcc -m32 -shared -o ${file}.so ${file}.o + RC="$?" + if [ ! "${RC}" = "0" ]; then + exit 1 + fi +done + +cd ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR}/postgresql-8.3.4 +make +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} +POSTGRESQL_BUILD_DIR="awips2/postgresql-build" + +cd ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR}/postgresql-8.3.4 + +make install +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +POSTGRESQL_EXT_SRC_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.postgresql/extensions" +PROJ_SRC="proj-4.6.1.tar.gz" +POSTGIS_SRC="postgis-1.3.5.tar.gz" +GEOS_SRC="geos-3.0.2.tar.bz2" + +# The directory that the src will be in after the tars are unzipped. +PROJ_SRC_DIR="proj-4.6.1" +POSTGIS_SRC_DIR="postgis-1.3.5" +GEOS_SRC_DIR="geos-3.0.2" + +cp ${POSTGRESQL_EXT_SRC_DIR}/${POSTGIS_SRC} \ + ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} +cp ${POSTGRESQL_EXT_SRC_DIR}/${PROJ_SRC} \ + ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} +cp ${POSTGRESQL_EXT_SRC_DIR}/${GEOS_SRC} \ + ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} + +cd ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} +tar -xvf ${PROJ_SRC} +tar -xvf ${POSTGIS_SRC} +tar -xvf ${GEOS_SRC} + +# a few of the postgresql extensions ignore CFLAGS +# if statement; check for 32 / 64 bit compile flag +export CPPFLAGS="-m32" + +cd ${GEOS_SRC_DIR} +./configure --prefix=${RPM_BUILD_ROOT}/awips2/postgresql +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi +make +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi +make install +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +cd ../${PROJ_SRC_DIR} +./configure --prefix=${RPM_BUILD_ROOT}/awips2/postgresql +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi +make +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi +make install +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +cd ../${POSTGIS_SRC_DIR} + +export PATH=${RPM_BUILD_ROOT}/awips2/postgresql/bin:$PATH +./configure \ + --with-pgconfig=${RPM_BUILD_ROOT}/awips2/postgresql/bin/pg_config \ + --with-geosconfig=${RPM_BUILD_ROOT}/awips2/postgresql/bin/geos-config \ + --with-projdir=${RPM_BUILD_ROOT}/awips2/postgresql \ + --prefix=${RPM_BUILD_ROOT}/awips2/postgresql +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi +make +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi +make install +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +# Remove the postgresql build directory. +rm -rf ${RPM_BUILD_ROOT}/${POSTGRESQL_BUILD_DIR} + +CONFIG_FILE_TO_INCLUDE="postgresql.conf" +PATH_TO_DDL="build.edex/opt/db/ddl" +EXPECTED_PATH_TO_CONFIG="${PATH_TO_DDL}/setup" +KNOWN_CONFIG_DESTINATION="awips2/postgresql/share/sql" +# Ensure That We Have Access To The Configuration Files Before Continuing. +if [ ! -f ${WORKSPACE_DIR}/${EXPECTED_PATH_TO_CONFIG}/${CONFIG_FILE_TO_INCLUDE} ]; then + echo "The ${CONFIG_FILE_TO_INCLUDE} PostgreSQL Configuration File Can Not Be Found." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +# Create The "Share SQL" Directory +mkdir -p ${RPM_BUILD_ROOT}/${KNOWN_CONFIG_DESTINATION} +# Create The PostgreSQL Data Directory +mkdir -p ${RPM_BUILD_ROOT}/awips2/data + +# Copy The Configuration File +cp -r ${WORKSPACE_DIR}/${EXPECTED_PATH_TO_CONFIG}/${CONFIG_FILE_TO_INCLUDE} \ + ${RPM_BUILD_ROOT}/${KNOWN_CONFIG_DESTINATION} + +STARTUP_SCRIPTS_TO_INCLUDE=('start_developer_postgres.sh' 'start_postgres.sh') +PATH_TO_STARTUP_SCRIPTS="Installer.rpm/awips2.core/Installer.postgresql/scripts" +STARTUP_SCRIPT_DESTINATION="awips2/postgresql/bin" +# Copy The Startup Scripts +for script in ${STARTUP_SCRIPTS_TO_INCLUDE[*]}; +do + cp -r ${WORKSPACE_DIR}/${PATH_TO_STARTUP_SCRIPTS}/${script} \ + ${RPM_BUILD_ROOT}/${STARTUP_SCRIPT_DESTINATION} +done + +copyLegal "awips2/postgresql" + +# Include the postgresql service script +mkdir -p ${RPM_BUILD_ROOT}/etc/init.d +cp ${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.postgresql/scripts/init.d/edex_postgres \ + ${RPM_BUILD_ROOT}/etc/init.d + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II PostgreSQL Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/postgresql\e[m" + +%post +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II PostgreSQL Distribution Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" +} + +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II PostgreSQL Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +echo "${RPM_INSTALL_PREFIX}/postgresql/lib" >> /etc/ld.so.conf.d/awips2-postgresql-i386.conf + +# Run ldconfig +/sbin/ldconfig + +echo "--------------------------------------------------------------------------------" +echo "\| Updating PostgreSQL Startup Scripts" +echo "--------------------------------------------------------------------------------" + +echo "--------------------------------------------------------------------------------" +echo "\| Adding Environment Variables for AWIPS II PostgreSQL" +echo "--------------------------------------------------------------------------------" + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II PostgreSQL Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi +if [ -f /etc/init.d/edex_postgres ]; then + /sbin/chkconfig --del edex_postgres +fi + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II PostgreSQL Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%attr(755,root,root) /etc/profile.d/awips2Postgres.csh +%attr(755,root,root) /etc/profile.d/awips2Postgres.sh +%attr(755,root,root) /etc/ld.so.conf.d/awips2-postgresql-i386.conf +%attr(744,root,root) /etc/init.d/edex_postgres +%attr(700,awips,fxalpha) /awips2/data +%dir /awips2/postgresql +%docdir /awips2/postgresql/doc +%dir /awips2/postgresql/doc +/awips2/postgresql/doc/* +%dir /awips2/postgresql/include +/awips2/postgresql/include/* +%dir /awips2/postgresql/lib +/awips2/postgresql/lib/* +%docdir /awips2/postgresql/licenses +%dir /awips2/postgresql/licenses +/awips2/postgresql/licenses/* +%docdir /awips2/postgresql/man +%dir /awips2/postgresql/man +/awips2/postgresql/man/* +%dir /awips2/postgresql/share +/awips2/postgresql/share/* + +%defattr(755,awips,fxalpha,755) +%dir /awips2/postgresql/bin +/awips2/postgresql/bin/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.postgresql/extensions/geos-3.0.2.tar.bz2 b/rpms/awips2.core/Installer.postgresql/extensions/geos-3.0.2.tar.bz2 new file mode 100644 index 0000000000..afb0be4330 Binary files /dev/null and b/rpms/awips2.core/Installer.postgresql/extensions/geos-3.0.2.tar.bz2 differ diff --git a/rpms/awips2.core/Installer.postgresql/extensions/postgis-1.3.5.tar.gz b/rpms/awips2.core/Installer.postgresql/extensions/postgis-1.3.5.tar.gz new file mode 100755 index 0000000000..32f0aba42c Binary files /dev/null and b/rpms/awips2.core/Installer.postgresql/extensions/postgis-1.3.5.tar.gz differ diff --git a/rpms/awips2.core/Installer.postgresql/extensions/proj-4.6.1.tar.gz b/rpms/awips2.core/Installer.postgresql/extensions/proj-4.6.1.tar.gz new file mode 100755 index 0000000000..92b2a56bc0 Binary files /dev/null and b/rpms/awips2.core/Installer.postgresql/extensions/proj-4.6.1.tar.gz differ diff --git a/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so b/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so new file mode 120000 index 0000000000..c8ef3ba979 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so @@ -0,0 +1 @@ +libz.so.1.2.5 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so.1 b/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so.1 new file mode 120000 index 0000000000..c8ef3ba979 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so.1 @@ -0,0 +1 @@ +libz.so.1.2.5 \ No newline at end of file diff --git a/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so.1.2.5 b/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so.1.2.5 new file mode 100755 index 0000000000..247bd04118 Binary files /dev/null and b/rpms/awips2.core/Installer.postgresql/pre-reqs/lib/libz.so.1.2.5 differ diff --git a/rpms/awips2.core/Installer.postgresql/scripts/init.d/edex_postgres b/rpms/awips2.core/Installer.postgresql/scripts/init.d/edex_postgres new file mode 100644 index 0000000000..cb45535102 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/scripts/init.d/edex_postgres @@ -0,0 +1,108 @@ +#!/bin/bash +# +# edex_postgres This shell script takes care of starting and stopping +# the AWIPS EDEX postgreSQL instance. +# +# chkconfig: - 99 10 +# description: PostgreSQL database, which is the instance \ +# used by AWIPS EDEX. +# processname: postmaster +# config: %database_files_home/postgresql.conf + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +RETVAL=0 +prog="postmaster" +# Installation prefix + +# We will no longer be using hard-coded paths that need to be replaced. +# Use rpm to find the paths that we need. +JAVA_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-java` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-java Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi +PYTHON_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-python` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-python Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi +PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-psql` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-psql Must Be Installed." + echo "Unable To Continue ... Terminating." + exit +fi +POSTGRESQL_INSTALL_ROOT=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-postgresql` +POSTGRESQL_INSTALL="${POSTGRESQL_INSTALL_ROOT}/postgresql" +PGDATA_DIR="${POSTGRESQL_INSTALL_ROOT}/data" + +# Data directory +PGDATA="${PGDATA_DIR}" +# Who to run the postmaster as, usually "postgres". (NOT "root") +PGUSER=awips +# Port to start the database with +PGPORT=5432 +# Where to keep a log file +PGLOG="$PGDATA/serverlog" +# The path that is to be used for the script +PATH=${JAVA_INSTALL}/bin:${PYTHON_INSTALL}/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +export LD_LIBRARY_PATH=${JAVA_INSTALL}/lib:${PYTHON_INSTALL}/lib:${PSQL_INSTALL}/lib +# What to use to start up the postmaster (we do NOT use pg_ctl for this, +# as it adds no value and can cause the postmaster to misrecognize a stale +# lock file) +DAEMON="${POSTGRESQL_INSTALL}/bin/postmaster" +# What to use to shut down the postmaster +PGCTL="${POSTGRESQL_INSTALL}/bin/pg_ctl" + +[ -x $DAEMON ] || exit 0 +[ -x $PGCTL ] || exit 0 + +# See how we were called. +case $1 in + start) + echo -n "Starting EDEX PostgreSQL: " + su $PGUSER -c "$DAEMON -D '$PGDATA' -p $PGPORT &" >>$PGLOG 2>&1 + echo + RETVAL=$? + ;; + stop) + echo -n "Stopping EDEX PostgreSQL: " + su $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -o \"-p $PGPORT\"" + echo + RETVAL=$? + ;; + restart) + echo -n "Restarting EDEX PostgreSQL: " + su $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w -o \"-p $PGPORT\"" + su $PGUSER -c "$DAEMON -D '$PGDATA' -p $PGPORT &" >>$PGLOG 2>&1 + RETVAL=$? + ;; + reload) + echo -n "Reload EDEX PostgreSQL: " + su $PGUSER -c "$PGCTL reload -D '$PGDATA' -s -o \"-p $PGPORT\"" + RETVAL=$? + ;; + status) + su $PGUSER -c "$PGCTL status -D '$PGDATA' -o \"-p $PGPORT\"" + ;; + *) + # Print help + echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2 + exit 1 + ;; +esac + +exit $RETVAL diff --git a/rpms/awips2.core/Installer.postgresql/scripts/profile.d/awips2Postgres.csh b/rpms/awips2.core/Installer.postgresql/scripts/profile.d/awips2Postgres.csh new file mode 100644 index 0000000000..8552511e83 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/scripts/profile.d/awips2Postgres.csh @@ -0,0 +1,17 @@ +#!/bin/csh + +# Determine where postgres has been installed. +set POSTGRES_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-postgresql` +set POSTGRES_INSTALL="${POSTGRES_INSTALL}/postgresql" + +if $?LD_LIBRARY_PATH then + setenv LD_LIBRARY_PATH ${POSTGRES_INSTALL}/lib:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH ${POSTGRES_INSTALL}/lib +endif + +if $?PATH then + setenv PATH ${POSTGRES_INSTALL}/bin:$PATH +else + setenv PATH ${POSTGRES_INSTALL}/bin +endif diff --git a/rpms/awips2.core/Installer.postgresql/scripts/profile.d/awips2Postgres.sh b/rpms/awips2.core/Installer.postgresql/scripts/profile.d/awips2Postgres.sh new file mode 100644 index 0000000000..4d1cd99845 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/scripts/profile.d/awips2Postgres.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Is awips2-postgresql Installed? +rpm -q awips2-postgresql > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + return +fi + +# Determine Where awips2-postgresql Has Been Installed. +POSTGRESQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-postgresql` +POSTGRESQL_INSTALL="${POSTGRESQL_INSTALL}/postgresql" +if [ "${POSTGRESQL_INSTALL}" = "" ]; then + return +fi + +# Update The Environment. +# Determine if awips2-postgresql is Already On LD_LIBRARY_PATH +CHECK_PATH=`echo ${LD_LIBRARY_PATH} | grep ${POSTGRESQL_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-postgresql Is Not On LD_LIBRARY_PATH; Add It. + export LD_LIBRARY_PATH=${POSTGRESQL_INSTALL}/lib:${LD_LIBRARY_PATH} +fi + +# Determine if awips2-postgresql Is Already Part Of The Path. +CHECK_PATH=`echo ${PATH} | grep ${POSTGRESQL_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-postgresql Is Not In The Path; Add It To The Path. + export PATH=${POSTGRESQL_INSTALL}/bin:${PATH} +fi diff --git a/rpms/awips2.core/Installer.postgresql/scripts/start_developer_postgres.sh b/rpms/awips2.core/Installer.postgresql/scripts/start_developer_postgres.sh new file mode 100644 index 0000000000..0c68cb7fe3 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/scripts/start_developer_postgres.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +## EDIT FROM HERE + +# Use rpm to find installation locations / directory paths. +POSTGRESQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-postgresql` + +# Installation prefix +prefix="${POSTGRESQL_INSTALL}/postgresql" + +# Data Directory +PGDATA="${POSTGRESQL_INSTALL}/data" + +# Port to start the database with +PGPORT=5432 + +# Where to keep a log file +PGLOG="$PGDATA/serverlog" + +USER=`whoami` + +## STOP EDITING HERE + +# The path that is to be used for the script +PATH=${POSTGRESQL_INSTALL}/postgresql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +export LD_LIBRARY_PATH=${POSTGRESQL_INSTALL}/postgresql/lib + +# What to use to start up the postmaster (we do NOT use pg_ctl for this, +# as it adds no value and can cause the postmaster to misrecognize a stale +# lock file) +DAEMON="$prefix/bin/postmaster" + +# What to use to shut down the postmaster +PGCTL="$prefix/bin/pg_ctl" + +set -e + +# Only start if we can find the postmaster. +test -x $DAEMON || exit 0 + +echo -n "Starting PostgreSQL: " +$DAEMON -D $PGDATA -p $PGPORT + + + +exit 0 diff --git a/rpms/awips2.core/Installer.postgresql/scripts/start_postgres.sh b/rpms/awips2.core/Installer.postgresql/scripts/start_postgres.sh new file mode 100644 index 0000000000..0c68cb7fe3 --- /dev/null +++ b/rpms/awips2.core/Installer.postgresql/scripts/start_postgres.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +## EDIT FROM HERE + +# Use rpm to find installation locations / directory paths. +POSTGRESQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-postgresql` + +# Installation prefix +prefix="${POSTGRESQL_INSTALL}/postgresql" + +# Data Directory +PGDATA="${POSTGRESQL_INSTALL}/data" + +# Port to start the database with +PGPORT=5432 + +# Where to keep a log file +PGLOG="$PGDATA/serverlog" + +USER=`whoami` + +## STOP EDITING HERE + +# The path that is to be used for the script +PATH=${POSTGRESQL_INSTALL}/postgresql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +export LD_LIBRARY_PATH=${POSTGRESQL_INSTALL}/postgresql/lib + +# What to use to start up the postmaster (we do NOT use pg_ctl for this, +# as it adds no value and can cause the postmaster to misrecognize a stale +# lock file) +DAEMON="$prefix/bin/postmaster" + +# What to use to shut down the postmaster +PGCTL="$prefix/bin/pg_ctl" + +set -e + +# Only start if we can find the postmaster. +test -x $DAEMON || exit 0 + +echo -n "Starting PostgreSQL: " +$DAEMON -D $PGDATA -p $PGPORT + + + +exit 0 diff --git a/rpms/awips2.core/Installer.psql/component.spec b/rpms/awips2.core/Installer.psql/component.spec new file mode 100644 index 0000000000..1bd01cba36 --- /dev/null +++ b/rpms/awips2.core/Installer.psql/component.spec @@ -0,0 +1,159 @@ +# +# AWIPS II PSQL Spec File +# +%define __prelink_undo_cmd %{nil} + +Name: awips2-psql +Summary: AWIPS II PSQL Distribution +Version: 8.3.4 +Release: 3 +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2/psql +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-psql +requires: libtermcap >= 2.0.8-46.1 +requires: libtermcap.so.2 +requires: libreadline.so.4 + +%description +AWIPS II PSQL Distribution - Contains PSQL (PostgreSQL) V8.3.4 + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/psql +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d +mkdir -p ${RPM_BUILD_ROOT}/etc/ld.so.conf.d +touch ${RPM_BUILD_ROOT}/etc/ld.so.conf.d/awips2-psql-i386.conf + +%build +PROFILE_D_DIR="Installer.rpm/awips2.core/Installer.psql/scripts/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} +cp -r ${AWIPSCM_SHARE}/packages/psql/* ${RPM_BUILD_ROOT}/awips2/psql +# Remove all shared libraries that are not created by psql. +if [ -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.a ]; then + rm -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.a +fi +if [ -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.so ]; then + rm -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.so +fi +if [ -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.so.4 ]; then + rm -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.so.4 +fi +if [ -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.so.4.3 ]; then + rm -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libreadline.so.4.3 +fi +if [ -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libtermcap.a ]; then + rm -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libtermcap.a +fi +if [ -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libtermcap.so ]; then + rm -f ${RPM_BUILD_ROOT}/awips2/psql/lib/libtermcap.so +fi + +copyLegal "awips2/psql" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II PSQL Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II PSQL Distribution Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" +} +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II PSQL Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +echo "${RPM_INSTALL_PREFIX}/lib" >> /etc/ld.so.conf.d/awips2-psql-i386.conf + +# Run ldconfig +/sbin/ldconfig + +echo "--------------------------------------------------------------------------------" +echo "\| Changing AWIPS II PSQL owner to awips:fxalpha" +echo "--------------------------------------------------------------------------------" +chown -R awips:fxalpha ${RPM_INSTALL_PREFIX} + +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II PSQL Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II PSQL Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%attr(755,root,root) /etc/profile.d/awips2PSQL.csh +%attr(755,root,root) /etc/profile.d/awips2PSQL.sh +%attr(755,root,root) /etc/ld.so.conf.d/awips2-psql-i386.conf +%defattr(755,awips,fxalpha,755) +%dir /awips2/psql +%dir /awips2/psql/bin +/awips2/psql/bin/* +%defattr(644,awips,fxalpha,755) +%dir /awips2/psql/lib +%attr(777,awips,fxalpha) /awips2/psql/lib/libpq.so +%attr(777,awips,fxalpha) /awips2/psql/lib/libpq.so.5 +%attr(755,awips,fxalpha) /awips2/psql/lib/libpq.so.5.1 +%docdir /awips2/psql/licenses +%dir /awips2/psql/licenses +/awips2/psql/licenses/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.psql/scripts/profile.d/awips2PSQL.csh b/rpms/awips2.core/Installer.psql/scripts/profile.d/awips2PSQL.csh new file mode 100644 index 0000000000..48a0997606 --- /dev/null +++ b/rpms/awips2.core/Installer.psql/scripts/profile.d/awips2PSQL.csh @@ -0,0 +1,16 @@ +#!/bin/csh + +# Determine where psql has been installed. +set PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-psql` + +if $?LD_LIBRARY_PATH then + setenv LD_LIBRARY_PATH ${PSQL_INSTALL}/lib:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH ${PSQL_INSTALL}/lib +endif + +if $?PATH then + setenv PATH ${PSQL_INSTALL}/bin:$PATH +else + setenv PATH ${PSQL_INSTALL}/bin +endif diff --git a/rpms/awips2.core/Installer.psql/scripts/profile.d/awips2PSQL.sh b/rpms/awips2.core/Installer.psql/scripts/profile.d/awips2PSQL.sh new file mode 100644 index 0000000000..b1014ec456 --- /dev/null +++ b/rpms/awips2.core/Installer.psql/scripts/profile.d/awips2PSQL.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Is awips2-psql Installed? +rpm -q awips2-psql > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + return +fi + +# Determine Where awips2-psql Has Been Installed. +PSQL_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-psql` +if [ "${PSQL_INSTALL}" = "" ]; then + return +fi + +# Update The Environment. +# Determine if awips2-psql is Already On LD_LIBRARY_PATH +CHECK_PATH=`echo ${LD_LIBRARY_PATH} | grep ${PSQL_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-psql Is Not On LD_LIBRARY_PATH; Add It. + export LD_LIBRARY_PATH=${PSQL_INSTALL}/lib:${LD_LIBRARY_PATH} +fi + +# Determine If awips2-psql Is Already Part Of The Path. +CHECK_PATH=`echo ${PATH} | grep ${PSQL_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-psql Is Not In The Path; Add It To The Path. + export PATH=${PSQL_INSTALL}/bin:${PATH} +fi diff --git a/rpms/awips2.core/Installer.pypies/component.spec b/rpms/awips2.core/Installer.pypies/component.spec new file mode 100644 index 0000000000..2c95e37c61 --- /dev/null +++ b/rpms/awips2.core/Installer.pypies/component.spec @@ -0,0 +1,91 @@ +# +# AWIPS II PyPIES Spec File +# +Name: awips2-pypies +Summary: AWIPS II PyPIES +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Nate Jensen + +AutoReq: no +provides: awips2-pypies +requires: awips2-python >= 2.7-1 +requires: awips2-httpd-pypies +requires: awips2-tools + +%description +AWIPS II PyPIES Installation - Sets Up AWIPS II PyPIES. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/${PYPIES_PY_DEST_DIR} +mkdir -p ${RPM_BUILD_ROOT}/awips2/python/lib/python2.7/site-packages/pypies + +%build + +%install + +# Copy The PyPIES modules To The appropriate directory. +PYPIES_FILE_SRC_DIR="pythonPackages/pypies" +cp -r ${WORKSPACE_DIR}/${PYPIES_FILE_SRC_DIR}/pypies/* \ + ${RPM_BUILD_ROOT}/awips2/python/lib/python2.7/site-packages/pypies + +# copy pypies.cfg +mkdir -p ${RPM_BUILD_ROOT}/awips2/pypies/conf +cp ${WORKSPACE_DIR}/${PYPIES_FILE_SRC_DIR}/pypies.cfg \ + ${RPM_BUILD_ROOT}/awips2/pypies/conf/pypies.cfg + +# create the pypies logging directory +mkdir -p ${RPM_BUILD_ROOT}/awips2/pypies/logs + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II PyPIES...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = /awips2/pypies\e[m" + +%post +# Determine the location of awips2-python +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II PyPIES Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II PyPIES Installation Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/pypies +/awips2/pypies/* +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.python/component.spec b/rpms/awips2.core/Installer.python/component.spec new file mode 100644 index 0000000000..d1c796c1fa --- /dev/null +++ b/rpms/awips2.core/Installer.python/component.spec @@ -0,0 +1,224 @@ +# +# AWIPS II Python Spec File +# +Name: awips2-python +Summary: AWIPS II Python Distribution +Version: 2.7.1 +Release: 1 +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2/python +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-python +obsoletes: awips2-python < 2.7.1 + +#-----------------------------------------------------------------------------# +# IMPORTANT ! INFORMATION ABOUT UPGRADING PYTHON! # +#-----------------------------------------------------------------------------# +# Whenever python is upgraded, the following libraries will need to be +# re-compiled with the updated python shared library. +# 1) grib2.so +# 2) gridslice.so +# 3) mod_wsgi (pypies) +#-----------------------------------------------------------------------------# + +%description +AWIPS II Python Distribution - Contains Python V2.7.1 plus modules +required for AWIPS II + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/python +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d + +%build +PROFILE_D_DIR="Installer.rpm/awips2.core/Installer.python/scripts/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +PYTHON_SRC_TAR="Python-2.7.1.tgz" +PATH_TO_PYTHON_SRC="${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.python" +PYTHON_SRC="${PATH_TO_PYTHON_SRC}/src/${PYTHON_SRC_TAR}" + +# Copy the source to a temporary location +PYTHON_BUILD_DIR="${RPM_BUILD_ROOT}/awips2/python-build" + +mkdir -p ${PYTHON_BUILD_DIR} +cp ${PYTHON_SRC} ${PYTHON_BUILD_DIR} + +# Untar The Source +cd ${PYTHON_BUILD_DIR} +tar -xf ${PYTHON_BUILD_DIR}/${PYTHON_SRC_TAR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +# Check Return Codes For The Steps That Follow ... +# Run Configure +PYTHON_SRC_DIR="${RPM_BUILD_ROOT}/awips2/python-build/Python-2.7.1" + +cd ${PYTHON_SRC_DIR} +./configure --prefix=${RPM_BUILD_ROOT}/awips2/python --enable-shared +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +# Run Make +make clean +make +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} + +PYTHON_BUILD_DIR="${RPM_BUILD_ROOT}/awips2/python-build" +PYTHON_SRC_DIR="${PYTHON_BUILD_DIR}/Python-2.7.1" +cd ${PYTHON_SRC_DIR} + +make install +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +ADDL_TAR_PATH="${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.python" +PYTHON_ADDL_TAR="${ADDL_TAR_PATH}/src/awips2-python.tar.gz" +tar -xf ${PYTHON_ADDL_TAR} -C ${RPM_BUILD_ROOT}/awips2/python/ +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +# Remove our temporary build directory +rm -rf ${PYTHON_BUILD_DIR} + +copyLegal "awips2/python" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II Python Distribution Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" +} + +function update_script_first_line() +{ + # $1 == the name of the script + + PYTHON_BIN_DIR=${RPM_INSTALL_PREFIX}/bin + PYTHON_EXE=${PYTHON_BIN_DIR}/python + + sed '1c\'"#!${PYTHON_EXE}" ${PYTHON_BIN_DIR}/${1} > ${PYTHON_BIN_DIR}/${1}.tmp + rm -rf ${PYTHON_BIN_DIR}/${1} + mv ${PYTHON_BIN_DIR}/${1}.tmp ${PYTHON_BIN_DIR}/${1} + chmod a+x ${PYTHON_BIN_DIR}/${1} +} +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II Python Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +update_script_first_line 2to3 +update_script_first_line idle +update_script_first_line pydoc +update_script_first_line python2.7-config +update_script_first_line smtpd.py + +echo "--------------------------------------------------------------------------------" +echo "\| Adding Environment Variables for AWIPS II Python" +echo "--------------------------------------------------------------------------------" + +if [ -L ${RPM_INSTALL_PREFIX}/lib/.site-packages ]; then + rm -f ${RPM_INSTALL_PREFIX}/lib/.site-packages +fi +cd ${RPM_INSTALL_PREFIX}/lib +ln -s python2.7/site-packages .site-packages + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +%attr(755,root,root) /etc/profile.d/awips2Python.csh +%attr(755,root,root) /etc/profile.d/awips2Python.sh +%dir /awips2/python +%dir /awips2/python/lib +/awips2/python/lib/* +%docdir /awips2/python/licenses +%dir /awips2/python/licenses +/awips2/python/licenses/* +%dir /awips2/python/share +/awips2/python/share/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/include +/awips2/python/include/* +%dir /awips2/python/bin +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.python/scripts/profile.d/awips2Python.csh b/rpms/awips2.core/Installer.python/scripts/profile.d/awips2Python.csh new file mode 100644 index 0000000000..bdb335d105 --- /dev/null +++ b/rpms/awips2.core/Installer.python/scripts/profile.d/awips2Python.csh @@ -0,0 +1,16 @@ +#!/bin/csh + +set PYTHON_INSTALL="/awips2/python" +setenv AWIPS_PYTHON ${PYTHON_INSTALL} + +if $?PATH then + setenv PATH ${PYTHON_INSTALL}/bin:$PATH +else + setenv PATH ${PYTHON_INSTALL}/bin +endif + +if $?LD_LIBRARY_PATH then + setenv LD_LIBRARY_PATH ${PYTHON_INSTALL}/lib:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH ${PYTHON_INSTALL}/lib +endif diff --git a/rpms/awips2.core/Installer.python/scripts/profile.d/awips2Python.sh b/rpms/awips2.core/Installer.python/scripts/profile.d/awips2Python.sh new file mode 100644 index 0000000000..186586bcb1 --- /dev/null +++ b/rpms/awips2.core/Installer.python/scripts/profile.d/awips2Python.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Is Python Installed? +rpm -q awips2-python > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + return +fi + +PYTHON_INSTALL="/awips2/python" +# Update The Environment. +AWIPS_PYTHON=${PYTHON_INSTALL} +# Determine If Python Is Already Part Of The Path +CHECK_PATH=`echo ${PATH} | grep ${PYTHON_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # Python Is Not In The Path; Add It. + export PATH=${PYTHON_INSTALL}/bin:${PATH} +fi + +# Determine If Python Is On LD_LIBRARY_PATH +CHECK_PATH=`echo ${LD_LIBRARY_PATH} | grep ${PYTHON_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # Python Is Not On LD_LIBRARY_PATH, Add It. + export LD_LIBRARY_PATH=${PYTHON_INSTALL}/lib:${LD_LIBRARY_PATH} +fi diff --git a/rpms/awips2.core/Installer.python/src/Python-2.7.1.tgz b/rpms/awips2.core/Installer.python/src/Python-2.7.1.tgz new file mode 100644 index 0000000000..053ac8cc39 Binary files /dev/null and b/rpms/awips2.core/Installer.python/src/Python-2.7.1.tgz differ diff --git a/rpms/awips2.core/Installer.python/src/awips2-python.tar.gz b/rpms/awips2.core/Installer.python/src/awips2-python.tar.gz new file mode 100644 index 0000000000..f8a0569f33 Binary files /dev/null and b/rpms/awips2.core/Installer.python/src/awips2-python.tar.gz differ diff --git a/rpms/awips2.core/Installer.rcm/component.spec b/rpms/awips2.core/Installer.rcm/component.spec new file mode 100644 index 0000000000..7f95784693 --- /dev/null +++ b/rpms/awips2.core/Installer.rcm/component.spec @@ -0,0 +1,151 @@ +%define _component_name awips2-rcm +%define _component_project_dir awips2.core/Installer.rcm +%define _component_default_prefix /awips2/rcm +# +# AWIPS II Edex Radar Server File +# +Name: %{_component_name} +Summary: AWIPS II Radar Server +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-rcm +requires: awips2-java + +%description +AWIPS II Radar Server Installation - Sets Up AWIPS II Radar Server. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/rcm + +%build + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} +RCM_PROPS_DIR="build.rcm/pdeprops" +DEPLOY_SCRIPT="build.rcm/build.xml" + +# Deploy Radar Server To Our Temporary Build Directory. +ant -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Ddeploy.dir=${RPM_BUILD_ROOT}/awips2/rcm \ + -Dinstaller=true -Dprops.dir=${WORKSPACE_DIR}/${RCM_PROPS_DIR} + +# Overwrite the Existing start-config File With The Our start-config File. +rm -f ${RPM_BUILD_ROOT}/awips2/rcm/data/config/start-config +cp ${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.rcm/scripts/conf/start-config \ + ${RPM_BUILD_ROOT}/awips2/rcm/data/config/ + +# Create the radar server logs directory +mkdir -p ${RPM_BUILD_ROOT}/awips2/rcm/data/logs + +# Include the rcm service script +mkdir -p ${RPM_BUILD_ROOT}/etc/init.d +cp ${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.rcm/scripts/init.d/edex_rcm \ + ${RPM_BUILD_ROOT}/etc/init.d + +copyLegal "awips2/rcm" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Radar Server (RCM)...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II Radar Server Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +if [ -f /etc/init.d/edex_rcm ]; then + /sbin/chkconfig --add edex_rcm +fi + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Radar Server (RCM) Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi +if [ -f /etc/init.d/edex_rcm ]; then + /sbin/chkconfig --del edex_rcm +fi + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Radar Server (RCM) Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/rcm +%dir /awips2/rcm/data +/awips2/rcm/data/* + +%docdir /awips2/rcm/licenses +%dir /awips2/rcm/licenses +/awips2/rcm/licenses/* + +%defattr(755,awips,fxalpha,755) +%dir /awips2/rcm/bin +/awips2/rcm/bin/* +%dir /awips2/rcm/lib +/awips2/rcm/lib/* + +%attr(744,root,root) /etc/init.d/edex_rcm \ No newline at end of file diff --git a/rpms/awips2.core/Installer.rcm/scripts/conf/start-config b/rpms/awips2.core/Installer.rcm/scripts/conf/start-config new file mode 100644 index 0000000000..021a83242d --- /dev/null +++ b/rpms/awips2.core/Installer.rcm/scripts/conf/start-config @@ -0,0 +1,34 @@ +# Set the following line to the radar ingest endpoint directory for EDEX. +edex_endpoint_arg=/awips2/edex/data/sbn/radar + +# The following line controls the location of the log file. Change to +# /dev/null to disable logging. +log_file=/awips2/rcm/data/logs/radarserver-log + +# Uncomment and change the following line to choose a Java VM. The +# default is the "java" program that is in the PATH. +#java=/path/to/jre/bin/java +java=/awips2/java/bin/java + + +#======= AWIPS 1 Compatibility Configuration ======= +# Only uncomment the following items if you want to use configuration files +# from an existing AWIPS 1 install. + +# Selects the AWIPS 1 configuration system +#configuration_provider=com.raytheon.rcm.config.awips1.Awips1ConfigProvider + +# Root directory containing AWIPS 1 configuration files. It should contain +# "awips/fxa/data/", "data/fxa/", etc. This can be "/" for the actual root +# directory. +#awips1_root=/ + +# Set this to the three-character localization identifier. If unset, the +# FXA_LOCAL_SITE environment variable will be used. +#awips1_site=CCC + +# By default, radar products will be decompressed before they are sent +# to EDEX. Uncomment the following line to turn off decompression. Note +# that when using the standard configuration system, this setting is in +# config.xml. +#decompress_products=no diff --git a/rpms/awips2.core/Installer.rcm/scripts/init.d/edex_rcm b/rpms/awips2.core/Installer.rcm/scripts/init.d/edex_rcm new file mode 100644 index 0000000000..19e2fe24a7 --- /dev/null +++ b/rpms/awips2.core/Installer.rcm/scripts/init.d/edex_rcm @@ -0,0 +1,102 @@ +#!/bin/bash +# +# edex_rcm This scripts takes care of starting and stopping the +# radar comms manager. +# chkconfig: - 99 10 +# +# description: Radar comms manager control scripts + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +RETVAL=0 + +# user to run the Radar Server +EDEXUSER=awips + +# Find the java installation - stop using hard-coded paths. +JAVA_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-java` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-java Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi +# Find the Radar Server install. +RCM_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-rcm` + +# set java location +JAVA_HOME_DIR=${JAVA_INSTALL} +export PATH=${JAVA_HOME_DIR}/bin:$PATH + +# set Radar Server install directory +RCM_HOME=${RCM_INSTALL} +RCM_DATA=$RCM_HOME/data + +start() { + su ${EDEXUSER} -l -c "sh ${RCM_HOME}/bin/start" > /dev/null 2>&1 +} + +stop() { + su ${EDEXUSER} -l -c "sh ${RCM_HOME}/bin/stop" > /dev/null 2>&1 +} + +# Verify root user +checkUser() { + REQUIREDUSER="root" + CURUSER=`whoami` + if [ "$CURUSER" != "$REQUIREDUSER" ]; then + echo "Insufficient privileges: must run script as $REQUIREDUSER" + exit 1 + fi +} + +# See how we were called. +case $1 in + start) + checkUser + echo -n "Starting RCM: " + start + RETVAL=$? + if [ -e ${RCM_DATA}/radarserver-pid ]; then + echo "OK" + else + echo "FAILED" + fi + ;; + stop) + checkUser + echo -n "Stopping RCM: " + stop + RETVAL=$? + if [ -e ${RCM_DATA}/radarserver-pid ]; then + echo "FAILED" + else + echo "OK" + fi + ;; + status) + status -p ${RCM_DATA}/radarserver-pid RadarServer + RETVAL=$? + ;; + restart) + checkUser + echo -n "Restarting RCM: " + stop + start + RETVAL=$? + ;; + *) + # Print help + echo "Usage: $0 {start|stop|status|restart}" 1>&2 + exit 1 + ;; +esac + +exit $RETVAL diff --git a/rpms/awips2.core/Installer.tools/component.spec b/rpms/awips2.core/Installer.tools/component.spec new file mode 100644 index 0000000000..362aef496d --- /dev/null +++ b/rpms/awips2.core/Installer.tools/component.spec @@ -0,0 +1,207 @@ +# +# AWIPS II Tools Spec File +# + +Name: awips2-tools +Summary: AWIPS II Tools Distribution +Version: 1.0.0 +Release: 3 +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2/tools +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-tools + +%description +AWIPS II Python Distribution - Contains the AWIPS II Tool-Set. Presently, +the AWIPS II Tool-Set consists of various hdf5 utilities. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/tools +# The temporary build location of hdf5 +mkdir -p /tmp/awips2-hdf5/build +mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d + +%build +# Ensure that awips2-python has been installed +COMMAND=`rpm -q awips2-python` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-python Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +PROFILE_D_DIR="Installer.rpm/awips2.core/Installer.tools/scripts/profile.d" +cp ${WORKSPACE_DIR}/${PROFILE_D_DIR}/* ${RPM_BUILD_ROOT}/etc/profile.d + +# Update LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/awips2/python/lib:$LD_LIBRARY_PATH + +HDF5_SOURCE_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.tools/source" +HDF5_TAR_FILE="hdf5-1.8.4-patch1.tar.gz" +LZF_TAR_FILE="lzf.tar.gz" + +# Copy the hdf5 source tar files to our temporary build directory +cp ${HDF5_SOURCE_DIR}/* /tmp/awips2-hdf5/build + +cd /tmp/awips2-hdf5/build + +# Untar both tar files. +tar -xf ${HDF5_TAR_FILE} +tar -xf ${LZF_TAR_FILE} + +# Apply the patch. +cd hdf5-1.8.4-patch1 +patch -p2 -i ../hdf5-1.8.4-patch1.patch0 +RC=$? +if [ $? -ne 0 ]; then + exit 1 +fi + +export AM_LDFLAGS="-L/tmp/awips2-hdf5/build/lzf/lib" +export AM_CPPFLAGS="-I/tmp/awips2-hdf5/build/lzf/include" +export LIBS="-llzf_filter" +export LD_LIBRARY_PATH=/tmp/awips2-hdf5/build/lzf/lib:$LD_LIBRARY_PATH + +./configure --prefix=${RPM_BUILD_ROOT}/awips2/tools +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +make +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +%install +cd /tmp/awips2-hdf5/build/hdf5-1.8.4-patch1 +make install + +# Copy the lzf library to tools/lib +cp /tmp/awips2-hdf5/build/lzf/lib/* \ + ${RPM_BUILD_ROOT}/awips2/tools/lib + +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} +mkdir -p ${RPM_BUILD_ROOT}/awips2/tools/bin +mkdir -p ${RPM_BUILD_ROOT}/awips2/tools/include +mkdir -p ${RPM_BUILD_ROOT}/awips2/tools/lib + +copyLegal "awips2/tools" +rm -rf /tmp/awips2-hdf5 + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Tools Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" + +%post +function printFailureMessage() +{ + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| AWIPS II Tools Distribution Installation - FAILED\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" +} + +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II Tools Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +#echo "--------------------------------------------------------------------------------" +#echo "\| Adding Environment Variables for AWIPS II Tools" +#echo "--------------------------------------------------------------------------------" + +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Tools Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +# Remove The profile.d Script If One Was Created. + +AWIPS2_TOOLS_SH="/etc/profile.d/awips2Tools.sh" +if [ -f ${AWIPS2_TOOLS_SH} ]; then + rm -f ${AWIPS2_TOOLS_SH} +fi + +AWIPS2_TOOLS_CSH="/etc/profile.d/awips2Tools.csh" +if [ -f ${AWIPS2_TOOLS_CSH} ]; then + rm -f ${AWIPS2_TOOLS_CSH} +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Tools Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%attr(755,root,root) /etc/profile.d/awips2HDF5Tools.csh +%attr(755,root,root) /etc/profile.d/awips2HDF5Tools.sh +%dir /awips2/tools +%dir /awips2/tools/include +/awips2/tools/include/* +%dir /awips2/tools/lib +/awips2/tools/lib/* +%docdir /awips2/tools/licenses +%dir /awips2/tools/licenses +/awips2/tools/licenses/* + +%defattr(755,awips,fxalpha,755) +%dir /awips2/tools/bin +/awips2/tools/bin/* \ No newline at end of file diff --git a/rpms/awips2.core/Installer.tools/scripts/profile.d/awips2HDF5Tools.csh b/rpms/awips2.core/Installer.tools/scripts/profile.d/awips2HDF5Tools.csh new file mode 100644 index 0000000000..fc984a787e --- /dev/null +++ b/rpms/awips2.core/Installer.tools/scripts/profile.d/awips2HDF5Tools.csh @@ -0,0 +1,15 @@ +#!/bin/csh + +set HDF5_TOOLS_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-tools` + +if $?PATH then + setenv PATH ${HDF5_TOOLS_INSTALL}/bin:$PATH +else + setenv PATH ${HDF5_TOOLS_INSTALL}/bin +endif + +if $?LD_LIBRARY_PATH then + setenv LD_LIBRARY_PATH ${HDF5_TOOLS_INSTALL}/lib:$LD_LIBRARY_PATH +else + setenv LD_LIBRARY_PATH ${HDF5_TOOLS_INSTALL}/lib +endif diff --git a/rpms/awips2.core/Installer.tools/scripts/profile.d/awips2HDF5Tools.sh b/rpms/awips2.core/Installer.tools/scripts/profile.d/awips2HDF5Tools.sh new file mode 100644 index 0000000000..7189893ce2 --- /dev/null +++ b/rpms/awips2.core/Installer.tools/scripts/profile.d/awips2HDF5Tools.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Is awips2-tools Installed? +rpm -q awips2-tools > /dev/null 2>&1 +RC=$? +if [ ${RC} -ne 0 ]; then + return +fi + +# Determine Where awips2-tools Has Been Installed. +HDF5_TOOLS_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}' awips2-tools` +if [ "${HDF5_TOOLS_INSTALL}" = "" ]; then + return +fi + +# Update The Environment. +# Determine If awips2-tools Is Already Part Of The Path. +CHECK_PATH=`echo ${PATH} | grep ${HDF5_TOOLS_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-tools Is Not In The Path; Add It. + export PATH=${HDF5_TOOLS_INSTALL}/bin:${PATH} +fi + +# Determine If awips2-tools Is On LD_LIBRARY_PATH. +CHECK_PATH=`echo ${LD_LIBRARY_PATH} | grep ${HDF5_TOOLS_INSTALL}` +if [ "${CHECK_PATH}" = "" ]; then + # awips2-tools Is Not On LD_LIBRARY_PATH; Add It. + export LD_LIBRARY_PATH=${HDF5_TOOLS_INSTALL}/lib:${LD_LIBRARY_PATH} +fi diff --git a/rpms/awips2.core/Installer.tools/source/hdf5-1.8.4-patch1.patch0 b/rpms/awips2.core/Installer.tools/source/hdf5-1.8.4-patch1.patch0 new file mode 100644 index 0000000000..353d45a8b2 --- /dev/null +++ b/rpms/awips2.core/Installer.tools/source/hdf5-1.8.4-patch1.patch0 @@ -0,0 +1,219 @@ +diff -crB original/hdf5-1.8.4-patch1/tools/h5repack/h5repack.c h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack.c +*** original/hdf5-1.8.4-patch1/tools/h5repack/h5repack.c 2010-02-22 15:31:56.000000000 -0600 +--- h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack.c 2011-10-31 17:49:39.000000000 -0500 +*************** +*** 21,26 **** +--- 21,27 ---- + #include "h5repack.h" + #include "h5tools.h" + #include "h5tools_utils.h" ++ #include "lzf_filter.h" + + + extern char *progname; +*************** +*** 143,148 **** +--- 144,151 ---- + + + ++ register_lzf(); ++ + /* parse the -f option */ + obj_list=parse_filter(str,&n_objs,&filter,options,&is_glb); + if (obj_list==NULL) +*************** +*** 647,652 **** +--- 650,657 ---- + return "NBIT"; + else if (filtn==H5Z_FILTER_SCALEOFFSET) + return "SOFF"; ++ else if (filtn==H5PY_FILTER_LZF) ++ return "LZF"; + else { + error_msg(progname, "input error in filter type\n"); + exit(EXIT_FAILURE); +diff -crB original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_copy.c h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_copy.c +*** original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_copy.c 2010-02-22 15:31:56.000000000 -0600 +--- h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_copy.c 2011-10-31 17:47:21.000000000 -0500 +*************** +*** 20,25 **** +--- 20,26 ---- + #include "H5private.h" + #include "h5tools.h" + #include "h5tools_utils.h" ++ #include "lzf_filter.h" + + /*------------------------------------------------------------------------- + * typedefs +*************** +*** 1429,1434 **** +--- 1430,1439 ---- + strcat(strfilter,"NBIT "); + break; + ++ case H5PY_FILTER_LZF: ++ strcat(strfilter,"LZF "); ++ break; ++ + case H5Z_FILTER_SCALEOFFSET: + strcat(strfilter,"SCALEOFFSET "); + break; +diff -crB original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_filters.c h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_filters.c +*** original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_filters.c 2010-02-22 15:31:56.000000000 -0600 +--- h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_filters.c 2011-10-27 13:29:49.000000000 -0500 +*************** +*** 16,21 **** +--- 16,22 ---- + #include "h5repack.h" + #include "h5test.h" + #include "h5tools.h" ++ #include "lzf_filter.h" + + + /*------------------------------------------------------------------------- +*************** +*** 428,433 **** +--- 429,442 ---- + return -1; + } + break; ++ case H5PY_FILTER_LZF: ++ if(H5Pset_chunk(dcpl_id, obj.chunk.rank, obj.chunk.chunk_lengths)<0) ++ return -1; ++ if(H5Pset_shuffle(dcpl_id)<0) ++ return -1; ++ if(H5Pset_filter(dcpl_id, H5PY_FILTER_LZF, H5Z_FLAG_OPTIONAL, 0, NULL)<0) ++ return -1; ++ break; + } /* switch */ + }/*i*/ + +diff -crB original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_main.c h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_main.c +*** original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_main.c 2010-02-22 15:31:56.000000000 -0600 +--- h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_main.c 2011-10-31 18:07:12.000000000 -0500 +*************** +*** 216,221 **** +--- 216,222 ---- + printf(" FLET, to apply the HDF5 checksum filter\n"); + printf(" NBIT, to apply the HDF5 NBIT filter (NBIT compression)\n"); + printf(" SOFF, to apply the HDF5 Scale/Offset filter\n"); ++ printf(" LZF, to apply the HDF5 LZF filter (LZF compression)\n"); + printf(" NONE, to remove all filters\n"); + printf(" is optional filter parameter information\n"); + printf(" GZIP= from 1-9\n"); +*************** +*** 226,231 **** +--- 227,233 ---- + printf(" NBIT (no parameter)\n"); + printf(" SOFF= scale_factor is an integer and scale_type\n"); + printf(" is either IN or DS\n"); ++ printf(" LZF (no parameter)\n"); + printf(" NONE (no parameter)\n"); + printf("\n"); + printf(" LAYT - is a string with the format:\n"); +diff -crB original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_parse.c h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_parse.c +*** original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_parse.c 2010-02-22 15:31:56.000000000 -0600 +--- h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_parse.c 2011-10-25 15:31:26.000000000 -0500 +*************** +*** 20,25 **** +--- 20,26 ---- + + #include "h5repack.h" + #include "h5tools_utils.h" ++ #include "lzf_filter.h" + + extern char *progname; + +*************** +*** 390,395 **** +--- 391,401 ---- + exit(EXIT_FAILURE); + } + } ++ else if (strcmp(scomp, "LZF")==0) ++ { ++ filt->filtn=H5PY_FILTER_LZF; ++ filt->cd_nelmts = 0; ++ } + else { + if (obj_list) free(obj_list); + error_msg(progname, "invalid filter type in <%s>\n",str); +diff -crB original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_verify.c h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_verify.c +*** original/hdf5-1.8.4-patch1/tools/h5repack/h5repack_verify.c 2010-02-22 15:31:56.000000000 -0600 +--- h5repackChanges/hdf5-1.8.4-patch1/tools/h5repack/h5repack_verify.c 2011-10-25 15:42:07.000000000 -0500 +*************** +*** 16,21 **** +--- 16,22 ---- + #include "h5repack.h" + #include "h5test.h" + #include "h5tools_utils.h" ++ #include "lzf_filter.h" + + extern char *progname; + static int verify_layout(hid_t pid, pack_info_t *obj); +*************** +*** 576,581 **** +--- 577,583 ---- + /* for these filters values must match, no local values set in DCPL */ + case H5Z_FILTER_FLETCHER32: + case H5Z_FILTER_DEFLATE: ++ case H5PY_FILTER_LZF: + + if ( cd_nelmts != filter[i].cd_nelmts) + return 0; +diff -crB original/hdf5-1.8.4-patch1/tools/lib/h5tools_filters.c h5repackChanges/hdf5-1.8.4-patch1/tools/lib/h5tools_filters.c +*** original/hdf5-1.8.4-patch1/tools/lib/h5tools_filters.c 2010-02-22 15:31:58.000000000 -0600 +--- h5repackChanges/hdf5-1.8.4-patch1/tools/lib/h5tools_filters.c 2011-10-31 17:32:06.000000000 -0500 +*************** +*** 15,20 **** +--- 15,21 ---- + + #include "hdf5.h" + #include "h5tools.h" ++ #include "lzf_filter.h" + + /*------------------------------------------------------------------------- + * print a warning message +*************** +*** 55,60 **** +--- 56,62 ---- + int have_fletcher=0; + int have_nbit=0; + int have_scaleoffset=0; ++ int have_lzf=0; + + #ifdef H5_HAVE_FILTER_DEFLATE + have_deflate=1; +*************** +*** 75,80 **** +--- 77,84 ---- + have_scaleoffset=1; + #endif + ++ have_lzf=1; ++ + + /* get information about filters */ + if ((nfilters = H5Pget_nfilters(dcpl_id))<0) +*************** +*** 138,143 **** +--- 142,159 ---- + } + break; + /*------------------------------------------------------------------------- ++ * H5Z_FILTER_LZF ++ *------------------------------------------------------------------------- ++ */ ++ case H5PY_FILTER_LZF: ++ if (!have_lzf) ++ { ++ if (name) ++ print_warning(name,"lzf"); ++ return 0; ++ } ++ break; ++ /*------------------------------------------------------------------------- + * H5Z_FILTER_FLETCHER32 3 , fletcher32 checksum of EDC + *------------------------------------------------------------------------- + */ diff --git a/rpms/awips2.core/Installer.tools/source/hdf5-1.8.4-patch1.tar.gz b/rpms/awips2.core/Installer.tools/source/hdf5-1.8.4-patch1.tar.gz new file mode 100644 index 0000000000..a2807bdd48 Binary files /dev/null and b/rpms/awips2.core/Installer.tools/source/hdf5-1.8.4-patch1.tar.gz differ diff --git a/rpms/awips2.core/Installer.tools/source/lzf.tar.gz b/rpms/awips2.core/Installer.tools/source/lzf.tar.gz new file mode 100644 index 0000000000..22de2de72c Binary files /dev/null and b/rpms/awips2.core/Installer.tools/source/lzf.tar.gz differ diff --git a/rpms/awips2.core/Installer.topo/component.spec b/rpms/awips2.core/Installer.topo/component.spec new file mode 100644 index 0000000000..ad0912b82d --- /dev/null +++ b/rpms/awips2.core/Installer.topo/component.spec @@ -0,0 +1,151 @@ +# +# AWIPS II Topo Spec File +# +Name: awips2-data.hdf5-topo +Summary: AWIPS II Topo Distribution +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2/edex +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-data.hdf5-topo + +%description +AWIPS II Topo Distribution - Contains the AWIP II Topo HDF Files. The +Topo Files Will Be Copied To The Specified Destination. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/hdf5/topo + +%build + +%install +# Copies the standard Raytheon licenses into a license directory for the +# current component. +function copyLegal() +{ + # $1 == Component Build Root + + COMPONENT_BUILD_DIR=${1} + + mkdir -p ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + # Create a Tar file with our FOSS licenses. + tar -cjf ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses/ + + cp ${WORKSPACE_DIR}/Installer.rpm/legal/license.txt \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp "${WORKSPACE_DIR}/Installer.rpm/legal/Master Rights File.pdf" \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + cp ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar \ + ${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses + + rm -f ${WORKSPACE_DIR}/Installer.rpm/legal/FOSS_licenses.tar +} + +# Determine which version of the topo we should use. +RPM_COMMON_DIR="${WORKSPACE_DIR}/Installer.rpm/common/static.versions" + +if [ ! -f ${RPM_COMMON_DIR}/LATEST.topo ]; then + file ${RPM_COMMON_DIR}/LATEST.topo + exit 1 +fi +VERSION_DIR=`cat ${RPM_COMMON_DIR}/LATEST.topo` +TOPO_SRC_DIR="awips2-static/topo/${VERSION_DIR}" +if [ ! -d ${AWIPSCM_SHARE}/${TOPO_SRC_DIR} ]; then + file ${AWIPSCM_SHARE}/${TOPO_SRC_DIR} + exit 1 +fi + +TOPO_TO_COPY=\ +(\ + 'srtm30.hdf'\ + 'akTopo.dat.gz' \ + 'caribTopo.dat.gz' \ + 'modelStaticTopo.h5' \ + 'pacTopo.dat.gz' \ + 'staticTopo.h5' \ + 'usTopo.dat.gz' \ + 'worldTopo.dat.gz' \ +) +# !!!!! WARNING - THIS WILL TAKE A LONG TIME !!!!! + +for topoFile in ${TOPO_TO_COPY[*]}; +do + cp -r ${AWIPSCM_SHARE}/${TOPO_SRC_DIR}/${topoFile} \ + ${RPM_BUILD_ROOT}/awips2/edex/data/hdf5/topo + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +done + +# Copy our hlsTopo +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/hdf5/topo/hlsTopo +cp -r ${AWIPSCM_SHARE}/${TOPO_SRC_DIR}/hlsTopo/* \ + ${RPM_BUILD_ROOT}/awips2/edex/data/hdf5/topo/hlsTopo +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +copyLegal "awips2/edex/data/hdf5/topo" + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Topo Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" +echo -e "\e[1;34m Destination = ${RPM_INSTALL_PREFIX}/data/hdf5/topo\e[m" +echo "" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Topo Distribution Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Topo Distribution Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(664,awips,fxalpha,775) +%dir /awips2 +%dir /awips2/edex +%dir /awips2/edex/data +%dir /awips2/edex/data/hdf5 +%dir /awips2/edex/data/hdf5/topo +/awips2/edex/data/hdf5/topo/* +%docdir /awips2/edex/data/hdf5/topo/licenses \ No newline at end of file diff --git a/rpms/awips2.core/Installer.version/component.spec b/rpms/awips2.core/Installer.version/component.spec new file mode 100644 index 0000000000..1d1b34219d --- /dev/null +++ b/rpms/awips2.core/Installer.version/component.spec @@ -0,0 +1,202 @@ +# RPM Metadata +%define _component_name awips2 +%define _component_desc "awips2" +# Other vars: +# %{_component_build_date} +# %{_component_build_time} +# %{_component_build_system} +# +# awips2 Spec File +# +%define __prelink_undo_cmd %{nil} +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +Name: %{_component_name} +Summary: awips2 Installation +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +BuildArch: noarch +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: %{_component_name} +requires: awips2-base-component + +%description +%{_component_desc} + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build + +%install + +%pre + +%post +AWIPS_PRODUCT_JAR= +EDEX_BANNER_TXT= + +# This function exists for upgrading from +# 11.6.X builds. +function updateCAVEVersionLegacy() +{ + local TMP_PRODUCTS_DIR="/awips2/cave/.tmp/products" + + cd ${TMP_PRODUCTS_DIR} + # update plugin.xml + sed '/aboutText/{n;s/\".*\"/\"%caveAboutText\"/;}' \ + -i plugin.xml + + # update the manifest. + touch manifestUpdate + echo "Bundle-Localization: plugin" > manifestUpdate + + # merge the updated plugin.xml and manifest into the jar. + /awips2/java/bin/jar umf manifestUpdate ${AWIPS_PRODUCT_JAR} + /awips2/java/bin/jar uf ${AWIPS_PRODUCT_JAR} plugin.xml + + rm -f manifestUpdate +} + +function updateCAVEVersion() +{ + local BUILD_XML="/awips2/cave/build.xml" + local TMP_PRODUCTS_DIR="/awips2/cave/.tmp/products" + + if [ -d ${TMP_PRODUCTS_DIR} ]; then + rm -rf ${TMP_PRODUCTS_DIR} + fi + mkdir -p ${TMP_PRODUCTS_DIR} + mv ${AWIPS_PRODUCT_JAR} ${TMP_PRODUCTS_DIR} + AWIPS_PRODUCT_JAR=`ls -1 ${TMP_PRODUCTS_DIR}/*` + + touch ${BUILD_XML} + echo "" > ${BUILD_XML} + echo " " >> ${BUILD_XML} + echo " " >> ${BUILD_XML} + echo "" >> ${BUILD_XML} + cd /awips2/cave + + # Need to use awips2-java + export PATH=/awips2/java/bin:${PATH} + export JAVA_HOME="/awips2/java/jre" + + ./cave -application org.eclipse.ant.core.antRunner -nosplash \ + > /dev/null 2>&1 + rm -f ${BUILD_XML} + + # Update the version information. + cd ${TMP_PRODUCTS_DIR} + unzip -qq ${AWIPS_PRODUCT_JAR} + if [ ! -f plugin.properties ]; then + updateCAVEVersionLegacy + else + rm -f plugin.properties + fi + + ARCH="x86" + # Determine the architecture. + TMP=`file /awips2/cave/cave | grep "ELF 64-bit"` + if [ ! "${TMP}" = "" ]; then + ARCH="x86_64" + fi + + touch plugin.properties + # Write plugin.properties + echo "caveAboutText=Common AWIPS Visualization Environment (CAVE) ${ARCH}\\n\\" \ + > plugin.properties + echo "\\n\\" >> plugin.properties + echo "Developed on the Raytheon Visualization Environment (viz)\\n\\" \ + >> plugin.properties + echo "\\tBUILD VERSION: %{_component_version}\\n\\" \ + >> plugin.properties + echo "\\tBUILD DATE: %{_component_build_date}\\n\\" \ + >> plugin.properties + echo "\\tBUILD TIME: %{_component_build_time}\\n\\" >> plugin.properties + echo "\\tBUILD SYSTEM: %{_component_build_system}\\n\\" \ + >> plugin.properties + echo "\\tBuilt from Tag: %{_svn_tag}\\n\\" >> plugin.properties + # Update the jar file. + /awips2/java/bin/jar uf ${AWIPS_PRODUCT_JAR} plugin.properties + # Relocate the jar file. + mv ${AWIPS_PRODUCT_JAR} /awips2/cave/plugins + + rm -rf ${TMP_PRODUCTS_DIR} + + return 0 +} + +function updateEDEXVersion() +{ + local MOVE_TO_COL="\\033[50G" + + rm -f ${EDEX_BANNER_TXT} + touch ${EDEX_BANNER_TXT} + + echo "**************************************************" \ + > ${EDEX_BANNER_TXT} + echo "* AWIPS II EDEX ESB Platform *" \ + >> ${EDEX_BANNER_TXT} + echo -e "* Version: %{_component_version}${MOVE_TO_COL}*" \ + >> ${EDEX_BANNER_TXT} + echo "* Raytheon Company *" \ + >> ${EDEX_BANNER_TXT} + echo "*------------------------------------------------*" \ + >> ${EDEX_BANNER_TXT} + echo -e "* Build Date : %{_component_build_date}${MOVE_TO_COL}*" \ + >> ${EDEX_BANNER_TXT} + echo -e "* Build Time : %{_component_build_time}${MOVE_TO_COL}*" \ + >> ${EDEX_BANNER_TXT} + echo -e "* Build System: %{_component_build_system}${MOVE_TO_COL}*" \ + >> ${EDEX_BANNER_TXT} + echo -e "* Built from Tag: %{_svn_tag}${MOVE_TO_COL}*" \ + >> ${EDEX_BANNER_TXT} + echo "**************************************************" \ + >> ${EDEX_BANNER_TXT} +} + +AWIPS_PRODUCT_WILDCARD="/awips2/cave/plugins/com.raytheon.viz.product.awips_*.jar" +# Get the actual name of the product jar. +if [ -d /awips2/cave/plugins ]; then + AWIPS_PRODUCT_JAR=`ls -1 ${AWIPS_PRODUCT_WILDCARD}` + RC=$? + if [ ${RC} -eq 0 ]; then + # does the jar exist? + if [ -f ${AWIPS_PRODUCT_JAR} ]; then + updateCAVEVersion + fi + fi +fi + +EDEX_BANNER_TXT="/awips2/edex/conf/banner.txt" +# does banner.txt exist? +if [ -f ${EDEX_BANNER_TXT} ]; then + updateEDEXVersion +fi + +%preun + +%postun + +%files + +%clean +rm -rf ${RPM_BUILD_ROOT} diff --git a/rpms/awips2.core/deploy.builder/build.sh b/rpms/awips2.core/deploy.builder/build.sh new file mode 100755 index 0000000000..01f427fe19 --- /dev/null +++ b/rpms/awips2.core/deploy.builder/build.sh @@ -0,0 +1,182 @@ +#!/bin/bash +# We Have Been Created To Automate The Building Of The AWIPS II RPMs. + +# We Need To Setup Our Environment. +source env.sh + +if [ "${RPM_TOP_DIR}" = "" ]; then + echo "ERROR: You Must Set The RPM_TOP_DIR Environment Variable." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# !! NOTE !! - We Assume That We Are In A Workspace With The Installer Projects, +# The Edex Projects, The Cave Projects, The Native Projects, And Etc. +export WORKSPACE_DIR=`cd ../../../; pwd;` + +# The RPM Build Directory Structure Consists Of: +# ROOT = /usr/src/redhat +# * BUILD - +# * RPMS - Our Output RPMs +# * SOURCES - Not Important In Phase I +# * SPECS +# * SRPMS + +# Arguments +# ${1} == The Directory With The Specs File And Possibly Other Custom +# Scripts That May Need To Be Merged Into A Component. + +export AWIPSII_VERSION=`cat ${WORKSPACE_DIR}/Installer.rpm/version.txt` +export AWIPSII_RELEASE=`date +"%Y%m%d"` + +function buildRPM() +{ + BUILDROOT_DIR=/tmp/awips-component + + COMPONENT_DIR=${1} + COMPONENT_SPECS=${COMPONENT_DIR}/component.spec + + # We Need To Delete The 'BuildRoot' Directory After Each RPM Is + # Built Whether The Build Is Successful Or Not. + rm -rf ${BUILDROOT_DIR} + + # We Build The List Of Files That Need To Be Installed On-Demand Now. + # If One Exists From A Previous Build, Delete It. + if [ -f ${RPM_TOP_DIR}/BUILD/component-files.txt ]; then + rm -f ${RPM_TOP_DIR}/BUILD/component-files.txt + fi + + if [ "${COMPONENT_DIR}" = "Installer.version" ]; then + # Get the build information. + export AWIPSII_BUILD_DATE=`date +"%m-%d-%Y"` + export AWIPSII_BUILD_TIME=`date +"%T %Z"` + export AWIPSII_BUILD_SYSTEM=`uname -n` + + rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --define '_component_build_date %(echo ${AWIPSII_BUILD_DATE})' \ + --define '_component_build_time %(echo ${AWIPSII_BUILD_TIME})' \ + --define '_component_build_system %(echo ${AWIPSII_BUILD_SYSTEM})' \ + --define '_svn_tag %(echo ${AWIPSII_BUILD_TAG})' \ + --buildroot ${BUILDROOT_DIR} \ + ${COMPONENT_SPECS} + + RC=$? + if [ ${RC} -ne 0 ]; then + echo "Unable To Build The RPM Defined In: ${COMPONENT_DIR}." + echo "Unable To Continue ... Terminating." + exit 1 + fi + + unset AWIPSII_BUILD_DATE + unset AWIPSII_BUILD_TIME + unset AWIPSII_BUILD_SYSTEM + + return + fi + + export BUILDROOT_DIR="${BUILDROOT_DIR}" + # Build The RPM. + rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_build_root %(echo ${BUILDROOT_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --define '_baseline_workspace %(echo ${WORKSPACE_DIR})' \ + --buildroot ${BUILDROOT_DIR} \ + ${COMPONENT_SPECS} + # If We Are Unable To Build An RPM, Fail The Build: + RC="$?" + unset BUILDROOT_DIR + if [ ! "${RC}" = "0" ]; then + if [ ! "${COMPONENT_DIR}" = "Installer.ant" ] && + [ ! "${COMPONENT_DIR}" = "Installer.httpd-pypies" ] && + [ ! "${COMPONENT_DIR}" = "Installer.irt" ] && + [ ! "${COMPONENT_DIR}" = "Installer.java" ] && + [ ! "${COMPONENT_DIR}" = "Installer.ldm" ] && + [ ! "${COMPONENT_DIR}" = "Installer.postgresql" ] && + [ ! "${COMPONENT_DIR}" = "Installer.psql" ] && + [ ! "${COMPONENT_DIR}" = "Installer.python" ] && + [ ! "${COMPONENT_DIR}" = "Installer.server" ] && + [ ! "${COMPONENT_DIR}" = "Installer.tools" ]; then + echo "ERROR: Unable To Build The RPM Defined In: ${COMPONENT_DIR}." + echo "Unable To Continue ... Terminating." + exit 1 + fi + fi +} + +function buildLocalizationRPMs() +{ + BUILDROOT_DIR=/tmp/awips-component + # Find all of the localization.${site} directories, if there are any. + ls ${WORKSPACE_DIR}/localization.* > /dev/null 2>&1 + RC=$? + if [ ${RC} -ne 0 ]; then + # There are not any localization projects. + echo "INFO: There are not any localization projects." + return 0 + fi + + for dir in `cd ${WORKSPACE_DIR}; ls -1d localization.*`; do + site=`perl extractSite.pl ${dir}` + export LOCALIZATION_DIRECTORY="${dir}" + export COMPONENT_NAME="awips2-localization-${site}" + echo ${site} + + rm -rf ${BUILDROOT_DIR} + + rpmbuild -ba \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --define '_component_name %(echo ${COMPONENT_NAME})' \ + --define '_baseline_workspace %(echo ${WORKSPACE_DIR})' \ + --define '_localization_directory %(echo ${LOCALIZATION_DIRECTORY})' \ + --buildroot ${BUILDROOT_DIR} \ + ../Installer.localization/component.spec + RC=$? + unset LOCALIZATION_DIRECTORY + unset COMPONENT_NAME + if [ ${RC} -ne 0 ]; then + exit 1 + fi + done +} + +export CFLAGS="-m32 -O2" +export LDFLAGS="-m32" +export BASECFLAGS="-m32 -O2" +export LD="ld -melf_i386" +# Get A List Of The RPM Directories (Excluding This One) +# Note: Presently, We Are In ../../Installer.rpm/deploy.builder + +buildLocalizationRPMs + +# Adjust Our Execution Position. +cd ../ + +# Only Build The RPMs That May Have Changed - AWIPS II-Specific Components. +buildRPM "Installer.version" +buildRPM "Installer.gfesuite-client" +buildRPM "Installer.gfesuite-server" +buildRPM "Installer.database-standalone-configuration" +buildRPM "Installer.database-server-configuration" +buildRPM "Installer.adapt-native" +buildRPM "Installer.alertviz" +buildRPM "Installer.aviation" +buildRPM "Installer.cli" +buildRPM "Installer.database" +buildRPM "Installer.maps-database" +buildRPM "Installer.gfe.climo" +buildRPM "Installer.topo" +buildRPM "Installer.hydroapps" +buildRPM "Installer.notification" +buildRPM "Installer.pypies" +buildRPM "Installer.rcm" +buildRPM "Installer.localapps-environment" + +unset AWIPSII_VERSION +unset AWIPSII_RELEASE diff --git a/rpms/awips2.core/deploy.builder/configFileList.txt b/rpms/awips2.core/deploy.builder/configFileList.txt new file mode 100644 index 0000000000..7b1fc16343 --- /dev/null +++ b/rpms/awips2.core/deploy.builder/configFileList.txt @@ -0,0 +1,67 @@ +- alertviz +* bin/alertviz.sh + +- ant + +- cave +* etc/gfe/userPython/gfeConfig/gfeConfig.py +* bin/cave.sh +* bin/gfeclient.sh +* ../caveData/.metadata/.plugins/org.eclipse.core.runtime/.settings/localization.prefs + +- cli + +- database + +- edex +* bin/start.sh (Python, Java) +* bin/setup.env +* bin/daminfotranslator.sh +* bin/afos2awipstranslator.sh +* data/utility/common_static/base/hydro/Apps_defaults +* data/utility/common_static/site/OAX/hydro/Apps_defaults +* conf/db/hibernateConfig/damCatalog/hibernate.cfg.xml +* conf/db/hibernateConfig/fxa/hibernate.cfg.xml +* conf/db/hibernateConfig/ihfs/hibernate.cfg.xml +* conf/db/hibernateConfig/metadata/hibernate.cfg.xml +* conf/db/hibernateConfig/maps/hibernate.cfg.xml +* conf/db/hibernateConfig/hmdb/hibernate.cfg.xml +* conf/res/site/environment.xml +* conf/res/base/environment.xml +* data/utility/edex_static/base/rpgenvdata/RadarServerJMS.properties + +- hydroapps + +- irt + +- java + +- native + +- notification + +- postgresql +* bin/start_developer_postgres.sh +* bin/start_postgres.sh + +- psql + +- python + +- qpid + +- rcm +* data/config/start-config +* data/config/persist/config.xml +* bin/start +* bin/importAwips1 + +- server - just path names; no need to backup and restore them +* edex_postgres +* edex_rcm +* edex_camel +* edex_qpid + +- tools + +- topo \ No newline at end of file diff --git a/rpms/awips2.core/deploy.builder/env.sh b/rpms/awips2.core/deploy.builder/env.sh new file mode 100755 index 0000000000..e13e782c7e --- /dev/null +++ b/rpms/awips2.core/deploy.builder/env.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# We Contain Environment Variables For The AWIPS II RPM Build Environment. + +# Standard Build Information. +export AWIPSCM_SHARE=/share1 + +# The Directory That All Built RPMs Are Placed In. +export BUILT_RPM_DIR=/usr/src/redhat/RPMS/i386 + + diff --git a/rpms/awips2.core/deploy.builder/extractSite.pl b/rpms/awips2.core/deploy.builder/extractSite.pl new file mode 100644 index 0000000000..5b89d38b4b --- /dev/null +++ b/rpms/awips2.core/deploy.builder/extractSite.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl +#File: extractTag.pl + +# This is a utility script that will extract the tag name from a +# Subversion URL / Location. + +if (($#ARGV + 1) != 1) +{ + print "Usage: extractSite.pl 'Localization Directory'\n"; + exit; +} +$localizationDirectory = $ARGV[0]; +@svn_dir_split = split(/\./, $localizationDirectory); +$numElements = scalar (@svn_dir_split); +$site = @svn_dir_split[$numElements - 1]; + +print "$site\n"; diff --git a/rpms/awips2.core/deploy.builder/extractTag.pl b/rpms/awips2.core/deploy.builder/extractTag.pl new file mode 100644 index 0000000000..b30b72eca2 --- /dev/null +++ b/rpms/awips2.core/deploy.builder/extractTag.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl +#File: extractTag.pl + +# This is a utility script that will extract the tag name from a +# Subversion URL / Location. + +if (($#ARGV + 1) != 1) +{ + print "Usage: extractTag.pl 'SVN URL'"; + exit; +} +$svn_url = $ARGV[0]; +@svn_url_split = split(/\//, $svn_url); +$numElements = scalar (@svn_url_split); +$tag = @svn_url_split[$numElements - 1]; + +print "$tag\n"; diff --git a/rpms/awips2.edex/.project b/rpms/awips2.edex/.project new file mode 100644 index 0000000000..abdf4b4ee1 --- /dev/null +++ b/rpms/awips2.edex/.project @@ -0,0 +1,11 @@ + + + awips2.edex + + + + + + + + diff --git a/rpms/awips2.edex/Installer.edex-base/component.spec b/rpms/awips2.edex/Installer.edex-base/component.spec new file mode 100644 index 0000000000..980700b82c --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-base/component.spec @@ -0,0 +1,260 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-base +%define _component_project_dir awips2.edex/Installer.edex-base +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-base +provides: awips2-base-component +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Sets Up AWIPS II Edex "Base". + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-base + +# Remove the directory with the shapefiles (if it exists) +if [ -d ${RPM_BUILD_ROOT}/awips2/edex/data/utility/edex_static/base/shapefiles ]; then + rm -rf ${RPM_BUILD_ROOT}/awips2/edex/data/utility/edex_static/base/shapefiles +fi + +# For our service script. +mkdir -p ${RPM_BUILD_ROOT}/etc/init.d +cp ${WORKSPACE_DIR}/Installer.rpm/awips2.edex/Installer.edex-base/scripts/init.d/* \ + ${RPM_BUILD_ROOT}/etc/init.d + +#copy the versions.sh script +cd ${RPM_BUILD_ROOT}/awips2/edex/bin +cp ${WORKSPACE_DIR}/Installer.rpm/utility/scripts/versions.sh . + +# Create a directory for the 64 bit python libraries. +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/lib/lib64 +# Copy the libpython.so to the lib64 directory. +cp ${WORKSPACE_DIR}/Installer.rpm/awips2.edex/Installer.edex-base/lib64/libpython.so \ + ${RPM_BUILD_ROOT}/awips2/edex/lib/lib64 + +%pre +# Save banner.txt since we are no longer responsible +# for updating it. + +if [ -f /awips2/edex/conf/banner.txt ]; then + if [ -d /awips2/edexBak ]; then + rm -rf /awips2/edexBak + fi + mkdir -p /awips2/edexBak + cp -p /awips2/edex/conf/banner.txt /awips2/edexBak +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex (Base)...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post + +# restore banner.txt since we saved it in %pre. +if [ -f /awips2/edexBak/banner.txt ]; then + cp -pf /awips2/edexBak/banner.txt /awips2/edex/conf + rm -rf /awips2/edexBak +fi + +MACHINE_BIT=`uname -i` +if [ "${MACHINE_BIT}" = "i386" ] +then + rm -Rf /awips2/edex/lib/lib64 + echo "\| Removing /awips2/edex/lib/lib64/libpython.so because running in 32 bit environment..." +fi + +# We need to create a link to the python shared library if it does not exist. +pushd . > /dev/null 2>&1 +if [ -d /awips2/python/lib ]; then + cd /awips2/python/lib + if [ -L libpython.so ]; then + # Ensure that we are pointing to the correct shared library. + rm -f libpython.so + fi + + if [ -f libpython2.7.so.1.0 ]; then + ln -s libpython2.7.so.1.0 libpython.so + fi +fi +popd > /dev/null 2>&1 + +echo "--------------------------------------------------------------------------------" +echo "\| Setting up AWIPS II Edex Runtime and Environment..." +echo "--------------------------------------------------------------------------------" + +# Replace The Paths In The Various Scripts. +# Edex Environment Scripts To Update (?) +# 2] edex/bin/setup.env (Now Contains Default Values - RPM Needs To Make No Changes) +# 3] edex/bin/daminfotranslator.sh (Java) +# 5] edex/data/utility/common_static/base/hydro/Apps_defaults (Java) +# 6] edex/data/utility/common_static/site/OAX/hydro/Apps_defaults (N/A) + +# DB Configuration Scripts To Update (?) +# 1] edex/conf/db/hibernateConfig/damCatalog/hibernate.cfg.xml (Now Contains Defaults) +# 2] edex/conf/db/hibernateConfig/fxa/hibernate.cfg.xml (Now Contains Defaults) +# 3] edex/conf/db/hibernateConfig/ihfs/hibernate.cfg.xml (Now Contains Defaults) +# 4] edex/conf/db/hibernateConfig/metadata/hibernate.cfg.xml (Now Contains Defaults) +# 5] edex/conf/db/hibernateConfig/maps/hibernate.cfg.xml (Now Contains Defaults) +# 6] edex/conf/db/hibernateConfig/hmdb/hibernate.cfg.xml (Now Contains Defaults) + +# Edex Configuration Scripts To Update (?) +# 1] edex/conf/res/site/environment.xml (Already Contains Defaults / Uses Env Variables) +# 2] edex/conf/res/base/environment.xml (Already Contains Defaults / Uses Env Variables) + +if [ -f /etc/init.d/edex_camel ]; then + /sbin/chkconfig --add edex_camel +fi + +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex (Base) Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi +if [ -f /etc/init.d/edex_camel ]; then + /sbin/chkconfig --del edex_camel +fi + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex (Base) Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +%dir /awips2/edex/conf +/awips2/edex/conf/* +%dir /awips2/edex/data +/awips2/edex/data/* +%dir /awips2/edex/etc +/awips2/edex/etc/* +%dir /awips2/edex/lib +/awips2/edex/lib/* +%dir /awips2/edex/logs +%dir /awips2/edex/webapps +/awips2/edex/webapps/* +/awips2/edex/bin/wrapper.jar +%dir /awips2/edex/bin/linux-x86-32 +/awips2/edex/bin/linux-x86-32/*.so +/awips2/edex/bin/linux-x86-32/*.conf + +%defattr(755,awips,fxalpha,755) +%dir /awips2/edex/bin +/awips2/edex/bin/*.sh +/awips2/edex/bin/linux-x86-32/wrapper + +%attr(744,root,root) /etc/init.d/edex_camel \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-base/delta/B11.4.0/.updateA2_DR8225_alarms.sh.swp b/rpms/awips2.edex/Installer.edex-base/delta/B11.4.0/.updateA2_DR8225_alarms.sh.swp new file mode 100644 index 0000000000..6cd29fa612 Binary files /dev/null and b/rpms/awips2.edex/Installer.edex-base/delta/B11.4.0/.updateA2_DR8225_alarms.sh.swp differ diff --git a/rpms/awips2.edex/Installer.edex-base/delta/B11.4.0/updateA2_DR8225_alarms.sh b/rpms/awips2.edex/Installer.edex-base/delta/B11.4.0/updateA2_DR8225_alarms.sh new file mode 100644 index 0000000000..052c3c79a8 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-base/delta/B11.4.0/updateA2_DR8225_alarms.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="A2_DR8225_alarms" +export DELTA_DESC="Remove User and Site Alarm Localization Files." + +function runUpdate() +{ + local COMMON_STATIC_DIR="${COMPONENT_INSTALL}/edex/data/utility/common_static" + local USER_LOCALIZATION="${COMMON_STATIC_DIR}/user" + local SITE_LOCALIZATION="${COMMON_STATIC_DIR}/site" + + local USER_DIRECTORIES_EXIST="N" + # Count The Number Of User Localization Directories. + pushd . > /dev/null 2>&1 + cd ${USER_LOCALIZATION} + local COUNT=`ls -1 | wc -l` + if [ ${COUNT} -gt 0 ]; then + USER_DIRECTORIES_EXIST="Y" + fi + popd > /dev/null 2>&1 + + local SITE_DIRECTORIES_EXIST="N" + # Count The Number Of Site Localization Directories. + pushd . > /dev/null 2>&1 + cd ${SITE_LOCALIZATION} + local COUNT=`ls -1 | wc -l` + if [ "${COUNT}" -gt 0 ]; then + SITE_DIRECTORIES_EXIST="Y" + fi + popd > /dev/null 2>&1 + + # Loop Through All Of The User-Specific Directories. + if [ "${USER_DIRECTORIES_EXIST}" = "Y" ]; then + for dir in `ls -1 ${USER_LOCALIZATION}`; + do + local USER_DIR="${USER_LOCALIZATION}/${dir}" + # Is There An 'alarms' Directory? + if [ -d ${USER_DIR}/alarms ]; then + # Remove All Files That End With .txt. + rm -f ${USER_DIR}/alarms/*.txt + fi + done + fi + + # Loop Through All Of The Site-Specific Directories. + if [ "${SITE_DIRECTORIES_EXIST}" = "Y" ]; then + for dir in `ls -1 ${SITE_LOCALIZATION}`; + do + local SITE_DIR="${SITE_LOCALIZATION}/${dir}" + # Is There An 'alarms' Directory? + if [ -d ${SITE_DIR}/alarms ]; then + # Remove All Files That End With .txt. + rm -f ${SITE_DIR}/alarms/*.txt + fi + done + fi + + return 0 +} diff --git a/rpms/awips2.edex/Installer.edex-base/lib64/libpython.so b/rpms/awips2.edex/Installer.edex-base/lib64/libpython.so new file mode 100755 index 0000000000..e0a0a809bb Binary files /dev/null and b/rpms/awips2.edex/Installer.edex-base/lib64/libpython.so differ diff --git a/rpms/awips2.edex/Installer.edex-base/scripts/init.d/edex_camel b/rpms/awips2.edex/Installer.edex-base/scripts/init.d/edex_camel new file mode 100644 index 0000000000..7ac4db2294 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-base/scripts/init.d/edex_camel @@ -0,0 +1,203 @@ +#!/bin/bash +# +# edex_camel This shell script takes care of starting and stopping +# the AWIPS EDEX Camel instance. +# +# chkconfig: - 99 10 +# description: Camel ESB System, which is the instance \ +# used by AWIPS EDEX. +# processname: start.sh +# config: /awips/edex/esb/conf/global.xml + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +RETVAL=0 +prog="start.sh" + +MEM=( `free -g | grep "Mem:"` ) +TOTAL_MEM=${MEM[1]} + +HIGH_MEM=off +if [ $TOTAL_MEM -gt 4 ]; then + HIGH_MEM=on +fi + +# Default Services to start +SERVICES=('ingest' 'ingestGrib' 'request') + +if [ $HIGH_MEM == "on" ]; then + SERVICES=('ingest' 'ingestGrib' 'ingestDat' 'request') +fi + +# Who to run EDEX server as, usually "awips". (NOT "root") +EDEXUSER=awips + +# Todays date in format of YYYYMMDD. +TODAY=`/bin/date +%Y%m%d` + +# We will no longer be using hard-coded paths that need to be replaced. +# Use rpm to find the paths that we need. +JAVA_INSTALL="/awips2/java" +PYTHON_INSTALL="/awips2/python" +EDEX_INSTALL="/awips2/edex" + +# The path that is to be used for the script +export JAVA_HOME=${JAVA_INSTALL} +export PATH=${JAVA_INSTALL}/bin:${PYTHON_INSTALL}/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +export LD_LIBRARY_PATH=${JAVA_INSTALL}/lib:${PYTHON_INSTALL}/lib +export LD_PRELOAD=${PYTHON_INSTALL}/lib/libpython2.7.so +export AMQP_SPEC="" +export DATA_ARCHIVE_ROOT=/tmp/sbn + +# what to do to start an EDEX instance +# $1 == instance token +startEDEX() { + pidfile=${EDEX_INSTALL}/bin/${1}.pid + CAMELPROCESS=`ps -ef | grep "edex.dev.mode"|grep -c "edex.run.mode=${1} " ` + if [ $CAMELPROCESS -eq 1 ]; then + echo "WARNING: EDEX ${1} instance already running, not starting another instance" + return 1 + fi + + EXTRA_ARGS="-noConsole" + if [ $HIGH_MEM == "on" ]; then + EXTRA_ARGS="${EXTRA_ARGS} -h" + fi + + DAEMON="${EDEX_INSTALL}/bin/start.sh ${EXTRA_ARGS} ${1}" + EDEXSTARTLOG=${EDEX_INSTALL}/logs/start-edex-${1}-$TODAY.log + su $EDEXUSER -c "$DAEMON &" >> $EDEXSTARTLOG 2>&1 + sleep 5 + pid=`cat ${pidfile}` + if [ "$pid" == "" ]; then + echo "WARNING: No Wrapper Pid Found, EDEX ${1} did not start properly" + fi +} + +# what to do to stop an EDEX instance +# $1 == instance token +stopEDEX() { + pidfile=${EDEX_INSTALL}/bin/${1}.pid + if [ ! -f $pidfile ]; then + echo "WARNING: EDEX ${1} instance not running, no shutdown attempted" + return 1 + fi + + pidid=`cat ${pidfile}` + kill $pidid + savepid=$pidid + CNT=0 + TOTCNT=0 + while [ "X$pidid" != "X" ]; do + if [ "$CNT" -lt "3" ]; then + let CNT=${CNT}+1 + else + CNT=0 + fi + let TOTCNT=${TOTCNT}+1 + sleep 1 + CAMELPROCESS=`ps -p $savepid -o args | grep home=${EDEX_INSTALL}/bin|grep -c "edex.run.mode=${1}"` + if [ $CAMELPROCESS -eq 1 ]; then + pidid=$savepid + else + pidid="" + fi + done +} + +# what to use to check status +# $1 == instance token +checkStatus() { + if [ -f ${EDEX_INSTALL}/bin/${1}.pid ]; then + pidid=`cat ${EDEX_INSTALL}/bin/${1}.pid` + CAMELPROCESS=`ps --ppid $pidid -o args | grep -c "edex.run.mode=${1}"` + if [ $CAMELPROCESS -eq 1 ]; then + JAVAPROCESS=`ps --ppid $pidid -o pid,args | grep "edex.run.mode=${1}"` + JAVAPROCESS=`echo $JAVAPROCESS | cut -d ' ' -f 1` + echo "EDEX Camel (${1}) is running (wrapper PID $pidid)" + echo "EDEX Camel (${1}) is running (java PID $JAVAPROCESS)" + else + echo "EDEX Camel (${1}) is not running" + fi + else + echo "EDEX Camel (${1}) is not running" + fi +} + +# Verify root user +checkUser() { + REQUIREDUSER="root" + CURUSER=`whoami` + if [ "$CURUSER" != "$REQUIREDUSER" ]; then + echo "Insufficient privileges: must run script as $REQUIREDUSER" + exit 1 + fi +} + +func=$1 +shift 1 +if [ $# -gt 0 ]; then + SERVICES=("$@") +fi + +# See how we were called. +case $func in + start) + checkUser + for service in ${SERVICES[*]}; + do + echo -n "Starting EDEX Camel ($service): " + startEDEX $service + echo OK + done + RETVAL=$? + ;; + stop) + checkUser + for service in ${SERVICES[*]}; + do + echo -n "Stopping EDEX Camel ($service): " + stopEDEX $service + echo OK + done + RETVAL=$? + ;; + restart) + checkUser + for service in ${SERVICES[*]}; + do + echo -n "Stopping EDEX Camel ($service): " + stopEDEX $service + echo OK + done + sleep 5 + for service in ${SERVICES[*]}; + do + echo -n "Starting EDEX Camel ($service): " + startEDEX $service + echo OK + done + RETVAL=$? + ;; + status) + for service in ${SERVICES[*]}; + do + checkStatus $service + done + ;; + *) + # Print help + echo "Usage: $0 {start|stop|restart|reload|status} {service} {service}..." 1>&2 + echo "If service(s) blank it will start the default services of ${SERVICES[*]}" 1>&2 + exit 1 + ;; +esac + +exit $RETVAL \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-bufr/component.spec b/rpms/awips2.edex/Installer.edex-bufr/component.spec new file mode 100644 index 0000000000..c91730b5bb --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-bufr/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-bufr +%define _component_project_dir awips2.edex/Installer.edex-bufr +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Bufr Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Bufr +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-bufr +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Bufr Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-bufr + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Bufr Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Bufr Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Bufr Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-common-core/component.spec b/rpms/awips2.edex/Installer.edex-common-core/component.spec new file mode 100644 index 0000000000..a8234eddf2 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-common-core/component.spec @@ -0,0 +1,160 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-common-core +%define _component_project_dir awips2.edex/Installer.edex-common-core +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Common Core Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Common Core +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-common-core +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Common Core Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-common-core + + + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Common Core Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Common Core Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Common Core Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-configuration/component.spec b/rpms/awips2.edex/Installer.edex-configuration/component.spec new file mode 100644 index 0000000000..830ad8b313 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-configuration/component.spec @@ -0,0 +1,244 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-configuration +%define _component_project_dir awips2.core/Installer.edex-configuration +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Configuration Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Configuration Distribution +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-configuration +requires: awips2 +requires: awips2-edex-base + +%description +AWIPS II Edex Configuration Distribution - Includes the machine-specific/site-specific +configuration files for edex. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-configuration + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi + +EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` +if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Files MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Configuration...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +# Determine if we are installing an updated setup.env. + +SETUP_ENV="${RPM_INSTALL_PREFIX}/edex/bin/setup.env" +SETUP_ENV_NEW="${RPM_INSTALL_PREFIX}/edex/bin/setup.env.rpmnew" + +if [ -f "${SETUP_ENV_NEW}" ]; then + # Source the existing setup.env. + source ${SETUP_ENV} + + # Replace the contents of the rpmnew setup.env environment + # variable by environment variable. + + # Add Escape Characters To Certain Variables. + echo ${DATA_ARCHIVE_ROOT} | sed 's/\//\\\//g' > .awips2_escape.tmp + DATA_ARCHIVE_ROOT=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + + echo ${DB_ADDR} | sed 's/\//\\\//g' > .awips2_escape.tmp + DB_ADDR=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + + echo ${BROKER_ADDR} | sed 's/\//\\\//g' > .awips2_escape.tmp + BROKER_ADDR=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + + echo ${PYPIES_SERVER} | sed 's/\//\\\//g' > .awips2_escape.tmp + PYPIES_SERVER=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + + echo ${HTTP_SERVER} | sed 's/\//\\\//g' > .awips2_escape.tmp + HTTP_SERVER=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + + echo ${JMS_SERVER} | sed 's/\//\\\//g' > .awips2_escape.tmp + JMS_SERVER=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + + echo ${apps_dir} | sed 's/\//\\\//g' > .awips2_escape.tmp + apps_dir=`cat .awips2_escape.tmp` + rm -f .awips2_escape.tmp + + #================================================================================ + + # EDEX localization related variables + perl -p -i -e "s/export AW_SITE_IDENTIFIER=OAX/export AW_SITE_IDENTIFIER=${AW_SITE_IDENTIFIER}/g" \ + ${SETUP_ENV_NEW} + + # database names + perl -p -i -e "s/export DC_DB_NAME=dc_ob7oax/export DC_DB_NAME=${DC_DB_NAME}/g" \ + ${SETUP_ENV_NEW} + perl -p -i -e "s/export FXA_DB_NAME=fxatext/export FXA_DB_NAME=${FXA_DB_NAME}/g" \ + ${SETUP_ENV_NEW} + perl -p -i -e "s/export HM_DB_NAME=hmdb/export HM_DB_NAME=${HM_DB_NAME}/g" \ + ${SETUP_ENV_NEW} + perl -p -i -e "s/export IH_DB_NAME=hd_ob83oax/export IH_DB_NAME=${IH_DB_NAME}/g" \ + ${SETUP_ENV_NEW} + + # end of EDEX localization related variables + + # setup environment for HPE + perl -p -i -e "s/export DATA_ARCHIVE_ROOT=\/tmp\/sbn/export DATA_ARCHIVE_ROOT=${DATA_ARCHIVE_ROOT}/g" \ + ${SETUP_ENV_NEW} + + # setup db connections + perl -p -i -e "s/export DB_ADDR=localhost/export DB_ADDR=${DB_ADDR}/g" \ + ${SETUP_ENV_NEW} + perl -p -i -e "s/export DB_PORT=5432/export DB_PORT=${DB_PORT}/g" \ + ${SETUP_ENV_NEW} + + # setup connection to qpid + perl -p -i -e "s/export BROKER_ADDR=localhost/export BROKER_ADDR=${BROKER_ADDR}/g" \ + ${SETUP_ENV_NEW} + + # setup hdf5 connection if pypies is enabled + perl -p -i -e "s/export PYPIES_SERVER=http:\/\/localhost:9582/export PYPIES_SERVER=${PYPIES_SERVER}/g" \ + ${SETUP_ENV_NEW} + + # moved here from environment.xml + # these values are returned to clients that contact the localization service + perl -p -i -e "s/export HTTP_SERVER=http:\/\/localhost:9581\/services/export HTTP_SERVER=${HTTP_SERVER}/g" \ + ${SETUP_ENV_NEW} + perl -p -i -e "s/export JMS_SERVER=tcp:\/\/localhost:5672/export JMS_SERVER=${JMS_SERVER}/g" \ + ${SETUP_ENV_NEW} + + # set hydroapps directory path + perl -p -i -e "s/export apps_dir=\\\$EDEX_HOME\/data\/hdf5\/hydroapps/export apps_dir=\\\$EDEX_HOME${apps_dir}/g" \ + ${SETUP_ENV_NEW} + + #================================================================================ + + # Remove the existing setup.env. + rm -f ${SETUP_ENV} + + # Rename setup.env.rpmnew to setup.env. + mv ${SETUP_ENV_NEW} ${SETUP_ENV} +fi + +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Configuration Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +%dir /awips2/edex/bin +%config(noreplace) /awips2/edex/bin/setup.env \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-core/component.spec b/rpms/awips2.edex/Installer.edex-core/component.spec new file mode 100644 index 0000000000..589c79f75a --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-core/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-core +%define _component_project_dir awips2.edex/Installer.edex-core +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Core Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Core +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-core +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Core Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-core + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Core Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Core Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Core Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-cots/component.spec b/rpms/awips2.edex/Installer.edex-cots/component.spec new file mode 100644 index 0000000000..9b429edb37 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-cots/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-cots +%define _component_project_dir awips2.core/Installer.edex-cots +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Cots Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Cots +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-cots +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Cots Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-cots + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Cots Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Cots Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Cots Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-dat/component.spec b/rpms/awips2.edex/Installer.edex-dat/component.spec new file mode 100644 index 0000000000..2859d3da31 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-dat/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-dat +%define _component_project_dir awips2.edex/Installer.edex-dat +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Dat Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Dat +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-dat +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Dat Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-dat + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Dat Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Dat Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Dat Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-dataplugins/component.spec b/rpms/awips2.edex/Installer.edex-dataplugins/component.spec new file mode 100644 index 0000000000..8912ec426a --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-dataplugins/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-dataplugins +%define _component_project_dir awips2.edex/Installer.edex-dataplugins +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Dataplugins Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Dataplugins +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-dataplugins +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Dataplugins Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-dataplugins + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Dataplugins Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Dataplugins Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Dataplugins Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-gfe/component.spec b/rpms/awips2.edex/Installer.edex-gfe/component.spec new file mode 100644 index 0000000000..519a7fc464 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-gfe/component.spec @@ -0,0 +1,180 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-gfe +%define _component_project_dir awips2.edex/Installer.edex-gfe +%define _component_default_prefix /awips2 +# +# AWIPS II Edex GFE Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex GFE +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-gfe +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex GFE Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-gfe + +# Directories That Need to Be Created: +# 1] GFESuite/exportgrids +# 2] GFESuite/exportgrids2 +# 3] GFESuite/ServiceBackup/svcbu +GFESUITE_DIRS_TO_CREATE=\ +(\ + '/awips2/GFESuite/exportgrids'\ + '/awips2/GFESuite/exportgrids2'\ +# '/awips2/GFESuite/ServiceBackup/svcbu'\ +# '/awips2/GFESuite/ServiceBackup/data'\ +# '/awips2/GFESuite/ServiceBackup/locks'\ +# '/awips2/GFESuite/ServiceBackup/logs'\ +) +for dir in ${GFESUITE_DIRS_TO_CREATE[*]} +do + mkdir -p ${RPM_BUILD_ROOT}/${dir} +done + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex GFE Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" +echo -e "\e[1;34m GFESuite Root = ${RPM_INSTALL_PREFIX}/GFESuite\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex GFE Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex GFE Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +%dir /awips2/edex/data +/awips2/edex/data/* +%dir /awips2/edex/lib +/awips2/edex/lib/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-grib/component.spec b/rpms/awips2.edex/Installer.edex-grib/component.spec new file mode 100644 index 0000000000..bf15b16063 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-grib/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-grib +%define _component_project_dir awips2.edex/Installer.edex-grib +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Grib Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Grib +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-grib +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Grib Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-grib + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Grib Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Grib Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Grib Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-hydro/component.spec b/rpms/awips2.edex/Installer.edex-hydro/component.spec new file mode 100644 index 0000000000..e319de2065 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-hydro/component.spec @@ -0,0 +1,96 @@ +%define _component_name awips2-edex-hydro +%define _component_project_dir awips2.edex/Installer.edex-hydro +# +# AWIPS II Edex Hydro Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Hydro +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-hydro +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Hydro Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +ANT_EXE="/awips2/ant/bin/ant" +if [ ! -f ${ANT_EXE} ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-hydro + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Hydro Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = /awips2/edex\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Hydro Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Hydro Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-native/component.spec b/rpms/awips2.edex/Installer.edex-native/component.spec new file mode 100644 index 0000000000..ecee5bfada --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-native/component.spec @@ -0,0 +1,115 @@ +# +# AWIPS II Edex Cots Spec File +# +Name: awips2-edex-native +Summary: AWIPS II Edex Native +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: /awips2 +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-native +requires: awips2 +requires: awips2-edex-base + +%description +AWIPS II Edex Installation - Installs The AWIPS II EDEX Native Libraries. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2 + +%build + +%install +NATIVE_TAR_FILE="dist.native/i386-pc-linux-gnu.tar" + +/bin/gtar -xpf ${WORKSPACE_DIR}/${NATIVE_TAR_FILE} \ + -C ${RPM_BUILD_ROOT}/awips2 + +# Remove all unnecessary files and directories. +rm -rf ${RPM_BUILD_ROOT}/awips2/adapt +rm -rf ${RPM_BUILD_ROOT}/awips2/lib +rm -rf ${RPM_BUILD_ROOT}/awips2/awipsShare +rm -rf ${RPM_BUILD_ROOT}/awips2/setup +rm -rf ${RPM_BUILD_ROOT}/awips2/edex/data + +# Copy the mhs libraries to the native directory structure +MHS_LIB_DIR="${AWIPSCM_SHARE}/packages/mhs" +# Need to copy mhs libraries. +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/lib/native/linux32/awips1 + +cp -r ${MHS_LIB_DIR}/* \ + ${RPM_BUILD_ROOT}/awips2/edex/lib/native/linux32/awips1 + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Libraries MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II EDEX Native Distribution...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}\e[m" +echo -e "\e[1;34m Destination = ${RPM_INSTALL_PREFIX}/edex/lib\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II EDEX Native Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II EDEX Native Libraries Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/edex + +%defattr(755,awips,fxalpha,755) +%dir /awips2/edex/bin +/awips2/edex/bin/* +%dir /awips2/edex/lib +/awips2/edex/lib/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-ncep-nsharp/component.spec b/rpms/awips2.edex/Installer.edex-ncep-nsharp/component.spec new file mode 100644 index 0000000000..21f30384a4 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-ncep-nsharp/component.spec @@ -0,0 +1,144 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-ncep-nsharp +%define _component_project_dir awips2.edex/Installer.edex-ncep-nsharp +%define _component_default_prefix /awips2 +# +# AWIPS II ncep Edex Plugins +# +Name: %{_component_name} +Summary: AWIPS II Edex ncep nsharp plugins +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-ncep-nsharp +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II ncep Installation - Installs The AWIPS II ncep Edex Plugins that are required for nsharp. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-ncep-nsharp + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II ncep nsharp Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II ncep nsharp Plugins Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II ncep nsharp Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-ncep/component.spec b/rpms/awips2.edex/Installer.edex-ncep/component.spec new file mode 100644 index 0000000000..66fcd8446a --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-ncep/component.spec @@ -0,0 +1,144 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-ncep +%define _component_project_dir awips2.edex/Installer.edex-ncep +%define _component_default_prefix /awips2 +# +# AWIPS II ncep Edex Plugins +# +Name: %{_component_name} +Summary: AWIPS II Edex ncep plugins +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-ncep +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II ncep Installation - Installs The AWIPS II ncep Edex Plugins that are required for nsharp. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-ncep + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II ncep Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II ncep Plugins Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II ncep Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-npp/component.spec b/rpms/awips2.edex/Installer.edex-npp/component.spec new file mode 100644 index 0000000000..1c56df6577 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-npp/component.spec @@ -0,0 +1,81 @@ +%define _component_name awips2-edex-npp +# +# AWIPS II Edex NPP Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex NPP Plugins +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: %{_component_name} +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex NPP Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE="/awips2/ant/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-npp + +%pre + +%post + +%preun + +%postun + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-radar/component.spec b/rpms/awips2.edex/Installer.edex-radar/component.spec new file mode 100644 index 0000000000..e2c308ff75 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-radar/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-radar +%define _component_project_dir awips2.edex/Installer.edex-radar +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Radar Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Radar +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-radar +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Radar Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-radar + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Radar Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Radar Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Radar Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-radar/delta/B11.4/dropRadarData.sh b/rpms/awips2.edex/Installer.edex-radar/delta/B11.4/dropRadarData.sh new file mode 100644 index 0000000000..fbc0b8a526 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-radar/delta/B11.4/dropRadarData.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +export DELTA_BUILD="11.4" +export DELTA_ID="A2DropRadarSCANA2" +export DELTA_DESC="Removing Any Radar/SCAN Data from the Database and HDF5" + +function purgeData() +{ + echo "Removing $3 from database..." + psql --command "drop table $3 CASCADE" --dbname metadata --username awips > /dev/null + psql --command "update plugin_info set initialized=False where name like '%$3%'" --dbname metadata --username awips > /dev/null + # Ensure that the data directory exists. + if [ ! -d $1 ]; then + echo "$1 does not exist." + return 0 + fi + + # Purge the existing data + echo "Removing $3 hdf5 data..." + rm -rf $1/* + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 1 + fi +} + +function runUpdate() +{ + RC="$?" + if [ ! "${RC}" = "0" ]; then + return 0 + fi + + if [ "${COMPONENT_INSTALL}" = "" ]; then + return 1 + fi + + RADAR_DATA_DIR="${COMPONENT_INSTALL}/edex/data/hdf5/radar" + RADAR_SQL="delete from radar;" + NAME="radar" + purgeData "$RADAR_DATA_DIR" "$RADAR_SQL" "$NAME" + + SCAN_DATA_DIR="${COMPONENT_INSTALL}/edex/data/hdf5/scan" + SCAN_SQL="delete from scan;" + NAME="scan" + purgeData "$SCAN_DATA_DIR" "$SCAN_SQL" "$NAME" + + return 0 +} diff --git a/rpms/awips2.edex/Installer.edex-satellite/component.spec b/rpms/awips2.edex/Installer.edex-satellite/component.spec new file mode 100644 index 0000000000..660a6f5a04 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-satellite/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-satellite +%define _component_project_dir awips2.core/Installer.edex-satellite +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Satellite Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Satellite +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-satellite +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Satellite Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-satellite + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Satellite Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Satellite Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Satellite Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-shapefiles/component.spec b/rpms/awips2.edex/Installer.edex-shapefiles/component.spec new file mode 100644 index 0000000000..1b67f9c8f9 --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-shapefiles/component.spec @@ -0,0 +1,98 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-shapefiles +%define _component_project_dir awips2.edex/Installer.edex-shapefiles +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Shapefiles Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Shapefiles +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-shapefiles +requires: awips2 +requires: awips2-edex-base + +%description +AWIPS II Edex Static Data Distribution - includes the shapefiles and the +maps database (when awips2-postgresql is installed). + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex/data/utility/edex_static/base/shapefiles + +%build + +%install +# Copy The shapefiles. +SHAPEFILES_DEST_DIR="awips2/edex/data/utility/edex_static/base/shapefiles" +STATIC_DATA_DIR="${AWIPSCM_SHARE}/awips2-static" + +# Determine which version of the shapefiles we should use. +RPM_COMMON_DIR="${WORKSPACE_DIR}/Installer.rpm/common/static.versions" + +if [ ! -f ${RPM_COMMON_DIR}/LATEST.maps ]; then + file ${RPM_COMMON_DIR}/LATEST.maps + exit 1 +fi +VERSION_DIR=`cat ${RPM_COMMON_DIR}/LATEST.maps` +SHAPEFILES_DIR="${STATIC_DATA_DIR}/maps/${VERSION_DIR}/shapefiles" +if [ ! -d ${SHAPEFILES_DIR} ]; then + file ${SHAPEFILES_DIR} + exit 1 +fi +cp -r ${SHAPEFILES_DIR}/* ${RPM_BUILD_ROOT}/${SHAPEFILES_DEST_DIR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +%pre +if [ "${1}" = "2" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing The AWIPS II Edex Shapefiles...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| SUCCESSFUL INSTALLATION ~ awips2-edex-shapefiles\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%preun +if [ "${1}" = "1" ]; then + exit 0 +fi + +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| SUCCESSFUL UNINSTALLATION ~ awips2-edex-shapefiles\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%files +%defattr(775,awips,fxalpha,755) +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/Installer.edex-text/component.spec b/rpms/awips2.edex/Installer.edex-text/component.spec new file mode 100644 index 0000000000..c3eab49ddc --- /dev/null +++ b/rpms/awips2.edex/Installer.edex-text/component.spec @@ -0,0 +1,158 @@ +%define CORE_DELTA_SETUP ${WORKSPACE_DIR}/Installer.rpm/delta/setup/updateSetup.sh +%define _component_name awips2-edex-text +%define _component_project_dir awips2.edex/Installer.edex-text +%define _component_default_prefix /awips2 +# +# AWIPS II Edex Text Spec File +# +Name: %{_component_name} +Summary: AWIPS II Edex Text +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +Prefix: %{_component_default_prefix} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +provides: awips2-edex-text +requires: awips2 +requires: awips2-edex-base +requires: awips2-python +requires: awips2-java +requires: awips2-psql + +%description +AWIPS II Edex Installation - Installs The AWIPS II Edex Text Plugins. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/edex + +%build +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +source %{CORE_DELTA_SETUP} +copySetupCore ${RPM_BUILD_ROOT} %{_component_default_prefix} +copyApplicableDeltas ${RPM_BUILD_ROOT} %{_component_name} \ + %{_component_project_dir} %{_component_default_prefix} +#---------------------------------------------------------------------------# + +%install +DEPLOY_SCRIPT="build.edex/deploy-install.xml" + +# Deploy Edex To Our Temporary Build Directory. + +# Determine which ant executable to use. +COMMAND=`rpm -q awips2-ant` +RC="$?" +if [ ! "${RC}" = "0" ]; then + echo "ERROR: awips2-ant Must Be Installed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +ANT_EXE=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-ant` +ANT_EXE="${ANT_EXE}/bin/ant" + +${ANT_EXE} -file ${WORKSPACE_DIR}/${DEPLOY_SCRIPT} \ + -Dinstall.dir=${RPM_BUILD_ROOT}/awips2/edex \ + -Dinstaller=true -Dlocal.build=false \ + -Dcomponent.to.deploy=edex-text + +%pre +if [ "${1}" = "1" ]; then + # This Is An Installation - Not An Upgrade. + # Ensure That We Are Being Installed To The Correct Location. + EDEX_INSTALL=`rpm -q --queryformat '%{INSTALLPREFIX}\n' awips2-edex-base` + if [ ! "${RPM_INSTALL_PREFIX}" = "${EDEX_INSTALL}" ]; then + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + echo -e "\e[1;31m\| ERROR: These Plugins MUST Be Installed At The Same Location As EDEX!!!" + echo -e "\e[1;34m\| INFO: Use '--prefix=${EDEX_INSTALL}'.\e[m" + echo -e "\e[1;31m--------------------------------------------------------------------------------\e[m" + + exit 1 + fi +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing AWIPS II Edex Text Plugins...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Installation Root = ${RPM_INSTALL_PREFIX}/edex\e[m" + +%post +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +if [ "${1}" = "2" ]; then + echo "INFO: Performing %{_component_name} Upgrade." + echo "Preparing ..." + + # Check the delta directory to see if there are updates that + # may need to be applied. + cd ${RPM_INSTALL_PREFIX}/delta/%{_component_name} + COUNT=`ls -1 | wc -l` + + if [ "${COUNT}" = "0" ]; then + echo "INFO: No Updates To Perform." + exit 0 + fi + + echo "INFO: Potentially Applying ${COUNT} Updates." + + # The Update Manager Is In: ${RPM_INSTALL_PREFIX}/delta + UPDATE_MANAGER="${RPM_INSTALL_PREFIX}/delta/updateManager.sh" + cd ${RPM_INSTALL_PREFIX}/delta + export COMPONENT_INSTALL="${RPM_INSTALL_PREFIX}" + ${UPDATE_MANAGER} %{_component_name} + + exit 0 +fi +#---------------------------------------------------------------------------# +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Edex Text Plugin Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| AWIPS II Edex Text Plugins Have Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(-,awips,fxalpha,-) +#---------------------------------------------------------------------------# +# Delta-Enabled RPM +#---------------------------------------------------------------------------# +%dir %{_component_default_prefix}/delta +%attr(700,root,root) %{_component_default_prefix}/delta/updateManager.sh +%attr(700,root,root) %{_component_default_prefix}/delta/createUpdateRegistry.sh +%{_component_default_prefix}/delta/%{_component_name} +#---------------------------------------------------------------------------# +%dir /awips2 +%dir /awips2/edex +/awips2/edex/* \ No newline at end of file diff --git a/rpms/awips2.edex/deploy.builder/build.sh b/rpms/awips2.edex/deploy.builder/build.sh new file mode 100755 index 0000000000..b4dabdcb53 --- /dev/null +++ b/rpms/awips2.edex/deploy.builder/build.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +# Arguments: +# ${1} == Build Version +# ${2} == Build Release + +if [ "${RPM_TOP_DIR}" = "" ]; then + echo "ERROR: You Must Set The RPM_TOP_DIR Environment Variable." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# !! NOTE !! - We Assume That We Are In A Workspace With The Installer Projects, +# The Edex Projects, The Cave Projects, The Native Projects, And Etc. +export WORKSPACE_DIR=`cd ../../../; pwd;` + +source ${WORKSPACE_DIR}/Installer.rpm/awips2.core/deploy.builder/env.sh + +# If there is an actual version, it will be given to us as an argument. +if [ "${1}" = "" ]; then + # Check version.txt + VERSION_TXT="${WORKSPACE_DIR}/Installer.rpm/version.txt" + if [ ! -f ${VERSION_TXT} ]; then + echo "ERROR: Unable to find the version file - ${VERSION_TXT}." + exit 1 + fi + export BUILD_VERSION=`cat ${VERSION_TXT}` + # Ensure that a version has been specified. + if [ "${BUILD_VERSION}" = "" ]; then + echo "ERROR: A build version has not been specified." + exit 1 + fi +else + export BUILD_VERSION="${1}" +fi +# If there is an actual release, it will be given to us as an argument. +if [ "${2}" = "" ]; then + # Use the date. + export BUILD_RELEASE=`date +"%Y%m%d"` +else + export BUILD_RELEASE="${2}" +fi + +function buildRPM() +{ + BUILDROOT_DIR=/tmp/awips-component + + COMPONENT_DIR=${1} + COMPONENT_SPECS=${COMPONENT_DIR}/component.spec + + # We Need To Delete The 'BuildRoot' Directory After Each RPM Is + # Built Whether The Build Is Successful Or Not. + rm -rf ${BUILDROOT_DIR} + + # We Build The List Of Files That Need To Be Installed On-Demand Now. + # If One Exists From A Previous Build, Delete It. + if [ -f ${RPM_TOP_DIR}/BUILD/component-files.txt ]; then + rm -f ${RPM_TOP_DIR}/BUILD/component-files.txt + fi + + # Build The RPM. + rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_version %(echo ${BUILD_VERSION})' \ + --define '_component_release %(echo ${BUILD_RELEASE})' \ + --buildroot ${BUILDROOT_DIR} ${COMPONENT_SPECS} + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "" + echo "ERROR: Unable To Build The RPM Defined In: ${COMPONENT_DIR}." + echo "Unable To Continue ... Terminating." + exit 1 + fi +} + +# Get A List Of The RPM Directories (Excluding This One) +# Note: Presently, We Are In ../../Installer.rpm/deploy.builder + +# Adjust Our Execution Position. +cd ../ + +buildRPM "Installer.edex-base" +buildRPM "Installer.edex-configuration" +buildRPM "Installer.edex-gfe" +buildRPM "Installer.edex-bufr" +buildRPM "Installer.edex-common-core" +buildRPM "Installer.edex-core" +buildRPM "Installer.edex-cots" +buildRPM "Installer.edex-dat" +buildRPM "Installer.edex-dataplugins" +buildRPM "Installer.edex-grib" +buildRPM "Installer.edex-hydro" +buildRPM "Installer.edex-radar" +buildRPM "Installer.edex-ncep" +buildRPM "Installer.edex-ncep-nsharp" +buildRPM "Installer.edex-satellite" +buildRPM "Installer.edex-text" +buildRPM "Installer.edex-native" +buildRPM "Installer.edex-shapefiles" +buildRPM "Installer.edex-npp" diff --git a/rpms/awips2.qpid/RPMS/i386/awips2-qpid-client-0.7.946106-28.11.5.i386.rpm b/rpms/awips2.qpid/RPMS/i386/awips2-qpid-client-0.7.946106-28.11.5.i386.rpm new file mode 100644 index 0000000000..2c104c7877 Binary files /dev/null and b/rpms/awips2.qpid/RPMS/i386/awips2-qpid-client-0.7.946106-28.11.5.i386.rpm differ diff --git a/rpms/awips2.qpid/RPMS/i386/awips2-qpid-server-0.7.946106-28.11.5.i386.rpm b/rpms/awips2.qpid/RPMS/i386/awips2-qpid-server-0.7.946106-28.11.5.i386.rpm new file mode 100644 index 0000000000..433e7f254b Binary files /dev/null and b/rpms/awips2.qpid/RPMS/i386/awips2-qpid-server-0.7.946106-28.11.5.i386.rpm differ diff --git a/rpms/awips2.qpid/RPMS/i386/awips2-qpid-server-store-0.7.946106-28.11.5.i386.rpm b/rpms/awips2.qpid/RPMS/i386/awips2-qpid-server-store-0.7.946106-28.11.5.i386.rpm new file mode 100644 index 0000000000..f43dab5a8e Binary files /dev/null and b/rpms/awips2.qpid/RPMS/i386/awips2-qpid-server-store-0.7.946106-28.11.5.i386.rpm differ diff --git a/rpms/awips2.qpid/SOURCES/developer_qpid b/rpms/awips2.qpid/SOURCES/developer_qpid new file mode 100644 index 0000000000..f92f8440c0 --- /dev/null +++ b/rpms/awips2.qpid/SOURCES/developer_qpid @@ -0,0 +1,6 @@ +#!/bin/sh +QPID_INST_PATH=/awips2/qpid +# this should be done already, but just in case +export LD_LIBRARY_PATH=${QPID_INST_PATH}/lib +${QPID_INST_PATH}/sbin/qpidd --config /awips2/qpid/etc/qpidd.conf --no-module-dir + diff --git a/rpms/awips2.qpid/SOURCES/mrg_1.3.x.patch b/rpms/awips2.qpid/SOURCES/mrg_1.3.x.patch new file mode 100644 index 0000000000..ccf656e07f --- /dev/null +++ b/rpms/awips2.qpid/SOURCES/mrg_1.3.x.patch @@ -0,0 +1,80725 @@ +From 11ed7634097ca3a3e52141509496105ad65290be Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Fri, 21 May 2010 17:31:29 +0000 +Subject: [PATCH] Fix broker core dump during start-up caused by un-initialized mAgent pointer. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@947081 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit ffc5afc35bbc8854e1956d120f79072373f29432) +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 7332102..099c3ef 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -247,6 +247,7 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + name(settings.name), + self(cpg.self()), + clusterId(true), ++ mAgent(0), + expiryPolicy(new ExpiryPolicy(mcast, self, broker.getTimer())), + mcast(cpg, poller, boost::bind(&Cluster::leave, this)), + dispatcher(cpg, poller, boost::bind(&Cluster::leave, this)), +-- +1.5.5.6 + +From a15f49f58cdb1ee2906f03bb487cf40c43498238 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Thu, 20 May 2010 21:42:40 +0000 +Subject: [PATCH] Bug 593828 - QMF: python console needs ability to filter unsolicited events. + QMF: provide event filter api for python console + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@946801 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit b806ee99fb0224069ba628bc0c506e02bb227de2) +--- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 46 ++++++++++++++++----- + qpid/cpp/src/qpid/management/ManagementAgent.h | 2 + + 2 files changed, 37 insertions(+), 11 deletions(-) + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 92f9d79..d4649a7 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -52,6 +52,25 @@ using namespace std; + namespace _qmf = qmf::org::apache::qpid::broker; + + ++namespace { ++ const string defaultVendorName("vendor"); ++ const string defaultProductName("product"); ++ ++ // Create a valid binding key substring by ++ // replacing all '.' chars with '_' ++ const string keyifyNameStr(const string& name) ++ { ++ string n2 = name; ++ ++ size_t pos = n2.find('.'); ++ while (pos != n2.npos) { ++ n2.replace(pos, 1, "_"); ++ pos = n2.find('.', pos); ++ } ++ return n2; ++ } ++} ++ + + static Variant::Map mapEncodeSchemaId(const string& pname, + const string& cname, +@@ -81,6 +100,7 @@ ManagementAgent::ManagementAgent (const bool qmfV1, const bool qmfV2) : + threadPoolSize(1), interval(10), broker(0), timer(0), + startTime(sys::now()), + suppressed(false), disallowAllV1Methods(false), ++ vendorNameKey(defaultVendorName), productNameKey(defaultProductName), + qmf1Support(qmfV1), qmf2Support(qmfV2) + { + nextObjectId = 1; +@@ -89,6 +109,8 @@ ManagementAgent::ManagementAgent (const bool qmfV1, const bool qmfV2) : + nextRemoteBank = 10; + nextRequestSequence = 1; + clientWasAdded = false; ++ attrMap["_vendor"] = defaultVendorName; ++ attrMap["_product"] = defaultProductName; + } + + ManagementAgent::~ManagementAgent () +@@ -196,6 +218,9 @@ void ManagementAgent::setName(const string& vendor, const string& product, const + name_address = vendor + ":" + product + ":" + inst; + attrMap["_instance"] = inst; + attrMap["_name"] = name_address; ++ ++ vendorNameKey = keyifyNameStr(vendor); ++ productNameKey = keyifyNameStr(product); + } + + +@@ -318,6 +343,10 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, + + void ManagementAgent::raiseEvent(const ManagementEvent& event, severity_t severity) + { ++ static const std::string severityStr[] = { ++ "emerg", "alert", "crit", "error", "warn", ++ "note", "info", "debug" ++ }; + sys::Mutex::ScopedLock lock (userLock); + uint8_t sev = (severity == SEV_DEFAULT) ? event.getSeverity() : (uint8_t) severity; + +@@ -362,7 +391,11 @@ void ManagementAgent::raiseEvent(const ManagementEvent& event, severity_t severi + headers["qmf.agent"] = name_address; + + stringstream key; +- key << "agent.ind.event." << sev << "." << name_address << "." << event.getEventName(); ++ key << "agent.ind.event." << vendorNameKey ++ << "." << productNameKey ++ << "." << severityStr[sev] ++ << "." << keyifyNameStr(event.getPackageName()) ++ << "." << keyifyNameStr(event.getEventName()); + + string content; + MapCodec::encode(map_, content); +@@ -803,16 +836,7 @@ void ManagementAgent::periodicProcessing (void) + if (qmf2Support) { + std::stringstream addr_key; + +- addr_key << "agent.ind.heartbeat"; +- +- // append .. to address key if present. +- Variant::Map::const_iterator v; +- if ((v = attrMap.find("_vendor")) != attrMap.end()){ +- addr_key << "." << v->second.getString(); +- if ((v = attrMap.find("_product")) != attrMap.end()) { +- addr_key << "." << v->second.getString(); +- } +- } ++ addr_key << "agent.ind.heartbeat." << vendorNameKey << "." << productNameKey; + + Variant::Map map; + Variant::Map headers; +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index a87cc91..8129c1e 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -284,6 +284,8 @@ private: + // Agent name and address + qpid::types::Variant::Map attrMap; + std::string name_address; ++ std::string vendorNameKey; // "." --> "_" ++ std::string productNameKey; // "." --> "_" + + // supported management protocol + bool qmf1Support; +-- +1.5.5.6 + +From d3a710d15dcfa2d14750c783de70776bb50a856d Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Fri, 21 May 2010 17:39:51 +0000 +Subject: [PATCH] Bug 593831 - QMF: c++ console needs ability to filter unsolicited events. + +QMF: add bindEvent api to allow filtering of unsolicted events. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@947084 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 5afdc67935d07852c7c166741401ec4a77604d9b) +--- + qpid/cpp/bindings/qmf/python/qmf.py | 15 +++++++++++- + qpid/cpp/bindings/qmf/ruby/qmf.rb | 15 ++++++++++++ + qpid/cpp/include/qmf/engine/Console.h | 3 ++ + qpid/cpp/include/qpid/console/SessionManager.h | 14 +++++++++++ + qpid/cpp/src/qmf/engine/ConsoleImpl.cpp | 30 ++++++++++++++++++++++++ + qpid/cpp/src/qmf/engine/ConsoleImpl.h | 2 + + qpid/cpp/src/qpid/console/SessionManager.cpp | 27 +++++++++++++++++++++ + 7 files changed, 105 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/bindings/qmf/python/qmf.py b/qpid/cpp/bindings/qmf/python/qmf.py +index 37442b9..06d3070 100644 +--- a/qpid/cpp/bindings/qmf/python/qmf.py ++++ b/qpid/cpp/bindings/qmf/python/qmf.py +@@ -1166,9 +1166,22 @@ class Console(Thread): + if "class" in kwargs: + self.impl.bindClass(package, kwargs["class"]) + else: +- self.impl.bindClass(package) ++ self.impl.bindClass(package, "*") + else: + raise Exception("Argument error: invalid arguments, use 'key' or 'package'[,'class']") ++ ++ ++ def bind_event(self, kwargs = {}): ++ if "key" in kwargs: ++ self.impl.bindEvent(kwargs["key"]) ++ elif "package" in kwargs: ++ package = kwargs["package"] ++ if "event" in kwargs: ++ self.impl.bindEvent(package, kwargs["event"]) ++ else: ++ self.impl.bindEvent(package, "*") ++ else: ++ raise Exception("Argument error: invalid arguments, use 'key' or 'package'[,'event']") + + + def agents(self, broker=None): +diff --git a/qpid/cpp/bindings/qmf/ruby/qmf.rb b/qpid/cpp/bindings/qmf/ruby/qmf.rb +index e50d23a..34d3255 100644 +--- a/qpid/cpp/bindings/qmf/ruby/qmf.rb ++++ b/qpid/cpp/bindings/qmf/ruby/qmf.rb +@@ -1087,6 +1087,21 @@ module Qmf + end + end + ++ def bind_event(kwargs = {}) ++ if kwargs.include?(:key) ++ @impl.bindEvent(kwargs[:key]) ++ elsif kwargs.include?(:package) ++ package = kwargs[:package] ++ if kwargs.include?(:event) ++ @impl.bindEvent(package, kwargs[:event]) ++ else ++ @impl.bindEvent(package, "*") ++ end ++ else ++ raise ArgumentError, "Invalid arguments, use :key or :package[,:event]" ++ end ++ end ++ + def agents(broker = nil) + blist = [] + if broker +diff --git a/qpid/cpp/include/qmf/engine/Console.h b/qpid/cpp/include/qmf/engine/Console.h +index 03b3993..bd40c63 100644 +--- a/qpid/cpp/include/qmf/engine/Console.h ++++ b/qpid/cpp/include/qmf/engine/Console.h +@@ -217,6 +217,9 @@ namespace engine { + void bindClass(const SchemaClassKey* key); + void bindClass(const char* packageName, const char* className); + ++ void bindEvent(const SchemaClassKey *key); ++ void bindEvent(const char* packageName, const char* eventName); ++ + /* + void startSync(const Query& query, void* context, SyncQuery& sync); + void touchSync(SyncQuery& sync); +diff --git a/qpid/cpp/include/qpid/console/SessionManager.h b/qpid/cpp/include/qpid/console/SessionManager.h +index f27037a..b46af54 100644 +--- a/qpid/cpp/include/qpid/console/SessionManager.h ++++ b/qpid/cpp/include/qpid/console/SessionManager.h +@@ -138,6 +138,20 @@ class SessionManager + QPID_CONSOLE_EXTERN void bindClass(const std::string& packageName, + const std::string& className); + ++ /** Request events from a particular package. ++ * ++ * Note that this method is only meaningful if a ConsoleListener was provided at session ++ * creation and if the 'userBindings' flag was set to true. ++ * ++ * @param classKey Class key of event of interest ++ * @param packageName Name of package of event of interest. ++ * @param eventName Name of event of interest. Default=All events defined by package. ++ */ ++ QPID_CONSOLE_EXTERN void bindEvent(const ClassKey& classKey); ++ QPID_CONSOLE_EXTERN void bindEvent(const std::string& packageName, ++ const std::string& eventName=""); ++ ++ + /** Get a list of qmf agents known to the session manager. + * + *@param agents Vector of Agent objects returned by the session manager. +diff --git a/qpid/cpp/src/qmf/engine/ConsoleImpl.cpp b/qpid/cpp/src/qmf/engine/ConsoleImpl.cpp +index 1b66d9e..4a5da31 100644 +--- a/qpid/cpp/src/qmf/engine/ConsoleImpl.cpp ++++ b/qpid/cpp/src/qmf/engine/ConsoleImpl.cpp +@@ -259,6 +259,32 @@ void ConsoleImpl::bindClass(const char* packageName, const char* className) + (*iter)->addBinding(QMF_EXCHANGE, key.str()); + } + ++ ++void ConsoleImpl::bindEvent(const SchemaClassKey* classKey) ++{ ++ bindEvent(classKey->getPackageName(), classKey->getClassName()); ++} ++ ++void ConsoleImpl::bindEvent(const char* packageName, const char* eventName) ++{ ++ if (!settings.userBindings) throw qpid::Exception("Console not configured for userBindings."); ++ if (settings.rcvEvents) throw qpid::Exception("Console already configured to receive all events."); ++ ++ stringstream key; ++ key << "console.event.*.*." << packageName; ++ if (eventName && *eventName) { ++ key << "." << eventName << ".#"; ++ } else { ++ key << ".#"; ++ } ++ ++ Mutex::ScopedLock _lock(lock); ++ bindingList.push_back(pair(string(), key.str())); ++ for (vector::iterator iter = brokerList.begin(); ++ iter != brokerList.end(); iter++) ++ (*iter)->addBinding(QMF_EXCHANGE, key.str()); ++} ++ + /* + void ConsoleImpl::startSync(const Query& query, void* context, SyncQuery& sync) + { +@@ -421,6 +447,10 @@ const SchemaEventClass* Console::getEventClass(const SchemaClassKey* key) const + void Console::bindPackage(const char* packageName) { impl->bindPackage(packageName); } + void Console::bindClass(const SchemaClassKey* key) { impl->bindClass(key); } + void Console::bindClass(const char* packageName, const char* className) { impl->bindClass(packageName, className); } ++ ++void Console::bindEvent(const SchemaClassKey *key) { impl->bindEvent(key); } ++void Console::bindEvent(const char* packageName, const char* eventName) { impl->bindEvent(packageName, eventName); } ++ + //void Console::startSync(const Query& query, void* context, SyncQuery& sync) { impl->startSync(query, context, sync); } + //void Console::touchSync(SyncQuery& sync) { impl->touchSync(sync); } + //void Console::endSync(SyncQuery& sync) { impl->endSync(sync); } +diff --git a/qpid/cpp/src/qmf/engine/ConsoleImpl.h b/qpid/cpp/src/qmf/engine/ConsoleImpl.h +index ace47ec..0c27fda 100644 +--- a/qpid/cpp/src/qmf/engine/ConsoleImpl.h ++++ b/qpid/cpp/src/qmf/engine/ConsoleImpl.h +@@ -94,6 +94,8 @@ namespace engine { + void bindPackage(const char* packageName); + void bindClass(const SchemaClassKey* key); + void bindClass(const char* packageName, const char* className); ++ void bindEvent(const SchemaClassKey* key); ++ void bindEvent(const char* packageName, const char* eventName); + + /* + void startSync(const Query& query, void* context, SyncQuery& sync); +diff --git a/qpid/cpp/src/qpid/console/SessionManager.cpp b/qpid/cpp/src/qpid/console/SessionManager.cpp +index 0285c5f..4f39095 100644 +--- a/qpid/cpp/src/qpid/console/SessionManager.cpp ++++ b/qpid/cpp/src/qpid/console/SessionManager.cpp +@@ -138,6 +138,33 @@ void SessionManager::bindClass(const std::string& packageName, const std::string + (*iter)->addBinding(key.str()); + } + ++ ++void SessionManager::bindEvent(const ClassKey& classKey) ++{ ++ bindEvent(classKey.getPackageName(), classKey.getClassName()); ++} ++ ++ ++void SessionManager::bindEvent(const std::string& packageName, const std::string& eventName) ++{ ++ if (!settings.userBindings) throw Exception("Session not configured for userBindings."); ++ if (settings.rcvEvents) throw Exception("Session already configured to receive all events."); ++ ++ stringstream key; ++ key << "console.event.*.*." << packageName; ++ if (eventName.length()) { ++ key << "." << eventName << ".#"; ++ } else { ++ key << ".#"; ++ } ++ ++ bindingKeyList.push_back(key.str()); ++ for (vector::iterator iter = brokers.begin(); ++ iter != brokers.end(); iter++) ++ (*iter)->addBinding(key.str()); ++} ++ ++ + void SessionManager::getAgents(Agent::Vector& agents, Broker* broker) + { + agents.clear(); +-- +1.5.5.6 + +From 648ab87be54d30af2ec14b7b8eb7bd77735f5ffa Mon Sep 17 00:00:00 2001 +From: Kim van der Riet +Date: Mon, 24 May 2010 15:48:18 +0000 +Subject: [PATCH] Changed the names of tests which are installed in /usr/bin/ to be prefixed with "qpid-". This will make these generic names easier to associate with qpid. (BZ577353) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@947678 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/tests/CMakeLists.txt | 56 +- + qpid/cpp/src/tests/Makefile.am | 60 +- + qpid/cpp/src/tests/client_test.cpp | 139 ---- + qpid/cpp/src/tests/cluster_authentication_soak.cpp | 22 +- + qpid/cpp/src/tests/cluster_tests.py | 2 +- + qpid/cpp/src/tests/latencytest.cpp | 469 ------------- + qpid/cpp/src/tests/perftest.cpp | 741 -------------------- + qpid/cpp/src/tests/qpid-client-test.cpp | 139 ++++ + qpid/cpp/src/tests/qpid-latency-test.cpp | 469 +++++++++++++ + qpid/cpp/src/tests/qpid-perftest.cpp | 741 ++++++++++++++++++++ + qpid/cpp/src/tests/qpid-topic-listener.cpp | 209 ++++++ + qpid/cpp/src/tests/qpid-topic-publisher.cpp | 230 ++++++ + qpid/cpp/src/tests/qpid-txtest.cpp | 340 +++++++++ + qpid/cpp/src/tests/quick_perftest | 2 +- + qpid/cpp/src/tests/quick_txtest | 2 +- + qpid/cpp/src/tests/run_perftest | 6 +- + qpid/cpp/src/tests/ssl_test | 2 +- + qpid/cpp/src/tests/topic_listener.cpp | 209 ------ + qpid/cpp/src/tests/topic_publisher.cpp | 230 ------ + qpid/cpp/src/tests/topictest | 4 +- + qpid/cpp/src/tests/txtest.cpp | 340 --------- + 21 files changed, 2206 insertions(+), 2206 deletions(-) + delete mode 100644 qpid/cpp/src/tests/client_test.cpp + delete mode 100644 qpid/cpp/src/tests/latencytest.cpp + delete mode 100644 qpid/cpp/src/tests/perftest.cpp + create mode 100644 qpid/cpp/src/tests/qpid-client-test.cpp + create mode 100644 qpid/cpp/src/tests/qpid-latency-test.cpp + create mode 100644 qpid/cpp/src/tests/qpid-perftest.cpp + create mode 100644 qpid/cpp/src/tests/qpid-topic-listener.cpp + create mode 100644 qpid/cpp/src/tests/qpid-topic-publisher.cpp + create mode 100644 qpid/cpp/src/tests/qpid-txtest.cpp + delete mode 100644 qpid/cpp/src/tests/topic_listener.cpp + delete mode 100644 qpid/cpp/src/tests/topic_publisher.cpp + delete mode 100644 qpid/cpp/src/tests/txtest.cpp + +diff --git a/qpid/cpp/src/tests/CMakeLists.txt b/qpid/cpp/src/tests/CMakeLists.txt +index c645815..47714ac 100644 +--- a/qpid/cpp/src/tests/CMakeLists.txt ++++ b/qpid/cpp/src/tests/CMakeLists.txt +@@ -182,40 +182,40 @@ endif (BUILD_CLUSTER) + # + # Other test programs + # +-add_executable (perftest perftest.cpp ${platform_test_additions}) +-target_link_libraries (perftest qpidclient) +-#perftest_SOURCES=perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h +-remember_location(perftest) ++add_executable (qpid-perftest qpid-perftest.cpp ${platform_test_additions}) ++target_link_libraries (qpid-perftest qpidclient) ++#qpid_perftest_SOURCES=qpid-perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h ++remember_location(qpid-perftest) + +-add_executable (txtest txtest.cpp ${platform_test_additions}) +-target_link_libraries (txtest qpidclient) +-#txtest_SOURCES=txtest.cpp TestOptions.h ConnectionOptions.h +-remember_location(txtest) ++add_executable (qpid-txtest qpid-txtest.cpp ${platform_test_additions}) ++target_link_libraries (qpid-txtest qpidclient) ++#qpid_txtest_SOURCES=qpid-txtest.cpp TestOptions.h ConnectionOptions.h ++remember_location(qpid-txtest) + +-add_executable (latencytest latencytest.cpp ${platform_test_additions}) +-target_link_libraries (latencytest qpidclient) +-#latencytest_SOURCES=latencytest.cpp TestOptions.h ConnectionOptions.h +-remember_location(latencytest) ++add_executable (qpid-latency-test qpid-latency-test.cpp ${platform_test_additions}) ++target_link_libraries (qpid-latency-test qpidclient) ++#qpid_latencytest_SOURCES=qpid-latency-test.cpp TestOptions.h ConnectionOptions.h ++remember_location(qpid-latency-test) + + add_executable (echotest echotest.cpp ${platform_test_additions}) + target_link_libraries (echotest qpidclient) + #echotest_SOURCES=echotest.cpp TestOptions.h ConnectionOptions.h + remember_location(echotest) + +-add_executable (client_test client_test.cpp ${platform_test_additions}) +-target_link_libraries (client_test qpidclient) +-#client_test_SOURCES=client_test.cpp TestOptions.h ConnectionOptions.h +-remember_location(client_test) ++add_executable (qpid-client-test qpid-client-test.cpp ${platform_test_additions}) ++target_link_libraries (qpid-client-test qpidclient) ++#qpid_client_test_SOURCES=qpid-client-test.cpp TestOptions.h ConnectionOptions.h ++remember_location(qpid-client-test) + +-add_executable (topic_listener topic_listener.cpp ${platform_test_additions}) +-target_link_libraries (topic_listener qpidclient) +-#topic_listener_SOURCES=topic_listener.cpp TestOptions.h ConnectionOptions.h +-remember_location(topic_listener) ++add_executable (qpid-topic-listener qpid-topic-listener.cpp ${platform_test_additions}) ++target_link_libraries (qpid-topic-listener qpidclient) ++#qpid_topic_listener_SOURCES=qpid-topic-listener.cpp TestOptions.h ConnectionOptions.h ++remember_location(qpid-topic-listener) + +-add_executable (topic_publisher topic_publisher.cpp ${platform_test_additions}) +-target_link_libraries (topic_publisher qpidclient) +-#topic_publisher_SOURCES=topic_publisher.cpp TestOptions.h ConnectionOptions.h +-remember_location(topic_publisher) ++add_executable (qpid-topic-publisher qpid-topic-publisher.cpp ${platform_test_additions}) ++target_link_libraries (qpid-topic-publisher qpidclient) ++#qpid_topic_publisher_SOURCES=qpid-topic-publisher.cpp TestOptions.h ConnectionOptions.h ++remember_location(qpid-topic-publisher) + + add_executable (publish publish.cpp ${platform_test_additions}) + target_link_libraries (publish qpidclient) +@@ -272,8 +272,8 @@ add_executable (qpid_send qpid_send.cpp Statistics.cpp ${platform_test_additions + target_link_libraries (qpid_send qpidmessaging) + remember_location(qpid_send) + +-# perftest and latencytest are generally useful so install them +-install (TARGETS perftest latencytest RUNTIME ++# qpid-perftest and qpid-latency-test are generally useful so install them ++install (TARGETS qpid-perftest qpid-latency-test RUNTIME + DESTINATION ${QPID_INSTALL_BINDIR}) + + if (CMAKE_SYSTEM_NAME STREQUAL Windows) +@@ -286,8 +286,8 @@ set(test_wrap ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_test${test_script_suffix} + + add_test (unit_test ${test_wrap} ${unit_test_LOCATION}) + add_test (start_broker ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/start_broker${test_script_suffix}) +-add_test (client_test ${test_wrap} ${client_test_LOCATION}) +-add_test (quick_perftest ${test_wrap} ${perftest_LOCATION} --summary --count 100) ++add_test (qpid-client-test ${test_wrap} ${client_test_LOCATION}) ++add_test (quick_perftest ${test_wrap} ${qpid-perftest_LOCATION} --summary --count 100) + add_test (quick_topictest ${test_wrap} ${CMAKE_CURRENT_SOURCE_DIR}/quick_topictest${test_script_suffix}) + add_test (quick_txtest ${test_wrap} ${txtest_LOCATION} --queues 4 --tx-count 10 --quiet) + if (PYTHON_EXECUTABLE) +diff --git a/qpid/cpp/src/tests/Makefile.am b/qpid/cpp/src/tests/Makefile.am +index 235e6fe..92e4e85 100644 +--- a/qpid/cpp/src/tests/Makefile.am ++++ b/qpid/cpp/src/tests/Makefile.am +@@ -184,35 +184,35 @@ qpid_send_SOURCES = \ + Statistics.cpp + qpid_send_LDADD = $(lib_messaging) + +-qpidtest_PROGRAMS+=perftest +-perftest_SOURCES=perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h +-perftest_INCLUDES=$(PUBLIC_INCLUDES) +-perftest_LDADD=$(lib_client) +- +-qpidtest_PROGRAMS+=txtest +-txtest_INCLUDES=$(PUBLIC_INCLUDES) +-txtest_SOURCES=txtest.cpp TestOptions.h ConnectionOptions.h +-txtest_LDADD=$(lib_client) +- +-qpidtest_PROGRAMS+=latencytest +-latencytest_INCLUDES=$(PUBLIC_INCLUDES) +-latencytest_SOURCES=latencytest.cpp TestOptions.h ConnectionOptions.h +-latencytest_LDADD=$(lib_client) +- +-qpidtest_PROGRAMS+=client_test +-client_test_INCLUDES=$(PUBLIC_INCLUDES) +-client_test_SOURCES=client_test.cpp TestOptions.h ConnectionOptions.h +-client_test_LDADD=$(lib_client) +- +-qpidtest_PROGRAMS+=topic_listener +-topic_listener_INCLUDES=$(PUBLIC_INCLUDES) +-topic_listener_SOURCES=topic_listener.cpp TestOptions.h ConnectionOptions.h +-topic_listener_LDADD=$(lib_client) +- +-qpidtest_PROGRAMS+=topic_publisher +-topic_publisher_INCLUDES=$(PUBLIC_INCLUDES) +-topic_publisher_SOURCES=topic_publisher.cpp TestOptions.h ConnectionOptions.h +-topic_publisher_LDADD=$(lib_client) ++qpidtest_PROGRAMS+=qpid-perftest ++qpid_perftest_SOURCES=qpid-perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h ++qpid_perftest_INCLUDES=$(PUBLIC_INCLUDES) ++qpid_perftest_LDADD=$(lib_client) ++ ++qpidtest_PROGRAMS+=qpid-txtest ++qpid_txtest_INCLUDES=$(PUBLIC_INCLUDES) ++qpid_txtest_SOURCES=qpid-txtest.cpp TestOptions.h ConnectionOptions.h ++qpid_txtest_LDADD=$(lib_client) ++ ++qpidtest_PROGRAMS+=qpid-latency-test ++qpid_latency_test_INCLUDES=$(PUBLIC_INCLUDES) ++qpid_latency_test_SOURCES=qpid-latency-test.cpp TestOptions.h ConnectionOptions.h ++qpid_latency_test_LDADD=$(lib_client) ++ ++qpidtest_PROGRAMS+=qpid-client-test ++qpid_client_test_INCLUDES=$(PUBLIC_INCLUDES) ++qpid_client_test_SOURCES=qpid-client-test.cpp TestOptions.h ConnectionOptions.h ++qpid_client_test_LDADD=$(lib_client) ++ ++qpidtest_PROGRAMS+=qpid-topic-listener ++qpid_topic_listener_INCLUDES=$(PUBLIC_INCLUDES) ++qpid_topic_listener_SOURCES=qpid-topic-listener.cpp TestOptions.h ConnectionOptions.h ++qpid_topic_listener_LDADD=$(lib_client) ++ ++qpidtest_PROGRAMS+=qpid-topic-publisher ++qpid_topic_publisher_INCLUDES=$(PUBLIC_INCLUDES) ++qpid_topic_publisher_SOURCES=qpid-topic-publisher.cpp TestOptions.h ConnectionOptions.h ++qpid_topic_publisher_LDADD=$(lib_client) + + qpidtest_PROGRAMS+=qpid_ping + qpid_ping_INCLUDES=$(PUBLIC_INCLUDES) +@@ -313,7 +313,7 @@ TESTS_ENVIRONMENT = \ + QPID_DATA_DIR= \ + $(srcdir)/run_test + +-system_tests = client_test quick_perftest quick_topictest run_header_test quick_txtest ++system_tests = qpid-client-test quick_perftest quick_topictest run_header_test quick_txtest + TESTS += start_broker $(system_tests) python_tests stop_broker run_federation_tests run_acl_tests run_cli_tests replication_test + + EXTRA_DIST += \ +diff --git a/qpid/cpp/src/tests/client_test.cpp b/qpid/cpp/src/tests/client_test.cpp +deleted file mode 100644 +index 2f5e8e5..0000000 +--- a/qpid/cpp/src/tests/client_test.cpp ++++ /dev/null +@@ -1,139 +0,0 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +-/** +- * This file provides a simple test (and example) of basic +- * functionality including declaring an exchange and a queue, binding +- * these together, publishing a message and receiving that message +- * asynchronously. +- */ +- +-#include +- +-#include "TestOptions.h" +-#include "qpid/client/Connection.h" +-#include "qpid/client/Message.h" +-#include "qpid/client/Session.h" +-#include "qpid/client/SubscriptionManager.h" +- +- +-using namespace qpid; +-using namespace qpid::client; +-using namespace qpid::framing; +-using std::string; +- +-namespace qpid { +-namespace tests { +- +-struct Args : public TestOptions { +- uint msgSize; +- bool verbose; +- +- Args() : TestOptions("Simple test of Qpid c++ client; sends and receives a single message."), msgSize(26) +- { +- addOptions() +- ("size", optValue(msgSize, "N"), "message size") +- ("verbose", optValue(verbose), "print out some status messages"); +- } +-}; +- +-const std::string chars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); +- +-std::string generateData(uint size) +-{ +- if (size < chars.length()) { +- return chars.substr(0, size); +- } +- std::string data; +- for (uint i = 0; i < (size / chars.length()); i++) { +- data += chars; +- } +- data += chars.substr(0, size % chars.length()); +- return data; +-} +- +-void print(const std::string& text, const Message& msg) +-{ +- std::cout << text; +- if (msg.getData().size() > 16) { +- std::cout << msg.getData().substr(0, 16) << "..."; +- } else { +- std::cout << msg.getData(); +- } +- std::cout << std::endl; +-} +- +-}} // namespace qpid::tests +- +-using namespace qpid::tests; +- +-int main(int argc, char** argv) +-{ +- try { +- Args opts; +- opts.parse(argc, argv); +- +- //Connect to the broker: +- Connection connection; +- opts.open(connection); +- if (opts.verbose) std::cout << "Opened connection." << std::endl; +- +- //Create and open a session on the connection through which +- //most functionality is exposed: +- Session session = connection.newSession(); +- if (opts.verbose) std::cout << "Opened session." << std::endl; +- +- +- //'declare' the exchange and the queue, which will create them +- //as they don't exist +- session.exchangeDeclare(arg::exchange="MyExchange", arg::type="direct"); +- if (opts.verbose) std::cout << "Declared exchange." << std::endl; +- session.queueDeclare(arg::queue="MyQueue", arg::autoDelete=true, arg::exclusive=true); +- if (opts.verbose) std::cout << "Declared queue." << std::endl; +- +- //now bind the queue to the exchange +- session.exchangeBind(arg::exchange="MyExchange", arg::queue="MyQueue", arg::bindingKey="MyKey"); +- if (opts.verbose) std::cout << "Bound queue to exchange." << std::endl; +- +- //create and send a message to the exchange using the routing +- //key we bound our queue with: +- Message msgOut(generateData(opts.msgSize)); +- msgOut.getDeliveryProperties().setRoutingKey("MyKey"); +- session.messageTransfer(arg::destination="MyExchange", arg::content=msgOut, arg::acceptMode=1); +- if (opts.verbose) print("Published message: ", msgOut); +- +- // Using the SubscriptionManager, get the message from the queue. +- SubscriptionManager subs(session); +- Message msgIn = subs.get("MyQueue"); +- if (msgIn.getData() == msgOut.getData()) +- if (opts.verbose) std::cout << "Received the exepected message." << std::endl; +- +- //close the session & connection +- session.close(); +- if (opts.verbose) std::cout << "Closed session." << std::endl; +- connection.close(); +- if (opts.verbose) std::cout << "Closed connection." << std::endl; +- return 0; +- } catch(const std::exception& e) { +- std::cout << e.what() << std::endl; +- } +- return 1; +-} +diff --git a/qpid/cpp/src/tests/cluster_authentication_soak.cpp b/qpid/cpp/src/tests/cluster_authentication_soak.cpp +index 985c3aa..ccf4d27 100644 +--- a/qpid/cpp/src/tests/cluster_authentication_soak.cpp ++++ b/qpid/cpp/src/tests/cluster_authentication_soak.cpp +@@ -104,10 +104,10 @@ runPerftest ( ) { + stringstream portSs; + portSs << newbiePort; + +- char const * path = "./perftest"; ++ char const * path = "./qpid-perftest"; + + vector argv; +- argv.push_back ( "./perftest" ); ++ argv.push_back ( "./qpid-perftest" ); + argv.push_back ( "-p" ); + argv.push_back ( portSs.str().c_str() ); + argv.push_back ( "--username" ); +@@ -129,7 +129,7 @@ runPerftest ( ) { + + execv ( path, const_cast(&argv[0]) ); + // The exec failed: we are still in parent process. +- perror ( "error running perftest: " ); ++ perror ( "error running qpid-perftest: " ); + return false; + } + else { +@@ -146,19 +146,19 @@ runPerftest ( ) { + if ( returned_pid == pid ) { + int exit_status = WEXITSTATUS(status); + if ( exit_status ) { +- cerr << "Perftest failed. exit_status was: " << exit_status; ++ cerr << "qpid-perftest failed. exit_status was: " << exit_status; + return false; + } + else { +- return true; // perftest succeeded. ++ return true; // qpid-perftest succeeded. + } + } +- else { // perftest has not yet completed. ++ else { // qpid-perftest has not yet completed. + gettimeofday ( & currentTime, 0 ); + timersub ( & currentTime, & startTime, & duration ); + if ( duration.tv_sec > 60 ) { + kill ( pid, 9 ); +- cerr << "Perftest pid " << pid << " hanging: killed.\n"; ++ cerr << "qpid-perftest pid " << pid << " hanging: killed.\n"; + return false; + } + } +@@ -214,7 +214,7 @@ main ( int argc, char ** argv ) + + sleep ( 3 ); + +- /* Run all perftest iterations, and only then check for brokers ++ /* Run all qpid-perftest iterations, and only then check for brokers + * still being up. If you just want a quick check for the failure + * mode in which a single iteration would kill all brokers except + * the client-connected one, just run it with the iterations arg +@@ -222,14 +222,14 @@ main ( int argc, char ** argv ) + */ + for ( int iteration = 0; iteration < n_iterations; ++ iteration ) { + if ( ! runPerftest ( ) ) { +- cerr << "Perftest " << iteration << " failed.\n"; ++ cerr << "qpid-perftest " << iteration << " failed.\n"; + return 1; + } + if ( ! ( iteration % 10 ) ) { +- cerr << "perftest " << iteration << " complete. -------------- \n"; ++ cerr << "qpid-perftest " << iteration << " complete. -------------- \n"; + } + } +- cerr << "\nperftest " << n_iterations << " iterations complete. -------------- \n\n"; ++ cerr << "\nqpid-perftest " << n_iterations << " iterations complete. -------------- \n\n"; + + if ( ! allBrokersAreAlive ( brokers ) ) { + cerr << "not all brokers are alive.\n"; +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index 893fb99..f36cde9 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -211,7 +211,7 @@ class LongTests(BrokerTest): + """Start ordinary clients for a broker. Start one client per broker. + Round-robin on a colllection of different clients.""" + cmds=[ +- ["perftest", "--count", 50000, ++ ["qpid-perftest", "--count", 50000, + "--base-name", str(qpid.datatypes.uuid4()), "--port", broker.port()], + ["qpid-queue-stats", "-a", "localhost:%s" %(broker.port())], + ["testagent", "localhost", str(broker.port())] ] +diff --git a/qpid/cpp/src/tests/latencytest.cpp b/qpid/cpp/src/tests/latencytest.cpp +deleted file mode 100644 +index 20eb456..0000000 +--- a/qpid/cpp/src/tests/latencytest.cpp ++++ /dev/null +@@ -1,469 +0,0 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "TestOptions.h" +-#include "qpid/sys/Thread.h" +-#include "qpid/client/Connection.h" +-#include "qpid/client/Message.h" +-#include "qpid/client/AsyncSession.h" +-#include "qpid/client/SubscriptionManager.h" +-#include "qpid/sys/Time.h" +- +-using namespace qpid; +-using namespace qpid::client; +-using namespace qpid::sys; +-using std::string; +- +-namespace qpid { +-namespace tests { +- +-typedef std::vector StringSet; +- +-struct Args : public qpid::TestOptions { +- uint size; +- uint count; +- uint rate; +- bool sync; +- uint reportFrequency; +- uint timeLimit; +- uint concurrentConnections; +- uint prefetch; +- uint ack; +- bool cumulative; +- bool csv; +- bool durable; +- string base; +- bool singleConnect; +- +- Args() : size(256), count(1000), rate(0), reportFrequency(1000), +- timeLimit(0), concurrentConnections(1), +- prefetch(100), ack(0), +- durable(false), base("latency-test"), singleConnect(false) +- +- { +- addOptions() +- +- ("size", optValue(size, "N"), "message size") +- ("concurrentTests", optValue(concurrentConnections, "N"), "number of concurrent test setups, will create another publisher,\ +- subcriber, queue, and connections") +- ("single-connection", optValue(singleConnect, "yes|no"), "Use one connection for multiple sessions.") +- ("count", optValue(count, "N"), "number of messages to send") +- ("rate", optValue(rate, "N"), "target message rate (causes count to be ignored)") +- ("sync", optValue(sync), "send messages synchronously") +- ("report-frequency", optValue(reportFrequency, "N"), +- "number of milliseconds to wait between reports (ignored unless rate specified)") +- ("time-limit", optValue(timeLimit, "N"), +- "test duration, in seconds") +- ("prefetch", optValue(prefetch, "N"), "prefetch count (0 implies no flow control, and no acking)") +- ("ack", optValue(ack, "N"), "Ack frequency in messages (defaults to half the prefetch value)") +- ("durable", optValue(durable, "yes|no"), "use durable messages") +- ("csv", optValue(csv), "print stats in csv format (rate,min,max,avg)") +- ("cumulative", optValue(cumulative), "cumulative stats in csv format") +- ("queue-base-name", optValue(base, ""), "base name for queues"); +- } +-}; +- +-const std::string chars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); +- +-Args opts; +-double c_min, c_avg, c_max; +-Connection globalConnection; +- +-uint64_t current_time() +-{ +- Duration t(EPOCH, now()); +- return t; +-} +- +-struct Stats +-{ +- Mutex lock; +- uint count; +- double minLatency; +- double maxLatency; +- double totalLatency; +- +- Stats(); +- void update(double l); +- void print(); +- void reset(); +-}; +- +-class Client : public Runnable +-{ +-protected: +- Connection* connection; +- Connection localConnection; +- AsyncSession session; +- Thread thread; +- string queue; +- +-public: +- Client(const string& q); +- virtual ~Client(); +- +- void start(); +- void join(); +- void run(); +- virtual void test() = 0; +-}; +- +-class Receiver : public Client, public MessageListener +-{ +- SubscriptionManager mgr; +- uint count; +- Stats& stats; +- +-public: +- Receiver(const string& queue, Stats& stats); +- void test(); +- void received(Message& msg); +- Stats getStats(); +- uint getCount() { return count; } +- void stop() { mgr.stop(); mgr.cancel(queue); } +-}; +- +- +-class Sender : public Client +-{ +- string generateData(uint size); +- void sendByRate(); +- void sendByCount(); +- Receiver& receiver; +- const string data; +- +-public: +- Sender(const string& queue, Receiver& receiver); +- void test(); +-}; +- +- +-class Test +-{ +- const string queue; +- Stats stats; +- Receiver receiver; +- Sender sender; +- AbsTime begin; +- +-public: +- Test(const string& q) : queue(q), receiver(queue, stats), sender(queue, receiver), begin(now()) {} +- void start(); +- void join(); +- void report(); +-}; +- +- +-Client::Client(const string& q) : queue(q) +-{ +- if (opts.singleConnect){ +- connection = &globalConnection; +- if (!globalConnection.isOpen()) opts.open(globalConnection); +- }else{ +- connection = &localConnection; +- opts.open(localConnection); +- } +- session = connection->newSession(); +-} +- +-void Client::start() +-{ +- thread = Thread(this); +-} +- +-void Client::join() +-{ +- thread.join(); +-} +- +-void Client::run() +-{ +- try{ +- test(); +- } catch(const std::exception& e) { +- std::cout << "Error in receiver: " << e.what() << std::endl; +- } +-} +- +-Client::~Client() +-{ +- try{ +- session.close(); +- connection->close(); +- } catch(const std::exception& e) { +- std::cout << "Error in receiver: " << e.what() << std::endl; +- } +-} +- +-Receiver::Receiver(const string& q, Stats& s) : Client(q), mgr(session), count(0), stats(s) +-{ +- session.queueDeclare(arg::queue=queue, arg::durable=opts.durable, arg::autoDelete=true); +- uint msgCount = session.queueQuery(arg::queue=queue).get().getMessageCount(); +- if (msgCount) { +- std::cout << "Warning: found " << msgCount << " msgs on " << queue << ". Purging..." << std::endl; +- session.queuePurge(arg::queue=queue); +- session.sync(); +- } +- SubscriptionSettings settings; +- if (opts.prefetch) { +- settings.autoAck = (opts.ack ? opts.ack : (opts.prefetch / 2)); +- settings.flowControl = FlowControl::messageWindow(opts.prefetch); +- } else { +- settings.acceptMode = ACCEPT_MODE_NONE; +- settings.flowControl = FlowControl::unlimited(); +- } +- mgr.subscribe(*this, queue, settings); +-} +- +-void Receiver::test() +-{ +- mgr.run(); +- mgr.cancel(queue); +-} +- +-void Receiver::received(Message& msg) +-{ +- ++count; +- uint64_t receivedAt = current_time(); +- uint64_t sentAt = msg.getDeliveryProperties().getTimestamp(); +- +- stats.update(((double) (receivedAt - sentAt)) / TIME_MSEC); +- +- if (!opts.rate && count >= opts.count) { +- mgr.stop(); +- } +-} +- +-void Stats::update(double latency) +-{ +- Mutex::ScopedLock l(lock); +- count++; +- minLatency = std::min(minLatency, latency); +- maxLatency = std::max(maxLatency, latency); +- totalLatency += latency; +-} +- +-Stats::Stats() : count(0), minLatency(std::numeric_limits::max()), maxLatency(0), totalLatency(0) {} +- +-void Stats::print() +-{ +- static bool already_have_stats = false; +- uint value; +- +- if (opts.rate) +- value = opts.rate; +- else +- value = opts.count; +- Mutex::ScopedLock l(lock); +- double aux_avg = (totalLatency / count); +- if (!opts.cumulative) { +- if (!opts.csv) { +- if (count) { +- std::cout << "Latency(ms): min=" << minLatency << ", max=" << +- maxLatency << ", avg=" << aux_avg; +- } else { +- std::cout << "Stalled: no samples for interval"; +- } +- } else { +- if (count) { +- std::cout << value << "," << minLatency << "," << maxLatency << +- "," << aux_avg; +- } else { +- std::cout << value << "," << minLatency << "," << maxLatency << +- ", Stalled"; +- } +- } +- } else { +- if (count) { +- if (already_have_stats) { +- c_avg = (c_min + aux_avg) / 2; +- if (c_min > minLatency) c_min = minLatency; +- if (c_max < maxLatency) c_max = maxLatency; +- } else { +- c_avg = aux_avg; +- c_min = minLatency; +- c_max = maxLatency; +- already_have_stats = true; +- } +- std::cout << value << "," << c_min << "," << c_max << +- "," << c_avg; +- } else { +- std::cout << "Stalled: no samples for interval"; +- } +- } +-} +- +-void Stats::reset() +-{ +- Mutex::ScopedLock l(lock); +- count = 0; +- totalLatency = maxLatency = 0; +- minLatency = std::numeric_limits::max(); +-} +- +-Sender::Sender(const string& q, Receiver& receiver) : Client(q), receiver(receiver), data(generateData(opts.size)) {} +- +-void Sender::test() +-{ +- if (opts.rate) sendByRate(); +- else sendByCount(); +-} +- +-void Sender::sendByCount() +-{ +- Message msg(data, queue); +- if (opts.durable) { +- msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); +- } +- +- for (uint i = 0; i < opts.count; i++) { +- uint64_t sentAt(current_time()); +- msg.getDeliveryProperties().setTimestamp(sentAt); +- async(session).messageTransfer(arg::content=msg, arg::acceptMode=1); +- if (opts.sync) session.sync(); +- } +- session.sync(); +-} +- +-void Sender::sendByRate() +-{ +- Message msg(data, queue); +- if (opts.durable) { +- msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); +- } +- uint64_t interval = TIME_SEC/opts.rate; +- int64_t timeLimit = opts.timeLimit * TIME_SEC; +- uint64_t sent = 0, missedRate = 0; +- AbsTime start = now(); +- while (true) { +- AbsTime sentAt=now(); +- msg.getDeliveryProperties().setTimestamp(Duration(EPOCH, sentAt)); +- async(session).messageTransfer(arg::content=msg, arg::acceptMode=1); +- if (opts.sync) session.sync(); +- ++sent; +- AbsTime waitTill(start, sent*interval); +- Duration delay(sentAt, waitTill); +- if (delay < 0) +- ++missedRate; +- else +- sys::usleep(delay / TIME_USEC); +- if (timeLimit != 0 && Duration(start, now()) > timeLimit) { +- session.sync(); +- receiver.stop(); +- break; +- } +- } +-} +- +-string Sender::generateData(uint size) +-{ +- if (size < chars.length()) { +- return chars.substr(0, size); +- } +- std::string data; +- for (uint i = 0; i < (size / chars.length()); i++) { +- data += chars; +- } +- data += chars.substr(0, size % chars.length()); +- return data; +-} +- +- +-void Test::start() +-{ +- receiver.start(); +- begin = AbsTime(now()); +- sender.start(); +-} +- +-void Test::join() +-{ +- sender.join(); +- receiver.join(); +- AbsTime end = now(); +- Duration time(begin, end); +- double msecs(time / TIME_MSEC); +- if (!opts.csv) { +- std::cout << "Sent " << receiver.getCount() << " msgs through " << queue +- << " in " << msecs << "ms (" << (receiver.getCount() * 1000 / msecs) << " msgs/s) "; +- } +- stats.print(); +- std::cout << std::endl; +-} +- +-void Test::report() +-{ +- stats.print(); +- std::cout << std::endl; +- stats.reset(); +-} +- +-}} // namespace qpid::tests +- +-using namespace qpid::tests; +- +-int main(int argc, char** argv) +-{ +- try { +- opts.parse(argc, argv); +- if (opts.cumulative) +- opts.csv = true; +- +- Connection localConnection; +- AsyncSession session; +- +- boost::ptr_vector tests(opts.concurrentConnections); +- for (uint i = 0; i < opts.concurrentConnections; i++) { +- std::ostringstream out; +- out << opts.base << "-" << (i+1); +- tests.push_back(new Test(out.str())); +- } +- for (boost::ptr_vector::iterator i = tests.begin(); i != tests.end(); i++) { +- i->start(); +- } +- if (opts.rate && !opts.timeLimit) { +- while (true) { +- qpid::sys::usleep(opts.reportFrequency * 1000); +- //print latency report: +- for (boost::ptr_vector::iterator i = tests.begin(); i != tests.end(); i++) { +- i->report(); +- } +- } +- } else { +- for (boost::ptr_vector::iterator i = tests.begin(); i != tests.end(); i++) { +- i->join(); +- } +- } +- +- return 0; +- } catch(const std::exception& e) { +- std::cout << e.what() << std::endl; +- } +- return 1; +-} +diff --git a/qpid/cpp/src/tests/perftest.cpp b/qpid/cpp/src/tests/perftest.cpp +deleted file mode 100644 +index 88d9fd1..0000000 +--- a/qpid/cpp/src/tests/perftest.cpp ++++ /dev/null +@@ -1,741 +0,0 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +-#include "TestOptions.h" +- +-#include "qpid/client/AsyncSession.h" +-#include "qpid/client/SubscriptionManager.h" +-#include "qpid/client/Connection.h" +-#include "qpid/client/Completion.h" +-#include "qpid/client/Message.h" +-#include "qpid/framing/FieldTable.h" +-#include "qpid/sys/Time.h" +-#include "qpid/sys/Thread.h" +- +-#include +-#include +-#include +-#include +- +-#include +-#include +-#include +-#include +-#include +- +- +-using namespace std; +-using namespace qpid; +-using namespace client; +-using namespace sys; +-using boost::lexical_cast; +-using boost::bind; +- +-namespace qpid { +-namespace tests { +- +-enum Mode { SHARED, FANOUT, TOPIC }; +-const char* modeNames[] = { "shared", "fanout", "topic" }; +- +-// istream/ostream ops so Options can read/display Mode. +-istream& operator>>(istream& in, Mode& mode) { +- string s; +- in >> s; +- int i = find(modeNames, modeNames+3, s) - modeNames; +- if (i >= 3) throw Exception("Invalid mode: "+s); +- mode = Mode(i); +- return in; +-} +- +-ostream& operator<<(ostream& out, Mode mode) { +- return out << modeNames[mode]; +-} +- +- +-struct Opts : public TestOptions { +- +- // Actions +- bool setup, control, publish, subscribe; +- +- // Queue policy +- uint32_t queueMaxCount; +- uint64_t queueMaxSize; +- std::string baseName; +- bool queueDurable; +- +- // Publisher +- size_t pubs; +- size_t count ; +- size_t size; +- bool confirm; +- bool durable; +- bool uniqueData; +- bool syncPub; +- +- // Subscriber +- size_t subs; +- size_t ack; +- +- // General +- size_t qt; +- bool singleConnect; +- size_t iterations; +- Mode mode; +- bool summary; +- uint32_t intervalSub; +- uint32_t intervalPub; +- size_t tx; +- size_t txPub; +- size_t txSub; +- bool commitAsync; +- +- static const std::string helpText; +- +- Opts() : +- TestOptions(helpText), +- setup(false), control(false), publish(false), subscribe(false), baseName("perftest"), +- pubs(1), count(500000), size(1024), confirm(true), durable(false), uniqueData(false), syncPub(false), +- subs(1), ack(0), +- qt(1),singleConnect(false), iterations(1), mode(SHARED), summary(false), +- intervalSub(0), intervalPub(0), tx(0), txPub(0), txSub(0), commitAsync(false) +- { +- addOptions() +- ("setup", optValue(setup), "Create shared queues.") +- ("control", optValue(control), "Run test, print report.") +- ("publish", optValue(publish), "Publish messages.") +- ("subscribe", optValue(subscribe), "Subscribe for messages.") +- +- ("mode", optValue(mode, "shared|fanout|topic"), "Test mode." +- "\nshared: --qt queues, --npubs publishers and --nsubs subscribers per queue.\n" +- "\nfanout: --npubs publishers, --nsubs subscribers, fanout exchange." +- "\ntopic: --qt topics, --npubs publishers and --nsubs subscribers per topic.\n") +- +- ("npubs", optValue(pubs, "N"), "Create N publishers.") +- ("count", optValue(count, "N"), "Each publisher sends N messages.") +- ("size", optValue(size, "BYTES"), "Size of messages in bytes.") +- ("pub-confirm", optValue(confirm, "yes|no"), "Publisher use confirm-mode.") +- ("durable", optValue(durable, "yes|no"), "Publish messages as durable.") +- ("unique-data", optValue(uniqueData, "yes|no"), "Make data for each message unique.") +- ("sync-publish", optValue(syncPub, "yes|no"), "Wait for confirmation of each message before sending the next one.") +- +- ("nsubs", optValue(subs, "N"), "Create N subscribers.") +- ("sub-ack", optValue(ack, "N"), "N>0: Subscriber acks batches of N.\n" +- "N==0: Subscriber uses unconfirmed mode") +- +- ("qt", optValue(qt, "N"), "Create N queues or topics.") +- ("single-connection", optValue(singleConnect, "yes|no"), "Use one connection for multiple sessions.") +- +- ("iterations", optValue(iterations, "N"), "Desired number of iterations of the test.") +- ("summary,s", optValue(summary), "Summary output: pubs/sec subs/sec transfers/sec Mbytes/sec") +- +- ("queue-max-count", optValue(queueMaxCount, "N"), "queue policy: count to trigger 'flow to disk'") +- ("queue-max-size", optValue(queueMaxSize, "N"), "queue policy: accumulated size to trigger 'flow to disk'") +- ("base-name", optValue(baseName, "NAME"), "base name used for queues or topics") +- ("queue-durable", optValue(queueDurable, "N"), "Make queue durable (implied if durable set)") +- +- ("interval_sub", optValue(intervalSub, "ms"), ">=0 delay between msg consume") +- ("interval_pub", optValue(intervalPub, "ms"), ">=0 delay between msg publish") +- +- ("tx", optValue(tx, "N"), "if non-zero, the transaction batch size for publishing and consuming") +- ("pub-tx", optValue(txPub, "N"), "if non-zero, the transaction batch size for publishing") +- ("async-commit", optValue(commitAsync, "yes|no"), "Don't wait for completion of commit") +- ("sub-tx", optValue(txSub, "N"), "if non-zero, the transaction batch size for consuming"); +- } +- +- // Computed values +- size_t totalPubs; +- size_t totalSubs; +- size_t transfers; +- size_t subQuota; +- +- void parse(int argc, char** argv) { +- TestOptions::parse(argc, argv); +- switch (mode) { +- case SHARED: +- if (count % subs) { +- count += subs - (count % subs); +- cout << "WARNING: Adjusted --count to " << count +- << " the nearest multiple of --nsubs" << endl; +- } +- totalPubs = pubs*qt; +- totalSubs = subs*qt; +- subQuota = (pubs*count)/subs; +- break; +- case FANOUT: +- if (qt != 1) cerr << "WARNING: Fanout mode, ignoring --qt=" +- << qt << endl; +- qt=1; +- totalPubs = pubs; +- totalSubs = subs; +- subQuota = totalPubs*count; +- break; +- case TOPIC: +- totalPubs = pubs*qt; +- totalSubs = subs*qt; +- subQuota = pubs*count; +- break; +- } +- transfers=(totalPubs*count) + (totalSubs*subQuota); +- if (tx) { +- if (txPub) { +- cerr << "WARNING: Using overriden tx value for publishers: " << txPub << std::endl; +- } else { +- txPub = tx; +- } +- if (txSub) { +- cerr << "WARNING: Using overriden tx value for subscribers: " << txSub << std::endl; +- } else { +- txSub = tx; +- } +- } +- } +-}; +- +-const std::string Opts::helpText= +-"There are two ways to use perftest: single process or multi-process.\n\n" +-"If none of the --setup, --publish, --subscribe or --control options\n" +-"are given perftest will run a single-process test.\n" +-"For a multi-process test first run:\n" +-" perftest --setup \n" +-"and wait for it to complete. The remaining process should run concurrently::\n" +-"Run --npubs times: perftest --publish \n" +-"Run --nsubs times: perftest --subscribe \n" +-"Run once: perftest --control \n" +-"Note the must be identical for all processes.\n"; +- +-Opts opts; +-Connection globalConnection; +- +-std::string fqn(const std::string& name) +-{ +- ostringstream fqn; +- fqn << opts.baseName << "_" << name; +- return fqn.str(); +-} +- +-struct Client : public Runnable { +- Connection* connection; +- Connection localConnection; +- AsyncSession session; +- Thread thread; +- +- Client() { +- if (opts.singleConnect){ +- connection = &globalConnection; +- if (!globalConnection.isOpen()) opts.open(globalConnection); +- }else{ +- connection = &localConnection; +- opts.open(localConnection); +- } +- session = connection->newSession(); +- } +- +- ~Client() { +- try { +- if (connection->isOpen()) { +- session.close(); +- connection->close(); +- } +- } catch (const std::exception& e) { +- std::cerr << "Error in shutdown: " << e.what() << std::endl; +- } +- } +-}; +- +-struct Setup : public Client { +- +- void queueInit(string name, bool durable=false, const framing::FieldTable& settings=framing::FieldTable()) { +- session.queueDeclare(arg::queue=name, arg::durable=durable, arg::arguments=settings); +- session.queuePurge(arg::queue=name); +- session.sync(); +- } +- +- void run() { +- queueInit(fqn("pub_start")); +- queueInit(fqn("pub_done")); +- queueInit(fqn("sub_ready")); +- queueInit(fqn("sub_done")); +- if (opts.iterations > 1) queueInit(fqn("sub_iteration")); +- if (opts.mode==SHARED) { +- framing::FieldTable settings;//queue policy settings +- settings.setInt("qpid.max_count", opts.queueMaxCount); +- settings.setInt("qpid.max_size", opts.queueMaxSize); +- for (size_t i = 0; i < opts.qt; ++i) { +- ostringstream qname; +- qname << opts.baseName << i; +- queueInit(qname.str(), opts.durable || opts.queueDurable, settings); +- } +- } +- } +-}; +- +-void expect(string actual, string expect) { +- if (expect != actual) +- throw Exception("Expecting "+expect+" but received "+actual); +- +-} +- +-double secs(Duration d) { return double(d)/TIME_SEC; } +-double secs(AbsTime start, AbsTime finish) { +- return secs(Duration(start,finish)); +-} +- +- +-// Collect rates & print stats. +-class Stats { +- vector values; +- double sum; +- +- public: +- Stats() : sum(0) {} +- +- // Functor to collect rates. +- void operator()(const string& data) { +- try { +- double d=lexical_cast(data); +- values.push_back(d); +- sum += d; +- } catch (const std::exception&) { +- throw Exception("Bad report: "+data); +- } +- } +- +- double mean() const { +- return sum/values.size(); +- } +- +- double stdev() const { +- if (values.size() <= 1) return 0; +- double avg = mean(); +- double ssq = 0; +- for (vector::const_iterator i = values.begin(); +- i != values.end(); ++i) { +- double x=*i; +- x -= avg; +- ssq += x*x; +- } +- return sqrt(ssq/(values.size()-1)); +- } +- +- ostream& print(ostream& out) { +- ostream_iterator o(out, "\n"); +- copy(values.begin(), values.end(), o); +- out << "Average: " << mean(); +- if (values.size() > 1) +- out << " (std.dev. " << stdev() << ")"; +- return out << endl; +- } +-}; +- +- +-// Manage control queues, collect and print reports. +-struct Controller : public Client { +- +- SubscriptionManager subs; +- +- Controller() : subs(session) {} +- +- /** Process messages from queue by applying a functor. */ +- void process(size_t n, string queue, +- boost::function msgFn) +- { +- if (!opts.summary) +- cout << "Processing " << n << " messages from " +- << queue << " " << flush; +- LocalQueue lq; +- subs.setFlowControl(n, SubscriptionManager::UNLIMITED, false); +- subs.subscribe(lq, queue); +- for (size_t i = 0; i < n; ++i) { +- if (!opts.summary) cout << "." << flush; +- msgFn(lq.pop().getData()); +- } +- if (!opts.summary) cout << " done." << endl; +- } +- +- void process(size_t n, LocalQueue lq, string queue, +- boost::function msgFn) +- { +- session.messageFlow(queue, 0, n); +- if (!opts.summary) +- cout << "Processing " << n << " messages from " +- << queue << " " << flush; +- for (size_t i = 0; i < n; ++i) { +- if (!opts.summary) cout << "." << flush; +- msgFn(lq.pop().getData()); +- } +- if (!opts.summary) cout << " done." << endl; +- } +- +- void send(size_t n, string queue, string data) { +- if (!opts.summary) +- cout << "Sending " << data << " " << n << " times to " << queue +- << endl; +- Message msg(data, queue); +- for (size_t i = 0; i < n; ++i) +- session.messageTransfer(arg::content=msg, arg::acceptMode=1); +- } +- +- void run() { // Controller +- try { +- // Wait for subscribers to be ready. +- process(opts.totalSubs, fqn("sub_ready"), bind(expect, _1, "ready")); +- +- LocalQueue pubDone; +- LocalQueue subDone; +- subs.setFlowControl(0, SubscriptionManager::UNLIMITED, false); +- subs.subscribe(pubDone, fqn("pub_done")); +- subs.subscribe(subDone, fqn("sub_done")); +- +- double txrateTotal(0); +- double mbytesTotal(0); +- double pubRateTotal(0); +- double subRateTotal(0); +- +- for (size_t j = 0; j < opts.iterations; ++j) { +- AbsTime start=now(); +- send(opts.totalPubs, fqn("pub_start"), "start"); // Start publishers +- if (j) { +- send(opts.totalPubs, fqn("sub_iteration"), "next"); // Start subscribers on next iteration +- } +- +- Stats pubRates; +- Stats subRates; +- +- process(opts.totalPubs, pubDone, fqn("pub_done"), boost::ref(pubRates)); +- process(opts.totalSubs, subDone, fqn("sub_done"), boost::ref(subRates)); +- +- AbsTime end=now(); +- +- double time=secs(start, end); +- double txrate=opts.transfers/time; +- double mbytes=(txrate*opts.size)/(1024*1024); +- +- if (!opts.summary) { +- cout << endl << "Total " << opts.transfers << " transfers of " +- << opts.size << " bytes in " +- << time << " seconds." << endl; +- cout << endl << "Publish transfers/sec: " << endl; +- pubRates.print(cout); +- cout << endl << "Subscribe transfers/sec: " << endl; +- subRates.print(cout); +- cout << endl +- << "Total transfers/sec: " << txrate << endl +- << "Total Mbytes/sec: " << mbytes << endl; +- } +- else { +- cout << pubRates.mean() << "\t" +- << subRates.mean() << "\t" +- << txrate << "\t" +- << mbytes << endl; +- } +- +- txrateTotal += txrate; +- mbytesTotal += mbytes; +- pubRateTotal += pubRates.mean(); +- subRateTotal += subRates.mean(); +- } +- if (opts.iterations > 1) { +- cout << "Averages: "<< endl +- << (pubRateTotal / opts.iterations) << "\t" +- << (subRateTotal / opts.iterations) << "\t" +- << (txrateTotal / opts.iterations) << "\t" +- << (mbytesTotal / opts.iterations) << endl; +- } +- } +- catch (const std::exception& e) { +- cout << "Controller exception: " << e.what() << endl; +- } +- } +-}; +- +- +-struct PublishThread : public Client { +- string destination; +- string routingKey; +- +- PublishThread() {}; +- +- PublishThread(string key, string dest=string()) { +- destination=dest; +- routingKey=key; +- } +- +- void run() { // Publisher +- try { +- string data; +- size_t offset(0); +- if (opts.uniqueData) { +- offset = 5; +- data += "data:";//marker (requested for latency testing tool scripts) +- data += string(sizeof(size_t), 'X');//space for seq no +- data += session.getId().str(); +- if (opts.size > data.size()) { +- data += string(opts.size - data.size(), 'X'); +- } else if(opts.size < data.size()) { +- cout << "WARNING: Increased --size to " << data.size() +- << " to honour --unique-data" << endl; +- } +- } else { +- size_t msgSize=max(opts.size, sizeof(size_t)); +- data = string(msgSize, 'X'); +- } +- +- Message msg(data, routingKey); +- if (opts.durable) +- msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); +- +- +- if (opts.txPub){ +- session.txSelect(); +- } +- SubscriptionManager subs(session); +- LocalQueue lq; +- subs.setFlowControl(1, SubscriptionManager::UNLIMITED, true); +- subs.subscribe(lq, fqn("pub_start")); +- +- for (size_t j = 0; j < opts.iterations; ++j) { +- expect(lq.pop().getData(), "start"); +- AbsTime start=now(); +- for (size_t i=0; i(msg.getData()).replace(offset, sizeof(size_t), +- reinterpret_cast(&i), sizeof(size_t)); +- if (opts.syncPub) { +- sync(session).messageTransfer( +- arg::destination=destination, +- arg::content=msg, +- arg::acceptMode=1); +- } else { +- session.messageTransfer( +- arg::destination=destination, +- arg::content=msg, +- arg::acceptMode=1); +- } +- if (opts.txPub && ((i+1) % opts.txPub == 0)){ +- if (opts.commitAsync){ +- session.txCommit(); +- } else { +- sync(session).txCommit(); +- } +- } +- if (opts.intervalPub) +- qpid::sys::usleep(opts.intervalPub*1000); +- } +- if (opts.confirm) session.sync(); +- AbsTime end=now(); +- double time=secs(start,end); +- +- // Send result to controller. +- Message report(lexical_cast(opts.count/time), fqn("pub_done")); +- session.messageTransfer(arg::content=report, arg::acceptMode=1); +- if (opts.txPub){ +- sync(session).txCommit(); +- } +- } +- session.close(); +- } +- catch (const std::exception& e) { +- cout << "PublishThread exception: " << e.what() << endl; +- } +- } +-}; +- +-struct SubscribeThread : public Client { +- +- string queue; +- +- SubscribeThread() {} +- +- SubscribeThread(string q) { queue = q; } +- +- SubscribeThread(string key, string ex) { +- queue=session.getId().str(); // Unique name. +- session.queueDeclare(arg::queue=queue, +- arg::exclusive=true, +- arg::autoDelete=true, +- arg::durable=opts.durable); +- session.exchangeBind(arg::queue=queue, +- arg::exchange=ex, +- arg::bindingKey=key); +- } +- +- void verify(bool cond, const char* test, uint32_t expect, uint32_t actual) { +- if (!cond) { +- Message error( +- QPID_MSG("Sequence error: expected n" << test << expect << " but got " << actual), +- "sub_done"); +- session.messageTransfer(arg::content=error, arg::acceptMode=1); +- throw Exception(error.getData()); +- } +- } +- +- void run() { // Subscribe +- try { +- if (opts.txSub) sync(session).txSelect(); +- SubscriptionManager subs(session); +- SubscriptionSettings settings; +- settings.autoAck = opts.txSub ? opts.txSub : opts.ack; +- settings.acceptMode = (opts.txSub || opts.ack ? ACCEPT_MODE_EXPLICIT : ACCEPT_MODE_NONE); +- settings.flowControl = FlowControl::messageCredit(opts.subQuota); +- LocalQueue lq; +- Subscription subscription = subs.subscribe(lq, queue, settings); +- // Notify controller we are ready. +- session.messageTransfer(arg::content=Message("ready", fqn("sub_ready")), arg::acceptMode=1); +- if (opts.txSub) { +- if (opts.commitAsync) session.txCommit(); +- else sync(session).txCommit(); +- } +- +- LocalQueue iterationControl; +- if (opts.iterations > 1) { +- subs.subscribe(iterationControl, fqn("sub_iteration"), SubscriptionSettings(FlowControl::messageCredit(0))); +- } +- +- for (size_t j = 0; j < opts.iterations; ++j) { +- if (j > 0) { +- //need to wait here until all subs are done +- session.messageFlow(fqn("sub_iteration"), 0, 1); +- iterationControl.pop(); +- +- //need to allocate some more credit for subscription +- session.messageFlow(queue, 0, opts.subQuota); +- } +- Message msg; +- AbsTime start=now(); +- size_t expect=0; +- for (size_t i = 0; i < opts.subQuota; ++i) { +- msg=lq.pop(); +- if (opts.txSub && ((i+1) % opts.txSub == 0)) { +- if (opts.commitAsync) session.txCommit(); +- else sync(session).txCommit(); +- } +- if (opts.intervalSub) +- qpid::sys::usleep(opts.intervalSub*1000); +- // TODO aconway 2007-11-23: check message order for. +- // multiple publishers. Need an array of counters, +- // one per publisher and a publisher ID in the +- // message. Careful not to introduce a lot of overhead +- // here, e.g. no std::map, std::string etc. +- // +- // For now verify order only for a single publisher. +- size_t offset = opts.uniqueData ? 5 /*marker is 'data:'*/ : 0; +- size_t n = *reinterpret_cast(msg.getData().data() + offset); +- if (opts.pubs == 1) { +- if (opts.subs == 1 || opts.mode == FANOUT) verify(n==expect, "==", expect, n); +- else verify(n>=expect, ">=", expect, n); +- expect = n+1; +- } +- } +- if (opts.txSub || opts.ack) +- subscription.accept(subscription.getUnaccepted()); +- if (opts.txSub) { +- if (opts.commitAsync) session.txCommit(); +- else sync(session).txCommit(); +- } +- AbsTime end=now(); +- +- // Report to publisher. +- Message result(lexical_cast(opts.subQuota/secs(start,end)), +- fqn("sub_done")); +- session.messageTransfer(arg::content=result, arg::acceptMode=1); +- if (opts.txSub) sync(session).txCommit(); +- } +- session.close(); +- } +- catch (const std::exception& e) { +- cout << "SubscribeThread exception: " << e.what() << endl; +- } +- } +-}; +- +-}} // namespace qpid::tests +- +-using namespace qpid::tests; +- +-int main(int argc, char** argv) { +- int exitCode = 0; +- boost::ptr_vector subs(opts.subs); +- boost::ptr_vector pubs(opts.pubs); +- +- try { +- opts.parse(argc, argv); +- +- string exchange; +- switch (opts.mode) { +- case FANOUT: exchange="amq.fanout"; break; +- case TOPIC: exchange="amq.topic"; break; +- case SHARED: break; +- } +- +- bool singleProcess= +- (!opts.setup && !opts.control && !opts.publish && !opts.subscribe); +- if (singleProcess) +- opts.setup = opts.control = opts.publish = opts.subscribe = true; +- +- if (opts.setup) Setup().run(); // Set up queues +- +- // Start pubs/subs for each queue/topic. +- for (size_t i = 0; i < opts.qt; ++i) { +- ostringstream key; +- key << opts.baseName << i; // Queue or topic name. +- if (opts.publish) { +- size_t n = singleProcess ? opts.pubs : 1; +- for (size_t j = 0; j < n; ++j) { +- pubs.push_back(new PublishThread(key.str(), exchange)); +- pubs.back().thread=Thread(pubs.back()); +- } +- } +- if (opts.subscribe) { +- size_t n = singleProcess ? opts.subs : 1; +- for (size_t j = 0; j < n; ++j) { +- if (opts.mode==SHARED) +- subs.push_back(new SubscribeThread(key.str())); +- else +- subs.push_back(new SubscribeThread(key.str(),exchange)); +- subs.back().thread=Thread(subs.back()); +- } +- } +- } +- +- if (opts.control) Controller().run(); +- } +- catch (const std::exception& e) { +- cout << endl << e.what() << endl; +- exitCode = 1; +- } +- +- // Wait for started threads. +- if (opts.publish) { +- for (boost::ptr_vector::iterator i=pubs.begin(); +- i != pubs.end(); +- ++i) +- i->thread.join(); +- } +- +- if (opts.subscribe) { +- for (boost::ptr_vector::iterator i=subs.begin(); +- i != subs.end(); +- ++i) +- i->thread.join(); +- } +- return exitCode; +-} +diff --git a/qpid/cpp/src/tests/qpid-client-test.cpp b/qpid/cpp/src/tests/qpid-client-test.cpp +new file mode 100644 +index 0000000..2f5e8e5 +--- /dev/null ++++ b/qpid/cpp/src/tests/qpid-client-test.cpp +@@ -0,0 +1,139 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++/** ++ * This file provides a simple test (and example) of basic ++ * functionality including declaring an exchange and a queue, binding ++ * these together, publishing a message and receiving that message ++ * asynchronously. ++ */ ++ ++#include ++ ++#include "TestOptions.h" ++#include "qpid/client/Connection.h" ++#include "qpid/client/Message.h" ++#include "qpid/client/Session.h" ++#include "qpid/client/SubscriptionManager.h" ++ ++ ++using namespace qpid; ++using namespace qpid::client; ++using namespace qpid::framing; ++using std::string; ++ ++namespace qpid { ++namespace tests { ++ ++struct Args : public TestOptions { ++ uint msgSize; ++ bool verbose; ++ ++ Args() : TestOptions("Simple test of Qpid c++ client; sends and receives a single message."), msgSize(26) ++ { ++ addOptions() ++ ("size", optValue(msgSize, "N"), "message size") ++ ("verbose", optValue(verbose), "print out some status messages"); ++ } ++}; ++ ++const std::string chars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); ++ ++std::string generateData(uint size) ++{ ++ if (size < chars.length()) { ++ return chars.substr(0, size); ++ } ++ std::string data; ++ for (uint i = 0; i < (size / chars.length()); i++) { ++ data += chars; ++ } ++ data += chars.substr(0, size % chars.length()); ++ return data; ++} ++ ++void print(const std::string& text, const Message& msg) ++{ ++ std::cout << text; ++ if (msg.getData().size() > 16) { ++ std::cout << msg.getData().substr(0, 16) << "..."; ++ } else { ++ std::cout << msg.getData(); ++ } ++ std::cout << std::endl; ++} ++ ++}} // namespace qpid::tests ++ ++using namespace qpid::tests; ++ ++int main(int argc, char** argv) ++{ ++ try { ++ Args opts; ++ opts.parse(argc, argv); ++ ++ //Connect to the broker: ++ Connection connection; ++ opts.open(connection); ++ if (opts.verbose) std::cout << "Opened connection." << std::endl; ++ ++ //Create and open a session on the connection through which ++ //most functionality is exposed: ++ Session session = connection.newSession(); ++ if (opts.verbose) std::cout << "Opened session." << std::endl; ++ ++ ++ //'declare' the exchange and the queue, which will create them ++ //as they don't exist ++ session.exchangeDeclare(arg::exchange="MyExchange", arg::type="direct"); ++ if (opts.verbose) std::cout << "Declared exchange." << std::endl; ++ session.queueDeclare(arg::queue="MyQueue", arg::autoDelete=true, arg::exclusive=true); ++ if (opts.verbose) std::cout << "Declared queue." << std::endl; ++ ++ //now bind the queue to the exchange ++ session.exchangeBind(arg::exchange="MyExchange", arg::queue="MyQueue", arg::bindingKey="MyKey"); ++ if (opts.verbose) std::cout << "Bound queue to exchange." << std::endl; ++ ++ //create and send a message to the exchange using the routing ++ //key we bound our queue with: ++ Message msgOut(generateData(opts.msgSize)); ++ msgOut.getDeliveryProperties().setRoutingKey("MyKey"); ++ session.messageTransfer(arg::destination="MyExchange", arg::content=msgOut, arg::acceptMode=1); ++ if (opts.verbose) print("Published message: ", msgOut); ++ ++ // Using the SubscriptionManager, get the message from the queue. ++ SubscriptionManager subs(session); ++ Message msgIn = subs.get("MyQueue"); ++ if (msgIn.getData() == msgOut.getData()) ++ if (opts.verbose) std::cout << "Received the exepected message." << std::endl; ++ ++ //close the session & connection ++ session.close(); ++ if (opts.verbose) std::cout << "Closed session." << std::endl; ++ connection.close(); ++ if (opts.verbose) std::cout << "Closed connection." << std::endl; ++ return 0; ++ } catch(const std::exception& e) { ++ std::cout << e.what() << std::endl; ++ } ++ return 1; ++} +diff --git a/qpid/cpp/src/tests/qpid-latency-test.cpp b/qpid/cpp/src/tests/qpid-latency-test.cpp +new file mode 100644 +index 0000000..20eb456 +--- /dev/null ++++ b/qpid/cpp/src/tests/qpid-latency-test.cpp +@@ -0,0 +1,469 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "TestOptions.h" ++#include "qpid/sys/Thread.h" ++#include "qpid/client/Connection.h" ++#include "qpid/client/Message.h" ++#include "qpid/client/AsyncSession.h" ++#include "qpid/client/SubscriptionManager.h" ++#include "qpid/sys/Time.h" ++ ++using namespace qpid; ++using namespace qpid::client; ++using namespace qpid::sys; ++using std::string; ++ ++namespace qpid { ++namespace tests { ++ ++typedef std::vector StringSet; ++ ++struct Args : public qpid::TestOptions { ++ uint size; ++ uint count; ++ uint rate; ++ bool sync; ++ uint reportFrequency; ++ uint timeLimit; ++ uint concurrentConnections; ++ uint prefetch; ++ uint ack; ++ bool cumulative; ++ bool csv; ++ bool durable; ++ string base; ++ bool singleConnect; ++ ++ Args() : size(256), count(1000), rate(0), reportFrequency(1000), ++ timeLimit(0), concurrentConnections(1), ++ prefetch(100), ack(0), ++ durable(false), base("latency-test"), singleConnect(false) ++ ++ { ++ addOptions() ++ ++ ("size", optValue(size, "N"), "message size") ++ ("concurrentTests", optValue(concurrentConnections, "N"), "number of concurrent test setups, will create another publisher,\ ++ subcriber, queue, and connections") ++ ("single-connection", optValue(singleConnect, "yes|no"), "Use one connection for multiple sessions.") ++ ("count", optValue(count, "N"), "number of messages to send") ++ ("rate", optValue(rate, "N"), "target message rate (causes count to be ignored)") ++ ("sync", optValue(sync), "send messages synchronously") ++ ("report-frequency", optValue(reportFrequency, "N"), ++ "number of milliseconds to wait between reports (ignored unless rate specified)") ++ ("time-limit", optValue(timeLimit, "N"), ++ "test duration, in seconds") ++ ("prefetch", optValue(prefetch, "N"), "prefetch count (0 implies no flow control, and no acking)") ++ ("ack", optValue(ack, "N"), "Ack frequency in messages (defaults to half the prefetch value)") ++ ("durable", optValue(durable, "yes|no"), "use durable messages") ++ ("csv", optValue(csv), "print stats in csv format (rate,min,max,avg)") ++ ("cumulative", optValue(cumulative), "cumulative stats in csv format") ++ ("queue-base-name", optValue(base, ""), "base name for queues"); ++ } ++}; ++ ++const std::string chars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); ++ ++Args opts; ++double c_min, c_avg, c_max; ++Connection globalConnection; ++ ++uint64_t current_time() ++{ ++ Duration t(EPOCH, now()); ++ return t; ++} ++ ++struct Stats ++{ ++ Mutex lock; ++ uint count; ++ double minLatency; ++ double maxLatency; ++ double totalLatency; ++ ++ Stats(); ++ void update(double l); ++ void print(); ++ void reset(); ++}; ++ ++class Client : public Runnable ++{ ++protected: ++ Connection* connection; ++ Connection localConnection; ++ AsyncSession session; ++ Thread thread; ++ string queue; ++ ++public: ++ Client(const string& q); ++ virtual ~Client(); ++ ++ void start(); ++ void join(); ++ void run(); ++ virtual void test() = 0; ++}; ++ ++class Receiver : public Client, public MessageListener ++{ ++ SubscriptionManager mgr; ++ uint count; ++ Stats& stats; ++ ++public: ++ Receiver(const string& queue, Stats& stats); ++ void test(); ++ void received(Message& msg); ++ Stats getStats(); ++ uint getCount() { return count; } ++ void stop() { mgr.stop(); mgr.cancel(queue); } ++}; ++ ++ ++class Sender : public Client ++{ ++ string generateData(uint size); ++ void sendByRate(); ++ void sendByCount(); ++ Receiver& receiver; ++ const string data; ++ ++public: ++ Sender(const string& queue, Receiver& receiver); ++ void test(); ++}; ++ ++ ++class Test ++{ ++ const string queue; ++ Stats stats; ++ Receiver receiver; ++ Sender sender; ++ AbsTime begin; ++ ++public: ++ Test(const string& q) : queue(q), receiver(queue, stats), sender(queue, receiver), begin(now()) {} ++ void start(); ++ void join(); ++ void report(); ++}; ++ ++ ++Client::Client(const string& q) : queue(q) ++{ ++ if (opts.singleConnect){ ++ connection = &globalConnection; ++ if (!globalConnection.isOpen()) opts.open(globalConnection); ++ }else{ ++ connection = &localConnection; ++ opts.open(localConnection); ++ } ++ session = connection->newSession(); ++} ++ ++void Client::start() ++{ ++ thread = Thread(this); ++} ++ ++void Client::join() ++{ ++ thread.join(); ++} ++ ++void Client::run() ++{ ++ try{ ++ test(); ++ } catch(const std::exception& e) { ++ std::cout << "Error in receiver: " << e.what() << std::endl; ++ } ++} ++ ++Client::~Client() ++{ ++ try{ ++ session.close(); ++ connection->close(); ++ } catch(const std::exception& e) { ++ std::cout << "Error in receiver: " << e.what() << std::endl; ++ } ++} ++ ++Receiver::Receiver(const string& q, Stats& s) : Client(q), mgr(session), count(0), stats(s) ++{ ++ session.queueDeclare(arg::queue=queue, arg::durable=opts.durable, arg::autoDelete=true); ++ uint msgCount = session.queueQuery(arg::queue=queue).get().getMessageCount(); ++ if (msgCount) { ++ std::cout << "Warning: found " << msgCount << " msgs on " << queue << ". Purging..." << std::endl; ++ session.queuePurge(arg::queue=queue); ++ session.sync(); ++ } ++ SubscriptionSettings settings; ++ if (opts.prefetch) { ++ settings.autoAck = (opts.ack ? opts.ack : (opts.prefetch / 2)); ++ settings.flowControl = FlowControl::messageWindow(opts.prefetch); ++ } else { ++ settings.acceptMode = ACCEPT_MODE_NONE; ++ settings.flowControl = FlowControl::unlimited(); ++ } ++ mgr.subscribe(*this, queue, settings); ++} ++ ++void Receiver::test() ++{ ++ mgr.run(); ++ mgr.cancel(queue); ++} ++ ++void Receiver::received(Message& msg) ++{ ++ ++count; ++ uint64_t receivedAt = current_time(); ++ uint64_t sentAt = msg.getDeliveryProperties().getTimestamp(); ++ ++ stats.update(((double) (receivedAt - sentAt)) / TIME_MSEC); ++ ++ if (!opts.rate && count >= opts.count) { ++ mgr.stop(); ++ } ++} ++ ++void Stats::update(double latency) ++{ ++ Mutex::ScopedLock l(lock); ++ count++; ++ minLatency = std::min(minLatency, latency); ++ maxLatency = std::max(maxLatency, latency); ++ totalLatency += latency; ++} ++ ++Stats::Stats() : count(0), minLatency(std::numeric_limits::max()), maxLatency(0), totalLatency(0) {} ++ ++void Stats::print() ++{ ++ static bool already_have_stats = false; ++ uint value; ++ ++ if (opts.rate) ++ value = opts.rate; ++ else ++ value = opts.count; ++ Mutex::ScopedLock l(lock); ++ double aux_avg = (totalLatency / count); ++ if (!opts.cumulative) { ++ if (!opts.csv) { ++ if (count) { ++ std::cout << "Latency(ms): min=" << minLatency << ", max=" << ++ maxLatency << ", avg=" << aux_avg; ++ } else { ++ std::cout << "Stalled: no samples for interval"; ++ } ++ } else { ++ if (count) { ++ std::cout << value << "," << minLatency << "," << maxLatency << ++ "," << aux_avg; ++ } else { ++ std::cout << value << "," << minLatency << "," << maxLatency << ++ ", Stalled"; ++ } ++ } ++ } else { ++ if (count) { ++ if (already_have_stats) { ++ c_avg = (c_min + aux_avg) / 2; ++ if (c_min > minLatency) c_min = minLatency; ++ if (c_max < maxLatency) c_max = maxLatency; ++ } else { ++ c_avg = aux_avg; ++ c_min = minLatency; ++ c_max = maxLatency; ++ already_have_stats = true; ++ } ++ std::cout << value << "," << c_min << "," << c_max << ++ "," << c_avg; ++ } else { ++ std::cout << "Stalled: no samples for interval"; ++ } ++ } ++} ++ ++void Stats::reset() ++{ ++ Mutex::ScopedLock l(lock); ++ count = 0; ++ totalLatency = maxLatency = 0; ++ minLatency = std::numeric_limits::max(); ++} ++ ++Sender::Sender(const string& q, Receiver& receiver) : Client(q), receiver(receiver), data(generateData(opts.size)) {} ++ ++void Sender::test() ++{ ++ if (opts.rate) sendByRate(); ++ else sendByCount(); ++} ++ ++void Sender::sendByCount() ++{ ++ Message msg(data, queue); ++ if (opts.durable) { ++ msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); ++ } ++ ++ for (uint i = 0; i < opts.count; i++) { ++ uint64_t sentAt(current_time()); ++ msg.getDeliveryProperties().setTimestamp(sentAt); ++ async(session).messageTransfer(arg::content=msg, arg::acceptMode=1); ++ if (opts.sync) session.sync(); ++ } ++ session.sync(); ++} ++ ++void Sender::sendByRate() ++{ ++ Message msg(data, queue); ++ if (opts.durable) { ++ msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); ++ } ++ uint64_t interval = TIME_SEC/opts.rate; ++ int64_t timeLimit = opts.timeLimit * TIME_SEC; ++ uint64_t sent = 0, missedRate = 0; ++ AbsTime start = now(); ++ while (true) { ++ AbsTime sentAt=now(); ++ msg.getDeliveryProperties().setTimestamp(Duration(EPOCH, sentAt)); ++ async(session).messageTransfer(arg::content=msg, arg::acceptMode=1); ++ if (opts.sync) session.sync(); ++ ++sent; ++ AbsTime waitTill(start, sent*interval); ++ Duration delay(sentAt, waitTill); ++ if (delay < 0) ++ ++missedRate; ++ else ++ sys::usleep(delay / TIME_USEC); ++ if (timeLimit != 0 && Duration(start, now()) > timeLimit) { ++ session.sync(); ++ receiver.stop(); ++ break; ++ } ++ } ++} ++ ++string Sender::generateData(uint size) ++{ ++ if (size < chars.length()) { ++ return chars.substr(0, size); ++ } ++ std::string data; ++ for (uint i = 0; i < (size / chars.length()); i++) { ++ data += chars; ++ } ++ data += chars.substr(0, size % chars.length()); ++ return data; ++} ++ ++ ++void Test::start() ++{ ++ receiver.start(); ++ begin = AbsTime(now()); ++ sender.start(); ++} ++ ++void Test::join() ++{ ++ sender.join(); ++ receiver.join(); ++ AbsTime end = now(); ++ Duration time(begin, end); ++ double msecs(time / TIME_MSEC); ++ if (!opts.csv) { ++ std::cout << "Sent " << receiver.getCount() << " msgs through " << queue ++ << " in " << msecs << "ms (" << (receiver.getCount() * 1000 / msecs) << " msgs/s) "; ++ } ++ stats.print(); ++ std::cout << std::endl; ++} ++ ++void Test::report() ++{ ++ stats.print(); ++ std::cout << std::endl; ++ stats.reset(); ++} ++ ++}} // namespace qpid::tests ++ ++using namespace qpid::tests; ++ ++int main(int argc, char** argv) ++{ ++ try { ++ opts.parse(argc, argv); ++ if (opts.cumulative) ++ opts.csv = true; ++ ++ Connection localConnection; ++ AsyncSession session; ++ ++ boost::ptr_vector tests(opts.concurrentConnections); ++ for (uint i = 0; i < opts.concurrentConnections; i++) { ++ std::ostringstream out; ++ out << opts.base << "-" << (i+1); ++ tests.push_back(new Test(out.str())); ++ } ++ for (boost::ptr_vector::iterator i = tests.begin(); i != tests.end(); i++) { ++ i->start(); ++ } ++ if (opts.rate && !opts.timeLimit) { ++ while (true) { ++ qpid::sys::usleep(opts.reportFrequency * 1000); ++ //print latency report: ++ for (boost::ptr_vector::iterator i = tests.begin(); i != tests.end(); i++) { ++ i->report(); ++ } ++ } ++ } else { ++ for (boost::ptr_vector::iterator i = tests.begin(); i != tests.end(); i++) { ++ i->join(); ++ } ++ } ++ ++ return 0; ++ } catch(const std::exception& e) { ++ std::cout << e.what() << std::endl; ++ } ++ return 1; ++} +diff --git a/qpid/cpp/src/tests/qpid-perftest.cpp b/qpid/cpp/src/tests/qpid-perftest.cpp +new file mode 100644 +index 0000000..7058851 +--- /dev/null ++++ b/qpid/cpp/src/tests/qpid-perftest.cpp +@@ -0,0 +1,741 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include "TestOptions.h" ++ ++#include "qpid/client/AsyncSession.h" ++#include "qpid/client/SubscriptionManager.h" ++#include "qpid/client/Connection.h" ++#include "qpid/client/Completion.h" ++#include "qpid/client/Message.h" ++#include "qpid/framing/FieldTable.h" ++#include "qpid/sys/Time.h" ++#include "qpid/sys/Thread.h" ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++using namespace std; ++using namespace qpid; ++using namespace client; ++using namespace sys; ++using boost::lexical_cast; ++using boost::bind; ++ ++namespace qpid { ++namespace tests { ++ ++enum Mode { SHARED, FANOUT, TOPIC }; ++const char* modeNames[] = { "shared", "fanout", "topic" }; ++ ++// istream/ostream ops so Options can read/display Mode. ++istream& operator>>(istream& in, Mode& mode) { ++ string s; ++ in >> s; ++ int i = find(modeNames, modeNames+3, s) - modeNames; ++ if (i >= 3) throw Exception("Invalid mode: "+s); ++ mode = Mode(i); ++ return in; ++} ++ ++ostream& operator<<(ostream& out, Mode mode) { ++ return out << modeNames[mode]; ++} ++ ++ ++struct Opts : public TestOptions { ++ ++ // Actions ++ bool setup, control, publish, subscribe; ++ ++ // Queue policy ++ uint32_t queueMaxCount; ++ uint64_t queueMaxSize; ++ std::string baseName; ++ bool queueDurable; ++ ++ // Publisher ++ size_t pubs; ++ size_t count ; ++ size_t size; ++ bool confirm; ++ bool durable; ++ bool uniqueData; ++ bool syncPub; ++ ++ // Subscriber ++ size_t subs; ++ size_t ack; ++ ++ // General ++ size_t qt; ++ bool singleConnect; ++ size_t iterations; ++ Mode mode; ++ bool summary; ++ uint32_t intervalSub; ++ uint32_t intervalPub; ++ size_t tx; ++ size_t txPub; ++ size_t txSub; ++ bool commitAsync; ++ ++ static const std::string helpText; ++ ++ Opts() : ++ TestOptions(helpText), ++ setup(false), control(false), publish(false), subscribe(false), baseName("qpid-perftest"), ++ pubs(1), count(500000), size(1024), confirm(true), durable(false), uniqueData(false), syncPub(false), ++ subs(1), ack(0), ++ qt(1),singleConnect(false), iterations(1), mode(SHARED), summary(false), ++ intervalSub(0), intervalPub(0), tx(0), txPub(0), txSub(0), commitAsync(false) ++ { ++ addOptions() ++ ("setup", optValue(setup), "Create shared queues.") ++ ("control", optValue(control), "Run test, print report.") ++ ("publish", optValue(publish), "Publish messages.") ++ ("subscribe", optValue(subscribe), "Subscribe for messages.") ++ ++ ("mode", optValue(mode, "shared|fanout|topic"), "Test mode." ++ "\nshared: --qt queues, --npubs publishers and --nsubs subscribers per queue.\n" ++ "\nfanout: --npubs publishers, --nsubs subscribers, fanout exchange." ++ "\ntopic: --qt topics, --npubs publishers and --nsubs subscribers per topic.\n") ++ ++ ("npubs", optValue(pubs, "N"), "Create N publishers.") ++ ("count", optValue(count, "N"), "Each publisher sends N messages.") ++ ("size", optValue(size, "BYTES"), "Size of messages in bytes.") ++ ("pub-confirm", optValue(confirm, "yes|no"), "Publisher use confirm-mode.") ++ ("durable", optValue(durable, "yes|no"), "Publish messages as durable.") ++ ("unique-data", optValue(uniqueData, "yes|no"), "Make data for each message unique.") ++ ("sync-publish", optValue(syncPub, "yes|no"), "Wait for confirmation of each message before sending the next one.") ++ ++ ("nsubs", optValue(subs, "N"), "Create N subscribers.") ++ ("sub-ack", optValue(ack, "N"), "N>0: Subscriber acks batches of N.\n" ++ "N==0: Subscriber uses unconfirmed mode") ++ ++ ("qt", optValue(qt, "N"), "Create N queues or topics.") ++ ("single-connection", optValue(singleConnect, "yes|no"), "Use one connection for multiple sessions.") ++ ++ ("iterations", optValue(iterations, "N"), "Desired number of iterations of the test.") ++ ("summary,s", optValue(summary), "Summary output: pubs/sec subs/sec transfers/sec Mbytes/sec") ++ ++ ("queue-max-count", optValue(queueMaxCount, "N"), "queue policy: count to trigger 'flow to disk'") ++ ("queue-max-size", optValue(queueMaxSize, "N"), "queue policy: accumulated size to trigger 'flow to disk'") ++ ("base-name", optValue(baseName, "NAME"), "base name used for queues or topics") ++ ("queue-durable", optValue(queueDurable, "N"), "Make queue durable (implied if durable set)") ++ ++ ("interval_sub", optValue(intervalSub, "ms"), ">=0 delay between msg consume") ++ ("interval_pub", optValue(intervalPub, "ms"), ">=0 delay between msg publish") ++ ++ ("tx", optValue(tx, "N"), "if non-zero, the transaction batch size for publishing and consuming") ++ ("pub-tx", optValue(txPub, "N"), "if non-zero, the transaction batch size for publishing") ++ ("async-commit", optValue(commitAsync, "yes|no"), "Don't wait for completion of commit") ++ ("sub-tx", optValue(txSub, "N"), "if non-zero, the transaction batch size for consuming"); ++ } ++ ++ // Computed values ++ size_t totalPubs; ++ size_t totalSubs; ++ size_t transfers; ++ size_t subQuota; ++ ++ void parse(int argc, char** argv) { ++ TestOptions::parse(argc, argv); ++ switch (mode) { ++ case SHARED: ++ if (count % subs) { ++ count += subs - (count % subs); ++ cout << "WARNING: Adjusted --count to " << count ++ << " the nearest multiple of --nsubs" << endl; ++ } ++ totalPubs = pubs*qt; ++ totalSubs = subs*qt; ++ subQuota = (pubs*count)/subs; ++ break; ++ case FANOUT: ++ if (qt != 1) cerr << "WARNING: Fanout mode, ignoring --qt=" ++ << qt << endl; ++ qt=1; ++ totalPubs = pubs; ++ totalSubs = subs; ++ subQuota = totalPubs*count; ++ break; ++ case TOPIC: ++ totalPubs = pubs*qt; ++ totalSubs = subs*qt; ++ subQuota = pubs*count; ++ break; ++ } ++ transfers=(totalPubs*count) + (totalSubs*subQuota); ++ if (tx) { ++ if (txPub) { ++ cerr << "WARNING: Using overriden tx value for publishers: " << txPub << std::endl; ++ } else { ++ txPub = tx; ++ } ++ if (txSub) { ++ cerr << "WARNING: Using overriden tx value for subscribers: " << txSub << std::endl; ++ } else { ++ txSub = tx; ++ } ++ } ++ } ++}; ++ ++const std::string Opts::helpText= ++"There are two ways to use qpid-perftest: single process or multi-process.\n\n" ++"If none of the --setup, --publish, --subscribe or --control options\n" ++"are given qpid-perftest will run a single-process test.\n" ++"For a multi-process test first run:\n" ++" qpid-perftest --setup \n" ++"and wait for it to complete. The remaining process should run concurrently::\n" ++"Run --npubs times: pqid-perftest --publish \n" ++"Run --nsubs times: qpid-perftest --subscribe \n" ++"Run once: qpid-perftest --control \n" ++"Note the must be identical for all processes.\n"; ++ ++Opts opts; ++Connection globalConnection; ++ ++std::string fqn(const std::string& name) ++{ ++ ostringstream fqn; ++ fqn << opts.baseName << "_" << name; ++ return fqn.str(); ++} ++ ++struct Client : public Runnable { ++ Connection* connection; ++ Connection localConnection; ++ AsyncSession session; ++ Thread thread; ++ ++ Client() { ++ if (opts.singleConnect){ ++ connection = &globalConnection; ++ if (!globalConnection.isOpen()) opts.open(globalConnection); ++ }else{ ++ connection = &localConnection; ++ opts.open(localConnection); ++ } ++ session = connection->newSession(); ++ } ++ ++ ~Client() { ++ try { ++ if (connection->isOpen()) { ++ session.close(); ++ connection->close(); ++ } ++ } catch (const std::exception& e) { ++ std::cerr << "Error in shutdown: " << e.what() << std::endl; ++ } ++ } ++}; ++ ++struct Setup : public Client { ++ ++ void queueInit(string name, bool durable=false, const framing::FieldTable& settings=framing::FieldTable()) { ++ session.queueDeclare(arg::queue=name, arg::durable=durable, arg::arguments=settings); ++ session.queuePurge(arg::queue=name); ++ session.sync(); ++ } ++ ++ void run() { ++ queueInit(fqn("pub_start")); ++ queueInit(fqn("pub_done")); ++ queueInit(fqn("sub_ready")); ++ queueInit(fqn("sub_done")); ++ if (opts.iterations > 1) queueInit(fqn("sub_iteration")); ++ if (opts.mode==SHARED) { ++ framing::FieldTable settings;//queue policy settings ++ settings.setInt("qpid.max_count", opts.queueMaxCount); ++ settings.setInt("qpid.max_size", opts.queueMaxSize); ++ for (size_t i = 0; i < opts.qt; ++i) { ++ ostringstream qname; ++ qname << opts.baseName << i; ++ queueInit(qname.str(), opts.durable || opts.queueDurable, settings); ++ } ++ } ++ } ++}; ++ ++void expect(string actual, string expect) { ++ if (expect != actual) ++ throw Exception("Expecting "+expect+" but received "+actual); ++ ++} ++ ++double secs(Duration d) { return double(d)/TIME_SEC; } ++double secs(AbsTime start, AbsTime finish) { ++ return secs(Duration(start,finish)); ++} ++ ++ ++// Collect rates & print stats. ++class Stats { ++ vector values; ++ double sum; ++ ++ public: ++ Stats() : sum(0) {} ++ ++ // Functor to collect rates. ++ void operator()(const string& data) { ++ try { ++ double d=lexical_cast(data); ++ values.push_back(d); ++ sum += d; ++ } catch (const std::exception&) { ++ throw Exception("Bad report: "+data); ++ } ++ } ++ ++ double mean() const { ++ return sum/values.size(); ++ } ++ ++ double stdev() const { ++ if (values.size() <= 1) return 0; ++ double avg = mean(); ++ double ssq = 0; ++ for (vector::const_iterator i = values.begin(); ++ i != values.end(); ++i) { ++ double x=*i; ++ x -= avg; ++ ssq += x*x; ++ } ++ return sqrt(ssq/(values.size()-1)); ++ } ++ ++ ostream& print(ostream& out) { ++ ostream_iterator o(out, "\n"); ++ copy(values.begin(), values.end(), o); ++ out << "Average: " << mean(); ++ if (values.size() > 1) ++ out << " (std.dev. " << stdev() << ")"; ++ return out << endl; ++ } ++}; ++ ++ ++// Manage control queues, collect and print reports. ++struct Controller : public Client { ++ ++ SubscriptionManager subs; ++ ++ Controller() : subs(session) {} ++ ++ /** Process messages from queue by applying a functor. */ ++ void process(size_t n, string queue, ++ boost::function msgFn) ++ { ++ if (!opts.summary) ++ cout << "Processing " << n << " messages from " ++ << queue << " " << flush; ++ LocalQueue lq; ++ subs.setFlowControl(n, SubscriptionManager::UNLIMITED, false); ++ subs.subscribe(lq, queue); ++ for (size_t i = 0; i < n; ++i) { ++ if (!opts.summary) cout << "." << flush; ++ msgFn(lq.pop().getData()); ++ } ++ if (!opts.summary) cout << " done." << endl; ++ } ++ ++ void process(size_t n, LocalQueue lq, string queue, ++ boost::function msgFn) ++ { ++ session.messageFlow(queue, 0, n); ++ if (!opts.summary) ++ cout << "Processing " << n << " messages from " ++ << queue << " " << flush; ++ for (size_t i = 0; i < n; ++i) { ++ if (!opts.summary) cout << "." << flush; ++ msgFn(lq.pop().getData()); ++ } ++ if (!opts.summary) cout << " done." << endl; ++ } ++ ++ void send(size_t n, string queue, string data) { ++ if (!opts.summary) ++ cout << "Sending " << data << " " << n << " times to " << queue ++ << endl; ++ Message msg(data, queue); ++ for (size_t i = 0; i < n; ++i) ++ session.messageTransfer(arg::content=msg, arg::acceptMode=1); ++ } ++ ++ void run() { // Controller ++ try { ++ // Wait for subscribers to be ready. ++ process(opts.totalSubs, fqn("sub_ready"), bind(expect, _1, "ready")); ++ ++ LocalQueue pubDone; ++ LocalQueue subDone; ++ subs.setFlowControl(0, SubscriptionManager::UNLIMITED, false); ++ subs.subscribe(pubDone, fqn("pub_done")); ++ subs.subscribe(subDone, fqn("sub_done")); ++ ++ double txrateTotal(0); ++ double mbytesTotal(0); ++ double pubRateTotal(0); ++ double subRateTotal(0); ++ ++ for (size_t j = 0; j < opts.iterations; ++j) { ++ AbsTime start=now(); ++ send(opts.totalPubs, fqn("pub_start"), "start"); // Start publishers ++ if (j) { ++ send(opts.totalPubs, fqn("sub_iteration"), "next"); // Start subscribers on next iteration ++ } ++ ++ Stats pubRates; ++ Stats subRates; ++ ++ process(opts.totalPubs, pubDone, fqn("pub_done"), boost::ref(pubRates)); ++ process(opts.totalSubs, subDone, fqn("sub_done"), boost::ref(subRates)); ++ ++ AbsTime end=now(); ++ ++ double time=secs(start, end); ++ double txrate=opts.transfers/time; ++ double mbytes=(txrate*opts.size)/(1024*1024); ++ ++ if (!opts.summary) { ++ cout << endl << "Total " << opts.transfers << " transfers of " ++ << opts.size << " bytes in " ++ << time << " seconds." << endl; ++ cout << endl << "Publish transfers/sec: " << endl; ++ pubRates.print(cout); ++ cout << endl << "Subscribe transfers/sec: " << endl; ++ subRates.print(cout); ++ cout << endl ++ << "Total transfers/sec: " << txrate << endl ++ << "Total Mbytes/sec: " << mbytes << endl; ++ } ++ else { ++ cout << pubRates.mean() << "\t" ++ << subRates.mean() << "\t" ++ << txrate << "\t" ++ << mbytes << endl; ++ } ++ ++ txrateTotal += txrate; ++ mbytesTotal += mbytes; ++ pubRateTotal += pubRates.mean(); ++ subRateTotal += subRates.mean(); ++ } ++ if (opts.iterations > 1) { ++ cout << "Averages: "<< endl ++ << (pubRateTotal / opts.iterations) << "\t" ++ << (subRateTotal / opts.iterations) << "\t" ++ << (txrateTotal / opts.iterations) << "\t" ++ << (mbytesTotal / opts.iterations) << endl; ++ } ++ } ++ catch (const std::exception& e) { ++ cout << "Controller exception: " << e.what() << endl; ++ } ++ } ++}; ++ ++ ++struct PublishThread : public Client { ++ string destination; ++ string routingKey; ++ ++ PublishThread() {}; ++ ++ PublishThread(string key, string dest=string()) { ++ destination=dest; ++ routingKey=key; ++ } ++ ++ void run() { // Publisher ++ try { ++ string data; ++ size_t offset(0); ++ if (opts.uniqueData) { ++ offset = 5; ++ data += "data:";//marker (requested for latency testing tool scripts) ++ data += string(sizeof(size_t), 'X');//space for seq no ++ data += session.getId().str(); ++ if (opts.size > data.size()) { ++ data += string(opts.size - data.size(), 'X'); ++ } else if(opts.size < data.size()) { ++ cout << "WARNING: Increased --size to " << data.size() ++ << " to honour --unique-data" << endl; ++ } ++ } else { ++ size_t msgSize=max(opts.size, sizeof(size_t)); ++ data = string(msgSize, 'X'); ++ } ++ ++ Message msg(data, routingKey); ++ if (opts.durable) ++ msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); ++ ++ ++ if (opts.txPub){ ++ session.txSelect(); ++ } ++ SubscriptionManager subs(session); ++ LocalQueue lq; ++ subs.setFlowControl(1, SubscriptionManager::UNLIMITED, true); ++ subs.subscribe(lq, fqn("pub_start")); ++ ++ for (size_t j = 0; j < opts.iterations; ++j) { ++ expect(lq.pop().getData(), "start"); ++ AbsTime start=now(); ++ for (size_t i=0; i(msg.getData()).replace(offset, sizeof(size_t), ++ reinterpret_cast(&i), sizeof(size_t)); ++ if (opts.syncPub) { ++ sync(session).messageTransfer( ++ arg::destination=destination, ++ arg::content=msg, ++ arg::acceptMode=1); ++ } else { ++ session.messageTransfer( ++ arg::destination=destination, ++ arg::content=msg, ++ arg::acceptMode=1); ++ } ++ if (opts.txPub && ((i+1) % opts.txPub == 0)){ ++ if (opts.commitAsync){ ++ session.txCommit(); ++ } else { ++ sync(session).txCommit(); ++ } ++ } ++ if (opts.intervalPub) ++ qpid::sys::usleep(opts.intervalPub*1000); ++ } ++ if (opts.confirm) session.sync(); ++ AbsTime end=now(); ++ double time=secs(start,end); ++ ++ // Send result to controller. ++ Message report(lexical_cast(opts.count/time), fqn("pub_done")); ++ session.messageTransfer(arg::content=report, arg::acceptMode=1); ++ if (opts.txPub){ ++ sync(session).txCommit(); ++ } ++ } ++ session.close(); ++ } ++ catch (const std::exception& e) { ++ cout << "PublishThread exception: " << e.what() << endl; ++ } ++ } ++}; ++ ++struct SubscribeThread : public Client { ++ ++ string queue; ++ ++ SubscribeThread() {} ++ ++ SubscribeThread(string q) { queue = q; } ++ ++ SubscribeThread(string key, string ex) { ++ queue=session.getId().str(); // Unique name. ++ session.queueDeclare(arg::queue=queue, ++ arg::exclusive=true, ++ arg::autoDelete=true, ++ arg::durable=opts.durable); ++ session.exchangeBind(arg::queue=queue, ++ arg::exchange=ex, ++ arg::bindingKey=key); ++ } ++ ++ void verify(bool cond, const char* test, uint32_t expect, uint32_t actual) { ++ if (!cond) { ++ Message error( ++ QPID_MSG("Sequence error: expected n" << test << expect << " but got " << actual), ++ "sub_done"); ++ session.messageTransfer(arg::content=error, arg::acceptMode=1); ++ throw Exception(error.getData()); ++ } ++ } ++ ++ void run() { // Subscribe ++ try { ++ if (opts.txSub) sync(session).txSelect(); ++ SubscriptionManager subs(session); ++ SubscriptionSettings settings; ++ settings.autoAck = opts.txSub ? opts.txSub : opts.ack; ++ settings.acceptMode = (opts.txSub || opts.ack ? ACCEPT_MODE_EXPLICIT : ACCEPT_MODE_NONE); ++ settings.flowControl = FlowControl::messageCredit(opts.subQuota); ++ LocalQueue lq; ++ Subscription subscription = subs.subscribe(lq, queue, settings); ++ // Notify controller we are ready. ++ session.messageTransfer(arg::content=Message("ready", fqn("sub_ready")), arg::acceptMode=1); ++ if (opts.txSub) { ++ if (opts.commitAsync) session.txCommit(); ++ else sync(session).txCommit(); ++ } ++ ++ LocalQueue iterationControl; ++ if (opts.iterations > 1) { ++ subs.subscribe(iterationControl, fqn("sub_iteration"), SubscriptionSettings(FlowControl::messageCredit(0))); ++ } ++ ++ for (size_t j = 0; j < opts.iterations; ++j) { ++ if (j > 0) { ++ //need to wait here until all subs are done ++ session.messageFlow(fqn("sub_iteration"), 0, 1); ++ iterationControl.pop(); ++ ++ //need to allocate some more credit for subscription ++ session.messageFlow(queue, 0, opts.subQuota); ++ } ++ Message msg; ++ AbsTime start=now(); ++ size_t expect=0; ++ for (size_t i = 0; i < opts.subQuota; ++i) { ++ msg=lq.pop(); ++ if (opts.txSub && ((i+1) % opts.txSub == 0)) { ++ if (opts.commitAsync) session.txCommit(); ++ else sync(session).txCommit(); ++ } ++ if (opts.intervalSub) ++ qpid::sys::usleep(opts.intervalSub*1000); ++ // TODO aconway 2007-11-23: check message order for. ++ // multiple publishers. Need an array of counters, ++ // one per publisher and a publisher ID in the ++ // message. Careful not to introduce a lot of overhead ++ // here, e.g. no std::map, std::string etc. ++ // ++ // For now verify order only for a single publisher. ++ size_t offset = opts.uniqueData ? 5 /*marker is 'data:'*/ : 0; ++ size_t n = *reinterpret_cast(msg.getData().data() + offset); ++ if (opts.pubs == 1) { ++ if (opts.subs == 1 || opts.mode == FANOUT) verify(n==expect, "==", expect, n); ++ else verify(n>=expect, ">=", expect, n); ++ expect = n+1; ++ } ++ } ++ if (opts.txSub || opts.ack) ++ subscription.accept(subscription.getUnaccepted()); ++ if (opts.txSub) { ++ if (opts.commitAsync) session.txCommit(); ++ else sync(session).txCommit(); ++ } ++ AbsTime end=now(); ++ ++ // Report to publisher. ++ Message result(lexical_cast(opts.subQuota/secs(start,end)), ++ fqn("sub_done")); ++ session.messageTransfer(arg::content=result, arg::acceptMode=1); ++ if (opts.txSub) sync(session).txCommit(); ++ } ++ session.close(); ++ } ++ catch (const std::exception& e) { ++ cout << "SubscribeThread exception: " << e.what() << endl; ++ } ++ } ++}; ++ ++}} // namespace qpid::tests ++ ++using namespace qpid::tests; ++ ++int main(int argc, char** argv) { ++ int exitCode = 0; ++ boost::ptr_vector subs(opts.subs); ++ boost::ptr_vector pubs(opts.pubs); ++ ++ try { ++ opts.parse(argc, argv); ++ ++ string exchange; ++ switch (opts.mode) { ++ case FANOUT: exchange="amq.fanout"; break; ++ case TOPIC: exchange="amq.topic"; break; ++ case SHARED: break; ++ } ++ ++ bool singleProcess= ++ (!opts.setup && !opts.control && !opts.publish && !opts.subscribe); ++ if (singleProcess) ++ opts.setup = opts.control = opts.publish = opts.subscribe = true; ++ ++ if (opts.setup) Setup().run(); // Set up queues ++ ++ // Start pubs/subs for each queue/topic. ++ for (size_t i = 0; i < opts.qt; ++i) { ++ ostringstream key; ++ key << opts.baseName << i; // Queue or topic name. ++ if (opts.publish) { ++ size_t n = singleProcess ? opts.pubs : 1; ++ for (size_t j = 0; j < n; ++j) { ++ pubs.push_back(new PublishThread(key.str(), exchange)); ++ pubs.back().thread=Thread(pubs.back()); ++ } ++ } ++ if (opts.subscribe) { ++ size_t n = singleProcess ? opts.subs : 1; ++ for (size_t j = 0; j < n; ++j) { ++ if (opts.mode==SHARED) ++ subs.push_back(new SubscribeThread(key.str())); ++ else ++ subs.push_back(new SubscribeThread(key.str(),exchange)); ++ subs.back().thread=Thread(subs.back()); ++ } ++ } ++ } ++ ++ if (opts.control) Controller().run(); ++ } ++ catch (const std::exception& e) { ++ cout << endl << e.what() << endl; ++ exitCode = 1; ++ } ++ ++ // Wait for started threads. ++ if (opts.publish) { ++ for (boost::ptr_vector::iterator i=pubs.begin(); ++ i != pubs.end(); ++ ++i) ++ i->thread.join(); ++ } ++ ++ if (opts.subscribe) { ++ for (boost::ptr_vector::iterator i=subs.begin(); ++ i != subs.end(); ++ ++i) ++ i->thread.join(); ++ } ++ return exitCode; ++} +diff --git a/qpid/cpp/src/tests/qpid-topic-listener.cpp b/qpid/cpp/src/tests/qpid-topic-listener.cpp +new file mode 100644 +index 0000000..c42e76d +--- /dev/null ++++ b/qpid/cpp/src/tests/qpid-topic-listener.cpp +@@ -0,0 +1,209 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++/** ++ * This file provides one half of a test and example of a pub-sub ++ * style of interaction. See qpid-topic-publisher.cpp for the other half, ++ * in which the logic for publishing is defined. ++ * ++ * This file contains the listener logic. A listener will subscribe to ++ * a logical 'topic'. It will count the number of messages it receives ++ * and the time elapsed between the first one and the last one. It ++ * recognises two types of 'special' message that tell it to (a) send ++ * a report containing this information, (b) shutdown (i.e. stop ++ * listening). ++ */ ++ ++#include "TestOptions.h" ++#include "qpid/client/Connection.h" ++#include "qpid/client/MessageListener.h" ++#include "qpid/client/Session.h" ++#include "qpid/client/AsyncSession.h" ++#include "qpid/client/SubscriptionManager.h" ++#include "qpid/sys/SystemInfo.h" ++#include "qpid/sys/Time.h" ++#include "qpid/framing/FieldValue.h" ++#include ++#include ++ ++using namespace qpid; ++using namespace qpid::client; ++using namespace qpid::sys; ++using namespace qpid::framing; ++using namespace std; ++ ++namespace qpid { ++namespace tests { ++ ++/** ++ * A message listener implementation in which the runtime logic is ++ * defined. ++ */ ++class Listener : public MessageListener{ ++ Session session; ++ SubscriptionManager& mgr; ++ const string responseQueue; ++ const bool transactional; ++ bool init; ++ int count; ++ AbsTime start; ++ ++ void shutdown(); ++ void report(); ++public: ++ Listener(const Session& session, SubscriptionManager& mgr, const string& reponseQueue, bool tx); ++ virtual void received(Message& msg); ++ Subscription subscription; ++}; ++ ++/** ++ * A utility class for managing the options passed in. ++ */ ++struct Args : public qpid::TestOptions { ++ int ack; ++ bool transactional; ++ bool durable; ++ int prefetch; ++ string statusqueue; ++ ++ Args() : ack(0), transactional(false), durable(false), prefetch(0) { ++ addOptions() ++ ("ack", optValue(ack, "MODE"), "Ack frequency in messages (defaults to half the prefetch value)") ++ ("transactional", optValue(transactional), "Use transactions") ++ ("durable", optValue(durable), "subscribers should use durable queues") ++ ("prefetch", optValue(prefetch, "N"), "prefetch count (0 implies no flow control, and no acking)") ++ ("status-queue", optValue(statusqueue, "QUEUE-NAME"), "Message queue to put status messages on"); ++ } ++}; ++ ++Listener::Listener(const Session& s, SubscriptionManager& m, const string& _responseq, bool tx) : ++ session(s), mgr(m), responseQueue(_responseq), transactional(tx), init(false), count(0){} ++ ++void Listener::received(Message& message){ ++ if(!init){ ++ start = now(); ++ count = 0; ++ init = true; ++ cout << "Batch started." << endl; ++ } ++ string type = message.getHeaders().getAsString("TYPE"); ++ ++ if(string("TERMINATION_REQUEST") == type){ ++ shutdown(); ++ }else if(string("REPORT_REQUEST") == type){ ++ subscription.accept(subscription.getUnaccepted()); // Accept everything upto this point ++ cout <<"Batch ended, sending report." << endl; ++ //send a report: ++ report(); ++ init = false; ++ }else if (++count % 1000 == 0){ ++ cout <<"Received " << count << " messages." << endl; ++ } ++} ++ ++void Listener::shutdown(){ ++ mgr.stop(); ++} ++ ++void Listener::report(){ ++ AbsTime finish = now(); ++ Duration time(start, finish); ++ stringstream reportstr; ++ reportstr << "Received " << count << " messages in " ++ << time/TIME_MSEC << " ms."; ++ Message msg(reportstr.str(), responseQueue); ++ msg.getHeaders().setString("TYPE", "REPORT"); ++ session.messageTransfer(arg::destination="amq.direct", arg::content=msg, arg::acceptMode=1); ++ if(transactional){ ++ sync(session).txCommit(); ++ } ++} ++ ++}} // namespace qpid::tests ++ ++using namespace qpid::tests; ++ ++/** ++ * The main routine creates a Listener instance and sets it up to ++ * consume from a private queue bound to the exchange with the ++ * appropriate topic name. ++ */ ++int main(int argc, char** argv){ ++ try{ ++ Args args; ++ args.parse(argc, argv); ++ if(args.help) ++ cout << args << endl; ++ else { ++ Connection connection; ++ args.open(connection); ++ AsyncSession session = connection.newSession(); ++ ++ //declare exchange, queue and bind them: ++ session.queueDeclare(arg::queue="response"); ++ std::string control = "control_" + session.getId().str(); ++ if (args.durable) { ++ session.queueDeclare(arg::queue=control, arg::durable=true); ++ } else { ++ session.queueDeclare(arg::queue=control, arg::exclusive=true, arg::autoDelete=true); ++ } ++ session.exchangeBind(arg::exchange="amq.topic", arg::queue=control, arg::bindingKey="topic_control"); ++ ++ //set up listener ++ SubscriptionManager mgr(session); ++ Listener listener(session, mgr, "response", args.transactional); ++ SubscriptionSettings settings; ++ if (args.prefetch) { ++ settings.autoAck = (args.ack ? args.ack : (args.prefetch / 2)); ++ settings.flowControl = FlowControl::messageCredit(args.prefetch); ++ } else { ++ settings.acceptMode = ACCEPT_MODE_NONE; ++ settings.flowControl = FlowControl::unlimited(); ++ } ++ listener.subscription = mgr.subscribe(listener, control, settings); ++ session.sync(); ++ ++ if( args.statusqueue.length() > 0 ) { ++ stringstream msg_str; ++ msg_str << "qpid-topic-listener: " << qpid::sys::SystemInfo::getProcessId(); ++ session.messageTransfer(arg::content=Message(msg_str.str(), args.statusqueue)); ++ cout << "Ready status put on queue '" << args.statusqueue << "'" << endl; ++ } ++ ++ if (args.transactional) { ++ session.txSelect(); ++ } ++ ++ cout << "qpid-topic-listener: listening..." << endl; ++ mgr.run(); ++ if (args.durable) { ++ session.queueDelete(arg::queue=control); ++ } ++ session.close(); ++ cout << "closing connection" << endl; ++ connection.close(); ++ } ++ return 0; ++ } catch (const std::exception& error) { ++ cout << "qpid-topic-listener: " << error.what() << endl; ++ } ++ return 1; ++} +diff --git a/qpid/cpp/src/tests/qpid-topic-publisher.cpp b/qpid/cpp/src/tests/qpid-topic-publisher.cpp +new file mode 100644 +index 0000000..f9107b9 +--- /dev/null ++++ b/qpid/cpp/src/tests/qpid-topic-publisher.cpp +@@ -0,0 +1,230 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++/** ++ * This file provides one half of a test and example of a pub-sub ++ * style of interaction. See qpid-topic-listener.cpp for the other half, in ++ * which the logic for subscribers is defined. ++ * ++ * This file contains the publisher logic. The publisher will send a ++ * number of messages to the exchange with the appropriate routing key ++ * for the logical 'topic'. Once it has done this it will then send a ++ * request that each subscriber report back with the number of message ++ * it has received and the time that elapsed between receiving the ++ * first one and receiving the report request. Once the expected ++ * number of reports are received, it sends out a request that each ++ * subscriber shutdown. ++ */ ++ ++#include "TestOptions.h" ++#include "qpid/client/Connection.h" ++#include "qpid/client/MessageListener.h" ++#include "qpid/client/AsyncSession.h" ++#include "qpid/client/SubscriptionManager.h" ++#include "qpid/sys/Monitor.h" ++#include "qpid/sys/Time.h" ++#include ++#include ++ ++using namespace qpid; ++using namespace qpid::client; ++using namespace qpid::sys; ++using namespace std; ++ ++namespace qpid { ++namespace tests { ++ ++/** ++ * The publishing logic is defined in this class. It implements ++ * message listener and can therfore be used to receive messages sent ++ * back by the subscribers. ++ */ ++class Publisher { ++ AsyncSession session; ++ SubscriptionManager mgr; ++ LocalQueue queue; ++ const string controlTopic; ++ const bool transactional; ++ const bool durable; ++ ++ string generateData(int size); ++ ++public: ++ Publisher(const AsyncSession& session, const string& controlTopic, bool tx, bool durable); ++ int64_t publish(int msgs, int listeners, int size); ++ void terminate(); ++}; ++ ++/** ++ * A utility class for managing the options passed in to the test ++ */ ++struct Args : public TestOptions { ++ int messages; ++ int subscribers; ++ bool transactional; ++ bool durable; ++ int batches; ++ int delay; ++ int size; ++ string statusqueue; ++ ++ Args() : messages(1000), subscribers(1), ++ transactional(false), durable(false), ++ batches(1), delay(0), size(256) ++ { ++ addOptions() ++ ("messages", optValue(messages, "N"), "how many messages to send") ++ ("subscribers", optValue(subscribers, "N"), "how many subscribers to expect reports from") ++ ("transactional", optValue(transactional), "client should use transactions") ++ ("durable", optValue(durable), "messages should be durable") ++ ("batches", optValue(batches, "N"), "how many batches to run") ++ ("delay", optValue(delay, "SECONDS"), "Causes a delay between each batch") ++ ("size", optValue(size, "BYTES"), "size of the published messages") ++ ("status-queue", optValue(statusqueue, "QUEUE-NAME"), "Message queue to read status messages from"); ++ } ++}; ++ ++Publisher::Publisher(const AsyncSession& _session, const string& _controlTopic, bool tx, bool d) : ++ session(_session), mgr(session), controlTopic(_controlTopic), transactional(tx), durable(d) ++{ ++ mgr.subscribe(queue, "response"); ++} ++ ++int64_t Publisher::publish(int msgs, int listeners, int size){ ++ Message msg(generateData(size), controlTopic); ++ if (durable) { ++ msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); ++ } ++ AbsTime start = now(); ++ ++ for(int i = 0; i < msgs; i++){ ++ session.messageTransfer(arg::content=msg, arg::destination="amq.topic", arg::acceptMode=1); ++ } ++ //send report request ++ Message reportRequest("", controlTopic); ++ reportRequest.getHeaders().setString("TYPE", "REPORT_REQUEST"); ++ session.messageTransfer(arg::content=reportRequest, arg::destination="amq.topic", arg::acceptMode=1); ++ if(transactional){ ++ sync(session).txCommit(); ++ } ++ //wait for a response from each listener (TODO, could log these) ++ for (int i = 0; i < listeners; i++) { ++ Message report = queue.pop(); ++ } ++ ++ if(transactional){ ++ sync(session).txCommit(); ++ } ++ ++ AbsTime finish = now(); ++ return Duration(start, finish); ++} ++ ++string Publisher::generateData(int size){ ++ string data; ++ for(int i = 0; i < size; i++){ ++ data += ('A' + (i / 26)); ++ } ++ return data; ++} ++ ++void Publisher::terminate(){ ++ //send termination request ++ Message terminationRequest("", controlTopic); ++ terminationRequest.getHeaders().setString("TYPE", "TERMINATION_REQUEST"); ++ session.messageTransfer(arg::content=terminationRequest, arg::destination="amq.topic", arg::acceptMode=1); ++ if(transactional){ ++ session.txCommit(); ++ } ++} ++ ++}} // namespace qpid::tests ++ ++using namespace qpid::tests; ++ ++int main(int argc, char** argv) { ++ try{ ++ Args args; ++ args.parse(argc, argv); ++ if(args.help) ++ cout << args << endl; ++ else { ++ Connection connection; ++ args.open(connection); ++ AsyncSession session = connection.newSession(); ++ ++ // If status-queue is defined, wait for all expected listeners to join in before we start ++ if( args.statusqueue.length() > 0 ) { ++ cout << "Waiting for " << args.subscribers << " listeners..." << endl; ++ SubscriptionManager statusSubs(session); ++ LocalQueue statusQ; ++ statusSubs.subscribe(statusQ, args.statusqueue); ++ for (int i = 0; i < args.subscribers; i++) { ++ Message m = statusQ.get(); ++ if( m.getData().find("topic_listener: ", 0) == 0 ) { ++ cout << "Listener " << (i+1) << " of " << args.subscribers ++ << " is ready (pid " << m.getData().substr(16, m.getData().length() - 16) ++ << ")" << endl; ++ } else { ++ throw Exception(QPID_MSG("Unexpected message received on status queue: " << m.getData())); ++ } ++ } ++ } ++ ++ if (args.transactional) { ++ session.txSelect(); ++ } ++ session.queueDeclare(arg::queue="response"); ++ session.exchangeBind(arg::exchange="amq.direct", arg::queue="response", arg::bindingKey="response"); ++ ++ Publisher publisher(session, "topic_control", args.transactional, args.durable); ++ ++ int batchSize(args.batches); ++ int64_t max(0); ++ int64_t min(0); ++ int64_t sum(0); ++ for(int i = 0; i < batchSize; i++){ ++ if(i > 0 && args.delay) qpid::sys::sleep(args.delay); ++ int64_t msecs = ++ publisher.publish(args.messages, ++ args.subscribers, ++ args.size) / TIME_MSEC; ++ if(!max || msecs > max) max = msecs; ++ if(!min || msecs < min) min = msecs; ++ sum += msecs; ++ cout << "Completed " << (i+1) << " of " << batchSize ++ << " in " << msecs << "ms" << endl; ++ } ++ publisher.terminate(); ++ int64_t avg = sum / batchSize; ++ if(batchSize > 1){ ++ cout << batchSize << " batches completed. avg=" << avg << ++ ", max=" << max << ", min=" << min << endl; ++ } ++ session.close(); ++ connection.close(); ++ } ++ return 0; ++ }catch(exception& error) { ++ cout << error.what() << endl; ++ } ++ return 1; ++} +diff --git a/qpid/cpp/src/tests/qpid-txtest.cpp b/qpid/cpp/src/tests/qpid-txtest.cpp +new file mode 100644 +index 0000000..d0ba2f1 +--- /dev/null ++++ b/qpid/cpp/src/tests/qpid-txtest.cpp +@@ -0,0 +1,340 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "TestOptions.h" ++#include "qpid/client/Connection.h" ++#include "qpid/client/Message.h" ++#include "qpid/client/AsyncSession.h" ++#include "qpid/client/SubscriptionManager.h" ++#include "qpid/framing/Array.h" ++#include "qpid/framing/Buffer.h" ++#include "qpid/framing/Uuid.h" ++#include "qpid/sys/Thread.h" ++ ++using namespace qpid; ++using namespace qpid::client; ++using namespace qpid::sys; ++using std::string; ++ ++namespace qpid { ++namespace tests { ++ ++typedef std::vector StringSet; ++ ++struct Args : public qpid::TestOptions { ++ bool init, transfer, check;//actions ++ uint size; ++ bool durable; ++ uint queues; ++ string base; ++ uint msgsPerTx; ++ uint txCount; ++ uint totalMsgCount; ++ bool dtx; ++ bool quiet; ++ ++ Args() : init(true), transfer(true), check(true), ++ size(256), durable(true), queues(2), ++ base("tx-test"), msgsPerTx(1), txCount(1), totalMsgCount(10), ++ dtx(false), quiet(false) ++ { ++ addOptions() ++ ++ ("init", optValue(init, "yes|no"), "Declare queues and populate one with the initial set of messages.") ++ ("transfer", optValue(transfer, "yes|no"), "'Move' messages from one queue to another using transactions to ensure no message loss.") ++ ("check", optValue(check, "yes|no"), "Check that the initial messages are all still available.") ++ ("size", optValue(size, "N"), "message size") ++ ("durable", optValue(durable, "yes|no"), "use durable messages") ++ ("queues", optValue(queues, "N"), "number of queues") ++ ("queue-base-name", optValue(base, ""), "base name for queues") ++ ("messages-per-tx", optValue(msgsPerTx, "N"), "number of messages transferred per transaction") ++ ("tx-count", optValue(txCount, "N"), "number of transactions per 'agent'") ++ ("total-messages", optValue(totalMsgCount, "N"), "total number of messages in 'circulation'") ++ ("dtx", optValue(dtx, "yes|no"), "use distributed transactions") ++ ("quiet", optValue(quiet), "reduce output from test"); ++ } ++}; ++ ++const std::string chars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); ++ ++std::string generateData(uint size) ++{ ++ if (size < chars.length()) { ++ return chars.substr(0, size); ++ } ++ std::string data; ++ for (uint i = 0; i < (size / chars.length()); i++) { ++ data += chars; ++ } ++ data += chars.substr(0, size % chars.length()); ++ return data; ++} ++ ++void generateSet(const std::string& base, uint count, StringSet& collection) ++{ ++ for (uint i = 0; i < count; i++) { ++ std::ostringstream out; ++ out << base << "-" << (i+1); ++ collection.push_back(out.str()); ++ } ++} ++ ++Args opts; ++ ++struct Client ++{ ++ Connection connection; ++ AsyncSession session; ++ ++ Client() ++ { ++ opts.open(connection); ++ session = connection.newSession(); ++ } ++ ++ ~Client() ++ { ++ try{ ++ session.close(); ++ connection.close(); ++ } catch(const std::exception& e) { ++ std::cout << e.what() << std::endl; ++ } ++ } ++}; ++ ++struct Transfer : public Client, public Runnable ++{ ++ std::string src; ++ std::string dest; ++ Thread thread; ++ framing::Xid xid; ++ ++ Transfer(const std::string& to, const std::string& from) : src(to), dest(from), xid(0x4c414e47, "", from) {} ++ ++ void run() ++ { ++ try { ++ ++ if (opts.dtx) session.dtxSelect(); ++ else session.txSelect(); ++ SubscriptionManager subs(session); ++ ++ LocalQueue lq; ++ SubscriptionSettings settings(FlowControl::messageWindow(opts.msgsPerTx)); ++ settings.autoAck = 0; // Disabled ++ Subscription sub = subs.subscribe(lq, src, settings); ++ ++ for (uint t = 0; t < opts.txCount; t++) { ++ Message in; ++ Message out("", dest); ++ if (opts.dtx) { ++ setNewXid(xid); ++ session.dtxStart(arg::xid=xid); ++ } ++ for (uint m = 0; m < opts.msgsPerTx; m++) { ++ in = lq.pop(); ++ std::string& data = in.getData(); ++ if (data.size() != opts.size) { ++ std::ostringstream oss; ++ oss << "Message size incorrect: size=" << in.getData().size() << "; expected " << opts.size; ++ throw std::runtime_error(oss.str()); ++ } ++ out.setData(data); ++ out.getMessageProperties().setCorrelationId(in.getMessageProperties().getCorrelationId()); ++ out.getDeliveryProperties().setDeliveryMode(in.getDeliveryProperties().getDeliveryMode()); ++ session.messageTransfer(arg::content=out, arg::acceptMode=1); ++ } ++ sub.accept(sub.getUnaccepted()); ++ if (opts.dtx) { ++ session.dtxEnd(arg::xid=xid); ++ session.dtxPrepare(arg::xid=xid); ++ session.dtxCommit(arg::xid=xid); ++ } else { ++ session.txCommit(); ++ } ++ } ++ } catch(const std::exception& e) { ++ std::cout << "Transfer interrupted: " << e.what() << std::endl; ++ } ++ } ++ ++ void setNewXid(framing::Xid& xid) { ++ framing::Uuid uuid(true); ++ xid.setGlobalId(uuid.str()); ++ } ++}; ++ ++struct Controller : public Client ++{ ++ StringSet ids; ++ StringSet queues; ++ ++ Controller() ++ { ++ generateSet(opts.base, opts.queues, queues); ++ generateSet("msg", opts.totalMsgCount, ids); ++ } ++ ++ void init() ++ { ++ //declare queues ++ for (StringSet::iterator i = queues.begin(); i != queues.end(); i++) { ++ session.queueDeclare(arg::queue=*i, arg::durable=opts.durable); ++ session.sync(); ++ } ++ ++ Message msg(generateData(opts.size), *queues.begin()); ++ if (opts.durable) { ++ msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); ++ } ++ ++ //publish messages ++ for (StringSet::iterator i = ids.begin(); i != ids.end(); i++) { ++ msg.getMessageProperties().setCorrelationId(*i); ++ session.messageTransfer(arg::content=msg, arg::acceptMode=1); ++ } ++ } ++ ++ void transfer() ++ { ++ boost::ptr_vector agents(opts.queues); ++ //launch transfer agents ++ for (StringSet::iterator i = queues.begin(); i != queues.end(); i++) { ++ StringSet::iterator next = i + 1; ++ if (next == queues.end()) next = queues.begin(); ++ ++ if (!opts.quiet) std::cout << "Transfering from " << *i << " to " << *next << std::endl; ++ agents.push_back(new Transfer(*i, *next)); ++ agents.back().thread = Thread(agents.back()); ++ } ++ ++ for (boost::ptr_vector::iterator i = agents.begin(); i != agents.end(); i++) { ++ i->thread.join(); ++ } ++ } ++ ++ int check() ++ { ++ SubscriptionManager subs(session); ++ ++ // Recover DTX transactions (if any) ++ if (opts.dtx) { ++ std::vector inDoubtXids; ++ framing::DtxRecoverResult dtxRes = session.dtxRecover().get(); ++ const framing::Array& xidArr = dtxRes.getInDoubt(); ++ xidArr.collect(inDoubtXids); ++ ++ if (inDoubtXids.size()) { ++ if (!opts.quiet) std::cout << "Recovering DTX in-doubt transaction(s):" << std::endl; ++ framing::StructHelper decoder; ++ framing::Xid xid; ++ // abort even, commit odd transactions ++ for (unsigned i = 0; i < inDoubtXids.size(); i++) { ++ decoder.decode(xid, inDoubtXids[i]); ++ if (!opts.quiet) std::cout << (i%2 ? " * aborting " : " * committing "); ++ xid.print(std::cout); ++ std::cout << std::endl; ++ if (i%2) { ++ session.dtxRollback(arg::xid=xid); ++ } else { ++ session.dtxCommit(arg::xid=xid); ++ } ++ } ++ } ++ } ++ ++ StringSet drained; ++ //drain each queue and verify the correct set of messages are available ++ for (StringSet::iterator i = queues.begin(); i != queues.end(); i++) { ++ //subscribe, allocate credit and flushn ++ LocalQueue lq; ++ SubscriptionSettings settings(FlowControl::unlimited(), ACCEPT_MODE_NONE); ++ subs.subscribe(lq, *i, settings); ++ session.messageFlush(arg::destination=*i); ++ session.sync(); ++ ++ uint count(0); ++ while (!lq.empty()) { ++ Message m = lq.pop(); ++ //add correlation ids of received messages to drained ++ drained.push_back(m.getMessageProperties().getCorrelationId()); ++ ++count; ++ } ++ if (!opts.quiet) std::cout << "Drained " << count << " messages from " << *i << std::endl; ++ } ++ ++ sort(ids.begin(), ids.end()); ++ sort(drained.begin(), drained.end()); ++ ++ //check that drained == ids ++ StringSet missing; ++ set_difference(ids.begin(), ids.end(), drained.begin(), drained.end(), back_inserter(missing)); ++ ++ StringSet extra; ++ set_difference(drained.begin(), drained.end(), ids.begin(), ids.end(), back_inserter(extra)); ++ ++ if (missing.empty() && extra.empty()) { ++ std::cout << "All expected messages were retrieved." << std::endl; ++ return 0; ++ } else { ++ if (!missing.empty()) { ++ std::cout << "The following ids were missing:" << std::endl; ++ for (StringSet::iterator i = missing.begin(); i != missing.end(); i++) { ++ std::cout << " '" << *i << "'" << std::endl; ++ } ++ } ++ if (!extra.empty()) { ++ std::cout << "The following extra ids were encountered:" << std::endl; ++ for (StringSet::iterator i = extra.begin(); i != extra.end(); i++) { ++ std::cout << " '" << *i << "'" << std::endl; ++ } ++ } ++ return 1; ++ } ++ } ++}; ++ ++}} // namespace qpid::tests ++ ++using namespace qpid::tests; ++ ++int main(int argc, char** argv) ++{ ++ try { ++ opts.parse(argc, argv); ++ Controller controller; ++ if (opts.init) controller.init(); ++ if (opts.transfer) controller.transfer(); ++ if (opts.check) return controller.check(); ++ return 0; ++ } catch(const std::exception& e) { ++ std::cout << e.what() << std::endl; ++ } ++ return 2; ++} +diff --git a/qpid/cpp/src/tests/quick_perftest b/qpid/cpp/src/tests/quick_perftest +index 4f7cf3c..362f9ee 100755 +--- a/qpid/cpp/src/tests/quick_perftest ++++ b/qpid/cpp/src/tests/quick_perftest +@@ -19,4 +19,4 @@ + # under the License. + # + +-exec `dirname $0`/run_test ./perftest --summary --count 100 ++exec `dirname $0`/run_test ./qpid-perftest --summary --count 100 +diff --git a/qpid/cpp/src/tests/quick_txtest b/qpid/cpp/src/tests/quick_txtest +index 938e380..c872fce 100755 +--- a/qpid/cpp/src/tests/quick_txtest ++++ b/qpid/cpp/src/tests/quick_txtest +@@ -19,4 +19,4 @@ + # under the License. + # + +-exec `dirname $0`/run_test ./txtest --queues 4 --tx-count 10 --quiet ++exec `dirname $0`/run_test ./qpid-txtest --queues 4 --tx-count 10 --quiet +diff --git a/qpid/cpp/src/tests/run_perftest b/qpid/cpp/src/tests/run_perftest +index 1a9b934..5ad7c1f 100755 +--- a/qpid/cpp/src/tests/run_perftest ++++ b/qpid/cpp/src/tests/run_perftest +@@ -19,10 +19,10 @@ + # under the License. + # + +-# Args: count [perftest options...] +-# Run a perftest with count multiplied. ++# Args: count [qpid-perftest options...] ++# Run a qpid-perftest with count multiplied. + # + MULTIPLIER=3 + COUNT=`expr $1 \* $MULTIPLIER` + shift +-exec `dirname $0`/run_test ./perftest --summary --count $COUNT "$@" ++exec `dirname $0`/run_test ./qpid-perftest --summary --count $COUNT "$@" +diff --git a/qpid/cpp/src/tests/ssl_test b/qpid/cpp/src/tests/ssl_test +index 4863eb9..a03341e 100755 +--- a/qpid/cpp/src/tests/ssl_test ++++ b/qpid/cpp/src/tests/ssl_test +@@ -73,7 +73,7 @@ export QPID_SSL_CERT_DB=${CERT_DIR} + export QPID_SSL_CERT_PASSWORD_FILE=${CERT_PW_FILE} + + ## Test connection via connection settings +-./perftest --count ${COUNT} --port ${PORT} -P ssl -b $TEST_HOSTNAME --summary ++./qpid-perftest --count ${COUNT} --port ${PORT} -P ssl -b $TEST_HOSTNAME --summary + + ## Test connection with a URL + URL=amqp:ssl:$TEST_HOSTNAME:$PORT +diff --git a/qpid/cpp/src/tests/topic_listener.cpp b/qpid/cpp/src/tests/topic_listener.cpp +deleted file mode 100644 +index aa8c19d..0000000 +--- a/qpid/cpp/src/tests/topic_listener.cpp ++++ /dev/null +@@ -1,209 +0,0 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +-/** +- * This file provides one half of a test and example of a pub-sub +- * style of interaction. See topic_publisher.cpp for the other half, +- * in which the logic for publishing is defined. +- * +- * This file contains the listener logic. A listener will subscribe to +- * a logical 'topic'. It will count the number of messages it receives +- * and the time elapsed between the first one and the last one. It +- * recognises two types of 'special' message that tell it to (a) send +- * a report containing this information, (b) shutdown (i.e. stop +- * listening). +- */ +- +-#include "TestOptions.h" +-#include "qpid/client/Connection.h" +-#include "qpid/client/MessageListener.h" +-#include "qpid/client/Session.h" +-#include "qpid/client/AsyncSession.h" +-#include "qpid/client/SubscriptionManager.h" +-#include "qpid/sys/SystemInfo.h" +-#include "qpid/sys/Time.h" +-#include "qpid/framing/FieldValue.h" +-#include +-#include +- +-using namespace qpid; +-using namespace qpid::client; +-using namespace qpid::sys; +-using namespace qpid::framing; +-using namespace std; +- +-namespace qpid { +-namespace tests { +- +-/** +- * A message listener implementation in which the runtime logic is +- * defined. +- */ +-class Listener : public MessageListener{ +- Session session; +- SubscriptionManager& mgr; +- const string responseQueue; +- const bool transactional; +- bool init; +- int count; +- AbsTime start; +- +- void shutdown(); +- void report(); +-public: +- Listener(const Session& session, SubscriptionManager& mgr, const string& reponseQueue, bool tx); +- virtual void received(Message& msg); +- Subscription subscription; +-}; +- +-/** +- * A utility class for managing the options passed in. +- */ +-struct Args : public qpid::TestOptions { +- int ack; +- bool transactional; +- bool durable; +- int prefetch; +- string statusqueue; +- +- Args() : ack(0), transactional(false), durable(false), prefetch(0) { +- addOptions() +- ("ack", optValue(ack, "MODE"), "Ack frequency in messages (defaults to half the prefetch value)") +- ("transactional", optValue(transactional), "Use transactions") +- ("durable", optValue(durable), "subscribers should use durable queues") +- ("prefetch", optValue(prefetch, "N"), "prefetch count (0 implies no flow control, and no acking)") +- ("status-queue", optValue(statusqueue, "QUEUE-NAME"), "Message queue to put status messages on"); +- } +-}; +- +-Listener::Listener(const Session& s, SubscriptionManager& m, const string& _responseq, bool tx) : +- session(s), mgr(m), responseQueue(_responseq), transactional(tx), init(false), count(0){} +- +-void Listener::received(Message& message){ +- if(!init){ +- start = now(); +- count = 0; +- init = true; +- cout << "Batch started." << endl; +- } +- string type = message.getHeaders().getAsString("TYPE"); +- +- if(string("TERMINATION_REQUEST") == type){ +- shutdown(); +- }else if(string("REPORT_REQUEST") == type){ +- subscription.accept(subscription.getUnaccepted()); // Accept everything upto this point +- cout <<"Batch ended, sending report." << endl; +- //send a report: +- report(); +- init = false; +- }else if (++count % 1000 == 0){ +- cout <<"Received " << count << " messages." << endl; +- } +-} +- +-void Listener::shutdown(){ +- mgr.stop(); +-} +- +-void Listener::report(){ +- AbsTime finish = now(); +- Duration time(start, finish); +- stringstream reportstr; +- reportstr << "Received " << count << " messages in " +- << time/TIME_MSEC << " ms."; +- Message msg(reportstr.str(), responseQueue); +- msg.getHeaders().setString("TYPE", "REPORT"); +- session.messageTransfer(arg::destination="amq.direct", arg::content=msg, arg::acceptMode=1); +- if(transactional){ +- sync(session).txCommit(); +- } +-} +- +-}} // namespace qpid::tests +- +-using namespace qpid::tests; +- +-/** +- * The main routine creates a Listener instance and sets it up to +- * consume from a private queue bound to the exchange with the +- * appropriate topic name. +- */ +-int main(int argc, char** argv){ +- try{ +- Args args; +- args.parse(argc, argv); +- if(args.help) +- cout << args << endl; +- else { +- Connection connection; +- args.open(connection); +- AsyncSession session = connection.newSession(); +- +- //declare exchange, queue and bind them: +- session.queueDeclare(arg::queue="response"); +- std::string control = "control_" + session.getId().str(); +- if (args.durable) { +- session.queueDeclare(arg::queue=control, arg::durable=true); +- } else { +- session.queueDeclare(arg::queue=control, arg::exclusive=true, arg::autoDelete=true); +- } +- session.exchangeBind(arg::exchange="amq.topic", arg::queue=control, arg::bindingKey="topic_control"); +- +- //set up listener +- SubscriptionManager mgr(session); +- Listener listener(session, mgr, "response", args.transactional); +- SubscriptionSettings settings; +- if (args.prefetch) { +- settings.autoAck = (args.ack ? args.ack : (args.prefetch / 2)); +- settings.flowControl = FlowControl::messageCredit(args.prefetch); +- } else { +- settings.acceptMode = ACCEPT_MODE_NONE; +- settings.flowControl = FlowControl::unlimited(); +- } +- listener.subscription = mgr.subscribe(listener, control, settings); +- session.sync(); +- +- if( args.statusqueue.length() > 0 ) { +- stringstream msg_str; +- msg_str << "topic_listener: " << qpid::sys::SystemInfo::getProcessId(); +- session.messageTransfer(arg::content=Message(msg_str.str(), args.statusqueue)); +- cout << "Ready status put on queue '" << args.statusqueue << "'" << endl; +- } +- +- if (args.transactional) { +- session.txSelect(); +- } +- +- cout << "topic_listener: listening..." << endl; +- mgr.run(); +- if (args.durable) { +- session.queueDelete(arg::queue=control); +- } +- session.close(); +- cout << "closing connection" << endl; +- connection.close(); +- } +- return 0; +- } catch (const std::exception& error) { +- cout << "topic_listener: " << error.what() << endl; +- } +- return 1; +-} +diff --git a/qpid/cpp/src/tests/topic_publisher.cpp b/qpid/cpp/src/tests/topic_publisher.cpp +deleted file mode 100644 +index 3381132..0000000 +--- a/qpid/cpp/src/tests/topic_publisher.cpp ++++ /dev/null +@@ -1,230 +0,0 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +-/** +- * This file provides one half of a test and example of a pub-sub +- * style of interaction. See topic_listener.cpp for the other half, in +- * which the logic for subscribers is defined. +- * +- * This file contains the publisher logic. The publisher will send a +- * number of messages to the exchange with the appropriate routing key +- * for the logical 'topic'. Once it has done this it will then send a +- * request that each subscriber report back with the number of message +- * it has received and the time that elapsed between receiving the +- * first one and receiving the report request. Once the expected +- * number of reports are received, it sends out a request that each +- * subscriber shutdown. +- */ +- +-#include "TestOptions.h" +-#include "qpid/client/Connection.h" +-#include "qpid/client/MessageListener.h" +-#include "qpid/client/AsyncSession.h" +-#include "qpid/client/SubscriptionManager.h" +-#include "qpid/sys/Monitor.h" +-#include "qpid/sys/Time.h" +-#include +-#include +- +-using namespace qpid; +-using namespace qpid::client; +-using namespace qpid::sys; +-using namespace std; +- +-namespace qpid { +-namespace tests { +- +-/** +- * The publishing logic is defined in this class. It implements +- * message listener and can therfore be used to receive messages sent +- * back by the subscribers. +- */ +-class Publisher { +- AsyncSession session; +- SubscriptionManager mgr; +- LocalQueue queue; +- const string controlTopic; +- const bool transactional; +- const bool durable; +- +- string generateData(int size); +- +-public: +- Publisher(const AsyncSession& session, const string& controlTopic, bool tx, bool durable); +- int64_t publish(int msgs, int listeners, int size); +- void terminate(); +-}; +- +-/** +- * A utility class for managing the options passed in to the test +- */ +-struct Args : public TestOptions { +- int messages; +- int subscribers; +- bool transactional; +- bool durable; +- int batches; +- int delay; +- int size; +- string statusqueue; +- +- Args() : messages(1000), subscribers(1), +- transactional(false), durable(false), +- batches(1), delay(0), size(256) +- { +- addOptions() +- ("messages", optValue(messages, "N"), "how many messages to send") +- ("subscribers", optValue(subscribers, "N"), "how many subscribers to expect reports from") +- ("transactional", optValue(transactional), "client should use transactions") +- ("durable", optValue(durable), "messages should be durable") +- ("batches", optValue(batches, "N"), "how many batches to run") +- ("delay", optValue(delay, "SECONDS"), "Causes a delay between each batch") +- ("size", optValue(size, "BYTES"), "size of the published messages") +- ("status-queue", optValue(statusqueue, "QUEUE-NAME"), "Message queue to read status messages from"); +- } +-}; +- +-Publisher::Publisher(const AsyncSession& _session, const string& _controlTopic, bool tx, bool d) : +- session(_session), mgr(session), controlTopic(_controlTopic), transactional(tx), durable(d) +-{ +- mgr.subscribe(queue, "response"); +-} +- +-int64_t Publisher::publish(int msgs, int listeners, int size){ +- Message msg(generateData(size), controlTopic); +- if (durable) { +- msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); +- } +- AbsTime start = now(); +- +- for(int i = 0; i < msgs; i++){ +- session.messageTransfer(arg::content=msg, arg::destination="amq.topic", arg::acceptMode=1); +- } +- //send report request +- Message reportRequest("", controlTopic); +- reportRequest.getHeaders().setString("TYPE", "REPORT_REQUEST"); +- session.messageTransfer(arg::content=reportRequest, arg::destination="amq.topic", arg::acceptMode=1); +- if(transactional){ +- sync(session).txCommit(); +- } +- //wait for a response from each listener (TODO, could log these) +- for (int i = 0; i < listeners; i++) { +- Message report = queue.pop(); +- } +- +- if(transactional){ +- sync(session).txCommit(); +- } +- +- AbsTime finish = now(); +- return Duration(start, finish); +-} +- +-string Publisher::generateData(int size){ +- string data; +- for(int i = 0; i < size; i++){ +- data += ('A' + (i / 26)); +- } +- return data; +-} +- +-void Publisher::terminate(){ +- //send termination request +- Message terminationRequest("", controlTopic); +- terminationRequest.getHeaders().setString("TYPE", "TERMINATION_REQUEST"); +- session.messageTransfer(arg::content=terminationRequest, arg::destination="amq.topic", arg::acceptMode=1); +- if(transactional){ +- session.txCommit(); +- } +-} +- +-}} // namespace qpid::tests +- +-using namespace qpid::tests; +- +-int main(int argc, char** argv) { +- try{ +- Args args; +- args.parse(argc, argv); +- if(args.help) +- cout << args << endl; +- else { +- Connection connection; +- args.open(connection); +- AsyncSession session = connection.newSession(); +- +- // If status-queue is defined, wait for all expected listeners to join in before we start +- if( args.statusqueue.length() > 0 ) { +- cout << "Waiting for " << args.subscribers << " listeners..." << endl; +- SubscriptionManager statusSubs(session); +- LocalQueue statusQ; +- statusSubs.subscribe(statusQ, args.statusqueue); +- for (int i = 0; i < args.subscribers; i++) { +- Message m = statusQ.get(); +- if( m.getData().find("topic_listener: ", 0) == 0 ) { +- cout << "Listener " << (i+1) << " of " << args.subscribers +- << " is ready (pid " << m.getData().substr(16, m.getData().length() - 16) +- << ")" << endl; +- } else { +- throw Exception(QPID_MSG("Unexpected message received on status queue: " << m.getData())); +- } +- } +- } +- +- if (args.transactional) { +- session.txSelect(); +- } +- session.queueDeclare(arg::queue="response"); +- session.exchangeBind(arg::exchange="amq.direct", arg::queue="response", arg::bindingKey="response"); +- +- Publisher publisher(session, "topic_control", args.transactional, args.durable); +- +- int batchSize(args.batches); +- int64_t max(0); +- int64_t min(0); +- int64_t sum(0); +- for(int i = 0; i < batchSize; i++){ +- if(i > 0 && args.delay) qpid::sys::sleep(args.delay); +- int64_t msecs = +- publisher.publish(args.messages, +- args.subscribers, +- args.size) / TIME_MSEC; +- if(!max || msecs > max) max = msecs; +- if(!min || msecs < min) min = msecs; +- sum += msecs; +- cout << "Completed " << (i+1) << " of " << batchSize +- << " in " << msecs << "ms" << endl; +- } +- publisher.terminate(); +- int64_t avg = sum / batchSize; +- if(batchSize > 1){ +- cout << batchSize << " batches completed. avg=" << avg << +- ", max=" << max << ", min=" << min << endl; +- } +- session.close(); +- connection.close(); +- } +- return 0; +- }catch(exception& error) { +- cout << error.what() << endl; +- } +- return 1; +-} +diff --git a/qpid/cpp/src/tests/topictest b/qpid/cpp/src/tests/topictest +index 8fd680e..257c24b 100755 +--- a/qpid/cpp/src/tests/topictest ++++ b/qpid/cpp/src/tests/topictest +@@ -46,11 +46,11 @@ done + subscribe() { + echo Start subscriber $1 + LOG="subscriber_$1.log" +- ./topic_listener $TRANSACTIONAL > $LOG 2>&1 && rm -f $LOG ++ ./qpid-topic-listener $TRANSACTIONAL > $LOG 2>&1 && rm -f $LOG + } + + publish() { +- ./topic_publisher --messages $MESSAGES --batches $BATCHES --subscribers $SUBSCRIBERS $HOST $TRANSACTIONAL ++ ./qpid-topic-publisher --messages $MESSAGES --batches $BATCHES --subscribers $SUBSCRIBERS $HOST $TRANSACTIONAL + } + + for ((i=$SUBSCRIBERS ; i--; )); do +diff --git a/qpid/cpp/src/tests/txtest.cpp b/qpid/cpp/src/tests/txtest.cpp +deleted file mode 100644 +index d0ba2f1..0000000 +--- a/qpid/cpp/src/tests/txtest.cpp ++++ /dev/null +@@ -1,340 +0,0 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "TestOptions.h" +-#include "qpid/client/Connection.h" +-#include "qpid/client/Message.h" +-#include "qpid/client/AsyncSession.h" +-#include "qpid/client/SubscriptionManager.h" +-#include "qpid/framing/Array.h" +-#include "qpid/framing/Buffer.h" +-#include "qpid/framing/Uuid.h" +-#include "qpid/sys/Thread.h" +- +-using namespace qpid; +-using namespace qpid::client; +-using namespace qpid::sys; +-using std::string; +- +-namespace qpid { +-namespace tests { +- +-typedef std::vector StringSet; +- +-struct Args : public qpid::TestOptions { +- bool init, transfer, check;//actions +- uint size; +- bool durable; +- uint queues; +- string base; +- uint msgsPerTx; +- uint txCount; +- uint totalMsgCount; +- bool dtx; +- bool quiet; +- +- Args() : init(true), transfer(true), check(true), +- size(256), durable(true), queues(2), +- base("tx-test"), msgsPerTx(1), txCount(1), totalMsgCount(10), +- dtx(false), quiet(false) +- { +- addOptions() +- +- ("init", optValue(init, "yes|no"), "Declare queues and populate one with the initial set of messages.") +- ("transfer", optValue(transfer, "yes|no"), "'Move' messages from one queue to another using transactions to ensure no message loss.") +- ("check", optValue(check, "yes|no"), "Check that the initial messages are all still available.") +- ("size", optValue(size, "N"), "message size") +- ("durable", optValue(durable, "yes|no"), "use durable messages") +- ("queues", optValue(queues, "N"), "number of queues") +- ("queue-base-name", optValue(base, ""), "base name for queues") +- ("messages-per-tx", optValue(msgsPerTx, "N"), "number of messages transferred per transaction") +- ("tx-count", optValue(txCount, "N"), "number of transactions per 'agent'") +- ("total-messages", optValue(totalMsgCount, "N"), "total number of messages in 'circulation'") +- ("dtx", optValue(dtx, "yes|no"), "use distributed transactions") +- ("quiet", optValue(quiet), "reduce output from test"); +- } +-}; +- +-const std::string chars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); +- +-std::string generateData(uint size) +-{ +- if (size < chars.length()) { +- return chars.substr(0, size); +- } +- std::string data; +- for (uint i = 0; i < (size / chars.length()); i++) { +- data += chars; +- } +- data += chars.substr(0, size % chars.length()); +- return data; +-} +- +-void generateSet(const std::string& base, uint count, StringSet& collection) +-{ +- for (uint i = 0; i < count; i++) { +- std::ostringstream out; +- out << base << "-" << (i+1); +- collection.push_back(out.str()); +- } +-} +- +-Args opts; +- +-struct Client +-{ +- Connection connection; +- AsyncSession session; +- +- Client() +- { +- opts.open(connection); +- session = connection.newSession(); +- } +- +- ~Client() +- { +- try{ +- session.close(); +- connection.close(); +- } catch(const std::exception& e) { +- std::cout << e.what() << std::endl; +- } +- } +-}; +- +-struct Transfer : public Client, public Runnable +-{ +- std::string src; +- std::string dest; +- Thread thread; +- framing::Xid xid; +- +- Transfer(const std::string& to, const std::string& from) : src(to), dest(from), xid(0x4c414e47, "", from) {} +- +- void run() +- { +- try { +- +- if (opts.dtx) session.dtxSelect(); +- else session.txSelect(); +- SubscriptionManager subs(session); +- +- LocalQueue lq; +- SubscriptionSettings settings(FlowControl::messageWindow(opts.msgsPerTx)); +- settings.autoAck = 0; // Disabled +- Subscription sub = subs.subscribe(lq, src, settings); +- +- for (uint t = 0; t < opts.txCount; t++) { +- Message in; +- Message out("", dest); +- if (opts.dtx) { +- setNewXid(xid); +- session.dtxStart(arg::xid=xid); +- } +- for (uint m = 0; m < opts.msgsPerTx; m++) { +- in = lq.pop(); +- std::string& data = in.getData(); +- if (data.size() != opts.size) { +- std::ostringstream oss; +- oss << "Message size incorrect: size=" << in.getData().size() << "; expected " << opts.size; +- throw std::runtime_error(oss.str()); +- } +- out.setData(data); +- out.getMessageProperties().setCorrelationId(in.getMessageProperties().getCorrelationId()); +- out.getDeliveryProperties().setDeliveryMode(in.getDeliveryProperties().getDeliveryMode()); +- session.messageTransfer(arg::content=out, arg::acceptMode=1); +- } +- sub.accept(sub.getUnaccepted()); +- if (opts.dtx) { +- session.dtxEnd(arg::xid=xid); +- session.dtxPrepare(arg::xid=xid); +- session.dtxCommit(arg::xid=xid); +- } else { +- session.txCommit(); +- } +- } +- } catch(const std::exception& e) { +- std::cout << "Transfer interrupted: " << e.what() << std::endl; +- } +- } +- +- void setNewXid(framing::Xid& xid) { +- framing::Uuid uuid(true); +- xid.setGlobalId(uuid.str()); +- } +-}; +- +-struct Controller : public Client +-{ +- StringSet ids; +- StringSet queues; +- +- Controller() +- { +- generateSet(opts.base, opts.queues, queues); +- generateSet("msg", opts.totalMsgCount, ids); +- } +- +- void init() +- { +- //declare queues +- for (StringSet::iterator i = queues.begin(); i != queues.end(); i++) { +- session.queueDeclare(arg::queue=*i, arg::durable=opts.durable); +- session.sync(); +- } +- +- Message msg(generateData(opts.size), *queues.begin()); +- if (opts.durable) { +- msg.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT); +- } +- +- //publish messages +- for (StringSet::iterator i = ids.begin(); i != ids.end(); i++) { +- msg.getMessageProperties().setCorrelationId(*i); +- session.messageTransfer(arg::content=msg, arg::acceptMode=1); +- } +- } +- +- void transfer() +- { +- boost::ptr_vector agents(opts.queues); +- //launch transfer agents +- for (StringSet::iterator i = queues.begin(); i != queues.end(); i++) { +- StringSet::iterator next = i + 1; +- if (next == queues.end()) next = queues.begin(); +- +- if (!opts.quiet) std::cout << "Transfering from " << *i << " to " << *next << std::endl; +- agents.push_back(new Transfer(*i, *next)); +- agents.back().thread = Thread(agents.back()); +- } +- +- for (boost::ptr_vector::iterator i = agents.begin(); i != agents.end(); i++) { +- i->thread.join(); +- } +- } +- +- int check() +- { +- SubscriptionManager subs(session); +- +- // Recover DTX transactions (if any) +- if (opts.dtx) { +- std::vector inDoubtXids; +- framing::DtxRecoverResult dtxRes = session.dtxRecover().get(); +- const framing::Array& xidArr = dtxRes.getInDoubt(); +- xidArr.collect(inDoubtXids); +- +- if (inDoubtXids.size()) { +- if (!opts.quiet) std::cout << "Recovering DTX in-doubt transaction(s):" << std::endl; +- framing::StructHelper decoder; +- framing::Xid xid; +- // abort even, commit odd transactions +- for (unsigned i = 0; i < inDoubtXids.size(); i++) { +- decoder.decode(xid, inDoubtXids[i]); +- if (!opts.quiet) std::cout << (i%2 ? " * aborting " : " * committing "); +- xid.print(std::cout); +- std::cout << std::endl; +- if (i%2) { +- session.dtxRollback(arg::xid=xid); +- } else { +- session.dtxCommit(arg::xid=xid); +- } +- } +- } +- } +- +- StringSet drained; +- //drain each queue and verify the correct set of messages are available +- for (StringSet::iterator i = queues.begin(); i != queues.end(); i++) { +- //subscribe, allocate credit and flushn +- LocalQueue lq; +- SubscriptionSettings settings(FlowControl::unlimited(), ACCEPT_MODE_NONE); +- subs.subscribe(lq, *i, settings); +- session.messageFlush(arg::destination=*i); +- session.sync(); +- +- uint count(0); +- while (!lq.empty()) { +- Message m = lq.pop(); +- //add correlation ids of received messages to drained +- drained.push_back(m.getMessageProperties().getCorrelationId()); +- ++count; +- } +- if (!opts.quiet) std::cout << "Drained " << count << " messages from " << *i << std::endl; +- } +- +- sort(ids.begin(), ids.end()); +- sort(drained.begin(), drained.end()); +- +- //check that drained == ids +- StringSet missing; +- set_difference(ids.begin(), ids.end(), drained.begin(), drained.end(), back_inserter(missing)); +- +- StringSet extra; +- set_difference(drained.begin(), drained.end(), ids.begin(), ids.end(), back_inserter(extra)); +- +- if (missing.empty() && extra.empty()) { +- std::cout << "All expected messages were retrieved." << std::endl; +- return 0; +- } else { +- if (!missing.empty()) { +- std::cout << "The following ids were missing:" << std::endl; +- for (StringSet::iterator i = missing.begin(); i != missing.end(); i++) { +- std::cout << " '" << *i << "'" << std::endl; +- } +- } +- if (!extra.empty()) { +- std::cout << "The following extra ids were encountered:" << std::endl; +- for (StringSet::iterator i = extra.begin(); i != extra.end(); i++) { +- std::cout << " '" << *i << "'" << std::endl; +- } +- } +- return 1; +- } +- } +-}; +- +-}} // namespace qpid::tests +- +-using namespace qpid::tests; +- +-int main(int argc, char** argv) +-{ +- try { +- opts.parse(argc, argv); +- Controller controller; +- if (opts.init) controller.init(); +- if (opts.transfer) controller.transfer(); +- if (opts.check) return controller.check(); +- return 0; +- } catch(const std::exception& e) { +- std::cout << e.what() << std::endl; +- } +- return 2; +-} +-- +1.5.5.6 + +From f80f6ebf6ae83cc456ad225b18c9a92afd33e0fd Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 20 May 2010 19:52:55 +0000 +Subject: [PATCH] Removed the logic in the broker's management agent that detected name collisions. + The new logic will disambiguate colliding names by adding an underscore to the one + being inserted. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@946773 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../cpp/include/qpid/management/ManagementObject.h | 1 + + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 113 +++----------------- + qpid/cpp/src/qpid/management/ManagementAgent.h | 2 - + qpid/cpp/src/qpid/management/ManagementObject.cpp | 36 ++++--- + 4 files changed, 37 insertions(+), 115 deletions(-) + +diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h +index 9c2d14f..6bbd7ec 100644 +--- a/qpid/cpp/include/qpid/management/ManagementObject.h ++++ b/qpid/cpp/include/qpid/management/ManagementObject.h +@@ -78,6 +78,7 @@ public: + QPID_COMMON_EXTERN bool equalV1(const ObjectId &other) const; + QPID_COMMON_EXTERN void setV2Key(const std::string& _key) { v2Key = _key; } + QPID_COMMON_EXTERN void setV2Key(const ManagementObject& object); ++ QPID_COMMON_EXTERN void disambiguate(); + QPID_COMMON_EXTERN void setAgentName(const std::string& _name) { agentName = _name; } + QPID_COMMON_EXTERN const std::string& getAgentName() const { return agentName; } + QPID_COMMON_EXTERN const std::string& getV2Key() const { return v2Key; } +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index d4649a7..7f2dd69 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -135,12 +135,6 @@ ManagementAgent::~ManagementAgent () + delete object; + } + managementObjects.clear(); +- +- while (!deletedManagementObjects.empty()) { +- ManagementObject* object = deletedManagementObjects.back(); +- delete object; +- deletedManagementObjects.pop_back(); +- } + } + } + +@@ -285,17 +279,11 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, uint64_t persistId + object->setObjectId(objId); + + { +- sys::Mutex::ScopedLock lock (addLock); ++ sys::Mutex::ScopedLock lock(addLock); + ManagementObjectMap::iterator destIter = newManagementObjects.find(objId); +- if (destIter != newManagementObjects.end()) { +- if (destIter->second->isDeleted()) { +- newDeletedManagementObjects.push_back(destIter->second); +- newManagementObjects.erase(destIter); +- } else { +- QPID_LOG(error, "ObjectId collision in addObject. class=" << object->getClassName() << +- " key=" << objId.getV2Key()); +- return objId; +- } ++ while (destIter != newManagementObjects.end()) { ++ objId.disambiguate(); ++ destIter = newManagementObjects.find(objId); + } + newManagementObjects[objId] = object; + } +@@ -323,17 +311,11 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, + object->setObjectId(objId); + + { +- sys::Mutex::ScopedLock lock (addLock); ++ sys::Mutex::ScopedLock lock(addLock); + ManagementObjectMap::iterator destIter = newManagementObjects.find(objId); +- if (destIter != newManagementObjects.end()) { +- if (destIter->second->isDeleted()) { +- newDeletedManagementObjects.push_back(destIter->second); +- newManagementObjects.erase(destIter); +- } else { +- QPID_LOG(error, "ObjectId collision in addObject. class=" << object->getClassName() << +- " key=" << objId.getV2Key()); +- return objId; +- } ++ while (destIter != newManagementObjects.end()) { ++ objId.disambiguate(); ++ destIter = newManagementObjects.find(objId); + } + newManagementObjects[objId] = object; + } +@@ -583,30 +565,16 @@ void ManagementAgent::moveNewObjectsLH() + for (ManagementObjectMap::iterator iter = newManagementObjects.begin (); + iter != newManagementObjects.end (); + iter++) { +- bool skip = false; +- ManagementObjectMap::iterator destIter = managementObjects.find(iter->first); +- if (destIter != managementObjects.end()) { +- // We have an objectId collision with an existing object. If the old object +- // is deleted, move it to the deleted list. +- if (destIter->second->isDeleted()) { +- deletedManagementObjects.push_back(destIter->second); +- managementObjects.erase(destIter); +- } else { +- QPID_LOG(error, "ObjectId collision in moveNewObjects. class=" << +- iter->second->getClassName() << " key=" << iter->first.getV2Key()); +- skip = true; +- } ++ ObjectId oid = iter->first; ++ ManagementObjectMap::iterator destIter = managementObjects.find(oid); ++ while (destIter != managementObjects.end()) { ++ oid.disambiguate(); ++ destIter = managementObjects.find(oid); + } + +- if (!skip) +- managementObjects[iter->first] = iter->second; ++ managementObjects[oid] = iter->second; + } + newManagementObjects.clear(); +- +- while (!newDeletedManagementObjects.empty()) { +- deletedManagementObjects.push_back(newDeletedManagementObjects.back()); +- newDeletedManagementObjects.pop_back(); +- } + } + + void ManagementAgent::periodicProcessing (void) +@@ -760,58 +728,7 @@ void ManagementAgent::periodicProcessing (void) + managementObjects.erase(iter->first); + } + +- // Publish the deletion of objects created by insert-collision +- bool collisionDeletions = false; +- for (ManagementObjectVector::iterator cdIter = deletedManagementObjects.begin(); +- cdIter != deletedManagementObjects.end(); cdIter++) { +- collisionDeletions = true; +- { +- if (qmf1Support) { +- Buffer msgBuffer(msgChars, BUFSIZE); +- encodeHeader(msgBuffer, 'c'); +- sBuf.clear(); +- (*cdIter)->writeProperties(sBuf); +- msgBuffer.putRawData(sBuf); +- contentSize = BUFSIZE - msgBuffer.available (); +- msgBuffer.reset (); +- stringstream key; +- key << "console.obj.1.0." << (*cdIter)->getPackageName() << "." << (*cdIter)->getClassName(); +- sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); +- QPID_LOG(trace, "SEND ContentInd for deleted object to=" << key.str()); +- } +- +- if (qmf2Support) { +- Variant::List list_; +- Variant::Map map_; +- Variant::Map values; +- Variant::Map headers; +- +- map_["_schema_id"] = mapEncodeSchemaId((*cdIter)->getPackageName(), +- (*cdIter)->getClassName(), +- "_data", +- (*cdIter)->getMd5Sum()); +- (*cdIter)->writeTimestamps(map_); +- (*cdIter)->mapEncodeValues(values, true, false); +- map_["_values"] = values; +- list_.push_back(map_); +- +- headers["method"] = "indication"; +- headers["qmf.opcode"] = "_data_indication"; +- headers["qmf.content"] = "_data"; +- headers["qmf.agent"] = name_address; +- +- stringstream key; +- key << "agent.ind.data." << (*cdIter)->getPackageName() << "." << (*cdIter)->getClassName(); +- +- string content; +- ListCodec::encode(list_, content); +- sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); +- QPID_LOG(trace, "SEND ContentInd for deleted object to=" << key.str()); +- } +- } +- } +- +- if (!deleteList.empty() || collisionDeletions) { ++ if (!deleteList.empty()) { + deleteList.clear(); + deleteOrphanedAgentsLH(); + } +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index 8129c1e..d101ca1 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -242,13 +242,11 @@ private: + // Protected by userLock + // + ManagementObjectMap managementObjects; +- ManagementObjectVector deletedManagementObjects; + + // + // Protected by addLock + // + ManagementObjectMap newManagementObjects; +- ManagementObjectVector newDeletedManagementObjects; + + framing::Uuid uuid; + +diff --git a/qpid/cpp/src/qpid/management/ManagementObject.cpp b/qpid/cpp/src/qpid/management/ManagementObject.cpp +index 209c935..5cdf9ec 100644 +--- a/qpid/cpp/src/qpid/management/ManagementObject.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementObject.cpp +@@ -30,6 +30,7 @@ + + #include + ++using namespace std; + using namespace qpid; + using namespace qpid::management; + +@@ -71,19 +72,19 @@ ObjectId::ObjectId(AgentAttachment* _agent, uint8_t flags, uint16_t seq) + } + + +-ObjectId::ObjectId(std::istream& in) : agent(0) ++ObjectId::ObjectId(istream& in) : agent(0) + { +- std::string text; ++ string text; + in >> text; + fromString(text); + } + +-ObjectId::ObjectId(const std::string& text) : agent(0) ++ObjectId::ObjectId(const string& text) : agent(0) + { + fromString(text); + } + +-void ObjectId::fromString(const std::string& text) ++void ObjectId::fromString(const string& text) + { + #define FIELDS 5 + #if defined (_WIN32) && !defined (atoll) +@@ -94,7 +95,7 @@ void ObjectId::fromString(const std::string& text) + // V1: ---- + // V2: Not used + +- std::string copy(text.c_str()); ++ string copy(text.c_str()); + char* cText; + char* field[FIELDS]; + bool atFieldStart = true; +@@ -124,7 +125,7 @@ void ObjectId::fromString(const std::string& text) + (atoll(field[1]) << 48) + + (atoll(field[2]) << 28); + +- agentName = std::string(field[3]); ++ agentName = string(field[3]); + second = atoll(field[4]); + } + +@@ -146,7 +147,7 @@ bool ObjectId::equalV1(const ObjectId &other) const + } + + // encode as V1-format binary +-void ObjectId::encode(std::string& buffer) const ++void ObjectId::encode(string& buffer) const + { + const uint32_t len = 16; + char _data[len]; +@@ -163,7 +164,7 @@ void ObjectId::encode(std::string& buffer) const + } + + // decode as V1-format binary +-void ObjectId::decode(const std::string& buffer) ++void ObjectId::decode(const string& buffer) + { + const uint32_t len = 16; + char _data[len]; +@@ -174,18 +175,23 @@ void ObjectId::decode(const std::string& buffer) + body.reset(); + first = body.getLongLong(); + second = body.getLongLong(); +- v2Key = boost::lexical_cast(second); ++ v2Key = boost::lexical_cast(second); + } + + // generate the V2 key from the index fields defined + // in the schema. + void ObjectId::setV2Key(const ManagementObject& object) + { +- std::stringstream oname; ++ stringstream oname; + oname << object.getPackageName() << ":" << object.getClassName() << ":" << object.getKey(); + v2Key = oname.str(); + } + ++void ObjectId::disambiguate() ++{ ++ v2Key = v2Key + "_"; ++} ++ + // encode as V2-format map + void ObjectId::mapEncode(types::Variant::Map& map) const + { +@@ -226,7 +232,7 @@ ObjectId::operator types::Variant::Map() const + namespace qpid { + namespace management { + +-std::ostream& operator<<(std::ostream& out, const ObjectId& i) ++ostream& operator<<(ostream& out, const ObjectId& i) + { + uint64_t virtFirst = i.first; + if (i.agent) +@@ -263,7 +269,7 @@ void ManagementObject::resourceDestroy() + int ManagementObject::maxThreads = 1; + int ManagementObject::nextThreadIndex = 0; + +-void ManagementObject::writeTimestamps (std::string& buf) const ++void ManagementObject::writeTimestamps (string& buf) const + { + char _data[4000]; + qpid::framing::Buffer body(_data, 4000); +@@ -279,16 +285,16 @@ void ManagementObject::writeTimestamps (std::string& buf) const + body.reset(); + body.getRawData(buf, len); + +- std::string oid; ++ string oid; + objectId.encode(oid); + buf += oid; + } + +-void ManagementObject::readTimestamps (const std::string& buf) ++void ManagementObject::readTimestamps (const string& buf) + { + char _data[4000]; + qpid::framing::Buffer body(_data, 4000); +- std::string unused; ++ string unused; + uint8_t unusedUuid[16]; + + body.checkAvailable(buf.length()); +-- +1.5.5.6 + +From 856c5276a219a35752564a0d5b4657d381c24285 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 21 May 2010 15:40:39 +0000 +Subject: [PATCH] Added setEncoding call to strings encoded from maps and lists. Encoding is "utf8" for now. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@947045 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index a3e966e..9c28e72 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -320,6 +320,7 @@ namespace messaging { + rpString = System::Convert::ToString(theObjp); + rString = QpidMarshal::ToNative(rpString); + targetp = rString; ++ targetp.setEncoding(QpidMarshal::ToNative("utf8")); + } + break; + +-- +1.5.5.6 + +From c940805177c8276f2ee9331c8db6f86f7baee8fd Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 25 May 2010 14:02:49 +0000 +Subject: [PATCH] Replaced the earlier-removed init function (in ManagementAgent.h) that uses + ConnectionSettings. Created a ConnectionSettings in the qpid::management name + space that mirrors that from the qpid::client namespace. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948046 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/include/qpid/agent/ManagementAgent.h | 9 ++- + .../include/qpid/management/ConnectionSettings.h | 118 ++++++++++++++++++++ + qpid/cpp/src/CMakeLists.txt | 1 + + qpid/cpp/src/Makefile.am | 2 + + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 25 ++++- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 2 +- + .../cpp/src/qpid/management/ConnectionSettings.cpp | 40 +++++++ + 7 files changed, 192 insertions(+), 5 deletions(-) + create mode 100644 qpid/cpp/include/qpid/management/ConnectionSettings.h + create mode 100644 qpid/cpp/src/qpid/management/ConnectionSettings.cpp + +diff --git a/qpid/cpp/include/qpid/agent/ManagementAgent.h b/qpid/cpp/include/qpid/agent/ManagementAgent.h +index 456b657..d534416 100644 +--- a/qpid/cpp/include/qpid/agent/ManagementAgent.h ++++ b/qpid/cpp/include/qpid/agent/ManagementAgent.h +@@ -24,6 +24,7 @@ + #include "qpid/management/ManagementObject.h" + #include "qpid/management/ManagementEvent.h" + #include "qpid/management/Manageable.h" ++#include "qpid/management/ConnectionSettings.h" + + namespace qpid { + namespace management { +@@ -103,6 +104,12 @@ class ManagementAgent + const std::string& mech = "PLAIN", + const std::string& proto = "tcp") = 0; + ++ virtual void init(const management::ConnectionSettings& settings, ++ uint16_t intervalSeconds = 10, ++ bool useExternalThread = false, ++ const std::string& storeFile = "") = 0; ++ ++ + // Register a schema with the management agent. This is normally called by the + // package initializer generated by the management code generator. + // +@@ -117,7 +124,7 @@ class ManagementAgent + const std::string& eventName, + uint8_t* md5Sum, + management::ManagementEvent::writeSchemaCall_t schemaCall) = 0; +- ++ + // Add a management object to the agent. Once added, this object shall be visible + // in the greater management context. + // +diff --git a/qpid/cpp/include/qpid/management/ConnectionSettings.h b/qpid/cpp/include/qpid/management/ConnectionSettings.h +new file mode 100644 +index 0000000..b631ffa +--- /dev/null ++++ b/qpid/cpp/include/qpid/management/ConnectionSettings.h +@@ -0,0 +1,118 @@ ++#ifndef _management_ConnectionSettings_h ++#define _management_ConnectionSettings_h ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include "qpid/CommonImportExport.h" ++#include "qpid/types/Variant.h" ++#include ++ ++namespace qpid { ++namespace management { ++ ++/** ++ * Settings for a Connection. ++ */ ++struct ConnectionSettings { ++ ++ QPID_COMMON_EXTERN ConnectionSettings(); ++ QPID_COMMON_EXTERN virtual ~ConnectionSettings(); ++ ++ /** ++ * The protocol used for the connection (defaults to 'tcp') ++ */ ++ std::string protocol; ++ ++ /** ++ * The host (or ip address) to connect to (defaults to 'localhost'). ++ */ ++ std::string host; ++ /** ++ * The port to connect to (defaults to 5672). ++ */ ++ uint16_t port; ++ /** ++ * Allows an AMQP 'virtual host' to be specified for the ++ * connection. ++ */ ++ std::string virtualhost; ++ ++ /** ++ * The username to use when authenticating the connection. If not ++ * specified the current users login is used if available. ++ */ ++ std::string username; ++ /** ++ * The password to use when authenticating the connection. ++ */ ++ std::string password; ++ /** ++ * The SASL mechanism to use when authenticating the connection; ++ * the options are currently PLAIN or ANONYMOUS. ++ */ ++ std::string mechanism; ++ /** ++ * Allows a locale to be specified for the connection. ++ */ ++ std::string locale; ++ /** ++ * Allows a heartbeat frequency to be specified ++ */ ++ uint16_t heartbeat; ++ /** ++ * The maximum number of channels that the client will request for ++ * use on this connection. ++ */ ++ uint16_t maxChannels; ++ /** ++ * The maximum frame size that the client will request for this ++ * connection. ++ */ ++ uint16_t maxFrameSize; ++ /** ++ * Limit the size of the connections send buffer . The buffer ++ * is limited to bounds * maxFrameSize. ++ */ ++ unsigned int bounds; ++ /** ++ * If true, TCP_NODELAY will be set for the connection. ++ */ ++ bool tcpNoDelay; ++ /** ++ * SASL service name ++ */ ++ std::string service; ++ /** ++ * Minimum acceptable strength of any SASL negotiated security ++ * layer. 0 means no security layer required. ++ */ ++ unsigned int minSsf; ++ /** ++ * Maximum acceptable strength of any SASL negotiated security ++ * layer. 0 means no security layer allowed. ++ */ ++ unsigned int maxSsf; ++}; ++ ++}} ++ ++#endif ++ +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index aa40fd7..7083574 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -616,6 +616,7 @@ set (qpidcommon_SOURCES + qpid/log/Selector.cpp + qpid/log/Statement.cpp + qpid/management/Buffer.cpp ++ qpid/management/ConnectionSettings.cpp + qpid/management/Mutex.cpp + qpid/management/Manageable.cpp + qpid/management/ManagementObject.cpp +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index f2125eb..2df445e 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -421,6 +421,7 @@ libqpidcommon_la_SOURCES += \ + qpid/log/Selector.cpp \ + qpid/log/Statement.cpp \ + qpid/management/Buffer.cpp \ ++ qpid/management/ConnectionSettings.cpp \ + qpid/management/Manageable.cpp \ + qpid/management/ManagementObject.cpp \ + qpid/management/Mutex.cpp \ +@@ -808,6 +809,7 @@ nobase_include_HEADERS += \ + ../include/qpid/log/Statement.h \ + ../include/qpid/management/Args.h \ + ../include/qpid/management/Buffer.h \ ++ ../include/qpid/management/ConnectionSettings.h \ + ../include/qpid/management/Manageable.h \ + ../include/qpid/management/ManagementEvent.h \ + ../include/qpid/management/ManagementObject.h \ +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index 5c2c6c5..6a07d8c 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -148,7 +148,7 @@ void ManagementAgentImpl::init(const string& brokerHost, + const string& mech, + const string& proto) + { +- client::ConnectionSettings settings; ++ management::ConnectionSettings settings; + settings.protocol = proto; + settings.host = brokerHost; + settings.port = brokerPort; +@@ -158,7 +158,7 @@ void ManagementAgentImpl::init(const string& brokerHost, + init(settings, intervalSeconds, useExternalThread, _storeFile); + } + +-void ManagementAgentImpl::init(const qpid::client::ConnectionSettings& settings, ++void ManagementAgentImpl::init(const qpid::management::ConnectionSettings& settings, + uint16_t intervalSeconds, + bool useExternalThread, + const string& _storeFile) +@@ -170,7 +170,26 @@ void ManagementAgentImpl::init(const qpid::client::ConnectionSettings& settings, + + QPID_LOG(info, "QMF Agent Initialized: broker=" << settings.host << ":" << settings.port << + " interval=" << intervalSeconds << " storeFile=" << _storeFile); +- connectionSettings = settings; ++ ++ // ++ // Convert from management::ConnectionSettings to client::ConnectionSettings ++ // ++ connectionSettings.protocol = settings.protocol; ++ connectionSettings.host = settings.host; ++ connectionSettings.port = settings.port; ++ connectionSettings.virtualhost = settings.virtualhost; ++ connectionSettings.username = settings.username; ++ connectionSettings.password = settings.password; ++ connectionSettings.mechanism = settings.mechanism; ++ connectionSettings.locale = settings.locale; ++ connectionSettings.heartbeat = settings.heartbeat; ++ connectionSettings.maxChannels = settings.maxChannels; ++ connectionSettings.maxFrameSize = settings.maxFrameSize; ++ connectionSettings.bounds = settings.bounds; ++ connectionSettings.tcpNoDelay = settings.tcpNoDelay; ++ connectionSettings.service = settings.service; ++ connectionSettings.minSsf = settings.minSsf; ++ connectionSettings.maxSsf = settings.maxSsf; + + retrieveData(); + bootSequence++; +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index d160934..7d4531f 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -63,7 +63,7 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + const std::string& pwd = "guest", + const std::string& mech = "PLAIN", + const std::string& proto = "tcp"); +- void init(const client::ConnectionSettings& settings, ++ void init(const management::ConnectionSettings& settings, + uint16_t intervalSeconds = 10, + bool useExternalThread = false, + const std::string& storeFile = ""); +diff --git a/qpid/cpp/src/qpid/management/ConnectionSettings.cpp b/qpid/cpp/src/qpid/management/ConnectionSettings.cpp +new file mode 100644 +index 0000000..1421a26 +--- /dev/null ++++ b/qpid/cpp/src/qpid/management/ConnectionSettings.cpp +@@ -0,0 +1,40 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++#include "qpid/management/ConnectionSettings.h" ++#include "qpid/Version.h" ++ ++qpid::management::ConnectionSettings::ConnectionSettings() : ++ protocol("tcp"), ++ host("localhost"), ++ port(5672), ++ locale("en_US"), ++ heartbeat(0), ++ maxChannels(32767), ++ maxFrameSize(65535), ++ bounds(2), ++ tcpNoDelay(false), ++ service(qpid::saslName), ++ minSsf(0), ++ maxSsf(256) ++{} ++ ++qpid::management::ConnectionSettings::~ConnectionSettings() {} ++ +-- +1.5.5.6 + +From 87a548b4b5e525bd887fd486469e63ed9bd79c03 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 25 May 2010 18:05:54 +0000 +Subject: [PATCH] Bug 592999: Fix "mismatched cluster-id" errors during start up. + +Intermittent failure when starting a persistent cluster with all clean stores. +Some brokers fail with: + critical Unexpected error: Cluster-ID mismatch. Stores belong to different clusters. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948143 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 5b381f3f71c69ab356527965a639466bc3bc3615) +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 47 +++++++++++++++++++-------------- + qpid/cpp/src/qpid/cluster/Cluster.h | 2 +- + 2 files changed, 28 insertions(+), 21 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 099c3ef..6b9fcec 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -266,7 +266,7 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + initMap(self, settings.size), + store(broker.getDataDir().getPath()), + elder(false), +- lastSize(0), ++ lastAliveCount(0), + lastBroker(false), + updateRetracted(false), + error(*this) +@@ -290,7 +290,7 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + store.load(); + clusterId = store.getClusterId(); + QPID_LOG(notice, "Cluster store state: " << store) +- } ++ } + cpg.join(name); + // pump the CPG dispatch manually till we get past PRE_INIT. + while (state == PRE_INIT) +@@ -326,7 +326,8 @@ void Cluster::initialize() { + mgmtObject->set_status("JOINING"); + } + +- // Run initMapCompleted immediately to process the initial configuration. ++ // Run initMapCompleted immediately to process the initial configuration ++ // that allowed us to transition out of PRE_INIT + assert(state == INIT); + initMapCompleted(*(Mutex::ScopedLock*)0); // Fake lock, single-threaded context. + +@@ -433,7 +434,7 @@ const ClusterUpdateOfferBody* castUpdateOffer(const framing::AMQBody* body) { + const ClusterConnectionAnnounceBody* castAnnounce( const framing::AMQBody *body) { + return (body && body->getMethod() && + body->getMethod()->isA()) ? +- static_cast(body) : 0; ++ static_cast(body) : 0; + } + + // Handler for deliverEventQueue. +@@ -616,8 +617,8 @@ void Cluster::initMapCompleted(Lock& l) { + << " members, waiting for at least " << initMap.getRequiredSize()); + return; + } +- initMap.checkConsistent(); + ++ initMap.checkConsistent(); + elders = initMap.getElders(); + QPID_LOG(debug, *this << " elders: " << elders); + if (elders.empty()) +@@ -657,11 +658,11 @@ void Cluster::configChange(const MemberId&, + MemberSet members = decodeMemberSet(membersStr); + MemberSet left = decodeMemberSet(leftStr); + MemberSet joined = decodeMemberSet(joinedStr); +- QPID_LOG(notice, *this << " Membership update: " << members); ++ QPID_LOG(notice, *this << " configuration change: " << members); + QPID_LOG_IF(notice, !left.empty(), *this << " Members left: " << left); + QPID_LOG_IF(notice, !joined.empty(), *this << " Members joined: " << joined); + +- // Update initital status for members joining or leaving. ++ // If we are still joining, make sure there is someone to give us an update. + elders = intersection(elders, members); + if (elders.empty() && INIT < state && state < CATCHUP) { + QPID_LOG(critical, "Cannot update, all potential updaters left the cluster."); +@@ -882,6 +883,7 @@ void Cluster::checkUpdateIn(Lock& l) { + failoverExchange->setUrls(getUrls(l)); + mcast.mcastControl(ClusterReadyBody(ProtocolVersion(), myUrl.str()), self); + state = CATCHUP; ++ memberUpdate(l); + broker.setClusterUpdatee(false); + if (mAgent) mAgent->suppress(false); // Enable management output. + discarding = false; // ok to set, we're stalled for update. +@@ -908,7 +910,7 @@ void Cluster::updateOutDone(Lock& l) { + QPID_LOG(notice, *this << " update sent"); + assert(state == UPDATER); + state = READY; +- deliverEventQueue.start(); // Start processing events again. ++ deliverEventQueue.start(); // Start processing events again. + makeOffer(map.firstJoiner(), l); // Try another offer + } + +@@ -959,15 +961,18 @@ void Cluster::stopFullCluster(Lock& ) { + } + + void Cluster::memberUpdate(Lock& l) { ++ // Ignore config changes while we are joining. ++ if (state < CATCHUP) return; + QPID_LOG(info, *this << " member update: " << map); + std::vector urls = getUrls(l); + std::vector ids = getIds(l); +- size_t size = urls.size(); ++ size_t aliveCount = map.aliveCount(); ++ assert(map.isAlive(self)); + failoverExchange->updateUrls(urls); + ++ // Mark store clean if I am the only broker, dirty otherwise. + if (store.hasStore()) { +- // Mark store clean if I am the only broker, dirty otherwise. +- if (size == 1 ) { ++ if (aliveCount == 1) { + if (store.getState() != STORE_STATE_CLEAN_STORE) { + QPID_LOG(notice, *this << "Sole member of cluster, marking store clean."); + store.clean(Uuid(true)); +@@ -975,26 +980,28 @@ void Cluster::memberUpdate(Lock& l) { + } + else { + if (store.getState() != STORE_STATE_DIRTY_STORE) { +- QPID_LOG(notice, "No longer sole cluster member, marking store dirty."); ++ QPID_LOG(notice, "Running in a cluster, marking store dirty."); + store.dirty(); + } + } + } + +- if (size == 1 && lastSize > 1 && state >= CATCHUP) { ++ // If I am the last member standing, set queue policies. ++ if (aliveCount == 1 && lastAliveCount > 1 && state >= CATCHUP) { + QPID_LOG(notice, *this << " last broker standing, update queue policies"); + lastBroker = true; + broker.getQueues().updateQueueClusterState(true); + } +- else if (size > 1 && lastBroker) { +- QPID_LOG(notice, *this << " last broker standing joined by " << size-1 << " replicas, updating queue policies" << size); ++ else if (aliveCount > 1 && lastBroker) { ++ QPID_LOG(notice, *this << " last broker standing joined by " << aliveCount-1 ++ << " replicas, updating queue policies."); + lastBroker = false; + broker.getQueues().updateQueueClusterState(false); + } +- lastSize = size; ++ lastAliveCount = aliveCount; + + if (mgmtObject) { +- mgmtObject->set_clusterSize(size); ++ mgmtObject->set_clusterSize(urls.size()); + string urlstr; + for(std::vector::iterator iter = urls.begin(); iter != urls.end(); iter++ ) { + if (iter != urls.begin()) urlstr += ";"; +@@ -1029,7 +1036,7 @@ std::ostream& operator<<(std::ostream& o, const Cluster& cluster) { + assert(sizeof(STATE)/sizeof(*STATE) == Cluster::LEFT+1); + o << "cluster(" << cluster.self << " " << STATE[cluster.state]; + if (cluster.error.isUnresolved()) o << "/error"; +- return o << ")";; ++ return o << ")"; + } + + MemberId Cluster::getId() const { +@@ -1071,8 +1078,8 @@ void Cluster::timerWakeup(const MemberId& , const std::string& name, Lock&) { + + void Cluster::timerDrop(const MemberId& , const std::string& name, Lock&) { + QPID_LOG(debug, "Cluster timer drop " << map.getFrameSeq() << ": " << name) +- if (state >= CATCHUP) // Pre catchup our timer isn't set up. +- timer->deliverDrop(name); ++ if (state >= CATCHUP) // Pre catchup our timer isn't set up. ++ timer->deliverDrop(name); + } + + bool Cluster::isElder() const { +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.h b/qpid/cpp/src/qpid/cluster/Cluster.h +index 343a664..0d8b55c 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.h ++++ b/qpid/cpp/src/qpid/cluster/Cluster.h +@@ -273,7 +273,7 @@ class Cluster : private Cpg::Handler, public management::Manageable { + ClusterMap map; + MemberSet elders; + bool elder; +- size_t lastSize; ++ size_t lastAliveCount; + bool lastBroker; + sys::Thread updateThread; + boost::optional updatedMap; +-- +1.5.5.6 + +From d040ae874743e188779161c54d9e460f5b9ab9fe Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Thu, 27 May 2010 18:09:13 +0000 +Subject: [PATCH] Fix for BZ-587190, preventing blocking on bounds. + +QPID-2631: For blocking Bounds::expand() calls, only increase the current count when there is space. In SessionImpl::send() expand bounds before queueing frame. Expand bounds for all frames sent (including connection frames and cluster specific frames). + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948936 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 882b4c591fe13b1daf19eb65a8a2e2faf2bbb5b1) +--- + qpid/cpp/src/qpid/client/Bounds.cpp | 6 +++--- + qpid/cpp/src/qpid/client/ConnectionHandler.cpp | 12 ++++++++++-- + qpid/cpp/src/qpid/client/ConnectionHandler.h | 9 ++++++--- + qpid/cpp/src/qpid/client/ConnectionImpl.cpp | 2 +- + qpid/cpp/src/qpid/client/SessionImpl.cpp | 2 +- + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 16 ++++++++++++++-- + qpid/cpp/src/tests/cluster_test.cpp | 2 ++ + 7 files changed, 37 insertions(+), 12 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/Bounds.cpp b/qpid/cpp/src/qpid/client/Bounds.cpp +index abb983a..cc2577d 100644 +--- a/qpid/cpp/src/qpid/client/Bounds.cpp ++++ b/qpid/cpp/src/qpid/client/Bounds.cpp +@@ -33,19 +33,19 @@ Bounds::Bounds(size_t maxSize) : max(maxSize), current(0) {} + bool Bounds::expand(size_t sizeRequired, bool block) { + if (!max) return true; + Waitable::ScopedLock l(lock); +- current += sizeRequired; + if (block) { + Waitable::ScopedWait w(lock); +- while (current > max) ++ while (current + sizeRequired > max) + lock.wait(); + } ++ current += sizeRequired; + return current <= max; + } + + void Bounds::reduce(size_t size) { + if (!max || size == 0) return; + Waitable::ScopedLock l(lock); +- if (current == 0) return; ++ assert(current >= size); + current -= std::min(size, current); + if (current < max && lock.hasWaiters()) { + lock.notifyAll(); +diff --git a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +index 9d68448..6aea4c4 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +@@ -22,6 +22,7 @@ + #include "qpid/client/ConnectionHandler.h" + + #include "qpid/client/SaslFactory.h" ++#include "qpid/client/Bounds.h" + #include "qpid/framing/amqp_framing.h" + #include "qpid/framing/all_method_bodies.h" + #include "qpid/framing/ClientInvoker.h" +@@ -70,8 +71,15 @@ CloseCode ConnectionHandler::convert(uint16_t replyCode) + } + } + +-ConnectionHandler::ConnectionHandler(const ConnectionSettings& s, ProtocolVersion& v) +- : StateManager(NOT_STARTED), ConnectionSettings(s), outHandler(*this), proxy(outHandler), ++ConnectionHandler::Adapter::Adapter(ConnectionHandler& h, Bounds& b) : handler(h), bounds(b) {} ++void ConnectionHandler::Adapter::handle(framing::AMQFrame& f) ++{ ++ bounds.expand(f.encodedSize(), false); ++ handler.out(f); ++} ++ ++ConnectionHandler::ConnectionHandler(const ConnectionSettings& s, ProtocolVersion& v, Bounds& b) ++ : StateManager(NOT_STARTED), ConnectionSettings(s), outHandler(*this, b), proxy(outHandler), + errorCode(CLOSE_CODE_NORMAL), version(v) + { + insist = true; +diff --git a/qpid/cpp/src/qpid/client/ConnectionHandler.h b/qpid/cpp/src/qpid/client/ConnectionHandler.h +index 5f4b454..61709db 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionHandler.h ++++ b/qpid/cpp/src/qpid/client/ConnectionHandler.h +@@ -47,6 +47,8 @@ struct SecuritySettings; + + namespace client { + ++class Bounds; ++ + class ConnectionHandler : private StateManager, + public ConnectionSettings, + public ChainableFrameHandler, +@@ -60,9 +62,10 @@ class ConnectionHandler : private StateManager, + class Adapter : public framing::FrameHandler + { + ConnectionHandler& handler; ++ Bounds& bounds; + public: +- Adapter(ConnectionHandler& h) : handler(h) {} +- void handle(framing::AMQFrame& f) { handler.out(f); } ++ Adapter(ConnectionHandler& h, Bounds& bounds); ++ void handle(framing::AMQFrame& f); + }; + + Adapter outHandler; +@@ -102,7 +105,7 @@ public: + typedef boost::function ErrorListener; + typedef boost::function GetSecuritySettings; + +- ConnectionHandler(const ConnectionSettings&, framing::ProtocolVersion&); ++ ConnectionHandler(const ConnectionSettings&, framing::ProtocolVersion&, Bounds&); + + void received(framing::AMQFrame& f) { incoming(f); } + +diff --git a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +index d5fe748..99f4411 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +@@ -182,7 +182,7 @@ boost::shared_ptr ConnectionImpl::create(framing::ProtocolVersio + + ConnectionImpl::ConnectionImpl(framing::ProtocolVersion v, const ConnectionSettings& settings) + : Bounds(settings.maxFrameSize * settings.bounds), +- handler(settings, v), ++ handler(settings, v, *this), + version(v), + nextChannel(1), + shutdownComplete(false), +diff --git a/qpid/cpp/src/qpid/client/SessionImpl.cpp b/qpid/cpp/src/qpid/client/SessionImpl.cpp +index b7ff430..b507625 100644 +--- a/qpid/cpp/src/qpid/client/SessionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/SessionImpl.cpp +@@ -510,8 +510,8 @@ void SessionImpl::proxyOut(AMQFrame& frame) // network thread + + void SessionImpl::sendFrame(AMQFrame& frame, bool canBlock) + { +- channel.handle(frame); + connection->expand(frame.encodedSize(), canBlock); ++ channel.handle(frame); + } + + void SessionImpl::deliver(AMQFrame& frame) // network thread +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 1b74015..6499519 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -73,11 +73,22 @@ using namespace framing; + namespace arg=client::arg; + using client::SessionBase_0_10Access; + +-struct ClusterConnectionProxy : public AMQP_AllProxy::ClusterConnection { ++struct ClusterConnectionProxy : public AMQP_AllProxy::ClusterConnection, public framing::FrameHandler ++{ ++ boost::shared_ptr connection; ++ + ClusterConnectionProxy(client::Connection c) : +- AMQP_AllProxy::ClusterConnection(*client::ConnectionAccess::getImpl(c)) {} ++ AMQP_AllProxy::ClusterConnection(*static_cast(this)), ++ connection(client::ConnectionAccess::getImpl(c)) {} + ClusterConnectionProxy(client::AsyncSession s) : + AMQP_AllProxy::ClusterConnection(SessionBase_0_10Access(s).get()->out) {} ++ ++ void handle(framing::AMQFrame& f) ++ { ++ assert(connection); ++ connection->expand(f.encodedSize(), false); ++ connection->handle(f); ++ } + }; + + // Create a connection with special version that marks it as a catch-up connection. +@@ -153,6 +164,7 @@ void UpdateClient::update() { + ClusterConnectionMembershipBody membership; + map.toMethodBody(membership); + AMQFrame frame(membership); ++ client::ConnectionAccess::getImpl(connection)->expand(frame.encodedSize(), false); + client::ConnectionAccess::getImpl(connection)->handle(frame); + + connection.close(); +diff --git a/qpid/cpp/src/tests/cluster_test.cpp b/qpid/cpp/src/tests/cluster_test.cpp +index 8c18e57..d5f2c45 100644 +--- a/qpid/cpp/src/tests/cluster_test.cpp ++++ b/qpid/cpp/src/tests/cluster_test.cpp +@@ -124,6 +124,7 @@ class Sender { + f.setLastSegment(lastSeg); + f.setFirstFrame(firstFrame); + f.setLastFrame(lastFrame); ++ connection->expand(f.encodedSize(), false); + connection->handle(f); + } + +@@ -209,6 +210,7 @@ QPID_AUTO_TEST_CASE(testBadClientData) { + boost::shared_ptr ci = + client::ConnectionAccess::getImpl(c0.connection); + AMQFrame poison(boost::intrusive_ptr(new PoisonPill)); ++ ci->expand(poison.encodedSize(), false); + ci->handle(poison); + { + ScopedSuppressLogging sl; +-- +1.5.5.6 + +From 939a12c7d1f3fc56f328a23e496a87514f7bd42d Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 27 May 2010 20:02:18 +0000 +Subject: [PATCH] Bug 558526: Fix issues with cluster+security + +- was using "none" not empty string for no ID. +- was multicasting secure id for update and shadow connections. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948967 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e41664eafd017f9eb9c675f573c4ae75eb476402) +--- + qpid/cpp/src/qpid/broker/ConnectionHandler.cpp | 17 ++++++------- + qpid/cpp/src/qpid/broker/ConnectionHandler.h | 7 +---- + qpid/cpp/src/qpid/cluster/Connection.cpp | 30 ++++++++++++------------ + 3 files changed, 24 insertions(+), 30 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +index b2d4210..bf1af2f 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +@@ -181,14 +181,6 @@ void ConnectionHandler::Handler::tuneOk(uint16_t /*channelmax*/, + connection.setHeartbeatInterval(heartbeat); + } + +-void ConnectionHandler::Handler::callUserIdCallbacks ( ) { +- string s; +- if ( false == authenticator->getUsername(s) ) +- s = "none"; +- if ( userIdCallback ) +- userIdCallback ( s ); +-} +- + void ConnectionHandler::Handler::open(const string& /*virtualHost*/, + const framing::Array& /*capabilities*/, bool /*insist*/) + { +@@ -204,7 +196,14 @@ void ConnectionHandler::Handler::open(const string& /*virtualHost*/, + if (sl.get()) secured->activateSecurityLayer(sl); + } + +- callUserIdCallbacks ( ); ++ if ( userIdCallback ) { ++ string s; ++ // Not checking the return value of getUsername, if there is ++ // no username then we want to call the userIdCallback anyway ++ // with an empty string. ++ authenticator->getUsername(s); ++ userIdCallback(s); ++ } + } + + +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.h b/qpid/cpp/src/qpid/broker/ConnectionHandler.h +index 0372942..ecc8868 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.h ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.h +@@ -68,12 +68,7 @@ class ConnectionHandler : public framing::FrameHandler + void closeOk(); + + UserIdCallback userIdCallback; +- void setUserIdCallback ( UserIdCallback fn ) { +- userIdCallback = fn; +- }; +- +- +- void callUserIdCallbacks ( ); ++ void setUserIdCallback ( UserIdCallback fn ) { userIdCallback = fn; }; + + + void start(const qpid::framing::FieldTable& serverProperties, +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index d7e5ee5..18d0e0e 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -620,26 +620,26 @@ void Connection::managementAgents(const std::string& data) { + } + + +-// Only the direct, non-shadow gets this call. + void Connection::mcastUserId ( std::string & id ) { +- cluster.getMulticast().mcastControl( ClusterConnectionSecureUserIdBody(ProtocolVersion(), string(id)), getId() ); +- +- { +- sys::Mutex::ScopedLock l(connectionNegotiationMonitor); +- inConnectionNegotiation = false; +- mcastSentButNotReceived = false; +- connectionNegotiationMonitor.notify(); +- } ++ // Only the directly connected broker will mcast the secure user id, and only ++ // for client connections (not update connections) ++ if (isLocalClient()) ++ cluster.getMulticast().mcastControl( ++ ClusterConnectionSecureUserIdBody(ProtocolVersion(), string(id)), getId() ); ++ { ++ // This call signals the end of the connection negotiation phase. ++ sys::Mutex::ScopedLock l(connectionNegotiationMonitor); ++ inConnectionNegotiation = false; ++ mcastSentButNotReceived = false; ++ connectionNegotiationMonitor.notify(); ++ } + } + + // All connections, shadow or not, get this call. + void Connection::secureUserId(const std::string& id) { +- if ( isShadow() ) { +- // If the user ID is "none", it is not legitimate. Take no action. +- if ( strcmp ( id.c_str(), "none" ) ) { +- connection->setUserId ( id ); +- } +- } ++ // Only set the user ID on shadow connections, and only if id is not the empty string. ++ if ( isShadow() && !id.empty() ) ++ connection->setUserId ( id ); + } + + +-- +1.5.5.6 + +From 20d5d896b2ae01b717fc8c70ce67a95e6fb2c737 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 27 May 2010 17:15:35 -0400 +Subject: [PATCH] Bug 558526: Fixed: authentication with bad credentials causes cluster broker to exit. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948969 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 148033c59cf1b1f36ec4e80eef6e5c9beb65577b) +--- + qpid/cpp/src/qpid/cluster/Connection.cpp | 14 ++++++++++++-- + 1 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 18d0e0e..0772215 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -573,12 +573,22 @@ void Connection::queue(const std::string& encoded) { + } + + void Connection::sessionError(uint16_t , const std::string& msg) { +- cluster.flagError(*this, ERROR_TYPE_SESSION, msg); ++ // If we are negotiating the connection when it fails just close the connectoin. ++ // If it fails after that then we have to flag the error to the cluster. ++ if (inConnectionNegotiation) ++ cluster.getMulticast().mcastControl(ClusterConnectionDeliverCloseBody(), self); ++ else ++ cluster.flagError(*this, ERROR_TYPE_SESSION, msg); + + } + + void Connection::connectionError(const std::string& msg) { +- cluster.flagError(*this, ERROR_TYPE_CONNECTION, msg); ++ // If we are negotiating the connection when it fails just close the connectoin. ++ // If it fails after that then we have to flag the error to the cluster. ++ if (inConnectionNegotiation) ++ cluster.getMulticast().mcastControl(ClusterConnectionDeliverCloseBody(), self); ++ else ++ cluster.flagError(*this, ERROR_TYPE_CONNECTION, msg); + } + + void Connection::addQueueListener(const std::string& q, uint32_t listener) { +-- +1.5.5.6 + +From bebf319d41b4f4abb9cd3b6cbb3af0183d249825 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 28 May 2010 13:37:22 +0000 +Subject: [PATCH] BZ-591420: C++ clients on windows hang at program end + +QPID-2598: Prevent exit hang on windows (at the expense of intermittent leak on exit under linux) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@949176 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 23ce1e7140ce5dd66788a0af066f3f12893046ac) +--- + qpid/cpp/src/qpid/client/ConnectionImpl.cpp | 18 ++++++++---------- + 1 files changed, 8 insertions(+), 10 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +index 99f4411..8848554 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +@@ -83,7 +83,6 @@ class IOThread { + int ioThreads; + int connections; + Mutex threadLock; +- Condition noConnections; + std::vector t; + Poller::shared_ptr poller_; + +@@ -103,8 +102,6 @@ public: + void sub() { + ScopedLock l(threadLock); + --connections; +- if (connections == 0) +- noConnections.notifyAll(); + } + + Poller::shared_ptr poller() const { +@@ -128,14 +125,15 @@ public: + // and we can't do that before we're unloaded as we can't + // restart the Poller after shutting it down + ~IOThread() { +- ScopedLock l(threadLock); +- while (connections > 0) { +- noConnections.wait(threadLock); ++ std::vector threads; ++ { ++ ScopedLock l(threadLock); ++ if (poller_) ++ poller_->shutdown(); ++ t.swap(threads); + } +- if (poller_) +- poller_->shutdown(); +- for (int i=0; i::iterator i = threads.begin(); i != threads.end(); ++i) { ++ i->join(); + } + } + }; +-- +1.5.5.6 + +From ad3a7e4927edc01a262a0ee3903f55592b41d337 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Mon, 31 May 2010 15:14:54 +0000 +Subject: [PATCH] Bug 597362 Sporadic failure of check-long in cluster_tests.py test_failover. + +Fixed assertion error in cluster_tests.py test_failover. + +Added missing call to expandd in cluster/RetractClient.cpp + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@949767 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 866d10b0fdd44c6df8ea8fd2f497b1bc28fc432d) +--- + qpid/cpp/src/qpid/cluster/Connection.cpp | 2 +- + qpid/cpp/src/qpid/cluster/RetractClient.cpp | 1 + + 2 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 0772215..43a4793 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -439,7 +439,7 @@ void Connection::membership(const FieldTable& joiners, const FieldTable& members + } + + void Connection::retractOffer() { +- QPID_LOG(debug, cluster << " incoming update retracted on connection " << *this); ++ QPID_LOG(info, cluster << " incoming update retracted on connection " << *this); + cluster.updateInRetracted(); + self.second = 0; // Mark this as completed update connection. + } +diff --git a/qpid/cpp/src/qpid/cluster/RetractClient.cpp b/qpid/cpp/src/qpid/cluster/RetractClient.cpp +index 7d9f52f..a8c4b0d 100644 +--- a/qpid/cpp/src/qpid/cluster/RetractClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/RetractClient.cpp +@@ -52,6 +52,7 @@ void RetractClient::run() { + c.open(url, connectionSettings); + AutoClose ac(c); + AMQFrame retract((ClusterConnectionRetractOfferBody())); ++ client::ConnectionAccess::getImpl(c)->expand(retract.encodedSize(), false); + client::ConnectionAccess::getImpl(c)->handle(retract); + } catch (const std::exception& e) { + QPID_LOG(error, " while retracting retract to " << url << ": " << e.what()); +-- +1.5.5.6 + +From 93c3927ec66f0c98332286fe36a93d9ab0c2a752 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 28 May 2010 14:10:57 +0000 +Subject: [PATCH] BZ-598350 - Fixed compilation error on windows + +Fix compilation error on windows + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@949182 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 3453f90ba58b5036cb48210ed38883261bec1304) +--- + qpid/cpp/src/qpid/client/ConnectionHandler.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +index 6aea4c4..ba15e63 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +@@ -72,7 +72,7 @@ CloseCode ConnectionHandler::convert(uint16_t replyCode) + } + + ConnectionHandler::Adapter::Adapter(ConnectionHandler& h, Bounds& b) : handler(h), bounds(b) {} +-void ConnectionHandler::Adapter::handle(framing::AMQFrame& f) ++void ConnectionHandler::Adapter::handle(qpid::framing::AMQFrame& f) + { + bounds.expand(f.encodedSize(), false); + handler.out(f); +-- +1.5.5.6 + +From 7f006841387b54cb0165cfa6d1423cd3fae06ce2 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 1 Jun 2010 09:25:23 +0000 +Subject: [PATCH] BZ-597066 + +Don't use guest/guest default username/password, use None instead (this allows sasl implementation to infer the correct choice while retaining the ability to override it should that be desired) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@949971 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 5d7e22ba6f96a800a0af166559bea35652665951) +--- + qpid/python/qpid/messaging/endpoints.py | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index 3016543..f5f957c 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -127,8 +127,8 @@ class Connection: + else: + self.port = default(url.port, options.get("port", AMQP_PORT)) + self.heartbeat = options.get("heartbeat") +- self.username = default(url.user, options.get("username", "guest")) +- self.password = default(url.password, options.get("password", "guest")) ++ self.username = default(url.user, options.get("username", None)) ++ self.password = default(url.password, options.get("password", None)) + + self.sasl_mechanisms = options.get("sasl_mechanisms") + self.sasl_service = options.get("sasl_service", "qpidd") +-- +1.5.5.6 + +From c9a6a956b126ccc27e03cb32cea269cc3a0b495f Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 1 Jun 2010 18:54:56 +0000 +Subject: [PATCH] BZ-591650 + +QPID-2636: Ensure close is called for a disconnect preventing occasional leaks of abruptly terminated connections + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950201 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit fff0a43d69db6e62f1a21d52f752bf59c35fbd2a) +--- + qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp | 11 +++++------ + qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp | 10 +++------- + 2 files changed, 8 insertions(+), 13 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp b/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp +index 5771141..30a87d9 100644 +--- a/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp ++++ b/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp +@@ -173,9 +173,8 @@ void AsynchIOHandler::readbuff(AsynchIO& , AsynchIO::BufferBase* buff) { + } + } + +-void AsynchIOHandler::eof(AsynchIO&) { +- QPID_LOG(debug, "DISCONNECTED [" << identifier << "]"); +- if (codec) codec->closed(); ++void AsynchIOHandler::eof(AsynchIO& a) { ++ disconnect(a); + readError = true; + aio->queueWriteClose(); + } +@@ -190,9 +189,9 @@ void AsynchIOHandler::closedSocket(AsynchIO&, const Socket& s) { + delete this; + } + +-void AsynchIOHandler::disconnect(AsynchIO& a) { +- // treat the same as eof +- eof(a); ++void AsynchIOHandler::disconnect(AsynchIO&) { ++ QPID_LOG(debug, "DISCONNECTED [" << identifier << "]"); ++ if (codec) codec->closed(); + } + + // Notifications +diff --git a/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp b/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp +index fd78861..cef9f1f 100644 +--- a/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp ++++ b/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp +@@ -554,13 +554,9 @@ void AsynchIO::writeable(DispatchHandle& h) { + } + + void AsynchIO::disconnected(DispatchHandle& h) { +- // If we've already queued close do it instead of disconnected callback +- if (queuedClose) { +- close(h); +- } else if (disCallback) { +- disCallback(*this); +- h.unwatch(); +- } ++ // If we have not already queued close then call disconnected callback before closing ++ if (!queuedClose && disCallback) disCallback(*this); ++ close(h); + } + + /* +-- +1.5.5.6 + +From 01a4cfaf9b3a3c5539f80f301722852d6ae37425 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 1 Jun 2010 18:59:52 +0000 +Subject: [PATCH] BZ-598597 (fix client leaks on linux) + +QPID-2004: Send disconnected event to any handles still registered after shutdown to ensure they can clean themselves up + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950205 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 292347fdbd7ef8e204ff3486b21497f33bff50fd) +--- + qpid/cpp/src/qpid/cluster/PollerDispatch.cpp | 6 ++- + qpid/cpp/src/qpid/sys/Poller.h | 2 + + qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp | 46 ++++++++++++++++++++++++++ + qpid/cpp/src/qpid/sys/solaris/ECFPoller.cpp | 5 +++ + qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp | 5 +++ + 5 files changed, 62 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/PollerDispatch.cpp b/qpid/cpp/src/qpid/cluster/PollerDispatch.cpp +index a839ef8..b8d94b9 100644 +--- a/qpid/cpp/src/qpid/cluster/PollerDispatch.cpp ++++ b/qpid/cpp/src/qpid/cluster/PollerDispatch.cpp +@@ -60,8 +60,10 @@ void PollerDispatch::dispatch(sys::DispatchHandle& h) { + + // Entry point: called if disconnected from CPG. + void PollerDispatch::disconnect(sys::DispatchHandle& ) { +- QPID_LOG(critical, "Disconnected from cluster"); +- onError(); ++ if (!poller->hasShutdown()) { ++ QPID_LOG(critical, "Disconnected from cluster"); ++ onError(); ++ } + } + + }} // namespace qpid::cluster +diff --git a/qpid/cpp/src/qpid/sys/Poller.h b/qpid/cpp/src/qpid/sys/Poller.h +index 413d424..47b7606 100644 +--- a/qpid/cpp/src/qpid/sys/Poller.h ++++ b/qpid/cpp/src/qpid/sys/Poller.h +@@ -99,6 +99,8 @@ public: + QPID_COMMON_EXTERN void monitorHandle(PollerHandle& handle, Direction dir); + QPID_COMMON_EXTERN void unmonitorHandle(PollerHandle& handle, Direction dir); + QPID_COMMON_EXTERN Event wait(Duration timeout = TIME_INFINITE); ++ ++ QPID_COMMON_EXTERN bool hasShutdown(); + }; + + /** +diff --git a/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp b/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp +index 7b0d0aa..9ae9bce 100644 +--- a/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp ++++ b/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp +@@ -22,6 +22,7 @@ + #include "qpid/sys/Poller.h" + #include "qpid/sys/IOHandle.h" + #include "qpid/sys/Mutex.h" ++#include "qpid/sys/AtomicCount.h" + #include "qpid/sys/DeletionManager.h" + #include "qpid/sys/posix/check.h" + #include "qpid/sys/posix/PrivatePosix.h" +@@ -33,6 +34,7 @@ + + #include + #include ++#include + #include + + namespace qpid { +@@ -156,6 +158,37 @@ PollerHandle::~PollerHandle() { + PollerHandleDeletionManager.markForDeletion(impl); + } + ++class HandleSet ++{ ++ Mutex lock; ++ std::set handles; ++ public: ++ void add(PollerHandle*); ++ void remove(PollerHandle*); ++ void cleanup(); ++}; ++ ++void HandleSet::add(PollerHandle* h) ++{ ++ ScopedLock l(lock); ++ handles.insert(h); ++} ++void HandleSet::remove(PollerHandle* h) ++{ ++ ScopedLock l(lock); ++ handles.erase(h); ++} ++void HandleSet::cleanup() ++{ ++ // Inform all registered handles of disconnection ++ std::set copy; ++ handles.swap(copy); ++ for (std::set::const_iterator i = copy.begin(); i != copy.end(); ++i) { ++ Poller::Event event(*i, Poller::DISCONNECTED); ++ event.process(); ++ } ++} ++ + /** + * Concrete implementation of Poller to use the Linux specific epoll + * interface +@@ -230,6 +263,8 @@ class PollerPrivate { + bool isShutdown; + InterruptHandle interruptHandle; + ::sigset_t sigMask; ++ HandleSet registeredHandles; ++ AtomicCount threadCount; + + static ::__uint32_t directionToEpollEvent(Poller::Direction dir) { + switch (dir) { +@@ -308,6 +343,7 @@ void Poller::registerHandle(PollerHandle& handle) { + epe.data.u64 = 0; // Keep valgrind happy + epe.data.ptr = &eh; + ++ impl->registeredHandles.add(&handle); + QPID_POSIX_CHECK(::epoll_ctl(impl->epollFd, EPOLL_CTL_ADD, eh.fd(), &epe)); + + eh.setActive(); +@@ -318,6 +354,7 @@ void Poller::unregisterHandle(PollerHandle& handle) { + ScopedLock l(eh.lock); + assert(!eh.isIdle()); + ++ impl->registeredHandles.remove(&handle); + int rc = ::epoll_ctl(impl->epollFd, EPOLL_CTL_DEL, eh.fd(), 0); + // Ignore EBADF since deleting a nonexistent fd has the overall required result! + // And allows the case where a sloppy program closes the fd and then does the delFd() +@@ -475,6 +512,7 @@ void Poller::run() { + ::sigfillset(&ss); + ::pthread_sigmask(SIG_SETMASK, &ss, 0); + ++ ++(impl->threadCount); + do { + Event event = wait(); + +@@ -486,6 +524,8 @@ void Poller::run() { + switch (event.type) { + case SHUTDOWN: + PollerHandleDeletionManager.destroyThreadState(); ++ //last thread to respond to shutdown cleans up: ++ if (--(impl->threadCount) == 0) impl->registeredHandles.cleanup(); + return; + default: + // This should be impossible +@@ -497,6 +537,12 @@ void Poller::run() { + QPID_LOG(error, "IO worker thread exiting with unhandled exception: " << e.what()); + } + PollerHandleDeletionManager.destroyThreadState(); ++ --(impl->threadCount); ++} ++ ++bool Poller::hasShutdown() ++{ ++ return impl->isShutdown; + } + + Poller::Event Poller::wait(Duration timeout) { +diff --git a/qpid/cpp/src/qpid/sys/solaris/ECFPoller.cpp b/qpid/cpp/src/qpid/sys/solaris/ECFPoller.cpp +index f12012c..06d542c 100644 +--- a/qpid/cpp/src/qpid/sys/solaris/ECFPoller.cpp ++++ b/qpid/cpp/src/qpid/sys/solaris/ECFPoller.cpp +@@ -293,6 +293,11 @@ void Poller::shutdown() { + impl->interrupt(); + } + ++bool Poller::hasShutdown() ++{ ++ return impl->isShutdown; ++} ++ + bool Poller::interrupt(PollerHandle& handle) { + PollerPrivate::InterruptHandle& ih = impl->interruptHandle; + PollerHandlePrivate& eh = *static_cast(ih).impl; +diff --git a/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp b/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp +index 4fcc915..d326ab0 100755 +--- a/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp ++++ b/qpid/cpp/src/qpid/sys/windows/IocpPoller.cpp +@@ -100,6 +100,11 @@ void Poller::shutdown() { + PostQueuedCompletionStatus(impl->iocp, 0, key, 0); + } + ++bool Poller::hasShutdown() ++{ ++ return impl->isShutdown; ++} ++ + bool Poller::interrupt(PollerHandle&) { + return false; // There's no concept of a registered handle. + } +-- +1.5.5.6 + +From 9e7d9497b8665b51075ddcfd1d01d805f009f78b Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 2 Jun 2010 10:24:10 +0000 +Subject: [PATCH] Bug 538188 - Fixed connection.start() hangs if connection is not accepted + +QPID-2637: Mark connection as failed if read from socket fails + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950472 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit ee264c0fdaede4c4fee624b289aad475c9bd31b0) +--- + qpid/python/qpid/connection.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/connection.py b/qpid/python/qpid/connection.py +index 2c61e5a..7dbefb8 100644 +--- a/qpid/python/qpid/connection.py ++++ b/qpid/python/qpid/connection.py +@@ -132,6 +132,7 @@ class Connection(Framer): + + def detach_all(self): + self.lock.acquire() ++ self.failed = True + try: + for ssn in self.attached.values(): + if self.close_code[0] != 200: +-- +1.5.5.6 + +From e61456d966e7f4d35aaf9a0e04d2f4d5142c7ae3 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 2 Jun 2010 10:39:10 +0000 +Subject: [PATCH] Bug 596907 - Fixed Default behaviour of new messaging client is to retry forever + +QPID-664: Changed default for reconnect to false as that is more intuitive (e.g. when you specify the wrong broker address to start with) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950480 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit d5632b8d700ac1fdec1c9d380f6478c59f7a7f1b) +--- + .../src/qpid/client/amqp0_10/ConnectionImpl.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +index 58f4f2a..f93df90 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +@@ -111,7 +111,7 @@ void convert(const Variant::Map& from, ConnectionSettings& to) + } + + ConnectionImpl::ConnectionImpl(const std::string& url, const Variant::Map& options) : +- reconnect(true), timeout(-1), limit(-1), ++ reconnect(false), timeout(-1), limit(-1), + minReconnectInterval(3), maxReconnectInterval(60), + retries(0), reconnectOnLimitExceeded(true) + { +-- +1.5.5.6 + +From b63360247ac0a9a8faf5a47c2dc4c53e079125c0 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 2 Jun 2010 15:49:49 +0000 +Subject: [PATCH] Bug 598516: Fixed sporadic client "reserved bits not 0" exceptions with cluster + encryption. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950608 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e15ce475ce200560b650f8d6c512ffdaa42e76f5) +--- + qpid/cpp/src/qpid/broker/ConnectionHandler.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +index bf1af2f..225735d 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +@@ -188,7 +188,6 @@ void ConnectionHandler::Handler::open(const string& /*virtualHost*/, + framing::Array array(0x95); // str16 array + for (std::vector::iterator i = urls.begin(); i < urls.end(); ++i) + array.add(boost::shared_ptr(new Str16Value(i->str()))); +- proxy.openOk(array); + + //install security layer if one has been negotiated: + if (secured) { +@@ -204,6 +203,7 @@ void ConnectionHandler::Handler::open(const string& /*virtualHost*/, + authenticator->getUsername(s); + userIdCallback(s); + } ++ proxy.openOk(array); + } + + +-- +1.5.5.6 + +From 548ca3db11f4ce05063393bf402e4467684ca624 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 2 Jun 2010 19:45:34 +0000 +Subject: [PATCH] BZ-598597: Relax cluster assertions, necessitated by previous fix for leaks. + +QPID-2004: Now that connections are cleaned up on shutdown, some cluster safety assertions need to be relaxed. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950735 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 7776e2efa144a6179311a8e95e27c298a233d494) +--- + qpid/cpp/src/qpid/broker/Queue.cpp | 1 - + qpid/cpp/src/qpid/broker/SemanticState.cpp | 2 -- + 2 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp +index 42c678c..8c9e5b8 100644 +--- a/qpid/cpp/src/qpid/broker/Queue.cpp ++++ b/qpid/cpp/src/qpid/broker/Queue.cpp +@@ -374,7 +374,6 @@ bool Queue::browseNextMessage(QueuedMessage& m, Consumer::shared_ptr c) + + void Queue::removeListener(Consumer::shared_ptr c) + { +- assertClusterSafe(); + QueueListeners::NotificationSet set; + { + Mutex::ScopedLock locker(messageLock); +diff --git a/qpid/cpp/src/qpid/broker/SemanticState.cpp b/qpid/cpp/src/qpid/broker/SemanticState.cpp +index e85d835..b8981b4 100644 +--- a/qpid/cpp/src/qpid/broker/SemanticState.cpp ++++ b/qpid/cpp/src/qpid/broker/SemanticState.cpp +@@ -391,7 +391,6 @@ SemanticState::ConsumerImpl::~ConsumerImpl() + + void SemanticState::cancel(ConsumerImpl::shared_ptr c) + { +- assertClusterSafe(); + c->disableNotify(); + if (session.isAttached()) + session.getConnection().outputTasks.removeOutputTask(c.get()); +@@ -698,7 +697,6 @@ void SemanticState::ConsumerImpl::enableNotify() + void SemanticState::ConsumerImpl::disableNotify() + { + Mutex::ScopedLock l(lock); +- assertClusterSafe(); + notifyEnabled = false; + } + +-- +1.5.5.6 + +From b90d8b5e0fa2723dfb16c8d7b597d906e447b762 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Thu, 3 Jun 2010 10:07:23 +0000 +Subject: [PATCH] Bug 599470 - Fixed - options string for connection does not work for some types + +QPID-2640: Don't try to cast integer-like values during parsing; leave as strings and let the usage context determine the correct type to cast to. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950932 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a1d95779da866899f1bdc0a2dd00f21dc131defb) +--- + qpid/cpp/src/qpid/messaging/AddressParser.cpp | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/messaging/AddressParser.cpp b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +index 4f22410..aea9118 100644 +--- a/qpid/cpp/src/qpid/messaging/AddressParser.cpp ++++ b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +@@ -200,9 +200,6 @@ bool AddressParser::readSimpleValue(Variant& value) + std::string s; + if (readWord(s)) { + value = s; +- try { value = value.asInt32(); return true; } catch (const InvalidConversion&) {} +- try { value = value.asInt64(); return true; } catch (const InvalidConversion&) {} +- try { value = value.asDouble(); return true; } catch (const InvalidConversion&) {} + return true; + } else { + return false; +-- +1.5.5.6 + +From fec18359ad3c942fb2168bfbfdbe0c43e071fb27 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 2 Jun 2010 21:21:38 +0000 +Subject: [PATCH] Fix error string for invalid options, fix exception handling in qpid_send/qpid_receive. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@950763 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 7bbadfd55b56d1917c6b3f62601aedcc07ad2018) +--- + qpid/cpp/src/qpid/messaging/Connection.cpp | 2 +- + qpid/cpp/src/tests/qpid_receive.cpp | 19 ++++++++++--------- + qpid/cpp/src/tests/qpid_send.cpp | 15 ++++++++------- + 3 files changed, 19 insertions(+), 17 deletions(-) + +diff --git a/qpid/cpp/src/qpid/messaging/Connection.cpp b/qpid/cpp/src/qpid/messaging/Connection.cpp +index 53d3756..2bd5ba9 100644 +--- a/qpid/cpp/src/qpid/messaging/Connection.cpp ++++ b/qpid/cpp/src/qpid/messaging/Connection.cpp +@@ -46,7 +46,7 @@ Connection::Connection(const std::string& url, const std::string& o) + if (o.empty() || parser.parseMap(options)) { + PI::ctor(*this, new qpid::client::amqp0_10::ConnectionImpl(url, options)); + } else { +- throw InvalidOptionString(o); ++ throw InvalidOptionString("Invalid option string: " + o); + } + } + Connection::Connection(const std::string& url, const Variant::Map& options) +diff --git a/qpid/cpp/src/tests/qpid_receive.cpp b/qpid/cpp/src/tests/qpid_receive.cpp +index 15b8d76..294a60b 100644 +--- a/qpid/cpp/src/tests/qpid_receive.cpp ++++ b/qpid/cpp/src/tests/qpid_receive.cpp +@@ -103,7 +103,7 @@ struct Options : public qpid::Options + ("report-total", qpid::optValue(reportTotal), "Report total throughput and latency statistics") + ("report-every", qpid::optValue(reportEvery,"N"), "Report throughput and latency statistics every N messages.") + ("report-header", qpid::optValue(reportHeader, "yes|no"), "Headers on report.") ("ready-address", qpid::optValue(readyAddress, "ADDRESS"), +- "send a message to this address when ready to receive") ++ "send a message to this address when ready to receive") + ("help", qpid::optValue(help), "print this usage statement"); + add(log); + } +@@ -162,10 +162,11 @@ using namespace qpid::tests; + + int main(int argc, char ** argv) + { +- Options opts; +- if (opts.parse(argc, argv)) { +- Connection connection(opts.url, opts.connectionOptions); +- try { ++ Connection connection; ++ try { ++ Options opts; ++ if (opts.parse(argc, argv)) { ++ connection = Connection(opts.url, opts.connectionOptions); + connection.open(); + std::auto_ptr updates(opts.failoverUpdates ? new FailoverUpdates(connection) : 0); + Session session = opts.tx ? connection.createTransactionalSession() : connection.createSession(); +@@ -227,10 +228,10 @@ int main(int argc, char ** argv) + session.close(); + connection.close(); + return 0; +- } catch(const std::exception& error) { +- std::cerr << "Failure: " << error.what() << std::endl; +- connection.close(); + } ++ } catch(const std::exception& error) { ++ std::cerr << "Failure: " << error.what() << std::endl; ++ connection.close(); ++ return 1; + } +- return 1; + } +diff --git a/qpid/cpp/src/tests/qpid_send.cpp b/qpid/cpp/src/tests/qpid_send.cpp +index 7fef57a..98d7cd6 100644 +--- a/qpid/cpp/src/tests/qpid_send.cpp ++++ b/qpid/cpp/src/tests/qpid_send.cpp +@@ -247,10 +247,11 @@ class MapContentGenerator : public ContentGenerator { + + int main(int argc, char ** argv) + { ++ Connection connection; + Options opts; +- if (opts.parse(argc, argv)) { +- Connection connection(opts.url, opts.connectionOptions); +- try { ++ try { ++ if (opts.parse(argc, argv)) { ++ connection = Connection(opts.url, opts.connectionOptions); + connection.open(); + std::auto_ptr updates(opts.failoverUpdates ? new FailoverUpdates(connection) : 0); + Session session = opts.tx ? connection.createTransactionalSession() : connection.createSession(); +@@ -327,10 +328,10 @@ int main(int argc, char ** argv) + session.close(); + connection.close(); + return 0; +- } catch(const std::exception& error) { +- std::cout << "Failed: " << error.what() << std::endl; +- connection.close(); + } ++ } catch(const std::exception& error) { ++ std::cout << "Failed: " << error.what() << std::endl; ++ connection.close(); ++ return 1; + } +- return 1; + } +-- +1.5.5.6 + +From 4b96352abe88aa513434d59812a6d44679d2acd8 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Fri, 4 Jun 2010 15:23:32 +0000 +Subject: [PATCH] Bug 589675 - Fix initialization-order problem with URL protocol tags. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951441 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 4424bc7676367fef809d0de1fb720c1c50c6bd08) +--- + qpid/cpp/include/qpid/Url.h | 2 -- + qpid/cpp/src/qpid/Url.cpp | 38 +++++++++++++++++++++++++++++++------- + 2 files changed, 31 insertions(+), 9 deletions(-) + +diff --git a/qpid/cpp/include/qpid/Url.h b/qpid/cpp/include/qpid/Url.h +index 8093161..353e9d5 100644 +--- a/qpid/cpp/include/qpid/Url.h ++++ b/qpid/cpp/include/qpid/Url.h +@@ -82,8 +82,6 @@ struct Url : public std::vector

{ + QPID_COMMON_EXTERN std::string getPass() const; + + private: +- static std::vector protocols; +- + mutable std::string cache; // cache string form for efficiency. + std::string user, pass; + +diff --git a/qpid/cpp/src/qpid/Url.cpp b/qpid/cpp/src/qpid/Url.cpp +index 0b9fdbf..ab796f4 100644 +--- a/qpid/cpp/src/qpid/Url.cpp ++++ b/qpid/cpp/src/qpid/Url.cpp +@@ -22,10 +22,12 @@ + #include "qpid/sys/SystemInfo.h" + #include "qpid/sys/StrError.h" + #include "qpid/client/Connector.h" +- ++#include "qpid/sys/Mutex.h" + #include + + #include ++#include ++#include + + #include + +@@ -34,6 +36,32 @@ using boost::lexical_cast; + + namespace qpid { + ++class ProtocolTags { ++ public: ++ bool find(const string& tag) { ++ sys::Mutex::ScopedLock l(lock); ++ return std::find(tags.begin(), tags.end(), tag) != tags.end(); ++ } ++ ++ void add(const string& tag) { ++ sys::Mutex::ScopedLock l(lock); ++ if (std::find(tags.begin(), tags.end(), tag) == tags.end()) ++ tags.push_back(tag); ++ } ++ ++ static ProtocolTags& instance() { ++ /** First call must be made while program is still single threaded. ++ * This will be the case since tags are registered in static initializers. ++ */ ++ static ProtocolTags tags; ++ return tags; ++ } ++ ++ private: ++ sys::Mutex lock; ++ vector tags; ++}; ++ + Url::Invalid::Invalid(const string& s) : Exception(s) {} + + Url Url::getHostNameUrl(uint16_t port) { +@@ -119,9 +147,7 @@ class UrlParser { + const char* j = std::find(i,end,':'); + if (j != end) { + string tag(i,j); +- if (std::find(Url::protocols.begin(), Url::protocols.end(), tag) != +- Url::protocols.end()) +- { ++ if (ProtocolTags::instance().find(tag)) { + i = j+1; + result = tag; + return true; +@@ -234,8 +260,6 @@ std::istream& operator>>(std::istream& is, Url& url) { + return is; + } + +-std::vector Url::protocols; +- +-void Url::addProtocol(const std::string& tag) { protocols.push_back(tag); } ++void Url::addProtocol(const std::string& tag) { ProtocolTags::instance().add(tag); } + + } // namespace qpid +-- +1.5.5.6 + +From 8504208f6107251003272fec9055cc937cef5f70 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Fri, 4 Jun 2010 11:43:49 -0400 +Subject: [PATCH] Fixed sporadic failure of cluster_tests.py sasl_test + +- added missing initializer for cluster::Connection::inConnectionNegotiation + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951452 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 888a7d9b4d896314a4515dfb0c9f172b87e0a1cd) +--- + qpid/cpp/src/qpid/cluster/Connection.cpp | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 43a4793..9a8cab2 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -108,7 +108,8 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + mcastFrameHandler(cluster.getMulticast(), self), + updateIn(c.getUpdateReceiver()), + secureConnection(0), +- mcastSentButNotReceived(false) ++ mcastSentButNotReceived(false), ++ inConnectionNegotiation(true) + { + cluster.addLocalConnection(this); + if (isLocalClient()) { +-- +1.5.5.6 + +From f2fd925d0846d940af997d9c6451404fa054a137 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Fri, 4 Jun 2010 17:36:47 -0400 +Subject: [PATCH] Trivial change: Eliminate windows warning + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951502 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/include/qpid/framing/FieldValue.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/include/qpid/framing/FieldValue.h b/qpid/cpp/include/qpid/framing/FieldValue.h +index 8af1f8d..19220e7 100644 +--- a/qpid/cpp/include/qpid/framing/FieldValue.h ++++ b/qpid/cpp/include/qpid/framing/FieldValue.h +@@ -123,7 +123,7 @@ template <> + inline bool FieldValue::convertsTo() const { return data->convertsToString(); } + + template <> +-inline int FieldValue::get() const { return data->getInt(); } ++inline int FieldValue::get() const { return static_cast(data->getInt()); } + + template <> + inline int64_t FieldValue::get() const { return data->getInt(); } +-- +1.5.5.6 + +From bb0b3b1a4014604dd951ae67e566d1ef3ecfccc1 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Fri, 4 Jun 2010 17:48:44 -0400 +Subject: [PATCH] BZ 582460: Remove dependency on qpid::sys::AbsTime (which uses boost on Windows) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951150 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/examples/messaging/spout.cpp | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/spout.cpp b/qpid/cpp/examples/messaging/spout.cpp +index 05d66f6..e100560 100644 +--- a/qpid/cpp/examples/messaging/spout.cpp ++++ b/qpid/cpp/examples/messaging/spout.cpp +@@ -25,19 +25,16 @@ + #include + #include + #include +-#include + + #include + #include + #include ++#include + + #include "OptionParser.h" + + using namespace qpid::messaging; + using namespace qpid::types; +-using qpid::sys::AbsTime; +-using qpid::sys::now; +-using qpid::sys::TIME_INFINITE; + + typedef std::vector string_vector; + +@@ -152,8 +149,11 @@ int main(int argc, char** argv) + message.setContent(options.content); + message.setContentType("text/plain"); + } +- AbsTime end(now(), options.timeout * qpid::sys::TIME_SEC); +- for (int count = 0; (count < options.count || options.count == 0) && (options.timeout == 0 || end > now()); count++) { ++ std::time_t start = std::time(0); ++ for (int count = 0; ++ (count < options.count || options.count == 0) && ++ (options.timeout == 0 || std::difftime(std::time(0), start) < options.timeout); ++ count++) { + if (!options.replyto.empty()) message.setReplyTo(Address(options.replyto)); + std::string id = options.id.empty() ? Uuid(true).str() : options.id; + std::stringstream spoutid; +-- +1.5.5.6 + +From 4dfbb074af5cd176b94ab532fa901c0b716070c1 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Fri, 4 Jun 2010 17:54:33 -0400 +Subject: [PATCH] BZ 582460, BZ577274 + +Windows SDK work: +* Added message_drain & message_spout programs back into the SDK examples +* Modified messaging example project files to use qpidmessaging library (instead of old qpidclient lib) +* Removed all x64 configurations from the example messaging projects + as we don't include the x64 libs in the SDK +* Put import libs in lib directory to separate them from dlls +* Removed use of BOOST_ROOT env var from example projects as no boost headers are needed by the SDK + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951572 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/bld-winsdk.ps1 | 19 +- + qpid/cpp/examples/examples.sln | 32 +-- + .../cpp/examples/messaging/messaging_client.vcproj | 221 +++----------------- + qpid/cpp/examples/messaging/messaging_drain.vcproj | 183 +--------------- + .../messaging/messaging_map_receiver.vcproj | 221 +++----------------- + .../examples/messaging/messaging_map_sender.vcproj | 221 +++----------------- + .../cpp/examples/messaging/messaging_server.vcproj | 221 +++----------------- + qpid/cpp/examples/messaging/messaging_spout.vcproj | 182 +--------------- + qpid/cpp/examples/old-examples.sln | 12 - + 9 files changed, 159 insertions(+), 1153 deletions(-) + +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index 3e13c18..8618160 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -59,11 +59,13 @@ devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api + devenv qpid-cpp.sln /build "Debug|Win32" /project INSTALL + devenv qpid-cpp.sln /build "Release|Win32" /project INSTALL + +-# This is kludgy until we have more than one entry as the array declaration syntax ++# This would be kludgy if we have only one entry as the array declaration syntax + # can't cope with just one nested array +-$move1=('bin/boost/*','bin') +-$move=@(0) +-$move[0]=$move1 ++# Target must be a directory ++$move=( ++ ('bin/*.lib','lib'), ++ ('bin/boost/*.dll','bin') ++) + + $preserve=( + 'include/qpid/agent', +@@ -77,16 +79,12 @@ $preserve=( + $remove=( + 'bin/qpidd.exe', 'bin/qpidbroker*.*', + 'bin/qmfengine*.*', 'bin/qpidxarm*.*', +- 'bin/boost_regex*.*', 'bin/boost*.lib', ++ 'bin/boost_regex*.*', + 'bin/boost', + 'conf', + 'examples/direct', + 'examples/failover', + 'examples/fanout', +- 'examples/messaging/drain.cpp', +- 'examples/messaging/spout.cpp', +- 'examples/messaging/messaging_drain.vcproj', +- 'examples/messaging/messaging_spout.vcproj', + 'examples/pub-sub', + 'examples/qmf-console', + 'examples/request-response', +@@ -100,8 +98,7 @@ $remove=( + # Move some files around in the install tree + foreach ($pattern in $move) { + $target = Join-Path $install_dir $pattern[1] +- $tparent = Split-Path -parent $target +- New-Item -force -type directory $tparent ++ New-Item -force -type directory $target + Move-Item -force -path "$install_dir/$($pattern[0])" -destination "$install_dir/$($pattern[1])" + } + # Copy aside the files to preserve +diff --git a/qpid/cpp/examples/examples.sln b/qpid/cpp/examples/examples.sln +index 14dcc34..4a26ac7 100644 +--- a/qpid/cpp/examples/examples.sln ++++ b/qpid/cpp/examples/examples.sln +@@ -26,15 +26,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_map_receiver", "m + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_map_sender", "messaging\messaging_map_sender.vcproj", "{3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}" + EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_queue_receiver", "messaging\messaging_queue_receiver.vcproj", "{64932FB7-FECA-1BAD-1FEE-AE349A6B75AA}" +-EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_queue_sender", "messaging\messaging_queue_sender.vcproj", "{2668EEDD-FECA-1BAD-1FEE-AE349A6B75AA}" +-EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_server", "messaging\messaging_server.vcproj", "{E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}" + EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_topic_receiver", "messaging\messaging_topic_receiver.vcproj", "{64979B71-FECA-1BAD-1FEE-AE349A6B75AA}" ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_drain", "messaging\messaging_drain.vcproj", "{D79791E5-C593-4F23-B545-0CE72D181F2A}" + EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_topic_sender", "messaging\messaging_topic_sender.vcproj", "{E068EA69-FECA-1BAD-1FEE-AE349A6B75AA}" ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_spout", "messaging\messaging_spout.vcproj", "{D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}" + EndProject + Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution +@@ -54,26 +50,18 @@ Global + {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 + {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 + {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 +- {64932FB7-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 +- {64932FB7-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 +- {64932FB7-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 +- {64932FB7-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 +- {2668EEDD-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 +- {2668EEDD-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 +- {2668EEDD-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 +- {2668EEDD-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 +- {64979B71-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 +- {64979B71-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 +- {64979B71-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 +- {64979B71-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 +- {E068EA69-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 +- {E068EA69-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 +- {E068EA69-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 +- {E068EA69-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|Win32.ActiveCfg = Debug|Win32 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|Win32.Build.0 = Debug|Win32 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|Win32.ActiveCfg = Release|Win32 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|Win32.Build.0 = Release|Win32 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|Win32.ActiveCfg = Debug|Win32 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|Win32.Build.0 = Debug|Win32 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|Win32.ActiveCfg = Release|Win32 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE +diff --git a/qpid/cpp/examples/messaging/messaging_client.vcproj b/qpid/cpp/examples/messaging/messaging_client.vcproj +index e2f8c26..f6e5da0 100644 +--- a/qpid/cpp/examples/messaging/messaging_client.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_client.vcproj +@@ -26,15 +26,12 @@ + ProjectGUID="{80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}" + RootNamespace="messaging_client" + Keyword="Win32Proj" +- SignManifests="true" ++ TargetFrameworkVersion="0" + > + + +- + + + +@@ -45,7 +42,6 @@ + IntermediateDirectory="Debug\messaging_client\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + ++ + + ++ + +@@ -126,7 +128,6 @@ + IntermediateDirectory="Release\messaging_client\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + ++ Filter="cpp;cxx;cc;c;C" ++ > + ++ RelativePath="client.cpp" ++ > + + + ++ > + ++ RelativePath="CMakeLists.txt" ++ > + ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + +- +- +- +- +- +- ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + + +diff --git a/qpid/cpp/examples/messaging/messaging_drain.vcproj b/qpid/cpp/examples/messaging/messaging_drain.vcproj +index ea7704c..78f89d6 100644 +--- a/qpid/cpp/examples/messaging/messaging_drain.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_drain.vcproj +@@ -26,14 +26,12 @@ + ProjectGUID="{D79791E5-C593-4F23-B545-0CE72D181F2A}" + RootNamespace="messaging_drain" + Keyword="Win32Proj" ++ TargetFrameworkVersion="0" + > + + +- + + + +@@ -63,7 +61,7 @@ + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +@@ -367,6 +202,10 @@ + RelativePath="drain.cpp" + > + ++ ++ + + + +diff --git a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +index ed806c0..a928198 100644 +--- a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +@@ -26,15 +26,12 @@ + ProjectGUID="{92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}" + RootNamespace="messaging_map_receiver" + Keyword="Win32Proj" +- SignManifests="true" ++ TargetFrameworkVersion="0" + > + + +- + + + +@@ -45,7 +42,6 @@ + IntermediateDirectory="Debug\messaging_map_receiver\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + ++ + + ++ + +@@ -126,7 +128,6 @@ + IntermediateDirectory="Release\messaging_map_receiver\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + ++ Filter="cpp;cxx;cc;c;C" ++ > + ++ RelativePath="map_receiver.cpp" ++ > + + + ++ > + ++ RelativePath="CMakeLists.txt" ++ > + ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + +- +- +- +- +- +- ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + + +diff --git a/qpid/cpp/examples/messaging/messaging_map_sender.vcproj b/qpid/cpp/examples/messaging/messaging_map_sender.vcproj +index 55d1606..29b3114 100644 +--- a/qpid/cpp/examples/messaging/messaging_map_sender.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_map_sender.vcproj +@@ -26,15 +26,12 @@ + ProjectGUID="{3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}" + RootNamespace="messaging_map_sender" + Keyword="Win32Proj" +- SignManifests="true" ++ TargetFrameworkVersion="0" + > + + +- + + + +@@ -45,7 +42,6 @@ + IntermediateDirectory="Debug\messaging_map_sender\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + ++ + + ++ + +@@ -126,7 +128,6 @@ + IntermediateDirectory="Release\messaging_map_sender\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + ++ Filter="cpp;cxx;cc;c;C" ++ > + ++ RelativePath="map_sender.cpp" ++ > + + + ++ > + ++ RelativePath="CMakeLists.txt" ++ > + ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + +- +- +- +- +- +- ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + + +diff --git a/qpid/cpp/examples/messaging/messaging_server.vcproj b/qpid/cpp/examples/messaging/messaging_server.vcproj +index 5a4f614..38d43e7 100644 +--- a/qpid/cpp/examples/messaging/messaging_server.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_server.vcproj +@@ -26,15 +26,12 @@ + ProjectGUID="{E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}" + RootNamespace="messaging_server" + Keyword="Win32Proj" +- SignManifests="true" ++ TargetFrameworkVersion="0" + > + + +- + + + +@@ -45,7 +42,6 @@ + IntermediateDirectory="Debug\messaging_server\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + ++ + + ++ + +@@ -126,7 +128,6 @@ + IntermediateDirectory="Release\messaging_server\I386" + ConfigurationType="1" + CharacterSet="0" +- + > + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + ++ Filter="cpp;cxx;cc;c;C" ++ > + ++ RelativePath="server.cpp" ++ > + + + ++ > + ++ RelativePath="CMakeLists.txt" ++ > + ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + +- +- +- +- +- +- ++ ExcludedFromBuild="true" ++ > + ++ Name="VCCustomBuildTool" ++ /> + + + +diff --git a/qpid/cpp/examples/messaging/messaging_spout.vcproj b/qpid/cpp/examples/messaging/messaging_spout.vcproj +index b4b941f..e10b00f 100644 +--- a/qpid/cpp/examples/messaging/messaging_spout.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_spout.vcproj +@@ -32,9 +32,6 @@ + +- + + + +@@ -64,7 +61,7 @@ + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +@@ -365,6 +199,10 @@ + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + ++ ++ + +diff --git a/qpid/cpp/examples/old-examples.sln b/qpid/cpp/examples/old-examples.sln +index 7b84ba8..7f2fa3e 100644 +--- a/qpid/cpp/examples/old-examples.sln ++++ b/qpid/cpp/examples/old-examples.sln +@@ -58,10 +58,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tradedemo_topic_listener", + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tradedemo_topic_publisher", "tradedemo\tradedemo_topic_publisher.vcproj", "{E614CC2C-FECA-1BAD-23CE-CD4095BD3C8B}" + EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_drain", "messaging\messaging_drain.vcproj", "{D79791E5-C593-4F23-B545-0CE72D181F2A}" +-EndProject +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "messaging_spout", "messaging\messaging_spout.vcproj", "{D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}" +-EndProject + Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 +@@ -144,14 +140,6 @@ Global + {E614CC2C-FECA-1BAD-23CE-CD4095BD3C8B}.Debug|Win32.Build.0 = Debug|Win32 + {E614CC2C-FECA-1BAD-23CE-CD4095BD3C8B}.Release|Win32.ActiveCfg = Release|Win32 + {E614CC2C-FECA-1BAD-23CE-CD4095BD3C8B}.Release|Win32.Build.0 = Release|Win32 +- {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|Win32.ActiveCfg = Debug|Win32 +- {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|Win32.Build.0 = Debug|Win32 +- {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|Win32.ActiveCfg = Release|Win32 +- {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|Win32.Build.0 = Release|Win32 +- {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|Win32.ActiveCfg = Debug|Win32 +- {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|Win32.Build.0 = Debug|Win32 +- {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|Win32.ActiveCfg = Release|Win32 +- {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE +-- +1.5.5.6 + +From 79804fa332a5c1b7a2ca7da5cbee843f91f7fa3b Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 7 Jun 2010 16:15:27 +0000 +Subject: [PATCH] Bug 566691 - Fixed - Abort in qpid::management::ManagementAgent::periodicProcessing on shutting down qpidd + +QPID-2649: Ensure timer is stopped before we start deleting broker members + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952307 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 24a1aa7464f703084430b033c1c416391615cbab) +--- + qpid/cpp/src/qpid/broker/Broker.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp +index 09157c1..399ed58 100644 +--- a/qpid/cpp/src/qpid/broker/Broker.cpp ++++ b/qpid/cpp/src/qpid/broker/Broker.cpp +@@ -359,6 +359,7 @@ Broker::~Broker() { + finalize(); // Finalize any plugins. + if (config.auth) + SaslAuthenticator::fini(); ++ timer.stop(); + QPID_LOG(notice, "Shut down"); + } + +-- +1.5.5.6 + +From 395447da146aac21bc8ced9a1de3c75bc1008233 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 7 Jun 2010 19:46:55 +0000 +Subject: [PATCH] Bug 598948 - Fixed - qpid c++ client occasionly fails to authenticate using GSSAPI + +Don't set USER callback, AUTHNAME is sufficient + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952390 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 20850221af97fba3fb4d055c623fc8eb53f70ea3) +--- + qpid/cpp/src/qpid/client/SaslFactory.cpp | 4 ---- + 1 files changed, 0 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/SaslFactory.cpp b/qpid/cpp/src/qpid/client/SaslFactory.cpp +index 5175c77..79acf3c 100644 +--- a/qpid/cpp/src/qpid/client/SaslFactory.cpp ++++ b/qpid/cpp/src/qpid/client/SaslFactory.cpp +@@ -145,10 +145,6 @@ CyrusSasl::CyrusSasl(const ConnectionSettings& s) : conn(0), settings(s) + callbacks[i++].context = 0; + + if (!settings.username.empty()) { +- callbacks[i].id = SASL_CB_USER; +- callbacks[i].proc = (CallbackProc*) &getUserFromSettings; +- callbacks[i++].context = &settings; +- + callbacks[i].id = SASL_CB_AUTHNAME; + callbacks[i].proc = (CallbackProc*) &getUserFromSettings; + callbacks[i++].context = &settings; +-- +1.5.5.6 + +From c13cc742f961cb771f008cd19edf38cb43ee6aeb Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 8 Jun 2010 15:31:31 +0000 +Subject: [PATCH] Bug 577362: Long failover_soak test hangs. + +Cluster handle connection-negotiation phase in local broker. + +The connection negotiation phase up to the "open" or "open-ok" frame +establishes whether/what encryption to use for the rest of the +connection. + +With this patch a cluster broker completes the initial negotiation +with its local clients and only then begins multicasting to other +brokers. The local broker decrypts if necessary and multicasts in the +clear. + +This replaces a problematic locking scheme that was formerly in place +which caused deadlocks. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952692 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 4f6804221443259a89ff761f798d8c25b9cbffa7) +--- + qpid/cpp/src/qpid/broker/Connection.cpp | 3 +- + qpid/cpp/src/qpid/broker/Connection.h | 8 +- + qpid/cpp/src/qpid/broker/ConnectionHandler.cpp | 13 +- + qpid/cpp/src/qpid/broker/ConnectionHandler.h | 12 +-- + qpid/cpp/src/qpid/broker/SaslAuthenticator.h | 10 -- + qpid/cpp/src/qpid/cluster/Connection.cpp | 206 ++++++++++-------------- + qpid/cpp/src/qpid/cluster/Connection.h | 20 +-- + qpid/cpp/src/qpid/cluster/Multicaster.cpp | 1 - + qpid/cpp/src/tests/cluster_test.cpp | 8 +- + qpid/cpp/xml/cluster.xml | 10 +- + 10 files changed, 112 insertions(+), 179 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Connection.cpp b/qpid/cpp/src/qpid/broker/Connection.cpp +index 51615e5..ac574fc 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.cpp ++++ b/qpid/cpp/src/qpid/broker/Connection.cpp +@@ -386,7 +386,6 @@ void Connection::restartTimeout() + timeoutTimer->touch(); + } + +- +- ++bool Connection::isOpen() { return adapter.isOpen(); } + + }} +diff --git a/qpid/cpp/src/qpid/broker/Connection.h b/qpid/cpp/src/qpid/broker/Connection.h +index 0639bcb..ad9f786 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.h ++++ b/qpid/cpp/src/qpid/broker/Connection.h +@@ -63,9 +63,6 @@ class LinkRegistry; + class SecureConnection; + struct ConnectionTimeoutTask; + +-typedef boost::function userIdCallback; +- +- + class Connection : public sys::ConnectionInputHandler, + public ConnectionState, + public RefCounted +@@ -146,9 +143,8 @@ class Connection : public sys::ConnectionInputHandler, + return securitySettings; + } + +- void setUserIdCallback ( UserIdCallback fn ) { +- adapter.setUserIdCallback ( fn ); +- } ++ /** @return true if the initial connection negotiation is complete. */ ++ bool isOpen(); + + private: + typedef boost::ptr_map ChannelMap; +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +index 225735d..c349bc7 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +@@ -87,7 +87,8 @@ ConnectionHandler::ConnectionHandler(Connection& connection, bool isClient, bool + + ConnectionHandler::Handler::Handler(Connection& c, bool isClient, bool isShadow) : + proxy(c.getOutput()), +- connection(c), serverMode(!isClient), acl(0), secured(0), userIdCallback(0) ++ connection(c), serverMode(!isClient), acl(0), secured(0), ++ isOpen(false) + { + if (serverMode) { + +@@ -195,14 +196,7 @@ void ConnectionHandler::Handler::open(const string& /*virtualHost*/, + if (sl.get()) secured->activateSecurityLayer(sl); + } + +- if ( userIdCallback ) { +- string s; +- // Not checking the return value of getUsername, if there is +- // no username then we want to call the userIdCallback anyway +- // with an empty string. +- authenticator->getUsername(s); +- userIdCallback(s); +- } ++ isOpen = true; + proxy.openOk(array); + } + +@@ -272,6 +266,7 @@ void ConnectionHandler::Handler::openOk(const framing::Array& knownHosts) + Url url((*i)->get()); + connection.getKnownHosts().push_back(url); + } ++ isOpen = true; + } + + void ConnectionHandler::Handler::redirect(const string& /*host*/, const framing::Array& /*knownHosts*/) +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.h b/qpid/cpp/src/qpid/broker/ConnectionHandler.h +index ecc8868..6d55cab 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.h ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.h +@@ -40,9 +40,6 @@ namespace broker { + class Connection; + class SecureConnection; + +-typedef boost::function UserIdCallback; +- +- + class ConnectionHandler : public framing::FrameHandler + { + struct Handler : public framing::AMQP_AllOperations::ConnectionHandler +@@ -53,6 +50,7 @@ class ConnectionHandler : public framing::FrameHandler + std::auto_ptr authenticator; + AclModule* acl; + SecureConnection* secured; ++ bool isOpen; + + Handler(Connection& connection, bool isClient, bool isShadow=false); + ~Handler(); +@@ -67,10 +65,6 @@ class ConnectionHandler : public framing::FrameHandler + void close(uint16_t replyCode, const std::string& replyText); + void closeOk(); + +- UserIdCallback userIdCallback; +- void setUserIdCallback ( UserIdCallback fn ) { userIdCallback = fn; }; +- +- + void start(const qpid::framing::FieldTable& serverProperties, + const framing::Array& mechanisms, + const framing::Array& locales); +@@ -95,9 +89,7 @@ class ConnectionHandler : public framing::FrameHandler + void heartbeat(); + void handle(framing::AMQFrame& frame); + void setSecureConnection(SecureConnection* secured); +- void setUserIdCallback ( UserIdCallback fn ) { +- handler->setUserIdCallback ( fn ); +- } ++ bool isOpen() { return handler->isOpen; } + }; + + +diff --git a/qpid/cpp/src/qpid/broker/SaslAuthenticator.h b/qpid/cpp/src/qpid/broker/SaslAuthenticator.h +index f4ad24b..f1f1039 100644 +--- a/qpid/cpp/src/qpid/broker/SaslAuthenticator.h ++++ b/qpid/cpp/src/qpid/broker/SaslAuthenticator.h +@@ -36,12 +36,6 @@ namespace broker { + + class Connection; + +-// Calls your fn with the user ID string, just +-// after the security negotiation is complete. +-// Add your callback to the list with addUserIdCallback(). +-typedef boost::function UserIdCallback; +- +- + class SaslAuthenticator + { + public: +@@ -54,7 +48,6 @@ public: + virtual void getError(std::string&) {} + virtual std::auto_ptr getSecurityLayer(uint16_t maxFrameSize) = 0; + +- virtual void setUserIdCallback ( UserIdCallback ) { } + static bool available(void); + + // Initialize the SASL mechanism; throw if it fails. +@@ -64,9 +57,6 @@ public: + static std::auto_ptr createAuthenticator(Connection& connection, bool isShadow); + + virtual void callUserIdCallbacks() { } +- +-private: +- UserIdCallback userIdCallback; + }; + + }} +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 9a8cab2..08e31c1 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -39,7 +39,6 @@ + #include "qpid/framing/DeliveryProperties.h" + #include "qpid/framing/ClusterConnectionDeliverCloseBody.h" + #include "qpid/framing/ClusterConnectionAnnounceBody.h" +-#include "qpid/framing/ClusterConnectionSecureUserIdBody.h" + #include "qpid/framing/ConnectionCloseBody.h" + #include "qpid/framing/ConnectionCloseOkBody.h" + #include "qpid/log/Statement.h" +@@ -48,15 +47,6 @@ + #include + + +-typedef boost::function UserIdCallback; +- +-// TODO aconway 2008-11-03: +-// +-// Refactor code for receiving an update into a separate UpdateConnection +-// class. +-// +- +- + namespace qpid { + namespace cluster { + +@@ -88,10 +78,8 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + expectProtocolHeader(false), + mcastFrameHandler(cluster.getMulticast(), self), + updateIn(c.getUpdateReceiver()), +- secureConnection(0), +- mcastSentButNotReceived(false), +- inConnectionNegotiation(true) +-{ } ++ secureConnection(0) ++{} + + // Local connection + Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, +@@ -107,9 +95,7 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + expectProtocolHeader(isLink), + mcastFrameHandler(cluster.getMulticast(), self), + updateIn(c.getUpdateReceiver()), +- secureConnection(0), +- mcastSentButNotReceived(false), +- inConnectionNegotiation(true) ++ secureConnection(0) + { + cluster.addLocalConnection(this); + if (isLocalClient()) { +@@ -117,11 +103,7 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + // and initialized when the announce is received. + QPID_LOG(info, "new client connection " << *this); + giveReadCredit(cluster.getSettings().readMax); // Flow control +- cluster.getMulticast().mcastControl( +- ClusterConnectionAnnounceBody(ProtocolVersion(), mgmtId, +- connectionCtor.external.ssf, +- connectionCtor.external.authid, +- connectionCtor.external.nodict), getId()); ++ init(); + } + else { + // Catch-up shadow connections initialized using nextShadow id. +@@ -135,7 +117,8 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + } + + void Connection::setSecureConnection(broker::SecureConnection* sc) { +- secureConnection = sc; ++ secureConnection = sc; ++ if (connection.get()) connection->setSecureConnection(sc); + } + + void Connection::init() { +@@ -155,30 +138,33 @@ void Connection::init() { + } + if (!isCatchUp()) + connection->setErrorListener(this); +- UserIdCallback fn = boost::bind ( &Connection::mcastUserId, this, _1 ); +- connection->setUserIdCallback ( fn ); + } + + // Called when we have consumed a read buffer to give credit to the + // connection layer to continue reading. + void Connection::giveReadCredit(int credit) { +- { +- sys::Mutex::ScopedLock l(connectionNegotiationMonitor); +- if (inConnectionNegotiation) { +- mcastSentButNotReceived = false; +- connectionNegotiationMonitor.notify(); +- } +- } + if (cluster.getSettings().readMax && credit) + output.giveReadCredit(credit); + } + +-void Connection::announce(const std::string& mgmtId, uint32_t ssf, const std::string& authid, bool nodict) { ++void Connection::announce( ++ const std::string& mgmtId, uint32_t ssf, const std::string& authid, bool nodict, ++ const std::string& username, const std::string& initialFrames) ++{ + QPID_ASSERT(mgmtId == connectionCtor.mgmtId); + QPID_ASSERT(ssf == connectionCtor.external.ssf); + QPID_ASSERT(authid == connectionCtor.external.authid); + QPID_ASSERT(nodict == connectionCtor.external.nodict); +- init(); ++ // Local connections are already initialized. ++ if (isShadow()) { ++ init(); ++ // Play initial frames into the connection. ++ Buffer buf(const_cast(initialFrames.data()), initialFrames.size()); ++ AMQFrame frame; ++ while (frame.decode(buf)) ++ connection->received(frame); ++ connection->setUserId(username); ++ } + } + + Connection::~Connection() { +@@ -201,7 +187,6 @@ void Connection::received(framing::AMQFrame& f) { + if (isLocal()) { // Local catch-up connection. + currentChannel = f.getChannel(); + if (!framing::invoke(*this, *f.getBody()).wasHandled()) +- + connection->received(f); + } + else { // Shadow or updated catch-up connection. +@@ -235,7 +220,7 @@ struct GiveReadCreditOnExit { + int credit; + GiveReadCreditOnExit(Connection& connection_, int credit_) : + connection(connection_), credit(credit_) {} +- ~GiveReadCreditOnExit() { connection.giveReadCredit(credit); } ++ ~GiveReadCreditOnExit() { if (credit) connection.giveReadCredit(credit); } + }; + + void Connection::deliverDoOutput(uint32_t limit) { +@@ -307,57 +292,76 @@ void Connection::abort() { + } + + // ConnectionCodec::decode receives read buffers from directly-connected clients. +-size_t Connection::decode(const char* buffer, size_t size) { +- +- if (catchUp) { // Handle catch-up locally. +- Buffer buf(const_cast(buffer), size); ++size_t Connection::decode(const char* data, size_t size) { ++ GiveReadCreditOnExit grc(*this, 1); // Give a read credit by default. ++ const char* ptr = data; ++ const char* end = data + size; ++ if (catchUp) { // Handle catch-up locally. ++ Buffer buf(const_cast(ptr), size); ++ ptr += size; + while (localDecoder.decode(buf)) + received(localDecoder.getFrame()); +- return buf.getPosition(); + } + else { // Multicast local connections. +- assert(isLocal()); +- const char* remainingData = buffer; +- size_t remainingSize = size; +- +- if (expectProtocolHeader) { +- //If this is an outgoing link, we will receive a protocol +- //header which needs to be decoded first +- framing::ProtocolInitiation pi; +- Buffer buf(const_cast(buffer), size); +- if (pi.decode(buf)) { +- //TODO: check the version is correct +- QPID_LOG(debug, "Outgoing clustered link connection received INIT(" << pi << ")"); +- expectProtocolHeader = false; +- remainingData = buffer + pi.encodedSize(); +- remainingSize = size - pi.encodedSize(); +- } else { +- QPID_LOG(debug, "Not enough data for protocol header on outgoing clustered link"); +- giveReadCredit(1); // We're not going to mcast so give read credit now. +- return 0; +- } ++ assert(isLocalClient()); ++ assert(connection.get()); ++ if (!checkProtocolHeader(ptr, size)) // Updates ptr ++ return 0; // Incomplete header ++ ++ if (!connection->isOpen()) ++ processInitialFrames(ptr, end-ptr); // Updates ptr ++ ++ if (connection->isOpen() && end - ptr > 0) { ++ // We're multi-casting, we will give read credit on delivery. ++ grc.credit = 0; ++ cluster.getMulticast().mcastBuffer(ptr, end - ptr, self); ++ ptr = end; + } +- +- // During connection negotiation wait for each multicast to be +- // processed before sending the next, to ensure that the +- // security layer is activated before we attempt to decode +- // encrypted frames. +- { +- sys::Mutex::ScopedLock l(connectionNegotiationMonitor); +- if ( inConnectionNegotiation ) { +- assert(!mcastSentButNotReceived); +- mcastSentButNotReceived = true; +- } +- } +- cluster.getMulticast().mcastBuffer(remainingData, remainingSize, self); +- { +- sys::Mutex::ScopedLock l(connectionNegotiationMonitor); +- if (inConnectionNegotiation) +- while (mcastSentButNotReceived) +- connectionNegotiationMonitor.wait(); +- assert(!mcastSentButNotReceived); ++ } ++ return ptr - data; ++} ++ ++// Decode the protocol header if needed. Updates data and size ++// returns true if the header is complete or already read. ++bool Connection::checkProtocolHeader(const char*& data, size_t size) { ++ if (expectProtocolHeader) { ++ //If this is an outgoing link, we will receive a protocol ++ //header which needs to be decoded first ++ framing::ProtocolInitiation pi; ++ Buffer buf(const_cast(data), size); ++ if (pi.decode(buf)) { ++ //TODO: check the version is correct ++ QPID_LOG(debug, "Outgoing clustered link connection received INIT(" << pi << ")"); ++ expectProtocolHeader = false; ++ data += pi.encodedSize(); ++ } else { ++ return false; + } +- return size; ++ } ++ return true; ++} ++ ++void Connection::processInitialFrames(const char*& ptr, size_t size) { ++ // Process the initial negotiation locally and store it so ++ // it can be replayed on other brokers in announce() ++ Buffer buf(const_cast(ptr), size); ++ framing::AMQFrame frame; ++ while (!connection->isOpen() && frame.decode(buf)) ++ received(frame); ++ initialFrames.append(ptr, buf.getPosition()); ++ ptr += buf.getPosition(); ++ if (connection->isOpen()) { // initial negotiation complete ++ cluster.getMulticast().mcastControl( ++ ClusterConnectionAnnounceBody( ++ ProtocolVersion(), ++ connectionCtor.mgmtId, ++ connectionCtor.external.ssf, ++ connectionCtor.external.authid, ++ connectionCtor.external.nodict, ++ connection->getUserId(), ++ initialFrames), ++ getId()); ++ initialFrames.clear(); + } + } + +@@ -574,21 +578,14 @@ void Connection::queue(const std::string& encoded) { + } + + void Connection::sessionError(uint16_t , const std::string& msg) { +- // If we are negotiating the connection when it fails just close the connectoin. +- // If it fails after that then we have to flag the error to the cluster. +- if (inConnectionNegotiation) +- cluster.getMulticast().mcastControl(ClusterConnectionDeliverCloseBody(), self); +- else ++ // Ignore errors before isOpen(), we're not multicasting yet. ++ if (connection->isOpen()) + cluster.flagError(*this, ERROR_TYPE_SESSION, msg); +- + } + + void Connection::connectionError(const std::string& msg) { +- // If we are negotiating the connection when it fails just close the connectoin. +- // If it fails after that then we have to flag the error to the cluster. +- if (inConnectionNegotiation) +- cluster.getMulticast().mcastControl(ClusterConnectionDeliverCloseBody(), self); +- else ++ // Ignore errors before isOpen(), we're not multicasting yet. ++ if (connection->isOpen()) + cluster.flagError(*this, ERROR_TYPE_CONNECTION, msg); + } + +@@ -630,30 +627,5 @@ void Connection::managementAgents(const std::string& data) { + QPID_LOG(debug, cluster << " updated management agents"); + } + +- +-void Connection::mcastUserId ( std::string & id ) { +- // Only the directly connected broker will mcast the secure user id, and only +- // for client connections (not update connections) +- if (isLocalClient()) +- cluster.getMulticast().mcastControl( +- ClusterConnectionSecureUserIdBody(ProtocolVersion(), string(id)), getId() ); +- { +- // This call signals the end of the connection negotiation phase. +- sys::Mutex::ScopedLock l(connectionNegotiationMonitor); +- inConnectionNegotiation = false; +- mcastSentButNotReceived = false; +- connectionNegotiationMonitor.notify(); +- } +-} +- +-// All connections, shadow or not, get this call. +-void Connection::secureUserId(const std::string& id) { +- // Only set the user ID on shadow connections, and only if id is not the empty string. +- if ( isShadow() && !id.empty() ) +- connection->setUserId ( id ); +-} +- +- +- + }} // Namespace qpid::cluster + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index 4f69bf7..70c4d0e 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -164,8 +164,9 @@ class Connection : + void exchange(const std::string& encoded); + + void giveReadCredit(int credit); +- void announce(const std::string& mgmtId, uint32_t ssf, const std::string& authid, bool nodict); +- void secureUserId(const std::string&); ++ void announce(const std::string& mgmtId, uint32_t ssf, const std::string& authid, ++ bool nodict, const std::string& username, ++ const std::string& initFrames); + void abort(); + void deliverClose(); + +@@ -175,16 +176,8 @@ class Connection : + void managementSchema(const std::string& data); + void managementAgents(const std::string& data); + void managementSetupState(uint64_t objectNum, uint16_t bootSequence); +- +- //uint32_t getSsf() const { return connectionCtor.external.ssf; } +- + void setSecureConnection ( broker::SecureConnection * sc ); + +- // This is a callback, registered with the broker connection. +- // It gives me the user ID, if one is negotiated through Sasl. +- void mcastUserId ( std::string & ); +- +- + private: + struct NullFrameHandler : public framing::FrameHandler { + void handle(framing::AMQFrame&) {} +@@ -228,6 +221,8 @@ class Connection : + bool checkUnsupported(const framing::AMQBody& body); + void deliverDoOutput(uint32_t limit); + ++ bool checkProtocolHeader(const char*& data, size_t size); ++ void processInitialFrames(const char*& data, size_t size); + boost::shared_ptr findQueue(const std::string& qname); + broker::SessionState& sessionState(); + broker::SemanticState& semanticState(); +@@ -247,13 +242,10 @@ class Connection : + McastFrameHandler mcastFrameHandler; + UpdateReceiver& updateIn; + qpid::broker::SecureConnection* secureConnection; ++ std::string initialFrames; + + static qpid::sys::AtomicValue catchUpId; + +- mutable sys::Monitor connectionNegotiationMonitor; +- bool mcastSentButNotReceived; +- bool inConnectionNegotiation; +- + friend std::ostream& operator<<(std::ostream&, const Connection&); + }; + +diff --git a/qpid/cpp/src/qpid/cluster/Multicaster.cpp b/qpid/cpp/src/qpid/cluster/Multicaster.cpp +index d57ff76..8916de9 100644 +--- a/qpid/cpp/src/qpid/cluster/Multicaster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Multicaster.cpp +@@ -61,7 +61,6 @@ void Multicaster::mcast(const Event& e) { + QPID_LOG(trace, "MCAST " << e); + if (bypass) { // direct, don't queue + iovec iov = e.toIovec(); +- // FIXME aconway 2010-03-10: should do limited retry. + while (!cpg.mcast(&iov, 1)) + ; + } +diff --git a/qpid/cpp/src/tests/cluster_test.cpp b/qpid/cpp/src/tests/cluster_test.cpp +index d5f2c45..0565ecc 100644 +--- a/qpid/cpp/src/tests/cluster_test.cpp ++++ b/qpid/cpp/src/tests/cluster_test.cpp +@@ -510,7 +510,7 @@ QPID_AUTO_TEST_CASE(testUpdateMessageBuilder) { + Client c1(cluster[1], "c1"); + BOOST_CHECK(c1.subs.get(m, "q", TIMEOUT)); + BOOST_CHECK_EQUAL(m.getData(), "abcd"); +- BOOST_CHECK_EQUAL(2u, knownBrokerPorts(c1.connection).size()); ++ BOOST_CHECK_EQUAL(2u, knownBrokerPorts(c1.connection, 2).size()); + } + + QPID_AUTO_TEST_CASE(testConnectionKnownHosts) { +@@ -518,13 +518,13 @@ QPID_AUTO_TEST_CASE(testConnectionKnownHosts) { + prepareArgs(args, durableFlag); + ClusterFixture cluster(1, args, -1); + Client c0(cluster[0], "c0"); +- set kb0 = knownBrokerPorts(c0.connection); ++ set kb0 = knownBrokerPorts(c0.connection, 1); + BOOST_CHECK_EQUAL(kb0.size(), 1u); + BOOST_CHECK_EQUAL(kb0, makeSet(cluster)); + + cluster.add(); + Client c1(cluster[1], "c1"); +- set kb1 = knownBrokerPorts(c1.connection); ++ set kb1 = knownBrokerPorts(c1.connection, 2); + kb0 = knownBrokerPorts(c0.connection, 2); + BOOST_CHECK_EQUAL(kb1.size(), 2u); + BOOST_CHECK_EQUAL(kb1, makeSet(cluster)); +@@ -532,7 +532,7 @@ QPID_AUTO_TEST_CASE(testConnectionKnownHosts) { + + cluster.add(); + Client c2(cluster[2], "c2"); +- set kb2 = knownBrokerPorts(c2.connection); ++ set kb2 = knownBrokerPorts(c2.connection, 3); + kb1 = knownBrokerPorts(c1.connection, 3); + kb0 = knownBrokerPorts(c0.connection, 3); + BOOST_CHECK_EQUAL(kb2.size(), 3u); +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index 29157dc..30cd159 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -127,6 +127,10 @@ + + + ++ ++ ++ ++ + + + +@@ -263,11 +267,5 @@ + + + +- +- +- +- +- +- + + +-- +1.5.5.6 + +From d6ead34fe2802092c0dd6490df11a6cc763506c1 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 9 Jun 2010 10:21:59 +0000 +Subject: [PATCH] Bug 508959 - Fixed - Attempt to propagate binding info over dynamic link can crash broker if session has already failed + +Ensure that bindings for dynamic bridges are not propagated over failed sessions. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952942 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 04e23a8984a81a869067ade50c445f17f8dafbea) +--- + qpid/cpp/src/qpid/broker/Bridge.cpp | 26 +++++++++++++++++--------- + qpid/cpp/src/qpid/broker/Bridge.h | 2 ++ + 2 files changed, 19 insertions(+), 9 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Bridge.cpp b/qpid/cpp/src/qpid/broker/Bridge.cpp +index 003d508..3e632f6 100644 +--- a/qpid/cpp/src/qpid/broker/Bridge.cpp ++++ b/qpid/cpp/src/qpid/broker/Bridge.cpp +@@ -153,16 +153,12 @@ void Bridge::create(Connection& c) + if (args.i_srcIsLocal) sessionHandler.getSession()->enableReceiverTracking(); + } + +-void Bridge::cancel(Connection& c) ++void Bridge::cancel(Connection&) + { +- if (args.i_srcIsLocal) { +- //recreate peer to be sure that the session handler reference +- //is valid (it could have been deleted due to a detach) +- SessionHandler& sessionHandler = c.getChannel(id); +- peer.reset(new framing::AMQP_ServerProxy(sessionHandler.out)); ++ if (resetProxy()) { ++ peer->getMessage().cancel(args.i_dest); ++ peer->getSession().detach(name); + } +- peer->getMessage().cancel(args.i_dest); +- peer->getSession().detach(name); + } + + void Bridge::closed() +@@ -310,10 +306,22 @@ void Bridge::sendReorigin() + conn->requestIOProcessing(boost::bind(&Bridge::ioThreadPropagateBinding, this, + queueName, args.i_src, args.i_key, bindArgs)); + } ++bool Bridge::resetProxy() ++{ ++ SessionHandler& sessionHandler = conn->getChannel(id); ++ if (!sessionHandler.getSession()) peer.reset(); ++ else peer.reset(new framing::AMQP_ServerProxy(sessionHandler.out)); ++ return peer.get(); ++} + + void Bridge::ioThreadPropagateBinding(const string& queue, const string& exchange, const string& key, FieldTable args) + { +- peer->getExchange().bind(queue, exchange, key, args); ++ if (resetProxy()) { ++ peer->getExchange().bind(queue, exchange, key, args); ++ } else { ++ QPID_LOG(error, "Cannot propagate binding for dynamic bridge as session has been detached, deleting dynamic bridge"); ++ destroy(); ++ } + } + + bool Bridge::containsLocalTag(const string& tagList) const +diff --git a/qpid/cpp/src/qpid/broker/Bridge.h b/qpid/cpp/src/qpid/broker/Bridge.h +index 5f9a46a..f25d32e 100644 +--- a/qpid/cpp/src/qpid/broker/Bridge.h ++++ b/qpid/cpp/src/qpid/broker/Bridge.h +@@ -101,6 +101,8 @@ private: + mutable uint64_t persistenceId; + ConnectionState* connState; + Connection* conn; ++ ++ bool resetProxy(); + }; + + +-- +1.5.5.6 + +From 079143676f0881d15138059d328a5531ef6a307e Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 9 Jun 2010 14:40:26 +0000 +Subject: [PATCH] Bug 591292 - Fixed - MRG-M Heartbeat causes core + +Ensure heartbeat task is cancelled before ConnectionImpl it refers to is deleted + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953032 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a43e46bbed2bc9449494ff1db039f11a1230405d) +--- + qpid/cpp/src/qpid/client/ConnectionImpl.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +index 8848554..397bd4e 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +@@ -198,6 +198,7 @@ ConnectionImpl::ConnectionImpl(framing::ProtocolVersion v, const ConnectionSetti + const uint16_t ConnectionImpl::NEXT_CHANNEL = std::numeric_limits::max(); + + ConnectionImpl::~ConnectionImpl() { ++ if (heartbeatTask) heartbeatTask->cancel(); + theIO().sub(); + } + +-- +1.5.5.6 + +From 4ee966781844a3757eaa44ebf4690105c2f18850 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 9 Jun 2010 15:37:02 +0000 +Subject: [PATCH] Bug 597149 - Fixed - qpid python high level API clients not runnable on RHEL4 incompatible with python 2.3.4 OptionParser + +Minor adjustment to option definitions for Python 2.3 + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953044 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 4f7efe697023e9b654e5ceef9648204a322ce779) +--- + qpid/python/examples/api/drain | 8 ++++---- + qpid/python/examples/api/server | 4 ++-- + qpid/python/examples/api/spout | 8 ++++---- + 3 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/qpid/python/examples/api/drain b/qpid/python/examples/api/drain +index eaf86f9..5e30153 100755 +--- a/qpid/python/examples/api/drain ++++ b/qpid/python/examples/api/drain +@@ -27,17 +27,17 @@ parser = optparse.OptionParser(usage="usage: %prog [options] ADDRESS ...", + description="Drain messages from the supplied address.") + parser.add_option("-b", "--broker", default="localhost", + help="connect to specified BROKER (default %default)") +-parser.add_option("-c", "--count", type=int, ++parser.add_option("-c", "--count", type="int", + help="number of messages to drain") + parser.add_option("-f", "--forever", action="store_true", + help="ignore timeout and wait forever") + parser.add_option("-r", "--reconnect", action="store_true", + help="enable auto reconnect") +-parser.add_option("-i", "--reconnect-interval", type=float, default=3, ++parser.add_option("-i", "--reconnect-interval", type="float", default=3, + help="interval between reconnect attempts") +-parser.add_option("-l", "--reconnect-limit", type=int, ++parser.add_option("-l", "--reconnect-limit", type="int", + help="maximum number of reconnect attempts") +-parser.add_option("-t", "--timeout", type=float, default=0, ++parser.add_option("-t", "--timeout", type="float", default=0, + help="timeout in seconds to wait before exiting (default %default)") + parser.add_option("-p", "--print", dest="format", default="%(M)s", + help="format string for printing messages (default %default)") +diff --git a/qpid/python/examples/api/server b/qpid/python/examples/api/server +index 0500e6f..3b9a356 100755 +--- a/qpid/python/examples/api/server ++++ b/qpid/python/examples/api/server +@@ -30,9 +30,9 @@ parser.add_option("-b", "--broker", default="localhost", + help="connect to specified BROKER (default %default)") + parser.add_option("-r", "--reconnect", action="store_true", + help="enable auto reconnect") +-parser.add_option("-i", "--reconnect-interval", type=float, default=3, ++parser.add_option("-i", "--reconnect-interval", type="float", default=3, + help="interval between reconnect attempts") +-parser.add_option("-l", "--reconnect-limit", type=int, ++parser.add_option("-l", "--reconnect-limit", type="int", + help="maximum number of reconnect attempts") + parser.add_option("-v", dest="verbose", action="store_true", + help="enable logging") +diff --git a/qpid/python/examples/api/spout b/qpid/python/examples/api/spout +index dacebb5..c2dc4db 100755 +--- a/qpid/python/examples/api/spout ++++ b/qpid/python/examples/api/spout +@@ -39,13 +39,13 @@ parser.add_option("-b", "--broker", default="localhost", + help="connect to specified BROKER (default %default)") + parser.add_option("-r", "--reconnect", action="store_true", + help="enable auto reconnect") +-parser.add_option("-i", "--reconnect-interval", type=float, default=3, ++parser.add_option("-i", "--reconnect-interval", type="float", default=3, + help="interval between reconnect attempts") +-parser.add_option("-l", "--reconnect-limit", type=int, ++parser.add_option("-l", "--reconnect-limit", type="int", + help="maximum number of reconnect attempts") +-parser.add_option("-c", "--count", type=int, default=1, ++parser.add_option("-c", "--count", type="int", default=1, + help="stop after count messages have been sent, zero disables (default %default)") +-parser.add_option("-t", "--timeout", type=float, default=None, ++parser.add_option("-t", "--timeout", type="float", default=None, + help="exit after the specified time") + parser.add_option("-I", "--id", help="use the supplied id instead of generating one") + parser.add_option("-S", "--subject", help="specify a subject") +-- +1.5.5.6 + +From d092a33ae3f83cf0cc6423a0990cd26b06de6087 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 9 Jun 2010 20:29:32 +0000 +Subject: [PATCH] Bug 602347: Fix cluster-safe assertion in connection negotiation. + +See https://bugzilla.redhat.com/show_bug.cgi?id=602347. +In a cluster, raise the management connect event when processing cluster.announce. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953147 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit bfd0ea5b4582f99fe423ec18d206e7f3d2a635dc) +--- + qpid/cpp/src/qpid/broker/Connection.cpp | 12 +++++++++++- + qpid/cpp/src/qpid/broker/Connection.h | 1 + + qpid/cpp/src/qpid/cluster/Connection.cpp | 2 ++ + qpid/cpp/src/qpid/sys/ClusterSafe.cpp | 6 +++++- + qpid/cpp/src/qpid/sys/ClusterSafe.h | 17 ++++++++++++++++- + qpid/cpp/src/tests/cluster_tests.py | 6 ++++-- + 6 files changed, 39 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Connection.cpp b/qpid/cpp/src/qpid/broker/Connection.cpp +index ac574fc..619f1a1 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.cpp ++++ b/qpid/cpp/src/qpid/broker/Connection.cpp +@@ -24,6 +24,7 @@ + #include "qpid/broker/Bridge.h" + #include "qpid/broker/Broker.h" + #include "qpid/sys/SecuritySettings.h" ++#include "qpid/sys/ClusterSafe.h" + + #include "qpid/log/Statement.h" + #include "qpid/ptr_map.h" +@@ -121,7 +122,9 @@ Connection::~Connection() + { + if (mgmtObject != 0) { + mgmtObject->resourceDestroy(); +- if (!isLink) ++ // In a cluster, Connections destroyed during shutdown are in ++ // a cluster-unsafe context. Don't raise an event in that case. ++ if (!isLink && isClusterSafe()) + agent->raiseEvent(_qmf::EventClientDisconnect(mgmtId, ConnectionState::getUserId())); + } + if (isLink) +@@ -202,6 +205,13 @@ void Connection::notifyConnectionForced(const string& text) + void Connection::setUserId(const string& userId) + { + ConnectionState::setUserId(userId); ++ // In a cluster, the cluster code will raise the connect event ++ // when the connection is replicated to the cluster. ++ if (!sys::isCluster()) ++ raiseConnectEvent(); ++} ++ ++void Connection::raiseConnectEvent() { + if (mgmtObject != 0) { + mgmtObject->set_authIdentity(userId); + agent->raiseEvent(_qmf::EventClientConnect(mgmtId, userId)); +diff --git a/qpid/cpp/src/qpid/broker/Connection.h b/qpid/cpp/src/qpid/broker/Connection.h +index ad9f786..cf199fa 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.h ++++ b/qpid/cpp/src/qpid/broker/Connection.h +@@ -111,6 +111,7 @@ class Connection : public sys::ConnectionInputHandler, + std::string getAuthCredentials(); + void notifyConnectionForced(const std::string& text); + void setUserId(const string& uid); ++ void raiseConnectEvent(); + const std::string& getUserId() const { return ConnectionState::getUserId(); } + const std::string& getMgmtId() const { return mgmtId; } + management::ManagementAgent* getAgent() const { return agent; } +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 08e31c1..c402415 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -165,6 +165,8 @@ void Connection::announce( + connection->received(frame); + connection->setUserId(username); + } ++ // Raise the connection management event now that the connection is replicated. ++ connection->raiseConnectEvent(); + } + + Connection::~Connection() { +diff --git a/qpid/cpp/src/qpid/sys/ClusterSafe.cpp b/qpid/cpp/src/qpid/sys/ClusterSafe.cpp +index 498a46d..e051591 100644 +--- a/qpid/cpp/src/qpid/sys/ClusterSafe.cpp ++++ b/qpid/cpp/src/qpid/sys/ClusterSafe.cpp +@@ -32,8 +32,12 @@ bool inCluster = false; + QPID_TSS bool inContext = false; + } + ++bool isClusterSafe() { return !inCluster || inContext; } ++ ++bool isCluster() { return inCluster; } ++ + void assertClusterSafe() { +- if (inCluster && !inContext) { ++ if (!isClusterSafe()) { + QPID_LOG(critical, "Modified cluster state outside of cluster context"); + ::abort(); + } +diff --git a/qpid/cpp/src/qpid/sys/ClusterSafe.h b/qpid/cpp/src/qpid/sys/ClusterSafe.h +index abb9ad0..f338230 100644 +--- a/qpid/cpp/src/qpid/sys/ClusterSafe.h ++++ b/qpid/cpp/src/qpid/sys/ClusterSafe.h +@@ -42,6 +42,20 @@ namespace sys { + QPID_COMMON_EXTERN void assertClusterSafe(); + + /** ++ * In a non-clustered broker, returns true. ++ * ++ * In a clustered broker returns true if we are in a context where it ++ * is safe to modify cluster state. ++ * ++ * This function is in the common library rather than the cluster ++ * library because it is called by code in the broker library. ++ */ ++QPID_COMMON_EXTERN bool isClusterSafe(); ++ ++/** Return true in a clustered broker */ ++QPID_COMMON_EXTERN bool isCluster(); ++ ++/** + * Base class for classes that encapsulate state which is replicated + * to all members of a cluster. Acts as a marker for clustered state + * and provides functions to assist detecting bugs in cluster +@@ -53,7 +67,8 @@ struct ClusterSafeScope { + }; + + /** +- * Enable cluster-safe assertions. By defaul they are no-ops. ++ * Enable cluster-safe assertions. By default they are no-ops. ++ * Called by cluster code. + */ + void enableClusterSafe(); + +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index f36cde9..983a8bd 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -211,6 +211,7 @@ class LongTests(BrokerTest): + """Start ordinary clients for a broker. Start one client per broker. + Round-robin on a colllection of different clients.""" + cmds=[ ++ ["qpid-tool", "localhost:%s"%(broker.port())], + ["qpid-perftest", "--count", 50000, + "--base-name", str(qpid.datatypes.uuid4()), "--port", broker.port()], + ["qpid-queue-stats", "-a", "localhost:%s" %(broker.port())], +@@ -222,14 +223,15 @@ class LongTests(BrokerTest): + cmd = ["qpid-stat", "-b", "localhost:%s" %(broker.port())] + mclients.append(ClientLoop(broker, cmd)) + +- endtime = time.time() + self.duration() ++ duration = max(self.duration(), 5) ++ endtime = time.time() + duration + alive = 0 # First live cluster member + for i in range(len(cluster)): + start_clients(cluster[i], i) + start_mclients(cluster[alive]) + + while time.time() < endtime: +- time.sleep(min(5,self.duration()/2)) ++ time.sleep(min(5,duration/2)) + for b in cluster[alive:]: b.ready() # Check if a broker crashed. + # Kill the first broker, expect the clients to fail. + for c in clients[alive] + mclients: c.expect_fail() +-- +1.5.5.6 + +From 46909ad1f9b0a01027da5fae7f41ccffb3778780 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Thu, 10 Jun 2010 13:36:15 +0000 +Subject: [PATCH] Bug 602672 - Fixed -Message::getSubject() returns an empty string even if the message has a subject + +QPID-664: Correct the name of the subject string used for incoming messages. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953321 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 1e4b6eddcbb9e45190c708967fce2097d2a69fa1) +--- + .../src/qpid/client/amqp0_10/IncomingMessages.cpp | 2 +- + qpid/cpp/src/tests/MessagingSessionTests.cpp | 2 ++ + 2 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp b/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp +index cbf05fc..30cb634 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp +@@ -289,7 +289,7 @@ void IncomingMessages::MessageTransfer::retrieve(qpid::messaging::Message* messa + namespace { + //TODO: unify conversion to and from 0-10 message that is currently + //split between IncomingMessages and OutgoingMessage +-const std::string SUBJECT("subject"); ++const std::string SUBJECT("qpid.subject"); + } + + void populateHeaders(qpid::messaging::Message& message, +diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp +index 2c51b9e..375af73 100644 +--- a/qpid/cpp/src/tests/MessagingSessionTests.cpp ++++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp +@@ -55,11 +55,13 @@ QPID_AUTO_TEST_CASE(testSimpleSendReceive) + QueueFixture fix; + Sender sender = fix.session.createSender(fix.queue); + Message out("test-message"); ++ out.setSubject("test-subject"); + sender.send(out); + Receiver receiver = fix.session.createReceiver(fix.queue); + Message in = receiver.fetch(Duration::SECOND * 5); + fix.session.acknowledge(); + BOOST_CHECK_EQUAL(in.getContent(), out.getContent()); ++ BOOST_CHECK_EQUAL(in.getSubject(), out.getSubject()); + } + + QPID_AUTO_TEST_CASE(testSyncSendReceive) +-- +1.5.5.6 + +From 6227acefa2c27ad6b66ae7616e0b738ba3f9a754 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 11 Jun 2010 08:42:37 +0000 +Subject: [PATCH] Bug 591292 - Further fix for heartbeat related segfault + +Ensure that AsynchConnector is disassociated from Poller when aborting connection attempt due to a heartbeat timeout + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953610 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit ade27a1e658534e7188f90d91e6991bafac69870) +--- + qpid/cpp/src/qpid/client/TCPConnector.cpp | 12 ++++++++---- + qpid/cpp/src/qpid/client/TCPConnector.h | 1 + + qpid/cpp/src/qpid/sys/AsynchIO.h | 2 +- + qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp | 6 ++++++ + 4 files changed, 16 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/TCPConnector.cpp b/qpid/cpp/src/qpid/client/TCPConnector.cpp +index d0a12c8..e284d57 100644 +--- a/qpid/cpp/src/qpid/client/TCPConnector.cpp ++++ b/qpid/cpp/src/qpid/client/TCPConnector.cpp +@@ -76,10 +76,11 @@ TCPConnector::TCPConnector(Poller::shared_ptr p, + initiated(false), + closed(true), + shutdownHandler(0), ++ connector(0), + aio(0), + poller(p) + { +- QPID_LOG(debug, "TCPConnector created for " << version.toString()); ++ QPID_LOG(debug, "TCPConnector created for " << version); + settings.configureSocket(socket); + } + +@@ -90,17 +91,18 @@ TCPConnector::~TCPConnector() { + void TCPConnector::connect(const std::string& host, int port) { + Mutex::ScopedLock l(lock); + assert(closed); +- AsynchConnector* c = AsynchConnector::create( ++ connector = AsynchConnector::create( + socket, + host, port, + boost::bind(&TCPConnector::connected, this, _1), + boost::bind(&TCPConnector::connectFailed, this, _3)); + closed = false; + +- c->start(poller); ++ connector->start(poller); + } + + void TCPConnector::connected(const Socket&) { ++ connector = 0; + aio = AsynchIO::create(socket, + boost::bind(&TCPConnector::readbuff, this, _1, _2), + boost::bind(&TCPConnector::eof, this, _1), +@@ -128,6 +130,7 @@ void TCPConnector::initAmqp() { + } + + void TCPConnector::connectFailed(const std::string& msg) { ++ connector = 0; + QPID_LOG(warning, "Connect failed: " << msg); + socket.close(); + if (!closed) +@@ -158,8 +161,9 @@ void TCPConnector::abort() { + if (aio) { + // Established connection + aio->requestCallback(boost::bind(&TCPConnector::eof, this, _1)); +- } else { ++ } else if (connector) { + // We're still connecting ++ connector->stop(); + connectFailed("Connection timedout"); + } + } +diff --git a/qpid/cpp/src/qpid/client/TCPConnector.h b/qpid/cpp/src/qpid/client/TCPConnector.h +index bce5f59..c756469 100644 +--- a/qpid/cpp/src/qpid/client/TCPConnector.h ++++ b/qpid/cpp/src/qpid/client/TCPConnector.h +@@ -71,6 +71,7 @@ class TCPConnector : public Connector, public sys::Codec + + sys::Socket socket; + ++ sys::AsynchConnector* connector; + sys::AsynchIO* aio; + std::string identifier; + boost::shared_ptr poller; +diff --git a/qpid/cpp/src/qpid/sys/AsynchIO.h b/qpid/cpp/src/qpid/sys/AsynchIO.h +index f184163..50da8fa 100644 +--- a/qpid/cpp/src/qpid/sys/AsynchIO.h ++++ b/qpid/cpp/src/qpid/sys/AsynchIO.h +@@ -69,7 +69,7 @@ public: + ConnectedCallback connCb, + FailedCallback failCb); + virtual void start(boost::shared_ptr poller) = 0; +- ++ virtual void stop() {}; + protected: + AsynchConnector() {} + virtual ~AsynchConnector() {} +diff --git a/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp b/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp +index cef9f1f..7d85b43 100644 +--- a/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp ++++ b/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp +@@ -157,6 +157,7 @@ public: + ConnectedCallback connCb, + FailedCallback failCb); + void start(Poller::shared_ptr poller); ++ void stop(); + }; + + AsynchConnector::AsynchConnector(const Socket& s, +@@ -183,6 +184,11 @@ void AsynchConnector::start(Poller::shared_ptr poller) + startWatch(poller); + } + ++void AsynchConnector::stop() ++{ ++ stopWatch(); ++} ++ + void AsynchConnector::connComplete(DispatchHandle& h) + { + h.stopWatch(); +-- +1.5.5.6 + +From 2e2fa6ccfda4ba82811fae63fa994ed99468245b Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 11 Jun 2010 09:10:13 +0000 +Subject: [PATCH] Bug 598550 - Alleviates some of the broker load for QMF V2 format requests. + +QPID-664: Avoid allocation for void Variant + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953615 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 0ef592408a84c9f55c33b5796e186b07a29bd6c9) +--- + qpid/cpp/src/qpid/types/Variant.cpp | 55 ++++++++++++++++++---------------- + 1 files changed, 29 insertions(+), 26 deletions(-) + +diff --git a/qpid/cpp/src/qpid/types/Variant.cpp b/qpid/cpp/src/qpid/types/Variant.cpp +index f22483f..1457449 100644 +--- a/qpid/cpp/src/qpid/types/Variant.cpp ++++ b/qpid/cpp/src/qpid/types/Variant.cpp +@@ -482,7 +482,7 @@ VariantImpl* VariantImpl::create(const Variant& v) + } + } + +-Variant::Variant() : impl(new VariantImpl()) {} ++Variant::Variant() : impl(0) {} + Variant::Variant(bool b) : impl(new VariantImpl(b)) {} + Variant::Variant(uint8_t i) : impl(new VariantImpl(i)) {} + Variant::Variant(uint16_t i) : impl(new VariantImpl(i)) {} +@@ -506,7 +506,7 @@ Variant::~Variant() { if (impl) delete impl; } + void Variant::reset() + { + if (impl) delete impl; +- impl = new VariantImpl(); ++ impl = 0; + } + + +@@ -622,29 +622,32 @@ Variant& Variant::operator=(const Variant& v) + return *this; + } + +-VariantType Variant::getType() const { return impl->getType(); } +-bool Variant::isVoid() const { return impl->getType() == VAR_VOID; } +-bool Variant::asBool() const { return impl->asBool(); } +-uint8_t Variant::asUint8() const { return impl->asUint8(); } +-uint16_t Variant::asUint16() const { return impl->asUint16(); } +-uint32_t Variant::asUint32() const { return impl->asUint32(); } +-uint64_t Variant::asUint64() const { return impl->asUint64(); } +-int8_t Variant::asInt8() const { return impl->asInt8(); } +-int16_t Variant::asInt16() const { return impl->asInt16(); } +-int32_t Variant::asInt32() const { return impl->asInt32(); } +-int64_t Variant::asInt64() const { return impl->asInt64(); } +-float Variant::asFloat() const { return impl->asFloat(); } +-double Variant::asDouble() const { return impl->asDouble(); } +-std::string Variant::asString() const { return impl->asString(); } +-Uuid Variant::asUuid() const { return impl->asUuid(); } +-const Variant::Map& Variant::asMap() const { return impl->asMap(); } +-Variant::Map& Variant::asMap() { return impl->asMap(); } +-const Variant::List& Variant::asList() const { return impl->asList(); } +-Variant::List& Variant::asList() { return impl->asList(); } +-const std::string& Variant::getString() const { return impl->getString(); } +-std::string& Variant::getString() { return impl->getString(); } +-void Variant::setEncoding(const std::string& s) { impl->setEncoding(s); } +-const std::string& Variant::getEncoding() const { return impl->getEncoding(); } ++VariantType Variant::getType() const { return impl ? impl->getType() : VAR_VOID; } ++bool Variant::isVoid() const { return getType() == VAR_VOID; } ++bool Variant::asBool() const { return impl && impl->asBool(); } ++uint8_t Variant::asUint8() const { return impl ? impl->asUint8() : 0; } ++uint16_t Variant::asUint16() const { return impl ? impl->asUint16() : 0; } ++uint32_t Variant::asUint32() const { return impl ? impl->asUint32() : 0; } ++uint64_t Variant::asUint64() const { return impl ? impl->asUint64() : 0; } ++int8_t Variant::asInt8() const { return impl ? impl->asInt8() : 0; } ++int16_t Variant::asInt16() const { return impl ? impl->asInt16() : 0; } ++int32_t Variant::asInt32() const { return impl ? impl->asInt32(): 0; } ++int64_t Variant::asInt64() const { return impl ? impl->asInt64() : 0; } ++float Variant::asFloat() const { return impl ? impl->asFloat() : 0; } ++double Variant::asDouble() const { return impl ? impl->asDouble() : 0; } ++std::string Variant::asString() const { return impl ? impl->asString() : EMPTY; } ++Uuid Variant::asUuid() const { return impl ? impl->asUuid() : Uuid(); } ++const Variant::Map& Variant::asMap() const { if (!impl) throw InvalidConversion("Can't convert VOID to MAP"); return impl->asMap(); } ++Variant::Map& Variant::asMap() { if (!impl) throw InvalidConversion("Can't convert VOID to MAP"); return impl->asMap(); } ++const Variant::List& Variant::asList() const { if (!impl) throw InvalidConversion("Can't convert VOID to LIST"); return impl->asList(); } ++Variant::List& Variant::asList() { if (!impl) throw InvalidConversion("Can't convert VOID to LIST"); return impl->asList(); } ++const std::string& Variant::getString() const { if (!impl) throw InvalidConversion("Can't convert VOID to STRING"); return impl->getString(); } ++std::string& Variant::getString() { if (!impl) throw InvalidConversion("Can't convert VOID to STRING"); return impl->getString(); } ++void Variant::setEncoding(const std::string& s) { ++ if (!impl) impl = new VariantImpl(); ++ impl->setEncoding(s); ++} ++const std::string& Variant::getEncoding() const { return impl ? impl->getEncoding() : EMPTY; } + + Variant::operator bool() const { return asBool(); } + Variant::operator uint8_t() const { return asUint8(); } +@@ -708,7 +711,7 @@ bool operator==(const Variant& a, const Variant& b) + + bool Variant::isEqualTo(const Variant& other) const + { +- return impl->isEqualTo(*other.impl); ++ return impl && impl->isEqualTo(*other.impl); + } + + }} // namespace qpid::types +-- +1.5.5.6 + +From 299fb71454960dbf62f635d846e5a4be9abb4429 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Wed, 9 Jun 2010 18:17:19 +0000 +Subject: [PATCH] Bug 601277 - qpidd broker crash + +Cleaned up the storage of RemoteAgents in ManagementAgent. +This closes a window of opportunity for a double-free. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953107 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit ffaa25d6c05dd381f603edb0107e914d3130480b) +--- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 27 +++++++++------------- + qpid/cpp/src/qpid/management/ManagementAgent.h | 6 +---- + 2 files changed, 12 insertions(+), 21 deletions(-) + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 7f2dd69..b1c2780 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -1390,31 +1390,26 @@ uint32_t ManagementAgent::assignBankLH (uint32_t requestedBank) + + void ManagementAgent::deleteOrphanedAgentsLH() + { +- vector deleteList; ++ list deleteList; + +- for (RemoteAgentMap::iterator aIter = remoteAgents.begin(); aIter != remoteAgents.end(); aIter++) { +- ObjectId connectionRef = aIter->first; ++ for (RemoteAgentMap::const_iterator aIter = remoteAgents.begin(); aIter != remoteAgents.end(); aIter++) { + bool found = false; + + for (ManagementObjectMap::iterator iter = managementObjects.begin(); + iter != managementObjects.end(); + iter++) { +- if (iter->first == connectionRef && !iter->second->isDeleted()) { ++ if (iter->first == aIter->first && !iter->second->isDeleted()) { + found = true; + break; + } + } + +- if (!found) { +- deleteList.push_back(connectionRef); +- delete aIter->second; +- } ++ if (!found) ++ deleteList.push_back(aIter->first); + } + +- for (vector::iterator dIter = deleteList.begin(); dIter != deleteList.end(); dIter++) ++ for (list::const_iterator dIter = deleteList.begin(); dIter != deleteList.end(); dIter++) + remoteAgents.erase(*dIter); +- +- deleteList.clear(); + } + + void ManagementAgent::handleAttachRequestLH (Buffer& inBuffer, const string& replyToKey, uint32_t sequence, const ConnectionToken* connToken) +@@ -1444,12 +1439,12 @@ void ManagementAgent::handleAttachRequestLH (Buffer& inBuffer, const string& rep + + assignedBank = assignBankLH(requestedAgentBank); + +- RemoteAgent* agent = new RemoteAgent(*this); ++ boost::shared_ptr agent(new RemoteAgent(*this)); + agent->brokerBank = brokerBank; + agent->agentBank = assignedBank; + agent->routingKey = replyToKey; + agent->connectionRef = connectionRef; +- agent->mgmtObject = new _qmf::Agent (this, agent); ++ agent->mgmtObject = new _qmf::Agent (this, agent.get()); + agent->mgmtObject->set_connectionRef(agent->connectionRef); + agent->mgmtObject->set_label (label); + agent->mgmtObject->set_registeredTo (broker->GetManagementObject()->getObjectId()); +@@ -2289,7 +2284,7 @@ void ManagementAgent::exportAgents(string& out) { + ++i) + { + // TODO aconway 2010-03-04: see comment in ManagementAgent::RemoteAgent::encode +- RemoteAgent* agent = i->second; ++ boost::shared_ptr agent(i->second); + + map_.clear(); + amap.clear(); +@@ -2310,7 +2305,7 @@ void ManagementAgent::importAgents(qpid::framing::Buffer& inBuf) { + sys::Mutex::ScopedLock lock(userLock); + + for (l = content.begin(); l != content.end(); l++) { +- auto_ptr agent(new RemoteAgent(*this)); ++ boost::shared_ptr agent(new RemoteAgent(*this)); + Variant::Map map_; + Variant::Map::const_iterator i; + +@@ -2321,7 +2316,7 @@ void ManagementAgent::importAgents(qpid::framing::Buffer& inBuf) { + agent->mapDecode(i->second.asMap()); + + addObject (agent->mgmtObject, 0, false); +- remoteAgents[agent->connectionRef] = agent.release(); ++ remoteAgents[agent->connectionRef] = agent; + } + } + } +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index d101ca1..44e3eb1 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -175,11 +175,7 @@ private: + void mapDecode(const qpid::types::Variant::Map& _map); + }; + +- // TODO: Eventually replace string with entire reply-to structure. reply-to +- // currently assumes that the exchange is "amq.direct" even though it could +- // in theory be specified differently. +- typedef std::map RemoteAgentMap; +- typedef std::vector ReplyToVector; ++ typedef std::map > RemoteAgentMap; + + // Storage for known schema classes: + // +-- +1.5.5.6 + +From 043f40b8dbf45d45f2342108dc977298a7afbe6a Mon Sep 17 00:00:00 2001 +From: Kim van der Riet +Date: Fri, 11 Jun 2010 12:49:52 +0000 +Subject: [PATCH] Bug 589683 - Broker misconfiguration causes broker stop to fail + +QPID-2666: Fix for init script problem where config file has "log-to-file" set with a relative path. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953687 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 032866de5d7cccafac52faeaa333b9dae4811761) +--- + qpid/cpp/etc/qpidd | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/etc/qpidd b/qpid/cpp/etc/qpidd +index f391da3..07cbb82 100755 +--- a/qpid/cpp/etc/qpidd ++++ b/qpid/cpp/etc/qpidd +@@ -72,7 +72,7 @@ start() { + touch $pidfile + chown qpidd.qpidd $pidfile + [ -x /sbin/restorecon ] && /sbin/restorecon $pidfile +- runuser -s /bin/sh qpidd -c "/usr/sbin/$prog --check > $pidfile" ++ runuser - -s /bin/sh qpidd -c "/usr/sbin/$prog --check > $pidfile" + fi + return $RETVAL + } +-- +1.5.5.6 + +From b3c11c4bf0a0417775763883c5576bcf2e797348 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 11 Jun 2010 21:46:57 +0000 +Subject: [PATCH] Bug 601828 - QMF Agent returning STATUS_USER returns error 7 to QMF Console + +Fixed a bug in which QMF error return codes were being sent back as 7 - Exception. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953885 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 2b9eb6bdbecc94d6dfdf2db148e422daf07ab2b1) +--- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 32 ++++++++-------------- + 1 files changed, 12 insertions(+), 20 deletions(-) + +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index 6a07d8c..e2a595c 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -499,8 +499,8 @@ void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& + + if ((oid = inMap.find("_object_id")) == inMap.end() || + (mid = inMap.find("_method_name")) == inMap.end()) { +- (outMap["_values"].asMap())["_status_code"] = Manageable::STATUS_PARAMETER_INVALID; +- (outMap["_values"].asMap())["_status_text"] = Manageable::StatusText(Manageable::STATUS_PARAMETER_INVALID); ++ sendException(replyTo, cid, Manageable::StatusText(Manageable::STATUS_PARAMETER_INVALID), ++ Manageable::STATUS_PARAMETER_INVALID); + failed = true; + } else { + string methodName; +@@ -520,8 +520,8 @@ void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& + + ManagementObjectMap::iterator iter = managementObjects.find(objId); + if (iter == managementObjects.end() || iter->second->isDeleted()) { +- (outMap["_values"].asMap())["_status_code"] = Manageable::STATUS_UNKNOWN_OBJECT; +- (outMap["_values"].asMap())["_status_text"] = Manageable::StatusText(Manageable::STATUS_UNKNOWN_OBJECT); ++ sendException(replyTo, cid, Manageable::StatusText(Manageable::STATUS_UNKNOWN_OBJECT), ++ Manageable::STATUS_UNKNOWN_OBJECT); + failed = true; + } else { + iter->second->doMethod(methodName, inArgs, callMap); +@@ -534,33 +534,25 @@ void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& + if (iter->first != "_status_code" && iter->first != "_status_text") + outMap["_arguments"].asMap()[iter->first] = iter->second; + } else { +- (outMap["_values"].asMap())["_status_code"] = callMap["_status_code"]; +- (outMap["_values"].asMap())["_status_text"] = callMap["_status_text"]; ++ sendException(replyTo, cid, callMap["_status_text"], callMap["_status_code"]); + failed = true; + } + + } catch(types::InvalidConversion& e) { +- outMap.clear(); +- outMap["_values"] = Variant::Map(); +- (outMap["_values"].asMap())["_status_code"] = Manageable::STATUS_EXCEPTION; +- (outMap["_values"].asMap())["_status_text"] = e.what(); ++ sendException(replyTo, cid, e.what(), Manageable::STATUS_EXCEPTION); + failed = true; + } + } + +- Variant::Map headers; +- headers["method"] = "response"; +- headers["qmf.agent"] = name_address; +- if (failed) { +- headers["qmf.opcode"] = "_exception"; +- QPID_LOG(trace, "SENT Exception map=" << outMap); +- } else { ++ if (!failed) { ++ Variant::Map headers; ++ headers["method"] = "response"; ++ headers["qmf.agent"] = name_address; + headers["qmf.opcode"] = "_method_response"; + QPID_LOG(trace, "SENT MethodResponse map=" << outMap); ++ MapCodec::encode(outMap, content); ++ connThreadBody.sendBuffer(content, cid, headers, "qmf.default.direct", replyTo); + } +- +- MapCodec::encode(outMap, content); +- connThreadBody.sendBuffer(content, cid, headers, "qmf.default.direct", replyTo); + } + + void ManagementAgentImpl::handleGetQuery(const string& body, const string& cid, const string& replyTo) +-- +1.5.5.6 + +From fcf4a2aefda3d8d84b1abb0dea6d340a9fbdc546 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 3 Jun 2010 20:23:30 +0000 +Subject: [PATCH] Bug 599700 - Console examples sometimes fail due to not waiting for the broker connection to complete + +QPID-2644 - Console examples sometimes fail due to not waiting for the broker connection to complete +Moved 'Broker::waitForStable' from private to public, used this function in the examples to +hold off until the broker is fully connected. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951141 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 095fb80c67258ab00a2654bdd4a094f4d37ed4b8) +--- + qpid/cpp/examples/qmf-console/console.cpp | 1 + + qpid/cpp/examples/qmf-console/ping.cpp | 1 + + qpid/cpp/include/qpid/console/Broker.h | 14 +++++++------- + 3 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/qpid/cpp/examples/qmf-console/console.cpp b/qpid/cpp/examples/qmf-console/console.cpp +index 5700d55..b5375b6 100644 +--- a/qpid/cpp/examples/qmf-console/console.cpp ++++ b/qpid/cpp/examples/qmf-console/console.cpp +@@ -81,6 +81,7 @@ int main_int(int /*argc*/, char** /*argv*/) + Broker* broker; + + broker = sm.addBroker(settings); ++ broker->waitForStable(); + + cout << "Package List:" << endl; + vector packages; +diff --git a/qpid/cpp/examples/qmf-console/ping.cpp b/qpid/cpp/examples/qmf-console/ping.cpp +index 405c15f..fe537d4 100644 +--- a/qpid/cpp/examples/qmf-console/ping.cpp ++++ b/qpid/cpp/examples/qmf-console/ping.cpp +@@ -55,6 +55,7 @@ int main_int(int /*argc*/, char** /*argv*/) + // Add a broker connection to the session manager. + // + Broker* broker = sm.addBroker(connSettings); ++ broker->waitForStable(); + + uint32_t count = 5; // The number of echo requests we will send to the broker. + Object::Vector list; // A container for holding objects retrieved from the broker. +diff --git a/qpid/cpp/include/qpid/console/Broker.h b/qpid/cpp/include/qpid/console/Broker.h +index af163b8..0b2d1bc 100644 +--- a/qpid/cpp/include/qpid/console/Broker.h ++++ b/qpid/cpp/include/qpid/console/Broker.h +@@ -55,15 +55,16 @@ namespace console { + client::ConnectionSettings& settings); + QPID_CONSOLE_EXTERN ~Broker(); + +- bool isConnected() const { return connected; } +- const std::string& getError() const { return error; } +- const std::string& getSessionId() const { return amqpSessionId; } +- const framing::Uuid& getBrokerId() const { return brokerId; } +- uint32_t getBrokerBank() const { return 1; } +- void addBinding(const std::string& key) { ++ QPID_CONSOLE_EXTERN bool isConnected() const { return connected; } ++ QPID_CONSOLE_EXTERN const std::string& getError() const { return error; } ++ QPID_CONSOLE_EXTERN const std::string& getSessionId() const { return amqpSessionId; } ++ QPID_CONSOLE_EXTERN const framing::Uuid& getBrokerId() const { return brokerId; } ++ QPID_CONSOLE_EXTERN uint32_t getBrokerBank() const { return 1; } ++ QPID_CONSOLE_EXTERN void addBinding(const std::string& key) { + connThreadBody.bindExchange("qpid.management", key); + } + QPID_CONSOLE_EXTERN std::string getUrl() const; ++ QPID_CONSOLE_EXTERN void waitForStable(); + + private: + friend class SessionManager; +@@ -117,7 +118,6 @@ namespace console { + void received(client::Message& msg); + void resetAgents(); + void updateAgent(const Object& object); +- void waitForStable(); + void incOutstanding(); + void decOutstanding(); + void setBrokerId(const framing::Uuid& id) { brokerId = id; } +-- +1.5.5.6 + +From 779be75603ed95682b9dcdbffa24182243d72547 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:05 +0000 +Subject: [PATCH] BZ 591139: Removed unnecessary parameter from Rdma::AsynchIO::dataEvent() + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954489 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 4 ++-- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 9244343..6f81450 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -42,7 +42,7 @@ namespace Rdma { + ErrorCallback ec + ) : + qp(q), +- dataHandle(*qp, boost::bind(&AsynchIO::dataEvent, this, _1), 0, 0), ++ dataHandle(*qp, boost::bind(&AsynchIO::dataEvent, this), 0, 0), + bufferSize(size), + recvCredit(0), + xmitCredit(xCredit), +@@ -278,7 +278,7 @@ namespace Rdma { + } while (true); + } + +- void AsynchIO::dataEvent(qpid::sys::DispatchHandle&) { ++ void AsynchIO::dataEvent() { + // Keep track of writable notifications + // qpid::sys::ScopedLock l(stateLock); + State oldState; +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 0b86461..d896217 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -103,7 +103,7 @@ namespace Rdma { + const static int FlagsMask = 0x10000000; // Mask for all flag bits - be sure to update this if you add more command bits + const static int IgnoreData = 0x10000000; // Message contains no application data + +- void dataEvent(qpid::sys::DispatchHandle& handle); ++ void dataEvent(); + void processCompletions(); + void doWriteCallback(); + void doStoppedCallback(); +-- +1.5.5.6 + +From 39751102ca8d384c4607664ed86abfae55723289 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:08 +0000 +Subject: [PATCH] BZ 591139: Trivial code simplification + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954490 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 4 +--- + 1 files changed, 1 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +index a5f54e8..c95cda7 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +@@ -65,9 +65,7 @@ Duration fullTestDuration(TIME_INFINITE); + vector testString; + + void write(Rdma::AsynchIO& aio) { +- while (aio.writable()) { +- if (smsgs >= target) +- return; ++ while (aio.writable() && aio.bufferAvailable() && smsgs < target) { + Rdma::Buffer* b = aio.getBuffer(); + std::copy(testString.begin(), testString.end(), b->bytes); + b->dataCount = msgsize; +-- +1.5.5.6 + +From 97edcebbe4cba28829070f228b7da6f61bcafc3e Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:12 +0000 +Subject: [PATCH] BZ 591139: Only set the draining flag when we delay calling the drained callback. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954491 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 6f81450..32bd9cd 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -130,8 +130,6 @@ namespace Rdma { + + // Mark writing closed (so we don't accept any more writes or make any idle callbacks) + void AsynchIO::drainWriteQueue(NotifyCallback nc) { +- draining = true; +- + State oldState; + State newState; + bool doReturn; +@@ -149,6 +147,7 @@ namespace Rdma { + } + } while (!state.boolCompareAndSwap(oldState, newState)); + if (doReturn) { ++ draining = true; + notifyCallback = nc; + return; + } +-- +1.5.5.6 + +From d4894bf43c8d1abc4bad633b2439502b458bb1d8 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:16 +0000 +Subject: [PATCH] BZ 591139: + In Rdma::AsynchIO::stop(): + - make sure we stop the underlying handle immediately whether or not + we do the stopped callback now or have to defer it. + +In qpid::client::RdmaConnector: +- make sure that the shutdown handler is called under all circumstances. +- make sure that the destructor doesn't delete the aio if it is + already deleted + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954492 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 19 +++++++++++++++---- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 6 ++++-- + 2 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 9be9e71..624f457 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -162,7 +162,12 @@ namespace { + RdmaConnector::~RdmaConnector() { + QPID_LOG(debug, "~RdmaConnector " << identifier); + close(); +- if (aio) aio->stop(deleteAsynchIO); ++ if (aio) { ++ aio->stop(deleteAsynchIO); ++ } ++ if (shutdownHandler) { ++ shutdownHandler->shutdown(); ++ } + } + + void RdmaConnector::connect(const std::string& host, int port){ +@@ -244,15 +249,21 @@ void RdmaConnector::dataError(Rdma::AsynchIO&) { + drained(); + } + +-void RdmaConnector::stopped(Rdma::AsynchIO* aio) { +- delete aio; ++void RdmaConnector::stopped(Rdma::AsynchIO* a) { ++ QPID_LOG(debug, "RdmaConnector::stopped " << identifier); ++ assert(!polling); ++ aio = 0; ++ delete a; + if (shutdownHandler) { +- shutdownHandler->shutdown(); ++ ShutdownHandler* s = shutdownHandler; ++ shutdownHandler = 0; ++ s->shutdown(); + } + } + + void RdmaConnector::drained() { + QPID_LOG(debug, "RdmaConnector::drained " << identifier); ++ assert(!polling); + if (aio) { + aio->stop(boost::bind(&RdmaConnector::stopped, this, aio)); + aio = 0; +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 32bd9cd..e91127e 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -117,11 +117,14 @@ namespace Rdma { + newState = SHUTDOWN; + + } while (!state.boolCompareAndSwap(oldState, newState)); ++ ++ // Ensure we can't get any more callbacks (except for the stopped callback) ++ dataHandle.stopWatch(); ++ + if (doReturn) { + notifyCallback = nc; + return; + } +- dataHandle.stopWatch(); + // Callback, but don't store it - SHUTDOWN state means callback has been called + // we *are* allowed to delete the AsynchIO in this callback, so we have to return immediately + // after the callback +@@ -473,7 +476,6 @@ namespace Rdma { + } + + void AsynchIO::doStoppedCallback() { +- dataHandle.stopWatch(); + NotifyCallback nc; + nc.swap(notifyCallback); + // Transition unconditionally to SHUTDOWN +-- +1.5.5.6 + +From 7909518935fc6e164f6affa9447eb4a3cf5b8485 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:20 +0000 +Subject: [PATCH] BZ 591139: Allow stopping even if we've got outstanding write buffers. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954493 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index e91127e..bd0005d 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -109,7 +109,7 @@ namespace Rdma { + do { + newState = oldState = state.get(); + doReturn = false; +- if (outstandingWrites > 0 || (oldState != IDLE && oldState != DRAINED)) { ++ if (oldState != IDLE && oldState != DRAINED) { + doReturn = true; + break; + } +-- +1.5.5.6 + +From b0aacc99250bdd8c0202b667332fb17f741bca12 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:23 +0000 +Subject: [PATCH] BZ 591139: Added asserts to ensure that we catch it if xmitCredit isn't sane + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954494 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index bd0005d..45295d4 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -171,6 +171,7 @@ namespace Rdma { + } + ++outstandingWrites; + --xmitCredit; ++ assert(xmitCredit>=0); + } else { + if (fullCallback) { + fullCallback(*this, buff); +@@ -397,8 +398,10 @@ namespace Rdma { + // Get our xmitCredit if it was sent + bool dataPresent = true; + if (e.immPresent() ) { ++ assert(xmitCredit>=0); + xmitCredit += (e.getImm() & ~FlagsMask); + dataPresent = ((e.getImm() & IgnoreData) == 0); ++ assert(xmitCredit>0); + } + + // if there was no data sent then the message was only to update our credit +@@ -430,6 +433,7 @@ namespace Rdma { + recvCredit -= creditSent; + ++outstandingWrites; + --xmitCredit; ++ assert(xmitCredit>=0); + } else { + QPID_LOG(warning, "RDMA: qp=" << qp << ": Unable to send unsolicited credit"); + } +@@ -453,6 +457,9 @@ namespace Rdma { + void AsynchIO::doWriteCallback() { + // TODO: maybe don't call idle unless we're low on write buffers + // Keep on calling the idle routine as long as we are writable and we got something to write last call ++ ++ // Do callback even if there are no available free buffers as the application itself might be ++ // holding onto buffers + while (writable()) { + int xc = xmitCredit; + idleCallback(*this); +-- +1.5.5.6 + +From 7cf228a337572cb24179abfb109c8ce105725abc Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:27 +0000 +Subject: [PATCH] BZ 591139: Try to avoid getting into a state where we can't send credit because we + sent the very last buffer without any credit. So in theory when we do have + credit to send we should have a buffer and xmit credit to do it with. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954495 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 11 ++++++++++- + 1 files changed, 10 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index d896217..655119b 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -110,8 +110,17 @@ namespace Rdma { + void doDrainedCallback(); + }; + ++ // We're only writable if: ++ // * not draining write queue ++ // * we've got space in the transmit queue ++ // * we've got credit to transmit ++ // * if there's only 1 transmit credit we must send some credit + inline bool AsynchIO::writable() const { +- return (!draining && outstandingWrites < xmitBufferCount && xmitCredit > 0); ++ assert(xmitCredit>=0); ++ return !draining && ++ outstandingWrites < xmitBufferCount && ++ xmitCredit > 0 && ++ ( xmitCredit > 1 || recvCredit > 0); + } + + inline int AsynchIO::incompletedWrites() const { +-- +1.5.5.6 + +From bd95291efa29074a75163208990fe6f0a8e828ed Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:33 +0000 +Subject: [PATCH] BZ 591139: Combine Rdma::Buffer and ibv_sge needed to send it + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954496 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 11 +++---- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 12 ++++---- + qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 8 ++-- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 13 +------- + qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp | 4 +- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 46 ++++++++++----------------- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 29 ++++++++++++++--- + 7 files changed, 60 insertions(+), 63 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 624f457..3b4e87d 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -326,10 +326,9 @@ void RdmaConnector::writebuff(Rdma::AsynchIO&) { + Codec* codec = securityLayer.get() ? (Codec*) securityLayer.get() : (Codec*) this; + if (codec->canEncode()) { + std::auto_ptr buffer = std::auto_ptr(aio->getBuffer()); +- size_t encoded = codec->encode(buffer->bytes, buffer->byteCount); ++ size_t encoded = codec->encode(buffer->bytes(), buffer->byteCount()); + +- buffer->dataStart = 0; +- buffer->dataCount = encoded; ++ buffer->dataCount(encoded); + aio->queueWrite(buffer.release()); + } + } +@@ -362,7 +361,7 @@ size_t RdmaConnector::encode(const char* buffer, size_t size) + + void RdmaConnector::readbuff(Rdma::AsynchIO&, Rdma::Buffer* buff) { + Codec* codec = securityLayer.get() ? (Codec*) securityLayer.get() : (Codec*) this; +- codec->decode(buff->bytes+buff->dataStart, buff->dataCount); ++ codec->decode(buff->bytes(), buff->dataCount()); + } + + size_t RdmaConnector::decode(const char* buffer, size_t size) +@@ -386,9 +385,9 @@ size_t RdmaConnector::decode(const char* buffer, size_t size) + + void RdmaConnector::writeDataBlock(const AMQDataBlock& data) { + Rdma::Buffer* buff = aio->getBuffer(); +- framing::Buffer out(buff->bytes, buff->byteCount); ++ framing::Buffer out(buff->bytes(), buff->byteCount()); + data.encode(out); +- buff->dataCount = data.encodedSize(); ++ buff->dataCount(data.encodedSize()); + aio->queueWrite(buff); + } + +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index e3498fa..044e6b4 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -108,9 +108,9 @@ void RdmaIOHandler::write(const framing::ProtocolInitiation& data) + { + QPID_LOG(debug, "Rdma: SENT [" << identifier << "] INIT(" << data << ")"); + Rdma::Buffer* buff = aio->getBuffer(); +- framing::Buffer out(buff->bytes, buff->byteCount); ++ framing::Buffer out(buff->bytes(), buff->byteCount()); + data.encode(out); +- buff->dataCount = data.encodedSize(); ++ buff->dataCount(data.encodedSize()); + aio->queueWrite(buff); + } + +@@ -135,8 +135,8 @@ void RdmaIOHandler::idle(Rdma::AsynchIO&) { + if (codec == 0) return; + if (codec->canEncode()) { + Rdma::Buffer* buff = aio->getBuffer(); +- size_t encoded=codec->encode(buff->bytes, buff->byteCount); +- buff->dataCount = encoded; ++ size_t encoded=codec->encode(buff->bytes(), buff->byteCount()); ++ buff->dataCount(encoded); + aio->queueWrite(buff); + } + if (codec->isClosed()) +@@ -178,7 +178,7 @@ void RdmaIOHandler::readbuff(Rdma::AsynchIO&, Rdma::Buffer* buff) { + size_t decoded = 0; + try { + if (codec) { +- decoded = codec->decode(buff->bytes+buff->dataStart, buff->dataCount); ++ decoded = codec->decode(buff->bytes(), buff->dataCount()); + }else{ + // Need to start protocol processing + initProtocolIn(buff); +@@ -191,7 +191,7 @@ void RdmaIOHandler::readbuff(Rdma::AsynchIO&, Rdma::Buffer* buff) { + } + + void RdmaIOHandler::initProtocolIn(Rdma::Buffer* buff) { +- framing::Buffer in(buff->bytes+buff->dataStart, buff->dataCount); ++ framing::Buffer in(buff->bytes(), buff->dataCount()); + framing::ProtocolInitiation protocolInit; + size_t decoded = 0; + if (protocolInit.decode(in)) { +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +index c95cda7..d33c609 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +@@ -67,8 +67,8 @@ vector testString; + void write(Rdma::AsynchIO& aio) { + while (aio.writable() && aio.bufferAvailable() && smsgs < target) { + Rdma::Buffer* b = aio.getBuffer(); +- std::copy(testString.begin(), testString.end(), b->bytes); +- b->dataCount = msgsize; ++ std::copy(testString.begin(), testString.end(), b->bytes()); ++ b->dataCount(msgsize); + aio.queueWrite(b); + ++smsgs; + sbytes += msgsize; +@@ -81,7 +81,7 @@ void dataError(Rdma::AsynchIO&) { + + void data(Poller::shared_ptr p, Rdma::AsynchIO& aio, Rdma::Buffer* b) { + ++rmsgs; +- rbytes += b->dataCount; ++ rbytes += b->dataCount(); + + // When all messages have been recvd stop + if (rmsgs < target) { +@@ -99,7 +99,7 @@ void full(Rdma::AsynchIO& a, Rdma::Buffer* b) { + + // Don't need to keep buffer just adjust the counts + --smsgs; +- sbytes -= b->dataCount; ++ sbytes -= b->dataCount(); + + // Give buffer back + a.returnBuffer(b); +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 45295d4..3b49e97 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -65,7 +65,6 @@ namespace Rdma { + // Allocate recv buffer + Buffer* b = qp->createBuffer(bufferSize); + buffers.push_front(b); +- b->dataCount = b->byteCount; + qp->postRecv(b); + } + +@@ -74,8 +73,6 @@ namespace Rdma { + Buffer* b = qp->createBuffer(bufferSize); + buffers.push_front(b); + bufferQueue.push_front(b); +- b->dataCount = 0; +- b->dataStart = 0; + } + } + +@@ -410,8 +407,6 @@ namespace Rdma { + } + + // At this point the buffer has been consumed so put it back on the recv queue +- b->dataStart = 0; +- b->dataCount = 0; + qp->postRecv(b); + + // Received another message +@@ -425,8 +420,8 @@ namespace Rdma { + if (writable()) { + Buffer* ob = getBuffer(); + // Have to send something as adapters hate it when you try to transfer 0 bytes +- *reinterpret_cast< uint32_t* >(ob->bytes) = htonl(recvCredit); +- ob->dataCount = sizeof(uint32_t); ++ *reinterpret_cast< uint32_t* >(ob->bytes()) = htonl(recvCredit); ++ ob->dataCount(sizeof(uint32_t)); + + int creditSent = recvCredit & ~FlagsMask; + qp->postSend(creditSent | IgnoreData, ob); +@@ -498,16 +493,12 @@ namespace Rdma { + assert(!bufferQueue.empty()); + Buffer* b = bufferQueue.front(); + bufferQueue.pop_front(); +- b->dataCount = 0; +- b->dataStart = 0; + return b; + } + + void AsynchIO::returnBuffer(Buffer* b) { + qpid::sys::ScopedLock l(bufferQueueLock); + bufferQueue.push_front(b); +- b->dataCount = 0; +- b->dataStart = 0; + } + + ConnectionManager::ConnectionManager( +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +index d42784f..9771532 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +@@ -70,8 +70,8 @@ void idle(ConRec* cr, Rdma::AsynchIO& a) { + void data(ConRec* cr, Rdma::AsynchIO& a, Rdma::Buffer* b) { + // Echo data back + Rdma::Buffer* buf = a.getBuffer(); +- std::copy(b->bytes+b->dataStart, b->bytes+b->dataStart+b->dataCount, buf->bytes); +- buf->dataCount = b->dataCount; ++ std::copy(b->bytes(), b->bytes()+b->dataCount(), buf->bytes()); ++ buf->dataCount(b->dataCount()); + if (cr->queuedWrites.empty()) { + // If can't write then full will be called and push buffer on back of queue + a.queueWrite(buf); +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index 8944be2..2581aae 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -50,19 +50,20 @@ namespace Rdma { + return count; + } + +- Buffer::Buffer(::ibv_pd* pd, char* const b, const int32_t s) : +- bytes(b), +- byteCount(s), +- dataStart(0), +- dataCount(0), ++ Buffer::Buffer(::ibv_pd* pd, const int32_t s) : ++ bufferSize(s), + mr(CHECK_NULL(::ibv_reg_mr( +- pd, bytes, byteCount, ++ pd, new char[s], s, + ::IBV_ACCESS_LOCAL_WRITE))) +- {} ++ { ++ sge.addr = (uintptr_t) mr->addr; ++ sge.length = 0; ++ sge.lkey = mr->lkey; ++ } + + Buffer::~Buffer() { + (void) ::ibv_dereg_mr(mr); +- delete [] bytes; ++ delete [] bytes(); + } + + QueuePairEvent::QueuePairEvent() : +@@ -106,7 +107,7 @@ namespace Rdma { + + Buffer* QueuePairEvent::getBuffer() const { + Buffer* b = reinterpret_cast(wc.wr_id); +- b->dataCount = wc.byte_len; ++ b->dataCount(wc.byte_len); + return b; + } + +@@ -157,7 +158,7 @@ namespace Rdma { + + // Create a buffer to use for writing + Buffer* QueuePair::createBuffer(int s) { +- return new Buffer(pd.get(), new char[s], s); ++ return new Buffer(pd.get(), s); + } + + // Make channel non-blocking by making +@@ -213,14 +214,11 @@ namespace Rdma { + + void QueuePair::postRecv(Buffer* buf) { + ::ibv_recv_wr rwr = {}; +- ::ibv_sge sge; +- +- sge.addr = (uintptr_t) buf->bytes+buf->dataStart; +- sge.length = buf->dataCount; +- sge.lkey = buf->mr->lkey; + + rwr.wr_id = reinterpret_cast(buf); +- rwr.sg_list = &sge; ++ // We are given the whole buffer ++ buf->dataCount(buf->byteCount()); ++ rwr.sg_list = &buf->sge; + rwr.num_sge = 1; + + ::ibv_recv_wr* badrwr = 0; +@@ -231,16 +229,11 @@ namespace Rdma { + + void QueuePair::postSend(Buffer* buf) { + ::ibv_send_wr swr = {}; +- ::ibv_sge sge; +- +- sge.addr = (uintptr_t) buf->bytes+buf->dataStart; +- sge.length = buf->dataCount; +- sge.lkey = buf->mr->lkey; + + swr.wr_id = reinterpret_cast(buf); + swr.opcode = IBV_WR_SEND; + swr.send_flags = IBV_SEND_SIGNALED; +- swr.sg_list = &sge; ++ swr.sg_list = &buf->sge; + swr.num_sge = 1; + + ::ibv_send_wr* badswr = 0; +@@ -251,17 +244,12 @@ namespace Rdma { + + void QueuePair::postSend(uint32_t imm, Buffer* buf) { + ::ibv_send_wr swr = {}; +- ::ibv_sge sge; +- +- sge.addr = (uintptr_t) buf->bytes+buf->dataStart; +- sge.length = buf->dataCount; +- sge.lkey = buf->mr->lkey; +- swr.send_flags = IBV_SEND_SIGNALED; + + swr.wr_id = reinterpret_cast(buf); + swr.imm_data = htonl(imm); + swr.opcode = IBV_WR_SEND_WITH_IMM; +- swr.sg_list = &sge; ++ swr.send_flags = IBV_SEND_SIGNALED; ++ swr.sg_list = &buf->sge; + swr.num_sge = 1; + + ::ibv_send_wr* badswr = 0; +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index 5803ae5..54066d1 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -45,19 +45,38 @@ namespace Rdma { + + struct Buffer { + friend class QueuePair; ++ friend class QueuePairEvent; + +- char* const bytes; +- const int32_t byteCount; +- int32_t dataStart; +- int32_t dataCount; ++ char* bytes() const; ++ int32_t byteCount() const; ++ int32_t dataCount() const; ++ void dataCount(int32_t); + +- Buffer(::ibv_pd* pd, char* const b, const int32_t s); ++ Buffer(::ibv_pd* pd, const int32_t s); + ~Buffer(); + + private: ++ const int32_t bufferSize; + ::ibv_mr* mr; ++ ::ibv_sge sge; + }; + ++ inline char* Buffer::bytes() const { ++ return (char*) sge.addr; ++ } ++ ++ inline int32_t Buffer::byteCount() const { ++ return bufferSize; ++ } ++ ++ inline int32_t Buffer::dataCount() const { ++ return sge.length; ++ } ++ ++ inline void Buffer::dataCount(int32_t s) { ++ sge.length = s; ++ } ++ + class Connection; + + enum QueueDirection { +-- +1.5.5.6 + +From 6bd302f9945099ce7d0d1c021b2aee44c5d6a368 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:36 +0000 +Subject: [PATCH] BZ 591139: Ensure that we can't shutdown in the middle of writing a buffer + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954497 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 3b4e87d..504c5bd 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -320,6 +320,7 @@ void RdmaConnector::send(AMQFrame& frame) { + // This is NOT only called in response to previously calling notifyPendingWrite + void RdmaConnector::writebuff(Rdma::AsynchIO&) { + // It's possible to be disconnected and be writable ++ Mutex::ScopedLock l(pollingLock); + if (!polling) + return; + +-- +1.5.5.6 + +From 196b1674c86d5c0fbea21ddf8f19b0c18f590d85 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:40 +0000 +Subject: [PATCH] BZ 591139: Move QueuePair member in Rdma::AsynchIO to ensure that it get destroyed before + the buffers it uses, so that there is no hardware activity using them after + they are deleted + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954498 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 4 ++-- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 6 ++++-- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 3b49e97..25301e9 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -41,8 +41,6 @@ namespace Rdma { + FullCallback fc, + ErrorCallback ec + ) : +- qp(q), +- dataHandle(*qp, boost::bind(&AsynchIO::dataEvent, this), 0, 0), + bufferSize(size), + recvCredit(0), + xmitCredit(xCredit), +@@ -51,6 +49,8 @@ namespace Rdma { + outstandingWrites(0), + draining(false), + state(IDLE), ++ qp(q), ++ dataHandle(*qp, boost::bind(&AsynchIO::dataEvent, this), 0, 0), + readCallback(rc), + idleCallback(ic), + fullCallback(fc), +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 655119b..4cd0e08 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -47,8 +47,6 @@ namespace Rdma { + typedef boost::function2 FullCallback; + typedef boost::function1 NotifyCallback; + +- QueuePair::intrusive_ptr qp; +- qpid::sys::DispatchHandleRef dataHandle; + int bufferSize; + int recvCredit; + int xmitCredit; +@@ -62,6 +60,10 @@ namespace Rdma { + std::deque bufferQueue; + qpid::sys::Mutex bufferQueueLock; + boost::ptr_deque buffers; ++ // The QueuePair must be after the buffers so that the connection is destroyed before the buffers ++ // are deallocated so that the hardware doesn't write into memory that's been given back. ++ QueuePair::intrusive_ptr qp; ++ qpid::sys::DispatchHandleRef dataHandle; + + ReadCallback readCallback; + IdleCallback idleCallback; +-- +1.5.5.6 + +From ae9ad6a317c1e9ecf47a675f32ebbeda7970d248 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 14 Jun 2010 14:50:44 +0000 +Subject: [PATCH] BZ 591139: Allow entry into notifyPendingWrite() if already stopped as it is too hard + to eliminate a race that can cause this, and it is essentially harmless if + ignored + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954499 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 25301e9..845e84e 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -210,8 +210,8 @@ namespace Rdma { + newState = NOTIFY_WRITE; + break; + case SHUTDOWN: +- // This is not allowed - we can't make any more writes as we shut the connection down. +- assert(oldState!=SHUTDOWN); ++ // We can get here because it is too hard to eliminate all races of stop() and notifyPendingWrite() ++ // just do nothing. + doReturn = true; + case DRAINED: + // This is not allowed - we can't make any more writes as we're draining the write queue. +-- +1.5.5.6 + +From 0050474676ddfd57fc10e5b845dd085f5841aec4 Mon Sep 17 00:00:00 2001 +From: Stephen D. Huston +Date: Wed, 19 May 2010 21:28:38 +0000 +Subject: [PATCH] Correct class/struct reference; resolves compile warning on Windows. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@946407 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 0f5cd165647af0c5d0791bad309c249bc0996af1) +--- + qpid/cpp/include/qpid/Address.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/include/qpid/Address.h b/qpid/cpp/include/qpid/Address.h +index 71da7b2..57c9139 100755 +--- a/qpid/cpp/include/qpid/Address.h ++++ b/qpid/cpp/include/qpid/Address.h +@@ -25,7 +25,7 @@ + #include + + namespace qpid { +-namespace client { class ConnectionSettings; } ++namespace client { struct ConnectionSettings; } + + + /** +-- +1.5.5.6 + +From 512db9306e1ac6cf8f05f7a646d36f282f88293e Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 25 May 2010 15:13:08 +0000 +Subject: [PATCH] QPID-2617: Fix the windows build for modified method signature + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@948072 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 14862cf97c47355ba21e96429c73848a4d2f6f64) +--- + .../src/qpid/broker/windows/SaslAuthenticator.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp b/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp +index 642be29..608a8f7 100644 +--- a/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp ++++ b/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp +@@ -68,7 +68,7 @@ bool SaslAuthenticator::available(void) + } + + // Initialize the SASL mechanism; throw if it fails. +-void SaslAuthenticator::init(const std::string& /*saslName*/) ++void SaslAuthenticator::init(const std::string& /*saslName*/, const std::string& /*saslConfig*/) + { + return; + } +-- +1.5.5.6 + +From 088dea32ededd4c4e205202c7733f3db08846a1c Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 28 May 2010 18:09:10 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2628 - Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@949245 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 9e522de1ececed29fa9c0a02caa535c4f235b486) +--- + qpid/cpp/bindings/qpid/dotnet/ReadMe.txt | 33 +- + .../csharp.direct.receiver.cs | 19 +- + .../csharp.direct.receiver.csproj | 12 +- + .../csharp.direct.sender/csharp.direct.sender.cs | 15 +- + .../csharp.direct.sender.csproj | 12 +- + .../Properties/AssemblyInfo.cs | 54 ++ + .../csharp.map.callback.receiver.cs | 280 +++++++++++ + .../csharp.map.callback.receiver.csproj | 69 +++ + .../Properties/AssemblyInfo.cs | 54 ++ + .../csharp.map.callback.sender.cs | 146 ++++++ + .../csharp.map.callback.sender.csproj | 66 +++ + .../csharp.map.receiver/csharp.map.receiver.csproj | 16 +- + .../csharp.map.receiver/csharp.map.recevier.cs | 4 +- + .../csharp.map.sender/csharp.map.sender.csproj | 12 +- + .../qpid/dotnet/org.apache.qpid.messaging.sln | 44 ++ + qpid/cpp/bindings/qpid/dotnet/src/Address.cpp | 186 +++++++ + qpid/cpp/bindings/qpid/dotnet/src/Address.h | 89 ++++ + qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp | 194 +++++++- + qpid/cpp/bindings/qpid/dotnet/src/Connection.h | 21 +- + qpid/cpp/bindings/qpid/dotnet/src/Duration.h | 65 ++- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 515 +++++--------------- + qpid/cpp/bindings/qpid/dotnet/src/Message.h | 82 ++-- + qpid/cpp/bindings/qpid/dotnet/src/QpidException.h | 38 ++ + qpid/cpp/bindings/qpid/dotnet/src/QpidMarshal.h | 1 + + qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h | 75 +++ + qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp | 145 +++++- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.h | 20 +- + qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp | 29 +- + qpid/cpp/bindings/qpid/dotnet/src/Sender.h | 33 +- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 305 ++++++++++-- + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 47 ++- + .../bindings/qpid/dotnet/src/TypeTranslator.cpp | 411 ++++++++++++++++ + qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h | 70 +++ + qpid/cpp/bindings/qpid/dotnet/src/app.rc | 1 + + .../qpid/dotnet/src/org.apache.qpid.messaging.rc | 101 ++++ + .../dotnet/src/org.apache.qpid.messaging.vcproj | 34 +- + qpid/cpp/bindings/qpid/dotnet/src/qpid.snk | Bin 0 -> 596 bytes + qpid/cpp/bindings/qpid/dotnet/src/resource.h | 22 - + qpid/cpp/bindings/qpid/dotnet/src/resource1.h | 14 + + .../src/sessionreceiver/Properties/AssemblyInfo.cs | 55 ++ + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 65 +++ + .../dotnet/src/sessionreceiver/sessionreceiver.cs | 133 +++++ + .../dotnet/test/messaging.test/messaging.test.cs | 62 +++- + .../test/messaging.test/messaging.test.csproj | 18 +- + 44 files changed, 2997 insertions(+), 670 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/Address.cpp + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/Address.h + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/QpidException.h + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/qpid.snk + delete mode 100644 qpid/cpp/bindings/qpid/dotnet/src/resource.h + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/resource1.h + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs + +diff --git a/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt b/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt +index 66ac7ae..faa1b79 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt ++++ b/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt +@@ -3,31 +3,46 @@ Qpid.cpp.bindings.qpid.dotnet binding package. + 1. Features + =========== + +-This binding package is a .NET Interop wrapper around the Qpid Messaging interface. +-It exposes the Messaging interface through a series of managed code classes that +-may be used by any .NET language. ++A. This binding package provides a .NET Interop wrapper around the C++ ++ Qpid Messaging interface. It exposes the Messaging interface through ++ a series of managed code classes that may be used by any .NET language. ++ ++B. A sessionreceiver assembly provides session callback functionality ++ above the C++ layer. + + 2. Prerequisites + ================ + +-1. A build of the Qpid C++ libraries is available. ++A. A build of the Qpid C++ libraries is available. + +-2. Refer to this library using environment variable QPID_BUILD_ROOT. ++B. Refer to this library using environment variable QPID_BUILD_ROOT. + + for example: SET QPID_BUILD_ROOT=D:\users\submitter\svn\qpid\cpp + + 3. Building the solution + ======================== + +-1. Build the solution. ++A. The solution is cpp\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ++ ++B. Build the solution (Debug only - Release is not set up yet). + +-4. Runing the examples ++C. Project output goes to %QPID_BUILD_ROOT%\src\Debug. This puts all the ++ solution artifacts is the same directory as the C++ DLLs. ++ ++ ++4. Running the examples + ====================== + +-CWIP ++A. csharp.direct.receiver ++B. csharp.direct.sender ++C. csharp.map.receiver ++D. csharp.map.sender ++E. csharp.map.callback.receiver ++F. csharp.map.callback.sender ++ + + 5. Running the tests + ==================== + +-CWIP ++A. messaging.test + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +index 6cc2a5e..4888023 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +@@ -37,7 +37,20 @@ namespace CSharpDirect + { + String host = "localhost:5672"; + String addr = "amq.direct/key"; +- int nMsg = 10; ++ Int32 nMsg = 10; ++ ++ if (args.Length > 0) ++ host = args[0]; ++ if (args.Length > 1) ++ addr = args[1]; ++ if (args.Length > 2) ++ nMsg = Convert.ToInt32(args[2]); ++ ++ Console.WriteLine("csharp.direct.receiver"); ++ Console.WriteLine("host : {0}", host); ++ Console.WriteLine("addr : {0}", addr); ++ Console.WriteLine("nMsg : {0}", nMsg); ++ Console.WriteLine(); + + Connection conn = new Connection(host); + +@@ -52,7 +65,7 @@ namespace CSharpDirect + + Session sess = conn.createSession(); + +- Duration dur = new Duration(1000 * 3600 * 24); // Wait one day ++ Duration dura = new Duration(3600000); // wait forever + + Receiver rcv = sess.createReceiver(addr); + +@@ -62,7 +75,7 @@ namespace CSharpDirect + { + try + { +- Message msg2 = rcv.fetch(dur); ++ Message msg2 = rcv.fetch(dura); + Console.WriteLine("Rcvd msg {0} : {1}", i, msg2.getContent()); + } + catch (Exception e) +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index 8cb4826..7bfcfb8 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -17,7 +17,7 @@ + true + full + false +- bin\Debug\ ++ ..\..\..\..\..\src\Debug\ + DEBUG;TRACE + prompt + 4 +@@ -31,10 +31,6 @@ + 4 + + +- +- False +- ..\..\bin\Debug\org.apache.qpid.messagingd.dll +- + + + 3.5 +@@ -52,6 +48,12 @@ + + + ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ org.apache.qpid.messaging ++ ++ + + ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs +new file mode 100644 +index 0000000..1f84944 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs +@@ -0,0 +1,54 @@ ++/* ++* Licensed to the Apache Software Foundation (ASF) under one ++* or more contributor license agreements. See the NOTICE file ++* distributed with this work for additional information ++* regarding copyright ownership. The ASF licenses this file ++* to you under the Apache License, Version 2.0 (the ++* "License"); you may not use this file except in compliance ++* with the License. You may obtain a copy of the License at ++* ++* http://www.apache.org/licenses/LICENSE-2.0 ++* ++* Unless required by applicable law or agreed to in writing, ++* software distributed under the License is distributed on an ++* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++* KIND, either express or implied. See the License for the ++* specific language governing permissions and limitations ++* under the License. ++*/ ++using System.Reflection; ++using System.Runtime.CompilerServices; ++using System.Runtime.InteropServices; ++ ++// General Information about an assembly is controlled through the following ++// set of attributes. Change these attribute values to modify the information ++// associated with an assembly. ++[assembly: AssemblyTitle("csharp.map.sender")] ++[assembly: AssemblyDescription("")] ++[assembly: AssemblyConfiguration("")] ++[assembly: AssemblyCompany("")] ++[assembly: AssemblyProduct("csharp.map.sender")] ++[assembly: AssemblyCopyright("Copyright 2010")] ++[assembly: AssemblyTrademark("")] ++[assembly: AssemblyCulture("")] ++ ++// Setting ComVisible to false makes the types in this assembly not visible ++// to COM components. If you need to access a type in this assembly from ++// COM, set the ComVisible attribute to true on that type. ++[assembly: ComVisible(false)] ++ ++// The following GUID is for the ID of the typelib if this project is exposed to COM ++[assembly: Guid("1eec2eca-adbd-4394-8b01-f4c4645bb122")] ++ ++// Version information for an assembly consists of the following four values: ++// ++// Major Version ++// Minor Version ++// Build Number ++// Revision ++// ++// You can specify all the values or you can default the Build and Revision Numbers ++// by using the '*' as shown below: ++// [assembly: AssemblyVersion("1.0.*")] ++[assembly: AssemblyVersion("1.0.0.0")] ++[assembly: AssemblyFileVersion("1.0.0.0")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +new file mode 100644 +index 0000000..a097267 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +@@ -0,0 +1,146 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using System.Collections.Generic; ++using System.Linq; ++using System.Text; ++using org.apache.qpid.messaging; ++ ++namespace org.apache.qpid.messaging.examples ++{ ++ class MapSender ++ { ++ // ++ // usage ++ // ++ static void usage(string url, string addr, UInt32 count) ++ { ++ ++ Console.WriteLine("usage: {0} [url [addr [count]]]", ++ System.Diagnostics.Process.GetCurrentProcess().ProcessName); ++ Console.WriteLine(); ++ Console.WriteLine("A program to connect to a broker and send N"); ++ Console.WriteLine("messages to a named exchange with a routing key."); ++ Console.WriteLine(); ++ Console.WriteLine(" url = target address for 'new Connection(url)'"); ++ Console.WriteLine(" addr = address for 'session.createReceiver(addr)'"); ++ Console.WriteLine(" count = number of messages to send"); ++ Console.WriteLine(); ++ Console.WriteLine("Default values:"); ++ Console.WriteLine(" {0} {1} {2} {3}", ++ System.Diagnostics.Process.GetCurrentProcess().ProcessName, ++ url, addr, count); ++ } ++ ++ ++ // ++ // TestProgram ++ // ++ public void TestProgram(string[] args) ++ { ++ string url = "amqp:tcp:localhost:5672"; ++ string addr = "amq.direct/map_example"; ++ UInt32 count = 1; ++ ++ if (1 == args.Length) ++ { ++ if (args[0].Equals("-h") || args[0].Equals("-H") || args[0].Equals("/?")) ++ { ++ usage(url, addr, count); ++ return; ++ } ++ } ++ ++ if (args.Length > 0) ++ url = args[0]; ++ if (args.Length > 1) ++ addr = args[1]; ++ if (args.Length > 2) ++ count = System.Convert.ToUInt32(args[2]); ++ ++ ++ // ++ // Create and open an AMQP connection to the broker URL ++ // ++ Connection connection = new Connection(url); ++ connection.open(); ++ ++ // ++ // Create a session and a sender to the direct exchange using the ++ // routing key "map_example". ++ // ++ Session session = connection.createSession(); ++ Sender sender = session.createSender(addr); ++ ++ // ++ // Create structured content for the message. This example builds a ++ // map of items including a nested map and a list of values. ++ // ++ Dictionary content = new Dictionary(); ++ Dictionary subMap = new Dictionary(); ++ List colors = new List(); ++ ++ content["id"] = 987654321; ++ content["name"] = "Widget"; ++ content["percent"] = 0.99; ++ ++ subMap["name"] = "Smith"; ++ subMap["number"] = 354; ++ ++ content["nested"] = subMap; ++ ++ colors.Add("red"); ++ colors.Add("green"); ++ colors.Add("white"); ++ ++ content["colors"] = colors; ++ ++ // ++ // Construct a message with the map content and send it synchronously ++ // via the sender. ++ // ++ Message message = new Message(content); ++ for (UInt32 i = 0; i ++ ++ ++ Debug ++ AnyCPU ++ 9.0.30729 ++ 2.0 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A} ++ Exe ++ Properties ++ csharp.map.callback.sender ++ csharp.map.callback.sender ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ true ++ ++ ++ pdbonly ++ true ++ bin\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ org.apache.qpid.messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +index a491274..380e33b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -17,7 +17,7 @@ + true + full + false +- bin\Debug\ ++ ..\..\..\..\..\src\Debug\ + DEBUG;TRACE + prompt + 4 +@@ -31,10 +31,6 @@ + 4 + + +- +- False +- ..\..\bin\Debug\org.apache.qpid.messagingd.dll +- + + + 3.5 +@@ -52,6 +48,16 @@ + + + ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ org.apache.qpid.messaging ++ ++ ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05} ++ org.apache.qpid.messaging.sessionreceiver ++ ++ + + ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs +new file mode 100644 +index 0000000..73956ec +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs +@@ -0,0 +1,133 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using System.Collections.Generic; ++using System.Linq; ++using System.Text; ++using org.apache.qpid.messaging; ++ ++namespace org.apache.qpid.messaging.sessionreceiver ++{ ++ /// ++ /// ISessionReceiver interface defines the callback for users to supply. ++ /// Once established this callback will receive all messages for all ++ /// receivers defined by the current session. ++ /// Users are expected not to 'fetch' or 'get' messages by any other means. ++ /// Users must acknowledge() the Session's messages either in the callback ++ /// function or by some other scheme. ++ /// ++ ++ public interface ISessionReceiver ++ { ++ void SessionReceiver(Receiver receiver, Message message); ++ } ++ ++ ++ /// ++ /// eventEngine - wait for messages from the underlying C++ code. ++ /// When available get them and deliver them via callback to our ++ /// client through the ISessionReceiver interface. ++ /// This class consumes the thread that calls the Run() function. ++ /// ++ ++ internal class eventEngine ++ { ++ private Session session; ++ private ISessionReceiver callback; ++ private bool keepRunning; ++ ++ public eventEngine(Session theSession, ISessionReceiver thecallback) ++ { ++ this.session = theSession; ++ this.callback = thecallback; ++ } ++ ++ /// ++ /// Function to call Session's nextReceiver, discover messages, ++ /// and to deliver messages through the callback. ++ /// ++ public void open() ++ { ++ Receiver rcvr = session.createReceiver(); ++ Message msg; ++ ++ keepRunning = true; ++ while (keepRunning) ++ { ++ if (session.nextReceiver(rcvr, DurationConstants.SECOND)) ++ { ++ if (keepRunning) ++ { ++ msg = rcvr.fetch(DurationConstants.SECOND); ++ this.callback.SessionReceiver(rcvr, msg); ++ } ++ } ++ //else ++ // receive timed out ++ // eventEngine exits the nextReceiver() function periodically ++ // in order to test the keepRunning flag ++ } ++ // Private thread is now exiting. ++ } ++ ++ /// ++ /// Function to stop the eventEngine. Private thread will exit within ++ /// one second. ++ /// ++ public void close() ++ { ++ keepRunning = false; ++ } ++ } ++ ++ ++ /// ++ /// server is the class that users instantiate to connect a SessionReceiver ++ /// callback to the stream of received messages received on a Session. ++ /// ++ public class server ++ { ++ private eventEngine ee; ++ ++ /// ++ /// Constructor for the server. ++ /// ++ /// The Session whose messages are collected. ++ /// The user function call with each message. ++ /// ++ public server(Session session, ISessionReceiver callback) ++ { ++ ee = new eventEngine(session, callback); ++ ++ new System.Threading.Thread( ++ new System.Threading.ThreadStart(ee.open)).Start(); ++ } ++ ++ /// ++ /// Function to stop the server. ++ /// ++ public void close() ++ { ++ ee.close(); ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +index 63a8548..5d16172 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +@@ -12,27 +12,77 @@ namespace org.apache.qpid.messaging + { + // + // Duration test - stub until proper nunit tests are ready... +- // ++ + Duration myDuration = new Duration(1234); + + Console.WriteLine("Duration should be : 1234, is : {0}", +- myDuration.getMilliseconds()); ++ myDuration.Milliseconds); + + Console.WriteLine("Duration FOREVER should be : 1.8x10^19 (realbig), is : {0}", +- myDuration.FOREVER()); ++ DurationConstants.FORVER.Milliseconds); + + Console.WriteLine("Duration IMMEDIATE should be : 0, is : {0}", +- myDuration.IMMEDIATE()); ++ DurationConstants.IMMEDIATE.Milliseconds); + + Console.WriteLine("Duration SECOND should be : 1,000, is : {0}", +- myDuration.SECOND()); ++ DurationConstants.SECOND.Milliseconds); + + Console.WriteLine("Duration MINUTE should be : 60,000, is : {0}", +- myDuration.MINUTE()); ++ DurationConstants.MINUTE.Milliseconds); ++ ++ Duration isInfinite = new Duration(); + ++ Console.WriteLine("Duration() should be : realbig, is : {0}", ++ isInfinite.Milliseconds); ++ ++ Duration fiveMinutes = new Duration(DurationConstants.MINUTE.Milliseconds * 5); ++ Console.WriteLine("Duration 5MINUTE should be : 300,000, is : {0}", ++ fiveMinutes.Milliseconds); ++ ++ Duration fiveSec = DurationConstants.SECOND * 5; ++ Console.WriteLine("Duration 5SECOND should be : 5,000 is : {0}", ++ fiveSec.Milliseconds); + // + // and so on + // ++ ++ Dictionary dx = new Dictionary(); ++ ++ Console.WriteLine("Dictionary.GetType() {0}", dx.GetType()); ++ ++ // ++ // Address test ++ // ++ Address aEmpty = new Address(); ++ Address aStr = new Address("rare"); ++ ++ Dictionary options = new Dictionary(); ++ options["one"] = 1; ++ options["two"] = "two"; ++ ++ Address aSubj = new Address("rare2", "subj", options); ++ ++ Address aType = new Address ("check3", "subj", options, "hot"); ++ ++ Console.WriteLine("aEmpty : {0}", aEmpty.str()); ++ Console.WriteLine("aStr : {0}", aStr.str()); ++ Console.WriteLine("aSubj : {0}", aSubj.str()); ++ Console.WriteLine("aType : {0}", aType.str()); ++ ++ // ++ // Raw message data retrieval ++ // ++ ++ Message m2 = new Message("rarey"); ++ UInt64 m2Size = m2.getContentSize(); ++ ++ ++ byte[] myRaw = new byte [m2Size]; ++ ++ m2.getRaw(myRaw); ++ Console.WriteLine("Got raw array size {0}", m2Size); ++ for (UInt64 i = 0; i < m2Size; i++) ++ Console.Write("{0} ", myRaw[i].ToString()); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +index 0c9d6af..08c0147 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +@@ -17,7 +17,7 @@ + true + full + false +- bin\Debug\ ++ ..\..\..\..\..\src\Debug\ + DEBUG;TRACE + prompt + 4 +@@ -31,10 +31,6 @@ + 4 + + +- +- False +- ..\..\bin\Debug\org.apache.qpid.messagingd.dll +- + + + 3.5 +@@ -52,6 +48,12 @@ + + + ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ org.apache.qpid.messaging ++ ++ + + ++ ++ ++ ++ ++ ++ + +-- +1.5.5.6 + +From 9a0ba6962caad7e88d67d14b7464a95b24267b7b Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 3 Jun 2010 14:14:50 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2589 - Build DLLs and EXEs usable on both 32 and 64-bit architectures. +Patch from Chuck Rolke. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@951003 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 48ba23e0718fd809ef7a6b5b686c484a56c9d003) +--- + .../csharp.direct.receiver.csproj | 18 +++++++++- + .../csharp.direct.sender.csproj | 18 +++++++++- + .../csharp.map.callback.receiver.csproj | 18 +++++++++- + .../csharp.map.callback.sender.csproj | 19 +++++++++- + .../csharp.map.receiver/csharp.map.receiver.csproj | 18 +++++++++- + .../csharp.map.sender/csharp.map.sender.csproj | 18 +++++++++- + .../qpid/dotnet/org.apache.qpid.messaging.sln | 37 ++++++++++++++++++++ + .../dotnet/src/org.apache.qpid.messaging.vcproj | 14 ++++---- + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 18 +++++++++- + .../test/messaging.test/messaging.test.csproj | 18 +++++++++- + 10 files changed, 181 insertions(+), 15 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index 7bfcfb8..96b4540 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -25,11 +25,27 @@ + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +index 7ff92e1..4543222 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -25,11 +25,27 @@ + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +index e8aae4b..24b5cd4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -25,11 +25,27 @@ + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +index 5089737..26f2c5b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -26,11 +26,28 @@ + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ true ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +index 380e33b..06017fb 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -25,11 +25,27 @@ + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +index 4482e6a..a3a2ac2 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +@@ -25,11 +25,27 @@ + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +index 8b0b3fd..5cd4b1a 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +@@ -48,9 +48,11 @@ Global + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 ++ Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 ++ Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Any CPU.ActiveCfg = Debug|Win32 +@@ -58,91 +60,126 @@ Global + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.ActiveCfg = Debug|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.Build.0 = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.ActiveCfg = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.Build.0 = Debug|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Any CPU.ActiveCfg = Release|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.Build.0 = Release|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.ActiveCfg = Release|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.Build.0 = Release|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x86.ActiveCfg = Release|Win32 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.ActiveCfg = Debug|x86 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.Build.0 = Debug|x86 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Any CPU.Build.0 = Release|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Win32.ActiveCfg = Release|Any CPU ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.ActiveCfg = Release|x86 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.Build.0 = Release|x86 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.ActiveCfg = Debug|x86 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.Build.0 = Debug|x86 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Any CPU.Build.0 = Release|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Win32.ActiveCfg = Release|Any CPU ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.ActiveCfg = Release|x86 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.Build.0 = Release|x86 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|x86.ActiveCfg = Debug|x86 ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|x86.Build.0 = Debug|x86 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Any CPU.Build.0 = Release|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Win32.ActiveCfg = Release|Any CPU ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|x86.ActiveCfg = Release|x86 ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|x86.Build.0 = Release|x86 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.ActiveCfg = Debug|x86 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.Build.0 = Debug|x86 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Any CPU.Build.0 = Release|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Win32.ActiveCfg = Release|Any CPU ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.ActiveCfg = Release|x86 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.Build.0 = Release|x86 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.ActiveCfg = Debug|x86 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.Build.0 = Debug|x86 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Any CPU.Build.0 = Release|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Win32.ActiveCfg = Release|Any CPU ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.ActiveCfg = Release|x86 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.Build.0 = Release|x86 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.ActiveCfg = Debug|x86 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.Build.0 = Debug|x86 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.Build.0 = Release|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Win32.ActiveCfg = Release|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.ActiveCfg = Release|x86 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.Build.0 = Release|x86 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.ActiveCfg = Debug|x86 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.Build.0 = Debug|x86 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Any CPU.Build.0 = Release|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Win32.ActiveCfg = Release|Any CPU ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.ActiveCfg = Release|x86 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.Build.0 = Release|x86 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.ActiveCfg = Debug|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.Build.0 = Debug|x86 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Any CPU.Build.0 = Release|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Win32.ActiveCfg = Release|Any CPU ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.ActiveCfg = Release|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index 3f5861b..7c31781 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -18,8 +18,8 @@ + + + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +index 08c0147..5dddc59 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +@@ -25,11 +25,27 @@ + + pdbonly + true +- bin\Release\ ++ ..\..\..\..\..\src\Release\ + TRACE + prompt + 4 + ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + + +-- +1.5.5.6 + +From 49e8840023c526ed951f8bf7e97570e883399375 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Wed, 9 Jun 2010 11:59:38 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2589 Cleanup pass to address function naming, capitalization rules, change Qpid messaging 'list' representation from List<> to Collection<>, +some exception cleanup. +Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@952968 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit fdd9fd62edc6b304ce36090d38fdfc07ca0205fa) +--- + .../csharp.direct.receiver.cs | 16 +- + .../csharp.direct.sender/csharp.direct.sender.cs | 14 +- + .../csharp.map.callback.receiver.cs | 47 ++-- + .../csharp.map.callback.sender.cs | 19 +- + .../csharp.map.receiver/csharp.map.recevier.cs | 21 +- + .../csharp.map.sender/csharp.map.sender.cs | 17 +- + qpid/cpp/bindings/qpid/dotnet/src/Address.cpp | 50 ++-- + qpid/cpp/bindings/qpid/dotnet/src/Address.h | 34 ++-- + qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp | 128 ++++++----- + qpid/cpp/bindings/qpid/dotnet/src/Connection.h | 30 ++-- + qpid/cpp/bindings/qpid/dotnet/src/Duration.h | 29 ++- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 99 ++++---- + qpid/cpp/bindings/qpid/dotnet/src/Message.h | 75 ++++--- + qpid/cpp/bindings/qpid/dotnet/src/QpidException.h | 16 +- + qpid/cpp/bindings/qpid/dotnet/src/QpidMarshal.h | 11 +- + qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h | 31 ++- + qpid/cpp/bindings/qpid/dotnet/src/ReadMe.txt | 8 +- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp | 99 ++++----- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.h | 61 +++--- + qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp | 22 +- + qpid/cpp/bindings/qpid/dotnet/src/Sender.h | 18 +- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 243 ++++++++------------ + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 48 ++-- + .../bindings/qpid/dotnet/src/TypeTranslator.cpp | 122 +++++----- + qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h | 47 ++-- + .../qpid/dotnet/src/org.apache.qpid.messaging.rc | 6 +- + .../dotnet/src/org.apache.qpid.messaging.vcproj | 6 +- + .../src/sessionreceiver/Properties/AssemblyInfo.cs | 4 +- + .../dotnet/src/sessionreceiver/sessionreceiver.cs | 38 ++-- + .../dotnet/test/messaging.test/messaging.test.cs | 16 +- + 30 files changed, 689 insertions(+), 686 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +index 4888023..98531eb 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +@@ -23,7 +23,7 @@ using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; +-using org.apache.qpid.messaging; ++using Org.Apache.Qpid.Messaging; + + namespace CSharpDirect + { +@@ -54,20 +54,20 @@ namespace CSharpDirect + + Connection conn = new Connection(host); + +- conn.open(); ++ conn.Open(); + +- if (!conn.isOpen()) ++ if (!conn.IsOpen()) + { + Console.WriteLine("Failed to open connection to host : {0}", host); + } + else + { + +- Session sess = conn.createSession(); ++ Session sess = conn.CreateSession(); + + Duration dura = new Duration(3600000); // wait forever + +- Receiver rcv = sess.createReceiver(addr); ++ Receiver rcv = sess.CreateReceiver(addr); + + Message msg = new Message(""); + +@@ -75,8 +75,8 @@ namespace CSharpDirect + { + try + { +- Message msg2 = rcv.fetch(dura); +- Console.WriteLine("Rcvd msg {0} : {1}", i, msg2.getContent()); ++ Message msg2 = rcv.Fetch(dura); ++ Console.WriteLine("Rcvd msg {0} : {1}", i, msg2.GetContent()); + } + catch (Exception e) + { +@@ -84,7 +84,7 @@ namespace CSharpDirect + } + } + +- conn.close(); ++ conn.Close(); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +index 1fe56aa..71ab75c 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +@@ -23,7 +23,7 @@ using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; +-using org.apache.qpid.messaging; ++using Org.Apache.Qpid.Messaging; + + namespace csharp.direct.sender + { +@@ -50,26 +50,26 @@ namespace csharp.direct.sender + + Connection conn = new Connection(host); + +- conn.open(); ++ conn.Open(); + +- if (!conn.isOpen()) ++ if (!conn.IsOpen()) + { + Console.WriteLine("Failed to open connection to host : {0}", host); + } + else + { +- Session sess = conn.createSession(); ++ Session sess = conn.CreateSession(); + +- Sender snd = sess.createSender(addr); ++ Sender snd = sess.CreateSender(addr); + + for (int i = 0; i < nMsg; i++) + { + Message msg = new Message(String.Format("Test Message {0}", i)); + +- snd.send(msg); ++ snd.Send(msg); + } + +- conn.close(); ++ conn.Close(); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs +index e7294c6..2ef7854 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs +@@ -21,10 +21,11 @@ + + using System; + using System.Collections.Generic; +-using org.apache.qpid.messaging; +-using org.apache.qpid.messaging.sessionreceiver; ++using System.Collections.ObjectModel; ++using Org.Apache.Qpid.Messaging; ++using Org.Apache.Qpid.Messaging.SessionReceiver; + +-namespace org.apache.qpid.messaging.examples ++namespace Org.Apache.Qpid.Messaging.Examples + { + /// + /// A class with functions to display structured messages. +@@ -50,7 +51,7 @@ namespace org.apache.qpid.messaging.examples + else if (QpidTypeCheck.ObjectIsList(kvp.Value)) + { + Console.WriteLine("Key: {0}, Value: List", kvp.Key); +- ShowList((List)kvp.Value, level + 1); ++ ShowList((Collection)kvp.Value, level + 1); + } + else + Console.WriteLine("Key: {0}, Value: {1}, Type: {2}", +@@ -63,7 +64,7 @@ namespace org.apache.qpid.messaging.examples + /// + /// The AMQP list + /// Nested depth +- public static void ShowList(List list, int level) ++ public static void ShowList(Collection list, int level) + { + foreach (object obj in list) + { +@@ -77,7 +78,7 @@ namespace org.apache.qpid.messaging.examples + else if (QpidTypeCheck.ObjectIsList(obj)) + { + Console.WriteLine("List"); +- ShowList((List)obj, level + 1); ++ ShowList((Collection)obj, level + 1); + } + else + Console.WriteLine("Value: {0}, Type: {1}", +@@ -92,24 +93,24 @@ namespace org.apache.qpid.messaging.examples + /// The Message + public static void ShowMessage(Message message) + { +- if ("amqp/map" == message.getContentType()) ++ if ("amqp/map" == message.GetContentType()) + { + Console.WriteLine("Received a Dictionary"); + Dictionary content = new Dictionary(); +- message.getContent(content); ++ message.GetContent(content); + ShowDictionary(content, 0); + } +- else if ("amqp/list" == message.getContentType()) ++ else if ("amqp/list" == message.GetContentType()) + { + Console.WriteLine("Received a List"); +- List content = new List(); +- message.getContent(content); ++ Collection content = new Collection(); ++ message.GetContent(content); + ShowList(content, 0); + } + else + { + Console.WriteLine("Received a String"); +- Console.WriteLine(message.getContent()); ++ Console.WriteLine(message.GetContent()); + } + } + } +@@ -147,7 +148,7 @@ namespace org.apache.qpid.messaging.examples + // + // Acknowledge the receipt of all received messages. + // +- receiver.getSession().acknowledge(); ++ receiver.GetSession().Acknowledge(); + } + + +@@ -170,7 +171,7 @@ namespace org.apache.qpid.messaging.examples + Console.WriteLine("The details of the message body's types and values are shown."); + Console.WriteLine(); + Console.WriteLine(" url = target address for 'new Connection(url)'"); +- Console.WriteLine(" addr = address for 'session.createReceiver(addr)'"); ++ Console.WriteLine(" addr = address for 'session.CreateReceiver(addr)'"); + Console.WriteLine(" nSec = time in seconds to keep the receiver callback open"); + Console.WriteLine(); + Console.WriteLine("Default values:"); +@@ -211,20 +212,20 @@ namespace org.apache.qpid.messaging.examples + // Create and open an AMQP connection to the broker URL + // + Connection connection = new Connection(url); +- connection.open(); ++ connection.Open(); + + // + // Create a session. + // +- Session session = connection.createSession(); ++ Session session = connection.CreateSession(); + + // + // Receive through callback + // + // Create callback server and implicitly start it + // +- sessionreceiver.server cbServer = +- new sessionreceiver.server(session, this); ++ SessionReceiver.CallbackServer cbServer = ++ new SessionReceiver.CallbackServer(session, this); + + // + // The callback server is running and executing callbacks on a +@@ -235,12 +236,12 @@ namespace org.apache.qpid.messaging.examples + // Create a receiver for the direct exchange using the + // routing key "map_example". + // +- Receiver receiver = session.createReceiver(addr); ++ Receiver receiver = session.CreateReceiver(addr); + + // + // Establish a capacity + // +- receiver.setCapacity(100); ++ receiver.SetCapacity(100); + + // + // Wait so many seconds for messages to arrive. +@@ -250,13 +251,13 @@ namespace org.apache.qpid.messaging.examples + // + // Stop the callback server. + // +- cbServer.close(); ++ cbServer.Close(); + + // + // Close the receiver and the connection. + // +- receiver.close(); +- connection.close(); ++ receiver.Close(); ++ connection.Close(); + } + } + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +index a097267..761ac0a 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +@@ -21,11 +21,12 @@ + + using System; + using System.Collections.Generic; ++using System.Collections.ObjectModel; + using System.Linq; + using System.Text; +-using org.apache.qpid.messaging; ++using Org.Apache.Qpid.Messaging; + +-namespace org.apache.qpid.messaging.examples ++namespace Org.Apache.Qpid.Messaging.Examples + { + class MapSender + { +@@ -42,7 +43,7 @@ namespace org.apache.qpid.messaging.examples + Console.WriteLine("messages to a named exchange with a routing key."); + Console.WriteLine(); + Console.WriteLine(" url = target address for 'new Connection(url)'"); +- Console.WriteLine(" addr = address for 'session.createReceiver(addr)'"); ++ Console.WriteLine(" addr = address for 'session.CreateReceiver(addr)'"); + Console.WriteLine(" count = number of messages to send"); + Console.WriteLine(); + Console.WriteLine("Default values:"); +@@ -82,14 +83,14 @@ namespace org.apache.qpid.messaging.examples + // Create and open an AMQP connection to the broker URL + // + Connection connection = new Connection(url); +- connection.open(); ++ connection.Open(); + + // + // Create a session and a sender to the direct exchange using the + // routing key "map_example". + // +- Session session = connection.createSession(); +- Sender sender = session.createSender(addr); ++ Session session = connection.CreateSession(); ++ Sender sender = session.CreateSender(addr); + + // + // Create structured content for the message. This example builds a +@@ -97,7 +98,7 @@ namespace org.apache.qpid.messaging.examples + // + Dictionary content = new Dictionary(); + Dictionary subMap = new Dictionary(); +- List colors = new List(); ++ Collection colors = new Collection(); + + content["id"] = 987654321; + content["name"] = "Widget"; +@@ -120,12 +121,12 @@ namespace org.apache.qpid.messaging.examples + // + Message message = new Message(content); + for (UInt32 i = 0; i 0) + url = args[0]; + +@@ -38,37 +37,37 @@ namespace org.apache.qpid.messaging.examples + // Create and open an AMQP connection to the broker URL + // + Connection connection = new Connection(url); +- connection.open(); ++ connection.Open(); + + // + // Create a session and a receiver fir the direct exchange using the + // routing key "map_example". + // +- Session session = connection.createSession(); +- Receiver receiver = session.createReceiver("amq.direct/map_example"); ++ Session session = connection.CreateSession(); ++ Receiver receiver = session.CreateReceiver("amq.direct/map_example"); + + // + // Fetch the message from the broker (wait indefinitely by default) + // +- Message message = receiver.fetch(new Duration(60000)); ++ Message message = receiver.Fetch(new Duration(60000)); + + // + // Extract the structured content from the message. + // + Dictionary content = new Dictionary(); +- message.getContent(content); ++ message.GetContent(content); + Console.WriteLine("Received: {0}", content); + + // + // Acknowledge the receipt of all received messages. + // +- session.acknowledge(); ++ session.Acknowledge(); + + // + // Close the receiver and the connection. + // +- receiver.close(); +- connection.close(); ++ receiver.Close(); ++ connection.Close(); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +index 2890367..d1ccc65 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +@@ -21,11 +21,12 @@ + + using System; + using System.Collections.Generic; ++using System.Collections.ObjectModel; + using System.Linq; + using System.Text; +-using org.apache.qpid.messaging; ++using Org.Apache.Qpid.Messaging; + +-namespace org.apache.qpid.messaging.examples ++namespace Org.Apache.Qpid.Messaging.examples + { + class MapSender + { +@@ -39,14 +40,14 @@ namespace org.apache.qpid.messaging.examples + // Create and open an AMQP connection to the broker URL + // + Connection connection = new Connection(url); +- connection.open(); ++ connection.Open(); + + // + // Create a session and a sender to the direct exchange using the + // routing key "map_example". + // +- Session session = connection.createSession(); +- Sender sender = session.createSender("amq.direct/map_example"); ++ Session session = connection.CreateSession(); ++ Sender sender = session.CreateSender("amq.direct/map_example"); + + // + // Create structured content for the message. This example builds a +@@ -54,7 +55,7 @@ namespace org.apache.qpid.messaging.examples + // + Dictionary content = new Dictionary(); + Dictionary subMap = new Dictionary(); +- List colors = new List(); ++ Collection colors = new Collection(); + + content["id"] = 987654321; + content["name"] = "Widget"; +@@ -76,12 +77,12 @@ namespace org.apache.qpid.messaging.examples + // via the sender. + // + Message message = new Message(content); +- sender.send(message, true); ++ sender.Send(message, true); + + // + // Close the connection. + // +- connection.close(); ++ connection.Close(); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +index 8b48a20..f0bbe13 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +@@ -30,10 +30,10 @@ + #include "QpidTypeCheck.h" + #include "TypeTranslator.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Address is a managed wrapper for a qpid::messaging::Address +@@ -58,10 +58,10 @@ namespace messaging { + System::String ^, System::Object ^> ^ options) : + addressp(new ::qpid::messaging::Address()) + { +- setName(name); +- setSubject(subject); +- setOptions(options); +- setType(""); ++ SetName(name); ++ SetSubject(subject); ++ SetOptions(options); ++ SetType(""); + } + + +@@ -72,10 +72,10 @@ namespace messaging { + System::String ^ type) : + addressp(new ::qpid::messaging::Address()) + { +- setName(name); +- setSubject(subject); +- setOptions(options); +- setType(type); ++ SetName(name); ++ SetSubject(subject); ++ SetOptions(options); ++ SetType(type); + } + + +@@ -114,12 +114,12 @@ namespace messaging { + // + // name + // +- System::String ^ Address::getName() ++ System::String ^ Address::GetName() + { + return gcnew System::String(addressp->getName().c_str()); + } + +- void Address::setName(System::String ^ name) ++ void Address::SetName(System::String ^ name) + { + addressp->::qpid::messaging::Address::setName(QpidMarshal::ToNative(name)); + } +@@ -127,21 +127,21 @@ namespace messaging { + // + // subject + // +- System::String ^ Address::getSubject() ++ System::String ^ Address::GetSubject() + { + return gcnew System::String(addressp->getSubject().c_str()); + } + +- void Address::setSubject(System::String ^ subject) ++ void Address::SetSubject(System::String ^ subject) + { +- addressp->setName(QpidMarshal::ToNative(subject)); ++ addressp->setSubject(QpidMarshal::ToNative(subject)); + } + + // + // options + // + System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ Address::getOptions() ++ System::String ^, System::Object ^> ^ Address::GetOptions() + { + ::qpid::types::Variant::Map map; + System::Collections::Generic::Dictionary< +@@ -149,37 +149,37 @@ namespace messaging { + gcnew System::Collections::Generic::Dictionary< + System::String ^, System::Object ^>; + map = addressp->getOptions(); +- TypeTranslator::NativeToManaged(newMap, map); ++ TypeTranslator::NativeToManaged(map, newMap); + return newMap; + } + + +- void Address::setOptions(System::Collections::Generic::Dictionary< ++ void Address::SetOptions(System::Collections::Generic::Dictionary< + System::String ^, System::Object ^> ^ options) + { + ::qpid::types::Variant::Map map; +- TypeTranslator::ManagedToNative(map, options); ++ TypeTranslator::ManagedToNative(options, map); + addressp->setOptions(map); + } + + // + // type + // +- System::String ^ Address::getType() ++ System::String ^ Address::GetType() + { + return gcnew System::String(addressp->getType().c_str()); + } + + +- void Address::setType(System::String ^ type) ++ void Address::SetType(System::String ^ type) + { + addressp->setName(QpidMarshal::ToNative(type)); + } + + // +- // str ++ // ToString + // +- System::String ^ Address::str() ++ System::String ^ Address::ToStr() + { + return gcnew System::String(addressp->str().c_str()); + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.h b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +index 72eed76..60e24da 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +@@ -27,11 +27,10 @@ + + #include "qpid/messaging/Address.h" + +- +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Address is a managed wrapper for a qpid::messaging::Address +@@ -43,10 +42,10 @@ namespace messaging { + // Kept object deletion code + void Cleanup(); + +- public: + // The kept object in the Messaging C++ DLL + ::qpid::messaging::Address * addressp; + ++ public: + Address(); + + Address(System::String ^ address); +@@ -69,21 +68,26 @@ namespace messaging { + !Address(); + // Address(const Address % rhs); + +- System::String ^ getName(); +- void setName(System::String ^ name); ++ property ::qpid::messaging::Address * NativeAddress ++ { ++ ::qpid::messaging::Address * get () { return addressp; } ++ } ++ ++ System::String ^ GetName(); ++ void SetName(System::String ^ name); + +- System::String ^ getSubject(); +- void setSubject(System::String ^ subject); ++ System::String ^ GetSubject(); ++ void SetSubject(System::String ^ subject); + + System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ getOptions(); ++ System::String ^, System::Object ^> ^ GetOptions(); + +- void setOptions(System::Collections::Generic::Dictionary< ++ void SetOptions(System::Collections::Generic::Dictionary< + System::String ^, System::Object ^> ^ options); + +- System::String ^ getType(); +- void setType(System::String ^ type); ++ System::String ^ GetType(); ++ void SetType(System::String ^ type); + +- System::String ^ str(); ++ System::String ^ ToStr(); + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +index 4936e18..590cc5e 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +@@ -33,10 +33,10 @@ + #include "QpidException.h" + #include "TypeTranslator.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Connection is a managed wrapper for a qpid::messaging::Connection +@@ -56,7 +56,7 @@ namespace messaging { + { + for each (System::Collections::Generic::KeyValuePair kvp in options) + { +- setOption(kvp.Key, kvp.Value); ++ SetOption(kvp.Key, kvp.Value); + } + } + +@@ -94,7 +94,7 @@ namespace messaging { + } + + +- void Connection::setOption(System::String ^ name, System::Object ^ value) ++ void Connection::SetOption(System::String ^ name, System::Object ^ value) + { + ::qpid::types::Variant entryValue; + TypeTranslator::ManagedToNativeObject(value, entryValue); +@@ -102,31 +102,31 @@ namespace messaging { + connectionp->::qpid::messaging::Connection::setOption(entryName, entryValue); + } + +- void Connection::open() ++ void Connection::Open() + { + connectionp->open(); + } + +- System::Boolean Connection::isOpen() ++ System::Boolean Connection::IsOpen() + { + return connectionp->isOpen(); + } + +- void Connection::close() ++ void Connection::Close() + { + connectionp->close(); + } + + // +- // createTransactionalSession() ++ // CreateTransactionalSession() + // +- Session ^ Connection::createTransactionalSession() ++ Session ^ Connection::CreateTransactionalSession() + { +- return createTransactionalSession(""); ++ return CreateTransactionalSession(""); + } + + +- Session ^ Connection::createTransactionalSession(System::String ^ name) ++ Session ^ Connection::CreateTransactionalSession(System::String ^ name) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Session * sessionp = NULL; +@@ -148,42 +148,44 @@ namespace messaging { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Connection::createTransactionalSession unknown error"); +- } + finally + { + // Clean up and throw on caught exceptions + if (newException != nullptr) + { +- if (sessionp != NULL) +- { +- delete sessionp; +- } +- throw newException; ++ if (newSession != nullptr) ++ { ++ delete newSession; ++ } ++ else ++ { ++ if (sessionp != NULL) ++ { ++ delete sessionp; ++ } ++ } + } + } + +- return newSession; ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ ++ return newSession; + } + + + // +- // createSession() ++ // CreateSession() + // +- Session ^ Connection::createSession() ++ Session ^ Connection::CreateSession() + { +- return createSession(""); ++ return CreateSession(""); + } + + +- Session ^ Connection::createSession(System::String ^ name) ++ Session ^ Connection::CreateSession(System::String ^ name) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Session * sessionp = NULL; +@@ -205,33 +207,35 @@ namespace messaging { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Connection::createSession unknown error"); +- } + finally + { + // Clean up and throw on caught exceptions + if (newException != nullptr) + { +- if (sessionp != NULL) +- { +- delete sessionp; +- } +- throw newException; ++ if (newSession != nullptr) ++ { ++ delete newSession; ++ } ++ else ++ { ++ if (sessionp != NULL) ++ { ++ delete sessionp; ++ } ++ } + } + } + ++ if (nullptr != newException) ++ { ++ throw newException; ++ } ++ + return newSession; + } + + +- Session ^ Connection::getSession(System::String ^ name) ++ Session ^ Connection::GetSession(System::String ^ name) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Session * sess = NULL; +@@ -250,28 +254,30 @@ namespace messaging { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Connection::getSession unknown error"); +- } + finally + { + // Clean up and throw on caught exceptions + if (newException != nullptr) + { +- if (sess != NULL) +- { +- delete sess; +- } +- throw newException; ++ if (newSession != nullptr) ++ { ++ delete newSession; ++ } ++ else ++ { ++ if (sess != NULL) ++ { ++ delete sess; ++ } ++ } + } + } + ++ if (nullptr != newException) ++ { ++ throw newException; ++ } ++ + return newSession; + } + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +index 894a96d..e93e078 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +@@ -28,10 +28,10 @@ + #include "qpid/messaging/Connection.h" + #include "qpid/messaging/Session.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Connection is a managed wrapper for a qpid::messaging::Connection +@@ -59,20 +59,20 @@ namespace messaging { + ~Connection(); + !Connection(); + +- void setOption(System::String ^ name, System::Object ^ value); ++ void SetOption(System::String ^ name, System::Object ^ value); + +- void open(); +- System::Boolean isOpen(); +- void close(); ++ void Open(); ++ System::Boolean IsOpen(); ++ void Close(); + +- // createTransactionalSession() +- Session ^ createTransactionalSession(); +- Session ^ createTransactionalSession(System::String ^ name); ++ // CreateTransactionalSession() ++ Session ^ CreateTransactionalSession(); ++ Session ^ CreateTransactionalSession(System::String ^ name); + +- // createSession() +- Session ^ createSession(); +- Session ^ createSession(System::String ^ name); ++ // CreateSession() ++ Session ^ CreateSession(); ++ Session ^ CreateSession(System::String ^ name); + +- Session ^ getSession(System::String ^ name); ++ Session ^ GetSession(System::String ^ name); + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Duration.h b/qpid/cpp/bindings/qpid/dotnet/src/Duration.h +index b7d2bf1..8bbfa56 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Duration.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Duration.h +@@ -25,17 +25,17 @@ + #include + #include + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Duration is a time interval in milliseconds. + /// It is a managed equivalent of ::qpid::messaging::Duration + /// + +- public ref class Duration ++ public ref class Duration sealed + { + private: + System::UInt64 milliseconds; +@@ -69,10 +69,25 @@ namespace messaging { + Duration ^ result = gcnew Duration(multiplier * dur->Milliseconds); + return result; + } +- }; + +- public ref class DurationConstants ++ static Duration ^ Multiply (Duration ^ dur, const System::UInt64 multiplier) ++ { ++ Duration ^ result = gcnew Duration(dur->Milliseconds * multiplier); ++ return result; ++ } ++ ++ static Duration ^ Multiply (const System::UInt64 multiplier, Duration ^ dur) ++ { ++ Duration ^ result = gcnew Duration(multiplier * dur->Milliseconds); ++ return result; ++ } ++ }; ++ ++ public ref class DurationConstants sealed + { ++ private: ++ DurationConstants::DurationConstants() {} ++ + public: + static Duration ^ FORVER; + static Duration ^ IMMEDIATE; +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index 193a2eb..3f748f1 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -36,10 +36,10 @@ + #include "QpidException.h" + #include "TypeTranslator.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Message is a managed wrapper for a ::qpid::messaging::Message +@@ -52,19 +52,16 @@ namespace messaging { + } + + // Create from string +- Message::Message(System::String ^ string) : +- messagep(new ::qpid::messaging::Message(QpidMarshal::ToNative(string))) ++ Message::Message(System::String ^ theStr) : ++ messagep(new ::qpid::messaging::Message(QpidMarshal::ToNative(theStr))) + { + } + + // Create from object +- Message::Message(System::Object ^ objp) : ++ Message::Message(System::Object ^ theValue) : + messagep(new ::qpid::messaging::Message(QpidMarshal::ToNative(""))) + { +- ::qpid::types::Variant * variantp = 0; +- std::string * variantsp = 0; +- +- if (QpidTypeCheck::ObjectIsMap(objp)) ++ if (QpidTypeCheck::ObjectIsMap(theValue)) + { + // Create a mapped message using given dictionary + +@@ -72,7 +69,7 @@ namespace messaging { + ::qpid::types::Variant::Map newMap; + + // Add the map variables to the map +- TypeTranslator::ManagedToNative(newMap, (QpidMap ^)objp); ++ TypeTranslator::ManagedToNative((QpidMap ^)theValue, newMap); + + // Set message content type + messagep->setContentType("ampq/map"); +@@ -80,7 +77,7 @@ namespace messaging { + // Insert the map into the message + ::qpid::messaging::encode(newMap, *messagep, QpidMarshal::ToNative("amqp/map")); + } +- else if (QpidTypeCheck::ObjectIsList(objp)) ++ else if (QpidTypeCheck::ObjectIsList(theValue)) + { + // Create a list message using given list + +@@ -88,7 +85,7 @@ namespace messaging { + ::qpid::types::Variant::List newList; + + // Add the list variables to the list +- TypeTranslator::ManagedToNative(newList, (QpidList ^)objp); ++ TypeTranslator::ManagedToNative((QpidList ^)theValue, newList); + + // Set message content type + messagep->setContentType("ampq/list"); +@@ -99,7 +96,7 @@ namespace messaging { + else + { + // Create a binary string message +- messagep->setContent(QpidMarshal::ToNative(objp->ToString())); ++ messagep->setContent(QpidMarshal::ToNative(theValue->ToString())); + } + } + +@@ -145,12 +142,12 @@ namespace messaging { + // + // ReplyTo + // +- void Message::setReplyTo(Address ^ address) ++ void Message::SetReplyTo(Address ^ address) + { +- messagep->setReplyTo(*(address->addressp)); ++ messagep->setReplyTo(*(address->NativeAddress)); + } + +- Address ^ Message::getReplyTo() ++ Address ^ Message::GetReplyTo() + { + const ::qpid::messaging::Address & addrp = + messagep->::qpid::messaging::Message::getReplyTo(); +@@ -162,12 +159,12 @@ namespace messaging { + // + // Subject + // +- void Message::setSubject(System::String ^ subject) ++ void Message::SetSubject(System::String ^ subject) + { + messagep->setSubject(QpidMarshal::ToNative(subject)); + } + +- System::String ^ Message::getSubject() ++ System::String ^ Message::GetSubject() + { + return gcnew String(messagep->getSubject().c_str()); + } +@@ -176,26 +173,26 @@ namespace messaging { + // + // ContentType + // +- void Message::setContentType(System::String ^ ct) ++ void Message::SetContentType(System::String ^ ct) + { + messagep->setContentType(QpidMarshal::ToNative(ct)); + } + +- System::String ^ Message::getContentType() ++ System::String ^ Message::GetContentType() + { +- return gcnew String(messagep->getContentType().c_str()); ++ return gcnew String(messagep->::qpid::messaging::Message::getContentType().c_str()); + } + + + // + // MessageId + // +- void Message::setMessageId(System::String ^ mId) ++ void Message::SetMessageId(System::String ^ messageId) + { +- messagep->setMessageId(QpidMarshal::ToNative(mId)); ++ messagep->setMessageId(QpidMarshal::ToNative(messageId)); + } + +- System::String ^ Message::getMessageId() ++ System::String ^ Message::GetMessageId() + { + return gcnew String(messagep->getMessageId().c_str()); + } +@@ -204,12 +201,12 @@ namespace messaging { + // + // UserId + // +- void Message::setUserId(System::String ^ uId) ++ void Message::SetUserId(System::String ^ uId) + { + messagep->setUserId(QpidMarshal::ToNative(uId)); + } + +- System::String ^ Message::getUserId() ++ System::String ^ Message::GetUserId() + { + return gcnew String(messagep->getUserId().c_str()); + } +@@ -218,12 +215,12 @@ namespace messaging { + // + // CorrelationId + // +- void Message::setCorrelationId(System::String ^ cId) ++ void Message::SetCorrelationId(System::String ^ correlationId) + { +- messagep->setCorrelationId(QpidMarshal::ToNative(cId)); ++ messagep->setCorrelationId(QpidMarshal::ToNative(correlationId)); + } + +- System::String ^ Message::getCorrelationId() ++ System::String ^ Message::GetCorrelationId() + { + return gcnew String(messagep->getCorrelationId().c_str()); + } +@@ -232,12 +229,12 @@ namespace messaging { + // + // Priority + // +- void Message::setPriority(unsigned char priority) ++ void Message::SetPriority(unsigned char priority) + { + messagep->setPriority(priority); + } + +- unsigned char Message::getPriority() ++ unsigned char Message::GetPriority() + { + return messagep->getPriority(); + } +@@ -246,44 +243,44 @@ namespace messaging { + // + // Ttl + // +- void Message::setTtl(Duration ^ ttl) ++ void Message::SetTtl(Duration ^ ttl) + { + ::qpid::messaging::Duration dur(ttl->Milliseconds); + + messagep->setTtl(dur); + } + +- Duration ^ Message::getTtl() ++ Duration ^ Message::GetTtl() + { + Duration ^ dur = gcnew Duration(messagep->getTtl().getMilliseconds()); + + return dur; + } + +- void Message::setDurable(bool durable) ++ void Message::SetDurable(bool durable) + { + messagep->setDurable(durable); + } + +- bool Message::getDurable() ++ bool Message::GetDurable() + { + return messagep->getDurable(); + } + + +- bool Message::getRedelivered() ++ bool Message::GetRedelivered() + { + return messagep->getRedelivered(); + } + +- void Message::setRedelivered(bool redelivered) ++ void Message::SetRedelivered(bool redelivered) + { + messagep->setRedelivered(redelivered); + } + + + System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^ Message::getProperties() ++ System::String^, System::Object^> ^ Message::GetProperties() + { + ::qpid::types::Variant::Map map; + +@@ -294,19 +291,19 @@ namespace messaging { + gcnew System::Collections::Generic::Dictionary< + System::String^, System::Object^> ; + +- TypeTranslator::NativeToManaged(dict, map); ++ TypeTranslator::NativeToManaged(map, dict); + + return dict; + } + + +- void Message::setContent(System::String ^ content) ++ void Message::SetContent(System::String ^ content) + { + messagep->setContent(QpidMarshal::ToNative(content)); + } + + +- System::String ^ Message::getContent() ++ System::String ^ Message::GetContent() + { + return gcnew String(messagep->getContent().c_str()); + } +@@ -315,7 +312,7 @@ namespace messaging { + // + // User wants to extract a Dictionary from the message + // +- void Message::getContent(System::Collections::Generic::Dictionary< ++ void Message::GetContent(System::Collections::Generic::Dictionary< + System::String^, + System::Object^> ^ dict) + { +@@ -324,14 +321,14 @@ namespace messaging { + + ::qpid::messaging::decode(*messagep, map, QpidMarshal::ToNative("amqp/map")); + +- TypeTranslator::NativeToManaged(dict, map); ++ TypeTranslator::NativeToManaged(map, dict); + } + + + // + // User wants to extract a list from the message + // +- void Message::getContent(System::Collections::Generic::List< ++ void Message::GetContent(System::Collections::ObjectModel::Collection< + System::Object^> ^ list) + { + // allocate a native messaging::List +@@ -341,22 +338,22 @@ namespace messaging { + ::qpid::messaging::decode(*messagep, nativeList, QpidMarshal::ToNative("amqp/list")); + + // translate native list into user's managed list +- TypeTranslator::NativeToManaged(list, nativeList); ++ TypeTranslator::NativeToManaged(nativeList, list); + } + + // + // User wants content as bytes. + // result array must be correct size already + // +- void Message::getRaw(array ^ arr) ++ void Message::GetRaw(array ^ arr) + { + System::UInt32 size = messagep->getContentSize(); + + if (0 == size) +- throw gcnew QpidException("Message::getRaw - message size is zero"); ++ throw gcnew QpidException("Message::GetRaw - message size is zero"); + + if (arr->Length != size) +- throw gcnew QpidException("Message::getRaw - receive buffer is too small"); ++ throw gcnew QpidException("Message::GetRaw - receive buffer is too small"); + + const char * ptr = messagep->getContentPtr(); + +@@ -369,7 +366,7 @@ namespace messaging { + } + + +- System::UInt64 Message::getContentSize() ++ System::UInt64 Message::GetContentSize() + { + return messagep->getContentSize(); + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.h b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +index ab06588..0a932a9 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +@@ -26,10 +26,10 @@ + + #include "qpid/messaging/Message.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + ref class Address; + ref class Duration; +@@ -45,15 +45,18 @@ namespace messaging { + // Kept object deletion code + void Cleanup(); + ++ // The kept object in the Messaging C++ DLL ++ ::qpid::messaging::Message * messagep; ++ + public: + // Create empty message + Message(); + + // Create from String +- Message(System::String ^ string); ++ Message(System::String ^ theStr); + + // Create from object +- Message(System::Object ^ obj); ++ Message(System::Object ^ theValue); + + // TODO: Create from bytes + // Message(System::Byte [] ^ bytes); +@@ -67,62 +70,64 @@ namespace messaging { + // Copy constructor + Message(const Message % rhs); + +- // The kept object in the Messaging C++ DLL +- ::qpid::messaging::Message * messagep; ++ property ::qpid::messaging::Message * NativeMessage ++ { ++ ::qpid::messaging::Message * get () { return messagep; } ++ } + +- void setReplyTo(Address ^ address); +- Address ^ getReplyTo(); ++ void SetReplyTo(Address ^ address); ++ Address ^ GetReplyTo(); + +- void setSubject(System::String ^ subject); +- System::String ^ getSubject(); ++ void SetSubject(System::String ^ subject); ++ System::String ^ GetSubject(); + +- void setContentType(System::String ^ ct); +- System::String ^ getContentType(); ++ void SetContentType(System::String ^ ct); ++ System::String ^ GetContentType(); + +- void setMessageId(System::String ^ mId); +- System::String ^ getMessageId(); ++ void SetMessageId(System::String ^ messageId); ++ System::String ^ GetMessageId(); + +- void setUserId(System::String ^ uId); +- System::String ^ getUserId(); ++ void SetUserId(System::String ^ uId); ++ System::String ^ GetUserId(); + +- void setCorrelationId(System::String ^ cId); +- System::String ^ getCorrelationId(); ++ void SetCorrelationId(System::String ^ correlationId); ++ System::String ^ GetCorrelationId(); + +- void setPriority(unsigned char priority); +- unsigned char getPriority(); ++ void SetPriority(unsigned char priority); ++ unsigned char GetPriority(); + +- void setTtl(Duration ^ ttl); +- Duration ^ getTtl(); ++ void SetTtl(Duration ^ ttl); ++ Duration ^ GetTtl(); + +- void setDurable(bool durable); +- bool getDurable(); ++ void SetDurable(bool durable); ++ bool GetDurable(); + +- bool getRedelivered(); +- void setRedelivered(bool redelivered); ++ bool GetRedelivered(); ++ void SetRedelivered(bool redelivered); + + System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^ getProperties(); ++ System::String^, System::Object^> ^ GetProperties(); + +- void setContent(System::String ^ content); ++ void SetContent(System::String ^ content); + + //TODO:: void setContent(Bytes{} bytes, offset, length); + + // get content as string +- System::String ^ getContent(); ++ System::String ^ GetContent(); + + // get content as dictionary +- void getContent(System::Collections::Generic::Dictionary< ++ void GetContent(System::Collections::Generic::Dictionary< + System::String^, + System::Object^> ^ dict); + + // get content as map +- void getContent(System::Collections::Generic::List< ++ void GetContent(System::Collections::ObjectModel::Collection< + System::Object^> ^); + + // get content as bytes +- void getRaw(cli::array ^ arr); ++ void GetRaw(cli::array ^ arr); + +- System::UInt64 getContentSize(); ++ System::UInt64 GetContentSize(); + + //TODO: EncodingException + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/QpidException.h b/qpid/cpp/bindings/qpid/dotnet/src/QpidException.h +index eecc545..c63f245 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/QpidException.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/QpidException.h +@@ -19,19 +19,23 @@ + + #pragma once + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + using namespace System; + ++[Serializable] + public ref class QpidException : System::Exception + { + public: + +- QpidException() : System::Exception() {} +- QpidException(String^ estring) : System::Exception(estring) {} ++ QpidException() ++ : System::Exception() {} ++ ++ QpidException(String^ estring) ++ : System::Exception(estring) {} + + }; + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/QpidMarshal.h b/qpid/cpp/bindings/qpid/dotnet/src/QpidMarshal.h +index 7b52346..a8266ba 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/QpidMarshal.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/QpidMarshal.h +@@ -22,10 +22,10 @@ + using namespace System; + using namespace System::Text; + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + + +@@ -33,6 +33,9 @@ namespace messaging { + + private ref class QpidMarshal + { ++private: ++ QpidMarshal::QpidMarshal() {} ++ + public: + + /// +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h b/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h +index 2e87c3e..47f391f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h +@@ -24,10 +24,10 @@ + #include + #include + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// QpidTypeCheck determines if a given managed object represents +@@ -35,7 +35,7 @@ namespace messaging { + /// + // The supported mapping is: + /// * a managed Dictionary and a Qpid Messaging Map +- /// * a managed List and a Qpid Messaging List ++ /// * a managed Collection and a Qpid Messaging List + /// + + typedef System::Collections::Generic::Dictionary< +@@ -43,33 +43,38 @@ namespace messaging { + System::Object^> + QpidMap; + +- typedef System::Collections::Generic::List< ++ typedef System::Collections::ObjectModel::Collection< + System::Object^> + QpidList; + +- private ref class QpidTypeCheckConstants ++ private ref class QpidTypeCheckConstants sealed + { ++ private: ++ QpidTypeCheckConstants::QpidTypeCheckConstants() {} ++ + public: + static System::Type const ^ const mapTypeP = System::Type::GetType( + "System.Collections.Generic.Dictionary`2[System.String,System.Object]"); + static System::Type const ^ const listTypeP = System::Type::GetType( +- "System.Collections.Generic.List`1[System.Object]"); ++ "System.Collections.ObjectModel.Collection`1[System.Object]"); + }; + + +- public ref class QpidTypeCheck ++ public ref class QpidTypeCheck sealed + { ++ private: ++ QpidTypeCheck::QpidTypeCheck() {} + + public: + +- static bool ObjectIsMap (System::Object ^ object) ++ static bool ObjectIsMap (System::Object ^ theValue) + { +- return (*object).GetType() == QpidTypeCheckConstants::mapTypeP; ++ return (*theValue).GetType() == QpidTypeCheckConstants::mapTypeP; + } + +- static bool ObjectIsList(System::Object ^ object) ++ static bool ObjectIsList(System::Object ^ theValue) + { +- return (*object).GetType() == QpidTypeCheckConstants::listTypeP; ++ return (*theValue).GetType() == QpidTypeCheckConstants::listTypeP; + } + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/ReadMe.txt b/qpid/cpp/bindings/qpid/dotnet/src/ReadMe.txt +index a75e35b..a17f043 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/ReadMe.txt ++++ b/qpid/cpp/bindings/qpid/dotnet/src/ReadMe.txt +@@ -1,13 +1,13 @@ + ======================================================================== +- DYNAMIC LINK LIBRARY : org.apache.qpid.messaging Project Overview ++ DYNAMIC LINK LIBRARY : Org.Apache.Qpid.Messaging Project Overview + ======================================================================== + +-AppWizard has created this org.apache.qpid.messaging DLL for you. ++AppWizard has created this Org.Apache.Qpid.Messaging DLL for you. + + This file contains a summary of what you will find in each of the files that +-make up your org.apache.qpid.messaging application. ++make up your Org.Apache.Qpid.Messaging application. + +-org.apache.qpid.messaging.vcproj ++Org.Apache.Qpid.Messaging.vcproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +index d647315..15f8572 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +@@ -34,10 +34,10 @@ + #include "Duration.h" + #include "QpidException.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Receiver is a managed wrapper for a ::qpid::messaging::Receiver +@@ -85,30 +85,30 @@ namespace messaging { + } + + // +- // get(message) ++ // Get(message) + // +- bool Receiver::get(Message ^ mmsgp) ++ bool Receiver::Get(Message ^ mmsgp) + { +- return get(mmsgp, DurationConstants::FORVER); ++ return Get(mmsgp, DurationConstants::FORVER); + } + +- bool Receiver::get(Message ^ mmsgp, Duration ^ durationp) ++ bool Receiver::Get(Message ^ mmsgp, Duration ^ durationp) + { + ::qpid::messaging::Duration dur((*durationp).Milliseconds); + +- return receiverp->Receiver::get(*(mmsgp->messagep), dur); ++ return receiverp->Receiver::get(*(mmsgp->NativeMessage), dur); + } + + // +- // message = get() ++ // message = Get() + // +- Message ^ Receiver::get() ++ Message ^ Receiver::Get() + { +- return get(DurationConstants::FORVER); ++ return Get(DurationConstants::FORVER); + } + + +- Message ^ Receiver::get(Duration ^ durationp) ++ Message ^ Receiver::Get(Duration ^ durationp) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Message * msgp = NULL; +@@ -133,58 +133,54 @@ namespace messaging { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Receiver:get unknown error"); +- } + finally + { +- // Clean up and throw on caught exceptions + if (newException != nullptr) + { + if (msgp != NULL) + { + delete msgp; + } +- +- throw newException; ++ if (newMessage != nullptr) ++ { ++ delete newMessage; ++ } + } + } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + + return newMessage; + } + + // +- // fetch(message) ++ // Fetch(message) + // +- bool Receiver::fetch(Message ^ mmsgp) ++ bool Receiver::Fetch(Message ^ mmsgp) + { +- return fetch(mmsgp, DurationConstants::FORVER); ++ return Fetch(mmsgp, DurationConstants::FORVER); + } + +- bool Receiver::fetch(Message ^ mmsgp, Duration ^ durationp) ++ bool Receiver::Fetch(Message ^ mmsgp, Duration ^ durationp) + { + ::qpid::messaging::Duration dur((*durationp).Milliseconds); + +- return receiverp->::qpid::messaging::Receiver::fetch(*((*mmsgp).messagep), dur); ++ return receiverp->::qpid::messaging::Receiver::fetch(*((*mmsgp).NativeMessage), dur); + } + + + // +- // message = fetch() ++ // message = Fetch() + // + +- Message ^ Receiver::fetch() ++ Message ^ Receiver::Fetch() + { +- return fetch(DurationConstants::FORVER); ++ return Fetch(DurationConstants::FORVER); + } + +- Message ^ Receiver::fetch(Duration ^ durationp) ++ Message ^ Receiver::Fetch(Duration ^ durationp) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Message * msgp = NULL; +@@ -209,64 +205,59 @@ namespace messaging { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Receiver:fetch unknown error"); +- +- } + finally + { +- // Clean up and throw on caught exceptions + if (newException != nullptr) + { + if (msgp != NULL) + { + delete msgp; + } +- +- throw newException; ++ if (newMessage != nullptr) ++ { ++ delete newMessage; ++ } + } + } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + + return newMessage; + } + +- void Receiver::setCapacity(System::UInt32 capacity) ++ void Receiver::SetCapacity(System::UInt32 capacity) + { + receiverp->setCapacity(capacity); + } + +- System::UInt32 Receiver::getCapacity() ++ System::UInt32 Receiver::GetCapacity() + { + return receiverp->getCapacity(); + } + +- System::UInt32 Receiver::getAvailable() ++ System::UInt32 Receiver::GetAvailable() + { + return receiverp->getAvailable(); + } + +- System::UInt32 Receiver::getUnsettled() ++ System::UInt32 Receiver::GetUnsettled() + { + return receiverp->getUnsettled(); + } + +- void Receiver::close() ++ void Receiver::Close() + { + receiverp->close(); + } + +- System::String ^ Receiver::getName() ++ System::String ^ Receiver::GetName() + { + return gcnew System::String(receiverp->getName().c_str()); + } + +- Session ^ Receiver::getSession() ++ Session ^ Receiver::GetSession() + { + return parentSession; + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +index 26d0402..0dc2f61 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +@@ -35,10 +35,10 @@ namespace messaging { + class ReceiverImpl {}; + }} + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Mreceiver is a managed wrapper for a ::qpid::messaging::Receiver +@@ -57,38 +57,43 @@ namespace messaging { + // Kept object deletion code + void Cleanup(); + +- public: + // The kept object in the Messaging C++ DLL + ::qpid::messaging::Receiver * receiverp; + ++ public: + Receiver(::qpid::messaging::Receiver * r, + Session ^ sessRef); + ~Receiver(); + !Receiver(); + Receiver(const Receiver ^ rhs); + +- // get(message) +- bool get(Message ^ mmsgp); +- bool get(Message ^ mmsgp, Duration ^ durationp); +- +- // message = get() +- Message ^ get(); +- Message ^ get(Duration ^ durationp); +- +- // fetch(message) +- bool fetch(Message ^ mmsgp); +- bool fetch(Message ^ mmsgp, Duration ^ duration); +- +- // message = fetch() +- Message ^ fetch(); +- Message ^ fetch(Duration ^ durationp); +- +- void setCapacity(System::UInt32 capacity); +- System::UInt32 getCapacity(); +- System::UInt32 getAvailable(); +- System::UInt32 getUnsettled(); +- void close(); +- System::String ^ getName(); +- Session ^ getSession(); ++ property ::qpid::messaging::Receiver * NativeReceiver ++ { ++ ::qpid::messaging::Receiver * get () { return receiverp; } ++ } ++ ++ // Get(message) ++ bool Get(Message ^ mmsgp); ++ bool Get(Message ^ mmsgp, Duration ^ durationp); ++ ++ // message = Get() ++ Message ^ Get(); ++ Message ^ Get(Duration ^ durationp); ++ ++ // Fetch(message) ++ bool Fetch(Message ^ mmsgp); ++ bool Fetch(Message ^ mmsgp, Duration ^ duration); ++ ++ // message = Fetch() ++ Message ^ Fetch(); ++ Message ^ Fetch(Duration ^ durationp); ++ ++ void SetCapacity(System::UInt32 capacity); ++ System::UInt32 GetCapacity(); ++ System::UInt32 GetAvailable(); ++ System::UInt32 GetUnsettled(); ++ void Close(); ++ System::String ^ GetName(); ++ Session ^ GetSession(); + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +index 1708359..e0911b3 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +@@ -30,10 +30,10 @@ + #include "Sender.h" + #include "Message.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Sender a managed wrapper for a ::qpid::messaging::Sender +@@ -79,25 +79,25 @@ namespace messaging { + } + + // +- // send(msg) ++ // Send(msg) + // +- void Sender::send(Message ^ mmsgp) ++ void Sender::Send(Message ^ mmsgp) + { +- send(mmsgp, false); ++ Send(mmsgp, false); + } + +- void Sender::send(Message ^ mmsgp, bool sync) ++ void Sender::Send(Message ^ mmsgp, bool sync) + { +- senderp->::qpid::messaging::Sender::send(*((*mmsgp).messagep), sync); ++ senderp->::qpid::messaging::Sender::send(*((*mmsgp).NativeMessage), sync); + } + + +- void Sender::close() ++ void Sender::Close() + { + senderp->close(); + } + +- Session ^ Sender::getSession() ++ Session ^ Sender::GetSession() + { + return parentSession; + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +index 17f7e82..705c7d5 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +@@ -34,10 +34,10 @@ namespace messaging { + class SenderImpl {}; + }} + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Sender is a managed wrapper for a ::qpid::messaging::Sender +@@ -65,11 +65,11 @@ namespace messaging { + !Sender(); + Sender(const Sender % rhs); + +- // send(message) +- void send(Message ^ mmsgp); +- void send(Message ^ mmsgp, bool sync); ++ // Send(message) ++ void Send(Message ^ mmsgp); ++ void Send(Message ^ mmsgp, bool sync); + +- void close(); ++ void Close(); + + property System::UInt32 Capacity + { +@@ -95,6 +95,6 @@ namespace messaging { + } + } + +- Session ^ getSession(); ++ Session ^ GetSession(); + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index c070f10..c8d85b0 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -35,10 +35,10 @@ + #include "Message.h" + #include "QpidException.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Session is a managed wrapper for a ::qpid::messaging::Session +@@ -84,110 +84,93 @@ namespace messaging { + } + } + +- void Session::close() ++ void Session::Close() + { + sessionp->close(); + } + +- void Session::commit() ++ void Session::Commit() + { + sessionp->commit(); + } + +- void Session::rollback() ++ void Session::Rollback() + { + sessionp->rollback(); + } + +- void Session::acknowledge() ++ void Session::Acknowledge() + { +- acknowledge(false); ++ Acknowledge(false); + } + +- void Session::acknowledge(bool sync) ++ void Session::Acknowledge(bool sync) + { + sessionp->acknowledge(sync); + } + +- void Session::reject(Message ^ message) ++ void Session::Reject(Message ^ message) + { +- sessionp->::qpid::messaging::Session::reject(*(message->messagep)); ++ sessionp->::qpid::messaging::Session::reject(*(message->NativeMessage)); + } + +- void Session::release(Message ^ message) ++ void Session::Release(Message ^ message) + { +- sessionp->::qpid::messaging::Session::release(*(message->messagep)); ++ sessionp->::qpid::messaging::Session::release(*(message->NativeMessage)); + } + +- void Session::sync() ++ void Session::Sync() + { +- sync(true); ++ Sync(true); + } + +- void Session::sync(bool block) ++ void Session::Sync(bool block) + { + sessionp->sync(block); + } + + // next(receiver) +- bool Session::nextReceiver(Receiver ^ rcvr) ++ bool Session::NextReceiver(Receiver ^ rcvr) + { +- return nextReceiver(rcvr, DurationConstants::FORVER); ++ return NextReceiver(rcvr, DurationConstants::FORVER); + } + +- bool Session::nextReceiver(Receiver ^ rcvr, Duration ^ timeout) ++ bool Session::NextReceiver(Receiver ^ rcvr, Duration ^ timeout) + { + System::Exception ^ newException = nullptr; + +- try +- { ++ try ++ { ++ // create a duration object + ::qpid::messaging::Duration dur(timeout->Milliseconds); + +- return sessionp->nextReceiver(*(rcvr->receiverp), dur); ++ // wait for the next received message ++ return sessionp->nextReceiver(*(rcvr->NativeReceiver), dur); + } + catch (const ::qpid::types::Exception & error) +- { ++ { + String ^ errmsg = gcnew String(error.what()); +- if (errmsg = "No message to fetch") +- { +- // on timeout return null ++ if ("No message to fetch" == errmsg){ + return false; + } + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Session::nextReceiver unknown error"); + +- } +- finally +- { +- // Clean up and throw on caught exceptions +- if (newException != nullptr) +- { +- if (sessionp != NULL) +- { +- delete sessionp; +- } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + +- throw newException; +- } +- } + return true; + } + + // receiver = next() +- Receiver ^ Session::nextReceiver() ++ Receiver ^ Session::NextReceiver() + { +- return nextReceiver(DurationConstants::FORVER); ++ return NextReceiver(DurationConstants::FORVER); + } + +- Receiver ^ Session::nextReceiver(Duration ^ timeout) ++ Receiver ^ Session::NextReceiver(Duration ^ timeout) + { + System::Exception ^ newException = nullptr; + +@@ -205,41 +188,23 @@ namespace messaging { + catch (const ::qpid::types::Exception & error) + { + String ^ errmsg = gcnew String(error.what()); +- if (errmsg = "No message to fetch") ++ if ("No message to fetch" == errmsg) + { +- // on timeout return null + return nullptr; + } + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Session::nextReceiver unknown error"); + +- } +- finally +- { +- // Clean up and throw on caught exceptions +- if (newException != nullptr) +- { +- if (sessionp != NULL) +- { +- delete sessionp; +- } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + +- throw newException; +- } +- } +- return nullptr; ++ return nullptr; + } + + +- Sender ^ Session::createSender (System::String ^ address) ++ Sender ^ Session::CreateSender (System::String ^ address) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Sender * senderp = NULL; +@@ -261,41 +226,39 @@ namespace messaging { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Session::createSender unknown error"); +- +- } + finally + { +- // Clean up and throw on caught exceptions + if (newException != nullptr) + { +- if (senderp != NULL) +- { +- delete senderp; +- } +- +- throw newException; ++ if (newSender != nullptr) ++ { ++ delete newSender; ++ } ++ else ++ { ++ if (senderp != NULL) ++ { ++ delete senderp; ++ } ++ } + } + } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + + return newSender; + } + +- Receiver ^ Session::createReceiver(System::String ^ address) ++ Receiver ^ Session::CreateReceiver(System::String ^ address) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Receiver * receiverp = NULL; + Receiver ^ newReceiver = nullptr; + +- try +- { ++ try ++ { + // allocate a native receiver + receiverp = new ::qpid::messaging::Receiver; + +@@ -306,39 +269,37 @@ namespace messaging { + newReceiver = gcnew Receiver(receiverp, this); + } + catch (const ::qpid::types::Exception & error) +- { ++ { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Session::createReceiver unknown error"); +- +- } +- finally +- { +- // Clean up and throw on caught exceptions ++ finally ++ { + if (newException != nullptr) +- { +- if (sessionp != NULL) +- { +- delete sessionp; +- } +- +- throw newException; ++ { ++ if (newReceiver != nullptr) ++ { ++ delete newReceiver; ++ } ++ else ++ { ++ if (receiverp != NULL) ++ { ++ delete receiverp; ++ } ++ } + } + } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + + return newReceiver; + } + + +- Receiver ^ Session::createReceiver() ++ Receiver ^ Session::CreateReceiver() + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Receiver * receiverp = NULL; +@@ -357,35 +318,33 @@ namespace messaging { + String ^ errmsg = gcnew String(error.what()); + newException = gcnew QpidException(errmsg); + } +- catch (const std::exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- catch ( ... ) +- { +- newException = gcnew QpidException("Session::createReceiver unknown error"); +- +- } +- finally +- { +- // Clean up and throw on caught exceptions ++ finally ++ { + if (newException != nullptr) +- { +- if (sessionp != NULL) +- { +- delete sessionp; +- } +- +- throw newException; ++ { ++ if (newReceiver != nullptr) ++ { ++ delete newReceiver; ++ } ++ else ++ { ++ if (receiverp != NULL) ++ { ++ delete receiverp; ++ } ++ } + } + } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + + return newReceiver; + } + + +- Sender ^ Session::getSender(System::String ^ name) ++ Sender ^ Session::GetSender(System::String ^ name) + { + ::qpid::messaging::Sender * sender = new ::qpid::messaging::Sender; + +@@ -398,7 +357,7 @@ namespace messaging { + + + +- Receiver ^ Session::getReceiver(System::String ^ name) ++ Receiver ^ Session::GetReceiver(System::String ^ name) + { + ::qpid::messaging::Receiver * receiver = new ::qpid::messaging::Receiver; + +@@ -411,12 +370,12 @@ namespace messaging { + + + +- Connection ^ Session::getConnection() ++ Connection ^ Session::GetConnection() + { + return parentConnectionp; + } + +- void Session::checkError() ++ void Session::CheckError() + { + sessionp->checkError(); + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index 3212f05..babb99d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -36,10 +36,10 @@ namespace messaging { + class SessionImpl {}; + }} + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Session is a managed wrapper for a ::qpid::messaging::Session +@@ -70,15 +70,15 @@ namespace messaging { + !Session(); + Session(const Session % rhs); + +- void close(); +- void commit(); +- void rollback(); +- void acknowledge(); +- void acknowledge(bool sync); +- void reject(Message ^); +- void release(Message ^); +- void sync(); +- void sync(bool block); ++ void Close(); ++ void Commit(); ++ void Rollback(); ++ void Acknowledge(); ++ void Acknowledge(bool sync); ++ void Reject(Message ^); ++ void Release(Message ^); ++ void Sync(); ++ void Sync(bool block); + + property System::UInt32 Receivable + { +@@ -91,28 +91,28 @@ namespace messaging { + } + + // next(receiver) +- bool nextReceiver(Receiver ^); +- bool nextReceiver(Receiver ^, Duration ^ timeout); ++ bool NextReceiver(Receiver ^ rcvr); ++ bool NextReceiver(Receiver ^ rcvr, Duration ^ timeout); + + // receiver = next() +- Receiver ^ nextReceiver(); +- Receiver ^ nextReceiver(Duration ^ timeout); ++ Receiver ^ NextReceiver(); ++ Receiver ^ NextReceiver(Duration ^ timeout); + + +- Sender ^ createSender (System::String ^ address); +- Receiver ^ createReceiver(System::String ^ address); +- Receiver ^ createReceiver(); ++ Sender ^ CreateSender (System::String ^ address); ++ Receiver ^ CreateReceiver(System::String ^ address); ++ Receiver ^ CreateReceiver(); + +- Sender ^ getSender(System::String ^ name); +- Receiver ^ getReceiver(System::String ^ name); ++ Sender ^ GetSender(System::String ^ name); ++ Receiver ^ GetReceiver(System::String ^ name); + +- Connection ^ getConnection(); ++ Connection ^ GetConnection(); + + property System::Boolean HasError + { + System::Boolean get () { return sessionp->hasError(); } + } + +- void checkError(); ++ void CheckError(); + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp +index 3fbe1e2..d463e66 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp +@@ -29,10 +29,10 @@ + #include "QpidTypeCheck.h" + #include "QpidMarshal.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// Translate between managed and native types. +@@ -42,11 +42,12 @@ namespace messaging { + // The given object is a Dictionary. + // Add its elements to the qpid map. + // +- void TypeTranslator::ManagedToNative(::qpid::types::Variant::Map & theMapp, +- QpidMap ^ theObjp) ++ void TypeTranslator::ManagedToNative(QpidMap ^ theDictionary, ++ ::qpid::types::Variant::Map & qpidMap) + { + // iterate the items, converting each to a variant and adding to the map +- for each (System::Collections::Generic::KeyValuePair kvp in theObjp) ++ for each (System::Collections::Generic::KeyValuePair ++ kvp in theDictionary) + { + if (QpidTypeCheck::ObjectIsMap(kvp.Value)) + { +@@ -55,7 +56,7 @@ namespace messaging { + ::qpid::types::Variant::Map newMap; + + // Add the map variables to the map +- ManagedToNative(newMap, (QpidMap ^)kvp.Value); ++ ManagedToNative((QpidMap ^)kvp.Value, newMap); + + // Create a variant entry for the inner map + std::auto_ptr<::qpid::types::Variant> newVariantp(new ::qpid::types::Variant(newMap)); +@@ -64,7 +65,7 @@ namespace messaging { + std::string entryName = QpidMarshal::ToNative(kvp.Key); + + // Add inner map to outer map +- theMapp.insert(std::make_pair(entryName, *newVariantp)); ++ qpidMap.insert(std::make_pair(entryName, *newVariantp)); + } + else if (QpidTypeCheck::ObjectIsList(kvp.Value)) + { +@@ -73,7 +74,7 @@ namespace messaging { + ::qpid::types::Variant::List newList; + + // Add the List variables to the list +- ManagedToNative(newList, (QpidList ^)kvp.Value); ++ ManagedToNative((QpidList ^)kvp.Value, newList); + + // Create a variant entry for the inner map + ::qpid::types::Variant::List newVariant(newList); +@@ -84,7 +85,7 @@ namespace messaging { + std::string entryName = QpidMarshal::ToNative(kvp.Key); + + // Add inner list to outer map +- theMapp.insert(std::make_pair(entryName, newVariant)); ++ qpidMap.insert(std::make_pair(entryName, newVariant)); + } + else + { +@@ -92,7 +93,7 @@ namespace messaging { + ::qpid::types::Variant entryValue; + ManagedToNativeObject(kvp.Value, entryValue); + std::string entryName = QpidMarshal::ToNative(kvp.Key); +- theMapp.insert(std::make_pair(entryName, entryValue)); ++ qpidMap.insert(std::make_pair(entryName, entryValue)); + } + } + } +@@ -103,11 +104,11 @@ namespace messaging { + // The given object is a List. + // Add its elements to the qpid list. + // +- void TypeTranslator::ManagedToNative(::qpid::types::Variant::List & theListp, +- QpidList ^ theObjp) ++ void TypeTranslator::ManagedToNative(QpidList ^ theList, ++ ::qpid::types::Variant::List & qpidList) + { + // iterate the items, converting each to a variant and adding to the map +- for each (System::Object ^ listObj in theObjp) ++ for each (System::Object ^ listObj in theList) + { + if (QpidTypeCheck::ObjectIsMap(listObj)) + { +@@ -116,13 +117,13 @@ namespace messaging { + ::qpid::types::Variant::Map newMap; + + // Add the map variables to the map +- ManagedToNative(newMap, (QpidMap ^)listObj); ++ ManagedToNative((QpidMap ^)listObj, newMap); + + // Create a variant entry for the inner map + std::auto_ptr<::qpid::types::Variant> newVariantp(new ::qpid::types::Variant(newMap)); + + // Add inner map to outer list +- theListp.push_back(*newVariantp); ++ qpidList.push_back(*newVariantp); + } + else if (QpidTypeCheck::ObjectIsList(listObj)) + { +@@ -131,20 +132,20 @@ namespace messaging { + ::qpid::types::Variant::List newList; + + // Add the List variables to the list +- ManagedToNative(newList, (QpidList ^)listObj); ++ ManagedToNative((QpidList ^)listObj, newList); + + // Create a variant entry for the inner list + std::auto_ptr<::qpid::types::Variant> newVariantp(new ::qpid::types::Variant(newList)); + + // Add inner list to outer list +- theListp.push_back(*newVariantp); ++ qpidList.push_back(*newVariantp); + } + else + { + // Add a simple native type to list + ::qpid::types::Variant entryValue; + ManagedToNativeObject(listObj, entryValue); +- theListp.push_back(entryValue); ++ qpidList.push_back(entryValue); + } + } + } +@@ -155,57 +156,57 @@ namespace messaging { + // Returns a variant representing simple native type object. + // Not to be called for Map/List objects. + // +- void TypeTranslator::ManagedToNativeObject(System::Object ^ theObjp, +- ::qpid::types::Variant & targetp) ++ void TypeTranslator::ManagedToNativeObject(System::Object ^ managedValue, ++ ::qpid::types::Variant & qpidVariant) + { +- System::Type ^ typeP = (*theObjp).GetType(); ++ System::Type ^ typeP = (*managedValue).GetType(); + System::TypeCode typeCode = System::Type::GetTypeCode( typeP ); + + switch (typeCode) + { + case System::TypeCode::Boolean : +- targetp = System::Convert::ToBoolean(theObjp); ++ qpidVariant = System::Convert::ToBoolean(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::Byte : +- targetp = System::Convert::ToByte(theObjp); ++ qpidVariant = System::Convert::ToByte(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::UInt16 : +- targetp = System::Convert::ToUInt16(theObjp); ++ qpidVariant = System::Convert::ToUInt16(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::UInt32 : +- targetp = System::Convert::ToUInt32(theObjp); ++ qpidVariant = System::Convert::ToUInt32(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::UInt64 : +- targetp = System::Convert::ToUInt64(theObjp); ++ qpidVariant = System::Convert::ToUInt64(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::Char : + case System::TypeCode::SByte : +- targetp = System::Convert::ToSByte(theObjp); ++ qpidVariant = System::Convert::ToSByte(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::Int16 : +- targetp = System::Convert::ToInt16(theObjp); ++ qpidVariant = System::Convert::ToInt16(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::Int32 : +- targetp = System::Convert::ToInt32(theObjp); ++ qpidVariant = System::Convert::ToInt32(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::Int64 : +- targetp = System::Convert::ToInt64(theObjp); ++ qpidVariant = System::Convert::ToInt64(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::Single : +- targetp = System::Convert::ToSingle(theObjp); ++ qpidVariant = System::Convert::ToSingle(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::Double : +- targetp = System::Convert::ToDouble(theObjp); ++ qpidVariant = System::Convert::ToDouble(managedValue, System::Globalization::CultureInfo::InvariantCulture); + break; + + case System::TypeCode::String : +@@ -213,10 +214,10 @@ namespace messaging { + std::string rString; + System::String ^ rpString; + +- rpString = System::Convert::ToString(theObjp); ++ rpString = System::Convert::ToString(managedValue, System::Globalization::CultureInfo::InvariantCulture); + rString = QpidMarshal::ToNative(rpString); +- targetp = rString; +- targetp.setEncoding(QpidMarshal::ToNative("utf8")); ++ qpidVariant = rString; ++ qpidVariant.setEncoding(QpidMarshal::ToNative("utf8")); + } + break; + +@@ -232,11 +233,12 @@ namespace messaging { + // Given a user Dictionary and a qpid map, + // extract the qpid elements and put them into the dictionary. + // +- void TypeTranslator::NativeToManaged(QpidMap ^ dict, ::qpid::types::Variant::Map & map) ++ void TypeTranslator::NativeToManaged(::qpid::types::Variant::Map & qpidMap, ++ QpidMap ^ dict) + { + // For each object in the message map, + // create a .NET object and add it to the dictionary. +- for (::qpid::types::Variant::Map::const_iterator i = map.begin(); i != map.end(); ++i) { ++ for (::qpid::types::Variant::Map::const_iterator i = qpidMap.begin(); i != qpidMap.end(); ++i) { + // Get the name + System::String ^ elementName = gcnew String(i->first.c_str()); + +@@ -299,7 +301,7 @@ namespace messaging { + { + QpidMap ^ newDict = gcnew QpidMap(); + +- NativeToManaged(newDict, variant.asMap()); ++ NativeToManaged(variant.asMap(), newDict); + + dict[elementName] = newDict; + break; +@@ -309,7 +311,7 @@ namespace messaging { + { + QpidList ^ newList = gcnew QpidList(); + +- NativeToManaged(newList, variant.asList()); ++ NativeToManaged(variant.asList(), newList); + + dict[elementName] = newList; + break; +@@ -322,10 +324,10 @@ namespace messaging { + } + + +- void TypeTranslator::NativeToManaged(QpidList ^ vList, ::qpid::types::Variant::List & qpidList) ++ void TypeTranslator::NativeToManaged(::qpid::types::Variant::List & qpidList, QpidList ^ managedList) + { +- // For each object in the message map, +- // create a .NET object and add it to the dictionary. ++ // For each object in the qpidList ++ // create a .NET object and add it to the managed List. + for (::qpid::types::Variant::List::const_iterator i = qpidList.begin(); i != qpidList.end(); ++i) + { + ::qpid::types::Variant variant = *i; +@@ -334,62 +336,62 @@ namespace messaging { + switch (vType) + { + case ::qpid::types::VAR_BOOL: +- (*vList).Add(variant.asBool()); ++ (*managedList).Add(variant.asBool()); + break; + + case ::qpid::types::VAR_UINT8: +- (*vList).Add(variant.asUint8()); ++ (*managedList).Add(variant.asUint8()); + break; + + case ::qpid::types::VAR_UINT16: +- (*vList).Add(variant.asUint16()); ++ (*managedList).Add(variant.asUint16()); + break; + + case ::qpid::types::VAR_UINT32: +- (*vList).Add(variant.asUint32()); ++ (*managedList).Add(variant.asUint32()); + break; + + case ::qpid::types::VAR_UINT64: +- (*vList).Add(variant.asUint64()); ++ (*managedList).Add(variant.asUint64()); + break; + + case ::qpid::types::VAR_INT8: +- (*vList).Add(variant.asInt8()); ++ (*managedList).Add(variant.asInt8()); + break; + + case ::qpid::types::VAR_INT16: +- (*vList).Add(variant.asInt16()); ++ (*managedList).Add(variant.asInt16()); + break; + + case ::qpid::types::VAR_INT32: +- (*vList).Add(variant.asInt32()); ++ (*managedList).Add(variant.asInt32()); + break; + + case ::qpid::types::VAR_INT64: +- (*vList).Add(variant.asInt64()); ++ (*managedList).Add(variant.asInt64()); + break; + + case ::qpid::types::VAR_FLOAT: +- (*vList).Add(variant.asFloat()); ++ (*managedList).Add(variant.asFloat()); + break; + + case ::qpid::types::VAR_DOUBLE: +- (*vList).Add(variant.asDouble()); ++ (*managedList).Add(variant.asDouble()); + break; + + case ::qpid::types::VAR_STRING: + { + System::String ^ elementValue = gcnew System::String(variant.asString().c_str()); +- (*vList).Add(elementValue); ++ (*managedList).Add(elementValue); + break; + } + case ::qpid::types::VAR_MAP: + { + QpidMap ^ newDict = gcnew QpidMap(); + +- NativeToManaged(newDict, variant.asMap()); ++ NativeToManaged(variant.asMap(), newDict); + +- (*vList).Add(newDict); ++ (*managedList).Add(newDict); + break; + } + +@@ -397,9 +399,9 @@ namespace messaging { + { + QpidList ^ newList = gcnew QpidList(); + +- NativeToManaged(newList, variant.asList()); ++ NativeToManaged(variant.asList(), newList); + +- (*vList).Add(newList); ++ (*managedList).Add(newList); + break; + } + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h +index 7ffba69..df12689 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h +@@ -28,43 +28,44 @@ + + #include "QpidTypeCheck.h" + +-namespace org { +-namespace apache { +-namespace qpid { +-namespace messaging { ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { + + /// + /// TypeTranslator provides codec between .NET Dictionary/List and + /// qpid messaging Map/List. + /// +- +- public ref class TypeTranslator ++ public ref class TypeTranslator sealed + { ++ private: ++ TypeTranslator::TypeTranslator() {} + + public: +- // The given object is a Dictionary. ++ // The given object is a managed Dictionary. + // Add its elements to the qpid map. +- static void ManagedToNative(::qpid::types::Variant::Map & theMapp, +- QpidMap ^ theObjp); ++ static void ManagedToNative(QpidMap ^ theDictionary, ++ ::qpid::types::Variant::Map & qpidMap); + +- // The given object is a List. ++ // The given object is a managed List. + // Add its elements to the qpid list. +- static void ManagedToNative(::qpid::types::Variant::List & theListp, +- QpidList ^ theObjp); ++ static void ManagedToNative(QpidList ^ theList, ++ ::qpid::types::Variant::List & qpidList); + +- // The given object is a simple native type (not a Dictionary or List) ++ // The given object is a simple managed type (not a Dictionary or List) + // Returns a variant representing simple native type object. +- static void ManagedToNativeObject(System::Object ^ theObjp, +- ::qpid::types::Variant & targetp); ++ static void ManagedToNativeObject(System::Object ^ managedValue, ++ ::qpid::types::Variant & qpidVariant); + +- // Given a Dictionary, +- // Return its values in a Qpid map +- static void NativeToManaged(QpidMap ^ dict, +- ::qpid::types::Variant::Map & map); ++ // The given object is a qpid map. ++ // Add its elements to the managed Dictionary. ++ static void NativeToManaged(::qpid::types::Variant::Map & qpidMap, ++ QpidMap ^ dict); + +- // Given a List, +- // Return its values in a Qpid list +- static void NativeToManaged(QpidList ^ vList, +- ::qpid::types::Variant::List & qpidList); ++ // The given object is a qpid list. ++ // Add its elements to the managed List. ++ static void NativeToManaged(::qpid::types::Variant::List & qpidList, ++ QpidList ^ managedList); + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc +index 0e47bae..71f051c 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc +@@ -69,12 +69,12 @@ BEGIN + BEGIN + BLOCK "040904b0" + BEGIN +- VALUE "FileDescription", "org" ++ VALUE "FileDescription", "org.apache.qpid.messaging" + VALUE "FileVersion", "1, 3, 0, 1" +- VALUE "InternalName", "org" ++ VALUE "InternalName", "org.apache.qpid.messaging" + VALUE "LegalCopyright", "Copyright (C) 2010" + VALUE "OriginalFilename", "org.apache.qpid.messaging" +- VALUE "ProductName", "org" ++ VALUE "ProductName", "org.apache.qpid.messaging" + VALUE "ProductVersion", "1, 3, 0, 1" + END + END +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index 7c31781..9700b59 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -2,7 +2,7 @@ + + + ++ ++ + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs +index 57f83ad..19c1ea9 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs +@@ -24,11 +24,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("org.apache.qpid.messaging.sessionreceiver")] ++[assembly: AssemblyTitle("Org.Apache.Qpid.Messaging.SessionReceiver")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("org.apache.qpid.messaging.sessionreceiver")] ++[assembly: AssemblyProduct("Org.Apache.Qpid.Messaging.SessionReceiver")] + [assembly: AssemblyCopyright("Copyright 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs +index 73956ec..c5a1a7e 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs +@@ -23,9 +23,9 @@ using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; +-using org.apache.qpid.messaging; ++using Org.Apache.Qpid.Messaging; + +-namespace org.apache.qpid.messaging.sessionreceiver ++namespace Org.Apache.Qpid.Messaging.SessionReceiver + { + /// + /// ISessionReceiver interface defines the callback for users to supply. +@@ -43,19 +43,19 @@ namespace org.apache.qpid.messaging.sessionreceiver + + + /// +- /// eventEngine - wait for messages from the underlying C++ code. ++ /// EventEngine - wait for messages from the underlying C++ code. + /// When available get them and deliver them via callback to our + /// client through the ISessionReceiver interface. + /// This class consumes the thread that calls the Run() function. + /// + +- internal class eventEngine ++ internal class EventEngine + { + private Session session; + private ISessionReceiver callback; + private bool keepRunning; + +- public eventEngine(Session theSession, ISessionReceiver thecallback) ++ public EventEngine(Session theSession, ISessionReceiver thecallback) + { + this.session = theSession; + this.callback = thecallback; +@@ -65,35 +65,35 @@ namespace org.apache.qpid.messaging.sessionreceiver + /// Function to call Session's nextReceiver, discover messages, + /// and to deliver messages through the callback. + /// +- public void open() ++ public void Open() + { +- Receiver rcvr = session.createReceiver(); ++ Receiver rcvr = session.CreateReceiver(); + Message msg; + + keepRunning = true; + while (keepRunning) + { +- if (session.nextReceiver(rcvr, DurationConstants.SECOND)) ++ if (session.NextReceiver(rcvr, DurationConstants.SECOND)) + { + if (keepRunning) + { +- msg = rcvr.fetch(DurationConstants.SECOND); ++ msg = rcvr.Fetch(DurationConstants.SECOND); + this.callback.SessionReceiver(rcvr, msg); + } + } + //else + // receive timed out +- // eventEngine exits the nextReceiver() function periodically ++ // EventEngine exits the nextReceiver() function periodically + // in order to test the keepRunning flag + } + // Private thread is now exiting. + } + + /// +- /// Function to stop the eventEngine. Private thread will exit within ++ /// Function to stop the EventEngine. Private thread will exit within + /// one second. + /// +- public void close() ++ public void Close() + { + keepRunning = false; + } +@@ -104,9 +104,9 @@ namespace org.apache.qpid.messaging.sessionreceiver + /// server is the class that users instantiate to connect a SessionReceiver + /// callback to the stream of received messages received on a Session. + /// +- public class server ++ public class CallbackServer + { +- private eventEngine ee; ++ private EventEngine ee; + + /// + /// Constructor for the server. +@@ -114,20 +114,20 @@ namespace org.apache.qpid.messaging.sessionreceiver + /// The Session whose messages are collected. + /// The user function call with each message. + /// +- public server(Session session, ISessionReceiver callback) ++ public CallbackServer(Session session, ISessionReceiver callback) + { +- ee = new eventEngine(session, callback); ++ ee = new EventEngine(session, callback); + + new System.Threading.Thread( +- new System.Threading.ThreadStart(ee.open)).Start(); ++ new System.Threading.ThreadStart(ee.Open)).Start(); + } + + /// + /// Function to stop the server. + /// +- public void close() ++ public void Close() + { +- ee.close(); ++ ee.Close(); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +index 5d16172..923952b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +@@ -2,9 +2,9 @@ using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; +-using org.apache.qpid.messaging; ++using Org.Apache.Qpid.Messaging; + +-namespace org.apache.qpid.messaging ++namespace Org.Apache.Qpid.Messaging + { + class Program + { +@@ -64,22 +64,22 @@ namespace org.apache.qpid.messaging + + Address aType = new Address ("check3", "subj", options, "hot"); + +- Console.WriteLine("aEmpty : {0}", aEmpty.str()); +- Console.WriteLine("aStr : {0}", aStr.str()); +- Console.WriteLine("aSubj : {0}", aSubj.str()); +- Console.WriteLine("aType : {0}", aType.str()); ++ Console.WriteLine("aEmpty : {0}", aEmpty.ToStr()); ++ Console.WriteLine("aStr : {0}", aStr.ToStr()); ++ Console.WriteLine("aSubj : {0}", aSubj.ToStr()); ++ Console.WriteLine("aType : {0}", aType.ToStr()); + + // + // Raw message data retrieval + // + + Message m2 = new Message("rarey"); +- UInt64 m2Size = m2.getContentSize(); ++ UInt64 m2Size = m2.GetContentSize(); + + + byte[] myRaw = new byte [m2Size]; + +- m2.getRaw(myRaw); ++ m2.GetRaw(myRaw); + Console.WriteLine("Got raw array size {0}", m2Size); + for (UInt64 i = 0; i < m2Size; i++) + Console.Write("{0} ", myRaw[i].ToString()); +-- +1.5.5.6 + +From aa84d40e15cbc74803425d2c49c1c0ce1e4ba484 Mon Sep 17 00:00:00 2001 +From: Stephen D. Huston +Date: Fri, 11 Jun 2010 00:52:28 +0000 +Subject: [PATCH] Fix unreferenced variable warnings on Windows build. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953523 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 6315831712123af530943bd9129425c6dc6d7a17) +--- + qpid/cpp/src/qpid/acl/AclData.cpp | 4 ++-- + qpid/cpp/src/qpid/acl/AclValidator.cpp | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/acl/AclData.cpp b/qpid/cpp/src/qpid/acl/AclData.cpp +index a03d5b4..658529b 100644 +--- a/qpid/cpp/src/qpid/acl/AclData.cpp ++++ b/qpid/cpp/src/qpid/acl/AclData.cpp +@@ -101,7 +101,7 @@ AclResult AclData::lookup(const std::string& id, const Action& action, const Obj + + try{ + aclMax = boost::lexical_cast(pMItr->second); +- }catch(const boost::bad_lexical_cast& e){ ++ }catch(const boost::bad_lexical_cast&){ + match = false; + QPID_LOG(error,"Error evaluating rule. " << + "Illegal value given in ACL source <" << aclSource << +@@ -113,7 +113,7 @@ AclResult AclData::lookup(const std::string& id, const Action& action, const Obj + + try{ + paramMax = boost::lexical_cast(paramItr->second); +- }catch(const boost::bad_lexical_cast& e){ ++ }catch(const boost::bad_lexical_cast&){ + match = false; + QPID_LOG(error,"Error evaluating rule. " << + "Illegal value given in lookup for property '" << +diff --git a/qpid/cpp/src/qpid/acl/AclValidator.cpp b/qpid/cpp/src/qpid/acl/AclValidator.cpp +index aeaf638..57b68e5 100644 +--- a/qpid/cpp/src/qpid/acl/AclValidator.cpp ++++ b/qpid/cpp/src/qpid/acl/AclValidator.cpp +@@ -37,7 +37,7 @@ bool AclValidator::IntPropertyType::validate(const std::string& val) { + try + { + v = boost::lexical_cast(val); +- }catch(const boost::bad_lexical_cast& e){ ++ }catch(const boost::bad_lexical_cast&){ + return 0; + } + +-- +1.5.5.6 + +From e2f488f7e8257ffb3ace8ba414d21784e625d3e2 Mon Sep 17 00:00:00 2001 +From: Stephen D. Huston +Date: Fri, 11 Jun 2010 00:59:41 +0000 +Subject: [PATCH] Refer to struct Url as that, not a class - fixes compile warnings on Windows. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@953526 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 5a8d36c5bfb045876b21da5864ee747e80a1d1f6) +--- + qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h +index f32a075..904cef7 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h ++++ b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h +@@ -31,7 +31,7 @@ + #include + + namespace qpid { +-class Url; ++struct Url; + + namespace client { + namespace amqp0_10 { +-- +1.5.5.6 + +From a74bf473f490b7c7cdca1ad865261f7d82255e2a Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Mon, 14 Jun 2010 15:12:58 -0400 +Subject: [PATCH] Revert "QPID-2617: Fix the windows build for modified method signature" + +This reverts commit 512db9306e1ac6cf8f05f7a646d36f282f88293e. +--- + .../src/qpid/broker/windows/SaslAuthenticator.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp b/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp +index 608a8f7..642be29 100644 +--- a/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp ++++ b/qpid/cpp/src/qpid/broker/windows/SaslAuthenticator.cpp +@@ -68,7 +68,7 @@ bool SaslAuthenticator::available(void) + } + + // Initialize the SASL mechanism; throw if it fails. +-void SaslAuthenticator::init(const std::string& /*saslName*/, const std::string& /*saslConfig*/) ++void SaslAuthenticator::init(const std::string& /*saslName*/) + { + return; + } +-- +1.5.5.6 + +From a1cdf640e11415c3376c3e420d40113d2bcc723a Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 15 Jun 2010 15:34:10 +0000 +Subject: [PATCH] Bug 603839 - Fixed - Concurrent tagging of message with trace id while message is delivered from another queue causes segfault + +QPID-2670: copy-on-write when tagging message for loop detection + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954933 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a3ba0d75d20cc5f08bd06046f2eba29650980c40) +--- + qpid/cpp/src/qpid/broker/Message.cpp | 6 ++++++ + qpid/cpp/src/qpid/broker/Message.h | 1 + + qpid/cpp/src/qpid/broker/Queue.cpp | 13 ++++++++++--- + qpid/cpp/src/qpid/broker/Queue.h | 2 +- + qpid/cpp/src/qpid/framing/FrameSet.cpp | 10 ++++++++++ + qpid/cpp/src/qpid/framing/FrameSet.h | 1 + + 6 files changed, 29 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Message.cpp b/qpid/cpp/src/qpid/broker/Message.cpp +index b086d59..1e56544 100644 +--- a/qpid/cpp/src/qpid/broker/Message.cpp ++++ b/qpid/cpp/src/qpid/broker/Message.cpp +@@ -52,6 +52,12 @@ Message::Message(const framing::SequenceNumber& id) : + expiration(FAR_FUTURE), enqueueCallback(0), dequeueCallback(0), + inCallback(false), requiredCredit(0) {} + ++Message::Message(const Message& original) : ++ PersistableMessage(), frames(original.frames), persistenceId(0), redelivered(false), loaded(false), ++ staged(false), forcePersistentPolicy(false), publisher(0), adapter(0), ++ expiration(FAR_FUTURE), enqueueCallback(0), dequeueCallback(0), ++ inCallback(false), requiredCredit(0) {} ++ + Message::~Message() + { + if (expiryPolicy) +diff --git a/qpid/cpp/src/qpid/broker/Message.h b/qpid/cpp/src/qpid/broker/Message.h +index 4330a03..ee80657 100644 +--- a/qpid/cpp/src/qpid/broker/Message.h ++++ b/qpid/cpp/src/qpid/broker/Message.h +@@ -53,6 +53,7 @@ public: + typedef boost::function&)> MessageCallback; + + QPID_BROKER_EXTERN Message(const framing::SequenceNumber& id = framing::SequenceNumber()); ++ QPID_BROKER_EXTERN Message(const Message&); + QPID_BROKER_EXTERN ~Message(); + + uint64_t getPersistenceId() const { return persistenceId; } +diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp +index 8c9e5b8..7f7b2bc 100644 +--- a/qpid/cpp/src/qpid/broker/Queue.cpp ++++ b/qpid/cpp/src/qpid/broker/Queue.cpp +@@ -216,7 +216,8 @@ void Queue::requeue(const QueuedMessage& msg){ + if(inLastNodeFailure && persistLastNode && !msg.payload->isStoredOnQueue(shared_from_this())) { + msg.payload->forcePersistent(); + if (msg.payload->isForcedPersistent() ){ +- enqueue(0, msg.payload); ++ boost::intrusive_ptr payload = msg.payload; ++ enqueue(0, payload); + } + } + } +@@ -720,7 +721,7 @@ void Queue::setLastNodeFailure() + + + // return true if store exists, +-bool Queue::enqueue(TransactionContext* ctxt, boost::intrusive_ptr msg, bool suppressPolicyCheck) ++bool Queue::enqueue(TransactionContext* ctxt, boost::intrusive_ptr& msg, bool suppressPolicyCheck) + { + ScopedUse u(barrier); + if (!u.acquired) return false; +@@ -741,6 +742,11 @@ bool Queue::enqueue(TransactionContext* ctxt, boost::intrusive_ptr msg, + } + + if (traceId.size()) { ++ //copy on write: take deep copy of message before modifying it ++ //as the frames may already be available for delivery on other ++ //threads ++ boost::intrusive_ptr copy(new Message(*msg)); ++ msg = copy; + msg->addTraceId(traceId); + } + +@@ -1158,7 +1164,8 @@ void Queue::enqueued(const QueuedMessage& m) + policy->enqueued(m); + } + mgntEnqStats(m.payload); +- enqueue ( 0, m.payload, true ); ++ boost::intrusive_ptr payload = m.payload; ++ enqueue ( 0, payload, true ); + } else { + QPID_LOG(warning, "Queue informed of enqueued message that has no payload"); + } +diff --git a/qpid/cpp/src/qpid/broker/Queue.h b/qpid/cpp/src/qpid/broker/Queue.h +index cdfa8a1..ebef6e4 100644 +--- a/qpid/cpp/src/qpid/broker/Queue.h ++++ b/qpid/cpp/src/qpid/broker/Queue.h +@@ -260,7 +260,7 @@ namespace qpid { + QPID_BROKER_EXTERN void setLastNodeFailure(); + QPID_BROKER_EXTERN void clearLastNodeFailure(); + +- bool enqueue(TransactionContext* ctxt, boost::intrusive_ptr msg, bool suppressPolicyCheck = false); ++ bool enqueue(TransactionContext* ctxt, boost::intrusive_ptr& msg, bool suppressPolicyCheck = false); + void enqueueAborted(boost::intrusive_ptr msg); + /** + * dequeue from store (only done once messages is acknowledged) +diff --git a/qpid/cpp/src/qpid/framing/FrameSet.cpp b/qpid/cpp/src/qpid/framing/FrameSet.cpp +index c03dd39..255aaf6 100644 +--- a/qpid/cpp/src/qpid/framing/FrameSet.cpp ++++ b/qpid/cpp/src/qpid/framing/FrameSet.cpp +@@ -29,6 +29,16 @@ using namespace qpid::framing; + using namespace boost; + + FrameSet::FrameSet(const SequenceNumber& _id) : id(_id),contentSize(0),recalculateSize(true) { } ++FrameSet::FrameSet(const FrameSet& original) : id(original.id), contentSize(0), recalculateSize(true) ++{ ++ for (Frames::const_iterator i = original.begin(); i != original.end(); ++i) { ++ parts.push_back(AMQFrame(*(i->getBody()))); ++ parts.back().setFirstSegment(i->isFirstSegment()); ++ parts.back().setLastSegment(i->isLastSegment()); ++ parts.back().setFirstFrame(i->isFirstFrame()); ++ parts.back().setLastFrame(i->isLastFrame()); ++ } ++} + + void FrameSet::append(const AMQFrame& part) + { +diff --git a/qpid/cpp/src/qpid/framing/FrameSet.h b/qpid/cpp/src/qpid/framing/FrameSet.h +index 398a709..cae75e5 100644 +--- a/qpid/cpp/src/qpid/framing/FrameSet.h ++++ b/qpid/cpp/src/qpid/framing/FrameSet.h +@@ -46,6 +46,7 @@ public: + typedef boost::shared_ptr shared_ptr; + + QPID_COMMON_EXTERN FrameSet(const SequenceNumber& id); ++ QPID_COMMON_EXTERN FrameSet(const FrameSet&); + QPID_COMMON_EXTERN void append(const AMQFrame& part); + QPID_COMMON_EXTERN bool isComplete() const; + +-- +1.5.5.6 + +From abf93417bf2083fdb56ed2cb5e0be50e34d52860 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 16 Jun 2010 18:25:30 +0000 +Subject: [PATCH] Bug 602198 - Fix part 1 - qpidd crashes when testing heartbeats + +remove assertion for condition that is in fact valid (the callback could have been processed on the back of an event concurrently returned with the interrupt request) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@955339 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 66ea76a8dfe6a1833a1049bfdbc472e9102d6d9f) +--- + qpid/cpp/src/qpid/sys/DispatchHandle.cpp | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/DispatchHandle.cpp b/qpid/cpp/src/qpid/sys/DispatchHandle.cpp +index 605edab..95da87a 100644 +--- a/qpid/cpp/src/qpid/sys/DispatchHandle.cpp ++++ b/qpid/cpp/src/qpid/sys/DispatchHandle.cpp +@@ -291,8 +291,6 @@ void DispatchHandle::processEvent(Poller::EventType type) { + break; + case Poller::INTERRUPTED: + { +- // We could only be interrupted if we also had a callback to do +- assert(callbacks.size() > 0); + // We'll actually do the interrupt below + } + break; +-- +1.5.5.6 + +From eb748c3ccbb31c0567b6b7dfcd47e106dddd1e40 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 16 Jun 2010 14:46:19 -0400 +Subject: [PATCH] Bug 602198 - Fix part 2 - qpidd crashes when testing heartbeats + +Prevent 'interrupt' callback on object already deleted. +--- + qpid/cpp/src/qpid/sys/DispatchHandle.cpp | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/DispatchHandle.cpp b/qpid/cpp/src/qpid/sys/DispatchHandle.cpp +index 95da87a..cd9bfd0 100644 +--- a/qpid/cpp/src/qpid/sys/DispatchHandle.cpp ++++ b/qpid/cpp/src/qpid/sys/DispatchHandle.cpp +@@ -302,12 +302,22 @@ void DispatchHandle::processEvent(Poller::EventType type) { + // (because we use a copy from before the previous callbacks we won't + // do anything yet that was just added) + while (callbacks.size() > 0) { ++ { ++ ScopedLock lock(stateLock); ++ switch (state) { ++ case DELETING: ++ goto finishcallbacks; ++ default: ++ break; ++ } ++ } + Callback cb = callbacks.front(); + assert(cb); + cb(*this); + callbacks.pop(); + } + ++finishcallbacks: + { + ScopedLock lock(stateLock); + switch (state) { +-- +1.5.5.6 + +From 38ce79eee4d48e2be75c6d74ded2c383fba5810c Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Tue, 15 Jun 2010 10:11:39 +0000 +Subject: [PATCH] BZ-567249 added back values method for backwards compatibility + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954787 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/ops.py | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/qpid/ops.py b/qpid/python/qpid/ops.py +index acb54ae..8c9f8a0 100644 +--- a/qpid/python/qpid/ops.py ++++ b/qpid/python/qpid/ops.py +@@ -16,14 +16,19 @@ + # specific language governing permissions and limitations + # under the License. + # +-import os, mllib, cPickle as pickle ++import os, mllib, cPickle as pickle, sys + from util import fill + + class Primitive(object): + pass + + class Enum(object): +- pass ++ ++ # XXX: for backwards compatibility ++ @classmethod ++ def values(cls): ++ print >> sys.stderr, "warning, please use .VALUES instead of .values()" ++ return cls.VALUES + + class Field: + +-- +1.5.5.6 + +From 4e05457ddfe178ac4cfa55bb1dcd6986c272e500 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Tue, 15 Jun 2010 14:13:15 +0000 +Subject: [PATCH] BZ-567249 fix for python 2.3 + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954901 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/ops.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/ops.py b/qpid/python/qpid/ops.py +index 8c9f8a0..390552b 100644 +--- a/qpid/python/qpid/ops.py ++++ b/qpid/python/qpid/ops.py +@@ -25,10 +25,12 @@ class Primitive(object): + class Enum(object): + + # XXX: for backwards compatibility +- @classmethod + def values(cls): + print >> sys.stderr, "warning, please use .VALUES instead of .values()" + return cls.VALUES ++ # we can't use the backport preprocessor here because this code gets ++ # called by setup.py ++ values = classmethod(values) + + class Field: + +-- +1.5.5.6 + +From b0ae853c18fad859d5e7daabcb0598ab2d197ea6 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 16 Jun 2010 16:47:18 +0000 +Subject: [PATCH] BZ-596677 performance tweaks for receive: added configurable threshold for issuing credit; don't disable byte credit more than necessary; avoided n-squared loop for generating acks + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@955296 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 19 ++++++++++++++++--- + qpid/python/qpid/messaging/endpoints.py | 7 +++++-- + 2 files changed, 21 insertions(+), 5 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 8463aea..16f1b29 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -208,6 +208,7 @@ class LinkIn: + _rcv.destination = str(rcv.id) + sst.destinations[_rcv.destination] = _rcv + _rcv.draining = False ++ _rcv.bytes_open = False + _rcv.on_unlink = [] + + def do_link(self, sst, rcv, _rcv, type, subtype, action): +@@ -762,6 +763,7 @@ class Engine: + sst.write_op(SessionCommandPoint(sst.sent, 0)) + sst.outgoing_idx = 0 + sst.acked = [] ++ sst.acked_idx = 0 + if ssn.transactional: + sst.write_cmd(TxSelect()) + self._attachments[ssn] = sst +@@ -965,7 +967,8 @@ class Engine: + self.process_receiver(rcv) + + if ssn.acked: +- messages = [m for m in ssn.acked if m not in sst.acked] ++ messages = ssn.acked[sst.acked_idx:] ++ delta = len(messages) + if messages: + ids = RangedSet() + +@@ -975,6 +978,7 @@ class Engine: + # could we deal this via some message-id based purge? + if m._transfer_id is None: + ssn.acked.remove(m) ++ delta -= 1 + continue + ids.add(m._transfer_id) + disp = m._disposition or DEFAULT_DISPOSITION +@@ -992,6 +996,7 @@ class Engine: + def ack_ack(): + for m in msgs: + ssn.acked.remove(m) ++ sst.acked_idx -= 1 + if not ssn.transactional: + sst.acked.remove(m) + return ack_ack +@@ -1011,7 +1016,9 @@ class Engine: + for m in msgs: + log.debug("SACK[%s]: %s, %s", ssn.log_id, m, m._disposition) + ++ # XXX: could add messages with _transfer_id of None + sst.acked.extend(messages) ++ sst.acked_idx += delta + + if ssn.committing and not sst.committing: + def commit_ok(): +@@ -1076,11 +1083,15 @@ class Engine: + delta = max(rcv.granted, rcv.received) - rcv.impending + + if delta is UNLIMITED: +- sst.write_cmd(MessageFlow(_rcv.destination, credit_unit.byte, UNLIMITED.value)) ++ if not _rcv.bytes_open: ++ sst.write_cmd(MessageFlow(_rcv.destination, credit_unit.byte, UNLIMITED.value)) ++ _rcv.bytes_open = True + sst.write_cmd(MessageFlow(_rcv.destination, credit_unit.message, UNLIMITED.value)) + rcv.impending = UNLIMITED + elif delta > 0: +- sst.write_cmd(MessageFlow(_rcv.destination, credit_unit.byte, UNLIMITED.value)) ++ if not _rcv.bytes_open: ++ sst.write_cmd(MessageFlow(_rcv.destination, credit_unit.byte, UNLIMITED.value)) ++ _rcv.bytes_open = True + sst.write_cmd(MessageFlow(_rcv.destination, credit_unit.message, delta)) + rcv.impending += delta + elif delta < 0 and not rcv.draining: +@@ -1088,6 +1099,7 @@ class Engine: + def do_stop(): + rcv.impending = rcv.received + _rcv.draining = False ++ _rcv.bytes_open = False + self.grant(rcv) + sst.write_cmd(MessageStop(_rcv.destination), do_stop) + +@@ -1097,6 +1109,7 @@ class Engine: + rcv.impending = rcv.received + rcv.granted = rcv.impending + _rcv.draining = False ++ _rcv.bytes_open = False + rcv.draining = False + sst.write_cmd(MessageFlush(_rcv.destination), do_flush) + +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index f5f957c..707aee3 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -29,6 +29,7 @@ Areas that still need work: + """ + + from logging import getLogger ++from math import ceil + from qpid.codec010 import StringCodec + from qpid.concurrency import synchronized, Waiter, Condition + from qpid.datatypes import Serial, uuid4 +@@ -843,6 +844,7 @@ class Receiver(object): + self._lock = self.session._lock + self._capacity = 0 + self._set_capacity(options.get("capacity", 0), False) ++ self.threshold = 0.5 + + @synchronized + def _set_capacity(self, c, wakeup=True): +@@ -931,8 +933,9 @@ class Receiver(object): + if msg is None: + raise Empty() + elif self._capacity not in (0, UNLIMITED.value): +- self.granted += 1 +- self._wakeup() ++ if self.received - self.returned <= int(ceil(self.threshold * self._capacity)): ++ self.granted = self.received + self._capacity ++ self._wakeup() + return msg + + def _grant(self): +-- +1.5.5.6 + +From c8e4559e0a26efe70e3a462f8e49a4bd55ba46a2 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 15 Jun 2010 15:52:51 -0400 +Subject: [PATCH] Bug 603835 - cluster_tests.test_management failing. + +Clean up connections causing extra connection objects in the mangement agent map. +- update connection was not being closed. +- connections belonging to members that left the cluster were not fully cleaned up + +Also fixed test errors making failover_soak fail sporadically. + +Corresponds to trunk r955370 +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 3 +- + qpid/cpp/src/qpid/cluster/Connection.cpp | 47 +++++++++++++--------- + qpid/cpp/src/qpid/cluster/Connection.h | 5 ++- + qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp | 2 +- + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 22 ++++++---- + qpid/cpp/src/tests/failover_soak.cpp | 12 +++-- + 6 files changed, 54 insertions(+), 37 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 6b9fcec..bc47e0b 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -361,7 +361,6 @@ void Cluster::erase(const ConnectionId& id) { + + // Called by Connection::deliverClose() in deliverFrameQueue thread. + void Cluster::erase(const ConnectionId& id, Lock&) { +- QPID_LOG(info, *this << " connection closed " << id); + connections.erase(id); + decoder.erase(id); + } +@@ -1022,7 +1021,7 @@ void Cluster::memberUpdate(Lock& l) { + ConnectionMap::iterator j = i++; + MemberId m = j->second->getId().getMember(); + if (m != self && !map.isMember(m)) { +- j->second->getBrokerConnection().closed(); ++ j->second->close(); + erase(j->second->getId(), l); + } + } +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index c402415..a2d1cc8 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -101,19 +101,18 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + if (isLocalClient()) { + // Local clients are announced to the cluster + // and initialized when the announce is received. +- QPID_LOG(info, "new client connection " << *this); + giveReadCredit(cluster.getSettings().readMax); // Flow control + init(); + } + else { + // Catch-up shadow connections initialized using nextShadow id. + assert(catchUp); +- QPID_LOG(info, "new catch-up connection " << *this); +- connectionCtor.mgmtId = updateIn.nextShadowMgmtId; ++ if (!updateIn.nextShadowMgmtId.empty()) ++ connectionCtor.mgmtId = updateIn.nextShadowMgmtId; + updateIn.nextShadowMgmtId.clear(); + init(); + } +- ++ QPID_LOG(info, "incoming connection " << *this); + } + + void Connection::setSecureConnection(broker::SecureConnection* sc) { +@@ -123,8 +122,6 @@ void Connection::setSecureConnection(broker::SecureConnection* sc) { + + void Connection::init() { + connection = connectionCtor.construct(); +- QPID_LOG(debug, cluster << " initialized connection: " << *this +- << " ssf=" << connection->getExternalSecuritySettings().ssf); + if (isLocalClient()) { + if (secureConnection) connection->setSecureConnection(secureConnection); + // Actively send cluster-order frames from local node +@@ -171,7 +168,6 @@ void Connection::announce( + + Connection::~Connection() { + if (connection.get()) connection->setErrorListener(0); +- QPID_LOG(debug, cluster << " deleted connection: " << *this); + } + + bool Connection::doOutput() { +@@ -250,16 +246,15 @@ void Connection::deliveredFrame(const EventFrame& f) { + // A local connection is closed by the network layer. + void Connection::closed() { + try { +- if (catchUp) { ++ if (isUpdated()) { ++ QPID_LOG(debug, cluster << " update connection closed " << *this); ++ close(); ++ } ++ else if (catchUp) { + QPID_LOG(critical, cluster << " catch-up connection closed prematurely " << *this); + cluster.leave(); + } +- else if (isUpdated()) { +- QPID_LOG(debug, cluster << " closed update connection " << *this); +- if (connection.get()) connection->closed(); +- } + else if (isLocal()) { +- QPID_LOG(debug, cluster << " local close of replicated connection " << *this); + // This was a local replicated connection. Multicast a deliver + // closed and process any outstanding frames from the cluster + // until self-delivery of deliver-close. +@@ -275,15 +270,20 @@ void Connection::closed() { + // Self-delivery of close message, close the connection. + void Connection::deliverClose () { + assert(!catchUp); ++ close(); ++ cluster.erase(self); ++} ++ ++// Close the connection ++void Connection::close() { + if (connection.get()) { + connection->closed(); + // Ensure we delete the broker::Connection in the deliver thread. + connection.reset(); + } +- cluster.erase(self); + } + +-// The connection has been killed for misbehaving ++// The connection has been killed for misbehaving, called in connection thread. + void Connection::abort() { + if (connection.get()) { + connection->abort(); +@@ -424,7 +424,7 @@ void Connection::shadowReady( + uint64_t memberId, uint64_t connectionId, const string& mgmtId, + const string& username, const string& fragment, uint32_t sendMax) + { +- QPID_ASSERT(mgmtId == getBrokerConnection().getMgmtId()); ++ QPID_ASSERT(mgmtId == getBrokerConnection()->getMgmtId()); + ConnectionId shadowId = ConnectionId(memberId, connectionId); + QPID_LOG(debug, cluster << " catch-up connection " << *this + << " becomes shadow " << shadowId); +@@ -442,13 +442,19 @@ void Connection::membership(const FieldTable& joiners, const FieldTable& members + QPID_LOG(debug, cluster << " incoming update complete on connection " << *this); + cluster.updateInDone(ClusterMap(joiners, members, frameSeq)); + updateIn.consumerNumbering.clear(); +- self.second = 0; // Mark this as completed update connection. ++ closeUpdated(); + } + + void Connection::retractOffer() { + QPID_LOG(info, cluster << " incoming update retracted on connection " << *this); + cluster.updateInRetracted(); +- self.second = 0; // Mark this as completed update connection. ++ closeUpdated(); ++} ++ ++void Connection::closeUpdated() { ++ self.second = 0; // Mark this as completed update connection. ++ if (connection.get()) ++ connection->close(connection::CLOSE_CODE_NORMAL, "OK"); + } + + bool Connection::isLocal() const { +@@ -527,7 +533,10 @@ std::ostream& operator<<(std::ostream& o, const Connection& c) { + if (c.isLocal()) type = "local"; + else if (c.isShadow()) type = "shadow"; + else if (c.isUpdated()) type = "updated"; +- return o << c.getId() << "(" << type << (c.isCatchUp() ? ",catchup" : "") << ")"; ++ const broker::Connection* bc = c.getBrokerConnection(); ++ if (bc) o << bc->getMgmtId(); ++ else o << ""; ++ return o << "(" << c.getId() << " " << type << (c.isCatchUp() ? ",catchup":"") << ")"; + } + + void Connection::txStart() { +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index 70c4d0e..45d832a 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -75,7 +75,8 @@ class Connection : + ~Connection(); + + ConnectionId getId() const { return self; } +- broker::Connection& getBrokerConnection() { return *connection; } ++ broker::Connection* getBrokerConnection() { return connection.get(); } ++ const broker::Connection* getBrokerConnection() const { return connection.get(); } + + /** Local connections may be clients or catch-up connections */ + bool isLocal() const; +@@ -167,6 +168,7 @@ class Connection : + void announce(const std::string& mgmtId, uint32_t ssf, const std::string& authid, + bool nodict, const std::string& username, + const std::string& initFrames); ++ void close(); + void abort(); + void deliverClose(); + +@@ -227,6 +229,7 @@ class Connection : + broker::SessionState& sessionState(); + broker::SemanticState& semanticState(); + broker::QueuedMessage getUpdateMessage(); ++ void closeUpdated(); + + Cluster& cluster; + ConnectionId self; +diff --git a/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp b/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp +index f80eb9c..1354dab 100644 +--- a/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp ++++ b/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp +@@ -83,7 +83,7 @@ void OutputInterceptor::deliverDoOutput(uint32_t limit) { + newLimit = (sendMax + sent) / 2; + } + sent = 0; +- while (sent < limit && parent.getBrokerConnection().doOutput()) ++ while (sent < limit && parent.getBrokerConnection()->doOutput()) + ++sent; + if (sent == limit) sendDoOutput(newLimit); + } +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 6499519..90f5bcf 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -150,7 +150,8 @@ void UpdateClient::update() { + // longer on their original queue. + session.queueDeclare(arg::queue=UPDATE, arg::autoDelete=true); + session.sync(); +- std::for_each(connections.begin(), connections.end(), boost::bind(&UpdateClient::updateConnection, this, _1)); ++ std::for_each(connections.begin(), connections.end(), ++ boost::bind(&UpdateClient::updateConnection, this, _1)); + session.queueDelete(arg::queue=UPDATE); + session.close(); + +@@ -167,15 +168,18 @@ void UpdateClient::update() { + client::ConnectionAccess::getImpl(connection)->expand(frame.encodedSize(), false); + client::ConnectionAccess::getImpl(connection)->handle(frame); + +- connection.close(); +- QPID_LOG(debug, updaterId << " update completed to " << updateeId +- << " at " << updateeUrl << ": " << membership); ++ // FIXME aconway 2010-06-16: Connection will be closed from the other end. ++ // connection.close(); ++ + // FIXME aconway 2010-03-15: This sleep avoids the race condition + // described in // https://bugzilla.redhat.com/show_bug.cgi?id=568831. + // It allows the connection to fully close before destroying the + // Connection object. Remove when the bug is fixed. + // +- sys::usleep(10*1000); // 100ms ++ sys::usleep(10*1000); ++ ++ QPID_LOG(debug, updaterId << " update completed to " << updateeId ++ << " at " << updateeUrl << ": " << membership); + } + + namespace { +@@ -347,9 +351,11 @@ void UpdateClient::updateOutputTask(const sys::OutputTask* task) { + + void UpdateClient::updateConnection(const boost::intrusive_ptr& updateConnection) { + QPID_LOG(debug, updaterId << " updating connection " << *updateConnection); ++ assert(updateConnection->getBrokerConnection()); ++ broker::Connection& bc = *updateConnection->getBrokerConnection(); + + // Send the management ID first on the main connection. +- std::string mgmtId = updateConnection->getBrokerConnection().getMgmtId(); ++ std::string mgmtId = updateConnection->getBrokerConnection()->getMgmtId(); + ClusterConnectionProxy(session).shadowPrepare(mgmtId); + // Make sure its received before opening shadow connection + session.sync(); +@@ -357,7 +363,6 @@ void UpdateClient::updateConnection(const boost::intrusive_ptr& upda + // Open shadow connection and update it. + shadowConnection = catchUpConnection(); + +- broker::Connection& bc = updateConnection->getBrokerConnection(); + connectionSettings.maxFrameSize = bc.getFrameMax(); + shadowConnection.open(updateeUrl, connectionSettings); + bc.eachSessionHandler(boost::bind(&UpdateClient::updateSession, this, _1)); +@@ -381,8 +386,7 @@ void UpdateClient::updateSession(broker::SessionHandler& sh) { + broker::SessionState* ss = sh.getSession(); + if (!ss) return; // no session. + +- QPID_LOG(debug, updaterId << " updating session " << &sh.getConnection() +- << "[" << sh.getChannel() << "] = " << ss->getId()); ++ QPID_LOG(debug, updaterId << " updating session " << ss->getId()); + + // Create a client session to update session state. + boost::shared_ptr cimpl = client::ConnectionAccess::getImpl(shadowConnection); +diff --git a/qpid/cpp/src/tests/failover_soak.cpp b/qpid/cpp/src/tests/failover_soak.cpp +index cd7aaa6..058f59e 100644 +--- a/qpid/cpp/src/tests/failover_soak.cpp ++++ b/qpid/cpp/src/tests/failover_soak.cpp +@@ -464,11 +464,12 @@ runDeclareQueuesClient ( brokerVector brokers, + << endl; + stringstream portSs; + portSs << port; ++ string portS(portSs.str()); + + vector argv; + argv.push_back ( "declareQueues" ); + argv.push_back ( host ); +- argv.push_back ( portSs.str().c_str() ); ++ argv.push_back ( portS.c_str() ); + if ( durable ) + argv.push_back ( "1" ); + else +@@ -672,7 +673,7 @@ main ( int argc, char const ** argv ) + // Get prefix for each queue name. + stringstream queue_prefix; + queue_prefix << "failover_soak_" << getpid(); +- ++ string queue_prefix_str(queue_prefix.str()); + + // Run the declareQueues child. + int childStatus; +@@ -682,7 +683,7 @@ main ( int argc, char const ** argv ) + declareQueuesPath, + verbosity, + durable, +- queue_prefix.str().c_str(), ++ queue_prefix_str.c_str(), + n_queues + ); + if ( -1 == dqClientPid ) { +@@ -706,6 +707,7 @@ main ( int argc, char const ** argv ) + + stringstream queue_name; + queue_name << queue_prefix.str() << '_' << i; ++ string queue_name_str(queue_name.str()); + + // Receiving client --------------------------- + pid_t receivingClientPid = +@@ -714,7 +716,7 @@ main ( int argc, char const ** argv ) + receiverPath, + reportFrequency, + verbosity, +- queue_name.str().c_str() ); ++ queue_name_str.c_str() ); + if ( -1 == receivingClientPid ) { + cerr << "END_OF_TEST ERROR_START_RECEIVER\n"; + return CANT_FORK_RECEIVER; +@@ -730,7 +732,7 @@ main ( int argc, char const ** argv ) + reportFrequency, + verbosity, + durable, +- queue_name.str().c_str() ); ++ queue_name_str.c_str() ); + if ( -1 == sendingClientPid ) { + cerr << "END_OF_TEST ERROR_START_SENDER\n"; + return CANT_FORK_SENDER; +-- +1.5.5.6 + +From e1c3a645453c2796b67625a1e00341894777f223 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 16 Jun 2010 22:15:14 +0000 +Subject: [PATCH] BZ-574817 don't always set the sync bit on send + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@955414 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 14 ++++++++++---- + qpid/python/qpid/messaging/endpoints.py | 25 +++++++++++++++++++++---- + 2 files changed, 31 insertions(+), 8 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 16f1b29..a6170c0 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -114,6 +114,7 @@ class SessionState: + self.min_completion = self.sent + self.max_completion = self.sent + self.results = {} ++ self.need_sync = False + + # receiver state + self.received = None +@@ -131,12 +132,12 @@ class SessionState: + for k, v in overrides.items(): + cmd[k.replace('-', '_')] = v + +- def write_cmd(self, cmd, action=noop, overrides=None): ++ def write_cmd(self, cmd, action=noop, overrides=None, sync=True): + if overrides: + self.apply_overrides(cmd, overrides) + +- if action != noop: +- cmd.sync = True ++ if sync or action != noop: ++ cmd.sync = sync + if self.detached: + raise Exception("detached") + cmd.id = self.sent +@@ -144,6 +145,7 @@ class SessionState: + self.actions[cmd.id] = action + self.max_completion = cmd.id + self.write_op(cmd) ++ self.need_sync = not cmd.sync + + def write_cmds(self, cmds, action=noop): + if cmds: +@@ -963,6 +965,10 @@ class Engine: + else: + break + ++ for snd in ssn.senders: ++ if snd.synced >= snd.queued and sst.need_sync: ++ sst.write_cmd(ExecutionSync(), sync=True) ++ + for rcv in ssn.receivers: + self.process_receiver(rcv) + +@@ -1167,7 +1173,7 @@ class Engine: + log.debug("RACK[%s]: %s", sst.session.log_id, msg) + assert msg == m + sst.write_cmd(MessageTransfer(destination=_snd._exchange, headers=(dp, mp), +- payload=body), msg_acked) ++ payload=body), msg_acked, sync=msg._sync) + log.debug("SENT[%s]: %s", sst.session.log_id, msg) + + def do_message_transfer(self, xfr): +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index 707aee3..58a654e 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -677,12 +677,20 @@ class Session: + assert self.aborted + + @synchronized ++ def sync(self): ++ """ ++ Sync the session. ++ """ ++ for snd in self.senders: ++ snd.sync() ++ self._ewait(lambda: not self.outgoing and not self.acked) ++ ++ @synchronized + def close(self): + """ + Close the session. + """ +- # XXX: should be able to express this condition through API calls +- self._ewait(lambda: not self.outgoing and not self.acked) ++ self.sync() + + for link in self.receivers + self.senders: + link.close() +@@ -704,8 +712,10 @@ class Sender: + self.target = target + self.options = options + self.capacity = options.get("capacity", UNLIMITED) ++ self.threshold = 0.5 + self.durable = options.get("durable") + self.queued = Serial(0) ++ self.synced = Serial(0) + self.acked = Serial(0) + self.error = None + self.linked = False +@@ -792,18 +802,25 @@ class Sender: + + # XXX: what if we send the same message to multiple senders? + message._sender = self ++ if self.capacity is not UNLIMITED: ++ message._sync = sync or self.available() <= int(ceil(self.threshold*self.capacity)) ++ else: ++ message._sync = sync + self.session.outgoing.append(message) + self.queued += 1 + +- self._wakeup() +- + if sync: + self.sync() + assert message not in self.session.outgoing ++ else: ++ self._wakeup() + + @synchronized + def sync(self): + mno = self.queued ++ if self.synced < mno: ++ self.synced = mno ++ self._wakeup() + self._ewait(lambda: self.acked >= mno) + + @synchronized +-- +1.5.5.6 + +From df73fc4c6a53f8b266fb88af60ea68df03057668 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Thu, 17 Jun 2010 02:18:24 +0000 +Subject: [PATCH] BZ-604836 reset reconnect delay after successful connect + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@955462 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index a6170c0..7f04903 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -480,6 +480,7 @@ class Driver: + self._timeout = None + self._attempts = 0 + self._host = 0 ++ self._delay = self.connection.reconnect_interval_min + self._retrying = False + except socket.error, e: + self._host = (self._host + 1) % len(self._hosts) +-- +1.5.5.6 + +From a7229e8f44b08aed075be8a5da16187017314735 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 17 Jun 2010 16:55:54 +0000 +Subject: [PATCH] Allow libraries to be independently versioned in the autotools build. + +Each library libfoo or plugin foo has a variable FOO_VERSION_INFO with +a value passed as -version-info to libtool. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@955672 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/configure.ac | 7 ------- + qpid/cpp/src/Makefile.am | 27 ++++++++++++++++++++------- + qpid/cpp/src/acl.mk | 4 +++- + qpid/cpp/src/cluster.mk | 6 ++++-- + qpid/cpp/src/qmf.mk | 20 ++++---------------- + qpid/cpp/src/qmfc.mk | 3 +++ + qpid/cpp/src/replication.mk | 11 +++++++++-- + qpid/cpp/src/ssl.mk | 10 ++++++---- + qpid/cpp/src/xml.mk | 4 +++- + 9 files changed, 52 insertions(+), 40 deletions(-) + +diff --git a/qpid/cpp/configure.ac b/qpid/cpp/configure.ac +index 4eec5f1..37c0c0a 100644 +--- a/qpid/cpp/configure.ac ++++ b/qpid/cpp/configure.ac +@@ -114,13 +114,6 @@ gl_saved_libs=$LIBS + AC_SUBST([LIB_DLOPEN]) + LIBS=$gl_saved_libs + +-# Set the argument to be used in "libtool -version-info ARG". +-QPID_CURRENT=2 +-QPID_REVISION=0 +-QPID_AGE=0 +-LIBTOOL_VERSION_INFO_ARG=$QPID_CURRENT:$QPID_REVISION:$QPID_AGE +-AC_SUBST(LIBTOOL_VERSION_INFO_ARG) +- + gl_CLOCK_TIME + + # Enable Valgrind +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 2df445e..6a65c15 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -107,7 +107,6 @@ include $(srcdir)/managementgen.mk + + ## Compiler flags + AM_CXXFLAGS = $(WARNING_CFLAGS) +-AM_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO_ARG) + INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(srcdir) -I=$(builddir) + + # +@@ -224,8 +223,8 @@ librdmawrap_la_CXXFLAGS = \ + $(AM_CXXFLAGS) -Wno-missing-field-initializers + lib_LTLIBRARIES += \ + librdmawrap.la +-librdmawrap_la_LDFLAGS = \ +- -no-undefined ++RDMAWRAP_VERSION_INFO = 2:0:0 ++librdmawrap_la_LDFLAGS = -version-info $(RDMAWRAP_VERSION_INFO) -no-undefined + + rdma_la_SOURCES = \ + qpid/sys/RdmaIOPlugin.cpp +@@ -233,7 +232,8 @@ rdma_la_LIBADD = \ + libqpidbroker.la \ + librdmawrap.la \ + -libverbs +-rdma_la_LDFLAGS = $(PLUGINLDFLAGS) ++RDMA_VERSION_INFO = 2:0:0 ++rdma_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(RDMA_VERSION_INFO) + rdma_la_CXXFLAGS = \ + $(AM_CXXFLAGS) -Wno-missing-field-initializers + dmodule_LTLIBRARIES += \ +@@ -245,7 +245,8 @@ rdmaconnector_la_LIBADD = \ + libqpidclient.la \ + librdmawrap.la \ + -libverbs +-rdmaconnector_la_LDFLAGS = $(PLUGINLDFLAGS) ++RDMACONNECTOR_VERSION_INFO = 2:0:0 ++rdmaconnector_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(RDMACONNECTOR_VERSION_INFO) + rdmaconnector_la_CXXFLAGS = \ + $(AM_CXXFLAGS) -Wno-missing-field-initializers + cmodule_LTLIBRARIES += \ +@@ -268,8 +269,6 @@ if SSL + include ssl.mk + endif + +-# New 0-10 codec, to be integrated in future. +-# libqpidamqp_0_10_la_SOURCES= + EXTRA_DIST +=\ + CMakeLists.txt \ + cluster.cmake \ +@@ -491,6 +490,9 @@ libqpidcommon_la_SOURCES += qpid/sys/cyrus/CyrusSecurityLayer.cpp + libqpidcommon_la_LIBADD += -lsasl2 + endif + ++QPIDCOMMON_VERSION_INFO = 2:0:0 ++libqpidcommon_la_LDFLAGS=-version-info $(QPIDCOMMON_VERSION_INFO) ++ + libqpidbroker_la_LIBADD = libqpidcommon.la -luuid + + libqpidbroker_la_SOURCES = \ +@@ -648,6 +650,9 @@ libqpidbroker_la_SOURCES = \ + qpid/management/ManagementTopicExchange.h \ + qpid/sys/TCPIOPlugin.cpp + ++# Library Version Information: ++QPIDBROKER_VERSION_INFO = 2:0:0 ++libqpidbroker_la_LDFLAGS = -version-info $(QPIDBROKER_VERSION_INFO) + + libqpidclient_la_LIBADD = libqpidcommon.la -luuid + +@@ -709,6 +714,10 @@ libqpidclient_la_SOURCES = \ + qpid/client/TCPConnector.cpp \ + qpid/client/TCPConnector.h + ++# Library Version Information: ++QPIDCLIENT_VERSION_INFO = 2:0:0 ++libqpidclient_la_LDFLAGS = -version-info $(QPIDCLIENT_VERSION_INFO) ++ + libqpidmessaging_la_LIBADD = libqpidclient.la + + libqpidmessaging_la_SOURCES = \ +@@ -751,6 +760,10 @@ libqpidmessaging_la_SOURCES = \ + qpid/client/amqp0_10/SimpleUrlParser.h \ + qpid/client/amqp0_10/SimpleUrlParser.cpp + ++# Library Version Information: ++QPIDMESSAGING_VERSION_INFO = 2:0:0 ++libqpidmessaging_la_LDFLAGS = -version-info $(QPIDMESSAGING_VERSION_INFO) ++ + # NOTE: only public header files (which should be in ../include) + # should go in this list. Private headers should go in the SOURCES + # list for one of the libraries or executables that includes it. +diff --git a/qpid/cpp/src/acl.mk b/qpid/cpp/src/acl.mk +index cedac7d..0450905 100644 +--- a/qpid/cpp/src/acl.mk ++++ b/qpid/cpp/src/acl.mk +@@ -37,4 +37,6 @@ if SUNOS + acl_la_LIBADD += libqmfagent.la libqmfconsole.la libqpidcommon.la -lboost_program_options $(SUNCC_RUNTIME_LIBS) + endif + +-acl_la_LDFLAGS = $(PLUGINLDFLAGS) ++ACL_VERSION_INFO = 2:0:0 ++acl_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(ACL_VERSION_INFO) ++ +diff --git a/qpid/cpp/src/cluster.mk b/qpid/cpp/src/cluster.mk +index 2a648e9..2e4942d 100644 +--- a/qpid/cpp/src/cluster.mk ++++ b/qpid/cpp/src/cluster.mk +@@ -97,13 +97,15 @@ cluster_la_SOURCES = \ + + cluster_la_LIBADD= -lcpg $(libcman) libqpidbroker.la libqpidclient.la + cluster_la_CXXFLAGS = $(AM_CXXFLAGS) -fno-strict-aliasing +-cluster_la_LDFLAGS = $(PLUGINLDFLAGS) ++CLUSTER_VERSION_INFO = 2:0:0 ++cluster_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(CLUSTER_VERSION_INFO) + + # The watchdog plugin and helper executable + dmodule_LTLIBRARIES += watchdog.la + watchdog_la_SOURCES = qpid/cluster/WatchDogPlugin.cpp + watchdog_la_LIBADD = libqpidbroker.la +-watchdog_la_LDFLAGS = $(PLUGINLDFLAGS) ++WATCHDOG_VERSION_INFO = 2:0:0 ++watchdog_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(WATCHDOG_VERSION_INFO) + + qpidexec_PROGRAMS += qpidd_watchdog + qpidd_watchdog_SOURCES = qpid/cluster/qpidd_watchdog.cpp +diff --git a/qpid/cpp/src/qmf.mk b/qpid/cpp/src/qmf.mk +index 1e4c59b..93f1817 100644 +--- a/qpid/cpp/src/qmf.mk ++++ b/qpid/cpp/src/qmf.mk +@@ -96,20 +96,8 @@ libqmfengine_la_SOURCES = \ + libqmf_la_LIBADD = libqmfengine.la + libqmfengine_la_LIBADD = libqpidclient.la + +-# Library Version Information: +-# +-# CURRENT => API/ABI version. Bump this if the interface changes +-# REVISION => Version of underlying implementation. +-# Bump if implementation changes but API/ABI doesn't +-# AGE => Number of API/ABI versions this is backward compatible with +-# +-QMF_CURRENT = 1 +-QMF_REVISION = 0 +-QMF_AGE = 0 +- +-QMF_ENGINE_CURRENT = 1 +-QMF_ENGINE_REVISION = 1 +-QMF_ENGINE_AGE = 0 ++QMF_VERSION_INFO = 1:0:0 ++QMFENGINE_VERSION_INFO = 1:1:0 + +-libqmf_la_LDFLAGS = -version-info $(QMF_CURRENT):$(QMF_REVISION):$(QMF_AGE) +-libqmfengine_la_LDFLAGS = -version-info $(QMF_ENGINE_CURRENT):$(QMF_ENGINE_REVISION):$(QMF_ENGINE_AGE) ++libqmf_la_LDFLAGS = -version-info $(QMF_VERSION_INFO) ++libqmfengine_la_LDFLAGS = -version-info $(QMFENGINE_VERSION_INFO) +diff --git a/qpid/cpp/src/qmfc.mk b/qpid/cpp/src/qmfc.mk +index f3e6dc2..9e8078f 100644 +--- a/qpid/cpp/src/qmfc.mk ++++ b/qpid/cpp/src/qmfc.mk +@@ -53,3 +53,6 @@ libqmfconsole_la_SOURCES = \ + + libqmfconsole_la_LIBADD = libqpidclient.la + ++# Library Version Information: ++QMFCONSOLE_VERSION_INFO = 2:0:0 ++libqmfconsole_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(QMFCONSOLE_VERSION_INFO) +diff --git a/qpid/cpp/src/replication.mk b/qpid/cpp/src/replication.mk +index 4a51fb9..e27920d 100644 +--- a/qpid/cpp/src/replication.mk ++++ b/qpid/cpp/src/replication.mk +@@ -33,7 +33,10 @@ if SUNOS + replicating_listener_la_LIBADD += libqpidcommon.la -lboost_program_options -luuid $(SUNCC_RUNTIME_LIBS) + endif + +-replicating_listener_la_LDFLAGS = $(PLUGINLDFLAGS) ++# Library Version Information: ++REPLICATING_LISTENER_VERSION_INFO = 2:0:0 ++replicating_listener_la_LDFLAGS = $(PLUGINLDFLAGS) \ ++ -version-info $(REPLICATING_LISTENER_VERSION_INFO) + + # a custom exchange plugin that allows an exchange to be created that + # can process the messages from a replication queue (populated on the +@@ -49,4 +52,8 @@ replication_exchange_la_LIBADD = libqpidbroker.la + if SUNOS + replication_exchange_la_LIBADD += libqpidcommon.la -lboost_program_options $(SUNCC_RUNTIME_LIBS) -luuid + endif +-replication_exchange_la_LDFLAGS = $(PLUGINLDFLAGS) ++# Library Version Information: ++REPLICATION_EXCHANGE_VERSION_INFO = 2:0:0 ++replication_exchange_la_LDFLAGS = $(PLUGINLDFLAGS) \ ++ -version-info $(REPLICATION_EXCHANGE_VERSION_INFO) ++ +diff --git a/qpid/cpp/src/ssl.mk b/qpid/cpp/src/ssl.mk +index f7fba7b..40cb9d0 100644 +--- a/qpid/cpp/src/ssl.mk ++++ b/qpid/cpp/src/ssl.mk +@@ -29,8 +29,9 @@ libsslcommon_la_SOURCES = \ + qpid/sys/ssl/SslIo.h \ + qpid/sys/ssl/SslIo.cpp + ++SSLCOMMON_VERSION_INFO = 2:0:0 ++libsslcommon_la_LDFLAGS = -version-info $(SSLCOMMON_VERSION_INFO) + libsslcommon_la_LIBADD= -lnss3 -lssl3 -lnspr4 libqpidcommon.la +- + libsslcommon_la_CXXFLAGS=$(AM_CXXFLAGS) $(SSL_CFLAGS) + + lib_LTLIBRARIES += libsslcommon.la +@@ -44,11 +45,11 @@ ssl_la_LIBADD= libqpidbroker.la libsslcommon.la + + ssl_la_CXXFLAGS=$(AM_CXXFLAGS) $(SSL_CFLAGS) + +-ssl_la_LDFLAGS = $(PLUGINLDFLAGS) ++SSL_VERSION_INFO = 2:0:0 ++ssl_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(SSL_VERSION_INFO) + + dmodule_LTLIBRARIES += ssl.la + +- + sslconnector_la_SOURCES = \ + qpid/client/SslConnector.cpp + +@@ -58,7 +59,8 @@ sslconnector_la_LIBADD = \ + + sslconnector_la_CXXFLAGS = $(AM_CXXFLAGS) -DQPIDC_CONF_FILE=\"$(confdir)/qpidc.conf\" $(SSL_CFLAGS) + +-sslconnector_la_LDFLAGS = $(PLUGINLDFLAGS) ++SSLCONNECTOR_VERSION_INFO = 2:0:0 ++sslconnector_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(SSLCONNECTOR_VERSION_INFO) + + cmodule_LTLIBRARIES += \ + sslconnector.la +diff --git a/qpid/cpp/src/xml.mk b/qpid/cpp/src/xml.mk +index 957a18e..2372202 100644 +--- a/qpid/cpp/src/xml.mk ++++ b/qpid/cpp/src/xml.mk +@@ -25,4 +25,6 @@ xml_la_SOURCES = \ + + xml_la_LIBADD = -lxerces-c -lxqilla libqpidbroker.la + +-xml_la_LDFLAGS = $(PLUGINLDFLAGS) ++XML_VERSION_INFO = 2:0:0 ++xml_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(XML_VERSION_INFO) ++ +-- +1.5.5.6 + +From 6df566bff554a1c95637a8e32398462ee3e1d9ee Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Fri, 18 Jun 2010 13:40:04 +0000 +Subject: [PATCH] Fix version info + +- no version info for modules +- no $(PLUGINLDFLAGS) on libqmfconsole, typo in previous merge. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@956001 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 882656ef4d0d8a26804fbb5a2ced3dcad433dc3b) +--- + qpid/cpp/src/Makefile.am | 9 ++------- + qpid/cpp/src/acl.mk | 3 +-- + qpid/cpp/src/cluster.mk | 6 ++---- + qpid/cpp/src/qmfc.mk | 3 +-- + qpid/cpp/src/replication.mk | 11 ++--------- + qpid/cpp/src/ssl.mk | 6 ++---- + qpid/cpp/src/xml.mk | 3 +-- + 7 files changed, 11 insertions(+), 30 deletions(-) + +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 6a65c15..27a60e4 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -232,8 +232,7 @@ rdma_la_LIBADD = \ + libqpidbroker.la \ + librdmawrap.la \ + -libverbs +-RDMA_VERSION_INFO = 2:0:0 +-rdma_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(RDMA_VERSION_INFO) ++rdma_la_LDFLAGS = $(PLUGINLDFLAGS) + rdma_la_CXXFLAGS = \ + $(AM_CXXFLAGS) -Wno-missing-field-initializers + dmodule_LTLIBRARIES += \ +@@ -245,8 +244,7 @@ rdmaconnector_la_LIBADD = \ + libqpidclient.la \ + librdmawrap.la \ + -libverbs +-RDMACONNECTOR_VERSION_INFO = 2:0:0 +-rdmaconnector_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(RDMACONNECTOR_VERSION_INFO) ++rdmaconnector_la_LDFLAGS = $(PLUGINLDFLAGS) + rdmaconnector_la_CXXFLAGS = \ + $(AM_CXXFLAGS) -Wno-missing-field-initializers + cmodule_LTLIBRARIES += \ +@@ -650,7 +648,6 @@ libqpidbroker_la_SOURCES = \ + qpid/management/ManagementTopicExchange.h \ + qpid/sys/TCPIOPlugin.cpp + +-# Library Version Information: + QPIDBROKER_VERSION_INFO = 2:0:0 + libqpidbroker_la_LDFLAGS = -version-info $(QPIDBROKER_VERSION_INFO) + +@@ -714,7 +711,6 @@ libqpidclient_la_SOURCES = \ + qpid/client/TCPConnector.cpp \ + qpid/client/TCPConnector.h + +-# Library Version Information: + QPIDCLIENT_VERSION_INFO = 2:0:0 + libqpidclient_la_LDFLAGS = -version-info $(QPIDCLIENT_VERSION_INFO) + +@@ -760,7 +756,6 @@ libqpidmessaging_la_SOURCES = \ + qpid/client/amqp0_10/SimpleUrlParser.h \ + qpid/client/amqp0_10/SimpleUrlParser.cpp + +-# Library Version Information: + QPIDMESSAGING_VERSION_INFO = 2:0:0 + libqpidmessaging_la_LDFLAGS = -version-info $(QPIDMESSAGING_VERSION_INFO) + +diff --git a/qpid/cpp/src/acl.mk b/qpid/cpp/src/acl.mk +index 0450905..bcd1d88 100644 +--- a/qpid/cpp/src/acl.mk ++++ b/qpid/cpp/src/acl.mk +@@ -37,6 +37,5 @@ if SUNOS + acl_la_LIBADD += libqmfagent.la libqmfconsole.la libqpidcommon.la -lboost_program_options $(SUNCC_RUNTIME_LIBS) + endif + +-ACL_VERSION_INFO = 2:0:0 +-acl_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(ACL_VERSION_INFO) ++acl_la_LDFLAGS = $(PLUGINLDFLAGS) + +diff --git a/qpid/cpp/src/cluster.mk b/qpid/cpp/src/cluster.mk +index 2e4942d..2a648e9 100644 +--- a/qpid/cpp/src/cluster.mk ++++ b/qpid/cpp/src/cluster.mk +@@ -97,15 +97,13 @@ cluster_la_SOURCES = \ + + cluster_la_LIBADD= -lcpg $(libcman) libqpidbroker.la libqpidclient.la + cluster_la_CXXFLAGS = $(AM_CXXFLAGS) -fno-strict-aliasing +-CLUSTER_VERSION_INFO = 2:0:0 +-cluster_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(CLUSTER_VERSION_INFO) ++cluster_la_LDFLAGS = $(PLUGINLDFLAGS) + + # The watchdog plugin and helper executable + dmodule_LTLIBRARIES += watchdog.la + watchdog_la_SOURCES = qpid/cluster/WatchDogPlugin.cpp + watchdog_la_LIBADD = libqpidbroker.la +-WATCHDOG_VERSION_INFO = 2:0:0 +-watchdog_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(WATCHDOG_VERSION_INFO) ++watchdog_la_LDFLAGS = $(PLUGINLDFLAGS) + + qpidexec_PROGRAMS += qpidd_watchdog + qpidd_watchdog_SOURCES = qpid/cluster/qpidd_watchdog.cpp +diff --git a/qpid/cpp/src/qmfc.mk b/qpid/cpp/src/qmfc.mk +index 9e8078f..b0ef68d 100644 +--- a/qpid/cpp/src/qmfc.mk ++++ b/qpid/cpp/src/qmfc.mk +@@ -53,6 +53,5 @@ libqmfconsole_la_SOURCES = \ + + libqmfconsole_la_LIBADD = libqpidclient.la + +-# Library Version Information: + QMFCONSOLE_VERSION_INFO = 2:0:0 +-libqmfconsole_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(QMFCONSOLE_VERSION_INFO) ++libqmfconsole_la_LDFLAGS = -version-info $(QMFCONSOLE_VERSION_INFO) +diff --git a/qpid/cpp/src/replication.mk b/qpid/cpp/src/replication.mk +index e27920d..dbe071f 100644 +--- a/qpid/cpp/src/replication.mk ++++ b/qpid/cpp/src/replication.mk +@@ -32,11 +32,7 @@ replicating_listener_la_LIBADD = libqpidbroker.la + if SUNOS + replicating_listener_la_LIBADD += libqpidcommon.la -lboost_program_options -luuid $(SUNCC_RUNTIME_LIBS) + endif +- +-# Library Version Information: +-REPLICATING_LISTENER_VERSION_INFO = 2:0:0 +-replicating_listener_la_LDFLAGS = $(PLUGINLDFLAGS) \ +- -version-info $(REPLICATING_LISTENER_VERSION_INFO) ++replicating_listener_la_LDFLAGS = $(PLUGINLDFLAGS) + + # a custom exchange plugin that allows an exchange to be created that + # can process the messages from a replication queue (populated on the +@@ -52,8 +48,5 @@ replication_exchange_la_LIBADD = libqpidbroker.la + if SUNOS + replication_exchange_la_LIBADD += libqpidcommon.la -lboost_program_options $(SUNCC_RUNTIME_LIBS) -luuid + endif +-# Library Version Information: +-REPLICATION_EXCHANGE_VERSION_INFO = 2:0:0 +-replication_exchange_la_LDFLAGS = $(PLUGINLDFLAGS) \ +- -version-info $(REPLICATION_EXCHANGE_VERSION_INFO) ++replication_exchange_la_LDFLAGS = $(PLUGINLDFLAGS) + +diff --git a/qpid/cpp/src/ssl.mk b/qpid/cpp/src/ssl.mk +index 40cb9d0..5fbdd55 100644 +--- a/qpid/cpp/src/ssl.mk ++++ b/qpid/cpp/src/ssl.mk +@@ -45,8 +45,7 @@ ssl_la_LIBADD= libqpidbroker.la libsslcommon.la + + ssl_la_CXXFLAGS=$(AM_CXXFLAGS) $(SSL_CFLAGS) + +-SSL_VERSION_INFO = 2:0:0 +-ssl_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(SSL_VERSION_INFO) ++ssl_la_LDFLAGS = $(PLUGINLDFLAGS) + + dmodule_LTLIBRARIES += ssl.la + +@@ -59,8 +58,7 @@ sslconnector_la_LIBADD = \ + + sslconnector_la_CXXFLAGS = $(AM_CXXFLAGS) -DQPIDC_CONF_FILE=\"$(confdir)/qpidc.conf\" $(SSL_CFLAGS) + +-SSLCONNECTOR_VERSION_INFO = 2:0:0 +-sslconnector_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(SSLCONNECTOR_VERSION_INFO) ++sslconnector_la_LDFLAGS = $(PLUGINLDFLAGS) + + cmodule_LTLIBRARIES += \ + sslconnector.la +diff --git a/qpid/cpp/src/xml.mk b/qpid/cpp/src/xml.mk +index 2372202..0d700fc 100644 +--- a/qpid/cpp/src/xml.mk ++++ b/qpid/cpp/src/xml.mk +@@ -25,6 +25,5 @@ xml_la_SOURCES = \ + + xml_la_LIBADD = -lxerces-c -lxqilla libqpidbroker.la + +-XML_VERSION_INFO = 2:0:0 +-xml_la_LDFLAGS = $(PLUGINLDFLAGS) -version-info $(XML_VERSION_INFO) ++xml_la_LDFLAGS = $(PLUGINLDFLAGS) + +-- +1.5.5.6 + +From 0f5083fda071b089376561b6de3b89a89d0d7823 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 22 Jun 2010 13:29:52 +0000 +Subject: [PATCH] Bug 605763 - Failures in long cluster_tests.test_management + +Fix cluster broker crashes when management is active. + +Cluser brokers were exiting with errors "modified cluster state +outside cluster context" and "confirmed < (50+0) but only sent < (49+0)" + +Fix was to: + - delay completion of incoming update till update connection closes. + - delay addding new connections to managment until connection is announced. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@956882 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 8c6bdbf58524a38ded50903ffd457a3f1aa59fc1) +--- + qpid/cpp/src/qpid/broker/Connection.cpp | 30 +- + qpid/cpp/src/qpid/broker/Connection.h | 14 +- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 13 +- + qpid/cpp/src/qpid/cluster/Cluster.h | 3 +- + qpid/cpp/src/qpid/cluster/Connection.cpp | 45 ++- + qpid/cpp/src/qpid/cluster/Connection.h | 14 +- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 21 +- + qpid/cpp/src/qpid/sys/ClusterSafe.cpp | 11 +- + qpid/cpp/src/tests/cluster_tests.py | 2 +- + qpid/cpp/src/tests/run_long_cluster_tests | 2 +- + qpid/cpp/src/tests/verify_cluster_objects | 456 ++++------------------ + qpid/cpp/xml/cluster.xml | 4 +- + 12 files changed, 188 insertions(+), 427 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Connection.cpp b/qpid/cpp/src/qpid/broker/Connection.cpp +index 619f1a1..bc755e3 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.cpp ++++ b/qpid/cpp/src/qpid/broker/Connection.cpp +@@ -76,8 +76,14 @@ struct ConnectionTimeoutTask : public sys::TimerTask { + } + }; + +-Connection::Connection(ConnectionOutputHandler* out_, Broker& broker_, const std::string& mgmtId_, +- const qpid::sys::SecuritySettings& external, bool isLink_, uint64_t objectId, bool shadow_) : ++Connection::Connection(ConnectionOutputHandler* out_, ++ Broker& broker_, const ++ std::string& mgmtId_, ++ const qpid::sys::SecuritySettings& external, ++ bool isLink_, ++ uint64_t objectId_, ++ bool shadow_, ++ bool delayManagement) : + ConnectionState(out_, broker_), + securitySettings(external), + adapter(*this, isLink_, shadow_), +@@ -89,26 +95,30 @@ Connection::Connection(ConnectionOutputHandler* out_, Broker& broker_, const std + agent(0), + timer(broker_.getTimer()), + errorListener(0), ++ objectId(objectId_), + shadow(shadow_) + { +- Manageable* parent = broker.GetVhostObject(); +- + if (isLink) + links.notifyConnection(mgmtId, this); ++ // In a cluster, allow adding the management object to be delayed. ++ if (!delayManagement) addManagementObject(); ++ if (!isShadow()) broker.getConnectionCounter().inc_connectionCount(); ++} + +- if (parent != 0) +- { +- agent = broker_.getManagementAgent(); +- +- // TODO set last bool true if system connection ++void Connection::addManagementObject() { ++ assert(agent == 0); ++ assert(mgmtObject == 0); ++ Manageable* parent = broker.GetVhostObject(); ++ if (parent != 0) { ++ agent = broker.getManagementAgent(); + if (agent != 0) { ++ // TODO set last bool true if system connection + mgmtObject = new _qmf::Connection(agent, this, parent, mgmtId, !isLink, false); + mgmtObject->set_shadow(shadow); + agent->addObject(mgmtObject, objectId); + } + ConnectionState::setUrl(mgmtId); + } +- if (!isShadow()) broker.getConnectionCounter().inc_connectionCount(); + } + + void Connection::requestIOProcessing(boost::function0 callback) +diff --git a/qpid/cpp/src/qpid/broker/Connection.h b/qpid/cpp/src/qpid/broker/Connection.h +index cf199fa..8ad78f6 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.h ++++ b/qpid/cpp/src/qpid/broker/Connection.h +@@ -79,9 +79,15 @@ class Connection : public sys::ConnectionInputHandler, + virtual void connectionError(const std::string&) = 0; + }; + +- Connection(sys::ConnectionOutputHandler* out, Broker& broker, const std::string& mgmtId, ++ Connection(sys::ConnectionOutputHandler* out, ++ Broker& broker, ++ const std::string& mgmtId, + const qpid::sys::SecuritySettings&, +- bool isLink = false, uint64_t objectId = 0, bool shadow=false); ++ bool isLink = false, ++ uint64_t objectId = 0, ++ bool shadow=false, ++ bool delayManagement = false); ++ + ~Connection (); + + /** Get the SessionHandler for channel. Create if it does not already exist */ +@@ -139,6 +145,9 @@ class Connection : public sys::ConnectionInputHandler, + // Used by cluster to update connection status + sys::AggregateOutput& getOutputTasks() { return outputTasks; } + ++ /** Cluster delays adding management object in the constructor then calls this. */ ++ void addManagementObject(); ++ + const qpid::sys::SecuritySettings& getExternalSecuritySettings() const + { + return securitySettings; +@@ -166,6 +175,7 @@ class Connection : public sys::ConnectionInputHandler, + boost::intrusive_ptr heartbeatTimer; + boost::intrusive_ptr timeoutTimer; + ErrorListener* errorListener; ++ uint64_t objectId; + bool shadow; + + public: +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index bc47e0b..233cc89 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -194,7 +194,7 @@ namespace _qmf = ::qmf::org::apache::qpid::cluster; + * Currently use SVN revision to avoid clashes with versions from + * different branches. + */ +-const uint32_t Cluster::CLUSTER_VERSION = 904565; ++const uint32_t Cluster::CLUSTER_VERSION = 956001; + + struct ClusterDispatcher : public framing::AMQP_AllOperations::ClusterHandler { + qpid::cluster::Cluster& cluster; +@@ -269,6 +269,7 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + lastAliveCount(0), + lastBroker(false), + updateRetracted(false), ++ updateClosed(false), + error(*this) + { + // We give ownership of the timer to the broker and keep a plain pointer. +@@ -861,6 +862,14 @@ void Cluster::updateStart(const MemberId& updatee, const Url& url, Lock& l) { + connectionSettings(settings))); + } + ++// Called in network thread ++void Cluster::updateInClosed() { ++ Lock l(lock); ++ assert(!updateClosed); ++ updateClosed = true; ++ checkUpdateIn(l); ++} ++ + // Called in update thread. + void Cluster::updateInDone(const ClusterMap& m) { + Lock l(lock); +@@ -877,6 +886,7 @@ void Cluster::updateInRetracted() { + + void Cluster::checkUpdateIn(Lock& l) { + if (state != UPDATEE) return; // Wait till we reach the stall point. ++ if (!updateClosed) return; // Wait till update connection closes. + if (updatedMap) { // We're up to date + map = *updatedMap; + failoverExchange->setUrls(getUrls(l)); +@@ -893,6 +903,7 @@ void Cluster::checkUpdateIn(Lock& l) { + } + else if (updateRetracted) { // Update was retracted, request another update + updateRetracted = false; ++ updateClosed = false; + state = JOINER; + QPID_LOG(notice, *this << " update retracted, sending new update request."); + mcast.mcastControl(ClusterUpdateRequestBody(ProtocolVersion(), myUrl.str()), self); +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.h b/qpid/cpp/src/qpid/cluster/Cluster.h +index 0d8b55c..84dee27 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.h ++++ b/qpid/cpp/src/qpid/cluster/Cluster.h +@@ -97,6 +97,7 @@ class Cluster : private Cpg::Handler, public management::Manageable { + void leave(); + + // Update completed - called in update thread ++ void updateInClosed(); + void updateInDone(const ClusterMap&); + void updateInRetracted(); + +@@ -277,7 +278,7 @@ class Cluster : private Cpg::Handler, public management::Manageable { + bool lastBroker; + sys::Thread updateThread; + boost::optional updatedMap; +- bool updateRetracted; ++ bool updateRetracted, updateClosed; + ErrorCheck error; + UpdateReceiver updateReceiver; + ClusterTimer* timer; +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index a2d1cc8..e0c0465 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -22,7 +22,6 @@ + #include "UpdateClient.h" + #include "Cluster.h" + #include "UpdateReceiver.h" +- + #include "qpid/assert.h" + #include "qpid/broker/SessionState.h" + #include "qpid/broker/SemanticState.h" +@@ -43,7 +42,6 @@ + #include "qpid/framing/ConnectionCloseOkBody.h" + #include "qpid/log/Statement.h" + #include "qpid/management/ManagementAgent.h" +- + #include + + +@@ -99,10 +97,9 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + { + cluster.addLocalConnection(this); + if (isLocalClient()) { +- // Local clients are announced to the cluster +- // and initialized when the announce is received. + giveReadCredit(cluster.getSettings().readMax); // Flow control +- init(); ++ // Delay adding the connection to the management map until announce() ++ connectionCtor.delayManagement = true; + } + else { + // Catch-up shadow connections initialized using nextShadow id. +@@ -110,9 +107,9 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + if (!updateIn.nextShadowMgmtId.empty()) + connectionCtor.mgmtId = updateIn.nextShadowMgmtId; + updateIn.nextShadowMgmtId.clear(); +- init(); +- } +- QPID_LOG(info, "incoming connection " << *this); ++ } ++ init(); ++ QPID_LOG(debug, cluster << " local connection " << *this); + } + + void Connection::setSecureConnection(broker::SecureConnection* sc) { +@@ -152,8 +149,11 @@ void Connection::announce( + QPID_ASSERT(ssf == connectionCtor.external.ssf); + QPID_ASSERT(authid == connectionCtor.external.authid); + QPID_ASSERT(nodict == connectionCtor.external.nodict); +- // Local connections are already initialized. +- if (isShadow()) { ++ // Local connections are already initialized but with management delayed. ++ if (isLocalClient()) { ++ connection->addManagementObject(); ++ } ++ else if (isShadow()) { + init(); + // Play initial frames into the connection. + Buffer buf(const_cast(initialFrames.data()), initialFrames.size()); +@@ -162,8 +162,9 @@ void Connection::announce( + connection->received(frame); + connection->setUserId(username); + } +- // Raise the connection management event now that the connection is replicated. ++ // Do managment actions now that the connection is replicated. + connection->raiseConnectEvent(); ++ QPID_LOG(debug, cluster << " replicated connection " << *this); + } + + Connection::~Connection() { +@@ -249,6 +250,7 @@ void Connection::closed() { + if (isUpdated()) { + QPID_LOG(debug, cluster << " update connection closed " << *this); + close(); ++ cluster.updateInClosed(); + } + else if (catchUp) { + QPID_LOG(critical, cluster << " catch-up connection closed prematurely " << *this); +@@ -259,7 +261,8 @@ void Connection::closed() { + // closed and process any outstanding frames from the cluster + // until self-delivery of deliver-close. + output.closeOutput(); +- cluster.getMulticast().mcastControl(ClusterConnectionDeliverCloseBody(), self); ++ cluster.getMulticast().mcastControl( ++ ClusterConnectionDeliverCloseBody(ProtocolVersion(), false), self); + } + } + catch (const std::exception& e) { +@@ -268,17 +271,21 @@ void Connection::closed() { + } + + // Self-delivery of close message, close the connection. +-void Connection::deliverClose () { +- assert(!catchUp); +- close(); ++void Connection::deliverClose (bool aborted) { ++ QPID_LOG(debug, cluster << " replicated close of " << *this); ++ if (connection.get()) { ++ if (aborted) connection->abort(); ++ else connection->closed(); ++ connection.reset(); ++ } + cluster.erase(self); + } + + // Close the connection + void Connection::close() { ++ QPID_LOG(debug, cluster << " local close of " << *this); + if (connection.get()) { + connection->closed(); +- // Ensure we delete the broker::Connection in the deliver thread. + connection.reset(); + } + } +@@ -286,11 +293,9 @@ void Connection::close() { + // The connection has been killed for misbehaving, called in connection thread. + void Connection::abort() { + if (connection.get()) { +- connection->abort(); +- // Ensure we delete the broker::Connection in the deliver thread. +- connection.reset(); ++ cluster.getMulticast().mcastControl( ++ ClusterConnectionDeliverCloseBody(ProtocolVersion(), true), self); + } +- cluster.erase(self); + } + + // ConnectionCodec::decode receives read buffers from directly-connected clients. +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index 45d832a..72a98c1 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -170,7 +170,7 @@ class Connection : + const std::string& initFrames); + void close(); + void abort(); +- void deliverClose(); ++ void deliverClose(bool); + + OutputInterceptor& getOutput() { return output; } + +@@ -194,6 +194,7 @@ class Connection : + bool isLink; + uint64_t objectId; + bool shadow; ++ bool delayManagement; + + ConnectionCtor( + sys::ConnectionOutputHandler* out_, +@@ -202,14 +203,19 @@ class Connection : + const qpid::sys::SecuritySettings& external_, + bool isLink_=false, + uint64_t objectId_=0, +- bool shadow_=false ++ bool shadow_=false, ++ bool delayManagement_=false + ) : out(out_), broker(broker_), mgmtId(mgmtId_), external(external_), +- isLink(isLink_), objectId(objectId_), shadow(shadow_) ++ isLink(isLink_), objectId(objectId_), shadow(shadow_), ++ delayManagement(delayManagement_) + {} + + std::auto_ptr construct() { + return std::auto_ptr( +- new broker::Connection(out, broker, mgmtId, external, isLink, objectId, shadow)); ++ new broker::Connection( ++ out, broker, mgmtId, external, isLink, objectId, ++ shadow, delayManagement) ++ ); + } + }; + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index b1c2780..8818a4c 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -2321,6 +2321,23 @@ void ManagementAgent::importAgents(qpid::framing::Buffer& inBuf) { + } + } + ++namespace { ++bool isNotDeleted(const ManagementObjectMap::value_type& value) { ++ return !value.second->isDeleted(); ++} ++ ++size_t countNotDeleted(const ManagementObjectMap& map) { ++ return std::count_if(map.begin(), map.end(), isNotDeleted); ++} ++ ++void dumpMap(std::ostream& o, const ManagementObjectMap& map) { ++ for (ManagementObjectMap::const_iterator i = map.begin(); i != map.end(); ++i) { ++ if (!i->second->isDeleted()) ++ o << endl << " " << i->second->getObjectId().getV2Key(); ++ } ++} ++} // namespace ++ + string ManagementAgent::debugSnapshot() { + ostringstream msg; + msg << " management snapshot:"; +@@ -2328,8 +2345,8 @@ string ManagementAgent::debugSnapshot() { + i != remoteAgents.end(); ++i) + msg << " " << i->second->routingKey; + msg << " packages: " << packages.size(); +- msg << " objects: " << managementObjects.size(); +- msg << " new objects: " << newManagementObjects.size(); ++ msg << " objects: " << countNotDeleted(managementObjects); ++ msg << " new objects: " << countNotDeleted(newManagementObjects); + return msg.str(); + } + +diff --git a/qpid/cpp/src/qpid/sys/ClusterSafe.cpp b/qpid/cpp/src/qpid/sys/ClusterSafe.cpp +index e051591..6105fc9 100644 +--- a/qpid/cpp/src/qpid/sys/ClusterSafe.cpp ++++ b/qpid/cpp/src/qpid/sys/ClusterSafe.cpp +@@ -43,8 +43,15 @@ void assertClusterSafe() { + } + } + +-ClusterSafeScope::ClusterSafeScope() { inContext = true; } +-ClusterSafeScope::~ClusterSafeScope() { inContext = false; } ++ClusterSafeScope::ClusterSafeScope() { ++ assert(!inContext); ++ inContext = true; ++} ++ ++ClusterSafeScope::~ClusterSafeScope() { ++ assert(inContext); ++ inContext = false; ++} + + void enableClusterSafe() { inCluster = true; } + +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index 983a8bd..ebb07a1 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -199,7 +199,7 @@ class LongTests(BrokerTest): + StoppableThread.stop(self) + + # def test_management +- args=["--mgmt-pub-interval", 1] # Publish management information every second. ++ args = ["--mgmt-pub-interval", 1] # Publish management information every second. + # Use store if present. + if BrokerTest.store_lib: args +=["--load-module", BrokerTest.store_lib] + cluster = self.cluster(3, args) +diff --git a/qpid/cpp/src/tests/run_long_cluster_tests b/qpid/cpp/src/tests/run_long_cluster_tests +index 05c7867..5dce0be 100755 +--- a/qpid/cpp/src/tests/run_long_cluster_tests ++++ b/qpid/cpp/src/tests/run_long_cluster_tests +@@ -20,5 +20,5 @@ + # + + srcdir=`dirname $0` +-$srcdir/run_cluster_tests 'cluster_tests.LongTests.*' -DDURATION=2 ++$srcdir/run_cluster_tests 'cluster_tests.LongTests.*' -DDURATION=4 + +diff --git a/qpid/cpp/src/tests/verify_cluster_objects b/qpid/cpp/src/tests/verify_cluster_objects +index be6d67d..a96c636 100755 +--- a/qpid/cpp/src/tests/verify_cluster_objects ++++ b/qpid/cpp/src/tests/verify_cluster_objects +@@ -1,6 +1,5 @@ + #!/usr/bin/env python + +-# + # Licensed to the Apache Software Foundation (ASF) under one + # or more contributor license agreements. See the NOTICE file + # distributed with this work for additional information +@@ -19,390 +18,83 @@ + # under the License. + # + +-import os +-import getopt +-import sys +-import locale +-import socket +-import re +-from qmf.console import Session, SchemaClass +- +-_host = "localhost" +-_connTimeout = 10 +-_verbose = 0 +-_del_test = False; +-pattern = re.compile("^\\d+\\.\\d+\\.\\d+\\.\\d+:\\d+$") +-_debug_recursion = 0 +- +-def Usage (): +- print "Usage: verify_cluster_objects [OPTIONS] [broker-addr]" +- print +- print " broker-addr is in the form: [username/password@] hostname | ip-address [:]" +- print " ex: localhost, 10.1.1.7:10000, broker-host:10000, guest/guest@localhost" +- print +- print " This program contacts every node of a cluster, loads all manageable objects from" +- print " those nodes and verifies that the management data is identical across the clusters." +- print +- print "Options:" +- print " --timeout seconds (10) Maximum time to wait for broker connection" +- print " --verbose level (0) Show details of objects and their IDs" +- print " --delete Delete some objects after creation, to test synchup" +- print +- sys.exit (1) +- +-class IpAddr: +- def __init__(self, text): +- if text.find("@") != -1: +- tokens = text.split("@") +- text = tokens[1] +- if text.find(":") != -1: +- tokens = text.split(":") +- text = tokens[0] +- self.port = int(tokens[1]) +- else: +- self.port = 5672 +- self.dottedQuad = socket.gethostbyname(text) +- nums = self.dottedQuad.split(".") +- self.addr = (int(nums[0]) << 24) + (int(nums[1]) << 16) + (int(nums[2]) << 8) + int(nums[3]) +- +- def bestAddr(self, addrPortList): +- bestDiff = 0xFFFFFFFFL +- bestAddr = None +- for addrPort in addrPortList: +- diff = IpAddr(addrPort[0]).addr ^ self.addr +- if diff < bestDiff: +- bestDiff = diff +- bestAddr = addrPort +- return bestAddr +- +-class ObjectId: +- """Object identity, use for dictionaries by object id""" +- def __init__(self, object): self.object = object +- def __eq__(self, other): return self.object is other.object +- def __hash__(self): return hash(id(self.object)) +- +-class Broker(object): +- def __init__(self, qmf, broker): +- self.broker = broker +- self.qmf = qmf +- +- agents = qmf.getAgents() +- for a in agents: +- if a.getAgentBank() == '0': +- self.brokerAgent = a +- +- bobj = qmf.getObjects(_class="broker", _package="org.apache.qpid.broker", +- _agent=self.brokerAgent)[0] +- self.currentTime = bobj.getTimestamps()[0] +- try: +- self.uptime = bobj.uptime +- except: +- self.uptime = 0 +- self.tablesByName = {} +- self.package = "org.apache.qpid.broker" +- self.id_cache = {} # Cache for getAbstractId +- +- def getUrl(self): +- return self.broker.getUrl() +- +- def getData(self): +- if _verbose > 1: +- print "Broker:", self.broker +- +- classList = self.qmf.getClasses(self.package) +- for cls in classList: +- if self.qmf.getSchema(cls).kind == SchemaClass.CLASS_KIND_TABLE: +- self.loadTable(cls) ++# Verify managment objects are consistent in a cluster. ++# Arguments: url of one broker in the cluster. + ++import qmf.console, sys, re + +- # +- # this should be a method on an object, but is kept here for now, until +- # we finish sorting out the treatment of names in qmfv2 +- # +- def getAbstractId(self, object): +- """ return a string the of the hierarchical name """ +- if (ObjectId(object) in self.id_cache): return self.id_cache[ObjectId(object)] +- global _debug_recursion +- result = u"" +- valstr = u"" +- _debug_recursion += 1 +- debug_prefix = _debug_recursion +- if (_verbose > 9): +- print debug_prefix, " enter gai: props ", object._properties +- for property, value in object._properties: ++class Session(qmf.console.Session): ++ """A qmf.console.Session that caches useful values""" + +- # we want to recurse on things which are refs. we tell by +- # asking each property if it's an index. I think... +- if (_verbose > 9): +- print debug_prefix, " prop ", property, " val " , value, " idx ", +- property.index, " type ", property.type +- +- # property is an instance, you can ask its type, name, etc. +- +- # special case system refs, as they will never be the same on +- # distinct cluster nodes. later we probably want a different +- # way of representing these objects, like for instance don't +- # include the system ref in the hierarchy. +- +- if property.name == "systemRef": +- _debug_recursion -= 1 +- self.id_cache[ObjectId(object)] = "" +- return "" +- +- if property.index: +- if result != u"": +- result += u":" +- if property.type == 10: +- try: +- recursive_objects = object._session.getObjects(_objectId = value, _broker=object._broker) +- if (_verbose > 9): +- print debug_prefix, " r ", recursive_objects[0] +- for rp, rv in recursive_objects[0]._properties: +- print debug_prefix, " rrr ", rp, " idx-p ", rp.index, " v ", rv +- print debug_prefix, " recursing on ", recursive_objects[0] +- valstr = self.getAbstractId(recursive_objects[0]) +- if (_verbose > 9): +- print debug_prefix, " recursing on ", recursive_objects[0], +- " -> ", valstr +- except Exception, e: +- if (_verbose > 9): +- print debug_prefix, " except ", e +- valstr = u"" +- else: +- # this yields UUID-blah. not good. try something else +- # valstr = value.__repr__() +- # print debug_prefix, " val ", value +- +- # yetch. this needs to be abstracted someplace? I don't +- # think we have the infrastructure we need to make these id +- # strings be sensible in the general case +- if property.name == "systemId": +- # special case. try to do something sensible about systemref objects +- valstr = object.nodeName +- else: +- valstr = value.__repr__() # I think... +- result += valstr +- if (_verbose > 9): +- print debug_prefix, " id ", self, " -> ", result +- _debug_recursion -= 1 +- self.id_cache[ObjectId(object)] = result +- return result +- +- def loadTable(self, cls): +- if _verbose > 1: +- print " Class:", cls.getClassName() +- list = self.qmf.getObjects(_class=cls.getClassName(), +- _package=cls.getPackageName(), +- _agent=self.brokerAgent) +- +- # tables-by-name maps class name to a table by object-name of +- # objects. ie use the class name ("broker", "queue", etc) to +- # index tables-by-name, returning a second table, use the +- # object name to index that to get an object. +- +- self.tablesByName[cls.getClassName()] = {} +- for obj in list: +- # make sure we aren't colliding on name. it's an internal +- # error (ie, the name-generation code is busted) if we do +- key = self.getAbstractId(obj) +- if key in self.tablesByName[cls.getClassName()]: +- raise Exception("internal error: collision for %s on key %s\n" +- % (obj, key)) +- +- self.tablesByName[cls.getClassName()][key] = obj +- if _verbose > 1: +- print " ", obj.getObjectId(), " ", obj.getIndex(), " ", key +- +- +-class BrokerManager: + def __init__(self): +- self.brokerName = None +- self.qmf = None +- self.broker = None +- self.brokers = [] +- self.cluster = None +- +- def SetBroker(self, brokerUrl): +- self.url = brokerUrl +- self.qmf = Session() +- self.broker = self.qmf.addBroker(brokerUrl, _connTimeout) +- agents = self.qmf.getAgents() +- for a in agents: +- if a.getAgentBank() == '0': +- self.brokerAgent = a +- +- def Disconnect(self): +- if self.broker: +- self.qmf.delBroker(self.broker) +- +- def _getCluster(self): +- packages = self.qmf.getPackages() +- if "org.apache.qpid.cluster" not in packages: +- return None ++ qmf.console.Session.__init__(self) ++ self.classes = None + +- clusters = self.qmf.getObjects(_class="cluster", _agent=self.brokerAgent) +- if len(clusters) == 0: +- print "Clustering is installed but not enabled on the broker." +- return None ++ def all_classes(self): ++ if self.classes is None: ++ self.classes = [c for p in self.getPackages() for c in self.getClasses(p)] ++ return self.classes + +- self.cluster = clusters[0] +- +- def _getHostList(self, urlList): +- hosts = [] +- hostAddr = IpAddr(_host) +- for url in urlList: +- if url.find("amqp:") != 0: +- raise Exception("Invalid URL 1") +- url = url[5:] +- addrs = str(url).split(",") +- addrList = [] +- for addr in addrs: +- tokens = addr.split(":") +- if len(tokens) != 3: +- raise Exception("Invalid URL 2") +- addrList.append((tokens[1], tokens[2])) +- +- # Find the address in the list that is most likely to be +- # in the same subnet as the address with which we made the +- # original QMF connection. This increases the probability +- # that we will be able to reach the cluster member. +- +- best = hostAddr.bestAddr(addrList) +- bestUrl = best[0] + ":" + best[1] +- hosts.append(bestUrl) +- return hosts +- +- +- # the main fun which tests for broker state "identity". now that +- # we're using qmf2 style object names across the board, that test +- # means that we are ensuring that for all objects of a given +- # class, an object of that class with the same object name exists +- # on the peer broker. +- +- def verify(self): +- if _verbose > 0: +- print "Connecting to the cluster..." +- self._getCluster() +- if self.cluster: +- memberList = self.cluster.members.split(";") +- hostList = self._getHostList(memberList) +- self.qmf.delBroker(self.broker) +- self.broker = None +- for host in hostList: +- b = self.qmf.addBroker(host, _connTimeout) +- self.brokers.append(Broker(self.qmf, b)) +- if _verbose > 0: +- print " ", b +- else: +- raise Exception("Failed - Not a cluster") +- +- failures = [] +- +- # Wait until connections to all nodes are established before +- # loading the management data. This will ensure that the +- # objects are all stable and the same. +- if _verbose > 0: +- print "Loading management data from nodes..." +- for broker in self.brokers: +- broker.getData() +- +- # If we're testing delete-some-objects functionality, create a +- # few widgets here and then delete them. +- if _del_test: +- if _verbose > 0: +- print "Running delete test" +- # just stick 'em in the first broker +- b = self.brokers[0] +- session = b.qmf.brokers[0].getAmqpSession() +- session.queue_declare(queue="foo", exclusive=True, auto_delete=True) +- session.exchange_bind(exchange="amq.direct", +- queue="foo", binding_key="foo") +- session.queue_declare(queue="bar", exclusive=True, auto_delete=True) +- session.exchange_bind(exchange="amq.direct", +- queue="bar", binding_key="bar") +- # now delete 'em +- session.exchange_unbind(queue="foo", exchange="amq.direct", binding_key="foo") +- session.exchange_unbind(queue="bar", exchange="amq.direct", binding_key="bar") +- session.queue_delete("bar") +- session.queue_delete("foo") +- +- # Verify that each node has the same set of objects (based on +- # object name). +- if _verbose > 0: +- print "Verifying objects based on object name..." +- base = self.brokers[0] +- for broker in self.brokers[1:]: +- +- # walk over the class names, for each class (with some +- # exceptions) walk over the objects of that class, making +- # sure they match between broker A and broker B +- +- for className in base.tablesByName: +- if className in ["broker", "system", "connection"]: +- continue +- +- tab1 = base.tablesByName[className] +- tab2 = broker.tablesByName[className] +- +- for key in tab1: +- if key not in tab2: +- failures.append("%s key %s not found on node %s" % +- (className, key, broker.getUrl())) +- for key in tab2: +- if key not in tab1: +- failures.append("%s key %s not found on node %s" % +- (className, key, base.getUrl())) +- +- if len(failures) > 0: +- print "Failures:" +- for failure in failures: +- print " %s" % failure +- raise Exception("Failures") +- +- if _verbose > 0: +- print "Success" +- +-## +-## Main Program +-## +- +-try: +- longOpts = ("verbose=", "timeout=", "delete") +- (optlist, encArgs) = getopt.gnu_getopt(sys.argv[1:], "", longOpts) +-except: +- Usage() +- +-try: +- encoding = locale.getpreferredencoding() +- cargs = [a.decode(encoding) for a in encArgs] +-except: +- cargs = encArgs +- +-for opt in optlist: +- if opt[0] == "--timeout": +- _connTimeout = int(opt[1]) +- if _connTimeout == 0: +- _connTimeout = None +- elif opt[0] == "--verbose": +- _verbose = int(opt[1]) +- elif opt[0] == "--delete": +- _del_test = True; +- else: +- Usage() +- +-nargs = len(cargs) +-bm = BrokerManager() +- +-if nargs == 1: +- _host = cargs[0] +- +-try: +- bm.SetBroker(_host) +- bm.verify() +-except KeyboardInterrupt: +- print +-except Exception,e: +- print "Failed: %s - %s" % (e.__class__.__name__, e) +- sys.exit(1) +- +-bm.Disconnect() ++class Broker: ++ def __init__(self, url, qmf): ++ self.url = url ++ self.qmf = qmf ++ self.broker = self.qmf.addBroker(url) ++ self.broker._waitForStable() ++ self.objects = None ++ self.ignore_list = [ re.compile("org.apache.qpid.broker:system:") ] ++ ++ def get_objects(self): ++ def ignore(name): ++ for m in (m for m in self.ignore_list if m.match(name)): ++ return True ++ if self.objects is None: ++ obj_list = [] ++ for c in self.qmf.all_classes(): ++ for o in self.qmf.getObjects(_key=c, _broker=self.broker): ++ name=o.getObjectId().getObject() ++ if not ignore(name): obj_list.append(name) ++ self.objects = set(obj_list) ++ if (len(obj_list) != len(self.objects)): ++ raise Exception("Duplicates in object list for %s"%(self.url)) ++ return self.objects ++ ++ def compare(self,other): ++ def compare1(x,y): ++ diff = x.get_objects() - y.get_objects() ++ if diff: ++ print "ERROR: found on %s but not %s"%(x, y) ++ for o in diff: print " %s"%(o) ++ return False ++ return True ++ ++ so = compare1(self, other) ++ os = compare1(other, self) ++ return so and os ++ ++ def __str__(self): return self.url ++ ++ def get_cluster(self): ++ """Given one Broker, return list of all brokers in its cluster""" ++ clusters = self.qmf.getObjects(_class="cluster") ++ if not clusters: raise ("%s is not a cluster member"%(self.url)) ++ def first_address(url): ++ """Python doesn't understand the brokers URL syntax. Extract a simple addres""" ++ return re.compile("amqp:tcp:([^,]*)").match(url).group(1) ++ return [Broker(first_address(url), self.qmf) for url in clusters[0].members.split(";")] ++ ++ def __del__(self): self.qmf.delBroker(self.broker) ++ ++def main(argv=None): ++ if argv is None: argv = sys.argv ++ qmf = Session() ++ brokers = Broker(argv[1], qmf).get_cluster() ++ base = brokers.pop(0) ++ result = 0 ++ for b in brokers: ++ if not base.compare(b): result = 1 ++ del base ++ del brokers ++ return result ++ ++if __name__ == "__main__": sys.exit(main()) +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index 30cd159..25ad978 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -134,7 +134,9 @@ + + + +- ++ ++ ++ + + + +-- +1.5.5.6 + +From 5fbdc4c62f80ea01c9bd82187b1decdca36dde7e Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 22 Jun 2010 15:42:35 +0000 +Subject: [PATCH] Bug 603896 - Fixed - Message traffic freezes after queues back up + +Don't hold QueueRegistry lock while iterating over queues to purge them of expired messages. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@956923 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 1a85afb37de55697e172acd001db98dd9b4722a1) +--- + qpid/cpp/src/qpid/broker/QueueCleaner.cpp | 18 +++++++++++++++++- + 1 files changed, 17 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +index c80fe89..ed98468 100644 +--- a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp ++++ b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +@@ -46,9 +46,25 @@ void QueueCleaner::Task::fire() + parent.fired(); + } + ++namespace { ++struct CollectQueues ++{ ++ std::vector* queues; ++ CollectQueues(std::vector* q) : queues(q) {} ++ void operator()(Queue::shared_ptr q) ++ { ++ queues->push_back(q); ++ } ++}; ++} ++ + void QueueCleaner::fired() + { +- queues.eachQueue(boost::bind(&Queue::purgeExpired, _1)); ++ //collect copy of list of queues to avoid holding registry lock while we perform purge ++ std::vector copy; ++ CollectQueues collect(©); ++ queues.eachQueue(collect); ++ std::for_each(copy.begin(), copy.end(), boost::bind(&Queue::purgeExpired, _1)); + task->setupNextFire(); + timer.add(task); + } +-- +1.5.5.6 + +From 7361da16e3ffdd0b3b4804d774ae768503c2460c Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 22 Jun 2010 18:13:35 +0000 +Subject: [PATCH] Bug 605763 - Failures in long cluster_tests.test_management + +Fix bad assertion introduced in prevoius commit r956882 + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@956965 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 9f875847254c6a47f7fc9fef3fcfee7e0391d39e) +--- + qpid/cpp/src/qpid/sys/ClusterSafe.cpp | 6 +++--- + qpid/cpp/src/qpid/sys/ClusterSafe.h | 5 ++++- + 2 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/ClusterSafe.cpp b/qpid/cpp/src/qpid/sys/ClusterSafe.cpp +index 6105fc9..c6b527d 100644 +--- a/qpid/cpp/src/qpid/sys/ClusterSafe.cpp ++++ b/qpid/cpp/src/qpid/sys/ClusterSafe.cpp +@@ -43,14 +43,14 @@ void assertClusterSafe() { + } + } + +-ClusterSafeScope::ClusterSafeScope() { +- assert(!inContext); ++ClusterSafeScope::ClusterSafeScope() { ++ save = inContext; + inContext = true; + } + + ClusterSafeScope::~ClusterSafeScope() { + assert(inContext); +- inContext = false; ++ inContext = save; + } + + void enableClusterSafe() { inCluster = true; } +diff --git a/qpid/cpp/src/qpid/sys/ClusterSafe.h b/qpid/cpp/src/qpid/sys/ClusterSafe.h +index f338230..15675e8 100644 +--- a/qpid/cpp/src/qpid/sys/ClusterSafe.h ++++ b/qpid/cpp/src/qpid/sys/ClusterSafe.h +@@ -61,9 +61,12 @@ QPID_COMMON_EXTERN bool isCluster(); + * and provides functions to assist detecting bugs in cluster + * behavior. + */ +-struct ClusterSafeScope { ++class ClusterSafeScope { ++ public: + ClusterSafeScope(); + ~ClusterSafeScope(); ++ private: ++ bool save; + }; + + /** +-- +1.5.5.6 + +From 60a76e31d0b05c93662101a61bf573067440daec Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 22 Jun 2010 19:27:12 +0000 +Subject: [PATCH] Bug 606824 - Fixed - Acquired but Not Accepted Messages Not Sent to Alternate Exchange + +QPID-2688: ensure that unacked messages are requeued before autodeletion occurs when session closes + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@956988 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 91c77007649756868748b02fa8fd7ff9d6e881b4) +--- + qpid/cpp/src/qpid/broker/SemanticState.cpp | 41 +++++++++++++++++++++------ + qpid/cpp/src/qpid/broker/SemanticState.h | 4 +++ + qpid/cpp/src/qpid/broker/SessionState.cpp | 1 + + 3 files changed, 37 insertions(+), 9 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/SemanticState.cpp b/qpid/cpp/src/qpid/broker/SemanticState.cpp +index b8981b4..c91cfba 100644 +--- a/qpid/cpp/src/qpid/broker/SemanticState.cpp ++++ b/qpid/cpp/src/qpid/broker/SemanticState.cpp +@@ -73,21 +73,34 @@ SemanticState::SemanticState(DeliveryAdapter& da, SessionContext& ss) + authMsg(getSession().getBroker().getOptions().auth && !getSession().getConnection().isFederationLink()), + userID(getSession().getConnection().getUserId()), + userName(getSession().getConnection().getUserId().substr(0,getSession().getConnection().getUserId().find('@'))), +- isDefaultRealm(userID.find('@') != std::string::npos && getSession().getBroker().getOptions().realm == userID.substr(userID.find('@')+1,userID.size())) ++ isDefaultRealm(userID.find('@') != std::string::npos && getSession().getBroker().getOptions().realm == userID.substr(userID.find('@')+1,userID.size())), ++ closeComplete(false) + { + acl = getSession().getBroker().getAcl(); + } + + SemanticState::~SemanticState() { +- //cancel all consumers +- for (ConsumerImplMap::iterator i = consumers.begin(); i != consumers.end(); i++) { +- cancel(i->second); +- } ++ closed(); ++} + +- if (dtxBuffer.get()) { +- dtxBuffer->fail(); ++void SemanticState::closed() { ++ if (!closeComplete) { ++ //prevent requeued messages being redelivered to consumers ++ for (ConsumerImplMap::iterator i = consumers.begin(); i != consumers.end(); i++) { ++ disable(i->second); ++ } ++ if (dtxBuffer.get()) { ++ dtxBuffer->fail(); ++ } ++ recover(true); ++ ++ //now unsubscribe, which may trigger queue deletion and thus ++ //needs to occur after the requeueing of unacked messages ++ for (ConsumerImplMap::iterator i = consumers.begin(); i != consumers.end(); i++) { ++ unsubscribe(i->second); ++ } ++ closeComplete = true; + } +- recover(true); + } + + bool SemanticState::exists(const string& consumerTag){ +@@ -389,11 +402,15 @@ SemanticState::ConsumerImpl::~ConsumerImpl() + mgmtObject->resourceDestroy (); + } + +-void SemanticState::cancel(ConsumerImpl::shared_ptr c) ++void SemanticState::disable(ConsumerImpl::shared_ptr c) + { + c->disableNotify(); + if (session.isAttached()) + session.getConnection().outputTasks.removeOutputTask(c.get()); ++} ++ ++void SemanticState::unsubscribe(ConsumerImpl::shared_ptr c) ++{ + Queue::shared_ptr queue = c->getQueue(); + if(queue) { + queue->cancel(c); +@@ -403,6 +420,12 @@ void SemanticState::cancel(ConsumerImpl::shared_ptr c) + } + } + ++void SemanticState::cancel(ConsumerImpl::shared_ptr c) ++{ ++ disable(c); ++ unsubscribe(c); ++} ++ + void SemanticState::handle(intrusive_ptr msg) { + if (txBuffer.get()) { + TxPublish* deliverable(new TxPublish(msg)); +diff --git a/qpid/cpp/src/qpid/broker/SemanticState.h b/qpid/cpp/src/qpid/broker/SemanticState.h +index cae8527..2b31492 100644 +--- a/qpid/cpp/src/qpid/broker/SemanticState.h ++++ b/qpid/cpp/src/qpid/broker/SemanticState.h +@@ -157,6 +157,7 @@ class SemanticState : private boost::noncopyable { + const string userID; + const string userName; + const bool isDefaultRealm; ++ bool closeComplete; + + void route(boost::intrusive_ptr msg, Deliverable& strategy); + void checkDtxTimeout(); +@@ -165,6 +166,8 @@ class SemanticState : private boost::noncopyable { + AckRange findRange(DeliveryId first, DeliveryId last); + void requestDispatch(); + void cancel(ConsumerImpl::shared_ptr); ++ void unsubscribe(ConsumerImpl::shared_ptr); ++ void disable(ConsumerImpl::shared_ptr); + + public: + SemanticState(DeliveryAdapter&, SessionContext&); +@@ -220,6 +223,7 @@ class SemanticState : private boost::noncopyable { + + void attached(); + void detached(); ++ void closed(); + + // Used by cluster to re-create sessions + template void eachConsumer(F f) { +diff --git a/qpid/cpp/src/qpid/broker/SessionState.cpp b/qpid/cpp/src/qpid/broker/SessionState.cpp +index ddf68ca..be4f8c7 100644 +--- a/qpid/cpp/src/qpid/broker/SessionState.cpp ++++ b/qpid/cpp/src/qpid/broker/SessionState.cpp +@@ -88,6 +88,7 @@ SessionState::SessionState( + } + + SessionState::~SessionState() { ++ semanticState.closed(); + if (mgmtObject != 0) + mgmtObject->resourceDestroy (); + +-- +1.5.5.6 + +From c3f1bef98288cc54c6434e295d82bc2dec3888ca Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 23 Jun 2010 04:52:49 +0000 +Subject: [PATCH] BZ 606761: + +QPID-2388: Do not unmask signals whilst waiting for IO to happen +- The client and common libraries do not use signals at all so + there is no real reason to allow signal handling on IO threads. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957109 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp | 12 ------------ + qpid/cpp/src/tests/DispatcherTest.cpp | 8 ++------ + 2 files changed, 2 insertions(+), 18 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp b/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp +index 9ae9bce..9ad05c7 100644 +--- a/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp ++++ b/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp +@@ -262,7 +262,6 @@ class PollerPrivate { + const int epollFd; + bool isShutdown; + InterruptHandle interruptHandle; +- ::sigset_t sigMask; + HandleSet registeredHandles; + AtomicCount threadCount; + +@@ -294,7 +293,6 @@ class PollerPrivate { + epollFd(::epoll_create(DefaultFds)), + isShutdown(false) { + QPID_POSIX_CHECK(epollFd); +- ::sigemptyset(&sigMask); + // Add always readable fd into our set (but not listening to it yet) + ::epoll_event epe; + epe.events = 0; +@@ -562,17 +560,7 @@ Poller::Event Poller::wait(Duration timeout) { + // Repeat until we weren't interrupted by signal + do { + PollerHandleDeletionManager.markAllUnusedInThisThread(); +- // Need to run on kernels without epoll_pwait() +- // - fortunately in this case we don't really need the atomicity of epoll_pwait() +-#if 1 +- sigset_t os; +- pthread_sigmask(SIG_SETMASK, &impl->sigMask, &os); + int rc = ::epoll_wait(impl->epollFd, &epe, 1, timeoutMs); +- pthread_sigmask(SIG_SETMASK, &os, 0); +-#else +- int rc = ::epoll_pwait(impl->epollFd, &epe, 1, timeoutMs, &impl->sigMask); +-#endif +- + if (rc ==-1 && errno != EINTR) { + QPID_POSIX_CHECK(rc); + } else if (rc > 0) { +diff --git a/qpid/cpp/src/tests/DispatcherTest.cpp b/qpid/cpp/src/tests/DispatcherTest.cpp +index 17b3b4e..41e6054 100644 +--- a/qpid/cpp/src/tests/DispatcherTest.cpp ++++ b/qpid/cpp/src/tests/DispatcherTest.cpp +@@ -161,12 +161,8 @@ int main(int /*argc*/, char** /*argv*/) + wh->startWatch(poller); + + // Set up a regular itimer interupt +- +- // Ignore signal in this thread +- ::sigset_t sm; +- ::sigemptyset(&sm); +- ::sigaddset(&sm, SIGRTMIN); +- ::pthread_sigmask(SIG_BLOCK, &sm, 0); ++ // We assume that this thread will handle the signals whilst sleeping ++ // as the Poller threads have signal handling blocked + + // Signal handling + struct ::sigaction sa; +-- +1.5.5.6 + +From 162d3fdea6a041706de430aec6ebdeea0dc1fae6 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Thu, 24 Jun 2010 11:22:28 +0000 +Subject: [PATCH] Bug 607552 - Fixed - ttl is lost for federation routes where trace id is added + +QPID-2691: ensure ttl adjustment uses correct expiration on cloned message + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957511 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit f6f5a3deb6dfe337081d58bcb6d97ec4f03e6531) +--- + qpid/cpp/src/qpid/broker/Message.cpp | 7 +++++-- + qpid/cpp/src/qpid/broker/Queue.cpp | 2 +- + qpid/cpp/src/qpid/broker/Queue.h | 2 +- + qpid/cpp/src/tests/federation.py | 4 +++- + 4 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Message.cpp b/qpid/cpp/src/qpid/broker/Message.cpp +index 1e56544..ad67bff 100644 +--- a/qpid/cpp/src/qpid/broker/Message.cpp ++++ b/qpid/cpp/src/qpid/broker/Message.cpp +@@ -55,8 +55,11 @@ Message::Message(const framing::SequenceNumber& id) : + Message::Message(const Message& original) : + PersistableMessage(), frames(original.frames), persistenceId(0), redelivered(false), loaded(false), + staged(false), forcePersistentPolicy(false), publisher(0), adapter(0), +- expiration(FAR_FUTURE), enqueueCallback(0), dequeueCallback(0), +- inCallback(false), requiredCredit(0) {} ++ expiration(original.expiration), enqueueCallback(0), dequeueCallback(0), ++ inCallback(false), requiredCredit(0) ++{ ++ setExpiryPolicy(original.expiryPolicy); ++} + + Message::~Message() + { +diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp +index 7f7b2bc..dd077aa 100644 +--- a/qpid/cpp/src/qpid/broker/Queue.cpp ++++ b/qpid/cpp/src/qpid/broker/Queue.cpp +@@ -141,7 +141,7 @@ bool Queue::isExcluded(boost::intrusive_ptr& msg) + return traceExclude.size() && msg->isExcluded(traceExclude); + } + +-void Queue::deliver(boost::intrusive_ptr& msg){ ++void Queue::deliver(boost::intrusive_ptr msg){ + if (msg->isImmediate() && getConsumerCount() == 0) { + if (alternateExchange) { + DeliverableMessage deliverable(msg); +diff --git a/qpid/cpp/src/qpid/broker/Queue.h b/qpid/cpp/src/qpid/broker/Queue.h +index ebef6e4..41c6b46 100644 +--- a/qpid/cpp/src/qpid/broker/Queue.h ++++ b/qpid/cpp/src/qpid/broker/Queue.h +@@ -211,7 +211,7 @@ namespace qpid { + * Delivers a message to the queue. Will record it as + * enqueued if persistent then process it. + */ +- QPID_BROKER_EXTERN void deliver(boost::intrusive_ptr& msg); ++ QPID_BROKER_EXTERN void deliver(boost::intrusive_ptr msg); + /** + * Dispatches the messages immediately to a consumer if + * one is available or stores it for later if not. +diff --git a/qpid/cpp/src/tests/federation.py b/qpid/cpp/src/tests/federation.py +index d7f9342..63e3f2b 100755 +--- a/qpid/cpp/src/tests/federation.py ++++ b/qpid/cpp/src/tests/federation.py +@@ -358,7 +358,7 @@ class FederationTests(TestBase010): + for b, t in zip(body, trace): + headers = {} + if (t): headers["x-qpid.trace"]=t +- dp = r_session.delivery_properties(routing_key="my-key") ++ dp = r_session.delivery_properties(routing_key="my-key", ttl=1000*60*5) + mp = r_session.message_properties(application_headers=headers) + r_session.message_transfer(destination="amq.direct", message=Message(dp, mp, b)) + +@@ -366,6 +366,8 @@ class FederationTests(TestBase010): + msg = queue.get(timeout=5) + self.assertEqual("yes", msg.body) + self.assertEqual(e, self.getAppHeader(msg, "x-qpid.trace")) ++ assert(msg.get("delivery_properties").ttl > 0) ++ assert(msg.get("delivery_properties").ttl < 1000*60*50) + + try: + extra = queue.get(timeout=1) +-- +1.5.5.6 + +From abe5059836d94a9aa121e1211f080a4b3d2c03eb Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Thu, 24 Jun 2010 11:34:18 +0000 +Subject: [PATCH] Bug 607550 - Fixed - spout: Ignoring frame while closing connection + +Ensure spout example waits for all messages to be sent before detaching session + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957513 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 9b98d16351d428295a9108ff53994bc80f92e46d) +--- + qpid/cpp/examples/messaging/spout.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/spout.cpp b/qpid/cpp/examples/messaging/spout.cpp +index e100560..57b955c 100644 +--- a/qpid/cpp/examples/messaging/spout.cpp ++++ b/qpid/cpp/examples/messaging/spout.cpp +@@ -161,6 +161,7 @@ int main(int argc, char** argv) + message.getProperties()["spout-id"] = spoutid.str(); + sender.send(message); + } ++ session.sync(); + connection.close(); + return 0; + } catch(const std::exception& error) { +-- +1.5.5.6 + +From da98116bb0e911c9f491c942790ff33543e14571 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 24 Jun 2010 17:19:58 +0000 +Subject: [PATCH] Bug 604842 - cluster_test fails intermittently + +The bug is fixed by this and other commits leading up to it. + +Fix regression in r956882, sporadic failures of client_test.cpp:testBadClientData + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957640 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit bc5441acda9f35bef338677868e46145ce7a418b) +--- + qpid/cpp/src/qpid/cluster/Connection.cpp | 23 +++++++++-------------- + qpid/cpp/src/qpid/cluster/Connection.h | 2 +- + qpid/cpp/xml/cluster.xml | 4 +--- + 3 files changed, 11 insertions(+), 18 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index e0c0465..04aced5 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -262,7 +262,7 @@ void Connection::closed() { + // until self-delivery of deliver-close. + output.closeOutput(); + cluster.getMulticast().mcastControl( +- ClusterConnectionDeliverCloseBody(ProtocolVersion(), false), self); ++ ClusterConnectionDeliverCloseBody(), self); + } + } + catch (const std::exception& e) { +@@ -271,31 +271,26 @@ void Connection::closed() { + } + + // Self-delivery of close message, close the connection. +-void Connection::deliverClose (bool aborted) { +- QPID_LOG(debug, cluster << " replicated close of " << *this); +- if (connection.get()) { +- if (aborted) connection->abort(); +- else connection->closed(); +- connection.reset(); +- } ++void Connection::deliverClose () { ++ close(); + cluster.erase(self); + } + + // Close the connection + void Connection::close() { +- QPID_LOG(debug, cluster << " local close of " << *this); + if (connection.get()) { ++ QPID_LOG(debug, cluster << " closed connection " << *this); + connection->closed(); + connection.reset(); + } + } + +-// The connection has been killed for misbehaving, called in connection thread. ++// The connection has sent invalid data and should be aborted. ++// All members will get the same abort since they all process the same data. + void Connection::abort() { +- if (connection.get()) { +- cluster.getMulticast().mcastControl( +- ClusterConnectionDeliverCloseBody(ProtocolVersion(), true), self); +- } ++ connection->abort(); ++ // Aborting the connection will result in a call to ::closed() ++ // and allow the connection to close in an orderly manner. + } + + // ConnectionCodec::decode receives read buffers from directly-connected clients. +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index 72a98c1..aec18d7 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -170,7 +170,7 @@ class Connection : + const std::string& initFrames); + void close(); + void abort(); +- void deliverClose(bool); ++ void deliverClose(); + + OutputInterceptor& getOutput() { return output; } + +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index 25ad978..30cd159 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -134,9 +134,7 @@ + + + +- +- +- ++ + + + +-- +1.5.5.6 + +From 3f3e6086766770c3d7e1a7cf9afdfaedce82dd18 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Thu, 24 Jun 2010 17:34:34 +0000 +Subject: [PATCH] BZ-560707 added full support for unreliable, at-least-once, and at-most-once reliability options + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957644 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 59 +++++++++++++++++-------- + qpid/python/qpid/tests/messaging/endpoints.py | 27 +++++++++++ + 2 files changed, 68 insertions(+), 18 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 7f04903..76ccd54 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -95,6 +95,7 @@ CLIENT_PROPERTIES = {"product": "qpid python client", + "qpid.client_ppid": ppid} + + def noop(): pass ++def sync_noop(): pass + + class SessionState: + +@@ -136,7 +137,7 @@ class SessionState: + if overrides: + self.apply_overrides(cmd, overrides) + +- if sync or action != noop: ++ if action != noop: + cmd.sync = sync + if self.detached: + raise Exception("detached") +@@ -215,11 +216,14 @@ class LinkIn: + + def do_link(self, sst, rcv, _rcv, type, subtype, action): + link_opts = _rcv.options.get("link", {}) +- # XXX: default? +- reliability = link_opts.get("reliability", "unreliable") ++ reliability = link_opts.get("reliability", "at-least-once") + declare = link_opts.get("x-declare", {}) + subscribe = link_opts.get("x-subscribe", {}) + acq_mode = acquire_mode.pre_acquired ++ if reliability in ("unreliable", "at-most-once"): ++ rcv._accept_mode = accept_mode.none ++ else: ++ rcv._accept_mode = accept_mode.explicit + + if type == "topic": + default_name = "%s.%s" % (rcv.session.name, _rcv.destination) +@@ -239,9 +243,12 @@ class LinkIn: + acq_mode = acquire_mode.not_acquired + bindings = get_bindings(link_opts, queue=_rcv._queue) + ++ + sst.write_cmds(bindings) +- sst.write_cmd(MessageSubscribe(queue=_rcv._queue, destination=_rcv.destination, +- acquire_mode = acq_mode), ++ sst.write_cmd(MessageSubscribe(queue=_rcv._queue, ++ destination=_rcv.destination, ++ acquire_mode = acq_mode, ++ accept_mode = rcv._accept_mode), + overrides=subscribe) + sst.write_cmd(MessageSetFlowMode(_rcv.destination, flow_mode.credit), action) + +@@ -263,9 +270,12 @@ class LinkOut: + + def init_link(self, sst, snd, _snd): + _snd.closing = False ++ _snd.pre_ack = False + + def do_link(self, sst, snd, _snd, type, subtype, action): + link_opts = _snd.options.get("link", {}) ++ reliability = link_opts.get("reliability", "at-least-once") ++ _snd.pre_ack = reliability in ("unreliable", "at-most-once") + if type == "topic": + _snd._exchange = _snd.name + _snd._routing_key = _snd.subject +@@ -968,32 +978,34 @@ class Engine: + + for snd in ssn.senders: + if snd.synced >= snd.queued and sst.need_sync: +- sst.write_cmd(ExecutionSync(), sync=True) ++ sst.write_cmd(ExecutionSync(), sync_noop) + + for rcv in ssn.receivers: + self.process_receiver(rcv) + + if ssn.acked: + messages = ssn.acked[sst.acked_idx:] +- delta = len(messages) + if messages: + ids = RangedSet() + + disposed = [(DEFAULT_DISPOSITION, [])] ++ acked = [] + for m in messages: + # XXX: we're ignoring acks that get lost when disconnected, + # could we deal this via some message-id based purge? + if m._transfer_id is None: +- ssn.acked.remove(m) +- delta -= 1 ++ acked.append(m) + continue + ids.add(m._transfer_id) +- disp = m._disposition or DEFAULT_DISPOSITION +- last, msgs = disposed[-1] +- if disp.type is last.type and disp.options == last.options: +- msgs.append(m) ++ if m._receiver._accept_mode is accept_mode.explicit: ++ disp = m._disposition or DEFAULT_DISPOSITION ++ last, msgs = disposed[-1] ++ if disp.type is last.type and disp.options == last.options: ++ msgs.append(m) ++ else: ++ disposed.append((disp, [m])) + else: +- disposed.append((disp, [m])) ++ acked.append(m) + + for range in ids: + sst.executed.add_range(range) +@@ -1004,6 +1016,7 @@ class Engine: + for m in msgs: + ssn.acked.remove(m) + sst.acked_idx -= 1 ++ # XXX: should this check accept_mode too? + if not ssn.transactional: + sst.acked.remove(m) + return ack_ack +@@ -1023,9 +1036,9 @@ class Engine: + for m in msgs: + log.debug("SACK[%s]: %s, %s", ssn.log_id, m, m._disposition) + +- # XXX: could add messages with _transfer_id of None + sst.acked.extend(messages) +- sst.acked_idx += delta ++ sst.acked_idx += len(messages) ++ ack_acker(acked)() + + if ssn.committing and not sst.committing: + def commit_ok(): +@@ -1173,10 +1186,20 @@ class Engine: + sst.outgoing_idx -= 1 + log.debug("RACK[%s]: %s", sst.session.log_id, msg) + assert msg == m +- sst.write_cmd(MessageTransfer(destination=_snd._exchange, headers=(dp, mp), +- payload=body), msg_acked, sync=msg._sync) ++ ++ xfr = MessageTransfer(destination=_snd._exchange, headers=(dp, mp), ++ payload=body) ++ ++ if _snd.pre_ack: ++ sst.write_cmd(xfr) ++ else: ++ sst.write_cmd(xfr, msg_acked, sync=msg._sync) ++ + log.debug("SENT[%s]: %s", sst.session.log_id, msg) + ++ if _snd.pre_ack: ++ msg_acked() ++ + def do_message_transfer(self, xfr): + sst = self.get_sst(xfr) + ssn = sst.session +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index 3133fe7..dce8d9b 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -685,6 +685,33 @@ class ReceiverTests(Base): + + # XXX: need testUnsettled() + ++ def unreliabilityTest(self, mode="unreliable"): ++ msgs = [self.message("testUnreliable", i) for i in range(3)] ++ snd = self.ssn.sender("test-unreliability-queue; {create: sender, delete: receiver}") ++ rcv = self.ssn.receiver(snd.target) ++ for m in msgs: ++ snd.send(m) ++ ++ # close without ack on reliable receiver, messages should be requeued ++ ssn = self.conn.session() ++ rrcv = ssn.receiver("test-unreliability-queue") ++ self.drain(rrcv, expected=msgs) ++ ssn.close() ++ ++ # close without ack on unreliable receiver, messages should not be requeued ++ ssn = self.conn.session() ++ urcv = ssn.receiver("test-unreliability-queue; {link: {reliability: %s}}" % mode) ++ self.drain(urcv, expected=msgs, redelivered=True) ++ ssn.close() ++ ++ self.assertEmpty(rcv) ++ ++ def testUnreliable(self): ++ self.unreliabilityTest(mode="unreliable") ++ ++ def testAtMostOnce(self): ++ self.unreliabilityTest(mode="at-most-once") ++ + class AddressTests(Base): + + def setup_connection(self): +-- +1.5.5.6 + +From 495213b8cc66dc00c15662c559a48dcf04516fd7 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 25 Jun 2010 17:09:05 +0000 +Subject: [PATCH] BZ-569515 added optional timeouts to {connection,session,sender,receiver}.close() as well as connection.detach() and {session,sender}.sync() + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958037 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 2 + + qpid/python/qpid/messaging/endpoints.py | 57 +++++++++----- + qpid/python/qpid/messaging/exceptions.py | 5 + + qpid/python/qpid/tests/messaging/__init__.py | 6 +- + qpid/python/qpid/tests/messaging/endpoints.py | 103 ++++++++++++++++++++++++- + 5 files changed, 148 insertions(+), 25 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 76ccd54..6dab24d 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -357,6 +357,8 @@ class Driver: + + def stop(self): + self._selector.unregister(self) ++ if self._transport: ++ self.st_closed() + + def fileno(self): + return self._transport.fileno() +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index 58a654e..30f51fe 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -251,15 +251,18 @@ class Connection: + if not (l.linked or l.error or l.closed)] + + @synchronized +- def detach(self): ++ def detach(self, timeout=None): + """ + Detach from the remote endpoint. + """ + self._connected = False + self._wakeup() +- self._wait(lambda: not self._transport_connected) +- self._driver.stop() +- self._condition.gc() ++ try: ++ if not self._wait(lambda: not self._transport_connected, timeout=timeout): ++ raise Timeout("detach timed out") ++ finally: ++ self._driver.stop() ++ self._condition.gc() + + @synchronized + def attached(self): +@@ -269,15 +272,15 @@ class Connection: + return self._connected + + @synchronized +- def close(self): ++ def close(self, timeout=None): + """ + Close the connection and all sessions. + """ + try: + for ssn in self.sessions.values(): +- ssn.close() ++ ssn.close(timeout=timeout) + finally: +- self.detach() ++ self.detach(timeout=timeout) + self._open = False + + class Session: +@@ -677,28 +680,32 @@ class Session: + assert self.aborted + + @synchronized +- def sync(self): ++ def sync(self, timeout=None): + """ + Sync the session. + """ + for snd in self.senders: +- snd.sync() +- self._ewait(lambda: not self.outgoing and not self.acked) ++ snd.sync(timeout=timeout) ++ if not self._ewait(lambda: not self.outgoing and not self.acked, timeout=timeout): ++ raise Timeout("session sync timed out") + + @synchronized +- def close(self): ++ def close(self, timeout=None): + """ + Close the session. + """ +- self.sync() ++ self.sync(timeout=timeout) + + for link in self.receivers + self.senders: +- link.close() ++ link.close(timeout=timeout) + + self.closing = True + self._wakeup() +- self._ewait(lambda: self.closed) +- self.connection._remove_session(self) ++ try: ++ if not self._ewait(lambda: self.closed, timeout=timeout): ++ raise Timeout("session close timed out") ++ finally: ++ self.connection._remove_session(self) + + class Sender: + +@@ -816,22 +823,29 @@ class Sender: + self._wakeup() + + @synchronized +- def sync(self): ++ def sync(self, timeout=None): + mno = self.queued + if self.synced < mno: + self.synced = mno + self._wakeup() +- self._ewait(lambda: self.acked >= mno) ++ if not self._ewait(lambda: self.acked >= mno, timeout=timeout): ++ raise Timeout("sender sync timed out") + + @synchronized +- def close(self): ++ def close(self, timeout=None): + """ + Close the Sender. + """ ++ # avoid erroring out when closing a sender that was never ++ # established ++ if self.acked < self.queued: ++ self.sync(timeout=timeout) ++ + self.closing = True + self._wakeup() + try: +- self.session._ewait(lambda: self.closed) ++ if not self.session._ewait(lambda: self.closed, timeout=timeout): ++ raise Timeout("sender close timed out") + finally: + self.session.senders.remove(self) + +@@ -962,14 +976,15 @@ class Receiver(object): + self.granted = self.received + self._capacity + + @synchronized +- def close(self): ++ def close(self, timeout=None): + """ + Close the receiver. + """ + self.closing = True + self._wakeup() + try: +- self.session._ewait(lambda: self.closed) ++ if not self.session._ewait(lambda: self.closed, timeout=timeout): ++ raise Timeout("receiver close timed out") + finally: + self.session.receivers.remove(self) + +diff --git a/qpid/python/qpid/messaging/exceptions.py b/qpid/python/qpid/messaging/exceptions.py +index 0a4941a..f640b6b 100644 +--- a/qpid/python/qpid/messaging/exceptions.py ++++ b/qpid/python/qpid/messaging/exceptions.py +@@ -17,6 +17,11 @@ + # under the License. + # + ++class Timeout(Exception): ++ pass ++ ++## Messaging Errors ++ + class MessagingError(Exception): + + def __init__(self, code=None, text=None, **info): +diff --git a/qpid/python/qpid/tests/messaging/__init__.py b/qpid/python/qpid/tests/messaging/__init__.py +index 147dbb8..2c1dce9 100644 +--- a/qpid/python/qpid/tests/messaging/__init__.py ++++ b/qpid/python/qpid/tests/messaging/__init__.py +@@ -51,7 +51,11 @@ class Base(Test): + + def teardown(self): + if self.conn is not None and self.conn.attached(): +- self.conn.close() ++ self.teardown_connection(self.conn) ++ self.conn = None ++ ++ def teardown_connection(self, conn): ++ conn.close() + + def content(self, base, count = None): + if count is None: +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index dce8d9b..b064d62 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -20,10 +20,11 @@ + # setup, usage, teardown, errors(sync), errors(async), stress, soak, + # boundary-conditions, config + +-import errno, os, time ++import errno, os, socket, time + from qpid import compat + from qpid.compat import set + from qpid.messaging import * ++from qpid.messaging.transports import TRANSPORTS + from qpid.tests.messaging import Base + + class SetupTests(Base): +@@ -98,8 +99,6 @@ class SetupTests(Base): + + def testReconnect(self): + options = self.connection_options() +- import socket +- from qpid.messaging.transports import TRANSPORTS + real = TRANSPORTS["tcp"] + + class flaky: +@@ -213,6 +212,104 @@ class ConnectionTests(Base): + self.conn.close() + assert not self.conn.attached() + ++class hangable: ++ ++ def __init__(self, host, port): ++ self.tcp = TRANSPORTS["tcp"](host, port) ++ self.hung = False ++ ++ def hang(self): ++ self.hung = True ++ ++ def fileno(self): ++ return self.tcp.fileno() ++ ++ def reading(self, reading): ++ if self.hung: ++ return True ++ else: ++ return self.tcp.reading(reading) ++ ++ def writing(self, writing): ++ if self.hung: ++ return False ++ else: ++ return self.tcp.writing(writing) ++ ++ def send(self, bytes): ++ if self.hung: ++ return 0 ++ else: ++ return self.tcp.send(bytes) ++ ++ def recv(self, n): ++ if self.hung: ++ return "" ++ else: ++ return self.tcp.recv(n) ++ ++ def close(self): ++ self.tcp.close() ++ ++TRANSPORTS["hangable"] = hangable ++ ++class TimeoutTests(Base): ++ ++ def setup_connection(self): ++ options = self.connection_options() ++ options["transport"] = "hangable" ++ return Connection.establish(self.broker, **options) ++ ++ def setup_session(self): ++ return self.conn.session() ++ ++ def setup_sender(self): ++ return self.ssn.sender("amq.topic") ++ ++ def setup_receiver(self): ++ return self.ssn.receiver("amq.topic") ++ ++ def teardown_connection(self, conn): ++ try: ++ conn.detach(timeout=0) ++ except Timeout: ++ pass ++ ++ def hang(self): ++ self.conn._driver._transport.hang() ++ ++ def timeoutTest(self, method): ++ self.hang() ++ try: ++ method(timeout=self.delay()) ++ assert False, "did not time out" ++ except Timeout: ++ pass ++ ++ def testSenderSync(self): ++ self.snd.send(self.content("testSenderSync"), sync=False) ++ self.timeoutTest(self.snd.sync) ++ ++ def testSenderClose(self): ++ self.snd.send(self.content("testSenderClose"), sync=False) ++ self.timeoutTest(self.snd.close) ++ ++ def testReceiverClose(self): ++ self.timeoutTest(self.rcv.close) ++ ++ def testSessionSync(self): ++ self.snd.send(self.content("testSessionSync"), sync=False) ++ self.timeoutTest(self.ssn.sync) ++ ++ def testSessionClose(self): ++ self.timeoutTest(self.ssn.close) ++ ++ def testConnectionDetach(self): ++ self.timeoutTest(self.conn.detach) ++ ++ def testConnectionClose(self): ++ self.timeoutTest(self.conn.close) ++ + ACK_QC = 'test-ack-queue; {create: always}' + ACK_QD = 'test-ack-queue; {delete: always}' + +-- +1.5.5.6 + +From 9201b99100d8d47b3ed92573eea0e71969996418 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 25 Jun 2010 18:12:28 +0000 +Subject: [PATCH] BZ-608118 added support for x-amqp-0-10.{app-id,content-encoding,routing-key} + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958055 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 9 +++++++++ + qpid/python/qpid/tests/messaging/__init__.py | 14 ++++++++++---- + qpid/python/qpid/tests/messaging/message.py | 4 +++- + 3 files changed, 22 insertions(+), 5 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 6dab24d..ed6b602 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -1159,12 +1159,15 @@ class Engine: + rt = addr2reply_to(msg.reply_to) + else: + rt = None ++ content_encoding = msg.properties.get("x-amqp-0-10.content-encoding") + dp = DeliveryProperties(routing_key=rk) + mp = MessageProperties(message_id=msg.id, + user_id=msg.user_id, + reply_to=rt, + correlation_id=msg.correlation_id, ++ app_id = msg.properties.get("x-amqp-0-10.app-id"), + content_type=msg.content_type, ++ content_encoding=content_encoding, + application_headers=msg.properties) + if subject is not None: + if mp.application_headers is None: +@@ -1242,6 +1245,12 @@ class Engine: + msg.ttl = dp.ttl + msg.redelivered = dp.redelivered + msg.properties = mp.application_headers ++ if mp.app_id is not None: ++ msg.properties["x-amqp-0-10.app-id"] = mp.app_id ++ if mp.content_encoding is not None: ++ msg.properties["x-amqp-0-10.content-encoding"] = mp.content_encoding ++ if dp.routing_key is not None: ++ msg.properties["x-amqp-0-10.routing-key"] = dp.routing_key + msg.content_type = mp.content_type + msg._transfer_id = xfr.id + return msg +diff --git a/qpid/python/qpid/tests/messaging/__init__.py b/qpid/python/qpid/tests/messaging/__init__.py +index 2c1dce9..a160f38 100644 +--- a/qpid/python/qpid/tests/messaging/__init__.py ++++ b/qpid/python/qpid/tests/messaging/__init__.py +@@ -88,16 +88,22 @@ class Base(Test): + self.assertEchos(expected, messages, redelivered) + return messages + +- def diff(self, m1, m2): ++ def diff(self, m1, m2, excluded_properties=()): + result = {} + for attr in ("id", "subject", "user_id", "reply_to", + "correlation_id", "durable", "priority", "ttl", +- "redelivered", "properties", "content_type", +- "content"): ++ "redelivered", "content_type", "content"): + a1 = getattr(m1, attr) + a2 = getattr(m2, attr) + if a1 != a2: + result[attr] = (a1, a2) ++ p1 = dict(m1.properties) ++ p2 = dict(m2.properties) ++ for ep in excluded_properties: ++ p1.pop(ep, None) ++ p2.pop(ep, None) ++ if p1 != p2: ++ result["properties"] = (p1, p2) + return result + + def assertEcho(self, msg, echo, redelivered=False): +@@ -108,7 +114,7 @@ class Base(Test): + echo = echo.content + assert msg == echo, "expected %s, got %s" % (msg, echo) + else: +- delta = self.diff(msg, echo) ++ delta = self.diff(msg, echo, ("x-amqp-0-10.routing-key",)) + mttl, ettl = delta.pop("ttl", (0, 0)) + if redelivered: + assert echo.redelivered, \ +diff --git a/qpid/python/qpid/tests/messaging/message.py b/qpid/python/qpid/tests/messaging/message.py +index 2ca1fbf..91aab5f 100644 +--- a/qpid/python/qpid/tests/messaging/message.py ++++ b/qpid/python/qpid/tests/messaging/message.py +@@ -85,7 +85,9 @@ class MessageEchoTests(Base): + "key6": -3.14, + "key7": ["one", 2, 3.14], + "key8": [], +- "key9": {"sub-key0": 3}} ++ "key9": {"sub-key0": 3}, ++ "x-amqp-0-10.app-id": "test-app-id", ++ "x-amqp-0-10.content-encoding": "test-content-encoding"} + + def testMapContent(self): + self.check(Message(MessageEchoTests.TEST_MAP)) +-- +1.5.5.6 + +From d5086ed9cd510ce9f1dc80da90315518d5c3ebd2 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 25 Jun 2010 18:26:14 +0000 +Subject: [PATCH] BZ-608118 make sure we initialize properties even if application_headers is None + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958060 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index ed6b602..a732a60 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -1244,7 +1244,7 @@ class Engine: + msg.priority = dp.priority + msg.ttl = dp.ttl + msg.redelivered = dp.redelivered +- msg.properties = mp.application_headers ++ msg.properties = mp.application_headers or {} + if mp.app_id is not None: + msg.properties["x-amqp-0-10.app-id"] = mp.app_id + if mp.content_encoding is not None: +-- +1.5.5.6 + +From ee19a4688911a9fc55dea5f3176e99d6b77acafe Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 25 Jun 2010 18:57:59 +0000 +Subject: [PATCH] BZ-569515 fix timeout tests to not leave queues lying around + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958077 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/tests/messaging/endpoints.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index b064d62..c01f16e 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -267,7 +267,7 @@ class TimeoutTests(Base): + return self.ssn.sender("amq.topic") + + def setup_receiver(self): +- return self.ssn.receiver("amq.topic") ++ return self.ssn.receiver("amq.topic; {link: {reliability: unreliable}}") + + def teardown_connection(self, conn): + try: +-- +1.5.5.6 + +From 1834e02e7dd0abd92d4bee09818f86f4fb6af89b Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 25 Jun 2010 19:06:05 +0000 +Subject: [PATCH] BZ-607798 add uuid prefix to addresses beginning with hash(#) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958083 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/endpoints.py | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index 30f51fe..8bddc96 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -543,6 +543,7 @@ class Session: + @rtype: Sender + @return: a new Sender for the specified target + """ ++ target = _mangle(target) + sender = Sender(self, self.next_sender_id, target, options) + self.next_sender_id += 1 + self.senders.append(sender) +@@ -566,6 +567,7 @@ class Session: + @rtype: Receiver + @return: a new Receiver for the specified source + """ ++ source = _mangle(source) + receiver = Receiver(self, self.next_receiver_id, source, options) + self.next_receiver_id += 1 + self.receivers.append(receiver) +@@ -707,6 +709,12 @@ class Session: + finally: + self.connection._remove_session(self) + ++def _mangle(addr): ++ if addr.startswith("#"): ++ return str(uuid4()) + addr ++ else: ++ return addr ++ + class Sender: + + """ +-- +1.5.5.6 + +From ab7384c897f2bf27147e9b985b4a9d80f7b0600c Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 25 Jun 2010 17:25:46 +0000 +Subject: [PATCH] Bug 608118 - Fixed - New Messaging API lacks access to some 0-10 headers + +QPID-2698: recognise special property names for amqp 0-10 specific message- and delivery- properties + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958044 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 1db44a2ebafe023b1adec5f6de140bfe6023c4a2) +--- + .../src/qpid/client/amqp0_10/IncomingMessages.cpp | 19 ++++++++ + .../src/qpid/client/amqp0_10/OutgoingMessage.cpp | 32 +++++++++++++- + qpid/cpp/src/tests/MessagingFixture.h | 5 ++ + qpid/cpp/src/tests/MessagingSessionTests.cpp | 45 ++++++++++++++++++++ + 4 files changed, 98 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp b/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp +index 30cb634..2c00e6f 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp +@@ -290,6 +290,10 @@ namespace { + //TODO: unify conversion to and from 0-10 message that is currently + //split between IncomingMessages and OutgoingMessage + const std::string SUBJECT("qpid.subject"); ++ ++const std::string X_APP_ID("x-amqp-0-10.app-id"); ++const std::string X_ROUTING_KEY("x-amqp-0-10.routing-key"); ++const std::string X_CONTENT_ENCODING("x-amqp-0-10.content-encoding"); + } + + void populateHeaders(qpid::messaging::Message& message, +@@ -312,6 +316,21 @@ void populateHeaders(qpid::messaging::Message& message, + translate(messageProperties->getApplicationHeaders(), message.getProperties()); + message.setCorrelationId(messageProperties->getCorrelationId()); + message.setUserId(messageProperties->getUserId()); ++ if (messageProperties->hasMessageId()) { ++ message.setMessageId(messageProperties->getMessageId().str()); ++ } ++ //expose 0-10 specific items through special properties: ++ // app-id, content-encoding ++ if (messageProperties->hasAppId()) { ++ message.getProperties()[X_APP_ID] = messageProperties->getAppId(); ++ } ++ if (messageProperties->hasContentEncoding()) { ++ message.getProperties()[X_CONTENT_ENCODING] = messageProperties->getContentEncoding(); ++ } ++ // routing-key, others? ++ if (deliveryProperties && deliveryProperties->hasRoutingKey()) { ++ message.getProperties()[X_ROUTING_KEY] = deliveryProperties->getRoutingKey(); ++ } + } + } + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp b/qpid/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp +index c22eb54..8235896 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/OutgoingMessage.cpp +@@ -21,10 +21,12 @@ + #include "qpid/client/amqp0_10/OutgoingMessage.h" + #include "qpid/client/amqp0_10/AddressResolution.h" + #include "qpid/amqp_0_10/Codecs.h" ++#include "qpid/types/Variant.h" + #include "qpid/messaging/Address.h" + #include "qpid/messaging/Message.h" + #include "qpid/messaging/MessageImpl.h" + #include "qpid/framing/enum.h" ++#include + + namespace qpid { + namespace client { +@@ -32,9 +34,19 @@ namespace amqp0_10 { + + using qpid::messaging::Address; + using qpid::messaging::MessageImplAccess; ++using qpid::types::Variant; + using namespace qpid::framing::message; + using namespace qpid::amqp_0_10; + ++namespace { ++//TODO: unify conversion to and from 0-10 message that is currently ++//split between IncomingMessages and OutgoingMessage ++const std::string SUBJECT("qpid.subject"); ++const std::string X_APP_ID("x-amqp-0-10.app-id"); ++const std::string X_ROUTING_KEY("x-amqp-0-10.routing-key"); ++const std::string X_CONTENT_ENCODING("x-amqp-0-10.content-encoding"); ++} ++ + void OutgoingMessage::convert(const qpid::messaging::Message& from) + { + //TODO: need to avoid copying as much as possible +@@ -55,10 +67,24 @@ void OutgoingMessage::convert(const qpid::messaging::Message& from) + message.getDeliveryProperties().setRedelivered(true); + } + if (from.getPriority()) message.getDeliveryProperties().setPriority(from.getPriority()); +-} + +-namespace { +-const std::string SUBJECT("qpid.subject"); ++ //allow certain 0-10 specific items to be set through special properties: ++ // message-id, app-id, content-encoding ++ if (from.getMessageId().size()) { ++ qpid::framing::Uuid uuid; ++ std::istringstream data(from.getMessageId()); ++ data >> uuid; ++ message.getMessageProperties().setMessageId(uuid); ++ } ++ Variant::Map::const_iterator i; ++ i = from.getProperties().find(X_APP_ID); ++ if (i != from.getProperties().end()) { ++ message.getMessageProperties().setAppId(i->second.asString()); ++ } ++ i = from.getProperties().find(X_CONTENT_ENCODING); ++ if (i != from.getProperties().end()) { ++ message.getMessageProperties().setContentEncoding(i->second.asString()); ++ } + } + + void OutgoingMessage::setSubject(const std::string& subject) +diff --git a/qpid/cpp/src/tests/MessagingFixture.h b/qpid/cpp/src/tests/MessagingFixture.h +index 5546b4e..c8ae86d 100644 +--- a/qpid/cpp/src/tests/MessagingFixture.h ++++ b/qpid/cpp/src/tests/MessagingFixture.h +@@ -79,6 +79,11 @@ struct BrokerAdmin + return !result.getNotFound(); + } + ++ void send(qpid::client::Message& message, const std::string& exchange=std::string()) ++ { ++ session.messageTransfer(qpid::client::arg::destination=exchange, qpid::client::arg::content=message); ++ } ++ + ~BrokerAdmin() + { + session.close(); +diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp +index 375af73..6fee123 100644 +--- a/qpid/cpp/src/tests/MessagingSessionTests.cpp ++++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp +@@ -712,6 +712,51 @@ QPID_AUTO_TEST_CASE(testOptionVerification) + BOOST_CHECK_THROW(fix.session.createReceiver("my-queue; {invalid-option:blah}"), qpid::messaging::AddressError); + } + ++QPID_AUTO_TEST_CASE(testReceiveSpecialProperties) ++{ ++ QueueFixture fix; ++ ++ qpid::client::Message out; ++ out.getDeliveryProperties().setRoutingKey(fix.queue); ++ out.getMessageProperties().setAppId("my-app-id"); ++ out.getMessageProperties().setMessageId(qpid::framing::Uuid(true)); ++ out.getMessageProperties().setContentEncoding("my-content-encoding"); ++ fix.admin.send(out); ++ ++ Receiver receiver = fix.session.createReceiver(fix.queue); ++ Message in = receiver.fetch(Duration::SECOND * 5); ++ BOOST_CHECK_EQUAL(in.getProperties()["x-amqp-0-10.routing-key"].asString(), out.getDeliveryProperties().getRoutingKey()); ++ BOOST_CHECK_EQUAL(in.getProperties()["x-amqp-0-10.app-id"].asString(), out.getMessageProperties().getAppId()); ++ BOOST_CHECK_EQUAL(in.getProperties()["x-amqp-0-10.content-encoding"].asString(), out.getMessageProperties().getContentEncoding()); ++ BOOST_CHECK_EQUAL(in.getMessageId(), out.getMessageProperties().getMessageId().str()); ++ fix.session.acknowledge(true); ++} ++ ++QPID_AUTO_TEST_CASE(testSendSpecialProperties) ++{ ++ QueueFixture fix; ++ Sender sender = fix.session.createSender(fix.queue); ++ Message out("test-message"); ++ std::string appId = "my-app-id"; ++ std::string contentEncoding = "my-content-encoding"; ++ out.getProperties()["x-amqp-0-10.app-id"] = appId; ++ out.getProperties()["x-amqp-0-10.content-encoding"] = contentEncoding; ++ out.setMessageId(qpid::framing::Uuid(true).str()); ++ sender.send(out, true); ++ ++ qpid::client::LocalQueue q; ++ qpid::client::SubscriptionManager subs(fix.admin.session); ++ qpid::client::Subscription s = subs.subscribe(q, fix.queue); ++ qpid::client::Message in = q.get(); ++ s.cancel(); ++ fix.admin.session.sync(); ++ ++ BOOST_CHECK_EQUAL(in.getMessageProperties().getAppId(), appId); ++ BOOST_CHECK_EQUAL(in.getMessageProperties().getContentEncoding(), contentEncoding); ++ BOOST_CHECK_EQUAL(in.getMessageProperties().getMessageId().str(), out.getMessageId()); ++} ++ ++ + QPID_AUTO_TEST_SUITE_END() + + }} // namespace qpid::tests +-- +1.5.5.6 + +From dcc6c20a11f1dffac6708a128517757e7b1e0324 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Mon, 28 Jun 2010 11:35:59 +0000 +Subject: [PATCH] BZ-607798 fix mangling for addresses that are None + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958547 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/endpoints.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index 8bddc96..62423ca 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -710,7 +710,7 @@ class Session: + self.connection._remove_session(self) + + def _mangle(addr): +- if addr.startswith("#"): ++ if addr and addr.startswith("#"): + return str(uuid4()) + addr + else: + return addr +-- +1.5.5.6 + +From 8a7446059bd03eed784ec7f81815e4adab972fdb Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 15 Jun 2010 17:51:10 +0000 +Subject: [PATCH] QPID-2589 - Patch from Chuck Rolke + More API cleanup and new examples (to match the examples for other languages) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@954983 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit fa677aa82da3ee0fa654372d998563d8d652a787) +--- + .../csharp.direct.receiver.cs | 47 ++--- + .../csharp.direct.receiver.csproj | 4 +- + .../csharp.direct.sender/csharp.direct.sender.cs | 42 +++-- + .../csharp.direct.sender.csproj | 4 +- + .../Properties/AssemblyInfo.cs | 36 ++++ + .../csharp.example.client/csharp.example.client.cs | 70 +++++++ + .../csharp.example.client.csproj | 81 +++++++++ + .../Properties/AssemblyInfo.cs | 36 ++++ + .../csharp.example.declare_queues.cs | 61 +++++++ + .../csharp.example.declare_queues.csproj | 81 +++++++++ + .../examples/csharp.example.drain/Options.cs | 181 +++++++++++++++++++ + .../Properties/AssemblyInfo.cs | 36 ++++ + .../csharp.example.drain/csharp.example.drain.cs | 85 +++++++++ + .../csharp.example.drain.csproj | 82 +++++++++ + .../Properties/AssemblyInfo.cs | 36 ++++ + .../csharp.example.server/csharp.example.server.cs | 61 +++++++ + .../csharp.example.server.csproj | 81 +++++++++ + .../examples/csharp.example.spout/Options.cs | 189 ++++++++++++++++++++ + .../Properties/AssemblyInfo.cs | 36 ++++ + .../csharp.example.spout/csharp.example.spout.cs | 117 ++++++++++++ + .../csharp.example.spout.csproj | 82 +++++++++ + .../csharp.map.callback.receiver.csproj | 4 +- + .../csharp.map.callback.sender.cs | 41 ++++- + .../csharp.map.callback.sender.csproj | 4 +- + .../csharp.map.receiver/csharp.map.receiver.csproj | 4 +- + .../csharp.map.receiver/csharp.map.recevier.cs | 11 +- + .../csharp.map.sender/csharp.map.sender.cs | 47 +++++- + .../csharp.map.sender/csharp.map.sender.csproj | 4 +- + .../qpid/dotnet/org.apache.qpid.messaging.sln | 93 ++++++++++- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 146 ++++++++++++++-- + qpid/cpp/bindings/qpid/dotnet/src/Message.h | 22 ++- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 102 +++++++++++- + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 6 +- + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 4 +- + .../dotnet/test/messaging.test/messaging.test.cs | 31 ++++ + .../test/messaging.test/messaging.test.csproj | 4 +- + 36 files changed, 1879 insertions(+), 92 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +index 98531eb..af0b398 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +@@ -32,6 +32,7 @@ namespace CSharpDirect + // Direct receiver example + // + // Receive 10 messages from localhost:5672, amq.direct/key ++ // Messages are assumed to be printable strings. + // + static void Main(string[] args) + { +@@ -52,39 +53,27 @@ namespace CSharpDirect + Console.WriteLine("nMsg : {0}", nMsg); + Console.WriteLine(); + +- Connection conn = new Connection(host); +- +- conn.Open(); +- +- if (!conn.IsOpen()) +- { +- Console.WriteLine("Failed to open connection to host : {0}", host); +- } +- else ++ Connection connection = null; ++ try + { +- +- Session sess = conn.CreateSession(); +- +- Duration dura = new Duration(3600000); // wait forever +- +- Receiver rcv = sess.CreateReceiver(addr); +- +- Message msg = new Message(""); +- +- for (int i = 0; i < nMsg; i++) +- { +- try +- { +- Message msg2 = rcv.Fetch(dura); ++ connection = new Connection(host); ++ connection.Open(); ++ if (!connection.IsOpen()) { ++ Console.WriteLine("Failed to open connection to host : {0}", host); ++ } else { ++ Session session = connection.CreateSession(); ++ Receiver receiver = session.CreateReceiver(addr); ++ Message message = new Message(""); ++ for (int i = 0; i < nMsg; i++) { ++ Message msg2 = receiver.Fetch(DurationConstants.FORVER); + Console.WriteLine("Rcvd msg {0} : {1}", i, msg2.GetContent()); + } +- catch (Exception e) +- { +- Console.WriteLine("Exception {0}.", e); +- } ++ connection.Close(); + } +- +- conn.Close(); ++ } catch (Exception e) { ++ Console.WriteLine("Exception {0}.", e); ++ if (null != connection) ++ connection.Close(); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index 96b4540..172e25a 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {52F880E7-D677-4C91-8516-D679CE0F46A8} + Exe +@@ -67,7 +67,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +index 71ab75c..b287af2 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +@@ -29,6 +29,11 @@ namespace csharp.direct.sender + { + class Program + { ++ // Direct sender example ++ // ++ // Send 10 messages from localhost:5672, amq.direct/key ++ // Messages are assumed to be printable strings. ++ // + static void Main(string[] args) + { + String host = "localhost:5672"; +@@ -48,28 +53,27 @@ namespace csharp.direct.sender + Console.WriteLine("nMsg : {0}", nMsg); + Console.WriteLine(); + +- Connection conn = new Connection(host); +- +- conn.Open(); +- +- if (!conn.IsOpen()) +- { +- Console.WriteLine("Failed to open connection to host : {0}", host); +- } +- else ++ Connection connection = null; ++ try + { +- Session sess = conn.CreateSession(); ++ connection = new Connection(host); ++ connection.Open(); + +- Sender snd = sess.CreateSender(addr); +- +- for (int i = 0; i < nMsg; i++) +- { +- Message msg = new Message(String.Format("Test Message {0}", i)); +- +- snd.Send(msg); ++ if (!connection.IsOpen()) { ++ Console.WriteLine("Failed to open connection to host : {0}", host); ++ } else { ++ Session session = connection.CreateSession(); ++ Sender sender = session.CreateSender(addr); ++ for (int i = 0; i < nMsg; i++) { ++ Message message = new Message(String.Format("Test Message {0}", i)); ++ sender.Send(message); ++ } ++ connection.Close(); + } +- +- conn.Close(); ++ } catch (Exception e) { ++ Console.WriteLine("Exception {0}.", e); ++ if (null != connection) ++ connection.Close(); + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +index 4543222..8e8371c 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} + Exe +@@ -67,7 +67,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs +new file mode 100644 +index 0000000..95433e4 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs +@@ -0,0 +1,36 @@ ++using System.Reflection; ++using System.Runtime.CompilerServices; ++using System.Runtime.InteropServices; ++ ++// General Information about an assembly is controlled through the following ++// set of attributes. Change these attribute values to modify the information ++// associated with an assembly. ++[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyDescription("")] ++[assembly: AssemblyConfiguration("")] ++[assembly: AssemblyCompany("")] ++[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyCopyright("Copyright ? 2010")] ++[assembly: AssemblyTrademark("")] ++[assembly: AssemblyCulture("")] ++ ++// Setting ComVisible to false makes the types in this assembly not visible ++// to COM components. If you need to access a type in this assembly from ++// COM, set the ComVisible attribute to true on that type. ++[assembly: ComVisible(false)] ++ ++// The following GUID is for the ID of the typelib if this project is exposed to COM ++[assembly: Guid("c60b17ab-a82c-4edf-ba95-1e88bd4c3e75")] ++ ++// Version information for an assembly consists of the following four values: ++// ++// Major Version ++// Minor Version ++// Build Number ++// Revision ++// ++// You can specify all the values or you can default the Build and Revision Numbers ++// by using the '*' as shown below: ++// [assembly: AssemblyVersion("1.0.*")] ++[assembly: AssemblyVersion("1.0.0.0")] ++[assembly: AssemblyFileVersion("1.0.0.0")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs +new file mode 100644 +index 0000000..93459b6 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs +@@ -0,0 +1,70 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using Org.Apache.Qpid.Messaging; ++ ++namespace Org.Apache.Qpid.Messaging.Examples { ++ class Client { ++ static void Main(string[] args) { ++ String url = "amqp:tcp:127.0.0.1:5672"; ++ ++ if (args.Length > 0) ++ url = args[0]; ++ ++ Connection connection = new Connection(url); ++ try ++ { ++ connection.Open(); ++ ++ Session session = connection.CreateSession(); ++ ++ Sender sender = session.CreateSender("service_queue"); ++ ++ Address responseQueue = new Address("#response-queue; {create:always, delete:always}"); ++ Receiver receiver = session.CreateReceiver(responseQueue); ++ ++ String[] s = new String[] { ++ "Twas brillig, and the slithy toves", ++ "Did gire and gymble in the wabe.", ++ "All mimsy were the borogroves,", ++ "And the mome raths outgrabe." ++ }; ++ ++ Message request = new Message(""); ++ request.SetReplyTo(responseQueue); ++ ++ for (int i = 0; i < s.Length; i++) { ++ request.SetContent(s[i]); ++ sender.Send(request); ++ Message response = receiver.Fetch(); ++ Console.WriteLine("{0} -> {1}", request.GetContent(), response.GetContent()); ++ } ++ connection.Close(); ++ } ++ catch (Exception e) ++ { ++ Console.WriteLine("Exception {0}.", e); ++ connection.Close(); ++ } ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +new file mode 100644 +index 0000000..76fb1c5 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +@@ -0,0 +1,81 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696} ++ Exe ++ Properties ++ csharp.example.client ++ csharp.example.client ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs +new file mode 100644 +index 0000000..95433e4 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs +@@ -0,0 +1,36 @@ ++using System.Reflection; ++using System.Runtime.CompilerServices; ++using System.Runtime.InteropServices; ++ ++// General Information about an assembly is controlled through the following ++// set of attributes. Change these attribute values to modify the information ++// associated with an assembly. ++[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyDescription("")] ++[assembly: AssemblyConfiguration("")] ++[assembly: AssemblyCompany("")] ++[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyCopyright("Copyright ? 2010")] ++[assembly: AssemblyTrademark("")] ++[assembly: AssemblyCulture("")] ++ ++// Setting ComVisible to false makes the types in this assembly not visible ++// to COM components. If you need to access a type in this assembly from ++// COM, set the ComVisible attribute to true on that type. ++[assembly: ComVisible(false)] ++ ++// The following GUID is for the ID of the typelib if this project is exposed to COM ++[assembly: Guid("c60b17ab-a82c-4edf-ba95-1e88bd4c3e75")] ++ ++// Version information for an assembly consists of the following four values: ++// ++// Major Version ++// Minor Version ++// Build Number ++// Revision ++// ++// You can specify all the values or you can default the Build and Revision Numbers ++// by using the '*' as shown below: ++// [assembly: AssemblyVersion("1.0.*")] ++[assembly: AssemblyVersion("1.0.0.0")] ++[assembly: AssemblyFileVersion("1.0.0.0")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs +new file mode 100644 +index 0000000..7f116f1 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs +@@ -0,0 +1,61 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using System.Collections; ++using System.Collections.Generic; ++using System.Collections.ObjectModel; ++using Org.Apache.Qpid.Messaging; ++ ++namespace Org.Apache.Qpid.Messaging.Examples { ++ class DeclareQueues { ++ // ++ // Sample invocation: csharp.example.declare_queues.exe localhost:5672 my-queue ++ // ++ static void Main(string[] args) { ++ string addr = "localhost:5672"; ++ string queue = "my-queue"; ++ ++ if (args.Length > 0) ++ addr = args[0]; ++ if (args.Length > 1) ++ queue = args[1]; ++ ++ Connection connection = null; ++ try ++ { ++ connection = new Connection(addr); ++ connection.Open(); ++ Session session = connection.CreateSession(); ++ String queueName = queue + "; {create: always}"; ++ Sender sender = session.CreateSender(queueName); ++ session.Close(); ++ connection.Close(); ++ } ++ catch (Exception e) ++ { ++ Console.WriteLine("Exception {0}.", e); ++ if (null != connection) ++ connection.Close(); ++ } ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +new file mode 100644 +index 0000000..fb7e950 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +@@ -0,0 +1,81 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {E31B349C-830C-4583-8BD9-30DA4398349F} ++ Exe ++ Properties ++ csharp.example.declare_queues ++ csharp.example.declare_queues ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs +new file mode 100644 +index 0000000..808e227 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs +@@ -0,0 +1,181 @@ ++/* ++* Licensed to the Apache Software Foundation (ASF) under one ++* or more contributor license agreements. See the NOTICE file ++* distributed with this work for additional information ++* regarding copyright ownership. The ASF licenses this file ++* to you under the Apache License, Version 2.0 (the ++* "License"); you may not use this file except in compliance ++* with the License. You may obtain a copy of the License at ++* ++* http://www.apache.org/licenses/LICENSE-2.0 ++* ++* Unless required by applicable law or agreed to in writing, ++* software distributed under the License is distributed on an ++* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++* KIND, either express or implied. See the License for the ++* specific language governing permissions and limitations ++* under the License. ++*/ ++ ++namespace Org.Apache.Qpid.Messaging.Examples ++{ ++ using System; ++ using System.Collections; ++ using System.Collections.Generic; ++ using System.Diagnostics; ++ using System.IO; ++ using System.Text; ++ using System.Xml; ++ ++ public class Options ++ { ++ private string url; ++ private string address; ++ private UInt64 timeout; ++ private int count; ++ private string id; ++ private string replyTo; ++ //private string[] properties; ++ //private string[] entries; ++ private string content; ++ private string connectionOptions; ++ private bool forever; ++ ++ public Options(string[] args) ++ { ++ this.url = "amqp:tcp:127.0.0.1:5672"; ++ this.address = ""; ++ this.timeout = 0; ++ this.count = 1; ++ this.id = ""; ++ this.replyTo = ""; ++ this.content = ""; ++ this.connectionOptions = ""; ++ this.forever = false; ++ Parse(args); ++ } ++ ++ private void Parse(string[] args) ++ { ++ int argCount = args.Length; ++ int current = 0; ++ ++ while ((current + 1) < argCount) ++ { ++ string arg = args[current]; ++ if (arg == "--broker") ++ { ++ this.url = args[++current]; ++ } ++ else if (arg == "--address") ++ { ++ this.address = args[++current]; ++ } ++ else if (arg == "--timeout") ++ { ++ arg = args[++current]; ++ UInt64 i = UInt64.Parse(arg); ++ if (i >= 0) ++ { ++ this.timeout = i; ++ } ++ } ++ else if (arg == "--count") ++ { ++ arg = args[++current]; ++ int i = int.Parse(arg); ++ if (i >= 0) ++ { ++ this.count = i; ++ } ++ } ++ else if (arg == "--id") ++ { ++ this.id = args[++current]; ++ } ++ else if (arg == "--reply-to") ++ { ++ this.replyTo = args[++current]; ++ } ++ else if (arg == "--properties") ++ { ++ throw new ArgumentException("TODO: properties not implemented"); ++ } ++ else if (arg == "--entries") ++ { ++ throw new ArgumentException("TODO: entries not implemented"); ++ } ++ else if (arg == "--content") ++ { ++ this.content = args[++current]; ++ } ++ else if (arg == "--connection-options") ++ { ++ this.connectionOptions = args[++current]; ++ } ++ else if (arg == "--forever") ++ { ++ this.forever = true; ++ } ++ else ++ { ++ throw new ArgumentException(String.Format("unknown argument \"{0}\"", arg)); ++ } ++ ++ current++; ++ } ++ ++ if (current == argCount) ++ { ++ throw new ArgumentException("missing argument: address"); ++ } ++ ++ address = args[current]; ++ } ++ ++ public string Url ++ { ++ get { return this.url; } ++ } ++ ++ public string Address ++ { ++ get { return this.address; } ++ } ++ ++ public UInt64 Timeout ++ { ++ get { return this.timeout; } ++ } ++ ++ public int Count ++ { ++ get { return this.count; } ++ } ++ ++ public string Id ++ { ++ get { return this.id; } ++ } ++ ++ public string ReplyTo ++ { ++ get { return this.replyTo; } ++ } ++ ++ public string Content ++ { ++ get { return content; } ++ } ++ ++ public string ConnectionOptions ++ { ++ get { return this.connectionOptions; } ++ } ++ ++ public bool Forever ++ { ++ get { return this.forever; } ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs +new file mode 100644 +index 0000000..95433e4 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs +@@ -0,0 +1,36 @@ ++using System.Reflection; ++using System.Runtime.CompilerServices; ++using System.Runtime.InteropServices; ++ ++// General Information about an assembly is controlled through the following ++// set of attributes. Change these attribute values to modify the information ++// associated with an assembly. ++[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyDescription("")] ++[assembly: AssemblyConfiguration("")] ++[assembly: AssemblyCompany("")] ++[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyCopyright("Copyright ? 2010")] ++[assembly: AssemblyTrademark("")] ++[assembly: AssemblyCulture("")] ++ ++// Setting ComVisible to false makes the types in this assembly not visible ++// to COM components. If you need to access a type in this assembly from ++// COM, set the ComVisible attribute to true on that type. ++[assembly: ComVisible(false)] ++ ++// The following GUID is for the ID of the typelib if this project is exposed to COM ++[assembly: Guid("c60b17ab-a82c-4edf-ba95-1e88bd4c3e75")] ++ ++// Version information for an assembly consists of the following four values: ++// ++// Major Version ++// Minor Version ++// Build Number ++// Revision ++// ++// You can specify all the values or you can default the Build and Revision Numbers ++// by using the '*' as shown below: ++// [assembly: AssemblyVersion("1.0.*")] ++[assembly: AssemblyVersion("1.0.0.0")] ++[assembly: AssemblyFileVersion("1.0.0.0")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs +new file mode 100644 +index 0000000..6740e6a +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs +@@ -0,0 +1,85 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using System.Collections; ++using System.Collections.Generic; ++using System.Collections.ObjectModel; ++using Org.Apache.Qpid.Messaging; ++ ++namespace Org.Apache.Qpid.Messaging.Examples { ++ class Drain { ++ // ++ // Sample invocation: csharp.example.drain.exe --broker localhost:5672 --timeout 30 my-queue ++ // ++ static void Main(string[] args) { ++ Options options = new Options(args); ++ ++ Connection connection = null; ++ try ++ { ++ connection = new Connection(options.Url, options.ConnectionOptions); ++ connection.Open(); ++ Session session = connection.CreateSession(); ++ Receiver receiver = session.CreateReceiver(options.Address); ++ Duration timeout = options.Forever ? ++ DurationConstants.FORVER : ++ DurationConstants.SECOND * options.Timeout; ++ Message message = new Message(); ++ while (receiver.Fetch(message, timeout)) ++ { ++ Dictionary properties = new Dictionary(); ++ properties = message.GetProperties(); ++ Console.Write("Message(properties={0}, content='", ++ message.MapAsString(properties)); ++ ++ if ("amqp/map" == message.GetContentType()) ++ { ++ Dictionary content = new Dictionary(); ++ message.GetContent(content); ++ Console.Write(message.MapAsString(content)); ++ } ++ else if ("amqp/list" == message.GetContentType()) ++ { ++ Collection content = new Collection(); ++ message.GetContent(content); ++ Console.Write(message.ListAsString(content)); ++ } ++ else ++ { ++ Console.Write(message.GetContent()); ++ } ++ Console.WriteLine("')"); ++ session.Acknowledge(); ++ } ++ receiver.Close(); ++ session.Close(); ++ connection.Close(); ++ } ++ catch (Exception e) ++ { ++ Console.WriteLine("Exception {0}.", e); ++ if (null != connection) ++ connection.Close(); ++ } ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +new file mode 100644 +index 0000000..198900c +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +@@ -0,0 +1,82 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08} ++ Exe ++ Properties ++ csharp.example.drain ++ csharp.example.drain ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs +new file mode 100644 +index 0000000..95433e4 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs +@@ -0,0 +1,36 @@ ++using System.Reflection; ++using System.Runtime.CompilerServices; ++using System.Runtime.InteropServices; ++ ++// General Information about an assembly is controlled through the following ++// set of attributes. Change these attribute values to modify the information ++// associated with an assembly. ++[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyDescription("")] ++[assembly: AssemblyConfiguration("")] ++[assembly: AssemblyCompany("")] ++[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyCopyright("Copyright ? 2010")] ++[assembly: AssemblyTrademark("")] ++[assembly: AssemblyCulture("")] ++ ++// Setting ComVisible to false makes the types in this assembly not visible ++// to COM components. If you need to access a type in this assembly from ++// COM, set the ComVisible attribute to true on that type. ++[assembly: ComVisible(false)] ++ ++// The following GUID is for the ID of the typelib if this project is exposed to COM ++[assembly: Guid("c60b17ab-a82c-4edf-ba95-1e88bd4c3e75")] ++ ++// Version information for an assembly consists of the following four values: ++// ++// Major Version ++// Minor Version ++// Build Number ++// Revision ++// ++// You can specify all the values or you can default the Build and Revision Numbers ++// by using the '*' as shown below: ++// [assembly: AssemblyVersion("1.0.*")] ++[assembly: AssemblyVersion("1.0.0.0")] ++[assembly: AssemblyFileVersion("1.0.0.0")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs +new file mode 100644 +index 0000000..af01e4b +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs +@@ -0,0 +1,61 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using Org.Apache.Qpid.Messaging; ++ ++namespace Org.Apache.Qpid.Messaging.Examples { ++ class Server { ++ static void Main(string[] args) { ++ String url = "amqp:tcp:127.0.0.1:5672"; ++ ++ if (args.Length > 0) ++ url = args[0]; ++ ++ try { ++ Connection connection = new Connection(url); ++ connection.Open(); ++ Session session = connection.CreateSession(); ++ Receiver receiver = session.CreateReceiver("service_queue; {create: always}"); ++ ++ while (true) { ++ Message request = receiver.Fetch(); ++ Address address = request.GetReplyTo(); ++ ++ if (null != address) { ++ Sender sender = session.CreateSender(address); ++ String s = request.GetContent(); ++ Message response = new Message(s.ToUpper()); ++ sender.Send(response); ++ Console.WriteLine("Processed request: {0} -> {1}", request.GetContent(), response.GetContent()); ++ session.Acknowledge(); ++ } else { ++ Console.WriteLine("Error: no reply address specified for request: {0}", request.GetContent()); ++ session.Reject(request); ++ } ++ } ++ // connection.Close(); // unreachable in this example ++ } catch (Exception e) { ++ Console.WriteLine("Exception {0}.", e); ++ } ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +new file mode 100644 +index 0000000..1fa2cc0 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +@@ -0,0 +1,81 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3} ++ Exe ++ Properties ++ csharp.example.server ++ csharp.example.server ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs +new file mode 100644 +index 0000000..be55c1e +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs +@@ -0,0 +1,189 @@ ++/* ++* Licensed to the Apache Software Foundation (ASF) under one ++* or more contributor license agreements. See the NOTICE file ++* distributed with this work for additional information ++* regarding copyright ownership. The ASF licenses this file ++* to you under the Apache License, Version 2.0 (the ++* "License"); you may not use this file except in compliance ++* with the License. You may obtain a copy of the License at ++* ++* http://www.apache.org/licenses/LICENSE-2.0 ++* ++* Unless required by applicable law or agreed to in writing, ++* software distributed under the License is distributed on an ++* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++* KIND, either express or implied. See the License for the ++* specific language governing permissions and limitations ++* under the License. ++*/ ++ ++namespace Org.Apache.Qpid.Messaging.Examples ++{ ++ using System; ++ using System.Collections; ++ using System.Collections.Generic; ++ using System.Collections.ObjectModel; ++ using System.Diagnostics; ++ using System.IO; ++ using System.Text; ++ using System.Xml; ++ ++ public class Options ++ { ++ private string url; ++ private string address; ++ private int timeout; ++ private int count; ++ private string id; ++ private string replyTo; ++ private Collection properties; ++ private Collection entries; ++ private string content; ++ private string connectionOptions; ++ private bool forever; ++ ++ public Options(string[] args) ++ { ++ this.url = "amqp:tcp:127.0.0.1:5672"; ++ this.address = ""; ++ this.timeout = 0; ++ this.count = 1; ++ this.id = ""; ++ this.replyTo = ""; ++ properties = new Collection(); ++ entries = new Collection(); ++ this.content = ""; ++ this.connectionOptions = ""; ++ this.forever = false; ++ Parse(args); ++ } ++ ++ private void Parse(string[] args) ++ { ++ int argCount = args.Length; ++ int current = 0; ++ ++ while ((current + 1) < argCount) ++ { ++ string arg = args[current]; ++ if (arg == "--broker") ++ { ++ this.url = args[++current]; ++ } ++ else if (arg == "--address") ++ { ++ this.address = args[++current]; ++ } ++ else if (arg == "--timeout") ++ { ++ arg = args[++current]; ++ int i = int.Parse(arg); ++ if (i >= 0) ++ { ++ this.timeout = i; ++ } ++ } ++ else if (arg == "--count") ++ { ++ arg = args[++current]; ++ int i = int.Parse(arg); ++ if (i >= 0) ++ { ++ this.count = i; ++ } ++ } ++ else if (arg == "--id") ++ { ++ this.id = args[++current]; ++ } ++ else if (arg == "--reply-to") ++ { ++ this.replyTo = args[++current]; ++ } ++ else if (arg == "--properties") ++ { ++ this.properties.Add(args[++current]); ++ } ++ else if (arg == "--map") ++ { ++ this.entries.Add(args[++current]); ++ } ++ else if (arg == "--content") ++ { ++ this.content = args[++current]; ++ } ++ else if (arg == "--connection-options") ++ { ++ this.connectionOptions = args[++current]; ++ } ++ else if (arg == "--forever") ++ { ++ this.forever = true; ++ } ++ else ++ { ++ throw new ArgumentException(String.Format("unknown argument \"{0}\"", arg)); ++ } ++ ++ current++; ++ } ++ ++ if (current == argCount) ++ { ++ throw new ArgumentException("missing argument: address"); ++ } ++ ++ address = args[current]; ++ } ++ ++ public string Url ++ { ++ get { return this.url; } ++ } ++ ++ public string Address ++ { ++ get { return this.address; } ++ } ++ ++ public int Timeout ++ { ++ get { return this.timeout; } ++ } ++ ++ public int Count ++ { ++ get { return this.count; } ++ } ++ ++ public string Id ++ { ++ get { return this.id; } ++ } ++ ++ public string ReplyTo ++ { ++ get { return this.replyTo; } ++ } ++ ++ public Collection Entries ++ { ++ get { return this.entries; } ++ } ++ ++ public string Content ++ { ++ get { return content; } ++ } ++ ++ public string ConnectionOptions ++ { ++ get { return this.connectionOptions; } ++ } ++ ++ public bool Forever ++ { ++ get { return this.forever; } ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs +new file mode 100644 +index 0000000..95433e4 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs +@@ -0,0 +1,36 @@ ++using System.Reflection; ++using System.Runtime.CompilerServices; ++using System.Runtime.InteropServices; ++ ++// General Information about an assembly is controlled through the following ++// set of attributes. Change these attribute values to modify the information ++// associated with an assembly. ++[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyDescription("")] ++[assembly: AssemblyConfiguration("")] ++[assembly: AssemblyCompany("")] ++[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyCopyright("Copyright ? 2010")] ++[assembly: AssemblyTrademark("")] ++[assembly: AssemblyCulture("")] ++ ++// Setting ComVisible to false makes the types in this assembly not visible ++// to COM components. If you need to access a type in this assembly from ++// COM, set the ComVisible attribute to true on that type. ++[assembly: ComVisible(false)] ++ ++// The following GUID is for the ID of the typelib if this project is exposed to COM ++[assembly: Guid("c60b17ab-a82c-4edf-ba95-1e88bd4c3e75")] ++ ++// Version information for an assembly consists of the following four values: ++// ++// Major Version ++// Minor Version ++// Build Number ++// Revision ++// ++// You can specify all the values or you can default the Build and Revision Numbers ++// by using the '*' as shown below: ++// [assembly: AssemblyVersion("1.0.*")] ++[assembly: AssemblyVersion("1.0.0.0")] ++[assembly: AssemblyFileVersion("1.0.0.0")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs +new file mode 100644 +index 0000000..7eeece3 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs +@@ -0,0 +1,117 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using System.Diagnostics; ++using System.Collections; ++using System.Collections.Generic; ++using System.Collections.ObjectModel; ++using Org.Apache.Qpid.Messaging; ++ ++namespace Org.Apache.Qpid.Messaging.Examples { ++ class Spout { ++ // ++ // Sample invocation: csharp.example.drain.exe --broker localhost:5672 --timeout 30 my-queue ++ // This pro ++ static bool NameVal(string In, out string nameOut, out string valueOut) ++ { ++ int pos = In.IndexOf("="); ++ if (-1 == pos) { ++ nameOut = In; ++ valueOut = ""; ++ return false; ++ } else { ++ nameOut = In.Substring(0, pos); ++ if (pos + 1 < In.Length) { ++ valueOut = In.Substring(pos + 1); ++ return true; ++ } else { ++ valueOut = ""; ++ return false; ++ } ++ } ++ } ++ ++ static void SetEntries(Collection entries, Dictionary content) ++ { ++ foreach (String entry in entries) ++ { ++ string name = ""; ++ string value = ""; ++ if (NameVal(entry, out name, out value)) ++ content.Add(name, value); ++ else ++ content.Add(name, ""); ++ } ++ } ++ ++ static void Main(string[] args) { ++ Options options = new Options(args); ++ ++ Connection connection = null; ++ try ++ { ++ connection = new Connection(options.Url); ++ connection.Open(); ++ Session session = connection.CreateSession(); ++ Sender sender = session.CreateSender(options.Address); ++ Message message; ++ if (options.Entries.Count > 0) ++ { ++ Dictionary content = new Dictionary(); ++ SetEntries(options.Entries, content); ++ message = new Message(content); ++ } ++ else ++ { ++ message = new Message(options.Content); ++ message.SetContentType("text/plain"); ++ } ++ Address replyToAddr = new Address(options.ReplyTo); ++ ++ Stopwatch stopwatch = new Stopwatch(); ++ TimeSpan timespan = new TimeSpan(0,0,options.Timeout); ++ stopwatch.Start(); ++ for (int count = 0; ++ (0 == options.Count || count < options.Count) && ++ (0 == options.Timeout || stopwatch.Elapsed <= timespan); ++ count++) ++ { ++ if ("" != options.ReplyTo) message.SetReplyTo(replyToAddr); ++ string id = options.Id ; ++ if ("" == id) { ++ Guid g = Guid.NewGuid(); ++ id = g.ToString(); ++ } ++ string spoutid = id + ":" + count; ++ message.SetProperty("spout-id", spoutid); ++ sender.Send(message); ++ } ++ connection.Close(); ++ } catch (Exception e) { ++ Console.WriteLine("Exception {0}.", e); ++ if (null != connection) ++ connection.Close(); ++ } ++ } ++ } ++} ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +new file mode 100644 +index 0000000..15fc644 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +@@ -0,0 +1,82 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137} ++ Exe ++ Properties ++ csharp.example.spout ++ csharp.example.spout ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +index 24b5cd4..c32574a 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {68A43817-2358-4A31-8FDF-FE21722BFBCF} + Exe +@@ -67,7 +67,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +index 761ac0a..2b17052 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +@@ -100,20 +100,55 @@ namespace Org.Apache.Qpid.Messaging.Examples + Dictionary subMap = new Dictionary(); + Collection colors = new Collection(); + ++ // add simple types + content["id"] = 987654321; + content["name"] = "Widget"; + content["percent"] = 0.99; + ++ // add nested amqp/map + subMap["name"] = "Smith"; + subMap["number"] = 354; ++ content["nestedMap"] = subMap; + +- content["nested"] = subMap; +- ++ // add an amqp/list + colors.Add("red"); + colors.Add("green"); + colors.Add("white"); ++ content["colorsList"] = colors; ++ ++ // add one of each supported amqp data type ++ bool mybool = true; ++ content["mybool"] = mybool; ++ ++ byte mybyte = 4; ++ content["mybyte"] = mybyte; ++ ++ UInt16 myUInt16 = 5; ++ content["myUInt16"] = myUInt16; ++ ++ UInt32 myUInt32 = 6; ++ content["myUInt32"] = myUInt32; ++ ++ UInt64 myUInt64 = 7; ++ content["myUInt64"] = myUInt64; ++ ++ char mychar = 'h'; ++ content["mychar"] = mychar; ++ ++ Int16 myInt16 = 9; ++ content["myInt16"] = myInt16; ++ ++ Int32 myInt32 = 10; ++ content["myInt32"] = myInt32; ++ ++ Int64 myInt64 = 11; ++ content["myInt64"] = myInt64; ++ ++ Single mySingle = (Single)12.12; ++ content["mySingle"] = mySingle; + +- content["colors"] = colors; ++ Double myDouble = 13.13; ++ content["myDouble"] = myDouble; + + // + // Construct a message with the map content and send it synchronously +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +index 26f2c5b..1f37ce8 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A} + Exe +@@ -69,7 +69,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +index 06017fb..c3d87ee 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} + Exe +@@ -67,7 +67,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs +index 41ed9f3..242944b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs +@@ -27,6 +27,11 @@ namespace Org.Apache.Qpid.Messaging.examples + { + class MapReceiver + { ++ // csharp.map.receiver example ++ // ++ // Send an amqp/map message to amqp:tcp:localhost:5672 amq.direct/map_example ++ // The map message ++ // + static void Main(string[] args) + { + string url = "amqp:tcp:localhost:5672"; +@@ -47,16 +52,16 @@ namespace Org.Apache.Qpid.Messaging.examples + Receiver receiver = session.CreateReceiver("amq.direct/map_example"); + + // +- // Fetch the message from the broker (wait indefinitely by default) ++ // Fetch the message from the broker + // +- Message message = receiver.Fetch(new Duration(60000)); ++ Message message = receiver.Fetch(DurationConstants.MINUTE); + + // + // Extract the structured content from the message. + // + Dictionary content = new Dictionary(); + message.GetContent(content); +- Console.WriteLine("Received: {0}", content); ++ Console.WriteLine("Received: {0}", message.AsString(content)); + + // + // Acknowledge the receipt of all received messages. +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +index d1ccc65..5517226 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +@@ -30,6 +30,12 @@ namespace Org.Apache.Qpid.Messaging.examples + { + class MapSender + { ++ // csharp.map.sender example ++ // ++ // Send an amqp/map message to amqp:tcp:localhost:5672 amq.direct/map_example ++ // The map message contains simple types, a nested amqp/map, ++ // an ampq/list, and specific instances of each supported type. ++ // + static void Main(string[] args) + { + string url = "amqp:tcp:localhost:5672"; +@@ -57,20 +63,55 @@ namespace Org.Apache.Qpid.Messaging.examples + Dictionary subMap = new Dictionary(); + Collection colors = new Collection(); + ++ // add simple types + content["id"] = 987654321; + content["name"] = "Widget"; + content["percent"] = 0.99; + ++ // add nested amqp/map + subMap["name"] = "Smith"; + subMap["number"] = 354; ++ content["nestedMap"] = subMap; + +- content["nested"] = subMap; +- ++ // add an amqp/list + colors.Add("red"); + colors.Add("green"); + colors.Add("white"); ++ content["colorsList"] = colors; ++ ++ // add one of each supported amqp data type ++ bool mybool = true; ++ content["mybool"] = mybool; ++ ++ byte mybyte = 4; ++ content["mybyte"] = mybyte; ++ ++ UInt16 myUInt16 = 5 ; ++ content["myUInt16"] = myUInt16; ++ ++ UInt32 myUInt32 = 6; ++ content["myUInt32"] = myUInt32; ++ ++ UInt64 myUInt64 = 7; ++ content["myUInt64"] = myUInt64; ++ ++ char mychar = 'h'; ++ content["mychar"] = mychar; ++ ++ Int16 myInt16 = 9; ++ content["myInt16"] = myInt16; ++ ++ Int32 myInt32 = 10; ++ content["myInt32"] = myInt32; ++ ++ Int64 myInt64 = 11; ++ content["myInt64"] = myInt64; ++ ++ Single mySingle = (Single)12.12; ++ content["mySingle"] = mySingle; + +- content["colors"] = colors; ++ Double myDouble = 13.13; ++ content["myDouble"] = myDouble; + + // + // Construct a message with the map content and send it synchronously +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +index a3a2ac2..516e7cc 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10} + Exe +@@ -67,7 +67,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +index 5cd4b1a..7269dad 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +@@ -1,6 +1,6 @@ + Microsoft Visual Studio Solution File, Format Version 10.00 + # Visual Studio 2008 +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "org.apache.qpid.messaging", "src\org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}" ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org.Apache.Qpid.Messaging", "src\org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}" + EndProject + Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{34C477FB-B0CC-4AB9-A346-EA7B055469AC}" + EndProject +@@ -43,6 +43,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.callback.receive + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.callback.sender", "examples\csharp.map.callback.sender\csharp.map.callback.sender.csproj", "{12F1C14F-5C7D-4075-9BAE-C091394FF99A}" + EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client-Server", "Client-Server", "{9232212E-F3C6-4D18-8D25-0C31DD5FF3DB}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.client", "examples\csharp.example.client\csharp.example.client.csproj", "{0DE01712-C2D1-4CA4-B42C-5856456A8696}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.server", "examples\csharp.example.server\csharp.example.server.csproj", "{090A081D-E8B5-4949-AA43-EE182B7101E3}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Drain-Spout", "Drain-Spout", "{89CE04CB-21DE-4ABB-9236-50529DD8C022}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.drain", "examples\csharp.example.drain\csharp.example.drain.csproj", "{C43DEB69-8088-420B-B0CA-C699535E6D08}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.spout", "examples\csharp.example.spout\csharp.example.spout.csproj", "{EB36626D-36C2-41B3-B65E-762BAF27F137}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.declare_queues", "examples\csharp.example.declare_queues\csharp.example.declare_queues.csproj", "{E31B349C-830C-4583-8BD9-30DA4398349F}" ++EndProject + Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU +@@ -180,6 +194,76 @@ Global + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Win32.ActiveCfg = Release|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.ActiveCfg = Release|x86 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.Build.0 = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Win32.ActiveCfg = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.ActiveCfg = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.Build.0 = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Any CPU.Build.0 = Release|Any CPU ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Mixed Platforms.ActiveCfg = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Mixed Platforms.Build.0 = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Win32.ActiveCfg = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.ActiveCfg = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.Build.0 = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Win32.ActiveCfg = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.ActiveCfg = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.Build.0 = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Any CPU.Build.0 = Release|Any CPU ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Mixed Platforms.ActiveCfg = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Mixed Platforms.Build.0 = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Win32.ActiveCfg = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.ActiveCfg = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.Build.0 = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Win32.ActiveCfg = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.ActiveCfg = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.Build.0 = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Any CPU.Build.0 = Release|Any CPU ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Mixed Platforms.ActiveCfg = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Mixed Platforms.Build.0 = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Win32.ActiveCfg = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.ActiveCfg = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.Build.0 = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Win32.ActiveCfg = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.ActiveCfg = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.Build.0 = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Any CPU.Build.0 = Release|Any CPU ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Mixed Platforms.ActiveCfg = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Mixed Platforms.Build.0 = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Win32.ActiveCfg = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.ActiveCfg = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.Build.0 = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Win32.ActiveCfg = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.ActiveCfg = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.Build.0 = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Any CPU.Build.0 = Release|Any CPU ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Mixed Platforms.ActiveCfg = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Mixed Platforms.Build.0 = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Win32.ActiveCfg = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.ActiveCfg = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE +@@ -188,6 +272,8 @@ Global + {DE58D329-10DC-4C8D-9EFA-230A57314089} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} + {878FDDF8-A870-41D6-9E36-0A050EC5ACAB} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} + {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {89CE04CB-21DE-4ABB-9236-50529DD8C022} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} = {DE58D329-10DC-4C8D-9EFA-230A57314089} + {52F880E7-D677-4C91-8516-D679CE0F46A8} = {DE58D329-10DC-4C8D-9EFA-230A57314089} + {AF2FBC78-266C-430C-BC29-9477AB596A36} = {39E9D1BF-3A0B-4D86-BF6B-F463E1A2245A} +@@ -195,5 +281,10 @@ Global + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} + {68A43817-2358-4A31-8FDF-FE21722BFBCF} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} + {12F1C14F-5C7D-4075-9BAE-C091394FF99A} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} ++ {090A081D-E8B5-4949-AA43-EE182B7101E3} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} ++ {C43DEB69-8088-420B-B0CA-C699535E6D08} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} ++ {EB36626D-36C2-41B3-B65E-762BAF27F137} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} ++ {E31B349C-830C-4583-8BD9-30DA4398349F} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} + EndGlobalSection + EndGlobal +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index 3f748f1..743afce 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "qpid/messaging/Message.h" + #include "qpid/types/Variant.h" +@@ -100,6 +101,25 @@ namespace Messaging { + } + } + ++ ++ // Create from bytes ++ Message::Message(array ^ bytes) ++ { ++ pin_ptr pBytes = &bytes[0]; ++ messagep = new ::qpid::messaging::Message((char *)pBytes, bytes->Length); ++ } ++ ++ // Create from byte array slice ++ Message::Message(array ^ bytes, int offset, int size) ++ { ++ if ((offset + size) > bytes->Length) ++ throw gcnew QpidException("Message::Message Create from byte array slice: buffer length exceeded"); ++ ++ pin_ptr pBytes = &bytes[offset]; ++ messagep = new ::qpid::messaging::Message((char *)pBytes, size); ++ } ++ ++ + // Create from received message + Message::Message(::qpid::messaging::Message * msgp) : + messagep(msgp) +@@ -278,7 +298,7 @@ namespace Messaging { + messagep->setRedelivered(redelivered); + } + +- ++ // Properties + System::Collections::Generic::Dictionary< + System::String^, System::Object^> ^ Message::GetProperties() + { +@@ -297,7 +317,29 @@ namespace Messaging { + } + + +- void Message::SetContent(System::String ^ content) ++ void Message::SetProperty(System::String ^ name, System::Object ^ value) ++ { ++ ::qpid::types::Variant entryValue; ++ TypeTranslator::ManagedToNativeObject(value, entryValue); ++ ++ messagep->getProperties()[QpidMarshal::ToNative(name)] = entryValue; ++ } ++ ++ ++ void Message::SetProperties(System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ properties) ++ { ++ for each (System::Collections::Generic::KeyValuePair ++ kvp in properties) ++ { ++ SetProperty(kvp.Key, kvp.Value); ++ } ++ } ++ ++ ++ ++ // Content ++ void Message::SetContent(System::String ^ content) + { + messagep->setContent(QpidMarshal::ToNative(content)); + } +@@ -342,8 +384,9 @@ namespace Messaging { + } + + // +- // User wants content as bytes. +- // result array must be correct size already ++ // Return message content to raw byte array. ++ // On entry message size must not be zero and ++ // caller's byte array must be equal to message size. + // + void Message::GetRaw(array ^ arr) + { +@@ -353,16 +396,11 @@ namespace Messaging { + throw gcnew QpidException("Message::GetRaw - message size is zero"); + + if (arr->Length != size) +- throw gcnew QpidException("Message::GetRaw - receive buffer is too small"); ++ throw gcnew QpidException("Message::GetRaw - receive buffer is wrong size"); + +- const char * ptr = messagep->getContentPtr(); +- +- // TODO: System::Runtime::InteropServices::Marshal::Copy(ptr, arr, 0, size); +- +- for (UInt32 i = 0; i < size; i++) +- { +- arr[i] = ptr[i]; +- } ++ const char * pMsgSrc = messagep->getContentPtr(); ++ pin_ptr pArr = &arr[0]; ++ memcpy(pArr, pMsgSrc, size); + } + + +@@ -370,4 +408,86 @@ namespace Messaging { + { + return messagep->getContentSize(); + } ++ ++ ++ System::String ^ Message::MapAsString(System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ dict) ++ { ++ System::String ^ leading = ""; ++ System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("{"); ++ ++ for each (System::Collections::Generic::KeyValuePair ++ kvp in dict) ++ { ++ sb->Append(leading); ++ leading = ", "; ++ ++ if (QpidTypeCheck::ObjectIsMap(kvp.Value)) ++ { ++ sb->AppendFormat( ++ "{0}={1}", ++ kvp.Key, ++ MapAsString((System::Collections::Generic::Dictionary ^)kvp.Value)); ++ } ++ else if (QpidTypeCheck::ObjectIsList(kvp.Value)) ++ { ++ sb->AppendFormat( ++ "{0}={1}", ++ kvp.Key, ++ ListAsString((System::Collections::ObjectModel::Collection< ++ System::Object^> ^)kvp.Value)); ++ } ++ else ++ sb->AppendFormat("{0}={1}", kvp.Key, kvp.Value); ++ } ++ sb->Append("}"); ++ ++ System::String ^ result = gcnew System::String(sb->ToString()); ++ return result; ++ } ++ ++ /// ++ /// A function to display a ampq/list message packaged as a List. ++ /// ++ /// The AMQP list ++ System::String ^ Message::ListAsString(System::Collections::ObjectModel::Collection ^ list) ++ { ++ System::String ^ leading = ""; ++ System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("["); ++ ++ for each (System::Object ^ obj in list) ++ { ++ sb->Append(leading); ++ leading = ", "; ++ ++ if (QpidTypeCheck::ObjectIsMap(obj)) ++ { ++ sb->Append(MapAsString((System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^)obj)); ++ } ++ else if (QpidTypeCheck::ObjectIsList(obj)) ++ { ++ sb->Append(ListAsString((System::Collections::ObjectModel::Collection< ++ System::Object^> ^)obj)); ++ } ++ else ++ sb->Append(obj->ToString()); ++ } ++ sb->Append("]"); ++ ++ System::String ^ result = gcnew System::String(sb->ToString()); ++ return result; ++ } ++ ++ System::String ^ Message::AsString(System::Object ^ obj) ++ { ++ if (QpidTypeCheck::ObjectIsMap(obj)) ++ return MapAsString((System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^)obj); ++ else if (QpidTypeCheck::ObjectIsList(obj)) ++ return ListAsString((System::Collections::ObjectModel::Collection< ++ System::Object^> ^)obj); ++ else ++ return obj->ToString(); ++ } + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.h b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +index 0a932a9..99d0b86 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +@@ -58,8 +58,11 @@ namespace Messaging { + // Create from object + Message(System::Object ^ theValue); + +- // TODO: Create from bytes +- // Message(System::Byte [] ^ bytes); ++ // Create from byte array ++ Message(array ^ bytes); ++ ++ // Create from byte array slice ++ Message(array ^ bytes, int offset, int size); + + // Create from received message + Message(::qpid::messaging::Message * msgp); +@@ -108,6 +111,11 @@ namespace Messaging { + System::Collections::Generic::Dictionary< + System::String^, System::Object^> ^ GetProperties(); + ++ void SetProperty(System::String ^ name, System::Object ^ value); ++ ++ void SetProperties(System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ properties); ++ + void SetContent(System::String ^ content); + + //TODO:: void setContent(Bytes{} bytes, offset, length); +@@ -129,6 +137,16 @@ namespace Messaging { + + System::UInt64 GetContentSize(); + ++ // A message has been returned to managed code through GetContent(). ++ // Display the content of that System::Object as a string. ++ System::String ^ AsString(System::Object ^ obj); ++ ++ System::String ^ MapAsString(System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ dict); ++ ++ System::String ^ ListAsString(System::Collections::ObjectModel::Collection< ++ System::Object^> ^ list); ++ + //TODO: EncodingException + + // Note: encode/decode functions are in TypeTranslator +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index c8d85b0..04fbb61 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -27,6 +27,7 @@ + #include "qpid/messaging/exceptions.h" + + #include "QpidMarshal.h" ++#include "Address.h" + #include "Session.h" + #include "Connection.h" + #include "Duration.h" +@@ -207,6 +208,54 @@ namespace Messaging { + Sender ^ Session::CreateSender (System::String ^ address) + { + System::Exception ^ newException = nullptr; ++ ::qpid::messaging::Sender * senderp = NULL; ++ Sender ^ newSender = nullptr; ++ ++ try ++ { ++ // allocate a native sender ++ ::qpid::messaging::Sender * senderp = new ::qpid::messaging::Sender ; ++ ++ // create the sender ++ *senderp = sessionp->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address)); ++ ++ // create a managed sender ++ newSender = gcnew Sender(senderp, this); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ finally ++ { ++ if (newException != nullptr) ++ { ++ if (newSender != nullptr) ++ { ++ delete newSender; ++ } ++ else ++ { ++ if (senderp != NULL) ++ { ++ delete senderp; ++ } ++ } ++ } ++ } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ ++ return newSender; ++ } ++ ++ ++ Sender ^ Session::CreateSender (Address ^ address) ++ { ++ System::Exception ^ newException = nullptr; + ::qpid::messaging::Sender * senderp = NULL; + Sender ^ newSender = nullptr; + +@@ -216,7 +265,7 @@ namespace Messaging { + ::qpid::messaging::Sender * senderp = new ::qpid::messaging::Sender ; + + // create the sender +- *senderp = sessionp->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address)); ++ *senderp = sessionp->::qpid::messaging::Session::createSender(*(address->NativeAddress)); + + // create a managed sender + newSender = gcnew Sender(senderp, this); +@@ -251,7 +300,8 @@ namespace Messaging { + return newSender; + } + +- Receiver ^ Session::CreateReceiver(System::String ^ address) ++ ++ Receiver ^ Session::CreateReceiver(System::String ^ address) + { + System::Exception ^ newException = nullptr; + ::qpid::messaging::Receiver * receiverp = NULL; +@@ -299,6 +349,54 @@ namespace Messaging { + } + + ++ Receiver ^ Session::CreateReceiver(Address ^ address) ++ { ++ System::Exception ^ newException = nullptr; ++ ::qpid::messaging::Receiver * receiverp = NULL; ++ Receiver ^ newReceiver = nullptr; ++ ++ try ++ { ++ // allocate a native receiver ++ receiverp = new ::qpid::messaging::Receiver; ++ ++ // create the receiver ++ *receiverp = sessionp->createReceiver(*(address->NativeAddress)); ++ ++ // create a managed receiver ++ newReceiver = gcnew Receiver(receiverp, this); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ finally ++ { ++ if (newException != nullptr) ++ { ++ if (newReceiver != nullptr) ++ { ++ delete newReceiver; ++ } ++ else ++ { ++ if (receiverp != NULL) ++ { ++ delete receiverp; ++ } ++ } ++ } ++ } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ ++ return newReceiver; ++ } ++ ++ + Receiver ^ Session::CreateReceiver() + { + System::Exception ^ newException = nullptr; +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index babb99d..4b84eec 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -45,6 +45,7 @@ namespace Messaging { + /// Session is a managed wrapper for a ::qpid::messaging::Session + /// + ++ ref class Address; + ref class Connection; + ref class Duration; + ref class Receiver; +@@ -99,8 +100,11 @@ namespace Messaging { + Receiver ^ NextReceiver(Duration ^ timeout); + + +- Sender ^ CreateSender (System::String ^ address); ++ Sender ^ CreateSender(System::String ^ address); ++ Sender ^ CreateSender(Address ^ address); ++ + Receiver ^ CreateReceiver(System::String ^ address); ++ Receiver ^ CreateReceiver(Address ^ address); + Receiver ^ CreateReceiver(); + + Sender ^ GetSender(System::String ^ name); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj +index 04ddc17..8e324a4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05} + Library +@@ -67,7 +67,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +index 923952b..5763077 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +@@ -83,6 +83,37 @@ namespace Org.Apache.Qpid.Messaging + Console.WriteLine("Got raw array size {0}", m2Size); + for (UInt64 i = 0; i < m2Size; i++) + Console.Write("{0} ", myRaw[i].ToString()); ++ Console.WriteLine(); ++ ++ // ++ // Raw message creation ++ // ++ byte[] rawData = new byte[10]; ++ for (byte i=0; i<10; i++) ++ rawData[i] = i; ++ Message m3 = new Message(rawData); ++ ++ byte[] rawDataReadback = new byte[m3.GetContentSize()]; ++ m3.GetRaw(rawDataReadback); ++ for (UInt64 i = 0; i < m3.GetContentSize(); i++) ++ Console.Write("{0} ", rawDataReadback[i].ToString()); ++ Console.WriteLine(); ++ ++ // ++ // Raw message from array slice ++ // ++ byte[] rawData4 = new byte[256]; ++ for (int i = 0; i <= 255; i++) ++ rawData4[i] = (byte)i; ++ ++ Message m4 = new Message(rawData4, 246, 10); ++ ++ byte[] rawDataReadback4 = new byte[m4.GetContentSize()]; ++ m4.GetRaw(rawDataReadback4); ++ for (UInt64 i = 0; i < m4.GetContentSize(); i++) ++ Console.Write("{0} ", rawDataReadback4[i].ToString()); ++ Console.WriteLine(); ++ + } + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +index 5dddc59..e4f1175 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +@@ -3,7 +3,7 @@ + + Debug + AnyCPU +- 9.0.30729 ++ 9.0.21022 + 2.0 + {AF2FBC78-266C-430C-BC29-9477AB596A36} + Exe +@@ -67,7 +67,7 @@ + + + {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- org.apache.qpid.messaging ++ Org.Apache.Qpid.Messaging + + + +-- +1.5.5.6 + +From 7ae72bd17b22f6107f6f3e69779a7918fddfd1e3 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 24 Jun 2010 12:40:11 +0000 +Subject: [PATCH] QPID-2589 - Patch from Chuck Rolke + Visual Basic example added, UUID support added, C# Hello World example added. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957531 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../Properties/AssemblyInfo.cs | 36 ++++++ + .../csharp.example.helloworld.cs | 55 ++++++++ + .../csharp.example.helloworld.csproj | 81 ++++++++++++ + .../csharp.map.callback.sender.cs | 3 + + .../csharp.map.sender/csharp.map.sender.cs | 3 + + .../MyProject/Application.Designer.vb | 13 ++ + .../MyProject/Application.myapp | 10 ++ + .../MyProject/AssemblyInfo.vb | 35 +++++ + .../MyProject/Resources.Designer.vb | 63 +++++++++ + .../MyProject/Resources.resx | 117 +++++++++++++++++ + .../MyProject/Settings.Designer.vb | 73 +++++++++++ + .../MyProject/Settings.settings | 7 + + .../visualbasic.example.client.vb | 69 ++++++++++ + .../visualbasic.example.client.vbproj | 134 ++++++++++++++++++++ + .../qpid/dotnet/org.apache.qpid.messaging.sln | 37 ++++++ + .../bindings/qpid/dotnet/src/TypeTranslator.cpp | 30 +++++- + .../dotnet/test/messaging.test/messaging.test.cs | 14 ++ + 17 files changed, 779 insertions(+), 1 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.cs + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.Designer.vb + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.myapp + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.Designer.vb + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.settings + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs +new file mode 100644 +index 0000000..2b96ce9 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs +@@ -0,0 +1,36 @@ ++using System.Reflection; ++using System.Runtime.CompilerServices; ++using System.Runtime.InteropServices; ++ ++// General Information about an assembly is controlled through the following ++// set of attributes. Change these attribute values to modify the information ++// associated with an assembly. ++[assembly: AssemblyTitle("csharp.direct.sender")] ++[assembly: AssemblyDescription("")] ++[assembly: AssemblyConfiguration("")] ++[assembly: AssemblyCompany("")] ++[assembly: AssemblyProduct("csharp.direct.sender")] ++[assembly: AssemblyCopyright("Copyright ? 2010")] ++[assembly: AssemblyTrademark("")] ++[assembly: AssemblyCulture("")] ++ ++// Setting ComVisible to false makes the types in this assembly not visible ++// to COM components. If you need to access a type in this assembly from ++// COM, set the ComVisible attribute to true on that type. ++[assembly: ComVisible(false)] ++ ++// The following GUID is for the ID of the typelib if this project is exposed to COM ++[assembly: Guid("19ce67e4-db90-4480-88c4-3721f47634c7")] ++ ++// Version information for an assembly consists of the following four values: ++// ++// Major Version ++// Minor Version ++// Build Number ++// Revision ++// ++// You can specify all the values or you can default the Build and Revision Numbers ++// by using the '*' as shown below: ++// [assembly: AssemblyVersion("1.0.*")] ++[assembly: AssemblyVersion("1.0.0.0")] ++[assembly: AssemblyFileVersion("1.0.0.0")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.cs +new file mode 100644 +index 0000000..336970a +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.cs +@@ -0,0 +1,55 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++using System; ++using Org.Apache.Qpid.Messaging; ++ ++namespace Org.Apache.Qpid.Messaging { ++ class Program { ++ static void Main(string[] args) { ++ String broker = args.Length > 0 ? args[0] : "localhost:5672"; ++ String address = args.Length > 1 ? args[1] : "amq.topic"; ++ ++ Connection connection = null; ++ try { ++ connection = new Connection(broker); ++ connection.Open(); ++ Session session = connection.CreateSession(); ++ ++ Receiver receiver = session.CreateReceiver(address); ++ Sender sender = session.CreateSender(address); ++ ++ sender.Send(new Message("Hello world!")); ++ ++ Message message = new Message(); ++ message = receiver.Fetch(DurationConstants.SECOND * 1); ++ Console.WriteLine("{0}", message.GetContent()); ++ session.Acknowledge(); ++ ++ connection.Close(); ++ } catch (Exception e) { ++ Console.WriteLine("Exception {0}.", e); ++ if (null != connection) ++ connection.Close(); ++ } ++ } ++ } ++} +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +new file mode 100644 +index 0000000..3038ed6 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +@@ -0,0 +1,81 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D} ++ Exe ++ Properties ++ csharp.example.helloworld ++ csharp.example.helloworld ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ ..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +index 2b17052..c987ad9 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +@@ -150,6 +150,9 @@ namespace Org.Apache.Qpid.Messaging.Examples + Double myDouble = 13.13; + content["myDouble"] = myDouble; + ++ Guid myGuid = new Guid("000102030405060708090a0b0c0d0e0f"); ++ content["myGuid"] = myGuid; ++ + // + // Construct a message with the map content and send it synchronously + // via the sender. +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +index 5517226..0763b74 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +@@ -113,6 +113,9 @@ namespace Org.Apache.Qpid.Messaging.examples + Double myDouble = 13.13; + content["myDouble"] = myDouble; + ++ Guid myGuid = new Guid("000102030405060708090a0b0c0d0e0f"); ++ content["myGuid"] = myGuid; ++ + // + // Construct a message with the map content and send it synchronously + // via the sender. +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.Designer.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.Designer.vb +new file mode 100644 +index 0000000..0c27414 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.Designer.vb +@@ -0,0 +1,13 @@ ++'------------------------------------------------------------------------------ ++' ++' This code was generated by a tool. ++' Runtime Version:2.0.50727.4927 ++' ++' Changes to this file may cause incorrect behavior and will be lost if ++' the code is regenerated. ++' ++'------------------------------------------------------------------------------ ++ ++Option Strict On ++Option Explicit On ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.myapp b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.myapp +new file mode 100644 +index 0000000..44772fe +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Application.myapp +@@ -0,0 +1,10 @@ ++ ++ ++ false ++ false ++ 0 ++ true ++ 0 ++ 2 ++ true ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb +new file mode 100644 +index 0000000..100283c +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb +@@ -0,0 +1,35 @@ ++Imports System ++Imports System.Reflection ++Imports System.Runtime.InteropServices ++ ++' General Information about an assembly is controlled through the following ++' set of attributes. Change these attribute values to modify the information ++' associated with an assembly. ++ ++' Review the values of the assembly attributes ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++'The following GUID is for the ID of the typelib if this project is exposed to COM ++ ++ ++' Version information for an assembly consists of the following four values: ++' ++' Major Version ++' Minor Version ++' Build Number ++' Revision ++' ++' You can specify all the values or you can default the Build and Revision Numbers ++' by using the '*' as shown below: ++' ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb +new file mode 100644 +index 0000000..19d7b32 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb +@@ -0,0 +1,63 @@ ++'------------------------------------------------------------------------------ ++' ++' This code was generated by a tool. ++' Runtime Version:2.0.50727.4927 ++' ++' Changes to this file may cause incorrect behavior and will be lost if ++' the code is regenerated. ++' ++'------------------------------------------------------------------------------ ++ ++Option Strict On ++Option Explicit On ++ ++Imports System ++ ++Namespace My.Resources ++ ++ 'This class was auto-generated by the StronglyTypedResourceBuilder ++ 'class via a tool like ResGen or Visual Studio. ++ 'To add or remove a member, edit your .ResX file then rerun ResGen ++ 'with the /str option, or rebuild your VS project. ++ ''' ++ ''' A strongly-typed resource class, for looking up localized strings, etc. ++ ''' ++ _ ++ Friend Module Resources ++ ++ Private resourceMan As Global.System.Resources.ResourceManager ++ ++ Private resourceCulture As Global.System.Globalization.CultureInfo ++ ++ ''' ++ ''' Returns the cached ResourceManager instance used by this class. ++ ''' ++ _ ++ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager ++ Get ++ If Object.ReferenceEquals(resourceMan, Nothing) Then ++ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Org.Apache.Qpid.Messaging.Examples.Resources", GetType(Resources).Assembly) ++ resourceMan = temp ++ End If ++ Return resourceMan ++ End Get ++ End Property ++ ++ ''' ++ ''' Overrides the current thread's CurrentUICulture property for all ++ ''' resource lookups using this strongly typed resource class. ++ ''' ++ _ ++ Friend Property Culture() As Global.System.Globalization.CultureInfo ++ Get ++ Return resourceCulture ++ End Get ++ Set ++ resourceCulture = value ++ End Set ++ End Property ++ End Module ++End Namespace +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx +new file mode 100644 +index 0000000..3a752df +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx +@@ -0,0 +1,117 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ text/microsoft-resx ++ ++ ++ 2.0 ++ ++ ++ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ++ ++ ++ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.Designer.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.Designer.vb +new file mode 100644 +index 0000000..fd9a759 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.Designer.vb +@@ -0,0 +1,73 @@ ++'------------------------------------------------------------------------------ ++' ++' This code was generated by a tool. ++' Runtime Version:2.0.50727.4927 ++' ++' Changes to this file may cause incorrect behavior and will be lost if ++' the code is regenerated. ++' ++'------------------------------------------------------------------------------ ++ ++Option Strict On ++Option Explicit On ++ ++ ++Namespace My ++ ++ _ ++ Partial Friend NotInheritable Class MySettings ++ Inherits Global.System.Configuration.ApplicationSettingsBase ++ ++ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings),MySettings) ++ ++#Region "My.Settings Auto-Save Functionality" ++#If _MyType = "WindowsForms" Then ++ Private Shared addedHandler As Boolean ++ ++ Private Shared addedHandlerLockObject As New Object ++ ++ _ ++ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) ++ If My.Application.SaveMySettingsOnExit Then ++ My.Settings.Save() ++ End If ++ End Sub ++#End If ++#End Region ++ ++ Public Shared ReadOnly Property [Default]() As MySettings ++ Get ++ ++#If _MyType = "WindowsForms" Then ++ If Not addedHandler Then ++ SyncLock addedHandlerLockObject ++ If Not addedHandler Then ++ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings ++ addedHandler = True ++ End If ++ End SyncLock ++ End If ++#End If ++ Return defaultInstance ++ End Get ++ End Property ++ End Class ++End Namespace ++ ++Namespace My ++ ++ _ ++ Friend Module MySettingsProperty ++ ++ _ ++ Friend ReadOnly Property Settings() As Global.Org.Apache.Qpid.Messaging.Examples.My.MySettings ++ Get ++ Return Global.Org.Apache.Qpid.Messaging.Examples.My.MySettings.Default ++ End Get ++ End Property ++ End Module ++End Namespace +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.settings b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.settings +new file mode 100644 +index 0000000..73b4a10 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Settings.settings +@@ -0,0 +1,7 @@ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb +new file mode 100644 +index 0000000..96300ec +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb +@@ -0,0 +1,69 @@ ++' ++' ++' Licensed to the Apache Software Foundation (ASF) under one ++' or more contributor license agreements. See the NOTICE file ++' distributed with this work for additional information ++' regarding copyright ownership. The ASF licenses this file ++' to you under the Apache License, Version 2.0 (the ++' "License"); you may not use this file except in compliance ++' with the License. You may obtain a copy of the License at ++' ++' http://www.apache.org/licenses/LICENSE-2.0 ++' ++' Unless required by applicable law or agreed to in writing, ++' software distributed under the License is distributed on an ++' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++' KIND, either express or implied. See the License for the ++' specific language governing permissions and limitations ++' under the License. ++' ++' ++ ++Imports System ++Imports Org.Apache.Qpid.Messaging ++Namespace Org.Apache.Qpid.Messaging.Examples ++ Module Module1 ++ Class Client ++ Public Shared Sub Main(ByVal args() As String) ++ Dim url As String = "amqp:tcp:127.0.0.1:5672" ++ ++ If args.Length > 0 Then url = args(0) ++ ++ Dim connection As Connection ++ Try ++ connection = New Connection(url) ++ connection.Open() ++ ++ Dim session As Session = connection.CreateSession() ++ ++ Dim sender As Sender = session.CreateSender("service_queue") ++ ++ Dim responseQueue As Address = New Address("#response-queue; {create:always, delete:always}") ++ Dim receiver As Receiver = session.CreateReceiver(responseQueue) ++ ++ Dim s(3) As String ++ s(0) = "Twas brillig, and the slithy toves" ++ s(1) = "Did gire and gymble in the wabe." ++ s(2) = "All mimsy were the borogroves," ++ s(3) = "And the mome raths outgrabe." ++ ++ Dim request As Message = New Message("") ++ request.SetReplyTo(responseQueue) ++ ++ Dim i As Integer ++ For i = 0 To s.Length - 1 ++ request.SetContent(s(i)) ++ sender.Send(request) ++ Dim response As Message = receiver.Fetch() ++ Console.WriteLine("{0} -> {1}", request.GetContent(), response.GetContent()) ++ Next i ++ connection.Close() ++ ++ Catch e As Exception ++ Console.WriteLine("Exception {0}.", e) ++ connection.Close() ++ End Try ++ End Sub ++ End Class ++ End Module ++End Namespace +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj +new file mode 100644 +index 0000000..ae1c012 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj +@@ -0,0 +1,134 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51} ++ Exe ++ Sub Main ++ Org.Apache.Qpid.Messaging.Examples ++ visualbasic.example.client ++ 512 ++ Console ++ v3.5 ++ On ++ Binary ++ Off ++ On ++ ++ ++ true ++ full ++ true ++ true ++ ..\..\..\..\..\src\Debug\ ++ visualbasic.example.client.xml ++ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ ++ ++ pdbonly ++ false ++ true ++ true ++ bin\Release\ ++ visualbasic.example.client.xml ++ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ ++ ++ true ++ true ++ true ++ ..\..\..\..\..\src\Debug\ ++ visualbasic.example.client.xml ++ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ full ++ x86 ++ ++ ++ true ++ bin\x86\Release\ ++ visualbasic.example.client.xml ++ true ++ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ pdbonly ++ x86 ++ ++ ++ ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ Application.myapp ++ ++ ++ True ++ True ++ Resources.resx ++ ++ ++ True ++ Settings.settings ++ True ++ ++ ++ ++ ++ VbMyResourcesResXFileCodeGenerator ++ Resources.Designer.vb ++ My.Resources ++ Designer ++ ++ ++ ++ ++ MyApplicationCodeGenerator ++ Application.Designer.vb ++ ++ ++ SettingsSingleFileGenerator ++ My ++ Settings.Designer.vb ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +index 7269dad..8df1ea6 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +@@ -57,6 +57,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.spout", "exa + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.declare_queues", "examples\csharp.example.declare_queues\csharp.example.declare_queues.csproj", "{E31B349C-830C-4583-8BD9-30DA4398349F}" + EndProject ++Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "visualbasic.example.client", "examples\visualbasic.example.client\visualbasic.example.client.vbproj", "{CFEA696E-115B-4AD1-AB56-804E360EDD51}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hello World", "Hello World", "{4408A2DA-ED2D-44AE-A465-0B6D75E1FF86}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.helloworld", "examples\csharp.example.helloworld\csharp.example.helloworld.csproj", "{8CC1C265-0507-44A3-9483-8FAF48513F4D}" ++EndProject + Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU +@@ -264,6 +270,34 @@ Global + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Win32.ActiveCfg = Release|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.ActiveCfg = Release|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.Build.0 = Release|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Win32.ActiveCfg = Debug|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|x86.ActiveCfg = Debug|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|x86.Build.0 = Debug|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Any CPU.Build.0 = Release|Any CPU ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Mixed Platforms.ActiveCfg = Release|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Mixed Platforms.Build.0 = Release|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Win32.ActiveCfg = Release|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|x86.ActiveCfg = Release|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|x86.Build.0 = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Win32.ActiveCfg = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x86.ActiveCfg = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x86.Build.0 = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Any CPU.Build.0 = Release|Any CPU ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Mixed Platforms.ActiveCfg = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Mixed Platforms.Build.0 = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Win32.ActiveCfg = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.ActiveCfg = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE +@@ -274,6 +308,7 @@ Global + {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} + {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} + {89CE04CB-21DE-4ABB-9236-50529DD8C022} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {4408A2DA-ED2D-44AE-A465-0B6D75E1FF86} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} = {DE58D329-10DC-4C8D-9EFA-230A57314089} + {52F880E7-D677-4C91-8516-D679CE0F46A8} = {DE58D329-10DC-4C8D-9EFA-230A57314089} + {AF2FBC78-266C-430C-BC29-9477AB596A36} = {39E9D1BF-3A0B-4D86-BF6B-F463E1A2245A} +@@ -281,10 +316,12 @@ Global + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} + {68A43817-2358-4A31-8FDF-FE21722BFBCF} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} + {12F1C14F-5C7D-4075-9BAE-C091394FF99A} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} + {0DE01712-C2D1-4CA4-B42C-5856456A8696} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} + {090A081D-E8B5-4949-AA43-EE182B7101E3} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} + {C43DEB69-8088-420B-B0CA-C699535E6D08} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} + {EB36626D-36C2-41B3-B65E-762BAF27F137} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} + {E31B349C-830C-4583-8BD9-30DA4398349F} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D} = {4408A2DA-ED2D-44AE-A465-0B6D75E1FF86} + EndGlobalSection + EndGlobal +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp +index d463e66..c4587fe 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp +@@ -221,7 +221,25 @@ namespace Messaging { + } + break; + +- ++ case System::TypeCode::Object : ++ { ++ // ++ // Derived classes ++ // ++ if ("System.Guid" == typeP->ToString()) ++ { ++ cli::array ^ guidBytes = ((System::Guid)managedValue).ToByteArray(); ++ pin_ptr pinnedBuf = &guidBytes[0]; ++ ::qpid::types::Uuid newUuid = ::qpid::types::Uuid(pinnedBuf); ++ qpidVariant = newUuid; ++ } ++ else ++ { ++ throw gcnew System::NotImplementedException(); ++ } ++ } ++ break; ++ + default: + + throw gcnew System::NotImplementedException(); +@@ -318,6 +336,11 @@ namespace Messaging { + } + + case ::qpid::types::VAR_UUID: ++ { ++ System::String ^ elementValue = gcnew System::String(variant.asUuid().str().c_str()); ++ System::Guid ^ newGuid = System::Guid(elementValue); ++ dict[elementName] = newGuid; ++ } + break; + } + } +@@ -406,6 +429,11 @@ namespace Messaging { + } + + case ::qpid::types::VAR_UUID: ++ { ++ System::String ^ elementValue = gcnew System::String(variant.asUuid().str().c_str()); ++ System::Guid ^ newGuid = System::Guid(elementValue); ++ (*managedList).Add(newGuid); ++ } + break; + } + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +index 5763077..2e0e481 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +@@ -114,6 +114,20 @@ namespace Org.Apache.Qpid.Messaging + Console.Write("{0} ", rawDataReadback4[i].ToString()); + Console.WriteLine(); + ++ // ++ // Guid factoids ++ // ++ Guid myGuid = new Guid("000102030405060708090a0b0c0d0e0f"); ++ System.Type typeP = myGuid.GetType(); ++ System.TypeCode typeCode = System.Type.GetTypeCode(typeP); ++ ++ Console.WriteLine("Guid Type = {0}, TypeCode = {1}", ++ typeP.ToString(), typeCode.ToString()); ++ // typeP="System.Guid", typeCode="Object" ++ byte[] guidReadback; ++ guidReadback = myGuid.ToByteArray(); ++ ++ Console.WriteLine("GuidReadback len = {0}", guidReadback.Length); + } + } + } +-- +1.5.5.6 + +From 55095229ebc4764c1add9810ea41a76296656c23 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 25 Jun 2010 17:55:46 +0000 +Subject: [PATCH] QPID-2589 - Patch from Chuck Rolke + * Convert c-style Get() functions to c#-style properties. + * Add powershell helloworld example. + * Fix message SetContent to accept byte array or byte array slice. + * Re-code Session GetReceiver and GetSender not to malloc new objects but to create the objects on the stack. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958052 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../csharp.direct.receiver.cs | 2 +- + .../csharp.direct.sender/csharp.direct.sender.cs | 2 +- + .../csharp.example.client/csharp.example.client.cs | 2 +- + .../csharp.example.drain/csharp.example.drain.cs | 6 +- + .../csharp.example.server/csharp.example.server.cs | 2 +- + .../csharp.example.spout/csharp.example.spout.cs | 8 +- + .../csharp.map.callback.receiver.cs | 8 +- + .../powershell.example.helloworld.ps1 | 34 +++ + .../visualbasic.example.client.vb | 2 +- + .../qpid/dotnet/org.apache.qpid.messaging.sln | 3 + + qpid/cpp/bindings/qpid/dotnet/src/Address.cpp | 81 +------ + qpid/cpp/bindings/qpid/dotnet/src/Address.h | 90 ++++++- + qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp | 5 - + qpid/cpp/bindings/qpid/dotnet/src/Connection.h | 9 +- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 194 ++-------------- + qpid/cpp/bindings/qpid/dotnet/src/Message.h | 254 +++++++++++++++++--- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp | 32 +--- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.h | 66 +++++- + qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp | 7 +- + qpid/cpp/bindings/qpid/dotnet/src/Sender.h | 11 +- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 22 +- + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 9 +- + .../dotnet/test/messaging.test/messaging.test.cs | 27 ++- + 23 files changed, 498 insertions(+), 378 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/examples/powershell.example.helloworld/powershell.example.helloworld.ps1 + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +index af0b398..69f7a0d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +@@ -58,7 +58,7 @@ namespace CSharpDirect + { + connection = new Connection(host); + connection.Open(); +- if (!connection.IsOpen()) { ++ if (!connection.IsOpen) { + Console.WriteLine("Failed to open connection to host : {0}", host); + } else { + Session session = connection.CreateSession(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +index b287af2..2e80e8c 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +@@ -59,7 +59,7 @@ namespace csharp.direct.sender + connection = new Connection(host); + connection.Open(); + +- if (!connection.IsOpen()) { ++ if (!connection.IsOpen) { + Console.WriteLine("Failed to open connection to host : {0}", host); + } else { + Session session = connection.CreateSession(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs +index 93459b6..79b798e 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.cs +@@ -50,7 +50,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { + }; + + Message request = new Message(""); +- request.SetReplyTo(responseQueue); ++ request.ReplyTo = responseQueue; + + for (int i = 0; i < s.Length; i++) { + request.SetContent(s[i]); +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs +index 6740e6a..2d763a3 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs +@@ -47,17 +47,17 @@ namespace Org.Apache.Qpid.Messaging.Examples { + while (receiver.Fetch(message, timeout)) + { + Dictionary properties = new Dictionary(); +- properties = message.GetProperties(); ++ properties = message.Properties; + Console.Write("Message(properties={0}, content='", + message.MapAsString(properties)); + +- if ("amqp/map" == message.GetContentType()) ++ if ("amqp/map" == message.ContentType) + { + Dictionary content = new Dictionary(); + message.GetContent(content); + Console.Write(message.MapAsString(content)); + } +- else if ("amqp/list" == message.GetContentType()) ++ else if ("amqp/list" == message.ContentType) + { + Collection content = new Collection(); + message.GetContent(content); +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs +index af01e4b..4ec5649 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.cs +@@ -38,7 +38,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { + + while (true) { + Message request = receiver.Fetch(); +- Address address = request.GetReplyTo(); ++ Address address = request.ReplyTo; + + if (null != address) { + Sender sender = session.CreateSender(address); +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs +index 7eeece3..59ba35f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.cs +@@ -29,8 +29,8 @@ using Org.Apache.Qpid.Messaging; + namespace Org.Apache.Qpid.Messaging.Examples { + class Spout { + // +- // Sample invocation: csharp.example.drain.exe --broker localhost:5672 --timeout 30 my-queue +- // This pro ++ // Sample invocation: csharp.example.spout.exe --broker localhost:5672 my-queue ++ // + static bool NameVal(string In, out string nameOut, out string valueOut) + { + int pos = In.IndexOf("="); +@@ -83,7 +83,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { + else + { + message = new Message(options.Content); +- message.SetContentType("text/plain"); ++ message.ContentType = "text/plain"; + } + Address replyToAddr = new Address(options.ReplyTo); + +@@ -95,7 +95,7 @@ namespace Org.Apache.Qpid.Messaging.Examples { + (0 == options.Timeout || stopwatch.Elapsed <= timespan); + count++) + { +- if ("" != options.ReplyTo) message.SetReplyTo(replyToAddr); ++ if ("" != options.ReplyTo) message.ReplyTo = replyToAddr; + string id = options.Id ; + if ("" == id) { + Guid g = Guid.NewGuid(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs +index 2ef7854..965b494 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.cs +@@ -93,14 +93,14 @@ namespace Org.Apache.Qpid.Messaging.Examples + /// The Message + public static void ShowMessage(Message message) + { +- if ("amqp/map" == message.GetContentType()) ++ if ("amqp/map" == message.ContentType) + { + Console.WriteLine("Received a Dictionary"); + Dictionary content = new Dictionary(); + message.GetContent(content); + ShowDictionary(content, 0); + } +- else if ("amqp/list" == message.GetContentType()) ++ else if ("amqp/list" == message.ContentType) + { + Console.WriteLine("Received a List"); + Collection content = new Collection(); +@@ -148,7 +148,7 @@ namespace Org.Apache.Qpid.Messaging.Examples + // + // Acknowledge the receipt of all received messages. + // +- receiver.GetSession().Acknowledge(); ++ receiver.Session.Acknowledge(); + } + + +@@ -241,7 +241,7 @@ namespace Org.Apache.Qpid.Messaging.Examples + // + // Establish a capacity + // +- receiver.SetCapacity(100); ++ receiver.Capacity = 100; + + // + // Wait so many seconds for messages to arrive. +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/powershell.example.helloworld/powershell.example.helloworld.ps1 b/qpid/cpp/bindings/qpid/dotnet/examples/powershell.example.helloworld/powershell.example.helloworld.ps1 +new file mode 100644 +index 0000000..e8c21bc +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/powershell.example.helloworld/powershell.example.helloworld.ps1 +@@ -0,0 +1,34 @@ ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License. ++# ++ ++# ++# Script for 32-bit powershell ++# ++ ++[Reflection.Assembly]::LoadFile('W:\cpp\src\Debug\org.apache.qpid.messagingd.dll') ++$conn = new-object Org.Apache.Qpid.Messaging.Connection("localhost:5672") ++$conn.Open() ++$sess = $conn.CreateSession() ++$rcvr = $sess.CreateReceiver("amq.topic") ++$sender = $sess.CreateSender("amq.topic") ++$msg1 = new-object Org.Apache.Qpid.Messaging.Message("Hello world!") ++$sender.Send($msg1) ++$dur = new-object Org.Apache.Qpid.Messaging.Duration(1000) ++$msg2 = $rcvr.Fetch($dur) ++$msg2.GetContent() +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb +index 96300ec..ccdc0d6 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vb +@@ -48,7 +48,7 @@ Namespace Org.Apache.Qpid.Messaging.Examples + s(3) = "And the mome raths outgrabe." + + Dim request As Message = New Message("") +- request.SetReplyTo(responseQueue) ++ request.ReplyTo = responseQueue + + Dim i As Integer + For i = 0 To s.Length - 1 +diff --git a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +index 8df1ea6..38fd6dc 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +@@ -60,6 +60,9 @@ EndProject + Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "visualbasic.example.client", "examples\visualbasic.example.client\visualbasic.example.client.vbproj", "{CFEA696E-115B-4AD1-AB56-804E360EDD51}" + EndProject + Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hello World", "Hello World", "{4408A2DA-ED2D-44AE-A465-0B6D75E1FF86}" ++ ProjectSection(SolutionItems) = preProject ++ examples\powershell.example.helloworld\powershell.example.helloworld.ps1 = examples\powershell.example.helloworld\powershell.example.helloworld.ps1 ++ EndProjectSection + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.helloworld", "examples\csharp.example.helloworld\csharp.example.helloworld.csproj", "{8CC1C265-0507-44A3-9483-8FAF48513F4D}" + EndProject +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +index f0bbe13..2da40e6 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +@@ -58,10 +58,10 @@ namespace Messaging { + System::String ^, System::Object ^> ^ options) : + addressp(new ::qpid::messaging::Address()) + { +- SetName(name); +- SetSubject(subject); +- SetOptions(options); +- SetType(""); ++ Name = name; ++ Subject = subject; ++ Options = options; ++ Type = ""; + } + + +@@ -72,10 +72,10 @@ namespace Messaging { + System::String ^ type) : + addressp(new ::qpid::messaging::Address()) + { +- SetName(name); +- SetSubject(subject); +- SetOptions(options); +- SetType(type); ++ Name = name; ++ Subject = subject; ++ Options = options; ++ Type = type; + } + + +@@ -112,71 +112,6 @@ namespace Messaging { + + + // +- // name +- // +- System::String ^ Address::GetName() +- { +- return gcnew System::String(addressp->getName().c_str()); +- } +- +- void Address::SetName(System::String ^ name) +- { +- addressp->::qpid::messaging::Address::setName(QpidMarshal::ToNative(name)); +- } +- +- // +- // subject +- // +- System::String ^ Address::GetSubject() +- { +- return gcnew System::String(addressp->getSubject().c_str()); +- } +- +- void Address::SetSubject(System::String ^ subject) +- { +- addressp->setSubject(QpidMarshal::ToNative(subject)); +- } +- +- // +- // options +- // +- System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ Address::GetOptions() +- { +- ::qpid::types::Variant::Map map; +- System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ newMap = +- gcnew System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^>; +- map = addressp->getOptions(); +- TypeTranslator::NativeToManaged(map, newMap); +- return newMap; +- } +- +- +- void Address::SetOptions(System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ options) +- { +- ::qpid::types::Variant::Map map; +- TypeTranslator::ManagedToNative(options, map); +- addressp->setOptions(map); +- } +- +- // +- // type +- // +- System::String ^ Address::GetType() +- { +- return gcnew System::String(addressp->getType().c_str()); +- } +- +- +- void Address::SetType(System::String ^ type) +- { +- addressp->setName(QpidMarshal::ToNative(type)); +- } +- +- // + // ToString + // + System::String ^ Address::ToStr() +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.h b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +index 60e24da..9f940d6 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +@@ -27,6 +27,10 @@ + + #include "qpid/messaging/Address.h" + ++#include "QpidMarshal.h" ++#include "QpidTypeCheck.h" ++#include "TypeTranslator.h" ++ + namespace Org { + namespace Apache { + namespace Qpid { +@@ -73,20 +77,86 @@ namespace Messaging { + ::qpid::messaging::Address * get () { return addressp; } + } + +- System::String ^ GetName(); +- void SetName(System::String ^ name); ++ // ++ // name ++ // ++ property System::String ^ Name ++ { ++ System::String ^ get () ++ { ++ return gcnew System::String(addressp->getName().c_str()); ++ } ++ ++ void set (System::String ^ name) ++ { ++ addressp->::qpid::messaging::Address::setName(QpidMarshal::ToNative(name)); ++ } ++ } ++ ++ ++ // ++ // subject ++ // ++ property System::String ^ Subject ++ { ++ System::String ^ get () ++ { ++ return gcnew System::String(addressp->getSubject().c_str()); ++ } ++ ++ void set (System::String ^ subject) ++ { ++ addressp->setSubject(QpidMarshal::ToNative(subject)); ++ } ++ } ++ + +- System::String ^ GetSubject(); +- void SetSubject(System::String ^ subject); ++ // ++ // options ++ // ++ property System::Collections::Generic::Dictionary< ++ System::String ^, System::Object ^> ^ Options ++ { ++ System::Collections::Generic::Dictionary< ++ System::String ^, System::Object ^> ^ get () ++ { ++ ::qpid::types::Variant::Map map; ++ System::Collections::Generic::Dictionary< ++ System::String ^, System::Object ^> ^ newMap = ++ gcnew System::Collections::Generic::Dictionary< ++ System::String ^, System::Object ^>; ++ map = addressp->getOptions(); ++ TypeTranslator::NativeToManaged(map, newMap); ++ return newMap; ++ } ++ ++ ++ void set (System::Collections::Generic::Dictionary< ++ System::String ^, System::Object ^> ^ options) ++ { ++ ::qpid::types::Variant::Map map; ++ TypeTranslator::ManagedToNative(options, map); ++ addressp->setOptions(map); ++ } ++ } + +- System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ GetOptions(); + +- void SetOptions(System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ options); ++ // ++ // type ++ // ++ property System::String ^ Type ++ { ++ System::String ^ get () ++ { ++ return gcnew System::String(addressp->getType().c_str()); ++ } ++ + +- System::String ^ GetType(); +- void SetType(System::String ^ type); ++ void set (System::String ^ type) ++ { ++ addressp->setName(QpidMarshal::ToNative(type)); ++ } ++ } + + System::String ^ ToStr(); + }; +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +index 590cc5e..0e59c41 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +@@ -107,11 +107,6 @@ namespace Messaging { + connectionp->open(); + } + +- System::Boolean Connection::IsOpen() +- { +- return connectionp->isOpen(); +- } +- + void Connection::Close() + { + connectionp->close(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +index e93e078..8e0f40f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +@@ -62,9 +62,16 @@ namespace Messaging { + void SetOption(System::String ^ name, System::Object ^ value); + + void Open(); +- System::Boolean IsOpen(); + void Close(); + ++ property System::Boolean IsOpen ++ { ++ System::Boolean get () ++ { ++ return connectionp->isOpen(); ++ } ++ } ++ + // CreateTransactionalSession() + Session ^ CreateTransactionalSession(); + Session ^ CreateTransactionalSession(System::String ^ name); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index 743afce..f620a09 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -158,190 +158,36 @@ namespace Messaging { + } + } + +- +- // +- // ReplyTo +- // +- void Message::SetReplyTo(Address ^ address) +- { +- messagep->setReplyTo(*(address->NativeAddress)); +- } +- +- Address ^ Message::GetReplyTo() +- { +- const ::qpid::messaging::Address & addrp = +- messagep->::qpid::messaging::Message::getReplyTo(); +- +- return gcnew Address(const_cast<::qpid::messaging::Address *>(&addrp)); +- } +- +- +- // +- // Subject +- // +- void Message::SetSubject(System::String ^ subject) +- { +- messagep->setSubject(QpidMarshal::ToNative(subject)); +- } +- +- System::String ^ Message::GetSubject() +- { +- return gcnew String(messagep->getSubject().c_str()); +- } +- +- +- // +- // ContentType +- // +- void Message::SetContentType(System::String ^ ct) +- { +- messagep->setContentType(QpidMarshal::ToNative(ct)); +- } +- +- System::String ^ Message::GetContentType() +- { +- return gcnew String(messagep->::qpid::messaging::Message::getContentType().c_str()); +- } +- +- +- // +- // MessageId +- // +- void Message::SetMessageId(System::String ^ messageId) +- { +- messagep->setMessageId(QpidMarshal::ToNative(messageId)); +- } +- +- System::String ^ Message::GetMessageId() +- { +- return gcnew String(messagep->getMessageId().c_str()); +- } +- +- +- // +- // UserId +- // +- void Message::SetUserId(System::String ^ uId) +- { +- messagep->setUserId(QpidMarshal::ToNative(uId)); +- } +- +- System::String ^ Message::GetUserId() +- { +- return gcnew String(messagep->getUserId().c_str()); +- } +- +- +- // +- // CorrelationId +- // +- void Message::SetCorrelationId(System::String ^ correlationId) +- { +- messagep->setCorrelationId(QpidMarshal::ToNative(correlationId)); +- } +- +- System::String ^ Message::GetCorrelationId() +- { +- return gcnew String(messagep->getCorrelationId().c_str()); +- } +- +- +- // +- // Priority +- // +- void Message::SetPriority(unsigned char priority) +- { +- messagep->setPriority(priority); +- } +- +- unsigned char Message::GetPriority() +- { +- return messagep->getPriority(); +- } +- +- +- // +- // Ttl +- // +- void Message::SetTtl(Duration ^ ttl) +- { +- ::qpid::messaging::Duration dur(ttl->Milliseconds); +- +- messagep->setTtl(dur); +- } +- +- Duration ^ Message::GetTtl() ++ // Property ++ void Message::SetProperty(System::String ^ name, System::Object ^ value) + { +- Duration ^ dur = gcnew Duration(messagep->getTtl().getMilliseconds()); ++ ::qpid::types::Variant entryValue; ++ TypeTranslator::ManagedToNativeObject(value, entryValue); + +- return dur; ++ messagep->getProperties()[QpidMarshal::ToNative(name)] = entryValue; + } + +- void Message::SetDurable(bool durable) +- { +- messagep->setDurable(durable); +- } +- +- bool Message::GetDurable() ++ // Content ++ void Message::SetContent(System::String ^ content) + { +- return messagep->getDurable(); ++ messagep->setContent(QpidMarshal::ToNative(content)); + } + + +- bool Message::GetRedelivered() ++ void Message::SetContent(cli::array ^ bytes) + { +- return messagep->getRedelivered(); ++ pin_ptr pBytes = &bytes[0]; ++ messagep->setContent((char *)pBytes, bytes->Length); + } + +- void Message::SetRedelivered(bool redelivered) +- { +- messagep->setRedelivered(redelivered); +- } + +- // Properties +- System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^ Message::GetProperties() ++ void Message::SetContent(cli::array ^ bytes, int offset, int size) + { +- ::qpid::types::Variant::Map map; +- +- map = messagep->getProperties(); +- +- System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^ dict = +- gcnew System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ; +- +- TypeTranslator::NativeToManaged(map, dict); +- +- return dict; +- } +- +- +- void Message::SetProperty(System::String ^ name, System::Object ^ value) +- { +- ::qpid::types::Variant entryValue; +- TypeTranslator::ManagedToNativeObject(value, entryValue); +- +- messagep->getProperties()[QpidMarshal::ToNative(name)] = entryValue; +- } +- +- +- void Message::SetProperties(System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^ properties) +- { +- for each (System::Collections::Generic::KeyValuePair +- kvp in properties) +- { +- SetProperty(kvp.Key, kvp.Value); +- } +- } +- ++ if ((offset + size) > bytes->Length) ++ throw gcnew QpidException("Message::SetContent from byte array slice: buffer length exceeded"); + +- +- // Content +- void Message::SetContent(System::String ^ content) +- { +- messagep->setContent(QpidMarshal::ToNative(content)); ++ pin_ptr pBytes = &bytes[offset]; ++ messagep->setContent((char *)pBytes, size); + } + + +@@ -388,7 +234,7 @@ namespace Messaging { + // On entry message size must not be zero and + // caller's byte array must be equal to message size. + // +- void Message::GetRaw(array ^ arr) ++ void Message::GetContent(array ^ arr) + { + System::UInt32 size = messagep->getContentSize(); + +@@ -404,12 +250,6 @@ namespace Messaging { + } + + +- System::UInt64 Message::GetContentSize() +- { +- return messagep->getContentSize(); +- } +- +- + System::String ^ Message::MapAsString(System::Collections::Generic::Dictionary< + System::String^, System::Object^> ^ dict) + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.h b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +index 99d0b86..d5b4beb 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +@@ -26,6 +26,11 @@ + + #include "qpid/messaging/Message.h" + ++#include "QpidMarshal.h" ++#include "Address.h" ++#include "Duration.h" ++#include "TypeTranslator.h" ++ + namespace Org { + namespace Apache { + namespace Qpid { +@@ -78,46 +83,227 @@ namespace Messaging { + ::qpid::messaging::Message * get () { return messagep; } + } + +- void SetReplyTo(Address ^ address); +- Address ^ GetReplyTo(); ++ // ++ // ReplyTo ++ // ++ property Address ^ ReplyTo ++ { ++ void set (Address ^ address) ++ { ++ messagep->setReplyTo(*(address->NativeAddress)); ++ } ++ ++ Address ^ get () ++ { ++ const ::qpid::messaging::Address & addrp = ++ messagep->::qpid::messaging::Message::getReplyTo(); ++ ++ return gcnew Address(const_cast<::qpid::messaging::Address *>(&addrp)); ++ } ++ } ++ ++ // ++ // Subject ++ // ++ property System::String ^ Subject ++ { ++ void set (System::String ^ subject) ++ { ++ messagep->setSubject(QpidMarshal::ToNative(subject)); ++ } ++ ++ ++ System::String ^ get () ++ { ++ return gcnew String(messagep->getSubject().c_str()); ++ } ++ } + +- void SetSubject(System::String ^ subject); +- System::String ^ GetSubject(); + +- void SetContentType(System::String ^ ct); +- System::String ^ GetContentType(); +- +- void SetMessageId(System::String ^ messageId); +- System::String ^ GetMessageId(); +- +- void SetUserId(System::String ^ uId); +- System::String ^ GetUserId(); ++ // ++ // ContentType ++ // ++ property System::String ^ ContentType ++ { ++ void set (System::String ^ ct) ++ { ++ messagep->setContentType(QpidMarshal::ToNative(ct)); ++ } ++ ++ System::String ^ get () ++ { ++ return gcnew String(messagep->::qpid::messaging::Message::getContentType().c_str()); ++ } ++ } ++ ++ ++ // ++ // MessageId ++ // ++ property System::String ^ MessageId ++ { ++ void set (System::String ^ messageId) ++ { ++ messagep->setMessageId(QpidMarshal::ToNative(messageId)); ++ } ++ ++ System::String ^ get () ++ { ++ return gcnew String(messagep->getMessageId().c_str()); ++ } ++ } ++ + +- void SetCorrelationId(System::String ^ correlationId); +- System::String ^ GetCorrelationId(); ++ // ++ // UserId ++ // ++ property System::String ^ UserId ++ { ++ void set (System::String ^ uId) ++ { ++ messagep->setUserId(QpidMarshal::ToNative(uId)); ++ } ++ ++ System::String ^ get () ++ { ++ return gcnew String(messagep->getUserId().c_str()); ++ } ++ } + +- void SetPriority(unsigned char priority); +- unsigned char GetPriority(); ++ ++ // ++ // CorrelationId ++ // ++ property System::String ^ CorrelationId ++ { ++ void set (System::String ^ correlationId) ++ { ++ messagep->setCorrelationId(QpidMarshal::ToNative(correlationId)); ++ } ++ ++ System::String ^ get () ++ { ++ return gcnew String(messagep->getCorrelationId().c_str()); ++ } ++ } + +- void SetTtl(Duration ^ ttl); +- Duration ^ GetTtl(); + +- void SetDurable(bool durable); +- bool GetDurable(); ++ // ++ // Priority ++ // ++ property unsigned char Priority ++ { ++ void set (unsigned char priority) ++ { ++ messagep->setPriority(priority); ++ } ++ ++ unsigned char get () ++ { ++ return messagep->getPriority(); ++ } ++ } ++ ++ ++ // ++ // Ttl ++ // ++ property Duration ^ Ttl ++ { ++ void set (Duration ^ ttl) ++ { ++ ::qpid::messaging::Duration dur(ttl->Milliseconds); ++ ++ messagep->setTtl(dur); ++ } ++ ++ Duration ^ get () ++ { ++ Duration ^ dur = gcnew Duration(messagep->getTtl().getMilliseconds()); ++ ++ return dur; ++ } ++ } ++ ++ // ++ // Durable ++ // ++ property bool Durable ++ { ++ void set (bool durable) ++ { ++ messagep->setDurable(durable); ++ } ++ ++ bool get () ++ { ++ return messagep->getDurable(); ++ } ++ } ++ ++ // ++ // Redelivered ++ // ++ property bool Redelivered ++ { ++ bool get () ++ { ++ return messagep->getRedelivered(); ++ } ++ ++ void set (bool redelivered) ++ { ++ messagep->setRedelivered(redelivered); ++ } ++ } ++ ++ // ++ // Property ++ // ++ void Message::SetProperty(System::String ^ name, System::Object ^ value); ++ ++ // ++ // Properties ++ // ++ property System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ Properties ++ { ++ System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ get () ++ { ++ ::qpid::types::Variant::Map map; + +- bool GetRedelivered(); +- void SetRedelivered(bool redelivered); ++ map = messagep->getProperties(); + +- System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^ GetProperties(); ++ System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ dict = ++ gcnew System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ; + +- void SetProperty(System::String ^ name, System::Object ^ value); ++ TypeTranslator::NativeToManaged(map, dict); ++ ++ return dict; ++ } ++ ++ ++ void set (System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^ properties) ++ { ++ for each (System::Collections::Generic::KeyValuePair ++ kvp in properties) ++ { ++ SetProperty(kvp.Key, kvp.Value); ++ } ++ } ++ } + +- void SetProperties(System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^ properties); + + void SetContent(System::String ^ content); + ++ void SetContent(cli::array ^ bytes); ++ ++ void SetContent(cli::array ^ bytes, int offset, int size); ++ + //TODO:: void setContent(Bytes{} bytes, offset, length); + + // get content as string +@@ -133,9 +319,19 @@ namespace Messaging { + System::Object^> ^); + + // get content as bytes +- void GetRaw(cli::array ^ arr); ++ void GetContent(cli::array ^ arr); ++ ++ // ++ // ContentSize ++ // ++ property System::UInt64 ContentSize ++ { ++ System::UInt64 get () ++ { ++ return messagep->getContentSize(); ++ } ++ } + +- System::UInt64 GetContentSize(); + + // A message has been returned to managed code through GetContent(). + // Display the content of that System::Object as a string. +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +index 15f8572..96df8cc 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +@@ -44,7 +44,7 @@ namespace Messaging { + /// + + Receiver::Receiver(::qpid::messaging::Receiver * r, +- Session ^ sessRef) : ++ Org::Apache::Qpid::Messaging::Session ^ sessRef) : + receiverp(r), + parentSession(sessRef) + { +@@ -227,38 +227,8 @@ namespace Messaging { + return newMessage; + } + +- void Receiver::SetCapacity(System::UInt32 capacity) +- { +- receiverp->setCapacity(capacity); +- } +- +- System::UInt32 Receiver::GetCapacity() +- { +- return receiverp->getCapacity(); +- } +- +- System::UInt32 Receiver::GetAvailable() +- { +- return receiverp->getAvailable(); +- } +- +- System::UInt32 Receiver::GetUnsettled() +- { +- return receiverp->getUnsettled(); +- } +- + void Receiver::Close() + { + receiverp->close(); + } +- +- System::String ^ Receiver::GetName() +- { +- return gcnew System::String(receiverp->getName().c_str()); +- } +- +- Session ^ Receiver::GetSession() +- { +- return parentSession; +- } + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +index 0dc2f61..436f3f2 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +@@ -88,12 +88,66 @@ namespace Messaging { + Message ^ Fetch(); + Message ^ Fetch(Duration ^ durationp); + +- void SetCapacity(System::UInt32 capacity); +- System::UInt32 GetCapacity(); +- System::UInt32 GetAvailable(); +- System::UInt32 GetUnsettled(); ++ // ++ // Capacity ++ // ++ property System::UInt32 Capacity ++ { ++ void set (System::UInt32 capacity) ++ { ++ receiverp->setCapacity(capacity); ++ } ++ ++ System::UInt32 get () ++ { ++ return receiverp->getCapacity(); ++ } ++ } ++ ++ // ++ // Available ++ // ++ property System::UInt32 Available ++ { ++ System::UInt32 get () ++ { ++ return receiverp->getAvailable(); ++ } ++ } ++ ++ // ++ // Unsettled ++ // ++ property System::UInt32 Unsettled ++ { ++ System::UInt32 get () ++ { ++ return receiverp->getUnsettled(); ++ } ++ } ++ + void Close(); +- System::String ^ GetName(); +- Session ^ GetSession(); ++ ++ // ++ // Name ++ // ++ property System::String ^ Name ++ { ++ System::String ^ get () ++ { ++ return gcnew System::String(receiverp->getName().c_str()); ++ } ++ } ++ ++ // ++ // Session ++ // ++ property Org::Apache::Qpid::Messaging::Session ^ Session ++ { ++ Org::Apache::Qpid::Messaging::Session ^ get () ++ { ++ return parentSession; ++ } ++ } + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +index e0911b3..0d394f8 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +@@ -40,7 +40,7 @@ namespace Messaging { + /// + + Sender::Sender(::qpid::messaging::Sender * s, +- Session ^ sessRef) : ++ Org::Apache::Qpid::Messaging::Session ^ sessRef) : + senderp(s), + parentSession(sessRef) + { +@@ -96,9 +96,4 @@ namespace Messaging { + { + senderp->close(); + } +- +- Session ^ Sender::GetSession() +- { +- return parentSession; +- } + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +index 705c7d5..de114ab 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +@@ -95,6 +95,15 @@ namespace Messaging { + } + } + +- Session ^ GetSession(); ++ // ++ // Session ++ // ++ property Org::Apache::Qpid::Messaging::Session ^ Session ++ { ++ Org::Apache::Qpid::Messaging::Session ^ get () ++ { ++ return parentSession; ++ } ++ } + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index 04fbb61..d5f4584 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -46,7 +46,8 @@ namespace Messaging { + /// + + // constructor +- Session::Session(::qpid::messaging::Session * sp, Connection ^ connRef) : ++ Session::Session(::qpid::messaging::Session * sp, ++ Org::Apache::Qpid::Messaging::Connection ^ connRef) : + sessionp(sp), + parentConnectionp(connRef) + { +@@ -444,11 +445,10 @@ namespace Messaging { + + Sender ^ Session::GetSender(System::String ^ name) + { +- ::qpid::messaging::Sender * sender = new ::qpid::messaging::Sender; ++ ::qpid::messaging::Sender sender = ::qpid::messaging::Sender( ++ sessionp->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name)) ); + +- *sender = sessionp->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name)); +- +- Sender ^ newSender = gcnew Sender(sender, this); ++ Sender ^ newSender = gcnew Sender(&sender, this); + + return newSender; + } +@@ -457,22 +457,16 @@ namespace Messaging { + + Receiver ^ Session::GetReceiver(System::String ^ name) + { +- ::qpid::messaging::Receiver * receiver = new ::qpid::messaging::Receiver; +- +- *receiver = sessionp->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name)); ++ ::qpid::messaging::Receiver receiver = ::qpid::messaging::Receiver( ++ sessionp->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name)) ); + +- Receiver ^ newReceiver = gcnew Receiver(receiver, this); ++ Receiver ^ newReceiver = gcnew Receiver(&receiver, this); + + return newReceiver; + } + + + +- Connection ^ Session::GetConnection() +- { +- return parentConnectionp; +- } +- + void Session::CheckError() + { + sessionp->checkError(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index 4b84eec..a5affc6 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -110,7 +110,14 @@ namespace Messaging { + Sender ^ GetSender(System::String ^ name); + Receiver ^ GetReceiver(System::String ^ name); + +- Connection ^ GetConnection(); ++ property Org::Apache::Qpid::Messaging::Connection ^ Connection ++ { ++ Org::Apache::Qpid::Messaging::Connection ^ get () ++ { ++ return parentConnectionp; ++ } ++ } ++ + + property System::Boolean HasError + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +index 2e0e481..c1b3035 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +@@ -74,12 +74,12 @@ namespace Org.Apache.Qpid.Messaging + // + + Message m2 = new Message("rarey"); +- UInt64 m2Size = m2.GetContentSize(); ++ UInt64 m2Size = m2.ContentSize; + + + byte[] myRaw = new byte [m2Size]; + +- m2.GetRaw(myRaw); ++ m2.GetContent(myRaw); + Console.WriteLine("Got raw array size {0}", m2Size); + for (UInt64 i = 0; i < m2Size; i++) + Console.Write("{0} ", myRaw[i].ToString()); +@@ -93,9 +93,9 @@ namespace Org.Apache.Qpid.Messaging + rawData[i] = i; + Message m3 = new Message(rawData); + +- byte[] rawDataReadback = new byte[m3.GetContentSize()]; +- m3.GetRaw(rawDataReadback); +- for (UInt64 i = 0; i < m3.GetContentSize(); i++) ++ byte[] rawDataReadback = new byte[m3.ContentSize]; ++ m3.GetContent(rawDataReadback); ++ for (UInt64 i = 0; i < m3.ContentSize; i++) + Console.Write("{0} ", rawDataReadback[i].ToString()); + Console.WriteLine(); + +@@ -108,13 +108,24 @@ namespace Org.Apache.Qpid.Messaging + + Message m4 = new Message(rawData4, 246, 10); + +- byte[] rawDataReadback4 = new byte[m4.GetContentSize()]; +- m4.GetRaw(rawDataReadback4); +- for (UInt64 i = 0; i < m4.GetContentSize(); i++) ++ byte[] rawDataReadback4 = new byte[m4.ContentSize]; ++ m4.GetContent(rawDataReadback4); ++ for (UInt64 i = 0; i < m4.ContentSize; i++) + Console.Write("{0} ", rawDataReadback4[i].ToString()); + Console.WriteLine(); + + // ++ // Set content from array slice ++ // ++ m4.SetContent(rawData4, 100, 5); ++ ++ byte[] rawDataReadback4a = new byte[m4.ContentSize]; ++ m4.GetContent(rawDataReadback4a); ++ for (UInt64 i = 0; i < m4.ContentSize; i++) ++ Console.Write("{0} ", rawDataReadback4a[i].ToString()); ++ Console.WriteLine(); ++ ++ // + // Guid factoids + // + Guid myGuid = new Guid("000102030405060708090a0b0c0d0e0f"); +-- +1.5.5.6 + +From 0d9a38bd4ec42aeaf7f05035483f8227f8b72cdd Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 25 Jun 2010 22:35:28 +0000 +Subject: [PATCH] QPID-2589 - Patch from Chuck Rolke + Re-do changes to Session.cpp. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958141 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 80 +++++++++++++++++++++++-- + 1 files changed, 74 insertions(+), 6 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index d5f4584..bafc9b3 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -445,10 +445,44 @@ namespace Messaging { + + Sender ^ Session::GetSender(System::String ^ name) + { +- ::qpid::messaging::Sender sender = ::qpid::messaging::Sender( +- sessionp->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name)) ); ++ System::Exception ^ newException = nullptr; ++ ::qpid::messaging::Sender * senderp = NULL; ++ Sender ^ newSender = nullptr; + +- Sender ^ newSender = gcnew Sender(&sender, this); ++ try ++ { ++ senderp = new ::qpid::messaging::Sender; ++ ++ *senderp = sessionp->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name)); ++ ++ newSender = gcnew Sender(senderp, this); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ finally ++ { ++ if (newException != nullptr) ++ { ++ if (newSender != nullptr) ++ { ++ delete newSender; ++ } ++ else ++ { ++ if (senderp != NULL) ++ { ++ delete senderp; ++ } ++ } ++ } ++ } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + + return newSender; + } +@@ -457,10 +491,44 @@ namespace Messaging { + + Receiver ^ Session::GetReceiver(System::String ^ name) + { +- ::qpid::messaging::Receiver receiver = ::qpid::messaging::Receiver( +- sessionp->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name)) ); ++ System::Exception ^ newException = nullptr; ++ ::qpid::messaging::Receiver * receiverp = NULL; ++ Receiver ^ newReceiver = nullptr; ++ ++ try ++ { ++ receiverp = new ::qpid::messaging::Receiver; + +- Receiver ^ newReceiver = gcnew Receiver(&receiver, this); ++ *receiverp = sessionp->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name)); ++ ++ newReceiver = gcnew Receiver(receiverp, this); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ finally ++ { ++ if (newException != nullptr) ++ { ++ if (newReceiver != nullptr) ++ { ++ delete newReceiver; ++ } ++ else ++ { ++ if (receiverp != NULL) ++ { ++ delete receiverp; ++ } ++ } ++ } ++ } ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + + return newReceiver; + } +-- +1.5.5.6 + +From 500df302fb0bdad8eb1f0b3ad9253d379bb1c7e1 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 28 Jun 2010 20:22:25 +0000 +Subject: [PATCH] Bug 603085: Install and package Visual Studio debugging symbols (.pdb) files, + in the windows sdk zip package. + +A Modified version of a patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@958703 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/bld-winsdk.ps1 | 278 ++++++++++++++++++++++--------------------- + qpid/cpp/src/CMakeLists.txt | 81 +++++++------ + 2 files changed, 191 insertions(+), 168 deletions(-) + +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index 8618160..7aa6df8 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -1,133 +1,145 @@ +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +- +-# This script requires cmake, and 7z to be already on the path devenv should be on the path as +-# a result of installing Visual Studio +- +-Set-PSDebug -strict +-$ErrorActionPreference='Stop' +- +-if ($args.length -lt 1) { +- Write-Host 'Need to specify location of qpid src tree' +- exit +-} +- +-$qpid_src=$args[0] +-$ver=$args[1] +-if ($ver -eq $null) { +- $qpid_version_file="$qpid_src\QPID_VERSION.txt" +- +- if ( !(Test-Path $qpid_version_file)) { +- Write-Host "Path doesn't seem to be a qpid src tree (no QPID_VERSION.txt)" +- exit +- } +- $ver=Get-Content $qpid_version_file +-} +- +-$randomness=[System.IO.Path]::GetRandomFileName() +- +-$qpid_cpp_src="$qpid_src\cpp" +-$install_dir="install_$randomness" +-$preserve_dir="preserve_$randomness" +-$zipfile="qpid-cpp-$ver.zip" +- +-# This assumes Visual Studio 2008 +-cmake -G "Visual Studio 9 2008" "-DCMAKE_INSTALL_PREFIX=$install_dir" $qpid_cpp_src +- +-# Need to build doxygen api docs separately as nothing depends on them +-devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api +- +-# Build both debug and release so we can ship both sets of libs +-# (Do release after debug so that the release executables overwrite the +-# debug executables) +-devenv qpid-cpp.sln /build "Debug|Win32" /project INSTALL +-devenv qpid-cpp.sln /build "Release|Win32" /project INSTALL +- +-# This would be kludgy if we have only one entry as the array declaration syntax +-# can't cope with just one nested array +-# Target must be a directory +-$move=( +- ('bin/*.lib','lib'), +- ('bin/boost/*.dll','bin') +-) +- +-$preserve=( +- 'include/qpid/agent', +- 'include/qpid/amqp_0_10', +- 'include/qpid/management', +- 'include/qpid/messaging', +- 'include/qpid/sys/IntegerTypes.h', +- 'include/qpid/sys/windows/IntegerTypes.h', 'include/qpid/sys/posix/IntegerTypes.h', +- 'include/qpid/types', +- 'include/qpid/CommonImportExport.h') +-$remove=( +- 'bin/qpidd.exe', 'bin/qpidbroker*.*', +- 'bin/qmfengine*.*', 'bin/qpidxarm*.*', +- 'bin/boost_regex*.*', +- 'bin/boost', +- 'conf', +- 'examples/direct', +- 'examples/failover', +- 'examples/fanout', +- 'examples/pub-sub', +- 'examples/qmf-console', +- 'examples/request-response', +- 'examples/tradedemo', +- 'examples/old-examples.sln', +- 'examples/README.*', +- 'examples/verify*', +- 'include', +- 'plugins') +- +-# Move some files around in the install tree +-foreach ($pattern in $move) { +- $target = Join-Path $install_dir $pattern[1] +- New-Item -force -type directory $target +- Move-Item -force -path "$install_dir/$($pattern[0])" -destination "$install_dir/$($pattern[1])" +-} +-# Copy aside the files to preserve +-New-Item -path $preserve_dir -type directory +-foreach ($pattern in $preserve) { +- $target = Join-Path $preserve_dir $pattern +- $tparent = Split-Path -parent $target +- New-Item -force -type directory $tparent +- Move-Item -force -path "$install_dir/$pattern" -destination "$preserve_dir/$pattern" +-} +-# Remove everything to remove +-foreach ($pattern in $remove) { +- Remove-Item -recurse "$install_dir/$pattern" +-} +-# Copy back the preserved things +-foreach ($pattern in $preserve) { +- $target = Join-Path $install_dir $pattern +- $tparent = Split-Path -parent $target +- New-Item -force -type directory $tparent +- Move-Item -force -path "$preserve_dir/$pattern" -destination "$install_dir/$pattern" +-} +-Remove-Item -recurse $preserve_dir +- +-# It would be very good to cut down on the shipped boost include files too, ideally by +-# starting with the qpid files and recursively noting all boost headers actually needed +- +-# Create a new zip +-if (Test-Path $zipfile) {Remove-Item $zipfile} +-&'7z' a $zipfile ".\$install_dir\*" +- +-# Remove temporary install area +-# Remove-Item -recurse $install_dir ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License. ++# ++ ++# This script requires cmake, and 7z to be already on the path devenv should be on the path as ++# a result of installing Visual Studio ++ ++Set-PSDebug -strict ++$ErrorActionPreference='Stop' ++ ++if ($args.length -lt 1) { ++ Write-Host 'Need to specify location of qpid src tree' ++ exit ++} ++ ++$qpid_src=$args[0] ++$ver=$args[1] ++if ($ver -eq $null) { ++ $qpid_version_file="$qpid_src\QPID_VERSION.txt" ++ ++ if ( !(Test-Path $qpid_version_file)) { ++ Write-Host "Path doesn't seem to be a qpid src tree (no QPID_VERSION.txt)" ++ exit ++ } ++ $ver=Get-Content $qpid_version_file ++} ++ ++$randomness=[System.IO.Path]::GetRandomFileName() ++ ++$qpid_cpp_src="$qpid_src\cpp" ++$install_dir="install_$randomness" ++$preserve_dir="preserve_$randomness" ++$zipfile="qpid-cpp-$ver.zip" ++ ++# This assumes Visual Studio 2008 ++cmake -G "Visual Studio 9 2008" "-DCMAKE_INSTALL_PREFIX=$install_dir" $qpid_cpp_src ++ ++# Need to build doxygen api docs separately as nothing depends on them ++devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api ++ ++# Build both Debug and Release builds so we can ship both sets of libs: ++# Make RelWithDebInfo for debuggable release code. ++# (Do Release after Debug so that the release executables overwrite the ++# debug executables. Don't skip Debug as it creates some needed content.) ++devenv qpid-cpp.sln /build "Debug|Win32" /project INSTALL ++devenv qpid-cpp.sln /build "RelWithDebInfo|Win32" /project INSTALL ++ ++# This would be kludgy if we have only one entry as the array declaration syntax ++# can't cope with just one nested array ++# Target must be a directory ++$move=( ++ ('bin/*.lib','lib'), ++ ('bin/boost/*.dll','bin') ++) ++ ++$preserve=( ++ 'include/qpid/agent', ++ 'include/qpid/amqp_0_10', ++ 'include/qpid/management', ++ 'include/qpid/messaging', ++ 'include/qpid/sys/IntegerTypes.h', ++ 'include/qpid/sys/windows/IntegerTypes.h', 'include/qpid/sys/posix/IntegerTypes.h', ++ 'include/qpid/types', ++ 'include/qpid/CommonImportExport.h') ++$remove=( ++ 'bin/qpidd.exe', 'bin/qpidbroker*.*', ++ 'bin/*PDB/qpidd.exe', 'bin/*PDB/qpidbroker*.*', ++ 'bin/qmfengine*.*', 'bin/qpidxarm*.*', ++ 'bin/*PDB/qmfengine*.*', 'bin/*PDB/qpidxarm*.*', ++ 'bin/boost_regex*.*', ++ 'bin/boost', ++ 'conf', ++ 'examples/direct', ++ 'examples/failover', ++ 'examples/fanout', ++ 'examples/pub-sub', ++ 'examples/qmf-console', ++ 'examples/request-response', ++ 'examples/tradedemo', ++ 'examples/old-examples.sln', ++ 'examples/README.*', ++ 'examples/verify*', ++ 'include', ++ 'plugins') ++ ++# Move some files around in the install tree ++foreach ($pattern in $move) { ++ $target = Join-Path $install_dir $pattern[1] ++ New-Item -force -type directory $target ++ Move-Item -force -path "$install_dir/$($pattern[0])" -destination "$install_dir/$($pattern[1])" ++} ++ ++# Copy aside the files to preserve ++New-Item -path $preserve_dir -type directory ++foreach ($pattern in $preserve) { ++ $target = Join-Path $preserve_dir $pattern ++ $tparent = Split-Path -parent $target ++ New-Item -force -type directory $tparent ++ Move-Item -force -path "$install_dir/$pattern" -destination "$preserve_dir/$pattern" ++} ++# Remove everything to remove ++foreach ($pattern in $remove) { ++ Remove-Item -recurse "$install_dir/$pattern" ++} ++# Copy back the preserved things ++foreach ($pattern in $preserve) { ++ $target = Join-Path $install_dir $pattern ++ $tparent = Split-Path -parent $target ++ New-Item -force -type directory $tparent ++ Move-Item -force -path "$preserve_dir/$pattern" -destination "$install_dir/$pattern" ++} ++Remove-Item -recurse $preserve_dir ++ ++# Zip the /bin PDB files into two zip files. ++# we previously arranged that the Debug pdbs go in the DebugPDB subdirectory ++# and the Release pdbs go in the ReleasePDB subdirectory ++&'7z' a -mx9 ".\$install_dir\bin\symbols-debug.zip" ".\$install_dir\bin\DebugPDB\*.pdb" ++&'7z' a -mx9 ".\$install_dir\bin\symbols-release.zip" ".\$install_dir\bin\ReleasePDB\*.pdb" ++ ++# It would be very good to cut down on the shipped boost include files too, ideally by ++# starting with the qpid files and recursively noting all boost headers actually needed ++ ++ ++# Create a new zip for the whole kit. ++# Exclude *.pdb so as not include the debug symbols twice ++if (Test-Path $zipfile) {Remove-Item $zipfile} ++&'7z' a $zipfile ".\$install_dir\*" -xr!*pdb ++ ++# Remove temporary install area ++# Remove-Item -recurse $install_dir +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index 7083574..cf9161d 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -34,6 +34,37 @@ include(FindDoxygen) + + #set (CMAKE_VERBOSE_MAKEFILE ON) # for debugging + ++# ++# Set up installation of .pdb files if the compiler is Visual Studio ++# ++# Sample: install_pdb (qpidcommon ${QPID_COMPONENT_COMMON}) ++# ++MACRO (install_pdb theLibrary theComponent) ++ if (MSVC) ++ get_target_property(library_dll ${theLibrary} LOCATION) ++ string(REPLACE .dll .pdb library_pdb ${library_dll}) ++ string(REPLACE $(OutDir) \${CMAKE_INSTALL_CONFIG_NAME} library_pdb ${library_pdb}) ++ string(REPLACE .pdb d.pdb libraryd_pdb ${library_pdb}) ++ #message(STATUS "_pdb: ${library_pdb}, ${libraryd_pdb}") ++ install (PROGRAMS ++ ${library_pdb} ++ DESTINATION ${QPID_INSTALL_LIBDIR}/ReleasePDB ++ COMPONENT ${theComponent} ++ OPTIONAL ++ CONFIGURATIONS Release|MinSizeRel) ++ install (PROGRAMS ++ ${library_pdb} ++ DESTINATION ${QPID_INSTALL_LIBDIR}/ReleasePDB ++ COMPONENT ${theComponent} ++ CONFIGURATIONS RelWithDebInfo) ++ install (PROGRAMS ++ ${libraryd_pdb} ++ DESTINATION ${QPID_INSTALL_LIBDIR}/DebugPDB ++ COMPONENT ${theComponent} ++ CONFIGURATIONS Debug) ++ endif (MSVC) ++ENDMACRO (install_pdb) ++ + # check if we generate source as part of the build + # - rubygen generates the amqp spec and clustering + # - managementgen generates the broker management code +@@ -460,6 +491,10 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows) + if (MSVC80) + add_definitions(/D "_WIN32_WINNT=0x0501") + endif (MSVC80) ++ ++ # set the RelWithDebInfo compile/link switchs to equal Release ++ set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /O2 /Ob2 /D NDEBUG") ++ set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/debug /INCREMENTAL:NO") + endif (MSVC) + + set (qpidcommon_platform_SOURCES +@@ -544,7 +579,7 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows) + + ${qpid_poller_module} + ) +- set (qpidcommon_platform_LIBS ++ set (qpidcommon_platform_LIBS + ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY} + uuid +@@ -646,19 +681,8 @@ set_target_properties (qpidcommon PROPERTIES + install (TARGETS qpidcommon + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_COMMON}) ++install_pdb (qpidcommon ${QPID_COMPONENT_COMMON}) + +-if (WIN32) +- # Need the .pdb file, which isn't installed with the .dll/.lib +- # Not built... if needed, add the build option then uncomment this. +- #get_target_property(qpidcommon_dll qpidcommon LOCATION) +- #string(REPLACE .dll .pdb qpidcommon_pdb ${qpidcommon_dll}) +- #string(REPLACE $(OutDir) \${CMAKE_INSTALL_CONFIG_NAME} qpidcommon_pdb ${qpidcommon_pdb}) +- #message(STATUS "_pdb: ${qpidcommon_pdb}") +- #install (PROGRAMS +- # ${qpidcommon_pdb} +- # DESTINATION ${QPID_INSTALL_LIBDIR} +- # COMPONENT ${QPID_COMPONENT_CLIENT}) +-endif (WIN32) + + set (qpidclient_SOURCES + ${rgen_client_srcs} +@@ -709,6 +733,8 @@ install (DIRECTORY ../include/qpid + DESTINATION ${QPID_INSTALL_INCLUDEDIR} + COMPONENT ${QPID_COMPONENT_CLIENT_INCLUDE} + PATTERN ".svn" EXCLUDE) ++install_pdb (qpidclient ${QPID_COMPONENT_CLIENT}) ++ + + set (qpidmessaging_SOURCES + qpid/messaging/Address.cpp +@@ -756,6 +782,7 @@ set_target_properties (qpidmessaging PROPERTIES VERSION ${qpidc_version}) + install (TARGETS qpidmessaging + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_CLIENT}) ++install_pdb (qpidmessaging ${QPID_COMPONENT_CLIENT}) + + # Released source artifacts from Apache have the generated headers included in + # the source tree, not the binary tree. So don't attempt to grab them when +@@ -766,17 +793,6 @@ if (NOT QPID_GENERATED_HEADERS_IN_SOURCE) + COMPONENT ${QPID_COMPONENT_CLIENT_INCLUDE}) + endif (NOT QPID_GENERATED_HEADERS_IN_SOURCE) + +-if (WIN32) +- # Need the .pdb file, which isn't installed with the .dll/.lib +- #get_target_property(qpidclient_dll qpidclient LOCATION) +- #string(REPLACE .dll .pdb qpidclient_pdb ${qpidclient_dll}) +- #string(REPLACE $(OutDir) \${CMAKE_INSTALL_CONFIG_NAME} qpidclient_pdb ${qpidclient_pdb}) +- #message(STATUS "_pdb: ${qpidclient_pdb}") +- #install (PROGRAMS +- # ${qpidclient_pdb} +- # DESTINATION ${QPID_INSTALL_LIBDIR} +- # COMPONENT ${QPID_COMPONENT_CLIENT}) +-endif (WIN32) + + if (WIN32) + set(AMQP_WCF_DIR ${qpid-cpp_SOURCE_DIR}/../wcf) +@@ -787,6 +803,7 @@ if (WIN32) + install (TARGETS qpidxarm + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_CLIENT}) ++ install_pdb (qpidxarm ${QPID_COMPONENT_CLIENT}) + endif (EXISTS ${DTC_PLUGIN_SOURCE}) + endif (WIN32) + +@@ -867,6 +884,8 @@ endif (MSVC) + install (TARGETS qpidbroker + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_BROKER}) ++install_pdb (qpidbroker ${QPID_COMPONENT_BROKER}) ++ + + set (qpidd_SOURCES + ${qpidd_platform_SOURCES} +@@ -905,6 +924,7 @@ set_target_properties (qmf PROPERTIES + install (TARGETS qmf OPTIONAL + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_QMF}) ++install_pdb (qmf ${QPID_COMPONENT_QMF}) + + set (qmfengine_SOURCES + qmf/engine/Agent.cpp +@@ -944,6 +964,7 @@ set_target_properties (qmfengine PROPERTIES + install (TARGETS qmfengine OPTIONAL + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_QMF}) ++install_pdb (qmfengine ${QPID_COMPONENT_QMF}) + + # QMF console library + #module_hdr += \ +@@ -993,17 +1014,7 @@ set_target_properties (qmfconsole PROPERTIES + install (TARGETS qmfconsole + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_QMF}) +-if (WIN32) +- # Need the .pdb file, which isn't installed with the .dll/.lib +- #get_target_property(qmfconsole_dll qmfconsole LOCATION) +- #string(REPLACE .dll .pdb qmfconsole_pdb ${qmfconsole_dll}) +- #string(REPLACE $(OutDir) \${CMAKE_INSTALL_CONFIG_NAME} qmfconsole_pdb ${qmfconsole_pdb}) +- #message(STATUS "_pdb: ${qmfconsole_pdb}") +- #install (PROGRAMS +- # ${qmfconsole_pdb} +- # DESTINATION ${QPID_INSTALL_LIBDIR} +- # COMPONENT ${QPID_COMPONENT_QMF}) +-endif (WIN32) ++install_pdb (qmfconsole ${QPID_COMPONENT_QMF}) + + # A queue event listener plugin that creates messages on a replication + # queue corresponding to enqueue and dequeue events: +-- +1.5.5.6 + +From 62d79016f13c729abccba7a84d1dbb33ec94d9d5 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 30 Jun 2010 12:44:58 +0000 +Subject: [PATCH] BZ-608807 fixed concurrent close + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959289 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/endpoints.py | 123 ++++++++++++++++-------- + qpid/python/qpid/messaging/exceptions.py | 9 ++ + qpid/python/qpid/tests/messaging/endpoints.py | 72 ++++++++++++++- + 3 files changed, 162 insertions(+), 42 deletions(-) + +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index 62423ca..f7afc66 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -44,7 +44,14 @@ log = getLogger("qpid.messaging") + + static = staticmethod + +-class Connection: ++class Endpoint: ++ ++ def _ecwait(self, predicate, timeout=None): ++ result = self._ewait(lambda: self.closed or predicate(), timeout) ++ self.check_closed() ++ return result ++ ++class Connection(Endpoint): + + """ + A Connection manages a group of L{Sessions} and connects +@@ -186,6 +193,11 @@ class Connection: + self.check_error() + return result + ++ def check_closed(self): ++ if self.closed: ++ self._condition.gc() ++ raise ConnectionClosed() ++ + @synchronized + def session(self, name=None, transactional=False): + """ +@@ -215,7 +227,7 @@ class Connection: + + @synchronized + def _remove_session(self, ssn): +- del self.sessions[ssn.name] ++ self.sessions.pop(ssn.name, 0) + + @synchronized + def open(self): +@@ -239,9 +251,10 @@ class Connection: + """ + Attach to the remote endpoint. + """ +- self._connected = True +- self._driver.start() +- self._wakeup() ++ if not self._connected: ++ self._connected = True ++ self._driver.start() ++ self._wakeup() + self._ewait(lambda: self._transport_connected and not self._unlinked()) + + def _unlinked(self): +@@ -255,13 +268,18 @@ class Connection: + """ + Detach from the remote endpoint. + """ +- self._connected = False +- self._wakeup() ++ if self._connected: ++ self._connected = False ++ self._wakeup() ++ cleanup = True ++ else: ++ cleanup = False + try: + if not self._wait(lambda: not self._transport_connected, timeout=timeout): + raise Timeout("detach timed out") + finally: +- self._driver.stop() ++ if cleanup: ++ self._driver.stop() + self._condition.gc() + + @synchronized +@@ -283,7 +301,7 @@ class Connection: + self.detach(timeout=timeout) + self._open = False + +-class Session: ++class Session(Endpoint): + + """ + Sessions provide a linear context for sending and receiving +@@ -532,6 +550,10 @@ class Session: + self.check_error() + return result + ++ def check_closed(self): ++ if self.closed: ++ raise SessionClosed() ++ + @synchronized + def sender(self, target, **options): + """ +@@ -588,26 +610,27 @@ class Session: + result += 1 + return result + +- def _peek(self, predicate): ++ def _peek(self, receiver): + for msg in self.incoming: +- if predicate(msg): ++ if msg._receiver == receiver: + return msg + +- def _pop(self, predicate): ++ def _pop(self, receiver): + i = 0 + while i < len(self.incoming): + msg = self.incoming[i] +- if predicate(msg): ++ if msg._receiver == receiver: + del self.incoming[i] + return msg + else: + i += 1 + + @synchronized +- def _get(self, predicate, timeout=None): +- if self._ewait(lambda: ((self._peek(predicate) is not None) or self.closing), ++ def _get(self, receiver, timeout=None): ++ if self._ewait(lambda: ((self._peek(receiver) is not None) or ++ self.closing or receiver.closed), + timeout): +- msg = self._pop(predicate) ++ msg = self._pop(receiver) + if msg is not None: + msg._receiver.returned += 1 + self.unacked.append(msg) +@@ -617,7 +640,7 @@ class Session: + + @synchronized + def next_receiver(self, timeout=None): +- if self._ewait(lambda: self.incoming, timeout): ++ if self._ecwait(lambda: self.incoming, timeout): + return self.incoming[0]._receiver + else: + raise Empty +@@ -644,14 +667,14 @@ class Session: + # XXX: this is currently a SendError, maybe it should be a SessionError? + raise InsufficientCapacity("ack_capacity = %s" % self.ack_capacity) + self._wakeup() +- self._ewait(lambda: len(self.acked) < self.ack_capacity) ++ self._ecwait(lambda: len(self.acked) < self.ack_capacity) + m._disposition = disposition + self.unacked.remove(m) + self.acked.append(m) + + self._wakeup() + if sync: +- self._ewait(lambda: not [m for m in messages if m in self.acked]) ++ self._ecwait(lambda: not [m for m in messages if m in self.acked]) + + @synchronized + def commit(self): +@@ -663,7 +686,7 @@ class Session: + raise NontransactionalSession() + self.committing = True + self._wakeup() +- self._ewait(lambda: not self.committing) ++ self._ecwait(lambda: not self.committing) + if self.aborted: + raise TransactionAborted() + assert self.committed +@@ -678,7 +701,7 @@ class Session: + raise NontransactionalSession() + self.aborting = True + self._wakeup() +- self._ewait(lambda: not self.aborting) ++ self._ecwait(lambda: not self.aborting) + assert self.aborted + + @synchronized +@@ -701,8 +724,10 @@ class Session: + for link in self.receivers + self.senders: + link.close(timeout=timeout) + +- self.closing = True +- self._wakeup() ++ if not self.closing: ++ self.closing = True ++ self._wakeup() ++ + try: + if not self._ewait(lambda: self.closed, timeout=timeout): + raise Timeout("session close timed out") +@@ -715,7 +740,7 @@ def _mangle(addr): + else: + return addr + +-class Sender: ++class Sender(Endpoint): + + """ + Sends outgoing messages. +@@ -758,6 +783,10 @@ class Sender: + self.check_error() + return result + ++ def check_closed(self): ++ if self.closed: ++ raise LinkClosed() ++ + @synchronized + def unsettled(self): + """ +@@ -799,7 +828,7 @@ class Sender: + if not self.session.connection._connected or self.session.closing: + raise Detached() + +- self._ewait(lambda: self.linked) ++ self._ecwait(lambda: self.linked) + + if isinstance(object, Message): + message = object +@@ -812,7 +841,7 @@ class Sender: + if self.capacity is not UNLIMITED: + if self.capacity <= 0: + raise InsufficientCapacity("capacity = %s" % self.capacity) +- if not self._ewait(self.available, timeout=timeout): ++ if not self._ecwait(self.available, timeout=timeout): + raise InsufficientCapacity("capacity = %s" % self.capacity) + + # XXX: what if we send the same message to multiple senders? +@@ -849,15 +878,20 @@ class Sender: + if self.acked < self.queued: + self.sync(timeout=timeout) + +- self.closing = True +- self._wakeup() ++ if not self.closing: ++ self.closing = True ++ self._wakeup() ++ + try: + if not self.session._ewait(lambda: self.closed, timeout=timeout): + raise Timeout("sender close timed out") + finally: +- self.session.senders.remove(self) ++ try: ++ self.session.senders.remove(self) ++ except ValueError: ++ pass + +-class Receiver(object): ++class Receiver(Endpoint, object): + + """ + Receives incoming messages from a remote source. Messages may be +@@ -923,6 +957,10 @@ class Receiver(object): + self.check_error() + return result + ++ def check_closed(self): ++ if self.closed: ++ raise LinkClosed() ++ + @synchronized + def unsettled(self): + """ +@@ -941,9 +979,6 @@ class Receiver(object): + """ + return self.received - self.returned + +- def _pred(self, msg): +- return msg._receiver == self +- + @synchronized + def fetch(self, timeout=None): + """ +@@ -955,20 +990,21 @@ class Receiver(object): + @param timeout: the time to wait for a message to be available + """ + +- self._ewait(lambda: self.linked) ++ self._ecwait(lambda: self.linked) + + if self._capacity == 0: + self.granted = self.returned + 1 + self._wakeup() +- self._ewait(lambda: self.impending >= self.granted) +- msg = self.session._get(self._pred, timeout=timeout) ++ self._ecwait(lambda: self.impending >= self.granted) ++ msg = self.session._get(self, timeout=timeout) + if msg is None: ++ self.check_closed() + self.draining = True + self._wakeup() +- self._ewait(lambda: not self.draining) ++ self._ecwait(lambda: not self.draining) + self._grant() + self._wakeup() +- msg = self.session._get(self._pred, timeout=0) ++ msg = self.session._get(self, timeout=0) + if msg is None: + raise Empty() + elif self._capacity not in (0, UNLIMITED.value): +@@ -988,12 +1024,17 @@ class Receiver(object): + """ + Close the receiver. + """ +- self.closing = True +- self._wakeup() ++ if not self.closing: ++ self.closing = True ++ self._wakeup() ++ + try: + if not self.session._ewait(lambda: self.closed, timeout=timeout): + raise Timeout("receiver close timed out") + finally: +- self.session.receivers.remove(self) ++ try: ++ self.session.receivers.remove(self) ++ except ValueError: ++ pass + + __all__ = ["Connection", "Session", "Sender", "Receiver"] +diff --git a/qpid/python/qpid/messaging/exceptions.py b/qpid/python/qpid/messaging/exceptions.py +index f640b6b..27bc5af 100644 +--- a/qpid/python/qpid/messaging/exceptions.py ++++ b/qpid/python/qpid/messaging/exceptions.py +@@ -60,6 +60,9 @@ class VersionError(ConnectError): + class AuthenticationFailure(ConnectError): + pass + ++class ConnectionClosed(ConnectionError): ++ pass ++ + ## Session Errors + + class SessionError(MessagingError): +@@ -91,6 +94,9 @@ class UnauthorizedAccess(SessionError): + class ServerError(SessionError): + pass + ++class SessionClosed(SessionError): ++ pass ++ + ## Link Errors + + class LinkError(MessagingError): +@@ -117,6 +123,9 @@ class AssertionFailed(ResolutionError): + class NotFound(ResolutionError): + pass + ++class LinkClosed(LinkError): ++ pass ++ + ## Sender Errors + + class SenderError(LinkError): +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index c01f16e..52ca9f3 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -20,12 +20,13 @@ + # setup, usage, teardown, errors(sync), errors(async), stress, soak, + # boundary-conditions, config + +-import errno, os, socket, time ++import errno, os, socket, sys, time + from qpid import compat + from qpid.compat import set + from qpid.messaging import * + from qpid.messaging.transports import TRANSPORTS + from qpid.tests.messaging import Base ++from threading import Thread + + class SetupTests(Base): + +@@ -212,6 +213,32 @@ class ConnectionTests(Base): + self.conn.close() + assert not self.conn.attached() + ++ def testSimultaneousClose(self): ++ ssns = [self.conn.session() for i in range(3)] ++ for s in ssns: ++ for i in range(3): ++ s.receiver("amq.topic") ++ s.sender("amq.topic") ++ ++ def closer(errors): ++ try: ++ self.conn.close() ++ except: ++ _, e, _ = sys.exc_info() ++ errors.append(compat.format_exc(e)) ++ ++ t1_errors = [] ++ t2_errors = [] ++ t1 = Thread(target=lambda: closer(t1_errors)) ++ t2 = Thread(target=lambda: closer(t2_errors)) ++ t1.start() ++ t2.start() ++ t1.join(self.delay()) ++ t2.join(self.delay()) ++ ++ assert not t1_errors, t1_errors[0] ++ assert not t2_errors, t2_errors[0] ++ + class hangable: + + def __init__(self, host, port): +@@ -655,6 +682,49 @@ class ReceiverTests(Base): + assert msg.content == three + self.ssn.acknowledge() + ++ def fetchFromClosedTest(self, entry): ++ entry.close() ++ try: ++ msg = self.rcv.fetch(0) ++ assert False, "unexpected result: %s" % msg ++ except Empty, e: ++ assert False, "unexpected exception: %s" % e ++ except LinkClosed, e: ++ pass ++ ++ def testFetchFromClosedReceiver(self): ++ self.fetchFromClosedTest(self.rcv) ++ ++ def testFetchFromClosedSession(self): ++ self.fetchFromClosedTest(self.ssn) ++ ++ def testFetchFromClosedConnection(self): ++ self.fetchFromClosedTest(self.conn) ++ ++ def fetchFromConcurrentCloseTest(self, entry): ++ def closer(): ++ time.sleep(self.delay()) ++ entry.close() ++ t = Thread(target=closer) ++ t.start() ++ try: ++ msg = self.rcv.fetch() ++ assert False, "unexpected result: %s" % msg ++ except Empty, e: ++ assert False, "unexpected exception: %s" % e ++ except LinkClosed, e: ++ pass ++ t.join() ++ ++ def testFetchFromConcurrentCloseReceiver(self): ++ self.fetchFromConcurrentCloseTest(self.rcv) ++ ++ def testFetchFromConcurrentCloseSession(self): ++ self.fetchFromConcurrentCloseTest(self.ssn) ++ ++ def testFetchFromConcurrentCloseConnection(self): ++ self.fetchFromConcurrentCloseTest(self.conn) ++ + def testCapacityIncrease(self): + content = self.send("testCapacityIncrease") + self.sleep() +-- +1.5.5.6 + +From d31918432748c8e6f3596548796fb45bf778b20e Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 30 Jun 2010 14:25:03 +0000 +Subject: [PATCH] BZ-609258 added accessor for auth_username + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959326 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 1 + + qpid/python/qpid/messaging/endpoints.py | 1 + + qpid/python/qpid/sasl.py | 6 ++++++ + 3 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index a732a60..2175715 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -674,6 +674,7 @@ class Engine: + self._sasl_encode = True + + def do_connection_open_ok(self, open_ok): ++ self.connection.auth_username = self._sasl.auth_username() + self._connected = True + self._sasl_decode = True + self.connection._transport_connected = True +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index f7afc66..f989d6c 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -137,6 +137,7 @@ class Connection(Endpoint): + self.heartbeat = options.get("heartbeat") + self.username = default(url.user, options.get("username", None)) + self.password = default(url.password, options.get("password", None)) ++ self.auth_username = None + + self.sasl_mechanisms = options.get("sasl_mechanisms") + self.sasl_service = options.get("sasl_service", "qpidd") +diff --git a/qpid/python/qpid/sasl.py b/qpid/python/qpid/sasl.py +index 6b00dda..6645903 100644 +--- a/qpid/python/qpid/sasl.py ++++ b/qpid/python/qpid/sasl.py +@@ -65,6 +65,9 @@ class WrapperClient: + else: + raise SASLError(self._cli.getError()) + ++ def auth_username(self): ++ return self._cli.getUserId() ++ + class PlainClient: + + def __init__(self): +@@ -92,6 +95,9 @@ class PlainClient: + def decode(self, bytes): + return bytes + ++ def auth_username(self): ++ return self.attrs.get("username") ++ + try: + from saslwrapper import Client as _Client + Client = WrapperClient +-- +1.5.5.6 + +From 5c3a50f97f327161fd5bd991c8ef4a8b6aece62a Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 30 Jun 2010 14:36:43 +0000 +Subject: [PATCH] BZ-609258 fixed auth username for sasl + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959333 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/sasl.py | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/sasl.py b/qpid/python/qpid/sasl.py +index 6645903..d4c15bd 100644 +--- a/qpid/python/qpid/sasl.py ++++ b/qpid/python/qpid/sasl.py +@@ -66,7 +66,11 @@ class WrapperClient: + raise SASLError(self._cli.getError()) + + def auth_username(self): +- return self._cli.getUserId() ++ status, result = self._cli.getUserId() ++ if status: ++ return result ++ else: ++ raise SASLError(self._cli.getError()) + + class PlainClient: + +-- +1.5.5.6 + +From d8dc61cf1ba154f8ff373313d4416421b6649d33 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 30 Jun 2010 19:54:00 +0000 +Subject: [PATCH] Bug 588766 - Create separate library for messaging API and implementation + +QPID-2708: Create a separate qpidtypes library for the types namespace. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959419 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit d991ec04ca246220148a1efff7eb6995d80cd676) +--- + qpid/cpp/include/qpid/types/Exception.h | 8 +- + qpid/cpp/include/qpid/types/ImportExport.h | 33 ++++++ + qpid/cpp/include/qpid/types/Uuid.h | 58 +++++----- + qpid/cpp/include/qpid/types/Variant.h | 168 ++++++++++++++-------------- + qpid/cpp/src/CMakeLists.txt | 34 +++++- + qpid/cpp/src/Makefile.am | 20 ++-- + qpid/cpp/src/qpid/sys/windows/uuid.h | 16 ++-- + 7 files changed, 197 insertions(+), 140 deletions(-) + create mode 100644 qpid/cpp/include/qpid/types/ImportExport.h + +diff --git a/qpid/cpp/include/qpid/types/Exception.h b/qpid/cpp/include/qpid/types/Exception.h +index a8b7d12..d061a7d 100644 +--- a/qpid/cpp/include/qpid/types/Exception.h ++++ b/qpid/cpp/include/qpid/types/Exception.h +@@ -23,7 +23,7 @@ + */ + + #include +-#include "qpid/CommonImportExport.h" ++#include "qpid/types/ImportExport.h" + + namespace qpid { + namespace types { +@@ -31,9 +31,9 @@ namespace types { + class Exception : public std::exception + { + public: +- QPID_COMMON_EXTERN explicit Exception(const std::string& message=std::string()) throw(); +- QPID_COMMON_EXTERN virtual ~Exception() throw(); +- QPID_COMMON_EXTERN virtual const char* what() const throw(); ++ QPID_TYPES_EXTERN explicit Exception(const std::string& message=std::string()) throw(); ++ QPID_TYPES_EXTERN virtual ~Exception() throw(); ++ QPID_TYPES_EXTERN virtual const char* what() const throw(); + + private: + const std::string message; +diff --git a/qpid/cpp/include/qpid/types/ImportExport.h b/qpid/cpp/include/qpid/types/ImportExport.h +new file mode 100644 +index 0000000..bb10575 +--- /dev/null ++++ b/qpid/cpp/include/qpid/types/ImportExport.h +@@ -0,0 +1,33 @@ ++#ifndef QPID_TYPES_IMPORTEXPORT_H ++#define QPID_TYPES_IMPORTEXPORT_H ++ ++/* ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ */ ++ ++#if defined(WIN32) && !defined(QPID_DECLARE_STATIC) ++#if defined(TYPES_EXPORT) || defined (qpidtypes_EXPORTS) ++#define QPID_TYPES_EXTERN __declspec(dllexport) ++#else ++#define QPID_TYPES_EXTERN __declspec(dllimport) ++#endif ++#else ++#define QPID_TYPES_EXTERN ++#endif ++ ++#endif /*!QPID_TYPES_IMPORTEXPORT_H*/ +diff --git a/qpid/cpp/include/qpid/types/Uuid.h b/qpid/cpp/include/qpid/types/Uuid.h +index 41042a0..467a895 100644 +--- a/qpid/cpp/include/qpid/types/Uuid.h ++++ b/qpid/cpp/include/qpid/types/Uuid.h +@@ -22,7 +22,7 @@ + * + */ + +-#include "qpid/CommonImportExport.h" ++#include "qpid/types/ImportExport.h" + #include + #include + +@@ -37,57 +37,57 @@ class Uuid + * If unique is true, this will generate a new unique uuid, if not + * it will construct a null uuid. + */ +- QPID_COMMON_EXTERN Uuid(bool unique=false); +- QPID_COMMON_EXTERN Uuid(const Uuid&); +- QPID_COMMON_EXTERN Uuid& operator=(const Uuid&); ++ QPID_TYPES_EXTERN Uuid(bool unique=false); ++ QPID_TYPES_EXTERN Uuid(const Uuid&); ++ QPID_TYPES_EXTERN Uuid& operator=(const Uuid&); + /** Copy the UUID from data16, which must point to a 16-byte UUID */ +- QPID_COMMON_EXTERN Uuid(const unsigned char* data16); ++ QPID_TYPES_EXTERN Uuid(const unsigned char* data16); + + /** Set to a new unique identifier. */ +- QPID_COMMON_EXTERN void generate(); ++ QPID_TYPES_EXTERN void generate(); + + /** Set to all zeros. */ +- QPID_COMMON_EXTERN void clear(); ++ QPID_TYPES_EXTERN void clear(); + + /** Test for null (all zeros). */ +- QPID_COMMON_EXTERN bool isNull() const; +- QPID_COMMON_EXTERN operator bool() const; +- QPID_COMMON_EXTERN bool operator!() const; ++ QPID_TYPES_EXTERN bool isNull() const; ++ QPID_TYPES_EXTERN operator bool() const; ++ QPID_TYPES_EXTERN bool operator!() const; + + /** String value in format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */ +- QPID_COMMON_EXTERN std::string str() const; ++ QPID_TYPES_EXTERN std::string str() const; + +- QPID_COMMON_EXTERN size_t size() const; +- QPID_COMMON_EXTERN const unsigned char* data() const; ++ QPID_TYPES_EXTERN size_t size() const; ++ QPID_TYPES_EXTERN const unsigned char* data() const; + +- friend QPID_COMMON_EXTERN bool operator==(const Uuid&, const Uuid&); +- friend QPID_COMMON_EXTERN bool operator!=(const Uuid&, const Uuid&); +- friend QPID_COMMON_EXTERN bool operator<(const Uuid&, const Uuid&); +- friend QPID_COMMON_EXTERN bool operator>(const Uuid&, const Uuid&); +- friend QPID_COMMON_EXTERN bool operator<=(const Uuid&, const Uuid&); +- friend QPID_COMMON_EXTERN bool operator>=(const Uuid&, const Uuid&); +- friend QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream&, Uuid); +- friend QPID_COMMON_EXTERN std::istream& operator>>(std::istream&, Uuid&); ++ friend QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&); ++ friend QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&); ++ friend QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&); ++ friend QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&); ++ friend QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&); ++ friend QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&); ++ friend QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid); ++ friend QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&); + + private: + unsigned char bytes[16]; + }; + + /** Returns true if the uuids are equal, false otherwise. **/ +-QPID_COMMON_EXTERN bool operator==(const Uuid&, const Uuid&); ++QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&); + /** Returns true if the uuids are NOT equal, false if they are. **/ +-QPID_COMMON_EXTERN bool operator!=(const Uuid&, const Uuid&); ++QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&); + +-QPID_COMMON_EXTERN bool operator<(const Uuid&, const Uuid&); +-QPID_COMMON_EXTERN bool operator>(const Uuid&, const Uuid&); +-QPID_COMMON_EXTERN bool operator<=(const Uuid&, const Uuid&); +-QPID_COMMON_EXTERN bool operator>=(const Uuid&, const Uuid&); ++QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&); ++QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&); ++QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&); ++QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&); + + /** Print in format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */ +-QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream&, Uuid); ++QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid); + + /** Read from format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */ +-QPID_COMMON_EXTERN std::istream& operator>>(std::istream&, Uuid&); ++QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&); + + }} // namespace qpid::types + +diff --git a/qpid/cpp/include/qpid/types/Variant.h b/qpid/cpp/include/qpid/types/Variant.h +index 059550b..7b43422 100644 +--- a/qpid/cpp/include/qpid/types/Variant.h ++++ b/qpid/cpp/include/qpid/types/Variant.h +@@ -28,7 +28,7 @@ + #include "Uuid.h" + #include "qpid/types/Exception.h" + #include "qpid/sys/IntegerTypes.h" +-#include "qpid/CommonImportExport.h" ++#include "qpid/types/ImportExport.h" + + namespace qpid { + namespace types { +@@ -71,101 +71,101 @@ class Variant + typedef std::map Map; + typedef std::list List; + +- QPID_COMMON_EXTERN Variant(); +- QPID_COMMON_EXTERN Variant(bool); +- QPID_COMMON_EXTERN Variant(uint8_t); +- QPID_COMMON_EXTERN Variant(uint16_t); +- QPID_COMMON_EXTERN Variant(uint32_t); +- QPID_COMMON_EXTERN Variant(uint64_t); +- QPID_COMMON_EXTERN Variant(int8_t); +- QPID_COMMON_EXTERN Variant(int16_t); +- QPID_COMMON_EXTERN Variant(int32_t); +- QPID_COMMON_EXTERN Variant(int64_t); +- QPID_COMMON_EXTERN Variant(float); +- QPID_COMMON_EXTERN Variant(double); +- QPID_COMMON_EXTERN Variant(const std::string&); +- QPID_COMMON_EXTERN Variant(const char*); +- QPID_COMMON_EXTERN Variant(const Map&); +- QPID_COMMON_EXTERN Variant(const List&); +- QPID_COMMON_EXTERN Variant(const Variant&); +- QPID_COMMON_EXTERN Variant(const Uuid&); +- +- QPID_COMMON_EXTERN ~Variant(); +- +- QPID_COMMON_EXTERN VariantType getType() const; +- QPID_COMMON_EXTERN bool isVoid() const; ++ QPID_TYPES_EXTERN Variant(); ++ QPID_TYPES_EXTERN Variant(bool); ++ QPID_TYPES_EXTERN Variant(uint8_t); ++ QPID_TYPES_EXTERN Variant(uint16_t); ++ QPID_TYPES_EXTERN Variant(uint32_t); ++ QPID_TYPES_EXTERN Variant(uint64_t); ++ QPID_TYPES_EXTERN Variant(int8_t); ++ QPID_TYPES_EXTERN Variant(int16_t); ++ QPID_TYPES_EXTERN Variant(int32_t); ++ QPID_TYPES_EXTERN Variant(int64_t); ++ QPID_TYPES_EXTERN Variant(float); ++ QPID_TYPES_EXTERN Variant(double); ++ QPID_TYPES_EXTERN Variant(const std::string&); ++ QPID_TYPES_EXTERN Variant(const char*); ++ QPID_TYPES_EXTERN Variant(const Map&); ++ QPID_TYPES_EXTERN Variant(const List&); ++ QPID_TYPES_EXTERN Variant(const Variant&); ++ QPID_TYPES_EXTERN Variant(const Uuid&); ++ ++ QPID_TYPES_EXTERN ~Variant(); ++ ++ QPID_TYPES_EXTERN VariantType getType() const; ++ QPID_TYPES_EXTERN bool isVoid() const; + +- QPID_COMMON_EXTERN Variant& operator=(bool); +- QPID_COMMON_EXTERN Variant& operator=(uint8_t); +- QPID_COMMON_EXTERN Variant& operator=(uint16_t); +- QPID_COMMON_EXTERN Variant& operator=(uint32_t); +- QPID_COMMON_EXTERN Variant& operator=(uint64_t); +- QPID_COMMON_EXTERN Variant& operator=(int8_t); +- QPID_COMMON_EXTERN Variant& operator=(int16_t); +- QPID_COMMON_EXTERN Variant& operator=(int32_t); +- QPID_COMMON_EXTERN Variant& operator=(int64_t); +- QPID_COMMON_EXTERN Variant& operator=(float); +- QPID_COMMON_EXTERN Variant& operator=(double); +- QPID_COMMON_EXTERN Variant& operator=(const std::string&); +- QPID_COMMON_EXTERN Variant& operator=(const char*); +- QPID_COMMON_EXTERN Variant& operator=(const Map&); +- QPID_COMMON_EXTERN Variant& operator=(const List&); +- QPID_COMMON_EXTERN Variant& operator=(const Variant&); +- QPID_COMMON_EXTERN Variant& operator=(const Uuid&); +- +- QPID_COMMON_EXTERN bool asBool() const; +- QPID_COMMON_EXTERN uint8_t asUint8() const; +- QPID_COMMON_EXTERN uint16_t asUint16() const; +- QPID_COMMON_EXTERN uint32_t asUint32() const; +- QPID_COMMON_EXTERN uint64_t asUint64() const; +- QPID_COMMON_EXTERN int8_t asInt8() const; +- QPID_COMMON_EXTERN int16_t asInt16() const; +- QPID_COMMON_EXTERN int32_t asInt32() const; +- QPID_COMMON_EXTERN int64_t asInt64() const; +- QPID_COMMON_EXTERN float asFloat() const; +- QPID_COMMON_EXTERN double asDouble() const; +- QPID_COMMON_EXTERN std::string asString() const; +- QPID_COMMON_EXTERN Uuid asUuid() const; +- +- QPID_COMMON_EXTERN operator bool() const; +- QPID_COMMON_EXTERN operator uint8_t() const; +- QPID_COMMON_EXTERN operator uint16_t() const; +- QPID_COMMON_EXTERN operator uint32_t() const; +- QPID_COMMON_EXTERN operator uint64_t() const; +- QPID_COMMON_EXTERN operator int8_t() const; +- QPID_COMMON_EXTERN operator int16_t() const; +- QPID_COMMON_EXTERN operator int32_t() const; +- QPID_COMMON_EXTERN operator int64_t() const; +- QPID_COMMON_EXTERN operator float() const; +- QPID_COMMON_EXTERN operator double() const; +- QPID_COMMON_EXTERN operator std::string() const; +- QPID_COMMON_EXTERN operator Uuid() const; +- +- QPID_COMMON_EXTERN const Map& asMap() const; +- QPID_COMMON_EXTERN Map& asMap(); +- QPID_COMMON_EXTERN const List& asList() const; +- QPID_COMMON_EXTERN List& asList(); ++ QPID_TYPES_EXTERN Variant& operator=(bool); ++ QPID_TYPES_EXTERN Variant& operator=(uint8_t); ++ QPID_TYPES_EXTERN Variant& operator=(uint16_t); ++ QPID_TYPES_EXTERN Variant& operator=(uint32_t); ++ QPID_TYPES_EXTERN Variant& operator=(uint64_t); ++ QPID_TYPES_EXTERN Variant& operator=(int8_t); ++ QPID_TYPES_EXTERN Variant& operator=(int16_t); ++ QPID_TYPES_EXTERN Variant& operator=(int32_t); ++ QPID_TYPES_EXTERN Variant& operator=(int64_t); ++ QPID_TYPES_EXTERN Variant& operator=(float); ++ QPID_TYPES_EXTERN Variant& operator=(double); ++ QPID_TYPES_EXTERN Variant& operator=(const std::string&); ++ QPID_TYPES_EXTERN Variant& operator=(const char*); ++ QPID_TYPES_EXTERN Variant& operator=(const Map&); ++ QPID_TYPES_EXTERN Variant& operator=(const List&); ++ QPID_TYPES_EXTERN Variant& operator=(const Variant&); ++ QPID_TYPES_EXTERN Variant& operator=(const Uuid&); ++ ++ QPID_TYPES_EXTERN bool asBool() const; ++ QPID_TYPES_EXTERN uint8_t asUint8() const; ++ QPID_TYPES_EXTERN uint16_t asUint16() const; ++ QPID_TYPES_EXTERN uint32_t asUint32() const; ++ QPID_TYPES_EXTERN uint64_t asUint64() const; ++ QPID_TYPES_EXTERN int8_t asInt8() const; ++ QPID_TYPES_EXTERN int16_t asInt16() const; ++ QPID_TYPES_EXTERN int32_t asInt32() const; ++ QPID_TYPES_EXTERN int64_t asInt64() const; ++ QPID_TYPES_EXTERN float asFloat() const; ++ QPID_TYPES_EXTERN double asDouble() const; ++ QPID_TYPES_EXTERN std::string asString() const; ++ QPID_TYPES_EXTERN Uuid asUuid() const; ++ ++ QPID_TYPES_EXTERN operator bool() const; ++ QPID_TYPES_EXTERN operator uint8_t() const; ++ QPID_TYPES_EXTERN operator uint16_t() const; ++ QPID_TYPES_EXTERN operator uint32_t() const; ++ QPID_TYPES_EXTERN operator uint64_t() const; ++ QPID_TYPES_EXTERN operator int8_t() const; ++ QPID_TYPES_EXTERN operator int16_t() const; ++ QPID_TYPES_EXTERN operator int32_t() const; ++ QPID_TYPES_EXTERN operator int64_t() const; ++ QPID_TYPES_EXTERN operator float() const; ++ QPID_TYPES_EXTERN operator double() const; ++ QPID_TYPES_EXTERN operator std::string() const; ++ QPID_TYPES_EXTERN operator Uuid() const; ++ ++ QPID_TYPES_EXTERN const Map& asMap() const; ++ QPID_TYPES_EXTERN Map& asMap(); ++ QPID_TYPES_EXTERN const List& asList() const; ++ QPID_TYPES_EXTERN List& asList(); + /** + * Unlike asString(), getString() will not do any conversions and + * will throw InvalidConversion if the type is not STRING. + */ +- QPID_COMMON_EXTERN const std::string& getString() const; +- QPID_COMMON_EXTERN std::string& getString(); ++ QPID_TYPES_EXTERN const std::string& getString() const; ++ QPID_TYPES_EXTERN std::string& getString(); + +- QPID_COMMON_EXTERN void setEncoding(const std::string&); +- QPID_COMMON_EXTERN const std::string& getEncoding() const; ++ QPID_TYPES_EXTERN void setEncoding(const std::string&); ++ QPID_TYPES_EXTERN const std::string& getEncoding() const; + +- QPID_COMMON_EXTERN bool isEqualTo(const Variant& a) const; ++ QPID_TYPES_EXTERN bool isEqualTo(const Variant& a) const; + +- QPID_COMMON_EXTERN void reset(); ++ QPID_TYPES_EXTERN void reset(); + private: + VariantImpl* impl; + }; + +-QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream& out, const Variant& value); +-QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::Map& map); +-QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::List& list); +-QPID_COMMON_EXTERN bool operator==(const Variant& a, const Variant& b); ++QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream& out, const Variant& value); ++QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::Map& map); ++QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::List& list); ++QPID_TYPES_EXTERN bool operator==(const Variant& a, const Variant& b); + }} // namespace qpid::types + + #endif /*!QPID_TYPES_VARIANT_H*/ +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index cf9161d..5ac5373 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -497,6 +497,13 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows) + set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/debug /INCREMENTAL:NO") + endif (MSVC) + ++ set (qpidtypes_platform_SOURCES ++ qpid/sys/windows/uuid.cpp ++ ) ++ set (qpidtypes_platform_LIBS ++ rpcrt4 ++ ) ++ + set (qpidcommon_platform_SOURCES + qpid/log/windows/SinkOptions.cpp + qpid/sys/windows/AsynchIO.cpp +@@ -513,11 +520,11 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows) + qpid/sys/windows/SystemInfo.cpp + qpid/sys/windows/Thread.cpp + qpid/sys/windows/Time.cpp +- qpid/sys/windows/uuid.cpp + ${sslcommon_windows_SOURCES} + ) ++ + set (qpidcommon_platform_LIBS +- ${windows_ssl_libs} rpcrt4 ws2_32 ++ ${windows_ssl_libs} ws2_32 + ) + set (qpidbroker_platform_SOURCES + qpid/broker/windows/BrokerDefaults.cpp +@@ -560,6 +567,11 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows) + ) + endif (CMAKE_SYSTEM_NAME STREQUAL SunOS) + ++ set (qpidtypes_platform_SOURCES) ++ set (qpidtypes_platform_LIBS ++ uuid ++ ) ++ + set (qpidcommon_platform_SOURCES + qpid/sys/posix/AsynchIO.cpp + qpid/sys/posix/Fork.cpp +@@ -582,7 +594,6 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows) + set (qpidcommon_platform_LIBS + ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY} +- uuid + ${CMAKE_DL_LIBS} + ) + +@@ -663,9 +674,6 @@ set (qpidcommon_SOURCES + qpid/sys/Runnable.cpp + qpid/sys/Shlib.cpp + qpid/sys/Timer.cpp +- qpid/types/Exception.cpp +- qpid/types/Uuid.cpp +- qpid/types/Variant.cpp + qpid/amqp_0_10/Codecs.cpp + ) + +@@ -673,7 +681,7 @@ add_library (qpidcommon SHARED ${qpidcommon_SOURCES}) + if (CLOCK_GETTIME_IN_RT) + set (qpidcommon_platform_LIBS ${qpidcommon_platform_LIBS} rt) + endif (CLOCK_GETTIME_IN_RT) +-target_link_libraries (qpidcommon ++target_link_libraries (qpidcommon qpidtypes + ${qpidcommon_platform_LIBS} + ${qpidcommon_sasl_lib}) + set_target_properties (qpidcommon PROPERTIES +@@ -683,6 +691,18 @@ install (TARGETS qpidcommon + COMPONENT ${QPID_COMPONENT_COMMON}) + install_pdb (qpidcommon ${QPID_COMPONENT_COMMON}) + ++set(qpidtypes_SOURCES ++ qpid/types/Exception.cpp ++ qpid/types/Uuid.cpp ++ qpid/types/Variant.cpp ++ ${qpidtypes_platform_SOURCES} ++) ++add_library(qpidtypes SHARED ${qpidtypes_SOURCES}) ++target_link_libraries(qpidtypes ${qpidtypes_platform_LIBS}) ++set_target_properties (qpidtypes PROPERTIES VERSION ${qpidc_version}) ++install(TARGETS qpidtypes ++ DESTINATION ${QPID_INSTALL_LIBDIR} ++ COMPONENT ${QPID_COMPONENT_COMMON}) + + set (qpidclient_SOURCES + ${rgen_client_srcs} +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 27a60e4..6340bf2 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -185,7 +185,7 @@ libqpidcommon_la_SOURCES += $(poller) $(systeminfo) + posix_broker_src = \ + qpid/broker/posix/BrokerDefaults.cpp + +-lib_LTLIBRARIES = libqpidcommon.la libqpidbroker.la libqpidclient.la libqpidmessaging.la ++lib_LTLIBRARIES = libqpidcommon.la libqpidbroker.la libqpidclient.la libqpidmessaging.la libqpidtypes.la + + # Definitions for client and daemon plugins + PLUGINLDFLAGS=-no-undefined -module -avoid-version +@@ -309,6 +309,7 @@ EXTRA_DIST +=\ + qpid/store + + libqpidcommon_la_LIBADD = \ ++ libqpidtypes.la \ + -lboost_program_options \ + -lboost_filesystem \ + -luuid \ +@@ -477,10 +478,7 @@ libqpidcommon_la_SOURCES += \ + qpid/sys/Waitable.h \ + qpid/sys/alloca.h \ + qpid/sys/uuid.h \ +- qpid/amqp_0_10/Codecs.cpp \ +- qpid/types/Exception.cpp \ +- qpid/types/Uuid.cpp \ +- qpid/types/Variant.cpp ++ qpid/amqp_0_10/Codecs.cpp + + if HAVE_SASL + libqpidcommon_la_SOURCES += qpid/sys/cyrus/CyrusSecurityLayer.h +@@ -491,8 +489,7 @@ endif + QPIDCOMMON_VERSION_INFO = 2:0:0 + libqpidcommon_la_LDFLAGS=-version-info $(QPIDCOMMON_VERSION_INFO) + +-libqpidbroker_la_LIBADD = libqpidcommon.la -luuid +- ++libqpidbroker_la_LIBADD = libqpidcommon.la + libqpidbroker_la_SOURCES = \ + $(mgen_broker_cpp) \ + $(posix_broker_src) \ +@@ -714,8 +711,15 @@ libqpidclient_la_SOURCES = \ + QPIDCLIENT_VERSION_INFO = 2:0:0 + libqpidclient_la_LDFLAGS = -version-info $(QPIDCLIENT_VERSION_INFO) + +-libqpidmessaging_la_LIBADD = libqpidclient.la ++libqpidtypes_la_libadd=-luuid ++libqpidtypes_la_SOURCES= \ ++ qpid/types/Exception.cpp \ ++ qpid/types/Uuid.cpp \ ++ qpid/types/Variant.cpp ++QPIDTYPES_VERSION_INFO = 1:0:0 ++libqpidtypes_la_LDFLAGS = -version-info $(QPIDTYPES_VERSION_INFO) + ++libqpidmessaging_la_LIBADD = libqpidclient.la libqpidtypes.la + libqpidmessaging_la_SOURCES = \ + qpid/messaging/Address.cpp \ + qpid/messaging/AddressParser.h \ +diff --git a/qpid/cpp/src/qpid/sys/windows/uuid.h b/qpid/cpp/src/qpid/sys/windows/uuid.h +index 9c32814..8ab132e 100644 +--- a/qpid/cpp/src/qpid/sys/windows/uuid.h ++++ b/qpid/cpp/src/qpid/sys/windows/uuid.h +@@ -22,18 +22,18 @@ + * + */ + +-#include "qpid/CommonImportExport.h" ++#include "qpid/types/ImportExport.h" + #include + + namespace qpid { namespace sys { const size_t UuidSize = 16; }} + typedef uint8_t uuid_t[qpid::sys::UuidSize]; + +-QPID_COMMON_EXTERN void uuid_clear (uuid_t uu); +-QPID_COMMON_EXTERN void uuid_copy (uuid_t dst, const uuid_t src); +-QPID_COMMON_EXTERN void uuid_generate (uuid_t out); +-QPID_COMMON_EXTERN int uuid_is_null (const uuid_t uu); // Returns 1 if null, else 0 +-QPID_COMMON_EXTERN int uuid_parse (const char *in, uuid_t uu); // Returns 0 on success, else -1 +-QPID_COMMON_EXTERN void uuid_unparse (const uuid_t uu, char *out); +-QPID_COMMON_EXTERN int uuid_compare (const uuid_t a, const uuid_t b); ++QPID_TYPES_EXTERN void uuid_clear (uuid_t uu); ++QPID_TYPES_EXTERN void uuid_copy (uuid_t dst, const uuid_t src); ++QPID_TYPES_EXTERN void uuid_generate (uuid_t out); ++QPID_TYPES_EXTERN int uuid_is_null (const uuid_t uu); // Returns 1 if null, else 0 ++QPID_TYPES_EXTERN int uuid_parse (const char *in, uuid_t uu); // Returns 0 on success, else -1 ++QPID_TYPES_EXTERN void uuid_unparse (const uuid_t uu, char *out); ++QPID_TYPES_EXTERN int uuid_compare (const uuid_t a, const uuid_t b); + + #endif /*!_sys_windows_uuid_h*/ +-- +1.5.5.6 + +From 2dcc552c2bbe1df6402f6acbfb29de01142d5874 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 30 Jun 2010 11:25:43 +0000 +Subject: [PATCH] Bug 572984 - Fixed - man page for qpidd is seriously lacking + +Added sed based alternative to help2man to ensure that a reasonable man page is produced in all cases + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959271 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 6cbec1a71bba22be99aa5b7d9dde4ebc2c23ca26) +--- + qpid/cpp/docs/man/Makefile.am | 6 +++--- + qpid/cpp/docs/man/generate_manpage | 5 +++++ + qpid/cpp/docs/man/groffify_options.sed | 7 +++++++ + qpid/cpp/docs/man/groffify_template.sed | 3 +++ + qpid/cpp/docs/man/qpidd.x | 15 ++++++++++----- + 5 files changed, 28 insertions(+), 8 deletions(-) + create mode 100755 qpid/cpp/docs/man/generate_manpage + create mode 100644 qpid/cpp/docs/man/groffify_options.sed + create mode 100644 qpid/cpp/docs/man/groffify_template.sed + +diff --git a/qpid/cpp/docs/man/Makefile.am b/qpid/cpp/docs/man/Makefile.am +index cb13a16..14295f7 100644 +--- a/qpid/cpp/docs/man/Makefile.am ++++ b/qpid/cpp/docs/man/Makefile.am +@@ -19,7 +19,7 @@ + dist_man_MANS = qpidd.1 + + man_aux = $(dist_man_MANS:.1=.x) +-EXTRA_DIST = $(man_aux) ++EXTRA_DIST = $(man_aux) generate_manpage groffify_options.sed groffify_template.sed + DISTCLEANFILES = $(dist_man_MANS) + CLEANFILES=qpidd.1 + +@@ -40,8 +40,8 @@ qpidd.1: $(srcdir)/qpidd.x $(top_builddir)/src/qpidd + @mv $@-t $@ + else + qpidd.1: +- @echo "Warning: help2man not available, man page lacks options." +- @cp $(srcdir)/qpidd.x $@ ++ @echo "Warning: help2man not available, using sed script instead." ++ $(srcdir)/generate_manpage $(srcdir)/qpidd.x $(top_builddir)/src/qpidd $@ + endif + + +diff --git a/qpid/cpp/docs/man/generate_manpage b/qpid/cpp/docs/man/generate_manpage +new file mode 100755 +index 0000000..e510038 +--- /dev/null ++++ b/qpid/cpp/docs/man/generate_manpage +@@ -0,0 +1,5 @@ ++$2 --help | grep -v 'Usage: ' | sed -f $(dirname $0)/groffify_options.sed > .temp.options.groff ++cat $1 | sed -f $(dirname $0)/groffify_template.sed | sed -e '/^\.PP$/ r .temp.options.groff' -e "/^.SH NAME/ i\ ++.TH QPIDD \"1\" \"$(date +'%B %Y')\" \"$($2 -v)\" \"User Commands\" ++" > $3 ++rm .temp.options.groff +diff --git a/qpid/cpp/docs/man/groffify_options.sed b/qpid/cpp/docs/man/groffify_options.sed +new file mode 100644 +index 0000000..90c66d9 +--- /dev/null ++++ b/qpid/cpp/docs/man/groffify_options.sed +@@ -0,0 +1,7 @@ ++s/^\( \{2\}\)\(.*)\)\( \{2,\}\)/.TP\n\2\n/ ++s/^\( \{2\}\)\(.*\]\)\( \{2,\}\)/.TP\n\2\n/ ++s/^\( \{2\}\)\(.*\b\)\( \{2,\}\)/.TP\n\2\n/ ++s/^\([A-Z].*\):$/.SS \1/ ++s/-/\\-/g ++s/^ \{2,\}// ++s/\('.*'\)/\\\&\1/ +diff --git a/qpid/cpp/docs/man/groffify_template.sed b/qpid/cpp/docs/man/groffify_template.sed +new file mode 100644 +index 0000000..55367f3 +--- /dev/null ++++ b/qpid/cpp/docs/man/groffify_template.sed +@@ -0,0 +1,3 @@ ++/\[FILES\]/ i\ ++.PP ++s/^\[\([A-Z ]*\)\]/.SH \1/ +diff --git a/qpid/cpp/docs/man/qpidd.x b/qpid/cpp/docs/man/qpidd.x +index 9f1b465..af5d962 100644 +--- a/qpid/cpp/docs/man/qpidd.x ++++ b/qpid/cpp/docs/man/qpidd.x +@@ -1,15 +1,15 @@ + [NAME] + +-qpidd \- the Qpid AMQP Broker Daemon ++qpidd \- the Qpid AMQP Message Broker Daemon + + [SYNOPSIS] + +-qpidd [options] ++qpidd [-p port] [--config config_file] [--data-dir directory] + + [DESCRIPTION] + +-An AMQP broker daemon that stores, routes and forwards messages using +-the Advanced Message Queueing Protocol (AMQP). ++An AMQP message broker daemon that stores, routes and forwards ++messages using the Advanced Message Queueing Protocol (AMQP). + + [OPTIONS] + +@@ -28,7 +28,6 @@ Each line is a name=value pair. Blank lines and lines beginning with # are ignor + # My qpidd configuration file. + port=6000 + max-connections=10 +- log-to-stdout=yes + log-to-file=/tmp/qpidd.log + + [ENVIRONMENT] +@@ -43,4 +42,10 @@ The environment variable is the option name in uppercase, prefixed with QPID_ an + export QPID_MAX_CONNECTIONS=10 + export QPID_LOG_TO_FILE=/tmp/qpidd.log + ++[AUTHOR] + ++The Apache Qpid Project, dev@qpid.apache.org ++ ++[REPORTING BUGS] ++ ++Please report bugs to users@qpid.apache.org +-- +1.5.5.6 + +From e3645c7205e726a7215aa00a96d12b3abe4d052a Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 30 Jun 2010 21:55:17 +0000 +Subject: [PATCH] Bug 609801 - Fixed - Address option for exclusive subscribe is incorrect + +QPID-664: corrected option name for setting subscribe options on a queue + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959451 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 0787688bfce0afdfba92b3143fffae9bf652bf1d) +--- + .../src/qpid/client/amqp0_10/AddressResolution.cpp | 4 ++-- + qpid/cpp/src/tests/MessagingSessionTests.cpp | 13 +++++++++++++ + 2 files changed, 15 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp b/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp +index b819906..f1295a3 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp +@@ -452,8 +452,8 @@ QueueSource::QueueSource(const Address& address) : + //extract subscription arguments from address options (nb: setting + //of accept-mode/acquire-mode/destination controlled though other + //options) +- exclusive = Opt(address)/NODE/LINK/X_SUBSCRIBE/EXCLUSIVE; +- (Opt(address)/NODE/LINK/X_SUBSCRIBE/ARGUMENTS).collect(options); ++ exclusive = Opt(address)/LINK/X_SUBSCRIBE/EXCLUSIVE; ++ (Opt(address)/LINK/X_SUBSCRIBE/ARGUMENTS).collect(options); + } + + void QueueSource::subscribe(qpid::client::AsyncSession& session, const std::string& destination) +diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp +index 6fee123..c22cb4b 100644 +--- a/qpid/cpp/src/tests/MessagingSessionTests.cpp ++++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp +@@ -756,6 +756,19 @@ QPID_AUTO_TEST_CASE(testSendSpecialProperties) + BOOST_CHECK_EQUAL(in.getMessageProperties().getMessageId().str(), out.getMessageId()); + } + ++QPID_AUTO_TEST_CASE(testExclusiveSubscriber) ++{ ++ QueueFixture fix; ++ std::string address = (boost::format("%1%; { link: { x-subscribe : { exclusive:true } } }") % fix.queue).str(); ++ Receiver receiver = fix.session.createReceiver(address); ++ ScopedSuppressLogging sl; ++ try { ++ fix.session.createReceiver(address); ++ fix.session.sync(); ++ BOOST_FAIL("Expected exception."); ++ } catch (const MessagingException& e) {} ++} ++ + + QPID_AUTO_TEST_SUITE_END() + +-- +1.5.5.6 + +From 8d55e9d8981053f2bf584ae446dfe404293f11c9 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 30 Jun 2010 22:22:50 +0000 +Subject: [PATCH] Bug 609803 - Fixed - Need to expose authenticated username via messaging API + +QPID-664: expose authenticated username for connection + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959461 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 62a1dcddbc7f087df2d8cd1ee19f8f4b5c50bc3d) +--- + qpid/cpp/include/qpid/messaging/Connection.h | 1 + + .../src/qpid/client/amqp0_10/ConnectionImpl.cpp | 4 ++++ + qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h | 1 + + qpid/cpp/src/qpid/messaging/Connection.cpp | 5 ++++- + qpid/cpp/src/qpid/messaging/ConnectionImpl.h | 1 + + qpid/cpp/src/tests/MessagingSessionTests.cpp | 6 ++++++ + 6 files changed, 17 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/include/qpid/messaging/Connection.h b/qpid/cpp/include/qpid/messaging/Connection.h +index a7f67ce..9f3102d 100644 +--- a/qpid/cpp/include/qpid/messaging/Connection.h ++++ b/qpid/cpp/include/qpid/messaging/Connection.h +@@ -98,6 +98,7 @@ class Connection : public qpid::messaging::Handle + QPID_MESSAGING_EXTERN Session createSession(const std::string& name = std::string()); + + QPID_MESSAGING_EXTERN Session getSession(const std::string& name) const; ++ QPID_MESSAGING_EXTERN std::string getAuthenticatedUsername(); + private: + friend class qpid::messaging::PrivateImplRef; + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +index f93df90..2fe55cc 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +@@ -325,5 +325,9 @@ bool ConnectionImpl::backoff() + return false; + } + } ++std::string ConnectionImpl::getAuthenticatedUsername() ++{ ++ return connection.getNegotiatedSettings().username; ++} + + }}} // namespace qpid::client::amqp0_10 +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h +index 904cef7..8467376 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h ++++ b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h +@@ -51,6 +51,7 @@ class ConnectionImpl : public qpid::messaging::ConnectionImpl + void detach(); + void setOption(const std::string& name, const qpid::types::Variant& value); + bool backoff(); ++ std::string getAuthenticatedUsername(); + private: + typedef std::map Sessions; + +diff --git a/qpid/cpp/src/qpid/messaging/Connection.cpp b/qpid/cpp/src/qpid/messaging/Connection.cpp +index 2bd5ba9..e132b6e 100644 +--- a/qpid/cpp/src/qpid/messaging/Connection.cpp ++++ b/qpid/cpp/src/qpid/messaging/Connection.cpp +@@ -74,5 +74,8 @@ void Connection::setOption(const std::string& name, const Variant& value) + { + impl->setOption(name, value); + } +- ++std::string Connection::getAuthenticatedUsername() ++{ ++ return impl->getAuthenticatedUsername(); ++} + }} // namespace qpid::messaging +diff --git a/qpid/cpp/src/qpid/messaging/ConnectionImpl.h b/qpid/cpp/src/qpid/messaging/ConnectionImpl.h +index 23ab527..fb45ee5 100644 +--- a/qpid/cpp/src/qpid/messaging/ConnectionImpl.h ++++ b/qpid/cpp/src/qpid/messaging/ConnectionImpl.h +@@ -44,6 +44,7 @@ class ConnectionImpl : public virtual qpid::RefCounted + virtual Session newSession(bool transactional, const std::string& name) = 0; + virtual Session getSession(const std::string& name) const = 0; + virtual void setOption(const std::string& name, const qpid::types::Variant& value) = 0; ++ virtual std::string getAuthenticatedUsername() = 0; + private: + }; + }} // namespace qpid::messaging +diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp +index c22cb4b..ce1d885 100644 +--- a/qpid/cpp/src/tests/MessagingSessionTests.cpp ++++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp +@@ -769,6 +769,12 @@ QPID_AUTO_TEST_CASE(testExclusiveSubscriber) + } catch (const MessagingException& e) {} + } + ++QPID_AUTO_TEST_CASE(testAuthenticatedUsername) ++{ ++ MessagingFixture fix; ++ BOOST_CHECK_EQUAL(fix.connection.getAuthenticatedUsername(), std::string("anonymous")); ++} ++ + + QPID_AUTO_TEST_SUITE_END() + +-- +1.5.5.6 + +From c3e6ea43dcfbb328fa693667b056f237397e4cb9 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 1 Jul 2010 12:42:41 +0000 +Subject: [PATCH] Bug 588766 - Create separate library for messaging API and implementation + +Add qpid/types/ImportExport.h to distribution. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959638 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit fa2ed0433c91a141ababb2c219b4183ac4dc27f8) +--- + qpid/cpp/src/Makefile.am | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 6340bf2..c8d0402 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -715,7 +715,9 @@ libqpidtypes_la_libadd=-luuid + libqpidtypes_la_SOURCES= \ + qpid/types/Exception.cpp \ + qpid/types/Uuid.cpp \ +- qpid/types/Variant.cpp ++ qpid/types/Variant.cpp \ ++ ../include/qpid/types/ImportExport.h ++ + QPIDTYPES_VERSION_INFO = 1:0:0 + libqpidtypes_la_LDFLAGS = -version-info $(QPIDTYPES_VERSION_INFO) + +-- +1.5.5.6 + +From cc8011cbd558e4fbc000c0156720d54c156a5e82 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 1 Jul 2010 13:47:11 +0000 +Subject: [PATCH] Bug 609682 - Broker crash on exit with assertion in Thread::join + +Ensure broker is deleted in main thread, not by global destructors. + +Fixes core dumps during shutdown. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959661 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 62793fa314f2e3821f7035b74087793867e3d71a) +--- + qpid/cpp/src/posix/QpiddBroker.cpp | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/posix/QpiddBroker.cpp b/qpid/cpp/src/posix/QpiddBroker.cpp +index 7eef187..b340e3e 100644 +--- a/qpid/cpp/src/posix/QpiddBroker.cpp ++++ b/qpid/cpp/src/posix/QpiddBroker.cpp +@@ -128,6 +128,7 @@ struct QpiddDaemon : public Daemon { + uint16_t port=brokerPtr->getPort(options->daemon.transport); + ready(port); // Notify parent. + brokerPtr->run(); ++ broker::SignalHandler::setBroker(0); // Delete broker in this thread. + } + }; + +@@ -174,6 +175,7 @@ int QpiddBroker::execute (QpiddOptions *options) { + if (options->broker.port == 0 || myOptions->daemon.transport != TCP) + cout << uint16_t(brokerPtr->getPort(myOptions->daemon.transport)) << endl; + brokerPtr->run(); ++ broker::SignalHandler::setBroker(0); // Delete broker in this thread. + } + return 0; + } +-- +1.5.5.6 + +From 9a005978daf378f235f2806a1e50eeb0dd44bd94 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Thu, 1 Jul 2010 16:49:22 +0000 +Subject: [PATCH] Bug 610156 - Fixed - The qpid::messaging API sometimes uses exceptions from the qpid:: namespace + +QPID-664: Translate exceptions to correct type when occuring on creating new session. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959721 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit cd8ce28d8fd26c434d69ea949167b7e56418246f) +--- + .../src/qpid/client/amqp0_10/ConnectionImpl.cpp | 4 ++++ + qpid/cpp/src/tests/MessagingSessionTests.cpp | 8 ++++++++ + 2 files changed, 12 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +index 2fe55cc..f3cc4f7 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +@@ -213,6 +213,10 @@ qpid::messaging::Session ConnectionImpl::newSession(bool transactional, const st + break; + } catch (const qpid::TransportFailure&) { + open(); ++ } catch (const qpid::SessionException& e) { ++ throw qpid::messaging::SessionError(e.what()); ++ } catch (const std::exception& e) { ++ throw qpid::messaging::MessagingException(e.what()); + } + } + return impl; +diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp +index ce1d885..a23e8c3 100644 +--- a/qpid/cpp/src/tests/MessagingSessionTests.cpp ++++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp +@@ -775,6 +775,14 @@ QPID_AUTO_TEST_CASE(testAuthenticatedUsername) + BOOST_CHECK_EQUAL(fix.connection.getAuthenticatedUsername(), std::string("anonymous")); + } + ++QPID_AUTO_TEST_CASE(testExceptionOnClosedConnection) ++{ ++ MessagingFixture fix; ++ fix.connection.close(); ++ BOOST_CHECK_THROW(fix.connection.createSession(), MessagingException); ++ Connection connection("blah"); ++ BOOST_CHECK_THROW(connection.createSession(), MessagingException); ++} + + QPID_AUTO_TEST_SUITE_END() + +-- +1.5.5.6 + +From 2d688a2c7b161daf424b84879a70fa253b4aea28 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 1 Jul 2010 18:59:20 +0000 +Subject: [PATCH] Bug 609682 - Broker crash on exit with assertion in Thread::join + +Ensure broker is deleted in main thread, not by global destructors. + +Finish the fix of r959661 by making it exception safe. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959746 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e570224156a2ee843026bea97a5128389a962d8b) +--- + qpid/cpp/src/posix/QpiddBroker.cpp | 17 +++++++++++++---- + 1 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/posix/QpiddBroker.cpp b/qpid/cpp/src/posix/QpiddBroker.cpp +index b340e3e..bc45b27 100644 +--- a/qpid/cpp/src/posix/QpiddBroker.cpp ++++ b/qpid/cpp/src/posix/QpiddBroker.cpp +@@ -107,6 +107,17 @@ void QpiddOptions::usage() const { + cout << "Usage: qpidd [OPTIONS]" << endl << endl << *this << endl; + } + ++// Set the broker pointer on the signal handler, then reset at end of scope. ++// This is to ensure that the signal handler doesn't keep a broker ++// reference after main() has returned. ++// ++struct ScopedSetBroker { ++ ScopedSetBroker(const boost::intrusive_ptr& broker) { ++ qpid::broker::SignalHandler::setBroker(broker); ++ } ++ ~ScopedSetBroker() { qpid::broker::SignalHandler::setBroker(0); } ++}; ++ + struct QpiddDaemon : public Daemon { + QpiddPosixOptions *options; + +@@ -123,12 +134,11 @@ struct QpiddDaemon : public Daemon { + /** Code for forked child process */ + void child() { + boost::intrusive_ptr brokerPtr(new Broker(options->parent->broker)); +- qpid::broker::SignalHandler::setBroker(brokerPtr); ++ ScopedSetBroker ssb(brokerPtr); + brokerPtr->accept(); + uint16_t port=brokerPtr->getPort(options->daemon.transport); + ready(port); // Notify parent. + brokerPtr->run(); +- broker::SignalHandler::setBroker(0); // Delete broker in this thread. + } + }; + +@@ -170,12 +180,11 @@ int QpiddBroker::execute (QpiddOptions *options) { + } + else { // Non-daemon broker. + boost::intrusive_ptr brokerPtr(new Broker(options->broker)); +- broker::SignalHandler::setBroker(brokerPtr); ++ ScopedSetBroker ssb(brokerPtr); + brokerPtr->accept(); + if (options->broker.port == 0 || myOptions->daemon.transport != TCP) + cout << uint16_t(brokerPtr->getPort(myOptions->daemon.transport)) << endl; + brokerPtr->run(); +- broker::SignalHandler::setBroker(0); // Delete broker in this thread. + } + return 0; + } +-- +1.5.5.6 + +From ce1aa1c708aeb84ae572c746d3e93f84fb51614c Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Fri, 2 Jul 2010 14:46:30 +0000 +Subject: [PATCH] Bug 610772 - QMF: c++ agent does not set agent name attribute in new object id's + +QPID-2716: QMF bugfix - set agent name in object id + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@960012 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 809ec3077dbe82d0b77f46c9a7c6ec90ce0cb555) +--- + qpid/cpp/include/qpid/agent/ManagementAgent.h | 1 + + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 7 +++++++ + 2 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/include/qpid/agent/ManagementAgent.h b/qpid/cpp/include/qpid/agent/ManagementAgent.h +index d534416..aa0a974 100644 +--- a/qpid/cpp/include/qpid/agent/ManagementAgent.h ++++ b/qpid/cpp/include/qpid/agent/ManagementAgent.h +@@ -69,6 +69,7 @@ class ManagementAgent + // product - Product name (i.e. "qpid") + // instance - A unique identifier for this instance of the agent. + // If empty, the agent will create a GUID for the instance. ++ // Note: the ":" character is reserved - do no use it in the vendor or product name. + // + virtual void setName(const std::string& vendor, + const std::string& product, +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index e2a595c..bc841ca 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -125,6 +125,12 @@ ManagementAgentImpl::~ManagementAgentImpl() + + void ManagementAgentImpl::setName(const string& vendor, const string& product, const string& instance) + { ++ if (vendor.find(':') != vendor.npos) { ++ throw Exception("vendor string cannot contain a ':' character."); ++ } ++ if (product.find(':') != product.npos) { ++ throw Exception("product string cannot contain a ':' character."); ++ } + attrMap["_vendor"] = vendor; + attrMap["_product"] = product; + string inst; +@@ -249,6 +255,7 @@ ObjectId ManagementAgentImpl::addObject(ManagementObject* object, + objectId.setV2Key(*object); // let object generate the key + else + objectId.setV2Key(key); ++ objectId.setAgentName(name_address); + + object->setObjectId(objectId); + newManagementObjects[objectId] = object; +-- +1.5.5.6 + +From 4c4daa6bc46e6fe6bf18ecb3abbb68a1ca619e67 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Mon, 5 Jul 2010 13:07:38 +0000 +Subject: [PATCH] No Bugzilla: fix missing headers needed to build store. + +Added types/ImportExport.h to installed headers. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@960588 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 64327d0769dae12795a31d46868478a3bca26707) +--- + qpid/cpp/src/Makefile.am | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index c8d0402..52bdf98 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -852,7 +852,8 @@ nobase_include_HEADERS += \ + ../include/qpid/messaging/FailoverUpdates.h \ + ../include/qpid/types/Exception.h \ + ../include/qpid/types/Uuid.h \ +- ../include/qpid/types/Variant.h ++ ../include/qpid/types/Variant.h \ ++ ../include/qpid/types/ImportExport.h + + # Force build of qpidd during dist phase so help2man will work. + dist-hook: $(BUILT_SOURCES) +-- +1.5.5.6 + +From ba83c5fd4c4cccae42240c70473d8d37fd8d3fcb Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Mon, 5 Jul 2010 20:12:08 +0000 +Subject: [PATCH] Bug 611543 - Assertion when raising a link established event on clustered broker + +Defer delivery of messages in cluster-unsafe context. + +Messages enqueued in a cluster-safe context are synchronized across +the cluster. However some messages are delivered in a cluster-unsafe +context, for example raising a link established event occurs the +connection thread of the establishing connection. + +This fix deferrs such messages by multicasting them so they can be +re-delived in a cluster safe context. + +See https://bugzilla.redhat.com/show_bug.cgi?id=611543 + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@960681 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/broker/Broker.cpp | 7 +++++- + qpid/cpp/src/qpid/broker/Broker.h | 13 ++++++++++++ + qpid/cpp/src/qpid/broker/Queue.cpp | 3 ++ + qpid/cpp/src/qpid/cluster/Cluster.cpp | 35 +++++++++++++++++++++++++++++++- + qpid/cpp/src/qpid/cluster/Cluster.h | 10 ++++++++- + qpid/cpp/src/tests/cluster_tests.py | 17 +++++++++++++++- + qpid/cpp/xml/cluster.xml | 6 +++++ + qpid/python/qpid/brokertest.py | 16 ++++++-------- + 8 files changed, 93 insertions(+), 14 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp +index 399ed58..02f403a 100644 +--- a/qpid/cpp/src/qpid/broker/Broker.cpp ++++ b/qpid/cpp/src/qpid/broker/Broker.cpp +@@ -161,7 +161,8 @@ Broker::Broker(const Broker::Options& conf) : + clusterUpdatee(false), + expiryPolicy(new ExpiryPolicy), + connectionCounter(conf.maxConnections), +- getKnownBrokers(boost::bind(&Broker::getKnownBrokersImpl, this)) ++ getKnownBrokers(boost::bind(&Broker::getKnownBrokersImpl, this)), ++ deferDelivery(boost::bind(&Broker::deferDeliveryImpl, this, _1, _2)) + { + if (conf.enableMgmt) { + QPID_LOG(info, "Management enabled"); +@@ -491,6 +492,10 @@ Broker::getKnownBrokersImpl() + return knownBrokers; + } + ++bool Broker::deferDeliveryImpl(const std::string& , ++ const boost::intrusive_ptr& ) ++{ return false; } ++ + void Broker::setClusterTimer(std::auto_ptr t) { + clusterTimer = t; + } +diff --git a/qpid/cpp/src/qpid/broker/Broker.h b/qpid/cpp/src/qpid/broker/Broker.h +index f55f94b..05d1c79 100644 +--- a/qpid/cpp/src/qpid/broker/Broker.h ++++ b/qpid/cpp/src/qpid/broker/Broker.h +@@ -69,6 +69,7 @@ struct Url; + namespace broker { + + class ExpiryPolicy; ++class Message; + + static const uint16_t DEFAULT_PORT=5672; + +@@ -167,6 +168,8 @@ public: + QueueEvents queueEvents; + std::vector knownBrokers; + std::vector getKnownBrokersImpl(); ++ bool deferDeliveryImpl(const std::string& queue, ++ const boost::intrusive_ptr& msg); + std::string federationTag; + bool recovery; + bool clusterUpdatee; +@@ -272,6 +275,16 @@ public: + management::ManagementAgent* getManagementAgent() { return managementAgent.get(); } + + ConnectionCounter& getConnectionCounter() {return connectionCounter;} ++ ++ /** ++ * Never true in a stand-alone broker. In a cluster, return true ++ * to defer delivery of messages deliveredg in a cluster-unsafe ++ * context. ++ *@return true if delivery of a message should be deferred. ++ */ ++ boost::function& msg)> deferDelivery; ++ + }; + + }} +diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp +index dd077aa..40ef605 100644 +--- a/qpid/cpp/src/qpid/broker/Queue.cpp ++++ b/qpid/cpp/src/qpid/broker/Queue.cpp +@@ -142,6 +142,9 @@ bool Queue::isExcluded(boost::intrusive_ptr& msg) + } + + void Queue::deliver(boost::intrusive_ptr msg){ ++ // Check for deferred delivery in a cluster. ++ if (broker && broker->deferDelivery(name, msg)) ++ return; + if (msg->isImmediate() && getConsumerCount() == 0) { + if (alternateExchange) { + DeliverableMessage deliverable(msg); +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 233cc89..d01e801 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -137,6 +137,8 @@ + #include "qpid/broker/Connection.h" + #include "qpid/broker/NullMessageStore.h" + #include "qpid/broker/QueueRegistry.h" ++#include "qpid/broker/Queue.h" ++#include "qpid/broker/Message.h" + #include "qpid/broker/SessionState.h" + #include "qpid/broker/SignalHandler.h" + #include "qpid/framing/AMQFrame.h" +@@ -154,6 +156,7 @@ + #include "qpid/framing/ClusterConnectionAnnounceBody.h" + #include "qpid/framing/ClusterErrorCheckBody.h" + #include "qpid/framing/ClusterTimerWakeupBody.h" ++#include "qpid/framing/ClusterDeliverToQueueBody.h" + #include "qpid/framing/MessageTransferBody.h" + #include "qpid/log/Helpers.h" + #include "qpid/log/Statement.h" +@@ -232,9 +235,10 @@ struct ClusterDispatcher : public framing::AMQP_AllOperations::ClusterHandler { + } + void timerWakeup(const std::string& name) { cluster.timerWakeup(member, name, l); } + void timerDrop(const std::string& name) { cluster.timerWakeup(member, name, l); } +- + void shutdown(const Uuid& id) { cluster.shutdown(member, id, l); } +- ++ void deliverToQueue(const std::string& queue, const std::string& message) { ++ cluster.deliverToQueue(queue, message, l); ++ } + bool invoke(AMQBody& body) { return framing::invoke(*this, body).wasHandled(); } + }; + +@@ -310,6 +314,7 @@ void Cluster::initialize() { + else + myUrl = settings.url; + broker.getKnownBrokers = boost::bind(&Cluster::getUrls, this); ++ broker.deferDelivery = boost::bind(&Cluster::deferDeliveryImpl, this, _1, _2); + broker.setExpiryPolicy(expiryPolicy); + dispatcher.start(); + deliverEventQueue.bypassOff(); +@@ -1097,4 +1102,30 @@ bool Cluster::isElder() const { + return elder; + } + ++void Cluster::deliverToQueue(const std::string& queue, const std::string& message, Lock& l) ++{ ++ broker::Queue::shared_ptr q = broker.getQueues().find(queue); ++ if (!q) { ++ QPID_LOG(critical, *this << " cluster delivery to non-existent queue: " << queue); ++ leave(l); ++ } ++ framing::Buffer buf(const_cast(message.data()), message.size()); ++ boost::intrusive_ptr msg(new broker::Message); ++ msg->decodeHeader(buf); ++ msg->decodeContent(buf); ++ q->deliver(msg); ++} ++ ++bool Cluster::deferDeliveryImpl(const std::string& queue, ++ const boost::intrusive_ptr& msg) ++{ ++ if (isClusterSafe()) return false; ++ std::string message; ++ message.resize(msg->encodedSize()); ++ framing::Buffer buf(const_cast(message.data()), message.size()); ++ msg->encode(buf); ++ mcast.mcastControl(ClusterDeliverToQueueBody(ProtocolVersion(), queue, message), self); ++ return true; ++} ++ + }} // namespace qpid::cluster +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.h b/qpid/cpp/src/qpid/cluster/Cluster.h +index 84dee27..5668d04 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.h ++++ b/qpid/cpp/src/qpid/cluster/Cluster.h +@@ -54,6 +54,10 @@ + + namespace qpid { + ++namespace broker { ++class Message; ++} ++ + namespace framing { + class AMQBody; + class Uuid; +@@ -124,6 +128,10 @@ class Cluster : private Cpg::Handler, public management::Manageable { + // Generates a log message for debugging purposes. + std::string debugSnapshot(); + ++ // Defer messages delivered in an unsafe context by multicasting. ++ bool deferDeliveryImpl(const std::string& queue, ++ const boost::intrusive_ptr& msg); ++ + private: + typedef sys::Monitor::ScopedLock Lock; + +@@ -173,8 +181,8 @@ class Cluster : private Cpg::Handler, public management::Manageable { + void errorCheck(const MemberId&, uint8_t type, SequenceNumber frameSeq, Lock&); + void timerWakeup(const MemberId&, const std::string& name, Lock&); + void timerDrop(const MemberId&, const std::string& name, Lock&); +- + void shutdown(const MemberId&, const framing::Uuid& shutdownId, Lock&); ++ void deliverToQueue(const std::string& queue, const std::string& message, Lock&); + + // Helper functions + ConnectionPtr getConnection(const EventFrame&, Lock&); +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index ebb07a1..e6d3900 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -101,7 +101,22 @@ class ShortTests(BrokerTest): + assert readfile("direct.dump") == readfile("updatee.dump") + os.remove("direct.dump") + os.remove("updatee.dump") +- ++ ++ def test_link_events(self): ++ """Regression test for https://bugzilla.redhat.com/show_bug.cgi?id=611543""" ++ args = ["--mgmt-pub-interval", 1] # Publish management information every second. ++ broker1 = self.cluster(1, args)[0] ++ broker2 = self.cluster(1, args)[0] ++ qp = self.popen(["qpid-printevents", broker1.host_port()], EXPECT_RUNNING) ++ qr = self.popen(["qpid-route", "route", "add", ++ broker1.host_port(), broker2.host_port(), ++ "amq.fanout", "key" ++ ], EXPECT_EXIT_OK) ++ # Look for link event in printevents output. ++ retry(lambda: find_in_file("brokerLinkUp", qp.outfile("out"))) ++ broker1.ready() ++ broker2.ready() ++ + class LongTests(BrokerTest): + """Tests that can run for a long time if -DDURATION= is set""" + def duration(self): +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index 30cd159..ecd4515 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -110,6 +110,12 @@ + + + ++ ++ ++ ++ ++ ++ + + + +diff --git a/qpid/python/qpid/brokertest.py b/qpid/python/qpid/brokertest.py +index 2242dcb..fddeefa 100644 +--- a/qpid/python/qpid/brokertest.py ++++ b/qpid/python/qpid/brokertest.py +@@ -250,6 +250,12 @@ def checkenv(name): + if not value: raise Exception("Environment variable %s is not set" % name) + return value + ++def find_in_file(str, filename): ++ if not os.path.exists(filename): return False ++ f = open(filename) ++ try: return str in f.read() ++ finally: f.close() ++ + class Broker(Popen): + "A broker process. Takes care of start, stop and logging." + _broker_count = 0 +@@ -366,15 +372,7 @@ class Broker(Popen): + def log_ready(self): + """Return true if the log file exists and contains a broker ready message""" + if self._log_ready: return True +- if not os.path.exists(self.log): return False +- f = open(self.log) +- try: +- for l in f: +- if "notice Broker running" in l: +- self._log_ready = True +- return True +- return False +- finally: f.close() ++ self._log_ready = find_in_file("notice Broker running", self.log) + + def ready(self): + """Wait till broker is ready to serve clients""" +-- +1.5.5.6 + +From 22397fbf439ed2d7f61fa50a85439e3998771fdd Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Tue, 6 Jul 2010 17:27:58 +0000 +Subject: [PATCH] Bug 611847 - Fixed - Thread safety issue - Session::createSender hangs when another thread calls nextReceiver + +QPID-664: Don't hold lock while waiting for incoming message in nextReceiver() call. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@960951 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 58f025104a61c13113cd6e0c61ee73553cb597bf) +--- + qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 2 +- + qpid/cpp/src/tests/MessagingThreadTests.cpp | 37 +++++++++++++++++++++ + 2 files changed, 38 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +index a606709..800c326 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +@@ -323,11 +323,11 @@ bool SessionImpl::get(ReceiverImpl& receiver, qpid::messaging::Message& message, + + bool SessionImpl::nextReceiver(qpid::messaging::Receiver& receiver, qpid::messaging::Duration timeout) + { +- qpid::sys::Mutex::ScopedLock l(lock); + while (true) { + try { + std::string destination; + if (incoming.getNextDestination(destination, adjust(timeout))) { ++ qpid::sys::Mutex::ScopedLock l(lock); + Receivers::const_iterator i = receivers.find(destination); + if (i == receivers.end()) { + throw qpid::messaging::ReceiverError(QPID_MSG("Received message for unknown destination " << destination)); +diff --git a/qpid/cpp/src/tests/MessagingThreadTests.cpp b/qpid/cpp/src/tests/MessagingThreadTests.cpp +index a355ba7..4826473 100644 +--- a/qpid/cpp/src/tests/MessagingThreadTests.cpp ++++ b/qpid/cpp/src/tests/MessagingThreadTests.cpp +@@ -54,6 +54,25 @@ struct ReceiveThread : public sys::Runnable { + } + }; + ++struct NextReceiverThread : public sys::Runnable { ++ Session session; ++ vector received; ++ string error; ++ ++ NextReceiverThread(Session s) : session(s) {} ++ void run() { ++ try { ++ while(true) { ++ Message m = session.nextReceiver(Duration::SECOND*5).fetch(); ++ if (m.getContent() == "END") break; ++ received.push_back(m.getContent()); ++ } ++ } catch (const std::exception& e) { ++ error = e.what(); ++ } ++ } ++}; ++ + + QPID_AUTO_TEST_CASE(testConcurrentSendReceive) { + MessagingFixture fix; +@@ -103,5 +122,23 @@ QPID_AUTO_TEST_CASE(testCloseSessionBusyReceiver) { + BOOST_CHECK_THROW(r.fetch(Duration(0)), NoMessageAvailable); + } + ++QPID_AUTO_TEST_CASE(testConcurrentSendNextReceiver) { ++ MessagingFixture fix; ++ Receiver r = fix.session.createReceiver("concurrent;{create:always,link:{reliability:unreliable}}"); ++ const size_t COUNT=100; ++ r.setCapacity(COUNT); ++ NextReceiverThread rt(fix.session); ++ sys::Thread thread(rt); ++ sys::usleep(1000); // Give the receive thread time to block. ++ Sender s = fix.session.createSender("concurrent;{create:always}"); ++ for (size_t i = 0; i < COUNT; ++i) { ++ s.send(Message()); ++ } ++ s.send(Message("END")); ++ thread.join(); ++ BOOST_CHECK_EQUAL(rt.error, string()); ++ BOOST_CHECK_EQUAL(COUNT, rt.received.size()); ++} ++ + QPID_AUTO_TEST_SUITE_END() + }} // namespace qpid::tests +-- +1.5.5.6 + +From 9ea6c8b4d425e07529bea1e16c2582b96bb79ea5 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 7 Jul 2010 15:20:01 +0000 +Subject: [PATCH] Bug 609682 - Broker crash on exit with assertion in Thread::join + +Ensure broker is deleted in main thread, not by global destructors. + +This fixes a race condition that was not handled by r959746. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@961404 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 592f0eb256d53307384e5379120cc202004c66d7) +--- + qpid/cpp/src/posix/QpiddBroker.cpp | 2 +- + qpid/cpp/src/qpid/broker/SignalHandler.cpp | 20 ++++++++++++-------- + qpid/cpp/src/qpid/broker/SignalHandler.h | 10 +++++----- + 3 files changed, 18 insertions(+), 14 deletions(-) + +diff --git a/qpid/cpp/src/posix/QpiddBroker.cpp b/qpid/cpp/src/posix/QpiddBroker.cpp +index bc45b27..8799354 100644 +--- a/qpid/cpp/src/posix/QpiddBroker.cpp ++++ b/qpid/cpp/src/posix/QpiddBroker.cpp +@@ -113,7 +113,7 @@ void QpiddOptions::usage() const { + // + struct ScopedSetBroker { + ScopedSetBroker(const boost::intrusive_ptr& broker) { +- qpid::broker::SignalHandler::setBroker(broker); ++ qpid::broker::SignalHandler::setBroker(broker.get()); + } + ~ScopedSetBroker() { qpid::broker::SignalHandler::setBroker(0); } + }; +diff --git a/qpid/cpp/src/qpid/broker/SignalHandler.cpp b/qpid/cpp/src/qpid/broker/SignalHandler.cpp +index b565cfd..16c141f 100644 +--- a/qpid/cpp/src/qpid/broker/SignalHandler.cpp ++++ b/qpid/cpp/src/qpid/broker/SignalHandler.cpp +@@ -20,30 +20,34 @@ + */ + #include "qpid/broker/SignalHandler.h" + #include "qpid/broker/Broker.h" ++#include "qpid/sys/Mutex.h" + #include + + namespace qpid { + namespace broker { + +-boost::intrusive_ptr SignalHandler::broker; ++// Lock is to ensure that broker is not concurrently set to 0 and ++// deleted while we are in a call to broker->shutdown() + +-void SignalHandler::setBroker(const boost::intrusive_ptr& b) { +- broker = b; ++sys::Mutex brokerLock; ++Broker* SignalHandler::broker; + ++void SignalHandler::setBroker(Broker* b) { ++ sys::Mutex::ScopedLock l(brokerLock); ++ broker = b; + signal(SIGINT,shutdownHandler); + signal(SIGTERM, shutdownHandler); +- +- signal(SIGHUP,SIG_IGN); // TODO aconway 2007-07-18: reload config. +- ++ signal(SIGHUP,SIG_IGN); + signal(SIGCHLD,SIG_IGN); + } + + void SignalHandler::shutdown() { shutdownHandler(0); } + + void SignalHandler::shutdownHandler(int) { +- if (broker.get()) { ++ sys::Mutex::ScopedLock l(brokerLock); ++ if (broker) { + broker->shutdown(); +- broker = 0; // Release the broker reference. ++ broker = 0; + } + } + +diff --git a/qpid/cpp/src/qpid/broker/SignalHandler.h b/qpid/cpp/src/qpid/broker/SignalHandler.h +index bbe831b..7bfa9ea 100644 +--- a/qpid/cpp/src/qpid/broker/SignalHandler.h ++++ b/qpid/cpp/src/qpid/broker/SignalHandler.h +@@ -22,8 +22,6 @@ + * + */ + +-#include +- + namespace qpid { + namespace broker { + +@@ -35,15 +33,17 @@ class Broker; + class SignalHandler + { + public: +- /** Set the broker to be shutdown on signals */ +- static void setBroker(const boost::intrusive_ptr& broker); ++ /** Set the broker to be shutdown on signals. ++ * Must be reset by calling setBroker(0) before the broker is deleted. ++ */ ++ static void setBroker(Broker* broker); + + /** Initiate shut-down of broker */ + static void shutdown(); + + private: + static void shutdownHandler(int); +- static boost::intrusive_ptr broker; ++ static Broker* broker; + }; + }} // namespace qpid::broker + +-- +1.5.5.6 + +From 860119742313b551d3ee9bf116d398bc04129675 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 8 Jul 2010 15:40:01 +0000 +Subject: [PATCH] Bug 610493 - qpidd broker aborts in qpid::sys::Thread::join() / qpid::sys::assertClusterSafe() during 'furious' shutdown + +Fix cluster-safe assertion in ~Connection. + +Don't trigger cluster-safe asserts in broker::~Connection as it can be +called from an IO threads during broker shutdown. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@961814 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 33e2bc4b0925e86417c41e5a4569393cdaae2a03) +--- + qpid/cpp/src/qpid/cluster/Connection.cpp | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 04aced5..aad3d8a 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -41,6 +41,7 @@ + #include "qpid/framing/ConnectionCloseBody.h" + #include "qpid/framing/ConnectionCloseOkBody.h" + #include "qpid/log/Statement.h" ++#include "qpid/sys/ClusterSafe.h" + #include "qpid/management/ManagementAgent.h" + #include + +@@ -169,6 +170,11 @@ void Connection::announce( + + Connection::~Connection() { + if (connection.get()) connection->setErrorListener(0); ++ // Don't trigger cluster-safe asserts in broker:: ~Connection as ++ // it may be called in an IO thread context during broker ++ // shutdown. ++ sys::ClusterSafeScope css; ++ connection.reset(); + } + + bool Connection::doOutput() { +-- +1.5.5.6 + +From a0e4c21893973aea53b773381ee6ca2c7e6dbcb2 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Thu, 8 Jul 2010 15:53:49 +0000 +Subject: [PATCH] BZ-612615 convert ttl from seconds to milliseconds + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@961824 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 8 ++++++-- + qpid/python/qpid/messaging/message.py | 8 ++++++++ + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 2175715..a3c565f 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -980,6 +980,7 @@ class Engine: + break + + for snd in ssn.senders: ++ # XXX: should included snd.acked in this + if snd.synced >= snd.queued and sst.need_sync: + sst.write_cmd(ExecutionSync(), sync_noop) + +@@ -1182,9 +1183,11 @@ class Engine: + if msg.priority is not None: + dp.priority = msg.priority + if msg.ttl is not None: +- dp.ttl = msg.ttl ++ dp.ttl = long(msg.ttl*1000) + enc, dec = get_codec(msg.content_type) + body = enc(msg.content) ++ ++ # XXX: this is not safe for out of order, can this be triggered by pre_ack? + def msg_acked(): + # XXX: should we log the ack somehow too? + snd.acked += 1 +@@ -1243,7 +1246,8 @@ class Engine: + if dp.delivery_mode is not None: + msg.durable = dp.delivery_mode == delivery_mode.persistent + msg.priority = dp.priority +- msg.ttl = dp.ttl ++ if dp.ttl is not None: ++ msg.ttl = dp.ttl/1000.0 + msg.redelivered = dp.redelivered + msg.properties = mp.application_headers or {} + if mp.app_id is not None: +diff --git a/qpid/python/qpid/messaging/message.py b/qpid/python/qpid/messaging/message.py +index a96a6da..e2406f1 100644 +--- a/qpid/python/qpid/messaging/message.py ++++ b/qpid/python/qpid/messaging/message.py +@@ -74,12 +74,20 @@ class Message: + + @type id: str + @ivar id: the message id ++ @type subject: str ++ @ivar subject: message subject + @type user_id: str + @ivar user_id: the user-id of the message producer + @type reply_to: str + @ivar reply_to: the address to send replies + @type correlation_id: str + @ivar correlation_id: a correlation-id for the message ++ @type durable: bool ++ @ivar durable: message durability ++ @type priority: int ++ @ivar priority: message priority ++ @type ttl: float ++ @ivar ttl: time-to-live measured in seconds + @type properties: dict + @ivar properties: application specific message properties + @type content_type: str +-- +1.5.5.6 + +From 9343455e23ac695b957d5d4f357acf925516f173 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Thu, 8 Jul 2010 20:29:52 +0000 +Subject: [PATCH] Bug 612682 - QMF: need to be able to construct object id's from agent and object identification strings. + +QMF: add api to get agent id, and new object id constructor that uses agent id. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@961919 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit f67dc9fc3989a350af068ff5d80a8d325ef78f2a) +--- + qpid/cpp/include/qpid/agent/ManagementAgent.h | 10 ++++++++++ + .../cpp/include/qpid/management/ManagementObject.h | 4 ++++ + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 15 +++++++++++++++ + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 2 ++ + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 20 ++++++++++++++++++++ + qpid/cpp/src/qpid/management/ManagementAgent.h | 3 +++ + qpid/cpp/src/tests/ManagementTest.cpp | 7 +++++++ + 7 files changed, 61 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/include/qpid/agent/ManagementAgent.h b/qpid/cpp/include/qpid/agent/ManagementAgent.h +index aa0a974..e245124 100644 +--- a/qpid/cpp/include/qpid/agent/ManagementAgent.h ++++ b/qpid/cpp/include/qpid/agent/ManagementAgent.h +@@ -75,6 +75,16 @@ class ManagementAgent + const std::string& product, + const std::string& instance="") = 0; + ++ // Retrieve the name of the agent as assigned by setName() ++ // ++ virtual void getName(std::string& vendor, ++ std::string& product, ++ std::string& instance) = 0; ++ ++ // Obtain the fully qualified name of the agent ++ // ++ virtual const std::string& getAddress() = 0; ++ + // Connect to a management broker + // + // brokerHost - Hostname or IP address (dotted-quad) of broker. +diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h +index 6bbd7ec..59a7f00 100644 +--- a/qpid/cpp/include/qpid/management/ManagementObject.h ++++ b/qpid/cpp/include/qpid/management/ManagementObject.h +@@ -65,6 +65,10 @@ public: + QPID_COMMON_EXTERN ObjectId(AgentAttachment* _agent, uint8_t flags, uint16_t seq); + QPID_COMMON_EXTERN ObjectId(std::istream&); + QPID_COMMON_EXTERN ObjectId(const std::string&); ++ QPID_COMMON_EXTERN ObjectId(const std::string& agentAddress, const std::string& key, ++ uint64_t epoch=0) : agent(0), first(0), second(0), ++ agentEpoch(epoch), v2Key(key), agentName(agentAddress) {} ++ + // Deprecated: + QPID_COMMON_EXTERN ObjectId(uint8_t flags, uint16_t seq, uint32_t broker, uint64_t object); + QPID_COMMON_EXTERN bool operator==(const ObjectId &other) const; +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index bc841ca..351e0bf 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -144,6 +144,21 @@ void ManagementAgentImpl::setName(const string& vendor, const string& product, c + attrMap["_name"] = name_address; + } + ++ ++void ManagementAgentImpl::getName(string& vendor, string& product, string& instance) ++{ ++ vendor = std::string(attrMap["_vendor"]); ++ product = std::string(attrMap["_product"]); ++ instance = std::string(attrMap["_instance"]); ++} ++ ++ ++const std::string& ManagementAgentImpl::getAddress() ++{ ++ return name_address; ++} ++ ++ + void ManagementAgentImpl::init(const string& brokerHost, + uint16_t brokerPort, + uint16_t intervalSeconds, +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index 7d4531f..4a58807 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -54,6 +54,8 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + void setName(const std::string& vendor, + const std::string& product, + const std::string& instance=""); ++ void getName(std::string& vendor, std::string& product, std::string& instance); ++ const std::string& getAddress(); + void init(const std::string& brokerHost = "localhost", + uint16_t brokerPort = 5672, + uint16_t intervalSeconds = 10, +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 8818a4c..9e4e966 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -197,6 +197,12 @@ void ManagementAgent::pluginsInitialized() { + + void ManagementAgent::setName(const string& vendor, const string& product, const string& instance) + { ++ if (vendor.find(':') != vendor.npos) { ++ throw Exception("vendor string cannot contain a ':' character."); ++ } ++ if (product.find(':') != product.npos) { ++ throw Exception("product string cannot contain a ':' character."); ++ } + attrMap["_vendor"] = vendor; + attrMap["_product"] = product; + string inst; +@@ -218,6 +224,20 @@ void ManagementAgent::setName(const string& vendor, const string& product, const + } + + ++void ManagementAgent::getName(string& vendor, string& product, string& instance) ++{ ++ vendor = std::string(attrMap["_vendor"]); ++ product = std::string(attrMap["_product"]); ++ instance = std::string(attrMap["_instance"]); ++} ++ ++ ++const std::string& ManagementAgent::getAddress() ++{ ++ return name_address; ++} ++ ++ + void ManagementAgent::writeData () + { + string filename (dataDir + "/.mbrokerdata"); +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index 44e3eb1..a6e906e 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -77,6 +77,9 @@ public: + void setName(const std::string& vendor, + const std::string& product, + const std::string& instance=""); ++ void getName(std::string& vendor, std::string& product, std::string& instance); ++ const std::string& getAddress(); ++ + void setInterval(uint16_t _interval) { interval = _interval; } + void setExchange(qpid::broker::Exchange::shared_ptr mgmtExchange, + qpid::broker::Exchange::shared_ptr directExchange); +diff --git a/qpid/cpp/src/tests/ManagementTest.cpp b/qpid/cpp/src/tests/ManagementTest.cpp +index e9b8ac3..8944c08 100644 +--- a/qpid/cpp/src/tests/ManagementTest.cpp ++++ b/qpid/cpp/src/tests/ManagementTest.cpp +@@ -86,6 +86,13 @@ QPID_AUTO_TEST_CASE(testObjectIdAttach) { + BOOST_CHECK_EQUAL(out2.str(), "10-20-30-MrSmith-0(GabbaGabbaHey)"); + } + ++QPID_AUTO_TEST_CASE(testObjectIdCreate) { ++ ObjectId oid("some-agent-name", "an-object-name"); ++ ++ BOOST_CHECK_EQUAL(oid.getAgentName(), "some-agent-name"); ++ BOOST_CHECK_EQUAL(oid.getV2Key(), "an-object-name"); ++} ++ + QPID_AUTO_TEST_CASE(testConsoleObjectId) { + qpid::console::ObjectId oid1, oid2; + +-- +1.5.5.6 + +From 2517015aba0fe7dba908b6e5d0134a3d7b4fbabd Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 9 Jul 2010 16:06:44 +0000 +Subject: [PATCH] Bug 612988 - Fixed - clustered qpidd segfaults if --known-hosts-url specifies invalid url + +QPID-2727: Handle exceptions in Broker constructor and call finalise to safely cleanup plugins + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@962586 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 4d7e453d2c0da611554ad263186c22c374c090c8) +--- + qpid/cpp/src/qpid/broker/Broker.cpp | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp +index 02f403a..0f1d051 100644 +--- a/qpid/cpp/src/qpid/broker/Broker.cpp ++++ b/qpid/cpp/src/qpid/broker/Broker.cpp +@@ -164,6 +164,7 @@ Broker::Broker(const Broker::Options& conf) : + getKnownBrokers(boost::bind(&Broker::getKnownBrokersImpl, this)), + deferDelivery(boost::bind(&Broker::deferDeliveryImpl, this, _1, _2)) + { ++ try { + if (conf.enableMgmt) { + QPID_LOG(info, "Management enabled"); + managementAgent->configure(dataDir.isEnabled() ? dataDir.getPath() : string(), +@@ -288,6 +289,10 @@ Broker::Broker(const Broker::Options& conf) : + } else if (conf.knownHosts != knownHostsNone) { + knownBrokers.push_back(Url(conf.knownHosts)); + } ++ } catch (const std::exception& e) { ++ finalize(); ++ throw; ++ } + } + + void Broker::declareStandardExchange(const std::string& name, const std::string& type) +-- +1.5.5.6 + +From ee2dcac6734efed72b2379cf22437799e8f39efc Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Mon, 12 Jul 2010 13:43:27 +0000 +Subject: [PATCH] BZ-613216 fixed payload of None for text/plain messages + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@963280 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/message.py | 16 ++++++++++++++-- + qpid/python/qpid/tests/messaging/message.py | 6 ++++++ + 2 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/qpid/messaging/message.py b/qpid/python/qpid/messaging/message.py +index e2406f1..b70b365 100644 +--- a/qpid/python/qpid/messaging/message.py ++++ b/qpid/python/qpid/messaging/message.py +@@ -49,11 +49,23 @@ TYPE_MAPPINGS={ + + DEFAULT_CODEC = (lambda x: x, lambda x: x) + ++def encode_text_plain(x): ++ if x is None: ++ return None ++ else: ++ return x.encode("utf8") ++ ++def decode_text_plain(x): ++ if x is None: ++ return None ++ else: ++ return x.decode("utf8") ++ + TYPE_CODEC={ + "amqp/map": codec("map"), + "amqp/list": codec("list"), +- "text/plain; charset=utf8": (lambda x: x.encode("utf8"), lambda x: x.decode("utf8")), +- "text/plain": (lambda x: x.encode("utf8"), lambda x: x.decode("utf8")), ++ "text/plain; charset=utf8": (encode_text_plain, decode_text_plain), ++ "text/plain": (encode_text_plain, decode_text_plain), + "": DEFAULT_CODEC, + None: DEFAULT_CODEC + } +diff --git a/qpid/python/qpid/tests/messaging/message.py b/qpid/python/qpid/tests/messaging/message.py +index 91aab5f..526a5cf 100644 +--- a/qpid/python/qpid/tests/messaging/message.py ++++ b/qpid/python/qpid/tests/messaging/message.py +@@ -111,3 +111,9 @@ class MessageEchoTests(Base): + def testContentTypeUnknown(self): + msg = Message(content_type = "this-content-type-does-not-exist") + self.check(msg) ++ ++ def testTextPlain(self): ++ self.check(Message(content_type="text/plain", content="asdf")) ++ ++ def testTextPlainEmpty(self): ++ self.check(Message(content_type="text/plain")) +-- +1.5.5.6 + +From 3d0eebd14b24321d5c91662c873c1b689c360150 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Tue, 13 Jul 2010 16:33:24 +0000 +Subject: [PATCH] removed old python examples + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@963786 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/examples/README.verify | 6 +- + qpid/cpp/examples/direct/verify_cpp_python | 4 - + qpid/cpp/examples/direct/verify_cpp_python.in | 14 - + qpid/cpp/examples/direct/verify_python_cpp | 5 - + qpid/cpp/examples/direct/verify_python_cpp.in | 15 - + qpid/cpp/examples/fanout/verify_cpp_python | 7 - + qpid/cpp/examples/fanout/verify_cpp_python.in | 27 -- + qpid/cpp/examples/fanout/verify_python_cpp | 7 - + qpid/cpp/examples/fanout/verify_python_cpp.in | 29 -- + qpid/cpp/examples/pub-sub/verify_cpp_python | 6 - + qpid/cpp/examples/pub-sub/verify_cpp_python.in | 55 ---- + qpid/cpp/examples/pub-sub/verify_python_cpp | 6 - + qpid/cpp/examples/pub-sub/verify_python_cpp.in | 59 ---- + .../examples/request-response/verify_cpp_python | 6 - + .../examples/request-response/verify_cpp_python.in | 15 - + .../examples/request-response/verify_python_cpp | 5 - + .../examples/request-response/verify_python_cpp.in | 18 - + qpid/cpp/examples/verify_all | 12 +- + qpid/python/examples/README | 335 ++------------------ + qpid/python/examples/datatypes/client.py | 122 ------- + qpid/python/examples/datatypes/server.py | 124 ------- + qpid/python/examples/datatypes/testdata.py | 201 ------------ + qpid/python/examples/direct/declare_queues.py | 76 ----- + qpid/python/examples/direct/direct_consumer.py | 94 ------ + qpid/python/examples/direct/direct_producer.py | 73 ----- + qpid/python/examples/direct/listener.py | 109 ------- + qpid/python/examples/direct/verify | 22 -- + qpid/python/examples/direct/verify.in | 14 - + qpid/python/examples/fanout/fanout_consumer.py | 99 ------ + qpid/python/examples/fanout/fanout_producer.py | 72 ----- + qpid/python/examples/fanout/listener.py | 117 ------- + qpid/python/examples/fanout/verify | 24 -- + qpid/python/examples/fanout/verify.in | 27 -- + qpid/python/examples/headers/declare_queues.py | 77 ----- + qpid/python/examples/headers/headers_consumer.py | 107 ------- + qpid/python/examples/headers/headers_producer.py | 79 ----- + qpid/python/examples/headers/verify | 22 -- + qpid/python/examples/headers/verify.in | 25 -- + qpid/python/examples/pubsub/topic_publisher.py | 92 ------ + qpid/python/examples/pubsub/topic_subscriber.py | 154 --------- + qpid/python/examples/pubsub/verify | 23 -- + qpid/python/examples/pubsub/verify.in | 55 ---- + qpid/python/examples/request-response/client.py | 131 -------- + qpid/python/examples/request-response/server.py | 110 ------- + qpid/python/examples/request-response/verify | 24 -- + qpid/python/examples/request-response/verify.in | 14 - + .../python/examples/xml-exchange/declare_queues.py | 90 ------ + qpid/python/examples/xml-exchange/listener.py | 105 ------ + qpid/python/examples/xml-exchange/verify | 22 -- + qpid/python/examples/xml-exchange/verify.in | 15 - + qpid/python/examples/xml-exchange/xml_consumer.py | 96 ------ + qpid/python/examples/xml-exchange/xml_producer.py | 92 ------ + 52 files changed, 33 insertions(+), 3105 deletions(-) + delete mode 100644 qpid/cpp/examples/direct/verify_cpp_python + delete mode 100644 qpid/cpp/examples/direct/verify_cpp_python.in + delete mode 100644 qpid/cpp/examples/direct/verify_python_cpp + delete mode 100644 qpid/cpp/examples/direct/verify_python_cpp.in + delete mode 100644 qpid/cpp/examples/fanout/verify_cpp_python + delete mode 100644 qpid/cpp/examples/fanout/verify_cpp_python.in + delete mode 100644 qpid/cpp/examples/fanout/verify_python_cpp + delete mode 100644 qpid/cpp/examples/fanout/verify_python_cpp.in + delete mode 100644 qpid/cpp/examples/pub-sub/verify_cpp_python + delete mode 100644 qpid/cpp/examples/pub-sub/verify_cpp_python.in + delete mode 100644 qpid/cpp/examples/pub-sub/verify_python_cpp + delete mode 100644 qpid/cpp/examples/pub-sub/verify_python_cpp.in + delete mode 100644 qpid/cpp/examples/request-response/verify_cpp_python + delete mode 100644 qpid/cpp/examples/request-response/verify_cpp_python.in + delete mode 100644 qpid/cpp/examples/request-response/verify_python_cpp + delete mode 100644 qpid/cpp/examples/request-response/verify_python_cpp.in + delete mode 100755 qpid/python/examples/datatypes/client.py + delete mode 100755 qpid/python/examples/datatypes/server.py + delete mode 100644 qpid/python/examples/datatypes/testdata.py + delete mode 100755 qpid/python/examples/direct/declare_queues.py + delete mode 100755 qpid/python/examples/direct/direct_consumer.py + delete mode 100755 qpid/python/examples/direct/direct_producer.py + delete mode 100755 qpid/python/examples/direct/listener.py + delete mode 100644 qpid/python/examples/direct/verify + delete mode 100644 qpid/python/examples/direct/verify.in + delete mode 100755 qpid/python/examples/fanout/fanout_consumer.py + delete mode 100755 qpid/python/examples/fanout/fanout_producer.py + delete mode 100755 qpid/python/examples/fanout/listener.py + delete mode 100644 qpid/python/examples/fanout/verify + delete mode 100644 qpid/python/examples/fanout/verify.in + delete mode 100755 qpid/python/examples/headers/declare_queues.py + delete mode 100755 qpid/python/examples/headers/headers_consumer.py + delete mode 100755 qpid/python/examples/headers/headers_producer.py + delete mode 100644 qpid/python/examples/headers/verify + delete mode 100644 qpid/python/examples/headers/verify.in + delete mode 100755 qpid/python/examples/pubsub/topic_publisher.py + delete mode 100755 qpid/python/examples/pubsub/topic_subscriber.py + delete mode 100644 qpid/python/examples/pubsub/verify + delete mode 100644 qpid/python/examples/pubsub/verify.in + delete mode 100755 qpid/python/examples/request-response/client.py + delete mode 100755 qpid/python/examples/request-response/server.py + delete mode 100644 qpid/python/examples/request-response/verify + delete mode 100644 qpid/python/examples/request-response/verify.in + delete mode 100755 qpid/python/examples/xml-exchange/declare_queues.py + delete mode 100755 qpid/python/examples/xml-exchange/listener.py + delete mode 100644 qpid/python/examples/xml-exchange/verify + delete mode 100644 qpid/python/examples/xml-exchange/verify.in + delete mode 100755 qpid/python/examples/xml-exchange/xml_consumer.py + delete mode 100755 qpid/python/examples/xml-exchange/xml_producer.py + +diff --git a/qpid/cpp/examples/README.verify b/qpid/cpp/examples/README.verify +index 6d9d67b..e137076 100644 +--- a/qpid/cpp/examples/README.verify ++++ b/qpid/cpp/examples/README.verify +@@ -22,14 +22,12 @@ For more information read examples/README. + + == The Verify All Script == + +-The verify_all script will run C++ examples against itself and against the +-Python examples. The success of the script is determined by comparing its output ++The verify_all script will run each C++ example and compare its output + against what is expected. + + === Arguments === + +-The verify_all script expects the path to Qpid trunk as an argument, in order to +-setup the environment for Python examples. ++The verify_all script expects the path to Qpid trunk as an argument. + + == The Verify Script == + +diff --git a/qpid/cpp/examples/direct/verify_cpp_python b/qpid/cpp/examples/direct/verify_cpp_python +deleted file mode 100644 +index 4dc445b..0000000 +--- a/qpid/cpp/examples/direct/verify_cpp_python ++++ /dev/null +@@ -1,4 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-py=$PYTHON_EXAMPLES/direct +-clients ./declare_queues ./direct_producer $py/direct_consumer.py +-outputs ./declare_queues.out ./direct_producer.out $py/direct_consumer.py.out +diff --git a/qpid/cpp/examples/direct/verify_cpp_python.in b/qpid/cpp/examples/direct/verify_cpp_python.in +deleted file mode 100644 +index 1a329be..0000000 +--- a/qpid/cpp/examples/direct/verify_cpp_python.in ++++ /dev/null +@@ -1,14 +0,0 @@ +-==== declare_queues.out +-==== direct_producer.out +-==== direct_consumer.py.out +-Message 0 +-Message 1 +-Message 2 +-Message 3 +-Message 4 +-Message 5 +-Message 6 +-Message 7 +-Message 8 +-Message 9 +-That's all, folks! +diff --git a/qpid/cpp/examples/direct/verify_python_cpp b/qpid/cpp/examples/direct/verify_python_cpp +deleted file mode 100644 +index fe4893e..0000000 +--- a/qpid/cpp/examples/direct/verify_python_cpp ++++ /dev/null +@@ -1,5 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-py=$PYTHON_EXAMPLES/direct +-clients $py/declare_queues.py $py/direct_producer.py ./listener +-outputs $py/declare_queues.py.out $py/direct_producer.py.out ./listener.out +- +diff --git a/qpid/cpp/examples/direct/verify_python_cpp.in b/qpid/cpp/examples/direct/verify_python_cpp.in +deleted file mode 100644 +index 6f35255..0000000 +--- a/qpid/cpp/examples/direct/verify_python_cpp.in ++++ /dev/null +@@ -1,15 +0,0 @@ +-==== declare_queues.py.out +-==== direct_producer.py.out +-==== listener.out +-Message: message 0 +-Message: message 1 +-Message: message 2 +-Message: message 3 +-Message: message 4 +-Message: message 5 +-Message: message 6 +-Message: message 7 +-Message: message 8 +-Message: message 9 +-Message: That's all, folks! +-Shutting down listener for message_queue +diff --git a/qpid/cpp/examples/fanout/verify_cpp_python b/qpid/cpp/examples/fanout/verify_cpp_python +deleted file mode 100644 +index 6a1ba7a..0000000 +--- a/qpid/cpp/examples/fanout/verify_cpp_python ++++ /dev/null +@@ -1,7 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-py=$PYTHON_EXAMPLES/fanout +-background "Subscribed" $py/fanout_consumer.py +-background "Subscribed" $py/fanout_consumer.py +-clients ./fanout_producer +-outputs ./fanout_producer.out "$py/fanout_consumer.py.out | remove_uuid" "$py/fanout_consumer.pyX.out | remove_uuid" +- +diff --git a/qpid/cpp/examples/fanout/verify_cpp_python.in b/qpid/cpp/examples/fanout/verify_cpp_python.in +deleted file mode 100644 +index 21bafe0..0000000 +--- a/qpid/cpp/examples/fanout/verify_cpp_python.in ++++ /dev/null +@@ -1,27 +0,0 @@ +-==== fanout_producer.out +-==== fanout_consumer.py.out | remove_uuid +-Subscribed to queue +-Message 0 +-Message 1 +-Message 2 +-Message 3 +-Message 4 +-Message 5 +-Message 6 +-Message 7 +-Message 8 +-Message 9 +-That's all, folks! +-==== fanout_consumer.pyX.out | remove_uuid +-Subscribed to queue +-Message 0 +-Message 1 +-Message 2 +-Message 3 +-Message 4 +-Message 5 +-Message 6 +-Message 7 +-Message 8 +-Message 9 +-That's all, folks! +diff --git a/qpid/cpp/examples/fanout/verify_python_cpp b/qpid/cpp/examples/fanout/verify_python_cpp +deleted file mode 100644 +index d9b3361..0000000 +--- a/qpid/cpp/examples/fanout/verify_python_cpp ++++ /dev/null +@@ -1,7 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-py=$PYTHON_EXAMPLES/fanout +-background "Listening" ./listener +-background "Listening" ./listener +-clients $py/fanout_producer.py +-outputs $py/fanout_producer.py.out "./listener.out | remove_uuid" "./listenerX.out | remove_uuid" +- +diff --git a/qpid/cpp/examples/fanout/verify_python_cpp.in b/qpid/cpp/examples/fanout/verify_python_cpp.in +deleted file mode 100644 +index 8f9e959..0000000 +--- a/qpid/cpp/examples/fanout/verify_python_cpp.in ++++ /dev/null +@@ -1,29 +0,0 @@ +-==== fanout_producer.py.out +-==== listener.out | remove_uuid +-Listening +-Message: message 0 +-Message: message 1 +-Message: message 2 +-Message: message 3 +-Message: message 4 +-Message: message 5 +-Message: message 6 +-Message: message 7 +-Message: message 8 +-Message: message 9 +-Message: That's all, folks! +-Shutting down listener for +-==== listenerX.out | remove_uuid +-Listening +-Message: message 0 +-Message: message 1 +-Message: message 2 +-Message: message 3 +-Message: message 4 +-Message: message 5 +-Message: message 6 +-Message: message 7 +-Message: message 8 +-Message: message 9 +-Message: That's all, folks! +-Shutting down listener for +diff --git a/qpid/cpp/examples/pub-sub/verify_cpp_python b/qpid/cpp/examples/pub-sub/verify_cpp_python +deleted file mode 100644 +index f6c6850..0000000 +--- a/qpid/cpp/examples/pub-sub/verify_cpp_python ++++ /dev/null +@@ -1,6 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-py=$PYTHON_EXAMPLES/pubsub +-background "Queues created" $py/topic_subscriber.py +-clients ./topic_publisher +-outputs ./topic_publisher.out "$py/topic_subscriber.py.out | remove_uuid | sort" +- +diff --git a/qpid/cpp/examples/pub-sub/verify_cpp_python.in b/qpid/cpp/examples/pub-sub/verify_cpp_python.in +deleted file mode 100644 +index 951d9ad..0000000 +--- a/qpid/cpp/examples/pub-sub/verify_cpp_python.in ++++ /dev/null +@@ -1,55 +0,0 @@ +-==== topic_publisher.out +-==== topic_subscriber.py.out | remove_uuid | sort +-Message 0 +-Message 0 +-Message 0 +-Message 0 +-Message 0 +-Message 0 +-Message 0 +-Message 0 +-Message 1 +-Message 1 +-Message 1 +-Message 1 +-Message 1 +-Message 1 +-Message 1 +-Message 1 +-Message 2 +-Message 2 +-Message 2 +-Message 2 +-Message 2 +-Message 2 +-Message 2 +-Message 2 +-Message 3 +-Message 3 +-Message 3 +-Message 3 +-Message 3 +-Message 3 +-Message 3 +-Message 3 +-Message 4 +-Message 4 +-Message 4 +-Message 4 +-Message 4 +-Message 4 +-Message 4 +-Message 4 +-Messages on 'europe' queue: +-Messages on 'news' queue: +-Messages on 'usa' queue: +-Messages on 'weather' queue: +-Queues created - please start the topic producer +-Subscribing local queue 'local_europe' to europe-' +-Subscribing local queue 'local_news' to news-' +-Subscribing local queue 'local_usa' to usa-' +-Subscribing local queue 'local_weather' to weather-' +-That's all, folks! +-That's all, folks! +-That's all, folks! +-That's all, folks! +diff --git a/qpid/cpp/examples/pub-sub/verify_python_cpp b/qpid/cpp/examples/pub-sub/verify_python_cpp +deleted file mode 100644 +index 2ddaad5..0000000 +--- a/qpid/cpp/examples/pub-sub/verify_python_cpp ++++ /dev/null +@@ -1,6 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-py=$PYTHON_EXAMPLES/pubsub +-background "Listening" ./topic_listener +-clients $py/topic_publisher.py +-outputs $py/topic_publisher.py.out "topic_listener.out | remove_uuid | sort" +- +diff --git a/qpid/cpp/examples/pub-sub/verify_python_cpp.in b/qpid/cpp/examples/pub-sub/verify_python_cpp.in +deleted file mode 100644 +index f2871eb..0000000 +--- a/qpid/cpp/examples/pub-sub/verify_python_cpp.in ++++ /dev/null +@@ -1,59 +0,0 @@ +-==== topic_publisher.py.out +-==== topic_listener.out | remove_uuid | sort +-Declaring queue: europe +-Declaring queue: news +-Declaring queue: usa +-Declaring queue: weather +-Listening for messages ... +-Message: That's all, folks! from europe +-Message: That's all, folks! from news +-Message: That's all, folks! from usa +-Message: That's all, folks! from weather +-Message: europe.news 0 from europe +-Message: europe.news 0 from news +-Message: europe.news 1 from europe +-Message: europe.news 1 from news +-Message: europe.news 2 from europe +-Message: europe.news 2 from news +-Message: europe.news 3 from europe +-Message: europe.news 3 from news +-Message: europe.news 4 from europe +-Message: europe.news 4 from news +-Message: europe.weather 0 from europe +-Message: europe.weather 0 from weather +-Message: europe.weather 1 from europe +-Message: europe.weather 1 from weather +-Message: europe.weather 2 from europe +-Message: europe.weather 2 from weather +-Message: europe.weather 3 from europe +-Message: europe.weather 3 from weather +-Message: europe.weather 4 from europe +-Message: europe.weather 4 from weather +-Message: usa.news 0 from news +-Message: usa.news 0 from usa +-Message: usa.news 1 from news +-Message: usa.news 1 from usa +-Message: usa.news 2 from news +-Message: usa.news 2 from usa +-Message: usa.news 3 from news +-Message: usa.news 3 from usa +-Message: usa.news 4 from news +-Message: usa.news 4 from usa +-Message: usa.weather 0 from usa +-Message: usa.weather 0 from weather +-Message: usa.weather 1 from usa +-Message: usa.weather 1 from weather +-Message: usa.weather 2 from usa +-Message: usa.weather 2 from weather +-Message: usa.weather 3 from usa +-Message: usa.weather 3 from weather +-Message: usa.weather 4 from usa +-Message: usa.weather 4 from weather +-Shutting down listener for europe +-Shutting down listener for news +-Shutting down listener for usa +-Shutting down listener for weather +-Subscribing to queue europe +-Subscribing to queue news +-Subscribing to queue usa +-Subscribing to queue weather +diff --git a/qpid/cpp/examples/request-response/verify_cpp_python b/qpid/cpp/examples/request-response/verify_cpp_python +deleted file mode 100644 +index 867af3a..0000000 +--- a/qpid/cpp/examples/request-response/verify_cpp_python ++++ /dev/null +@@ -1,6 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-background "Request server running" $PYTHON_EXAMPLES/request-response/server.py +-clients ./client +-sleep 1 +-kill %% # Must kill the server. +-outputs "./client.out | remove_uuid" "$PYTHON_EXAMPLES/request-response/server.py.out | remove_uuid" +diff --git a/qpid/cpp/examples/request-response/verify_cpp_python.in b/qpid/cpp/examples/request-response/verify_cpp_python.in +deleted file mode 100644 +index a032293..0000000 +--- a/qpid/cpp/examples/request-response/verify_cpp_python.in ++++ /dev/null +@@ -1,15 +0,0 @@ +-==== client.out | remove_uuid +-Activating response queue listener for: client +-Request: Twas brillig, and the slithy toves +-Request: Did gire and gymble in the wabe. +-Request: All mimsy were the borogroves, +-Request: And the mome raths outgrabe. +-Waiting for all responses to arrive ... +-Response: TWAS BRILLIG, AND THE SLITHY TOVES +-Response: DID GIRE AND GYMBLE IN THE WABE. +-Response: ALL MIMSY WERE THE BOROGROVES, +-Response: AND THE MOME RATHS OUTGRABE. +-Shutting down listener for client +-==== server.py.out | remove_uuid +-Request server running - run your client now. +-(Times out after 100 seconds ...) +diff --git a/qpid/cpp/examples/request-response/verify_python_cpp b/qpid/cpp/examples/request-response/verify_python_cpp +deleted file mode 100644 +index d6f0fa7..0000000 +--- a/qpid/cpp/examples/request-response/verify_python_cpp ++++ /dev/null +@@ -1,5 +0,0 @@ +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-background "Waiting" ./server +-clients $PYTHON_EXAMPLES/request-response/client.py +-kill %% # Must kill the server. +-outputs "$PYTHON_EXAMPLES/request-response/client.py.out | remove_uuid" "server.out | remove_uuid" +diff --git a/qpid/cpp/examples/request-response/verify_python_cpp.in b/qpid/cpp/examples/request-response/verify_python_cpp.in +deleted file mode 100644 +index 1500134..0000000 +--- a/qpid/cpp/examples/request-response/verify_python_cpp.in ++++ /dev/null +@@ -1,18 +0,0 @@ +-==== client.py.out | remove_uuid +-Request: Twas brillig, and the slithy toves +-Request: Did gyre and gimble in the wabe. +-Request: All mimsy were the borogroves, +-Request: And the mome raths outgrabe. +-Messages on queue: reply_to: +-Response: TWAS BRILLIG, AND THE SLITHY TOVES +-Response: DID GYRE AND GIMBLE IN THE WABE. +-Response: ALL MIMSY WERE THE BOROGROVES, +-Response: AND THE MOME RATHS OUTGRABE. +-No more messages! +-==== server.out | remove_uuid +-Activating request queue listener for: request +-Waiting for requests +-Request: Twas brillig, and the slithy toves (reply_to:) +-Request: Did gyre and gimble in the wabe. (reply_to:) +-Request: All mimsy were the borogroves, (reply_to:) +-Request: And the mome raths outgrabe. (reply_to:) +diff --git a/qpid/cpp/examples/verify_all b/qpid/cpp/examples/verify_all +index 9d71c74..cb4c528 100755 +--- a/qpid/cpp/examples/verify_all ++++ b/qpid/cpp/examples/verify_all +@@ -19,8 +19,7 @@ + # under the License. + # + +-# Verify all C++/python example combinations. +-# ++# Verify all examples + + verify=`dirname $0`/verify + topsrcdir=$1 +@@ -28,20 +27,13 @@ topbuilddir=$2 + qpidd=$topbuilddir/src/qpidd + broker_args=$3 + exclude_regexp=$4 +-python=${QPID_PYTHON_DIR:-$topsrcdir/python} + + trap "$qpidd -q" exit + QPID_PORT=`$qpidd -dp0 $broker_args` || { echo "Can't run qpidd" ; exit 1; } +-PYTHON_EXAMPLES=$python/examples +-PYTHONPATH=$python:$PYTHONPATH +-export QPID_PORT PYTHON_EXAMPLES PYTHONPATH ++export QPID_PORT + +-test -d $PYTHON_EXAMPLES || echo "WARNING: No python examples. $PYTHON_EXAMPLES not found." + find="find $topsrcdir/cpp/examples" +-test -d $PYTHON_EXAMPLES && find="$find $PYTHON_EXAMPLES" + find="$find -mindepth 2 -name verify" +-test -d $PYTHON_EXAMPLES && \ +- find="$find -o -name verify_cpp_python -o -name verify_python_cpp" + all_examples=`$find` + + if test -z "$exclude_regexp"; then +diff --git a/qpid/python/examples/README b/qpid/python/examples/README +index bd30b2a..4395160 100644 +--- a/qpid/python/examples/README ++++ b/qpid/python/examples/README +@@ -1,319 +1,42 @@ +-Running the Python Examples +-============================ ++The Python Examples ++=================== + ++README.txt -- This file. + +-Running the Direct Examples +----------------------------- ++api -- Directory containing drain, spout, ++ sever, hello, and hello_xml examples. + +-To run the direct examples, do the following: ++api/drain -- A simple messaging client that prints ++ messages from the source specified on ++ the command line. + +-1. Make sure that a qpidd broker is running: ++api/spout -- A simple messaging client that sends ++ messages to the target specified on the ++ command line. + +- $ ps -eaf | grep qpidd ++api/server -- An example server that process incoming ++ messages and sends replies. + +- If a broker is running, you should see the qpidd process in the output of the above command. ++api/hello -- An example client that sends a message ++ and then receives it. + +-2.Declare a message queue and bind it to an exchange by running declare_queues.py, as follows: ++api/hello_xml -- An example client that sends a message ++ to the xml exchange and then receives ++ it. + +- $ python declare_queues.py + +- This program has no output. After this program has been run, all messages sent to the amq.direct exchange using the routing key routing_key are sent to the queue named message_queue. ++reservations -- Directory containing an example machine ++ reservation system. + +-3.Publish a series of messages to the amq.direct exchange by running direct_producer.py, as follows: ++reservations/common.py -- Utility code used by reserve, ++ machine-agent, and inventory scripts. + +- $ python direct_producer.py ++reservations/reserve -- Messaging client for listing, reserving, ++ and releasing machines. + +-This program has no output; the messages are routed to the message queue, as instructed by the binding. ++reservations/machine-agent -- Messaging server that tracks and reports ++ on the status of its host machine and ++ listens for reservation requests. + +-4. Read the messages from the message queue using direct_consumer.py or listener.py, as follows: +- +- $ python direct_consumer.py +- +- or +- +- $ python listener.py +- +-You should see the following output: +- +-message 0 +-message 1 +-message 2 +-message 3 +-message 4 +-message 5 +-message 6 +-message 7 +-message 8 +-message 9 +-That's all, folks! +- +- +- +-Running the Fanout Examples +----------------------------- +- +-To run the programs for the Fanout example, do the following: +- +-1. Make sure that a qpidd broker is running: +- +- $ ps -eaf | grep qpidd +- +-If a broker is running, you should see the qpidd process in the output of the above command. +- +-2. In separate windows, start two or more fanout consumers or fanout listeners as follows: +- +- $ python fanout_consumer.py +- +- or +- +- $ python listener.py +- +-These programs each create a private queue, bind it to the amq.fanout exchange, and wait for messages to arrive on their queue. +- +-3. In a separate window, publish a series of messages to the amq.fanout exchange by running fanout_producer.py, as follows: +- +- $ python fanout_producer.py +- +-This program has no output; the messages are routed to the message queue, as instructed by the binding. +- +-4. Go to the windows where you are running consumers or listeners. You should see the following output for each listener or consumer: +- +- message 0 +- message 1 +- message 2 +- message 3 +- message 4 +- message 5 +- message 6 +- message 7 +- message 8 +- message 9 +- That's all, folks! +- +- +- +-Running the Publish-Subscribe Examples +---------------------------------------- +- +-To run the programs for the Publish-Subscribe example, do the following: +- +-1. Make sure that a qpidd broker is running: +- +- $ ps -eaf | grep qpidd +- +-If a broker is running, you should see the qpidd process in the output of the above command. +- +-2. In separate windows, start one or more topic subscribers by running topic_subscriber.py, as follows: +- +- $ python topic_subscriber.py +- +-You will see output similar to this: +- +- Queues created - please start the topic producer +- Subscribing local queue 'local_news' to news-53408183-fcee-4b92-950b-90abb297e739' +- Subscribing local queue 'local_weather' to weather-53408183-fcee-4b92-950b-90abb297e739' +- Subscribing local queue 'local_usa' to usa-53408183-fcee-4b92-950b-90abb297e739' +- Subscribing local queue 'local_europe' to europe-53408183-fcee-4b92-950b-90abb297e739' +- Messages on 'news' queue: +- +-Each topic consumer creates a set of private queues, and binds each queue to the amq.topic exchange together with a binding that indicates which messages should be routed to the queue. +- +-3.In another window, start the topic publisher, which publishes messages to the amq.topic exchange, as follows: +- +- $ python topic_publisher.py +- +-This program has no output; the messages are routed to the message queues for each topic_consumer as specified by the bindings the consumer created. +- +-4. Go back to the window for each topic consumer. You should see output like this: +- +- Messages on 'news' queue: +- usa.news 0 +- usa.news 1 +- usa.news 2 +- usa.news 3 +- usa.news 4 +- europe.news 0 +- europe.news 1 +- europe.news 2 +- europe.news 3 +- europe.news 4 +- That's all, folks! +- Messages on 'weather' queue: +- usa.weather 0 +- usa.weather 1 +- usa.weather 2 +- usa.weather 3 +- usa.weather 4 +- europe.weather 0 +- europe.weather 1 +- europe.weather 2 +- europe.weather 3 +- europe.weather 4 +- That's all, folks! +- Messages on 'usa' queue: +- usa.news 0 +- usa.news 1 +- usa.news 2 +- usa.news 3 +- usa.news 4 +- usa.weather 0 +- usa.weather 1 +- usa.weather 2 +- usa.weather 3 +- usa.weather 4 +- That's all, folks! +- Messages on 'europe' queue: +- europe.news 0 +- europe.news 1 +- europe.news 2 +- europe.news 3 +- europe.news 4 +- europe.weather 0 +- europe.weather 1 +- europe.weather 2 +- europe.weather 3 +- europe.weather 4 +- That's all, folks! +- +- +-Running the Request/Response Examples +--------------------------------------- +- +-To run the programs for the Request/Response example, do the following: +- +-1. Make sure that a qpidd broker is running: +- +- $ ps -eaf | grep qpidd +- +-If a broker is running, you should see the qpidd process in the output of the above command. +- +-2. Run the server. +- +- $ python server.py +- +-You should see the following output: +- +- Request server running - run your client now. +- (Times out after 100 seconds ...) +- +-3. In a separate window, start a client: +- +- $ python client.py +- +-You should see the following output: +- +- Request: Twas brillig, and the slithy toves +- Request: Did gyre and gimble in the wabe. +- Request: All mimsy were the borogroves, +- Request: And the mome raths outgrabe. +- Messages on queue: reply_to:db0f862e-6b36-4e0f-a4b2-ad049eb435ce +- Response: TWAS BRILLIG, AND THE SLITHY TOVES +- Response: DID GYRE AND GIMBLE IN THE WABE. +- Response: ALL MIMSY WERE THE BOROGROVES, +- Response: AND THE MOME RATHS OUTGRABE. +- No more messages! +- +- +-Running the XML-based Routing Examples +---------------------------------------- +- +-To run the programs for the XML-based Routing example, do the following: +- +-1. Make sure that a qpidd broker is running: +- +- $ ps -eaf | grep qpidd +- +-If a broker is running, you should see the qpidd process in the output of the above command. +- +-2. Declare an XML exchange and a message queue, then bind the queue to the exchange by running declare_queues.py, as follows: +- +- $ python declare_queues.py +- +-This program has no output. After this program has been run, all messages sent to the xml exchange using the routing key weather are sent to the queue named message_queue if they satisfy the conditions specified in the following XQuery, which is used in the binding: +- +- let $w := ./weather +- return $w/station = 'Raleigh-Durham International Airport (KRDU)' +- and $w/temperature_f > 50 +- and $w/temperature_f - $w/dewpoint > 5 +- and $w/wind_speed_mph > 7 +- and $w/wind_speed_mph < 20 +- +-3. Publish a series of messages to the xml exchange by running xml_producer.py, as follows: +- +- $ python xml_producer.py +- +-The messages are routed to the message queue, as prescribed by the binding. Each message represents a weather report, such as this one: +- +- +- Raleigh-Durham International Airport (KRDU) +- 16 +- 70 +- 35 +- +- +-4. Read the messages from the message queue using direct_consumer.py or listener.py, as follows: +- +- $ python xml_consumer.py +- +- or +- +- $ python listener.py +- +-You should see the following output: +- +-Raleigh-Durham International Airport (KRDU) +-1670 +-35 +- +- +-Running the Headers Examples +------------------------------ +- +-To run the headers examples, do the following: +- +-1. Make sure that a qpidd broker is running: +- +- $ ps -eaf | grep qpidd +- +- If a broker is running, you should see the qpidd process in the output of the above command. +- +-2.Declare a message queues and bind them to an exchange by running declare_queues.py, as follows: +- +- $ python declare_queues.py +- +- This program has no output. After this program has been run, all messages sent to the amq.match exchange with an application-header of {'class': 'first'} will be routed to the queue named "first" and messages with an application-header of {'class': 'second'} will be routed to the queue named "second". +- +-3.Publish a series of messages to the amq.match exchange by running headers_producer.py, as follows: +- +- $ python headers_producer.py +- +-This program has no output; the messages are routed to the message queues, as instructed by the bindings. +- +-4. Read the messages from the message queues using headers_consumer.py as follows: +- +- $ python headers_consumer.py +- +-You should see the following output: +- +-message(first) 0 +-message(first) 1 +-message(first) 2 +-message(first) 3 +-message(first) 4 +-message(first) 5 +-message(first) 6 +-message(first) 7 +-message(first) 8 +-message(first) 9 +-That's all, folks! +-message(second) 0 +-message(second) 1 +-message(second) 2 +-message(second) 3 +-message(second) 4 +-message(second) 5 +-message(second) 6 +-message(second) 7 +-message(second) 8 +-message(second) 9 +-That's all, folks! ++reservations/inventory -- Messaging server that tracks the last ++ known status of machines. +diff --git a/qpid/python/examples/datatypes/client.py b/qpid/python/examples/datatypes/client.py +deleted file mode 100755 +index 088e529..0000000 +--- a/qpid/python/examples/datatypes/client.py ++++ /dev/null +@@ -1,122 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- client.py +- +- Client for testing use of Unicode and datatypes. +- +- Both client and server will be written in C++ and Python. +- Tests can run clients and servers written in different +- languages, and they can be run on 32-bit and 64-bit architectures. +- +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-import testdata +- +-#----- Initialization -------------------------------------- +- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +- +-#----- Main Body -- ---------------------------------------- +- +-# Create a response queue for the server to send responses to. Use the +-# same string as the name of the queue and the name of the routing +-# key. +- +-reply_to = "reply_to:" + session.name +-session.queue_declare(queue=reply_to, exclusive=True) +-session.exchange_bind(exchange="amq.direct", queue=reply_to, binding_key=reply_to) +- +-# Create a local queue and subscribe it to the response queue +- +-local_queue_name = "local_queue" +-queue = session.incoming(local_queue_name) +- +-# Call message_subscribe() to tell the broker to deliver messages from +-# the server's reply_to queue to our local client queue. The server +-# will start delivering messages as soon as message credit is +-# available. +- +-session.message_subscribe(queue=reply_to, destination=local_queue_name) +-queue.start() +- +-# Set up the properties. Perhaps a few application headers? +- +-delivery_properties = session.delivery_properties(routing_key="request") +- +-message_properties = session.message_properties() +- +-message_properties.content_encoding="text/plain; charset='utf-8'" +- +-testdata.set_application_headers(message_properties) +-message_properties.reply_to = session.reply_to("amq.direct", reply_to) +- +-# deliver the message - remember to encode the Unicode string! +-request = Message(message_properties, delivery_properties, testdata.String_Greek.encode("utf8")) +-session.message_transfer(destination="amq.direct", message=request) +- +-# Now see what messages the server sent to our reply_to queue +- +-try: +- response = queue.get(timeout=10) +- content = response.body +- session.message_accept(RangedSet(response.id)) +- testdata.check_message(response) +- print "Response: " + content +-except Empty: +- print "No more messages!" +- exit(1) +-except: +- print "Unexpected exception!" +- exit(1) +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/datatypes/server.py b/qpid/python/examples/datatypes/server.py +deleted file mode 100755 +index 18e6fa4..0000000 +--- a/qpid/python/examples/datatypes/server.py ++++ /dev/null +@@ -1,124 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- server.py +- +- Server for testing use of Unicode and datatypes. +- +- Both client and server will be written in C++ and Python. +- Tests can run clients and servers written in different +- languages, and they can be run on 32-bit and 64-bit architectures. +-""" +- +-import testdata +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Functions ------------------------------------------- +-def respond(session, request): +- +- # The routing key for the response is the request's reply-to +- # property. The body for the response is the request's body, +- # converted to upper case. +- +- testdata.check_message(request) +- +- message_properties = request.get("message_properties") +- reply_to = message_properties.reply_to +- +- testdata.set_application_headers(message_properties) +- +- if reply_to == None: +- raise Exception("This message is missing the 'reply_to' property, which is required") +- +- delivery_properties = session.delivery_properties(routing_key=reply_to["routing_key"]) +- response = Message(delivery_properties, message_properties, testdata.String_Greek.encode("utf8")) +- print "Sending response ..." +- session.message_transfer(destination=reply_to["exchange"], message=response) +- +-#----- Initialization -------------------------------------- +- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Main Body -- ---------------------------------------- +- +-# Create a request queue and subscribe to it +- +-session.queue_declare(queue="request", exclusive=True) +-session.exchange_bind(exchange="amq.direct", queue="request", binding_key="request") +- +-local_queue_name = "local_queue" +- +-session.message_subscribe(queue="request", destination=local_queue_name) +- +-queue = session.incoming(local_queue_name) +-queue.start() +- +-# Remind the user to start the client program +- +-print "Request server running - run your client now." +-print "(Times out after 100 seconds ...)" +-sys.stdout.flush() +- +-# Respond to each request +- +-# If we get a message, send it back to the user (as indicated in the +-# ReplyTo property) +- +-while True: +- try: +- request = queue.get(timeout=100) +- session.message_accept(RangedSet(request.id)) +- +- respond(session, request) +- except Empty: +- print "No more messages!" +- break; +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/datatypes/testdata.py b/qpid/python/examples/datatypes/testdata.py +deleted file mode 100644 +index 251872f..0000000 +--- a/qpid/python/examples/datatypes/testdata.py ++++ /dev/null +@@ -1,201 +0,0 @@ +-# +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-# +- +-# -*- encoding: utf-8 -*- +- +-from qpid.datatypes import uuid4, timestamp +- +-#----- Some variables to test boundary conditions on various data types +- +-void = None +-boolean_true = True +-boolean_false = False +-Uint8_0 = 0 +-Uint8_max = 255 +-Uint16_0 = 0 +-Uint16_max = 65535 +-Uint32_0 = 0 +-Uint32_max = 4294967295 +-Uint64_0 = 0 +-Uint64_max = 18446744073709551615 +-Int8_min = -128 +-Int8_0 = 0 +-Int8_max = 127 +-Int16_min = -32768 +-Int16_0 = 0 +-Int16_max = 32767 +-Int32_min = -2147483648 +-Int32_0 = 0 +-Int32_max = 2147483647 +-Int64_min = -9223372036854775808 +-Int64_0 = 0 +-Int64_max = 9223372036854775807 +- +-Float_pi = 3.14159265 +-Float_neg = -1E4 +-Float_big = 1267.43233E12 +-Float_small = 12.78e-12 +-Float_neg0 = -0 +-Float_pos0 = 0 +-Float_INF = float('inf') +-Float_Negative_INF = float('-inf') +- +-Double_pi = 3.1415926535897932384626433832795 +-Double_neg = -1E4 +-Double_big = 1267.43233E12 +-Double_small = 12.78e-2 +-Double_neg0 = -0 +-Double_pos0 = 0 +-Double_INF = float('inf') +-Double_Negative_INF = float('-inf') +- +-char_1byte = u'0024' # $ +-char_2byte = u'00A2' # ¢ +-char_3byte = u'20AC' # € +-char_4byte = u'10ABCD' +- +-timestamp = timestamp() +- +-UUID = uuid4() +- +-String_Greek = u"ἐξίσταντο δὲ πάντες καὶ διηπόρουν, ἄλλος πρὸς ἄλλον λέγοντες, Τί θέλει τοῦτο εἶναι;" +- +-String_Empty = "" +- +-#----- A few functions ---------------------------------------------------------- +- +-def near_enough(float1, float2, delta): +- return abs(float1-float2) < delta +- +-def set_application_headers(message_properties): +- +- message_properties.application_headers = {} +- message_properties.application_headers["void"] = None +- message_properties.application_headers["boolean_true"] = boolean_true +- message_properties.application_headers["boolean_false"] = boolean_false +- message_properties.application_headers["Uint8_0"] = Uint8_0 +- message_properties.application_headers["Uint8_max"] = Uint8_max +- message_properties.application_headers["Uint16_0"] = Uint16_0 +- message_properties.application_headers["Uint16_max"] = Uint16_max +- message_properties.application_headers["Uint32_0"] = Uint32_0 +- message_properties.application_headers["Uint32_max"] = Uint32_max +- message_properties.application_headers["Uint64_0"] = Uint64_0 +-# message_properties.application_headers["Uint64_max"] = Uint64_max +- message_properties.application_headers["Int8_min"] = Int8_min +- message_properties.application_headers["Int8_0"] = Int8_0 +- message_properties.application_headers["Int8_max"] = Int8_max +- message_properties.application_headers["Int16_min"] = Int16_min +- message_properties.application_headers["Int16_0"] = Int16_0 +- message_properties.application_headers["Int16_max"] = Int16_max +- message_properties.application_headers["Int32_min"] = Int32_min +- message_properties.application_headers["Int32_0"] = Int32_0 +- message_properties.application_headers["Int32_max"] = Int32_max +- message_properties.application_headers["Int64_min"] = Int64_min +- message_properties.application_headers["Int64_0"] = Int64_0 +- message_properties.application_headers["Int64_max"] = Int64_max +- +- message_properties.application_headers["Float_pi"] = Float_pi +- message_properties.application_headers["Float_neg"] = Float_neg +- message_properties.application_headers["Float_big"] = Float_big +- message_properties.application_headers["Float_small"] = Float_small +- message_properties.application_headers["Float_neg0"] = Float_neg0 +- message_properties.application_headers["Float_pos0"] = Float_pos0 +- message_properties.application_headers["Float_INF"] = Float_INF +- message_properties.application_headers["Float_Negative_INF"] = Float_Negative_INF +- +- message_properties.application_headers["Double_pi"] = Double_pi +- message_properties.application_headers["Double_neg"] = Double_neg +- message_properties.application_headers["Double_big"] = Double_big +- message_properties.application_headers["Double_small"] = Double_small +- message_properties.application_headers["Double_neg0"] = Double_neg0 +- message_properties.application_headers["Double_pos0"] = Double_pos0 +- message_properties.application_headers["Double_INF"] = Double_INF +- message_properties.application_headers["Double_Negative_INF"] = Double_Negative_INF +- +- message_properties.application_headers["char_1byte"] = char_1byte +- message_properties.application_headers["char_2byte"] = char_2byte +- message_properties.application_headers["char_3byte"] = char_3byte +- message_properties.application_headers["char_4byte"] = char_4byte +- +- message_properties.application_headers["timestamp"] = timestamp +- message_properties.application_headers["UUID"] = uuid4() +- message_properties.application_headers["String_Greek"] = String_Greek +- message_properties.application_headers["String_Empty"] = String_Empty +- +-def check_message(message): +- +-# message_properties = message.message_properties() +- message_properties = message.get("message_properties") +- assert message_properties.application_headers["void"] == None +- assert message_properties.application_headers["boolean_true"] == boolean_true +- assert message_properties.application_headers["boolean_false"] == boolean_false +- assert message_properties.application_headers["Uint8_0"] == Uint8_0 +- assert message_properties.application_headers["Uint8_max"] == Uint8_max +- assert message_properties.application_headers["Uint16_0"] == Uint16_0 +- assert message_properties.application_headers["Uint16_max"] == Uint16_max +- assert message_properties.application_headers["Uint32_0"] == Uint32_0 +- assert message_properties.application_headers["Uint32_max"] == Uint32_max +- assert message_properties.application_headers["Uint64_0"] == Uint64_0 +-# assert message_properties.application_headers["Uint64_max"] == Uint64_max +- assert message_properties.application_headers["Int8_min"] == Int8_min +- assert message_properties.application_headers["Int8_0"] == Int8_0 +- assert message_properties.application_headers["Int8_max"] == Int8_max +- assert message_properties.application_headers["Int16_min"] == Int16_min +- assert message_properties.application_headers["Int16_0"] == Int16_0 +- assert message_properties.application_headers["Int16_max"] == Int16_max +- assert message_properties.application_headers["Int32_min"] == Int32_min +- assert message_properties.application_headers["Int32_0"] == Int32_0 +- assert message_properties.application_headers["Int32_max"] == Int32_max +- assert message_properties.application_headers["Int64_min"] == Int64_min +- assert message_properties.application_headers["Int64_0"] == Int64_0 +- assert message_properties.application_headers["Int64_max"] == Int64_max +- +-# Change floating point comparisons to allow inexactness +- +- assert near_enough(message_properties.application_headers["Float_pi"], Float_pi, 0.00001) +- assert near_enough(message_properties.application_headers["Float_neg"], Float_neg, 0.00001) +- assert near_enough(message_properties.application_headers["Float_big"], Float_big, Float_big/1000000) +- assert near_enough(message_properties.application_headers["Float_small"], Float_small, 0.00001) +- assert message_properties.application_headers["Float_neg0"] == Float_neg0 +- assert message_properties.application_headers["Float_pos0"] == Float_pos0 +- assert message_properties.application_headers["Float_INF"] == Float_INF +- assert message_properties.application_headers["Float_Negative_INF"] == Float_Negative_INF +- +- assert near_enough(message_properties.application_headers["Double_pi"], Double_pi, 0.00001) +- assert near_enough(message_properties.application_headers["Double_neg"], Double_neg, 0.00001) +- assert near_enough(message_properties.application_headers["Double_big"], Double_big, Double_big/1000000) +- assert near_enough(message_properties.application_headers["Double_small"], Double_small, 0.00001) +- assert message_properties.application_headers["Double_neg0"] == Double_neg0 +- assert message_properties.application_headers["Double_pos0"] == Double_pos0 +- assert message_properties.application_headers["Double_INF"] == Double_INF +- assert message_properties.application_headers["Double_Negative_INF"] == Double_Negative_INF +- +- assert message_properties.application_headers["char_1byte"] == char_1byte +- assert message_properties.application_headers["char_2byte"] == char_2byte +- assert message_properties.application_headers["char_3byte"] == char_3byte +- assert message_properties.application_headers["char_4byte"] == char_4byte +- +-# assert message_properties.application_headers["timestamp"] == timestamp +-# assert message_properties.application_headers["UUID"] == UUID +- assert message_properties.application_headers["String_Greek"] == String_Greek +- assert message_properties.application_headers["String_Empty"] == String_Empty +- +- +diff --git a/qpid/python/examples/direct/declare_queues.py b/qpid/python/examples/direct/declare_queues.py +deleted file mode 100755 +index 13818ee..0000000 +--- a/qpid/python/examples/direct/declare_queues.py ++++ /dev/null +@@ -1,76 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- declare_queues.py +- +- Creates and binds a queue on an AMQP direct exchange. +- +- All messages using the routing key "routing_key" are +- sent to the queue named "message_queue". +-""" +- +-# Common includes +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Initialization ----------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Create a queue ------------------------------------- +- +-# queue_declare() creates an AMQP queue, which is held +-# on the broker. Published messages are sent to the AMQP queue, +-# from which messages are delivered to consumers. +-# +-# exchange_bind() determines which messages are routed to a queue. +-# Route all messages with the binding key "routing_key" to +-# the AMQP queue named "message_queue". +- +-session.queue_declare(queue="message_queue") +-session.exchange_bind(exchange="amq.direct", queue="message_queue", binding_key="routing_key") +- +-#----- Cleanup --------------------------------------------- +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/direct/direct_consumer.py b/qpid/python/examples/direct/direct_consumer.py +deleted file mode 100755 +index b07e53c..0000000 +--- a/qpid/python/examples/direct/direct_consumer.py ++++ /dev/null +@@ -1,94 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- direct_consumer.py +- +- This AMQP client reads messages from a message +- queue named "message_queue". +-""" +- +-import qpid +-import sys +-import os +-from random import randint +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +- +-#----- Initialization -------------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Read from queue -------------------------------------------- +- +-# Now let's create a local client queue and tell it to read +-# incoming messages. +- +-# The consumer tag identifies the client-side queue. +- +-local_queue_name = "local_queue" +-queue = session.incoming(local_queue_name) +- +-# Call message_subscribe() to tell the broker to deliver messages +-# from the AMQP queue to this local client queue. The broker will +-# start delivering messages as soon as credit is allocated using +-# queue.start(). +- +-session.message_subscribe(queue="message_queue", destination=local_queue_name) +-queue.start() +- +-# Initialize 'final' and 'content', variables used to identify the last message. +- +-final = "That's all, folks!" # In a message body, signals the last message +-content = "" # Content of the last message read +- +-message = None +-while content != final: +- message = queue.get(timeout=10) +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +-# +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/direct/direct_producer.py b/qpid/python/examples/direct/direct_producer.py +deleted file mode 100755 +index fcbb467..0000000 +--- a/qpid/python/examples/direct/direct_producer.py ++++ /dev/null +@@ -1,73 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- direct_producer.py +- +- Publishes messages to an AMQP direct exchange, using +- the routing key "routing_key" +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message +-from qpid.datatypes import uuid4 +-from qpid.queue import Empty +- +- +-#----- Initialization ----------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Publish some messages ------------------------------ +- +-# Create some messages and put them on the broker. +-props = session.delivery_properties(routing_key="routing_key") +- +-for i in range(10): +- session.message_transfer(destination="amq.direct", message=Message(props,"message " + str(i))) +- +-session.message_transfer(destination="amq.direct", message=Message(props,"That's all, folks!")) +- +-#----- Cleanup -------------------------------------------- +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/direct/listener.py b/qpid/python/examples/direct/listener.py +deleted file mode 100755 +index 9d06bd3..0000000 +--- a/qpid/python/examples/direct/listener.py ++++ /dev/null +@@ -1,109 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- listener.py +- +- This AMQP client reads messages from a message +- queue named "message_queue". It is implemented +- as a message listener. +-""" +- +-# Common includes +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-# Includes specific to this example +- +-from time import sleep +- +- +-#----- Message Receive Handler ----------------------------- +-class Receiver: +- def __init__ (self): +- self.finalReceived = False +- +- def isFinal (self): +- return self.finalReceived +- +- def Handler (self, message): +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- if content == "That's all, folks!": +- self.finalReceived = True +- +-#----- Initialization -------------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Read from queue -------------------------------------------- +- +-# Now let's create a local client queue and tell it to read +-# incoming messages. +- +-# The local_queue_name identifies the client-side queue. +- +-local_queue_name = "local_queue" +-queue = session.incoming(local_queue_name) +- +-# Call message_subscribe() to tell the broker to deliver messages +-# from the AMQP queue to this local client queue. The broker will +-# start delivering messages as soon as message_subscribe() is called. +- +-session.message_subscribe(queue="message_queue", destination=local_queue_name) +-queue.start() +- +-receiver = Receiver() +-queue.listen (receiver.Handler) +- +-while not receiver.isFinal() : +- sleep (1) +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +-# +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/direct/verify b/qpid/python/examples/direct/verify +deleted file mode 100644 +index 92f87bf..0000000 +--- a/qpid/python/examples/direct/verify ++++ /dev/null +@@ -1,22 +0,0 @@ +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +- +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-clients ./declare_queues.py ./direct_producer.py ./direct_consumer.py +-outputs ./declare_queues.py.out ./direct_producer.py.out ./direct_consumer.py.out +diff --git a/qpid/python/examples/direct/verify.in b/qpid/python/examples/direct/verify.in +deleted file mode 100644 +index 5e69161..0000000 +--- a/qpid/python/examples/direct/verify.in ++++ /dev/null +@@ -1,14 +0,0 @@ +-==== declare_queues.py.out +-==== direct_producer.py.out +-==== direct_consumer.py.out +-message 0 +-message 1 +-message 2 +-message 3 +-message 4 +-message 5 +-message 6 +-message 7 +-message 8 +-message 9 +-That's all, folks! +diff --git a/qpid/python/examples/fanout/fanout_consumer.py b/qpid/python/examples/fanout/fanout_consumer.py +deleted file mode 100755 +index 0452baa..0000000 +--- a/qpid/python/examples/fanout/fanout_consumer.py ++++ /dev/null +@@ -1,99 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- fanout_consumer.py +- +- This AMQP client reads messages from a message +- queue named "message_queue". +-""" +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Initialization -------------------------------------- +- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +- +-#----- Main Body ------------------------------------------- +- +-# Create a server-side queue and route messages to it. +-# The server-side queue must have a unique name. Use the +-# session id for that. +-server_queue_name = session.name +-session.queue_declare(queue=server_queue_name) +-session.exchange_bind(queue=server_queue_name, exchange="amq.fanout") +- +-# Create a local queue to receive messages from the server-side +-# queue. +-local_queue_name = "local_queue" +-local_queue = session.incoming(local_queue_name) +- +-# Call message_subscribe() to tell the server to deliver messages +-# from the AMQP queue to this local client queue. +- +-session.message_subscribe(queue=server_queue_name, destination=local_queue_name) +-local_queue.start() +- +-print "Subscribed to queue " + server_queue_name +-sys.stdout.flush() +- +-# Initialize 'final' and 'content', variables used to identify the last message. +-final = "That's all, folks!" # In a message body, signals the last message +-content = "" # Content of the last message read +- +-# Read the messages - acknowledge each one +-message = None +-while content != final: +- message = local_queue.get(timeout=10) +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +-# +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/fanout/fanout_producer.py b/qpid/python/examples/fanout/fanout_producer.py +deleted file mode 100755 +index c4df252..0000000 +--- a/qpid/python/examples/fanout/fanout_producer.py ++++ /dev/null +@@ -1,72 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- fanout_producer.py +- +- Publishes messages to an AMQP direct exchange, using +- the routing key "routing_key" +-""" +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, uuid4 +-from qpid.queue import Empty +- +-#----- Initialization ----------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +- +-#----- Publish some messages ------------------------------ +- +-# Create some messages and put them on the broker. +- +-delivery_properties = session.delivery_properties(routing_key="routing_key") +- +-for i in range(10): +- session.message_transfer(destination="amq.fanout", message=Message(delivery_properties,"message " + str(i))) +- +-session.message_transfer(destination="amq.fanout", message=Message(delivery_properties, "That's all, folks!")) +- +-#----- Cleanup -------------------------------------------- +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/fanout/listener.py b/qpid/python/examples/fanout/listener.py +deleted file mode 100755 +index 29db402..0000000 +--- a/qpid/python/examples/fanout/listener.py ++++ /dev/null +@@ -1,117 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- listener.py +- +- This AMQP client reads messages from a message +- queue named "message_queue". +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-# +- +-from time import sleep +- +-#----- Message Receive Handler ----------------------------- +-class Receiver: +- def __init__ (self): +- self.finalReceived = False +- +- def isFinal (self): +- return self.finalReceived +- +- def Handler (self, message): +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- if content == "That's all, folks!": +- self.finalReceived = True +- +- +-#----- Initialization -------------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Read from queue -------------------------------------------- +- +-# Create a server-side queue and route messages to it. +-# The server-side queue must have a unique name. Use the +-# session id for that. +- +-server_queue_name = session.name +-session.queue_declare(queue=server_queue_name) +-session.exchange_bind(queue=server_queue_name, exchange="amq.fanout") +- +-# Create a local queue to receive messages from the server-side +-# queue. +-local_queue_name = "local_queue" +-local_queue = session.incoming(local_queue_name) +- +- +-# The local queue name identifies the client-side queue. +- +-local_queue_name = "local_queue" +-local_queue = session.incoming(local_queue_name) +- +-# Call message_subscribe() to tell the broker to deliver messages +-# from the AMQP queue to this local client queue. The broker will +-# start delivering messages as soon as local_queue.start() is called. +- +-session.message_subscribe(queue=server_queue_name, destination=local_queue_name) +-local_queue.start() +- +-receiver = Receiver () +-local_queue.listen (receiver.Handler) +- +-while not receiver.isFinal (): +- sleep (1) +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +-# +- +-session.close() +diff --git a/qpid/python/examples/fanout/verify b/qpid/python/examples/fanout/verify +deleted file mode 100644 +index 9e5c364..0000000 +--- a/qpid/python/examples/fanout/verify ++++ /dev/null +@@ -1,24 +0,0 @@ +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +- +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-background "Subscribed" ./fanout_consumer.py +-background "Subscribed" ./fanout_consumer.py +-clients ./fanout_producer.py +-outputs ./fanout_producer.py.out "./fanout_consumer.py.out | remove_uuid" "./fanout_consumer.pyX.out | remove_uuid" +diff --git a/qpid/python/examples/fanout/verify.in b/qpid/python/examples/fanout/verify.in +deleted file mode 100644 +index d4b8670..0000000 +--- a/qpid/python/examples/fanout/verify.in ++++ /dev/null +@@ -1,27 +0,0 @@ +-==== fanout_producer.py.out +-==== fanout_consumer.py.out | remove_uuid +-Subscribed to queue +-message 0 +-message 1 +-message 2 +-message 3 +-message 4 +-message 5 +-message 6 +-message 7 +-message 8 +-message 9 +-That's all, folks! +-==== fanout_consumer.pyX.out | remove_uuid +-Subscribed to queue +-message 0 +-message 1 +-message 2 +-message 3 +-message 4 +-message 5 +-message 6 +-message 7 +-message 8 +-message 9 +-That's all, folks! +diff --git a/qpid/python/examples/headers/declare_queues.py b/qpid/python/examples/headers/declare_queues.py +deleted file mode 100755 +index e976f71..0000000 +--- a/qpid/python/examples/headers/declare_queues.py ++++ /dev/null +@@ -1,77 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- declare_queues.py +- +- Creates and binds a queue on an AMQP headers exchange. +- +- All messages with an application header of {'class': 'first'} are sent to queue "first". +- All messages with an application header of {'class': 'second'} are sent to queue "second". +-""" +- +-# Common includes +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Initialization ----------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Create queues ------------------------------------- +- +-# queue_declare() creates an AMQP queue, which is held +-# on the broker. Published messages are sent to the AMQP queue, +-# from which messages are delivered to consumers. +-# +-# exchange_bind() determines which messages are routed to a queue. +- +-session.queue_declare(queue="first") +-session.exchange_bind(exchange="amq.match", queue="first", binding_key="first", arguments={'x-match':'any', 'class':'first'}) +- +-session.queue_declare(queue="second") +-session.exchange_bind(exchange="amq.match", queue="second", binding_key="second", arguments={'x-match':'any', 'class':'second'}) +- +-#----- Cleanup --------------------------------------------- +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/headers/headers_consumer.py b/qpid/python/examples/headers/headers_consumer.py +deleted file mode 100755 +index 8f5ce3c..0000000 +--- a/qpid/python/examples/headers/headers_consumer.py ++++ /dev/null +@@ -1,107 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- headers_consumer.py +- +- This AMQP client reads messages from two message +- queues named "first" and "second". +-""" +- +-import qpid +-import sys +-import os +-from random import randint +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +- +-#----- Initialization -------------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Read from queue -------------------------------------------- +- +-# Now let's create two local client queues and tell them to read +-# incoming messages. +- +-# The consumer tag identifies the client-side queue. +- +-local_queue_name_first = "local_queue_first" +-local_queue_name_second = "local_queue_second" +- +-queue_first = session.incoming(local_queue_name_first) +-queue_second = session.incoming(local_queue_name_second) +- +-# Call message_subscribe() to tell the broker to deliver messages +-# from the AMQP queue to these local client queues. The broker will +-# start delivering messages as soon as credit is allocated using +-# queue.start(). +- +-session.message_subscribe(queue="first", destination=local_queue_name_first) +-session.message_subscribe(queue="second", destination=local_queue_name_second) +- +-queue_first.start() +-queue_second.start() +- +-# Initialize 'final' and 'content', variables used to identify the last message. +- +-final = "That's all, folks!" # In a message body, signals the last message +-content = "" # Content of the last message read +- +-message = None +-while content != final: +- message = queue_first.get(timeout=10) +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- +-content = "" +-while content != final: +- message = queue_second.get(timeout=10) +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +-# +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/headers/headers_producer.py b/qpid/python/examples/headers/headers_producer.py +deleted file mode 100755 +index 43130d5..0000000 +--- a/qpid/python/examples/headers/headers_producer.py ++++ /dev/null +@@ -1,79 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- headers_producer.py +- +- Publishes messages to an AMQP headers exchange, using +- various application header values. +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message +-from qpid.datatypes import uuid4 +-from qpid.queue import Empty +- +- +-#----- Initialization ----------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Publish some messages ------------------------------ +- +-# Create some messages and put them on the broker. +-props_first = session.message_properties(application_headers={'class':'first'}) +-props_second = session.message_properties(application_headers={'class':'second'}) +-props_third = session.message_properties(application_headers={'class':'third'}) +- +-for i in range(10): +- session.message_transfer(destination="amq.match", message=Message(props_first,"message(first) " + str(i))) +- session.message_transfer(destination="amq.match", message=Message(props_second,"message(second) " + str(i))) +- session.message_transfer(destination="amq.match", message=Message(props_third,"message(third) " + str(i))) +- +-session.message_transfer(destination="amq.match", message=Message(props_first,"That's all, folks!")) +-session.message_transfer(destination="amq.match", message=Message(props_second,"That's all, folks!")) +-session.message_transfer(destination="amq.match", message=Message(props_third,"That's all, folks!")) +- +-#----- Cleanup -------------------------------------------- +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/headers/verify b/qpid/python/examples/headers/verify +deleted file mode 100644 +index 5fe96c5..0000000 +--- a/qpid/python/examples/headers/verify ++++ /dev/null +@@ -1,22 +0,0 @@ +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +- +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-clients ./declare_queues.py ./headers_producer.py ./headers_consumer.py +-outputs ./declare_queues.py.out ./headers_producer.py.out ./headers_consumer.py.out +diff --git a/qpid/python/examples/headers/verify.in b/qpid/python/examples/headers/verify.in +deleted file mode 100644 +index 90ffd0a..0000000 +--- a/qpid/python/examples/headers/verify.in ++++ /dev/null +@@ -1,25 +0,0 @@ +-==== declare_queues.py.out +-==== headers_producer.py.out +-==== headers_consumer.py.out +-message(first) 0 +-message(first) 1 +-message(first) 2 +-message(first) 3 +-message(first) 4 +-message(first) 5 +-message(first) 6 +-message(first) 7 +-message(first) 8 +-message(first) 9 +-That's all, folks! +-message(second) 0 +-message(second) 1 +-message(second) 2 +-message(second) 3 +-message(second) 4 +-message(second) 5 +-message(second) 6 +-message(second) 7 +-message(second) 8 +-message(second) 9 +-That's all, folks! +diff --git a/qpid/python/examples/pubsub/topic_publisher.py b/qpid/python/examples/pubsub/topic_publisher.py +deleted file mode 100755 +index b50d5fa..0000000 +--- a/qpid/python/examples/pubsub/topic_publisher.py ++++ /dev/null +@@ -1,92 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- topic_publisher.py +- +- This is a simple AMQP publisher application that uses a +- Topic exchange. The publisher specifies the routing key +- and the exchange for each message. +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Functions ---------------------------------------- +- +-def send_msg(routing_key): +- props = session.delivery_properties(routing_key=routing_key) +- for i in range(5): +- session.message_transfer(destination="amq.topic", message=Message(props,routing_key + " " + str(i))) +- +-#----- Initialization ----------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Publish some messages ------------------------------ +- +-# Create some messages and put them on the broker. Use the +-# topic exchange. The routing keys are "usa.news", "usa.weather", +-# "europe.news", and "europe.weather". +- +-# usa.news +-send_msg("usa.news") +- +-# usa.weather +-send_msg("usa.weather") +- +-# europe.news +-send_msg("europe.news") +- +-# europe.weather +-send_msg("europe.weather") +- +-# Signal termination +-props = session.delivery_properties(routing_key="control") +-session.message_transfer(destination="amq.topic", message=Message(props,"That's all, folks!")) +- +- +-#----- Cleanup -------------------------------------------- +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/pubsub/topic_subscriber.py b/qpid/python/examples/pubsub/topic_subscriber.py +deleted file mode 100755 +index 489c7cb..0000000 +--- a/qpid/python/examples/pubsub/topic_subscriber.py ++++ /dev/null +@@ -1,154 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- topic_subscriber.py +- +- This subscriber creates private queues and binds them +- to the topics 'usa.#', 'europe.#', '#.news', and '#.weather'. +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Functions ------------------------------------------- +- +-def dump_queue(queue): +- +- content = "" # Content of the last message read +- final = "That's all, folks!" # In a message body, signals the last message +- message = 0 +- +- while content != final: +- try: +- message = queue.get(timeout=10) +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- except Empty: +- print "No more messages!" +- return +- +- +- +-def subscribe_queue(server_queue_name, local_queue_name): +- +- print "Subscribing local queue '" + local_queue_name + "' to " + server_queue_name + "'" +- +- queue = session.incoming(local_queue_name) +- +- session.message_subscribe(queue=server_queue_name, destination=local_queue_name) +- queue.start() +- +- return queue +- +-#----- Initialization -------------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Main Body -- ---------------------------------------- +- +-# declare queues on the server +- +-news = "news-" + session.name +-weather = "weather-" + session.name +-usa = "usa-" + session.name +-europe = "europe-" + session.name +- +-session.queue_declare(queue=news, exclusive=True) +-session.queue_declare(queue=weather, exclusive=True) +-session.queue_declare(queue=usa, exclusive=True) +-session.queue_declare(queue=europe, exclusive=True) +- +-# Routing keys may be "usa.news", "usa.weather", "europe.news", or "europe.weather". +- +-# The '#' symbol matches one component of a multipart name, e.g. "#.news" matches +-# "europe.news" or "usa.news". +- +-session.exchange_bind(exchange="amq.topic", queue=news, binding_key="#.news") +-session.exchange_bind(exchange="amq.topic", queue=weather, binding_key="#.weather") +-session.exchange_bind(exchange="amq.topic", queue=usa, binding_key="usa.#") +-session.exchange_bind(exchange="amq.topic", queue=europe, binding_key="europe.#") +- +-# Bind each queue to the control queue so we know when to stop +- +-session.exchange_bind(exchange="amq.topic", queue=news, binding_key="control") +-session.exchange_bind(exchange="amq.topic", queue=weather, binding_key="control") +-session.exchange_bind(exchange="amq.topic", queue=usa, binding_key="control") +-session.exchange_bind(exchange="amq.topic", queue=europe, binding_key="control") +- +-# Remind the user to start the topic producer +- +-print "Queues created - please start the topic producer" +-sys.stdout.flush() +- +-# Subscribe local queues to server queues +- +-local_news = "local_news" +-local_weather = "local_weather" +-local_usa = "local_usa" +-local_europe = "local_europe" +- +-local_news_queue = subscribe_queue(news, local_news) +-local_weather_queue = subscribe_queue(weather, local_weather) +-local_usa_queue = subscribe_queue(usa, local_usa) +-local_europe_queue = subscribe_queue(europe, local_europe) +- +-# Call dump_queue to print messages from each queue +- +-print "Messages on 'news' queue:" +-dump_queue(local_news_queue) +- +-print "Messages on 'weather' queue:" +-dump_queue(local_weather_queue) +- +-print "Messages on 'usa' queue:" +-dump_queue(local_usa_queue) +- +-print "Messages on 'europe' queue:" +-dump_queue(local_europe_queue) +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/pubsub/verify b/qpid/python/examples/pubsub/verify +deleted file mode 100644 +index cf1bade..0000000 +--- a/qpid/python/examples/pubsub/verify ++++ /dev/null +@@ -1,23 +0,0 @@ +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +- +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-background "Queues created" ./topic_subscriber.py +-clients ./topic_publisher.py +-outputs ./topic_publisher.py.out "topic_subscriber.py.out | remove_uuid | sort" +diff --git a/qpid/python/examples/pubsub/verify.in b/qpid/python/examples/pubsub/verify.in +deleted file mode 100644 +index ac1506b..0000000 +--- a/qpid/python/examples/pubsub/verify.in ++++ /dev/null +@@ -1,55 +0,0 @@ +-==== topic_publisher.py.out +-==== topic_subscriber.py.out | remove_uuid | sort +-Messages on 'europe' queue: +-Messages on 'news' queue: +-Messages on 'usa' queue: +-Messages on 'weather' queue: +-Queues created - please start the topic producer +-Subscribing local queue 'local_europe' to europe-' +-Subscribing local queue 'local_news' to news-' +-Subscribing local queue 'local_usa' to usa-' +-Subscribing local queue 'local_weather' to weather-' +-That's all, folks! +-That's all, folks! +-That's all, folks! +-That's all, folks! +-europe.news 0 +-europe.news 0 +-europe.news 1 +-europe.news 1 +-europe.news 2 +-europe.news 2 +-europe.news 3 +-europe.news 3 +-europe.news 4 +-europe.news 4 +-europe.weather 0 +-europe.weather 0 +-europe.weather 1 +-europe.weather 1 +-europe.weather 2 +-europe.weather 2 +-europe.weather 3 +-europe.weather 3 +-europe.weather 4 +-europe.weather 4 +-usa.news 0 +-usa.news 0 +-usa.news 1 +-usa.news 1 +-usa.news 2 +-usa.news 2 +-usa.news 3 +-usa.news 3 +-usa.news 4 +-usa.news 4 +-usa.weather 0 +-usa.weather 0 +-usa.weather 1 +-usa.weather 1 +-usa.weather 2 +-usa.weather 2 +-usa.weather 3 +-usa.weather 3 +-usa.weather 4 +-usa.weather 4 +diff --git a/qpid/python/examples/request-response/client.py b/qpid/python/examples/request-response/client.py +deleted file mode 100755 +index b29fcf3..0000000 +--- a/qpid/python/examples/request-response/client.py ++++ /dev/null +@@ -1,131 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- client.py +- +- Client for a client/server example +- +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Functions ------------------------------------------- +- +-def dump_queue(queue_name): +- +- print "Messages on queue: " + queue_name +- +- message = 0 +- +- while True: +- try: +- message = queue.get(timeout=10) +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print "Response: " + content +- except Empty: +- print "No more messages!" +- break +- except: +- print "Unexpected exception!" +- break +- +- +-#----- Initialization -------------------------------------- +- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +- +-#----- Main Body -- ---------------------------------------- +- +-# Create a response queue for the server to send responses to. Use the +-# same string as the name of the queue and the name of the routing +-# key. +- +-reply_to = "reply_to:" + session.name +-session.queue_declare(queue=reply_to, exclusive=True) +-session.exchange_bind(exchange="amq.direct", queue=reply_to, binding_key=reply_to) +- +-# Create a local queue and subscribe it to the response queue +- +-local_queue_name = "local_queue" +-queue = session.incoming(local_queue_name) +- +-# Call message_subscribe() to tell the broker to deliver messages from +-# the server's reply_to queue to our local client queue. The server +-# will start delivering messages as soon as message credit is +-# available. +- +-session.message_subscribe(queue=reply_to, destination=local_queue_name) +-queue.start() +- +-# Send some messages to the server's request queue +- +-lines = ["Twas brillig, and the slithy toves", +- "Did gyre and gimble in the wabe.", +- "All mimsy were the borogroves,", +- "And the mome raths outgrabe."] +- +-# We will use the same reply_to and routing key +-# for each message +- +-message_properties = session.message_properties() +-message_properties.reply_to = session.reply_to("amq.direct", reply_to) +-delivery_properties = session.delivery_properties(routing_key="request") +- +-for line in lines: +- print "Request: " + line +- session.message_transfer(destination="amq.direct", message=Message(message_properties, delivery_properties, line)) +- +-# Now see what messages the server sent to our reply_to queue +- +-dump_queue(reply_to) +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/request-response/server.py b/qpid/python/examples/request-response/server.py +deleted file mode 100755 +index a80c454..0000000 +--- a/qpid/python/examples/request-response/server.py ++++ /dev/null +@@ -1,110 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- server.py +- +- Server for a client/server example +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Functions ------------------------------------------- +-def respond(session, request): +- +- # The routing key for the response is the request's reply-to +- # property. The body for the response is the request's body, +- # converted to upper case. +- +- message_properties = request.get("message_properties") +- reply_to = message_properties.reply_to +- if reply_to == None: +- raise Exception("This message is missing the 'reply_to' property, which is required") +- +- props = session.delivery_properties(routing_key=reply_to["routing_key"]) +- session.message_transfer(destination=reply_to["exchange"], message=Message(props,request.body.upper())) +- +-#----- Initialization -------------------------------------- +- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Main Body -- ---------------------------------------- +- +-# Create a request queue and subscribe to it +- +-session.queue_declare(queue="request", exclusive=True) +-session.exchange_bind(exchange="amq.direct", queue="request", binding_key="request") +- +-local_queue_name = "local_queue" +- +-session.message_subscribe(queue="request", destination=local_queue_name) +- +-queue = session.incoming(local_queue_name) +-queue.start() +- +-# Remind the user to start the client program +- +-print "Request server running - run your client now." +-print "(Times out after 100 seconds ...)" +-sys.stdout.flush() +- +-# Respond to each request +- +-# If we get a message, send it back to the user (as indicated in the +-# ReplyTo property) +- +-while True: +- try: +- request = queue.get(timeout=100) +- respond(session, request) +- session.message_accept(RangedSet(request.id)) +- except Empty: +- print "No more messages!" +- break; +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +- +-session.close(timeout=10) +diff --git a/qpid/python/examples/request-response/verify b/qpid/python/examples/request-response/verify +deleted file mode 100644 +index 3c058fe..0000000 +--- a/qpid/python/examples/request-response/verify ++++ /dev/null +@@ -1,24 +0,0 @@ +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +- +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-background "Request server running" ./server.py +-clients ./client.py +-kill %% # Must kill the server. +-outputs "./client.py.out | remove_uuid" " server.py.out | remove_uuid" +diff --git a/qpid/python/examples/request-response/verify.in b/qpid/python/examples/request-response/verify.in +deleted file mode 100644 +index 4c31128..0000000 +--- a/qpid/python/examples/request-response/verify.in ++++ /dev/null +@@ -1,14 +0,0 @@ +-==== client.py.out | remove_uuid +-Request: Twas brillig, and the slithy toves +-Request: Did gyre and gimble in the wabe. +-Request: All mimsy were the borogroves, +-Request: And the mome raths outgrabe. +-Messages on queue: reply_to: +-Response: TWAS BRILLIG, AND THE SLITHY TOVES +-Response: DID GYRE AND GIMBLE IN THE WABE. +-Response: ALL MIMSY WERE THE BOROGROVES, +-Response: AND THE MOME RATHS OUTGRABE. +-No more messages! +-==== server.py.out | remove_uuid +-Request server running - run your client now. +-(Times out after 100 seconds ...) +diff --git a/qpid/python/examples/xml-exchange/declare_queues.py b/qpid/python/examples/xml-exchange/declare_queues.py +deleted file mode 100755 +index ca40af5..0000000 +--- a/qpid/python/examples/xml-exchange/declare_queues.py ++++ /dev/null +@@ -1,90 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- declare_queues.py +- +- Creates and binds a queue on an AMQP direct exchange. +- +- All messages using the routing key "routing_key" are +- sent to the queue named "message_queue". +-""" +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Initialization ----------------------------------- +- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Create a queue ------------------------------------- +- +-# queue_declare() creates an AMQP queue, which is held +-# on the broker. Published messages are sent to the AMQP queue, +-# from which messages are delivered to consumers. +-# +-# queue_bind() determines which messages are routed to a queue. +-# Route all messages with the routing key "routing_key" to +-# the AMQP queue named "message_queue". +- +-session.exchange_declare(exchange="xml", type="xml") +-session.queue_declare(queue="message_queue") +- +-binding = {} +-binding["xquery"] = """ +- let $w := ./weather +- return $w/station = 'Raleigh-Durham International Airport (KRDU)' +- and $w/temperature_f > 50 +- and $w/temperature_f - $w/dewpoint > 5 +- and $w/wind_speed_mph > 7 +- and $w/wind_speed_mph < 20 """ +- +- +-session.exchange_bind(exchange="xml", queue="message_queue", binding_key="weather", arguments=binding) +- +- +-#----- Cleanup --------------------------------------------- +- +-session.close() +- +- +diff --git a/qpid/python/examples/xml-exchange/listener.py b/qpid/python/examples/xml-exchange/listener.py +deleted file mode 100755 +index a56f5d6..0000000 +--- a/qpid/python/examples/xml-exchange/listener.py ++++ /dev/null +@@ -1,105 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- listener.py +- +- This AMQP client reads messages from a message +- queue named "message_queue". It is implemented +- as a message listener. +-""" +- +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-# +- +-from time import sleep +- +- +-#----- Message Receive Handler ----------------------------- +-class Receiver: +- def __init__ (self): +- self.finalReceived = False +- +- def isFinal (self): +- return self.finalReceived +- +- def Handler (self, message): +- content = message.body +- session.message_accept(RangedSet(message.id)) +- print content +- +-#----- Initialization -------------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Read from queue -------------------------------------------- +- +-# Now let's create a local client queue and tell it to read +-# incoming messages. +- +-# The consumer tag identifies the client-side queue. +- +-local_queue_name = "local_queue" +-local_queue = session.incoming(local_queue_name) +- +-# Call message_subscribe() to tell the broker to deliver messages +-# from the AMQP queue to this local client queue. The broker will +-# start delivering messages as soon as local_queue.start() is called. +- +-session.message_subscribe(queue="message_queue", destination=local_queue_name) +-local_queue.start() +- +-receiver = Receiver () +-local_queue.listen (receiver.Handler) +- +-sleep (10) +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +-# +- +-session.close() +diff --git a/qpid/python/examples/xml-exchange/verify b/qpid/python/examples/xml-exchange/verify +deleted file mode 100644 +index a93a32d..0000000 +--- a/qpid/python/examples/xml-exchange/verify ++++ /dev/null +@@ -1,22 +0,0 @@ +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +- +-# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify +-clients ./declare_queues.py ./xml_producer.py ./xml_consumer.py +-outputs ./declare_queues.py.out ./xml_producer.py.out ./xml_consumer.py.out +diff --git a/qpid/python/examples/xml-exchange/verify.in b/qpid/python/examples/xml-exchange/verify.in +deleted file mode 100644 +index e5b9909..0000000 +--- a/qpid/python/examples/xml-exchange/verify.in ++++ /dev/null +@@ -1,15 +0,0 @@ +-==== declare_queues.py.out +-==== xml_producer.py.out +-Raleigh-Durham International Airport (KRDU)03035 +-New Bern, Craven County Regional Airport (KEWN)24040 +-Boone, Watauga County Hospital Heliport (KTNB)55045 +-Hatteras, Mitchell Field (KHSE)106050 +-Raleigh-Durham International Airport (KRDU)167035 +-New Bern, Craven County Regional Airport (KEWN)228040 +-Boone, Watauga County Hospital Heliport (KTNB)289045 +-Hatteras, Mitchell Field (KHSE)3510050 +-Raleigh-Durham International Airport (KRDU)423035 +-New Bern, Craven County Regional Airport (KEWN)514040 +-==== xml_consumer.py.out +-Raleigh-Durham International Airport (KRDU)167035 +-No more messages! +diff --git a/qpid/python/examples/xml-exchange/xml_consumer.py b/qpid/python/examples/xml-exchange/xml_consumer.py +deleted file mode 100755 +index cd89110..0000000 +--- a/qpid/python/examples/xml-exchange/xml_consumer.py ++++ /dev/null +@@ -1,96 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- direct_consumer.py +- +- This AMQP client reads messages from a message +- queue named "message_queue". +-""" +- +-import qpid +-import sys +-import os +-from random import randint +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +- +-#----- Initialization -------------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +- +-#----- Read from queue -------------------------------------------- +- +-# Now let's create a local client queue and tell it to read +-# incoming messages. +- +-# The consumer tag identifies the client-side queue. +- +-local_queue_name = "local_queue" +-local_queue = session.incoming(local_queue_name) +- +-# Call message_consume() to tell the broker to deliver messages +-# from the AMQP queue to this local client queue. The broker will +-# start delivering messages as soon as local_queue.start() is called. +- +-session.message_subscribe(queue="message_queue", destination=local_queue_name) +-local_queue.start() +- +-# Initialize 'final' and 'content', variables used to identify the last message. +- +-message = None +-while True: +- try: +- message = local_queue.get(timeout=10) +- session.message_accept(RangedSet(message.id)) +- content = message.body +- print content +- except Empty: +- print "No more messages!" +- break +- +- +-#----- Cleanup ------------------------------------------------ +- +-# Clean up before exiting so there are no open threads. +-# +- +-session.close() +diff --git a/qpid/python/examples/xml-exchange/xml_producer.py b/qpid/python/examples/xml-exchange/xml_producer.py +deleted file mode 100755 +index fa97cab..0000000 +--- a/qpid/python/examples/xml-exchange/xml_producer.py ++++ /dev/null +@@ -1,92 +0,0 @@ +-#!/usr/bin/env python +-# +-# Licensed to the Apache Software Foundation (ASF) under one +-# or more contributor license agreements. See the NOTICE file +-# distributed with this work for additional information +-# regarding copyright ownership. The ASF licenses this file +-# to you under the Apache License, Version 2.0 (the +-# "License"); you may not use this file except in compliance +-# with the License. You may obtain a copy of the License at +-# +-# http://www.apache.org/licenses/LICENSE-2.0 +-# +-# Unless required by applicable law or agreed to in writing, +-# software distributed under the License is distributed on an +-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-# KIND, either express or implied. See the License for the +-# specific language governing permissions and limitations +-# under the License. +-# +-""" +- xml_producer.py +- +- Publishes messages to an XML exchange, using +- the routing key "weather" +-""" +- +- +-import qpid +-import sys +-import os +-from qpid.util import connect +-from qpid.connection import Connection +-from qpid.datatypes import Message, RangedSet, uuid4 +-from qpid.queue import Empty +- +-#----- Functions ---------------------------------------- +- +-# Data for weather reports +- +-station = ("Raleigh-Durham International Airport (KRDU)", +- "New Bern, Craven County Regional Airport (KEWN)", +- "Boone, Watauga County Hospital Heliport (KTNB)", +- "Hatteras, Mitchell Field (KHSE)") +-wind_speed_mph = ( 0, 2, 5, 10, 16, 22, 28, 35, 42, 51, 61, 70, 80 ) +-temperature_f = ( 30, 40, 50, 60, 70, 80, 90, 100 ) +-dewpoint = ( 35, 40, 45, 50 ) +- +-def pick_one(list, i): +- return str( list [ i % len(list)] ) +- +-def report(i): +- return "" + "" + pick_one(station,i)+ "" + "" + pick_one(wind_speed_mph,i) + "" + "" + pick_one(temperature_f,i) + "" + "" + pick_one(dewpoint,i) + "" + "" +- +- +-#----- Initialization ----------------------------------- +- +-# Set parameters for login +- +-host="127.0.0.1" +-port=5672 +-user="guest" +-password="guest" +- +-# If an alternate host or port has been specified, use that instead +-# (this is used in our unit tests) +-if len(sys.argv) > 1 : +- host=sys.argv[1] +-if len(sys.argv) > 2 : +- port=int(sys.argv[2]) +- +-# Create a connection. +-socket = connect(host, port) +-connection = Connection (sock=socket, username=user, password=password) +-connection.start() +-session = connection.session(str(uuid4())) +- +-#----- Publish some messages ------------------------------ +- +-# Create some messages and put them on the broker. +- +-props = session.delivery_properties(routing_key="weather") +- +-for i in range(10): +- print report(i) +- session.message_transfer(destination="xml", message=Message(props, report(i))) +- +- +-#----- Cleanup -------------------------------------------- +- +-# Clean up before exiting so there are no open threads. +- +-session.close() +-- +1.5.5.6 + +From dee1c0cebff68b694ed6e80be79b8943ebb40574 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Tue, 13 Jul 2010 17:58:44 +0000 +Subject: [PATCH] BZ-613912 fixed missign import and added test case for reconnect_urls + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@963803 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 1 + + qpid/python/qpid/tests/messaging/endpoints.py | 7 +++++++ + qpid/python/qpid/util.py | 21 ++++++++++++++------- + 3 files changed, 22 insertions(+), 7 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index a3c565f..15eaf1f 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -31,6 +31,7 @@ from qpid.messaging.exceptions import * + from qpid.messaging.message import get_codec, Disposition, Message + from qpid.ops import * + from qpid.selector import Selector ++from qpid.util import URL + from qpid.validator import And, Context, List, Map, Types, Values + from threading import Condition, Thread + +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index 52ca9f3..bc17068 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -39,6 +39,13 @@ class SetupTests(Base): + self.conn.open() + self.ping(self.conn.session()) + ++ def testOpenReconnectURLs(self): ++ options = self.connection_options() ++ options["reconnect_urls"] = [self.broker, self.broker] ++ self.conn = Connection(self.broker, **options) ++ self.conn.open() ++ self.ping(self.conn.session()) ++ + def testConnectError(self): + try: + # Specifying port 0 yields a bad address on Windows; port 4 is unassigned +diff --git a/qpid/python/qpid/util.py b/qpid/python/qpid/util.py +index 3409d77..e62bebd 100644 +--- a/qpid/python/qpid/util.py ++++ b/qpid/python/qpid/util.py +@@ -109,14 +109,21 @@ class URL: + AMQP = "amqp" + + def __init__(self, s): +- match = URL.RE.match(s) +- if match is None: +- raise ValueError(s) +- self.scheme, self.user, self.password, self.host, port = match.groups() +- if port is None: +- self.port = None ++ if isinstance(s, URL): ++ self.scheme = s.scheme ++ self.user = s.user ++ self.password = s.password ++ self.host = s.host ++ self.port = s.port + else: +- self.port = int(port) ++ match = URL.RE.match(s) ++ if match is None: ++ raise ValueError(s) ++ self.scheme, self.user, self.password, self.host, port = match.groups() ++ if port is None: ++ self.port = None ++ else: ++ self.port = int(port) + + def __repr__(self): + return "URL(%r)" % str(self) +-- +1.5.5.6 + +From 69472698c9455b198d70e7b61ae2f1f06a8ff783 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Tue, 13 Jul 2010 19:07:22 +0000 +Subject: [PATCH] BZ-614054 eliminate spurious error logging and reconnect attempts + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@963825 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 2 +- + qpid/python/qpid/messaging/util.py | 6 +++++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 15eaf1f..ff988c2 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -463,7 +463,7 @@ class Driver: + def dispatch(self): + try: + if self._transport is None: +- if self.connection._connected: ++ if self.connection._connected and not self.connection.error: + self.connect() + else: + self.engine.dispatch() +diff --git a/qpid/python/qpid/messaging/util.py b/qpid/python/qpid/messaging/util.py +index 42bc280..44833f7 100644 +--- a/qpid/python/qpid/messaging/util.py ++++ b/qpid/python/qpid/messaging/util.py +@@ -21,6 +21,7 @@ + Add-on utilities for the L{qpid.messaging} API. + """ + ++from qpid.messaging import * + from logging import getLogger + from threading import Thread + +@@ -33,7 +34,10 @@ def auto_fetch_reconnect_urls(conn): + + def main(): + while True: +- msg = rcv.fetch() ++ try: ++ msg = rcv.fetch() ++ except LinkClosed: ++ return + set_reconnect_urls(conn, msg) + ssn.acknowledge(msg, sync=False) + +-- +1.5.5.6 + +From 0463df7545b76b30af86b6fdfefd1232e2014cd8 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 13 Jul 2010 22:24:47 +0000 +Subject: [PATCH] No BZ - fix to test framework: Remove deleted files from Makefile.am, part of removing the old python examples. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@963887 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit dfaf24a663db5e55f14d591e3575af8aa29b5f6c) +--- + qpid/cpp/examples/direct/Makefile.am | 4 ---- + qpid/cpp/examples/fanout/Makefile.am | 4 ---- + qpid/cpp/examples/pub-sub/Makefile.am | 4 ---- + qpid/cpp/examples/request-response/Makefile.am | 4 ---- + 4 files changed, 0 insertions(+), 16 deletions(-) + +diff --git a/qpid/cpp/examples/direct/Makefile.am b/qpid/cpp/examples/direct/Makefile.am +index 4675333..b07db2c 100644 +--- a/qpid/cpp/examples/direct/Makefile.am ++++ b/qpid/cpp/examples/direct/Makefile.am +@@ -42,10 +42,6 @@ EXTRA_DIST= \ + CMakeLists.txt \ + verify \ + verify.in \ +- verify_cpp_python \ +- verify_cpp_python.in \ +- verify_python_cpp \ +- verify_python_cpp.in \ + direct_declare_queues.vcproj \ + direct_direct_producer.vcproj \ + direct_listener.vcproj +diff --git a/qpid/cpp/examples/fanout/Makefile.am b/qpid/cpp/examples/fanout/Makefile.am +index bfa5404..6e2e821 100644 +--- a/qpid/cpp/examples/fanout/Makefile.am ++++ b/qpid/cpp/examples/fanout/Makefile.am +@@ -38,9 +38,5 @@ EXTRA_DIST= \ + CMakeLists.txt \ + verify \ + verify.in \ +- verify_cpp_python \ +- verify_cpp_python.in \ +- verify_python_cpp \ +- verify_python_cpp.in \ + fanout_fanout_producer.vcproj \ + fanout_listener.vcproj +diff --git a/qpid/cpp/examples/pub-sub/Makefile.am b/qpid/cpp/examples/pub-sub/Makefile.am +index 8673174..62658eb 100644 +--- a/qpid/cpp/examples/pub-sub/Makefile.am ++++ b/qpid/cpp/examples/pub-sub/Makefile.am +@@ -39,9 +39,5 @@ EXTRA_DIST= \ + CMakeLists.txt \ + verify \ + verify.in \ +- verify_cpp_python \ +- verify_cpp_python.in \ +- verify_python_cpp \ +- verify_python_cpp.in \ + pub-sub_topic_listener.vcproj \ + pub-sub_topic_publisher.vcproj +diff --git a/qpid/cpp/examples/request-response/Makefile.am b/qpid/cpp/examples/request-response/Makefile.am +index de59f3b..48b3d98 100644 +--- a/qpid/cpp/examples/request-response/Makefile.am ++++ b/qpid/cpp/examples/request-response/Makefile.am +@@ -39,9 +39,5 @@ EXTRA_DIST= \ + CMakeLists.txt \ + verify \ + verify.in \ +- verify_cpp_python \ +- verify_cpp_python.in \ +- verify_python_cpp \ +- verify_python_cpp.in \ + request-response_client.vcproj \ + request-response_server.vcproj +-- +1.5.5.6 + +From 5387d39d66787509b3d687be7247dcf8a2d4b207 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 14 Jul 2010 13:36:03 +0000 +Subject: [PATCH] BZ-614054 fixed parsing of failover URLs; fixed driver to notice when reconnect_urls is dynamically changed + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@964044 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 25 +++++++++++++++++-------- + qpid/python/qpid/messaging/util.py | 9 +++++---- + 2 files changed, 22 insertions(+), 12 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index ff988c2..1e1055a 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -336,9 +336,6 @@ class Driver: + self._selector = Selector.default() + self._attempts = 0 + self._delay = self.connection.reconnect_interval_min +- urls = [URL(u) for u in self.connection.reconnect_urls] +- self._hosts = [(self.connection.host, self.connection.port)] + \ +- [(u.host, u.port) for u in urls] + self._reconnect_log = self.connection.reconnect_log + self._host = 0 + self._retrying = False +@@ -348,6 +345,21 @@ class Driver: + + self.engine = None + ++ def _next_host(self): ++ urls = [URL(u) for u in self.connection.reconnect_urls] ++ hosts = [(self.connection.host, self.connection.port)] + \ ++ [(u.host, u.port) for u in urls] ++ if self._host >= len(hosts): ++ self._host = 0 ++ result = hosts[self._host] ++ if self._host == 0: ++ self._attempts += 1 ++ self._host = self._host + 1 ++ return result ++ ++ def _num_hosts(self): ++ return len(self.connection.reconnect_urls) + 1 ++ + @synchronized + def wakeup(self): + self.dispatch() +@@ -409,7 +421,7 @@ class Driver: + (self.connection.reconnect_limit is None or + self.connection.reconnect_limit <= 0 or + self._attempts <= self.connection.reconnect_limit)): +- if self._host > 0: ++ if self._host < self._num_hosts(): + delay = 0 + else: + delay = self._delay +@@ -475,9 +487,7 @@ class Driver: + def connect(self): + try: + # XXX: should make this non blocking +- if self._host == 0: +- self._attempts += 1 +- host, port = self._hosts[self._host] ++ host, port = self._next_host() + if self._retrying and self._reconnect_log: + log.warn("trying: %s:%s", host, port) + self.engine = Engine(self.connection) +@@ -496,7 +506,6 @@ class Driver: + self._delay = self.connection.reconnect_interval_min + self._retrying = False + except socket.error, e: +- self._host = (self._host + 1) % len(self._hosts) + self.close_engine(ConnectError(text=str(e))) + + DEFAULT_DISPOSITION = Disposition(None) +diff --git a/qpid/python/qpid/messaging/util.py b/qpid/python/qpid/messaging/util.py +index 44833f7..265cf7d 100644 +--- a/qpid/python/qpid/messaging/util.py ++++ b/qpid/python/qpid/messaging/util.py +@@ -50,10 +50,11 @@ def set_reconnect_urls(conn, msg): + reconnect_urls = [] + urls = msg.properties["amq.failover"] + for u in urls: +- if u.startswith("amqp:tcp:"): +- parts = u.split(":") +- host, port = parts[2:4] +- reconnect_urls.append("%s:%s" % (host, port)) ++ if u.startswith("amqp:"): ++ for p in u[5:].split(","): ++ parts = p.split(":") ++ host, port = parts[1:3] ++ reconnect_urls.append("%s:%s" % (host, port)) + conn.reconnect_urls = reconnect_urls + log.warn("set reconnect_urls for conn %s: %s", conn, reconnect_urls) + +-- +1.5.5.6 + +From 3bc85ad80caebb44a9cc308ba562cb790d1eecb0 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 1 Jul 2010 13:53:36 +0000 +Subject: [PATCH] Windows .NET support + +QPID-2708 - Patch from Chuck Rolke +Added dependency for new qpidtypes library. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959664 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 2b74ca3397532015562f882c948eabcad812427c) +--- + .../dotnet/src/org.apache.qpid.messaging.vcproj | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index 9700b59..9511e4b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -63,7 +63,7 @@ + +Date: Wed, 7 Jul 2010 12:21:03 +0000 +Subject: [PATCH] Windows .NET Support + +QPID-2710 Patch from Chuck Rolke +C++ Messaging Client .NET binding is not compiled in SDK + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@961355 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a0d9764eac4a0e6508d80951e2d4ce733c003f63) +--- + qpid/cpp/bld-winsdk.ps1 | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index 7aa6df8..ef9c263 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -60,6 +60,10 @@ devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api + devenv qpid-cpp.sln /build "Debug|Win32" /project INSTALL + devenv qpid-cpp.sln /build "RelWithDebInfo|Win32" /project INSTALL + ++# Build the .NET binding ++devenv .\bindings\qpid\dotnet\org.apache.qpid.messaging.sln /build "Debug|x86" /project org.apache.qpid.messaging ++devenv .\bindings\qpid\dotnet\org.apache.qpid.messaging.sln /build "Debug|x86" /project org.apache.qpid.messaging.sessionreceiver ++ + # This would be kludgy if we have only one entry as the array declaration syntax + # can't cope with just one nested array + # Target must be a directory +@@ -126,6 +130,10 @@ foreach ($pattern in $preserve) { + } + Remove-Item -recurse $preserve_dir + ++# Install the .NET binding ++Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" ++Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/DebugPDB" ++ + # Zip the /bin PDB files into two zip files. + # we previously arranged that the Debug pdbs go in the DebugPDB subdirectory + # and the Release pdbs go in the ReleasePDB subdirectory +-- +1.5.5.6 + +From 47aa17d06871472f180df5b35b4bc06e09c1df15 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 8 Jul 2010 22:14:54 +0000 +Subject: [PATCH] Windows .NET Support + +QPID-2711 - Patch from Chuck Rolke +Add version and icon resources to Windows C++ exe/dll files + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@961962 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 18005c4ebb833597f52de911d2baddde3ddf9d03) +--- + qpid/cpp/CMakeLists.txt | 14 +- + qpid/cpp/src/CMakeLists.txt | 141 +++++++++++++++++-- + qpid/cpp/src/CMakeWinVersions.cmake | 57 ++++++++ + qpid/cpp/src/windows/resources/qpid-icon.ico | Bin 0 -> 52972 bytes + .../cpp/src/windows/resources/template-resource.rc | 122 +++++++++++++++++ + qpid/cpp/src/windows/resources/version-resource.h | 35 +++++ + 6 files changed, 347 insertions(+), 22 deletions(-) + create mode 100644 qpid/cpp/src/CMakeWinVersions.cmake + create mode 100644 qpid/cpp/src/windows/resources/qpid-icon.ico + create mode 100644 qpid/cpp/src/windows/resources/template-resource.rc + create mode 100644 qpid/cpp/src/windows/resources/version-resource.h + +diff --git a/qpid/cpp/CMakeLists.txt b/qpid/cpp/CMakeLists.txt +index dbed67e..3efc0a8 100644 +--- a/qpid/cpp/CMakeLists.txt ++++ b/qpid/cpp/CMakeLists.txt +@@ -59,13 +59,6 @@ endif (WIN32) + + # set(CMAKE_INCLUDE_CURRENT_DIR ON) + +-add_subdirectory(managementgen) +-add_subdirectory(etc) +-add_subdirectory(src) +-add_subdirectory(docs/api) +-# add_subdirectory(docs/man) +-add_subdirectory(examples) +- + set(CPACK_PACKAGE_NAME "qpid-cpp") + set(CPACK_PACKAGE_VENDOR "Apache Software Foundation") + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Apache Qpid C++") +@@ -75,4 +68,11 @@ set(CPACK_PACKAGE_VERSION_MINOR "${QPID_VERSION_MINOR}") + set(CPACK_PACKAGE_VERSION_PATCH "0") + set(CPACK_PACKAGE_INSTALL_DIRECTORY "qpidc-${qpidc_version}") + ++add_subdirectory(managementgen) ++add_subdirectory(etc) ++add_subdirectory(src) ++add_subdirectory(docs/api) ++# add_subdirectory(docs/man) ++add_subdirectory(examples) ++ + include (CPack) +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index 5ac5373..4a6dfbc 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -65,6 +65,103 @@ MACRO (install_pdb theLibrary theComponent) + endif (MSVC) + ENDMACRO (install_pdb) + ++# ++# inherit_value - if the symbol is undefined then set it to the given value. ++# Set flag to indicate this symbol was defined here. ++# ++MACRO (inherit_value theSymbol theValue) ++ if (NOT DEFINED ${theSymbol}) ++ set (${theSymbol} ${theValue}) ++ # message ("Set symbol '${theSymbol}' to value '${theValue}'") ++ set (${theSymbol}_inherited = "true") ++ endif (NOT DEFINED ${theSymbol}) ++ENDMACRO (inherit_value) ++ ++# ++# If compiler is Visual Studio then create a "version resource" for the project. ++# Use this call to override CPACK and file global settings but not file per-project settings. ++# Two groups of four version numbers specify "file" and "product" versions separately. ++# ++# Sample: add_msvc_version_full (qmfengine library dll 1 0 0 1 1 0 0 1) ++# ++MACRO (add_msvc_version_full verProject verProjectType verProjectFileExt verFN1 verFN2 verFN3 verFN4 verPN1 verPN2 verPN3 verPN4) ++ if (MSVC) ++ # Create project-specific version strings ++ inherit_value ("winver_${verProject}_FileVersionBinary" "${verFN1},${verFN2},${verFN3},${verFN4}") ++ inherit_value ("winver_${verProject}_ProductVersionBinary" "${verPN1},${verPN2},${verPN3},${verPN4}") ++ inherit_value ("winver_${verProject}_FileVersionString" "${verFN1}, ${verFN2}, ${verFN3}, ${verFN4}") ++ inherit_value ("winver_${verProject}_ProductVersionString" "${verPN1}, ${verPN2}, ${verPN3}, ${verPN4}") ++ inherit_value ("winver_${verProject}_FileDescription" "${winver_PACKAGE_NAME}-${verProject} ${verProjectType}") ++ inherit_value ("winver_${verProject}_LegalCopyright" "${winver_LEGAL_COPYRIGHT}") ++ inherit_value ("winver_${verProject}_InternalName" "${verProject}") ++ inherit_value ("winver_${verProject}_OriginalFilename" "${verProject}.${verProjectFileExt}") ++ inherit_value ("winver_${verProject}_ProductName" "${winver_DESCRIPTION_SUMMARY}") ++ ++ # Create strings to be substituted into the template file ++ set ("winverFileVersionBinary" "${winver_${verProject}_FileVersionBinary}") ++ set ("winverProductVersionBinary" "${winver_${verProject}_ProductVersionBinary}") ++ set ("winverFileVersionString" "${winver_${verProject}_FileVersionString}") ++ set ("winverProductVersionString" "${winver_${verProject}_ProductVersionString}") ++ set ("winverFileDescription" "${winver_${verProject}_FileDescription}") ++ set ("winverLegalCopyright" "${winver_${verProject}_LegalCopyright}") ++ set ("winverInternalName" "${winver_${verProject}_InternalName}") ++ set ("winverOriginalFilename" "${winver_${verProject}_OriginalFilename}") ++ set ("winverProductName" "${winver_${verProject}_ProductName}") ++ ++ configure_file(windows/resources/template-resource.rc ++ windows/resources/${verProject}-resource.rc) ++ set (${verProject}_SOURCES ++ ${${verProject}_SOURCES} ++ windows/resources/${verProject}-resource.rc ++ ) ++ endif (MSVC) ++ENDMACRO (add_msvc_version_full) ++ ++# ++# If compiler is Visual Studio then create a "version resource" for the project. ++# Use this call to accept file override version settings or ++# inherited CPACK_PACKAGE_VERSION version settings. ++# ++# Sample: add_msvc_version (qpidcommon library dll) ++# ++MACRO (add_msvc_version verProject verProjectType verProjectFileExt) ++ if (MSVC) ++ add_msvc_version_full (${verProject} ++ ${verProjectType} ++ ${verProjectFileExt} ++ ${winver_FILE_VERSION_N1} ++ ${winver_FILE_VERSION_N2} ++ ${winver_FILE_VERSION_N3} ++ ${winver_FILE_VERSION_N4} ++ ${winver_PRODUCT_VERSION_N1} ++ ${winver_PRODUCT_VERSION_N2} ++ ${winver_PRODUCT_VERSION_N3} ++ ${winver_PRODUCT_VERSION_N4}) ++ endif (MSVC) ++ENDMACRO (add_msvc_version) ++ ++ ++# ++# Install optional windows version settings. Override variables are specified in a file. ++# ++include (./CMakeWinVersions.cmake OPTIONAL) ++ ++# ++# Inherit global windows version settings from CPACK settings. ++# ++inherit_value ("winver_PACKAGE_NAME" "${CPACK_PACKAGE_NAME}") ++inherit_value ("winver_DESCRIPTION_SUMMARY" "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}") ++inherit_value ("winver_FILE_VERSION_N1" "${CPACK_PACKAGE_VERSION_MAJOR}") ++inherit_value ("winver_FILE_VERSION_N2" "${CPACK_PACKAGE_VERSION_MINOR}") ++inherit_value ("winver_FILE_VERSION_N3" "${CPACK_PACKAGE_VERSION_PATCH}") ++inherit_value ("winver_FILE_VERSION_N4" "1") ++inherit_value ("winver_PRODUCT_VERSION_N1" "${winver_FILE_VERSION_N1}") ++inherit_value ("winver_PRODUCT_VERSION_N2" "${winver_FILE_VERSION_N2}") ++inherit_value ("winver_PRODUCT_VERSION_N3" "${winver_FILE_VERSION_N3}") ++inherit_value ("winver_PRODUCT_VERSION_N4" "${winver_FILE_VERSION_N4}") ++inherit_value ("winver_LEGAL_COPYRIGHT" "") ++ ++ + # check if we generate source as part of the build + # - rubygen generates the amqp spec and clustering + # - managementgen generates the broker management code +@@ -676,6 +773,7 @@ set (qpidcommon_SOURCES + qpid/sys/Timer.cpp + qpid/amqp_0_10/Codecs.cpp + ) ++add_msvc_version (qpidcommon library dll) + + add_library (qpidcommon SHARED ${qpidcommon_SOURCES}) + if (CLOCK_GETTIME_IN_RT) +@@ -697,6 +795,7 @@ set(qpidtypes_SOURCES + qpid/types/Variant.cpp + ${qpidtypes_platform_SOURCES} + ) ++add_msvc_version (qpidtypes library dll) + add_library(qpidtypes SHARED ${qpidtypes_SOURCES}) + target_link_libraries(qpidtypes ${qpidtypes_platform_LIBS}) + set_target_properties (qpidtypes PROPERTIES VERSION ${qpidc_version}) +@@ -741,7 +840,7 @@ set (qpidclient_SOURCES + qpid/client/SubscriptionManagerImpl.cpp + qpid/client/TCPConnector.cpp + ) +- ++add_msvc_version (qpidclient library dll) + + add_library (qpidclient SHARED ${qpidclient_SOURCES}) + target_link_libraries (qpidclient qpidcommon ${qpidclient_platform_LIBS}) +@@ -795,6 +894,7 @@ set (qpidmessaging_SOURCES + qpid/client/amqp0_10/SimpleUrlParser.h + qpid/client/amqp0_10/SimpleUrlParser.cpp + ) ++add_msvc_version (qpidmessaging library dll) + + add_library (qpidmessaging SHARED ${qpidmessaging_SOURCES}) + target_link_libraries (qpidmessaging qpidclient) +@@ -815,16 +915,18 @@ endif (NOT QPID_GENERATED_HEADERS_IN_SOURCE) + + + if (WIN32) ++ # Install the DtcPlugin project and call it qpidxarm. + set(AMQP_WCF_DIR ${qpid-cpp_SOURCE_DIR}/../wcf) +- set(DTC_PLUGIN_SOURCE ${AMQP_WCF_DIR}/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp) +- if (EXISTS ${DTC_PLUGIN_SOURCE}) +- add_library (qpidxarm SHARED ${DTC_PLUGIN_SOURCE}) ++ set(qpidxarm_SOURCES ${AMQP_WCF_DIR}/src/Apache/Qpid/DtcPlugin/DtcPlugin.cpp) ++ if (EXISTS ${qpidxarm_SOURCES}) ++ add_msvc_version (qpidxarm library dll) ++ add_library (qpidxarm SHARED ${qpidxarm_SOURCES}) + target_link_libraries (qpidxarm qpidclient qpidcommon) + install (TARGETS qpidxarm + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_CLIENT}) + install_pdb (qpidxarm ${QPID_COMPONENT_CLIENT}) +- endif (EXISTS ${DTC_PLUGIN_SOURCE}) ++ endif (EXISTS ${qpidxarm_SOURCES}) + endif (WIN32) + + set (qpidbroker_SOURCES +@@ -895,6 +997,7 @@ set (qpidbroker_SOURCES + qpid/management/ManagementTopicExchange.cpp + qpid/sys/TCPIOPlugin.cpp + ) ++add_msvc_version (qpidbroker library dll) + add_library (qpidbroker SHARED ${qpidbroker_SOURCES}) + target_link_libraries (qpidbroker qpidcommon ${qpidbroker_platform_LIBS}) + set_target_properties (qpidbroker PROPERTIES VERSION ${qpidc_version}) +@@ -912,6 +1015,7 @@ set (qpidd_SOURCES + qpidd.cpp + qpidd.h + ) ++add_msvc_version (qpidd application exe) + add_executable (qpidd ${qpidd_SOURCES}) + target_link_libraries (qpidd qpidbroker qpidcommon ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY}) +@@ -937,6 +1041,7 @@ set (qmf_SOURCES + qpid/agent/ManagementAgentImpl.cpp + qpid/agent/ManagementAgentImpl.h + ) ++add_msvc_version (qmf library dll) + add_library (qmf SHARED ${qmf_SOURCES}) + target_link_libraries (qmf qpidclient) + set_target_properties (qmf PROPERTIES +@@ -976,6 +1081,7 @@ set (qmfengine_SOURCES + if (NOT WIN32) + list(APPEND qmfengine_SOURCES qmf/engine/ResilientConnection.cpp) + endif (NOT WIN32) ++add_msvc_version_full (qmfengine library dll 1 0 0 1 1 0 0 1) + + add_library (qmfengine SHARED ${qmfengine_SOURCES}) + target_link_libraries (qmfengine qpidclient) +@@ -1027,6 +1133,7 @@ set (qmfconsole_SOURCES + qpid/console/SessionManager.cpp + qpid/console/Value.cpp + ) ++add_msvc_version (qmfconsole library dll) + add_library (qmfconsole SHARED ${qmfconsole_SOURCES}) + target_link_libraries (qmfconsole qpidclient) + set_target_properties (qmfconsole PROPERTIES +@@ -1038,11 +1145,13 @@ install_pdb (qmfconsole ${QPID_COMPONENT_QMF}) + + # A queue event listener plugin that creates messages on a replication + # queue corresponding to enqueue and dequeue events: +-add_library (replicating_listener MODULE +- qpid/replication/constants.h +- qpid/replication/ReplicatingEventListener.cpp +- qpid/replication/ReplicatingEventListener.h +- ) ++set (replicating_listener_SOURCES ++ qpid/replication/constants.h ++ qpid/replication/ReplicatingEventListener.cpp ++ qpid/replication/ReplicatingEventListener.h ++ ) ++add_msvc_version (replicating_listener library dll) ++add_library (replicating_listener MODULE ${replicating_listener_SOURCES}) + target_link_libraries (replicating_listener qpidbroker ${Boost_PROGRAM_OPTIONS_LIBRARY}) + set_target_properties (replicating_listener PROPERTIES PREFIX "") + if (CMAKE_COMPILER_IS_GNUCXX) +@@ -1057,11 +1166,13 @@ install (TARGETS replicating_listener + # can process the messages from a replication queue (populated on the + # source system by the replicating listener plugin above) and take the + # corresponding action on the local queues +-add_library (replication_exchange MODULE +- qpid/replication/constants.h +- qpid/replication/ReplicationExchange.cpp +- qpid/replication/ReplicationExchange.h +- ) ++set (replication_exchange_SOURCES ++ qpid/replication/constants.h ++ qpid/replication/ReplicationExchange.cpp ++ qpid/replication/ReplicationExchange.h ++ ) ++add_msvc_version (replication_exchange library dll) ++add_library (replication_exchange MODULE ${replication_exchange_SOURCES}) + target_link_libraries (replication_exchange qpidbroker) + set_target_properties (replication_exchange PROPERTIES PREFIX "") + if (CMAKE_COMPILER_IS_GNUCXX) +diff --git a/qpid/cpp/src/CMakeWinVersions.cmake b/qpid/cpp/src/CMakeWinVersions.cmake +new file mode 100644 +index 0000000..93890a9 +--- /dev/null ++++ b/qpid/cpp/src/CMakeWinVersions.cmake +@@ -0,0 +1,57 @@ ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License. ++# ++ ++# ++# Versions settings overrides for Windows dll/exe file version resource. ++# These values are compiled into the dll and exe files. ++# ++# The settings override precedence from lowest to highest: ++# 1. CPACK settings from cpp/CMakeLists.txt ++# 2. Global settings from this file ++# 3. Command line version number (only) from add_msvc_version_full call ++# 4. Per-project settings from this file ++# ++ ++# ++# Specification of global settings for all projects. ++# ++# set ("winver_PACKAGE_NAME" "qpid-cpp") ++# set ("winver_DESCRIPTION_SUMMARY" "Apache Qpid C++") ++# set ("winver_FILE_VERSION_N1" "0") ++# set ("winver_FILE_VERSION_N2" "7") ++# set ("winver_FILE_VERSION_N3" "0") ++# set ("winver_FILE_VERSION_N4" "1") ++# set ("winver_PRODUCT_VERSION_N1" "0") ++# set ("winver_PRODUCT_VERSION_N2" "7") ++# set ("winver_PRODUCT_VERSION_N3" "0") ++# set ("winver_PRODUCT_VERSION_N4" "1") ++# set ("winver_LEGAL_COPYRIGHT" "") ++ ++# ++# Specification of per-project settings: ++# ++# set ("winver_${projectName}_FileVersionBinary" "0,7,0,1") ++# set ("winver_${projectName}_ProductVersionBinary" "0,7,0,1") ++# set ("winver_${projectName}_FileVersionString" "0, 7, 0, 1") ++# set ("winver_${projectName}_ProductVersionString" "0, 7, 0, 1") ++# set ("winver_${projectName}_FileDescription" "qpid-cpp-qpidcommon Library") ++# set ("winver_${projectName}_LegalCopyright" "") ++# set ("winver_${projectName}_InternalName" "qpidcommon") ++# set ("winver_${projectName}_OriginalFilename" "qpidcommon.dll") ++# set ("winver_${projectName}_ProductName" "Apache Qpid C++") +diff --git a/qpid/cpp/src/windows/resources/qpid-icon.ico b/qpid/cpp/src/windows/resources/qpid-icon.ico +new file mode 100644 +index 0000000000000000000000000000000000000000..112f5d8f1f1c7be67e0ca422d2fde0a36facfce8 +GIT binary patch +literal 52972 +zcmeFZbzD`?*C;&a&<&D;(yeq#cPJf-)B!<4knRR)l@1Xk6eW}r1Qa9`1eFvN5EMid +zP(+YANSt@hLH+uB>b>`KKR5n(hO_s~teQ2mXV0v)W-9;)Kn~d1sbP)}7LWiu0{}2F +z{i-7XsKx_;n);y559>Ju0EmhLNKXvPDFJ9B1d#t%ofrTodMy7zy%*vrS+V>Fbr;C{ +zh8s2j69TXU4?6&q1b@q82jx5f+)Mr~57r@{S?zCm>>!Z@fZdMY^4Nh3J^-;V0N{u6 +z*x{uDFKj>l>l6h5{DG*bgACqb5nfTCqoV^NFt{JUV6Y{4!9OerTmLUp;=f`OBY)Ks +zeEfr8F*g-gM|;`hb5qNtCNLhLy%?y85ZpjJ7lo@Q01%j%7>JNE$C0DGh_Jkv1pgB_ +z^okcTE>AM|QpOg%ybj2+8L73gbwGr@W8(aSqU|7NizpIXMVp_+YyntY0XXt4|5OZ` +zhzf&=GQpxTiC8FBvd;lK4(Jcdzgol9qxdiw?}OHH^=K^K1y?-4YePJQ{Z78H?9KDL +z25EI*`*#1-MWL*9MC5P47QQl6l>1Ku2{=`$rGDe>aiU_`e=)47;3&5cD!3k@)zuFW +zJ|;vEfcB#Pr3o6)A?&?4?6ISPO9?zM0e~CT0|0!;2ZQ{J0+X2dyYz2zNcn#?Vdpt~ +zwE%qm{x8h)gHb^z1j5O44LdShcq)J}G8#LwXbv^TKx#&FEI3Lf65<$hv0&_^gVPT? +zOILAE#Gi@U6N3rFKD;gS$W=ZJ#tuue6$Ixh21AXN1uwJ_28|DkxP(kai~cUFq@w@4 +zg$OvOu=Lmjfw-n%5i2K}9|y&(z%us2Ca*{+R~0r6NpN$^3;S}Q39+hR&UZpX(?GCD{}(KolpP@@`^x@M;Rz9YrAN7FNK@(i+&>pn#5+4{$-91C9>o +z!TIyfz{SZGxVl^bZWr8vyW2(JanTb5d%FTp4=>>D?F0P$0zhz32nY=c1L0v2AWFmw +z7_eUfR=iQbh9?GC@+1K@Iczx{*m4yD6n6nQC0PjUd7^>;u>{~Nmnz#-M~h;2b_`a0cS;D07LE} +zpwIpqn8^$S8>!d8RBi|u%e@2kLY=@#67uOz0w?PMa9(u;<`clxbr3j24g${$W5C^c +z0)#q`fvCu6kQOlmEVHVBT}cxNj-3J?kH$f0>uV4beF?3qawGLU21T36zxF1h-3X +zgYvR+P*Gk9?pEFd_wL>U)zvkisiqXv*4Bag`UddeK_htds0FmNw1UTv+d$gY36PyR +z1@7J$1a-wdptA8js4D&d8X9Ln%JVVscyt=tAf4dp(=N~jukNmH(A)bQ^u6o@{rv-= +zzv~Sc92^2e@Ot&?6&M{E1+QPf0n?Lj!1%-jct14(CMT!ByLa!w%O_tT-vSt%S_Y$U +zzk+d?PmZjB_Y-SiW^xsb&n$u03rpa`hY#T6$2sun(i11Bzp@4vSJ%Nec&)Ckg3ZlM@Z$#>Y@*R%dwUz~?d^eeV+`2z#(=GK4A`#2 +zfSqBS&4ha`S%3%-0!Ba?cmWfT1{^>w2mpg15v+hb8VtB2h5-%681Td!0|wJEV5$xS +zz7GGxPYn4fAwNCjXMy}2ke?UwABX%(G#FqZh5_Ej7;wcK%1Xz8_BsrBJAA-DJ@LOQ +zjaQCLOicfe%AbA~9ntqcuF7$I73^r9ZsW)8o(UYHAu@jzjna{KMWmeQW}| +ze<|~?^mPe>= +zlaDQoXHoq{`>RNkJATVTm(`^WOZJccki19W-%~>f5@oM-#PQ}IslVlykpCj55KGD} +zD!z7Ek`f6acpB$UGMfdA;Cg-_AA6t9Bfyd4i{E{X69sSM)h7t?*qu!2wcQ_M_5GD_ +zY8B$+$b}kz6CdOct(?r6G~Gl>{-MR{Gf_{3B`3@{Q0{;hmfwUp=&`6@utt(J{g#d! +zpV7kzs4Hpp-{g?#sh^2HgQ}elY@6pbjsc3s(kMY{Bw_7=+&}lOi>FV~sksKxV%v^| +zlm}^gq6rU@Bd`ADu+rum?FyyyRhzEMKfcNRAx9y?OsB!)p>q6N8mMJ*|j`MB)wpE$!czUz0$EAU#$I +zTO=MHX!-Xve?tc0j6uX7$WMdf5qJN_{`>Mn>@tvbAiofShlfo4_cZ@NCZ?}Jawrq0 +ze-8pGB>WHdKPt&Va=d=r08UIC#)Ij!<183yH +zc-KLNkd&jpk^d%#G~?Wm9QhE^AM}_XJ^@7NzoGk6otVCg6)yw<2lA(j5qPl6|M8GQ +zr5kXIM>UonCx3cE2sVHu|4*LTa~iC8F|2HOL6(V$7C1c+2E+1tAa#ung0I +zblhD5&Tu#{h-{kqANe@tre8?Id4z2Ow)7|A$-KbodqDB0a8RAD +z6UWDqL(L8t@FnZ9)PLx)y8og*$a+(bL6!sg_{Y+E52z35ar5(6@gEt}V-E^alao^m +z8V{EI-yFF7?-Bi{p?@LyU#lGWMbI0^rT@7?@JSVvfULAOP*PL@;-aT;KBzUnIdBoQ0JePR0E#aF7;y#z8{S}G +z!5ab2@w)&gfncDjq6XB}G=PS>7SQ_34>iy?0!D@=IDZuDi=H;Ofc~f@usmxGY^-eo +z%GM58nuh~Bls#~=aRBG+v6mxobaVnP&d@J)b;J3kSYOn~+ZXuy`s4i3fPf$n6c`Lb +zLl1mXQ?58*%8>yqIEsL$P(1J!P6GzwCBRVW4nT3%0c)XpaE7-TnDDg&ljCi`lD{1o +ziZuggo>Jhga0f(2M1jEIJaG0{A3&WP0v8OQ0~ezK;A8m$*l7&|m+~jT_x3Q(-@6nO +z3*zDua6VpYN*c(>$OM_0(8q)R-EY6H>P{gjDZUAA-6{ol?v#P@@(OSl`g2&H?%usB +z&|G^P)YR01T6q2T>zbOH!NZ4-KwDcoh>xBI`B77#r0_i`h?@oV<@2Dieh#E}jDY6R +zcQ~I8>(4#weuneous+=I@GyAu<_(ybcnkftcVK#Y2Kr`mU~2k1c=LJ%yd7NyBNMA& +z^4%(!fw({Z8T8A(eOm_KzW#tY8hrh+4!*8$;(W5zwGFVowhlHnHo(uHKf&(q4%pq< +z1^fH^V8s>2u!Cs;CRq$%ZWsehjW@t_rUT5YI)M2!jE$zFpYHpGdlbaKh8^IgkBm4^wN$&FHIVH +zX)4f5(*+nBOMnsc0vO|XfblK>nDqMqQ`ZYH!_$B9vqLXW8uIHw{&SE&2=b>u{!++a +z5Bb|5e-Gq`ZKh8_{!fs9xMzf70*r@BBZbNb&Q>^89D~S4>T=;$#;6qDVX^!^6tTE9;n?Q&d!R$w1i`*8(hK +zg#-&@Z4b^h+x&f2!mG_7?&2lpd{GG?o#v!W6*_5eRk*_ux=>OHL$` +zN`pzk>$m<8O#*jLzECVBHiZdj(#fmD|LS#7Q7Q`_65kFd2#e0~(PEI(CO(>h(;nVr +z;Lh%j#o$tow<;5(F$Espi39zLLSfT3zp+I*o;rsP>&KmgR!SI7y&N$-Bo8n96lL(O#y${vuuy4d!#|~U<4jvI+nl{i6r~Op5^A^bQxF6If_KOWAUev +zNU1;U>Df71zlhC{$TL{HC=$>55B{%$JrXI7#q%MN4u66F6y1<`LRh>Y5{dc){Hx%M +zL<(c^(n#d#zrcTrR!HOtEZ!Q4J-zr^R{WRN3~N0R@QAe{|~WX}9GLoUL}!44kU5=hu|VP^kgi5%^$21=Fn9^aGb-*NIuUE&2q$P?97CygEmlvaAG47r0ncu +zIAfI14#E%SFD@$z7liPG1nG|BdJY@J3O{H!C-ek4z!D%RPlo=6W6^)5#Gnfof|C9M +z{Qnnm3-JHN8`e(w=X~iukEdf}>D>QCEL}uc3>Qlm7nArCOP7_A1M+f;I9tV8zzw)U +zJLK;;_(@$oU}#_rjEziysfjr_bJ_yN!7X7N+y+=%*#H|D3rE@7<7^K*yL0~%{|@!@ +z1in6gAn=!+fsKD-W8c<%QNWBV30Uzb0d>h3pdk|nw4{=OId=xI;!eZGz^!<5fb;QK +zU?+7Gn5oW3}7RHrW1U7g%}$;FktKN-Y2t +zg8)2P0bm$I1I968;626|e8hNzMNB&Qj;RBin7{UUUT7z%LOa0<+6jKpPDp`vLIt!F +zo{stMKuw8n{D%sq|?q7)#^CPlSY#X(WCNF?KVEHpCGLtgxt +z2;Lc-Yf>`3fM1Os2#bt#1xRZjA47n|b`lCakmeKV +zjgK(*@v(s4#~cg`#Nd8zNMPyXa~>cJf72gGvH%EY2ss3JaB!?7+)n^Wiv_3wd=xhS +zB|p-E5TTB(yOJRo{3JAI?uLc?oI(I*sPF;38yga#hXecgz*mn#7qUb~x}T&( +z0_9&|A0G|q2oSOG^B;v_Cp=9^@Ec>pih%nB496hYZ6WLr+{edGo9D<89&Nkdl>b@& +zzk7?r?qk&OVu#m%LH2_N{{2WP=TxU*pF{v{?V0i+~laA&~M!l&V0rH=ELb#+dG +z13wwNSDC`I&NDba+48K_A0OG)#s!|&I^oW1ot<28=e5|gT0iIy2LuEj>{CI(AS^T- +z=nJNSGw`w$$^@>GNx)Az59i;-0$rUQpyyc+?mTf|U;yWT!l)8> +z56=ppjC=;u@0Y>5sSPmv@eABjX2IvrpK*TX=b0^d&i4cE9h+cdZ3m#yaR2zVcfjEV +zND%<=jQ}9@0)RLT0Mc3j$lyLgxdO)@a|kHHeZ&gxBf)SVxd!)<2XG%5{c9hggZ!LE +z@EqR@0L3%_^lAZs+b?il!G4251Ck+s0pzcS{2h@07381$i=P+rs~7?B-}~5q``iDs +z=fZ}+5(=9eXdcw`6{MvV^$qn-sNtX@@DvJxAd%n~z*bMu19}-PEm;N*PIWBT5u~Ic +z3Wd_;<055+RV9QVtf5ZvaLXM-DjOQIT>LdZLp&=y=7HxpS^3YKm8j>+# +z>j#O2+|ck4#qSylMMZ09cpRbf8=#65GBnh}qcu1H7|`Qu!v;kGBen&U4l@vgRYOA| +zB;ip>Nj4&+upzEjhDuB@PK|$9$?#X*&`@7hRUb!dh<$(mS5lIZfi?vxGmH?yJw!*t +z1iRYeR$Lf60@gm|PVmzlDP0X!v!J(2Hbg<@-EVA~n$~TJV~5nfYtm(K;L~42W#^`|CN7ikZHxJK$n*aFY_Niu{ZE6DuA&-u7C$l((aaq#jIuF@alR8nGPzWTX(-kO2qP!w^eo%r=) +znS~F2a_O0wmo5=e&h(~p>9pjK=JykZg!1w({k+M!un{7RKD`;<@~+dinl^AJVDaK1 +zlHS84{Mjd69$2Eccb*OoQVC{f>{%lpSYAyg$zJigoM7A@5x(Fj*Xt;bPe`a%Vzm1y +zsr27=p#kUO~uB)r4uzz`T_vP~sn{GJ)iTLcZ +zZL2Q_+h;o3!iQKWWc_EkQ;y0L-s%M1Me=ngZ~vH>*T+|#bChI$_?+g*kt@9V*Evg| +z)piLvTpb=N=`u9azF#ew5hF95t^;`JesU_3>kS1ijYq$}+op}EpRPf*r|31VjkK^w +z^X2CUOk@yqBJj9GI0?kb&b`c5cX8oAck`B*-ONb&nHnV+xoSS~LCci`4^DzzLyM}@ +zN5`KWhl_yHG#v?H`}EF`k&c +z4D1ZrC5YVJmw!`(O1;b|Jeyk-5fev)sOSxp>wCehBhTK?C(Dih?d=2YI5g=3W*tP# +zddZ(;=76JtJS*d2w{}P0;(-tSnQt|=4_`d~Qo5NuxP(z1jFG$)riG9H<8YTo&rDv4 +z`sxZ7m2Z9L)eJR!_=q^BA`A>M(~sR419pFqwOQ>SJ+r+S+Axy4@owM4zRsdqS7R{C +zfPqk9Pm(o!Y50&cXV58O4de>vvI3#+C5ENe6TY>9-<5Xz%)$hO-gk7&7J4KRDSmIA +zvSv*fY73WFcw0$d_+=W?9?`?daY#kr$&JBh;e&K(^+Cg&?$+%HMq%q2#0kgA+&Jf1 +zp(zhemj`lY)h34xDHc-SKMv*M=TF3>h-5^;*8oKFp>^joYr}U^(O+KH1kD`{FB(`l +z^(Ea#7jaa`Qs^{mH4{C3T)KnSEt|>4#AB#J%+y$72g`jp{S&-oNTg3pOk9%)m3~uw +z_VOtK0b(*L5veWID;3AI{`cD7rhoY#a(Cz&< +zek`}6mm~_awY?V|zg~_($<1tjGK#ftS~j$s?Mf=|BaWV_3OrtVCF=xoW%Sgo;E@M8 +z!nRka-ebVT*|WqnulG#I+ +z#qkDjt}`0~Y1$f#M0xmhI_v0jLpb2(FJOc$+xVZcWxEsqSTzUc(+zA +ze~FktKKArE^u}`tnBFl^T}xnV+Xyd#kC4c7E@EC+>=Rq-7Au3WMQjsWr)Qy|uCZ?cx8p_t1TK!IeO~U97aR=jU4d3H^ +z!uqZGddHq +z?a!Niwm4E2TsP9%YJFtqBh%*h$sQ6_&OHn>Ns|n<07g+-nrU)p_6lk4P*@bucu5Pf#38?h|`H{QY}b|f(+<(zz|?3TrjoJoz1 +z1Mel)_T3*6jTa}98`dSAwC2`MpBKCnx9#JbIjNdYoDN=d7yNva&nhp>K%&Av)IU5R +z;nBymG*O>0+0J8Ml77*qSLgDV_pd8Vb1Qzl9;!IS*x){K-^`5ZMQ?A%m+xoRUM-Bi +zJ-$6l;E}Oizq9da>*E{liotUUDMwd3d)PR|Ie$cd(tsb#smN$mF8F@z`M8uRqpN@GJ#gEyY)s&E4~@NTHi +zA=0j|cQ{PdxI!3(*PpI{_8YLyCXttF397^ZNsqVqZ7uV`RA#R(zb!T1`uH?~%D2DQ +z=G$1=%*}^ijLST1!j#;21qsg`pC>`qjIPTMc2fORuY}w(z7qr(&<_9b+GfI>#LLoJ!3tr4JF3u=aUSy*oDc +z5WO1e0&$eb+|-0Glae35Nk(QcEhQ>Xx&Nw}b<4Z>#6%r(7BQqvOTa_(N0wd6PwfL| +z&`BTBGmp1ccRbs@DWWU)ev;C7`LZjs^%pc5ve|G*->CHM48rhZ +zszXoMNgM8YR?U%geZzD|I=w?Pmz;EU5&mbdOZoCrvi+ndy+eUc&e8T|@2@t$d-|H9 +zr!Zgnj*#kn(!;6m*WgOCK)BFJby)IR(*)&u`i-K`DmKwNpZHSudyTn_>rYqB7M`x? +z41AgEusK$r?zenIS$Kn9o1>d#eQ}bJE%Jxh+?IvpY3``d*w7z?l!s#|zRIj5%A&4G +zXnvWhJX~}W6NRwl!76e0bamHdk=BlurwsE0 +zhJ%U8+Oe^*KJt-s3&TndsX3Yj@}Uf#kGB~DzQ663LcEaRulCogW0l;0b^g?F>Dl_0 +z!UP?F5&uwHO1ALs7Exd`o%6NhC(!(;0%VZWKta;U>|=~uA8A(k7Q&7CiC)|-K5}W+ +z@@0dTK(t$TWi~NoTgwv(PQ>n0$NKvF!)0eg3eM}X(OHLav~lnHH7a|pu($sBa#zWJ +zoqv`$V0k=RrcCdX5>hTih*CeDk^cEh?fGgO(Z~;pVzWb0^0Z$koC~`f`}2dP +z@@FgO)O%8*-BrWU&-oUnZu@#GGsENLWUAmBH0z)B^F8T#S2rK=YKxkigrwx%%jBK5 +z5kjPc{T_|^{=CaFWd@HAPowmBx_|ii1~cZRDs3}SNqO2%rD}HBbjDR=maV)PT=p1v +zZ#yaDpjKef>PN!rwsB1dY$31D4d2opt}#T(=6%s$o#{s0-&*|icxQh{M@NT$xrcL> +zwJzubr(Wp%(P~|Wgzt$yg#6oITe6SQ(C-b#xx$%$F=njBxj1l;Rp;R~>*E3KEr?B)utG_`owpTgG*xM>-XV{q<&vUNyu`Ke=gHhOH--f09$jt>1!Kj +zP{EJGWUd+xD9H_mf4H5y^5Sj{-Pbkh4~MOry%3j*SQAg>3a<`%dtS=OD^Kgq4Btt_ +zU-8VmMLliIrA2q@N_z|7dyrn(5kNt6n<&>r_(PuRB`>iPd3?)3v~+AL(I=0=_eMLm +zkT=>y6-d?AHDoV&c;(sLbA>{b#-iqh3xb7* +z74XXp3fC)7%y?-1Ty&NQ%C=7j%h!h9zY85|GGwb^j3^#QW)3Hg@ji|gbLa`#+t&t1w>kAsnvY7j;`+Jmpq~1oyGF_f^b?? +z$n&pT!Z*=rg*owMKQ|rRgg><<2TzIcm*3M)WxcljI+qjC%qRIV({S|z5nIr`)hF*_ +zlKl*V_D|@Yt87oaPxQrUv@Fn*RdJze7ePvWvvTNEj*#ZpH&vMVYv^up`hTn!Rlq86Hc80OeMwCru +zlOVke=e9{`YyF;^*v>q)Dvn9fpCCg!ZTsBWPf}GnfArXydtJvw+Lsbt|I21O$`Tbo2Umoe_ekbbDq=a6liKgk|kgLqLEhw6{t6O&rdl-wtqdVBY +z7m%l^52aS^paQ;W=(sH4xgy~D>2hc;{QGnh8zrm4!UKuOLjB%l@8MTG=iVvNL?ZIQ +z$DWk#M{I9`s}RR7YCVmo=+0_-FBpnn>-v$`c4XQrMfp&~4|L?u31_%vnc6-yq~Rem +zTde4zedqn7OSdM=r>sLlE*fpWCs*hl(#~x(OB|(8V(9lRex%GGxGIMwc=!3@*6XF3 +z$Kr*F8A<9yRQ4+!(P2+l;?G{capP+GEiH$)EhGD1oo{CV7v#%ak)BA~uq3i}nV1Ov +zfvBI&;cM@Fx}H5FRf61C3D!Q_|6s|aq2_O8P{}W`uI~7Gl_kwWakZ@=nkOE(cva5G +zEi9Iu7zyE;Oubg{jQxY>+lGo_ha`SQCdG5yr)zA5f(R}Y;=u^O2QF>9pDo{ie1CV0 +zB#R$8-ssOlsIZZBW_Hh2A+UCkC6ku~Hu>sOY3bU+jw5Q$Xmrvjn?CD>c+b4&91I)O-Zd8WPC~X}%O}c5FLaV!G3lJx +zH>Bza{oalWA+eio3t!lBWUGm_c~wVw^@|w7-xYK>2!-wew#_{|vF-sVo_?&Wsl`-r% +z&26@A5kcb^$@hs&{*VQP{RGlzEDR1g(H@pQ@$7BO+Jv +z^J^%MAT-(g7C^)xbT;;Ml@*zEO5*(_ggfnIdu02J>r*<;)~$|+tYc@Y9cclDmW=wB +z5l`(@(uj5K{kW7=<&=kO^WK|u98WT#El3=)vG9DXE{*1%AE&5GFLmqQz+|95_reH% +zT24+p+*rH^+tXSwRf+ANrf<5|JH=e(y6Nt)-fL{Jws#>mHlA3TFb`o~dAi%MeRr2J +zS|}Y~)c=Rs@w2TuUJsIx0=?eio}Eb59vb6DZ|FdgAC@Jibn+0ym+R*=&C#V&`Z>q7 +zzA&+d>IX&KU`yqjWmD(&+B|{cPFXN5;@)I4f`VC++WiO(r%M$Dn;f~7v?s&5MwB4o +zRaSY1?`@d(Ro-8>X}y+>nO@N=(yqD|C#{ +zYqrZ<_0n5$35mLpZ$NIa0~52uR;fd#rn>^0ojT!QnofyIV9kFXB>)OD(SPEbpFa0w;JzI-B@DJ +zXym}7z_0NybA`!1&)mrrdbGK(PUOkMmCb}iN4!3H2XW<)HBLhc?1>+kB +zIbTRSg^SUemg&*>UCqR}Pi}rIx2*ayeI22s2_(VB+gme54m~L(7r4^DP2UX^v0X5Q +z4Sj5yPWgc^6P|8c%PvD&8d@0{8NqCHjyUQSGs|nY4u{n^^8J#m>2J!I*th;)h^6C+ +zX)yS56yvR~v^5?=`276kTK(7c$k3~vw~*l}fO1K>!vRw!I*PctB +z+r5=1Y|#u-A6($+W#ZJB5+YPoqz>I$qUobb%S(SQ^C<9+;o3!H@nzFncweeBLN>13 +zZKJa`#+FJFf+Cgc#>*0CpS|g~T3M19WH&0#1IYw&DuL$7>H-QMsVLxy2@)yba82!ZS;*?O-eb}&`0-|ZG^?PIJ_v57kf +z^R=V9>na6`p{LXOQ}5dfth!7ZP6nfQ_FhyLg9t{b2s~(qP}t${&`;ouDn}(0Mbi+_b5h-64^B +zwfNfZPZo +zKu9F+`~3X;s+;M>sALlQy5LD^mpt;R)K*e0!1AW1XN|Uy_8vadgWcty8Zv!WqNp@n +zcM24J2`^ecVBqG9GC-)QtJlFDc=X=cktX7qkEu#eawVKe0+1@7+Cw&$ubxGP3t&fY +z1z(t(r{v;S=~kwcvKt@hh}4-k`6QG+DT;*1@{%E6R%)%6%l)0Uegh(OKbTXn0_Xih$FTU +zpXgIjs90h{4n@VIhMP;>zIX~3DKn3x@hYr#C!q)L*8F5ZC=B0*-(3jDZe@NxA2=@N +z`omFSZKD%d +zY@}7Y*Cv!~x|jfs68S5$3jXCm<-M+!?I314FBzvP*;d7GN2fWXdgT4)w4>E%K!qt8 +zgRsU(!u8D8?rye$fi&DaBv3x6w +zJw*3mnC>82t>Ps?Ag$4hIEIlZO|+a-b;KmKIC&Z`q? +z%OQIbAe&v0SDbh|TFx8djYlpN7gK0sANJ?L{DfS-HvTJwD`h02H}XKN_$|ax`iqoz +zE%}s)PDtsUlRm831d*l^(cID_!u2S??%pqOiN2;PqpWo=As;76Qr$z*J2X{VMxCCb{QjEc^Me+2^z}7i +zv>t8nZIR3ERcwV!N2x%jSXdV^oI8d}`%Lw1*90tdYj56EQ+OQ-l=jzYRjaYXk`}hg +zDd!(nKz6t67;@NKR`W^3E_C-_Ro(TZ>3BxLvNDAxc|uRnKd3!u`*;QV5Cjjg)4QX) +zl)E8hUF`kSS0hr0iarYq3#Oci9g0J=wBeUQIkVtvHCjQF8uoT@R9-Pf^ArPaH&8(M +z#AXt*Yjj-icGn71LpHikzPRxXnht6*gksF(aGBz5v)VqYhTmJy!108(c)7!rSN{;V +zTlTJ9((Ah)dy2wp#S(|AI(7C+TsojlS>h^D2Uojkd~-a@t*2BmvQLAZ*|orASUTWW +zDe=GiMzmg+G`&vSfd1BS?=%mhT4RTMHcfBfA{y&!he4qC +zwx$W>NqYNwyBJXeT^*{I@UfkxB7GH8arH6v9nqtRO}3#TXXMW#2x_G;3|=34-BeYL +zoy3gX{)sQG=%;=e+~`onWX(CU;;9Tr6)GXQ(+=z1s9SD2My+au9B;PgiYGskxI#Qw +zrg}(+pwj#>kd3Z)9^jCZOU^efv5&l3QG9f2Pw9IOakceh +z(kiXXD=VV=TN=Dg@}057mp7yelp|BB_BdK)imA1u;Q0Xdh_MyZNwj+wj(PLzmt(fU +z*^KJcH+khcogS1}o|AI7cZy03?RnrfR(s*~g?m=@49wZ2Rc{+rTLLZ)m+O9P-(`Jl +zxFx>_&w7ts_0MlC(K<&zT4lrH(9>V_%?Y==lg^EAY^c7Yx!y4V0*{F +zQTgCe%Q3!3_m6&dm2}eZn)m1*BcSQTG{4!t{9JauM?eF8x5P+r=w`65bxUEiLytkR +zL(3a$_7_Nm5$DvLZYI8)wR&{G-P4h&Q2dTG;<(j)I#XW5&w|C&7mBR93l#iG;}zE6 +zdWOm|GP6izJ6+ScR5L%*G##O>=O_8r-#r0()Ws)XS7KgIE^lsph?plzVSU=&aJ&m& +zFx_X7x!w?uW0*kPs*2i1uEG9GZTvpBi*VV5ht86rj +zP18cyGs&=gP#*5RRsGKE+ZU0GseMSNmkUy2Ysj5zzWd+stc8WE?fERtB< +zw|LuCKHkwEN>KdR^R_{&>tdN)gVvP1+~ciVd;>ExNo0vsTTjnx;eY91kH!Ca%OH;5 +ztiohbBvM;r2Av5MZU~$y&~dUfx~t9hi9}9q>Wr-iYsmUirvsQHjq{`hCF(5!vVotE +zNLmh_A>uSD)_l;V5mvv;qM@ltCa!fB@A1znt46!!vHCjC?-3Tqo$v_>Zbm#MTo`>w +z`)F$^X+inx)QH@}ux;^bR6Aupt!%Imn_Lq8wq}UN>1vXPw*l4Iy;!e1l+NepMSW*v +zSwkB%D=vQ3n#Yvxlbz2n!Cz`7`S`ts4*hL~6mf<1M6w7kM{5cG+vr66&wcrqg>70$ +zp%MfqNZQXnB0tt{m2@|^W+m|Mn@ZyrTSa&}%NV}18J$w`(5e2gRTCx#Pdi1O(FP%2 +zcJ$|yu+a-|4!wFpuCe{HBv3Ft=X!GU3cH`nG{ebH`d5b*TV1Jl^Dotv7F*>C%Z7hx +zU{CUDc(Zucl)jjTOFM@giQbsuSdaW7pxS~qvRDavmTWp5a;jGBg*YXvY+{X5_*Hm@ +z@MOT=79xNA7HnL3IOH8eaf~%p!c(1)^ +zejnQ9je>Rm8}+*;?A1R0vNn{lvDzGF=TyEMRB-b0U*5H2ibC +zaT%rbty{}2SNPlK29!BI>wAkxU3la8byqvJH{%R()OcF!&Gw^v`n7#3%n~9ZRMS<~ +z(b&+1czj~Mtk1%kzC1;$$qCK|F{IrKFtR-7vORt)=-bt?5*f?dg`EvitE0r1g%dhz +z`O(L0T&A1lF1#sEDGg6BYVeYfoELs-mh!mC=>hd*1^TYMM;KIBeLBV%l2 +zln8@0z6oRWjhUH`+#Xm`qr?#Eg@^Gk^+)d|U{rM6HPH!LH?1y*xQyI9oZ`7n@Mi4u +ztskGl#wWxdE<39_WzkkM4-fIgb}%rc6o;hV^tttUrRCdb@6lMl(EXU256*YODV^O4 +z3ge8jYhA8-Vz!;(Hx3USX*xRbh=ML~2W!RMU*%_wlDy*2B2(=1=|#*Hj@g>#pbyA9 +zde^VqkPleB6rOBcR*y+0(ObDRp2EtIurSV~7vjzBQP7g;=HSG>YOO@NYu)RUM`M@C +z8Bd~TbV9&Uik?5w{{vM5GCt(Siq3rD&;`FCevh}WmR&SZ>oh~H?+e7~>zxMZpdTv9 +zA!j)ixB_x-9nysVelZRkEDTs0=eQQ4u_m>!q2Q(IM@V{kcgmfP?yymbTJXYzMA6=B +z_po}$!>>kae4T4FW@onv8g|;(ix^jf5*jTO?GC-zD?na)OPVkelWcI}+!66}9#d(S +z={;HMZkht6_6FlzyCwIS5@I@jBzmsP9uhQI+*Uy@Nfm +zjJ6$aHIJXkJ7n`C*<1HMTeYer8huE|=LCXT&FlH+6B*=*LXR{INqEf7%zU^d`=f`% +zOuszpjy^Mo`0*>+ZB^)HtKEPFQB?7=S9{4vt((RV-!_Xmh?M?3;=;{f7RXQY3}1Py +zM7#1XvA7eJhCDqnMHZK+F`mA^REI4p{%y4BKE?38!L=3BJbE{7@gTB2! +z6Wma0l;S~(vDteHV?`s+92|nOLBR4r2%BLwns_DM`{BnPnX`djh=A-be>?2`S77Vx0}(e +zN-yd>x!>L(J{MDT-rh3yWt40JzWGr>{4_%6dM=c+wtX8Up5zVVzUsSw7ukKP}uuc;}u)pm-eIqkHiekW?eB}z<&Rs=-b>u^MU?ZkEph!z%B!Zy +zpfTR>1F4H!d2w}lESFleb>vZT^-8YQ;fO@y_C>w6$>W+FtNr)Sw-U&17sXyzchVyK +zj#Sut9O(J3iEqXq8I&;bne4L&^>M)=iXSKX@|3A;x_ebpi)(9v>*C?Wt0`JqmVyJf +z-*;>%a0%NyL_R=?W-%*UxBJk<$5=O9cu)OK{(=2<3kKfDXz74&?ZE0rX*aK +zjEn!)r#5jCUtHqCXnC~0RTEuHvc>hZuth;iR%Nm>vy|N_>uWqGb?7e4*&1q=7m*6F +zdL$A`-JN~AZMKApq||OI>dCvilWwnk2^q?8Pnc-bBvNuMl8)+bo}A}PN8T=fGrt#U +zcDYZcJubcIlqBSn5IGXynCWCJO#QY?6yKaQR$(gH?>y`M-C1hu55}XOqvUett2Yi| +zV+qfo#j?g6`{F|BOcAt>XUmSZ2kpMK8I6b&~QxyEJB +zlQ3pv)@=>dBwk6>ia1U9YHi&Jolr-AJ=HSFeCXa;2j1p@C95{FgfZ)`Y`4=)Hkw0~ +zd&Vv=Rgyoj`?!zUd0Q4|d@)irr+*+NHEhI?%;bjHy-0{(OO>ymdOQ!0_agt32Aae% +zLKRvb^@vhL+<>){-#n+bP3*lWcKkPy7tU(B{*5Z +zy!ct7xm+1M<{~oaH8QZFzleP6)gJXGgY=dV3xNp%Qc7oL_Sr1ulDdoQ1vQBxuJOL{ln;t_EfpID8N^=y5J)U(v1d^*$Zld3EeZR$kS +zEVNc~#4}%B-@O6~pJcy0gYW-p7+GwIkWk8xM&J>VN*kO-eAB2@e$aU3>zMcKoPffc +z`vh4_p>*+&=lcnUYT$nhCJ1zs!+J}ZWlKAo2Vzlo5~JAaF&8Nng%<*6l2-$@ka1oe +zaiW^!%wMjvYcYT-y{r71qBpt4WiM(rFONPwKgQKru3a#Jta^u^@QyV91&J;Ny_vpL +z?K533Th^;HZ^MV1RZaOZeJ5yN$*8nMCNzEvVs0=xT1zrFNf`TXvlTpl&s*-gA3Wf!C0R&;v4 +z3X|pW!GH18`}z4;4OT)Tt|*0EiieG6E{<~J1x^KH-?ef!#E%HekLsDalwVBFK?s$^ +z(oejRWGaqQXGk$hAW467*XUaP2j?dCUXM!yOR*+A(XH`^k_nj?9M1QW3lnLYg=ZPM +zB)`a}_2@Sz&Wt)4@fhwT--L!>4mxQJH)OUMLk+)#zgKlfE26 +zGudZQ-D|WcYWITs|GhN%O$=Xrp+fXlf8ucTGJT~usNh6)wY;8xMnYT8u^30w~Gc!^>qfg|l +z$(ON|UOwe6d7)?8IG&u!gR&L9t8x77{cB^N7)d41oV-<}aGsP`0aIYtcK;kt6g)MZ +zeQx{sAu~^@M4F2G+s2DlefI8^G_r&x$JL55FSAV-QS1bU4nv81eAE#XABYPrs +z=T(_ns!lMz>7u{rNpl_N&mBCW3{T9>i?fM7-v7WZys*VNSV$ru!S;l{uKf1J_>+(1 +z(o~)~5Et|ntkm0HDmsBDmq3A7;Glq^%4IbDy`Ro +zg{R0TTb!wsx6V|W#mF%|@4A_`-EY;j@{<9c=<;`z7=C|`-fNmBpd#lKin=ZkCjQZM +z-T6yC@!-e4?>+X57*?|h-h!=M_S4MBW3-#~{ElB9lkVTAW^yE@(=C;K77$U!8J`zf +z*GJb(DJZ@ib#y*CfPKU#+7)>yw)g4KP&>t})NA9ehS)GC(uMKwSqXG?OY@xpWXPq{ +zF7CYLH%>e8%9c1fvP)TUjIrct*{k@h;b#?z(Ij2<3`hx~?qS!I42Wo@%@DDk!Dr|0 +z4U}?$AFfD*KPt|5sH2IR{C$t;cV$+OXjOtW|iJ(k|{PSHj8k=0_8?-w1B_xOqO +z6k;I3=g}XP*I#e5*JPaWX7bCxid1({qo+LlUuk!s +z^gGXZ`QIVNgvU$tzNL7USlg**OL)aAnsxcRUyBFp(6oJ43dQ1{VCh9`Mb^sFNN7{W +zH}f^v&*HO2_=tZzTB(kMeOsoyl&yg;sos3tnu~iyS*|N1_lDnBYg$`hSxJ6tUjKjoWylBjIY>Q2_44`D12Wy +zFV*t;CK;ok41bnnZgVRvD&%t7x%F~uUHADE%fv0ut^S9MUfbx|dIcz_72KkTg+5D@ +zFeT=ws=k5MYtX5lvC}TBoHX0;#GX_%ACEvHA9&LpbPt_c?qf9z%Ru+Zv3%Ye)QykA +zn68d74pe2i+@qXH#fdx*Ztry|BVT6S0Yo%&wLg9ld$dns$MO4<6E{RL1@ +z$nZbTVN@^b$FnZEP=CI&CXL_r6y7^d%bl4g>|7Qz!iS4%`iAWeufxeomPg2FL&6c8k{oQbZmPw~Y +z3mR2kb`36ZG*Nbd`;@C*Q-hd~nlIjc(QvtAT#aXfOwepP;#-d)v#~asB*!+!IVHb6 +z6K8whJ%+7GoJK=p&W^Ul;l$HB9@5B|FYeGDWlIf*Oxw7_YUlW<{dNsF9-^Pj*}^Cx +z6t4-YvErsNH1QQNKz3m->PC%|Rt_%2Ol*j_5r*p?@cKs0NEp%QkE^Fg2dt~ylQ~~H +z-+_;VLKC@gtt)p+M@{kFU^U5&=QoDl4X~({P+JcQ#8a-#b-#YF_Nh({8QIA6h0Rnv +zwm^{u`H5G9@2@)whFdMj6BtR<`RydrVNb@LqiTM|FKga#CC%1A0^ehq>*B7F@ry#$ +ztVt*LXk+4zmgz|ArqTNHnr5@B6m3M9{r!X58AX$H9nnV;{dWhAy+ZqFt&ZNhoRZXn +zUefYD(HGbMq^9o^8<7FhGxf(MGDZ}1_mbRDn&L;RR#rS;K2Gd-EBOfu#Q78z8L9jg +zvs&cH?s=El*<0pI24mwWgZA)EzAJ&}o0`2hKn2jAp~KPkO{bpwd{VEA1&`^tctuyR +zsXXdcW*pQw7Ne+lw#bYVtSHIqlF521^{YA$D&X79AhDC|d +zlkwV9U(&{OmEqip7sMaWrw&jJB}GQ-&u$aoh_VTTQy&;sb{-GZ9h8ywS{@}DrWOjUS&hlFkUP2T%NVcO!|A6#3pvX;F5K^xSTqOr-ENbTaF5F9*iRSu7#4b0|i!1w)2bQUR*I$}S`WTju%P +z-ATe5^*1!fo@Qf|)8bxsI#nrx%Bah!+HxiGreLG5ull@mBU78$HlD+TSaEtyQaqY* +zDXpKbJVuHda>=m=6=ckmE52#zqJ$c|QI_m=%k)PjK2|)o?Zj1P-ZQLZGN#y@SH3>- +zYKVYe-&w4H<}jHDkwK|0Andd*L8be|k67vF{eaP77l09~vp7SBI8VGHF%0m}ja`xq6(LMi_ +zdFckr7nRM#&+rj5#9@y4O31xJ^JT7^d?ukkIy!t7b>zd&XWt$JH+X`xB2#SELc2Z` +z$hdWhu+NK*mHZux#F&wf5@WSgFs7!l$;cg3!)=;7l}T*ZuSA$gCSR81Ho>Si*Cl&T +zhD&`n9-Szbl*a-^y}e6DrYcb7Vc(w4_(=hF|9rt4FXshv=+Fn6OU_y7uQfI^orR +zRU+c%kj>tX%c9$I%-MT!Wl~KsT7}m!i~BqJD*A~duknAJpD)j-SRpRs@iw&}{}|6d +zn#^Tv0a0C`@p8wF~Bfha1@P1 +zMO~vuoL7OPLBIL4Q7zS*7{$=eck(FYJ{%TkS_?bsVvG3~Oq?Z7&`62nFxfp&f3wEw +z_<8PV65XonIf>q>3*nY2;@n5v33)7$u%1kC@zLm#wk8I+esZLrb*61`3s_huQoi6L;CO})cPPR<#9?YU#b&OWh*>xZ^Q)=(oG +zE^2N0!nu|S(@Sh#$h?Ez;!X=uc6Y}Jjp%8rp$g~MnnhP`OX0BJ$uHQrZ9H(Um)|2| +zaHvOxV~C0;k<3#z3?q7Wl&Kr;zro|oUNM+XkJ+PTuo>l=%Q8Ou>S;vvkZ|?!;Inp* +zCQP!wpE+JL#Ut@I*lM{ej9z8-2u +zF-hML&RQEbcV_fzFV>R$quN|ry&K{>OKG<66Ge{?-TuN%G{&^aj%;&Z7?zk&E`@eo +z>v>s0{vzV&i}UR`yjNOQLU;?=Yp**~Pd?ujD6zpI%N2@13PfS*a#D|+8I8`0Y~`yW +zc(2#xMdZyRY9>b!O08#O^)ar3%8xBvID=v5W9@U +z9>Rj=dqGYlD&7la_@PKBInvC%SK?pS`VAsy4xyJwAE|mEKOR&{_iQV5)8_TfgmW$@ +zu)O(^tPDDfG*2&X(%o}G*)$w)cPza*>|=Z(&~;K^>V3I#$zxdDzd|RG(s{p$C)fN6 +zjc3QP&E3yz9dSAaDvk5j@h2>KgzVx*KiF-(rnyTO9Dh{v{@!P`IxZfYu>cX&lkw?d +zuaNG_`>L(WClne;227%4bD~lx3em=Aw(+D1eN6EVutdSqh8hU8*=!b4j-zl);3^$ES&;O(VA&YFRq0JXRcLP +zJ>5gH_6)K#$|)+(gtMghg$~-84kB +zPQP$iP|dDY`fLfS+1&A=cja}Qt=*!}6OtQzP;Hu{GX~UImQiT^#KT`9d1epzd~Wp= +zE4kyE&{^o1=I}Vgz+XN1)Rkg8Nmg2;d#tv>@kdVT*=vRrI;ZM*1i7nOW4CN%Ag#un +zB<{fOwd$nl6A5=oY;|Uj-mf@uv)4{Jyl-tUL^h$+;O)&_N;APiv8R3->i64JdeEY} +zDtaGa3liKCT_0OY_V9B`=P08#?)ScHiEdYf!&piAf#%fbQym32b{Ww`#ALa0jIEaR +zD=idqzjjKi4%RL`>M?w^E(I62eY=l;+?TiHpPz~)nqb5w6U%bckGO5$a9Chmry#^~ +zh>I;CQK|$Xj<%zq%5k->|`vLRWnImxZ#J$M@fNAqPZ6)Uk})>IdGcQ-wTS` +z8jnlEn~cMudfl~Uugc4rjWpTbF<#j4Lk}ck`k>ks_F|$ +z%c?+m)Kw~mE=^+5gp=+R7k|;nyWi5+=NgJ)hPfEm1jb8a|BE!@B`whSOF-)9pE@YYj94+@v>$?6;eGUR^?3{G^&W@v1Uu;>`u0%6UQu-=Ls5Y+U$q +zPivI`evP=eLDB_naqm|cv*fYVv3+Cx3ygKzsJ40)jGdSKW45c`fV@0; +zzC|KQi2Uy7-3>PU8Bgc?-nWAD=C2Ej*ic)z?U6!{ +z;EO3fo^;+56NF#p+EHCXkA<-5MD*NfZ4^&sRQS9uWSz>r%`QPgNQxs+Zc4XO)$8>& +z&_3$KnB;w%Qxuu}J2&lVr3u2!V)4md;FrXI^;9sacPjVK36pG?@Gg7rWXEO4rK_6X +z<919i+%58XicdPF4!WZ>?Z6hDye8hw_kp4sB&9sYSLh?`cx0*CYqZslcAgQ*-MQ&q +zWUu5_;Lfop;5L)n;m1<=WlTnAbi3qP`Ru4%trD{>+UTpj{xjEr=8CX-Sy{hlr!bBy +zDvA#Zm-|--hfl*p&y1VQG5ObRmm5@i4YsgcG*446r^u4V=C# +z)FXO|PJ_Uk#9VOV(#Zw~vlO4#!FW<6xH{1VeGYj3@&w6ys9k;&G>)e%&XL4RM;+%F +z*e!7)*K^|S&hn*2YExIE$u{R=$9FP&*F?v18ih&;LbJNRLWS*D!M5YJJ!IFFr9Uw3 +zmo$18zByw0A`b#OO5?{xKQ1G`!E|o*hE+BvaBHznvJ!rByTsNoZok%MEl_BLJeOfD +zc6mZ#SdmR_XxBzHI^wI-xl_@jM@#VWA6!zF+qG$V!-ssE@?$TQ$ +zk2aMDa=iMAXpc~iVb+4E^%#o7Oj`|;f08mS=IA%iMusew$B``PSPSJDi|P`b8so)XKI6@N%FkG7Vlg+k$367;PhE&g +zMbZgAQo^F6tV_^dD&eQSl3Y4FW|zM)TPQviO^wD=*MAbD@i`rvy!W^}naNyuH`f%= +zAT6>T-t>goxJY^;tUnXdT2j_CAzE_9#Y=84C5N4=sD=CotcR7gsnhE3_!apoziR6o+NaA;}So +z>!M2R^eip^+KJJ}ZN@U3*(=m$y*EeG_K4Fl&1wws!(+UM+LSfW3u5@{9`N9q@QaOc +zRnPO$5%W**I*L6}p`MQ>CDSJfU(fYFONtq{f=ybG;ZofTD@6e1$MZ6VT6ZA76G}*n +z%XWoD+-9TH6zA>y0p(=1#f!43VO-~;&-|EhGEUp*t%fGPM7M^~ +zJ@irM*EG^7FN|%7X!Y;|1H2cM)hKM`fcRW5Tj(j3UK}ivDBuM+>-%|=r9VN@o`qjsb!4_h=v9nb4_GxkMdF1HzFdIkoUoT}=fLEpx! +ze)ljvU`?3MR2D>ho@M2-XdB*gEV22nYa3bup2$i)>3labeHPxT;0GPYs!zQy(SE)o +z_~pqS70&MC#JkNHD(CQY>FYP_Pw7EMY +z-W)F!m?Yn~fV&=k5jUjuwBuRkGw`l{qj{E>$&aK<%6~1UuB)00#2x*V#k#757FFW|D +zuEgkE?Oln)rMlDcm%HG5{ueo4UnHzmB0^yhJo1D`FOZZd6IUio#^%Epp(S-aITie& +z;x&9M!On@5UTVTCM&98S_`D}Dx-Q{=Xr`j!K($rCPKc>Xak}$V<%!*-E=T=h`hu2i +zsye>c?dx-6{H_yM=?!1b+(kb>TP)V%l*ice;A11xcCt*~BV}g4YXaJ;QPByt&sG-) +zUJzetO&E(xD*glwRdDHEm(5VYJVkJ#&0dLkj6{=VJVK(2mOAzt_;0EOW!2tAh}C*eBaZ_+H>~;`}GB!y10n1~;_4 +zQx)k{o3GgVTcU6VAG_bx4fkDwD1MQ5+^f_d8l61&!;^;488pcG2X5VsuBE1XfA6l? +zo|#hdsq<(x4<1UHyWbcZ3Rb;{v?!P$>WteOMip_FNeOefdrf>XBILpeQojKIlo7RE +z<>!j}4s#vl^4)a8x2M?Gmqr3_=$5WrUM4iIzp-;$Bc*S(n5!ncPS!}Gd@iV|>WJoJ +zl$abM^;fy#75$Ca5pSD(#v-#K>p4B&n~SB;K7iC;{!vwr8bR +zX~ttkvvtpNwb?!RR;d}{tc)LxbdX1v&?Goi8$yZ9t|d0i591Z&3E$bQV^uDrEDQBY +z{_KKstIY*&xhAz`wwsf&hPQB?Y>!~?4(QExc||7%WzTix_*OW6;+D9D)qUdG{YyMt +zB%!_e9;ZC^W|Nc~6rCYv;+%EiOf} +zYD{Xik76NRKDVTih!c;@tHFv%`sB0eBQ{w!yel`(;xQkWDN25y@mAi4S(k`a>n3$q +z!ts)lAWJ(U5+mPudVLlt`9}mHdZ^JPm|gl@C&y@BMQuRN%-v|CkFcf86-drfie~HI +z$;e<%@}NQEInJCMG^JRJM?mhItN$WJLr*Kh?qe&$1ME)_Q~*icG8?lVSxvzL<_hlWUDhf+#Vo4NLsRM2yBJX7vv4^(7W +zEK_)GqP{#*U-8Jazr@7JhOv#UJ6HQtMPvh0M!5_J-7bkBmraiwogTd(YxowvydtNr +zeOgE0i@2ZI+>J?Ajkbc$@gQ@0F?5E9B43o@Y*0l-MR~uj+6#d%BM3Om;HfQb*rza! +z92Go&@eQ#mSCGTRo=$PDJ}KSmy&%ymwWO&h+fQ)t@tox3zCkU+DDG27HSk1QZ~a*~ +zk|jxDLU|-tbVJe8@eQ9AW}AuR(!vw{mUDE?PrRB{K2K+Q#d~h{C1AwJ;_F?&zKtWO +z_$iF5bT0h;g@6^8vYyY0r-DQ&)Ft#4ZH15L +zcI5J%lj#2FgY@vH7%Zm5X(dQfG;;MYBZOBl;IB;75#`o>VnmH1wB&?8GtygfjX0c2 +zC_J=TUhjn+Itxpq{0w$k+xFI$i^!2$lL8uMezMad9mf(m)5rSzglAR=G5pDhCyCtHx3BJ +z_v$qEZ?p&ysm9cPj3wUP%^ZRyWAsowL#JvhXJh)}PGUkZ+UL`&IxlVT&wrhvGf?t+ +z$9wxlVdT?CM;C71v%5qsk%~lUm7_S@IN78r1|K1`XV}vD1 +zazJ(3Dex3y>g-ftBSz616!M~ii=z=#qBVZIB%B5>y~yLwmYq|g;yZ13vx8G9%iZ?K +z`SOgdqx4rh@+l26$&Ny5Ecu4{kM(k~rcX)BPF_NjyRVgMM=Pd=!xM~>nR}g*DcN-0 +zGlqk_UOsR+aE)T=tg@~KfkKxf-U1iRyURg#&1e`;{pg&rMM>PM&E3uxGMuQ^Z(e8^dwpx`O{~pSbG(TX(>mJCz3xBz}L;v)^6lY(}@eo&2JMOb+SB@k<6?>nVU +zK`NJ}-KA0X-eC!=3v^hDW$Q;UKYN6a+({PdpKleCe3jMzNjYwZbYH@EVNU_=nzxOx2-d$Wny&lPhlK+B2`JG-U +zURuz5E;_o)M|!sD+RBuUm+^}FQTwRMAsy#=dOLpOY*WlwHi +z^yz0i(y*5ka`5inV7*b3^YYVx*USgK8xQLz-Z{X4ty%FZQI0 +zb}4Od(pn5|sJ*>^|5%K9nv@uUmvJQPZFhH(s)~)+Z1~={W3is%6-!gp>7y%@P5v5o +zw!Isk4ot+FN^dW3(=O_VnY~IDYo^XdVnK3RpGBds)Af9e=j$h4FMYw!@qOk*oZLnF +z+WC#VX)jM+TvJBF0?uUV*i=U9mJ>u?A}46{DcadC$IwB0Lx0w4QWM=u-lPs-mS54G)vO(ijaPb#=XGouV;!5y(=I=Jmiu%B +zOW1V{-0?zn70W95UTjy#X``4;&a)KMog|F6L&FnT+16PJWb8v4l6H^FlL)O0RGmR4 +z5fAuazWP>S(0RoDdf!WJeen$cwR2}9b#vA}p3f~?#NJuW88IC!E0|kSatrUWG+r*h +zJtQ~3)sm{mA-`wT;nkYQ^`uEwSJ&%y;X4u=#S52YJmI;2>1GT=^YxyisEI)XMyPDM5-|yN{!^)?4Iul2|<2kI~$M1|`?>UvNJ?ETs&p|qXc%X1mW2ICi +zf^B{*PE=fjIV?ThWAXUq$6Ab0coDbg`x~*AC@tu7UdCHYWEP_xl^DQe5SA~LH`eJ# +zOZcd>e#>v(3?(pMV#Ng0&PV0CxTrn>JIUUpYr5y8T$rV3_gSdz`8;=H!S%tQ=EFa~I79CA^cw^cOlQWO0)7t1-AREebCEU=j(@AB8+ieWI +zJ}%m9e=R9hK@07QeOuJ(sdB+f;qB}Og?`u0d*Y0gjRn*!DKd5s2K%L|;8t#7ap)SP +zv69jb=Z%-Q2$Gnh-;%e~atq6zU!u3-TL~(PJiqNwP7#DU*IX^V66T_38s8|{T#NpB +zJcO-`);6I6EjWbFu~Ru!z}n~o1H0BT4h0<^#^l|(uNNJA&_)SA^|!SpOP9KQ-aFcb +zL|^FEai*&07md5nH7mXg# +zZjBLra`#KOFmeNDSk4 +z_EEXC<4s<~fpiize7tY$7rt0LxXPmSHsMZ{mpoHs2z44}HHO9)2d?5_{N>B8JI)c$ +zYPcuPqm~zI9eLeGLRo0~1(R1)=xppHe79klA=c*2eX0Z{h$}!OpE11j!@1!y=xkcv +zY;{_ZX;Oc^@NFN_?%*X9hP3#E;>qdZ&h6{BY +z!byy1qD7{()#PU#++%h^BL4U98N9kwhC=$9>?qt3*{Qpa*nKdn4^I?^0!3FoVxP`v +z6rV^aPVoI;hwR3)LMg|6|CHfdib!t!NeYj(=D7{u>u#G4!&jv2m5v_uSf_u-`+}sB +zgfTYW#r!o=&DO=O!8rm1!W(l~SR- +za2)=Yw1kl5~FI6`vY`8y_RLuzSwG2+%a}h@YCW=pPv9 +zjz=ZkRI|t5yY#Lu7CV1}?^$!cp1OLP#XzEg$T(`FLBKd$607?nW$ErFceeLXS93wp +zSUGhJU0>wQv8!pm{>W5YS{KPe`Qp9^8=ooU{=!eB@*%IEDAU(xIgZ#D4~6ZV9{wqd +zyog;jiqIlDx6PH=yCj0PGa(#%LWU|LzfKI%h +z-JkWD|I8k>b(w$llQ5dj(PZ&ilO{2aPmUt;MeofrEooiGZtB%|T>63~Rdl^fj(~zf +zG`{efHPOx1-kMKtWSa0I#y;}+HC{_x>)w3t%G>K1-h$2xgN-R~eI*~OH1kBg-7Z*b +z{eVkLr6VYF`V-9s+s4n6XU?p~Df1&gecfm-7aO8z=#hR$@cIraKH1XF8NsR{$p^Q5 +z&$f842r6bT;2Ye|OA37?Ja0K$O#d>J5@Ur#M%x;rpw@%M{+JZWWBoXPyk2&XOIZqL +zt@*aS8gDo6Sl3RnQe1Dkn@IFB8O=ywQuyIkKL2$U(|IZtVzSET)>PIv2h!8UBP3~k +z1&@g04XP#3ovh|{bn7Zt3b?2A0E_cM#pO8;j@BeBN>|HQkqhaTm$K^&(~G2gBlh46 +z)8YdP*Q)nx;i809C!T!DsdUI25I4+tRQ|?TXWb>}Wj5F4Sn-_U2)SaYtIRjHnetUV +z@{078LMs)Vx4yN}1EdyiT;aTeVqB>am6Mkl2OY^*iB40#lx7WlQ(ulsoB+?V+0(2{ +zop0@0#IIe$t`B!?Yxg+zd>}{qe9Se1iP4AiT_NW%t|-6uY~mWrRO+)d51{GGJ+iy} +zyh6jlD)9CDtFd=FqEBGm2~p?Xq*t64-tF@`#?`^uKk(cXCrV@>NMtg#c|48N)XU*^ +zLSrT4;N@Gc;z3MS$BRrZVm`Zk+1@NKB3#s^u^->uO%vtW`RWw(zBp^>++-~0n;nlA +z7mcB^oS6qmdev#e!&jP2vR5mMJSixxPj4IQhC#0!n+L9>4Q0{kp`WDTb#GDec_zKu +zFLruE_zUh?k4zuyL1ph)l2Z~Gw0T=Ly9~9=&+`}4EsVY{v$CG9aQHk(J+du#|K-L?{Ge?_8y-y&V8bJn#-X=aWBE7!)h +z-t)$I>wxZ7yXgCgcjgRVnDKpT6ERBIdYz7PFU%)jd5=Q0w_Rn-J15Gu$TM$eg_3Mr +zK^lCvr(En3+TgB11?5+U(&x_h>_TBI=(s+CJH_{Pn6>5}_YhAli+(6r9pa>XxoX1t +zbgF#;vyFg~`kp-A^@XSP4`upl@846(B3z8y+bxZz<$7uK_yN+@t8O2H6hG*_AYUqq +zXj_^!veG{PHJsV;Eya}&-g^_zJ3)TuxE6<8KUz1fZ +z2=PFw;)!{uefDnBQU@TUCxIi7B{sg^eNWnHd^W7ZTp`**DfK1K!*tivQWoUa*R98| +zR1LMP^|*&$i;eX`t}Q4#=YG5Rjnbg2pr*mvWX+x+1^&Mv(F*BZTctVj;1MH7Z-7j! +z*p(ula^XAaM^0~@!=B}*gO+DF4TvRdwnvn%H12R0-@ZW4elgUNJG@+9K4IPQZ8)jW +z{P`?QuYk9flBbU2eQ?vY=g4ui7MsU--^^@UZ{FF?sTM+tiDoM4-&p0Li@nt4yqYwk +zTOIe2y#oGr-=_O5I;?opyr++?f*Fy>$fn6M6{pwyXRo_pd-hN@G_~VLka5d6I=pxt +z>ZH}+s8hb`{e0%Q^yXCTQ=Z&vMM)Kb!QqR}F9VulMkFg7Zwa!UL2hdkK&4o6K6m5@ +zZP%;H0OTb`JG;(?wxOCb5xZ19nKStc;%#|WkN?A +zO5=J5MlBZJzGm0as@p;54Ci<39D}cpogNB!bDgBXT?jPi1Z34y1$n0>od=u-Z;-b$ +zRWz26wY>=?aggq>K)vq1LGtDjZn-zHnZwYso=Y*=vA;?pBjc0-*Y!A|e@H8gbPONyY+~|CzQfMp}w(N@O91D*P$> +zW4z4!EQz^5j`gaqf}%%G1uY6a6c9iJBrqdEN9D*`aU$@^1>pY(AYGJFl+2Yd@?nPk +zT(C8QE%N@qU0}~o4E(oCXm@w_|D*-j|4-oG+lAIQx1h?d5omtp%RyQHU%(GAcF)X1 +zw_kQcMk&vsiBAjvXYd2;t%Hlu&5B+~=UxsJ-q-`}9BS*|mp|h9d-qTJ2O`bp<|YLH +zeHLnIc@H%-G{Uw4YHMwS;E!BE@Ly*4+bbgOU%9<7cD;)Okc!K&awNDnX} +z(j)L8p1*ey;XiYCc6Ro$-U$hX;J+9{@SmI@26`rlj+WuT!he3+f5*qm4{2-ZLhzsb +zpw75S_)n2gW@Z+&0k^&TcLyOWflSC4#(kN=4ASJUhnkya4)TYntA7Xo$jAt! +zu6Fq!!+khUpv~zTK7rIvy@d?u9zmBGRUti^YA7OO +zO{WQ&(xpR|maWjz>e@G0|4#WM@(BM~8)9K*`++aO&&0?AS(smes$Nw=8yg!xEh_|1 +z;BIYgLGT|lA^5N3`!oUe3nK228fzVNg)tS9V~~an=@TIJv+Yn*?cBjw|9v|~U_;c! +z;pfBrN=i!iF@9gx;2Hi49Msj-^_Q3r(>v_%?dyk>r4t}E=6cA2Asv!uP=NFqqTn&7 +z87VI_%;=v%_N+m0n-PZ$7=0mau6K~NRSzU8 +zD)j^3z`&q=o(P->7lHTt=bjHe5Ca3#H*`Qh%gxREkFXDPeunfp>mgJ69LVdm4UAnB +zy2<7WX))A6*RS+J3!lG0HPtmg^fyo+!^6Wrw4-0)x3awU4R%oeHa2$u5%%S!b;yG6 +zHFS;X5#+*Q31b(7Tsd7KBZf+Ne(i&%Kd&Cp_xB6B6N#01~TTTfn59sq1ojx-_QnYlXHT? +z-{b+b-Ij=H-`%`yh-~;p|J{Y=cXacElT0mM< +zuOO9kLr_-f@GsY-iHVQC!4Ggee3TL^i4X@4<;ri|0Dceon6pX3ronw +z))Fd6u7@H$Mxn0$Prs!J>VTb%^BXK$n%ciD|GBxjANmgb$I{>OL6pJI-1YT!C<&e? +zz&dq){uA^(FAW+V{P}w3XX&q5UH=9@n0LUqez?3rI>d7|-1iT+8{m(MivG9pPfSce +zU_XPv_9yELL|ouLNqh1Gp5~_J1H6d12>g#8CH)W|%;AW5|I;pLci)#M{I}R&;{Sf! +z0(*=;c#ZNujT^ylVPWBiu_P=k{FnG|ySjaoUodCQ&;R$H6G8WX$_4F>gZ=b3nBZ@T +z{(v8W2jB;o58K6sMd;r(2)h5S`&0bhzsB$B>GchE(0&F62LE07|8cupTwH`08JNE* +zf3Oxp^w;mpB`z-h8~mW})YR1eui@|Q?fpSE@Hpl1FY$xD3c!50{lvz`{jcGFmX-ZY +z+3%MpJjR1^2X*j$`NQ82`~km#zTy8Gemgt+Z}5Y1ot^#HI_ziox3{K +z;YvFx-h3xB_#J)_rmLg(O&x&x##B0rQpkm-Go +z_wY0De{Tl|hagT4t{-R#oIMA9`0(M6^6;m)K|HW;1+r{V?}sgr$AA1d{!QBf@&5`x +zh?51&gh9Cl-j$gT8gRj1c}icS64@=fm{=6hAm$ak=GsKp%k};etJ?hr8$g +z*am1GHi!8k{2o@PRIaGU7v?%wY!Z(w=zGgyZ01FwDM#;fgm{O* +zhj{*-J2f>0UB7l?e_j4F?1$g|DRxliH*Z+OXO!Q{r~VZGVZ5OI9)A9nzon%GGKbGC +z5Pk13ZiN4@@B_K#)hm`zYisK_WsWG%zk?qU_pk7O-# +z4$gcLG9U!c-?`t@Km7bV{QoY^!}NjwcXa-Vu*3X*mY<*TIGpCM{69{Z)JUr^64o>3^E`@92H{vJOR6cS2=dLw_`v{EpV& +z4O>{)gzTTRLsv6up--@`*3Z%-=767tfp=gY&B(}vZaKT`kM%%q0IZI-9(4P*8wAet +zKYjYw`2~U&aQnNKAuFXuNRcN6DlMA$DQ`d@VZP_z(%b@>nOXeN+5pT|VD1FtJ)qOs +zw+z_|r$frLE|8thyZx~f@cEtxg8$+7;7r2a-tl04h?u|s)OB`=hqT$6Ap<58NROik +z8XQ?dWbrTg4-E~$`=$%u@CNg)lA`kdIK`&r^j_BySkeaH-L3|!A +zIY^bM3Nm4~gtTaqpp-|$KjnEizld@H>u{jQgUBb~tFLDOwYRk&;Qy5eoDu72xI?P! +zuOLGvCrFJZ8d5r+4vma_t0#4s?_vM)@-i$Vkv!lH))kLaQund{iYMYdpi`7F4e2mf +zLHdj?kQ$voq{LkYah~SeU&DV{{dv1T%-`AR)&XzOmVmCzpBO+R!T%#lVgT=lUW3pThBW9Zs}^Lz;sP07YJ&!b +zmiP6204-3LU_E?T)^s@Ezz@#l5Ooe@O<%!?W%*B_g-sJPxFCp?578?Eoe@j?50uc_*JN{{t +zp8oWJKG4xZWWw(3kzEjft_@0sWNZlppwmxdqWj!8irZ +z=>I7L3_P>J90uWe%3(^DqqQ7ev;PY_}bjYpC5I6@ZDk#J2QI!Lou)}eHpN*9r +zN=;2W$oF6IN95@+7I3a&1nYMJp5N2|)ia1|Vr&ZQ7z}*F`%n2Ja3EZeuA`#^0_!(W +zuRwp{d)|QOc@Z(l)5GhRcL)&lfO|NPf7cK0TmW6?lH!tm`}S@9fezl^rS-oZ9~KY% +zuNokyAb~BoQ}$PK3eboCF$>?F`n0kJZT;7}?RWKn=(`}!VgK*a)Q!wTwz+lC2CNtV +zyLgB&uU&xB@f^?aKAs6FnXcsOc1U`g|pbyHSu&@XMdf$k?2=)(PJOcX|aF(E= +ztafl00K}0z>ksMDM?ywt9z!D||5~df=ptMMeXs@u>kxpKhnsg_Rt)sczBgdslJGDQ +zy1?fH>x#!f8uZanu;+{4)>Bng^?@uyMOhUBWrQ#Q$6>R+wgcUBm(nc_sf?x2<%@#et~RedHLHt$zl5IU$!An?N-PV-Y@Dgc|k#L0|zn$FqQ#b +zk;AlsKOrG;pElSV10DWf8L%ID8q@$?VYvofVfTYV-233Rz5}1}4IRuWpp3t#f9az9 +zK7DX*gD{6NBmDE9=AhdS*3fO;BB-cvcE7w4@j=@K`3G&`aDM?hI*7Ic+BL!;Xo6?p +z2l)p2oKq8H(E5Mfp+dw3E+~7@ERSO{*w^2N&zbMvkNF`z7-PVBE8q{>@7mgr +zeGt(4nF0DmnwPcq(}FvVKz@nf3tUh>z=CxmqJFfsbbhJ}`#pX@>+l}A06t4QO#3i> +zz#|Yo#|PyEEYK}UgLS6CeHla=1b)zt!5u##p?{58AU-&g2Q(0If98U4Ag2IhK7tRJ +zM|5F*q+7RK_H`5VVVMHBBLVUXEQtHy!NUXEhx7O|9^f6&l{Pf^muvvR2e=5D2-nES +z1itgt{SD?np^xATWUh(u*b3UMo~}M@4Pe=`1C*Hf2paycJ1&U0zjF_l8}R?i{*K1a +z!rFs3|(b>M*>JhK2i$p$huh#8zOz5H2cTQ{@L?L{sZ#)Xn*1p51MMEjML}BvvM;dq +z0=iP*+`YW49Da8dQecgQG+{e3{NHm70=L6|ol78ODTw|A+^NwG$U!C_(&4xZ@pE3@ +zU(X@Z0T-MbfOhNW>wh@ezJGlUPAeJ@S@H!#byf2axIYczBF_^BQ-klTQJy&%pb`2NY^w7?I> +z1#pK3tYN?y>Ez_Re`g%%k%RFQ=;whja6cHt2j+Vk;2Fr)!9Cr>asnV@zhZH9KMaxP +dSLqSqpbvsEa2U40k9hyRi-eR7k3;{y{eP|a0Z9M= + +literal 0 +HcmV?d00001 + +diff --git a/qpid/cpp/src/windows/resources/template-resource.rc b/qpid/cpp/src/windows/resources/template-resource.rc +new file mode 100644 +index 0000000..725d1c9 +--- /dev/null ++++ b/qpid/cpp/src/windows/resources/template-resource.rc +@@ -0,0 +1,122 @@ ++// ++// Licensed to the Apache Software Foundation (ASF) under one ++// or more contributor license agreements. See the NOTICE file ++// distributed with this work for additional information ++// regarding copyright ownership. The ASF licenses this file ++// to you under the Apache License, Version 2.0 (the ++// "License"); you may not use this file except in compliance ++// with the License. You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++// ++ ++#include "version-resource.h" ++ ++#define APSTUDIO_READONLY_SYMBOLS ++///////////////////////////////////////////////////////////////////////////// ++// ++// Generated from the TEXTINCLUDE 2 resource. ++// ++#include "afxres.h" ++ ++///////////////////////////////////////////////////////////////////////////// ++#undef APSTUDIO_READONLY_SYMBOLS ++ ++///////////////////////////////////////////////////////////////////////////// ++// English (U.S.) resources ++ ++#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) ++#ifdef _WIN32 ++LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US ++#pragma code_page(1252) ++#endif //_WIN32 ++ ++#ifdef APSTUDIO_INVOKED ++///////////////////////////////////////////////////////////////////////////// ++// ++// TEXTINCLUDE ++// ++ ++1 TEXTINCLUDE ++BEGIN ++ "version-resource.h\0" ++END ++ ++2 TEXTINCLUDE ++BEGIN ++ "#include ""afxres.h""\r\n" ++ "\0" ++END ++ ++3 TEXTINCLUDE ++BEGIN ++ "\r\n" ++ "\0" ++END ++ ++#endif // APSTUDIO_INVOKED ++ ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++// Version ++// ++ ++VS_VERSION_INFO VERSIONINFO ++ FILEVERSION ${winverFileVersionBinary} ++ PRODUCTVERSION ${winverProductVersionBinary} ++ FILEFLAGSMASK 0x17L ++#ifdef _DEBUG ++ FILEFLAGS 0x1L ++#else ++ FILEFLAGS 0x0L ++#endif ++ FILEOS 0x4L ++ FILETYPE 0x2L ++ FILESUBTYPE 0x0L ++BEGIN ++ BLOCK "StringFileInfo" ++ BEGIN ++ BLOCK "040904b0" ++ BEGIN ++ VALUE "FileDescription", "${winverFileDescription}" ++ VALUE "FileVersion", "${winverFileVersionString}" ++ VALUE "LegalCopyright", "${winverLegalCopyright}" ++ VALUE "InternalName", "${winverInternalName}" ++ VALUE "OriginalFilename", "${winverOriginalFilename}" ++ VALUE "ProductName", "${winverProductName}" ++ VALUE "ProductVersion", "${winverProductVersionString}" ++ END ++ END ++ BLOCK "VarFileInfo" ++ BEGIN ++ VALUE "Translation", 0x409, 1200 ++ END ++END ++ ++// Icon with lowest ID value placed first to ensure application icon ++// remains consistent on all systems. ++IDI_ICON1 ICON "qpid-icon.ico" ++ ++#endif // English (U.S.) resources ++///////////////////////////////////////////////////////////////////////////// ++ ++ ++ ++#ifndef APSTUDIO_INVOKED ++///////////////////////////////////////////////////////////////////////////// ++// ++// Generated from the TEXTINCLUDE 3 resource. ++// ++ ++ ++///////////////////////////////////////////////////////////////////////////// ++#endif // not APSTUDIO_INVOKED ++ +diff --git a/qpid/cpp/src/windows/resources/version-resource.h b/qpid/cpp/src/windows/resources/version-resource.h +new file mode 100644 +index 0000000..bf942ab +--- /dev/null ++++ b/qpid/cpp/src/windows/resources/version-resource.h +@@ -0,0 +1,35 @@ ++// ++// Licensed to the Apache Software Foundation (ASF) under one ++// or more contributor license agreements. See the NOTICE file ++// distributed with this work for additional information ++// regarding copyright ownership. The ASF licenses this file ++// to you under the Apache License, Version 2.0 (the ++// "License"); you may not use this file except in compliance ++// with the License. You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++// ++ ++//{{NO_DEPENDENCIES}} ++// Microsoft Visual C++ generated include file. ++// Preserved for common usage by any Qpid exe/dll. ++ ++#define IDI_ICON1 101 ++ ++// Next default values for new objects ++// ++#ifdef APSTUDIO_INVOKED ++#ifndef APSTUDIO_READONLY_SYMBOLS ++#define _APS_NEXT_RESOURCE_VALUE 104 ++#define _APS_NEXT_COMMAND_VALUE 40001 ++#define _APS_NEXT_CONTROL_VALUE 1001 ++#define _APS_NEXT_SYMED_VALUE 101 ++#endif ++#endif +-- +1.5.5.6 + +From e3a27bd87254d6533ff485e373831e07e4f872c2 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 13 Jul 2010 15:22:30 +0000 +Subject: [PATCH] Windows .NET Support + +QPID-2728 - Patch from Chuck Rolke +Fix recent changes to CMake build to properly handle separate source/build directories + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@963759 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit d68827e2b28356042e582250c840189e339e5076) +--- + qpid/cpp/src/CMakeLists.txt | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index 4a6dfbc..8411365 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -108,7 +108,7 @@ MACRO (add_msvc_version_full verProject verProjectType verProjectFileExt verFN1 + set ("winverOriginalFilename" "${winver_${verProject}_OriginalFilename}") + set ("winverProductName" "${winver_${verProject}_ProductName}") + +- configure_file(windows/resources/template-resource.rc ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/windows/resources/template-resource.rc + windows/resources/${verProject}-resource.rc) + set (${verProject}_SOURCES + ${${verProject}_SOURCES} +@@ -437,6 +437,7 @@ if (MSVC) + set(Boost_FILESYSTEM_LIBRARY "") + set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY "") + set(Boost_REGEX_LIBRARY "") ++ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/windows/resources ) + endif (MSVC) + + include_directories( ${Boost_INCLUDE_DIR} ) +-- +1.5.5.6 + +From d1cebff952de51923060c9147104e97923cd80cd Mon Sep 17 00:00:00 2001 +From: Stephen D. Huston +Date: Wed, 14 Jul 2010 11:49:10 +0000 +Subject: [PATCH] Windows .NET Support + +Specify paths for the generated resource file so it gets picked up correctly when generating projects. Fixes QPID-2728. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@964013 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 7c202b3645fc789ad03141826566d24c4af19099) +--- + qpid/cpp/src/CMakeLists.txt | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index 8411365..9000b66 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -109,10 +109,10 @@ MACRO (add_msvc_version_full verProject verProjectType verProjectFileExt verFN1 + set ("winverProductName" "${winver_${verProject}_ProductName}") + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/windows/resources/template-resource.rc +- windows/resources/${verProject}-resource.rc) ++ ${CMAKE_CURRENT_BINARY_DIR}/windows/resources/${verProject}-resource.rc) + set (${verProject}_SOURCES + ${${verProject}_SOURCES} +- windows/resources/${verProject}-resource.rc ++ ${CMAKE_CURRENT_BINARY_DIR}/windows/resources/${verProject}-resource.rc + ) + endif (MSVC) + ENDMACRO (add_msvc_version_full) +-- +1.5.5.6 + +From 0e2870b1d18706721055ddf73fc4e7a6b84cf674 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 14 Jul 2010 19:47:37 +0000 +Subject: [PATCH] BZ-614344 default ports for reconnect_urls + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@964151 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 1e1055a..9b34a46 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -31,7 +31,7 @@ from qpid.messaging.exceptions import * + from qpid.messaging.message import get_codec, Disposition, Message + from qpid.ops import * + from qpid.selector import Selector +-from qpid.util import URL ++from qpid.util import URL, default + from qpid.validator import And, Context, List, Map, Types, Values + from threading import Condition, Thread + +@@ -347,8 +347,8 @@ class Driver: + + def _next_host(self): + urls = [URL(u) for u in self.connection.reconnect_urls] +- hosts = [(self.connection.host, self.connection.port)] + \ +- [(u.host, u.port) for u in urls] ++ hosts = [(self.connection.host, default(self.connection.port, 5672))] + \ ++ [(u.host, default(u.port, 5672)) for u in urls] + if self._host >= len(hosts): + self._host = 0 + result = hosts[self._host] +-- +1.5.5.6 + +From 82b9d0186f629f13c2ae02eefc628d80bce7a95f Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 14 Jul 2010 16:53:20 -0400 +Subject: [PATCH] Move libqpidtypes to the front of the libraries list. + +Was causing failure of make install "can't find -lqpidtypes". +--- + qpid/cpp/src/Makefile.am | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 52bdf98..2ab95f0 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -185,7 +185,7 @@ libqpidcommon_la_SOURCES += $(poller) $(systeminfo) + posix_broker_src = \ + qpid/broker/posix/BrokerDefaults.cpp + +-lib_LTLIBRARIES = libqpidcommon.la libqpidbroker.la libqpidclient.la libqpidmessaging.la libqpidtypes.la ++lib_LTLIBRARIES = libqpidtypes.la libqpidcommon.la libqpidbroker.la libqpidclient.la libqpidmessaging.la + + # Definitions for client and daemon plugins + PLUGINLDFLAGS=-no-undefined -module -avoid-version +@@ -711,7 +711,7 @@ libqpidclient_la_SOURCES = \ + QPIDCLIENT_VERSION_INFO = 2:0:0 + libqpidclient_la_LDFLAGS = -version-info $(QPIDCLIENT_VERSION_INFO) + +-libqpidtypes_la_libadd=-luuid ++libqpidtypes_la_LIBADD=-luuid + libqpidtypes_la_SOURCES= \ + qpid/types/Exception.cpp \ + qpid/types/Uuid.cpp \ +-- +1.5.5.6 + +From 13f2be428d4cc93b36689dcd81226d6d9aeea797 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 14 Jul 2010 21:33:09 +0000 +Subject: [PATCH] Bug 613753 - Unexpected close of client connections when reproducing bug 612458 + +Fix read-credit bug causing cluster brokers to disconnect clients sporadically. + +Also added connection identifier in connection log messages. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@964213 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 1a630dfdb95d2fe4bba7aedde6fb162a3f1af40e) +--- + qpid/cpp/src/qpid/client/ConnectionImpl.cpp | 25 ++++++++++++++++++------- + qpid/cpp/src/qpid/client/ConnectionImpl.h | 4 +++- + qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp | 8 ++++++-- + 3 files changed, 27 insertions(+), 10 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +index 397bd4e..44819a8 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +@@ -236,7 +236,7 @@ void ConnectionImpl::incoming(framing::AMQFrame& frame) + s = sessions[frame.getChannel()].lock(); + } + if (!s) { +- QPID_LOG(info, "Dropping frame received on invalid channel: " << frame); ++ QPID_LOG(info, *this << " dropping frame received on invalid channel: " << frame); + } else { + s->in(frame); + } +@@ -252,7 +252,6 @@ void ConnectionImpl::open() + const std::string& protocol = handler.protocol; + const std::string& host = handler.host; + int port = handler.port; +- QPID_LOG(info, "Connecting to " << protocol << ":" << host << ":" << port); + + theIO().add(); + connector.reset(Connector::create(protocol, theIO().poller(), version, handler, this)); +@@ -267,6 +266,7 @@ void ConnectionImpl::open() + throw; + } + connector->init(); ++ QPID_LOG(info, *this << " connected to " << protocol << ":" << host << ":" << port); + + // Enable heartbeat if requested + uint16_t heartbeat = static_cast(handler).heartbeat; +@@ -291,10 +291,10 @@ void ConnectionImpl::open() + //enable security layer if one has been negotiated: + std::auto_ptr securityLayer = handler.getSecurityLayer(); + if (securityLayer.get()) { +- QPID_LOG(debug, "Activating security layer"); ++ QPID_LOG(debug, *this << " activating security layer"); + connector->activateSecurityLayer(securityLayer); + } else { +- QPID_LOG(debug, "No security layer in place"); ++ QPID_LOG(debug, *this << " no security layer in place"); + } + } + +@@ -401,17 +401,20 @@ void ConnectionImpl::failedConnection() { + bool isClosing = handler.isClosing(); + bool isOpen = handler.isOpen(); + ++ std::ostringstream msg; ++ msg << *this << " closed"; ++ + // FIXME aconway 2008-06-06: exception use, amqp0-10 does not seem to have + // an appropriate close-code. connection-forced is not right. +- handler.fail(CONN_CLOSED);//ensure connection is marked as failed before notifying sessions ++ handler.fail(msg.str());//ensure connection is marked as failed before notifying sessions + + // At this point if the object isn't open and isn't closing it must have failed to open + // so we can't do the rest of the cleanup + if (!isClosing && !isOpen) return; + + Mutex::ScopedLock l(lock); +- closeInternal(boost::bind(&SessionImpl::connectionBroke, _1, CONN_CLOSED)); +- setException(new TransportFailure(CONN_CLOSED)); ++ closeInternal(boost::bind(&SessionImpl::connectionBroke, _1, msg.str())); ++ setException(new TransportFailure(msg.str())); + } + + void ConnectionImpl::erase(uint16_t ch) { +@@ -435,4 +438,12 @@ boost::shared_ptr ConnectionImpl::newSession(const std::string& na + return simpl; + } + ++std::ostream& operator<<(std::ostream& o, const ConnectionImpl& c) { ++ if (c.connector) ++ return o << "Connection " << c.connector->getIdentifier(); ++ else ++ return o << "Connection "; ++} ++ ++ + }} // namespace qpid::client +diff --git a/qpid/cpp/src/qpid/client/ConnectionImpl.h b/qpid/cpp/src/qpid/client/ConnectionImpl.h +index 57d874b..cc81500 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionImpl.h ++++ b/qpid/cpp/src/qpid/client/ConnectionImpl.h +@@ -31,6 +31,7 @@ + #include "qpid/sys/TimeoutHandler.h" + + #include ++#include + #include + #include + #include +@@ -95,8 +96,9 @@ class ConnectionImpl : public Bounds, + + std::vector getInitialBrokers(); + void registerFailureCallback ( boost::function fn ) { failureCallback = fn; } +- + framing::ProtocolVersion getVersion() { return version; } ++ ++ friend std::ostream& operator<<(std::ostream&, const ConnectionImpl&); + }; + + }} +diff --git a/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp b/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp +index 7d85b43..119a6aa 100644 +--- a/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp ++++ b/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp +@@ -400,10 +400,14 @@ AsynchIO::BufferBase* AsynchIO::getQueuedBuffer() { + } + + /* +- * We keep on reading as long as we have something to read and a buffer to put +- * it in ++ * We keep on reading as long as we have something to read, a buffer ++ * to put it in and reading is not stopped by flow control. + */ + void AsynchIO::readable(DispatchHandle& h) { ++ if (readingStopped) { ++ // We have been flow controlled. ++ return; ++ } + int readTotal = 0; + AbsTime readStartTime = AbsTime::now(); + do { +-- +1.5.5.6 + +From 154ec1cfe134c35fead1d8bf86910f088293857a Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 19 Jul 2010 11:00:45 +0000 +Subject: [PATCH] Bug 614861 - Fixed - [RFE] map_sender and map_receiver need queue/address to be created before + +Make address used for map sender/receiver configurable; make default create the queue automatically. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@965424 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 239d1c78265407aa9aaf9e5ea20f4688abedcbb0) +--- + qpid/cpp/examples/messaging/map_receiver.cpp | 3 ++- + qpid/cpp/examples/messaging/map_sender.cpp | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/map_receiver.cpp b/qpid/cpp/examples/messaging/map_receiver.cpp +index 6afc4c9..ca17078 100644 +--- a/qpid/cpp/examples/messaging/map_receiver.cpp ++++ b/qpid/cpp/examples/messaging/map_receiver.cpp +@@ -37,12 +37,13 @@ using std::string; + + int main(int argc, char** argv) { + const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672"; ++ const char* address = argc>2 ? argv[2] : "message_queue; {create: always}"; + + Connection connection(url); + try { + connection.open(); + Session session = connection.createSession(); +- Receiver receiver = session.createReceiver("message_queue"); ++ Receiver receiver = session.createReceiver(address); + Variant::Map content; + decode(receiver.fetch(), content); + std::cout << content << std::endl; +diff --git a/qpid/cpp/examples/messaging/map_sender.cpp b/qpid/cpp/examples/messaging/map_sender.cpp +index 489ddb7..2d348de 100644 +--- a/qpid/cpp/examples/messaging/map_sender.cpp ++++ b/qpid/cpp/examples/messaging/map_sender.cpp +@@ -37,11 +37,12 @@ using std::string; + + int main(int argc, char** argv) { + const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672"; ++ const char* address = argc>2 ? argv[2] : "message_queue; {create: always}"; + Connection connection(url); + try { + connection.open(); + Session session = connection.createSession(); +- Sender sender = session.createSender("message_queue"); ++ Sender sender = session.createSender(address); + + Message message; + Variant::Map content; +-- +1.5.5.6 + +From 620177446d914de766a7558da5ef5b9df2b38f3a Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 19 Jul 2010 12:16:20 +0000 +Subject: [PATCH] Bug 614854 - Fixed - qpid-winsdk: qpid\examples\messaging\messaging_spout.vcproj links to drain.exe + +Fix incorrect exe name + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@965449 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 3deaa1cba43484493bb128b782a513f85a07cbb3) +--- + qpid/cpp/examples/messaging/messaging_spout.vcproj | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/messaging_spout.vcproj b/qpid/cpp/examples/messaging/messaging_spout.vcproj +index e10b00f..e1231eb 100644 +--- a/qpid/cpp/examples/messaging/messaging_spout.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_spout.vcproj +@@ -157,7 +157,7 @@ + +Date: Mon, 19 Jul 2010 19:51:47 +0000 +Subject: [PATCH] Windows .NET Support + +QPID-2589 - Patch from Chuck Rolke +This patch cleans up or adds the copy constructors and the copy assignment operators for the binding classes. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@965603 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 32b1e3dfdbc39021f72f5df17323d3fe42738f50) +--- + qpid/cpp/bindings/qpid/dotnet/src/Address.cpp | 10 +++- + qpid/cpp/bindings/qpid/dotnet/src/Address.h | 21 ++++++- + qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp | 8 +++ + qpid/cpp/bindings/qpid/dotnet/src/Connection.h | 34 +++++++++++ + qpid/cpp/bindings/qpid/dotnet/src/Duration.h | 6 +- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 6 +- + qpid/cpp/bindings/qpid/dotnet/src/Message.h | 21 ++++++- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp | 7 +- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.h | 22 +++++++- + qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp | 8 ++- + qpid/cpp/bindings/qpid/dotnet/src/Sender.h | 28 +++++++++- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 9 ++- + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 26 ++++++++- + .../dotnet/test/messaging.test/messaging.test.cs | 62 ++++++++++++++++++++ + 14 files changed, 245 insertions(+), 23 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +index 2da40e6..2b6dbb4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +@@ -64,7 +64,7 @@ namespace Messaging { + Type = ""; + } + +- ++ // Create with options and type + Address::Address(System::String ^ name, + System::String ^ subject, + System::Collections::Generic::Dictionary< +@@ -78,8 +78,15 @@ namespace Messaging { + Type = type; + } + ++ // Copy constructor ++ Address::Address(const Address ^ address) ++ : addressp(new ::qpid::messaging::Address( ++ *(const_cast
(address)->NativeAddress))) ++ { ++ } + + // Create from received address ++ // The new Address object consumes the unmanaged pointer + Address::Address(::qpid::messaging::Address * addrp) : + addressp(addrp) + { +@@ -110,7 +117,6 @@ namespace Messaging { + } + } + +- + // + // ToString + // +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.h b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +index 9f940d6..1f2c3fe 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +@@ -65,12 +65,31 @@ namespace Messaging { + System::String ^, System::Object ^> ^ options, + System::String ^ type); + ++ // copy constructor ++ Address(const Address ^ address); ++ + // Create from received address ++ // The new Address object consumes the unmanaged pointer + Address(::qpid::messaging::Address * addrp); + + ~Address(); + !Address(); +-// Address(const Address % rhs); ++ ++ // assignment operator ++ Address % operator=(const Address % rhs) ++ { ++ if (this == %rhs) ++ { ++ // Self assignment, do nothing ++ } ++ else ++ { ++ delete addressp; ++ addressp = new ::qpid::messaging::Address( ++ *(const_cast
(rhs).NativeAddress) ); ++ } ++ return *this; ++ } + + property ::qpid::messaging::Address * NativeAddress + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +index 0e59c41..5075530 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +@@ -68,6 +68,14 @@ namespace Messaging { + } + + ++ // Copy constructor ++ Connection::Connection(const Connection ^ connection) ++ : connectionp(new ::qpid::messaging::Connection( ++ *(const_cast(connection)->NativeConnection))) ++ { ++ } ++ ++ + // Destructor + Connection::~Connection() + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +index 8e0f40f..6a0caf1 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +@@ -56,9 +56,43 @@ namespace Messaging { + System::String ^, System::Object ^> ^ options); + + Connection(System::String ^ url, System::String ^ options); ++ ++ // copy constructor ++ Connection(const Connection ^ connection); ++ + ~Connection(); + !Connection(); + ++ // assignment operator ++ Connection % operator=(const Connection % rhs) ++ { ++ if (this == %rhs) ++ { ++ // Self assignment, do nothing ++ } ++ else ++ { ++ delete connectionp; ++ connectionp = new ::qpid::messaging::Connection( ++ *(const_cast(rhs).NativeConnection) ); ++ } ++ return *this; ++ } ++ ++ property ::qpid::messaging::Connection * NativeConnection ++ { ++ ::qpid::messaging::Connection * get () { return connectionp; } ++ } ++ ++ property System::String ^ NPAddress ++ { ++ System::String ^ get () ++ { ++ System::IntPtr i((void *)connectionp); ++ return gcnew System::String(i.ToString()); ++ } ++ } ++ + void SetOption(System::String ^ name, System::Object ^ value); + + void Open(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Duration.h b/qpid/cpp/bindings/qpid/dotnet/src/Duration.h +index 8bbfa56..213c338 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Duration.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Duration.h +@@ -45,13 +45,13 @@ namespace Messaging { + Duration(const Duration % rhs) : + milliseconds(rhs.milliseconds) + { +- }; ++ } + + explicit Duration(System::UInt64 mS) : +- milliseconds(mS) {}; ++ milliseconds(mS) {} + + Duration() : +- milliseconds(System::UInt64::MaxValue) {}; ++ milliseconds(System::UInt64::MaxValue) {} + + property System::UInt64 Milliseconds + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index f620a09..def3051 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -141,10 +141,10 @@ namespace Messaging { + } + + // Copy constructor +- // TODO: prevent copy +- Message::Message(const Message % rhs) ++ Message::Message(const Message ^ message) ++ : messagep(new ::qpid::messaging::Message( ++ *(const_cast(message)->NativeMessage))) + { +- messagep = rhs.messagep; + } + + // Destroys kept object +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.h b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +index d5b4beb..c7f6092 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +@@ -76,8 +76,27 @@ namespace Messaging { + !Message(); + + // Copy constructor +- Message(const Message % rhs); ++ Message(const Message ^ message); + ++ // assignment operator ++ Message % operator=(const Message % rhs) ++ { ++ if (this == %rhs) ++ { ++ // Self assignment, do nothing ++ } ++ else ++ { ++ delete messagep; ++ messagep = new ::qpid::messaging::Message( ++ *(const_cast(rhs).NativeMessage) ); ++ } ++ return *this; ++ } ++ ++ // ++ // NativeMessage ++ // + property ::qpid::messaging::Message * NativeMessage + { + ::qpid::messaging::Message * get () { return messagep; } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +index 96df8cc..1e2f30d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +@@ -66,10 +66,11 @@ namespace Messaging { + + + // Copy constructor +- Receiver::Receiver(const Receiver ^ rhs) ++ Receiver::Receiver(const Receiver ^ receiver) ++ : receiverp(new ::qpid::messaging::Receiver( ++ *(const_cast(receiver)->NativeReceiver))), ++ parentSession(receiver->parentSession) + { +- receiverp = rhs->receiverp; +- parentSession = rhs->parentSession; + } + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +index 436f3f2..68cfa6f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +@@ -63,9 +63,29 @@ namespace Messaging { + public: + Receiver(::qpid::messaging::Receiver * r, + Session ^ sessRef); ++ ++ // copy constructor ++ Receiver(const Receiver ^ receiver); ++ + ~Receiver(); + !Receiver(); +- Receiver(const Receiver ^ rhs); ++ ++ // assignment operator ++ Receiver % operator=(const Receiver % rhs) ++ { ++ if (this == %rhs) ++ { ++ // Self assignment, do nothing ++ } ++ else ++ { ++ delete receiverp; ++ receiverp = new ::qpid::messaging::Receiver( ++ *(const_cast(rhs).NativeReceiver)); ++ parentSession = rhs.parentSession; ++ } ++ return *this; ++ } + + property ::qpid::messaging::Receiver * NativeReceiver + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +index 0d394f8..bcc2407 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +@@ -61,12 +61,14 @@ namespace Messaging { + } + + // Copy constructor +- Sender::Sender(const Sender % rhs) ++ Sender::Sender(const Sender ^ sender) ++ : senderp(new ::qpid::messaging::Sender( ++ *(const_cast(sender)->NativeSender))), ++ parentSession(sender->parentSession) + { +- senderp = rhs.senderp; +- parentSession = rhs.parentSession; + } + ++ + // Destroys kept object + // TODO: add lock + void Sender::Cleanup() +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +index de114ab..670f11f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +@@ -61,9 +61,35 @@ namespace Messaging { + public: + Sender(::qpid::messaging::Sender * s, + Session ^ sessRef); ++ ++ // copy constructor ++ Sender(const Sender ^ sender); ++ + ~Sender(); + !Sender(); +- Sender(const Sender % rhs); ++ ++ // assignment operator ++ Sender % operator=(const Sender % rhs) ++ { ++ if (this == %rhs) ++ { ++ // Self assignment, do nothing ++ } ++ else ++ { ++ delete senderp; ++ senderp = new ::qpid::messaging::Sender( ++ *(const_cast(rhs).NativeSender)); ++ parentSession = rhs.parentSession; ++ } ++ return *this; ++ } ++ ++ property ::qpid::messaging::Sender * NativeSender ++ { ++ ::qpid::messaging::Sender * get () { return senderp; } ++ } ++ + + // Send(message) + void Send(Message ^ mmsgp); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index bafc9b3..438c9c4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -67,11 +67,12 @@ namespace Messaging { + Cleanup(); + } + +- // copy constructor +- Session::Session(const Session % rhs) ++ // Copy constructor ++ Session::Session(const Session ^ session) ++ : sessionp(new ::qpid::messaging::Session( ++ *(const_cast(session)->NativeSession))), ++ parentConnectionp(session->parentConnectionp) + { +- sessionp = rhs.sessionp; +- parentConnectionp = rhs.parentConnectionp; + } + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index a5affc6..e077252 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -67,9 +67,33 @@ namespace Messaging { + public: + Session(::qpid::messaging::Session * sessionp, + Connection ^ connRef); ++ ++ // copy constructor ++ Session(const Session ^ session); ++ + ~Session(); + !Session(); +- Session(const Session % rhs); ++ ++ // assignment operator ++ Session % operator=(const Session % rhs) ++ { ++ if (this == %rhs) ++ { ++ // Self assignment, do nothing ++ } ++ else ++ { ++ delete sessionp; ++ sessionp = new ::qpid::messaging::Session( ++ *(const_cast(rhs).NativeSession) ); ++ } ++ return *this; ++ } ++ ++ property ::qpid::messaging::Session * NativeSession ++ { ++ ::qpid::messaging::Session * get () { return sessionp; } ++ } + + void Close(); + void Commit(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +index c1b3035..9280dfa 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +@@ -139,6 +139,68 @@ namespace Org.Apache.Qpid.Messaging + guidReadback = myGuid.ToByteArray(); + + Console.WriteLine("GuidReadback len = {0}", guidReadback.Length); ++ ++ // ++ // Set/Get some properties of a message ++ // ++ Message msgGetSet = new Message("12345"); ++ ++ msgGetSet.Subject = "Subject"; ++ msgGetSet.MessageId = "MessageId"; ++ msgGetSet.UserId = "UserId"; ++ msgGetSet.CorrelationId = "CorrelationId"; ++ msgGetSet.Ttl = DurationConstants.SECOND; ++ msgGetSet.Priority = (byte)'z'; ++ msgGetSet.Durable = false; ++ msgGetSet.Redelivered = true; ++ ++ Dictionary props = new Dictionary(); ++ props.Add("firstProperty", 1); ++ props.Add("secondProperty", 2); ++ msgGetSet.Properties = props; ++ ++ ++ ++ Console.WriteLine("Message Subject = {0}", msgGetSet.Subject); ++ Console.WriteLine("Message ContentType = {0}", msgGetSet.ContentType); ++ Console.WriteLine("Message MessageId = {0}", msgGetSet.MessageId); ++ Console.WriteLine("Message UserId = {0}", msgGetSet.UserId); ++ Console.WriteLine("Message CorrelationId = {0}", msgGetSet.CorrelationId); ++ Console.WriteLine("Message Ttl mS = {0}", msgGetSet.Ttl.Milliseconds); ++ Console.WriteLine("Message Priority = {0}", msgGetSet.Priority); ++ Console.WriteLine("Message Durable = {0}", msgGetSet.Durable); ++ Console.WriteLine("Message Redelivered = {0}", msgGetSet.Redelivered); ++ ++ Dictionary gotProps = msgGetSet.Properties; ++ foreach (KeyValuePair kvp in gotProps) ++ { ++ Console.WriteLine("Message Property {0} = {1}", kvp.Key, kvp.Value.ToString()); ++ } ++ ++ Console.WriteLine("Cycle through a million address copy constructions..."); ++ Address a1 = new Address("abc"); ++ Address a2 = new Address("def"); ++ Address a3 = new Address(a2); ++ for (int i = 0; i < 1000000; i++) ++ { ++ a1 = a2; ++ a2 = a3; ++ a3 = new Address(a1); ++ } ++ Console.WriteLine(" ...done."); ++ ++ Console.WriteLine("Use each object's copy constructor"); ++ ++ Address Address1 = new Address("abc"); ++ Address Address2 = new Address(Address1); ++ ++ Connection Connection1 = new Connection("abc"); ++ Connection Connection2 = new Connection(Connection1); ++ ++ Message Message1 = new Message("abc"); ++ Message Message2 = new Message(Message1); ++ ++ + } + } + } +-- +1.5.5.6 + +From 4141765ace8dbdcad4860623c4e388922650f073 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Mon, 19 Jul 2010 21:10:26 +0000 +Subject: [PATCH] Windows .NET Support + +QPID-2589 - Patch from Chuck Rolke +Fixes a property misspelling and adds two missing functions. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@965634 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 2c64438b0af2e3b878c6295c88c9ffd672de56a1) +--- + qpid/cpp/bindings/qpid/dotnet/src/Connection.h | 8 ++++++++ + qpid/cpp/bindings/qpid/dotnet/src/Receiver.h | 11 +++++++++++ + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 2 +- + 3 files changed, 20 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +index 6a0caf1..0907d99 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +@@ -115,5 +115,13 @@ namespace Messaging { + Session ^ CreateSession(System::String ^ name); + + Session ^ GetSession(System::String ^ name); ++ ++ property System::String ^ AuthenticatedUsername ++ { ++ System::String ^ get () ++ { ++ return gcnew System::String(connectionp->getAuthenticatedUsername().c_str()); ++ } ++ } + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +index 68cfa6f..c52e901 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +@@ -149,6 +149,17 @@ namespace Messaging { + void Close(); + + // ++ // IsClosed ++ // ++ property System::Boolean IsClosed ++ { ++ System::Boolean get () ++ { ++ return receiverp->isClosed(); ++ } ++ } ++ ++ // + // Name + // + property System::String ^ Name +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index e077252..18dc09f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -110,7 +110,7 @@ namespace Messaging { + System::UInt32 get () { return sessionp->getReceivable(); } + } + +- property System::UInt32 UnsetledAcks ++ property System::UInt32 UnsettledAcks + { + System::UInt32 get () { return sessionp->getUnsettledAcks(); } + } +-- +1.5.5.6 + +From af12fa7cae14821a12b0a3199ab59ca146cac7a7 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 1 Jul 2010 19:23:43 +0000 +Subject: [PATCH] Fix sporadic cluster core on exit. + +Fix a race condition that allows a cluster::Connection to be deleted via the Cluster's +local map before it was fully initialized. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959752 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 368ccad5d09ad151dbf866c2bc49a57e457a6405) +--- + qpid/cpp/src/qpid/cluster/Connection.cpp | 1 - + qpid/cpp/src/qpid/cluster/ConnectionCodec.cpp | 1 + + 2 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index aad3d8a..b89c34f 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -96,7 +96,6 @@ Connection::Connection(Cluster& c, sys::ConnectionOutputHandler& out, + updateIn(c.getUpdateReceiver()), + secureConnection(0) + { +- cluster.addLocalConnection(this); + if (isLocalClient()) { + giveReadCredit(cluster.getSettings().readMax); // Flow control + // Delay adding the connection to the management map until announce() +diff --git a/qpid/cpp/src/qpid/cluster/ConnectionCodec.cpp b/qpid/cpp/src/qpid/cluster/ConnectionCodec.cpp +index 931cda4..91ec109 100644 +--- a/qpid/cpp/src/qpid/cluster/ConnectionCodec.cpp ++++ b/qpid/cpp/src/qpid/cluster/ConnectionCodec.cpp +@@ -58,6 +58,7 @@ ConnectionCodec::ConnectionCodec( + ) : codec(out, logId, isLink), + interceptor(new Connection(cluster, codec, logId, cluster.getId(), catchUp, isLink, external)) + { ++ cluster.addLocalConnection(interceptor); + std::auto_ptr ih(new ProxyInputHandler(interceptor)); + codec.setInputHandler(ih); + codec.setVersion(v); +-- +1.5.5.6 + +From 1018d424b3a39c363ee3a1f6cad38d7d8ffc182c Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Wed, 30 Jun 2010 14:05:51 +0000 +Subject: [PATCH] Fixed incorrect syntax for connection options in the comments. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959317 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 770c53c8c07fc36a20d687e2da9963c1831f80df) +--- + qpid/cpp/include/qpid/messaging/Connection.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/include/qpid/messaging/Connection.h b/qpid/cpp/include/qpid/messaging/Connection.h +index 9f3102d..6f2cd54 100644 +--- a/qpid/cpp/include/qpid/messaging/Connection.h ++++ b/qpid/cpp/include/qpid/messaging/Connection.h +@@ -78,7 +78,7 @@ class Connection : public qpid::messaging::Handle + QPID_MESSAGING_EXTERN Connection(const std::string& url, const qpid::types::Variant::Map& options = qpid::types::Variant::Map()); + /** + * Creates a connection using an option string of the form +- * {name=value,name2=value2...}, see above for options supported. ++ * {name:value,name2:value2...}, see above for options supported. + * + * @exception InvalidOptionString if the string does not match the correct syntax + */ +-- +1.5.5.6 + +From 6deb521d9fedcd3ca728c491128bfe3aa0524881 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 20 Jul 2010 17:04:11 -0400 +Subject: [PATCH] Bug 616072 - Cluster node exits with authorization error + +Fix bug in cluster with authentication: nodes exit with "unauthorized-access" + +Adding a node to a cluster on which authentication is enabled and on +which there are existing connections authenticated with mechanisms +other than anonymous, may result in nodes exiting the cluster with +inconsistent authorisation errors. + + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@965979 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 92e9a95e0aeb7d42f02f610a91890b1517f3c20b) +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 2 +- + qpid/cpp/src/qpid/cluster/Connection.cpp | 11 +++++++++++ + qpid/cpp/src/qpid/cluster/Connection.h | 2 ++ + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 2 ++ + qpid/cpp/xml/cluster.xml | 7 ++++++- + 5 files changed, 22 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index d01e801..c0ff148 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -197,7 +197,7 @@ namespace _qmf = ::qmf::org::apache::qpid::cluster; + * Currently use SVN revision to avoid clashes with versions from + * different branches. + */ +-const uint32_t Cluster::CLUSTER_VERSION = 956001; ++const uint32_t Cluster::CLUSTER_VERSION = 964709; + + struct ClusterDispatcher : public framing::AMQP_AllOperations::ClusterHandler { + qpid::cluster::Cluster& cluster; +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index b89c34f..7b51d24 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -304,10 +304,17 @@ size_t Connection::decode(const char* data, size_t size) { + const char* ptr = data; + const char* end = data + size; + if (catchUp) { // Handle catch-up locally. ++ bool wasOpen = connection->isOpen(); + Buffer buf(const_cast(ptr), size); + ptr += size; + while (localDecoder.decode(buf)) + received(localDecoder.getFrame()); ++ if (!wasOpen && connection->isOpen()) { ++ // Connections marked as federation links are allowed to proxy ++ // messages with user-ID that doesn't match the connection's ++ // authenticated ID. This is important for updates. ++ connection->setFederationLink(isCatchUp()); ++ } + } + else { // Multicast local connections. + assert(isLocalClient()); +@@ -384,6 +391,10 @@ void Connection::shadowPrepare(const std::string& mgmtId) { + updateIn.nextShadowMgmtId = mgmtId; + } + ++void Connection::shadowSetUser(const std::string& userId) { ++ connection->setUserId(userId); ++} ++ + void Connection::consumerState(const string& name, bool blocked, bool notifyEnabled, const SequenceNumber& position) + { + broker::SemanticState::ConsumerImpl& c = semanticState().find(name); +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index aec18d7..24b8c85 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -114,6 +114,8 @@ class Connection : + // State update methods. + void shadowPrepare(const std::string&); + ++ void shadowSetUser(const std::string&); ++ + void sessionState(const framing::SequenceNumber& replayStart, + const framing::SequenceNumber& sendCommandPoint, + const framing::SequenceSet& sentIncomplete, +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 90f5bcf..148526b 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -365,6 +365,8 @@ void UpdateClient::updateConnection(const boost::intrusive_ptr& upda + + connectionSettings.maxFrameSize = bc.getFrameMax(); + shadowConnection.open(updateeUrl, connectionSettings); ++ ClusterConnectionProxy(shadowConnection).shadowSetUser(bc.getUserId()); ++ + bc.eachSessionHandler(boost::bind(&UpdateClient::updateSession, this, _1)); + // Safe to use decoder here because we are stalled for update. + std::pair fragment = decoder.get(updateConnection->getId()).getFragment(); +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index ecd4515..9cbad82 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -159,11 +159,16 @@ + - send shadow-ready to mark end of shadow update. + - send membership when entire update is complete. + --> ++ ++ ++ ++ ++ + + + + +- ++ + + + +-- +1.5.5.6 + +From e522bec76c7ceb8b787d59589358481589871cd5 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 22 Jul 2010 21:57:37 +0000 +Subject: [PATCH] Bug 617281 - Ruby QMFv1 agents don't have appropriate labels + +Bugfix: agent label in wrapped (python, ruby) qmf agent was not transmitted to the + consoles. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@966871 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit d06a4f9aa864b15d63ee967c5337699dc76a4157) +--- + qpid/cpp/bindings/qmf/tests/agent_ruby.rb | 2 +- + qpid/cpp/bindings/qmf/tests/python_agent.py | 2 +- + qpid/cpp/bindings/qmf/tests/ruby_console_test.rb | 2 +- + qpid/cpp/src/qmf/engine/Agent.cpp | 4 ++-- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/bindings/qmf/tests/agent_ruby.rb b/qpid/cpp/bindings/qmf/tests/agent_ruby.rb +index 903e2df..5ee5e37 100755 +--- a/qpid/cpp/bindings/qmf/tests/agent_ruby.rb ++++ b/qpid/cpp/bindings/qmf/tests/agent_ruby.rb +@@ -231,7 +231,7 @@ class App < Qmf::AgentHandler + @settings.set_attr("host", ARGV[0]) if ARGV.size > 0 + @settings.set_attr("port", ARGV[1].to_i) if ARGV.size > 1 + @connection = Qmf::Connection.new(@settings) +- @agent = Qmf::Agent.new(self) ++ @agent = Qmf::Agent.new(self, "agent_test_label") + + @model = Model.new + @model.register(@agent) +diff --git a/qpid/cpp/bindings/qmf/tests/python_agent.py b/qpid/cpp/bindings/qmf/tests/python_agent.py +index e22c80a..28ba47e 100644 +--- a/qpid/cpp/bindings/qmf/tests/python_agent.py ++++ b/qpid/cpp/bindings/qmf/tests/python_agent.py +@@ -263,7 +263,7 @@ class App(qmf.AgentHandler): + self._connection = qmf.Connection(self._settings) + + # Instantiate an Agent to serve me queries and method calls +- self._agent = qmf.Agent(self) ++ self._agent = qmf.Agent(self, "agent_test_label") + + # Dynamically define the parent and child schemas, then + # register them with the agent +diff --git a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +index 4d65afa..dd49560 100755 +--- a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb ++++ b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +@@ -204,7 +204,7 @@ class ConsoleTest < ConsoleTestBase + def test_D_get_with_agent + agents = @qmfc.agents + agents.each do |agent| +- if agent.label == "qmfa" ++ if agent.label == "agent_test_label" + parent = @qmfc.object(:class => "parent", :agent => agent) + assert(parent, "Number of parent objects") + return +diff --git a/qpid/cpp/src/qmf/engine/Agent.cpp b/qpid/cpp/src/qmf/engine/Agent.cpp +index 64c5961..067f534 100644 +--- a/qpid/cpp/src/qmf/engine/Agent.cpp ++++ b/qpid/cpp/src/qmf/engine/Agent.cpp +@@ -238,7 +238,7 @@ AgentImpl::AgentImpl(char* _label, bool i) : + assignedBrokerBank(0), assignedAgentBank(0), + bootSequence(1), nextObjectId(1), nextContextNum(1), attachComplete(false) + { +- queueName += label; ++ queueName += Uuid(true).str(); + } + + AgentImpl::~AgentImpl() +@@ -334,7 +334,7 @@ void AgentImpl::startProtocol() + Buffer buffer(rawbuffer, 512); + + Protocol::encodeHeader(buffer, Protocol::OP_ATTACH_REQUEST); +- buffer.putShortString("qmfa"); ++ buffer.putShortString(label); + systemId.encode(buffer); + buffer.putLong(requestedBrokerBank); + buffer.putLong(requestedAgentBank); +-- +1.5.5.6 + +From 0a6a7df8b13d7fc0c08aea778598dc15a1db0a77 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Fri, 23 Jul 2010 01:48:59 +0000 +Subject: [PATCH] Bug 614857 - SessionState.cpp confirmed < (94+0) but only sent < (93+0) + +Race condition in cluster+management, inconsistent errors like: +"confirmed < (2097+0) but only sent < (2096+0)" + +Management messages are generated if a managed objects properties have +changed since the last update. Properties of the cluster object +(members and status) were sometimes being changed outside the delivery +context which could create inconsistencies in the cluster. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@966933 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 398a62a8571fce3a3a6e1e77b8a46ab3ebf63cf0) +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 67 +++++++++++++++++++++----------- + qpid/cpp/src/qpid/cluster/Cluster.h | 2 + + 2 files changed, 46 insertions(+), 23 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index c0ff148..1e87b8e 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -316,7 +316,6 @@ void Cluster::initialize() { + broker.getKnownBrokers = boost::bind(&Cluster::getUrls, this); + broker.deferDelivery = boost::bind(&Cluster::deferDeliveryImpl, this, _1, _2); + broker.setExpiryPolicy(expiryPolicy); +- dispatcher.start(); + deliverEventQueue.bypassOff(); + deliverEventQueue.start(); + deliverFrameQueue.bypassOff(); +@@ -329,7 +328,6 @@ void Cluster::initialize() { + _qmf::Package packageInit(mAgent); + mgmtObject = new _qmf::Cluster (mAgent, this, &broker,name,myUrl.str()); + mAgent->addObject (mgmtObject); +- mgmtObject->set_status("JOINING"); + } + + // Run initMapCompleted immediately to process the initial configuration +@@ -340,6 +338,8 @@ void Cluster::initialize() { + // Add finalizer last for exception safety. + broker.addFinalizer(boost::bind(&Cluster::brokerShutdown, this)); + ++ // Start dispatching CPG events. ++ dispatcher.start(); + } + + // Called in connection thread to insert a client connection. +@@ -593,15 +593,26 @@ void Cluster::configChange ( + + void Cluster::setReady(Lock&) { + state = READY; +- if (mgmtObject!=0) mgmtObject->set_status("ACTIVE"); + mcast.setReady(); + broker.getQueueEvents().enable(); + enableClusterSafe(); // Enable cluster-safe assertions. + } + ++// Set the management status from the Cluster::state. ++// ++// NOTE: Management updates are sent based on property changes. In ++// order to keep consistency across the cluster, we touch the local ++// management status property even if it is locally unchanged for any ++// event that could have cause a cluster property change on any cluster member. ++void Cluster::setMgmtStatus(Lock&) { ++ if (mgmtObject) ++ mgmtObject->set_status(state >= CATCHUP ? "ACTIVE" : "JOINING"); ++} ++ + void Cluster::initMapCompleted(Lock& l) { +- // Called on completion of the initial status map. ++ // Called on completion of the initial status map. + QPID_LOG(debug, *this << " initial status map complete. "); ++ setMgmtStatus(l); + if (state == PRE_INIT) { + // PRE_INIT means we're still in the earlyInitialize phase, in the constructor. + // We decide here whether we want to recover from our store. +@@ -647,6 +658,7 @@ void Cluster::initMapCompleted(Lock& l) { + discarding = false; + setReady(l); + memberUpdate(l); ++ updateMgmtMembership(l); + mcast.mcastControl(ClusterReadyBody(ProtocolVersion(), myUrl.str()), self); + QPID_LOG(notice, *this << " joined cluster " << name); + } +@@ -693,6 +705,8 @@ void Cluster::configChange(const MemberId&, + memberUpdate(l); + if (elders.empty()) becomeElder(l); + } ++ ++ updateMgmtMembership(l); // Update on every config change for consistency + } + + void Cluster::becomeElder(Lock&) { +@@ -786,6 +800,9 @@ void Cluster::ready(const MemberId& id, const std::string& url, Lock& l) { + } catch (const Url::Invalid& e) { + QPID_LOG(error, "Invalid URL in cluster ready command: " << url); + } ++ // Update management on every ready event to be consistent across cluster. ++ setMgmtStatus(l); ++ updateMgmtMembership(l); + } + + void Cluster::updateOffer(const MemberId& updater, uint64_t updateeInt, Lock& l) { +@@ -898,6 +915,8 @@ void Cluster::checkUpdateIn(Lock& l) { + mcast.mcastControl(ClusterReadyBody(ProtocolVersion(), myUrl.str()), self); + state = CATCHUP; + memberUpdate(l); ++ // NB: don't updateMgmtMembership() here as we are not in the deliver ++ // thread. It will be updated on delivery of the "ready" we just mcast. + broker.setClusterUpdatee(false); + if (mAgent) mAgent->suppress(false); // Enable management output. + discarding = false; // ok to set, we're stalled for update. +@@ -979,11 +998,9 @@ void Cluster::memberUpdate(Lock& l) { + // Ignore config changes while we are joining. + if (state < CATCHUP) return; + QPID_LOG(info, *this << " member update: " << map); +- std::vector urls = getUrls(l); +- std::vector ids = getIds(l); + size_t aliveCount = map.aliveCount(); + assert(map.isAlive(self)); +- failoverExchange->updateUrls(urls); ++ failoverExchange->updateUrls(getUrls(l)); + + // Mark store clean if I am the only broker, dirty otherwise. + if (store.hasStore()) { +@@ -1015,22 +1032,6 @@ void Cluster::memberUpdate(Lock& l) { + } + lastAliveCount = aliveCount; + +- if (mgmtObject) { +- mgmtObject->set_clusterSize(urls.size()); +- string urlstr; +- for(std::vector::iterator iter = urls.begin(); iter != urls.end(); iter++ ) { +- if (iter != urls.begin()) urlstr += ";"; +- urlstr += iter->str(); +- } +- string idstr; +- for(std::vector::iterator iter = ids.begin(); iter != ids.end(); iter++ ) { +- if (iter != ids.begin()) idstr += ";"; +- idstr += (*iter); +- } +- mgmtObject->set_members(urlstr); +- mgmtObject->set_memberIDs(idstr); +- } +- + // Close connections belonging to members that have left the cluster. + ConnectionMap::iterator i = connections.begin(); + while (i != connections.end()) { +@@ -1043,6 +1044,26 @@ void Cluster::memberUpdate(Lock& l) { + } + } + ++// See comment on Cluster::setMgmtStatus ++void Cluster::updateMgmtMembership(Lock& l) { ++ if (!mgmtObject) return; ++ std::vector urls = getUrls(l); ++ mgmtObject->set_clusterSize(urls.size()); ++ string urlstr; ++ for(std::vector::iterator i = urls.begin(); i != urls.end(); i++ ) { ++ if (i != urls.begin()) urlstr += ";"; ++ urlstr += i->str(); ++ } ++ std::vector ids = getIds(l); ++ string idstr; ++ for(std::vector::iterator i = ids.begin(); i != ids.end(); i++ ) { ++ if (i != ids.begin()) idstr += ";"; ++ idstr += *i; ++ } ++ mgmtObject->set_members(urlstr); ++ mgmtObject->set_memberIDs(idstr); ++} ++ + std::ostream& operator<<(std::ostream& o, const Cluster& cluster) { + static const char* STATE[] = { + "PRE_INIT", "INIT", "JOINER", "UPDATEE", "CATCHUP", +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.h b/qpid/cpp/src/qpid/cluster/Cluster.h +index 5668d04..1f8fd44 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.h ++++ b/qpid/cpp/src/qpid/cluster/Cluster.h +@@ -196,6 +196,8 @@ class Cluster : private Cpg::Handler, public management::Manageable { + void requestUpdate(Lock& ); + void initMapCompleted(Lock&); + void becomeElder(Lock&); ++ void setMgmtStatus(Lock&); ++ void updateMgmtMembership(Lock&); + + // == Called in CPG dispatch thread + void deliver( // CPG deliver callback. +-- +1.5.5.6 + +From a2a0ba0b4f1160dccdf5f15c621a364bedd84f8b Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Mon, 26 Jul 2010 11:23:53 +0000 +Subject: [PATCH] QPID-2755 - Windows SDK has no README + Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@979243 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 035504f96662cadb565ac26457b6ad9934e3770b) +--- + qpid/cpp/README-winsdk.txt | 74 ++++++++++++++++++++++++++++++++++++++++++++ + qpid/cpp/bld-winsdk.ps1 | 3 ++ + 2 files changed, 77 insertions(+), 0 deletions(-) + create mode 100644 qpid/cpp/README-winsdk.txt + +diff --git a/qpid/cpp/README-winsdk.txt b/qpid/cpp/README-winsdk.txt +new file mode 100644 +index 0000000..8582852 +--- /dev/null ++++ b/qpid/cpp/README-winsdk.txt +@@ -0,0 +1,74 @@ ++ Qpid-Cpp-Win-Sdk ++ ================ ++ ++Table of Contents ++================= ++1. Introduction ++2. Prerequisites ++3. Kit contents ++4. Notes ++ ++ ++1. Introduction ++=============== ++Qpid-Cpp-Win-Sdk is a software development kit for users who wish ++to write code using the Qpid-Cpp program libraries in a Windows ++environment. ++ ++For additional software or information on the Qpid project go to: ++http://cwiki.apache.org/qpid/ ++ ++ ++2. Prerequisites ++================ ++A. Visual Studio 2008. This kit was produced by Visual Studio 2008 ++ and example solutions and projects are in Visual Studio 2008 ++ format. ++ ++B. MSVC 9.0 runtime libraries. Copies of the MSVC90 redistributable ++ runtime libraries and manifest are included in the /bin directory. ++ ++C. Boost version 1_39. The Boost libraries required by this SDK are ++ included in the /bin directory. Both Debug and Release variants ++ are present. ++ ++ ++3. Kit contents ++=============== ++The kit directories hold the content described here. ++ ++ \bin ++ The precompiled binary (.dll and .exe) files and ++ the associated debug program database (.pdb) files. ++ Boost library files. ++ MSVC90 runtime library files. ++ ++ \include ++ A directory tree of .h files. ++ ++ \lib ++ The linker .lib files that correspond to files in /bin. ++ ++ \docs ++ Apache Qpid C++ API Reference ++ ++ \examples ++ A Visual Studio solution file and associated project files ++ to demonstrate using this SDK in C++. ++ ++ \management ++ A python scripting code set for generating QMF data structures. ++ ++ For more information on Qpid QMF go to: ++ https://cwiki.apache.org/qpid/qpid-management-framework.html ++ ++ ++4. Notes ++======== ++* The Qpid-Cpp binaries are produced for the 32-bit Win32 platform. ++ ++* Only the Release variant of Qpid code uses the redistributable ++ MSVC90 libraries in the /bin directory. Users who wish to link to ++ the Debug variant of Qpid code may do so under their own copy of ++ Visual Studio 2008 where the debug versions of MSVC90 runtime ++ libraries are available. +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index ef9c263..ea72c07 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -130,6 +130,9 @@ foreach ($pattern in $preserve) { + } + Remove-Item -recurse $preserve_dir + ++# Install the README ++Copy-Item -force -path "$qpid_cpp_src/README-winsdk.txt" -destination "$install_dir/README-winsdk.txt" ++ + # Install the .NET binding + Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" + Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/DebugPDB" +-- +1.5.5.6 + +From 67fcbcbae266feab39cb9526cd84ba8e6d8edf90 Mon Sep 17 00:00:00 2001 +From: Rajith Muditha Attapattu +Date: Tue, 29 Jun 2010 18:22:45 +0000 +Subject: [PATCH] Bug 612535 + added a case for SEC_ERROR_EXPIRED_CERTIFICATE: in getErrorString() + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959064 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 1c3f1751057c44732bffca120f8064ca2480ecb1) +--- + qpid/cpp/src/qpid/sys/ssl/check.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/ssl/check.cpp b/qpid/cpp/src/qpid/sys/ssl/check.cpp +index 77da105..72a2e26 100644 +--- a/qpid/cpp/src/qpid/sys/ssl/check.cpp ++++ b/qpid/cpp/src/qpid/sys/ssl/check.cpp +@@ -69,6 +69,7 @@ std::string getErrorString(int code) + case PR_DIRECTORY_LOOKUP_ERROR: msg = "A directory lookup on a network address has failed"; break; + case PR_CONNECT_RESET_ERROR: msg = "TCP connection reset by peer"; break; + case PR_END_OF_FILE_ERROR: msg = "Encountered end of file"; break; ++ case SEC_ERROR_EXPIRED_CERTIFICATE: msg = "Peer's certificate has expired"; break; + default: msg = (code < -6000) ? "NSS error" : "NSPR error"; break; + } + return str(format("%1% [%2%]") % msg % code); +-- +1.5.5.6 + +From 516df91ad7666e2b8aa9808dc6568c28c1a000b5 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 30 Jul 2010 19:51:04 +0000 +Subject: [PATCH] QPID-2764 - WinSdk cpp examples do not compile + Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@980933 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 34e5eba814b32005f3b536b9bfbabd1f330fc5f8) +--- + .../cpp/examples/messaging/messaging_client.vcproj | 4 ++-- + qpid/cpp/examples/messaging/messaging_drain.vcproj | 4 ++-- + .../messaging/messaging_map_receiver.vcproj | 4 ++-- + .../examples/messaging/messaging_map_sender.vcproj | 4 ++-- + .../cpp/examples/messaging/messaging_server.vcproj | 4 ++-- + qpid/cpp/examples/messaging/messaging_spout.vcproj | 4 ++-- + 6 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/messaging_client.vcproj b/qpid/cpp/examples/messaging/messaging_client.vcproj +index f6e5da0..dcca4a6 100644 +--- a/qpid/cpp/examples/messaging/messaging_client.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_client.vcproj +@@ -91,7 +91,7 @@ + /> + + + + + + + + + + + + +Date: Fri, 30 Jul 2010 20:13:47 +0000 +Subject: [PATCH] QPID-2765 - WinSdk does not have the .NET Binding examples + Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@980936 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 99c468887842114c2932d9b675cd1daee1cf5b9b) +--- + qpid/cpp/bindings/qpid/dotnet/ReadMe.txt | 78 ++++- + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 81 ++++++ + .../dotnet/bld/bld-org.apache.qpid.messaging.sln | 52 ++++ + .../bld/bld-org.apache.qpid.messaging.vcproj | 300 ++++++++++++++++++++ + qpid/cpp/bld-winsdk.ps1 | 9 +- + 5 files changed, 502 insertions(+), 18 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln + create mode 100644 qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj + +diff --git a/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt b/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt +index faa1b79..61f29bd 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt ++++ b/qpid/cpp/bindings/qpid/dotnet/ReadMe.txt +@@ -1,48 +1,94 @@ ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License. ++# ++ + Qpid.cpp.bindings.qpid.dotnet binding package. + + 1. Features + =========== + +-A. This binding package provides a .NET Interop wrapper around the C++ +- Qpid Messaging interface. It exposes the Messaging interface through ++A. This binding package provides a .NET Interop wrapper around the ++ Qpid C++ Messaging interface. It exposes the Messaging interface through + a series of managed code classes that may be used by any .NET language. + +-B. A sessionreceiver assembly provides session callback functionality +- above the C++ layer. ++B. A sessionreceiver assembly provides session message callback functionality. + + 2. Prerequisites + ================ + +-A. A build of the Qpid C++ libraries is available. ++A. From a fresh check-out of Qpid sources, execute an in-source CMake. ++ This command puts the CMake output files in the same directories ++ as the Qpid source files. ++ ++ > cd cpp ++ > cmake -i + +-B. Refer to this library using environment variable QPID_BUILD_ROOT. + +- for example: SET QPID_BUILD_ROOT=D:\users\submitter\svn\qpid\cpp ++B. Build the qpid-cpp solution. + +-3. Building the solution +-======================== ++ > qpid-cpp.sln ++ Select Configuration Debug ++ Select Platform Win32 ++ Compile the ALL_BUILD project + +-A. The solution is cpp\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ++3. Building the Dotnet Binding solution ++======================================= + +-B. Build the solution (Debug only - Release is not set up yet). ++A. Open solution file cpp\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ++ Select Configuration Debug ++ Select Platform x86 ++ Compile the solution + +-C. Project output goes to %QPID_BUILD_ROOT%\src\Debug. This puts all the +- solution artifacts is the same directory as the C++ DLLs. +- + + 4. Running the examples +-====================== ++======================= + + A. csharp.direct.receiver + B. csharp.direct.sender ++ + C. csharp.map.receiver + D. csharp.map.sender ++ + E. csharp.map.callback.receiver + F. csharp.map.callback.sender + ++G. csharp.example.server ++H. visualbasic.example.server ++I. csharp.example.client ++ ++J. csharp.example.drain ++K. csharp.example.spout ++L. csharp.example.declare_queues ++ ++M. csharp.example.helloworld ++N. powershell.example.helloworld ++ + + 5. Running the tests + ==================== + +-A. messaging.test ++A. TBD ++ + ++6. Notes ++======== ++ ++A. Directory cpp\bindings\qpid\dotnet\bld holds a solution file and two ++ project files that are executed during automated winsdk builds. ++ These are not meant to be run interactively. ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj +new file mode 100644 +index 0000000..b8168af +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj +@@ -0,0 +1,81 @@ ++ ++ ++ ++ Debug ++ AnyCPU ++ 9.0.21022 ++ 2.0 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05} ++ Library ++ Properties ++ org.apache.qpid.messaging.sessionreceiver ++ org.apache.qpid.messaging.sessionreceiver ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ ..\..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ ..\..\..\..\..\..\src\Release\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ ..\..\..\..\..\..\src\Debug\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ ..\..\..\..\..\..\src\Release\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D} ++ Org.Apache.Qpid.Messaging ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln +new file mode 100644 +index 0000000..79e22cb +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln +@@ -0,0 +1,52 @@ ++Microsoft Visual Studio Solution File, Format Version 10.00 ++# Visual Studio 2008 ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org.Apache.Qpid.Messaging", "bld-org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "org.apache.qpid.messaging.sessionreceiver", "bld-org.apache.qpid.messaging.sessionreceiver.csproj", "{B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}" ++EndProject ++Global ++ GlobalSection(SolutionConfigurationPlatforms) = preSolution ++ Debug|Any CPU = Debug|Any CPU ++ Debug|Mixed Platforms = Debug|Mixed Platforms ++ Debug|Win32 = Debug|Win32 ++ Debug|x86 = Debug|x86 ++ Release|Any CPU = Release|Any CPU ++ Release|Mixed Platforms = Release|Mixed Platforms ++ Release|Win32 = Release|Win32 ++ Release|x86 = Release|x86 ++ EndGlobalSection ++ GlobalSection(ProjectConfigurationPlatforms) = postSolution ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Any CPU.ActiveCfg = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Mixed Platforms.Build.0 = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.ActiveCfg = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.Build.0 = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.ActiveCfg = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.Build.0 = Debug|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Any CPU.ActiveCfg = Release|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.ActiveCfg = Release|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.Build.0 = Release|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.ActiveCfg = Release|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.Build.0 = Release|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x86.ActiveCfg = Release|Win32 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.Build.0 = Debug|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.ActiveCfg = Debug|x86 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.Build.0 = Debug|x86 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.ActiveCfg = Release|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.Build.0 = Release|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.Build.0 = Release|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Win32.ActiveCfg = Release|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.ActiveCfg = Release|x86 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.Build.0 = Release|x86 ++ EndGlobalSection ++ GlobalSection(SolutionProperties) = preSolution ++ HideSolutionNode = FALSE ++ EndGlobalSection ++ GlobalSection(NestedProjects) = preSolution ++ EndGlobalSection ++EndGlobal +diff --git a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj +new file mode 100644 +index 0000000..14e67de +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj +@@ -0,0 +1,300 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index ea72c07..0bf7c4c 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -61,8 +61,8 @@ devenv qpid-cpp.sln /build "Debug|Win32" /project INSTALL + devenv qpid-cpp.sln /build "RelWithDebInfo|Win32" /project INSTALL + + # Build the .NET binding +-devenv .\bindings\qpid\dotnet\org.apache.qpid.messaging.sln /build "Debug|x86" /project org.apache.qpid.messaging +-devenv .\bindings\qpid\dotnet\org.apache.qpid.messaging.sln /build "Debug|x86" /project org.apache.qpid.messaging.sessionreceiver ++devenv $qpid_cpp_src\bindings\qpid\dotnet\bld\bld-org.apache.qpid.messaging.sln /build "Debug|x86" /project bld-org.apache.qpid.messaging ++devenv $qpid_cpp_src\bindings\qpid\dotnet\bld\bld-org.apache.qpid.messaging.sln /build "Debug|x86" /project bld-org.apache.qpid.messaging.sessionreceiver + + # This would be kludgy if we have only one entry as the array declaration syntax + # can't cope with just one nested array +@@ -137,6 +137,11 @@ Copy-Item -force -path "$qpid_cpp_src/README-winsdk.txt" -destination "$install_ + Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" + Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/DebugPDB" + ++New-Item -path $(Join-Path $(Get-Location) $install_dir) -name dotnet_examples -type directory ++Dir -recurse $qpid_cpp_src/bindings/qpid/dotnet/examples csharp*.cs | Copy -destination $install_dir/dotnet_examples ++Dir -recurse $qpid_cpp_src/bindings/qpid/dotnet/examples visualbasic*.vb | Copy -destination $install_dir/dotnet_examples ++Dir -recurse $qpid_cpp_src/bindings/qpid/dotnet/examples *.ps1 | Copy -destination $install_dir/dotnet_examples ++ + # Zip the /bin PDB files into two zip files. + # we previously arranged that the Debug pdbs go in the DebugPDB subdirectory + # and the Release pdbs go in the ReleasePDB subdirectory +-- +1.5.5.6 + +From 4dff17d2b1db8f513933f2a06acd84389dac21e3 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Thu, 22 Jul 2010 18:43:33 +0000 +Subject: [PATCH] Bug 616489 - Valgrind errors when queue limits exceeded + +QPID-2754: fix management object database locking problem. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@966795 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 786813d0fad8f8a72a882ca28385850351bb2843) +--- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 310 +++++++++++++------- + qpid/cpp/src/qpid/management/ManagementAgent.h | 8 +- + qpid/cpp/src/qpid/management/ManagementObject.cpp | 2 +- + 3 files changed, 208 insertions(+), 112 deletions(-) + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 9e4e966..e98de96 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -101,7 +101,7 @@ ManagementAgent::ManagementAgent (const bool qmfV1, const bool qmfV2) : + startTime(sys::now()), + suppressed(false), disallowAllV1Methods(false), + vendorNameKey(defaultVendorName), productNameKey(defaultProductName), +- qmf1Support(qmfV1), qmf2Support(qmfV2) ++ qmf1Support(qmfV1), qmf2Support(qmfV2), maxV2ReplyObjs(100) + { + nextObjectId = 1; + brokerBank = 1; +@@ -428,9 +428,15 @@ void ManagementAgent::clientAdded (const string& routingKey) + return; + + clientWasAdded = true; ++ std::list rkeys; ++ + for (RemoteAgentMap::iterator aIter = remoteAgents.begin(); + aIter != remoteAgents.end(); + aIter++) { ++ rkeys.push_back(aIter->second->routingKey); ++ } ++ ++ while (rkeys.size()) { + char localBuffer[16]; + Buffer outBuffer(localBuffer, 16); + uint32_t outLen; +@@ -438,8 +444,9 @@ void ManagementAgent::clientAdded (const string& routingKey) + encodeHeader(outBuffer, 'x'); + outLen = outBuffer.getPosition(); + outBuffer.reset(); +- sendBufferLH(outBuffer, outLen, dExchange, aIter->second->routingKey); +- QPID_LOG(trace, "SEND ConsoleAddedIndication to=" << aIter->second->routingKey); ++ sendBufferLH(outBuffer, outLen, dExchange, rkeys.front()); ++ QPID_LOG(trace, "SEND ConsoleAddedIndication to=" << rkeys.front()); ++ rkeys.pop_front(); + } + } + +@@ -473,6 +480,7 @@ bool ManagementAgent::checkHeader (Buffer& buf, uint8_t *opcode, uint32_t *seq) + } + + // NOTE WELL: assumes userLock is held by caller (LH) ++// NOTE EVEN WELLER: drops this lock when delivering the message!!! + void ManagementAgent::sendBufferLH(Buffer& buf, + uint32_t length, + qpid::broker::Exchange::shared_ptr exchange, +@@ -517,10 +525,12 @@ void ManagementAgent::sendBufferLH(Buffer& buf, + exchange->route(deliverable, routingKey, 0); + } catch(exception&) {} + } ++ buf.reset(); + } + + + // NOTE WELL: assumes userLock is held by caller (LH) ++// NOTE EVEN WELLER: drops this lock when delivering the message!!! + void ManagementAgent::sendBufferLH(const string& data, + const string& cid, + const Variant::Map& headers, +@@ -630,31 +640,46 @@ void ManagementAgent::periodicProcessing (void) + clientWasAdded = false; + + // +- // Process the entire object map. ++ // Process the entire object map. Remember: we drop the userLock each time we call ++ // sendBuffer(). This allows the managementObjects map to be altered during the ++ // sendBuffer() call, so always restart the search after a sendBuffer() call + // +- for (ManagementObjectMap::iterator baseIter = managementObjects.begin(); +- baseIter != managementObjects.end(); +- baseIter++) { +- ManagementObject* baseObject = baseIter->second; +- uint32_t pcount = 0; +- uint32_t scount = 0; +- +- // +- // Skip until we find a base object requiring a sent message. +- // +- if (baseObject->getFlags() == 1 || +- (!baseObject->getConfigChanged() && +- !baseObject->getInstChanged() && +- !baseObject->getForcePublish() && +- !baseObject->isDeleted())) +- continue; +- ++ while (1) { + Buffer msgBuffer(msgChars, BUFSIZE); + Variant::List list_; ++ uint32_t pcount; ++ uint32_t scount; ++ uint32_t v2Objs; ++ ManagementObjectMap::iterator baseIter; ++ std::string packageName; ++ std::string className; ++ ++ for (baseIter = managementObjects.begin(); ++ baseIter != managementObjects.end(); ++ baseIter++) { ++ ManagementObject* baseObject = baseIter->second; ++ // ++ // Skip until we find a base object requiring processing... ++ // ++ if (baseObject->getFlags() == 0) { ++ packageName = baseObject->getPackageName(); ++ className = baseObject->getClassName(); ++ break; ++ } ++ } ++ ++ if (baseIter == managementObjects.end()) ++ break; // done - all objects processed ++ ++ pcount = scount = 0; ++ v2Objs = 0; ++ list_.clear(); ++ msgBuffer.reset(); + + for (ManagementObjectMap::iterator iter = baseIter; + iter != managementObjects.end(); + iter++) { ++ ManagementObject* baseObject = baseIter->second; + ManagementObject* object = iter->second; + bool send_stats, send_props; + if (baseObject->isSameClass(*object) && object->getFlags() == 0) { +@@ -694,6 +719,7 @@ void ManagementAgent::periodicProcessing (void) + object->mapEncodeValues(values, send_props, send_stats); + map_["_values"] = values; + list_.push_back(map_); ++ v2Objs++; + } + + if (send_props) pcount++; +@@ -703,8 +729,9 @@ void ManagementAgent::periodicProcessing (void) + deleteList.push_back(pair(iter->first, object)); + object->setForcePublish(false); + +- if (qmf1Support && (msgBuffer.available() < HEADROOM)) +- break; ++ if ((qmf1Support && (msgBuffer.available() < HEADROOM)) || ++ (qmf2Support && (v2Objs >= maxV2ReplyObjs))) ++ break; // have enough objects, send an indication... + } + } + +@@ -712,10 +739,10 @@ void ManagementAgent::periodicProcessing (void) + if (qmf1Support) { + contentSize = BUFSIZE - msgBuffer.available(); + if (contentSize > 0) { +- msgBuffer.reset(); + stringstream key; +- key << "console.obj.1.0." << baseObject->getPackageName() << "." << baseObject->getClassName(); +- sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); ++ key << "console.obj.1.0." << packageName << "." << className; ++ msgBuffer.reset(); ++ sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK + QPID_LOG(trace, "SEND V1 Multicast ContentInd to=" << key.str() << " props=" << pcount << " stats=" << scount); + } + } +@@ -726,19 +753,18 @@ void ManagementAgent::periodicProcessing (void) + if (content.length()) { + stringstream key; + Variant::Map headers; +- key << "agent.ind.data." << baseObject->getPackageName() << "." << baseObject->getClassName(); +- // key << "console.obj.1.0." << baseObject->getPackageName() << "." << baseObject->getClassName(); ++ key << "agent.ind.data." << packageName << "." << className; + headers["method"] = "indication"; + headers["qmf.opcode"] = "_data_indication"; + headers["qmf.content"] = "_data"; + headers["qmf.agent"] = name_address; + +- sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); +- QPID_LOG(trace, "SEND Multicast ContentInd to=" << key.str() << " props=" << pcount << " stats=" << scount); ++ sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(trace, "SEND Multicast ContentInd to=" << key.str() << " props=" << pcount << " stats=" << scount << " len=" << content.length()); + } + } + } +- } ++ } // end processing updates for all objects + + // Delete flagged objects + for (list >::reverse_iterator iter = deleteList.rbegin(); +@@ -805,26 +831,24 @@ void ManagementAgent::deleteObjectNowLH(const ObjectId& oid) + if (!object->isDeleted()) + return; + +- if (qmf1Support) { ++ // since sendBufferLH drops the userLock, don't call it until we ++ // are done manipulating the object. + #define DNOW_BUFSIZE 2048 +- char msgChars[DNOW_BUFSIZE]; +- uint32_t contentSize; +- Buffer msgBuffer(msgChars, DNOW_BUFSIZE); ++ char msgChars[DNOW_BUFSIZE]; ++ Buffer msgBuffer(msgChars, DNOW_BUFSIZE); ++ Variant::List list_; ++ stringstream v1key, v2key; ++ ++ if (qmf1Support) { + string sBuf; + ++ v1key << "console.obj.1.0." << object->getPackageName() << "." << object->getClassName(); + encodeHeader(msgBuffer, 'c'); + object->writeProperties(sBuf); + msgBuffer.putRawData(sBuf); +- contentSize = msgBuffer.getPosition(); +- msgBuffer.reset(); +- stringstream key; +- key << "console.obj.1.0." << object->getPackageName() << "." << object->getClassName(); +- sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); +- QPID_LOG(trace, "SEND Immediate(delete) ContentInd to=" << key.str()); + } + + if (qmf2Support) { +- Variant::List list_; + Variant::Map map_; + Variant::Map values; + +@@ -836,10 +860,22 @@ void ManagementAgent::deleteObjectNowLH(const ObjectId& oid) + object->mapEncodeValues(values, true, false); + map_["_values"] = values; + list_.push_back(map_); ++ v2key << "agent.ind.data." << object->getPackageName() << "." << object->getClassName(); ++ } + +- stringstream key; +- key << "agent.ind.data." << object->getPackageName() << "." << object->getClassName(); ++ object = 0; ++ managementObjects.erase(oid); ++ ++ // object deleted, ok to drop lock now. + ++ if (qmf1Support) { ++ uint32_t contentSize = msgBuffer.getPosition(); ++ msgBuffer.reset(); ++ sendBufferLH(msgBuffer, contentSize, mExchange, v1key.str()); ++ QPID_LOG(trace, "SEND Immediate(delete) ContentInd to=" << v1key.str()); ++ } ++ ++ if (qmf2Support) { + Variant::Map headers; + headers["method"] = "indication"; + headers["qmf.opcode"] = "_data_indication"; +@@ -848,11 +884,9 @@ void ManagementAgent::deleteObjectNowLH(const ObjectId& oid) + + string content; + ListCodec::encode(list_, content); +- sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); +- QPID_LOG(trace, "SEND Immediate(delete) ContentInd to=" << key.str()); ++ sendBufferLH(content, "", headers, "amqp/list", v2Topic, v2key.str()); ++ QPID_LOG(trace, "SEND Immediate(delete) ContentInd to=" << v2key.str()); + } +- +- managementObjects.erase(oid); + } + + void ManagementAgent::sendCommandCompleteLH(const string& replyToKey, uint32_t sequence, +@@ -1186,20 +1220,22 @@ void ManagementAgent::handleBrokerRequestLH (Buffer&, const string& replyToKey, + void ManagementAgent::handlePackageQueryLH (Buffer&, const string& replyToKey, uint32_t sequence) + { + QPID_LOG(trace, "RECV PackageQuery replyTo=" << replyToKey); ++ Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE); ++ uint32_t outLen; + + for (PackageMap::iterator pIter = packages.begin (); + pIter != packages.end (); + pIter++) + { +- Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE); +- uint32_t outLen; +- + encodeHeader (outBuffer, 'p', sequence); + encodePackageIndication (outBuffer, pIter); +- outLen = MA_BUFFER_SIZE - outBuffer.available (); ++ } ++ ++ outLen = MA_BUFFER_SIZE - outBuffer.available (); ++ if (outLen) { + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND PackageInd package=" << (*pIter).first << " to=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(trace, "SEND PackageInd to=" << replyToKey << " seq=" << sequence); + } + + sendCommandCompleteLH(replyToKey, sequence); +@@ -1227,25 +1263,32 @@ void ManagementAgent::handleClassQueryLH(Buffer& inBuffer, const string& replyTo + PackageMap::iterator pIter = packages.find(packageName); + if (pIter != packages.end()) + { +- ClassMap cMap = pIter->second; ++ typedef std::pair _ckeyType; ++ std::list<_ckeyType> classes; ++ ClassMap &cMap = pIter->second; + for (ClassMap::iterator cIter = cMap.begin(); + cIter != cMap.end(); +- cIter++) +- { +- if (cIter->second.hasSchema()) +- { +- Buffer outBuffer(outputBuffer, MA_BUFFER_SIZE); +- uint32_t outLen; +- +- encodeHeader(outBuffer, 'q', sequence); +- encodeClassIndication(outBuffer, pIter, cIter); +- outLen = MA_BUFFER_SIZE - outBuffer.available(); +- outBuffer.reset(); +- sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND ClassInd class=" << (*pIter).first << ":" << (*cIter).first.name << +- "(" << Uuid((*cIter).first.hash) << ") to=" << replyToKey << " seq=" << sequence); ++ cIter++) { ++ if (cIter->second.hasSchema()) { ++ classes.push_back(make_pair(cIter->first, cIter->second.kind)); + } + } ++ ++ while (classes.size()) { ++ Buffer outBuffer(outputBuffer, MA_BUFFER_SIZE); ++ uint32_t outLen; ++ ++ encodeHeader(outBuffer, 'q', sequence); ++ encodeClassIndication(outBuffer, packageName, classes.front().first, classes.front().second); ++ ++ outLen = MA_BUFFER_SIZE - outBuffer.available(); ++ outBuffer.reset(); ++ sendBufferLH(outBuffer, outLen, dExchange, replyToKey); ++ QPID_LOG(trace, "SEND ClassInd class=" << packageName << ":" << classes.front().first.name << ++ "(" << Uuid(classes.front().first.hash) << ") to=" << replyToKey << " seq=" << sequence); ++ classes.pop_front(); ++ } ++ + } + sendCommandCompleteLH(replyToKey, sequence); + } +@@ -1370,7 +1413,7 @@ void ManagementAgent::handleSchemaResponseLH(Buffer& inBuffer, const string& /*r + uint32_t outLen; + + encodeHeader(outBuffer, 'q'); +- encodeClassIndication(outBuffer, pIter, cIter); ++ encodeClassIndication(outBuffer, pIter->first, cIter->first, cIter->second.kind); + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, mExchange, "schema.class"); +@@ -1536,32 +1579,60 @@ void ManagementAgent::handleGetQueryLH(Buffer& inBuffer, const string& replyToKe + } + + string className (value->get()); ++ std::listmatches; + ++ // build up a set of all objects to be dumped + for (ManagementObjectMap::iterator iter = managementObjects.begin(); + iter != managementObjects.end(); + iter++) { + ManagementObject* object = iter->second; + if (object->getClassName () == className) { +- Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE); +- uint32_t outLen; ++ matches.push_back(object->getObjectId()); ++ } ++ } ++ ++ // send them (as sendBufferLH drops the userLock) ++ Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE); ++ uint32_t outLen; ++ while (matches.size()) { ++ ObjectId objId = matches.front(); ++ ManagementObjectMap::iterator oIter = managementObjects.find( objId ); ++ if (oIter != managementObjects.end()) { ++ ManagementObject* object = oIter->second; + + if (object->getConfigChanged() || object->getInstChanged()) + object->setUpdateTime(); + + if (!object->isDeleted()) { +- string sBuf; +- encodeHeader(outBuffer, 'g', sequence); +- object->writeProperties(sBuf); +- outBuffer.putRawData(sBuf); +- sBuf.clear(); +- object->writeStatistics(sBuf, true); +- outBuffer.putRawData(sBuf); +- outLen = MA_BUFFER_SIZE - outBuffer.available (); +- outBuffer.reset (); +- sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); ++ string sProps, sStats; ++ object->writeProperties(sProps); ++ object->writeStatistics(sStats, true); ++ ++ size_t len = 8 + sProps.length() + sStats.length(); // 8 == size of header in bytes. ++ if (len > MA_BUFFER_SIZE) { ++ QPID_LOG(error, "Object " << objId << " too large for output buffer - discarded!"); ++ } else { ++ if (outBuffer.available() < len) { // not enough room in current buffer, send it. ++ outLen = MA_BUFFER_SIZE - outBuffer.available (); ++ outBuffer.reset (); ++ sendBufferLH(outBuffer, outLen, dExchange, replyToKey); // drops lock ++ QPID_LOG(trace, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); ++ continue; // lock dropped, need to re-find _SAME_ objid as it may have been deleted. ++ } ++ encodeHeader(outBuffer, 'g', sequence); ++ outBuffer.putRawData(sProps); ++ outBuffer.putRawData(sStats); ++ } + } + } ++ matches.pop_front(); ++ } ++ ++ outLen = MA_BUFFER_SIZE - outBuffer.available (); ++ if (outLen) { ++ outBuffer.reset (); ++ sendBufferLH(outBuffer, outLen, dExchange, replyToKey); ++ QPID_LOG(trace, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); + } + + sendCommandCompleteLH(replyToKey, sequence); +@@ -1583,13 +1654,6 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + headers["qmf.opcode"] = "_query_response"; + headers["qmf.content"] = "_data"; + headers["qmf.agent"] = viaLocal ? "broker" : name_address; +- headers["partial"] = Variant(); +- +- Variant::List list_; +- Variant::Map map_; +- Variant::Map values; +- Variant::Map oidMap; +- string content; + + /* + * Unpack the _what element of the query. Currently we only support OBJECT queries. +@@ -1636,6 +1700,7 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + */ + i = inMap.find("_object_id"); + if (i != inMap.end() && i->second.getType() == qpid::types::VAR_MAP) { ++ Variant::List list_; + ObjectId objId(i->second.asMap()); + + ManagementObjectMap::iterator iter = managementObjects.find(objId); +@@ -1646,6 +1711,10 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + object->setUpdateTime(); + + if (!object->isDeleted()) { ++ Variant::Map map_; ++ Variant::Map values; ++ Variant::Map oidMap; ++ + object->mapEncodeValues(values, true, true); // write both stats and properties + objId.mapEncode(oidMap); + map_["_values"] = values; +@@ -1657,13 +1726,19 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + list_.push_back(map_); + } + +- headers.erase("partial"); ++ string content; ++ + ListCodec::encode(list_, content); + sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); + QPID_LOG(trace, "SENT QueryResponse (query by object_id) to=" << replyTo); + return; + } + } else { ++ // send class-based result. ++ Variant::List _list; ++ Variant::List _subList; ++ unsigned int objCount = 0; ++ + for (ManagementObjectMap::iterator iter = managementObjects.begin(); + iter != managementObjects.end(); + iter++) { +@@ -1671,11 +1746,11 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + if (object->getClassName() == className && + (packageName.empty() || object->getPackageName() == packageName)) { + +- // @todo support multiple object reply per message ++ + if (!object->isDeleted()) { +- values.clear(); +- list_.clear(); +- oidMap.clear(); ++ Variant::Map map_; ++ Variant::Map values; ++ Variant::Map oidMap; + + if (object->getConfigChanged() || object->getInstChanged()) + object->setUpdateTime(); +@@ -1690,21 +1765,39 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + object->getClassName(), + "_data", + object->getMd5Sum()); +- list_.push_back(map_); +- ListCodec::encode(list_, content); +- sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); +- QPID_LOG(trace, "SENT QueryResponse (query by schema_id) to=" << replyTo); ++ _subList.push_back(map_); ++ if (++objCount >= maxV2ReplyObjs) { ++ objCount = 0; ++ _list.push_back(_subList); ++ _subList.clear(); ++ } + } + } + } ++ ++ if (_subList.size()) ++ _list.push_back(_subList); ++ ++ headers["partial"] = Variant(); ++ string content; ++ while (_list.size() > 1) { ++ ListCodec::encode(_list.front().asList(), content); ++ sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); ++ _list.pop_front(); ++ QPID_LOG(trace, "SENT QueryResponse (partial, query by schema_id) to=" << replyTo << " size=" << content.length()); ++ } ++ headers.erase("partial"); ++ ListCodec::encode(_list.size() ? _list.front().asList() : Variant::List(), content); ++ sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); ++ QPID_LOG(trace, "SENT QueryResponse (query by schema_id) to=" << replyTo << " size=" << content.length()); ++ return; + } + +- // Send empty "non-partial" message to indicate CommandComplete +- list_.clear(); +- headers.erase("partial"); +- ListCodec::encode(list_, content); ++ // Unrecognized query - Send empty message to indicate CommandComplete ++ string content; ++ ListCodec::encode(Variant::List(), content); + sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); +- QPID_LOG(trace, "SENT QueryResponse (empty with no 'partial' indicator) to=" << replyTo); ++ QPID_LOG(trace, "SENT QueryResponse (empty) to=" << replyTo); + } + + +@@ -2007,13 +2100,12 @@ void ManagementAgent::encodePackageIndication(Buffer& buf, + } + + void ManagementAgent::encodeClassIndication(Buffer& buf, +- PackageMap::iterator pIter, +- ClassMap::iterator cIter) ++ const std::string packageName, ++ const SchemaClassKey key, ++ uint8_t kind) + { +- SchemaClassKey key = (*cIter).first; +- +- buf.putOctet((*cIter).second.kind); +- buf.putShortString((*pIter).first); ++ buf.putOctet(kind); ++ buf.putShortString(packageName); + key.encode(buf); + } + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index a6e906e..7c8ef99 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -288,6 +288,9 @@ private: + bool qmf1Support; + bool qmf2Support; + ++ // Maximum # of objects allowed in a single V2 response ++ // message. ++ uint32_t maxV2ReplyObjs; + + # define MA_BUFFER_SIZE 65536 + char inputBuffer[MA_BUFFER_SIZE]; +@@ -323,8 +326,9 @@ private: + void encodePackageIndication (framing::Buffer& buf, + PackageMap::iterator pIter); + void encodeClassIndication (framing::Buffer& buf, +- PackageMap::iterator pIter, +- ClassMap::iterator cIter); ++ const std::string packageName, ++ const struct SchemaClassKey key, ++ uint8_t kind); + bool bankInUse (uint32_t bank); + uint32_t allocateNewBank (); + uint32_t assignBankLH (uint32_t requestedPrefix); +diff --git a/qpid/cpp/src/qpid/management/ManagementObject.cpp b/qpid/cpp/src/qpid/management/ManagementObject.cpp +index 5cdf9ec..670a242 100644 +--- a/qpid/cpp/src/qpid/management/ManagementObject.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementObject.cpp +@@ -253,7 +253,7 @@ ManagementObject::ManagementObject(Manageable* _core) : + createTime(qpid::sys::Duration(sys::EPOCH, sys::now())), + destroyTime(0), updateTime(createTime), configChanged(true), + instChanged(true), deleted(false), +- coreObject(_core), forcePublish(false) {} ++ coreObject(_core), flags(0), forcePublish(false) {} + + void ManagementObject::setUpdateTime() + { +-- +1.5.5.6 + +From 2c1c64fc4341fcd3af6cf0a96012e7fe27de6fab Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 2 Aug 2010 09:51:10 +0000 +Subject: [PATCH] Bug 619765 - Fixed - broker shut itself down + +Ensure that for clustered broker the queue cleaner is run on the correct thread. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@981435 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 13289ac64a2b2131da39eadd1136419a8fc5a298) +--- + qpid/cpp/src/qpid/broker/Broker.cpp | 3 ++- + qpid/cpp/src/qpid/broker/QueueCleaner.cpp | 15 +++++++++++---- + qpid/cpp/src/qpid/broker/QueueCleaner.h | 5 +++-- + qpid/cpp/src/tests/QueueTest.cpp | 2 +- + qpid/cpp/src/tests/cluster_tests.py | 29 +++++++++++++++++++++++++++++ + 5 files changed, 46 insertions(+), 8 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp +index 0f1d051..e32ab25 100644 +--- a/qpid/cpp/src/qpid/broker/Broker.cpp ++++ b/qpid/cpp/src/qpid/broker/Broker.cpp +@@ -155,7 +155,7 @@ Broker::Broker(const Broker::Options& conf) : + conf.replayFlushLimit*1024, // convert kb to bytes. + conf.replayHardLimit*1024), + *this), +- queueCleaner(queues, timer), ++ queueCleaner(queues, &timer), + queueEvents(poller,!conf.asyncQueueEvents), + recovery(true), + clusterUpdatee(false), +@@ -503,6 +503,7 @@ bool Broker::deferDeliveryImpl(const std::string& , + + void Broker::setClusterTimer(std::auto_ptr t) { + clusterTimer = t; ++ queueCleaner.setTimer(clusterTimer.get()); + } + + const std::string Broker::TCP_TRANSPORT("tcp"); +diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +index ed98468..a462fe7 100644 +--- a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp ++++ b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +@@ -26,17 +26,24 @@ + namespace qpid { + namespace broker { + +-QueueCleaner::QueueCleaner(QueueRegistry& q, sys::Timer& t) : queues(q), timer(t) {} ++QueueCleaner::QueueCleaner(QueueRegistry& q, sys::Timer* t) : queues(q), timer(t) {} + + QueueCleaner::~QueueCleaner() + { + if (task) task->cancel(); + } + ++void QueueCleaner::setTimer(sys::Timer* t) ++{ ++ timer = t; ++} ++ + void QueueCleaner::start(qpid::sys::Duration p) + { +- task = new Task(*this, p); +- timer.add(task); ++ if (timer) { ++ task = new Task(*this, p); ++ timer->add(task); ++ } + } + + QueueCleaner::Task::Task(QueueCleaner& p, qpid::sys::Duration d) : sys::TimerTask(d), parent(p) {} +@@ -66,7 +73,7 @@ void QueueCleaner::fired() + queues.eachQueue(collect); + std::for_each(copy.begin(), copy.end(), boost::bind(&Queue::purgeExpired, _1)); + task->setupNextFire(); +- timer.add(task); ++ if (timer) timer->add(task); + } + + +diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.h b/qpid/cpp/src/qpid/broker/QueueCleaner.h +index 11c2d18..8eae0af 100644 +--- a/qpid/cpp/src/qpid/broker/QueueCleaner.h ++++ b/qpid/cpp/src/qpid/broker/QueueCleaner.h +@@ -35,8 +35,9 @@ class QueueRegistry; + class QueueCleaner + { + public: +- QPID_BROKER_EXTERN QueueCleaner(QueueRegistry& queues, sys::Timer& timer); ++ QPID_BROKER_EXTERN QueueCleaner(QueueRegistry& queues, sys::Timer* timer); + QPID_BROKER_EXTERN ~QueueCleaner(); ++ QPID_BROKER_EXTERN void setTimer(sys::Timer* timer); + QPID_BROKER_EXTERN void start(qpid::sys::Duration period); + private: + class Task : public sys::TimerTask +@@ -50,7 +51,7 @@ class QueueCleaner + + boost::intrusive_ptr task; + QueueRegistry& queues; +- sys::Timer& timer; ++ sys::Timer* timer; + + void fired(); + }; +diff --git a/qpid/cpp/src/tests/QueueTest.cpp b/qpid/cpp/src/tests/QueueTest.cpp +index 80c69ac..adc5c0b 100644 +--- a/qpid/cpp/src/tests/QueueTest.cpp ++++ b/qpid/cpp/src/tests/QueueTest.cpp +@@ -687,7 +687,7 @@ QPID_AUTO_TEST_CASE(testQueueCleaner) { + addMessagesToQueue(10, *queue, 200, 400); + BOOST_CHECK_EQUAL(queue->getMessageCount(), 10u); + +- QueueCleaner cleaner(queues, timer); ++ QueueCleaner cleaner(queues, &timer); + cleaner.start(100 * qpid::sys::TIME_MSEC); + ::usleep(300*1000); + BOOST_CHECK_EQUAL(queue->getMessageCount(), 5u); +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index e6d3900..6a443ab 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -117,6 +117,35 @@ class ShortTests(BrokerTest): + broker1.ready() + broker2.ready() + ++ def test_queue_cleaner(self): ++ """ Regression test to ensure that cleanup of expired messages works correctly """ ++ cluster = self.cluster(2, args=["--queue-purge-interval", 3]) ++ ++ s0 = cluster[0].connect().session() ++ sender = s0.sender("my-lvq; {create: always, node:{x-declare:{arguments:{'qpid.last_value_queue':1}}}}") ++ #send 10 messages that will all expire and be cleaned up ++ for i in range(1, 10): ++ msg = Message("message-%s" % i) ++ msg.properties["qpid.LVQ_key"] = "a" ++ msg.ttl = 0.1 ++ sender.send(msg) ++ #wait for queue cleaner to run ++ time.sleep(3) ++ ++ #test all is ok by sending and receiving a message ++ msg = Message("non-expiring") ++ msg.properties["qpid.LVQ_key"] = "b" ++ sender.send(msg) ++ s0.connection.close() ++ s1 = cluster[1].connect().session() ++ m = s1.receiver("my-lvq", capacity=1).fetch(timeout=1) ++ s1.acknowledge() ++ self.assertEqual("non-expiring", m.content) ++ s1.connection.close() ++ ++ for b in cluster: b.ready() # Make sure all brokers still running. ++ ++ + class LongTests(BrokerTest): + """Tests that can run for a long time if -DDURATION= is set""" + def duration(self): +-- +1.5.5.6 + +From 98d60f067c05a308f82b23fcdfa87494d783daa1 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Mon, 2 Aug 2010 12:10:52 +0000 +Subject: [PATCH] BZ-620402 fixed bug in flow control logic; added tests + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@981474 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/endpoints.py | 7 ++-- + qpid/python/qpid/tests/messaging/__init__.py | 19 +++++++++- + qpid/python/qpid/tests/messaging/endpoints.py | 46 +++++++++++++++++++----- + 3 files changed, 57 insertions(+), 15 deletions(-) + +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index f989d6c..7d7d424 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -1009,8 +1009,9 @@ class Receiver(Endpoint, object): + if msg is None: + raise Empty() + elif self._capacity not in (0, UNLIMITED.value): +- if self.received - self.returned <= int(ceil(self.threshold * self._capacity)): +- self.granted = self.received + self._capacity ++ t = int(ceil(self.threshold * self._capacity)) ++ if self.received - self.returned <= t: ++ self.granted = self.returned + self._capacity + self._wakeup() + return msg + +@@ -1018,7 +1019,7 @@ class Receiver(Endpoint, object): + if self._capacity == UNLIMITED.value: + self.granted = UNLIMITED + else: +- self.granted = self.received + self._capacity ++ self.granted = self.returned + self._capacity + + @synchronized + def close(self, timeout=None): +diff --git a/qpid/python/qpid/tests/messaging/__init__.py b/qpid/python/qpid/tests/messaging/__init__.py +index a160f38..ddacf77 100644 +--- a/qpid/python/qpid/tests/messaging/__init__.py ++++ b/qpid/python/qpid/tests/messaging/__init__.py +@@ -18,6 +18,7 @@ + # + + import time ++from math import ceil + from qpid.harness import Skipped + from qpid.messaging import * + from qpid.tests import Test +@@ -134,9 +135,23 @@ class Base(Test): + contents = self.drain(rcv) + assert len(contents) == 0, "%s is supposed to be empty: %s" % (rcv, contents) + +- def assertAvailable(self, rcv, expected): ++ def assertAvailable(self, rcv, expected=None, lower=None, upper=None): ++ if expected is not None: ++ if lower is not None or upper is not None: ++ raise ValueError("cannot specify lower or upper when specifying expected") ++ lower = expected ++ upper = expected ++ else: ++ if lower is None: ++ lower = int(ceil(rcv.threshold*rcv.capacity)) ++ if upper is None: ++ upper = rcv.capacity ++ + p = rcv.available() +- assert p == expected, "expected %s, got %s" % (expected, p) ++ if upper == lower: ++ assert p == lower, "expected %s, got %s" % (lower, p) ++ else: ++ assert lower <= p <= upper, "expected %s to be in range [%s, %s]" % (p, lower, upper) + + def sleep(self): + time.sleep(self.delay()) +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index bc17068..b360482 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -659,9 +659,9 @@ class ReceiverTests(Base): + def setup_receiver(self): + return self.ssn.receiver(RECEIVER_Q) + +- def send(self, base, count = None): ++ def send(self, base, count = None, sync=True): + content = self.content(base, count) +- self.snd.send(content) ++ self.snd.send(content, sync=sync) + return content + + def testFetch(self): +@@ -762,25 +762,51 @@ class ReceiverTests(Base): + + self.ssn.acknowledge() + +- def testCapacity(self): +- self.rcv.capacity = 5 ++ def capacityTest(self, capacity, threshold=None): ++ if threshold is not None: ++ self.rcv.threshold = threshold ++ self.rcv.capacity = capacity + self.assertAvailable(self.rcv, 0) + +- for i in range(15): +- self.send("testCapacity", i) ++ for i in range(2*capacity): ++ self.send("capacityTest(%s, %s)" % (capacity, threshold), i, sync=False) ++ self.snd.sync() + self.sleep() +- self.assertAvailable(self.rcv, 5) ++ self.assertAvailable(self.rcv) + +- self.drain(self.rcv, limit = 5) ++ first = capacity/2 ++ second = capacity - first ++ self.drain(self.rcv, limit = first) ++ self.sleep() ++ self.assertAvailable(self.rcv) ++ self.drain(self.rcv, limit = second) + self.sleep() +- self.assertAvailable(self.rcv, 5) ++ self.assertAvailable(self.rcv) + + drained = self.drain(self.rcv) +- assert len(drained) == 10, "%s, %s" % (len(drained), drained) ++ assert len(drained) == capacity, "%s, %s" % (len(drained), drained) + self.assertAvailable(self.rcv, 0) + + self.ssn.acknowledge() + ++ def testCapacity5(self): ++ self.capacityTest(5) ++ ++ def testCapacity5Threshold1(self): ++ self.capacityTest(5, 1) ++ ++ def testCapacity10(self): ++ self.capacityTest(10) ++ ++ def testCapacity10Threshold1(self): ++ self.capacityTest(10, 1) ++ ++ def testCapacity100(self): ++ self.capacityTest(100) ++ ++ def testCapacity100Threshold1(self): ++ self.capacityTest(100, 1) ++ + def testCapacityUNLIMITED(self): + self.rcv.capacity = UNLIMITED + self.assertAvailable(self.rcv, 0) +-- +1.5.5.6 + +From 83ef8baf38b9e8a2cfef2cf7c1ca1d8c7df3a819 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 2 Aug 2010 14:20:02 +0000 +Subject: [PATCH] Bug 619765 - Further update to use explicit task name + +Give queue cleaner task an explicit name + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@981517 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e61825897d4933d73d5dbc2133b8191b238116fa) +--- + qpid/cpp/src/qpid/broker/QueueCleaner.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +index a462fe7..a3d06cc 100644 +--- a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp ++++ b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +@@ -46,7 +46,7 @@ void QueueCleaner::start(qpid::sys::Duration p) + } + } + +-QueueCleaner::Task::Task(QueueCleaner& p, qpid::sys::Duration d) : sys::TimerTask(d), parent(p) {} ++QueueCleaner::Task::Task(QueueCleaner& p, qpid::sys::Duration d) : sys::TimerTask(d, "QueueCleaner::fired"), parent(p) {} + + void QueueCleaner::Task::fire() + { +-- +1.5.5.6 + +From ee1b8f81a8ddcc71f91997ae160355f474bf78bb Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Sun, 1 Aug 2010 17:53:57 +0000 +Subject: [PATCH] Bug 619166 - QMF: bindPackage() + bindClass() does not work with V2 routing keys. + +QPID-2782: update qmf console binding api. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@981277 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 62 ++++++++++++++++------ + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 3 + + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 29 ++++++++-- + qpid/cpp/src/qpid/management/ManagementAgent.h | 1 + + 4 files changed, 73 insertions(+), 22 deletions(-) + +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index 351e0bf..401c46b 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -53,6 +53,20 @@ namespace { + + const string defaultVendorName("vendor"); + const string defaultProductName("product"); ++ ++ // Create a valid binding key substring by ++ // replacing all '.' chars with '_' ++ const string keyifyNameStr(const string& name) ++ { ++ string n2 = name; ++ ++ size_t pos = n2.find('.'); ++ while (pos != n2.npos) { ++ n2.replace(pos, 1, "_"); ++ pos = n2.find('.', pos); ++ } ++ return n2; ++ } + } + + ManagementAgent::Singleton::Singleton(bool disableManagement) +@@ -140,6 +154,9 @@ void ManagementAgentImpl::setName(const string& vendor, const string& product, c + inst = instance; + + name_address = vendor + ":" + product + ":" + inst; ++ vendorNameKey = keyifyNameStr(vendor); ++ productNameKey = keyifyNameStr(product); ++ instanceNameKey = keyifyNameStr(inst); + attrMap["_instance"] = inst; + attrMap["_name"] = name_address; + } +@@ -280,13 +297,23 @@ ObjectId ManagementAgentImpl::addObject(ManagementObject* object, + + void ManagementAgentImpl::raiseEvent(const ManagementEvent& event, severity_t severity) + { ++ static const std::string severityStr[] = { ++ "emerg", "alert", "crit", "error", "warn", ++ "note", "info", "debug" ++ }; + sys::Mutex::ScopedLock lock(agentLock); + Buffer outBuffer(eventBuffer, MA_BUFFER_SIZE); + uint8_t sev = (severity == SEV_DEFAULT) ? event.getSeverity() : (uint8_t) severity; + stringstream key; + +- key << "console.event." << assignedBrokerBank << "." << assignedAgentBank << "." << +- event.getPackageName() << "." << event.getEventName(); ++ // key << "console.event." << assignedBrokerBank << "." << assignedAgentBank << "." << ++ // event.getPackageName() << "." << event.getEventName(); ++ key << "agent.ind.event." << keyifyNameStr(event.getPackageName()) ++ << "." << keyifyNameStr(event.getEventName()) ++ << "." << severityStr[sev] ++ << "." << vendorNameKey ++ << "." << productNameKey ++ << "." << instanceNameKey; + + Variant::Map map_; + Variant::Map schemaId; +@@ -405,25 +432,16 @@ void ManagementAgentImpl::retrieveData() + void ManagementAgentImpl::sendHeartbeat() + { + static const string addr_exchange("qmf.default.topic"); +- static const string addr_key_base("agent.ind.heartbeat"); ++ static const string addr_key_base("agent.ind.heartbeat."); + + Variant::Map map; + Variant::Map headers; + string content; + std::stringstream addr_key; + +- addr_key << addr_key_base; +- +- // append .. to address key if present. +- Variant::Map::const_iterator v; +- if ((v = attrMap.find("_vendor")) != attrMap.end() && +- v->second.getString() != defaultVendorName) { +- addr_key << "." << v->second.getString(); +- if ((v = attrMap.find("_product")) != attrMap.end() && +- v->second.getString() != defaultProductName) { +- addr_key << "." << v->second.getString(); +- } +- } ++ addr_key << addr_key_base << vendorNameKey ++ << "." << productNameKey ++ << "." << instanceNameKey; + + headers["method"] = "indication"; + headers["qmf.opcode"] = "_agent_heartbeat_indication"; +@@ -927,6 +945,7 @@ void ManagementAgentImpl::encodeClassIndication(Buffer& buf, + + void ManagementAgentImpl::periodicProcessing() + { ++ string addr_key_base = "agent.ind.data."; + sys::Mutex::ScopedLock lock(agentLock); + list > deleteList; + +@@ -968,6 +987,9 @@ void ManagementAgentImpl::periodicProcessing() + !baseObject->isDeleted())) + continue; + ++ std::string packageName = baseObject->getPackageName(); ++ std::string className = baseObject->getClassName(); ++ + Variant::List list_; + + for (ManagementObjectMap::iterator iter = baseIter; +@@ -1014,7 +1036,15 @@ void ManagementAgentImpl::periodicProcessing() + headers["qmf.content"] = "_data"; + headers["qmf.agent"] = name_address; + +- connThreadBody.sendBuffer(content, "", headers, "qmf.default.topic", "agent.ind.data", "amqp/list"); ++ std::stringstream addr_key; ++ addr_key << addr_key_base; ++ addr_key << keyifyNameStr(packageName) ++ << "." << keyifyNameStr(className) ++ << "." << vendorNameKey ++ << "." << productNameKey ++ << "." << instanceNameKey; ++ ++ connThreadBody.sendBuffer(content, "", headers, "qmf.default.topic", addr_key.str(), "amqp/list"); + QPID_LOG(trace, "SENT DataIndication"); + } + } +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index 4a58807..a7c6b25 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -149,6 +149,9 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + + qpid::types::Variant::Map attrMap; + std::string name_address; ++ std::string vendorNameKey; // vendor name with "." --> "_" ++ std::string productNameKey; // product name with "." --> "_" ++ std::string instanceNameKey; // agent instance with "." --> "_" + uint16_t interval; + bool extThread; + sys::PipeHandle* pipeHandle; +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index e98de96..5602dda 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -221,6 +221,7 @@ void ManagementAgent::setName(const string& vendor, const string& product, const + + vendorNameKey = keyifyNameStr(vendor); + productNameKey = keyifyNameStr(product); ++ instanceNameKey = keyifyNameStr(inst); + } + + +@@ -393,11 +394,14 @@ void ManagementAgent::raiseEvent(const ManagementEvent& event, severity_t severi + headers["qmf.agent"] = name_address; + + stringstream key; +- key << "agent.ind.event." << vendorNameKey +- << "." << productNameKey ++ key << "agent.ind.event." << keyifyNameStr(event.getPackageName()) ++ << "." << keyifyNameStr(event.getEventName()) + << "." << severityStr[sev] +- << "." << keyifyNameStr(event.getPackageName()) +- << "." << keyifyNameStr(event.getEventName()); ++ << "." << vendorNameKey ++ << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ key << "." << instanceNameKey; ++ + + string content; + MapCodec::encode(map_, content); +@@ -753,7 +757,13 @@ void ManagementAgent::periodicProcessing (void) + if (content.length()) { + stringstream key; + Variant::Map headers; +- key << "agent.ind.data." << packageName << "." << className; ++ key << "agent.ind.data." << keyifyNameStr(packageName) ++ << "." << keyifyNameStr(className) ++ << "." << vendorNameKey ++ << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ key << "." << instanceNameKey; ++ + headers["method"] = "indication"; + headers["qmf.opcode"] = "_data_indication"; + headers["qmf.content"] = "_data"; +@@ -800,6 +810,8 @@ void ManagementAgent::periodicProcessing (void) + std::stringstream addr_key; + + addr_key << "agent.ind.heartbeat." << vendorNameKey << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ addr_key << "." << instanceNameKey; + + Variant::Map map; + Variant::Map headers; +@@ -860,7 +872,12 @@ void ManagementAgent::deleteObjectNowLH(const ObjectId& oid) + object->mapEncodeValues(values, true, false); + map_["_values"] = values; + list_.push_back(map_); +- v2key << "agent.ind.data." << object->getPackageName() << "." << object->getClassName(); ++ v2key << "agent.ind.data." << keyifyNameStr(object->getPackageName()) ++ << "." << keyifyNameStr(object->getClassName()) ++ << "." << vendorNameKey ++ << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ v2key << "." << instanceNameKey; + } + + object = 0; +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index 7c8ef99..d12b417 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -283,6 +283,7 @@ private: + std::string name_address; + std::string vendorNameKey; // "." --> "_" + std::string productNameKey; // "." --> "_" ++ std::string instanceNameKey; // "." --> "_" + + // supported management protocol + bool qmf1Support; +-- +1.5.5.6 + +From b3c2e154f01e1e6444a89176bf9dd0ec3a71b14b Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 3 Aug 2010 15:33:12 +0000 +Subject: [PATCH] Bug 620418 - Cluster safe assertion when shutting down broker with unexpired sessions held + +Disable non-0 session timeouts. + +Since session resume is not fully implemented, non-0 session timeouts +are of no use. Moreover the partial implementation causes problems in +a cluster as stale sessions kept alive by a timeout can interfere with +failover and updates. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@981933 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 3a703237459096093b59befb5843f3edf23a35d3) +--- + qpid/cpp/src/qpid/SessionState.cpp | 5 ++- + qpid/cpp/src/qpid/SessionState.h | 4 +- + qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp | 2 +- + qpid/cpp/src/qpid/broker/SessionState.cpp | 5 ++ + qpid/cpp/src/qpid/broker/SessionState.h | 2 + + qpid/cpp/src/tests/BrokerFixture.h | 8 ++-- + qpid/cpp/src/tests/ClusterFailover.cpp | 53 +++++++++++++++++++++--- + qpid/cpp/src/tests/ClusterFixture.h | 2 +- + 8 files changed, 66 insertions(+), 15 deletions(-) + +diff --git a/qpid/cpp/src/qpid/SessionState.cpp b/qpid/cpp/src/qpid/SessionState.cpp +index 4f370c6..e501960 100644 +--- a/qpid/cpp/src/qpid/SessionState.cpp ++++ b/qpid/cpp/src/qpid/SessionState.cpp +@@ -95,6 +95,9 @@ SessionState::SendState::SendState() : unflushedSize(), replaySize(), bytesSince + + SessionState::ReceiveState::ReceiveState() : bytesSinceKnownCompleted() {} + ++uint32_t SessionState::getTimeout() const { return timeout; } ++void SessionState::setTimeout(uint32_t seconds) { timeout = seconds; } ++ + SessionPoint SessionState::senderGetCommandPoint() { return sender.sendPoint; } + SequenceSet SessionState::senderGetIncomplete() const { return sender.incomplete; } + SessionPoint SessionState::senderGetReplayPoint() const { return sender.replayPoint; } +@@ -240,7 +243,7 @@ SessionState::Configuration::Configuration(size_t flush, size_t hard) : + replayFlushLimit(flush), replayHardLimit(hard) {} + + SessionState::SessionState(const SessionId& i, const Configuration& c) +- : id(i), timeout(), config(c), stateful(), receiverTrackingDisabled(false) ++ : id(i), timeout(0), config(c), stateful(false), receiverTrackingDisabled(false) + { + QPID_LOG(debug, "SessionState::SessionState " << id << ": " << this); + } +diff --git a/qpid/cpp/src/qpid/SessionState.h b/qpid/cpp/src/qpid/SessionState.h +index da28738..02853b1 100644 +--- a/qpid/cpp/src/qpid/SessionState.h ++++ b/qpid/cpp/src/qpid/SessionState.h +@@ -92,8 +92,8 @@ class SessionState { + + const SessionId& getId() const { return id; } + +- uint32_t getTimeout() const { return timeout; } +- void setTimeout(uint32_t seconds) { timeout = seconds; } ++ QPID_COMMON_EXTERN virtual uint32_t getTimeout() const; ++ QPID_COMMON_EXTERN virtual void setTimeout(uint32_t seconds); + + bool operator==(const SessionId& other) const { return id == other; } + bool operator==(const SessionState& other) const { return id == other.id; } +diff --git a/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp b/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp +index 2448e9e..b113d49 100644 +--- a/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp ++++ b/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp +@@ -205,7 +205,7 @@ void SessionHandler::handleDetach() { + void SessionHandler::requestTimeout(uint32_t t) { + checkAttached(); + getState()->setTimeout(t); +- peer.timeout(t); ++ peer.timeout(getState()->getTimeout()); + } + + void SessionHandler::timeout(uint32_t t) { +diff --git a/qpid/cpp/src/qpid/broker/SessionState.cpp b/qpid/cpp/src/qpid/broker/SessionState.cpp +index be4f8c7..426ef19 100644 +--- a/qpid/cpp/src/qpid/broker/SessionState.cpp ++++ b/qpid/cpp/src/qpid/broker/SessionState.cpp +@@ -380,6 +380,11 @@ void SessionState::readyToSend() { + + Broker& SessionState::getBroker() { return broker; } + ++// Session resume is not fully implemented so it is useless to set a ++// non-0 timeout. Moreover it creates problems in a cluster because ++// dead sessions are kept and interfere with failover. ++void SessionState::setTimeout(uint32_t) { } ++ + framing::AMQP_ClientProxy& SessionState::getClusterOrderProxy() { + return handler->getClusterOrderProxy(); + } +diff --git a/qpid/cpp/src/qpid/broker/SessionState.h b/qpid/cpp/src/qpid/broker/SessionState.h +index eade93d..3dcb0a6 100644 +--- a/qpid/cpp/src/qpid/broker/SessionState.h ++++ b/qpid/cpp/src/qpid/broker/SessionState.h +@@ -92,6 +92,8 @@ class SessionState : public qpid::SessionState, + + Broker& getBroker(); + ++ void setTimeout(uint32_t seconds); ++ + /** OutputControl **/ + void abort(); + void activateOutput(); +diff --git a/qpid/cpp/src/tests/BrokerFixture.h b/qpid/cpp/src/tests/BrokerFixture.h +index 566fbda..29920bb 100644 +--- a/qpid/cpp/src/tests/BrokerFixture.h ++++ b/qpid/cpp/src/tests/BrokerFixture.h +@@ -122,10 +122,10 @@ struct ClientT { + qpid::client::LocalQueue lq; + std::string name; + +- ClientT(uint16_t port, const std::string& name_=std::string()) +- : connection(port), session(connection.newSession(name_)), subs(session), name(name_) {} +- ClientT(const qpid::client::ConnectionSettings& settings, const std::string& name_=std::string()) +- : connection(settings), session(connection.newSession(name_)), subs(session), name(name_) {} ++ ClientT(uint16_t port, const std::string& name_=std::string(), int timeout=0) ++ : connection(port), session(connection.newSession(name_,timeout)), subs(session), name(name_) {} ++ ClientT(const qpid::client::ConnectionSettings& settings, const std::string& name_=std::string(), int timeout=0) ++ : connection(settings), session(connection.newSession(name_, timeout)), subs(session), name(name_) {} + + ~ClientT() { close(); } + void close() { session.close(); connection.close(); } +diff --git a/qpid/cpp/src/tests/ClusterFailover.cpp b/qpid/cpp/src/tests/ClusterFailover.cpp +index 6b1ef99..06fc1c0 100644 +--- a/qpid/cpp/src/tests/ClusterFailover.cpp ++++ b/qpid/cpp/src/tests/ClusterFailover.cpp +@@ -50,19 +50,60 @@ using boost::shared_ptr; + // Timeout for tests that wait for messages + const sys::Duration TIMEOUT=sys::TIME_SEC/4; + ++ClusterFixture::Args getArgs() { ++ ClusterFixture::Args args; ++ args += "--auth", "no", "--no-module-dir", "--load-module", getLibPath("CLUSTER_LIB"); ++ return args; ++} + + // Test re-connecting with same session name after a failure. + QPID_AUTO_TEST_CASE(testReconnectSameSessionName) { +- ostringstream clusterLib; +- clusterLib << getLibPath("CLUSTER_LIB"); +- ClusterFixture::Args args = list_of("--auth")("no")("--no-module-dir")("--no-data-dir")("--load-module")(clusterLib.str()); +- ClusterFixture cluster(2, args, -1); +- Client c0(cluster[0], "foo"); ++ ClusterFixture cluster(2, getArgs(), -1); ++ // Specify a timeout to make sure it is ignored, session resume is ++ // not implemented so sessions belonging to dead brokers should ++ // not be kept. ++ Client c0(cluster[0], "foo", 5); + BOOST_CHECK_EQUAL(2u, knownBrokerPorts(c0.connection, 2).size()); // wait for both. ++ c0.session.queueDeclare("q"); ++ c0.session.messageTransfer(arg::content=Message("sendme", "q")); ++ BOOST_CHECK_EQUAL(c0.subs.get("q").getData(), "sendme"); + cluster.killWithSilencer(0, c0.connection, 9); +- Client c1(cluster[1], "foo"); // Using same name, should be cleaned up. ++ Client c1(cluster[1], "foo", 5); ++ c1.session.queueQuery(); // Try to use the session. + } + ++QPID_AUTO_TEST_CASE(testReconnectExclusiveQueue) { ++ // Regresion test. Session timeouts should be ignored ++ // by the broker as session resume is not implemented. ++ ClusterFixture cluster(2, getArgs(), -1); ++ Client c0(cluster[0], "foo", 5); ++ c0.session.queueDeclare("exq", arg::exclusive=true); ++ SubscriptionSettings settings; ++ settings.exclusive = true; ++ settings.autoAck = 0; ++ Subscription s0 = c0.subs.subscribe(c0.lq, "exq", settings, "exsub"); ++ c0.session.messageTransfer(arg::content=Message("sendme", "exq")); ++ BOOST_CHECK_EQUAL(c0.lq.get().getData(), "sendme"); ++ ++ // Regression: core dump on exit if unacked messages were left in ++ // a session with a timeout. ++ cluster.kill(0); ++ ++ // Regression: session timeouts prevented re-connecting to ++ // exclusive queue. ++ Client c1(cluster[1]); ++ c1.session.queueDeclare("exq", arg::exclusive=true); ++ Subscription s1 = c1.subs.subscribe(c1.lq, "exq", settings, "exsub"); ++ s1.cancel(); ++ ++ // Regression: session timeouts prevented new member joining ++ // cluster with exclusive queues. ++ cluster.add(); ++ Client c2(cluster[2]); ++ c2.session.queueQuery(); ++} ++ ++ + QPID_AUTO_TEST_SUITE_END() + + }} // namespace qpid::tests +diff --git a/qpid/cpp/src/tests/ClusterFixture.h b/qpid/cpp/src/tests/ClusterFixture.h +index 1eee32b..f548ff9 100644 +--- a/qpid/cpp/src/tests/ClusterFixture.h ++++ b/qpid/cpp/src/tests/ClusterFixture.h +@@ -89,7 +89,7 @@ class ClusterFixture : public vector { + /** Kill a forked broker with sig, or shutdown localBroker. */ + void kill(size_t n, int sig=SIGINT); + +- /** Kill a broker and suppressing errors from closing connection c. */ ++ /** Kill a broker and suppress errors from closing connection c. */ + void killWithSilencer(size_t n, client::Connection& c, int sig=SIGINT); + + private: +-- +1.5.5.6 + +From 969537f16232d4b71ea129a15e80606323697cd5 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Wed, 4 Aug 2010 14:15:24 +0000 +Subject: [PATCH] Missed in a previous commit. Updated README from Chuck Rolke. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@982261 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/README-winsdk.txt | 75 ++++++++++++++++++++++++++++++++++++++------ + 1 files changed, 65 insertions(+), 10 deletions(-) + +diff --git a/qpid/cpp/README-winsdk.txt b/qpid/cpp/README-winsdk.txt +index 8582852..76d5f56 100644 +--- a/qpid/cpp/README-winsdk.txt ++++ b/qpid/cpp/README-winsdk.txt +@@ -1,12 +1,13 @@ +- Qpid-Cpp-Win-Sdk +- ================ ++ Qpid-Cpp-Win-Sdk ++ ================ + + Table of Contents + ================= + 1. Introduction + 2. Prerequisites + 3. Kit contents +-4. Notes ++4. Building dotnet_examples ++5. Notes + + + 1. Introduction +@@ -42,28 +43,82 @@ The kit directories hold the content described here. + the associated debug program database (.pdb) files. + Boost library files. + MSVC90 runtime library files. +- ++ + \include + A directory tree of .h files. +- ++ + \lib + The linker .lib files that correspond to files in /bin. +- ++ + \docs + Apache Qpid C++ API Reference +- ++ + \examples + A Visual Studio solution file and associated project files + to demonstrate using this SDK in C++. +- ++ ++ \dotnet_examples ++ A set of example source files written in C#, Visual Basic, and ++ PowerShell. ++ + \management + A python scripting code set for generating QMF data structures. + + For more information on Qpid QMF go to: + https://cwiki.apache.org/qpid/qpid-management-framework.html + +- +-4. Notes ++ ++4. Building dotnet_examples ++=========================== ++ ++Each file in the \dotnet_examples directory is a stand-alone, main ++console program that illustrates some facet of programming the Qpid ++Messaging API. Use the following steps to create a project that ++builds and executes an example csharp program. ++ ++A. Assume that the WinSdk was downloaded to d:\winsdk. ++B. Start Visual Studio ++C. Add File->New->Project... ++ 1. Select C#, Console Application ++ 2. Name: csharp.direct.receiver ++ 3. Location: D:\winsdk\dotnet_examples ++ 4. Check: "Create directory for solution" ++ 5. Press OK ++D. In Solution Explorer ++ 1. Delete program.cs ++ 2. Add->Existing Item. ++ Select d:\winsdk\dotnet_examples\csharp.direct.receiver.cs ++ 3. Add Reference to d:\winsdk\bin\org.apache.qpid.messaging.dll ++ Note: In each source file a 'using' statement selects ++ Org.Apache.Qpid.Messaging, Org.Apache.Qpid.Messaging.Sessionreceiver, ++ or both. Resolve these statements with references to the files ++ in \bin. ++ 4. Right-click the project and select Properties ++ Select the Build tab. ++ Select Configuration pulldown entry "All Configurations" ++ Set the Output Path to "d:\winsdk\bin" ++E. Right-click the solution and select Configuration Manager ++ 1. Select Configuration -> Debug ++ 2. Select Platform -> ++ pick x86, OK ++F. In the standard toolbar verify that ++ 1. Configuration selects Debug ++ 2. Platform selects x86 ++G. Build the solution. ++ 1. The solution should build with no errors or warnings. ++H. Verify that the solution placed the executables in the proper place: ++ 1. Directory d:\winsdk\bin has files csharp.direct.receiver.exe, ++ csharp.direct.receiver.pdb, and csharp.direct.receiver.vshost.exe. ++ ++The solution is now ready to execute. You may set breakpoints in the ++Visual Studio source file or run the executable directly from ++d:\winsdk\bin. ++ ++This process may be repeated for each example csharp source file. A similar ++process is followed for the Visual Basic example. The PowerShell example ++is executed directly in a PowerShell window. ++ ++5. Notes + ======== + * The Qpid-Cpp binaries are produced for the 32-bit Win32 platform. + +-- +1.5.5.6 + +From f11e0ad59844cd1ca4c01c237766bfce7e26cb54 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 5 Aug 2010 17:07:35 +0000 +Subject: [PATCH] Fix crash on exit with --cluster-cman. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@982698 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 472c966a8bc5408cd52eb596315017e2aec5843d) +--- + qpid/cpp/src/qpid/cluster/Quorum_cman.cpp | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp b/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp +index 507d964..f7d2c5c 100644 +--- a/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp ++++ b/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp +@@ -47,6 +47,7 @@ Quorum::Quorum(boost::function err) : enable(false), cman(0), cmanFd(0) + } + + Quorum::~Quorum() { ++ if (dispatchHandle.get()) dispatchHandle->stopWatch(); + dispatchHandle.reset(); + if (cman) cman_finish(cman); + } +@@ -68,6 +69,7 @@ void Quorum::start(boost::shared_ptr p) { + + void Quorum::watch(int fd) { + cmanFd = fd; ++ if (dispatchHandle.get()) dispatchHandle->stopWatch(); + dispatchHandle.reset( + new sys::DispatchHandleRef( + sys::PosixIOHandle(cmanFd), +-- +1.5.5.6 + +From e81d614bcfe0227d41f57e6f0ea2156bf057ca11 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Mon, 9 Aug 2010 11:53:25 +0000 +Subject: [PATCH] BZ-621998 fixed heartbeating + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@983597 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 41 +++++++++++++++++++++++++++--- + qpid/python/qpid/messaging/exceptions.py | 3 ++ + 2 files changed, 40 insertions(+), 4 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 9b34a46..567871b 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -339,6 +339,7 @@ class Driver: + self._reconnect_log = self.connection.reconnect_log + self._host = 0 + self._retrying = False ++ self._next_retry = None + self._transport = None + + self._timeout = None +@@ -427,7 +428,7 @@ class Driver: + delay = self._delay + self._delay = min(2*self._delay, + self.connection.reconnect_interval_max) +- self._timeout = time.time() + delay ++ self._next_retry = time.time() + delay + if self._reconnect_log: + log.warn("recoverable error[attempt %s]: %s" % (self._attempts, e)) + if delay > 0: +@@ -437,6 +438,8 @@ class Driver: + else: + self.engine.close(e) + ++ self.schedule() ++ + def update_status(self): + status = self.engine.status() + return getattr(self, "st_%s" % status.lower())() +@@ -471,6 +474,18 @@ class Driver: + def timeout(self): + self.dispatch() + self._notify() ++ self.schedule() ++ ++ def schedule(self): ++ times = [] ++ if self.connection.heartbeat: ++ times.append(time.time() + self.connection.heartbeat) ++ if self._next_retry: ++ times.append(self._next_retry) ++ if times: ++ self._timeout = min(times) ++ else: ++ self._timeout = None + + def dispatch(self): + try: +@@ -479,12 +494,17 @@ class Driver: + self.connect() + else: + self.engine.dispatch() ++ except HeartbeatTimeout, e: ++ self.close_engine(e) + except: + # XXX: Does socket get leaked if this occurs? + msg = compat.format_exc() + self.connection.error = InternalError(text=msg) + + def connect(self): ++ if self._retrying and time.time() < self._next_retry: ++ return ++ + try: + # XXX: should make this non blocking + host, port = self._next_host() +@@ -500,11 +520,12 @@ class Driver: + raise ConnectError("no such transport: %s" % self.connection.transport) + if self._retrying and self._reconnect_log: + log.warn("reconnect succeeded: %s:%s", host, port) +- self._timeout = None ++ self._next_retry = None + self._attempts = 0 + self._host = 0 + self._delay = self.connection.reconnect_interval_min + self._retrying = False ++ self.schedule() + except socket.error, e: + self.close_engine(ConnectError(text=str(e))) + +@@ -556,6 +577,8 @@ class Engine: + self._status = CLOSED + self._buf = "" + self._hdr = "" ++ self._last_in = None ++ self._last_out = None + self._op_enc = OpEncoder() + self._seg_enc = SegmentEncoder() + self._frame_enc = FrameEncoder() +@@ -595,6 +618,7 @@ class Engine: + return self._status + + def write(self, data): ++ self._last_in = time.time() + try: + if self._sasl_decode: + data = self._sasl.decode(data) +@@ -652,6 +676,7 @@ class Engine: + if self._sasl_encode: + bytes = self._sasl.encode(bytes) + self._buf += bytes ++ self._last_out = time.time() + + def do_header(self, hdr): + cli_major = 0; cli_minor = 10 +@@ -689,8 +714,8 @@ class Engine: + self._sasl_decode = True + self.connection._transport_connected = True + +- def connection_heartbeat(self, hrt): +- self.write_op(ConnectionHeartbeat()) ++ def do_connection_heartbeat(self, hrt): ++ pass + + def do_connection_close(self, close): + self.write_op(ConnectionCloseOk()) +@@ -766,6 +791,14 @@ class Engine: + self.attach(ssn) + self.process(ssn) + ++ if self.connection.heartbeat and self._status != CLOSED: ++ now = time.time() ++ if self._last_in is not None and \ ++ now - self._last_in > 2*self.connection.heartbeat: ++ raise HeartbeatTimeout(text="heartbeat timeout") ++ if self._last_out is None or now - self._last_out >= self.connection.heartbeat/2.0: ++ self.write_op(ConnectionHeartbeat()) ++ + def open(self): + self._reset() + self._status = OPEN +diff --git a/qpid/python/qpid/messaging/exceptions.py b/qpid/python/qpid/messaging/exceptions.py +index 27bc5af..0296d61 100644 +--- a/qpid/python/qpid/messaging/exceptions.py ++++ b/qpid/python/qpid/messaging/exceptions.py +@@ -63,6 +63,9 @@ class AuthenticationFailure(ConnectError): + class ConnectionClosed(ConnectionError): + pass + ++class HeartbeatTimeout(ConnectionError): ++ pass ++ + ## Session Errors + + class SessionError(MessagingError): +-- +1.5.5.6 + +From 688688c265d541a47aade8f4290af064a47ef286 Mon Sep 17 00:00:00 2001 +From: Jonathan Robie +Date: Mon, 9 Aug 2010 16:34:04 +0000 +Subject: [PATCH] Changed conditional assignment to vanilla if/then/else, for compatibility with older Python. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@983718 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 4b67ae91be27048aca8ded77b1089dd0487eff03) +--- + qpid/python/examples/api/hello | 11 +++++++++-- + 1 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/examples/api/hello b/qpid/python/examples/api/hello +index 4644189..a220fe7 100755 +--- a/qpid/python/examples/api/hello ++++ b/qpid/python/examples/api/hello +@@ -21,8 +21,15 @@ + import sys + from qpid.messaging import * + +-broker = "localhost:5672" if len(sys.argv)<2 else sys.argv[1] +-address = "amq.topic" if len(sys.argv)<3 else sys.argv[2] ++if len(sys.argv)<2: ++ broker = "localhost:5672" ++else: ++ broker = sys.argv[1] ++ ++if len(sys.argv)<3: ++ address = "amq.topic" ++else: ++ address = sys.argv[2] + + connection = Connection(broker) + +-- +1.5.5.6 + +From 1ca7496b9db44598aabf63c729e8dde926805a81 Mon Sep 17 00:00:00 2001 +From: Jonathan Robie +Date: Mon, 9 Aug 2010 17:31:40 +0000 +Subject: [PATCH] Removed finally - Python before 2.5 did not allow finally together with specific exceptions. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@983743 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e3bc2893e6a3fae16079ba7bdcb034f3026fee76) +--- + qpid/python/examples/api/hello | 4 ++-- + qpid/python/examples/api/hello_xml | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/qpid/python/examples/api/hello b/qpid/python/examples/api/hello +index a220fe7..ad314da 100755 +--- a/qpid/python/examples/api/hello ++++ b/qpid/python/examples/api/hello +@@ -48,5 +48,5 @@ try: + + except MessagingError,m: + print m +-finally: +- connection.close() ++ ++connection.close() +diff --git a/qpid/python/examples/api/hello_xml b/qpid/python/examples/api/hello_xml +index 07c2b13..ab567ec 100755 +--- a/qpid/python/examples/api/hello_xml ++++ b/qpid/python/examples/api/hello_xml +@@ -73,5 +73,5 @@ try: + + except MessagingError,m: + print m +-finally: +- connection.close() ++ ++connection.close() +-- +1.5.5.6 + +From 179f1e04ddf8e9dff0d1d6d2ebe53f6efc1fa786 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Mon, 9 Aug 2010 19:29:18 +0000 +Subject: [PATCH] Bug 621666 - qpidd with --cluster-cman option does not start. + +Fixed memory management error in cluster::Quorum causing problems with --cluster-cman. + +Sometimes caused brokers using --cluster-cman to fail with a "no +permission" or "bad file-descriptor" error. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@983786 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 02a8c58fbed023e020f7cbababe31c3f69ef845d) +--- + qpid/cpp/src/qpid/cluster/Quorum_cman.cpp | 6 +++--- + qpid/cpp/src/qpid/cluster/Quorum_cman.h | 3 ++- + 2 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp b/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp +index f7d2c5c..728f824 100644 +--- a/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp ++++ b/qpid/cpp/src/qpid/cluster/Quorum_cman.cpp +@@ -42,7 +42,7 @@ void cmanCallbackFn(cman_handle_t handle, void */*privdata*/, int reason, int /* + } + } + +-Quorum::Quorum(boost::function err) : enable(false), cman(0), cmanFd(0) { ++Quorum::Quorum(boost::function err) : cman(0), cmanFd(0) { + errorFn = err; + } + +@@ -54,7 +54,6 @@ Quorum::~Quorum() { + + void Quorum::start(boost::shared_ptr p) { + poller = p; +- enable = true; + QPID_LOG(debug, "Connecting to quorum service."); + cman = cman_init(0); + if (cman == 0) throw ErrnoException("Can't connect to cman service"); +@@ -70,9 +69,10 @@ void Quorum::start(boost::shared_ptr p) { + void Quorum::watch(int fd) { + cmanFd = fd; + if (dispatchHandle.get()) dispatchHandle->stopWatch(); ++ ioHandle.reset(new sys::PosixIOHandle(cmanFd)); + dispatchHandle.reset( + new sys::DispatchHandleRef( +- sys::PosixIOHandle(cmanFd), ++ *ioHandle, // This must outlive the dispatchHandleRef + boost::bind(&Quorum::dispatch, this, _1), // read + 0, // write + boost::bind(&Quorum::disconnect, this, _1) // disconnect +diff --git a/qpid/cpp/src/qpid/cluster/Quorum_cman.h b/qpid/cpp/src/qpid/cluster/Quorum_cman.h +index 130f1ba..98e6bae 100644 +--- a/qpid/cpp/src/qpid/cluster/Quorum_cman.h ++++ b/qpid/cpp/src/qpid/cluster/Quorum_cman.h +@@ -34,6 +34,7 @@ extern "C" { + namespace qpid { + namespace sys { + class Poller; ++class PosixIOHandle; + } + + namespace cluster { +@@ -51,9 +52,9 @@ class Quorum { + int getFd(); + void watch(int fd); + +- bool enable; + cman_handle_t cman; + int cmanFd; ++ std::auto_ptr ioHandle; + std::auto_ptr dispatchHandle; + boost::shared_ptr poller; + }; +-- +1.5.5.6 + +From 95f384d368d1442bf483d2ab302019b584fa323c Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 11 Aug 2010 10:06:24 +0000 +Subject: [PATCH] Bug 622422 - Fixed - clustered qpidd during failover_soak test reports tons of 'error Couldn't setup next timer firing' errors + +Revert commits r981517 and r981435 that moved periodic purging of queues onto cluster's timer. If the timer fires during an update it causes errors; it also puts a potentially time consuming task on the clusters dispatch thread. Instead don't purge LVQs to avoid cluster inconsistencies (and more directly the assertion that aims to prevent these). + +(I.e. this provides a different fix to BZ619765). + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984357 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 2cc213d595173286c1a8a4346619bedde6255393) +--- + qpid/cpp/src/qpid/broker/Broker.cpp | 3 +-- + qpid/cpp/src/qpid/broker/Queue.cpp | 26 ++++++++++++++++++++++---- + qpid/cpp/src/qpid/broker/QueueCleaner.cpp | 17 +++++------------ + qpid/cpp/src/qpid/broker/QueueCleaner.h | 5 ++--- + qpid/cpp/src/tests/QueueTest.cpp | 2 +- + 5 files changed, 31 insertions(+), 22 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp +index e32ab25..0f1d051 100644 +--- a/qpid/cpp/src/qpid/broker/Broker.cpp ++++ b/qpid/cpp/src/qpid/broker/Broker.cpp +@@ -155,7 +155,7 @@ Broker::Broker(const Broker::Options& conf) : + conf.replayFlushLimit*1024, // convert kb to bytes. + conf.replayHardLimit*1024), + *this), +- queueCleaner(queues, &timer), ++ queueCleaner(queues, timer), + queueEvents(poller,!conf.asyncQueueEvents), + recovery(true), + clusterUpdatee(false), +@@ -503,7 +503,6 @@ bool Broker::deferDeliveryImpl(const std::string& , + + void Broker::setClusterTimer(std::auto_ptr t) { + clusterTimer = t; +- queueCleaner.setTimer(clusterTimer.get()); + } + + const std::string Broker::TCP_TRANSPORT("tcp"); +diff --git a/qpid/cpp/src/qpid/broker/Queue.cpp b/qpid/cpp/src/qpid/broker/Queue.cpp +index 40ef605..e598574 100644 +--- a/qpid/cpp/src/qpid/broker/Queue.cpp ++++ b/qpid/cpp/src/qpid/broker/Queue.cpp +@@ -494,16 +494,34 @@ void Queue::purgeExpired() + { + //As expired messages are discarded during dequeue also, only + //bother explicitly expiring if the rate of dequeues since last +- //attempt is less than one per second. +- if (dequeueTracker.sampleRatePerSecond() < 1) { ++ //attempt is less than one per second. ++ ++ //Note: This method is currently called periodically on the timer ++ //thread. In a clustered broker this means that the purging does ++ //not occur on the cluster event dispatch thread and consequently ++ //that is not totally ordered w.r.t other events (including ++ //publication of messages). However the cluster does ensure that ++ //the actual expiration of messages (as distinct from the removing ++ //of those expired messages from the queue) *is* consistently ++ //ordered w.r.t. cluster events. This means that delivery of ++ //messages is in general consistent across the cluster inspite of ++ //any non-determinism in the triggering of a purge. However at ++ //present purging a last value queue could potentially cause ++ //inconsistencies in the cluster (as the order w.r.t publications ++ //can affect the order in which messages appear in the ++ //queue). Consequently periodic purging of an LVQ is not enabled ++ //(expired messages will be removed on delivery and consolidated ++ //by key as part of normal LVQ operation). ++ ++ if (dequeueTracker.sampleRatePerSecond() < 1 && !lastValueQueue) { + Messages expired; + { + Mutex::ScopedLock locker(messageLock); + for (Messages::iterator i = messages.begin(); i != messages.end();) { +- if (lastValueQueue) checkLvqReplace(*i); ++ //Re-introduce management of LVQ-specific state here ++ //if purging is renabled for that case (see note above) + if (i->payload->hasExpired()) { + expired.push_back(*i); +- clearLVQIndex(*i); + i = messages.erase(i); + } else { + ++i; +diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +index a3d06cc..ed98468 100644 +--- a/qpid/cpp/src/qpid/broker/QueueCleaner.cpp ++++ b/qpid/cpp/src/qpid/broker/QueueCleaner.cpp +@@ -26,27 +26,20 @@ + namespace qpid { + namespace broker { + +-QueueCleaner::QueueCleaner(QueueRegistry& q, sys::Timer* t) : queues(q), timer(t) {} ++QueueCleaner::QueueCleaner(QueueRegistry& q, sys::Timer& t) : queues(q), timer(t) {} + + QueueCleaner::~QueueCleaner() + { + if (task) task->cancel(); + } + +-void QueueCleaner::setTimer(sys::Timer* t) +-{ +- timer = t; +-} +- + void QueueCleaner::start(qpid::sys::Duration p) + { +- if (timer) { +- task = new Task(*this, p); +- timer->add(task); +- } ++ task = new Task(*this, p); ++ timer.add(task); + } + +-QueueCleaner::Task::Task(QueueCleaner& p, qpid::sys::Duration d) : sys::TimerTask(d, "QueueCleaner::fired"), parent(p) {} ++QueueCleaner::Task::Task(QueueCleaner& p, qpid::sys::Duration d) : sys::TimerTask(d), parent(p) {} + + void QueueCleaner::Task::fire() + { +@@ -73,7 +66,7 @@ void QueueCleaner::fired() + queues.eachQueue(collect); + std::for_each(copy.begin(), copy.end(), boost::bind(&Queue::purgeExpired, _1)); + task->setupNextFire(); +- if (timer) timer->add(task); ++ timer.add(task); + } + + +diff --git a/qpid/cpp/src/qpid/broker/QueueCleaner.h b/qpid/cpp/src/qpid/broker/QueueCleaner.h +index 8eae0af..11c2d18 100644 +--- a/qpid/cpp/src/qpid/broker/QueueCleaner.h ++++ b/qpid/cpp/src/qpid/broker/QueueCleaner.h +@@ -35,9 +35,8 @@ class QueueRegistry; + class QueueCleaner + { + public: +- QPID_BROKER_EXTERN QueueCleaner(QueueRegistry& queues, sys::Timer* timer); ++ QPID_BROKER_EXTERN QueueCleaner(QueueRegistry& queues, sys::Timer& timer); + QPID_BROKER_EXTERN ~QueueCleaner(); +- QPID_BROKER_EXTERN void setTimer(sys::Timer* timer); + QPID_BROKER_EXTERN void start(qpid::sys::Duration period); + private: + class Task : public sys::TimerTask +@@ -51,7 +50,7 @@ class QueueCleaner + + boost::intrusive_ptr task; + QueueRegistry& queues; +- sys::Timer* timer; ++ sys::Timer& timer; + + void fired(); + }; +diff --git a/qpid/cpp/src/tests/QueueTest.cpp b/qpid/cpp/src/tests/QueueTest.cpp +index adc5c0b..80c69ac 100644 +--- a/qpid/cpp/src/tests/QueueTest.cpp ++++ b/qpid/cpp/src/tests/QueueTest.cpp +@@ -687,7 +687,7 @@ QPID_AUTO_TEST_CASE(testQueueCleaner) { + addMessagesToQueue(10, *queue, 200, 400); + BOOST_CHECK_EQUAL(queue->getMessageCount(), 10u); + +- QueueCleaner cleaner(queues, &timer); ++ QueueCleaner cleaner(queues, timer); + cleaner.start(100 * qpid::sys::TIME_MSEC); + ::usleep(300*1000); + BOOST_CHECK_EQUAL(queue->getMessageCount(), 5u); +-- +1.5.5.6 + +From 2c93c55fe50024804904c4355d7da63ea089e3ad Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 12 Aug 2010 00:59:15 +0000 +Subject: [PATCH] Bug 623511 - Fix (part 1) - Set of type conversions for Variant is incomplete + +Completed the set of permutations of type-conversion for all signed and unsigned integer types. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984622 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit f930b1204df8524204632cd50ea3216db3c533a2) +--- + qpid/cpp/src/qpid/types/Variant.cpp | 162 +++++++++++- + qpid/cpp/src/tests/Variant.cpp | 497 ++++++++++++++++++++++++++++++++++- + 2 files changed, 651 insertions(+), 8 deletions(-) + +diff --git a/qpid/cpp/src/qpid/types/Variant.cpp b/qpid/cpp/src/qpid/types/Variant.cpp +index 1457449..e43b999 100644 +--- a/qpid/cpp/src/qpid/types/Variant.cpp ++++ b/qpid/cpp/src/qpid/types/Variant.cpp +@@ -216,10 +216,35 @@ uint8_t VariantImpl::asUint8() const + { + switch(type) { + case VAR_UINT8: return value.ui8; +- case VAR_STRING: return convertFromString(); ++ case VAR_UINT16: ++ if (value.ui16 <= 0x00ff) ++ return uint8_t(value.ui16); ++ break; ++ case VAR_UINT32: ++ if (value.ui32 <= 0x000000ff) ++ return uint8_t(value.ui32); ++ break; ++ case VAR_UINT64: ++ if (value.ui64 <= 0x00000000000000ff) ++ return uint8_t(value.ui64); ++ break; ++ case VAR_INT8: ++ if (value.i8 >= 0) ++ return uint8_t(value.i8); ++ break; ++ case VAR_INT16: ++ if (value.i16 >= 0 && value.i16 <= 0x00ff) ++ return uint8_t(value.i16); ++ break; ++ case VAR_INT32: ++ if (value.i32 >= 0 && value.i32 <= 0x000000ff) ++ return uint8_t(value.i32); ++ break; + case VAR_INT64: + if (value.i64 >= 0 && value.i64 <= 0x00000000000000ff) + return uint8_t(value.i64); ++ break; ++ case VAR_STRING: return convertFromString(); + default: break; + } + throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT8))); +@@ -229,9 +254,30 @@ uint16_t VariantImpl::asUint16() const + switch(type) { + case VAR_UINT8: return value.ui8; + case VAR_UINT16: return value.ui16; ++ case VAR_UINT32: ++ if (value.ui32 <= 0x0000ffff) ++ return uint16_t(value.ui32); ++ break; ++ case VAR_UINT64: ++ if (value.ui64 <= 0x000000000000ffff) ++ return uint16_t(value.ui64); ++ break; ++ case VAR_INT8: ++ if (value.i8 >= 0) ++ return uint16_t(value.i8); ++ break; ++ case VAR_INT16: ++ if (value.i16 >= 0) ++ return uint16_t(value.i16); ++ break; ++ case VAR_INT32: ++ if (value.i32 >= 0 && value.i32 <= 0x0000ffff) ++ return uint16_t(value.i32); ++ break; + case VAR_INT64: + if (value.i64 >= 0 && value.i64 <= 0x000000000000ffff) + return uint16_t(value.i64); ++ break; + case VAR_STRING: return convertFromString(); + default: break; + } +@@ -243,9 +289,26 @@ uint32_t VariantImpl::asUint32() const + case VAR_UINT8: return value.ui8; + case VAR_UINT16: return value.ui16; + case VAR_UINT32: return value.ui32; ++ case VAR_UINT64: ++ if (value.ui64 <= 0x00000000ffffffff) ++ return uint32_t(value.ui64); ++ break; ++ case VAR_INT8: ++ if (value.i8 >= 0) ++ return uint32_t(value.i8); ++ break; ++ case VAR_INT16: ++ if (value.i16 >= 0) ++ return uint32_t(value.i16); ++ break; ++ case VAR_INT32: ++ if (value.i32 >= 0) ++ return uint32_t(value.i32); ++ break; + case VAR_INT64: + if (value.i64 >= 0 && value.i64 <= 0x00000000ffffffff) + return uint32_t(value.i64); ++ break; + case VAR_STRING: return convertFromString(); + default: break; + } +@@ -258,17 +321,67 @@ uint64_t VariantImpl::asUint64() const + case VAR_UINT16: return value.ui16; + case VAR_UINT32: return value.ui32; + case VAR_UINT64: return value.ui64; ++ case VAR_INT8: ++ if (value.i8 >= 0) ++ return uint64_t(value.i8); ++ break; ++ case VAR_INT16: ++ if (value.i16 >= 0) ++ return uint64_t(value.i16); ++ break; ++ case VAR_INT32: ++ if (value.i32 >= 0) ++ return uint64_t(value.i32); ++ break; ++ case VAR_INT64: ++ if (value.i64 >= 0) ++ return uint64_t(value.i64); ++ break; + case VAR_STRING: return convertFromString(); +- default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT64))); ++ default: break; + } ++ throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT64))); + } ++ ++#define I8_MIN -128 ++#define I8_MAX 127 ++#define I16_MIN -32768 ++#define I16_MAX 32767 ++#define I32_MIN -2147483648 ++#define I32_MAX 2147483647 ++ + int8_t VariantImpl::asInt8() const + { + switch(type) { + case VAR_INT8: return value.i8; ++ case VAR_INT16: ++ if ((value.i16 >= I8_MIN) && (value.i16 <= I8_MAX)) ++ return int8_t(value.i16); ++ break; ++ case VAR_INT32: ++ if ((value.i32 >= I8_MIN) && (value.i32 <= I8_MAX)) ++ return int8_t(value.i32); ++ break; + case VAR_INT64: +- if (value.i64 <= 0x000000000000007f) ++ if ((value.i64 >= I8_MIN) && (value.i64 <= I8_MAX)) + return int8_t(value.i64); ++ break; ++ case VAR_UINT8: ++ if (value.ui8 <= I8_MAX) ++ return int8_t(value.ui8); ++ break; ++ case VAR_UINT16: ++ if (value.ui16 <= I8_MAX) ++ return int8_t(value.ui16); ++ break; ++ case VAR_UINT32: ++ if (value.ui32 <= I8_MAX) ++ return int8_t(value.ui32); ++ break; ++ case VAR_UINT64: ++ if (value.ui64 <= I8_MAX) ++ return int8_t(value.ui64); ++ break; + case VAR_STRING: return convertFromString(); + default: break; + } +@@ -279,9 +392,27 @@ int16_t VariantImpl::asInt16() const + switch(type) { + case VAR_INT8: return value.i8; + case VAR_INT16: return value.i16; ++ case VAR_INT32: ++ if ((value.i32 >= I16_MIN) && (value.i32 <= I16_MAX)) ++ return int16_t(value.i32); ++ break; + case VAR_INT64: +- if (value.i64 <= 0x0000000000007fff) ++ if ((value.i64 >= I16_MIN) && (value.i64 <= I16_MAX)) + return int16_t(value.i64); ++ break; ++ case VAR_UINT8: return int16_t(value.ui8); ++ case VAR_UINT16: ++ if (value.ui16 <= I16_MAX) ++ return int16_t(value.ui16); ++ break; ++ case VAR_UINT32: ++ if (value.ui32 <= I16_MAX) ++ return int16_t(value.ui32); ++ break; ++ case VAR_UINT64: ++ if (value.ui64 <= I16_MAX) ++ return int16_t(value.ui64); ++ break; + case VAR_STRING: return convertFromString(); + default: break; + } +@@ -294,8 +425,19 @@ int32_t VariantImpl::asInt32() const + case VAR_INT16: return value.i16; + case VAR_INT32: return value.i32; + case VAR_INT64: +- if (value.i64 <= 0x000000007fffffff) ++ if ((value.i64 >= I32_MIN) && (value.i64 <= I32_MAX)) + return int32_t(value.i64); ++ break; ++ case VAR_UINT8: return int32_t(value.ui8); ++ case VAR_UINT16: return int32_t(value.ui16); ++ case VAR_UINT32: ++ if (value.ui32 <= I32_MAX) ++ return int32_t(value.ui32); ++ break; ++ case VAR_UINT64: ++ if (value.ui64 <= I32_MAX) ++ return int32_t(value.ui64); ++ break; + case VAR_STRING: return convertFromString(); + default: break; + } +@@ -308,9 +450,17 @@ int64_t VariantImpl::asInt64() const + case VAR_INT16: return value.i16; + case VAR_INT32: return value.i32; + case VAR_INT64: return value.i64; ++ case VAR_UINT8: return int64_t(value.ui8); ++ case VAR_UINT16: return int64_t(value.ui16); ++ case VAR_UINT32: return int64_t(value.ui32); ++ case VAR_UINT64: ++ if (value.ui64 <= 0x7fffffffffffffff) ++ return int64_t(value.ui64); ++ break; + case VAR_STRING: return convertFromString(); +- default: throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_INT64))); ++ default: break; + } ++ throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_INT64))); + } + float VariantImpl::asFloat() const + { +diff --git a/qpid/cpp/src/tests/Variant.cpp b/qpid/cpp/src/tests/Variant.cpp +index 0d456bc..17ec997 100644 +--- a/qpid/cpp/src/tests/Variant.cpp ++++ b/qpid/cpp/src/tests/Variant.cpp +@@ -58,7 +58,6 @@ QPID_AUTO_TEST_CASE(testConversions) + BOOST_CHECK_EQUAL((uint32_t) 7, value.asUint32()); + BOOST_CHECK_EQUAL((uint64_t) 7, value.asUint64()); + BOOST_CHECK_EQUAL(std::string("7"), value.asString()); +- BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); + + value = (uint16_t) 8; + BOOST_CHECK_EQUAL(std::string("8"), value.asString()); +@@ -72,7 +71,6 @@ QPID_AUTO_TEST_CASE(testConversions) + BOOST_CHECK_EQUAL(std::string("9999999"), value.asString()); + BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); +- BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); + + value = "true"; + BOOST_CHECK(value.asBool()); +@@ -86,6 +84,501 @@ QPID_AUTO_TEST_CASE(testConversions) + BOOST_CHECK_THROW(value.asBool(), InvalidConversion); + } + ++QPID_AUTO_TEST_CASE(testSizeConversionsUint) ++{ ++ Variant value; ++ ++ //uint8 (in 7 bits) to other uints, ints ++ value = (uint8_t) 7; ++ BOOST_CHECK_EQUAL((uint8_t) 7, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 7, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 7, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 7, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 7, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 7, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 7, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 7, value.asInt64()); ++ ++ //uint8 (in 8 bits) to other uints, ints ++ value = (uint8_t) 200; ++ BOOST_CHECK_EQUAL((uint8_t) 200, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 200, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 200, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 200, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 200, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 200, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 200, value.asInt64()); ++ ++ ++ ++ //uint16 (in 7 bits) to other uints, ints ++ value = (uint16_t) 120; ++ BOOST_CHECK_EQUAL((uint8_t) 120, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 120, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 120, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 120, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 120, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 120, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 120, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 120, value.asInt64()); ++ ++ //uint16 (more than 7 bits) to other uints, ints ++ value = (uint16_t) 240; ++ BOOST_CHECK_EQUAL((uint8_t) 240, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 240, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 240, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 240, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 240, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 240, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 240, value.asInt64()); ++ ++ //uint16 (more than 8 bits) to other uints, ints ++ value = (uint16_t) 1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 1000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 1000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 1000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 1000, value.asInt64()); ++ ++ //uint16 (more than 15 bits) to other uints, ints ++ value = (uint16_t) 32770; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 32770, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 32770, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 32770, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) 32770, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 32770, value.asInt64()); ++ ++ ++ ++ //uint32 (in 7 bits) to other uints, ints ++ value = (uint32_t) 120; ++ BOOST_CHECK_EQUAL((uint8_t) 120, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 120, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 120, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 120, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 120, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 120, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 120, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 120, value.asInt64()); ++ ++ //uint32 (more than 7 bits) to other uints, ints ++ value = (uint32_t) 240; ++ BOOST_CHECK_EQUAL((uint8_t) 240, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 240, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 240, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 240, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 240, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 240, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 240, value.asInt64()); ++ ++ //uint32 (more than 8 bits) to other uints, ints ++ value = (uint32_t) 1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 1000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 1000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 1000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 1000, value.asInt64()); ++ ++ //uint32 (more than 15 bits) to other uints, ints ++ value = (uint32_t) 32770; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 32770, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 32770, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 32770, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) 32770, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 32770, value.asInt64()); ++ ++ //uint32 (more than 16 bits) to other uints, ints ++ value = (uint32_t) 66000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint32_t) 66000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 66000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) 66000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 66000, value.asInt64()); ++ ++ ++ ++ //uint64 (in 7 bits) to other uints, ints ++ value = (uint64_t) 120; ++ BOOST_CHECK_EQUAL((uint8_t) 120, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 120, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 120, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 120, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 120, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 120, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 120, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 120, value.asInt64()); ++ ++ //uint64 (more than 7 bits) to other uints, ints ++ value = (uint64_t) 240; ++ BOOST_CHECK_EQUAL((uint8_t) 240, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 240, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 240, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 240, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 240, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 240, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 240, value.asInt64()); ++ ++ //uint64 (more than 8 bits) to other uints, ints ++ value = (uint64_t) 1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 1000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 1000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 1000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 1000, value.asInt64()); ++ ++ //uint64 (more than 15 bits) to other uints, ints ++ value = (uint64_t) 32770; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 32770, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 32770, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 32770, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) 32770, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 32770, value.asInt64()); ++ ++ //uint64 (more than 16 bits) to other uints, ints ++ value = (uint64_t) 66000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint32_t) 66000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 66000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) 66000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 66000, value.asInt64()); ++ ++ //uint64 (more than 31 bits) to other uints, ints ++ value = (uint64_t) 3000000000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64()); ++ ++ //uint64 (more than 32 bits) to other uints, ints ++ value = (uint64_t) 7000000000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint64_t) 7000000000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int64_t) 7000000000, value.asInt64()); ++ ++ //uint64 (more than 63 bits) to other uints, ints ++ value = (uint64_t) 0x8000000000000000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint64_t) 0x8000000000000000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt64(), InvalidConversion); ++} ++ ++QPID_AUTO_TEST_CASE(testSizeConversionsInt) ++{ ++ Variant value; ++ ++ //int8 (positive in 7 bits) ++ value = (int8_t) 100; ++ BOOST_CHECK_EQUAL((uint8_t) 100, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 100, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 100, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 100, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 100, value.asInt64()); ++ ++ //int8 (negative) ++ value = (int8_t) -100; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int8_t) -100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) -100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) -100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -100, value.asInt64()); ++ ++ ++ ++ //int16 (positive in 7 bits) ++ value = (int16_t) 100; ++ BOOST_CHECK_EQUAL((uint8_t) 100, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 100, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 100, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 100, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 100, value.asInt64()); ++ ++ //int16 (positive in 8 bits) ++ value = (int16_t) 200; ++ BOOST_CHECK_EQUAL((uint8_t) 200, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 200, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 200, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 200, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 200, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 200, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 200, value.asInt64()); ++ ++ //int16 (positive in more than 8 bits) ++ value = (int16_t) 1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 1000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 1000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 1000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 1000, value.asInt64()); ++ ++ //int16 (negative in 7 bits) ++ value = (int16_t) -100; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int8_t) -100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) -100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) -100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -100, value.asInt64()); ++ ++ //int16 (negative in more than 7 bits) ++ value = (int16_t) -1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) -1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) -1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -1000, value.asInt64()); ++ ++ ++ ++ //int32 (positive in 7 bits) ++ value = (int32_t) 100; ++ BOOST_CHECK_EQUAL((uint8_t) 100, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 100, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 100, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 100, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 100, value.asInt64()); ++ ++ //int32 (positive in 8 bits) ++ value = (int32_t) 200; ++ BOOST_CHECK_EQUAL((uint8_t) 200, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 200, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 200, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 200, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 200, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 200, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 200, value.asInt64()); ++ ++ //int32 (positive in more than 8 bits) ++ value = (int32_t) 1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 1000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 1000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 1000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 1000, value.asInt64()); ++ ++ //int32 (positive in more than 15 bits) ++ value = (int32_t) 40000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 40000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 40000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 40000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) 40000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 40000, value.asInt64()); ++ ++ //int32 (negative in 7 bits) ++ value = (int32_t) -100; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int8_t) -100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) -100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) -100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -100, value.asInt64()); ++ ++ //int32 (negative in more than 7 bits) ++ value = (int32_t) -1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) -1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) -1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -1000, value.asInt64()); ++ ++ //int32 (negative in more than 15 bits) ++ value = (int32_t) -40000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) -40000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -40000, value.asInt64()); ++ ++ ++ ++ //int64 (positive in 7 bits) ++ value = (int64_t) 100; ++ BOOST_CHECK_EQUAL((uint8_t) 100, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 100, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 100, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 100, value.asUint64()); ++ BOOST_CHECK_EQUAL((int8_t) 100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) 100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 100, value.asInt64()); ++ ++ //int64 (positive in 8 bits) ++ value = (int64_t) 200; ++ BOOST_CHECK_EQUAL((uint8_t) 200, value.asUint8()); ++ BOOST_CHECK_EQUAL((uint16_t) 200, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 200, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 200, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 200, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 200, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 200, value.asInt64()); ++ ++ //int64 (positive in more than 8 bits) ++ value = (int64_t) 1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 1000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 1000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 1000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) 1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) 1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 1000, value.asInt64()); ++ ++ //int64 (positive in more than 15 bits) ++ value = (int64_t) 40000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint16_t) 40000, value.asUint16()); ++ BOOST_CHECK_EQUAL((uint32_t) 40000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 40000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) 40000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) 40000, value.asInt64()); ++ ++ //int64 (positive in more than 31 bits) ++ value = (int64_t) 3000000000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64()); ++ ++ //int64 (positive in more than 32 bits) ++ value = (int64_t) 5000000000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((uint64_t) 5000000000, value.asUint64()); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int64_t) 5000000000, value.asInt64()); ++ ++ //int64 (negative in 7 bits) ++ value = (int64_t) -100; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int8_t) -100, value.asInt8()); ++ BOOST_CHECK_EQUAL((int16_t) -100, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) -100, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -100, value.asInt64()); ++ ++ //int64 (negative in more than 7 bits) ++ value = (int64_t) -1000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int16_t) -1000, value.asInt16()); ++ BOOST_CHECK_EQUAL((int32_t) -1000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -1000, value.asInt64()); ++ ++ //int64 (negative in more than 15 bits) ++ value = (int64_t) -40000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int32_t) -40000, value.asInt32()); ++ BOOST_CHECK_EQUAL((int64_t) -40000, value.asInt64()); ++ ++ //int64 (negative in more than 31 bits) ++ value = (int64_t) -3000000000; ++ BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asUint64(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); ++ BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); ++ BOOST_CHECK_EQUAL((int64_t) -3000000000, value.asInt64()); ++} ++ + QPID_AUTO_TEST_CASE(testAssignment) + { + Variant value("abc"); +-- +1.5.5.6 + +From 755efea92763683611adcf5c542d932d31ac31cc Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Thu, 12 Aug 2010 10:30:54 +0000 +Subject: [PATCH] Bug 623511 - Fix (part 2) - Set of type conversions for Variant is incomplete + +Fix some compilation errors + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984714 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 3e91a2e09c079320c86d1121936ff99e0c2d1925) +--- + qpid/cpp/src/qpid/types/Variant.cpp | 40 ++++++++++++++-------------------- + qpid/cpp/src/tests/Variant.cpp | 36 +++++++++++++++--------------- + 2 files changed, 35 insertions(+), 41 deletions(-) + +diff --git a/qpid/cpp/src/qpid/types/Variant.cpp b/qpid/cpp/src/qpid/types/Variant.cpp +index e43b999..bf255b4 100644 +--- a/qpid/cpp/src/qpid/types/Variant.cpp ++++ b/qpid/cpp/src/qpid/types/Variant.cpp +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + + namespace qpid { +@@ -343,43 +344,36 @@ uint64_t VariantImpl::asUint64() const + throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT64))); + } + +-#define I8_MIN -128 +-#define I8_MAX 127 +-#define I16_MIN -32768 +-#define I16_MAX 32767 +-#define I32_MIN -2147483648 +-#define I32_MAX 2147483647 +- + int8_t VariantImpl::asInt8() const + { + switch(type) { + case VAR_INT8: return value.i8; + case VAR_INT16: +- if ((value.i16 >= I8_MIN) && (value.i16 <= I8_MAX)) ++ if ((value.i16 >= std::numeric_limits::min()) && (value.i16 <= std::numeric_limits::max())) + return int8_t(value.i16); + break; + case VAR_INT32: +- if ((value.i32 >= I8_MIN) && (value.i32 <= I8_MAX)) ++ if ((value.i32 >= std::numeric_limits::min()) && (value.i32 <= std::numeric_limits::max())) + return int8_t(value.i32); + break; + case VAR_INT64: +- if ((value.i64 >= I8_MIN) && (value.i64 <= I8_MAX)) ++ if ((value.i64 >= std::numeric_limits::min()) && (value.i64 <= std::numeric_limits::max())) + return int8_t(value.i64); + break; + case VAR_UINT8: +- if (value.ui8 <= I8_MAX) ++ if (value.ui8 <= std::numeric_limits::max()) + return int8_t(value.ui8); + break; + case VAR_UINT16: +- if (value.ui16 <= I8_MAX) ++ if (value.ui16 <= std::numeric_limits::max()) + return int8_t(value.ui16); + break; + case VAR_UINT32: +- if (value.ui32 <= I8_MAX) ++ if (value.ui32 <= (uint) std::numeric_limits::max()) + return int8_t(value.ui32); + break; + case VAR_UINT64: +- if (value.ui64 <= I8_MAX) ++ if (value.ui64 <= (uint) std::numeric_limits::max()) + return int8_t(value.ui64); + break; + case VAR_STRING: return convertFromString(); +@@ -393,24 +387,24 @@ int16_t VariantImpl::asInt16() const + case VAR_INT8: return value.i8; + case VAR_INT16: return value.i16; + case VAR_INT32: +- if ((value.i32 >= I16_MIN) && (value.i32 <= I16_MAX)) ++ if ((value.i32 >= std::numeric_limits::min()) && (value.i32 <= std::numeric_limits::max())) + return int16_t(value.i32); + break; + case VAR_INT64: +- if ((value.i64 >= I16_MIN) && (value.i64 <= I16_MAX)) ++ if ((value.i64 >= std::numeric_limits::min()) && (value.i64 <= std::numeric_limits::max())) + return int16_t(value.i64); + break; + case VAR_UINT8: return int16_t(value.ui8); + case VAR_UINT16: +- if (value.ui16 <= I16_MAX) ++ if (value.ui16 <= std::numeric_limits::max()) + return int16_t(value.ui16); + break; + case VAR_UINT32: +- if (value.ui32 <= I16_MAX) ++ if (value.ui32 <= (uint) std::numeric_limits::max()) + return int16_t(value.ui32); + break; + case VAR_UINT64: +- if (value.ui64 <= I16_MAX) ++ if (value.ui64 <= (uint) std::numeric_limits::max()) + return int16_t(value.ui64); + break; + case VAR_STRING: return convertFromString(); +@@ -425,17 +419,17 @@ int32_t VariantImpl::asInt32() const + case VAR_INT16: return value.i16; + case VAR_INT32: return value.i32; + case VAR_INT64: +- if ((value.i64 >= I32_MIN) && (value.i64 <= I32_MAX)) ++ if ((value.i64 >= std::numeric_limits::min()) && (value.i64 <= std::numeric_limits::max())) + return int32_t(value.i64); + break; + case VAR_UINT8: return int32_t(value.ui8); + case VAR_UINT16: return int32_t(value.ui16); + case VAR_UINT32: +- if (value.ui32 <= I32_MAX) ++ if (value.ui32 <= (uint32_t) std::numeric_limits::max()) + return int32_t(value.ui32); + break; + case VAR_UINT64: +- if (value.ui64 <= I32_MAX) ++ if (value.ui64 <= (uint32_t) std::numeric_limits::max()) + return int32_t(value.ui64); + break; + case VAR_STRING: return convertFromString(); +@@ -454,7 +448,7 @@ int64_t VariantImpl::asInt64() const + case VAR_UINT16: return int64_t(value.ui16); + case VAR_UINT32: return int64_t(value.ui32); + case VAR_UINT64: +- if (value.ui64 <= 0x7fffffffffffffff) ++ if (value.ui64 <= (uint64_t) std::numeric_limits::max()) + return int64_t(value.ui64); + break; + case VAR_STRING: return convertFromString(); +diff --git a/qpid/cpp/src/tests/Variant.cpp b/qpid/cpp/src/tests/Variant.cpp +index 17ec997..596bde3 100644 +--- a/qpid/cpp/src/tests/Variant.cpp ++++ b/qpid/cpp/src/tests/Variant.cpp +@@ -271,33 +271,33 @@ QPID_AUTO_TEST_CASE(testSizeConversionsUint) + BOOST_CHECK_EQUAL((int64_t) 66000, value.asInt64()); + + //uint64 (more than 31 bits) to other uints, ints +- value = (uint64_t) 3000000000; ++ value = (uint64_t) 3000000000ul; + BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); +- BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32()); +- BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64()); ++ BOOST_CHECK_EQUAL((uint32_t) 3000000000ul, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 3000000000ul, value.asUint64()); + BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); +- BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64()); ++ BOOST_CHECK_EQUAL((int64_t) 3000000000ul, value.asInt64()); + + //uint64 (more than 32 bits) to other uints, ints +- value = (uint64_t) 7000000000; ++ value = (uint64_t) 7000000000ull; + BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); +- BOOST_CHECK_EQUAL((uint64_t) 7000000000, value.asUint64()); ++ BOOST_CHECK_EQUAL((uint64_t) 7000000000ull, value.asUint64()); + BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); +- BOOST_CHECK_EQUAL((int64_t) 7000000000, value.asInt64()); ++ BOOST_CHECK_EQUAL((int64_t) 7000000000ull, value.asInt64()); + + //uint64 (more than 63 bits) to other uints, ints +- value = (uint64_t) 0x8000000000000000; ++ value = (uint64_t) 0x8000000000000000ull; + BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); +- BOOST_CHECK_EQUAL((uint64_t) 0x8000000000000000, value.asUint64()); ++ BOOST_CHECK_EQUAL((uint64_t) 0x8000000000000000ull, value.asUint64()); + BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); +@@ -513,26 +513,26 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt) + BOOST_CHECK_EQUAL((int64_t) 40000, value.asInt64()); + + //int64 (positive in more than 31 bits) +- value = (int64_t) 3000000000; ++ value = (int64_t) 3000000000ll; + BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); +- BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32()); +- BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64()); ++ BOOST_CHECK_EQUAL((uint32_t) 3000000000ll, value.asUint32()); ++ BOOST_CHECK_EQUAL((uint64_t) 3000000000ll, value.asUint64()); + BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); +- BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64()); ++ BOOST_CHECK_EQUAL((int64_t) 3000000000ll, value.asInt64()); + + //int64 (positive in more than 32 bits) +- value = (int64_t) 5000000000; ++ value = (int64_t) 5000000000ll; + BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); +- BOOST_CHECK_EQUAL((uint64_t) 5000000000, value.asUint64()); ++ BOOST_CHECK_EQUAL((uint64_t) 5000000000ll, value.asUint64()); + BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); +- BOOST_CHECK_EQUAL((int64_t) 5000000000, value.asInt64()); ++ BOOST_CHECK_EQUAL((int64_t) 5000000000ll, value.asInt64()); + + //int64 (negative in 7 bits) + value = (int64_t) -100; +@@ -568,7 +568,7 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt) + BOOST_CHECK_EQUAL((int64_t) -40000, value.asInt64()); + + //int64 (negative in more than 31 bits) +- value = (int64_t) -3000000000; ++ value = (int64_t) -3000000000ll; + BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); + BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); +@@ -576,7 +576,7 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt) + BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); + BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); +- BOOST_CHECK_EQUAL((int64_t) -3000000000, value.asInt64()); ++ BOOST_CHECK_EQUAL((int64_t) -3000000000ll, value.asInt64()); + } + + QPID_AUTO_TEST_CASE(testAssignment) +-- +1.5.5.6 + +From 1ce15d8110f193405eab4ae99d7b77a54aab06f0 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Thu, 12 Aug 2010 19:59:19 +0000 +Subject: [PATCH] Bug 623805 - QMF: C++ agent needs to batch object indications and query replies across multiple messages. + +QPID-2791: batch up data indications and replies + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984935 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 70 ++++++++++++++-------- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 4 + + 2 files changed, 48 insertions(+), 26 deletions(-) + +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index 401c46b..96c9f18 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -104,6 +104,7 @@ ManagementAgentImpl::ManagementAgentImpl() : + initialized(false), connected(false), useMapMsg(false), lastFailure("never connected"), + clientWasAdded(true), requestedBrokerBank(0), requestedAgentBank(0), + assignedBrokerBank(0), assignedAgentBank(0), bootSequence(0), ++ maxV2ReplyObjs(10), // KAG todo: make this a tuneable parameter + connThreadBody(*this), connThread(connThreadBody), + pubThreadBody(*this), pubThread(pubThreadBody) + { +@@ -689,6 +690,7 @@ void ManagementAgentImpl::handleGetQuery(const string& body, const string& cid, + return; + } + } else { ++ unsigned int objCount = 0; + for (ManagementObjectMap::iterator iter = managementObjects.begin(); + iter != managementObjects.end(); + iter++) { +@@ -696,10 +698,9 @@ void ManagementAgentImpl::handleGetQuery(const string& body, const string& cid, + if (object->getClassName() == className && + (packageName.empty() || object->getPackageName() == packageName)) { + +- // @todo support multiple object reply per message + values.clear(); +- list_.clear(); + oidMap.clear(); ++ map_.clear(); + + if (object->getConfigChanged() || object->getInstChanged()) + object->setUpdateTime(); +@@ -714,19 +715,23 @@ void ManagementAgentImpl::handleGetQuery(const string& body, const string& cid, + object->getMd5Sum()); + list_.push_back(map_); + +- ListCodec::encode(list_, content); +- connThreadBody.sendBuffer(content, cid, headers, "qmf.default.direct", replyTo, "amqp/list"); +- QPID_LOG(trace, "SENT QueryResponse (query by schema_id) to=" << replyTo); ++ if (++objCount >= maxV2ReplyObjs) { ++ objCount = 0; ++ ListCodec::encode(list_, content); ++ connThreadBody.sendBuffer(content, cid, headers, "qmf.default.direct", replyTo, "amqp/list"); ++ QPID_LOG(trace, "SENT QueryResponse (query by schema_id) to=" << replyTo); ++ content.clear(); ++ list_.clear(); ++ } + } + } + } + +- // Send empty "non-partial" message to indicate CommandComplete +- list_.clear(); ++ // Send final "non-partial" message to indicate CommandComplete + headers.erase("partial"); + ListCodec::encode(list_, content); + connThreadBody.sendBuffer(content, cid, headers, "qmf.default.direct", replyTo, "amqp/list"); +- QPID_LOG(trace, "SENT QueryResponse (empty with no 'partial' indicator) to=" << replyTo); ++ QPID_LOG(trace, "SENT QueryResponse to=" << replyTo); + } + + void ManagementAgentImpl::handleLocateRequest(const string&, const string& cid, const string& replyTo) +@@ -952,6 +957,8 @@ void ManagementAgentImpl::periodicProcessing() + if (!connected) + return; + ++ sendHeartbeat(); ++ + moveNewObjectsLH(); + + // +@@ -972,6 +979,8 @@ void ManagementAgentImpl::periodicProcessing() + // + // Process the entire object map. + // ++ uint32_t v2Objs = 0; ++ + for (ManagementObjectMap::iterator baseIter = managementObjects.begin(); + baseIter != managementObjects.end(); + baseIter++) { +@@ -991,6 +1000,21 @@ void ManagementAgentImpl::periodicProcessing() + std::string className = baseObject->getClassName(); + + Variant::List list_; ++ string content; ++ std::stringstream addr_key; ++ Variant::Map headers; ++ ++ addr_key << addr_key_base; ++ addr_key << keyifyNameStr(packageName) ++ << "." << keyifyNameStr(className) ++ << "." << vendorNameKey ++ << "." << productNameKey ++ << "." << instanceNameKey; ++ ++ headers["method"] = "indication"; ++ headers["qmf.opcode"] = "_data_indication"; ++ headers["qmf.content"] = "_data"; ++ headers["qmf.agent"] = name_address; + + for (ManagementObjectMap::iterator iter = baseIter; + iter != managementObjects.end(); +@@ -1019,6 +1043,16 @@ void ManagementAgentImpl::periodicProcessing() + object->mapEncodeValues(values, send_props, send_stats); + map_["_values"] = values; + list_.push_back(map_); ++ ++ if (++v2Objs >= maxV2ReplyObjs) { ++ v2Objs = 0; ++ ListCodec::encode(list_, content); ++ ++ connThreadBody.sendBuffer(content, "", headers, "qmf.default.topic", addr_key.str(), "amqp/list"); ++ list_.clear(); ++ content.clear(); ++ QPID_LOG(trace, "SENT DataIndication"); ++ } + } + + if (object->isDeleted()) +@@ -1027,23 +1061,8 @@ void ManagementAgentImpl::periodicProcessing() + } + } + +- string content; +- ListCodec::encode(list_, content); +- if (content.length()) { +- Variant::Map headers; +- headers["method"] = "indication"; +- headers["qmf.opcode"] = "_data_indication"; +- headers["qmf.content"] = "_data"; +- headers["qmf.agent"] = name_address; +- +- std::stringstream addr_key; +- addr_key << addr_key_base; +- addr_key << keyifyNameStr(packageName) +- << "." << keyifyNameStr(className) +- << "." << vendorNameKey +- << "." << productNameKey +- << "." << instanceNameKey; +- ++ if (!list_.empty()) { ++ ListCodec::encode(list_, content); + connThreadBody.sendBuffer(content, "", headers, "qmf.default.topic", addr_key.str(), "amqp/list"); + QPID_LOG(trace, "SENT DataIndication"); + } +@@ -1058,7 +1077,6 @@ void ManagementAgentImpl::periodicProcessing() + } + + deleteList.clear(); +- sendHeartbeat(); + } + + void ManagementAgentImpl::ConnectionThread::run() +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index a7c6b25..851457c 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -177,6 +177,10 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + uint32_t assignedAgentBank; + uint16_t bootSequence; + ++ // Maximum # of objects allowed in a single V2 response ++ // message. ++ uint32_t maxV2ReplyObjs; ++ + static const uint8_t DEBUG_OFF = 0; + static const uint8_t DEBUG_CONN = 1; + static const uint8_t DEBUG_PROTO = 2; +-- +1.5.5.6 + +From 3465fb359c7ab61295f5ee339d88a13a9975f0c2 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 16 Aug 2010 09:27:57 +0000 +Subject: [PATCH] Bug 621571 - Fixed - ptol tests failed with assertion in qpid-receive client. + +Fix locking in receiver impl; protect session member against concurrent fetch and init. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@985838 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 29cc2911902581286bec11546275cb0c44ad696b) +--- + qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp b/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp +index fb5675c..6acd0a3 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp +@@ -173,8 +173,13 @@ bool ReceiverImpl::fetchImpl(qpid::messaging::Message& message, qpid::messaging: + if (getImpl(message, timeout)) { + return true; + } else { +- if (state == CANCELLED) return false; // Might have been closed during get. +- sync(session).messageFlush(destination); ++ qpid::client::Session s; ++ { ++ sys::Mutex::ScopedLock l(lock); ++ if (state == CANCELLED) return false; // Might have been closed during get. ++ s = sync(session); ++ } ++ s.messageFlush(destination); + { + sys::Mutex::ScopedLock l(lock); + startFlow(l); //reallocate credit +-- +1.5.5.6 + +From 43af3b6d4ea16c8ecb3f9f954613b2785c5393b3 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Wed, 11 Aug 2010 14:46:39 +0000 +Subject: [PATCH] Bug 622699 - ManagementTest.test_broker_connectivity_oldAPI fails against standalone broker + +Correctly parse replies containing multiple qmf messages. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984424 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 854f438dd72b62fddb58a15a90a0731c92b8cb5e) +--- + qpid/python/qpid/management.py | 33 +++++++++++++++++---------------- + 1 files changed, 17 insertions(+), 16 deletions(-) + +diff --git a/qpid/python/qpid/management.py b/qpid/python/qpid/management.py +index a23932a..3de8da9 100644 +--- a/qpid/python/qpid/management.py ++++ b/qpid/python/qpid/management.py +@@ -376,22 +376,23 @@ class managementClient: + def replyCb (self, ch, msg): + """ Receive messages via the reply queue of a particular channel. """ + codec = Codec (msg.body) +- hdr = self.checkHeader (codec) +- if hdr == None: +- return ++ while True: ++ hdr = self.checkHeader (codec) ++ if hdr == None: ++ return + +- if hdr[0] == 'm': +- self.handleMethodReply (ch, codec, hdr[1]) +- elif hdr[0] == 'z': +- self.handleCommandComplete (ch, codec, hdr[1]) +- elif hdr[0] == 'b': +- self.handleBrokerResponse (ch, codec) +- elif hdr[0] == 'p': +- self.handlePackageInd (ch, codec) +- elif hdr[0] == 'q': +- self.handleClassInd (ch, codec) +- else: +- self.parse (ch, codec, hdr[0], hdr[1]) ++ if hdr[0] == 'm': ++ self.handleMethodReply (ch, codec, hdr[1]) ++ elif hdr[0] == 'z': ++ self.handleCommandComplete (ch, codec, hdr[1]) ++ elif hdr[0] == 'b': ++ self.handleBrokerResponse (ch, codec) ++ elif hdr[0] == 'p': ++ self.handlePackageInd (ch, codec) ++ elif hdr[0] == 'q': ++ self.handleClassInd (ch, codec) ++ else: ++ self.parse (ch, codec, hdr[0], hdr[1]) + + def exceptCb (self, ch, data): + if self.closeCb != None: +-- +1.5.5.6 + +From b1df1af4be83cc7606c115d9f330c4f9512a73eb Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 11 Aug 2010 11:41:59 +0000 +Subject: [PATCH] BZ-621527 default sasl service to qpidd + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984382 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/delegates.py | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/qpid/delegates.py b/qpid/python/qpid/delegates.py +index 5c1c8ad..8dbdc37 100644 +--- a/qpid/python/qpid/delegates.py ++++ b/qpid/python/qpid/delegates.py +@@ -177,8 +177,7 @@ class Client(Delegate): + self.sasl.setAttr("username", str(username)) + if password and len(password) > 0: + self.sasl.setAttr("password", str(password)) +- if "service" in kwargs: +- self.sasl.setAttr("service", str(kwargs["service"])) ++ self.sasl.setAttr("service", str(kwargs.get("service", "qpidd"))) + if "host" in kwargs: + self.sasl.setAttr("host", str(kwargs["host"])) + if "min_ssf" in kwargs: +-- +1.5.5.6 + +From 7f9f37995e204bee922195faf937b570a3c5beae Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Wed, 11 Aug 2010 11:58:49 +0000 +Subject: [PATCH] BZ-624715 fix error reporting for negotiation failure in sasl stub + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984386 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 5 ++++- + qpid/python/qpid/sasl.py | 2 ++ + 2 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 567871b..30cc2eb 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -691,7 +691,10 @@ class Engine: + mechs = [m for m in start.mechanisms if m in permitted] + else: + mechs = start.mechanisms +- mech, initial = self._sasl.start(" ".join(mechs)) ++ try: ++ mech, initial = self._sasl.start(" ".join(mechs)) ++ except sasl.SASLError, e: ++ raise AuthenticationFailure(text=str(e)) + self.write_op(ConnectionStartOk(client_properties=CLIENT_PROPERTIES, + mechanism=mech, response=initial)) + +diff --git a/qpid/python/qpid/sasl.py b/qpid/python/qpid/sasl.py +index d4c15bd..fed6dea 100644 +--- a/qpid/python/qpid/sasl.py ++++ b/qpid/python/qpid/sasl.py +@@ -89,6 +89,8 @@ class PlainClient: + return "PLAIN", "\0%s\0%s" % (self.attrs.get("username"), self.attrs.get("password")) + elif "ANONYMOUS" in mechs: + return "ANONYMOUS", "%s@%s" % (self.attrs.get("username"), socket.gethostname()) ++ else: ++ raise SASLError("sasl negotiation failed: no mechanism agreed") + + def step(self, challenge): + pass +-- +1.5.5.6 + +From 7e105a4f445dae7d506d12a135789d08854c3d30 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Thu, 12 Aug 2010 18:37:19 +0000 +Subject: [PATCH] BZ-624714 fixed reply-to conversion + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984906 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 18 +++++++++++++----- + qpid/python/qpid/tests/messaging/message.py | 24 ++++++++++++++++++++++++ + 2 files changed, 37 insertions(+), 5 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 30cc2eb..0c7c7e7 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -41,15 +41,23 @@ opslog = getLogger("qpid.messaging.io.ops") + + def addr2reply_to(addr): + name, subject, options = address.parse(addr) +- return ReplyTo(name, subject) ++ if options: ++ type = options.get("node", {}).get("type") ++ else: ++ type = None ++ ++ if type == "topic": ++ return ReplyTo(name, subject) ++ else: ++ return ReplyTo(None, name) + + def reply_to2addr(reply_to): +- if reply_to.routing_key is None: +- return reply_to.exchange +- elif reply_to.exchange in (None, ""): ++ if reply_to.exchange in (None, ""): + return reply_to.routing_key ++ elif reply_to.routing_key is None: ++ return "%s; {node: {type: topic}}" % reply_to.exchange + else: +- return "%s/%s" % (reply_to.exchange, reply_to.routing_key) ++ return "%s/%s; {node: {type: topic}}" % (reply_to.exchange, reply_to.routing_key) + + class Attachment: + +diff --git a/qpid/python/qpid/tests/messaging/message.py b/qpid/python/qpid/tests/messaging/message.py +index 526a5cf..eaa953e 100644 +--- a/qpid/python/qpid/tests/messaging/message.py ++++ b/qpid/python/qpid/tests/messaging/message.py +@@ -117,3 +117,27 @@ class MessageEchoTests(Base): + + def testTextPlainEmpty(self): + self.check(Message(content_type="text/plain")) ++ ++ def check_rt(self, addr, expected=None): ++ if expected is None: ++ expected = addr ++ msg = Message(reply_to=addr) ++ self.snd.send(msg) ++ echo = self.rcv.fetch(0) ++ assert echo.reply_to == expected, echo.reply_to ++ self.ssn.acknowledge(echo) ++ ++ def testReplyTo(self): ++ self.check_rt("name") ++ ++ def testReplyToQueue(self): ++ self.check_rt("name; {node: {type: queue}}", "name") ++ ++ def testReplyToQueueSubject(self): ++ self.check_rt("name/subject; {node: {type: queue}}", "name") ++ ++ def testReplyToTopic(self): ++ self.check_rt("name; {node: {type: topic}}") ++ ++ def testReplyToTopicSubject(self): ++ self.check_rt("name/subject; {node: {type: topic}}") +-- +1.5.5.6 + +From c0f84a2cb76c105c2d4a736cbdf629b47f2a96d2 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 20 Aug 2010 09:29:31 +0000 +Subject: [PATCH] Bug 625541 - Fixed - C++ New API: Connection::close() hangs on suspended broker + +QPID-2817: on close, wait for at most the heartbeat interval (if specified) for close-ok response from broker + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@987429 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit beaf47afd38879e44fad47c791c177544d347233) +--- + qpid/cpp/src/qpid/client/ConnectionHandler.cpp | 9 ++++++++- + qpid/cpp/src/qpid/client/StateManager.cpp | 20 ++++++++++++++++++++ + qpid/cpp/src/qpid/client/StateManager.h | 2 ++ + 3 files changed, 30 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +index ba15e63..e615878 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +@@ -157,7 +157,14 @@ void ConnectionHandler::close() + case OPEN: + if (setState(CLOSING, OPEN)) { + proxy.close(200, OK); +- waitFor(FINISHED);//FINISHED = CLOSED or FAILED ++ if (ConnectionSettings::heartbeat) { ++ //heartbeat timer is turned off at this stage, so don't wait indefinately ++ if (!waitFor(FINISHED, qpid::sys::Duration(ConnectionSettings::heartbeat * qpid::sys::TIME_SEC))) { ++ QPID_LOG(warning, "Connection close timed out"); ++ } ++ } else { ++ waitFor(FINISHED);//FINISHED = CLOSED or FAILED ++ } + } + //else, state was changed from open after we checked, can only + //change to failed or closed, so nothing to do +diff --git a/qpid/cpp/src/qpid/client/StateManager.cpp b/qpid/cpp/src/qpid/client/StateManager.cpp +index 5462e0f..839d92a 100644 +--- a/qpid/cpp/src/qpid/client/StateManager.cpp ++++ b/qpid/cpp/src/qpid/client/StateManager.cpp +@@ -52,6 +52,26 @@ void StateManager::waitFor(std::set desired) + } + } + ++bool StateManager::waitFor(int desired, qpid::sys::Duration timeout) ++{ ++ AbsTime end(now(), timeout); ++ Monitor::ScopedLock l(stateLock); ++ while (state != desired && now() < end) { ++ stateLock.wait(end); ++ } ++ return state == desired; ++} ++ ++bool StateManager::waitFor(std::set desired, qpid::sys::Duration timeout) ++{ ++ AbsTime end(now(), timeout); ++ Monitor::ScopedLock l(stateLock); ++ while (desired.find(state) == desired.end() && now() < end) { ++ stateLock.wait(end); ++ } ++ return desired.find(state) != desired.end(); ++} ++ + + void StateManager::setState(int s) + { +diff --git a/qpid/cpp/src/qpid/client/StateManager.h b/qpid/cpp/src/qpid/client/StateManager.h +index 3c8412d..f06dbc4 100644 +--- a/qpid/cpp/src/qpid/client/StateManager.h ++++ b/qpid/cpp/src/qpid/client/StateManager.h +@@ -41,6 +41,8 @@ public: + void waitForStateChange(int current); + void waitFor(std::set states); + void waitFor(int state); ++ bool waitFor(std::set states, qpid::sys::Duration); ++ bool waitFor(int state, qpid::sys::Duration); + }; + + }} +-- +1.5.5.6 + +From a58e01717ebdc63327b75f1a147130a17353ef93 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 20 Aug 2010 13:58:20 +0000 +Subject: [PATCH] QPID-2798 - C++ Messaging Client .NET binding fails to clone managed objects correctly + Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@987510 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../csharp.example.drain/csharp.example.drain.cs | 5 +- + .../csharp.map.receiver/csharp.map.recevier.cs | 7 +- + .../csharp.map.sender/csharp.map.sender.cs | 8 +- + qpid/cpp/bindings/qpid/dotnet/src/Address.cpp | 9 +- + qpid/cpp/bindings/qpid/dotnet/src/Address.h | 8 +- + qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp | 39 +----- + qpid/cpp/bindings/qpid/dotnet/src/Connection.h | 15 +-- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 6 +- + qpid/cpp/bindings/qpid/dotnet/src/Message.h | 12 +- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp | 95 +++++++------ + qpid/cpp/bindings/qpid/dotnet/src/Receiver.h | 20 ++- + qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp | 5 +- + qpid/cpp/bindings/qpid/dotnet/src/Sender.h | 6 +- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 150 +++----------------- + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 9 +- + .../dotnet/src/sessionreceiver/sessionreceiver.cs | 6 +- + 16 files changed, 145 insertions(+), 255 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs +index 2d763a3..dc38590 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.cs +@@ -43,8 +43,9 @@ namespace Org.Apache.Qpid.Messaging.Examples { + Duration timeout = options.Forever ? + DurationConstants.FORVER : + DurationConstants.SECOND * options.Timeout; +- Message message = new Message(); +- while (receiver.Fetch(message, timeout)) ++ Message message; ++ ++ while ((message = receiver.Fetch(timeout)) != null) + { + Dictionary properties = new Dictionary(); + properties = message.Properties; +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs +index 242944b..a3b13e2 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.recevier.cs +@@ -35,8 +35,11 @@ namespace Org.Apache.Qpid.Messaging.examples + static void Main(string[] args) + { + string url = "amqp:tcp:localhost:5672"; ++ string address = "message_queue; {create: always}"; + if (args.Length > 0) + url = args[0]; ++ if (args.Length > 1) ++ address = args[1]; + + // + // Create and open an AMQP connection to the broker URL +@@ -49,7 +52,7 @@ namespace Org.Apache.Qpid.Messaging.examples + // routing key "map_example". + // + Session session = connection.CreateSession(); +- Receiver receiver = session.CreateReceiver("amq.direct/map_example"); ++ Receiver receiver = session.CreateReceiver(address); + + // + // Fetch the message from the broker +@@ -61,7 +64,7 @@ namespace Org.Apache.Qpid.Messaging.examples + // + Dictionary content = new Dictionary(); + message.GetContent(content); +- Console.WriteLine("Received: {0}", message.AsString(content)); ++ Console.WriteLine("{0}", message.AsString(content)); + + // + // Acknowledge the receipt of all received messages. +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +index 0763b74..c35ddf1 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +@@ -39,8 +39,11 @@ namespace Org.Apache.Qpid.Messaging.examples + static void Main(string[] args) + { + string url = "amqp:tcp:localhost:5672"; ++ string address = "message_queue; {create: always}"; + if (args.Length > 0) + url = args[0]; ++ if (args.Length > 1) ++ address = args[1]; + + // + // Create and open an AMQP connection to the broker URL +@@ -49,11 +52,10 @@ namespace Org.Apache.Qpid.Messaging.examples + connection.Open(); + + // +- // Create a session and a sender to the direct exchange using the +- // routing key "map_example". ++ // Create a session and a sender to the direct exchange + // + Session session = connection.CreateSession(); +- Sender sender = session.CreateSender("amq.direct/map_example"); ++ Sender sender = session.CreateSender(address); + + // + // Create structured content for the message. This example builds a +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +index 2b6dbb4..6d23136 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +@@ -78,17 +78,16 @@ namespace Messaging { + Type = type; + } + +- // Copy constructor ++ // copy constructor + Address::Address(const Address ^ address) + : addressp(new ::qpid::messaging::Address( + *(const_cast
(address)->NativeAddress))) + { + } + +- // Create from received address +- // The new Address object consumes the unmanaged pointer +- Address::Address(::qpid::messaging::Address * addrp) : +- addressp(addrp) ++ // unmanaged clone ++ Address::Address(const ::qpid::messaging::Address & addrp) : ++ addressp(new ::qpid::messaging::Address(addrp)) + { + } + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.h b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +index 1f2c3fe..11b1e67 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.h +@@ -68,9 +68,8 @@ namespace Messaging { + // copy constructor + Address(const Address ^ address); + +- // Create from received address +- // The new Address object consumes the unmanaged pointer +- Address(::qpid::messaging::Address * addrp); ++ // unmanaged clone ++ Address(const ::qpid::messaging::Address & addrp); + + ~Address(); + !Address(); +@@ -84,7 +83,8 @@ namespace Messaging { + } + else + { +- delete addressp; ++ if (NULL != addressp) ++ delete addressp; + addressp = new ::qpid::messaging::Address( + *(const_cast
(rhs).NativeAddress) ); + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +index 5075530..322910d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +@@ -132,16 +132,13 @@ namespace Messaging { + Session ^ Connection::CreateTransactionalSession(System::String ^ name) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Session * sessionp = NULL; + Session ^ newSession = nullptr; + + try + { +- // allocate native session +- sessionp = new ::qpid::messaging::Session ; +- + // create native session +- *sessionp = connectionp->createTransactionalSession(QpidMarshal::ToNative(name)); ++ ::qpid::messaging::Session sessionp = ++ connectionp->createTransactionalSession(QpidMarshal::ToNative(name)); + + // create managed session + newSession = gcnew Session(sessionp, this); +@@ -160,13 +157,6 @@ namespace Messaging { + { + delete newSession; + } +- else +- { +- if (sessionp != NULL) +- { +- delete sessionp; +- } +- } + } + } + +@@ -191,16 +181,13 @@ namespace Messaging { + Session ^ Connection::CreateSession(System::String ^ name) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Session * sessionp = NULL; + Session ^ newSession = nullptr; + + try + { +- // allocate native session +- sessionp = new ::qpid::messaging::Session ; +- + // create native session +- *sessionp = connectionp->createSession(QpidMarshal::ToNative(name)); ++ ::qpid::messaging::Session sessionp = ++ connectionp->createSession(QpidMarshal::ToNative(name)); + + // create managed session + newSession = gcnew Session(sessionp, this); +@@ -219,13 +206,6 @@ namespace Messaging { + { + delete newSession; + } +- else +- { +- if (sessionp != NULL) +- { +- delete sessionp; +- } +- } + } + } + +@@ -241,14 +221,14 @@ namespace Messaging { + Session ^ Connection::GetSession(System::String ^ name) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Session * sess = NULL; + Session ^ newSession = nullptr; + + try + { + const std::string n = QpidMarshal::ToNative(name); + +- *sess = connectionp->::qpid::messaging::Connection::getSession(n); ++ ::qpid::messaging::Session sess = ++ connectionp->::qpid::messaging::Connection::getSession(n); + + newSession = gcnew Session(sess, this); + } +@@ -266,13 +246,6 @@ namespace Messaging { + { + delete newSession; + } +- else +- { +- if (sess != NULL) +- { +- delete sess; +- } +- } + } + } + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +index 0907d99..23d0679 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.h +@@ -60,6 +60,9 @@ namespace Messaging { + // copy constructor + Connection(const Connection ^ connection); + ++ // unmanaged clone ++ // not defined ++ + ~Connection(); + !Connection(); + +@@ -72,7 +75,8 @@ namespace Messaging { + } + else + { +- delete connectionp; ++ if (NULL != connectionp) ++ delete connectionp; + connectionp = new ::qpid::messaging::Connection( + *(const_cast(rhs).NativeConnection) ); + } +@@ -84,15 +88,6 @@ namespace Messaging { + ::qpid::messaging::Connection * get () { return connectionp; } + } + +- property System::String ^ NPAddress +- { +- System::String ^ get () +- { +- System::IntPtr i((void *)connectionp); +- return gcnew System::String(i.ToString()); +- } +- } +- + void SetOption(System::String ^ name, System::Object ^ value); + + void Open(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index def3051..139ecee 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -120,9 +120,9 @@ namespace Messaging { + } + + +- // Create from received message +- Message::Message(::qpid::messaging::Message * msgp) : +- messagep(msgp) ++ // unmanaged clone ++ Message::Message(const ::qpid::messaging::Message & msgp) : ++ messagep(new ::qpid::messaging::Message(msgp)) + { + } + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.h b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +index c7f6092..cbe8cfc 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.h +@@ -69,15 +69,15 @@ namespace Messaging { + // Create from byte array slice + Message(array ^ bytes, int offset, int size); + +- // Create from received message +- Message(::qpid::messaging::Message * msgp); +- + ~Message(); + !Message(); + + // Copy constructor + Message(const Message ^ message); + ++ // unmanaged clone ++ Message(const ::qpid::messaging::Message & msgp); ++ + // assignment operator + Message % operator=(const Message % rhs) + { +@@ -87,7 +87,8 @@ namespace Messaging { + } + else + { +- delete messagep; ++ if (NULL != messagep) ++ delete messagep; + messagep = new ::qpid::messaging::Message( + *(const_cast(rhs).NativeMessage) ); + } +@@ -117,7 +118,7 @@ namespace Messaging { + const ::qpid::messaging::Address & addrp = + messagep->::qpid::messaging::Message::getReplyTo(); + +- return gcnew Address(const_cast<::qpid::messaging::Address *>(&addrp)); ++ return gcnew Address(addrp); + } + } + +@@ -299,6 +300,7 @@ namespace Messaging { + gcnew System::Collections::Generic::Dictionary< + System::String^, System::Object^> ; + ++ + TypeTranslator::NativeToManaged(map, dict); + + return dict; +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +index 1e2f30d..87ad299 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +@@ -43,13 +43,16 @@ namespace Messaging { + /// Receiver is a managed wrapper for a ::qpid::messaging::Receiver + /// + +- Receiver::Receiver(::qpid::messaging::Receiver * r, ++ // unmanaged clone ++ Receiver::Receiver(const ::qpid::messaging::Receiver & r, + Org::Apache::Qpid::Messaging::Session ^ sessRef) : +- receiverp(r), ++ receiverp(new ::qpid::messaging::Receiver (r)), + parentSession(sessRef) + { + } + ++ // unmanaged clone ++ // undefined + + // Destructor + Receiver::~Receiver() +@@ -88,17 +91,24 @@ namespace Messaging { + // + // Get(message) + // +- bool Receiver::Get(Message ^ mmsgp) +- { +- return Get(mmsgp, DurationConstants::FORVER); +- } +- +- bool Receiver::Get(Message ^ mmsgp, Duration ^ durationp) +- { +- ::qpid::messaging::Duration dur((*durationp).Milliseconds); +- +- return receiverp->Receiver::get(*(mmsgp->NativeMessage), dur); +- } ++ // TBD ++ //bool Receiver::Get(Message ^ mmsgp) ++ //{ ++ // return Get(mmsgp, DurationConstants::FORVER); ++ //} ++ // ++ //bool Receiver::Get(Message ^ mmsgp, Duration ^ durationp) ++ //{ ++ // ::qpid::messaging::Duration dur((*durationp).Milliseconds); ++ // ++ // ::qpid::messaging::Message tmpMsg; ++ // ++ // bool result = receiverp->Receiver::get(tmpMsg, dur); ++ // ++ // mmsgp = gcnew Message(tmpMsg); ++ // ++ // return result; ++ //} + + // + // message = Get() +@@ -112,22 +122,19 @@ namespace Messaging { + Message ^ Receiver::Get(Duration ^ durationp) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Message * msgp = NULL; + Message ^ newMessage = nullptr; + + try + { +- // allocate a message +- msgp = new ::qpid::messaging::Message; +- + // translate the duration + ::qpid::messaging::Duration dur((*durationp).Milliseconds); + + // get the message +- *msgp = receiverp->::qpid::messaging::Receiver::get(dur); ++ ::qpid::messaging::Message msg = ++ receiverp->::qpid::messaging::Receiver::get(dur); + + // create new managed message with received message embedded in it +- newMessage = gcnew Message(msgp); ++ newMessage = gcnew Message(msg); + } + catch (const ::qpid::types::Exception & error) + { +@@ -138,10 +145,6 @@ namespace Messaging { + { + if (newException != nullptr) + { +- if (msgp != NULL) +- { +- delete msgp; +- } + if (newMessage != nullptr) + { + delete newMessage; +@@ -159,17 +162,24 @@ namespace Messaging { + // + // Fetch(message) + // +- bool Receiver::Fetch(Message ^ mmsgp) +- { +- return Fetch(mmsgp, DurationConstants::FORVER); +- } +- +- bool Receiver::Fetch(Message ^ mmsgp, Duration ^ durationp) +- { +- ::qpid::messaging::Duration dur((*durationp).Milliseconds); +- +- return receiverp->::qpid::messaging::Receiver::fetch(*((*mmsgp).NativeMessage), dur); +- } ++ // TBD ++ //bool Receiver::Fetch(Message ^ mmsgp) ++ //{ ++ // return Fetch(mmsgp, DurationConstants::FORVER); ++ //} ++ // ++ //bool Receiver::Fetch(Message ^ mmsgp, Duration ^ durationp) ++ //{ ++ // ::qpid::messaging::Duration dur((*durationp).Milliseconds); ++ // ++ // ::qpid::messaging::Message tmpMsg; ++ // ++ // bool result = receiverp->Receiver::fetch(tmpMsg, dur); ++ // ++ // mmsgp = gcnew Message(tmpMsg); ++ // ++ // return result; ++ //} + + + // +@@ -183,23 +193,20 @@ namespace Messaging { + + Message ^ Receiver::Fetch(Duration ^ durationp) + { +- System::Exception ^ newException = nullptr; +- ::qpid::messaging::Message * msgp = NULL; +- Message ^ newMessage = nullptr; ++ System::Exception ^ newException = nullptr; ++ Message ^ newMessage = nullptr; + + try + { +- // allocate a message +- ::qpid::messaging::Message * msgp = new ::qpid::messaging::Message; +- + // translate the duration + ::qpid::messaging::Duration dur((*durationp).Milliseconds); + + // get the message +- *msgp = receiverp->::qpid::messaging::Receiver::fetch(dur); ++ ::qpid::messaging::Message msg = ++ receiverp->::qpid::messaging::Receiver::fetch(dur); + + // create new managed message with received message embedded in it +- newMessage = gcnew Message(msgp); ++ newMessage = gcnew Message(msg); + } + catch (const ::qpid::types::Exception & error) + { +@@ -210,10 +217,6 @@ namespace Messaging { + { + if (newException != nullptr) + { +- if (msgp != NULL) +- { +- delete msgp; +- } + if (newMessage != nullptr) + { + delete newMessage; +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +index c52e901..ae32f6f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h +@@ -61,12 +61,17 @@ namespace Messaging { + ::qpid::messaging::Receiver * receiverp; + + public: +- Receiver(::qpid::messaging::Receiver * r, ++ ++ // unmanaged clone ++ Receiver(const ::qpid::messaging::Receiver & r, + Session ^ sessRef); + + // copy constructor + Receiver(const Receiver ^ receiver); + ++ // unmanaged clone ++ // undefined ++ + ~Receiver(); + !Receiver(); + +@@ -79,7 +84,8 @@ namespace Messaging { + } + else + { +- delete receiverp; ++ if (NULL != receiverp) ++ delete receiverp; + receiverp = new ::qpid::messaging::Receiver( + *(const_cast(rhs).NativeReceiver)); + parentSession = rhs.parentSession; +@@ -93,16 +99,18 @@ namespace Messaging { + } + + // Get(message) +- bool Get(Message ^ mmsgp); +- bool Get(Message ^ mmsgp, Duration ^ durationp); ++ // TBD ++ //bool Get(Message ^ mmsgp); ++ //bool Get(Message ^ mmsgp, Duration ^ durationp); + + // message = Get() + Message ^ Get(); + Message ^ Get(Duration ^ durationp); + + // Fetch(message) +- bool Fetch(Message ^ mmsgp); +- bool Fetch(Message ^ mmsgp, Duration ^ duration); ++ // TBD ++ //bool Fetch(Message ^ mmsgp); ++ //bool Fetch(Message ^ mmsgp, Duration ^ duration); + + // message = Fetch() + Message ^ Fetch(); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +index bcc2407..0249c51 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +@@ -39,9 +39,10 @@ namespace Messaging { + /// Sender a managed wrapper for a ::qpid::messaging::Sender + /// + +- Sender::Sender(::qpid::messaging::Sender * s, ++ // unmanaged clone ++ Sender::Sender(const ::qpid::messaging::Sender & s, + Org::Apache::Qpid::Messaging::Session ^ sessRef) : +- senderp(s), ++ senderp(new ::qpid::messaging::Sender (s)), + parentSession(sessRef) + { + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +index 670f11f..e8ba227 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.h +@@ -59,7 +59,8 @@ namespace Messaging { + void Cleanup(); + + public: +- Sender(::qpid::messaging::Sender * s, ++ // unmanaged clone ++ Sender(const ::qpid::messaging::Sender & s, + Session ^ sessRef); + + // copy constructor +@@ -77,7 +78,8 @@ namespace Messaging { + } + else + { +- delete senderp; ++ if (NULL != senderp) ++ delete senderp; + senderp = new ::qpid::messaging::Sender( + *(const_cast(rhs).NativeSender)); + parentSession = rhs.parentSession; +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index 438c9c4..6d40a27 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -45,10 +45,10 @@ namespace Messaging { + /// Session is a managed wrapper for a ::qpid::messaging::Session + /// + +- // constructor +- Session::Session(::qpid::messaging::Session * sp, ++ // unmanaged clone ++ Session::Session(const ::qpid::messaging::Session & session, + Org::Apache::Qpid::Messaging::Connection ^ connRef) : +- sessionp(sp), ++ sessionp(new ::qpid::messaging::Session (session)), + parentConnectionp(connRef) + { + } +@@ -180,11 +180,10 @@ namespace Messaging { + try + { + ::qpid::messaging::Duration dur(timeout->Milliseconds); +- ::qpid::messaging::Receiver * rcvr = new ::qpid::messaging::Receiver; + +- *rcvr = sessionp->::qpid::messaging::Session::nextReceiver(dur); ++ ::qpid::messaging::Receiver receiver = sessionp->::qpid::messaging::Session::nextReceiver(dur); + +- Receiver ^ newRcvr = gcnew Receiver(rcvr, this); ++ Receiver ^ newRcvr = gcnew Receiver(receiver, this); + + return newRcvr; + } +@@ -210,19 +209,16 @@ namespace Messaging { + Sender ^ Session::CreateSender (System::String ^ address) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Sender * senderp = NULL; + Sender ^ newSender = nullptr; + + try + { +- // allocate a native sender +- ::qpid::messaging::Sender * senderp = new ::qpid::messaging::Sender ; +- + // create the sender +- *senderp = sessionp->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address)); ++ ::qpid::messaging::Sender sender = ++ sessionp->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address)); + + // create a managed sender +- newSender = gcnew Sender(senderp, this); ++ newSender = gcnew Sender(sender, this); + } + catch (const ::qpid::types::Exception & error) + { +@@ -237,13 +233,6 @@ namespace Messaging { + { + delete newSender; + } +- else +- { +- if (senderp != NULL) +- { +- delete senderp; +- } +- } + } + } + if (newException != nullptr) +@@ -258,19 +247,16 @@ namespace Messaging { + Sender ^ Session::CreateSender (Address ^ address) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Sender * senderp = NULL; +- Sender ^ newSender = nullptr; ++ Sender ^ newSender = nullptr; + + try + { + // allocate a native sender +- ::qpid::messaging::Sender * senderp = new ::qpid::messaging::Sender ; +- +- // create the sender +- *senderp = sessionp->::qpid::messaging::Session::createSender(*(address->NativeAddress)); ++ ::qpid::messaging::Sender sender = ++ sessionp->::qpid::messaging::Session::createSender(*(address->NativeAddress)); + + // create a managed sender +- newSender = gcnew Sender(senderp, this); ++ newSender = gcnew Sender(sender, this); + } + catch (const ::qpid::types::Exception & error) + { +@@ -285,13 +271,6 @@ namespace Messaging { + { + delete newSender; + } +- else +- { +- if (senderp != NULL) +- { +- delete senderp; +- } +- } + } + } + if (newException != nullptr) +@@ -306,19 +285,16 @@ namespace Messaging { + Receiver ^ Session::CreateReceiver(System::String ^ address) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Receiver * receiverp = NULL; + Receiver ^ newReceiver = nullptr; + + try + { +- // allocate a native receiver +- receiverp = new ::qpid::messaging::Receiver; +- + // create the receiver +- *receiverp = sessionp->createReceiver(QpidMarshal::ToNative(address)); ++ ::qpid::messaging::Receiver receiver = ++ sessionp->createReceiver(QpidMarshal::ToNative(address)); + + // create a managed receiver +- newReceiver = gcnew Receiver(receiverp, this); ++ newReceiver = gcnew Receiver(receiver, this); + } + catch (const ::qpid::types::Exception & error) + { +@@ -333,13 +309,6 @@ namespace Messaging { + { + delete newReceiver; + } +- else +- { +- if (receiverp != NULL) +- { +- delete receiverp; +- } +- } + } + } + if (newException != nullptr) +@@ -354,19 +323,16 @@ namespace Messaging { + Receiver ^ Session::CreateReceiver(Address ^ address) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Receiver * receiverp = NULL; + Receiver ^ newReceiver = nullptr; + + try + { +- // allocate a native receiver +- receiverp = new ::qpid::messaging::Receiver; +- + // create the receiver +- *receiverp = sessionp->createReceiver(*(address->NativeAddress)); ++ ::qpid::messaging::Receiver receiver = ++ sessionp->createReceiver(*(address->NativeAddress)); + + // create a managed receiver +- newReceiver = gcnew Receiver(receiverp, this); ++ newReceiver = gcnew Receiver(receiver, this); + } + catch (const ::qpid::types::Exception & error) + { +@@ -381,58 +347,6 @@ namespace Messaging { + { + delete newReceiver; + } +- else +- { +- if (receiverp != NULL) +- { +- delete receiverp; +- } +- } +- } +- } +- if (newException != nullptr) +- { +- throw newException; +- } +- +- return newReceiver; +- } +- +- +- Receiver ^ Session::CreateReceiver() +- { +- System::Exception ^ newException = nullptr; +- ::qpid::messaging::Receiver * receiverp = NULL; +- Receiver ^ newReceiver = nullptr; +- +- try +- { +- // allocate a native receiver +- receiverp = new ::qpid::messaging::Receiver; +- +- // create a managed receiver +- newReceiver = gcnew Receiver(receiverp, this); +- } +- catch (const ::qpid::types::Exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- finally +- { +- if (newException != nullptr) +- { +- if (newReceiver != nullptr) +- { +- delete newReceiver; +- } +- else +- { +- if (receiverp != NULL) +- { +- delete receiverp; +- } +- } + } + } + if (newException != nullptr) +@@ -447,14 +361,12 @@ namespace Messaging { + Sender ^ Session::GetSender(System::String ^ name) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Sender * senderp = NULL; + Sender ^ newSender = nullptr; + + try + { +- senderp = new ::qpid::messaging::Sender; +- +- *senderp = sessionp->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name)); ++ ::qpid::messaging::Sender senderp = ++ sessionp->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name)); + + newSender = gcnew Sender(senderp, this); + } +@@ -471,13 +383,6 @@ namespace Messaging { + { + delete newSender; + } +- else +- { +- if (senderp != NULL) +- { +- delete senderp; +- } +- } + } + } + if (newException != nullptr) +@@ -493,16 +398,14 @@ namespace Messaging { + Receiver ^ Session::GetReceiver(System::String ^ name) + { + System::Exception ^ newException = nullptr; +- ::qpid::messaging::Receiver * receiverp = NULL; + Receiver ^ newReceiver = nullptr; + + try + { +- receiverp = new ::qpid::messaging::Receiver; ++ ::qpid::messaging::Receiver receiver = ++ sessionp->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name)); + +- *receiverp = sessionp->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name)); +- +- newReceiver = gcnew Receiver(receiverp, this); ++ newReceiver = gcnew Receiver(receiver, this); + } + catch (const ::qpid::types::Exception & error) + { +@@ -517,13 +420,6 @@ namespace Messaging { + { + delete newReceiver; + } +- else +- { +- if (receiverp != NULL) +- { +- delete receiverp; +- } +- } + } + } + if (newException != nullptr) +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index 18dc09f..d34289b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -65,7 +65,9 @@ namespace Messaging { + void Cleanup(); + + public: +- Session(::qpid::messaging::Session * sessionp, ++ ++ // unmanaged clone ++ Session(const ::qpid::messaging::Session & sessionp, + Connection ^ connRef); + + // copy constructor +@@ -83,9 +85,11 @@ namespace Messaging { + } + else + { +- delete sessionp; ++ if (NULL != sessionp) ++ delete sessionp; + sessionp = new ::qpid::messaging::Session( + *(const_cast(rhs).NativeSession) ); ++ parentConnectionp = rhs.parentConnectionp; + } + return *this; + } +@@ -129,7 +133,6 @@ namespace Messaging { + + Receiver ^ CreateReceiver(System::String ^ address); + Receiver ^ CreateReceiver(Address ^ address); +- Receiver ^ CreateReceiver(); + + Sender ^ GetSender(System::String ^ name); + Receiver ^ GetReceiver(System::String ^ name); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs +index c5a1a7e..b349e5c 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/sessionreceiver.cs +@@ -67,13 +67,15 @@ namespace Org.Apache.Qpid.Messaging.SessionReceiver + /// + public void Open() + { +- Receiver rcvr = session.CreateReceiver(); ++ Receiver rcvr; + Message msg; + + keepRunning = true; + while (keepRunning) + { +- if (session.NextReceiver(rcvr, DurationConstants.SECOND)) ++ rcvr = session.NextReceiver(DurationConstants.SECOND); ++ ++ if (null != rcvr) + { + if (keepRunning) + { +-- +1.5.5.6 + +From 40f82f18e94435d7a46e0ebc56f0a3000606aa87 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 20 Aug 2010 14:24:59 +0000 +Subject: [PATCH] QPID-2785 - QpidTypes.pdb is not installed + Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@987520 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/CMakeLists.txt | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index 9000b66..c934875 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -803,6 +803,7 @@ set_target_properties (qpidtypes PROPERTIES VERSION ${qpidc_version}) + install(TARGETS qpidtypes + DESTINATION ${QPID_INSTALL_LIBDIR} + COMPONENT ${QPID_COMPONENT_COMMON}) ++install_pdb (qpidtypes ${QPID_COMPONENT_COMMON}) + + set (qpidclient_SOURCES + ${rgen_client_srcs} +-- +1.5.5.6 + +From 322182770e9dd3945b2ed940bb96e4e3e62385b0 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Fri, 20 Aug 2010 14:31:04 +0000 +Subject: [PATCH] QPID-2805 - The windows resource version for qmfengine dll is hard coded to an unusable value + Patch from Chuck Rolke + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@987525 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/CMakeLists.txt | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index c934875..f2c33b2 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -50,7 +50,7 @@ MACRO (install_pdb theLibrary theComponent) + ${library_pdb} + DESTINATION ${QPID_INSTALL_LIBDIR}/ReleasePDB + COMPONENT ${theComponent} +- OPTIONAL ++ OPTIONAL + CONFIGURATIONS Release|MinSizeRel) + install (PROGRAMS + ${library_pdb} +@@ -1081,9 +1081,9 @@ set (qmfengine_SOURCES + qmf/engine/ValueImpl.h + ) + if (NOT WIN32) +- list(APPEND qmfengine_SOURCES qmf/engine/ResilientConnection.cpp) ++ list(APPEND qmfengine_SOURCES qmf/engine/ResilientConnection.cpp) + endif (NOT WIN32) +-add_msvc_version_full (qmfengine library dll 1 0 0 1 1 0 0 1) ++add_msvc_version (qmfengine library dll) + + add_library (qmfengine SHARED ${qmfengine_SOURCES}) + target_link_libraries (qmfengine qpidclient) +-- +1.5.5.6 + +From 6301502484325c4ef6556bab5f0d0030434b4301 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 23 Aug 2010 14:51:12 +0000 +Subject: [PATCH] Bug 626341 - Fixed - c++ client's address parser does not accept quoted keys in maps + +QPID-664: allow the key in options map for an address to be quoted + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@988138 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 601575a8ba6fda94da8542d9a1da18fdafecbf1d) +--- + qpid/cpp/src/qpid/messaging/AddressParser.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/messaging/AddressParser.cpp b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +index aea9118..ba222f4 100644 +--- a/qpid/cpp/src/qpid/messaging/AddressParser.cpp ++++ b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +@@ -137,7 +137,7 @@ bool AddressParser::readKeyValuePair(Variant::Map& map) + + bool AddressParser::readKey(std::string& key) + { +- return readWord(key); ++ return readWord(key) || readQuotedString(key); + } + + bool AddressParser::readValue(Variant& value) +-- +1.5.5.6 + +From 34480db4d356faf42c5763876995f638234ef9de Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Mon, 30 Aug 2010 19:38:31 +0000 +Subject: [PATCH] QPID-2827 - QPID Cpp WinSDK does not contain 64-bit libraries + Patch from Chuck Rolke + +* Adds the x64 platform to the cpp\example solution and six example projects. +* Adds the x64 platform to the qpid messaging .NET binding dlls and examples. +* Adds QPID_BUILD_ROOT environment variable to .NET binding projects for locating C++ libraries and headers, and for storing generated output. This is required to compensate for the varying location of cmake-generated directories. For a given build QPID_BUILD_ROOT must be set to the directory in which cmake was run. +* Reorganize the bld-winsdk.ps1 script to build x86 (Win32) and x64 platforms. +* Update Readme-winsdk.txt content. Also switch this file to DOS line endings to improve its usability on a Windows system. +* Add a shadow solution file and shadow project files for the C# examples. The new build process copies the development example source tree to get the example sources organized into a hierarchy and then overlays the copied tree with the shadow .sln and .csproj files. Users then build the examples directly using the customized solution. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@990917 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/README-winsdk.txt | 67 +--- + .../csharp.direct.receiver.csproj | 24 ++- + .../csharp.direct.sender.csproj | 24 ++- + .../csharp.example.client.csproj | 24 ++- + .../csharp.example.declare_queues.csproj | 24 ++- + .../csharp.example.drain.csproj | 24 ++- + .../csharp.example.helloworld.csproj | 24 ++- + .../csharp.example.server.csproj | 24 ++- + .../csharp.example.spout.csproj | 24 ++- + .../csharp.map.callback.receiver.csproj | 24 ++- + .../csharp.map.callback.sender.csproj | 25 ++- + .../csharp.map.receiver/csharp.map.receiver.csproj | 24 ++- + .../csharp.map.sender/csharp.map.sender.csproj | 24 ++- + .../visualbasic.example.client.vbproj | 30 ++- + .../qpid/dotnet/org.apache.qpid.messaging.sln | 66 ++++ + .../dotnet/src/org.apache.qpid.messaging.vcproj | 175 +++++++++- + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 24 ++- + .../test/messaging.test/messaging.test.csproj | 24 ++- + .../csharp.direct.receiver.csproj | 95 +++++ + .../csharp.direct.sender.csproj | 78 +++++ + .../csharp.example.client.csproj | 95 +++++ + .../csharp.example.declare_queues.csproj | 95 +++++ + .../csharp.example.drain.csproj | 96 ++++++ + .../csharp.example.helloworld.csproj | 95 +++++ + .../csharp.example.server.csproj | 95 +++++ + .../csharp.example.spout.csproj | 96 ++++++ + .../csharp.map.callback.receiver.csproj | 99 ++++++ + .../csharp.map.callback.sender.csproj | 98 ++++++ + .../csharp.map.receiver/csharp.map.receiver.csproj | 95 +++++ + .../csharp.map.sender/csharp.map.sender.csproj | 95 +++++ + .../winsdk_sources/winsdk_dotnet_examples.sln | 195 +++++++++++ + qpid/cpp/bld-winsdk.ps1 | 362 +++++++++++++------- + qpid/cpp/examples/examples.sln | 26 ++ + .../cpp/examples/messaging/messaging_client.vcproj | 192 +++++++++++ + qpid/cpp/examples/messaging/messaging_drain.vcproj | 158 +++++++++ + .../messaging/messaging_map_receiver.vcproj | 194 +++++++++++- + .../examples/messaging/messaging_map_sender.vcproj | 192 +++++++++++ + .../cpp/examples/messaging/messaging_server.vcproj | 192 +++++++++++ + qpid/cpp/examples/messaging/messaging_spout.vcproj | 158 +++++++++ + 39 files changed, 3236 insertions(+), 240 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj + create mode 100644 qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln + +diff --git a/qpid/cpp/README-winsdk.txt b/qpid/cpp/README-winsdk.txt +index 76d5f56..2928894 100644 +--- a/qpid/cpp/README-winsdk.txt ++++ b/qpid/cpp/README-winsdk.txt +@@ -16,6 +16,12 @@ Qpid-Cpp-Win-Sdk is a software development kit for users who wish + to write code using the Qpid-Cpp program libraries in a Windows + environment. + ++This kit is distributed as two zip files: ++ qpid-cpp-x86-.zip - projects and libraries for 32-bit ++ x86 and Win32 development. ++ qpid-cpp-x64-.zip - projects and libraries for 64-bit ++ x64 development. ++ + For additional software or information on the Qpid project go to: + http://cwiki.apache.org/qpid/ + +@@ -58,8 +64,8 @@ The kit directories hold the content described here. + to demonstrate using this SDK in C++. + + \dotnet_examples +- A set of example source files written in C#, Visual Basic, and +- PowerShell. ++ A Visual Studio solution file and associated project files ++ to demonstrate using this SDK in C#. + + \management + A python scripting code set for generating QMF data structures. +@@ -71,59 +77,20 @@ The kit directories hold the content described here. + 4. Building dotnet_examples + =========================== + +-Each file in the \dotnet_examples directory is a stand-alone, main +-console program that illustrates some facet of programming the Qpid +-Messaging API. Use the following steps to create a project that +-builds and executes an example csharp program. +- +-A. Assume that the WinSdk was downloaded to d:\winsdk. +-B. Start Visual Studio +-C. Add File->New->Project... +- 1. Select C#, Console Application +- 2. Name: csharp.direct.receiver +- 3. Location: D:\winsdk\dotnet_examples +- 4. Check: "Create directory for solution" +- 5. Press OK +-D. In Solution Explorer +- 1. Delete program.cs +- 2. Add->Existing Item. +- Select d:\winsdk\dotnet_examples\csharp.direct.receiver.cs +- 3. Add Reference to d:\winsdk\bin\org.apache.qpid.messaging.dll +- Note: In each source file a 'using' statement selects +- Org.Apache.Qpid.Messaging, Org.Apache.Qpid.Messaging.Sessionreceiver, +- or both. Resolve these statements with references to the files +- in \bin. +- 4. Right-click the project and select Properties +- Select the Build tab. +- Select Configuration pulldown entry "All Configurations" +- Set the Output Path to "d:\winsdk\bin" +-E. Right-click the solution and select Configuration Manager +- 1. Select Configuration -> Debug +- 2. Select Platform -> +- pick x86, OK +-F. In the standard toolbar verify that +- 1. Configuration selects Debug +- 2. Platform selects x86 +-G. Build the solution. +- 1. The solution should build with no errors or warnings. +-H. Verify that the solution placed the executables in the proper place: +- 1. Directory d:\winsdk\bin has files csharp.direct.receiver.exe, +- csharp.direct.receiver.pdb, and csharp.direct.receiver.vshost.exe. +- +-The solution is now ready to execute. You may set breakpoints in the +-Visual Studio source file or run the executable directly from +-d:\winsdk\bin. +- +-This process may be repeated for each example csharp source file. A similar +-process is followed for the Visual Basic example. The PowerShell example +-is executed directly in a PowerShell window. ++From the \dotnet_examples directory launch the winsdk_dotnet_examples.sln ++solution file. In the platform pulldown list select "x86" or "x64" to ++match the development kit you are using. Then build the solution in the ++Debug configuration. ++ ++The resulting executable programs may be run from within Visual Studio ++or stand-alone from the \bin directory. + + 5. Notes + ======== +-* The Qpid-Cpp binaries are produced for the 32-bit Win32 platform. +- + * Only the Release variant of Qpid code uses the redistributable + MSVC90 libraries in the /bin directory. Users who wish to link to + the Debug variant of Qpid code may do so under their own copy of + Visual Studio 2008 where the debug versions of MSVC90 runtime + libraries are available. ++ ++* The dotnet_examples are only available in the Debug configuration. +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index 172e25a..4c55bc1 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +index 8e8371c..96f541f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +index 76fb1c5..5618ac5 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +index fb7e950..fa9d648 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +index 198900c..c9404fd 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +index 3038ed6..04e3d4f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +index 1fa2cc0..336d1e7 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +index 15fc644..a3f949d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +index c32574a..0141c5f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +index 1f37ce8..c54423e 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -26,14 +26,14 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + true + full +@@ -41,13 +41,30 @@ + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ true ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +index c3d87ee..3e3e248 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +index 516e7cc..11bbd58 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +@@ -17,7 +17,7 @@ + true + full + false +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + prompt + 4 +@@ -25,27 +25,43 @@ + + pdbonly + true +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + prompt + 4 + + + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE + full + x86 + prompt + + +- ..\..\..\..\..\src\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly + x86 + prompt + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj +index ae1c012..267b003 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj +@@ -23,7 +23,7 @@ + full + true + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + visualbasic.example.client.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + +@@ -32,7 +32,7 @@ + false + true + true +- bin\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + visualbasic.example.client.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + +@@ -40,7 +40,7 @@ + true + true + true +- ..\..\..\..\..\src\Debug\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + visualbasic.example.client.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + full +@@ -48,13 +48,32 @@ + + + true +- bin\x86\Release\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + visualbasic.example.client.xml + true + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + pdbonly + x86 + ++ ++ true ++ true ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ visualbasic.example.client.xml ++ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ full ++ x64 ++ ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ visualbasic.example.client.xml ++ true ++ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ pdbonly ++ x64 ++ + + + +@@ -123,6 +142,9 @@ + Org.Apache.Qpid.Messaging + + ++ ++ ++ + + ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj +new file mode 100644 +index 0000000..28726c7 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -0,0 +1,78 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} ++ Exe ++ Properties ++ csharp.direct.sender ++ csharp.direct.sender ++ v3.5 ++ 512 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj +new file mode 100644 +index 0000000..84fa6e8 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj +@@ -0,0 +1,95 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696} ++ Exe ++ Properties ++ csharp.example.client ++ csharp.example.client ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +new file mode 100644 +index 0000000..b86694e +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +@@ -0,0 +1,95 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {E31B349C-830C-4583-8BD9-30DA4398349F} ++ Exe ++ Properties ++ csharp.example.declare_queues ++ csharp.example.declare_queues ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj +new file mode 100644 +index 0000000..a7937dd +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj +@@ -0,0 +1,96 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08} ++ Exe ++ Properties ++ csharp.example.drain ++ csharp.example.drain ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +new file mode 100644 +index 0000000..ae63171 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +@@ -0,0 +1,95 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D} ++ Exe ++ Properties ++ csharp.example.helloworld ++ csharp.example.helloworld ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj +new file mode 100644 +index 0000000..77953a5 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj +@@ -0,0 +1,95 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3} ++ Exe ++ Properties ++ csharp.example.server ++ csharp.example.server ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj +new file mode 100644 +index 0000000..c04951a +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj +@@ -0,0 +1,96 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137} ++ Exe ++ Properties ++ csharp.example.spout ++ csharp.example.spout ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +new file mode 100644 +index 0000000..8ade4b6 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -0,0 +1,99 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF} ++ Exe ++ Properties ++ csharp.map.callback.receiver ++ csharp.map.callback.receiver ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.sessionreceiver.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +new file mode 100644 +index 0000000..a2c6d0b +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -0,0 +1,98 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A} ++ Exe ++ Properties ++ csharp.map.callback.sender ++ csharp.map.callback.sender ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ true ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ true ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ true ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj +new file mode 100644 +index 0000000..350c64b +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -0,0 +1,95 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} ++ Exe ++ Properties ++ csharp.map.receiver ++ csharp.map.receiver ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj +new file mode 100644 +index 0000000..fa0e05f +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj +@@ -0,0 +1,95 @@ ++ ++ ++ ++ Debug ++ x86 ++ 9.0.21022 ++ 2.0 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10} ++ Exe ++ Properties ++ csharp.map.sender ++ csharp.map.sender ++ v3.5 ++ 512 ++ ++ ++ true ++ full ++ false ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ prompt ++ 4 ++ ++ ++ pdbonly ++ true ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ prompt ++ 4 ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x86 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ true ++ $(ProjectDir)..\..\..\bin\ ++ DEBUG;TRACE ++ full ++ x64 ++ prompt ++ ++ ++ $(ProjectDir)..\..\..\bin\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ ++ ++ ++ False ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ 3.5 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln +new file mode 100644 +index 0000000..9fe026e +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln +@@ -0,0 +1,195 @@ ++Microsoft Visual Studio Solution File, Format Version 10.00 ++# Visual Studio 2008 ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{34C477FB-B0CC-4AB9-A346-EA7B055469AC}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Direct", "Direct", "{DE58D329-10DC-4C8D-9EFA-230A57314089}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.direct.sender", "examples\csharp.direct.sender\csharp.direct.sender.csproj", "{7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.direct.receiver", "examples\csharp.direct.receiver\csharp.direct.receiver.csproj", "{52F880E7-D677-4C91-8516-D679CE0F46A8}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StructuredMessage", "StructuredMessage", "{E99FEFEE-B866-4BBA-9AA3-79DDF1C92960}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.sender", "examples\csharp.map.sender\csharp.map.sender.csproj", "{5D8252F5-E1D3-44A0-94C7-7CB75E843C10}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.receiver", "examples\csharp.map.receiver\csharp.map.receiver.csproj", "{AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.callback.receiver", "examples\csharp.map.callback.receiver\csharp.map.callback.receiver.csproj", "{68A43817-2358-4A31-8FDF-FE21722BFBCF}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.callback.sender", "examples\csharp.map.callback.sender\csharp.map.callback.sender.csproj", "{12F1C14F-5C7D-4075-9BAE-C091394FF99A}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client-Server", "Client-Server", "{9232212E-F3C6-4D18-8D25-0C31DD5FF3DB}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.client", "examples\csharp.example.client\csharp.example.client.csproj", "{0DE01712-C2D1-4CA4-B42C-5856456A8696}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.server", "examples\csharp.example.server\csharp.example.server.csproj", "{090A081D-E8B5-4949-AA43-EE182B7101E3}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Drain-Spout", "Drain-Spout", "{89CE04CB-21DE-4ABB-9236-50529DD8C022}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.drain", "examples\csharp.example.drain\csharp.example.drain.csproj", "{C43DEB69-8088-420B-B0CA-C699535E6D08}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.spout", "examples\csharp.example.spout\csharp.example.spout.csproj", "{EB36626D-36C2-41B3-B65E-762BAF27F137}" ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.declare_queues", "examples\csharp.example.declare_queues\csharp.example.declare_queues.csproj", "{E31B349C-830C-4583-8BD9-30DA4398349F}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hello World", "Hello World", "{4408A2DA-ED2D-44AE-A465-0B6D75E1FF86}" ++ ProjectSection(SolutionItems) = preProject ++ examples\powershell.example.helloworld\powershell.example.helloworld.ps1 = examples\powershell.example.helloworld\powershell.example.helloworld.ps1 ++ EndProjectSection ++EndProject ++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.helloworld", "examples\csharp.example.helloworld\csharp.example.helloworld.csproj", "{8CC1C265-0507-44A3-9483-8FAF48513F4D}" ++EndProject ++Global ++ GlobalSection(SolutionConfigurationPlatforms) = preSolution ++ Debug|Win32 = Debug|Win32 ++ Debug|x64 = Debug|x64 ++ Debug|x86 = Debug|x86 ++ Release|Win32 = Release|Win32 ++ Release|x64 = Release|x64 ++ Release|x86 = Release|x86 ++ EndGlobalSection ++ GlobalSection(ProjectConfigurationPlatforms) = postSolution ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x64.ActiveCfg = Debug|x64 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x64.Build.0 = Debug|x64 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.ActiveCfg = Debug|x86 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.Build.0 = Debug|x86 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Win32.ActiveCfg = Release|Any CPU ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x64.ActiveCfg = Release|x64 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x64.Build.0 = Release|x64 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.ActiveCfg = Release|x86 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.Build.0 = Release|x86 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x64.ActiveCfg = Debug|x64 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x64.Build.0 = Debug|x64 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.ActiveCfg = Debug|x86 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.Build.0 = Debug|x86 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Win32.ActiveCfg = Release|Any CPU ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x64.ActiveCfg = Release|x64 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x64.Build.0 = Release|x64 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.ActiveCfg = Release|x86 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.Build.0 = Release|x86 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x64.ActiveCfg = Debug|x64 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x64.Build.0 = Debug|x64 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.ActiveCfg = Debug|x86 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.Build.0 = Debug|x86 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Win32.ActiveCfg = Release|Any CPU ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x64.ActiveCfg = Release|x64 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x64.Build.0 = Release|x64 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.ActiveCfg = Release|x86 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.Build.0 = Release|x86 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x64.ActiveCfg = Debug|x64 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x64.Build.0 = Debug|x64 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.ActiveCfg = Debug|x86 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.Build.0 = Debug|x86 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Win32.ActiveCfg = Release|Any CPU ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x64.ActiveCfg = Release|x64 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x64.Build.0 = Release|x64 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.ActiveCfg = Release|x86 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.Build.0 = Release|x86 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x64.ActiveCfg = Debug|x64 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x64.Build.0 = Debug|x64 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.ActiveCfg = Debug|x86 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.Build.0 = Debug|x86 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Win32.ActiveCfg = Release|Any CPU ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x64.ActiveCfg = Release|x64 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x64.Build.0 = Release|x64 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.ActiveCfg = Release|x86 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.Build.0 = Release|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x64.ActiveCfg = Debug|x64 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x64.Build.0 = Debug|x64 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.ActiveCfg = Debug|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.Build.0 = Debug|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Win32.ActiveCfg = Release|Any CPU ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x64.ActiveCfg = Release|x64 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x64.Build.0 = Release|x64 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.ActiveCfg = Release|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.Build.0 = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Win32.ActiveCfg = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x64.ActiveCfg = Debug|x64 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x64.Build.0 = Debug|x64 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.ActiveCfg = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.Build.0 = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Win32.ActiveCfg = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x64.ActiveCfg = Release|x64 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x64.Build.0 = Release|x64 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.ActiveCfg = Release|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.Build.0 = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Win32.ActiveCfg = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x64.ActiveCfg = Debug|x64 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x64.Build.0 = Debug|x64 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.ActiveCfg = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.Build.0 = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Win32.ActiveCfg = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x64.ActiveCfg = Release|x64 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x64.Build.0 = Release|x64 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.ActiveCfg = Release|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.Build.0 = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Win32.ActiveCfg = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x64.ActiveCfg = Debug|x64 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x64.Build.0 = Debug|x64 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.ActiveCfg = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.Build.0 = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Win32.ActiveCfg = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x64.ActiveCfg = Release|x64 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x64.Build.0 = Release|x64 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.ActiveCfg = Release|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.Build.0 = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Win32.ActiveCfg = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x64.ActiveCfg = Debug|x64 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x64.Build.0 = Debug|x64 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.ActiveCfg = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.Build.0 = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Win32.ActiveCfg = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x64.ActiveCfg = Release|x64 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x64.Build.0 = Release|x64 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.ActiveCfg = Release|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.Build.0 = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Win32.ActiveCfg = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x64.ActiveCfg = Debug|x64 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x64.Build.0 = Debug|x64 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.ActiveCfg = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.Build.0 = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Win32.ActiveCfg = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x64.ActiveCfg = Release|x64 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x64.Build.0 = Release|x64 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.ActiveCfg = Release|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.Build.0 = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Win32.ActiveCfg = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x64.ActiveCfg = Debug|x64 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x64.Build.0 = Debug|x64 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x86.ActiveCfg = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x86.Build.0 = Debug|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Win32.ActiveCfg = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x64.ActiveCfg = Release|x64 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x64.Build.0 = Release|x64 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.ActiveCfg = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.Build.0 = Release|x86 ++ EndGlobalSection ++ GlobalSection(SolutionProperties) = preSolution ++ HideSolutionNode = FALSE ++ EndGlobalSection ++ GlobalSection(NestedProjects) = preSolution ++ {DE58D329-10DC-4C8D-9EFA-230A57314089} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {89CE04CB-21DE-4ABB-9236-50529DD8C022} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {4408A2DA-ED2D-44AE-A465-0B6D75E1FF86} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} = {DE58D329-10DC-4C8D-9EFA-230A57314089} ++ {52F880E7-D677-4C91-8516-D679CE0F46A8} = {DE58D329-10DC-4C8D-9EFA-230A57314089} ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} ++ {090A081D-E8B5-4949-AA43-EE182B7101E3} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} ++ {C43DEB69-8088-420B-B0CA-C699535E6D08} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} ++ {EB36626D-36C2-41B3-B65E-762BAF27F137} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} ++ {E31B349C-830C-4583-8BD9-30DA4398349F} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D} = {4408A2DA-ED2D-44AE-A465-0B6D75E1FF86} ++ EndGlobalSection ++EndGlobal +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index 0bf7c4c..f679001 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -17,19 +17,225 @@ + # under the License. + # + +-# This script requires cmake, and 7z to be already on the path devenv should be on the path as +-# a result of installing Visual Studio ++# This script builds a WinSDK from a raw Qpid source checkout. ++# ++# On entry: ++# 1. Args[0] holds the relative path to Qpid/trunk. ++# Directory ".\$args[0]" holds the "cpp" directory and ++# file QPID_VERSION.txt. ++# 2. Args[1] holds the x86 32-bit BOOST_ROOT. "c:\boost" ++# 3. Args[2] holds the x64 64-bit BOOST_ROOT. "c:\boost_x64" ++# 4. Args[1] holds the version number. "0.7.946106-99" ++# 5. The current directory will receive x86 and x64 subdirs. ++# 6. The x86 an x64 dirs are where cmake will run. ++# 7. Two Boost installations, 32- and 64-bit, are available. ++# 9. No Boost directory must be on the path. ++# 9. cmake, 7z, and devenv are already on the path. ++# 10. devenv is Visual Studio 2008 ++# ++# This script creates separate zip kits for 32- and ++# for 64-bit variants. ++# + ++Set-PSDebug -Trace 1 + Set-PSDebug -strict + $ErrorActionPreference='Stop' + +-if ($args.length -lt 1) { +- Write-Host 'Need to specify location of qpid src tree' +- exit ++# ++# Global variables ++# ++# Define boost ++[string] $global:bldwinsdkDirectory = Split-Path -parent $MyInvocation.MyCommand.Definition ++[string] $global:sourceDirectory = Split-Path -parent $global:bldwinsdkDirectory ++[string] $global:currentDirectory = Split-Path -parent $global:sourceDirectory ++ ++ ++################################ ++# ++# BuildAPlatform ++# Build a platform, x86 or x64. ++# Compiles and packages Debug and RelWithDebInfo configurations. ++# ++function BuildAPlatform ++{ ++ param ++ ( ++ [string] $qpid_cpp_dir, ++ [string] $platform, ++ [string] $cmakeGenerator, ++ [string] $vsTargetDebug, ++ [string] $vsTargetRelease, ++ [string] $boostRoot, ++ [string] $randomness ++ ) ++ ++ [string] $install_dir = "install_$randomness" ++ [string] $preserve_dir = "preserve_$randomness" ++ [string] $zipfile = "qpid-cpp-$platform-$ver.zip" ++ [string] $platform_dir = "$global:currentDirectory/$platform" ++ [string] $qpid_cpp_src = "$global:currentDirectory/$qpid_cpp_dir" ++ ++ # ++ # Create the platform directory if necessary ++ # ++ if (!(Test-Path -path $platform_dir)) ++ { ++ New-Item $platform_dir -type Directory | Out-Null ++ } ++ ++ # ++ # Descend into platform directory ++ # ++ Set-Location $platform_dir ++ ++ # ++ # Set environment for this build ++ # ++ $env:BOOST_ROOT = "$boostRoot" ++ $env:QPID_BUILD_ROOT = Get-Location ++ ++ # ++ # Run cmake ++ # ++ cmake -G "$cmakeGenerator" "-DCMAKE_INSTALL_PREFIX=$install_dir" $qpid_cpp_src ++ ++ # Need to build doxygen api docs separately as nothing depends on them. ++ # Build for both x86 and x64 or cmake_install fails. ++ if ("x86" -eq $platform) { ++ devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api ++ } else { ++ devenv qpid-cpp.sln /build "Release|$platform" /project docs-user-api ++ } ++ ++ # Build both Debug and Release builds so we can ship both sets of libs: ++ # Make RelWithDebInfo for debuggable release code. ++ # (Do Release after Debug so that the release executables overwrite the ++ # debug executables. Don't skip Debug as it creates some needed content.) ++ devenv qpid-cpp.sln /build "$vsTargetDebug" /project INSTALL ++ devenv qpid-cpp.sln /build "$vsTargetRelease" /project INSTALL ++ ++ # Build the .NET binding ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "Debug|$platform" /project org.apache.qpid.messaging.sessionreceiver ++ ++ # This would be kludgy if we have only one entry as the array declaration syntax ++ # can't cope with just one nested array ++ # Target must be a directory ++ $move=( ++ ('bin/*.lib','lib'), ++ ('bin/boost/*.dll','bin') ++ ) ++ ++ $preserve=( ++ 'include/qpid/agent', ++ 'include/qpid/amqp_0_10', ++ 'include/qpid/management', ++ 'include/qpid/messaging', ++ 'include/qpid/sys/IntegerTypes.h', ++ 'include/qpid/sys/windows/IntegerTypes.h', ++ 'include/qpid/sys/posix/IntegerTypes.h', ++ 'include/qpid/types', ++ 'include/qpid/CommonImportExport.h') ++ $remove=( ++ 'bin/qpidd.exe', 'bin/qpidbroker*.*', ++ 'bin/*PDB/qpidd.exe', 'bin/*PDB/qpidbroker*.*', ++ 'bin/qmfengine*.*', 'bin/qpidxarm*.*', ++ 'bin/*PDB/qmfengine*.*', 'bin/*PDB/qpidxarm*.*', ++ 'bin/boost_regex*.*', ++ 'bin/boost', ++ 'conf', ++ 'examples/direct', ++ 'examples/failover', ++ 'examples/fanout', ++ 'examples/pub-sub', ++ 'examples/qmf-console', ++ 'examples/request-response', ++ 'examples/tradedemo', ++ 'examples/old-examples.sln', ++ 'examples/README.*', ++ 'examples/verify*', ++ 'include', ++ 'plugins') ++ ++ # Move some files around in the install tree ++ foreach ($pattern in $move) { ++ $target = Join-Path $install_dir $pattern[1] ++ New-Item -force -type directory $target ++ Move-Item -force -path "$install_dir/$($pattern[0])" -destination "$install_dir/$($pattern[1])" ++ } ++ ++ # Copy aside the files to preserve ++ New-Item -path $preserve_dir -type directory ++ foreach ($pattern in $preserve) { ++ $target = Join-Path $preserve_dir $pattern ++ $tparent = Split-Path -parent $target ++ New-Item -force -type directory $tparent ++ Move-Item -force -path "$install_dir/$pattern" -destination "$preserve_dir/$pattern" ++ } ++ ++ # Remove everything to remove ++ foreach ($pattern in $remove) { ++ Remove-Item -recurse "$install_dir/$pattern" ++ } ++ ++ # Copy back the preserved things ++ foreach ($pattern in $preserve) { ++ $target = Join-Path $install_dir $pattern ++ $tparent = Split-Path -parent $target ++ New-Item -force -type directory $tparent ++ Move-Item -force -path "$preserve_dir/$pattern" -destination "$install_dir/$pattern" ++ } ++ Remove-Item -recurse $preserve_dir ++ ++ # Install the README ++ Copy-Item -force -path "$qpid_cpp_src/README-winsdk.txt" -destination "$install_dir/README-winsdk.txt" ++ ++ # Install the .NET binding ++ Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" ++ Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/DebugPDB" ++ ++ # Install the .NET binding examples ++ New-Item -path $(Join-Path $(Get-Location) $install_dir) -name dotnet_examples -type directory ++ New-Item -path $(Join-Path $(Get-Location) $install_dir/dotnet_examples) -name examples -type directory ++ ++ $src = Resolve-Path "$qpid_cpp_src/bindings/qpid/dotnet/examples" ++ $dst = Resolve-Path "$install_dir/dotnet_examples" ++ Copy-Item "$src\" -destination "$dst\" -recurse -force ++ ++ $src = Resolve-Path "$qpid_cpp_src/bindings/qpid/dotnet/winsdk_sources" ++ $dst = Resolve-Path "$install_dir/dotnet_examples" ++ Copy-Item "$src\*" -destination "$dst\" -recurse -force ++ ++ # Zip the /bin PDB files into two zip files. ++ # we previously arranged that the Debug pdbs go in the DebugPDB subdirectory ++ # and the Release pdbs go in the ReleasePDB subdirectory ++ &'7z' a -mx9 ".\$install_dir\bin\symbols-debug.zip" ".\$install_dir\bin\DebugPDB\*.pdb" ++ &'7z' a -mx9 ".\$install_dir\bin\symbols-release.zip" ".\$install_dir\bin\ReleasePDB\*.pdb" ++ ++ Remove-Item -recurse ".\$install_dir\bin\DebugPDB" ++ Remove-Item -recurse ".\$install_dir\bin\ReleasePDB" ++ ++ # Create a new zip for the whole kit. ++ # Exclude *.pdb so as not include the debug symbols twice ++ if (Test-Path $zipfile) {Remove-Item $zipfile} ++ &'7z' a $zipfile ".\$install_dir\*" -xr!*pdb ++} ++ ++################################ ++# ++# Main() ++# ++# Process the args ++# ++if ($args.length -lt 3) { ++ Write-Host 'Usage: bld-winsdk.ps1 qpid_src_dir boost32_dir boost64_dir [version]' ++ exit + } + +-$qpid_src=$args[0] +-$ver=$args[1] ++$qpid_src = $args[0] ++$boostRoot32 = $args[1] ++$boostRoot64 = $args[2] ++$ver = $args[3] + if ($ver -eq $null) { + $qpid_version_file="$qpid_src\QPID_VERSION.txt" + +@@ -40,122 +246,36 @@ if ($ver -eq $null) { + $ver=Get-Content $qpid_version_file + } + +-$randomness=[System.IO.Path]::GetRandomFileName() +- +-$qpid_cpp_src="$qpid_src\cpp" +-$install_dir="install_$randomness" +-$preserve_dir="preserve_$randomness" +-$zipfile="qpid-cpp-$ver.zip" +- +-# This assumes Visual Studio 2008 +-cmake -G "Visual Studio 9 2008" "-DCMAKE_INSTALL_PREFIX=$install_dir" $qpid_cpp_src +- +-# Need to build doxygen api docs separately as nothing depends on them +-devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api +- +-# Build both Debug and Release builds so we can ship both sets of libs: +-# Make RelWithDebInfo for debuggable release code. +-# (Do Release after Debug so that the release executables overwrite the +-# debug executables. Don't skip Debug as it creates some needed content.) +-devenv qpid-cpp.sln /build "Debug|Win32" /project INSTALL +-devenv qpid-cpp.sln /build "RelWithDebInfo|Win32" /project INSTALL +- +-# Build the .NET binding +-devenv $qpid_cpp_src\bindings\qpid\dotnet\bld\bld-org.apache.qpid.messaging.sln /build "Debug|x86" /project bld-org.apache.qpid.messaging +-devenv $qpid_cpp_src\bindings\qpid\dotnet\bld\bld-org.apache.qpid.messaging.sln /build "Debug|x86" /project bld-org.apache.qpid.messaging.sessionreceiver +- +-# This would be kludgy if we have only one entry as the array declaration syntax +-# can't cope with just one nested array +-# Target must be a directory +-$move=( +- ('bin/*.lib','lib'), +- ('bin/boost/*.dll','bin') +-) +- +-$preserve=( +- 'include/qpid/agent', +- 'include/qpid/amqp_0_10', +- 'include/qpid/management', +- 'include/qpid/messaging', +- 'include/qpid/sys/IntegerTypes.h', +- 'include/qpid/sys/windows/IntegerTypes.h', 'include/qpid/sys/posix/IntegerTypes.h', +- 'include/qpid/types', +- 'include/qpid/CommonImportExport.h') +-$remove=( +- 'bin/qpidd.exe', 'bin/qpidbroker*.*', +- 'bin/*PDB/qpidd.exe', 'bin/*PDB/qpidbroker*.*', +- 'bin/qmfengine*.*', 'bin/qpidxarm*.*', +- 'bin/*PDB/qmfengine*.*', 'bin/*PDB/qpidxarm*.*', +- 'bin/boost_regex*.*', +- 'bin/boost', +- 'conf', +- 'examples/direct', +- 'examples/failover', +- 'examples/fanout', +- 'examples/pub-sub', +- 'examples/qmf-console', +- 'examples/request-response', +- 'examples/tradedemo', +- 'examples/old-examples.sln', +- 'examples/README.*', +- 'examples/verify*', +- 'include', +- 'plugins') +- +-# Move some files around in the install tree +-foreach ($pattern in $move) { +- $target = Join-Path $install_dir $pattern[1] +- New-Item -force -type directory $target +- Move-Item -force -path "$install_dir/$($pattern[0])" -destination "$install_dir/$($pattern[1])" +-} +- +-# Copy aside the files to preserve +-New-Item -path $preserve_dir -type directory +-foreach ($pattern in $preserve) { +- $target = Join-Path $preserve_dir $pattern +- $tparent = Split-Path -parent $target +- New-Item -force -type directory $tparent +- Move-Item -force -path "$install_dir/$pattern" -destination "$preserve_dir/$pattern" +-} +-# Remove everything to remove +-foreach ($pattern in $remove) { +- Remove-Item -recurse "$install_dir/$pattern" +-} +-# Copy back the preserved things +-foreach ($pattern in $preserve) { +- $target = Join-Path $install_dir $pattern +- $tparent = Split-Path -parent $target +- New-Item -force -type directory $tparent +- Move-Item -force -path "$preserve_dir/$pattern" -destination "$install_dir/$pattern" ++# ++# Verify that Boost is not in PATH ++# ++[string] $oldPath = $env:PATH ++$oldPath = $oldPath.ToLower() ++if ($oldPath.Contains("boost")) ++{ ++ Write-Host "This script will not work with BOOST defined in the path environment variable." ++ Exit + } +-Remove-Item -recurse $preserve_dir +- +-# Install the README +-Copy-Item -force -path "$qpid_cpp_src/README-winsdk.txt" -destination "$install_dir/README-winsdk.txt" +- +-# Install the .NET binding +-Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" +-Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/DebugPDB" + +-New-Item -path $(Join-Path $(Get-Location) $install_dir) -name dotnet_examples -type directory +-Dir -recurse $qpid_cpp_src/bindings/qpid/dotnet/examples csharp*.cs | Copy -destination $install_dir/dotnet_examples +-Dir -recurse $qpid_cpp_src/bindings/qpid/dotnet/examples visualbasic*.vb | Copy -destination $install_dir/dotnet_examples +-Dir -recurse $qpid_cpp_src/bindings/qpid/dotnet/examples *.ps1 | Copy -destination $install_dir/dotnet_examples +- +-# Zip the /bin PDB files into two zip files. +-# we previously arranged that the Debug pdbs go in the DebugPDB subdirectory +-# and the Release pdbs go in the ReleasePDB subdirectory +-&'7z' a -mx9 ".\$install_dir\bin\symbols-debug.zip" ".\$install_dir\bin\DebugPDB\*.pdb" +-&'7z' a -mx9 ".\$install_dir\bin\symbols-release.zip" ".\$install_dir\bin\ReleasePDB\*.pdb" +- +-# It would be very good to cut down on the shipped boost include files too, ideally by +-# starting with the qpid files and recursively noting all boost headers actually needed + ++$randomness=[System.IO.Path]::GetRandomFileName() ++$qpid_cpp_src="$qpid_src\cpp" + +-# Create a new zip for the whole kit. +-# Exclude *.pdb so as not include the debug symbols twice +-if (Test-Path $zipfile) {Remove-Item $zipfile} +-&'7z' a $zipfile ".\$install_dir\*" -xr!*pdb ++# ++# buid ++# ++BuildAPlatform $qpid_cpp_src ` ++ "x64" ` ++ "Visual Studio 9 2008 Win64" ` ++ "Debug|x64" ` ++ "RelWithDebInfo|x64" ` ++ $boostRoot64 ` ++ $randomness + +-# Remove temporary install area +-# Remove-Item -recurse $install_dir ++BuildAPlatform $qpid_cpp_src ` ++ "x86" ` ++ "Visual Studio 9 2008" ` ++ "Debug|Win32" ` ++ "RelWithDebInfo|Win32" ` ++ $boostRoot32 ` ++ $randomness +diff --git a/qpid/cpp/examples/examples.sln b/qpid/cpp/examples/examples.sln +index 4a26ac7..8511fe3 100644 +--- a/qpid/cpp/examples/examples.sln ++++ b/qpid/cpp/examples/examples.sln +@@ -35,33 +35,59 @@ EndProject + Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 ++ Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 ++ Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 + {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 ++ {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.ActiveCfg = Debug|x64 ++ {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.Build.0 = Debug|x64 + {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 + {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 ++ {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.ActiveCfg = Release|x64 ++ {80B58CBC-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.Build.0 = Release|x64 + {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 + {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 ++ {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.ActiveCfg = Debug|x64 ++ {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.Build.0 = Debug|x64 + {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 + {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 ++ {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.ActiveCfg = Release|x64 ++ {92D8F5AA-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.Build.0 = Release|x64 + {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 + {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 ++ {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.ActiveCfg = Debug|x64 ++ {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.Build.0 = Debug|x64 + {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 + {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 ++ {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.ActiveCfg = Release|x64 ++ {3B9EA507-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.Build.0 = Release|x64 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.ActiveCfg = Debug|Win32 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|Win32.Build.0 = Debug|Win32 ++ {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.ActiveCfg = Debug|x64 ++ {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Debug|x64.Build.0 = Debug|x64 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.ActiveCfg = Release|Win32 + {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Release|Win32.Build.0 = Release|Win32 ++ {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.ActiveCfg = Release|x64 ++ {E0A50687-FECA-1BAD-1FEE-AE349A6B75AA}.Release|x64.Build.0 = Release|x64 + {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|Win32.ActiveCfg = Debug|Win32 + {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|Win32.Build.0 = Debug|Win32 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|x64.ActiveCfg = Debug|x64 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Debug|x64.Build.0 = Debug|x64 + {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|Win32.ActiveCfg = Release|Win32 + {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|Win32.Build.0 = Release|Win32 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|x64.ActiveCfg = Release|x64 ++ {D79791E5-C593-4F23-B545-0CE72D181F2A}.Release|x64.Build.0 = Release|x64 + {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|Win32.Build.0 = Debug|Win32 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|x64.ActiveCfg = Debug|x64 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Debug|x64.Build.0 = Debug|x64 + {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|Win32.ActiveCfg = Release|Win32 + {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|Win32.Build.0 = Release|Win32 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|x64.ActiveCfg = Release|x64 ++ {D3115AC9-91C4-4D79-BCAC-DE837C70F1EA}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE +diff --git a/qpid/cpp/examples/messaging/messaging_client.vcproj b/qpid/cpp/examples/messaging/messaging_client.vcproj +index dcca4a6..0313a9f 100644 +--- a/qpid/cpp/examples/messaging/messaging_client.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_client.vcproj +@@ -32,6 +32,9 @@ + ++ + + + +@@ -207,6 +210,179 @@ + Name="VCPostBuildEventTool" + /> + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -242,6 +418,22 @@ + Name="VCCustomBuildTool" + /> + ++ ++ ++ ++ ++ ++ + + + +diff --git a/qpid/cpp/examples/messaging/messaging_drain.vcproj b/qpid/cpp/examples/messaging/messaging_drain.vcproj +index b587aae..61429ec 100644 +--- a/qpid/cpp/examples/messaging/messaging_drain.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_drain.vcproj +@@ -32,6 +32,9 @@ + ++ + + + +@@ -189,6 +192,161 @@ + Name="VCPostBuildEventTool" + /> + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +diff --git a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +index d8d2882..9b40c13 100644 +--- a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +@@ -19,7 +19,7 @@ + - under the License. + - + --> +- ++ + + + +@@ -207,6 +210,179 @@ + Name="VCPostBuildEventTool" + /> + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -242,6 +418,22 @@ + Name="VCCustomBuildTool" + /> + ++ ++ ++ ++ ++ ++ + + + +diff --git a/qpid/cpp/examples/messaging/messaging_map_sender.vcproj b/qpid/cpp/examples/messaging/messaging_map_sender.vcproj +index a7940ad..517e791 100644 +--- a/qpid/cpp/examples/messaging/messaging_map_sender.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_map_sender.vcproj +@@ -32,6 +32,9 @@ + ++ + + + +@@ -207,6 +210,179 @@ + Name="VCPostBuildEventTool" + /> + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -242,6 +418,22 @@ + Name="VCCustomBuildTool" + /> + ++ ++ ++ ++ ++ ++ + + + +diff --git a/qpid/cpp/examples/messaging/messaging_server.vcproj b/qpid/cpp/examples/messaging/messaging_server.vcproj +index 4405fd6..93fc41a 100644 +--- a/qpid/cpp/examples/messaging/messaging_server.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_server.vcproj +@@ -32,6 +32,9 @@ + ++ + + + +@@ -207,6 +210,179 @@ + Name="VCPostBuildEventTool" + /> + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -242,6 +418,22 @@ + Name="VCCustomBuildTool" + /> + ++ ++ ++ ++ ++ ++ + + + +diff --git a/qpid/cpp/examples/messaging/messaging_spout.vcproj b/qpid/cpp/examples/messaging/messaging_spout.vcproj +index 03ce1c5..85d9913 100644 +--- a/qpid/cpp/examples/messaging/messaging_spout.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_spout.vcproj +@@ -32,6 +32,9 @@ + ++ + + + +@@ -189,6 +192,161 @@ + Name="VCPostBuildEventTool" + /> + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +-- +1.5.5.6 + +From 1bf9f5a7f6cc26c7ff651bcef73c494905604ae4 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 31 Aug 2010 18:36:23 +0000 +Subject: [PATCH] QPID-2827 - QPID Cpp WinSDK does not contain 64-bit libraries + Patch from Chuck Rolke + fixed a typo + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@991285 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../messaging/messaging_map_receiver.vcproj | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +index 9b40c13..fdd5c8e 100644 +--- a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +@@ -19,7 +19,7 @@ + - under the License. + - + --> +-VisualStudioProject ++ +Date: Wed, 1 Sep 2010 18:11:26 +0000 +Subject: [PATCH] Bug 629035 - QMF: agent heartbeats messages should use the TTL property. + +QPID-2841: set the TTL in agent heartbeat messages. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@991630 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 14 ++++++++++++-- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 3 ++- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 10 ++++++++-- + qpid/cpp/src/qpid/management/ManagementAgent.h | 3 ++- + 4 files changed, 24 insertions(+), 6 deletions(-) + +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index 96c9f18..d5c040f 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -454,7 +454,12 @@ void ManagementAgentImpl::sendHeartbeat() + map["_values"].asMap()["epoch"] = bootSequence; + + MapCodec::encode(map, content); +- connThreadBody.sendBuffer(content, "", headers, addr_exchange, addr_key.str()); ++ ++ // Set TTL (in msecs) on outgoing heartbeat indications based on the interval ++ // time to prevent stale heartbeats from getting to the consoles. ++ ++ connThreadBody.sendBuffer(content, "", headers, addr_exchange, addr_key.str(), ++ "amqp/map", interval * 2 * 1000); + + QPID_LOG(trace, "SENT AgentHeartbeat name=" << name_address); + } +@@ -1184,7 +1189,8 @@ void ManagementAgentImpl::ConnectionThread::sendBuffer(const string& data, + const Variant::Map headers, + const string& exchange, + const string& routingKey, +- const string& contentType) ++ const string& contentType, ++ uint64_t ttl_msec) + { + Message msg; + Variant::Map::const_iterator i; +@@ -1194,6 +1200,10 @@ void ManagementAgentImpl::ConnectionThread::sendBuffer(const string& data, + + if (!contentType.empty()) + msg.getMessageProperties().setContentType(contentType); ++ ++ if (ttl_msec) ++ msg.getDeliveryProperties().setTtl(ttl_msec); ++ + for (i = headers.begin(); i != headers.end(); ++i) { + msg.getHeaders().setString(i->first, i->second.asString()); + } +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index 851457c..7cfb552 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -220,7 +220,8 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + const qpid::types::Variant::Map headers, + const std::string& exchange, + const std::string& routingKey, +- const std::string& contentType="amqp/map"); ++ const std::string& contentType="amqp/map", ++ uint64_t ttl_msec=0); + void sendMessage(qpid::client::Message msg, + const std::string& exchange, + const std::string& routingKey); +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 5602dda..1d08585 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -540,7 +540,8 @@ void ManagementAgent::sendBufferLH(const string& data, + const Variant::Map& headers, + const string& content_type, + qpid::broker::Exchange::shared_ptr exchange, +- const string& routingKey) ++ const string& routingKey, ++ uint64_t ttl_msec) + { + Variant::Map::const_iterator i; + +@@ -579,6 +580,8 @@ void ManagementAgent::sendBufferLH(const string& data, + DeliveryProperties* dp = + msg->getFrames().getHeaders()->get(true); + dp->setRoutingKey(routingKey); ++ if (ttl_msec) ++ dp->setTtl(ttl_msec); + + msg->getFrames().append(content); + +@@ -827,7 +830,10 @@ void ManagementAgent::periodicProcessing (void) + + string content; + MapCodec::encode(map, content); +- sendBufferLH(content, "", headers, "amqp/map", v2Topic, addr_key.str()); ++ ++ // Set TTL (in msecs) on outgoing heartbeat indications based on the interval ++ // time to prevent stale heartbeats from getting to the consoles. ++ sendBufferLH(content, "", headers, "amqp/map", v2Topic, addr_key.str(), interval * 2 * 1000); + + QPID_LOG(trace, "SENT AgentHeartbeat name=" << name_address); + } +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index d12b417..f4d3c8c 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -312,7 +312,8 @@ private: + const qpid::types::Variant::Map& headers, + const std::string& content_type, + qpid::broker::Exchange::shared_ptr exchange, +- const std::string& routingKey); ++ const std::string& routingKey, ++ uint64_t ttl_msec = 0); + void moveNewObjectsLH(); + + bool authorizeAgentMessageLH(qpid::broker::Message& msg); +-- +1.5.5.6 + +From 8697d56726112449940fecf375b8fdbf76ac4c68 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 7 Sep 2010 12:53:37 +0000 +Subject: [PATCH] Bug 625450 - condor_master stay alive with QMF plugins while qpidd was stopped before (RHEL4) + +Add heartbeat value to the simpler init() case. Applications that use this init function +will now get the protection of a connection heartbeat. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@993339 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit d48c1c5847c308e85a48813fc1c4e5904422606a) +--- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index d5c040f..8fb7cd3 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -194,6 +194,7 @@ void ManagementAgentImpl::init(const string& brokerHost, + settings.username = uid; + settings.password = pwd; + settings.mechanism = mech; ++ settings.heartbeat = 10; + init(settings, intervalSeconds, useExternalThread, _storeFile); + } + +-- +1.5.5.6 + +From 93dc8794846b6572c4979b57b9de142fd7264a4d Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:48:31 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Changed RDMA testing server not to use the lower level Rdma buffers + if it needs to queue messages to echo, but to suffer the double copy + overhead of using its own buffers + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995125 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp | 46 ++++++++++++++++++++++------- + 1 files changed, 35 insertions(+), 11 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +index 9771532..564fd62 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +@@ -44,10 +44,28 @@ using qpid::sys::Dispatcher; + namespace qpid { + namespace tests { + ++struct Buffer { ++ char* bytes() const {return bytes_;} ++ int32_t byteCount() const {return size;} ++ ++ Buffer(const int32_t s): ++ bytes_(new char[s]), ++ size(s) ++ { ++ } ++ ++ ~Buffer() { ++ delete [] bytes_; ++ } ++private: ++ char* bytes_; ++ int32_t size; ++}; ++ + struct ConRec { + Rdma::Connection::intrusive_ptr connection; + Rdma::AsynchIO* data; +- queue queuedWrites; ++ queue queuedWrites; + + ConRec(Rdma::Connection::intrusive_ptr c) : + connection(c) +@@ -60,30 +78,36 @@ void dataError(Rdma::AsynchIO&) { + + void idle(ConRec* cr, Rdma::AsynchIO& a) { + // Need to make sure full is not called as it would reorder messages +- while (!cr->queuedWrites.empty() && a.writable()) { +- Rdma::Buffer* buf = cr->queuedWrites.front(); ++ while (!cr->queuedWrites.empty() && a.writable() && a.bufferAvailable()) { ++ Buffer* buf = cr->queuedWrites.front(); + cr->queuedWrites.pop(); +- a.queueWrite(buf); ++ Rdma::Buffer* rbuf = a.getBuffer(); ++ std::copy(buf->bytes(), buf->bytes()+buf->byteCount(), rbuf->bytes()); ++ rbuf->dataCount(buf->byteCount()); ++ delete buf; ++ a.queueWrite(rbuf); + } + } + + void data(ConRec* cr, Rdma::AsynchIO& a, Rdma::Buffer* b) { + // Echo data back +- Rdma::Buffer* buf = a.getBuffer(); +- std::copy(b->bytes(), b->bytes()+b->dataCount(), buf->bytes()); +- buf->dataCount(b->dataCount()); +- if (cr->queuedWrites.empty()) { +- // If can't write then full will be called and push buffer on back of queue ++ if (cr->queuedWrites.empty() && a.writable() && a.bufferAvailable()) { ++ Rdma::Buffer* buf = a.getBuffer(); ++ std::copy(b->bytes(), b->bytes()+b->dataCount(), buf->bytes()); ++ buf->dataCount(b->dataCount()); + a.queueWrite(buf); + } else { ++ Buffer* buf = new Buffer(b->dataCount()); ++ std::copy(b->bytes(), b->bytes()+b->dataCount(), buf->bytes()); + cr->queuedWrites.push(buf); + // Try to empty queue + idle(cr, a); + } + } + +-void full(ConRec* cr, Rdma::AsynchIO&, Rdma::Buffer* buf) { +- cr->queuedWrites.push(buf); ++void full(ConRec*, Rdma::AsynchIO&, Rdma::Buffer*) { ++ // Shouldn't ever be called ++ cout << "!"; + } + + void drained(Rdma::AsynchIO&) { +-- +1.5.5.6 + +From 24a27ec31ed166d3edd4c696b260223623c994e6 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:48:36 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Move the RDMA buffer tracking/destruction into the QueuePair class from + the RdmaIO class. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995126 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 4 ---- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 4 ---- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 6 +++++- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 2 ++ + 4 files changed, 7 insertions(+), 9 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 845e84e..aa0dfbd 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -64,14 +64,12 @@ namespace Rdma { + for (int i = 0; icreateBuffer(bufferSize); +- buffers.push_front(b); + qp->postRecv(b); + } + + for (int i = 0; icreateBuffer(bufferSize); +- buffers.push_front(b); + bufferQueue.push_front(b); + } + } +@@ -86,8 +84,6 @@ namespace Rdma { + QPID_LOG(error, "RDMA: qp=" << qp << ": Deleting queue whilst not shutdown"); + dataHandle.stopWatch(); + } +- +- // The buffers ptr_deque automatically deletes all the buffers we've allocated + // TODO: It might turn out to be more efficient in high connection loads to reuse the + // buffers rather than having to reregister them all the time (this would be straightforward if all + // connections haver the same buffer size and harder otherwise) +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 4cd0e08..aabb330 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -32,7 +32,6 @@ + #include + + #include +-#include + #include + + namespace Rdma { +@@ -59,9 +58,6 @@ namespace Rdma { + //qpid::sys::Mutex stateLock; + std::deque bufferQueue; + qpid::sys::Mutex bufferQueueLock; +- boost::ptr_deque buffers; +- // The QueuePair must be after the buffers so that the connection is destroyed before the buffers +- // are deallocated so that the hardware doesn't write into memory that's been given back. + QueuePair::intrusive_ptr qp; + qpid::sys::DispatchHandleRef dataHandle; + +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index 2581aae..b046b01 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -154,11 +154,15 @@ namespace Rdma { + + // Reset back pointer in case someone else has the qp + qp->qp_context = 0; ++ ++ // The buffers ptr_deque automatically deletes all the buffers we've allocated + } + + // Create a buffer to use for writing + Buffer* QueuePair::createBuffer(int s) { +- return new Buffer(pd.get(), s); ++ Buffer* b = new Buffer(pd.get(), s); ++ buffers.push_front(b); ++ return b; + } + + // Make channel non-blocking by making +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index 54066d1..488cf8c 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -28,6 +28,7 @@ + + #include + #include ++#include + + namespace qpid { + namespace sys { +@@ -121,6 +122,7 @@ namespace Rdma { + boost::shared_ptr< ::ibv_qp > qp; + int outstandingSendEvents; + int outstandingRecvEvents; ++ boost::ptr_deque buffers; + + QueuePair(boost::shared_ptr< ::rdma_cm_id > id); + ~QueuePair(); +-- +1.5.5.6 + +From a15c00de4135c03527b80a7f1a6c774dc4e2ecda Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:48:41 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Stop using references to intrusive_ptr in Rdma code + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995127 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 16 ++++++++-------- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 28 ++++++++++++++-------------- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 12 ++++++------ + 3 files changed, 28 insertions(+), 28 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 504c5bd..56238b2 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -82,10 +82,10 @@ class RdmaConnector : public Connector, public sys::Codec + ~RdmaConnector(); + + // Callbacks +- void connected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams&); +- void connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&, Rdma::ErrorType); +- void disconnected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&); +- void rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams&); ++ void connected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&); ++ void connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, Rdma::ErrorType); ++ void disconnected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr); ++ void rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&); + + void readbuff(Rdma::AsynchIO&, Rdma::Buffer*); + void writebuff(Rdma::AsynchIO&); +@@ -188,7 +188,7 @@ void RdmaConnector::connect(const std::string& host, int port){ + } + + // The following only gets run when connected +-void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr& ci, const Rdma::ConnectionParams& cp) { ++void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr ci, const Rdma::ConnectionParams& cp) { + Rdma::QueuePair::intrusive_ptr q = ci->getQueuePair(); + + aio = new Rdma::AsynchIO(ci->getQueuePair(), +@@ -205,7 +205,7 @@ void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intru + aio->start(poller); + } + +-void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&, Rdma::ErrorType) { ++void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, Rdma::ErrorType) { + QPID_LOG(debug, "Connection Error " << identifier); + { + Mutex::ScopedLock l(pollingLock); +@@ -216,7 +216,7 @@ void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::i + stopped(); + } + +-void RdmaConnector::disconnected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&) { ++void RdmaConnector::disconnected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr) { + QPID_LOG(debug, "Connection disconnected " << identifier); + { + Mutex::ScopedLock l(pollingLock); +@@ -227,7 +227,7 @@ void RdmaConnector::disconnected(sys::Poller::shared_ptr, Rdma::Connection::intr + drained(); + } + +-void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams& cp) { ++void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams& cp) { + QPID_LOG(debug, "Connection Rejected " << identifier << ": " << cp.maxRecvBufferSize); + { + Mutex::ScopedLock l(pollingLock); +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 044e6b4..7c2dc77 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -54,7 +54,7 @@ class RdmaIOHandler : public OutputControl { + void write(const framing::ProtocolInitiation&); + + public: +- RdmaIOHandler(Rdma::Connection::intrusive_ptr& c, ConnectionCodec::Factory* f); ++ RdmaIOHandler(Rdma::Connection::intrusive_ptr c, ConnectionCodec::Factory* f); + ~RdmaIOHandler(); + void init(Rdma::AsynchIO* a); + void start(Poller::shared_ptr poller) {aio->start(poller);} +@@ -77,7 +77,7 @@ class RdmaIOHandler : public OutputControl { + void drained(Rdma::AsynchIO& aio); + }; + +-RdmaIOHandler::RdmaIOHandler(Rdma::Connection::intrusive_ptr& c, qpid::sys::ConnectionCodec::Factory* f) : ++RdmaIOHandler::RdmaIOHandler(Rdma::Connection::intrusive_ptr c, qpid::sys::ConnectionCodec::Factory* f) : + connection(c), + identifier(c->getPeerName()), + factory(f), +@@ -223,12 +223,12 @@ class RdmaIOProtocolFactory : public ProtocolFactory { + string getHost() const; + + private: +- bool request(Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams&, ConnectionCodec::Factory*); +- void established(Poller::shared_ptr, Rdma::Connection::intrusive_ptr&); +- void connected(Poller::shared_ptr, Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams&, ConnectionCodec::Factory*); +- void connectionError(Rdma::Connection::intrusive_ptr&, Rdma::ErrorType); +- void disconnected(Rdma::Connection::intrusive_ptr&); +- void rejected(Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams&, ConnectFailedCallback); ++ bool request(Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&, ConnectionCodec::Factory*); ++ void established(Poller::shared_ptr, Rdma::Connection::intrusive_ptr); ++ void connected(Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&, ConnectionCodec::Factory*); ++ void connectionError(Rdma::Connection::intrusive_ptr, Rdma::ErrorType); ++ void disconnected(Rdma::Connection::intrusive_ptr); ++ void rejected(Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&, ConnectFailedCallback); + }; + + // Static instance to initialise plugin +@@ -258,12 +258,12 @@ RdmaIOProtocolFactory::RdmaIOProtocolFactory(int16_t port, int /*backlog*/) : + listeningPort(port) + {} + +-void RdmaIOProtocolFactory::established(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr& ci) { ++void RdmaIOProtocolFactory::established(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr ci) { + RdmaIOHandler* async = ci->getContext(); + async->start(poller); + } + +-bool RdmaIOProtocolFactory::request(Rdma::Connection::intrusive_ptr& ci, const Rdma::ConnectionParams& cp, ++bool RdmaIOProtocolFactory::request(Rdma::Connection::intrusive_ptr ci, const Rdma::ConnectionParams& cp, + ConnectionCodec::Factory* f) { + try { + RdmaIOHandler* async = new RdmaIOHandler(ci, f); +@@ -289,10 +289,10 @@ bool RdmaIOProtocolFactory::request(Rdma::Connection::intrusive_ptr& ci, const R + return false; + } + +-void RdmaIOProtocolFactory::connectionError(Rdma::Connection::intrusive_ptr&, Rdma::ErrorType) { ++void RdmaIOProtocolFactory::connectionError(Rdma::Connection::intrusive_ptr, Rdma::ErrorType) { + } + +-void RdmaIOProtocolFactory::disconnected(Rdma::Connection::intrusive_ptr& ci) { ++void RdmaIOProtocolFactory::disconnected(Rdma::Connection::intrusive_ptr ci) { + // If we've got a connection already tear it down, otherwise ignore + RdmaIOHandler* async = ci->getContext(); + if (async) { +@@ -330,12 +330,12 @@ void RdmaIOProtocolFactory::accept(Poller::shared_ptr poller, ConnectionCodec::F + } + + // Only used for outgoing connections (in federation) +-void RdmaIOProtocolFactory::rejected(Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams&, ConnectFailedCallback failed) { ++void RdmaIOProtocolFactory::rejected(Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&, ConnectFailedCallback failed) { + failed(-1, "Connection rejected"); + } + + // Do the same as connection request and established but mark a client too +-void RdmaIOProtocolFactory::connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr& ci, const Rdma::ConnectionParams& cp, ++void RdmaIOProtocolFactory::connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr ci, const Rdma::ConnectionParams& cp, + ConnectionCodec::Factory* f) { + (void) request(ci, cp, f); + established(poller, ci); +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index aabb330..9f55a7b 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -149,8 +149,8 @@ namespace Rdma { + UNKNOWN + }; + +- typedef boost::function2 ErrorCallback; +- typedef boost::function1 DisconnectedCallback; ++ typedef boost::function2 ErrorCallback; ++ typedef boost::function1 DisconnectedCallback; + + class ConnectionManager { + Connection::intrusive_ptr ci; +@@ -177,8 +177,8 @@ namespace Rdma { + virtual void connectionEvent(Connection::intrusive_ptr ci) = 0; + }; + +- typedef boost::function2 ConnectionRequestCallback; +- typedef boost::function1 EstablishedCallback; ++ typedef boost::function2 ConnectionRequestCallback; ++ typedef boost::function1 EstablishedCallback; + + class Listener : public ConnectionManager + { +@@ -200,8 +200,8 @@ namespace Rdma { + void connectionEvent(Connection::intrusive_ptr ci); + }; + +- typedef boost::function2 RejectedCallback; +- typedef boost::function2 ConnectedCallback; ++ typedef boost::function2 RejectedCallback; ++ typedef boost::function2 ConnectedCallback; + + class Connector : public ConnectionManager + { +-- +1.5.5.6 + +From 3b69ab5e4b07fdf932946a71671a935f3aefb4fc Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:48:45 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Make sure that we fail connection correctly if connect fails. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995128 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 43 +++++++++++++++++++--------- + 1 files changed, 29 insertions(+), 14 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 56238b2..8bcb34f 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -28,6 +28,7 @@ + #include "qpid/framing/AMQFrame.h" + #include "qpid/framing/InitiationHandler.h" + #include "qpid/sys/rdma/RdmaIO.h" ++#include "qpid/sys/rdma/rdma_exception.h" + #include "qpid/sys/Dispatcher.h" + #include "qpid/sys/Poller.h" + #include "qpid/sys/SecurityLayer.h" +@@ -189,20 +190,34 @@ void RdmaConnector::connect(const std::string& host, int port){ + + // The following only gets run when connected + void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr ci, const Rdma::ConnectionParams& cp) { +- Rdma::QueuePair::intrusive_ptr q = ci->getQueuePair(); ++ try { ++ Rdma::QueuePair::intrusive_ptr q = ci->getQueuePair(); + +- aio = new Rdma::AsynchIO(ci->getQueuePair(), +- cp.maxRecvBufferSize, cp.initialXmitCredit , Rdma::DEFAULT_WR_ENTRIES, +- boost::bind(&RdmaConnector::readbuff, this, _1, _2), +- boost::bind(&RdmaConnector::writebuff, this, _1), +- 0, // write buffers full +- boost::bind(&RdmaConnector::dataError, this, _1)); ++ aio = new Rdma::AsynchIO(ci->getQueuePair(), ++ cp.maxRecvBufferSize, cp.initialXmitCredit , Rdma::DEFAULT_WR_ENTRIES, ++ boost::bind(&RdmaConnector::readbuff, this, _1, _2), ++ boost::bind(&RdmaConnector::writebuff, this, _1), ++ 0, // write buffers full ++ boost::bind(&RdmaConnector::dataError, this, _1)); + +- identifier = str(format("[%1% %2%]") % ci->getLocalName() % ci->getPeerName()); +- ProtocolInitiation init(version); +- writeDataBlock(init); ++ identifier = str(format("[%1% %2%]") % ci->getLocalName() % ci->getPeerName()); ++ ProtocolInitiation init(version); ++ writeDataBlock(init); + +- aio->start(poller); ++ aio->start(poller); ++ return; ++ } catch (const Rdma::Exception& e) { ++ QPID_LOG(error, "Rdma: Cannot create new connection (Rdma exception): " << e.what()); ++ } catch (const std::exception& e) { ++ QPID_LOG(error, "Rdma: Cannot create new connection (unknown exception): " << e.what()); ++ } ++ { ++ Mutex::ScopedLock l(pollingLock); ++ // If we're closed already then we'll get to drain() anyway ++ if (!polling) return; ++ polling = false; ++ } ++ stopped(); + } + + void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, Rdma::ErrorType) { +-- +1.5.5.6 + +From 55cec93b18360dcfe9eca2dbbab9f57f27694fe1 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:48:48 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Remove use of dubious auto_ptr + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995129 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 7 ++----- + 1 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 8bcb34f..f317fb9 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -52,9 +52,6 @@ using boost::str; + + class RdmaConnector : public Connector, public sys::Codec + { +- struct Buff; +- +- typedef Rdma::Buffer BufferBase; + typedef std::deque Frames; + + const uint16_t maxFrameSize; +@@ -341,11 +338,11 @@ void RdmaConnector::writebuff(Rdma::AsynchIO&) { + + Codec* codec = securityLayer.get() ? (Codec*) securityLayer.get() : (Codec*) this; + if (codec->canEncode()) { +- std::auto_ptr buffer = std::auto_ptr(aio->getBuffer()); ++ Rdma::Buffer* buffer = aio->getBuffer(); + size_t encoded = codec->encode(buffer->bytes(), buffer->byteCount()); + + buffer->dataCount(encoded); +- aio->queueWrite(buffer.release()); ++ aio->queueWrite(buffer); + } + } + +-- +1.5.5.6 + +From b55cf9997b43a61bc41558d71268a5d90f381d88 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:48:53 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Move rdma recv buffers to a single large allocation rather than piecemeal allocations + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995130 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 8 +---- + qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp | 13 +++++++- + qpid/cpp/src/qpid/sys/rdma/rdma_factories.h | 1 + + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 36 +++++++++++++++++++++++- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 5 +++ + 5 files changed, 53 insertions(+), 10 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index aa0dfbd..3fb4395 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -60,12 +60,8 @@ namespace Rdma { + qp->notifyRecv(); + qp->notifySend(); + +- // Prepost some recv buffers before we go any further +- for (int i = 0; icreateBuffer(bufferSize); +- qp->postRecv(b); +- } ++ // Prepost recv buffers before we go any further ++ qp->allocateRecvBuffers(recvBufferCount, bufferSize); + + for (int i = 0; i allocPd(::ibv_context* c) { +- ::ibv_pd* pd = CHECK_NULL(ibv_alloc_pd(c)); ++ ::ibv_pd* pd = CHECK_NULL(::ibv_alloc_pd(c)); + return boost::shared_ptr< ::ibv_pd >(pd, deallocPd); + } + ++ boost::shared_ptr< ::ibv_mr > regMr(::ibv_pd* pd, void* addr, size_t length, int access) { ++ ::ibv_mr* mr = CHECK_NULL(::ibv_reg_mr(pd, addr, length, access)); ++ return boost::shared_ptr< ::ibv_mr >(mr, deregMr); ++ } ++ + boost::shared_ptr< ::ibv_comp_channel > mkCChannel(::ibv_context* c) { + ::ibv_comp_channel* cc = CHECK_NULL(::ibv_create_comp_channel(c)); + return boost::shared_ptr< ::ibv_comp_channel >(cc, destroyCChannel); +@@ -90,7 +99,7 @@ namespace Rdma { + + boost::shared_ptr< ::ibv_cq > + mkCq(::ibv_context* c, int cqe, void* context, ::ibv_comp_channel* cc) { +- ::ibv_cq* cq = CHECK_NULL(ibv_create_cq(c, cqe, context, cc, 0)); ++ ::ibv_cq* cq = CHECK_NULL(::ibv_create_cq(c, cqe, context, cc, 0)); + return boost::shared_ptr< ::ibv_cq >(cq, destroyCq); + } + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h b/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h +index 3432baf..eded689 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h +@@ -32,6 +32,7 @@ namespace Rdma { + boost::shared_ptr< ::rdma_cm_event > mkEvent(::rdma_cm_event* e); + boost::shared_ptr< ::ibv_qp > mkQp(::ibv_qp* qp); + boost::shared_ptr< ::ibv_pd > allocPd(::ibv_context* c); ++ boost::shared_ptr< ::ibv_mr > regMr(::ibv_pd* pd, void* addr, size_t length, int access); + boost::shared_ptr< ::ibv_comp_channel > mkCChannel(::ibv_context* c); + boost::shared_ptr< ::ibv_cq > mkCq(::ibv_context* c, int cqe, void* context, ::ibv_comp_channel* cc); + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index b046b01..071d453 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -61,9 +61,20 @@ namespace Rdma { + sge.lkey = mr->lkey; + } + ++ Buffer::Buffer(uint32_t lkey, char* bytes, const int32_t byteCount) : ++ bufferSize(byteCount), ++ mr(0) ++ { ++ sge.addr = (uintptr_t) bytes; ++ sge.length = 0; ++ sge.lkey = lkey; ++ } ++ + Buffer::~Buffer() { +- (void) ::ibv_dereg_mr(mr); +- delete [] bytes(); ++ if (mr) { ++ (void) ::ibv_dereg_mr(mr); ++ delete [] bytes(); ++ } + } + + QueuePairEvent::QueuePairEvent() : +@@ -155,6 +166,9 @@ namespace Rdma { + // Reset back pointer in case someone else has the qp + qp->qp_context = 0; + ++ // Deallocate recv buffer memory ++ if (rmr) delete [] static_cast(rmr->addr); ++ + // The buffers ptr_deque automatically deletes all the buffers we've allocated + } + +@@ -165,6 +179,24 @@ namespace Rdma { + return b; + } + ++ void QueuePair::allocateRecvBuffers(int recvBufferCount, int bufferSize) ++ { ++ assert(!rmr); ++ ++ // Round up buffersize to cacheline (64 bytes) ++ bufferSize = (bufferSize+63) & (~63); ++ ++ // Allocate memory block for all receive buffers ++ char* mem = new char [recvBufferCount * bufferSize]; ++ rmr = regMr(pd.get(), mem, recvBufferCount * bufferSize, ::IBV_ACCESS_LOCAL_WRITE); ++ for (int i = 0; ilkey, &mem[i*bufferSize], bufferSize); ++ buffers.push_front(b); ++ postRecv(b); ++ } ++ } ++ + // Make channel non-blocking by making + // associated fd nonblocking + void QueuePair::nonblocking() { +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index 488cf8c..73d133a 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -57,6 +57,7 @@ namespace Rdma { + ~Buffer(); + + private: ++ Buffer(uint32_t lkey, char* bytes, const int32_t byteCount); + const int32_t bufferSize; + ::ibv_mr* mr; + ::ibv_sge sge; +@@ -116,6 +117,7 @@ namespace Rdma { + friend class Connection; + + boost::shared_ptr< ::ibv_pd > pd; ++ boost::shared_ptr< ::ibv_mr > rmr; + boost::shared_ptr< ::ibv_comp_channel > cchannel; + boost::shared_ptr< ::ibv_cq > scq; + boost::shared_ptr< ::ibv_cq > rcq; +@@ -133,6 +135,9 @@ namespace Rdma { + // Create a buffer to use for writing + Buffer* createBuffer(int s); + ++ // Create and post recv buffers ++ void allocateRecvBuffers(int recvBufferCount, int bufferSize); ++ + // Make channel non-blocking by making + // associated fd nonblocking + void nonblocking(); +-- +1.5.5.6 + +From e5aecd1d12445e088a970699a4b2bc92f8d8d278 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:48:58 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Refactored Rdma write buffers to be controlled by the rdma_wrapper layer + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995131 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 25 +----------- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 14 +++++-- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 61 ++++++++++++++++++------------ + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 23 ++++++++--- + 4 files changed, 67 insertions(+), 56 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 3fb4395..a72ed12 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -63,11 +63,8 @@ namespace Rdma { + // Prepost recv buffers before we go any further + qp->allocateRecvBuffers(recvBufferCount, bufferSize); + +- for (int i = 0; icreateBuffer(bufferSize); +- bufferQueue.push_front(b); +- } ++ // Create xmit buffers ++ qp->createSendBuffers(xmitBufferCount, bufferSize); + } + + AsynchIO::~AsynchIO() { +@@ -427,10 +424,7 @@ namespace Rdma { + } + } else { + ++sendEvents; +- { +- qpid::sys::ScopedLock l(bufferQueueLock); +- bufferQueue.push_front(b); +- } ++ returnBuffer(b); + --outstandingWrites; + } + } while (true); +@@ -480,19 +474,6 @@ namespace Rdma { + nc(*this); + } + +- Buffer* AsynchIO::getBuffer() { +- qpid::sys::ScopedLock l(bufferQueueLock); +- assert(!bufferQueue.empty()); +- Buffer* b = bufferQueue.front(); +- bufferQueue.pop_front(); +- return b; +- } +- +- void AsynchIO::returnBuffer(Buffer* b) { +- qpid::sys::ScopedLock l(bufferQueueLock); +- bufferQueue.push_front(b); +- } +- + ConnectionManager::ConnectionManager( + ErrorCallback errc, + DisconnectedCallback dc +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 9f55a7b..5876646 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -32,7 +32,6 @@ + #include + + #include +-#include + + namespace Rdma { + +@@ -56,8 +55,6 @@ namespace Rdma { + enum State { IDLE, DATA, PENDING_DATA, NOTIFY_WRITE, PENDING_NOTIFY, DRAINED, SHUTDOWN }; + qpid::sys::AtomicValue state; + //qpid::sys::Mutex stateLock; +- std::deque bufferQueue; +- qpid::sys::Mutex bufferQueueLock; + QueuePair::intrusive_ptr qp; + qpid::sys::DispatchHandleRef dataHandle; + +@@ -126,8 +123,17 @@ namespace Rdma { + } + + inline bool AsynchIO::bufferAvailable() const { +- return !bufferQueue.empty(); ++ return qp->bufferAvailable(); + } ++ ++ inline Buffer* AsynchIO::getBuffer() { ++ return qp->getBuffer(); ++ } ++ ++ inline void AsynchIO::returnBuffer(Buffer* b) { ++ qp->returnBuffer(b); ++ } ++ + // These are the parameters necessary to start the conversation + // * Each peer HAS to allocate buffers of the size of the maximum receive from its peer + // * Each peer HAS to know the initial "credit" it has for transmitting to its peer +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index 071d453..c286782 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -50,33 +50,14 @@ namespace Rdma { + return count; + } + +- Buffer::Buffer(::ibv_pd* pd, const int32_t s) : +- bufferSize(s), +- mr(CHECK_NULL(::ibv_reg_mr( +- pd, new char[s], s, +- ::IBV_ACCESS_LOCAL_WRITE))) +- { +- sge.addr = (uintptr_t) mr->addr; +- sge.length = 0; +- sge.lkey = mr->lkey; +- } +- + Buffer::Buffer(uint32_t lkey, char* bytes, const int32_t byteCount) : +- bufferSize(byteCount), +- mr(0) ++ bufferSize(byteCount) + { + sge.addr = (uintptr_t) bytes; + sge.length = 0; + sge.lkey = lkey; + } + +- Buffer::~Buffer() { +- if (mr) { +- (void) ::ibv_dereg_mr(mr); +- delete [] bytes(); +- } +- } +- + QueuePairEvent::QueuePairEvent() : + dir(NONE) + {} +@@ -169,16 +150,48 @@ namespace Rdma { + // Deallocate recv buffer memory + if (rmr) delete [] static_cast(rmr->addr); + ++ // Deallocate recv buffer memory ++ if (smr) delete [] static_cast(smr->addr); ++ + // The buffers ptr_deque automatically deletes all the buffers we've allocated + } + +- // Create a buffer to use for writing +- Buffer* QueuePair::createBuffer(int s) { +- Buffer* b = new Buffer(pd.get(), s); +- buffers.push_front(b); ++ // Create buffers to use for writing ++ void QueuePair::createSendBuffers(int sendBufferCount, int bufferSize) ++ { ++ assert(!smr); ++ ++ // Round up buffersize to cacheline (64 bytes) ++ bufferSize = (bufferSize+63) & (~63); ++ ++ // Allocate memory block for all receive buffers ++ char* mem = new char [sendBufferCount * bufferSize]; ++ smr = regMr(pd.get(), mem, sendBufferCount * bufferSize, ::IBV_ACCESS_LOCAL_WRITE); ++ for (int i = 0; ilkey, &mem[i*bufferSize], bufferSize); ++ buffers.push_front(b); ++ bufferQueue.push_back(b); ++ } ++ } ++ ++ Buffer* QueuePair::getBuffer() { ++ qpid::sys::ScopedLock l(bufferQueueLock); ++ assert(!bufferQueue.empty()); ++ Buffer* b = bufferQueue.back(); ++ bufferQueue.pop_back(); + return b; + } + ++ void QueuePair::returnBuffer(Buffer* b) { ++ qpid::sys::ScopedLock l(bufferQueueLock); ++ bufferQueue.push_back(b); ++ } ++ ++ bool QueuePair::bufferAvailable() const { ++ return !bufferQueue.empty(); ++ } ++ + void QueuePair::allocateRecvBuffers(int recvBufferCount, int bufferSize) + { + assert(!rmr); +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index 73d133a..f951dcb 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -25,11 +25,14 @@ + + #include "qpid/RefCounted.h" + #include "qpid/sys/IOHandle.h" ++#include "qpid/sys/Mutex.h" + + #include + #include + #include + ++#include ++ + namespace qpid { + namespace sys { + class SocketAddress; +@@ -53,13 +56,9 @@ namespace Rdma { + int32_t dataCount() const; + void dataCount(int32_t); + +- Buffer(::ibv_pd* pd, const int32_t s); +- ~Buffer(); +- + private: + Buffer(uint32_t lkey, char* bytes, const int32_t byteCount); + const int32_t bufferSize; +- ::ibv_mr* mr; + ::ibv_sge sge; + }; + +@@ -117,6 +116,7 @@ namespace Rdma { + friend class Connection; + + boost::shared_ptr< ::ibv_pd > pd; ++ boost::shared_ptr< ::ibv_mr > smr; + boost::shared_ptr< ::ibv_mr > rmr; + boost::shared_ptr< ::ibv_comp_channel > cchannel; + boost::shared_ptr< ::ibv_cq > scq; +@@ -125,6 +125,8 @@ namespace Rdma { + int outstandingSendEvents; + int outstandingRecvEvents; + boost::ptr_deque buffers; ++ qpid::sys::Mutex bufferQueueLock; ++ std::vector bufferQueue; + + QueuePair(boost::shared_ptr< ::rdma_cm_id > id); + ~QueuePair(); +@@ -132,8 +134,17 @@ namespace Rdma { + public: + typedef boost::intrusive_ptr intrusive_ptr; + +- // Create a buffer to use for writing +- Buffer* createBuffer(int s); ++ // Create a buffers to use for writing ++ void createSendBuffers(int sendBufferCount, int bufferSize); ++ ++ // Get a send buffer ++ Buffer* getBuffer(); ++ ++ // Return buffer to pool after use ++ void returnBuffer(Buffer* b); ++ ++ // Check whether any buffers are available ++ bool bufferAvailable() const; + + // Create and post recv buffers + void allocateRecvBuffers(int recvBufferCount, int bufferSize); +-- +1.5.5.6 + +From 813299436b1247a41ebfe92d12c2d871bf1a6cba Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:02 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Use structures with much less dynamic allocation to hold rdma buffers + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995132 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 31 ++++++++++++++++------------- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 9 ++++--- + 2 files changed, 22 insertions(+), 18 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index c286782..4883f0c 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -153,7 +153,7 @@ namespace Rdma { + // Deallocate recv buffer memory + if (smr) delete [] static_cast(smr->addr); + +- // The buffers ptr_deque automatically deletes all the buffers we've allocated ++ // The buffers vectors automatically deletes all the buffers we've allocated + } + + // Create buffers to use for writing +@@ -167,29 +167,32 @@ namespace Rdma { + // Allocate memory block for all receive buffers + char* mem = new char [sendBufferCount * bufferSize]; + smr = regMr(pd.get(), mem, sendBufferCount * bufferSize, ::IBV_ACCESS_LOCAL_WRITE); ++ sendBuffers.reserve(sendBufferCount); ++ freeBuffers.reserve(sendBufferCount); + for (int i = 0; ilkey, &mem[i*bufferSize], bufferSize); +- buffers.push_front(b); +- bufferQueue.push_back(b); ++ sendBuffers.push_back(Buffer(smr->lkey, &mem[i*bufferSize], bufferSize)); ++ freeBuffers.push_back(i); + } + } + + Buffer* QueuePair::getBuffer() { +- qpid::sys::ScopedLock l(bufferQueueLock); +- assert(!bufferQueue.empty()); +- Buffer* b = bufferQueue.back(); +- bufferQueue.pop_back(); ++ qpid::sys::ScopedLock l(bufferLock); ++ assert(!freeBuffers.empty()); ++ Buffer* b = &sendBuffers[freeBuffers.back()]; ++ freeBuffers.pop_back(); + return b; + } + + void QueuePair::returnBuffer(Buffer* b) { +- qpid::sys::ScopedLock l(bufferQueueLock); +- bufferQueue.push_back(b); ++ qpid::sys::ScopedLock l(bufferLock); ++ int i = b - &sendBuffers[0]; ++ assert(i >= 0 && i < int(sendBuffers.size())); ++ freeBuffers.push_back(i); + } + + bool QueuePair::bufferAvailable() const { +- return !bufferQueue.empty(); ++ return !freeBuffers.empty(); + } + + void QueuePair::allocateRecvBuffers(int recvBufferCount, int bufferSize) +@@ -202,11 +205,11 @@ namespace Rdma { + // Allocate memory block for all receive buffers + char* mem = new char [recvBufferCount * bufferSize]; + rmr = regMr(pd.get(), mem, recvBufferCount * bufferSize, ::IBV_ACCESS_LOCAL_WRITE); ++ recvBuffers.reserve(recvBufferCount); + for (int i = 0; ilkey, &mem[i*bufferSize], bufferSize); +- buffers.push_front(b); +- postRecv(b); ++ recvBuffers.push_back(Buffer(rmr->lkey, &mem[i*bufferSize], bufferSize)); ++ postRecv(&recvBuffers[i]); + } + } + +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index f951dcb..51cf686 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -58,7 +58,7 @@ namespace Rdma { + + private: + Buffer(uint32_t lkey, char* bytes, const int32_t byteCount); +- const int32_t bufferSize; ++ int32_t bufferSize; + ::ibv_sge sge; + }; + +@@ -124,9 +124,10 @@ namespace Rdma { + boost::shared_ptr< ::ibv_qp > qp; + int outstandingSendEvents; + int outstandingRecvEvents; +- boost::ptr_deque buffers; +- qpid::sys::Mutex bufferQueueLock; +- std::vector bufferQueue; ++ std::vector sendBuffers; ++ std::vector recvBuffers; ++ qpid::sys::Mutex bufferLock; ++ std::vector freeBuffers; + + QueuePair(boost::shared_ptr< ::rdma_cm_id > id); + ~QueuePair(); +-- +1.5.5.6 + +From 2ea779fdbe28bcc2631e368cbbbec578301cb610 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:06 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Dispose the queue pair before acknowledging channel events when destroying + Rdma::QueuePair to stop any events being processed during destruction + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995133 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 9 ++++++--- + 1 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index 4883f0c..510291f 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -139,14 +139,17 @@ namespace Rdma { + } + + QueuePair::~QueuePair() { ++ // Reset back pointer in case someone else has the qp ++ qp->qp_context = 0; ++ ++ // Dispose queue pair before we ack events ++ qp.reset(); ++ + if (outstandingSendEvents > 0) + ::ibv_ack_cq_events(scq.get(), outstandingSendEvents); + if (outstandingRecvEvents > 0) + ::ibv_ack_cq_events(rcq.get(), outstandingRecvEvents); + +- // Reset back pointer in case someone else has the qp +- qp->qp_context = 0; +- + // Deallocate recv buffer memory + if (rmr) delete [] static_cast(rmr->addr); + +-- +1.5.5.6 + +From 914a4ecb41bb80464d517a32e719da981779de4f Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:47:07 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Remove write after frees in Rdma::AsynchIO and qpid::client::RdmaConnector + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995134 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 3 ++- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index f317fb9..83a7191 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -277,8 +277,9 @@ void RdmaConnector::drained() { + QPID_LOG(debug, "RdmaConnector::drained " << identifier); + assert(!polling); + if (aio) { +- aio->stop(boost::bind(&RdmaConnector::stopped, this, aio)); ++ Rdma::AsynchIO* a = aio; + aio = 0; ++ a->stop(boost::bind(&RdmaConnector::stopped, this, a)); + } + } + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index a72ed12..52de923 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -327,10 +327,11 @@ namespace Rdma { + } + + // If we've got all the write confirmations and we're draining ++ // We might get deleted in the drained callback so return immediately + if (draining) { + if (outstandingWrites == 0) { +- doDrainedCallback(); + draining = false; ++ doDrainedCallback(); + } + return; + } +-- +1.5.5.6 + +From f24cad5d3eec5e553fd3e42ffb2a6efac9d2bc97 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:14 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Reorder some code for improved intellegibility + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995135 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 25 ++++++++++--------------- + 1 files changed, 10 insertions(+), 15 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 52de923..6591c6e 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -94,14 +94,11 @@ namespace Rdma { + //qpid::sys::ScopedLock l(stateLock); + do { + newState = oldState = state.get(); +- doReturn = false; +- if (oldState != IDLE && oldState != DRAINED) { +- doReturn = true; +- break; ++ doReturn = true; ++ if (oldState == IDLE || oldState == DRAINED) { ++ doReturn = false; ++ newState = SHUTDOWN; + } +- +- newState = SHUTDOWN; +- + } while (!state.boolCompareAndSwap(oldState, newState)); + + // Ensure we can't get any more callbacks (except for the stopped callback) +@@ -125,14 +122,12 @@ namespace Rdma { + //qpid::sys::ScopedLock l(stateLock); + do { + newState = oldState = state.get(); +- doReturn = false; +- if (oldState != IDLE) { +- doReturn = true; +- break; +- } +- +- if (outstandingWrites == 0) { +- newState = DRAINED; ++ doReturn = true; ++ if (oldState == IDLE) { ++ doReturn = false; ++ if (outstandingWrites == 0) { ++ newState = DRAINED; ++ } + } + } while (!state.boolCompareAndSwap(oldState, newState)); + if (doReturn) { +-- +1.5.5.6 + +From 162a18a4498e3489f49a05d2bedcea62555e6f0b Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:19 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Coalesce checking for the drained and stopped conditions into a single + function + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995136 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 38 ++++++++++++++++++-------------- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 1 + + 2 files changed, 22 insertions(+), 17 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 6591c6e..f0ae7e5 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -254,9 +254,8 @@ namespace Rdma { + return; + case EXIT: + // If we just processed completions we might need to delete ourselves +- if (notifyCallback && outstandingWrites == 0) { +- doStoppedCallback(); +- } ++ // TODO: XXX: can we delete ourselves correctly in notifyPendingWrite()? ++ checkDrainedStopped(); + return; + } + } while (true); +@@ -321,20 +320,8 @@ namespace Rdma { + } while (!state.boolCompareAndSwap(oldState, newState)); + } + +- // If we've got all the write confirmations and we're draining +- // We might get deleted in the drained callback so return immediately +- if (draining) { +- if (outstandingWrites == 0) { +- draining = false; +- doDrainedCallback(); +- } +- return; +- } +- +- // We might need to delete ourselves +- if (notifyCallback && outstandingWrites == 0) { +- doStoppedCallback(); +- } ++ // We might delete ourselves in here so return immediately ++ checkDrainedStopped(); + } + + void AsynchIO::processCompletions() { +@@ -448,6 +435,23 @@ namespace Rdma { + } + } + ++ void AsynchIO::checkDrainedStopped() { ++ // If we've got all the write confirmations and we're draining ++ // We might get deleted in the drained callback so return immediately ++ if (draining) { ++ if (outstandingWrites == 0) { ++ draining = false; ++ doDrainedCallback(); ++ } ++ return; ++ } ++ ++ // We might need to delete ourselves ++ if (notifyCallback && outstandingWrites == 0) { ++ doStoppedCallback(); ++ } ++ } ++ + void AsynchIO::doDrainedCallback() { + NotifyCallback nc; + nc.swap(notifyCallback); +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 5876646..8d5dbc5 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -101,6 +101,7 @@ namespace Rdma { + void dataEvent(); + void processCompletions(); + void doWriteCallback(); ++ void checkDrainedStopped(); + void doStoppedCallback(); + void doDrainedCallback(); + }; +-- +1.5.5.6 + +From 495f51c8c191c16c82f9b114c4180d65a2e9127f Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:47:22 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Rearrange drain queue code so that it does't call the callback unless there + are no outstanding write buffers + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995137 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 11 ++++++++--- + 1 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index f0ae7e5..3e0f1c1 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -123,15 +123,20 @@ namespace Rdma { + do { + newState = oldState = state.get(); + doReturn = true; +- if (oldState == IDLE) { +- doReturn = false; ++ switch (oldState) { ++ case IDLE: + if (outstandingWrites == 0) { ++ doReturn = false; + newState = DRAINED; ++ break; + } ++ /*FALLTHRU*/ ++ default: ++ draining = true; ++ break; + } + } while (!state.boolCompareAndSwap(oldState, newState)); + if (doReturn) { +- draining = true; + notifyCallback = nc; + return; + } +-- +1.5.5.6 + +From 3b71ff60ba2861f748dca3df2a4d317c08b55ebd Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:26 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Trivial comment fix + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995138 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 83a7191..e5be1f8 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -210,7 +210,7 @@ void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intru + } + { + Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to drain() anyway ++ // If we're closed already then we'll get to stopped() anyway + if (!polling) return; + polling = false; + } +@@ -221,7 +221,7 @@ void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::i + QPID_LOG(debug, "Connection Error " << identifier); + { + Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to drain() anyway ++ // If we're closed already then we'll get to stopped() anyway + if (!polling) return; + polling = false; + } +@@ -232,7 +232,7 @@ void RdmaConnector::disconnected(sys::Poller::shared_ptr, Rdma::Connection::intr + QPID_LOG(debug, "Connection disconnected " << identifier); + { + Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to drain() anyway ++ // If we're closed already then we'll get to drained() anyway + if (!polling) return; + polling = false; + } +@@ -243,7 +243,7 @@ void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusiv + QPID_LOG(debug, "Connection Rejected " << identifier << ": " << cp.maxRecvBufferSize); + { + Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to drain() anyway ++ // If we're closed already then we'll get to stopped() anyway + if (!polling) return; + polling = false; + } +@@ -254,7 +254,7 @@ void RdmaConnector::dataError(Rdma::AsynchIO&) { + QPID_LOG(debug, "Data Error " << identifier); + { + Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to drain() anyway ++ // If we're closed already then we'll get to drained() anyway + if (!polling) return; + polling = false; + } +-- +1.5.5.6 + +From ed44bd416980d9fe546ce50fcb45c74e251e8836 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:30 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Improve daemon handling of unexpected RDMA disconnects from client + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995139 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 69 ++++++++++++++++++++++---------- + 1 files changed, 48 insertions(+), 21 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 7c2dc77..09c9770 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -51,13 +51,16 @@ class RdmaIOHandler : public OutputControl { + ConnectionCodec* codec; + bool readError; + ++ sys::Mutex pollingLock; ++ bool polling; ++ + void write(const framing::ProtocolInitiation&); + + public: + RdmaIOHandler(Rdma::Connection::intrusive_ptr c, ConnectionCodec::Factory* f); + ~RdmaIOHandler(); + void init(Rdma::AsynchIO* a); +- void start(Poller::shared_ptr poller) {aio->start(poller);} ++ void start(Poller::shared_ptr poller); + + // Output side + void close(); +@@ -74,7 +77,8 @@ class RdmaIOHandler : public OutputControl { + void full(Rdma::AsynchIO& aio); + void idle(Rdma::AsynchIO& aio); + void error(Rdma::AsynchIO& aio); +- void drained(Rdma::AsynchIO& aio); ++ void disconnected(); ++ void drained(); + }; + + RdmaIOHandler::RdmaIOHandler(Rdma::Connection::intrusive_ptr c, qpid::sys::ConnectionCodec::Factory* f) : +@@ -82,26 +86,29 @@ RdmaIOHandler::RdmaIOHandler(Rdma::Connection::intrusive_ptr c, qpid::sys::Conne + identifier(c->getPeerName()), + factory(f), + codec(0), +- readError(false) ++ readError(false), ++ polling(false) + { + } + ++RdmaIOHandler::~RdmaIOHandler() { ++ if (codec) ++ codec->closed(); ++ delete codec; ++ delete aio; ++} ++ + void RdmaIOHandler::init(Rdma::AsynchIO* a) { + aio = a; + } + +-namespace { +- void deleteAsynchIO(Rdma::AsynchIO& aio) { +- delete &aio; +- } +-} ++void RdmaIOHandler::start(Poller::shared_ptr poller) { ++ Mutex::ScopedLock l(pollingLock); ++ assert(!polling); + +-RdmaIOHandler::~RdmaIOHandler() { +- if (codec) +- codec->closed(); +- delete codec; ++ polling = true; + +- aio->stop(deleteAsynchIO); ++ aio->start(poller); + } + + void RdmaIOHandler::write(const framing::ProtocolInitiation& data) +@@ -115,7 +122,10 @@ void RdmaIOHandler::write(const framing::ProtocolInitiation& data) + } + + void RdmaIOHandler::close() { +- aio->drainWriteQueue(boost::bind(&RdmaIOHandler::drained, this, _1)); ++ Mutex::ScopedLock l(pollingLock); ++ if (!polling) return; ++ polling = false; ++ aio->drainWriteQueue(boost::bind(&RdmaIOHandler::drained, this)); + } + + // TODO: Dummy implementation, need to fill this in for heartbeat timeout to work +@@ -140,7 +150,7 @@ void RdmaIOHandler::idle(Rdma::AsynchIO&) { + aio->queueWrite(buff); + } + if (codec->isClosed()) +- aio->drainWriteQueue(boost::bind(&RdmaIOHandler::drained, this, _1)); ++ close(); + } + + void RdmaIOHandler::initProtocolOut() { +@@ -153,10 +163,28 @@ void RdmaIOHandler::initProtocolOut() { + } + + void RdmaIOHandler::error(Rdma::AsynchIO&) { +- close(); ++ disconnected(); ++} ++ ++void RdmaIOHandler::disconnected() { ++ { ++ Mutex::ScopedLock l(pollingLock); ++ // If we're closed already then we'll get to drained() anyway ++ if (!polling) return; ++ polling = false; ++ } ++ drained(); ++} ++ ++namespace { ++ void stopped(RdmaIOHandler* async) { ++ delete async; ++ } + } + +-void RdmaIOHandler::drained(Rdma::AsynchIO&) { ++void RdmaIOHandler::drained() { ++ assert(!polling); ++ aio->stop(boost::bind(&stopped, this)); + } + + void RdmaIOHandler::full(Rdma::AsynchIO&) { +@@ -186,7 +214,7 @@ void RdmaIOHandler::readbuff(Rdma::AsynchIO&, Rdma::Buffer* buff) { + }catch(const std::exception& e){ + QPID_LOG(error, e.what()); + readError = true; +- aio->drainWriteQueue(boost::bind(&RdmaIOHandler::drained, this, _1)); ++ close(); + } + } + +@@ -205,7 +233,7 @@ void RdmaIOHandler::initProtocolIn(Rdma::Buffer* buff) { + // send valid version header & close connection. + write(framing::ProtocolInitiation(framing::highestProtocolVersion)); + readError = true; +- aio->drainWriteQueue(boost::bind(&RdmaIOHandler::drained, this, _1)); ++ close(); + } + } + } +@@ -296,9 +324,8 @@ void RdmaIOProtocolFactory::disconnected(Rdma::Connection::intrusive_ptr ci) { + // If we've got a connection already tear it down, otherwise ignore + RdmaIOHandler* async = ci->getContext(); + if (async) { +- async->close(); ++ async->disconnected(); + } +- delete async; + } + + uint16_t RdmaIOProtocolFactory::getPort() const { +-- +1.5.5.6 + +From db3f60d2ca980304e57ae85ce5085eb1a3cedc3a Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:33 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Reordered members of RdmaIOHandler to ensure correct destruction order + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995140 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 9 +++++---- + 1 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 09c9770..40967ca 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -44,9 +44,7 @@ namespace qpid { + namespace sys { + + class RdmaIOHandler : public OutputControl { +- Rdma::Connection::intrusive_ptr connection; + std::string identifier; +- Rdma::AsynchIO* aio; + ConnectionCodec::Factory* factory; + ConnectionCodec* codec; + bool readError; +@@ -54,6 +52,9 @@ class RdmaIOHandler : public OutputControl { + sys::Mutex pollingLock; + bool polling; + ++ Rdma::AsynchIO* aio; ++ Rdma::Connection::intrusive_ptr connection; ++ + void write(const framing::ProtocolInitiation&); + + public: +@@ -82,12 +83,12 @@ class RdmaIOHandler : public OutputControl { + }; + + RdmaIOHandler::RdmaIOHandler(Rdma::Connection::intrusive_ptr c, qpid::sys::ConnectionCodec::Factory* f) : +- connection(c), + identifier(c->getPeerName()), + factory(f), + codec(0), + readError(false), +- polling(false) ++ polling(false), ++ connection(c) + { + } + +-- +1.5.5.6 + +From 2df3e11f6a86a55131ee097d90e6e7d913894ce1 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:37 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Only delete Rdma server side connections when the client disconnects - + this avoids a race between the disconnect event and deleting the connection + upon closing. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995141 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 24 ++++++++++++------------ + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 4 ++++ + 2 files changed, 16 insertions(+), 12 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 40967ca..8c7f410 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -123,9 +123,6 @@ void RdmaIOHandler::write(const framing::ProtocolInitiation& data) + } + + void RdmaIOHandler::close() { +- Mutex::ScopedLock l(pollingLock); +- if (!polling) return; +- polling = false; + aio->drainWriteQueue(boost::bind(&RdmaIOHandler::drained, this)); + } + +@@ -167,6 +164,12 @@ void RdmaIOHandler::error(Rdma::AsynchIO&) { + disconnected(); + } + ++namespace { ++ void stopped(RdmaIOHandler* async) { ++ delete async; ++ } ++} ++ + void RdmaIOHandler::disconnected() { + { + Mutex::ScopedLock l(pollingLock); +@@ -174,18 +177,13 @@ void RdmaIOHandler::disconnected() { + if (!polling) return; + polling = false; + } +- drained(); +-} +- +-namespace { +- void stopped(RdmaIOHandler* async) { +- delete async; +- } ++ aio->stop(boost::bind(&stopped, this)); + } + + void RdmaIOHandler::drained() { +- assert(!polling); +- aio->stop(boost::bind(&stopped, this)); ++ // We know we've drained the write queue now, but we don't have to do anything ++ // because we can rely on the client to disconnect to trigger the connection ++ // cleanup. + } + + void RdmaIOHandler::full(Rdma::AsynchIO&) { +@@ -325,6 +323,8 @@ void RdmaIOProtocolFactory::disconnected(Rdma::Connection::intrusive_ptr ci) { + // If we've got a connection already tear it down, otherwise ignore + RdmaIOHandler* async = ci->getContext(); + if (async) { ++ // Make sure we don't disconnect more than once ++ ci->removeContext(); + async->disconnected(); + } + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index 51cf686..1d72abc 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -225,6 +225,10 @@ namespace Rdma { + context = c; + } + ++ void removeContext() { ++ context = 0; ++ } ++ + template + T* getContext() { + return static_cast(context); +-- +1.5.5.6 + +From 19f298bc0c5a38fa11acfe010abf8db47667fa50 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:41 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Avoid Rdma::AsynchIO leaking when stopped without being drained and + add in asserts to be sure that you call stopped and drained callbacks + in the correct state + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995142 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 3e0f1c1..068e8cf 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -452,7 +452,7 @@ namespace Rdma { + } + + // We might need to delete ourselves +- if (notifyCallback && outstandingWrites == 0) { ++ if (notifyCallback) { + doStoppedCallback(); + } + } +@@ -464,6 +464,7 @@ namespace Rdma { + State oldState; + do { + oldState = state.get(); ++ assert(oldState==IDLE); + } while (!state.boolCompareAndSwap(oldState, DRAINED)); + nc(*this); + } +@@ -475,6 +476,7 @@ namespace Rdma { + State oldState; + do { + oldState = state.get(); ++ assert(oldState==IDLE); + } while (!state.boolCompareAndSwap(oldState, SHUTDOWN)); + nc(*this); + } +-- +1.5.5.6 + +From c383105f8093d0e00d22f1241215fd241cdc3382 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:47 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Delay daemon side Rdma connection disconnect() so that it happens serialised + to the data channel for the connection. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995143 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 7 ++++++- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 14 ++++++++++++++ + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 3 +++ + 3 files changed, 23 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 8c7f410..b03f623 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -56,6 +56,7 @@ class RdmaIOHandler : public OutputControl { + Rdma::Connection::intrusive_ptr connection; + + void write(const framing::ProtocolInitiation&); ++ void disconnectAction(); + + public: + RdmaIOHandler(Rdma::Connection::intrusive_ptr c, ConnectionCodec::Factory* f); +@@ -170,7 +171,7 @@ namespace { + } + } + +-void RdmaIOHandler::disconnected() { ++void RdmaIOHandler::disconnectAction() { + { + Mutex::ScopedLock l(pollingLock); + // If we're closed already then we'll get to drained() anyway +@@ -180,6 +181,10 @@ void RdmaIOHandler::disconnected() { + aio->stop(boost::bind(&stopped, this)); + } + ++void RdmaIOHandler::disconnected() { ++ aio->requestCallback(boost::bind(&RdmaIOHandler::disconnectAction, this)); ++} ++ + void RdmaIOHandler::drained() { + // We know we've drained the write queue now, but we don't have to do anything + // because we can rely on the client to disconnect to trigger the connection +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 068e8cf..c89e0f2 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -114,6 +114,20 @@ namespace Rdma { + nc(*this); + } + ++ namespace { ++ void requestedCall(AsynchIO* aio, AsynchIO::RequestCallback callback) { ++ assert(callback); ++ callback(*aio); ++ } ++ } ++ ++ void AsynchIO::requestCallback(RequestCallback callback) { ++ // TODO creating a function object every time isn't all that ++ // efficient - if this becomes heavily used do something better (what?) ++ assert(callback); ++ dataHandle.call(boost::bind(&requestedCall, this, callback)); ++ } ++ + // Mark writing closed (so we don't accept any more writes or make any idle callbacks) + void AsynchIO::drainWriteQueue(NotifyCallback nc) { + State oldState; +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 8d5dbc5..72cbac1 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -65,6 +65,8 @@ namespace Rdma { + NotifyCallback notifyCallback; + + public: ++ typedef boost::function1 RequestCallback; ++ + // TODO: Instead of specifying a buffer size specify the amount of memory the AsynchIO class can use + // for buffers both read and write (allocate half to each up front) and fail if we cannot allocate that much + // locked memory +@@ -87,6 +89,7 @@ namespace Rdma { + void notifyPendingWrite(); + void drainWriteQueue(NotifyCallback); + void stop(NotifyCallback); ++ void requestCallback(RequestCallback); + int incompletedWrites() const; + Buffer* getBuffer(); + void returnBuffer(Buffer*); +-- +1.5.5.6 + +From 1c799eb7ffe0377ed58ce24c017428077239faf5 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:50 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Delay client side Rdma connection disconnect() so that it happens serialised + to the data channel for the connection. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995144 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 11 ++++++++--- + 1 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index e5be1f8..f8f38fb 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -82,7 +82,8 @@ class RdmaConnector : public Connector, public sys::Codec + // Callbacks + void connected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&); + void connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, Rdma::ErrorType); +- void disconnected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr); ++ void disconnectAction(); ++ void disconnected(); + void rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&); + + void readbuff(Rdma::AsynchIO&, Rdma::Buffer*); +@@ -176,7 +177,7 @@ void RdmaConnector::connect(const std::string& host, int port){ + Rdma::ConnectionParams(maxFrameSize, Rdma::DEFAULT_WR_ENTRIES), + boost::bind(&RdmaConnector::connected, this, poller, _1, _2), + boost::bind(&RdmaConnector::connectionError, this, poller, _1, _2), +- boost::bind(&RdmaConnector::disconnected, this, poller, _1), ++ boost::bind(&RdmaConnector::disconnected, this), + boost::bind(&RdmaConnector::rejected, this, poller, _1, _2))); + + polling = true; +@@ -228,7 +229,7 @@ void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::i + stopped(); + } + +-void RdmaConnector::disconnected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr) { ++void RdmaConnector::disconnectAction() { + QPID_LOG(debug, "Connection disconnected " << identifier); + { + Mutex::ScopedLock l(pollingLock); +@@ -239,6 +240,10 @@ void RdmaConnector::disconnected(sys::Poller::shared_ptr, Rdma::Connection::intr + drained(); + } + ++void RdmaConnector::disconnected() { ++ aio->requestCallback(boost::bind(&RdmaConnector::disconnectAction, this)); ++} ++ + void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams& cp) { + QPID_LOG(debug, "Connection Rejected " << identifier << ": " << cp.maxRecvBufferSize); + { +-- +1.5.5.6 + +From 1b5aaed874341f0ff85318fc624936a14736252d Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 8 Sep 2010 16:49:55 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Stop the client side Rdma code from receiving connection events before the data events + are stopped to avoid any events after the Rdma::Connector is deleted + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995145 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 1 + + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 4 ++++ + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 1 + + 3 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index f8f38fb..208d42f 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -281,6 +281,7 @@ void RdmaConnector::stopped(Rdma::AsynchIO* a) { + void RdmaConnector::drained() { + QPID_LOG(debug, "RdmaConnector::drained " << identifier); + assert(!polling); ++ acon->stop(); + if (aio) { + Rdma::AsynchIO* a = aio; + aio = 0; +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index c89e0f2..6977665 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -518,6 +518,10 @@ namespace Rdma { + handle.startWatch(poller); + } + ++ void ConnectionManager::stop() { ++ handle.stopWatch(); ++ } ++ + void ConnectionManager::event(DispatchHandle&) { + connectionEvent(ci); + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 72cbac1..55174ea 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -179,6 +179,7 @@ namespace Rdma { + virtual ~ConnectionManager(); + + void start(qpid::sys::Poller::shared_ptr poller, const qpid::sys::SocketAddress& addr); ++ void stop(); + + private: + void event(qpid::sys::DispatchHandle& handle); +-- +1.5.5.6 + +From 72a9ad16a9ef18426600312021434bee06ebcd24 Mon Sep 17 00:00:00 2001 +From: astitcher +Date: Wed, 8 Sep 2010 17:38:41 +0000 +Subject: [PATCH] Bug 604688 - rdma stability issues + Fix to allow compilation with libibverbs 1.1.2 + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995165 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp | 2 +- + qpid/cpp/src/qpid/sys/rdma/rdma_factories.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp +index 7090f12..a66f5b4 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_factories.cpp +@@ -87,7 +87,7 @@ namespace Rdma { + return boost::shared_ptr< ::ibv_pd >(pd, deallocPd); + } + +- boost::shared_ptr< ::ibv_mr > regMr(::ibv_pd* pd, void* addr, size_t length, int access) { ++ boost::shared_ptr< ::ibv_mr > regMr(::ibv_pd* pd, void* addr, size_t length, ::ibv_access_flags access) { + ::ibv_mr* mr = CHECK_NULL(::ibv_reg_mr(pd, addr, length, access)); + return boost::shared_ptr< ::ibv_mr >(mr, deregMr); + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h b/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h +index eded689..bfca71f 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_factories.h +@@ -32,7 +32,7 @@ namespace Rdma { + boost::shared_ptr< ::rdma_cm_event > mkEvent(::rdma_cm_event* e); + boost::shared_ptr< ::ibv_qp > mkQp(::ibv_qp* qp); + boost::shared_ptr< ::ibv_pd > allocPd(::ibv_context* c); +- boost::shared_ptr< ::ibv_mr > regMr(::ibv_pd* pd, void* addr, size_t length, int access); ++ boost::shared_ptr< ::ibv_mr > regMr(::ibv_pd* pd, void* addr, size_t length, ::ibv_access_flags access); + boost::shared_ptr< ::ibv_comp_channel > mkCChannel(::ibv_context* c); + boost::shared_ptr< ::ibv_cq > mkCq(::ibv_context* c, int cqe, void* context, ::ibv_comp_channel* cc); + } +-- +1.5.5.6 + +From 7fbcd279854a0fcc7c5afcf607223cdbe0644ff3 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 9 Sep 2010 09:52:18 -0400 +Subject: [PATCH] Bug 630996 - Deadlock between Timer::monitor and Cluster::lock + +Break deadlock caused when ClusterTimer::drop is called concurrently with Timer::add. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995426 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 6b51a5213057aee16c801aae609a536adbac6423) +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 1 - + qpid/cpp/src/qpid/sys/Timer.cpp | 9 ++++++--- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 1e87b8e..dea2754 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -1119,7 +1119,6 @@ void Cluster::timerDrop(const MemberId& , const std::string& name, Lock&) { + } + + bool Cluster::isElder() const { +- Monitor::ScopedLock l(lock); + return elder; + } + +diff --git a/qpid/cpp/src/qpid/sys/Timer.cpp b/qpid/cpp/src/qpid/sys/Timer.cpp +index 26d16e5..f7564c4 100644 +--- a/qpid/cpp/src/qpid/sys/Timer.cpp ++++ b/qpid/cpp/src/qpid/sys/Timer.cpp +@@ -107,7 +107,10 @@ void Timer::run() + { + ScopedLock l(t->callbackLock); + if (t->cancelled) { +- drop(t); ++ { ++ Monitor::ScopedUnlock u(monitor); ++ drop(t); ++ } + if (delay > lateCancel) { + QPID_LOG(debug, "cancelled Timer woken up " << delay / TIME_MSEC + << "ms late"); +@@ -115,8 +118,8 @@ void Timer::run() + continue; + } else if(Duration(t->nextFireTime, start) >= 0) { + { +- Monitor::ScopedUnlock u(monitor); +- fire(t); ++ Monitor::ScopedUnlock u(monitor); ++ fire(t); + } + // Warn if callback overran next timer's start. + AbsTime end(AbsTime::now()); +-- +1.5.5.6 + +From 967cd8edda0e3027c2a26e3fe43e82099ec39357 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Thu, 9 Sep 2010 18:49:35 +0000 +Subject: [PATCH] Bug 632349 - Python Qpid does not properly encode 'bool' in a Map message + +fixed bool encoding + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995537 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit b2645a3feaafd3ecb08669024debee3fdde922ff) +--- + qpid/python/qpid/codec010.py | 1 + + qpid/python/qpid/tests/messaging/message.py | 12 ++++++++++++ + 2 files changed, 13 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/codec010.py b/qpid/python/qpid/codec010.py +index 682743d..d65f8c3 100644 +--- a/qpid/python/qpid/codec010.py ++++ b/qpid/python/qpid/codec010.py +@@ -36,6 +36,7 @@ def map_str(s): + class Codec(Packer): + + ENCODINGS = { ++ bool: direct("boolean"), + unicode: direct("str16"), + str: map_str, + buffer: direct("vbin32"), +diff --git a/qpid/python/qpid/tests/messaging/message.py b/qpid/python/qpid/tests/messaging/message.py +index eaa953e..297374b 100644 +--- a/qpid/python/qpid/tests/messaging/message.py ++++ b/qpid/python/qpid/tests/messaging/message.py +@@ -86,6 +86,8 @@ class MessageEchoTests(Base): + "key7": ["one", 2, 3.14], + "key8": [], + "key9": {"sub-key0": 3}, ++ "key10": True, ++ "key11": False, + "x-amqp-0-10.app-id": "test-app-id", + "x-amqp-0-10.content-encoding": "test-content-encoding"} + +@@ -141,3 +143,13 @@ class MessageEchoTests(Base): + + def testReplyToTopicSubject(self): + self.check_rt("name/subject; {node: {type: topic}}") ++ ++ def testBooleanEncoding(self): ++ msg = Message({"true": True, "false": False}) ++ self.snd.send(msg) ++ echo = self.rcv.fetch(0) ++ self.assertEcho(msg, echo) ++ t = echo.content["true"] ++ f = echo.content["false"] ++ assert isinstance(t, bool), t ++ assert isinstance(f, bool), f +-- +1.5.5.6 + +From b33b9e8a849b23d95c61226fec6529783c7c1e50 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 10 Sep 2010 12:29:24 +0000 +Subject: [PATCH] BZ-632395 made qpid.datatypes module use builtin UUID when available + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995770 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/codec010.py | 2 +- + qpid/python/qpid/datatypes.py | 58 ++++++++++++++++++++++------------------- + 2 files changed, 32 insertions(+), 28 deletions(-) + +diff --git a/qpid/python/qpid/codec010.py b/qpid/python/qpid/codec010.py +index d65f8c3..5ad1ef1 100644 +--- a/qpid/python/qpid/codec010.py ++++ b/qpid/python/qpid/codec010.py +@@ -357,7 +357,7 @@ class Codec(Packer): + getattr(self, attr)(n) + + def read_uuid(self): +- return UUID(self.unpack("16s")) ++ return UUID(bytes=self.unpack("16s")) + def write_uuid(self, s): + if isinstance(s, UUID): + s = s.bytes +diff --git a/qpid/python/qpid/datatypes.py b/qpid/python/qpid/datatypes.py +index c379293..ca1466c 100644 +--- a/qpid/python/qpid/datatypes.py ++++ b/qpid/python/qpid/datatypes.py +@@ -286,10 +286,35 @@ class Future: + return self._set.isSet() + + try: +- import uuid +- def random_uuid(): +- return uuid.uuid4().get_bytes() ++ from uuid import uuid4 ++ from uuid import UUID + except ImportError: ++ class UUID: ++ def __init__(self, hex=None, bytes=None): ++ if [hex, bytes].count(None) != 1: ++ raise TypeErrror("need one of hex or bytes") ++ if bytes is not None: ++ self.bytes = bytes ++ elif hex is not None: ++ fields=hex.split("-") ++ fields[4:5] = [fields[4][:4], fields[4][4:]] ++ self.bytes = struct.pack("!LHHHHL", *[int(x,16) for x in fields]) ++ ++ def __cmp__(self, other): ++ if isinstance(other, UUID): ++ return cmp(self.bytes, other.bytes) ++ else: ++ return -1 ++ ++ def __str__(self): ++ return "%08x-%04x-%04x-%04x-%04x%08x" % struct.unpack("!LHHHHL", self.bytes) ++ ++ def __repr__(self): ++ return "UUID(%r)" % str(self) ++ ++ def __hash__(self): ++ return self.bytes.__hash__() ++ + import os, random, socket, time + rand = random.Random() + rand.seed((os.getpid(), time.time(), socket.gethostname())) +@@ -305,32 +330,11 @@ except ImportError: + bytes[8] |= 0x80 + return "".join(map(chr, bytes)) + +-def uuid4(): +- return UUID(random_uuid()) ++ def uuid4(): ++ return UUID(bytes=random_uuid()) + + def parseUUID(str): +- fields=str.split("-") +- fields[4:5] = [fields[4][:4], fields[4][4:]] +- return UUID(struct.pack("!LHHHHL", *[int(x,16) for x in fields])) +- +-class UUID: +- def __init__(self, bytes): +- self.bytes = bytes +- +- def __cmp__(self, other): +- if isinstance(other, UUID): +- return cmp(self.bytes, other.bytes) +- else: +- return -1 +- +- def __str__(self): +- return "%08x-%04x-%04x-%04x-%04x%08x" % struct.unpack("!LHHHHL", self.bytes) +- +- def __repr__(self): +- return "UUID(%r)" % str(self) +- +- def __hash__(self): +- return self.bytes.__hash__() ++ return UUID(hex=str) + + class timestamp(float): + +-- +1.5.5.6 + +From 372d0dcff796b8dc8bffe693b4e49edca15f2cf4 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 10 Sep 2010 14:24:20 +0000 +Subject: [PATCH] added extra assertion to check that deletion of default exchanges doesn't work + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995803 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/tests/messaging/endpoints.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index b360482..185a90b 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -1029,6 +1029,7 @@ class AddressTests(Base): + snd.send("asdf") + try: + snd.close() ++ assert False, "successfully deleted amq.topic" + except SessionError, e: + assert "Cannot delete default exchange" in str(e) + # XXX: need to figure out close after error +-- +1.5.5.6 + +From 57ee214f689d6867d716589a8283045862a86dd7 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 10 Sep 2010 14:58:08 +0000 +Subject: [PATCH] handle request timeout + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995815 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index 0c7c7e7..bdcdb26 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -784,6 +784,10 @@ class Engine: + if sf.completed: + sst.write_op(SessionCompleted(sst.executed)) + ++ def do_session_request_timeout(self, rt): ++ sst = self.get_sst(rt) ++ sst.write_op(SessionTimeout(timeout=0)) ++ + def do_execution_result(self, er): + sst = self.get_sst(er) + sst.results[er.command_id] = er.value +-- +1.5.5.6 + +From a68cbe92e1b7b871588404afeb56f5809588773c Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Fri, 10 Sep 2010 17:26:23 +0000 +Subject: [PATCH] fixed detach to not hang on session error, fixed the tests to include a timeout for connection teardown + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@995884 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/endpoints.py | 1 + + qpid/python/qpid/tests/messaging/__init__.py | 5 ++++- + qpid/python/qpid/tests/messaging/endpoints.py | 2 +- + 3 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py +index 7d7d424..886b7f1 100644 +--- a/qpid/python/qpid/messaging/endpoints.py ++++ b/qpid/python/qpid/messaging/endpoints.py +@@ -261,6 +261,7 @@ class Connection(Endpoint): + def _unlinked(self): + return [l + for ssn in self.sessions.values() ++ if not (ssn.error or ssn.closed) + for l in ssn.senders + ssn.receivers + if not (l.linked or l.error or l.closed)] + +diff --git a/qpid/python/qpid/tests/messaging/__init__.py b/qpid/python/qpid/tests/messaging/__init__.py +index ddacf77..8f6680d 100644 +--- a/qpid/python/qpid/tests/messaging/__init__.py ++++ b/qpid/python/qpid/tests/messaging/__init__.py +@@ -56,7 +56,7 @@ class Base(Test): + self.conn = None + + def teardown_connection(self, conn): +- conn.close() ++ conn.close(timeout=self.timeout()) + + def content(self, base, count = None): + if count is None: +@@ -159,6 +159,9 @@ class Base(Test): + def delay(self): + return float(self.config.defines.get("delay", "2")) + ++ def timeout(self): ++ return float(self.config.defines.get("timeout", "60")) ++ + def get_bool(self, name): + return self.config.defines.get(name, "false").lower() in ("true", "yes", "1") + +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index 185a90b..6072311 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -710,7 +710,7 @@ class ReceiverTests(Base): + + def fetchFromConcurrentCloseTest(self, entry): + def closer(): +- time.sleep(self.delay()) ++ self.sleep() + entry.close() + t = Thread(target=closer) + t.start() +-- +1.5.5.6 + +From b2213aa8aa9cc3003df7bb7c3c4b0134b6be3a9d Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 14 Sep 2010 20:50:50 +0000 +Subject: [PATCH] Bug 633861 - QMF: resourceDestroy while in doMethod processing is unsafe + +Fixed a thread safety issue in which the managementObjects map was used in an unsafe way +(i.e. without the lock held). + +Replaced a raw pointer with a boost::shared_ptr to protect objects during method calls. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@997089 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 113 ++++++++++++----------- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 9 +- + 2 files changed, 67 insertions(+), 55 deletions(-) + +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index 8fb7cd3..fadac65 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -119,19 +119,6 @@ ManagementAgentImpl::~ManagementAgentImpl() + connThread.join(); + pubThread.join(); + +- // Release the memory associated with stored management objects. +- { +- sys::Mutex::ScopedLock lock(agentLock); +- +- moveNewObjectsLH(); +- for (ManagementObjectMap::iterator iter = managementObjects.begin (); +- iter != managementObjects.end (); +- iter++) { +- ManagementObject* object = iter->second; +- delete object; +- } +- managementObjects.clear(); +- } + if (pipeHandle) { + delete pipeHandle; + pipeHandle = 0; +@@ -292,7 +279,7 @@ ObjectId ManagementAgentImpl::addObject(ManagementObject* object, + objectId.setAgentName(name_address); + + object->setObjectId(objectId); +- newManagementObjects[objectId] = object; ++ newManagementObjects[objectId] = boost::shared_ptr(object); + return objectId; + } + +@@ -565,24 +552,31 @@ void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& + inArgs = (mid->second).asMap(); + } + +- ManagementObjectMap::iterator iter = managementObjects.find(objId); +- if (iter == managementObjects.end() || iter->second->isDeleted()) { ++ boost::shared_ptr oPtr; ++ { ++ sys::Mutex::ScopedLock lock(agentLock); ++ ObjectMap::iterator iter = managementObjects.find(objId); ++ if (iter != managementObjects.end() && !iter->second->isDeleted()) ++ oPtr = iter->second; ++ } ++ ++ if (oPtr.get() == 0) { + sendException(replyTo, cid, Manageable::StatusText(Manageable::STATUS_UNKNOWN_OBJECT), + Manageable::STATUS_UNKNOWN_OBJECT); + failed = true; + } else { +- iter->second->doMethod(methodName, inArgs, callMap); +- } +- +- if (callMap["_status_code"].asUint32() == 0) { +- outMap["_arguments"] = Variant::Map(); +- for (Variant::Map::const_iterator iter = callMap.begin(); +- iter != callMap.end(); iter++) +- if (iter->first != "_status_code" && iter->first != "_status_text") +- outMap["_arguments"].asMap()[iter->first] = iter->second; +- } else { +- sendException(replyTo, cid, callMap["_status_text"], callMap["_status_code"]); +- failed = true; ++ oPtr->doMethod(methodName, inArgs, callMap); ++ ++ if (callMap["_status_code"].asUint32() == 0) { ++ outMap["_arguments"] = Variant::Map(); ++ for (Variant::Map::const_iterator iter = callMap.begin(); ++ iter != callMap.end(); iter++) ++ if (iter->first != "_status_code" && iter->first != "_status_text") ++ outMap["_arguments"].asMap()[iter->first] = iter->second; ++ } else { ++ sendException(replyTo, cid, callMap["_status_text"], callMap["_status_code"]); ++ failed = true; ++ } + } + + } catch(types::InvalidConversion& e) { +@@ -670,11 +664,16 @@ void ManagementAgentImpl::handleGetQuery(const string& body, const string& cid, + i = inMap.find("_object_id"); + if (i != inMap.end() && i->second.getType() == qpid::types::VAR_MAP) { + ObjectId objId(i->second.asMap()); ++ boost::shared_ptr object; + +- ManagementObjectMap::iterator iter = managementObjects.find(objId); +- if (iter != managementObjects.end()) { +- ManagementObject* object = iter->second; ++ { ++ sys::Mutex::ScopedLock lock(agentLock); ++ ObjectMap::iterator iter = managementObjects.find(objId); ++ if (iter != managementObjects.end()) ++ object = iter->second; ++ } + ++ if (object.get() != 0) { + if (object->getConfigChanged() || object->getInstChanged()) + object->setUpdateTime(); + +@@ -696,11 +695,25 @@ void ManagementAgentImpl::handleGetQuery(const string& body, const string& cid, + return; + } + } else { ++ ++ typedef list > StageList; ++ StageList staging; ++ ++ { ++ sys::Mutex::ScopedLock lock(agentLock); ++ for (ObjectMap::iterator iter = managementObjects.begin(); ++ iter != managementObjects.end(); ++ iter++) { ++ ManagementObject* object = iter->second.get(); ++ if (object->getClassName() == className && ++ (packageName.empty() || object->getPackageName() == packageName)) ++ staging.push_back(iter->second); ++ } ++ } ++ + unsigned int objCount = 0; +- for (ManagementObjectMap::iterator iter = managementObjects.begin(); +- iter != managementObjects.end(); +- iter++) { +- ManagementObject* object = iter->second; ++ for (StageList::iterator iter = staging.begin(); iter != staging.end(); iter++) { ++ ManagementObject* object = iter->get(); + if (object->getClassName() == className && + (packageName.empty() || object->getPackageName() == packageName)) { + +@@ -712,7 +725,7 @@ void ManagementAgentImpl::handleGetQuery(const string& body, const string& cid, + object->setUpdateTime(); + + object->mapEncodeValues(values, true, true); // write both stats and properties +- iter->first.mapEncode(oidMap); ++ object->getObjectId().mapEncode(oidMap); + map_["_values"] = values; + map_["_object_id"] = oidMap; + object->writeTimestamps(map_); +@@ -905,7 +918,7 @@ ManagementAgentImpl::PackageMap::iterator ManagementAgentImpl::findOrAddPackage( + void ManagementAgentImpl::moveNewObjectsLH() + { + sys::Mutex::ScopedLock lock(addLock); +- for (ManagementObjectMap::iterator iter = newManagementObjects.begin(); ++ for (ObjectMap::iterator iter = newManagementObjects.begin(); + iter != newManagementObjects.end(); + iter++) + managementObjects[iter->first] = iter->second; +@@ -958,7 +971,7 @@ void ManagementAgentImpl::periodicProcessing() + { + string addr_key_base = "agent.ind.data."; + sys::Mutex::ScopedLock lock(agentLock); +- list > deleteList; ++ list deleteList; + + if (!connected) + return; +@@ -970,10 +983,10 @@ void ManagementAgentImpl::periodicProcessing() + // + // Clear the been-here flag on all objects in the map. + // +- for (ManagementObjectMap::iterator iter = managementObjects.begin(); ++ for (ObjectMap::iterator iter = managementObjects.begin(); + iter != managementObjects.end(); + iter++) { +- ManagementObject* object = iter->second; ++ ManagementObject* object = iter->second.get(); + object->setFlags(0); + if (clientWasAdded) { + object->setForcePublish(true); +@@ -987,10 +1000,10 @@ void ManagementAgentImpl::periodicProcessing() + // + uint32_t v2Objs = 0; + +- for (ManagementObjectMap::iterator baseIter = managementObjects.begin(); ++ for (ObjectMap::iterator baseIter = managementObjects.begin(); + baseIter != managementObjects.end(); + baseIter++) { +- ManagementObject* baseObject = baseIter->second; ++ ManagementObject* baseObject = baseIter->second.get(); + + // + // Skip until we find a base object requiring a sent message. +@@ -1022,10 +1035,10 @@ void ManagementAgentImpl::periodicProcessing() + headers["qmf.content"] = "_data"; + headers["qmf.agent"] = name_address; + +- for (ManagementObjectMap::iterator iter = baseIter; ++ for (ObjectMap::iterator iter = baseIter; + iter != managementObjects.end(); + iter++) { +- ManagementObject* object = iter->second; ++ ManagementObject* object = iter->second.get(); + bool send_stats, send_props; + if (baseObject->isSameClass(*object) && object->getFlags() == 0) { + object->setFlags(1); +@@ -1062,7 +1075,7 @@ void ManagementAgentImpl::periodicProcessing() + } + + if (object->isDeleted()) +- deleteList.push_back(pair(iter->first, object)); ++ deleteList.push_back(iter->first); + object->setForcePublish(false); + } + } +@@ -1075,14 +1088,10 @@ void ManagementAgentImpl::periodicProcessing() + } + + // Delete flagged objects +- for (list >::reverse_iterator iter = deleteList.rbegin(); ++ for (list::reverse_iterator iter = deleteList.rbegin(); + iter != deleteList.rend(); +- iter++) { +- delete iter->second; +- managementObjects.erase(iter->first); +- } +- +- deleteList.clear(); ++ iter++) ++ managementObjects.erase(*iter); + } + + void ManagementAgentImpl::ConnectionThread::run() +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index 7cfb552..c572774 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -141,9 +141,12 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + + PackageMap packages; + AgentAttachment attachment; +- management::ManagementObjectMap managementObjects; +- management::ManagementObjectMap newManagementObjects; +- MethodQueue methodQueue; ++ ++ typedef std::map > ObjectMap; ++ ++ ObjectMap managementObjects; ++ ObjectMap newManagementObjects; ++ MethodQueue methodQueue; + + void received (client::Message& msg); + +-- +1.5.5.6 + +From 622ce3323a5c9055f907ec3fbcb141bc40122acd Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Wed, 15 Sep 2010 11:21:15 -0400 +Subject: [PATCH] Added -fno-strict-aliasing to Python qmfengine compile. + (in response to an rpmdiff report) + +--- + qpid/cpp/bindings/qmf/python/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/bindings/qmf/python/Makefile.am b/qpid/cpp/bindings/qmf/python/Makefile.am +index 42b1cc7..54e4a82 100644 +--- a/qpid/cpp/bindings/qmf/python/Makefile.am ++++ b/qpid/cpp/bindings/qmf/python/Makefile.am +@@ -39,7 +39,7 @@ lib_LTLIBRARIES = _qmfengine.la + #_qmfengine_la_LDFLAGS = -avoid-version -module -shrext ".so" + _qmfengine_la_LDFLAGS = -avoid-version -module -shared + _qmfengine_la_LIBADD = $(PYTHON_LIBS) -L$(top_builddir)/src/.libs -lqpidclient $(top_builddir)/src/libqmf.la +-_qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf -I$(PYTHON_INC) ++_qmfengine_la_CXXFLAGS = $(INCLUDES) -I$(srcdir)/qmf -I$(PYTHON_INC) -fno-strict-aliasing + nodist__qmfengine_la_SOURCES = qmfengine.cpp + + CLEANFILES = $(generated_file_list) +-- +1.5.5.6 + +From c30ff5c849713b91fd4d62a8290a3adc4d117d77 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Wed, 22 Sep 2010 12:50:58 +0000 +Subject: [PATCH] Bug 537481 - qpid-stat needs option to link sesion to queue via subscription object + +Fixed qpid-stat to skip rows when the underlying data disappears during execution. +Removed keyword arg from "sort" to support Python 2.3. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@999918 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 862c6a9d25312230c6ac45fe4badfab6dd7173bb) +--- + qpid/python/qpid/disp.py | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/disp.py b/qpid/python/qpid/disp.py +index 1b315c9..c29ea00 100644 +--- a/qpid/python/qpid/disp.py ++++ b/qpid/python/qpid/disp.py +@@ -221,7 +221,9 @@ class Sorter: + list = [] + for row in rows: + list.append(Sortable(row, col)) +- list.sort(reverse=not inc) ++ list.sort() ++ if not inc: ++ list.reverse() + count = 0 + self.sorted = [] + for row in list: +-- +1.5.5.6 + +From dd1d07b644c94aded53aa9c3ff0354331a2776df Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Wed, 22 Sep 2010 12:51:10 +0000 +Subject: [PATCH] Bug 636262 - QMF: method call arguments containing maps fail to pass boolean values. + +QPID-2880: allow boolean values in method call map/list arguments. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@999919 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 475d0274faa05752358c451c4b08bfba4724498c) +--- + qpid/cpp/bindings/qmf/tests/python_console.py | 6 +++--- + qpid/cpp/bindings/qmf/tests/ruby_console_test.rb | 5 +++-- + qpid/cpp/src/qmf/engine/ValueImpl.cpp | 17 +++++++++++++++-- + 3 files changed, 21 insertions(+), 7 deletions(-) + +diff --git a/qpid/cpp/bindings/qmf/tests/python_console.py b/qpid/cpp/bindings/qmf/tests/python_console.py +index 6ed3c04..1cef824 100755 +--- a/qpid/cpp/bindings/qmf/tests/python_console.py ++++ b/qpid/cpp/bindings/qmf/tests/python_console.py +@@ -281,9 +281,9 @@ class QmfInteropTests(TestBase010): + 'aSigned' : -666, + 'aString' : "A String", + 'aFloat' : 3.1415, +- 'aList' : ['x', -1, 'y', 2]} +- +- inList = ['aString', long(1), -1, 2.7182, {'aMap': -8}] ++ 'aList' : ['x', -1, 'y', 2], ++ 'abool' : False} ++ inList = ['aString', long(1), -1, 2.7182, {'aMap': -8}, True] + + result = parent.test_map_list(inMap, inList) + self.assertEqual(result.status, 0) +diff --git a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +index dd49560..fcdf3ac 100755 +--- a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb ++++ b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +@@ -333,9 +333,10 @@ class ConsoleTest < ConsoleTestBase + 'aSigned' => -666, + 'aString' => "A String", + 'aFloat' => 3.1415, +- 'aList' => ['x', -1, 'y', 2]} ++ 'aList' => ['x', -1, 'y', 2], ++ 'abool' => false} + +- inList = ['aString', 1, -1, 2.7182, {'aMap'=> -8}] ++ inList = ['aString', 1, -1, 2.7182, {'aMap'=> -8}, true] + + result = parent.test_map_list(inMap, inList) + assert_equal(result.status, 0) +diff --git a/qpid/cpp/src/qmf/engine/ValueImpl.cpp b/qpid/cpp/src/qmf/engine/ValueImpl.cpp +index c58c28e..409bf64 100644 +--- a/qpid/cpp/src/qmf/engine/ValueImpl.cpp ++++ b/qpid/cpp/src/qmf/engine/ValueImpl.cpp +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + using namespace std; + using namespace qmf::engine; +@@ -153,6 +154,12 @@ void ValueImpl::initMap(const FieldTable& ft) + subval->impl->initList(subList); + insert(name.c_str(), subval); + } ++ } else if (amqType == 0x08) { ++ Value* subval(new Value(TYPE_BOOL)); ++ subval->setBool(fvalue.get() ? true : false); ++ insert(name.c_str(), subval); ++ } else { ++ QPID_LOG(error, "Unable to decode unsupported AMQP typecode=" << amqType << " map index=" << name); + } + } + } +@@ -185,7 +192,7 @@ void ValueImpl::mapToFieldTable(FieldTable& ft) const + ft.setInt64(name, subval.asInt64()); + break; + case TYPE_BOOL: +- ft.setInt(name, subval.asBool() ? 1 : 0); ++ ft.set(name, FieldTable::ValuePtr(new BoolValue(subval.asBool()))); + break; + case TYPE_FLOAT: + ft.setFloat(name, subval.asFloat()); +@@ -274,6 +281,12 @@ void ValueImpl::initList(const List& fl) + subVal->impl->initList(subList); + appendToList(subVal); + } ++ } else if (amqType == 0x08) { ++ Value* subval(new Value(TYPE_BOOL)); ++ subval->setBool(fvalue.get() ? true : false); ++ appendToList(subval); ++ } else { ++ QPID_LOG(error, "Unable to decode unsupported AMQP typecode =" << amqType); + } + } + } +@@ -303,7 +316,7 @@ void ValueImpl::listToFramingList(List& fl) const + fl.push_back(List::ValuePtr(new Integer64Value(subval.asInt64()))); + break; + case TYPE_BOOL: +- fl.push_back(List::ValuePtr(new IntegerValue(subval.asBool() ? 1 : 0))); ++ fl.push_back(List::ValuePtr(new BoolValue(subval.asBool() ? 1 : 0))); + break; + case TYPE_FLOAT: + fl.push_back(List::ValuePtr(new FloatValue(subval.asFloat()))); +-- +1.5.5.6 + +From ee2145c4615e4aab8ff1cd312dd72e1d4f01f492 Mon Sep 17 00:00:00 2001 +From: Jonathan Robie +Date: Tue, 14 Sep 2010 21:19:42 +0000 +Subject: [PATCH] Bug 620687 - hello_world example does not allow connection options to be set + +Adds a parameter to several examples to allow connection options to be specified. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@997099 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e36428a8e13f6909400d82ed46b7dd785afe9130) +--- + qpid/cpp/examples/messaging/client.cpp | 7 ++++--- + qpid/cpp/examples/messaging/hello_world.cpp | 4 +++- + qpid/cpp/examples/messaging/hello_xml.cpp | 4 +++- + qpid/cpp/examples/messaging/map_receiver.cpp | 5 +++-- + qpid/cpp/examples/messaging/map_sender.cpp | 4 +++- + qpid/cpp/examples/messaging/server.cpp | 5 +++-- + 6 files changed, 19 insertions(+), 10 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/client.cpp b/qpid/cpp/examples/messaging/client.cpp +index 483e5f8..f0ecd96 100644 +--- a/qpid/cpp/examples/messaging/client.cpp ++++ b/qpid/cpp/examples/messaging/client.cpp +@@ -38,9 +38,10 @@ using std::string; + + int main(int argc, char** argv) { + const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672"; +- +- Connection connection(url); +- try { ++ std::string connectionOptions = argc > 2 ? argv[2] : ""; ++ ++ Connection connection(url, connectionOptions); ++ try { + connection.open(); + Session session = connection.createSession(); + +diff --git a/qpid/cpp/examples/messaging/hello_world.cpp b/qpid/cpp/examples/messaging/hello_world.cpp +index 9c06964..8aef57d 100644 +--- a/qpid/cpp/examples/messaging/hello_world.cpp ++++ b/qpid/cpp/examples/messaging/hello_world.cpp +@@ -11,7 +11,9 @@ using namespace qpid::messaging; + int main(int argc, char** argv) { + std::string broker = argc > 1 ? argv[1] : "localhost:5672"; + std::string address = argc > 2 ? argv[2] : "amq.topic"; +- Connection connection(broker); ++ std::string connectionOptions = argc > 3 ? argv[3] : ""; ++ ++ Connection connection(broker, connectionOptions); + try { + connection.open(); + Session session = connection.createSession(); +diff --git a/qpid/cpp/examples/messaging/hello_xml.cpp b/qpid/cpp/examples/messaging/hello_xml.cpp +index ab6de25..99b4144 100644 +--- a/qpid/cpp/examples/messaging/hello_xml.cpp ++++ b/qpid/cpp/examples/messaging/hello_xml.cpp +@@ -12,6 +12,8 @@ using namespace qpid::messaging; + + int main(int argc, char** argv) { + std::string broker = argc > 1 ? argv[1] : "localhost:5672"; ++ std::string connectionOptions = argc > 2 ? argv[2] : ""; ++ + std::string query = + "let $w := ./weather " + "return $w/station = 'Raleigh-Durham International Airport (KRDU)' " +@@ -32,7 +34,7 @@ int main(int argc, char** argv) { + " } " + "}"; + +- Connection connection(broker); ++ Connection connection(broker, connectionOptions); + try { + connection.open(); + Session session = connection.createSession(); +diff --git a/qpid/cpp/examples/messaging/map_receiver.cpp b/qpid/cpp/examples/messaging/map_receiver.cpp +index ca17078..081f739 100644 +--- a/qpid/cpp/examples/messaging/map_receiver.cpp ++++ b/qpid/cpp/examples/messaging/map_receiver.cpp +@@ -38,8 +38,9 @@ using std::string; + int main(int argc, char** argv) { + const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672"; + const char* address = argc>2 ? argv[2] : "message_queue; {create: always}"; +- +- Connection connection(url); ++ std::string connectionOptions = argc > 3 ? argv[3] : ""; ++ ++ Connection connection(url, connectionOptions); + try { + connection.open(); + Session session = connection.createSession(); +diff --git a/qpid/cpp/examples/messaging/map_sender.cpp b/qpid/cpp/examples/messaging/map_sender.cpp +index 2d348de..8ce3e1d 100644 +--- a/qpid/cpp/examples/messaging/map_sender.cpp ++++ b/qpid/cpp/examples/messaging/map_sender.cpp +@@ -38,7 +38,9 @@ using std::string; + int main(int argc, char** argv) { + const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672"; + const char* address = argc>2 ? argv[2] : "message_queue; {create: always}"; +- Connection connection(url); ++ std::string connectionOptions = argc > 3 ? argv[3] : ""; ++ ++ Connection connection(url, connectionOptions); + try { + connection.open(); + Session session = connection.createSession(); +diff --git a/qpid/cpp/examples/messaging/server.cpp b/qpid/cpp/examples/messaging/server.cpp +index ae1fee4..ab72694 100644 +--- a/qpid/cpp/examples/messaging/server.cpp ++++ b/qpid/cpp/examples/messaging/server.cpp +@@ -39,8 +39,9 @@ using std::string; + + int main(int argc, char** argv) { + const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672"; +- +- Connection connection(url); ++ std::string connectionOptions = argc > 3 ? argv[3] : ""; ++ ++ Connection connection(url, connectionOptions); + try { + connection.open(); + Session session = connection.createSession(); +-- +1.5.5.6 + +From f4cb61710b5625a25c915fb5220ab25fa16e9eab Mon Sep 17 00:00:00 2001 +From: Jonathan Robie +Date: Thu, 16 Sep 2010 14:52:37 +0000 +Subject: [PATCH] Bug 631567 - The C++ address parser throws an exception and leaks memory if it parses an empty list + +Fixes parsing problem with empty lists ('[]') in addresses, which previously raised an exception and leaked the memory associated with the AddressImpl. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@997771 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 34f59d52c3f361fe4d5b138ac98c44f46aea0a27) +--- + qpid/cpp/src/qpid/messaging/AddressParser.cpp | 9 +++++++-- + qpid/cpp/src/qpid/messaging/AddressParser.h | 1 + + qpid/cpp/src/tests/Address.cpp | 18 ++++++++++++++++++ + 3 files changed, 26 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/messaging/AddressParser.cpp b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +index ba222f4..3a9de6c 100644 +--- a/qpid/cpp/src/qpid/messaging/AddressParser.cpp ++++ b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +@@ -97,7 +97,7 @@ bool AddressParser::readList(Variant& value) + void AddressParser::readListItems(Variant::List& list) + { + Variant item; +- while (readValue(item)) { ++ while (readValueIfExists(item)) { + list.push_back(item); + if (!readChar(',')) break; + } +@@ -142,8 +142,13 @@ bool AddressParser::readKey(std::string& key) + + bool AddressParser::readValue(Variant& value) + { ++ return readValueIfExists(value) || error("Expected value"); ++} ++ ++bool AddressParser::readValueIfExists(Variant& value) ++{ + return readSimpleValue(value) || readQuotedValue(value) || +- readMap(value) || readList(value) || error("Expected value"); ++ readMap(value) || readList(value); + } + + bool AddressParser::readString(std::string& value, char delimiter) +diff --git a/qpid/cpp/src/qpid/messaging/AddressParser.h b/qpid/cpp/src/qpid/messaging/AddressParser.h +index a3f41eb..1635331 100644 +--- a/qpid/cpp/src/qpid/messaging/AddressParser.h ++++ b/qpid/cpp/src/qpid/messaging/AddressParser.h +@@ -46,6 +46,7 @@ class AddressParser + bool readSimpleValue(qpid::types::Variant& word); + bool readKey(std::string& key); + bool readValue(qpid::types::Variant& value); ++ bool readValueIfExists(qpid::types::Variant& value); + bool readKeyValuePair(qpid::types::Variant::Map& map); + bool readMap(qpid::types::Variant& value); + bool readList(qpid::types::Variant& value); +diff --git a/qpid/cpp/src/tests/Address.cpp b/qpid/cpp/src/tests/Address.cpp +index a0b87e2..32d14bb 100644 +--- a/qpid/cpp/src/tests/Address.cpp ++++ b/qpid/cpp/src/tests/Address.cpp +@@ -87,6 +87,24 @@ QPID_AUTO_TEST_CASE(testParseOptionsWithList) + BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); + } + ++QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyList) ++{ ++ Address address("my-topic; {a:[], x:101}"); ++ BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName()); ++ Variant::List& list = address.getOptions()["a"].asList(); ++ BOOST_CHECK_EQUAL(list.size(), 0); ++ BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); ++} ++ ++QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyMap) ++{ ++ Address address("my-topic; {a:{}, x:101}"); ++ BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName()); ++ Variant::Map& map = address.getOptions()["a"].asMap(); ++ BOOST_CHECK_EQUAL(map.size(), 0); ++ BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); ++} ++ + QPID_AUTO_TEST_CASE(testParseQuotedNameAndSubject) + { + Address address("'my topic with / in it'/'my subject with ; in it'"); +-- +1.5.5.6 + +From ef24f2cb63758570be37eee2dc82125573ba3e9a Mon Sep 17 00:00:00 2001 +From: Jonathan Robie +Date: Tue, 28 Sep 2010 12:46:37 +0000 +Subject: [PATCH] Bug 621468 - rejected messages are not dequeued + +Ensure that a rejected message is also dequeued. + +Without this fix, rejected messages were dropped, but not dequeued. This meant that durable messages would 're-appear' after a restart. This also meant that the queue message count was incorrect if messages had been rejected. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1002147 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 5edfe32cea67b4b346e01a08849c43f2cfe76651) +--- + qpid/cpp/src/qpid/broker/DeliveryRecord.cpp | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp b/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp +index 64db84b..b3a49c4 100644 +--- a/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp ++++ b/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp +@@ -140,6 +140,8 @@ void DeliveryRecord::reject() + //just drop it + QPID_LOG(info, "Dropping rejected message from " << queue->getName()); + } ++ ++ dequeue(); + } + + uint32_t DeliveryRecord::getCredit() const +-- +1.5.5.6 + +From 8d0bb8e227b8b23b49a8b0787898c64eac762846 Mon Sep 17 00:00:00 2001 +From: Jonathan Robie +Date: Thu, 28 Oct 2010 15:21:06 +0000 +Subject: [PATCH] Bug 647861 - Incorrect handling of datatypes for numeric queue constraints + +Fixes broker issues when max_count or max_size are invalid. + +Accepts non-negative integer values, or strings containing the lexical representation of such values. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028346 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 08c76c7096a2e8c37084c03220ff2b7e6777be91) +--- + qpid/cpp/src/qpid/broker/QueuePolicy.cpp | 25 +++++++++++++++++++------ + qpid/cpp/src/qpid/broker/QueuePolicy.h | 2 +- + 2 files changed, 20 insertions(+), 7 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/QueuePolicy.cpp b/qpid/cpp/src/qpid/broker/QueuePolicy.cpp +index c8feaa8..2502931 100644 +--- a/qpid/cpp/src/qpid/broker/QueuePolicy.cpp ++++ b/qpid/cpp/src/qpid/broker/QueuePolicy.cpp +@@ -24,6 +24,7 @@ + #include "qpid/framing/FieldValue.h" + #include "qpid/framing/reply_exceptions.h" + #include "qpid/log/Statement.h" ++#include + + using namespace qpid::broker; + using namespace qpid::framing; +@@ -115,12 +116,24 @@ void QueuePolicy::update(FieldTable& settings) + settings.setString(typeKey, type); + } + +- +-int QueuePolicy::getInt(const FieldTable& settings, const std::string& key, int defaultValue) ++uint32_t QueuePolicy::getCapacity(const FieldTable& settings, const std::string& key, uint32_t defaultValue) + { + FieldTable::ValuePtr v = settings.get(key); +- if (v && v->convertsTo()) return v->get(); +- else return defaultValue; ++ ++ int32_t result = 0; ++ ++ if (!v) return defaultValue; ++ if (v->convertsTo()) { ++ result = v->get(); ++ if (result >= 0) return result; ++ } ++ else { ++ string s(v->get()); // I assume anything can be converted to a string ++ std::istringstream convert(s); ++ if (convert >> result && result >= 0) return result; ++ } ++ ++ throw InvalidArgumentException(QPID_MSG("Cannot convert " << key << " to unsigned integer")); + } + + std::string QueuePolicy::getType(const FieldTable& settings) +@@ -276,8 +289,8 @@ std::auto_ptr QueuePolicy::createQueuePolicy(const qpid::framing::F + + std::auto_ptr QueuePolicy::createQueuePolicy(const std::string& name, const qpid::framing::FieldTable& settings) + { +- uint32_t maxCount = getInt(settings, maxCountKey, 0); +- uint32_t maxSize = getInt(settings, maxSizeKey, defaultMaxSize); ++ uint32_t maxCount = getCapacity(settings, maxCountKey, 0); ++ uint32_t maxSize = getCapacity(settings, maxSizeKey, defaultMaxSize); + if (maxCount || maxSize) { + return createQueuePolicy(name, maxCount, maxSize, getType(settings)); + } else { +diff --git a/qpid/cpp/src/qpid/broker/QueuePolicy.h b/qpid/cpp/src/qpid/broker/QueuePolicy.h +index b2937e9..8b27440 100644 +--- a/qpid/cpp/src/qpid/broker/QueuePolicy.h ++++ b/qpid/cpp/src/qpid/broker/QueuePolicy.h +@@ -44,7 +44,7 @@ class QueuePolicy + uint64_t size; + bool policyExceeded; + +- static int getInt(const qpid::framing::FieldTable& settings, const std::string& key, int defaultValue); ++ static uint32_t getCapacity(const qpid::framing::FieldTable& settings, const std::string& key, uint32_t defaultValue); + + public: + typedef std::deque Messages; +-- +1.5.5.6 + +From 61e556c1da87ef78b40972765aa715be84127f81 Mon Sep 17 00:00:00 2001 +From: Jonathan Robie +Date: Fri, 29 Oct 2010 17:26:05 +0000 +Subject: [PATCH] Bug 647860 - Incorrect detection of data types in address parameters - C++ client + +Corrects AddressParser to use typed simple values. + +Adds Variant::fromString(). + +Resolves QPID-2896 and QPID-2908. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028860 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 74e590f331c6a40de705db111fbe900d4c0ae8a0) +--- + qpid/cpp/include/qpid/types/Variant.h | 2 + + qpid/cpp/src/qpid/messaging/AddressParser.cpp | 7 +++-- + qpid/cpp/src/qpid/types/Variant.cpp | 37 +++++++++++++++++++++++++ + qpid/cpp/src/tests/Address.cpp | 23 ++++++++++----- + 4 files changed, 58 insertions(+), 11 deletions(-) + +diff --git a/qpid/cpp/include/qpid/types/Variant.h b/qpid/cpp/include/qpid/types/Variant.h +index 7b43422..993f1eb 100644 +--- a/qpid/cpp/include/qpid/types/Variant.h ++++ b/qpid/cpp/include/qpid/types/Variant.h +@@ -113,6 +113,8 @@ class Variant + QPID_TYPES_EXTERN Variant& operator=(const Variant&); + QPID_TYPES_EXTERN Variant& operator=(const Uuid&); + ++ QPID_TYPES_EXTERN Variant& fromString(const std::string&); ++ + QPID_TYPES_EXTERN bool asBool() const; + QPID_TYPES_EXTERN uint8_t asUint8() const; + QPID_TYPES_EXTERN uint16_t asUint16() const; +diff --git a/qpid/cpp/src/qpid/messaging/AddressParser.cpp b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +index 3a9de6c..4beeccb 100644 +--- a/qpid/cpp/src/qpid/messaging/AddressParser.cpp ++++ b/qpid/cpp/src/qpid/messaging/AddressParser.cpp +@@ -199,13 +199,14 @@ bool AddressParser::readQuotedValue(Variant& value) + return false; + } + } +- +-bool AddressParser::readSimpleValue(Variant& value) ++ ++bool AddressParser::readSimpleValue(Variant& value) + { + std::string s; + if (readWord(s)) { +- value = s; ++ value.fromString(s); + return true; ++ + } else { + return false; + } +diff --git a/qpid/cpp/src/qpid/types/Variant.cpp b/qpid/cpp/src/qpid/types/Variant.cpp +index bf255b4..ea4f5ff 100644 +--- a/qpid/cpp/src/qpid/types/Variant.cpp ++++ b/qpid/cpp/src/qpid/types/Variant.cpp +@@ -23,6 +23,7 @@ + #include "qpid/log/Statement.h" + #include + #include ++#include + #include + #include + #include +@@ -766,6 +767,42 @@ Variant& Variant::operator=(const Variant& v) + return *this; + } + ++ ++template ++bool from_string(T& t, const std::string& s) ++{ ++ char c; // Make sure there are no extra characters ++ ++ std::istringstream iss(s); ++ return !(iss >> t).fail() && (iss>>c).fail(); ++} ++ ++Variant& Variant::fromString(const std::string& s) ++{ ++ double d; ++ int i; ++ ++ if (from_string(i, s)) { ++ return operator=(i); ++ } ++ else if (from_string(d, s)) { ++ return operator=(d); ++ } ++ else { ++ std::string upper(boost::to_upper_copy(s)); ++ if (upper == "TRUE") { ++ return operator=(true); ++ } ++ else if (upper == "FALSE") { ++ return operator=(false); ++ } ++ else { ++ return operator=(s); ++ } ++ } ++} ++ ++ + VariantType Variant::getType() const { return impl ? impl->getType() : VAR_VOID; } + bool Variant::isVoid() const { return getType() == VAR_VOID; } + bool Variant::asBool() const { return impl && impl->asBool(); } +diff --git a/qpid/cpp/src/tests/Address.cpp b/qpid/cpp/src/tests/Address.cpp +index 32d14bb..bdfb47c 100644 +--- a/qpid/cpp/src/tests/Address.cpp ++++ b/qpid/cpp/src/tests/Address.cpp +@@ -49,8 +49,15 @@ QPID_AUTO_TEST_CASE(testParseOptions) + { + Address address("my-topic; {a:bc, x:101, y:'a string'}"); + BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName()); ++ ++ BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"]); ++ BOOST_CHECK_EQUAL(101, static_cast(address.getOptions()["x"])); ++ BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"]); ++ ++ // Test asString() and asInt64() once here ++ + BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"].asString()); +- BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); ++ BOOST_CHECK_EQUAL(static_cast(101), address.getOptions()["x"].asInt64()); + BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"].asString()); + } + +@@ -59,19 +66,19 @@ QPID_AUTO_TEST_CASE(testParseSubjectAndOptions) + Address address("my-topic/my-subject; {a:bc, x:101, y:'a string'}"); + BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName()); + BOOST_CHECK_EQUAL(std::string("my-subject"), address.getSubject()); +- BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"].asString()); +- BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); +- BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"].asString()); ++ ++ BOOST_CHECK_EQUAL(std::string("bc"), address.getOptions()["a"]); ++ BOOST_CHECK_EQUAL(101, static_cast(address.getOptions()["x"])); ++ BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"]); + } + + QPID_AUTO_TEST_CASE(testParseNestedOptions) + { + Address address("my-topic; {a:{p:202, q:'another string'}, x:101, y:'a string'}"); + BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName()); +- BOOST_CHECK_EQUAL((uint16_t) 202, address.getOptions()["a"].asMap()["p"].asInt64()); +- BOOST_CHECK_EQUAL(std::string("another string"), address.getOptions()["a"].asMap()["q"].asString()); +- BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); +- BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"].asString()); ++ BOOST_CHECK_EQUAL(202, static_cast(address.getOptions()["a"].asMap()["p"])); ++ BOOST_CHECK_EQUAL(std::string("another string"), address.getOptions()["a"].asMap()["q"]); ++ BOOST_CHECK_EQUAL(std::string("a string"), address.getOptions()["y"]); + } + + QPID_AUTO_TEST_CASE(testParseOptionsWithList) +-- +1.5.5.6 + +From dfd6327d883d7d51e8914a5198ac06e495fea9e5 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Fri, 5 Nov 2010 18:51:00 +0000 +Subject: [PATCH] Bug 649733 - Unable to link to Handle.h methods in C++ applications on Windows + +QPID-2926 Simple example code does not link under Windows + +This commit provides a windows-only Handle instantiator for the currently known Handle consumers. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1031711 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a4e15268a8ddc544b7773e46847a466a799382a6) +--- + qpid/cpp/src/CMakeLists.txt | 8 +++ + qpid/cpp/src/qpid/messaging/HandleInstantiator.cpp | 64 ++++++++++++++++++++ + 2 files changed, 72 insertions(+), 0 deletions(-) + create mode 100644 qpid/cpp/src/qpid/messaging/HandleInstantiator.cpp + +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index f2c33b2..651f0f1 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -644,6 +644,10 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows) + set (qpidd_platform_SOURCES + windows/QpiddBroker.cpp + ) ++ ++ set (qpidmessaging_platform_SOURCES ++ qpid/messaging/HandleInstantiator.cpp ++ ) + + else (CMAKE_SYSTEM_NAME STREQUAL Windows) + +@@ -710,6 +714,9 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows) + set (qpidd_platform_SOURCES + posix/QpiddBroker.cpp + ) ++ ++ set (qpidmessaging_platform_SOURCES ++ ) + endif (CMAKE_SYSTEM_NAME STREQUAL Windows) + + set (qpidcommon_SOURCES +@@ -858,6 +865,7 @@ install_pdb (qpidclient ${QPID_COMPONENT_CLIENT}) + + + set (qpidmessaging_SOURCES ++ ${qpidmessaging_platform_SOURCES} + qpid/messaging/Address.cpp + qpid/messaging/AddressParser.h + qpid/messaging/AddressParser.cpp +diff --git a/qpid/cpp/src/qpid/messaging/HandleInstantiator.cpp b/qpid/cpp/src/qpid/messaging/HandleInstantiator.cpp +new file mode 100644 +index 0000000..c9a7680 +--- /dev/null ++++ b/qpid/cpp/src/qpid/messaging/HandleInstantiator.cpp +@@ -0,0 +1,64 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++#include "qpid/messaging/Connection.h" ++#include "qpid/messaging/Receiver.h" ++#include "qpid/messaging/Sender.h" ++#include "qpid/messaging/Session.h" ++ ++namespace qpid { ++namespace messaging { ++ ++using namespace qpid::types; ++ ++void HandleInstantiatorDoNotCall(void) ++{ ++ // This function exists to instantiate various template Handle ++ // bool functions. The instances are then available to ++ // the qpidmessaging DLL and subsequently exported. ++ // This function must not be exported nor called called. ++ // For further information refer to ++ // https://issues.apache.org/jira/browse/QPID-2926 ++ ++ Connection connection; ++ if (connection.isValid()) connection.close(); ++ if (connection.isNull() ) connection.close(); ++ if (connection ) connection.close(); ++ if (!connection ) connection.close(); ++ ++ Receiver receiver; ++ if (receiver.isValid()) receiver.close(); ++ if (receiver.isNull() ) receiver.close(); ++ if (receiver ) receiver.close(); ++ if (!receiver ) receiver.close(); ++ ++ Sender sender; ++ if (sender.isValid()) sender.close(); ++ if (sender.isNull() ) sender.close(); ++ if (sender ) sender.close(); ++ if (!sender ) sender.close(); ++ ++ Session session; ++ if (session.isValid()) session.close(); ++ if (session.isNull() ) session.close(); ++ if (session ) session.close(); ++ if (!session ) session.close(); ++} ++}} // namespace qpid::messaging +-- +1.5.5.6 + +From 7ad27ed533602fa9bc9b3f29be6c99fa27150f4c Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 9 Nov 2010 21:15:03 +0000 +Subject: [PATCH] Bug 649822 - Need mechanism to limit access to QMF Agent methods + +QPID-2934 Feature to pass the authenticated userId to QMF agent method handlers for authorization + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1033232 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 42d18e5791c0f79588d5264f2b0c96ee0a39c122) +--- + qpid/cpp/examples/qmf-agent/example.cpp | 12 ++++++++- + qpid/cpp/examples/qmf-agent/schema.xml | 3 ++ + qpid/cpp/include/qpid/management/Manageable.h | 5 ++++ + .../cpp/include/qpid/management/ManagementObject.h | 5 ++- + qpid/cpp/managementgen/qmfgen/schema.py | 26 +++++++++++++------ + qpid/cpp/managementgen/qmfgen/templates/Class.h | 6 +++- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 18 ++++++++----- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 9 ++++--- + qpid/cpp/src/qpid/management/Manageable.cpp | 5 ++++ + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 8 +++--- + 10 files changed, 69 insertions(+), 28 deletions(-) + +diff --git a/qpid/cpp/examples/qmf-agent/example.cpp b/qpid/cpp/examples/qmf-agent/example.cpp +index b432c2a..f9be4f0 100644 +--- a/qpid/cpp/examples/qmf-agent/example.cpp ++++ b/qpid/cpp/examples/qmf-agent/example.cpp +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include "qpid/types/Variant.h" + #include "qmf/org/apache/qpid/agent/example/Parent.h" + #include "qmf/org/apache/qpid/agent/example/Child.h" +@@ -72,7 +73,8 @@ public: + { return mgmtObject; } + + void doLoop(); +- status_t ManagementMethod (uint32_t methodId, Args& args, string& text); ++ bool AuthorizeMethod(uint32_t methodId, Args& args, const string& userId); ++ status_t ManagementMethod(uint32_t methodId, Args& args, string& text); + }; + + class ChildClass : public Manageable +@@ -137,6 +139,14 @@ void CoreClass::doLoop() + } + } + ++ ++bool CoreClass::AuthorizeMethod(uint32_t methodId, Args& args, const string& userId) ++{ ++ QPID_LOG(trace, "AuthorizeMethod for methodId=" << methodId << " userId=" << userId); ++ return methodId != _qmf::Parent::METHOD_AUTH_FAIL; ++} ++ ++ + Manageable::status_t CoreClass::ManagementMethod(uint32_t methodId, Args& args, string& /*text*/) + { + Mutex::ScopedLock _lock(vectorLock); +diff --git a/qpid/cpp/examples/qmf-agent/schema.xml b/qpid/cpp/examples/qmf-agent/schema.xml +index ad85101..730dd4b 100644 +--- a/qpid/cpp/examples/qmf-agent/schema.xml ++++ b/qpid/cpp/examples/qmf-agent/schema.xml +@@ -45,6 +45,9 @@ + + + ++ ++ ++ + + + +diff --git a/qpid/cpp/include/qpid/management/Manageable.h b/qpid/cpp/include/qpid/management/Manageable.h +index 7a72cc1..1e5cd8b 100644 +--- a/qpid/cpp/include/qpid/management/Manageable.h ++++ b/qpid/cpp/include/qpid/management/Manageable.h +@@ -63,6 +63,11 @@ class QPID_COMMON_EXTERN Manageable + // method being called and must be down-cast to the appropriate sub class + // before use. + virtual status_t ManagementMethod(uint32_t methodId, Args& args, std::string& text); ++ ++ // This optional method can be overridden to allow the agent application to ++ // authorize method invocations. Return true iff the authenticated user identified ++ // in userId us authorized to execute the method. ++ virtual bool AuthorizeMethod(uint32_t methodId, Args& args, const std::string& userId); + }; + + inline Manageable::~Manageable(void) {} +diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h +index 59a7f00..dec5a63 100644 +--- a/qpid/cpp/include/qpid/management/ManagementObject.h ++++ b/qpid/cpp/include/qpid/management/ManagementObject.h +@@ -175,7 +175,8 @@ protected: + virtual void mapDecodeValues(const types::Variant::Map& map) = 0; + virtual void doMethod(std::string& methodName, + const types::Variant::Map& inMap, +- types::Variant::Map& outMap) = 0; ++ types::Variant::Map& outMap, ++ const std::string& userId) = 0; + QPID_COMMON_EXTERN void writeTimestamps(types::Variant::Map& map) const; + QPID_COMMON_EXTERN void readTimestamps(const types::Variant::Map& buf); + +@@ -187,7 +188,7 @@ protected: + virtual void readProperties(const std::string&) {} + virtual void writeProperties(std::string&) const {} + virtual void writeStatistics(std::string&, bool = false) {} +- virtual void doMethod(std::string&, const std::string&, std::string&) {} ++ virtual void doMethod(std::string&, const std::string&, std::string&, const std::string&) {} + + QPID_COMMON_EXTERN virtual void setReference(ObjectId objectId); + +diff --git a/qpid/cpp/managementgen/qmfgen/schema.py b/qpid/cpp/managementgen/qmfgen/schema.py +index ec0ccc3..c5f49ec 100755 +--- a/qpid/cpp/managementgen/qmfgen/schema.py ++++ b/qpid/cpp/managementgen/qmfgen/schema.py +@@ -1228,12 +1228,12 @@ class SchemaClass: + inArgCount = inArgCount + 1 + + if methodCount == 0: +- stream.write ("string&, const string&, string& outStr") ++ stream.write ("string&, const string&, string& outStr, const string&") + else: + if inArgCount == 0: +- stream.write ("string& methodName, const string&, string& outStr") ++ stream.write ("string& methodName, const string&, string& outStr, const string& userId") + else: +- stream.write ("string& methodName, const string& inStr, string& outStr") ++ stream.write ("string& methodName, const string& inStr, string& outStr, const string& userId") + + + def genDoMapMethodArgs (self, stream, variables): +@@ -1248,16 +1248,16 @@ class SchemaClass: + if methodCount == 0: + stream.write ("string&," + + " const ::qpid::types::Variant::Map&," + +- " ::qpid::types::Variant::Map& outMap") ++ " ::qpid::types::Variant::Map& outMap, const string&") + else: + if inArgCount == 0: + stream.write ("string& methodName," + + " const ::qpid::types::Variant::Map&," + +- " ::qpid::types::Variant::Map& outMap") ++ " ::qpid::types::Variant::Map& outMap, const string& userId") + else: + stream.write ("string& methodName," + + " const ::qpid::types::Variant::Map& inMap," + +- " ::qpid::types::Variant::Map& outMap") ++ " ::qpid::types::Variant::Map& outMap, const string& userId") + + def genHiLoStatResets (self, stream, variables): + for inst in self.statistics: +@@ -1365,8 +1365,13 @@ class SchemaClass: + arg.dir.lower () + "_" +\ + arg.name, "inBuf") + ";\n") + +- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ ++ stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\ ++ method.getName().upper() + ", ioArgs, userId);\n") ++ stream.write (" if (allow)\n") ++ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ + method.getName().upper() + ", ioArgs, text);\n") ++ stream.write (" else\n") ++ stream.write (" status = Manageable::STATUS_FORBIDDEN;\n") + stream.write (" outBuf.putLong (status);\n") + stream.write (" outBuf.putMediumString(::qpid::management::Manageable::StatusText (status, text));\n") + for arg in method.args: +@@ -1400,8 +1405,13 @@ class SchemaClass: + arg.name, + "inMap") + +- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ ++ stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\ ++ method.getName().upper() + ", ioArgs, userId);\n") ++ stream.write (" if (allow)\n") ++ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ + method.getName().upper() + ", ioArgs, text);\n") ++ stream.write (" else\n") ++ stream.write (" status = Manageable::STATUS_FORBIDDEN;\n") + stream.write (" outMap[\"_status_code\"] = (uint32_t) status;\n") + stream.write (" outMap[\"_status_text\"] = ::qpid::management::Manageable::StatusText(status, text);\n") + for arg in method.args: +diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.h b/qpid/cpp/managementgen/qmfgen/templates/Class.h +index cdb31c4..4bcd423 100644 +--- a/qpid/cpp/managementgen/qmfgen/templates/Class.h ++++ b/qpid/cpp/managementgen/qmfgen/templates/Class.h +@@ -79,7 +79,8 @@ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject + void mapDecodeValues(const ::qpid::types::Variant::Map& map); + void doMethod(std::string& methodName, + const ::qpid::types::Variant::Map& inMap, +- ::qpid::types::Variant::Map& outMap); ++ ::qpid::types::Variant::Map& outMap, ++ const std::string& userId); + std::string getKey() const; + /*MGEN:IF(Root.GenQMFv1)*/ + uint32_t writePropertiesSize() const; +@@ -88,7 +89,8 @@ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject + void writeStatistics(std::string& buf, bool skipHeaders = false); + void doMethod(std::string& methodName, + const std::string& inBuf, +- std::string& outBuf); ++ std::string& outBuf, ++ const std::string& userId); + /*MGEN:ENDIF*/ + + writeSchemaCall_t getWriteSchemaCall() { return writeSchema; } +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index fadac65..ef6aff2 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -344,7 +344,7 @@ uint32_t ManagementAgentImpl::pollCallbacks(uint32_t callLimit) + methodQueue.pop_front(); + { + sys::Mutex::ScopedUnlock unlock(agentLock); +- invokeMethodRequest(item->body, item->cid, item->replyTo); ++ invokeMethodRequest(item->body, item->cid, item->replyTo, item->userId); + delete item; + } + } +@@ -518,7 +518,7 @@ void ManagementAgentImpl::handleConsoleAddedIndication() + QPID_LOG(trace, "RCVD ConsoleAddedInd"); + } + +-void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& cid, const string& replyTo) ++void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& cid, const string& replyTo, const string& userId) + { + string methodName; + bool failed = false; +@@ -565,7 +565,7 @@ void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& + Manageable::STATUS_UNKNOWN_OBJECT); + failed = true; + } else { +- oPtr->doMethod(methodName, inArgs, callMap); ++ oPtr->doMethod(methodName, inArgs, callMap, userId); + + if (callMap["_status_code"].asUint32() == 0) { + outMap["_arguments"] = Variant::Map(); +@@ -782,12 +782,12 @@ void ManagementAgentImpl::handleLocateRequest(const string&, const string& cid, + } + } + +-void ManagementAgentImpl::handleMethodRequest(const string& body, const string& cid, const string& replyTo) ++void ManagementAgentImpl::handleMethodRequest(const string& body, const string& cid, const string& replyTo, const string& userId) + { + if (extThread) { + sys::Mutex::ScopedLock lock(agentLock); + +- methodQueue.push_back(new QueuedMethod(cid, replyTo, body)); ++ methodQueue.push_back(new QueuedMethod(cid, replyTo, body, userId)); + if (pipeHandle != 0) { + pipeHandle->write("X", 1); + } else if (notifyable != 0) { +@@ -806,7 +806,7 @@ void ManagementAgentImpl::handleMethodRequest(const string& body, const string& + inCallback = false; + } + } else { +- invokeMethodRequest(body, cid, replyTo); ++ invokeMethodRequest(body, cid, replyTo, userId); + } + + QPID_LOG(trace, "RCVD MethodRequest"); +@@ -821,13 +821,17 @@ void ManagementAgentImpl::received(Message& msg) + replyToKey = rt.getRoutingKey(); + } + ++ string userId; ++ if (mp.hasUserId()) ++ userId = mp.getUserId(); ++ + if (mp.hasAppId() && mp.getAppId() == "qmf2") + { + string opcode = mp.getApplicationHeaders().getAsString("qmf.opcode"); + string cid = msg.getMessageProperties().getCorrelationId(); + + if (opcode == "_agent_locate_request") handleLocateRequest(msg.getData(), cid, replyToKey); +- else if (opcode == "_method_request") handleMethodRequest(msg.getData(), cid, replyToKey); ++ else if (opcode == "_method_request") handleMethodRequest(msg.getData(), cid, replyToKey, userId); + else if (opcode == "_query_request") handleGetQuery(msg.getData(), cid, replyToKey); + else { + QPID_LOG(warning, "Support for QMF V2 Opcode [" << opcode << "] TBD!!!"); +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index c572774..40c368c 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -127,12 +127,13 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + }; + + struct QueuedMethod { +- QueuedMethod(const std::string& _cid, const std::string& _reply, const std::string& _body) : +- cid(_cid), replyTo(_reply), body(_body) {} ++ QueuedMethod(const std::string& _cid, const std::string& _reply, const std::string& _body, const std::string& _uid) : ++ cid(_cid), replyTo(_reply), body(_body), userId(_uid) {} + + std::string cid; + std::string replyTo; + std::string body; ++ std::string userId; + }; + + typedef std::deque MethodQueue; +@@ -277,11 +278,11 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + void handlePackageRequest (qpid::framing::Buffer& inBuffer); + void handleClassQuery (qpid::framing::Buffer& inBuffer); + void handleSchemaRequest (qpid::framing::Buffer& inBuffer, uint32_t sequence, const std::string& replyTo); +- void invokeMethodRequest (const std::string& body, const std::string& cid, const std::string& replyTo); ++ void invokeMethodRequest (const std::string& body, const std::string& cid, const std::string& replyTo, const std::string& userId); + + void handleGetQuery (const std::string& body, const std::string& cid, const std::string& replyTo); + void handleLocateRequest (const std::string& body, const std::string& sequence, const std::string& replyTo); +- void handleMethodRequest (const std::string& body, const std::string& sequence, const std::string& replyTo); ++ void handleMethodRequest (const std::string& body, const std::string& sequence, const std::string& replyTo, const std::string& userId); + void handleConsoleAddedIndication(); + }; + +diff --git a/qpid/cpp/src/qpid/management/Manageable.cpp b/qpid/cpp/src/qpid/management/Manageable.cpp +index a3593e7..651215f 100644 +--- a/qpid/cpp/src/qpid/management/Manageable.cpp ++++ b/qpid/cpp/src/qpid/management/Manageable.cpp +@@ -46,3 +46,8 @@ Manageable::status_t Manageable::ManagementMethod (uint32_t, Args&, std::string& + return STATUS_UNKNOWN_METHOD; + } + ++bool Manageable::AuthorizeMethod(uint32_t, Args&, const std::string&) ++{ ++ return true; ++} ++ +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 1d08585..ac09aae 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -1067,8 +1067,8 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + return; + } + ++ string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + if (acl != 0) { +- string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + map params; + params[acl::PROP_SCHEMAPACKAGE] = packageName; + params[acl::PROP_SCHEMACLASS] = className; +@@ -1099,7 +1099,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + outBuffer.record(); + sys::Mutex::ScopedUnlock u(userLock); + string outBuf; +- iter->second->doMethod(methodName, inArgs, outBuf); ++ iter->second->doMethod(methodName, inArgs, outBuf, userId); + outBuffer.putRawData(outBuf); + } catch(exception& e) { + outBuffer.restore(); +@@ -1177,8 +1177,8 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + return; + } + ++ string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + if (acl != 0) { +- string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + map params; + params[acl::PROP_SCHEMAPACKAGE] = iter->second->getPackageName(); + params[acl::PROP_SCHEMACLASS] = iter->second->getClassName(); +@@ -1198,7 +1198,7 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + + try { + sys::Mutex::ScopedUnlock u(userLock); +- iter->second->doMethod(methodName, inArgs, callMap); ++ iter->second->doMethod(methodName, inArgs, callMap, userId); + errorCode = callMap["_status_code"].asUint32(); + if (errorCode == 0) { + outMap["_arguments"] = Variant::Map(); +-- +1.5.5.6 + +From 487eb3ce08757b05de3e2fdf5901c5bed2dfb480 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 9 Nov 2010 20:16:15 -0500 +Subject: [PATCH] Revert "Bug 649822 - Need mechanism to limit access to QMF Agent methods" + +This reverts commit 7ad27ed533602fa9bc9b3f29be6c99fa27150f4c. +--- + qpid/cpp/examples/qmf-agent/example.cpp | 12 +-------- + qpid/cpp/examples/qmf-agent/schema.xml | 3 -- + qpid/cpp/include/qpid/management/Manageable.h | 5 ---- + .../cpp/include/qpid/management/ManagementObject.h | 5 +-- + qpid/cpp/managementgen/qmfgen/schema.py | 26 ++++++------------- + qpid/cpp/managementgen/qmfgen/templates/Class.h | 6 +--- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 18 +++++-------- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 9 +++---- + qpid/cpp/src/qpid/management/Manageable.cpp | 5 ---- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 8 +++--- + 10 files changed, 28 insertions(+), 69 deletions(-) + +diff --git a/qpid/cpp/examples/qmf-agent/example.cpp b/qpid/cpp/examples/qmf-agent/example.cpp +index f9be4f0..b432c2a 100644 +--- a/qpid/cpp/examples/qmf-agent/example.cpp ++++ b/qpid/cpp/examples/qmf-agent/example.cpp +@@ -24,7 +24,6 @@ + #include + #include + #include +-#include + #include "qpid/types/Variant.h" + #include "qmf/org/apache/qpid/agent/example/Parent.h" + #include "qmf/org/apache/qpid/agent/example/Child.h" +@@ -73,8 +72,7 @@ public: + { return mgmtObject; } + + void doLoop(); +- bool AuthorizeMethod(uint32_t methodId, Args& args, const string& userId); +- status_t ManagementMethod(uint32_t methodId, Args& args, string& text); ++ status_t ManagementMethod (uint32_t methodId, Args& args, string& text); + }; + + class ChildClass : public Manageable +@@ -139,14 +137,6 @@ void CoreClass::doLoop() + } + } + +- +-bool CoreClass::AuthorizeMethod(uint32_t methodId, Args& args, const string& userId) +-{ +- QPID_LOG(trace, "AuthorizeMethod for methodId=" << methodId << " userId=" << userId); +- return methodId != _qmf::Parent::METHOD_AUTH_FAIL; +-} +- +- + Manageable::status_t CoreClass::ManagementMethod(uint32_t methodId, Args& args, string& /*text*/) + { + Mutex::ScopedLock _lock(vectorLock); +diff --git a/qpid/cpp/examples/qmf-agent/schema.xml b/qpid/cpp/examples/qmf-agent/schema.xml +index 730dd4b..ad85101 100644 +--- a/qpid/cpp/examples/qmf-agent/schema.xml ++++ b/qpid/cpp/examples/qmf-agent/schema.xml +@@ -45,9 +45,6 @@ + + + +- +- +- + + + +diff --git a/qpid/cpp/include/qpid/management/Manageable.h b/qpid/cpp/include/qpid/management/Manageable.h +index 1e5cd8b..7a72cc1 100644 +--- a/qpid/cpp/include/qpid/management/Manageable.h ++++ b/qpid/cpp/include/qpid/management/Manageable.h +@@ -63,11 +63,6 @@ class QPID_COMMON_EXTERN Manageable + // method being called and must be down-cast to the appropriate sub class + // before use. + virtual status_t ManagementMethod(uint32_t methodId, Args& args, std::string& text); +- +- // This optional method can be overridden to allow the agent application to +- // authorize method invocations. Return true iff the authenticated user identified +- // in userId us authorized to execute the method. +- virtual bool AuthorizeMethod(uint32_t methodId, Args& args, const std::string& userId); + }; + + inline Manageable::~Manageable(void) {} +diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h +index dec5a63..59a7f00 100644 +--- a/qpid/cpp/include/qpid/management/ManagementObject.h ++++ b/qpid/cpp/include/qpid/management/ManagementObject.h +@@ -175,8 +175,7 @@ protected: + virtual void mapDecodeValues(const types::Variant::Map& map) = 0; + virtual void doMethod(std::string& methodName, + const types::Variant::Map& inMap, +- types::Variant::Map& outMap, +- const std::string& userId) = 0; ++ types::Variant::Map& outMap) = 0; + QPID_COMMON_EXTERN void writeTimestamps(types::Variant::Map& map) const; + QPID_COMMON_EXTERN void readTimestamps(const types::Variant::Map& buf); + +@@ -188,7 +187,7 @@ protected: + virtual void readProperties(const std::string&) {} + virtual void writeProperties(std::string&) const {} + virtual void writeStatistics(std::string&, bool = false) {} +- virtual void doMethod(std::string&, const std::string&, std::string&, const std::string&) {} ++ virtual void doMethod(std::string&, const std::string&, std::string&) {} + + QPID_COMMON_EXTERN virtual void setReference(ObjectId objectId); + +diff --git a/qpid/cpp/managementgen/qmfgen/schema.py b/qpid/cpp/managementgen/qmfgen/schema.py +index c5f49ec..ec0ccc3 100755 +--- a/qpid/cpp/managementgen/qmfgen/schema.py ++++ b/qpid/cpp/managementgen/qmfgen/schema.py +@@ -1228,12 +1228,12 @@ class SchemaClass: + inArgCount = inArgCount + 1 + + if methodCount == 0: +- stream.write ("string&, const string&, string& outStr, const string&") ++ stream.write ("string&, const string&, string& outStr") + else: + if inArgCount == 0: +- stream.write ("string& methodName, const string&, string& outStr, const string& userId") ++ stream.write ("string& methodName, const string&, string& outStr") + else: +- stream.write ("string& methodName, const string& inStr, string& outStr, const string& userId") ++ stream.write ("string& methodName, const string& inStr, string& outStr") + + + def genDoMapMethodArgs (self, stream, variables): +@@ -1248,16 +1248,16 @@ class SchemaClass: + if methodCount == 0: + stream.write ("string&," + + " const ::qpid::types::Variant::Map&," + +- " ::qpid::types::Variant::Map& outMap, const string&") ++ " ::qpid::types::Variant::Map& outMap") + else: + if inArgCount == 0: + stream.write ("string& methodName," + + " const ::qpid::types::Variant::Map&," + +- " ::qpid::types::Variant::Map& outMap, const string& userId") ++ " ::qpid::types::Variant::Map& outMap") + else: + stream.write ("string& methodName," + + " const ::qpid::types::Variant::Map& inMap," + +- " ::qpid::types::Variant::Map& outMap, const string& userId") ++ " ::qpid::types::Variant::Map& outMap") + + def genHiLoStatResets (self, stream, variables): + for inst in self.statistics: +@@ -1365,13 +1365,8 @@ class SchemaClass: + arg.dir.lower () + "_" +\ + arg.name, "inBuf") + ";\n") + +- stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\ +- method.getName().upper() + ", ioArgs, userId);\n") +- stream.write (" if (allow)\n") +- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ ++ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ + method.getName().upper() + ", ioArgs, text);\n") +- stream.write (" else\n") +- stream.write (" status = Manageable::STATUS_FORBIDDEN;\n") + stream.write (" outBuf.putLong (status);\n") + stream.write (" outBuf.putMediumString(::qpid::management::Manageable::StatusText (status, text));\n") + for arg in method.args: +@@ -1405,13 +1400,8 @@ class SchemaClass: + arg.name, + "inMap") + +- stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\ +- method.getName().upper() + ", ioArgs, userId);\n") +- stream.write (" if (allow)\n") +- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ ++ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ + method.getName().upper() + ", ioArgs, text);\n") +- stream.write (" else\n") +- stream.write (" status = Manageable::STATUS_FORBIDDEN;\n") + stream.write (" outMap[\"_status_code\"] = (uint32_t) status;\n") + stream.write (" outMap[\"_status_text\"] = ::qpid::management::Manageable::StatusText(status, text);\n") + for arg in method.args: +diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.h b/qpid/cpp/managementgen/qmfgen/templates/Class.h +index 4bcd423..cdb31c4 100644 +--- a/qpid/cpp/managementgen/qmfgen/templates/Class.h ++++ b/qpid/cpp/managementgen/qmfgen/templates/Class.h +@@ -79,8 +79,7 @@ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject + void mapDecodeValues(const ::qpid::types::Variant::Map& map); + void doMethod(std::string& methodName, + const ::qpid::types::Variant::Map& inMap, +- ::qpid::types::Variant::Map& outMap, +- const std::string& userId); ++ ::qpid::types::Variant::Map& outMap); + std::string getKey() const; + /*MGEN:IF(Root.GenQMFv1)*/ + uint32_t writePropertiesSize() const; +@@ -89,8 +88,7 @@ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject + void writeStatistics(std::string& buf, bool skipHeaders = false); + void doMethod(std::string& methodName, + const std::string& inBuf, +- std::string& outBuf, +- const std::string& userId); ++ std::string& outBuf); + /*MGEN:ENDIF*/ + + writeSchemaCall_t getWriteSchemaCall() { return writeSchema; } +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index ef6aff2..fadac65 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -344,7 +344,7 @@ uint32_t ManagementAgentImpl::pollCallbacks(uint32_t callLimit) + methodQueue.pop_front(); + { + sys::Mutex::ScopedUnlock unlock(agentLock); +- invokeMethodRequest(item->body, item->cid, item->replyTo, item->userId); ++ invokeMethodRequest(item->body, item->cid, item->replyTo); + delete item; + } + } +@@ -518,7 +518,7 @@ void ManagementAgentImpl::handleConsoleAddedIndication() + QPID_LOG(trace, "RCVD ConsoleAddedInd"); + } + +-void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& cid, const string& replyTo, const string& userId) ++void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& cid, const string& replyTo) + { + string methodName; + bool failed = false; +@@ -565,7 +565,7 @@ void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& + Manageable::STATUS_UNKNOWN_OBJECT); + failed = true; + } else { +- oPtr->doMethod(methodName, inArgs, callMap, userId); ++ oPtr->doMethod(methodName, inArgs, callMap); + + if (callMap["_status_code"].asUint32() == 0) { + outMap["_arguments"] = Variant::Map(); +@@ -782,12 +782,12 @@ void ManagementAgentImpl::handleLocateRequest(const string&, const string& cid, + } + } + +-void ManagementAgentImpl::handleMethodRequest(const string& body, const string& cid, const string& replyTo, const string& userId) ++void ManagementAgentImpl::handleMethodRequest(const string& body, const string& cid, const string& replyTo) + { + if (extThread) { + sys::Mutex::ScopedLock lock(agentLock); + +- methodQueue.push_back(new QueuedMethod(cid, replyTo, body, userId)); ++ methodQueue.push_back(new QueuedMethod(cid, replyTo, body)); + if (pipeHandle != 0) { + pipeHandle->write("X", 1); + } else if (notifyable != 0) { +@@ -806,7 +806,7 @@ void ManagementAgentImpl::handleMethodRequest(const string& body, const string& + inCallback = false; + } + } else { +- invokeMethodRequest(body, cid, replyTo, userId); ++ invokeMethodRequest(body, cid, replyTo); + } + + QPID_LOG(trace, "RCVD MethodRequest"); +@@ -821,17 +821,13 @@ void ManagementAgentImpl::received(Message& msg) + replyToKey = rt.getRoutingKey(); + } + +- string userId; +- if (mp.hasUserId()) +- userId = mp.getUserId(); +- + if (mp.hasAppId() && mp.getAppId() == "qmf2") + { + string opcode = mp.getApplicationHeaders().getAsString("qmf.opcode"); + string cid = msg.getMessageProperties().getCorrelationId(); + + if (opcode == "_agent_locate_request") handleLocateRequest(msg.getData(), cid, replyToKey); +- else if (opcode == "_method_request") handleMethodRequest(msg.getData(), cid, replyToKey, userId); ++ else if (opcode == "_method_request") handleMethodRequest(msg.getData(), cid, replyToKey); + else if (opcode == "_query_request") handleGetQuery(msg.getData(), cid, replyToKey); + else { + QPID_LOG(warning, "Support for QMF V2 Opcode [" << opcode << "] TBD!!!"); +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index 40c368c..c572774 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -127,13 +127,12 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + }; + + struct QueuedMethod { +- QueuedMethod(const std::string& _cid, const std::string& _reply, const std::string& _body, const std::string& _uid) : +- cid(_cid), replyTo(_reply), body(_body), userId(_uid) {} ++ QueuedMethod(const std::string& _cid, const std::string& _reply, const std::string& _body) : ++ cid(_cid), replyTo(_reply), body(_body) {} + + std::string cid; + std::string replyTo; + std::string body; +- std::string userId; + }; + + typedef std::deque MethodQueue; +@@ -278,11 +277,11 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + void handlePackageRequest (qpid::framing::Buffer& inBuffer); + void handleClassQuery (qpid::framing::Buffer& inBuffer); + void handleSchemaRequest (qpid::framing::Buffer& inBuffer, uint32_t sequence, const std::string& replyTo); +- void invokeMethodRequest (const std::string& body, const std::string& cid, const std::string& replyTo, const std::string& userId); ++ void invokeMethodRequest (const std::string& body, const std::string& cid, const std::string& replyTo); + + void handleGetQuery (const std::string& body, const std::string& cid, const std::string& replyTo); + void handleLocateRequest (const std::string& body, const std::string& sequence, const std::string& replyTo); +- void handleMethodRequest (const std::string& body, const std::string& sequence, const std::string& replyTo, const std::string& userId); ++ void handleMethodRequest (const std::string& body, const std::string& sequence, const std::string& replyTo); + void handleConsoleAddedIndication(); + }; + +diff --git a/qpid/cpp/src/qpid/management/Manageable.cpp b/qpid/cpp/src/qpid/management/Manageable.cpp +index 651215f..a3593e7 100644 +--- a/qpid/cpp/src/qpid/management/Manageable.cpp ++++ b/qpid/cpp/src/qpid/management/Manageable.cpp +@@ -46,8 +46,3 @@ Manageable::status_t Manageable::ManagementMethod (uint32_t, Args&, std::string& + return STATUS_UNKNOWN_METHOD; + } + +-bool Manageable::AuthorizeMethod(uint32_t, Args&, const std::string&) +-{ +- return true; +-} +- +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index ac09aae..1d08585 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -1067,8 +1067,8 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + return; + } + +- string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + if (acl != 0) { ++ string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + map params; + params[acl::PROP_SCHEMAPACKAGE] = packageName; + params[acl::PROP_SCHEMACLASS] = className; +@@ -1099,7 +1099,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + outBuffer.record(); + sys::Mutex::ScopedUnlock u(userLock); + string outBuf; +- iter->second->doMethod(methodName, inArgs, outBuf, userId); ++ iter->second->doMethod(methodName, inArgs, outBuf); + outBuffer.putRawData(outBuf); + } catch(exception& e) { + outBuffer.restore(); +@@ -1177,8 +1177,8 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + return; + } + +- string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + if (acl != 0) { ++ string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + map params; + params[acl::PROP_SCHEMAPACKAGE] = iter->second->getPackageName(); + params[acl::PROP_SCHEMACLASS] = iter->second->getClassName(); +@@ -1198,7 +1198,7 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + + try { + sys::Mutex::ScopedUnlock u(userLock); +- iter->second->doMethod(methodName, inArgs, callMap, userId); ++ iter->second->doMethod(methodName, inArgs, callMap); + errorCode = callMap["_status_code"].asUint32(); + if (errorCode == 0) { + outMap["_arguments"] = Variant::Map(); +-- +1.5.5.6 + +From fbc3f8d906493979ec8777f1836971838ca80f96 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Wed, 10 Nov 2010 16:51:16 +0000 +Subject: [PATCH] Bug 647861 - Further Fix - Incorrect handling of datatypes for numeric queue constraints + +Fix to r1028346: no point in throwing exception after queue has already been created, so just log error and revert to default (do this for floating point values also) + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1033585 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 56571be42e0eaa4d61ffe2e410436dc180d7458b) +--- + qpid/cpp/src/qpid/broker/QueuePolicy.cpp | 16 +++++++++++----- + qpid/cpp/src/tests/QueuePolicyTest.cpp | 18 ++++++++++++++++++ + 2 files changed, 29 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/QueuePolicy.cpp b/qpid/cpp/src/qpid/broker/QueuePolicy.cpp +index 2502931..6ea093c 100644 +--- a/qpid/cpp/src/qpid/broker/QueuePolicy.cpp ++++ b/qpid/cpp/src/qpid/broker/QueuePolicy.cpp +@@ -123,17 +123,23 @@ uint32_t QueuePolicy::getCapacity(const FieldTable& settings, const std::string& + int32_t result = 0; + + if (!v) return defaultValue; +- if (v->convertsTo()) { ++ if (v->getType() == 0x23) { ++ QPID_LOG(debug, "Value for " << key << " specified as float: " << v->get()); ++ } else if (v->getType() == 0x33) { ++ QPID_LOG(debug, "Value for " << key << " specified as double: " << v->get()); ++ } else if (v->convertsTo()) { + result = v->get(); ++ QPID_LOG(debug, "Got integer value for " << key << ": " << result); + if (result >= 0) return result; +- } +- else { +- string s(v->get()); // I assume anything can be converted to a string ++ } else if (v->convertsTo()) { ++ string s(v->get()); ++ QPID_LOG(debug, "Got string value for " << key << ": " << s); + std::istringstream convert(s); + if (convert >> result && result >= 0) return result; + } + +- throw InvalidArgumentException(QPID_MSG("Cannot convert " << key << " to unsigned integer")); ++ QPID_LOG(warning, "Cannot convert " << key << " to unsigned integer, using default (" << defaultValue << ")"); ++ return defaultValue; + } + + std::string QueuePolicy::getType(const FieldTable& settings) +diff --git a/qpid/cpp/src/tests/QueuePolicyTest.cpp b/qpid/cpp/src/tests/QueuePolicyTest.cpp +index 875976d..6d4ed76 100644 +--- a/qpid/cpp/src/tests/QueuePolicyTest.cpp ++++ b/qpid/cpp/src/tests/QueuePolicyTest.cpp +@@ -299,6 +299,24 @@ QPID_AUTO_TEST_CASE(testPolicyFailureOnCommit) + BOOST_CHECK_THROW(f.session.txCommit(), InternalErrorException); + } + ++QPID_AUTO_TEST_CASE(testCapacityConversion) ++{ ++ FieldTable args; ++ args.setString("qpid.max_count", "5"); ++ ++ ProxySessionFixture f; ++ std::string q("q"); ++ f.session.queueDeclare(arg::queue=q, arg::exclusive=true, arg::autoDelete=true, arg::arguments=args); ++ for (int i = 0; i < 5; i++) { ++ f.session.messageTransfer(arg::content=client::Message((boost::format("%1%_%2%") % "Message" % (i+1)).str(), q)); ++ } ++ try { ++ ScopedSuppressLogging sl; // Suppress messages for expected errors. ++ f.session.messageTransfer(arg::content=client::Message("Message_6", q)); ++ BOOST_FAIL("expecting ResourceLimitExceededException."); ++ } catch (const ResourceLimitExceededException&) {} ++} ++ + QPID_AUTO_TEST_SUITE_END() + + }} // namespace qpid::tests +-- +1.5.5.6 + +From b0eb52f5b44e1bf76d3dfa411af5eb0d65b52815 Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Fri, 12 Nov 2010 13:22:31 +0000 +Subject: [PATCH] Bug 652463 - Acknowledged messages are not confirmed + +QPID-2940: always request completions from broker on Session::acknowledge(), and always clean up any pending accept records at that time + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1034393 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +index 800c326..d21907b 100644 +--- a/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp ++++ b/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +@@ -97,7 +97,7 @@ void SessionImpl::acknowledge(bool sync_) + //message may be redelivered; i.e. the application cannot delete + //any state necessary for preventing reprocessing of the message + execute(); +- if (sync_) sync(true); ++ sync(sync_); + } + + void SessionImpl::reject(qpid::messaging::Message& m) +@@ -424,6 +424,8 @@ void SessionImpl::syncImpl(bool block) + { + if (block) session.sync(); + else session.flush(); ++ //cleanup unconfirmed accept records: ++ incoming.pendingAccept(); + } + + void SessionImpl::commitImpl() +-- +1.5.5.6 + +From 231492b0b586054cf58b0102b70d07fb45b39e9d Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Tue, 9 Nov 2010 21:15:03 +0000 +Subject: [PATCH] Re-apply Bug 649822 - Need mechanism to limit access to QMF Agent methods + +QPID-2934 Feature to pass the authenticated userId to QMF agent method handlers for authorization + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1033232 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 42d18e5791c0f79588d5264f2b0c96ee0a39c122) +(cherry picked from commit 7ad27ed533602fa9bc9b3f29be6c99fa27150f4c) +--- + qpid/cpp/examples/qmf-agent/example.cpp | 12 ++++++++- + qpid/cpp/examples/qmf-agent/schema.xml | 3 ++ + qpid/cpp/include/qpid/management/Manageable.h | 5 ++++ + .../cpp/include/qpid/management/ManagementObject.h | 5 ++- + qpid/cpp/managementgen/qmfgen/schema.py | 26 +++++++++++++------ + qpid/cpp/managementgen/qmfgen/templates/Class.h | 6 +++- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 18 ++++++++----- + qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 9 ++++--- + qpid/cpp/src/qpid/management/Manageable.cpp | 5 ++++ + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 8 +++--- + 10 files changed, 69 insertions(+), 28 deletions(-) + +diff --git a/qpid/cpp/examples/qmf-agent/example.cpp b/qpid/cpp/examples/qmf-agent/example.cpp +index b432c2a..f9be4f0 100644 +--- a/qpid/cpp/examples/qmf-agent/example.cpp ++++ b/qpid/cpp/examples/qmf-agent/example.cpp +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include "qpid/types/Variant.h" + #include "qmf/org/apache/qpid/agent/example/Parent.h" + #include "qmf/org/apache/qpid/agent/example/Child.h" +@@ -72,7 +73,8 @@ public: + { return mgmtObject; } + + void doLoop(); +- status_t ManagementMethod (uint32_t methodId, Args& args, string& text); ++ bool AuthorizeMethod(uint32_t methodId, Args& args, const string& userId); ++ status_t ManagementMethod(uint32_t methodId, Args& args, string& text); + }; + + class ChildClass : public Manageable +@@ -137,6 +139,14 @@ void CoreClass::doLoop() + } + } + ++ ++bool CoreClass::AuthorizeMethod(uint32_t methodId, Args& args, const string& userId) ++{ ++ QPID_LOG(trace, "AuthorizeMethod for methodId=" << methodId << " userId=" << userId); ++ return methodId != _qmf::Parent::METHOD_AUTH_FAIL; ++} ++ ++ + Manageable::status_t CoreClass::ManagementMethod(uint32_t methodId, Args& args, string& /*text*/) + { + Mutex::ScopedLock _lock(vectorLock); +diff --git a/qpid/cpp/examples/qmf-agent/schema.xml b/qpid/cpp/examples/qmf-agent/schema.xml +index ad85101..730dd4b 100644 +--- a/qpid/cpp/examples/qmf-agent/schema.xml ++++ b/qpid/cpp/examples/qmf-agent/schema.xml +@@ -45,6 +45,9 @@ + + + ++ ++ ++ + + + +diff --git a/qpid/cpp/include/qpid/management/Manageable.h b/qpid/cpp/include/qpid/management/Manageable.h +index 7a72cc1..1e5cd8b 100644 +--- a/qpid/cpp/include/qpid/management/Manageable.h ++++ b/qpid/cpp/include/qpid/management/Manageable.h +@@ -63,6 +63,11 @@ class QPID_COMMON_EXTERN Manageable + // method being called and must be down-cast to the appropriate sub class + // before use. + virtual status_t ManagementMethod(uint32_t methodId, Args& args, std::string& text); ++ ++ // This optional method can be overridden to allow the agent application to ++ // authorize method invocations. Return true iff the authenticated user identified ++ // in userId us authorized to execute the method. ++ virtual bool AuthorizeMethod(uint32_t methodId, Args& args, const std::string& userId); + }; + + inline Manageable::~Manageable(void) {} +diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h +index 59a7f00..dec5a63 100644 +--- a/qpid/cpp/include/qpid/management/ManagementObject.h ++++ b/qpid/cpp/include/qpid/management/ManagementObject.h +@@ -175,7 +175,8 @@ protected: + virtual void mapDecodeValues(const types::Variant::Map& map) = 0; + virtual void doMethod(std::string& methodName, + const types::Variant::Map& inMap, +- types::Variant::Map& outMap) = 0; ++ types::Variant::Map& outMap, ++ const std::string& userId) = 0; + QPID_COMMON_EXTERN void writeTimestamps(types::Variant::Map& map) const; + QPID_COMMON_EXTERN void readTimestamps(const types::Variant::Map& buf); + +@@ -187,7 +188,7 @@ protected: + virtual void readProperties(const std::string&) {} + virtual void writeProperties(std::string&) const {} + virtual void writeStatistics(std::string&, bool = false) {} +- virtual void doMethod(std::string&, const std::string&, std::string&) {} ++ virtual void doMethod(std::string&, const std::string&, std::string&, const std::string&) {} + + QPID_COMMON_EXTERN virtual void setReference(ObjectId objectId); + +diff --git a/qpid/cpp/managementgen/qmfgen/schema.py b/qpid/cpp/managementgen/qmfgen/schema.py +index ec0ccc3..c5f49ec 100755 +--- a/qpid/cpp/managementgen/qmfgen/schema.py ++++ b/qpid/cpp/managementgen/qmfgen/schema.py +@@ -1228,12 +1228,12 @@ class SchemaClass: + inArgCount = inArgCount + 1 + + if methodCount == 0: +- stream.write ("string&, const string&, string& outStr") ++ stream.write ("string&, const string&, string& outStr, const string&") + else: + if inArgCount == 0: +- stream.write ("string& methodName, const string&, string& outStr") ++ stream.write ("string& methodName, const string&, string& outStr, const string& userId") + else: +- stream.write ("string& methodName, const string& inStr, string& outStr") ++ stream.write ("string& methodName, const string& inStr, string& outStr, const string& userId") + + + def genDoMapMethodArgs (self, stream, variables): +@@ -1248,16 +1248,16 @@ class SchemaClass: + if methodCount == 0: + stream.write ("string&," + + " const ::qpid::types::Variant::Map&," + +- " ::qpid::types::Variant::Map& outMap") ++ " ::qpid::types::Variant::Map& outMap, const string&") + else: + if inArgCount == 0: + stream.write ("string& methodName," + + " const ::qpid::types::Variant::Map&," + +- " ::qpid::types::Variant::Map& outMap") ++ " ::qpid::types::Variant::Map& outMap, const string& userId") + else: + stream.write ("string& methodName," + + " const ::qpid::types::Variant::Map& inMap," + +- " ::qpid::types::Variant::Map& outMap") ++ " ::qpid::types::Variant::Map& outMap, const string& userId") + + def genHiLoStatResets (self, stream, variables): + for inst in self.statistics: +@@ -1365,8 +1365,13 @@ class SchemaClass: + arg.dir.lower () + "_" +\ + arg.name, "inBuf") + ";\n") + +- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ ++ stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\ ++ method.getName().upper() + ", ioArgs, userId);\n") ++ stream.write (" if (allow)\n") ++ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ + method.getName().upper() + ", ioArgs, text);\n") ++ stream.write (" else\n") ++ stream.write (" status = Manageable::STATUS_FORBIDDEN;\n") + stream.write (" outBuf.putLong (status);\n") + stream.write (" outBuf.putMediumString(::qpid::management::Manageable::StatusText (status, text));\n") + for arg in method.args: +@@ -1400,8 +1405,13 @@ class SchemaClass: + arg.name, + "inMap") + +- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ ++ stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\ ++ method.getName().upper() + ", ioArgs, userId);\n") ++ stream.write (" if (allow)\n") ++ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ + method.getName().upper() + ", ioArgs, text);\n") ++ stream.write (" else\n") ++ stream.write (" status = Manageable::STATUS_FORBIDDEN;\n") + stream.write (" outMap[\"_status_code\"] = (uint32_t) status;\n") + stream.write (" outMap[\"_status_text\"] = ::qpid::management::Manageable::StatusText(status, text);\n") + for arg in method.args: +diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.h b/qpid/cpp/managementgen/qmfgen/templates/Class.h +index cdb31c4..4bcd423 100644 +--- a/qpid/cpp/managementgen/qmfgen/templates/Class.h ++++ b/qpid/cpp/managementgen/qmfgen/templates/Class.h +@@ -79,7 +79,8 @@ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject + void mapDecodeValues(const ::qpid::types::Variant::Map& map); + void doMethod(std::string& methodName, + const ::qpid::types::Variant::Map& inMap, +- ::qpid::types::Variant::Map& outMap); ++ ::qpid::types::Variant::Map& outMap, ++ const std::string& userId); + std::string getKey() const; + /*MGEN:IF(Root.GenQMFv1)*/ + uint32_t writePropertiesSize() const; +@@ -88,7 +89,8 @@ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject + void writeStatistics(std::string& buf, bool skipHeaders = false); + void doMethod(std::string& methodName, + const std::string& inBuf, +- std::string& outBuf); ++ std::string& outBuf, ++ const std::string& userId); + /*MGEN:ENDIF*/ + + writeSchemaCall_t getWriteSchemaCall() { return writeSchema; } +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +index fadac65..ef6aff2 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +@@ -344,7 +344,7 @@ uint32_t ManagementAgentImpl::pollCallbacks(uint32_t callLimit) + methodQueue.pop_front(); + { + sys::Mutex::ScopedUnlock unlock(agentLock); +- invokeMethodRequest(item->body, item->cid, item->replyTo); ++ invokeMethodRequest(item->body, item->cid, item->replyTo, item->userId); + delete item; + } + } +@@ -518,7 +518,7 @@ void ManagementAgentImpl::handleConsoleAddedIndication() + QPID_LOG(trace, "RCVD ConsoleAddedInd"); + } + +-void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& cid, const string& replyTo) ++void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& cid, const string& replyTo, const string& userId) + { + string methodName; + bool failed = false; +@@ -565,7 +565,7 @@ void ManagementAgentImpl::invokeMethodRequest(const string& body, const string& + Manageable::STATUS_UNKNOWN_OBJECT); + failed = true; + } else { +- oPtr->doMethod(methodName, inArgs, callMap); ++ oPtr->doMethod(methodName, inArgs, callMap, userId); + + if (callMap["_status_code"].asUint32() == 0) { + outMap["_arguments"] = Variant::Map(); +@@ -782,12 +782,12 @@ void ManagementAgentImpl::handleLocateRequest(const string&, const string& cid, + } + } + +-void ManagementAgentImpl::handleMethodRequest(const string& body, const string& cid, const string& replyTo) ++void ManagementAgentImpl::handleMethodRequest(const string& body, const string& cid, const string& replyTo, const string& userId) + { + if (extThread) { + sys::Mutex::ScopedLock lock(agentLock); + +- methodQueue.push_back(new QueuedMethod(cid, replyTo, body)); ++ methodQueue.push_back(new QueuedMethod(cid, replyTo, body, userId)); + if (pipeHandle != 0) { + pipeHandle->write("X", 1); + } else if (notifyable != 0) { +@@ -806,7 +806,7 @@ void ManagementAgentImpl::handleMethodRequest(const string& body, const string& + inCallback = false; + } + } else { +- invokeMethodRequest(body, cid, replyTo); ++ invokeMethodRequest(body, cid, replyTo, userId); + } + + QPID_LOG(trace, "RCVD MethodRequest"); +@@ -821,13 +821,17 @@ void ManagementAgentImpl::received(Message& msg) + replyToKey = rt.getRoutingKey(); + } + ++ string userId; ++ if (mp.hasUserId()) ++ userId = mp.getUserId(); ++ + if (mp.hasAppId() && mp.getAppId() == "qmf2") + { + string opcode = mp.getApplicationHeaders().getAsString("qmf.opcode"); + string cid = msg.getMessageProperties().getCorrelationId(); + + if (opcode == "_agent_locate_request") handleLocateRequest(msg.getData(), cid, replyToKey); +- else if (opcode == "_method_request") handleMethodRequest(msg.getData(), cid, replyToKey); ++ else if (opcode == "_method_request") handleMethodRequest(msg.getData(), cid, replyToKey, userId); + else if (opcode == "_query_request") handleGetQuery(msg.getData(), cid, replyToKey); + else { + QPID_LOG(warning, "Support for QMF V2 Opcode [" << opcode << "] TBD!!!"); +diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +index c572774..40c368c 100644 +--- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h ++++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +@@ -127,12 +127,13 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + }; + + struct QueuedMethod { +- QueuedMethod(const std::string& _cid, const std::string& _reply, const std::string& _body) : +- cid(_cid), replyTo(_reply), body(_body) {} ++ QueuedMethod(const std::string& _cid, const std::string& _reply, const std::string& _body, const std::string& _uid) : ++ cid(_cid), replyTo(_reply), body(_body), userId(_uid) {} + + std::string cid; + std::string replyTo; + std::string body; ++ std::string userId; + }; + + typedef std::deque MethodQueue; +@@ -277,11 +278,11 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen + void handlePackageRequest (qpid::framing::Buffer& inBuffer); + void handleClassQuery (qpid::framing::Buffer& inBuffer); + void handleSchemaRequest (qpid::framing::Buffer& inBuffer, uint32_t sequence, const std::string& replyTo); +- void invokeMethodRequest (const std::string& body, const std::string& cid, const std::string& replyTo); ++ void invokeMethodRequest (const std::string& body, const std::string& cid, const std::string& replyTo, const std::string& userId); + + void handleGetQuery (const std::string& body, const std::string& cid, const std::string& replyTo); + void handleLocateRequest (const std::string& body, const std::string& sequence, const std::string& replyTo); +- void handleMethodRequest (const std::string& body, const std::string& sequence, const std::string& replyTo); ++ void handleMethodRequest (const std::string& body, const std::string& sequence, const std::string& replyTo, const std::string& userId); + void handleConsoleAddedIndication(); + }; + +diff --git a/qpid/cpp/src/qpid/management/Manageable.cpp b/qpid/cpp/src/qpid/management/Manageable.cpp +index a3593e7..651215f 100644 +--- a/qpid/cpp/src/qpid/management/Manageable.cpp ++++ b/qpid/cpp/src/qpid/management/Manageable.cpp +@@ -46,3 +46,8 @@ Manageable::status_t Manageable::ManagementMethod (uint32_t, Args&, std::string& + return STATUS_UNKNOWN_METHOD; + } + ++bool Manageable::AuthorizeMethod(uint32_t, Args&, const std::string&) ++{ ++ return true; ++} ++ +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 1d08585..ac09aae 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -1067,8 +1067,8 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + return; + } + ++ string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + if (acl != 0) { +- string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + map params; + params[acl::PROP_SCHEMAPACKAGE] = packageName; + params[acl::PROP_SCHEMACLASS] = className; +@@ -1099,7 +1099,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + outBuffer.record(); + sys::Mutex::ScopedUnlock u(userLock); + string outBuf; +- iter->second->doMethod(methodName, inArgs, outBuf); ++ iter->second->doMethod(methodName, inArgs, outBuf, userId); + outBuffer.putRawData(outBuf); + } catch(exception& e) { + outBuffer.restore(); +@@ -1177,8 +1177,8 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + return; + } + ++ string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + if (acl != 0) { +- string userId = ((const qpid::broker::ConnectionState*) connToken)->getUserId(); + map params; + params[acl::PROP_SCHEMAPACKAGE] = iter->second->getPackageName(); + params[acl::PROP_SCHEMACLASS] = iter->second->getClassName(); +@@ -1198,7 +1198,7 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + + try { + sys::Mutex::ScopedUnlock u(userLock); +- iter->second->doMethod(methodName, inArgs, callMap); ++ iter->second->doMethod(methodName, inArgs, callMap, userId); + errorCode = callMap["_status_code"].asUint32(); + if (errorCode == 0) { + outMap["_arguments"] = Variant::Map(); +-- +1.5.5.6 + +From f758a40142bbf12723d86b23034eb1b0eca82c15 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Mon, 11 Oct 2010 14:11:56 +0000 +Subject: [PATCH] QPID-2895 Qpid Windows Messaging .NET Binding does not work in release mode. + +The problem is that the Release mode dll is built with links to the MSVC debug runtime libraries. +This fix also gets rid of the AllCPU configuration. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021351 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../csharp.direct.receiver.csproj | 57 ++++-- + .../csharp.direct.sender.csproj | 57 ++++-- + .../csharp.example.client.csproj | 57 ++++-- + .../csharp.example.declare_queues.csproj | 57 ++++-- + .../csharp.example.drain.csproj | 57 ++++-- + .../csharp.example.helloworld.csproj | 57 ++++-- + .../csharp.example.server.csproj | 57 ++++-- + .../csharp.example.spout.csproj | 57 ++++-- + .../csharp.map.callback.receiver.csproj | 57 ++++-- + .../csharp.map.callback.sender.csproj | 60 ++++-- + .../csharp.map.receiver/csharp.map.receiver.csproj | 53 +++-- + .../csharp.map.sender/csharp.map.sender.csproj | 53 +++-- + .../visualbasic.example.client.vbproj | 58 ++++-- + .../qpid/dotnet/org.apache.qpid.messaging.sln | 230 +++++++------------- + .../dotnet/src/org.apache.qpid.messaging.vcproj | 193 ++++++++++++++++- + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 28 +++- + .../test/messaging.test/messaging.test.csproj | 28 +++- + 17 files changed, 808 insertions(+), 408 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index 4c55bc1..41c6662 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {52F880E7-D677-4C91-8516-D679CE0F46A8} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -94,4 +113,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +index 96f541f..47d44fe 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -94,4 +113,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +index 5618ac5..5be117d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {0DE01712-C2D1-4CA4-B42C-5856456A8696} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -94,4 +113,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +index fa9d648..2604910 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {E31B349C-830C-4583-8BD9-30DA4398349F} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -94,4 +113,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +index c9404fd..6e02e1d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {C43DEB69-8088-420B-B0CA-C699535E6D08} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -95,4 +114,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +index 04e3d4f..f0b4aac 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {8CC1C265-0507-44A3-9483-8FAF48513F4D} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -94,4 +113,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +index 336d1e7..c7db0a2 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {090A081D-E8B5-4949-AA43-EE182B7101E3} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -94,4 +113,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +index a3f949d..0011619 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {EB36626D-36C2-41B3-B65E-762BAF27F137} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -95,4 +114,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +index 0141c5f..c1fed18 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {68A43817-2358-4A31-8FDF-FE21722BFBCF} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -98,4 +117,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +index c54423e..40fd6f0 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A} +@@ -13,24 +33,6 @@ + v3.5 + 512 + +- +- true +- full +- false +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- prompt +- 4 +- true +- +- +- pdbonly +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- TRACE +- prompt +- 4 +- + + true + $(QPID_BUILD_ROOT)\src\$(Configuration)\ +@@ -48,6 +50,14 @@ + x86 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ + + true + $(QPID_BUILD_ROOT)\src\$(Configuration)\ +@@ -65,6 +75,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -97,4 +115,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +index 3e3e248..bb6b3cd 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -1,8 +1,28 @@ +  ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +index 11bbd58..bd3e378 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.csproj +@@ -1,8 +1,28 @@ +  ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10} +@@ -13,32 +33,23 @@ + v3.5 + 512 + +- ++ + true +- full +- false + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + DEBUG;TRACE ++ full ++ x86 + prompt +- 4 + +- +- pdbonly +- true ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE +- prompt +- 4 +- +- +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- DEBUG;TRACE +- full ++ true ++ pdbonly + x86 + prompt + +- ++ + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true +@@ -62,6 +73,14 @@ + x64 + prompt + ++ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj +index 267b003..4463dc7 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/visualbasic.example.client.vbproj +@@ -1,8 +1,28 @@ +- ++ ++ + + + Debug +- AnyCPU ++ x86 + 9.0.21022 + 2.0 + {CFEA696E-115B-4AD1-AB56-804E360EDD51} +@@ -18,35 +38,26 @@ + Off + On + +- ++ + true +- full + true + true + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + visualbasic.example.client.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ full ++ x86 + +- +- pdbonly +- false +- true +- true +- $(QPID_BUILD_ROOT)\src\$(Configuration)\ +- visualbasic.example.client.xml +- 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 +- +- +- true +- true ++ + true + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + visualbasic.example.client.xml ++ true + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 +- full ++ pdbonly + x86 + +- ++ + true + $(QPID_BUILD_ROOT)\src\$(Configuration)\ + visualbasic.example.client.xml +@@ -74,6 +85,15 @@ + pdbonly + x64 + ++ ++ true ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ ++ visualbasic.example.client.xml ++ true ++ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 ++ pdbonly ++ x64 ++ + + + +@@ -153,4 +173,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +index f6db279..b6de578 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +@@ -68,305 +68,237 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.helloworld", + EndProject + Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution +- Debug|Any CPU = Debug|Any CPU +- Debug|Mixed Platforms = Debug|Mixed Platforms +- Debug|Win32 = Debug|Win32 +- Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 +- Release|Any CPU = Release|Any CPU +- Release|Mixed Platforms = Release|Mixed Platforms +- Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release|x86 = Release|x86 ++ RelWithDebInfo|Win32 = RelWithDebInfo|Win32 ++ RelWithDebInfo|x64 = RelWithDebInfo|x64 ++ RelWithDebInfo|x86 = RelWithDebInfo|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Any CPU.ActiveCfg = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.ActiveCfg = Debug|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.Build.0 = Debug|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x64.ActiveCfg = Debug|x64 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x64.Build.0 = Debug|x64 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.ActiveCfg = Debug|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.Build.0 = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Any CPU.ActiveCfg = Release|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.ActiveCfg = Release|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.Build.0 = Release|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.ActiveCfg = Release|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.Build.0 = Release|Win32 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x64.ActiveCfg = Release|x64 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x64.Build.0 = Release|x64 + {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x86.ActiveCfg = Release|Win32 +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|Win32 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x64.ActiveCfg = Debug|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x64.Build.0 = Debug|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.ActiveCfg = Debug|x86 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.Build.0 = Debug|x86 +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Any CPU.Build.0 = Release|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Win32.ActiveCfg = Release|Any CPU + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x64.ActiveCfg = Release|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x64.Build.0 = Release|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.ActiveCfg = Release|x86 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.Build.0 = Release|x86 +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x64.ActiveCfg = Debug|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x64.Build.0 = Debug|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.ActiveCfg = Debug|x86 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.Build.0 = Debug|x86 +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Any CPU.Build.0 = Release|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Win32.ActiveCfg = Release|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x64.ActiveCfg = Release|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x64.Build.0 = Release|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.ActiveCfg = Release|x86 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.Build.0 = Release|x86 +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {52F880E7-D677-4C91-8516-D679CE0F46A8}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|x64.ActiveCfg = Debug|x64 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|x64.Build.0 = Debug|x64 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|x86.ActiveCfg = Debug|x86 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Debug|x86.Build.0 = Debug|x86 +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Any CPU.Build.0 = Release|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|Win32.ActiveCfg = Release|Any CPU + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|x64.ActiveCfg = Release|x64 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|x64.Build.0 = Release|x64 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|x86.ActiveCfg = Release|x86 + {AF2FBC78-266C-430C-BC29-9477AB596A36}.Release|x86.Build.0 = Release|x86 +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {AF2FBC78-266C-430C-BC29-9477AB596A36}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x64.ActiveCfg = Debug|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x64.Build.0 = Debug|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.ActiveCfg = Debug|x86 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.Build.0 = Debug|x86 +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Any CPU.Build.0 = Release|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Win32.ActiveCfg = Release|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x64.ActiveCfg = Release|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x64.Build.0 = Release|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.ActiveCfg = Release|x86 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.Build.0 = Release|x86 +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x64.ActiveCfg = Debug|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x64.Build.0 = Debug|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.ActiveCfg = Debug|x86 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.Build.0 = Debug|x86 +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Any CPU.Build.0 = Release|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Win32.ActiveCfg = Release|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x64.ActiveCfg = Release|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x64.Build.0 = Release|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.ActiveCfg = Release|x86 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.Build.0 = Release|x86 +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x64.ActiveCfg = Debug|x64 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x64.Build.0 = Debug|x64 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.ActiveCfg = Debug|x86 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.Build.0 = Debug|x86 +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.Build.0 = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Win32.ActiveCfg = Release|Any CPU + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x64.ActiveCfg = Release|x64 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x64.Build.0 = Release|x64 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.ActiveCfg = Release|x86 + {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.Build.0 = Release|x86 +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x64.ActiveCfg = Debug|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x64.Build.0 = Debug|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.ActiveCfg = Debug|x86 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.Build.0 = Debug|x86 +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Any CPU.Build.0 = Release|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Win32.ActiveCfg = Release|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x64.ActiveCfg = Release|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x64.Build.0 = Release|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.ActiveCfg = Release|x86 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.Build.0 = Release|x86 +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {68A43817-2358-4A31-8FDF-FE21722BFBCF}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x64.ActiveCfg = Debug|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x64.Build.0 = Debug|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.ActiveCfg = Debug|x86 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.Build.0 = Debug|x86 +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Any CPU.Build.0 = Release|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Win32.ActiveCfg = Release|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x64.ActiveCfg = Release|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x64.Build.0 = Release|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.ActiveCfg = Release|x86 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.Build.0 = Release|x86 +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Win32.ActiveCfg = Debug|x86 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x64.ActiveCfg = Debug|x64 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x64.Build.0 = Debug|x64 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.ActiveCfg = Debug|x86 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.Build.0 = Debug|x86 +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Any CPU.Build.0 = Release|Any CPU +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Mixed Platforms.ActiveCfg = Release|x86 +- {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Mixed Platforms.Build.0 = Release|x86 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Win32.ActiveCfg = Release|x86 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x64.ActiveCfg = Release|x64 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x64.Build.0 = Release|x64 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.ActiveCfg = Release|x86 + {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.Build.0 = Release|x86 +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Win32.ActiveCfg = Debug|x86 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x64.ActiveCfg = Debug|x64 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x64.Build.0 = Debug|x64 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.ActiveCfg = Debug|x86 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.Build.0 = Debug|x86 +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Any CPU.Build.0 = Release|Any CPU +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Mixed Platforms.ActiveCfg = Release|x86 +- {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Mixed Platforms.Build.0 = Release|x86 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Win32.ActiveCfg = Release|x86 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x64.ActiveCfg = Release|x64 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x64.Build.0 = Release|x64 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.ActiveCfg = Release|x86 + {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.Build.0 = Release|x86 +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {090A081D-E8B5-4949-AA43-EE182B7101E3}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Win32.ActiveCfg = Debug|x86 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x64.ActiveCfg = Debug|x64 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x64.Build.0 = Debug|x64 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.ActiveCfg = Debug|x86 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.Build.0 = Debug|x86 +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Any CPU.Build.0 = Release|Any CPU +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Mixed Platforms.ActiveCfg = Release|x86 +- {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Mixed Platforms.Build.0 = Release|x86 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Win32.ActiveCfg = Release|x86 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x64.ActiveCfg = Release|x64 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x64.Build.0 = Release|x64 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.ActiveCfg = Release|x86 + {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.Build.0 = Release|x86 +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {C43DEB69-8088-420B-B0CA-C699535E6D08}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Win32.ActiveCfg = Debug|x86 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x64.ActiveCfg = Debug|x64 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x64.Build.0 = Debug|x64 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.ActiveCfg = Debug|x86 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.Build.0 = Debug|x86 +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Any CPU.Build.0 = Release|Any CPU +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Mixed Platforms.ActiveCfg = Release|x86 +- {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Mixed Platforms.Build.0 = Release|x86 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Win32.ActiveCfg = Release|x86 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x64.ActiveCfg = Release|x64 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x64.Build.0 = Release|x64 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.ActiveCfg = Release|x86 + {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.Build.0 = Release|x86 +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {EB36626D-36C2-41B3-B65E-762BAF27F137}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Win32.ActiveCfg = Debug|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x64.ActiveCfg = Debug|x64 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x64.Build.0 = Debug|x64 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.ActiveCfg = Debug|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.Build.0 = Debug|x86 +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Any CPU.Build.0 = Release|Any CPU +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Mixed Platforms.ActiveCfg = Release|x86 +- {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Mixed Platforms.Build.0 = Release|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Win32.ActiveCfg = Release|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x64.ActiveCfg = Release|x64 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x64.Build.0 = Release|x64 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.ActiveCfg = Release|x86 + {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.Build.0 = Release|x86 +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {E31B349C-830C-4583-8BD9-30DA4398349F}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|Win32.ActiveCfg = Debug|x86 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|x64.ActiveCfg = Debug|x64 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|x64.Build.0 = Debug|x64 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|x86.ActiveCfg = Debug|x86 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Debug|x86.Build.0 = Debug|x86 +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Any CPU.Build.0 = Release|Any CPU +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Mixed Platforms.ActiveCfg = Release|x86 +- {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Mixed Platforms.Build.0 = Release|x86 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|Win32.ActiveCfg = Release|x86 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|x64.ActiveCfg = Release|x64 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|x64.Build.0 = Release|x64 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|x86.ActiveCfg = Release|x86 + {CFEA696E-115B-4AD1-AB56-804E360EDD51}.Release|x86.Build.0 = Release|x86 +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Mixed Platforms.Build.0 = Debug|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {CFEA696E-115B-4AD1-AB56-804E360EDD51}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|Win32.ActiveCfg = Debug|x86 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x64.ActiveCfg = Debug|x64 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x64.Build.0 = Debug|x64 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x86.ActiveCfg = Debug|x86 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Debug|x86.Build.0 = Debug|x86 +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Any CPU.Build.0 = Release|Any CPU +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Mixed Platforms.ActiveCfg = Release|x86 +- {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Mixed Platforms.Build.0 = Release|x86 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|Win32.ActiveCfg = Release|x86 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x64.ActiveCfg = Release|x64 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x64.Build.0 = Release|x64 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.ActiveCfg = Release|x86 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.Build.0 = Release|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86 ++ {8CC1C265-0507-44A3-9483-8FAF48513F4D}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index d4bcf53..22c6679 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -1,4 +1,24 @@ + ++ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + Debug +@@ -62,6 +62,30 @@ + x64 + prompt + ++ ++ bin\RelWithDebInfo\ ++ TRACE ++ true ++ pdbonly ++ AnyCPU ++ prompt ++ ++ ++ bin\x86\RelWithDebInfo\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ bin\x64\RelWithDebInfo\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -94,4 +118,4 @@ + + + --> +- ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +index 805c9a4..19aa810 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +@@ -1,4 +1,4 @@ +- ++ + + + Debug +@@ -62,6 +62,30 @@ + x64 + prompt + ++ ++ bin\RelWithDebInfo\ ++ TRACE ++ true ++ pdbonly ++ AnyCPU ++ prompt ++ ++ ++ bin\x86\RelWithDebInfo\ ++ TRACE ++ true ++ pdbonly ++ x86 ++ prompt ++ ++ ++ bin\x64\RelWithDebInfo\ ++ TRACE ++ true ++ pdbonly ++ x64 ++ prompt ++ + + + +@@ -100,4 +124,4 @@ + + + +- ++ +\ No newline at end of file +-- +1.5.5.6 + +From a1e2ac6a51303cfb5bd991910891f1f59cb5b91a Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Mon, 11 Oct 2010 14:46:38 +0000 +Subject: [PATCH] QPID-2863 Propagate WinSDK Build Version numbers to the Messaging .NET Binding + +Rooted at qpid/, this patch propagates the Windows version numbers to the .NET Binding DLLs. +The changes can be summarized: +1. The files that hold the version numbers are renamed to templates and are edited to hold the version number CMake variable names. +2. CMake calls configure_file twice to put the version numbers into the generated files. +3. The projects that use these files are steered to use the generated source. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021361 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../src/org.apache.qpid.messaging.template.rc | 101 ++++++++++++++++++++ + .../dotnet/src/org.apache.qpid.messaging.vcproj | 2 +- + .../sessionreceiver-AssemblyInfo-template.cs | 55 +++++++++++ + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 4 +- + qpid/cpp/src/CMakeLists.txt | 11 ++- + 5 files changed, 169 insertions(+), 4 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/sessionreceiver-AssemblyInfo-template.cs + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc +new file mode 100644 +index 0000000..e0607fa +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc +@@ -0,0 +1,101 @@ ++// Microsoft Visual C++ generated resource script. ++// ++#include "resource1.h" ++ ++#define APSTUDIO_READONLY_SYMBOLS ++///////////////////////////////////////////////////////////////////////////// ++// ++// Generated from the TEXTINCLUDE 2 resource. ++// ++#include "afxres.h" ++ ++///////////////////////////////////////////////////////////////////////////// ++#undef APSTUDIO_READONLY_SYMBOLS ++ ++///////////////////////////////////////////////////////////////////////////// ++// English (U.S.) resources ++ ++#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) ++#ifdef _WIN32 ++LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US ++#pragma code_page(1252) ++#endif //_WIN32 ++ ++#ifdef APSTUDIO_INVOKED ++///////////////////////////////////////////////////////////////////////////// ++// ++// TEXTINCLUDE ++// ++ ++1 TEXTINCLUDE ++BEGIN ++ "resource1.h\0" ++END ++ ++2 TEXTINCLUDE ++BEGIN ++ "#include ""afxres.h""\r\n" ++ "\0" ++END ++ ++3 TEXTINCLUDE ++BEGIN ++ "\r\n" ++ "\0" ++END ++ ++#endif // APSTUDIO_INVOKED ++ ++ ++///////////////////////////////////////////////////////////////////////////// ++// ++// Version ++// ++ ++VS_VERSION_INFO VERSIONINFO ++ FILEVERSION ${winver_FILE_VERSION_N1},${winver_FILE_VERSION_N2},${winver_FILE_VERSION_N3},${winver_FILE_VERSION_N4} ++ PRODUCTVERSION ${winver_PRODUCT_VERSION_N1},${winver_PRODUCT_VERSION_N2},${winver_PRODUCT_VERSION_N3},${winver_PRODUCT_VERSION_N4} ++ FILEFLAGSMASK 0x17L ++#ifdef _DEBUG ++ FILEFLAGS 0x1L ++#else ++ FILEFLAGS 0x0L ++#endif ++ FILEOS 0x4L ++ FILETYPE 0x2L ++ FILESUBTYPE 0x0L ++BEGIN ++ BLOCK "StringFileInfo" ++ BEGIN ++ BLOCK "040904b0" ++ BEGIN ++ VALUE "FileDescription", "org.apache.qpid.messaging" ++ VALUE "FileVersion", "${winver_FILE_VERSION_N1}, ${winver_FILE_VERSION_N2}, ${winver_FILE_VERSION_N3}, ${winver_FILE_VERSION_N4}" ++ VALUE "InternalName", "org.apache.qpid.messaging" ++ VALUE "LegalCopyright", "" ++ VALUE "OriginalFilename", "org.apache.qpid.messaging" ++ VALUE "ProductName", "org.apache.qpid.messaging" ++ VALUE "ProductVersion", "${winver_PRODUCT_VERSION_N1}, ${winver_PRODUCT_VERSION_N2}, ${winver_PRODUCT_VERSION_N3}, ${winver_PRODUCT_VERSION_N4}" ++ END ++ END ++ BLOCK "VarFileInfo" ++ BEGIN ++ VALUE "Translation", 0x409, 1200 ++ END ++END ++ ++#endif // English (U.S.) resources ++///////////////////////////////////////////////////////////////////////////// ++ ++ ++ ++#ifndef APSTUDIO_INVOKED ++///////////////////////////////////////////////////////////////////////////// ++// ++// Generated from the TEXTINCLUDE 3 resource. ++// ++ ++ ++///////////////////////////////////////////////////////////////////////////// ++#endif // not APSTUDIO_INVOKED ++ +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index 22c6679..cedff6b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -614,7 +614,7 @@ + > + + + + ++ + + + Debug +@@ -102,7 +102,7 @@ + + + +- ++ + + + +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index 651f0f1..81ad66b 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -590,9 +590,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows) + add_definitions(/D "_WIN32_WINNT=0x0501") + endif (MSVC80) + +- # set the RelWithDebInfo compile/link switchs to equal Release ++ # set the RelWithDebInfo compile/link switches to equal Release + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /O2 /Ob2 /D NDEBUG") + set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/debug /INCREMENTAL:NO") ++ ++ # Set the windows version for the .NET Binding cpp project ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc ++ ${CMAKE_CURRENT_BINARY_DIR}/windows/resources/org.apache.qpid.messaging.rc) ++ ++ # Set the windows version for the .NET Binding sessionreceiver project ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src/sessionreceiver/properties/sessionreceiver-AssemblyInfo-template.cs ++ ${CMAKE_CURRENT_BINARY_DIR}/windows/generated_src/sessionreceiver-AssemblyInfo.cs) ++ + endif (MSVC) + + set (qpidtypes_platform_SOURCES +-- +1.5.5.6 + +From 02f034264d79f4892b8131a88bd050fb813b9998 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Mon, 11 Oct 2010 14:58:17 +0000 +Subject: [PATCH] QPID-2863 + +These files were not deleted in last commit. Trying again. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021366 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../qpid/dotnet/src/org.apache.qpid.messaging.rc | 101 -------------------- + .../src/sessionreceiver/Properties/AssemblyInfo.cs | 55 ----------- + 2 files changed, 0 insertions(+), 156 deletions(-) + delete mode 100644 qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc + delete mode 100644 qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc +deleted file mode 100644 +index 71f051c..0000000 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.rc ++++ /dev/null +@@ -1,101 +0,0 @@ +-// Microsoft Visual C++ generated resource script. +-// +-#include "resource1.h" +- +-#define APSTUDIO_READONLY_SYMBOLS +-///////////////////////////////////////////////////////////////////////////// +-// +-// Generated from the TEXTINCLUDE 2 resource. +-// +-#include "afxres.h" +- +-///////////////////////////////////////////////////////////////////////////// +-#undef APSTUDIO_READONLY_SYMBOLS +- +-///////////////////////////////////////////////////////////////////////////// +-// English (U.S.) resources +- +-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +-#ifdef _WIN32 +-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +-#pragma code_page(1252) +-#endif //_WIN32 +- +-#ifdef APSTUDIO_INVOKED +-///////////////////////////////////////////////////////////////////////////// +-// +-// TEXTINCLUDE +-// +- +-1 TEXTINCLUDE +-BEGIN +- "resource1.h\0" +-END +- +-2 TEXTINCLUDE +-BEGIN +- "#include ""afxres.h""\r\n" +- "\0" +-END +- +-3 TEXTINCLUDE +-BEGIN +- "\r\n" +- "\0" +-END +- +-#endif // APSTUDIO_INVOKED +- +- +-///////////////////////////////////////////////////////////////////////////// +-// +-// Version +-// +- +-VS_VERSION_INFO VERSIONINFO +- FILEVERSION 1,3,0,1 +- PRODUCTVERSION 1,3,0,1 +- FILEFLAGSMASK 0x17L +-#ifdef _DEBUG +- FILEFLAGS 0x1L +-#else +- FILEFLAGS 0x0L +-#endif +- FILEOS 0x4L +- FILETYPE 0x2L +- FILESUBTYPE 0x0L +-BEGIN +- BLOCK "StringFileInfo" +- BEGIN +- BLOCK "040904b0" +- BEGIN +- VALUE "FileDescription", "org.apache.qpid.messaging" +- VALUE "FileVersion", "1, 3, 0, 1" +- VALUE "InternalName", "org.apache.qpid.messaging" +- VALUE "LegalCopyright", "Copyright (C) 2010" +- VALUE "OriginalFilename", "org.apache.qpid.messaging" +- VALUE "ProductName", "org.apache.qpid.messaging" +- VALUE "ProductVersion", "1, 3, 0, 1" +- END +- END +- BLOCK "VarFileInfo" +- BEGIN +- VALUE "Translation", 0x409, 1200 +- END +-END +- +-#endif // English (U.S.) resources +-///////////////////////////////////////////////////////////////////////////// +- +- +- +-#ifndef APSTUDIO_INVOKED +-///////////////////////////////////////////////////////////////////////////// +-// +-// Generated from the TEXTINCLUDE 3 resource. +-// +- +- +-///////////////////////////////////////////////////////////////////////////// +-#endif // not APSTUDIO_INVOKED +- +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs +deleted file mode 100644 +index 19c1ea9..0000000 +--- a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/Properties/AssemblyInfo.cs ++++ /dev/null +@@ -1,55 +0,0 @@ +-/* +-* Licensed to the Apache Software Foundation (ASF) under one +-* or more contributor license agreements. See the NOTICE file +-* distributed with this work for additional information +-* regarding copyright ownership. The ASF licenses this file +-* to you under the Apache License, Version 2.0 (the +-* "License"); you may not use this file except in compliance +-* with the License. You may obtain a copy of the License at +-* +-* http://www.apache.org/licenses/LICENSE-2.0 +-* +-* Unless required by applicable law or agreed to in writing, +-* software distributed under the License is distributed on an +-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-* KIND, either express or implied. See the License for the +-* specific language governing permissions and limitations +-* under the License. +-*/ +- +-using System.Reflection; +-using System.Runtime.CompilerServices; +-using System.Runtime.InteropServices; +- +-// General Information about an assembly is controlled through the following +-// set of attributes. Change these attribute values to modify the information +-// associated with an assembly. +-[assembly: AssemblyTitle("Org.Apache.Qpid.Messaging.SessionReceiver")] +-[assembly: AssemblyDescription("")] +-[assembly: AssemblyConfiguration("")] +-[assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("Org.Apache.Qpid.Messaging.SessionReceiver")] +-[assembly: AssemblyCopyright("Copyright 2010")] +-[assembly: AssemblyTrademark("")] +-[assembly: AssemblyCulture("")] +- +-// Setting ComVisible to false makes the types in this assembly not visible +-// to COM components. If you need to access a type in this assembly from +-// COM, set the ComVisible attribute to true on that type. +-[assembly: ComVisible(false)] +- +-// The following GUID is for the ID of the typelib if this project is exposed to COM +-[assembly: Guid("e18f363a-a9b0-4251-8f3c-de0e9d9d6827")] +- +-// Version information for an assembly consists of the following four values: +-// +-// Major Version +-// Minor Version +-// Build Number +-// Revision +-// +-// You can specify all the values or you can default the Build and Revision Numbers +-// by using the '*' as shown below: +-// [assembly: AssemblyVersion("1.0.*")] +-[assembly: AssemblyVersion("1.0.0.0")] +-[assembly: AssemblyFileVersion("1.0.0.0")] +-- +1.5.5.6 + +From f672fda5f5452a83c3d2c02638dd3cbf6ed1c883 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Mon, 11 Oct 2010 15:00:46 +0000 +Subject: [PATCH] QPID-2865 Cpp messaging examples compile problems for x64. + +This fix adds a unique identifier to each x64 target's IntermediateDirectory. Consequently, each project's BuildLog file goes into a separate directory and the compiles are cleaner. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021367 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../cpp/examples/messaging/messaging_client.vcproj | 4 ++-- + qpid/cpp/examples/messaging/messaging_drain.vcproj | 4 ++-- + .../messaging/messaging_map_receiver.vcproj | 4 ++-- + .../examples/messaging/messaging_map_sender.vcproj | 4 ++-- + .../cpp/examples/messaging/messaging_server.vcproj | 4 ++-- + qpid/cpp/examples/messaging/messaging_spout.vcproj | 4 ++-- + 6 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/messaging_client.vcproj b/qpid/cpp/examples/messaging/messaging_client.vcproj +index 0313a9f..ff66891 100644 +--- a/qpid/cpp/examples/messaging/messaging_client.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_client.vcproj +@@ -213,7 +213,7 @@ + +@@ -300,7 +300,7 @@ + +diff --git a/qpid/cpp/examples/messaging/messaging_drain.vcproj b/qpid/cpp/examples/messaging/messaging_drain.vcproj +index 61429ec..3fc0ebe 100644 +--- a/qpid/cpp/examples/messaging/messaging_drain.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_drain.vcproj +@@ -195,7 +195,7 @@ + +@@ -273,7 +273,7 @@ + +diff --git a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +index fdd5c8e..9242156 100644 +--- a/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_map_receiver.vcproj +@@ -213,7 +213,7 @@ + +@@ -300,7 +300,7 @@ + +diff --git a/qpid/cpp/examples/messaging/messaging_map_sender.vcproj b/qpid/cpp/examples/messaging/messaging_map_sender.vcproj +index 517e791..b68d88f 100644 +--- a/qpid/cpp/examples/messaging/messaging_map_sender.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_map_sender.vcproj +@@ -213,7 +213,7 @@ + +@@ -300,7 +300,7 @@ + +diff --git a/qpid/cpp/examples/messaging/messaging_server.vcproj b/qpid/cpp/examples/messaging/messaging_server.vcproj +index 93fc41a..7050f8b 100644 +--- a/qpid/cpp/examples/messaging/messaging_server.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_server.vcproj +@@ -213,7 +213,7 @@ + +@@ -300,7 +300,7 @@ + +diff --git a/qpid/cpp/examples/messaging/messaging_spout.vcproj b/qpid/cpp/examples/messaging/messaging_spout.vcproj +index 85d9913..79043b8 100644 +--- a/qpid/cpp/examples/messaging/messaging_spout.vcproj ++++ b/qpid/cpp/examples/messaging/messaging_spout.vcproj +@@ -195,7 +195,7 @@ + +@@ -273,7 +273,7 @@ + +-- +1.5.5.6 + +From 0c39983155111c42d1412597a4d4484d4405c5db Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Mon, 11 Oct 2010 15:19:34 +0000 +Subject: [PATCH] QPID-2866 Remove unneeded build files and directory + +Delete directory qpid/cpp/bindings/qpid/dotnet/bld and all the files in it. They are unused (see QPID-2827) and their presence will only confuse future maintainers. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021378 13f79535-47bb-0310-9956-ffa450edef68 +--- + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 81 ------ + .../dotnet/bld/bld-org.apache.qpid.messaging.sln | 52 ---- + .../bld/bld-org.apache.qpid.messaging.vcproj | 300 -------------------- + 3 files changed, 0 insertions(+), 433 deletions(-) + delete mode 100644 qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj + delete mode 100644 qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln + delete mode 100644 qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj + +diff --git a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj +deleted file mode 100644 +index b8168af..0000000 +--- a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sessionreceiver.csproj ++++ /dev/null +@@ -1,81 +0,0 @@ +- +- +- +- Debug +- AnyCPU +- 9.0.21022 +- 2.0 +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05} +- Library +- Properties +- org.apache.qpid.messaging.sessionreceiver +- org.apache.qpid.messaging.sessionreceiver +- v3.5 +- 512 +- +- +- true +- full +- false +- ..\..\..\..\..\..\src\Debug\ +- DEBUG;TRACE +- prompt +- 4 +- +- +- pdbonly +- true +- ..\..\..\..\..\..\src\Release\ +- TRACE +- prompt +- 4 +- +- +- true +- ..\..\..\..\..\..\src\Debug\ +- DEBUG;TRACE +- full +- x86 +- prompt +- +- +- ..\..\..\..\..\..\src\Release\ +- TRACE +- true +- pdbonly +- x86 +- prompt +- +- +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- +- +- +- +- +- +- {AA5A3B83-5F98-406D-A01C-5A921467A57D} +- Org.Apache.Qpid.Messaging +- +- +- +- +- +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln +deleted file mode 100644 +index 79e22cb..0000000 +--- a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.sln ++++ /dev/null +@@ -1,52 +0,0 @@ +-Microsoft Visual Studio Solution File, Format Version 10.00 +-# Visual Studio 2008 +-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org.Apache.Qpid.Messaging", "bld-org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}" +-EndProject +-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "org.apache.qpid.messaging.sessionreceiver", "bld-org.apache.qpid.messaging.sessionreceiver.csproj", "{B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}" +-EndProject +-Global +- GlobalSection(SolutionConfigurationPlatforms) = preSolution +- Debug|Any CPU = Debug|Any CPU +- Debug|Mixed Platforms = Debug|Mixed Platforms +- Debug|Win32 = Debug|Win32 +- Debug|x86 = Debug|x86 +- Release|Any CPU = Release|Any CPU +- Release|Mixed Platforms = Release|Mixed Platforms +- Release|Win32 = Release|Win32 +- Release|x86 = Release|x86 +- EndGlobalSection +- GlobalSection(ProjectConfigurationPlatforms) = postSolution +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Any CPU.ActiveCfg = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Mixed Platforms.Build.0 = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.ActiveCfg = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.Build.0 = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.ActiveCfg = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.Build.0 = Debug|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Any CPU.ActiveCfg = Release|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.ActiveCfg = Release|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Mixed Platforms.Build.0 = Release|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.ActiveCfg = Release|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.Build.0 = Release|Win32 +- {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x86.ActiveCfg = Release|Win32 +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Any CPU.Build.0 = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Win32.ActiveCfg = Debug|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.ActiveCfg = Debug|x86 +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.Build.0 = Debug|x86 +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.ActiveCfg = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Any CPU.Build.0 = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Mixed Platforms.Build.0 = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Win32.ActiveCfg = Release|Any CPU +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.ActiveCfg = Release|x86 +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.Build.0 = Release|x86 +- EndGlobalSection +- GlobalSection(SolutionProperties) = preSolution +- HideSolutionNode = FALSE +- EndGlobalSection +- GlobalSection(NestedProjects) = preSolution +- EndGlobalSection +-EndGlobal +diff --git a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj +deleted file mode 100644 +index 14e67de..0000000 +--- a/qpid/cpp/bindings/qpid/dotnet/bld/bld-org.apache.qpid.messaging.vcproj ++++ /dev/null +@@ -1,300 +0,0 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-- +1.5.5.6 + +From ff25b145f8154b17e5e492bde4cc95bc14cceea1 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Thu, 14 Oct 2010 19:22:46 +0000 +Subject: [PATCH] QPID-2906 Qpid WinSDK .NET Binding does not support Release configuration + +This patch adds Release mode build support for the .NET Binding to C++ Messaging. + +1. SessionReceiver project was putting its x64 output into the wrong directory and was not picked up by the WinSDK. +2. winsdk_dotnet_examples.sln had the projects in a hierarchy. This spoils the experience for users of VS Express where the solution failed to load. +3. README-winsdk.txt provides an ascii-art picture of the components in the SDK. Also adds a description of how to switch the .NET example projects from debug to release. +4. New files added in cpp/src/windows/winsdk: + LICENSE-MSVC is windows-only text to be appended to the root LICENSE file. + MS-LICENSE.HTM is the Microsoft Runtime Redistributable license for VS2008 and .NET Framework 3.5. +5. bld-winsdk.ps1: + Builds full Debug and Release (RelWithDebInfo) .NET binding DLLs. + Augments the licenses in the kit root with information about the Microsoft Redistributable Runtime. + Enforces DOS line endings on all the kit root info files. + Installs the Debug version of .NET Binding in the /bin directory. + Places zipped Debug and Release versions of .NET Binding in the /bin directory that users may select. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1022667 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/README-winsdk.txt | 247 ++++--- + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 6 +- + .../winsdk_sources/winsdk_dotnet_examples.sln | 57 +-- + qpid/cpp/bld-winsdk.ps1 | 100 ++- + qpid/cpp/src/windows/winsdk/LICENSE-MSVC | 15 + + qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM | 806 ++++++++++++++++++++ + 6 files changed, 1062 insertions(+), 169 deletions(-) + create mode 100644 qpid/cpp/src/windows/winsdk/LICENSE-MSVC + create mode 100644 qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM + +diff --git a/qpid/cpp/README-winsdk.txt b/qpid/cpp/README-winsdk.txt +index 2928894..2412566 100644 +--- a/qpid/cpp/README-winsdk.txt ++++ b/qpid/cpp/README-winsdk.txt +@@ -1,96 +1,151 @@ +- Qpid-Cpp-Win-Sdk +- ================ +- +-Table of Contents +-================= +-1. Introduction +-2. Prerequisites +-3. Kit contents +-4. Building dotnet_examples +-5. Notes +- +- +-1. Introduction +-=============== +-Qpid-Cpp-Win-Sdk is a software development kit for users who wish +-to write code using the Qpid-Cpp program libraries in a Windows +-environment. +- +-This kit is distributed as two zip files: +- qpid-cpp-x86-.zip - projects and libraries for 32-bit +- x86 and Win32 development. +- qpid-cpp-x64-.zip - projects and libraries for 64-bit +- x64 development. +- +-For additional software or information on the Qpid project go to: +-http://cwiki.apache.org/qpid/ +- +- +-2. Prerequisites +-================ +-A. Visual Studio 2008. This kit was produced by Visual Studio 2008 +- and example solutions and projects are in Visual Studio 2008 +- format. +- +-B. MSVC 9.0 runtime libraries. Copies of the MSVC90 redistributable +- runtime libraries and manifest are included in the /bin directory. +- +-C. Boost version 1_39. The Boost libraries required by this SDK are +- included in the /bin directory. Both Debug and Release variants +- are present. +- +- +-3. Kit contents +-=============== +-The kit directories hold the content described here. +- +- \bin +- The precompiled binary (.dll and .exe) files and +- the associated debug program database (.pdb) files. +- Boost library files. +- MSVC90 runtime library files. +- +- \include +- A directory tree of .h files. +- +- \lib +- The linker .lib files that correspond to files in /bin. +- +- \docs +- Apache Qpid C++ API Reference +- +- \examples +- A Visual Studio solution file and associated project files +- to demonstrate using this SDK in C++. +- +- \dotnet_examples +- A Visual Studio solution file and associated project files +- to demonstrate using this SDK in C#. +- +- \management +- A python scripting code set for generating QMF data structures. +- +- For more information on Qpid QMF go to: +- https://cwiki.apache.org/qpid/qpid-management-framework.html +- +- +-4. Building dotnet_examples +-=========================== +- +-From the \dotnet_examples directory launch the winsdk_dotnet_examples.sln +-solution file. In the platform pulldown list select "x86" or "x64" to +-match the development kit you are using. Then build the solution in the +-Debug configuration. +- +-The resulting executable programs may be run from within Visual Studio +-or stand-alone from the \bin directory. +- +-5. Notes +-======== +-* Only the Release variant of Qpid code uses the redistributable +- MSVC90 libraries in the /bin directory. Users who wish to link to +- the Debug variant of Qpid code may do so under their own copy of +- Visual Studio 2008 where the debug versions of MSVC90 runtime +- libraries are available. +- +-* The dotnet_examples are only available in the Debug configuration. ++ Qpid-Cpp-Win-Sdk ++ ================ ++ ++Table of Contents ++================= ++1. Introduction ++2. Prerequisites ++3. Kit contents ++4. Building dotnet_examples ++5. Notes ++ ++ ++1. Introduction ++=============== ++Qpid-Cpp-Win-Sdk is a software development kit for users who wish ++to write code using the Qpid-Cpp program libraries in a Windows ++environment. ++ ++This kit is distributed as two zip files: ++ qpid-cpp-x86-.zip - projects and libraries for 32-bit ++ x86 and Win32 development. ++ qpid-cpp-x64-.zip - projects and libraries for 64-bit ++ x64 development. ++ ++For additional software or information on the Qpid project go to: ++http://cwiki.apache.org/qpid/ ++ ++ ++2. Prerequisites ++================ ++A. Visual Studio 2008. This kit was produced by Visual Studio 2008 ++ and example solutions and projects are in Visual Studio 2008 ++ format. ++ ++B. MSVC 9.0 runtime libraries. Copies of the MSVC90 redistributable ++ runtime libraries and manifest are included in the /bin directory. ++ ++C. Boost version 1_39. The Boost libraries required by this SDK are ++ included in the /bin directory. Both Debug and Release variants ++ are present. ++ ++ ++3. Kit contents ++=============== ++The kit directories hold the content described here. ++ ++ \bin ++ The precompiled binary (.dll and .exe) files and ++ the associated debug program database (.pdb) files. ++ Boost library files. ++ MSVC90 runtime library files. ++ ++ \include ++ A directory tree of .h files. ++ ++ \lib ++ The linker .lib files that correspond to files in /bin. ++ ++ \docs ++ Apache Qpid C++ API Reference ++ ++ \examples ++ A Visual Studio solution file and associated project files ++ to demonstrate using this SDK in unmanaged C++. ++ ++ \dotnet_examples ++ A Visual Studio solution file and associated project files ++ to demonstrate using this SDK in C#. ++ ++ \management ++ A python scripting code set for generating QMF data structures. ++ ++ For more information on Qpid QMF go to: ++ https://cwiki.apache.org/qpid/qpid-management-framework.html ++ ++The architectural relationships of the components in this SDK are ++illustrated here. ++ ++ +----------------------------+ ++ | \dotnet_examples | ++ | Managed C# | ++ +------+---------------+-----+ ++ | | ++ V | ++ +---------------------------+ | ++ | Managed Callback | | ++ | org.apache.qpid.messaging.| | ++ | sessionreceiver.dll | | ++ +----------------------+----+ | ++ | | ++managed V V ++(.NET) +-------------------------------+ ++:::::::::::::::::::::::| Qpid Interop Binding |:::::::::::: ++unmanaged | org.apache.qpid.messaging.dll | ++(Native Win32/64) +---------------+---------------+ ++ | ++ | ++ +----------------+ | ++ | \examples | | ++ | Unmanaged C++ | | ++ +--------+-------+ | ++ | | ++ V V ++ +----------------------------------+ ++ | Qpid C++ Messaging Libraries | ++ | bin\qpid*.dll bin\qmf*.dll | ++ +--------+--------------+----------+ ++ | | ++ V | ++ +-----------------+ | ++ | Boost Libraries | | ++ +--------+--------+ | ++ | | ++ V V ++ +---------------------------------+ ++ | MSVC Runtime Libraries | ++ +---------------------------------+ ++ ++ ++4. Building dotnet_examples ++=========================== ++ ++From the \dotnet_examples directory launch the winsdk_dotnet_examples.sln ++solution file. In the platform pulldown list select "x86" or "x64" to ++match the development kit you are using. Then build the solution in the ++Debug configuration. ++ ++The resulting executable programs may be run from within Visual Studio ++or stand-alone from the \bin directory. ++ ++To build the examples in the Release configuration please follow these steps: ++ a. Exit from Visual Studio. Stop all executing example processes. ++ b. Extract two org.apache.qpid.messaging DLL files from ++ bin/dotnet-binding-release.zip and place the files in the /bin ++ directory, overwriting the files arleady in /bin. ++ c. Start winsdk_dotnet_examples.sln. ++ d. In the Configuration pulldown, select Release. ++ e. In the Platform pulldown, select x86 or x64 to match the SDK ++ in use. ++ f. For each project remove the Reference to org.apache.qpid.messagingd.dll ++ and add a reference to bin/org.apache.qpid.messaging.dll. ++ g. Build and run the project. ++ ++5. Notes ++======== ++* Only the Release variant of Qpid code uses the redistributable ++ MSVC90 libraries in the /bin directory. Users who wish to link to ++ the Debug variant of Qpid code may do so under their own copy of ++ Visual Studio 2008 where the debug versions of MSVC90 runtime ++ libraries are available. ++ +\ No newline at end of file +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj +index 965ba04..0f1f7ad 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj +@@ -63,7 +63,7 @@ + prompt + + +- bin\RelWithDebInfo\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly +@@ -71,7 +71,7 @@ + prompt + + +- bin\x86\RelWithDebInfo\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly +@@ -79,7 +79,7 @@ + prompt + + +- bin\x64\RelWithDebInfo\ ++ $(QPID_BUILD_ROOT)\src\$(Configuration)\ + TRACE + true + pdbonly +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln +index 9fe026e..29cf729 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln +@@ -1,15 +1,9 @@ + Microsoft Visual Studio Solution File, Format Version 10.00 + # Visual Studio 2008 +-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{34C477FB-B0CC-4AB9-A346-EA7B055469AC}" +-EndProject +-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Direct", "Direct", "{DE58D329-10DC-4C8D-9EFA-230A57314089}" +-EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.direct.sender", "examples\csharp.direct.sender\csharp.direct.sender.csproj", "{7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}" + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.direct.receiver", "examples\csharp.direct.receiver\csharp.direct.receiver.csproj", "{52F880E7-D677-4C91-8516-D679CE0F46A8}" + EndProject +-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StructuredMessage", "StructuredMessage", "{E99FEFEE-B866-4BBA-9AA3-79DDF1C92960}" +-EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.sender", "examples\csharp.map.sender\csharp.map.sender.csproj", "{5D8252F5-E1D3-44A0-94C7-7CB75E843C10}" + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.receiver", "examples\csharp.map.receiver\csharp.map.receiver.csproj", "{AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}" +@@ -18,30 +12,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.callback.receive + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.callback.sender", "examples\csharp.map.callback.sender\csharp.map.callback.sender.csproj", "{12F1C14F-5C7D-4075-9BAE-C091394FF99A}" + EndProject +-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client-Server", "Client-Server", "{9232212E-F3C6-4D18-8D25-0C31DD5FF3DB}" +-EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.client", "examples\csharp.example.client\csharp.example.client.csproj", "{0DE01712-C2D1-4CA4-B42C-5856456A8696}" + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.server", "examples\csharp.example.server\csharp.example.server.csproj", "{090A081D-E8B5-4949-AA43-EE182B7101E3}" + EndProject +-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Drain-Spout", "Drain-Spout", "{89CE04CB-21DE-4ABB-9236-50529DD8C022}" +-EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.drain", "examples\csharp.example.drain\csharp.example.drain.csproj", "{C43DEB69-8088-420B-B0CA-C699535E6D08}" + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.spout", "examples\csharp.example.spout\csharp.example.spout.csproj", "{EB36626D-36C2-41B3-B65E-762BAF27F137}" + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.declare_queues", "examples\csharp.example.declare_queues\csharp.example.declare_queues.csproj", "{E31B349C-830C-4583-8BD9-30DA4398349F}" + EndProject +-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hello World", "Hello World", "{4408A2DA-ED2D-44AE-A465-0B6D75E1FF86}" +- ProjectSection(SolutionItems) = preProject +- examples\powershell.example.helloworld\powershell.example.helloworld.ps1 = examples\powershell.example.helloworld\powershell.example.helloworld.ps1 +- EndProjectSection +-EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.helloworld", "examples\csharp.example.helloworld\csharp.example.helloworld.csproj", "{8CC1C265-0507-44A3-9483-8FAF48513F4D}" + EndProject + Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution +- Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Win32 = Release|Win32 +@@ -49,62 +33,52 @@ Global + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Win32.ActiveCfg = Debug|Any CPU ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|Win32.ActiveCfg = Debug|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x64.ActiveCfg = Debug|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x64.Build.0 = Debug|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.ActiveCfg = Debug|x86 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Debug|x86.Build.0 = Debug|x86 +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Win32.ActiveCfg = Release|Any CPU ++ {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|Win32.ActiveCfg = Release|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x64.ActiveCfg = Release|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x64.Build.0 = Release|x64 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.ActiveCfg = Release|x86 + {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}.Release|x86.Build.0 = Release|x86 +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|Win32.ActiveCfg = Debug|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x64.ActiveCfg = Debug|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x64.Build.0 = Debug|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.ActiveCfg = Debug|x86 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Debug|x86.Build.0 = Debug|x86 +- {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|Win32.ActiveCfg = Release|Any CPU + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x64.ActiveCfg = Release|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x64.Build.0 = Release|x64 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.ActiveCfg = Release|x86 + {52F880E7-D677-4C91-8516-D679CE0F46A8}.Release|x86.Build.0 = Release|x86 +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|Win32.ActiveCfg = Debug|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x64.ActiveCfg = Debug|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x64.Build.0 = Debug|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.ActiveCfg = Debug|x86 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Debug|x86.Build.0 = Debug|x86 +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|Win32.ActiveCfg = Release|Any CPU + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x64.ActiveCfg = Release|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x64.Build.0 = Release|x64 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.ActiveCfg = Release|x86 + {5D8252F5-E1D3-44A0-94C7-7CB75E843C10}.Release|x86.Build.0 = Release|x86 +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|Win32.ActiveCfg = Debug|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x64.ActiveCfg = Debug|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x64.Build.0 = Debug|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.ActiveCfg = Debug|x86 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Debug|x86.Build.0 = Debug|x86 +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|Win32.ActiveCfg = Release|Any CPU + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x64.ActiveCfg = Release|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x64.Build.0 = Release|x64 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.ActiveCfg = Release|x86 + {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9}.Release|x86.Build.0 = Release|x86 +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|Win32.ActiveCfg = Debug|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x64.ActiveCfg = Debug|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x64.Build.0 = Debug|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.ActiveCfg = Debug|x86 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Debug|x86.Build.0 = Debug|x86 +- {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|Win32.ActiveCfg = Release|Any CPU + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x64.ActiveCfg = Release|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x64.Build.0 = Release|x64 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.ActiveCfg = Release|x86 + {68A43817-2358-4A31-8FDF-FE21722BFBCF}.Release|x86.Build.0 = Release|x86 +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|Win32.ActiveCfg = Debug|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x64.ActiveCfg = Debug|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x64.Build.0 = Debug|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.ActiveCfg = Debug|x86 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Debug|x86.Build.0 = Debug|x86 +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Win32.ActiveCfg = Release|Any CPU + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x64.ActiveCfg = Release|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x64.Build.0 = Release|x64 + {12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.ActiveCfg = Release|x86 +@@ -169,27 +143,16 @@ Global + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x64.Build.0 = Release|x64 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.ActiveCfg = Release|x86 + {8CC1C265-0507-44A3-9483-8FAF48513F4D}.Release|x86.Build.0 = Release|x86 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Debug|Win32.ActiveCfg = Debug|Win32 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Debug|Win32.Build.0 = Debug|Win32 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Debug|x64.ActiveCfg = Debug|Win32 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Debug|x86.ActiveCfg = Debug|Win32 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Release|Win32.ActiveCfg = Release|Win32 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Release|Win32.Build.0 = Release|Win32 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Release|x64.ActiveCfg = Release|Win32 ++ {7A13FEB0-3D89-4CCF-AA87-416A3D06303F}.Release|x86.ActiveCfg = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +- GlobalSection(NestedProjects) = preSolution +- {DE58D329-10DC-4C8D-9EFA-230A57314089} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} +- {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} +- {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} +- {89CE04CB-21DE-4ABB-9236-50529DD8C022} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} +- {4408A2DA-ED2D-44AE-A465-0B6D75E1FF86} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC} +- {7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} = {DE58D329-10DC-4C8D-9EFA-230A57314089} +- {52F880E7-D677-4C91-8516-D679CE0F46A8} = {DE58D329-10DC-4C8D-9EFA-230A57314089} +- {5D8252F5-E1D3-44A0-94C7-7CB75E843C10} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} +- {AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} +- {68A43817-2358-4A31-8FDF-FE21722BFBCF} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} +- {12F1C14F-5C7D-4075-9BAE-C091394FF99A} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} +- {0DE01712-C2D1-4CA4-B42C-5856456A8696} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} +- {090A081D-E8B5-4949-AA43-EE182B7101E3} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} +- {C43DEB69-8088-420B-B0CA-C699535E6D08} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} +- {EB36626D-36C2-41B3-B65E-762BAF27F137} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} +- {E31B349C-830C-4583-8BD9-30DA4398349F} = {89CE04CB-21DE-4ABB-9236-50529DD8C022} +- {8CC1C265-0507-44A3-9483-8FAF48513F4D} = {4408A2DA-ED2D-44AE-A465-0B6D75E1FF86} +- EndGlobalSection + EndGlobal +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index f679001..4d102c9 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -17,19 +17,20 @@ + # under the License. + # + +-# This script builds a WinSDK from a raw Qpid source checkout. ++# This script builds a WinSDK from a Qpid source checkout that ++# has been cleaned of any SVN artifacts. + # + # On entry: + # 1. Args[0] holds the relative path to Qpid/trunk. +-# Directory ".\$args[0]" holds the "cpp" directory and +-# file QPID_VERSION.txt. ++# Directory ".\$args[0]" holds the "cpp" directory and ++# file QPID_VERSION.txt. + # 2. Args[1] holds the x86 32-bit BOOST_ROOT. "c:\boost" + # 3. Args[2] holds the x64 64-bit BOOST_ROOT. "c:\boost_x64" +-# 4. Args[1] holds the version number. "0.7.946106-99" ++# 4. Args[3] holds the version number. "0.7.946106-99" + # 5. The current directory will receive x86 and x64 subdirs. + # 6. The x86 an x64 dirs are where cmake will run. + # 7. Two Boost installations, 32- and 64-bit, are available. +-# 9. No Boost directory must be on the path. ++# 9. Boost directories must not be on the path. + # 9. cmake, 7z, and devenv are already on the path. + # 10. devenv is Visual Studio 2008 + # +@@ -41,10 +42,10 @@ Set-PSDebug -Trace 1 + Set-PSDebug -strict + $ErrorActionPreference='Stop' + ++################################ + # + # Global variables + # +-# Define boost + [string] $global:bldwinsdkDirectory = Split-Path -parent $MyInvocation.MyCommand.Definition + [string] $global:sourceDirectory = Split-Path -parent $global:bldwinsdkDirectory + [string] $global:currentDirectory = Split-Path -parent $global:sourceDirectory +@@ -52,6 +53,23 @@ $ErrorActionPreference='Stop' + + ################################ + # ++# Unix2Dos ++# Change text file to DOS line endings ++# ++function Unix2Dos ++{ ++ param ++ ( ++ [string] $fname ++ ) ++ ++ $fContent = Get-Content $fname ++ $fContent | Set-Content $fname ++} ++ ++ ++################################ ++# + # BuildAPlatform + # Build a platform, x86 or x64. + # Compiles and packages Debug and RelWithDebInfo configurations. +@@ -115,17 +133,33 @@ function BuildAPlatform + devenv qpid-cpp.sln /build "$vsTargetRelease" /project INSTALL + + # Build the .NET binding +- devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` +- /build "Debug|$platform" /project org.apache.qpid.messaging.sessionreceiver +- +- # This would be kludgy if we have only one entry as the array declaration syntax +- # can't cope with just one nested array +- # Target must be a directory ++ if ("x86" -eq $platform) { ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "Debug|Win32" /project org.apache.qpid.messaging ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "Debug|$platform" /project org.apache.qpid.messaging.sessionreceiver ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "RelWithDebInfo|Win32" /project org.apache.qpid.messaging ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "RelWithDebInfo|$platform" /project org.apache.qpid.messaging.sessionreceiver ++ } else { ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "Debug|$platform" /project org.apache.qpid.messaging ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "Debug|$platform" /project org.apache.qpid.messaging.sessionreceiver ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "RelWithDebInfo|$platform" /project org.apache.qpid.messaging ++ devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` ++ /build "RelWithDebInfo|$platform" /project org.apache.qpid.messaging.sessionreceiver ++ } ++ ++ # Define lists of items to be touched in installation tree ++ # Move target must be a directory + $move=( + ('bin/*.lib','lib'), + ('bin/boost/*.dll','bin') + ) +- ++ + $preserve=( + 'include/qpid/agent', + 'include/qpid/amqp_0_10', +@@ -136,6 +170,7 @@ function BuildAPlatform + 'include/qpid/sys/posix/IntegerTypes.h', + 'include/qpid/types', + 'include/qpid/CommonImportExport.h') ++ + $remove=( + 'bin/qpidd.exe', 'bin/qpidbroker*.*', + 'bin/*PDB/qpidd.exe', 'bin/*PDB/qpidbroker*.*', +@@ -187,13 +222,22 @@ function BuildAPlatform + } + Remove-Item -recurse $preserve_dir + +- # Install the README ++ # Install the README and MS-LICENSE + Copy-Item -force -path "$qpid_cpp_src/README-winsdk.txt" -destination "$install_dir/README-winsdk.txt" +- +- # Install the .NET binding +- Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" +- Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/DebugPDB" +- ++ Copy-Item -force -path "$qpid_cpp_src/src/windows/winsdk/MS-LICENSE.HTM" -destination "$install_dir/MS-LICENSE.HTM" ++ ++ # Append the MSVC license info to the plain LICENSE ++ $licenseinfo = Get-Content "$qpid_cpp_src/src/windows/winsdk/LICENSE-MSVC" ++ Add-Content "$install_dir/LICENSE" $licenseinfo ++ ++ # Set top level info files to DOS line endings ++ Unix2Dos "$install_dir/README-winsdk.txt" ++ Unix2Dos "$install_dir/LICENSE" ++ Unix2Dos "$install_dir/NOTICE" ++ ++ # Install the Debug .NET binding ++ Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" ++ + # Install the .NET binding examples + New-Item -path $(Join-Path $(Get-Location) $install_dir) -name dotnet_examples -type directory + New-Item -path $(Join-Path $(Get-Location) $install_dir/dotnet_examples) -name examples -type directory +@@ -206,14 +250,24 @@ function BuildAPlatform + $dst = Resolve-Path "$install_dir/dotnet_examples" + Copy-Item "$src\*" -destination "$dst\" -recurse -force + +- # Zip the /bin PDB files into two zip files. +- # we previously arranged that the Debug pdbs go in the DebugPDB subdirectory +- # and the Release pdbs go in the ReleasePDB subdirectory ++ # Zip the /bin PDB files + &'7z' a -mx9 ".\$install_dir\bin\symbols-debug.zip" ".\$install_dir\bin\DebugPDB\*.pdb" + &'7z' a -mx9 ".\$install_dir\bin\symbols-release.zip" ".\$install_dir\bin\ReleasePDB\*.pdb" +- + Remove-Item -recurse ".\$install_dir\bin\DebugPDB" + Remove-Item -recurse ".\$install_dir\bin\ReleasePDB" ++ ++ # Zip the dotnet bindings ++ New-Item -force -type directory "$install_dir/bin/bindingDebug" ++ Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin/bindingDebug/" ++ Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/bindingDebug/" ++ &'7z' a -mx9 ".\$install_dir\bin\dotnet-binding-debug.zip" ".\$install_dir\bin\bindingDebug\*.*" ++ Remove-Item -recurse ".\$install_dir\bin\bindingDebug" ++ ++ New-Item -force -type directory "$install_dir/bin/bindingRelease" ++ Copy-Item -force -path "./src/RelWithDebInfo/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin/bindingRelease/" ++ Copy-Item -force -path "./src/RelWithDebInfo/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/bindingRelease/" ++ &'7z' a -mx9 ".\$install_dir\bin\dotnet-binding-release.zip" ".\$install_dir\bin\bindingRelease\*.*" ++ Remove-Item -recurse ".\$install_dir\bin\bindingRelease" + + # Create a new zip for the whole kit. + # Exclude *.pdb so as not include the debug symbols twice +diff --git a/qpid/cpp/src/windows/winsdk/LICENSE-MSVC b/qpid/cpp/src/windows/winsdk/LICENSE-MSVC +new file mode 100644 +index 0000000..8f6d953 +--- /dev/null ++++ b/qpid/cpp/src/windows/winsdk/LICENSE-MSVC +@@ -0,0 +1,15 @@ ++========================================================================= ++== Microsoft Distributable Code == ++========================================================================= ++ ++This product includes files derived from the Microsoft Windows ++Software Development Kit for Windows Server 2008 and .NET Framework ++3.5 ("MSW SDK"). A copy of the Microsoft Software License Terms for ++the MSW SDK ("MS License") accompanies this product. The ++aforementioned files are "Distributable Code" listed in MS-LICENSE.HTM, ++under the terms of the MS License. With respect to those files, by ++using this product, you agree to be bound by the relevant provisions ++of the MS License to the same extent as though you had developed the ++product using the MSW SDK. If you do not agree to be bound by those ++provisions, do not use this product. ++ +diff --git a/qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM b/qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM +new file mode 100644 +index 0000000..7e06093 +--- /dev/null ++++ b/qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM +@@ -0,0 +1,806 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
++ ++

MICROSOFT SOFTWARE LICENSE TERMS

++ ++

MICROSOFT WINDOWS SOFTWARE DEVELOPMENT KIT

++ ++

for Windows Server 2008 and .NET Framework ++3.5

++ ++

These license terms are an agreement between Microsoft ++Corporation (or based on where you live, one of its affiliates) and you.  Please ++read them.  They apply to the software named above, which includes the ++media on which you received it, if any.  The terms also apply to any ++Microsoft

++ ++

         ++updates,

++ ++

         ++supplements,

++ ++

         ++Internet-based ++services, and

++ ++

         ++support ++services

++ ++

for this software, unless other terms accompany those ++items.  If so, those terms apply.

++ ++

BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.  IF ++YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.

++ ++

If you comply with these license terms, you have the ++rights below.

++ ++

1.      ++INSTALLATION ++AND USE RIGHTS. 

++ ++

a.      ++Installation ++and Use.  ++One user may install and use any number of copies of the software on your ++devices to design, develop and test your programs that run on a Microsoft ++Windows operating system.

++ ++

b.      ++Included ++Microsoft Programs.  ++The software contains other Microsoft programs.  These license terms apply ++to your use of those programs.

++ ++

2.      ++ADDITIONAL ++LICENSING REQUIREMENTS AND/OR USE RIGHTS.

++ ++

a.      ++Distributable ++Code.  ++The software contains code that you are permitted to distribute in programs you ++develop if you comply with the terms below.

++ ++

i.         ++Right ++to Use and Distribute.  ++The code and text files listed below are Distributable Code.

++ ++

         ++REDIST.TXT ++Files.  ++You may copy and distribute the object code form of code listed in REDIST.TXT ++files.

++ ++

         ++Sample ++Code.  ++You may modify, copy, and distribute the source and object code form of code ++marked as sample.

++ ++

         ++Microsoft ++Merge Modules.  ++You may copy and distribute the unmodified output of Microsoft Merge Modules.

++ ++

         ++Third ++Party Distribution.  ++You may permit distributors of your programs to copy and distribute the ++Distributable Code as part of those programs.

++ ++

ii.       ++Distribution ++Requirements.  ++For any Distributable Code you distribute, you must

++ ++

         ++add ++significant primary functionality to it in your programs;

++ ++

         ++for any ++Distributable Code having a filename extension of .lib, distribute only the ++results of running such Distributable Code through a linker with your ++application;

++ ++

         ++distribute ++Distributable Code included in a setup program only as part of that setup ++program without modification;

++ ++

         ++require ++distributors and external end users to agree to terms that protect it at least ++as much as this agreement;

++ ++

         ++display ++your valid copyright notice on your programs;

++ ++

         ++for ++Distributable Code from the Windows Media Services SDK portions of the ++software, include in your programs Help-About box (or in another obvious place ++if there is no box) the following copyright notice:  Portions utilize ++Microsoft Windows Media Technologies.  Copyright (c) 2006 Microsoft ++Corporation.  All Rights Reserved; and

++ ++

         ++indemnify, ++defend, and hold harmless Microsoft from any claims, including attorneys fees, ++related to the distribution or use of your programs.

++ ++

iii.      ++Distribution ++Restrictions.  You ++may not

++ ++

         ++alter ++any copyright, trademark or patent notice in the Distributable Code;

++ ++

         ++use ++Microsofts trademarks in your programs names or in a way that suggests your ++programs come from or are endorsed by Microsoft;

++ ++

         ++include ++Distributable Code in malicious, deceptive or unlawful programs; or

++ ++

         ++modify ++or distribute the source code of any Distributable Code so that any part of it ++becomes subject to an Excluded License.  An Excluded License is one that ++requires, as a condition of use, modification or distribution, that

++ ++

         ++the code ++be disclosed or distributed in source code form; or

++ ++

         ++others ++have the right to modify it.

++ ++

b.      ++Additional ++Functionality.  Microsoft ++may provide additional functionality for the software.  Other license ++terms and fees may apply.

++ ++

3.      ++INTERNET-BASED ++SERVICES.  Microsoft ++provides Internet-based services with the software.  It may change or ++cancel them at any time. You may not use this service in any way that could ++harm it or impair anyone elses use of it.  You may not use the service to ++try to gain unauthorized access to any service, data, account or network by any ++means.

++ ++

4.      ++MICROSOFT ++.NET BENCHMARK TESTING. ++ The software includes one or more components of the .NET Framework 3.5 ++(.NET Components).  You may conduct internal benchmark testing of those ++components.  You may disclose the results of any benchmark test of those ++components, provided that you comply with the conditions set forth at ++http://go.microsoft.com/fwlink/?LinkID=66406.  Notwithstanding any other ++agreement you may have with Microsoft, if you disclose such benchmark test ++results, Microsoft shall have the right to disclose the results of benchmark ++tests it conducts of your products that compete with the applicable .NET ++Component, provided it complies with the same conditions set forth at ++http://go.microsoft.com/fwlink/?LinkID=66406.

++ ++

5.      ++Scope of License.  The software is licensed, not ++sold. This agreement only gives you some rights to use the software.  ++Microsoft reserves all other rights.  Unless applicable law gives you more ++rights despite this limitation, you may use the software only as expressly ++permitted in this agreement.  In doing so, you must comply with any ++technical limitations in the software that only allow you to use it in certain ++ways.  For more information, see www.microsoft.com/licensing/userights.  You may not

++ ++

         ++work ++around any technical limitations in the software;

++ ++

         ++reverse ++engineer, decompile or disassemble the software, except and only to the extent ++that applicable law expressly permits, despite this limitation;

++ ++

         ++make ++more copies of the software than specified in this agreement or allowed by ++applicable law, despite this limitation;

++ ++

         ++publish ++the software for others to copy;

++ ++

         ++rent, ++lease or lend the software; or

++ ++

         ++use the ++software for commercial software hosting services.

++ ++

6.      ++CODE GENERATION ++AND OPTIMIZATION TOOLS.  You may not use the code generation or ++optimization tools in the software (such as compilers, linkers, assemblers, ++runtime code generators, and code generating design and modeling tools) to ++create programs, object code, libraries, assemblies, or executables to run on a ++platform other than Microsoft operating systems, run-time technologies, or ++application platforms.

++ ++

7.      ++BACKUP ++COPY.  ++You may make one backup copy of the software.  You may use it only to ++reinstall the software.

++ ++

8.      ++DOCUMENTATION.  Any person ++that has valid access to your computer or internal network may copy and use the ++documentation for your internal, reference purposes.

++ ++

9.      ++TRANSFER ++TO A THIRD PARTY.  The first user of the software may transfer it, and this ++agreement, directly to a third party.  Before the transfer, that party ++must agree that this agreement applies to the transfer and use of the ++software.  The first user must uninstall the software before transferring ++it separately from the device.  The first user may not retain any copies.

++ ++

10. ++Export Restrictions.  The software ++is subject to United States export laws and regulations.  You must comply ++with all domestic and international export laws and regulations that apply to ++the software.  These laws include restrictions on destinations, end users ++and end use.  For additional information, see www.microsoft.com/exporting.

++ ++

11.  SUPPORT ++SERVICES. ++Because ++this software is as is, we may not provide support services for it.

++ ++

12.  Entire ++Agreement.  ++This agreement, and the terms for supplements, updates, Internet-based services ++and support services that you use, are the entire agreement for the software ++and support services.

++ ++

13.  ++Applicable Law.

++ ++

a.      ++United ++States.  ++If you acquired the software in the United States, Washington state law governs ++the interpretation of this agreement and applies to claims for breach of it, ++regardless of conflict of laws principles.  The laws of the state where ++you live govern all other claims, including claims under state consumer ++protection laws, unfair competition laws, and in tort.

++ ++

b.      ++Outside ++the United States.  ++If you acquired the software in any other country, the laws of that country ++apply.

++ ++

14.  Legal Effect.  This agreement ++describes certain legal rights.  You may have other rights under the laws ++of your country.  You may also have rights with respect to the party from ++whom you acquired the software.  This agreement does not change your ++rights under the laws of your country if the laws of your country do not permit ++it to do so.

++ ++

15.  Disclaimer of ++Warranty.   ++The software is licensed as-is.  ++You bear the risk of using it.  Microsoft gives no express warranties, ++guarantees or conditions.  You may have additional consumer rights under ++your local laws which this agreement cannot change.  To the extent ++permitted under your local laws, Microsoft excludes the implied warranties of ++merchantability, fitness for a particular purpose and non-infringement.

++ ++

16.  Limitation on and ++Exclusion of Remedies and Damages.  You can recover from Microsoft and its ++suppliers only direct damages up to U.S. $5.00.  You cannot recover any ++other damages, including consequential, lost profits, special, indirect or ++incidental damages.

++ ++

This limitation applies to

++ ++

         ++anything ++related to the software, services, content (including code) on third party ++Internet sites, or third party programs; and

++ ++

         ++claims ++for breach of contract, breach of warranty, guarantee or condition, strict liability, ++negligence, or other tort to the extent permitted by applicable law.

++ ++

It also applies even if Microsoft knew or should have ++known about the possibility of the damages.  The above limitation or ++exclusion may not apply to you because your country may not allow the exclusion ++or limitation of incidental, consequential or other damages.

++ ++

Please ++note: As this software is distributed in Quebec, Canada, some of the clauses in ++this agreement are provided below in French.

++ ++

Remarque : Ce ++logiciel tant distribu au Qubec, Canada, certaines des clauses dans ce ++contrat sont fournies ci-dessous en franais.

++ ++

EXONRATION DE GARANTIE. Le logiciel ++vis par une licence est offert tel quel . Toute utilisation de ce logiciel ++est votre seule risque et pril. Microsoft naccorde aucune autre garantie ++expresse. Vous pouvez bnficier de droits additionnels en vertu du droit local ++sur la protection dues consommateurs, que ce contrat ne peut modifier. La ou ++elles sont permises par le droit locale, les garanties implicites de qualit ++marchande, dadquation un usage particulier et dabsence de contrefaon sont ++exclues.

++ ++

LIMITATION DES DOMMAGES-INTRTS ET ++EXCLUSION DE RESPONSABILIT POUR LES DOMMAGES.  Vous pouvez ++obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de ++dommages directs uniquement hauteur de 5,00 $ US. Vous ne pouvez prtendre ++aucune indemnisation pour les autres dommages, y compris les dommages spciaux, ++indirects ou accessoires et pertes de bnfices.

++ ++

Cette limitation concerne :

++ ++

         ++tout  ++ce qui est reli au logiciel, aux services ou au contenu (y compris le code) ++figurant sur des sites Internet tiers ou dans des programmes tiers ; et

++ ++

         ++les ++rclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit ++stricte, de ngligence ou dune autre faute dans la limite autorise par la loi ++en vigueur.

++ ++

Elle sapplique galement, mme si Microsoft ++connaissait ou devrait connatre lventualit dun tel dommage.  Si votre ++pays nautorise pas lexclusion ou la limitation de responsabilit pour les ++dommages indirects, accessoires ou de quelque nature que ce soit, il se peut ++que la limitation ou lexclusion ci-dessus ne sappliquera pas votre gard.

++ ++

EFFET JURIDIQUE.  Le prsent ++contrat dcrit certains droits juridiques. Vous pourriez avoir dautres droits ++prvus par les lois de votre pays.  Le prsent contrat ne modifie pas les ++droits que vous confrent les lois de votre pays si celles ci ne le permettent ++pas.

++ ++

 

++ ++
++ ++ ++ ++ ++ +-- +1.5.5.6 + +From 4ab55e85e3a73cededa38ff8915825bb01e71a79 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Thu, 14 Oct 2010 20:55:58 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2907 Developing Qpid Cpp Messaging .NET Binding requires setup help + +This script helps a user set up 32-bit and 64-bit Windows development trees without manually editing CMake answer files. + +Theory of operation and use case descriptions are in the script comments. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1022704 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit eb80ef6cc35a1efdb882b94a404a37380b457302) +--- + .../cpp/bindings/qpid/dotnet/configure-windows.ps1 | 522 ++++++++++++++++++++ + 1 files changed, 522 insertions(+), 0 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1 + +diff --git a/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1 b/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1 +new file mode 100644 +index 0000000..3439591 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/configure-windows.ps1 +@@ -0,0 +1,522 @@ ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License. ++# ++ ++# ++# configure-windows.ps1 ++# ===================== ++# ++# This script configures a qpid\cpp developer build environment under Windows ++# to enable working with cpp\bindings\qpid\dotnet binding source code. ++# ++# * Supports 32-bit and/or 64-bit development platforms. ++# ++# * User chooses in-source or out-of-source build directories. ++# ++# - 'In-source' builds happen when CMake is run from directory qpid\cpp. ++# Hundreds of CMake-generated output files are placed in qpid\cpp\src. ++# These files go right on top of files that are part of the source tree ++# in qpid\cpp\src. ++# In-source builds support only one platform. ++# Choose only a 32-bit or a 64-bit platform but not both. ++# ++# - Out-of-source builds happen when the user chooses another directory ++# under qpid in which to run CMake. Out-of-source builds are required ++# in order to build both x86 and x64 targets using the same source tree. ++# For each build platform (32-bit x86 or Win32, or 64-bit x64) the user ++# specifies a build directory and a specific version of Boost. ++# Many platform/Boost-version directories may reside side by side. ++# ++# * User chooses to run CMake or not. ++# ++# - When a new build directory is created then the user is given the ++# option of running CMake in that directory. Running CMake is a ++# necessary step as CMake creates important source, solution, and ++# project files. ++# ++# - If a directory "looks like" is has already had CMake run in it ++# then this script skips running CMake again. ++# ++# ++# Prerequisites ++# ++# 1. Powershell must be installed. ++# 2. 32-bit and/or 64-bit Boost libraries must be installed in separate ++# directories. A user system may have any number of Boost library ++# versions installed on it as long as each may be referred to through ++# a separate BOOST_ROOT directory path. ++# 3. CMake 2.8 (or later) must be installed. The cmake\bin directory ++# must be in the user's path. ++# 4. Boost library specifications may or may not be in the user's path. ++# The script author recommeds not to have Boost in the path and only ++# allow the Boost path to be specified by generated command procedures. ++# 5. Visual Studio build environment must be installed. ++# ++# ++# Use case: Create a new build environment ++# ======================================== ++# ++# Required Boost: ++# 32-bit library - C:\Boost ++# 64-bit library - D:\Boost_64 ++# ++# Required Qpid checkout tree ++# C:\svn\qpid\... ++# ++# Run this script. It will ask for four directories: ++# ++# Needed info User clicks on or adds new ++# ---------------- -------------------------- ++# 32-bit Boost C:\boost ++# 32-bit build dir C:\svn\qpid\build32 ++# 64-bit Boost D:\Boost_64 ++# 64-bit build dir C:\svn\qpid\build64 ++# ++# In this example the build dirs are new. The script will prompt ++# asking if CMake is to run in the build directories. User chooses Yes. ++# ++# Now this script runs CMake twice, once each with the 32-bit and 64-bit ++# generators. ++# * This step creates qpid-cpp.sln and related project files. ++# C:\svn\qpid\build32\qpid-cpp.sln ++# C:\svn\qpid\build64\qpid-cpp.sln ++# ++# This script generates other scripts as follows: ++# ++# C:\svn\qpid\build32\start-devenv-messaging-x86-32bit.ps1 ++# C:\svn\qpid\build32\start-devenv-messaging-x86-32bit.bat ++# C:\svn\qpid\build32\setenv-messaging-x86-32bit.bat ++# ++# C:\svn\qpid\build64\start-devenv-messaging-x64-64bit.ps1 ++# C:\svn\qpid\build64\start-devenv-messaging-x64-64bit.bat ++# C:\svn\qpid\build64\setenv-messaging-x64-64bit.bat ++# ++# Next the user compiles solution qpid\build32\qpid-cpp.sln. ++# ++# Using the generated scripts: ++# ++# Case 1. Run an executable in 32-bit mode. ++# 1. Open a command prompt. ++# 2. > CD c:\svn\qpid\build32 ++# 3. > CALL setenv-messaging-x86-32bit.bat ++# 4. > CD src\debug ++# 5. > run the chosen program ++# ++# Note: Step #3 adds Boost to the user's path. This script selects the ++# version of Boost to match the executables in src\debug. ++# ++# Case 2. Launch Visual Studio org.apache.qpid.messaging.sln in 64-bit mode. ++# 1. > CD c:\svn\qpid\build64 ++# 2. > powershell start-devenv-messaging-x64-64bit.ps1 ++# or ++# 1. Double-click c:\svn\qpid\build64\start-devenv-messaging-x64-64bit.bat ++# ++# Note: In this case the scripts set QPID_BUILD_ROOT to point to the out-of- ++# source directory used by qpid-cpp.sln. Also the scripts put Boost in ++# the path so that executables may run directly from Visual Studio. ++# ++ ++Set-PSDebug -Trace 0 ++Set-PSDebug -strict ++$ErrorActionPreference='Stop' ++ ++############################# ++# global strings to be written to script files ++# ++$global:txtPath = '$env:PATH' ++$global:txtQR = '$env:QPID_BUILD_ROOT' ++$global:txtWH = 'Write-Host' ++ ++ ++############################# ++# Select-Folder ++# Return a folder or null ++# ++function Select-Folder ($message="Select a folder", $path=0) ++{ ++ $shellApp = New-Object -comObject Shell.Application ++ $folder = $shellApp.BrowseForFolder(0, $message, 0, $path) ++ if ($folder -ne $null) { ++ $folder.self.Path ++ } ++} ++ ++ ++############################# ++# AskYesOrNo ++# Show modal dialog messagebox and return yes or no ++# ++function AskYesOrNo ($Question="No question?", $Title="No Title?") ++{ ++ $dlg = [Windows.Forms.MessageBox]::Show($Question, $Title, ` ++ [Windows.Forms.MessageBoxButtons]::YesNo, ` ++ [Windows.Forms.MessageBoxIcon]::Question) ++ ++ $result = $dlg -eq [Windows.Forms.DialogResult]::Yes ++ ++ $result ++} ++ ++ ++############################# ++# SanityCheckBoostPath ++# A path is a "boost path" if it contains ++# both lib and include subdirectories. ++# ++function SanityCheckBoostPath ($path=0) ++{ ++ $result = $true ++ $displayPath = "" ++ ++ if ($path -ne $null) { ++ $displayPath = $path ++ ++ $toTest = ('include', 'lib') ++ foreach ($pattern in $toTest) { ++ $target = Join-Path $path $pattern ++ if (!(Test-Path -path $target)) { ++ $result = $false ++ } ++ } ++ } else { ++ $result = $false ++ } ++ ++ if (! $result) { ++ Write-Host "The path ""$displayPath"" does not appear to be a Boost root path." ++ } ++ $result ++} ++ ++ ++############################# ++# SanityCheckBuildPath ++# A path is a "build path" if it contains ++# various subdirectories. ++# ++function SanityCheckBuildPath ($path=0) ++{ ++ $result = $true ++ $displayPath = "" ++ if ($path -ne $null) { ++ $displayPath = $path ++ ++ $toTest = ('CMakeFiles', 'docs', 'etc', 'examples', 'include', ++ 'managementgen', 'src') ++ foreach ($pattern in $toTest) { ++ $target = Join-Path $path $pattern ++ if (!(Test-Path -path $target)) { ++ $result = $false ++ } ++ } ++ } else { ++ $result = $false ++ } ++ if (! $result) { ++ Write-Host "The path ""$displayPath"" does not appear to be a Qpid C++ build root path." ++ } ++ $result ++} ++ ++ ++############################# ++# WriteDotnetBindingSlnLauncherPs1 ++# Write a powershell script that sets up the environment ++# and then launches Visual Studio solution file. ++# ++function WriteDotnetBindingSlnLauncherPs1 ++{ ++ param ++ ( ++ [string] $slnName, ++ [string] $boostRoot, ++ [string] $buildRoot, ++ [string] $cppDir, ++ [string] $vsPlatform, ++ [string] $nBits, ++ [string] $outfileName ++ ) ++ ++ $out = @("# ++# Launch $slnName in Visual Studio $vsPlatform ($nBits-bit) environment ++# ++$global:txtPath = ""$boostRoot\lib;$global:txtPath"" ++$global:txtQR = ""$buildRoot"" ++$global:txtWH ""Launch $slnName in Visual Studio $vsPlatform ($nBits-bit) environment."" ++$cppDir\bindings\qpid\dotnet\$slnName ++") ++ Write-Host " $buildRoot\$outfileName" ++ $out | Out-File "$buildRoot\$outfileName" -encoding ASCII ++} ++ ++ ++############################# ++# WriteDotnetBindingSlnLauncherBat ++# Write a batch file that ++# launches a powershell script. ++# ++function WriteDotnetBindingSlnLauncherBat ++{ ++ param ++ ( ++ [string] $slnName, ++ [string] $buildRoot, ++ [string] $vsPlatform, ++ [string] $nBits, ++ [string] $psScriptName, ++ [string] $outfileName ++ ) ++ ++ $out = @("@ECHO OFF ++REM ++REM Launch $slnName in Visual Studio $vsPlatform ($nBits-bit) environment ++REM ++ECHO Launch $slnName in Visual Studio $vsPlatform ($nBits-bit) environment ++powershell $buildRoot\$psScriptName ++") ++ Write-Host " $buildRoot\$outfileName" ++ $out | Out-File "$buildRoot\$outfileName" -encoding ASCII ++} ++ ++ ++############################# ++# WriteDotnetBindingEnvSetupBat ++# Write a batch file that sets the desired environment into ++# the user's current environment settings. ++# ++function WriteDotnetBindingEnvSetupBat ++{ ++ param ++ ( ++ [string] $slnName, ++ [string] $boostRoot, ++ [string] $buildRoot, ++ [string] $vsPlatform, ++ [string] $nBits, ++ [string] $outfileName ++ ) ++ ++ $out = @("@ECHO OFF ++REM ++REM Call this command procedure from a command prompt to set up a $vsPlatform ($nBits-bit) ++REM $slnName environment ++REM ++REM > call $outfileName ++REM > ++REM ++ECHO %PATH% | FINDSTR /I boost > NUL ++IF %ERRORLEVEL% EQU 0 ECHO WARNING: Boost is defined in your path multiple times! ++SET PATH=$boostRoot\lib;%PATH% ++SET QPID_BUILD_ROOT=$buildRoot ++ECHO Environment set for $slnName $vsPlatform $nBits-bit development. ++") ++ Write-Host " $buildRoot\$outfileName" ++ $out | Out-File "$buildRoot\$outfileName" -encoding ASCII ++} ++ ++ ++############################# ++# Main ++############################# ++# ++# curDir is qpid\cpp\bindings\qpid\dotnet. ++# ++[string] $curDir = Split-Path -parent $MyInvocation.MyCommand.Definition ++[string] $projRoot = Resolve-Path (Join-Path $curDir "..\..\..\..") ++[string] $cppDir = Resolve-Path (Join-Path $curDir "..\..\..") ++ ++[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null ++ ++############################# ++# User dialog to get optional 32-bit boost and build paths ++# ++$boost32 = Select-Folder -message 'Select 32-bit BOOST_ROOT folder. Press CANCEL to skip 32-bit processing.' ++ ++$defined32 = ($boost32 -ne $null) -and ($boost32 -ne '') ++if ($defined32) { ++ $found = SanityCheckBoostPath $boost32 ++ if (! $found) { ++ exit ++ } ++} ++ ++$make32 = $false ++if ($defined32) { ++ ++ $build32 = Select-Folder -message 'Select 32-bit QPID_BUILD_ROOT folder.' -path $projRoot ++ ++ $found = ($build32 -ne $null) -and ($build32 -ne '') ++ if (! $found) { ++ Write-Host "You must select a build root folder for 32-bit builds" ++ exit ++ } ++ $found = SanityCheckBuildPath $build32 ++ if ($found) { ++ Write-Host "Directory ""$build32"" is already set by CMake. CMake will not be re-run." ++ } else { ++ $make32 = AskYesOrNo "Run CMake in $build32 ?" "32-Bit Builds - Choose CMake run or not" ++ } ++} ++ ++############################# ++# User dialog to get optional 64-bit boost and build paths ++# ++$boost64 = Select-Folder -message 'Select 64-bit BOOST_ROOT folder. Press CANCEL to skip 64-bit processing.' ++ ++$defined64 = ($boost64 -ne $null) -and ($boost64 -ne '') ++if ($defined64) { ++ $found = SanityCheckBoostPath $boost64 ++ if (! $found) { ++ exit ++ } ++} ++ ++$make64 = $false ++if ($defined64) { ++ $build64 = Select-Folder -message 'Select 64-bit QPID_BUILD_ROOT folder.' -path $projRoot ++ ++ $found = ($build64 -ne $null) -and ($build64 -ne '') ++ if (! $found) { ++ Write-Host "You must select a build root folder for 64-bit builds" ++ exit ++ } ++ $found = SanityCheckBuildPath $build64 ++ if ($found) { ++ Write-Host "Directory ""$build64"" is already set by CMake. CMake will not be re-run." ++ } else { ++ $make64 = AskYesOrNo "Run CMake in $build64 ?" "64-Bit Builds - Choose CMake run or not" ++ } ++} ++ ++############################# ++# Conditionally run CMake ++# ++# 32-bit X86 ++# ++if ($make32) { ++ $env:BOOST_ROOT = "$boost32" ++ cd "$build32" ++ Write-Host "Running 32-bit CMake in $build32 ..." ++ CMake -G "Visual Studio 9 2008" "-DCMAKE_INSTALL_PREFIX=install_x86" $cppDir ++} else { ++ Write-Host "Skipped 32-bit CMake." ++} ++ ++# ++# 64-bit X64 ++# ++if ($make64) { ++ $env:BOOST_ROOT = "$boost64" ++ cd "$build64" ++ Write-Host "Running 64-bit CMake in $build64" ++ CMake -G "Visual Studio 9 2008 Win64" "-DCMAKE_INSTALL_PREFIX=install_x64" $cppDir ++} else { ++ Write-Host "Skipped 64-bit CMake." ++} ++ ++############################# ++# Emit scripts ++# ++# 32-bit scripts ++# ++if ($defined32) { ++ ++ Write-Host "Writing 32-bit scripts..." ++ ++ ########### ++ # Powershell script to launch org.apache.qpid.messaging.sln ++ # ++ WriteDotnetBindingSlnLauncherPs1 -slnName "org.apache.qpid.messaging.sln" ` ++ -boostRoot "$boost32" ` ++ -buildRoot "$build32" ` ++ -cppDir "$cppDir" ` ++ -vsPlatform "x86" ` ++ -nBits "32" ` ++ -outfileName "start-devenv-messaging-x86-32bit.ps1" ++ ++ ++ ########### ++ # Batch script (that you doubleclick) to launch powershell script ++ # that launches org.apache.qpid.messaging.sln. ++ # ++ WriteDotnetBindingSlnLauncherBat -slnName "org.apache.qpid.messaging.sln" ` ++ -buildRoot "$build32" ` ++ -vsPlatform "x86" ` ++ -nBits "32" ` ++ -psScriptName "start-devenv-messaging-x86-32bit.ps1" ` ++ -outfileName "start-devenv-messaging-x86-32bit.bat" ++ ++ ########### ++ # Batch script (that you CALL from a command prompt) ++ # to establish the org.apache.qpid.messaging.sln build environment. ++ # ++ WriteDotnetBindingEnvSetupBat -slnName "org.apache.qpid.messaging.sln" ` ++ -boostRoot "$boost32" ` ++ -buildRoot "$build32" ` ++ -vsPlatform "x86" ` ++ -nBits "32" ` ++ -outfileName "setenv-messaging-x86-32bit.bat" ++ ++} else { ++ Write-Host "Skipped writing 32-bit scripts." ++} ++ ++############################# ++# 64-bit scripts ++# ++if ($defined64) { ++ ++ Write-Host "Writing 64-bit scripts..." ++ ++ ########### ++ # Powershell script to launch org.apache.qpid.messaging.sln ++ # ++ WriteDotnetBindingSlnLauncherPs1 -slnName "org.apache.qpid.messaging.sln" ` ++ -boostRoot "$boost64" ` ++ -buildRoot "$build64" ` ++ -cppDir "$cppDir" ` ++ -vsPlatform "x64" ` ++ -nBits "64" ` ++ -outfileName "start-devenv-messaging-x64-64bit.ps1" ++ ++ ++ ########### ++ # Batch script (that you doubleclick) to launch powershell script ++ # that launches org.apache.qpid.messaging.sln. ++ # ++ WriteDotnetBindingSlnLauncherBat -slnName "org.apache.qpid.messaging.sln" ` ++ -buildRoot "$build64" ` ++ -vsPlatform "x64" ` ++ -nBits "64" ` ++ -psScriptName "start-devenv-messaging-x64-64bit.ps1" ` ++ -outfileName "start-devenv-messaging-x64-64bit.bat" ++ ++ ########### ++ # Batch script (that you CALL from a command prompt) ++ # to establish the org.apache.qpid.messaging.sln build environment. ++ # ++ WriteDotnetBindingEnvSetupBat -slnName "org.apache.qpid.messaging.sln" ` ++ -boostRoot "$boost64" ` ++ -buildRoot "$build64" ` ++ -vsPlatform "x64" ` ++ -nBits "64" ` ++ -outfileName "setenv-messaging-x64-64bit.bat" ++ ++} else { ++ Write-Host "Skipped writing 64-bit scripts." ++} +-- +1.5.5.6 + +From b3fc3c886981f39f395c98a9b9ef79fc26fa11c1 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Fri, 22 Oct 2010 18:06:07 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2913 QPID Cpp Messaging Libraries for WinSDK Are Not Signed + +* Add the strong key file signature to all variants of org.apache.qpid.messaging. +* Clone the qpid.snk file from messaging to sessionreceiver. +* Add the strong key file signature to all variants of org.apache.qpid.messaging.sessionreceiver. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1026436 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 64200a2b86423f1addd8929f64cc1ec51ca87fb5) +--- + .../dotnet/src/org.apache.qpid.messaging.vcproj | 4 ++++ + ...rg.apache.qpid.messaging.sessionreceiver.csproj | 7 ++++++- + .../qpid/dotnet/src/sessionreceiver/qpid.snk | Bin 0 -> 596 bytes + 3 files changed, 10 insertions(+), 1 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/qpid.snk + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index cedff6b..1eb0b71 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -249,6 +249,7 @@ + GenerateDebugInformation="true" + AssemblyDebug="1" + TargetMachine="1" ++ KeyFile="qpid.snk" + /> + + + + ++ + + + Debug +@@ -12,6 +12,8 @@ + org.apache.qpid.messaging.sessionreceiver + v3.5 + 512 ++ true ++ qpid.snk + + + true +@@ -110,6 +112,9 @@ + Org.Apache.Qpid.Messaging +
+
++ ++ ++ + + + + false + false +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb +index 100283c..d0727fe 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/AssemblyInfo.vb +@@ -1,3 +1,22 @@ ++' ++' Licensed to the Apache Software Foundation (ASF) under one ++' or more contributor license agreements. See the NOTICE file ++' distributed with this work for additional information ++' regarding copyright ownership. The ASF licenses this file ++' to you under the Apache License, Version 2.0 (the ++' "License"); you may not use this file except in compliance ++' with the License. You may obtain a copy of the License at ++' ++' http://www.apache.org/licenses/LICENSE-2.0 ++' ++' Unless required by applicable law or agreed to in writing, ++' software distributed under the License is distributed on an ++' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++' KIND, either express or implied. See the License for the ++' specific language governing permissions and limitations ++' under the License. ++' ++ + Imports System + Imports System.Reflection + Imports System.Runtime.InteropServices +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb +index 19d7b32..fa8cc43 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.Designer.vb +@@ -1,3 +1,22 @@ ++' ++' Licensed to the Apache Software Foundation (ASF) under one ++' or more contributor license agreements. See the NOTICE file ++' distributed with this work for additional information ++' regarding copyright ownership. The ASF licenses this file ++' to you under the Apache License, Version 2.0 (the ++' "License"); you may not use this file except in compliance ++' with the License. You may obtain a copy of the License at ++' ++' http://www.apache.org/licenses/LICENSE-2.0 ++' ++' Unless required by applicable law or agreed to in writing, ++' software distributed under the License is distributed on an ++' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++' KIND, either express or implied. See the License for the ++' specific language governing permissions and limitations ++' under the License. ++' ++ + '------------------------------------------------------------------------------ + ' + ' This code was generated by a tool. +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx +index 3a752df..70432f3 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/visualbasic.example.client/MyProject/Resources.resx +@@ -1,4 +1,22 @@ + ++ + + + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +index b6de578..030bcc4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln +@@ -1,5 +1,25 @@ + Microsoft Visual Studio Solution File, Format Version 10.00 + # Visual Studio 2008 ++ ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License ++# ++ + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org.Apache.Qpid.Messaging", "src\org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}" + EndProject + Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{34C477FB-B0CC-4AB9-A346-EA7B055469AC}" +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/app.rc b/qpid/cpp/bindings/qpid/dotnet/src/app.rc +index 8c1d640..35b3d8d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/app.rc ++++ b/qpid/cpp/bindings/qpid/dotnet/src/app.rc +@@ -1,3 +1,22 @@ ++// ++// Licensed to the Apache Software Foundation (ASF) under one ++// or more contributor license agreements. See the NOTICE file ++// distributed with this work for additional information ++// regarding copyright ownership. The ASF licenses this file ++// to you under the Apache License, Version 2.0 (the ++// "License"); you may not use this file except in compliance ++// with the License. You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++// ++ + // Microsoft Visual C++ generated resource script. + // + #include "resource.h" +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc +index e0607fa..85b1564 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc +@@ -1,3 +1,22 @@ ++// ++// Licensed to the Apache Software Foundation (ASF) under one ++// or more contributor license agreements. See the NOTICE file ++// distributed with this work for additional information ++// regarding copyright ownership. The ASF licenses this file ++// to you under the Apache License, Version 2.0 (the ++// "License"); you may not use this file except in compliance ++// with the License. You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++// ++ + // Microsoft Visual C++ generated resource script. + // + #include "resource1.h" +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/resource1.h b/qpid/cpp/bindings/qpid/dotnet/src/resource1.h +index 96a2cb7..98830ab 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/resource1.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/resource1.h +@@ -1,4 +1,24 @@ + //{{NO_DEPENDENCIES}} ++ ++// ++// Licensed to the Apache Software Foundation (ASF) under one ++// or more contributor license agreements. See the NOTICE file ++// distributed with this work for additional information ++// regarding copyright ownership. The ASF licenses this file ++// to you under the Apache License, Version 2.0 (the ++// "License"); you may not use this file except in compliance ++// with the License. You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++// ++ + // Microsoft Visual C++ generated include file. + // Used by org.apache.qpid.messaging.rc + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj +index 3b64c99..925da5f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj +@@ -1,4 +1,22 @@ +  ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/Properties/AssemblyInfo.cs +index 699630e..cf50e88 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/Properties/AssemblyInfo.cs +@@ -1,3 +1,24 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ + using System.Reflection; + using System.Runtime.CompilerServices; + using System.Runtime.InteropServices; +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +index 9280dfa..5ab2698 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs +@@ -1,3 +1,24 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ + using System; + using System.Collections.Generic; + using System.Linq; +diff --git a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +index 19aa810..914d03d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj +@@ -1,4 +1,22 @@ +  ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index e5441c7..8761a9f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj +index 28726c7..f70c268 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj +index 84fa6e8..982faeb 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +index b86694e..0dca7a2 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj +index a7937dd..c807657 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +index ae63171..5261bfd 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj +index 77953a5..508ae8e 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj +index c04951a..bc284b4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +index 8ade4b6..a30996b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +index a2c6d0b..c3a8918 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj +index 350c64b..d2e50ea 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj +index fa0e05f..36b63a4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj +@@ -1,4 +1,22 @@ + ++ + + + Debug +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln +index 29cf729..6db55b5 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/winsdk_dotnet_examples.sln +@@ -1,5 +1,25 @@ + Microsoft Visual Studio Solution File, Format Version 10.00 + # Visual Studio 2008 ++ ++# ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License ++# ++ + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.direct.sender", "examples\csharp.direct.sender\csharp.direct.sender.csproj", "{7B71CE78-8E78-4632-ADBE-F4D5DFAE0068}" + EndProject + Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.direct.receiver", "examples\csharp.direct.receiver\csharp.direct.receiver.csproj", "{52F880E7-D677-4C91-8516-D679CE0F46A8}" +-- +1.5.5.6 + +From efa9416f28a57477be132330376995b8ec4adc59 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Wed, 27 Oct 2010 21:10:46 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2915 Qpid Cpp Messaging .NET Binding does not properly handle Qpid type VAR_VOID + +* In C# map sender example, send null list and map values. +* In Message ToString() display "" for null list and map values. +* Do not dereference null values when determining their type. +* Properly marshal native Qpid VAR_VOID data type. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028099 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a813ced95e5b6847cb62980fd793e2fc5cbff80e) +--- + .../csharp.map.sender/csharp.map.sender.cs | 4 ++++ + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 10 ++++++++++ + qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h | 14 ++++++++++---- + .../bindings/qpid/dotnet/src/TypeTranslator.cpp | 18 ++++++++++++++++-- + 4 files changed, 40 insertions(+), 6 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +index c35ddf1..9383d12 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.sender/csharp.map.sender.cs +@@ -79,6 +79,8 @@ namespace Org.Apache.Qpid.Messaging.examples + colors.Add("red"); + colors.Add("green"); + colors.Add("white"); ++ // list contains null value ++ colors.Add(null); + content["colorsList"] = colors; + + // add one of each supported amqp data type +@@ -118,6 +120,8 @@ namespace Org.Apache.Qpid.Messaging.examples + Guid myGuid = new Guid("000102030405060708090a0b0c0d0e0f"); + content["myGuid"] = myGuid; + ++ content["myNull"] = null; ++ + // + // Construct a message with the map content and send it synchronously + // via the sender. +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index 139ecee..a554d19 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -277,6 +277,12 @@ namespace Messaging { + ListAsString((System::Collections::ObjectModel::Collection< + System::Object^> ^)kvp.Value)); + } ++ else if (nullptr == kvp.Value) ++ { ++ sb->AppendFormat( ++ "{0}=", ++ kvp.Key); ++ } + else + sb->AppendFormat("{0}={1}", kvp.Key, kvp.Value); + } +@@ -310,6 +316,10 @@ namespace Messaging { + sb->Append(ListAsString((System::Collections::ObjectModel::Collection< + System::Object^> ^)obj)); + } ++ else if (nullptr == obj) ++ { ++ // no display for null objects ++ } + else + sb->Append(obj->ToString()); + } +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h b/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h +index 47f391f..d0f410b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/QpidTypeCheck.h +@@ -68,13 +68,19 @@ namespace Messaging { + public: + + static bool ObjectIsMap (System::Object ^ theValue) +- { +- return (*theValue).GetType() == QpidTypeCheckConstants::mapTypeP; ++ { ++ if (nullptr == theValue) ++ return false; ++ else ++ return (*theValue).GetType() == QpidTypeCheckConstants::mapTypeP; + } + + static bool ObjectIsList(System::Object ^ theValue) +- { +- return (*theValue).GetType() == QpidTypeCheckConstants::listTypeP; ++ { ++ if (nullptr == theValue) ++ return false; ++ else ++ return (*theValue).GetType() == QpidTypeCheckConstants::listTypeP; + } + }; + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp +index c4587fe..b515095 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp +@@ -91,7 +91,10 @@ namespace Messaging { + { + // Add a simple native type to map + ::qpid::types::Variant entryValue; +- ManagedToNativeObject(kvp.Value, entryValue); ++ if (nullptr != kvp.Value) ++ { ++ ManagedToNativeObject(kvp.Value, entryValue); ++ } + std::string entryName = QpidMarshal::ToNative(kvp.Key); + qpidMap.insert(std::make_pair(entryName, entryValue)); + } +@@ -144,7 +147,10 @@ namespace Messaging { + { + // Add a simple native type to list + ::qpid::types::Variant entryValue; +- ManagedToNativeObject(listObj, entryValue); ++ if (nullptr != listObj) ++ { ++ ManagedToNativeObject(listObj, entryValue); ++ } + qpidList.push_back(entryValue); + } + } +@@ -265,6 +271,10 @@ namespace Messaging { + + switch (vType) + { ++ case ::qpid::types::VAR_VOID: ++ dict[elementName] = nullptr; ++ break; ++ + case ::qpid::types::VAR_BOOL: + dict[elementName] = variant.asBool(); + break; +@@ -358,6 +368,10 @@ namespace Messaging { + + switch (vType) + { ++ case ::qpid::types::VAR_VOID: ++ (*managedList).Add(nullptr); ++ break; ++ + case ::qpid::types::VAR_BOOL: + (*managedList).Add(variant.asBool()); + break; +-- +1.5.5.6 + +From 0c8a2ca8e5779e9cbb5b8f0edddad5a6b415260e Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Thu, 28 Oct 2010 17:17:29 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2906 + +Delete vendor-specific licenses. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028391 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 3f9a5914c781e5a59e86f8ea789bd46c4c7ccdbd) +--- + qpid/cpp/bld-winsdk.ps1 | 7 +- + qpid/cpp/src/windows/winsdk/LICENSE-MSVC | 15 - + qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM | 806 ---------------------------- + 3 files changed, 1 insertions(+), 827 deletions(-) + delete mode 100644 qpid/cpp/src/windows/winsdk/LICENSE-MSVC + delete mode 100644 qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM + +diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1 +index 4d102c9..8f0a588 100644 +--- a/qpid/cpp/bld-winsdk.ps1 ++++ b/qpid/cpp/bld-winsdk.ps1 +@@ -222,13 +222,8 @@ function BuildAPlatform + } + Remove-Item -recurse $preserve_dir + +- # Install the README and MS-LICENSE ++ # Install the README + Copy-Item -force -path "$qpid_cpp_src/README-winsdk.txt" -destination "$install_dir/README-winsdk.txt" +- Copy-Item -force -path "$qpid_cpp_src/src/windows/winsdk/MS-LICENSE.HTM" -destination "$install_dir/MS-LICENSE.HTM" +- +- # Append the MSVC license info to the plain LICENSE +- $licenseinfo = Get-Content "$qpid_cpp_src/src/windows/winsdk/LICENSE-MSVC" +- Add-Content "$install_dir/LICENSE" $licenseinfo + + # Set top level info files to DOS line endings + Unix2Dos "$install_dir/README-winsdk.txt" +diff --git a/qpid/cpp/src/windows/winsdk/LICENSE-MSVC b/qpid/cpp/src/windows/winsdk/LICENSE-MSVC +deleted file mode 100644 +index 8f6d953..0000000 +--- a/qpid/cpp/src/windows/winsdk/LICENSE-MSVC ++++ /dev/null +@@ -1,15 +0,0 @@ +-========================================================================= +-== Microsoft Distributable Code == +-========================================================================= +- +-This product includes files derived from the Microsoft Windows +-Software Development Kit for Windows Server 2008 and .NET Framework +-3.5 ("MSW SDK"). A copy of the Microsoft Software License Terms for +-the MSW SDK ("MS License") accompanies this product. The +-aforementioned files are "Distributable Code" listed in MS-LICENSE.HTM, +-under the terms of the MS License. With respect to those files, by +-using this product, you agree to be bound by the relevant provisions +-of the MS License to the same extent as though you had developed the +-product using the MSW SDK. If you do not agree to be bound by those +-provisions, do not use this product. +- +diff --git a/qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM b/qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM +deleted file mode 100644 +index 7e06093..0000000 +--- a/qpid/cpp/src/windows/winsdk/MS-LICENSE.HTM ++++ /dev/null +@@ -1,806 +0,0 @@ +- +- +- +- +- +- +- +- +- +- +- +-
+- +-

MICROSOFT SOFTWARE LICENSE TERMS

+- +-

MICROSOFT WINDOWS SOFTWARE DEVELOPMENT KIT

+- +-

for Windows Server 2008 and .NET Framework +-3.5

+- +-

These license terms are an agreement between Microsoft +-Corporation (or based on where you live, one of its affiliates) and you.  Please +-read them.  They apply to the software named above, which includes the +-media on which you received it, if any.  The terms also apply to any +-Microsoft

+- +-

         +-updates,

+- +-

         +-supplements,

+- +-

         +-Internet-based +-services, and

+- +-

         +-support +-services

+- +-

for this software, unless other terms accompany those +-items.  If so, those terms apply.

+- +-

BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.  IF +-YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.

+- +-

If you comply with these license terms, you have the +-rights below.

+- +-

1.      +-INSTALLATION +-AND USE RIGHTS. 

+- +-

a.      +-Installation +-and Use.  +-One user may install and use any number of copies of the software on your +-devices to design, develop and test your programs that run on a Microsoft +-Windows operating system.

+- +-

b.      +-Included +-Microsoft Programs.  +-The software contains other Microsoft programs.  These license terms apply +-to your use of those programs.

+- +-

2.      +-ADDITIONAL +-LICENSING REQUIREMENTS AND/OR USE RIGHTS.

+- +-

a.      +-Distributable +-Code.  +-The software contains code that you are permitted to distribute in programs you +-develop if you comply with the terms below.

+- +-

i.         +-Right +-to Use and Distribute.  +-The code and text files listed below are Distributable Code.

+- +-

         +-REDIST.TXT +-Files.  +-You may copy and distribute the object code form of code listed in REDIST.TXT +-files.

+- +-

         +-Sample +-Code.  +-You may modify, copy, and distribute the source and object code form of code +-marked as sample.

+- +-

         +-Microsoft +-Merge Modules.  +-You may copy and distribute the unmodified output of Microsoft Merge Modules.

+- +-

         +-Third +-Party Distribution.  +-You may permit distributors of your programs to copy and distribute the +-Distributable Code as part of those programs.

+- +-

ii.       +-Distribution +-Requirements.  +-For any Distributable Code you distribute, you must

+- +-

         +-add +-significant primary functionality to it in your programs;

+- +-

         +-for any +-Distributable Code having a filename extension of .lib, distribute only the +-results of running such Distributable Code through a linker with your +-application;

+- +-

         +-distribute +-Distributable Code included in a setup program only as part of that setup +-program without modification;

+- +-

         +-require +-distributors and external end users to agree to terms that protect it at least +-as much as this agreement;

+- +-

         +-display +-your valid copyright notice on your programs;

+- +-

         +-for +-Distributable Code from the Windows Media Services SDK portions of the +-software, include in your programs Help-About box (or in another obvious place +-if there is no box) the following copyright notice:  Portions utilize +-Microsoft Windows Media Technologies.  Copyright (c) 2006 Microsoft +-Corporation.  All Rights Reserved; and

+- +-

         +-indemnify, +-defend, and hold harmless Microsoft from any claims, including attorneys fees, +-related to the distribution or use of your programs.

+- +-

iii.      +-Distribution +-Restrictions.  You +-may not

+- +-

         +-alter +-any copyright, trademark or patent notice in the Distributable Code;

+- +-

         +-use +-Microsofts trademarks in your programs names or in a way that suggests your +-programs come from or are endorsed by Microsoft;

+- +-

         +-include +-Distributable Code in malicious, deceptive or unlawful programs; or

+- +-

         +-modify +-or distribute the source code of any Distributable Code so that any part of it +-becomes subject to an Excluded License.  An Excluded License is one that +-requires, as a condition of use, modification or distribution, that

+- +-

         +-the code +-be disclosed or distributed in source code form; or

+- +-

         +-others +-have the right to modify it.

+- +-

b.      +-Additional +-Functionality.  Microsoft +-may provide additional functionality for the software.  Other license +-terms and fees may apply.

+- +-

3.      +-INTERNET-BASED +-SERVICES.  Microsoft +-provides Internet-based services with the software.  It may change or +-cancel them at any time. You may not use this service in any way that could +-harm it or impair anyone elses use of it.  You may not use the service to +-try to gain unauthorized access to any service, data, account or network by any +-means.

+- +-

4.      +-MICROSOFT +-.NET BENCHMARK TESTING. +- The software includes one or more components of the .NET Framework 3.5 +-(.NET Components).  You may conduct internal benchmark testing of those +-components.  You may disclose the results of any benchmark test of those +-components, provided that you comply with the conditions set forth at +-http://go.microsoft.com/fwlink/?LinkID=66406.  Notwithstanding any other +-agreement you may have with Microsoft, if you disclose such benchmark test +-results, Microsoft shall have the right to disclose the results of benchmark +-tests it conducts of your products that compete with the applicable .NET +-Component, provided it complies with the same conditions set forth at +-http://go.microsoft.com/fwlink/?LinkID=66406.

+- +-

5.      +-Scope of License.  The software is licensed, not +-sold. This agreement only gives you some rights to use the software.  +-Microsoft reserves all other rights.  Unless applicable law gives you more +-rights despite this limitation, you may use the software only as expressly +-permitted in this agreement.  In doing so, you must comply with any +-technical limitations in the software that only allow you to use it in certain +-ways.  For more information, see www.microsoft.com/licensing/userights.  You may not

+- +-

         +-work +-around any technical limitations in the software;

+- +-

         +-reverse +-engineer, decompile or disassemble the software, except and only to the extent +-that applicable law expressly permits, despite this limitation;

+- +-

         +-make +-more copies of the software than specified in this agreement or allowed by +-applicable law, despite this limitation;

+- +-

         +-publish +-the software for others to copy;

+- +-

         +-rent, +-lease or lend the software; or

+- +-

         +-use the +-software for commercial software hosting services.

+- +-

6.      +-CODE GENERATION +-AND OPTIMIZATION TOOLS.  You may not use the code generation or +-optimization tools in the software (such as compilers, linkers, assemblers, +-runtime code generators, and code generating design and modeling tools) to +-create programs, object code, libraries, assemblies, or executables to run on a +-platform other than Microsoft operating systems, run-time technologies, or +-application platforms.

+- +-

7.      +-BACKUP +-COPY.  +-You may make one backup copy of the software.  You may use it only to +-reinstall the software.

+- +-

8.      +-DOCUMENTATION.  Any person +-that has valid access to your computer or internal network may copy and use the +-documentation for your internal, reference purposes.

+- +-

9.      +-TRANSFER +-TO A THIRD PARTY.  The first user of the software may transfer it, and this +-agreement, directly to a third party.  Before the transfer, that party +-must agree that this agreement applies to the transfer and use of the +-software.  The first user must uninstall the software before transferring +-it separately from the device.  The first user may not retain any copies.

+- +-

10. +-Export Restrictions.  The software +-is subject to United States export laws and regulations.  You must comply +-with all domestic and international export laws and regulations that apply to +-the software.  These laws include restrictions on destinations, end users +-and end use.  For additional information, see www.microsoft.com/exporting.

+- +-

11.  SUPPORT +-SERVICES. +-Because +-this software is as is, we may not provide support services for it.

+- +-

12.  Entire +-Agreement.  +-This agreement, and the terms for supplements, updates, Internet-based services +-and support services that you use, are the entire agreement for the software +-and support services.

+- +-

13.  +-Applicable Law.

+- +-

a.      +-United +-States.  +-If you acquired the software in the United States, Washington state law governs +-the interpretation of this agreement and applies to claims for breach of it, +-regardless of conflict of laws principles.  The laws of the state where +-you live govern all other claims, including claims under state consumer +-protection laws, unfair competition laws, and in tort.

+- +-

b.      +-Outside +-the United States.  +-If you acquired the software in any other country, the laws of that country +-apply.

+- +-

14.  Legal Effect.  This agreement +-describes certain legal rights.  You may have other rights under the laws +-of your country.  You may also have rights with respect to the party from +-whom you acquired the software.  This agreement does not change your +-rights under the laws of your country if the laws of your country do not permit +-it to do so.

+- +-

15.  Disclaimer of +-Warranty.   +-The software is licensed as-is.  +-You bear the risk of using it.  Microsoft gives no express warranties, +-guarantees or conditions.  You may have additional consumer rights under +-your local laws which this agreement cannot change.  To the extent +-permitted under your local laws, Microsoft excludes the implied warranties of +-merchantability, fitness for a particular purpose and non-infringement.

+- +-

16.  Limitation on and +-Exclusion of Remedies and Damages.  You can recover from Microsoft and its +-suppliers only direct damages up to U.S. $5.00.  You cannot recover any +-other damages, including consequential, lost profits, special, indirect or +-incidental damages.

+- +-

This limitation applies to

+- +-

         +-anything +-related to the software, services, content (including code) on third party +-Internet sites, or third party programs; and

+- +-

         +-claims +-for breach of contract, breach of warranty, guarantee or condition, strict liability, +-negligence, or other tort to the extent permitted by applicable law.

+- +-

It also applies even if Microsoft knew or should have +-known about the possibility of the damages.  The above limitation or +-exclusion may not apply to you because your country may not allow the exclusion +-or limitation of incidental, consequential or other damages.

+- +-

Please +-note: As this software is distributed in Quebec, Canada, some of the clauses in +-this agreement are provided below in French.

+- +-

Remarque : Ce +-logiciel tant distribu au Qubec, Canada, certaines des clauses dans ce +-contrat sont fournies ci-dessous en franais.

+- +-

EXONRATION DE GARANTIE. Le logiciel +-vis par une licence est offert tel quel . Toute utilisation de ce logiciel +-est votre seule risque et pril. Microsoft naccorde aucune autre garantie +-expresse. Vous pouvez bnficier de droits additionnels en vertu du droit local +-sur la protection dues consommateurs, que ce contrat ne peut modifier. La ou +-elles sont permises par le droit locale, les garanties implicites de qualit +-marchande, dadquation un usage particulier et dabsence de contrefaon sont +-exclues.

+- +-

LIMITATION DES DOMMAGES-INTRTS ET +-EXCLUSION DE RESPONSABILIT POUR LES DOMMAGES.  Vous pouvez +-obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de +-dommages directs uniquement hauteur de 5,00 $ US. Vous ne pouvez prtendre +-aucune indemnisation pour les autres dommages, y compris les dommages spciaux, +-indirects ou accessoires et pertes de bnfices.

+- +-

Cette limitation concerne :

+- +-

         +-tout  +-ce qui est reli au logiciel, aux services ou au contenu (y compris le code) +-figurant sur des sites Internet tiers ou dans des programmes tiers ; et

+- +-

         +-les +-rclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit +-stricte, de ngligence ou dune autre faute dans la limite autorise par la loi +-en vigueur.

+- +-

Elle sapplique galement, mme si Microsoft +-connaissait ou devrait connatre lventualit dun tel dommage.  Si votre +-pays nautorise pas lexclusion ou la limitation de responsabilit pour les +-dommages indirects, accessoires ou de quelque nature que ce soit, il se peut +-que la limitation ou lexclusion ci-dessus ne sappliquera pas votre gard.

+- +-

EFFET JURIDIQUE.  Le prsent +-contrat dcrit certains droits juridiques. Vous pourriez avoir dautres droits +-prvus par les lois de votre pays.  Le prsent contrat ne modifie pas les +-droits que vous confrent les lois de votre pays si celles ci ne le permettent +-pas.

+- +-

 

+- +-
+- +- +- +- +- +-- +1.5.5.6 + +From b0e1c9e2e71fd898724b2c193ef55ea106d5c343 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Thu, 28 Oct 2010 19:06:25 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2918 Assembly mis-named in csharp.example.declare_queues + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028433 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 82d953cbf16f5924b7e0ace7fc6ab752b8efe0f5) +--- + .../Properties/AssemblyInfo.cs | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs +index eafc140..4e06580 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/Properties/AssemblyInfo.cs +@@ -26,11 +26,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyTitle("csharp.example.declare_queues")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyProduct("csharp.example.declare_queues")] + [assembly: AssemblyCopyright("Copyright ? 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +-- +1.5.5.6 + +From cb686ac6e64c45fc04ea1b99a2f09bb78a181a64 Mon Sep 17 00:00:00 2001 +From: Stephen D. Huston +Date: Fri, 29 Oct 2010 14:03:08 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +Add missing hello_world and hello_xml examples. Resolves QPID-2919. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028752 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a2006968333a76594951f7356e83ba27a9e5a118) +--- + qpid/cpp/examples/messaging/CMakeLists.txt | 16 ++++++++++++++++ + 1 files changed, 16 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/examples/messaging/CMakeLists.txt b/qpid/cpp/examples/messaging/CMakeLists.txt +index 31195f0..03ed2da 100644 +--- a/qpid/cpp/examples/messaging/CMakeLists.txt ++++ b/qpid/cpp/examples/messaging/CMakeLists.txt +@@ -45,3 +45,19 @@ add_messaging_example(map_sender) + + add_messaging_example(client) + add_messaging_example(server) ++ ++# These don't need Boost or OptionParser ++add_executable(hello_world hello_world.cpp) ++set_target_properties(hello_world PROPERTIES OUTPUT_NAME hello_world) ++target_link_libraries(hello_world qpidmessaging) ++install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/hello_world.cpp ++ DESTINATION ${QPID_INSTALL_EXAMPLESDIR}/messaging ++ COMPONENT ${QPID_COMPONENT_EXAMPLES}) ++ ++add_executable(hello_xml hello_xml.cpp) ++set_target_properties(hello_xml PROPERTIES OUTPUT_NAME hello_xml) ++target_link_libraries(hello_xml qpidmessaging) ++install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/hello_xml.cpp ++ DESTINATION ${QPID_INSTALL_EXAMPLESDIR}/messaging ++ COMPONENT ${QPID_COMPONENT_EXAMPLES}) ++ +-- +1.5.5.6 + +From 68cc777c606eb8b2d768c97ffa6fedb0643b80fa Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Fri, 29 Oct 2010 17:23:49 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2807 More flexible acknowledgement + +The message-level Acknowledge in Cpp was not reflected in the .NET Messaging binding. +This commit adds the ack to the code and to the doc book session method mapping table. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028859 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit b580c67e6de9fc441616b4da1f76c8ec2b928c21) +--- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 10 ++++++++++ + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 2 ++ + 2 files changed, 12 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index 6d40a27..344c3b7 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -112,6 +112,16 @@ namespace Messaging { + sessionp->acknowledge(sync); + } + ++ void Session::Acknowledge(Message ^ message) ++ { ++ Acknowledge(message, false); ++ } ++ ++ void Session::Acknowledge(Message ^ message, bool sync) ++ { ++ sessionp->acknowledge(*(message->NativeMessage), sync); ++ } ++ + void Session::Reject(Message ^ message) + { + sessionp->::qpid::messaging::Session::reject(*(message->NativeMessage)); +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index d34289b..aa42cf5 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -104,6 +104,8 @@ namespace Messaging { + void Rollback(); + void Acknowledge(); + void Acknowledge(bool sync); ++ void Acknowledge(Message ^ message); ++ void Acknowledge(Message ^ message, bool sync); + void Reject(Message ^); + void Release(Message ^); + void Sync(); +-- +1.5.5.6 + +From 78c4286749327a1d26be484cf22883c57d0609fe Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Tue, 2 Nov 2010 14:29:50 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2922 Qpid Cpp Messaging .NET Binding does not implement FailoverUpdate class + +This checkin provides the implemtation. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1030061 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 975a123ca8fc1b2db6a6c27c6ebc8d654ad246fc) +--- + .../bindings/qpid/dotnet/src/FailoverUpdates.cpp | 94 ++++++++++++++++++++ + .../cpp/bindings/qpid/dotnet/src/FailoverUpdates.h | 67 ++++++++++++++ + .../dotnet/src/org.apache.qpid.messaging.vcproj | 8 ++ + 3 files changed, 169 insertions(+), 0 deletions(-) + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp + create mode 100644 qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.h + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp b/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp +new file mode 100644 +index 0000000..3df06d9 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp +@@ -0,0 +1,94 @@ ++/* ++* Licensed to the Apache Software Foundation (ASF) under one ++* or more contributor license agreements. See the NOTICE file ++* distributed with this work for additional information ++* regarding copyright ownership. The ASF licenses this file ++* to you under the Apache License, Version 2.0 (the ++* "License"); you may not use this file except in compliance ++* with the License. You may obtain a copy of the License at ++* ++* http://www.apache.org/licenses/LICENSE-2.0 ++* ++* Unless required by applicable law or agreed to in writing, ++* software distributed under the License is distributed on an ++* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++* KIND, either express or implied. See the License for the ++* specific language governing permissions and limitations ++* under the License. ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "qpid/messaging/FailoverUpdates.h" ++ ++#include "Connection.h" ++#include "FailoverUpdates.h" ++#include "QpidException.h" ++ ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { ++ ++ /// ++ /// FailoverUpdates is a managed wrapper for a qpid::messaging::FailoverUpdates ++ /// ++ ++ // constructors ++ //FailoverUpdates::FailoverUpdates(Connection ^ connection) : ++ // failoverupdatesp(new ::qpid::messaging::FailoverUpdates(*(connection->NativeConnection))) ++ //{ ++ //} ++ ++ FailoverUpdates::FailoverUpdates(Connection ^ connection) ++ { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ failoverupdatesp = new ::qpid::messaging::FailoverUpdates(*(connection->NativeConnection)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ ++ return; ++ } ++ ++ ++ // Destructor ++ FailoverUpdates::~FailoverUpdates() ++ { ++ Cleanup(); ++ } ++ ++ ++ // Finalizer ++ FailoverUpdates::!FailoverUpdates() ++ { ++ Cleanup(); ++ } ++ ++ ++ // Destroys kept object ++ // TODO: add lock ++ void FailoverUpdates::Cleanup() ++ { ++ if (NULL != failoverupdatesp) ++ { ++ delete failoverupdatesp; ++ failoverupdatesp = NULL; ++ } ++ } ++}}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.h b/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.h +new file mode 100644 +index 0000000..bc668d6 +--- /dev/null ++++ b/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.h +@@ -0,0 +1,67 @@ ++/* ++* Licensed to the Apache Software Foundation (ASF) under one ++* or more contributor license agreements. See the NOTICE file ++* distributed with this work for additional information ++* regarding copyright ownership. The ASF licenses this file ++* to you under the Apache License, Version 2.0 (the ++* "License"); you may not use this file except in compliance ++* with the License. You may obtain a copy of the License at ++* ++* http://www.apache.org/licenses/LICENSE-2.0 ++* ++* Unless required by applicable law or agreed to in writing, ++* software distributed under the License is distributed on an ++* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++* KIND, either express or implied. See the License for the ++* specific language governing permissions and limitations ++* under the License. ++*/ ++ ++#pragma once ++ ++#include ++#include ++#include ++#include ++#include ++ ++namespace Org { ++namespace Apache { ++namespace Qpid { ++namespace Messaging { ++ ++ /// ++ /// FailoverUpdates is a managed wrapper for a qpid::messaging::FailoverUpdates ++ /// ++ ++ ref class Connection; ++ ++ public ref class FailoverUpdates ++ { ++ private: ++ // The kept object in the Messaging C++ DLL ++ ::qpid::messaging::FailoverUpdates * failoverupdatesp; ++ ++ // Kept object deletion code ++ void Cleanup(); ++ ++ public: ++ FailoverUpdates(Connection ^ connection); ++ ++ ~FailoverUpdates(); ++ !FailoverUpdates(); ++ ++ private: ++ // unmanaged clone ++ // not defined ++ ++ // copy constructor ++ FailoverUpdates(const FailoverUpdates ^ failoverUpdates) {} ++ ++ // assignment operator ++ FailoverUpdates % operator=(const FailoverUpdates % rhs) ++ { ++ return *this; ++ } ++ }; ++}}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index 1eb0b71..286e4ad 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -538,6 +538,10 @@ + > + + ++ ++ + +@@ -576,6 +580,10 @@ + > + + ++ ++ + +-- +1.5.5.6 + +From 6b6803a05addcdbbc2b658c81665096dbaa14dfe Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Tue, 2 Nov 2010 20:50:54 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2923 Qpid Messaging .NET Binding fails to translate exceptions from C++ to .NET + +This checkin moves code out of class constructor member initialization and puts it into try-catch blocks. Any SEH Exceptions thrown by the C++ Messaging libraries are caught and re-thrown as .NET exceptions. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1030209 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e3b74b16d7d0df9a3a6c5f01b07da3a73e910a3a) +--- + qpid/cpp/bindings/qpid/dotnet/src/Address.cpp | 152 +++++- + qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp | 142 +++++- + .../bindings/qpid/dotnet/src/FailoverUpdates.cpp | 8 +- + qpid/cpp/bindings/qpid/dotnet/src/Message.cpp | 513 +++++++++++++++----- + qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp | 40 ++- + qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp | 73 +++- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 192 +++++++- + 7 files changed, 922 insertions(+), 198 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +index 6d23136..b78eb82 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Address.cpp +@@ -29,6 +29,7 @@ + #include "QpidMarshal.h" + #include "QpidTypeCheck.h" + #include "TypeTranslator.h" ++#include "QpidException.h" + + namespace Org { + namespace Apache { +@@ -40,28 +41,74 @@ namespace Messaging { + /// + + // Create empty +- Address::Address() : +- addressp(new ::qpid::messaging::Address(QpidMarshal::ToNative(""))) ++ Address::Address() + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ addressp = new ::qpid::messaging::Address(QpidMarshal::ToNative("")); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Create string address +- Address::Address(System::String ^ address) : +- addressp(new ::qpid::messaging::Address(QpidMarshal::ToNative(address))) ++ Address::Address(System::String ^ address) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ addressp = new ::qpid::messaging::Address(QpidMarshal::ToNative(address)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Create with options + Address::Address(System::String ^ name, + System::String ^ subject, + System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ options) : +- addressp(new ::qpid::messaging::Address()) ++ System::String ^, System::Object ^> ^ options) + { +- Name = name; +- Subject = subject; +- Options = options; +- Type = ""; ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ addressp = new ::qpid::messaging::Address(); ++ ++ Name = name; ++ Subject = subject; ++ Options = options; ++ Type = ""; ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Create with options and type +@@ -69,26 +116,72 @@ namespace Messaging { + System::String ^ subject, + System::Collections::Generic::Dictionary< + System::String ^, System::Object ^> ^ options, +- System::String ^ type) : +- addressp(new ::qpid::messaging::Address()) ++ System::String ^ type) + { +- Name = name; +- Subject = subject; +- Options = options; +- Type = type; ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ addressp = new ::qpid::messaging::Address(); ++ ++ Name = name; ++ Subject = subject; ++ Options = options; ++ Type = type; ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // copy constructor + Address::Address(const Address ^ address) +- : addressp(new ::qpid::messaging::Address( +- *(const_cast
(address)->NativeAddress))) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ addressp = new ::qpid::messaging::Address( ++ *(const_cast
(address)->NativeAddress)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // unmanaged clone +- Address::Address(const ::qpid::messaging::Address & addrp) : +- addressp(new ::qpid::messaging::Address(addrp)) ++ Address::Address(const ::qpid::messaging::Address & addrp) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ addressp = new ::qpid::messaging::Address(addrp); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Destructor +@@ -121,6 +214,23 @@ namespace Messaging { + // + System::String ^ Address::ToStr() + { +- return gcnew System::String(addressp->str().c_str()); ++ System::String ^ result = nullptr; ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ result = gcnew System::String(addressp->str().c_str()); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ return result; + } + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +index 322910d..d0c5bc9 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Connection.cpp +@@ -43,36 +43,97 @@ namespace Messaging { + /// + + // constructors +- Connection::Connection(System::String ^ url) : +- connectionp(new ::qpid::messaging::Connection(QpidMarshal::ToNative(url))) ++ Connection::Connection(System::String ^ url) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ connectionp = new ::qpid::messaging::Connection(QpidMarshal::ToNative(url)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + Connection::Connection(System::String ^ url, + System::Collections::Generic::Dictionary< +- System::String ^, System::Object ^> ^ options) : +- connectionp(new ::qpid::messaging::Connection(QpidMarshal::ToNative(url))) ++ System::String ^, System::Object ^> ^ options) + { +- for each (System::Collections::Generic::KeyValuePair kvp in options) +- { +- SetOption(kvp.Key, kvp.Value); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ connectionp = new ::qpid::messaging::Connection(QpidMarshal::ToNative(url)); ++ ++ for each (System::Collections::Generic::KeyValuePair kvp in options) ++ { ++ SetOption(kvp.Key, kvp.Value); ++ } ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); + } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +- Connection::Connection(System::String ^ url, System::String ^ options) : +- connectionp(new ::qpid::messaging::Connection(QpidMarshal::ToNative(url), +- QpidMarshal::ToNative(options))) ++ Connection::Connection(System::String ^ url, System::String ^ options) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ connectionp = new ::qpid::messaging::Connection(QpidMarshal::ToNative(url), ++ QpidMarshal::ToNative(options)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + // Copy constructor + Connection::Connection(const Connection ^ connection) +- : connectionp(new ::qpid::messaging::Connection( +- *(const_cast(connection)->NativeConnection))) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ connectionp = new ::qpid::messaging::Connection( ++ *(const_cast(connection)->NativeConnection)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -104,20 +165,65 @@ namespace Messaging { + + void Connection::SetOption(System::String ^ name, System::Object ^ value) + { +- ::qpid::types::Variant entryValue; +- TypeTranslator::ManagedToNativeObject(value, entryValue); +- std::string entryName = QpidMarshal::ToNative(name); +- connectionp->::qpid::messaging::Connection::setOption(entryName, entryValue); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ ::qpid::types::Variant entryValue; ++ TypeTranslator::ManagedToNativeObject(value, entryValue); ++ std::string entryName = QpidMarshal::ToNative(name); ++ connectionp->::qpid::messaging::Connection::setOption(entryName, entryValue); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Connection::Open() + { +- connectionp->open(); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ connectionp->open(); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Connection::Close() + { +- connectionp->close(); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ connectionp->close(); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp b/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp +index 3df06d9..a931e2d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/FailoverUpdates.cpp +@@ -39,14 +39,10 @@ namespace Messaging { + /// + + // constructors +- //FailoverUpdates::FailoverUpdates(Connection ^ connection) : +- // failoverupdatesp(new ::qpid::messaging::FailoverUpdates(*(connection->NativeConnection))) +- //{ +- //} + + FailoverUpdates::FailoverUpdates(Connection ^ connection) + { +- System::Exception ^ newException = nullptr; ++ System::Exception ^ newException = nullptr; + + try + { +@@ -62,8 +58,6 @@ namespace Messaging { + { + throw newException; + } +- +- return; + } + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +index a554d19..07a1026 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp +@@ -47,66 +47,126 @@ namespace Messaging { + /// + + // Create empty message +- Message::Message() : +- messagep(new ::qpid::messaging::Message(QpidMarshal::ToNative(""))) ++ Message::Message() + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ messagep = new ::qpid::messaging::Message(QpidMarshal::ToNative("")); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Create from string +- Message::Message(System::String ^ theStr) : +- messagep(new ::qpid::messaging::Message(QpidMarshal::ToNative(theStr))) ++ Message::Message(System::String ^ theStr) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ messagep = new ::qpid::messaging::Message(QpidMarshal::ToNative(theStr)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Create from object +- Message::Message(System::Object ^ theValue) : +- messagep(new ::qpid::messaging::Message(QpidMarshal::ToNative(""))) ++ Message::Message(System::Object ^ theValue) + { +- if (QpidTypeCheck::ObjectIsMap(theValue)) +- { +- // Create a mapped message using given dictionary ++ System::Exception ^ newException = nullptr; + +- // Allocate a map +- ::qpid::types::Variant::Map newMap; ++ try ++ { ++ messagep = new ::qpid::messaging::Message(QpidMarshal::ToNative("")); + +- // Add the map variables to the map +- TypeTranslator::ManagedToNative((QpidMap ^)theValue, newMap); ++ if (QpidTypeCheck::ObjectIsMap(theValue)) ++ { ++ // Create a mapped message using given dictionary + +- // Set message content type +- messagep->setContentType("ampq/map"); ++ // Allocate a map ++ ::qpid::types::Variant::Map newMap; + +- // Insert the map into the message +- ::qpid::messaging::encode(newMap, *messagep, QpidMarshal::ToNative("amqp/map")); +- } +- else if (QpidTypeCheck::ObjectIsList(theValue)) +- { +- // Create a list message using given list ++ // Add the map variables to the map ++ TypeTranslator::ManagedToNative((QpidMap ^)theValue, newMap); + +- // Allocate a list +- ::qpid::types::Variant::List newList; ++ // Set message content type ++ messagep->setContentType("ampq/map"); + +- // Add the list variables to the list +- TypeTranslator::ManagedToNative((QpidList ^)theValue, newList); ++ // Insert the map into the message ++ ::qpid::messaging::encode(newMap, *messagep, QpidMarshal::ToNative("amqp/map")); ++ } ++ else if (QpidTypeCheck::ObjectIsList(theValue)) ++ { ++ // Create a list message using given list + +- // Set message content type +- messagep->setContentType("ampq/list"); ++ // Allocate a list ++ ::qpid::types::Variant::List newList; + +- // Insert the list into the message +- ::qpid::messaging::encode(newList, *messagep, QpidMarshal::ToNative("amqp/list")); +- } +- else +- { +- // Create a binary string message +- messagep->setContent(QpidMarshal::ToNative(theValue->ToString())); ++ // Add the list variables to the list ++ TypeTranslator::ManagedToNative((QpidList ^)theValue, newList); ++ ++ // Set message content type ++ messagep->setContentType("ampq/list"); ++ ++ // Insert the list into the message ++ ::qpid::messaging::encode(newList, *messagep, QpidMarshal::ToNative("amqp/list")); ++ } ++ else ++ { ++ // Create a binary string message ++ messagep->setContent(QpidMarshal::ToNative(theValue->ToString())); ++ } ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); + } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + // Create from bytes + Message::Message(array ^ bytes) + { +- pin_ptr pBytes = &bytes[0]; +- messagep = new ::qpid::messaging::Message((char *)pBytes, bytes->Length); ++ System::Exception ^ newException = nullptr; ++ try ++ { ++ pin_ptr pBytes = &bytes[0]; ++ messagep = new ::qpid::messaging::Message((char *)pBytes, bytes->Length); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Create from byte array slice +@@ -115,15 +175,44 @@ namespace Messaging { + if ((offset + size) > bytes->Length) + throw gcnew QpidException("Message::Message Create from byte array slice: buffer length exceeded"); + +- pin_ptr pBytes = &bytes[offset]; +- messagep = new ::qpid::messaging::Message((char *)pBytes, size); ++ System::Exception ^ newException = nullptr; ++ try ++ { ++ pin_ptr pBytes = &bytes[offset]; ++ messagep = new ::qpid::messaging::Message((char *)pBytes, size); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + // unmanaged clone +- Message::Message(const ::qpid::messaging::Message & msgp) : +- messagep(new ::qpid::messaging::Message(msgp)) ++ Message::Message(const ::qpid::messaging::Message & msgp) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ messagep = new ::qpid::messaging::Message(msgp); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -142,9 +231,24 @@ namespace Messaging { + + // Copy constructor + Message::Message(const Message ^ message) +- : messagep(new ::qpid::messaging::Message( +- *(const_cast(message)->NativeMessage))) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ messagep = new ::qpid::messaging::Message( ++ *(const_cast(message)->NativeMessage)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Destroys kept object +@@ -161,23 +265,68 @@ namespace Messaging { + // Property + void Message::SetProperty(System::String ^ name, System::Object ^ value) + { +- ::qpid::types::Variant entryValue; +- TypeTranslator::ManagedToNativeObject(value, entryValue); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ ::qpid::types::Variant entryValue; ++ TypeTranslator::ManagedToNativeObject(value, entryValue); ++ ++ messagep->getProperties()[QpidMarshal::ToNative(name)] = entryValue; ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } + +- messagep->getProperties()[QpidMarshal::ToNative(name)] = entryValue; ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // Content + void Message::SetContent(System::String ^ content) + { +- messagep->setContent(QpidMarshal::ToNative(content)); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ messagep->setContent(QpidMarshal::ToNative(content)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + void Message::SetContent(cli::array ^ bytes) + { +- pin_ptr pBytes = &bytes[0]; +- messagep->setContent((char *)pBytes, bytes->Length); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ pin_ptr pBytes = &bytes[0]; ++ messagep->setContent((char *)pBytes, bytes->Length); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -186,14 +335,47 @@ namespace Messaging { + if ((offset + size) > bytes->Length) + throw gcnew QpidException("Message::SetContent from byte array slice: buffer length exceeded"); + +- pin_ptr pBytes = &bytes[offset]; +- messagep->setContent((char *)pBytes, size); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ pin_ptr pBytes = &bytes[offset]; ++ messagep->setContent((char *)pBytes, size); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + System::String ^ Message::GetContent() + { +- return gcnew String(messagep->getContent().c_str()); ++ System::String ^ result = nullptr; ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ result = gcnew String(messagep->getContent().c_str()); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ ++ return result; + } + + +@@ -204,12 +386,27 @@ namespace Messaging { + System::String^, + System::Object^> ^ dict) + { +- // Extract the message map from the message +- ::qpid::types::Variant::Map map; +- +- ::qpid::messaging::decode(*messagep, map, QpidMarshal::ToNative("amqp/map")); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ // Extract the message map from the message ++ ::qpid::types::Variant::Map map; ++ ++ ::qpid::messaging::decode(*messagep, map, QpidMarshal::ToNative("amqp/map")); ++ ++ TypeTranslator::NativeToManaged(map, dict); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } + +- TypeTranslator::NativeToManaged(map, dict); ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -219,14 +416,29 @@ namespace Messaging { + void Message::GetContent(System::Collections::ObjectModel::Collection< + System::Object^> ^ list) + { +- // allocate a native messaging::List +- ::qpid::types::Variant::List nativeList; +- +- // Extract the list from the message in native format +- ::qpid::messaging::decode(*messagep, nativeList, QpidMarshal::ToNative("amqp/list")); +- +- // translate native list into user's managed list +- TypeTranslator::NativeToManaged(nativeList, list); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ // allocate a native messaging::List ++ ::qpid::types::Variant::List nativeList; ++ ++ // Extract the list from the message in native format ++ ::qpid::messaging::decode(*messagep, nativeList, QpidMarshal::ToNative("amqp/list")); ++ ++ // translate native list into user's managed list ++ TypeTranslator::NativeToManaged(nativeList, list); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // +@@ -236,60 +448,90 @@ namespace Messaging { + // + void Message::GetContent(array ^ arr) + { +- System::UInt32 size = messagep->getContentSize(); +- +- if (0 == size) +- throw gcnew QpidException("Message::GetRaw - message size is zero"); +- +- if (arr->Length != size) +- throw gcnew QpidException("Message::GetRaw - receive buffer is wrong size"); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ System::UInt32 size = messagep->getContentSize(); ++ ++ if (0 == size) ++ throw gcnew QpidException("Message::GetRaw - message size is zero"); ++ ++ if (arr->Length != size) ++ throw gcnew QpidException("Message::GetRaw - receive buffer is wrong size"); ++ ++ const char * pMsgSrc = messagep->getContentPtr(); ++ pin_ptr pArr = &arr[0]; ++ memcpy(pArr, pMsgSrc, size); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } + +- const char * pMsgSrc = messagep->getContentPtr(); +- pin_ptr pArr = &arr[0]; +- memcpy(pArr, pMsgSrc, size); ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + System::String ^ Message::MapAsString(System::Collections::Generic::Dictionary< + System::String^, System::Object^> ^ dict) + { +- System::String ^ leading = ""; +- System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("{"); ++ System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("{"); ++ System::Exception ^ newException = nullptr; + +- for each (System::Collections::Generic::KeyValuePair +- kvp in dict) +- { +- sb->Append(leading); +- leading = ", "; ++ try ++ { ++ System::String ^ leading = ""; + +- if (QpidTypeCheck::ObjectIsMap(kvp.Value)) +- { +- sb->AppendFormat( +- "{0}={1}", +- kvp.Key, +- MapAsString((System::Collections::Generic::Dictionary ^)kvp.Value)); +- } +- else if (QpidTypeCheck::ObjectIsList(kvp.Value)) ++ for each (System::Collections::Generic::KeyValuePair ++ kvp in dict) + { +- sb->AppendFormat( +- "{0}={1}", +- kvp.Key, +- ListAsString((System::Collections::ObjectModel::Collection< +- System::Object^> ^)kvp.Value)); ++ sb->Append(leading); ++ leading = ", "; ++ ++ if (QpidTypeCheck::ObjectIsMap(kvp.Value)) ++ { ++ sb->AppendFormat( ++ "{0}={1}", ++ kvp.Key, ++ MapAsString((System::Collections::Generic::Dictionary ^)kvp.Value)); ++ } ++ else if (QpidTypeCheck::ObjectIsList(kvp.Value)) ++ { ++ sb->AppendFormat( ++ "{0}={1}", ++ kvp.Key, ++ ListAsString((System::Collections::ObjectModel::Collection< ++ System::Object^> ^)kvp.Value)); ++ } ++ else if (nullptr == kvp.Value) ++ { ++ sb->AppendFormat( ++ "{0}=", ++ kvp.Key); ++ } ++ else ++ sb->AppendFormat("{0}={1}", kvp.Key, kvp.Value); + } +- else if (nullptr == kvp.Value) +- { +- sb->AppendFormat( +- "{0}=", +- kvp.Key); +- } +- else +- sb->AppendFormat("{0}={1}", kvp.Key, kvp.Value); ++ sb->Append("}"); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); + } +- sb->Append("}"); + +- System::String ^ result = gcnew System::String(sb->ToString()); +- return result; ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ ++ System::String ^ result = gcnew System::String(sb->ToString()); ++ return result; + } + + /// +@@ -298,35 +540,50 @@ namespace Messaging { + /// The AMQP list + System::String ^ Message::ListAsString(System::Collections::ObjectModel::Collection ^ list) + { +- System::String ^ leading = ""; +- System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("["); ++ System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("["); ++ System::Exception ^ newException = nullptr; + +- for each (System::Object ^ obj in list) +- { +- sb->Append(leading); +- leading = ", "; ++ try ++ { ++ System::String ^ leading = ""; + +- if (QpidTypeCheck::ObjectIsMap(obj)) +- { +- sb->Append(MapAsString((System::Collections::Generic::Dictionary< +- System::String^, System::Object^> ^)obj)); +- } +- else if (QpidTypeCheck::ObjectIsList(obj)) ++ for each (System::Object ^ obj in list) + { +- sb->Append(ListAsString((System::Collections::ObjectModel::Collection< +- System::Object^> ^)obj)); ++ sb->Append(leading); ++ leading = ", "; ++ ++ if (QpidTypeCheck::ObjectIsMap(obj)) ++ { ++ sb->Append(MapAsString((System::Collections::Generic::Dictionary< ++ System::String^, System::Object^> ^)obj)); ++ } ++ else if (QpidTypeCheck::ObjectIsList(obj)) ++ { ++ sb->Append(ListAsString((System::Collections::ObjectModel::Collection< ++ System::Object^> ^)obj)); ++ } ++ else if (nullptr == obj) ++ { ++ // no display for null objects ++ } ++ else ++ sb->Append(obj->ToString()); + } +- else if (nullptr == obj) +- { +- // no display for null objects +- } +- else +- sb->Append(obj->ToString()); ++ sb->Append("]"); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); + } +- sb->Append("]"); + +- System::String ^ result = gcnew System::String(sb->ToString()); +- return result; ++ if (newException != nullptr) ++ { ++ throw newException; ++ } ++ ++ System::String ^ result = gcnew System::String(sb->ToString()); ++ return result; + } + + System::String ^ Message::AsString(System::Object ^ obj) +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +index 87ad299..ea61286 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp +@@ -46,9 +46,24 @@ namespace Messaging { + // unmanaged clone + Receiver::Receiver(const ::qpid::messaging::Receiver & r, + Org::Apache::Qpid::Messaging::Session ^ sessRef) : +- receiverp(new ::qpid::messaging::Receiver (r)), + parentSession(sessRef) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ receiverp = new ::qpid::messaging::Receiver (r); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // unmanaged clone +@@ -69,11 +84,26 @@ namespace Messaging { + + + // Copy constructor +- Receiver::Receiver(const Receiver ^ receiver) +- : receiverp(new ::qpid::messaging::Receiver( +- *(const_cast(receiver)->NativeReceiver))), +- parentSession(receiver->parentSession) ++ Receiver::Receiver(const Receiver ^ receiver) : ++ parentSession(receiver->parentSession) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ receiverp = new ::qpid::messaging::Receiver( ++ *(const_cast(receiver)->NativeReceiver)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +index 0249c51..a051026 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp +@@ -29,6 +29,7 @@ + + #include "Sender.h" + #include "Message.h" ++#include "QpidException.h" + + namespace Org { + namespace Apache { +@@ -42,9 +43,24 @@ namespace Messaging { + // unmanaged clone + Sender::Sender(const ::qpid::messaging::Sender & s, + Org::Apache::Qpid::Messaging::Session ^ sessRef) : +- senderp(new ::qpid::messaging::Sender (s)), + parentSession(sessRef) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ senderp = new ::qpid::messaging::Sender (s); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -63,10 +79,25 @@ namespace Messaging { + + // Copy constructor + Sender::Sender(const Sender ^ sender) +- : senderp(new ::qpid::messaging::Sender( +- *(const_cast(sender)->NativeSender))), +- parentSession(sender->parentSession) ++ : parentSession(sender->parentSession) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ senderp = new ::qpid::messaging::Sender( ++ *(const_cast(sender)->NativeSender)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -91,12 +122,42 @@ namespace Messaging { + + void Sender::Send(Message ^ mmsgp, bool sync) + { +- senderp->::qpid::messaging::Sender::send(*((*mmsgp).NativeMessage), sync); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ senderp->::qpid::messaging::Sender::send(*((*mmsgp).NativeMessage), sync); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + + void Sender::Close() + { +- senderp->close(); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ senderp->close(); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + }}}} +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index 344c3b7..b6d00b4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -48,9 +48,24 @@ namespace Messaging { + // unmanaged clone + Session::Session(const ::qpid::messaging::Session & session, + Org::Apache::Qpid::Messaging::Connection ^ connRef) : +- sessionp(new ::qpid::messaging::Session (session)), + parentConnectionp(connRef) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp = new ::qpid::messaging::Session (session); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -69,10 +84,26 @@ namespace Messaging { + + // Copy constructor + Session::Session(const Session ^ session) +- : sessionp(new ::qpid::messaging::Session( +- *(const_cast(session)->NativeSession))), +- parentConnectionp(session->parentConnectionp) ++ : parentConnectionp(session->parentConnectionp) + { ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp = new ::qpid::messaging::Session( ++ *(const_cast(session)->NativeSession)); ++ ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + +@@ -89,17 +120,62 @@ namespace Messaging { + + void Session::Close() + { +- sessionp->close(); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->close(); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Session::Commit() + { +- sessionp->commit(); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->commit(); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Session::Rollback() + { +- sessionp->rollback(); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->rollback(); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Session::Acknowledge() +@@ -109,7 +185,22 @@ namespace Messaging { + + void Session::Acknowledge(bool sync) + { +- sessionp->acknowledge(sync); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->acknowledge(sync); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Session::Acknowledge(Message ^ message) +@@ -119,17 +210,62 @@ namespace Messaging { + + void Session::Acknowledge(Message ^ message, bool sync) + { +- sessionp->acknowledge(*(message->NativeMessage), sync); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->acknowledge(*(message->NativeMessage), sync); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Session::Reject(Message ^ message) + { +- sessionp->::qpid::messaging::Session::reject(*(message->NativeMessage)); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->::qpid::messaging::Session::reject(*(message->NativeMessage)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Session::Release(Message ^ message) + { +- sessionp->::qpid::messaging::Session::release(*(message->NativeMessage)); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->::qpid::messaging::Session::release(*(message->NativeMessage)); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + void Session::Sync() +@@ -139,7 +275,22 @@ namespace Messaging { + + void Session::Sync(bool block) + { +- sessionp->sync(block); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->sync(block); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + + // next(receiver) +@@ -444,6 +595,21 @@ namespace Messaging { + + void Session::CheckError() + { +- sessionp->checkError(); ++ System::Exception ^ newException = nullptr; ++ ++ try ++ { ++ sessionp->checkError(); ++ } ++ catch (const ::qpid::types::Exception & error) ++ { ++ String ^ errmsg = gcnew String(error.what()); ++ newException = gcnew QpidException(errmsg); ++ } ++ ++ if (newException != nullptr) ++ { ++ throw newException; ++ } + } + }}}} +-- +1.5.5.6 + +From 1408f0bc8c0d13ff6a171b684149fa419f09973b Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Fri, 5 Nov 2010 19:07:46 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2924 Refactor WinSDK to create separate debug and release /bin directories + +This checkin gets rid of the "d" in the debug version of the .NET Binding org.apache.qpid.messaging.dll. It applies to the project that creates the dll and to twelve CSharp projects that use the dll. + +This simple change greatly reduces the burden on customers that QPID-2924 tries to address. Now to switch between debug and release for .NET examples, the customer unpacks the correct DLLs into the \bin directory and relinks the examples. The user does not have to remove and restore project references to the correct DLL for each project. + +Note that these name changes have zero effect on a developer's view of the examples. In those .csproj files the DLL reference is resolved by a _project_ reeference and not by a DLL reference. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1031720 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 10ef9d4a9992c7969c155f770852037440277864) +--- + .../dotnet/src/org.apache.qpid.messaging.vcproj | 4 ++-- + .../csharp.direct.receiver.csproj | 4 ++-- + .../csharp.direct.sender.csproj | 4 ++-- + .../csharp.example.client.csproj | 4 ++-- + .../csharp.example.declare_queues.csproj | 4 ++-- + .../csharp.example.drain.csproj | 4 ++-- + .../csharp.example.helloworld.csproj | 4 ++-- + .../csharp.example.server.csproj | 4 ++-- + .../csharp.example.spout.csproj | 4 ++-- + .../csharp.map.callback.receiver.csproj | 4 ++-- + .../csharp.map.callback.sender.csproj | 4 ++-- + .../csharp.map.receiver/csharp.map.receiver.csproj | 4 ++-- + .../csharp.map.sender/csharp.map.sender.csproj | 4 ++-- + 13 files changed, 26 insertions(+), 26 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +index 286e4ad..f3a0071 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj ++++ b/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj +@@ -87,7 +87,7 @@ + Name="VCLinkerTool" + AdditionalOptions=" /STACK:10000000 /machine:I386" + AdditionalDependencies="$(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidclientd.lib $(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidcommond.lib $(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidmessagingd.lib $(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidtypesd.lib" +- OutputFile="$(QPID_BUILD_ROOT)\src\$(ConfigurationName)\org.apache.qpid.messagingd.dll" ++ OutputFile="$(QPID_BUILD_ROOT)\src\$(ConfigurationName)\org.apache.qpid.messaging.dll" + LinkIncremental="1" + GenerateDebugInformation="true" + AssemblyDebug="1" +@@ -166,7 +166,7 @@ + Name="VCLinkerTool" + AdditionalOptions=" /STACK:10000000" + AdditionalDependencies="$(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidclientd.lib $(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidcommond.lib $(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidmessagingd.lib $(QPID_BUILD_ROOT)\src\$(ConfigurationName)\qpidtypesd.lib" +- OutputFile="$(QPID_BUILD_ROOT)\src\$(ConfigurationName)\org.apache.qpid.messagingd.dll" ++ OutputFile="$(QPID_BUILD_ROOT)\src\$(ConfigurationName)\org.apache.qpid.messaging.dll" + LinkIncremental="1" + GenerateDebugInformation="true" + AssemblyDebug="1" +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index 8761a9f..5ebeb28 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj +index f70c268..57c1032 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -64,9 +64,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj +index 982faeb..ed307e7 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.client/csharp.example.client.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +index 0dca7a2..cf6df68 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj +index c807657..1c25871 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.drain/csharp.example.drain.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +index 5261bfd..c97bf7d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj +index 508ae8e..3ab00f4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.server/csharp.example.server.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj +index bc284b4..783545f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.example.spout/csharp.example.spout.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +index a30996b..3803720 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + False +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +index c3a8918..79313b9 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -84,9 +84,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj +index d2e50ea..cd4329a 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj +index 36b63a4..285804b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/winsdk_sources/examples/csharp.map.sender/csharp.map.sender.csproj +@@ -81,9 +81,9 @@ under the License. + prompt + + +- ++ + False +- $(ProjectDir)..\..\..\bin\org.apache.qpid.messagingd.dll ++ $(ProjectDir)..\..\..\bin\org.apache.qpid.messaging.dll + + + +-- +1.5.5.6 + +From 8e004e502d6fb1f8a6b0f9fcf7e8179027b36061 Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Mon, 8 Nov 2010 21:17:50 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2933 Messaging .NET binding has several assembly properties misnamed + +Property files got cut and paste errors when projects were cloned. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1032720 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit e8afe0134dfbee5fa30df0ad1f8a062a45c36441) +--- + .../Properties/AssemblyInfo.cs | 4 ++-- + .../Properties/AssemblyInfo.cs | 4 ++-- + .../Properties/AssemblyInfo.cs | 4 ++-- + .../Properties/AssemblyInfo.cs | 4 ++-- + .../Properties/AssemblyInfo.cs | 4 ++-- + .../Properties/AssemblyInfo.cs | 4 ++-- + .../Properties/AssemblyInfo.cs | 4 ++-- + 7 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs +index eafc140..eddb759 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/Properties/AssemblyInfo.cs +@@ -26,11 +26,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyTitle("csharp.example.client")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyProduct("csharp.example.client")] + [assembly: AssemblyCopyright("Copyright ? 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs +index eafc140..d949dde 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Properties/AssemblyInfo.cs +@@ -26,11 +26,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyTitle("csharp.example.drain")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyProduct("csharp.example.drain")] + [assembly: AssemblyCopyright("Copyright ? 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs +index 91aea43..17bbd84 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/Properties/AssemblyInfo.cs +@@ -26,11 +26,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.direct.sender")] ++[assembly: AssemblyTitle("csharp.example.helloworld")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.direct.sender")] ++[assembly: AssemblyProduct("csharp.example.helloworld")] + [assembly: AssemblyCopyright("Copyright ? 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs +index eafc140..7f0fd52 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/Properties/AssemblyInfo.cs +@@ -26,11 +26,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyTitle("csharp.example.server")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyProduct("csharp.example.server")] + [assembly: AssemblyCopyright("Copyright ? 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs +index eafc140..f07c780 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Properties/AssemblyInfo.cs +@@ -26,11 +26,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.direct.receiver")] ++[assembly: AssemblyTitle("csharp.example.spout")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.direct.receiver")] ++[assembly: AssemblyProduct("csharp.example.spout")] + [assembly: AssemblyCopyright("Copyright ? 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/Properties/AssemblyInfo.cs +index 8e2add1..a87f92c 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/Properties/AssemblyInfo.cs +@@ -23,11 +23,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.map.receiver")] ++[assembly: AssemblyTitle("csharp.map.callback.receiver")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.map.receiver")] ++[assembly: AssemblyProduct("csharp.map.callback.receiver")] + [assembly: AssemblyCopyright("Copyright 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs +index 1f84944..e633f76 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/Properties/AssemblyInfo.cs +@@ -23,11 +23,11 @@ using System.Runtime.InteropServices; + // General Information about an assembly is controlled through the following + // set of attributes. Change these attribute values to modify the information + // associated with an assembly. +-[assembly: AssemblyTitle("csharp.map.sender")] ++[assembly: AssemblyTitle("csharp.map.callback.sender")] + [assembly: AssemblyDescription("")] + [assembly: AssemblyConfiguration("")] + [assembly: AssemblyCompany("")] +-[assembly: AssemblyProduct("csharp.map.sender")] ++[assembly: AssemblyProduct("csharp.map.callback.sender")] + [assembly: AssemblyCopyright("Copyright 2010")] + [assembly: AssemblyTrademark("")] + [assembly: AssemblyCulture("")] +-- +1.5.5.6 + +From cb5dc4d9907fb8946a46834d443def28f09f0d6a Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Wed, 10 Nov 2010 19:45:23 +0000 +Subject: [PATCH] Bug 603805 - .NET bindings for the C++ Messaging API + +QPID-2939 Qpid .NET Messaging Binding has stray references and using statements + +Clean them up. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1033679 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit a9bcb605800611dc28c6131564f9cdcca98aaa98) +--- + .../csharp.direct.receiver.cs | 3 --- + .../csharp.direct.receiver.csproj | 14 -------------- + .../csharp.direct.sender/csharp.direct.sender.cs | 3 --- + .../csharp.direct.sender.csproj | 14 -------------- + .../csharp.example.client.csproj | 14 -------------- + .../csharp.example.declare_queues.cs | 3 --- + .../csharp.example.declare_queues.csproj | 14 -------------- + .../examples/csharp.example.drain/Options.cs | 6 ------ + .../csharp.example.drain.csproj | 14 -------------- + .../csharp.example.helloworld.csproj | 14 -------------- + .../csharp.example.server.csproj | 14 -------------- + .../examples/csharp.example.spout/Options.cs | 4 ---- + .../csharp.example.spout.csproj | 11 ----------- + .../csharp.map.callback.receiver.csproj | 11 ----------- + .../csharp.map.callback.sender.cs | 2 -- + .../csharp.map.callback.sender.csproj | 11 ----------- + .../csharp.map.receiver/csharp.map.receiver.csproj | 18 ------------------ + .../csharp.map.sender/csharp.map.sender.cs | 2 -- + .../csharp.map.sender/csharp.map.sender.csproj | 14 -------------- + .../csharp.direct.receiver.csproj | 12 ------------ + .../csharp.direct.sender.csproj | 12 ------------ + .../csharp.example.client.csproj | 12 ------------ + .../csharp.example.declare_queues.csproj | 12 ------------ + .../csharp.example.drain.csproj | 12 ------------ + .../csharp.example.helloworld.csproj | 12 ------------ + .../csharp.example.server.csproj | 12 ------------ + .../csharp.example.spout.csproj | 11 ----------- + .../csharp.map.callback.receiver.csproj | 11 ----------- + .../csharp.map.callback.sender.csproj | 11 ----------- + .../csharp.map.receiver/csharp.map.receiver.csproj | 12 ------------ + .../csharp.map.sender/csharp.map.sender.csproj | 12 ------------ + 31 files changed, 0 insertions(+), 327 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +index 69f7a0d..cb4cb3e 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.cs +@@ -20,9 +20,6 @@ + */ + + using System; +-using System.Collections.Generic; +-using System.Linq; +-using System.Text; + using Org.Apache.Qpid.Messaging; + + namespace CSharpDirect +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +index 41c6662..34d79af 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.receiver/csharp.direct.receiver.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +index 2e80e8c..ade2bef 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.cs +@@ -20,9 +20,6 @@ + */ + + using System; +-using System.Collections.Generic; +-using System.Linq; +-using System.Text; + using Org.Apache.Qpid.Messaging; + + namespace csharp.direct.sender +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +index 47d44fe..a8cd07d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.direct.sender/csharp.direct.sender.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +index 5be117d..537efa8 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.client/csharp.example.client.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs +index 7f116f1..4a20e32 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.cs +@@ -20,9 +20,6 @@ + */ + + using System; +-using System.Collections; +-using System.Collections.Generic; +-using System.Collections.ObjectModel; + using Org.Apache.Qpid.Messaging; + + namespace Org.Apache.Qpid.Messaging.Examples { +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +index 2604910..a458e70 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.declare_queues/csharp.example.declare_queues.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs +index 808e227..6059f76 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/Options.cs +@@ -20,12 +20,6 @@ + namespace Org.Apache.Qpid.Messaging.Examples + { + using System; +- using System.Collections; +- using System.Collections.Generic; +- using System.Diagnostics; +- using System.IO; +- using System.Text; +- using System.Xml; + + public class Options + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +index 6e02e1d..75f419d 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.drain/csharp.example.drain.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +index f0b4aac..0307bea 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.helloworld/csharp.example.helloworld.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +index c7db0a2..d377018 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.server/csharp.example.server.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs +index be55c1e..9ceb11e 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/Options.cs +@@ -23,10 +23,6 @@ namespace Org.Apache.Qpid.Messaging.Examples + using System.Collections; + using System.Collections.Generic; + using System.Collections.ObjectModel; +- using System.Diagnostics; +- using System.IO; +- using System.Text; +- using System.Xml; + + public class Options + { +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +index 0011619..c0e4d7f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.example.spout/csharp.example.spout.csproj +@@ -83,17 +83,6 @@ + + + +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +index c1fed18..1380fc4 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.receiver/csharp.map.callback.receiver.csproj +@@ -83,17 +83,6 @@ + + + +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +index c987ad9..c6b764a 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.cs +@@ -22,8 +22,6 @@ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; +-using System.Linq; +-using System.Text; + using Org.Apache.Qpid.Messaging; + + namespace Org.Apache.Qpid.Messaging.Examples +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +index 40fd6f0..cb0a570 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.callback.sender/csharp.map.callback.sender.csproj +@@ -85,17 +85,6 @@ + + + +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- + + + +diff --git a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +index bb6b3cd..261286f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj ++++ b/qpid/cpp/bindings/qpid/dotnet/examples/csharp.map.receiver/csharp.map.receiver.csproj +@@ -82,20 +82,6 @@ + prompt + + +- +- +- 3.5 +- +- +- 3.5 +- +- +- 3.5 +- +- +- +- +- + + + +@@ -104,10 +90,6 @@ + {AA5A3B83-5F98-406D-A01C-5A921467A57D} + Org.Apache.Qpid.Messaging + +- +- {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05} +- org.apache.qpid.messaging.sessionreceiver +- + + + ++ ++ ++ ++ ++ ++ ++
++ ++

MICROSOFT SOFTWARE LICENSE TERMS

++ ++

MICROSOFT WINDOWS SOFTWARE DEVELOPMENT KIT

++ ++

for Windows Server 2008 and .NET Framework ++3.5

++ ++

These license terms are an agreement between Microsoft ++Corporation (or based on where you live, one of its affiliates) and you.  Please ++read them.  They apply to the software named above, which includes the ++media on which you received it, if any.  The terms also apply to any ++Microsoft

++ ++

         ++updates,

++ ++

         ++supplements,

++ ++

         ++Internet-based ++services, and

++ ++

         ++support ++services

++ ++

for this software, unless other terms accompany those ++items.  If so, those terms apply.

++ ++

BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.  IF ++YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.

++ ++

If you comply with these license terms, you have the ++rights below.

++ ++

1.      ++INSTALLATION ++AND USE RIGHTS. 

++ ++

a.      ++Installation ++and Use.  ++One user may install and use any number of copies of the software on your ++devices to design, develop and test your programs that run on a Microsoft ++Windows operating system.

++ ++

b.      ++Included ++Microsoft Programs.  ++The software contains other Microsoft programs.  These license terms apply ++to your use of those programs.

++ ++

2.      ++ADDITIONAL ++LICENSING REQUIREMENTS AND/OR USE RIGHTS.

++ ++

a.      ++Distributable ++Code.  ++The software contains code that you are permitted to distribute in programs you ++develop if you comply with the terms below.

++ ++

i.         ++Right ++to Use and Distribute.  ++The code and text files listed below are Distributable Code.

++ ++

         ++REDIST.TXT ++Files.  ++You may copy and distribute the object code form of code listed in REDIST.TXT ++files.

++ ++

         ++Sample ++Code.  ++You may modify, copy, and distribute the source and object code form of code ++marked as sample.

++ ++

         ++Microsoft ++Merge Modules.  ++You may copy and distribute the unmodified output of Microsoft Merge Modules.

++ ++

         ++Third ++Party Distribution.  ++You may permit distributors of your programs to copy and distribute the ++Distributable Code as part of those programs.

++ ++

ii.       ++Distribution ++Requirements.  ++For any Distributable Code you distribute, you must

++ ++

         ++add ++significant primary functionality to it in your programs;

++ ++

         ++for any ++Distributable Code having a filename extension of .lib, distribute only the ++results of running such Distributable Code through a linker with your ++application;

++ ++

         ++distribute ++Distributable Code included in a setup program only as part of that setup ++program without modification;

++ ++

         ++require ++distributors and external end users to agree to terms that protect it at least ++as much as this agreement;

++ ++

         ++display ++your valid copyright notice on your programs;

++ ++

         ++for ++Distributable Code from the Windows Media Services SDK portions of the ++software, include in your programs Help-About box (or in another obvious place ++if there is no box) the following copyright notice:  Portions utilize ++Microsoft Windows Media Technologies.  Copyright (c) 2006 Microsoft ++Corporation.  All Rights Reserved; and

++ ++

         ++indemnify, ++defend, and hold harmless Microsoft from any claims, including attorneys fees, ++related to the distribution or use of your programs.

++ ++

iii.      ++Distribution ++Restrictions.  You ++may not

++ ++

         ++alter ++any copyright, trademark or patent notice in the Distributable Code;

++ ++

         ++use ++Microsofts trademarks in your programs names or in a way that suggests your ++programs come from or are endorsed by Microsoft;

++ ++

         ++include ++Distributable Code in malicious, deceptive or unlawful programs; or

++ ++

         ++modify ++or distribute the source code of any Distributable Code so that any part of it ++becomes subject to an Excluded License.  An Excluded License is one that ++requires, as a condition of use, modification or distribution, that

++ ++

         ++the code ++be disclosed or distributed in source code form; or

++ ++

         ++others ++have the right to modify it.

++ ++

b.      ++Additional ++Functionality.  Microsoft ++may provide additional functionality for the software.  Other license ++terms and fees may apply.

++ ++

3.      ++INTERNET-BASED ++SERVICES.  Microsoft ++provides Internet-based services with the software.  It may change or ++cancel them at any time. You may not use this service in any way that could ++harm it or impair anyone elses use of it.  You may not use the service to ++try to gain unauthorized access to any service, data, account or network by any ++means.

++ ++

4.      ++MICROSOFT ++.NET BENCHMARK TESTING. ++ The software includes one or more components of the .NET Framework 3.5 ++(.NET Components).  You may conduct internal benchmark testing of those ++components.  You may disclose the results of any benchmark test of those ++components, provided that you comply with the conditions set forth at ++http://go.microsoft.com/fwlink/?LinkID=66406.  Notwithstanding any other ++agreement you may have with Microsoft, if you disclose such benchmark test ++results, Microsoft shall have the right to disclose the results of benchmark ++tests it conducts of your products that compete with the applicable .NET ++Component, provided it complies with the same conditions set forth at ++http://go.microsoft.com/fwlink/?LinkID=66406.

++ ++

5.      ++Scope of License.  The software is licensed, not ++sold. This agreement only gives you some rights to use the software.  ++Microsoft reserves all other rights.  Unless applicable law gives you more ++rights despite this limitation, you may use the software only as expressly ++permitted in this agreement.  In doing so, you must comply with any ++technical limitations in the software that only allow you to use it in certain ++ways.  For more information, see www.microsoft.com/licensing/userights.  You may not

++ ++

         ++work ++around any technical limitations in the software;

++ ++

         ++reverse ++engineer, decompile or disassemble the software, except and only to the extent ++that applicable law expressly permits, despite this limitation;

++ ++

         ++make ++more copies of the software than specified in this agreement or allowed by ++applicable law, despite this limitation;

++ ++

         ++publish ++the software for others to copy;

++ ++

         ++rent, ++lease or lend the software; or

++ ++

         ++use the ++software for commercial software hosting services.

++ ++

6.      ++CODE GENERATION ++AND OPTIMIZATION TOOLS.  You may not use the code generation or ++optimization tools in the software (such as compilers, linkers, assemblers, ++runtime code generators, and code generating design and modeling tools) to ++create programs, object code, libraries, assemblies, or executables to run on a ++platform other than Microsoft operating systems, run-time technologies, or ++application platforms.

++ ++

7.      ++BACKUP ++COPY.  ++You may make one backup copy of the software.  You may use it only to ++reinstall the software.

++ ++

8.      ++DOCUMENTATION.  Any person ++that has valid access to your computer or internal network may copy and use the ++documentation for your internal, reference purposes.

++ ++

9.      ++TRANSFER ++TO A THIRD PARTY.  The first user of the software may transfer it, and this ++agreement, directly to a third party.  Before the transfer, that party ++must agree that this agreement applies to the transfer and use of the ++software.  The first user must uninstall the software before transferring ++it separately from the device.  The first user may not retain any copies.

++ ++

10. ++Export Restrictions.  The software ++is subject to United States export laws and regulations.  You must comply ++with all domestic and international export laws and regulations that apply to ++the software.  These laws include restrictions on destinations, end users ++and end use.  For additional information, see www.microsoft.com/exporting.

++ ++

11.  SUPPORT ++SERVICES. ++Because ++this software is as is, we may not provide support services for it.

++ ++

12.  Entire ++Agreement.  ++This agreement, and the terms for supplements, updates, Internet-based services ++and support services that you use, are the entire agreement for the software ++and support services.

++ ++

13.  ++Applicable Law.

++ ++

a.      ++United ++States.  ++If you acquired the software in the United States, Washington state law governs ++the interpretation of this agreement and applies to claims for breach of it, ++regardless of conflict of laws principles.  The laws of the state where ++you live govern all other claims, including claims under state consumer ++protection laws, unfair competition laws, and in tort.

++ ++

b.      ++Outside ++the United States.  ++If you acquired the software in any other country, the laws of that country ++apply.

++ ++

14.  Legal Effect.  This agreement ++describes certain legal rights.  You may have other rights under the laws ++of your country.  You may also have rights with respect to the party from ++whom you acquired the software.  This agreement does not change your ++rights under the laws of your country if the laws of your country do not permit ++it to do so.

++ ++

15.  Disclaimer of ++Warranty.   ++The software is licensed as-is.  ++You bear the risk of using it.  Microsoft gives no express warranties, ++guarantees or conditions.  You may have additional consumer rights under ++your local laws which this agreement cannot change.  To the extent ++permitted under your local laws, Microsoft excludes the implied warranties of ++merchantability, fitness for a particular purpose and non-infringement.

++ ++

16.  Limitation on and ++Exclusion of Remedies and Damages.  You can recover from Microsoft and its ++suppliers only direct damages up to U.S. $5.00.  You cannot recover any ++other damages, including consequential, lost profits, special, indirect or ++incidental damages.

++ ++

This limitation applies to

++ ++

         ++anything ++related to the software, services, content (including code) on third party ++Internet sites, or third party programs; and

++ ++

         ++claims ++for breach of contract, breach of warranty, guarantee or condition, strict liability, ++negligence, or other tort to the extent permitted by applicable law.

++ ++

It also applies even if Microsoft knew or should have ++known about the possibility of the damages.  The above limitation or ++exclusion may not apply to you because your country may not allow the exclusion ++or limitation of incidental, consequential or other damages.

++ ++

Please ++note: As this software is distributed in Quebec, Canada, some of the clauses in ++this agreement are provided below in French.

++ ++

Remarque : Ce ++logiciel tant distribu au Qubec, Canada, certaines des clauses dans ce ++contrat sont fournies ci-dessous en franais.

++ ++

EXONRATION DE GARANTIE. Le logiciel ++vis par une licence est offert tel quel . Toute utilisation de ce logiciel ++est votre seule risque et pril. Microsoft naccorde aucune autre garantie ++expresse. Vous pouvez bnficier de droits additionnels en vertu du droit local ++sur la protection dues consommateurs, que ce contrat ne peut modifier. La ou ++elles sont permises par le droit locale, les garanties implicites de qualit ++marchande, dadquation un usage particulier et dabsence de contrefaon sont ++exclues.

++ ++

LIMITATION DES DOMMAGES-INTRTS ET ++EXCLUSION DE RESPONSABILIT POUR LES DOMMAGES.  Vous pouvez ++obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de ++dommages directs uniquement hauteur de 5,00 $ US. Vous ne pouvez prtendre ++aucune indemnisation pour les autres dommages, y compris les dommages spciaux, ++indirects ou accessoires et pertes de bnfices.

++ ++

Cette limitation concerne :

++ ++

         ++tout  ++ce qui est reli au logiciel, aux services ou au contenu (y compris le code) ++figurant sur des sites Internet tiers ou dans des programmes tiers ; et

++ ++

         ++les ++rclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilit ++stricte, de ngligence ou dune autre faute dans la limite autorise par la loi ++en vigueur.

++ ++

Elle sapplique galement, mme si Microsoft ++connaissait ou devrait connatre lventualit dun tel dommage.  Si votre ++pays nautorise pas lexclusion ou la limitation de responsabilit pour les ++dommages indirects, accessoires ou de quelque nature que ce soit, il se peut ++que la limitation ou lexclusion ci-dessus ne sappliquera pas votre gard.

++ ++

EFFET JURIDIQUE.  Le prsent ++contrat dcrit certains droits juridiques. Vous pourriez avoir dautres droits ++prvus par les lois de votre pays.  Le prsent contrat ne modifie pas les ++droits que vous confrent les lois de votre pays si celles ci ne le permettent ++pas.

++ ++

 

++ ++
++ ++ ++ ++ ++ +-- +1.5.5.6 + +From e4d6dcff2e4aa629a0126a3b0e114745803c4707 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Mon, 29 Nov 2010 09:35:36 -0500 +Subject: [PATCH] Reverted .NET support for per-message acknowledge. + +--- + qpid/cpp/bindings/qpid/dotnet/src/Session.cpp | 25 ------------------------- + qpid/cpp/bindings/qpid/dotnet/src/Session.h | 2 -- + 2 files changed, 0 insertions(+), 27 deletions(-) + +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +index b6d00b4..cf6e43f 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp +@@ -203,31 +203,6 @@ namespace Messaging { + } + } + +- void Session::Acknowledge(Message ^ message) +- { +- Acknowledge(message, false); +- } +- +- void Session::Acknowledge(Message ^ message, bool sync) +- { +- System::Exception ^ newException = nullptr; +- +- try +- { +- sessionp->acknowledge(*(message->NativeMessage), sync); +- } +- catch (const ::qpid::types::Exception & error) +- { +- String ^ errmsg = gcnew String(error.what()); +- newException = gcnew QpidException(errmsg); +- } +- +- if (newException != nullptr) +- { +- throw newException; +- } +- } +- + void Session::Reject(Message ^ message) + { + System::Exception ^ newException = nullptr; +diff --git a/qpid/cpp/bindings/qpid/dotnet/src/Session.h b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +index aa42cf5..d34289b 100644 +--- a/qpid/cpp/bindings/qpid/dotnet/src/Session.h ++++ b/qpid/cpp/bindings/qpid/dotnet/src/Session.h +@@ -104,8 +104,6 @@ namespace Messaging { + void Rollback(); + void Acknowledge(); + void Acknowledge(bool sync); +- void Acknowledge(Message ^ message); +- void Acknowledge(Message ^ message, bool sync); + void Reject(Message ^); + void Release(Message ^); + void Sync(); +-- +1.5.5.6 + +From 3aba950dcb957bf1d4f6ced6b27d8fba5aceb52c Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 17 Nov 2010 19:12:08 +0000 +Subject: [PATCH] Bug 629756 - Lots of Journal inactive late/overrun timer warnings + +Aggregate Timer warnings. + +The Timer code logs a warning if a timer callback is started late or +overruns the start time for the next callback. In cases where there +are a lot of these warnings, the time taken to do the logging itself +severly worsens the situation. + +This commit aggregates timer warnings and give a statistical report +every 5 seconds at most. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1036169 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/include/qpid/log/Statement.h | 18 +++++++ + qpid/cpp/src/Makefile.am | 2 + + qpid/cpp/src/qpid/sys/Timer.cpp | 29 ++++------- + qpid/cpp/src/qpid/sys/Timer.h | 2 + + qpid/cpp/src/qpid/sys/TimerWarnings.cpp | 80 ++++++++++++++++++++++++++++++ + qpid/cpp/src/qpid/sys/TimerWarnings.h | 81 +++++++++++++++++++++++++++++++ + 6 files changed, 194 insertions(+), 18 deletions(-) + create mode 100644 qpid/cpp/src/qpid/sys/TimerWarnings.cpp + create mode 100644 qpid/cpp/src/qpid/sys/TimerWarnings.h + +diff --git a/qpid/cpp/include/qpid/log/Statement.h b/qpid/cpp/include/qpid/log/Statement.h +index 8f73175..7b3ab60 100644 +--- a/qpid/cpp/include/qpid/log/Statement.h ++++ b/qpid/cpp/include/qpid/log/Statement.h +@@ -96,6 +96,24 @@ struct Statement { + } while(0) + + /** ++ * FLAG must be a boolean variable. Assigns FLAG to true iff logging ++ * is enabled for LEVEL in the calling context. Use when extra ++ * support code is needed to generate log messages, to ensure that it ++ * is only run if the logging level is enabled. ++ * e.g. ++ * bool logWarning; ++ * QPID_LOG_TEST(LEVEL, logWarning); ++ * if (logWarning) { do stuff needed for warning log messages } ++ */ ++#define QPID_LOG_TEST(LEVEL, FLAG) \ ++ do { \ ++ using ::qpid::log::Statement; \ ++ static Statement stmt_= QPID_LOG_STATEMENT_INIT(LEVEL); \ ++ static Statement::Initializer init_(stmt_); \ ++ FLAG = stmt_.enabled; \ ++ } while(0) ++ ++/** + * Macro for log statements. Example of use: + * @code + * QPID_LOG(debug, "There are " << foocount << " foos in the bar."); +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 2ab95f0..5a9ca78 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -475,6 +475,8 @@ libqpidcommon_la_SOURCES += \ + qpid/sys/TimeoutHandler.h \ + qpid/sys/Timer.cpp \ + qpid/sys/Timer.h \ ++ qpid/sys/TimerWarnings.cpp \ ++ qpid/sys/TimerWarnings.h \ + qpid/sys/Waitable.h \ + qpid/sys/alloca.h \ + qpid/sys/uuid.h \ +diff --git a/qpid/cpp/src/qpid/sys/Timer.cpp b/qpid/cpp/src/qpid/sys/Timer.cpp +index f7564c4..1833c4b 100644 +--- a/qpid/cpp/src/qpid/sys/Timer.cpp ++++ b/qpid/cpp/src/qpid/sys/Timer.cpp +@@ -79,7 +79,8 @@ Timer::Timer() : + active(false), + late(50 * TIME_MSEC), + overran(2 * TIME_MSEC), +- lateCancel(500 * TIME_MSEC) ++ lateCancel(500 * TIME_MSEC), ++ warn(5 * TIME_SEC) + { + start(); + } +@@ -127,23 +128,15 @@ void Timer::run() + if (!tasks.empty()) { + overrun = Duration(tasks.top()->nextFireTime, end); + } +- if (delay > late) { +- if (overrun > overran) { +- QPID_LOG(warning, +- "Timer woken up " << delay / TIME_MSEC << +- "ms late, overrunning by " << +- overrun / TIME_MSEC << "ms [taking " << +- Duration(start, end) << "]"); +- } else { +- QPID_LOG(warning, +- "Timer woken up " << delay / TIME_MSEC << +- "ms late"); +- } +- } else if (overrun > overran) { +- QPID_LOG(warning, +- "Timer callback overran by " << +- overrun / TIME_MSEC << +- "ms [taking " << Duration(start, end) << "]"); ++ bool warningsEnabled; ++ QPID_LOG_TEST(warning, warningsEnabled); ++ if (warningsEnabled) { ++ if (delay > late && overrun > overran) ++ warn.lateAndOverran(t->name, delay, overrun, Duration(start, end)); ++ else if (delay > late) ++ warn.late(t->name, delay); ++ else if (overrun > overran) ++ warn.overran(t->name, overrun, Duration(start, end)); + } + continue; + } else { +diff --git a/qpid/cpp/src/qpid/sys/Timer.h b/qpid/cpp/src/qpid/sys/Timer.h +index 1e0599e..969c2e7 100644 +--- a/qpid/cpp/src/qpid/sys/Timer.h ++++ b/qpid/cpp/src/qpid/sys/Timer.h +@@ -21,6 +21,7 @@ + #ifndef sys_Timer + #define sys_Timer + ++#include "qpid/sys/TimerWarnings.h" + #include "qpid/sys/Monitor.h" + #include "qpid/sys/Mutex.h" + #include "qpid/sys/Thread.h" +@@ -96,6 +97,7 @@ class Timer : private Runnable { + Duration late; + Duration overran; + Duration lateCancel; ++ TimerWarnings warn; + }; + + +diff --git a/qpid/cpp/src/qpid/sys/TimerWarnings.cpp b/qpid/cpp/src/qpid/sys/TimerWarnings.cpp +new file mode 100644 +index 0000000..48a56eb +--- /dev/null ++++ b/qpid/cpp/src/qpid/sys/TimerWarnings.cpp +@@ -0,0 +1,80 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++#include "TimerWarnings.h" ++#include "qpid/log/Statement.h" ++ ++namespace qpid { ++namespace sys { ++ ++TimerWarnings::TimerWarnings(Duration reportInterval) : ++ interval(reportInterval), ++ nextReport(now(), reportInterval) ++{} ++ ++void TimerWarnings::late(const std::string& task, Duration delay) { ++ taskStats[task].lateDelay.add(delay); ++ log(); ++} ++ ++void TimerWarnings::overran(const std::string& task, Duration overrun, Duration time) ++{ ++ taskStats[task].overranOverrun.add(overrun); ++ taskStats[task].overranTime.add(time); ++ log(); ++} ++ ++void TimerWarnings::lateAndOverran( ++ const std::string& task, Duration delay, Duration overrun, Duration time) ++{ ++ taskStats[task].lateAndOverranDelay.add(delay); ++ taskStats[task].lateAndOverranOverrun.add(overrun); ++ taskStats[task].lateAndOverranTime.add(time); ++ log(); ++} ++ ++void TimerWarnings::log() { ++ if (!taskStats.empty() && nextReport < now()) { ++ for (TaskStatsMap::iterator i = taskStats.begin(); i != taskStats.end(); ++i) { ++ std::string task = i->first; ++ TaskStats& stats = i->second; ++ if (stats.lateDelay.count) ++ QPID_LOG(warning, task << " task late " ++ << stats.lateDelay.count << " times by " ++ << stats.lateDelay.average()/TIME_MSEC << "ms on average."); ++ if (stats.overranOverrun.count) ++ QPID_LOG(warning, task << " task overran " ++ << stats.overranOverrun.count << " times by " ++ << stats.overranOverrun.average()/TIME_MSEC << "ms (taking " ++ << stats.overranTime.average() << "ns) on average."); ++ ++ if (stats.lateAndOverranDelay.count) ++ QPID_LOG(warning, task << " task overran " ++ << stats.overranOverrun.count << " times by " ++ << stats.overranOverrun.average()/TIME_MSEC << "ms (taking " ++ << stats.overranTime.average() << "ns) on average."); ++ ++ } ++ nextReport = AbsTime(now(), interval); ++ taskStats.clear(); ++ } ++} ++ ++}} // namespace qpid::sys +diff --git a/qpid/cpp/src/qpid/sys/TimerWarnings.h b/qpid/cpp/src/qpid/sys/TimerWarnings.h +new file mode 100644 +index 0000000..337a434 +--- /dev/null ++++ b/qpid/cpp/src/qpid/sys/TimerWarnings.h +@@ -0,0 +1,81 @@ ++#ifndef QPID_SYS_TIMERWARNINGS_H ++#define QPID_SYS_TIMERWARNINGS_H ++ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include "qpid/sys/Time.h" ++#include ++#include ++ ++namespace qpid { ++namespace sys { ++ ++/** ++ * The Timer class logs warnings when timer tasks are late and/or overrun. ++ * ++ * It is too expensive to log a warning for every late/overrun ++ * incident, doing so aggravates the problem of tasks over-running and ++ * being late. ++ * ++ * This class collects statistical data about each incident and prints ++ * an aggregated report at regular intervals. ++ */ ++class TimerWarnings ++{ ++ public: ++ TimerWarnings(Duration reportInterval); ++ ++ void late(const std::string& task, Duration delay); ++ ++ void overran(const std::string& task, Duration overrun, Duration time); ++ ++ void lateAndOverran(const std::string& task, ++ Duration delay, Duration overrun, Duration time); ++ ++ private: ++ struct Statistic { ++ Statistic() : total(0), count(0) {} ++ void add(int64_t value) { total += value; ++count; } ++ int64_t average() const { return count ? total/count : 0; } ++ int64_t total; ++ int64_t count; ++ }; ++ ++ // Keep statistics for 3 classes of incident: late, overrun and both. ++ struct TaskStats { ++ Statistic lateDelay; // Just late ++ Statistic overranOverrun, overranTime; // Just overrun ++ // Both ++ Statistic lateAndOverranDelay, lateAndOverranOverrun, lateAndOverranTime; ++ }; ++ ++ typedef std::map TaskStatsMap; ++ ++ void log(); ++ ++ Duration interval; ++ AbsTime nextReport; ++ TaskStatsMap taskStats; ++}; ++}} // namespace qpid::sys ++ ++#endif /*!QPID_SYS_TIMERWARNINGS_H*/ +-- +1.5.5.6 + +From bdf4f6fedf63dad0ddb0f93d9308cd1a87b08cd9 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 18 Nov 2010 19:40:53 +0000 +Subject: [PATCH] Bug 648927 - Clustered broker crashes in assertion in cluster/ExpiryPolicy.cpp + +QPID-2874 Clustered broker crashes in assertion in cluster/ExpiryPolicy.cpp + +- Added missing lock to ExpiryPolicy +- 1-N mapping for expiry ID to mapping when receiving an update. +- Regression test. + +A fan-out message (sent to multiple queues e.g. by fanout or topic +exchange) is a single message on multiple queues with a single expiry +ID. During an update however each instance is sent as a separate +message so we need to allow 1-N mapping of expiry ID to message during +update. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1036589 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp | 52 +++++++++++++++++++++++---- + qpid/cpp/src/qpid/cluster/ExpiryPolicy.h | 10 ++++-- + qpid/cpp/src/tests/cluster_tests.py | 27 +++++++++++++-- + qpid/python/qpid/brokertest.py | 16 +++++++-- + 4 files changed, 88 insertions(+), 17 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp b/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp +index 190eeb7..083d21a 100644 +--- a/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp ++++ b/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp +@@ -41,40 +41,76 @@ struct ExpiryTask : public sys::TimerTask { + const uint64_t expiryId; + }; + ++// Called while receiving an update ++void ExpiryPolicy::setId(uint64_t id) { ++ sys::Mutex::ScopedLock l(lock); ++ expiryId = id; ++} ++ ++// Called while giving an update ++uint64_t ExpiryPolicy::getId() const { ++ sys::Mutex::ScopedLock l(lock); ++ return expiryId; ++} ++ ++// Called in enqueuing connection thread + void ExpiryPolicy::willExpire(broker::Message& m) { +- uint64_t id = expiryId++; +- assert(unexpiredById.find(id) == unexpiredById.end()); +- assert(unexpiredByMessage.find(&m) == unexpiredByMessage.end()); +- unexpiredById[id] = &m; +- unexpiredByMessage[&m] = id; ++ uint64_t id; ++ { ++ // When messages are fanned out to multiple queues, update sends ++ // them as independenty messages so we can have multiple messages ++ // with the same expiry ID. ++ // ++ // TODO: fix update to avoid duplicating messages. ++ sys::Mutex::ScopedLock l(lock); ++ id = expiryId++; // if this is an update, this expiryId may already exist ++ assert(unexpiredByMessage.find(&m) == unexpiredByMessage.end()); ++ unexpiredById.insert(IdMessageMap::value_type(id, &m)); ++ unexpiredByMessage[&m] = id; ++ } + timer.add(new ExpiryTask(this, id, m.getExpiration())); + } + ++// Called in dequeueing connection thread + void ExpiryPolicy::forget(broker::Message& m) { ++ sys::Mutex::ScopedLock l(lock); + MessageIdMap::iterator i = unexpiredByMessage.find(&m); + assert(i != unexpiredByMessage.end()); + unexpiredById.erase(i->second); + unexpiredByMessage.erase(i); + } + ++// Called in dequeueing connection or cleanup thread. + bool ExpiryPolicy::hasExpired(broker::Message& m) { ++ sys::Mutex::ScopedLock l(lock); + return unexpiredByMessage.find(&m) == unexpiredByMessage.end(); + } + ++// Called in timer thread + void ExpiryPolicy::sendExpire(uint64_t id) { ++ { ++ sys::Mutex::ScopedLock l(lock); ++ // Don't multicast an expiry notice if message is already forgotten. ++ if (unexpiredById.find(id) == unexpiredById.end()) return; ++ } + mcast.mcastControl(framing::ClusterMessageExpiredBody(framing::ProtocolVersion(), id), memberId); + } + ++// Called in CPG deliver thread. + void ExpiryPolicy::deliverExpire(uint64_t id) { +- IdMessageMap::iterator i = unexpiredById.find(id); +- if (i != unexpiredById.end()) { ++ sys::Mutex::ScopedLock l(lock); ++ std::pair expired = unexpiredById.equal_range(id); ++ IdMessageMap::iterator i = expired.first; ++ while (i != expired.second) { + i->second->setExpiryPolicy(expiredPolicy); // hasExpired() == true; + unexpiredByMessage.erase(i->second); +- unexpiredById.erase(i); ++ unexpiredById.erase(i++); + } + } + ++// Called in update thread on the updater. + boost::optional ExpiryPolicy::getId(broker::Message& m) { ++ sys::Mutex::ScopedLock l(lock); + MessageIdMap::iterator i = unexpiredByMessage.find(&m); + return i == unexpiredByMessage.end() ? boost::optional() : i->second; + } +diff --git a/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h b/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h +index bdbe3a6..77a656a 100644 +--- a/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h ++++ b/qpid/cpp/src/qpid/cluster/ExpiryPolicy.h +@@ -61,20 +61,24 @@ class ExpiryPolicy : public broker::ExpiryPolicy + // Cluster delivers expiry notice. + void deliverExpire(uint64_t); + +- void setId(uint64_t id) { expiryId = id; } +- uint64_t getId() const { return expiryId; } ++ void setId(uint64_t id); ++ uint64_t getId() const; + + boost::optional getId(broker::Message&); + + private: + typedef std::map MessageIdMap; +- typedef std::map IdMessageMap; ++ // When messages are fanned out to multiple queues, update sends ++ // them as independenty messages so we can have multiple messages ++ // with the same expiry ID. ++ typedef std::multimap IdMessageMap; + + struct Expired : public broker::ExpiryPolicy { + bool hasExpired(broker::Message&); + void willExpire(broker::Message&); + }; + ++ mutable sys::Mutex lock; + MessageIdMap unexpiredByMessage; + IdMessageMap unexpiredById; + uint64_t expiryId; +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index 6a443ab..260f2c7 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -22,8 +22,8 @@ import os, signal, sys, time, imp, re + from qpid import datatypes, messaging + from qpid.brokertest import * + from qpid.harness import Skipped +-from qpid.messaging import Message +-from threading import Thread ++from qpid.messaging import Message, Empty ++from threading import Thread, Lock + from logging import getLogger + from itertools import chain + +@@ -41,7 +41,6 @@ log = getLogger("qpid.cluster_tests") + # Import scripts as modules + qpid_cluster=import_script(checkenv("QPID_CLUSTER_EXEC")) + +- + def readfile(filename): + """Returns te content of file named filename as a string""" + f = file(filename) +@@ -145,6 +144,28 @@ class ShortTests(BrokerTest): + + for b in cluster: b.ready() # Make sure all brokers still running. + ++ def evaluate_address(self, session, address): ++ """Create a receiver just to evaluate an address for its side effects""" ++ r = session.receiver(address) ++ r.close() ++ ++ def test_expire_fanout(self): ++ """Regression test for QPID-2874: Clustered broker crashes in assertion in ++ cluster/ExpiryPolicy.cpp. ++ Caused by a fan-out message being updated as separate messages""" ++ cluster = self.cluster(1) ++ session0 = cluster[0].connect().session() ++ # Create 2 queues bound to fanout exchange. ++ self.evaluate_address(session0, "q1;{create:always,node:{x-bindings:[{exchange:'amq.fanout',queue:q1}]}}") ++ self.evaluate_address(session0, "q2;{create:always,node:{x-bindings:[{exchange:'amq.fanout',queue:q2}]}}") ++ queues = ["q1", "q2"] ++ # Send a fanout message with a long timeout ++ s = session0.sender("amq.fanout") ++ s.send(Message("foo", ttl=100), sync=False) ++ # Start a new member, check the messages ++ cluster.start() ++ session1 = cluster[1].connect().session() ++ for q in queues: self.assert_browse(session1, "q1", ["foo"]) + + class LongTests(BrokerTest): + """Tests that can run for a long time if -DDURATION= is set""" +diff --git a/qpid/python/qpid/brokertest.py b/qpid/python/qpid/brokertest.py +index fddeefa..8aadf26 100644 +--- a/qpid/python/qpid/brokertest.py ++++ b/qpid/python/qpid/brokertest.py +@@ -483,9 +483,19 @@ class BrokerTest(TestCase): + cluster = Cluster(self, count, args, expect=expect, wait=wait) + return cluster + +-# def wait(self): +-# """Wait for all brokers in the cluster to be ready""" +-# for b in _brokers: b.connect().close() ++ def assert_browse(self, session, queue, expect_contents, timeout=0): ++ """Assert that the contents of messages on queue (as retrieved ++ using session and timeout) exactly match the strings in ++ expect_contents""" ++ ++ r = session.receiver("%s;{mode:browse}"%(queue)) ++ actual_contents = [] ++ try: ++ for c in expect_contents: actual_contents.append(r.fetch(timeout=timeout).content) ++ while True: actual_contents.append(r.fetch(timeout=0).content) # Check for extra messages. ++ except messaging.Empty: pass ++ r.close() ++ self.assertEqual(expect_contents, actual_contents) + + class RethrownException(Exception): + """Captures the stack trace of the current exception to be thrown later""" +-- +1.5.5.6 + +From ed08f5f53d4c5287213fb07678776f8d4aa86b9a Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 2 Dec 2010 11:55:02 -0500 +Subject: [PATCH] Bug 655141 - cluster broker exits with "error deliveryRecord no update message." + +QPID-2956: cluster broker exits with "error deliveryRecord no update message." + +The following sequence of events was causing a broker joining the cluster to shutdown: +- a client acquires or browses a message with TTL set. +- the message expires. +- a new broker joins before the client has acknowledged the message. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1037763 13f79535-47bb-0310-9956-ffa450edef68 + +Conflicts: + + qpid/cpp/src/tests/cluster_tests.py +--- + qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp | 17 ++++++++++----- + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 6 ++-- + qpid/cpp/src/tests/cluster_tests.py | 23 +++++++++++++++++++- + qpid/python/qpid/brokertest.py | 30 +++++++++++++++++---------- + 4 files changed, 54 insertions(+), 22 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp b/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp +index 083d21a..3e3a495 100644 +--- a/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp ++++ b/qpid/cpp/src/qpid/cluster/ExpiryPolicy.cpp +@@ -31,7 +31,7 @@ namespace qpid { + namespace cluster { + + ExpiryPolicy::ExpiryPolicy(Multicaster& m, const MemberId& id, sys::Timer& t) +- : expiryId(0), expiredPolicy(new Expired), mcast(m), memberId(id), timer(t) {} ++ : expiryId(1), expiredPolicy(new Expired), mcast(m), memberId(id), timer(t) {} + + struct ExpiryTask : public sys::TimerTask { + ExpiryTask(const boost::intrusive_ptr& policy, uint64_t id, sys::AbsTime when) +@@ -61,12 +61,17 @@ void ExpiryPolicy::willExpire(broker::Message& m) { + // them as independenty messages so we can have multiple messages + // with the same expiry ID. + // +- // TODO: fix update to avoid duplicating messages. + sys::Mutex::ScopedLock l(lock); +- id = expiryId++; // if this is an update, this expiryId may already exist +- assert(unexpiredByMessage.find(&m) == unexpiredByMessage.end()); +- unexpiredById.insert(IdMessageMap::value_type(id, &m)); +- unexpiredByMessage[&m] = id; ++ id = expiryId++; ++ if (!id) { // This is an update of an already-expired message. ++ m.setExpiryPolicy(expiredPolicy); ++ } ++ else { ++ assert(unexpiredByMessage.find(&m) == unexpiredByMessage.end()); ++ // If this is an update, the id may already exist ++ unexpiredById.insert(IdMessageMap::value_type(id, &m)); ++ unexpiredByMessage[&m] = id; ++ } + } + timer.add(new ExpiryTask(this, id, m.getExpiration())); + } +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 148526b..4628313 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -272,8 +272,7 @@ class MessageUpdater { + // Send the expiry ID if necessary. + if (message.payload->getProperties()->getTtl()) { + boost::optional expiryId = expiry.getId(*message.payload); +- if (!expiryId) return; // Message already expired, don't replicate. +- ClusterConnectionProxy(session).expiryId(*expiryId); ++ ClusterConnectionProxy(session).expiryId(expiryId?*expiryId:0); + } + + // We can't send a broker::Message via the normal client API, +@@ -408,7 +407,8 @@ void UpdateClient::updateSession(broker::SessionHandler& sh) { + + QPID_LOG(debug, updaterId << " updating unacknowledged messages."); + broker::DeliveryRecords& drs = ss->getSemanticState().getUnacked(); +- std::for_each(drs.begin(), drs.end(), boost::bind(&UpdateClient::updateUnacked, this, _1)); ++ std::for_each(drs.begin(), drs.end(), ++ boost::bind(&UpdateClient::updateUnacked, this, _1)); + + updateTxState(ss->getSemanticState()); // Tx transaction state. + +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index 260f2c7..52eca81 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -167,6 +167,25 @@ class ShortTests(BrokerTest): + session1 = cluster[1].connect().session() + for q in queues: self.assert_browse(session1, "q1", ["foo"]) + ++ def test_dr_no_message(self): ++ """Regression test for https://bugzilla.redhat.com/show_bug.cgi?id=655141 ++ Joining broker crashes with 'error deliveryRecord no update message' ++ """ ++ ++ cluster = self.cluster(1) ++ session0 = cluster[0].connect().session() ++ s = session0.sender("q1;{create:always}") ++ s.send(Message("a", ttl=0.05), sync=False) ++ s.send(Message("b", ttl=0.05), sync=False) ++ r1 = session0.receiver("q1") ++ self.assertEqual("a", r1.fetch(timeout=0).content) ++ r2 = session0.receiver("q1;{mode:browse}") ++ self.assertEqual("b", r2.fetch(timeout=0).content) ++ # Leave messages un-acknowledged, let the expire, then start new broker. ++ time.sleep(.1) ++ cluster.start() ++ self.assertRaises(Empty, cluster[1].connect().session().receiver("q1").fetch,0) ++ + class LongTests(BrokerTest): + """Tests that can run for a long time if -DDURATION= is set""" + def duration(self): +@@ -196,7 +215,7 @@ class LongTests(BrokerTest): + i += 1 + b = cluster.start(expect=EXPECT_EXIT_FAIL) + ErrorGenerator(b) +- time.sleep(min(5,self.duration()/2)) ++ time.sleep(5) + sender.stop() + receiver.stop() + for i in range(i, len(cluster)): cluster[i].kill() +@@ -296,7 +315,7 @@ class LongTests(BrokerTest): + start_mclients(cluster[alive]) + + while time.time() < endtime: +- time.sleep(min(5,duration/2)) ++ time.sleep(5) + for b in cluster[alive:]: b.ready() # Check if a broker crashed. + # Kill the first broker, expect the clients to fail. + for c in clients[alive] + mclients: c.expect_fail() +diff --git a/qpid/python/qpid/brokertest.py b/qpid/python/qpid/brokertest.py +index 8aadf26..2064d45 100644 +--- a/qpid/python/qpid/brokertest.py ++++ b/qpid/python/qpid/brokertest.py +@@ -79,16 +79,18 @@ class ExceptionWrapper: + except Exception, e: + raise Exception("%s: %s" %(self.msg, str(e))) + +-def error_line(filename): +- """Get the last line of filename for error messages""" +- result = "" ++def error_line(filename, n=1): ++ """Get the last n line(s) of filename for error messages""" ++ result = [] + try: + f = open(filename) + try: +- for l in f: result = ": " + l ++ for l in f: ++ if len(result) == n: result.pop(0) ++ result.append(" "+l) + finally: f.close() + except: return "" +- return result ++ return ":\n" + "".join(result) + + def retry(function, timeout=10, delay=.01): + """Call function until it returns True or timeout expires. +@@ -304,7 +306,7 @@ class Broker(Popen): + try: self._port = int(self.stdout.readline()) + except ValueError: + raise Exception("Can't get port for broker %s (%s)%s" % +- (self.name, self.pname, error_line(self.log))) ++ (self.name, self.pname, error_line(self.log,5))) + return self._port + + def unexpected(self,msg): +@@ -377,11 +379,17 @@ class Broker(Popen): + def ready(self): + """Wait till broker is ready to serve clients""" + # First make sure the broker is listening by checking the log. +- if not retry(self.log_ready): +- raise Exception("Timed out waiting for broker %s" % self.name) +- # Make a connection, this will wait for extended cluster init to finish. +- try: self.connect().close() +- except: raise RethrownException("Broker %s failed ready test"%self.name) ++ if not retry(self.log_ready, timeout=30): ++ raise Exception( ++ "Timed out waiting for broker %s%s"%(self.name, error_line(self.log,5))) ++ # Create a connection and a session. For a cluster broker this will ++ # return after cluster init has finished. ++ try: ++ c = self.connect() ++ try: c.session() ++ finally: c.close() ++ except: raise RethrownException( ++ "Broker %s failed ready test%s"%(self.name,error_line(self.log, 5))) + + def store_state(self): + uuids = open(os.path.join(self.datadir, "cluster", "store.status")).readlines() +-- +1.5.5.6 + +From 1ccde0bfe7e2d01edb7652f8d80a7eb32704b81e Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 1 Dec 2010 21:31:36 +0000 +Subject: [PATCH] Bug 655078 - Replicate management agent's deleted object list. + +Described in https://bugzilla.redhat.com/show_bug.cgi?id=655078. The +management agent's deleted-object list was not being replicated to new +members joining the cluster, so management generated fewer deleted +object notifications on the newer member, causing it to fail with an +invalid-argument error. The list is now being replicated correctly. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1041181 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/cluster.mk | 4 +- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 7 +- + qpid/cpp/src/qpid/cluster/Connection.cpp | 24 +-- + qpid/cpp/src/qpid/cluster/Connection.h | 2 - + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 42 +++- + qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp | 96 +++++++ + qpid/cpp/src/qpid/cluster/UpdateDataExchange.h | 81 ++++++ + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 315 +++++++++++++++++++++- + qpid/cpp/src/qpid/management/ManagementAgent.h | 41 +++ + qpid/cpp/src/tests/cluster_tests.py | 7 +- + qpid/cpp/xml/cluster.xml | 10 - + 11 files changed, 577 insertions(+), 52 deletions(-) + create mode 100644 qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp + create mode 100644 qpid/cpp/src/qpid/cluster/UpdateDataExchange.h + +diff --git a/qpid/cpp/src/cluster.mk b/qpid/cpp/src/cluster.mk +index 2a648e9..a791b2d 100644 +--- a/qpid/cpp/src/cluster.mk ++++ b/qpid/cpp/src/cluster.mk +@@ -93,7 +93,9 @@ cluster_la_SOURCES = \ + qpid/cluster/SecureConnectionFactory.h \ + qpid/cluster/SecureConnectionFactory.cpp \ + qpid/cluster/StoreStatus.h \ +- qpid/cluster/StoreStatus.cpp ++ qpid/cluster/StoreStatus.cpp \ ++ qpid/cluster/UpdateDataExchange.h \ ++ qpid/cluster/UpdateDataExchange.cpp + + cluster_la_LIBADD= -lcpg $(libcman) libqpidbroker.la libqpidclient.la + cluster_la_CXXFLAGS = $(AM_CXXFLAGS) -fno-strict-aliasing +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index dea2754..5ba038a 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -127,6 +127,7 @@ + #include "qpid/cluster/UpdateClient.h" + #include "qpid/cluster/RetractClient.h" + #include "qpid/cluster/FailoverExchange.h" ++#include "qpid/cluster/UpdateDataExchange.h" + #include "qpid/cluster/UpdateExchange.h" + #include "qpid/cluster/ClusterTimer.h" + +@@ -197,7 +198,7 @@ namespace _qmf = ::qmf::org::apache::qpid::cluster; + * Currently use SVN revision to avoid clashes with versions from + * different branches. + */ +-const uint32_t Cluster::CLUSTER_VERSION = 964709; ++const uint32_t Cluster::CLUSTER_VERSION = 1039478; + + struct ClusterDispatcher : public framing::AMQP_AllOperations::ClusterHandler { + qpid::cluster::Cluster& cluster; +@@ -289,6 +290,10 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + // without modifying delivery-properties.exchange. + broker.getExchanges().registerExchange( + boost::shared_ptr(new UpdateExchange(this))); ++ // Update-data exchange is used for passing data that may be too large ++ // for single control frame. ++ broker.getExchanges().registerExchange( ++ boost::shared_ptr(new UpdateDataExchange(this, broker.getManagementAgent()))); + + // Load my store status before we go into initialization + if (! broker::NullMessageStore::isNullStore(&broker.getStore())) { +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 7b51d24..719dcb6 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -18,6 +18,7 @@ + * under the License. + * + */ ++#include "qpid/amqp_0_10/Codecs.h" + #include "Connection.h" + #include "UpdateClient.h" + #include "Cluster.h" +@@ -42,6 +43,7 @@ + #include "qpid/framing/ConnectionCloseOkBody.h" + #include "qpid/log/Statement.h" + #include "qpid/sys/ClusterSafe.h" ++#include "qpid/types/Variant.h" + #include "qpid/management/ManagementAgent.h" + #include + +@@ -51,7 +53,8 @@ namespace cluster { + + using namespace framing; + using namespace framing::cluster; +- ++using amqp_0_10::ListCodec; ++using types::Variant; + + qpid::sys::AtomicValue Connection::catchUpId(0x5000000000000000LL); + +@@ -622,15 +625,6 @@ void Connection::addQueueListener(const std::string& q, uint32_t listener) { + findQueue(q)->getListeners().addListener(updateIn.consumerNumbering[listener]); + } + +-void Connection::managementSchema(const std::string& data) { +- management::ManagementAgent* agent = cluster.getBroker().getManagementAgent(); +- if (!agent) +- throw Exception(QPID_MSG("Management schema update but management not enabled.")); +- framing::Buffer buf(const_cast(data.data()), data.size()); +- agent->importSchemas(buf); +- QPID_LOG(debug, cluster << " updated management schemas"); +-} +- + // + // This is the handler for incoming managementsetup messages. + // +@@ -644,15 +638,5 @@ void Connection::managementSetupState(uint64_t objectNum, uint16_t bootSequence) + agent->setNextObjectId(objectNum); + agent->setBootSequence(bootSequence); + } +- +-void Connection::managementAgents(const std::string& data) { +- management::ManagementAgent* agent = cluster.getBroker().getManagementAgent(); +- if (!agent) +- throw Exception(QPID_MSG("Management agent update but management not enabled.")); +- framing::Buffer buf(const_cast(data.data()), data.size()); +- agent->importAgents(buf); +- QPID_LOG(debug, cluster << " updated management agents"); +-} +- + }} // Namespace qpid::cluster + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index 24b8c85..95d846e 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -177,8 +177,6 @@ class Connection : + OutputInterceptor& getOutput() { return output; } + + void addQueueListener(const std::string& queue, uint32_t listener); +- void managementSchema(const std::string& data); +- void managementAgents(const std::string& data); + void managementSetupState(uint64_t objectNum, uint16_t bootSequence); + void setSecureConnection ( broker::SecureConnection * sc ); + +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 4628313..6727777 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -18,12 +18,14 @@ + * under the License. + * + */ ++#include "qpid/amqp_0_10/Codecs.h" + #include "qpid/cluster/UpdateClient.h" + #include "qpid/cluster/Cluster.h" + #include "qpid/cluster/ClusterMap.h" + #include "qpid/cluster/Connection.h" + #include "qpid/cluster/Decoder.h" + #include "qpid/cluster/ExpiryPolicy.h" ++#include "qpid/cluster/UpdateDataExchange.h" + #include "qpid/client/SessionBase_0_10Access.h" + #include "qpid/client/ConnectionAccess.h" + #include "qpid/client/SessionImpl.h" +@@ -52,6 +54,7 @@ + #include "qpid/framing/ProtocolVersion.h" + #include "qpid/framing/TypeCode.h" + #include "qpid/log/Statement.h" ++#include "qpid/types/Variant.h" + #include "qpid/Url.h" + #include "qmf/org/apache/qpid/broker/ManagementSetupState.h" + #include +@@ -62,12 +65,14 @@ + namespace qpid { + namespace cluster { + ++using amqp_0_10::ListCodec; + using broker::Broker; + using broker::Exchange; + using broker::Queue; + using broker::QueueBinding; + using broker::Message; + using broker::SemanticState; ++using types::Variant; + + using namespace framing; + namespace arg=client::arg; +@@ -153,7 +158,6 @@ void UpdateClient::update() { + std::for_each(connections.begin(), connections.end(), + boost::bind(&UpdateClient::updateConnection, this, _1)); + session.queueDelete(arg::queue=UPDATE); +- session.close(); + + // Update queue listeners: must come after sessions so consumerNumbering is populated + b.getQueues().eachQueue(boost::bind(&UpdateClient::updateQueueListeners, this, _1)); +@@ -162,15 +166,17 @@ void UpdateClient::update() { + + updateManagementAgent(); + ++ session.close(); ++ + ClusterConnectionMembershipBody membership; + map.toMethodBody(membership); + AMQFrame frame(membership); + client::ConnectionAccess::getImpl(connection)->expand(frame.encodedSize(), false); + client::ConnectionAccess::getImpl(connection)->handle(frame); + +- // FIXME aconway 2010-06-16: Connection will be closed from the other end. +- // connection.close(); +- ++ // NOTE: connection will be closed from the other end, don't close ++ // it here as that causes a race. ++ + // FIXME aconway 2010-03-15: This sleep avoids the race condition + // described in // https://bugzilla.redhat.com/show_bug.cgi?id=568831. + // It allows the connection to fully close before destroying the +@@ -221,12 +227,34 @@ void UpdateClient::updateManagementAgent() + { + management::ManagementAgent* agent = updaterBroker.getManagementAgent(); + if (!agent) return; +- // Send management schemas and agents. + string data; ++ ++ QPID_LOG(debug, updaterId << " updating management schemas. ") + agent->exportSchemas(data); +- ClusterConnectionProxy(session).managementSchema(data); ++ session.messageTransfer( ++ arg::content=client::Message(data, UpdateDataExchange::MANAGEMENT_SCHEMAS_KEY), ++ arg::destination=UpdateDataExchange::EXCHANGE_NAME); ++ ++ QPID_LOG(debug, updaterId << " updating management agents. ") + agent->exportAgents(data); +- ClusterConnectionProxy(session).managementAgents(data); ++ session.messageTransfer( ++ arg::content=client::Message(data, UpdateDataExchange::MANAGEMENT_AGENTS_KEY), ++ arg::destination=UpdateDataExchange::EXCHANGE_NAME); ++ ++ QPID_LOG(debug, updaterId << " updating management deleted objects. ") ++ typedef management::ManagementAgent::DeletedObjectList DeletedObjectList; ++ DeletedObjectList deleted; ++ agent->exportDeletedObjects(deleted); ++ Variant::List list; ++ for (DeletedObjectList::iterator i = deleted.begin(); i != deleted.end(); ++i) { ++ string encoded; ++ (*i)->encode(encoded); ++ list.push_back(encoded); ++ } ++ ListCodec::encode(list, data); ++ session.messageTransfer( ++ arg::content=client::Message(data, UpdateDataExchange::MANAGEMENT_DELETED_OBJECTS_KEY), ++ arg::destination=UpdateDataExchange::EXCHANGE_NAME); + } + + void UpdateClient::updateExchange(const boost::shared_ptr& ex) { +diff --git a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp +new file mode 100644 +index 0000000..90a53f5 +--- /dev/null ++++ b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp +@@ -0,0 +1,96 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++#include "UpdateDataExchange.h" ++#include "qpid/amqp_0_10/Codecs.h" ++#include "qpid/broker/Deliverable.h" ++#include "qpid/broker/Message.h" ++#include "qpid/log/Statement.h" ++#include "qpid/management/ManagementAgent.h" ++#include "qpid/types/Variant.h" ++ ++namespace qpid { ++namespace cluster { ++ ++const std::string UpdateDataExchange::EXCHANGE_NAME("qpid.cluster-update-data"); ++const std::string UpdateDataExchange::EXCHANGE_TYPE("qpid.cluster-update-data"); ++const std::string UpdateDataExchange::MANAGEMENT_AGENTS_KEY("management-agents"); ++const std::string UpdateDataExchange::MANAGEMENT_SCHEMAS_KEY("management-schemas"); ++const std::string UpdateDataExchange::MANAGEMENT_DELETED_OBJECTS_KEY("management-deleted-objects"); ++ ++UpdateDataExchange::UpdateDataExchange(management::Manageable* parent, ++ management::ManagementAgent* agent_) : ++ Exchange(EXCHANGE_NAME, parent), ++ agent(agent_) ++{} ++ ++void UpdateDataExchange::route(broker::Deliverable& msg, const std::string& routingKey, ++ const qpid::framing::FieldTable* ) ++{ ++ std::string data = msg.getMessage().getFrames().getContent(); ++ if (routingKey == MANAGEMENT_AGENTS_KEY) ++ managementAgents(data); ++ else if (routingKey == MANAGEMENT_SCHEMAS_KEY) ++ managementSchemas(data); ++ else if (routingKey == MANAGEMENT_DELETED_OBJECTS_KEY) ++ managementDeletedObjects(data); ++ else ++ throw Exception( ++ QPID_MSG("Cluster update-data exchange received unknown routing-key: " ++ << routingKey)); ++} ++ ++void UpdateDataExchange::managementAgents(const std::string& data) { ++ if (!agent) ++ throw Exception( ++ QPID_MSG("Received management agent update but management is disabled.")); ++ framing::Buffer buf(const_cast(data.data()), data.size()); ++ agent->importAgents(buf); ++ QPID_LOG(debug, " Updated management agents."); ++} ++ ++void UpdateDataExchange::managementSchemas(const std::string& data) { ++ if (!agent) ++ throw Exception( ++ QPID_MSG("Received management schema update but management is disabled.")); ++ framing::Buffer buf(const_cast(data.data()), data.size()); ++ agent->importSchemas(buf); ++ QPID_LOG(debug, " Updated management schemas"); ++} ++ ++void UpdateDataExchange::managementDeletedObjects(const std::string& data) { ++ using amqp_0_10::ListCodec; ++ using types::Variant; ++ if (!agent) ++ throw Exception( ++ QPID_MSG("Management agent update but management not enabled.")); ++ Variant::List encoded; ++ ListCodec::decode(data, encoded); ++ management::ManagementAgent::DeletedObjectList objects; ++ for (Variant::List::iterator i = encoded.begin(); i != encoded.end(); ++i) { ++ objects.push_back(management::ManagementAgent::DeletedObject::shared_ptr( ++ new management::ManagementAgent::DeletedObject(*i))); ++ } ++ agent->importDeletedObjects(objects); ++ QPID_LOG(debug, " Updated management deleted objects."); ++} ++ ++ ++}} // namespace qpid::cluster +diff --git a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h +new file mode 100644 +index 0000000..1c4022a +--- /dev/null ++++ b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h +@@ -0,0 +1,81 @@ ++#ifndef QPID_CLUSTER_UPDATEDATAEXCHANGE_H ++#define QPID_CLUSTER_UPDATEDATAEXCHANGE_H ++ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include "qpid/broker/Exchange.h" ++ ++namespace qpid { ++ ++namespace management { ++class ManagementAgent; ++} ++ ++namespace cluster { ++ ++/** ++ * An exchange used to send data that is to large for a control ++ * during update. The routing key indicates the type of data. ++ */ ++class UpdateDataExchange : public broker::Exchange ++{ ++ public: ++ static const std::string EXCHANGE_NAME; ++ static const std::string EXCHANGE_TYPE; ++ static const std::string MANAGEMENT_AGENTS_KEY; ++ static const std::string MANAGEMENT_SCHEMAS_KEY; ++ static const std::string MANAGEMENT_DELETED_OBJECTS_KEY; ++ ++ UpdateDataExchange(management::Manageable* parent, management::ManagementAgent*); ++ ++ void route(broker::Deliverable& msg, const std::string& routingKey, ++ const framing::FieldTable* args); ++ ++ // Not implemented ++ std::string getType() const { return EXCHANGE_TYPE; } ++ ++ bool bind(boost::shared_ptr, ++ const std::string&, ++ const qpid::framing::FieldTable*) ++ { return false; } ++ ++ bool unbind(boost::shared_ptr, ++ const std::string&, ++ const qpid::framing::FieldTable*) ++ { return false; } ++ ++ bool isBound(boost::shared_ptr, ++ const std::string*, ++ const qpid::framing::FieldTable*) ++ { return false; } ++ ++ private: ++ management::ManagementAgent* agent; ++ ++ void managementAgents(const std::string&); ++ void managementSchemas(const std::string&); ++ void managementDeletedObjects(const std::string&); ++}; ++ ++}} // namespace qpid::cluster ++ ++#endif /*!QPID_CLUSTER_UPDATEDATAEXCHANGE_H*/ +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index ac09aae..1dec376 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -638,6 +638,11 @@ void ManagementAgent::periodicProcessing (void) + iter != managementObjects.end(); + iter++) { + ManagementObject* object = iter->second; ++ ++ if (object->isDeleted()) { ++ deleteList.push_back(pair(iter->first, object)); ++ } ++ + object->setFlags(0); + if (clientWasAdded) { + object->setForcePublish(true); +@@ -646,6 +651,52 @@ void ManagementAgent::periodicProcessing (void) + + clientWasAdded = false; + ++ // Remove Deleted objects, and save for later publishing... ++ // ++ for (list >::reverse_iterator iter = deleteList.rbegin(); ++ iter != deleteList.rend(); ++ iter++) { ++ ++ ManagementObject* delObj = iter->second; ++ DeletedObject::shared_ptr dptr(new DeletedObject()); ++ std::string classkey(delObj->getPackageName() + std::string(":") + delObj->getClassName()); ++ bool send_stats = (delObj->hasInst() && (delObj->getInstChanged() || delObj->getForcePublish())); ++ ++ dptr->packageName = delObj->getPackageName(); ++ dptr->className = delObj->getClassName(); ++ delObj->getObjectId().encode(dptr->objectId); ++ ++ if (qmf1Support) { ++ delObj->writeProperties(dptr->encodedV1Config); ++ if (send_stats) { ++ delObj->writeStatistics(dptr->encodedV1Inst); ++ } ++ } ++ ++ if (qmf2Support) { ++ Variant::Map map_; ++ Variant::Map values; ++ Variant::Map oid; ++ ++ delObj->getObjectId().mapEncode(oid); ++ map_["_object_id"] = oid; ++ map_["_schema_id"] = mapEncodeSchemaId(delObj->getPackageName(), ++ delObj->getClassName(), ++ "_data", ++ delObj->getMd5Sum()); ++ delObj->writeTimestamps(map_); ++ delObj->mapEncodeValues(values, true, send_stats); ++ map_["_values"] = values; ++ ++ dptr->encodedV2 = map_; ++ } ++ ++ pendingDeletedObjs[classkey].push_back(dptr); ++ ++ delete iter->second; ++ managementObjects.erase(iter->first); ++ } ++ + // + // Process the entire object map. Remember: we drop the userLock each time we call + // sendBuffer(). This allows the managementObjects map to be altered during the +@@ -694,7 +745,13 @@ void ManagementAgent::periodicProcessing (void) + if (object->getConfigChanged() || object->getInstChanged()) + object->setUpdateTime(); + +- send_props = (object->getConfigChanged() || object->getForcePublish() || object->isDeleted()); ++ // skip any objects marked deleted since our first pass. Deal with them ++ // on the next periodic cycle... ++ if (object->isDeleted()) { ++ continue; ++ } ++ ++ send_props = (object->getConfigChanged() || object->getForcePublish()); + send_stats = (object->hasInst() && (object->getInstChanged() || object->getForcePublish())); + + if (send_props && qmf1Support) { +@@ -732,8 +789,6 @@ void ManagementAgent::periodicProcessing (void) + if (send_props) pcount++; + if (send_stats) scount++; + +- if (object->isDeleted()) +- deleteList.push_back(pair(iter->first, object)); + object->setForcePublish(false); + + if ((qmf1Support && (msgBuffer.available() < HEADROOM)) || +@@ -779,12 +834,114 @@ void ManagementAgent::periodicProcessing (void) + } + } // end processing updates for all objects + +- // Delete flagged objects +- for (list >::reverse_iterator iter = deleteList.rbegin(); +- iter != deleteList.rend(); +- iter++) { +- delete iter->second; +- managementObjects.erase(iter->first); ++ ++ // now send the pending deletes. Make a temporary copy of the pending deletes so dropping the ++ // lock when the buffer is sent is safe. ++ // ++ if (!pendingDeletedObjs.empty()) { ++ PendingDeletedObjsMap tmp(pendingDeletedObjs); ++ pendingDeletedObjs.clear(); ++ ++ for (PendingDeletedObjsMap::iterator mIter = tmp.begin(); mIter != tmp.end(); mIter++) { ++ std::string packageName; ++ std::string className; ++ Buffer msgBuffer(msgChars, BUFSIZE); ++ uint32_t v1Objs = 0; ++ uint32_t v2Objs = 0; ++ Variant::List list_; ++ ++ size_t pos = mIter->first.find(":"); ++ packageName = mIter->first.substr(0, pos); ++ className = mIter->first.substr(pos+1); ++ ++ for (DeletedObjectList::iterator lIter = mIter->second.begin(); ++ lIter != mIter->second.end(); lIter++) { ++ ++ if (!(*lIter)->encodedV1Config.empty()) { ++ encodeHeader(msgBuffer, 'c'); ++ msgBuffer.putRawData((*lIter)->encodedV1Config); ++ v1Objs++; ++ } ++ if (!(*lIter)->encodedV1Inst.empty()) { ++ encodeHeader(msgBuffer, 'i'); ++ msgBuffer.putRawData((*lIter)->encodedV1Inst); ++ v1Objs++; ++ } ++ if (v1Objs && msgBuffer.available() < HEADROOM) { ++ v1Objs = 0; ++ contentSize = BUFSIZE - msgBuffer.available(); ++ stringstream key; ++ key << "console.obj.1.0." << packageName << "." << className; ++ msgBuffer.reset(); ++ sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(trace, "SEND V1 Multicast ContentInd V1 (delete) to=" << key.str()); ++ } ++ ++ if (!(*lIter)->encodedV2.empty()) { ++ list_.push_back((*lIter)->encodedV2); ++ if (++v2Objs >= maxV2ReplyObjs) { ++ v2Objs = 0; ++ ++ string content; ++ ListCodec::encode(list_, content); ++ list_.clear(); ++ if (content.length()) { ++ stringstream key; ++ Variant::Map headers; ++ key << "agent.ind.data." << keyifyNameStr(packageName) ++ << "." << keyifyNameStr(className) ++ << "." << vendorNameKey ++ << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ key << "." << instanceNameKey; ++ ++ headers["method"] = "indication"; ++ headers["qmf.opcode"] = "_data_indication"; ++ headers["qmf.content"] = "_data"; ++ headers["qmf.agent"] = name_address; ++ ++ sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(trace, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); ++ } ++ } ++ } ++ } // end current list ++ ++ // send any remaining objects... ++ ++ if (v1Objs) { ++ contentSize = BUFSIZE - msgBuffer.available(); ++ stringstream key; ++ key << "console.obj.1.0." << packageName << "." << className; ++ msgBuffer.reset(); ++ sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(trace, "SEND V1 Multicast ContentInd V1 (delete) to=" << key.str()); ++ } ++ ++ if (!list_.empty()) { ++ string content; ++ ListCodec::encode(list_, content); ++ list_.clear(); ++ if (content.length()) { ++ stringstream key; ++ Variant::Map headers; ++ key << "agent.ind.data." << keyifyNameStr(packageName) ++ << "." << keyifyNameStr(className) ++ << "." << vendorNameKey ++ << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ key << "." << instanceNameKey; ++ ++ headers["method"] = "indication"; ++ headers["qmf.opcode"] = "_data_indication"; ++ headers["qmf.content"] = "_data"; ++ headers["qmf.agent"] = name_address; ++ ++ sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(trace, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); ++ } ++ } ++ } // end map + } + + if (!deleteList.empty()) { +@@ -2679,3 +2836,143 @@ Variant ManagementAgent::toVariant(const boost::shared_ptr& in) + return out; + } + ++ ++// Build up a list of the current set of deleted objects that are pending their ++// next (last) publish-ment. ++void ManagementAgent::exportDeletedObjects(DeletedObjectList& outList) ++{ ++ sys::Mutex::ScopedLock lock (userLock); ++ list > deleteList; ++ ++ moveNewObjectsLH(); ++ ++ for (ManagementObjectMap::iterator iter = managementObjects.begin(); ++ iter != managementObjects.end(); ++ iter++) { ++ ManagementObject* object = iter->second; ++ ++ if (object->isDeleted()) { ++ deleteList.push_back(pair(iter->first, object)); ++ } ++ } ++ ++ // Remove Deleted objects, and save for later publishing... ++ // ++ for (list >::reverse_iterator iter = deleteList.rbegin(); ++ iter != deleteList.rend(); ++ iter++) { ++ ++ ManagementObject* delObj = iter->second; ++ DeletedObject::shared_ptr dptr(new DeletedObject()); ++ std::string classkey(delObj->getPackageName() + std::string(":") + delObj->getClassName()); ++ bool send_stats = (delObj->hasInst() && (delObj->getInstChanged() || delObj->getForcePublish())); ++ ++ dptr->packageName = delObj->getPackageName(); ++ dptr->className = delObj->getClassName(); ++ delObj->getObjectId().encode(dptr->objectId); ++ ++ if (qmf1Support) { ++ delObj->writeProperties(dptr->encodedV1Config); ++ if (send_stats) { ++ delObj->writeStatistics(dptr->encodedV1Inst); ++ } ++ } ++ ++ if (qmf2Support) { ++ Variant::Map map_; ++ Variant::Map values; ++ Variant::Map oid; ++ ++ delObj->getObjectId().mapEncode(oid); ++ map_["_object_id"] = oid; ++ map_["_schema_id"] = mapEncodeSchemaId(delObj->getPackageName(), ++ delObj->getClassName(), ++ "_data", ++ delObj->getMd5Sum()); ++ delObj->writeTimestamps(map_); ++ delObj->mapEncodeValues(values, true, send_stats); ++ map_["_values"] = values; ++ ++ dptr->encodedV2 = map_; ++ } ++ ++ pendingDeletedObjs[classkey].push_back(dptr); ++ ++ delete iter->second; ++ managementObjects.erase(iter->first); ++ } ++ ++ // now copy the pending deletes into the outList ++ ++ for (PendingDeletedObjsMap::iterator mIter = pendingDeletedObjs.begin(); ++ mIter != pendingDeletedObjs.end(); mIter++) { ++ for (DeletedObjectList::iterator lIter = mIter->second.begin(); ++ lIter != mIter->second.end(); lIter++) { ++ outList.push_back(*lIter); ++ } ++ } ++} ++ ++ ++// Merge this list's deleted objects to the management Agent's list of deleted ++// objects waiting for next (last) publish-ment. ++void ManagementAgent::importDeletedObjects(const DeletedObjectList& inList) ++{ ++ sys::Mutex::ScopedLock lock (userLock); ++ ++ for (DeletedObjectList::const_iterator lIter = inList.begin(); lIter != inList.end(); lIter++) { ++ ++ std::string classkey((*lIter)->packageName + std::string(":") + (*lIter)->className); ++ DeletedObjectList& dList = pendingDeletedObjs[classkey]; ++ ++ // not sure if this is necessary - merge by objectid.... ++ bool found = false; ++ for (DeletedObjectList::iterator dIter = dList.begin(); dIter != dList.end(); dIter++) { ++ if ((*dIter)->objectId == (*lIter)->objectId) { ++ found = true; ++ break; ++ } ++ } ++ if (!found) { ++ dList.push_back(*lIter); ++ } ++ } ++} ++ ++ ++// construct a DeletedObject from an encoded representation. Used by ++// clustering to move deleted objects between clustered brokers. See ++// DeletedObject::encode() for the reverse. ++ManagementAgent::DeletedObject::DeletedObject(const std::string& encoded) ++{ ++ qpid::types::Variant::Map map_; ++ MapCodec::decode(encoded, map_); ++ ++ packageName = map_["_package_name"].getString(); ++ className = map_["_class_name"].getString(); ++ objectId = map_["_object_id"].getString(); ++ ++ encodedV1Config = map_["_v1_config"].getString(); ++ encodedV1Inst = map_["_v1_inst"].getString(); ++ encodedV2 = map_["_v2_data"].asMap(); ++} ++ ++ ++// encode a DeletedObject to a string buffer. Used by ++// clustering to move deleted objects between clustered brokers. See ++// DeletedObject(const std::string&) for the reverse. ++void ManagementAgent::DeletedObject::encode(std::string& toBuffer) ++{ ++ qpid::types::Variant::Map map_; ++ ++ ++ map_["_package_name"] = packageName; ++ map_["_class_name"] = className; ++ map_["_object_id"] = objectId; ++ ++ map_["_v1_config"] = encodedV1Config; ++ map_["_v1_inst"] = encodedV1Inst; ++ map_["_v2_data"] = encodedV2; ++ ++ MapCodec::encode(map_, toBuffer); ++} +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index f4d3c8c..9829094 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -148,6 +148,40 @@ public: + static boost::shared_ptr toFieldValue(const types::Variant& in); + static types::Variant toVariant(const boost::shared_ptr& val); + ++ // For Clustering: management objects that have been marked as ++ // "deleted", but are waiting for their last published object ++ // update are not visible to the cluster replication code. These ++ // interfaces allow clustering to gather up all the management ++ // objects that are deleted in order to allow all clustered ++ // brokers to publish the same set of deleted objects. ++ ++ class DeletedObject { ++ public: ++ typedef boost::shared_ptr shared_ptr; ++ DeletedObject() {}; ++ DeletedObject( const std::string &encoded ); ++ ~DeletedObject() {}; ++ void encode( std::string& toBuffer ); ++ ++ private: ++ friend class ManagementAgent; ++ ++ std::string packageName; ++ std::string className; ++ std::string objectId; ++ ++ std::string encodedV1Config; // qmfv1 properties ++ std::string encodedV1Inst; // qmfv1 statistics ++ qpid::types::Variant::Map encodedV2; ++ }; ++ ++ typedef std::vector DeletedObjectList; ++ ++ /** returns a snapshot of all currently deleted management objects. */ ++ void exportDeletedObjects( DeletedObjectList& outList ); ++ ++ /** Import a list of deleted objects to send on next publish interval. */ ++ void importDeletedObjects( const DeletedObjectList& inList ); + + private: + struct Periodic : public qpid::sys::TimerTask +@@ -293,6 +327,13 @@ private: + // message. + uint32_t maxV2ReplyObjs; + ++ // list of objects that have been deleted, but have yet to be published ++ // one final time. ++ // Indexed by a string composed of the object's package and class name. ++ // Protected by userLock. ++ typedef std::map PendingDeletedObjsMap; ++ PendingDeletedObjsMap pendingDeletedObjs; ++ + # define MA_BUFFER_SIZE 65536 + char inputBuffer[MA_BUFFER_SIZE]; + char outputBuffer[MA_BUFFER_SIZE]; +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index 52eca81..ea3c445 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -220,7 +220,7 @@ class LongTests(BrokerTest): + receiver.stop() + for i in range(i, len(cluster)): cluster[i].kill() + +- def test_management(self): ++ def test_management(self, args=[]): + """Stress test: Run management clients and other clients concurrently.""" + + # TODO aconway 2010-03-03: move to brokertest framework +@@ -283,7 +283,7 @@ class LongTests(BrokerTest): + StoppableThread.stop(self) + + # def test_management +- args = ["--mgmt-pub-interval", 1] # Publish management information every second. ++ args += ["--mgmt-pub-interval", 1] # Publish management information every second. + # Use store if present. + if BrokerTest.store_lib: args +=["--load-module", BrokerTest.store_lib] + cluster = self.cluster(3, args) +@@ -334,6 +334,9 @@ class LongTests(BrokerTest): + for c in chain(mclients, *clients): + c.stop() + ++ def test_management_qmf2(self): ++ self.test_management(args=["--mgmt-qmf2=yes"]) ++ + class StoreTests(BrokerTest): + """ + Cluster tests that can only be run if there is a store available. +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index 9cbad82..dfe9554 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -263,20 +263,10 @@ + + + +- +- +- +- +- + + + + + +- +- +- +- +- + + +-- +1.5.5.6 + +From 7bd36f8153fa2ec59c206074e16b2bf38eca2e42 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 1 Dec 2010 21:32:52 +0000 +Subject: [PATCH] Bug 655078 - Add missing call to Message::setTimestamp in ManagementAgent::sendBufferLH. + +Without this, messages generated here will not be expired consistently +in a cluster which may cause a broker to become inconsistent and exit +with an invalid-argument error. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1041180 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 1dec376..a7405ae 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -580,9 +580,10 @@ void ManagementAgent::sendBufferLH(const string& data, + DeliveryProperties* dp = + msg->getFrames().getHeaders()->get(true); + dp->setRoutingKey(routingKey); +- if (ttl_msec) ++ if (ttl_msec) { + dp->setTtl(ttl_msec); +- ++ msg->setTimestamp(broker->getExpiryPolicy()); ++ } + msg->getFrames().append(content); + + { +-- +1.5.5.6 + +From 855af9088f49e3dcb97f4e08ccda9a8c25440bf5 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 1 Dec 2010 21:32:43 +0000 +Subject: [PATCH] Bug 655078 - Enable cluster-safe assertions on transition to CATCHUP + +Delaying until READY was causing multiple clientConnect management +events to be raised, because broker::Connection::setUserId relies on +sys::isCluster to avoid producing duplicate events with +cluster::Connection::announce + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1041179 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 5ba038a..d500800 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -911,6 +911,7 @@ void Cluster::updateInRetracted() { + checkUpdateIn(l); + } + ++// Called in update thread or deliver thread. + void Cluster::checkUpdateIn(Lock& l) { + if (state != UPDATEE) return; // Wait till we reach the stall point. + if (!updateClosed) return; // Wait till update connection closes. +@@ -924,10 +925,11 @@ void Cluster::checkUpdateIn(Lock& l) { + // thread. It will be updated on delivery of the "ready" we just mcast. + broker.setClusterUpdatee(false); + if (mAgent) mAgent->suppress(false); // Enable management output. +- discarding = false; // ok to set, we're stalled for update. ++ discarding = false; // OK to set, we're stalled for update. + QPID_LOG(notice, *this << " update complete, starting catch-up."); +- QPID_LOG(debug, debugSnapshot()); ++ QPID_LOG(debug, debugSnapshot()); // OK to call because we're stalled. + if (mAgent) mAgent->clusterUpdate(); ++ enableClusterSafe(); // Enable cluster-safe assertions + deliverEventQueue.start(); + } + else if (updateRetracted) { // Update was retracted, request another update +-- +1.5.5.6 + +From f2edffb3d88036f07674d4f5c36c1b4ee4a1bad2 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Thu, 2 Dec 2010 21:03:42 +0000 +Subject: [PATCH] Bug 655078 - bugfix in deleted obj import/export api + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1041582 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 10 ++++++++-- + 1 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index a7405ae..c6c2ef8 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -665,7 +665,9 @@ void ManagementAgent::periodicProcessing (void) + + dptr->packageName = delObj->getPackageName(); + dptr->className = delObj->getClassName(); +- delObj->getObjectId().encode(dptr->objectId); ++ stringstream oid; ++ oid << delObj->getObjectId(); ++ dptr->objectId = oid.str(); + + if (qmf1Support) { + delObj->writeProperties(dptr->encodedV1Config); +@@ -2842,6 +2844,8 @@ Variant ManagementAgent::toVariant(const boost::shared_ptr& in) + // next (last) publish-ment. + void ManagementAgent::exportDeletedObjects(DeletedObjectList& outList) + { ++ outList.clear(); ++ + sys::Mutex::ScopedLock lock (userLock); + list > deleteList; + +@@ -2870,7 +2874,9 @@ void ManagementAgent::exportDeletedObjects(DeletedObjectList& outList) + + dptr->packageName = delObj->getPackageName(); + dptr->className = delObj->getClassName(); +- delObj->getObjectId().encode(dptr->objectId); ++ stringstream oid; ++ oid << delObj->getObjectId(); ++ dptr->objectId = oid.str(); + + if (qmf1Support) { + delObj->writeProperties(dptr->encodedV1Config); +-- +1.5.5.6 + +From ccac3492485667ef943ef8e7b68b006c174a6122 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Mon, 15 Nov 2010 17:30:18 +0000 +Subject: [PATCH] Bug 655078 - testReconnect: increase number of bytes read/written before failure. + +This is a test fix, not part of the bug fix but required to get clean make check-long. + +Increased to 2048. The original value of 1024 was causing the test to +fail with a timeout when run against a cluster with a long failover +URL longer than about 400 bytes. The number of test messages was also +doubled to give the same number of simulated failures in the test. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1035361 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/tests/messaging/endpoints.py | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py +index 6072311..c303ca6 100644 +--- a/qpid/python/qpid/tests/messaging/endpoints.py ++++ b/qpid/python/qpid/tests/messaging/endpoints.py +@@ -126,14 +126,14 @@ class SetupTests(Base): + return self.real.writing(writing) + + def send(self, bytes): +- if self.sent_count > 1024: ++ if self.sent_count > 2048: + raise socket.error("fake error") + n = self.real.send(bytes) + self.sent_count += n + return n + + def recv(self, n): +- if self.recv_count > 1024: ++ if self.recv_count > 2048: + return "" + bytes = self.real.recv(n) + self.recv_count += len(bytes) +@@ -155,7 +155,7 @@ class SetupTests(Base): + snd = ssn.sender("test-reconnect-queue; {create: always, delete: always}") + rcv = ssn.receiver(snd.target) + +- msgs = [self.message("testReconnect", i) for i in range(10)] ++ msgs = [self.message("testReconnect", i) for i in range(20)] + for m in msgs: + snd.send(m) + +-- +1.5.5.6 + +From 3c5e7d1b97204fd3ac914474ed2e521b12d55fbb Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 7 Dec 2010 15:09:00 -0500 +Subject: [PATCH] Bug 655078 - Defer update of managaement agent to end of update process. + +Move updating of the management agent to the very end of the update +process, after all objects used by the update process itself have been +deleted. Before the fix deletions from the update process itself +(deleting the qpid.cluster-update queue and its binding to the default +exchange) were sporadically appearing as extra delete messages on the +updatees management agent and causing inconsistency. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1043621 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 14 ++++-- + qpid/cpp/src/qpid/cluster/Cluster.h | 2 + + qpid/cpp/src/qpid/cluster/Connection.cpp | 4 +- + qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp | 49 +++++++--------------- + qpid/cpp/src/qpid/cluster/UpdateDataExchange.h | 11 +++-- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 32 +++++++-------- + 6 files changed, 51 insertions(+), 61 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index d500800..152c3a1 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -264,6 +264,8 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + boost::bind(&Cluster::leave, this), + "Error delivering frames", + poller), ++ failoverExchange(new FailoverExchange(this)), ++ updateDataExchange(new UpdateDataExchange(this)), + quorum(boost::bind(&Cluster::leave, this)), + decoder(boost::bind(&Cluster::deliverFrame, this, _1)), + discarding(true), +@@ -283,17 +285,17 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + broker.setClusterTimer(std::auto_ptr(timer)); + + // Failover exchange provides membership updates to clients. +- failoverExchange.reset(new FailoverExchange(this)); + broker.getExchanges().registerExchange(failoverExchange); + + // Update exchange is used during updates to replicate messages + // without modifying delivery-properties.exchange. + broker.getExchanges().registerExchange( + boost::shared_ptr(new UpdateExchange(this))); ++ + // Update-data exchange is used for passing data that may be too large + // for single control frame. + broker.getExchanges().registerExchange( +- boost::shared_ptr(new UpdateDataExchange(this, broker.getManagementAgent()))); ++ boost::shared_ptr(updateDataExchange)); + + // Load my store status before we go into initialization + if (! broker::NullMessageStore::isNullStore(&broker.getStore())) { +@@ -924,11 +926,15 @@ void Cluster::checkUpdateIn(Lock& l) { + // NB: don't updateMgmtMembership() here as we are not in the deliver + // thread. It will be updated on delivery of the "ready" we just mcast. + broker.setClusterUpdatee(false); +- if (mAgent) mAgent->suppress(false); // Enable management output. ++ if (mAgent) { ++ // Update management agent now, after all update activity is complete. ++ updateDataExchange->updateManagementAgent(mAgent); ++ mAgent->suppress(false); // Enable management output. ++ mAgent->clusterUpdate(); ++ } + discarding = false; // OK to set, we're stalled for update. + QPID_LOG(notice, *this << " update complete, starting catch-up."); + QPID_LOG(debug, debugSnapshot()); // OK to call because we're stalled. +- if (mAgent) mAgent->clusterUpdate(); + enableClusterSafe(); // Enable cluster-safe assertions + deliverEventQueue.start(); + } +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.h b/qpid/cpp/src/qpid/cluster/Cluster.h +index 1f8fd44..605081c 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.h ++++ b/qpid/cpp/src/qpid/cluster/Cluster.h +@@ -68,6 +68,7 @@ namespace cluster { + class Connection; + class EventFrame; + class ClusterTimer; ++class UpdateDataExchange; + + /** + * Connection to the cluster +@@ -253,6 +254,7 @@ class Cluster : private Cpg::Handler, public management::Manageable { + PollableEventQueue deliverEventQueue; + PollableFrameQueue deliverFrameQueue; + boost::shared_ptr failoverExchange; ++ boost::shared_ptr updateDataExchange; + Quorum quorum; + LockedConnectionMap localConnections; + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 719dcb6..c293343 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -459,15 +459,15 @@ void Connection::membership(const FieldTable& joiners, const FieldTable& members + const framing::SequenceNumber& frameSeq) + { + QPID_LOG(debug, cluster << " incoming update complete on connection " << *this); +- cluster.updateInDone(ClusterMap(joiners, members, frameSeq)); + updateIn.consumerNumbering.clear(); + closeUpdated(); ++ cluster.updateInDone(ClusterMap(joiners, members, frameSeq)); + } + + void Connection::retractOffer() { + QPID_LOG(info, cluster << " incoming update retracted on connection " << *this); +- cluster.updateInRetracted(); + closeUpdated(); ++ cluster.updateInRetracted(); + } + + void Connection::closeUpdated() { +diff --git a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp +index 90a53f5..2f242b3 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp +@@ -35,54 +35,37 @@ const std::string UpdateDataExchange::MANAGEMENT_AGENTS_KEY("management-agents") + const std::string UpdateDataExchange::MANAGEMENT_SCHEMAS_KEY("management-schemas"); + const std::string UpdateDataExchange::MANAGEMENT_DELETED_OBJECTS_KEY("management-deleted-objects"); + +-UpdateDataExchange::UpdateDataExchange(management::Manageable* parent, +- management::ManagementAgent* agent_) : +- Exchange(EXCHANGE_NAME, parent), +- agent(agent_) ++UpdateDataExchange::UpdateDataExchange(management::Manageable* parent) : ++ Exchange(EXCHANGE_NAME, parent) + {} + + void UpdateDataExchange::route(broker::Deliverable& msg, const std::string& routingKey, + const qpid::framing::FieldTable* ) + { + std::string data = msg.getMessage().getFrames().getContent(); +- if (routingKey == MANAGEMENT_AGENTS_KEY) +- managementAgents(data); +- else if (routingKey == MANAGEMENT_SCHEMAS_KEY) +- managementSchemas(data); +- else if (routingKey == MANAGEMENT_DELETED_OBJECTS_KEY) +- managementDeletedObjects(data); +- else +- throw Exception( +- QPID_MSG("Cluster update-data exchange received unknown routing-key: " +- << routingKey)); ++ if (routingKey == MANAGEMENT_AGENTS_KEY) managementAgents = data; ++ else if (routingKey == MANAGEMENT_SCHEMAS_KEY) managementSchemas = data; ++ else if (routingKey == MANAGEMENT_DELETED_OBJECTS_KEY) managementDeletedObjects = data; ++ else throw Exception( ++ QPID_MSG("Cluster update-data exchange received unknown routing-key: " ++ << routingKey)); + } + +-void UpdateDataExchange::managementAgents(const std::string& data) { +- if (!agent) +- throw Exception( +- QPID_MSG("Received management agent update but management is disabled.")); +- framing::Buffer buf(const_cast(data.data()), data.size()); +- agent->importAgents(buf); ++void UpdateDataExchange::updateManagementAgent(management::ManagementAgent* agent) { ++ if (!agent) return; ++ ++ framing::Buffer buf1(const_cast(managementAgents.data()), managementAgents.size()); ++ agent->importAgents(buf1); + QPID_LOG(debug, " Updated management agents."); +-} + +-void UpdateDataExchange::managementSchemas(const std::string& data) { +- if (!agent) +- throw Exception( +- QPID_MSG("Received management schema update but management is disabled.")); +- framing::Buffer buf(const_cast(data.data()), data.size()); +- agent->importSchemas(buf); ++ framing::Buffer buf2(const_cast(managementSchemas.data()), managementSchemas.size()); ++ agent->importSchemas(buf2); + QPID_LOG(debug, " Updated management schemas"); +-} + +-void UpdateDataExchange::managementDeletedObjects(const std::string& data) { + using amqp_0_10::ListCodec; + using types::Variant; +- if (!agent) +- throw Exception( +- QPID_MSG("Management agent update but management not enabled.")); + Variant::List encoded; +- ListCodec::decode(data, encoded); ++ ListCodec::decode(managementDeletedObjects, encoded); + management::ManagementAgent::DeletedObjectList objects; + for (Variant::List::iterator i = encoded.begin(); i != encoded.end(); ++i) { + objects.push_back(management::ManagementAgent::DeletedObject::shared_ptr( +diff --git a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h +index 1c4022a..27a9854 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h ++++ b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h +@@ -45,7 +45,7 @@ class UpdateDataExchange : public broker::Exchange + static const std::string MANAGEMENT_SCHEMAS_KEY; + static const std::string MANAGEMENT_DELETED_OBJECTS_KEY; + +- UpdateDataExchange(management::Manageable* parent, management::ManagementAgent*); ++ UpdateDataExchange(management::Manageable* parent); + + void route(broker::Deliverable& msg, const std::string& routingKey, + const framing::FieldTable* args); +@@ -68,12 +68,13 @@ class UpdateDataExchange : public broker::Exchange + const qpid::framing::FieldTable*) + { return false; } + ++ void updateManagementAgent(management::ManagementAgent* agent); ++ + private: +- management::ManagementAgent* agent; + +- void managementAgents(const std::string&); +- void managementSchemas(const std::string&); +- void managementDeletedObjects(const std::string&); ++ std::string managementAgents; ++ std::string managementSchemas; ++ std::string managementDeletedObjects; + }; + + }} // namespace qpid::cluster +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index c6c2ef8..8640c16 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -2920,29 +2920,27 @@ void ManagementAgent::exportDeletedObjects(DeletedObjectList& outList) + } + } + +- +-// Merge this list's deleted objects to the management Agent's list of deleted +-// objects waiting for next (last) publish-ment. ++// Called by cluster to reset the management agent's list of deleted ++// objects to match the rest of the cluster. + void ManagementAgent::importDeletedObjects(const DeletedObjectList& inList) + { + sys::Mutex::ScopedLock lock (userLock); +- ++ // Clear out any existing deleted objects ++ moveNewObjectsLH(); ++ pendingDeletedObjs.clear(); ++ ManagementObjectMap::iterator i = managementObjects.begin(); ++ while (i != managementObjects.end()) { ++ ManagementObject* object = i->second; ++ if (object->isDeleted()) { ++ delete object; ++ managementObjects.erase(i++); ++ } ++ else ++i; ++ } + for (DeletedObjectList::const_iterator lIter = inList.begin(); lIter != inList.end(); lIter++) { + + std::string classkey((*lIter)->packageName + std::string(":") + (*lIter)->className); +- DeletedObjectList& dList = pendingDeletedObjs[classkey]; +- +- // not sure if this is necessary - merge by objectid.... +- bool found = false; +- for (DeletedObjectList::iterator dIter = dList.begin(); dIter != dList.end(); dIter++) { +- if ((*dIter)->objectId == (*lIter)->objectId) { +- found = true; +- break; +- } +- } +- if (!found) { +- dList.push_back(*lIter); +- } ++ pendingDeletedObjs[classkey].push_back(*lIter); + } + } + +-- +1.5.5.6 + +From 9e1c94a3af9ff63291286e1a4b7899e797398491 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Tue, 21 Sep 2010 17:48:00 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + Catch uncaught exceptions thrown by DispatchHandle callbacks instead of letting + then destroy the Poller thread. + +--- + qpid/cpp/src/qpid/sys/DispatchHandle.cpp | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/DispatchHandle.cpp b/qpid/cpp/src/qpid/sys/DispatchHandle.cpp +index cd9bfd0..5d6fc4e 100644 +--- a/qpid/cpp/src/qpid/sys/DispatchHandle.cpp ++++ b/qpid/cpp/src/qpid/sys/DispatchHandle.cpp +@@ -20,6 +20,7 @@ + */ + + #include "qpid/sys/DispatchHandle.h" ++#include "qpid/log/Statement.h" + + #include + +@@ -273,6 +274,7 @@ void DispatchHandle::processEvent(Poller::EventType type) { + // Do callbacks - whilst we are doing the callbacks we are prevented from processing + // the same handle until we re-enable it. To avoid rentering the callbacks for a single + // handle re-enabling in the callbacks is actually deferred until they are complete. ++ try { + switch (type) { + case Poller::READABLE: + readableCallback(*this); +@@ -316,6 +318,11 @@ void DispatchHandle::processEvent(Poller::EventType type) { + cb(*this); + callbacks.pop(); + } ++ } catch (std::exception& e) { ++ // One of the callbacks threw an exception - that's not allowed ++ QPID_LOG(error, "Caught exception in state: " << state << " with event: " << type << ": " << e.what()); ++ // It would be nice to clean up and delete ourselves here, but we can't ++ } + + finishcallbacks: + { +-- +1.5.5.6 + +From 9ae203ee8789d90811176f38598ffd87599741cb Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Tue, 21 Sep 2010 17:32:32 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + Fix Rdma test server so that you can interrupt it again (since making + Poller run loop impervious to signals) + +--- + qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp | 12 +++++++++--- + 1 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +index 564fd62..a23f919 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +@@ -18,6 +18,7 @@ + * under the License. + * + */ ++#include "qpid/sys/Thread.h" + #include "qpid/sys/rdma/RdmaIO.h" + #include "qpid/sys/rdma/rdma_exception.h" + +@@ -36,9 +37,9 @@ using std::string; + using std::cout; + using std::cerr; + ++using qpid::sys::Thread; + using qpid::sys::SocketAddress; + using qpid::sys::Poller; +-using qpid::sys::Dispatcher; + + // All the accepted connections + namespace qpid { +@@ -179,7 +180,6 @@ int main(int argc, char* argv[]) { + + try { + boost::shared_ptr p(new Poller()); +- Dispatcher d(p); + + Rdma::Listener a( + Rdma::ConnectionParams(16384, Rdma::DEFAULT_WR_ENTRIES), +@@ -191,7 +191,13 @@ int main(int argc, char* argv[]) { + + SocketAddress sa("", port); + a.start(p, sa); +- d.run(); ++ ++ // The poller loop blocks all signals so run in its own thread ++ Thread t(*p); ++ ++ ::pause(); ++ p->shutdown(); ++ t.join(); + } catch (Rdma::Exception& e) { + int err = e.getError(); + cerr << "Error: " << e.what() << "(" << err << ")\n"; +-- +1.5.5.6 + +From 13d621488fa3d8730a94403ed2a9dc76f98bd463 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 20 Sep 2010 11:00:37 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + Handle Rdma Flush events - instead of reporting to the application just + return write buffers to the pool and do nothing for recv buffers as the + connection must be in an error state now. + +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 16 ++++++++++++++++ + 1 files changed, 16 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 6977665..7a1d4bf 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -371,6 +371,21 @@ namespace Rdma { + + ::ibv_wc_status status = e.getEventStatus(); + if (status != IBV_WC_SUCCESS) { ++ // Need special check for IBV_WC_WR_FLUSH_ERR here ++ // we will get this for every send/recv queue entry that was pending ++ // when disconnected, these aren't real errors and mostly need to be ignored ++ if (status == IBV_WC_WR_FLUSH_ERR) { ++ QueueDirection dir = e.getDirection(); ++ if (dir == SEND) { ++ Buffer* b = e.getBuffer(); ++ ++sendEvents; ++ returnBuffer(b); ++ --outstandingWrites; ++ } else { ++ ++recvEvents; ++ } ++ continue; ++ } + errorCallback(*this); + // TODO: Probably need to flush queues at this point + return; +@@ -398,6 +413,7 @@ namespace Rdma { + } + + // At this point the buffer has been consumed so put it back on the recv queue ++ // TODO: Is this safe to do if the connection is disconnected already? + qp->postRecv(b); + + // Received another message +-- +1.5.5.6 + +From 2a3fa4aa8086010ada0a1860a723d4a7e5ae0414 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Mon, 20 Sep 2010 17:25:33 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + If we have already stopped an Rdma connection, but we still get a data event + ignore it + +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 7a1d4bf..d5f2816 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -294,6 +294,9 @@ namespace Rdma { + case IDLE: + newState = DATA; + break; ++ case SHUTDOWN: ++ doReturn = true; ++ // Fallthru + case DRAINED: + break; + default: +-- +1.5.5.6 + +From c0c7c45be835a158b9b4aedf3e5acbd86d98136b Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Tue, 21 Sep 2010 17:46:37 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + Make sure that Rdma::Listener can generate no more callbacks after it receives + a disconnected event for a connection id. + +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 12 ++++++++++++ + 1 files changed, 12 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index d5f2816..fe7062d 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -564,6 +564,10 @@ namespace Rdma { + ci->listen(); + } + ++ namespace { ++ const int64_t PoisonContext = -1; ++ } ++ + void Listener::connectionEvent(Connection::intrusive_ptr ci) { + ConnectionEvent e(ci->getNextEvent()); + +@@ -578,6 +582,11 @@ namespace Rdma { + ::rdma_conn_param conn_param = e.getConnectionParam(); + Rdma::Connection::intrusive_ptr id = e.getConnection(); + ++ // Check for previous disconnection (it appears that you actually can get connection ++ // request events after a disconnect event in rare circumstances) ++ if (reinterpret_cast(id->getContext())==PoisonContext) ++ return; ++ + switch (eventType) { + case RDMA_CM_EVENT_CONNECT_REQUEST: { + // Make sure peer has sent params we can use +@@ -612,6 +621,9 @@ namespace Rdma { + break; + case RDMA_CM_EVENT_DISCONNECTED: + disconnectedCallback(id); ++ // Poison the id context so that we do no more callbacks on it ++ id->removeContext(); ++ id->addContext(reinterpret_cast(PoisonContext)); + break; + case RDMA_CM_EVENT_CONNECT_ERROR: + errorCallback(id, CONNECT_ERROR); +-- +1.5.5.6 + +From c8275911860bb1419b6e578a9541e539f5371a3a Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Tue, 14 Sep 2010 15:21:49 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + Serialise close into the data callbacks: + Rejig Rdma::ConnectionManager to have a stop function with a callback and + use this to ensure that the Rdma::Connector used by qpid::sys::RdmaConnector + is correctly deleted only after it has been actually stopped + +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 84 ++++++++++++++++----------- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 15 +++++- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 11 +++- + 3 files changed, 72 insertions(+), 38 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 208d42f..026952b 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -73,7 +73,7 @@ class RdmaConnector : public Connector, public sys::Codec + framing::OutputHandler* output; + + Rdma::AsynchIO* aio; +- std::auto_ptr acon; ++ Rdma::Connector* acon; + sys::Poller::shared_ptr poller; + std::auto_ptr securityLayer; + +@@ -82,7 +82,6 @@ class RdmaConnector : public Connector, public sys::Codec + // Callbacks + void connected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&); + void connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, Rdma::ErrorType); +- void disconnectAction(); + void disconnected(); + void rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&); + +@@ -91,7 +90,8 @@ class RdmaConnector : public Connector, public sys::Codec + void writeDataBlock(const framing::AMQDataBlock& data); + void dataError(Rdma::AsynchIO&); + void drained(); +- void stopped(Rdma::AsynchIO* aio=0); ++ void connectionStopped(Rdma::Connector* acon); ++ void dataStopped(Rdma::AsynchIO* aio); + + std::string identifier; + +@@ -147,6 +147,7 @@ RdmaConnector::RdmaConnector(Poller::shared_ptr p, + polling(false), + shutdownHandler(0), + aio(0), ++ acon(0), + poller(p) + { + QPID_LOG(debug, "RdmaConnector created for " << version); +@@ -156,14 +157,20 @@ namespace { + void deleteAsynchIO(Rdma::AsynchIO& aio) { + delete &aio; + } ++ ++ void deleteConnector(Rdma::ConnectionManager& con) { ++ delete &con; ++ } + } + + RdmaConnector::~RdmaConnector() { + QPID_LOG(debug, "~RdmaConnector " << identifier); +- close(); + if (aio) { + aio->stop(deleteAsynchIO); + } ++ if (acon) { ++ acon->stop(deleteConnector); ++ } + if (shutdownHandler) { + shutdownHandler->shutdown(); + } +@@ -173,12 +180,12 @@ void RdmaConnector::connect(const std::string& host, int port){ + Mutex::ScopedLock l(pollingLock); + assert(!polling); + +- acon.reset(new Rdma::Connector( ++ acon = new Rdma::Connector( + Rdma::ConnectionParams(maxFrameSize, Rdma::DEFAULT_WR_ENTRIES), + boost::bind(&RdmaConnector::connected, this, poller, _1, _2), + boost::bind(&RdmaConnector::connectionError, this, poller, _1, _2), + boost::bind(&RdmaConnector::disconnected, this), +- boost::bind(&RdmaConnector::rejected, this, poller, _1, _2))); ++ boost::bind(&RdmaConnector::rejected, this, poller, _1, _2)); + + polling = true; + +@@ -211,11 +218,10 @@ void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intru + } + { + Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to stopped() anyway +- if (!polling) return; ++ assert(polling); + polling = false; + } +- stopped(); ++ connectionStopped(acon); + } + + void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, Rdma::ErrorType) { +@@ -226,10 +232,10 @@ void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::i + if (!polling) return; + polling = false; + } +- stopped(); ++ connectionStopped(acon); + } + +-void RdmaConnector::disconnectAction() { ++void RdmaConnector::disconnected() { + QPID_LOG(debug, "Connection disconnected " << identifier); + { + Mutex::ScopedLock l(pollingLock); +@@ -237,11 +243,8 @@ void RdmaConnector::disconnectAction() { + if (!polling) return; + polling = false; + } +- drained(); +-} +- +-void RdmaConnector::disconnected() { +- aio->requestCallback(boost::bind(&RdmaConnector::disconnectAction, this)); ++ // Make sure that all the disconnected actions take place on the data "thread" ++ aio->requestCallback(boost::bind(&RdmaConnector::drained, this)); + } + + void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams& cp) { +@@ -252,7 +255,7 @@ void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusiv + if (!polling) return; + polling = false; + } +- stopped(); ++ connectionStopped(acon); + } + + void RdmaConnector::dataError(Rdma::AsynchIO&) { +@@ -266,35 +269,48 @@ void RdmaConnector::dataError(Rdma::AsynchIO&) { + drained(); + } + +-void RdmaConnector::stopped(Rdma::AsynchIO* a) { +- QPID_LOG(debug, "RdmaConnector::stopped " << identifier); +- assert(!polling); +- aio = 0; +- delete a; +- if (shutdownHandler) { +- ShutdownHandler* s = shutdownHandler; +- shutdownHandler = 0; +- s->shutdown(); ++void RdmaConnector::close() { ++ QPID_LOG(debug, "RdmaConnector::close " << identifier); ++ { ++ Mutex::ScopedLock l(pollingLock); ++ if (!polling) return; ++ polling = false; + } ++ if (aio) aio->drainWriteQueue(boost::bind(&RdmaConnector::drained, this)); + } + + void RdmaConnector::drained() { + QPID_LOG(debug, "RdmaConnector::drained " << identifier); + assert(!polling); +- acon->stop(); + if (aio) { + Rdma::AsynchIO* a = aio; + aio = 0; +- a->stop(boost::bind(&RdmaConnector::stopped, this, a)); ++ a->stop(boost::bind(&RdmaConnector::dataStopped, this, a)); + } + } + +-void RdmaConnector::close() { +- QPID_LOG(debug, "RdmaConnector::close " << identifier); +- Mutex::ScopedLock l(pollingLock); +- if (!polling) return; +- polling = false; +- if (aio) aio->drainWriteQueue(boost::bind(&RdmaConnector::drained, this)); ++void RdmaConnector::dataStopped(Rdma::AsynchIO* a) { ++ QPID_LOG(debug, "RdmaConnector::dataStopped " << identifier); ++ assert(!polling); ++ aio = 0; ++ delete a; ++ if (acon) { ++ Rdma::Connector* c = acon; ++ acon = 0; ++ c->stop(boost::bind(&RdmaConnector::connectionStopped, this, c)); ++ } ++} ++ ++void RdmaConnector::connectionStopped(Rdma::Connector* c) { ++ QPID_LOG(debug, "RdmaConnector::connectionStopped " << identifier); ++ assert(!polling); ++ acon = 0; ++ delete c; ++ if (shutdownHandler) { ++ ShutdownHandler* s = shutdownHandler; ++ shutdownHandler = 0; ++ s->shutdown(); ++ } + } + + void RdmaConnector::setInputHandler(InputHandler* handler){ +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index fe7062d..23660a0 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -518,6 +518,7 @@ namespace Rdma { + ErrorCallback errc, + DisconnectedCallback dc + ) : ++ state(IDLE), + ci(Connection::make()), + handle(*ci, boost::bind(&ConnectionManager::event, this, _1), 0, 0), + errorCallback(errc), +@@ -537,11 +538,23 @@ namespace Rdma { + handle.startWatch(poller); + } + +- void ConnectionManager::stop() { ++ void ConnectionManager::doStoppedCallback() { ++ // Ensure we can't get any more callbacks (except for the stopped callback) + handle.stopWatch(); ++ ++ NotifyCallback nc; ++ nc.swap(notifyCallback); ++ nc(*this); ++ } ++ ++ void ConnectionManager::stop(NotifyCallback nc) { ++ state = STOPPED; ++ notifyCallback = nc; ++ handle.call(boost::bind(&ConnectionManager::doStoppedCallback, this)); + } + + void ConnectionManager::event(DispatchHandle&) { ++ if (state.get() == STOPPED) return; + connectionEvent(ci); + } + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 55174ea..00eba28 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -26,7 +26,6 @@ + #include "qpid/sys/AtomicValue.h" + #include "qpid/sys/Dispatcher.h" + #include "qpid/sys/DispatchHandle.h" +-#include "qpid/sys/Mutex.h" + #include "qpid/sys/SocketAddress.h" + + #include +@@ -163,14 +162,19 @@ namespace Rdma { + typedef boost::function1 DisconnectedCallback; + + class ConnectionManager { ++ typedef boost::function1 NotifyCallback; ++ ++ enum State {IDLE, STOPPED}; ++ qpid::sys::AtomicValue state; + Connection::intrusive_ptr ci; + qpid::sys::DispatchHandleRef handle; ++ NotifyCallback notifyCallback; + + protected: + ErrorCallback errorCallback; + DisconnectedCallback disconnectedCallback; + +- public: ++ public: + ConnectionManager( + ErrorCallback errc, + DisconnectedCallback dc +@@ -179,10 +183,11 @@ namespace Rdma { + virtual ~ConnectionManager(); + + void start(qpid::sys::Poller::shared_ptr poller, const qpid::sys::SocketAddress& addr); +- void stop(); ++ void stop(NotifyCallback); + + private: + void event(qpid::sys::DispatchHandle& handle); ++ void doStoppedCallback(); + + virtual void startConnection(Connection::intrusive_ptr ci, const qpid::sys::SocketAddress& addr) = 0; + virtual void connectionEvent(Connection::intrusive_ptr ci) = 0; +-- +1.5.5.6 + +From c8321fc30fd41c5794d1cd74c7904820aa768608 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Sun, 3 Oct 2010 23:44:34 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + Account for seemingly getting reject messages after already getting established + event. + +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 026952b..5558e27 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -247,6 +247,8 @@ void RdmaConnector::disconnected() { + aio->requestCallback(boost::bind(&RdmaConnector::drained, this)); + } + ++// Bizarrely we seem to get rejected events *after* we've already got a connected event for some peer disconnects ++// so we need to check whether the data connection is started or not in here + void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams& cp) { + QPID_LOG(debug, "Connection Rejected " << identifier << ": " << cp.maxRecvBufferSize); + { +@@ -255,7 +257,11 @@ void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusiv + if (!polling) return; + polling = false; + } +- connectionStopped(acon); ++ if (dataConnected) { ++ disconnected(); ++ } else { ++ connectionStopped(acon); ++ } + } + + void RdmaConnector::dataError(Rdma::AsynchIO&) { +-- +1.5.5.6 + +From b4cd600247669c6416d8d5a897944ea0e240c8bf Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Wed, 15 Sep 2010 20:01:15 -0400 +Subject: [PATCH] Bug 631969, Bug 631973 + Delay deleting the Rdma::AsynchIO associated with a Connection to just before + the callback to the ConnectionImpl shutdown function so that we make the + possibility of race between a write coming down and deleting it as small as + possible. + +Rearranged scope of polling boolean to indicate that the data channel is +connected (or not) and changed name to better describe its function +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 124 ++++++++++++--------------- + 1 files changed, 55 insertions(+), 69 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 5558e27..79f86d0 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -64,8 +64,8 @@ class RdmaConnector : public Connector, public sys::Codec + framing::ProtocolVersion version; + bool initiated; + +- sys::Mutex pollingLock; +- bool polling; ++ sys::Mutex dataConnectedLock; ++ bool dataConnected; + + sys::ShutdownHandler* shutdownHandler; + framing::InputHandler* input; +@@ -90,7 +90,7 @@ class RdmaConnector : public Connector, public sys::Codec + void writeDataBlock(const framing::AMQDataBlock& data); + void dataError(Rdma::AsynchIO&); + void drained(); +- void connectionStopped(Rdma::Connector* acon); ++ void connectionStopped(Rdma::Connector* acon, Rdma::AsynchIO* aio); + void dataStopped(Rdma::AsynchIO* aio); + + std::string identifier; +@@ -144,7 +144,7 @@ RdmaConnector::RdmaConnector(Poller::shared_ptr p, + bounds(cimpl), + version(ver), + initiated(false), +- polling(false), ++ dataConnected(false), + shutdownHandler(0), + aio(0), + acon(0), +@@ -171,14 +171,11 @@ RdmaConnector::~RdmaConnector() { + if (acon) { + acon->stop(deleteConnector); + } +- if (shutdownHandler) { +- shutdownHandler->shutdown(); +- } + } + + void RdmaConnector::connect(const std::string& host, int port){ +- Mutex::ScopedLock l(pollingLock); +- assert(!polling); ++ Mutex::ScopedLock l(dataConnectedLock); ++ assert(!dataConnected); + + acon = new Rdma::Connector( + Rdma::ConnectionParams(maxFrameSize, Rdma::DEFAULT_WR_ENTRIES), +@@ -187,8 +184,6 @@ void RdmaConnector::connect(const std::string& host, int port){ + boost::bind(&RdmaConnector::disconnected, this), + boost::bind(&RdmaConnector::rejected, this, poller, _1, _2)); + +- polling = true; +- + SocketAddress sa(host, boost::lexical_cast(port)); + acon->start(poller, sa); + } +@@ -196,6 +191,8 @@ void RdmaConnector::connect(const std::string& host, int port){ + // The following only gets run when connected + void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr ci, const Rdma::ConnectionParams& cp) { + try { ++ Mutex::ScopedLock l(dataConnectedLock); ++ assert(!dataConnected); + Rdma::QueuePair::intrusive_ptr q = ci->getQueuePair(); + + aio = new Rdma::AsynchIO(ci->getQueuePair(), +@@ -210,67 +207,54 @@ void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intru + writeDataBlock(init); + + aio->start(poller); ++ ++ dataConnected = true; ++ + return; + } catch (const Rdma::Exception& e) { + QPID_LOG(error, "Rdma: Cannot create new connection (Rdma exception): " << e.what()); + } catch (const std::exception& e) { + QPID_LOG(error, "Rdma: Cannot create new connection (unknown exception): " << e.what()); + } +- { +- Mutex::ScopedLock l(pollingLock); +- assert(polling); +- polling = false; +- } +- connectionStopped(acon); ++ dataConnected = false; ++ connectionStopped(acon, aio); + } + + void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, Rdma::ErrorType) { + QPID_LOG(debug, "Connection Error " << identifier); +- { +- Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to stopped() anyway +- if (!polling) return; +- polling = false; +- } +- connectionStopped(acon); +-} +- +-void RdmaConnector::disconnected() { +- QPID_LOG(debug, "Connection disconnected " << identifier); +- { +- Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to drained() anyway +- if (!polling) return; +- polling = false; +- } +- // Make sure that all the disconnected actions take place on the data "thread" +- aio->requestCallback(boost::bind(&RdmaConnector::drained, this)); ++ connectionStopped(acon, aio); + } + + // Bizarrely we seem to get rejected events *after* we've already got a connected event for some peer disconnects + // so we need to check whether the data connection is started or not in here + void RdmaConnector::rejected(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams& cp) { + QPID_LOG(debug, "Connection Rejected " << identifier << ": " << cp.maxRecvBufferSize); +- { +- Mutex::ScopedLock l(pollingLock); +- // If we're closed already then we'll get to stopped() anyway +- if (!polling) return; +- polling = false; +- } + if (dataConnected) { + disconnected(); + } else { +- connectionStopped(acon); ++ connectionStopped(acon, aio); + } + } + ++void RdmaConnector::disconnected() { ++ QPID_LOG(debug, "Connection disconnected " << identifier); ++ { ++ Mutex::ScopedLock l(dataConnectedLock); ++ // If we're closed already then we'll get to drained() anyway ++ if (!dataConnected) return; ++ dataConnected = false; ++ } ++ // Make sure that all the disconnected actions take place on the data "thread" ++ aio->requestCallback(boost::bind(&RdmaConnector::drained, this)); ++} ++ + void RdmaConnector::dataError(Rdma::AsynchIO&) { + QPID_LOG(debug, "Data Error " << identifier); + { +- Mutex::ScopedLock l(pollingLock); ++ Mutex::ScopedLock l(dataConnectedLock); + // If we're closed already then we'll get to drained() anyway +- if (!polling) return; +- polling = false; ++ if (!dataConnected) return; ++ dataConnected = false; + } + drained(); + } +@@ -278,39 +262,37 @@ void RdmaConnector::dataError(Rdma::AsynchIO&) { + void RdmaConnector::close() { + QPID_LOG(debug, "RdmaConnector::close " << identifier); + { +- Mutex::ScopedLock l(pollingLock); +- if (!polling) return; +- polling = false; ++ Mutex::ScopedLock l(dataConnectedLock); ++ if (!dataConnected) return; ++ dataConnected = false; + } +- if (aio) aio->drainWriteQueue(boost::bind(&RdmaConnector::drained, this)); ++ aio->drainWriteQueue(boost::bind(&RdmaConnector::drained, this)); + } + + void RdmaConnector::drained() { + QPID_LOG(debug, "RdmaConnector::drained " << identifier); +- assert(!polling); +- if (aio) { +- Rdma::AsynchIO* a = aio; +- aio = 0; +- a->stop(boost::bind(&RdmaConnector::dataStopped, this, a)); +- } ++ assert(!dataConnected); ++ assert(aio); ++ Rdma::AsynchIO* a = aio; ++ aio = 0; ++ a->stop(boost::bind(&RdmaConnector::dataStopped, this, a)); + } + + void RdmaConnector::dataStopped(Rdma::AsynchIO* a) { + QPID_LOG(debug, "RdmaConnector::dataStopped " << identifier); +- assert(!polling); +- aio = 0; +- delete a; +- if (acon) { +- Rdma::Connector* c = acon; +- acon = 0; +- c->stop(boost::bind(&RdmaConnector::connectionStopped, this, c)); +- } ++ assert(!dataConnected); ++ assert(acon); ++ Rdma::Connector* c = acon; ++ acon = 0; ++ c->stop(boost::bind(&RdmaConnector::connectionStopped, this, c, a)); + } + +-void RdmaConnector::connectionStopped(Rdma::Connector* c) { ++void RdmaConnector::connectionStopped(Rdma::Connector* c, Rdma::AsynchIO* a) { + QPID_LOG(debug, "RdmaConnector::connectionStopped " << identifier); +- assert(!polling); ++ assert(!dataConnected); ++ aio = 0; + acon = 0; ++ delete a; + delete c; + if (shutdownHandler) { + ShutdownHandler* s = shutdownHandler; +@@ -340,6 +322,10 @@ const std::string& RdmaConnector::getIdentifier() const { + } + + void RdmaConnector::send(AMQFrame& frame) { ++ // It is possible that we are called to write after we are already shutting down ++ Mutex::ScopedLock l(dataConnectedLock); ++ if (!dataConnected) return; ++ + bool notifyWrite = false; + { + Mutex::ScopedLock l(lock); +@@ -354,15 +340,15 @@ void RdmaConnector::send(AMQFrame& frame) { + notifyWrite = (currentSize >= maxFrameSize); + } + } +- if (notifyWrite && polling) aio->notifyPendingWrite(); ++ if (notifyWrite) aio->notifyPendingWrite(); + } + + // Called in IO thread. (write idle routine) + // This is NOT only called in response to previously calling notifyPendingWrite + void RdmaConnector::writebuff(Rdma::AsynchIO&) { + // It's possible to be disconnected and be writable +- Mutex::ScopedLock l(pollingLock); +- if (!polling) ++ Mutex::ScopedLock l(dataConnectedLock); ++ if (!dataConnected) + return; + + Codec* codec = securityLayer.get() ? (Codec*) securityLayer.get() : (Codec*) this; +-- +1.5.5.6 + +From 7c0c7a0648bb788749ec4d2bc0ac247539303a1f Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Tue, 12 Oct 2010 16:05:15 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Rewrite Rdma::AsynchIO to use deferred code rather than a state machine: + This eliminates a lot of difficult to understand error prone + state machine code + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021822 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 255 +++------------------------------ + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 9 +- + 2 files changed, 26 insertions(+), 238 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 23660a0..5616c30 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -54,7 +54,8 @@ namespace Rdma { + readCallback(rc), + idleCallback(ic), + fullCallback(fc), +- errorCallback(ec) ++ errorCallback(ec), ++ pendingWriteAction(boost::bind(&AsynchIO::doWriteCallback, this)) + { + qp->nonblocking(); + qp->notifyRecv(); +@@ -73,7 +74,7 @@ namespace Rdma { + QPID_LOG(error, "RDMA: qp=" << qp << ": Deleting queue before all write buffers finished"); + + // Turn off callbacks if necessary (before doing the deletes) +- if (state.get() != SHUTDOWN) { ++ if (state.get() != STOPPED) { + QPID_LOG(error, "RDMA: qp=" << qp << ": Deleting queue whilst not shutdown"); + dataHandle.stopWatch(); + } +@@ -88,30 +89,9 @@ namespace Rdma { + + // Mark for deletion/Delete this object when we have no outstanding writes + void AsynchIO::stop(NotifyCallback nc) { +- State oldState; +- State newState; +- bool doReturn; +- //qpid::sys::ScopedLock l(stateLock); +- do { +- newState = oldState = state.get(); +- doReturn = true; +- if (oldState == IDLE || oldState == DRAINED) { +- doReturn = false; +- newState = SHUTDOWN; +- } +- } while (!state.boolCompareAndSwap(oldState, newState)); +- +- // Ensure we can't get any more callbacks (except for the stopped callback) +- dataHandle.stopWatch(); +- +- if (doReturn) { +- notifyCallback = nc; +- return; +- } +- // Callback, but don't store it - SHUTDOWN state means callback has been called +- // we *are* allowed to delete the AsynchIO in this callback, so we have to return immediately +- // after the callback +- nc(*this); ++ state = STOPPED; ++ notifyCallback = nc; ++ dataHandle.call(boost::bind(&AsynchIO::doStoppedCallback, this)); + } + + namespace { +@@ -130,31 +110,8 @@ namespace Rdma { + + // Mark writing closed (so we don't accept any more writes or make any idle callbacks) + void AsynchIO::drainWriteQueue(NotifyCallback nc) { +- State oldState; +- State newState; +- bool doReturn; +- //qpid::sys::ScopedLock l(stateLock); +- do { +- newState = oldState = state.get(); +- doReturn = true; +- switch (oldState) { +- case IDLE: +- if (outstandingWrites == 0) { +- doReturn = false; +- newState = DRAINED; +- break; +- } +- /*FALLTHRU*/ +- default: +- draining = true; +- break; +- } +- } while (!state.boolCompareAndSwap(oldState, newState)); +- if (doReturn) { +- notifyCallback = nc; +- return; +- } +- nc(*this); ++ draining = true; ++ notifyCallback = nc; + } + + void AsynchIO::queueWrite(Buffer* buff) { +@@ -183,167 +140,15 @@ namespace Rdma { + } + + void AsynchIO::notifyPendingWrite() { +- // As notifyPendingWrite can be called on an arbitrary thread it must check whether we are processing or not. +- // If we are then we just return as we know that we will eventually do the idle callback anyway. +- // +- // qpid::sys::ScopedLock l(stateLock); +- // We can get here in any state (as the caller could be in any thread) +- State oldState; +- State newState; +- bool doReturn; +- do { +- newState = oldState = state.get(); +- doReturn = false; +- switch (oldState) { +- case NOTIFY_WRITE: +- case PENDING_NOTIFY: +- // We only need to note a pending notify if we're already doing a notify as data processing +- // is always followed by write notification processing +- newState = PENDING_NOTIFY; +- doReturn = true; +- break; +- case PENDING_DATA: +- doReturn = true; +- break; +- case DATA: +- // Only need to return here as data processing will do the idleCallback itself anyway +- doReturn = true; +- break; +- case IDLE: +- newState = NOTIFY_WRITE; +- break; +- case SHUTDOWN: +- // We can get here because it is too hard to eliminate all races of stop() and notifyPendingWrite() +- // just do nothing. +- doReturn = true; +- case DRAINED: +- // This is not allowed - we can't make any more writes as we're draining the write queue. +- assert(oldState!=DRAINED); +- doReturn = true; +- }; +- } while (!state.boolCompareAndSwap(oldState, newState)); +- if (doReturn) { +- return; +- } +- +- doWriteCallback(); +- +- // Keep track of what we need to do so that we can release the lock +- enum {COMPLETION, NOTIFY, RETURN, EXIT} action; +- // If there was pending data whilst we were doing this, process it now +- // +- // Using NOTIFY_WRITE for both NOTIFY & COMPLETION is a bit strange, but we're making sure we get the +- // correct result if we reenter notifyPendingWrite(), in which case we want to +- // end up in PENDING_NOTIFY (entering dataEvent doesn't matter as it only checks +- // not IDLE) +- do { +- //qpid::sys::ScopedLock l(stateLock); +- do { +- newState = oldState = state.get(); +- action = RETURN; // Anything but COMPLETION +- switch (oldState) { +- case NOTIFY_WRITE: +- newState = IDLE; +- action = (action == COMPLETION) ? EXIT : RETURN; +- break; +- case PENDING_DATA: +- newState = NOTIFY_WRITE; +- action = COMPLETION; +- break; +- case PENDING_NOTIFY: +- newState = NOTIFY_WRITE; +- action = NOTIFY; +- break; +- default: +- assert(oldState!=IDLE && oldState!=DATA && oldState!=SHUTDOWN); +- action = RETURN; +- } +- } while (!state.boolCompareAndSwap(oldState, newState)); +- +- // Note we only get here if we were in the PENDING_DATA or PENDING_NOTIFY state +- // so that we do need to process completions or notifications now +- switch (action) { +- case COMPLETION: +- processCompletions(); +- // Fall through +- case NOTIFY: +- doWriteCallback(); +- break; +- case RETURN: +- return; +- case EXIT: +- // If we just processed completions we might need to delete ourselves +- // TODO: XXX: can we delete ourselves correctly in notifyPendingWrite()? +- checkDrainedStopped(); +- return; +- } +- } while (true); ++ dataHandle.call(pendingWriteAction); + } + + void AsynchIO::dataEvent() { +- // Keep track of writable notifications +- // qpid::sys::ScopedLock l(stateLock); +- State oldState; +- State newState; +- bool doReturn; +- do { +- newState = oldState = state.get(); +- doReturn = false; +- // We're already processing a notification +- switch (oldState) { +- case IDLE: +- newState = DATA; +- break; +- case SHUTDOWN: +- doReturn = true; +- // Fallthru +- case DRAINED: +- break; +- default: +- // Can't get here in DATA state as that would violate the serialisation rules +- assert( oldState!=DATA ); +- newState = PENDING_DATA; +- doReturn = true; +- } +- } while (!state.boolCompareAndSwap(oldState, newState)); +- if (doReturn) { +- return; +- } +- ++ if (state.get() == STOPPED) return; ++ + processCompletions(); + +- //qpid::sys::ScopedLock l(stateLock); +- do { +- newState = oldState = state.get(); +- switch (oldState) { +- case DATA: +- newState = NOTIFY_WRITE; +- break; +- case DRAINED: +- break; +- default: +- assert( oldState==DATA || oldState==DRAINED); +- } +- } while (!state.boolCompareAndSwap(oldState, newState)); +- +- while (newState==NOTIFY_WRITE) { +- doWriteCallback(); +- +- // qpid::sys::ScopedLock l(stateLock); +- do { +- newState = oldState = state.get(); +- if ( oldState==NOTIFY_WRITE ) { +- newState = IDLE; +- } else { +- // Can't get DATA/PENDING_DATA/DRAINED here as dataEvent cannot be reentered +- assert( oldState==PENDING_NOTIFY ); +- newState = NOTIFY_WRITE; +- } +- } while (!state.boolCompareAndSwap(oldState, newState)); +- } +- +- // We might delete ourselves in here so return immediately +- checkDrainedStopped(); ++ doWriteCallback(); + } + + void AsynchIO::processCompletions() { +@@ -471,46 +276,30 @@ namespace Rdma { + return; + } + } ++ ++ checkDrained(); + } + +- void AsynchIO::checkDrainedStopped() { ++ void AsynchIO::checkDrained() { + // If we've got all the write confirmations and we're draining + // We might get deleted in the drained callback so return immediately + if (draining) { + if (outstandingWrites == 0) { + draining = false; +- doDrainedCallback(); ++ NotifyCallback nc; ++ nc.swap(notifyCallback); ++ nc(*this); + } + return; + } +- +- // We might need to delete ourselves +- if (notifyCallback) { +- doStoppedCallback(); +- } +- } +- +- void AsynchIO::doDrainedCallback() { +- NotifyCallback nc; +- nc.swap(notifyCallback); +- // Transition unconditionally to DRAINED +- State oldState; +- do { +- oldState = state.get(); +- assert(oldState==IDLE); +- } while (!state.boolCompareAndSwap(oldState, DRAINED)); +- nc(*this); + } +- ++ + void AsynchIO::doStoppedCallback() { ++ // Ensure we can't get any more callbacks (except for the stopped callback) ++ dataHandle.stopWatch(); ++ + NotifyCallback nc; + nc.swap(notifyCallback); +- // Transition unconditionally to SHUTDOWN +- State oldState; +- do { +- oldState = state.get(); +- assert(oldState==IDLE); +- } while (!state.boolCompareAndSwap(oldState, SHUTDOWN)); + nc(*this); + } + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 00eba28..62779e4 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -50,10 +50,9 @@ namespace Rdma { + int recvBufferCount; + int xmitBufferCount; + int outstandingWrites; +- bool draining; // TODO: Perhaps (probably) this state can be merged with the following... +- enum State { IDLE, DATA, PENDING_DATA, NOTIFY_WRITE, PENDING_NOTIFY, DRAINED, SHUTDOWN }; ++ bool draining; ++ enum State {IDLE, STOPPED}; + qpid::sys::AtomicValue state; +- //qpid::sys::Mutex stateLock; + QueuePair::intrusive_ptr qp; + qpid::sys::DispatchHandleRef dataHandle; + +@@ -62,6 +61,7 @@ namespace Rdma { + FullCallback fullCallback; + ErrorCallback errorCallback; + NotifyCallback notifyCallback; ++ qpid::sys::DispatchHandle::Callback pendingWriteAction; + + public: + typedef boost::function1 RequestCallback; +@@ -103,9 +103,8 @@ namespace Rdma { + void dataEvent(); + void processCompletions(); + void doWriteCallback(); +- void checkDrainedStopped(); ++ void checkDrained(); + void doStoppedCallback(); +- void doDrainedCallback(); + }; + + // We're only writable if: +-- +1.5.5.6 + +From 10151dbc6840480d033e94b9ca48592942ba57db Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Tue, 12 Oct 2010 16:05:26 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Improve the performance of the Rdma::AsynchIO by using a very + simple state machine to reduce the context switch for notifyPendingWrite() + by allowing it to "hijack" existing concurrent processing on an IO thread. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021823 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 62 ++++++++++++++++++++++++++++++--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 7 +++- + 2 files changed, 62 insertions(+), 7 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 5616c30..1caa9b7 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -29,6 +29,8 @@ + using qpid::sys::SocketAddress; + using qpid::sys::DispatchHandle; + using qpid::sys::Poller; ++using qpid::sys::ScopedLock; ++using qpid::sys::Mutex; + + namespace Rdma { + AsynchIO::AsynchIO( +@@ -55,7 +57,7 @@ namespace Rdma { + idleCallback(ic), + fullCallback(fc), + errorCallback(ec), +- pendingWriteAction(boost::bind(&AsynchIO::doWriteCallback, this)) ++ pendingWriteAction(boost::bind(&AsynchIO::writeEvent, this)) + { + qp->nonblocking(); + qp->notifyRecv(); +@@ -74,7 +76,7 @@ namespace Rdma { + QPID_LOG(error, "RDMA: qp=" << qp << ": Deleting queue before all write buffers finished"); + + // Turn off callbacks if necessary (before doing the deletes) +- if (state.get() != STOPPED) { ++ if (state != STOPPED) { + QPID_LOG(error, "RDMA: qp=" << qp << ": Deleting queue whilst not shutdown"); + dataHandle.stopWatch(); + } +@@ -89,6 +91,7 @@ namespace Rdma { + + // Mark for deletion/Delete this object when we have no outstanding writes + void AsynchIO::stop(NotifyCallback nc) { ++ ScopedLock l(stateLock); + state = STOPPED; + notifyCallback = nc; + dataHandle.call(boost::bind(&AsynchIO::doStoppedCallback, this)); +@@ -140,15 +143,64 @@ namespace Rdma { + } + + void AsynchIO::notifyPendingWrite() { +- dataHandle.call(pendingWriteAction); ++ ScopedLock l(stateLock); ++ switch (state) { ++ case IDLE: ++ dataHandle.call(pendingWriteAction); ++ break; ++ case NOTIFY: ++ state = NOTIFY_PENDING; ++ break; ++ case NOTIFY_PENDING: ++ case STOPPED: ++ break; ++ } + } + + void AsynchIO::dataEvent() { +- if (state.get() == STOPPED) return; ++ { ++ ScopedLock l(stateLock); ++ ++ if (state == STOPPED) return; + ++ state = NOTIFY_PENDING; ++ } + processCompletions(); + +- doWriteCallback(); ++ writeEvent(); ++ } ++ ++ void AsynchIO::writeEvent() { ++ State newState; ++ do { ++ { ++ ScopedLock l(stateLock); ++ ++ switch (state) { ++ case STOPPED: ++ return; ++ default: ++ state = NOTIFY; ++ } ++ } ++ ++ doWriteCallback(); ++ ++ { ++ ScopedLock l(stateLock); ++ ++ newState = state; ++ switch (newState) { ++ case NOTIFY_PENDING: ++ state = NOTIFY; ++ break; ++ case STOPPED: ++ break; ++ default: ++ state = IDLE; ++ } ++ } ++ } while (newState == NOTIFY_PENDING); + } + + void AsynchIO::processCompletions() { +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 62779e4..70c1a2a 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -26,6 +26,7 @@ + #include "qpid/sys/AtomicValue.h" + #include "qpid/sys/Dispatcher.h" + #include "qpid/sys/DispatchHandle.h" ++#include "qpid/sys/Mutex.h" + #include "qpid/sys/SocketAddress.h" + + #include +@@ -51,8 +52,9 @@ namespace Rdma { + int xmitBufferCount; + int outstandingWrites; + bool draining; +- enum State {IDLE, STOPPED}; +- qpid::sys::AtomicValue state; ++ enum State {IDLE, NOTIFY, NOTIFY_PENDING, STOPPED}; ++ State state; ++ qpid::sys::Mutex stateLock; + QueuePair::intrusive_ptr qp; + qpid::sys::DispatchHandleRef dataHandle; + +@@ -101,6 +103,7 @@ namespace Rdma { + const static int IgnoreData = 0x10000000; // Message contains no application data + + void dataEvent(); ++ void writeEvent(); + void processCompletions(); + void doWriteCallback(); + void checkDrained(); +-- +1.5.5.6 + +From cd741d36a720110bcbf8488140c6a4f243301aca Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Tue, 12 Oct 2010 16:34:31 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Add state constraint annotations to Rdma::AsynchIO; + Simplify state machine slightly + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1021831 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 18 ++++++++++++++---- + 1 files changed, 14 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 1caa9b7..bddb0f8 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -89,6 +89,9 @@ namespace Rdma { + dataHandle.startWatch(poller); + } + ++ // State constraints ++ // On entry: None ++ // On exit: STOPPED + // Mark for deletion/Delete this object when we have no outstanding writes + void AsynchIO::stop(NotifyCallback nc) { + ScopedLock l(stateLock); +@@ -142,12 +145,15 @@ namespace Rdma { + } + } + ++ // State constraints ++ // On entry: None ++ // On exit: NOTIFY_PENDING || STOPPED + void AsynchIO::notifyPendingWrite() { + ScopedLock l(stateLock); + switch (state) { + case IDLE: + dataHandle.call(pendingWriteAction); +- break; ++ // Fall Thru + case NOTIFY: + state = NOTIFY_PENDING; + break; +@@ -157,6 +163,9 @@ namespace Rdma { + } + } + ++ // State constraints ++ // On entry: IDLE || STOPPED ++ // On exit: IDLE || STOPPED + void AsynchIO::dataEvent() { + { + ScopedLock l(stateLock); +@@ -170,7 +179,10 @@ namespace Rdma { + writeEvent(); + } + +- void AsynchIO::writeEvent() { ++ // State constraints ++ // On entry: NOTIFY_PENDING || STOPPED ++ // On exit: IDLE || STOPPED ++ void AsynchIO::writeEvent() { + State newState; + do { + { +@@ -192,8 +204,6 @@ namespace Rdma { + newState = state; + switch (newState) { + case NOTIFY_PENDING: +- state = NOTIFY; +- break; + case STOPPED: + break; + default: +-- +1.5.5.6 + +From a6dde36b589cb41ce4ec7c77352b11fb34da3143 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:10:24 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Allow RdmaClient to be interrupted + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052318 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 8 ++++++-- + 1 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +index d33c609..579a1d0 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +@@ -21,6 +21,7 @@ + #include "qpid/sys/rdma/RdmaIO.h" + #include "qpid/sys/rdma/rdma_exception.h" + #include "qpid/sys/Time.h" ++#include "qpid/sys/Thread.h" + + #include + #include +@@ -39,6 +40,7 @@ using std::cerr; + using std::copy; + using std::rand; + ++using qpid::sys::Thread; + using qpid::sys::Poller; + using qpid::sys::Dispatcher; + using qpid::sys::SocketAddress; +@@ -173,7 +175,6 @@ int main(int argc, char* argv[]) { + + try { + boost::shared_ptr p(new Poller()); +- Dispatcher d(p); + + Rdma::Connector c( + Rdma::ConnectionParams(msgsize, Rdma::DEFAULT_WR_ENTRIES), +@@ -185,7 +186,10 @@ int main(int argc, char* argv[]) { + SocketAddress sa(host, port); + cout << "Connecting to: " << sa.asString() <<"\n"; + c.start(p, sa); +- d.run(); ++ ++ // The poller loop blocks all signals so run in its own thread ++ Thread t(*p); ++ t.join(); + } catch (Rdma::Exception& e) { + int err = e.getError(); + cerr << "Error: " << e.what() << "(" << err << ")\n"; +-- +1.5.5.6 + +From dda4e087ce76920307b11e44d5858ddc345d71c4 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:10:31 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Added test into RdmaClient to be sure the messages we receive are the + same as the message we sent. Use a pseudo random non-repetetive stream + as the message to be sure there is no reordering or repeating of messages. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052319 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 48 ++++++++++++++++++++++++----- + 1 files changed, 40 insertions(+), 8 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +index 579a1d0..651e389 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +@@ -64,13 +64,41 @@ AbsTime startTime; + Duration sendingDuration(TIME_INFINITE); + Duration fullTestDuration(TIME_INFINITE); + +-vector testString; ++// Random generator ++// This is an RNG designed by George Marsaglia see http://en.wikipedia.org/wiki/Xorshift ++class Xor128Generator { ++ uint32_t x; ++ uint32_t y; ++ uint32_t z; ++ uint32_t w; ++ ++public: ++ Xor128Generator() : ++ x(123456789),y(362436069),z(521288629),w(88675123) ++ {++(*this);} ++ ++ Xor128Generator& operator++() { ++ uint32_t t = x ^ (x << 11); ++ x = y; y = z; z = w; ++ w = w ^ (w >> 19) ^ t ^ (t >> 8); ++ return *this; ++ } ++ ++ uint32_t operator*() { ++ return w; ++ } ++}; ++ ++Xor128Generator output; ++Xor128Generator input; + + void write(Rdma::AsynchIO& aio) { + while (aio.writable() && aio.bufferAvailable() && smsgs < target) { + Rdma::Buffer* b = aio.getBuffer(); +- std::copy(testString.begin(), testString.end(), b->bytes()); + b->dataCount(msgsize); ++ uint32_t* ip = reinterpret_cast(b->bytes()); ++ uint32_t* lip = ip + b->dataCount() / sizeof(uint32_t); ++ while (ip != lip) {*ip++ = *output; ++output;} + aio.queueWrite(b); + ++smsgs; + sbytes += msgsize; +@@ -84,6 +112,16 @@ void dataError(Rdma::AsynchIO&) { + void data(Poller::shared_ptr p, Rdma::AsynchIO& aio, Rdma::Buffer* b) { + ++rmsgs; + rbytes += b->dataCount(); ++ ++ // Check message is unaltered ++ bool match = true; ++ uint32_t* ip = reinterpret_cast(b->bytes()); ++ uint32_t* lip = ip + b->dataCount() / sizeof(uint32_t); ++ while (ip != lip) { if (*ip++ != *input) {match = false; break;} ++input;} ++ if (!match) { ++ cout << "Data doesn't match: at msg " << rmsgs << " byte " << rbytes-b->dataCount() << " (ish)\n"; ++ exit(1); ++ } + + // When all messages have been recvd stop + if (rmsgs < target) { +@@ -167,12 +205,6 @@ int main(int argc, char* argv[]) { + msgsize = atoi(args[3].c_str()); + cout << "Message size: " << msgsize << "\n"; + +- // Make a random message of that size +- testString.resize(msgsize); +- for (int i = 0; i < msgsize; ++i) { +- testString[i] = 32 + (rand() & 0x3f); +- } +- + try { + boost::shared_ptr p(new Poller()); + +-- +1.5.5.6 + +From 1f393779756720c23cda4d3c432330d603962021 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:10:39 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Add code to switch on/off byteswapping of RDMA ConnectionParams + depending on detected protocol version. To give some backwards + compatibility and fix a previous error which sent connection params + in host order. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052320 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 64 +++++++++++++++++++++++++++------ + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 11 ++++-- + 2 files changed, 60 insertions(+), 15 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index bddb0f8..b356a48 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -22,7 +22,6 @@ + + #include "qpid/log/Statement.h" + +- + #include + #include + +@@ -33,6 +32,43 @@ using qpid::sys::ScopedLock; + using qpid::sys::Mutex; + + namespace Rdma { ++ // Set packing as this is 'on the wire' structure ++# pragma pack(push, 1) ++ // Structure for Connection Parameters on the network ++ // ++ // The original version (now called 0) of these parameters had a couple of mistakes: ++ // * No way to version the protocol (need to introduce a new protocol for iWarp) ++ // * Used host order int32 (but only deployed on LE archs as far as we know) ++ // so effectively was LE on the wire which is the opposite of network order. ++ // ++ // Fortunately the values sent were sufficiently restricted that a 16 bit short could ++ // be carved out to indicate the protocol version as these bits were always sent as 0. ++ // ++ // So the current version of parameters uses the last 2 bytes to indicate the protocol ++ // version, if this is 0 then we interpret the rest of the struct without byte swapping ++ // to remain compatible with the previous protocol. ++ struct NConnectionParams { ++ uint32_t maxRecvBufferSize; ++ uint16_t initialXmitCredit; ++ uint16_t rdmaProtocolVersion; ++ ++ NConnectionParams(const ConnectionParams& c) : ++ maxRecvBufferSize(c.rdmaProtocolVersion ? htonl(c.maxRecvBufferSize) : c.maxRecvBufferSize), ++ initialXmitCredit(c.rdmaProtocolVersion ? htons(c.initialXmitCredit) : c.initialXmitCredit), ++ // 0 is the same with/without byteswapping! ++ rdmaProtocolVersion(htons(c.rdmaProtocolVersion)) ++ {} ++ ++ operator ConnectionParams() const { ++ return ++ ConnectionParams( ++ rdmaProtocolVersion ? ntohl(maxRecvBufferSize) : maxRecvBufferSize, ++ rdmaProtocolVersion ? ntohs(initialXmitCredit) : initialXmitCredit, ++ ntohs(rdmaProtocolVersion)); ++ } ++ }; ++# pragma pack(pop) ++ + AsynchIO::AsynchIO( + QueuePair::intrusive_ptr q, + int size, +@@ -454,11 +490,13 @@ namespace Rdma { + switch (eventType) { + case RDMA_CM_EVENT_CONNECT_REQUEST: { + // Make sure peer has sent params we can use +- if (!conn_param.private_data || conn_param.private_data_len < sizeof(ConnectionParams)) { ++ if (!conn_param.private_data || conn_param.private_data_len < sizeof(NConnectionParams)) { + id->reject(); + break; +- } +- ConnectionParams cp = *static_cast(conn_param.private_data); ++ } ++ ++ const NConnectionParams* rcp = static_cast(conn_param.private_data); ++ ConnectionParams cp = *rcp; + + // Reject if requested msg size is bigger than we allow + if (cp.maxRecvBufferSize > checkConnectionParams.maxRecvBufferSize) { +@@ -473,7 +511,7 @@ namespace Rdma { + if (accept) { + // Accept connection + cp.initialXmitCredit = checkConnectionParams.initialXmitCredit; +- id->accept(conn_param, &cp); ++ id->accept(conn_param, rcp); + } else { + // Reject connection + id->reject(); +@@ -536,10 +574,12 @@ namespace Rdma { + // RESOLVE_ADDR + errorCallback(ci, ADDR_ERROR); + break; +- case RDMA_CM_EVENT_ROUTE_RESOLVED: ++ case RDMA_CM_EVENT_ROUTE_RESOLVED: { + // RESOLVE_ROUTE: +- ci->connect(&connectionParams); ++ NConnectionParams rcp(connectionParams); ++ ci->connect(&rcp); + break; ++ } + case RDMA_CM_EVENT_ROUTE_ERROR: + // RESOLVE_ROUTE: + errorCallback(ci, ROUTE_ERROR); +@@ -555,16 +595,18 @@ namespace Rdma { + case RDMA_CM_EVENT_REJECTED: { + // CONNECTING + // Extract private data from event +- assert(conn_param.private_data && conn_param.private_data_len >= sizeof(ConnectionParams)); +- ConnectionParams cp = *static_cast(conn_param.private_data); ++ assert(conn_param.private_data && conn_param.private_data_len >= sizeof(NConnectionParams)); ++ const NConnectionParams* rcp = static_cast(conn_param.private_data); ++ ConnectionParams cp = *rcp; + rejectedCallback(ci, cp); + break; + } + case RDMA_CM_EVENT_ESTABLISHED: { + // CONNECTING + // Extract private data from event +- assert(conn_param.private_data && conn_param.private_data_len >= sizeof(ConnectionParams)); +- ConnectionParams cp = *static_cast(conn_param.private_data); ++ assert(conn_param.private_data && conn_param.private_data_len >= sizeof(NConnectionParams)); ++ const NConnectionParams* rcp = static_cast(conn_param.private_data); ++ ConnectionParams cp = *rcp; + connectedCallback(ci, cp); + break; + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 70c1a2a..d8b37d5 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -143,12 +143,15 @@ namespace Rdma { + // * Each peer HAS to allocate buffers of the size of the maximum receive from its peer + // * Each peer HAS to know the initial "credit" it has for transmitting to its peer + struct ConnectionParams { +- int maxRecvBufferSize; +- int initialXmitCredit ; ++ uint32_t maxRecvBufferSize; ++ uint16_t initialXmitCredit; ++ uint16_t rdmaProtocolVersion; + +- ConnectionParams(int s, int c) : ++ // Default to protocol version 0 ++ ConnectionParams(uint32_t s, uint16_t c, uint16_t v = 0) : + maxRecvBufferSize(s), +- initialXmitCredit(c) ++ initialXmitCredit(c), ++ rdmaProtocolVersion(v) + {} + }; + +-- +1.5.5.6 + +From d82b49404e81dbdc1dff6790db7130e194763995 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:10:46 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Add in some useful rdma warnings when we reject a connection + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052321 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 11 ++++++++++- + 1 files changed, 10 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index b356a48..26f7807 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -491,6 +491,7 @@ namespace Rdma { + case RDMA_CM_EVENT_CONNECT_REQUEST: { + // Make sure peer has sent params we can use + if (!conn_param.private_data || conn_param.private_data_len < sizeof(NConnectionParams)) { ++ QPID_LOG(warning, "Rdma: rejecting connection attempt: unusable connection parameters"); + id->reject(); + break; + } +@@ -499,7 +500,14 @@ namespace Rdma { + ConnectionParams cp = *rcp; + + // Reject if requested msg size is bigger than we allow +- if (cp.maxRecvBufferSize > checkConnectionParams.maxRecvBufferSize) { ++ if ( ++ cp.maxRecvBufferSize > checkConnectionParams.maxRecvBufferSize || ++ cp.initialXmitCredit > checkConnectionParams.initialXmitCredit ++ ) { ++ QPID_LOG(warning, "Rdma: rejecting connection attempt: connection parameters out of range: (" ++ << cp.maxRecvBufferSize << ">" << checkConnectionParams.maxRecvBufferSize << " || " ++ << cp.initialXmitCredit << ">" << checkConnectionParams.initialXmitCredit ++ << ")"); + id->reject(&checkConnectionParams); + break; + } +@@ -514,6 +522,7 @@ namespace Rdma { + id->accept(conn_param, rcp); + } else { + // Reject connection ++ QPID_LOG(warning, "Rdma: rejecting connection attempt: application policy"); + id->reject(); + } + break; +-- +1.5.5.6 + +From b82a04adf96acfc726f08e453b365c40eaa791b1 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:08:48 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Plumb rdma protocol version into Rdma::AsynchIO + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052323 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 1 + + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 1 + + qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 1 + + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 2 ++ + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 2 ++ + qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp | 1 + + 6 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 79f86d0..313a99d 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -196,6 +196,7 @@ void RdmaConnector::connected(Poller::shared_ptr poller, Rdma::Connection::intru + Rdma::QueuePair::intrusive_ptr q = ci->getQueuePair(); + + aio = new Rdma::AsynchIO(ci->getQueuePair(), ++ cp.rdmaProtocolVersion, + cp.maxRecvBufferSize, cp.initialXmitCredit , Rdma::DEFAULT_WR_ENTRIES, + boost::bind(&RdmaConnector::readbuff, this, _1, _2), + boost::bind(&RdmaConnector::writebuff, this, _1), +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index b03f623..984f4da 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -301,6 +301,7 @@ bool RdmaIOProtocolFactory::request(Rdma::Connection::intrusive_ptr ci, const Rd + RdmaIOHandler* async = new RdmaIOHandler(ci, f); + Rdma::AsynchIO* aio = + new Rdma::AsynchIO(ci->getQueuePair(), ++ cp.rdmaProtocolVersion, + cp.maxRecvBufferSize, cp.initialXmitCredit, Rdma::DEFAULT_WR_ENTRIES, + boost::bind(&RdmaIOHandler::readbuff, async, _1, _2), + boost::bind(&RdmaIOHandler::idle, async, _1), +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +index 651e389..67c672f 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +@@ -164,6 +164,7 @@ void connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr& ci, c + Rdma::QueuePair::intrusive_ptr q = ci->getQueuePair(); + + Rdma::AsynchIO* aio = new Rdma::AsynchIO(ci->getQueuePair(), ++ cp.rdmaProtocolVersion, + cp.maxRecvBufferSize, cp.initialXmitCredit , Rdma::DEFAULT_WR_ENTRIES, + boost::bind(&data, poller, _1, _2), + boost::bind(&idle, poller, _1), +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 26f7807..8895446 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -71,6 +71,7 @@ namespace Rdma { + + AsynchIO::AsynchIO( + QueuePair::intrusive_ptr q, ++ int version, + int size, + int xCredit, + int rCount, +@@ -79,6 +80,7 @@ namespace Rdma { + FullCallback fc, + ErrorCallback ec + ) : ++ protocolVersion(version), + bufferSize(size), + recvCredit(0), + xmitCredit(xCredit), +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index d8b37d5..7a72feb 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -45,6 +45,7 @@ namespace Rdma { + typedef boost::function2 FullCallback; + typedef boost::function1 NotifyCallback; + ++ int protocolVersion; + int bufferSize; + int recvCredit; + int xmitCredit; +@@ -73,6 +74,7 @@ namespace Rdma { + // locked memory + AsynchIO( + QueuePair::intrusive_ptr q, ++ int version, + int size, + int xCredit, + int rCount, +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +index a23f919..d924c38 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +@@ -145,6 +145,7 @@ bool connectionRequest(Rdma::Connection::intrusive_ptr& ci, const Rdma::Connect + ConRec* cr = new ConRec(ci); + Rdma::AsynchIO* aio = + new Rdma::AsynchIO(ci->getQueuePair(), ++ cp.rdmaProtocolVersion, + cp.maxRecvBufferSize, cp.initialXmitCredit, Rdma::DEFAULT_WR_ENTRIES, + boost::bind(data, cr, _1, _2), + boost::bind(idle, cr, _1), +-- +1.5.5.6 + +From 887c34851c9b8c6150ce9b07678b9a6d549f605e Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:11:02 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Reject attempts to connect with version of rdma protocol we don't understand + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052324 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 16 +++++++++++++++- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 2 ++ + 2 files changed, 17 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 8895446..b47165a 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -22,7 +22,7 @@ + + #include "qpid/log/Statement.h" + +-#include ++#include + #include + + using qpid::sys::SocketAddress; +@@ -69,6 +69,18 @@ namespace Rdma { + }; + # pragma pack(pop) + ++ class IOException : public std::exception { ++ std::string s; ++ ++ public: ++ IOException(std::string s0): s(s0) {} ++ ~IOException() throw() {} ++ ++ const char* what() const throw() { ++ return s.c_str(); ++ } ++ }; ++ + AsynchIO::AsynchIO( + QueuePair::intrusive_ptr q, + int version, +@@ -97,6 +109,8 @@ namespace Rdma { + errorCallback(ec), + pendingWriteAction(boost::bind(&AsynchIO::writeEvent, this)) + { ++ if (protocolVersion > maxSupportedProtocolVersion) ++ throw IOException("Unsupported Rdma Protocol"); + qp->nonblocking(); + qp->notifyRecv(); + qp->notifySend(); +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 7a72feb..3a543e8 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -98,6 +98,8 @@ namespace Rdma { + void returnBuffer(Buffer*); + + private: ++ const static int maxSupportedProtocolVersion = 0; ++ + // Constants for the peer-peer command messages + // These are sent in the high bits if the imm data of an rdma message + // The low bits are used to send the credit +-- +1.5.5.6 + +From 4015306df401a6cc7a711f60ef6b4020fa10846a Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:11:09 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Factored rdma sending/receiving code out to make manipulating + credit isolated + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052325 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 61 ++++++++++++++++++++------------ + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 5 ++- + 2 files changed, 42 insertions(+), 24 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index b47165a..e082fdc 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -172,18 +172,45 @@ namespace Rdma { + notifyCallback = nc; + } + ++ void AsynchIO::queueBuffer(Buffer* buff, int credit) { ++ if (!buff) { ++ Buffer* ob = getBuffer(); ++ // Have to send something as adapters hate it when you try to transfer 0 bytes ++ *reinterpret_cast< uint32_t* >(ob->bytes()) = htonl(credit); ++ ob->dataCount(sizeof(uint32_t)); ++ qp->postSend(credit | IgnoreData, ob); ++ } else if (credit > 0) { ++ qp->postSend(credit, buff); ++ } else { ++ qp->postSend(buff); ++ } ++ } ++ ++ Buffer* AsynchIO::extractBuffer(const QueuePairEvent& e) { ++ // Get our xmitCredit if it was sent ++ bool dataPresent = true; ++ if (e.immPresent() ) { ++ assert(xmitCredit>=0); ++ xmitCredit += (e.getImm() & ~FlagsMask); ++ dataPresent = ((e.getImm() & IgnoreData) == 0); ++ assert(xmitCredit>0); ++ } ++ ++ Buffer* b = e.getBuffer(); ++ if (!dataPresent) { ++ b->dataCount(0); ++ } ++ return b; ++ } ++ + void AsynchIO::queueWrite(Buffer* buff) { + // Make sure we don't overrun our available buffers + // either at our end or the known available at the peers end + if (writable()) { + // TODO: We might want to batch up sending credit +- if (recvCredit > 0) { +- int creditSent = recvCredit & ~FlagsMask; +- qp->postSend(creditSent, buff); +- recvCredit -= creditSent; +- } else { +- qp->postSend(buff); +- } ++ int creditSent = recvCredit & ~FlagsMask; ++ queueBuffer(buff, creditSent); ++ recvCredit -= creditSent; + ++outstandingWrites; + --xmitCredit; + assert(xmitCredit>=0); +@@ -315,22 +342,14 @@ namespace Rdma { + + // Test if recv (or recv with imm) + //::ibv_wc_opcode eventType = e.getEventType(); +- Buffer* b = e.getBuffer(); + QueueDirection dir = e.getDirection(); + if (dir == RECV) { + ++recvEvents; + +- // Get our xmitCredit if it was sent +- bool dataPresent = true; +- if (e.immPresent() ) { +- assert(xmitCredit>=0); +- xmitCredit += (e.getImm() & ~FlagsMask); +- dataPresent = ((e.getImm() & IgnoreData) == 0); +- assert(xmitCredit>0); +- } ++ Buffer* b = extractBuffer(e); + + // if there was no data sent then the message was only to update our credit +- if ( dataPresent ) { ++ if ( b->dataCount() > 0 ) { + readCallback(*this, b); + } + +@@ -347,13 +366,8 @@ namespace Rdma { + // but this is a little unlikely, as to get in this state we have to have received messages without sending any + // for a while so its likely we've received an credit update from the far side. + if (writable()) { +- Buffer* ob = getBuffer(); +- // Have to send something as adapters hate it when you try to transfer 0 bytes +- *reinterpret_cast< uint32_t* >(ob->bytes()) = htonl(recvCredit); +- ob->dataCount(sizeof(uint32_t)); +- + int creditSent = recvCredit & ~FlagsMask; +- qp->postSend(creditSent | IgnoreData, ob); ++ queueBuffer(0, creditSent); + recvCredit -= creditSent; + ++outstandingWrites; + --xmitCredit; +@@ -363,6 +377,7 @@ namespace Rdma { + } + } + } else { ++ Buffer* b = e.getBuffer(); + ++sendEvents; + returnBuffer(b); + --outstandingWrites; +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 3a543e8..d5da9ee 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -103,7 +103,7 @@ namespace Rdma { + // Constants for the peer-peer command messages + // These are sent in the high bits if the imm data of an rdma message + // The low bits are used to send the credit +- const static int FlagsMask = 0x10000000; // Mask for all flag bits - be sure to update this if you add more command bits ++ const static int FlagsMask = 0xF0000000; // Mask for all flag bits - be sure to update this if you add more command bits + const static int IgnoreData = 0x10000000; // Message contains no application data + + void dataEvent(); +@@ -112,6 +112,9 @@ namespace Rdma { + void doWriteCallback(); + void checkDrained(); + void doStoppedCallback(); ++ ++ void queueBuffer(Buffer* buff, int credit); ++ Buffer* extractBuffer(const QueuePairEvent& e); + }; + + // We're only writable if: +-- +1.5.5.6 + +From 790f31ec0dd51bcab8e49db5420c992cdbb54bae Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:09:12 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Allow for the case where we get an rdma reject because there is no one listening + on the resolved address + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052326 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 18 ++++++++++++++---- + 1 files changed, 14 insertions(+), 4 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index e082fdc..b5cedf3 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -634,10 +634,20 @@ namespace Rdma { + break; + case RDMA_CM_EVENT_REJECTED: { + // CONNECTING +- // Extract private data from event +- assert(conn_param.private_data && conn_param.private_data_len >= sizeof(NConnectionParams)); +- const NConnectionParams* rcp = static_cast(conn_param.private_data); +- ConnectionParams cp = *rcp; ++ ++ // We can get this event if our peer is not running on the other side ++ // in this case we could get nearly anything in the private data: ++ // From private_data == 0 && private_data_len == 0 (Chelsio iWarp) ++ // to 148 bytes of zeros (Mellanox IB) ++ // ++ // So assume that if the the private data is absent or not the size of ++ // the connection parameters it isn't valid ++ ConnectionParams cp(0, 0, 0); ++ if (conn_param.private_data && conn_param.private_data_len == sizeof(NConnectionParams)) { ++ // Extract private data from event ++ const NConnectionParams* rcp = static_cast(conn_param.private_data); ++ cp = *rcp; ++ } + rejectedCallback(ci, cp); + break; + } +-- +1.5.5.6 + +From d3d77e9c37e7c04cd235bdf43c104f9dd1d01ee7 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:11:24 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Fix error handling for ibv_post_send() & ibv_port_recv() + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052327 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index 510291f..31db390 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -277,7 +277,7 @@ namespace Rdma { + rwr.num_sge = 1; + + ::ibv_recv_wr* badrwr = 0; +- CHECK_IBV(::ibv_post_recv(qp.get(), &rwr, &badrwr)); ++ CHECK(::ibv_post_recv(qp.get(), &rwr, &badrwr)); + if (badrwr) + throw std::logic_error("ibv_post_recv(): Bad rwr"); + } +@@ -292,7 +292,7 @@ namespace Rdma { + swr.num_sge = 1; + + ::ibv_send_wr* badswr = 0; +- CHECK_IBV(::ibv_post_send(qp.get(), &swr, &badswr)); ++ CHECK(::ibv_post_send(qp.get(), &swr, &badswr)); + if (badswr) + throw std::logic_error("ibv_post_send(): Bad swr"); + } +@@ -308,7 +308,7 @@ namespace Rdma { + swr.num_sge = 1; + + ::ibv_send_wr* badswr = 0; +- CHECK_IBV(::ibv_post_send(qp.get(), &swr, &badswr)); ++ CHECK(::ibv_post_send(qp.get(), &swr, &badswr)); + if (badswr) + throw std::logic_error("ibv_post_send(): Bad swr"); + } +-- +1.5.5.6 + +From 2a22ec0d71739aea410d9bb89b26ef3808b86274 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:11:31 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Reduce rdma scatter gathers allocated per queue pair to 1 as iWarp + only supports 1 sge. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052328 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 7 +++++-- + 1 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index 31db390..8d5545b 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -119,13 +119,16 @@ namespace Rdma { + scq->cq_context = this; + rcq->cq_context = this; + ++ ::ibv_device_attr dev_attr; ++ CHECK(::ibv_query_device(i->verbs, &dev_attr)); ++ + ::ibv_qp_init_attr qp_attr = {}; + + // TODO: make a default struct for this + qp_attr.cap.max_send_wr = DEFAULT_WR_ENTRIES; +- qp_attr.cap.max_send_sge = 4; ++ qp_attr.cap.max_send_sge = 1; + qp_attr.cap.max_recv_wr = DEFAULT_WR_ENTRIES; +- qp_attr.cap.max_recv_sge = 4; ++ qp_attr.cap.max_recv_sge = 1; + + qp_attr.send_cq = scq.get(); + qp_attr.recv_cq = rcq.get(); +-- +1.5.5.6 + +From 0417c7268d61bd30787bfd1eb83effda13149a43 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:11:39 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Implementation for v1 rdma protocol - append sent credit and flags word + after sent frame (instead of sending it in immediate data). + +Small change to send buffer management to support this to 0 dataCount +when returning buffers. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052329 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 3 + + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 93 ++++++++++++++++++++++------- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 6 +- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 1 + + 4 files changed, 77 insertions(+), 26 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 984f4da..0e92210 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -298,6 +298,9 @@ void RdmaIOProtocolFactory::established(Poller::shared_ptr poller, Rdma::Connect + bool RdmaIOProtocolFactory::request(Rdma::Connection::intrusive_ptr ci, const Rdma::ConnectionParams& cp, + ConnectionCodec::Factory* f) { + try { ++ if (cp.rdmaProtocolVersion == 0) { ++ QPID_LOG(warning, "Rdma: connection from protocol version 0 client"); ++ } + RdmaIOHandler* async = new RdmaIOHandler(ci, f); + Rdma::AsynchIO* aio = + new Rdma::AsynchIO(ci->getQueuePair(), +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index b5cedf3..74cecef 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -32,8 +32,30 @@ using qpid::sys::ScopedLock; + using qpid::sys::Mutex; + + namespace Rdma { +- // Set packing as this is 'on the wire' structure ++ // Set packing as these are 'on the wire' structures + # pragma pack(push, 1) ++ ++ // Header structure for each transmitted frame ++ struct FrameHeader { ++ const static uint32_t FlagsMask = 0xf0000000; ++ uint32_t data; // written in network order ++ ++ FrameHeader() {} ++ FrameHeader(uint32_t credit, uint32_t flags = 0) { ++ data = htonl((credit & ~FlagsMask) | (flags & FlagsMask)); ++ } ++ ++ uint32_t credit() const { ++ return ntohl(data) & ~FlagsMask; ++ } ++ ++ uint32_t flags() const { ++ return ntohl(data) & FlagsMask; ++ } ++ }; ++ ++ const size_t FrameHeaderSize = sizeof(FrameHeader); ++ + // Structure for Connection Parameters on the network + // + // The original version (now called 0) of these parameters had a couple of mistakes: +@@ -116,10 +138,10 @@ namespace Rdma { + qp->notifySend(); + + // Prepost recv buffers before we go any further +- qp->allocateRecvBuffers(recvBufferCount, bufferSize); ++ qp->allocateRecvBuffers(recvBufferCount, bufferSize+FrameHeaderSize); + + // Create xmit buffers +- qp->createSendBuffers(xmitBufferCount, bufferSize); ++ qp->createSendBuffers(xmitBufferCount, bufferSize+FrameHeaderSize); + } + + AsynchIO::~AsynchIO() { +@@ -173,33 +195,58 @@ namespace Rdma { + } + + void AsynchIO::queueBuffer(Buffer* buff, int credit) { +- if (!buff) { +- Buffer* ob = getBuffer(); +- // Have to send something as adapters hate it when you try to transfer 0 bytes +- *reinterpret_cast< uint32_t* >(ob->bytes()) = htonl(credit); +- ob->dataCount(sizeof(uint32_t)); +- qp->postSend(credit | IgnoreData, ob); +- } else if (credit > 0) { +- qp->postSend(credit, buff); +- } else { +- qp->postSend(buff); ++ switch (protocolVersion) { ++ case 0: ++ if (!buff) { ++ Buffer* ob = getBuffer(); ++ // Have to send something as adapters hate it when you try to transfer 0 bytes ++ *reinterpret_cast< uint32_t* >(ob->bytes()) = htonl(credit); ++ ob->dataCount(sizeof(uint32_t)); ++ qp->postSend(credit | IgnoreData, ob); ++ } else if (credit > 0) { ++ qp->postSend(credit, buff); ++ } else { ++ qp->postSend(buff); ++ } ++ break; ++ case 1: ++ Buffer* ob = buff ? buff : getBuffer(); ++ // Add FrameHeader after frame data ++ FrameHeader header(credit); ++ ::memcpy(ob->bytes()+ob->dataCount(), &header, FrameHeaderSize); ++ ob->dataCount(ob->dataCount()+FrameHeaderSize); ++ qp->postSend(ob); ++ break; + } + } + + Buffer* AsynchIO::extractBuffer(const QueuePairEvent& e) { +- // Get our xmitCredit if it was sent +- bool dataPresent = true; +- if (e.immPresent() ) { ++ Buffer* b = e.getBuffer(); ++ switch (protocolVersion) { ++ case 0: { ++ bool dataPresent = true; ++ // Get our xmitCredit if it was sent ++ if (e.immPresent() ) { ++ assert(xmitCredit>=0); ++ xmitCredit += (e.getImm() & ~FlagsMask); ++ dataPresent = ((e.getImm() & IgnoreData) == 0); ++ assert(xmitCredit>0); ++ } ++ if (!dataPresent) { ++ b->dataCount(0); ++ } ++ break; ++ } ++ case 1: ++ b->dataCount(b->dataCount()-FrameHeaderSize); ++ FrameHeader header; ++ ::memcpy(&header, b->bytes()+b->dataCount(), FrameHeaderSize); + assert(xmitCredit>=0); +- xmitCredit += (e.getImm() & ~FlagsMask); +- dataPresent = ((e.getImm() & IgnoreData) == 0); +- assert(xmitCredit>0); ++ xmitCredit += header.credit(); ++ assert(xmitCredit>=0); ++ break; + } + +- Buffer* b = e.getBuffer(); +- if (!dataPresent) { +- b->dataCount(0); +- } + return b; + } + +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index d5da9ee..adf2754 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -98,7 +98,7 @@ namespace Rdma { + void returnBuffer(Buffer*); + + private: +- const static int maxSupportedProtocolVersion = 0; ++ const static int maxSupportedProtocolVersion = 1; + + // Constants for the peer-peer command messages + // These are sent in the high bits if the imm data of an rdma message +@@ -154,8 +154,8 @@ namespace Rdma { + uint16_t initialXmitCredit; + uint16_t rdmaProtocolVersion; + +- // Default to protocol version 0 +- ConnectionParams(uint32_t s, uint16_t c, uint16_t v = 0) : ++ // Default to protocol version 1 ++ ConnectionParams(uint32_t s, uint16_t c, uint16_t v = 1) : + maxRecvBufferSize(s), + initialXmitCredit(c), + rdmaProtocolVersion(v) +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index 8d5545b..ec6e6c6 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -187,6 +187,7 @@ namespace Rdma { + assert(!freeBuffers.empty()); + Buffer* b = &sendBuffers[freeBuffers.back()]; + freeBuffers.pop_back(); ++ b->dataCount(0); + return b; + } + +-- +1.5.5.6 + +From 4a511e364ec8ab5c35241feab2ec177a118f9e3a Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:11:48 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Changes due to review comments from Doug Ledford: + - Removed lock unsafe operation Rdma::QueuePair::bufferAvailable() + and replaced the unavailable case with failing getBuffer(). + - Improved asserts in the Rdma::QueuePair::getBuffer() code. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052330 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 14 ++++++++------ + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 17 +++++++++++------ + qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 3 ++- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 5 ----- + qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp | 12 ++++++++---- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 11 +++++------ + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 3 --- + 7 files changed, 34 insertions(+), 31 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index 313a99d..e08ced0 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -349,14 +349,16 @@ void RdmaConnector::send(AMQFrame& frame) { + void RdmaConnector::writebuff(Rdma::AsynchIO&) { + // It's possible to be disconnected and be writable + Mutex::ScopedLock l(dataConnectedLock); +- if (!dataConnected) ++ if (!dataConnected) { + return; +- ++ } + Codec* codec = securityLayer.get() ? (Codec*) securityLayer.get() : (Codec*) this; +- if (codec->canEncode()) { +- Rdma::Buffer* buffer = aio->getBuffer(); ++ if (!codec->canEncode()) { ++ return; ++ } ++ Rdma::Buffer* buffer = aio->getBuffer(); ++ if (buffer) { + size_t encoded = codec->encode(buffer->bytes(), buffer->byteCount()); +- + buffer->dataCount(encoded); + aio->queueWrite(buffer); + } +@@ -366,7 +368,7 @@ bool RdmaConnector::canEncode() + { + Mutex::ScopedLock l(lock); + //have at least one full frameset or a whole buffers worth of data +- return aio->writable() && aio->bufferAvailable() && (lastEof || currentSize >= maxFrameSize); ++ return aio->writable() && (lastEof || currentSize >= maxFrameSize); + } + + size_t RdmaConnector::encode(const char* buffer, size_t size) +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 0e92210..c2ea815 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -117,6 +117,7 @@ void RdmaIOHandler::write(const framing::ProtocolInitiation& data) + { + QPID_LOG(debug, "Rdma: SENT [" << identifier << "] INIT(" << data << ")"); + Rdma::Buffer* buff = aio->getBuffer(); ++ assert(buff); + framing::Buffer out(buff->bytes(), buff->byteCount()); + data.encode(out); + buff->dataCount(data.encodedSize()); +@@ -138,25 +139,29 @@ void RdmaIOHandler::activateOutput() { + void RdmaIOHandler::idle(Rdma::AsynchIO&) { + // TODO: Shouldn't need this test as idle() should only ever be called when + // the connection is writable anyway +- if ( !(aio->writable() && aio->bufferAvailable()) ) { ++ if ( !aio->writable() ) { + return; + } + if (codec == 0) return; +- if (codec->canEncode()) { +- Rdma::Buffer* buff = aio->getBuffer(); ++ if (!codec->canEncode()) { ++ return; ++ } ++ Rdma::Buffer* buff = aio->getBuffer(); ++ if (buff) { + size_t encoded=codec->encode(buff->bytes(), buff->byteCount()); + buff->dataCount(encoded); + aio->queueWrite(buff); ++ if (codec->isClosed()) { ++ close(); ++ } + } +- if (codec->isClosed()) +- close(); + } + + void RdmaIOHandler::initProtocolOut() { + // We mustn't have already started the conversation + // but we must be able to send + assert( codec == 0 ); +- assert( aio->writable() && aio->bufferAvailable() ); ++ assert( aio->writable() ); + codec = factory->create(*this, identifier, SecuritySettings()); + write(framing::ProtocolInitiation(codec->getVersion())); + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +index 67c672f..e53ebb0 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +@@ -93,8 +93,9 @@ Xor128Generator output; + Xor128Generator input; + + void write(Rdma::AsynchIO& aio) { +- while (aio.writable() && aio.bufferAvailable() && smsgs < target) { ++ while (aio.writable() && smsgs < target) { + Rdma::Buffer* b = aio.getBuffer(); ++ if (!b) break; + b->dataCount(msgsize); + uint32_t* ip = reinterpret_cast(b->bytes()); + uint32_t* lip = ip + b->dataCount() / sizeof(uint32_t); +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index adf2754..330c239 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -87,7 +87,6 @@ namespace Rdma { + + void start(qpid::sys::Poller::shared_ptr poller); + bool writable() const; +- bool bufferAvailable() const; + void queueWrite(Buffer* buff); + void notifyPendingWrite(); + void drainWriteQueue(NotifyCallback); +@@ -134,10 +133,6 @@ namespace Rdma { + return outstandingWrites; + } + +- inline bool AsynchIO::bufferAvailable() const { +- return qp->bufferAvailable(); +- } +- + inline Buffer* AsynchIO::getBuffer() { + return qp->getBuffer(); + } +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +index d924c38..33bb824 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +@@ -79,10 +79,11 @@ void dataError(Rdma::AsynchIO&) { + + void idle(ConRec* cr, Rdma::AsynchIO& a) { + // Need to make sure full is not called as it would reorder messages +- while (!cr->queuedWrites.empty() && a.writable() && a.bufferAvailable()) { ++ while (!cr->queuedWrites.empty() && a.writable()) { ++ Rdma::Buffer* rbuf = a.getBuffer(); ++ if (!rbuf) break; + Buffer* buf = cr->queuedWrites.front(); + cr->queuedWrites.pop(); +- Rdma::Buffer* rbuf = a.getBuffer(); + std::copy(buf->bytes(), buf->bytes()+buf->byteCount(), rbuf->bytes()); + rbuf->dataCount(buf->byteCount()); + delete buf; +@@ -92,8 +93,11 @@ void idle(ConRec* cr, Rdma::AsynchIO& a) { + + void data(ConRec* cr, Rdma::AsynchIO& a, Rdma::Buffer* b) { + // Echo data back +- if (cr->queuedWrites.empty() && a.writable() && a.bufferAvailable()) { +- Rdma::Buffer* buf = a.getBuffer(); ++ Rdma::Buffer* buf = 0; ++ if (cr->queuedWrites.empty() && a.writable()) { ++ buf = a.getBuffer(); ++ } ++ if (buf) { + std::copy(b->bytes(), b->bytes()+b->dataCount(), buf->bytes()); + buf->dataCount(b->dataCount()); + a.queueWrite(buf); +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index ec6e6c6..a51244a 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -184,9 +184,12 @@ namespace Rdma { + + Buffer* QueuePair::getBuffer() { + qpid::sys::ScopedLock l(bufferLock); +- assert(!freeBuffers.empty()); +- Buffer* b = &sendBuffers[freeBuffers.back()]; ++ if (freeBuffers.empty()) ++ return 0; ++ int i = freeBuffers.back(); + freeBuffers.pop_back(); ++ assert(i >= 0 && i < int(sendBuffers.size())); ++ Buffer* b = &sendBuffers[i]; + b->dataCount(0); + return b; + } +@@ -198,10 +201,6 @@ namespace Rdma { + freeBuffers.push_back(i); + } + +- bool QueuePair::bufferAvailable() const { +- return !freeBuffers.empty(); +- } +- + void QueuePair::allocateRecvBuffers(int recvBufferCount, int bufferSize) + { + assert(!rmr); +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index 1d72abc..a3cd584 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -144,9 +144,6 @@ namespace Rdma { + // Return buffer to pool after use + void returnBuffer(Buffer* b); + +- // Check whether any buffers are available +- bool bufferAvailable() const; +- + // Create and post recv buffers + void allocateRecvBuffers(int recvBufferCount, int bufferSize); + +-- +1.5.5.6 + +From 140d17ba7816cf5835d250d5b3df4eeac8f98f67 Mon Sep 17 00:00:00 2001 +From: Andrew Stitcher +Date: Thu, 23 Dec 2010 17:11:57 +0000 +Subject: [PATCH] Bug 484691 - Qpid RDMA support doesn't work with iWarp RNICs + Rename Rdma send buffer operations. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1052331 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/client/RdmaConnector.cpp | 4 ++-- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 4 ++-- + qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp | 4 ++-- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp | 10 +++++----- + qpid/cpp/src/qpid/sys/rdma/RdmaIO.h | 12 ++++++------ + qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp | 4 ++-- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp | 4 ++-- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 4 ++-- + 8 files changed, 23 insertions(+), 23 deletions(-) + +diff --git a/qpid/cpp/src/qpid/client/RdmaConnector.cpp b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +index e08ced0..6af6071 100644 +--- a/qpid/cpp/src/qpid/client/RdmaConnector.cpp ++++ b/qpid/cpp/src/qpid/client/RdmaConnector.cpp +@@ -356,7 +356,7 @@ void RdmaConnector::writebuff(Rdma::AsynchIO&) { + if (!codec->canEncode()) { + return; + } +- Rdma::Buffer* buffer = aio->getBuffer(); ++ Rdma::Buffer* buffer = aio->getSendBuffer(); + if (buffer) { + size_t encoded = codec->encode(buffer->bytes(), buffer->byteCount()); + buffer->dataCount(encoded); +@@ -415,7 +415,7 @@ size_t RdmaConnector::decode(const char* buffer, size_t size) + } + + void RdmaConnector::writeDataBlock(const AMQDataBlock& data) { +- Rdma::Buffer* buff = aio->getBuffer(); ++ Rdma::Buffer* buff = aio->getSendBuffer(); + framing::Buffer out(buff->bytes(), buff->byteCount()); + data.encode(out); + buff->dataCount(data.encodedSize()); +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index c2ea815..9eb2eb7 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -116,7 +116,7 @@ void RdmaIOHandler::start(Poller::shared_ptr poller) { + void RdmaIOHandler::write(const framing::ProtocolInitiation& data) + { + QPID_LOG(debug, "Rdma: SENT [" << identifier << "] INIT(" << data << ")"); +- Rdma::Buffer* buff = aio->getBuffer(); ++ Rdma::Buffer* buff = aio->getSendBuffer(); + assert(buff); + framing::Buffer out(buff->bytes(), buff->byteCount()); + data.encode(out); +@@ -146,7 +146,7 @@ void RdmaIOHandler::idle(Rdma::AsynchIO&) { + if (!codec->canEncode()) { + return; + } +- Rdma::Buffer* buff = aio->getBuffer(); ++ Rdma::Buffer* buff = aio->getSendBuffer(); + if (buff) { + size_t encoded=codec->encode(buff->bytes(), buff->byteCount()); + buff->dataCount(encoded); +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +index e53ebb0..38e9b59 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp +@@ -94,7 +94,7 @@ Xor128Generator input; + + void write(Rdma::AsynchIO& aio) { + while (aio.writable() && smsgs < target) { +- Rdma::Buffer* b = aio.getBuffer(); ++ Rdma::Buffer* b = aio.getSendBuffer(); + if (!b) break; + b->dataCount(msgsize); + uint32_t* ip = reinterpret_cast(b->bytes()); +@@ -143,7 +143,7 @@ void full(Rdma::AsynchIO& a, Rdma::Buffer* b) { + sbytes -= b->dataCount(); + + // Give buffer back +- a.returnBuffer(b); ++ a.returnSendBuffer(b); + } + + void idle(Poller::shared_ptr p, Rdma::AsynchIO& aio) { +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +index 74cecef..c80c94c 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp +@@ -198,7 +198,7 @@ namespace Rdma { + switch (protocolVersion) { + case 0: + if (!buff) { +- Buffer* ob = getBuffer(); ++ Buffer* ob = getSendBuffer(); + // Have to send something as adapters hate it when you try to transfer 0 bytes + *reinterpret_cast< uint32_t* >(ob->bytes()) = htonl(credit); + ob->dataCount(sizeof(uint32_t)); +@@ -210,7 +210,7 @@ namespace Rdma { + } + break; + case 1: +- Buffer* ob = buff ? buff : getBuffer(); ++ Buffer* ob = buff ? buff : getSendBuffer(); + // Add FrameHeader after frame data + FrameHeader header(credit); + ::memcpy(ob->bytes()+ob->dataCount(), &header, FrameHeaderSize); +@@ -266,7 +266,7 @@ namespace Rdma { + fullCallback(*this, buff); + } else { + QPID_LOG(error, "RDMA: qp=" << qp << ": Write queue full, but no callback, throwing buffer away"); +- returnBuffer(buff); ++ returnSendBuffer(buff); + } + } + } +@@ -375,7 +375,7 @@ namespace Rdma { + if (dir == SEND) { + Buffer* b = e.getBuffer(); + ++sendEvents; +- returnBuffer(b); ++ returnSendBuffer(b); + --outstandingWrites; + } else { + ++recvEvents; +@@ -426,7 +426,7 @@ namespace Rdma { + } else { + Buffer* b = e.getBuffer(); + ++sendEvents; +- returnBuffer(b); ++ returnSendBuffer(b); + --outstandingWrites; + } + } while (true); +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +index 330c239..ec9caaf 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h +@@ -93,8 +93,8 @@ namespace Rdma { + void stop(NotifyCallback); + void requestCallback(RequestCallback); + int incompletedWrites() const; +- Buffer* getBuffer(); +- void returnBuffer(Buffer*); ++ Buffer* getSendBuffer(); ++ void returnSendBuffer(Buffer*); + + private: + const static int maxSupportedProtocolVersion = 1; +@@ -133,12 +133,12 @@ namespace Rdma { + return outstandingWrites; + } + +- inline Buffer* AsynchIO::getBuffer() { +- return qp->getBuffer(); ++ inline Buffer* AsynchIO::getSendBuffer() { ++ return qp->getSendBuffer(); + } + +- inline void AsynchIO::returnBuffer(Buffer* b) { +- qp->returnBuffer(b); ++ inline void AsynchIO::returnSendBuffer(Buffer* b) { ++ qp->returnSendBuffer(b); + } + + // These are the parameters necessary to start the conversation +diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +index 33bb824..9b0710f 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp +@@ -80,7 +80,7 @@ void dataError(Rdma::AsynchIO&) { + void idle(ConRec* cr, Rdma::AsynchIO& a) { + // Need to make sure full is not called as it would reorder messages + while (!cr->queuedWrites.empty() && a.writable()) { +- Rdma::Buffer* rbuf = a.getBuffer(); ++ Rdma::Buffer* rbuf = a.getSendBuffer(); + if (!rbuf) break; + Buffer* buf = cr->queuedWrites.front(); + cr->queuedWrites.pop(); +@@ -95,7 +95,7 @@ void data(ConRec* cr, Rdma::AsynchIO& a, Rdma::Buffer* b) { + // Echo data back + Rdma::Buffer* buf = 0; + if (cr->queuedWrites.empty() && a.writable()) { +- buf = a.getBuffer(); ++ buf = a.getSendBuffer(); + } + if (buf) { + std::copy(b->bytes(), b->bytes()+b->dataCount(), buf->bytes()); +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +index a51244a..6d38c42 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.cpp +@@ -182,7 +182,7 @@ namespace Rdma { + } + } + +- Buffer* QueuePair::getBuffer() { ++ Buffer* QueuePair::getSendBuffer() { + qpid::sys::ScopedLock l(bufferLock); + if (freeBuffers.empty()) + return 0; +@@ -194,7 +194,7 @@ namespace Rdma { + return b; + } + +- void QueuePair::returnBuffer(Buffer* b) { ++ void QueuePair::returnSendBuffer(Buffer* b) { + qpid::sys::ScopedLock l(bufferLock); + int i = b - &sendBuffers[0]; + assert(i >= 0 && i < int(sendBuffers.size())); +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index a3cd584..59d8782 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -139,10 +139,10 @@ namespace Rdma { + void createSendBuffers(int sendBufferCount, int bufferSize); + + // Get a send buffer +- Buffer* getBuffer(); ++ Buffer* getSendBuffer(); + + // Return buffer to pool after use +- void returnBuffer(Buffer* b); ++ void returnSendBuffer(Buffer* b); + + // Create and post recv buffers + void allocateRecvBuffers(int recvBufferCount, int bufferSize); +-- +1.5.5.6 + +From 6f00fd4f526e6cfd43cd290940a9f36b54a61eb2 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Sun, 24 Oct 2010 00:12:47 +0000 +Subject: [PATCH] Bug 629892 - topic exchange exhibits poor performance for large number of bindings + +QPID-2897: modify TopicExchange for better performance with respect to large number of bindings. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1026715 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/broker/TopicExchange.cpp | 554 ++++++++++++++++++++++------ + qpid/cpp/src/qpid/broker/TopicExchange.h | 135 ++++++- + qpid/cpp/src/tests/TopicExchangeTest.cpp | 359 ++++++++++++++++-- + 3 files changed, 871 insertions(+), 177 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/TopicExchange.cpp b/qpid/cpp/src/qpid/broker/TopicExchange.cpp +index 7372e58..e9150ba 100644 +--- a/qpid/cpp/src/qpid/broker/TopicExchange.cpp ++++ b/qpid/cpp/src/qpid/broker/TopicExchange.cpp +@@ -37,7 +37,7 @@ namespace _qmf = qmf::org::apache::qpid::broker; + // - excessive string copying: should be 0 copy, match from original buffer. + // - match/lookup: use descision tree or other more efficient structure. + +-namespace ++namespace + { + const std::string qpidFedOp("qpid.fed.op"); + const std::string qpidFedTags("qpid.fed.tags"); +@@ -47,15 +47,81 @@ const std::string fedOpBind("B"); + const std::string fedOpUnbind("U"); + const std::string fedOpReorigin("R"); + const std::string fedOpHello("H"); ++ ++const std::string STAR("*"); ++const std::string HASH("#"); + } + ++// iterator for federation ReOrigin bind operation ++class TopicExchange::ReOriginIter : public TopicExchange::BindingNode::TreeIterator { ++public: ++ ReOriginIter() {}; ++ ~ReOriginIter() {}; ++ bool visit(BindingNode& node) { ++ if (node.bindings.fedBinding.hasLocal()) { ++ keys2prop.push_back(node.routePattern); ++ } ++ return true; ++ } ++ std::vector keys2prop; ++}; ++ ++ ++// match iterator used by route(): builds BindingList of all unique queues ++// that match the routing key. ++class TopicExchange::BindingsFinderIter : public TopicExchange::BindingNode::TreeIterator { ++public: ++ BindingsFinderIter(BindingList &bl) : b(bl) {}; ++ ~BindingsFinderIter() {}; ++ ++ BindingList& b; ++ std::set qSet; ++ ++ bool visit(BindingNode& node) { ++ ++ Binding::vector& qv(node.bindings.bindingVector); ++ for (Binding::vector::iterator j = qv.begin(); j != qv.end(); j++) { ++ // do not duplicate queues on the binding list ++ if (qSet.insert(j->get()->queue->getName()).second) { ++ b->push_back(*j); ++ } ++ } ++ return true; ++ } ++}; ++ ++ ++ ++// Iterator to visit all bindings until a given queue is found ++class TopicExchange::QueueFinderIter : public TopicExchange::BindingNode::TreeIterator { ++public: ++ QueueFinderIter(Queue::shared_ptr queue) : queue(queue), found(false) {}; ++ ~QueueFinderIter() {}; ++ bool visit(BindingNode& node) { ++ ++ Binding::vector& qv(node.bindings.bindingVector); ++ Binding::vector::iterator q; ++ for (q = qv.begin(); q != qv.end(); q++) { ++ if ((*q)->queue == queue) { ++ found = true; ++ return false; // search done ++ } ++ } ++ return true; // continue search ++ } ++ ++ Queue::shared_ptr queue; ++ bool found; ++}; ++ + +-namespace { + // Iterate over a string of '.'-separated tokens. +-struct TokenIterator { ++struct TopicExchange::TokenIterator { + typedef pair Token; + +- TokenIterator(const char* b, const char* e) : token(make_pair(b, find(b,e,'.'))), end(e) {} ++ TokenIterator(const char* b, const char* e) : end(e), token(make_pair(b, find(b,e,'.'))) {} ++ ++ TokenIterator(const string& key) : end(&key[0]+key.size()), token(make_pair(&key[0], find(&key[0],end,'.'))) {} + + bool finished() const { return !token.first; } + +@@ -68,23 +134,39 @@ struct TokenIterator { + } + } + ++ void pop(string &top) { ++ ptrdiff_t l = len(); ++ if (l) { ++ top.assign(token.first, l); ++ } else top.clear(); ++ next(); ++ } ++ + bool match1(char c) const { + return token.second==token.first+1 && *token.first == c; + } + +- bool match(const Token& token2) { ++ bool match(const Token& token2) const { + ptrdiff_t l=len(); + return l == token2.second-token2.first && + strncmp(token.first, token2.first, l) == 0; + } + ++ bool match(const string& str) const { ++ ptrdiff_t l=len(); ++ return l == ptrdiff_t(str.size()) && ++ str.compare(0, l, token.first, l) == 0; ++ } ++ + ptrdiff_t len() const { return token.second - token.first; } + +- Token token; ++ + const char* end; ++ Token token; + }; + +-class Normalizer : public TokenIterator { ++ ++class TopicExchange::Normalizer : public TopicExchange::TokenIterator { + public: + Normalizer(string& p) + : TokenIterator(&p[0], &p[0]+p.size()), pattern(p) +@@ -118,54 +200,7 @@ class Normalizer : public TokenIterator { + string& pattern; + }; + +-class Matcher { +- public: +- Matcher(const string& p, const string& k) +- : matched(), pattern(&p[0], &p[0]+p.size()), key(&k[0], &k[0]+k.size()) +- { matched = match(); } +- +- operator bool() const { return matched; } + +- private: +- Matcher(const char* bp, const char* ep, const char* bk, const char* ek) +- : matched(), pattern(bp,ep), key(bk,ek) { matched = match(); } +- +- bool match() { +- // Invariant: pattern and key match up to but excluding +- // pattern.token and key.token +- while (!pattern.finished() && !key.finished()) { +- if (pattern.match1('*') && !key.finished()) { +- pattern.next(); +- key.next(); +- } +- else if (pattern.match1('#')) { +- pattern.next(); +- if (pattern.finished()) return true; // Trailing # matches anything. +- while (!key.finished()) { +- if (Matcher(pattern.token.first, pattern.end, +- key.token.first, key.end)) +- return true; +- key.next(); +- } +- return false; +- } +- else if (pattern.len() == key.len() && +- equal(pattern.token.first,pattern.token.second,key.token.first)) { +- pattern.next(); +- key.next(); +- } +- else +- return false; +- } +- if (!pattern.finished() && pattern.match1('#')) +- pattern.next(); // Trailing # matches empty. +- return pattern.finished() && key.finished(); +- } +- +- bool matched; +- TokenIterator pattern, key; +-}; +-} + + // Convert sequences of * and # to a sequence of * followed by a single # + string TopicExchange::normalize(const string& pattern) { +@@ -174,12 +209,10 @@ string TopicExchange::normalize(const string& pattern) { + return normal; + } + +-bool TopicExchange::match(const string& pattern, const string& key) +-{ +- return Matcher(pattern, key); +-} + +-TopicExchange::TopicExchange(const string& _name, Manageable* _parent, Broker* b) : Exchange(_name, _parent, b) ++TopicExchange::TopicExchange(const string& _name, Manageable* _parent, Broker* b) ++ : Exchange(_name, _parent, b), ++ nBindings(0) + { + if (mgmtExchange != 0) + mgmtExchange->set_type (typeName); +@@ -187,7 +220,8 @@ TopicExchange::TopicExchange(const string& _name, Manageable* _parent, Broker* b + + TopicExchange::TopicExchange(const std::string& _name, bool _durable, + const FieldTable& _args, Manageable* _parent, Broker* b) : +- Exchange(_name, _durable, _args, _parent, b) ++ Exchange(_name, _durable, _args, _parent, b), ++ nBindings(0) + { + if (mgmtExchange != 0) + mgmtExchange->set_type (typeName); +@@ -199,22 +233,27 @@ bool TopicExchange::bind(Queue::shared_ptr queue, const string& routingKey, cons + string fedTags(args ? args->getAsString(qpidFedTags) : ""); + string fedOrigin(args ? args->getAsString(qpidFedOrigin) : ""); + bool propagate = false; +- bool reallyUnbind; + string routingPattern = normalize(routingKey); + + if (args == 0 || fedOp.empty() || fedOp == fedOpBind) { + RWlock::ScopedWlock l(lock); +- if (isBound(queue, routingPattern)) { +- // already bound, but may be from a different fedOrigin +- BoundKey& bk = bindings[routingPattern]; +- bk.fedBinding.addOrigin(fedOrigin); +- return false; +- } else { ++ BindingKey *bk = bindingTree.addBindingKey(routingPattern); ++ if (bk) { ++ Binding::vector& qv(bk->bindingVector); ++ Binding::vector::iterator q; ++ for (q = qv.begin(); q != qv.end(); q++) { ++ if ((*q)->queue == queue) { ++ // already bound, but may be from a different fedOrigin ++ bk->fedBinding.addOrigin(fedOrigin); ++ return false; ++ } ++ } ++ + Binding::shared_ptr binding (new Binding (routingPattern, queue, this, FieldTable(), fedOrigin)); + binding->startManagement(); +- BoundKey& bk = bindings[routingPattern]; +- bk.bindingVector.push_back(binding); +- propagate = bk.fedBinding.addOrigin(fedOrigin); ++ bk->bindingVector.push_back(binding); ++ nBindings++; ++ propagate = bk->fedBinding.addOrigin(fedOrigin); + if (mgmtExchange != 0) { + mgmtExchange->inc_bindingCount(); + } +@@ -222,11 +261,14 @@ bool TopicExchange::bind(Queue::shared_ptr queue, const string& routingKey, cons + << " (origin=" << fedOrigin << ")"); + } + } else if (fedOp == fedOpUnbind) { ++ bool reallyUnbind = false; + { + RWlock::ScopedWlock l(lock); +- BoundKey& bk = bindings[routingPattern]; +- propagate = bk.fedBinding.delOrigin(fedOrigin); +- reallyUnbind = bk.fedBinding.count() == 0; ++ BindingKey* bk = bindingTree.getBindingKey(routingPattern); ++ if (bk) { ++ propagate = bk->fedBinding.delOrigin(fedOrigin); ++ reallyUnbind = bk->fedBinding.count() == 0; ++ } + } + if (reallyUnbind) + unbind(queue, routingPattern, 0); +@@ -235,20 +277,14 @@ bool TopicExchange::bind(Queue::shared_ptr queue, const string& routingKey, cons + * while holding the lock. Then propagate once the lock is + * released + */ +- std::vector keys2prop; ++ ReOriginIter reOriginIter; + { +- RWlock::ScopedRlock l(lock); +- for (BindingMap::iterator iter = bindings.begin(); +- iter != bindings.end(); iter++) { +- const BoundKey& bk = iter->second; +- +- if (bk.fedBinding.hasLocal()) { +- keys2prop.push_back(iter->first); +- } +- } ++ RWlock::ScopedRlock l(lock); ++ bindingTree.iterateAll( reOriginIter ); + } /* lock dropped */ +- for (std::vector::const_iterator key = keys2prop.begin(); +- key != keys2prop.end(); key++) { ++ ++ for (std::vector::const_iterator key = reOriginIter.keys2prop.begin(); ++ key != reOriginIter.keys2prop.end(); key++) { + propagateFedOp( *key, string(), fedOpBind, string()); + } + } +@@ -262,11 +298,9 @@ bool TopicExchange::bind(Queue::shared_ptr queue, const string& routingKey, cons + bool TopicExchange::unbind(Queue::shared_ptr queue, const string& constRoutingKey, const FieldTable* /*args*/){ + RWlock::ScopedWlock l(lock); + string routingKey = normalize(constRoutingKey); +- +- BindingMap::iterator bi = bindings.find(routingKey); +- if (bi == bindings.end()) return false; +- BoundKey& bk = bi->second; +- Binding::vector& qv(bk.bindingVector); ++ BindingKey* bk = bindingTree.getBindingKey(routingKey); ++ if (!bk) return false; ++ Binding::vector& qv(bk->bindingVector); + bool propagate = false; + + Binding::vector::iterator q; +@@ -275,8 +309,12 @@ bool TopicExchange::unbind(Queue::shared_ptr queue, const string& constRoutingKe + break; + if(q == qv.end()) return false; + qv.erase(q); +- propagate = bk.fedBinding.delOrigin(); +- if(qv.empty()) bindings.erase(bi); ++ assert(nBindings > 0); ++ nBindings--; ++ propagate = bk->fedBinding.delOrigin(); ++ if(qv.empty()) { ++ bindingTree.removeBindingKey(routingKey); ++ } + if (mgmtExchange != 0) { + mgmtExchange->dec_bindingCount(); + } +@@ -289,9 +327,10 @@ bool TopicExchange::unbind(Queue::shared_ptr queue, const string& constRoutingKe + + bool TopicExchange::isBound(Queue::shared_ptr queue, const string& pattern) + { +- BindingMap::iterator bi = bindings.find(pattern); +- if (bi == bindings.end()) return false; +- Binding::vector& qv(bi->second.bindingVector); ++ // Note well: lock held by caller.... ++ BindingKey *bk = bindingTree.getBindingKey(pattern); // Exact match against binding pattern ++ if (!bk) return false; ++ Binding::vector& qv(bk->bindingVector); + Binding::vector::iterator q; + for (q = qv.begin(); q != qv.end(); q++) + if ((*q)->queue == queue) +@@ -301,22 +340,13 @@ bool TopicExchange::isBound(Queue::shared_ptr queue, const string& pattern) + + void TopicExchange::route(Deliverable& msg, const string& routingKey, const FieldTable* /*args*/) + { ++ // Note: PERFORMANCE CRITICAL!!! + BindingList b(new std::vector >); + PreRoute pr(msg, this); +- std::set qSet; ++ BindingsFinderIter bindingsFinder(b); + { + RWlock::ScopedRlock l(lock); +- for (BindingMap::iterator i = bindings.begin(); i != bindings.end(); ++i) { +- if (match(i->first, routingKey)) { +- Binding::vector& qv(i->second.bindingVector); +- for(Binding::vector::iterator j = qv.begin(); j != qv.end(); j++){ +- // do not duplicate queues on the binding list +- if (qSet.insert(j->get()->queue->getName()).second) { +- b->push_back(*j); +- } +- } +- } +- } ++ bindingTree.iterateMatch(routingKey, bindingsFinder); + } + doRoute(msg, b); + } +@@ -328,27 +358,311 @@ bool TopicExchange::isBound(Queue::shared_ptr queue, const string* const routing + string key(normalize(*routingKey)); + return isBound(queue, key); + } else if (!routingKey && !queue) { +- return bindings.size() > 0; ++ return nBindings > 0; + } else if (routingKey) { +- for (BindingMap::iterator i = bindings.begin(); i != bindings.end(); ++i) { +- if (match(i->first, *routingKey)) +- return true; +- } +- } else { +- for (BindingMap::iterator i = bindings.begin(); i != bindings.end(); ++i) { +- Binding::vector& qv(i->second.bindingVector); +- Binding::vector::iterator q; +- for (q = qv.begin(); q != qv.end(); q++) +- if ((*q)->queue == queue) +- return true; ++ if (bindingTree.getBindingKey(*routingKey)) { ++ return true; + } ++ } else { ++ QueueFinderIter queueFinder(queue); ++ bindingTree.iterateAll( queueFinder ); ++ return queueFinder.found; + } + return false; +- return queue && routingKey; + } + + TopicExchange::~TopicExchange() {} + + const std::string TopicExchange::typeName("topic"); + ++// ++// class BindingNode ++// ++ ++TopicExchange::BindingNode::~BindingNode() ++{ ++ childTokens.clear(); ++} ++ ++ ++// Add a binding pattern to the tree. Return a pointer to the binding key ++// of the node that matches the binding pattern. ++TopicExchange::BindingKey* ++TopicExchange::BindingNode::addBindingKey(const std::string& normalizedRoute) ++{ ++ TokenIterator bKey(normalizedRoute); ++ return addBindingKey(bKey, normalizedRoute); ++} ++ ++ ++// Return a pointer to the binding key of the leaf node that matches the binding pattern. ++TopicExchange::BindingKey* ++TopicExchange::BindingNode::getBindingKey(const std::string& normalizedRoute) ++{ ++ TokenIterator bKey(normalizedRoute); ++ return getBindingKey(bKey); ++} ++ ++ ++// Delete the binding associated with the given route. ++void TopicExchange::BindingNode::removeBindingKey(const std::string& normalizedRoute) ++{ ++ TokenIterator bKey2(normalizedRoute); ++ removeBindingKey(bKey2, normalizedRoute); ++} ++ ++// visit each node in the tree. Note: all nodes are visited, ++// even non-leaf nodes (i.e. nodes without any bindings) ++bool TopicExchange::BindingNode::iterateAll(TopicExchange::BindingNode::TreeIterator& iter) ++{ ++ if (!iter.visit(*this)) return false; ++ ++ if (starChild && !starChild->iterateAll(iter)) return false; ++ ++ if (hashChild && !hashChild->iterateAll(iter)) return false; ++ ++ for (ChildMap::iterator ptr = childTokens.begin(); ++ ptr != childTokens.end(); ptr++) { ++ ++ if (!ptr->second->iterateAll(iter)) return false; ++ } ++ ++ return true; ++} ++ ++// applies iter against only matching nodes until iter returns false ++// Note Well: the iter may match against the same node more than once ++// if # wildcards are present! ++bool TopicExchange::BindingNode::iterateMatch(const std::string& routingKey, TreeIterator& iter) ++{ ++ TopicExchange::TokenIterator rKey(routingKey); ++ return iterateMatch( rKey, iter ); ++} ++ ++ ++// recurse over binding using token iterator. ++// Note well: bkey is modified! ++TopicExchange::BindingKey* ++TopicExchange::BindingNode::addBindingKey(TokenIterator &bKey, ++ const string& fullPattern) ++{ ++ if (bKey.finished()) { ++ // this node's binding ++ if (routePattern.empty()) { ++ routePattern = fullPattern; ++ } else assert(routePattern == fullPattern); ++ ++ return &bindings; ++ ++ } else { ++ // pop the topmost token & recurse... ++ ++ if (bKey.match(STAR)) { ++ if (!starChild) { ++ starChild.reset(new StarNode()); ++ } ++ bKey.next(); ++ return starChild->addBindingKey(bKey, fullPattern); ++ ++ } else if (bKey.match(HASH)) { ++ if (!hashChild) { ++ hashChild.reset(new HashNode()); ++ } ++ bKey.next(); ++ return hashChild->addBindingKey(bKey, fullPattern); ++ ++ } else { ++ ChildMap::iterator ptr; ++ std::string next_token; ++ bKey.pop(next_token); ++ ptr = childTokens.find(next_token); ++ if (ptr != childTokens.end()) { ++ return ptr->second->addBindingKey(bKey, fullPattern); ++ } else { ++ BindingNode::shared_ptr child(new BindingNode(next_token)); ++ childTokens[next_token] = child; ++ return child->addBindingKey(bKey, fullPattern); ++ } ++ } ++ } ++} ++ ++ ++// Remove a binding pattern from the tree. Return true if the current ++// node becomes a leaf without any bindings (therefore can be deleted). ++// Note Well: modifies parameter bKey's value! ++bool ++TopicExchange::BindingNode::removeBindingKey(TokenIterator &bKey, ++ const string& fullPattern) ++{ ++ bool remove; ++ ++ if (!bKey.finished()) { ++ ++ if (bKey.match(STAR)) { ++ bKey.next(); ++ if (starChild) { ++ remove = starChild->removeBindingKey(bKey, fullPattern); ++ if (remove) { ++ starChild.reset(); ++ } ++ } ++ } else if (bKey.match(HASH)) { ++ bKey.next(); ++ if (hashChild) { ++ remove = hashChild->removeBindingKey(bKey, fullPattern); ++ if (remove) { ++ hashChild.reset(); ++ } ++ } ++ } else { ++ ChildMap::iterator ptr; ++ std::string next_token; ++ bKey.pop(next_token); ++ ptr = childTokens.find(next_token); ++ if (ptr != childTokens.end()) { ++ remove = ptr->second->removeBindingKey(bKey, fullPattern); ++ if (remove) { ++ childTokens.erase(ptr); ++ } ++ } ++ } ++ } ++ ++ // no bindings and no children == parent can delete this node. ++ return getChildCount() == 0 && bindings.bindingVector.empty(); ++} ++ ++ ++// find the binding key that matches the given binding pattern. ++// Note Well: modifies key parameter! ++TopicExchange::BindingKey* ++TopicExchange::BindingNode::getBindingKey(TokenIterator &key) ++{ ++ if (key.finished()) { ++ return &bindings; ++ } ++ ++ string next_token; ++ ++ key.pop(next_token); ++ ++ if (next_token == STAR) { ++ if (starChild) ++ return starChild->getBindingKey(key); ++ } else if (next_token == HASH) { ++ if (hashChild) ++ return hashChild->getBindingKey(key); ++ } else { ++ ChildMap::iterator ptr; ++ ptr = childTokens.find(next_token); ++ if (ptr != childTokens.end()) { ++ return ptr->second->getBindingKey(key); ++ } ++ } ++ ++ return 0; ++} ++ ++ ++ ++// iterate over all nodes that match the given key. Note well: the set of nodes ++// that are visited includes matching non-leaf nodes. ++// Note well: parameter key is modified! ++bool TopicExchange::BindingNode::iterateMatch(TokenIterator& key, TreeIterator& iter) ++{ ++ // invariant: key has matched all previous tokens up to this node. ++ if (key.finished()) { ++ // exact match this node: visit if bound ++ if (!bindings.bindingVector.empty()) ++ if (!iter.visit(*this)) return false; ++ } ++ ++ // check remaining key against children, even if empty. ++ return iterateMatchChildren(key, iter); ++} ++ ++ ++TopicExchange::StarNode::StarNode() ++ : BindingNode(STAR) {} ++ ++ ++// See iterateMatch() above. ++// Special case: this node must verify a token is available (match exactly one). ++bool TopicExchange::StarNode::iterateMatch(TokenIterator& key, TreeIterator& iter) ++{ ++ // must match one token: ++ if (key.finished()) ++ return true; // match failed, but continue iteration on siblings ++ ++ // pop the topmost token ++ key.next(); ++ ++ if (key.finished()) { ++ // exact match this node: visit if bound ++ if (!bindings.bindingVector.empty()) ++ if (!iter.visit(*this)) return false; ++ } ++ ++ return iterateMatchChildren(key, iter); ++} ++ ++ ++TopicExchange::HashNode::HashNode() ++ : BindingNode(HASH) {} ++ ++ ++// See iterateMatch() above. ++// Special case: can match zero or more tokens at the head of the key. ++bool TopicExchange::HashNode::iterateMatch(TokenIterator& key, TreeIterator& iter) ++{ ++ // consume each token and look for a match on the ++ // remaining key. ++ while (!key.finished()) { ++ if (!iterateMatchChildren(key, iter)) return false; ++ key.next(); ++ } ++ ++ if (!bindings.bindingVector.empty()) ++ return iter.visit(*this); ++ ++ return true; ++} ++ ++ ++// helper: iterate over current node's matching children ++bool ++TopicExchange::BindingNode::iterateMatchChildren(const TopicExchange::TokenIterator& key, ++ TopicExchange::BindingNode::TreeIterator& iter) ++{ ++ // always try glob - it can match empty keys ++ if (hashChild) { ++ TokenIterator tmp(key); ++ if (!hashChild->iterateMatch(tmp, iter)) ++ return false; ++ } ++ ++ if (!key.finished()) { ++ ++ if (starChild) { ++ TokenIterator tmp(key); ++ if (!starChild->iterateMatch(tmp, iter)) ++ return false; ++ } ++ ++ if (!childTokens.empty()) { ++ TokenIterator newKey(key); ++ std::string next_token; ++ newKey.pop(next_token); ++ ++ ChildMap::iterator ptr = childTokens.find(next_token); ++ if (ptr != childTokens.end()) { ++ return ptr->second->iterateMatch(newKey, iter); ++ } ++ } ++ } ++ ++ return true; ++} ++ + }} // namespace qpid::broker +diff --git a/qpid/cpp/src/qpid/broker/TopicExchange.h b/qpid/cpp/src/qpid/broker/TopicExchange.h +index 3bbf143..f5573b3 100644 +--- a/qpid/cpp/src/qpid/broker/TopicExchange.h ++++ b/qpid/cpp/src/qpid/broker/TopicExchange.h +@@ -7,9 +7,9 @@ + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at +- * ++ * + * http://www.apache.org/licenses/LICENSE-2.0 +- * ++ * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@@ -29,51 +29,152 @@ + #include "qpid/sys/Monitor.h" + #include "qpid/broker/Queue.h" + ++ + namespace qpid { + namespace broker { + + class TopicExchange : public virtual Exchange { +- struct BoundKey { ++ ++ struct TokenIterator; ++ class Normalizer; ++ ++ struct BindingKey { // binding for this node + Binding::vector bindingVector; + FedBinding fedBinding; + }; +- typedef std::map BindingMap; +- BindingMap bindings; +- qpid::sys::RWlock lock; + +- bool isBound(Queue::shared_ptr queue, const string& pattern); +- ++ // Binding database: ++ // The dotted form of a binding key is broken up and stored in a directed tree graph. ++ // Common binding prefix are merged. This allows the route match alogrithm to quickly ++ // isolate those sub-trees that match a given routingKey. ++ // For example, given the routes: ++ // a.b.c.<...> ++ // a.b.d.<...> ++ // a.x.y.<...> ++ // The resulting tree would be: ++ // a-->b-->c-->... ++ // | +-->d-->... ++ // +-->x-->y-->... ++ // ++ class BindingNode { ++ public: ++ ++ typedef boost::shared_ptr shared_ptr; ++ ++ // for database transversal (visit a node). ++ class TreeIterator { ++ public: ++ TreeIterator() {}; ++ virtual ~TreeIterator() {}; ++ virtual bool visit(BindingNode& node) = 0; ++ }; ++ ++ BindingNode() {}; ++ BindingNode(const std::string& token) : token(token) {}; ++ virtual ~BindingNode(); ++ ++ // add normalizedRoute to tree, return associated BindingKey ++ BindingKey* addBindingKey(const std::string& normalizedRoute); ++ ++ // return BindingKey associated with normalizedRoute ++ BindingKey* getBindingKey(const std::string& normalizedRoute); ++ ++ // remove BindingKey associated with normalizedRoute ++ void removeBindingKey(const std::string& normalizedRoute); ++ ++ // applies iter against each node in tree until iter returns false ++ bool iterateAll(TreeIterator& iter); ++ ++ // applies iter against only matching nodes until iter returns false ++ bool iterateMatch(const std::string& routingKey, TreeIterator& iter); ++ ++ std::string routePattern; // normalized binding that matches this node ++ BindingKey bindings; // for matches against this node ++ ++ protected: ++ ++ std::string token; // portion of pattern represented by this node ++ ++ // children ++ typedef std::map ChildMap; ++ ChildMap childTokens; ++ BindingNode::shared_ptr starChild; // "*" subtree ++ BindingNode::shared_ptr hashChild; // "#" subtree ++ ++ unsigned int getChildCount() { return childTokens.size() + ++ (starChild ? 1 : 0) + (hashChild ? 1 : 0); } ++ BindingKey* addBindingKey(TokenIterator& bKey, ++ const std::string& fullPattern); ++ bool removeBindingKey(TokenIterator& bKey, ++ const std::string& fullPattern); ++ BindingKey* getBindingKey(TokenIterator& bKey); ++ virtual bool iterateMatch(TokenIterator& rKey, TreeIterator& iter); ++ bool iterateMatchChildren(const TokenIterator& key, TreeIterator& iter); ++ }; ++ ++ // Special case: ("*" token) Node in the tree for a match exactly one wildcard ++ class StarNode : public BindingNode { ++ public: ++ StarNode(); ++ ~StarNode() {}; ++ ++ protected: ++ virtual bool iterateMatch(TokenIterator& key, TreeIterator& iter); ++ }; ++ ++ // Special case: ("#" token) Node in the tree for a match zero or more ++ class HashNode : public BindingNode { ++ public: ++ HashNode(); ++ ~HashNode() {}; ++ ++ protected: ++ virtual bool iterateMatch(TokenIterator& key, TreeIterator& iter); ++ }; ++ ++ BindingNode bindingTree; ++ unsigned long nBindings; ++ qpid::sys::RWlock lock; // protects bindingTree and nBindings ++ ++ bool isBound(Queue::shared_ptr queue, const std::string& pattern); ++ ++ class ReOriginIter; ++ class BindingsFinderIter; ++ class QueueFinderIter; ++ + public: + static const std::string typeName; + +- static QPID_BROKER_EXTERN bool match(const std::string& pattern, const std::string& topic); + static QPID_BROKER_EXTERN std::string normalize(const std::string& pattern); + +- QPID_BROKER_EXTERN TopicExchange(const string& name, ++ QPID_BROKER_EXTERN TopicExchange(const std::string& name, + management::Manageable* parent = 0, Broker* broker = 0); +- QPID_BROKER_EXTERN TopicExchange(const string& _name, +- bool _durable, ++ QPID_BROKER_EXTERN TopicExchange(const std::string& _name, ++ bool _durable, + const qpid::framing::FieldTable& _args, + management::Manageable* parent = 0, Broker* broker = 0); + +- virtual std::string getType() const { return typeName; } ++ virtual std::string getType() const { return typeName; } + + QPID_BROKER_EXTERN virtual bool bind(Queue::shared_ptr queue, +- const string& routingKey, ++ const std::string& routingKey, + const qpid::framing::FieldTable* args); + +- virtual bool unbind(Queue::shared_ptr queue, const string& routingKey, const qpid::framing::FieldTable* args); ++ virtual bool unbind(Queue::shared_ptr queue, const std::string& routingKey, const qpid::framing::FieldTable* args); + + QPID_BROKER_EXTERN virtual void route(Deliverable& msg, +- const string& routingKey, ++ const std::string& routingKey, + const qpid::framing::FieldTable* args); + + QPID_BROKER_EXTERN virtual bool isBound(Queue::shared_ptr queue, +- const string* const routingKey, ++ const std::string* const routingKey, + const qpid::framing::FieldTable* const args); + + QPID_BROKER_EXTERN virtual ~TopicExchange(); + virtual bool supportsDynamicBinding() { return true; } ++ ++ class TopicExchangeTester; ++ friend class TopicExchangeTester; + }; + + +diff --git a/qpid/cpp/src/tests/TopicExchangeTest.cpp b/qpid/cpp/src/tests/TopicExchangeTest.cpp +index c103620..ff8931f 100644 +--- a/qpid/cpp/src/tests/TopicExchangeTest.cpp ++++ b/qpid/cpp/src/tests/TopicExchangeTest.cpp +@@ -23,13 +23,121 @@ + using namespace qpid::broker; + using namespace std; + ++ + namespace qpid { ++namespace broker { ++ ++// Class for exercising the pattern match code in the TopicExchange ++class TopicExchange::TopicExchangeTester { ++ ++public: ++ typedef std::vector BindingVec; ++ ++private: ++ // binding node iterator that collects all routes that are bound ++ class TestFinder : public TopicExchange::BindingNode::TreeIterator { ++ public: ++ TestFinder(BindingVec& m) : bv(m) {}; ++ ~TestFinder() {}; ++ bool visit(BindingNode& node) { ++ if (!node.bindings.bindingVector.empty()) ++ bv.push_back(node.routePattern); ++ return true; ++ } ++ ++ BindingVec& bv; ++ }; ++ ++public: ++ TopicExchangeTester() {}; ++ ~TopicExchangeTester() {}; ++ bool addBindingKey(const std::string& bKey) { ++ string routingPattern = normalize(bKey); ++ BindingKey *bk = bindingTree.addBindingKey(routingPattern); ++ if (bk) { ++ // push a dummy binding to mark this node as "non-leaf" ++ bk->bindingVector.push_back(Binding::shared_ptr()); ++ return true; ++ } ++ return false; ++ } ++ ++ bool removeBindingKey(const std::string& bKey){ ++ string routingPattern = normalize(bKey); ++ BindingKey *bk = bindingTree.getBindingKey(routingPattern); ++ if (bk) { ++ bk->bindingVector.pop_back(); ++ if (bk->bindingVector.empty()) { ++ // no more bindings - remove this node ++ bindingTree.removeBindingKey(routingPattern); ++ } ++ return true; ++ } ++ return false; ++ } ++ ++ void findMatches(const std::string& rKey, BindingVec& matches) { ++ TestFinder testFinder(matches); ++ bindingTree.iterateMatch( rKey, testFinder ); ++ } ++ ++ void getAll(BindingVec& bindings) { ++ TestFinder testFinder(bindings); ++ bindingTree.iterateAll( testFinder ); ++ } ++ ++private: ++ TopicExchange::BindingNode bindingTree; ++}; ++} // namespace broker ++ ++ + namespace tests { + + QPID_AUTO_TEST_SUITE(TopicExchangeTestSuite) + + #define CHECK_NORMALIZED(expect, pattern) BOOST_CHECK_EQUAL(expect, TopicExchange::normalize(pattern)); + ++namespace { ++ // return the count of bindings that match 'pattern' ++ int match(TopicExchange::TopicExchangeTester &tt, ++ const std::string& pattern) ++ { ++ TopicExchange::TopicExchangeTester::BindingVec bv; ++ tt.findMatches(pattern, bv); ++ return int(bv.size()); ++ } ++ ++ // return true if expected contains exactly all bindings that match ++ // against pattern. ++ bool compare(TopicExchange::TopicExchangeTester& tt, ++ const std::string& pattern, ++ const TopicExchange::TopicExchangeTester::BindingVec& expected) ++ { ++ TopicExchange::TopicExchangeTester::BindingVec bv; ++ tt.findMatches(pattern, bv); ++ if (expected.size() != bv.size()) { ++ // std::cout << "match failed 1 f=[" << bv << "]" << std::endl; ++ // std::cout << "match failed 1 e=[" << expected << "]" << std::endl; ++ return false; ++ } ++ TopicExchange::TopicExchangeTester::BindingVec::const_iterator i; ++ for (i = expected.begin(); i != expected.end(); i++) { ++ TopicExchange::TopicExchangeTester::BindingVec::iterator j; ++ for (j = bv.begin(); j != bv.end(); j++) { ++ // std::cout << "matched [" << *j << "]" << std::endl; ++ if (*i == *j) break; ++ } ++ if (j == bv.end()) { ++ // std::cout << "match failed 2 [" << bv << "]" << std::endl; ++ return false; ++ } ++ } ++ return true; ++ } ++} ++ ++ + QPID_AUTO_TEST_CASE(testNormalize) + { + CHECK_NORMALIZED("", ""); +@@ -45,81 +153,252 @@ QPID_AUTO_TEST_CASE(testNormalize) + + QPID_AUTO_TEST_CASE(testPlain) + { ++ TopicExchange::TopicExchangeTester tt; + string pattern("ab.cd.e"); +- BOOST_CHECK(TopicExchange::match(pattern, "ab.cd.e")); +- BOOST_CHECK(!TopicExchange::match(pattern, "abx.cd.e")); +- BOOST_CHECK(!TopicExchange::match(pattern, "ab.cd")); +- BOOST_CHECK(!TopicExchange::match(pattern, "ab.cd..e.")); +- BOOST_CHECK(!TopicExchange::match(pattern, "ab.cd.e.")); +- BOOST_CHECK(!TopicExchange::match(pattern, ".ab.cd.e")); ++ ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "ab.cd.e")); ++ BOOST_CHECK_EQUAL(0, match(tt, "abx.cd.e")); ++ BOOST_CHECK_EQUAL(0, match(tt, "ab.cd")); ++ BOOST_CHECK_EQUAL(0, match(tt, "ab.cd..e.")); ++ BOOST_CHECK_EQUAL(0, match(tt, "ab.cd.e.")); ++ BOOST_CHECK_EQUAL(0, match(tt, ".ab.cd.e")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = ""; +- BOOST_CHECK(TopicExchange::match(pattern, "")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "."; +- BOOST_CHECK(TopicExchange::match(pattern, ".")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, ".")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + } + + + QPID_AUTO_TEST_CASE(testStar) + { ++ TopicExchange::TopicExchangeTester tt; + string pattern("a.*.b"); +- BOOST_CHECK(TopicExchange::match(pattern, "a.xx.b")); +- BOOST_CHECK(!TopicExchange::match(pattern, "a.b")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.xx.b")); ++ BOOST_CHECK_EQUAL(0, match(tt, "a.b")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "*.x"; +- BOOST_CHECK(TopicExchange::match(pattern, "y.x")); +- BOOST_CHECK(TopicExchange::match(pattern, ".x")); +- BOOST_CHECK(!TopicExchange::match(pattern, "x")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "y.x")); ++ BOOST_CHECK_EQUAL(1, match(tt, ".x")); ++ BOOST_CHECK_EQUAL(0, match(tt, "x")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "x.x.*"; +- BOOST_CHECK(TopicExchange::match(pattern, "x.x.y")); +- BOOST_CHECK(TopicExchange::match(pattern, "x.x.")); +- BOOST_CHECK(!TopicExchange::match(pattern, "x.x")); +- BOOST_CHECK(!TopicExchange::match(pattern, "q.x.y")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "x.x.y")); ++ BOOST_CHECK_EQUAL(1, match(tt, "x.x.")); ++ BOOST_CHECK_EQUAL(0, match(tt, "x.x")); ++ BOOST_CHECK_EQUAL(0, match(tt, "q.x.y")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + } + + QPID_AUTO_TEST_CASE(testHash) + { ++ TopicExchange::TopicExchangeTester tt; + string pattern("a.#.b"); +- BOOST_CHECK(TopicExchange::match(pattern, "a.b")); +- BOOST_CHECK(TopicExchange::match(pattern, "a.x.b")); +- BOOST_CHECK(TopicExchange::match(pattern, "a..x.y.zz.b")); +- BOOST_CHECK(!TopicExchange::match(pattern, "a.b.")); +- BOOST_CHECK(!TopicExchange::match(pattern, "q.x.b")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.b")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.x.b")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a..x.y.zz.b")); ++ BOOST_CHECK_EQUAL(0, match(tt, "a.b.")); ++ BOOST_CHECK_EQUAL(0, match(tt, "q.x.b")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "a.#"; +- BOOST_CHECK(TopicExchange::match(pattern, "a")); +- BOOST_CHECK(TopicExchange::match(pattern, "a.b")); +- BOOST_CHECK(TopicExchange::match(pattern, "a.b.c")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "a")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.b")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.b.c")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "#.a"; +- BOOST_CHECK(TopicExchange::match(pattern, "a")); +- BOOST_CHECK(TopicExchange::match(pattern, "x.y.a")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "a")); ++ BOOST_CHECK_EQUAL(1, match(tt, "x.y.a")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "a.#.b.#.c"; +- BOOST_CHECK(TopicExchange::match(pattern, "a.b.c")); +- BOOST_CHECK(TopicExchange::match(pattern, "a.x.b.y.c")); +- BOOST_CHECK(TopicExchange::match(pattern, "a.x.x.b.y.y.c")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.b.c")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.x.b.y.c")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.x.x.b.y.y.c")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + } + + QPID_AUTO_TEST_CASE(testMixed) + { ++ TopicExchange::TopicExchangeTester tt; + string pattern("*.x.#.y"); +- BOOST_CHECK(TopicExchange::match(pattern, "a.x.y")); +- BOOST_CHECK(TopicExchange::match(pattern, "a.x.p.qq.y")); +- BOOST_CHECK(!TopicExchange::match(pattern, "a.a.x.y")); +- BOOST_CHECK(!TopicExchange::match(pattern, "aa.x.b.c")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.x.y")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.x.p.qq.y")); ++ BOOST_CHECK_EQUAL(0, match(tt, "a.a.x.y")); ++ BOOST_CHECK_EQUAL(0, match(tt, "aa.x.b.c")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "a.#.b.*"; +- BOOST_CHECK(TopicExchange::match(pattern, "a.b.x")); +- BOOST_CHECK(TopicExchange::match(pattern, "a.x.x.x.b.x")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.b.x")); ++ BOOST_CHECK_EQUAL(1, match(tt, "a.x.x.x.b.x")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); + + pattern = "*.*.*.#"; +- BOOST_CHECK(TopicExchange::match(pattern, "x.y.z")); +- BOOST_CHECK(TopicExchange::match(pattern, "x.y.z.a.b.c")); +- BOOST_CHECK(!TopicExchange::match(pattern, "x.y")); +- BOOST_CHECK(!TopicExchange::match(pattern, "x")); ++ BOOST_CHECK(tt.addBindingKey(pattern)); ++ BOOST_CHECK_EQUAL(1, match(tt, "x.y.z")); ++ BOOST_CHECK_EQUAL(1, match(tt, "x.y.z.a.b.c")); ++ BOOST_CHECK_EQUAL(0, match(tt, "x.y")); ++ BOOST_CHECK_EQUAL(0, match(tt, "x")); ++ BOOST_CHECK(tt.removeBindingKey(pattern)); ++} ++ ++ ++QPID_AUTO_TEST_CASE(testMultiple) ++{ ++ TopicExchange::TopicExchangeTester tt; ++ const std::string bindings[] = ++ { "a", "b", ++ "a.b", "b.c", ++ "a.b.c.d", "b.c.d.e", ++ "a.*", "a.#", "a.*.#", ++ "#.b", "*.b", "*.#.b", ++ "a.*.b", "a.#.b", "a.*.#.b", ++ "*.b.*", "#.b.#", ++ }; ++ const size_t nBindings = sizeof(bindings)/sizeof(bindings[0]); ++ ++ // setup bindings ++ for (size_t idx = 0; idx < nBindings; idx++) { ++ BOOST_CHECK(tt.addBindingKey(bindings[idx])); ++ } ++ ++ { ++ // read all bindings, and verify all are present ++ TopicExchange::TopicExchangeTester::BindingVec b; ++ tt.getAll(b); ++ BOOST_CHECK_EQUAL(b.size(), nBindings); ++ for (size_t idx = 0; idx < nBindings; idx++) { ++ bool found = false; ++ for (TopicExchange::TopicExchangeTester::BindingVec::iterator i = b.begin(); ++ i != b.end(); i++) { ++ if (*i == bindings[idx]) { ++ found = true; ++ break; ++ } ++ } ++ BOOST_CHECK(found); ++ } ++ } ++ ++ { // test match on pattern "a" ++ const std::string matches[] = { "a", "a.#" }; ++ const size_t nMatches = 2; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "a", expected)); ++ } ++ ++ { // test match on pattern "a.z" ++ const std::string matches[] = { "a.*", "a.#", "a.*.#" }; ++ const size_t nMatches = 3; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "a.z", expected)); ++ } ++ ++ { // test match on pattern "a.b" ++ const std::string matches[] = { ++ "a.b", "a.*", "a.#", "a.*.#", ++ "#.b", "#.b.#", "*.#.b", "*.b", ++ "a.#.b" ++ }; ++ const size_t nMatches = 9; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "a.b", expected)); ++ } ++ ++ { // test match on pattern "a.c.c.b" ++ ++ const std::string matches[] = { ++ "#.b", "#.b.#", "*.#.b", "a.#.b", ++ "a.#", "a.*.#.b", "a.*.#" ++ }; ++ const size_t nMatches = 7; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "a.c.c.b", expected)); ++ } ++ ++ { // test match on pattern "a.b.c" ++ ++ const std::string matches[] = { ++ "#.b.#", "*.b.*", "a.#", "a.*.#" ++ }; ++ const size_t nMatches = 4; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "a.b.c", expected)); ++ } ++ ++ { // test match on pattern "b" ++ ++ const std::string matches[] = { ++ "#.b", "#.b.#", "b" ++ }; ++ const size_t nMatches = 3; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "b", expected)); ++ } ++ ++ { // test match on pattern "x.b" ++ ++ const std::string matches[] = { ++ "#.b", "#.b.#", "*.#.b", "*.b" ++ }; ++ const size_t nMatches = 4; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "x.b", expected)); ++ } ++ ++ { // test match on pattern "x.y.z.b" ++ ++ const std::string matches[] = { ++ "#.b", "#.b.#", "*.#.b" ++ }; ++ const size_t nMatches = 3; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "x.y.z.b", expected)); ++ } ++ ++ { // test match on pattern "x.y.z.b.a.b.c" ++ ++ const std::string matches[] = { ++ "#.b.#", "#.b.#" ++ }; ++ const size_t nMatches = 2; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "x.y.z.b.a.b.c", expected)); ++ } ++ ++ { // test match on pattern "a.b.c.d" ++ ++ const std::string matches[] = { ++ "#.b.#", "a.#", "a.*.#", "a.b.c.d", ++ }; ++ const size_t nMatches = 4; ++ TopicExchange::TopicExchangeTester::BindingVec expected(matches, matches + nMatches); ++ BOOST_CHECK(compare(tt, "a.b.c.d", expected)); ++ } ++ ++ // cleanup bindings ++ for (size_t idx = 0; idx < nBindings; idx++) { ++ BOOST_CHECK(tt.removeBindingKey(bindings[idx])); ++ } + } + + QPID_AUTO_TEST_SUITE_END() +-- +1.5.5.6 + +From 29dcc364d6a3ffdeb6974ef9e7e946901c63cfbc Mon Sep 17 00:00:00 2001 +From: Charles E. Rolke +Date: Tue, 26 Oct 2010 17:22:57 +0000 +Subject: [PATCH] Bug 629892 - topic exchange exhibits poor performance for large number of bindings + +QPID-2897 repair missing DLL import/export controls + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1027659 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 6ae14220b28c5b647118bba56a93af92f0f413a4) +--- + qpid/cpp/src/qpid/broker/TopicExchange.h | 14 +++++++------- + 1 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/TopicExchange.h b/qpid/cpp/src/qpid/broker/TopicExchange.h +index f5573b3..a6c457d 100644 +--- a/qpid/cpp/src/qpid/broker/TopicExchange.h ++++ b/qpid/cpp/src/qpid/broker/TopicExchange.h +@@ -71,22 +71,22 @@ class TopicExchange : public virtual Exchange { + + BindingNode() {}; + BindingNode(const std::string& token) : token(token) {}; +- virtual ~BindingNode(); ++ QPID_BROKER_EXTERN virtual ~BindingNode(); + + // add normalizedRoute to tree, return associated BindingKey +- BindingKey* addBindingKey(const std::string& normalizedRoute); ++ QPID_BROKER_EXTERN BindingKey* addBindingKey(const std::string& normalizedRoute); + + // return BindingKey associated with normalizedRoute +- BindingKey* getBindingKey(const std::string& normalizedRoute); ++ QPID_BROKER_EXTERN BindingKey* getBindingKey(const std::string& normalizedRoute); + + // remove BindingKey associated with normalizedRoute +- void removeBindingKey(const std::string& normalizedRoute); ++ QPID_BROKER_EXTERN void removeBindingKey(const std::string& normalizedRoute); + + // applies iter against each node in tree until iter returns false +- bool iterateAll(TreeIterator& iter); ++ QPID_BROKER_EXTERN bool iterateAll(TreeIterator& iter); + + // applies iter against only matching nodes until iter returns false +- bool iterateMatch(const std::string& routingKey, TreeIterator& iter); ++ QPID_BROKER_EXTERN bool iterateMatch(const std::string& routingKey, TreeIterator& iter); + + std::string routePattern; // normalized binding that matches this node + BindingKey bindings; // for matches against this node +@@ -108,7 +108,7 @@ class TopicExchange : public virtual Exchange { + bool removeBindingKey(TokenIterator& bKey, + const std::string& fullPattern); + BindingKey* getBindingKey(TokenIterator& bKey); +- virtual bool iterateMatch(TokenIterator& rKey, TreeIterator& iter); ++ QPID_BROKER_EXTERN virtual bool iterateMatch(TokenIterator& rKey, TreeIterator& iter); + bool iterateMatchChildren(const TokenIterator& key, TreeIterator& iter); + }; + +-- +1.5.5.6 + +From a92f03225fe8f9b2167f63e37466117d5f93f0e8 Mon Sep 17 00:00:00 2001 +From: Michael Goulish +Date: Wed, 20 Oct 2010 08:03:36 +0000 +Subject: [PATCH] Bug 500430 - Feature: Support SASL on inter-broker links + +SASLizing Interbroker Links +------------------------------------------------------------- + +1. Brokers already knew how to handle the server side of SASLized + links, but not the client side. So we promoted the client-side + SASL code from the client library to the common library so that + the broker could also use it. This affected SaslFactory.{h,cpp} + and Sasl.h + TODO -- can the server-side and client-side code be unified here? + +2. Some of the SASL verbs in broker/ConnectionHandler.cpp are + expanded: start, secure, tune. + +3. broker/SecureConnection is altered to get the client-broker and + the server-broker to agree on when the security layer should be + inserted. + +4. the python tool qpid-route is modified so that, in the "route add" + command, you can specify the security mechanism for SASL to use. + TODO -- should we also pass in {min,max}SSF ? + +5. Changes in broker/LinkRegistry to allow the information input by + qpid-route to be passed up to where it is needed. + +6. A bash script test run by "make check" that creates a SASLized + federation link and sends some messages down it. + TODO - write a python unit test instead of a bash script. I + think I uncovered a bug in the python code when I tried. + +7. NOTE - testing for this feature does not work with versions of + SASL earlier than 2.1.22, becuase I can't tell SASL to use a + SASL database file in a nonstandard location. The test is + disabled for earlier versions. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1024541 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/CMakeLists.txt | 2 +- + qpid/cpp/src/Makefile.am | 6 +- + qpid/cpp/src/qpid/Sasl.h | 60 ++++ + qpid/cpp/src/qpid/SaslFactory.cpp | 415 ++++++++++++++++++++++++ + qpid/cpp/src/qpid/SaslFactory.h | 47 +++ + qpid/cpp/src/qpid/broker/Connection.cpp | 32 ++ + qpid/cpp/src/qpid/broker/Connection.h | 4 + + qpid/cpp/src/qpid/broker/ConnectionHandler.cpp | 104 ++++++- + qpid/cpp/src/qpid/broker/ConnectionHandler.h | 15 + + qpid/cpp/src/qpid/broker/LinkRegistry.cpp | 36 ++ + qpid/cpp/src/qpid/broker/LinkRegistry.h | 4 + + qpid/cpp/src/qpid/broker/SecureConnection.cpp | 5 +- + qpid/cpp/src/qpid/broker/SecureConnection.h | 2 +- + qpid/cpp/src/qpid/client/ConnectionHandler.cpp | 10 +- + qpid/cpp/src/qpid/client/ConnectionHandler.h | 2 +- + qpid/cpp/src/qpid/client/Sasl.h | 64 ---- + qpid/cpp/src/qpid/client/SaslFactory.cpp | 385 ---------------------- + qpid/cpp/src/qpid/client/SaslFactory.h | 48 --- + qpid/cpp/src/tests/sasl_fed | 152 +++++++++ + 19 files changed, 879 insertions(+), 514 deletions(-) + create mode 100644 qpid/cpp/src/qpid/Sasl.h + create mode 100644 qpid/cpp/src/qpid/SaslFactory.cpp + create mode 100644 qpid/cpp/src/qpid/SaslFactory.h + delete mode 100644 qpid/cpp/src/qpid/client/Sasl.h + delete mode 100644 qpid/cpp/src/qpid/client/SaslFactory.cpp + delete mode 100644 qpid/cpp/src/qpid/client/SaslFactory.h + create mode 100755 qpid/cpp/src/tests/sasl_fed + +diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt +index 81ad66b..6f563ce 100644 +--- a/qpid/cpp/src/CMakeLists.txt ++++ b/qpid/cpp/src/CMakeLists.txt +@@ -717,7 +717,6 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows) + ) + + set (qpidclient_platform_SOURCES +- qpid/client/SaslFactory.cpp + ) + + set (qpidd_platform_SOURCES +@@ -740,6 +739,7 @@ set (qpidcommon_SOURCES + qpid/Options.cpp + qpid/Plugin.cpp + qpid/RefCountedBuffer.cpp ++ qpid/SaslFactory.cpp + qpid/SessionState.cpp + qpid/SessionId.cpp + qpid/StringUtils.cpp +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 5a9ca78..28f0f5c 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -331,6 +331,9 @@ libqpidcommon_la_SOURCES += \ + qpid/RefCounted.h \ + qpid/RefCountedBuffer.cpp \ + qpid/RefCountedBuffer.h \ ++ qpid/Sasl.h \ ++ qpid/SaslFactory.cpp \ ++ qpid/SaslFactory.h \ + qpid/Serializer.h \ + qpid/SessionId.cpp \ + qpid/SessionState.cpp \ +@@ -692,9 +695,6 @@ libqpidclient_la_SOURCES = \ + qpid/client/QueueOptions.cpp \ + qpid/client/Results.cpp \ + qpid/client/Results.h \ +- qpid/client/Sasl.h \ +- qpid/client/SaslFactory.cpp \ +- qpid/client/SaslFactory.h \ + qpid/client/SessionBase_0_10.cpp \ + qpid/client/SessionBase_0_10Access.h \ + qpid/client/SessionImpl.cpp \ +diff --git a/qpid/cpp/src/qpid/Sasl.h b/qpid/cpp/src/qpid/Sasl.h +new file mode 100644 +index 0000000..9a9d61b +--- /dev/null ++++ b/qpid/cpp/src/qpid/Sasl.h +@@ -0,0 +1,60 @@ ++#ifndef QPID_SASL_H ++#define QPID_SASL_H ++ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include ++#include ++#include "qpid/sys/IntegerTypes.h" ++ ++namespace qpid { ++ ++namespace sys { ++class SecurityLayer; ++struct SecuritySettings; ++} ++ ++/** ++ * Interface to SASL support. This class is implemented by platform-specific ++ * SASL providers. ++ */ ++class Sasl ++{ ++ public: ++ /** ++ * Start SASL negotiation with the broker. ++ * ++ * @param mechanisms Comma-separated list of the SASL mechanism the ++ * client supports. ++ * @param externalSecuritySettings security related details from the underlying transport ++ */ ++ virtual std::string start(const std::string& mechanisms, ++ const qpid::sys::SecuritySettings* externalSecuritySettings = 0) = 0; ++ virtual std::string step(const std::string& challenge) = 0; ++ virtual std::string getMechanism() = 0; ++ virtual std::string getUserId() = 0; ++ virtual std::auto_ptr getSecurityLayer(uint16_t maxFrameSize) = 0; ++ virtual ~Sasl() {} ++}; ++} // namespace qpid ++ ++#endif /*!QPID_SASL_H*/ +diff --git a/qpid/cpp/src/qpid/SaslFactory.cpp b/qpid/cpp/src/qpid/SaslFactory.cpp +new file mode 100644 +index 0000000..28c27f7 +--- /dev/null ++++ b/qpid/cpp/src/qpid/SaslFactory.cpp +@@ -0,0 +1,415 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++#include "qpid//SaslFactory.h" ++#include ++#include ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#ifndef HAVE_SASL ++ ++namespace qpid { ++ ++//Null implementation ++ ++SaslFactory::SaslFactory() {} ++ ++SaslFactory::~SaslFactory() {} ++ ++SaslFactory& SaslFactory::getInstance() ++{ ++ qpid::sys::Mutex::ScopedLock l(lock); ++ if (!instance.get()) { ++ instance = std::auto_ptr(new SaslFactory()); ++ } ++ return *instance; ++} ++ ++std::auto_ptr SaslFactory::create( const std::string &, const std::string &, const std::string &, const std::string &, int, int, bool ) ++{ ++ return std::auto_ptr(); ++} ++ ++qpid::sys::Mutex SaslFactory::lock; ++std::auto_ptr SaslFactory::instance; ++ ++} // namespace qpid ++ ++#else ++ ++#include "qpid/Exception.h" ++#include "qpid/framing/reply_exceptions.h" ++#include "qpid/sys/SecurityLayer.h" ++#include "qpid/sys/SecuritySettings.h" ++#include "qpid/sys/cyrus/CyrusSecurityLayer.h" ++#include "qpid/log/Statement.h" ++#include ++#include ++ ++namespace qpid { ++ ++using qpid::sys::SecurityLayer; ++using qpid::sys::SecuritySettings; ++using qpid::sys::cyrus::CyrusSecurityLayer; ++using qpid::framing::InternalErrorException; ++ ++const size_t MAX_LOGIN_LENGTH = 50; ++ ++struct CyrusSaslSettings ++{ ++ CyrusSaslSettings ( ) : ++ username ( std::string(0) ), ++ password ( std::string(0) ), ++ service ( std::string(0) ), ++ host ( std::string(0) ), ++ minSsf ( 0 ), ++ maxSsf ( 0 ) ++ { ++ } ++ ++ CyrusSaslSettings ( const std::string & user, const std::string & password, const std::string & service, const std::string & host, int minSsf, int maxSsf ) : ++ username(user), ++ password(password), ++ service(service), ++ host(host), ++ minSsf(minSsf), ++ maxSsf(maxSsf) ++ { ++ } ++ ++ std::string username, ++ password, ++ service, ++ host; ++ ++ int minSsf, ++ maxSsf; ++}; ++ ++ ++class CyrusSasl : public Sasl ++{ ++ public: ++ CyrusSasl(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf); ++ ~CyrusSasl(); ++ std::string start(const std::string& mechanisms, const SecuritySettings* externalSettings); ++ std::string step(const std::string& challenge); ++ std::string getMechanism(); ++ std::string getUserId(); ++ std::auto_ptr getSecurityLayer(uint16_t maxFrameSize); ++ private: ++ sasl_conn_t* conn; ++ sasl_callback_t callbacks[5];//realm, user, authname, password, end-of-list ++ CyrusSaslSettings settings; ++ std::string input; ++ std::string mechanism; ++ char login[MAX_LOGIN_LENGTH]; ++ ++ void interact(sasl_interact_t* client_interact); ++}; ++ ++//sasl callback functions ++int getUserFromSettings(void *context, int id, const char **result, unsigned *len); ++int getPasswordFromSettings(sasl_conn_t *conn, void *context, int id, sasl_secret_t **psecret); ++typedef int CallbackProc(); ++ ++qpid::sys::Mutex SaslFactory::lock; ++std::auto_ptr SaslFactory::instance; ++ ++SaslFactory::SaslFactory() ++{ ++ sasl_callback_t* callbacks = 0; ++ int result = sasl_client_init(callbacks); ++ if (result != SASL_OK) { ++ throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errstring(result, 0, 0))); ++ } ++} ++ ++SaslFactory::~SaslFactory() ++{ ++ sasl_done(); ++} ++ ++SaslFactory& SaslFactory::getInstance() ++{ ++ qpid::sys::Mutex::ScopedLock l(lock); ++ if (!instance.get()) { ++ instance = std::auto_ptr(new SaslFactory()); ++ } ++ return *instance; ++} ++ ++std::auto_ptr SaslFactory::create(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf) ++{ ++ std::auto_ptr sasl(new CyrusSasl(username, password, serviceName, hostName, minSsf, maxSsf)); ++ return sasl; ++} ++ ++CyrusSasl::CyrusSasl(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf) ++ : conn(0), settings(username, password, serviceName, hostName, minSsf, maxSsf) ++{ ++ size_t i = 0; ++ ++ callbacks[i].id = SASL_CB_GETREALM; ++ callbacks[i].proc = 0; ++ callbacks[i++].context = 0; ++ ++ if (!settings.username.empty()) { ++ callbacks[i].id = SASL_CB_AUTHNAME; ++ callbacks[i].proc = (CallbackProc*) &getUserFromSettings; ++ callbacks[i++].context = &settings; ++ } ++ ++ callbacks[i].id = SASL_CB_PASS; ++ if (settings.password.empty()) { ++ callbacks[i].proc = 0; ++ callbacks[i++].context = 0; ++ } else { ++ callbacks[i].proc = (CallbackProc*) &getPasswordFromSettings; ++ callbacks[i++].context = &settings; ++ } ++ ++ callbacks[i].id = SASL_CB_LIST_END; ++ callbacks[i].proc = 0; ++ callbacks[i++].context = 0; ++} ++ ++CyrusSasl::~CyrusSasl() ++{ ++ if (conn) { ++ sasl_dispose(&conn); ++ } ++} ++ ++namespace { ++ const std::string SSL("ssl"); ++} ++ ++std::string CyrusSasl::start(const std::string& mechanisms, const SecuritySettings* externalSettings) ++{ ++ QPID_LOG(debug, "CyrusSasl::start(" << mechanisms << ")"); ++ int result = sasl_client_new(settings.service.c_str(), ++ settings.host.c_str(), ++ 0, 0, /* Local and remote IP address strings */ ++ callbacks, ++ 0, /* security flags */ ++ &conn); ++ ++ if (result != SASL_OK) throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errdetail(conn))); ++ ++ sasl_security_properties_t secprops; ++ ++ if (externalSettings) { ++ sasl_ssf_t external_ssf = (sasl_ssf_t) externalSettings->ssf; ++ if (external_ssf) { ++ int result = sasl_setprop(conn, SASL_SSF_EXTERNAL, &external_ssf); ++ if (result != SASL_OK) { ++ throw framing::InternalErrorException(QPID_MSG("SASL error: unable to set external SSF: " << result)); ++ } ++ QPID_LOG(debug, "external SSF detected and set to " << external_ssf); ++ } ++ if (externalSettings->authid.size()) { ++ const char* external_authid = externalSettings->authid.c_str(); ++ result = sasl_setprop(conn, SASL_AUTH_EXTERNAL, external_authid); ++ if (result != SASL_OK) { ++ throw framing::InternalErrorException(QPID_MSG("SASL error: unable to set external auth: " << result)); ++ } ++ QPID_LOG(debug, "external auth detected and set to " << external_authid); ++ } ++ } ++ ++ secprops.min_ssf = settings.minSsf; ++ secprops.max_ssf = settings.maxSsf; ++ secprops.maxbufsize = 65535; ++ ++ QPID_LOG(debug, "min_ssf: " << secprops.min_ssf << ", max_ssf: " << secprops.max_ssf); ++ ++ secprops.property_names = 0; ++ secprops.property_values = 0; ++ secprops.security_flags = 0;//TODO: provide means for application to configure these ++ ++ result = sasl_setprop(conn, SASL_SEC_PROPS, &secprops); ++ if (result != SASL_OK) { ++ throw framing::InternalErrorException(QPID_MSG("SASL error: " << sasl_errdetail(conn))); ++ } ++ ++ sasl_interact_t* client_interact = 0; ++ const char *out = 0; ++ unsigned outlen = 0; ++ const char *chosenMechanism = 0; ++ ++ do { ++ result = sasl_client_start(conn, ++ mechanisms.c_str(), ++ &client_interact, ++ &out, ++ &outlen, ++ &chosenMechanism); ++ ++ if (result == SASL_INTERACT) { ++ interact(client_interact); ++ } ++ } while (result == SASL_INTERACT); ++ ++ if (result != SASL_CONTINUE && result != SASL_OK) { ++ throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errdetail(conn))); ++ } ++ ++ mechanism = std::string(chosenMechanism); ++ QPID_LOG(debug, "CyrusSasl::start(" << mechanisms << "): selected " ++ << mechanism << " response: '" << std::string(out, outlen) << "'"); ++ return std::string(out, outlen); ++} ++ ++std::string CyrusSasl::step(const std::string& challenge) ++{ ++ sasl_interact_t* client_interact = 0; ++ const char *out = 0; ++ unsigned outlen = 0; ++ int result = 0; ++ do { ++ result = sasl_client_step(conn, /* our context */ ++ challenge.data(), /* the data from the server */ ++ challenge.size(), /* it's length */ ++ &client_interact, /* this should be ++ unallocated and NULL */ ++ &out, /* filled in on success */ ++ &outlen); /* filled in on success */ ++ ++ if (result == SASL_INTERACT) { ++ interact(client_interact); ++ } ++ } while (result == SASL_INTERACT); ++ ++ std::string response; ++ if (result == SASL_CONTINUE || result == SASL_OK) response = std::string(out, outlen); ++ else if (result != SASL_OK) { ++ throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errdetail(conn))); ++ } ++ QPID_LOG(debug, "CyrusSasl::step(" << challenge << "): " << response); ++ return response; ++} ++ ++std::string CyrusSasl::getMechanism() ++{ ++ return mechanism; ++} ++ ++std::string CyrusSasl::getUserId() ++{ ++ int propResult; ++ const void* operName; ++ ++ propResult = sasl_getprop(conn, SASL_USERNAME, &operName); ++ if (propResult == SASL_OK) ++ return std::string((const char*) operName); ++ ++ return std::string(); ++} ++ ++void CyrusSasl::interact(sasl_interact_t* client_interact) ++{ ++ ++ if (client_interact->id == SASL_CB_PASS) { ++ char* password = getpass(client_interact->prompt); ++ input = std::string(password); ++ client_interact->result = input.data(); ++ client_interact->len = input.size(); ++ } else { ++ std::cout << client_interact->prompt; ++ if (client_interact->defresult) std::cout << " (" << client_interact->defresult << ")"; ++ std::cout << ": "; ++ if (std::cin >> input) { ++ client_interact->result = input.data(); ++ client_interact->len = input.size(); ++ } ++ } ++ ++} ++ ++std::auto_ptr CyrusSasl::getSecurityLayer(uint16_t maxFrameSize) ++{ ++ const void* value(0); ++ int result = sasl_getprop(conn, SASL_SSF, &value); ++ if (result != SASL_OK) { ++ throw framing::InternalErrorException(QPID_MSG("SASL error: " << sasl_errdetail(conn))); ++ } ++ uint ssf = *(reinterpret_cast(value)); ++ std::auto_ptr securityLayer; ++ if (ssf) { ++ QPID_LOG(info, "Installing security layer, SSF: "<< ssf); ++ securityLayer = std::auto_ptr(new CyrusSecurityLayer(conn, maxFrameSize)); ++ } ++ return securityLayer; ++} ++ ++int getUserFromSettings(void* context, int /*id*/, const char** result, unsigned* /*len*/) ++{ ++ if (context) { ++ *result = ((CyrusSaslSettings*) context)->username.c_str(); ++ QPID_LOG(debug, "getUserFromSettings(): " << (*result)); ++ return SASL_OK; ++ } else { ++ return SASL_FAIL; ++ } ++} ++ ++namespace { ++// Global map of secrets allocated for SASL connections via callback ++// to getPasswordFromSettings. Ensures secrets are freed. ++class SecretsMap { ++ typedef std::map Map; ++ Map map; ++ public: ++ void keep(sasl_conn_t* conn, void* secret) { ++ Map::iterator i = map.find(conn); ++ if (i != map.end()) free(i->second); ++ map[conn] = secret; ++ } ++ ++ ~SecretsMap() { ++ for (Map::iterator i = map.begin(); i != map.end(); ++i) ++ free(i->second); ++ } ++}; ++SecretsMap getPasswordFromSettingsSecrets; ++} ++ ++int getPasswordFromSettings(sasl_conn_t* conn, void* context, int /*id*/, sasl_secret_t** psecret) ++{ ++ if (context) { ++ size_t length = ((CyrusSaslSettings*) context)->password.size(); ++ sasl_secret_t* secret = (sasl_secret_t*) malloc(sizeof(sasl_secret_t) + length); ++ getPasswordFromSettingsSecrets.keep(conn, secret); ++ secret->len = length; ++ memcpy(secret->data, ((CyrusSaslSettings*) context)->password.data(), length); ++ *psecret = secret; ++ return SASL_OK; ++ } else { ++ return SASL_FAIL; ++ } ++} ++ ++} // namespace qpid ++ ++#endif +diff --git a/qpid/cpp/src/qpid/SaslFactory.h b/qpid/cpp/src/qpid/SaslFactory.h +new file mode 100644 +index 0000000..d9d83c4 +--- /dev/null ++++ b/qpid/cpp/src/qpid/SaslFactory.h +@@ -0,0 +1,47 @@ ++#ifndef QPID_SASLFACTORY_H ++#define QPID_SASLFACTORY_H ++ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++#include "qpid/Sasl.h" ++#include "qpid/sys/Mutex.h" ++#include ++ ++namespace qpid { ++ ++/** ++ * Factory for instances of the Sasl interface through which Sasl ++ * support is provided to a ConnectionHandler. ++ */ ++class SaslFactory ++{ ++ public: ++ std::auto_ptr create(const std::string & userName, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf ); ++ static SaslFactory& getInstance(); ++ ~SaslFactory(); ++ private: ++ SaslFactory(); ++ static qpid::sys::Mutex lock; ++ static std::auto_ptr instance; ++}; ++} // namespace qpid ++ ++#endif /*!QPID_SASLFACTORY_H*/ +diff --git a/qpid/cpp/src/qpid/broker/Connection.cpp b/qpid/cpp/src/qpid/broker/Connection.cpp +index bc755e3..c65b1b4 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.cpp ++++ b/qpid/cpp/src/qpid/broker/Connection.cpp +@@ -190,6 +190,38 @@ string Connection::getAuthMechanism() + return links.getAuthMechanism(mgmtId); + } + ++string Connection::getUsername ( ) ++{ ++ if (!isLink) ++ return string("anonymous"); ++ ++ return links.getUsername(mgmtId); ++} ++ ++string Connection::getPassword ( ) ++{ ++ if (!isLink) ++ return string(""); ++ ++ return links.getPassword(mgmtId); ++} ++ ++string Connection::getHost ( ) ++{ ++ if (!isLink) ++ return string(""); ++ ++ return links.getHost(mgmtId); ++} ++ ++uint16_t Connection::getPort ( ) ++{ ++ if (!isLink) ++ return 0; ++ ++ return links.getPort(mgmtId); ++} ++ + string Connection::getAuthCredentials() + { + if (!isLink) +diff --git a/qpid/cpp/src/qpid/broker/Connection.h b/qpid/cpp/src/qpid/broker/Connection.h +index 8ad78f6..3667f7d 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.h ++++ b/qpid/cpp/src/qpid/broker/Connection.h +@@ -115,6 +115,10 @@ class Connection : public sys::ConnectionInputHandler, + void recordFromClient (framing::AMQFrame& frame); + std::string getAuthMechanism(); + std::string getAuthCredentials(); ++ std::string getUsername(); ++ std::string getPassword(); ++ std::string getHost(); ++ uint16_t getPort(); + void notifyConnectionForced(const std::string& text); + void setUserId(const string& uid); + void raiseConnectEvent(); +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +index c349bc7..c812374 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +@@ -20,6 +20,7 @@ + * + */ + ++#include "qpid/SaslFactory.h" + #include "qpid/broker/ConnectionHandler.h" + #include "qpid/broker/Connection.h" + #include "qpid/broker/SecureConnection.h" +@@ -49,6 +50,7 @@ const std::string CLIENT_PROCESS_NAME("qpid.client_process"); + const std::string CLIENT_PID("qpid.client_pid"); + const std::string CLIENT_PPID("qpid.client_ppid"); + const int SESSION_FLOW_CONTROL_VER = 1; ++const std::string SPACE(" "); + } + + void ConnectionHandler::close(connection::CloseCode code, const string& text) +@@ -106,7 +108,10 @@ ConnectionHandler::Handler::Handler(Connection& c, bool isClient, bool isShadow) + boost::shared_ptr l(new Str16Value(en_US)); + locales.add(l); + proxy.start(properties, mechanisms, locales); ++ + } ++ ++ maxFrameSize = (64 * 1024) - 1; + } + + +@@ -230,33 +235,105 @@ void ConnectionHandler::Handler::heartbeat(){ + } + + void ConnectionHandler::Handler::start(const FieldTable& serverProperties, +- const framing::Array& /*mechanisms*/, ++ const framing::Array& supportedMechanisms, + const framing::Array& /*locales*/) + { +- string mechanism = connection.getAuthMechanism(); ++ string requestedMechanism = connection.getAuthMechanism(); + string response = connection.getAuthCredentials(); + ++ std::string username = connection.getUsername(); ++ std::string password = connection.getPassword(); ++ std::string host = connection.getHost(); ++ std::string service("qpidd"); ++ ++ sasl = SaslFactory::getInstance().create( username, ++ password, ++ service, ++ host, ++ 0, // TODO -- mgoulish Fri Sep 24 06:41:26 EDT 2010 ++ 256 /* TODO -- mgoulish*/ ); ++ std::string supportedMechanismsList; ++ bool requestedMechanismIsSupported = false; ++ Array::const_iterator i; ++ ++ /* ++ If no specific mechanism has been requested, just make ++ a list of all of them, and assert that the one the caller ++ requested is there. ( If *any* are supported! ) ++ */ ++ if ( requestedMechanism.empty() ) { ++ for ( i = supportedMechanisms.begin(); i != supportedMechanisms.end(); ++i) { ++ if (i != supportedMechanisms.begin()) ++ supportedMechanismsList += SPACE; ++ supportedMechanismsList += (*i)->get(); ++ requestedMechanismIsSupported = true; ++ } ++ } ++ else { ++ requestedMechanismIsSupported = false; ++ /* ++ The caller has requested a mechanism. If it's available, ++ make sure it ends up at the head of the list. ++ */ ++ for ( i = supportedMechanisms.begin(); i != supportedMechanisms.end(); ++i) { ++ string currentMechanism = (*i)->get(); ++ ++ if ( requestedMechanism == currentMechanism ) { ++ requestedMechanismIsSupported = true; ++ supportedMechanismsList = currentMechanism + SPACE + supportedMechanismsList; ++ } else { ++ if (i != supportedMechanisms.begin()) ++ supportedMechanismsList += SPACE; ++ supportedMechanismsList += currentMechanism; ++ } ++ } ++ } ++ + connection.setFederationPeerTag(serverProperties.getAsString(QPID_FED_TAG)); + + FieldTable ft; + ft.setInt(QPID_FED_LINK,1); + ft.setString(QPID_FED_TAG, connection.getBroker().getFederationTag()); +- proxy.startOk(ft, mechanism, response, en_US); ++ ++ if (sasl.get()) { ++ string response = ++ sasl->start ( requestedMechanism.empty() ++ ? supportedMechanismsList ++ : requestedMechanism, ++ getSecuritySettings ++ ? getSecuritySettings() ++ : 0 ++ ); ++ proxy.startOk ( ft, sasl->getMechanism(), response, en_US ); ++ } ++ else { ++ string response = ((char)0) + username + ((char)0) + password; ++ proxy.startOk ( ft, requestedMechanism, response, en_US ); ++ } ++ + } + +-void ConnectionHandler::Handler::secure(const string& /*challenge*/) ++void ConnectionHandler::Handler::secure(const string& challenge ) + { +- proxy.secureOk(""); ++ if (sasl.get()) { ++ string response = sasl->step(challenge); ++ proxy.secureOk(response); ++ } ++ else { ++ proxy.secureOk(""); ++ } + } + + void ConnectionHandler::Handler::tune(uint16_t channelMax, +- uint16_t frameMax, ++ uint16_t maxFrameSizeProposed, + uint16_t /*heartbeatMin*/, + uint16_t heartbeatMax) + { +- connection.setFrameMax(frameMax); ++ maxFrameSize = std::min(maxFrameSize, maxFrameSizeProposed); ++ connection.setFrameMax(maxFrameSize); ++ + connection.setHeartbeat(heartbeatMax); +- proxy.tuneOk(channelMax, frameMax, heartbeatMax); ++ proxy.tuneOk(channelMax, maxFrameSize, heartbeatMax); + proxy.open("/", Array(), true); + } + +@@ -266,6 +343,17 @@ void ConnectionHandler::Handler::openOk(const framing::Array& knownHosts) + Url url((*i)->get()); + connection.getKnownHosts().push_back(url); + } ++ ++ if (sasl.get()) { ++ std::auto_ptr securityLayer = sasl->getSecurityLayer(maxFrameSize); ++ ++ if ( securityLayer.get() ) { ++ secured->activateSecurityLayer(securityLayer, true); ++ } ++ ++ saslUserId = sasl->getUserId(); ++ } ++ + isOpen = true; + } + +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.h b/qpid/cpp/src/qpid/broker/ConnectionHandler.h +index 6d55cab..70882a2 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.h ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.h +@@ -22,6 +22,7 @@ + #define _ConnectionAdapter_ + + #include ++#include "qpid/Sasl.h" + #include "qpid/broker/SaslAuthenticator.h" + #include "qpid/framing/amqp_types.h" + #include "qpid/framing/AMQFrame.h" +@@ -33,8 +34,16 @@ + #include "qpid/framing/ProtocolVersion.h" + #include "qpid/Exception.h" + #include "qpid/broker/AclModule.h" ++#include "qpid/sys/SecurityLayer.h" ++ + + namespace qpid { ++ ++namespace sys { ++struct SecuritySettings; ++} ++ ++ + namespace broker { + + class Connection; +@@ -79,6 +88,12 @@ class ConnectionHandler : public framing::FrameHandler + void openOk(const framing::Array& knownHosts); + + void redirect(const std::string& host, const framing::Array& knownHosts); ++ ++ std::auto_ptr sasl; ++ typedef boost::function GetSecuritySettings; ++ GetSecuritySettings getSecuritySettings; /* query the transport for its security details */ ++ std::string saslUserId; ++ uint16_t maxFrameSize; + }; + std::auto_ptr handler; + +diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +index 592b644..6da601c 100644 +--- a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp ++++ b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +@@ -311,6 +311,42 @@ std::string LinkRegistry::getAuthCredentials(const std::string& key) + return result; + } + ++std::string LinkRegistry::getUsername(const std::string& key) ++{ ++ Link::shared_ptr link = findLink(key); ++ if (!link) ++ return string(); ++ ++ return link->getUsername(); ++} ++ ++std::string LinkRegistry::getHost(const std::string& key) ++{ ++ Link::shared_ptr link = findLink(key); ++ if (!link) ++ return string(); ++ ++ return link->getHost(); ++} ++ ++uint16_t LinkRegistry::getPort(const std::string& key) ++{ ++ Link::shared_ptr link = findLink(key); ++ if (!link) ++ return 0; ++ ++ return link->getPort(); ++} ++ ++std::string LinkRegistry::getPassword(const std::string& key) ++{ ++ Link::shared_ptr link = findLink(key); ++ if (!link) ++ return string(); ++ ++ return link->getPassword(); ++} ++ + std::string LinkRegistry::getAuthIdentity(const std::string& key) + { + Link::shared_ptr link = findLink(key); +diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.h b/qpid/cpp/src/qpid/broker/LinkRegistry.h +index 52ab700..a193192 100644 +--- a/qpid/cpp/src/qpid/broker/LinkRegistry.h ++++ b/qpid/cpp/src/qpid/broker/LinkRegistry.h +@@ -132,6 +132,10 @@ namespace broker { + std::string getAuthMechanism (const std::string& key); + std::string getAuthCredentials (const std::string& key); + std::string getAuthIdentity (const std::string& key); ++ std::string getUsername (const std::string& key); ++ std::string getPassword (const std::string& key); ++ std::string getHost (const std::string& key); ++ uint16_t getPort (const std::string& key); + + /** + * Called by links failing over to new address +diff --git a/qpid/cpp/src/qpid/broker/SecureConnection.cpp b/qpid/cpp/src/qpid/broker/SecureConnection.cpp +index 74aec23..5c1ebf3 100644 +--- a/qpid/cpp/src/qpid/broker/SecureConnection.cpp ++++ b/qpid/cpp/src/qpid/broker/SecureConnection.cpp +@@ -78,10 +78,13 @@ void SecureConnection:: setCodec(std::auto_ptr c) + codec = c; + } + +-void SecureConnection::activateSecurityLayer(std::auto_ptr sl) ++void SecureConnection::activateSecurityLayer(std::auto_ptr sl, bool secureImmediately) + { + securityLayer = sl; + securityLayer->init(codec.get()); ++ ++ if ( secureImmediately ) ++ secured = true; + } + + }} // namespace qpid::broker +diff --git a/qpid/cpp/src/qpid/broker/SecureConnection.h b/qpid/cpp/src/qpid/broker/SecureConnection.h +index 4a0cc50..1547faa 100644 +--- a/qpid/cpp/src/qpid/broker/SecureConnection.h ++++ b/qpid/cpp/src/qpid/broker/SecureConnection.h +@@ -49,7 +49,7 @@ class SecureConnection : public qpid::sys::ConnectionCodec + bool isClosed() const; + framing::ProtocolVersion getVersion() const; + void setCodec(std::auto_ptr); +- void activateSecurityLayer(std::auto_ptr); ++ void activateSecurityLayer(std::auto_ptr, bool secureImmediately=false); + private: + std::auto_ptr codec; + std::auto_ptr securityLayer; +diff --git a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +index e615878..8dc1e83 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +@@ -21,7 +21,7 @@ + + #include "qpid/client/ConnectionHandler.h" + +-#include "qpid/client/SaslFactory.h" ++#include "qpid/SaslFactory.h" + #include "qpid/client/Bounds.h" + #include "qpid/framing/amqp_framing.h" + #include "qpid/framing/all_method_bodies.h" +@@ -208,7 +208,13 @@ void ConnectionHandler::start(const FieldTable& /*serverProps*/, const Array& me + { + checkState(NOT_STARTED, INVALID_STATE_START); + setState(NEGOTIATING); +- sasl = SaslFactory::getInstance().create(*this); ++ sasl = SaslFactory::getInstance().create( username, ++ password, ++ service, ++ host, ++ minSsf, ++ maxSsf ++ ); + + std::string mechlist; + bool chosenMechanismSupported = mechanism.empty(); +diff --git a/qpid/cpp/src/qpid/client/ConnectionHandler.h b/qpid/cpp/src/qpid/client/ConnectionHandler.h +index 61709db..6af2e98 100644 +--- a/qpid/cpp/src/qpid/client/ConnectionHandler.h ++++ b/qpid/cpp/src/qpid/client/ConnectionHandler.h +@@ -23,7 +23,7 @@ + + #include "qpid/client/ChainableFrameHandler.h" + #include "qpid/client/ConnectionSettings.h" +-#include "qpid/client/Sasl.h" ++#include "qpid/Sasl.h" + #include "qpid/client/StateManager.h" + #include "qpid/framing/AMQMethodBody.h" + #include "qpid/framing/AMQP_HighestVersion.h" +diff --git a/qpid/cpp/src/qpid/client/Sasl.h b/qpid/cpp/src/qpid/client/Sasl.h +deleted file mode 100644 +index 56735a5..0000000 +--- a/qpid/cpp/src/qpid/client/Sasl.h ++++ /dev/null +@@ -1,64 +0,0 @@ +-#ifndef QPID_CLIENT_SASL_H +-#define QPID_CLIENT_SASL_H +- +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +-#include +-#include +-#include "qpid/sys/IntegerTypes.h" +- +-namespace qpid { +- +-namespace sys { +-class SecurityLayer; +-struct SecuritySettings; +-} +- +-namespace client { +- +-struct ConnectionSettings; +- +-/** +- * Interface to SASL support. This class is implemented by platform-specific +- * SASL providers. +- */ +-class Sasl +-{ +- public: +- /** +- * Start SASL negotiation with the broker. +- * +- * @param mechanisms Comma-separated list of the SASL mechanism the +- * client supports. +- * @param externalSecuritySettings security related details from the underlying transport +- */ +- virtual std::string start(const std::string& mechanisms, +- const qpid::sys::SecuritySettings* externalSecuritySettings = 0) = 0; +- virtual std::string step(const std::string& challenge) = 0; +- virtual std::string getMechanism() = 0; +- virtual std::string getUserId() = 0; +- virtual std::auto_ptr getSecurityLayer(uint16_t maxFrameSize) = 0; +- virtual ~Sasl() {} +-}; +-}} // namespace qpid::client +- +-#endif /*!QPID_CLIENT_SASL_H*/ +diff --git a/qpid/cpp/src/qpid/client/SaslFactory.cpp b/qpid/cpp/src/qpid/client/SaslFactory.cpp +deleted file mode 100644 +index 79acf3c..0000000 +--- a/qpid/cpp/src/qpid/client/SaslFactory.cpp ++++ /dev/null +@@ -1,385 +0,0 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +-#include "qpid/client/SaslFactory.h" +-#include "qpid/client/ConnectionSettings.h" +-#include +-#include +- +-#ifdef HAVE_CONFIG_H +-# include "config.h" +-#endif +- +-#ifndef HAVE_SASL +- +-namespace qpid { +-namespace client { +- +-//Null implementation +- +-SaslFactory::SaslFactory() {} +- +-SaslFactory::~SaslFactory() {} +- +-SaslFactory& SaslFactory::getInstance() +-{ +- qpid::sys::Mutex::ScopedLock l(lock); +- if (!instance.get()) { +- instance = std::auto_ptr(new SaslFactory()); +- } +- return *instance; +-} +- +-std::auto_ptr SaslFactory::create(const ConnectionSettings&) +-{ +- return std::auto_ptr(); +-} +- +-qpid::sys::Mutex SaslFactory::lock; +-std::auto_ptr SaslFactory::instance; +- +-}} // namespace qpid::client +- +-#else +- +-#include "qpid/Exception.h" +-#include "qpid/framing/reply_exceptions.h" +-#include "qpid/sys/SecurityLayer.h" +-#include "qpid/sys/SecuritySettings.h" +-#include "qpid/sys/cyrus/CyrusSecurityLayer.h" +-#include "qpid/log/Statement.h" +-#include +-#include +- +-namespace qpid { +-namespace client { +- +-using qpid::sys::SecurityLayer; +-using qpid::sys::SecuritySettings; +-using qpid::sys::cyrus::CyrusSecurityLayer; +-using qpid::framing::InternalErrorException; +- +-const size_t MAX_LOGIN_LENGTH = 50; +- +-class CyrusSasl : public Sasl +-{ +- public: +- CyrusSasl(const ConnectionSettings&); +- ~CyrusSasl(); +- std::string start(const std::string& mechanisms, const SecuritySettings* externalSettings); +- std::string step(const std::string& challenge); +- std::string getMechanism(); +- std::string getUserId(); +- std::auto_ptr getSecurityLayer(uint16_t maxFrameSize); +- private: +- sasl_conn_t* conn; +- sasl_callback_t callbacks[5];//realm, user, authname, password, end-of-list +- ConnectionSettings settings; +- std::string input; +- std::string mechanism; +- char login[MAX_LOGIN_LENGTH]; +- +- void interact(sasl_interact_t* client_interact); +-}; +- +-//sasl callback functions +-int getUserFromSettings(void *context, int id, const char **result, unsigned *len); +-int getPasswordFromSettings(sasl_conn_t *conn, void *context, int id, sasl_secret_t **psecret); +-typedef int CallbackProc(); +- +-qpid::sys::Mutex SaslFactory::lock; +-std::auto_ptr SaslFactory::instance; +- +-SaslFactory::SaslFactory() +-{ +- sasl_callback_t* callbacks = 0; +- int result = sasl_client_init(callbacks); +- if (result != SASL_OK) { +- throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errstring(result, 0, 0))); +- } +-} +- +-SaslFactory::~SaslFactory() +-{ +- sasl_done(); +-} +- +-SaslFactory& SaslFactory::getInstance() +-{ +- qpid::sys::Mutex::ScopedLock l(lock); +- if (!instance.get()) { +- instance = std::auto_ptr(new SaslFactory()); +- } +- return *instance; +-} +- +-std::auto_ptr SaslFactory::create(const ConnectionSettings& settings) +-{ +- std::auto_ptr sasl(new CyrusSasl(settings)); +- return sasl; +-} +- +-CyrusSasl::CyrusSasl(const ConnectionSettings& s) : conn(0), settings(s) +-{ +- size_t i = 0; +- +- callbacks[i].id = SASL_CB_GETREALM; +- callbacks[i].proc = 0; +- callbacks[i++].context = 0; +- +- if (!settings.username.empty()) { +- callbacks[i].id = SASL_CB_AUTHNAME; +- callbacks[i].proc = (CallbackProc*) &getUserFromSettings; +- callbacks[i++].context = &settings; +- } +- +- callbacks[i].id = SASL_CB_PASS; +- if (settings.password.empty()) { +- callbacks[i].proc = 0; +- callbacks[i++].context = 0; +- } else { +- callbacks[i].proc = (CallbackProc*) &getPasswordFromSettings; +- callbacks[i++].context = &settings; +- } +- +- callbacks[i].id = SASL_CB_LIST_END; +- callbacks[i].proc = 0; +- callbacks[i++].context = 0; +-} +- +-CyrusSasl::~CyrusSasl() +-{ +- if (conn) { +- sasl_dispose(&conn); +- } +-} +- +-namespace { +- const std::string SSL("ssl"); +-} +- +-std::string CyrusSasl::start(const std::string& mechanisms, const SecuritySettings* externalSettings) +-{ +- QPID_LOG(debug, "CyrusSasl::start(" << mechanisms << ")"); +- int result = sasl_client_new(settings.service.c_str(), +- settings.host.c_str(), +- 0, 0, /* Local and remote IP address strings */ +- callbacks, +- 0, /* security flags */ +- &conn); +- +- if (result != SASL_OK) throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errdetail(conn))); +- +- sasl_security_properties_t secprops; +- +- if (externalSettings) { +- sasl_ssf_t external_ssf = (sasl_ssf_t) externalSettings->ssf; +- if (external_ssf) { +- int result = sasl_setprop(conn, SASL_SSF_EXTERNAL, &external_ssf); +- if (result != SASL_OK) { +- throw framing::InternalErrorException(QPID_MSG("SASL error: unable to set external SSF: " << result)); +- } +- QPID_LOG(debug, "external SSF detected and set to " << external_ssf); +- } +- if (externalSettings->authid.size()) { +- const char* external_authid = externalSettings->authid.c_str(); +- result = sasl_setprop(conn, SASL_AUTH_EXTERNAL, external_authid); +- if (result != SASL_OK) { +- throw framing::InternalErrorException(QPID_MSG("SASL error: unable to set external auth: " << result)); +- } +- QPID_LOG(debug, "external auth detected and set to " << external_authid); +- } +- } +- +- secprops.min_ssf = settings.minSsf; +- secprops.max_ssf = settings.maxSsf; +- secprops.maxbufsize = 65535; +- +- QPID_LOG(debug, "min_ssf: " << secprops.min_ssf << ", max_ssf: " << secprops.max_ssf); +- +- secprops.property_names = 0; +- secprops.property_values = 0; +- secprops.security_flags = 0;//TODO: provide means for application to configure these +- +- result = sasl_setprop(conn, SASL_SEC_PROPS, &secprops); +- if (result != SASL_OK) { +- throw framing::InternalErrorException(QPID_MSG("SASL error: " << sasl_errdetail(conn))); +- } +- +- sasl_interact_t* client_interact = 0; +- const char *out = 0; +- unsigned outlen = 0; +- const char *chosenMechanism = 0; +- +- do { +- result = sasl_client_start(conn, +- mechanisms.c_str(), +- &client_interact, +- &out, +- &outlen, +- &chosenMechanism); +- +- if (result == SASL_INTERACT) { +- interact(client_interact); +- } +- } while (result == SASL_INTERACT); +- +- if (result != SASL_CONTINUE && result != SASL_OK) { +- throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errdetail(conn))); +- } +- +- mechanism = std::string(chosenMechanism); +- QPID_LOG(debug, "CyrusSasl::start(" << mechanisms << "): selected " +- << mechanism << " response: '" << std::string(out, outlen) << "'"); +- return std::string(out, outlen); +-} +- +-std::string CyrusSasl::step(const std::string& challenge) +-{ +- sasl_interact_t* client_interact = 0; +- const char *out = 0; +- unsigned outlen = 0; +- int result = 0; +- do { +- result = sasl_client_step(conn, /* our context */ +- challenge.data(), /* the data from the server */ +- challenge.size(), /* it's length */ +- &client_interact, /* this should be +- unallocated and NULL */ +- &out, /* filled in on success */ +- &outlen); /* filled in on success */ +- +- if (result == SASL_INTERACT) { +- interact(client_interact); +- } +- } while (result == SASL_INTERACT); +- +- std::string response; +- if (result == SASL_CONTINUE || result == SASL_OK) response = std::string(out, outlen); +- else if (result != SASL_OK) { +- throw InternalErrorException(QPID_MSG("Sasl error: " << sasl_errdetail(conn))); +- } +- QPID_LOG(debug, "CyrusSasl::step(" << challenge << "): " << response); +- return response; +-} +- +-std::string CyrusSasl::getMechanism() +-{ +- return mechanism; +-} +- +-std::string CyrusSasl::getUserId() +-{ +- int propResult; +- const void* operName; +- +- propResult = sasl_getprop(conn, SASL_USERNAME, &operName); +- if (propResult == SASL_OK) +- return std::string((const char*) operName); +- +- return std::string(); +-} +- +-void CyrusSasl::interact(sasl_interact_t* client_interact) +-{ +- +- if (client_interact->id == SASL_CB_PASS) { +- char* password = getpass(client_interact->prompt); +- input = std::string(password); +- client_interact->result = input.data(); +- client_interact->len = input.size(); +- } else { +- std::cout << client_interact->prompt; +- if (client_interact->defresult) std::cout << " (" << client_interact->defresult << ")"; +- std::cout << ": "; +- if (std::cin >> input) { +- client_interact->result = input.data(); +- client_interact->len = input.size(); +- } +- } +- +-} +- +-std::auto_ptr CyrusSasl::getSecurityLayer(uint16_t maxFrameSize) +-{ +- const void* value(0); +- int result = sasl_getprop(conn, SASL_SSF, &value); +- if (result != SASL_OK) { +- throw framing::InternalErrorException(QPID_MSG("SASL error: " << sasl_errdetail(conn))); +- } +- uint ssf = *(reinterpret_cast(value)); +- std::auto_ptr securityLayer; +- if (ssf) { +- QPID_LOG(info, "Installing security layer, SSF: "<< ssf); +- securityLayer = std::auto_ptr(new CyrusSecurityLayer(conn, maxFrameSize)); +- } +- return securityLayer; +-} +- +-int getUserFromSettings(void* context, int /*id*/, const char** result, unsigned* /*len*/) +-{ +- if (context) { +- *result = ((ConnectionSettings*) context)->username.c_str(); +- QPID_LOG(debug, "getUserFromSettings(): " << (*result)); +- return SASL_OK; +- } else { +- return SASL_FAIL; +- } +-} +- +-namespace { +-// Global map of secrest allocated for SASL connections via callback +-// to getPasswordFromSettings. Ensures secrets are freed. +-class SecretsMap { +- typedef std::map Map; +- Map map; +- public: +- void keep(sasl_conn_t* conn, void* secret) { +- Map::iterator i = map.find(conn); +- if (i != map.end()) free(i->second); +- map[conn] = secret; +- } +- +- ~SecretsMap() { +- for (Map::iterator i = map.begin(); i != map.end(); ++i) +- free(i->second); +- } +-}; +-SecretsMap getPasswordFromSettingsSecrets; +-} +- +-int getPasswordFromSettings(sasl_conn_t* conn, void* context, int /*id*/, sasl_secret_t** psecret) +-{ +- if (context) { +- size_t length = ((ConnectionSettings*) context)->password.size(); +- sasl_secret_t* secret = (sasl_secret_t*) malloc(sizeof(sasl_secret_t) + length); +- getPasswordFromSettingsSecrets.keep(conn, secret); +- secret->len = length; +- memcpy(secret->data, ((ConnectionSettings*) context)->password.data(), length); +- *psecret = secret; +- return SASL_OK; +- } else { +- return SASL_FAIL; +- } +-} +- +-}} // namespace qpid::client +- +-#endif +diff --git a/qpid/cpp/src/qpid/client/SaslFactory.h b/qpid/cpp/src/qpid/client/SaslFactory.h +deleted file mode 100644 +index d012af0..0000000 +--- a/qpid/cpp/src/qpid/client/SaslFactory.h ++++ /dev/null +@@ -1,48 +0,0 @@ +-#ifndef QPID_CLIENT_SASLFACTORY_H +-#define QPID_CLIENT_SASLFACTORY_H +- +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +-#include "qpid/client/Sasl.h" +-#include "qpid/sys/Mutex.h" +-#include +- +-namespace qpid { +-namespace client { +- +-/** +- * Factory for instances of the Sasl interface through which Sasl +- * support is provided to a ConnectionHandler. +- */ +-class SaslFactory +-{ +- public: +- std::auto_ptr create(const ConnectionSettings&); +- static SaslFactory& getInstance(); +- ~SaslFactory(); +- private: +- SaslFactory(); +- static qpid::sys::Mutex lock; +- static std::auto_ptr instance; +-}; +-}} // namespace qpid::client +- +-#endif /*!QPID_CLIENT_SASLFACTORY_H*/ +diff --git a/qpid/cpp/src/tests/sasl_fed b/qpid/cpp/src/tests/sasl_fed +new file mode 100755 +index 0000000..550b5a1 +--- /dev/null ++++ b/qpid/cpp/src/tests/sasl_fed +@@ -0,0 +1,152 @@ ++#! /bin/bash ++ ++source test_env.sh ++ ++minimum_sasl_version="2.1.22" ++if [ ! `pkg-config --atleast-version $minimum_sasl_version cyrus-sasl`]; then ++ echo "sasl_fed requires at least $minimum_sasl_version" ++ exit 0 ++fi ++ ++let minimum_sasl_version=$((2 * 65536 + 1 * 256 + 22)) ++sasl_version_numbers=(`rpm -q cyrus-sasl-devel | head -1 | tr '-' ' ' | awk '{print $4}' | tr '.' ' '`) ++let sasl_version=$((${sasl_version_numbers[0]} * 65536 + ${sasl_version_numbers[1]} * 256 + ${sasl_version_numbers[2]})) ++ ++if [ "$sasl_version" -lt "$minimum_sasl_version" ]; then ++ echo "sasl_fed requires version 2.1.22 or later" ++ exit 0 ++fi ++ ++exit ++ ++QPID_SRC=$top_srcdir/src ++QPIDD=$QPID_SRC/.libs/qpidd ++PY_TOOLS=$QPID_TOOLS/src/py ++ ++sasl_config_file=$QPID_SRC/tests/sasl_config ++ ++my_random_number=$RANDOM ++tmp_root=/tmp/sasl_fed/$my_random_number ++mkdir -p $tmp_root ++ ++ ++#-------------------------------------------------- ++#echo " Starting broker 1" ++#-------------------------------------------------- ++$QPIDD \ ++ -p 0 \ ++ --data-dir $tmp_root/data_1 \ ++ --auth=yes \ ++ --mgmt-enable=yes \ ++ --log-enable info+ \ ++ --log-source yes \ ++ --log-to-file $tmp_root/qpidd_1.log \ ++ --sasl-config=$sasl_config_file \ ++ -d > $tmp_root/broker_1_port ++ ++broker_1_port=`cat $tmp_root/broker_1_port` ++ ++ ++#-------------------------------------------------- ++#echo " Starting broker 2" ++#-------------------------------------------------- ++$QPIDD \ ++ -p 0 \ ++ --data-dir $tmp_root/data_2 \ ++ --auth=yes \ ++ --mgmt-enable=yes \ ++ --log-enable info+ \ ++ --log-source yes \ ++ --log-to-file $tmp_root/qpidd_2.log \ ++ --sasl-config=$sasl_config_file \ ++ -d > $tmp_root/broker_2_port ++ ++broker_2_port=`cat $tmp_root/broker_2_port` ++ ++ ++# Now find the PIDs so I can kill them later. ++#pids=`ps -aef | grep -v grep | grep sasl_fed | grep $my_random_number | awk '{print $2}'` ++ ++ ++# I am not randomizing these names, because the test creates its own brokers. ++QUEUE_NAME=sasl_fed_queue ++ROUTING_KEY=sasl_fed_queue ++EXCHANGE_NAME=sasl_fedex ++ ++#-------------------------------------------------- ++#echo " add exchanges" ++#-------------------------------------------------- ++$PY_TOOLS/qpid-config -a localhost:$broker_1_port add exchange direct $EXCHANGE_NAME ++$PY_TOOLS/qpid-config -a localhost:$broker_2_port add exchange direct $EXCHANGE_NAME ++ ++ ++#-------------------------------------------------- ++#echo " add queues" ++#-------------------------------------------------- ++$PY_TOOLS/qpid-config -a localhost:$broker_1_port add queue $QUEUE_NAME ++$PY_TOOLS/qpid-config -a localhost:$broker_2_port add queue $QUEUE_NAME ++ ++sleep 5 ++ ++#-------------------------------------------------- ++#echo " create bindings" ++#-------------------------------------------------- ++$PY_TOOLS/qpid-config -a localhost:$broker_1_port bind $EXCHANGE_NAME $QUEUE_NAME $ROUTING_KEY ++$PY_TOOLS/qpid-config -a localhost:$broker_2_port bind $EXCHANGE_NAME $QUEUE_NAME $ROUTING_KEY ++ ++sleep 5 ++ ++ ++#-------------------------------------------------- ++#echo " qpid-route route add" ++#-------------------------------------------------- ++$PY_TOOLS/qpid-route route add zag/zag@localhost:$broker_2_port zag/zag@localhost:$broker_1_port $EXCHANGE_NAME $ROUTING_KEY "" "" DIGEST-MD5 ++ ++sleep 5 ++ ++ ++n_messages=100 ++#-------------------------------------------------- ++#echo " Sending 100 messages to $broker_1_port " ++#-------------------------------------------------- ++$QPID_SRC/tests/datagen --count $n_messages | $QPID_SRC/tests/sender --username zag --password zag --exchange $EXCHANGE_NAME --routing-key $ROUTING_KEY --port $broker_1_port ++ ++sleep 5 ++ ++#-------------------------------------------------- ++#echo " Examine Broker $broker_1_port" ++#-------------------------------------------------- ++broker_1_message_count=`$PY_TOOLS/qpid-stat -q localhost:$broker_1_port | grep sasl_fed_queue | awk '{print $2}'` ++#echo " " ++ ++#-------------------------------------------------- ++#echo " Examine Broker $broker_2_port" ++#-------------------------------------------------- ++broker_2_message_count=`$PY_TOOLS/qpid-stat -q localhost:$broker_2_port | grep sasl_fed_queue | awk '{print $2}'` ++#echo " " ++ ++#-------------------------------------------------- ++#echo " Asking brokers to quit." ++#-------------------------------------------------- ++$QPIDD --port $broker_1_port --quit ++$QPIDD --port $broker_2_port --quit ++ ++ ++#-------------------------------------------------- ++#echo "Removing temporary directory $tmp_root" ++#-------------------------------------------------- ++rm -rf $tmp_root ++ ++if [ "$broker_2_message_count" = "$n_messages" ]; then ++ echo "good: $broker_2_message_count" ++ exit 0 ++else ++ echo "not ideal: $broker_1_message_count != $n_messages" ++ exit 1 ++fi ++ ++ ++ ++ ++ ++ +-- +1.5.5.6 + +From c0392c8acc3602a59b4fa42374c7eab1d34c7ba0 Mon Sep 17 00:00:00 2001 +From: Michael Goulish +Date: Tue, 30 Nov 2010 18:39:48 +0000 +Subject: [PATCH] Bug 500430 - Feature: Support SASL on inter-broker links + + This patch was posted in JIRA QPID-2949. + It provides a way to tell SaslFactory that console + interaction is NOT ok. i.e. if the code is running + as part of a broker, or a demonized client of some + kind. Just tell it to never do interaction, and any + patch attempt to interact will be treated as an error. + + This script demonstrates that all goes well if you supply enough info : + + rm -rf /tmp/data_1 /tmp/data_2 + mkdir /tmp/data_1 /tmp/data_2 + + # in window 1: + ../qpidd -p 5672 --data-dir /tmp/data_1 --auth=yes --mgmt-enable=yes \ + --log-enable info+ ./qpidd_1.log --log-source yes \ + --sasl-config=/home/mick/trunk/qpid/cpp/src/tests/sasl_config + + # in window 2: + ../qpidd -p 10000 --data-dir /tmp/data_2 --auth=yes --mgmt-enable=yes \ + --log-enable info+ ./qpidd_1.log --log-source yes \ + --sasl-config=/home/mick/trunk/qpid/cpp/src/tests/sasl_config + + # in window 3 ( from qpid dir ) + ./tools/src/py/qpid-route dynamic add zig/zig@localhost zig/zig@localhost:10000 qmf.default.direct + + # and now view the created route + ./tools/src/py/qpid-route route list localhost:5672 + + If you say auth=no, that works fine also. + + HOWEVER PLEASE NOTE -- + + if you say auth=yes, but then do not supply enough into to avoid the need for interaction, + the attempted interaction will result in the connection being closed. Then the originating broker + will re-try the connection, and you will get a two-broker infinite loop until you fix it. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1040689 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/SaslFactory.cpp | 23 ++++++++++++++++++----- + qpid/cpp/src/qpid/SaslFactory.h | 7 ++++--- + qpid/cpp/src/qpid/broker/Broker.h | 1 + + qpid/cpp/src/qpid/broker/ConnectionHandler.cpp | 15 +++++++++------ + 4 files changed, 32 insertions(+), 14 deletions(-) + +diff --git a/qpid/cpp/src/qpid/SaslFactory.cpp b/qpid/cpp/src/qpid/SaslFactory.cpp +index 28c27f7..664961e 100644 +--- a/qpid/cpp/src/qpid/SaslFactory.cpp ++++ b/qpid/cpp/src/qpid/SaslFactory.cpp +@@ -110,7 +110,7 @@ struct CyrusSaslSettings + class CyrusSasl : public Sasl + { + public: +- CyrusSasl(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf); ++ CyrusSasl(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf, bool allowInteraction); + ~CyrusSasl(); + std::string start(const std::string& mechanisms, const SecuritySettings* externalSettings); + std::string step(const std::string& challenge); +@@ -125,6 +125,10 @@ class CyrusSasl : public Sasl + std::string mechanism; + char login[MAX_LOGIN_LENGTH]; + ++ /* In some contexts, like running in the broker or as a daemon, console ++ * interaction is impossible. In those cases, we will treat the attempt ++ * to interact as an error. */ ++ bool allowInteraction; + void interact(sasl_interact_t* client_interact); + }; + +@@ -159,14 +163,14 @@ SaslFactory& SaslFactory::getInstance() + return *instance; + } + +-std::auto_ptr SaslFactory::create(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf) ++std::auto_ptr SaslFactory::create(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf, bool allowInteraction) + { +- std::auto_ptr sasl(new CyrusSasl(username, password, serviceName, hostName, minSsf, maxSsf)); ++ std::auto_ptr sasl(new CyrusSasl(username, password, serviceName, hostName, minSsf, maxSsf, allowInteraction)); + return sasl; + } + +-CyrusSasl::CyrusSasl(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf) +- : conn(0), settings(username, password, serviceName, hostName, minSsf, maxSsf) ++CyrusSasl::CyrusSasl(const std::string & username, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf, bool allowInteraction) ++ : conn(0), settings(username, password, serviceName, hostName, minSsf, maxSsf), allowInteraction(allowInteraction) + { + size_t i = 0; + +@@ -330,6 +334,15 @@ std::string CyrusSasl::getUserId() + void CyrusSasl::interact(sasl_interact_t* client_interact) + { + ++ /* ++ In some context console interaction cannot be allowed, such ++ as when this code run as part of a broker, or as a some other ++ daemon. In those cases we will treat the attempt to ++ */ ++ if ( ! allowInteraction ) { ++ throw InternalErrorException("interaction disallowed"); ++ } ++ + if (client_interact->id == SASL_CB_PASS) { + char* password = getpass(client_interact->prompt); + input = std::string(password); +diff --git a/qpid/cpp/src/qpid/SaslFactory.h b/qpid/cpp/src/qpid/SaslFactory.h +index d9d83c4..8609b01 100644 +--- a/qpid/cpp/src/qpid/SaslFactory.h ++++ b/qpid/cpp/src/qpid/SaslFactory.h +@@ -34,9 +34,10 @@ namespace qpid { + class SaslFactory + { + public: +- std::auto_ptr create(const std::string & userName, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf ); +- static SaslFactory& getInstance(); +- ~SaslFactory(); ++ QPID_COMMON_EXTERN std::auto_ptr create(const std::string & userName, const std::string & password, const std::string & serviceName, const std::string & hostName, int minSsf, int maxSsf, bool allowInteraction=true ); ++ QPID_COMMON_EXTERN static SaslFactory& getInstance(); ++ QPID_COMMON_EXTERN ~SaslFactory(); ++ + private: + SaslFactory(); + static qpid::sys::Mutex lock; +diff --git a/qpid/cpp/src/qpid/broker/Broker.h b/qpid/cpp/src/qpid/broker/Broker.h +index 05d1c79..52070cd 100644 +--- a/qpid/cpp/src/qpid/broker/Broker.h ++++ b/qpid/cpp/src/qpid/broker/Broker.h +@@ -285,6 +285,7 @@ public: + boost::function& msg)> deferDelivery; + ++ bool isAuthenticating ( ) { return config.auth; } + }; + + }} +diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +index c812374..9843c16 100644 +--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp ++++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp +@@ -246,12 +246,15 @@ void ConnectionHandler::Handler::start(const FieldTable& serverProperties, + std::string host = connection.getHost(); + std::string service("qpidd"); + +- sasl = SaslFactory::getInstance().create( username, +- password, +- service, +- host, +- 0, // TODO -- mgoulish Fri Sep 24 06:41:26 EDT 2010 +- 256 /* TODO -- mgoulish*/ ); ++ if ( connection.getBroker().isAuthenticating() ) { ++ sasl = SaslFactory::getInstance().create( username, ++ password, ++ service, ++ host, ++ 0, // TODO -- mgoulish Fri Sep 24 2010 ++ 256, ++ false ); // disallow interaction ++ } + std::string supportedMechanismsList; + bool requestedMechanismIsSupported = false; + Array::const_iterator i; +-- +1.5.5.6 + +From 7543f35145a42b1a44c7a0af5cf589e724bf3ffe Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Tue, 19 Oct 2010 18:32:29 +0000 +Subject: [PATCH] BZ-642686 fixed bug in management of incoming executed set + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1024348 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/driver.py | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py +index bdcdb26..f6378c3 100644 +--- a/qpid/python/qpid/messaging/driver.py ++++ b/qpid/python/qpid/messaging/driver.py +@@ -791,6 +791,7 @@ class Engine: + def do_execution_result(self, er): + sst = self.get_sst(er) + sst.results[er.command_id] = er.value ++ sst.executed.add(er.id) + + def do_execution_exception(self, ex): + sst = self.get_sst(ex) +-- +1.5.5.6 + +From 883fed15f3caf7a5f6125c0c1070192bc43708f2 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Thu, 28 Oct 2010 21:33:52 +0000 +Subject: [PATCH] BZ-640312 QPID-2916: throw an exception when a data value cannot be encoded correctly as its type. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028501 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/examples/qmf-agent/schema.xml | 8 ++-- + qpid/cpp/src/qpid/acl/management-schema.xml | 4 +- + qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp | 20 ++++++++---- + qpid/cpp/src/qpid/framing/Buffer.cpp | 43 ++++++++++++++++++++------- + qpid/cpp/src/tests/FramingTest.cpp | 11 +++++++ + qpid/cpp/src/tests/Variant.cpp | 26 ++++++++++++++++ + qpid/cpp/src/tests/testagent.xml | 8 ++-- + qpid/python/qpid/codec010.py | 12 +++++++ + qpid/specs/management-schema.xml | 12 ++++---- + 9 files changed, 110 insertions(+), 34 deletions(-) + +diff --git a/qpid/cpp/examples/qmf-agent/schema.xml b/qpid/cpp/examples/qmf-agent/schema.xml +index 730dd4b..2a3bb46 100644 +--- a/qpid/cpp/examples/qmf-agent/schema.xml ++++ b/qpid/cpp/examples/qmf-agent/schema.xml +@@ -28,7 +28,7 @@ + + This class represents a parent object + +- ++ + + + +@@ -36,7 +36,7 @@ + + + +- ++ + + + +@@ -58,7 +58,7 @@ + --> + + +- ++ + + + +@@ -66,7 +66,7 @@ + + + +- ++ + + + +diff --git a/qpid/cpp/src/qpid/acl/management-schema.xml b/qpid/cpp/src/qpid/acl/management-schema.xml +index f463725..7f48a9b 100644 +--- a/qpid/cpp/src/qpid/acl/management-schema.xml ++++ b/qpid/cpp/src/qpid/acl/management-schema.xml +@@ -18,7 +18,7 @@ + + + +- ++ + + + +@@ -32,7 +32,7 @@ + + + +- ++ + + + +diff --git a/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp b/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp +index abe6b2c..0fbe2a6 100644 +--- a/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp ++++ b/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp +@@ -198,15 +198,21 @@ boost::shared_ptr convertString(const std::string& value, const std: + } else { + return boost::shared_ptr(new Var16Value(value, 0x90)); + } +- } else if (encoding == utf8 && !large) { ++ } else if (encoding == utf8) { ++ if (!large) + return boost::shared_ptr(new Str16Value(value)); +- } else if (encoding == utf16 && !large) { +- return boost::shared_ptr(new Var16Value(value, 0x96)); +- } else if (encoding == iso885915 && !large) { +- return boost::shared_ptr(new Var16Value(value, 0x94)); ++ throw Exception(QPID_MSG("Could not encode utf8 character string - too long (" << value.size() << " bytes)")); ++ } else if (encoding == utf16) { ++ if (!large) ++ return boost::shared_ptr(new Var16Value(value, 0x96)); ++ throw Exception(QPID_MSG("Could not encode utf16 character string - too long (" << value.size() << " bytes)")); ++ } else if (encoding == iso885915) { ++ if (!large) ++ return boost::shared_ptr(new Var16Value(value, 0x94)); ++ throw Exception(QPID_MSG("Could not encode iso-8859-15 character string - too long (" << value.size() << " bytes)")); + } else { +- //either the string is too large for the encoding in amqp 0-10, or the encoding was not recognised +- QPID_LOG(warning, "Could not encode " << value.size() << " byte value as " << encoding << ", encoding as vbin32."); ++ // the encoding was not recognised ++ QPID_LOG(warning, "Unknown byte encoding: [" << encoding << "], encoding as vbin32."); + return boost::shared_ptr(new Var32Value(value, 0xa0)); + } + } +diff --git a/qpid/cpp/src/qpid/framing/Buffer.cpp b/qpid/cpp/src/qpid/framing/Buffer.cpp +index 051e7a2..7506cdc 100644 +--- a/qpid/cpp/src/qpid/framing/Buffer.cpp ++++ b/qpid/cpp/src/qpid/framing/Buffer.cpp +@@ -20,6 +20,7 @@ + */ + #include "qpid/framing/Buffer.h" + #include "qpid/framing/FieldTable.h" ++#include "qpid/Msg.h" + #include + #include + namespace qpid { +@@ -211,17 +212,29 @@ uint64_t Buffer::getUInt<8>() { + + template <> + void Buffer::putUInt<1>(uint64_t i) { +- putOctet(i); ++ if (std::numeric_limits::min() <= i && i <= std::numeric_limits::max()) { ++ putOctet(i); ++ return; ++ } ++ throw Exception(QPID_MSG("Could not encode (" << i << ") as uint8_t.")); + } + + template <> + void Buffer::putUInt<2>(uint64_t i) { +- putShort(i); ++ if (std::numeric_limits::min() <= i && i <= std::numeric_limits::max()) { ++ putShort(i); ++ return; ++ } ++ throw Exception(QPID_MSG("Could not encode (" << i << ") as uint16_t.")); + } + + template <> + void Buffer::putUInt<4>(uint64_t i) { +- putLong(i); ++ if (std::numeric_limits::min() <= i && i <= std::numeric_limits::max()) { ++ putLong(i); ++ return; ++ } ++ throw Exception(QPID_MSG("Could not encode (" << i << ") as uint32_t.")); + } + + template <> +@@ -231,18 +244,26 @@ void Buffer::putUInt<8>(uint64_t i) { + + void Buffer::putShortString(const string& s){ + size_t slen = s.length(); +- uint8_t len = slen < 0x100 ? (uint8_t) slen : 0xFF; +- putOctet(len); +- s.copy(data + position, len); +- position += len; ++ if (slen <= std::numeric_limits::max()) { ++ uint8_t len = (uint8_t) slen; ++ putOctet(len); ++ s.copy(data + position, len); ++ position += len; ++ return; ++ } ++ throw Exception(QPID_MSG("Could not encode string of " << slen << " bytes as uint8_t string.")); + } + + void Buffer::putMediumString(const string& s){ + size_t slen = s.length(); +- uint16_t len = slen < 0x10000 ? (uint16_t) slen : 0xFFFF; +- putShort(len); +- s.copy(data + position, len); +- position += len; ++ if (slen <= std::numeric_limits::max()) { ++ uint16_t len = (uint16_t) slen; ++ putShort(len); ++ s.copy(data + position, len); ++ position += len; ++ return; ++ } ++ throw Exception(QPID_MSG("Could not encode string of " << slen << " bytes as uint16_t string.")); + } + + void Buffer::putLongString(const string& s){ +diff --git a/qpid/cpp/src/tests/FramingTest.cpp b/qpid/cpp/src/tests/FramingTest.cpp +index 3d0fa0c..f879531 100644 +--- a/qpid/cpp/src/tests/FramingTest.cpp ++++ b/qpid/cpp/src/tests/FramingTest.cpp +@@ -151,6 +151,17 @@ QPID_AUTO_TEST_CASE(testMessageCancelBodyFrame) + BOOST_CHECK_EQUAL(tostring(in), tostring(out)); + } + ++QPID_AUTO_TEST_CASE(badStrings) { ++ char data[(65535 + 2) + (255 + 1)]; ++ Buffer b(data, sizeof(data)); ++ BOOST_CHECK_THROW(b.putShortString(std::string(256, 'X')), ++ Exception); ++ BOOST_CHECK_THROW(b.putMediumString(std::string(65536, 'X')), ++ Exception); ++ b.putShortString(std::string(255, 'X')); ++ b.putMediumString(std::string(65535, 'X')); ++} ++ + QPID_AUTO_TEST_SUITE_END() + + }} // namespace qpid::tests +diff --git a/qpid/cpp/src/tests/Variant.cpp b/qpid/cpp/src/tests/Variant.cpp +index 596bde3..b4188f5 100644 +--- a/qpid/cpp/src/tests/Variant.cpp ++++ b/qpid/cpp/src/tests/Variant.cpp +@@ -20,10 +20,12 @@ + */ + #include + #include "qpid/types/Variant.h" ++#include "qpid/amqp_0_10/Codecs.h" + + #include "unit_test.h" + + using namespace qpid::types; ++using namespace qpid::amqp_0_10; + + namespace qpid { + namespace tests { +@@ -686,6 +688,30 @@ QPID_AUTO_TEST_CASE(testEncoding) + BOOST_CHECK_EQUAL(map.asMap()["a"].getEncoding(), map.asMap()["b"].getEncoding()); + } + ++QPID_AUTO_TEST_CASE(testBufferEncoding) ++{ ++ Variant a("abc"); ++ a.setEncoding("utf8"); ++ std::string buffer; ++ ++ Variant::Map inMap, outMap; ++ inMap["a"] = a; ++ ++ MapCodec::encode(inMap, buffer); ++ MapCodec::decode(buffer, outMap); ++ BOOST_CHECK_EQUAL(inMap, outMap); ++ ++ inMap["b"] = Variant(std::string(65535, 'X')); ++ inMap["b"].setEncoding("utf16"); ++ MapCodec::encode(inMap, buffer); ++ MapCodec::decode(buffer, outMap); ++ BOOST_CHECK_EQUAL(inMap, outMap); ++ ++ inMap["fail"] = Variant(std::string(65536, 'X')); ++ inMap["fail"].setEncoding("utf16"); ++ BOOST_CHECK_THROW(MapCodec::encode(inMap, buffer), std::exception); ++} ++ + QPID_AUTO_TEST_SUITE_END() + + }} // namespace qpid::tests +diff --git a/qpid/cpp/src/tests/testagent.xml b/qpid/cpp/src/tests/testagent.xml +index 8be21b7..0b1436f 100644 +--- a/qpid/cpp/src/tests/testagent.xml ++++ b/qpid/cpp/src/tests/testagent.xml +@@ -28,13 +28,13 @@ + + This class represents a parent object + +- ++ + + + + + +- ++ + + + +@@ -47,7 +47,7 @@ + --> + + +- ++ + + + +@@ -55,7 +55,7 @@ + + + +- ++ + + + +diff --git a/qpid/python/qpid/codec010.py b/qpid/python/qpid/codec010.py +index 5ad1ef1..0846db6 100644 +--- a/qpid/python/qpid/codec010.py ++++ b/qpid/python/qpid/codec010.py +@@ -85,11 +85,15 @@ class Codec(Packer): + def read_uint8(self): + return self.unpack("!B") + def write_uint8(self, n): ++ if n < 0 or n > 255: ++ raise CodecException("Cannot encode %d as uint8" % n) + return self.pack("!B", n) + + def read_int8(self): + return self.unpack("!b") + def write_int8(self, n): ++ if n < -128 or n > 127: ++ raise CodecException("Cannot encode %d as int8" % n) + self.pack("!b", n) + + def read_char(self): +@@ -108,22 +112,30 @@ class Codec(Packer): + def read_uint16(self): + return self.unpack("!H") + def write_uint16(self, n): ++ if n < 0 or n > 65535: ++ raise CodecException("Cannot encode %d as uint16" % n) + self.pack("!H", n) + + def read_int16(self): + return self.unpack("!h") + def write_int16(self, n): ++ if n < -32768 or n > 32767: ++ raise CodecException("Cannot encode %d as int16" % n) + self.pack("!h", n) + + + def read_uint32(self): + return self.unpack("!L") + def write_uint32(self, n): ++ if n < 0 or n > 4294967295: ++ raise CodecException("Cannot encode %d as uint32" % n) + self.pack("!L", n) + + def read_int32(self): + return self.unpack("!l") + def write_int32(self, n): ++ if n < -2147483648 or n > 2147483647: ++ raise CodecException("Cannot encode %d as int32" % n) + self.pack("!l", n) + + def read_float(self): +diff --git a/qpid/specs/management-schema.xml b/qpid/specs/management-schema.xml +index d8786ea..30be009 100644 +--- a/qpid/specs/management-schema.xml ++++ b/qpid/specs/management-schema.xml +@@ -70,7 +70,7 @@ + + + +- ++ + + + +@@ -198,7 +198,7 @@ + + + +- ++ + + + +@@ -234,7 +234,7 @@ + + + +- ++ + + + +@@ -263,7 +263,7 @@ + + + +- ++ + + + +@@ -271,7 +271,7 @@ + + + +- ++ + + + +@@ -293,7 +293,7 @@ + + + +- ++ + + + +-- +1.5.5.6 + +From e5d8ce7bda52002a9cda7105a0200124928c6f66 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Thu, 11 Nov 2010 15:59:45 +0000 +Subject: [PATCH] BZ-635016 added address parser support for None + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1033975 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/address.py | 5 ++++- + qpid/python/qpid/tests/messaging/address.py | 11 +++++++++-- + 2 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/qpid/python/qpid/messaging/address.py b/qpid/python/qpid/messaging/address.py +index bf49443..bcf45f6 100644 +--- a/qpid/python/qpid/messaging/address.py ++++ b/qpid/python/qpid/messaging/address.py +@@ -33,6 +33,7 @@ COMMA = l.define("COMMA", r",") + NUMBER = l.define("NUMBER", r'[+-]?[0-9]*\.?[0-9]+') + TRUE = l.define("TRUE", r'True') + FALSE = l.define("FALSE", r'False') ++NONE = l.define("NONE", r'None') + ID = l.define("ID", r'[a-zA-Z_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?') + STRING = l.define("STRING", r""""(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'""") + ESC = l.define("ESC", r"\\[^ux]|\\x[0-9a-fA-F][0-9a-fA-F]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]") +@@ -65,6 +66,8 @@ def tok2obj(tok): + return True + elif tok.type == FALSE: + return False ++ elif tok.type == NONE: ++ return None + else: + return tok.value + +@@ -133,7 +136,7 @@ class AddressParser(Parser): + return (key, val) + + def value(self): +- if self.matches(NUMBER, STRING, ID, TRUE, FALSE): ++ if self.matches(NUMBER, STRING, ID, TRUE, FALSE, NONE): + return tok2obj(self.eat()) + elif self.matches(LBRACE): + return self.map() +diff --git a/qpid/python/qpid/tests/messaging/address.py b/qpid/python/qpid/tests/messaging/address.py +index 7adbc0c..869cf55 100644 +--- a/qpid/python/qpid/tests/messaging/address.py ++++ b/qpid/python/qpid/tests/messaging/address.py +@@ -19,8 +19,8 @@ + + + from qpid.tests import Test +-from qpid.messaging.address import lex, parse, ParseError, EOF, ID, NUMBER, SYM, WSPACE, \ +- LEXER ++from qpid.messaging.address import lex, parse, ParseError, EOF, ID, NONE, \ ++ NUMBER, SYM, WSPACE, LEXER + from qpid.lexer import Token + from qpid.harness import Skipped + from qpid.tests.parser import ParserBase +@@ -149,6 +149,9 @@ class AddressTests(ParserBase, Test): + def testNegativeNum(self): + self.lex("-3", NUMBER) + ++ def testNone(self): ++ self.lex("None", NONE) ++ + def testHash(self): + self.valid("foo/bar.#", "foo", "bar.#") + +@@ -166,6 +169,10 @@ class AddressTests(ParserBase, Test): + self.valid("name/subject; {key: value,}", "name", "subject", + {"key": "value"}) + ++ def testOptionsNone(self): ++ self.valid("name/subject; {key: None}", "name", "subject", ++ {"key": None}) ++ + def testSemiSubject(self): + self.valid("foo.bar/'baz.qux;moo:arf'; {key: value}", + "foo.bar", "baz.qux;moo:arf", {"key": "value"}) +-- +1.5.5.6 + +From 3c3dfcafca54e6bc4ac7ab36b33cb5bed3bfcb17 Mon Sep 17 00:00:00 2001 +From: Rafael H. Schloming +Date: Thu, 13 Jan 2011 16:37:59 +0000 +Subject: [PATCH] BZ-635016 made address parser recognize lowercase true and false + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1058654 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/python/qpid/messaging/address.py | 23 ++++++++++++----------- + qpid/python/qpid/tests/messaging/address.py | 17 +++++++++++------ + 2 files changed, 23 insertions(+), 17 deletions(-) + +diff --git a/qpid/python/qpid/messaging/address.py b/qpid/python/qpid/messaging/address.py +index bcf45f6..e423f09 100644 +--- a/qpid/python/qpid/messaging/address.py ++++ b/qpid/python/qpid/messaging/address.py +@@ -31,9 +31,6 @@ SEMI = l.define("SEMI", r";") + SLASH = l.define("SLASH", r"/") + COMMA = l.define("COMMA", r",") + NUMBER = l.define("NUMBER", r'[+-]?[0-9]*\.?[0-9]+') +-TRUE = l.define("TRUE", r'True') +-FALSE = l.define("FALSE", r'False') +-NONE = l.define("NONE", r'None') + ID = l.define("ID", r'[a-zA-Z_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?') + STRING = l.define("STRING", r""""(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'""") + ESC = l.define("ESC", r"\\[^ux]|\\x[0-9a-fA-F][0-9a-fA-F]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]") +@@ -59,15 +56,19 @@ def tok2str(tok): + else: + return tok.value + ++CONSTANTS = { ++ "True": True, ++ "true": True, ++ "False": False, ++ "false": False, ++ "None": None ++ } ++ + def tok2obj(tok): +- if tok.type in (STRING, NUMBER): ++ if tok.type == ID: ++ return CONSTANTS.get(tok.value, tok.value) ++ elif tok.type in (STRING, NUMBER): + return eval(tok.value) +- elif tok.type == TRUE: +- return True +- elif tok.type == FALSE: +- return False +- elif tok.type == NONE: +- return None + else: + return tok.value + +@@ -136,7 +137,7 @@ class AddressParser(Parser): + return (key, val) + + def value(self): +- if self.matches(NUMBER, STRING, ID, TRUE, FALSE, NONE): ++ if self.matches(NUMBER, STRING, ID): + return tok2obj(self.eat()) + elif self.matches(LBRACE): + return self.map() +diff --git a/qpid/python/qpid/tests/messaging/address.py b/qpid/python/qpid/tests/messaging/address.py +index 869cf55..aa9562a 100644 +--- a/qpid/python/qpid/tests/messaging/address.py ++++ b/qpid/python/qpid/tests/messaging/address.py +@@ -19,8 +19,8 @@ + + + from qpid.tests import Test +-from qpid.messaging.address import lex, parse, ParseError, EOF, ID, NONE, \ +- NUMBER, SYM, WSPACE, LEXER ++from qpid.messaging.address import lex, parse, ParseError, EOF, ID, NUMBER, \ ++ SYM, WSPACE, LEXER + from qpid.lexer import Token + from qpid.harness import Skipped + from qpid.tests.parser import ParserBase +@@ -149,8 +149,11 @@ class AddressTests(ParserBase, Test): + def testNegativeNum(self): + self.lex("-3", NUMBER) + +- def testNone(self): +- self.lex("None", NONE) ++ def testIdNum(self): ++ self.lex("id1", ID) ++ ++ def testIdSpaceNum(self): ++ self.lex("id 1", ID, NUMBER) + + def testHash(self): + self.valid("foo/bar.#", "foo", "bar.#") +@@ -312,5 +315,7 @@ class AddressTests(ParserBase, Test): + "name", "subject", {"foo.bar": "value"}) + + def testBoolean(self): +- self.valid("name/subject; { true: True, false: False }", +- "name", "subject", {"true": True, "false": False}) ++ self.valid("name/subject; { true1: True, true2: true, " ++ "false1: False, false2: false }", ++ "name", "subject", {"true1": True, "true2": True, ++ "false1": False, "false2": False}) +-- +1.5.5.6 + +From 8bbd71ec95972b9dc8fcf41cde0570811d58c7e2 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 15 Dec 2010 14:40:01 +0000 +Subject: [PATCH] Bug 662765 - Management broker ID should be the same for members of a cluster. + +Replicate management UUID and name to members of a cluster. +See https://bugzilla.redhat.com/show_bug.cgi?id=662765. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1049566 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 9f13478e6ad313df9f548a65553c1cb18e00d43b) +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 2 +- + qpid/cpp/src/qpid/cluster/Connection.cpp | 14 +++++++++++--- + qpid/cpp/src/qpid/cluster/Connection.h | 8 +++++++- + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 20 +++++--------------- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 4 ++-- + qpid/cpp/src/qpid/management/ManagementAgent.h | 7 ++++--- + qpid/cpp/xml/cluster.xml | 4 ++++ + 7 files changed, 34 insertions(+), 25 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 152c3a1..41306c3 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -198,7 +198,7 @@ namespace _qmf = ::qmf::org::apache::qpid::cluster; + * Currently use SVN revision to avoid clashes with versions from + * different branches. + */ +-const uint32_t Cluster::CLUSTER_VERSION = 1039478; ++const uint32_t Cluster::CLUSTER_VERSION = 1045272; + + struct ClusterDispatcher : public framing::AMQP_AllOperations::ClusterHandler { + qpid::cluster::Cluster& cluster; +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index c293343..48623b7 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -628,15 +628,23 @@ void Connection::addQueueListener(const std::string& q, uint32_t listener) { + // + // This is the handler for incoming managementsetup messages. + // +-void Connection::managementSetupState(uint64_t objectNum, uint16_t bootSequence) ++void Connection::managementSetupState( ++ uint64_t objectNum, uint16_t bootSequence, const framing::Uuid& id, ++ const std::string& vendor, const std::string& product, const std::string& instance) + { +- QPID_LOG(debug, "Running managementsetup state handler, new objectnum " +- << objectNum << " seq " << bootSequence); ++ QPID_LOG(debug, cluster << " updated management: object number=" ++ << objectNum << " boot sequence=" << bootSequence ++ << " broker-id=" << id ++ << " vendor=" << vendor ++ << " product=" << product ++ << " instance=" << instance); + management::ManagementAgent* agent = cluster.getBroker().getManagementAgent(); + if (!agent) + throw Exception(QPID_MSG("Management schema update but management not enabled.")); + agent->setNextObjectId(objectNum); + agent->setBootSequence(bootSequence); ++ agent->setUuid(id); ++ agent->setName(vendor, product, instance); + } + }} // Namespace qpid::cluster + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index 95d846e..0949696 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -177,7 +177,13 @@ class Connection : + OutputInterceptor& getOutput() { return output; } + + void addQueueListener(const std::string& queue, uint32_t listener); +- void managementSetupState(uint64_t objectNum, uint16_t bootSequence); ++ void managementSetupState(uint64_t objectNum, ++ uint16_t bootSequence, ++ const framing::Uuid&, ++ const std::string& vendor, ++ const std::string& product, ++ const std::string& instance); ++ + void setSecureConnection ( broker::SecureConnection * sc ); + + private: +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 6727777..6da1050 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -205,22 +205,12 @@ void UpdateClient::updateManagementSetupState() + management::ManagementAgent* agent = updaterBroker.getManagementAgent(); + if (!agent) return; + +- // +- // Bash the state of the slave into conformance with ours. The +- // goal here is to get his state arranged so as to mimic our +- // state, w/r/t object ID creation. Currently, that means that we +- // propagate our boot seq and object UID counter to him so that +- // subsequently created objects on his side will track what's on +- // our side. +- // +- qmf::org::apache::qpid::broker::ManagementSetupState mss(agent, 0); +- mss.set_objectNum(agent->getNextObjectId()); +- mss.set_bootSequence(agent->getBootSequence()); +- QPID_LOG(debug, updaterId << " updating management-setup-state " +- << mss.get_objectNum() +- << " " << mss.get_bootSequence() << "\n"); ++ QPID_LOG(debug, updaterId << " updating management setup-state."); ++ std::string vendor, product, instance; ++ agent->getName(vendor, product, instance); + ClusterConnectionProxy(session).managementSetupState( +- mss.get_objectNum(), mss.get_bootSequence()); ++ agent->getNextObjectId(), agent->getBootSequence(), agent->getUuid(), ++ vendor, product, instance); + } + + void UpdateClient::updateManagementAgent() +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 8640c16..cbef3c2 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -491,7 +491,7 @@ void ManagementAgent::sendBufferLH(Buffer& buf, + string routingKey) + { + if (suppressed) { +- QPID_LOG(trace, "Suppressed management message to " << routingKey); ++ QPID_LOG(trace, "Suppressing management message to " << routingKey); + return; + } + if (exchange.get() == 0) return; +@@ -546,7 +546,7 @@ void ManagementAgent::sendBufferLH(const string& data, + Variant::Map::const_iterator i; + + if (suppressed) { +- QPID_LOG(trace, "Suppressed management message to " << routingKey); ++ QPID_LOG(trace, "Suppressing management message to " << routingKey); + return; + } + if (exchange.get() == 0) return; +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index 9829094..7f5f3a8 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -113,8 +113,6 @@ public: + const bool topic, + int qmfVersion); + +- const framing::Uuid& getUuid() const { return uuid; } +- + /** Disallow a method. Attempts to call it will receive an exception with message. */ + void disallow(const std::string& className, const std::string& methodName, const std::string& message); + +@@ -138,7 +136,10 @@ public: + void setNextObjectId(uint64_t o) { nextObjectId = o; } + + uint16_t getBootSequence(void) { return bootSequence; } +- void setBootSequence(uint16_t b) { bootSequence = b; } ++ void setBootSequence(uint16_t b) { bootSequence = b; writeData(); } ++ ++ const framing::Uuid& getUuid() const { return uuid; } ++ void setUuid(const framing::Uuid& id) { uuid = id; writeData(); } + + // TODO: remove these when Variant API moved into common library. + static types::Variant::Map toMap(const framing::FieldTable& from); +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index dfe9554..0462838 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -267,6 +267,10 @@ + + + ++ ++ ++ ++ + + + +-- +1.5.5.6 + +From fc0fa7625681d13226648740b359d6c2aa05f45e Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Fri, 7 Jan 2011 16:32:34 +0000 +Subject: [PATCH] Bug 654872 - MRG clustered node fails with invalid-argument error - verify log consistency. + +QPID-2982: Improved cluster/management logging and automated test for log consistency. + +The cluster_tests.py test_management test is augmented to compare +broker logs after the test completes. Any inconsistency in the logs +causes the test to fail. This check is currently disabled as it is +failing due to known issues. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1056378 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/cluster/Cluster.cpp | 16 +- + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 46 +++--- + qpid/cpp/src/qpid/cluster/UpdateClient.h | 5 +- + qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp | 16 ++- + qpid/cpp/src/qpid/cluster/UpdateDataExchange.h | 8 +- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 184 ++++++++++++-------- + qpid/cpp/src/qpid/management/ManagementObject.cpp | 1 + + qpid/cpp/src/tests/Address.cpp | 4 +- + qpid/cpp/src/tests/cluster_test_logs.py | 105 ++++++++++++ + qpid/cpp/src/tests/cluster_tests.py | 22 ++- + 10 files changed, 288 insertions(+), 119 deletions(-) + create mode 100755 qpid/cpp/src/tests/cluster_test_logs.py + +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index 41306c3..ff4a0e2 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -265,7 +265,7 @@ Cluster::Cluster(const ClusterSettings& set, broker::Broker& b) : + "Error delivering frames", + poller), + failoverExchange(new FailoverExchange(this)), +- updateDataExchange(new UpdateDataExchange(this)), ++ updateDataExchange(new UpdateDataExchange(*this)), + quorum(boost::bind(&Cluster::leave, this)), + decoder(boost::bind(&Cluster::deliverFrame, this, _1)), + discarding(true), +@@ -357,7 +357,7 @@ void Cluster::addLocalConnection(const boost::intrusive_ptr& c) { + + // Called in connection thread to insert an updated shadow connection. + void Cluster::addShadowConnection(const boost::intrusive_ptr& c) { +- QPID_LOG(info, *this << " new shadow connection " << c->getId()); ++ QPID_LOG(debug, *this << " new shadow connection " << c->getId()); + // Safe to use connections here because we're pre-catchup, stalled + // and discarding, so deliveredFrame is not processing any + // connection events. +@@ -748,7 +748,7 @@ struct AppendQueue { + std::string Cluster::debugSnapshot() { + assertClusterSafe(); + std::ostringstream msg; +- msg << "queue snapshot at " << map.getFrameSeq() << ":"; ++ msg << "Member joined, frameSeq=" << map.getFrameSeq() << ", queue snapshot:"; + AppendQueue append(msg); + broker.getQueues().eachQueue(append); + return msg.str(); +@@ -836,7 +836,7 @@ void Cluster::updateOffer(const MemberId& updater, uint64_t updateeInt, Lock& l) + checkUpdateIn(l); + } + else { +- QPID_LOG(debug,*this << " unstall, ignore update " << updater ++ QPID_LOG(info, *this << " unstall, ignore update " << updater + << " to " << updatee); + deliverEventQueue.start(); // Not involved in update. + } +@@ -926,15 +926,15 @@ void Cluster::checkUpdateIn(Lock& l) { + // NB: don't updateMgmtMembership() here as we are not in the deliver + // thread. It will be updated on delivery of the "ready" we just mcast. + broker.setClusterUpdatee(false); ++ discarding = false; // OK to set, we're stalled for update. ++ QPID_LOG(notice, *this << " update complete, starting catch-up."); ++ QPID_LOG(debug, debugSnapshot()); // OK to call because we're stalled. + if (mAgent) { + // Update management agent now, after all update activity is complete. + updateDataExchange->updateManagementAgent(mAgent); + mAgent->suppress(false); // Enable management output. + mAgent->clusterUpdate(); + } +- discarding = false; // OK to set, we're stalled for update. +- QPID_LOG(notice, *this << " update complete, starting catch-up."); +- QPID_LOG(debug, debugSnapshot()); // OK to call because we're stalled. + enableClusterSafe(); // Enable cluster-safe assertions + deliverEventQueue.start(); + } +@@ -1105,7 +1105,7 @@ void Cluster::setClusterId(const Uuid& uuid, Lock&) { + mgmtObject->set_clusterID(clusterId.str()); + mgmtObject->set_memberID(stream.str()); + } +- QPID_LOG(debug, *this << " cluster-uuid = " << clusterId); ++ QPID_LOG(notice, *this << " cluster-uuid = " << clusterId); + } + + void Cluster::messageExpired(const MemberId&, uint64_t id, Lock&) { +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 6da1050..50d5c2b 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -78,6 +78,10 @@ using namespace framing; + namespace arg=client::arg; + using client::SessionBase_0_10Access; + ++std::ostream& operator<<(std::ostream& o, const UpdateClient& c) { ++ return o << "cluster(" << c.updaterId << " UPDATER)"; ++} ++ + struct ClusterConnectionProxy : public AMQP_AllProxy::ClusterConnection, public framing::FrameHandler + { + boost::shared_ptr connection; +@@ -142,7 +146,7 @@ void UpdateClient::run() { + } + + void UpdateClient::update() { +- QPID_LOG(debug, updaterId << " updating state to " << updateeId ++ QPID_LOG(debug, *this << " updating state to " << updateeId + << " at " << updateeUrl); + Broker& b = updaterBroker; + +@@ -177,14 +181,14 @@ void UpdateClient::update() { + // NOTE: connection will be closed from the other end, don't close + // it here as that causes a race. + +- // FIXME aconway 2010-03-15: This sleep avoids the race condition ++ // TODO aconway 2010-03-15: This sleep avoids the race condition + // described in // https://bugzilla.redhat.com/show_bug.cgi?id=568831. + // It allows the connection to fully close before destroying the + // Connection object. Remove when the bug is fixed. + // + sys::usleep(10*1000); + +- QPID_LOG(debug, updaterId << " update completed to " << updateeId ++ QPID_LOG(debug, *this << " update completed to " << updateeId + << " at " << updateeUrl << ": " << membership); + } + +@@ -205,7 +209,7 @@ void UpdateClient::updateManagementSetupState() + management::ManagementAgent* agent = updaterBroker.getManagementAgent(); + if (!agent) return; + +- QPID_LOG(debug, updaterId << " updating management setup-state."); ++ QPID_LOG(debug, *this << " updating management setup-state."); + std::string vendor, product, instance; + agent->getName(vendor, product, instance); + ClusterConnectionProxy(session).managementSetupState( +@@ -219,19 +223,19 @@ void UpdateClient::updateManagementAgent() + if (!agent) return; + string data; + +- QPID_LOG(debug, updaterId << " updating management schemas. ") ++ QPID_LOG(debug, *this << " updating management schemas. ") + agent->exportSchemas(data); + session.messageTransfer( + arg::content=client::Message(data, UpdateDataExchange::MANAGEMENT_SCHEMAS_KEY), + arg::destination=UpdateDataExchange::EXCHANGE_NAME); + +- QPID_LOG(debug, updaterId << " updating management agents. ") ++ QPID_LOG(debug, *this << " updating management agents. ") + agent->exportAgents(data); + session.messageTransfer( + arg::content=client::Message(data, UpdateDataExchange::MANAGEMENT_AGENTS_KEY), + arg::destination=UpdateDataExchange::EXCHANGE_NAME); + +- QPID_LOG(debug, updaterId << " updating management deleted objects. ") ++ QPID_LOG(debug, *this << " updating management deleted objects. ") + typedef management::ManagementAgent::DeletedObjectList DeletedObjectList; + DeletedObjectList deleted; + agent->exportDeletedObjects(deleted); +@@ -248,7 +252,7 @@ void UpdateClient::updateManagementAgent() + } + + void UpdateClient::updateExchange(const boost::shared_ptr& ex) { +- QPID_LOG(debug, updaterId << " updating exchange " << ex->getName()); ++ QPID_LOG(debug, *this << " updating exchange " << ex->getName()); + ClusterConnectionProxy(session).exchange(encode(*ex)); + } + +@@ -341,13 +345,13 @@ void UpdateClient::updateQueue(client::AsyncSession& s, const boost::shared_ptr< + } + + void UpdateClient::updateExclusiveQueue(const boost::shared_ptr& q) { +- QPID_LOG(debug, updaterId << " updating exclusive queue " << q->getName() << " on " << shadowSession.getId()); ++ QPID_LOG(debug, *this << " updating exclusive queue " << q->getName() << " on " << shadowSession.getId()); + updateQueue(shadowSession, q); + } + + void UpdateClient::updateNonExclusiveQueue(const boost::shared_ptr& q) { + if (!q->hasExclusiveOwner()) { +- QPID_LOG(debug, updaterId << " updating queue " << q->getName()); ++ QPID_LOG(debug, *this << " updating queue " << q->getName()); + updateQueue(session, q); + }//else queue will be updated as part of session state of owning session + } +@@ -362,12 +366,12 @@ void UpdateClient::updateOutputTask(const sys::OutputTask* task) { + SemanticState::ConsumerImpl* ci = const_cast(cci); + uint16_t channel = ci->getParent().getSession().getChannel(); + ClusterConnectionProxy(shadowConnection).outputTask(channel, ci->getName()); +- QPID_LOG(debug, updaterId << " updating output task " << ci->getName() ++ QPID_LOG(debug, *this << " updating output task " << ci->getName() + << " channel=" << channel); + } + + void UpdateClient::updateConnection(const boost::intrusive_ptr& updateConnection) { +- QPID_LOG(debug, updaterId << " updating connection " << *updateConnection); ++ QPID_LOG(debug, *this << " updating connection " << *updateConnection); + assert(updateConnection->getBrokerConnection()); + broker::Connection& bc = *updateConnection->getBrokerConnection(); + +@@ -398,14 +402,14 @@ void UpdateClient::updateConnection(const boost::intrusive_ptr& upda + updateConnection->getOutput().getSendMax() + ); + shadowConnection.close(); +- QPID_LOG(debug, updaterId << " updated connection " << *updateConnection); ++ QPID_LOG(debug, *this << " updated connection " << *updateConnection); + } + + void UpdateClient::updateSession(broker::SessionHandler& sh) { + broker::SessionState* ss = sh.getSession(); + if (!ss) return; // no session. + +- QPID_LOG(debug, updaterId << " updating session " << ss->getId()); ++ QPID_LOG(debug, *this << " updating session " << ss->getId()); + + // Create a client session to update session state. + boost::shared_ptr cimpl = client::ConnectionAccess::getImpl(shadowConnection); +@@ -416,14 +420,14 @@ void UpdateClient::updateSession(broker::SessionHandler& sh) { + + // Re-create session state on remote connection. + +- QPID_LOG(debug, updaterId << " updating exclusive queues."); ++ QPID_LOG(debug, *this << " updating exclusive queues."); + ss->getSessionAdapter().eachExclusiveQueue(boost::bind(&UpdateClient::updateExclusiveQueue, this, _1)); + +- QPID_LOG(debug, updaterId << " updating consumers."); ++ QPID_LOG(debug, *this << " updating consumers."); + ss->getSemanticState().eachConsumer( + boost::bind(&UpdateClient::updateConsumer, this, _1)); + +- QPID_LOG(debug, updaterId << " updating unacknowledged messages."); ++ QPID_LOG(debug, *this << " updating unacknowledged messages."); + broker::DeliveryRecords& drs = ss->getSemanticState().getUnacked(); + std::for_each(drs.begin(), drs.end(), + boost::bind(&UpdateClient::updateUnacked, this, _1)); +@@ -454,13 +458,13 @@ void UpdateClient::updateSession(broker::SessionHandler& sh) { + if (inProgress) { + inProgress->getFrames().map(simpl->out); + } +- QPID_LOG(debug, updaterId << " updated session " << sh.getSession()->getId()); ++ QPID_LOG(debug, *this << " updated session " << sh.getSession()->getId()); + } + + void UpdateClient::updateConsumer( + const broker::SemanticState::ConsumerImpl::shared_ptr& ci) + { +- QPID_LOG(debug, updaterId << " updating consumer " << ci->getName() << " on " ++ QPID_LOG(debug, *this << " updating consumer " << ci->getName() << " on " + << shadowSession.getId()); + + using namespace message; +@@ -485,7 +489,7 @@ void UpdateClient::updateConsumer( + ); + consumerNumbering.add(ci); + +- QPID_LOG(debug, updaterId << " updated consumer " << ci->getName() ++ QPID_LOG(debug, *this << " updated consumer " << ci->getName() + << " on " << shadowSession.getId()); + } + +@@ -552,7 +556,7 @@ class TxOpUpdater : public broker::TxOpConstVisitor, public MessageUpdater { + }; + + void UpdateClient::updateTxState(broker::SemanticState& s) { +- QPID_LOG(debug, updaterId << " updating TX transaction state."); ++ QPID_LOG(debug, *this << " updating TX transaction state."); + ClusterConnectionProxy proxy(shadowSession); + proxy.accumulatedAck(s.getAccumulatedAck()); + broker::TxBuffer::shared_ptr txBuffer = s.getTxBuffer(); +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.h b/qpid/cpp/src/qpid/cluster/UpdateClient.h +index be09af7..76621cd 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.h ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.h +@@ -30,7 +30,7 @@ + #include "qpid/broker/SemanticState.h" + #include "qpid/sys/Runnable.h" + #include +- ++#include + + namespace qpid { + +@@ -114,8 +114,11 @@ class UpdateClient : public sys::Runnable { + boost::function done; + boost::function failed; + client::ConnectionSettings connectionSettings; ++ ++ friend std::ostream& operator<<(std::ostream&, const UpdateClient&); + }; + ++ + }} // namespace qpid::cluster + + #endif /*!QPID_CLUSTER_UPDATECLIENT_H*/ +diff --git a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp +index 2f242b3..2a079b8 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.cpp +@@ -19,6 +19,7 @@ + * + */ + #include "UpdateDataExchange.h" ++#include "Cluster.h" + #include "qpid/amqp_0_10/Codecs.h" + #include "qpid/broker/Deliverable.h" + #include "qpid/broker/Message.h" +@@ -35,8 +36,13 @@ const std::string UpdateDataExchange::MANAGEMENT_AGENTS_KEY("management-agents") + const std::string UpdateDataExchange::MANAGEMENT_SCHEMAS_KEY("management-schemas"); + const std::string UpdateDataExchange::MANAGEMENT_DELETED_OBJECTS_KEY("management-deleted-objects"); + +-UpdateDataExchange::UpdateDataExchange(management::Manageable* parent) : +- Exchange(EXCHANGE_NAME, parent) ++std::ostream& operator<<(std::ostream& o, const UpdateDataExchange& c) { ++ return o << "cluster(" << c.clusterId << " UPDATER)"; ++} ++ ++UpdateDataExchange::UpdateDataExchange(Cluster& cluster) : ++ Exchange(EXCHANGE_NAME, &cluster), ++ clusterId(cluster.getId()) + {} + + void UpdateDataExchange::route(broker::Deliverable& msg, const std::string& routingKey, +@@ -56,11 +62,11 @@ void UpdateDataExchange::updateManagementAgent(management::ManagementAgent* agen + + framing::Buffer buf1(const_cast(managementAgents.data()), managementAgents.size()); + agent->importAgents(buf1); +- QPID_LOG(debug, " Updated management agents."); ++ QPID_LOG(debug, *this << " updated management agents."); + + framing::Buffer buf2(const_cast(managementSchemas.data()), managementSchemas.size()); + agent->importSchemas(buf2); +- QPID_LOG(debug, " Updated management schemas"); ++ QPID_LOG(debug, *this << " updated management schemas."); + + using amqp_0_10::ListCodec; + using types::Variant; +@@ -72,7 +78,7 @@ void UpdateDataExchange::updateManagementAgent(management::ManagementAgent* agen + new management::ManagementAgent::DeletedObject(*i))); + } + agent->importDeletedObjects(objects); +- QPID_LOG(debug, " Updated management deleted objects."); ++ QPID_LOG(debug, *this << " updated management deleted objects."); + } + + +diff --git a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h +index 27a9854..8c493e4 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h ++++ b/qpid/cpp/src/qpid/cluster/UpdateDataExchange.h +@@ -23,6 +23,8 @@ + */ + + #include "qpid/broker/Exchange.h" ++#include "types.h" ++#include + + namespace qpid { + +@@ -31,6 +33,7 @@ class ManagementAgent; + } + + namespace cluster { ++class Cluster; + + /** + * An exchange used to send data that is to large for a control +@@ -45,7 +48,7 @@ class UpdateDataExchange : public broker::Exchange + static const std::string MANAGEMENT_SCHEMAS_KEY; + static const std::string MANAGEMENT_DELETED_OBJECTS_KEY; + +- UpdateDataExchange(management::Manageable* parent); ++ UpdateDataExchange(Cluster& parent); + + void route(broker::Deliverable& msg, const std::string& routingKey, + const framing::FieldTable* args); +@@ -71,10 +74,11 @@ class UpdateDataExchange : public broker::Exchange + void updateManagementAgent(management::ManagementAgent* agent); + + private: +- ++ MemberId clusterId; + std::string managementAgents; + std::string managementSchemas; + std::string managementDeletedObjects; ++ friend std::ostream& operator<<(std::ostream&, const UpdateDataExchange&); + }; + + }} // namespace qpid::cluster +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index cbef3c2..2edb3ec 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -18,7 +18,12 @@ + * under the License. + * + */ +- ++ ++ ++// NOTE on use of log levels: The criteria for using trace vs. debug ++// is to use trace for log messages that are generated for each ++// unbatched stats/props notification and debug for everything else. ++ + #include "qpid/management/ManagementAgent.h" + #include "qpid/management/ManagementObject.h" + #include "qpid/broker/DeliverableMessage.h" +@@ -89,7 +94,7 @@ static Variant::Map mapEncodeSchemaId(const string& pname, + + ManagementAgent::RemoteAgent::~RemoteAgent () + { +- QPID_LOG(trace, "Remote Agent removed bank=[" << brokerBank << "." << agentBank << "]"); ++ QPID_LOG(debug, "Remote Agent removed bank=[" << brokerBank << "." << agentBank << "]"); + if (mgmtObject != 0) { + mgmtObject->resourceDestroy(); + agent.deleteObjectNowLH(mgmtObject->getObjectId()); +@@ -169,7 +174,7 @@ void ManagementAgent::configure(const string& _dataDir, uint16_t _interval, + uuid.generate(); + QPID_LOG (info, "No stored broker ID found - ManagementAgent generated broker ID: " << uuid); + } else +- QPID_LOG (debug, "ManagementAgent restored broker ID: " << uuid); ++ QPID_LOG (info, "ManagementAgent restored broker ID: " << uuid); + + // if sequence goes beyond a 12-bit field, skip zero and wrap to 1. + bootSequence++; +@@ -308,7 +313,7 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, uint64_t persistId + } + newManagementObjects[objId] = object; + } +- ++ QPID_LOG(debug, "Management object (V1) added: " << objId.getV2Key()); + return objId; + } + +@@ -330,7 +335,6 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, + } + + object->setObjectId(objId); +- + { + sys::Mutex::ScopedLock lock(addLock); + ManagementObjectMap::iterator destIter = newManagementObjects.find(objId); +@@ -340,7 +344,7 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, + } + newManagementObjects[objId] = object; + } +- ++ QPID_LOG(debug, "Management object added: " << objId.getV2Key()); + return objId; + } + +@@ -370,7 +374,7 @@ void ManagementAgent::raiseEvent(const ManagementEvent& event, severity_t severi + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, mExchange, + "console.event.1.0." + event.getPackageName() + "." + event.getEventName()); +- QPID_LOG(trace, "SEND raiseEvent (v1) class=" << event.getPackageName() << "." << event.getEventName()); ++ QPID_LOG(debug, "SEND raiseEvent (v1) class=" << event.getPackageName() << "." << event.getEventName()); + } + + if (qmf2Support) { +@@ -406,9 +410,8 @@ void ManagementAgent::raiseEvent(const ManagementEvent& event, severity_t severi + string content; + MapCodec::encode(map_, content); + sendBufferLH(content, "", headers, "amqp/map", v2Topic, key.str()); +- QPID_LOG(trace, "SEND raiseEvent (v2) class=" << event.getPackageName() << "." << event.getEventName()); ++ QPID_LOG(debug, "SEND raiseEvent (v2) class=" << event.getPackageName() << "." << event.getEventName()); + } +- + } + + ManagementAgent::Periodic::Periodic (ManagementAgent& _agent, uint32_t _seconds) +@@ -449,7 +452,7 @@ void ManagementAgent::clientAdded (const string& routingKey) + outLen = outBuffer.getPosition(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, dExchange, rkeys.front()); +- QPID_LOG(trace, "SEND ConsoleAddedIndication to=" << rkeys.front()); ++ QPID_LOG(debug, "SEND ConsoleAddedIndication to=" << rkeys.front()); + rkeys.pop_front(); + } + } +@@ -458,8 +461,10 @@ void ManagementAgent::clusterUpdate() { + // Called on all cluster memebers when a new member joins a cluster. + // Set clientWasAdded so that on the next periodicProcessing we will do + // a full update on all cluster members. ++ sys::Mutex::ScopedLock l(userLock); ++ moveNewObjectsLH(); // to be consistent with updater/updatee. + clientWasAdded = true; +- QPID_LOG(debug, "cluster update " << debugSnapshot()); ++ QPID_LOG(debug, "Cluster member joined, " << debugSnapshot()); + } + + void ManagementAgent::encodeHeader (Buffer& buf, uint8_t opcode, uint32_t seq) +@@ -491,7 +496,7 @@ void ManagementAgent::sendBufferLH(Buffer& buf, + string routingKey) + { + if (suppressed) { +- QPID_LOG(trace, "Suppressing management message to " << routingKey); ++ QPID_LOG(debug, "Suppressing management message to " << routingKey); + return; + } + if (exchange.get() == 0) return; +@@ -546,7 +551,7 @@ void ManagementAgent::sendBufferLH(const string& data, + Variant::Map::const_iterator i; + + if (suppressed) { +- QPID_LOG(trace, "Suppressing management message to " << routingKey); ++ QPID_LOG(debug, "Suppressing management message to " << routingKey); + return; + } + if (exchange.get() == 0) return; +@@ -619,7 +624,7 @@ void ManagementAgent::periodicProcessing (void) + { + #define BUFSIZE 65536 + #define HEADROOM 4096 +- QPID_LOG(trace, "Management agent periodic processing"); ++ QPID_LOG(debug, "Management agent periodic processing"); + sys::Mutex::ScopedLock lock (userLock); + char msgChars[BUFSIZE]; + uint32_t contentSize; +@@ -758,17 +763,26 @@ void ManagementAgent::periodicProcessing (void) + send_stats = (object->hasInst() && (object->getInstChanged() || object->getForcePublish())); + + if (send_props && qmf1Support) { ++ size_t pos = msgBuffer.getPosition(); + encodeHeader(msgBuffer, 'c'); + sBuf.clear(); + object->writeProperties(sBuf); + msgBuffer.putRawData(sBuf); ++ QPID_LOG(trace, "Changed V1 properties " ++ << object->getObjectId().getV2Key() ++ << " len=" << msgBuffer.getPosition()-pos); + } + + if (send_stats && qmf1Support) { ++ size_t pos = msgBuffer.getPosition(); + encodeHeader(msgBuffer, 'i'); + sBuf.clear(); + object->writeStatistics(sBuf); + msgBuffer.putRawData(sBuf); ++ QPID_LOG(trace, "Changed V1 statistics " ++ << object->getObjectId().getV2Key() ++ << " len=" << msgBuffer.getPosition()-pos); ++ + } + + if ((send_stats || send_props) && qmf2Support) { +@@ -787,6 +801,10 @@ void ManagementAgent::periodicProcessing (void) + map_["_values"] = values; + list_.push_back(map_); + v2Objs++; ++ QPID_LOG(trace, "Changed V2" ++ << (send_stats? " statistics":"") ++ << (send_props? " properties":"") ++ << " map=" << map_); + } + + if (send_props) pcount++; +@@ -808,7 +826,10 @@ void ManagementAgent::periodicProcessing (void) + key << "console.obj.1.0." << packageName << "." << className; + msgBuffer.reset(); + sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(trace, "SEND V1 Multicast ContentInd to=" << key.str() << " props=" << pcount << " stats=" << scount); ++ QPID_LOG(debug, "SEND V1 Multicast ContentInd to=" << key.str() ++ << " props=" << pcount ++ << " stats=" << scount ++ << " len=" << contentSize); + } + } + +@@ -831,7 +852,10 @@ void ManagementAgent::periodicProcessing (void) + headers["qmf.agent"] = name_address; + + sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(trace, "SEND Multicast ContentInd to=" << key.str() << " props=" << pcount << " stats=" << scount << " len=" << content.length()); ++ QPID_LOG(debug, "SEND Multicast ContentInd to=" << key.str() ++ << " props=" << pcount ++ << " stats=" << scount ++ << " len=" << content.length()); + } + } + } +@@ -859,15 +883,19 @@ void ManagementAgent::periodicProcessing (void) + + for (DeletedObjectList::iterator lIter = mIter->second.begin(); + lIter != mIter->second.end(); lIter++) { +- ++ std::string oid = (*lIter)->objectId; + if (!(*lIter)->encodedV1Config.empty()) { + encodeHeader(msgBuffer, 'c'); + msgBuffer.putRawData((*lIter)->encodedV1Config); ++ QPID_LOG(trace, "Deleting V1 properties " << oid ++ << " len=" << (*lIter)->encodedV1Config.size()); + v1Objs++; + } + if (!(*lIter)->encodedV1Inst.empty()) { + encodeHeader(msgBuffer, 'i'); + msgBuffer.putRawData((*lIter)->encodedV1Inst); ++ QPID_LOG(trace, "Deleting V1 statistics " << oid ++ << " len=" << (*lIter)->encodedV1Inst.size()); + v1Objs++; + } + if (v1Objs && msgBuffer.available() < HEADROOM) { +@@ -877,10 +905,12 @@ void ManagementAgent::periodicProcessing (void) + key << "console.obj.1.0." << packageName << "." << className; + msgBuffer.reset(); + sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(trace, "SEND V1 Multicast ContentInd V1 (delete) to=" << key.str()); ++ QPID_LOG(debug, "SEND V1 Multicast ContentInd V1 (delete) to=" ++ << key.str() << " len=" << contentSize); + } + + if (!(*lIter)->encodedV2.empty()) { ++ QPID_LOG(trace, "Deleting V2 " << "map=" << (*lIter)->encodedV2); + list_.push_back((*lIter)->encodedV2); + if (++v2Objs >= maxV2ReplyObjs) { + v2Objs = 0; +@@ -904,7 +934,7 @@ void ManagementAgent::periodicProcessing (void) + headers["qmf.agent"] = name_address; + + sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(trace, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); ++ QPID_LOG(debug, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); + } + } + } +@@ -918,7 +948,7 @@ void ManagementAgent::periodicProcessing (void) + key << "console.obj.1.0." << packageName << "." << className; + msgBuffer.reset(); + sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(trace, "SEND V1 Multicast ContentInd V1 (delete) to=" << key.str()); ++ QPID_LOG(debug, "SEND V1 Multicast ContentInd V1 (delete) to=" << key.str() << " len=" << contentSize); + } + + if (!list_.empty()) { +@@ -941,7 +971,7 @@ void ManagementAgent::periodicProcessing (void) + headers["qmf.agent"] = name_address; + + sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(trace, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); ++ QPID_LOG(debug, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); + } + } + } // end map +@@ -966,7 +996,7 @@ void ManagementAgent::periodicProcessing (void) + msgBuffer.reset (); + routingKey = "console.heartbeat.1.0"; + sendBufferLH(msgBuffer, contentSize, mExchange, routingKey); +- QPID_LOG(trace, "SEND HeartbeatInd to=" << routingKey); ++ QPID_LOG(debug, "SEND HeartbeatInd to=" << routingKey); + } + + if (qmf2Support) { +@@ -995,7 +1025,7 @@ void ManagementAgent::periodicProcessing (void) + // time to prevent stale heartbeats from getting to the consoles. + sendBufferLH(content, "", headers, "amqp/map", v2Topic, addr_key.str(), interval * 2 * 1000); + +- QPID_LOG(trace, "SENT AgentHeartbeat name=" << name_address); ++ QPID_LOG(debug, "SENT AgentHeartbeat name=" << name_address); + } + QPID_LOG(debug, "periodic update " << debugSnapshot()); + } +@@ -1055,7 +1085,7 @@ void ManagementAgent::deleteObjectNowLH(const ObjectId& oid) + uint32_t contentSize = msgBuffer.getPosition(); + msgBuffer.reset(); + sendBufferLH(msgBuffer, contentSize, mExchange, v1key.str()); +- QPID_LOG(trace, "SEND Immediate(delete) ContentInd to=" << v1key.str()); ++ QPID_LOG(debug, "SEND Immediate(delete) ContentInd to=" << v1key.str()); + } + + if (qmf2Support) { +@@ -1068,7 +1098,7 @@ void ManagementAgent::deleteObjectNowLH(const ObjectId& oid) + string content; + ListCodec::encode(list_, content); + sendBufferLH(content, "", headers, "amqp/list", v2Topic, v2key.str()); +- QPID_LOG(trace, "SEND Immediate(delete) ContentInd to=" << v2key.str()); ++ QPID_LOG(debug, "SEND Immediate(delete) ContentInd to=" << v2key.str()); + } + } + +@@ -1084,7 +1114,7 @@ void ManagementAgent::sendCommandCompleteLH(const string& replyToKey, uint32_t s + outLen = MA_BUFFER_SIZE - outBuffer.available (); + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND CommandCompleteInd code=" << code << " text=" << text << " to=" << ++ QPID_LOG(debug, "SEND CommandCompleteInd code=" << code << " text=" << text << " to=" << + replyToKey << " seq=" << sequence); + } + +@@ -1109,7 +1139,7 @@ void ManagementAgent::sendExceptionLH(const string& replyToKey, const string& ci + MapCodec::encode(map, content); + sendBufferLH(content, cid, headers, "amqp/map", v2Direct, replyToKey); + +- QPID_LOG(trace, "SENT Exception code=" << code <<" text=" << text); ++ QPID_LOG(debug, "SENT Exception code=" << code <<" text=" << text); + } + + bool ManagementAgent::dispatchCommand (Deliverable& deliverable, +@@ -1201,7 +1231,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + inBuffer.getShortString(methodName); + inBuffer.getRawData(inArgs, inBuffer.available()); + +- QPID_LOG(trace, "RECV MethodRequest (v1) class=" << packageName << ":" << className << "(" << Uuid(hash) << ") method=" << ++ QPID_LOG(debug, "RECV MethodRequest (v1) class=" << packageName << ":" << className << "(" << Uuid(hash) << ") method=" << + methodName << " replyTo=" << replyToKey); + + encodeHeader(outBuffer, 'm', sequence); +@@ -1212,7 +1242,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND MethodResponse status=FORBIDDEN reason='All QMFv1 Methods Forbidden' seq=" << sequence); ++ QPID_LOG(debug, "SEND MethodResponse status=FORBIDDEN reason='All QMFv1 Methods Forbidden' seq=" << sequence); + return; + } + +@@ -1223,7 +1253,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND MethodResponse status=FORBIDDEN text=" << i->second << " seq=" << sequence); ++ QPID_LOG(debug, "SEND MethodResponse status=FORBIDDEN text=" << i->second << " seq=" << sequence); + return; + } + +@@ -1239,7 +1269,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND MethodResponse status=FORBIDDEN" << " seq=" << sequence); ++ QPID_LOG(debug, "SEND MethodResponse status=FORBIDDEN" << " seq=" << sequence); + return; + } + } +@@ -1271,7 +1301,7 @@ void ManagementAgent::handleMethodRequestLH(Buffer& inBuffer, const string& repl + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND MethodResponse (v1) to=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "SEND MethodResponse (v1) to=" << replyToKey << " seq=" << sequence); + } + + +@@ -1352,7 +1382,7 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + + // invoke the method + +- QPID_LOG(trace, "RECV MethodRequest (v2) class=" << iter->second->getPackageName() ++ QPID_LOG(debug, "RECV MethodRequest (v2) class=" << iter->second->getPackageName() + << ":" << iter->second->getClassName() << " method=" << + methodName << " replyTo=" << replyTo << " objId=" << objId << " inArgs=" << inArgs); + +@@ -1380,7 +1410,7 @@ void ManagementAgent::handleMethodRequestLH (const string& body, const string& r + + MapCodec::encode(outMap, content); + sendBufferLH(content, cid, headers, "amqp/map", v2Direct, replyTo); +- QPID_LOG(trace, "SEND MethodResponse (v2) to=" << replyTo << " seq=" << cid << " map=" << outMap); ++ QPID_LOG(debug, "SEND MethodResponse (v2) to=" << replyTo << " seq=" << cid << " map=" << outMap); + } + + +@@ -1389,7 +1419,7 @@ void ManagementAgent::handleBrokerRequestLH (Buffer&, const string& replyToKey, + Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE); + uint32_t outLen; + +- QPID_LOG(trace, "RECV BrokerRequest replyTo=" << replyToKey); ++ QPID_LOG(debug, "RECV BrokerRequest replyTo=" << replyToKey); + + encodeHeader (outBuffer, 'b', sequence); + uuid.encode (outBuffer); +@@ -1397,12 +1427,12 @@ void ManagementAgent::handleBrokerRequestLH (Buffer&, const string& replyToKey, + outLen = MA_BUFFER_SIZE - outBuffer.available (); + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND BrokerResponse to=" << replyToKey); ++ QPID_LOG(debug, "SEND BrokerResponse to=" << replyToKey); + } + + void ManagementAgent::handlePackageQueryLH (Buffer&, const string& replyToKey, uint32_t sequence) + { +- QPID_LOG(trace, "RECV PackageQuery replyTo=" << replyToKey); ++ QPID_LOG(debug, "RECV PackageQuery replyTo=" << replyToKey); + Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE); + uint32_t outLen; + +@@ -1418,7 +1448,7 @@ void ManagementAgent::handlePackageQueryLH (Buffer&, const string& replyToKey, u + if (outLen) { + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND PackageInd to=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "SEND PackageInd to=" << replyToKey << " seq=" << sequence); + } + + sendCommandCompleteLH(replyToKey, sequence); +@@ -1430,7 +1460,7 @@ void ManagementAgent::handlePackageIndLH (Buffer& inBuffer, const string& replyT + + inBuffer.getShortString(packageName); + +- QPID_LOG(trace, "RECV PackageInd package=" << packageName << " replyTo=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "RECV PackageInd package=" << packageName << " replyTo=" << replyToKey << " seq=" << sequence); + + findOrAddPackageLH(packageName); + } +@@ -1441,7 +1471,7 @@ void ManagementAgent::handleClassQueryLH(Buffer& inBuffer, const string& replyTo + + inBuffer.getShortString(packageName); + +- QPID_LOG(trace, "RECV ClassQuery package=" << packageName << " replyTo=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "RECV ClassQuery package=" << packageName << " replyTo=" << replyToKey << " seq=" << sequence); + + PackageMap::iterator pIter = packages.find(packageName); + if (pIter != packages.end()) +@@ -1467,7 +1497,7 @@ void ManagementAgent::handleClassQueryLH(Buffer& inBuffer, const string& replyTo + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND ClassInd class=" << packageName << ":" << classes.front().first.name << ++ QPID_LOG(debug, "SEND ClassInd class=" << packageName << ":" << classes.front().first.name << + "(" << Uuid(classes.front().first.hash) << ") to=" << replyToKey << " seq=" << sequence); + classes.pop_front(); + } +@@ -1486,7 +1516,7 @@ void ManagementAgent::handleClassIndLH (Buffer& inBuffer, const string& replyToK + inBuffer.getShortString(key.name); + inBuffer.getBin128(key.hash); + +- QPID_LOG(trace, "RECV ClassInd class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << ++ QPID_LOG(debug, "RECV ClassInd class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << + "), replyTo=" << replyToKey); + + PackageMap::iterator pIter = findOrAddPackageLH(packageName); +@@ -1503,7 +1533,7 @@ void ManagementAgent::handleClassIndLH (Buffer& inBuffer, const string& replyToK + outLen = MA_BUFFER_SIZE - outBuffer.available (); + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND SchemaRequest class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << ++ QPID_LOG(debug, "SEND SchemaRequest class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << + "), to=" << replyToKey << " seq=" << sequence); + + if (cIter != pIter->second.end()) +@@ -1535,7 +1565,7 @@ void ManagementAgent::handleSchemaRequestLH(Buffer& inBuffer, const string& repl + inBuffer.getShortString (packageName); + key.decode(inBuffer); + +- QPID_LOG(trace, "RECV SchemaRequest class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << ++ QPID_LOG(debug, "RECV SchemaRequest class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << + "), replyTo=" << replyToKey << " seq=" << sequence); + + PackageMap::iterator pIter = packages.find(packageName); +@@ -1553,7 +1583,7 @@ void ManagementAgent::handleSchemaRequestLH(Buffer& inBuffer, const string& repl + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND SchemaResponse to=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "SEND SchemaResponse to=" << replyToKey << " seq=" << sequence); + } + else + sendCommandCompleteLH(replyToKey, sequence, 1, "Schema not available"); +@@ -1576,7 +1606,7 @@ void ManagementAgent::handleSchemaResponseLH(Buffer& inBuffer, const string& /*r + key.decode(inBuffer); + inBuffer.restore(); + +- QPID_LOG(trace, "RECV SchemaResponse class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << ")" << " seq=" << sequence); ++ QPID_LOG(debug, "RECV SchemaResponse class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << ")" << " seq=" << sequence); + + PackageMap::iterator pIter = packages.find(packageName); + if (pIter != packages.end()) { +@@ -1600,7 +1630,7 @@ void ManagementAgent::handleSchemaResponseLH(Buffer& inBuffer, const string& /*r + outLen = MA_BUFFER_SIZE - outBuffer.available(); + outBuffer.reset(); + sendBufferLH(outBuffer, outLen, mExchange, "schema.class"); +- QPID_LOG(trace, "SEND ClassInd class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << ")" << ++ QPID_LOG(debug, "SEND ClassInd class=" << packageName << ":" << key.name << "(" << Uuid(key.hash) << ")" << + " to=schema.class"); + } + } +@@ -1680,7 +1710,7 @@ void ManagementAgent::handleAttachRequestLH (Buffer& inBuffer, const string& rep + requestedBrokerBank = inBuffer.getLong(); + requestedAgentBank = inBuffer.getLong(); + +- QPID_LOG(trace, "RECV (Agent)AttachRequest label=" << label << " reqBrokerBank=" << requestedBrokerBank << ++ QPID_LOG(debug, "RECV (Agent)AttachRequest label=" << label << " reqBrokerBank=" << requestedBrokerBank << + " reqAgentBank=" << requestedAgentBank << " replyTo=" << replyToKey << " seq=" << sequence); + + assignedBank = assignBankLH(requestedAgentBank); +@@ -1700,7 +1730,7 @@ void ManagementAgent::handleAttachRequestLH (Buffer& inBuffer, const string& rep + addObject (agent->mgmtObject, 0); + remoteAgents[connectionRef] = agent; + +- QPID_LOG(trace, "Remote Agent registered bank=[" << brokerBank << "." << assignedBank << "] replyTo=" << replyToKey); ++ QPID_LOG(debug, "Remote Agent registered bank=[" << brokerBank << "." << assignedBank << "] replyTo=" << replyToKey); + + // Send an Attach Response + Buffer outBuffer (outputBuffer, MA_BUFFER_SIZE); +@@ -1712,7 +1742,7 @@ void ManagementAgent::handleAttachRequestLH (Buffer& inBuffer, const string& rep + outLen = MA_BUFFER_SIZE - outBuffer.available (); + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND AttachResponse brokerBank=" << brokerBank << " agentBank=" << assignedBank << ++ QPID_LOG(debug, "SEND AttachResponse brokerBank=" << brokerBank << " agentBank=" << assignedBank << + " to=" << replyToKey << " seq=" << sequence); + } + +@@ -1725,7 +1755,7 @@ void ManagementAgent::handleGetQueryLH(Buffer& inBuffer, const string& replyToKe + + ft.decode(inBuffer); + +- QPID_LOG(trace, "RECV GetQuery (v1) query=" << ft << " seq=" << sequence); ++ QPID_LOG(debug, "RECV GetQuery (v1) query=" << ft << " seq=" << sequence); + + value = ft.get("_class"); + if (value.get() == 0 || !value->convertsTo()) { +@@ -1754,7 +1784,7 @@ void ManagementAgent::handleGetQueryLH(Buffer& inBuffer, const string& replyToKe + outLen = MA_BUFFER_SIZE - outBuffer.available (); + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); + } + } + sendCommandCompleteLH(replyToKey, sequence); +@@ -1799,7 +1829,7 @@ void ManagementAgent::handleGetQueryLH(Buffer& inBuffer, const string& replyToKe + outLen = MA_BUFFER_SIZE - outBuffer.available (); + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); // drops lock +- QPID_LOG(trace, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); + continue; // lock dropped, need to re-find _SAME_ objid as it may have been deleted. + } + encodeHeader(outBuffer, 'g', sequence); +@@ -1815,7 +1845,7 @@ void ManagementAgent::handleGetQueryLH(Buffer& inBuffer, const string& replyToKe + if (outLen) { + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); +- QPID_LOG(trace, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); ++ QPID_LOG(debug, "SEND GetResponse (v1) to=" << replyToKey << " seq=" << sequence); + } + + sendCommandCompleteLH(replyToKey, sequence); +@@ -1831,7 +1861,7 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + Variant::Map headers; + + MapCodec::decode(body, inMap); +- QPID_LOG(trace, "RECV GetQuery (v2): map=" << inMap << " seq=" << cid); ++ QPID_LOG(debug, "RECV GetQuery (v2): map=" << inMap << " seq=" << cid); + + headers["method"] = "response"; + headers["qmf.opcode"] = "_query_response"; +@@ -1913,7 +1943,7 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + + ListCodec::encode(list_, content); + sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); +- QPID_LOG(trace, "SENT QueryResponse (query by object_id) to=" << replyTo); ++ QPID_LOG(debug, "SENT QueryResponse (query by object_id) to=" << replyTo); + return; + } + } else { +@@ -1967,12 +1997,12 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + ListCodec::encode(_list.front().asList(), content); + sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); + _list.pop_front(); +- QPID_LOG(trace, "SENT QueryResponse (partial, query by schema_id) to=" << replyTo << " size=" << content.length()); ++ QPID_LOG(debug, "SENT QueryResponse (partial, query by schema_id) to=" << replyTo << " len=" << content.length()); + } + headers.erase("partial"); + ListCodec::encode(_list.size() ? _list.front().asList() : Variant::List(), content); + sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); +- QPID_LOG(trace, "SENT QueryResponse (query by schema_id) to=" << replyTo << " size=" << content.length()); ++ QPID_LOG(debug, "SENT QueryResponse (query by schema_id) to=" << replyTo << " len=" << content.length()); + return; + } + +@@ -1980,14 +2010,14 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + string content; + ListCodec::encode(Variant::List(), content); + sendBufferLH(content, cid, headers, "amqp/list", v2Direct, replyTo); +- QPID_LOG(trace, "SENT QueryResponse (empty) to=" << replyTo); ++ QPID_LOG(debug, "SENT QueryResponse (empty) to=" << replyTo); + } + + + void ManagementAgent::handleLocateRequestLH(const string&, const string& replyTo, + const string& cid) + { +- QPID_LOG(trace, "RCVD AgentLocateRequest"); ++ QPID_LOG(debug, "RCVD AgentLocateRequest"); + + Variant::Map map; + Variant::Map headers; +@@ -2006,7 +2036,7 @@ void ManagementAgent::handleLocateRequestLH(const string&, const string& replyTo + sendBufferLH(content, cid, headers, "amqp/map", v2Direct, replyTo); + clientWasAdded = true; + +- QPID_LOG(trace, "SENT AgentLocateResponse replyTo=" << replyTo); ++ QPID_LOG(debug, "SENT AgentLocateResponse replyTo=" << replyTo); + } + + +@@ -2149,7 +2179,7 @@ bool ManagementAgent::authorizeAgentMessageLH(Message& msg) + sendBufferLH(outBuffer, outLen, dExchange, replyToKey); + } + +- QPID_LOG(trace, "SEND MethodResponse status=FORBIDDEN" << " seq=" << sequence); ++ QPID_LOG(debug, "SEND MethodResponse status=FORBIDDEN" << " seq=" << sequence); + } + + return false; +@@ -2247,7 +2277,7 @@ ManagementAgent::PackageMap::iterator ManagementAgent::findOrAddPackageLH(string + outLen = MA_BUFFER_SIZE - outBuffer.available (); + outBuffer.reset (); + sendBufferLH(outBuffer, outLen, mExchange, "schema.package"); +- QPID_LOG(trace, "SEND PackageInd package=" << name << " to=schema.package"); ++ QPID_LOG(debug, "SEND PackageInd package=" << name << " to=schema.package"); + + return result.first; + } +@@ -2617,12 +2647,13 @@ void ManagementAgent::importAgents(qpid::framing::Buffer& inBuf) { + } + + namespace { +-bool isNotDeleted(const ManagementObjectMap::value_type& value) { +- return !value.second->isDeleted(); ++bool isDeleted(const ManagementObjectMap::value_type& value) { ++ return value.second->isDeleted(); + } + +-size_t countNotDeleted(const ManagementObjectMap& map) { +- return std::count_if(map.begin(), map.end(), isNotDeleted); ++void summarizeMap(std::ostream& o, const char* name, const ManagementObjectMap& map) { ++ size_t deleted = std::count_if(map.begin(), map.end(), isDeleted); ++ o << map.size() << " " << name << " (" << deleted << " deleted), "; + } + + void dumpMap(std::ostream& o, const ManagementObjectMap& map) { +@@ -2635,13 +2666,18 @@ void dumpMap(std::ostream& o, const ManagementObjectMap& map) { + + string ManagementAgent::debugSnapshot() { + ostringstream msg; +- msg << " management snapshot:"; +- for (RemoteAgentMap::const_iterator i=remoteAgents.begin(); +- i != remoteAgents.end(); ++i) +- msg << " " << i->second->routingKey; +- msg << " packages: " << packages.size(); +- msg << " objects: " << countNotDeleted(managementObjects); +- msg << " new objects: " << countNotDeleted(newManagementObjects); ++ msg << " management snapshot: "; ++ if (!remoteAgents.empty()) { ++ msg << remoteAgents.size() << " agents("; ++ for (RemoteAgentMap::const_iterator i=remoteAgents.begin(); ++ i != remoteAgents.end(); ++i) ++ msg << " " << i->second->routingKey; ++ msg << "), "; ++ } ++ msg << packages.size() << " packages, "; ++ summarizeMap(msg, "objects", managementObjects); ++ summarizeMap(msg, "new objects ", newManagementObjects); ++ msg << pendingDeletedObjs.size() << " pending deletes" ; + return msg.str(); + } + +diff --git a/qpid/cpp/src/qpid/management/ManagementObject.cpp b/qpid/cpp/src/qpid/management/ManagementObject.cpp +index 670a242..cfdd58e 100644 +--- a/qpid/cpp/src/qpid/management/ManagementObject.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementObject.cpp +@@ -262,6 +262,7 @@ void ManagementObject::setUpdateTime() + + void ManagementObject::resourceDestroy() + { ++ QPID_LOG(trace, "Management object marked deleted: " << getObjectId().getV2Key()); + destroyTime = sys::Duration(sys::EPOCH, sys::now()); + deleted = true; + } +diff --git a/qpid/cpp/src/tests/Address.cpp b/qpid/cpp/src/tests/Address.cpp +index bdfb47c..67d86da 100644 +--- a/qpid/cpp/src/tests/Address.cpp ++++ b/qpid/cpp/src/tests/Address.cpp +@@ -99,7 +99,7 @@ QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyList) + Address address("my-topic; {a:[], x:101}"); + BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName()); + Variant::List& list = address.getOptions()["a"].asList(); +- BOOST_CHECK_EQUAL(list.size(), 0); ++ BOOST_CHECK_EQUAL(list.size(), 0u); + BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); + } + +@@ -108,7 +108,7 @@ QPID_AUTO_TEST_CASE(testParseOptionsWithEmptyMap) + Address address("my-topic; {a:{}, x:101}"); + BOOST_CHECK_EQUAL(std::string("my-topic"), address.getName()); + Variant::Map& map = address.getOptions()["a"].asMap(); +- BOOST_CHECK_EQUAL(map.size(), 0); ++ BOOST_CHECK_EQUAL(map.size(), 0u); + BOOST_CHECK_EQUAL((uint16_t) 101, address.getOptions()["x"].asInt64()); + } + +diff --git a/qpid/cpp/src/tests/cluster_test_logs.py b/qpid/cpp/src/tests/cluster_test_logs.py +new file mode 100755 +index 0000000..160e15e +--- /dev/null ++++ b/qpid/cpp/src/tests/cluster_test_logs.py +@@ -0,0 +1,105 @@ ++#!/usr/bin/env python ++ ++# Licensed to the Apache Software Foundation (ASF) under one ++# or more contributor license agreements. See the NOTICE file ++# distributed with this work for additional information ++# regarding copyright ownership. The ASF licenses this file ++# to you under the Apache License, Version 2.0 (the ++# "License"); you may not use this file except in compliance ++# with the License. You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, ++# software distributed under the License is distributed on an ++# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++# KIND, either express or implied. See the License for the ++# specific language governing permissions and limitations ++# under the License. ++# ++ ++# Functions for comparing broker log files, used by cluster_tests.py. ++ ++import os, os.path, re, glob ++from itertools import izip ++ ++def split_log(log): ++ """Split a broker log at checkpoints where a member joins. ++ Return the set of checkpoints discovered.""" ++ checkpoint_re = re.compile("Member joined, frameSeq=([0-9]+), queue snapshot:") ++ outfile = None ++ checkpoints = [] ++ for l in open(log): ++ match = checkpoint_re.search(l) ++ if match: ++ checkpoint = match.groups()[0] ++ checkpoints.append(checkpoint) ++ if outfile: outfile.close() ++ outfile = open("%s.%s"%(log, checkpoint), 'w') ++ ++ if outfile: outfile.write(l) ++ if outfile: outfile.close() ++ return checkpoints ++ ++def filter_log(log): ++ """Filter the contents of a log file to remove data that is expected ++ to differ between brokers in a cluster. Filtered log contents between ++ the same checkpoints should match across the cluster.""" ++ out = open("%s.filter"%(log), 'w') ++ for l in open(log): ++ # Lines to skip entirely ++ skip = "|".join([ ++ 'local connection', # Only on local broker ++ 'UPDATER|UPDATEE|OFFER', # Ignore update process ++ 'stall for update|unstall, ignore update|cancelled offer .* unstall', ++ 'caught up', ++ 'active for links|Passivating links|Activating links', ++ 'info Connection.* connected to', # UpdateClient connection ++ 'warning Broker closed connection: 200, OK', ++ 'task late', ++ 'task overran' ++ ]) ++ if re.compile(skip).search(l): continue ++ ++ # Regex to match a UUID ++ uuid='\w\w\w\w\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w\w\w\w\w\w\w\w\w' ++ ++ # Regular expression substitutions to remove expected differences ++ for pattern,subst in [ ++ (r'\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d', ''), # Remove timestamp ++ (r'cluster\([0-9.: ]*', 'cluster('), # Remove cluster node id ++ (r' local\)| shadow\)', ')'), # Remove local/shadow indication ++ (r'CATCHUP', 'READY'), # Treat catchup as equivalent to ready. ++ # System UUID ++ (r'(org.apache.qpid.broker:system[:(])%s(\)?)'%(uuid), r'\1UUID\2'), ++ ++ # FIXME aconway 2010-12-20: substitutions to mask known problems ++ #(r' len=\d+', ' len=NN'), # buffer lengths ++ #(r' map={.*_object_name:([^,}]*)[,}].*', r' \1'), # V2 map - just keep name ++ #(r'\d+-\d+-\d+--\d+', 'X-X-X--X'), # V1 Object IDs ++ ]: l = re.sub(pattern,subst,l) ++ out.write(l) ++ out.close() ++ ++def verify_logs(logs): ++ """Compare log files from cluster brokers, verify that they correspond correctly.""" ++ for l in glob.glob("*.log"): filter_log(l) ++ checkpoints = set() ++ for l in glob.glob("*.filter"): checkpoints = checkpoints.union(set(split_log(l))) ++ errors=[] ++ for c in checkpoints: ++ fragments = glob.glob("*.filter.%s"%(c)) ++ fragments.sort(reverse=True, key=os.path.getsize) ++ while len(fragments) >= 2: ++ a = fragments.pop(0) ++ b = fragments[0] ++ for ab in izip(open(a), open(b)): ++ if ab[0] != ab[1]: ++ errors.append("\n %s %s"%(a, b)) ++ break ++ if errors: ++ raise Exception("Files differ in %s"%(os.getcwd())+"".join(errors)) ++ ++# Can be run as a script. ++if __name__ == "__main__": ++ verify_logs(glob.glob("*.log")) +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index ea3c445..4a9d518 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -18,7 +18,8 @@ + # under the License. + # + +-import os, signal, sys, time, imp, re ++import os, signal, sys, time, imp, re, subprocess, glob, cluster_test_logs ++ + from qpid import datatypes, messaging + from qpid.brokertest import * + from qpid.harness import Skipped +@@ -35,7 +36,7 @@ log = getLogger("qpid.cluster_tests") + # a non-0 code. Hence the apparently inconsistent use of EXPECT_EXIT_OK + # and EXPECT_EXIT_FAIL in some of the tests below. + +-# FIXME aconway 2010-03-11: resolve this - ideally any exit due to an error ++# TODO aconway 2010-03-11: resolve this - ideally any exit due to an error + # should give non-0 exit status. + + # Import scripts as modules +@@ -221,7 +222,10 @@ class LongTests(BrokerTest): + for i in range(i, len(cluster)): cluster[i].kill() + + def test_management(self, args=[]): +- """Stress test: Run management clients and other clients concurrently.""" ++ """ ++ Stress test: Run management clients and other clients concurrently ++ while killing and restarting brokers. ++ """ + + # TODO aconway 2010-03-03: move to brokertest framework + class ClientLoop(StoppableThread): +@@ -282,8 +286,10 @@ class LongTests(BrokerTest): + finally: self.lock.release() + StoppableThread.stop(self) + +- # def test_management +- args += ["--mgmt-pub-interval", 1] # Publish management information every second. ++ # body of test_management() ++ ++ args += ["--mgmt-pub-interval", 1] ++ args += ["--log-enable=trace+:management"] + # Use store if present. + if BrokerTest.store_lib: args +=["--load-module", BrokerTest.store_lib] + cluster = self.cluster(3, args) +@@ -333,6 +339,10 @@ class LongTests(BrokerTest): + start_mclients(cluster[alive]) + for c in chain(mclients, *clients): + c.stop() ++ # Verify that logs are consistent ++ # FIXME aconway 2010-12-21: this is currently expected to fail due to ++ # known bugs, see https://issues.apache.org/jira/browse/QPID-2982 ++ self.assertRaises(Exception, cluster_test_logs.verify_logs, glob.glob("*.log")) + + def test_management_qmf2(self): + self.test_management(args=["--mgmt-qmf2=yes"]) +@@ -436,7 +446,7 @@ class StoreTests(BrokerTest): + self.assertEqual(a.wait(), 0) + self.assertEqual(c.wait(), 0) + # Mix members from both shutdown events, they should fail +- # FIXME aconway 2010-03-11: can't predict the exit status of these ++ # TODO aconway 2010-03-11: can't predict the exit status of these + # as it depends on the order of delivery of initial-status messages. + # See comment at top of this file. + a = cluster.start("a", expect=EXPECT_UNKNOWN, wait=False) +-- +1.5.5.6 + +From a59e5240119cf20f8be8e65d71c733d0b0e00cb4 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 13 Jan 2011 17:04:10 +0000 +Subject: [PATCH] Bug 654872 - MRG clustered node fails with invalid-argument - fix object counts + +QPID-2982: Fix discrepancy in management object and deleted object counts. + +cluster_tests.test_management was showing discrepancy in management +object and deleted object count after a new member update. + +In ManagementAgent.cpp, code to move deleted objects into +pendingDeletedObjs was duplicated in 2 places. + +Moved duplicated code into a function moveDeletedObjectsLH() + +Call moveDeletedObjectsLH from clusterUpdate to correct discrepancy in +object count around update. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1058664 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 077ff9e2061a7175ae346de36cb801afefd1762a) +--- + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 3 +- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 225 +++++++++------------- + qpid/cpp/src/qpid/management/ManagementAgent.h | 5 +- + qpid/cpp/src/tests/cluster_test_logs.py | 17 +- + qpid/cpp/src/tests/cluster_tests.py | 6 +- + 5 files changed, 112 insertions(+), 144 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 50d5c2b..e54d239 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -188,8 +188,7 @@ void UpdateClient::update() { + // + sys::usleep(10*1000); + +- QPID_LOG(debug, *this << " update completed to " << updateeId +- << " at " << updateeUrl << ": " << membership); ++ QPID_LOG(debug, *this << " update completed to " << updateeId << " at " << updateeUrl); + } + + namespace { +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 2edb3ec..d282d3e 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -462,9 +462,10 @@ void ManagementAgent::clusterUpdate() { + // Set clientWasAdded so that on the next periodicProcessing we will do + // a full update on all cluster members. + sys::Mutex::ScopedLock l(userLock); +- moveNewObjectsLH(); // to be consistent with updater/updatee. ++ moveNewObjectsLH(); // keep lists consistent with updater/updatee. ++ moveDeletedObjectsLH(); + clientWasAdded = true; +- QPID_LOG(debug, "Cluster member joined, " << debugSnapshot()); ++ debugSnapshot("Cluster member joined"); + } + + void ManagementAgent::encodeHeader (Buffer& buf, uint8_t opcode, uint32_t seq) +@@ -624,12 +625,11 @@ void ManagementAgent::periodicProcessing (void) + { + #define BUFSIZE 65536 + #define HEADROOM 4096 +- QPID_LOG(debug, "Management agent periodic processing"); ++ debugSnapshot("Management agent periodic processing"); + sys::Mutex::ScopedLock lock (userLock); + char msgChars[BUFSIZE]; + uint32_t contentSize; + string routingKey; +- list > deleteList; + string sBuf; + + uint64_t uptime = sys::Duration(startTime, sys::now()); +@@ -644,11 +644,6 @@ void ManagementAgent::periodicProcessing (void) + iter != managementObjects.end(); + iter++) { + ManagementObject* object = iter->second; +- +- if (object->isDeleted()) { +- deleteList.push_back(pair(iter->first, object)); +- } +- + object->setFlags(0); + if (clientWasAdded) { + object->setForcePublish(true); +@@ -657,53 +652,7 @@ void ManagementAgent::periodicProcessing (void) + + clientWasAdded = false; + +- // Remove Deleted objects, and save for later publishing... +- // +- for (list >::reverse_iterator iter = deleteList.rbegin(); +- iter != deleteList.rend(); +- iter++) { +- +- ManagementObject* delObj = iter->second; +- DeletedObject::shared_ptr dptr(new DeletedObject()); +- std::string classkey(delObj->getPackageName() + std::string(":") + delObj->getClassName()); +- bool send_stats = (delObj->hasInst() && (delObj->getInstChanged() || delObj->getForcePublish())); +- +- dptr->packageName = delObj->getPackageName(); +- dptr->className = delObj->getClassName(); +- stringstream oid; +- oid << delObj->getObjectId(); +- dptr->objectId = oid.str(); +- +- if (qmf1Support) { +- delObj->writeProperties(dptr->encodedV1Config); +- if (send_stats) { +- delObj->writeStatistics(dptr->encodedV1Inst); +- } +- } +- +- if (qmf2Support) { +- Variant::Map map_; +- Variant::Map values; +- Variant::Map oid; +- +- delObj->getObjectId().mapEncode(oid); +- map_["_object_id"] = oid; +- map_["_schema_id"] = mapEncodeSchemaId(delObj->getPackageName(), +- delObj->getClassName(), +- "_data", +- delObj->getMd5Sum()); +- delObj->writeTimestamps(map_); +- delObj->mapEncodeValues(values, true, send_stats); +- map_["_values"] = values; +- +- dptr->encodedV2 = map_; +- } +- +- pendingDeletedObjs[classkey].push_back(dptr); +- +- delete iter->second; +- managementObjects.erase(iter->first); +- } ++ bool objectsDeleted = moveDeletedObjectsLH(); + + // + // Process the entire object map. Remember: we drop the userLock each time we call +@@ -977,10 +926,7 @@ void ManagementAgent::periodicProcessing (void) + } // end map + } + +- if (!deleteList.empty()) { +- deleteList.clear(); +- deleteOrphanedAgentsLH(); +- } ++ if (objectsDeleted) deleteOrphanedAgentsLH(); + + // heartbeat generation + +@@ -1027,7 +973,6 @@ void ManagementAgent::periodicProcessing (void) + + QPID_LOG(debug, "SENT AgentHeartbeat name=" << name_address); + } +- QPID_LOG(debug, "periodic update " << debugSnapshot()); + } + + void ManagementAgent::deleteObjectNowLH(const ObjectId& oid) +@@ -2651,22 +2596,26 @@ bool isDeleted(const ManagementObjectMap::value_type& value) { + return value.second->isDeleted(); + } + +-void summarizeMap(std::ostream& o, const char* name, const ManagementObjectMap& map) { ++string summarizeMap(const char* name, const ManagementObjectMap& map) { ++ ostringstream o; + size_t deleted = std::count_if(map.begin(), map.end(), isDeleted); + o << map.size() << " " << name << " (" << deleted << " deleted), "; ++ return o.str(); + } + +-void dumpMap(std::ostream& o, const ManagementObjectMap& map) { ++string dumpMap(const ManagementObjectMap& map) { ++ ostringstream o; + for (ManagementObjectMap::const_iterator i = map.begin(); i != map.end(); ++i) { +- if (!i->second->isDeleted()) +- o << endl << " " << i->second->getObjectId().getV2Key(); ++ o << endl << " " << i->second->getObjectId().getV2Key() ++ << (i->second->isDeleted() ? " (deleted)" : ""); + } ++ return o.str(); + } ++ + } // namespace + +-string ManagementAgent::debugSnapshot() { ++string ManagementAgent::summarizeAgents() { + ostringstream msg; +- msg << " management snapshot: "; + if (!remoteAgents.empty()) { + msg << remoteAgents.size() << " agents("; + for (RemoteAgentMap::const_iterator i=remoteAgents.begin(); +@@ -2674,13 +2623,24 @@ string ManagementAgent::debugSnapshot() { + msg << " " << i->second->routingKey; + msg << "), "; + } +- msg << packages.size() << " packages, "; +- summarizeMap(msg, "objects", managementObjects); +- summarizeMap(msg, "new objects ", newManagementObjects); +- msg << pendingDeletedObjs.size() << " pending deletes" ; + return msg.str(); + } + ++ ++void ManagementAgent::debugSnapshot(const char* title) { ++ QPID_LOG(debug, title << ": management snapshot: " ++ << packages.size() << " packages, " ++ << summarizeMap("objects", managementObjects) ++ << summarizeMap("new objects ", newManagementObjects) ++ << pendingDeletedObjs.size() << " pending deletes" ++ << summarizeAgents()); ++ ++ QPID_LOG_IF(trace, managementObjects.size(), ++ title << ": objects" << dumpMap(managementObjects)); ++ QPID_LOG_IF(trace, newManagementObjects.size(), ++ title << ": new objects" << dumpMap(newManagementObjects)); ++} ++ + Variant::Map ManagementAgent::toMap(const FieldTable& from) + { + Variant::Map map; +@@ -2883,70 +2843,11 @@ void ManagementAgent::exportDeletedObjects(DeletedObjectList& outList) + outList.clear(); + + sys::Mutex::ScopedLock lock (userLock); +- list > deleteList; + + moveNewObjectsLH(); +- +- for (ManagementObjectMap::iterator iter = managementObjects.begin(); +- iter != managementObjects.end(); +- iter++) { +- ManagementObject* object = iter->second; +- +- if (object->isDeleted()) { +- deleteList.push_back(pair(iter->first, object)); +- } +- } +- +- // Remove Deleted objects, and save for later publishing... +- // +- for (list >::reverse_iterator iter = deleteList.rbegin(); +- iter != deleteList.rend(); +- iter++) { +- +- ManagementObject* delObj = iter->second; +- DeletedObject::shared_ptr dptr(new DeletedObject()); +- std::string classkey(delObj->getPackageName() + std::string(":") + delObj->getClassName()); +- bool send_stats = (delObj->hasInst() && (delObj->getInstChanged() || delObj->getForcePublish())); +- +- dptr->packageName = delObj->getPackageName(); +- dptr->className = delObj->getClassName(); +- stringstream oid; +- oid << delObj->getObjectId(); +- dptr->objectId = oid.str(); +- +- if (qmf1Support) { +- delObj->writeProperties(dptr->encodedV1Config); +- if (send_stats) { +- delObj->writeStatistics(dptr->encodedV1Inst); +- } +- } +- +- if (qmf2Support) { +- Variant::Map map_; +- Variant::Map values; +- Variant::Map oid; +- +- delObj->getObjectId().mapEncode(oid); +- map_["_object_id"] = oid; +- map_["_schema_id"] = mapEncodeSchemaId(delObj->getPackageName(), +- delObj->getClassName(), +- "_data", +- delObj->getMd5Sum()); +- delObj->writeTimestamps(map_); +- delObj->mapEncodeValues(values, true, send_stats); +- map_["_values"] = values; +- +- dptr->encodedV2 = map_; +- } +- +- pendingDeletedObjs[classkey].push_back(dptr); +- +- delete iter->second; +- managementObjects.erase(iter->first); +- } ++ moveDeletedObjectsLH(); + + // now copy the pending deletes into the outList +- + for (PendingDeletedObjsMap::iterator mIter = pendingDeletedObjs.begin(); + mIter != pendingDeletedObjs.end(); mIter++) { + for (DeletedObjectList::iterator lIter = mIter->second.begin(); +@@ -2965,6 +2866,7 @@ void ManagementAgent::importDeletedObjects(const DeletedObjectList& inList) + moveNewObjectsLH(); + pendingDeletedObjs.clear(); + ManagementObjectMap::iterator i = managementObjects.begin(); ++ // Silently drop any deleted objects left over from receiving the update. + while (i != managementObjects.end()) { + ManagementObject* object = i->second; + if (object->isDeleted()) { +@@ -3017,3 +2919,64 @@ void ManagementAgent::DeletedObject::encode(std::string& toBuffer) + + MapCodec::encode(map_, toBuffer); + } ++ ++// Remove Deleted objects, and save for later publishing... ++bool ManagementAgent::moveDeletedObjectsLH() { ++ typedef vector > DeleteList; ++ DeleteList deleteList; ++ for (ManagementObjectMap::iterator iter = managementObjects.begin(); ++ iter != managementObjects.end(); ++ ++iter) ++ { ++ ManagementObject* object = iter->second; ++ if (object->isDeleted()) deleteList.push_back(*iter); ++ } ++ ++ // Iterate in reverse over deleted object list ++ for (DeleteList::reverse_iterator iter = deleteList.rbegin(); ++ iter != deleteList.rend(); ++ iter++) ++ { ++ ManagementObject* delObj = iter->second; ++ assert(delObj->isDeleted()); ++ DeletedObject::shared_ptr dptr(new DeletedObject()); ++ std::string classkey(delObj->getPackageName() + std::string(":") + delObj->getClassName()); ++ bool send_stats = (delObj->hasInst() && (delObj->getInstChanged() || delObj->getForcePublish())); ++ ++ dptr->packageName = delObj->getPackageName(); ++ dptr->className = delObj->getClassName(); ++ stringstream oid; ++ oid << delObj->getObjectId(); ++ dptr->objectId = oid.str(); ++ ++ if (qmf1Support) { ++ delObj->writeProperties(dptr->encodedV1Config); ++ if (send_stats) { ++ delObj->writeStatistics(dptr->encodedV1Inst); ++ } ++ } ++ ++ if (qmf2Support) { ++ Variant::Map map_; ++ Variant::Map values; ++ Variant::Map oid; ++ ++ delObj->getObjectId().mapEncode(oid); ++ map_["_object_id"] = oid; ++ map_["_schema_id"] = mapEncodeSchemaId(delObj->getPackageName(), ++ delObj->getClassName(), ++ "_data", ++ delObj->getMd5Sum()); ++ delObj->writeTimestamps(map_); ++ delObj->mapEncodeValues(values, true, send_stats); ++ map_["_values"] = values; ++ ++ dptr->encodedV2 = map_; ++ } ++ ++ pendingDeletedObjs[classkey].push_back(dptr); ++ managementObjects.erase(iter->first); ++ delete iter->second; ++ } ++ return !deleteList.empty(); ++} +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index 7f5f3a8..87c39a6 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -357,6 +357,7 @@ private: + const std::string& routingKey, + uint64_t ttl_msec = 0); + void moveNewObjectsLH(); ++ bool moveDeletedObjectsLH(); + + bool authorizeAgentMessageLH(qpid::broker::Message& msg); + void dispatchAgentCommandLH(qpid::broker::Message& msg, bool viaLocal=false); +@@ -399,7 +400,9 @@ private: + size_t validateTableSchema(framing::Buffer&); + size_t validateEventSchema(framing::Buffer&); + ManagementObjectMap::iterator numericFind(const ObjectId& oid); +- std::string debugSnapshot(); ++ ++ std::string summarizeAgents(); ++ void debugSnapshot(const char* title); + }; + + }} +diff --git a/qpid/cpp/src/tests/cluster_test_logs.py b/qpid/cpp/src/tests/cluster_test_logs.py +index 160e15e..261b1d5 100755 +--- a/qpid/cpp/src/tests/cluster_test_logs.py ++++ b/qpid/cpp/src/tests/cluster_test_logs.py +@@ -50,14 +50,15 @@ def filter_log(log): + # Lines to skip entirely + skip = "|".join([ + 'local connection', # Only on local broker +- 'UPDATER|UPDATEE|OFFER', # Ignore update process ++ 'UPDATER|UPDATEE', # Ignore update process + 'stall for update|unstall, ignore update|cancelled offer .* unstall', + 'caught up', + 'active for links|Passivating links|Activating links', + 'info Connection.* connected to', # UpdateClient connection + 'warning Broker closed connection: 200, OK', + 'task late', +- 'task overran' ++ 'task overran', ++ 'warning CLOSING .* unsent data' + ]) + if re.compile(skip).search(l): continue + +@@ -66,17 +67,19 @@ def filter_log(log): + + # Regular expression substitutions to remove expected differences + for pattern,subst in [ +- (r'\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d', ''), # Remove timestamp ++ (r'\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d ', ''), # Remove timestamp + (r'cluster\([0-9.: ]*', 'cluster('), # Remove cluster node id + (r' local\)| shadow\)', ')'), # Remove local/shadow indication + (r'CATCHUP', 'READY'), # Treat catchup as equivalent to ready. +- # System UUID ++ (r'OFFER', 'READY'), # Treat offer as equivalent to ready. ++ # System UUID expected to be different + (r'(org.apache.qpid.broker:system[:(])%s(\)?)'%(uuid), r'\1UUID\2'), + + # FIXME aconway 2010-12-20: substitutions to mask known problems +- #(r' len=\d+', ' len=NN'), # buffer lengths +- #(r' map={.*_object_name:([^,}]*)[,}].*', r' \1'), # V2 map - just keep name +- #(r'\d+-\d+-\d+--\d+', 'X-X-X--X'), # V1 Object IDs ++ # See https://issues.apache.org/jira/browse/QPID-2982 ++ (r' len=\d+', ' len=NN'), # buffer lengths ++ (r' map={.*_object_name:([^,}]*)[,}].*', r' \1'), # V2 map - just keep name ++ (r'\d+-\d+-\d+--\d+', 'X-X-X--X'), # V1 Object IDs + ]: l = re.sub(pattern,subst,l) + out.write(l) + out.close() +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index 4a9d518..975175c 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -339,10 +339,10 @@ class LongTests(BrokerTest): + start_mclients(cluster[alive]) + for c in chain(mclients, *clients): + c.stop() ++ + # Verify that logs are consistent +- # FIXME aconway 2010-12-21: this is currently expected to fail due to +- # known bugs, see https://issues.apache.org/jira/browse/QPID-2982 +- self.assertRaises(Exception, cluster_test_logs.verify_logs, glob.glob("*.log")) ++ # FIXME aconway 2011-01-11: disabled due to known bugs, see QPID-2982 ++ # cluster_test_logs.verify_logs(glob.glob("*.log")) + + def test_management_qmf2(self): + self.test_management(args=["--mgmt-qmf2=yes"]) +-- +1.5.5.6 + +From ffddbd9826e636e322a74fcc6ef94c6800cfd962 Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Tue, 18 Jan 2011 14:51:31 +0000 +Subject: [PATCH] QPID-2997, Bug 669343: remove oid disambiguation, re-order mgmt object status updates. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1060401 13f79535-47bb-0310-9956-ffa450edef68 +--- + .../cpp/include/qpid/management/ManagementObject.h | 1 - + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 403 ++++++----- + qpid/cpp/src/qpid/management/ManagementAgent.h | 10 +- + qpid/cpp/src/qpid/management/ManagementObject.cpp | 4 - + qpid/cpp/src/tests/BrokerMgmtAgent.cpp | 792 ++++++++++++++++++++ + 5 files changed, 1024 insertions(+), 186 deletions(-) + create mode 100644 qpid/cpp/src/tests/BrokerMgmtAgent.cpp + +diff --git a/qpid/cpp/include/qpid/management/ManagementObject.h b/qpid/cpp/include/qpid/management/ManagementObject.h +index dec5a63..747edda 100644 +--- a/qpid/cpp/include/qpid/management/ManagementObject.h ++++ b/qpid/cpp/include/qpid/management/ManagementObject.h +@@ -82,7 +82,6 @@ public: + QPID_COMMON_EXTERN bool equalV1(const ObjectId &other) const; + QPID_COMMON_EXTERN void setV2Key(const std::string& _key) { v2Key = _key; } + QPID_COMMON_EXTERN void setV2Key(const ManagementObject& object); +- QPID_COMMON_EXTERN void disambiguate(); + QPID_COMMON_EXTERN void setAgentName(const std::string& _name) { agentName = _name; } + QPID_COMMON_EXTERN const std::string& getAgentName() const { return agentName; } + QPID_COMMON_EXTERN const std::string& getV2Key() const { return v2Key; } +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index d282d3e..407b907 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -306,12 +306,7 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, uint64_t persistId + + { + sys::Mutex::ScopedLock lock(addLock); +- ManagementObjectMap::iterator destIter = newManagementObjects.find(objId); +- while (destIter != newManagementObjects.end()) { +- objId.disambiguate(); +- destIter = newManagementObjects.find(objId); +- } +- newManagementObjects[objId] = object; ++ newManagementObjects.push_back(object); + } + QPID_LOG(debug, "Management object (V1) added: " << objId.getV2Key()); + return objId; +@@ -337,12 +332,7 @@ ObjectId ManagementAgent::addObject(ManagementObject* object, + object->setObjectId(objId); + { + sys::Mutex::ScopedLock lock(addLock); +- ManagementObjectMap::iterator destIter = newManagementObjects.find(objId); +- while (destIter != newManagementObjects.end()) { +- objId.disambiguate(); +- destIter = newManagementObjects.find(objId); +- } +- newManagementObjects[objId] = object; ++ newManagementObjects.push_back(object); + } + QPID_LOG(debug, "Management object added: " << objId.getV2Key()); + return objId; +@@ -603,22 +593,50 @@ void ManagementAgent::sendBufferLH(const string& data, + } + + ++/** Objects that have been added since the last periodic poll are temporarily ++ * saved in the newManagementObjects list. This allows objects to be ++ * added without needing to block on the userLock (addLock is used instead). ++ * These new objects need to be integrated into the object database ++ * (managementObjects) *before* they can be properly managed. This routine ++ * performs the integration. ++ * ++ * Note well: objects on the newManagementObjects list may have been ++ * marked as "deleted", and, possibly re-added. This would result in ++ * duplicate object ids. To avoid clashes, don't put deleted objects ++ * into the active object database. ++ */ + void ManagementAgent::moveNewObjectsLH() + { + sys::Mutex::ScopedLock lock (addLock); +- for (ManagementObjectMap::iterator iter = newManagementObjects.begin (); +- iter != newManagementObjects.end (); +- iter++) { +- ObjectId oid = iter->first; +- ManagementObjectMap::iterator destIter = managementObjects.find(oid); +- while (destIter != managementObjects.end()) { +- oid.disambiguate(); +- destIter = managementObjects.find(oid); +- } ++ while (!newManagementObjects.empty()) { ++ ManagementObject *object = newManagementObjects.back(); ++ newManagementObjects.pop_back(); + +- managementObjects[oid] = iter->second; ++ if (object->isDeleted()) { ++ DeletedObject::shared_ptr dptr(new DeletedObject(object, qmf1Support, qmf2Support)); ++ pendingDeletedObjs[dptr->getKey()].push_back(dptr); ++ delete object; ++ } else { // add to active object list, check for duplicates. ++ ObjectId oid = object->getObjectId(); ++ ManagementObjectMap::iterator destIter = managementObjects.find(oid); ++ if (destIter != managementObjects.end()) { ++ // duplicate found. It is OK if the old object has been marked ++ // deleted... ++ ManagementObject *oldObj = destIter->second; ++ if (oldObj->isDeleted()) { ++ DeletedObject::shared_ptr dptr(new DeletedObject(oldObj, qmf1Support, qmf2Support)); ++ pendingDeletedObjs[dptr->getKey()].push_back(dptr); ++ delete oldObj; ++ } else { ++ // Duplicate non-deleted objects? This is a user error - oids must be unique. ++ // for now, leak the old object (safer than deleting - may still be referenced) ++ // and complain loudly... ++ QPID_LOG(error, "Detected two management objects with the same identifier: " << oid); ++ } ++ } ++ managementObjects[oid] = object; ++ } + } +- newManagementObjects.clear(); + } + + void ManagementAgent::periodicProcessing (void) +@@ -652,7 +670,126 @@ void ManagementAgent::periodicProcessing (void) + + clientWasAdded = false; + ++ // first send the pending deletes before sending updates. This prevents a ++ // "false delete" scenario: if an object was deleted then re-added during ++ // the last poll cycle, it will have a delete entry and an active entry. ++ // if we sent the active update first, _then_ the delete update, clients ++ // would incorrectly think the object was deleted. See QPID-2997 ++ // + bool objectsDeleted = moveDeletedObjectsLH(); ++ if (!pendingDeletedObjs.empty()) { ++ // use a temporary copy of the pending deletes so dropping the lock when ++ // the buffer is sent is safe. ++ PendingDeletedObjsMap tmp(pendingDeletedObjs); ++ pendingDeletedObjs.clear(); ++ ++ for (PendingDeletedObjsMap::iterator mIter = tmp.begin(); mIter != tmp.end(); mIter++) { ++ std::string packageName; ++ std::string className; ++ Buffer msgBuffer(msgChars, BUFSIZE); ++ uint32_t v1Objs = 0; ++ uint32_t v2Objs = 0; ++ Variant::List list_; ++ ++ size_t pos = mIter->first.find(":"); ++ packageName = mIter->first.substr(0, pos); ++ className = mIter->first.substr(pos+1); ++ ++ for (DeletedObjectList::iterator lIter = mIter->second.begin(); ++ lIter != mIter->second.end(); lIter++) { ++ std::string oid = (*lIter)->objectId; ++ if (!(*lIter)->encodedV1Config.empty()) { ++ encodeHeader(msgBuffer, 'c'); ++ msgBuffer.putRawData((*lIter)->encodedV1Config); ++ QPID_LOG(trace, "Deleting V1 properties " << oid ++ << " len=" << (*lIter)->encodedV1Config.size()); ++ v1Objs++; ++ } ++ if (!(*lIter)->encodedV1Inst.empty()) { ++ encodeHeader(msgBuffer, 'i'); ++ msgBuffer.putRawData((*lIter)->encodedV1Inst); ++ QPID_LOG(trace, "Deleting V1 statistics " << oid ++ << " len=" << (*lIter)->encodedV1Inst.size()); ++ v1Objs++; ++ } ++ if (v1Objs && msgBuffer.available() < HEADROOM) { ++ v1Objs = 0; ++ contentSize = BUFSIZE - msgBuffer.available(); ++ stringstream key; ++ key << "console.obj.1.0." << packageName << "." << className; ++ msgBuffer.reset(); ++ sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(debug, "SEND V1 Multicast ContentInd V1 (delete) to=" ++ << key.str() << " len=" << contentSize); ++ } ++ ++ if (!(*lIter)->encodedV2.empty()) { ++ QPID_LOG(trace, "Deleting V2 " << "map=" << (*lIter)->encodedV2); ++ list_.push_back((*lIter)->encodedV2); ++ if (++v2Objs >= maxV2ReplyObjs) { ++ v2Objs = 0; ++ ++ string content; ++ ListCodec::encode(list_, content); ++ list_.clear(); ++ if (content.length()) { ++ stringstream key; ++ Variant::Map headers; ++ key << "agent.ind.data." << keyifyNameStr(packageName) ++ << "." << keyifyNameStr(className) ++ << "." << vendorNameKey ++ << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ key << "." << instanceNameKey; ++ ++ headers["method"] = "indication"; ++ headers["qmf.opcode"] = "_data_indication"; ++ headers["qmf.content"] = "_data"; ++ headers["qmf.agent"] = name_address; ++ ++ sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(debug, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); ++ } ++ } ++ } ++ } // end current list ++ ++ // send any remaining objects... ++ ++ if (v1Objs) { ++ contentSize = BUFSIZE - msgBuffer.available(); ++ stringstream key; ++ key << "console.obj.1.0." << packageName << "." << className; ++ msgBuffer.reset(); ++ sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(debug, "SEND V1 Multicast ContentInd V1 (delete) to=" << key.str() << " len=" << contentSize); ++ } ++ ++ if (!list_.empty()) { ++ string content; ++ ListCodec::encode(list_, content); ++ list_.clear(); ++ if (content.length()) { ++ stringstream key; ++ Variant::Map headers; ++ key << "agent.ind.data." << keyifyNameStr(packageName) ++ << "." << keyifyNameStr(className) ++ << "." << vendorNameKey ++ << "." << productNameKey; ++ if (!instanceNameKey.empty()) ++ key << "." << instanceNameKey; ++ ++ headers["method"] = "indication"; ++ headers["qmf.opcode"] = "_data_indication"; ++ headers["qmf.content"] = "_data"; ++ headers["qmf.agent"] = name_address; ++ ++ sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK ++ QPID_LOG(debug, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); ++ } ++ } ++ } // end map ++ } + + // + // Process the entire object map. Remember: we drop the userLock each time we call +@@ -810,122 +947,6 @@ void ManagementAgent::periodicProcessing (void) + } + } // end processing updates for all objects + +- +- // now send the pending deletes. Make a temporary copy of the pending deletes so dropping the +- // lock when the buffer is sent is safe. +- // +- if (!pendingDeletedObjs.empty()) { +- PendingDeletedObjsMap tmp(pendingDeletedObjs); +- pendingDeletedObjs.clear(); +- +- for (PendingDeletedObjsMap::iterator mIter = tmp.begin(); mIter != tmp.end(); mIter++) { +- std::string packageName; +- std::string className; +- Buffer msgBuffer(msgChars, BUFSIZE); +- uint32_t v1Objs = 0; +- uint32_t v2Objs = 0; +- Variant::List list_; +- +- size_t pos = mIter->first.find(":"); +- packageName = mIter->first.substr(0, pos); +- className = mIter->first.substr(pos+1); +- +- for (DeletedObjectList::iterator lIter = mIter->second.begin(); +- lIter != mIter->second.end(); lIter++) { +- std::string oid = (*lIter)->objectId; +- if (!(*lIter)->encodedV1Config.empty()) { +- encodeHeader(msgBuffer, 'c'); +- msgBuffer.putRawData((*lIter)->encodedV1Config); +- QPID_LOG(trace, "Deleting V1 properties " << oid +- << " len=" << (*lIter)->encodedV1Config.size()); +- v1Objs++; +- } +- if (!(*lIter)->encodedV1Inst.empty()) { +- encodeHeader(msgBuffer, 'i'); +- msgBuffer.putRawData((*lIter)->encodedV1Inst); +- QPID_LOG(trace, "Deleting V1 statistics " << oid +- << " len=" << (*lIter)->encodedV1Inst.size()); +- v1Objs++; +- } +- if (v1Objs && msgBuffer.available() < HEADROOM) { +- v1Objs = 0; +- contentSize = BUFSIZE - msgBuffer.available(); +- stringstream key; +- key << "console.obj.1.0." << packageName << "." << className; +- msgBuffer.reset(); +- sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(debug, "SEND V1 Multicast ContentInd V1 (delete) to=" +- << key.str() << " len=" << contentSize); +- } +- +- if (!(*lIter)->encodedV2.empty()) { +- QPID_LOG(trace, "Deleting V2 " << "map=" << (*lIter)->encodedV2); +- list_.push_back((*lIter)->encodedV2); +- if (++v2Objs >= maxV2ReplyObjs) { +- v2Objs = 0; +- +- string content; +- ListCodec::encode(list_, content); +- list_.clear(); +- if (content.length()) { +- stringstream key; +- Variant::Map headers; +- key << "agent.ind.data." << keyifyNameStr(packageName) +- << "." << keyifyNameStr(className) +- << "." << vendorNameKey +- << "." << productNameKey; +- if (!instanceNameKey.empty()) +- key << "." << instanceNameKey; +- +- headers["method"] = "indication"; +- headers["qmf.opcode"] = "_data_indication"; +- headers["qmf.content"] = "_data"; +- headers["qmf.agent"] = name_address; +- +- sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(debug, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); +- } +- } +- } +- } // end current list +- +- // send any remaining objects... +- +- if (v1Objs) { +- contentSize = BUFSIZE - msgBuffer.available(); +- stringstream key; +- key << "console.obj.1.0." << packageName << "." << className; +- msgBuffer.reset(); +- sendBufferLH(msgBuffer, contentSize, mExchange, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(debug, "SEND V1 Multicast ContentInd V1 (delete) to=" << key.str() << " len=" << contentSize); +- } +- +- if (!list_.empty()) { +- string content; +- ListCodec::encode(list_, content); +- list_.clear(); +- if (content.length()) { +- stringstream key; +- Variant::Map headers; +- key << "agent.ind.data." << keyifyNameStr(packageName) +- << "." << keyifyNameStr(className) +- << "." << vendorNameKey +- << "." << productNameKey; +- if (!instanceNameKey.empty()) +- key << "." << instanceNameKey; +- +- headers["method"] = "indication"; +- headers["qmf.opcode"] = "_data_indication"; +- headers["qmf.content"] = "_data"; +- headers["qmf.agent"] = name_address; +- +- sendBufferLH(content, "", headers, "amqp/list", v2Topic, key.str()); // UNLOCKS USERLOCK +- QPID_LOG(debug, "SEND Multicast ContentInd V2 (delete) to=" << key.str() << " len=" << content.length()); +- } +- } +- } // end map +- } +- + if (objectsDeleted) deleteOrphanedAgentsLH(); + + // heartbeat generation +@@ -2592,13 +2613,24 @@ void ManagementAgent::importAgents(qpid::framing::Buffer& inBuf) { + } + + namespace { +-bool isDeleted(const ManagementObjectMap::value_type& value) { ++bool isDeletedMap(const ManagementObjectMap::value_type& value) { + return value.second->isDeleted(); + } + ++bool isDeletedVector(const ManagementObjectVector::value_type& value) { ++ return value->isDeleted(); ++} ++ + string summarizeMap(const char* name, const ManagementObjectMap& map) { + ostringstream o; +- size_t deleted = std::count_if(map.begin(), map.end(), isDeleted); ++ size_t deleted = std::count_if(map.begin(), map.end(), isDeletedMap); ++ o << map.size() << " " << name << " (" << deleted << " deleted), "; ++ return o.str(); ++} ++ ++string summarizeVector(const char* name, const ManagementObjectVector& map) { ++ ostringstream o; ++ size_t deleted = std::count_if(map.begin(), map.end(), isDeletedVector); + o << map.size() << " " << name << " (" << deleted << " deleted), "; + return o.str(); + } +@@ -2612,6 +2644,15 @@ string dumpMap(const ManagementObjectMap& map) { + return o.str(); + } + ++string dumpVector(const ManagementObjectVector& map) { ++ ostringstream o; ++ for (ManagementObjectVector::const_iterator i = map.begin(); i != map.end(); ++i) { ++ o << endl << " " << (*i)->getObjectId().getV2Key() ++ << ((*i)->isDeleted() ? " (deleted)" : ""); ++ } ++ return o.str(); ++} ++ + } // namespace + + string ManagementAgent::summarizeAgents() { +@@ -2631,14 +2672,14 @@ void ManagementAgent::debugSnapshot(const char* title) { + QPID_LOG(debug, title << ": management snapshot: " + << packages.size() << " packages, " + << summarizeMap("objects", managementObjects) +- << summarizeMap("new objects ", newManagementObjects) ++ << summarizeVector("new objects ", newManagementObjects) + << pendingDeletedObjs.size() << " pending deletes" + << summarizeAgents()); + + QPID_LOG_IF(trace, managementObjects.size(), + title << ": objects" << dumpMap(managementObjects)); + QPID_LOG_IF(trace, newManagementObjects.size(), +- title << ": new objects" << dumpMap(newManagementObjects)); ++ title << ": new objects" << dumpVector(newManagementObjects)); + } + + Variant::Map ManagementAgent::toMap(const FieldTable& from) +@@ -2883,6 +2924,45 @@ void ManagementAgent::importDeletedObjects(const DeletedObjectList& inList) + } + + ++// construct a DeletedObject from a management object. ++ManagementAgent::DeletedObject::DeletedObject(ManagementObject *src, bool v1, bool v2) ++ : packageName(src->getPackageName()), ++ className(src->getClassName()) ++{ ++ bool send_stats = (src->hasInst() && (src->getInstChanged() || src->getForcePublish())); ++ ++ stringstream oid; ++ oid << src->getObjectId(); ++ objectId = oid.str(); ++ ++ if (v1) { ++ src->writeProperties(encodedV1Config); ++ if (send_stats) { ++ src->writeStatistics(encodedV1Inst); ++ } ++ } ++ ++ if (v2) { ++ Variant::Map map_; ++ Variant::Map values; ++ Variant::Map oid; ++ ++ src->getObjectId().mapEncode(oid); ++ map_["_object_id"] = oid; ++ map_["_schema_id"] = mapEncodeSchemaId(src->getPackageName(), ++ src->getClassName(), ++ "_data", ++ src->getMd5Sum()); ++ src->writeTimestamps(map_); ++ src->mapEncodeValues(values, true, send_stats); ++ map_["_values"] = values; ++ ++ encodedV2 = map_; ++ } ++} ++ ++ ++ + // construct a DeletedObject from an encoded representation. Used by + // clustering to move deleted objects between clustered brokers. See + // DeletedObject::encode() for the reverse. +@@ -2939,42 +3019,9 @@ bool ManagementAgent::moveDeletedObjectsLH() { + { + ManagementObject* delObj = iter->second; + assert(delObj->isDeleted()); +- DeletedObject::shared_ptr dptr(new DeletedObject()); +- std::string classkey(delObj->getPackageName() + std::string(":") + delObj->getClassName()); +- bool send_stats = (delObj->hasInst() && (delObj->getInstChanged() || delObj->getForcePublish())); +- +- dptr->packageName = delObj->getPackageName(); +- dptr->className = delObj->getClassName(); +- stringstream oid; +- oid << delObj->getObjectId(); +- dptr->objectId = oid.str(); +- +- if (qmf1Support) { +- delObj->writeProperties(dptr->encodedV1Config); +- if (send_stats) { +- delObj->writeStatistics(dptr->encodedV1Inst); +- } +- } +- +- if (qmf2Support) { +- Variant::Map map_; +- Variant::Map values; +- Variant::Map oid; +- +- delObj->getObjectId().mapEncode(oid); +- map_["_object_id"] = oid; +- map_["_schema_id"] = mapEncodeSchemaId(delObj->getPackageName(), +- delObj->getClassName(), +- "_data", +- delObj->getMd5Sum()); +- delObj->writeTimestamps(map_); +- delObj->mapEncodeValues(values, true, send_stats); +- map_["_values"] = values; +- +- dptr->encodedV2 = map_; +- } ++ DeletedObject::shared_ptr dptr(new DeletedObject(delObj, qmf1Support, qmf2Support)); + +- pendingDeletedObjs[classkey].push_back(dptr); ++ pendingDeletedObjs[dptr->getKey()].push_back(dptr); + managementObjects.erase(iter->first); + delete iter->second; + } +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index 87c39a6..2202e2f 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -159,13 +159,17 @@ public: + class DeletedObject { + public: + typedef boost::shared_ptr shared_ptr; +- DeletedObject() {}; ++ DeletedObject(ManagementObject *, bool v1, bool v2); + DeletedObject( const std::string &encoded ); + ~DeletedObject() {}; + void encode( std::string& toBuffer ); ++ const std::string getKey() const { ++ // used to batch up objects of the same class type ++ return std::string(packageName + std::string(":") + className); ++ } + + private: +- friend class ManagementAgent; ++ friend class ManagementAgent; + + std::string packageName; + std::string className; +@@ -280,7 +284,7 @@ private: + // + // Protected by addLock + // +- ManagementObjectMap newManagementObjects; ++ ManagementObjectVector newManagementObjects; + + framing::Uuid uuid; + +diff --git a/qpid/cpp/src/qpid/management/ManagementObject.cpp b/qpid/cpp/src/qpid/management/ManagementObject.cpp +index cfdd58e..b4d469a 100644 +--- a/qpid/cpp/src/qpid/management/ManagementObject.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementObject.cpp +@@ -187,10 +187,6 @@ void ObjectId::setV2Key(const ManagementObject& object) + v2Key = oname.str(); + } + +-void ObjectId::disambiguate() +-{ +- v2Key = v2Key + "_"; +-} + + // encode as V2-format map + void ObjectId::mapEncode(types::Variant::Map& map) const +diff --git a/qpid/cpp/src/tests/BrokerMgmtAgent.cpp b/qpid/cpp/src/tests/BrokerMgmtAgent.cpp +new file mode 100644 +index 0000000..d0c6668 +--- /dev/null ++++ b/qpid/cpp/src/tests/BrokerMgmtAgent.cpp +@@ -0,0 +1,792 @@ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include "unit_test.h" ++#include "MessagingFixture.h" ++#include "qpid/management/Buffer.h" ++#include "qpid/messaging/Message.h" ++#include "qpid/amqp_0_10/Codecs.h" ++#include "qpid/log/Logger.h" ++#include "qpid/log/Options.h" ++ ++#include "qmf/org/apache/qpid/broker/mgmt/test/TestObject.h" ++ ++#include ++ ++ ++using qpid::management::Mutex; ++using qpid::management::Manageable; ++using qpid::management::Buffer; ++using namespace qpid::messaging; ++using namespace qpid::types; ++ ++ ++ ++namespace qpid { ++ namespace tests { ++ ++ namespace _qmf = qmf::org::apache::qpid::broker::mgmt::test; ++ namespace { ++ ++ typedef boost::shared_ptr<_qmf::TestObject> TestObjectPtr; ++ typedef std::vector TestObjectVector; ++ ++ // Instantiates a broker and its internal management agent. Provides ++ // factories for constructing Receivers for object indication messages. ++ // ++ class AgentFixture ++ { ++ MessagingFixture *mFix; ++ ++ public: ++ AgentFixture( unsigned int pubInterval=10, ++ bool qmfV2=false, ++ qpid::broker::Broker::Options opts = qpid::broker::Broker::Options()) ++ { ++ opts.enableMgmt=true; ++ opts.qmf2Support=qmfV2; ++ opts.mgmtPubInterval=pubInterval; ++ mFix = new MessagingFixture(opts, true); ++ ++ _qmf::TestObject::registerSelf(getBrokerAgent()); ++ }; ++ ~AgentFixture() ++ { ++ delete mFix; ++ }; ++ ::qpid::management::ManagementAgent *getBrokerAgent() { return mFix->broker->getManagementAgent(); } ++ Receiver createV1DataIndRcvr( const std::string package, const std::string klass ) ++ { ++ return mFix->session.createReceiver(std::string("kqueue; {create: always, delete: always, " ++ "node: {type: queue, " ++ "x-bindings: [{exchange: qpid.management, " ++ "key: 'console.obj.1.0.") ++ + package + std::string(".") + klass ++ + std::string("'}]}}")); ++ }; ++ Receiver createV2DataIndRcvr( const std::string package, const std::string klass ) ++ { ++ std::string p(package); ++ std::replace(p.begin(), p.end(), '.', '_'); ++ std::string k(klass); ++ std::replace(k.begin(), k.end(), '.', '_'); ++ ++ return mFix->session.createReceiver(std::string("kqueue; {create: always, delete: always, " ++ "node: {type: queue, " ++ "x-bindings: [{exchange: qmf.default.topic, " ++ "key: 'agent.ind.data.") ++ + p + std::string(".") + k ++ + std::string("'}]}}")); ++ }; ++ }; ++ ++ ++ // A "management object" that supports the TestObject ++ // ++ class TestManageable : public qpid::management::Manageable ++ { ++ management::ManagementObject* mgmtObj; ++ const std::string key; ++ public: ++ TestManageable(management::ManagementAgent *agent, std::string _key) ++ : key(_key) ++ { ++ _qmf::TestObject *tmp = new _qmf::TestObject(agent, this); ++ ++ // seed it with some default values... ++ tmp->set_string1(key); ++ tmp->set_bool1(true); ++ qpid::types::Variant::Map vMap; ++ vMap["one"] = qpid::types::Variant(1); ++ vMap["two"] = qpid::types::Variant("two"); ++ vMap["three"] = qpid::types::Variant("whatever"); ++ tmp->set_map1(vMap); ++ ++ mgmtObj = tmp; ++ }; ++ ~TestManageable() { mgmtObj = 0; /* deleted by agent on shutdown */ }; ++ management::ManagementObject* GetManagementObject() const { return mgmtObj; }; ++ static void validateTestObjectProperties(_qmf::TestObject& to) ++ { ++ // verify the default values are as expected. We don't check 'string1', ++ // as it is the object key, and is unique for each object (no default value). ++ BOOST_CHECK(to.get_bool1() == true); ++ BOOST_CHECK(to.get_map1().size() == 3); ++ qpid::types::Variant::Map mappy = to.get_map1(); ++ BOOST_CHECK(1 == (unsigned int)mappy["one"]); ++ BOOST_CHECK(mappy["two"].asString() == std::string("two")); ++ BOOST_CHECK(mappy["three"].asString() == std::string("whatever")); ++ }; ++ }; ++ ++ ++ // decode a V1 Content Indication message ++ // ++ void decodeV1ObjectUpdates(const Message& inMsg, TestObjectVector& objs, const size_t objLen) ++ { ++ const size_t MAX_BUFFER_SIZE=65536; ++ char tmp[MAX_BUFFER_SIZE]; ++ ++ objs.clear(); ++ ++ BOOST_CHECK(inMsg.getContent().size() <= MAX_BUFFER_SIZE); ++ ++ ::memcpy(tmp, inMsg.getContent().data(), inMsg.getContent().size()); ++ Buffer buf(tmp, inMsg.getContent().size()); ++ ++ while (buf.available() > 8) { // 8 == qmf v1 header size ++ BOOST_CHECK_EQUAL(buf.getOctet(), 'A'); ++ BOOST_CHECK_EQUAL(buf.getOctet(), 'M'); ++ BOOST_CHECK_EQUAL(buf.getOctet(), '2'); ++ BOOST_CHECK_EQUAL(buf.getOctet(), 'c'); // opcode == content indication ++ // @@todo: kag: how do we skip 'i' entries??? ++ buf.getLong(); // ignore sequence ++ ++ std::string str1; // decode content body as string ++ buf.getRawData(str1, objLen); ++ ++ TestObjectPtr fake(new _qmf::TestObject(0,0)); ++ fake->readProperties( str1 ); ++ objs.push_back(fake); ++ } ++ } ++ ++ ++ // decode a V2 Content Indication message ++ // ++ void decodeV2ObjectUpdates(const qpid::messaging::Message& inMsg, TestObjectVector& objs) ++ { ++ objs.clear(); ++ ++ BOOST_CHECK_EQUAL(inMsg.getContentType(), std::string("amqp/list")); ++ ++ const ::qpid::types::Variant::Map& m = inMsg.getProperties(); ++ Variant::Map::const_iterator iter = m.find(std::string("qmf.opcode")); ++ BOOST_CHECK(iter != m.end()); ++ BOOST_CHECK_EQUAL(iter->second.asString(), std::string("_data_indication")); ++ ++ Variant::List vList; ++ ::qpid::amqp_0_10::ListCodec::decode(inMsg.getContent(), vList); ++ ++ for (Variant::List::iterator lIter = vList.begin(); lIter != vList.end(); lIter++) { ++ TestObjectPtr fake(new _qmf::TestObject(0,0)); ++ fake->readTimestamps(lIter->asMap()); ++ fake->mapDecodeValues((lIter->asMap())["_values"].asMap()); ++ objs.push_back(fake); ++ } ++ } ++ } ++ ++ QPID_AUTO_TEST_SUITE(BrokerMgmtAgent) ++ ++ // verify that an object that is added to the broker's management database is ++ // published correctly. Furthermore, verify that it is published once after ++ // it has been deleted. ++ // ++ QPID_AUTO_TEST_CASE(v1ObjPublish) ++ { ++ AgentFixture* fix = new AgentFixture(3); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ // create a manageable test object ++ TestManageable *tm = new TestManageable(agent, std::string("obj1")); ++ uint32_t objLen = tm->GetManagementObject()->writePropertiesSize(); ++ ++ Receiver r1 = fix->createV1DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ ++ agent->addObject(tm->GetManagementObject(), 1); ++ ++ // wait for the object to be published ++ Message m1; ++ BOOST_CHECK(r1.fetch(m1, Duration::SECOND * 6)); ++ ++ TestObjectVector objs; ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ BOOST_CHECK(0 == mappy["_delete_ts"].asUint64()); // not deleted ++ } ++ ++ // destroy the object ++ ++ tm->GetManagementObject()->resourceDestroy(); ++ ++ // wait for the deleted object to be published ++ ++ bool isDeleted = false; ++ while (!isDeleted && r1.fetch(m1, Duration::SECOND * 6)) { ++ ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ if (mappy["_delete_ts"].asUint64() != 0) ++ isDeleted = true; ++ } ++ } ++ ++ BOOST_CHECK(isDeleted); ++ ++ r1.close(); ++ delete fix; ++ delete tm; ++ } ++ ++ // Repeat the previous test, but with V2-based object support ++ // ++ QPID_AUTO_TEST_CASE(v2ObjPublish) ++ { ++ AgentFixture* fix = new AgentFixture(3, true); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ TestManageable *tm = new TestManageable(agent, std::string("obj2")); ++ ++ Receiver r1 = fix->createV2DataIndRcvr(tm->GetManagementObject()->getPackageName(), "#"); ++ ++ agent->addObject(tm->GetManagementObject(), "testobj-1"); ++ ++ // wait for the object to be published ++ Message m1; ++ BOOST_CHECK(r1.fetch(m1, Duration::SECOND * 6)); ++ ++ TestObjectVector objs; ++ decodeV2ObjectUpdates(m1, objs); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ BOOST_CHECK(0 == mappy["_delete_ts"].asUint64()); ++ } ++ ++ // destroy the object ++ ++ tm->GetManagementObject()->resourceDestroy(); ++ ++ // wait for the deleted object to be published ++ ++ bool isDeleted = false; ++ while (!isDeleted && r1.fetch(m1, Duration::SECOND * 6)) { ++ ++ decodeV2ObjectUpdates(m1, objs); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ if (mappy["_delete_ts"].asUint64() != 0) ++ isDeleted = true; ++ } ++ } ++ ++ BOOST_CHECK(isDeleted); ++ ++ r1.close(); ++ delete fix; ++ delete tm; ++ } ++ ++ ++ // verify that a deleted object is exported correctly using the ++ // exportDeletedObjects() method. V1 testcase. ++ // ++ QPID_AUTO_TEST_CASE(v1ExportDelObj) ++ { ++ AgentFixture* fix = new AgentFixture(3); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ // create a manageable test object ++ TestManageable *tm = new TestManageable(agent, std::string("myObj")); ++ uint32_t objLen = tm->GetManagementObject()->writePropertiesSize(); ++ ++ Receiver r1 = fix->createV1DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ ++ agent->addObject(tm->GetManagementObject(), 1); ++ ++ // wait for the object to be published ++ Message m1; ++ BOOST_CHECK(r1.fetch(m1, Duration::SECOND * 6)); ++ ++ TestObjectVector objs; ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ BOOST_CHECK(objs.size() > 0); ++ ++ // destroy the object, then immediately export (before the next poll cycle) ++ ++ ::qpid::management::ManagementAgent::DeletedObjectList delObjs; ++ tm->GetManagementObject()->resourceDestroy(); ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK(delObjs.size() == 1); ++ ++ // wait for the deleted object to be published ++ ++ bool isDeleted = false; ++ while (!isDeleted && r1.fetch(m1, Duration::SECOND * 6)) { ++ ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ if (mappy["_delete_ts"].asUint64() != 0) ++ isDeleted = true; ++ } ++ } ++ ++ BOOST_CHECK(isDeleted); ++ ++ // verify there are no deleted objects to export now. ++ ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK(delObjs.size() == 0); ++ ++ r1.close(); ++ delete fix; ++ delete tm; ++ } ++ ++ ++ // verify that a deleted object is imported correctly using the ++ // importDeletedObjects() method. V1 testcase. ++ // ++ QPID_AUTO_TEST_CASE(v1ImportDelObj) ++ { ++ AgentFixture* fix = new AgentFixture(3); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ // create a manageable test object ++ TestManageable *tm = new TestManageable(agent, std::string("anObj")); ++ uint32_t objLen = tm->GetManagementObject()->writePropertiesSize(); ++ ++ Receiver r1 = fix->createV1DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ ++ agent->addObject(tm->GetManagementObject(), 1); ++ ++ // wait for the object to be published ++ Message m1; ++ BOOST_CHECK(r1.fetch(m1, Duration::SECOND * 6)); ++ ++ TestObjectVector objs; ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ BOOST_CHECK(objs.size() > 0); ++ ++ // destroy the object, then immediately export (before the next poll cycle) ++ ++ ::qpid::management::ManagementAgent::DeletedObjectList delObjs; ++ tm->GetManagementObject()->resourceDestroy(); ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK(delObjs.size() == 1); ++ ++ // destroy the broker, and reinistantiate a new one without populating it ++ // with a TestObject. ++ ++ r1.close(); ++ delete fix; ++ delete tm; // should no longer be necessary ++ ++ fix = new AgentFixture(3); ++ r1 = fix->createV1DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ agent = fix->getBrokerAgent(); ++ agent->importDeletedObjects( delObjs ); ++ ++ // wait for the deleted object to be published ++ ++ bool isDeleted = false; ++ while (!isDeleted && r1.fetch(m1, Duration::SECOND * 6)) { ++ ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ if (mappy["_delete_ts"].asUint64() != 0) ++ isDeleted = true; ++ } ++ } ++ ++ BOOST_CHECK(isDeleted); ++ ++ // verify there are no deleted objects to export now. ++ ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK(delObjs.size() == 0); ++ ++ r1.close(); ++ delete fix; ++ } ++ ++ ++ // verify that an object that is added and deleted prior to the ++ // first poll cycle is accounted for by the export ++ // ++ QPID_AUTO_TEST_CASE(v1ExportFastDelObj) ++ { ++ AgentFixture* fix = new AgentFixture(3); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ // create a manageable test object ++ TestManageable *tm = new TestManageable(agent, std::string("objectifyMe")); ++ ++ // add, then immediately delete and export the object... ++ ++ ::qpid::management::ManagementAgent::DeletedObjectList delObjs; ++ agent->addObject(tm->GetManagementObject(), 999); ++ tm->GetManagementObject()->resourceDestroy(); ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK(delObjs.size() == 1); ++ ++ delete fix; ++ delete tm; ++ } ++ ++ ++ // Verify that we can export and import multiple deleted objects correctly. ++ // ++ QPID_AUTO_TEST_CASE(v1ImportMultiDelObj) ++ { ++ AgentFixture* fix = new AgentFixture(3); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ Receiver r1 = fix->createV1DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ ++ // populate the agent with multiple test objects ++ const size_t objCount = 50; ++ std::vector tmv; ++ uint32_t objLen; ++ ++ for (size_t i = 0; i < objCount; i++) { ++ std::stringstream key; ++ key << "testobj-" << std::setfill('x') << std::setw(4) << i; ++ // (no, seriously, I didn't just do that.) ++ // Note well: we have to keep the key string length EXACTLY THE SAME ++ // FOR ALL OBJECTS, so objLen will be the same. Otherwise the ++ // decodeV1ObjectUpdates() will fail (v1 lacks explict encoded length). ++ TestManageable *tm = new TestManageable(agent, key.str()); ++ objLen = tm->GetManagementObject()->writePropertiesSize(); ++ agent->addObject(tm->GetManagementObject(), i + 1); ++ tmv.push_back(tm); ++ } ++ ++ // wait for the objects to be published ++ Message m1; ++ uint32_t msgCount = 0; ++ while(r1.fetch(m1, Duration::SECOND * 6)) { ++ TestObjectVector objs; ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ msgCount += objs.size(); ++ } ++ ++ BOOST_CHECK_EQUAL(msgCount, objCount); ++ ++ // destroy some of the objects, then immediately export (before the next poll cycle) ++ ++ uint32_t delCount = 0; ++ for (size_t i = 0; i < objCount; i += 2) { ++ tmv[i]->GetManagementObject()->resourceDestroy(); ++ delCount++; ++ } ++ ++ ::qpid::management::ManagementAgent::DeletedObjectList delObjs; ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK_EQUAL(delObjs.size(), delCount); ++ ++ // destroy the broker, and reinistantiate a new one without populating it ++ // with TestObjects. ++ ++ r1.close(); ++ delete fix; ++ while (tmv.size()) { ++ delete tmv.back(); ++ tmv.pop_back(); ++ } ++ ++ fix = new AgentFixture(3); ++ r1 = fix->createV1DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ agent = fix->getBrokerAgent(); ++ agent->importDeletedObjects( delObjs ); ++ ++ // wait for the deleted object to be published, verify the count ++ ++ uint32_t countDels = 0; ++ while (r1.fetch(m1, Duration::SECOND * 6)) { ++ TestObjectVector objs; ++ decodeV1ObjectUpdates(m1, objs, objLen); ++ BOOST_CHECK(objs.size() > 0); ++ ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ if (mappy["_delete_ts"].asUint64() != 0) ++ countDels++; ++ } ++ } ++ ++ // make sure we get the correct # of deleted objects ++ BOOST_CHECK_EQUAL(countDels, delCount); ++ ++ // verify there are no deleted objects to export now. ++ ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK(delObjs.size() == 0); ++ ++ r1.close(); ++ delete fix; ++ } ++ ++ // Verify that we can export and import multiple deleted objects correctly. ++ // QMF V2 variant ++ QPID_AUTO_TEST_CASE(v2ImportMultiDelObj) ++ { ++ AgentFixture* fix = new AgentFixture(3, true); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ Receiver r1 = fix->createV2DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ ++ // populate the agent with multiple test objects ++ const size_t objCount = 50; ++ std::vector tmv; ++ uint32_t objLen; ++ ++ for (size_t i = 0; i < objCount; i++) { ++ std::stringstream key; ++ key << "testobj-" << i; ++ TestManageable *tm = new TestManageable(agent, key.str()); ++ objLen = tm->GetManagementObject()->writePropertiesSize(); ++ agent->addObject(tm->GetManagementObject(), key.str()); ++ tmv.push_back(tm); ++ } ++ ++ // wait for the objects to be published ++ Message m1; ++ uint32_t msgCount = 0; ++ while(r1.fetch(m1, Duration::SECOND * 6)) { ++ TestObjectVector objs; ++ decodeV2ObjectUpdates(m1, objs); ++ msgCount += objs.size(); ++ } ++ ++ BOOST_CHECK_EQUAL(msgCount, objCount); ++ ++ // destroy some of the objects, then immediately export (before the next poll cycle) ++ ++ uint32_t delCount = 0; ++ for (size_t i = 0; i < objCount; i += 2) { ++ tmv[i]->GetManagementObject()->resourceDestroy(); ++ delCount++; ++ } ++ ++ ::qpid::management::ManagementAgent::DeletedObjectList delObjs; ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK_EQUAL(delObjs.size(), delCount); ++ ++ // destroy the broker, and reinistantiate a new one without populating it ++ // with TestObjects. ++ ++ r1.close(); ++ delete fix; ++ while (tmv.size()) { ++ delete tmv.back(); ++ tmv.pop_back(); ++ } ++ ++ fix = new AgentFixture(3, true); ++ r1 = fix->createV2DataIndRcvr("org.apache.qpid.broker.mgmt.test", "#"); ++ agent = fix->getBrokerAgent(); ++ agent->importDeletedObjects( delObjs ); ++ ++ // wait for the deleted object to be published, verify the count ++ ++ uint32_t countDels = 0; ++ while (r1.fetch(m1, Duration::SECOND * 6)) { ++ TestObjectVector objs; ++ decodeV2ObjectUpdates(m1, objs); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ if (mappy["_delete_ts"].asUint64() != 0) ++ countDels++; ++ } ++ } ++ ++ // make sure we get the correct # of deleted objects ++ BOOST_CHECK_EQUAL(countDels, delCount); ++ ++ // verify there are no deleted objects to export now. ++ ++ agent->exportDeletedObjects( delObjs ); ++ BOOST_CHECK(delObjs.size() == 0); ++ ++ r1.close(); ++ delete fix; ++ } ++ ++ // See QPID-2997 ++ QPID_AUTO_TEST_CASE(v2RapidRestoreObj) ++ { ++ AgentFixture* fix = new AgentFixture(3, true); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ // two objects, same ObjID ++ TestManageable *tm1 = new TestManageable(agent, std::string("obj2")); ++ TestManageable *tm2 = new TestManageable(agent, std::string("obj2")); ++ ++ Receiver r1 = fix->createV2DataIndRcvr(tm1->GetManagementObject()->getPackageName(), "#"); ++ ++ // add, then immediately delete and re-add a copy of the object ++ agent->addObject(tm1->GetManagementObject(), "testobj-1"); ++ tm1->GetManagementObject()->resourceDestroy(); ++ agent->addObject(tm2->GetManagementObject(), "testobj-1"); ++ ++ // expect: a delete notification, then an update notification ++ TestObjectVector objs; ++ bool isDeleted = false; ++ bool isAdvertised = false; ++ size_t count = 0; ++ Message m1; ++ while (r1.fetch(m1, Duration::SECOND * 6)) { ++ ++ decodeV2ObjectUpdates(m1, objs); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ count++; ++ TestManageable::validateTestObjectProperties(**oIter); ++ ++ qpid::types::Variant::Map mappy; ++ (*oIter)->writeTimestamps(mappy); ++ if (mappy["_delete_ts"].asUint64() != 0) { ++ isDeleted = true; ++ BOOST_CHECK(isAdvertised == false); // delete must be first ++ } else { ++ isAdvertised = true; ++ BOOST_CHECK(isDeleted == true); // delete must be first ++ } ++ } ++ } ++ ++ BOOST_CHECK(isDeleted); ++ BOOST_CHECK(isAdvertised); ++ BOOST_CHECK(count == 2); ++ ++ r1.close(); ++ delete fix; ++ delete tm1; ++ delete tm2; ++ } ++ ++ // See QPID-2997 ++ QPID_AUTO_TEST_CASE(v2DuplicateErrorObj) ++ { ++ AgentFixture* fix = new AgentFixture(3, true); ++ management::ManagementAgent* agent; ++ agent = fix->getBrokerAgent(); ++ ++ // turn off the expected error log message ++ qpid::log::Options logOpts; ++ logOpts.selectors.clear(); ++ logOpts.selectors.push_back("critical+"); ++ qpid::log::Logger::instance().configure(logOpts); ++ ++ // two objects, same ObjID ++ TestManageable *tm1 = new TestManageable(agent, std::string("obj2")); ++ TestManageable *tm2 = new TestManageable(agent, std::string("obj2")); ++ // Keep a pointer to the ManagementObject. This test simulates a user-caused error ++ // case (duplicate objects) where the broker has no choice but to leak a management ++ // object (safest assumption). To prevent valgrind from flagging this leak, we ++ // manually clean up the object at the end of the test. ++ management::ManagementObject *save = tm2->GetManagementObject(); ++ ++ Receiver r1 = fix->createV2DataIndRcvr(tm1->GetManagementObject()->getPackageName(), "#"); ++ ++ // add, then immediately delete and re-add a copy of the object ++ agent->addObject(tm1->GetManagementObject(), "testobj-1"); ++ agent->addObject(tm2->GetManagementObject(), "testobj-1"); ++ ++ TestObjectVector objs; ++ size_t count = 0; ++ Message m1; ++ while (r1.fetch(m1, Duration::SECOND * 6)) { ++ ++ decodeV2ObjectUpdates(m1, objs); ++ BOOST_CHECK(objs.size() > 0); ++ ++ for (TestObjectVector::iterator oIter = objs.begin(); oIter != objs.end(); oIter++) { ++ count++; ++ TestManageable::validateTestObjectProperties(**oIter); ++ } ++ } ++ ++ BOOST_CHECK(count == 1); // only one should be accepted. ++ ++ r1.close(); ++ delete fix; ++ delete tm1; ++ delete tm2; ++ delete save; ++ } ++ ++ QPID_AUTO_TEST_SUITE_END() ++ } ++} ++ ++ +-- +1.5.5.6 + +From 81b37bfd7a8a8282401152e3306a4c1f2d640efb Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 18 Jan 2011 20:43:41 +0000 +Subject: [PATCH] QPID-2982 Bug 669452 - Creating a route and using management tools can crash cluster members. + +Cluster update did not include federation link and bridge +objects. Fixed update to include them. + +Management linkUp and linkDown events were generated only on the +broker receiving the link. Suppressed these events in a cluster. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1060568 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/src/qpid/broker/Bridge.cpp | 7 +---- + qpid/cpp/src/qpid/broker/Link.cpp | 12 ++++++-- + qpid/cpp/src/qpid/broker/LinkRegistry.cpp | 9 ++++++ + qpid/cpp/src/qpid/broker/LinkRegistry.h | 7 +++++ + qpid/cpp/src/qpid/cluster/Cluster.cpp | 2 +- + qpid/cpp/src/qpid/cluster/Connection.cpp | 27 ++++++++++++++++-- + qpid/cpp/src/qpid/cluster/Connection.h | 1 + + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 30 ++++++++++++++++++++- + qpid/cpp/src/qpid/cluster/UpdateClient.h | 6 ++++ + qpid/cpp/src/tests/cluster_test_logs.py | 3 +- + qpid/cpp/src/tests/cluster_tests.py | 40 ++++++++++++++++++++++++++++ + qpid/cpp/xml/cluster.xml | 4 +++ + 12 files changed, 133 insertions(+), 15 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Bridge.cpp b/qpid/cpp/src/qpid/broker/Bridge.cpp +index 3e632f6..0138f94 100644 +--- a/qpid/cpp/src/qpid/broker/Bridge.cpp ++++ b/qpid/cpp/src/qpid/broker/Bridge.cpp +@@ -70,8 +70,7 @@ Bridge::Bridge(Link* _link, framing::ChannelId _id, CancellationListener l, + (agent, this, link, id, args.i_durable, args.i_src, args.i_dest, + args.i_key, args.i_srcIsQueue, args.i_srcIsLocal, + args.i_tag, args.i_excludes, args.i_dynamic, args.i_sync); +- if (!args.i_durable) +- agent->addObject(mgmtObject); ++ agent->addObject(mgmtObject); + } + QPID_LOG(debug, "Bridge created from " << args.i_src << " to " << args.i_dest); + } +@@ -177,10 +176,6 @@ void Bridge::destroy() + + void Bridge::setPersistenceId(uint64_t pId) const + { +- if (mgmtObject != 0 && persistenceId == 0) { +- ManagementAgent* agent = link->getBroker()->getManagementAgent(); +- agent->addObject (mgmtObject, pId); +- } + persistenceId = pId; + } + +diff --git a/qpid/cpp/src/qpid/broker/Link.cpp b/qpid/cpp/src/qpid/broker/Link.cpp +index 5a1dfd9..244c114 100644 +--- a/qpid/cpp/src/qpid/broker/Link.cpp ++++ b/qpid/cpp/src/qpid/broker/Link.cpp +@@ -30,6 +30,7 @@ + #include "qpid/framing/enum.h" + #include "qpid/framing/reply_exceptions.h" + #include "qpid/broker/AclModule.h" ++#include "qpid/sys/ClusterSafe.h" + + using namespace qpid::broker; + using qpid::framing::Buffer; +@@ -129,9 +130,12 @@ void Link::established () + { + stringstream addr; + addr << host << ":" << port; +- + QPID_LOG (info, "Inter-broker link established to " << addr.str()); +- agent->raiseEvent(_qmf::EventBrokerLinkUp(addr.str())); ++ ++ // Don't raise the management event in a cluster, other members wont't get this call. ++ if (!sys::isCluster()) ++ agent->raiseEvent(_qmf::EventBrokerLinkUp(addr.str())); ++ + { + Mutex::ScopedLock mutex(lock); + setStateLH(STATE_OPERATIONAL); +@@ -149,11 +153,13 @@ void Link::closed (int, std::string text) + + connection = 0; + ++ // Don't raise the management event in a cluster, other members wont't get this call. + if (state == STATE_OPERATIONAL) { + stringstream addr; + addr << host << ":" << port; + QPID_LOG (warning, "Inter-broker link disconnected from " << addr.str()); +- agent->raiseEvent(_qmf::EventBrokerLinkDown(addr.str())); ++ if (!sys::isCluster()) ++ agent->raiseEvent(_qmf::EventBrokerLinkDown(addr.str())); + } + + for (Bridges::iterator i = active.begin(); i != active.end(); i++) { +diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +index 6da601c..b7b6aa5 100644 +--- a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp ++++ b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +@@ -378,3 +378,12 @@ void LinkRegistry::setPassive(bool p) + passive = p; + //will activate or passivate links on maintenance visit + } ++ ++void LinkRegistry::eachLink(boost::function)> f) { ++ for (LinkMap::iterator i = links.begin(); i != links.end(); ++i) f(i->second); ++} ++ ++void LinkRegistry::eachBridge(boost::function)> f) { ++ for (BridgeMap::iterator i = bridges.begin(); i != bridges.end(); ++i) f(i->second); ++} ++ +diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.h b/qpid/cpp/src/qpid/broker/LinkRegistry.h +index a193192..4c97e4f 100644 +--- a/qpid/cpp/src/qpid/broker/LinkRegistry.h ++++ b/qpid/cpp/src/qpid/broker/LinkRegistry.h +@@ -31,6 +31,7 @@ + #include "qpid/management/Manageable.h" + #include + #include ++#include + + namespace qpid { + namespace broker { +@@ -148,6 +149,12 @@ namespace broker { + * bridges won't therefore pull or push any messages. + */ + void setPassive(bool); ++ ++ ++ /** Iterate over each link in the registry. Used for cluster updates. */ ++ void eachLink(boost::function)> f); ++ /** Iterate over each bridge in the registry. Used for cluster updates. */ ++ void eachBridge(boost::function)> f); + }; + } + } +diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp +index ff4a0e2..1da763c 100644 +--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp ++++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp +@@ -198,7 +198,7 @@ namespace _qmf = ::qmf::org::apache::qpid::cluster; + * Currently use SVN revision to avoid clashes with versions from + * different branches. + */ +-const uint32_t Cluster::CLUSTER_VERSION = 1045272; ++const uint32_t Cluster::CLUSTER_VERSION = 1058747; + + struct ClusterDispatcher : public framing::AMQP_AllOperations::ClusterHandler { + qpid::cluster::Cluster& cluster; +diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp +index 48623b7..e71025d 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.cpp ++++ b/qpid/cpp/src/qpid/cluster/Connection.cpp +@@ -32,6 +32,8 @@ + #include "qpid/broker/RecoveredEnqueue.h" + #include "qpid/broker/RecoveredDequeue.h" + #include "qpid/broker/Exchange.h" ++#include "qpid/broker/Link.h" ++#include "qpid/broker/Bridge.h" + #include "qpid/broker/Queue.h" + #include "qpid/framing/enum.h" + #include "qpid/framing/AMQFrame.h" +@@ -342,13 +344,12 @@ size_t Connection::decode(const char* data, size_t size) { + // returns true if the header is complete or already read. + bool Connection::checkProtocolHeader(const char*& data, size_t size) { + if (expectProtocolHeader) { +- //If this is an outgoing link, we will receive a protocol +- //header which needs to be decoded first ++ // This is an outgoing link connection, we will receive a protocol ++ // header which needs to be decoded first + framing::ProtocolInitiation pi; + Buffer buf(const_cast(data), size); + if (pi.decode(buf)) { + //TODO: check the version is correct +- QPID_LOG(debug, "Outgoing clustered link connection received INIT(" << pi << ")"); + expectProtocolHeader = false; + data += pi.encodedSize(); + } else { +@@ -646,5 +647,25 @@ void Connection::managementSetupState( + agent->setUuid(id); + agent->setName(vendor, product, instance); + } ++ ++void Connection::config(const std::string& encoded) { ++ Buffer buf(const_cast(encoded.data()), encoded.size()); ++ string kind; ++ buf.getShortString (kind); ++ if (kind == "link") { ++ broker::Link::shared_ptr link = ++ broker::Link::decode(cluster.getBroker().getLinks(), buf); ++ QPID_LOG(debug, cluster << " updated link " ++ << link->getHost() << ":" << link->getPort()); ++ } ++ else if (kind == "bridge") { ++ broker::Bridge::shared_ptr bridge = ++ broker::Bridge::decode(cluster.getBroker().getLinks(), buf); ++ QPID_LOG(debug, cluster << " updated bridge " << bridge->getName()); ++ } ++ else throw Exception(QPID_MSG("Update failed, invalid kind of config: " << kind)); ++} ++ ++ + }} // Namespace qpid::cluster + +diff --git a/qpid/cpp/src/qpid/cluster/Connection.h b/qpid/cpp/src/qpid/cluster/Connection.h +index 0949696..d40f1e7 100644 +--- a/qpid/cpp/src/qpid/cluster/Connection.h ++++ b/qpid/cpp/src/qpid/cluster/Connection.h +@@ -184,6 +184,7 @@ class Connection : + const std::string& product, + const std::string& instance); + ++ void config(const std::string& encoded); + void setSecureConnection ( broker::SecureConnection * sc ); + + private: +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index e54d239..66459d9 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -34,6 +34,9 @@ + #include "qpid/broker/Broker.h" + #include "qpid/broker/Queue.h" + #include "qpid/broker/QueueRegistry.h" ++#include "qpid/broker/LinkRegistry.h" ++#include "qpid/broker/Bridge.h" ++#include "qpid/broker/Link.h" + #include "qpid/broker/Message.h" + #include "qpid/broker/Exchange.h" + #include "qpid/broker/ExchangeRegistry.h" +@@ -167,7 +170,7 @@ void UpdateClient::update() { + b.getQueues().eachQueue(boost::bind(&UpdateClient::updateQueueListeners, this, _1)); + + ClusterConnectionProxy(session).expiryId(expiry.getId()); +- ++ updateLinks(); + updateManagementAgent(); + + session.close(); +@@ -199,6 +202,14 @@ template std::string encode(const T& t) { + t.encode(buf); + return encoded; + } ++ ++template std::string encode(const T& t, bool encodeKind) { ++ std::string encoded; ++ encoded.resize(t.encodedSize()); ++ framing::Buffer buf(const_cast(encoded.data()), encoded.size()); ++ t.encode(buf, encodeKind); ++ return encoded; ++} + } // namespace + + +@@ -583,4 +594,21 @@ void UpdateClient::updateQueueListener(std::string& q, + ClusterConnectionProxy(session).addQueueListener(q, n); + } + ++void UpdateClient::updateLinks() { ++ broker::LinkRegistry& links = updaterBroker.getLinks(); ++ links.eachLink(boost::bind(&UpdateClient::updateLink, this, _1)); ++ links.eachBridge(boost::bind(&UpdateClient::updateBridge, this, _1)); ++} ++ ++void UpdateClient::updateLink(const boost::shared_ptr& link) { ++ QPID_LOG(debug, *this << " updating link " ++ << link->getHost() << ":" << link->getPort()); ++ ClusterConnectionProxy(session).config(encode(*link)); ++} ++ ++void UpdateClient::updateBridge(const boost::shared_ptr& bridge) { ++ QPID_LOG(debug, *this << " updating bridge " << bridge->getName()); ++ ClusterConnectionProxy(session).config(encode(*bridge)); ++} ++ + }} // namespace qpid::cluster +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.h b/qpid/cpp/src/qpid/cluster/UpdateClient.h +index 76621cd..156fa11 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.h ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.h +@@ -49,6 +49,8 @@ class DeliveryRecord; + class SessionState; + class SemanticState; + class Decoder; ++class Link; ++class Bridge; + + } // namespace broker + +@@ -99,6 +101,10 @@ class UpdateClient : public sys::Runnable { + void updateQueueListener(std::string& q, const boost::shared_ptr& c); + void updateManagementSetupState(); + void updateManagementAgent(); ++ void updateLinks(); ++ void updateLink(const boost::shared_ptr&); ++ void updateBridge(const boost::shared_ptr&); ++ + + Numbering consumerNumbering; + MemberId updaterId; +diff --git a/qpid/cpp/src/tests/cluster_test_logs.py b/qpid/cpp/src/tests/cluster_test_logs.py +index 261b1d5..eae28fc 100755 +--- a/qpid/cpp/src/tests/cluster_test_logs.py ++++ b/qpid/cpp/src/tests/cluster_test_logs.py +@@ -58,7 +58,8 @@ def filter_log(log): + 'warning Broker closed connection: 200, OK', + 'task late', + 'task overran', +- 'warning CLOSING .* unsent data' ++ 'warning CLOSING .* unsent data', ++ 'Inter-broker link ' + ]) + if re.compile(skip).search(l): continue + +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index 975175c..f2aa17e 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -27,6 +27,7 @@ from qpid.messaging import Message, Empty + from threading import Thread, Lock + from logging import getLogger + from itertools import chain ++from tempfile import NamedTemporaryFile + + log = getLogger("qpid.cluster_tests") + +@@ -187,6 +188,45 @@ class ShortTests(BrokerTest): + cluster.start() + self.assertRaises(Empty, cluster[1].connect().session().receiver("q1").fetch,0) + ++ def test_route_update(self): ++ """Regression test for https://issues.apache.org/jira/browse/QPID-2982 ++ Links and bridges associated with routes were not replicated on update. ++ This meant extra management objects and caused an exit if a management ++ client was attached. ++ """ ++ args=["--mgmt-pub-interval=1","--log-enable=trace+:management"] ++ cluster0 = self.cluster(1, args=args) ++ cluster1 = self.cluster(1, args=args) ++ assert 0 == subprocess.call( ++ ["qpid-route", "route", "add", cluster0[0].host_port(), ++ cluster1[0].host_port(), "dummy-exchange", "dummy-key", "-d"]) ++ cluster0.start() ++ ++ # Wait for qpid-tool:list on cluster0[0] to generate expected output. ++ pattern = re.compile("org.apache.qpid.broker.*link") ++ qpid_tool = subprocess.Popen(["qpid-tool", cluster0[0].host_port()], ++ stdin=subprocess.PIPE, stdout=subprocess.PIPE) ++ class Scanner(Thread): ++ def __init__(self): self.found = False; Thread.__init__(self) ++ def run(self): ++ for l in qpid_tool.stdout: ++ if pattern.search(l): self.found = True; return ++ scanner = Scanner() ++ scanner.start() ++ start = time.time() ++ try: ++ # Wait up to 5 second timeout for scanner to find expected output ++ while not scanner.found and time.time() < start + 5: ++ qpid_tool.stdin.write("list\n") # Ask qpid-tool to list ++ for b in cluster0: b.ready() # Raise if any brokers are down ++ finally: ++ qpid_tool.stdin.write("quit\n") ++ qpid_tool.wait() ++ scanner.join() ++ assert scanner.found ++ # Verify logs are consistent ++ cluster_test_logs.verify_logs(glob.glob("*.log")) ++ + class LongTests(BrokerTest): + """Tests that can run for a long time if -DDURATION= is set""" + def duration(self): +diff --git a/qpid/cpp/xml/cluster.xml b/qpid/cpp/xml/cluster.xml +index 0462838..5e407a0 100644 +--- a/qpid/cpp/xml/cluster.xml ++++ b/qpid/cpp/xml/cluster.xml +@@ -272,5 +272,9 @@ + + + ++ ++ ++ + ++ + +-- +1.5.5.6 + +From 0935c156f3d5c4151b612f46c9b32a1a5f3740f8 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 20 Jan 2011 14:13:08 +0000 +Subject: [PATCH] Bug 654872, QPID-3007: Batch management messages by count, not size. + +QMF V1 management messages were being batched by accumulating up to a +certain total size of data. Since management messages may have +different sizes on brokers in a cluster, this was leading to +inconsistencies. + +This patch batches V1 messages by count rather than by size, similar +to V2 messages. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1061308 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/include/qpid/framing/ResizableBuffer.h | 60 ++++++++++++++++++++++ + qpid/cpp/src/Makefile.am | 1 + + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 28 ++++++---- + qpid/cpp/src/qpid/management/ManagementAgent.h | 4 +- + qpid/cpp/src/tests/cluster_test_logs.py | 11 +++- + qpid/cpp/src/tests/cluster_tests.py | 14 ++++- + 6 files changed, 99 insertions(+), 19 deletions(-) + create mode 100644 qpid/cpp/include/qpid/framing/ResizableBuffer.h + +diff --git a/qpid/cpp/include/qpid/framing/ResizableBuffer.h b/qpid/cpp/include/qpid/framing/ResizableBuffer.h +new file mode 100644 +index 0000000..e6c9e7a +--- /dev/null ++++ b/qpid/cpp/include/qpid/framing/ResizableBuffer.h +@@ -0,0 +1,60 @@ ++#ifndef QPID_FRAMING_RESIZABLEBUFFER_H ++#define QPID_FRAMING_RESIZABLEBUFFER_H ++ ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include "Buffer.h" ++#include ++ ++namespace qpid { ++namespace framing { ++ ++/** ++ * A buffer that maintains its own storage and can be resized, ++ * keeping any data already written to the buffer. ++ */ ++class ResizableBuffer : public Buffer ++{ ++ public: ++ ResizableBuffer(size_t initialSize) : store(initialSize) { ++ static_cast(*this) = Buffer(&store[0], store.size()); ++ } ++ ++ void resize(size_t newSize) { ++ size_t oldPos = getPosition(); ++ store.resize(newSize); ++ static_cast(*this) = Buffer(&store[0], store.size()); ++ setPosition(oldPos); ++ } ++ ++ /** Make sure at least n bytes are available */ ++ void makeAvailable(size_t n) { ++ if (n > available()) ++ resize(getSize() + n - available()); ++ } ++ ++ private: ++ std::vector store; ++}; ++}} // namespace qpid::framing ++ ++#endif /*!QPID_FRAMING_RESIZABLEBUFFER_H*/ +diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am +index 28f0f5c..a8d5929 100644 +--- a/qpid/cpp/src/Makefile.am ++++ b/qpid/cpp/src/Makefile.am +@@ -373,6 +373,7 @@ libqpidcommon_la_SOURCES += \ + qpid/framing/BodyHandler.cpp \ + qpid/framing/BodyHandler.h \ + qpid/framing/Buffer.cpp \ ++ qpid/framing/ResizableBuffer.h \ + qpid/framing/ChannelHandler.h \ + qpid/framing/Endian.cpp \ + qpid/framing/Endian.h \ +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index 407b907..f47abd2 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -106,7 +106,8 @@ ManagementAgent::ManagementAgent (const bool qmfV1, const bool qmfV2) : + startTime(sys::now()), + suppressed(false), disallowAllV1Methods(false), + vendorNameKey(defaultVendorName), productNameKey(defaultProductName), +- qmf1Support(qmfV1), qmf2Support(qmfV2), maxV2ReplyObjs(100) ++ qmf1Support(qmfV1), qmf2Support(qmfV2), maxReplyObjs(100), ++ msgBuffer(MA_BUFFER_SIZE) + { + nextObjectId = 1; + brokerBank = 1; +@@ -645,7 +646,6 @@ void ManagementAgent::periodicProcessing (void) + #define HEADROOM 4096 + debugSnapshot("Management agent periodic processing"); + sys::Mutex::ScopedLock lock (userLock); +- char msgChars[BUFSIZE]; + uint32_t contentSize; + string routingKey; + string sBuf; +@@ -686,7 +686,7 @@ void ManagementAgent::periodicProcessing (void) + for (PendingDeletedObjsMap::iterator mIter = tmp.begin(); mIter != tmp.end(); mIter++) { + std::string packageName; + std::string className; +- Buffer msgBuffer(msgChars, BUFSIZE); ++ msgBuffer.reset(); + uint32_t v1Objs = 0; + uint32_t v2Objs = 0; + Variant::List list_; +@@ -697,6 +697,7 @@ void ManagementAgent::periodicProcessing (void) + + for (DeletedObjectList::iterator lIter = mIter->second.begin(); + lIter != mIter->second.end(); lIter++) { ++ msgBuffer.makeAvailable(HEADROOM); // Make sure there's buffer space. + std::string oid = (*lIter)->objectId; + if (!(*lIter)->encodedV1Config.empty()) { + encodeHeader(msgBuffer, 'c'); +@@ -712,9 +713,9 @@ void ManagementAgent::periodicProcessing (void) + << " len=" << (*lIter)->encodedV1Inst.size()); + v1Objs++; + } +- if (v1Objs && msgBuffer.available() < HEADROOM) { ++ if (v1Objs >= maxReplyObjs) { + v1Objs = 0; +- contentSize = BUFSIZE - msgBuffer.available(); ++ contentSize = msgBuffer.getSize(); + stringstream key; + key << "console.obj.1.0." << packageName << "." << className; + msgBuffer.reset(); +@@ -726,7 +727,7 @@ void ManagementAgent::periodicProcessing (void) + if (!(*lIter)->encodedV2.empty()) { + QPID_LOG(trace, "Deleting V2 " << "map=" << (*lIter)->encodedV2); + list_.push_back((*lIter)->encodedV2); +- if (++v2Objs >= maxV2ReplyObjs) { ++ if (++v2Objs >= maxReplyObjs) { + v2Objs = 0; + + string content; +@@ -797,11 +798,11 @@ void ManagementAgent::periodicProcessing (void) + // sendBuffer() call, so always restart the search after a sendBuffer() call + // + while (1) { +- Buffer msgBuffer(msgChars, BUFSIZE); ++ msgBuffer.reset(); + Variant::List list_; + uint32_t pcount; + uint32_t scount; +- uint32_t v2Objs; ++ uint32_t v1Objs, v2Objs; + ManagementObjectMap::iterator baseIter; + std::string packageName; + std::string className; +@@ -824,6 +825,7 @@ void ManagementAgent::periodicProcessing (void) + break; // done - all objects processed + + pcount = scount = 0; ++ v1Objs = 0; + v2Objs = 0; + list_.clear(); + msgBuffer.reset(); +@@ -831,6 +833,7 @@ void ManagementAgent::periodicProcessing (void) + for (ManagementObjectMap::iterator iter = baseIter; + iter != managementObjects.end(); + iter++) { ++ msgBuffer.makeAvailable(HEADROOM); // Make sure there's buffer space + ManagementObject* baseObject = baseIter->second; + ManagementObject* object = iter->second; + bool send_stats, send_props; +@@ -857,6 +860,7 @@ void ManagementAgent::periodicProcessing (void) + QPID_LOG(trace, "Changed V1 properties " + << object->getObjectId().getV2Key() + << " len=" << msgBuffer.getPosition()-pos); ++ ++v1Objs; + } + + if (send_stats && qmf1Support) { +@@ -868,7 +872,7 @@ void ManagementAgent::periodicProcessing (void) + QPID_LOG(trace, "Changed V1 statistics " + << object->getObjectId().getV2Key() + << " len=" << msgBuffer.getPosition()-pos); +- ++ ++v1Objs; + } + + if ((send_stats || send_props) && qmf2Support) { +@@ -898,8 +902,8 @@ void ManagementAgent::periodicProcessing (void) + + object->setForcePublish(false); + +- if ((qmf1Support && (msgBuffer.available() < HEADROOM)) || +- (qmf2Support && (v2Objs >= maxV2ReplyObjs))) ++ if ((qmf1Support && (v1Objs >= maxReplyObjs)) || ++ (qmf2Support && (v2Objs >= maxReplyObjs))) + break; // have enough objects, send an indication... + } + } +@@ -1945,7 +1949,7 @@ void ManagementAgent::handleGetQueryLH(const string& body, const string& replyTo + "_data", + object->getMd5Sum()); + _subList.push_back(map_); +- if (++objCount >= maxV2ReplyObjs) { ++ if (++objCount >= maxReplyObjs) { + objCount = 0; + _list.push_back(_subList); + _subList.clear(); +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h +index 2202e2f..d434fe4 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.h ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.h +@@ -35,6 +35,7 @@ + #include "qpid/types/Variant.h" + #include + #include ++#include + #include + #include + #include +@@ -330,7 +331,7 @@ private: + + // Maximum # of objects allowed in a single V2 response + // message. +- uint32_t maxV2ReplyObjs; ++ uint32_t maxReplyObjs; + + // list of objects that have been deleted, but have yet to be published + // one final time. +@@ -343,6 +344,7 @@ private: + char inputBuffer[MA_BUFFER_SIZE]; + char outputBuffer[MA_BUFFER_SIZE]; + char eventBuffer[MA_BUFFER_SIZE]; ++ framing::ResizableBuffer msgBuffer; + + void writeData (); + void periodicProcessing (void); +diff --git a/qpid/cpp/src/tests/cluster_test_logs.py b/qpid/cpp/src/tests/cluster_test_logs.py +index eae28fc..4cb9219 100755 +--- a/qpid/cpp/src/tests/cluster_test_logs.py ++++ b/qpid/cpp/src/tests/cluster_test_logs.py +@@ -59,7 +59,8 @@ def filter_log(log): + 'task late', + 'task overran', + 'warning CLOSING .* unsent data', +- 'Inter-broker link ' ++ 'Inter-broker link ', ++ 'Running in a cluster, marking store' + ]) + if re.compile(skip).search(l): continue + +@@ -85,8 +86,12 @@ def filter_log(log): + out.write(l) + out.close() + +-def verify_logs(logs): ++def verify_logs(): + """Compare log files from cluster brokers, verify that they correspond correctly.""" ++ # FIXME aconway 2011-01-19: disable when called from unit tests ++ # Causing sporadic failures, see https://issues.apache.org/jira/browse/QPID-3007 ++ if __name__ != "__main__": return ++ + for l in glob.glob("*.log"): filter_log(l) + checkpoints = set() + for l in glob.glob("*.filter"): checkpoints = checkpoints.union(set(split_log(l))) +@@ -106,4 +111,4 @@ def verify_logs(logs): + + # Can be run as a script. + if __name__ == "__main__": +- verify_logs(glob.glob("*.log")) ++ verify_logs() +diff --git a/qpid/cpp/src/tests/cluster_tests.py b/qpid/cpp/src/tests/cluster_tests.py +index f2aa17e..df137cf 100755 +--- a/qpid/cpp/src/tests/cluster_tests.py ++++ b/qpid/cpp/src/tests/cluster_tests.py +@@ -225,7 +225,7 @@ class ShortTests(BrokerTest): + scanner.join() + assert scanner.found + # Verify logs are consistent +- cluster_test_logs.verify_logs(glob.glob("*.log")) ++ cluster_test_logs.verify_logs() + + class LongTests(BrokerTest): + """Tests that can run for a long time if -DDURATION= is set""" +@@ -381,12 +381,20 @@ class LongTests(BrokerTest): + c.stop() + + # Verify that logs are consistent +- # FIXME aconway 2011-01-11: disabled due to known bugs, see QPID-2982 +- # cluster_test_logs.verify_logs(glob.glob("*.log")) ++ cluster_test_logs.verify_logs() + + def test_management_qmf2(self): + self.test_management(args=["--mgmt-qmf2=yes"]) + ++ def test_connect_consistent(self): # FIXME aconway 2011-01-18: ++ args=["--mgmt-pub-interval=1","--log-enable=trace+:management"] ++ cluster = self.cluster(2, args=args) ++ end = time.time() + self.duration() ++ while (time.time() < end): # Get a management interval ++ for i in xrange(1000): cluster[0].connect().close() ++ cluster_test_logs.verify_logs() ++ ++ + class StoreTests(BrokerTest): + """ + Cluster tests that can only be run if there is a store available. +-- +1.5.5.6 + +From a13c3e9bb826f13916b1bc5c14a07638da46ab4a Mon Sep 17 00:00:00 2001 +From: Gordon Sim +Date: Mon, 17 Jan 2011 22:11:35 +0000 +Subject: [PATCH] rhbz-549670 QPID-3006: remove incorrect and unnecessary authorisation check + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1060110 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit f425c029118b8f2404fea12e08875f48d0e0b720) +--- + qpid/cpp/src/qpid/broker/Link.cpp | 13 ------------- + qpid/cpp/src/qpid/broker/Link.h | 1 - + 2 files changed, 0 insertions(+), 14 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Link.cpp b/qpid/cpp/src/qpid/broker/Link.cpp +index 244c114..5db3981 100644 +--- a/qpid/cpp/src/qpid/broker/Link.cpp ++++ b/qpid/cpp/src/qpid/broker/Link.cpp +@@ -179,18 +179,6 @@ void Link::closed (int, std::string text) + destroy(); + } + +-void Link::checkClosePermission() +-{ +- Mutex::ScopedLock mutex(lock); +- +- AclModule* acl = getBroker()->getAcl(); +- std::string userID = getUsername() + "@" + getBroker()->getOptions().realm; +- if (acl && !acl->authorise(userID,acl::ACT_DELETE,acl::OBJ_LINK,"")){ +- throw UnauthorizedAccessException("ACL denied delete link request"); +- } +-} +- +- + void Link::destroy () + { + Bridges toDelete; +@@ -420,7 +408,6 @@ Manageable::status_t Link::ManagementMethod (uint32_t op, Args& args, string& te + switch (op) + { + case _qmf::Link::METHOD_CLOSE : +- checkClosePermission(); + if (!closing) { + closing = true; + if (state != STATE_CONNECTING && connection) { +diff --git a/qpid/cpp/src/qpid/broker/Link.h b/qpid/cpp/src/qpid/broker/Link.h +index 9da6100..f536407 100644 +--- a/qpid/cpp/src/qpid/broker/Link.h ++++ b/qpid/cpp/src/qpid/broker/Link.h +@@ -86,7 +86,6 @@ namespace qpid { + void destroy(); // Called when mgmt deletes this link + void ioThreadProcessing(); // Called on connection's IO thread by request + bool tryFailover(); // Called during maintenance visit +- void checkClosePermission(); // ACL check for explict mgmt call to close this link + + public: + typedef boost::shared_ptr shared_ptr; +-- +1.5.5.6 + +From fbe35ba0e77f1fd68ff1332fa2e6ea80bdc1904c Mon Sep 17 00:00:00 2001 +From: Kenneth Anthony Giusti +Date: Fri, 29 Oct 2010 15:51:02 +0000 +Subject: [PATCH] rhbz-667735 QPID-2916: fix QMF test that was sending a sstr > 255 bytes long. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1028812 13f79535-47bb-0310-9956-ffa450edef68 +--- + qpid/cpp/bindings/qmf/tests/ruby_console_test.rb | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +index fcdf3ac..1c4a0a2 100755 +--- a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb ++++ b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +@@ -136,7 +136,7 @@ class ConsoleTest < ConsoleTestBase + strings << "DEF" + strings << "GHIJKLMNOPQRSTUVWXYZ" + big = "a" +- for i in 0...270 ++ for i in 0...254 + big << "X" + end + strings << big +-- +1.5.5.6 + +From 61889aca46b7b38704e584f19e56000e459fce3d Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 13 Jan 2011 19:10:07 +0000 +Subject: [PATCH] rhbz-658936: In qmfengine, if a method call or method response requires a buffer larger than the + static buffer used for communication, allocate a large-enough buffer temporarily from the + heap. + +A test is included to verify large-buffer behavior. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1058709 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 51b79cafaa57b231f3fd87e29fe190a442bd8a81) +--- + qpid/cpp/bindings/qmf/tests/ruby_console_test.rb | 37 +++++++++++++ + qpid/cpp/src/qmf/engine/Agent.cpp | 32 ++++++++++- + qpid/cpp/src/qmf/engine/BrokerProxyImpl.cpp | 60 ++++++++++++++++++---- + qpid/cpp/src/qmf/engine/BrokerProxyImpl.h | 1 + + qpid/cpp/src/qmf/engine/ValueImpl.cpp | 45 ++++++++++++++++ + qpid/cpp/src/qmf/engine/ValueImpl.h | 1 + + 6 files changed, 163 insertions(+), 13 deletions(-) + +diff --git a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +index 1c4a0a2..972d597 100755 +--- a/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb ++++ b/qpid/cpp/bindings/qmf/tests/ruby_console_test.rb +@@ -354,6 +354,43 @@ class ConsoleTest < ConsoleTestBase + end + end + ++ def test_H_map_list_method_call_big ++ parent = @qmfc.object(:class => "parent") ++ assert(parent, "Number of 'parent' objects") ++ ++ big_string = "" ++ segment = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ++ for idx in 1...1500 ++ big_string = big_string + segment ++ end ++ ++ inMap = {'aLong' => 9999999999, ++ 'aInt' => 54321, ++ 'aSigned' => -666, ++ 'aString' => big_string, ++ 'another' => big_string, ++ 'aFloat' => 3.1415, ++ 'aList' => ['x', -1, 'y', 2], ++ 'abool' => false} ++ ++ inList = ['aString', 1, -1, 2.7182, {'aMap'=> -8}, true] ++ ++ result = parent.test_map_list(inMap, inList) ++ assert_equal(result.status, 0) ++ assert_equal(result.text, "OK") ++ ++ # verify returned values ++ assert_equal(inMap.length, result.args['outMap'].length) ++ result.args['outMap'].each do |k,v| ++ assert_equal(inMap[k], v) ++ end ++ ++ assert_equal(inList.length, result.args['outList'].length) ++ for idx in 0...inList.length ++ assert_equal(inList[idx], result.args['outList'][idx]) ++ end ++ end ++ + end + + app = ConsoleTest.new +diff --git a/qpid/cpp/src/qmf/engine/Agent.cpp b/qpid/cpp/src/qmf/engine/Agent.cpp +index 067f534..1f08dde 100644 +--- a/qpid/cpp/src/qmf/engine/Agent.cpp ++++ b/qpid/cpp/src/qmf/engine/Agent.cpp +@@ -356,8 +356,7 @@ void AgentImpl::heartbeat() + QPID_LOG(trace, "SENT HeartbeatIndication"); + } + +-void AgentImpl::methodResponse(uint32_t sequence, uint32_t status, char* text, +- const Value& argMap) ++void AgentImpl::methodResponse(uint32_t sequence, uint32_t status, char* text, const Value& argMap) + { + Mutex::ScopedLock _lock(lock); + map::iterator iter = contextMap.find(sequence); +@@ -366,7 +365,32 @@ void AgentImpl::methodResponse(uint32_t sequence, uint32_t status, char* text, + AgentQueryContext::Ptr context = iter->second; + contextMap.erase(iter); + +- Buffer buffer(outputBuffer, MA_BUFFER_SIZE); ++ char* buf(outputBuffer); ++ uint32_t bufLen(114 + strlen(text)); // header(8) + status(4) + mstring(2 + size) + margin(100) ++ bool allocated(false); ++ ++ if (status == 0) { ++ for (vector::const_iterator aIter = context->schemaMethod->impl->arguments.begin(); ++ aIter != context->schemaMethod->impl->arguments.end(); aIter++) { ++ const SchemaArgument* schemaArg = *aIter; ++ if (schemaArg->getDirection() == DIR_OUT || schemaArg->getDirection() == DIR_IN_OUT) { ++ if (argMap.keyInMap(schemaArg->getName())) { ++ const Value* val = argMap.byKey(schemaArg->getName()); ++ bufLen += val->impl->encodedSize(); ++ } else { ++ Value val(schemaArg->getType()); ++ bufLen += val.impl->encodedSize(); ++ } ++ } ++ } ++ } ++ ++ if (bufLen > MA_BUFFER_SIZE) { ++ buf = (char*) malloc(bufLen); ++ allocated = true; ++ } ++ ++ Buffer buffer(buf, bufLen); + Protocol::encodeHeader(buffer, Protocol::OP_METHOD_RESPONSE, context->sequence); + buffer.putLong(status); + buffer.putMediumString(text); +@@ -386,6 +410,8 @@ void AgentImpl::methodResponse(uint32_t sequence, uint32_t status, char* text, + } + } + sendBufferLH(buffer, context->exchange, context->key); ++ if (allocated) ++ free(buf); + QPID_LOG(trace, "SENT MethodResponse seq=" << context->sequence << " status=" << status << " text=" << text); + } + +diff --git a/qpid/cpp/src/qmf/engine/BrokerProxyImpl.cpp b/qpid/cpp/src/qmf/engine/BrokerProxyImpl.cpp +index 69acc2d..5fc7197 100644 +--- a/qpid/cpp/src/qmf/engine/BrokerProxyImpl.cpp ++++ b/qpid/cpp/src/qmf/engine/BrokerProxyImpl.cpp +@@ -269,6 +269,31 @@ string BrokerProxyImpl::encodeMethodArguments(const SchemaMethod* schema, const + return string(); + } + ++string BrokerProxyImpl::encodedSizeMethodArguments(const SchemaMethod* schema, const Value* argmap, uint32_t& size) ++{ ++ int argCount = schema->getArgumentCount(); ++ ++ if (argmap == 0 || !argmap->isMap()) ++ return string("Arguments must be in a map value"); ++ ++ for (int aIdx = 0; aIdx < argCount; aIdx++) { ++ const SchemaArgument* arg(schema->getArgument(aIdx)); ++ if (arg->getDirection() == DIR_IN || arg->getDirection() == DIR_IN_OUT) { ++ if (argmap->keyInMap(arg->getName())) { ++ const Value* argVal(argmap->byKey(arg->getName())); ++ if (argVal->getType() != arg->getType()) ++ return string("Argument is the wrong type: ") + arg->getName(); ++ size += argVal->impl->encodedSize(); ++ } else { ++ Value defaultValue(arg->getType()); ++ size += defaultValue.impl->encodedSize(); ++ } ++ } ++ } ++ ++ return string(); ++} ++ + void BrokerProxyImpl::sendMethodRequest(ObjectId* oid, const SchemaObjectClass* cls, + const string& methodName, const Value* args, void* userContext) + { +@@ -280,7 +305,23 @@ void BrokerProxyImpl::sendMethodRequest(ObjectId* oid, const SchemaObjectClass* + Mutex::ScopedLock _lock(lock); + SequenceContext::Ptr methodContext(new MethodContext(*this, userContext, method)); + stringstream key; +- Buffer outBuffer(outputBuffer, MA_BUFFER_SIZE); ++ char* buf(outputBuffer); ++ uint32_t bufLen(1024); ++ bool allocated(false); ++ ++ string argErrorString = encodedSizeMethodArguments(method, args, bufLen); ++ if (!argErrorString.empty()) { ++ MethodResponsePtr argError(MethodResponseImpl::factory(1, argErrorString)); ++ eventQueue.push_back(eventMethodResponse(userContext, argError)); ++ return; ++ } ++ ++ if (bufLen > MA_BUFFER_SIZE) { ++ buf = (char*) malloc(bufLen); ++ allocated = true; ++ } ++ ++ Buffer outBuffer(buf, bufLen); + uint32_t sequence(seqMgr.reserve(methodContext)); + + Protocol::encodeHeader(outBuffer, Protocol::OP_METHOD_REQUEST, sequence); +@@ -288,15 +329,14 @@ void BrokerProxyImpl::sendMethodRequest(ObjectId* oid, const SchemaObjectClass* + cls->getClassKey()->impl->encode(outBuffer); + outBuffer.putShortString(methodName); + +- string argErrorString = encodeMethodArguments(method, args, outBuffer); +- if (argErrorString.empty()) { +- key << "agent.1." << oid->impl->getAgentBank(); +- sendBufferLH(outBuffer, QMF_EXCHANGE, key.str()); +- QPID_LOG(trace, "SENT MethodRequest seq=" << sequence << " method=" << methodName << " key=" << key.str()); +- } else { +- MethodResponsePtr argError(MethodResponseImpl::factory(1, argErrorString)); +- eventQueue.push_back(eventMethodResponse(userContext, argError)); +- } ++ encodeMethodArguments(method, args, outBuffer); ++ key << "agent.1." << oid->impl->getAgentBank(); ++ sendBufferLH(outBuffer, QMF_EXCHANGE, key.str()); ++ QPID_LOG(trace, "SENT MethodRequest seq=" << sequence << " method=" << methodName << " key=" << key.str()); ++ ++ if (allocated) ++ free(buf); ++ + return; + } + } +diff --git a/qpid/cpp/src/qmf/engine/BrokerProxyImpl.h b/qpid/cpp/src/qmf/engine/BrokerProxyImpl.h +index 494da5e..0542b67 100644 +--- a/qpid/cpp/src/qmf/engine/BrokerProxyImpl.h ++++ b/qpid/cpp/src/qmf/engine/BrokerProxyImpl.h +@@ -142,6 +142,7 @@ namespace engine { + void sendQuery(const Query& query, void* context, const AgentProxy* agent); + bool sendGetRequestLH(SequenceContext::Ptr queryContext, const Query& query, const AgentProxy* agent); + std::string encodeMethodArguments(const SchemaMethod* schema, const Value* args, qpid::framing::Buffer& buffer); ++ std::string encodedSizeMethodArguments(const SchemaMethod* schema, const Value* args, uint32_t& size); + void sendMethodRequest(ObjectId* oid, const SchemaObjectClass* cls, const std::string& method, const Value* args, void* context); + + void addBinding(const std::string& exchange, const std::string& key); +diff --git a/qpid/cpp/src/qmf/engine/ValueImpl.cpp b/qpid/cpp/src/qmf/engine/ValueImpl.cpp +index 409bf64..f9ebbf5 100644 +--- a/qpid/cpp/src/qmf/engine/ValueImpl.cpp ++++ b/qpid/cpp/src/qmf/engine/ValueImpl.cpp +@@ -394,6 +394,51 @@ void ValueImpl::encode(Buffer& buf) const + } + } + ++uint32_t ValueImpl::encodedSize() const ++{ ++ FieldTable ft; ++ List fl; ++ ++ switch (typecode) { ++ case TYPE_UINT8 : ++ case TYPE_BOOL : ++ case TYPE_INT8 : return 1; ++ ++ case TYPE_UINT16 : ++ case TYPE_INT16 : return 2; ++ ++ case TYPE_UINT32 : ++ case TYPE_INT32 : ++ case TYPE_FLOAT : return 4; ++ ++ case TYPE_UINT64 : ++ case TYPE_INT64 : ++ case TYPE_DOUBLE : ++ case TYPE_ABSTIME : ++ case TYPE_DELTATIME : return 8; ++ ++ case TYPE_UUID : ++ case TYPE_REF : return 16; ++ ++ case TYPE_SSTR : return 1 + stringVal.size(); ++ case TYPE_LSTR : return 2 + stringVal.size(); ++ case TYPE_MAP: ++ mapToFieldTable(ft); ++ return ft.encodedSize(); ++ ++ case TYPE_LIST: ++ listToFramingList(fl); ++ return fl.encodedSize(); ++ ++ case TYPE_ARRAY: ++ case TYPE_OBJECT: ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ + bool ValueImpl::keyInMap(const char* key) const + { + return typecode == TYPE_MAP && mapVal.count(key) > 0; +diff --git a/qpid/cpp/src/qmf/engine/ValueImpl.h b/qpid/cpp/src/qmf/engine/ValueImpl.h +index 3b53583..8de8c53 100644 +--- a/qpid/cpp/src/qmf/engine/ValueImpl.h ++++ b/qpid/cpp/src/qmf/engine/ValueImpl.h +@@ -79,6 +79,7 @@ namespace engine { + ~ValueImpl(); + + void encode(qpid::framing::Buffer& b) const; ++ uint32_t encodedSize() const; + + Typecode getType() const { return typecode; } + bool isNull() const { return !valid; } +-- +1.5.5.6 + +From be5be6804361a837d044d2932ba2b9e60c905fe0 Mon Sep 17 00:00:00 2001 +From: Ted Ross +Date: Thu, 13 Jan 2011 19:12:00 +0000 +Subject: [PATCH] rhbz-658936: Originally, when the broker agent authorized a method call, if the message was too large + to fir in the working buffer, the method was rejected. This change rejects the method only + if there is an ACL configured. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1058710 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 8b256bdb1e55a1c81901b20642d385b23c096677) +--- + qpid/cpp/src/qpid/management/ManagementAgent.cpp | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +index f47abd2..3b09c52 100644 +--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp ++++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp +@@ -2021,8 +2021,13 @@ bool ManagementAgent::authorizeAgentMessageLH(Message& msg) + string methodName; + string cid; + ++ // ++ // If the message is larger than our working buffer size, we can't determine if it's ++ // authorized or not. In this case, return true (authorized) if there is no ACL in place, ++ // otherwise return false; ++ // + if (msg.encodedSize() > MA_BUFFER_SIZE) +- return false; ++ return broker->getAcl() == 0; + + msg.encodeContent(inBuffer); + uint32_t bufferLen = inBuffer.getPosition(); +-- +1.5.5.6 + +From c12d47834a2682a28a6d7a11bace6f4b0a517693 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 3 Feb 2011 10:37:24 -0500 +Subject: [PATCH] Bug 674338: remove log prefix from brokertest.py as it is on trunk. + +Causes spurious failure of run_cluster_tests. +--- + qpid/python/qpid/brokertest.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qpid/python/qpid/brokertest.py b/qpid/python/qpid/brokertest.py +index 2064d45..0e30dd9 100644 +--- a/qpid/python/qpid/brokertest.py ++++ b/qpid/python/qpid/brokertest.py +@@ -286,7 +286,7 @@ class Broker(Popen): + self.name = "broker%d" % Broker._broker_count + Broker._broker_count += 1 + self.find_log() +- cmd += ["--log-to-file", self.log, "--log-prefix", self.name] ++ cmd += ["--log-to-file", self.log] + cmd += ["--log-to-stderr=no"] + if log_level != None: + cmd += ["--log-enable=%s" % log_level] +-- +1.5.5.6 + +From 9a529eaf0ea2e8e8157d0798b31312dea9d6002c Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 1 Feb 2011 21:25:35 +0000 +Subject: [PATCH] Bug 674338, QPID-3007: Don't record management statistics in cluster-unsafe contexts. + +A few frames are sent in cluster-unsafe contexts, e.g. heartbeat timer +callbacks and during initial connection negotiation. Don't update the +connection's management counters in these contexts to avoid +inconsistent management data in a cluster. There are very few such +frames so this does not unduly distort the management data. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1066215 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 080be271bc487183d676afec0c1dc7cc9c71ee2b) +--- + qpid/cpp/src/qpid/broker/Connection.cpp | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Connection.cpp b/qpid/cpp/src/qpid/broker/Connection.cpp +index c65b1b4..fa29e03 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.cpp ++++ b/qpid/cpp/src/qpid/broker/Connection.cpp +@@ -166,7 +166,8 @@ void Connection::received(framing::AMQFrame& frame) { + + void Connection::recordFromServer(framing::AMQFrame& frame) + { +- if (mgmtObject != 0) ++ // Don't record management stats in cluster-unsafe contexts ++ if (mgmtObject != 0 && isClusterSafe()) + { + mgmtObject->inc_framesToClient(); + mgmtObject->inc_bytesToClient(frame.encodedSize()); +@@ -175,7 +176,8 @@ void Connection::recordFromServer(framing::AMQFrame& frame) + + void Connection::recordFromClient(framing::AMQFrame& frame) + { +- if (mgmtObject != 0) ++ // Don't record management stats in cluster-unsafe contexts ++ if (mgmtObject != 0 && isClusterSafe()) + { + mgmtObject->inc_framesFromClient(); + mgmtObject->inc_bytesFromClient(frame.encodedSize()); +-- +1.5.5.6 + +From e4f171263dc725e96e8744087b58fc4caffecf9e Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 1 Feb 2011 21:25:43 +0000 +Subject: [PATCH] Bug 674338, QPID-3007: Don't hold on to consumer shared-pointers in UpdateClient::consumerNumbering + +Holding shared pointers in UpdateClient::consumerNumbering can hold +consumers in memory and delete them out of sync with other cluster +members. Made it hold plain pointers instead since we don't actually +need to ensure object liveness, we're just doing an address/number +correspondence. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1066217 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 7b287e266b4478b14208cfe3d60a8cb078102324) +--- + qpid/cpp/src/qpid/cluster/UpdateClient.cpp | 7 +++---- + qpid/cpp/src/qpid/cluster/UpdateClient.h | 2 +- + 2 files changed, 4 insertions(+), 5 deletions(-) + +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +index 66459d9..b704a68 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.cpp ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.cpp +@@ -497,7 +497,7 @@ void UpdateClient::updateConsumer( + ci->isNotifyEnabled(), + ci->position + ); +- consumerNumbering.add(ci); ++ consumerNumbering.add(ci.get()); + + QPID_LOG(debug, *this << " updated consumer " << ci->getName() + << " on " << shadowSession.getId()); +@@ -584,10 +584,9 @@ void UpdateClient::updateQueueListeners(const boost::shared_ptr& + } + + void UpdateClient::updateQueueListener(std::string& q, +- const boost::shared_ptr& c) ++ const boost::shared_ptr& c) + { +- const boost::shared_ptr ci = +- boost::dynamic_pointer_cast(c); ++ SemanticState::ConsumerImpl* ci = dynamic_cast(c.get()); + size_t n = consumerNumbering[ci]; + if (n >= consumerNumbering.size()) + throw Exception(QPID_MSG("Unexpected listener on queue " << q)); +diff --git a/qpid/cpp/src/qpid/cluster/UpdateClient.h b/qpid/cpp/src/qpid/cluster/UpdateClient.h +index 156fa11..7520bb8 100644 +--- a/qpid/cpp/src/qpid/cluster/UpdateClient.h ++++ b/qpid/cpp/src/qpid/cluster/UpdateClient.h +@@ -106,7 +106,7 @@ class UpdateClient : public sys::Runnable { + void updateBridge(const boost::shared_ptr&); + + +- Numbering consumerNumbering; ++ Numbering consumerNumbering; + MemberId updaterId; + MemberId updateeId; + Url updateeUrl; +-- +1.5.5.6 + +From 4412c0fac09c40e6f479442c1515a9f3c7a0c081 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Tue, 1 Feb 2011 21:25:49 +0000 +Subject: [PATCH] Bug 674338, QPID-3007: Ignore expected connection close warning in cluster_test_logs.py + +Also moved regex compilation out of the loop to be more efficient. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1066219 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit c258ded54aef935dcd7004392f789a706b9b618c) +--- + qpid/cpp/src/tests/cluster_test_logs.py | 76 +++++++++++++++---------------- + 1 files changed, 36 insertions(+), 40 deletions(-) + +diff --git a/qpid/cpp/src/tests/cluster_test_logs.py b/qpid/cpp/src/tests/cluster_test_logs.py +index 4cb9219..1fa9014 100755 +--- a/qpid/cpp/src/tests/cluster_test_logs.py ++++ b/qpid/cpp/src/tests/cluster_test_logs.py +@@ -46,52 +46,48 @@ def filter_log(log): + to differ between brokers in a cluster. Filtered log contents between + the same checkpoints should match across the cluster.""" + out = open("%s.filter"%(log), 'w') +- for l in open(log): +- # Lines to skip entirely +- skip = "|".join([ +- 'local connection', # Only on local broker +- 'UPDATER|UPDATEE', # Ignore update process +- 'stall for update|unstall, ignore update|cancelled offer .* unstall', +- 'caught up', +- 'active for links|Passivating links|Activating links', +- 'info Connection.* connected to', # UpdateClient connection +- 'warning Broker closed connection: 200, OK', +- 'task late', +- 'task overran', +- 'warning CLOSING .* unsent data', +- 'Inter-broker link ', +- 'Running in a cluster, marking store' +- ]) +- if re.compile(skip).search(l): continue +- +- # Regex to match a UUID +- uuid='\w\w\w\w\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w\w\w\w\w\w\w\w\w' ++ # Lines to skip entirely, expected differences ++ skip = "|".join([ ++ 'local connection', # Only on local broker ++ 'UPDATER|UPDATEE', # Ignore update process ++ 'stall for update|unstall, ignore update|cancelled offer .* unstall', ++ 'caught up', ++ 'active for links|Passivating links|Activating links', ++ 'info Connection.* connected to', # UpdateClient connection ++ 'warning Connection [\d+ [0-9.:]+] closed', # UpdateClient connection ++ 'warning Broker closed connection: 200, OK', ++ 'task late', ++ 'task overran', ++ 'warning CLOSING .* unsent data', ++ 'Inter-broker link ', ++ 'Running in a cluster, marking store' ++ ]) ++ skip_re = re.compile(skip) ++ # Regex to match a UUID ++ uuid='\w\w\w\w\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w\w\w\w\w\w\w\w\w' ++ # Substitutions to remove expected differences ++ subs = [ ++ (r'\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d ', ''), # Remove timestamp ++ (r'cluster\([0-9.: ]*', 'cluster('), # Remove cluster node id ++ (r' local\)| shadow\)', ')'), # Remove local/shadow indication ++ (r'CATCHUP', 'READY'), # Treat catchup as equivalent to ready. ++ (r'OFFER', 'READY'), # Treat offer as equivalent to ready. ++ # System UUID expected to be different ++ (r'(org.apache.qpid.broker:system[:(])%s(\)?)'%(uuid), r'\1UUID\2'), + +- # Regular expression substitutions to remove expected differences +- for pattern,subst in [ +- (r'\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d ', ''), # Remove timestamp +- (r'cluster\([0-9.: ]*', 'cluster('), # Remove cluster node id +- (r' local\)| shadow\)', ')'), # Remove local/shadow indication +- (r'CATCHUP', 'READY'), # Treat catchup as equivalent to ready. +- (r'OFFER', 'READY'), # Treat offer as equivalent to ready. +- # System UUID expected to be different +- (r'(org.apache.qpid.broker:system[:(])%s(\)?)'%(uuid), r'\1UUID\2'), +- +- # FIXME aconway 2010-12-20: substitutions to mask known problems +- # See https://issues.apache.org/jira/browse/QPID-2982 +- (r' len=\d+', ' len=NN'), # buffer lengths +- (r' map={.*_object_name:([^,}]*)[,}].*', r' \1'), # V2 map - just keep name +- (r'\d+-\d+-\d+--\d+', 'X-X-X--X'), # V1 Object IDs +- ]: l = re.sub(pattern,subst,l) ++ # TODO aconway 2010-12-20: review if these should be expected: ++ (r' len=\d+', ' len=NN'), # buffer lengths ++ (r' map={.*_object_name:([^,}]*)[,}].*', r' \1'), # V2 map - just keep name ++ (r'\d+-\d+-\d+--\d+', 'X-X-X--X'), # V1 Object IDs ++ ] ++ for l in open(log): ++ if skip_re.search(l): continue ++ for pattern,subst in subs: l = re.sub(pattern,subst,l) + out.write(l) + out.close() + + def verify_logs(): + """Compare log files from cluster brokers, verify that they correspond correctly.""" +- # FIXME aconway 2011-01-19: disable when called from unit tests +- # Causing sporadic failures, see https://issues.apache.org/jira/browse/QPID-3007 +- if __name__ != "__main__": return +- + for l in glob.glob("*.log"): filter_log(l) + checkpoints = set() + for l in glob.glob("*.filter"): checkpoints = checkpoints.union(set(split_log(l))) +-- +1.5.5.6 + +From 2107dc6575fab03398232296b05c35187f301254 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Thu, 3 Feb 2011 10:02:07 -0500 +Subject: [PATCH] Bug 674338, QPID-3007: Unique management identifier for connections. + +Management was using remote socket address (host:port) to identify +connections, but this is not a unique identifier. Both the local and +remote addresses are needed to uniquely identify a connection - see +http://www.faqs.org/rfcs/rfc793.html. + +This was causing management errors (multiple objects using same +identifier) and cluster failures (invalid-arg exception) due to +inconsistencies caused by the incorrect management map. + +This commit uses "localhost:localport-remotehost:remoteport" as a unique identifier. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1066220 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 4c0891c404ad38d6f01703250d022d4c1c03cf44) + +Conflicts: + + qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp +--- + qpid/cpp/src/qpid/broker/LinkRegistry.cpp | 11 +- + .../src/qpid/broker/windows/SslProtocolFactory.cpp | 605 ++++++++++---------- + qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp | 2 +- + qpid/cpp/src/qpid/sys/Socket.h | 19 +- + qpid/cpp/src/qpid/sys/SslPlugin.cpp | 2 +- + qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp | 2 +- + qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h | 1 + + qpid/cpp/src/qpid/sys/ssl/SslSocket.h | 5 + + 8 files changed, 334 insertions(+), 313 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +index b7b6aa5..b39792d 100644 +--- a/qpid/cpp/src/qpid/broker/LinkRegistry.cpp ++++ b/qpid/cpp/src/qpid/broker/LinkRegistry.cpp +@@ -254,8 +254,17 @@ MessageStore* LinkRegistry::getStore() const { + return store; + } + +-Link::shared_ptr LinkRegistry::findLink(const std::string& key) ++Link::shared_ptr LinkRegistry::findLink(const std::string& keyOrMgmtId) + { ++ // Convert keyOrMgmtId to a host:port key. ++ // ++ // TODO aconway 2011-02-01: centralize code that constructs/parses ++ // connection management IDs. Currently sys:: protocol factories ++ // and IO plugins construct the IDs and LinkRegistry parses them. ++ size_t separator = keyOrMgmtId.find('-'); ++ if (separator == std::string::npos) separator = 0; ++ std::string key = keyOrMgmtId.substr(separator+1, std::string::npos); ++ + Mutex::ScopedLock locker(lock); + LinkMap::iterator l = links.find(key); + if (l != links.end()) return l->second; +diff --git a/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp b/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp +index 62122cb..84ce0c8 100644 +--- a/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp ++++ b/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp +@@ -1,302 +1,303 @@ +-/* +- * +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- * +- */ +- +-#include "qpid/sys/ProtocolFactory.h" +- +-#include "qpid/Plugin.h" +-#include "qpid/broker/Broker.h" +-#include "qpid/log/Statement.h" +-#include "qpid/sys/AsynchIOHandler.h" +-#include "qpid/sys/ConnectionCodec.h" +-#include "qpid/sys/Socket.h" +-#include "qpid/sys/SystemInfo.h" +-#include "qpid/sys/windows/SslAsynchIO.h" +-#include +-#include +-// security.h needs to see this to distinguish from kernel use. +-#define SECURITY_WIN32 +-#include +-#include +-#undef SECURITY_WIN32 +- +- +-namespace qpid { +-namespace sys { +-namespace windows { +- +-struct SslServerOptions : qpid::Options +-{ +- std::string certStore; +- std::string certName; +- uint16_t port; +- bool clientAuth; +- +- SslServerOptions() : qpid::Options("SSL Options"), +- certStore("My"), port(5671), clientAuth(false) +- { +- qpid::Address me; +- if (qpid::sys::SystemInfo::getLocalHostname(me)) +- certName = me.host; +- else +- certName = "localhost"; +- +- addOptions() +- ("ssl-cert-store", optValue(certStore, "NAME"), "Local store name from which to obtain certificate") +- ("ssl-cert-name", optValue(certName, "NAME"), "Name of the certificate to use") +- ("ssl-port", optValue(port, "PORT"), "Port on which to listen for SSL connections") +- ("ssl-require-client-authentication", optValue(clientAuth), +- "Forces clients to authenticate in order to establish an SSL connection"); +- } +-}; +- +-class SslProtocolFactory : public qpid::sys::ProtocolFactory { +- qpid::sys::Socket listener; +- const bool tcpNoDelay; +- const uint16_t listeningPort; +- std::string brokerHost; +- const bool clientAuthSelected; +- std::auto_ptr acceptor; +- ConnectFailedCallback connectFailedCallback; +- CredHandle credHandle; +- +- public: +- SslProtocolFactory(const SslServerOptions&, int backlog, bool nodelay); +- ~SslProtocolFactory(); +- void accept(sys::Poller::shared_ptr, sys::ConnectionCodec::Factory*); +- void connect(sys::Poller::shared_ptr, const std::string& host, int16_t port, +- sys::ConnectionCodec::Factory*, +- ConnectFailedCallback failed); +- +- uint16_t getPort() const; +- std::string getHost() const; +- bool supports(const std::string& capability); +- +- private: +- void connectFailed(const qpid::sys::Socket&, +- int err, +- const std::string& msg); +- void established(sys::Poller::shared_ptr, +- const qpid::sys::Socket&, +- sys::ConnectionCodec::Factory*, +- bool isClient); +-}; +- +-// Static instance to initialise plugin +-static struct SslPlugin : public Plugin { +- SslServerOptions options; +- +- Options* getOptions() { return &options; } +- +- void earlyInitialize(Target&) { +- } +- +- void initialize(Target& target) { +- broker::Broker* broker = dynamic_cast(&target); +- // Only provide to a Broker +- if (broker) { +- try { +- const broker::Broker::Options& opts = broker->getOptions(); +- ProtocolFactory::shared_ptr protocol(new SslProtocolFactory(options, +- opts.connectionBacklog, +- opts.tcpNoDelay)); +- QPID_LOG(notice, "Listening for SSL connections on TCP port " << protocol->getPort()); +- broker->registerProtocolFactory("ssl", protocol); +- } catch (const std::exception& e) { +- QPID_LOG(error, "Failed to initialise SSL listener: " << e.what()); +- } +- } +- } +-} sslPlugin; +- +-SslProtocolFactory::SslProtocolFactory(const SslServerOptions& options, +- int backlog, +- bool nodelay) +- : tcpNoDelay(nodelay), +- listeningPort(listener.listen(options.port, backlog)), +- clientAuthSelected(options.clientAuth) { +- +- SecInvalidateHandle(&credHandle); +- +- // Get the certificate for this server. +- HCERTSTORE certStoreHandle; +- certStoreHandle = ::CertOpenStore(CERT_STORE_PROV_SYSTEM_A, +- X509_ASN_ENCODING, +- 0, +- CERT_SYSTEM_STORE_LOCAL_MACHINE, +- options.certStore.c_str()); +- if (!certStoreHandle) +- throw qpid::Exception(QPID_MSG("Opening store " << options.certStore << " " << qpid::sys::strError(GetLastError()))); +- +- PCCERT_CONTEXT certContext; +- certContext = ::CertFindCertificateInStore(certStoreHandle, +- X509_ASN_ENCODING, +- 0, +- CERT_FIND_SUBJECT_STR_A, +- options.certName.c_str(), +- NULL); +- if (certContext == NULL) { +- int err = ::GetLastError(); +- ::CertCloseStore(certStoreHandle, 0); +- throw qpid::Exception(QPID_MSG("Locating certificate " << options.certName << " in store " << options.certStore << " " << qpid::sys::strError(GetLastError()))); +- throw QPID_WINDOWS_ERROR(err); +- } +- +- SCHANNEL_CRED cred; +- memset(&cred, 0, sizeof(cred)); +- cred.dwVersion = SCHANNEL_CRED_VERSION; +- cred.cCreds = 1; +- cred.paCred = &certContext; +- SECURITY_STATUS status = ::AcquireCredentialsHandle(NULL, +- UNISP_NAME, +- SECPKG_CRED_INBOUND, +- NULL, +- &cred, +- NULL, +- NULL, +- &credHandle, +- NULL); +- if (status != SEC_E_OK) +- throw QPID_WINDOWS_ERROR(status); +- ::CertFreeCertificateContext(certContext); +- ::CertCloseStore(certStoreHandle, 0); +-} +- +-SslProtocolFactory::~SslProtocolFactory() { +- ::FreeCredentialsHandle(&credHandle); +-} +- +-void SslProtocolFactory::connectFailed(const qpid::sys::Socket&, +- int err, +- const std::string& msg) { +- if (connectFailedCallback) +- connectFailedCallback(err, msg); +-} +- +-void SslProtocolFactory::established(sys::Poller::shared_ptr poller, +- const qpid::sys::Socket& s, +- sys::ConnectionCodec::Factory* f, +- bool isClient) { +- sys::AsynchIOHandler* async = new sys::AsynchIOHandler(s.getPeerAddress(), f); +- +- if (tcpNoDelay) { +- s.setTcpNoDelay(); +- QPID_LOG(info, +- "Set TCP_NODELAY on connection to " << s.getPeerAddress()); +- } +- +- SslAsynchIO *aio; +- if (isClient) { +- async->setClient(); +- aio = +- new qpid::sys::windows::ClientSslAsynchIO(brokerHost, +- s, +- credHandle, +- boost::bind(&AsynchIOHandler::readbuff, async, _1, _2), +- boost::bind(&AsynchIOHandler::eof, async, _1), +- boost::bind(&AsynchIOHandler::disconnect, async, _1), +- boost::bind(&AsynchIOHandler::closedSocket, async, _1, _2), +- boost::bind(&AsynchIOHandler::nobuffs, async, _1), +- boost::bind(&AsynchIOHandler::idle, async, _1)); +- } +- else { +- aio = +- new qpid::sys::windows::ServerSslAsynchIO(clientAuthSelected, +- s, +- credHandle, +- boost::bind(&AsynchIOHandler::readbuff, async, _1, _2), +- boost::bind(&AsynchIOHandler::eof, async, _1), +- boost::bind(&AsynchIOHandler::disconnect, async, _1), +- boost::bind(&AsynchIOHandler::closedSocket, async, _1, _2), +- boost::bind(&AsynchIOHandler::nobuffs, async, _1), +- boost::bind(&AsynchIOHandler::idle, async, _1)); +- } +- +- async->init(aio, 4); +- aio->start(poller); +-} +- +-uint16_t SslProtocolFactory::getPort() const { +- return listeningPort; // Immutable no need for lock. +-} +- +-std::string SslProtocolFactory::getHost() const { +- return listener.getSockname(); +-} +- +-void SslProtocolFactory::accept(sys::Poller::shared_ptr poller, +- sys::ConnectionCodec::Factory* fact) { +- acceptor.reset( +- AsynchAcceptor::create(listener, +- boost::bind(&SslProtocolFactory::established, this, poller, _1, fact, false))); +- acceptor->start(poller); +-} +- +-void SslProtocolFactory::connect(sys::Poller::shared_ptr poller, +- const std::string& host, +- int16_t port, +- sys::ConnectionCodec::Factory* fact, +- ConnectFailedCallback failed) +-{ +- SCHANNEL_CRED cred; +- memset(&cred, 0, sizeof(cred)); +- cred.dwVersion = SCHANNEL_CRED_VERSION; +- SECURITY_STATUS status = ::AcquireCredentialsHandle(NULL, +- UNISP_NAME, +- SECPKG_CRED_OUTBOUND, +- NULL, +- &cred, +- NULL, +- NULL, +- &credHandle, +- NULL); +- if (status != SEC_E_OK) +- throw QPID_WINDOWS_ERROR(status); +- +- brokerHost = host; +- // Note that the following logic does not cause a memory leak. +- // The allocated Socket is freed either by the AsynchConnector +- // upon connection failure or by the AsynchIO upon connection +- // shutdown. The allocated AsynchConnector frees itself when it +- // is no longer needed. +- qpid::sys::Socket* socket = new qpid::sys::Socket(); +- connectFailedCallback = failed; +- AsynchConnector::create(*socket, +- host, +- port, +- boost::bind(&SslProtocolFactory::established, +- this, poller, _1, fact, true), +- boost::bind(&SslProtocolFactory::connectFailed, +- this, _1, _2, _3)); +-} +- +-namespace +-{ +-const std::string SSL = "ssl"; +-} +- +-bool SslProtocolFactory::supports(const std::string& capability) +-{ +- std::string s = capability; +- transform(s.begin(), s.end(), s.begin(), tolower); +- return s == SSL; +-} +- +-}}} // namespace qpid::sys::windows ++/* ++ * ++ * Licensed to the Apache Software Foundation (ASF) under one ++ * or more contributor license agreements. See the NOTICE file ++ * distributed with this work for additional information ++ * regarding copyright ownership. The ASF licenses this file ++ * to you under the Apache License, Version 2.0 (the ++ * "License"); you may not use this file except in compliance ++ * with the License. You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, ++ * software distributed under the License is distributed on an ++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++ * KIND, either express or implied. See the License for the ++ * specific language governing permissions and limitations ++ * under the License. ++ * ++ */ ++ ++#include "qpid/sys/ProtocolFactory.h" ++ ++#include "qpid/Plugin.h" ++#include "qpid/broker/Broker.h" ++#include "qpid/log/Statement.h" ++#include "qpid/sys/AsynchIOHandler.h" ++#include "qpid/sys/ConnectionCodec.h" ++#include "qpid/sys/Socket.h" ++#include "qpid/sys/SystemInfo.h" ++#include "qpid/sys/windows/SslAsynchIO.h" ++#include ++#include ++// security.h needs to see this to distinguish from kernel use. ++#define SECURITY_WIN32 ++#include ++#include ++#undef SECURITY_WIN32 ++ ++ ++namespace qpid { ++namespace sys { ++namespace windows { ++ ++struct SslServerOptions : qpid::Options ++{ ++ std::string certStore; ++ std::string certName; ++ uint16_t port; ++ bool clientAuth; ++ ++ SslServerOptions() : qpid::Options("SSL Options"), ++ certStore("My"), port(5671), clientAuth(false) ++ { ++ qpid::Address me; ++ if (qpid::sys::SystemInfo::getLocalHostname(me)) ++ certName = me.host; ++ else ++ certName = "localhost"; ++ ++ addOptions() ++ ("ssl-cert-store", optValue(certStore, "NAME"), "Local store name from which to obtain certificate") ++ ("ssl-cert-name", optValue(certName, "NAME"), "Name of the certificate to use") ++ ("ssl-port", optValue(port, "PORT"), "Port on which to listen for SSL connections") ++ ("ssl-require-client-authentication", optValue(clientAuth), ++ "Forces clients to authenticate in order to establish an SSL connection"); ++ } ++}; ++ ++class SslProtocolFactory : public qpid::sys::ProtocolFactory { ++ qpid::sys::Socket listener; ++ const bool tcpNoDelay; ++ const uint16_t listeningPort; ++ std::string brokerHost; ++ const bool clientAuthSelected; ++ std::auto_ptr acceptor; ++ ConnectFailedCallback connectFailedCallback; ++ CredHandle credHandle; ++ ++ public: ++ SslProtocolFactory(const SslServerOptions&, int backlog, bool nodelay); ++ ~SslProtocolFactory(); ++ void accept(sys::Poller::shared_ptr, sys::ConnectionCodec::Factory*); ++ void connect(sys::Poller::shared_ptr, const std::string& host, int16_t port, ++ sys::ConnectionCodec::Factory*, ++ ConnectFailedCallback failed); ++ ++ uint16_t getPort() const; ++ std::string getHost() const; ++ bool supports(const std::string& capability); ++ ++ private: ++ void connectFailed(const qpid::sys::Socket&, ++ int err, ++ const std::string& msg); ++ void established(sys::Poller::shared_ptr, ++ const qpid::sys::Socket&, ++ sys::ConnectionCodec::Factory*, ++ bool isClient); ++}; ++ ++// Static instance to initialise plugin ++static struct SslPlugin : public Plugin { ++ SslServerOptions options; ++ ++ Options* getOptions() { return &options; } ++ ++ void earlyInitialize(Target&) { ++ } ++ ++ void initialize(Target& target) { ++ broker::Broker* broker = dynamic_cast(&target); ++ // Only provide to a Broker ++ if (broker) { ++ try { ++ const broker::Broker::Options& opts = broker->getOptions(); ++ ProtocolFactory::shared_ptr protocol(new SslProtocolFactory(options, ++ opts.connectionBacklog, ++ opts.tcpNoDelay)); ++ QPID_LOG(notice, "Listening for SSL connections on TCP port " << protocol->getPort()); ++ broker->registerProtocolFactory("ssl", protocol); ++ } catch (const std::exception& e) { ++ QPID_LOG(error, "Failed to initialise SSL listener: " << e.what()); ++ } ++ } ++ } ++} sslPlugin; ++ ++SslProtocolFactory::SslProtocolFactory(const SslServerOptions& options, ++ int backlog, ++ bool nodelay) ++ : tcpNoDelay(nodelay), ++ listeningPort(listener.listen(options.port, backlog)), ++ clientAuthSelected(options.clientAuth) { ++ ++ SecInvalidateHandle(&credHandle); ++ ++ // Get the certificate for this server. ++ HCERTSTORE certStoreHandle; ++ certStoreHandle = ::CertOpenStore(CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_LOCAL_MACHINE, ++ options.certStore.c_str()); ++ if (!certStoreHandle) ++ throw qpid::Exception(QPID_MSG("Opening store " << options.certStore << " " << qpid::sys::strError(GetLastError()))); ++ ++ PCCERT_CONTEXT certContext; ++ certContext = ::CertFindCertificateInStore(certStoreHandle, ++ X509_ASN_ENCODING, ++ 0, ++ CERT_FIND_SUBJECT_STR_A, ++ options.certName.c_str(), ++ NULL); ++ if (certContext == NULL) { ++ int err = ::GetLastError(); ++ ::CertCloseStore(certStoreHandle, 0); ++ throw qpid::Exception(QPID_MSG("Locating certificate " << options.certName << " in store " << options.certStore << " " << qpid::sys::strError(GetLastError()))); ++ throw QPID_WINDOWS_ERROR(err); ++ } ++ ++ SCHANNEL_CRED cred; ++ memset(&cred, 0, sizeof(cred)); ++ cred.dwVersion = SCHANNEL_CRED_VERSION; ++ cred.cCreds = 1; ++ cred.paCred = &certContext; ++ SECURITY_STATUS status = ::AcquireCredentialsHandle(NULL, ++ UNISP_NAME, ++ SECPKG_CRED_INBOUND, ++ NULL, ++ &cred, ++ NULL, ++ NULL, ++ &credHandle, ++ NULL); ++ if (status != SEC_E_OK) ++ throw QPID_WINDOWS_ERROR(status); ++ ::CertFreeCertificateContext(certContext); ++ ::CertCloseStore(certStoreHandle, 0); ++} ++ ++SslProtocolFactory::~SslProtocolFactory() { ++ ::FreeCredentialsHandle(&credHandle); ++} ++ ++void SslProtocolFactory::connectFailed(const qpid::sys::Socket&, ++ int err, ++ const std::string& msg) { ++ if (connectFailedCallback) ++ connectFailedCallback(err, msg); ++} ++ ++void SslProtocolFactory::established(sys::Poller::shared_ptr poller, ++ const qpid::sys::Socket& s, ++ sys::ConnectionCodec::Factory* f, ++ bool isClient) { ++ sys::AsynchIOHandler* async = new sys::AsynchIOHandler(s.getFullAddress(), f); ++ ++ if (tcpNoDelay) { ++ s.setTcpNoDelay(); ++ QPID_LOG(info, ++ "Set TCP_NODELAY on connection to " << s.getPeerAddress()); ++ } ++ ++ SslAsynchIO *aio; ++ if (isClient) { ++ async->setClient(); ++ aio = ++ new qpid::sys::windows::ClientSslAsynchIO(brokerHost, ++ s, ++ credHandle, ++ boost::bind(&AsynchIOHandler::readbuff, async, _1, _2), ++ boost::bind(&AsynchIOHandler::eof, async, _1), ++ boost::bind(&AsynchIOHandler::disconnect, async, _1), ++ boost::bind(&AsynchIOHandler::closedSocket, async, _1, _2), ++ boost::bind(&AsynchIOHandler::nobuffs, async, _1), ++ boost::bind(&AsynchIOHandler::idle, async, _1)); ++ } ++ else { ++ aio = ++ new qpid::sys::windows::ServerSslAsynchIO(clientAuthSelected, ++ s, ++ credHandle, ++ boost::bind(&AsynchIOHandler::readbuff, async, _1, _2), ++ boost::bind(&AsynchIOHandler::eof, async, _1), ++ boost::bind(&AsynchIOHandler::disconnect, async, _1), ++ boost::bind(&AsynchIOHandler::closedSocket, async, _1, _2), ++ boost::bind(&AsynchIOHandler::nobuffs, async, _1), ++ boost::bind(&AsynchIOHandler::idle, async, _1)); ++ } ++ ++ async->init(aio, 4); ++ aio->start(poller); ++} ++ ++uint16_t SslProtocolFactory::getPort() const { ++ return listeningPort; // Immutable no need for lock. ++} ++ ++std::string SslProtocolFactory::getHost() const { ++ return listener.getSockname(); ++} ++ ++void SslProtocolFactory::accept(sys::Poller::shared_ptr poller, ++ sys::ConnectionCodec::Factory* fact) { ++ acceptor.reset( ++ AsynchAcceptor::create(listener, ++ boost::bind(&SslProtocolFactory::established, this, poller, _1, fact, false))); ++ acceptor->start(poller); ++} ++ ++void SslProtocolFactory::connect(sys::Poller::shared_ptr poller, ++ const std::string& host, ++ int16_t port, ++ sys::ConnectionCodec::Factory* fact, ++ ConnectFailedCallback failed) ++{ ++ SCHANNEL_CRED cred; ++ memset(&cred, 0, sizeof(cred)); ++ cred.dwVersion = SCHANNEL_CRED_VERSION; ++ SECURITY_STATUS status = ::AcquireCredentialsHandle(NULL, ++ UNISP_NAME, ++ SECPKG_CRED_OUTBOUND, ++ NULL, ++ &cred, ++ NULL, ++ NULL, ++ &credHandle, ++ NULL); ++ if (status != SEC_E_OK) ++ throw QPID_WINDOWS_ERROR(status); ++ ++ brokerHost = host; ++ // Note that the following logic does not cause a memory leak. ++ // The allocated Socket is freed either by the AsynchConnector ++ // upon connection failure or by the AsynchIO upon connection ++ // shutdown. The allocated AsynchConnector frees itself when it ++ // is no longer needed. ++ qpid::sys::Socket* socket = new qpid::sys::Socket(); ++ connectFailedCallback = failed; ++ AsynchConnector::create(*socket, ++ host, ++ port, ++ boost::bind(&SslProtocolFactory::established, ++ this, poller, _1, fact, true), ++ boost::bind(&SslProtocolFactory::connectFailed, ++ this, _1, _2, _3)); ++} ++ ++namespace ++{ ++const std::string SSL = "ssl"; ++} ++ ++bool SslProtocolFactory::supports(const std::string& capability) ++{ ++ std::string s = capability; ++ transform(s.begin(), s.end(), s.begin(), tolower); ++ ++ return s == SSL; ++} ++ ++}}} // namespace qpid::sys::windows +diff --git a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +index 9eb2eb7..d53db20 100644 +--- a/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp +@@ -84,7 +84,7 @@ class RdmaIOHandler : public OutputControl { + }; + + RdmaIOHandler::RdmaIOHandler(Rdma::Connection::intrusive_ptr c, qpid::sys::ConnectionCodec::Factory* f) : +- identifier(c->getPeerName()), ++ identifier(c->getFullName()), + factory(f), + codec(0), + readError(false), +diff --git a/qpid/cpp/src/qpid/sys/Socket.h b/qpid/cpp/src/qpid/sys/Socket.h +index 7b50c42..855a802 100644 +--- a/qpid/cpp/src/qpid/sys/Socket.h ++++ b/qpid/cpp/src/qpid/sys/Socket.h +@@ -10,9 +10,9 @@ + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at +- * ++ * + * http://www.apache.org/licenses/LICENSE-2.0 +- * ++ * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@@ -60,27 +60,32 @@ public: + QPID_COMMON_EXTERN int listen(uint16_t port = 0, int backlog = 10) const; + QPID_COMMON_EXTERN int listen(const SocketAddress&, int backlog = 10) const; + +- /** Returns the "socket name" ie the address bound to ++ /** Returns the "socket name" ie the address bound to + * the near end of the socket + */ + QPID_COMMON_EXTERN std::string getSockname() const; + +- /** Returns the "peer name" ie the address bound to ++ /** Returns the "peer name" ie the address bound to + * the remote end of the socket + */ + std::string getPeername() const; + +- /** ++ /** + * Returns an address (host and port) for the remote end of the + * socket + */ + QPID_COMMON_EXTERN std::string getPeerAddress() const; +- /** ++ /** + * Returns an address (host and port) for the local end of the + * socket + */ + std::string getLocalAddress() const; + ++ /** ++ * Returns the full address of the connection: local and remote host and port. ++ */ ++ std::string getFullAddress() const { return getLocalAddress()+"-"+getPeerAddress(); } ++ + QPID_COMMON_EXTERN uint16_t getLocalPort() const; + uint16_t getRemotePort() const; + +@@ -95,7 +100,7 @@ public: + */ + QPID_COMMON_EXTERN Socket* accept() const; + +- // TODO The following are raw operations, maybe they need better wrapping? ++ // TODO The following are raw operations, maybe they need better wrapping? + QPID_COMMON_EXTERN int read(void *buf, size_t count) const; + QPID_COMMON_EXTERN int write(const void *buf, size_t count) const; + +diff --git a/qpid/cpp/src/qpid/sys/SslPlugin.cpp b/qpid/cpp/src/qpid/sys/SslPlugin.cpp +index 297787f..b0e791d 100644 +--- a/qpid/cpp/src/qpid/sys/SslPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/SslPlugin.cpp +@@ -121,7 +121,7 @@ SslProtocolFactory::SslProtocolFactory(const SslServerOptions& options, int back + + void SslProtocolFactory::established(Poller::shared_ptr poller, const qpid::sys::ssl::SslSocket& s, + ConnectionCodec::Factory* f, bool isClient) { +- qpid::sys::ssl::SslHandler* async = new qpid::sys::ssl::SslHandler(s.getPeerAddress(), f, nodict); ++ qpid::sys::ssl::SslHandler* async = new qpid::sys::ssl::SslHandler(s.getFullAddress(), f, nodict); + + if (tcpNoDelay) { + s.setTcpNoDelay(tcpNoDelay); +diff --git a/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp b/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp +index d0c7fe4..a6528f9 100644 +--- a/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp ++++ b/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp +@@ -81,7 +81,7 @@ AsynchIOProtocolFactory::AsynchIOProtocolFactory(int16_t port, int backlog, bool + + void AsynchIOProtocolFactory::established(Poller::shared_ptr poller, const Socket& s, + ConnectionCodec::Factory* f, bool isClient) { +- AsynchIOHandler* async = new AsynchIOHandler(s.getPeerAddress(), f); ++ AsynchIOHandler* async = new AsynchIOHandler(s.getFullAddress(), f); + + if (tcpNoDelay) { + s.setTcpNoDelay(); +diff --git a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +index 59d8782..28bddd2 100644 +--- a/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h ++++ b/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h +@@ -274,6 +274,7 @@ namespace Rdma { + QueuePair::intrusive_ptr getQueuePair(); + std::string getLocalName() const; + std::string getPeerName() const; ++ std::string getFullName() const { return getLocalName()+"-"+getPeerName(); } + }; + } + +diff --git a/qpid/cpp/src/qpid/sys/ssl/SslSocket.h b/qpid/cpp/src/qpid/sys/ssl/SslSocket.h +index e2443e3..102e569 100644 +--- a/qpid/cpp/src/qpid/sys/ssl/SslSocket.h ++++ b/qpid/cpp/src/qpid/sys/ssl/SslSocket.h +@@ -91,6 +91,11 @@ public: + */ + std::string getLocalAddress() const; + ++ /** ++ * Returns the full address of the connection: local and remote host and port. ++ */ ++ std::string getFullAddress() const { return getLocalAddress()+"-"+getPeerAddress(); } ++ + uint16_t getLocalPort() const; + uint16_t getRemotePort() const; + +-- +1.5.5.6 + +From 3d240c51e2f9b749ca6604268969289579642aff Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 2 Feb 2011 18:58:50 +0000 +Subject: [PATCH] Bug 674338, QPID-3007 Fix missing QPID_COMMON_EXTERN in sys/Socket.h, causing windows build failure. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1066581 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit d2fe84700e85b9d19a3c805a426a28d40add9bde) +--- + qpid/cpp/src/qpid/sys/Socket.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qpid/cpp/src/qpid/sys/Socket.h b/qpid/cpp/src/qpid/sys/Socket.h +index 855a802..7d50afc 100644 +--- a/qpid/cpp/src/qpid/sys/Socket.h ++++ b/qpid/cpp/src/qpid/sys/Socket.h +@@ -79,12 +79,12 @@ public: + * Returns an address (host and port) for the local end of the + * socket + */ +- std::string getLocalAddress() const; ++ QPID_COMMON_EXTERN std::string getLocalAddress() const; + + /** + * Returns the full address of the connection: local and remote host and port. + */ +- std::string getFullAddress() const { return getLocalAddress()+"-"+getPeerAddress(); } ++ QPID_COMMON_EXTERN std::string getFullAddress() const { return getLocalAddress()+"-"+getPeerAddress(); } + + QPID_COMMON_EXTERN uint16_t getLocalPort() const; + uint16_t getRemotePort() const; +-- +1.5.5.6 + +From d09ef0d22a2e6643786c998aaae6e7929ef7a8a1 Mon Sep 17 00:00:00 2001 +From: Kim van der Riet +Date: Fri, 28 Jan 2011 14:56:01 +0000 +Subject: [PATCH] rhbz-656385: "Data store can become corrupt with small store file size and large wcache-page-size". The second issue from comments 13-16 in which the queue remains after the store throws the exception is solved. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1064711 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 51f31e3bc3becc4714a9a29f7edd3ebd63cad97e) +--- + qpid/cpp/src/qpid/broker/SessionAdapter.cpp | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/SessionAdapter.cpp b/qpid/cpp/src/qpid/broker/SessionAdapter.cpp +index 2effa03..562d10d 100644 +--- a/qpid/cpp/src/qpid/broker/SessionAdapter.cpp ++++ b/qpid/cpp/src/qpid/broker/SessionAdapter.cpp +@@ -371,7 +371,8 @@ void SessionAdapter::QueueHandlerImpl::declare(const string& name, const string& + } + + //apply settings & create persistent record if required +- queue_created.first->create(arguments); ++ try { queue_created.first->create(arguments); } ++ catch (...) { getBroker().getQueues().destroy(name); throw; } + + //add default binding: + getBroker().getExchanges().getDefault()->bind(queue, name, 0); +-- +1.5.5.6 + +From 3755448b963ca4b378226ad7c3091eb262714783 Mon Sep 17 00:00:00 2001 +From: Alan Conway +Date: Wed, 2 Feb 2011 22:15:01 +0000 +Subject: [PATCH] rhbz-674183, QPID-3033: Segmentation fault while processing session.attach + +If a faulty client sent invalid frames to a connection that was not +yet in the open state, the broker would core dump. + +The fix is to close the connection with a 'framing-error' in this case. + +git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1066661 13f79535-47bb-0310-9956-ffa450edef68 +(cherry picked from commit 737923f33db27dc5685d25e31bff38c4f20b2781) +--- + qpid/cpp/src/qpid/broker/Connection.cpp | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +diff --git a/qpid/cpp/src/qpid/broker/Connection.cpp b/qpid/cpp/src/qpid/broker/Connection.cpp +index fa29e03..4e26aaa 100644 +--- a/qpid/cpp/src/qpid/broker/Connection.cpp ++++ b/qpid/cpp/src/qpid/broker/Connection.cpp +@@ -155,7 +155,10 @@ void Connection::received(framing::AMQFrame& frame) { + if (frame.getChannel() == 0 && frame.getMethod()) { + adapter.handle(frame); + } else { +- getChannel(frame.getChannel()).in(frame); ++ if (adapter.isOpen()) ++ getChannel(frame.getChannel()).in(frame); ++ else ++ close(connection::CLOSE_CODE_FRAMING_ERROR, "Connection not yet open, invalid frame received."); + } + + if (isLink) +-- +1.5.5.6 + diff --git a/rpms/awips2.qpid/SOURCES/qpid-cpp-mrg-0.7.946106.tar.gz b/rpms/awips2.qpid/SOURCES/qpid-cpp-mrg-0.7.946106.tar.gz new file mode 100644 index 0000000000..e06e47e2d3 Binary files /dev/null and b/rpms/awips2.qpid/SOURCES/qpid-cpp-mrg-0.7.946106.tar.gz differ diff --git a/rpms/awips2.qpid/SOURCES/qpid-icon.ico b/rpms/awips2.qpid/SOURCES/qpid-icon.ico new file mode 100644 index 0000000000..112f5d8f1f Binary files /dev/null and b/rpms/awips2.qpid/SOURCES/qpid-icon.ico differ diff --git a/rpms/awips2.qpid/SOURCES/qpid.snk b/rpms/awips2.qpid/SOURCES/qpid.snk new file mode 100644 index 0000000000..9faafd8f8b Binary files /dev/null and b/rpms/awips2.qpid/SOURCES/qpid.snk differ diff --git a/rpms/awips2.qpid/SOURCES/qpidd b/rpms/awips2.qpid/SOURCES/qpidd new file mode 100755 index 0000000000..2b2a07cf96 --- /dev/null +++ b/rpms/awips2.qpid/SOURCES/qpidd @@ -0,0 +1,123 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# +# qpidd Startup script for the Qpid messaging daemon. +# + +### BEGIN INIT INFO +# Provides: qpidd +# Required-Start: $local_fs +# Required-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start or stop qpidd +# Description: Qpidd is an AMQP broker. It receives, stores, routes and forwards messages using the AMQP protcol. +### END INIT INFO + +# chkconfig: - 85 15 +# description: Qpidd is an AMQP broker. It receives, stores, routes and forwards messages using the AMQP protcol. +# processname: qpidd + +QPID_HOME=/awips2/qpid +prog=qpidd +lockfile=$QPID_HOME/var/lock/subsys/$prog +pidfile=$QPID_HOME/var/run/qpidd.pid +queueCreatorScript=$QPID_HOME/sbin/queueCreator.sh + +# Source function library. +. /etc/rc.d/init.d/functions + +if [ -f /etc/sysconfig/$prog ] ; then + . /etc/sysconfig/$prog +fi + +RETVAL=0 + +#ensure binary is present and executable +if [[ !(-x $QPID_HOME/sbin/$prog) ]] ; then + echo "$QPID_HOME/sbin/$prog not found or not executable" + exit 5 +fi + +#ensure user has sufficient permissions +runuser -s /bin/sh awips -c "echo x > /dev/null" 2> /dev/null || RETVAL=4 +if [ $RETVAL = 4 ]; then + echo "user had insufficient privilege"; + exit $RETVAL +fi + +start() { + ulimit -n 2500 + echo -n $"Starting Qpid AMQP daemon: " + daemon --pidfile $pidfile --check $prog --user awips $QPID_HOME/sbin/$prog --daemon --config $QPID_HOME/etc/qpidd.conf $QPIDD_OPTIONS + RETVAL=$? + echo + [ $RETVAL = 0 ] && touch $lockfile + if [ $RETVAL = 0 ]; then + touch $pidfile + chown awips:fxalpha $pidfile + [ -x /sbin/restorecon ] && /sbin/restorecon $pidfile + runuser - -s /bin/sh awips -c "$QPID_HOME/sbin/$prog --check > $pidfile" + + echo "Creating durable queues" + $queueCreatorScript + fi + return $RETVAL +} + +stop() { + echo -n $"Stopping Qpid AMQP daemon: " + killproc -p ${pidfile} $prog + RETVAL=$? + echo + [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} +} + +reload() { + echo 1>&2 $"$0: reload not supported" + exit 3 +} + +restart() { + stop + start +} + +# See how we were called. +case "$1" in + start|stop|restart|reload) + $1 + ;; + status) + status $prog + RETVAL=$? + ;; + force-reload) + restart + ;; + try-restart|condrestart) + [ -e $lockfile ] && restart || : + ;; + *) + echo 1>&2 $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|force-reload}" + exit 2 +esac + +exit $RETVAL diff --git a/rpms/awips2.qpid/SOURCES/qpidd.conf b/rpms/awips2.qpid/SOURCES/qpidd.conf new file mode 100644 index 0000000000..e9a239bc5e --- /dev/null +++ b/rpms/awips2.qpid/SOURCES/qpidd.conf @@ -0,0 +1,30 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# Configuration file for qpidd. Entries are of the form: +# name=value +# +# (Note: no spaces on either side of '='). Using default settings: +# "qpidd --help" or "man qpidd" for more details. +auth=no +worker-threads=17 +data-dir=/awips2/qpid/data +store-dir=/awips2/qpid/messageStore +pid-dir=/awips2/qpid/var/lock +num-jfiles=16 +jfile-size-pgs=24 diff --git a/rpms/awips2.qpid/SOURCES/qpidd.pp b/rpms/awips2.qpid/SOURCES/qpidd.pp new file mode 100644 index 0000000000..ab62bf23bb Binary files /dev/null and b/rpms/awips2.qpid/SOURCES/qpidd.pp differ diff --git a/rpms/awips2.qpid/SOURCES/queueCreator.sh b/rpms/awips2.qpid/SOURCES/queueCreator.sh new file mode 100755 index 0000000000..f206dae4c1 --- /dev/null +++ b/rpms/awips2.qpid/SOURCES/queueCreator.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +export PATH=/awips2/python/bin:$PATH +export LD_LIBRARY_PATH=/awips2/python/lib:$LD_LIBRARY_PATH + +#define 96 Meg persistence queues +QUEUES=('external.dropbox' 'Ingest.Text') +for queue in ${QUEUES[*]}; +do + echo "Creating queue $queue" + qpid-config add queue $queue --durable --file-count 32 --file-size 48 +done + +#define 48 Meg persistence queues +QUEUES=('Ingest.Grib' 'Ingest.Radar' 'watchwarn' 'cpgsrvFiltering' 'Ingest.modelsounding' 'Ingest.Shef' 'Ingest.obs' 'Ingest.dpa') +for queue in ${QUEUES[*]}; +do + echo "Creating queue $queue" + qpid-config add queue $queue --durable --file-count 32 --file-size 24 +done + +#define 24 Meg Dat queues +QUEUES=('ffmp' 'cwat' 'vil' 'qpf' 'preciprate' 'fssobs' 'fog') +for queue in ${QUEUES[*]}; +do + echo "Creating queue ${queue}Generate" + qpid-config add queue ${queue}Generate --durable --file-count 16 --file-size 24 +done + +#define 24 Meg persistence queues +QUEUES=('activeTablePending' 'gfeSvcBackupOp' 'gfeIscQueue' 'edex.tpcWatch' 'edex.spcWatch') +for queue in ${QUEUES[*]}; +do + echo "Creating queue $queue" + qpid-config add queue $queue --durable --file-count 16 --file-size 24 +done + +#define 24 Meg persistence queues for ingest +QUEUES=('vaa' 'textlightning' 'tcs' 'tcg' 'taf' 'svrwx' 'sfcobs' 'redbook' 'recco' 'q2' 'profiler' 'poessounding' 'pirep' 'lsr' 'loctables' 'ldadprofiler' 'ldadmesonet' 'ldadhydro' 'goessounding' 'dhr' 'cwa' 'ccfp' 'bufrua' 'bufrssmi' 'bufrsigwx' 'bufrquikscat' 'bufrncwf' 'bufrmthdw' 'bufrmos' 'bufrhdw' 'bufrascat' 'binlightning' 'airmet' 'airep' 'acars' 'Warning' 'ShefStaged' 'Satellite') +for queue in ${QUEUES[*]}; +do + echo "Creating queue Ingest.$queue" + qpid-config add queue Ingest.$queue --durable --file-count 16 --file-size 24 +done + + diff --git a/rpms/awips2.qpid/SOURCES/store-0.7.3975.tar.gz b/rpms/awips2.qpid/SOURCES/store-0.7.3975.tar.gz new file mode 100644 index 0000000000..091b98c899 Binary files /dev/null and b/rpms/awips2.qpid/SOURCES/store-0.7.3975.tar.gz differ diff --git a/rpms/awips2.qpid/SOURCES/store_1.3.x.patch b/rpms/awips2.qpid/SOURCES/store_1.3.x.patch new file mode 100644 index 0000000000..423a4e676a --- /dev/null +++ b/rpms/awips2.qpid/SOURCES/store_1.3.x.patch @@ -0,0 +1,3335 @@ +From 600610444c444d446c092804b575f5f3eeb49917 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Fri, 21 May 2010 12:49:22 +0000 +Subject: [PATCH 01/24] Added a lock to protect MessageList in MessageStoreImpl and the static variables in JournalImpl; Switched all locks at this level to qpid::sys::Mutex and qpid::sys::ScopedLock for consistency. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@3980 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/JournalImpl.cpp | 41 +++++++++++++++++++++++++---------------- + lib/JournalImpl.h | 13 ++++++------- + lib/MessageStoreImpl.cpp | 32 ++++++++++++++++++++++++-------- + lib/MessageStoreImpl.h | 1 + + 4 files changed, 56 insertions(+), 31 deletions(-) + +diff --git a/lib/JournalImpl.cpp b/lib/JournalImpl.cpp +index eafd807..ed1c334 100644 +--- a/lib/JournalImpl.cpp ++++ b/lib/JournalImpl.cpp +@@ -40,12 +40,13 @@ using namespace mrg::journal; + using qpid::management::ManagementAgent; + namespace _qmf = qmf::com::redhat::rhm::store; + ++qpid::sys::Mutex JournalImpl::_static_lock; + qpid::sys::Timer* JournalImpl::journalTimerPtr = 0; + u_int32_t JournalImpl::cnt = 0; + +-void InactivityFireEvent::fire() { slock s(_ife_mutex); if (_parent) _parent->flushFire(); } ++void InactivityFireEvent::fire() { qpid::sys::Mutex::ScopedLock sl(_ife_lock); if (_parent) _parent->flushFire(); } + +-void GetEventsFireEvent::fire() { slock s(_gefe_mutex); if (_parent) _parent->getEventsFire(); } ++void GetEventsFireEvent::fire() { qpid::sys::Mutex::ScopedLock sl(_gefe_lock); if (_parent) _parent->getEventsFire(); } + + JournalImpl::JournalImpl(const std::string& journalId, + const std::string& journalDirectory, +@@ -68,12 +69,15 @@ JournalImpl::JournalImpl(const std::string& journalId, + { + getEventsFireEventsPtr = new GetEventsFireEvent(this, getEventsTimeout); + inactivityFireEventPtr = new InactivityFireEvent(this, flushTimeout); +- if (journalTimerPtr == 0) +- journalTimerPtr = new qpid::sys::Timer; +- assert (journalTimerPtr != 0); +- cnt++; +- journalTimerPtr->start(); +- journalTimerPtr->add(inactivityFireEventPtr); ++ { ++ qpid::sys::Mutex::ScopedLock sl(_static_lock); ++ if (journalTimerPtr == 0) ++ journalTimerPtr = new qpid::sys::Timer; ++ assert (journalTimerPtr != 0); ++ cnt++; ++ journalTimerPtr->start(); ++ journalTimerPtr->add(inactivityFireEventPtr); ++ } + + if (_agent != 0) + { +@@ -112,11 +116,13 @@ JournalImpl::~JournalImpl() + inactivityFireEventPtr->cancel(); + free_read_buffers(); + +- // TODO: Make this if() thread-safe +- if (journalTimerPtr && --cnt == 0) + { +- delete journalTimerPtr; +- journalTimerPtr = 0; ++ qpid::sys::Mutex::ScopedLock sl(_static_lock); ++ if (journalTimerPtr && --cnt == 0) ++ { ++ delete journalTimerPtr; ++ journalTimerPtr = 0; ++ } + } + + if (_mgmtObject != 0) { +@@ -503,7 +509,7 @@ JournalImpl::flush(const bool block_till_aio_cmpl) + { + const iores res = jcntl::flush(block_till_aio_cmpl); + { +- slock s(_getf_mutex); ++ qpid::sys::Mutex::ScopedLock sl(_getf_lock); + if (_wmgr.get_aio_evt_rem() && !getEventsTimerSetFlag) { setGetEventTimer(); } + } + return res; +@@ -533,7 +539,7 @@ JournalImpl::log(mrg::journal::log_level ll, const char* const log_stmt) const + void + JournalImpl::getEventsFire() + { +- slock s(_getf_mutex); ++ qpid::sys::Mutex::ScopedLock sl(_getf_lock); + getEventsTimerSetFlag = false; + if (_wmgr.get_aio_evt_rem()) { jcntl::get_wr_events(); } + if (_wmgr.get_aio_evt_rem()) { setGetEventTimer(); } +@@ -552,8 +558,11 @@ JournalImpl::flushFire() + } + } + inactivityFireEventPtr->setupNextFire(); +- assert(journalTimerPtr != 0); +- journalTimerPtr->add(inactivityFireEventPtr); ++ { ++ qpid::sys::Mutex::ScopedLock sl(_static_lock); ++ assert(journalTimerPtr != 0); ++ journalTimerPtr->add(inactivityFireEventPtr); ++ } + } + + void +diff --git a/lib/JournalImpl.h b/lib/JournalImpl.h +index 2d1b869..a3f5a17 100644 +--- a/lib/JournalImpl.h ++++ b/lib/JournalImpl.h +@@ -27,8 +27,6 @@ + #include + #include "jrnl/enums.hpp" + #include "jrnl/jcntl.hpp" +-#include "jrnl/slock.hpp" +-#include "jrnl/smutex.hpp" + #include "DataTokenImpl.h" + #include "PreparedTransaction.h" + #include +@@ -47,38 +45,39 @@ namespace mrg { + class InactivityFireEvent : public qpid::sys::TimerTask + { + JournalImpl* _parent; +- mrg::journal::smutex _ife_mutex; ++ qpid::sys::Mutex _ife_lock; + + public: + InactivityFireEvent(JournalImpl* p, const qpid::sys::Duration timeout): + qpid::sys::TimerTask(timeout), _parent(p) {} + virtual ~InactivityFireEvent() {} + void fire(); +- inline void cancel() { mrg::journal::slock s(_ife_mutex); _parent = 0; } ++ inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_ife_lock); _parent = 0; } + }; + + class GetEventsFireEvent : public qpid::sys::TimerTask + { + JournalImpl* _parent; +- mrg::journal::smutex _gefe_mutex; ++ qpid::sys::Mutex _gefe_lock; + + public: + GetEventsFireEvent(JournalImpl* p, const qpid::sys::Duration timeout): + qpid::sys::TimerTask(timeout), _parent(p) {} + virtual ~GetEventsFireEvent() {} + void fire(); +- inline void cancel() { mrg::journal::slock s(_gefe_mutex); _parent = 0; } ++ inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_gefe_lock); _parent = 0; } + }; + + class JournalImpl : public qpid::broker::ExternalQueueStore, public mrg::journal::jcntl, public mrg::journal::aio_callback + { + private: ++ static qpid::sys::Mutex _static_lock; + static qpid::sys::Timer* journalTimerPtr; + static u_int32_t cnt; + + bool getEventsTimerSetFlag; + boost::intrusive_ptr getEventsFireEventsPtr; +- mrg::journal::smutex _getf_mutex; ++ qpid::sys::Mutex _getf_lock; + + u_int64_t lastReadRid; // rid of last read msg for loadMsgContent() - detects out-of-order read requests + std::vector oooRidList; // list of out-of-order rids (greater than current rid) encountered during read sequence +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index 9b4bf25..ed3975d 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -362,10 +362,13 @@ void MessageStoreImpl::init() + void MessageStoreImpl::finalize() + { + if (tplStorePtr->is_ready()) tplStorePtr->stop(true); +- for (JournalListMapItr i = journalList.begin(); i != journalList.end(); i++) + { +- JournalImpl* jQueue = i->second; +- if (jQueue->is_ready()) jQueue->stop(true); ++ qpid::sys::Mutex::ScopedLock sl(journalListLock); ++ for (JournalListMapItr i = journalList.begin(); i != journalList.end(); i++) ++ { ++ JournalImpl* jQueue = i->second; ++ if (jQueue->is_ready()) jQueue->stop(true); ++ } + } + + if (mgmtObject != 0) { +@@ -377,10 +380,13 @@ void MessageStoreImpl::finalize() + void MessageStoreImpl::truncateInit(const bool pushDownStoreFiles) + { + if (isInit) { +- if (journalList.size()) { // check no queues exist +- std::ostringstream oss; +- oss << "truncateInit() called with " << journalList.size() << " queues still in existence"; +- THROW_STORE_EXCEPTION(oss.str()); ++ { ++ qpid::sys::Mutex::ScopedLock sl(journalListLock); ++ if (journalList.size()) { // check no queues exist ++ std::ostringstream oss; ++ oss << "truncateInit() called with " << journalList.size() << " queues still in existence"; ++ THROW_STORE_EXCEPTION(oss.str()); ++ } + } + for (std::list::iterator i = dbs.begin(); i != dbs.end(); i++) { + (*i)->close(0); +@@ -402,6 +408,7 @@ void MessageStoreImpl::truncateInit(const bool pushDownStoreFiles) + + void MessageStoreImpl::chkTplStoreInit() + { ++ // Don't take lock unless necessary + if (!tplStorePtr->is_ready()) { + qpid::sys::Mutex::ScopedLock sl(jrnlCreateLock); + if (!tplStorePtr->is_ready()) { +@@ -480,6 +487,9 @@ void MessageStoreImpl::create(PersistableQueue& queue, + jQueue = new JournalImpl(queue.getName(), getJrnlDir(queue), + std::string("JournalData"), defJournalGetEventsTimeout, + defJournalFlushTimeout, agent); ++ } ++ { ++ qpid::sys::Mutex::ScopedLock sl(journalListLock); + journalList[queue.getName()]=jQueue; + } + +@@ -517,7 +527,10 @@ void MessageStoreImpl::destroy(PersistableQueue& queue) + JournalImpl* jQueue = static_cast(eqs); + jQueue->delete_jrnl_files(); + queue.setExternalQueueStore(0); // will delete the journal if exists +- journalList.erase(journalList.find(queue.getName())); ++ { ++ qpid::sys::Mutex::ScopedLock sl(journalListLock); ++ journalList.erase(journalList.find(queue.getName())); ++ } + } + } + +@@ -759,6 +772,9 @@ void MessageStoreImpl::recoverQueues(TxnCtxt& txn, + { + qpid::sys::Mutex::ScopedLock sl(jrnlCreateLock); + jQueue = new JournalImpl(queueName, getJrnlHashDir(queueName), std::string("JournalData"), defJournalGetEventsTimeout, defJournalFlushTimeout, agent); ++ } ++ { ++ qpid::sys::Mutex::ScopedLock sl(journalListLock); + journalList[queueName] = jQueue; + } + queue->setExternalQueueStore(dynamic_cast(jQueue)); +diff --git a/lib/MessageStoreImpl.h b/lib/MessageStoreImpl.h +index 076a0ca..136659f 100644 +--- a/lib/MessageStoreImpl.h ++++ b/lib/MessageStoreImpl.h +@@ -126,6 +126,7 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + boost::shared_ptr tplStorePtr; + TplRecoverMap tplRecoverMap; + JournalListMap journalList; ++ qpid::sys::Mutex journalListLock; + + IdSequence queueIdSequence; + IdSequence exchangeIdSequence; +-- +1.7.3.4 + +From 1392d6fdbf4625bcbcadc16ba323af467305e4d8 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Fri, 21 May 2010 16:46:34 +0000 +Subject: [PATCH 02/24] Removed redundant locks; the previous checkin installed the correct lock in JournalImpl::JournalImpl. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@3982 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 24 +++++++----------------- + lib/MessageStoreImpl.h | 2 -- + 2 files changed, 7 insertions(+), 19 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index ed3975d..8cedb51 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -410,12 +410,9 @@ void MessageStoreImpl::chkTplStoreInit() + { + // Don't take lock unless necessary + if (!tplStorePtr->is_ready()) { +- qpid::sys::Mutex::ScopedLock sl(jrnlCreateLock); +- if (!tplStorePtr->is_ready()) { +- journal::jdir::create_dir(getTplBaseDir()); +- tplStorePtr->initialize(tplNumJrnlFiles, false, 0, tplJrnlFsizeSblks, tplWCacheNumPages, tplWCachePgSizeSblks); +- if (mgmtObject != 0) mgmtObject->set_tplIsInitialized(true); +- } ++ journal::jdir::create_dir(getTplBaseDir()); ++ tplStorePtr->initialize(tplNumJrnlFiles, false, 0, tplJrnlFsizeSblks, tplWCacheNumPages, tplWCachePgSizeSblks); ++ if (mgmtObject != 0) mgmtObject->set_tplIsInitialized(true); + } + } + +@@ -481,13 +478,8 @@ void MessageStoreImpl::create(PersistableQueue& queue, + return; + } + +- { +- // TODO: Is this mutex necessary? +- qpid::sys::Mutex::ScopedLock sl(jrnlCreateLock); +- jQueue = new JournalImpl(queue.getName(), getJrnlDir(queue), +- std::string("JournalData"), defJournalGetEventsTimeout, +- defJournalFlushTimeout, agent); +- } ++ jQueue = new JournalImpl(queue.getName(), getJrnlDir(queue), std::string("JournalData"), ++ defJournalGetEventsTimeout, defJournalFlushTimeout, agent); + { + qpid::sys::Mutex::ScopedLock sl(journalListLock); + journalList[queue.getName()]=jQueue; +@@ -769,10 +761,8 @@ void MessageStoreImpl::recoverQueues(TxnCtxt& txn, + QPID_LOG(error, "Cannot recover empty (null) queue name - ignoring and attempting to continue."); + break; + } +- { +- qpid::sys::Mutex::ScopedLock sl(jrnlCreateLock); +- jQueue = new JournalImpl(queueName, getJrnlHashDir(queueName), std::string("JournalData"), defJournalGetEventsTimeout, defJournalFlushTimeout, agent); +- } ++ jQueue = new JournalImpl(queueName, getJrnlHashDir(queueName), std::string("JournalData"), ++ defJournalGetEventsTimeout, defJournalFlushTimeout, agent); + { + qpid::sys::Mutex::ScopedLock sl(journalListLock); + journalList[queueName] = jQueue; +diff --git a/lib/MessageStoreImpl.h b/lib/MessageStoreImpl.h +index 136659f..12e1d97 100644 +--- a/lib/MessageStoreImpl.h ++++ b/lib/MessageStoreImpl.h +@@ -93,7 +93,6 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + typedef std::map TplRecoverMap; + typedef TplRecoverMap::const_iterator TplRecoverMapCitr; + +- typedef std::pair JournalListPair; + typedef std::map JournalListMap; + typedef JournalListMap::iterator JournalListMapItr; + +@@ -149,7 +148,6 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + const char* envPath; + + qmf::com::redhat::rhm::store::Store* mgmtObject; +- qpid::sys::Mutex jrnlCreateLock; + qpid::management::ManagementAgent* agent; + + // Parameter validation and calculation +-- +1.7.3.4 + +From e62a68ecde439e5a98576cbbae65bbc3f3005449 Mon Sep 17 00:00:00 2001 +From: aconway +Date: Thu, 27 May 2010 18:06:48 +0000 +Subject: [PATCH 03/24] Bug 596765: Remove global shared_ptr to store in store plugin. + +The global shared_ptr delays destruction of the store till after the broker is deleted causing core dumps when unregistering management objects. +https://bugzilla.redhat.com/show_bug.cgi?id=596765 + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@3995 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 2 +- + lib/StorePlugin.cpp | 8 +++----- + 2 files changed, 4 insertions(+), 6 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index 8cedb51..e7cb405 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -428,11 +428,11 @@ void MessageStoreImpl::open(db_ptr db, + + MessageStoreImpl::~MessageStoreImpl() + { ++ finalize(); + try { + for (std::list::iterator i = dbs.begin(); i != dbs.end(); i++) { + (*i)->close(0); + } +-// if (tplStorePtr->is_ready()) tplStorePtr->stop(true); + } catch (const DbException& e) { + QPID_LOG(error, "Error closing BDB databases: " << e.what()); + } catch (const journal::jexception& e) { +diff --git a/lib/StorePlugin.cpp b/lib/StorePlugin.cpp +index 1cbdbff..0fb3512 100644 +--- a/lib/StorePlugin.cpp ++++ b/lib/StorePlugin.cpp +@@ -36,16 +36,15 @@ using namespace std; + struct StorePlugin : public Plugin { + + mrg::msgstore::MessageStoreImpl::StoreOptions options; +- boost::shared_ptr store; + + Options* getOptions() { return &options; } + + void earlyInitialize (Plugin::Target& target) + { + Broker* broker = dynamic_cast(&target); +- store.reset(new mrg::msgstore::MessageStoreImpl ()); ++ if (!broker) return; ++ boost::shared_ptr store(new mrg::msgstore::MessageStoreImpl ()); + DataDir& dataDir = broker->getDataDir (); +- + if (options.storeDir.empty ()) + { + if (!dataDir.isEnabled ()) +@@ -67,8 +66,7 @@ struct StorePlugin : public Plugin { + + void finalize() + { +- MessageStore* sp = store.get(); +- static_cast(sp)->finalize(); ++ // This function intentionally left blank + } + + const char* id() {return "StorePlugin";} +-- +1.7.3.4 + +From 91dcd499e54fd82b0a808f705b18c2b6c5775bd0 Mon Sep 17 00:00:00 2001 +From: aconway +Date: Mon, 31 May 2010 14:08:28 +0000 +Subject: [PATCH 04/24] Skip cluster_tests.ShortTests.test_sasl as it depends on a SASL database not available in the store build environment. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@3996 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + tests/cluster/run_python_cluster_tests | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/tests/cluster/run_python_cluster_tests b/tests/cluster/run_python_cluster_tests +index 4bd2126..ce96152 100755 +--- a/tests/cluster/run_python_cluster_tests ++++ b/tests/cluster/run_python_cluster_tests +@@ -28,8 +28,13 @@ func_check_qpid_python || exit 0 # A warning, not a failure. + echo "Running Python cluster tests..." + OUTDIR=brokertest.tmp + rm -rf $OUTDIR +-# Ignore tests requiring a store by default. ++ ++# Ignore tests known to fail. + CLUSTER_TESTS_IGNORE=${CLUSTER_TESTS_IGNORE:-"-I ${CLUSTER_TESTS_FAIL}"} ++# Ignore tests that don't work in the store environment ++# SASL test needs sasl test database which is not installed. ++CLUSTER_TESTS_IGNORE="${CLUSTER_TESTS_IGNORE} -i cluster_tests.ShortTests.test_sasl" ++ + CLUSTER_TESTS=${CLUSTER_TESTS:-$*} + + TEST_CMD="${QPID_PYTHON_TEST} -m cluster_tests ${CLUSTER_TESTS_IGNORE} ${CLUSTER_TESTS} -DOUTDIR=$OUTDIR" +-- +1.7.3.4 + +From d4795a9796726dbdb1f911c81e3b2e899fbfc40e Mon Sep 17 00:00:00 2001 +From: aconway +Date: Mon, 31 May 2010 19:31:45 +0000 +Subject: [PATCH 05/24] Fix valgrind errors caused by order of destruction issue. + +Added a callback so that MessageStoreImpl is informed when JournalImpl +instances are deleted and can remove them from its map. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@3997 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/JournalImpl.cpp | 7 +- + lib/JournalImpl.h | 467 +++++++++++++++++++++++----------------------- + lib/MessageStoreImpl.cpp | 17 ++- + lib/MessageStoreImpl.h | 5 + + 4 files changed, 261 insertions(+), 235 deletions(-) + +diff --git a/lib/JournalImpl.cpp b/lib/JournalImpl.cpp +index ed1c334..a660d3c 100644 +--- a/lib/JournalImpl.cpp ++++ b/lib/JournalImpl.cpp +@@ -53,7 +53,8 @@ JournalImpl::JournalImpl(const std::string& journalId, + const std::string& journalBaseFilename, + const qpid::sys::Duration getEventsTimeout, + const qpid::sys::Duration flushTimeout, +- qpid::management::ManagementAgent* a): ++ qpid::management::ManagementAgent* a, ++ DeleteCallback onDelete): + jcntl(journalId, journalDirectory, journalBaseFilename), + getEventsTimerSetFlag(false), + lastReadRid(0), +@@ -65,7 +66,8 @@ JournalImpl::JournalImpl(const std::string& journalId, + _dtok(), + _external(false), + _agent(a), +- _mgmtObject(0) ++ _mgmtObject(0), ++ deleteCallback(onDelete) + { + getEventsFireEventsPtr = new GetEventsFireEvent(this, getEventsTimeout); + inactivityFireEventPtr = new InactivityFireEvent(this, flushTimeout); +@@ -108,6 +110,7 @@ JournalImpl::JournalImpl(const std::string& journalId, + + JournalImpl::~JournalImpl() + { ++ if (deleteCallback) deleteCallback(*this); + if (_init_flag && !_stop_flag){ + try { stop(true); } // NOTE: This will *block* until all outstanding disk aio calls are complete! + catch (const jexception& e) { log(LOG_ERROR, e.what()); } +diff --git a/lib/JournalImpl.h b/lib/JournalImpl.h +index a3f5a17..aab8467 100644 +--- a/lib/JournalImpl.h ++++ b/lib/JournalImpl.h +@@ -1,25 +1,25 @@ + /* +- Copyright (c) 2007, 2008, 2009 Red Hat, Inc. ++ Copyright (c) 2007, 2008, 2009 Red Hat, Inc. + +- This file is part of the Qpid async store library msgstore.so. ++ This file is part of the Qpid async store library msgstore.so. + +- This library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. + +- This library 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 +- Lesser General Public License for more details. ++ This library 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 ++ Lesser General Public License for more details. + +- You should have received a copy of the GNU Lesser General Public +- License along with this library; if not, write to the Free Software +- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 +- USA ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ++ USA + +- The GNU Lesser General Public License is available in the file COPYING. +- */ ++ The GNU Lesser General Public License is available in the file COPYING. ++*/ + + #ifndef _JournalImpl_ + #define _JournalImpl_ +@@ -38,219 +38,228 @@ + #include "qmf/com/redhat/rhm/store/Journal.h" + + namespace mrg { +- namespace msgstore { +- +- class JournalImpl; +- +- class InactivityFireEvent : public qpid::sys::TimerTask +- { +- JournalImpl* _parent; +- qpid::sys::Mutex _ife_lock; +- +- public: +- InactivityFireEvent(JournalImpl* p, const qpid::sys::Duration timeout): +- qpid::sys::TimerTask(timeout), _parent(p) {} +- virtual ~InactivityFireEvent() {} +- void fire(); +- inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_ife_lock); _parent = 0; } +- }; +- +- class GetEventsFireEvent : public qpid::sys::TimerTask +- { +- JournalImpl* _parent; +- qpid::sys::Mutex _gefe_lock; +- +- public: +- GetEventsFireEvent(JournalImpl* p, const qpid::sys::Duration timeout): +- qpid::sys::TimerTask(timeout), _parent(p) {} +- virtual ~GetEventsFireEvent() {} +- void fire(); +- inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_gefe_lock); _parent = 0; } +- }; +- +- class JournalImpl : public qpid::broker::ExternalQueueStore, public mrg::journal::jcntl, public mrg::journal::aio_callback +- { +- private: +- static qpid::sys::Mutex _static_lock; +- static qpid::sys::Timer* journalTimerPtr; +- static u_int32_t cnt; +- +- bool getEventsTimerSetFlag; +- boost::intrusive_ptr getEventsFireEventsPtr; +- qpid::sys::Mutex _getf_lock; +- +- u_int64_t lastReadRid; // rid of last read msg for loadMsgContent() - detects out-of-order read requests +- std::vector oooRidList; // list of out-of-order rids (greater than current rid) encountered during read sequence +- +- bool writeActivityFlag; +- bool flushTriggeredFlag; +- boost::intrusive_ptr inactivityFireEventPtr; +- +- // temp local vars for loadMsgContent below +- void* _xidp; +- void* _datap; +- size_t _dlen; +- mrg::journal::data_tok _dtok; +- bool _external; +- +- qpid::management::ManagementAgent* _agent; +- qmf::com::redhat::rhm::store::Journal* _mgmtObject; +- +- public: +- JournalImpl(const std::string& journalId, +- const std::string& journalDirectory, +- const std::string& journalBaseFilename, +- const qpid::sys::Duration getEventsTimeout, +- const qpid::sys::Duration flushTimeout, +- qpid::management::ManagementAgent* agent); +- +- virtual ~JournalImpl(); +- +- void initialize(const u_int16_t num_jfiles, +- const bool auto_expand, +- const u_int16_t ae_max_jfiles, +- const u_int32_t jfsize_sblks, +- const u_int16_t wcache_num_pages, +- const u_int32_t wcache_pgsize_sblks, +- mrg::journal::aio_callback* const cbp); +- +- inline void initialize(const u_int16_t num_jfiles, +- const bool auto_expand, +- const u_int16_t ae_max_jfiles, +- const u_int32_t jfsize_sblks, +- const u_int16_t wcache_num_pages, +- const u_int32_t wcache_pgsize_sblks) { +- initialize(num_jfiles, auto_expand, ae_max_jfiles, jfsize_sblks, wcache_num_pages, wcache_pgsize_sblks, +- this); +- } +- +- void recover(const u_int16_t num_jfiles, +- const bool auto_expand, +- const u_int16_t ae_max_jfiles, +- const u_int32_t jfsize_sblks, +- const u_int16_t wcache_num_pages, +- const u_int32_t wcache_pgsize_sblks, +- mrg::journal::aio_callback* const cbp, +- boost::ptr_list* prep_tx_list_ptr, +- u_int64_t& highest_rid, +- u_int64_t queue_id); +- +- inline void recover(const u_int16_t num_jfiles, +- const bool auto_expand, +- const u_int16_t ae_max_jfiles, +- const u_int32_t jfsize_sblks, +- const u_int16_t wcache_num_pages, +- const u_int32_t wcache_pgsize_sblks, +- boost::ptr_list* prep_tx_list_ptr, +- u_int64_t& highest_rid, +- u_int64_t queue_id) { +- recover(num_jfiles, auto_expand, ae_max_jfiles, jfsize_sblks, wcache_num_pages, wcache_pgsize_sblks, +- this, prep_tx_list_ptr, highest_rid, queue_id); +- } +- +- void recover_complete(); +- +- // Temporary fn to read and save last msg read from journal so it can be assigned +- // in chunks. To be replaced when coding to do this direct from the journal is ready. +- // Returns true if the record is extern, false if local. +- bool loadMsgContent(u_int64_t rid, std::string& data, size_t length, size_t offset = 0); +- +- // Overrides for write inactivity timer +- void enqueue_data_record(const void* const data_buff, const size_t tot_data_len, +- const size_t this_data_len, mrg::journal::data_tok* dtokp, +- const bool transient = false); +- +- void enqueue_extern_data_record(const size_t tot_data_len, mrg::journal::data_tok* dtokp, +- const bool transient = false); +- +- void enqueue_txn_data_record(const void* const data_buff, const size_t tot_data_len, +- const size_t this_data_len, mrg::journal::data_tok* dtokp, const std::string& xid, +- const bool transient = false); +- +- void enqueue_extern_txn_data_record(const size_t tot_data_len, mrg::journal::data_tok* dtokp, +- const std::string& xid, const bool transient = false); +- +- void dequeue_data_record(mrg::journal::data_tok* const dtokp, const bool txn_coml_commit = false); +- +- void dequeue_txn_data_record(mrg::journal::data_tok* const dtokp, const std::string& xid, const bool txn_coml_commit = false); +- +- mrg::journal::iores read_data_record(void** const data_buff, size_t& tot_data_len, void** const xid_buff, +- size_t& xid_len, bool& transient, bool& external, mrg::journal::data_tok* const dtokp, +- bool ignore_pending_txns = false); +- +- void txn_abort(mrg::journal::data_tok* const dtokp, const std::string& xid); +- +- void txn_commit(mrg::journal::data_tok* const dtokp, const std::string& xid); +- +- void stop(bool block_till_aio_cmpl = false); +- +- // Logging +- void log(mrg::journal::log_level level, const std::string& log_stmt) const; +- void log(mrg::journal::log_level level, const char* const log_stmt) const; +- +- // Overrides for get_events timer +- mrg::journal::iores flush(const bool block_till_aio_cmpl = false); +- +- // TimerTask callback +- void getEventsFire(); +- void flushFire(); +- +- // AIO callbacks +- virtual void wr_aio_cb(std::vector& dtokl); +- virtual void rd_aio_cb(std::vector& pil); +- +- qpid::management::ManagementObject* GetManagementObject (void) const +- { return _mgmtObject; } +- +- qpid::management::Manageable::status_t ManagementMethod (uint32_t, +- qpid::management::Args&, +- std::string&); +- +- private: +- void free_read_buffers(); +- +- inline void setGetEventTimer() +- { +- assert(journalTimerPtr != 0); +- getEventsFireEventsPtr->setupNextFire(); +- journalTimerPtr->add(getEventsFireEventsPtr); +- getEventsTimerSetFlag = true; +- } +- void handleIoResult(const mrg::journal::iores r); +- +- // Management instrumentation callbacks overridden from jcntl +- inline void instr_incr_outstanding_aio_cnt() { +- if (_mgmtObject != 0) _mgmtObject->inc_outstandingAIOs(); +- } +- inline void instr_decr_outstanding_aio_cnt() { +- if (_mgmtObject != 0) _mgmtObject->dec_outstandingAIOs(); +- } +- }; // class JournalImpl +- +- class TplJournalImpl : public JournalImpl +- { +- public: +- TplJournalImpl(const std::string& journalId, +- const std::string& journalDirectory, +- const std::string& journalBaseFilename, +- const qpid::sys::Duration getEventsTimeout, +- const qpid::sys::Duration flushTimeout, +- qpid::management::ManagementAgent* agent) : +- JournalImpl(journalId, journalDirectory, journalBaseFilename, getEventsTimeout, flushTimeout, agent) +- {} +- +- ~TplJournalImpl() {} +- +- // Special version of read_data_record that ignores transactions - needed when reading the TPL +- inline mrg::journal::iores read_data_record(void** const datapp, std::size_t& dsize, +- void** const xidpp, std::size_t& xidsize, bool& transient, bool& external, +- mrg::journal::data_tok* const dtokp) { +- return JournalImpl::read_data_record(datapp, dsize, xidpp, xidsize, transient, external, dtokp, true); +- } +- inline void read_reset() { _rmgr.invalidate(); } +- }; // class TplJournalImpl +- +- } // namespace msgstore ++namespace msgstore { ++ ++class JournalImpl; ++ ++class InactivityFireEvent : public qpid::sys::TimerTask ++{ ++ JournalImpl* _parent; ++ qpid::sys::Mutex _ife_lock; ++ ++ public: ++ InactivityFireEvent(JournalImpl* p, const qpid::sys::Duration timeout): ++ qpid::sys::TimerTask(timeout), _parent(p) {} ++ virtual ~InactivityFireEvent() {} ++ void fire(); ++ inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_ife_lock); _parent = 0; } ++}; ++ ++class GetEventsFireEvent : public qpid::sys::TimerTask ++{ ++ JournalImpl* _parent; ++ qpid::sys::Mutex _gefe_lock; ++ ++ public: ++ GetEventsFireEvent(JournalImpl* p, const qpid::sys::Duration timeout): ++ qpid::sys::TimerTask(timeout), _parent(p) {} ++ virtual ~GetEventsFireEvent() {} ++ void fire(); ++ inline void cancel() { qpid::sys::Mutex::ScopedLock sl(_gefe_lock); _parent = 0; } ++}; ++ ++class JournalImpl : public qpid::broker::ExternalQueueStore, public mrg::journal::jcntl, public mrg::journal::aio_callback ++{ ++ public: ++ typedef boost::function DeleteCallback; ++ ++ private: ++ static qpid::sys::Mutex _static_lock; ++ static qpid::sys::Timer* journalTimerPtr; ++ static u_int32_t cnt; ++ ++ bool getEventsTimerSetFlag; ++ boost::intrusive_ptr getEventsFireEventsPtr; ++ qpid::sys::Mutex _getf_lock; ++ ++ u_int64_t lastReadRid; // rid of last read msg for loadMsgContent() - detects out-of-order read requests ++ std::vector oooRidList; // list of out-of-order rids (greater than current rid) encountered during read sequence ++ ++ bool writeActivityFlag; ++ bool flushTriggeredFlag; ++ boost::intrusive_ptr inactivityFireEventPtr; ++ ++ // temp local vars for loadMsgContent below ++ void* _xidp; ++ void* _datap; ++ size_t _dlen; ++ mrg::journal::data_tok _dtok; ++ bool _external; ++ ++ qpid::management::ManagementAgent* _agent; ++ qmf::com::redhat::rhm::store::Journal* _mgmtObject; ++ DeleteCallback deleteCallback; ++ ++ public: ++ ++ JournalImpl(const std::string& journalId, ++ const std::string& journalDirectory, ++ const std::string& journalBaseFilename, ++ const qpid::sys::Duration getEventsTimeout, ++ const qpid::sys::Duration flushTimeout, ++ qpid::management::ManagementAgent* agent, ++ DeleteCallback deleteCallback=DeleteCallback() ); ++ ++ virtual ~JournalImpl(); ++ ++ void initialize(const u_int16_t num_jfiles, ++ const bool auto_expand, ++ const u_int16_t ae_max_jfiles, ++ const u_int32_t jfsize_sblks, ++ const u_int16_t wcache_num_pages, ++ const u_int32_t wcache_pgsize_sblks, ++ mrg::journal::aio_callback* const cbp); ++ ++ inline void initialize(const u_int16_t num_jfiles, ++ const bool auto_expand, ++ const u_int16_t ae_max_jfiles, ++ const u_int32_t jfsize_sblks, ++ const u_int16_t wcache_num_pages, ++ const u_int32_t wcache_pgsize_sblks) { ++ initialize(num_jfiles, auto_expand, ae_max_jfiles, jfsize_sblks, wcache_num_pages, wcache_pgsize_sblks, ++ this); ++ } ++ ++ void recover(const u_int16_t num_jfiles, ++ const bool auto_expand, ++ const u_int16_t ae_max_jfiles, ++ const u_int32_t jfsize_sblks, ++ const u_int16_t wcache_num_pages, ++ const u_int32_t wcache_pgsize_sblks, ++ mrg::journal::aio_callback* const cbp, ++ boost::ptr_list* prep_tx_list_ptr, ++ u_int64_t& highest_rid, ++ u_int64_t queue_id); ++ ++ inline void recover(const u_int16_t num_jfiles, ++ const bool auto_expand, ++ const u_int16_t ae_max_jfiles, ++ const u_int32_t jfsize_sblks, ++ const u_int16_t wcache_num_pages, ++ const u_int32_t wcache_pgsize_sblks, ++ boost::ptr_list* prep_tx_list_ptr, ++ u_int64_t& highest_rid, ++ u_int64_t queue_id) { ++ recover(num_jfiles, auto_expand, ae_max_jfiles, jfsize_sblks, wcache_num_pages, wcache_pgsize_sblks, ++ this, prep_tx_list_ptr, highest_rid, queue_id); ++ } ++ ++ void recover_complete(); ++ ++ // Temporary fn to read and save last msg read from journal so it can be assigned ++ // in chunks. To be replaced when coding to do this direct from the journal is ready. ++ // Returns true if the record is extern, false if local. ++ bool loadMsgContent(u_int64_t rid, std::string& data, size_t length, size_t offset = 0); ++ ++ // Overrides for write inactivity timer ++ void enqueue_data_record(const void* const data_buff, const size_t tot_data_len, ++ const size_t this_data_len, mrg::journal::data_tok* dtokp, ++ const bool transient = false); ++ ++ void enqueue_extern_data_record(const size_t tot_data_len, mrg::journal::data_tok* dtokp, ++ const bool transient = false); ++ ++ void enqueue_txn_data_record(const void* const data_buff, const size_t tot_data_len, ++ const size_t this_data_len, mrg::journal::data_tok* dtokp, const std::string& xid, ++ const bool transient = false); ++ ++ void enqueue_extern_txn_data_record(const size_t tot_data_len, mrg::journal::data_tok* dtokp, ++ const std::string& xid, const bool transient = false); ++ ++ void dequeue_data_record(mrg::journal::data_tok* const dtokp, const bool txn_coml_commit = false); ++ ++ void dequeue_txn_data_record(mrg::journal::data_tok* const dtokp, const std::string& xid, const bool txn_coml_commit = false); ++ ++ mrg::journal::iores read_data_record(void** const data_buff, size_t& tot_data_len, void** const xid_buff, ++ size_t& xid_len, bool& transient, bool& external, mrg::journal::data_tok* const dtokp, ++ bool ignore_pending_txns = false); ++ ++ void txn_abort(mrg::journal::data_tok* const dtokp, const std::string& xid); ++ ++ void txn_commit(mrg::journal::data_tok* const dtokp, const std::string& xid); ++ ++ void stop(bool block_till_aio_cmpl = false); ++ ++ // Logging ++ void log(mrg::journal::log_level level, const std::string& log_stmt) const; ++ void log(mrg::journal::log_level level, const char* const log_stmt) const; ++ ++ // Overrides for get_events timer ++ mrg::journal::iores flush(const bool block_till_aio_cmpl = false); ++ ++ // TimerTask callback ++ void getEventsFire(); ++ void flushFire(); ++ ++ // AIO callbacks ++ virtual void wr_aio_cb(std::vector& dtokl); ++ virtual void rd_aio_cb(std::vector& pil); ++ ++ qpid::management::ManagementObject* GetManagementObject (void) const ++ { return _mgmtObject; } ++ ++ qpid::management::Manageable::status_t ManagementMethod (uint32_t, ++ qpid::management::Args&, ++ std::string&); ++ ++ void resetDeleteCallback() { deleteCallback = DeleteCallback(); } ++ ++ private: ++ void free_read_buffers(); ++ ++ inline void setGetEventTimer() ++ { ++ assert(journalTimerPtr != 0); ++ getEventsFireEventsPtr->setupNextFire(); ++ journalTimerPtr->add(getEventsFireEventsPtr); ++ getEventsTimerSetFlag = true; ++ } ++ void handleIoResult(const mrg::journal::iores r); ++ ++ // Management instrumentation callbacks overridden from jcntl ++ inline void instr_incr_outstanding_aio_cnt() { ++ if (_mgmtObject != 0) _mgmtObject->inc_outstandingAIOs(); ++ } ++ inline void instr_decr_outstanding_aio_cnt() { ++ if (_mgmtObject != 0) _mgmtObject->dec_outstandingAIOs(); ++ } ++ ++}; // class JournalImpl ++ ++class TplJournalImpl : public JournalImpl ++{ ++ public: ++ TplJournalImpl(const std::string& journalId, ++ const std::string& journalDirectory, ++ const std::string& journalBaseFilename, ++ const qpid::sys::Duration getEventsTimeout, ++ const qpid::sys::Duration flushTimeout, ++ qpid::management::ManagementAgent* agent) : ++ JournalImpl(journalId, journalDirectory, journalBaseFilename, getEventsTimeout, flushTimeout, agent) ++ {} ++ ++ ~TplJournalImpl() {} ++ ++ // Special version of read_data_record that ignores transactions - needed when reading the TPL ++ inline mrg::journal::iores read_data_record(void** const datapp, std::size_t& dsize, ++ void** const xidpp, std::size_t& xidsize, bool& transient, bool& external, ++ mrg::journal::data_tok* const dtokp) { ++ return JournalImpl::read_data_record(datapp, dsize, xidpp, xidsize, transient, external, dtokp, true); ++ } ++ inline void read_reset() { _rmgr.invalidate(); } ++}; // class TplJournalImpl ++ ++} // namespace msgstore + } // namespace mrg + + #endif +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index e7cb405..04297e8 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -367,6 +367,7 @@ void MessageStoreImpl::finalize() + for (JournalListMapItr i = journalList.begin(); i != journalList.end(); i++) + { + JournalImpl* jQueue = i->second; ++ jQueue->resetDeleteCallback(); + if (jQueue->is_ready()) jQueue->stop(true); + } + } +@@ -479,7 +480,8 @@ void MessageStoreImpl::create(PersistableQueue& queue, + } + + jQueue = new JournalImpl(queue.getName(), getJrnlDir(queue), std::string("JournalData"), +- defJournalGetEventsTimeout, defJournalFlushTimeout, agent); ++ defJournalGetEventsTimeout, defJournalFlushTimeout, agent, ++ boost::bind(&MessageStoreImpl::journalDeleted, this, _1)); + { + qpid::sys::Mutex::ScopedLock sl(journalListLock); + journalList[queue.getName()]=jQueue; +@@ -521,7 +523,7 @@ void MessageStoreImpl::destroy(PersistableQueue& queue) + queue.setExternalQueueStore(0); // will delete the journal if exists + { + qpid::sys::Mutex::ScopedLock sl(journalListLock); +- journalList.erase(journalList.find(queue.getName())); ++ journalList.erase(queue.getName()); + } + } + } +@@ -762,7 +764,8 @@ void MessageStoreImpl::recoverQueues(TxnCtxt& txn, + break; + } + jQueue = new JournalImpl(queueName, getJrnlHashDir(queueName), std::string("JournalData"), +- defJournalGetEventsTimeout, defJournalFlushTimeout, agent); ++ defJournalGetEventsTimeout, defJournalFlushTimeout, agent, ++ boost::bind(&MessageStoreImpl::journalDeleted, this, _1)); + { + qpid::sys::Mutex::ScopedLock sl(journalListLock); + journalList[queueName] = jQueue; +@@ -1644,6 +1647,11 @@ std::string MessageStoreImpl::getJrnlHashDir(const std::string& queueName) //for + + std::string MessageStoreImpl::getStoreDir() const { return storeDir; } + ++void MessageStoreImpl::journalDeleted(JournalImpl& j) { ++ qpid::sys::Mutex::ScopedLock sl(journalListLock); ++ journalList.erase(j.id()); ++} ++ + MessageStoreImpl::StoreOptions::StoreOptions(const std::string& name) : + qpid::Options(name), + numJrnlFiles(defNumJrnlFiles), +@@ -1668,7 +1676,7 @@ MessageStoreImpl::StoreOptions::StoreOptions(const std::string& name) : + // "If no|false|0, the number of journal files will remain fixed (num-jfiles).") + // ("max-auto-expand-jfiles", qpid::optValue(autoJrnlExpandMaxFiles, "N"), + // "Maximum number of journal files allowed from auto-expanding; must be greater than --num-jfiles parameter.") +- ("jfile-size-pgs", qpid::optValue(jrnlFsizePgs, "N"), ++ ("jfile-size-pgs", qpid::optValue(jrnlFsizePgs, "N"), + "Default size for each journal file in multiples of read pages (1 read page = 64kiB)") + ("truncate", qpid::optValue(truncateFlag, "yes|no"), + "If yes|true|1, will truncate the store (discard any existing records). If no|false|0, will preserve " +@@ -1687,3 +1695,4 @@ MessageStoreImpl::StoreOptions::StoreOptions(const std::string& name) : + "Lower values decrease latency at the expense of throughput.") + ; + } ++ +diff --git a/lib/MessageStoreImpl.h b/lib/MessageStoreImpl.h +index 12e1d97..d650020 100644 +--- a/lib/MessageStoreImpl.h ++++ b/lib/MessageStoreImpl.h +@@ -149,6 +149,7 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + + qmf::com::redhat::rhm::store::Store* mgmtObject; + qpid::management::ManagementAgent* agent; ++ + + // Parameter validation and calculation + static u_int16_t chkJrnlNumFilesParam(const u_int16_t param, +@@ -359,6 +360,10 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + { return qpid::management::Manageable::STATUS_OK; } + + std::string getStoreDir() const; ++ ++ private: ++ void journalDeleted(JournalImpl&); ++ + }; // class MessageStoreImpl + + } // namespace msgstore +-- +1.7.3.4 + +From 821aca95eeb79c7c83bc6d47176d188d8a8a1ba1 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Tue, 1 Jun 2010 16:02:36 +0000 +Subject: [PATCH 06/24] Fix for Bug 598557: "qpidd --no-data dir with store loaded segfaults". + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@3998 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index 04297e8..e3b2599 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -361,7 +361,7 @@ void MessageStoreImpl::init() + + void MessageStoreImpl::finalize() + { +- if (tplStorePtr->is_ready()) tplStorePtr->stop(true); ++ if (tplStorePtr.get() && tplStorePtr->is_ready()) tplStorePtr->stop(true); + { + qpid::sys::Mutex::ScopedLock sl(journalListLock); + for (JournalListMapItr i = journalList.begin(); i != journalList.end(); i++) +-- +1.7.3.4 + +From 3e2438975882993c66f4f8b9fb40dd37da3fe95e Mon Sep 17 00:00:00 2001 +From: gordonsim +Date: Wed, 2 Jun 2010 19:33:45 +0000 +Subject: [PATCH 07/24] Set reliability for link to prevent auto-delete being set on subscription queues (broker now cleans these up even for connections that are open when broker is shutdown) + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4005 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + tests/python_tests/client_persistence.py | 6 +++--- + tests/python_tests/store_test.py | 4 +++- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/tests/python_tests/client_persistence.py b/tests/python_tests/client_persistence.py +index f16e548..dc197dc 100644 +--- a/tests/python_tests/client_persistence.py ++++ b/tests/python_tests/client_persistence.py +@@ -103,9 +103,9 @@ class ExchangeQueueTests(StoreTest): + broker = self.broker(store_args(), name="testFanout", expect=EXPECT_EXIT_OK) + ssn = broker.connect().session() + snd = ssn.sender("TestFanoutExchange; {create: always, node: {type: topic, x-declare: {type: fanout}}}") +- ssn.receiver("TestFanoutExchange; {link: {name: \"q1\", durable: True}}") +- ssn.receiver("TestFanoutExchange; {link: {name: \"q2\", durable: True}}") +- ssn.receiver("TestFanoutExchange; {link: {name: \"q3\", durable: True}}") ++ ssn.receiver("TestFanoutExchange; {link: {name: \"q1\", durable: True, reliability:at-least-once}}") ++ ssn.receiver("TestFanoutExchange; {link: {name: \"q2\", durable: True, reliability:at-least-once}}") ++ ssn.receiver("TestFanoutExchange; {link: {name: \"q3\", durable: True, reliability:at-least-once}}") + msg1 = Message("Msg1", durable=True, correlation_id="Msg0001") + snd.send(msg1) + msg2 = Message("Msg2", durable=True, correlation_id="Msg0002") +diff --git a/tests/python_tests/store_test.py b/tests/python_tests/store_test.py +index 61d3687..87dcefa 100644 +--- a/tests/python_tests/store_test.py ++++ b/tests/python_tests/store_test.py +@@ -301,9 +301,11 @@ class StoreTest(BrokerTest): + x_bindings_list = [] + for binding in binding_list: + x_bindings_list.append("{exchange: %s, key: %s}" % binding) ++ if durable: reliability = 'at-least-once' ++ else: reliability = None + return self.addr_fmt(node_name, create_policy=create_policy, delete_policy=delete_policy, mode=mode, link=True, + link_name=link_name, durable=durable, x_declare_list=x_declare_list, +- x_bindings_list=x_bindings_list) ++ x_bindings_list=x_bindings_list, link_reliability=reliability) + + def check_message(self, broker, queue, exp_msg, transactional=False, empty=False, ack=True, browse=False): + """Check that a message is on a queue by dequeuing it and comparing it to the expected message""" +-- +1.7.3.4 + +From 22c33fd72f2e8e32a6537b1891934834dc7f2d95 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Fri, 4 Jun 2010 17:37:23 +0000 +Subject: [PATCH 08/24] Fixes for various Coverity-indicated problems: 11689(MessageStoreImpl.cpp), 11691(jdir.cpp) and 11688(JournalImpl.cpp). + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4008 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/JournalImpl.cpp | 4 +++- + lib/MessageStoreImpl.cpp | 7 +++---- + lib/jrnl/jdir.cpp | 1 + + 3 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/lib/JournalImpl.cpp b/lib/JournalImpl.cpp +index a660d3c..5e1ed7a 100644 +--- a/lib/JournalImpl.cpp ++++ b/lib/JournalImpl.cpp +@@ -498,7 +498,9 @@ JournalImpl::txn_commit(data_tok* const dtokp, const std::string& xid) + void + JournalImpl::stop(bool block_till_aio_cmpl) + { +- (dynamic_cast(inactivityFireEventPtr.get()))->cancel(); ++ InactivityFireEvent* ifep = dynamic_cast(inactivityFireEventPtr.get()); ++ assert(ifep); // dynamic_cast can return null if the cast fails ++ ifep->cancel(); + jcntl::stop(block_till_aio_cmpl); + + if (_mgmtObject != 0) { +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index e3b2599..2262b0d 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -193,8 +193,7 @@ void MessageStoreImpl::chkJrnlAutoExpandOptions(const StoreOptions* opts, + << JRNL_MAX_NUM_FILES << "); changing this parameter to maximum value."); + return; + } +- u_int16_t q = opts->autoJrnlExpandMaxFiles; +- if (q && q == defAutoJrnlExpandMaxFiles && numJrnlFiles != defTplNumJrnlFiles) { ++ if (p && p == defAutoJrnlExpandMaxFiles && numJrnlFiles != defTplNumJrnlFiles) { + // num-jfiles is different from the default AND max-auto-expand-jfiles is still at default + // change value of max-auto-expand-jfiles + autoJrnlExpand = true; +@@ -1327,10 +1326,10 @@ void MessageStoreImpl::store(const PersistableQueue* queue, + } + } + } else { +- THROW_STORE_EXCEPTION(std::string("Queue ") + queue->getName() + ": store() failed: queue NULL."); ++ THROW_STORE_EXCEPTION(std::string("MessageStoreImpl::store() failed: queue NULL.")); + } + } catch (const journal::jexception& e) { +- THROW_STORE_EXCEPTION(std::string("Queue ") + queue->getName() + ": store() failed: " + ++ THROW_STORE_EXCEPTION(std::string("Queue ") + queue->getName() + ": MessageStoreImpl::store() failed: " + + e.what()); + } + } +diff --git a/lib/jrnl/jdir.cpp b/lib/jrnl/jdir.cpp +index 74651bd..d26cef0 100644 +--- a/lib/jrnl/jdir.cpp ++++ b/lib/jrnl/jdir.cpp +@@ -202,6 +202,7 @@ jdir::push_down(const std::string& dirname, const std::string& target_dir, const + break; + } + } ++ close_dir(dir, dirname, "push_down"); + return bak_dir_name; + } + +-- +1.7.3.4 + +From fbd21b64d3caa4c6a1937dcc560973de1c173b2d Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Fri, 4 Jun 2010 18:43:28 +0000 +Subject: [PATCH 09/24] Further tidy-up: closing directory handles in exception paths + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4009 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/jrnl/jdir.cpp | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/lib/jrnl/jdir.cpp b/lib/jrnl/jdir.cpp +index d26cef0..b718f74 100644 +--- a/lib/jrnl/jdir.cpp ++++ b/lib/jrnl/jdir.cpp +@@ -152,6 +152,7 @@ jdir::clear_dir(const std::string& dirname, const std::string& + newname << bak_dir << "/" << entry->d_name; + if (::rename(oldname.str().c_str(), newname.str().c_str())) + { ++ ::closedir(dir); + std::ostringstream oss; + oss << "file=\"" << oldname.str() << "\" dest=\"" << + newname.str() << "\"" << FORMAT_SYSERR(errno); +@@ -195,6 +196,7 @@ jdir::push_down(const std::string& dirname, const std::string& target_dir, const + newname << bak_dir_name << "/" << target_dir; + if (::rename(oldname.str().c_str(), newname.str().c_str())) + { ++ ::closedir(dir); + std::ostringstream oss; + oss << "file=\"" << oldname.str() << "\" dest=\"" << newname.str() << "\"" << FORMAT_SYSERR(errno); + throw jexception(jerrno::JERR_JDIR_FMOVE, oss.str(), "jdir", "push_down"); +@@ -284,6 +286,7 @@ jdir::delete_dir(const std::string& dirname, bool children_only) + std::string full_name(dirname + "/" + entry->d_name); + if (::stat(full_name.c_str(), &s)) + { ++ ::closedir(dir); + std::ostringstream oss; + oss << "stat: file=\"" << full_name << "\"" << FORMAT_SYSERR(errno); + throw jexception(jerrno::JERR_JDIR_STAT, oss.str(), "jdir", "delete_dir"); +@@ -294,6 +297,7 @@ jdir::delete_dir(const std::string& dirname, bool children_only) + { + if(::unlink(full_name.c_str())) + { ++ ::closedir(dir); + std::ostringstream oss; + oss << "unlink: file=\"" << entry->d_name << "\"" << FORMAT_SYSERR(errno); + throw jexception(jerrno::JERR_JDIR_UNLINK, oss.str(), "jdir", "delete_dir"); +@@ -305,6 +309,7 @@ jdir::delete_dir(const std::string& dirname, bool children_only) + } + else // all other types, throw up! + { ++ ::closedir(dir); + std::ostringstream oss; + oss << "file=\"" << entry->d_name << "\" is not a dir, file or slink."; + oss << " (mode=0x" << std::hex << s.st_mode << std::dec << ")"; +-- +1.7.3.4 + +From 7d09142721e18ff5769b9c35c446eab723793d44 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Tue, 8 Jun 2010 19:11:00 +0000 +Subject: [PATCH 10/24] Fix for a recent regression in r.3982 in which a lock wich protects the TPL from being initialized by multiple threads was erroneously removed. The lock is now replaced. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4017 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 3 ++- + lib/MessageStoreImpl.h | 1 + + 2 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index 2262b0d..5f98055 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -408,7 +408,8 @@ void MessageStoreImpl::truncateInit(const bool pushDownStoreFiles) + + void MessageStoreImpl::chkTplStoreInit() + { +- // Don't take lock unless necessary ++ // Prevent multiple threads from late-initializing the TPL ++ qpid::sys::Mutex::ScopedLock sl(tplInitLock); + if (!tplStorePtr->is_ready()) { + journal::jdir::create_dir(getTplBaseDir()); + tplStorePtr->initialize(tplNumJrnlFiles, false, 0, tplJrnlFsizeSblks, tplWCacheNumPages, tplWCachePgSizeSblks); +diff --git a/lib/MessageStoreImpl.h b/lib/MessageStoreImpl.h +index d650020..2659f32 100644 +--- a/lib/MessageStoreImpl.h ++++ b/lib/MessageStoreImpl.h +@@ -124,6 +124,7 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + // Pointer to Transaction Prepared List (TPL) journal instance + boost::shared_ptr tplStorePtr; + TplRecoverMap tplRecoverMap; ++ qpid::sys::Mutex tplInitLock; + JournalListMap journalList; + qpid::sys::Mutex journalListLock; + +-- +1.7.3.4 + +From 1bb317d8e88c910b5247b54a9530a5505fb67168 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Thu, 17 Jun 2010 18:58:04 +0000 +Subject: [PATCH 11/24] Added variable MSGSTORE_VERSION_INFO to control msgstore.so.x.x.x lib version numbers + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4034 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + configure.ac | 9 +-------- + lib/Makefile.am | 6 ++++-- + 2 files changed, 5 insertions(+), 10 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9a32097..3c014d9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -21,7 +21,7 @@ dnl The GNU Lesser General Public License is available in the file COPYING. + dnl + dnl Process this file with autoconf to produce a configure script. + +-AC_INIT([msg-store], [0.6], [rhemrg-users-list@redhat.com]) ++AC_INIT([msg-store], [0.7], [rhemrg-users-list@redhat.com]) + AC_CONFIG_AUX_DIR([build-aux]) + AM_INIT_AUTOMAKE([dist-bzip2]) + +@@ -201,13 +201,6 @@ if test x$DB_CXX_HEADER_PREFIX = x; then + fi + AC_SUBST(DB_CXX_HEADER_PREFIX) + +-# Set the argument to be used in "libtool -version-info ARG". +-QPID_CURRENT=1 +-QPID_REVISION=0 +-QPID_AGE=1 +-LIBTOOL_VERSION_INFO_ARG=$QPID_CURRENT:$QPID_REVISION:$QPID_AGE +-AC_SUBST(LIBTOOL_VERSION_INFO_ARG) +- + gl_CLOCK_TIME + + # We use valgrind for the tests. See if it's available. +diff --git a/lib/Makefile.am b/lib/Makefile.am +index ab72d96..8f0301b 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -34,8 +34,10 @@ msgstore_la_LIBADD = \ + $(LIB_CLOCK_GETTIME) \ + $(QPID_LIBS) + +-msgstore_la_LDFLAGS = \ +- $(PLUGINLDFLAGS) ++MSGSTORE_VERSION_INFO = 1:0:0 ++msgstore_la_LDFLAGS = \ ++ $(PLUGINLDFLAGS) \ ++ -version-info $(MSGSTORE_VERSION_INFO) + + msgstore_la_SOURCES = \ + StorePlugin.cpp \ +-- +1.7.3.4 + +From 01305c0b44a6167ca587ddd940361bd623677564 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Fri, 18 Jun 2010 14:06:28 +0000 +Subject: [PATCH 12/24] Removed the lib version info from the previous checkin + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4036 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/Makefile.am | 10 ++++------ + 1 files changed, 4 insertions(+), 6 deletions(-) + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index 8f0301b..95428f1 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -27,19 +27,17 @@ PLUGINLDFLAGS=-no-undefined -module -avoid-version + dmoduledir=$(libdir)/qpid/daemon + dmodule_LTLIBRARIES = msgstore.la + +-msgstore_la_LIBADD = \ ++msgstore_la_LIBADD = \ + $(APR_LIBS) \ + $(LIB_DLOPEN) \ + $(LIB_BERKELEY_DB) \ + $(LIB_CLOCK_GETTIME) \ + $(QPID_LIBS) + +-MSGSTORE_VERSION_INFO = 1:0:0 +-msgstore_la_LDFLAGS = \ +- $(PLUGINLDFLAGS) \ +- -version-info $(MSGSTORE_VERSION_INFO) ++msgstore_la_LDFLAGS = \ ++ $(PLUGINLDFLAGS) + +-msgstore_la_SOURCES = \ ++msgstore_la_SOURCES = \ + StorePlugin.cpp \ + BindingDbt.cpp \ + BufferValue.cpp \ +-- +1.7.3.4 + +From fe4143cc7226143cb3eb025efcf0e6a8d873866d Mon Sep 17 00:00:00 2001 +From: aconway +Date: Mon, 28 Jun 2010 18:18:31 +0000 +Subject: [PATCH 13/24] Bug 607748 - Crash on exit in store cluster tests. + +This is an order-of-static-destructors problem. + +This is an order-of-static-destructors problem. Fixed by having the +store use the broker's Timer. This ensures orderly shut down as the +brokers destructor will destroy the store first and then the timer. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4053 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/JournalImpl.cpp | 31 ++++++---------------------- + lib/JournalImpl.h | 17 ++++++++++----- + lib/MessageStoreImpl.cpp | 9 ++++--- + lib/MessageStoreImpl.h | 7 +++++- + lib/StorePlugin.cpp | 2 +- + tests/OrderingTest.cpp | 7 ++++- + tests/SimpleTest.cpp | 45 ++++++++++++++++++++++------------------- + tests/TransactionalTest.cpp | 9 +++++-- + tests/TwoPhaseCommitTest.cpp | 9 +++++-- + 9 files changed, 71 insertions(+), 65 deletions(-) + +diff --git a/lib/JournalImpl.cpp b/lib/JournalImpl.cpp +index 5e1ed7a..962125b 100644 +--- a/lib/JournalImpl.cpp ++++ b/lib/JournalImpl.cpp +@@ -33,6 +33,7 @@ + #include "qmf/com/redhat/rhm/store/EventFull.h" + #include "qmf/com/redhat/rhm/store/EventRecovered.h" + #include "qpid/sys/Monitor.h" ++#include "qpid/sys/Timer.h" + #include "StoreException.h" + + using namespace mrg::msgstore; +@@ -40,15 +41,12 @@ using namespace mrg::journal; + using qpid::management::ManagementAgent; + namespace _qmf = qmf::com::redhat::rhm::store; + +-qpid::sys::Mutex JournalImpl::_static_lock; +-qpid::sys::Timer* JournalImpl::journalTimerPtr = 0; +-u_int32_t JournalImpl::cnt = 0; +- + void InactivityFireEvent::fire() { qpid::sys::Mutex::ScopedLock sl(_ife_lock); if (_parent) _parent->flushFire(); } + + void GetEventsFireEvent::fire() { qpid::sys::Mutex::ScopedLock sl(_gefe_lock); if (_parent) _parent->getEventsFire(); } + +-JournalImpl::JournalImpl(const std::string& journalId, ++JournalImpl::JournalImpl(qpid::sys::Timer& timer_, ++ const std::string& journalId, + const std::string& journalDirectory, + const std::string& journalBaseFilename, + const qpid::sys::Duration getEventsTimeout, +@@ -56,6 +54,7 @@ JournalImpl::JournalImpl(const std::string& journalId, + qpid::management::ManagementAgent* a, + DeleteCallback onDelete): + jcntl(journalId, journalDirectory, journalBaseFilename), ++ timer(timer_), + getEventsTimerSetFlag(false), + lastReadRid(0), + writeActivityFlag(false), +@@ -72,13 +71,8 @@ JournalImpl::JournalImpl(const std::string& journalId, + getEventsFireEventsPtr = new GetEventsFireEvent(this, getEventsTimeout); + inactivityFireEventPtr = new InactivityFireEvent(this, flushTimeout); + { +- qpid::sys::Mutex::ScopedLock sl(_static_lock); +- if (journalTimerPtr == 0) +- journalTimerPtr = new qpid::sys::Timer; +- assert (journalTimerPtr != 0); +- cnt++; +- journalTimerPtr->start(); +- journalTimerPtr->add(inactivityFireEventPtr); ++ timer.start(); ++ timer.add(inactivityFireEventPtr); + } + + if (_agent != 0) +@@ -119,15 +113,6 @@ JournalImpl::~JournalImpl() + inactivityFireEventPtr->cancel(); + free_read_buffers(); + +- { +- qpid::sys::Mutex::ScopedLock sl(_static_lock); +- if (journalTimerPtr && --cnt == 0) +- { +- delete journalTimerPtr; +- journalTimerPtr = 0; +- } +- } +- + if (_mgmtObject != 0) { + _mgmtObject->resourceDestroy(); + _mgmtObject = 0; +@@ -564,9 +549,7 @@ JournalImpl::flushFire() + } + inactivityFireEventPtr->setupNextFire(); + { +- qpid::sys::Mutex::ScopedLock sl(_static_lock); +- assert(journalTimerPtr != 0); +- journalTimerPtr->add(inactivityFireEventPtr); ++ timer.add(inactivityFireEventPtr); + } + } + +diff --git a/lib/JournalImpl.h b/lib/JournalImpl.h +index aab8467..b85cf02 100644 +--- a/lib/JournalImpl.h ++++ b/lib/JournalImpl.h +@@ -37,6 +37,10 @@ + #include "qpid/management/Manageable.h" + #include "qmf/com/redhat/rhm/store/Journal.h" + ++namespace qpid { namespace sys { ++class Timer; ++}} ++ + namespace mrg { + namespace msgstore { + +@@ -75,9 +79,9 @@ class JournalImpl : public qpid::broker::ExternalQueueStore, public mrg::journal + + private: + static qpid::sys::Mutex _static_lock; +- static qpid::sys::Timer* journalTimerPtr; + static u_int32_t cnt; + ++ qpid::sys::Timer& timer; + bool getEventsTimerSetFlag; + boost::intrusive_ptr getEventsFireEventsPtr; + qpid::sys::Mutex _getf_lock; +@@ -102,7 +106,8 @@ class JournalImpl : public qpid::broker::ExternalQueueStore, public mrg::journal + + public: + +- JournalImpl(const std::string& journalId, ++ JournalImpl(qpid::sys::Timer& timer, ++ const std::string& journalId, + const std::string& journalDirectory, + const std::string& journalBaseFilename, + const qpid::sys::Duration getEventsTimeout, +@@ -219,9 +224,8 @@ class JournalImpl : public qpid::broker::ExternalQueueStore, public mrg::journal + + inline void setGetEventTimer() + { +- assert(journalTimerPtr != 0); + getEventsFireEventsPtr->setupNextFire(); +- journalTimerPtr->add(getEventsFireEventsPtr); ++ timer.add(getEventsFireEventsPtr); + getEventsTimerSetFlag = true; + } + void handleIoResult(const mrg::journal::iores r); +@@ -239,13 +243,14 @@ class JournalImpl : public qpid::broker::ExternalQueueStore, public mrg::journal + class TplJournalImpl : public JournalImpl + { + public: +- TplJournalImpl(const std::string& journalId, ++ TplJournalImpl(qpid::sys::Timer& timer, ++ const std::string& journalId, + const std::string& journalDirectory, + const std::string& journalBaseFilename, + const qpid::sys::Duration getEventsTimeout, + const qpid::sys::Duration flushTimeout, + qpid::management::ManagementAgent* agent) : +- JournalImpl(journalId, journalDirectory, journalBaseFilename, getEventsTimeout, flushTimeout, agent) ++ JournalImpl(timer, journalId, journalDirectory, journalBaseFilename, getEventsTimeout, flushTimeout, agent) + {} + + ~TplJournalImpl() {} +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index 5f98055..e4f98b5 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -62,7 +62,7 @@ MessageStoreImpl::TplRecoverStruct::TplRecoverStruct(const u_int64_t _rid, + tpc_flag(_tpc_flag) + {} + +-MessageStoreImpl::MessageStoreImpl(const char* envpath) : ++MessageStoreImpl::MessageStoreImpl(qpid::sys::Timer& timer_, const char* envpath) : + numJrnlFiles(0), + autoJrnlExpand(false), + autoJrnlExpandMaxFiles(0), +@@ -77,6 +77,7 @@ MessageStoreImpl::MessageStoreImpl(const char* envpath) : + highestRid(0), + isInit(false), + envPath(envpath), ++ timer(timer_), + mgmtObject(0), + agent(0) + {} +@@ -339,7 +340,7 @@ void MessageStoreImpl::init() + open(mappingDb, txn.get(), "mappings.db", true); + open(bindingDb, txn.get(), "bindings.db", true); + open(generalDb, txn.get(), "general.db", false); +- tplStorePtr.reset(new TplJournalImpl("TplStore", getTplBaseDir(), "tpl", defJournalGetEventsTimeout, defJournalFlushTimeout, agent)); ++ tplStorePtr.reset(new TplJournalImpl(timer, "TplStore", getTplBaseDir(), "tpl", defJournalGetEventsTimeout, defJournalFlushTimeout, agent)); + txn.commit(); + } catch (const journal::jexception& e) { + QPID_LOG(error, "Journal Exception occurred while initializing store: " << e); +@@ -479,7 +480,7 @@ void MessageStoreImpl::create(PersistableQueue& queue, + return; + } + +- jQueue = new JournalImpl(queue.getName(), getJrnlDir(queue), std::string("JournalData"), ++ jQueue = new JournalImpl(timer, queue.getName(), getJrnlDir(queue), std::string("JournalData"), + defJournalGetEventsTimeout, defJournalFlushTimeout, agent, + boost::bind(&MessageStoreImpl::journalDeleted, this, _1)); + { +@@ -763,7 +764,7 @@ void MessageStoreImpl::recoverQueues(TxnCtxt& txn, + QPID_LOG(error, "Cannot recover empty (null) queue name - ignoring and attempting to continue."); + break; + } +- jQueue = new JournalImpl(queueName, getJrnlHashDir(queueName), std::string("JournalData"), ++ jQueue = new JournalImpl(timer, queueName, getJrnlHashDir(queueName), std::string("JournalData"), + defJournalGetEventsTimeout, defJournalFlushTimeout, agent, + boost::bind(&MessageStoreImpl::journalDeleted, this, _1)); + { +diff --git a/lib/MessageStoreImpl.h b/lib/MessageStoreImpl.h +index 2659f32..8e46dd2 100644 +--- a/lib/MessageStoreImpl.h ++++ b/lib/MessageStoreImpl.h +@@ -45,6 +45,10 @@ + #define DB_BUFFER_SMALL ENOMEM + #endif + ++namespace qpid { namespace sys { ++class Timer; ++}} ++ + namespace mrg { + namespace msgstore { + +@@ -147,6 +151,7 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + u_int64_t highestRid; + bool isInit; + const char* envPath; ++ qpid::sys::Timer& timer; + + qmf::com::redhat::rhm::store::Store* mgmtObject; + qpid::management::ManagementAgent* agent; +@@ -266,7 +271,7 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + public: + typedef boost::shared_ptr shared_ptr; + +- MessageStoreImpl(const char* envpath = 0); ++ MessageStoreImpl(qpid::sys::Timer& timer, const char* envpath = 0); + + virtual ~MessageStoreImpl(); + +diff --git a/lib/StorePlugin.cpp b/lib/StorePlugin.cpp +index 0fb3512..8231bd6 100644 +--- a/lib/StorePlugin.cpp ++++ b/lib/StorePlugin.cpp +@@ -43,7 +43,7 @@ struct StorePlugin : public Plugin { + { + Broker* broker = dynamic_cast(&target); + if (!broker) return; +- boost::shared_ptr store(new mrg::msgstore::MessageStoreImpl ()); ++ boost::shared_ptr store(new mrg::msgstore::MessageStoreImpl (broker->getTimer())); + DataDir& dataDir = broker->getDataDir (); + if (options.storeDir.empty ()) + { +diff --git a/tests/OrderingTest.cpp b/tests/OrderingTest.cpp +index 16f88d0..10fda1d 100644 +--- a/tests/OrderingTest.cpp ++++ b/tests/OrderingTest.cpp +@@ -30,6 +30,9 @@ + #include + #include + #include "qpid/log/Logger.h" ++#include "qpid/sys/Timer.h" ++ ++qpid::sys::Timer timer; + + #define SET_LOG_LEVEL(level) \ + qpid::log::Options opts(""); \ +@@ -59,7 +62,7 @@ int counter = 1; + + void setup() + { +- store = std::auto_ptr(new MessageStoreImpl()); ++ store = std::auto_ptr(new MessageStoreImpl(timer)); + store->init(test_dir, 4, 1, true); // truncate store + + queue = Queue::shared_ptr(new Queue(name, 0, store.get(), 0)); +@@ -98,7 +101,7 @@ void restart() + queue.reset(); + store.reset(); + +- store = std::auto_ptr(new MessageStoreImpl()); ++ store = std::auto_ptr(new MessageStoreImpl(timer)); + store->init(test_dir, 4, 1); + ExchangeRegistry exchanges; + LinkRegistry links; +diff --git a/tests/SimpleTest.cpp b/tests/SimpleTest.cpp +index 4d5f155..c62869d 100644 +--- a/tests/SimpleTest.cpp ++++ b/tests/SimpleTest.cpp +@@ -32,6 +32,9 @@ + #include + #include + #include "qpid/log/Logger.h" ++#include "qpid/sys/Timer.h" ++ ++qpid::sys::Timer timer; + + #define SET_LOG_LEVEL(level) \ + qpid::log::Options opts(""); \ +@@ -92,7 +95,7 @@ void bindAndUnbind(const string& exchangeName, const string& queueName, + const string& key, const FieldTable& args) + { + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + Exchange::shared_ptr exchange(new DirectExchange(exchangeName, true, args)); + Queue::shared_ptr queue(new Queue(queueName, 0, &store, 0)); +@@ -102,7 +105,7 @@ void bindAndUnbind(const string& exchangeName, const string& queueName, + store.bind(*exchange, *queue, key, args); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + ExchangeRegistry exchanges; + QueueRegistry queues; +@@ -121,7 +124,7 @@ void bindAndUnbind(const string& exchangeName, const string& queueName, + store.unbind(*exchange, *queue, key, args); + } + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + ExchangeRegistry exchanges; + QueueRegistry queues; +@@ -148,7 +151,7 @@ QPID_AUTO_TEST_CASE(CreateDelete) + SET_LOG_LEVEL("error+"); // This only needs to be set once. + + cout << test_filename << ".CreateDelete: " << flush; +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + string name("CreateDeleteQueue"); + Queue queue(name, 0, &store, 0); +@@ -164,7 +167,7 @@ QPID_AUTO_TEST_CASE(CreateDelete) + QPID_AUTO_TEST_CASE(EmptyRecover) + { + cout << test_filename << ".EmptyRecover: " << flush; +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + QueueRegistry registry; + registry.setStore (&store); +@@ -181,7 +184,7 @@ QPID_AUTO_TEST_CASE(QueueCreate) + uint64_t id(0); + string name("MyDurableQueue"); + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + Queue queue(name, 0, &store, 0); + store.create(queue, qpid::framing::FieldTable()); +@@ -189,7 +192,7 @@ QPID_AUTO_TEST_CASE(QueueCreate) + id = queue.getPersistenceId(); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + QueueRegistry registry; + registry.setStore (&store); +@@ -209,7 +212,7 @@ QPID_AUTO_TEST_CASE(QueueCreateWithSettings) + std::auto_ptr policy( QueuePolicy::createQueuePolicy(101, 202)); + string name("MyDurableQueue"); + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + Queue queue(name, 0, &store, 0); + FieldTable settings; +@@ -218,7 +221,7 @@ QPID_AUTO_TEST_CASE(QueueCreateWithSettings) + BOOST_REQUIRE(queue.getPersistenceId()); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + QueueRegistry registry; + registry.setStore (&store); +@@ -239,14 +242,14 @@ QPID_AUTO_TEST_CASE(QueueDestroy) + + string name("MyDurableQueue"); + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + Queue queue(name, 0, &store, 0); + store.create(queue, qpid::framing::FieldTable()); + store.destroy(queue); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + QueueRegistry registry; + registry.setStore (&store); +@@ -272,7 +275,7 @@ QPID_AUTO_TEST_CASE(Enqueue) + string data1("abcdefg"); + string data2("hijklmn"); + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + Queue::shared_ptr queue(new Queue(name, 0, &store, 0)); + FieldTable settings; +@@ -290,7 +293,7 @@ QPID_AUTO_TEST_CASE(Enqueue) + queue->enqueue(0, msg); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + QueueRegistry registry; + registry.setStore (&store); +@@ -331,7 +334,7 @@ QPID_AUTO_TEST_CASE(Dequeue) + string routingKey("MyRoutingKey"); + Uuid messageId(true); + string data("abcdefg"); +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + Queue::shared_ptr queue(new Queue(name, 0, &store, 0)); + FieldTable settings; +@@ -347,7 +350,7 @@ QPID_AUTO_TEST_CASE(Dequeue) + queue->dequeue(0, qm); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + QueueRegistry registry; + registry.setStore (&store); +@@ -370,7 +373,7 @@ QPID_AUTO_TEST_CASE(ExchangeCreateAndDestroy) + FieldTable args; + args.setString("a", "A"); + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + ExchangeRegistry registry; + Exchange::shared_ptr exchange = registry.declare(name, type, true, args).first; +@@ -379,7 +382,7 @@ QPID_AUTO_TEST_CASE(ExchangeCreateAndDestroy) + BOOST_REQUIRE(id); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + ExchangeRegistry registry; + +@@ -393,7 +396,7 @@ QPID_AUTO_TEST_CASE(ExchangeCreateAndDestroy) + store.destroy(*exchange); + } + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + ExchangeRegistry registry; + +@@ -441,7 +444,7 @@ QPID_AUTO_TEST_CASE(ExchangeImplicitUnbind) + string key("my-routing-key"); + FieldTable args; + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1, true); // truncate store + Exchange::shared_ptr exchange(new DirectExchange(exchangeName, true, args)); + Queue::shared_ptr queue1(new Queue(queueName1, 0, &store, 0)); +@@ -455,7 +458,7 @@ QPID_AUTO_TEST_CASE(ExchangeImplicitUnbind) + store.destroy(*queue1); + }//db will be closed + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + ExchangeRegistry exchanges; + QueueRegistry queues; +@@ -472,7 +475,7 @@ QPID_AUTO_TEST_CASE(ExchangeImplicitUnbind) + store.destroy(*exchange); + } + { +- MessageStoreImpl store; ++ MessageStoreImpl store(timer); + store.init(test_dir, 4, 1); + ExchangeRegistry exchanges; + QueueRegistry queues; +diff --git a/tests/TransactionalTest.cpp b/tests/TransactionalTest.cpp +index d6f6d7f..ac5a6b6 100644 +--- a/tests/TransactionalTest.cpp ++++ b/tests/TransactionalTest.cpp +@@ -32,6 +32,9 @@ + #include "qpid/framing/AMQHeaderBody.h" + #include "qpid/log/Statement.h" + #include "qpid/log/Logger.h" ++#include "qpid/sys/Timer.h" ++ ++qpid::sys::Timer timer; + + #define SET_LOG_LEVEL(level) \ + qpid::log::Options opts(""); \ +@@ -69,7 +72,7 @@ class TestTxnCtxt : public TxnCtxt + class TestMessageStore: public MessageStoreImpl + { + public: +- TestMessageStore(const char* envpath = 0) : MessageStoreImpl(envpath) {} ++ TestMessageStore(qpid::sys::Timer& timer, const char* envpath = 0) : MessageStoreImpl(timer, envpath) {} + std::auto_ptr begin() { + checkInit(); + // pass sequence number for c/a +@@ -109,7 +112,7 @@ Queue::shared_ptr queueB; + template + void setup() + { +- store = std::auto_ptr(new T()); ++ store = std::auto_ptr(new T(timer)); + store->init(test_dir, 4, 1, true); // truncate store + + //create two queues: +@@ -128,7 +131,7 @@ void restart() + queues.reset(); + store.reset(); + +- store = std::auto_ptr(new T()); ++ store = std::auto_ptr(new T(timer)); + store->init(test_dir, 4, 1); + queues = std::auto_ptr(new QueueRegistry); + ExchangeRegistry exchanges; +diff --git a/tests/TwoPhaseCommitTest.cpp b/tests/TwoPhaseCommitTest.cpp +index 86d3976..f442310 100644 +--- a/tests/TwoPhaseCommitTest.cpp ++++ b/tests/TwoPhaseCommitTest.cpp +@@ -32,6 +32,9 @@ + #include "qpid/log/Statement.h" + #include "TxnCtxt.h" + #include "qpid/log/Logger.h" ++#include "qpid/sys/Timer.h" ++ ++qpid::sys::Timer timer; + + #define SET_LOG_LEVEL(level) \ + qpid::log::Options opts(""); \ +@@ -182,7 +185,7 @@ class TwoPhaseCommitTest + class TestMessageStore: public MessageStoreImpl + { + public: +- TestMessageStore(const char* envpath = 0) : MessageStoreImpl(envpath) {} ++ TestMessageStore(qpid::sys::Timer& timer, const char* envpath = 0) : MessageStoreImpl(timer, envpath) {} + std::auto_ptr begin(const std::string& xid) { + checkInit(); + IdSequence* jtx = &messageIdSequence; +@@ -325,7 +328,7 @@ class TwoPhaseCommitTest + template + void setup() + { +- store = std::auto_ptr(new T()); ++ store = std::auto_ptr(new T(timer)); + store->init(test_dir, 4, 1, true); // truncate store + + //create two queues: +@@ -353,7 +356,7 @@ class TwoPhaseCommitTest + queues.reset(); + links.reset(); + +- store = std::auto_ptr(new T()); ++ store = std::auto_ptr(new T(timer)); + store->init(test_dir, 4, 1); + sys::Timer t; + ExchangeRegistry exchanges; +-- +1.7.3.4 + +From fe15a7208f3659c06b0992ea9fcc1eac6b2d1d18 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Tue, 20 Jul 2010 17:07:24 +0000 +Subject: [PATCH 14/24] Bug 614944 - "qpidd broker crash in mrg::msgstore::TxnCtxt::abort() -> DbTxn::abort()": Fix part 1, which improves the exception handling so that there is no throw within a catch. This will not change the probability of occurance of this bug, but the logs and exception message outcome will be different. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4133 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 126 ++++++++++++++++++++++++--------------------- + lib/MessageStoreImpl.h | 1 + + 2 files changed, 68 insertions(+), 59 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index e4f98b5..37456ea 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -306,57 +306,61 @@ bool MessageStoreImpl::init(const std::string& dir, + + void MessageStoreImpl::init() + { +- journal::jdir::create_dir(getBdbBaseDir()); +- +- try { +- dbenv.reset(new DbEnv(0)); +- dbenv->set_errpfx("msgstore"); +- dbenv->set_lg_regionmax(256000); // default = 65000 +- dbenv->open(getBdbBaseDir().c_str(), DB_THREAD | DB_CREATE | DB_INIT_TXN | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_USE_ENVIRON | DB_RECOVER, 0); +- } catch (const DbException& e) { +- if (e.get_errno() == DB_VERSION_MISMATCH) +- THROW_STORE_EXCEPTION_2("Database environment mismatch: This version of bd4 does not match that which created the store database. " +- "(If recovery is not important, delete the contents of the store directory. Otherwise, try upgrading the database using " +- "db_upgrade or using db_recover - but the db4-utils package must also be installed to use these utilities.)", e); +- THROW_STORE_EXCEPTION_2("Error opening environment", e); +- } +- +- TxnCtxt txn; +- try { +- // Databases are constructed here instead of the constructor so that the DB_RECOVER flag can be used +- // against the database environment. Recover can only be performed if no databases have been created +- // against the environment at the time of recovery, as recovery invalidates the environment. +- queueDb.reset(new Db(dbenv.get(), 0)); +- configDb.reset(new Db(dbenv.get(), 0)); +- exchangeDb.reset(new Db(dbenv.get(), 0)); +- mappingDb.reset(new Db(dbenv.get(), 0)); +- bindingDb.reset(new Db(dbenv.get(), 0)); +- generalDb.reset(new Db(dbenv.get(), 0)); +- +- txn.begin(dbenv.get(), false); +- open(queueDb, txn.get(), "queues.db", false); +- open(configDb, txn.get(), "config.db", false); +- open(exchangeDb, txn.get(), "exchanges.db", false); +- open(mappingDb, txn.get(), "mappings.db", true); +- open(bindingDb, txn.get(), "bindings.db", true); +- open(generalDb, txn.get(), "general.db", false); +- tplStorePtr.reset(new TplJournalImpl(timer, "TplStore", getTplBaseDir(), "tpl", defJournalGetEventsTimeout, defJournalFlushTimeout, agent)); +- txn.commit(); +- } catch (const journal::jexception& e) { +- QPID_LOG(error, "Journal Exception occurred while initializing store: " << e); +- txn.abort(); +- THROW_STORE_EXCEPTION_2("Error opening tplStore instance", e.what()); +- } catch (const DbException& e) { +- QPID_LOG(error, "BDB exception occurred while initializing store: " << e.what()); +- txn.abort(); +- THROW_STORE_EXCEPTION_2("Error opening databases", e); +- } catch (...) { +- QPID_LOG(error, "Unknown exception occurred while initializing store."); +- txn.abort(); +- throw; +- } +- +- isInit = true; ++ try { ++ journal::jdir::create_dir(getBdbBaseDir()); ++ ++ dbenv.reset(new DbEnv(0)); ++ dbenv->set_errpfx("msgstore"); ++ dbenv->set_lg_regionmax(256000); // default = 65000 ++ dbenv->open(getBdbBaseDir().c_str(), DB_THREAD | DB_CREATE | DB_INIT_TXN | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_USE_ENVIRON | DB_RECOVER, 0); ++ ++ // Databases are constructed here instead of the constructor so that the DB_RECOVER flag can be used ++ // against the database environment. Recover can only be performed if no databases have been created ++ // against the environment at the time of recovery, as recovery invalidates the environment. ++ queueDb.reset(new Db(dbenv.get(), 0)); ++ dbs.push_back(queueDb); ++ configDb.reset(new Db(dbenv.get(), 0)); ++ dbs.push_back(configDb); ++ exchangeDb.reset(new Db(dbenv.get(), 0)); ++ dbs.push_back(exchangeDb); ++ mappingDb.reset(new Db(dbenv.get(), 0)); ++ dbs.push_back(mappingDb); ++ bindingDb.reset(new Db(dbenv.get(), 0)); ++ dbs.push_back(bindingDb); ++ generalDb.reset(new Db(dbenv.get(), 0)); ++ dbs.push_back(generalDb); ++ ++ TxnCtxt txn; ++ txn.begin(dbenv.get(), false); ++ try { ++ open(queueDb, txn.get(), "queues.db", false); ++ open(configDb, txn.get(), "config.db", false); ++ open(exchangeDb, txn.get(), "exchanges.db", false); ++ open(mappingDb, txn.get(), "mappings.db", true); ++ open(bindingDb, txn.get(), "bindings.db", true); ++ open(generalDb, txn.get(), "general.db", false); ++ txn.commit(); ++ } catch (...) { txn.abort(); throw; } ++ ++ tplStorePtr.reset(new TplJournalImpl(timer, "TplStore", getTplBaseDir(), "tpl", defJournalGetEventsTimeout, defJournalFlushTimeout, agent)); ++ isInit = true; ++ } catch (const DbException& e) { ++ if (e.get_errno() == DB_VERSION_MISMATCH) ++ { ++ QPID_LOG(error, "Database environment mismatch: This version of db4 does not match that which created the store database.: " << e.what()); ++ THROW_STORE_EXCEPTION_2("Database environment mismatch: This version of db4 does not match that which created the store database. " ++ "(If recovery is not important, delete the contents of the store directory. Otherwise, try upgrading the database using " ++ "db_upgrade or using db_recover - but the db4-utils package must also be installed to use these utilities.)", e); ++ } ++ QPID_LOG(error, "BDB exception occurred while initializing store: " << e.what()); ++ THROW_STORE_EXCEPTION_2("BDB exception occurred while initializing store", e); ++ } catch (const journal::jexception& e) { ++ QPID_LOG(error, "Journal Exception occurred while initializing store: " << e); ++ THROW_STORE_EXCEPTION_2("Journal Exception occurred while initializing store", e.what()); ++ } catch (...) { ++ QPID_LOG(error, "Unknown exception occurred while initializing store."); ++ throw; ++ } + } + + void MessageStoreImpl::finalize() +@@ -389,20 +393,19 @@ void MessageStoreImpl::truncateInit(const bool pushDownStoreFiles) + THROW_STORE_EXCEPTION(oss.str()); + } + } +- for (std::list::iterator i = dbs.begin(); i != dbs.end(); i++) { +- (*i)->close(0); +- } ++ closeDbs(); + dbs.clear(); + if (tplStorePtr->is_ready()) tplStorePtr->stop(true); + dbenv->close(0); ++ isInit = false; + } + std::ostringstream oss; + oss << storeDir << "/" << storeTopLevelDir; + if (pushDownStoreFiles) { + QPID_LOG(notice, "Store directory " << oss.str() << " was pushed down into directory " << mrg::journal::jdir::push_down(storeDir, storeTopLevelDir, "cluster") << "."); + } else { +- QPID_LOG(notice, "Store directory " << oss.str() << " was truncated."); + mrg::journal::jdir::delete_dir(oss.str().c_str()); ++ QPID_LOG(notice, "Store directory " << oss.str() << " was truncated."); + } + init(); + } +@@ -425,16 +428,21 @@ void MessageStoreImpl::open(db_ptr db, + { + if(dupKey) db->set_flags(DB_DUPSORT); + db->open(txn, file, 0, DB_BTREE, DB_CREATE | DB_THREAD, 0); +- dbs.push_back(db); ++} ++ ++void MessageStoreImpl::closeDbs() ++{ ++ for (std::list::iterator i = dbs.begin(); i != dbs.end(); i++) { ++ (*i)->close(0); ++ } ++ dbs.clear(); + } + + MessageStoreImpl::~MessageStoreImpl() + { + finalize(); + try { +- for (std::list::iterator i = dbs.begin(); i != dbs.end(); i++) { +- (*i)->close(0); +- } ++ closeDbs(); + } catch (const DbException& e) { + QPID_LOG(error, "Error closing BDB databases: " << e.what()); + } catch (const journal::jexception& e) { +diff --git a/lib/MessageStoreImpl.h b/lib/MessageStoreImpl.h +index 8e46dd2..99d8ed2 100644 +--- a/lib/MessageStoreImpl.h ++++ b/lib/MessageStoreImpl.h +@@ -240,6 +240,7 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + DbTxn* txn, + const char* file, + bool dupKey); ++ void closeDbs(); + + // journal functions + void createJrnlQueue(const qpid::broker::PersistableQueue& queue); +-- +1.7.3.4 + +From 5fd176ac826097d7485e896dcf8cfe919dd89a5c Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Tue, 10 Aug 2010 17:33:04 +0000 +Subject: [PATCH 15/24] Fix for BZ 620676 - "Store resize operation fails with large messages (greater than store file size)". Also included new resize tests that would catch this bug. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4196 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + tests/python_tests/__init__.py | 1 + + tests/python_tests/client_persistence.py | 30 +++--- + tests/python_tests/resize.py | 169 ++++++++++++++++++++++++++++++ + tests/python_tests/store_test.py | 6 +- + tests/run_python_tests | 2 +- + tools/janal.py | 6 +- + tools/resize | 2 +- + 7 files changed, 194 insertions(+), 22 deletions(-) + create mode 100644 tests/python_tests/resize.py + +diff --git a/tests/python_tests/__init__.py b/tests/python_tests/__init__.py +index d40cb00..917dc79 100644 +--- a/tests/python_tests/__init__.py ++++ b/tests/python_tests/__init__.py +@@ -23,3 +23,4 @@ + + from client_persistence import * + from flow_to_disk import * ++from resize import * +diff --git a/tests/python_tests/client_persistence.py b/tests/python_tests/client_persistence.py +index dc197dc..e7a253d 100644 +--- a/tests/python_tests/client_persistence.py ++++ b/tests/python_tests/client_persistence.py +@@ -33,20 +33,20 @@ class ExchangeQueueTests(StoreTest): + + def test_direct_exchange(self): + """Test Direct exchange.""" +- broker = self.broker(store_args(), name="testDirectExchange", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_direct_exchange", expect=EXPECT_EXIT_OK) + msg1 = Message("A_Message1", durable=True, correlation_id="Msg0001") + msg2 = Message("B_Message1", durable=True, correlation_id="Msg0002") + broker.send_message("a", msg1) + broker.send_message("b", msg2) + broker.terminate() + +- broker = self.broker(store_args(), name="testDirectExchange") ++ broker = self.broker(store_args(), name="test_direct_exchange") + self.check_message(broker, "a", msg1, True) + self.check_message(broker, "b", msg2, True) + + def test_topic_exchange(self): + """Test Topic exchange.""" +- broker = self.broker(store_args(), name="testTopicExchange", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_topic_exchange", expect=EXPECT_EXIT_OK) + ssn = broker.connect().session() + snd1 = ssn.sender("abc/key1; {create:always, node:{type:topic, durable:True}}") + snd2 = ssn.sender("abc/key2; {create:always, node:{type:topic, durable:True}}") +@@ -62,7 +62,7 @@ class ExchangeQueueTests(StoreTest): + snd2.send(msg2) + broker.terminate() + +- broker = self.broker(store_args(), name="testTopicExchange") ++ broker = self.broker(store_args(), name="test_topic_exchange") + self.check_message(broker, "a", msg1, True) + self.check_message(broker, "b", msg1, True) + self.check_messages(broker, "c", [msg1, msg2], True) +@@ -72,7 +72,7 @@ class ExchangeQueueTests(StoreTest): + + def test_lvq(self): + """Test LVQ.""" +- broker = self.broker(store_args(), name="testLVQ", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_lvq", expect=EXPECT_EXIT_OK) + ma1 = Message("A1", durable=True, correlation_id="Msg0005", properties={"qpid.LVQ_key":"A"}) + ma2 = Message("A2", durable=True, correlation_id="Msg0006", properties={"qpid.LVQ_key":"A"}) + mb1 = Message("B1", durable=True, correlation_id="Msg0007", properties={"qpid.LVQ_key":"B"}) +@@ -83,7 +83,7 @@ class ExchangeQueueTests(StoreTest): + xprops="arguments:{\"qpid.last_value_queue\":True}") + broker.terminate() + +- broker = self.broker(store_args(), name="testLVQ", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_lvq", expect=EXPECT_EXIT_OK) + ssn = self.check_messages(broker, "lvq-test", [ma2, mb3, mc1], empty=True, ack=False) + # Add more messages while subscriber is active (no replacement): + ma3 = Message("A3", durable=True, correlation_id="Msg0011", properties={"qpid.LVQ_key":"A"}) +@@ -95,12 +95,12 @@ class ExchangeQueueTests(StoreTest): + ssn.acknowledge() + broker.terminate() + +- broker = self.broker(store_args(), name="testLVQ") ++ broker = self.broker(store_args(), name="test_lvq") + self.check_messages(broker, "lvq-test", [mc4, ma4], True) + + def test_fanout_exchange(self): + """Test Fanout Exchange""" +- broker = self.broker(store_args(), name="testFanout", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_fanout_exchange", expect=EXPECT_EXIT_OK) + ssn = broker.connect().session() + snd = ssn.sender("TestFanoutExchange; {create: always, node: {type: topic, x-declare: {type: fanout}}}") + ssn.receiver("TestFanoutExchange; {link: {name: \"q1\", durable: True, reliability:at-least-once}}") +@@ -112,7 +112,7 @@ class ExchangeQueueTests(StoreTest): + snd.send(msg2) + broker.terminate() + +- broker = self.broker(store_args(), name="testFanout") ++ broker = self.broker(store_args(), name="test_fanout_exchange") + self.check_messages(broker, "q1", [msg1, msg2], True) + self.check_messages(broker, "q2", [msg1, msg2], True) + self.check_messages(broker, "q3", [msg1, msg2], True) +@@ -125,14 +125,14 @@ class AlternateExchagePropertyTests(StoreTest): + + def test_exchange(self): + """Exchange alternate exchange property persistence test""" +- broker = self.broker(store_args(), name="testExchangeBroker", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_exchange", expect=EXPECT_EXIT_OK) + qmf = Qmf(broker) + qmf.add_exchange("altExch", "direct", durable=True) # Serves as alternate exchange instance + qmf.add_exchange("testExch", "direct", durable=True, alt_exchange_name="altExch") + qmf.close() + broker.terminate() + +- broker = self.broker(store_args(), name="testExchangeBroker") ++ broker = self.broker(store_args(), name="test_exchange") + qmf = Qmf(broker) + try: + qmf.add_exchange("altExch", "direct", passive=True) +@@ -148,14 +148,14 @@ class AlternateExchagePropertyTests(StoreTest): + + def test_queue(self): + """Queue alternate exchange property persistexchangeNamece test""" +- broker = self.broker(store_args(), name="testQueueBroker", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_queue", expect=EXPECT_EXIT_OK) + qmf = Qmf(broker) + qmf.add_exchange("altExch", "direct", durable=True) # Serves as alternate exchange instance + qmf.add_queue("testQueue", durable=True, alt_exchange_name="altExch") + qmf.close() + broker.terminate() + +- broker = self.broker(store_args(), name="testQueueBroker") ++ broker = self.broker(store_args(), name="test_queue") + qmf = Qmf(broker) + try: + qmf.add_exchange("altExch", "direct", passive=True) +@@ -177,13 +177,13 @@ class RedeliveredTests(StoreTest): + + def test_broker_recovery(self): + """Test that the redelivered flag is set on messages after recovery of broker""" +- broker = self.broker(store_args(), name="testAfterRecover", expect=EXPECT_EXIT_OK) ++ broker = self.broker(store_args(), name="test_broker_recovery", expect=EXPECT_EXIT_OK) + msg_content = "xyz"*100 + msg = Message(msg_content, durable=True) + broker.send_message("testQueue", msg) + broker.terminate() + +- broker = self.broker(store_args(), name="testAfterRecover") ++ broker = self.broker(store_args(), name="test_broker_recovery") + rcv_msg = broker.get_message("testQueue") + self.assertEqual(msg_content, rcv_msg.content) + self.assertTrue(rcv_msg.redelivered) +diff --git a/tests/python_tests/resize.py b/tests/python_tests/resize.py +new file mode 100644 +index 0000000..acef3b7 +--- /dev/null ++++ b/tests/python_tests/resize.py +@@ -0,0 +1,169 @@ ++""" ++Copyright (c) 2008 Red Hat, Inc. ++ ++This file is part of the Qpid async store library msgstore.so. ++ ++This library is free software; you can redistribute it and/or ++modify it under the terms of the GNU Lesser General Public ++License as published by the Free Software Foundation; either ++version 2.1 of the License, or (at your option) any later version. ++ ++This library 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 ++Lesser General Public License for more details. ++ ++You should have received a copy of the GNU Lesser General Public ++License along with this library; if not, write to the Free Software ++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ++ USA ++ ++The GNU Lesser General Public License is available in the file COPYING. ++""" ++ ++import glob ++import os ++import subprocess ++ ++from qpid.brokertest import EXPECT_EXIT_OK ++from qpid.datatypes import uuid4 ++from store_test import StoreTest, store_args ++from qpid.messaging import Message ++ ++class ResizeTest(StoreTest): ++ ++ resize_tool = os.getenv("RESIZE_TOOL", "../../../tools/resize") ++ ++ def _resize_store(self, store_dir, queue_name, resize_num_files, resize_file_size, exp_fail): ++ for f in glob.glob(os.path.join(store_dir, "*")): ++ final_store_dir = os.path.join(f, queue_name) ++ p = subprocess.Popen([self.resize_tool, final_store_dir, "--num-jfiles", str(resize_num_files), ++ "--jfile-size-pgs", str(resize_file_size), "--quiet"], stdout = subprocess.PIPE, ++ stderr = subprocess.STDOUT) ++ res = p.wait() ++ err_found = False ++ try: ++ for l in p.stdout: ++ if exp_fail: ++ err_found = True ++ print "[Expected error]:", ++ print l, ++ finally: ++ p.stdout.close() ++ return res ++ ++ def _resize_test(self, queue_name, num_msgs, msg_size, resize_num_files, resize_file_size, init_num_files = 8, ++ init_file_size = 24, exp_fail = False, wait_time = None): ++ # Using a sender will force the creation of an empty persistent queue which is needed for some tests ++ broker = self.broker(store_args(), name="broker", expect=EXPECT_EXIT_OK, wait=wait_time) ++ ssn = broker.connect().session() ++ snd = ssn.sender("%s; {create:always, node:{durable:True}}" % queue_name) ++ ++ msgs = [] ++ for index in range(0, num_msgs): ++ msg = Message(self.make_message(index, msg_size), durable=True, id=uuid4(), correlation_id="msg-%04d"%index) ++ msgs.append(msg) ++ snd.send(msg) ++ broker.terminate() ++ ++ res = self._resize_store(os.path.join(self.dir, "broker", "rhm", "jrnl"), queue_name, resize_num_files, ++ resize_file_size, exp_fail) ++ if res != 0: ++ if exp_fail: ++ return ++ self.fail("ERROR: Resize operation failed with return code %d" % res) ++ elif exp_fail: ++ self.fail("ERROR: Resize operation succeeded, but a failure was expected") ++ ++ broker = self.broker(store_args(), name="broker") ++ self.check_messages(broker, queue_name, msgs, True) ++ ++ ++class SimpleTest(ResizeTest): ++ """ ++ Simple tests of the resize utility for resizing a journal to larger and smaller sizes. ++ """ ++ ++ def test_empty_store_same(self): ++ self._resize_test(queue_name = "empty_store_same", ++ num_msgs = 0, msg_size = 0, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 8, resize_file_size = 24) ++ ++ def test_empty_store_up(self): ++ self._resize_test(queue_name = "empty_store_up", ++ num_msgs = 0, msg_size = 0, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 16, resize_file_size = 48) ++ ++ def test_empty_store_down(self): ++ self._resize_test(queue_name = "empty_store_down", ++ num_msgs = 0, msg_size = 0, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 6, resize_file_size = 12) ++ ++# Put into long tests, make sure there is > 128GB free disk space ++# def test_empty_store_max(self): ++# self._resize_test(queue_name = "empty_store_max", ++# num_msgs = 0, msg_size = 0, ++# init_num_files = 8, init_file_size = 24, ++# resize_num_files = 64, resize_file_size = 32768, ++# wait_time = 120) ++ ++ def test_empty_store_min(self): ++ self._resize_test(queue_name = "empty_store_min", ++ num_msgs = 0, msg_size = 0, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 4, resize_file_size = 1) ++ ++ def test_basic_up(self): ++ self._resize_test(queue_name = "basic_up", ++ num_msgs = 100, msg_size = 10000, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 16, resize_file_size = 48) ++ ++ def test_basic_down(self): ++ self._resize_test(queue_name = "basic_down", ++ num_msgs = 100, msg_size = 10000, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 4, resize_file_size = 15) ++ ++ def test_basic_low(self): ++ self._resize_test(queue_name = "basic_low", ++ num_msgs = 100, msg_size = 10000, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 4, resize_file_size = 4, ++ exp_fail = True) ++ ++ def test_basic_under(self): ++ self._resize_test(queue_name = "basic_under", ++ num_msgs = 100, msg_size = 10000, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 4, resize_file_size = 3, ++ exp_fail = True) ++ ++ def test_very_large_msg_up(self): ++ self._resize_test(queue_name = "very_large_msg_up", ++ num_msgs = 4, msg_size = 2000000, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 16, resize_file_size = 48) ++ ++ def test_very_large_msg_down(self): ++ self._resize_test(queue_name = "very_large_msg_down", ++ num_msgs = 4, msg_size = 2000000, ++ init_num_files = 16, init_file_size = 64, ++ resize_num_files = 16, resize_file_size = 48) ++ ++ def test_very_large_msg_low(self): ++ self._resize_test(queue_name = "very_large_msg_low", ++ num_msgs = 4, msg_size = 2000000, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 7, resize_file_size = 20, ++ exp_fail = True) ++ ++ def test_very_large_msg_under(self): ++ self._resize_test(queue_name = "very_large_msg_under", ++ num_msgs = 4, msg_size = 2000000, ++ init_num_files = 8, init_file_size = 24, ++ resize_num_files = 6, resize_file_size = 8, ++ exp_fail = True) +diff --git a/tests/python_tests/store_test.py b/tests/python_tests/store_test.py +index 87dcefa..d44d3f3 100644 +--- a/tests/python_tests/store_test.py ++++ b/tests/python_tests/store_test.py +@@ -27,10 +27,12 @@ from qpid.messaging import Empty + from qmf.console import Session + + +-def store_args(): ++def store_args(store_dir = None): + """Return the broker args necessary to load the async store""" + assert BrokerTest.store_lib +- return ["--load-module", BrokerTest.store_lib] ++ if store_dir == None: ++ return ["--load-module", BrokerTest.store_lib] ++ return ["--load-module", BrokerTest.store_lib, "--store-dir", store_dir] + + class Qmf: + """ +diff --git a/tests/run_python_tests b/tests/run_python_tests +index cee0919..a9d1355 100755 +--- a/tests/run_python_tests ++++ b/tests/run_python_tests +@@ -46,7 +46,7 @@ case x$1 in + xLONG_TEST) + DEFAULT_PYTHON_TESTS= ;; + x) +- DEFAULT_PYTHON_TESTS="*.client_persistence.* *.flow_to_disk.SimpleMaxSizeCountTest.* *.flow_to_disk.MultiDurableQueue*.test_mixed_limit_1 *.flow_to_disk.MultiQueue*.test_mixed_limit_1" ;; ++ DEFAULT_PYTHON_TESTS="*.client_persistence.* *.flow_to_disk.SimpleMaxSizeCountTest.* *.flow_to_disk.MultiDurableQueue*.test_mixed_limit_1 *.flow_to_disk.MultiQueue*.test_mixed_limit_1 *.resize.SimpleTest.*" ;; + *) + DEFAULT_PYTHON_TESTS=$1 + esac +diff --git a/tools/janal.py b/tools/janal.py +index 8d01d5e..8b5f687 100644 +--- a/tools/janal.py ++++ b/tools/janal.py +@@ -408,11 +408,11 @@ class JrnlReader(object): + return self._txn_msg_cnt + + def txn_obj_list(self): +- """Get a cululative list of transaction objects (commits and aborts)""" ++ """Get a cumulative list of transaction objects (commits and aborts)""" + return self._txn_obj_list + + def _advance_jrnl_file(self, *oldest_file_info): +- """Rotate to using the next journal file. Return False if the operation was sucessful, True if there are no ++ """Rotate to using the next journal file. Return False if the operation was successful, True if there are no + more files to read.""" + fro_seek_flag = False + if len(oldest_file_info) > 0: +@@ -454,7 +454,7 @@ class JrnlReader(object): + + def _check_owi(self, hdr): + """Return True if the header's owi indicator matches that of the file header record; False otherwise. This can +- indicate wheher the last record in a file has been read and now older records which have not yet been ++ indicate whether the last record in a file has been read and now older records which have not yet been + overwritten are now being read.""" + return self._file_hdr_owi == hdr.owi() + +diff --git a/tools/resize b/tools/resize +index ccaa1bc..3ac69e3 100755 +--- a/tools/resize ++++ b/tools/resize +@@ -155,7 +155,7 @@ class Resize(object): + if self._file == None: + rid = hdr.rid + elif len(rid_list) == 0: +- rid = None ++ rid = 0 + else: + rid = rid_list[0] + if not self._rotate_file(rid, fro): +-- +1.7.3.4 + +From f1d76e8f480d83ffa6a1279dfe16614e204faad6 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Wed, 11 Aug 2010 17:07:24 +0000 +Subject: [PATCH 16/24] Fix for Bug 622889 - "Store resize operation causes Qpid broker recovery to fail with JERR_FCNTL_RDOFFSOVFL" A partly written journal (caused by a failure in the resize utility - fixed under another BZ) was recovered, and caused this failure. This showed up a corner case in which a large single recored spanning more than one journal file was partly written. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4199 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/jrnl/jcntl.hpp | 1 + + lib/jrnl/rmgr.cpp | 3 +++ + tests/python_tests/resize.py | 4 +++- + 3 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/lib/jrnl/jcntl.hpp b/lib/jrnl/jcntl.hpp +index e87e2dd..f048a87 100644 +--- a/lib/jrnl/jcntl.hpp ++++ b/lib/jrnl/jcntl.hpp +@@ -648,6 +648,7 @@ namespace journal + void chk_wr_frot(); + inline u_int32_t unflushed_dblks() { return _wmgr.unflushed_dblks(); } + void fhdr_wr_sync(const u_int16_t lid); ++ inline u_int32_t wr_subm_cnt_dblks(const u_int16_t lfid) const { return _lpmgr.get_fcntlp(lfid)->wr_subm_cnt_dblks(); } + + // Management instrumentation callbacks + inline virtual void instr_incr_outstanding_aio_cnt() {} +diff --git a/lib/jrnl/rmgr.cpp b/lib/jrnl/rmgr.cpp +index 928e8d1..49bf0bb 100644 +--- a/lib/jrnl/rmgr.cpp ++++ b/lib/jrnl/rmgr.cpp +@@ -289,6 +289,9 @@ rmgr::get_events(page_state state) + _rrfc.add_cmpl_cnt_dblks(JRNL_SBLK_SIZE); + + u_int32_t fro_dblks = (_fhdr._fro / JRNL_DBLK_SIZE) - JRNL_SBLK_SIZE; ++ // Check fro_dblks does not exceed the write pointers which can happen in some corrupted journal recoveries ++ if (fro_dblks > _jc->wr_subm_cnt_dblks(_fhdr._pfid) - JRNL_SBLK_SIZE) ++ fro_dblks = _jc->wr_subm_cnt_dblks(_fhdr._pfid) - JRNL_SBLK_SIZE; + _pg_cntr = fro_dblks / (JRNL_RMGR_PAGE_SIZE * JRNL_SBLK_SIZE); + u_int32_t tot_pg_offs_dblks = _pg_cntr * JRNL_RMGR_PAGE_SIZE * JRNL_SBLK_SIZE; + _pg_index = _pg_cntr % JRNL_RMGR_PAGES; +diff --git a/tests/python_tests/resize.py b/tests/python_tests/resize.py +index acef3b7..8ffaefd 100644 +--- a/tests/python_tests/resize.py ++++ b/tests/python_tests/resize.py +@@ -77,6 +77,8 @@ class ResizeTest(StoreTest): + + broker = self.broker(store_args(), name="broker") + self.check_messages(broker, queue_name, msgs, True) ++ ++ # TODO: Check the physical files to check number and size are as expected. + + + class SimpleTest(ResizeTest): +@@ -102,7 +104,7 @@ class SimpleTest(ResizeTest): + init_num_files = 8, init_file_size = 24, + resize_num_files = 6, resize_file_size = 12) + +-# Put into long tests, make sure there is > 128GB free disk space ++# TODO: Put into long tests, make sure there is > 128GB free disk space + # def test_empty_store_max(self): + # self._resize_test(queue_name = "empty_store_max", + # num_msgs = 0, msg_size = 0, +-- +1.7.3.4 + +From e8c4e5a1ee329a4229d997fb7c6f9130ff021cfc Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Mon, 9 Aug 2010 19:01:28 +0000 +Subject: [PATCH 17/24] Minor change to tools which speeds up (somewhat) the resize and check_jrnl utilities + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4195 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + tools/janal.py | 14 +++++++------- + tools/resize | 2 +- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/tools/janal.py b/tools/janal.py +index 8b5f687..7ced467 100644 +--- a/tools/janal.py ++++ b/tools/janal.py +@@ -40,17 +40,17 @@ class EnqMap(object): + + def add(self, fid, hdr, lock = False): + """Add a new record into the map""" +- if hdr.rid in self.__map.keys(): ++ if hdr.rid in self.__map: + raise jerr.DuplicateRidError(hdr.rid) + self.__map[hdr.rid] = (fid, hdr, lock) + + def contains(self, rid): + """Return True if the map contains the given rid""" +- return rid in self.__map.keys() ++ return rid in self.__map + + def delete(self, rid): + """Delete the rid and its associated data from the map""" +- if rid in self.__map.keys(): ++ if rid in self.__map: + if self.get_lock(rid): + raise jerr.DeleteLockedRecordError(rid) + del self.__map[rid] +@@ -87,7 +87,7 @@ class EnqMap(object): + + def lock(self, rid): + """Set the transaction lock for a given rid to True""" +- if rid in self.__map.keys(): ++ if rid in self.__map: + tup = self.__map[rid] + if not tup[2]: + self.__map[rid] = (tup[0], tup[1], True) +@@ -126,7 +126,7 @@ class EnqMap(object): + + def unlock(self, rid): + """Set the transaction lock for a given rid to False""" +- if rid in self.__map.keys(): ++ if rid in self.__map: + tup = self.__map[rid] + if tup[2]: + self.__map[rid] = (tup[0], tup[1], False) +@@ -154,14 +154,14 @@ class TxnMap(object): + """Add a new transactional record into the map""" + if isinstance(hdr, jrnl.DeqRec): + self.__emap.lock(hdr.deq_rid) +- if hdr.xid in self.__map.keys(): ++ if hdr.xid in self.__map: + self.__map[hdr.xid].append((fid, hdr)) # append to existing list + else: + self.__map[hdr.xid] = [(fid, hdr)] # create new list + + def contains(self, xid): + """Return True if the xid exists in the map; False otherwise""" +- return xid in self.__map.keys() ++ return xid in self.__map + + def delete(self, hdr): + """Remove a transaction record from the map using either a commit or abort header""" +diff --git a/tools/resize b/tools/resize +index 3ac69e3..631e798 100755 +--- a/tools/resize ++++ b/tools/resize +@@ -118,7 +118,7 @@ class Resize(object): + hdr = tup[1] + hdr.flags &= ~jrnl.Hdr.OWI_MASK # Turn off owi + master_record_list[long(hdr.rid)] = hdr +- if hdr.xidsize > 0 and hdr.xid in txn_record_list.keys(): ++ if hdr.xidsize > 0 and hdr.xid in txn_record_list: + txn_hdr = txn_record_list[hdr.xid] + del(txn_record_list[hdr.xid]) + txn_hdr.flags &= ~jrnl.Hdr.OWI_MASK # Turn off owi +-- +1.7.3.4 + +From 4f09175c0d8ca20a26c4cc1f58985814436c2803 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Thu, 12 Aug 2010 14:57:55 +0000 +Subject: [PATCH 18/24] Fix for BZ623653 - "resize and store_chk tools do not correctly analyze some transactional records" + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4204 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + tools/janal.py | 50 ++++++++++++++++++++++++++++++++++---------------- + tools/jerr.py | 6 ++++++ + tools/resize | 4 ++-- + tools/store_chk | 10 +++++----- + 4 files changed, 47 insertions(+), 23 deletions(-) + +diff --git a/tools/janal.py b/tools/janal.py +index 7ced467..b722f4f 100644 +--- a/tools/janal.py ++++ b/tools/janal.py +@@ -42,7 +42,7 @@ class EnqMap(object): + """Add a new record into the map""" + if hdr.rid in self.__map: + raise jerr.DuplicateRidError(hdr.rid) +- self.__map[hdr.rid] = (fid, hdr, lock) ++ self.__map[hdr.rid] = [fid, hdr, lock] + + def contains(self, rid): + """Return True if the map contains the given rid""" +@@ -58,7 +58,7 @@ class EnqMap(object): + raise jerr.JWarning("ERROR: Deleting non-existent rid from EnqMap: rid=0x%x" % rid) + + def get(self, rid): +- """Return a tuple (fid, hdr, lock) for the given rid""" ++ """Return a list [fid, hdr, lock] for the given rid""" + if self.contains(rid): + return self.__map[rid] + return None +@@ -88,9 +88,8 @@ class EnqMap(object): + def lock(self, rid): + """Set the transaction lock for a given rid to True""" + if rid in self.__map: +- tup = self.__map[rid] +- if not tup[2]: +- self.__map[rid] = (tup[0], tup[1], True) ++ if not self.__map[rid][2]: # locked ++ self.__map[rid][2] = True + else: + raise jerr.AlreadyLockedError(rid) + else: +@@ -106,8 +105,7 @@ class EnqMap(object): + rid_list = self.__map.keys() + rid_list.sort() + for rid in rid_list: +- rec = self.__map[rid] +- if rec[2]: ++ if self.__map[rid][2]: + lock_str = " [LOCKED]" + else: + lock_str = "" +@@ -127,9 +125,8 @@ class EnqMap(object): + def unlock(self, rid): + """Set the transaction lock for a given rid to False""" + if rid in self.__map: +- tup = self.__map[rid] +- if tup[2]: +- self.__map[rid] = (tup[0], tup[1], False) ++ if self.__map[rid][2]: ++ self.__map[rid][2] = False + else: + raise jerr.NotLockedError(rid) + else: +@@ -153,11 +150,20 @@ class TxnMap(object): + def add(self, fid, hdr): + """Add a new transactional record into the map""" + if isinstance(hdr, jrnl.DeqRec): +- self.__emap.lock(hdr.deq_rid) ++ try: ++ self.__emap.lock(hdr.deq_rid) ++ except jerr.JWarning: ++ # Not in emap, look for rid in tmap ++ l = self.find_rid(hdr.deq_rid, hdr.xid) ++ if l == None: ++ raise jerr.DequeueNonExistentEnqueueError(hdr.deq_rid) ++ if l[2]: ++ raise jerr.AlreadyLockedError(hdr.deq_rid) ++ l[2] = True + if hdr.xid in self.__map: +- self.__map[hdr.xid].append((fid, hdr)) # append to existing list ++ self.__map[hdr.xid].append([fid, hdr, False]) # append to existing list + else: +- self.__map[hdr.xid] = [(fid, hdr)] # create new list ++ self.__map[hdr.xid] = [[fid, hdr, False]] # create new list + + def contains(self, xid): + """Return True if the xid exists in the map; False otherwise""" +@@ -171,6 +177,18 @@ class TxnMap(object): + self._abort(hdr.xid) + else: + raise jerr.InvalidRecordTypeError("delete from TxnMap", hdr.magic, hdr.rid) ++ ++ def find_rid(self, rid, xid_hint = None): ++ """ Search for and return map list with supplied rid. If xid_hint is supplied, try that xid first""" ++ if xid_hint != None and self.contains(xid_hint): ++ for l in self.__map[xid_hint]: ++ if l[1].rid == rid: ++ return l ++ for xid in self.__map.iterkeys(): ++ if xid_hint == None or xid != xid_hint: ++ for l in self.__map[xid]: ++ if l[1].rid == rid: ++ return l + + def get(self, xid): + """Return a list of operations for the given xid""" +@@ -210,9 +228,9 @@ class TxnMap(object): + def _commit(self, xid): + """Perform a commit operation for the given xid record""" + mismatch_list = [] +- for fid, hdr in self.__map[xid]: +- if isinstance(hdr, jrnl.EnqRec): +- self.__emap.add(fid, hdr) # Transfer enq to emap ++ for fid, hdr, lock in self.__map[xid]: ++ if isinstance(hdr, jrnl.EnqRec): ++ self.__emap.add(fid, hdr, lock) # Transfer enq to emap + else: + if self.__emap.contains(hdr.deq_rid): + self.__emap.unlock(hdr.deq_rid) +diff --git a/tools/jerr.py b/tools/jerr.py +index 05fed9f..a0d3b2f 100644 +--- a/tools/jerr.py ++++ b/tools/jerr.py +@@ -63,6 +63,12 @@ class DeleteLockedRecordError(Exception): + """Constructor""" + Exception.__init__(self, "Deleting locked record from EnqMap: rid=0x%s" % rid) + ++class DequeueNonExistentEnqueueError(Exception): ++ """Error class for attempting to dequeue a non-existent enqueue record (rid)""" ++ def __init__(self, deq_rid): ++ """Constructor""" ++ Exception.__init__(self, "Dequeuing non-existent rnqueue record: rid=0x%s" % deq_rid) ++ + class DuplicateRidError(Exception): + """Error class for placing duplicate rid into enqueue map""" + def __init__(self, rid): +diff --git a/tools/resize b/tools/resize +index 631e798..e3fcd3e 100755 +--- a/tools/resize ++++ b/tools/resize +@@ -126,8 +126,8 @@ class Resize(object): + if self._opts.vflag and self._jrnl_reader.tmap().size() > 0: + print "* Assembling %d records from tmap" % self._jrnl_reader.tmap().size() + for xid in self._jrnl_reader.tmap().xids(): +- for tup in self._jrnl_reader.tmap().get(xid): +- hdr = tup[1] ++ for l in self._jrnl_reader.tmap().get(xid): ++ hdr = l[1] + hdr.flags &= ~jrnl.Hdr.OWI_MASK # Turn off owi + master_record_list[hdr.rid] = hdr + rid_list = master_record_list.keys() +diff --git a/tools/store_chk b/tools/store_chk +index c5faf92..262eebf 100755 +--- a/tools/store_chk ++++ b/tools/store_chk +@@ -84,11 +84,11 @@ class StoreChk(object): + rid_list = self.jrnl_rdr.emap().rids() + rid_list.sort() + for rid in rid_list: +- tup = self.jrnl_rdr.emap().get(rid) ++ l = self.jrnl_rdr.emap().get(rid) + locked = "" +- if tup[2]: ++ if l[2]: + locked += " (locked)" +- print " fid=%d %s%s" % (tup[0], tup[1], locked) ++ print " fid=%d %s%s" % (l[0], l[1], locked) + print "WARNING: Enqueue-Dequeue mismatch, %d enqueued records remain." % self.jrnl_rdr.emap().size() + else: + print "No remaining enqueued records found (emap empty)." +@@ -99,8 +99,8 @@ class StoreChk(object): + for xid in self.jrnl_rdr.tmap().xids(): + jrnl.Utils.format_xid(xid) + recs = self.jrnl_rdr.tmap().get(xid) +- for tup in recs: +- print " fid=%d %s" % (tup[0], tup[1]) ++ for l in recs: ++ print " fid=%d %s" % (l[0], l[1]) + print " Total: %d records for %s" % (len(recs), jrnl.Utils.format_xid(xid)) + print + txn_rec_cnt += len(recs) +-- +1.7.3.4 + +From 7eb54b7f02c545a1d5aabc775a6b70fdbe8389e4 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Fri, 13 Aug 2010 13:31:44 +0000 +Subject: [PATCH 19/24] Fix for BZ 624033 - "Store tools regression - "Dequeuing non-existent rnqueue record"" + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4209 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + tools/janal.py | 9 ++++----- + tools/jerr.py | 2 +- + 2 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/tools/janal.py b/tools/janal.py +index b722f4f..7293467 100644 +--- a/tools/janal.py ++++ b/tools/janal.py +@@ -155,11 +155,10 @@ class TxnMap(object): + except jerr.JWarning: + # Not in emap, look for rid in tmap + l = self.find_rid(hdr.deq_rid, hdr.xid) +- if l == None: +- raise jerr.DequeueNonExistentEnqueueError(hdr.deq_rid) +- if l[2]: +- raise jerr.AlreadyLockedError(hdr.deq_rid) +- l[2] = True ++ if l != None: ++ if l[2]: ++ raise jerr.AlreadyLockedError(hdr.deq_rid) ++ l[2] = True + if hdr.xid in self.__map: + self.__map[hdr.xid].append([fid, hdr, False]) # append to existing list + else: +diff --git a/tools/jerr.py b/tools/jerr.py +index a0d3b2f..813033c 100644 +--- a/tools/jerr.py ++++ b/tools/jerr.py +@@ -67,7 +67,7 @@ class DequeueNonExistentEnqueueError(Exception): + """Error class for attempting to dequeue a non-existent enqueue record (rid)""" + def __init__(self, deq_rid): + """Constructor""" +- Exception.__init__(self, "Dequeuing non-existent rnqueue record: rid=0x%s" % deq_rid) ++ Exception.__init__(self, "Dequeuing non-existent enqueue record: rid=0x%s" % deq_rid) + + class DuplicateRidError(Exception): + """Error class for placing duplicate rid into enqueue map""" +-- +1.7.3.4 + +From 8433e9525b81262f325acdf3bdb7f7402ac45874 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Wed, 18 Aug 2010 15:40:28 +0000 +Subject: [PATCH 20/24] BZ 614944 - "qpidd broker crash in mrg::msgstore::TxnCtxt::abort() -> DbTxn::abort()". Added additional exception handling for store BDB initialization in TxnCtxt::begin() after QE came across another unhandled case. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4212 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 2 ++ + lib/TxnCtxt.cpp | 11 +++++++++-- + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index 37456ea..a505861 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -354,6 +354,8 @@ void MessageStoreImpl::init() + } + QPID_LOG(error, "BDB exception occurred while initializing store: " << e.what()); + THROW_STORE_EXCEPTION_2("BDB exception occurred while initializing store", e); ++ } catch (const StoreException&) { ++ throw; + } catch (const journal::jexception& e) { + QPID_LOG(error, "Journal Exception occurred while initializing store: " << e); + THROW_STORE_EXCEPTION_2("Journal Exception occurred while initializing store", e.what()); +diff --git a/lib/TxnCtxt.cpp b/lib/TxnCtxt.cpp +index 1fcb0e0..e522d37 100644 +--- a/lib/TxnCtxt.cpp ++++ b/lib/TxnCtxt.cpp +@@ -74,7 +74,7 @@ TxnCtxt::TxnCtxt(IdSequence* _loggedtx) : loggedtx(_loggedtx), dtokp(new DataTok + + TxnCtxt::TxnCtxt(std::string _tid, IdSequence* _loggedtx) : loggedtx(_loggedtx), dtokp(new DataTokenImpl), preparedXidStorePtr(0), tid(_tid), txn(0) {} + +-TxnCtxt::~TxnCtxt() { if(txn) abort(); } ++TxnCtxt::~TxnCtxt() { abort(); } + + #define MAX_SYNC_SLEEPS 5000 // ~1 second + #define SYNC_SLEEP_TIME 200 // 0.2 ms +@@ -113,7 +113,14 @@ void TxnCtxt::sync_jrnl(JournalImpl* jc, bool firstloop, bool& allWritten) { + } + + void TxnCtxt::begin(DbEnv* env, bool sync) { +- env->txn_begin(0, &txn, 0); ++ int err; ++ try { err = env->txn_begin(0, &txn, 0); } ++ catch (const DbException&) { txn = 0; throw; } ++ if (err != 0) { ++ std::ostringstream oss; ++ oss << "Error: Env::txn_begin() returned error code: " << err; ++ THROW_STORE_EXCEPTION(oss.str()); ++ } + if (sync) + globalHolder = AutoScopedLock(new qpid::sys::Mutex::ScopedLock(globalSerialiser)); + } +-- +1.7.3.4 + +From a87f07db6ef9ec869777dc9e8bedf54fb1568225 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Thu, 12 Aug 2010 19:58:56 +0000 +Subject: [PATCH 21/24] Fix for BZ620742 - "Qpid starts with faulty value --num-jfiles 1". + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4205 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index a505861..1cce89b 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -478,11 +478,11 @@ void MessageStoreImpl::create(PersistableQueue& queue, + + value = args.get("qpid.file_count"); + if (value.get() != 0 && !value->empty() && value->convertsTo()) +- localFileCount = (u_int16_t) value->get(); ++ localFileCount = chkJrnlNumFilesParam((u_int16_t) value->get(), "qpid.file_count"); + + value = args.get("qpid.file_size"); + if (value.get() != 0 && !value->empty() && value->convertsTo()) +- localFileSizeSblks = (u_int32_t) value->get() * JRNL_RMGR_PAGE_SIZE; ++ localFileSizeSblks = chkJrnlFileSizeParam((u_int32_t) value->get(), "qpid.file_size") * JRNL_RMGR_PAGE_SIZE; + + if (queue.getName().size() == 0) + { +-- +1.7.3.4 + +From 831a21e6dd3206ecffcb16c8c20dccd820d63db6 Mon Sep 17 00:00:00 2001 +From: Kim van der Riet +Date: Thu, 30 Sep 2010 14:58:50 -0400 +Subject: [PATCH 22/24] Bug 632188 - Broker restart fails without removal of store directory. + +The old store was not being pushed down if "notice" level logging was disabled. +A broker trying to re-join an active cluster would fail to start with: + +Daemon startup failed: Exchange already exists: amq.topic (MessageStoreImpl.cpp:564) + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4363 06e15bec-b515-0410-bef0-cc27a458cf48 + +Conflicts: + + lib/MessageStoreImpl.cpp +--- + lib/MessageStoreImpl.cpp | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index 1cce89b..c1b61a1 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -48,7 +48,8 @@ using qpid::management::ManagementAgent; + namespace _qmf = qmf::com::redhat::rhm::store; + + const std::string MessageStoreImpl::storeTopLevelDir("rhm"); // Sets the top-level store dir name +-qpid::sys::Duration MessageStoreImpl::defJournalGetEventsTimeout(10 * qpid::sys::TIME_MSEC); // 10ms ++// FIXME aconway 2010-03-09: was 10 ++qpid::sys::Duration MessageStoreImpl::defJournalGetEventsTimeout(1 * qpid::sys::TIME_MSEC); // 10ms + qpid::sys::Duration MessageStoreImpl::defJournalFlushTimeout(500 * qpid::sys::TIME_MSEC); // 0.5s + qpid::sys::Mutex TxnCtxt::globalSerialiser; + +@@ -404,7 +405,8 @@ void MessageStoreImpl::truncateInit(const bool pushDownStoreFiles) + std::ostringstream oss; + oss << storeDir << "/" << storeTopLevelDir; + if (pushDownStoreFiles) { +- QPID_LOG(notice, "Store directory " << oss.str() << " was pushed down into directory " << mrg::journal::jdir::push_down(storeDir, storeTopLevelDir, "cluster") << "."); ++ string dir = mrg::journal::jdir::push_down(storeDir, storeTopLevelDir, "cluster"); ++ QPID_LOG(notice, "Store directory " << oss.str() << " was pushed down (saved) into directory " << dir << "."); + } else { + mrg::journal::jdir::delete_dir(oss.str().c_str()); + QPID_LOG(notice, "Store directory " << oss.str() << " was truncated."); +-- +1.7.3.4 + +From 21fa87eea11245bf8977f6fa2dbd01a0a2bac635 Mon Sep 17 00:00:00 2001 +From: kpvdr +Date: Wed, 1 Dec 2010 14:13:40 +0000 +Subject: [PATCH 23/24] Fix for BZ656385 "Data store can become corrupt with small store file size and large wcache-page-size". This is an undetected illegal combination of parameters, allowing the write cache to be larger than the journal file. Fixed by adding detection for this condition. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4418 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/MessageStoreImpl.cpp | 19 ++++++++++++++----- + lib/MessageStoreImpl.h | 6 ++++-- + 2 files changed, 18 insertions(+), 7 deletions(-) + +diff --git a/lib/MessageStoreImpl.cpp b/lib/MessageStoreImpl.cpp +index c1b61a1..2f31ecd 100644 +--- a/lib/MessageStoreImpl.cpp ++++ b/lib/MessageStoreImpl.cpp +@@ -96,7 +96,7 @@ u_int16_t MessageStoreImpl::chkJrnlNumFilesParam(const u_int16_t param, const st + return p; + } + +-u_int32_t MessageStoreImpl::chkJrnlFileSizeParam(const u_int32_t param, const std::string paramName) ++u_int32_t MessageStoreImpl::chkJrnlFileSizeParam(const u_int32_t param, const std::string paramName, const u_int32_t wCachePgSizeSblks) + { + u_int32_t p = param; + u_int32_t min = JRNL_MIN_FILE_SIZE / JRNL_RMGR_PAGE_SIZE; +@@ -108,10 +108,15 @@ u_int32_t MessageStoreImpl::chkJrnlFileSizeParam(const u_int32_t param, const st + p = max; + QPID_LOG(warning, "parameter " << paramName << " (" << param << ") is above allowable maximum (" << max << "); changing this parameter to maximum value."); + } ++ if (wCachePgSizeSblks > p * JRNL_RMGR_PAGE_SIZE) { ++ std::ostringstream oss; ++ oss << "Cannot create store with file size less than write page cache size. [file size = " << p << " (" << (p * JRNL_RMGR_PAGE_SIZE / 2) << " kB); write page cache = " << (wCachePgSizeSblks / 2) << " kB]"; ++ THROW_STORE_EXCEPTION(oss.str()); ++ } + return p; + } + +-u_int32_t MessageStoreImpl::chkJrnlWrPageCacheSize(const u_int32_t param, const std::string paramName) ++u_int32_t MessageStoreImpl::chkJrnlWrPageCacheSize(const u_int32_t param, const std::string paramName, const u_int16_t jrnlFsizePgs) + { + u_int32_t p = param; + switch (p) +@@ -124,6 +129,10 @@ u_int32_t MessageStoreImpl::chkJrnlWrPageCacheSize(const u_int32_t param, const + case 32: + case 64: + case 128: ++ if (jrnlFsizePgs == 1) { ++ p = 64; ++ QPID_LOG(warning, "parameter " << paramName << " (" << param << ") cannot set a page size greater than the journal file size; changing this parameter to the journal file size (" << p << ")"); ++ } + break; + default: + if (p == 0) { +@@ -245,10 +254,10 @@ bool MessageStoreImpl::init(const qpid::Options* options) + const StoreOptions* opts = static_cast(options); + u_int16_t numJrnlFiles = chkJrnlNumFilesParam(opts->numJrnlFiles, "num-jfiles"); + u_int32_t jrnlFsizePgs = chkJrnlFileSizeParam(opts->jrnlFsizePgs, "jfile-size-pgs"); +- u_int32_t jrnlWrCachePageSizeKib = chkJrnlWrPageCacheSize(opts->wCachePageSizeKib, "wcache-page-size"); ++ u_int32_t jrnlWrCachePageSizeKib = chkJrnlWrPageCacheSize(opts->wCachePageSizeKib, "wcache-page-size", jrnlFsizePgs); + u_int16_t tplNumJrnlFiles = chkJrnlNumFilesParam(opts->tplNumJrnlFiles, "tpl-num-jfiles"); + u_int32_t tplJrnlFSizePgs = chkJrnlFileSizeParam(opts->tplJrnlFsizePgs, "tpl-jfile-size-pgs"); +- u_int32_t tplJrnlWrCachePageSizeKib = chkJrnlWrPageCacheSize(opts->tplWCachePageSizeKib, "tpl-wcache-page-size"); ++ u_int32_t tplJrnlWrCachePageSizeKib = chkJrnlWrPageCacheSize(opts->tplWCachePageSizeKib, "tpl-wcache-page-size", tplJrnlFSizePgs); + bool autoJrnlExpand; + u_int16_t autoJrnlExpandMaxFiles; + chkJrnlAutoExpandOptions(opts, autoJrnlExpand, autoJrnlExpandMaxFiles, "auto-expand-max-jfiles", numJrnlFiles, "num-jfiles"); +@@ -484,7 +493,7 @@ void MessageStoreImpl::create(PersistableQueue& queue, + + value = args.get("qpid.file_size"); + if (value.get() != 0 && !value->empty() && value->convertsTo()) +- localFileSizeSblks = chkJrnlFileSizeParam((u_int32_t) value->get(), "qpid.file_size") * JRNL_RMGR_PAGE_SIZE; ++ localFileSizeSblks = chkJrnlFileSizeParam((u_int32_t) value->get(), "qpid.file_size", wCachePgSizeSblks) * JRNL_RMGR_PAGE_SIZE; + + if (queue.getName().size() == 0) + { +diff --git a/lib/MessageStoreImpl.h b/lib/MessageStoreImpl.h +index 99d8ed2..aabefc6 100644 +--- a/lib/MessageStoreImpl.h ++++ b/lib/MessageStoreImpl.h +@@ -161,9 +161,11 @@ class MessageStoreImpl : public qpid::broker::MessageStore, public qpid::managem + static u_int16_t chkJrnlNumFilesParam(const u_int16_t param, + const std::string paramName); + static u_int32_t chkJrnlFileSizeParam(const u_int32_t param, +- const std::string paramName); ++ const std::string paramName, ++ const u_int32_t wCachePgSizeSblks = 0); + static u_int32_t chkJrnlWrPageCacheSize(const u_int32_t param, +- const std::string paramName); ++ const std::string paramName, ++ const u_int16_t jrnlFsizePgs); + static u_int16_t getJrnlWrNumPages(const u_int32_t wrPageSizeKib); + void chkJrnlAutoExpandOptions(const MessageStoreImpl::StoreOptions* opts, + bool& autoJrnlExpand, +-- +1.7.3.4 + +From ce91ccbdb5756712407e683c7581c0d321f9d6c6 Mon Sep 17 00:00:00 2001 +From: tedross +Date: Wed, 10 Nov 2010 00:46:08 +0000 +Subject: [PATCH 24/24] Re-generated qmf files. + +git-svn-id: https://svn.jboss.org/repos/rhmessaging/store/trunk/cpp@4412 06e15bec-b515-0410-bef0-cc27a458cf48 +--- + lib/gen/qmf/com/redhat/rhm/store/Journal.cpp | 16 ++++++++++++---- + lib/gen/qmf/com/redhat/rhm/store/Journal.h | 6 ++++-- + lib/gen/qmf/com/redhat/rhm/store/Store.cpp | 4 ++-- + lib/gen/qmf/com/redhat/rhm/store/Store.h | 6 ++++-- + 4 files changed, 22 insertions(+), 10 deletions(-) + +diff --git a/lib/gen/qmf/com/redhat/rhm/store/Journal.cpp b/lib/gen/qmf/com/redhat/rhm/store/Journal.cpp +index 1e95f4a..599599b 100644 +--- a/lib/gen/qmf/com/redhat/rhm/store/Journal.cpp ++++ b/lib/gen/qmf/com/redhat/rhm/store/Journal.cpp +@@ -689,7 +689,7 @@ void Journal::writeStatistics (std::string& _sBuf, bool skipHeaders) + buf.getRawData(_sBuf, _bufLen); + } + +-void Journal::doMethod (string& methodName, const string& inStr, string& outStr) ++void Journal::doMethod (string& methodName, const string& inStr, string& outStr, const string& userId) + { + Manageable::status_t status = Manageable::STATUS_UNKNOWN_METHOD; + std::string text; +@@ -709,7 +709,11 @@ void Journal::doMethod (string& methodName, const string& inStr, string& outStr) + _matched = true; + ArgsJournalExpand ioArgs; + ioArgs.i_by = inBuf.getLong(); +- status = coreObject->ManagementMethod (METHOD_EXPAND, ioArgs, text); ++ bool allow = coreObject->AuthorizeMethod(METHOD_EXPAND, ioArgs, userId); ++ if (allow) ++ status = coreObject->ManagementMethod (METHOD_EXPAND, ioArgs, text); ++ else ++ status = Manageable::STATUS_FORBIDDEN; + outBuf.putLong (status); + outBuf.putMediumString(::qpid::management::Manageable::StatusText (status, text)); + } +@@ -868,7 +872,7 @@ void Journal::mapDecodeValues (const ::qpid::types::Variant::Map& _map) + + } + +-void Journal::doMethod (string& methodName, const ::qpid::types::Variant::Map& inMap, ::qpid::types::Variant::Map& outMap) ++void Journal::doMethod (string& methodName, const ::qpid::types::Variant::Map& inMap, ::qpid::types::Variant::Map& outMap, const string& userId) + { + Manageable::status_t status = Manageable::STATUS_UNKNOWN_METHOD; + std::string text; +@@ -880,7 +884,11 @@ void Journal::doMethod (string& methodName, const ::qpid::types::Variant::Map& i + if ((_i = inMap.find("by")) != inMap.end()) { + ioArgs.i_by = _i->second; + } +- status = coreObject->ManagementMethod (METHOD_EXPAND, ioArgs, text); ++ bool allow = coreObject->AuthorizeMethod(METHOD_EXPAND, ioArgs, userId); ++ if (allow) ++ status = coreObject->ManagementMethod (METHOD_EXPAND, ioArgs, text); ++ else ++ status = Manageable::STATUS_FORBIDDEN; + outMap["_status_code"] = (uint32_t) status; + outMap["_status_text"] = ::qpid::management::Manageable::StatusText(status, text); + return; +diff --git a/lib/gen/qmf/com/redhat/rhm/store/Journal.h b/lib/gen/qmf/com/redhat/rhm/store/Journal.h +index f64214a..18e861d 100644 +--- a/lib/gen/qmf/com/redhat/rhm/store/Journal.h ++++ b/lib/gen/qmf/com/redhat/rhm/store/Journal.h +@@ -134,7 +134,8 @@ class Journal : public ::qpid::management::ManagementObject + void mapDecodeValues(const ::qpid::types::Variant::Map& map); + void doMethod(std::string& methodName, + const ::qpid::types::Variant::Map& inMap, +- ::qpid::types::Variant::Map& outMap); ++ ::qpid::types::Variant::Map& outMap, ++ const std::string& userId); + std::string getKey() const; + + uint32_t writePropertiesSize() const; +@@ -143,7 +144,8 @@ class Journal : public ::qpid::management::ManagementObject + void writeStatistics(std::string& buf, bool skipHeaders = false); + void doMethod(std::string& methodName, + const std::string& inBuf, +- std::string& outBuf); ++ std::string& outBuf, ++ const std::string& userId); + + + writeSchemaCall_t getWriteSchemaCall() { return writeSchema; } +diff --git a/lib/gen/qmf/com/redhat/rhm/store/Store.cpp b/lib/gen/qmf/com/redhat/rhm/store/Store.cpp +index 1cf32a3..4027621 100644 +--- a/lib/gen/qmf/com/redhat/rhm/store/Store.cpp ++++ b/lib/gen/qmf/com/redhat/rhm/store/Store.cpp +@@ -452,7 +452,7 @@ void Store::writeStatistics (std::string& _sBuf, bool skipHeaders) + buf.getRawData(_sBuf, _bufLen); + } + +-void Store::doMethod (string&, const string&, string& outStr) ++void Store::doMethod (string&, const string&, string& outStr, const string&) + { + Manageable::status_t status = Manageable::STATUS_UNKNOWN_METHOD; + std::string text; +@@ -580,7 +580,7 @@ void Store::mapDecodeValues (const ::qpid::types::Variant::Map& _map) + + } + +-void Store::doMethod (string&, const ::qpid::types::Variant::Map&, ::qpid::types::Variant::Map& outMap) ++void Store::doMethod (string&, const ::qpid::types::Variant::Map&, ::qpid::types::Variant::Map& outMap, const string&) + { + Manageable::status_t status = Manageable::STATUS_UNKNOWN_METHOD; + std::string text; +diff --git a/lib/gen/qmf/com/redhat/rhm/store/Store.h b/lib/gen/qmf/com/redhat/rhm/store/Store.h +index 7c050b5..20dced2 100644 +--- a/lib/gen/qmf/com/redhat/rhm/store/Store.h ++++ b/lib/gen/qmf/com/redhat/rhm/store/Store.h +@@ -104,7 +104,8 @@ class Store : public ::qpid::management::ManagementObject + void mapDecodeValues(const ::qpid::types::Variant::Map& map); + void doMethod(std::string& methodName, + const ::qpid::types::Variant::Map& inMap, +- ::qpid::types::Variant::Map& outMap); ++ ::qpid::types::Variant::Map& outMap, ++ const std::string& userId); + std::string getKey() const; + + uint32_t writePropertiesSize() const; +@@ -113,7 +114,8 @@ class Store : public ::qpid::management::ManagementObject + void writeStatistics(std::string& buf, bool skipHeaders = false); + void doMethod(std::string& methodName, + const std::string& inBuf, +- std::string& outBuf); ++ std::string& outBuf, ++ const std::string& userId); + + + writeSchemaCall_t getWriteSchemaCall() { return writeSchema; } +-- +1.7.3.4 + diff --git a/rpms/awips2.qpid/SPECS/qpid-cpp-mrg.spec b/rpms/awips2.qpid/SPECS/qpid-cpp-mrg.spec new file mode 100644 index 0000000000..d29a8bcf12 --- /dev/null +++ b/rpms/awips2.qpid/SPECS/qpid-cpp-mrg.spec @@ -0,0 +1,1493 @@ +# Modified to remove packages unnecessary for A2, updated paths, and changed package names. + +# +# Spec file for Qpid C++ packages: qpid-cpp-server*, qpid-cpp-client* and qmf +# svn revision: $Rev$ +# + +%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +#%{!?ruby_sitelib: %define ruby_sitelib %(/usr/bin/ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"] ')} +#%{!?ruby_sitearch: %define ruby_sitearch %(/usr/bin/ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')} + +# =========== +# The following section controls which rpms are produced for which builds. +# * To set the following flags, assign the value 1 for true; 0 for false. +# * These rpms produced by these two flags are mutually exclusive - ie they +# won't duplicate any of the rpms. +# RHEL-6: +# * MRG_core is for building only RHEL-6 OS core components . +# * MRG_non_core is for building only RHEL-6 MRG product components. +# All other OSs (RHEL4/5/Fedora): +# * The MRG product is entirely external to the OS. +# * Set both MRG_core and MRG_non_core to true. +%define MRG_core 1 +%define MRG_non_core 0 + +# Release numbers +%define qpid_release 0.7 +%define qpid_svnrev 946106 +%define store_svnrev 3975 +%define dist .11.9 + +# NOTE: these flags should not both be set at the same time! +# RHEL-6 builds should have all flags set to 0. +# Set fedora to 1 for Fedora builds that use so_number.patch +%define fedora 0 +# Set rhel_4 to 1 for RHEL-4 builds +%define rhel_4 0 +# Set rhel_5 to 1 for RHEL-5 builds +%define rhel_5 1 + +# LIBRARY VERSIONS +# these should be updated every time we release these packages to customers +%global QPIDCOMMON_VERSION_INFO 4:0:0 +%global QPIDTYPES_VERSION_INFO 2:1:1 +%global QPIDBROKER_VERSION_INFO 4:0:0 +%global QPIDCLIENT_VERSION_INFO 4:0:0 +%global QPIDMESSAGING_VERSION_INFO 3:2:0 +%global QMF_VERSION_INFO 3:0:0 +%global QMFENGINE_VERSION_INFO 3:0:0 +%global QMFCONSOLE_VERSION_INFO 4:0:0 +%global RDMAWRAP_VERSION_INFO 4:0:0 +%global SSLCOMMON_VERSION_INFO 4:0:0 + +# Single var with all lib version params (except store) for make +%global LIB_VERSION_MAKE_PARAMS QPIDCOMMON_VERSION_INFO=%{QPIDCOMMON_VERSION_INFO} QPIDTYPES_VERSION_INFO=%{QPIDTYPES_VERSION_INFO} QPIDBROKER_VERSION_INFO=%{QPIDBROKER_VERSION_INFO} QPIDCLIENT_VERSION_INFO=%{QPIDCLIENT_VERSION_INFO} QPIDMESSAGING_VERSION_INFO=%{QPIDMESSAGING_VERSION_INFO} QMF_VERSION_INFO=%{QMF_VERSION_INFO} QMFENGINE_VERSION_INFO=%{QMFENGINE_VERSION_INFO} QMFCONSOLE_VERSION_INFO=%{QMFCONSOLE_VERSION_INFO} RDMAWRAP_VERSION_INFO=%{RDMAWRAP_VERSION_INFO} SSLCOMMON_VERSION_INFO=%{SSLCOMMON_VERSION_INFO} + +# =========== + +# Note: if the mix is changed between MRG_core and MRG_non_core, then +# the files that will be removed at the end of the install section will +# need to be adjusted (moved from one section to the other). +%define client %{MRG_core} +%define server %{MRG_core} +%define qmf %{MRG_core} +%define client_devel %{MRG_core} +%define client_devel_docs %{MRG_core} +%define server_devel %{MRG_core} +%define qmf_devel %{MRG_core} +%define server_store %{MRG_core} +%define client_rdma %{MRG_non_core} +%define server_rdma %{MRG_non_core} +%define client_ssl %{MRG_non_core} +%define server_ssl %{MRG_non_core} +%define server_xml %{MRG_non_core} +%define server_cluster %{MRG_non_core} +%define ruby_qmf %{MRG_non_core} +%define rh_tests %{MRG_non_core} + +%define selinux 0 + +%define name qpid-cpp-mrg +%define _prefix /awips2/qpid +%define _localstatedir %{_prefix}/var +%define _sysconfdir %{_prefix}/etc +%define _initrddir /etc/rc.d/init.d + +# This overrides the package name - do not change this! It keeps all package +# names consistent, irrespective of the {name} variable - which changes for +# core and non-core builds. +%define pkg_name awips2-qpid + +Name: %{name} +Version: %{qpid_release}.%{qpid_svnrev} +Release: 32%{?dist} +Summary: Libraries for Qpid C++ client applications +Group: AWIPSII +License: ASL 2.0 +URL: http://qpid.apache.org +Prefix: /awips2/qpid +Source0: %{name}-%{version}.tar.gz +Source1: store-%{qpid_release}.%{store_svnrev}.tar.gz +%if ! %{rhel_4} +Source2: qpidd.pp +%endif +# new binary files we need to include until next rebase +Source3: qpid-icon.ico +Source4: qpid.snk +Source5: qpidd.conf +Source6: qpidd +Source7: developer_qpid +Source8: queueCreator.sh + +%if %{fedora} +Patch0: so_number.patch +%endif + +%if %{rhel_4} +Patch0: RHEL4_SASL_Conf.patch +Patch1: qpidd.patch +Patch2: bz530364-rhel4.patch +%endif + +Patch5: mrg_1.3.x.patch +Patch6: store_1.3.x.patch + + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +ExclusiveArch: i386 x86_64 +Vendor: Red Hat, Inc. + +BuildRequires: boost-devel +BuildRequires: doxygen +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: ruby +BuildRequires: ruby-devel +BuildRequires: python +BuildRequires: python-devel +BuildRequires: cyrus-sasl-devel +%if ! %{rhel_4} +BuildRequires: cyrus-sasl-lib +%endif +BuildRequires: cyrus-sasl +BuildRequires: libibverbs-devel +%if ! %{rhel_4} +BuildRequires: librdmacm-devel +%endif +BuildRequires: nss-devel +BuildRequires: nspr-devel +%if %{server_xml} +BuildRequires: xqilla-devel +BuildRequires: xerces-c-devel +%endif +BuildRequires: swig +BuildRequires: db4-devel +BuildRequires: libaio-devel +%if %{rhel_4} || %{rhel_5} +BuildRequires: e2fsprogs-devel +%if %{rhel_5} +BuildRequires: openais-devel +BuildRequires: cman-devel +%endif +%else +BuildRequires: boost-program-options +BuildRequires: boost-filesystem +BuildRequires: libuuid-devel +BuildRequires: corosynclib-devel >= 1.0.0-1 +BuildRequires: clusterlib-devel >= 3.0.0-20 +%endif + + +%description + +Run-time libraries for AMQP client applications developed using Qpid +C++. Clients exchange messages with an AMQP message broker using +the AMQP protocol. + +# === Package: qpid-cpp-client === + +%if %{client} + +%package -n %{pkg_name}-client +Summary: Libraries for Qpid C++ client applications +Group: AWIPSII +Requires: boost +Obsoletes: qpidc + +Requires(preun):/sbin/service +Requires(postun):/sbin/service + +%description -n %{pkg_name}-client +Run-time libraries for AMQP client applications developed using Qpid +C++. Clients exchange messages with an AMQP message broker using +the AMQP protocol. + +%files -n %{pkg_name}-client +%defattr(-,awips,fxalpha,-) +%doc cpp/LICENSE cpp/NOTICE cpp/README cpp/INSTALL cpp/RELEASE_NOTES cpp/DESIGN +%_libdir/libqpidcommon.so.* +%_libdir/libqpidclient.so.* +%_libdir/libqpidmessaging.so.* +%_libdir/libqpidtypes.so.* +#%dir %_libdir/qpid +#%dir %_libdir/qpid/client +#%dir %_sysconfdir/qpid +#%config(noreplace) %_sysconfdir/qpid/qpidc.conf + +%endif + +# === Package: qpid-cpp-client-devel === + +%if %{client_devel} + +%package -n %{pkg_name}-client-devel +Summary: Header files, documentation and testing tools for developing Qpid C++ clients +Group: AWIPSII +Requires: %{pkg_name}-client = %version-%release +Requires: boost-devel +%if %{rhel_5} || %{rhel_4} +Requires: e2fsprogs-devel +%else +Requires: boost-filesystem +Requires: boost-program-options +Requires: libuuid-devel +%endif +Requires: python +Obsoletes: qpidc-devel +Obsoletes: qpidc-perftest + +%description -n %{pkg_name}-client-devel +Libraries, header files and documentation for developing AMQP clients +in C++ using Qpid. Qpid implements the AMQP messaging specification. + +%files -n %{pkg_name}-client-devel +%defattr(-,awips,fxalpha,-) +%dir %_includedir/qpid +%_includedir/qpid/*.h +%_includedir/qpid/amqp_0_10 +%_includedir/qpid/client +%_includedir/qpid/console +%_includedir/qpid/framing +%_includedir/qpid/sys +%_includedir/qpid/log +%_includedir/qpid/management +%_includedir/qpid/messaging +%_includedir/qpid/agent +%_includedir/qpid/types +%if %{rhel_4} +%_includedir/qpid-boost +%endif +%_includedir/qmf +%_libdir/libqpidcommon.so +%_libdir/libqpidclient.so +%_libdir/libqpidmessaging.so +%_libdir/libqpidtypes.so +%_datadir/qpidc/examples/messaging +%defattr(755,awips,fxalpha,-) +%_bindir/qpid-perftest +%_bindir/qpid-topic-listener +%_bindir/qpid-topic-publisher +%_bindir/qpid-latency-test +%_bindir/qpid-client-test +%_bindir/qpid-txtest + +%endif + +# === Package: qpid-cpp-client-devel-docs === + +%if %{client_devel_docs} + +%package -n %{pkg_name}-client-devel-docs +Summary: AMQP client development documentation +Group: AWIPSII +%if ! %{rhel_5} && ! %{rhel_4} +BuildArch: noarch +%endif +Obsoletes: qpidc-devel-docs + + +%description -n %{pkg_name}-client-devel-docs +This package includes the AMQP clients development documentation in HTML +format for easy browsing. + +%files -n %{pkg_name}-client-devel-docs +%defattr(-,awips,fxalpha,-) +%doc cpp/docs/api/html + +%endif + +# === Package: qpid-cpp-server === + +%if %{server} + +%package -n %{pkg_name}-server +Summary: An AMQP message broker daemon +Group: AWIPSII +Requires: %{pkg_name}-client = %version-%release +Requires: cyrus-sasl +%if %{selinux} +Requires(pre): selinux-policy-base +Requires(post): /usr/sbin/semodule +Requires(postun): /usr/sbin/semodule +%endif +provides: awips2-base-component +Obsoletes: qpidd +Obsoletes: qpidd-acl + +%description -n %{pkg_name}-server +A message broker daemon that receives stores and routes messages using +the open AMQP messaging protocol. + +%files -n %{pkg_name}-server +%defattr(-,awips,fxalpha,-) +%if %{selinux} +%_datadir/selinux/packages/qpidd.pp +%endif +%_libdir/libqpidbroker.so.* +%_libdir/qpid/daemon/replicating_listener.so +%_libdir/qpid/daemon/replication_exchange.so +%_sbindir/qpidd +%_sbindir/developer_qpid +%_sbindir/queueCreator.sh +%config(noreplace) %_sysconfdir/qpidd.conf +%if %{rhel_4} +%config(noreplace) %_libdir/sasl2/qpidd.conf +%else +#%config(noreplace) %_sysconfdir/sasl2/qpidd.conf +%endif +%{_initrddir}/qpidd +%dir %_libdir/qpid/daemon +%_libdir/qpid/daemon/acl.so +%attr(755, awips, fxalpha) %_localstatedir/lib/qpidd +%attr(755, awips, fxalpha) %_localstatedir/run/qpidd +%dir %_localstatedir/log +%dir %_prefix/data +%dir %_localstatedir/lock/subsys +#%attr(600, awips, fxalpha) %config(noreplace) %_localstatedir/lib/qpidd/qpidd.sasldb +%doc %_mandir/man1/qpidd.* + +%pre -n %{pkg_name}-server + +%post -n %{pkg_name}-server +# This adds the proper /etc/rc*.d links for the script +/sbin/ldconfig +%if %{selinux} +/usr/sbin/semodule -i %_datadir/selinux/packages/qpidd.pp +%endif +chown -R awips:fxalpha %{_prefix} + +%preun -n %{pkg_name}-server +# Check that this is actual deinstallation, not just removing for upgrade. +if [ $1 = 0 ]; then + /sbin/service qpidd stop >/dev/null 2>&1 || : +fi + +%postun -n %{pkg_name}-server +if [ $1 -ge 1 ]; then + /sbin/service qpidd condrestart >/dev/null 2>&1 || : +fi +/sbin/ldconfig +%if %{selinux} +if [ $1 = 0 ]; then + /usr/sbin/semodule -r qpidd +fi +%endif + +%endif + +# === Package: qpid-cpp-server-devel === + +%if %{server_devel} + +%package -n %{pkg_name}-server-devel +Summary: Libraries and header files for developing Qpid broker extensions +Group: AWIPSII +Requires: %{pkg_name}-client-devel = %version-%release +Requires: %{pkg_name}-server = %version-%release +Requires: boost-devel +%if ! %{rhel_5} && ! %{rhel_4} +Requires: boost-filesystem +Requires: boost-program-options +%endif +Obsoletes: qpidd-devel + +%description -n %{pkg_name}-server-devel +Libraries and header files for developing extensions to the +Qpid broker daemon. + +%files -n %{pkg_name}-server-devel +%defattr(-,awips,root,-) +%defattr(-,awips,fxalpha,-) +%_libdir/libqpidbroker.so +%_includedir/qpid/broker + +%endif + +# === Package: qmf === + +%if %{qmf} + +%package -n qmf +Summary: The QPID Management Framework +Group: AWIPSII +Requires: %{pkg_name}-client = %version-%release + +%description -n qmf +An extensible managememt framework layered on QPID messaging. + +%files -n qmf +%defattr(-,awips,fxalpha,-) +%_libdir/libqmf.so.* +%_libdir/libqmfengine.so.* +%_libdir/libqmfconsole.so.* + +%post -n qmf +/sbin/ldconfig + +%postun -n qmf +/sbin/ldconfig + +%endif + +# === Package: qmf-devel === + +%if %{qmf_devel} + +%package -n qmf-devel +Summary: Header files and tools for developing QMF extensions +Group: AWIPSII +Requires: qmf = %version-%release +Requires: %{pkg_name}-client-devel = %version-%release + +%description -n qmf-devel +Header files and code-generation tools needed for developers of QMF-managed +components. + +%files -n qmf-devel +%defattr(-,awips,fxalpha,-) +%_libdir/libqmf.so +%_libdir/libqmfengine.so +%_libdir/libqmfconsole.so +%_bindir/qmf-gen +#%{python_sitelib}/qmfgen + +%endif + +# === Package: ruby-qmf === + +%if %{ruby_qmf} && ! %{rhel_4} + +%package -n ruby-qmf +Summary: The QPID Management Framework bindings for ruby +Group: AWIPSII +Requires: %{pkg_name}-client = %version-%release + +%description -n ruby-qmf +An extensible managememt framework layered on QPID messaging, bindings +for ruby. + +%files -n ruby-qmf +%defattr(-,awips,fxalpha,-) +%{ruby_sitelib}/qmf.rb +%{ruby_sitearch}/qmfengine.so + +%endif + +# === Package: qpid-cpp-client-rdma === + +%if %{client_rdma} && ! %{rhel_4} + +%package -n %{pkg_name}-client-rdma +Summary: RDMA Protocol support (including Infiniband) for Qpid clients +Group: AWIPSII +Requires: %{pkg_name}-client = %version-%release +Obsoletes: qpidc-rdma + +%description -n %{pkg_name}-client-rdma +A client plugin and support library to support RDMA protocols (including +Infiniband) as the transport for Qpid messaging. + +%files -n %{pkg_name}-client-rdma +%defattr(-,awips,fxalpha,-) +%_libdir/librdmawrap.so.* +%_libdir/qpid/client/rdmaconnector.so +%config(noreplace) %_sysconfdir/qpid/qpidc.conf + +%post -n %{pkg_name}-client-rdma +/sbin/ldconfig + +%postun -n %{pkg_name}-client-rdma +/sbin/ldconfig + +%endif + +# === Package: qpid-cpp-server-rdma === + +%if %{server_rdma} && ! %{rhel_4} + +%package -n %{pkg_name}-server-rdma +Summary: RDMA Protocol support (including Infiniband) for the Qpid daemon +Group: AWIPSII +Requires: %{pkg_name}-server = %version-%release +Requires: %{pkg_name}-client-rdma = %version-%release +Obsoletes: qpidd-rdma + +%description -n %{pkg_name}-server-rdma +A Qpid daemon plugin to support RDMA protocols (including Infiniband) as the +transport for AMQP messaging. + +%files -n %{pkg_name}-server-rdma +%defattr(-,awips,fxalpha,-) +%_libdir/qpid/daemon/rdma.so + +%endif + +# === Package: qpid-cpp-client-ssl === + +%if %{client_ssl} + +%package -n %{pkg_name}-client-ssl +Summary: SSL support for Qpid clients +Group: AWIPSII +Requires: %{pkg_name}-client = %version-%release +Obsoletes: qpidc-ssl + +%description -n %{pkg_name}-client-ssl +A client plugin and support library to support SSL as the transport +for Qpid messaging. + +%files -n %{pkg_name}-client-ssl +%defattr(-,awips,fxalpha,-) +%_libdir/libsslcommon.so.* +%_libdir/qpid/client/sslconnector.so + +%post -n %{pkg_name}-client-ssl +/sbin/ldconfig + +%postun -n %{pkg_name}-client-ssl +/sbin/ldconfig + +%endif + +# === Package: qpid-cpp-server-ssl === + +%if %{server_ssl} + +%package -n %{pkg_name}-server-ssl +Summary: SSL support for the Qpid daemon +Group: AWIPSII +Requires: %{pkg_name}-server = %version-%release +Requires: %{pkg_name}-client-ssl = %version-%release +Obsoletes: qpidd-ssl + +%description -n %{pkg_name}-server-ssl +A Qpid daemon plugin to support SSL as the transport for AMQP +messaging. + +%files -n %{pkg_name}-server-ssl +%defattr(-,awips,fxalpha,-) +%_libdir/qpid/daemon/ssl.so + +%endif + +# === Package: qpid-cpp-server-xml === + +%if %{server_xml} + +%package -n %{pkg_name}-server-xml +Summary: XML extensions for the Qpid daemon +Group: AWIPSII +Requires: %{pkg_name}-server = %version-%release +Requires: xqilla +Requires: xerces-c +Obsoletes: qpidd-xml + +%description -n %{pkg_name}-server-xml +A Qpid daemon plugin to support extended XML-based routing of AMQP +messages. + +%files -n %{pkg_name}-server-xml +%defattr(-,awips,fxalpha,-) +%_libdir/qpid/daemon/xml.so + +%endif + +# === Package: qpid-cpp-server-cluster === + +%if %{server_cluster} && ! %{rhel_4} + +%package -n %{pkg_name}-server-cluster +Summary: Cluster support for the Qpid daemon +Group: AWIPSII +Requires: %{pkg_name}-server = %version-%release +Requires: %{pkg_name}-client = %version-%release +Requires: openais +Requires: cman +Obsoletes: qpidd-cluster + +%description -n %{pkg_name}-server-cluster +A Qpid daemon plugin enabling broker clustering using openais + +%files -n %{pkg_name}-server-cluster +%defattr(-,awips,fxalpha,-) +%_libdir/qpid/daemon/cluster.so +%_libdir/qpid/daemon/watchdog.so +%_libexecdir/qpid/qpidd_watchdog + + +%if %{rhel_5} +%post -n %{pkg_name}-server-cluster +# Make the qpidd user a member of the root group, and also make +# qpidd's primary group == ais. +usermod -g ais -G root qpidd +%endif + +%endif + +# === Package: qpid-cpp-server-store === + +%if %{server_store} + +%package -n %{pkg_name}-server-store +Summary: Red Hat persistence extension to the Qpid messaging system +Group: AWIPSII +License: LGPL 2.1+ +Requires: %{pkg_name}-server = %{qpid_release}.%{qpid_svnrev} +Requires: db4 +Requires: libaio +Obsoletes: rhm + +%description -n %{pkg_name}-server-store +Red Hat persistence extension to the Qpid AMQP broker: persistent message +storage using either a libaio-based asynchronous journal, or synchronously +with Berkeley DB. + +%files -n %{pkg_name}-server-store +%defattr(-,awips,fxalpha,-) +%doc ../store-%{qpid_release}.%{store_svnrev}/README +%_libdir/qpid/daemon/msgstore.so* +%_libexecdir/qpid/jerr.py* +%_libexecdir/qpid/jrnl.py* +%_libexecdir/qpid/janal.py* +%_libexecdir/qpid/resize +%_libexecdir/qpid/store_chk + +%attr(0775,awips,fxalpha) %dir %_localstatedir/rhm + +%endif + +# === Package: rh-qpid-cpp-tests === + +%if %{rh_tests} + +%package -n rh-%{pkg_name}-tests +Summary: Internal Red Hat test utilities +Group: AWIPSII +Requires: %{pkg_name}-client = %version-%release + +%description -n rh-%{pkg_name}-tests +Tools which can be used by Red Hat for doing different tests +in RHTS and other places and which customers do not need +to receive at all. + +%files -n rh-%{pkg_name}-tests +%defattr(755,awips,fxalpha,-) +/opt/rh-qpid/failover/run_failover_soak +/opt/rh-qpid/failover/failover_soak +/opt/rh-qpid/clients/declare_queues +/opt/rh-qpid/clients/replaying_sender +/opt/rh-qpid/clients/resuming_receiver +/opt/rh-qpid/clients/receiver +/opt/rh-qpid/clients/sender +/opt/rh-qpid/clients/qpid_receive +/opt/rh-qpid/clients/qpid_send + +%endif + +# === + +%prep +%setup -q -n %{name}-%{version} +%setup -q -T -D -b 1 -n %{name}-%{version} + +%if %{rhel_4} +# set up boost for rhel-4 +pushd ./cpp/boost-1.32-support +make apply +popd +pushd ../store-%{qpid_release}.%{store_svnrev}/rhel4-support +make apply +popd + +# apply rhel-4 patches +%patch0 +%patch1 +%patch2 + +%endif + +%if %{fedora} +%patch0 +%endif + +# apply qpid patch +%patch5 -p2 + +# these updates are due to patch being unable to deal with new files (permissions, binary) +# they need to stay here as long as we are using rev 946106 as the base +## need to make sure file gets execute permissions - patch is failing to provide it +chmod +x ./cpp/docs/man/generate_manpage +chmod +x ./cpp/src/tests/cluster_test_logs.py +## copy icon file into place +cp %{SOURCE3} ./cpp/src/windows/resources +cp %{SOURCE4} ./cpp/bindings/qpid/dotnet/src +cp %{SOURCE4} ./cpp/bindings/qpid/dotnet/src/sessionreceiver + +# apply store patch +pushd ../store-%{qpid_release}.%{store_svnrev} +%patch6 -p1 +popd + +%define perftests "qpid-perftest qpid-topic-listener qpid-topic-publisher qpid-latency-test qpid-client-test qpid-txtest" + +%define rh_qpid_tests_failover "failover_soak run_failover_soak" + +%define rh_qpid_tests_clients "replaying_sender resuming_receiver declare_queues sender receiver qpid_send qpid_receive" + +%if %{selinux} +install -d selinux +install %{SOURCE2} selinux +%endif + +cp %{SOURCE5} ./cpp/etc/qpidd.conf +cp %{SOURCE6} ./cpp/etc/qpidd # this is the /etc/init.d/script +cp %{SOURCE7} ./cpp/etc/developer_qpid +cp %{SOURCE8} ./cpp/etc/queueCreator.sh + +%build +pushd cpp +./bootstrap +%if %{rhel_4} +CXXFLAGS="%{optflags} -DNDEBUG -O3" \ +%configure --disable-static --without-cpg --without-graphviz --without-help2man --without-rdma +%else +CXXFLAGS="%{optflags} -DNDEBUG -O3" \ +%configure --disable-static --without-cpg --without-graphviz --without-help2man +%endif +ECHO=echo make %{LIB_VERSION_MAKE_PARAMS} + +# Make perftest utilities +pushd src/tests +for ptest in %{perftests}; do + ECHO=echo make $ptest +done + +# Make rh-qpid-test programs (RH internal) +%if %{rh_tests} +for rhtest in %{rh_qpid_tests_failover} %{rh_qpid_tests_clients}; do + make $rhtest +done + +# Patch run_failover_soak to make it work outside source tree +mv -f run_failover_soak run_failover_soak.orig +cat run_failover_soak.orig | sed -e "s#^src_root=..#src_root=/usr/sbin#" \ + -e "s#\$src_root/\.libs#%{_libdir}/qpid/daemon#" \ + -e "s#\`dirname \$0\`#../failover#" \ + -e "s#^exec #cd /opt/rh-qpid/clients; exec #" > run_failover_soak +%endif + +popd +popd + +# Store +pushd ../store-%{qpid_release}.%{store_svnrev} +%if %{rhel_4} +export CXXFLAGS="%{optflags} -DNDEBUG -I/usr/include/qpid-boost" +%else +export CXXFLAGS="%{optflags} -DNDEBUG" +%endif +./bootstrap +%configure --disable-static --disable-rpath --disable-dependency-tracking --with-qpid-checkout=%{_builddir}/%{name}-%{version} +make +popd + +%install +rm -rf %{buildroot} +mkdir -p -m0755 %{buildroot}/%_bindir +pushd %{_builddir}/%{name}-%{version}/cpp +make install DESTDIR=%{buildroot} +install -Dp -m0755 etc/qpidd %{buildroot}%{_initrddir}/qpidd +install -d -m0755 %{buildroot}%{_localstatedir}/lib/qpidd +install -d -m0755 %{buildroot}%_libdir/qpidd +install -d -m0755 %{buildroot}%{_localstatedir}/run/qpidd +install -Dp -m0755 etc/developer_qpid %{buildroot}%{_sbindir}/developer_qpid +install -Dp -m0755 etc/queueCreator.sh %{buildroot}%{_sbindir}/queueCreator.sh + +%if %{rhel_4} +# boost headers +install -d -m0755 %{buildroot}%_includedir/qpid-boost/boost +cp -pr src/boost/* %{buildroot}%_includedir/qpid-boost/boost +%endif +# Install perftest utilities +pushd src/tests/ +for ptest in %{perftests}; do + libtool --mode=install install -m755 $ptest %{buildroot}/%_bindir +done +%if %{rh_tests} +# Install rh-qpid-test programs (RH internal) +mkdir -p -m 0755 %{buildroot}/opt/rh-qpid/failover +mkdir -p -m 0755 %{buildroot}/opt/rh-qpid/clients +for rhtest in %{rh_qpid_tests_failover} ; do + libtool --mode=install install -m 755 $rhtest %{buildroot}/opt/rh-qpid/failover/ +done +for rhtest in %{rh_qpid_tests_clients} ; do + libtool --mode=install install -m 755 $rhtest %{buildroot}/opt/rh-qpid/clients/ +done +%endif + +mkdir -p -m 0755 %{buildroot}%_prefix/data +mkdir -p -m 0755 %{buildroot}%{_localstatedir}/log +mkdir -p -m 0755 %{buildroot}%{_localstatedir}/lock/subsys + +popd +pushd docs/api +make html +popd + + +# remove things we don't want to package +rm -f %{buildroot}%_libdir/*.a +rm -f %{buildroot}%_libdir/*.l +rm -f %{buildroot}%_libdir/*.la +%if ! %{rhel_4} +rm -f %{buildroot}%_libdir/librdmawrap.so +%endif +rm -f %{buildroot}%_libdir/libsslcommon.so +rm -f %{buildroot}%_libdir/qpid/client/*.la +rm -f %{buildroot}%_libdir/qpid/daemon/*.la + +# this should be fixed in the examples Makefile (make install) +rm -f %{buildroot}%_datadir/qpidc/examples/Makefile +rm -f %{buildroot}%_datadir/qpidc/examples/README.txt +rm -rf %{buildroot}%_datadir/qpidc/examples/direct +rm -rf %{buildroot}%_datadir/qpidc/examples/failover +rm -rf %{buildroot}%_datadir/qpidc/examples/fanout +rm -rf %{buildroot}%_datadir/qpidc/examples/pub-sub +rm -rf %{buildroot}%_datadir/qpidc/examples/qmf-console +rm -rf %{buildroot}%_datadir/qpidc/examples/request-response +rm -rf %{buildroot}%_datadir/qpidc/examples/tradedemo +rm -rf %{buildroot}%_datadir/qpidc/examples/xml-exchange + + +%if %{selinux} +install -d %{buildroot}%{_datadir}/selinux/packages +install -m 644 %{_builddir}/%{name}-%{version}/selinux/qpidd.pp %{buildroot}%{_datadir}/selinux/packages +%endif +%if %{ruby_qmf} +install -pm 644 %{_builddir}/%{name}-%{version}/cpp/bindings/qmf/ruby/qmf.rb %{buildroot}%{ruby_sitelib} +install -pm 755 %{_builddir}/%{name}-%{version}/cpp/bindings/qmf/ruby/.libs/qmfengine.so %{buildroot}%{ruby_sitearch} +%endif + +rm -f %{buildroot}%_libdir/_* +rm -fr %{buildroot}%_libdir/qpid/tests +rm -fr %{buildroot}%_libexecdir/qpid/tests +%if %{ruby_qmf} +rm -f %{buildroot}%{ruby_sitearch}/qmfengine.la +%endif +popd + +#Store +pushd %{_builddir}/store-%{qpid_release}.%{store_svnrev} +make install DESTDIR=%{buildroot} +install -d -m0775 %{buildroot}%{_localstatedir}/rhm +install -d -m0755 %{buildroot}%_libdir/qpid/daemon +rm -f %{buildroot}%_libdir/qpid/daemon/*.a +rm -f %{buildroot}%_libdir/qpid/daemon/*.la +rm -f %{buildroot}%_libdir/*.a +rm -f %{buildroot}%_libdir/*.la +rm -f %{buildroot}%_sysconfdir/rhmd.conf +popd + +%if ! %{selinux} +rm -f %{buildroot}%_datadir/selinux/packages/qpidd.pp +%endif + +rm -f %{buildroot}%_localstatedir/lib/qpidd/qpidd.sasldb +rm -f %{buildroot}%_sysconfdir/sasl2/qpidd.conf + +%if ! %{MRG_core} +rm -f %{buildroot}%_sysconfdir/qpidd.conf +rm -f %{buildroot}%_sysconfdir/rc.d/init.d/qpidd +%if ! %{rhel_4} +rm -f %{buildroot}%_sysconfdir/sasl2/qpidd.conf +%endif +rm -f %{buildroot}%_libdir/libqmf.so.* +rm -f %{buildroot}%_libdir/libqmfconsole.so.* +rm -f %{buildroot}%_libdir/libqmfengine.so.* +rm -f %{buildroot}%_libdir/libqpidbroker.so.* +rm -f %{buildroot}%_libdir/libqpidclient.so.* +rm -f %{buildroot}%_libdir/libqpidmessaging.so.* +rm -f %{buildroot}%_libdir/libqpidcommon.so.* +rm -f %{buildroot}%_libdir/libqpidtypes.so.* +rm -f %{buildroot}%_libdir/qpid/daemon/acl.so +rm -f %{buildroot}%_libdir/qpid/daemon/replicating_listener.so +rm -f %{buildroot}%_libdir/qpid/daemon/replication_exchange.so +rm -f %{buildroot}%_libdir/qpid/daemon/watchdog.so +rm -f %{buildroot}%_libexecdir/qpid/qpidd_watchdog +rm -f %{buildroot}%_sbindir/qpidd +rm -f %{buildroot}%_datadir/man/man1/qpidd.1 +# The following should be removed when -devel becomes part of non-core: +rm -rf %{buildroot}%_includedir/qmf +rm -rf %{buildroot}%_includedir/qpid +rm -rf %{buildroot}%_datadir/qpidc/examples/messaging +rm -f %{buildroot}%_bindir/qpid-perftest +rm -f %{buildroot}%_bindir/qpid-topic-listener +rm -f %{buildroot}%_bindir/qpid-topic-publisher +rm -f %{buildroot}%_bindir/qpid-latency-test +rm -f %{buildroot}%_bindir/qpid-client-test +rm -f %{buildroot}%_bindir/qpid-txtest +rm -f %{buildroot}%_bindir/qmf-gen +rm -f %{buildroot}%_libdir/libqmf.so +rm -f %{buildroot}%_libdir/libqmfconsole.so +rm -f %{buildroot}%_libdir/libqmfengine.so +rm -f %{buildroot}%_libdir/libqpidbroker.so +rm -f %{buildroot}%_libdir/libqpidclient.so +rm -f %{buildroot}%_libdir/libqpidmessaging.so +rm -f %{buildroot}%_libdir/libqpidcommon.so +rm -f %{buildroot}%_libdir/libqpidtypes.so +rm -f %{buildroot}%_libdir/qpid/daemon/msgstore.so +rm -f %{buildroot}%_libexecdir/qpid/jerr.py +rm -f %{buildroot}%_libexecdir/qpid/jrnl.py +rm -f %{buildroot}%_libexecdir/qpid/janal.py +rm -f %{buildroot}%_libexecdir/qpid/resize +rm -f %{buildroot}%_libexecdir/qpid/store_chk +%endif + +%if ! %{MRG_non_core} +# The following should be uncommented when -devel becomes a part of non-core: +#rm -rf %{buildroot}%_includedir/qmf +#rm -rf %{buildroot}%_includedir/qpid +#rm -rf %{buildroot}%_datadir/qpidc/examples/messaging +#rm -rf %{buildroot}%{python_sitelib}/qmfgen +#rm -f %{buildroot}%_bindir/perftest +#rm -f %{buildroot}%_bindir/topic_listener +#rm -f %{buildroot}%_bindir/topic_publisher +#rm -f %{buildroot}%_bindir/latencytest +#rm -f %{buildroot}%_bindir/client_test +#rm -f %{buildroot}%_bindir/txtest +#rm -f %{buildroot}%_bindir/qmf-gen +#rm -f %{buildroot}%_libdir/libqmf.so +#rm -f %{buildroot}%_libdir/libqmfconsole.so +#rm -f %{buildroot}%_libdir/libqmfengine.so +#rm -f %{buildroot}%_libdir/libqpidbroker.so +#rm -f %{buildroot}%_libdir/libqpidclient.so +#rm -f %{buildroot}%_libdir/libqpidmessaging.so +#rm -f %{buildroot}%_libdir/libqpidcommon.so +#rm -f %{buildroot}%_libdir/libqpidtypes.so +%if ! %{rhel_4} +rm -f %{buildroot}%_libdir/librdmawrap.so.* +rm -f %{buildroot}%_libdir/qpid/client/rdmaconnector.so +rm -f %{buildroot}%_libdir/qpid/daemon/rdma.so +%endif +%if ! %{ruby_qmf} +rm -f %{buildroot}%{ruby_sitelib}/qmf.rb +%endif +%if ! %{ruby_qmf} +rm -f %{buildroot}%{ruby_sitearch}/qmfengine.so +%endif +rm -f %{buildroot}%_libdir/libsslcommon.so.* +rm -f %{buildroot}%_libdir/qpid/client/sslconnector.so +rm -f %{buildroot}%_libdir/qpid/daemon/cluster.so +rm -f %{buildroot}%_libdir/qpid/daemon/ssl.so +rm -f %{buildroot}%_libdir/qpid/daemon/xml.so +rm -rf %{buildroot}%_sysconfdir/qpid/qpidc.conf + +%endif + +# don't install python qmf files +rm -rf %{buildroot}%_libdir/python* + +%clean +rm -rf %{buildroot} + +%check +#pushd %{_builddir}/%{name}-%{version}/cpp +# LANG=C needs to be in the environment to deal with a libtool issue +# temporarily disabling make check due to libtool issues +# needs to be re-enabled asap +#LANG=C ECHO=echo make check +#popd + +%ifarch i386 i586 i686 x86_64 +#RHM +#pushd %{_builddir}/store-%{qpid_release}.%{store_svnrev} +#make check +#popd +#/RHM +%endif + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%changelog +* Thu Feb 3 2011 Mike Cressman - 0.7.946106-28 +- 1.3.2 RC 2 build 2 +- BZs 656385,674183,674338 + +* Thu Jan 20 2011 Mike Cressman - 0.7.946106-27 +- 1.3.2 RC 2 build +- BZs 549670,614944,620742,632188,639994,640312,647719,654872, +- BZs 656385,658936,662765,667735,669343,669452 + +* Wed Jan 5 2011 Mike Cressman - 0.7.946106-26 +- 1.3.2 RC 1 build +- BZs 484691,500430,629892,631969,631973 + +* Thu Dec 9 2010 Mike Cressman - 0.7.946106-25 +- bugfix build with clustering fixes +- BZs 629756,648927,655141,655078 + +* Mon Nov 29 2010 Mike Cressman - 0.7.946106-24 +- second build to produce src rpm for .net RC build +- pulled out 647858 -- it's not supported in 1.3 C++ yet + +* Wed Nov 24 2010 Mike Cressman - 0.7.946106-23 +- build to produce src rpm for .net RC build +- BZs 647230,647858,648649,649733 + +* Tue Nov 16 2010 Mike Cressman - 0.7.946106-22 +- BZ 649822 + +* Fri Nov 12 2010 Mike Cressman - 0.7.946106-21 +- BZ 652463 + +* Thu Nov 11 2010 Mike Cressman - 0.7.946106-20 +- BZ 647861 - updates to the previous fix +- rev the library versions (types,broker,messaging) + +* Tue Nov 9 2010 Mike Cressman - 0.7.946106-19 +- BZs 620687,621468,631567,647860,647861,649733 + +* Fri Sep 24 2010 Mike Cressman - 0.7.946106-17 +- Release candidate build 4 +- BZ 636827 - store bug can crash the broker + +* Wed Sep 22 2010 Mike Cressman - 0.7.946106-16 +- Release candidate build 3 +- BZ 636262 + +* Wed Sep 15 2010 Mike Cressman - 0.7.946106-15 +- Release candidate build 2 +- BZ 633681 plus an rpmdiff fix in qmf compilation + +* Mon Sep 13 2010 Mike Cressman - 0.7.946106-14 +- Release candidate build 1 +- BZs 604688,630996,632349,632395 +- added receiver,sender,qpid_receive,qpid_send to rh-qpid-cpp-tests + +* Tue Sep 7 2010 Mike Cressman - 0.7.946106-13 +- intermediate test build +- BZs 621527,621571,621715,622699,623805,624714,625450,625541,626341,629035 + +* Thu Aug 12 2010 Mike Cressman - 0.7.946106-12 +- Beta 5 build 2 +- Messaging BZs 620418, 621998, 621666, 622422, 623511 +- Store BZs 614943, 620676, 622889, 623653 +- updated selinux policy - allow destroy of aixexec_t's + +* Mon Aug 2 2010 Mike Cressman - 0.7.946106-11 +- Beta 5 build 1 +- BZs 612535, 616489, 619166, 619765, 620402 + +* Mon Jul 26 2010 Mike Cressman - 0.7.946106-10 +- BZs 614857, 617281, 617357 + +* Wed Jul 21 2010 Mike Cressman - 0.7.946106-9 +- intermediate build, including missing windows icon file, plus: +- BZs 614861, 614854, 616072, plus some windows cleanup and a cluster race condition + +* Fri Jul 16 2010 Mike Cressman - 0.7.946106-7 +- Beta 4 build 3, including these BZs: +- 572984 588766 608807 609258 609682 609801 609803 610156 610493 610772 +- 611543 611847 612615 612682 612988 613216 613753 613912 614054 614344 +- add libqpidtypes +- new qpidd.pp selinux policy file (updated) + +* Tue Jun 29 2010 Mike Cressman - 0.7.946106-6 +- Beta 4 build 2, including: +- BZ 603085 - VB debug symbols included (.pdb files) +- dotnet API cleanup, more C#, VB, powershell examples + +* Mon Jun 28 2010 Mike Cressman - 0.7.946106-5 +- Beta 4 build 1, including: +- BZ 603896 - Message traffic freezes after queues back up +- BZ 604842 - cluster test fails intermittently +- BZ 605763 - Fix cluster broker crashes when management is active +- BZ 606761 - Do not unmask signals while waiting for IO to happen +- BZ 606824 - Acquired but not accepted messages not sent to alternate exchange +- BZ 607550 - Spout was ignoring frame while closing connection +- BZ 607552 - ttl is lost for federation routes where trace id is added +- BZ 607748 - Crash on exit in store cluster tests. +- BZ 608118 - New messaging API lacks access to some 0-10 headers + +* Fri Jun 18 2010 Mike Cressman - 0.7.946106-4 +- Beta 3 build 2, including: +- new shared library revision numbering mechanism applied +- BZ 602198 - qpidd crashes when testing heartbeats +- BZ 603805 - .NET bindings for the C++ Messaging API +- BZ 603835 - Clean up connections causing extra connection objects in the management agent map +- BZ 603839 - Concurrent tagging of message with trace id while message is delivered from another queue causes segfault +- BZ 604152 - Do not default to auth=no in the default qpidd.conf file + +* Mon Jun 14 2010 Mike Cressman - 0.7.946106-3 +- Beta 3 build 1, including: +- BZ 508959 - Attempt to propagate binding info over dynamic link can crash broker if session has already failed +- BZ 538188 - connection.start() hangs if connection is not accepted +- BZ 566691 - Abort in qpid::management::ManagementAgent::periodicProcessing on shutting down qpidd +- BZ 577274 - windows-related work, including updating the examples +- BZ 577362 - Long failover_soak test hangs. +- BZ 582460 - Remove dependency on qpid::sys::AbsTime +- BZ 589675 - Fix initialization-order problem with URL protocol tags +- BZ 589683 - Broker misconfiguration causes broker stop to fail +- BZ 591139 - RDMA fixes +- BZ 591292 - Fix for heartbeat related segfault +- BZ 591650 - Ensure close is called for a disconnect, preventing leaks +- BZ 596765 - Remove global shared_ptr to store in store plugin +- BZ 596907 - Fixed Default behaviour of new messaging client is to retry forever +- BZ 597066 - Python Connection object should use None as default username, not guest +- BZ 597149 - qpid python high level API clients not runnable on RHEL4 +- BZ 597362 - Sporadic failure of check-long in cluster_tests.py test_failover. +- BZ 598350 - Fixed compilation error on windows +- BZ 598516 - Fixed sporadic client "reserved bits not 0" exceptions with cluster + encryption. +- BZ 598550 - Alleviates some of the broker load for QMF V2 format requests +- BZ 598557 - qpidd --no-data-dir with store loaded segfaults +- BZ 598597 - fix client leaks on linux +- BZ 598948 - qpid c++ client occasionly fails to authenticate using GSSAPI +- BZ 599470 - options string for connection does not work for some types +- BZ 599700 - Console examples sometimes fail due to not waiting for the broker connection to complete +- BZ 601277 - qpidd broker crash +- BZ 601828 - QMF Agent returning STATUS_USER returns error 7 to QMF Console +- BZ 602347 - Fix cluster-safe assertion in connection negotiation. +- BZ 602672 - Message::getSubject() returns an empty string even if the message has a subject + +* Fri May 28 2010 Mike Cressman - 0.7.946106-2 +- Second beta 2 build - first respin +- BZ 558526 - clustered qpidd shutdowns during start-up +- BZ 569698 - sasl_decode buffer overflow under load +- BZ 577353 - Executables in $PATH have bad names +- BZ 586544 - qpid::agent::ManagementAgent::init call doesn't provide complete connection control +- BZ 587182 - clustered broker reports 'ObjectId collision in moveNewObjects' +- BZ 587190 - qpid c++ (perftest) clients hang +- BZ 591420 - C++ clients on windows hang at program end +- BZ 592999 - clustered persistent broker leaves cluster with error when cluster nodes started from clean store +- BZ 593828 - QMF: python console needs ability to filter unsolicited events +- BZ 593831 - QMF: c++ console needs ability to filter unsolicited events +- BZ 594761 - qpidd segfaults under high load +- BZ 595438 - qpidd+msgstore crashes in mrg::msgstore::InactivityFireEvent::~InactivityFireEvent() -> free() +- BZ 596765- Shutdown order in broker causes invalid writes by ManagementObject in store + +* Wed May 19 2010 Mike Cressman - 0.7.946106-1 +- Rebase to latest trunk revisions (946106,3975) - pre-beta 2 build (not final) +- add libqpidmessaging and new api examples + +* Thu Apr 29 2010 Mike Cressman - 0.7.935473-1 +- Rebase to latest trunk revisions (939184,3943) - beta 1+ build +- Add two new python scripts to qpid-cpp-server-store deliverables + +* Mon Apr 19 2010 Mike Cressman - 0.7.935473-1 +- Rebase to latest trunk revisions (935473,3913) - beta 1 build +- require selinux-policy-base + +* Wed Mar 31 2010 Mike Cressman - 0.7.929717-1 +- Rebase to latest trunk revisions (929717,3889) - alpha 3 build + +* Wed Mar 3 2010 Mike Cressman - 0.7.916826-2 +- Add back missing rh-qpid-tests (internal) package and qpid-boost + +* Mon Mar 1 2010 Mike Cressman - 0.7.916826-1 +- Rebase to revs 916826 and 3860 +- Merge RHEL-4 specifics into spec file from RHEL-5 (new package names) + +* Tue Feb 16 2010 Justin Ross - 0.7.909548-1 +- Rebase qpid to 909548 + +* Wed Feb 10 2010 Mike Cressman - 0.7.908272-1 +- Rebase to latest trunk revisions (908272,3847) + +* Thu Feb 4 2010 Mike Cressman - 0.7.904602-4 +- Fix typo with e2fsprogs-devel install dependency + +* Wed Feb 3 2010 Mike Cressman - 0.7.904602-3 +- Merged in RHEL-6 spec file changes + +* Wed Feb 3 2010 Kim van der Riet - 0.6.895736-5 +- Related: rhbz#554415 + Changed name of fedora_lib_patch flag to simply fedora + Added rhel_5 flag, and put in switches for rhel-5 libs + Added new boost libs for RHEL-6/Fedora + +* Tue Jan 26 2010 Kim van der Riet - 0.6.895736-3 +- Fixed some rpmlint warnings. + +* Fri Jan 22 2010 Kim van der Riet - 0.6.895736-2 +- Rebuild because of glitch in brew handling new tags. + +* Thu Jan 21 2010 Kim van der Riet - 0.6.895736-1 +- Corrected naming of rpms by adding pkg_name variable. + +* Thu Jan 21 2010 Kim van der Riet - 0.6.895736-1 +- First build of qpid non-core components (ie which are part of the MRG + channel), this build is based on the RHEL-6 spec file. + +* Tue Oct 27 2009 Nuno Santos - 0.5.819819-2 +- Renaming of subpackages as per http://fedoraproject.org/wiki/Features/ImprovedQpidCppPackaging + +* Tue Sep 29 2009 Nuno Santos - 0.5.819819-1 +- Rebased to svn rev 819819 for F12 beta + +* Thu Sep 24 2009 Nuno Santos - 0.5.818599-1 +- Rebased to svn rev 818599 +- rhm-cpp-server-store obsoletes rhm top-level package + +* Fri Sep 19 2009 Nuno Santos - 0.5.817349 +- Rebased to svn rev 817349 + +* Wed Jul 29 2009 Fabio M. Di Nitto - 0.5.790661-3 +- Update BuildRequires and Requires to use latest stable versions of + corosync and clusterlib. +- Unbreak perftests define (and fix vim spec syntax coloring). + +* Sun Jul 26 2009 Fedora Release Engineering - 0.5.790661-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 2 2009 Nuno Santos - 0.5.790661-1 +- Rebased to svn rev 790661; .so lib numbers bumped + +* Fri Jun 26 2009 Nuno Santos - 0.5.788782-1 +- Rebased to svn rev 788782 + +* Mon Jun 22 2009 Nuno Santos - 0.5.787286-1 +- Rebased to svn rev 787286 + +* Wed Jun 10 2009 Fabio M. Di Nitto - 0.5.752600-8 +- update BuildRequires to use corosynclib-devel in correct version. +- update BuildRequires to use clusterlib-devel instead of the obsoleted + cmanlib-devel. +- drop Requires on cmanlib. This should come in automatically as part + of the rpm build process. +- re-align package version to -8. -7 didn't have a changelog entry? +- add patch to port Cluster/Cpg to newest Cpg code. +- change patch tag to use patch0. + +* Mon May 4 2009 Nuno Santos - 0.5.752600-5 +- patch for SASL credentials refresh + +* Wed Apr 1 2009 Michael Schwendt - 0.5.752600-5 +- Fix unowned examples directory in -devel pkg. + +* Mon Mar 16 2009 Nuno Santos - 0.5.752600-4 +- BZ483925 - split docs into a separate noarch subpackage + +* Mon Mar 16 2009 Nuno Santos - 0.5.752600-3 +- Disable auth by default; fix selinux requires + +* Wed Mar 11 2009 Nuno Santos - 0.5.752600-1 +- Rebased to svn rev 752600 + +* Wed Feb 25 2009 Fedora Release Engineering - 0.4.738618-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 0.4.738618-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Jan 28 2009 Nuno Santos - 0.4.738618-2 +- Rebased to svn rev 738618 + +* Tue Jan 20 2009 Nuno Santos - 0.4.734452-3 +- BZ474614 and BZ474613 - qpidc/rhm unowned directories + +* Thu Jan 15 2009 Nuno Santos - 0.4.734452-1 +- Rebased to svn rev 734452 + +* Tue Dec 23 2008 Nuno Santos - 0.4.728142-1 +- Rebased to svn rev 728142 +- Re-enable cluster, now using corosync + +* Tue Dec 2 2008 Nuno Santos - 0.3.722557-1 +- Rebased to svn rev 722557 +- Temporarily disabled cluster due to openais version incompatibility + +* Wed Nov 26 2008 Nuno Santos - 0.3.720979-1 +- Rebased to svn rev 720979 + +* Fri Nov 21 2008 Mick Goulish +- updated to 719552 + +* Thu Nov 20 2008 Mick Goulish +- updated to 719323 +- For subpackage qpidd-cluster, added dependency to cman-devel. +- For subpackage qpidd-cluster, added dependency to qpidc. +- added BuildRequires cman-devel + +* Fri Nov 14 2008 Justin Ross - 0.3.714072-1 +- Update to svn rev 714072 +- Enable building --with-cpg + +* Wed Nov 12 2008 Justin Ross - 0.3.713378-1 +- Update to svn rev 713378 + +* Fri Nov 7 2008 Justin Ross - 0.3.712127-1 +- Update to svn rev 712127 + +* Thu Nov 6 2008 Nuno Santos - 0.3.711915-2 +- Removed extraneous openais-devel dependency + +* Thu Nov 6 2008 Justin Ross - 0.3.711915-1 +- Update to svn rev 711915 + +* Tue Nov 4 2008 Nuno Santos - 0.3.709187-2 +- Remove extraneous dependency + +* Thu Oct 30 2008 Nuno Santos - 0.3.709187-1 +- Rebsed to svn rev 709187 + +* Tue Oct 28 2008 Nuno Santos - 0.3.708576-1 +- Rebased to svn rev 708576 + +* Mon Oct 27 2008 Nuno Santos - 0.3.708210-1 +- Rebased to svn rev 708210; address make check libtool issue + +* Fri Oct 24 2008 Justin Ross - 0.3.707724-1 +- Update to revision 707724 + +* Thu Oct 23 2008 Justin Ross - 0.3.707468-1 +- Don't use silly idenity defines +- Add new ssl and rdma subpackages +- Move cluster and xml plugins into their own subpackages +- Reflect new naming of plugins + +* Wed Aug 21 2008 Justin Ross - 0.2.687156-1 +- Update to source revision 687156 of the qpid.0-10 branch + +* Wed Aug 14 2008 Justin Ross - 0.2.685273-1 +- Update to source revision 685273 of the qpid.0-10 branch + +* Wed Aug 6 2008 Justin Ross - 0.2.683301-1 +- Update to source revision 683301 of the qpid.0-10 branch + +* Thu Jul 15 2008 Justin Ross - 0.2.676581-1 +- Update to source revision 676581 of the qpid.0-10 branch +- Work around home dir creation problem +- Use a license string that rpmlint likes + +* Thu Jul 10 2008 Nuno Santos - 0.2.667603-3 +- BZ453818: added additional tests to -perftest + +* Thu Jun 13 2008 Justin Ross - 0.2.667603-1 +- Update to source revision 667603 + +* Thu Jun 12 2008 Justin Ross - 0.2.667253-1 +- Update to source revision 667253 + +* Thu Jun 12 2008 Nuno Santos - 0.2.666138-5 +- add missing doc files + +* Wed Jun 11 2008 Justin Ross - 0.2.666138-3 +- Added directories for modules and pid files to install script + +* Wed May 28 2008 David Sommerseth - 0.2.663761-1 +- Added perftest utilities + +* Thu May 22 2008 Nuno Santos - 0.2.656926-4 +- Additional build flags for i686 + +* Tue May 20 2008 Nuno Santos - 0.2.656926-3 +- BZ 432872: remove examples, which are being packaged separately + +* Tue May 20 2008 Justin Ross -0.2.656926-2 +- Drop build requirements for graphviz and help2man + +* Wed May 14 2008 Nuno Santos - 0.2-34 +- Bumped for Beta 4 release + +* Fri May 9 2008 Matthew Farrellee - 0.2-33 +- Moved qpidd.conf from qpidc package to qpidd package +- Added BuildRequires xqilla-devel and xerces-c-devel to qpidd for XML Exchange +- Added BuildRequires openais-devel to qpidd for CPG +- Added missing Requires xqilla-devel to qpidd-devel + +* Thu May 8 2008 Matthew Farrellee - 0.2-32 +- Added sasl2 config file for qpidd +- Added cyrus-sasl dependencies + +* Wed May 7 2008 Matthew Farrellee - 0.2-31 +- Added python dependency, needed by managementgen + +* Wed May 7 2008 Matthew Farrellee - 0.2-30 +- Added management-types.xml to qpidc-devel package + +* Tue May 6 2008 Matthew Farrellee - 0.2-29 +- Added managementgen to the qpidc-devel package + +* Mon Apr 14 2008 Nuno Santos - 0.2-28 + - Fix home dir permissions + - Bumped for Fedora 9 + +* Mon Mar 31 2008 Nuno Santos - 0.2-25 +- Create user qpidd, start qpidd service as qpidd + +* Mon Feb 18 2008 Rafael Schloming - 0.2-24 +- Bug fix for TCK issue in Beta 3 + +* Thu Feb 14 2008 Rafael Schloming - 0.2-23 +- Bumped to pull in fixes for Beta 3 + +* Tue Feb 12 2008 Alan Conway - 0.2-22 +- Added -g to compile flags for debug symbols. + +* Tue Feb 12 2008 Alan Conway - 0.2-21 +- Create /var/lib/qpidd correctly. + +* Mon Feb 11 2008 Rafael Schloming - 0.2-20 +- bumped for Beta 3 + +* Mon Jan 21 2008 Gordon Sim - 0.2-18 +- bump up rev for recent changes to plugin modules & mgmt + +* Thu Jan 03 2008 Nuno Santos - 0.2-17 +- add missing header file SessionManager.h + +* Thu Jan 03 2008 Nuno Santos - 0.2-16 +- limit builds to i386 and x86_64 archs + +* Thu Jan 03 2008 Nuno Santos - 0.2-15 +- add ruby as a build dependency + +* Tue Dec 18 2007 Nuno Santos - 0.2-14 +- include fixes from Gordon Sim (fragmentation, lazy-loading, staging) + and Alan Conway (exception handling in the client). + +* Thu Dec 6 2007 Alan Conway - 0.2-13 +- installcheck target to build examples in installation. + +* Thu Nov 8 2007 Alan Conway - 0.2-10 +- added examples to RPM package. + +* Thu Oct 9 2007 Alan Conway - 0.2-9 +- added config(noreplace) for qpidd.conf + +* Thu Oct 4 2007 Alan Conway - 0.2-8 +- Added qpidd.conf configuration file. +- Updated man page to detail configuration options. + +* Thu Sep 20 2007 Alan Conway - 0.2-7 +- Removed apr dependency. + +* Wed Aug 1 2007 Alan Conway - 0.2-6 +- added --disable-cluster flag + +* Tue Apr 17 2007 Alan Conway - 0.2-5 +- Add missing Requires: e2fsprogs-devel for qpidc-devel. + +* Tue Apr 17 2007 Alan Conway - 0.2-4 +- longer broker_start timeout to avoid failures in plague builds. + +* Tue Apr 17 2007 Alan Conway - 0.2-3 +- Add missing Requires: apr in qpidc. + +* Mon Apr 16 2007 Alan Conway - 0.2-2 +- Bugfix for memory errors on x86_64. + +* Thu Apr 12 2007 Alan Conway - 0.2-1 +- Bumped version number for rhm dependencies. + +* Wed Apr 11 2007 Alan Conway - 0.1-5 +- Add qpidd-devel sub-package. + +* Mon Feb 19 2007 Jim Meyering - 0.1-4 +- Address http://bugzilla.redhat.com/220630: +- Remove redundant "cppunit" build-requires. +- Add --disable-static. + +* Thu Jan 25 2007 Alan Conway - 0.1-3 +- Applied Jim Meyerings fixes from http://mail-archives.apache.org/mod_mbox/incubator-qpid-dev/200701.mbox/<87hcugzmyp.fsf@rho.meyering.net> + +* Mon Dec 22 2006 Alan Conway - 0.1-1 +- Fixed all rpmlint complaints (with help from David Lutterkort) +- Added qpidd --daemon behaviour, fix init.rc scripts + +* Fri Dec 8 2006 David Lutterkort - 0.1-1 +- Initial version based on Jim Meyering's sketch and discussions with Alan + Conway diff --git a/rpms/awips2.qpid/build.sh b/rpms/awips2.qpid/build.sh new file mode 100755 index 0000000000..a95659a9bf --- /dev/null +++ b/rpms/awips2.qpid/build.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +#Add local dir processing +PATH_TO_HERE=`dirname $0` +cd $PATH_TO_HERE + +export TOP_DIR=`pwd` +echo $TOP_DIR +rpmbuild -ba --target=i386 --define "_topdir $TOP_DIR" SPECS/qpid-cpp-mrg.spec + diff --git a/rpms/awips2.qpid/deploy.builder/build.sh b/rpms/awips2.qpid/deploy.builder/build.sh new file mode 100644 index 0000000000..7573bd56bd --- /dev/null +++ b/rpms/awips2.qpid/deploy.builder/build.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +export CFLAGS="-m32" +export CXXFLAGS="-m32" +export LDFLAGS="-m32" + +SPECS_FILE="qpid-cpp-mrg.spec" + +# Verify that the correct version of swig is installed. +REQUIRED_SWIG_VERSION="SWIG Version 2.0" +COMMAND=`which swig` +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: 'swig v2.0.X' Is Required To Successfully Build The QPID RPMs." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +SWIG_VERSION=`swig -version | grep Version` +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable To Verify The Installed Version Of 'swig'." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +VERIFY_SWIG_VERSION=`echo "${SWIG_VERSION}" | grep "${REQUIRED_SWIG_VERSION}"` +if [ "${VERIFY_SWIG_VERSION}" = "" ]; then + echo "ERROR: 'swig v2.0.X' Is Required To Successfully Build The QPID RPMs." + echo " '${SWIG_VERSION}' Was Detected." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# We are in the awips2.qpid/deploy.builder directory when we are started. +cd ../ + +export QPID_WORKSPACE_DIR=`pwd` + +# Purge the BUILD directory, if necessary. +if [ -d ${QPID_WORKSPACE_DIR}/BUILD ]; then + rm -rf ${QPID_WORKSPACE_DIR}/BUILD/* +fi +# Purge the RPMS/i386 directory, if necessary. +if [ -d ${QPID_WORKSPACE_DIR}/RPMS/i386 ]; then + rm -rf ${QPID_WORKSPACE_DIR}/RPMS/i386/* +fi + +# Conceal The SWIG Requirement In The Specs File. +perl -p -i -e "s/BuildRequires: swig/#BuildRequires: swig/g" \ + SPECS/${SPECS_FILE} + +rpmbuild -ba --target=i386 --define '_topdir %(echo ${QPID_WORKSPACE_DIR})' \ + SPECS/${SPECS_FILE} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +exit 0 diff --git a/rpms/build.hudson/ROOT_buildLDM.sh b/rpms/build.hudson/ROOT_buildLDM.sh new file mode 100644 index 0000000000..e8f6558900 --- /dev/null +++ b/rpms/build.hudson/ROOT_buildLDM.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +if [ "${USER}" != "root" ]; then + echo "ERROR: This script must be ran as root." + exit 1 +fi + +source awips/Installer.rpm/awips2.base/deploy.builder/buildSteps.sh +source awips/Installer.rpm/common/functions/rpmBuild.sh +prepareEnvironment + +cd awips/Installer.rpm/awips2.base +buildRPM "Installer.ldm/component.spec" +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the awips2-ldm rpm." + exit 1 +fi + +if [ "${AWIPSII_RPM_REPOSITORY}" = "" ]; then + exit 0 +fi + +# Copy the ldm rpm to the repository +LDM_RPM_PATTERN="awips2-ldm-*.i386.rpm" +LDM_RPM=`ls -1 ${AWIPSII_TOP_DIR}/RPMS/i386/${LDM_RPM_PATTERN}` +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to find the awips2 ldm rpm in ${AWIPSII_TOP_DIR}/RPMS/i386." + exit 1 +fi + +if [ ! -f "${LDM_RPM}" ]; then + echo "ERROR: The awips2 ldm rpm '${LDM_RPM}' does not exist." + exit 1 +fi + +cp -v ${LDM_RPM} \ + ${AWIPSII_RPM_REPOSITORY}/${AWIPSII_VERSION}-${AWIPSII_RELEASE}/base +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: The copy of the awips2 ldm rpm to the repository has failed." + exit 1 +fi + +exit 0 diff --git a/rpms/build.hudson/buildADE.sh b/rpms/build.hudson/buildADE.sh new file mode 100644 index 0000000000..19fbf40715 --- /dev/null +++ b/rpms/build.hudson/buildADE.sh @@ -0,0 +1,138 @@ +#!/bin/bash + +# We need to copy the following RPMs into the ADE: +# 1) awips2-java +# 2) awips2-python +# 3) awips2-eclipse +# 4) awips2-ant +# 5) awips2-python-cherrypy +# 6) awips2-python-h5py +# 7) awips2-python-matplotlib +# 8) awips2-python-nose +# 9) awips2-python-numpy +# 10) awips2-python-pil +# 11) awips2-python-pmw +# 12) awips2-python-pupynere +# 13) awips2-python-qpid +# 14) awips2-python-scientific +# 15) awips2-python-scipy +# 16) awips2-python-tables +# 17) awips2-python-thrift +# 18) awips2-python-tpg +# 19) awips2-python-werkzeug +# 20) awips2-qpid-client-devel +# 21) awips2-qpid-server-devel +# 22) qmf-devel + +# Hudson: +# mkdir -p awips/ade +# mkdir -p awips/ade/projects +# mkdir -p awips/ade/projects/awips +# mkdir -p awips/ade/projects/awips/Installer.rpm +# mkdir -p awips/ade/projects/awips/nativeLib +# mkdir -p awips/ade/projects/javadocs +# mkdir -p awips/ade/ade-${AWIPSII_VERSION}-${AWIPSII_RELEASE}.${CURRENT_DATE} +# rsync ... edexOsgi/* cave/* cots/* RadarServer/* ncep/* awips/ade/projects/awips +# rsync ... rpms/* awips/ade/projects/awips/Installer.rpm +# rsync ... nativeLib/* awips/ade/projects/awips/nativeLib + +# Generate the javadocs +cd ${WORKSPACE}/Installer.rpm/awips2.ade/jar.baseline/javadoc +ant -Dawips.src.dir=${WORKSPACE}/ade/projects/awips +# Copy the javadocs to the baseline javadocs directory. +cp -r ${WORKSPACE}/Installer.rpm/awips2.ade/jar.baseline/javadoc/build/api/* \ + ${WORKSPACE}/ade/projects/javadocs + +# Remove uframe-eclipse from the projects directory +rm -rf ${WORKSPACE}/ade/projects/awips/uframe-eclipse + +# Jar the source and javadocs +cp ${WORKSPACE}/Installer.rpm/awips2.ade/jar.baseline/jar/build.xml \ + ${WORKSPACE}/ade +cd ${WORKSPACE}/ade +ant -d + +CURRENT_DATE=`date +"%Y%m%d"` +ADE_TAR_STORE="ade-${AWIPSII_VERSION}-${AWIPSII_RELEASE}.${CURRENT_DATE}" +mkdir -p ${WORKSPACE}/ade/${ADE_TAR_STORE} +# Copy the sources jar to the ade zip storage. +cp -v awips2-ade-baseline-SOURCES.jar ${WORKSPACE}/ade/${ADE_TAR_STORE} + +RPMS_DIR="${WORKSPACE}/Installer.rpm/rpmbuild/RPMS/i386" +# Collect all of the rpms that will be included in the ADE. +if [ ! "${AWIPSII_RPM_REPOSITORY}" = "" ]; then + RPMS_DIR="${AWIPSII_RPM_REPOSITORY}" +fi + +function copyRPM() +{ + # ${1} == RPM Name Pattern + # ${2} == RPM Class + RPM_NAME_PATTERN="${1}" + RPM_CLASS="${2}" + + if [ ! "${AWIPSII_RPM_REPOSITORY}" = "" ]; then + local RPM_REPO_BRANCH_DIR="${AWIPSII_VERSION}-${AWIPSII_RELEASE}" + RPM_NAME_PATTERN="${RPM_REPO_BRANCH_DIR}/${RPM_CLASS}/${RPM_NAME_PATTERN}" + fi + + RPM=`ls ${RPMS_DIR}/${RPM_NAME_PATTERN}` + if [ ! -f "${RPM}" ]; then + echo "ERROR: Unable to find the '${RPM_NAME_PATTERN}' RPM." + exit 1 + fi + + cp -v ${RPM} ${WORKSPACE}/ade/${ADE_TAR_STORE} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to copy the '${RPM}' RPM." + exit 1 + fi +} + +RPM_SUFFIX=".i386.rpm" +copyRPM "awips2-java-*${RPM_SUFFIX}" "base" +copyRPM "awips2-python-[0-9]*${RPM_SUFFIX}" "python" +copyRPM "awips2-eclipse-*${RPM_SUFFIX}" "base" +copyRPM "awips2-ant-*${RPM_SUFFIX}" "base" +copyRPM "awips2-python-cherrypy*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-h5py*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-matplotlib*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-nose*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-numpy*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-pil*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-pmw*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-pupynere*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-qpid*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-scientific*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-scipy*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-tables*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-thrift*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-tpg*${RPM_SUFFIX}" "python" +copyRPM "awips2-python-werkzeug*${RPM_SUFFIX}" "python" +copyRPM "awips2-qpid-client-devel*${RPM_SUFFIX}" "base" +copyRPM "awips2-qpid-server-devel*${RPM_SUFFIX}" "base" +copyRPM "qmf-devel*${RPM_SUFFIX}" "base" + +# Copy the convenience scripts into the ADE. +ADE_PROJECT_DIR="${WORKSPACE}/Installer.rpm/awips2.ade" +cp -v ${ADE_PROJECT_DIR}/tar.ade/scripts/*.sh ${ADE_TAR_STORE} + +cd ${WORKSPACE}/ade +tar -cjf awips2-ade-${AWIPSII_VERSION}-${CURRENT_DATE}.tar ${ADE_TAR_STORE} +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to create the ade tar file - awips2-ade-${AWIPSII_VERSION}-${CURRENT_DATE}.tar." + exit 1 +fi + +# Copy the ade into the repository if a repository has been specified. +if [ ! "${AWIPSII_RPM_REPOSITORY}" = "" ]; then + cp -v awips2-ade-${AWIPSII_VERSION}-${CURRENT_DATE}.tar \ + ${AWIPSII_RPM_REPOSITORY}/${AWIPSII_VERSION}-${AWIPSII_RELEASE} +else + cp -v awips2-ade-${AWIPSII_VERSION}-${CURRENT_DATE}.tar \ + ${RPMS_DIR} +fi + +exit 0 diff --git a/rpms/build.hudson/buildBaseline.sh b/rpms/build.hudson/buildBaseline.sh new file mode 100644 index 0000000000..a56ab44b53 --- /dev/null +++ b/rpms/build.hudson/buildBaseline.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +SCRIPT_DIR=`dirname $_` +source awips/Installer.rpm/common/functions/rpmBuild.sh +prepareEnvironment +buildBaselineProjects +RC=$? +if [ ${RC} -ne 0 ]; then + echo "The Required Baseline Projects Were Not Built Successfully." + exit 1 +fi + +exit 0 diff --git a/rpms/build.hudson/buildRPMs.sh b/rpms/build.hudson/buildRPMs.sh new file mode 100644 index 0000000000..e3cbf9ed16 --- /dev/null +++ b/rpms/build.hudson/buildRPMs.sh @@ -0,0 +1,135 @@ +#!/bin/bash + +SCRIPT_DIR=`dirname $_` +source awips/Installer.rpm/common/functions/rpmBuild.sh +prepareEnvironment +function updateFilesystemRepository() +{ + # ${1} = RPM Class + RPM_CLASS="${1}" + + if [ "${AWIPSII_RPM_REPOSITORY}" = "" ]; then + return 0 + fi + + if [ ! -d ${AWIPSII_RPM_REPOSITORY} ]; then + mkdir -p ${AWIPSII_RPM_REPOSITORY} + chmod -R 777 ${AWIPSII_RPM_REPOSITORY} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to create directory '${AWIPSII_RPM_REPOSITORY}'." + exit 1 + fi + fi + + local REPO_DIR="${AWIPSII_RPM_REPOSITORY}/${AWIPSII_VERSION}-${AWIPSII_RELEASE}" + if [ ! -d ${REPO_DIR} ]; then + mkdir -p ${REPO_DIR} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to create directory '${REPO_DIR}'." + exit 1 + fi + chmod -R 777 ${REPO_DIR} + fi + + if [ ! -d ${REPO_DIR}/${RPM_CLASS} ]; then + mkdir -p ${REPO_DIR}/${RPM_CLASS} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to create directory '${REPO_DIR}/${RPM_CLASS}'." + exit 1 + fi + chmod -R 777 ${REPO_DIR}/${RPM_CLASS} + fi + + cp -v awips/Installer.rpm/rpmbuild/RPMS/i386/* ${REPO_DIR}/${RPM_CLASS} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to copy the rpms to the repository directory - ${REPO_DIR}/${RPM_CLASS}." + exit 1 + fi + chmod 644 ${REPO_DIR}/${RPM_CLASS}/* + + rm -fv awips/Installer.rpm/rpmbuild/RPMS/i386/* + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Unable to remove the rpms from the build directory." + exit 1 + fi +} + +if [ "${BUILD_BASE}" = "true" ]; then + pushd . > /dev/null + cd awips/Installer.rpm/awips2.base/deploy.builder + chmod a+x *.sh + ./build2.0.sh + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the BASE AWIPS II RPMs." + exit 1 + fi + popd > /dev/null + + updateFilesystemRepository "base" +fi + +if [ "${BUILD_CAVE}" = "true" ]; then + pushd . > /dev/null + cd awips/Installer.rpm/awips2.cave/deploy.builder + chmod a+x *.sh + ./build2.0.sh + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the CAVE AWIPS II RPMs." + exit 1 + fi + popd > /dev/null + + updateFilesystemRepository "cave" +fi + +if [ "${BUILD_CORE}" = "true" ]; then + pushd . > /dev/null + cd awips/Installer.rpm/awips2.core/deploy.builder + chmod a+x *.sh + ./build2.0.sh + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the CORE AWIPS II RPMs." + exit 1 + fi + popd > /dev/null + + updateFilesystemRepository "core" +fi + +if [ "${BUILD_EDEX}" = "true" ]; then + pushd . > /dev/null + cd awips/Installer.rpm/awips2.edex/deploy.builder + chmod a+x *.sh + ./build2.0.sh + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the EDEX AWIPS II RPMs." + exit 1 + fi + popd > /dev/null + + updateFilesystemRepository "edex" +fi + +if [ "${BUILD_PYTHON}" = "true" ]; then + pushd . > /dev/null + cd awips/Installer.rpm/awips2.python/deploy.builder + chmod a+x *.sh + ./build2.0.sh + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build the Python AWIPS II RPMs." + exit 1 + fi + popd > /dev/null + + updateFilesystemRepository "python" +fi diff --git a/rpms/build.hudson/hudsonRunner.sh b/rpms/build.hudson/hudsonRunner.sh new file mode 100644 index 0000000000..aea6dd7436 --- /dev/null +++ b/rpms/build.hudson/hudsonRunner.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +if [ -d awips ]; then + rm -rf awips/ +fi +mkdir -p awips/ +mkdir -p awips/Installer.rpm +mkdir -p awips/dist.native +mkdir -p awips/pythonPackages + +rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes RadarServer/* cots/* edexOsgi/* cave/* ncep/* awips +rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes rpms/* awips/Installer.rpm +rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes dist.native/* awips/dist.native +rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes pythonPackages/* awips/pythonPackages + +export WORKSPACE="${WORKSPACE}/awips" +chmod a+x *.sh +./buildBaseline.sh +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +rm -rf awips/Installer.rpm +cp -r /share1/bkowal/Installer.rpm awips/ + +./buildRPMs.sh +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +if [ "${BUILD_ADE}" = "true" ]; then + mkdir -p awips/ade + mkdir -p awips/ade/projects + mkdir -p awips/ade/projects/awips + mkdir -p awips/ade/projects/awips/Installer.rpm + mkdir -p awips/ade/projects/awips/nativeLib + mkdir -p awips/ade/projects/javadocs + rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes RadarServer/* cots/* edexOsgi/* ncep/* awips/ade/projects/awips + rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes rpms/* awips/ade/projects/awips/Installer.rpm + rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes nativeLib/* awips/ade/projects/awips/nativeLib + + chmod a+x buildADE.sh + ./buildADE.sh + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +fi + +if [ "${BUILD_BASE}" = "true" ]; then + chmod a+x ROOT_buildLDM.sh + COPY_ENV="export AWIPSII_VERSION=${AWIPSII_VERSION};" + COPY_ENV="${COPY_ENV} export AWIPSII_RELEASE=${AWIPSII_RELEASE};" + COPY_ENV="${COPY_ENV} export WORKSPACE=${WORKSPACE};" + COPY_ENV="${COPY_ENV} export AWIPSII_UFRAME_ECLIPSE=${AWIPSII_UFRAME_ECLIPSE};" + COPY_ENV="${COPY_ENV} export AWIPSII_RPM_REPOSITORY=${AWIPSII_RPM_REPOSITORY};" + COPY_ENV="${COPY_ENV} export SVN_URL=${SVN_URL};" + sudo su -c "${COPY_ENV} ./ROOT_buildLDM.sh;" + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +fi + +# The baselined comps.xml file ... +if [ ! "${AWIPSII_RPM_REPOSITORY}" = "" ]; then + if [ -f ${WORKSPACE}/Installer.rpm/common/repo/comps.xml ]; then + cp -vf ${WORKSPACE}/Installer.rpm/common/repo/comps.xml \ + ${AWIPSII_RPM_REPOSITORY} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi + chmod 644 ${AWIPSII_RPM_REPOSITORY}/comps.xml + else + echo "WARNING: The baselined comps.xml file could not be found." + fi +fi + +exit 0 diff --git a/rpms/build/64/hudsonRunner64.sh b/rpms/build/64/hudsonRunner64.sh new file mode 100644 index 0000000000..ea065e08f3 --- /dev/null +++ b/rpms/build/64/hudsonRunner64.sh @@ -0,0 +1,313 @@ +#!/bin/bash + +# This is the baselined Hudson script that is used to build the +# 64-bit RPMs for both release and nightly builds. + +# Expected Environment Variables: +# 1) ${WORKSPACE} - the location of the hudson workspace. +# 2) ${AWIPSII_VERSION} - the build version; defaults to the contents of version.txt +# 3) ${AWIPSII_RELEASE} - the build release; defaults to the current date in YYYYMMDD + +# Provided Variables: +# 1) ${REPOSITORY} - the root directory of the AWIPS II repository. +# 2) ${REPOSITORY_LOCK} - the name of the repository locking file. +REPOSITORY="/install/repository" +REPOSITORY_LOCK="repository.lck" + +function logINFO() +{ + # Arguments: + # ${1} - the message to log. + echo "INFO: ${1}" +} + +function logERROR() +{ + # Arguments: + # ${1} - the message to log. + echo "ERROR: ${1}" +} + +function lockRepository() +{ + if [ -f ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} ]; then + logINFO "The repository is currently locked." + sleep 5 + while [ -f ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} ] + do + logINFO "The repository is still locked." + sleep 5 + done + logINFO "The repository is no longer locked." + fi + logINFO "Locking the repository." + touch ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} +} + +function unlockRepository() +{ + sleep 5 + logINFO "Unlocking the repository." + rm -fv ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} +} + +function buildRelease() +{ + REPOSITORY="${REPOSITORY}/release" + + time /bin/bash build.sh + if [ $? -ne 0 ]; then + logERROR "Failed to build the x86_64 RPMs." + return 1 + fi + + return 0 +} + +function createRepositoryRelease() +{ + #1) Create the needed directories, if they do not already exist. + if [ ! -d ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} ]; then + mkdir -p ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + chmod 777 ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + fi + #2) Copy the RPMs that we are responsible for into the repository. + cd ${WORKSPACE}/rpmbuild/RPMS + if [ -d ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE}/x86_64 ]; then + rm -rf ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE}/x86_64 + fi + cp -rv x86_64 ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + #3) Copy the baselined comps.xml file into the repository. + cd ${WORKSPACE}/Installer.rpm/common/yum/arch.x86_64 + if [ ! -f comps.xml ]; then + logERROR "The baselined comps.xml file does not exist." + return 1 + fi + cp -v comps.xml ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + + return 0 +} + +function buildNightly() +{ + local RPMS_TO_BUILD="awips2-alertviz awips2-cave awips2-python-dynamicserialize awips2-python-ufpy" + REPOSITORY="${REPOSITORY}/nightly" + + # Build the RPMs. + time /bin/bash build.sh "${RPMS_TO_BUILD}" + if [ $? -ne 0 ]; then + logERROR "Failed to build the x86_64 RPMs." + return 1 + fi + + return 0 +} + +function createRepositoryNightly() +{ + lockRepository + # 1) Determine what the dated directory should be. + DATE=`date +"%Y%m%d"` + # 2) Create the needed directories if they do not already exist. + if [ ! -d ${REPOSITORY}/arch.x86_64/${DATE} ]; then + mkdir -p ${REPOSITORY}/arch.x86_64/${DATE} + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + chmod 777 ${REPOSITORY}/arch.x86_64/${DATE} + fi + # 3) Copy the RPMs that we are responsible for into the repository. + cd ${WORKSPACE}/rpmbuild/RPMS + # 3i) Remove any existing RPMs from a previous build. + if [ -d ${REPOSITORY}/arch.x86_64/${DATE}/x86_64 ]; then + rm -rf ${REPOSITORY}/arch.x86_64/${DATE}/x86_64 + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + fi + cp -rv x86_64 ${REPOSITORY}/arch.x86_64/${DATE} + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + # 4) Copy the baselined comps.xml file into the repository. + cd ${WORKSPACE}/Installer.rpm/common/yum/arch.x86_64 + if [ ! -f comps.xml ]; then + logERROR "The baselined comps.xml file does not exist." + unlockRepository + return 1 + fi + cp -v comps.xml ${REPOSITORY}/arch.x86_64 + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + # 5) Re-build the repository. + cd ${REPOSITORY}/arch.x86_64 + createrepo ${REPOSITORY}/arch.x86_64 + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + createrepo -g comps.xml . + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + + unlockRepository + + return 0 +} + +function buildRPMs() +{ + pushd . > /dev/null + cd ${WORKSPACE}/Installer.rpm/awips2.64/deploy.builder + + # Determine what type of build we are doing. + if [ "${AWIPSII_VERSION}" = "" ] && + [ "${AWIPSII_RELEASE}" = "" ]; then + buildNightly + if [ $? -ne 0 ]; then + return 1 + fi + createRepositoryNightly + RC=$? + else + buildRelease + if [ $? -ne 0 ]; then + return 1 + fi + createRepositoryRelease + RC=$? + fi + + popd > /dev/null + return ${RC} +} + +function validateEnvironment() +{ + if [ "${WORKSPACE}" = "" ]; then + logERROR "The location of the Hudson workspace has not been set into the environment." + return 1 + fi + + return 0 +} + +function setup() +{ + if [ ! -d ${WORKSPACE}/awips ]; then + mkdir -p ${WORKSPACE}/awips + if [ $? -ne 0 ]; then + return 1 + fi + fi + + pushd . > /dev/null + cd ${WORKSPACE} + + # The rsync + rsync -ruq --delete --exclude-from=/var/lib/hudson/excludes \ + cave/* cots/* edexOsgi/* ncep/* RadarServer/* awips + if [ $? -ne 0 ]; then + return 1 + fi + # sync the remaining project directories. + if [ -d awips/pythonPackages ]; then + rm -rf awips/pythonPackages + if [ $? -ne 0 ]; then + return 1 + fi + fi + if [ -d awips/Installer.rpm ]; then + rm -rf awips/Installer.rpm + if [ $? -ne 0 ]; then + return 1 + fi + fi + cp -rv pythonPackages awips + if [ $? -ne 0 ]; then + return 1 + fi + cp -rv rpms awips/Installer.rpm + if [ $? -ne 0 ]; then + return 1 + fi + + cd ${WORKSPACE}/awips + # Cleanup SVN metadata. + find . -name .svn -exec rm -rf {} \; + + popd > /dev/null + + # Create the standard RPM Build directory structure. + if [ -d ${WORKSPACE}/awips/rpmbuild ]; then + rm -rf ${WORKSPACE}/awips/rpmbuild + if [ $? -ne 0 ]; then + return 1 + fi + fi + mkdir -p ${WORKSPACE}/awips/rpmbuild + if [ $? -ne 0 ]; then + return 1 + fi + mkdir -p ${WORKSPACE}/awips/rpmbuild/BUILD + if [ $? -ne 0 ]; then + return 1 + fi + mkdir -p ${WORKSPACE}/awips/rpmbuild/RPMS + if [ $? -ne 0 ]; then + return 1 + fi + mkdir -p ${WORKSPACE}/awips/rpmbuild/SOURCES + if [ $? -ne 0 ]; then + return 1 + fi + mkdir -p ${WORKSPACE}/awips/rpmbuild/SPECS + if [ $? -ne 0 ]; then + return 1 + fi + mkdir -p ${WORKSPACE}/awips/rpmbuild/SRPMS + if [ $? -ne 0 ]; then + return 1 + fi + + export AWIPSII_TOP_DIR="${WORKSPACE}/awips/rpmbuild" + export WORKSPACE="${WORKSPACE}/awips" + + return 0 +} + +# Begin +validateEnvironment +if [ $? -ne 0 ]; then + exit 1 +fi +setup +if [ $? -ne 0 ]; then + exit 1 +fi +buildRPMs +if [ $? -ne 0 ]; then + exit 1 +fi +# Finished + +exit 0 diff --git a/rpms/build/64/jenkinsRunner64.sh b/rpms/build/64/jenkinsRunner64.sh new file mode 100644 index 0000000000..838e3f381e --- /dev/null +++ b/rpms/build/64/jenkinsRunner64.sh @@ -0,0 +1,211 @@ +#!/bin/bash + +# This is the baselined Hudson script that is used to build the +# 64-bit RPMs for both release and nightly builds. + +# Expected Environment Variables: +# 1) ${WORKSPACE} - the location of the hudson workspace. +# 2) ${AWIPSII_VERSION} - the build version; defaults to the contents of version.txt +# 3) ${AWIPSII_RELEASE} - the build release; defaults to the current date in YYYYMMDD + +# Provided Variables: +# 1) ${REPOSITORY} - the root directory of the AWIPS II repository. +# 2) ${REPOSITORY_LOCK} - the name of the repository locking file. +REPOSITORY="/install/repository" +REPOSITORY_LOCK="repository.lck" + +function logINFO() +{ + # Arguments: + # ${1} - the message to log. + echo "INFO: ${1}" +} + +function logERROR() +{ + # Arguments: + # ${1} - the message to log. + echo "ERROR: ${1}" +} + +function lockRepository() +{ + if [ -f ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} ]; then + logINFO "The repository is currently locked." + sleep 5 + while [ -f ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} ] + do + logINFO "The repository is still locked." + sleep 5 + done + logINFO "The repository is no longer locked." + fi + logINFO "Locking the repository." + touch ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} +} + +function unlockRepository() +{ + sleep 5 + logINFO "Unlocking the repository." + rm -fv ${REPOSITORY}/arch.x86_64/${REPOSITORY_LOCK} +} + +function buildRelease() +{ + REPOSITORY="${REPOSITORY}/release" + + time /bin/bash build.sh + if [ $? -ne 0 ]; then + logERROR "Failed to build the x86_64 RPMs." + return 1 + fi + + return 0 +} + +function createRepositoryRelease() +{ + #1) Create the needed directories, if they do not already exist. + if [ ! -d ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} ]; then + mkdir -p ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + chmod 777 ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + fi + #2) Copy the RPMs that we are responsible for into the repository. + cd ${AWIPSII_TOP_DIR}/RPMS + if [ -d ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE}/x86_64 ]; then + rm -rf ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE}/x86_64 + fi + cp -rv x86_64 ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + #3) Copy the baselined comps.xml file into the repository. + cd ${WORKSPACE}/Installer.rpm/common/yum/arch.x86_64 + if [ ! -f comps.xml ]; then + logERROR "The baselined comps.xml file does not exist." + return 1 + fi + cp -v comps.xml ${REPOSITORY}/arch.x86_64/${AWIPSII_VERSION}-${AWIPSII_RELEASE} + if [ $? -ne 0 ]; then + return 1 + fi + + return 0 +} + +function buildNightly() +{ + local RPMS_TO_BUILD="awips2-alertviz awips2-cave awips2-python-dynamicserialize awips2-python-ufpy" + REPOSITORY="${REPOSITORY}/nightly" + + # Build the RPMs. + time /bin/bash build.sh "${RPMS_TO_BUILD}" + if [ $? -ne 0 ]; then + logERROR "Failed to build the x86_64 RPMs." + return 1 + fi + + return 0 +} + +function createRepositoryNightly() +{ + lockRepository + # 1) Determine what the dated directory should be. + DATE=`date +"%Y%m%d"` + # 2) Create the needed directories if they do not already exist. + if [ ! -d ${REPOSITORY}/arch.x86_64/${DATE} ]; then + mkdir -p ${REPOSITORY}/arch.x86_64/${DATE} + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + chmod 777 ${REPOSITORY}/arch.x86_64/${DATE} + fi + # 3) Copy the RPMs that we are responsible for into the repository. + cd ${AWIPSII_TOP_DIR}/RPMS + # 3i) Remove any existing RPMs from a previous build. + if [ -d ${REPOSITORY}/arch.x86_64/${DATE}/x86_64 ]; then + rm -rf ${REPOSITORY}/arch.x86_64/${DATE}/x86_64 + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + fi + cp -rv x86_64 ${REPOSITORY}/arch.x86_64/${DATE} + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + # 4) Copy the baselined comps.xml file into the repository. + cd ${WORKSPACE}/Installer.rpm/common/yum/arch.x86_64 + if [ ! -f comps.xml ]; then + logERROR "The baselined comps.xml file does not exist." + unlockRepository + return 1 + fi + cp -v comps.xml ${REPOSITORY}/arch.x86_64 + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + # 5) Re-build the repository. + cd ${REPOSITORY}/arch.x86_64 + createrepo ${REPOSITORY}/arch.x86_64 + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + createrepo -g comps.xml . + if [ $? -ne 0 ]; then + unlockRepository + return 1 + fi + + unlockRepository + + return 0 +} + +function buildRPMs() +{ + pushd . > /dev/null + cd ${WORKSPACE}/Installer.rpm/awips2.64/deploy.builder + + # Determine what type of build we are doing. + if [ "${AWIPSII_VERSION}" = "" ] && + [ "${AWIPSII_RELEASE}" = "" ]; then + buildNightly + if [ $? -ne 0 ]; then + return 1 + fi + createRepositoryNightly + RC=$? + else + buildRelease + if [ $? -ne 0 ]; then + return 1 + fi + createRepositoryRelease + RC=$? + fi + + popd > /dev/null + return ${RC} +} + +# Begin +buildRPMs +if [ $? -ne 0 ]; then + exit 1 +fi +# Finished + +exit 0 diff --git a/rpms/build/nightly/branchRepository.sh b/rpms/build/nightly/branchRepository.sh new file mode 100644 index 0000000000..6aa2249d69 --- /dev/null +++ b/rpms/build/nightly/branchRepository.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +if [ "${REPO_SHARE_ROOT}" = "" ]; then + echo "ERROR: the 'REPO_SHARE_ROOT' environment variable is UNDEFINED." + exit 1 +fi +if [ "${BUILD_DATE}" = "" ]; then + echo "ERROR: the 'BUILD_DATE' environment variable is UNDEFINED." + exit 1 +fi + + +# Create a dated directory in the repo directory - archive any existing directories. +if [ -d ${REPO_SHARE_ROOT}/${BUILD_DATE} ]; then + rm -rf ${REPO_SHARE_ROOT}/${BUILD_DATE} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +fi + +# Create the nightly repo directory. +mkdir -p ${REPO_SHARE_ROOT}/${BUILD_DATE} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +# Create the categorized repo directories. +mkdir -p ${REPO_SHARE_ROOT}/${BUILD_DATE}/core +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${REPO_SHARE_ROOT}/${BUILD_DATE}/edex +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${REPO_SHARE_ROOT}/${BUILD_DATE}/python.site-packages +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${REPO_SHARE_ROOT}/${BUILD_DATE}/cave +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi diff --git a/rpms/build/nightly/buildNightlyRPMs.sh b/rpms/build/nightly/buildNightlyRPMs.sh new file mode 100644 index 0000000000..ead6323955 --- /dev/null +++ b/rpms/build/nightly/buildNightlyRPMs.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +echo "Starting ... $0." + +RPM_BUILD_SCRIPT="build.sh" +RPM_PROJECT_DIR="${WORKSPACE}/all/Installer.rpm" +export RPM_TOP_DIR="${WORKSPACE}/all/rpmbuild" +RPM_DEST_DIR="${RPM_TOP_DIR}/RPMS/i386" +export AWIPSII_BUILD_TAG=`perl ${RPM_PROJECT_DIR}/awips2.core/deploy.builder/extractTag.pl ${1}` + +# Build the Core RPMs. +cd ${RPM_PROJECT_DIR}/awips2.core/deploy.builder +time ./${RPM_BUILD_SCRIPT} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +# Copy the RPMs To The Repo Directory ~ core. +cp -v ${RPM_DEST_DIR}/* ${REPO_SHARE_ROOT}/${BUILD_DATE}/core +cp -v ${RPM_DEST_DIR}/../noarch/* ${REPO_SHARE_ROOT}/${BUILD_DATE}/core +rm -fv ${RPM_DEST_DIR}/* + +# Build the Python Site-Package RPMs. +cd ${RPM_PROJECT_DIR}/python.site-packages/deploy.builder +time ./${RPM_BUILD_SCRIPT} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +# Copy the RPMs to the Repo Directory ~ python.site-packages. +cp -v ${RPM_DEST_DIR}/* ${REPO_SHARE_ROOT}/${BUILD_DATE}/python.site-packages +rm -fv ${RPM_DEST_DIR}/* + +export AWIPSCM_SHARE="/share1" +export WORKSPACE_DIR="${WORKSPACE}" +# Build the Edex RPMs. +cd ${RPM_PROJECT_DIR}/awips2.edex/deploy.builder +time ./${RPM_BUILD_SCRIPT} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +# Copy the RPMs to the Repo Directory ~ edex. +cp -v ${RPM_DEST_DIR}/* ${REPO_SHARE_ROOT}/${BUILD_DATE}/edex +rm -fv ${RPM_DEST_DIR}/* + +# Build the CAVE RPMs. +cd ${RPM_PROJECT_DIR}/awips2.cave/deploy.builder +time ./${RPM_BUILD_SCRIPT} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +# Copy the RPMs to the Repo Directory ~ cave. +cp -v ${RPM_DEST_DIR}/* ${REPO_SHARE_ROOT}/${BUILD_DATE}/cave +rm -fv ${RPM_DEST_DIR}/* + +# Copy the baselined comps.xml to the repository. +if [ -f ${REPO_SHARE_ROOT}/comps.xml ]; then + rm -fv ${REPO_SHARE_ROOT}/comps.xml + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +fi + +if [ ! -f ${RPM_PROJECT_DIR}/common/yum/arch.x86/comps.xml ]; then + file ${RPM_PROJECT_DIR}/common/comps.xml + exit 1 +fi +cp -v ${RPM_PROJECT_DIR}/common/comps.xml ${REPO_SHARE_ROOT} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +echo "Finished ... $0." + +exit 0 diff --git a/rpms/build/nightly/buildProjects.sh b/rpms/build/nightly/buildProjects.sh new file mode 100644 index 0000000000..98548e6109 --- /dev/null +++ b/rpms/build/nightly/buildProjects.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +echo "Starting ... $0." + +ECLIPSE_HOME="/opt/uframe-eclipse" + +function buildProject() +{ + # $1 == BUILD DIRECTORY + + BUILD_DIRECTORY=${1} + + if [ ! -d ${WORKSPACE}/all/${BUILD_DIRECTORY} ]; then + echo "Unable To Find ... ${BUILD_DIRECTORY}" + return 1 + fi + cd ${WORKSPACE}/all/${BUILD_DIRECTORY} + time ./build.sh -eclipse=${ECLIPSE_HOME} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "Failed To Build Project(s) In ... ${BUILD_DIRECTORY}." + return 1 + fi +} + +PROJECTS_TO_BUILD=('build.edex' 'build.rcm' 'build') + +for project in ${PROJECTS_TO_BUILD[*]}; do + buildProject ${project} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +done + +echo "Finished ... $0." + +exit 0 diff --git a/rpms/build/nightly/prepareWorkspace.sh b/rpms/build/nightly/prepareWorkspace.sh new file mode 100644 index 0000000000..5ad466f6cd --- /dev/null +++ b/rpms/build/nightly/prepareWorkspace.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +echo "Starting ... $0." + +if [ -d ${WORKSPACE}/all/rpmbuild ]; then + rm -rf ${WORKSPACE}/all/rpmbuild + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +fi + +mkdir -p ${WORKSPACE}/all/rpmbuild +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${WORKSPACE}/all/rpmbuild/BUILD +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${WORKSPACE}/all/rpmbuild/RPMS/i386 +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${WORKSPACE}/all/rpmbuild/SOURCES +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${WORKSPACE}/all/rpmbuild/SPECS +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi +mkdir -p ${WORKSPACE}/all/rpmbuild/SRPMS +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +echo "Finished ... $0." + +exit 0 diff --git a/rpms/build/nightly/svnCheckout.sh b/rpms/build/nightly/svnCheckout.sh new file mode 100644 index 0000000000..a69407d52a --- /dev/null +++ b/rpms/build/nightly/svnCheckout.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +echo "Starting ... $0." + +SVN_EXE=`which svn` +SVN_URL="file:///home/svnsync/mirror/products/awips/trunk2" +INDIVIDUAL_PROJECT_CHECKOUTS=('cave' 'cots' 'edexOsgi' 'nativeLib' 'RadarServer' 'ncep') +ENTIRE_PROJECT_CHECKOUTS=('rpms' 'pythonPackages') + +# Create the workspace directory. +if [ -d all ]; then + rm -rf all/ +fi +mkdir -p all + +cd all/ + +for project in ${INDIVIDUAL_PROJECT_CHECKOUTS[*]}; do + for i in `${SVN_EXE} list ${SVN_URL}/${project}`; do + if [ "${i}" != ".project" ]; then + ${SVN_EXE} export -q --force ${SVN_URL}/${project}/${i} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi + fi + done +done + +for project in ${ENTIRE_PROJECT_CHECKOUTS[*]}; do + ${SVN_EXE} export -q --force ${SVN_URL}/${project} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +done + +if [ -d rpms ]; then + mv rpms Installer.rpm +fi +echo "Finished ... $0." + +exit 0 diff --git a/rpms/build/nightly/updateSpecVersions.sh b/rpms/build/nightly/updateSpecVersions.sh new file mode 100644 index 0000000000..17481b96a5 --- /dev/null +++ b/rpms/build/nightly/updateSpecVersions.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +echo "Starting ... $0." + +SPECS_FILE="component.spec" +RPM_PROJECT_DIR="${WORKSPACE}/all/Installer.rpm" +RPM_INVENTORY="${RPM_PROJECT_DIR}/awips2-rpm.db" +VERSION_FILE="${RPM_PROJECT_DIR}/version.txt" + +# Get the current version. +VERSION=`cat ${VERSION_FILE}` + +# Determine the nightly release - based on the date. +RELEASE="${BUILD_DATE}" + +function replaceVersionAndRelease() +{ + # $1 == Directory with the specs file. + local SPECS_DIRECTORY=${1} + + echo "INFO: Updating Specs File In - ${SPECS_DIRECTORY}." + + # Update The Specs File. + perl -p -i -e "s/Version: 1.0.0/Version: ${VERSION}/g" \ + ${SPECS_DIRECTORY}/${SPECS_FILE} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi + perl -p -i -e "s/Release: 1/Release: ${RELEASE}/g" \ + ${SPECS_DIRECTORY}/${SPECS_FILE} + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +} + +# Query the db file to find the core rpms that need to be updated. +SQL="SELECT buildDirectory FROM awips2_core_rpms WHERE dynamicVersion='Y';" +for directory in `echo ${SQL} | sqlite3 ${RPM_INVENTORY}`; do + replaceVersionAndRelease ${RPM_PROJECT_DIR}/${directory} +done + +# Query the db file to find the python site-package rpms that need to be updated. +SQL="SELECT buildDirectory FROM awips2_python_site_package_rpms WHERE dynamicVersion='Y';" +for directory in `echo ${SQL} | sqlite3 ${RPM_INVENTORY}`; do + replaceVersionAndRelease ${RPM_PROJECT_DIR}/${directory} +done + +# Query the db file to find the edex rpms that need to be updated. +SQL="SELECT buildDirectory FROM awips2_edex_rpms;" +for directory in `echo ${SQL} | sqlite3 ${RPM_INVENTORY}`; do + replaceVersionAndRelease ${RPM_PROJECT_DIR}/${directory} +done + +# Query the db file to find the cave rpms that need to be updated. +SQL="SELECT buildDirectory FROM awips2_cave_rpms;" +for directory in `echo ${SQL} | sqlite3 ${RPM_INVENTORY}`; do + replaceVersionAndRelease ${RPM_PROJECT_DIR}/${directory} +done + +echo "Finished ... $0." + +exit 0 diff --git a/rpms/build/release/attempt32BitBuild.sh b/rpms/build/release/attempt32BitBuild.sh new file mode 100644 index 0000000000..c5a6c54b1b --- /dev/null +++ b/rpms/build/release/attempt32BitBuild.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +# TODO - Check Number Of Arguments. +WORKSPACE=${1} +SHARE_DIR=${2} +# This is where we will copy the rpms to once they are +# successfully built. +REPO_DEST=${3} + +# Determine if we are 32-bit? +CHECK_ARCH=`uname -i` + +if [ ! "${CHECK_ARCH}" = "i386" ]; then + echo "INFO: The 32-Bit Build Will Not Be Executed." + exit 0 +fi + +# Verify that we are being ran as root. +if [ ! "${USER}" = "root" ]; then + echo "ERROR: This Script Must Be Ran As 'root'." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# Since we need to build as root. +RPM_DEST_DIR="/usr/src/redhat/RPMS/i386" + +echo "INFO: Starting The 32-Bit Build." +# Set script variables +export BUILDROOT_DIR=/tmp/awips-component + +# Build awips2-httpd-pypies +PYPIES_PROJECT_DIR="Installer.rpm/awips2.core/Installer.httpd-pypies" +HTTPD_PYPIES_RPM="awips2-httpd-pypies-2.2.3-*.i386.rpm" +# We Need The Source RPM. +PYPIES_SRC_RPM="${SHARE_DIR}/packages/httpd-pypies/src/awips2-httpd-pypies-2.2.3-22.src.rpm" + +# Ensure That The Source RPM Exists. +if [ ! -f ${PYPIES_SRC_RPM} ]; then + echo "ERROR: Unable to locate the httpd-pypies source rpm." + echo "Unable To Continue ... Terminating." + exit 1 +fi +# If the source rpm does exist install it. +rpm -ivh ${PYPIES_SRC_RPM} +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Installation of the httpd-pypies src rpm Failed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# Prepare to build the rpm. +export PROJECT_DIR="${WORKSPACE}/Installer.rpm/awips2.core/Installer.httpd-pypies" +# Build awips2-httpd-pypies +rpmbuild -ba --target=i386 --buildroot ${BUILDROOT_DIR} ${PROJECT_DIR}/component.spec +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Build of awips2-httpd-pypies Failed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# ----------------------------------------------------------------------------------------------- # + +# Prepare to build the rpm. +LDM_PROJECT_DIR="Installer.rpm/awips2.core/Installer.ldm" +LDM_RPM="awips2-ldm-6.8.1-*.i386.rpm" + +export WORKSPACE_DIR=${WORKSPACE} +LDM_PROJECT_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.core/Installer.ldm" +# Build awips2-ldm +rpmbuild -ba --target=i386 --buildroot ${BUILDROOT_DIR} ${LDM_PROJECT_DIR}/component.spec +RC=$? +if [ ${RC} -ne 0 ]; then + echo "ERROR: Build of awips2-ldm Failed." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# ----------------------------------------------------------------------------------------------- # + +# Prepare to build the rpm. awips2-python-pygtk.i386 +PYGTK_PROJECT_DIR="${WORKSPACE_DIR}/Installer.rpm/python.site-packages/Installer.pygtk" +PYGTK_RPM="awips2-python-pygtk-2.8.6-1.i386.rpm" + +rpmbuild -ba --target=i386 \ + --buildroot ${BUILDROOT_DIR} \ + --define '_baseline_workspace %(echo ${WORKSPACE_DIR})' \ + --define '_build_root %(echo ${BUILDROOT_DIR})' \ + ${PYGTK_PROJECT_DIR}/component.spec +if [ $? -ne 0 ]; then + echo "ERROR: Build of awips2-python-pygtk Failed." + echo "Unable to Continue ... Terminating." + exit 1 +fi + +# ----------------------------------------------------------------------------------------------- # + +# Prepare to build the rpm. awips2-python-pycairo.i386 +PYCAIRO_PROJECT_DIR="${WORKSPACE_DIR}/Installer.rpm/python.site-packages/Installer.pycairo" +PYCAIRO_RPM="awips2-python-pycairo-1.2.2-1.i386.rpm" + +rpmbuild -ba --target=i386 \ + --buildroot ${BUILDROOT_DIR} \ + --define '_baseline_workspace %(echo ${WORKSPACE_DIR})' \ + --define '_build_root %(echo ${BUILDROOT_DIR})' \ + ${PYCAIRO_PROJECT_DIR}/component.spec +if [ $? -ne 0 ]; then + echo "ERROR: Build of awips2-python-pycairo Failed." + echo "Unable to Continue ... Terminating." + exit 1 +fi + +# ----------------------------------------------------------------------------------------------- # + +# Copy the rpms that we just built to the specified destination. +cp -v ${RPM_DEST_DIR}/${HTTPD_PYPIES_RPM} ${REPO_DEST} +cp -v ${RPM_DEST_DIR}/${LDM_RPM} ${REPO_DEST} +cp -v ${RPM_DEST_DIR}/${PYGTK_RPM} ${REPO_DEST} +cp -v ${RPM_DEST_DIR}/${PYCAIRO_RPM} ${REPO_DEST} diff --git a/rpms/build/release/buildBaselineProjects.sh b/rpms/build/release/buildBaselineProjects.sh new file mode 100644 index 0000000000..1f24e83bfb --- /dev/null +++ b/rpms/build/release/buildBaselineProjects.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Next, we need to build edex, cave, and alertviz. + +# TODO: Consider building only the projects that are required (ex: if the user specifies awips2-edex, there is no reason to build cave, rcm, ...) +echo "INFO: Begin - Building edex, cave, rcm, and alertviz." + +function buildProject() +{ + # Arguments: + # ${1} == BUILD DIRECTORY + + BUILD_DIRECTORY=${1} + + cd ${BUILD_DIRECTORY} + echo "INFO: Building ... ${BUILD_DIRECTORY}" + time ./build.sh -eclipse=${ECLIPSE_HOME} + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "ERROR: Failed To Build ... '${BUILD_DIRECTORY}." + echo "Unable To Continue ... Terminating." + exit 1 + fi + + # Exit the build directory + cd ${WORKSPACE} +} + +PROJECTS_TO_BUILD=( 'build.edex' 'build.rcm' 'build' ) +for project in ${PROJECTS_TO_BUILD[*]}; +do + buildProject ${project} +done + +echo "INFO: Finished - Building edex, cave, rcm, and alertviz." diff --git a/rpms/build/release/buildCaveRPMs.sh b/rpms/build/release/buildCaveRPMs.sh new file mode 100644 index 0000000000..caba04572b --- /dev/null +++ b/rpms/build/release/buildCaveRPMs.sh @@ -0,0 +1,26 @@ +# Now, it is time to build the AWIPS II Cave RPMs. +echo "INFO: Begin - Building AWIPS II Cave RPMs." + +export RPM_TOP_DIR="${WORKSPACE}/rpmbuild" +export WORKSPACE_DIR="${WORKSPACE}" +BUILDROOT_DIR=/tmp/awips2-component + +COMPONENT="" +COMPONENT_DIR="" + +export AWIPSCM_SHARE=${SHARE_DIR} + +function updateCaveRepository() +{ + mv ${RPM_TOP_DIR}/RPMS/i386/* ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/cave +} + +cd ${WORKSPACE}/Installer.rpm/awips2.cave/deploy.builder +time ./build.sh ${AWIPSII_VERSION} ${AWIPSII_RELEASE} +RC=$? +if [ ${RC} -ne 0 ]; then + exit ${RC} +fi +updateCaveRepository + +echo "INFO: Finish - Building AWIPS II Cave RPMs." diff --git a/rpms/build/release/buildCoreRPMs.sh b/rpms/build/release/buildCoreRPMs.sh new file mode 100644 index 0000000000..2275adda2e --- /dev/null +++ b/rpms/build/release/buildCoreRPMs.sh @@ -0,0 +1,238 @@ +#!/bin/bash + +DB_FILE="${WORKSPACE}/Installer.rpm/awips2-rpm.db" + +# Now, it is time to build the AWIPS II Core rpms. +echo "INFO: Begin - Building AWIPS II Core RPMs." +export RPM_TOP_DIR="${WORKSPACE}/rpmbuild" +export WORKSPACE_DIR="${WORKSPACE}" +export BUILDROOT_DIR=/tmp/awips2-component + +COMPONENT="" +COMPONENT_DIR="" + +export AWIPSCM_SHARE=${SHARE_DIR} +export CFLAGS="-m32 -O2" +export LDFLAGS="-m32" +export BASECFLAGS="-m32 -O2" +export LD="ld -melf_i386" + +# Build the qpid-cluster rpms. + +function updateCoreRepository() +{ + mv ${RPM_TOP_DIR}/RPMS/i386/* ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/core + mv ${RPM_TOP_DIR}/RPMS/noarch/* ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/core +} + +function updateSpecsFileIfNecessary() +{ + SQL="SELECT dynamicVersion FROM awips2_core_rpms WHERE component = '${COMPONENT}';" + + UPDATE_FLAG=`echo ${SQL} | sqlite3 ${DB_FILE}` + if [ "${UPDATE_FLAG}" = "Y" ]; then + perl -p -i -e "s/Version: 1.0.0/Version: ${AWIPSII_VERSION}/g" ${COMPONENT_SPECS} + perl -p -i -e "s/Release: 1/Release: ${AWIPSII_RELEASE}/g" ${COMPONENT_SPECS} + fi +} + +function buildRPM() +{ + if [ -f ${RPM_TOP_DIR}/BUILD/component-files.txt ]; then + rm -f ${RPM_TOP_DIR}/BUILD/component-files.txt + fi + + rm -rf ${BUILDROOT_DIR} + + updateSpecsFileIfNecessary + time rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_build_root %(echo ${BUILDROOT_DIR})' \ + --define '_baseline_workspace %(echo ${WORKSPACE})' \ + --buildroot ${BUILDROOT_DIR} ${COMPONENT_SPECS} + RC="$?" + + if [ ! "${RC}" = "0" ]; then + echo "ERROR: The build of '${COMPONENT}' has FAILED." + exit 1 + fi +} + +function buildLocalizationRPMs() +{ + # Find all of the localization.${site} directories, if there are any. + ls ${WORKSPACE}/localization.* > /dev/null 2>&1 + RC=$? + if [ ${RC} -ne 0 ]; then + # There are not any localization projects. + echo "INFO: There are not any localization projects." + return 0 + fi + + for dir in `cd ${WORKSPACE}; ls -1d localization.*`; do + site=`perl ${WORKSPACE}/Installer.rpm/awips2.core/deploy.builder/extractSite.pl ${dir}` + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi + export LOCALIZATION_DIRECTORY="${dir}" + export COMPONENT_NAME="awips2-localization-${site}" + echo "site: ${site}" + + rm -rf ${BUILDROOT_DIR} + + rpmbuild -ba \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --define '_component_name %(echo ${COMPONENT_NAME})' \ + --define '_baseline_workspace %(echo ${WORKSPACE})' \ + --define '_localization_directory %(echo ${LOCALIZATION_DIRECTORY})' \ + --buildroot ${BUILDROOT_DIR} \ + ${WORKSPACE}/Installer.rpm/awips2.core/Installer.localization/component.spec + RC=$? + unset LOCALIZATION_DIRECTORY + unset COMPONENT_NAME + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed to build ${COMPONENT_NAME}." + exit 1 + fi + done +} + +function buildVersionRPM() +{ + rm -rf ${BUILDROOT_DIR} + + export AWIPSII_BUILD_DATE=`date +"%m-%d-%Y"` + export AWIPSII_BUILD_TIME=`date +"%T %Z"` + export AWIPSII_BUILD_SYSTEM=`uname -n` + export AWIPSII_BUILD_TAG=`perl ${WORKSPACE}/Installer.rpm/awips2.core/deploy.builder/extractTag.pl ${SVN}` + + rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --define '_component_build_date %(echo ${AWIPSII_BUILD_DATE})' \ + --define '_component_build_time %(echo ${AWIPSII_BUILD_TIME})' \ + --define '_component_build_system %(echo ${AWIPSII_BUILD_SYSTEM})' \ + --define '_svn_tag %(echo ${AWIPSII_BUILD_TAG})' \ + --buildroot ${BUILDROOT_DIR} \ + ${COMPONENT_SPECS} + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: The build of '${COMPONENT}' has FAILED." + exit 1 + fi +} + +function buildQpidRPMs() +{ + cd ${WORKSPACE_DIR}/Installer.rpm/awips2.qpid/deploy.builder + + chmod a+x build.sh + time ./build.sh + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: The build of the QPID RPMs has FAILED." + exit 1 + fi + + # If we reach this point, we have successfully built the + # qpid rpms, so it is time to copy them to the workspace + # "repository". + + # There are only three qpid rpms that we will want to copy. + local QPID_CLIENT_RPM="awips2-qpid-client-0.7.946106-*.i386.rpm" + local QPID_SERVER_RPM="awips2-qpid-server-0.7.946106-*.i386.rpm" + local QPID_STORE_RPM="awips2-qpid-server-store-0.7.946106-*.i386.rpm" + + local QPID_RPM_DIR="${WORKSPACE_DIR}/Installer.rpm/awips2.qpid/RPMS/i386" + cp -v ${QPID_RPM_DIR}/${QPID_CLIENT_RPM} \ + ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/core + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed To Copy ... ${QPID_CLIENT_RPM}." + exit 1 + fi + cp -v ${QPID_RPM_DIR}/${QPID_SERVER_RPM} \ + ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/core + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed To Copy ... ${QPID_SERVER_RPM}." + exit 1 + fi + cp -v ${QPID_RPM_DIR}/${QPID_STORE_RPM} \ + ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/core + RC=$? + if [ ${RC} -ne 0 ]; then + echo "ERROR: Failed To Copy ... ${QPID_STORE_RPM}." + exit 1 + fi +} + +function loopThroughAllCoreRPMs() +{ + SELECT_ALL_SQL="SELECT component FROM awips2_core_rpms ORDER BY component;" + + # Select All RPMs From The Core DB + for component in `echo ${SELECT_ALL_SQL} | sqlite3 ${DB_FILE}`; do + COMPONENT="${component}" + #We build the qpid-cluster RPMs as their own group because their + #build has a different structure. + if [ ! "${COMPONENT}" = "awips2-httpd-pypies" ] && + [ ! "${COMPONENT}" = "awips2-eclipse" ]; then + # Scan DB for Core RPMs + SQL="SELECT buildDirectory FROM awips2_core_rpms WHERE component = '${COMPONENT}';" + + COMPONENT_DIR=`echo ${SQL} | sqlite3 ${DB_FILE}` + # We will be building the rpms directly, instead of using the "batch" build scripts that are included in the rpm + # build projects. + COMPONENT_SPECS="${WORKSPACE_DIR}/Installer.rpm/${COMPONENT_DIR}/component.spec" + + if [ "${COMPONENT}" != "awips2" ]; then + buildRPM + else + buildVersionRPM + fi + fi + done + + # Build The Localization RPMs + buildLocalizationRPMs + + # Build The QPID RPMs + buildQpidRPMs +} + +function loopThroughSpecifiedRPMs() +{ + # Scan DB for Core RPMs + for component in ${RPMS_TO_BUILD[*]}; do + COMPONENT="${component}" + SQL="SELECT buildDirectory FROM awips2_core_rpms WHERE component = '${COMPONENT}';" + + COMPONENT_DIR=`echo ${SQL} | sqlite3 ${DB_FILE}` + # We will be building the rpms directly, instead of using the "batch" build scripts that are included in the rpm + # build projects. + if [ ! "${COMPONENT_DIR}" = "" ]; then + COMPONENT_SPECS="${WORKSPACE_DIR}/Installer.rpm/${COMPONENT_DIR}/component.spec" + buildRPM + fi + done +} + + +# For the PostgreSQL Build ~ by hudson user = tomcat +if [ -f /etc/profile.d/awipsPSQL.sh ]; then + source /etc/profile.d/awipsPSQL.sh +fi + +if [ "${BUILD_ALL_RPMS}" = "false" ]; then + loopThroughSpecifiedRPMs +else + loopThroughAllCoreRPMs +fi + +updateCoreRepository +echo "INFO: Finished - Building AWIPS II Core RPMs." diff --git a/rpms/build/release/buildEdexRPMs.sh b/rpms/build/release/buildEdexRPMs.sh new file mode 100644 index 0000000000..1338cb7388 --- /dev/null +++ b/rpms/build/release/buildEdexRPMs.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +DB_FILE="${WORKSPACE}/Installer.rpm/awips2-rpm.db" + +# Now, it is time to build the AWIPS II Edex RPMs. +echo "INFO: Begin - Building AWIPS II Edex RPMs." + +export RPM_TOP_DIR="${WORKSPACE}/rpmbuild" +export WORKSPACE_DIR="${WORKSPACE}" +BUILDROOT_DIR=/tmp/awips2-component + +COMPONENT="" +COMPONENT_DIR="" + +export AWIPSCM_SHARE=${SHARE_DIR} + +function updateEdexRepository() +{ + mv ${RPM_TOP_DIR}/RPMS/i386/* ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/edex +} + +function updateSpecsFile() +{ + perl -p -i -e "s/Version: 1.0.0/Version: ${AWIPSII_VERSION}/g" ${COMPONENT_SPECS} + perl -p -i -e "s/Release: 1/Release: ${AWIPSII_RELEASE}/g" ${COMPONENT_SPECS} +} + +function buildRPM() +{ + if [ -f ${RPM_TOP_DIR}/BUILD/component-files.txt ]; then + rm -f ${RPM_TOP_DIR}/BUILD/component-files.txt + fi + + rm -rf ${BUILDROOT_DIR} + + updateSpecsFile + time rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --buildroot ${BUILDROOT_DIR} ${COMPONENT_SPECS} + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "ERROR: The build of '${COMPONENT}' has FAILED." + exit 1 + fi +} + +function loopThroughAllEdexRPMs() +{ + SELECT_ALL_SQL="SELECT component FROM awips2_edex_rpms ORDER BY component;" + + # Select All RPMs From The Edex DB + for component in `echo ${SELECT_ALL_SQL} | sqlite3 ${DB_FILE}`; do + COMPONENT="${component}" + # Scan DB for Edex RPMs + SQL="SELECT buildDirectory FROM awips2_edex_rpms WHERE component = '${COMPONENT}';" + + COMPONENT_DIR=`echo ${SQL} | sqlite3 ${DB_FILE}` + # We will be building the rpms directly, instead of using the "batch" build scripts that are included in the rpm + # build projects. + COMPONENT_SPECS="${WORKSPACE_DIR}/Installer.rpm/${COMPONENT_DIR}/component.spec" + buildRPM + done + + # Build edex-npp + COMPONENT_SPECS="${WORKSPACE_DIR}/Installer.rpm/awips2.edex/Installer.edex-npp/component.spec" + buildRPM +} + +function loopThroughSpecifiedRPMs() +{ + # Scan DB for Python Site-Package RPMs + for component in ${RPMS_TO_BUILD[*]}; do + COMPONENT="${component}" + SQL="SELECT buildDirectory FROM awips2_edex_rpms WHERE component = '${COMPONENT}';" + + COMPONENT_DIR=`echo ${SQL} | sqlite3 ${DB_FILE}` + # We will be building the rpms directly, instead of using the "batch" build scripts that are included in the rpm + # build projects. + if [ ! "${COMPONENT_DIR}" = "" ]; then + COMPONENT_SPECS="${WORKSPACE_DIR}/Installer.rpm/${COMPONENT_DIR}/component.spec" + buildRPM + fi + done +} + +if [ "${BUILD_ALL_RPMS}" = "false" ]; then + loopThroughSpecifiedRPMs +else + loopThroughAllEdexRPMs +fi + +updateEdexRepository + +echo "INFO: Finish - Building AWIPS II Edex RPMs." diff --git a/rpms/build/release/buildPythonExtensionRPMs.sh b/rpms/build/release/buildPythonExtensionRPMs.sh new file mode 100644 index 0000000000..242b875c1d --- /dev/null +++ b/rpms/build/release/buildPythonExtensionRPMs.sh @@ -0,0 +1,106 @@ +DB_FILE="${WORKSPACE}/Installer.rpm/awips2-rpm.db" + +# Now, it is time to build the AWIPS II Python Site-Package rpms. +echo "INFO: Begin - Building AWIPS II Python Site-Package RPMs." + +export RPM_TOP_DIR="${WORKSPACE}/rpmbuild" +export WORKSPACE_DIR="${WORKSPACE}" +export BUILDROOT_DIR=/tmp/awips2-component + +COMPONENT="" +COMPONENT_DIR="" + +export AWIPSCM_SHARE=${SHARE_DIR} +export CPPFLAGS="-m32" +export PYTHON_EXE="/awips2/python/bin/python" +export LD_LIBRARY_PATH="/awips2/python/lib" +# Just In Case python-devel 2.7 is not installed. scipy ignored +# C++ environment flags. +if [ ! -f /usr/local/lib/libpython2.7.so ]; then + # Without this, we will not be able to build every python site-package. + echo "ERROR: There Is No lpython2.7 In /usr/local/lib." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +function updateSitePackageRepository() +{ + mv ${RPM_TOP_DIR}/RPMS/i386/* ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/python.site-packages +} + +function updateSpecsFileIfNecessary() +{ + SQL="SELECT dynamicVersion FROM awips2_python_site_package_rpms WHERE component = '${COMPONENT}';" + + UPDATE_FLAG=`echo ${SQL} | sqlite3 ${DB_FILE}` + if [ "${UPDATE_FLAG}" = "Y" ]; then + perl -p -i -e "s/Version: 1.0.0/Version: ${AWIPSII_VERSION}/g" ${COMPONENT_SPECS} + perl -p -i -e "s/Release: 1/Release: ${AWIPSII_RELEASE}/g" ${COMPONENT_SPECS} + fi +} + +function buildRPM() +{ + if [ -f ${RPM_TOP_DIR}/BUILD/component-files.txt ]; then + rm -f ${RPM_TOP_DIR}/BUILD/component-files.txt + fi + + rm -rf ${BUILDROOT_DIR} + + updateSpecsFileIfNecessary + time rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --define '_build_root %(echo ${BUILDROOT_DIR})' \ + --buildroot ${BUILDROOT_DIR} ${COMPONENT_SPECS} + RC="$?" + if [ ! "${RC}" = "0" ]; then + echo "ERROR: The build of '${COMPONENT}' has FAILED." + fi +} + +# Need To Add Logic For Installing Dependencies Based On The Build Order. +function loopThroughAllSitePackageRPMs() +{ + SELECT_ALL_SQL="SELECT component FROM awips2_python_site_package_rpms ORDER BY buildOrder, component;" + + # Select All RPMs From The Python Site-Package DB + for component in `echo ${SELECT_ALL_SQL} | sqlite3 ${DB_FILE}`; do + COMPONENT="${component}" + + # Scan DB for Python Site-Package RPMs + SQL="SELECT buildDirectory FROM awips2_python_site_package_rpms WHERE component = '${COMPONENT}';" + + COMPONENT_DIR=`echo ${SQL} | sqlite3 ${DB_FILE}` + # We will be building the rpms directly, instead of using the "batch" build scripts that are included in the rpm + # build projects. + COMPONENT_SPECS="${WORKSPACE_DIR}/Installer.rpm/${COMPONENT_DIR}/component.spec" + buildRPM + done +} + +function loopThroughSpecifiedRPMs() +{ + # Scan DB for Python Site-Package RPMs + for component in ${RPMS_TO_BUILD[*]}; do + COMPONENT="${component}" + SQL="SELECT buildDirectory FROM awips2_python_site_package_rpms WHERE component = '${COMPONENT}';" + + COMPONENT_DIR=`echo ${SQL} | sqlite3 ${DB_FILE}` + # We will be building the rpms directly, instead of using the "batch" build scripts that are included in the rpm + # build projects. + if [ ! "${COMPONENT_DIR}" = "" ]; then + COMPONENT_SPECS="${WORKSPACE_DIR}/Installer.rpm/${COMPONENT_DIR}/component.spec" + buildRPM + fi + done +} + +if [ "${BUILD_ALL_RPMS}" = "false" ]; then + loopThroughSpecifiedRPMs +else + loopThroughAllSitePackageRPMs +fi + +updateSitePackageRepository + +echo "INFO: Finish - Building AWIPS II Python Site-Package RPMs." diff --git a/rpms/build/release/constructADEPackage.sh b/rpms/build/release/constructADEPackage.sh new file mode 100644 index 0000000000..a9bf588e2f --- /dev/null +++ b/rpms/build/release/constructADEPackage.sh @@ -0,0 +1 @@ +#!/bin/bash diff --git a/rpms/build/release/createRPMBuildDirectories.sh b/rpms/build/release/createRPMBuildDirectories.sh new file mode 100644 index 0000000000..7756b8b1f9 --- /dev/null +++ b/rpms/build/release/createRPMBuildDirectories.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Next, we create the directory structure that will be required to build the rpms. +echo "INFO: Begin - Creating RPM Build Directory Structure." +# Refresh the rpmbuild directory structure. +if [ -d ${WORKSPACE}/rpmbuild ]; then + rm -rf ${WORKSPACE}/rpmbuild +fi + +mkdir -p ${WORKSPACE}/rpmbuild/BUILD +mkdir -p ${WORKSPACE}/rpmbuild/RPMS/i386 +mkdir -p ${WORKSPACE}/rmpbuild/SOURCES +mkdir -p ${WORKSPACE}/rpmbuild/SPECS +mkdir -p ${WORKSPACE}/rpmbuild/SRPMS + +# Create a repository directory structure within our workspace +mkdir -p ${WORKSPACE}/${REPO_ROOT_DIR} +mkdir -p ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR} +mkdir -p ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/boost +mkdir -p ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/cave +mkdir -p ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/core +mkdir -p ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/edex +mkdir -p ${WORKSPACE}/${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR}/python.site-packages + +# Copy the baselined comps.xml file to the repository. +if [ ! -f ${WORKSPACE}/${REPO_ROOT_DIR}/comps.xml ]; then + rm -fv ${WORKSPACE}/${REPO_ROOT_DIR}/comps.xml + RC=$? + if [ ${RC} -ne 0 ]; then + exit 1 + fi +fi + +BASELINED_COMPS_XML="${WORKSPACE}/Installer.rpm/common/yum/arch.x86/comps.xml" +if [ ! -f ${BASELINED_COMPS_XML} ]; then + file ${BASELINED_COMPS_XML} + exit 1 +fi +cp -v ${BASELINED_COMPS_XML} ${WORKSPACE}/${REPO_ROOT_DIR} +RC=$? +if [ ${RC} -ne 0 ]; then + exit 1 +fi + +echo "INFO: Finished - Creating RPM Build Directory Structure." diff --git a/rpms/build/release/prepareWorkspace.sh b/rpms/build/release/prepareWorkspace.sh new file mode 100644 index 0000000000..895216d452 --- /dev/null +++ b/rpms/build/release/prepareWorkspace.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Next, we need to prepare our workspace because Hudson does not have 'export' capability. +echo "INFO: Begin - Preparing Workspace" + +# Remove all SVN metadata. +find ./ -name .svn -exec rm -rf {} \; + +# There are a few projects we need to move around. We want all of the individual cave, +# cots, edexOsgi, nativeLib, and RadarServer projects in our workspace. +PROJECT_LIST=( 'cave' 'cots' 'edexOsgi' 'nativeLib' 'RadarServer' 'ncep' 'localization' ) +for project in ${PROJECT_LIST[*]}; +do + # Move the individual projects out of the project directory into the workspace. + mv ${project}/* . + # Remove the empty project directory. + rm -rf ${project} +done + +echo "INFO: Finished - Preparing Workspace" diff --git a/rpms/build/release/validateBuild.sh b/rpms/build/release/validateBuild.sh new file mode 100644 index 0000000000..1ccb63152b --- /dev/null +++ b/rpms/build/release/validateBuild.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +# First, we validate the user-supplied arguments. +# * verify that our awips2 db file exists in the workspace; if not, there is nothing that we can do. +# * verify that directories exist. +# * verify that a valid version and release has been specified. +# * verify that if certain rpms were specified, they are actually rpms that can be built by-request. + +DB_FILE="${WORKSPACE}/Installer.rpm/awips2-rpm.db" + +if [ ! -f ${DB_FILE} ]; then + echo "ERROR: Unable To Find The DB File - ${DB_FILE}." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# Are We Building All RPMs? +if [ "${BUILD_ALL_RPMS}" = "false" ]; then + + # Verify that the user has specified valid rpms. + if [ "${RPMS_TO_BUILD}" = "" ]; then + echo "ERROR: We Were Told Not To Build All RPMs; However, No RPMs To Build Have Been Specified." + echo "Unable To Continue ... Terminating." + exit 1 + fi + + for component in ${RPMS_TO_BUILD[*]}; + do + SQL="SELECT COUNT(*) FROM awips2_core_rpms WHERE component = '${component}' AND dynamicVersion = 'Y';" + COUNT=`echo ${SQL} | sqlite3 ${DB_FILE}` + + echo "COUNT for ${component} is ${COUNT}." + if [ ${COUNT} -eq 0 ]; then + # Maybe, it is one of the few Python Site-Packages? + SQL="SELECT COUNT(*) FROM awips2_python_site_package_rpms WHERE component = '${component}' AND dynamicVersion = 'Y';" + + COUNT=`echo ${SQL} | sqlite3 ${DB_FILE}` + fi + + if [ ${COUNT} -eq 0 ]; then + # Maybe, it is one of the edex rpms? + SQL="SELECT COUNT(*) FROM awips2_edex_rpms WHERE component = '${component}';" + + COUNT=`echo ${SQL} | sqlite3 ${DB_FILE}` + fi + + if [ ${COUNT} -eq 0 ]; then + # Maybe, it is one of the cave rpms? + SQL="SELECT COUNT(*) FROM awips2_cave_rpms WHERE component = '${component}';" + + COUNT=`echo ${SQL} | sqlite3 ${DB_FILE}` + fi + + if [ ${COUNT} -eq 0 ]; then + # It is not a valid component! + echo "ERROR: '${component}' Is Not A Valid \"Build-On-Request\" AWIPS II Component." + echo "Unable To Continue ... Terminating." + exit 1 + fi + done +fi + +if [ ! -d ${ECLIPSE_HOME} ]; then + echo "ERROR: Unable To Find UFrame-Eclipse. Expected Location - ${ECLIPSE_HOME}." + echo "Unable To Continue ... Terminating." + exit 1 +fi +if [ ! -d ${REPO_ROOT_DIR}/${_32BIT_REPO_RPM_DIR} ]; then + echo "ERROR: Unable To Find The 32-Bit Repository Directory." + echo "Unable To Continue ... Terminating." + exit 1 +fi +if [ ! -d ${SHARE_DIR} ]; then + echo "ERROR: Unable To Find The AWIPSCM Share Directory." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +if [ "${AWIPSII_VERSION}" = "" ]; then + echo "ERROR: An Invalid Version Has Been Specified." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +if [ "${AWIPSII_RELEASE}" = "" ]; then + echo "ERROR: An Invalid Release Has Been Specified." + echo "Unable To Continue ... Terminating." + exit 1 +fi diff --git a/rpms/common/environment/awips2-cave/conf/localization.prefs b/rpms/common/environment/awips2-cave/conf/localization.prefs new file mode 100644 index 0000000000..30bb75ac6b --- /dev/null +++ b/rpms/common/environment/awips2-cave/conf/localization.prefs @@ -0,0 +1,5 @@ +#Wed Jun 06 17:14:31 CDT 2007 +eclipse.preferences.version=1 +userName=user +httpServerAddress=http\://localhost\:9581/services +siteName=OAX diff --git a/rpms/common/environment/awips2-cave/profile.d/awips2Cave.csh b/rpms/common/environment/awips2-cave/profile.d/awips2Cave.csh new file mode 100644 index 0000000000..ac34fc8983 --- /dev/null +++ b/rpms/common/environment/awips2-cave/profile.d/awips2Cave.csh @@ -0,0 +1,6 @@ +#!/bin/csh + +# Determine where cave has been installed. +set CAVE_INSTALL="/awips2/cave" +setenv TMCP_HOME "${CAVE_INSTALL}/caveEnvironment" +setenv FXA_HOME "${CAVE_INSTALL}/caveEnvironment" diff --git a/rpms/common/environment/awips2-cave/profile.d/awips2Cave.sh b/rpms/common/environment/awips2-cave/profile.d/awips2Cave.sh new file mode 100644 index 0000000000..30770d871b --- /dev/null +++ b/rpms/common/environment/awips2-cave/profile.d/awips2Cave.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# Determine where cave has been installed. +CAVE_INSTALL="/awips2/cave" +export TMCP_HOME=${CAVE_INSTALL}/caveEnvironment +export FXA_HOME=${CAVE_INSTALL}/caveEnvironment diff --git a/rpms/common/environment/awips2-gfesuite/profile.d/awips2GFESuite.csh b/rpms/common/environment/awips2-gfesuite/profile.d/awips2GFESuite.csh new file mode 100644 index 0000000000..01c3509d13 --- /dev/null +++ b/rpms/common/environment/awips2-gfesuite/profile.d/awips2GFESuite.csh @@ -0,0 +1,9 @@ +#!/bin/csh + +set GFESUITE_PATH="/awips2/GFESuite/bin" + +if $?PATH then + setenv PATH ${GFESUITE_PATH}:${PATH} +else + setenv PATH ${GFESUITE_PATH} +endif diff --git a/rpms/common/environment/awips2-gfesuite/profile.d/awips2GFESuite.sh b/rpms/common/environment/awips2-gfesuite/profile.d/awips2GFESuite.sh new file mode 100644 index 0000000000..769a33ee16 --- /dev/null +++ b/rpms/common/environment/awips2-gfesuite/profile.d/awips2GFESuite.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +GFESUITE_PATH="/awips2/GFESuite/bin" + +# Verify existence +if [ ! -d ${GFESUITE_PATH} ]; then + return +fi + +# Ensure that it is not already in the path +CHECK_PATH=`echo ${PATH} | grep ${GFESUITE_PATH}` +if [ ! "${CHECK_PATH}" = "" ]; then + return +fi + +# Add it to the path +export PATH=${GFESUITE_PATH}:${PATH} diff --git a/rpms/common/functions/rpmBuild.sh b/rpms/common/functions/rpmBuild.sh new file mode 100644 index 0000000000..49aa144387 --- /dev/null +++ b/rpms/common/functions/rpmBuild.sh @@ -0,0 +1,281 @@ +#!/bin/bash + +# Environment +# public +function prepareEnvironment() +{ + if [ "${WORKSPACE}" = "" ]; then + determineWorkspaceLocation + fi + + if [ "${AWIPSII_VERSION}" = "" ]; then + setVersion + fi + + if [ "${AWIPSII_RELEASE}" = "" ]; then + setRelease + fi + + if [ "${AWIPSII_BASELINE_STATIC}" = "" ]; then + setBaselineStatic + fi + + if [ "${AWIPSII_PYTHON_EXECUTABLE}" = "" ]; then + setPythonExecutable + fi + + if [ "${AWIPSII_ANT_EXECUTABLE}" = "" ]; then + setAntExecutable + fi + + if [ "${AWIPSII_UFRAME_ECLIPSE}" = "" ]; then + setUframeEclipse + fi + + setBuildRoot + setTopDir +} + +# private +function setVersion() +{ + export AWIPSII_VERSION=`cat ${WORKSPACE}/Installer.rpm/version.txt` +} + +# private +function setRelease() +{ + # The Current Date. + export AWIPSII_RELEASE=`date +"%Y%m%d"` +} + +# private +function setBaselineStatic() +{ + export AWIPSII_BASELINE_STATIC="/share1" +} + +# private +function setBuildRoot() +{ + export AWIPSII_BUILD_ROOT="${WORKSPACE}/Installer.rpm/rpmbuild/awips2-component" +} + +# private +function setTopDir() +{ + export AWIPSII_TOP_DIR="${WORKSPACE}/Installer.rpm/rpmbuild" +} + +# private +function setPythonExecutable() +{ + if [ ! -f /awips2/python/bin/python ]; then + echo "WARNING: The default AWIPS II Python Executable was not found." + export AWIPSII_PYTHON_EXECUTABLE="" + fi + export AWIPSII_PYTHON_EXECUTABLE="/awips2/python/bin/python" +} + +# private +function setAntExecutable() +{ + if [ ! -f /awips2/ant/bin/ant ]; then + echo "WARNING: The default AWIPS II Ant Executable was not found." + export AWIPSII_ANT_EXECUTABLE="" + fi + export AWIPSII_ANT_EXECUTABLE="/awips2/ant/bin/ant" +} + +# private +function setUframeEclipse() +{ + if [ ! -f /opt/uframe-eclipse/eclipse ]; then + echo "WARNING: The default Uframe-Eclipse was not found." + export AWIPSII_UFRAME_ECLIPSE="" + fi + export AWIPSII_UFRAME_ECLIPSE="/opt/uframe-eclipse" +} + +# private +function determineWorkspaceLocation() +{ + local SCRIPT_DIR=`dirname $_` + export WORKSPACE=`cd ${SCRIPT_DIR}/../../../; pwd;` + + return 0 +} + +# Baseline Project Build +# private +function pdeBuild() +{ + time ./build.sh -eclipse=${AWIPSII_UFRAME_ECLIPSE} + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi +} + +# private +function buildCAVEAndAlertViz() +{ + pushd . > /dev/null + cd ${WORKSPACE}/build + pdeBuild + RC=$? + popd > /dev/null + if [ ${RC} -ne 0 ]; then + return 1 + fi +} + +function buildCAVEP2() +{ + pushd . > /dev/null + cd ${WORKSPACE}/build + time ant -f p2-build.xml \ + -Dbuild.version=${AWIPSII_VERSION} \ + -Declipse.dir=${AWIPSII_UFRAME_ECLIPSE} + RC=$? + popd > /dev/null + if [ ${RC} -ne 0 ]; then + exit 1 + fi +} + +# private +function buildEDEX() +{ + pushd . > /dev/null + cd ${WORKSPACE}/build.edex + pdeBuild + RC=$? + popd > /dev/null + if [ ${RC} -ne 0 ]; then + return 1 + fi +} + +# private +function buildRCM() +{ + pushd . > /dev/null + cd ${WORKSPACE}/build.rcm + pdeBuild + RC=$? + popd > /dev/null + if [ ${RC} -ne 0 ]; then + return 1 + fi +} + +# public +function buildBaselineProjects() +{ + if [ "${BUILD_CAVE}" = "true" ]; then + buildCAVEAndAlertViz + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + buildCAVEP2 + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + fi + + if [ "${BUILD_EDEX}" = "true" ]; then + buildEDEX + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + fi + + if [ "${BUILD_CORE}" = "true" ]; then + buildRCM + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + fi + + if [ "${BUILD_CORE}" = "true" ] && + [ "${BUILD_CAVE}" = "false" ]; then + buildCAVEAndAlertViz + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + fi +} + +# RPM Build +# public +function execute() +{ + pushd . + cd ${SCRIPT_DIR}/../ + preBuild + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + + for directory in `ls -1d Installer.*`; + do + buildRPM "${directory}/component.spec" + RC=$? + if [ ${RC} -ne 0 ]; then + return 1 + fi + done + + postBuild + popd + + return 0 +} + +# public +function buildRPM() +{ + # ${1} = the specs file + export SPECS="${1}" + + preRPMBuild + RC=$? + if [ ${RC} -ne 0 ]; then + return 0 + fi + + if [ ! -f ${SPECS} ]; then + file ${SPECS} + return 1 + fi + + if [ -f ${AWIPSII_TOP_DIR}/BUILD/component-files.txt ]; then + rm -f ${AWIPSII_TOP_DIR}/BUILD/component-files.txt + fi + rpmbuild -ba --target=i386 \ + --define '_topdir %(echo ${AWIPSII_TOP_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --define '_baseline_workspace %(echo ${WORKSPACE})' \ + --define '_baseline_static %(echo ${AWIPSII_BASELINE_STATIC})' \ + --define '_python_exe %(echo ${AWIPSII_PYTHON_EXECUTABLE})' \ + --define '_ant_exe %(echo ${AWIPSII_ANT_EXECUTABLE})' \ + --define '_build_root %(echo ${AWIPSII_BUILD_ROOT})' \ + --define '_uframe_eclipse %(echo ${AWIPSII_UFRAME_ECLIPSE})' \ + ${SPECS} + RC=$? + + postRPMBuild ${SPECS} + if [ ${RC} -ne 0 ]; then + return 1 + fi + + return 0 +} diff --git a/rpms/common/static.versions/LATEST.climo b/rpms/common/static.versions/LATEST.climo new file mode 100644 index 0000000000..d4b95540f5 --- /dev/null +++ b/rpms/common/static.versions/LATEST.climo @@ -0,0 +1 @@ +20110819 \ No newline at end of file diff --git a/rpms/common/static.versions/LATEST.maps b/rpms/common/static.versions/LATEST.maps new file mode 100644 index 0000000000..cd2f75a00d --- /dev/null +++ b/rpms/common/static.versions/LATEST.maps @@ -0,0 +1 @@ +20111012 \ No newline at end of file diff --git a/rpms/common/static.versions/LATEST.ncep b/rpms/common/static.versions/LATEST.ncep new file mode 100644 index 0000000000..d4b95540f5 --- /dev/null +++ b/rpms/common/static.versions/LATEST.ncep @@ -0,0 +1 @@ +20110819 \ No newline at end of file diff --git a/rpms/common/static.versions/LATEST.topo b/rpms/common/static.versions/LATEST.topo new file mode 100644 index 0000000000..58bd847d7a --- /dev/null +++ b/rpms/common/static.versions/LATEST.topo @@ -0,0 +1 @@ +20110824 \ No newline at end of file diff --git a/rpms/common/yum/arch.x86/comps.xml b/rpms/common/yum/arch.x86/comps.xml new file mode 100644 index 0000000000..a9e4b78ffa --- /dev/null +++ b/rpms/common/yum/arch.x86/comps.xml @@ -0,0 +1,443 @@ + + + + + + awips2-standalone + AWIPS II Standalone + true + This Will Install All Of The AWIPS II Components That Are Required For A Standalone / ADAM Environment. + true + + awips2 + awips2-cli + awips2-database + awips2-maps-database + awips2-database-standalone-configuration + + awips2-edex-base + awips2-edex-bufr + awips2-edex-common-core + awips2-edex-core + awips2-edex-cots + awips2-edex-dat + awips2-edex-dataplugins + awips2-edex-gfe + awips2-edex-grib + awips2-edex-hydro + awips2-edex-native + awips2-edex-radar + awips2-edex-satellite + awips2-edex-text + awips2-edex-shapefiles + awips2-edex-configuration + awips2-edex-ncep-nsharp + awips2-edex-npp + awips2-edex-ncep + awips2-gfesuite-server + + awips2-httpd-pypies + awips2-adapt-native + awips2-hydroapps-shared + awips2-java + awips2-notification + awips2-postgresql + awips2-psql + awips2-pypies + awips2-python + awips2-qpid-client + awips2-qpid-server + awips2-qpid-server-store + awips2-rcm + awips2-tools + awips2-data.hdf5-topo + awips2-data.hdf5-gfe.climo + awips2-aviation-shared + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + awips2-python-pygtk + awips2-python-pycairo + awips2-localapps-environment + + + + + awips2-visualize + AWIPS II Visualize + true + This Will Install The AWIPS II Visualization Environment Including: CAVE, AlertViz, ... + true + + awips2 + awips2-java + awips2-python + awips2-psql + awips2-cave + awips2-cave-etc + awips2-cave-viz-alertviz-localization + awips2-cave-viz-avnfps + awips2-cave-viz-common-core + awips2-cave-viz-core + awips2-cave-viz-core-maps + awips2-cave-viz-cots + awips2-cave-viz-d2d-core + awips2-cave-viz-d2d-gfe + awips2-cave-viz-d2d-nsharp + awips2-cave-viz-d2d-skewt + awips2-cave-viz-d2d-xy + awips2-cave-viz-dat + awips2-cave-viz-dataplugin-obs + awips2-cave-viz-dataplugins + awips2-cave-viz-displays + awips2-cave-viz-gfe + awips2-cave-viz-grib + awips2-cave-viz-hydro + awips2-cave-viz-localization-perspective + awips2-cave-viz-ncep-core + awips2-cave-viz-ncep-dataplugins + awips2-cave-viz-ncep-displays + awips2-cave-viz-ncep-nsharp + awips2-cave-viz-ncep-perspective + awips2-cave-viz-radar + awips2-cave-viz-satellite + awips2-cave-viz-sounding + awips2-cave-viz-text + awips2-cave-viz-volumebrowser + awips2-cave-viz-warngen + awips2-cave-viz-nwsauth + awips2-cave-viz-thinclient + awips2-cave-viz-npp + awips2-gfesuite-client + + awips2-alertviz + awips2-cli + awips2-notification + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + awips2-python-pygtk + awips2-python-pycairo + awips2-localapps-environment + + + + + awips2-processing-server + AWIPS II Processing Server + true + This Will Install The AWIPS II Processing Server Including: Edex, ... + true + + awips2 + awips2-java + awips2-python + awips2-psql + + awips2-edex-base + awips2-edex-bufr + awips2-edex-common-core + awips2-edex-configuration + awips2-edex-core + awips2-edex-cots + awips2-edex-dat + awips2-edex-dataplugins + awips2-edex-gfe + awips2-edex-grib + awips2-edex-hydro + awips2-edex-native + awips2-edex-radar + awips2-edex-satellite + awips2-edex-shapefiles + awips2-edex-text + awips2-edex-ncep + awips2-edex-ncep-nsharp + awips2-edex-npp + awips2-gfesuite-server + + awips2-hydroapps-shared + awips2-adapt-native + awips2-qpid-client + awips2-cli + awips2-notification + awips2-tools + awips2-aviation-shared + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + awips2-python-pygtk + awips2-python-pycairo + awips2-localapps-environment + + + + + awips2-database-server + AWIPS II Database Server + true + This Will Install The AWIPS II Database Server And Create The Required AWIPS II Database Tables. + true + + awips2 + awips2-java + awips2-python + awips2-psql + awips2-postgresql + awips2-database + awips2-database-server-configuration + awips2-maps-database + awips2-rcm + awips2-cli + awips2-notification + awips2-tools + awips2-httpd-pypies + awips2-pypies + awips2-data.hdf5-topo + awips2-data.hdf5-gfe.climo + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + + + + + awips2-backup-database-server + AWIPS II Backup Database Server + true + This Will Install The AWIPS II Database Server. This Server Is Only A Backup And Is Designed To Work With 'awips2-database-server'. + true + + awips2 + awips2-java + awips2-python + awips2-psql + awips2-postgresql + awips2-rcm + awips2-cli + awips2-notification + awips2-tools + awips2-httpd-pypies + awips2-pypies + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + + + + + awips2-message-broker-server + AWIPS II Message Broker Server + true + This Will Install The AWIPS II Message Broker Server. + true + + awips2 + awips2-python + awips2-java + awips2-qpid-client + awips2-qpid-server + awips2-qpid-server-store + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + + + + + awips2-ldm-server + AWIPS II LDM Server + true + This Will Install The AWIPS II LDM Server. + true + + awips2 + awips2-python + awips2-java + awips2-psql + awips2-ldm + awips2-cli + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + + + + + awips2-rehost-server + AWIPS II Rehost Server + true + This Will Install The AWIPS II Rehost Server. + true + + awips2 + awips2-python + awips2-java + awips2-psql + + awips2-cli + awips2-notification + awips2-tools + + awips2-python-cherrypy + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + awips2-python-pygtk + awips2-python-pycairo + + awips2-cave + awips2-cave-etc + awips2-cave-viz-alertviz-localization + awips2-cave-viz-avnfps + awips2-cave-viz-common-core + awips2-cave-viz-core + awips2-cave-viz-core-maps + awips2-cave-viz-cots + awips2-cave-viz-d2d-core + awips2-cave-viz-d2d-gfe + awips2-cave-viz-d2d-nsharp + awips2-cave-viz-d2d-skewt + awips2-cave-viz-d2d-xy + awips2-cave-viz-dat + awips2-cave-viz-dataplugin-obs + awips2-cave-viz-dataplugins + awips2-cave-viz-displays + awips2-cave-viz-gfe + awips2-cave-viz-grib + awips2-cave-viz-hydro + awips2-cave-viz-localization-perspective + awips2-cave-viz-ncep-core + awips2-cave-viz-ncep-dataplugins + awips2-cave-viz-ncep-displays + awips2-cave-viz-ncep-nsharp + awips2-cave-viz-ncep-perspective + awips2-cave-viz-radar + awips2-cave-viz-satellite + awips2-cave-viz-sounding + awips2-cave-viz-text + awips2-cave-viz-volumebrowser + awips2-cave-viz-warngen + awips2-cave-viz-nwsauth + awips2-cave-viz-thinclient + awips2-cave-viz-npp + + + diff --git a/rpms/common/yum/arch.x86_64/comps.xml b/rpms/common/yum/arch.x86_64/comps.xml new file mode 100644 index 0000000000..1d2cb0c5fc --- /dev/null +++ b/rpms/common/yum/arch.x86_64/comps.xml @@ -0,0 +1,80 @@ + + + + + + + awips2-visualize + AWIPS II Visualize + true + This Will Install The AWIPS II Visualization Environment Including: CAVE, AlertViz, ... + true + + awips2 + awips2-java + awips2-python + awips2-psql + awips2-cave + awips2-cave-etc + awips2-cave-viz-alertviz-localization + awips2-cave-viz-avnfps + awips2-cave-viz-common-core + awips2-cave-viz-core + awips2-cave-viz-core-maps + awips2-cave-viz-cots + awips2-cave-viz-d2d-core + awips2-cave-viz-d2d-gfe + awips2-cave-viz-d2d-nsharp + awips2-cave-viz-d2d-skewt + awips2-cave-viz-d2d-xy + awips2-cave-viz-dat + awips2-cave-viz-dataplugin-obs + awips2-cave-viz-dataplugins + awips2-cave-viz-displays + awips2-cave-viz-gfe + awips2-cave-viz-grib + awips2-cave-viz-hydro + awips2-cave-viz-localization-perspective + awips2-cave-viz-ncep-core + awips2-cave-viz-ncep-dataplugins + awips2-cave-viz-ncep-displays + awips2-cave-viz-ncep-nsharp + awips2-cave-viz-ncep-perspective + awips2-cave-viz-radar + awips2-cave-viz-satellite + awips2-cave-viz-sounding + awips2-cave-viz-text + awips2-cave-viz-volumebrowser + awips2-cave-viz-warngen + awips2-cave-viz-nwsauth + awips2-cave-viz-thinclient + awips2-cave-viz-npp + awips2-gfesuite-client + + awips2-alertviz + awips2-cli + awips2-notification + + awips2-python-dynamicserialize + awips2-python-h5py + awips2-python-matplotlib + awips2-python-nose + awips2-python-numpy + awips2-python-pil + awips2-python-pmw + awips2-python-pupynere + awips2-python-qpid + awips2-python-scientific + awips2-python-scipy + awips2-python-tables + awips2-python-thrift + awips2-python-tpg + awips2-python-ufpy + awips2-python-werkzeug + awips2-python-jimporter + awips2-python-pygtk + awips2-python-pycairo + awips2-localapps-environment + + + \ No newline at end of file diff --git a/rpms/delta/setup/createUpdateRegistry.sh b/rpms/delta/setup/createUpdateRegistry.sh new file mode 100644 index 0000000000..e78d3ddff5 --- /dev/null +++ b/rpms/delta/setup/createUpdateRegistry.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Schema +# ------ +# awips2_delta_registry +# { +# 'deltaBuild' : varchar(10) +# 'deltaID' : varchar(20) +# 'deltaDesc' : varchar(255) +# 'dateApplied' : int +# 'timeApplied' : int +# } + +# Variables +CONST_CREATE_SQL="CREATE TABLE awips2_delta_registry(" +CONST_CREATE_SQL="${CONST_CREATE_SQL} deltaBuild varchar(10), " +CONST_CREATE_SQL="${CONST_CREATE_SQL} deltaID varchar(20), " +CONST_CREATE_SQL="${CONST_CREATE_SQL} deltaDesc varchar(255), " +CONST_CREATE_SQL="${CONST_CREATE_SQL} dateApplied int, " +CONST_CREATE_SQL="${CONST_CREATE_SQL} timeApplied int);" + +# Create The Directory If Necessary. +if [ ! -d ${CONST_REGISTRY_DIR} ]; then + mkdir -p ${CONST_REGISTRY_DIR} +fi + +# Create Our Empty DB File. +touch ${CONST_REGISTRY_DIR}/${CONST_REGISTRY_DB_FILE} + +# Create The Table. +echo ${CONST_CREATE_SQL} | sqlite3 ${CONST_REGISTRY_DIR}/${CONST_REGISTRY_DB_FILE} diff --git a/rpms/delta/setup/updateManager.sh b/rpms/delta/setup/updateManager.sh new file mode 100644 index 0000000000..440f7026cc --- /dev/null +++ b/rpms/delta/setup/updateManager.sh @@ -0,0 +1,163 @@ +#!/bin/bash + +# 1) Ensure that the Update Registry exists. +# 2) Determine how many updates, if any, need to be applied for this build. +# 3) Step through the list of update scripts ... +# 3.1) source the script. +# 3.2) examine the build and the id; check the registry to determine if +# the update has been made. +# 3.3) skip the script if the update has already been made. +# 3.4) run the script if the update was not completed. +# 3.5) check the return code after the execution to determine +# if the update was successful or not. +# 3.6) if the update was successful, update the registry. + +# Version: 1.0 + +# Variables +export CONST_REGISTRY_DIR="/usr/share/doc/awips2/delta" +export CONST_REGISTRY_DB_FILE="deltaRegistry.db" +CONST_REGISTRY_CREATION_SCRIPT="createUpdateRegistry.sh" +CONST_FUNCTION_TYPE="function" + +UPDATE_SCRIPT= +VALID_UPDATE_IND= +UPDATE_REQUIRED_IND= +UPDATE_SUCCESS_IND= + +# Arguments: +# ${1} == the component that we may be updating. + +COMPONENT="${1}" + +# Ensure That The Update Registry Exists. +if [ ! -f ${CONST_REGISTRY_DIR}/${CONST_REGISTRY_DB_FILE} ]; then + # Create The Update Registry Before Proceeding. + /bin/bash ${CONST_REGISTRY_CREATION_SCRIPT} +fi + +function validateUpdate() +{ + # Verify A Delta Build Has Been Specified. + if [ "${DELTA_BUILD}" = "" ]; then + VALID_UPDATE_IND="N" + return + fi + + # Verify A Delta ID Has Been Specified. + if [ "${DELTA_ID}" = "" ]; then + VALID_UPDATE_IND="N" + return + fi + + # Verify A Delta Description Has Been Specified. + if [ "${DELTA_DESC}" = "" ]; then + VALID_UPDATE_IND="N" + return + fi + + # Verify A 'runUpdate' Function Exists. + local EVAL_TYPE=`type -t runUpdate` + if [ ! "${EVAL_TYPE}" = "${CONST_FUNCTION_TYPE}" ]; then + VALID_UPDATE_IND="N" + return + fi +} + +function checkIfUpdateIsNecessary() +{ + local SQL="SELECT COUNT(*) FROM awips2_delta_registry WHERE " + SQL="${SQL} deltaBuild=\"${DELTA_BUILD}\" AND " + SQL="${SQL} deltaID=\"${DELTA_ID}\";" + + local COUNT=`echo ${SQL} | sqlite3 ${CONST_REGISTRY_DIR}/${CONST_REGISTRY_DB_FILE}` + if [ ! "${COUNT}" = "0" ]; then + UPDATE_REQUIRED_IND="N" + fi +} + +function applyUpdate() +{ + if [ ! "${DELTA_RUN_USER}" = "" ]; then + su ${DELTA_RUN_USER} -c "source ${UPDATE_SCRIPT}; runUpdate" + else + runUpdate + fi + + local RC="$?" + if [ ! "${RC}" = "0" ]; then + UPDATE_SUCCESS_IND="N" + fi +} + +function logUpdate() +{ + DATE_APPLIED=`date +"%Y%m%d"` + TIME_APPLIED=`date +"%H%M%S"` + + local SQL="INSERT INTO awips2_delta_registry VALUES(" + SQL="${SQL}\"${DELTA_BUILD}\", " + SQL="${SQL}\"${DELTA_ID}\", " + SQL="${SQL}\"${DELTA_DESC}\", ${DATE_APPLIED}, ${TIME_APPLIED});" + + echo ${SQL} | sqlite3 ${CONST_REGISTRY_DIR}/${CONST_REGISTRY_DB_FILE} +} + +function update() +{ + local RES_COL=70 + local MOVE_TO_COL="echo -en \\033[${RES_COL}G" + local SETCOLOR_SUCCESS="echo -en \\033[1;32m" + local SETCOLOR_FAILURE="echo -en \\033[1;31m" + local SETCOLOR_NORMAL="echo -en \\033[0;39m" + + source ${UPDATE_SCRIPT} + + VALID_UPDATE_IND="Y" + validateUpdate + + if [ ! "${VALID_UPDATE_IND}" = "Y" ]; then + return + fi + + UPDATE_REQUIRED_IND="Y" + checkIfUpdateIsNecessary + + if [ ! "${UPDATE_REQUIRED_IND}" = "Y" ]; then + return + fi + + UPDATE_SUCCESS_IND="Y" + + echo -n "Applying Update ... ${DELTA_ID}" + + applyUpdate + sleep 10 + + ${MOVE_TO_COL} + echo -n "[" + if [ ! "${UPDATE_SUCCESS_IND}" = "Y" ]; then + ${SETCOLOR_FAILURE} + echo -n "FAILURE" + ${SETCOLOR_NORMAL} + echo -n "]" + echo "" + return + fi + + ${SETCOLOR_SUCCESS} + echo -n "SUCCESS" + ${SETCOLOR_NORMAL} + echo -n "]" + echo "" + logUpdate +} + +# Get a list of update scripts. +for script in ${COMPONENT}/*; +do + UPDATE_SCRIPT="${script}" + + # Start The Update. + update +done diff --git a/rpms/delta/setup/updateSetup.sh b/rpms/delta/setup/updateSetup.sh new file mode 100644 index 0000000000..920a454595 --- /dev/null +++ b/rpms/delta/setup/updateSetup.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# This script will determine if any delta scripts need to be included in the +# rpm that is being built based on the build. + +# This file contains the current build information. +CONST_VERSION_TXT="Installer.rpm/version.txt" +CONST_SETUP_CORE_DIR="Installer.rpm/delta/setup" + +function copySetupCore() +{ + # Arguments: + # ${1} == the current build root. + # ${2} == the default rpm prefix. + + local BUILD_ROOT="${1}" + local RPM_DEFAULT_PREFIX="${2}" + + updateScripts=( 'createUpdateRegistry.sh' 'updateManager.sh' ) + + if [ ! -d ${BUILD_ROOT}/${RPM_DEFAULT_PREFIX}/delta ]; then + mkdir -p ${BUILD_ROOT}/${RPM_DEFAULT_PREFIX}/delta + fi + + # Copy the update scripts. + for script in ${updateScripts[*]}; + do + cp ${WORKSPACE_DIR}/${CONST_SETUP_CORE_DIR}/${script} \ + ${BUILD_ROOT}/${RPM_DEFAULT_PREFIX}/delta + done +} + +function copyApplicableDeltas() +{ + # Arguments: + # ${1} == the current build root. + # ${2} == the component name. + # ${3} == the component project directory. + # ${4} == the default rpm prefix. + + local BUILD_ROOT="${1}" + local COMPONENT_NAME="${2}" + local COMPONENT_PROJECT_DIR="${3}" + local RPM_DEFAULT_PREFIX="${4}" + + local CURRENT_BUILD=`cat ${WORKSPACE_DIR}/${CONST_VERSION_TXT}` + + # Determine if a delta directory exists for the component for the current build. + EXPECTED_DIR="${WORKSPACE_DIR}/Installer.rpm/${COMPONENT_PROJECT_DIR}" + EXPECTED_DIR="${EXPECTED_DIR}/delta/B${CURRENT_BUILD}" + + # Create The Delta Script Directory. + if [ ! -d ${BUILD_ROOT}/${RPM_DEFAULT_PREFIX}/delta/${COMPONENT_NAME} ]; then + mkdir -p ${BUILD_ROOT}/${RPM_DEFAULT_PREFIX}/delta/${COMPONENT_NAME} + fi + + if [ ! -d ${EXPECTED_DIR} ]; then + return + fi + + # Determine How Many Delta Scripts There Are. + COUNT=`ls -1 ${EXPECTED_DIR} | wc -l` + + if [ ${COUNT} -le 0 ]; then + return + fi + + cp ${EXPECTED_DIR}/* \ + ${BUILD_ROOT}/${RPM_DEFAULT_PREFIX}/delta/${COMPONENT_NAME} +} diff --git a/rpms/delta/template/template.sh b/rpms/delta/template/template.sh new file mode 100644 index 0000000000..215b4c6aa1 --- /dev/null +++ b/rpms/delta/template/template.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# The Build The Update Needs To Be Applied In. +# (MAX LENGTH = 10) +export DELTA_BUILD= +# The DR # Or Some Other Unique Identifier. +# (MAX LENGTH = 20) +export DELTA_ID= +# A Short Description About The Changes That Were Made. +# (MAX LENGTH = 255) +export DELTA_DESC= + +# [OPTIONAL] The User That Should Be Used To Run The Script. +# The Update Manager Will "su" To Become The User If +# Necessary. +export DELTA_RUN_USER= + +# Insert The Logic For The Update Here. Perform Checks To +# Ensure That The Update Commands Are Successful. Return "0" +# At The End If The Update Succeeds Or "1" If Any Part Of +# The Update Fails. +function runUpdate() +{ +} diff --git a/rpms/legal/FOSS_licenses/CherryPy/CheryPyLICENSE.txt b/rpms/legal/FOSS_licenses/CherryPy/CheryPyLICENSE.txt new file mode 100755 index 0000000000..196dd58083 --- /dev/null +++ b/rpms/legal/FOSS_licenses/CherryPy/CheryPyLICENSE.txt @@ -0,0 +1,25 @@ +Copyright (c) 2004-2009, CherryPy Team (team@cherrypy.org) +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * 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. + * Neither the name of the CherryPy Team 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 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. diff --git a/rpms/legal/FOSS_licenses/GEOS/COPYING b/rpms/legal/FOSS_licenses/GEOS/COPYING new file mode 100755 index 0000000000..b1e3f5a263 --- /dev/null +++ b/rpms/legal/FOSS_licenses/GEOS/COPYING @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/GRIBJava/UnidataLiscenseInfo.txt b/rpms/legal/FOSS_licenses/GRIBJava/UnidataLiscenseInfo.txt new file mode 100755 index 0000000000..958df558f5 --- /dev/null +++ b/rpms/legal/FOSS_licenses/GRIBJava/UnidataLiscenseInfo.txt @@ -0,0 +1,32 @@ +/* + * Copyright 1998-2009 University Corporation for Atmospheric Research/Unidata + * + * Portions of this software were developed by the Unidata Program at the + * University Corporation for Atmospheric Research. + * + * Access and use of this software shall impose the following obligations + * and understandings on the user. The user is granted the right, without + * any fee or cost, to use, copy, modify, alter, enhance and distribute + * this software, and any derivative works thereof, and its supporting + * documentation for any purpose whatsoever, provided that this entire + * notice appears in all copies of the software, derivative works and + * supporting documentation. Further, UCAR requests that the user credit + * UCAR/Unidata in any publications that result from the use of this + * software or in any product that includes this software. The names UCAR + * and/or Unidata, however, may not be used in any advertising or publicity + * to endorse or promote any products or commercial entity unless specific + * written permission is obtained from UCAR/Unidata. The user also + * understands that UCAR/Unidata is not obligated to provide the user with + * any support, consulting, training or assistance of any kind with regard + * to the use, operation and performance of this software nor to provide + * the user with any updates, revisions, new versions or "bug fixes." + * + * THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "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 UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/rpms/legal/FOSS_licenses/GRIBJava/lgpl.txt b/rpms/legal/FOSS_licenses/GRIBJava/lgpl.txt new file mode 100755 index 0000000000..5ab7695ab8 --- /dev/null +++ b/rpms/legal/FOSS_licenses/GRIBJava/lgpl.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/JBossCache/LICENSE-lgpl-2.1.txt b/rpms/legal/FOSS_licenses/JBossCache/LICENSE-lgpl-2.1.txt new file mode 100644 index 0000000000..5ab7695ab8 --- /dev/null +++ b/rpms/legal/FOSS_licenses/JBossCache/LICENSE-lgpl-2.1.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/NCEPLibraries/UseOfData&ProductsOnAGov'tServer.doc b/rpms/legal/FOSS_licenses/NCEPLibraries/UseOfData&ProductsOnAGov'tServer.doc new file mode 100755 index 0000000000..c9bcbfcee3 Binary files /dev/null and b/rpms/legal/FOSS_licenses/NCEPLibraries/UseOfData&ProductsOnAGov'tServer.doc differ diff --git a/rpms/legal/FOSS_licenses/NumPy/LICENSE.txt b/rpms/legal/FOSS_licenses/NumPy/LICENSE.txt new file mode 100755 index 0000000000..4371a777b8 --- /dev/null +++ b/rpms/legal/FOSS_licenses/NumPy/LICENSE.txt @@ -0,0 +1,30 @@ +Copyright (c) 2005-2009, NumPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +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. diff --git a/rpms/legal/FOSS_licenses/OGNL/License.txt b/rpms/legal/FOSS_licenses/OGNL/License.txt new file mode 100755 index 0000000000..43bafbbb50 --- /dev/null +++ b/rpms/legal/FOSS_licenses/OGNL/License.txt @@ -0,0 +1,50 @@ +/* ==================================================================== + * The OpenSymphony Software License, Version 1.1 + * + * (this license is derived and fully compatible with the Apache Software + * License - see http://www.apache.org/LICENSE.txt) + * + * Copyright (c) 2001-2004 The OpenSymphony Group. 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. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * OpenSymphony Group (http://www.opensymphony.com/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "OpenSymphony" and "The OpenSymphony Group" + * must not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact license@opensymphony.com . + * + * 5. Products derived from this software may not be called "OpenSymphony" + * or "OGNL", nor may "OpenSymphony" or "OGNL" appear in their + * name, without prior written permission of the OpenSymphony Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + */ diff --git a/rpms/legal/FOSS_licenses/PostGIS/COPYING b/rpms/legal/FOSS_licenses/PostGIS/COPYING new file mode 100755 index 0000000000..a52b16e406 --- /dev/null +++ b/rpms/legal/FOSS_licenses/PostGIS/COPYING @@ -0,0 +1,341 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/rpms/legal/FOSS_licenses/Proj/COPYING b/rpms/legal/FOSS_licenses/Proj/COPYING new file mode 100755 index 0000000000..fa37174870 --- /dev/null +++ b/rpms/legal/FOSS_licenses/Proj/COPYING @@ -0,0 +1,34 @@ + +All source, data files and other contents of the PROJ.4 package are +available under the following terms. Note that the PROJ 4.3 and earlier +was "public domain" as is common with US government work, but apparently +this is not a well defined legal term in many countries. I am placing +everything under the following MIT style license because I believe it is +effectively the same as public domain, allowing anyone to use the code as +they wish, including making proprietary derivatives. + +Though I have put my own name as copyright holder, I don't mean to imply +I did the work. Essentially all work was done by Gerald Evenden. + + -------------- + + Copyright (c) 2000, Frank Warmerdam + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + diff --git a/rpms/legal/FOSS_licenses/Proj/MITLicense.doc b/rpms/legal/FOSS_licenses/Proj/MITLicense.doc new file mode 100755 index 0000000000..dea379fdb9 Binary files /dev/null and b/rpms/legal/FOSS_licenses/Proj/MITLicense.doc differ diff --git a/rpms/legal/FOSS_licenses/PyTables/LICENSE.txt b/rpms/legal/FOSS_licenses/PyTables/LICENSE.txt new file mode 100755 index 0000000000..e1b48b1bbd --- /dev/null +++ b/rpms/legal/FOSS_licenses/PyTables/LICENSE.txt @@ -0,0 +1,34 @@ +Copyright Notice and Statement for PyTables Software Library and Utilities: + +Copyright (c) 2002, 2003, 2004 by Francesc Alted +Copyright (c) 2005, 2006, 2007 by Carabos Coop. V. +Copyright (c) 2008, 2009 by Francesc Alted +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +a. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +b. 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. + +c. Neither the name of Francesc Alted 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 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. diff --git a/rpms/legal/FOSS_licenses/Python_megawidgets/MITLicense.doc b/rpms/legal/FOSS_licenses/Python_megawidgets/MITLicense.doc new file mode 100755 index 0000000000..dea379fdb9 Binary files /dev/null and b/rpms/legal/FOSS_licenses/Python_megawidgets/MITLicense.doc differ diff --git a/rpms/legal/FOSS_licenses/SciPy/LICENSE.txt b/rpms/legal/FOSS_licenses/SciPy/LICENSE.txt new file mode 100755 index 0000000000..4f5dd7bc8c --- /dev/null +++ b/rpms/legal/FOSS_licenses/SciPy/LICENSE.txt @@ -0,0 +1,31 @@ +Copyright (c) 2001, 2002 Enthought, Inc. +All rights reserved. + +Copyright (c) 2003-2009 SciPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + a. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + b. 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. + c. Neither the name of the Enthought 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. + diff --git a/rpms/legal/FOSS_licenses/ScientificPython/LICENSE.txt b/rpms/legal/FOSS_licenses/ScientificPython/LICENSE.txt new file mode 100644 index 0000000000..3d2a819144 --- /dev/null +++ b/rpms/legal/FOSS_licenses/ScientificPython/LICENSE.txt @@ -0,0 +1,517 @@ + +CeCILL-C FREE SOFTWARE LICENSE AGREEMENT + + + Notice + +This Agreement is a Free Software license agreement that is the result +of discussions between its authors in order to ensure compliance with +the two main principles guiding its drafting: + + * firstly, compliance with the principles governing the distribution + of Free Software: access to source code, broad rights granted to + users, + * secondly, the election of a governing law, French law, with which + it is conformant, both as regards the law of torts and + intellectual property law, and the protection that it offers to + both authors and holders of the economic rights over software. + +The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) +license are: + +Commissariat l'Energie Atomique - CEA, a public scientific, technical +and industrial research establishment, having its principal place of +business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. + +Centre National de la Recherche Scientifique - CNRS, a public scientific +and technological establishment, having its principal place of business +at 3 rue Michel-Ange, 75794 Paris cedex 16, France. + +Institut National de Recherche en Informatique et en Automatique - +INRIA, a public scientific and technological establishment, having its +principal place of business at Domaine de Voluceau, Rocquencourt, BP +105, 78153 Le Chesnay cedex, France. + + + Preamble + +The purpose of this Free Software license agreement is to grant users +the right to modify and re-use the software governed by this license. + +The exercising of this right is conditional upon the obligation to make +available to the community the modifications made to the source code of +the software so as to contribute to its evolution. + +In consideration of access to the source code and the rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors only have limited liability. + +In this respect, the risks associated with loading, using, modifying +and/or developing or reproducing the software by the user are brought to +the user's attention, given its Free Software status, which may make it +complicated to use, with the result that its use is reserved for +developers and experienced professionals having in-depth computer +knowledge. Users are therefore encouraged to load and test the +suitability of the software as regards their requirements in conditions +enabling the security of their systems and/or data to be ensured and, +more generally, to use and operate it in the same conditions of +security. This Agreement may be freely reproduced and published, +provided it is not altered, and that no provisions are either added or +removed herefrom. + +This Agreement may apply to any or all software for which the holder of +the economic rights decides to submit the use thereof to its provisions. + + + Article 1 - DEFINITIONS + +For the purpose of this Agreement, when the following expressions +commence with a capital letter, they shall have the following meaning: + +Agreement: means this license agreement, and its possible subsequent +versions and annexes. + +Software: means the software in its Object Code and/or Source Code form +and, where applicable, its documentation, "as is" when the Licensee +accepts the Agreement. + +Initial Software: means the Software in its Source Code and possibly its +Object Code form and, where applicable, its documentation, "as is" when +it is first distributed under the terms and conditions of the Agreement. + +Modified Software: means the Software modified by at least one +Integrated Contribution. + +Source Code: means all the Software's instructions and program lines to +which access is required so as to modify the Software. + +Object Code: means the binary files originating from the compilation of +the Source Code. + +Holder: means the holder(s) of the economic rights over the Initial +Software. + +Licensee: means the Software user(s) having accepted the Agreement. + +Contributor: means a Licensee having made at least one Integrated +Contribution. + +Licensor: means the Holder, or any other individual or legal entity, who +distributes the Software under the Agreement. + +Integrated Contribution: means any or all modifications, corrections, +translations, adaptations and/or new functions integrated into the +Source Code by any or all Contributors. + +Related Module: means a set of sources files including their +documentation that, without modification to the Source Code, enables +supplementary functions or services in addition to those offered by the +Software. + +Derivative Software: means any combination of the Software, modified or +not, and of a Related Module. + +Parties: mean both the Licensee and the Licensor. + +These expressions may be used both in singular and plural form. + + + Article 2 - PURPOSE + +The purpose of the Agreement is the grant by the Licensor to the +Licensee of a non-exclusive, transferable and worldwide license for the +Software as set forth in Article 5 hereinafter for the whole term of the +protection granted by the rights over said Software. + + + Article 3 - ACCEPTANCE + +3.1 The Licensee shall be deemed as having accepted the terms and +conditions of this Agreement upon the occurrence of the first of the +following events: + + * (i) loading the Software by any or all means, notably, by + downloading from a remote server, or by loading from a physical + medium; + * (ii) the first time the Licensee exercises any of the rights + granted hereunder. + +3.2 One copy of the Agreement, containing a notice relating to the +characteristics of the Software, to the limited warranty, and to the +fact that its use is restricted to experienced users has been provided +to the Licensee prior to its acceptance as set forth in Article 3.1 +hereinabove, and the Licensee hereby acknowledges that it has read and +understood it. + + + Article 4 - EFFECTIVE DATE AND TERM + + + 4.1 EFFECTIVE DATE + +The Agreement shall become effective on the date when it is accepted by +the Licensee as set forth in Article 3.1. + + + 4.2 TERM + +The Agreement shall remain in force for the entire legal term of +protection of the economic rights over the Software. + + + Article 5 - SCOPE OF RIGHTS GRANTED + +The Licensor hereby grants to the Licensee, who accepts, the following +rights over the Software for any or all use, and for the term of the +Agreement, on the basis of the terms and conditions set forth hereinafter. + +Besides, if the Licensor owns or comes to own one or more patents +protecting all or part of the functions of the Software or of its +components, the Licensor undertakes not to enforce the rights granted by +these patents against successive Licensees using, exploiting or +modifying the Software. If these patents are transferred, the Licensor +undertakes to have the transferees subscribe to the obligations set +forth in this paragraph. + + + 5.1 RIGHT OF USE + +The Licensee is authorized to use the Software, without any limitation +as to its fields of application, with it being hereinafter specified +that this comprises: + + 1. permanent or temporary reproduction of all or part of the Software + by any or all means and in any or all form. + + 2. loading, displaying, running, or storing the Software on any or + all medium. + + 3. entitlement to observe, study or test its operation so as to + determine the ideas and principles behind any or all constituent + elements of said Software. This shall apply when the Licensee + carries out any or all loading, displaying, running, transmission + or storage operation as regards the Software, that it is entitled + to carry out hereunder. + + + 5.2 RIGHT OF MODIFICATION + +The right of modification includes the right to translate, adapt, +arrange, or make any or all modifications to the Software, and the right +to reproduce the resulting software. It includes, in particular, the +right to create a Derivative Software. + +The Licensee is authorized to make any or all modification to the +Software provided that it includes an explicit notice that it is the +author of said modification and indicates the date of the creation thereof. + + + 5.3 RIGHT OF DISTRIBUTION + +In particular, the right of distribution includes the right to publish, +transmit and communicate the Software to the general public on any or +all medium, and by any or all means, and the right to market, either in +consideration of a fee, or free of charge, one or more copies of the +Software by any means. + +The Licensee is further authorized to distribute copies of the modified +or unmodified Software to third parties according to the terms and +conditions set forth hereinafter. + + + 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION + +The Licensee is authorized to distribute true copies of the Software in +Source Code or Object Code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's + warranty and liability as set forth in Articles 8 and 9, + +and that, in the event that only the Object Code of the Software is +redistributed, the Licensee allows effective access to the full Source +Code of the Software at a minimum during the entire period of its +distribution of the Software, it being understood that the additional +cost of acquiring the Source Code shall not exceed the cost of +transferring the data. + + + 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE + +When the Licensee makes an Integrated Contribution to the Software, the +terms and conditions for the distribution of the resulting Modified +Software become subject to all the provisions of this Agreement. + +The Licensee is authorized to distribute the Modified Software, in +source code or object code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's + warranty and liability as set forth in Articles 8 and 9, + +and that, in the event that only the object code of the Modified +Software is redistributed, the Licensee allows effective access to the +full source code of the Modified Software at a minimum during the entire +period of its distribution of the Modified Software, it being understood +that the additional cost of acquiring the source code shall not exceed +the cost of transferring the data. + + + 5.3.3 DISTRIBUTION OF DERIVATIVE SOFTWARE + +When the Licensee creates Derivative Software, this Derivative Software +may be distributed under a license agreement other than this Agreement, +subject to compliance with the requirement to include a notice +concerning the rights over the Software as defined in Article 6.4. +In the event the creation of the Derivative Software required modification +of the Source Code, the Licensee undertakes that: + + 1. the resulting Modified Software will be governed by this Agreement, + 2. the Integrated Contributions in the resulting Modified Software + will be clearly identified and documented, + 3. the Licensee will allow effective access to the source code of the + Modified Software, at a minimum during the entire period of + distribution of the Derivative Software, such that such + modifications may be carried over in a subsequent version of the + Software; it being understood that the additional cost of + purchasing the source code of the Modified Software shall not + exceed the cost of transferring the data. + + + 5.3.4 COMPATIBILITY WITH THE CeCILL LICENSE + +When a Modified Software contains an Integrated Contribution subject to +the CeCILL license agreement, or when a Derivative Software contains a +Related Module subject to the CeCILL license agreement, the provisions +set forth in the third item of Article 6.4 are optional. + + + Article 6 - INTELLECTUAL PROPERTY + + + 6.1 OVER THE INITIAL SOFTWARE + +The Holder owns the economic rights over the Initial Software. Any or +all use of the Initial Software is subject to compliance with the terms +and conditions under which the Holder has elected to distribute its work +and no one shall be entitled to modify the terms and conditions for the +distribution of said Initial Software. + +The Holder undertakes that the Initial Software will remain ruled at +least by this Agreement, for the duration set forth in Article 4.2. + + + 6.2 OVER THE INTEGRATED CONTRIBUTIONS + +The Licensee who develops an Integrated Contribution is the owner of the +intellectual property rights over this Contribution as defined by +applicable law. + + + 6.3 OVER THE RELATED MODULES + +The Licensee who develops a Related Module is the owner of the +intellectual property rights over this Related Module as defined by +applicable law and is free to choose the type of agreement that shall +govern its distribution under the conditions defined in Article 5.3.3. + + + 6.4 NOTICE OF RIGHTS + +The Licensee expressly undertakes: + + 1. not to remove, or modify, in any manner, the intellectual property + notices attached to the Software; + + 2. to reproduce said notices, in an identical manner, in the copies + of the Software modified or not; + + 3. to ensure that use of the Software, its intellectual property + notices and the fact that it is governed by the Agreement is + indicated in a text that is easily accessible, specifically from + the interface of any Derivative Software. + +The Licensee undertakes not to directly or indirectly infringe the +intellectual property rights of the Holder and/or Contributors on the +Software and to take, where applicable, vis--vis its staff, any and all +measures required to ensure respect of said intellectual property rights +of the Holder and/or Contributors. + + + Article 7 - RELATED SERVICES + +7.1 Under no circumstances shall the Agreement oblige the Licensor to +provide technical assistance or maintenance services for the Software. + +However, the Licensor is entitled to offer this type of services. The +terms and conditions of such technical assistance, and/or such +maintenance, shall be set forth in a separate instrument. Only the +Licensor offering said maintenance and/or technical assistance services +shall incur liability therefor. + +7.2 Similarly, any Licensor is entitled to offer to its licensees, under +its sole responsibility, a warranty, that shall only be binding upon +itself, for the redistribution of the Software and/or the Modified +Software, under terms and conditions that it is free to decide. Said +warranty, and the financial terms and conditions of its application, +shall be subject of a separate instrument executed between the Licensor +and the Licensee. + + + Article 8 - LIABILITY + +8.1 Subject to the provisions of Article 8.2, the Licensee shall be +entitled to claim compensation for any direct loss it may have suffered +from the Software as a result of a fault on the part of the relevant +Licensor, subject to providing evidence thereof. + +8.2 The Licensor's liability is limited to the commitments made under +this Agreement and shall not be incurred as a result of in particular: +(i) loss due the Licensee's total or partial failure to fulfill its +obligations, (ii) direct or consequential loss that is suffered by the +Licensee due to the use or performance of the Software, and (iii) more +generally, any consequential loss. In particular the Parties expressly +agree that any or all pecuniary or business loss (i.e. loss of data, +loss of profits, operating loss, loss of customers or orders, +opportunity cost, any disturbance to business activities) or any or all +legal proceedings instituted against the Licensee by a third party, +shall constitute consequential loss and shall not provide entitlement to +any or all compensation from the Licensor. + + + Article 9 - WARRANTY + +9.1 The Licensee acknowledges that the scientific and technical +state-of-the-art when the Software was distributed did not enable all +possible uses to be tested and verified, nor for the presence of +possible defects to be detected. In this respect, the Licensee's +attention has been drawn to the risks associated with loading, using, +modifying and/or developing and reproducing the Software which are +reserved for experienced users. + +The Licensee shall be responsible for verifying, by any or all means, +the suitability of the product for its requirements, its good working +order, and for ensuring that it shall not cause damage to either persons +or properties. + +9.2 The Licensor hereby represents, in good faith, that it is entitled +to grant all the rights over the Software (including in particular the +rights set forth in Article 5). + +9.3 The Licensee acknowledges that the Software is supplied "as is" by +the Licensor without any other express or tacit warranty, other than +that provided for in Article 9.2 and, in particular, without any warranty +as to its commercial value, its secured, safe, innovative or relevant +nature. + +Specifically, the Licensor does not warrant that the Software is free +from any error, that it will operate without interruption, that it will +be compatible with the Licensee's own equipment and software +configuration, nor that it will meet the Licensee's requirements. + +9.4 The Licensor does not either expressly or tacitly warrant that the +Software does not infringe any third party intellectual property right +relating to a patent, software or any other property right. Therefore, +the Licensor disclaims any and all liability towards the Licensee +arising out of any or all proceedings for infringement that may be +instituted in respect of the use, modification and redistribution of the +Software. Nevertheless, should such proceedings be instituted against +the Licensee, the Licensor shall provide it with technical and legal +assistance for its defense. Such technical and legal assistance shall be +decided on a case-by-case basis between the relevant Licensor and the +Licensee pursuant to a memorandum of understanding. The Licensor +disclaims any and all liability as regards the Licensee's use of the +name of the Software. No warranty is given as regards the existence of +prior rights over the name of the Software or as regards the existence +of a trademark. + + + Article 10 - TERMINATION + +10.1 In the event of a breach by the Licensee of its obligations +hereunder, the Licensor may automatically terminate this Agreement +thirty (30) days after notice has been sent to the Licensee and has +remained ineffective. + +10.2 A Licensee whose Agreement is terminated shall no longer be +authorized to use, modify or distribute the Software. However, any +licenses that it may have granted prior to termination of the Agreement +shall remain valid subject to their having been granted in compliance +with the terms and conditions hereof. + + + Article 11 - MISCELLANEOUS + + + 11.1 EXCUSABLE EVENTS + +Neither Party shall be liable for any or all delay, or failure to +perform the Agreement, that may be attributable to an event of force +majeure, an act of God or an outside cause, such as defective +functioning or interruptions of the electricity or telecommunications +networks, network paralysis following a virus attack, intervention by +government authorities, natural disasters, water damage, earthquakes, +fire, explosions, strikes and labor unrest, war, etc. + +11.2 Any failure by either Party, on one or more occasions, to invoke +one or more of the provisions hereof, shall under no circumstances be +interpreted as being a waiver by the interested Party of its right to +invoke said provision(s) subsequently. + +11.3 The Agreement cancels and replaces any or all previous agreements, +whether written or oral, between the Parties and having the same +purpose, and constitutes the entirety of the agreement between said +Parties concerning said purpose. No supplement or modification to the +terms and conditions hereof shall be effective as between the Parties +unless it is made in writing and signed by their duly authorized +representatives. + +11.4 In the event that one or more of the provisions hereof were to +conflict with a current or future applicable act or legislative text, +said act or legislative text shall prevail, and the Parties shall make +the necessary amendments so as to comply with said act or legislative +text. All other provisions shall remain effective. Similarly, invalidity +of a provision of the Agreement, for any reason whatsoever, shall not +cause the Agreement as a whole to be invalid. + + + 11.5 LANGUAGE + +The Agreement is drafted in both French and English and both versions +are deemed authentic. + + + Article 12 - NEW VERSIONS OF THE AGREEMENT + +12.1 Any person is authorized to duplicate and distribute copies of this +Agreement. + +12.2 So as to ensure coherence, the wording of this Agreement is +protected and may only be modified by the authors of the License, who +reserve the right to periodically publish updates or new versions of the +Agreement, each with a separate number. These subsequent versions may +address new issues encountered by Free Software. + +12.3 Any Software distributed under a given version of the Agreement may +only be subsequently distributed under the same version of the Agreement +or a subsequent version. + + + Article 13 - GOVERNING LAW AND JURISDICTION + +13.1 The Agreement is governed by French law. The Parties agree to +endeavor to seek an amicable solution to any disagreements or disputes +that may arise during the performance of the Agreement. + +13.2 Failing an amicable solution within two (2) months as from their +occurrence, and unless emergency proceedings are necessary, the +disagreements or disputes shall be referred to the Paris Courts having +jurisdiction, by the more diligent Party. + + +Version 1.0 dated 2006-09-05. diff --git a/rpms/legal/FOSS_licenses/TPG/License.txt b/rpms/legal/FOSS_licenses/TPG/License.txt new file mode 100755 index 0000000000..b1e3f5a263 --- /dev/null +++ b/rpms/legal/FOSS_licenses/TPG/License.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/antlr/Antlr 3 license-BSD license.doc b/rpms/legal/FOSS_licenses/antlr/Antlr 3 license-BSD license.doc new file mode 100644 index 0000000000..35d9661ad5 Binary files /dev/null and b/rpms/legal/FOSS_licenses/antlr/Antlr 3 license-BSD license.doc differ diff --git a/rpms/legal/FOSS_licenses/apache/Apache1.1.txt b/rpms/legal/FOSS_licenses/apache/Apache1.1.txt new file mode 100755 index 0000000000..26190d1261 --- /dev/null +++ b/rpms/legal/FOSS_licenses/apache/Apache1.1.txt @@ -0,0 +1,28 @@ +Apache Software License +Version 1.1 + +Copyright (c) 2000 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: + +"This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." + +Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR ITS 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. + + + +-------------------------------------------------------------------------------- + +This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Software Foundation, please see . diff --git a/rpms/legal/FOSS_licenses/apache/LICENSE-2.0.txt b/rpms/legal/FOSS_licenses/apache/LICENSE-2.0.txt new file mode 100644 index 0000000000..29f81d812f --- /dev/null +++ b/rpms/legal/FOSS_licenses/apache/LICENSE-2.0.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/rpms/legal/FOSS_licenses/bitstream_vera_fonts/COPYRIGHT.TXT b/rpms/legal/FOSS_licenses/bitstream_vera_fonts/COPYRIGHT.TXT new file mode 100644 index 0000000000..e651be1c4f --- /dev/null +++ b/rpms/legal/FOSS_licenses/bitstream_vera_fonts/COPYRIGHT.TXT @@ -0,0 +1,124 @@ +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + +Copyright FAQ +============= + + 1. I don't understand the resale restriction... What gives? + + Bitstream is giving away these fonts, but wishes to ensure its + competitors can't just drop the fonts as is into a font sale system + and sell them as is. It seems fair that if Bitstream can't make money + from the Bitstream Vera fonts, their competitors should not be able to + do so either. You can sell the fonts as part of any software package, + however. + + 2. I want to package these fonts separately for distribution and + sale as part of a larger software package or system. Can I do so? + + Yes. A RPM or Debian package is a "larger software package" to begin + with, and you aren't selling them independently by themselves. + See 1. above. + + 3. Are derivative works allowed? + Yes! + + 4. Can I change or add to the font(s)? + Yes, but you must change the name(s) of the font(s). + + 5. Under what terms are derivative works allowed? + + You must change the name(s) of the fonts. This is to ensure the + quality of the fonts, both to protect Bitstream and Gnome. We want to + ensure that if an application has opened a font specifically of these + names, it gets what it expects (though of course, using fontconfig, + substitutions could still could have occurred during font + opening). You must include the Bitstream copyright. Additional + copyrights can be added, as per copyright law. Happy Font Hacking! + + 6. If I have improvements for Bitstream Vera, is it possible they might get + adopted in future versions? + + Yes. The contract between the Gnome Foundation and Bitstream has + provisions for working with Bitstream to ensure quality additions to + the Bitstream Vera font family. Please contact us if you have such + additions. Note, that in general, we will want such additions for the + entire family, not just a single font, and that you'll have to keep + both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add + glyphs to the font, they must be stylistically in keeping with Vera's + design. Vera cannot become a "ransom note" font. Jim Lyles will be + providing a document describing the design elements used in Vera, as a + guide and aid for people interested in contributing to Vera. + + 7. I want to sell a software package that uses these fonts: Can I do so? + + Sure. Bundle the fonts with your software and sell your software + with the fonts. That is the intent of the copyright. + + 8. If applications have built the names "Bitstream Vera" into them, + can I override this somehow to use fonts of my choosing? + + This depends on exact details of the software. Most open source + systems and software (e.g., Gnome, KDE, etc.) are now converting to + use fontconfig (see www.fontconfig.org) to handle font configuration, + selection and substitution; it has provisions for overriding font + names and subsituting alternatives. An example is provided by the + supplied local.conf file, which chooses the family Bitstream Vera for + "sans", "serif" and "monospace". Other software (e.g., the XFree86 + core server) has other mechanisms for font substitution. + diff --git a/rpms/legal/FOSS_licenses/eclipse/epl-v10.html b/rpms/legal/FOSS_licenses/eclipse/epl-v10.html new file mode 100644 index 0000000000..ed4b196655 --- /dev/null +++ b/rpms/legal/FOSS_licenses/eclipse/epl-v10.html @@ -0,0 +1,328 @@ + + + + + + + + +Eclipse Public License - Version 1.0 + + + + + + +
+ +

Eclipse Public License - v 1.0 +

+ +

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.

+ +

1. DEFINITIONS

+ +

"Contribution" means:

+ +

a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and
+b) in the case of each subsequent Contributor:

+ +

i) +changes to the Program, and

+ +

ii) +additions to the Program;

+ +

where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program.

+ +

"Contributor" means any person or +entity that distributes the Program.

+ +

"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program.

+ +

"Program" means the Contributions +distributed in accordance with this Agreement.

+ +

"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.

+ +

2. GRANT OF RIGHTS

+ +

a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.

+ +

b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder.

+ +

c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.

+ +

d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement.

+ +

3. REQUIREMENTS

+ +

A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that: +

+ +

a) +it complies with the terms and conditions of this Agreement; and

+ +

b) +its license agreement:

+ +

i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose;

+ +

ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits;

+ +

iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and

+ +

iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.

+ +

When the Program is made available in source +code form:

+ +

a) +it must be made available under this Agreement; and

+ +

b) a +copy of this Agreement must be included with each copy of the Program.

+ +

Contributors may not remove or alter any +copyright notices contained within the Program.

+ +

Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution.

+ +

4. COMMERCIAL DISTRIBUTION

+ +

Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.

+ +

For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.

+ +

5. NO WARRANTY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations.

+ +

6. DISCLAIMER OF LIABILITY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), 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 OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.

+ +

7. GENERAL

+ +

If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.

+ +

If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed.

+ +

All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive.

+ +

Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.

+ +

This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.

+ +

 

+ +
+ + + + \ No newline at end of file diff --git a/rpms/legal/FOSS_licenses/geotools/lgpl.txt b/rpms/legal/FOSS_licenses/geotools/lgpl.txt new file mode 100644 index 0000000000..5ab7695ab8 --- /dev/null +++ b/rpms/legal/FOSS_licenses/geotools/lgpl.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/h5py/LICENSE.txt b/rpms/legal/FOSS_licenses/h5py/LICENSE.txt new file mode 100755 index 0000000000..15b30f29c2 --- /dev/null +++ b/rpms/legal/FOSS_licenses/h5py/LICENSE.txt @@ -0,0 +1,34 @@ +Copyright Notice and Statement for the h5py Project + +Copyright (c) 2008 Andrew Collette +http://h5py.alfven.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +a. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +b. 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. + +c. Neither the name of the author nor the names of contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +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. + diff --git a/rpms/legal/FOSS_licenses/hdf5/Copyright Notice and Statement for NCSA Hierarchical Data Format.doc b/rpms/legal/FOSS_licenses/hdf5/Copyright Notice and Statement for NCSA Hierarchical Data Format.doc new file mode 100644 index 0000000000..925f0b8f30 Binary files /dev/null and b/rpms/legal/FOSS_licenses/hdf5/Copyright Notice and Statement for NCSA Hierarchical Data Format.doc differ diff --git a/rpms/legal/FOSS_licenses/hibernate/lgpl.txt b/rpms/legal/FOSS_licenses/hibernate/lgpl.txt new file mode 100644 index 0000000000..5ab7695ab8 --- /dev/null +++ b/rpms/legal/FOSS_licenses/hibernate/lgpl.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/jai/LICENSE-jai.txt b/rpms/legal/FOSS_licenses/jai/LICENSE-jai.txt new file mode 100755 index 0000000000..e47f6b3698 --- /dev/null +++ b/rpms/legal/FOSS_licenses/jai/LICENSE-jai.txt @@ -0,0 +1,55 @@ +Sun Microsystems, Inc. +Binary Code License Agreement + +JAVA ADVANCED IMAGING API, VERSION 1.1.3 + +READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED SUPPLEMENTAL LICENSE TERMS (COLLECTIVELY "AGREEMENT") CAREFULLY BEFORE OPENING THE SOFTWARE MEDIA PACKAGE. BY OPENING THE SOFTWARE MEDIA PACKAGE, YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESE TERMS BY SELECTING THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL THESE TERMS, PROMPTLY RETURN THE UNUSED SOFTWARE TO YOUR PLACE OF PURCHASE FOR A REFUND OR, IF THE SOFTWARE IS ACCESSED ELECTRONICALLY, SELECT THE "DECLINE" BUTTON AT THE END OF THIS AGREEMENT. + +1. LICENSE TO USE. Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer hardware for which the corresponding fee has been paid. + +2. RESTRICTIONS. Software is confidential and copyrighted. Title to Software and all associated intellectual property rights is retained by Sun and/or its licensors. Except as specifically authorized in any Supplemental License Terms, you may not make copies of Software, other than a single copy of Software for archival purposes. Unless enforcement is prohibited by applicable law, you may not modify, decompile, or reverse engineer Software. Licensee acknowledges that Software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility. Sun Microsystems, Inc. disclaims any express or implied warranty of fitness for such uses. No right, title or interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement. + +3. LIMITED WARRANTY. Sun warrants to you that for a period of ninety (90) days from the date of purchase, as evidenced by a copy of the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use. Except for the foregoing, Software is provided "AS IS". Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's option to replace Software media or refund the fee paid for Software. + +4. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. + +5. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by you for Software under this Agreement. The foregoing limitations will apply even if the above stated warranty fails of its essential purpose. + +6. Termination. This Agreement is effective until terminated. You may terminate this Agreement at any time by destroying all copies of Software. This Agreement will terminate immediately without notice from Sun if you fail to comply with any provision of this Agreement. Upon Termination, you must destroy all copies of Software. + +7. Export Regulations. All Software and technical data delivered under this Agreement are subject to US export control laws and may be subject to export or import regulations in other countries. You agree to comply strictly with all such laws and regulations and acknowledge that you have the responsibility to obtain such licenses to export, re-export, or import as may be required after delivery to you. + +8. U.S. Government Restricted Rights. If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions). + +9. Governing Law. Any action related to this Agreement will be governed by California law and controlling U.S. federal law. No choice of law rules of any jurisdiction will apply. + +10. Severability. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate. + +11. Integration. This Agreement is the entire agreement between you and Sun relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this Agreement. No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party. + + + JAVA ADVANCED IMAGING, VERSION 1.1.3 + + SUPPLEMENTAL LICENSE TERMS + +These supplemental license terms ("Supplemental Terms") add to or modify the terms of the Binary Code License Agreement (collectively, the "Agreement"). Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Agreement, or in any license contained within the Software. + +1. Software Internal Use and Development License Grant. Subject to the terms and conditions of this Agreement, including, but not limited to Section 3 (Java Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce internally and use internally the binary form of the Software, complete and unmodified, for the sole purpose of designing, developing and testing your Java applets and applications ("Programs"). + +2. License to Distribute Software. In addition to the license granted in Section 1 (Software Internal Use and Development License Grant) of these Supplemental Terms, subject to the terms and conditions of this Agreement, including but not limited to, Section 3 (Java Technology Restrictions) of these Supplemental Terms, Sun grants you a non-exclusive, non-transferable, limited license to reproduce and distribute the Software in binary code form only, provided that you (i) distribute the Software complete and unmodified and only bundled as part of your Programs, (ii) do not distribute additional software intended to replace any component(s) of the Software, (iii) do not remove or alter any proprietary legends or notices contained in the Software, (iv) only distribute the Software subject to a license agreement that protects Sun's interests consistent with the terms contained in this Agreement, and (v) agree to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software. + +3. Java Technology Restrictions. You may not modify the Java Platform Interface ("JPI", identified as classes contained within the "java" package or any subpackages of the "java" package), by creating additional classes within the JPI or otherwise causing the addition to or modification of the classes in the JPI. In the event that you create an additional class and associated API(s) which (i) extends the functionality of the Java platform, and (ii) is exposed to third party software developers for the purpose of developing additional software which invokes such additional API, you must promptly publish broadly an accurate specification for such API for free use by all developers. You may not create, or authorize your licensees to create additional classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation. + +4. Java Runtime Availability. Refer to the appropriate version of the Java Runtime Environment binary code license (currently located at http://www.java.sun.com/jdk/index.html) for the availability of runtime code which may be distributed with Java applets and applications. + +5. Trademarks and Logos. You acknowledge and agree as between you and Sun that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, and iPLANET-related trademarks, service marks, logos and other brand designations ("Sun Marks"), and you agree to comply with the Sun Trademark and Logo Usage Requirements currently located at http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks inures to Sun's benefit. + +6. Source Code. Software may contain source code that is provided solely for reference purposes pursuant to the terms of this Agreement. Source code may not be redistributed unless expressly provided for in this Agreement. + +7. Termination for Infringement. Either party may terminate this Agreement immediately should any Software become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right. + +8. Third Party Code. Additional copyright notices and license terms applicable to portions of the Software are set forth in the THIRDPARTYLICENSEREADME. In addition to any terms and conditions of any third party open source/freeware license identified in the THIRDPARTYLICENSEREADME, the disclaimer of warranty and limitation of liability provisions in paragraphs 5 and 6 of the Binary Code License Agreement shall apply to all Software in this distribution. + +For inquiries please contact: Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A + +(LFI#143342/Form ID#011801) diff --git a/rpms/legal/FOSS_licenses/jai_image_io/LICENSE-jai_imageio.txt b/rpms/legal/FOSS_licenses/jai_image_io/LICENSE-jai_imageio.txt new file mode 100755 index 0000000000..3763c3088c --- /dev/null +++ b/rpms/legal/FOSS_licenses/jai_image_io/LICENSE-jai_imageio.txt @@ -0,0 +1,135 @@ +Sun Microsystems, Inc. ("Sun") ENTITLEMENT for SOFTWARE + +Licensee/Company: Entity receiving Software. + +Effective Date: Date of delivery of the Software to You. + +Software: Java Advanced Imaging Image I/O Tools 1.1. + +License Term: Perpetual (subject to termination under the SLA). + +Licensed Unit: Software Copy. + +Licensed unit Count: Unlimited. + +Permitted Uses: + +1. You may reproduce and use the Software for Your own Individual, Commercial and Research and Instructional Use only for the purposes of designing, developing, testing, and running Your applets and applications ("Programs"). + +2. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the Software's documentation, You may reproduce and distribute portions of Software identified as a redistributable in the documentation (each a "Redistributable"), provided that You comply with the following (note that You may be entitled to reproduce and distribute other portions of the Software not defined in the documentation as a Redistributable under certain other licenses as described in the THIRDPARTYLICENSEREADME, if applicable): + +(a) You distribute Redistributable complete and unmodified and only bundled as part of Your Programs, + +(b) Your Programs add significant and primary functionality to the Redistributable, + +(c) You distribute Redistributable for the sole purpose of running Your Programs, + +(d) You do not distribute additional software intended to replace any +component(s) of the Redistributable, + +(e) You do not remove or alter any proprietary legends or notices contained in or on the Redistributable. + +(f) You only distribute the Redistributable subject to a license agreement that protects Sun's interests consistent with the terms contained in this +Agreement, and + +(g) You agree to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Redistributable. + +3. Java Technology Restrictions. You may not create, modify, or change the behavior of, or authorize Your licensees to create, modify, or change the behavior of, classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation. + + +Sun Microsystems, Inc. ("Sun") +SOFTWARE LICENSE AGREEMENT + +READ THE TERMS OF THIS AGREEMENT ("AGREEMENT") CAREFULLY BEFORE OPENING SOFTWARE MEDIA PACKAGE. BY OPENING SOFTWARE MEDIA PACKAGE, YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU ARE ACCESSING SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESE TERMS BY SELECTING THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS, PROMPTLY RETURN THE UNUSED SOFTWARE TO YOUR PLACE OF PURCHASE FOR A REFUND OR, IF SOFTWARE IS ACCESSED ELECTRONICALLY, SELECT THE "DECLINE" (OR "EXIT") BUTTON AT THE END OF THIS AGREEMENT. IF YOU HAVE SEPARATELY AGREED TO LICENSE TERMS ("MASTER TERMS") FOR YOUR LICENSE TO THIS SOFTWARE, THEN SECTIONS 1-6 OF THIS AGREEMENT ("SUPPLEMENTAL LICENSE TERMS") SHALL SUPPLEMENT AND SUPERSEDE THE MASTER TERMS IN RELATION TO THIS SOFTWARE. + +1. Definitions. + +(a) "Entitlement" means the collective set of applicable documents authorized by Sun evidencing your obligation to pay associated fees (if any) for the license, associated Services, and the authorized scope of use of Software under this Agreement. + +(b) "Licensed Unit" means the unit of measure by which your use of Software and/or Service is licensed, as described in your Entitlement. + +(c) "Permitted Use" means the licensed Software use(s) authorized in this Agreement as specified in your Entitlement. The Permitted Use for any bundled Sun software not specified in your Entitlement will be evaluation use as provided in Section 3. + +(d) "Service" means the service(s) that Sun or its delegate will provide, if any, as selected in your Entitlement and as further described in the applicable service listings at www.sun.com/service/servicelist. + +(e) "Software" means the Sun software described in your Entitlement. Also, certain software may be included for evaluation use under Section 3. + +(f) "You" and "Your" means the individual or legal entity specified in the Entitlement, or for evaluation purposes, the entity performing the evaluation. + +2. License Grant and Entitlement. + +Subject to the terms of your Entitlement, Sun grants you a nonexclusive, nontransferable limited license to use Software for its Permitted Use for the license term. Your Entitlement will specify (a) Software licensed, (b) the Permitted Use, (c) the license term, and (d) the Licensed Units. + +Additionally, if your Entitlement includes Services, then it will also specify the (e) Service and (f) service term. + +If your rights to Software or Services are limited in duration and the date such rights begin is other than the purchase date, your Entitlement will provide that beginning date(s). + +The Entitlement may be delivered to you in various ways depending on the manner in which you obtain Software and Services, for example, the Entitlement may be provided in your receipt, invoice or your contract with Sun or authorized Sun reseller. It may also be in electronic format if you download Software. + +3. Permitted Use. + +As selected in your Entitlement, one or more of the following Permitted Uses will apply to your use of Software. Unless you have an Entitlement that expressly permits it, you may not use Software for any of the other Permitted Uses. If you don't have an Entitlement, or if your Entitlement doesn't cover additional software delivered to you, then such software is for your Evaluation Use. + +(a) Evaluation Use. You may evaluate Software internally for a period of 90 days from your first use. + +(b) Research and Instructional Use. You may use Software internally to design, develop and test, and also to provide instruction on such uses. + +(c) Individual Use. You may use Software internally for personal, individual use. + +(d) Commercial Use. You may use Software internally for your own commercial purposes. + +(e) Service Provider Use. You may make Software functionality accessible (but not by providing Software itself or through outsourcing services) to your end users in an extranet deployment, but not to your affiliated companies or to government agencies. + +4. Licensed Units. + +Your Permitted Use is limited to the number of Licensed Units stated in your Entitlement. If you require additional Licensed Units, you will need additional Entitlement(s). + +5. Restrictions. + +(a) The copies of Software provided to you under this Agreement are licensed, not sold, to you by Sun. Sun reserves all rights not expressly granted. (b) You may make a single archival copy of Software, but otherwise may not copy, modify, or distribute Software. However if the Sun documentation accompanying Software lists specific portions of Software, such as header files, class libraries, reference source code, and/or redistributable files, that may be handled differently, you may do so only as provided in the Sun documentation. (c) You may not rent, lease, lend or encumber Software. (d) Unless enforcement is prohibited by applicable law, you may not decompile, or reverse engineer Software. (e) The terms and conditions of this Agreement will apply to any Software updates, provided to you at Sun's discretion, that replace and/or supplement the original Software, unless such update contains a separate license. (f) You may not publish or provide the results of any benchmark or comparison tests run on Software to any third party without the prior written consent of Sun. (g) Software is confidential and copyrighted. (h) Unless otherwise specified, if Software is delivered with embedded or bundled software that enables functionality of Software, you may not use such software on a stand-alone basis or use any portion of such software to interoperate with any program(s) other than Software. (i) Software may contain programs that perform automated collection of system data and/or automated software updating services. System data collected through such programs may be used by Sun, its subcontractors, and its service delivery partners for the purpose of providing you with remote system services and/or improving Sun's software and systems. (j) Software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility and Sun and its licensors disclaim any express or implied warranty of fitness for such uses. (k) No right, title or interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement. + +6. Term and Termination. + +The license and service term are set forth in your Entitlement(s). Your rights under this Agreement will terminate immediately without notice from Sun if you materially breach it or take any action in derogation of Sun's and/or its licensors' rights to Software. Sun may terminate this Agreement should any Software become, or in Sun's reasonable opinion likely to become, the subject of a claim of intellectual property infringement or trade secret misappropriation. Upon termination, you will cease use of, and destroy, Software and confirm compliance in writing to Sun. Sections 1, 5, 6, 7, and 9-15 will survive termination of the Agreement. + +7. Java Compatibility and Open Source. + +Software may contain Java technology. You may not create additional classes to, or modifications of, the Java technology, except under compatibility requirements available under a separate agreement available at www.java.net. + +Sun supports and benefits from the global community of open source developers, and thanks the community for its important contributions and open standards-based technology, which Sun has adopted into many of its products. + +Please note that portions of Software may be provided with notices and open source licenses from such communities and third parties that govern the use of those portions, and any licenses granted hereunder do not alter any rights and obligations you may have under such open source licenses, however, the disclaimer of warranty and limitation of liability provisions in this Agreement will apply to all Software in this distribution. + +8. Limited Warranty. + +Sun warrants to you that for a period of 90 days from the date of purchase, as evidenced by a copy of the receipt, the media on which Software is furnished (if any) will be free of defects in materials and workmanship under normal use. Except for the foregoing, Software is provided "AS IS". Your exclusive remedy and Sun's entire liability under this limited warranty will be at Sun's option to replace Software media or refund the fee paid for Software. Some states do not allow limitations on certain implied warranties, so the above may not apply to you. This limited warranty gives you specific legal rights. You may have others, which vary from state to state. + +9. Disclaimer of Warranty. + +UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. + +10. Limitation of Liability. + +TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event will Sun's liability to you, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by you for Software under this Agreement. The foregoing limitations will apply even if the above stated warranty fails of its essential purpose. Some states do not allow the exclusion of incidental or consequential damages, so some of the terms above may not be applicable to you. + +11. Export Regulations. + +All Software, documents, technical data, and any other materials delivered under this Agreement are subject to U.S. export control laws and may be subject to export or import regulations in other countries. You agree to comply strictly with these laws and regulations and acknowledge that you have the responsibility to obtain any licenses to export, re-export, or import as may be required after delivery to you. + +12. U.S. Government Restricted Rights. + +If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation will be only as set forth in this Agreement; this is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of Defense (DOD) acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD acquisitions). + +13. Governing Law. + +Any action related to this Agreement will be governed by California law and controlling U.S. federal law. No choice of law rules of any jurisdiction will apply. + +14. Severability. + +If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate. + +15. Integration. + +This Agreement, including any terms contained in your Entitlement, is the entire agreement between you and Sun relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this Agreement. No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party. + +Please contact Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, California 95054 if you have questions. diff --git a/rpms/legal/FOSS_licenses/java/COPYRIGHT.txt b/rpms/legal/FOSS_licenses/java/COPYRIGHT.txt new file mode 100755 index 0000000000..a93ebcd6fe --- /dev/null +++ b/rpms/legal/FOSS_licenses/java/COPYRIGHT.txt @@ -0,0 +1,81 @@ +Copyright \251 2008 Sun Microsystems, Inc., 4150 Network Circle, Santa +Clara, California 95054, U.S.A. All rights reserved. + +Sun Microsystems, Inc. has intellectual property rights relating to +technology embodied in the product that is described in this document. +In particular, and without limitation, these intellectual property +rights may include one or more of the U.S. patents listed at +http://www.sun.com/patents and one or more additional patents or +pending patent applications in the U.S. and in other countries. + +THIS PRODUCT CONTAINS CONFIDENTIAL INFORMATION AND TRADE SECRETS OF SUN +MICROSYSTEMS, INC. USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED +WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SUN MICROSYSTEMS, INC. + +U.S. Government Rights - Commercial software. Government users are +subject to the Sun Microsystems, Inc. standard license agreement and +applicable provisions of the FAR and its supplements. + +Use is subject to license terms. + +This distribution may include materials developed by third parties. + +Sun, Sun Microsystems, the Sun logo, Java, Jini and Java SE are +trademarks or registered trademarks of Sun Microsystems, Inc. in the +U.S. and other countries. + +Products covered by and information contained in this service manual +are controlled by U.S. Export Control laws and may be subject to the +export or import laws in other countries. Nuclear, missile, chemical +biological weapons or nuclear maritime end uses or end users, whether +direct or indirect, are strictly prohibited. Export or reexport to +countries subject to U.S. embargo or to entities identified on U.S. +export exclusion lists, including, but not limited to, the denied +persons and specially designated nationals lists is strictly +prohibited. + + +Copyright 2008 Sun Microsystems, Inc., 4150 Network Circle, Santa +Clara, California 95054, Etats-Unis. Tous droits rservs. + +Sun Microsystems, Inc. dtient les droits de proprit intellectuelle +relatifs la technologie incorpore dans le produit qui est dcrit dans +ce document. En particulier, et ce sans limitation, ces droits de +proprit intellectuelle peuvent inclure un ou plus des brevets amricains +lists l'adresse http://www.sun.com/patents et un ou les brevets +supplmentaires ou les applications de brevet en attente aux Etats - +Unis et dans les autres pays. + +CE PRODUIT CONTIENT DES INFORMATIONS CONFIDENTIELLES ET DES SECRETS +COMMERCIAUX DE SUN MICROSYSTEMS, INC. SON UTILISATION, SA DIVULGATION +ET SA REPRODUCTION SONT INTERDITES SANS L AUTORISATION EXPRESSE, ECRITE +ET PREALABLE DE SUN MICROSYSTEMS, INC. + +Droits du gouvernement des tats-Unis - logiciel commercial. Les +droits des utilisateur du gouvernement des tats-Unis sont +soumis aux termes de la licence standard Sun Microsystems et +aux conditions appliques de la FAR et de ces complments. + +L'utilisation est soumise aux termes de la Licence. + +Cette distribution peut inclure des lements dvelopps par des tiers. + +Sun, Sun Microsystems, le logo Sun, Java, Jini et Java SE sont des +marques de fabrique ou des marques dposes de Sun Microsystems, Inc. aux +Etats-Unis et dans d'autres pays. + +Les produits qui font l'objet de ce manuel d'entretien et les +informations qu'il contient sont regis par la legislation americaine en +matiere de controle des exportations et peuvent etre soumis au droit +d'autres pays dans le domaine des exportations et importations. Les +utilisations finales, ou utilisateurs finaux, pour des armes +nucleaires, des missiles, des armes biologiques et chimiques ou du +nucleaire maritime, directement ou indirectement, sont strictement +interdites. Les exportations ou reexportations vers des pays sous +embargo des Etats-Unis, ou vers des entites figurant sur les listes +d'exclusion d'exportation americaines, y compris, mais de maniere non +exclusive, la liste de personnes qui font objet d'un ordre de ne pas +participer, d'une facon directe ou indirecte, aux exportations des +produits ou des services qui sont regi par la legislation americaine en +matiere de controle des exportations et la liste de ressortissants +specifiquement designes, sont rigoureusement interdites. diff --git a/rpms/legal/FOSS_licenses/java/LICENSE.txt b/rpms/legal/FOSS_licenses/java/LICENSE.txt new file mode 100755 index 0000000000..c78b042fc5 --- /dev/null +++ b/rpms/legal/FOSS_licenses/java/LICENSE.txt @@ -0,0 +1,342 @@ +Sun Microsystems, Inc. Binary Code License Agreement + +for the JAVA SE DEVELOPMENT KIT (JDK), VERSION 6 + +SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE +SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE CONDITION +THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY +CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS +(COLLECTIVELY "AGREEMENT"). PLEASE READ THE AGREEMENT +CAREFULLY. BY DOWNLOADING OR INSTALLING THIS SOFTWARE, YOU +ACCEPT THE TERMS OF THE AGREEMENT. INDICATE ACCEPTANCE BY +SELECTING THE "ACCEPT" BUTTON AT THE BOTTOM OF THE +AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY ALL THE +TERMS, SELECT THE "DECLINE" BUTTON AT THE BOTTOM OF THE +AGREEMENT AND THE DOWNLOAD OR INSTALL PROCESS WILL NOT +CONTINUE. + +1. DEFINITIONS. "Software" means the identified above in +binary form, any other machine readable materials +(including, but not limited to, libraries, source files, +header files, and data files), any updates or error +corrections provided by Sun, and any user manuals, +programming guides and other documentation provided to you +by Sun under this Agreement. "General Purpose Desktop +Computers and Servers" means computers, including desktop, +laptop and tablet computers, or servers, used for general +computing functions under end user control (such as but not +specifically limited to email, general purpose Internet +browsing, and office suite productivity tools). +The use of Software in systems and solutions that provide +dedicated functionality (other than as mentioned above) or +designed for use in embedded or function-specific software +applications, for example but not limited to: Software +embedded in or bundled with industrial control systems, +wireless mobile telephones, wireless handheld devices, +kiosks, TV/STB, Blu-ray Disc devices, telematics and +network control switching equipment, printers and storage +management systems, and other related systems are excluded +from this definition and not licensed under this +Agreement. "Programs" means Java technology applets and +applications intended to run on the Java Platform Standard +Edition (Java SE) platform on Java-enabled General Purpose +Desktop Computers and Servers. + +2. LICENSE TO USE. Subject to the terms and conditions of +this Agreement, including, but not limited to the Java +Technology Restrictions of the Supplemental License Terms, +Sun grants you a non-exclusive, non-transferable, limited +license without license fees to reproduce and use +internally Software complete and unmodified for the sole +purpose of running Programs. Additional licenses for +developers and/or publishers are granted in the +Supplemental License Terms. + +3. RESTRICTIONS. Software is confidential and copyrighted. +Title to Software and all associated intellectual property +rights is retained by Sun and/or its licensors. Unless +enforcement is prohibited by applicable law, you may not +modify, decompile, or reverse engineer Software. You +acknowledge that Licensed Software is not designed or +intended for use in the design, construction, operation or +maintenance of any nuclear facility. Sun Microsystems, Inc. +disclaims any express or implied warranty of fitness for +such uses. No right, title or interest in or to any +trademark, service mark, logo or trade name of Sun or its +licensors is granted under this Agreement. Additional +restrictions for developers and/or publishers licenses are +set forth in the Supplemental License Terms. + +4. LIMITED WARRANTY. Sun warrants to you that for a period +of ninety (90) days from the date of purchase, as evidenced +by a copy of the receipt, the media on which Software is +furnished (if any) will be free of defects in materials and +workmanship under normal use. Except for the foregoing, +Software is provided "AS IS". Your exclusive remedy and +Sun's entire liability under this limited warranty will be +at Sun's option to replace Software media or refund the fee +paid for Software. Any implied warranties on the Software +are limited to 90 days. Some states do not allow +limitations on duration of an implied warranty, so the +above may not apply to you. This limited warranty gives you +specific legal rights. You may have others, which vary from +state to state. + +5. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS +AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS, +REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED +WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE +EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY +INVALID. + +6. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY +LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR +ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER +CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT +OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, +EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. In no event will Sun's liability to you, whether +in contract, tort (including negligence), or otherwise, +exceed the amount paid by you for Software under this +Agreement. The foregoing limitations will apply even if the +above stated warranty fails of its essential purpose. Some +states do not allow the exclusion of incidental or +consequential damages, so some of the terms above may not +be applicable to you. + +7. TERMINATION. This Agreement is effective until +terminated. You may terminate this Agreement at any time by +destroying all copies of Software. This Agreement will +terminate immediately without notice from Sun if you fail +to comply with any provision of this Agreement. Either +party may terminate this Agreement immediately should any +Software become, or in either party's opinion be likely to +become, the subject of a claim of infringement of any +intellectual property right. Upon Termination, you must +destroy all copies of Software. + +8. EXPORT REGULATIONS. All Software and technical data +delivered under this Agreement are subject to US export +control laws and may be subject to export or import +regulations in other countries. You agree to comply +strictly with all such laws and regulations and acknowledge +that you have the responsibility to obtain such licenses to +export, re-export, or import as may be required after +delivery to you. + +9. TRADEMARKS AND LOGOS. You acknowledge and agree as +between you and Sun that Sun owns the SUN, SOLARIS, JAVA, +JINI, FORTE, and iPLANET trademarks and all SUN, SOLARIS, +JAVA, JINI, FORTE, and iPLANET-related trademarks, service +marks, logos and other brand designations ("Sun Marks"), +and you agree to comply with the Sun Trademark and Logo +Usage Requirements currently located at +http://www.sun.com/policies/trademarks. Any use you make of +the Sun Marks inures to Sun's benefit. + +10. U.S. GOVERNMENT RESTRICTED RIGHTS. If Software is being +acquired by or on behalf of the U.S. Government or by a +U.S. Government prime contractor or subcontractor (at any +tier), then the Government's rights in Software and +accompanying documentation will be only as set forth in +this Agreement; this is in accordance with 48 CFR 227.7201 +through 227.7202-4 (for Department of Defense (DOD) +acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD +acquisitions). + +11. GOVERNING LAW. Any action related to this Agreement +will be governed by California law and controlling U.S. +federal law. No choice of law rules of any jurisdiction +will apply. + +12. SEVERABILITY. If any provision of this Agreement is +held to be unenforceable, this Agreement will remain in +effect with the provision omitted, unless omission would +frustrate the intent of the parties, in which case this +Agreement will immediately terminate. + +13. INTEGRATION. This Agreement is the entire agreement +between you and Sun relating to its subject matter. It +supersedes all prior or contemporaneous oral or written +communications, proposals, representations and warranties +and prevails over any conflicting or additional terms of +any quote, order, acknowledgment, or other communication +between the parties relating to its subject matter during +the term of this Agreement. No modification of this +Agreement will be binding, unless in writing and signed by +an authorized representative of each party. + +SUPPLEMENTAL LICENSE TERMS + +These Supplemental License Terms add to or modify the terms +of the Binary Code License Agreement. Capitalized terms not +defined in these Supplemental Terms shall have the same +meanings ascribed to them in the Binary Code License +Agreement . These Supplemental Terms shall supersede any +inconsistent or conflicting terms in the Binary Code +License Agreement, or in any license contained within the +Software. + +A. Software Internal Use and Development License Grant. +Subject to the terms and conditions of this Agreement and +restrictions and exceptions set forth in the Software +"README" file incorporated herein by reference, including, +but not limited to the Java Technology Restrictions of +these Supplemental Terms, Sun grants you a non-exclusive, +non-transferable, limited license without fees to reproduce +internally and use internally the Software complete and +unmodified for the purpose of designing, developing, and +testing your Programs. + +B. License to Distribute Software. Subject to the terms and +conditions of this Agreement and restrictions and +exceptions set forth in the Software README file, +including, but not limited to the Java Technology +Restrictions of these Supplemental Terms, Sun grants you a +non-exclusive, non-transferable, limited license without +fees to reproduce and distribute the Software, provided +that (i) you distribute the Software complete and +unmodified and only bundled as part of, and for the sole +purpose of running, your Programs, (ii) the Programs add +significant and primary functionality to the Software, +(iii) you do not distribute additional software intended to +replace any component(s) of the Software, (iv) you do not +remove or alter any proprietary legends or notices +contained in the Software, (v) you only distribute the +Software subject to a license agreement that protects Sun's +interests consistent with the terms contained in this +Agreement, and (vi) you agree to defend and indemnify Sun +and its licensors from and against any damages, costs, +liabilities, settlement amounts and/or expenses (including +attorneys' fees) incurred in connection with any claim, +lawsuit or action by any third party that arises or results +from the use or distribution of any and all Programs and/or +Software. + +C. License to Distribute Redistributables. Subject to the +terms and conditions of this Agreement and restrictions and +exceptions set forth in the Software README file, including +but not limited to the Java Technology Restrictions of +these Supplemental Terms, Sun grants you a non-exclusive, +non-transferable, limited license without fees to reproduce +and distribute those files specifically identified as +redistributable in the Software "README" file +("Redistributables") provided that: (i) you distribute the +Redistributables complete and unmodified, and only bundled +as part of Programs, (ii) the Programs add significant and +primary functionality to the Redistributables, (iii) you do +not distribute additional software intended to supersede +any component(s) of the Redistributables (unless otherwise +specified in the applicable README file), (iv) you do not +remove or alter any proprietary legends or notices +contained in or on the Redistributables, (v) you only +distribute the Redistributables pursuant to a license +agreement that protects Sun's interests consistent with the +terms contained in the Agreement, (vi) you agree to defend +and indemnify Sun and its licensors from and against any +damages, costs, liabilities, settlement amounts and/or +expenses (including attorneys' fees) incurred in connection +with any claim, lawsuit or action by any third party that +arises or results from the use or distribution of any and +all Programs and/or Software. + +D. Java Technology Restrictions. You may not create, +modify, or change the behavior of, or authorize your +licensees to create, modify, or change the behavior of, +classes, interfaces, or subpackages that are in any way +identified as "java", "javax", "sun" or similar convention +as specified by Sun in any naming convention designation. + +E. Distribution by Publishers. This section pertains to +your distribution of the Software with your printed book or +magazine (as those terms are commonly used in the industry) +relating to Java technology ("Publication"). Subject to and +conditioned upon your compliance with the restrictions and +obligations contained in the Agreement, in addition to the +license granted in Paragraph 1 above, Sun hereby grants to +you a non-exclusive, nontransferable limited right to +reproduce complete and unmodified copies of the Software on +electronic media (the "Media") for the sole purpose of +inclusion and distribution with your Publication(s), +subject to the following terms: (i) You may not distribute +the Software on a stand-alone basis; it must be distributed +with your Publication(s); (ii) You are responsible for +downloading the Software from the applicable Sun web site; +(iii) You must refer to the Software as JavaTM SE +Development Kit 6; (iv) The Software must be reproduced in +its entirety and without any modification whatsoever +(including, without limitation, the Binary Code License and +Supplemental License Terms accompanying the Software and +proprietary rights notices contained in the Software); +(v) The Media label shall include the following +information: Copyright 2006, Sun Microsystems, Inc. All +rights reserved. Use is subject to license terms. Sun, Sun +Microsystems, the Sun logo, Solaris, Java, the Java Coffee +Cup logo, J2SE, and all trademarks and logos based on Java +are trademarks or registered trademarks of Sun +Microsystems, Inc. in the U.S. and other countries. This +information must be placed on the Media label in such a +manner as to only apply to the Sun Software; (vi) You must +clearly identify the Software as Sun's product on the Media +holder or Media label, and you may not state or imply that +Sun is responsible for any third-party software contained +on the Media; (vii) You may not include any third party +software on the Media which is intended to be a replacement +or substitute for the Software; (viii) You shall indemnify +Sun for all damages arising from your failure to comply +with the requirements of this Agreement. In addition, you +shall defend, at your expense, any and all claims brought +against Sun by third parties, and shall pay all damages +awarded by a court of competent jurisdiction, or such +settlement amount negotiated by you, arising out of or in +connection with your use, reproduction or distribution of +the Software and/or the Publication. Your obligation to +provide indemnification under this section shall arise +provided that Sun: (a) provides you prompt notice of the +claim; (b) gives you sole control of the defense and +settlement of the claim; (c) provides you, at your expense, +with all available information, assistance and authority to +defend; and (d) has not compromised or settled such claim +without your prior written consent; and (ix) You shall +provide Sun with a written notice for each Publication; +such notice shall include the following information: (1) +title of Publication, (2) author(s), (3) date of +Publication, and (4) ISBN or ISSN numbers. Such notice +shall be sent to Sun Microsystems, Inc., 4150 Network +Circle, M/S USCA12-110, Santa Clara, California 95054, +U.S.A , Attention: Contracts Administration. + +F. Source Code. Software may contain source code that, +unless expressly licensed for other purposes, is provided +solely for reference purposes pursuant to the terms of this +Agreement. Source code may not be redistributed unless +expressly provided for in this Agreement. + +G. Third Party Code. Additional copyright notices and +license terms applicable to portions of the Software are +set forth in the THIRDPARTYLICENSEREADME.txt file. In +addition to any terms and conditions of any third party +opensource/freeware license identified in the +THIRDPARTYLICENSEREADME.txt file, the disclaimer of +warranty and limitation of liability provisions in +paragraphs 5 and 6 of the Binary Code License Agreement +shall apply to all Software in this distribution. + +H. Termination for Infringement. Either party may terminate +this Agreement immediately should any Software become, or +in either party's opinion be likely to become, the subject +of a claim of infringement of any intellectual property +right. + +I. Installation and Auto-Update. The Software's +installation and auto-update processes transmit a limited +amount of data to Sun (or its service provider) about those +specific processes to help Sun understand and optimize +them. Sun does not associate the data with personally +identifiable information. You can find more information +about the data Sun collects at http://java.com/data/. + +For inquiries please contact: Sun Microsystems, Inc., 4150 +Network Circle, Santa Clara, California 95054, U.S.A. diff --git a/rpms/legal/FOSS_licenses/java/README.html b/rpms/legal/FOSS_licenses/java/README.html new file mode 100755 index 0000000000..91239b6f00 --- /dev/null +++ b/rpms/legal/FOSS_licenses/java/README.html @@ -0,0 +1,719 @@ + + + + + + + + README -- Java Platform, Standard Edition Development Kit + + + +

README

+ +

JavaTM Platform, + Standard Edition 6
+ Development Kit

+ +

JDKTM 6

+ +

Contents

+ + + +

Introduction

+ +
+ Thank you for downloading this release of the JavaTM Platform, Standard Edition Development Kit + (JDKTM). The JDK is a development + environment for building applications, applets, and components using the + Java programming language. +
+ +
+ The JDK includes tools useful for developing and testing programs written + in the Java programming language and running on the JavaTM platform. +
+ +

System Requirements & + Installation

+ +
+ System requirements, installation instructions and troubleshooting tips + are located on the Java Software web site at: +
+ +
+ JDK 6 + Installation Instructions +
+ +

JDKTM + Documentation

+ +
+ The on-line JavaTM Platform, Standard Edition (Java SE) + Documentation contains API specifications, feature descriptions, + developer guides, reference pages for JDKTM tools and utilities, demos, and links to related + information. This documentation is also available in a download bundle + which you can install on your machine. To obtain the documentation bundle, + see the download + page. For API documentation, refer to the The + JavaTM Platform, Standard Edition API + Specification This provides brief descriptions of the API with an + emphasis on specifications, not on code examples. +
+ +

Release Notes

+ +
+ See the Java SE 6 Release + Notes on the Java Software web site for additional information + pertaining to this release. Please check the on-line release notes + occasionally for the latest information as they will be updated as needed. +
+ +

Compatibility

+ +
+ See Compatibility + with Previous Releases on the Java Software web site for the list of + known compatibility issues. Every effort has been made to support programs + written for previous versions of the JavaTM platform. Although some incompatible changes were + necessary, most software should migrate to the current version with no + reprogramming. Any failure to do so is considered a bug, except for a + small number of cases where compatibility was deliberately broken, as + described on our compatibility web page. Some compatibility-breaking + changes were required to close potential security holes or to fix + implementation or design bugs. +
+ +

Bug Reports and Feedback

+ +
+ The Bug Database + web site lets you search for and examine existing bug reports, submit your + own bug reports, and tell us which bug fixes matter most to you. To + directly submit a bug or request a feature, fill out this form: +
+ +
+ http://bugs.sun.com/services/bugreport/index.jsp +
+ +
+ You can send feedback to the Java SE documentation + team. You can also send comments directly to Java Software engineering + team email addresses. +
+ +
+ Note - Please do not seek technical support through the Bug + Database or our development teams. For support options, see Support and Services on the + Java Software web site. +
+ +

Contents of the JDKTM

+ +
+ This section contains a general summary of the files and directories in + the JDKTM. For details on the files and + directories, see the JDK + File Structure section of the Java SE documentation for your platform. +
+ +
+
+
+
Development Tools
+ +
(In the bin/ subdirectory) Tools and utilities that + will help you develop, execute, debug, and document programs written + in the JavaTM programming language. + For further information, see the tool + documentation.
+
+ +
Runtime Environment
+ +
(In the jre/ subdirectory) An implementation of the + Java Runtime Environment (JRETM) for + use by the JDK. The JRE includes a JavaTM Virtual Machine (JVMTM), class libraries, and other files that support + the execution of programs written in the JavaTM programming language.
+
+ +
Additional Libraries
+ +
(In the lib/ subdirectory) Additional class libraries + and support files required by the development tools.
+
+ +
Demo Applets and Applications
+ +
(In the demo/ subdirectory) Examples, with source + code, of programming for the JavaTM + platform. These include examples that use Swing and other + JavaTM Foundation Classes, and the + JavaTM Platform Debugger + Architecture.
+
+ +
Sample Code
+ +
(In the sample subdirectory) Samples, with source + code, of programming for certain Java API's.
+
+ +
C header Files
+ +
(In the include/ subdirectory) Header files that + support native-code programming using the Java Native + Interface, the JVMTM + Tool Interface, and other functionality of the + JavaTM platform.
+
+ +
Source Code
+ +
(In src.zip) JavaTM + programming language source files for all classes that make up the + Java core API (that is, sources files for the java.*, javax.* and + some org.* packages, but not for com.sun.* packages). This source code + is provided for informational purposes only, to help developers learn + and use the JavaTM programming + language. These files do not include platform-specific implementation + code and cannot be used to rebuild the class libraries. To extract + these file, use any common zip utility. Or, you may use the Jar + utility in the JDK's bin/ directory:
+
+ jar xvf src.zip
+
+
+
+ +

The Java Runtime Environment + (JRETM)

+ +
+ The JavaTM Runtime Environment + (JRETM) is available as a separately + downloadable product. See the download web site. +
+ +
+ The JRE allows you to run applications written in the JavaTM programming language. Like the JDKTM, it contains the JavaTM Virtual Machine (JVMTM), classes comprising the JavaTM platform API, and supporting files. Unlike the JDK, + it does not contain development tools such as compilers and debuggers. +
+ +
+ You can freely redistribute the JRE with your application, according to + the terms of the JRE license. Once you have developed your application + using the JDK, you can ship it with the JRE so your end-users will have a + JavaTM platform on which to run your + software. +
+ +

Redistribution

+ +
+
+
+ NOTE - The license for this software does not allow the redistribution + of beta and other pre-release versions. +
+
+
+ +
+ Subject to the terms and conditions of the Software License Agreement and + the obligations, restrictions, and exceptions set forth below, You may + reproduce and distribute the Software (and also portions of Software + identified below as Redistributable), provided that: +
+ +
+
    +
  1. you distribute the Software complete and unmodified and only bundled + as part of Your applets and applications ("Programs"),
  2. + +
  3. your Programs add significant and primary functionality to the + Software,
  4. + +
  5. your Programs are only intended to run on Java-enabled general + purpose desktop computers and servers,
  6. + +
  7. you distribute Software for the sole purpose of running your + Programs,
  8. + +
  9. you do not distribute additional software intended to replace any + component(s) of the Software,
  10. + +
  11. you do not remove or alter any proprietary legends or notices + contained in or on the Software,
  12. + +
  13. you only distribute the Software subject to a license agreement that + protects Sun's interests consistent with the terms contained in this + Agreement, and
  14. + +
  15. you agree to defend and indemnify Sun and its licensors from and + against any damages, costs, liabilities, settlement amounts and/or + expenses (including attorneys' fees) incurred in connection with any + claim, lawsuit or action by any third party that arises or results from + the use or distribution of any and all Programs and/or Software.
  16. +
+
+ +
+ The term "vendors" used here refers to licensees, developers, and + independent software vendors (ISVs) who license and distribute the + JavaTM Development Kit + (JDKTM) with their programs. +
+ +
+ Vendors must follow the terms of the Java Development Kit Binary Code + License agreement. +
+ +

Required vs. Optional Files

+ +
+ The files that make up the JavaTM + Development Kit (JDKTM) are divided into + two categories: required and optional. Optional files may be excluded from + redistributions of the JDK at the vendor's discretion. +
+ +
+ The following section contains a list of the files and directories that + may optionally be omitted from redistributions of the JDK. All files not + in these lists of optional files must be included in redistributions of + the JDK. +
+ +

Optional Files and Directories

+ +
+ The following files may be optionally excluded from redistributions. These + files are located in the jdk1.6.0_<version> directory, where + <version> is the update version number. SolarisTM and Linux filenames and separators are shown. Windows + executables have the ".exe" suffix. Corresponding files with + _g in the name can also be excluded. The corresponding man + pages should be excluded for any excluded executables (with paths listed + below beginning with bin/, for the SolarisTM Operating System and Linux). +
+ +
+
+
+
jre/lib/charsets.jar
+ +
Character conversion classes
+ +
jre/lib/ext/
+ +
sunjce_provider.jar - the SunJCE provider for Java + Cryptography APIs
+ localedata.jar - contains many of the resources needed + for non US English locales
+ ldapsec.jar - contains security features supported by the + LDAP service provider
+ dnsns.jar - for the InetAddress wrapper of JNDI DNS + provider
+ +
bin/rmid and jre/bin/rmid
+ +
Java RMI Activation System Daemon
+ +
bin/rmiregistry and + jre/bin/rmiregistry
+ +
Java Remote Object Registry
+ +
bin/tnameserv and jre/bin/tnameserv
+ +
Java IDL Name Server
+ +
bin/keytool and jre/bin/keytool
+ +
Key and Certificate Management Tool
+ +
bin/kinit and jre/bin/kinit
+ +
Used to obtain and cache Kerberos ticket-granting tickets
+ +
bin/klist and jre/bin/klist
+ +
Kerberos display entries in credentials cache and keytab
+ +
bin/ktab and jre/bin/ktab
+ +
Kerberos key table manager
+ +
bin/policytool and + jre/bin/policytool
+ +
Policy File Creation and Management Tool
+ +
bin/orbd and jre/bin/orbd
+ +
Object Request Broker Daemon
+ +
bin/servertool and + jre/bin/servertool
+ +
Java IDL Server Tool
+ +
bin/javaws, jre/bin/javaws, + jre/lib/javaws/ and jre/lib/javaws.jar
+ +
Java Web Start
+ +
db/
+ +
+ Java DB, Sun Microsystems's distribution of the Apache Derby + database technology. Default installation locations are: + +
    +
  • Solaris: /opt/SUNWjavadb
  • + +
  • Linux: /opt/sun/javadb
  • + +
  • Windows: C:\Program Files\Sun\JavaDB
  • +
For information on Java DB and Derby, including user and API + documentation, the capabilities of Java DB and further resources, + see the index.html file in the above directories. +
+ +
demo/
+ +
Demo Applets and Applications
+ +
sample/
+ +
Sample Code
+ +
src.zip
+ +
Archive of source files
+
+
+
+ +

Redistributable JDKTM Files

+ +
+ The limited set of files and directories from the JDK listed below may be + included in vendor redistributions of the JavaTM Runtime Environment (JRETM). They cannot be redistributed separately, and must + accompany an identically versioned JRE distribution. All paths are + relative to the top-level directory of the JDK. The corresponding man + pages should be included for any included executables (with paths listed + below beginning with bin/, for the SolarisTM Operating System and Linux). +
+ +
+
+
+
jre/lib/cmm/PYCC.pf
+ +
Color profile. This file is required only if one wishes to convert + between the PYCC color space and another color space.
+ +
All .ttf font files in the + jre/lib/fonts/ directory.
+ +
Note that the LucidaSansRegular.ttf font is already contained in + the JRE, so there is no need to bring that file over from the + JDK.
+ +
jre/lib/audio/soundbank.gm
+ +
This MIDI soundbank is present in the JDK, but it has been removed + from the JRE in order to reduce the size of the JRE download bundle. + However, a soundbank file is necessary for MIDI playback, and + therefore the JDK's soundbank.gm file may be included in + redistributions of the JRE at the vendor's discretion. Several + versions of enhanced MIDI soundbanks are available from the Java Sound + web site: http://java.sun.com/products/java-media/sound/. + These alternative soundbanks may be included in redistributions of the + JRE.
+ +
The javac bytecode compiler, consisting of the following + files:
+ +
bin/javac [SolarisTM Operating System and Linux]
+ bin/sparcv9/javac [SolarisTM Operating System (SPARC(R) Platform Edition)]
+ bin/amd64/javac [SolarisTM Operating System (AMD)]
+ bin/javac.exe [Microsoft Windows]
+ lib/tools.jar [All platforms]
+ +
The Annotation Processing Tool, consisting of the following + files:
+ +
lib/tools.jar [All platforms]
+ bin/apt [SolarisTM + Operating System and Linux]
+ bin/sparcv9/apt [SolarisTM Operating System (SPARC(R) Platform Edition)]
+ bin/amd64/apt [SolarisTM Operating System (AMD)]
+ bin/apt.exe [Microsoft Windows]
+ +
lib/jconsole.jar
+ +
The Jconsole application. NOTE: The Jconsole application requires + the dynamic attach mechanism.
+ +
The dynamic attach mechanism consisting of the following + files:
+ +
lib/tools.jar [All platforms]
+ jre/lib/sparc/libattach.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/sparcv9/libattach.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/i386/libattach.so [SolarisTM Operating System (x86) and Linux]
+ jre/lib/amd64/libattach.so [SolarisTM Operating System (AMD) and Linux]
+ jre\bin\attach.dll [Microsoft Windows]
+ +
The Java Platform Debugger Architecture implementation consisting + of the files shown in the dynamic attach section above, and the + following files:
+ +
lib/tools.jar [All platforms]
+ lib/sa-jdi.jar [All platforms]
+ jre/lib/sparc/libsaproc.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/sparcv9/libsaproc.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/i386/libsaproc.so [SolarisTM Operating System (x86) and Linux]
+ jre/lib/amd64/libsaproc.so [SolarisTM Operating System (AMD) and Linux]
+ +
jre\bin\server\
+ +
On Microsoft Windows platforms, the JDK includes both the Java + HotSpotTM Server VM and Java + HotSpotTM Client VM. However, the + JRE for Microsoft Windows platforms includes only the Java + HotSpotTM Client VM. Those wishing + to use the Java HotSpotTM Server VM + with the JRE may copy the JDK's jre\bin\server folder to + a bin\server directory in the JRE. Software vendors may + redistribute the Java HotSpotTM + Server VM with their redistributions of the JRE.
+
+
+
+ +

Unlimited Strength Java Cryptography Extension

+ +
+ Due to import control restrictions for some countries, the Java + Cryptography Extension (JCE) policy files shipped with the JDK and the JRE + allow strong but limited cryptography to be used. These files are located + at
+
+ <java-home>/lib/security/local_policy.jar
+ <java-home>/lib/security/US_export_policy.jar
+
+ where <java-home> is the jre directory of + the JDK or the top-level directory of the JRE. +
+ +
+ An unlimited strength version of these files indicating no restrictions on + cryptographic strengths is available on the JDK web site for those living + in eligible countries. Those living in eligible countries may download the + unlimited strength version and replace the strong cryptography jar files + with the unlimited strength files. +
+ +

The cacerts Certificates File

+ +
+ Root CA certificates may be added to or removed from the Java SE + certificate file located at +
+ +
+ <java-home>/lib/security/cacerts +
+ +
+ For more information, see + The cacerts Certificates File section in the keytool documentation. +
+ +

Java Endorsed Standards Override + Mechanism

+ +
+ From time to time it is necessary to update the Java platform in order to + incorporate newer versions of standards that are created outside of the + Java Community ProcessSM (JCPSM http://www.jcp.org/) (Endorsed + Standards), or in order to update the version of a technology included + in the platform to correspond to a later standalone version of that + technology (Standalone Technologies). +
+ +
+ The Endorsed Standards Override Mechanism provides a means whereby + later versions of classes and interfaces that implement Endorsed Standards + or Standalone Technologies may be incorporated into the Java Platform. +
+ +
+ For more information on the Endorsed Standards Override Mechanism, + including the list of platform packages that it may be used to override, + see +
+ +
+ http://java.sun.com/javase/6/docs/technotes/guides/standards/ +
+ +

Java DB

+ +
+ This distribution bundles Java DB, Sun Microsystems' distribution of the + Apache Derby pure Java database technology. Default installation locations + are: + +
    +
  • Solaris: /opt/SUNWjavadb
  • + +
  • Linux: /opt/sun/javadb
  • + +
  • Windows: C:\Program Files\Sun\JavaDB
  • +
+ +

For information on Java DB and Derby, including user and API + documentation, the capabilities of Java DB and further resources, see the + index.html file in the above directories.

+
+ +

Web Pages

+ +
+ For additional information, refer to these Sun Microsystems pages on the + World Wide Web: +
+ +
+
+
+
http://java.sun.com/
+ +
The Java Software web site, with the latest information on Java + technology, product information, news, and features.
+ +
http://java.sun.com/docs
+ +
JavaTM platform Documentation + provides access to white papers, the Java Tutorial and other + documents.
+ +
http://developer.java.sun.com
+ +
Developer Services web site (Free registration required). + Additional technical information, news, and features; user forums; + support information, and much more.
+ +
http://java.sun.com/products/
+ +
Java Technology Products & API
+
+
+
+
+ +

The JavaTM Development + Kit (JDKTM) is a product of Sun + MicrosystemsTM, Inc.
+
+ Copyright © 2008 Sun Microsystems, Inc.
+ 4150 Network Circle, Santa Clara, California 95054, U.S.A.
+ All rights reserved.

+ + + + diff --git a/rpms/legal/FOSS_licenses/java/THIRDPARTYLICENSEREADME.txt b/rpms/legal/FOSS_licenses/java/THIRDPARTYLICENSEREADME.txt new file mode 100755 index 0000000000..c5837c2f51 --- /dev/null +++ b/rpms/legal/FOSS_licenses/java/THIRDPARTYLICENSEREADME.txt @@ -0,0 +1,2289 @@ +DO NOT TRANSLATE OR LOCALIZE. + +%% The following software may be included in this product: CS CodeViewer v1.0; Use of any of this software is governed by the terms of the license below: +Copyright 1999 by CoolServlets.com. + +Any errors or suggested improvements to this class can be reported as instructed on CoolServlets.com. We hope you enjoy this program... your comments will encourage further development! +This software is distributed under the terms of the BSD License. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. +Neither name of CoolServlets.com 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 COOLSERVLETS.COM 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 AUTHOR 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 INANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +%% The following software may be included in this product: Crimson v1.1.1 ; Use of any of this software is governed by the terms of the license below: +/* +* The Apache Software License, Version 1.1 +* +* +* Copyright (c) 1999-2000 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, +* if any, must include the following acknowledgment: +* "This product includes software developed by the +* Apache Software Foundation (http://www.apache.org/)." +* Alternately, this acknowledgment may appear in the software itself, +* if and wherever such third-party acknowledgments normally appear. +* +* 4. The names "Crimson" and "Apache Software Foundation" must +* not be used to endorse or promote products derived from this +* software without prior written permission. For written +* permission, please contact apache@apache.org. +* +* 5. Products derived from this software may not be called "Apache", +* nor may "Apache" appear in their name, without prior written +* permission of the Apache Software Foundation. +* +* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR +* ITS 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. +* ====================================================================* +* This software consists of voluntary contributions made by many +* individuals on behalf of the Apache Software Foundation and was +* originally based on software copyright (c) 1999, International +* Business Machines, Inc., http://www.ibm.com. For more +* information on the Apache Software Foundation, please see +* . +*/ + + +%% The following software may be included in this product: Xalan J2; Use of any of this software is governed by the terms of the license below: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + + + +%% The following software may be included in this product: NSIS 1.0j; Use of any of this software is governed by the terms of the license below: +Copyright (C) 1999-2000 Nullsoft, Inc. +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. Justin Frankel justin@nullsoft.com" + +%% Some Portions licensed from IBM are available at: +http://www.ibm.com/software/globalization/icu/ + +%% Portions Copyright Eastman Kodak Company 1992 + +%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the U.S. and other countries. + +%% Portions licensed from Taligent, Inc. + +%% The following software may be included in this product:IAIK PKCS Wrapper; Use of any of this software is governed by the terms of the license below: + +Copyright (c) 2002 Graz University of Technology. 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. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: + + "This product includes software developed by IAIK of Graz University of Technology." + + Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. + +4. The names "Graz University of Technology" and "IAIK of Graz University of Technology" must not be used to endorse or promote products derived from this software without prior written permission. + +5. Products derived from this software may not be called "IAIK PKCS Wrapper", nor may "IAIK" appear in their name, without prior written permission of Graz University of Technology. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 LICENSOR 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 following software may be included in this product: Document Object Model (DOM) v. Level 3; Use of any of this software is governed by the terms of the license below: +W3Cýý SOFTWARE NOTICE AND LICENSE + +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other related items) is being +provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you +(the licensee) agree that you have read, understood, and will comply with the following terms and conditions. + +Permission to copy, modify, and distribute this software and its documentation, with or without modification, for +any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies +of the software and documentation or portions thereof, including modifications: + 1.The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. + 2.Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the + W3C Software Short Notice should be included (hypertext is preferred, text is permitted) within the body + of any redistributed or derivative code. + 3.Notice of any changes or modifications to the files, including the date changes were made. (We + recommend you provide URIs to the location from which the code is derived.) +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKENO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, +WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THEUSE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the +software without specific, written prior permission. Title to copyright in this software and any associated +documentation will at all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 2002. This version removes the +copyright ownership notice such that this license can be used with materials other than those owned by the +W3C, reflects that ERCIM is now a host of the W3C, includes references to this specific dated version of the +license, and removes the ambiguous grant of "use". Otherwise, this version is the same as the previous +version and is written so as to preserve the Free Software Foundation's assessment of GPL compatibility and +OSI's certification under the Open Source Definition. Please see our Copyright FAQ for common questions +about using materials from our site, including specific terms and conditions for packages like libwww, Amaya, +and Jigsaw. Other questions about this notice can be directed to +site-policy@w3.org. + +%% The following software may be included in this product: Xalan, Xerces; Use of any of this software is governed by the terms of the license below: /* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * + * 4. The names "Xerces" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR + * ITS 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. + * ==================================================================== * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 1999, International + * Business Machines, Inc., http://www.ibm.com. For more + * information on the Apache Software Foundation, please see + * + +%% The following software may be included in this product: W3C XML Conformance Test Suites v. 20020606; Use of any of this software is governed by the terms of the license below: +W3Cýý SOFTWARE NOTICE AND LICENSE +Copyright ýý 1994-2002 World Wide Web Consortium, (Massachusetts Institute ofTechnology, Institut National de Recherche en Informatique et en Automatique,Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ +This W3C work (including software, documents, or other related items) is beingprovided by the copyright holders under the following license. By obtaining,using and/or copying this work, you (the licensee) agree that you have read,understood, and will comply with the following terms and conditions: + +Permission to use, copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and without fee orroyalty is hereby granted, provided that you include the following on ALL copiesof the software and documentation or portions thereof, including modifications,that you make: + + 1. The full text of this NOTICE in a location viewable to users of theredistributed or derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or terms andconditions. If none exist, a short notice of the following form (hypertext ispreferred, text is permitted) should be used within the body of any +redistributed or derivative code: "Copyright ýý [$date-of-software] World WideWeb Consortium, (Massachusetts Institute of Technology, Institut National deRecherche en Informatique et en Automatique, Keio University). All RightsReserved. http://www.w3.org/Consortium/Legal/" + 3. Notice of any changes or modifications to the W3C files, including thedate changes were made. (We recommend you provide URIs to the location fromwhich the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKENO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITEDTO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THATTHE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTYPATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. +The name and trademarks of copyright holders may NOT be used in advertising orpublicity pertaining to the software without specific, written prior permission.Title to copyright in this software and any associated documentation will at alltimes remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on August 14 1998 soas to improve compatibility with GPL. This version ensures that W3C softwarelicensing terms are no more restrictive than GPL and consequently W3C softwaremay be distributed in GPL packages. See the older formulation for the policyprior to this date. Please see our Copyright FAQ for common questions aboutusing materials from our site, including specific terms and conditions forpackages like libwww, Amaya, and Jigsaw. Other questions about this notice canbe directed to site-policy@w3.org. + +%% The following software may be included in this product: W3C XML Schema Test Collection v. 1.16.2; Use of any of this software is governed by the terms of the license below: W3Cýýýý DOCUMENT NOTICE AND LICENSE +Copyright ýýýý 1994-2002 World Wide Web Consortium, (Massachusetts Institute ofTechnology, Institut National de Recherche en Informatique et en Automatique,Keio University). All Rights Reserved. +http://www.w3.org/Consortium/Legal/ + +Public documents on the W3C site are provided by the copyright holders under thefollowing license. The software or Document Type Definitions (DTDs) associatedwith W3C specifications are governed by the Software Notice. By using and/orcopying this document, or the W3C document from which this statement is linked,you (the licensee) agree that you have read, understood, and will comply withthe following terms and conditions: + +Permission to use, copy, and distribute the contents of this document, or theW3C document from which this statement is linked, in any medium for any purposeand without fee or royalty is hereby granted, provided that you include thefollowing on ALL copies of the document, or portions thereof, that you use: + 1. A link or URL to the original W3C document. + 2. The pre-existing copyright notice of the original author, or if it doesn'texist, a notice of the form: "Copyright ýýýý [$date-of-document] World Wide WebConsortium, (Massachusetts Institute of Technology, Institut National deRecherche en Informatique et en Automatique, Keio University). All RightsReserved. http://www.w3.org/Consortium/Legal/" (Hypertext is preferred, but atextual representation is permitted.) + 3. If it exists, the STATUS of the W3C document. + +When space permits, inclusion of the full text of this NOTICE should beprovided. We request that authorship attribution be provided in any software,documents, or other items or products that you create pursuant to the +implementation of the contents of this document, or any portion thereof. +No right to create modifications or derivatives of W3C documents is grantedpursuant to this license. However, if additional requirements (documented in theCopyright FAQ) are satisfied, the right to create modifications or derivativesis sometimes granted by the W3C to individuals complying with those requirements. +THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONSOR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THEIMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCEOR IMPLEMENTATION OF THE CONTENTS THEREOF. + +The name and trademarks of copyright holders may NOT be used in advertising orpublicity pertaining to this document or its contents without specific, writtenprior permission. Title to copyright in this document will at all times remainwith copyright holders. + +---------------------------------------------------------------------------- +This formulation of W3C's notice and license became active on April 05 1999 soas to account for the treatment of DTDs, schema's and bindings. See the olderformulation for the policy prior to this date. Please see our Copyright FAQ forcommon questions about using materials from our site, including specific termsand conditions for packages like libwww, Amaya, and Jigsaw. Other questionsabout this notice can be directed to site-policy@w3.org. +webmaster +(last updated by reagle on 1999/04/99.) + + + +%% The following software may be included in this product: Mesa 3-D graphics library v. 5; Use of any of this software is governed by the terms of the license below: core Mesa code include/GL/gl.h Brian Paul Mesa + +GLX driver include/GL/glx.h Brian Paul Mesa + +Ext registry include/GL/glext.h SGI SGI Free B + include/GL/glxext.h + +Mesa license: + +The Mesa distribution consists of several components. Different copyrights andlicenses apply to different components. For example, GLUT is copyrighted by MarkKilgard, some demo programs are copyrighted by SGI, some of the Mesa devicedrivers are copyrighted by their authors. See below for a list of Mesa'scomponents and the copyright/license for each. + +The core Mesa library is licensed according to the terms of the XFree86copyright (an MIT-style license). This allows integration with the XFree86/DRIproject. Unless otherwise stated, the Mesa source code and documentation islicensed as follows: + +Copyright (C) 1999-2003 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining acopy of this software and associated documentation files (the "Software"),to deal in the Software without restriction, including without limitationthe 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 includedin all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALLBRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER INAN 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. +SGI FREE SOFTWARE LICENSE B (Version 1.1 [02/22/2000]) +1. Definitions. +1.1 "Additional Notice Provisions" means such additional provisions as appear in the Notice in Original Code under the heading "Additional Notice Provisions."1.2 "Covered Code" means the Original Code or Modifications, or any combination thereof.1.3 "Hardware" means any physical device that accepts input, processes input, stores the results of processing, and/or provides output.1.4 "Larger Work" means a work that combines Covered Code or portions thereof with code not governed by the terms of this License.1.5 "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.1.6 "License" means this document. +1.7 "Licensed Patents" means patent claims Licensable by SGI that are infringed by the use or sale of Original Code or any Modifications provided by SGI, or any combination thereof.1.8 "Modifications" means any addition to or deletion from the substance or structure of the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to the contents of a file containing Original Code and/or addition to or deletion from the contents of a file containing previous Modifications.B. Any new file that contains any part of the Original Code or previous Modifications.1.9 "Notice" means any notice in Original Code or Covered Code, as required by and in compliance with this License.1.10 "Original Code" means source code of computer software code that is described in the source code Notice required by Exhibit A as Original Code, and updates and error corrections specifically thereto.1.11 "Recipient" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 8. For legal entities, "Recipient" includes any entity that controls, is controlled by, or is under common control with Recipient. For purposes of this definition, "control" of an entity means (a) the power, direct or indirect, to direct or manage such entity, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.1.12 "Recipient Patents" means patent claims Licensable by a Recipient that are infringed by the use or sale of Original Code or any Modifications provided by SGI, or any combination thereof. 1.13 "SGI" means Silicon Graphics, Inc. +1.14 "SGI Patents" means patent claims Licensable by SGI other than the Licensed Patents.2. License Grant and Restrictions. +2.1 SGI License Grant. Subject to the terms of this License and any third party intellectual property claims, for the duration of intellectual property protections inherent in the Original Code, SGI hereby grants Recipient a worldwide, royalty-free, non-exclusive license, to do the following: (i) under copyrights Licensable by SGI, to reproduce, distribute, create derivative works from, and, to the extent applicable, display and perform the Original Code and/or any Modifications provided by SGI alone and/or as part of a Larger Work; and (ii) under any Licensable Patents, to make, have made, use, sell, offer for sale, import and/or otherwise transfer the Original Code and/or any Modifications provided by SGI. Recipient accepts the terms and conditions of this License by undertaking any of the aforementioned actions. The patent license shall apply to the Covered Code if, at the time any related Modification is added, such addition of the Modification causes such combination to be covered by the Licensed Patents. The patent license in Section 2.1(ii) shall not apply to any other combinations that include the Modification. No patent license is provided under SGI Patents for infringements of SGI Patents by Modifications not provided by SGI or combinations of Original Code and Modifications not provided by SGI. 2.2 Recipient License Grant. Subject to the terms of this License and any third party intellectual property claims, Recipient hereby grants SGI and any other Recipients a worldwide, royalty-free, non-exclusive license, under any Recipient Patents, to make, have made, use, sell, offer for sale, import and/or otherwise transfer the Original Code and/or any Modifications provided by SGI.2.3 No License For Hardware Implementations. The licenses granted in Section 2.1 and 2.2 are not applicable to implementation in Hardware of the algorithms embodied in the Original Code or any Modifications provided by SGI .3. Redistributions. +3.1 Retention of Notice/Copy of License. The Notice set forth in Exhibit A, below, must be conspicuously retained or included in any and all redistributions of Covered Code. For distributions of the Covered Code in source code form, the Notice must appear in every file that can include a text comments field; in executable form, the Notice and a copy of this License must appear in related documentation or collateral where the Recipient's rights relating to Covered Code are described. Any Additional Notice Provisions which actually appears in the Original Code must also be retained or included in any and all redistributions of Covered Code.3.2 Alternative License. Provided that Recipient is in compliance with the terms of this License, Recipient may, so long as without derogation of any of SGI's rights in and to the Original Code, distribute the source code and/or executable version(s) of Covered Code under (1) this License; (2) a license identical to this License but for only such changes as are necessary in order to clarify Recipient's role as licensor of Modifications; and/or (3) a license of Recipient's choosing, containing terms different from this License, provided that the license terms include this Section 3 and Sections 4, 6, 7, 10, 12, and 13, which terms may not be modified or superseded by any other terms of such license. If Recipient elects to use any license other than this License, Recipient must make it absolutely clear that any of its terms which differ from this License are offered by Recipient alone, and not by SGI. It is emphasized that this License is a limited license, and, regardless of the license form employed by Recipient in accordance with this Section 3.2, Recipient may relicense only such rights, in Original Code and Modifications by SGI, as it has actually been granted by SGI in this License.3.3 Indemnity. Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as a result of any such alternative license terms Recipient offers.4. Termination. This License and the rights granted hereunder will terminate automatically if Recipient breaches any term herein and fails to cure such breach within 30 days thereof. Any sublicense to the Covered Code that is properly granted shall survive any termination of this License, absent termination by the terms of such sublicense. Provisions that, by their nature, must remain in effect beyond the termination of this License, shall survive.5. No Trademark Or Other Rights. This License does not grant any rights to: (i) any software apart from the Covered Code, nor shall any other rights or licenses not expressly granted hereunder arise by implication, estoppel or otherwise with respect to the Covered Code; (ii) any trade name, trademark or service mark whatsoever, including without limitation any related right for purposes of endorsement or promotion of products derived from the Covered Code, without prior written permission of SGI; or (iii) any title to or ownership of the Original Code, which shall at all times remains with SGI. All rights in the Original Code not expressly granted under this License are reserved. 6. Compliance with Laws; Non-Infringement. There are various worldwide laws, regulations, and executive orders applicable to dispositions of Covered Code, including without limitation export, re-export, and import control laws, regulations, and executive orders, of the U.S. government and other countries, and Recipient is reminded it is obliged to obey such laws, regulations, and executive orders. Recipient may not distribute Covered Code that (i) in any way infringes (directly or contributorily) any intellectual property rights of any kind of any other person or entity or (ii) breaches any representation or warranty, express, implied or statutory, to which, under any applicable law, it might be deemed to have been subject.7. Claims of Infringement. If Recipient learns of any third party claim that any disposition of Covered Code and/or functionality wholly or partially infringes the third party's intellectual property rights, Recipient will promptly notify SGI of such claim.8. Versions of the License. SGI may publish revised and/or new versions of the License from time to time, each with a distinguishing version number. Once Covered Code has been published under a particular version of the License, Recipient may, for the duration of the license, continue to use it under the terms of that version, or choose to use such Covered Code under the terms of any subsequent version published by SGI. Subject to the provisions of Sections 3 and 4 of this License, only SGI may modify the terms applicable to Covered Code created under this License.9. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED "AS IS." ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. SGI ASSUMES NO RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY IS AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT SUBJECT TO THIS DISCLAIMER.10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES NOR LEGAL THEORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.11. Indemnity. Recipient shall be solely responsible for damages arising, directly or indirectly, out of its utilization of rights under this License. Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from and against any loss, liability, damages, costs or expenses (including the payment of reasonable attorneys fees) arising out of Recipient's use, modification, reproduction and distribution of the Covered Code or out of any representation or warranty made by Recipient.12. U.S. Government End Users. The Covered Code is a "commercial item" consisting of "commercial computer software" as such terms are defined in title 48 of the Code of Federal Regulations and all U.S. Government End Users acquire only the rights set forth in this License and are subject to the terms of this License.13. Miscellaneous. This License represents the complete agreement concerning the its subject matter. If any provision of this License is held to be unenforceable, such provision shall be reformed so as to achieve as nearly as possible the same legal and economic effect as the original provision and the remainder of this License will remain in effect. This License shall be governed by and construed in accordance with the laws of the United States and the State of California as applied to agreements entered into and to be performed entirely within California between California residents. Any litigation relating to this License shall be subject to the exclusive jurisdiction of the Federal Courts of the Northern District of California (or, absent subject matter jurisdiction in such courts, the courts of the State of California), with venue lying exclusively in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation that provides that the language of a contract shall be construed against the drafter shall not apply to this License. +Exhibit A +License Applicability. Except to the extent portions of this file are made subject to an alternative license as permitted in the SGI Free Software License B, Version 1.1 (the "License"), the contents of this file are subject only to the provisions of the License. You may not use this file except in compliance with the License. You may obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: http://oss.sgi.com/projects/FreeB +Note that, as provided in the License, the Software is distributed on an "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.Original Code. The Original Code is: [name of software, version number, and release date], developed by Silicon Graphics, Inc. The Original Code is Copyright (c) [dates of first publication, as appearing in the Notice in the Original Code] Silicon Graphics, Inc. Copyright in any portions created by third parties is as indicated elsewhere herein. All Rights Reserved.Additional Notice Provisions: [such additional provisions, if any, as appear in the Notice in the Original Code under the heading "Additional Notice Provisions"] +%% The following software may be included in this product: Byte Code Engineering Library (BCEL) v. 5; Use of any of this software is governed by the terms of the license below: + Apache Software License + + /* +==================================================================== * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. Allrights + * reserved. + * + * Redistribution and use in source and binary forms, withor without + * modification, are permitted provided that the followingconditions + * are met: + * + * 1. Redistributions of source code must retain the abovecopyright + * notice, this list of conditions and the followingdisclaimer. + * + * 2. Redistributions in binary form must reproduce theabove copyright + * notice, this list of conditions and the followingdisclaimer in + * the documentation and/or other materials providedwith the + * distribution. + * + * 3. The end-user documentation included with theredistribution, + * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation +(http://www.apache.org/)." + * Alternately, this acknowledgment may appear in thesoftware itself, + * if and wherever such third-party acknowledgmentsnormally appear. + * + * 4. The names "Apache" and "Apache Software Foundation"and + * "Apache BCEL" must not be used to endorse or promoteproducts + * derived from this software without prior writtenpermission. For + * written permission, please contact apache@apache.org. * + * 5. Products derived from this software may not be called"Apache", + * "Apache BCEL", nor may "Apache" appear in their name,without + * prior written permission of the Apache SoftwareFoundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED ORIMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWAREFOUNDATION OR + * ITS 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) HOWEVERCAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING INANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF + * SUCH DAMAGE. + * +==================================================================== * + * This software consists of voluntary contributions madeby many + * individuals on behalf of the Apache Software +Foundation. For more + + + * information on the Apache Software Foundation, pleasesee + * . + */ + + + +%% The following software may be included in this product: Regexp, Regular Expression Package v. 1.2; Use of any of this software is governed by the terms of the license below: The Apache Software License, Version 1.1 +Copyright (c) 2001 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, +if any, must include the following acknowledgment: +"This product includes software developed by the +Apache Software Foundation (http://www.apache.org/)." +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation" and +"Apache Turbine" must not be used to endorse or promote products +derived from this software without prior written permission. For +written permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache", +"Apache Turbine", nor may "Apache" appear in their name, without +prior written permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR +ITS 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. + +==================================================================== +This software consists of voluntary contributions made by many +individuals on behalf of the Apache Software Foundation. For more +information on the Apache Software Foundation, please see + +http://www.apache.org. + +%% The following software may be included in this product: CUP Parser Generator for Java v. 0.10k; Use of any of this software is governed by the terms of the license below: CUP Parser Generator Copyright Notice, License, and Disclaimer + +Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided thatthe above copyright notice appear in all copies and that both the copyrightnotice and this permission notice and warranty disclaimer appear in +supporting documentation, and that the names of the authors or their employersnot be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to thissoftware, including all implied warranties of merchantability and +fitness. In no event shall the authors or their employers be liable for anyspecial, indirect or consequential damages or any damages whatsoever +resulting from loss of use, data or profits, whether in an action of contract,negligence or other tortious action, arising out of or in connection withthe use or performance of this software. + +%% The following software may be included in this product: JLex: A Lexical Analyzer Generator for Java v. 1.2.5; Use of any of this software is governed by the terms of the license below: JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER. + +Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose +and without fee is hereby granted, provided that the above copyright noticeappear in all copies +and that both the copyright notice and this permission notice and warrantydisclaimer appear in +supporting documentation, and that the name of the authors or their employersnot be used in +advertising or publicity pertaining to distribution of the software withoutspecific, written prior +permission. + +The authors and their employers disclaim all warranties with regard to thissoftware, including all +implied warranties of merchantability and fitness. In no event shall the authorsor their employers +be liable for any special, indirect or consequential damages or any damageswhatsoever resulting +from loss of use, data or profits, whether in an action of contract, negligenceor other tortious +action, arising out of or in connection with the use or performance of thissoftware. + +Java is a trademark of Sun Microsystems, Inc. References to the Java programminglanguage in +relation to JLex are not meant to imply that Sun endorses this +product. + +%% The following software may be included in this product: SAX v. 2.0.1; Use of any of this software is governed by the terms of the license below: Copyright Status + + SAX is free! + + In fact, it's not possible to own a license to SAX, since it's been placed in the public + domain. + + No Warranty + + Because SAX is released to the public domain, there is no warranty for the design or for + the software implementation, to the extent permitted by applicable law. Except when + otherwise stated in writing the copyright holders and/or other parties provide SAX "as is" + without warranty of any kind, either expressed or implied, including, but not limited to, the + implied warranties of merchantability and fitness for a particular purpose. The entire risk as + to the quality and performance of SAX is with you. Should SAX prove defective, you + assume the cost of all necessary servicing, repair or correction. + + In no event unless required by applicable law or agreed to in writing will any copyright + holder, or any other party who may modify and/or redistribute SAX, be liable to you for + damages, including any general, special, incidental or consequential damages arising out of + the use or inability to use SAX (including but not limited to loss of data or data being + rendered inaccurate or losses sustained by you or third parties or a failure of the SAX to + operate with any other programs), even if such holder or other party has been advised of + the possibility of such damages. + + Copyright Disclaimers + + This page includes statements to that effect by David Megginson, who would have been + able to claim copyright for the original work. + SAX 1.0 + + Version 1.0 of the Simple API for XML (SAX), created collectively by the membership of + the XML-DEV mailing list, is hereby released into the public domain. + + No one owns SAX: you may use it freely in both commercial and non-commercial + applications, bundle it with your software distribution, include it on a CD-ROM, list the + source code in a book, mirror the documentation at your own web site, or use it in any + other way you see fit. + + David Megginson, sax@megginson.com + 1998-05-11 + + SAX 2.0 + + I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and release + all of the SAX 2.0 source code, compiled code, and documentation contained in this + distribution into the Public Domain. SAX comes with NO WARRANTY or guarantee of + fitness for any purpose. + + David Megginson, david@megginson.com + 2000-05-05 + +%% The following software may be included in this product: Cryptix; Use of any of this software is governed by the terms of the license below: +Cryptix General License + +Copyright © 1995-2003 The Cryptix Foundation Limited. All rights reserved. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions aremet: + + 1.Redistributions of source code must retain the 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 CRYPTIX FOUNDATION LIMITED AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) 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 OFTHE POSSIBILITY OF SUCH DAMAGE. + +%% The following software may be included in this product: W3C XML Schema Test Collection; Use of any of this software is governed by the terms of the license below: +W3C® DOCUMENT NOTICE AND LICENSE +Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute ofTechnology, Institut National de Recherche en Informatique et en Automatique,Keio University). All Rights Reserved. +http://www.w3.org/Consortium/Legal/ + +Public documents on the W3C site are provided by the copyright holders under thefollowing license. The software or Document Type Definitions (DTDs) associatedwith W3C specifications are governed by the Software Notice. By using and/orcopying this document, or the W3C document from which this statement is linked,you (the licensee) agree that you have read, understood, and will comply withthe following terms and conditions: + +Permission to use, copy, and distribute the contents of this document, or theW3C document from which this statement is linked, in any medium for any purposeand without fee or royalty is hereby granted, provided that you include thefollowing on ALL copies of the document, or portions thereof, that you use: + 1. A link or URL to the original W3C document. + 2. The pre-existing copyright notice of the original author, or if it doesn'texist, a notice of the form: "Copyright © [$date-of-document] World Wide WebConsortium, (Massachusetts Institute of Technology, Institut National deRecherche en Informatique et en Automatique, Keio University). All RightsReserved. http://www.w3.org/Consortium/Legal/" (Hypertext is preferred, but atextual representation is permitted.) + 3. If it exists, the STATUS of the W3C document. + +When space permits, inclusion of the full text of this NOTICE should beprovided. We request that authorship attribution be provided in any software,documents, or other items or products that you create pursuant to the +implementation of the contents of this document, or any portion thereof. +No right to create modifications or derivatives of W3C documents is grantedpursuant to this license. However, if additional requirements (documented in theCopyright FAQ) are satisfied, the right to create modifications or derivativesis sometimes granted by the W3C to individuals complying with those requirements. +THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONSOR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THEIMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCEOR IMPLEMENTATION OF THE CONTENTS THEREOF. + +The name and trademarks of copyright holders may NOT be used in advertising orpublicity pertaining to this document or its contents without specific, writtenprior permission. Title to copyright in this document will at all times remainwith copyright holders. + +---------------------------------------------------------------------------- +This formulation of W3C's notice and license became active on April 05 1999 soas to account for the treatment of DTDs, schema's and bindings. See the olderformulation for the policy prior to this date. Please see our Copyright FAQ forcommon questions about using materials from our site, including specific termsand conditions for packages like libwww, Amaya, and Jigsaw. Other questionsabout this notice can be directed to site-policy@w3.org. +webmaster +(last updated by reagle on 1999/04/99.) + +%% The following software may be included in this product: Stax API; Use of any of this software is governed by the terms of the license below: +Streaming API for XML (JSR-173) Specification +Reference Implementation +License Agreement + +READ THE TERMS OF THIS (THE "AGREEMENT") CAREFULLY BEFORE VIEWING OR USING THESOFTWARE LICENS +ED HEREUNDER. BY VIEWING OR USING THE SOFTWARE, YOU AGREE TO THE TERMS OF THISAGREEMENT. IF +YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESETERMS BY SELE +CTING THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT. IF YOU DO NOT AGREE TOALL THESE TERMS +, PROMPTLY RETURN THE UNUSED SOFTWARE TO ORIGINAL CONTRIBUTOR, DEFINED HEREIN. +1.0 DEFINITIONS. + +1.1. "BEA" means BEA Systems, Inc., the licensor of the Original Code. +1.2. "Contributor" means BEA and each entity that creates or contributes to thecreation of Mo +difications. + +1.3. "Covered Code" means the Original Code or Modifications or the combinationof the Origina +l Code and Modifications, in each case including portions thereof and +corresponding documentat +ion released with the source code. + +1.4. "Executable" means Covered Code in any form other than Source Code. +1.5. "FCS" means first commercial shipment of a product. + +1.6. "Modifications" means any addition to or deletion from the substance orstructure of eith +er the Original Code or any previous Modifications. When Covered Code isreleased as a series +of files, a Modification is: + +(a) Any addition to or deletion from the contents of a file containing OriginalCode or previ +ous Modifications. + +(b) Any new file that contains any part of the Original Code or previousModifications. + +1.7. "Original Code" means Source Code of computer software code ReferenceImplementation. + +1.8. "Patent Claims" means any patent claim(s), now owned or hereafter acquired,including wit +hout limitation, method, process, and apparatus claims, in any patent for whichthe grantor ha +s the right to grant a license. + +1.9. "Reference Implementation" means the prototype or "proof of concept"implementation of +the Specification developed and made available for license by or on behalf of BEA. +1.10. "Source Code" means the preferred form of the Covered Code for makingmodifications to i +t, including all modules it contains, plus any associated documentation,interface definition +files, scripts used to control compilation and installation of an Executable, orsource code d +ifferential comparisons against either the Original Code or another well known,available Cove +red Code of the Contributor's choice. + +1.11. "Specification" means the written specification for the Streaming API forXML , Java te +chnology developed pursuant to the Java Community Process. +1.12. "Technology Compatibility Kit" or "TCK" means the documentation, testingtools and test +suites associated with the Specification as may be revised by BEA from time totime, that is p +rovided so that an implementer of the Specification may determine if itsimplementation is co +mpliant with the Specification. + +1.13. "You" (or "Your") means an individual or a legal entity exercising rightsunder, and com +plying with all of the terms of, this Agreement or a future version of thisAgreement issued u +nder Section 6.1. For legal entities, "You" includes any entity which controls,is controlled +by, or is under common control with You. For purposes of this definition,"control" means (a) +the power, direct or indirect, to cause the direction or management of suchentity, whether by + contract or otherwise, or (b) ownership of more than fifty percent (50%) of theoutstanding s +hares or beneficial ownership of such entity. + +2.0 SOURCE CODE LICENSE. + +2.1. Copyright Grant. Subject to the terms of this Agreement, each Contributorhereby grants +You a non-exclusive, worldwide, royalty-free copyright license to reproduce,prepare derivativ +e works of, publicly display, publicly perform, distribute and sublicense theCovered Code of +such Contributor, if any, and such derivative works, in Source Code andExecutable form. + +2.2. Patent Grant. Subject to the terms of this Agreement, each Contributorhereby grants Yo +u a non-exclusive, worldwide, royalty-free patent license under the PatentClaims to make, use +, sell, offer to sell, import and otherwise transfer the Covered Code preparedand provided by + such Contributor, if any, in Source Code and Executable form. This patentlicense shall apply + to the Covered Code if, at the time a Modification is added by the Contributor,such addition + of the Modification causes such combination to be covered by the Patent Claims.The patent li +cense shall not apply to any other combinations which include the Modification. +2.3. Conditions to Grants. You understand that although each Contributorgrants the licenses + to the Covered Code prepared by it, no assurances are provided by anyContributor that the Co +vered Code does not infringe the patent or other intellectual property rights ofany other ent +ity. Each Contributor disclaims any liability to You for claims brought by anyother entity ba +sed on infringement of intellectual property rights or otherwise. As a conditionto exercising + the rights and licenses granted hereunder, You hereby assume sole +responsibility to secure an +y other intellectual property rights needed, if any. For example, if a thirdparty patent lice +nse is required to allow You to distribute Covered Code, it is Your +responsibility to acquire +that license before distributing such code. + +2.4. Contributors' Representation. Each Contributor represents that to itsknowledge it has +sufficient copyright rights in the Covered Code it provides , if any, to grantthe copyright l +icense set forth in this Agreement. + +3.0 DISTRIBUION RESTRICTIONS. + +3.1. Application of Agreement. + +The Modifications which You create or to which You contribute are governed bythe terms of thi +s Agreement, including without limitation Section 2.0. The Source Code versionof Covered Code + may be distributed only under the terms of this Agreement or a future versionof this Agreeme +nt released under Section 6.1, and You must include a copy of this Agreementwith every copy o +f the Source Code You distribute. You may not offer or impose any terms on anySource Code ver +sion that alters or restricts the applicable version of this Agreement or therecipients' righ +ts hereunder. However, You may include an additional document offering theadditional rights d +escribed in Section 3.3. + +3.2. Description of Modifications. + +You must cause all Covered Code to which You contribute to contain a filedocumenting the chan +ges You made to create that Covered Code and the date of any change. You mustinclude a promin +ent statement that the Modification is derived, directly or indirectly, fromOriginal Code pro +vided by BEA and including the name of BEA in (a) the Source Code, and (b) inany notice in an + Executable version or related documentation in which You describe the origin orownership of +the Covered Code. + +%% The following software may be included in this product: X Window System; Use of any of this software is governed by the terms of the license below: +Copyright The Open Group + +Permission to use, copy, modify, distribute, and sell this software and itsdocumentation for any purpose is hereby granted without fee, provided that theabove copyright notice appear in all copies and that both that copyright noticeand this permission notice appear in supporting documentation. + +The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUPBE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OFCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THESOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be usedin advertising or otherwise to promote the sale, use or other dealings in thisSoftware without prior written authorization from The Open Group. + +Portions also covered by other licenses as noted in the above URL. + +%% The following software may be included in this product: dom4j v. 1.6; Use of any of this software is governed by the terms of the license below: +Redistribution and use of this software and associated documentation +("Software"), with or without modification, are permitted provided that thefollowing conditions are met: + + 1. Redistributions of source code must retain copyright statements andnotices. Redistributions must also contain a copy of this document. + 2. Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentation and/orother materials provided with the distribution. + 3. The name "DOM4J" must not be used to endorse or promote products derivedfrom this Software without prior written permission of MetaStuff, Ltd. Forwritten permission, please contact dom4j-info@metastuff.com. + 4. Products derived from this Software may not be called "DOM4J" nor may"DOM4J" appear in their names without prior written permission of MetaStuff,Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. + 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org +THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND ANYEXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FORANY 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 ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. + +%% The following software may be included in this product: Retroweaver; Use of any of this software is governed by the terms of the license below: +Copyright (c) February 2004, Toby Reyelts +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +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. +Neither the name of Toby Reyelts nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 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, STRICTLIABILITY, +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 following software may be included in this product: stripper; Use of any of this software is governed by the terms of the license below: +Stripper : debug information stripper + Copyright (c) 2003 Kohsuke Kawaguchi + 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 the name of the 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 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 following software may be included in this product: libpng official PNG reference library; Use of any of this software is governed by the terms of the license below: +This copy of the libpng notices is provided for your convenience. In case ofany discrepancy between this copy and the notices in the file png.h that isincluded in the libpng distribution, the latter shall prevail. + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + +If you modify libpng you may insert additional notices immediately followingthis sentence. + +libpng version 1.2.6, December 3, 2004, is +Copyright (c) 2004 Glenn Randers-Pehrson, and is +distributed according to the same disclaimer and license as libpng-1.2.5with the following individual added to the list of Contributing Authors + Cosmin Truta + +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, areCopyright (c) 2000-2002 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.0.6with the following individuals added to the list of Contributing Authors + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes or needs. This library is provided with all faults, and the entire risk of satisfactory quality, performance, accuracy, and effort is with the user. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, areCopyright (c) 1998, 1999 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-0.96,with the following individuals added to the list of Contributing Authors: + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996, 1997 Andreas Dilger +Distributed according to the same disclaimer and license as libpng-0.88,with the following individuals added to the list of Contributing Authors: + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors"is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing Authorsand Group 42, Inc. disclaim all warranties, expressed or implied, +including, without limitation, the warranties of merchantability and offitness for any purpose. The Contributing Authors and Group 42, Inc. +assume no liability for direct, indirect, incidental, special, exemplary,or consequential damages, which may result from the use of the PNG +Reference Library, even if advised of the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute thissource code, or portions hereof, for any purpose, without fee, subjectto the following restrictions: + +1. The origin of this source code must not be misrepresented. + +2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + +3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, withoutfee, and encourage the use of this source code as a component to +supporting the PNG file format in commercial products. If you use thissource code in a product, acknowledgment is not required but would be +appreciated. + + +A "png_get_copyright" function is available, for convenient use in "about"boxes and the like: + + printf("%s",png_get_copyright(NULL)); + +Also, the PNG logo (in PNG format, of course) is supplied in the +files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is acertification mark of the Open Source Initiative. + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +December 3, 2004 + +%% The following software may be included in this product: Libungif - An uncompressed GIF library; Use of any of this software is governed by the terms of the license below: +The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond + +Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies 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 inall copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, 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 INTHE SOFTWARE. + + +%% The following software may be included in this product: Ant; Use of any of this software is governed by the terms of the license below: +License +The Apache Software License Version 2.0 + +The Apache Software License Version 2.0 applies to all releases of Ant startingwith ant 1.6.1 + +/* + * Apache License + * Version 2.0, January 2004 + * http://www.apache.org/licenses/ + * + * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + * + * 1. Definitions. + * + * "License" shall mean the terms and conditions for use, reproduction, * and distribution as defined by Sections 1 through 9 of this document. * + * "Licensor" shall mean the copyright owner or entity authorized by * the copyright owner that is granting the License. + * + * "Legal Entity" shall mean the union of the acting entity and all * other entities that control, are controlled by, or are under common * control with that entity. For the purposes of this definition, * "control" means (i) the power, direct or indirect, to cause the * direction or management of such entity, whether by contract or * otherwise, or (ii) ownership of fifty percent (50%) or more of the * outstanding shares, or (iii) beneficial ownership of such entity. * + * "You" (or "Your") shall mean an individual or Legal Entity + * exercising permissions granted by this License. + * + * "Source" form shall mean the preferred form for making modifications, * including but not limited to software source code, documentation * source, and configuration files. + * + * "Object" form shall mean any form resulting from mechanical + * transformation or translation of a Source form, including but + * not limited to compiled object code, generated documentation, + * and conversions to other media types. + * + * "Work" shall mean the work of authorship, whether in Source or * Object form, made available under the License, as indicated by a * copyright notice that is included in or attached to the work + * (an example is provided in the Appendix below). + * + * "Derivative Works" shall mean any work, whether in Source or Object * form, that is based on (or derived from) the Work and for which the * editorial revisions, annotations, elaborations, or other modifications * represent, as a whole, an original work of authorship. For the purposes * of this License, Derivative Works shall not include works that remain * separable from, or merely link (or bind by name) to the interfaces of, * the Work and Derivative Works thereof. + * + * "Contribution" shall mean any work of authorship, including + * the original version of the Work and any modifications or additions * to that Work or Derivative Works thereof, that is intentionally * submitted to Licensor for inclusion in the Work by the copyright owner * or by an individual or Legal Entity authorized to submit on behalf of * the copyright owner. For the purposes of this definition, "submitted" * means any form of electronic, verbal, or written communication sent * to the Licensor or its representatives, including but not limited to * communication on electronic mailing lists, source code control systems, * and issue tracking systems that are managed by, or on behalf of, the * Licensor for the purpose of discussing and improving the Work, but * excluding communication that is conspicuously marked or otherwise * designated in writing by the copyright owner as "Not a Contribution." * + * "Contributor" shall mean Licensor and any individual or Legal Entity * on behalf of whom a Contribution has been received by Licensor and * subsequently incorporated within the Work. + * + * 2. Grant of Copyright License. Subject to the terms and conditions of * this License, each Contributor hereby grants to You a perpetual, * worldwide, non-exclusive, no-charge, royalty-free, irrevocable * copyright license to reproduce, prepare Derivative Works of, + * publicly display, publicly perform, sublicense, and distribute the * Work and such Derivative Works in Source or Object form. + * + * 3. Grant of Patent License. Subject to the terms and conditions of * this License, each Contributor hereby grants to You a perpetual, * worldwide, non-exclusive, no-charge, royalty-free, irrevocable * (except as stated in this section) patent license to make, have made, * use, offer to sell, sell, import, and otherwise transfer the Work, * where such license applies only to those patent claims licensable * by such Contributor that are necessarily infringed by their + * Contribution(s) alone or by combination of their Contribution(s) * with the Work to which such Contribution(s) was submitted. If You * institute patent litigation against any entity (including a + * cross-claim or counterclaim in a lawsuit) alleging that the Work * or a Contribution incorporated within the Work constitutes direct * or contributory patent infringement, then any patent licenses + * granted to You under this License for that Work shall terminate * as of the date such litigation is filed. + * + * 4. Redistribution. You may reproduce and distribute copies of the * Work or Derivative Works thereof in any medium, with or without * modifications, and in Source or Object form, provided that You * meet the following conditions: + * + * (a) You must give any other recipients of the Work or + * Derivative Works a copy of this License; and + * + * (b) You must cause any modified files to carry prominent notices * stating that You changed the files; and + * + * (c) You must retain, in the Source form of any Derivative Works * that You distribute, all copyright, patent, trademark, and * attribution notices from the Source form of the Work, + * excluding those notices that do not pertain to any part of * the Derivative Works; and + * + * (d) If the Work includes a "NOTICE" text file as part of its + * distribution, then any Derivative Works that You distribute must * include a readable copy of the attribution notices contained * within such NOTICE file, excluding those notices that do not * pertain to any part of the Derivative Works, in at least one * of the following places: within a NOTICE text file distributed * as part of the Derivative Works; within the Source form or * documentation, if provided along with the Derivative Works; or, * within a display generated by the Derivative Works, if and * wherever such third-party notices normally appear. The contents * of the NOTICE file are for informational purposes only and * do not modify the License. You may add Your own attribution * notices within Derivative Works that You distribute, alongside * or as an addendum to the NOTICE text from the Work, provided * that such additional attribution notices cannot be construed * as modifying the License. + * + * You may add Your own copyright statement to Your modifications and * may provide additional or different license terms and conditions * for use, reproduction, or distribution of Your modifications, or * for any such Derivative Works as a whole, provided Your use, + * reproduction, and distribution of the Work otherwise complies with * the conditions stated in this License. + * + * 5. Submission of Contributions. Unless You explicitly state otherwise, * any Contribution intentionally submitted for inclusion in the Work * by You to the Licensor shall be under the terms and conditions of * this License, without any additional terms or conditions. + * Notwithstanding the above, nothing herein shall supersede or modify * the terms of any separate license agreement you may have executed * with Licensor regarding such Contributions. + * + * 6. Trademarks. This License does not grant permission to use the trade * names, trademarks, service marks, or product names of the Licensor, * except as required for reasonable and customary use in describing the * origin of the Work and reproducing the content of the NOTICE file. * + * 7. Disclaimer of Warranty. Unless required by applicable law or + * agreed to in writing, Licensor provides the Work (and each + * Contributor provides its Contributions) on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied, including, without limitation, any warranties or conditions * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + * PARTICULAR PURPOSE. You are solely responsible for determining the * appropriateness of using or redistributing the Work and assume any * risks associated with Your exercise of permissions under this License. * + * 8. Limitation of Liability. In no event and under no legal theory, * whether in tort (including negligence), contract, or otherwise, * unless required by applicable law (such as deliberate and grossly * negligent acts) or agreed to in writing, shall any Contributor be * liable to You for damages, including any direct, indirect, special, * incidental, or consequential damages of any character arising as a * result of this License or out of the use or inability to use the * Work (including but not limited to damages for loss of goodwill, * work stoppage, computer failure or malfunction, or any and all * other commercial damages or losses), even if such Contributor + * has been advised of the possibility of such damages. + * + * 9. Accepting Warranty or Additional Liability. While redistributing * the Work or Derivative Works thereof, You may choose to offer, * and charge a fee for, acceptance of support, warranty, indemnity, * or other liability obligations and/or rights consistent with this * License. However, in accepting such obligations, You may act only * on Your own behalf and on Your sole responsibility, not on behalf * of any other Contributor, and only if You agree to indemnify, + * defend, and hold each Contributor harmless for any liability + * incurred by, or claims asserted against, such Contributor by reason * of your accepting any such warranty or additional liability. + * + * END OF TERMS AND CONDITIONS + * + * APPENDIX: How to apply the Apache License to your work. + * + * To apply the Apache License to your work, attach the following * boilerplate notice, with the fields enclosed by brackets "[]" + * replaced with your own identifying information. (Don't include * the brackets!) The text should be enclosed in the appropriate * comment syntax for the file format. We also recommend that a + * file or class name and description of purpose be included on the * same "printed page" as the copyright notice for easier + * identification within third-party archives. + * + * Copyright [yyyy] Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + */ + + +You can download the original license file here. + +The License is accompanied by a NOTICE + + ========================================================================= == NOTICE file corresponding to the section 4 d of == == the Apache License, Version 2.0, == == in this case for the Apache Ant distribution. == ========================================================================= + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + This product includes also software developed by : + - the W3C consortium (http://www.w3c.org) , + - the SAX project (http://www.saxproject.org) + + Please read the different LICENSE files present in the root directory of this distribution. + + The names "Ant" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact + apache@apache.org. + +The Apache Software License, Version 1.1 + +The Apache Software License, Version 1.1, applies to all versions of up to ant1.6.0 included. + +/* + * ============================================================================ * The Apache Software License, Version 1.1 + * ============================================================================ * + * Copyright (C) 2000-2003 The Apache Software Foundation. All + * rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- * tion, 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. The end-user documentation included with the redistribution, if any, must * include the following acknowledgment: "This product includes software * developed by the Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Ant" and "Apache Software Foundation" must not be used to * endorse or promote products derived from this software without prior * written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", nor may * "Apache" appear in their name, without prior written permission of the * Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- * DING, 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. + * + * This software consists of voluntary contributions made by many individuals * on behalf of the Apache Software Foundation. For more information on the * Apache Software Foundation, please see . + * + */ + + +%% The following software may be included in this product: XML Resolver library; Use of any of this software is governed by the terms of the license below: + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + +%% The following software may be included in this product: ICU4J; Use of any of this software is governed by the terms of the license below: +ICU License - ICU 1.8.1 and later COPYRIGHT AND PERMISSION NOTICE Cop +yright (c) +1995-2003 International Business Machines Corporation and others All rightsreserved. Permission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the "Software"), todeal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,provided that the above copyright notice(s) and this permission notice appear inall copies of the Software and that both the above copyright notice(s) and thispermission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOTLIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSEAND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHTHOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANYSPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTINGFROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCEOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE ORPERFORMANCE OF THIS SOFTWARE. Except as contained in this notice, the name of acopyright holder shall not be used in advertising or otherwise to promote thesale, use or other dealings in this Software without prior written authorizationof the copyright holder. + + +%% The following software may be included in this product: NekoHTML; Use of any of this software is governed by the terms of the license below: +The CyberNeko Software License, Version 1.0 + + +(C) Copyright 2002,2003, Andy Clark. 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. The end-user documentation included with the redistribution, + if any, must include the following acknowledgment: + "This product includes software developed by Andy Clark." + Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. + +4. The names "CyberNeko" and "NekoHTML" must not be used to endorse + or promote products derived from this software without prior + written permission. For written permission, please contact + andy@cyberneko.net. + +5. Products derived from this software may not be called "CyberNeko", + nor may "CyberNeko" appear in their name, without prior written + permission of the author. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHOR OR OTHER 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. + +==================================================================== +This license is based on the Apache Software License, version 1.1 + + +%% The following software may be included in this product: Jing; Use of any of this software is governed by the terms of the license below: +Jing Copying Conditions + +Copyright (c) 2001-2003 Thai Open Source Software Center Ltd +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice,this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentation and/orother materials provided with the distribution. + * Neither the name of the Thai Open Source Software Center Ltd nor the namesof its contributors may be used to endorse or promote products derived from thissoftware without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANYDIRECT, 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 ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +%% The following software may be included in this product: RelaxNGCC; Use of any of this software is governed by the terms of the license below: +Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi. +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. The end-user documentation included with the redistribution, if +any, must include the following acknowledgment: + + "This product includes software developed by Daisuke Okajima + and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)." + +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names of the copyright holders must not be used to endorse or +promote products derived from this software without prior written +permission. For written permission, please contact the copyright +holders. + +5. Products derived from this software may not be called "RELAXNGCC", +nor may "RELAXNGCC" appear in their name, without prior written +permission of the copyright holders. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR ITS 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 following software may be included in this product: RELAX NG Object Model/Parser; Use of any of this software is governed by the terms of the license below: +The MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy ofthis software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ofthe 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 allcopies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHERIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +%% The following software may be included in this product: XFree86-VidMode Extension; Use of any of this software is governed by the terms of the license below: +Version 1.1 of +XFree86ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý ProjectLicence. + + Copyright (C) 1994-2004 The +XFree86ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýProject, Inc. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicence, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions: + + 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 copyrightnotice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution, and in thesame place and form as other copyright, license and disclaimer information. 3. The end-user documentation included with the redistribution, if any,must include the following acknowledgment: "This product includes softwaredeveloped by The XFree86 Project, Inc (http://www.xfree86.org/) and itscontributors", in the same place and form as other third-party acknowledgments.Alternately, this acknowledgment may appear in the software itself, in the sameform and location as other such third-party acknowledgments. + 4. Except as contained in this notice, the name of The XFree86 Project,Inc shall not be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorization from TheXFree86 Project, Inc. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ANDFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE XFREE86PROJECT, INC OR ITS 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; ORBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISINGIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITYOF SUCH DAMAGE. + + +%% The following software may be included in this product: RelaxNGCC; Use of any of this software is governed by the terms of the license below: +This is version 2003-May-08 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2003 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined asthe following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, Jean-loup Gailly, Hunter Goatley, Ian Gorman, Chris Herborth, Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, Kai Uwe Rommel, Steve Salisbury, Dave Smith, Christian Spieler, Antoine Verheijen, + Paul von Behren, Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, expressor implied. In no event shall Info-ZIP or its contributors be held liablefor any direct, indirect, incidental, special or consequential damagesarising out of the use of or inability to use this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute itfreely, subject to the following restrictions: + + 1. Redistributions of source code must retain the above copyright notice, definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce the above copyright notice, definition, disclaimer, and this list of conditions in documentation and/or other materials provided with the distribution. The sole exception to this condition is redistribution of a standard UnZipSFX binary (including SFXWiz) as part of a + self-extracting archive; that is permitted without inclusion of this license, as long as the normal SFX banner has not been removed from the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating systems, existing ports with new graphical interfaces, and dynamic, shared, or static library versions--must be plainly marked as such and must not be misrepresented as being the original source. Such altered versions also must not be misrepresented as being Info-ZIP releases--including, but not limited to, labeling of the altered versions with the names "Info-ZIP" (or any variation thereof, including, but not limited to, different capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the explicit permission of Info-ZIP. Such altered versions are further prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its own source and binary releases. + + +%% The following software may be included in this product: XML Security; Use of any of this software is governed by the terms of the license below: + The Apache Software License, + Version 1.1 + + + PDF + + + Copyright (C) 2002 The Apache SoftwareFoundation. + All rights reserved. Redistribution anduse in + source and binary forms, with or withoutmodifica- + tion, are permitted provided that thefollowing + conditions are met: 1. Redistributions ofsource + code must retain the above copyrightnotice, this + list of conditions and the followingdisclaimer. + 2. Redistributions in binary form mustreproduce + the above copyright notice, this list of conditions and the following disclaimerin the + documentation and/or other materialsprovided with + the distribution. 3. The end-userdocumentation + included with the redistribution, if any,must + include the following acknowledgment:"This + product includes software developed bythe Apache + Software Foundation +(http://www.apache.org/)." + Alternately, this acknowledgment mayappear in the + software itself, if and wherever suchthird-party + acknowledgments normally appear. 4. Thenames + "Apache Forrest" and "Apache SoftwareFoundation" + must not be used to endorse or promoteproducts + derived from this software without priorwritten + permission. For written permission,please contact + apache@apache.org. 5. Products derivedfrom this + software may not be called "Apache", normay + "Apache" appear in their name, withoutprior + written permission of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED``AS IS'' + AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESSFOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NOEVENT + SHALL THE APACHE SOFTWARE FOUNDATION ORITS + CONTRIBUTORS BE LIABLE FOR ANY DIRECT,INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL + DAMAGES (INCLU- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANYTHEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, + OR TORT (INCLUDING NEGLIGENCE OROTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF + SUCH DAMAGE. This software consists ofvoluntary + contributions made by many individuals onbehalf + of the Apache Software Foundation. Formore + information on the Apache SoftwareFoundation, + please see . + +%% The following software may be included in this product: Regexp, Regular Expression Package v. 1.2; Use of any of this software is governed by the terms of the license below: The Apache Software License, Version 1.1 +Copyright (c) 2001 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, +if any, must include the following acknowledgment: +"This product includes software developed by the +Apache Software Foundation (http://www.apache.org/)." +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation" and +"Apache Turbine" must not be used to endorse or promote products +derived from this software without prior written permission. For +written permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache", +"Apache Turbine", nor may "Apache" appear in their name, without +prior written permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR +ITS 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. + +==================================================================== +This software consists of voluntary contributions made by many +individuals on behalf of the Apache Software Foundation. For more +information on the Apache Software Foundation, please see + +http://www.apache.org. + + +%% The following software may be included in this product: Visual Studio. Use of any of this software is governed by the terms of the license below: + +END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE +IMPORTANT-READ CAREFULLY: This End-User License Agreement ("EULA") is a legal +agreement between you (either an individual or a single entity) and Microsoft Corporation ("Microsoft) for the Microsoft software that accompanies this EULA, which includes computer software and may include associated media, printed materials, "online" or electronic documentation, and Internet-based services ("Software"). An amendment or addendum to this EULA may accompany the Software. YOU AGREE TO BE BOUND BY THE TERMS OF THIS EULA BY INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE. IF YOU DO NOT AGREE, DO NOT INSTALL, COPY, OR USE THE SOFTWARE; YOU MAY RETURN IT TO YOUR PLACE OF PURCHASE (IF APPLICABLE) FOR A FULL REFUND. + +MICROSOFT SOFTWARE LICENSE + +1. GRANTS OF LICENSE. Microsoft grants you the rights described in this EULA +provided that you comply with all terms and conditions of this EULA. NOTE: Microsoft is not +licensing to you any rights with respect to Crystal Reports for Microsoft Visual Studio .NET; +your use of Crystal Reports for Microsoft Visual Studio .NET is subject to your acceptance of +the terms and conditions of the enclosed (hard copy) end user license agreement from Crystal +Decisions for that product. +1.1 General License Grant. Microsoft grants to you as an individual, a personal, +nonexclusive license to use the Software, and to make and use copies of the Software for the +purposes of designing, developing, testing, and demonstrating your software product(s), +provided that you are the only individual using the Software. +If you are an entity, Microsoft grants to you a personal, nonexclusive license to +use the Software, and to make and use copies of the Software, provided that for each individual +using the Software within your organization, you have acquired a separate and valid license for +each such individual. + +1.2 Documentation. You may make and use an unlimited number of copies of any +documentation, provided that such copies shall be used only for personal purposes and are not +to be republished or distributed (either in hard copy or electronic form) beyond your premises. +1.3 Storage/Network Use. You may also store or install a copy of the Software on a +storage device, such as a network server, used only to install or run the Software on computers +used by licensed end users in accordance with Section 1.1. A single license for the Software may +not be shared or used concurrently by multiple end users. +1.4 Visual StudioEffect of EULA. As a suite of development tools and other +Microsoft software programs (each such tool or software program, a "Component"), +Components that you receive as part of the Software may include a separate end-user license +agreement (each, a "Component EULA"). Except as provided in Section 4 ("Prerelease Code"), in +the event of inconsistencies between this EULA and any Component EULA, the terms of this +EULA shall control. The Software may also contain third-party software programs. Any such +software is provided for your use as a convenience and your use is subject to the terms and +conditions of any license agreement contained in that software. +2. ADDITIONAL LICENSE RIGHTS -- REDISTRIBUTABLE CODE. In addition to the +rights granted in Section 1, certain portions of the Software, as described in this Section 2, are +provided to you with additional license rights. These additional license rights are conditioned +Everett VSPro 1 +Final 11.04.02 + + + +upon your compliance with the distribution requirements and license limitations described in +Section 3. + +2.1 Sample Code. Microsoft grants you a limited, nonexclusive, royalty-free license +to: (a) use and modify the source code version of those portions of the Software identified as +"Samples" in REDIST.TXT or elsewhere in the Software ("Sample Code") for the sole purposes +of designing, developing, and testing your software product(s), and (b) reproduce and +distribute the Sample Code, along with any modifications thereof, in object and/or source code +form. For applicable redistribution requirements for Sample Code, see Section 3.1 below. +2.2 Redistributable CodeGeneral. Microsoft grants you a limited, nonexclusive, +royalty-free license to reproduce and distribute the object code form of any portion of the +Software listed in REDIST.TXT ("Redistributable Code"). For general redistribution +requirements for Redistributable Code, see Section 3.1 below. +2.3 Redistributable CodeMicrosoft Merge Modules ("MSM"). Microsoft grants +you a limited, nonexclusive, royalty-free license to reproduce and distribute the content of MSM +file(s) listed in REDIST.TXT in the manner described in the Software documentation only so +long as you redistribute such content in its entirety and do not modify such content in any way. +For all other applicable redistribution requirements for MSM files, see Section 3.1 below. +2.4 Redistributable CodeMicrosoft Foundation Classes (MFC), Active Template +Libraries (ATL), and C runtimes (CRTs). In addition to the rights granted in Section 1, +Microsoft grants you a license to use and modify the source code version of those portions of +the Software that are identified as MFC, ATL, or CRTs (collectively, the "VC Redistributables"), +for the sole purposes of designing, developing, and testing your software product(s). Provided +you comply with Section 3.1 and you rename any files created by you that are included in the +Licensee Software (defined below), Microsoft grants you a limited, nonexclusive, royalty-free +license to reproduce and distribute the object code version of the VC Redistributables, including +any modifications you make. For purposes of this section, "modifications" shall mean +enhancements to the functionality of the VC Redistributables. For all other applicable +redistribution requirements for VC Redistributables, see Section 3.1 below. +3. DISTRIBUTION REQUIREMENTS AND OTHER LICENSE RIGHTS AND +LIMITATIONS. If you choose to exercise your rights under Section 2, any redistribution by +you is subject to your compliance with Section 3.1; some of the Redistributable Code has +additional limited use rights described in Section 3.2. +3.1 General Distribution Requirements. +(a) If you choose to redistribute Sample Code, or Redistributable Code +(collectively, the "Redistributables") as described in Section 2, you agree: (i) except as otherwise +noted in Section 2.1 (Sample Code), to distribute the Redistributables only in object code form +and in conjunction with and as a part of a software application product developed by you that +adds significant and primary functionality to the Redistributables ("Licensee Software"); +(ii) that the Redistributables only operate in conjunction with Microsoft Windows platforms; +(iii) that if the Licensee Software is distributed beyond Licensee's premises or externally from +Licensee's organization, to distribute the Licensee Software containing the Redistributables +pursuant to an end user license agreement (which may be "break-the-seal", "click-wrap" or +signed), with terms no less protective than those contained in this EULA; (iv) not to use +Microsoft's name, logo, or trademarks to market the Licensee Software; (v) to display your own +valid copyright notice which shall be sufficient to protect Microsoft's copyright in the Software; +Everett VSPro 2 +Final 11.04.02 + + + +(vi) not to remove or obscure any copyright, trademark or patent notices that appear on the +Software as delivered to you; (vii) to indemnify, hold harmless, and defend Microsoft from and +against any claims or lawsuits, including attorney's fees, that arise or result from the use or +distribution of the Licensee Software; (viii) to otherwise comply with the terms of this EULA; +and (ix) agree that Microsoft reserves all rights not expressly granted. +You also agree not to permit further distribution of the Redistributables by your +end users except you may permit further redistribution of the Redistributables by your +distributors to your end-user customers if your distributors only distribute the Redistributables +in conjunction with, and as part of, the Licensee Software, you comply with all other terms of +this EULA, and your distributors comply with all restrictions of this EULA that are applicable +to you. + +(b) If you use the Redistributables, then in addition to your compliance with +the applicable distribution requirements described for the Redistributables, the following also +applies. Your license rights to the Redistributables are conditioned upon your not (i) creating +derivative works of the Redistributables in any manner that would cause the Redistributables in +whole or in part to become subject to any of the terms of an Excluded License; or (ii) +distributing the Redistributables (or derivative works thereof) in any manner that would cause +the Redistributables to become subject to any of the terms of an Excluded License. An +"Excluded License" is any license that requires as a condition of use, modification and/or +distribution of software subject to the Excluded License, that such software or other software +combined and/or distributed with such software be (x) disclosed or distributed in source code +form; (y) licensed for the purpose of making derivative works; or (z) redistributable at no +charge. +3.2 Additional Distribution Requirements for Certain Redistributable Code. +If you choose to redistribute the files discussed in this Section, then in addition to the terms of +Section 3.1, you must ALSO comply with the following. +(a) Microsoft SQL Server Desktop Engine ("MSDE"). If you redistribute +MSDE you agree to comply with the following additional requirements: (a) Licensee +Software shall not substantially duplicate the capabilities of Microsoft Access or, in the +reasonable opinion of Microsoft, compete with same; and (b) unless Licensee Software +requires your customers to license Microsoft Access in order to operate, you shall not +reproduce or use MSDE for commercial distribution in conjunction with a general +purpose word processing, spreadsheet or database management software product, or an +integrated work or product suite whose components include a general purpose word +processing, spreadsheet, or database management software product except for the +exclusive use of importing data to the various formats supported by Microsoft Access. +A product that includes limited word processing, spreadsheet or database components +along with other components which provide significant and primary value, such as an +accounting product with limited spreadsheet capability, is not considered to be a +"general purpose" product. +(b) Microsoft Data Access Components. If you redistribute the Microsoft +Data Access Component file identified as MDAC_TYP.EXE, you also agree to +redistribute such file in object code only in conjunction with and as a part of a Licensee +Software developed by you with a Microsoft development tool product that adds +significant and primary functionality to MDAC_TYP.EXE. +Everett VSPro 3 +Final 11.04.02 + + + +3.3 Separation of Components. The Software is licensed as a single product. Its +component parts may not be separated for use by more than one user. +3.4 Benchmark Testing. The Software may contain the Microsoft .NET Framework. +You may not disclose the results of any benchmark test of the .NET Framework component of +the Software to any third party without Microsoft's prior written approval. +4. PRERELEASE CODE. Portions of the Software may be identified as prerelease code +("Prerelease Code"). Such Prerelease Code is not at the level of performance and compatibility +of the final, generally available product offering. The Prerelease Code may not operate correctly +and may be substantially modified prior to first commercial shipment. Microsoft is not +obligated to make this or any later version of the Prerelease Code commercially available. The +grant of license to use Prerelease Code expires upon availability of a commercial release of the +Prerelease Code from Microsoft. NOTE: In the event that Prerelease Code contains a separate +end-user license agreement, the terms and conditions of such end-user license agreement shall +govern your use of the corresponding Prerelease Code. +5. RESERVATION OF RIGHTS AND OWNERSHIP. Microsoft reserves all rights not +expressly granted to you in this EULA. The Software is protected by copyright and other +intellectual property laws and treaties. Microsoft or its suppliers own the title, copyright, and +other intellectual property rights in the Software. The Software is licensed, not sold. +6. LIMITATIONS ON REVERSE ENGINEERING, DECOMPILATION, AND +DISASSEMBLY. You may not reverse engineer, decompile, or disassemble the Software, +except and only to the extent that such activity is expressly permitted by applicable law +notwithstanding this limitation. +7. NO RENTAL/COMMERCIAL HOSTING. You may not rent, lease, lend or provide +commercial hosting services with the Software. +8. CONSENT TO USE OF DATA. You agree that Microsoft and its affiliates may collect +and use technical information gathered as part of the product support services provided to you, +if any, related to the Software. Microsoft may use this information solely to improve our +products or to provide customized services or technologies to you and will not disclose this +information in a form that personally identifies you. +9. LINKS TO THIRD PARTY SITES. You may link to third party sites through the use of +the Software. The third party sites are not under the control of Microsoft, and Microsoft is not +responsible for the contents of any third party sites, any links contained in third party sites, or +any changes or updates to third party sites. Microsoft is not responsible for webcasting or any +other form of transmission received from any third party sites. Microsoft is providing these +links to third party sites to you only as a convenience, and the inclusion of any link does not +imply an endorsement by Microsoft of the third party site. +10. ADDITIONAL SOFTWARE/SERVICES. This EULA applies to updates, supplements, +add-on components, or Internet-based services components, of the Software that Microsoft may +provide to you or make available to you after the date you obtain your initial copy of the +Software, unless we provide other terms along with the update, supplement, add-on +component, or Internet-based services component. Microsoft reserves the right to discontinue +any Internet-based services provided to you or made available to you through the use of the +Software. +11. UPGRADES/DOWNGRADES +Everett VSPro 4 +Final 11.04.02 + + + +11.1 Upgrades. To use a version of the Software identified as an upgrade, you must +first be licensed for the software identified by Microsoft as eligible for the upgrade. After +upgrading, you may no longer use the software that formed the basis for your upgrade +eligibility. +11.2 Downgrades. Instead of installing and using the Software, you may install and +use copies of an earlier version of the Software, provided that you completely remove such +earlier version and install the current version of the Software within a reasonable time. Your +use of such earlier version shall be governed by this EULA, and your rights to use such earlier +version shall terminate when you install the Software. +11.3 Special Terms for Version 2003 Upgrade Editions of the Software. If the +Software accompanying this EULA is the version 2003 edition of the Software and you have +acquired it as an upgrade from the corresponding "2002" edition of the Microsoft software +product with the same product name as the Software (the "Qualifying Software"), then +Section 11.1 does not apply to you. Instead, you may continue to use the Qualifying Software +AND the version 2003 upgrade for so long as you continue to comply with the terms of this +EULA and the EULA governing your use of the Qualifying Software. Qualifying Software does +not include non-Microsoft software products. +12. NOT FOR RESALE SOFTWARE. Software identified as "Not For Resale" or "NFR," +may not be sold or otherwise transfered for value, or used for any purpose other than +demonstration, test or evaluation. +13. ACADEMIC EDITION SOFTWARE. To use Software identified as "Academic +Edition" or "AE," you must be a "Qualified Educational User." For qualification-related +questions, please contact the Microsoft Sales Information Center/One Microsoft +Way/Redmond, WA 98052-6399 or the Microsoft subsidiary serving your country. +14. EXPORT RESTRICTIONS. You acknowledge that the Software is subject to U.S. export +jurisdiction. You agree to comply with all applicable international and national laws that apply +to the Software, including the U.S. Export Administration Regulations, as well as end-user, end- +use, and destination restrictions issued by U.S. and other governments. For additional +information see . +15. SOFTWARE TRANSFER. The initial user of the Software may make a one-time +permanent transfer of this EULA and Software to another end user, provided the initial user +retains no copies of the Software. This transfer must include all of the Software (including all +component parts, the media and printed materials, any upgrades (including any Qualifying +Software as defined in Section 11.3), this EULA, and, if applicable, the Certificate of +Authenticity). The transfer may not be an indirect transfer, such as a consignment. Prior to the +transfer, the end user receiving the Software must agree to all the EULA terms. +16. TERMINATION. Without prejudice to any other rights, Microsoft may terminate this +EULA if you fail to comply with the terms and conditions of this EULA. In such event, you +must destroy all copies of the Software and all of its component parts. +Everett VSPro 5 +Final 11.04.02 + + + +17. LIMITED WARRANTY FOR SOFTWARE ACQUIRED IN THE US AND CANADA. +Except for the "Redistributables," which are provided AS IS without warranty of any kind, +Microsoft warrants that the Software will perform substantially in accordance with the +accompanying materials for a period of ninety (90) days from the date of receipt. + +If an implied warranty or condition is created by your state/jurisdiction and federal or +state/provincial law prohibits disclaimer of it, you also have an implied warranty or condition, +BUT ONLY AS TO DEFECTS DISCOVERED DURING THE PERIOD OF THIS LIMITED +WARRANTY (NINETY DAYS). AS TO ANY DEFECTS DISCOVERED AFTER THE +NINETY-DAY PERIOD, THERE IS NO WARRANTY OR CONDITION OF ANY KIND. + +Some states/jurisdictions do not allow limitations on how long an implied warranty or + + +condition lasts, so the above limitation may not apply to you. +Any supplements or updates to the Software, including without limitation, any (if any) service +packs or hot fixes provided to you after the expiration of the ninety day Limited Warranty +period are not covered by any warranty or condition, express, implied or statutory. + + +LIMITATION ON REMEDIES; NO CONSEQUENTIAL OR OTHER DAMAGES. Your +exclusive remedy for any breach of this Limited Warranty is as set forth below. Except for any +refund elected by Microsoft, YOU ARE NOT ENTITLED TO ANY DAMAGES, +INCLUDING BUT NOT LIMITED TO CONSEQUENTIAL DAMAGES, if the Software does +not meet Microsoft's Limited Warranty, and, to the maximum extent allowed by applicable +law, even if any remedy fails of its essential purpose. The terms of Section 19 ("Exclusion of +Incidental, Consequential and Certain Other Damages") are also incorporated into this Limited +Warranty. Some states/jurisdictions do not allow the exclusion or limitation of incidental or +consequential damages, so the above limitation or exclusion may not apply to you. This +Limited Warranty gives you specific legal rights. You may have other rights which vary from +state/jurisdiction to state/jurisdiction. YOUR EXCLUSIVE REMEDY. Microsoft's and its +suppliers' entire liability and your exclusive remedy for any breach of this Limited Warranty or +for any other breach of this EULA or for any other liability relating to the Software shall be, at +Microsoft's option from time to time exercised subject to applicable law, (a) return of the +amount paid (if any) for the Software, or (b) repair or replacement of the Software, that does not +meet this Limited Warranty and that is returned to Microsoft with a copy of your receipt. You +will receive the remedy elected by Microsoft without charge, except that you are responsible for +any expenses you may incur (e.g. cost of shipping the Software to Microsoft). This Limited +Warranty is void if failure of the Software has resulted from accident, abuse, misapplication, + +abnormal use or a virus. Any replacement Software will be warranted for the remainder of the +original warranty period or thirty (30) days, whichever is longer, and Microsoft will use +commercially reasonable efforts to provide your remedy within a commercially reasonable time +of your compliance with Microsoft's warranty remedy procedures. Outside the United States or +Canada, neither these remedies nor any product support services offered by Microsoft are +available without proof of purchase from an authorized international source. To exercise your +remedy, contact: Microsoft, Attn. Microsoft Sales Information Center/One Microsoft +Way/Redmond, WA 98052-6399, or the Microsoft subsidiary serving your country. + + + +18. DISCLAIMER OF WARRANTIES. The Limited Warranty that appears above is the +only express warranty made to you and is provided in lieu of any other express warranties or +similar obligations (if any) created by any advertising, documentation, packaging, or other +communications. EXCEPT FOR THE LIMITED WARRANTY AND TO THE MAXIMUM +Everett VSPro 6 +Final 11.04.02 + + + +EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS SUPPLIERS +PROVIDE THE SOFTWARE AND SUPPORT SERVICES (IF ANY) AS IS AND WITH ALL +FAULTS, AND HEREBY DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, +WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, +ANY (IF ANY) IMPLIED WARRANTIES, DUTIES OR CONDITIONS OF +MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF RELIABILITY +OR AVAILABILITY, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF +RESULTS, OF WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF +NEGLIGENCE, ALL WITH REGARD TO THE SOFTWARE, AND THE PROVISION OF OR +FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, INFORMATION, SOFTWARE, +AND RELATED CONTENT THROUGH THE SOFTWARE OR OTHERWISE ARISING +OUT OF THE USE OF THE SOFTWARE. ALSO, THERE IS NO WARRANTY OR +CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, +CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO +THE SOFTWARE. + +19. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER +DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, +INCIDENTAL, PUNITIVE, INDIRECT, OR CONSEQUENTIAL DAMAGES +WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF +PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS +INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO +MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR +NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) +ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE +THE SOFTWARE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR +OTHER SERVICES, INFORMATION, SOFTWARE, AND RELATED CONTENT +THROUGH THE SOFTWARE OR OTHERWISE ARISING OUT OF THE USE OF THE +SOFTWARE, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION +OF THIS EULA, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING +NEGLIGENCE), MISREPRESENTATION, STRICT LIABILITY, BREACH OF CONTRACT +OR BREACH OF WARRANTY OF MICROSOFT OR ANY SUPPLIER, AND EVEN IF +MICROSOFT OR ANY SUPPLIER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. +20. LIMITATION OF LIABILITY AND REMEDIES. NOTWITHSTANDING ANY +DAMAGES THAT YOU MIGHT INCUR FOR ANY REASON WHATSOEVER +(INCLUDING, WITHOUT LIMITATION, ALL DAMAGES REFERENCED HEREIN AND +ALL DIRECT OR GENERAL DAMAGES IN CONTRACT OR ANYTHING ELSE), THE +ENTIRE LIABILITY OF MICROSOFT AND ANY OF ITS SUPPLIERS UNDER ANY +PROVISION OF THIS EULA AND YOUR EXCLUSIVE REMEDY HEREUNDER (EXCEPT +FOR ANY REMEDY OF REPAIR OR REPLACEMENT ELECTED BY MICROSOFT WITH +RESPECT TO ANY BREACH OF THE LIMITED WARRANTY) SHALL BE LIMITED TO +THE GREATER OF THE ACTUAL DAMAGES YOU INCUR IN REASONABLE RELIANCE +ON THE SOFTWARE UP TO THE AMOUNT ACTUALLY PAID BY YOU FOR THE +SOFTWARE OR US$5.00. THE FOREGOING LIMITATIONS, EXCLUSIONS AND +DISCLAIMERS (INCLUDING SECTIONS 17, 18, AND 19) SHALL APPLY TO THE +MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS +ITS ESSENTIAL PURPOSE. +Everett VSPro 7 +Final 11.04.02 + + + +21. U.S. GOVERNMENT LICENSE RIGHTS. All Software provided to the U.S. +Government pursuant to solicitations issued on or after December 1, 1995 is provided with the +commercial license rights and restrictions described elsewhere herein. All Software provided to +the U.S. Government pursuant to solicitations issued prior to December 1, 1995 is provided with +"Restricted Rights" as provided for in FAR, 48 CFR 52.227-14 (JUNE 1987) or DFAR, 48 CFR +252.227-7013 (OCT 1988), as applicable. +22. APPLICABLE LAW. If you acquired this Software in the United States, this EULA is +governed by the laws of the State of Washington. If you acquired this Software in Canada, +unless expressly prohibited by local law, this EULA is governed by the laws in force in the +Province of Ontario, Canada; and, in respect of any dispute which may arise hereunder, you +consent to the jurisdiction of the federal and provincial courts sitting in Toronto, Ontario. If you +acquired this Software in the European Union, Iceland, Norway, or Switzerland, then local law +applies. If you acquired this Software in any other country, then local law may apply. +23. ENTIRE AGREEMENT; SEVERABILITY. This EULA (including any addendum or +amendment to this EULA which is included with the Software) are the entire agreement +between you and Microsoft relating to the Software and the support services (if any) and they +supersede all prior or contemporaneous oral or written communications, proposals and +representations with respect to the Software or any other subject matter covered by this EULA. +To the extent the terms of any Microsoft policies or programs for support services conflict with +the terms of this EULA, the terms of this EULA shall control. If any provision of this EULA is +held to be void, invalid, unenforceable or illegal, the other provisions shall continue in full force +and effect. +Si vous avez acquis votre produit Microsoft au CANADA, la garantie limite suivante +s'applique : + +GARANTIE LIMITE + +Sauf pur celles du "Redistributables," qui sont fournies "comme telles," Microsoft garantit que +le Logiciel fonctionnera conformment aux documents inclus pendant une priode de 90 jours +suivant la date de rception. + +Si une garantie ou condition implicite est cre par votre tat ou votre territoire et qu'une loifdrale ou provinciale ou d'un tat en interdit le dni, vous jouissez galement d'une +garantie ou condition implicite, MAIS UNIQUEMENT POUR LES DFAUTS DCOUVERTS +DURANT LA PRIODE DE LA PRSENTE GARANTIE LIMITE (QUATRE-VINGT-DIX +JOURS). IL N'Y A AUCUNE GARANTIE OU CONDITION DE QUELQUE NATURE QUECE SOIT QUANT AUX DFAUTS DCOUVERTS APRS CETTE PRIODE DE QUATRE- +VINGT-DIX JOURS. Certains tats ou territoires ne permettent pas de limiter la dure d'une +garantie ou condition implicite de sorte que la limitation ci-dessus peut ne pas s'appliquer +vous. + +Tous les supplments ou toutes les mises jour relatifs au Logiciel, notamment, les ensembles +de services ou les rparations chaud (le cas chant) qui vous sont fournis aprs l'expiration +de la priode de quatre-vingt-dix jours de la garantie limite ne sont pas couverts par quelque +garantie ou condition que ce soit, expresse, implicite ou en vertu de la loi. + +LIMITATION DES RECOURS; ABSENCE DE DOMMAGES INDIRECTS OU AUTRES. + +Votre recours exclusif pour toute violation de la prsente garantie limite est dcrit ci-aprs. + +Sauf pour tout remboursement au choix de Microsoft, si le Logiciel ne respecte pas la + +Everett VSPro 8 +Final 11.04.02 + + + +garantie limite de Microsoft et, dans la mesure maximale permise par les lois applicables, +mme si tout recours n'atteint pas son but essentiel, VOUS N'AVEZ DROIT AUCUNS +DOMMAGES, NOTAMMENT DES DOMMAGES INDIRECTS. Les termes de la +clause Exclusion des dommages accessoires, indirects et de certains autres dommages sontgalement intgres la prsente garantie limite. Certains tats ou territoires ne permettent +pas l'exclusion ou la limitation des dommages indirects ou accessoires de sorte que la limitation +ou l'exclusion ci-dessus peut ne pas s'appliquer vous. La prsente garantie limite vous donne +des droits lgaux spcifiques. Vous pouvez avoir d'autres droits qui peuvent varier d'unterritoire ou d'un tat un autre. VOTRE RECOURS EXCLUSIF. La seule responsabilit +obligation de Microsoft et de ses fournisseurs et votre recours exclusif pour toute violation de +la prsente garantie limite ou pour toute autre violation du prsent contrat ou pour toute autre +responsabilit relative au Logiciel seront, selon le choix de Microsoft exerc de temps autre +sous rserve de toute loi applicable, a) le remboursement du prix pay, le cas chant, pour le +Logiciel ou b) la rparation ou le remplacement du Logiciel qui ne respecte pas la prsente +garantie limite et qui est retourn Microsoft avec une copie de votre reu. Vous recevrez la +compensation choisie par Microsoft, sans frais, sauf que vous tes responsable des dpenses que +vous pourriez engager (p. ex., les frais d'envoi du Logiciel Microsoft). La prsente garantie +limite est nulle si la dfectuosit du Logiciel est cause par un accident, un usage abusif, une +mauvaise application, un usage anormal ou un virus. Tout Logiciel de remplacement sera +garanti pour le reste de la priode initiale de la garantie ou pendant trente (30) jours, selon la +plus longue entre ces deux priodes. l'extrieur des tats-Unis ou du Canada, ces recours ou +l'un quelconque des services de soutien technique offerts par Microsoft ne sont pas disponibles +sans preuve d'achat d'une source internationale autorise. Pour exercer votre recours, vous +devez communiquer avec Microsoft et vous adresser au Microsoft Sales Information +Center/One Microsoft Way/Redmond, WA 98052-6399, ou la filiale de Microsoft de votre +pays. + +DNI DE GARANTIES. La garantie limite qui apparat ci-dessus constitue la seule garantie +expresse qui vous est donne et remplace toutes autres garanties expresses (s'il en est) cres par +une publicit, un document, un emballage ou une autre communication. SAUF EN CE QUI A +TRAIT LA GARANTIE LIMITE ET DANS LA MESURE MAXIMALE PERMISE PAR +LES LOIS APPLICABLES, LE LOGICIEL ET LES SERVICES DE SOUTIEN TECHNIQUE +(LE CAS CHANT) SONT FOURNIS TELS QUELS ET AVEC TOUS LES DFAUTS PAR +MICROSOFT ET SES FOURNISSEURS, LESQUELS PAR LES PRSENTES DNIENT +TOUTES AUTRES GARANTIES ET CONDITIONS EXPRESSES, IMPLICITES OU EN +VERTU DE LA LOI, NOTAMMENT, MAIS SANS LIMITATION, (LE CAS CHANT) LESGARANTIES, DEVOIRS OU CONDITIONS IMPLICITES DE QUALIT MARCHANDE, +D'ADAPTATION UNE FIN PARTICULIRE, DE FIABILIT OU DE DISPONIBILIT, +D'EXACTITUDE OU D'EXHAUSTIVIT DES RPONSES, DES RSULTATS, DES +EFFORTS DPLOYS SELON LES RGLES DE L'ART, D'ABSENCE DE VIRUS ET +D'ABSENCE DE NGLIGENCE, LE TOUT L'GARD DU LOGICIEL ET DE LA +PRESTATION OU DE L'OMISSION DE LA PRESTATION DES SERVICES DE SOUTIEN +TECHNIQUE OU L'GARD DE LA FOURNITURE OU DE L'OMISSION DE LA +FOURNITURE DE TOUS AUTRES SERVICES, RENSEIGNEMENTS, LOGICIELS, ET +CONTENU QUI S'Y RAPPORTE GRCE AU LOGICIEL OU PROVENANT AUTREMENT +DE L'UTILISATION DU LOGICIEL . PAR AILLEURS, IL N'Y A AUCUNE GARANTIE OU +CONDITION QUANT AU TITRE DE PROPRIT, LA JOUISSANCE OU LA +POSSESSION PAISIBLE, LA CONCORDANCE UNE DESCRIPTION NI QUANT +UNE ABSENCE DE CONTREFAON CONCERNANT LE LOGICIEL. + +EXCLUSION DES DOMMAGES ACCESSOIRES, INDIRECTS ET DE CERTAINS AUTRES +DOMMAGES. DANS LA MESURE MAXIMALE PERMISE PAR LES LOIS APPLICABLES, +EN AUCUN CAS MICROSOFT OU SES FOURNISSEURS NE SERONT RESPONSABLES +DES DOMMAGES SPCIAUX, CONSCUTIFS, ACCESSOIRES OU INDIRECTS DE + +Everett VSPro 9 +Final 11.04.02 + + + +QUELQUE NATURE QUE CE SOIT (NOTAMMENT, LES DOMMAGES L'GARD DUMANQUE GAGNER OU DE LA DIVULGATION DE RENSEIGNEMENTS +CONFIDENTIELS OU AUTRES, DE LA PERTE D'EXPLOITATION, DE BLESSURES +CORPORELLES, DE LA VIOLATION DE LA VIE PRIVE, DE L'OMISSION DE REMPLIR +TOUT DEVOIR, Y COMPRIS D'AGIR DE BONNE FOI OU D'EXERCER UN SOIN +RAISONNABLE, DE LA NGLIGENCE ET DE TOUTE AUTRE PERTE PCUNIAIRE OU +AUTRE PERTE DE QUELQUE NATURE QUE CE SOIT) SE RAPPORTANT DE QUELQUEMANIRE QUE CE SOIT L'UTILISATION DU LOGICIEL OU L'INCAPACIT DE +S'EN SERVIR, LA PRESTATION OU L'OMISSION DE LA PRESTATION DE +SERVICES DE SOUTIEN TECHNIQUE OU LA FOURNITURE OU L'OMISSION DE +LA FOURNITURE DE TOUS AUTRES SERVICES, RENSEIGNEMENTS, LOGICIELS, ET +CONTENU QUI S'Y RAPPORTE GRCE AU LOGICIEL OU PROVENANT AUTREMENT +DE L'UTILISATION DU LOGICIEL OU AUTREMENT AUX TERMES DE TOUTE +DISPOSITION DE LA PRSENTE CONVENTION OU RELATIVEMENT UNE TELLE +DISPOSITION, MME EN CAS DE FAUTE, DE DLIT CIVIL (Y COMPRIS LANGLIGENCE), DE RESPONSABILIT STRICTE, DE VIOLATION DE CONTRAT OU DEVIOLATION DE GARANTIE DE MICROSOFT OU DE TOUT FOURNISSEUR ET MME +SI MICROSOFT OU TOUT FOURNISSEUR A T AVIS DE LA POSSIBILIT DE TELS +DOMMAGES. + +LIMITATION DE RESPONSABILIT ET RECOURS. MALGR LES DOMMAGES QUE +VOUS PUISSIEZ SUBIR POUR QUELQUE MOTIF QUE CE SOIT (NOTAMMENT, MAISSANS LIMITATION, TOUS LES DOMMAGES SUSMENTIONNS ET TOUS LES +DOMMAGES DIRECTS OU GNRAUX OU AUTRES), LA SEULE RESPONSABILIT DE +MICROSOFT ET DE L'UN OU L'AUTRE DE SES FOURNISSEURS AUX TERMES DE +TOUTE DISPOSITION DE LA PRSENTE CONVENTION ET VOTRE RECOURS +EXCLUSIF L'GARD DE TOUT CE QUI PRCDE (SAUF EN CE QUI CONCERNETOUT RECOURS DE RPARATION OU DE REMPLACEMENT CHOISI PAR +MICROSOFT L'GARD DE TOUT MANQUEMENT LA GARANTIE LIMITE) SELIMITE AU PLUS LEV ENTRE LES MONTANTS SUIVANTS : LE MONTANT QUE +VOUS AVEZ RELLEMENT PAY POUR LE LOGICIEL OU 5,00 $US. LES LIMITES, +EXCLUSIONS ET DNIS QUI PRCDENT (Y COMPRIS LES CLAUSES CI-DESSUS), +S'APPLIQUENT DANS LA MESURE MAXIMALE PERMISE PAR LES LOIS +APPLICABLES, MME SI TOUT RECOURS N'ATTEINT PAS SON BUT ESSENTIEL. + + moins que cela ne soit prohib par le droit local applicable, la prsente Convention est rgie +par les lois de la province d'Ontario, Canada. Vous consentez la comptence des tribunaux +fdraux et provinciaux sigeant Toronto, dans la province d'Ontario. + +Au cas o vous auriez des questions concernant cette licence ou que vous dsiriez vous mettre +en rapport avec Microsoft pour quelque raison que ce soit, veuillez utiliser l'information +contenue dans le Logiciel pour contacter la filiale de Microsoft desservant votre pays, ou visitez +Microsoft sur le World Wide Web http://www.microsoft.com. + +The following MICROSOFT GUARANTEE applies to you if you acquired this Software in +any other country: + +Statutory rights not affected -The following guarantee is not restricted to any territory and does +not affect any statutory rights that you may have from your reseller or from Microsoft if you +acquired the Software directly from Microsoft. If you acquired the Software or any support +services in Australia, New Zealand or Malaysia, please see the "Consumer rights" section +below. + +Everett VSPro 10 +Final 11.04.02 + + + +The guarantee -The Software is designed and offered as a general-purpose software, not for any +user's particular purpose. You accept that no Software is error free and you are strongly +advised to back-up your files regularly. Provided that you have a valid license, Microsoft +guarantees that a) for a period of 90 days from the date of receipt of your license to use the +Software or the shortest period permitted by applicable law it will perform substantially in +accordance with the written materials that accompany the Software; and b) any support services +provided by Microsoft shall be substantially as described in applicable written materials +provided to you by Microsoft and Microsoft support engineers will use reasonable efforts, care +and skill to solve any problem issues. In the event that the Software fails to comply with this +guarantee, Microsoft will either (a) repair or replace the Software or (b) return the price you +paid. This guarantee is void if failure of the Software results from accident, abuse or +misapplication. Any replacement Software will be guaranteed for the remainder of the original +guarantee period or 30 days, whichever period is longer. You agree that the above guarantee is +your sole guarantee in relation to the Software and any support services. + +Exclusion of All Other Terms -To the maximum extent permitted by applicable law and subject to +the guarantee above, Microsoft disclaims all warranties, conditions and other terms, either +express or implied (whether by statute, common law, collaterally or otherwise) including but +not limited to implied warranties of satisfactory quality and fitness for particular purpose with +respect to the Software and the written materials that accompany the Software. Any implied +warranties that cannot be excluded are limited to 90 days or to the shortest period permitted by +applicable law, whichever is greater. + +Limitation of Liability -To the maximum extent permitted by applicable law and except as +provided in the Microsoft Guarantee, Microsoft and its suppliers shall not be liable for any +damages whatsoever (including without limitation, damages for loss of business profits, +business interruption, loss of business information or other pecuniary loss) arising out of the +use or inability to use the Software, even if Microsoft has been advised of the possibility of such +damages. In any case Microsoft's entire liability under any provision of this Agreement shall be +limited to the amount actually paid by you for the Software. These limitations do not apply to +any liabilities that cannot be excluded or limited by applicable laws. + +Consumer rights -Consumers in Australia, New Zealand or Malaysia may have the benefit of +certain rights and remedies by reason of the Trade Practices Act and similar state and territory +laws in Australia, the Consumer Guarantees Act in New Zealand and the Consumer Protection +Act in Malaysia in respect of which liability cannot lawfully be modified or excluded. If you +acquired the Software in New Zealand for the purposes of a business, you confirm that the +Consumer Guarantees Act does not apply. If you acquired the Software in Australia and if +Microsoft breaches a condition or warranty implied under any law which cannot lawfully be +modified or excluded by this agreement then, to the extent permitted by law, Microsoft's +liability is limited, at Microsoft's option, to: (i) in the case of the Software: a) repairing or +replacing the Software; or b) the cost of such repair or replacement; and (ii) in the case of +support services: a) re-supply of the services; or b) the cost of having the services supplied +again. + +Everett VSPro 11 +Final 11.04.02 + + + +Should you have any questions concerning this EULA, or if you desire to contact Microsoft for +any reason, please use the address information enclosed in this Software to contact the +Microsoft subsidiary serving your country or visit Microsoft on the World Wide Web at +http://www.microsoft.com. + +Everett VSPro 12 +Final 11.04.02 + +%% The following software may be included in this product: zlib; Use of any of this software is governed by the terms of the license below: + +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.1.3, July 9th, 1998 + + Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format + + +%% The following software may be included in this product: Mozilla Rhino. Use of any of this software is governed by the terms of the license below: + + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Rhino code, released + * May 6, 1999. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1997-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Kemal Bayram + * Patrick Beard + * Norris Boyd + * Igor Bukanov, igor@mir2.org + * Brendan Eich + * Ethan Hugg + * Roger Lawrence + * Terry Lucas + * Mike McCabe + * Milen Nankov + * Attila Szegedi, szegedia@freemail.hu + * Ian D. Stewart + * Andi Vajda + * Andrew Wason + */ + +%% The following software may be included in this product: Apache Derby. Use of any of this software is governed by the terms of the license below: + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + diff --git a/rpms/legal/FOSS_licenses/jepp/zlib-libpng License.txt b/rpms/legal/FOSS_licenses/jepp/zlib-libpng License.txt new file mode 100644 index 0000000000..9dccab73c3 --- /dev/null +++ b/rpms/legal/FOSS_licenses/jepp/zlib-libpng License.txt @@ -0,0 +1,27 @@ +Open Source Initiative OSI - The zlib/libpng License:Licensing +Submitted by nelson on Tue, 2006-10-31 04:56. :: +The zlib/libpng License + +Copyright (c) + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software +in a product, an acknowledgment in the product documentation would be +appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. + + + diff --git a/rpms/legal/FOSS_licenses/jmock/jmock.txt b/rpms/legal/FOSS_licenses/jmock/jmock.txt new file mode 100644 index 0000000000..c9034ae6c1 --- /dev/null +++ b/rpms/legal/FOSS_licenses/jmock/jmock.txt @@ -0,0 +1,29 @@ + +jMock Project License + +Copyright (c) 2000-2007, jMock.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of +conditions and the following disclaimer. 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. + +Neither the name of jMock 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 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. + diff --git a/rpms/legal/FOSS_licenses/jogl/bsd_license.txt b/rpms/legal/FOSS_licenses/jogl/bsd_license.txt new file mode 100644 index 0000000000..29100c0407 --- /dev/null +++ b/rpms/legal/FOSS_licenses/jogl/bsd_license.txt @@ -0,0 +1,15 @@ +License +PostgreSQL is released under the BSD license. +PostgreSQL Database Management System +(formerly known as Postgres, then as Postgres95) + +Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group + +Portions Copyright (c) 1994, The Regents of the University of California + +Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies. + +IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + diff --git a/rpms/legal/FOSS_licenses/jscience/license.txt b/rpms/legal/FOSS_licenses/jscience/license.txt new file mode 100644 index 0000000000..722d3c6689 --- /dev/null +++ b/rpms/legal/FOSS_licenses/jscience/license.txt @@ -0,0 +1,26 @@ +* JScience - Java(TM) Tools and Libraries for the Advancement of Sciences. +* Copyright (c) 2005 - 2007 JScience (http://jscience.org/) +* 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. +* +* 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. \ No newline at end of file diff --git a/rpms/legal/FOSS_licenses/jts_topology_suit/lgpl.txt b/rpms/legal/FOSS_licenses/jts_topology_suit/lgpl.txt new file mode 100644 index 0000000000..5faba9d48c --- /dev/null +++ b/rpms/legal/FOSS_licenses/jts_topology_suit/lgpl.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/junit/cpl.txt b/rpms/legal/FOSS_licenses/junit/cpl.txt new file mode 100644 index 0000000000..693b1f2682 --- /dev/null +++ b/rpms/legal/FOSS_licenses/junit/cpl.txt @@ -0,0 +1,214 @@ +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and documentation + distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are + distributed by that particular Contributor. A Contribution 'originates' from a + Contributor if it was added to the Program by such Contributor itself or anyone + acting on such Contributor's behalf. Contributions do not include additions to + the Program which: (i) are separate modules of software distributed in + conjunction with the Program under their own license agreement, and (ii) are + not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants + Recipient a non-exclusive, worldwide, royalty-free copyright license to + reproduce, prepare derivative works of, publicly display, publicly perform, + distribute and sublicense the Contribution of such Contributor, if any, and + such derivative works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby grants + Recipient a non-exclusive, worldwide, royalty-free patent license under + Licensed Patents to make, use, sell, offer to sell, import and otherwise + transfer the Contribution of such Contributor, if any, in source code and + object code form. This patent license shall apply to the combination of the + Contribution and the Program if, at the time the Contribution is added by the + Contributor, such addition of the Contribution causes such combination to be + covered by the Licensed Patents. The patent license shall not apply to any + other combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the licenses + to its Contributions set forth herein, no assurances are provided by any + Contributor that the Program does not infringe the patent or other intellectual + property rights of any other entity. Each Contributor disclaims any liability + to Recipient for claims brought by any other entity based on infringement of + intellectual property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby assumes sole + responsibility to secure any other intellectual property rights needed, if any. + For example, if a third party patent license is required to allow Recipient to + distribute the Program, it is Recipient's responsibility to acquire that + license before distributing the Program. + + d) Each Contributor represents that to its knowledge it has sufficient + copyright rights in its Contribution, if any, to grant the copyright license + set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under +its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all warranties and + conditions, express and implied, including warranties or conditions of title + and non-infringement, and implied warranties or conditions of merchantability + and fitness for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all liability for + damages, including direct, indirect, special, incidental and consequential + damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are offered + by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable manner on + or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within +the Program. + +Each Contributor must identify itself as the originator of its Contribution, +if any, in a manner that reasonably allows subsequent Recipients to identify +the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, if +a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, damages +and costs (collectively "Losses") arising from claims, lawsuits and other legal +actions brought by a third party against the Indemnified Contributor to the +extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If that +Commercial Contributor then makes performance claims, or offers warranties +related to Product X, those performance claims and warranties are such +Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a court +requires any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using +and distributing the Program and assumes all risks associated with its exercise +of rights under this Agreement, including but not limited to the risks and +costs of program errors, compliance with applicable laws, damage to or loss of +data, programs or equipment, and unavailability or interruption of operations. + + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), 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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of the +remainder of the terms of this Agreement, and without further action by the +parties hereto, such provision shall be reformed to the minimum extent +necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with respect +to a patent applicable to software (including a cross-claim or counterclaim in +a lawsuit), then any patent licenses granted by that Contributor to such +Recipient under this Agreement shall terminate as of the date such litigation +is filed. In addition, if Recipient institutes patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software or +hardware) infringes such Recipient's patent(s), then such Recipient's rights +granted under Section 2(b) shall terminate as of the date such litigation is +filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue +and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to time. +No one other than the Agreement Steward has the right to modify this Agreement. +IBM is the initial Agreement Steward. IBM may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial diff --git a/rpms/legal/FOSS_licenses/libgFortran/COPYING.LIB b/rpms/legal/FOSS_licenses/libgFortran/COPYING.LIB new file mode 100755 index 0000000000..2d2d780e60 --- /dev/null +++ b/rpms/legal/FOSS_licenses/libgFortran/COPYING.LIB @@ -0,0 +1,510 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes a de-facto standard. To achieve this, non-free programs must +be allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or +your school, if any, to sign a "copyright disclaimer" for the library, +if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/rpms/legal/FOSS_licenses/matplotlib/DATEUTIL_LICENSE.txt b/rpms/legal/FOSS_licenses/matplotlib/DATEUTIL_LICENSE.txt new file mode 100755 index 0000000000..c5b5923c55 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/DATEUTIL_LICENSE.txt @@ -0,0 +1,259 @@ +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations (now Zope +Corporation, see http://www.zope.com). In 2001, the Python Software +Foundation (PSF, see http://www.python.org/psf/) was formed, a +non-profit organization created specifically to own Python-related +Intellectual Property. Zope Corporation is a sponsoring member of +the PSF. + +All Python releases are Open Source (see http://www.opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.2 2.1.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2.1 2.2 2002 PSF yes + 2.2.2 2.2.1 2002 PSF yes + 2.2.3 2.2.2 2003 PSF yes + 2.3 2.2.2 2002-2003 PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PSF LICENSE AGREEMENT FOR PYTHON 2.3 +------------------------------------ + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using Python 2.3 software in source or binary form and its +associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 2.3 +alone or in any derivative version, provided, however, that PSF's +License Agreement and PSF's notice of copyright, i.e., "Copyright (c) +2001, 2002, 2003 Python Software Foundation; All Rights Reserved" are +retained in Python 2.3 alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 2.3 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 2.3. + +4. PSF is making Python 2.3 available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.3 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +2.3 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.3, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python 2.3, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE b/rpms/legal/FOSS_licenses/matplotlib/LICENSE new file mode 100755 index 0000000000..9274210639 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE @@ -0,0 +1,49 @@ +LICENSE AGREEMENT FOR MATPLOTLIB 0.91 +-------------------------------------- + +1. This LICENSE AGREEMENT is between John D. Hunter ("JDH"), and the +Individual or Organization ("Licensee") accessing and otherwise using +matplotlib software in source or binary form and its associated +documentation. + +2. Subject to the terms and conditions of this License Agreement, JDH +hereby grants Licensee a nonexclusive, royalty-free, world-wide license +to reproduce, analyze, test, perform and/or display publicly, prepare +derivative works, distribute, and otherwise use matplotlib 0.91 +alone or in any derivative version, provided, however, that JDH's +License Agreement and JDH's notice of copyright, i.e., "Copyright (c) +2002-2007 John D. Hunter; All Rights Reserved" are retained in +matplotlib 0.91 alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on or +incorporates matplotlib 0.91 or any part thereof, and wants to +make the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to matplotlib 0.91. + +4. JDH is making matplotlib 0.91 available to Licensee on an "AS +IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.91 +WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + +5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB +0.91 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR +LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING +MATPLOTLIB 0.91, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF +THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between JDH and +Licensee. This License Agreement does not grant permission to use JDH +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using matplotlib 0.91, +Licensee agrees to be bound by the terms and conditions of this License +Agreement. diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE_BAKOMA b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_BAKOMA new file mode 100755 index 0000000000..801e20cd73 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_BAKOMA @@ -0,0 +1,40 @@ + + BaKoMa Fonts Licence + -------------------- + + This licence covers two font packs (known as BaKoMa Fonts Colelction, + which is available at `CTAN:fonts/cm/ps-type1/bakoma/'): + + 1) BaKoMa-CM (1.1/12-Nov-94) + Computer Modern Fonts in PostScript Type 1 and TrueType font formats. + + 2) BaKoMa-AMS (1.2/19-Jan-95) + AMS TeX fonts in PostScript Type 1 and TrueType font formats. + + Copyright (C) 1994, 1995, Basil K. Malyshev. All Rights Reserved. + + Permission to copy and distribute these fonts for any purpose is + hereby granted without fee, provided that the above copyright notice, + author statement and this permission notice appear in all copies of + these fonts and related documentation. + + Permission to modify and distribute modified fonts for any purpose is + hereby granted without fee, provided that the copyright notice, + author statement, this permission notice and location of original + fonts (http://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma) + appear in all copies of modified fonts and related documentation. + + Permission to use these fonts (embedding into PostScript, PDF, SVG + and printing by using any software) is hereby granted without fee. + It is not required to provide any notices about using these fonts. + + Basil K. Malyshev + INSTITUTE FOR HIGH ENERGY PHYSICS + IHEP, OMVT + Moscow Region + 142281 PROTVINO + RUSSIA + + E-Mail: bakoma@mail.ru + or malyshev@mail.ihep.ru + diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE_COLORBREWER b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_COLORBREWER new file mode 100755 index 0000000000..568afe883e --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_COLORBREWER @@ -0,0 +1,38 @@ +Apache-Style Software License for ColorBrewer Color Schemes + +Version 1.1 + +Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania +State University. 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 as source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. The end-user documentation included with the redistribution, if any, +must include the following acknowledgment: "This product includes color +specifications and designs developed by Cynthia Brewer +(http://colorbrewer.org/)." Alternately, this acknowledgment may appear in +the software itself, if and wherever such third-party acknowledgments +normally appear. + +3. The name "ColorBrewer" must not be used to endorse or promote products +derived from this software without prior written permission. For written +permission, please contact Cynthia Brewer at cbrewer@psu.edu. + +4. Products derived from this software may not be called "ColorBrewer", +nor may "ColorBrewer" appear in their name, without prior written +permission of Cynthia Brewer. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 +CYNTHIA BREWER, MARK HARROWER, OR THE PENNSYLVANIA STATE UNIVERSITY BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE_PAINT b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_PAINT new file mode 100755 index 0000000000..9544d2ebb7 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_PAINT @@ -0,0 +1,23 @@ +/****************************************************************** +Copyright 2000 by Object Craft P/L, Melbourne, Australia. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Object Craft +is not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +OBJECT CRAFT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL OBJECT CRAFT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +******************************************************************/ diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE_PIL b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_PIL new file mode 100755 index 0000000000..93841ca721 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_PIL @@ -0,0 +1,25 @@ +The Python Imaging Library is + +Copyright (c) 1997-2002 by Secret Labs AB +Copyright (c) 1995-2002 by Fredrik Lundh + +By obtaining, using, and/or copying this software and/or its +associated documentation, you agree that you have read, understood, +and will comply with the following terms and conditions: + +Permission to use, copy, modify, and distribute this software and its +associated documentation for any purpose and without fee is hereby +granted, provided that the above copyright notice appears in all +copies, and that both that copyright notice and this permission notice +appear in supporting documentation, and that the name of Secret Labs +AB or the author not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR +ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE_STIX b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_STIX new file mode 100755 index 0000000000..2f7aeea331 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_STIX @@ -0,0 +1,71 @@ +TERMS AND CONDITIONS + + 1. Permission is hereby granted, free of charge, to any person +obtaining a copy of the STIX Fonts-TM set accompanying this license +(collectively, the "Fonts") and the associated documentation files +(collectively with the Fonts, the "Font Software"), to reproduce and +distribute the Font Software, including the rights to use, copy, merge +and publish copies of the Font Software, and to permit persons to whom +the Font Software is furnished to do so same, subject to the following +terms and conditions (the "License"). + + 2. The following copyright and trademark notice and these Terms and +Conditions shall be included in all copies of one or more of the Font +typefaces and any derivative work created as permitted under this +License: + + Copyright (c) 2001-2005 by the STI Pub Companies, consisting of +the American Institute of Physics, the American Chemical Society, the +American Mathematical Society, the American Physical Society, Elsevier, +Inc., and The Institute of Electrical and Electronic Engineers, Inc. +Portions copyright (c) 1998-2003 by MicroPress, Inc. Portions copyright +(c) 1990 by Elsevier, Inc. All rights reserved. STIX Fonts-TM is a +trademark of The Institute of Electrical and Electronics Engineers, Inc. + + 3. You may (a) convert the Fonts from one format to another (e.g., +from TrueType to PostScript), in which case the normal and reasonable +distortion that occurs during such conversion shall be permitted and (b) +embed or include a subset of the Fonts in a document for the purposes of +allowing users to read text in the document that utilizes the Fonts. In +each case, you may use the STIX Fonts-TM mark to designate the resulting +Fonts or subset of the Fonts. + + 4. You may also (a) add glyphs or characters to the Fonts, or modify +the shape of existing glyphs, so long as the base set of glyphs is not +removed and (b) delete glyphs or characters from the Fonts, provided +that the resulting font set is distributed with the following +disclaimer: "This [name] font does not include all the Unicode points +covered in the STIX Fonts-TM set but may include others." In each case, +the name used to denote the resulting font set shall not include the +term "STIX" or any similar term. + + 5. You may charge a fee in connection with the distribution of the +Font Software, provided that no copy of one or more of the individual +Font typefaces that form the STIX Fonts-TM set may be sold by itself. + + 6. THE FONT SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK OR OTHER RIGHT. IN NO EVENT SHALL +MICROPRESS OR ANY OF THE STI PUB COMPANIES BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, INCLUDING, BUT NOT LIMITED TO, ANY GENERAL, +SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM OR OUT OF THE USE OR +INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT +SOFTWARE. + + 7. Except as contained in the notice set forth in Section 2, the +names MicroPress Inc. and STI Pub Companies, as well as the names of the +companies/organizations that compose the STI Pub Companies, shall not be +used in advertising or otherwise to promote the sale, use or other +dealings in the Font Software without the prior written consent of the +respective company or organization. + + 8. This License shall become null and void in the event of any +material breach of the Terms and Conditions herein by licensee. + + 9. A substantial portion of the STIX Fonts set was developed by +MicroPress Inc. for the STI Pub Companies. To obtain additional +mathematical fonts, please contact MicroPress, Inc., 68-30 Harrow +Street, Forest Hills, NY 11375, USA - Phone: (718) 575-1816. + diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE_YORICK b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_YORICK new file mode 100755 index 0000000000..8c908509a7 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_YORICK @@ -0,0 +1,49 @@ +BSD-style license for gist/yorick colormaps. + +Copyright: + + Copyright (c) 1996. The Regents of the University of California. + All rights reserved. + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire +notice is included in all copies of any software which is or includes +a copy or modification of this software and in all copies of the +supporting documentation for such software. + +This work was produced at the University of California, Lawrence +Livermore National Laboratory under contract no. W-7405-ENG-48 between +the U.S. Department of Energy and The Regents of the University of +California for the operation of UC LLNL. + + + DISCLAIMER + +This software was prepared as an account of work sponsored by an +agency of the United States Government. Neither the United States +Government nor the University of California nor any of their +employees, makes any warranty, express or implied, or assumes any +liability or responsibility for the accuracy, completeness, or +usefulness of any information, apparatus, product, or process +disclosed, or represents that its use would not infringe +privately-owned rights. Reference herein to any specific commercial +products, process, or service by trade name, trademark, manufacturer, +or otherwise, does not necessarily constitute or imply its +endorsement, recommendation, or favoring by the United States +Government or the University of California. The views and opinions of +authors expressed herein do not necessarily state or reflect those of +the United States Government or the University of California, and +shall not be used for advertising or product endorsement purposes. + + + AUTHOR + +David H. Munro wrote Yorick and Gist. Berkeley Yacc (byacc) generated +the Yorick parser. The routines in Math are from LAPACK and FFTPACK; +MathC contains C translations by David H. Munro. The algorithms for +Yorick's random number generator and several special functions in +Yorick/include were taken from Numerical Recipes by Press, et. al., +although the Yorick implementations are unrelated to those in +Numerical Recipes. A small amount of code in Gist was adapted from +the X11R4 release, copyright M.I.T. -- the complete copyright notice +may be found in the (unused) file Gist/host.c. diff --git a/rpms/legal/FOSS_licenses/matplotlib/LICENSE_enthought.txt b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_enthought.txt new file mode 100755 index 0000000000..27727c5eae --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/LICENSE_enthought.txt @@ -0,0 +1,29 @@ +Copyright (c) 2001, 2002 Enthought, Inc. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + a. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + b. 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. + c. Neither the name of the Enthought 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. + diff --git a/rpms/legal/FOSS_licenses/matplotlib/PYTZ_LICENSE.txt b/rpms/legal/FOSS_licenses/matplotlib/PYTZ_LICENSE.txt new file mode 100755 index 0000000000..3fe5bfb905 --- /dev/null +++ b/rpms/legal/FOSS_licenses/matplotlib/PYTZ_LICENSE.txt @@ -0,0 +1,31 @@ +Copyright (c) 2003-2004 Stuart Bishop +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 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. + + The name of Stuart Bishop may not 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. + diff --git a/rpms/legal/FOSS_licenses/postgresql/bsd_license.txt b/rpms/legal/FOSS_licenses/postgresql/bsd_license.txt new file mode 100644 index 0000000000..29100c0407 --- /dev/null +++ b/rpms/legal/FOSS_licenses/postgresql/bsd_license.txt @@ -0,0 +1,15 @@ +License +PostgreSQL is released under the BSD license. +PostgreSQL Database Management System +(formerly known as Postgres, then as Postgres95) + +Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group + +Portions Copyright (c) 1994, The Regents of the University of California + +Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies. + +IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + diff --git a/rpms/legal/FOSS_licenses/python/LICENSE b/rpms/legal/FOSS_licenses/python/LICENSE new file mode 100644 index 0000000000..5cdb01e8d2 --- /dev/null +++ b/rpms/legal/FOSS_licenses/python/LICENSE @@ -0,0 +1,279 @@ +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations (now Zope +Corporation, see http://www.zope.com). In 2001, the Python Software +Foundation (PSF, see http://www.python.org/psf/) was formed, a +non-profit organization created specifically to own Python-related +Intellectual Property. Zope Corporation is a sponsoring member of +the PSF. + +All Python releases are Open Source (see http://www.opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.2 2.1.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2.1 2.2 2002 PSF yes + 2.2.2 2.2.1 2002 PSF yes + 2.2.3 2.2.2 2003 PSF yes + 2.3 2.2.2 2002-2003 PSF yes + 2.3.1 2.3 2002-2003 PSF yes + 2.3.2 2.3.1 2002-2003 PSF yes + 2.3.3 2.3.2 2002-2003 PSF yes + 2.3.4 2.3.3 2004 PSF yes + 2.3.5 2.3.4 2005 PSF yes + 2.4 2.3 2004 PSF yes + 2.4.1 2.4 2005 PSF yes + 2.4.2 2.4.1 2005 PSF yes + 2.4.3 2.4.2 2006 PSF yes + 2.4.4 2.4.3 2006 PSF yes + 2.5 2.4 2006 PSF yes + 2.5.1 2.5 2007 PSF yes + 2.5.2 2.5.1 2008 PSF yes + 2.5.3 2.5.2 2008 PSF yes + 2.6 2.5 2008 PSF yes + 2.6.1 2.6 2008 PSF yes + 2.6.2 2.6.1 2009 PSF yes + 2.6.3 2.6.2 2009 PSF yes + 2.6.4 2.6.3 2009 PSF yes + 2.6.5 2.6.4 2010 PSF yes + 2.7 2.6 2010 PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +Python Software Foundation; All Rights Reserved" are retained in Python alone or +in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/rpms/legal/FOSS_licenses/rhino/Mozilla Public License version 1_0.txt b/rpms/legal/FOSS_licenses/rhino/Mozilla Public License version 1_0.txt new file mode 100644 index 0000000000..cdb4757e38 --- /dev/null +++ b/rpms/legal/FOSS_licenses/rhino/Mozilla Public License version 1_0.txt @@ -0,0 +1,278 @@ +Mozilla Public License version 1.0MOZILLA PUBLIC LICENSE +Version 1.0 + + + +1. Definitions. + 1.1. ``Contributor'' means each entity that creates or contributes to the + creation of Modifications. + 1.2. ``Contributor Version'' means the combination of the Original Code, prior + Modifications used by a Contributor, and the Modifications made by that + particular Contributor. + 1.3. ``Covered Code'' means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case including + portions thereof. + 1.4. ``Electronic Distribution Mechanism'' means a mechanism generally + accepted in the software development community for the electronic transfer of + data. + 1.5. ``Executable'' means Covered Code in any form other than Source Code. + 1.6. ``Initial Developer'' means the individual or entity identified as the + Initial Developer in the Source Code notice required by Exhibit A. + 1.7. ``Larger Work'' means a work which combines Covered Code or portions + thereof with code not governed by the terms of this License. + 1.8. ``License'' means this document. + 1.9. ``Modifications'' means any addition to or deletion from the substance or + structure of either the Original Code or any previous Modifications. When + Covered Code is released as a series of files, a Modification is: + A. Any addition to or deletion from the contents of a file containing + Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous + Modifications. + 1.10. ``Original Code'' means Source Code of computer software code which is + described in the Source Code notice required by Exhibit A as Original Code, + and which, at the time of its release under this License is not already + Covered Code governed by this License. + 1.11. ``Source Code'' means the preferred form of the Covered Code for making + modifications to it, including all modules it contains, plus any associated + interface definition files, scripts used to control compilation and + installation of an Executable, or a list of source code differential + comparisons against either the Original Code or another well known, available + Covered Code of the Contributor's choice. The Source Code can be in a + compressed or archival form, provided the appropriate decompression or + de-archiving software is widely available for no charge. + 1.12. ``You'' means an individual or a legal entity exercising rights under, + and complying with all of the terms of, this License or a future version of + this License issued under Section 6.1. For legal entities, ``You'' includes + any entity which controls, is controlled by, or is under common control with + You. For purposes of this definition, ``control'' means (a) the power, direct + or indirect, to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of fifty percent (50%) or more of the + outstanding shares or beneficial ownership of such entity. +2. Source Code License. + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property claims: + (a) to use, reproduce, modify, display, perform, sublicense and distribute + the Original Code (or portions thereof) with or without Modifications, or as + part of a Larger Work; and + (b) under patents now or hereafter owned or controlled by Initial Developer, + to make, have made, use and sell (``Utilize'') the Original Code (or + portions thereof), but solely to the extent that any such patent is + reasonably necessary to enable You to Utilize the Original Code (or portions + thereof) and not to any greater extent that may be necessary to Utilize + further Modifications or combinations. + 2.2. Contributor Grant. + Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive + license, subject to third party intellectual property claims: + (a) to use, reproduce, modify, display, perform, sublicense and distribute + the Modifications created by such Contributor (or portions thereof) either + on an unmodified basis, with other Modifications, as Covered Code or as part + of a Larger Work; and + (b) under patents now or hereafter owned or controlled by Contributor, to + Utilize the Contributor Version (or portions thereof), but solely to the + extent that any such patent is reasonably necessary to enable You to Utilize + the Contributor Version (or portions thereof), and not to any greater extent + that may be necessary to Utilize further Modifications or combinations. +3. Distribution Obligations. + 3.1. Application of License. + The Modifications which You create or to which You contribute are governed by + the terms of this License, including without limitation Section 2.2. The + Source Code version of Covered Code may be distributed only under the terms of + this License or a future version of this License released under Section 6.1, + and You must include a copy of this License with every copy of the Source Code + You distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this License or the + recipients' rights hereunder. However, You may include an additional document + offering the additional rights described in Section 3.5. + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be made + available in Source Code form under the terms of this License either on the + same media as an Executable version or via an accepted Electronic Distribution + Mechanism to anyone to whom you made an Executable version available; and if + made available via Electronic Distribution Mechanism, must remain available + for at least twelve (12) months after the date it initially became available, + or at least six (6) months after a subsequent version of that particular + Modification has been made available to such recipients. You are responsible + for ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + 3.3. Description of Modifications. + You must cause all Covered Code to which you contribute to contain a file + documenting the changes You made to create that Covered Code and the date of + any change. You must include a prominent statement that the Modification is + derived, directly or indirectly, from Original Code provided by the Initial + Developer and including the name of the Initial Developer in (a) the Source + Code, and (b) in any notice in an Executable version or related documentation + in which You describe the origin or ownership of the Covered Code. + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If You have knowledge that a party claims an intellectual property right in + particular functionality or code (or its utilization under this License), + you must include a text file with the source code distribution titled + ``LEGAL'' which describes the claim and the party making the claim in + sufficient detail that a recipient will know whom to contact. If you obtain + such knowledge after You make Your Modification available as described in + Section 3.2, You shall promptly modify the LEGAL file in all copies You make + available thereafter and shall take other steps (such as notifying + appropriate mailing lists or newsgroups) reasonably calculated to inform + those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Your Modification is an application programming interface and You own or + control patents which are reasonably necessary to implement that API, you + must also include this information in the LEGAL file. + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source Code, + and this License in any documentation for the Source Code, where You describe + recipients' rights relating to Covered Code. If You created one or more + Modification(s), You may add your name as a Contributor to the notice + described in Exhibit A. If it is not possible to put such notice in a + particular Source Code file due to its structure, then you must include such + notice in a location (such as a relevant directory file) where a user would be + likely to look for such a notice. You may choose to offer, and to charge a fee + for, warranty, support, indemnity or liability obligations to one or more + recipients of Covered Code. However, You may do so only on Your own behalf, + and not on behalf of the Initial Developer or any Contributor. You must make + it absolutely clear than any such warranty, support, indemnity or liability + obligation is offered by You alone, and You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, support, + indemnity or liability terms You offer. + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the requirements of + Section 3.1-3.5 have been met for that Covered Code, and if You include a + notice stating that the Source Code version of the Covered Code is available + under the terms of this License, including a description of how and where You + have fulfilled the obligations of Section 3.2. The notice must be + conspicuously included in any notice in an Executable version, related + documentation or collateral in which You describe recipients' rights relating + to the Covered Code. You may distribute the Executable version of Covered Code + under a license of Your choice, which may contain terms different from this + License, provided that You are in compliance with the terms of this License + and that the license for the Executable version does not attempt to limit or + alter the recipient's rights in the Source Code version from the rights set + forth in this License. If You distribute the Executable version under a + different license You must make it absolutely clear that any terms which + differ from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms You offer. + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code not + governed by the terms of this License and distribute the Larger Work as a + single product. In such a case, You must make sure the requirements of this + License are fulfilled for the Covered Code. +4. Inability to Comply Due to Statute or Regulation. + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Code due to statute or regulation + then You must: (a) comply with the terms of this License to the maximum extent + possible; and (b) describe the limitations and the code they affect. Such + description must be included in the LEGAL file described in Section 3.4 and + must be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. +5. Application of this License. + This License applies to code to which the Initial Developer has attached the + notice in Exhibit A, and to related Covered Code. +6. Versions of the License. + 6.1. New Versions. + Netscape Communications Corporation (``Netscape'') may publish revised and/or + new versions of the License from time to time. Each version will be given a + distinguishing version number. + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that version. + You may also choose to use such Covered Code under the terms of any subsequent + version of the License published by Netscape. No one other than Netscape has + the right to modify the terms applicable to Covered Code created under this + License. + 6.3. Derivative Works. + If you create or use a modified version of this License (which you may only do + in order to apply it to code which is not already Covered Code governed by + this License), you must (a) rename Your license so that the phrases + ``Mozilla'', ``MOZILLAPL'', ``MOZPL'', ``Netscape'', ``NPL'' or any + confusingly similar phrase do not appear anywhere in your license and (b) + otherwise make it clear that your version of the license contains terms which + differ from the Mozilla Public License and Netscape Public License. (Filling + in the name of the Initial Developer, Original Code or Contributor in the + notice described in Exhibit A shall not of themselves be deemed to be + modifications of this License.) +7. DISCLAIMER OF WARRANTY. + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN ``AS IS'' BASIS, WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT + LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, + FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE + QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED + CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR + CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS + LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER. +8. TERMINATION. + This License and the rights granted hereunder will terminate automatically if + You fail to comply with terms herein and fail to cure such breach within 30 + days of becoming aware of the breach. All sublicenses to the Covered Code + which are properly granted shall survive any termination of this License. + Provisions which, by their nature, must remain in effect beyond the + termination of this License shall survive. +9. LIMITATION OF LIABILITY. + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING + NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER + CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF + SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR + MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH + PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS + LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL + INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND + LIMITATION MAY NOT APPLY TO YOU. +10. U.S. GOVERNMENT END USERS. + The Covered Code is a ``commercial item,'' as that term is defined in 48 + C.F.R. 2.101 (Oct. 1995), consisting of ``commercial computer software'' and + ``commercial computer software documentation,'' as such terms are used in 48 + C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. + 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users + acquire Covered Code with only those rights set forth herein. +11. MISCELLANEOUS. + This License represents the complete agreement concerning subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. This License shall be governed by California law provisions + (except to the extent applicable law, if any, provides otherwise), excluding + its conflict-of-law provisions. With respect to disputes in which at least one + party is a citizen of, or an entity chartered or registered to do business in, + the United States of America: (a) unless otherwise agreed in writing, all + disputes relating to this License (excepting any dispute relating to + intellectual property rights) shall be subject to final and binding + arbitration, with the losing party paying all costs of arbitration; (b) any + arbitration relating to this Agreement shall be held in Santa Clara County, + California, under the auspices of JAMS/EndDispute; and (c) any litigation + relating to this Agreement shall be subject to the jurisdiction of the Federal + Courts of the Northern District of California, with venue lying in Santa Clara + County, California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys fees and expenses. + The application of the United Nations Convention on Contracts for the + International Sale of Goods is expressly excluded. Any law or regulation which + provides that the language of a contract shall be construed against the + drafter shall not apply to this License. +12. RESPONSIBILITY FOR CLAIMS. + Except in cases where another Contributor has failed to comply with Section + 3.4, You are responsible for damages arising, directly or indirectly, out of + Your utilization of rights under this License, based on the number of copies + of Covered Code you made available, the revenues you received from utilizing + such rights, and other relevant factors. You agree to work with affected + parties to distribute responsibility on an equitable basis. +EXHIBIT A. + ``The contents of this file are subject to the Mozilla Public License Version + 1.0 (the "License"); you may not use this file except in compliance with the + License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + the specific language governing rights and limitations under the License. + The Original Code is ______________________________________. + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + Contributor(s): ______________________________________.'' \ No newline at end of file diff --git a/rpms/legal/FOSS_licenses/thrift/ThriftSoftwareLicense.txt b/rpms/legal/FOSS_licenses/thrift/ThriftSoftwareLicense.txt new file mode 100755 index 0000000000..b38dd7b02f --- /dev/null +++ b/rpms/legal/FOSS_licenses/thrift/ThriftSoftwareLicense.txt @@ -0,0 +1,9 @@ +Thrift Software License + +Copyright © 2006- Facebook, Inc. + +Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. + +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, title and non-infringement. In no event shall the copyright holders or anyone distributing the software be liable for any damages or other liability, whether in contract, tort, or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software. diff --git a/rpms/legal/FOSS_licenses/wildfire/README.html b/rpms/legal/FOSS_licenses/wildfire/README.html new file mode 100755 index 0000000000..195fff0ff2 --- /dev/null +++ b/rpms/legal/FOSS_licenses/wildfire/README.html @@ -0,0 +1,249 @@ + + + + +Wildfire Readme + + + + +
+ + + + +
+ + +

+ + + + + + + + +
version:3.1.1
released:10/28/2006
+ +
+ +

+Thank you for downloading Wildfire! +

+Wildfire is an instant messaging (IM) and groupchat server that uses the +XMPP protocol. Start off by viewing the Wildfire Documentation +that can be found in the "documentation" directory included with this distribution. +

+Further information can be found on the +Wildfire website. + +

Changelog

+ +View the changelog for a list of changes since the +last release. + +

Support

+ +Free support is provided by the Wildfire community in the +online forums. Commercial +support (email and phone) from Jive Software is +also available. + +

License Agreements

+ +The Wildfire source code is governed by the GNU Public License (GPL), which +can be found in the LICENSE.html file in this distribution. +Wildfire also contains Open Source software from third-parties. +Licensing terms for those components is specifically noted in the relevant source +files.

+ +Wildfire contains icons and images licensed from INCORS GmbH. All other +images are owned by Jive Software. All icons and images in Wildfire +are provided under the following license agreement: + + +

+License Agreement
+
+This is a legal agreement between You, the User of the Wildfire application
+("The Software"), and Jive Software ("Jive Software"). By downloading the Software,
+you agree to be bound by the terms of this agreement.
+
+All ownership and copyright of the images and icons included in the Software
+distribution remain the property of Jive Software and INCORS GmbH. Jive Software
+grants to you a nonexclusive, non-sublicensable right to use the icons royalty-free
+as part of Wildfire.
+
+You may not lease, license or sub-license the icons, or a subset of the icons,
+or any modified icons to any third party. You may not incorporate them into your
+own software or design products.
+
+All icon files are provided "As is" without warranties of merchantability and
+fitness for a particular purpose. You agree to hold Jive Software harmless for
+any result that may occur during the course of using the licensed icons.
+
+This License Agreement shall be governed and construed in accordance with the
+laws of Oregon. If any provision of this License Agreement is held to be
+unenforceable, this License Agreement will remain in effect with the provision
+omitted.
+
+ + + + + +
+
+ + + \ No newline at end of file diff --git a/rpms/legal/FOSS_licenses/wildfire/license_wildfire.txt b/rpms/legal/FOSS_licenses/wildfire/license_wildfire.txt new file mode 100755 index 0000000000..9e56411dcd --- /dev/null +++ b/rpms/legal/FOSS_licenses/wildfire/license_wildfire.txt @@ -0,0 +1,344 @@ +Please see README.html for full licensing terms for Wildfire. + +--------------------------------------------------------------------- + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. +. + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) +. +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. +. + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. +. + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS +. + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + diff --git a/rpms/legal/FOSS_licenses/xmltask/LICENSE.txt b/rpms/legal/FOSS_licenses/xmltask/LICENSE.txt new file mode 100755 index 0000000000..df23760182 --- /dev/null +++ b/rpms/legal/FOSS_licenses/xmltask/LICENSE.txt @@ -0,0 +1,59 @@ +==================================================================== +The Apache Software License, Version 1.1 + +Copyright (c) 2000 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, + if any, must include the following acknowledgment: + "This product includes software developed by the + Apache Software Foundation (http://www.apache.org/)." + Alternately, this acknowledgment may appear in the software itself, + if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation" must + not be used to endorse or promote products derived from this + software without prior written permission. For written + permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache", + nor may "Apache" appear in their name, without prior written + permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR +ITS 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. +==================================================================== + +This software consists of voluntary contributions made by many +individuals on behalf of the Apache Software Foundation. For more +information on the Apache Software Foundation, please see +. + +Portions of this software are based upon public domain software +originally written at the National Center for Supercomputing Applications, +University of Illinois, Urbana-Champaign. + +mailto:xmltask@oopsconsultancy.com +http://www.oopsconsultancy.com/software/xmltask.html diff --git a/rpms/legal/Master Rights File.pdf b/rpms/legal/Master Rights File.pdf new file mode 100644 index 0000000000..97a1d90912 Binary files /dev/null and b/rpms/legal/Master Rights File.pdf differ diff --git a/rpms/legal/license.txt b/rpms/legal/license.txt new file mode 100644 index 0000000000..7d3bed9f2f --- /dev/null +++ b/rpms/legal/license.txt @@ -0,0 +1,17 @@ +This software was developed and / or modified by Raytheon Company, +pursuant to Contract DG133W-05-CQ-1067 with the US Government. + +U.S. EXPORT CONTROLLED TECHNICAL DATA +This software product contains export-restricted data whose +export/transfer/disclosure is restricted by U.S. law. Dissemination +to non-U.S. persons whether in the United States or abroad requires +an export license or other authorization. + +Contractor Name: Raytheon Company +Contractor Address: 6825 Pine Street, Suite 340 + Mail Stop B8 + Omaha, NE 68106 + 402.291.0100 + +See the AWIPS II Master Rights File ("Master Rights File.pdf") for +further licensing information. diff --git a/rpms/python.site-packages/Installer.cherrypy/component.spec b/rpms/python.site-packages/Installer.cherrypy/component.spec new file mode 100755 index 0000000000..013474e281 --- /dev/null +++ b/rpms/python.site-packages/Installer.cherrypy/component.spec @@ -0,0 +1,84 @@ +# +# AWIPS II Python cherrypy Site-Package Spec File +# +Name: awips2-python-cherrypy +Summary: AWIPS II Python cherrypy Site-Package +Version: 3.1.2 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-cherrypy +%define _docdir python.cherrypy + +%description +AWIPS II Python cherrypy Site-Package - Installs the AWIPS II Python +cherrypy Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/cherrypy" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/cherrypy" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python + +echo "/usr/share/doc/awips2/%{_docdir}" >> \ + %{_topdir}/BUILD/component-files.txt + +%pre +# Fix To Allow Upgrades +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python cherrypy Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python cherrypy Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python cherrypy Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.dynamicserialize/component.spec b/rpms/python.site-packages/Installer.dynamicserialize/component.spec new file mode 100644 index 0000000000..2634f06239 --- /dev/null +++ b/rpms/python.site-packages/Installer.dynamicserialize/component.spec @@ -0,0 +1,87 @@ +# +# AWIPS II Python dynamicserialize Site-Package Spec File +# +Name: awips2-python-dynamicserialize +Summary: AWIPS II Python dynamicserialize Site-Package +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-thrift +provides: awips2-python-dynamicserialize +%define _docdir python.dynamicserialize + +%description +AWIPS II Python dynamicserialize Site-Package - Installs the AWIPS II Python +dynamicserialize Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/python/lib/python2.7/site-packages/dynamicserialize + +%build + +%install + +SITE_PACKAGE_SRC_DIR="pythonPackages/dynamicserialize" + +# Copy our site-package source +cp -r ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR}/* \ + ${RPM_BUILD_ROOT}/awips2/python/lib/python2.7/site-packages/dynamicserialize + +cd ${RPM_BUILD_ROOT} + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python dynamicserialize Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python dynamicserialize Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python dynamicserialize Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.h5py/component.spec b/rpms/python.site-packages/Installer.h5py/component.spec new file mode 100644 index 0000000000..9304c00544 --- /dev/null +++ b/rpms/python.site-packages/Installer.h5py/component.spec @@ -0,0 +1,103 @@ +# +# AWIPS II Python h5py Site-Package Spec File +# +Name: awips2-python-h5py +Summary: AWIPS II Python h5py Site-Package +Version: 1.3.0 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-numpy +provides: awips2-python-h5py +%define _docdir python.h5py + +%description +AWIPS II Python h5py Site-Package - Installs the AWIPS II Python +h5py Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/h5py" + +HDF5_BINARY_TAR="hdf5-1.8.4-patch1-linux-shared.tar.gz" +HDF5_BINARY="Installer.rpm/python.site-packages/deploy.builder/pre-reqs/${HDF5_BINARY_TAR}" +# Need to get hdf5 binaries ... +cp ${WORKSPACE_DIR}/${HDF5_BINARY} ${RPM_BUILD_ROOT} + +cd ${RPM_BUILD_ROOT} +tar -xvf ${HDF5_BINARY_TAR} +rm -f ${HDF5_BINARY_TAR} + +HDF5_PATH="${RPM_BUILD_ROOT}/hdf5-1.8.4-patch1-linux-shared" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +# Run 'build' +${PYTHON_EXE} setup.py build --hdf5=${HDF5_PATH} +SC="$?" +if [ "${SC}" = "1" ]; then + exit 1 +fi + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/h5py" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python +SC="$?" +if [ "${SC}" = "1" ]; then + exit 1 +fi + +HDF5_PATH="${RPM_BUILD_ROOT}/hdf5-1.8.4-patch1-linux-shared" +rm -rf ${HDF5_PATH} + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python h5py Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python h5py Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python h5py Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.matplotlib/component.spec b/rpms/python.site-packages/Installer.matplotlib/component.spec new file mode 100644 index 0000000000..f302b80320 --- /dev/null +++ b/rpms/python.site-packages/Installer.matplotlib/component.spec @@ -0,0 +1,89 @@ +# +# AWIPS II Python matplotlib Site-Package Spec File +# +Name: awips2-python-matplotlib +Summary: AWIPS II Python matplotlib Site-Package +Version: 0.99.1.1 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-numpy +provides: awips2-python-matplotlib +%define _docdir python.matplotlib + +%description +AWIPS II Python matplotlib Site-Package - Installs the AWIPS II Python +matplotlib Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/matplotlib" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build +RC="$?" +if [ "${RC}" = "1" ]; then + exit 1 +fi + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/matplotlib" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python +RC="$?" +if [ "${RC}" = "1" ]; then + exit 1 +fi + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python matplotlib Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python matplotlib Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python matplotlib Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.nose/component.spec b/rpms/python.site-packages/Installer.nose/component.spec new file mode 100644 index 0000000000..8a05aff482 --- /dev/null +++ b/rpms/python.site-packages/Installer.nose/component.spec @@ -0,0 +1,86 @@ +# +# AWIPS II Python nose Site-Package Spec File +# +Name: awips2-python-nose +Summary: AWIPS II Python nose Site-Package +Version: 0.11.1 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-nose +%define _docdir python.nose + +%description +AWIPS II Python nose Site-Package - Installs the AWIPS II Python +nose Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/nose" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/nose" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +if [ -d /awips2/python/lib/python2.7/site-packages/nose-0.11.1-py2.7.egg-info ]; then + rm -rf /awips2/python/lib/python2.7/site-packages/nose-0.11.1-py2.7.egg-info +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python nose Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python nose Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python nose Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +/awips2/python/man/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.numpy/component.spec b/rpms/python.site-packages/Installer.numpy/component.spec new file mode 100644 index 0000000000..a9e86e106f --- /dev/null +++ b/rpms/python.site-packages/Installer.numpy/component.spec @@ -0,0 +1,96 @@ +# +# AWIPS II Python numpy Site-Package Spec File +# +Name: awips2-python-numpy +Summary: AWIPS II Python numpy Site-Package +Version: 1.5.0b1 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-numpy +%define _docdir python.numpy + +%description +AWIPS II Python numpy Site-Package - Installs the AWIPS II Python +numpy Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/numpy" +GNU_PY_FILE="deploy.builder/pre-reqs/gnu.py" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +#Overwrite the existing gnu.py File so that we will be able to +#do a 32-bit file. In the future, this will be conditional ... +rm -f numpy/distutils/fcompiler/gnu.py +cp ${WORKSPACE_DIR}/Installer.rpm/python.site-packages/${GNU_PY_FILE} \ + numpy/distutils/fcompiler/gnu.py +${PYTHON_EXE} setup.py build + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/numpy" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python numpy Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +PYTHON_INSTALL="/awips2/python" +PYTHON_PACKAGE_DIR=${PYTHON_INSTALL}/lib/python2.7/site-packages + +# chmod all "test*.py" files so that it will be possible to successfully run the unit +# tests to prove that the install was successful. +cd ${PYTHON_PACKAGE_DIR}/numpy +find . -name "test*.py" -exec chmod -x {} \; + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python numpy Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python numpy Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.pil/component.spec b/rpms/python.site-packages/Installer.pil/component.spec new file mode 100644 index 0000000000..e2ad111ad7 --- /dev/null +++ b/rpms/python.site-packages/Installer.pil/component.spec @@ -0,0 +1,88 @@ +# +# AWIPS II Python pil Site-Package Spec File +# +Name: awips2-python-pil +Summary: AWIPS II Python pil Site-Package +Version: 1.1.6 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-pil +%define _docdir python.pil + +%description +AWIPS II Python pil Site-Package - Installs the AWIPS II Python +pil Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/pil" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build +RC="$?" +if [ "${RC}" = "1" ]; then + exit 1 +fi + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/pil" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python +RC="$?" +if [ "${RC}" = "1" ]; then + exit 1 +fi + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python pil Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python pil Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python pil Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(-,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.pmw/component.spec b/rpms/python.site-packages/Installer.pmw/component.spec new file mode 100644 index 0000000000..ede2fd2161 --- /dev/null +++ b/rpms/python.site-packages/Installer.pmw/component.spec @@ -0,0 +1,95 @@ +# +# AWIPS II Python pmw Site-Package Spec File +# +Name: awips2-python-pmw +Summary: AWIPS II Python pmw Site-Package +Version: 1.3.2 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-pmw +%define _docdir python.pmw + +%description +AWIPS II Python pmw Site-Package - Installs the AWIPS II Python +pmw Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} +mkdir -p ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build + +%build +SITE_PACKAGE_TAR_DIR="pythonPackages/pmw" +SITE_PACKAGE_SRC="Pmw.1.3.2.tar.gz" +SITE_PACKAGE_SRC_DIR="Pmw.1.3.2" + +cp ${WORKSPACE_DIR}/${SITE_PACKAGE_TAR_DIR}/${SITE_PACKAGE_SRC} \ + ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build + +cd ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build +tar -xvf ${SITE_PACKAGE_SRC} +cd ${SITE_PACKAGE_SRC_DIR}/src +${PYTHON_EXE} setup.py build +RC="$?" +if [ ! "${RC}" = 0 ]; then + exit 1 +fi + +%install +SITE_PACKAGE_SRC_DIR="Pmw.1.3.2" + +cd ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build/${SITE_PACKAGE_SRC_DIR}/src + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python + +if [ -d ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build ]; then + rm -rf ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build +fi + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python pmw Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python pmw Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python pmw Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.pupynere/component.spec b/rpms/python.site-packages/Installer.pupynere/component.spec new file mode 100644 index 0000000000..6077a67621 --- /dev/null +++ b/rpms/python.site-packages/Installer.pupynere/component.spec @@ -0,0 +1,89 @@ +# +# AWIPS II Python pupynere Site-Package Spec File +# +Name: awips2-python-pupynere +Summary: AWIPS II Python pupynere Site-Package +Version: 1.0.13 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-numpy +provides: awips2-python-pupynere +%define _docdir python.pupynere + +%description +AWIPS II Python pupynere Site-Package - Installs the AWIPS II Python +pupynere Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/pupynere" +PREREQ_PACKAGE_SRC_DIR="pythonPackages/setuptools" + +# Build and install the pre-req setuptools +cd ${WORKSPACE_DIR}/${PREREQ_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build +${PYTHON_EXE} setup.py install + +# Build pupynere +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/pupynere" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python pupynere Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +PYTHON_INSTALL="/awips2/python" + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python pupynere Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python pupynere Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.pycairo/component.spec b/rpms/python.site-packages/Installer.pycairo/component.spec new file mode 100644 index 0000000000..b6254cc291 --- /dev/null +++ b/rpms/python.site-packages/Installer.pycairo/component.spec @@ -0,0 +1,89 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python pycairo Spec File +# +Name: awips2-python-pycairo +Summary: AWIPS II Python pycairo Distribution +Version: 1.2.2 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-pycairo + +%description +AWIPS II Python pycairo Site-Package. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +PYCAIRO_SRC_DIR="%{_python_pkgs_dir}/pycairo" +PYCAIRO_TAR="pycairo-1.2.2.tar.gz" + +cp -v ${PYCAIRO_SRC_DIR}/${PYCAIRO_TAR} \ + %{_build_root}/build-python +if [ $? -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${PYCAIRO_TAR} +if [ $? -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%build +pushd . > /dev/null +cd %{_build_root}/build-python/pycairo-1.2.2 +./configure --prefix=%{_build_root}/awips2/python +if [ $? -ne 0 ]; then + exit 1 +fi +make +if [ $? -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +pushd . > /dev/null +cd %{_build_root}/build-python/pycairo-1.2.2 +make install +if [ $? -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib +/awips2/python/lib/* +%dir /awips2/python/include +/awips2/python/include/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.pygtk/component.spec b/rpms/python.site-packages/Installer.pygtk/component.spec new file mode 100644 index 0000000000..2d0c1e8492 --- /dev/null +++ b/rpms/python.site-packages/Installer.pygtk/component.spec @@ -0,0 +1,95 @@ +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%define _python_pkgs_dir "%{_baseline_workspace}/pythonPackages" + +# +# AWIPS II Python pygtk Spec File +# +Name: awips2-python-pygtk +Summary: AWIPS II Python pygtk Distribution +Version: 2.8.6 +Release: 1 +Group: AWIPSII +BuildRoot: %{_build_root} +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +requires: awips2-python-pycairo +provides: awips2-python-pygtk + +%description +AWIPS II Python pygtk Site-Package. + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +PYGTK_SRC_DIR="%{_python_pkgs_dir}/pygtk" +PYGTK_TAR="pygtk-2.8.6.tar.gz" + +cp -v ${PYGTK_SRC_DIR}/${PYGTK_TAR} \ + %{_build_root}/build-python +if [ $? -ne 0 ]; then + exit 1 +fi + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${PYGTK_TAR} +if [ $? -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%build +pushd . > /dev/null +cd %{_build_root}/build-python/pygtk-2.8.6 +./configure --prefix=%{_build_root}/awips2/python +if [ $? -ne 0 ]; then + exit 1 +fi +make +if [ $? -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +%install +pushd . > /dev/null +cd %{_build_root}/build-python/pygtk-2.8.6 +make install +if [ $? -ne 0 ]; then + exit 1 +fi +popd > /dev/null + +rm -rf %{_build_root}/build-python + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +%dir /awips2/python/lib +/awips2/python/lib/* +%dir /awips2/python/include +/awips2/python/include/* +%dir /awips2/python/share +/awips2/python/share/* +%defattr(755,awips,fxalpha,755) +%dir /awips2/python/bin +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.qpid/component.spec b/rpms/python.site-packages/Installer.qpid/component.spec new file mode 100644 index 0000000000..b9051e5fa8 --- /dev/null +++ b/rpms/python.site-packages/Installer.qpid/component.spec @@ -0,0 +1,118 @@ +# spec file + +Summary: python client commands for a qpid cluster +Name: awips2-python-qpid +Version: 0.6 +Release: 3 +License: APL +Group: AWIPSII +BuildRoot: %{_build_root} +Vendor: Raytheon +Packager: John Clark +AutoReq: no +requires: awips2-python +provides: awips2-python-qpid + +%description +Python command line tools to manage Qpid built with cluster support + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "%{_build_root}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +rm -rf %{_build_root} +mkdir -p %{_build_root} +mkdir -p %{_build_root}/build-python + +SRC_TAR_DIR="${WORKSPACE_DIR}/pythonPackages/qpid" +SRC_TAR="qpid-0.6.tar.gz" +SRC_BIN_DIR="${SRC_TAR_DIR}/bin" + +cp -v ${SRC_TAR_DIR}/${SRC_TAR} \ + %{_build_root}/build-python +if [ $? -ne 0 ]; then + exit 1 +fi + + +pushd . > /dev/null +cd %{_build_root}/build-python +tar -xvf ${SRC_TAR} +if [ $? -ne 0 ]; then + exit 1 +fi +cp -v ${SRC_BIN_DIR}/* \ + %{_build_root}/build-python/qpid-0.6/python/commands +if [ $? -ne 0 ]; then + exit 1 +fi +rm -fv ${SRC_TAR} +if [ $? -ne 0 ]; then + exit 1 +fi + +%build +# NOTE: python setup.py install -- the install is broken, +# because the amqp dtd/xml didn't get handled correctly +# that is why I am using the make build and doing the cleanup in post +cd %{_build_root}/build-python/qpid-0.6/python/ +make build PREFIX=%{prefix} +if [ $? -ne 0 ]; then + exit 1 +fi + +%install +cd %{_build_root}/build-python/qpid-0.6/python/ +make install PREFIX=%{_build_root}/awips2/python +if [ $? -ne 0 ]; then + exit 1 +fi +# none of the amqp spec got installed correctly +# to resolve this manually copy the amqp dtd/xml data +mkdir -p %{_build_root}/awips2/python/share/amqp +cp -rp %{_build_root}/build-python/qpid-0.6/specs/* \ + %{_build_root}/awips2/python/share/amqp/ +if [ $? -ne 0 ]; then + exit 1 +fi + +rm -rf %{_build_root}/build-python +if [ $? -ne 0 ]; then + exit 1 +fi + +%pre + +%post +# get the path to the awips2-python that is installed +PYDIR="/awips2/python" + +# get the python version so we can fix the amqp xml/dtd +PYTHON_VERSION=$( LD_LIBRARY_PATH=${PYDIR}/lib ${PYDIR}/bin/python -c "from distutils.sysconfig import get_python_version; print get_python_version()" ) +# the file ${RPM_INSTALL_PREFIX}/lib/python$PYTHON_VERSION/site-packages/qpid_config.py is wrong +# this substitution will put the correct path in the file qpid_config.py +# otherwise it will generate AMQP errors when run, it won't find the directory +sed -i "s|^AMQP_SPEC_DIR=.*/share/amqp\"|AMQP_SPEC_DIR=\"${PYDIR}/share/amqp\"|g" \ +${PYDIR}/lib/python${PYTHON_VERSION}/site-packages/qpid_config.py + +%preun + +%postun + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +/awips2/python/share/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.scientific/component.spec b/rpms/python.site-packages/Installer.scientific/component.spec new file mode 100644 index 0000000000..6ff2d7b8ef --- /dev/null +++ b/rpms/python.site-packages/Installer.scientific/component.spec @@ -0,0 +1,91 @@ +# +# AWIPS II Python scientific Site-Package Spec File +# +Name: awips2-python-scientific +Summary: AWIPS II Python scientific Site-Package +Version: 2.8 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-scientific +%define _docdir python.scientific + +%description +AWIPS II Python scientific Site-Package - Installs the AWIPS II Python +scientific Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/scientific" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +export NETCDF_PREFIX=/awips2/python +${PYTHON_EXE} setup.py build +SC="$?" +if [ "${SC}" = "1" ]; then + exit 1 +fi + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/scientific" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python +SC="$?" +if [ "${SC}" = "1" ]; then + exit 1 +fi + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python scientific Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python scientific Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python scientific Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +/awips2/python/include/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.scipy/component.spec b/rpms/python.site-packages/Installer.scipy/component.spec new file mode 100644 index 0000000000..25e6e5a21a --- /dev/null +++ b/rpms/python.site-packages/Installer.scipy/component.spec @@ -0,0 +1,108 @@ +# +# AWIPS II Python scipy Site-Package Spec File +# +Name: awips2-python-scipy +Summary: AWIPS II Python scipy Site-Package +Version: 0.8.0 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-numpy +provides: awips2-python-scipy +%define _docdir python.scipy + +%description +AWIPS II Python scipy Site-Package - Installs the AWIPS II Python +scipy Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/scipy" + +export BLAS=/awips2/python/lib +export LAPACK=/awips2/python/lib + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build +SC="$?" +if [ "${SC}" = "1" ]; then + exit 1 +fi + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/scipy" +GNU_PY_FILE="deploy.builder/pre-reqs/gnu.py" + +export BLAS=/awips2/python/lib +export LAPACK=/awips2/python/lib +#Overwrite the existing gnu.py File so that we will be able to +#do a 32-bit file. In the future, this will be conditional ... +rm -f /awips2/python/lib/.site-packages/numpy/distutils/fcompiler/gnu.py +cp ${WORKSPACE_DIR}/Installer.rpm/python.site-packages/${GNU_PY_FILE} \ + /awips2/python/lib/.site-packages/numpy/distutils/fcompiler/ + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python +SC="$?" +if [ "${SC}" = "1" ]; then + exit 1 +fi + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python scipy Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +PYTHON_INSTALL="/awips2/python" +PYTHON_PACKAGE_DIR=${PYTHON_INSTALL}/lib/python2.7/site-packages + +# chmod all "test*.py" files so that it will be possible to successfully run the unit +# tests to prove that the install was successful. +cd ${PYTHON_PACKAGE_DIR}/scipy +find . -name "test*.py" -exec chmod -x {} \; + +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python scipy Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +# Remove the component directory from site-packages +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python scipy Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.tables/component.spec b/rpms/python.site-packages/Installer.tables/component.spec new file mode 100644 index 0000000000..9e99752031 --- /dev/null +++ b/rpms/python.site-packages/Installer.tables/component.spec @@ -0,0 +1,122 @@ +# +# AWIPS II Python tables Site-Package Spec File +# +Name: awips2-python-tables +Summary: AWIPS II Python tables Site-Package +Version: 2.1.2 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-numpy +provides: awips2-python-tables +%define _docdir python.tables + +%description +AWIPS II Python tables Site-Package - Installs the AWIPS II Python +tables Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} +if [ -d ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build ]; then + rm -rf ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build +fi +mkdir -p ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build + +%build +SITE_PACKAGE_TAR_DIR="pythonPackages/tables" +SITE_PACKAGE_SRC="tables-2.1.2.tar.gz" +SITE_PACKAGE_SRC_DIR="tables-2.1.2" + +HDF5_BINARY_TAR="hdf5-1.8.4-patch1-linux-shared.tar.gz" +HDF5_BINARY="Installer.rpm/python.site-packages/deploy.builder/pre-reqs/${HDF5_BINARY_TAR}" +# Need to get hdf5 binaries ... +cp ${WORKSPACE_DIR}/${HDF5_BINARY} ${RPM_BUILD_ROOT} + +cd ${RPM_BUILD_ROOT} +tar -xvf ${HDF5_BINARY_TAR} +rm -f ${HDF5_BINARY_TAR} + +HDF5_PATH="${RPM_BUILD_ROOT}/hdf5-1.8.4-patch1-linux-shared" + +cp ${WORKSPACE_DIR}/${SITE_PACKAGE_TAR_DIR}/${SITE_PACKAGE_SRC} \ + ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build +# untar our sources file. +cd ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build +tar -xvf ${SITE_PACKAGE_SRC} + +cd ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build +# Remove the tar file +rm -f ${SITE_PACKAGE_SRC} +cd tables-2.1.2 +export HDF5_DIR=${HDF5_PATH} +# Run 'build' +${PYTHON_EXE} setup.py build_ext --inplace +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +%install +HDF5_PATH="${RPM_BUILD_ROOT}/hdf5-1.8.4-patch1-linux-shared" + +cd ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build/tables-2.1.2 +export HDF5_DIR=${HDF5_PATH} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python +RC="$?" +if [ ! "${RC}" = "0" ]; then + exit 1 +fi + +HDF5_PATH="${RPM_BUILD_ROOT}/hdf5-1.8.4-patch1-linux-shared" +rm -rf ${HDF5_PATH} +rm -rf ${RPM_BUILD_ROOT}/tmp/awips2-python-${USER}/python-build + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python tables Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python tables Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python tables Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.thrift/component.spec b/rpms/python.site-packages/Installer.thrift/component.spec new file mode 100644 index 0000000000..1db618f5a3 --- /dev/null +++ b/rpms/python.site-packages/Installer.thrift/component.spec @@ -0,0 +1,74 @@ +# +# AWIPS II Python thrift Site-Package Spec File +# +Name: awips2-python-thrift +Summary: AWIPS II Python thrift Site-Package +Version: 20080411p1 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-thrift +%define _docdir python.thrift + +%description +AWIPS II Python thrift Site-Package - Installs the AWIPS II Python +thrift Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/python/lib/python2.7/site-packages/thrift + +%build + +%install + +SITE_PACKAGE_SRC_DIR="pythonPackages/thrift" + +# Copy our site-package source +cp -r ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR}/* \ + ${RPM_BUILD_ROOT}//awips2/python/lib/python2.7/site-packages/thrift + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python thrift Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python thrift Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python thrift Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.tpg/component.spec b/rpms/python.site-packages/Installer.tpg/component.spec new file mode 100644 index 0000000000..2b99be23c1 --- /dev/null +++ b/rpms/python.site-packages/Installer.tpg/component.spec @@ -0,0 +1,95 @@ +# +# AWIPS II Python tpg Site-Package Spec File +# +Name: awips2-python-tpg +Summary: AWIPS II Python tpg Site-Package +Version: 3.1.2 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-tpg +%define _docdir python.tpg + +%description +AWIPS II Python tpg Site-Package - Installs the AWIPS II Python +tpg Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} +mkdir -p ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build + +%build +SITE_PACKAGE_TAR_DIR="pythonPackages/tpg" +SITE_PACKAGE_SRC="TPG-3.1.2.tar.gz" +SITE_PACKAGE_SRC_DIR="TPG-3.1.2" + +cp ${WORKSPACE_DIR}/${SITE_PACKAGE_TAR_DIR}/${SITE_PACKAGE_SRC} \ + ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build + +cd ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build +tar -xvf ${SITE_PACKAGE_SRC} +cd ${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build +RC="$?" +if [ ! "${RC}" = 0 ]; then + exit 1 +fi + +%install +SITE_PACKAGE_SRC_DIR="TPG-3.1.2" + +cd ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python +rm -rf ${RPM_BUILD_ROOT}/tmp/awips2-python/python-build + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python tpg Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python tpg Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python tpg Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* +%defattr(755,awips,fxalpha,755) +/awips2/python/bin/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.ufpy/component.spec b/rpms/python.site-packages/Installer.ufpy/component.spec new file mode 100644 index 0000000000..a961c93cb2 --- /dev/null +++ b/rpms/python.site-packages/Installer.ufpy/component.spec @@ -0,0 +1,84 @@ +# +# AWIPS II Python ufpy Site-Package Spec File +# +Name: awips2-python-ufpy +Summary: AWIPS II Python ufpy Site-Package +Version: %{_component_version} +Release: %{_component_release} +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-ufpy +%define _docdir python.ufpy + +%description +AWIPS II Python ufpy Site-Package - Installs the AWIPS II Python +ufpy Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT}/awips2/python/lib/python2.7/site-packages/ufpy + +%build + +%install + +SITE_PACKAGE_SRC_DIR="pythonPackages/ufpy" + +# Copy our site-package source +cp -r ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR}/* \ + ${RPM_BUILD_ROOT}/awips2/python/lib/python2.7/site-packages/ufpy + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +if [ "${1}" = "2" ]; then + exit 0 +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python ufpy Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +if [ "${1}" = "2" ]; then + exit 0 +fi +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python ufpy Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +if [ "${1}" = "1" ]; then + exit 0 +fi +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python ufpy Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/Installer.werkzeug/component.spec b/rpms/python.site-packages/Installer.werkzeug/component.spec new file mode 100644 index 0000000000..ca7c59e2c5 --- /dev/null +++ b/rpms/python.site-packages/Installer.werkzeug/component.spec @@ -0,0 +1,82 @@ +# +# AWIPS II Python werkzeug Site-Package Spec File +# +Name: awips2-python-werkzeug +Summary: AWIPS II Python werkzeug Site-Package +Version: 0.6.2 +Release: 2 +Group: AWIPSII +BuildRoot: /tmp +URL: N/A +License: N/A +Distribution: N/A +Vendor: Raytheon +Packager: Bryan Kowal + +AutoReq: no +requires: awips2-python +provides: awips2-python-werkzeug +%define _docdir python.werkzeug + +%description +AWIPS II Python werkzeug Site-Package - Installs the AWIPS II Python +werkzeug Site-Package in the Python installation. + +# Turn off the brp-python-bytecompile script +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +%prep +# Verify That The User Has Specified A BuildRoot. +if [ "${RPM_BUILD_ROOT}" = "/tmp" ] +then + echo "An Actual BuildRoot Must Be Specified. Use The --buildroot Parameter." + echo "Unable To Continue ... Terminating" + exit 1 +fi + +mkdir -p ${RPM_BUILD_ROOT} + +%build +SITE_PACKAGE_SRC_DIR="pythonPackages/werkzeug" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} +${PYTHON_EXE} setup.py build + +%install +SITE_PACKAGE_SRC_DIR="pythonPackages/werkzeug" + +cd ${WORKSPACE_DIR}/${SITE_PACKAGE_SRC_DIR} + +${PYTHON_EXE} setup.py install --root=${RPM_BUILD_ROOT} \ + --prefix=/awips2/python + +%pre +if [ -d /usr/share/doc/awips2/%{_docdir} ]; then + rm -rf /usr/share/doc/awips2/%{_docdir} +fi + +if [ -d /awips2/python/lib/python2.7/site-packages/Werkzeug-0.6.2-py2.7.egg-info ]; then + rm -rf /awips2/python/lib/python2.7/site-packages/Werkzeug-0.6.2-py2.7.egg-info +fi +PYTHON_INSTALL="/awips2/python" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| Installing the AWIPS II Python werkzeug Site-Package...\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m Python Install Root = ${PYTHON_INSTALL}\e[m" + +%post +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;32m\| AWIPS II Python werkzeug Site-Package Installation - COMPLETE\e[m" +echo -e "\e[1;32m--------------------------------------------------------------------------------\e[m" + +%preun + +%postun +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo -e "\e[1;34m\| The AWIPS II Python werkzeug Site-Package Has Been Successfully Removed\e[m" +echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m" +echo "" + +%files +%defattr(644,awips,fxalpha,755) +/awips2/python/lib/python2.7/site-packages/* \ No newline at end of file diff --git a/rpms/python.site-packages/deploy.builder/build.sh b/rpms/python.site-packages/deploy.builder/build.sh new file mode 100755 index 0000000000..0dee9195e0 --- /dev/null +++ b/rpms/python.site-packages/deploy.builder/build.sh @@ -0,0 +1,101 @@ +#!/bin/bash +# We Have Been Created To Automate The Building Of The AWIPS II Python Site-Package RPMs. + +# !! NOTE !! - We Assume That We Are In A Workspace With The Installer Projects +# And The pythonPackages Project. +export WORKSPACE_DIR=`cd ../../../; pwd;` +export RPM_SITE_PACKAGE_LOG_FILE="rpm-build.log" + +source ${WORKSPACE_DIR}/Installer.rpm/awips2.core/deploy.builder/env.sh + +if [ "${RPM_TOP_DIR}" = "" ]; then + echo "ERROR: You Must Set The RPM_TOP_DIR Environment Variable." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +export AWIPSII_VERSION=`cat ${WORKSPACE_DIR}/Installer.rpm/version.txt` +export AWIPSII_RELEASE=`date +"%Y%m%d"` + +export CPPFLAGS="-m32" +export PYTHON_EXE="/awips2/python/bin/python" +export LD_LIBRARY_PATH="/awips2/python/lib" + +# Just In Case python-devel 2.7 is not installed. scipy ignored +# C++ environment flags. +if [ ! -f /usr/local/lib/libpython2.7.so ]; then + # We use to create this; but, we cannot create it as tomcat. + + # Without this, we will not be able to build every python site-package. + echo "ERROR: There Is No lpython2.7 In /usr/local/lib." + echo "Unable To Continue ... Terminating." + exit 1 +fi + +# Arguments +# ${1} == The Directory With The Specs File And Possibly Other Custom +# Scripts That May Need To Be Merged Into A Component. +function buildRPM() +{ + export BUILDROOT_DIR=/tmp/awips-component + + COMPONENT_DIR=${1} + COMPONENT_SPECS=${COMPONENT_DIR}/component.spec + + # We Need To Delete The 'BuildRoot' Directory After Each RPM Is + # Built Whether The Build Is Successful Or Not. + rm -rf ${BUILDROOT_DIR} + + # We Build The List Of Files That Need To Be Installed On-Demand Now. + # If One Exists From A Previous Build, Delete It. + if [ -f ${RPM_TOP_DIR}/BUILD/component-files.txt ]; then + rm -f ${RPM_TOP_DIR}/BUILD/component-files.txt + fi + + # Build The RPM. + rpmbuild -ba --target=i386 \ + --define '_build_root %(echo ${BUILDROOT_DIR})' \ + --define '_component_version %(echo ${AWIPSII_VERSION})' \ + --define '_component_release %(echo ${AWIPSII_RELEASE})' \ + --define '_topdir %(echo ${RPM_TOP_DIR})' \ + --buildroot ${BUILDROOT_DIR} ${COMPONENT_SPECS} + RC="$?" + if [ ! "${RC}" = "0" ]; then + if [ "${COMPONENT_DIR}" = "Installer.dynamciserialize" ] || + [ "${COMPONENT_DIR}" = "Installer.ufpy" ]; then + echo "" + echo "ERROR: Unable To Build The RPM Defined In: ${COMPONENT_DIR}." + echo "Unable To Continue ... Terminating." + exit 1 + fi + fi +} + +function logSuccessOrFailure() +{ + RC="${1}" + RPM_COMPONENT="${2}" + + if [ "${RC}" = "0" ]; then + echo "SUCCESS: ${RPM_COMPONENT}" >> ${RPM_SITE_PACKAGE_LOG_FILE} + else + echo "FAILURE: ${RPM_COMPONENT}" >> ${RPM_SITE_PACKAGE_LOG_FILE} + fi +} + + + +# Note: Presently, We Are In ../../../python.site-packages/deploy.builder + +# Adjust Our Execution Position. +cd ../ + +if [ -f ${RPM_SITE_PACKAGE_LOG_FILE} ]; then + rm -f ${RPM_SITE_PACKAGE_LOG_FILE} +fi +touch ${RPM_SITE_PACKAGE_LOG_FILE} + +# For Now, We Will Only Build The Important RPMs. Will Add An Env Flag That Can Be +# Set To Force A Build Of Everything. +buildRPM "Installer.ufpy" +buildRPM "Installer.dynamicserialize" diff --git a/rpms/python.site-packages/deploy.builder/pre-reqs/gnu.py b/rpms/python.site-packages/deploy.builder/pre-reqs/gnu.py new file mode 100644 index 0000000000..f2ae17fadd --- /dev/null +++ b/rpms/python.site-packages/deploy.builder/pre-reqs/gnu.py @@ -0,0 +1,361 @@ +import re +import os +import sys +import warnings +import platform +import tempfile +from subprocess import Popen, PIPE, STDOUT + +from numpy.distutils.cpuinfo import cpu +from numpy.distutils.fcompiler import FCompiler +from numpy.distutils.exec_command import exec_command +from numpy.distutils.misc_util import msvc_runtime_library +from numpy.distutils.compat import get_exception + +compilers = ['GnuFCompiler', 'Gnu95FCompiler'] + +TARGET_R = re.compile("Target: ([a-zA-Z0-9_\-]*)") + +# XXX: handle cross compilation +def is_win64(): + return sys.platform == "win32" and platform.architecture()[0] == "64bit" + +if is_win64(): + #_EXTRAFLAGS = ["-fno-leading-underscore"] + _EXTRAFLAGS = [] +else: + _EXTRAFLAGS = [] + +class GnuFCompiler(FCompiler): + compiler_type = 'gnu' + compiler_aliases = ('g77',) + description = 'GNU Fortran 77 compiler' + + def gnu_version_match(self, version_string): + """Handle the different versions of GNU fortran compilers""" + m = re.match(r'GNU Fortran', version_string) + if not m: + return None + m = re.match(r'GNU Fortran\s+95.*?([0-9-.]+)', version_string) + if m: + return ('gfortran', m.group(1)) + m = re.match(r'GNU Fortran.*?([0-9-.]+)', version_string) + if m: + v = m.group(1) + if v.startswith('0') or v.startswith('2') or v.startswith('3'): + # the '0' is for early g77's + return ('g77', v) + else: + # at some point in the 4.x series, the ' 95' was dropped + # from the version string + return ('gfortran', v) + + def version_match(self, version_string): + v = self.gnu_version_match(version_string) + if not v or v[0] != 'g77': + return None + return v[1] + + # 'g77 --version' results + # SunOS: GNU Fortran (GCC 3.2) 3.2 20020814 (release) + # Debian: GNU Fortran (GCC) 3.3.3 20040110 (prerelease) (Debian) + # GNU Fortran (GCC) 3.3.3 (Debian 20040401) + # GNU Fortran 0.5.25 20010319 (prerelease) + # Redhat: GNU Fortran (GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) + # GNU Fortran (GCC) 3.4.2 (mingw-special) + + possible_executables = ['g77', 'f77'] + executables = { + 'version_cmd' : [None, "--version"], + 'compiler_f77' : [None, "-g", "-Wall -m32", "-fno-second-underscore"], + 'compiler_f90' : None, # Use --fcompiler=gnu95 for f90 codes + 'compiler_fix' : None, + 'linker_so' : [None, "-g", "-Wall"], + 'archiver' : ["ar", "-cr"], + 'ranlib' : ["ranlib"], + 'linker_exe' : [None, "-g", "-Wall"] + } + module_dir_switch = None + module_include_switch = None + + # Cygwin: f771: warning: -fPIC ignored for target (all code is + # position independent) + if os.name != 'nt' and sys.platform != 'cygwin': + pic_flags = ['-fPIC'] + + # use -mno-cygwin for g77 when Python is not Cygwin-Python + if sys.platform == 'win32': + for key in ['version_cmd', 'compiler_f77', 'linker_so', 'linker_exe']: + executables[key].append('-mno-cygwin') + + g2c = 'g2c' + + suggested_f90_compiler = 'gnu95' + + #def get_linker_so(self): + # # win32 linking should be handled by standard linker + # # Darwin g77 cannot be used as a linker. + # #if re.match(r'(darwin)', sys.platform): + # # return + # return FCompiler.get_linker_so(self) + + def get_flags_linker_so(self): + opt = self.linker_so[1:] + if sys.platform=='darwin': + target = os.environ.get('MACOSX_DEPLOYMENT_TARGET', None) + # If MACOSX_DEPLOYMENT_TARGET is set, we simply trust the value + # and leave it alone. But, distutils will complain if the + # environment's value is different from the one in the Python + # Makefile used to build Python. We let disutils handle this + # error checking. + if not target: + # If MACOSX_DEPLOYMENT_TARGET is not set in the environment, + # we try to get it first from the Python Makefile and then we + # fall back to setting it to 10.3 to maximize the set of + # versions we can work with. This is a reasonable default + # even when using the official Python dist and those derived + # from it. + import distutils.sysconfig as sc + g = {} + filename = sc.get_makefile_filename() + sc.parse_makefile(filename, g) + target = g.get('MACOSX_DEPLOYMENT_TARGET', '10.3') + os.environ['MACOSX_DEPLOYMENT_TARGET'] = target + if target == '10.3': + s = 'Env. variable MACOSX_DEPLOYMENT_TARGET set to 10.3' + warnings.warn(s) + + opt.extend(['-undefined', 'dynamic_lookup', '-bundle']) + else: + opt.append("-shared") + if sys.platform.startswith('sunos'): + # SunOS often has dynamically loaded symbols defined in the + # static library libg2c.a The linker doesn't like this. To + # ignore the problem, use the -mimpure-text flag. It isn't + # the safest thing, but seems to work. 'man gcc' says: + # ".. Instead of using -mimpure-text, you should compile all + # source code with -fpic or -fPIC." + opt.append('-mimpure-text') + return opt + + def get_libgcc_dir(self): + status, output = exec_command(self.compiler_f77 + + ['-print-libgcc-file-name'], + use_tee=0) + if not status: + return os.path.dirname(output) + return None + + def get_library_dirs(self): + opt = [] + if sys.platform[:5] != 'linux': + d = self.get_libgcc_dir() + if d: + # if windows and not cygwin, libg2c lies in a different folder + if sys.platform == 'win32' and not d.startswith('/usr/lib'): + d = os.path.normpath(d) + if not os.path.exists(os.path.join(d, "lib%s.a" % self.g2c)): + d2 = os.path.abspath(os.path.join(d, + '../../../../lib')) + if os.path.exists(os.path.join(d2, "lib%s.a" % self.g2c)): + opt.append(d2) + opt.append(d) + return opt + + def get_libraries(self): + opt = [] + d = self.get_libgcc_dir() + if d is not None: + g2c = self.g2c + '-pic' + f = self.static_lib_format % (g2c, self.static_lib_extension) + if not os.path.isfile(os.path.join(d,f)): + g2c = self.g2c + else: + g2c = self.g2c + + if g2c is not None: + opt.append(g2c) + c_compiler = self.c_compiler + if sys.platform == 'win32' and c_compiler and \ + c_compiler.compiler_type=='msvc': + # the following code is not needed (read: breaks) when using MinGW + # in case want to link F77 compiled code with MSVC + opt.append('gcc') + runtime_lib = msvc_runtime_library() + if runtime_lib: + opt.append(runtime_lib) + if sys.platform == 'darwin': + opt.append('cc_dynamic') + return opt + + def get_flags_debug(self): + return ['-g'] + + def get_flags_opt(self): + v = self.get_version() + if v and v<='3.3.3': + # With this compiler version building Fortran BLAS/LAPACK + # with -O3 caused failures in lib.lapack heevr,syevr tests. + opt = ['-O2'] + else: + opt = ['-O3'] + opt.append('-funroll-loops') + return opt + + def get_flags_arch(self): + return [] + +class Gnu95FCompiler(GnuFCompiler): + compiler_type = 'gnu95' + compiler_aliases = ('gfortran',) + description = 'GNU Fortran 95 compiler' + + def version_match(self, version_string): + v = self.gnu_version_match(version_string) + if not v or v[0] != 'gfortran': + return None + return v[1] + + # 'gfortran --version' results: + # XXX is the below right? + # Debian: GNU Fortran 95 (GCC 4.0.3 20051023 (prerelease) (Debian 4.0.2-3)) + # GNU Fortran 95 (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) + # OS X: GNU Fortran 95 (GCC) 4.1.0 + # GNU Fortran 95 (GCC) 4.2.0 20060218 (experimental) + # GNU Fortran (GCC) 4.3.0 20070316 (experimental) + + possible_executables = ['gfortran', 'f95'] + executables = { + 'version_cmd' : ["", "--version"], + 'compiler_f77' : [None, "-Wall -m32", "-ffixed-form", + "-fno-second-underscore"] + _EXTRAFLAGS, + 'compiler_f90' : [None, "-Wall -m32", "-fno-second-underscore"] + _EXTRAFLAGS, + 'compiler_fix' : [None, "-Wall -m32", "-ffixed-form", + "-fno-second-underscore"] + _EXTRAFLAGS, + 'linker_so' : ["", "-Wall"], + 'archiver' : ["ar", "-cr"], + 'ranlib' : ["ranlib"], + 'linker_exe' : [None, "-Wall"] + } + + # use -mno-cygwin flag for g77 when Python is not Cygwin-Python + if sys.platform == 'win32': + for key in ['version_cmd', 'compiler_f77', 'compiler_f90', + 'compiler_fix', 'linker_so', 'linker_exe']: + executables[key].append('-mno-cygwin') + + module_dir_switch = '-J' + module_include_switch = '-I' + + g2c = 'gfortran -m32' + + def _universal_flags(self, cmd): + """Return a list of -arch flags for every supported architecture.""" + if not sys.platform == 'darwin': + return [] + arch_flags = [] + for arch in ["ppc", "i686", "x86_64", "ppc64"]: + if _can_target(cmd, arch): + arch_flags.extend(["-arch", arch]) + return arch_flags + + def get_flags(self): + flags = GnuFCompiler.get_flags(self) + arch_flags = self._universal_flags(self.compiler_f90) + if arch_flags: + flags[:0] = arch_flags + return flags + + def get_flags_linker_so(self): + flags = GnuFCompiler.get_flags_linker_so(self) + arch_flags = self._universal_flags(self.linker_so) + if arch_flags: + flags[:0] = arch_flags + return flags + + def get_library_dirs(self): + opt = GnuFCompiler.get_library_dirs(self) + if sys.platform == 'win32': + c_compiler = self.c_compiler + if c_compiler and c_compiler.compiler_type == "msvc": + target = self.get_target() + if target: + d = os.path.normpath(self.get_libgcc_dir()) + root = os.path.join(d, os.pardir, os.pardir, os.pardir, os.pardir) + mingwdir = os.path.normpath(os.path.join(root, target, "lib")) + full = os.path.join(mingwdir, "libmingwex.a") + if os.path.exists(full): + opt.append(mingwdir) + return opt + + def get_libraries(self): + opt = GnuFCompiler.get_libraries(self) + if sys.platform == 'darwin': + opt.remove('cc_dynamic') + if sys.platform == 'win32': + c_compiler = self.c_compiler + if c_compiler and c_compiler.compiler_type == "msvc": + if "gcc" in opt: + i = opt.index("gcc") + opt.insert(i+1, "mingwex") + opt.insert(i+1, "mingw32") + # XXX: fix this mess, does not work for mingw + if is_win64(): + c_compiler = self.c_compiler + if c_compiler and c_compiler.compiler_type == "msvc": + return [] + else: + raise NotImplementedError("Only MS compiler supported with gfortran on win64") + return opt + + def get_target(self): + status, output = exec_command(self.compiler_f77 + + ['-v'], + use_tee=0) + if not status: + m = TARGET_R.search(output) + if m: + return m.group(1) + return "" + + def get_flags_opt(self): + if is_win64(): + return ['-O0'] + else: + return GnuFCompiler.get_flags_opt(self) + +def _can_target(cmd, arch): + """Return true is the command supports the -arch flag for the given + architecture.""" + newcmd = cmd[:] + fid, filename = tempfile.mkstemp(suffix=".f") + try: + d = os.path.dirname(filename) + output = os.path.splitext(filename)[0] + ".o" + try: + newcmd.extend(["-arch", arch, "-c", filename]) + p = Popen(newcmd, stderr=STDOUT, stdout=PIPE, cwd=d) + p.communicate() + return p.returncode == 0 + finally: + if os.path.exists(output): + os.remove(output) + finally: + os.remove(filename) + return False + +if __name__ == '__main__': + from distutils import log + log.set_verbosity(2) + compiler = GnuFCompiler() + compiler.customize() + print(compiler.get_version()) + raw_input('Press ENTER to continue...') + try: + compiler = Gnu95FCompiler() + compiler.customize() + print(compiler.get_version()) + except Exception: + msg = get_exception() + print(msg) + raw_input('Press ENTER to continue...') diff --git a/rpms/python.site-packages/deploy.builder/pre-reqs/hdf5-1.8.4-patch1-linux-shared.tar.gz b/rpms/python.site-packages/deploy.builder/pre-reqs/hdf5-1.8.4-patch1-linux-shared.tar.gz new file mode 100644 index 0000000000..52f4f53b3d Binary files /dev/null and b/rpms/python.site-packages/deploy.builder/pre-reqs/hdf5-1.8.4-patch1-linux-shared.tar.gz differ diff --git a/rpms/utility/scripts/textWS.sh b/rpms/utility/scripts/textWS.sh new file mode 100644 index 0000000000..51a4aefd14 --- /dev/null +++ b/rpms/utility/scripts/textWS.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Launcher script for textws. +# Added for #10906 for sites that have local apps to be launched before +# or with textws +# + +#wait for alertviz, exit at time limit to avoid continuous loop +#wait at least 5s for Alertviz.sh to load binary +found=false +counter=0 +until $found +do + sleep 5 + if [ "" != "`ps h -o pid -C "alertviz"`" ]; then + found=true + else + let counter=$counter+5 + if [ $counter -gt 10 ]; + then exit + fi + fi +done + +CAVE_DIR=/awips2/cave +$CAVE_DIR/cave.sh -component textws & + +FXA_HOME=/awips/fxa +. /awips/fxa/readenv.sh +#If WFO, launch legacy A1 hmMonitor +if [ "$SITE_TYPE" = "wfo" ]; then + $FXA_HOME/bin/hmMonitor.tcl --forTextWS & +fi diff --git a/rpms/utility/scripts/versions.sh b/rpms/utility/scripts/versions.sh new file mode 100644 index 0000000000..f3bc32b690 --- /dev/null +++ b/rpms/utility/scripts/versions.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +##Script to query the RPM database and return Name,Version,Release ID,Build Machine and Install Date for AWIPS-II RPMs + +#set the report spacing +nameSz=35 +verSz=15 +relSz=10 +bhSz=15 +dateSz=30 +tmpFile="START" +tmp="" + +#create the empty arrays +EDEX=() +CAVE=() +PYTHON=() +POSTGRESQL=() +JAVA=() +Dependencies=() + +#define the components +components=(CAVE EDEX JAVA POSTGRESQL PYTHON Dependencies) +setTemp=false + +#start the report +printf '\nAWIPS-II RPMS installed on %s\n\n' `hostname` +printf '%-'$nameSz's%-'$verSz's%-'$relSz's%-'$bhSz's%-'$dateSz's\n' Name Version Release 'Build Host' 'Install Date' +printf -v f "%"$nameSz"s%"$verSz"s%"$relSz"s%"$bhSz"s%"$dateSz"s" ; printf "%s\n" "${f// /+}" + +#iterate through each RPM in the AWIPSII group +#assign to an array +for file in `rpm -qg "AWIPSII"|sort` +do + case `echo $file | awk -F '-' '{print $2}'` in + + "edex") EDEX=("${EDEX[@]}" "$file") + ;; + "cave"|"alertviz") CAVE=("${CAVE[@]}" "$file") + ;; + "psql"|"postgresql") POSTGRESQL=("${POSTGRESQL[@]}" "$file") + ;; + "java") JAVA=("${JAVA[@]}" "$file") + ;; + "python") PYTHON=("${PYTHON[@]}" "$file") + ;; + *) Dependencies=("${Dependencies[@]}" "$file") + ;; + esac +done + +#iterate through the components array +for comp in ${components[@]}; do + eval temp=\${$comp[@]} + + #if the component array is not empty, print out a header and then values + if [ ${#temp} -gt 0 ]; then + printf '%s\n' $comp + for rpm in ${temp[@]};do + rpm -q --queryformat '\-%-'` expr $nameSz - 1`'{NAME}%-'$verSz'{VERSION}%-'$relSz'{RELEASE}%-'$bhSz'{BUILDHOST}%-'$dateSz'{INSTALLTIME:date}\n' $rpm + done + fi +done + diff --git a/rpms/version.txt b/rpms/version.txt new file mode 100644 index 0000000000..6b3621dbd7 --- /dev/null +++ b/rpms/version.txt @@ -0,0 +1 @@ +11.9.0 \ No newline at end of file

03D ܏p +.;(//h7Nћji5 +8a:JO,\ox-= 5> 9+SA,j̘^urW=f4Zs E{Ϋh<0^m@N^V.w㉴i`'>/3v:]TiC8=]98ccwʚs.LZڛYKv:rg7=25 u1;pnxj'xaJ^[_/'Ua8ȄW'Pp(jxPXX9oxp'pTyU/L mK?>L5֩jT84d'Yf 3pA :h,F7m`d(U]ZJ+ڸ|> +h &!4|{ϙuO>iE"[,[8Z"՛bӨqY*?ŵfe*›-ЛnKÑoyŖ;oNSygJ^>ۚZ8Iws'#(z?bqtwk=/XEѫ' C'ϜO9j2<R䀏͠F'n۲hr.Jhp!ʘ`512矫P[MGզ dz(M^[Rn#kBLFUL%,0gLmBp +[91;V/Wi<-y+34jAĬ,Yn~m JC8{,[ۀU6xBgב`|}.zȼnV[WXa";VI5K)ld.)6yMf:lf77@;/ ɶWW:ۦ'W3./89O 8Gԩhv|Ë|jk1!>]|NUky7FLx &FLwF=b6gar$'jx‡Fwv6g7P(l3x{m.KR0QK*U{ԲNi۱RMK-nbO"yߦJPjrat'Tu5^2: hsv4sIΕ43U[:\]1᭡ЩvBzFJy!i5i-!_1P1Tr3 d͖]8SXi|"wAktvL~1ޅeX^(}(*VK1E%._}dzKLd!z}vz[ 84!٫d-Kڼ hK] ̷蓐agxV(y26)znn[,B* mȸ /D rJF5/ Va;OsV/- 4b8yAެΞ^NoAm kP9- 2lwٗrKLHK6X$Ly=udN&E>[ˏJ#d `!m ϑc9 M4zI;lUzvL.QCL UbQ,%BG<9Q%ieE!vG4Sv4lfn ;:4 O s^zO89ǢmG O [H9zqlF۫¯ѻ{+?2 觾Kujfv|~fv6 KN}PL4,ko[UwZ΁E3:Px EK?D{Pt oZ{vQtޱEя?Kc=؄7 uw-F>іɊVTL3{a'VfJ9jdKߝ-x9Y*"UC)P%Xz^\~Cv.C=.)>JCK<祽%?p\[K Q3Ƀ0" #E~$vB18,b*8@s7] '*ϰvQH''19oqEL'y +F)d'ur}ռFq*{=̔\O 6NF3YS។r6ȦD 6w5exVN +;5W~^n,^|qq^6tD~EZU +(pH=)016]]hA!xݣ&3ψ173;(w/<W)Լ; `M?o9ZK"NV_V1R W֎A^&QM\Llhj@wG 3\U+22L(DQ'Ӿ@ET?LU(\A6)og/N&k58ʙvtXT6M,ش|>ݨNMAniɃhn| rv 9)߁ʧ%@Ɖx,R*-S +>n;;w>+gMdINٙtXjÏ]"$n5D31j1S\m +"Ws ^YwaX!&˕E kHZ򭻾z߲ruQ-R% B6D#aF7\6OF)'T_p^ra1 + ,f]:\Mc^z9Eau5D7Тo(r]gvM)5G; ~~O8I!uI7bh"LDŽ/3_b5Jvj"}F=KO>k; +ȏh;ʆT+30!F*RnR='Gz..XiDn5Joҝ:E}*>%T B|f>{"DLO=g^ OU0}qXy.vUۙi[Ys?[\?3y}mx5$J[H2 E[[sP$A]iz +pw-J=`>N#C#=bdxVt5޳I`9JedJ搆kI9;uٝ&„R#fnN Wf(t:,6|C3[X ,gI -i]JUL8y)(\-<}*\,t`ä[LrY4D/9ntzMʩ?b_o"/r7lp9]/7+&ͽ36oUhكh+"'_+)臵"Wh~F51 @0]C8kVT_moAoݵeOԃԤXeE|nqtHBfMV7! ~mN;"H(sv um;/K?/;<# ,/ab_)sRmcT8y 0Z*I뭇n$dn,ь8vӛ|ZEF% ZV%PBXhqh%tL卦i%_1AVkgk.qGD6J3<賓v:D?_c>Vf+ +zD]Vl)#j.e үr7<3iqQu䞤8l(M5ip+n؎$+ӴK}S9À'I!.5]vӤWVbٴJz]VEZLIJ$k?}(l?wpn>o{ɼxsrc›xӪ>v4/зZIqnLxOx6ޗk偤>&u4:nC?1H@B?cuAؚoY_ '[j'H"7ƳۓD.茮h潬z0L)X(% rd_^o7H}PRY'&{k\.ŽX'<:6ӯvWZ;ӹ^cɯ)'_kD7Cc,W}R؛SbzN+E|+#{bdm07tH9>J]lj: 2&k8鲖Dy:ǰ2XXw95C+L\|vyb⺧fK/jV|[B{ٸۜN醸wkO"ϓTrÓ# jMZX˫)߀(.U,z.dFufŦ؆I*y[K"vSX[i=ԲL/2UcOxMLhsدp;OqCens; z*WSxGosm"ma񡶧ɢ{BZLVgS_wŪ&9h_f-~-9 isf3IeVC`3 _8mᬨ-U]<8B?*?q?0U#!^VsS@^P(gSv],]ˆnT MjǠdpx&[+Z"Ui^הW])`Q/Dq>ҡ.*:fP4gg%Hۅ]^Vo`!k0*y4$-'>^Ym7! +>}ty$77@EUU՟nhQݓNNo9ATPv_=*9ȍt&YXt7I:d{}~TE8z A:t;:Otģx$y%;"hf 2A_L:CtYAKnr?r|h|R钡脒!$H +l{(xSZyxZm0(G 8%E,!4?ڮC8`D $;1ixY\tI$WrAZt!;[Eq@p$%(jƽXcܻM›/uwR{]jl N^>]ˣFs6\'cܾ8^c{@]~> +/CgG{7SNw?,(N۱ʔ=e7JLƗ>H_j^(R,_T7 O_M:mw0)LS9JtM="IgHl+ﱍ,"(rj@u͇;_vq)M*Qx9zH.тYGXA*38K9$# 7@9a`wKѲ,g*/$șV(WUy)dF4]Ǘ*-N1%_4H E$2̑0ZxvWt0M;MT@6cs19%UQfsaoԯ`I7?GhG;BXƋI贴KnGوB?EZʎ3^~I%i0oq!҆Q[0MJꡍ%GeX!.]MgI?#KRw9:9ة_'*O=V![~n qFs_=W?Qk*K +7[gjL/n&ϲYݬ(ol@7Jh름7 gTMx[s_,Ys#ț=]z4>`.6I 6m~ 9pE08mc) gPZν8{mI I`0U߶XU/E3%rf-gZfb1Nɭ$Oz-;,0I!XS8á hiX훃o.y.룹Le[ } ¬(p,g\ax#}rq&^md4m.3ڱ-V9(aP4n/Di#HzHŧ.֪Ƙj=J)::m)q˿l;=y>1QhO39%pKzJN(X#7h];BiuU5.ʐB/}"ɭ?w3(C1l{Vw_L{V=FoA}yڋ '\D{Ԗ2|0XWǚ ):4JJw7+wqI;4bf?AjԍP4(mtJ'VF^9E#BG(j!'a9$)mUX$&*6ƦWJݖ҇B\[KzvƑUx+G"_T + 3ĔTxgI+Txˈ=!l0#rWm*71r>O?o]7U48r{\nIM -~07y$>eq)( JsOt΅lkUSHWF¾[%~  N#GUD9p>{)bTF5><fD7ѣZj7WxD)ӛt=vvnJ⦁7֩&Tpk]V,b?W"MY-F˶.U9-=HQN nP*R# r-o.@sM,jܦXMltܛڱ lx>e<(Mp>K(%[ϔGژbՉ4L#:5^-sQ?t@gMw@a h)G;>KE&0hlnZv6,3JsB\{Ig tGp1 fHw ";Qgvb2rZsJ Hp&m9-S8zOKl:gɼf,]z-kr2`$b/N$Ύ[ 2>ȝ?;/sq+GzDZ|?(/^)ǻ^Khz7ac.5a[LNOxsLII 'Kcg.VO +W֪R +Z^!}=$v}m Ĵkq~L4AyPwF\_?NϵYޣ|g*,}2% XL=I$0,d=Sb2P}nq-F+-a+2wn"R r.Jľ*ɿ|}T:IP~H ^,&M$gP$ϯ*Mf|0]JS!?d}xMX)uK:Z;Oy,\Z*+f貫^]>OStJ׊BV+V.ʃZ?F!x۫`^cCܫ!IxsӨ &57v*S,܇YA֨&No=Co/R|Mxi3ymX;cڄ. CZ4L*C08 2E>AFƋ#qaDž ypat#ƅWpT\. 㯓@`9q\\[ G6y#…)$ЎfgJQ  U S_fr"ϧ4,>&v\qSםU‚a|<"aa4|Vܫ<*G] MVwHnM(**Zz-L|$eS-WT+UѮLJi/PUqôUYY?àoHTд$bpUL:~|-Mz ȾT F*6u٢3u'^, 2_>!}h2;R)O~?cާp-C?_9}<3L_[s/V,Z7(' 봎W]0U.&hr5 +k'dUM-$smt+F_mW.'MaN[A癓. ؂܃-dF{qAi@S'[װ?ܮg0Ɵah ;+ԒN7)a,Mqh-྅Rf4]Dۯ, +1mnYsv=hΏU(=ٙnJP ssj[`rTI* QS:~c<1.zނOd;\!*~D]]/z#I] +tOTf"ݭ/5al%ٝdf .#pip~y>v`hӜ i`ZaU$E +c4X9WՑ<}g'pKJ޳NP4s¦agil 1à4Ooz=qq) G%|JS|yOD@VFPi<1FUǢKԐ^%OIǘ;X19:tdDl." 5U)j׋Hco[ֶ֑J^t_i;V<(WB@i^\\1tŕH60[ 'ALep +!h|Y2deqrV@59V9 }TNJY3"֓@ _ M!GR 3鞔CO3$X#Zs.c`ƞTp)^Ỵ=`Hʹݴ Usr$TMM>T \ f#p5 Wsp5\ j4:9#2jr%LJyrF|;bM1f5{ +X}ĚhiGH&g{&ڇe3T gJz@[R,BU%F6YldLY!* <@UD* !i*Ⱦ=-|_=lu#_8ʟ6[<u14q)LcN:_geSΡxvY')frKƯ lc< +c$~ +m\(? +]H'2YW> >]!G:V+ꈦ+zAݶRJR@72`ÆBy=kSy6pfMvHlnT63,/ݺ%@U+7j|ByƄF#؜T +wR6#ͧ$)mT +(pR}64jfV]rf:3 +F +/}W rVΉVO"2: Țyk@i,бF٨b ;3Sz5!XOs +TOptaј.._i 'Wz +1l0X6Ł_80 J^ f}h 7ʷa 3G.kxQ&#B2yƳf<$<@Ppգ _6qjsiKv֢U` \d@-qC$Eˮa{I)eL@, 6dWZr$JFs'" ϶uDVēbr!Š!X|gnQwC *qr[swhƘ> Ξ9^7h>Ε +fx +>_.K̫bƵy>è8mC|^J4ηF@^ߜL^n[׭cg8 #a3K| gPi5Znu9<K( +&Tpp(Q;C3Omg%fFW '*ThO>cfhX--FwlIyٝ!g#l9[MI!#1qv37;tvy+0Eagxt e=}r\@ #Gz# rr4󲯶!rh0DN%zsi߅hHiQ jm(n +86hkZ4{ a!hnEF#~Ad{KZ=fr ̫!;0E2c@P5ԈiȐV99-uf9y C#ܤM{ML8̝!`$5Vy->-g p.c Z?NPo *G-*.'.^lrBzsuJI$PۖY6\6>H,gusG'`xk$u̐p 4Ok4c(ٗ: +f.RvO)P?#XtJ5JPI&ֆ'str\1n%7zbl/rfM2H1r0L)ŗ=YQ9 +|u49-(ܜ +ps:[\VOXh挬[OB%96`2tΣsk9dt=[r(r*<~w#W?#t}5p 0sS^wDwxɰGs +͙<0Dž<Voཁ3O"O,ODL%8ogav~<~fn {Vٱa N] fҗ2Lt^iNO9k8W 5GHqǦ f BޔjxZ n\v#@6=[h%"ʗ܂N]NH%B3wV<|^˃}!Ip<.7WeQfI\}-I|^-.,vؐ3̤O~_ O9 A?+ |< w{OR3e\w]g [kϓq)p2eIy 9? 'qhU'= +˒Ubf!;єP v`MTh ;VE:țg"`Y!yY? e=΄o?wM 3XfpjsIe+S5P( N1֋C](w4*:*6Z|qʟ-C 7bupZHVE~~r)|?*zǍo{g^ۊq~g`ݏꬸmt?HpjGb3u~&UdP:Tp^kO@EQ(wJ%Ҷtwn M!)@03q;oậ+g]ip.-Hn/\ȳT bg* IJ{d¿B#E;)~S݉bs +'~[n$FA\rтiY^".ѣ{z.j> ˹q6Js3D,v"} TY[xPBy4(6o]Q^>p2rudzװKU^:eC1?"pOe+{aei,>t9i0Jkm;f="5!S5~v,i LihMX.N34z6([xHi>7G!eIR+hԸH#ue;) +cX=|٪ xDl" ϩrh;OᏤހgӱ޳q6R9"L7dNJD4LY)M3!b"} 9>rNny|4Qzs{.){4dx>k\R< +{ [cO~Ow;g4eCQT_lm^1mM艪Aoa$&e9^)ʛzzwWJIi@U25#4n{LJKM#vd&r`KIlPϖX+B!)h~&]LUփb@Ͱ3XK>}gHBKE\g⺀fPn'{(jbο]%vI8w^ź nt`y :9W7֕\\‘ᨀpKe4 Elj3%_ 'I]X>C.N(b|RILZ3(N:/Hd"Yu^c)fo/^u(Q:Q;\M6lZ^n*eݢrݟ |͠B.+xv4 vj(rPxO6/tWn{csSĖzZR<çepL:4aa ݮ͹S0mm6fϑ69vUZ^FoI"N69NּO(Xϔ3|1i +%!e ef{aNKVL9{r"1>An eMXXsQwU_XiP _6URYFtM\']>{™S բ,9B?ۙA(k$hGK IHRGP5wC5\|=& +Nb׉g7t9h͌2k18rm̑s/%j~mxjOQY2guYMjaNN(H[|f)aUBJ] +SߪzWpJHףrDMzGxw~גn& (o"Jf*[E96V=鞏%]>Ktc[ -~G|&M/$/\h› PvcsJq/,͗[j- +=IcYu>y3rZZl?,rKÖS;z6"D&[^#Z"]'%t_)o )Ȓonx},Ba\~}[ا&)y| 1I!skyU͍;NEȏ`t}o^ .K!vK_z;P[[,xDn9O\^"xgeGT}iU%[TɝK3<5I'*5K}v;41DgM{_KxIxNx oVjd+%dwOW#ux0\.b y,5_FY7KUzϡ6(V"w=X +_X̚T3_\7Dz产Lcĕbo|,F󉆸{gMx;6uw,N\uЕZo5 4%Rc+5Uzw3趲 A_0U:U{H]z @z2@PXw!n"/J7ZI7b>Jқws޿9\_Qo'Mbjzܜu 2 $EKBl:jqtDfVǐٜL긻K9$`ӫ/u>tW#\FyQ"T%BȜd`l9kmzק<SK>( 9UB40mV&R@Nj&tܻGI2->`HrJpSٝ2+JeTߣXoSL:-L/s%hH!Txe!&P`Wnw(Kf$F^|ݣ~"s^ ;5^9-wc(exzmv0VWk;k8.' z%/}>Q,cus1JU\OHOGRi}+ ^}9nnJ=䮈̈o:-|ސ3ΪJIџD1GP&UrN=񃳪'@S'u{G(^uX + \q-]{ҥa /Mp@#3=jNs2F#4NX#qG긡qqѐՒrZ/l7j)cӲ"wJL;?]i[5,teEInY=/i6-0?.sپֳ &kG&CPZON;I܉[~g(j34s7_'g)˧ PE Z)7X +%Ya_Sشc"YZ:/YZO5J0O5ڲBC9,"1~i̟8B~ynς 8|ڷ4dw"߶1'ڝo˱;˖'GMLߗ[)f5 ydϕkiV(W)I: ~k᠆ }w57ho |QZ-¯ֶ&3RP0Bes +@o qEy<+${H l+W {r&T$^: +fJC{s`nBo~CU冸9ß?lacl>XTP|4X^tpDZr(0cvoQjR;tMнa;{ =g&?]'Y͡J&n tg6zD d[ \錗x;_ma{2#?I\W w(ZR8k *? + ` <ՖQVSVޯÜUV <> MRkW?S/aZI彤obhSΜ~FQB}eNx7/hy9̼)"6q3.L|gI?nY}`Y~-C8r7ϣ%VpP1i$Tn!%Mx +B9!ڣ.?pCt`ㅠmj+^dt0tݴBn\B5U> OQ U^ /pE0~0?#oގUs&3d9=5jBwIcga|H>| CH6οY;3!*PNoӨy(Jz>[GTԛPЧ[u2мY<('VOKK:ܢ<^*OM2"oPi8.؅ʱ 4+Xn?ڐJO:gVgwQp:*=*_! >W聴QX8 +$RA5-,ǚhJ2^ܡ)jx!a 1]|Cp(`ċbwXvG9 >sl4E[ҹ? sO +z}&v;d+G?hd0A:mȎS<<+#a]1jf~ PC M)4E(w]PP  D43 +a6̭;Q q1f=C"6q <<}>hl7rY(a/exֱق?Hi&>M6O.T;o0#%*4ڙ &x72ň&DYoAENO˒=̄Ԍ߸ `V tDS\T0z-Fm\?rJ`C/Aє9~q7y>>J%1{q73o~wIȊ]ܒmq7.\|cxMo|'ѵMi]`f%&a׸bLv^ϰJK$J^HҀ+<"/ u:XoSƙ Э9D=<ВE78łpw{ *y5AyTlMHƻ2ĈL>8Enǐʃj1S^bS"f#:#Ff}(Ҍ71 &^Du 8ZT݉"͞g?bQ|V_[F_G+QzLK0gh{4ϡw4jH|ͅa"|'[s술T>,0@{M!T|VZD=>|uMY2y%,ss>Р{M@fЧwq$4FmSƘzI^+s#I|x4Fxu :cex'ܮ$*c6ySAȏ$H0֦ ,ﲑ$1$hs#I}T? +0 ^Eue^Zv^w)Uܠ̼jΔf@: gfWgp[bKAB;ANg&GXPCO[B>ĸd>M Mժ9yk` <2-[A"#- (`_PBsdpbH( #@8rس4)!=C)3&RfV2uA%I*$ՠ]\v x#$[0$ʔtZuiX#E[58 +/4IH E ^LS]G1EP^IwF7"{&97"+Ǧ<gBa)B\ .ƽ. pUTTy^2:# ܑ ΚK{s2%gMetd9D>xPt]=o gɔB;dSX}B( 8¸g0o*Su|{Dc屦: T!h|:a\ ꬆl;U|D3ح+'7b64`" XELwDom_+`eqhJ_/f"Ŭ1+FAnkhbI +v, +Ii +! ,MdԊqLɽQ4 ޺;BuE$[f܊_1nEXQݗĭċrpF}h͔Q-Up [@TѦ#u$Cv% +uγN-At!jJѓ4ƫZHvH^h*Onsf ..r&ǒ^dD!v'kjogJU ]MůXnW1+: ůc_i\>~UsE*:_Eq3c>td_ +^z ,6. a1&D왱'O-}a0b9i:TZfT8'_1_hihHx50^46&ܾ пϠA0^4q=Ԗpk4Ek*Lt,l{)v4p/.2.9@ty{ihctEߴ룏 QTXNw&'PNUOfE3r&ǎ=h{rKYcӲV+q!Nƣ^2z~chq؃',IRzӃ%Kaf4Ɩʗb"v#VBW+E%WT-9S*m +(bZ%#U`{s*{,K9d7;V;I\Xz 8]- +Nq q@ɇk, Sی^@^竭:!8mt +##HKLd TgN(W[gA.}66UOOʒGIJEV2FF)FŭLxME 4($1&u'Óbf)mW@x&wgn JX|j[lnb*y$ l.ybJ- zl 9ޤbz$_(@ja,>NTO¼$T$yaSeDnOx\* {e= *П0IjH࢙ʍ8% 6=[rXZ|OTLZnV} +z$|Lktš.㿓V- +,R3I-ҪRy|cM5*i$hs72qdYr8'IlEkxKqZ"ė4D+TFᚇCkqE= \̴:igXݴF/7Z%Nf"d/OIB^qVTy|x̔-ؔE.ތy{90|`Z6pK䀼9iŽ T:\5/0eH* +\؅#lT] .^&fZW ayA Jtw_M]`AX c|*0(lh 킷h4 +krbyE(vlYt 瞅㛎'n9ϲm5|)?= bY8_mKz,7Pϫ殅jk5&MCv(Lwl +7$ڄH5~PD: (Ű"Pb*Agyg2NO23JZ0dM]Qv?51vVf"$$M^-l4=F8v^myW&݂,4t/Ŕ|>;iUw<_דʣCte=xvzM4E%AW+og1^v$dap]'AXz=3w;Fˇ9@ + +Sn2Y+SbD;#57pSzo]GZ&hW֋.I*z݆}bc{rp}&=̓; {R%.3]TbعhDc)~bK qKT}Q C .&tݓǀ+PU +`1VVJ gz:}:㲏qE3ijh9Hwn-fE6 ֽjecA+9w_D7CS5NrS=;{ GXJ#w]Dk3#ظ"}'K֔@Uu-Qfêvb +V +R5ZCN?@Qg^-80% }PqৈcIeJ&(]5l C_g6Ƙ + C}@?sT¡#f@UaTe$iVQ-$=R7(RPSBH'Hи<.F8'z q>.<}؅AN&b=Fβ*ng}tG^FXhgJ+$_jFЯ=ql!1m AWiGV~4JȼQQ E}4?!ASwy#}:=ju g[72$=żI:@[T 亪88G;:9#0Zؒyy_Qu"w壯>lgjgT(]к [!ߋ\;c_pU&7W^Lac +lHP[ +dJJ fL7ݽlSLGC-f`sA_m$LFf ^|3(0p.P +"% C*j +Cw.gG1VЋ+ڣV +yx)r0/v u_?ɷЂa䪔]Z+t7_mXL?Mn uYVY*L֏NdP.N3sS!n`Y:0H33ؙo`l2wwĄ"_ҥu1˜@EiṤ*!&ivP'%HJY +J)+[nmӲs +ÛS@^nE?MΧVEO5!E*QCX cD7U:"ȄyW>U_EQbfy^O+zX,N9?:t&~txßLHa@Zؤla~ l&@:%ݸ'_{c$R9> fPmMϛ0ek6r\6}ПsuVCϦU + gj1'%jwAUrXAo!bfŀ['< iaW+Ծn \Z".'"Ȋ c(k>H;է|!;N E$i=a$Ƴs6LCo!by-KŕxJ/&E?U: H<~ߗ$]o + \ފˠ]ZpaD_{,$$WO`~qEB$l7Hd XtM22ݮlSm^ő_R2~57Vy`r~ןM:[0o0K'˼8 >MLg"=Hy7]f5|mNW#BoiicL:Uњ}Gwk︓4ʬʆQZ"BDnPп t6lU t6f!7+r` n٠n*QfgBLɻ:ir"Q%a}c /N|߈&8ð;}'hD{6^.h]{oyΖ&O28Qb+=ֽGFm5zs '"5nQZFk1 `{{kئn琔8#-!1nH|d@`l/c޽${=#f}׻>BfRߟ:TᐏM+=|a6Ѳi{W *(CՃ'ɽxpy%+ͩd@4|!,OR `? ZꊙXOU0~g$᭩a:xat:tMx~!d"؆` +cc|C@t!LdZ22şP˕?G ~ėDpeMju,GOl &nԂs6z>NfġY+XRK|9m& Zƾ֨ vTOukfe*uCzS h +q8) ̵GGvӵd0Bz2Wvz*nxs- +mɥ*:2Xz"f-eВX + 2LdPbwqR'/lOE߼'\We.l^&\[BjWKŕ{sDkCT/$}F,i $C#B!? ~|BC&(N.[[f;IG!{:k;(urG{&myrW/r%#qJo2S| 8ՌB-ՂAT~ۦYkٳj61p|VH.EW+FħhDeYrQB'P7j_+c23{Zݙ{45hH74lVC3_A i;acz9yZoHrm +iڟ O4tT9 &~E1i0i3i\| oA=daҮ + zMv]pe]n YX vܧ.*].&\s_Us?^q@sk_0 Hv{~gZv_V} `h)j7 ɞ4xc#'U@0Ђ+ Cԗ q?Ď8^CC{qQw&jA{㛟]'EmV0)V㒋~|p"o˃߬"ұsNVܢQiPP'&!ٵ% ~I.9smÆӈ%>. +.:\P\/Mgrh@wB8luNF^P%tN1!@\\(=rup\y  4>S]}`' ʊ'?>h{) [ö;+Ueӧbz@0 #c!1qs׽d2TOVE*[1"]S4" +J"P@LBY+Sb"qFaV+2&Tk.`HHZۈD=wTpn=$X%aꋄf$8̨+0H.#%S +bTcMIQ:.`<߇Yx#U)vBǎ\1d)%r\m3-{b€׿Sm-Oj^gӕ0ǟO֭4i(1;kAlc-6&VS==oT1-gL[@B8k/Y.ɏ=VޙjD5,@m} N[nC14r_}k+CŸw}o{]E,Յ!4019 _߀ _=?D+_2?FX$< V#`S}_1WC74H*q"';uR2vdqLJ76ۂ"22)5h.4pa;߬M=jK.!&od ԚTzmo7K@p #]7#0܍jE #fg YǶ~Y#lߛ=ؔ7ş0tKOsLꌱ ,9Y'^}fO L#u%cDLu +٩0M<2˩fe@]$0^IF^rymOg(d(ĽMH ƽ6/0 +7t;$m+D{S7dR(GN)Bgt [^PdK& JFCfbv0'u).:I"hC.egb` .0& #lP*;oauʝXbIANGh_܄к~?+KQ2b+蟡U8y<"'l erk rd0>6_̒O/k,WO/llpA:N!E Bm&Wb EB2~GH@uIo@ ?,!,g4B}s :," f0xVdcaؓ"Ӳ9R,!Bkr S$ li%dyG K1о{r\-]n QX=m ;}r R md!_Ȋ@( +l˴L; "|!P2dJ _ꥼTJgR)SRjN֎#2JB)20NJ:)뤨2 +1&*< 0 +S-f'!E.u#oIcϼÑf*ZJwZJH-e,WVr֖ܗk.¢e▊ZO&Zʘl$IO,#a8hLk|:Z[T?*OY,kU?eꧼj{{adH.yL` +hQr娒JEY@KV)ƍ,HkBDz@3Z,Bc Xj}ړ60G18’͛4I543_ @޻' ! +[L(]+"ENհ#>Z+θ_KhJF LPUړFʅs}(KhW2iMP?*%s(sȨG",zO9O)G/O Jc)0j"8]ꙑܔj`I6j,0iI`t<]0")2Q$*KmQPLlGSx@t"2rXr 6id._YB&A9 ݔpwa!FxBFXYh^c`F~$VȞ1<6ɟ,:g0`"-&3h +Ayr6'e,5]9dqʥ˛@$l~d Qʔzxrh<\9xIP 2:|`Qd,?}Iu@L@'Ez`{IxX$(:̃7/ 65w$+U}!W]  +n#~h#DdFz-kelV3z'Ly@ai_E'(OPtZOg^mIo}* !VJs {upC#N$D4uΓ%kP%DZ+[SP/4t+RIØs;J<E)|jG@l(ـ%nTb1wLPČ8P^+ +ryaaț-_~cl(7 ?E5#(Hǰ(L©''Cz_81.< z&rt 2YΰSh_FhyZ(R ˝Bb)R~M5!7jEcCYga!Q,!O/Fr~pE(O2aE UǡGe: 1늬0/9da]ILҕ_s`,S/q[ilh #GrnvAAE26pq=oW(8=ǀ6rHX98LX6%=ǘE[bc(pVQ~hƤ&rA\_J%pAreB(B_)T53±~s8~a\~ HuMgX]y +`&M9Mz˟%?κ{Yl k 2:@)i;q&Is9A"͂DX !CgN@8ZZ NZV 8T?ƱӦdɬMzj [ɿ%~H2tEA i?q¬5_1ŧ^଒+i}έ8#յ!Љk0/ +.||yQ08?Ɩq{=xѝGuЗﱨ!]i? 9X'iwvo~gdS$Rm=BKuI\Mu)-޻eo]aE@"?r5K+ ]ތ'Z>֩[^ErOʌU([ƋI +U:*|0&KP (z $ze` V5+Rc.0_,;Bm;C%WPU"YY}bTv36mgFOA{"jm)+dM/}f[@D6i@ F DhK_j_BI-𴲫 v±Vw(&[^d\s0qYv*{dM9p:>X{%qkGz{*߂Y[-ч ,^yrg埬[P&c%dm<*y1Yl&/c$BZE1{GTưK m +@ +R j*u-EVXηJOЌMfP{ !p$ۭbbcrLҀ4T-!џoQ>*HQ/U 1:jrB소+.K$g&cg5,icyR/7roDq@M8i;FNgn`ysraW +#)Te}e\<~xj_W<(Sfz_/U_vh:Flh͇ʌ1WNA⩄-R`+;$ k3Kq¿*OBOie + +2R;7i~IXGD܄,B!Z QgLjs¿ z{L񊨤Iyo]fXAmho'Ͼ=n#Vp_wʪOD\VY9Nԕ-#qu,O3X땳,]]죮Xp}Txה.ވZK.ϣ"#ww3w`әe2|\DCE;x& V- +s4T? sc!iA^ O"P +i4Nv[[9LJ +шaaT;MA;bY[LQ6̒i`W- x|,<]p8L1e6 ?iL90<1*~(r^0c{8 B/_-Ho_o|eг'%^N=!ߠ8s`YxzOIK]5V(wK=>D4dwWy2^%4UfWe᯴ꍐ1oɰ<+k4QՔGBOsg +Gq*^Z;. s}+]Jٞ;]w YxC .=bN&7/Nþu0+j""Mfѱ`qOS?8H%q76yz1o9W1 PfON6ҍJEh8W.`8w}8@?1 tCEhSѦ ?c/xD5Q`5BU?#4ڡ nCfq-v, ͒F쬳R13w2M&laXe~ +oq tq0`ؐ؆zA,ܔ6X捍[_48 +aߒs>Jv, ̒w3夭íHH7WG6 pt){(_KoubP~n[@n!f6Rl=Cz[j1SJ2m{G5Ҹ79~n_X$-VRrpJ%:NK" T!}'@;f$ +]Yz]'ּ0g1`"~$]0-A7"*`h#_?#hۙsgdǪ7%٪%'`2ih]IUPMH!vv7x©asJƈSw)*ͣ?#,%=qhG>֘=> L/ny_TQ?^p4Z} (oJw}OXm9㧛7Z2FҒ|c];:/ԀJ g/7e;27XucxʛEY(vހ dV)svY%5h +(yw鱰 +Nt~鑝9k]w>Y8RyςL35[0: YwBٷm%Ck~N: +~S<8]my k>\ݍ<B/彼- 0fO##[D wq[V8~s{xjk?v>U1&|v lϕg2oְKnKQpmj/z^G"C9oOQKiG)PK\,ѿ(葞c_޿}bG¸aj欌?:Pp(`! \ +41٤Q=05a|Z佶*R +"oQo7aL/\څ<*&Sv *zwgKD»1=қfu^ Nƻn?ݽZXQҚ:T1e+ +bR0@Qn 0sԻHp>dF?&^ЌBEƻ]JfS9x@fշ^oPߢ5Yx+’r!Ñ^+/]Xat)U^x[|x7w$ 2pő|_^mZQ2HήaMfikm|VֱUɺmC8^6i[%*i% +z4ۛ{{ ܄ /Q Ϝpvq| k_`T04q˯[Rl'Ƙjv%z֮/&Xm)xͺ{Mn(SOWB%~đ.**)aFASO!Q Ԓo5O$Hg"ŗ?ѡ86ֈxMdgr1Kw6WLw;O ̷⭭WqF<̙0l|&n6r;QGצGRE%w˖plZV[}Mٍ|yk&z'(bKz %%A~^vĐ h_*~3~1R8'==]1 +mO.Jif?hb͌uEpkxinl+53 ي[ՐA>}7! Aw o&׍͋s +TU B%)(C% +x֔E n6K jQ3|0⍌V _d- A0l(L%ۯYO7 dZO^G᷼'AY^\Ǘ:.{|)?j! xd}ǷO>7i*Z'wR먦 ; 7*5hcas\(\ oJ6qTҕZ%'1' V9 +Z7! װ{jDaÓsV؅ΐ{.N t26N9?Y#HdE">II,K4N|cM`VFcAbT1:[(Xc1-8FtA1tI.r"~$~fE ]s{16ze.M+4#I5K-4l0}[ 5H"6KD]L񲽝ȂwTADˆy1&E0v@>:KhRd0+=( +ߢiaX}H¶=cg 0\3#~yiUy>bؕT TTÔ>z_ew$YBDw׽_79(7 =zf +VnhWӚrV,TJp Hj0yR'rZc +Ug=6f% _i _!K?u^֩Qɢ0%3Gi&Vb:85s]qA}ro GwlЮ:˜7 &֜՝Fs:Ym9o˔7 7hapRu$8?<ӷwpDs0o:<qYa#kT}!˿_ZPkF +iWTqG;x%FzFH #dzȶ JU+BnvE=Lq0N!cvh$CG &Kmͻy@oHLw=Gl:fo1{ˌK%vu蟡LqOnmz:Kqo!0n4#Ae/y 4RC*1}"llm2Xh =_/H70RUtb`SSBz *o{YV`}R5=%˓v74!2^7O&{ WCs0Ƶdu*LDžaS4MX>1a;ci 9(QH[ķķxZA,QE13RQk7WwFk?C_u|iS$~`ChwO$Lm+ۦ'+ 1 LSagd,6T`o+e}XbHǵc4 f[n/rFؿYOF +bB䎲|ůtxg̥TrBRbrd%XWb-X4Wkdcs.E + R"6qtdÂ6Fo.ѕÆY̱YN\ T7뷟0[wzKpʁ,L +~'vAS7շ8AIvw84:.c @8xzHP3ᬻsl1' + < Mĸ<']_=-?QFECqE厡?8tyM?Ow. fzdd#B +"!R2kSAE`@\!Q*+u _&|K + @ce<@kOZ;F 7xNez!3Uν+rJ 7E`V`5vS9>@ןIx'wwzRIC[Nj[_| (` V(` В̭u)ܫL"t@qeAx,Y"h0Jx_#QQ2/$nRQ^ŅV^7e{Г˝IS, NF@`] ])o>PfXܘe\fPT8FCb{Vov[t/^ҟ}HD`*HZyAu_H.]z&Qc'wͱVAl"Ef`i?>z"i)~Mlo^Ȫ pٱF-o4Ƿ|E뉟r}]4mbIЉvNovGBa]1*ԞkԚ+LuuIp(x|x?(PR(5iQ-ér"L9~ߚt3( ۘۑ\d׾U'?"<||v0s*7?5h{qZU=ȚN"tlcDڟSjMd8EK== 4,M>s+VY6?a)`tK@`2@gOs0B ʰAK~Ҡm n*฀ۣcd;m'=ңn]Qܣ.q%Ϲ}c54s~\FPc@:iRg] +;iRg9oIϚ;4jR[ʔ?T1{ԃ=3_2=^xiiQkX0EEGliS'$>05 گ~ySd'"Xxi^hڃSi(6@έԚ5d7]Ȗ7X2pf4^r{A!Udߢ~^=gbҭO-TP+j:en#+C@\(0V(h4ivɜͮD8`Mt򜜧.chS/X;>wUlTgih#j1S&I4a_dli=yEOS 'g4\ϳro<%8O~}ESgƨvi@/ =Eew j$+G +1<5|b:)+'*CDSinCλ<:KlA4W ev%9 $ m--jW^ߟ_E:c ?E-r?0{wL zjurXP펇xx ?o\pEu|???>:^|L鋫ߚ +;[w_Z1"?2EF΢OA-jQatGŦml?y"3:f4_oecdBP?CFiӹyLAVx[$8K#=IҚa?]FkF@T 'V{֝ ~_~35+/?O9~A}ۖ~d҈fyc٤_wtЖoaR. xxՄd3f*sB!LI4`F-c@I@Eh;dR9\n7I`P@V(48Z(B6'oەh| (FGic}{8"s~=D_BN"ET+4tzKqeU,"+hoޯeEo*m_f2n-cb.l\0xzeq׼Sue΍ɰsoC/Aȏ⭁@8]4.4>zHo>$ѯJVm 2TӉ?G Mq6J G1xy9oQ#kAN/B嵃9~tDg[@vec*oTk?|[SNirYw/%'$VdA ;#(#/::} 娭Cdh.8;y$MUahlqx1o{U fj@gY +Q`. z] ,>v(l7 +B?dz=%&<$)Q6$wpk~>UR7_MD˹ȉ$Q6h,}EJ.MRϹ`K<=9 k"|\y$QdYkRuivt|beS O5܋χ:G·~a2GI߳o]XI?>s\:ʷc[g2tG~UQM%vjL@̛І2)$| zYBԾ\¥|xc] :MM .8+Ӽtx|8\Oԗ 2|xu+*[gNjKT%ŭ:$YxSo'YV\|A' 愂`f N!_tX _D۹~taX^ًq(gk(EƄc!oSʺd깶]/5(uخH^F.c}K23|jjNio SaNu7LbԃIaGkřȄ~x׿ :!X&i_pTZi]?kƫmO' &t@O]:E Ipli}ږ,al{bCyw]%um)dwɢ_hֵێɿ]ˤ,+?ak[|QeRgUL=&3ZĔ]g!RҬ$!dQ֔x{*ȭbR4D#zYPX1:.^ĿӋO euv!òvn?ic4vnۈ;9~*'X}}z+rI;Ƴ{D'l_=3y"E(@A3%D>9j?at׳]‚"5| /CF0+"GBw6Ko|boB5{,___[huYI*z RaqN":ULsA>%]&m0e<0ʮtZ4`_'Wl2젣׹ZK]}(%ҍWb-}I:cQ6Փ%U V$;OăLrlQv KJ׿'똾_GwB+҃6jz"$N36TkxSV7["elbw'E"a3S6F +GVgsBt\SJ;Ұ; vN_&j쁩ɨYvfɹ+5&__ʲK kzZu +0;?JB)-]&6:S ןE$Jh)}VYr5IXbV Qv"F3Ŏ9/ǫB,fa_I^8Ti7nf7?29fwUq l:%ͅs +ti)[vCDs<9@4Qh+tv "eA?uWlseb~y9&Lufx><` ?ЌUOY}zLSTTb]i%*OQ.>.ڧvm?痀On»s{>e N3Bz=:g6D,mu_g9D``#&7!\#L`o +<"d2yTp6EAr)u[VZ4(=cSvgg(sYc؟m-kEΫHHu-~0V(/®aI5@q^\@ݹ_ rGLao˧Xx Ma ;*xE 5Zv)wynmKu` #; ("&y՛qn]Ƹu Ovһ} +O +cSاUo ;F"!SQ]01ZC]ETʥ׭%U4?_:]!m봄61B[d<^ {GAuiuۣy7n407{WXa.tWRg{ފm[sOBP)~07Uy|ANE!V-4Ų +nZ썼  wxpw]r}=dbU䔸Ou9˯aeNֿUePmW{t 4g3i ^;ʊuX6Pq8ҍ[xUvsW}?y?_A12 6^:aWyk7F㯇dWS3Bw:z/2lYXx +QC 3p]+/&wO==<.}d>ɻWg[0DB儹6Nb_}ٜ>#.i^eK}|rKd`!)-~zb;7{DZA&` 㶛-qxik!! 閚`'PQlZZ]8I1 ~'N(G˱'D:ߵ]-L^N ý"=kHwŌg=BٵR2%L4LڞtH8E5&.}H-$*=,60kvWb~"O",T0et}B^oZvg6߄K3oj_V&ܕфW3̇%#i\ysZ6[8؍[d:7mS/mi:>?~gXJvyK}ȁlWSI,O8w6Y&=vˇ[!NIB^tGZ6ee6ϊ^+¢i#VɁ|Qͅu`o4)?oU@K>*֊Lkb2 Ds)Hڬ,žH9jrv ;y^itC5d{Zv¼ܣMJ" P<&yOi|&!Kw/{Ybޝ5ٮnxK #;Ȼm +̫n)1VTO>S sh")5CQb(b^a4!{H,6}ALv՘TF{)ў0QPskFEyuk׏IsKЩunfw4wFq#͹o~$htYUA>Mbdw +I蹃55{<9cugaz?u.ﬖ_{(5L}sd/jY23qhn +ܥ;K + W>fzyC>rzLCuPӳOc,g;^ pRvX&^(j=!﷪:"'+z XyDz)#>#<:-NF//Sh#Ke=OyԒ>6o'(ԭYоC$婙=u[x +N> ﳭ F3qmac>] feXT,R/qG%s:H>"m:_v/a(|BVJb!:qTR*ʧ}r;=mv \RqGZ\si(|ZWT'Iu"IN^zsi+?d k.O 00އ/!Ȼ=d1,xt%QXc݀ǯzlIGִ@5PrՇj2J +qt<37LWRi|!yr`+"+./E\na ϱH!?$Y8W=fdh=zai!o|{#7B~5%LuqYaȋ>5XT]Τ>>c<{T&M%FTr3]/ri$gX,KiQ8ywBEy]>wiNX])T3ަ5',2a',20D20Kq>띪%[N>w7:ߎB= qv`^@z)!F7ɻkA!OK-55UĄe49ݻ||- iuQTPЮ/3Em,/]6m~'Pp&uN|TvH +z$ +c.?n!iؤ{Im&{dۨ"B{WaD.ޏErw=o2ίĚ 2 E*VDkW,Ɏ7i3b"S мw @v\3hv;Xw`o)A90%n\7e) ߿? +.FliҼwX0[>͒E`yjRtWi?#WolL{=u;:G,g6ꈦz} GG|ݏ@?#*஑]FP1J#wiC !) @ _ R;/='^SR2'?jǑ}| 7.wʫ7/W?8M:B/#v$_tɎ{ډ&'[79)I/2I!pMNM^wF+Kg'sm33mFI>lAp$!q%v}lHITD}&Ge@h7%W+^v_&[,sz/ i)Ѳ`ܒf,ko u< _6_$AsjWrŇt%p 66}\IO~`vzMґo!^=il=*?17¯T'Ƹw[_lxY5 nu~ԂiM>.J0h?RKDzxʺQb=l@5@7NemEH8GCeGgR -ÞxL5SjV&J_P_l+1c'5y~\j6۴ZMEw\aUiz'OIPxŪnY/*-.u E~5EMeռC|HǗVmm +Zh}-^NATѠtӉ܏8[i"׊AWe_{8nOwTsM(ʽuA??(:1seA =&Liƽ =IVcruԨzE]ZcO|$I%u= +.&* N֪C3^6aIs%c<]Y/U !PYhi1lȘ&8 +:&ȏ/7p~\R%>U~Ҽ.q|M;*(tS=%ܬTywƭOFMWy𝁀PrJ5 GL ~FKp<6K\#h^ O7Qè;}ϛO\N61vM}-9)*)uFdA}Wݪ/߬Jph?Yv-S&8ݫd̢qjY8*FYӓide+ߡ.UmC]Js7Cb'Z^Be-n\Tl~H74]],$%nO߯FGX'h|cs*dt +BdӪ!ǜeU3 d b^1sORwt[IL$ +8bscUrTO FP:q@R @'~1O%#pBx梌 55jq"goR/c<\) W+Э"+%}-=7:F%z<G܎[{ QnunM TUT ޠ[`zo[wmBoظ,hp}X +Bݬ |v|ś _/E/}7(o7%z@7kF`/"CuyvҠ5\(U'LjiU 5+ aR-2 RFt_Wus +ǖ4Y/~7@v&剒rnt+\$8Kaܕ4fuv|Je9aA#N[cKIiTOv!%)}8ĥ1uۇ)і4/A8s 4'9cBWpq߇= >*PЍ;P‡zVskt@$V̯E&,|8T8es4?vp>FOj3kdRb06SkrKZ29"ť#`wϬ(V㕾`im UK׷gU厸0%mp u̔e-2j?u>ǻBfvt aCrXNAG 2R p\OUpތ*0?a*!ximxlEhZ@z$]/ꡯ{G;6'FNSe] wÉ^tP/F|p$oKЅze7]wPh3]ס?MO*>8}yHx#5-; jFWWLMU:HJF--INڨf-}4K ^hPt þ6+ߢ^Tc$q+;(-ioR[%ٙuZWķ_Ki*l@ otʬ' -N b%ݹcF*`S(,B fqIP!($@$D"]["$ώ_nܙ-QbT,kS#vԎGhd݆ UHcj, Bѭ Ug#%}b|N069HجׯҤ|Vڸ7~?@^/o5<:38CtAP{JY|XhGz|Qޱ (x8zy+r4sZ0w7sMXF.tyc߶_81P1P?:/3za\}#\9~Qd삉35Gao6'16 OhCde׉[ܿ9 91s_36#7Cijo{b eχvxV/q4_( _Q/h}"3CtW{%~j^Sij΍~S_H (0oģ AP3 +!v {9׉j$\?$ |Ajaϖk0BD1{6t=s4ʵګ!'N!OodL'oT,[Nѭy| L/4wC;Զf)\c;BKNǞhHnqkmŝ~DG װ܋%$?ֹv=鼜y  Z}f/F>׮11Pl?6cLs@wN$sV +̅xkm.k mtR e!cu}]\(׮r4'/+L0A *R$گmXR,pKiju\%GV@-MH\B4fmEUؗ+ElH7WAT-Hk!Vheک7b(`C&O<-<4|Ta9nO ?:MrZ߭ =&ZY,4 `3'<˅ׯ'?9qZVS6&WO\"iY{V0kFts2uONN|Jnџ+]m=CTI|36[\Y)n9 o'u*..o?RޞTɐT7Zp~0mj,6$Eo#ۤj`)?"e_;_Lb:( Wx4Jv-2&j_5>/]$W\s6+ܒkWf8ygy͑&uEEpDKe9n_3m +BPZ´)'rP_ˮ}'%V=P3yKzCN^WM=滬pvoq87.ț4&,4Yaĥ +h{ j$B\SQc]DVycYNsJHh喔nʖ*a;)F{%S6#fN<%{',5x4\, ֏5oʱ Ns7ENLE%bk#člO=9[雼_KUzͷ#ΑJ:g8^-6k8?TF1 J;B A)w9i-cuT+»6&/FBojt#YU*>;E\!FRER40Iv&Q^f\S5Qhy gJr}Y,wI=^UA-)\AzoήFT85 tA;EF:P@a%-:p*c>)6ܶ jtQMT呌Mb-s kĂK}7G%Tf yHxkLŷHd ~c҅Bp@*6#/A7yWz'5HL0u2unҘlC },[&􉘌gky%#^aD^*,֘ +u[ kxYA㋶kh%_|zcNfhyiP\/1wZmZn`x+ +ҜU + >ێNuz@WWl +:"Gѫc$͋[Z:yZ@|4)XI"I +~nu6fӈ.K7>  + s4)|Nu#s u}v%eOKQ-.?N`bb)6fjXQAL+b,r/,A9@WȵIa؄JSxt3U 1oy\O6X +"3~Fj`Dg4u?W~ah{tw?uv9фDGuw]H_<82B;ͧ8⳨n؟׽Yz'sE3;X %]>F7N7ӧ"c!3Z/mA-w-]`s [Peġ)ޘȜjXE^N|RbO88r.) o !+h[1jlp9SqJU} ECfΛxq;NH즑6ӥ5trkڻ1HE-8=o/ 15qhSK؀?[ * +.LAR Xy3dƾľHpFp|4,3('uZ@9[+su7fӆ2`|UGRC J %u[NRĎChCn4m256$L,Ynu۴sZ, xib͕"=2Z7gwY}7g>PRikŲuW&JY>$_&&#&K0>a9+#XSt|WևV -u/>:W0DO{Jk :%ۛPMtuW+AiwJo٥uњ쎌oӚpa]a:51t@߀j;I|hT̂nkWB3Mޥ!Ki +qu4}p pUoGA! l]sŕq +B$b&ynZGD +ϤoGU7P1xb[9u[X8SB i@yS辙_w72;y!/nU"QkUZ5 +T¢n2|y9}@0RAosADt9f/UCA.ު + ol:BwCp?ϋy-]?Hw/EOo`J*m{&FwC.MFwn+2qk7v>v_J! Aa}-5Lܧ0]7冰0Ѷ )ٸl2lm*RՈn_2V{,f$pib]. +үκ`gZw7!9W vc搶QawFHHx`9*ff/GO35v^r2Il2h\ոzOi2-킻]`p/Cy,eK7bH1`PLvZ 7 Fvd{K&|)ӴyVؤ 39N}8 B\IVY2Y +2ӷnmpH=RtPK/sl8h +Khgu5EZ[93~qFmO)eYכ̮?? ~p0ܘl> XYq ƸxLEngoDxKw&h@W,jt  _+ "q?M{=oB<ݝ ou4oWc)ODݖ D倧GUtLhJwMW0n6>}*E惖gb./Ԯo]9j)|߮~ FLk`84 gr}f][C"t2MTfj%(KK(/xQ?U^!߰,zƅAhr>N^\"cE3@72evaiO`]Ni.LN.:7vB!ꐱib3hߖhIYw&Zg\I9oCE*,/dϋ?n K/rs.&pr3sgtWHg:I x4'2"g=L\za6jt-ec󾩩 `L5[ޗ8]%n8[4 8E > += +{WҒeǤ|d⿙11,Ġ1vv Ųr f ǯE +#5_;G2pl|{-P \ Gz핐օ.?IjwpT}1d oNt4($eQm{ceݽ`KCXa䪣=Fz#d|xp>T9>W|F>>᫿TϙXIgwF󫪙~Zx6zJ~oM-:`DYP~vwQT 81w*fUщԏ}Wx?:ԏhx@OZcȡա}[݇U?:'bmj菾b4 +W 4IŘH}s\tQhN iH +pϢr +>(X׺pSX2CaB҃%{-3pbQ'҃&  Įdzj$>WK@x(]#k#+A}C +?zo jp^Iw> cĭCEϸ!+C\h?.\nOrJ-\~.9pXBrDŽw*Q#Xrv^SWj) ؏l'rFLG]A_;`t\I H!%9СWmIzM8APQsN]È\Kfa( [wï>!T}«0 dW58n]%pd^ vRun"uf_A,e1͊ +[[ -v`KI4ޝdRBuw+I?ԫYM1c&NoHϝ +nO+|_h 3̗lAjX+R8Tjui^+ߙ! dDU|7xW "k`I{_"b>Gs f14h`O}Bw̝j{UhXgJw!a}#|/VeO7U~Cwz=+įn î*&`j=w<,Y~|Z,rFGsO^]LlHϒ?6[Z엂xa4OA5B> +AE=ʕѯ|3G1c $N!wf_U-t +1H0<~1ѡmՈ_WNjqmSM׫3#NoGeLg?.;=-7}Wy^BռdD Go3GNBZ uQÁ}71wZZHc]cqftNuX̏. Dz '$8{x ű}8vǎX pM@ Bm[ 6p[syc]m9tmvYJWkKs`O/ši桴Cu?V7]p8tPNwMb>z$?Mmx:N1pP^qYkCVۣhJ|J5/YT +LbKo3Dln4~lǏm6&?[/܍`{*Z1 |/a ejo)4E~H<@| 11'L|OaX!Wq?LmgB,PbeGbrߚh| *_gon0McvT|1C_1d]BO.gJ+MnWYyCS8V[&a$$bq 4&470:H2VXqY<)bڧi7gLn;;?t.mU?5uťcpocPP20;$c$7$;B)uԄ i|?9σ݄De#L_3VP4Sڴ˹XE:( +z?л{>KâNPj.b$/dAI2&'Bn_;o5Weq% +^ԱSWzCgBWg.tezk2n\hVo=27a׳;S=di.zA֓3b+PXֳG/ ZZSP|ZPSzĵL2WG:tyY;WEeC ܱkڵWTk]{9c&>wąk_Ykg׮2s;r +]sJ^G+ZT.a {t$cKUz&ЁR_/^~wRף[ղ˒pOeyZ-I8(oew?Jpڨ87w'.4./~g S󃱯䆜Y[~` Lowj?j?T hp]xR=~=GAm*Nj1ٸQmR6ՙɤ>S~N9]Y]O*{\cV~LT6~uX'׀#>(Ϯө:MRT/Cd) }Fg@.T/;kKז& NRCi˱=a5{d_ +pfOK9$RfCn)!! +m۹# $$7^&];r*5XTSSR kdG +wQHiI2Q' !a*1Iot:b^Iv(^^˹ *̜2z}tAdMy~6F2cCjlo5!Dн\)9|mrd T? + q9 BjΑlw_pY #+xhu-\ؾ: a2{{+xnNeDnz*uMmhp=[JU9e2]a@.oHWJ| Zl`mnRw'=[׳ Yb+ʜ.J48c8a(8_y<^(Z^DP4^Xm, TltĠ4slsϫ}Y"uBnAѲRcciHڡ!EՄ|0>pJ N3E%Ȇ`o=K4d}+ pv$,leG5kŞ슂1 n 媼9$ 'Ȗmu&Ϡ'; i{FL685'i58˺NSqg<<~Z;}hŷr[^bX +픥e߭DƆZX㦀Z Z#Y8 +}2Ak|CZNzEgޏff Nѫ[j&})t2l@Z̷jVCR])_f8fUS&!U1ޭg{&[J6bT]MxА`jR/WrEY[ESr +4]}R!Bg.(: h611߬5Y¦IMRu6N!;MBGRtc&-ygi~KdoTk8Ro$ +ܜDBFMjM9:}qCè^qG,5_q"_qƨpZz03uxYatrYh)7{1@` ? +)͚t֝#Υzm3b~1xqfODeU7Vua7׃T00x}̳R.u[yu2hj-n2ViomҋPY`([5 Q+([:^Uz ?E$kLZ5J807\RPVPL瑖TÅcxeMLyREx'0?}A "gB >u᯻VЏ*ЏKK/EzH;wްZ; 8b{B`'BxQo@XwпDHNeOb; X +x^ ױRx7UBy'anOM7iΖ~zT}IV$VɁS|Nԇ_Z"},=/ a>[5P88ZAWWZ☴KdY{#ʐaڂɅ'q~Fej8I9'=v`3ܒ7T/7!5RŀYLWYY`ͭ/c(zw i-KmJ*<\ Sb*Qá_M;SsRM84y*?l!t2Nt˝HG•Z1 HlJݎ"ɵ'r2++QJDpIA+.OV{hLSG`a`êĩ2f} {\Zj0@⃊5{hS)+~~( \@xsq &>ʮm;%=/ĕz_!]od= *|FUE_SU&Ȃէ +-+$dU^Kyh8UY?2W h4L Cf +xRPw?xך/ Hf:&_ӿQoɚ4KO'Fr ʃ,SgbµK&* +,C G8,ak٫nW1 r*VWR[&nKÜ]~̠UPДU 5;Z<:W^vv hVavDxIiUٵ/xQ(8!.H_y3sm;6S3`)3m]ͷNJ~:U0ôҝΗ0؍&?kӫSb4~xb~l,6\~>fN9Ae_+m!'}7&k*49މm&ugmic$C##jQ O*؇mHQ#zsP]nx + Ht#cx5pzLжC.. :=]mwj[Q5}E{D]LSYzBG|!]K@`([5R;UNii9Lh@r*7!fnHjU +'=AB0þʘVla,4g҈x<ܜ܎ں3 +ې:e/«@yxY>Fí@k)vsT^dAjl/_L(ۡף -*g5`c[8ޑthu]&`GRmK7p$DG"]aM'"Y-rqy(u5Gw}]"A1ist̻з(ЌgT7T7qXړ$CR 2oE.qLMeG1Ɂ7)Vo b +.y w)zM)K?g\L.9[ܒy< +icq}xsp~Er8ggw}YU61m5P:MSһ P!>Dž/m SG##r,ȑ'WI=*G +I>>{sK*5 $N]|zA6Wt;+.Ŏ<1}9ـ${䒠#pm!8rZvVõ:p 8ea@_?<^'삒|DOr|wAsjš0#ǁ45; +vƏV>d򡭡G EsJ(?[j8,eNXngE ZwP @8J_KCgbωcϮAQu^ԽXgG8SIGC8CbDU.FX7aV73q(rD}vY6ZŅ\$B,Xsx\\|{]-[L͈S7TB*֘M:;c_F 3[08.#HT}n:j`yԏ꼇n~*kWVxвHF +T)DZK FHr9Î#nDnʃAzU0.Me@EIe_HCxxgIz+;&7ǸV;)3UE=K +]d,d9j3Z9̠ *[}sEe|/%6Fv 0"f)_²܃4MwHC ) ǧȾp"1R2NrSe MIZ +bGqBн?ݟsD0(I2zFU dl |Avo BZ/n>)6\$(<:nA#S'aok*f츸9YT]Qdx?N UR,T%'ː,K&CV:K &#Nα(TXl'r,u0"αJSN$xeS.Ē)[X 5P>5F$lGn&=O+{.K_1W*}Ɇyc&#1~NJp-x<*'hu@\WETl8^h aWLL+z +>_q" t2[pS\ <|D*u7 -';woh$ _.eHLq򊌱h*WݹR->=ւ!;GqЈB{/^`D+jqN^KR4BbUr,dEG )'PahALh +"xMUqpl%1qRQLs42TEpbLQ}{Fd&}Z?ҮCldXo|8+lzYy5t){rdbVŷk'$zPV-8 +C->gr.FL + +(b?UI֋{|b[gdILla)[=M}6ߛ)^j17&Ǐc8zn֤ĩ5 a;#}=]D;BTΑbYY)OUG)楐bA +)o:aL>ψ#T}JΒ|fZo?B뿏/䂆ό @Y^tm&1 @OI聩ʅ9BBޜȑ VT@WMSI|J׼,8*k.yD jV8h%Iz4F߽+9MbB)V>2M[ʥ;թGç4ٮfG`kM>1<0%*_`'3]q ܔA!2{t"d1d@nYRr*ǵE'z&'B*%K!R~ᅔoݓ%|cs2䔱v{^xA /d .XUR=0Ic˶s%9A]d{l--Oj^/`/+Z2-xOTB.+M%U:rX4+Eupv"9oMm}<[5;űld˹oLYebYo{O|D:"|xY1 4sV߱Pw ` +8Im"Vh!LRAZᒖ~LC`NE?KuǨu+HxCWG]͝˓ڢ'X*L'\Ō-(`Py:4P7 KزKkLd&|Uvgb#bWrtzq(s6+e+uQt}yv7Sg_HU٦Cǧ*fQ6r(v6HTހ 1Xxt2($aʳyLmr s4ϲ_}NoAlS$Q5Ȗ|î\F=/̃-қP{SP{stqǖ[/=ԯS` 7n]%>}1rgS`<cҫ /oٔ N:x,@>N)`cGxWUCwRc}s-2aܘRLtoğ[],Su`Ɋl2o5sz;v?r`mgvYI}A4P +&R&MG&aؚ [?C3cFdeX? Gp%2w> +K-m{h5])k=Res oPUkyYjϦ2v2[dNuZ(qb!.h'G, rnߩ уeVoS淓\QZ'Bq^ #uGhc#&kș;%f1g=D#d:˝_2Db?s,,۟GT&\N&մ'.]g4;ND)X)&)ѓ M_ormMg!뢆Fߺ>v}ݝjQ-y|n̅k~Du{邳]C?WŦj-}5PlfeO4cG=YtXdLE(V=fuhuHk ip=Mg>9 :5{ { iגpl5:LY;z%/TʵP|˒@YxqhznEמUF$A*W*] 7 =3>\o,+;?J,ISs( Kፓp?&˞L7U~ك@YdBQ&]&' ?͢9l7P<$@VOy&>iJu u)NS[ /ECʙTw$NFid^Y޲4"eԣ!vAM,,Vs,OkBC:_z R!I-=> _: &s6?mnEVg$J d%_b` Y@t{@MKZA2{=@+Ǝ=$cS%-(ŹEwWJ>+p.hyI,&@ȇBYelKUNԹ}Dft(ݙ$>:KNȆΆ꓈i!Ukm+‡9stq&NmËC*Enp +@8}Gڟ>C%!ϒ]ZNߋ@\\8 ^5e%ȗe]d I4X7z҅ #inĴ˒NuK1&NJ$D zW~+P/e˻%I&oC +7y˝RS_$[UL0(tW;kQKKѣ.CwMlG/d۹lC0(WmfFt1'1i!3kv9xR7b>#ݼ`컹xvFzpc9CBnzH͓-Ld]DUzCQ韠aWbR jcMq׳l~9ȘUf4J|6$E$[շp O̭YQP&ʙ [ԗ rR )ߺ0ΰP +T7=P +dYfא(}g7'QdMl8y>QYf)n$N3 +5k1miCwunЯ29^75 2WQ3% ѬhNRK6*'%>t#}e^7O:-ee ȫe׻ADsIp4qMԸ OF$^>d4 v[H%AMP+Vݴ1T+z9)]5.Cy^kV0gl Vj1-|~ gVYe[;&20LO*.a-1-.7а%IhܒG Ϝ|y zY8h}qYGXnDGcHKd|rPQ:4]`{[~ٜs\^8 lCM~.;ŀEQjDFv%țm;ٕ7~t?d'dNrIVN .xqTƿ)x+AE+@$iF#bR )ė]iD%[yKHrsi)Z%Y܋,Z+w+r+kWS%^Ln^qE!E@@ *DO`$.0 NM} NbnlHX}y[L2ES֬wv/1RS2fDEvia24-v(MsfŸW2)e 3fHH#GsmC`kd!PzDLsy^H%4y4K=gnz7.sWsvpvXH[Kd(a(7cn$&Z'kgc&ZBgu^mݩO.]50`Tޢ5PU8]Ꞓ]1t@wÚϦ?;q&#D}f?~=t\lmOԢPBRAQPB|0ۋiJگB|@5* +뤯kWHd$Ƞ D)q:hedeS{kyNP+@yb&k ;B`CJMa{vU褙#XP +yް14G]5m0cB ' <sq&T'!z&7 F/汓;F[u ]u4ǛRxHi-uy +OL$&U E&J&|}.݀.IH<}MheB>7('{!fMlc}XBla)VN_+Z%vB}IhPŃڀsviZ=Z' _޸,QӛǀF=AhzdW|JX\Ň^R>>3OVhۛi2'!)SzëX"ڎhK*P@TWS`aUN<ϐmdʚDNQA0KW[3L +;Vwٕ/yiR^=,>ʼ VwKvEpύ=7[qOn1ɾ{6r_%7EW"|=LZU.bu]mFP;1M{Q뜪վĨ賙u̍5ϝ;ɰu.BCwD41 8aa暒^m5v’Q%Eqb ,a+uȴGKi!,LR F AN$Pz AzzivD ۧkrMX5#O@SpĪi>'ZSR$5\JuSuBOt4c.3 ^2&zޝJtOwJߦ Iam6WBih;__K5Yqu%%^az4"z# ֨XT婁 b: +RpkȠazGҽEpne|$1VAOLOOtk1gu3IUy5{ЪR魡NYts> +>>yRQō->yƿd@c E)*G|Y_R5%ϠPn?,y#znK5F0ɕn^[G`Ě2[TiI\|+r˭j)׉1!4?Qo;cMw8@ {Aoz{q9}LHg:ɭUw0h<(ƹ +Aj tW,E!{up%c%:'E< +0OYP{ ͖SbrCڪP!_;PMh5.,wJ S)LL8oZ-;E#RlzKW#J`}#,4.kWdNsjTk(/1%BKN{8e/Oyh.x[d+ r=CU#}MAI4{ZjV[" x !YMaگ%^EXF> @|aU?.X&dfD\IWPHGTwUɝb9Gp%@?4 c6Mw1M+A`6k6D]9|O- W<n[+C:p VP7w~906T?Eȹ٭_U9S*o$%cPg }s^ӉRkq;`@ N}U)TҔ@}=42fW* Io$\AF_Y|j.縼ӽr*­R~gCB%{-pĢ;CaԱDz^P4Ѫ]&Ȗt;AH}I9Q%Ptoh΢dI 1%aTOqn5"p_5FT|5_Σ +vd6Y8$ @^!7$U;;S\rԮ\v&|> sc ˙T?yO&뙄/ƄdhVx/=ȥ(N^w.Km}yɻ^+qftC;ą> ʽ?v&ArջsnCd nۉ_X[Htk6sfno? rӉ4rArޞ)1(G2vU0KFmpZm +eAg`\Co6OH>TI ?E{;9H0&1A_ 'nn UQ!a{EuQ K6+PLW+CA) +W 4f~[ްYD~,¡;1NǝJ-"޻ߍ[*O9n6Ut}٭ +ۮg,k5Awc v_NsLQ\ p'nUɆ 錶sP*oFF)I-9Ln#Y}nͯ-GQ+(}}Ɯ7I`i'}#cN+d'uX gYH+޵%fjO/ |Z1ԵR݌ZQq(8T ꃯ{PˑgxE0Z#s[;ml7#՗m͙{3r~pN7n&7j㖡z$ 4d&YF=zxsf W7GFuy,4Fܭm +}pkkg2+q=B +~L$qiWw3!"bp_r)]!!t!%_hĿ? 8Ҍ-Y7E'H3o'#8>A{Fy$w)Vv8 "v\-K8<_ʼnǰ>4 +Fvh;kIN.wq YrܰYbZ"VЬ]{-g[fBk5Hemy8N!sJCKŷ"8S?Ab*܅6[qh0vඓwfu\3.pK'}qQ9$H>X}|^ot/Z#1R9~ ; `Ny zFވz;{܂J'=ȀF>&Tt+;!_>Qv/O=_7, ;KnZMM|(2b}G;or3'E1zALZY3D;qѓ'vx96E=q^K vNX$lV9ر"tMnν9O0\I;ga/kҨ>Q{6HNT\&`V)ЪXtD|Daset˸,WRzN]<12qβHf3;BZUZ$vHh|1kr{K^'FCwƳC7Sʍf:~~&yA5r2oNf+I*i $p yy`aFrSic H5$sGX3oe_nwJ]w +_AoB/%Uʅj20g8y!{XW +abp.WzW7 GRUf KH_wQ/CDfV3D&X&s@ d*ӹ!%xyѩ +R.'x_r  3zym8ЙB7{kX3~LR=dc$$n?`` +v(cfZk Rn{c3t^ӣ_vG:_pLJ}(9X%ds-Iݵ v$YJtO(}K\HChGʷ>٩t?Xp{b>U\Q+ٳG;>- CΞqB\Ԡmoy`hc*wʾz7rwҲY/q$ot.N|u{T`߻nG7J>=3"ֻPff[yWy۫@\@I.=jZ*%97~*ԞXz}JJm7r"R7[0'M5˺zya5ڠւnh-@jdG\8XRo#8L|(p㖮1A-3r~| +DD +T< :dֲNy ;ZV+UD#xH@ւO%KF^_}6]KDOdEiYÍ'V5~;oCcʣ^w֤K!gUHkTlHO\r t +u*4ij(QIc- ܵi^U5ľAhSV&YuTBBmifHl le٣i8?pK?OohU'+=vRLBZ*[Nע [}° 84^%_sn¤nE:)ӊ֬J%Aj$ȍrs]ԋؘ7ԭR}tӽtFTZF/ZF/i,18}nbtt'-Lp9V=ZFnn=LuI覡5ja:/SmQY,!Zސ&CZ]}E +.kͶN*B [nb,ʺgxH:@kcNxՆQ5-䖍nHT LZ1ix`L[8)26w*^%:&>Ic&giMSIj(t,fتhY3YF?X74\ M +eᯁs#Ug^l>Ÿ..m0d;Ù2'x4(Ud-ϛ a!Z:aUun!Bbu~h(Hַ(JM0G4, J6U_Dv"aؘU&,A{ز RˤpIqqIqaI?(PSM tb.uq"R.iP^sR՟X(Uu1UiKo!˭SFq|=b/CNgK<{`JAB hE0Tĩ&trP;G5ӐoXmWF)d[b) M/+v fn"Ey@|q:WV@G"> +P1dT*@4 WM$ez=s cBF?i< a:Mf|LsjCS|]958fh|:x zZBKuն + d%-oS| z4.J;r+fhD@xA!nݴEert͂\H&{SMWϏ䊿nGSnhQ-+I{ھ2k8VI2wKOBG\F((OFOy \j&3ܻZEtdM { +"}N({ɝ1gP?; zd<蟢Ov7{e쐻t\;^i{eYHzX+BJ  +­RpoHʦDN8^&'*[DZk`;3B,uŸPx7My'0,ժsp\q +p*vVNG.(4f*òߺxZd| +Vy`PS:e3-*JKuӰ}l eاnCO(tاγ>n' >x?̌} ԇ@u{˔wҕG,յRmKU!U.VohDv;\6UM,٪@%\N\~=Qr]w Rj33145\d~~xpUnS +DfSJz+B\ml}&[l_s%i@19sy*I+?d3Q}aР&vFHiDC%Kr!)Knoq%G=,ReoKᯩ;mSDKI,Tr񗸷 ʚw V% +Em7m[:Yܩj?2&DiaR5 H0/#} +SCkZRVV%UYvO`'Y@4)K52&C[uR'VHlb5) -UM + VWQ0<fT褦#[(IW*Zp?U& N'jWjydSa/1\} Fס%6Ld~|.\%=ҧe4hor 8^̗jHJʠchNp] Rl '<{p+M f4kXsv$ +bvtwTǍ~U+&~FN=Ȩ1~c* 3)O+Ɔo.@$ܮ%tHp݋Łib E/HFo:Hig r0UkCLZfvЌFQ 9+0rj]52. 㬡Vn4>L?B~[oA ,bo*y7y k s+F-!KC,Nz +]y9;߉=Anٮ(6e{qC:g2i@g6/}ē$ ۹5{A{j ˪{Wu)-7굳R8UW^6{t\aUHzׯG[|WkoRԦFI d-JQt*%@Zϭ"5 +4h +ݝ\nY~bЀ%tSw>[OIL'am!uɾziu0}\n͸׬k?rX- =‘Z+i/Ks>e_ƦW뗢_=/tQa[1X"v)7>wPG1Q"Tt]ܜأ*kqnzE[QUObWFB={kówDV cܤk p"5Ƥєdh(QzN!6ZN8tt羑u_]]kX׭xlR~#VBZ;=Çu7@\Iubp ~}1QYΗp +VQ24 +̀r ݡ)]$V4vJ+N^KS" +[#@xzFStukxI֝[Z%)CC{ +Mi +"헠c?! +P87}%j{[ +t4%VٰWh-1]foP9N*Go`F[ANuaB+I[A2,vg0L6mXVvjfom#q%+Qd3e̦OQ%GTnkF W~-~19ou0W^I R1R}+=wr|H#@נPE,NeXDu{|M 9S};6;Q e>NΟ>7 -O=rG)MRqMiPpPplA w"F8]1]-nLe^itT/HX[rC#vG}R--{^٫)}t'?k`g[g+=hXxwP?R:uyX4Qy׻#ңs⤋'f wlƜ—B]IKMx?n{7F2P;K&,)O6G@:@e}'X:a g,]hcNytqߺkFr-zs49_lCM{J+asJ]i` \d;*w>W D*~aKP۲GDĹ=dioɖ'~٬(j$$N ]~U͙l{k֜Tg3?};8 +v|$EqSrBdό^n oЙŠ-] gZmM[3~FyE}Eoxj־;@dl3<& /cApjBNA@y +ZEtzS=WuhLxq=@gEd+zQm +b&U30_ 73L* zXx{ + ^Jk#˵P(DHxKHW.[R>W> oUč4}C٘v_E:ain]iivMõ13@5^v \qp|z~Rkx,AxW:ލR0ŭ ?jxDOdr!8O,K#)Jܚ[Rp<sFr$lY U"asmNPk :;6U|K5,Ծ^l%,C9%rA$qXz1U͂kԖqZH&A>i{A+8=%F쩏p$GNx9ܫ##19cD,LV?qbZ,&qq5XH_%n\wyfƦA93=Čx?20C i9,ļrY3`M-#BM鎠F`Ϩ́^,eXa?lU8B 5TD+쥦Y.yJObGꤟ7hDi1i5(Sew ++j[Q%@Cu MuW)pz{MO}Tk E nmvcn4F&o_Hɿ *O6bp " DTD짣"*(n*n77qCJ l$\S +LpL6XYI3*3bXqk7d)s & fSOp +>jv) V '[r'Ew>ꅼzIP#TYoGsJN.+I5-yb6x7*׬lNejk|.oIUҷ]pۛD㹛yYx sԂ!tMg7P!eI+xG*SBA ֿ%QA"´],pfJLgӢ; T46PxȆwodgo (:X.|0tb ")ݻ2gߝ|t  " q.%]GvH%}B(w}"d +lT) w [!D"7%^KoVw#w7kw>=?3J9>e(3g2s̜u߽m̹fgx3gn.Q-TU$!rPIb[J.Dg)0Y;גI K>slO>raWXe.g9⍅#+0#f{~f+5;Us%5,Y&|*6ro)7')b7wOBKVhWlIr HG-{YĺA00U7O7}udgNi]tz0q+3rE0 >PWHbe0p62KcJ8Xh8s'D 6ho,W)w+HꤶLYa),L}S=߷cXyJ2v*QSJTd>UpbͅS;meHk9J' |䍂 㙵򨕥 pnJY.ŒijI"qnQ-I$ g +k])ڔHHbiZBIԣW՜ŷ{sy@"d!D*z_߂eRI5ˏ%wgQj?gŴeēOp-L,2$`(HfC4$I'4ٔavN;yIv7|NvrWA{/IR-w,DWrw`znd + -Cv&ʣI(o*3ϟRɻu"=H|dxSޜ{d{d2E _<)w?dML1`F ~Qb3d2:غ" :GSңG)ixA?QG9Ȇw2*8J?#aD?l>j2tsS3e ysFaB&o4ܟ1e{L)J$U/>Zׯz0K;ձ62>og-*(]HV}O<?t:fg}%g|1:>MG>#=cY)9EW6㣉%+MtNp)k6KS>\[M J1/JyYJ}W7ÑɦץvlB$s[=`}%~:'~x"w=ܥ=g.}g41ѻ'nsGF_GwεKgӽDPȿY}3o1@1z??0sd0d=}3w]fD֫]M$ !Us5{s}m}g &nZ?6*o: `mޟ[27|S݋;U,/IJ&Wjk{(IVE|qlyح}0!?AasA4}tsa8)eF3R,79-F?ʫ(o=H;#b㠙N@-yP>N$0 ޻MpӲcQ^@Ka۸|k2>nSpb_`.CwVEĿ@@0C_z\ iS+yn3phDd+ L[P`H-}[(zYtVK,it-$1b$1b4'oāxwIƑ4+=ZVbVpeo&)*(,zi+IԻQ6w?1*xC0`A%}}n+Aw3v{i_6Fb`-$;z4,st6;;6uy84PtbT,UN/0?DH=GqQ &pfYhcğqɜjCS[á^P̢T/BǀN"1Ck N4w7,CNcE!^xD{aWC̰Q%\|)+Nĸ?J6^m},MI};%V|_XԒ62=r-{7?5hoDOeuO;O&}|,ޗ]:թ}9@1.׶FFO2~Fe(;~=[}_@l;O@PQؿ"Gle8c3|x UoWEF(o Pt& |rvgEHFp/1DZ۸'KC='B.P|G7NvJO757k,CNZN7@+MH}Scj+B^Z?4<2NsZ%T7&=~onn:\U=Bۅz/HI*̪v〷Bii;8wɛN7LqJG'F4 1D@zf10>Kw:H\0ճ&pibX'=Fk<hkptFҽqN?<uݱ\?{IܑVN^ ?P`[_/wsy=?VϡJagu箜C9橿`yĤ՜1&]֦59v;^^;"wټf^?pʵSiয\;zИvi)`A{ $'h˾F/ +Ǟ){ +2تao5נˆ Ymh;#ADD6adС|g\d}#% \ݏ9کz0c(R(a%\uM(D}ǶPn~c~o52Mj{JzkK3-t\}IBӉgv->]UjW?IYIK)peQQ%XiN\V%N<;9r0޽m{ܢ"cMzU +Jjʉ@"XirHѠ/_k0̗h,~'zpA+vJƧ*CZ@T;"ǐ˛Mpv+{$XQÉQIJuŰƱr)6:a4cjX`IKHkeKKs!jh݉ϖ#=x(i$8Cay8Q,;:YzUHf=yo} |<#{+}~{I{ƻ.n!x%vեnv5Qhxv$h'ި/d܅^~nzʜQ֭Fۢ. ~ujj@#MR[Wm wPm d(k Hkb RYMTȗۿ8odyⳞtQ3dBzFHyFwVd ɰi+/gJ1ZEfU '-UGq.0#z6yL[? +HCF5I?QA5B&~S3b"5C؂l0hQ8I}̠RMg&4j5`^~yflsH{!0f`]%"nky륳k#]F_BoZċC/к8@iض\W<,2%zq%>nH-'! l=>j1p8?]6z#Z40k6cŢzmI/VHEZi(̫;܇0:y'Ws*d]3qS@43vgk^3̀G?#8ltb9yKCJJ<ܬupǧbJ< +BO\߉!|/zo8[,73|;M +xwpU +H٨p?kM=zS" vJY"+-x;gᖐ2_ܧB PrCnLD ]Ab$Y붋R jr7Ot0'ŗjiEr#/lKX4=.9Jw_4uٽ2lkA`̃459[+Eg3%z,w#g2 \x$zWS0̹mX̙я17x|ڈ~l0F͗Hլ|EEdm'PH:a!BYVՂ{Ҹ.ֳ/Ğ  $"àH8+1v-0LÕөv [1P>ZC`U}~,E,i YleR,A w.Co%S@'.x5ph)Ǯ~ BWڝ[駀𼑝1ۥ ^Ga,%F ~s +BoBʶ;N;!} ik< R8B98 Fv˻=cWF jN' %\8zPA%S]>Y.3)&(r]\R6E0?dhY7]_6pd@Pyθ)͘+rWJvSz>Xy3-wx8XrxfbCCғ#CM1I__P ŞD^˱o{mqŦ[NeWN5HeyX*M6BCJNwC /ϊf;9ګԶߊף廑v.6i9¥' ߉0t3q\UQ?f:CwЫcrD:I&Ù=R|tg$"?vs(<4Β)MF^-EK.)ixoI-l9SpY2ʯ^t l&~^!9W&U, 9eGqn#IZh4z.H8<>Hy "}VIrFʼnE rDwѣW+|$+=8胡AVKnF*p( LUsXI=6H[՟=gg"bJ,*ڛSue F&ҍ}PjMPeOk +qnF Hg %NXe<{"'ƈ|le(wD+QXbvAS `72Z,vv@e1a<4 M̛g\ +cM``4)1 l9HHrww+ a( ]QE÷j3 ZWfQݙb^OJ9v-46RCyW(^wL;m}}% X_WfpN޹B&+\0V?0n.A٧ )U|uTy?Џ+1@tA{λ ۝?yupÜx8̤ݚky ܵ#&rҟ՚pγ#l}wϏ&lԳTҮ LuS6pDW-DQ~_QF.kʵXLHUc6琕|!UCܝ*pϰb] *^."aBA +aWƼw7yëF[ۜ-O+1сU1XZ,? (dbjUc,~,W">*¯AAġ?Vqn%*9w>βo+] ^ȮЯF鹉!s[k{s2@ێ}=7gsOt;=h7c?JBB +d(rpeΐ)>):A\ƬBT! E` 5ё~Ti^LY~rB}H:ۉ( >;c܂wEZD՛if}I؛/[Lߵ%Ɩ~9Š2ՙ?Ua/)m>nôJ藆R7]yWk=lؚ9:g(.j!LCXq=ik+@Ҽ*~n)GLl씽Uzԏm *8!?Ҷdp0mGEDI}]jvo5J&~zQu\̾gT&ŏ +fsY'R u<}/IQd :0`?bj;] nzF104QDkr"3).w( B,߻|R;S o@`uCMIdi,hPm~ז-Bxx~uݜ2i%Ǥf@,>qq}퉫e0lL\qd>E\T҇f-dO'SRc&%3)is%e.̿v(+zEWQ/nxSyV2 + wvjIpi<ەBp.t +cO*Jj3u+jێ3)r̆Tu.,5H8"} A[Eϱ&Jl J,ךuX.ŖAuBq]'e^:1.F^Mt=Sw-q FF $".(mǕ"]Di(g7HɝoTյ=JIW~~'nsGμR3܊Wfxuz细 |A+De\hs0gJJyXzbW0*񧴵kˋA͗mdۜM57]``kEh R띢IMXUM3ڢuZ֗e{wr⢻'OݰXDwMx𚚙kj״]S,eA zV#0׌IȘ~S{?Qo~m??묄E7gW/'u#/z +5(N XyIu#{E;,& I)wk뿈Ѹ7G ^C/[:3S^Z2>Fo@RWK[fL>/(ܶ‚⡅@ W323P_tEVYʲE/yvtaQ;c~gΓWnmrC3v-$=pً"h/9-]s\4%WP/ +f6z֐]!N)ZR&~&]smu50]RX<_o2UR>]5oaeK2TM)|R +˾R`avlc/Q]׽8( nحT׷MDNvpb IHKKkqHo$a@@xo}F#Ϋ4}Y{ZdudȎ$sm,z}SFN),]ҿ&Kܞ#{ɹ`cLם鬎 ]x.Z,7|;˫ZT\WN~Sw'?qSi#rGo =lJ[.{όP<{ }lD7lS9Uz+EsVO_>鮀@ϴ`*JgG8 &oBpQmrMphM± cV"Wi;`Urf$v ʫ/;aZ:ޜΧ/{0iΧ7qQª;'7MW(#N}J:O+|x+N z$r݉yI&I଺'G#(_aV>Cux˫r vjW~ĭ2FcsItmrNy+|ve͏|wLGxvF# V-Ѿ6*2yv+20yCpC,@= g-\:yMB"IĨ]!#S_YZmu:+䴿@Ok_~b>piOٌ<=Z_ʷUSpU.6|;%} P$*]zh]6jrEe*0ղR$h+[.Ou|NGO6QF=ttn]%UCqh5mlF2 +H-kBϚs6Y5ˆXZ|":6 axa\hCgs~ 1'WH<YH̟g.,= +ArBe 2/\MG,g )oN$Ǔ)<)mL<6٪ Mz2#?4dC* +~P"?t}e|x,4i#d+A"pz缼,s3bY+X&T?j!bl\'.v67YYl,cW676:~&{ #PX=hΦ;Ӝk8Z_0$ < %=ѡ`Il0?_~K"gr|()$>j;+.ϛqN[ ER$4ڵ=Lq E7iﮈ2R$MRh4c I^7'-~&}]mVzg?GkcyZR9<'̴Gc}W@^$hgU#,2Wg`vq⬑)u'5WsT-pցC~Qt >߁, +$|R$Jo sl4j4u*Vrwg5quVR:ݻZcPpѼrChMݫw<l7˘[a9̛cXE >O*mM]Hg߱zYs/^oVS,SF__\|eۈs;`qf-q2rԴV9VMI2b{t:Sd$|Hd,ouL|OFYN4p)$Ir)é\QʖhGK 0)}xA _%z<(h^\AB惹O\ʟ_CΘs%?՞; +;u*>tenTY0mkb^7S0'n[. +ODI2cjt1%jIȶԞWbP$L_؜pCEL7 \3tU9wWUN.S-A;`b>?E^D3m$-~W"[ gG4fNas}x*Me@IG٤\J-D`TcKs, kp2ꋝgkvk`>+}OXx8$c`"+8IOSb j֤j2jsڒ ߫^H&V2^* U$jl}Lޯ-V_K X57>_ 睤?֪n弴KH)t(2qև0~vі@i¢H[C˸~Jo>I'#}Cg1IM_$$_&jR]VN%JL_[,:j!4wz[,\̻MBbiC YB+._UU_k`kt_ ^8eiUVNk>C[ULm mWm/CKKէ-7 z]++^GUJ~u~}'y͈1Mvm46ĖwnŪ)*ezq&r&MS|W$u"T]r DIAn]YbJZGeLHWn"FzۑT* _QrkW@ߥl=_V`6X쑕Ub YFi4'>{CXb# r +%K1 R#-*x-o Kr!"{nt$,7>EMB8=6jx @!"dN&Փ_ˑ爸dQ9")<9–91!B!Q[ %E5ʺ"Ʈ =eBq>N@,~h+)Ubw[xV_ER*8⋕gBnOWsħI}/|D3@yv$~ՑNYҶ.Ub&4ٕ w]zIφpv\!܀7zWV9<8BFh )ZPi15ԧ3AIjhm,9 +Q:4[S3d*Yj7 +R3|lm`Fм:Ej\aCc4O!+RZ'hhm"r"hև&Qo)c4&\iP4?w6`T r ,MT.3DDzWڙRuD9t +we;\&!')7qy+y6Mh54&4l\^^}",pѰV +]a9KU~s|3l<-qxqcWVX|ha +؜aT|zaIhUKwpsRrzri9􎳒nT7[=^#ʇ\)g$U'CFޜ‡^tLrlY O}O\YYn*'[Wh~dXκk9pJt*ʪT\s8ÞP0IԤyd&M[,ϗ΍- 6_䚉tp*U =%W|k*wX.']nɁ c rD5,a +Jm;4@#tȡ/]2QYSu4Go;y S S:]{wEn]͠?Op,;7W溢J4=".g wI\R ,c/n͸06ej@/=n}_'qՆ^?O=iUp +wcU e%,cwcNߕdpBG^ͭTTMX8uҤhqٲ7[.ӑU͗5Qґ2#(RM -F a'tǾy*):oD3{ VMrŖ[y#Y]!*iCub !I < [RdAQyx䍭rHR@'--+ ЅhX.(yFEm#uZ5֮PՆYHX,rIJ!KjxmYR{d$_hc]x%ѵ6uI)D˅V6}Cі ]<Ҹm~ϗ i,496lL˱jT| +M&E5ܿO&ʟgx5aVqoƣ64~d@qc6N/A??R&W .eRhrFS2luhlL!qZ7CN"SdMUaݛzU/ 5YJ^!zJkrߍo9jb6 ">]d{ح';; +v1]opA &ҁx\inK})e0{ލ!dۮ{#q- #l7@m!!3;<td%P%K,}9r'nBc$9"ԛO]97CM6QSip˷ +ȷ)J^;M~a1Pk748IU'b%^ӦT RnH6C%xmmww xż)*̇<璒$be#4l<*+>w:b)RW+xT&RW2,g鏭e,?W$OxiKq:qYwAIԽi4%X&ГnKןqUOuK.i +'69}U%2[N\Uq;y|/_tosKixtm}8{{u<&ݱc^ʌOZbjLbÌSm`)hO^ź!68J_pYv:c%tX ? f }s֕g5J| +tCJ{ҫ4gU*1ha 죕IM_.!J7p&˾_~<10Oul: cL8->l( Y>f9jJ d)"uaWۏ^*X[:zO_0+eV +Mm;=_ UPWl=+tWvVpi_aa9*e-f?<.BJzswp +N8n#_gOqvhr +egŽwXNńOLuK9E!gVT"{Ήu:i {PG-iT!8#vDeѮ.TVccNo~ٚ F&~D`V ጛaUK׺yJKb$ 6@b}pa|w1JfcN_1t C75tW7, v(q 8\[)[m8G=X@9뀭_=j/ihVh+QY}z{? Zhq#qHl3P9.P{o[ȩ SW6T5黓I\'ő,z@cLYS֒<Is5#S<.T21g~eZ"7c24Y2ZU|Z_,> ұXvntQ`XOڒK؊;"tU!͗|bSUC-c> +. gz>*֌yz ܐ N2Fͱ~dȣ6otͪFY+ـV `j~d;挡O>m2uvgww*x^ HE =^Lk}e +H+=@r3'Z'OD=/PX250)N m'%(HzazL$#EϨmlot1t{F ,׏Ӯ͓ujϣ˚z1Uvu 693P1*ns0vau8esZ.f3^d6KS|SsX5z?zChbI}) Mk|BԶP^sD='y>=-E: С)K(dT4[baUpLϲö AQ̃[]-7pDm);ͥ:vLh,X G6=e؜(G*v@nj*_euWmor5{6ZdW@9ZIʳG~JƼTacF\#`Grh]#İ} 3,1K>0֒fB.vrSmGBERs *k/|[w1<̴)6x.ޠԜh1# t1bŸݖ"U*lbkIhTWLl]1!bOFmbC^Aj_Ry_*|cFVϝ*|x +nSQhnOFe44f @.6WҤc!KPIߗ%9A[%AqJ Np0_m;Y/(}.+sJ:Pf%;eT#U~gė/$cI& + 6a*gzʇ߯g0'MB2 +?EP#X'+@$]3EY)lNQ|t7o(6*ϣY[)~H0*@Q S}z|οaؐ&;; ߰hj dGX.WpL'^R)1)mԝyc+S!O0$aA'"f-ˣEiyzjK!+?kmtZ4ۀ +(WE,m=싳ʾ;}῏At]o2lGÎ8<2Bs9NsIocC숁| m)dV+mM`P>c(Z4 0B  Y,d5| s2v@ڍۥ[Ď˴#wO}ex=(P֝`yfB9]=A3,+~h}OM|Ei}o3;6쪀RZࡌ1J v>֯޺һe Y7Z=EV'%>NT\VSCJYQlLaLLKէPɴHѿJ9ҳ>t-y݀^vihbVAzb\x5g㥇2h"yH1l.DUzw)p8bM;񊞴 tVFkkfG⨶%D zUseV|J!zb6fQ#^#A{HFyzP o}Ԟ(SZg3NWV܋X JCEW3 EkMO!PD + N}Ov H?@S!O fCh8U52.X]z3ߓ,*9ӸS6Atd}n+=*NqNhӋrt&Dv鐥k:=k׮)NSv8 Ta5 1,f<_rNDӷ`WCwE&qT%m8N6ve+ 9j]tv\'oEpPPⷕst+jɥPfhfYxFc?vw.Qj S S_( ?;z[;kj=.*3wG_˽ji`>:KI_ch:F._7lu#ޟ(c4%yI+_UON|9H4e6}C9mSޘ-Hd)7:#'"fVX!fJ#u&OIwFKծ>9Ab}h +*狍ƦZu(Lm#yX(_Rֽa<&a4.n(ΔmBT#[ +*4Y&?< Ӵ|#vh 1ox{R? 8Y4pc)X*qc8@J!cg CƔ +;  b%$W&Ms|+7I|3@*xcVĸP?scH?ȍ$GFA$`e#ш}5ce +ZU]I:Z+H'^Y%Bb N.ZHJHm3ԈIx?/~vx,+O{Rّܭ656OժH(NЉTD&Q9BhVMpuCbAyM`h1ĐBX~.!+V^FH/zrQU!Sf9Ͻ'!א(ȧ7?s +g~*pcu,Mh,MIIsı)աI`b\BA:"iULNw@4el:@:pu詆;z6 kǐ=vjFix82RCKᨔAv%Dec6jȶNTbij~m %4|q@,7Z93$g7 +J0FFSHQ4&'Xį~,Ql]_V>ta)6tMxifb/dx_7?|]Di uU P4q|oF؛>zsLy12:AQɴ`"/;GFD^$1$_z(7Fi*0#U@i"Oa1hpɯD~g&4 e^w &Ì模yՓ+FT x`muFw:&FF8=G _0 Wƒf3TO1sG"g;.F XthDIS6J= ULPcaK[f3p>+W o}H!l5y  ۝%sT"Sf~47N.y6nWS=B7׺D]or-U]ڠ}߳YSAaUX M,N]5iUo^Jw!Q %6 2gӊ_!wYEڐ+ m;ͬ審@_TC:m d hؿٜqE{nd)2{Qo9Cdתڋ9SB~=|&B1U64K ,$ӣdhp\L Ճzs.SI@>kfox2Kr^Pd-$n7gTX 8 pGFO`Iw*ίs٠-S^`Ig2;\"W~_>td5| +NN1QPΐr]oW0X~{2V tE/".% r3s)}un߻iZ +m4~5ן{15B6wA&<re +=4AX\fl0%S,B&hyo]O#ܔGkJw Kmn~3u9&hwzK +:h*p?33WR3w 9o/}-GEqj' +[6ݨ!!pޜbq?8el^4#*P_U{,"A_.MPBkDsi/O? +G2A +L\_/@1?!A$0V0śJsk\!>wmbv,:2#a D&hOQ߻9v\6hjG;}{C_PyΤB<1i,ϐϴWhI?^A@|wuD;BPCz?Ma Fi\,/"nH~B̈âT7U\cj}ћGt!}w\8F +뮽HilZaZ}ޕ6e4~mTIjӴF߽7OL'Gdajv6Lbv)i??"# 5_P04ƥݚ9=G.Ns; M8DXBWJ͈M~hOxO&.Rs&ѕ\Pq?golԾ/LM<pB/ =(QIqt? +:(Tk/N+HQ', =IJ ` +y2䐼c +V#6)BK[قPQU⹱xW6ry +p 's 7qĂz[;3aW \'мP3~v\o#jp.qQŲ@]H8iKy,N(' jWn&*66xP;$|+x6:Ёycnq_i!I澳 ęJ;l5 ю kS G9=Cd籃]աb$œ7B,@U0iLzsxbQ݄ynZNpC7p>(Dqc1S9I ᾌCrU MCF[e *Rg\jN6қ㩜>b0^B1^_>YU;dǯS>/|+ϟxl}QJ3z +YI$koM5U>qHVHH3աB}i>..A?5K@MϓCnLiLF]$XkP@YߌL.L Ӧ޴nz_G)K#>7FR#6b9kUFIlW_j7Dk-@E>4h[P |a{xzzzlȪ%U h2I-Ui+h~I#PbY"37]IM۱PdE#=(df/M2%8N5d%ia RWyaWdcvT[=gN+TGg\/,c-yFTpk"uZ w\aua Yg4xNQj +a0UV{v8ugL> K ;A"+xKxd $wonsH ÔJH7" (VI.zo jAj`5*swU*m[$|1|Ny ~vFd# hT]g4'BFdǣik*d\Z겷7i\eF8Ҙ'ਛqLtʒ iVVs Uu'kP=vGFWgD }*0c>?\>lly<R%%k8mӏS Mho #Ys)CWp(OUp v׮Ck3{r) +E&1.mU\㕸; OXE42 AdFgIü׮`VBPݫ10P9&3l }x̸p+HZjo7K7ˈWio5Wc4Td㕀R_ᮅ: yd2jleо7{)벋 YQn:+k5s>5+D1+ܖD gKR2!&q7$C煪++FGP!5^T*V;HvM7uN 6P/*/d7mHsV48/cHXyHN !z1{H-2ȌdwOCe o*<8mz'fl[>uT(n'owmf񅟸R(mIy5(y{ӠAs+EŁ5 +<1 + QXЯJs324BP?Ay,P+#;Ѯ fҙ6RzTVҵN*w?Cuv84IoԻGtLәᎱJ#ܡ;Ѥ ^1|+ {[^C%o!8ctű_)9\)n+Si@aHS[¨`_ß G&ufrm Msql#W`tȒ .K[j{3qF${ ;^WGnIGCPvU !L$\Wߵ,ܾ cb?ބ'*Pp:o+T/K_)zx"+*h3xG]0 g8Nb-M/^œ$b /X|H2X`=よ  'T9<bl#a߰w^'ɰ>M Tӝ>Itnb T&I6+Ϊ?(EzKԳ]RπAX,"]ᢸ{Gu], ';RH Y)M.|`F۲ޜ<;6ysGϋP%4u\QO\ը÷mK҆k\o2½s +[f^LqS7Cuo` 2d[{\aDHԗyzԻ'9OPSƉȑsG3+ *VWxHYj$K0IR!+/N針 LnR}i9vLN(R{nVmGUuGa;YN|id0$pEhBtE?G:QOLNKN9A r/=uBV>31=7hbz*ϻʋnz?-@0Hy^7 ޼|4+vS:i/޺s6qhbD 8w"q!#~z4'nԣwnWEyDIچS:?46/ +4,Lsںuɺ2ѭ*(72wh^@ZJ25,*(b]|GT%,AQ^mc0zSzؠNh=])rBtݚv@HNRꜽ#Xn @l +#=r9Y!O[JGgmt7R-x~&3q*.Br">>1eIѳɒ6#=843n2C8 mwK^zTù:T^־AR{shRؓ^$3`Ropfu3TaF腬If +!a5} 5PsGgXt:>jn2wHpG5s:ФXBOM.vқJtPL'x0`&sr#r0=\Vxes/ ,IXp#}*W/r%'%w`2X4-ǰSP+=JvRc2)6~ +Φ ׇJmכ\cmmӢ+Rkߘf6YijhN&``:ݻF}2{{'f?/U%6Ջ4ow +ߏ2YaϿպc?JݎS}c 5UHxp>l]]M9w`xq+ ݰ߃=NöL}49I$qR63.|wuuCa~xUun6ֻ,;:~+ԸL|U ^T-5jѦb]!&UI-ģ7| ^ku,>Lc> b+D6 ȴDB{rcʏIT Y󛚨a^mؗ9wd>a' {>g +IvSHτRP(g2P&R Ik_84OMT*rGbkY1N+ +m7å3, y$Zk3:˩pV[*?S<@4ףNDBK\n,b*rT?^W+ZjdS^fm8SZ +S;@>-dᑐDg5 iM0\M-R575 +g>7C6$(JɀLbׄ؝Rx;р@9 2% +I(S2@KZA'Js趧+0fHs[Q `fch_l:Do"5{B0*gʽ}İeFee?ΌJj )uȗ6i6/LA)vCVԘ/$Q's +5}y}q}*g:?S+GЍ2$8f~yΘH#eoD^QlxkwsFy !ŸzHr_a:C꯵q^[b;VR!7U`~+7z F=-{C%= >à oZ@U:bnL㐍$DK$`-驎#@Q%MլT%lB}K&]iEOE߰@1 S+eB6 kr%λNu }0\wNEf_U!^$w =-yհO=[>TŢBV +v1m[+ꔳ A7g|%)H,L'xLwNh)aQ'**w穐dr-maY+a>Tj-anYIw30AK;G-EJ9ZQZSk9On7얛VNL)r|ϓ(wwV[\UFu LnYJ5CˬN nH*Sy>䒛>}~ҭ PV2%*Óz^=*ՅI-qSjߨ_onV/Oҵ:mG2q^=6ӡ|Ⱥ,uN俁A:8Ts97yk6GQ.29{bwuqSOQX"܂(d6 6ONtw3'tv+-{݊ʏƸE'K7oq7<{:x}cGl~9I2vjj2՚jͨJ(I71E[ot +cD1pt +߹FM%{2%=7hrcF/Y +=/Th@ \g͚ zRUiN6淟0\u/k({3"70#?ŽX]Zε;s+V.*[yZYWt`Wan.r됉Xvx3=Ojtq6WtIfnȳTan*R'8`r#뒲R {!Uۆ +mR+U{]M>}'\d]~?+{ZSs*W֨re4-zyUUWfbnͪ F-M֪U͋3՛p39nL125l3 RUq=*nTgU,mgdfOnMeUėpk**g=G5UniUIn-زˮ gC؎g0gP]`twԍ3M[^MHb *ckym:U|dރ5t\G8z.rӤFjaȲV[d۲{/E +0]//kU2[2RޟmdTU}?;~zɯ-%>i_63劧ľ|^zCٗžҾԳAf˪z ,3"en?Adn[2OlUIŹ?R,8a\dg.1⧽d|.S'vi(}^`b\# ^YiUQz/w'3)5ܢɖSf00#v#[R )o~q01>}T_+*0xblM[!wY:,Gt `AD명$m<O#JmwRn-( F_g:qF4M_)8NYq7N|4w_R$K%%@jrY]5Y*oxLkU^EA4SF!Ąg߯UKPAc໣K*s*SxpVNL'L=35i?Dӛۛ<OFGGoHUI7iU 8g.g MIA$Y66r|TU!)-3b7Nu,9p.<<,9tϊ-S@\GP (iqkV( ^˩-̖rQFvŝZ`#A~xÙ>C>M{%3Fxe=WWe +7$P.gKIg&z2[OH[V"⎇lTs_JћUۍ|{ NoSvoxޮ~g3k?n>Ό,:-|&psGKՓFǕYJ^LuU&ʲ9Q-"5b6?yn-7k]VaH_-&n \Lgj"_YR֥pE[lVE[!pEs+BN5}!Ym`=`hg7 ߟ)!p*ׂGrSdU p`T^ ⬇({' kZ)=ɺ I>YsR +ԦپiPWRR697*:O[֧Fԧm=M% !WS62啞'Pĩ$4K݋WD1yT-C=JVUJ;jwMeW3z\UerCM7[N[wbcI_W>a_'J Uغ!@,/v0sM +&On'+9Pa'R HoH;,H _̒ALY1SeotI|?)?ܢv*bn3:D]3hqxi_h;>b[L(9^Uoh{࿽hsdzI%^JϺ`G=tHyp採 OkNG𱈽7"e{61"2(k#MyNt ړ.#&|7=s[<:EGcEΩo Ž˧7bN7꯭}>t-a'x}!b PvD^G= ;|\ +Ɵnq|6A?ڄc%t]Ҡ #n6EVӑ@HA b;XKP5z3usC衤m.D]4N嘁1ǒC^יEM3ص<>oh>tٴLbOͽ'v l \IL/5/ 7c_O$)Ab + bN,E~mOzH͇Xp WBd90։+akIs,UM(hC?xݰ[U[SܣҢ\1h}@P"K^zJz3룵!Qt%(g씎JGG40~%>̴b'LN꩹%` +T4T?'@[(e%F|"D\n.S\ HT:~k:>ƾjďJH^~UȂS˧ XcY?EmbcYsx:"e!Beu 5Z4l>29TֶqȂմU?./8@uhgY$e3Eg@>`7 &@jl`\qz9YumS}R/mK2C(Ym-2Hp3ۉE,s#v\nw#wܻAi_e=\ vu1|HɨY1 CԡR 6r2 3K93}L|(mY-DjqzsɴħGi*PiIڵ(~?tmE)#-Xz/'Qo-[҈=h"$h [;٠;?dy@{jn& E3܆xEP[jƥQ}S^$E|I6揋n3"(K̢F¢49Rt H>An$iCD͠f语gBV]O֡pNHw=iP#evw-;ߒ^Wv8z#D`D}"jۤG-'?LBύֶ˗>ؘ?)v,Z{_ZE#R1Xk6~ч|h#ކ:΍oNϲZF 5iyҞL7 @4>qzags,MGVo[Mi'Mwz f!LAObr!i21ZI6b?gj@>P;uG,C}بY Yj6۝,<HWߓ%% XQ76t4x> HFd,bioa \)$XYl$w?T/]^:Dh%um o!cZ!"x.)3hx_@T$cuKfhӛ9H_%GRpbDELcbBr j>G}*jȚiYt@tӡ_=+N +i"=t1r#靬tAg)3~@c ifљ@H#[Kmh1!5FHD' !rf֌"S/Kb/b_f NE|s4F f >Ա|╥.Խ{3suth:k,WY;h"Ue>Ia`(MO!xf6v&e5jyPP1 z_T{4쳏7:D^OYN#8Jd'oK F^Lm)A-Njvv'Ѵs%4h 昬8Ap` )E">[bC-[iFg|| Ť#aIOaIQJn3s]8E޸ėd·= oz9XJh$\?9XIJPA <@&J<%X@o8X +L!0&QOzG5eOݏSE!^J&3eQh~K[dj7G,]B/bTQu/[3 ɟf91#Ndt$=eOؙ dXtg&}7{emI +2ZVi=O+~2!˩LGr&Ѱx_):wP@* /&V%; UCJdR6 =KMċH +ܐkkv]GD(*4~t3O㫚R" +&{M{!O g[#dffcۯ>ʃA] Oi j!&H퍜,w9Dzfu' +f+:6xznz.C]>|}/P`m2X7HoG#Q9&F ,_OxsNsE9}>I>+2%Z1 \kCxO)kT>I +:GW~aēh%' ܏Лj%KsP!U`EͮrJLuhJB]DjF 8qnu)7W٥w=sRBze,!v$w;LX^hp>Vzh<ԯ?HvbgšdzzܢEx^SV?,Jrȍ]'%p16э^P劇&>իVLqW}OZJynyة.[\6Q⅝Ts$.K5,x"\H*}dW+|ji}R{ KZay3aKtEhÅ߲#bF'o ufJ"O*{AD, +<3:M x -5YFz#r'B֗,I)a@7|N677B1Ď;y?QQ"Tr*ڋ/ ]zM"Q_4H/9T903 +[EN<YckPC*O1wHd]rB%/99\}&*w<,ՔȂts3h$Gz  $aJ=| Oq#wҫU$`EfGmċ"z}|f:,!atǷ=~ezu40m [s};#Ƽ#{ubW~8DkT9|C5+-hĈE\ꑥLcD0]A歷:C܇p讴zn41-D}3ƾ-DҐO/;Mc/"r-fژڌ$8 c]av*J1}j1})y:o!ϴ"Ŷy'-J#Q#ݿїJ7ɼy'罅OI醝6N;oMе<b$Sy] F,pZ}{'yt–]3 !Nxi#yGjlc!$ٽdGr_MG7݀^|~Jh<ɾ@}2)H9ICONjԧhf`C>K^#ys>b271uo3p}-OV_ϏḴR sNcF1X,B,$BMf`*"$|8ȗ8z֚cL\5)+﫛|P1@ gر&.|)b[/ %4c$L}vG/ x?hN%a&w@v}> v1M5~ڀt.u(CL/ KKg͋hLz%BO Wxz `Cy't9>$3Cg&fX.c$\<^ddo,hᢤF#0`$@o lk'.!׫"q]0/M-r>B] 6E@?T-cA)IזYR4@jsZcy҂FBX|]>3yn7$o#h.ьoceҊ4jt!1c$ R89(CRx!r>#=s=@!.F=Jm҄VA}[piwS_ʌiHr1|v%=]X99f&Py1n3:NY>#~{,RISk"K'ku ;u>Gs^WSڀ`7NvҰE689o]N^C?+`Me`i3M/vZv|ב1m$bv8{nkyΙ%:G3Ft-o5F;RUL=;9r.p__*&f:E"$n6HѹH`dI ЛX?1k>Z *@| ]3|.HqކYJH>=Rל%L}|dȩ$7,=uOR,۽"Yth/\a,^i~W"0 R/## [GۨW̄ȣH~">tD8øx4daA#yhy42 渂0%g̢$' .>GԠG('%HIE2,EZz;)"{#y%#E<,EFH4>ڎE("[@KQE`/ivw|W!?YC}9-σX\UQ ~쳌 '٫+4pv) c]Ep}T$қdL 䱽Ð3'F%W gZN-ĶAol_r 5y{=|! l$1,gZ"'Y5}l?=?fwmd%+ca_;cldP&SzƼ7h \o#ަHj \4?5uꘇE瓰τ רh6OH~lNrdCK`9.~| Pz%4bT P.s|ˢDu޷Hs%M v,CBhҬZYEIVpUb6 ݢ!~fUZ1q>D7.4G͢FRwjla1O2FMn p`#=jMɓpƍKbq.Z# ?F<䣷k,gjgpO.Nv#S9%11P&ҔSL4G6[_L(S15eLcy+q1i9ծXoy^#|NoBOj=7S"XΘ]K~tIapV_f +=OvrEm\D ק>=Qv鶞 !E1-#y8/28- Sqmf8EaMMx #0vUmH6u;G}XG>֛}7rS7-eTM&>< 4xHY8 "~[Nmt|#N'5>`1VsQM6:c]39j vfl$bKNh>Id7-eMSSb} ~X)0`$p:ň/`s󨻹S ҉+yGKPϠ'Y$OsC<į˰{ mþG7`!Y8!^0ώ6: ԀͶKHڍ@CȊ&Ϭ 3/\ʖ,K*]FmfQ 6t; ,R*'XjL'8=ڰhxsjk:vJcX|y[L#KU'~e-XQ՝5cj;͚aO -$a +ĥU&hgI\>?|e]ww :nYҝRr|ƨ?:(vl!nah~ i}d/xxCYde +:J0KOK&L=3äk/ 5QqFEQ'TƎ>f&e.=zR3ȏdYĄ#̈A±hҢP7Qg>Y,U#0UŌIr -iZgs![_hpQW}pqF|y(l>y3p,JA/=E/q)G'=1QsgchNLQK;@BWj[PtKCH2u_l@/:+Vn?z=q z}GFzM1QLYK{]hmstaZJ49Q<-+H~^G>r\#]Ζ؊.=]ޚrN*G]\4 +G]*]E˭tvZvO2]^6IMÎ>bU]]Re6aozon=P/ .0<. ]"%o ݙ^@+׷>^|^?Vo]VQ[zz6AR.\UCfeBCQ?>ϫ._-]z̲A2TIg:N꧇ (E%$zֻ,t,˵d&Bq\$!k^a7>BRm2?r-ho}61?tl7BPi2lNuJsD)kıȒ _wqpN>$==Ss9|<ޯ;~z' מ(yg&lg.ی?[>ZY{EM~/ /9bĦnDii_淚z硯qy/<6} +4+ g'FxgÝ&ij2JkBa_HaxC "@'|ç7/eÚvv_{{ 9]I0R_Zdg0)vrV:}-![>N5p"H&x{n 93 ]x/x-~|+Blڻэ(hA$O% D2)#9zcybE2s;#㽣yn]"xx=;q|^ʥn~'x6:tex5o^|ՋЮЇ^꛹9'sg5;_B>J [݈GfC#. [oyҊQB׿-sMonkBq^ BPtI76xYayp=w)ɭ{)p 'yсgm߭x3K!nչ?7 *1;4Q-?n^=os)x]]㹋~k7Wq${t%/# 2/Gz=tf +}݂>!̒+ +R +AlQ$%7N]d3o^ߍ߁fǝnq]cTxsMr6s+LGν%]9=n+sw,6Ka@L_#KFt/V |F\7[6وFOiǻH^:&X[&x +-P8psn{3~bz6t8<=xw}ws#ÿ{ۇ< ?.gPշsOK͘A3>53 i3pYpnCGtZGi<]pfv:6g@EBtѽfDrhn$$Yt +6~4w4wGf4# +킷͢L򄢳f&mΖ]m+ ȍ8nԛpMy2 ۸ =qG2 n8=q+8QU3;yRރwp˧\(w$pT%qKWŝ< nop1 );!Ȭ"v"QĿ'v ؁]FQ*2GH)MhXf$68y˖l/ovto"!Vĕ;Fj9{;y_> Ivŏ{{tٳ6ݷB]s ԝm+5~W:c3[ ^y6 84Il8s8ST}> + $#B,OꝌ&̕z~/5tR* ۑ^G"!cɽ{ߣNSW=wؗ3ݛ)ϔiӝq4[CQXm>v @ň(ٺԽyOrwү+"}j/ ?km@ɉ&y!PPıѝUUەTъ~Bfx6SsJ,8;?M ZnP]o~|:c=Ogw=Gi'm}(\{'V'p?ͿL7/J[nnMxs5@xԋ{h,Ϧz13)՝T/g*F(]|tߙ 9~.߾I׹tE[uE؉,•~p>=8ǿ;YuXܢ> ~m~Gc=Tm(|zil얭6MuB&3cpy;clv;ES~Hx п384 +ň;sn5/nEiCsÓ&e\ߧ;H66|D$ J*y E>;N-{3s_Bث43?f@HM}fio4۱&Sl)l[h]Zڴ7?7yZkBAi*nscLah\Ю/DӥeU ++[ܝ>;4v4\S;k:DZ~8~K"t~ @ p !?LۈvQ%c0U*DDYvAZ_=UM_Q\/ .I+HL±f1{Gתr7. \̧SAwZ}_=V~ZY8HR3(6g${+dDۛ}ҧNFN_`NGk|4MLdϨKI{#3z\87F-:ޢ/X2:<].b%A\#XD43,FޮCbcUk+C0N'6W--`3b&&Boصt=:o5kzJq:J2VBˑ=d󍻌xrGww#{%Ƽ+?:޼BϺ|%XX}e64s>6|jxg7R~4LI8CM<BQo56q*.[h}#sL|2}ւN餙NeNa eM'>lm5MVmXI R[ ܒ<=K83K]DZD\G@2}k!v14tCa/זpoln *.HwcZyUiݱ^d~J[=u'yYӗ}r{23ԉі};hS9&FgJ=-I'\UzbjcLs~ZmKrsQ9"re:i7 ~"]aYl/~}yF{3*m>D ,Myګ=_/t;R-$1uWw;~g&yNLy1&Щ ~~(nHyJCD}f"FD'}fhQf~2y@ +M9:yw%gjtm33f$jݸ[ީc:6>/9:e3):$^{yX|ھJRϰQ3sѬV[gg\c_B:ڃɔxߪXsGNo*꯵ _zHJM,Bu4V3O_wZ6V1RLFܠ>%s?N̨l DZ>Xե6=jR mO NWMB + z&܋"I[ az(P@wV/xÖFb4mhn9ߐw{Rߺݴ\S^-&m>tGJAz#ꚡKZRNE/@ӖDkHO=@mfIw`c]c 1JmWR X-~97Z~$zs ͮ$,]M&'܇h >%I`.[aެOCn/VQT2{J=Vm_U"Z`%bc3ddA;VG#N|`}7Vlh5X V03GU`h&S+VWZŖ᳴ >˾hCSU'+k75wRMSW7>/Gkl0C+4}.5~[aďziZAj}u3՛cį* 6[I 1աPЛ?ɠB}铋0Vq)nd ŕZe9JKFEEWaZ(2VT%fqU 5=`%&X[D͏Q{l*6NW []~LGIEisNATLϤj^+oGo1ug +,{e?E=.p}-j'ZD+ ŀY2&Ɉ[&Ӈ$CopXJWd0*uC+p8p\Ap˙^H]Ukg9ki5}L-bXxD\zb'# 5Ew'm*Juy\T:^֭CC$!褍'ևH_(S~k>TC-̫Uڗ濼.p N?Wҏ=vjOhY$A_]UWOX鵨aϜ[{ϲXN𚴒Dm[K)-nL}AY *5=oaX&5vm(,dUԾ8ap>`U>ݚC!H*99M!LqEscSÛuÛfT·P8͇z&)C|r9B?Cc&sĪݭ <(|5!ޛ)4<rJ|sB`1.b|W.l^h4Oʑ*n0(61ǹ=ue|Ӣ/辋 +D0 fӞzx\]t66O27R(d%F0$>P5x w[ƏQ7-#yF[ݧ@h:#aLZ>N)hbOpQIza}Tึހǰ;>Ai_7$@L:yZh$H l{=9(E3.GiNAB3F`/zẩ |azL-~,q>( AV@5@Mo[ d2E͑%A"F)f]'H+'bjǒC?\] ~0هV@3EAl'ЙP i`Be y<4ЦrӶ?Vbx89/ߜ)M˿BLcw|SpoOc@rm}yW*|@nL +7IץV䬜 (Wp~q/.*^tG#!Ic62 ^9NŖ1Q Ӡiv7|}凌c!_vi- gպep,meˆWMɶȂ8 +BoYjfbqb+8kTbkr>:]X|}fMDxҳf4ai}F^(s9bwr}J8M$afTDIj\<Xo_TR v-q + \&5gș +S3d58Y34pHF-Jap{+c-HpR"#Z25/ k.0LT;~$'5Gjx4PId0Ho}J"N-tRlK9%H">IF_Xv%}ABP>nQR0& H6w +W #n}[=rs7 +„( s!VT K`3OZ3)Ѕ#o;"FR%2F);Kl;Gv jl_BT\\$pRi)vu.lTI(6bdjBqbvkSve Rɸ$ +ψ6|  %6Xߎ!vRRe1J  -Ch(7b 6{X +U3Q9K)Ij5韞">Cŋ .BGZBNEv7a0=QȧFOҝ O0_ҝKMwG2ҔUy\HE\l1,%fqvoϰ+80._ \ Л#wx*V\Ysx>؄N:D DUU4;;c|˳xˑ_D"4 {?舾2Ɛ5`E:yÇcӛ)ILe"D7Ǯi3JT<|hlAdFah72ĢW9 w*y2wG; Gy`#<&Jnx[!ٴ=L.)ꁞgY8.>;.a51]9{gp>UZ>1Gf^Yfk8*S1&c#;$3R٭f"|2A2KeRK6]#=]dq][U{J.Y r3審%![-4ߤK=iǰ6HhB|A< Y0\rN?c@w!.B ѫx<swΤ7r@Y8%1cI +>cl|*j" 1%W"a`Jfa_2:g/y%VqJh=(iQޢe/m%Sx +ه(}C5Oc}}=RtFqRǡMELڎA.29Al.1P3u]b^9OMT%>߲B+57q``:u9Γ uOi[lsKos"uk^fl ˁ +3ԝG0!F+J%! %Ŗ+@Vj&VM5h 5*#LE$KDpya;'9C5刑^ 4Ɓ[iH^^:aj`6vf@)aeׄ +o< Ąg1M; m#4gظ>uj4Ҷv8]B+8]C+>1 lңxIϸ("Lmf\~g'=â6OԱпfW !nӛJPZ(JӰAi8aP4}p,[wF >i>, DV;m"d~e)88S۠q lp:"Zzx+eU#=cOc)jtHp)m8& r"ODNP@oƏ k]^ȸJ3`FEf ˘P "'8<ԂHTr=mi=Ue_ hAR;ph &z;z9FweI.WͥdϹN29Cb1qVs~+,6 +:iju^4+To5s*41SxNjx's>^>G`7FDzFG/ m'QGÐGseVܑ +1͘I<1TM>)ȁZo +͎ldC>2`biȧ77/yv;FIߎپ:4-I3ְTH3ԍ4C—\|z02:3js9S 2M%" 6vM_::NEtɿONT5O1vH=r E+@˜$VEȾ \79r|8Jht1D==y~ɝ.& ^OgĹѝ8fr.!*,k9R8XxOU)pC +N( %^{pc'z:̹1׫jۢ*MG"_e5L0'[;b_L+3S$ nCRh~δJ]=[&@&鏐;4x#2 ,crZM iv/|9B]rƔ[~2 {HfOL2l W,J0˿ȏdud!-p-Em& +wl.6#M[\ SKL9%n^TS71R,TX; ۵vףLK4|7ծoȁ ֛W/]VK%6ǯP򑇝R6էAHwaE{ZK=TY7|UN#\7$A2z t ͟OksҖ9'i_+oAŕsQfI[|p-mћld'a2Wׇ||G<)=}3wunQ>ɿ>@6*Ot廈}tDHEd./ +xiKv(u$8ɹ/ ."Hyi8 .' ?H܇Er]>z wrnCNR + iN@lvl\6 tt*5ub^LR،_TyJlt)#IQ4L;Ƚkxz,F@pJ9ҽHO^ݻ<FiNXtShIKROBԋxʒO22\Zʠr4FV1EgǸq93@a ?Yho`8qɵ$PrHq镖&!N܂k4s1gIDsjeJq%[XBCD gKB +QYBW$ 1. ~`)E͢FsG_b*kG*poq(_nK+n]z7.VIkG!kTFau(oNp5;ӿ720+dF-U:^-?t9R~jɌZ{RFMMrX3L] @^@Newit p΃xI ,'ḿ% DE_>պc/H*q:; ;h,꒴$\6HowHt/M@rStYcϝfG҅nTVLNya'o`s51?s5;y>;~KL~?D0cOoHpU^(6.W3=1YIcr}(!F~1% Rs7fu9)J 0NY]-z +Yҝw[d-E_ԗbn + [5FcG;-)IVabeU"NNȉWxlS<> t_OQ_.Ɩ;>C j|' N<wIܿPF҅ |c^#GQ4&NJBM}ܙ Qj߸Gԣ2s2t*~?ģ;uZXMC^щBNO<:/q3LSas_pJR7yVt THp89́*&OrsxJ=22H"4{@%{C_Kj?9xk*J2ٗs쮴ET&ODJZ C(=🳤BM%s?6 +H7>%kIgOW:>qYv?V5un#U(9xOlb>m]ǩBs?Ѱ ŃFЫZ&dM wGidp^ޡW؅/v>ö^wU/55\ȧ'~zTJ?Wp = }~K%c;tYx0b[8.$ЫIE a^аc/OJTiK] O`Y|+2y4LjmuX6B@gQ^w #~Xhv{ *UzqxsĘH>\K^}*wTo0jow'H7U$QT. &faҨE&teK0Bz+ݫW#+$iû]v P: o> R6 =zM4stŹHJ{İK_ IX52W/ +AkϴIc vB" r>hnx0zb<Hמ#t{y~jy|h->,H uM>אܮMšA)ۈ(םоkc1_q? r F̃hr91~b_ C) ~G<(|JR*j^3 OLPJMb b݊ǷEAKf bFb#b_E]K>5< _]Iy0Q`T}U$,^,4EZk/|sm3—%3|x)?o!ӭSwyQ1+ ?99=/qiA2HxwDnOupB.b$8~"FU~Hx;NWE(A4ʁDz֐Qc+~UA>qRtC獷B'4c[iƌsCQb?$Y\BS4ȓr&I}HY;Uu:tQ>틪iO%⛖h Dk&|5#z&ԡpnmo׭sj5v觱̟Qsi̟2~fD:9'RLQ' +a@oCڝXV)6C9cCNJ;@Oc#Nď:'x&$ 2CSUGߓwĎ>9CG!=0Swi8PFHݳ_Ulm?ͅĨc$BCЉz8ʦ^f ɋ}qx|8Kw4a-2 8 +HB'S *=vAŀLՎIJ-?[M=,7#S85,c,xCTmßcg`*yLU\ $,IڵY*p2EJCJ0`98x_~\Xȹs, %O:1mpBO;K/)]Rz]EkM4褾Ew[M$a6>~rߊj"|NJs1'n#"^*_ +9.6p51"U=4:=TrVJԂyk1@ɩk0ar~qB:`} `C;$Ԭs +ʬu)x:fS0 @9-Ak@tlYC.#-&bKU<&e=[0dmU22>`+L_ ^4ǭ`N 4`OvPY26B5rġa'`7$nA><( Ղ}=*yKg#=&K  Y9~]DRFI5\7P # +5ٿ;];َ|J G0=jrAڇZʺ5GwOY9뢉_U_X婑̂ϻ~<=^jz/:96 |ҁDtev + 䥷$D]x-y<}C?KK8-҂jp[H~[-SASFnhX}~'16n̰ ǝc, ]Wno%)<haG+`:S (;-Ȝ= t%yl]ꮂ@hW|- [+nA>]+lM.~Y3, +qqF_0T#梱lg>of*ibba>`esc+jj(Kk$UZ0{jR]CWKUL츾21cc] ?dciHa"&962M` +Y-K^悷د(~O'm~៺p1Ƈ^7)pơ +ƭ` WV;>rBJ3zrQDoA;g0-nYEډ^]ig\$ )'Aa ;M?CcA5woTz=L̠xE|6jWKpܫ}oo*bji iGyֱs +OOйR\6_RgQ)&];l*)kT%TӔUY%TVIYrfAM14g1>#h}ѯůXG׽7}t؀CQIϐBjX'ObDJ:gV3%AnNjN +ϓ"6 ETEe{QFk:[+ +}4tP0>p2{ܖT$KwA'߷t1;Q-?~8`ݺ:p1|UN 5̻y7 eSl4i0Yg~^(:\lP{Yw^Puy._L/&Q^zs=$5S nWH+ngВF"M5a?x*،(z]eEeyZx7'`C1T̨'uXI%ۤLBTgi7(FD&RM ֭x{ͣq2fB`$՜!ӱ3dL w' 5%dܞ2e u%# +ŋ\;9b؂H~{@۬qBrirI%9bI]6AiʿBO+$ h:Dqv;}q:sL5͘Cy[fHW̥.snUZf>F@\?$Hkͩxj,Yq;뛥yum0lўTf{k ث۠Av'LSpJm,wWšBln;TnvOTc +6 + .BQkOPm<~4~Hk0/Y˔N+9JP3=JW|i2 HxFkd>E`Vz AYfI AM8\BW5XhW)O q6A>O"Hמgčs^ _!+ԣp+¯TƯԉ7{)̃`Ν(_)<MdL Qrhg5kYHU25#g҇\ǘTi~(:anTcnZ!S_ID|A4" j| ,pU;I#92'ˉzYT:Z7|p1ӻޖ{`a g`Ԁwx#ŴY(Em#Ɉgj0{191X' jAki~-,E)~~$SYghоE=}*99 !4{Y<~L$`?ua> Q oVPϻ`SAn;V?J?wk _KFDq$ꚄHzA)NEgug1;eej;%dk};$Y0QZ+9VW`aNb 9',fyp/I90"AJê:>g(OVfd.#(& +_PvI/o A+{}͚ OʐGy'&,&!Nw.76k x%=bZ>^W!0˄_L[Yʔ9ג,RgZ 㼒0G5~p'D cr1ڋ1c0xY/}p~rܰ%T8&<>8|.T%>et///R1L)+@DF,)= ¸1Ώa1 !OEKm%٣aE+ c nO.AِBԊ 2a.H|Eb0/vTk Ѓ4ƓB mC8-5βp Gy9{;fN(2'~S^8c470-ӸÁ.pO𰕦S-6^D 8n<vUr{ɰҌjL&=Y=UQz]T4$sQ[7!`&E0"{@}xZƽ.C #=WgVިf[vҖfu`"mqK[ܟ5k>k#C7roިxe\KJZۯ7EޘVo߯OoU@N+ׇ⭦O5btZ5A,c6˳Qv9ʂ%5`I5WY隺bL^2(N2(.Y/1rVlz}:7A/%N/8d?[5`0)Vis YxH۳'l#W$B7&pdƴD*ڮE_J<ͮfv)D9E/G4De R-Y6eDϲdZw3enS,5=Dp43{dvHN* +%ǭE[I_&"#" F3=>F3U¯d{r ZuL#),!WQR|^7/R$hي$E}Md$`_[qRڗll+\#Rʑط&S! 2]ϔ3>d'o9?P8hnƸa<&"܇6pMɿH/%2D<ɼhz*ڀL<{Qz({(TGPoRBI\䅭TTV]V{qZ2ϣ[V 7jsV?=CtLe.hIdeJS+Bʋkd>JJv1ijDEƔ*LeU:}_L& $=wGXzO@,/NqyJ= ~PL3GLœS@(VAZ9sx.ulvdI-y ֌gxc:ȸa;)V[2+r|q1?l^W>E;qV6:$y;g!4$o%%HpGƖd. K/e:PpXXgиgku!1=NV`Gq#2݊ȍiղWVS#Q?=Лd@ZLy"sѫV +RT-Fa~|Li3MMy~J~ yf-LΨCHDmYoj+ZPrBﰾ_%g$~ ̾*G![G, }lH`!5"TCE%%4 @֛zwdBS+wr[ +[,P}UO-hL^wѝTD2mͥGmşB>5D!7}?IV^hJX4ږPhcƺ?:Nj + ϲC6xƽ3}sABB<^^P"/3|%.WyK##/_+Uĥ.D.Ö#¶{(˗uK0|!hd"8X}lϞ͢#X҇{N[|=_޼7)A~.+?e*?e?A~H~W~~?)OD~qz>1\/2I"$""24"KWp?=~F6/˾pި65Y[뫗6QvYo~lpz*-|+N(LyiHY߯~^s}p^}KЯ}$u@$CX(\9pTs=9[+F^F3_}ۣ<@W/=?paL1+?H4c%:T#Gy_0wac} 펹=4ҡpU2+Ȫ =.4!GwmĐ7+zm(Q9Qu~4t\Mn|hO +:*Kf`\k!6O\ӱ:ޫwz34>KSG΃(|dBтZ,KCk!c0'Zy#%Iħ|IRRnWE +JOaLg*T놎\*nrij?-׿њ +{URzvN=ҳ|*gY91^E?sX3w-y@`JUk_|? Xk57ݥ9 G7Ĺj^r97uR̊X?o$ޟ'DxXRሷh7xC0^o#c+kk+8qPx_{.PA=#Sуh ?0sqMx8Ƶ3vsb,\E%*= /0]?Nj$s(scZ1ܼZmpnRtƧKS()+ Br#ңWGwtx4?-,Ĺ$w5r$ a{"uY Đ':C(O0xK'}җXTKN݊5^Bː"]ճ=d\lɊ~v& =Tc G TWTSj?ΆE@>p+*7o(YA6U_+$l"!B96a0̓9@~:BK =۰ R0\[݋7RwWtwͳ +M\ +Lu\7lo1πBڒ$J[ӥ-!L#3 3 OfmaA6z{~#jo[cdUl⤲=O#nL;썀j, [F ޳Ȱa][o^z$2|#r;"v]dSK#RPRNkSu{-iaϡ{V+6 5o9[Ӛ2 5>❀'%"磉^7bDf.whQyVvҜ;%1|g#gc,h dV%7 kyY/c5PR؀')>֢EkI~RF!ĥГL5&>9?F|'FŧQ.[Z\tl VBMRQKH8.IN}#irt FChĦZZcS!X~!mٖ#m/G!Z(m/ ؤ"s(5b鸜lA6:Hk$jL5Tu9.%[cgE%KUgP}TqJ'RI!yʻXHSSY\Ty*_yo,Od8=x)oKԃQDx+9Œ5"'&ōQ< /y]C +U1;o#Z{5];NY? C7_>5dw8Y+c^i/B"O+'Y@|7BE${;1Oڋz^~c'qoj{1:q^8S, + +E(8tC$`m@\rW?yD'yHH})*)$-{z<,BeaXD}M$t_{gvdEpY$"I3)l0&6ikj$᪘?6+WWx2i&I))Al\惈pn׈=|SUtW;v>WuE +S‚Z{A\\eOc |d?%L?%L)$$dO ̶?\_E&XCȍX. 6#iw@ +N]q* GsGOC]TK?wh\a?3j +/*HwrS+,ҳU/ZCivEj,4rC8^!%[p$Myg؈ w=w @62#ZmV;2"2ƱƈQt?f}^ R;dqk8[Ev G@΍] +*;72=ۥ-di-b~z7ԩs:B>#ES#V8;"Z{C9iTcyzF4uGHzȩ!gi*{`c jC|,;Awh'ղ5Eg̼%7r +WϤ$ӇCR7E? +ܻFLٴяdovVבE)z%rP? ?l?G%O\hV{7^v[JD~ r;4cVDP%jò>d;q>Џhކs*cޝD-qG34DyzVo{jIyt˾=+54ݝ=2x]*+5Bx3lmר ?YlGt6x`x'f+ 6Ơ#s~$+eb?@~H oLyMmG0~%^M<myZ# `A6={ȻU=8q![$އwR-zEZ}wO|M,i>zO&F-MkˮMAЇd{ b{5!14r7`W#H}9YY@*ršKīXXPCpLklh@BaXMF,֨nx[2sl> V0ybT9 0 Lk(#c6"ÊϨ-ԫkqƬ7W3HG8d6XDDVo씏U{#) oZNS<[v?CS$"n" TYF4}(rAT $>>+:'5Ï=9a%K j~x68#ʛW,<Ǯ 8:cw=c i{Ґ1d#9 {撞Ի*hݤ,*IHrD0'ECs> p0$|at^xN\`gG,=Gu K!; 9"Y s͂MZ)]0O/3^]>1#K|ҊiWҺi.xWBKgltm֛hwcPP& X-i,pOrA-q5|8o?{T4}ۇcp<{T*GⰭƓLPe^8^%uuY &2u_ ^2u x]e^<#m x]Fx].^/^/^ x].^55s;c +b85+ DẐX~G;V@2?HJ$ @@M3 3 f،ZXLӀ>nM,`E,$xAR`~ kW!5!Yb"ͭ}M"H"͍@H{wUWaKf#ΒjHjq@ġ8Tضԡ-;e.-ԖXX3x}Mܤ-KhԎ^Kx;j--ChUT?EcX wq[JihhQyȸ=E?@$340N&760}/,@f~30c# ڀ_KW.R,!z_بaŷ`zdרP| [yr~H?OHs 62hb5#C!B6b`f4*H(WC@+9< +< + +MTd+%m7`XH~B2(} -TzLcںhݖWq@"( +.)tK n:˾A;pG Gf5gY[IE%35:bqźPq}y|^Z)do!1' 4M3WBeC\SyG9s ȥep8ec2) Gdïs #<5B52*OE,G3ٷHGDE Ci4+DBZϼ/WyjMQA/Y266+l1cZŸҙ+q{{@Urb|Pvb[dt@/SwI_OPΟjꐵS2ݎ&JA]pC}%!> +_*[lӹ< +O8ٝi|u6+2"r{KDLGlTh4MG,a"R>ŵ.JmEfOƗEף= qoP&hDVkTihXk7o^ 10l)FmݗRb. +'0_;NO5xHK覔^-*&#<kӥ:bXTf/7C\d{gډt5WFH/Ƕ1{#ɹά]<ߟ1VXZG4Q##66lC(KY8U~>a1[]2i5ijeph4FxVawV\#^.`50{Q;Z aa8w q +d1 +fzҭ߻[1gEIA+ptf~ь+&g_.p'nS@tej"tJ4>RR?^jx<'F&&J^VCBZͻ<ѫݲoǒ#\%K-: Gw5k$ɢFGK`}JW|fwD4ݽη9o9r2PW|jBfxm?J- +jHf)8xk 96durοytE5Γ^9 `^Dydh㦦!uL +zwRzKkot !ɜ/5뮳iGϦ\g ]A#EM3Z,-Ctt)z|.*ʗ|)5(f5^(EM OivNOQ3 +F^~!Pz&/?`¥w{ft^LI*dD<%WU{w{X3y #UJ72e1d[ +ΑKW%n_ZY *K O.{YidmJg,~Pg`@  n^ ,wwWn-/wueB+ko58R1}#b2S3?4~-~$7K.x"bA⏃Ē zTߡF+m][$->4󫠱픞'_'YBg{oq5nE>ۥ?>JˊQuK!ɐ{i8 +PS/|}_w-}njw_p5NQ yJ~##SsHt[_Ƿ>^ͷ& k#,M _/9%]GQkQ~wݰۥV&FE|ci9 eدbbEdfZUkq/feEW,uUd&-\:p@|V ,6‡ei+do%E3doSף5D{I!ek[`ߐgJ[=GR9V +B +rcr#OS2gl[kEBȱ^<$ Ӓ +=d:Ĥ YR gJB!7uF6/:g $m(VfџD(.Zj}z*9{$` +,A*]@FQw8! ϊqӸ731%D5 ]ի@FD~mTd+RC+zn4=i&3.sq/Dk9Z g=Z{70mV b;{lq<:[}vº2nIGN G4wgi7_Mшv#duF*Xt(Zm:HK暍$/dՙH-şJ[?4."'.G#y@7e3RyyF-ޟUGxb=䆬("RSC_s)YhZQ|KG+.-Ң}6[ġ_mQEY XT5' 7BL?X>2@Dg#I˥cfZ%˙+pu_?`l>\KE搊߅ G$2 ݛB M[К*֍Ƭ)T|z%UΦsrpdbGz<ϳ`rr 4JQhxPmg9^ZՌ>$kH?»8pTۨY3#9B϶%7J[n/O5϶#Yub c_mw*]ڪ#%G޸(,,׺CJrc$ٓ=bT6QUwp&`FGčnl5YDc7i.r:bRmimR@AQi׵ewݕ-m3 Ix !2;L^P;e#Q@*M4`ӗmoj00 '2 yXyCzƙ`ұ_H'2] h7WGO6ܪBjAJxAv o,9'N +>1_6B/妶e`)xN9Hd F2>וQDj wFW7C/$s/J!2TF>jwTOP89ra}Ӎ磗mM"=|)Vwŵ4 . ]]lcLDf#D +{[eH~mF~~Z5HUM᪃r "U%1.\/]XUm*>H;^]B;E21.Wi)h2V@L~[ %B?A~uʜW-S.'K-;+Pc `Ax4s%^jH ޑ O#=#MHiex'#q2=M7 .CHk)c/m!C(b{wPEARGyoO[b(M$Qg| +,v@Dfga;Z%IkSHyj^#xPi/]e]rrY$RCy-ٖ3F|y4j_!paAp,1Oyǧ}CvH(tTRc-vV|1Ưsx xھ/ E_!ѓ=Ei([[PCyAKF]ㅥs%*<H1i󑔔IR' _,'jeX`wR +8/bZzH6pI!IrL%&^bG߉՚QΧe9HY d 뢫q j}3㙙@~!RziAj3jQVo`HqNIy1?6ΔBE)0"2a"UDy=&X\\x=IڧS4:x{75k507%3ۢ-G3=qm @s&w"P +T jY4 ߧY ViWF~W"&A/6$kW:)|B6kz8L?RE?MN㵜5GƆFN2Vgq + Q847}hZB?-~?jj;EKA}Y+3Zom -v3)7Ixigl+&NֺH0uPWFy"/ر-1FZYVs ^(?RH#ó +I^Y{{BMcUdg,e*5=y+4;1]: /䐼+Bn[[~i)Y!iRGcc+%g-C?Ȕ~q!ٔ9ٔ<~3tpW>#EŶ)`r +8PN[j=@s90YG# +*"`. D1#*B[}jPBB$Q<=hGݧZGSG&B+N Wp˓%3a oaGOH)cڠ`[YcyG3ɫ>=OR,TXl`a#o"}[[_FONܳm+xL%Fir&W ny.)]JʿSWJ)=y}$%^/%^,dcVUa /t[t9qz!Klϐ!!+dAh{Ӿ"޸Ɯ 1=DԬm7ʅƶ]S6IDgg|7 $bcWї\N?h:7%>~|rȥv9e`ARKْ SZ~΃roלR{WH;mw y9_#gyp\2"?Y"Ѵdej"s22*C# .^MIIveV$ŕ*M$;FmL\I@;*NkaX]b7c;a9evUkW6|o.pcGR6-{7PzU|)&䝫i,EӋKCy`&U=mf_~B~B_0X|S$[b+'Y{waF!cANd=hn׬P;^"AyQ*썗zr(L^oE/X%C %5&W{ X[;p *i]ѣ;072tVȺuSW:c'StGg`rGG`q<(N(O[ЙT) :K0upW3${&Pfxܱgҧql&pldxf1#A-Ĉ?LWjZI +wO(ybФbjJ7H K)Upu՚H +Lo6o;NI9\n+dPN=4akÐ&y{y;DyyAsr)oXC;݄DY~;.;l- m7X~|<B>ѯx>kįTTP1fS̱|;U~r5g׃OǒS-`y>-eVJ X~i'ۧe>}Ӵ~{V$Ivc^IUZQA8}z1z2fݟ3,WI(lc6FCY09CwsWof؟/%샌Wy?ayh>YZ[++ʆgsO2<`xxЁfNw_ք^%.uCcEA{ |y1s|; 617}:o^A:U75h,dLɤtdpbHhl #4TywGx?Sf=@3otw{o ko157r}'NVn2%tjسT ZpK5iuSc@khl,fסmos5٪Vu)t +cu{W5R>y5 'rsTs#3U}W=J_Vfb͌EO)3)K=EsG՚M>T}Zr'J@BYJW'T.vqH|WI ך>w=N CZgBRE3澙Grc*>vjnUwua4A)8lUDrΫ 'mG$Ǵ V{⨥t}J#˯죃9K"Dң'sY##d8ԱKs>GޡMøkf| +۝abWͪW]|Df+W7':4^Ř.Z8zEẔ9/#]?7b51\Y V74tGNɔgL*#Zf#"+QkngqNFh*= +rjJ`^M0XGlsSm8-ak!{owcZʅC͖&"rИRŋ[~FApٞNgk/GZKRR!f)2Ŭg녒C I5C"MG.5I(`vBkSxAl"Nr 4s;G)3Hw_4OkٙǸVg: 5ĴJȪFPz4nQ!nE+*=%>pw5]5ƀa+X#]5m\Cj8񽌫LRTFG&2ԜOaUKx>yAH!Zt^:g?Ʈ"sV/%n%lN0~x/ 9Q ny-z퀙[ĨBiT/Ɓ6UeyKqod<8>Q̃xvqv۫qF >Nm O^ENy+q[;-Z@d2frVrZ砮#X E BΔkÐ, OA?Ic`*j׭sʙR7 Q7uuxv~&,q{V5;N$ڤv5a'yP/jMfL}-Z9D 8 + z(^=exd|P8(drrv4qݽ&g;tvow@Q+ao85!*M*E /熀e rZӃFFaU1 b: +"B4໓M>$ABxo'"QVjw.e`l sJ{%R +a} 'k<.IúЕXݯ!FaYhw  H2ACƼV6iI<>6]XD 9kۋ~EpHR90e{ +,R[â.!63I!ї9$&8[s_F8s$T7CI;NCP#3Ҵ*Px5pA-z9Zs7*~LKk̓1(֒vPLe)ҥlD%E>sfC8!T) wOzoWmϟmΊfj]PӏckZ5EDJdHV8") 5|:iP%8S@v;D⢞/QM3(Ye eNP.XW׊gX-BlM1f z=5' K8($@Y@:,zM"}NJrl@ލ`4q@V(\G'Ҳ'c{DX$YD¢Kj,:2Rȉ[&e$食Q0{*5i2:T9^~Qbm䤯b,k@H 5SJbf\+ ̉Pmw^%tn{̙]1fa*+uv ٽE##uސؼ@ ~,œǔVͼKG;uI:9epF\TNs_TsGn< /9 #pARN:{UO'n4iٞV[d|9|tMgB%<&yr:DCUG-8t DjyDG`9'H|2E?FhY훊)Sa 8Zh9GԜgh&3z$ŞߍTL$GB^7^#HU <0|7l4eIl 651lզCr WNh}j 663##A"Y/ج}Z;9B BьJ~Ȱ\pF[ƽ)]n$wd2E2u9ɬa-K5Js eR0v/ck)؛xsʈp )74kۑȷU7^>5 xJBGR1 Q 1UHrm1!c-Jva  +;|UC>AzWKs2WkۡgؗG.Fr`)Vdqռ MGIK2oZGfx`^K"4޻@hoW&#!x ~v}HNdYd 7!W}5 զyNE8܍lҹcF.(t.zj] +29&$--"K_fJRvB*eI. @ȶ4[K#^$E0$ +2ȬBnRq.=Nolr6גCcX-gBct%DټȚ}");ĭ}s +Ǜ1D_,$@yϦ τpjR 21973B $y%+ ]XYMc R)RtR6ӑľ/E4V ,)nt@"†f1RνG9ER.|kZ1A){qŽdl$G};H۬eP8֗pKm/JN%p}2 RTPfCyGAa,t\hIvIE>W`9ji:??;bAs cص- B8qo%~0˯^o:N锖CqEÜ-g{QT\&p٣Oϧvr6[a wF:%X/ + +ύ . १!9 +4G/Vh|WKm18 O0%yOy +"[j<7̕؛x+|<俥a1ı> g6&1 C"1p&00QKIlk9@|>NyK,1#0#^x?*SRC"/b ϕZ/Az,$= :G~8#*d/S=DK<"܂=pL$H,ps)i>N1Q\t]oC+Jf)&sl.5w3OBjJ'Sfora]|&ie|u^yYD^Xj{KCJCg+5OZc_vr Ӌ'PdcVt)Oaa {>"v*:5U)6E&9Tx"aWzտiFM)o3%:l!YӿM)ߢo Y/ؗi@[^:Ƞ3TUա/EͿY>%6B;|4p^@)?O&!Uͪլ~ɣ̹_%ITSNex`a" 7zLT5||0at].#mcʬgS0V3L0 sta_"@"yOU#Cw,ȷED} !sƁHKDKjxޣE& DGJs +%WEW R" +9>*9?]'bqB]U|}+^I%כ}9_/ҳuL{dM?XN*_RNT".@_ xڎ?T?wR NRo"yM4ikRM43TL!1 'z.9&%P,'fj/V|YD\L>ǬzxƢx|N"J=;E '): AnPWjS)ߋ5ەi~:$Vx(IBLֈEw2&6[.Up schr 2oI&TWE~yGT? KjA{& +$tЭX:sֱ=@W6h}|'61=ifklCoh]֩c"&yD*e~B JJ4~gQMmS4;y(ow_ mbLF)Be." +'Hiå0ހGQ/#$ת KAXw."J$=| XoSI~"5MQ@FZ%>W n4Bw̧, ɓUe_Idq}fX^f2 ƯmG~ϳ|'E|1!PH2NCWL{BreW%rD~O##%dtR H"m#L{ +Oo.JS‡ P/4ayݪILywoih+UrpOaiR _iC*WjNRnRj.: +&M] +~B + *(, T+{d妱IEbX+l,*o K~˩{եIQ sMfy]P#hAl`ZL)@kdgNܔ)چEWkv/mU2T\xWx8awa%4h{.Ӎ%{=]W}6NAߋ.\m޸m^/uT6{#S\#Րt8{߆SuL[Felg{*0L_۽mmdFocf5sr_U "v &6:JHҚYIU4ye4e*sǫW+mK$q2AdYCU5eG/P^Bym@&|VЗQOD"G+zUYx *6R+UFլLg?Xmim.*'$>{NVtFe{/ +)OTlrM@$ابb=C _Րd8<Z/GqM]Ϯ{.%U'(}4°VSXU/a6V6zX ;\4s|j^t ^W7cΖvm{Axze<#kIxSsWw* 8;НW;q]%w"~UC9RjPy*)i{c.5kz齝T*yc3ۼA>vxh6Wv;yq\]6 g7z* |>I>u| >u:z| f hdz|O'U|V—* C?zeDoIFNBmzX3c:\ls1\̶?I zqVhEǷJr1A@t+ݓ5 =UWFݗ&a9x+$'8ZU?|jBpϯ{$1_Ky/<:#өqχUKtajN)oE5ѳ1.!!$Ծ$ H,K:)ȥ13({"I!&?q_ok&#Psq tnRwTE a=ͅChEU3cuZUmA-Y7`ֿB74PRw@3ޥIK4 u qz<Ú|`7}] ۄF|󈛇 hygw+:~lg`w%P8;9srg.. \-3 +*fč 8\HF/tVta||.o呉[j[u%VB6ckpF)!ۤx6mf䦀m|>ٰфЬ5=JdDotRg;00fԜQ Əݙx{4?H^̻ 5}%{1AF4/@ʌ2D[lnHw֋)kN_x)P\%*8iKm=|g$bGq@Q d|ޕAg8nŁO _ +| | I"]J w. _F$E=H":྾f9˟}}}=yeߤXQ~Q8"W!1VGXD.?˒1\z1ʳ,>6M+ǥ@A s0<7 YKo-/k/73:D)s &|>5vEw9R}D~ }DyK>Kվ,bg&g +O|c mLCᷘz}]{:-Y(@ňܭGFiDF3cM뱃:9+`U2U$*H0rxU\dܫYOw*#&O鬟:qI5Bm.UG29TJI`|qmA* +xc|* =qġ#@I$dۚU:EO 3D9~[+ R_ϊG.jZ-?bdujO İp H0?]]Њ ,~Z +CP[K=@O=q_1mCRLsk<9*[5]٧@e#dn]aTLd0ϵT˓)|Y%k$Ϣ0L(Ά51e _RSF-f|G8g.M 7y,8 hX]ό23b_p`-U1ChsoL~wjefuq ~>;&kKA +f{V"^|k9^ RC~F;8OG${ڣOm̦tm{X&LUr5^P&aep|.;o]ȢC):1ˡf"{x5 iu5&)c%(es(ӹ6|6neN$he #ry$H% *#?(  +^!3RCy]51[Cq9$aWQ3gLT3tNu08 ʫ##مϬfq|gDYa42)${R7~<} jf5ǜf #<esGyHG&%Gex,$33#̢_r,ʁſtNa1kYLQQFI^MKH_ 21/_o33^p8AN#8AȏGx'niM|5g@AWmP\b:enEaWSV}Bq~#I5jU^W{JU -ﴚ׈0o Y;VnkUۊv 4ySx#InTu其tʋ1x/t GʬQyJͲԕϡ&?r8 Q77 Eʽ$& Ǻp9Iɨ +YLg^ ?%r(έv( o3],.]Ktj~L@^mxlϺk#tA KnӨg7`xHfwVD.4Q`2WAʬ%CRRJ5l_99Z#tn_m~n0*2v*ΐN=I ݨLݵ=Rv5{͉mHyus_D؉#7BuEL߀:-2y nqeR<{ ,Uy4T$>*3,g!i-_ {1V^_cKkFE`4F+A}1}/RYW{}Xr#/astRt5Խ>- >4[XYx,&jǑE` 9CIm o˖Ԋ0> Gv[ +J+~QoUDπ܊R7K2HE/q{OƤ +  $Z&irf@~;.x׊ѹ,τILcc$ $+ +DA_Xfyj^ )kX;K,Ofi=bQQ|^rP4Xl:582і:BX] +|+8=uARQԎh T8ME G=}1Aǻ 5w*I"FpAQn#8 +s ޭ~Q]Atԋ6_P}ɫi&#/%BOj^&\xN_)2WK9F8Ϗ=ȎnVlrIjẸc[wh1Xյ!2^vT#?aE9pFphe1 @6N)3:)'z肞6=/4,K5b!ɀ'lnzH;oN16j-zd0zOc5gԜSf"į|ߦZS0qa]JU2B;auy6-Űp6 A8*fڏA*?8PW-x1O0`I!HKD" 3y1Bn6a[N)gB+q@Cgʽw^8Jpy%^3r\)/ZNW\77oCg2`tN>KtҽtQqS =.JCᨳ4t]ixS(!Ia;֡|pKGBK7B@#`r>-H0sÊ)%F1,@AL੓G'谳*i@-V9zz@Y'&C98Wnϕk K5K^tܰ߻E>}N6A lF;!NHW^1%I &]b~<l|qXt8`h!~0-o%N07 PM"lt%XkQ+p.lx%2 +}mtP J.V3:= P."z1a+Dd5]gwY*`謆 b{w9~W8PY>G4S#[@9 t,;D&E,zIImBnj$l""ge{{(v(qXc?EW6(g4uöV,;a&Op ~mLMȆ]SA(܆ M¯ ǝO2,h 51 Wr _d">@ك, +8ԇRi654\; q+: QWn<O3ʴ!pwM^U櫶*s"=[YxY^Ꙉ45t[(23=9%p8 Lr"dm%ZMԄ̒)DUAĨG︃"0Eyy/ H!mQcjgKǾ)Mr߀7+w;1/1 b v*xlT6QCO+VH:.!h *CEٻ; b!V"KlFOvLds9޹v Q<)) # =ٰ=`{ﰳF@;֥w㝂Oxd)fj3hi&SWmx^Jy2 l?$Ǜ0pXrM W|{1h6P#bN{TKX1G +}NNC(y8N rP<ą1^Q'KH9dc` fNCyLN`ZIJYI $&\:dE%Ƃl_.aF'+&Ij㚘eW9&SP/0OS0iÇM bDޭ؃]_pr+1&&ȶ_zٟIyǧejJʡRa)=6SѠVz\t(Q=>pա鲀(3ٿ29pG@*@/!m)&^tȑ8 W*rrL{Z!%p"08 Tc7Tx&vnf=>Lr)BZtU eN8Szd4bҢl:-FT1[V46m><DbS^pQLHQZז:*U1!jq\O*2P)iz1% +nr2&(.`5n뒰bpۅ<`M@@8dpՉI] +/'Ἣ\W}O> m|AIg\S>ss ERFYRZoAǽ +L+/m}B> kT 'Ǡav 2rR%hS(a{ن5$UTP 'mN 3)@zܫv`OL!`BzLIc}}:jb//QxTWSOL[Y{Tm3;0Ll-S<;oO"&-?{Sצ;l=6՘^BL&J3So6GQ"̿ergQq1s]=)80s!#v;|T?Q)~qP*2M 'G؍y" !=kETϣ[eNbL Ð̤22s۸qo aD֧4*y]'ݧW SZQ9hhO?()%ǤR4d?>~3!qNk!ĦpCm'Ǡad`pM'9{4*DO"1:Efr# 34x ~Mf䧽Hf$B"07#z9UAZMOkG>L#-#ɶ#&[v,juiGJyfi?"q?ُO?ȁmGvv X!ba il'ǠaX6a@ H1'`D'nR'xpq̹kׂw3m e:L9Ͼȍn|s&M LA`6pFq Zm?Mk4}"c'R ?wMo6aL@l"t\P A ,: +~$3^j*d9m%!*/Mjڄ'$8 [`[pdWiM3e`< _{A21>3McdIfe붕iPsOׇjrIUKd $VUэ/km(&Od_h7#Y;])c[r Rͥ>aslJUf\@=xs͗R"EtsT#-sW}cX| z0Zho+ܷn&Uѭ4OHXm[{۷?7-g9>^poe[N V-oz+n|/8il˥{eZl0经 +bzݲ1'H4qgyYǏwz:uy& '7 W۹弫n.̅& +h\h=0Ա>2^ldUYĔN5|aJ:J^s] Vj8L|ټ <鼽 ; 1Xbss<}C+{s|.۲R_.KDA5OLmP9fY :]>nlK8yI]flœS&ARH>o*aC#󸞷B7 +i3R-e)#M EGctG~TXFo!Vn#}>Lg8<7HHiuɐsulɔlɖ\D4HsLEm3W>B5H#L?]R69}#t - [lb9s\#f9si̶Lf #.Zw X.^Xx.c.;E8&@RD/pR4/ApC 9E 7)2XS+Ax&0oxcp:YܬlQm9%9^7x+da=ioXoY\aFZZ~gz y]gLd 6zᶜm9ޅi&]z`U~n;8 nc=laǒk5-`!0w/0^ +vDo#CJӊ66V_u J=1VܨWya"_o +~HQj/8w%8#;x~P XSB.ȧOK MG_`x+v؁d؎i߀D 9KB%Y!^u("ň0aۮi$EYiy=\4&I,jNBY( +\Jp0"üFDd$H0]%L&7Le7!&U~@ | /J˺ea%CӾ+x-3OĽoH-_&DQo$!EƸO$4ۮQ$? ?4rvc$;@%krV?5Ҵ]F^rb+ +5 ;S渜9WKfOUiMp2=ܑdv^`m+p9k;dfq@kVf<y<vKg _ NBUơ\I0rK+ Rv؃ cRiUj">Byo6o+R8Դ A*p S+ϱwѯ_G1G$87"ަk{(}+\;}S 9c >50+};sr?-v;aM Gro '^8% V4Ȳ`۲J_Kw>\m)cȚ#~ z ߹DmsHa;y^Ø!V!̼`/j^54[f$KMpcc?9Xr-p4 ܍@fBT=[wG'2L-qӾJ͞$aZ>J6&M1\ǫީ\|S4 +' =ww;}ʬ&\,gji$c +ze $96C`BCؑlnw&aI1kٱymԉhÆmz /2n@ᇕtś9dQnd벂J}]uDOL $zxUn˜c}^wͺ0jf + +y;$O]٫k6,c^S7 8&Sܾz -t"'DlǕEleW[N]-cYYl؎d*lRVGO}M7p[ȼyۛ,AlvI7~ڔH#]d"pWC(vͽ!ӔYw ?i Pf%YAO^AֲȚ`BrZ5L,6Y"D$Q#eCE,? 9Ų,3ť#Pr52 em'3񁠬m{;!jx/5X`׳9>&CaB}z vjv,اP}!1ӡI b.Tw/Hlgdq,[5^[p +LВi)"s];T>ܦv@XSˮY;gyoيAƤpOSR%e +%bO=<1m8HgqB&86#k{j:Oy_NPEʝE](׳{yj+xjv>Ǥ$c%0ѭc;q}!ʬ'ͽ+&H``oiCk6Ϙ2` }rhB(PJ.*`K,,7?H}1GJ˂+}:nq!K$I)TJ= +l@LH%_I$ŋ LQ_3j} +-kg\5jW3gǝZ'gef|SϙP72zD:0=W;;cgT=ʜɔǕ%Ι ɱ-f{{{ s[_ ?z>?JQ^"eI#W, +]/M~GWN3!OzlO>c>o'VHtlmm!gs]lp`(HȾٓ$1L,H+gPgvh+}C@Vw?+lm%czkۂp;կ EymRFci]{YFj +!mOZ-zACT8Js =\gkx`j_:JzZ3|-ЯTar A`3ts;ӽwLk!_"Vt*t~$0a]g&妿㱰o'$zᅁpt%TUUxLfTgxғ3' FTJM/!.U>#~k4`bB&գxxз}C2)<%M*ğ,;:G{E;ĒY qBu#\֡ɧ1:T ܷ 6M:ޖZX'Z4lb(uk, T2Vc8..`WLJҗV15 rbҟv֗] Ri"N4?[_Ĭ0:[yL2Ō0'4`[e7ʄL Ds `OT2xJ*slU I=W[FTBe~Ge&&ͱ`֜ЙӬ3LsAfϑ<{NYSZP@_?HL<%yGL5;֌u55ҿH(OBsԆ'OV?HyȴQtGѫQG4sMV (G]2 ?Ig*3;$mJpNߜ0ʠMtNpȔ9T>üky <Рa P<Փ +k!gƍO|!E}ϟS F7}1 6>d|THL~&ۣ, j@S4Ѐh+OLHWMvfOͬX  iӎI1$<)rf3MjتX >",?s{(ԯՁWvȭ3yAc(h}3tk$cKQPo1^W͹U.۽J(Q40A +UP̫w|HX ʰ®EE7T@*CQ␽:I>& 6L+ ul6Tqm&: RTcA5(*i'Қ?ڦ-mSKk~*V3% `X0 k,eLZ{sg Zǵ$|G}K4/SK'@)B{i[(B9Ju~jdAşL 2N ,,/n$TOB5gXǟOVH<$$CIHFeQ̣$c1)Ib%ƽ$ l* ׍obmkǛ"ԟ9I{*ӊq&\?1\0R^Pfuǫ̜ʬƬ̄ԋfzmBfPD2g؛Rbt;)zizeVM7{ʬ62< T@ +M9-ԘIU[kSb8JU*%6ͨmTb\tX(:Š>]9g}Jگ˒=dך9U@ŕ^+Q>1:k@;:&)NV\w$V«-g4^}2*O +~ +S90US̈lgDS Î8EI:>j]iw<7Mo#MoHԉcfL,T~g +ƟG +&':gi_MLT!g#[^H։gdDF+>&EԩGQԩe3^9j q?8gV "Dd$2p|fJ,e%8gYL sT8I}?:DH7HM(0(`P-rPٹPH֘9EB< SH<(6rLR"俨=r֋-׶Dk -lp+ @<pझH"z#GFp2'1$<&C wC `,(p4dLsu oYMVa$aQ} <NQچb8z.Q]:& +O3g"k/3o(P~h(srTcTk]c$_)+Aw8F8 5Gv;n98*ӇB$&exĀ?aWZ"lIP& ~W, yhD|8A:JiH| a=螁0.4=V m-& bZ $خ`*5GdDQKof2SEAJ`IX%lÎ;kü}wXֆڰe W] Vj`4UoߧCҧξg>f/#_5gǾX݉}t\}ʾוUlA&9ډmX9̪g-eYpY_+KtxHl(nj`<eDDf)Q2#TK 4q2RȉL4ɒt%Ӣ"ZxGQbV!N5ʼn7LUP|hFFRi/}BT(aK,K,peXbťI,$eemCH BQG%9̲᪕KA6L9^ Y/Z}پyDYLա婴&|L +x!8w PO4/sa֗dz^` G?C?~)'tNf8&?Sv.DPy_}-ik!MggO\+{"w%:M"Q^A%m$W< \X Gbll^/L@Sf[4L~YKܹUX,y #p 9Q,2]zB|toZ dO]_gX`^Uٵ( cJ̞c?ځj'L`ߤ٫Ku%#Ja)nF܋LGV/:"%?%pM,p["@5<;o14A18Ǜ&(0FMPΡLP`6Fb@I1CҜ\mo%6lҜovd]91¢v% x n_B]oQZI TMclZ?DA\&fA6pdʂltLcFMHhjW!) +NJג#1"PgX 0'ת1'6`?PZW{ XB2`?0Y/V>1_#3 $Tc)ʧ*~ `=yzz|ew 3:)L\_7M*a߈{OׄN +gK020hD +&b, 1Tl6qc2&c +e <hϚ!KqUѹ!Iڣ A𱐂j屨)$@6 "DSaHJ*Q“|< Uζ8i(|:Jq+1o7H/@KWCI>-#.C}?JE#b@e|$>zO25(x͓1 +H c 5mT \Y"VV xL;FO)n_l#G 7]=4 D ˍ rcfx=8^:э_밎WcO8)dpU=}jrտԂKDa l#˾Gk`TbRC'V䑈 ո"lk(ccՇ-f`3Yz" <7\ n׷\} fK 'IT9{͎8YWx@Xm$sr9\׏AT5€&J0IxoUx/C{s5Ui{d b;{F^z|~2t6f{hD(ޫAW^3f 5޳{ԙh{}4`zj`/tjip&7BCs^ Aנ?Y^sTdV`/^ث78\+׮hb=Hj =^kAO{,^6 }&}2vbw)vTt~`}W $? + ^f(Y~7/s^o99{,w?8?^{u+{i"e<-65h8Y3=)L-e:#g8p)SJ,sx&NN>,o ~Pi!,Q~"fG(l͢WVR_ԇ ԇf@CM,UBb/ ˈ,!?'v`OGFJ3)Y_l=C}l; aFc+R!|Uza~x]LYrT{&uieEqI0D+v)MRG$Y|RRmAJ}EZu\M{[;%SUJY+q:,ܬ^HTHo&>Rs'bD%M#іlPEV4Xu.KQeGTG^YE5v2GP739G ~PG|'d[/"*!OǏ?>T\]zƭ`SO6u]JuLNz'xt~ 8gItL͟8-5a9f8\Ϭ磘?_2gsOs]#cH/\oL?S?q?g9:6H:RwQd;+* J$LQ,V +}V0 úl즉:dP<"œͳ&~g(M>]H$7Mtt~Wuy=,zJw'Q!EVގk\zt~w +O~ oB}!FG*pٜ`&]*pώ1Ә,J8Ưlz{2ڗJi)a~4==\{+]ʍ%p +,1ζ0 dl1B` BS)a|\ ސ("P( ˎ +o>mgYեg ܍n4SV "SX1W8q1z{oz =Exl^n_$,!Ÿrp u!vc|")yss?ϫ.< HkkBܿ_{5 ?]Lr2'F@(׀9ZifŮuB@z^'Q |ӓ- +Bb=RR<_9ڵ7L2ə+ruqmX.)#XPAoû1mn8}R<jv=HlW}OMeg]z|nG|]6-{fB]J|E[}gaL],2dl06ф'H3H ,?I?=OD餟Rc )`wC@t I%ĵC8*% SfL)Pb6d/oi3DiLc0M ܥPEyNHwT24EpWKtt`cQ|LX?~e7ϧ3Ь"LT?3!Y7yz©h>>x=Ez=IB$@a4(rhGBh|>)۝4,4W6[.GJU*+( +Bj<I Q>(FJ~0*Z/:|,K$JitHja]JPk?'Mp磤 )&ů ޟDI' d;&Ś`^kHnOڦutQi_mT=dLTQHg10*VU)U֚*xPc 1Slk_}ЏR O9?Mw{' znBtR9b}Gb'Hǎ&/E=&l{B];ݯ|TIǝ{GY{a+ZKjA;=ܮˆrl 7B̿b2^_"?>%">EB O\W>fKx?>Hrn`'r`s sbk0^6Q?[TvY i11iP5M=.bhY|>`4N@j7L  +1_MD>%Bc␶mhU?2!5`cP?8򪐞U4>(̟zPbTa!|/if?xeq\jߛynnoRWGpprC~[>~^Jfv X2)+E5~^z$|R"PaC(~19kx3{rrJ!l\FW7:._Ud"FW(N]'/o? w)P;V8g7YO)8pԣ;u|M˥톉<#aNg}m^¡TVZ Pz 9 q#^N%̰NEPu@88|y@ӫlOZ =7>˘׊}Ǻkwۡ2y0#y{F9}}Qv27J 5.VԠm?X%zُП= n+/Lԙ>ecb;؎-0Ês!d !arw4򄺹@~Ht5Hr ^^ą:͇YG:Dl{P +GQz0wTtPT@/ 2**Pb80>>0^ +?Pfl: +c4Rl0*6PZL( &YI@NP(1DQ@aIPc +_y@w(scgqwRSn3ذVl|S-٠@[ Kc='hFN <8JTh!BÀvSnQ5x)#]}RpuL"K5@:63}) +U2 ~ Vxu +eUK!=4=՝ʗ~'}Oa߂".?;`r4a$6SVO/tQ9=hr6t.l{JЧ [Az( ށ >Mio;3zOyd4=|{ +\>^Lwrb⍰1ϕ^+2/|b0W{Bk' +68c_U{g">@O N/<@;I5a>0^;1k~ j{g"W[NLwOK}_ ?#(?BM#h[GƵb2:O}N_: lg%38=VFYptp+LWw+b3\S)tGqDܞJyxv-^P;|.'@#R*;!pJB ?ZQTˮ>\*XG0{@>\(p Ȣ0o#MԀ~ph4$p*xh#xgru\y&z9́ϰP1>hNW؟C K-e +ҝYA \EhPMp#dB ._K:< e2Ep>ZԥxMztu)P0?(}RkU6#D}}~DDsSƔdgSiq_IF!o|wp?6 ߰b Ezp/bGU/c;ك9+~=OT'_[OyxN=ѩwR>v*|z|znݧW5}zzN2np+zzd_w>w>?9^Oȧ=tΧws7wp,ku>_ >>[^_mTA#7@#F]˹;bq2 +^+_WTM?ja苊,S"Oe{=O#Wl|0UUnt޿i޿BWS/3`1h}gqWBgY 4o!+ Q[pK h-Oh]<1Dr[?wn9T[s"3iSc)P??K4zKvbk _!u P&_!`C8 nm<~?8n7f_kA{CtߊNo4޿ep޿N5SKQ\ҩehK4G?y&?r[*2՗ +<38u5L24W&t'οpuuF:޾ם5E}i;v +Ar p\EQ1Zo7o>#05s )q?aW0=ϝxCwx|5/{xs)$<]gxxt<xAyw+}|<|<>|f4#$3 iQ5H^|O z(΋ H(N DQl |&/[arZF@y +T"ˀW7 6u2쌾LvD\`h0}ffyH>t6)S/9_\aٲXC<Zx@dI}bzLzVΝ>[U U@Sp[7Efh|k@oJW%&=ھICߔhI_d&ma U"ekjnסw^FoZjRػJ?^b*u.2z +5% 2L~ҩ5 s%<qvJyn 2Ix%5"Z^/3ݸJ3iVID pZP?9¢A +{͐oY~Q}|^T_k \W!Q`j.\Gc4 z˕!8Mm߈WYM2V@*XH/gm*V@VD971G/eHg̒Zr ~->|YE0A5;pҧNuN>'}[[jL[*ڿ.OT>dz]0C>I֯ii +L}4 ť3 L)8i3 h4s234h@`g,ӹmOmUFɇ)YVc.K'޸:Y ث9̔ϛ dq$Lmhm_ʀZ}1zOTWq98 U'Ac@X۷ЉV68QBWqz=|2}ye¯/ n|r守Ǒ_{Joׁg:wux}-|)LOt3d ΅|߿Z>z>7lr38k_qvGԂ.>}G\|>|onD\sQT'⒋ȉEQ}vYK./Mrl۩Ms)a+W}~(c;兀;ЭX\7Qx2$d9΂ I^@h(VKR( 1a pIֽy)G/a +iSIz22@tH% /,b1>g@F)%* 3 srZmm~0vbǔOGޜbM@ o<{Sѝ 2@p㘊P~~LE(V}߫Gp/o<9S&c8HeJJh =6|J}22UX-FB.!AM(l1uSa| ~? zD1,hLJF!Ey,@eI:"W~ns\AdX m$hi8L_"Pkܿ_j6X +pFinRZ`y6 x + ^@sd^}4) F3A@'z%`j&4X %F5d@ 3J l)4, K>Ao$-|fKanB]f\3=t!X2!QX 54a,3tms' 2?c#Za6IS]]pIvnS<9GYNدR+̽f{LSejl50"Muk.6FNNfXVG9F PdDH5ha(!a"3iE+*ĩ+ Vh,[NY#}SʊPu m2$*ki-Qaax]:жK[Cd1znʇ^w>,/=ρ|%ė=PB|),?=@FȺ >@fI4Kd>t{{#󡭌!g 3B<7B 9pNCzBOc>Pƅ22?d>ts8C-͏|h(C'||I@`(yԐ Lt2-ʅa!!-HbE蘺-{[* K9"]x×whQaAXEt2آHٓ=Q(>LoQ$o?蟟I`(EآZ(7lmQ|Y(EѴ-Eݧɢ2 0fUra2'4sQ/-ۍG hNV?IO:a(b4 m_|S٢T]Zu&}L(ZJaQgC(RLu*7VXo=Lr}VZN=/pO ;<^deأ0θrV+stWouCکR*OɂgF <~E +QA9oNfo([+Os}661^ KɾV.JQcoq߇#nW ]how|FoӤWy+u)*YڱH3 K; mDe~0e:d |&Mx]=$FdAYJ7jRqۘ.~ a7^oo: }垵}AKy5:eg:wss=VM&ݥ(VK{NRݹk|(t)өjNϼ V.wHwuV.NzA<bu%tZ~[:[ S#ONS5k*BȺ~ސߟ"'oS+O 2;( +f%g_OvZ7q}Ԕww,W+?Zq{G+$n}}'|8y xWT/޳[ v_Po/z +_p,txj QKdx/$7 O`D}&W]tx6t̿~ivڏK sᒛ!X2Opns/cdWis]=BW_hOlBE  [PO[ݱܑ]E+$H5 Y.ohp74*Z<ċ=y6W=^k Mzۇ'Mb\s87bG9`9o^7>g 츱\j^>3|hO[ĭ*6'fmM;T +Z O8g7gkX7tmiػUg[ w&ڂMp +C(iWžQbr]"P= +{#NLyClfuRP?rKii+9ʎ3,k3+蓁t// PmCj N5-$*J(QJ@&ΨDPBhK:,Q/ +(pd^ԓ@ja^F>)@3RɆ4gzH<2nG$k$G"(rkrW?! ]3$Sq'PF{B"3Al<-泯#q$C><$/X$馜 doHd0D k}3?NC,Q;FGN4:9&efpI\Qg揺%?vѯ[pPpŏAڑ2a pGѸSE@؇ h0d6&BKyIr_d;5mN*y.HΛXYC _ņf~]rTAU-1ޤQnQiEkA,KZos 5X1\BK JW}D/C)¤-A-@E +F(OM/xpJ+žI hjZFUƠGns=N}9~Gٷuw|^~>2LH +gMټ0no̺GK#fn ~uVz9y P:>ح:j 9&g?y-n-QTEvg? ?^G +4R`27,~_ 2Ǿp#:9Ǣ߀>/ZogQFGǣ3L!Qr"8i. +ӡSƖDEF,d$s'{\G-ItϾ~Z@X,vrbSv!РRjPUD4#ZoE3M Q%3 4\f +\eԲ_NR&Hx}t'^1 ՗襹w ;A$*ůQII @gOSR'eZH?XAȁD99s!@?[vO+c!<p}.uAKgoʾ/|bTiYr_+ոE@"| + +]C9Y:outcn%+5_УY+gПX<(Vhv/fhZ i֎Ϙ Z(> fqXgVR[!6G^a&lw_ݏd7G^8$@owGë5/2ÿpB#gMٿ?|H$["t-pđr0g6 `A>B +}#\?Ӊ(- ( b$X+`E X 7KtLPf= +ػ ͱZ|GXw> x;,">ˆeQByQTbs}id@y'.>mKT3|g\%8Y8w8C2Fs>AB>#dA4 (1>{Xt-җZ樾y/ɝ9%mBG6AfwnY )X(T($b\l@R~뻍+Q5QV8ЉzI/I#$g鎆@ERnZ Ppn~e2cw։S_kD:MX~Kt?m3wp$\ +k? ?ng\,I9&T4&B,:v| [/n-P@遞koJo + J%yW;:w0 /g?QK4A|.-rBU+x 4~`$vIл=ÛTmI 1=L|2sxO뫽y;i7lu͉J܎7 ,ZvUjg/ B];Ŧ1/^TDvo6|\Q = + uw^$ i>dDLuzVw\  ; u3$ObsD$x| y+M,ݒ$Jvs݊CJ"x NII/ BoJx3+T fs.sڿ94nR`F˃#SvKvO^Jϱ3)WvKu9Qv1\'9/OwT3Y G4 )OriИ,ٻW+;٦nQ e9AA!vkڻ; CvhLZҦƘ2Y(Cg cH(\ZH -2X,co=ﻯ}eF`{; 31Ea")^f%Skc5ŭjbrc<봭Ĵ:asx (|U$ډ "-g6oy Gۍj|rFnJ˝(M`-pgbX$bE` "z__Ũk>`]XQNqOz]Sf\m"Ǹ^$U`Vp9cy=[%k8zlR +j:]Q M~oլs2*E,4P 6\'(Oe!/gp޻AD ᠀pw!?H6ʀCE,bpuwh>#/(7'% H cϖ߅I}iFƗkD_DuX~P?0a3 ^4LC_7b)4ܕp&kZRqZ]Znz/ICqȏ/b!vU 13VOp^~^ 'N@ّA"e#ZEls80ww' + SO|02@r#1[}&hs -?8Ie0:4b`ƭɥXBԆe)qLTMv$~!ΖN#"?SE^{#49K +W2f|ZxU"a6 E᷵!yZoFaw1xԅwn(\8vג +Np PqN?=AK@ϲNGc"xjC]re/33hNz.ޥV80Y\aH`:+,&TfBEmFCi$0\)#G*Ƴ$0S||u6S90gt6˕K6]4,0aipc~Q#g$<&J(G /$ +_i#UƝ/k_8r|[Ց`nԛ":6)tYbX 0D$? +0dN_|ZsӐ>g$^Du!k<u[wpkzA0;nNp.ٍ|*U; c\2:;% ~fHq3NB,3)5̦βB"U/y\Vfu7oe73`hL&4]; l +{\aW}{Ngn +{Q.[h^>bs8ieh5s3goК7oRoG˅k`/G!2.@Сt,W1չ<ѹ )%/Rfȅd-2´zH'`GnfP'2nqr;GI(S?qj0Ր}$DY=6S1S&4Mm\MsySLCVZd+l +3q LQNbŵ6,ʱ2GR#/4_mO޻gT gME‘x_^"'=^\;p%7KD?b.)OOɸLW- QYkJmE~-m$,k +1sr;Edn8l1p.x>R>Y JÅPl: +'8݄kfMuR kz::]x:@JS!,Ԧ]IYY4CC!?)) + (QCBy*I42D699pńE=s= ""\M6+._=#J/r,ށYW>vw/[IT9/9('E^pRދ@cʳ3g ևD5ͭTD]\F8mj:>.a\.(F"e_ +eQ^E_\fn1fan`~ʠB" !OQUDzy4kCp3: +=b$v#vy vbLK[1p01U]zL(:|nSny?P<2䴳H^Ł4b:$T%ƵqwĆaf(DȘ{L=kdOc|DHZ.#i]q#t;;=c>$>B#J|n$u]z:== #U#ҡg#L|G>B7GV>BGv>BGN>B7G##1>bY1>b#t;g#r1'v>B|#|M3z:0?fRd|n#tg#t;g#4>BO#t;%W% >B1]uG6>Bwk*Gi|n#|G_q>brr-~`^CEpal%1Z远zꅀVʠKhͬq  lV[1SKo[%<_3T,{+_l.1jD1-Gbx7ޢ% iU/XjZQ{-/!nμ` @1D[cG_Ј(PB@2k dy] 8?e,^o'bKeo1]^ ʁA bt`IL&tr#}f#fgfQ{9{/K"Rl:1yT_F9ݨuԃi9Ҥ2)̄qyˣ6jf3233HчTJwRt՟)%4SLXQT^bXOu>+z0sJQ6ފ"{JKJ8C@N̔XG]<忈ޕz3Xk2ͱ8R +@| jHSuUlY +s& wp_CRwΨÄcצXQT%`=ԥhlղ_v*\_t/[]NUm  +&q8 +P]\~/g4x.`lt{·E CD{Urcl +N+eEPtg@5oo;lԟ +)}!eojgX6ty.j€NԪNϳRpWşFՏjJhx``M뚻 19uʿ M $"00LmU⠼ps/^UΗ]η\kya}ʾyT8j8/r`+0bd[V MhdNJZJPU=/Q4Mm j}a[mNw(Z;gɾ>=Pv7}CˈP}$_U<uIǡH%D=]=ÉG# 1^_*AeIJ[$ +C~hc)ɘOC랐0RӖ Hf~Jv g{7śyu[iE uv@jL-}n^w5XxNBڙeabE?QEԲvi(;]S灀ҝ<3{(} k;7&ϓ^e)vٜl#ѢoFI03 `GOؤٗX9qrJ{DIᗴQ> B7}oiWcJ;'\.nM~TK+iZg' +4.dwꉘuU1|6J^aaFkW>L{YkQxsK6#ZKHm>--o>zx`jsXܻ-\Jm),}6&穵eY?%ڳ_sݞ/=_{6e{*2;) + -g +2_ !_mu?qWLc0hq]mjs1u,gFV1I_FM vGifhAp{*=~Зqқ8DifCʫ5_Zk0OB*6 F+~+aY!8H/|zP<|[6k]zO}r +>nŷau~Q}R\t}DQz5o(V3 +%/{bUy@IqϿ8:踰0!VGq%J!a1Q"=(3DH`B~#VEr,Y80J$!6eAz~] ˾OԶ?݊XH0WN&~gtm|!' "jn>g @4F`ҡ>33{rҖ?|֏H>a|#ܓ&gŠpuxf%jJ,ΑBNl9,P  P !=u?SBx{S0{[ޞ:KqP&!fMR'u}M}TΤ,ߧnyOv?7).yG? )ߘ3WKW(ǞO^1ɉ{G.ST ,2CQ`8;A\T|Wi"&΋zc({BNK+e:`noFw0\8YvO$y,p^t Em`g >K5-y൑Y#_׌S_eUdcU"[k/_IB̅Q\Ilbk˧ؓ]ϷMnPRJIL!. +0l"j`m +q3 fdJM(R N})S⥰\{Fs?/6;^#_ vH᪪v m~1X"7(?u_Uu=_@މ6hz!LmRcTTp)&6oRMmPIw'hKc[uvwˢfY%C0×0h_}Ϲw2 IkŜ{}s|s[]? <'&ޢ[՟ vϝ@#jMLofdn+_GzY1vWi~_w tLJ}0A+!78 K(I蝩O=pfBÄ>ig {¥8`,-AHXԖ.ͶϙyFƿj[z)kDŽ wSTVp ;?(Ti$7XÊIsY>iQ2EO ꑆ)soℍ:eeՏzu$?f0LU{ ?ۯrdF/FKtzr! M/OC#ߞY>9n=~UT{Gɓw;=DoTE9sZ&(➧р /.o(>Zqƿnߖ6_Qfw>Jt# ~Bz f[R|0~>\?44wß&~| ANTO3 fO_)?+!hc#;'NOR bo'/}οw3Ӛw3|O>g~lD? >#٢#;5&;cʻ]j s+<"K˟]qZ-Dn-4ߣfBs\&%m^C?`|uoѱަDdhљ50[_#Z9nLٵF^4q(?CW$A^ uPS H$ZEzOK*yD +ʬ5 ra+c?UZT2FNzFc85:Q3ϓ-j$VFXHms #cN~KE3Itt7]'Ph' +w%xg[d#kH8zdi$B !{_8K=G Rזkus_T24d*P63)&[d$v+Hl,0Y̋id$ٍKоBv8,!NDףݽWSrCBU2i]RA{?`%\'Zhx~j:<V,N56@JW#!];ņ=nS$6Ss&"C򷆔 +k+ТfOr2ʟR".{A+V5\9 RǩNbQY示nQ\確Ogn fu^Umnᓱs[ʯgJ.P>\@R/`vrV:gs1 s˃,5|BKDt.uw!=?>~H̡aKLEt⤙$ϛ8Y%RMfݞ-fMf@mRA+ʈ{ްĪ(oW4ZIMT@1w+kޣ?9BuGL<`)Cbk`}/sY&b%~MMn-Vk:u?"J dd/.QQj Pthf-}/kJrk`A-b?2S}!w`X笖RFs‹_ +cHo(]XPze_G;HSBG%-%$[J0eh7mn{ͣ.6nh19׎iH t!!ʼ&4i:Ј/FitqBiF7*$Qk"ztV7&teT7b~c<y,NgPsQy5^;et-uc{j RyN6]b rZQVG3^N]4{CZC =uv-Ԩ.%cޫKf \G.#S^[vwu>"q!.,`f.OI#j/kPb*VFX?΀TZ%U!AW!$=01uyR,KuN<1@E۩ֱJ#mHdeh7AAYz),1 0Dΰ{=i*ޔIT<ב*ǪbA?RHsoeCq۠UM"wW\#mIBm{mDmCf*?jPTZu|,вk|`EYL7$N~һ+)b9gPlxB-sjeK#n[RjRRˈ*zkfOhr =>LPwr* #TV.Tʼb9?WЪ0mx9q|`OEaBk w=a&o3O㴖`gnflRH KAdLuVZ0(ca=D)NED82:^tf9U4"CqR) URfVdTQk&U]g/dA*iR.<Dt̼VdSZVe4n+ܥ./SF+X5ԑlJ8r\3 233]mჅ/XVLᒒ15C 8*j+l-_E(z̩|5hGž62.{H9G_QC[Im5\%[J-tx>]襃tЎ#tІIw]B RТyU +}`\q\aY+}BlZ ӒS2vcJ֊ǤK\wJZOՋRKe'Rtr8Ly扷׀b/Kҽ@yxo6~Bee'@g1^_)_܅]^ϖvZW.nނ EXHϺXycp'fueSeDCiGF~&ة_]%J?9yI𢂥davZ o,%娔ZcI HoynXFL)ɚ鋹*[ZL(WI;H2LԁNx֐uz\s* +DѻK:&#ΘQGR#nROc2&% + MJ*E2фi!C|s=\) (OxMBOd=E~*4raI^aak''|a73?] NMN[\؟Pn[f6I5h;oT5=RWI oPZ)ujEjͦ2@@B'xdqxt{ d!Wo/J+L_a?6H0} SEh+I`8,-Y1)! U#aY]"Iy-brŬ}djSՐF⚠Sl0G:2v/-;L^$61xC _{O~|&'E+猭[tɉ2loro*S*|-Ď;>ݧw5+ _Įg*=F5`HޭIڅ$n7^RZI˂>B.a-ti-@ OSC)~tݿa/Ԩ^kll'HuM&O . 뀘n8F5)` @=T.GT:<"Đ2"tg6Ɂ'2m)>!6C fbj P7~7s,8l f/;!_5 DΞ.w$ Lj6$YXDpaƘ&"iScib%. ‚ 9`ExI9uZ©X^w7ct߲ܞD_)lAvă iv]-oTWHOKFl*ϳ^M)73Wم+$+V>.>O+SLn!$ cX2n͇S+5RPϖcGr0vQb[b?X@Zip}b=4SۼZyֲυOYvactV gg$c]]Nj6:~ e(N`(1peD{IqD+V-|'=iڕl\24KfANsOJWv͢SwQe'V +[z ;&f]#CLX}?d6GI>1ΒQJbӯQ&opi3Uy_Hk4;pb4zVrH䤃C Hb*~X 6POZe'""rg clҪbf-7iw +uA2!ԃ|q6~'~ Xfi]؋LfYTSUP-_3:ٝj>r$:7'ZcH?Lbd,*I]6 H1uyo=,AaIl?)< ++XH-kFSt>Kdp2POXInw#=vǗA8S8Qxia kr0rgOwL: >&1a@kf4[S8ynh6HL;A ĚI{}"3)*ގ)Wշ6n/1%IC漫z5%NSC3pæxL$xfo +a!֫ ,DbF.نi[PҶxt4 +y#/4M "A ҊlrU!l% ̡Lv}rݦ8Ddh$ѧUǪCqRkװgu;k[0OrMgYa\e J.UcE\Blgh7qlCZh5ޔUBUfhjlf"6{Ҍ:=6{Zf &`Y8GNNװv/nPE#K]EK *[2T_M1TV8WNM$!┣D5r\cY9^c0pPX&a#lxOC/{ :j!я5$Pe!O; ҈ǚvDݰ9 +q + U -O #tECTq? eJ@aڮrHX|M8Hgo^D2!VhVAʨm~Q-%j-- @@bP[*=T'26JU֛RE mhmniLj#tR ߴήvlI_,(7xOxv8E)PCo淃Yx, hR_05m~"_$_;'},$ZKo{F55Kb,GoEJ +c?:=+gN7mV/k?Eo_l+c('nG@p.YN_ ;O]V6 JZ:>ZeZ}++}?SyTRKӂ;Eo2Cx.'$Ճ`m𪱙y W+fuKfwY2XW\cor;(DR勥U!7 3̴~Q>l|@$"zuF%kq7'jQ!nFu3oؘ-D>p8w\%Q'wA ~ϛ|t  P3rS,} n +7 R,Ts?|o#cEZun/?:כAFyMCq6Rg2Zٗt]dQ7LqTӠTlP`qT"0<4̜-#GJ|)X9X|=q GQXd8EZqhK$W'V>k$H#zNqᄴ)8;KyP9:O_Bʾ +<>sm>{XTIf9|Xn8fͳA5[@[OB?wɊ%IVh*fab&bb%+yp [T^ΆaG.wAϺx8Nu=3MTjtn t)E(eA!J+ps*j&Wĕ:͓V}IN#F87iEƓ9 (hEȚOPrtCMJJlcH* A_eK1=;.+~;xkE^(]\+d者*Jx)/aC>/8,OA֠}[a;ةFme Z7{ha k0 wq ۼ=lHQJdD}yShdm ??iaY$)L/LtQ秚LALg3]8U0E`,&+`i&%3Ǧqa9[{&R1jJ4Qwt':8^-:?5P +gI?n:GN8ccԵJJMFRf9Qum*v{v,ԻRagY=QSýWy}%,9|91y"EX-[7/af);޳,P._M6UF-_G9v}DPZ91y7]"S[MWf9kjZkfFe+=9?"% B(DlQH#G̏կř5cwV 90_#i(lQO9[O6̐6nt-Ò=v9"Œm+N@W׎fEP?@ ίpRS}N5r{tR7FPZG+BOwfE(Kw@ )w"精;kbko +lxާۻ3m;q;]QW1ٚ~ڻ?+ +ƺIv?J;Yyo<D]ƓX\V֋Zx^dQřYz +cP :hS^amfS'%" j oHRU/|:˽ +;XdVȤ{씈z*gy"*]GLYM_OvOX,icUjIąĺ.. I)R.~< vBz YMBk2)59 #d ,9GFs<"DiN"K{`|g-sF];4ղ6w;~ב.el\Ѣ +HzC;͇$ø,c?'|B*i6j ƎQ3%F= ]Zh^T"o'u~m6)PV=??w7Fp#; +@_>#MFѫVG=Zt\a;Y(K>!17W'[VDݾK#=< ҹxn/i u^hG|']=_4QfZ jsôGO}*+FNJԚZ6E{`<[Mx]GleЭKo{{PG>ʂނrJG7e&1K)s|+PB#t ćBw0gqd,8(CaY3TGaAYsg"v =z N>|9#[s"ޔKoaG~+wݻ-Aj|,8~2gӆIPFÄM /FE#Ar鈰b5J +nlчOhѹcͅtn>ۺK5ZG0r,23jL#w/C!O5My=L7r(=üEeie0oiHǾf >uM=o_Q#tD? ,Ё44( t8X(Q@rި`GY6|Z={==A_~>6;P>,=pR-P?I¯0P;oXp'@-,{N;e ӣs}sޯ?EʥʪQe|`~ A?b%{!#;:}¥"J>V 3ӤyѹkEgD{|t q|kEVnc WHGBjCŝAKpN=͍pN҂K ,2ʹH$_ɉ +rґzH.&$YW* (eDJ"y[tU$xۊ|@Ӥo T +yJ‹]V%Iϋz>Ta1=8ȑw0o H3}A٩⎭eM~i^>14z\֔C\^JE\| ? +~W^ սFWqz5#>cRGEb)=ipXIhnUl@HSj;>J}*ހmHц%O 4\lx?~HS >~fjT*d*:`c)"cy3ej+b +shqx>~Mo)+>}`$`FZfFS47|}j{>Vw4u +Hѱm*:mcxRA\4*||J ģ',8T6/| >}HWD%Ҝie$`F{F|@HBylsQx,\&>mK/\,|6~9ҔYZxߣ_uLo"+ ՞hxP1m?C% l=}ڧ>< 0w/ġ3Ӄ:'J1q׹Ѓ4mT!]:+mO@*YUvރ-5ǩNKŤ)bS*GR̕>sdb Sf'4ЧWS@g@ƴ9q{w]ן?̹?mҕ{芒lx[-GoxRP[ +imt2lLBrup__;x4}\踢t!8K>?nzU1u.}ɦ0O9Ks_{|zwޭq]zwN_^5.o̙//G/2_pށ?DxJW3I~ |x&ek G`3G6n[2TVgT{*mN2iT~XV#9*DwÓ˓2z1/ +f}_\P>hvx\sy-`Ke6xxDɘLv#)e**4R #_IQ:_z1A )\T`v{Adc8r*FiD ~@ E@c t\oLfܔ5 +d2ױC>isHe8ܥG&\ZGlvy[y2 o(kG?I<⨹tE\,#p&O,C44g&6tKmb[^x -$]\nA"{?֡ C-iOH(eY, ,GPPVCeQQXEZue]@YFy>l(6lRIeUcXپ8,=%~ +jvjݻ݊xq>/IRRVpf9Sg eU5US۴&0)pն7 !j9u9^d-=,O8._jԛKvTDj1i3KZG=5ɕ%W]r{Ӡt }<_vzFudWQ*}.X<iϠDWFl[C]n8ݧn<1>.y%#]Nw5UJE܊ڥfGt+R݅YJE0XA +[~d0 +-`wjNU YĴQzj4]?9M8iZH<8U:Nm7cq+޽ģgu[<{b$e$?BlM+ωCѵ&B\h{ }s;!Q"W+ݩͩa^DL Ww }0KO|5tiq:*MU0Y^Ugm7&󹘕3(qF,+I|Ax[ᑪ)Ukpj病,\>5b懐>O/KOZ1#GH3Ϙu4?Po˓gC>aӜ2>)φ:ɿ6%Z=6vnROo.   TU3_;>ICƌux6,,~SjknKbi튴[QW\PnmXMoc~yENZ!ҠVD}D:悄[_YD3(/N(+"B qqVy!.i+8㓭l0|bt1h5!Z>> !KcQ*аt|k0 Wp&|Hx'Bi4hF+C}kFfRE|[;rC/]\WtQDŽp4n2􊭛gXh+\iF>Di T֏=pQC5JD-\eƖ>^14]:(Mf!U0!jy!{JbغŢ:ϋnYA,3A+p3%7֚\uU)dDj5L]Cmҕ2 [F-^⾂(Q[t^g?}!RQM,YϛE 3a11!]aT0w S3,'f6X! GXDžc +VorGgdI״`e#Nh͕8 +7kHF6Ζn=[".)[6$Bot)93r#=8v.̫JW})!|')Aj 6e2ʪTtjXor{%=~A02.EpE] \!9te2O3׳ᐳ)1ag`IZa~5Xpj E ۰>Ck҂lJ0AW8|Oص'\zO&<h{5^z/>{awCZG}S#dhp%/l}d۶`kjv#Jg(1qmS1)!>OF 2BW}P|^dž+ڸbd|dN9/YColrSla{. +\Y(ۇNyeou` UQ*^$VɫddˤjBuܫZUZűjd#<ǦbRlC=(~whd/w"G14N{}?! T@+MkYG:-$]q*TZeѸ`$/\DL5^xfL%`B7bon׆m$f6{|aͦʺļ?W:-{%kf7>ÑV\A([QUYХ=AaT7r"/Muf6,/],I|vEGP~, c-,5a[i%c B{.͈lHhyacs([dO>L5c8c I&>\&B2aK ٵ ^Yk+?jcrY:d5RE3(GުGd2Oc.RdyUU>GCX>'k~A׼_ɻX +(i3Peg5|K|ϱArJmb#?qTa[reB|ہﴵ'ɾ;BվQ^7YsOԋqf2-HҳPj"{;HbyImaD?"fZ>akUb__V-`xvS՚a/+oyXLo| z~)},(OQT GuT#ds!Qj&jʩǼeW} K+GWQ~cMd]QαsS/ʖ+J +f7BO廃A3va+T{t0,Ds1n\E.q2\;fYsQL^X &x؏0\ bkx!7k'Se8!~IyaHc6_"g{cnG/쎈at:SrQ _gyXLf|HFHc_ k`Fiu3ClL:CG'#l(1ؽØ +۹ O gYY#&qfʈ"3!h +m,B.)BcWd(ЮBAhC#cm+lx\k9εԴT཰t:"CR_ I=Tŷ@taxv&qƼC}4w͢Enr3/M yHCpZw."^6& ":CC7WtE(Q12417 +2-r%W#;R`lo󼿳c,`c$OF:ῄ[fj(GR>TwX)cc>=^XʺU~/<2EkIr-+1"l g][+~}navZbAݯۗg ]ϳ-_vuǑ\TI7 +*(:qEŀ*:Ҍ +JNFQGĜ]ݤbFAŌaHHϾjzNUus;Ә# +j0̨F/5YF?ØNP!Wx H艖л,ﻅw[}DZkgAV9$S4-v~(qU\g>͝qw+yVчd8ʮ5~K}G&juGjHvYu-,5=:ae0%:M5qDŽRF LX|VEuϪ2o]mdJ\:,thTʵ}U_'{w*A V $j.s q.~M} m,0vR>K:=zuÛĦ"XEcQ.O;;)tb+lSƢ̻?mrj' ~r?@+Y!ɘS,u ɻ-`$Le=0mkњE55\?B o8Aǚ𶲹hL^YNk5 ٢uGP6N3;>o^ qMxW+oBCTKh龖o*akӿnMm0;qw p% `  K6FC"}N;/Ԏ\:D^piSWxhmvĨz/hIME^&/)<+ꧏRY% ibJ,GСi[FamjDp] ,Jްðdo=Μ}yY}J<(+S4p Wd{d`?b;&y |kf`&UCjR3PD#IEOtF5]H/dJ Z8O>ߡՅ(xșnZi + +Z x3;-,w4py5ktRmsyBK-[g!jNI=A-G6kcjAOQKCCFN=Ιg\o 12u*5z>tV,Pwt<*^P'[grwMt4],4 +z[ߛpX;譯|Cϱ^Z5>=E-l_GوnZ6F~S5vODXulo(mlKmmsMm i-6 Eݦ2)>AM7L$& 7Rًk4ps6ĩ%z!r*$2$ UϨ' +< q|]bOw!QwIjbqG*Q%c8!NZ?:àt{Md*3BXEc+jDND=2gK'ЬpĹT>2*2S(G bݰu3Aݠr+v64~\SjAOM4Gd) +DceՎ + +|}IW.GDGUHR?r\eM"0^Y)Λ5MFka\ĕO +I[ &Ku* J)2 @XVEMq[dR+Jİ +A"mCuY\2  I\tI\[4' XNio)QK*'weUh\e__R-`ETtxe;K*)f+|I VHW@ +df+`KҺd+ 6dum4z->Kv>o#\e)\6> h6ʿ[" +&c3,IAY0 07sX%Ii|31UO:4.aY)`;T'@&UA<_`kJ\ ?by]Zi_ǘ#9b`!WHdf$2eY2CaP@5fw}o􁁳^㺹\50VD+0لէKjiatR FPd"+lW:SkE>U[^1cQcW +彚uMV?,jpoa +LR-\ba曱]nJnJnJ5REkFLF]Au]rJzǣsdղG ̟2 'mTsJT49ɠq~@%ej&U6 ۶Mߍڹ~+ӇGpXCнFa<x0Q 1P@y cZhyc8&d٨l8GK##ǫ%|If~QvE*$FjmǠ7w&**&ݕt/CS_eT]ktGM01:?}:n*E'.<-G U+M08>s-PI\)-lJ\/q &\'*YNހIӍ1:Mt |݃Mkni hb8P+Yfvg~O0 +_y."'0QTr̿SPP8Ƣ(i˔_.2:7\ g@*@`Fa.zz>f8vW:=vZe<XޭӒ8K!ewy3'ryXax\*r9KُM1g,{[؋vS+-}OuL0g̟!?ͳQi17>7t ea=ao:I%&9u;[_r~Au^hti@*Jkꬨ>h-}sXl k' )/Nc)OPv0muT(?,*Qem^ޖ6AZI7P>8;k o'ʖfu1cs w)!SK^%m$Fب'x﹬tBD3$tYj].1 ϨeI@}tWR$1R:v9H/p4vZ_Ex,gqP{?X2Sg0K"\L6jgUAux_M0,S )D5ݥ1> pǽwy|3:JMSQJE}u_qt.Φu l<6 M ɽZɽ::\,hE R$vfHĒALv=V*~PVvPb V +V`w4zD-TY:8֦^\ZzF}58)=G(izX!EA-0c܀jRY1H:#iwQTv[H҃HIV C(-D7eq;o9BVn4Mރ|Z+pX +[ORuBnOw1B*O~T}WPr!_s m6em:gR*@]&Xp~vQ~š!LZ?9-pJAufvA*U^οѼ5Yw 󢯨,$ְuM}׍Ye;G+R7(HeP [<w))ϬϲA ̾E9ge%bpIubgI(q|!g|܀q#]MC Pֳ>E~Qٛhų+_҅/B-9ԯ;v?*a'@;+uG՟?Lw+At4 O׳&6NG5𖱙67?wO5e4C8|(oa./ nB]>ŀIĤ&޸3Q&-4Qvf=H.Up8M*(Ȱ BG n‘H%`j סxCX4#BO:2v1]6.%$cL3ChH\y|-MiKwhfGjL"O0w^VH2m_IwH=v/Fr9WK8jU0Y:%Y/ϟUg(RJ2$XbNQO[n%DHjj 3j>m1\d WϪ2#ċucB};Z:x0KPU# +*G򱫼9>QHDGiz `D F4q, YbB&0Ȯ">X gS.%9{>]ǛqTC"|r37*UkaJT/[ۤ. LK,IV]H]wq˦qH9Ը2`.FqOg̴|5Eyw10T PuM+ڝ/Eoh=Fu¯i8&BŚボ084+|hl>H.Bpހc6~ҀD>C32ڐ5 R .RAo5ʎjd^7̼4u-Z;?A$QH2\-yS1_PQĨ1d=1EVQXLa% fJס]Q?^rU>lC_7cm?LHQ )t3c[>??NIoǩ}XfN/ND.(>O#`1Ma~:k"b.,OR ??6!QM0@30Ϳߙ'86ٮ|a/6P7KWI]e\o 6_L E:NfL(uF -ߗ|%qXd6]RrXefT'͘ h4QE%+.;H_%U6qP*Z/%8Zl(D.7S +TK5R7 +2RspVDT&KRwMQJRsL( ENnaee>TΟ6 #&,=ʞS-@K5TWmY|Hϡ5/5}$q=je$tdvE6Hh=B#plMyҌx}6c˥#3p$o2Sod4"5[-egXJ3JLAHD13L1f5 URz)ihzT}ҹl~FOEd"u tO8ԏF㬎Ĩiꈾ f{MC=yT%}aT17t񋁯 acJ@d0h8:=5}kn0d>RC_jl<#0NM 碨ߊŧ/^oxK7l1K@tQgb|B`kcI=tIG +3 &~KW' K#Z,( +D t'|)GJGpAecE܄7!a~1Y&{h f\-Q|^A:])D=gDͥK< G l(I·gC'xᔕ]dQrQ[M +n'o`NSVữ>I-^ +\5J8o%] +Yx 'IOYyzL3/ň2h=&͠dB%K\S| `Aω[0΁-…`w yp5o0 psC*2m  |!}` /y7s!lz@_ 'Zsݹ .j->G{hTz ]ӗOk~Ig5φO< Y^Q(8`iw\)PoR9PoK|uDq&u^ӗj d8HNcS>qZ\Dh.r&fX Q{BjO"]R:Ӝ^p>t;8oy= ~XCK= [ RŗR/a1' +@PQC\8/L#ԃFDx\Tw" +tC#NA喏Z놀7bk:ː `8ϭ8l%|^96A0t{πxl㍱ XU)4]$hxƠre@Au3;ᙩ (<6%z&k`}?f'<4`LgzWKoyXrs efX$QJaiB 21doRhz-piyhzMXCSz3"4U0t+cďMIUc55K`nQ`\pL + +L (63l*aӡMԑз}O*'O?'D%gYsV!SBWa6Edr0paʼ1r jΟ!@7Re~Tᑾ 7._: q7t0o/L.ޔKd}Jwx3HT=pƼ)<ޤNF?ǛSNam3E7"kД}oK3l;v($cP|C寐s x 9ѦMߡM&/_{.& xs4A<}4}%_P'uuAp숎j›q  7(ktX$k~Ҁ58WPU? r`S6l l2/(-!5r*C (# b(3\4B˖Ǘaݳ/PF0:t/"xa>P'~w@1sg{y%8t/ 1> aY#JLJ "tϟ!̟ *:3Կ?O{5쎣0 # ikå%1u^o@O:ĩoB!A"@>>}"F~gUTlpO@Yk"葸48Shl@a#GDƯ:o1`CQ5,b~ 2Kdk.%SlpȪyD 'aE=(cg +j(A8LzNRä>C;:Dx#B{#]y#9s7oK+笗d$\MΎihm[ +?{8o^:;"m͏&I~ jٍxBQާocϿ[3^Pdr|8 +ER5H ǎ}^ȀYb%5?6Ra.AEbKXnaYVljOy0'{wɐ([m p1j.BdxQ默$]\EmY·]BK[JA?:xBqqcDzMcˠN, @ÂAݓr'Q!{kO 0d!*`9±OT- +$R^Qɻ;o0H[x-__ZƆ'Uz2%_ˤ֓#/m_Fj^c$@> ;sV o;PO1H'j3/!^Wu5L硬aJ[ :p\CX LPPMC@ +j_1}˙^DG>N ^ ce9szfʘᄿ?="#*%yJχo}ș5xjtojO־?{Pu3T2<ě/@+q.U_jfIo݃QSSRh??o`O6D!ߣ +o._RtU8}>aT5pYz*Sz + unnWDdUuYϕ8qWm \,ů7SN'˔<O^W~9YQstd/ٽ}NtP|~Ͱt&pG|%\erhJ}Lﲺ Ɵ + Yg>Y(+JStex<[LܩQ KzC|3:"+7``1Zpi w\7-=f?w3m0FJ ƙjtp{2@ +bx>5њ_89|tB\ld\:+UX\d,%[(}"| [2"| (m/-l'd8*_ˣDe8&fP~ +ߵƒ+A/$YtN +d@>Jn),}-qm[a"Km Eu( +8n[zѯU6:bʿj7{OBatAQTs4tK@ \r4#2($pI'X-LQgҋ>~+/ -n_̝> >G=-;<{PcCQ?a#X7 zkwcz :à< l8 V\3 +KD_ A0,|||c%> @Pi@rl;`]K(%A?,MF5ZvP0$߉DBPz_R)0H>8Ã"c]H7 `$`Ƀɗ`d0+-}@n-_`;tb6lT/+*f46֣JB[QM4*! UG3]PEd]*`501ڨ}oShE!RoRxQL L醘bQ󷘲$SSП?e“ebVa(|I4qo$I}0C;3:ޕybGQUxGE&R/M#33GfLϦ6vd,Q72Gt #|dW@m| F@AF6B@ 3->6&ۙ |E\*@fu:$YOHCuy$ȏ _%Đz$ 9̿EAQ +hP &P)n)`" ܎j+¹c I,7+8W!*ǥ'|9Wtԝg+VOZ%NM=.Pϳ2% Qg+qV\\.hUoNsdZݽH*0U2!ُi>l(ChY( F,( 4xGL{_0]厼|+^G4x;OWZ^㝺>hz+2 sy@o_8U|: 3Xgু:"z*h: p"ގ/m7PYRʘn=d;YS#NOgH޿56Kǘ'3pM<"Gi\eoEklK7<˰/ЖȮLK^h/ )w˃Rui|Ψ+Y.a_GB_禤8/ +x?¯`HC><29c~C/:RRU.&YU w'jm/FYd~Q/)N3QEtqXs_1&y9GEs9-UQE:jNҧf`?}1_^ex.:eH`zS>"L-}¶v3__\njmD={eb<_t2>`ۍ]q u_#}(T9ӽ`mH'3pNޏ޷SMS9d%Βʜ3}S7mT( 14CjA٢ #!?^WO.0qY | +)c +I],K%y P,|l@8 t.$ݱԲpn5 ?};v W{ߡqNFI%ʢ' +8fg/1U{Hl*-ҩP5M#Zo{"O5+sᢄSEi?Ӿ=o9}&L^eŢ%cKބ ˧IWy*4aNOVRiziV/-5t{oMBgA(yx١S`π +r$b0ltA,&&A_-a,ևxcOs*#/3Ekβ~&|Xdo`aBLc]?p@8&zFAs#/JBiC3f-YEo!M_d@o6: cg?tKE*y8>z5m|TF_ {٫NYs1;/…ɳ4|?rhQ +8 c[u6}&}E>C=fbDŽ1~ݰC`X+}lĮU˰%`iAZYFYY-B|} |vT^M܄u k<}pgjUV(T. m`=aQlk9:Šِ&p:R5(Ɓ5eBp@Ϳ9z '\ĄϤ2PlVBYo8g t0GTrs5S/M +q94G` ʚEًB M| 79|D$aIcqә4 1(ߌ6rz~§wz +nL{APFs?rAnaWU ]vUvEV&ʸ;caB +I4jD-B_gY,ee-et v SD@J)ќ1(C>8 <˜ m\IdjlMy;s"&ADZ6L*c³^td_|FR|hHsd.tdMLcOG .9L-19hB>0#Y#\RVP \;1Ë w|YUb+1^-0GeN P"DK@,TBt4;EKUݢuqa#,apb˄ 㫢PdiM8k`lY8>`꬜4^+1Gh鮖Tyaj[?Tq BEcJO5S^OAiYJSZJ>rΰJ#aT|4)esXTX +74R!UgTU ֡RX +EsjzJ7ޢB(۟ yDskqCz5Mt@ qXtc>X5]L0@U,"Ax}pNaϜ2M3F1^8WӶ#wd1u- :6X_"ԃ[-Aƒ)h75ԚSMYΛ0#l0 2Go0u -# 8vb oku~S㻸[XI4 !cEs.a6w]e9n;.r*vO#EGDxDXU-*14RAY.++ +0Mõq{;bYKOH' s޻鄬~xƎ>ziqBYYiK|Y + ίJp&Ľ|Py;c8pt"!<2ҭ [!0[""XWE8uboBۊA[q̛ +•:;"2F}umCQ쟪#oН,w=K 9c~Vx/S#U R4+ُ3PQF5 OG:|ϥ3{*Z {uL}qEVJa ?7p>;ϋml fv~D!/)tڕ__ kRV|Es %sWN5c4ӠRRFǐ/pNaq$y񹼤;__NSF Ę`'|l#CUE;$t&(0ȟc:À]G՜fHw4b!f^JZP)5K)k,Z[_tBڐO"i49ݭA`R]x] +6 3U9"0)$Hy8vŎ+1Q(Q>q1_Li +G:p| A8$>itc>L|08B4PQ ICuYsE|S$J[Yx.h,©I4ZZKm2}AdQ}E II㊖"0d@5V*5 #zya8GXD7_ -DVOy)fa8r.u??t-7"9q< i$\&52 3;خ$ #"q? h^k_NejA0_BlǧLi vT>t:2g(>ČMc𦱀0#@WcE\=t$- 9x E1xӤ!xc +8GMXl>?KX[b+d0BDo;GeS'𩕠-`R/.e)bHʣN1fA3 MmR~ܚh:Ց@D)2Y}j(#y;!Ey"D< .TԅBy xZX\Cx{"Cw-6UiQ}E5WpzCV:e~/:ͫ>V *˛Ɗo5ĊWbTXQLa-Ut fLgݣ:NgaJPJ.^Yc}UGU^|juU@U}j1юr #?8E}wԘÏq)(28b1WRhńR :hrYa&Z/VPT%AgBb@5p=5fCŀ)#z M@%{uЌ2L]Hٽi/P Q$&8YQdc Ek((uTN(0\Z A6+1F G 0&Pb«0iBVox a=lYLg8203gDdDs0gY,`&,Yk +d }RȘF:‚XpƂING\DP]} ׫Ԏ@}Cbb`Ԃp0D >&LBGiLõ4ǨB:_8&õ?oXv= +ъDSҦ?&<$]+0hK0ۍCe҅Khtly^`w V4os}  tb8Y}v@C>?#5tD):GD_m ccz'DF cZ f\Ug@j.Ӡ`9xX5ݷ8D3V^%,\ύw_2_-3xqȡ-\56^kuZ 8_ր^kts}^&&iK1/ug^0<Sn6ay&q| +?A!Pu: +T;"Q.^>gA3U,妓7 M-Fa +9}As#̡ȽP҈p {FLj;g I1֟kF5 ǁn 1)jmj\t0Y|9u)lv%"v8sqؚ gmbn܆bIZ 5u, 1M?OvCeP W'fT&̩ANqB6% F=_DAY|+FGov#ZzwF5<=esBBB}vj0 '8h V6)/ +*XhMMA:S4)|dSYyGg}򧄽|lJ+rN٠čI\/H܈pp/Iczp$}z$}t&KX$!1}1}?Yc$}rꥻZIҝ@^{cp( +8_/o53\Gk% +'ӄ9g%XW.CW~O;IC:oӦXnQaaU>'~΋g+uN5o7aK- ] eEt &`@9gqݜOH -\4( +M  MEw@'gcFB=3>,n)Ռ}!4t]y{A˻0 +O.aq//wY1GDف +g( QP߄^ӚA btpP]Zdy0W -,jA}-,%̡ ʤc5x[ fDkǂ5EvF1ɷ1HR!sOdղ߈?hpz!"G}C]N7>SݙZt<Ө%;ȕPx88;oܥۏ#5nCz,rzARyّx3MT-G}xɑ+u,Q75HEV#/Pr\j\$'B/A78bx@?{:/=)MͻJi:~ k)4Mb)0!ӡЏbcO? _.Ɋ(幆]a6FwIg˰:!`[װ(! =06~!Q3BF/\r1fNԜy!1bDža1q3X 20*dv3#F5}|P3fψ$.8u‚y!11+1a&_s=sH@fe9WP?[p&I9 + +N|qReryB)/M=;"*V`FxtqfG&ĄϘ+7gڴ؈848_y% DELs͉ =#.E_A̼?\̟;gjn<ɉ^y괨9P~OMsC"60cvܢ8ZFGM. 1;xmm?*Frͭv43|Er{:6wp&_]K(C!W@E@.2%b R!]=-SX?+ Qrrmrf<2[YrNC?d}e +hR'sPjิ.\Dh@น~9@~/Owd:Xr]Z劁:#@<4:IׁKݟN<7.w03x$_i}Kvkle/\8?IFf'qlj)tD(1_y'[dYbe9HnuIǐ3gO6|>b547{I곛2k'w Ueizn'M%Ssn#EemeJL6[um bdo6vl&fo3k&_&֮do}${7m$1] X;7vwD>q뉉׳'4)]5)֑Kٰc-O93? Ɨ b7o R߬Ƨt2So)Va3Kf|[M1ٲOF +?9,c|\E~Pi'oJ+WAz+WSMOY4md{Q 6?ռЬsdҟ]c9~qZe9;Zn2S OIeJ47UT_>kX-#C{v]oYX=X?)~nz;g +imbj5fֿ)d*?%~N&ߛLo]2dRs[h2dbh-2)mV#LLb =no4$Ixͥl\,%qoF-ec)YBD6NiS xI$qם4Nd&lx1ɉoI u$nY6!OFE%.aj yu%l|-&b.w$cwl-&zk[";;myE\nx\H[B2؏oV,ds!yzml.$I& x]@.~*46n_ؾ.\"de1/󉶇O!OB zg|>y6wlǓ@&?ųqOFr+ƳO>*@.x&qd^+O_crG"s#]yFp8^1ymau,X%n'%[[erK=Sf̈eK&*3Hءe,yd[^#?6<تVcr7mL1ey|B_yLǙc[c8ĝ&#K^er9Q89c.Ϲd5^29KŎ5=\2VVS2K ο\&P֙09![9d1LcЎlaC6*6y 1}=tA1La=y1[aWaz`i]%b搓~2 ,7)UQsl'f³l}ۡqޘMb;,0b6P +6#z}LDI]zofz%SP4/Ѥ㤚ֽ&W.b&!}>(2zuuWQLD.-lbz`w(HzƊYL/"KWE^,ғ3e,f&_,4oYLo"xl3h_3ɔg2=6~\9љL$/y]6鵙d$~3~IY\^z&s~g2}7>7f07<1` f.smˁi3A~YA3>AZJb;za-g08ae=Ngzr:&9dL1LyLN'fM^Lteq}3}:45N6j$<1УH_#Ip#$vf+HNSELFx뾑LF:RH#Qm">$Oczy N;Ә~FFu93y0Y?o_q@0`r9M`e_p>ﳠ&*}0kK`$Y 30 4+쀩dfNeTbɕcS]0rjن>J{MI7 SɄnUOxMeTiͮNevTҾå2a*9fGL!8Rd +'ifWL!;IM~3SQ/v,)dۻS1l2'fwL!;)DBMav:r2G&^y4%'3d2LV7)O-m2W&縒!fNfv gư>#&Nf 9sb̎L5c̞L25k f bM1;ldЍ fgd bNq{ݶ f-9m. bO3T f3C]=D{bH';1g +?IHՌfў'1{i9$f7M"64RIdsIAA6SNbv$p[I̾DoY8z<3˧7[G0Ido}_2+x:] ɦ@뛻Ւ. $vtAm ɏW9dvZ y:qd fq@f[ 5dv] 3m`]i>5qg v mo0{/U ۫,0/yK0;0xN{i$ك$3jfmű-{00D}H܏Ⴇ}@JN{vorf?:i?#mc+g?'_gv?p?/jaAfgq&g?6GDfw;OݛO(3GOxvg?\l=ğ٥ٽ3ԟyȟ٩$YX1UPU?2IGW?+1;֏ 6cͻ~̞#k6L}ZX/2Fяٷ~dYߧ1;׏Ήc.'ݧ1׏_?o#c,ev/_f/_=ؗ;oGg_p 3̎G9e/n[×վOe̾Yȗپx3|K)Зݾd݂q%{>1p_2Ň2{ܗ\z[2ܗlJ>%sؔ0;݇ybfSl=v\f&]*^av1,1}H3mև>$n0ٰ҇>dж"f3߇>d߿ aY2r`0:Xp |e[O|HТM;'ݟfqqt7Y'?y3Ȕ&n-YrǛޤg ˴_M,26oZuʛ$hϜog~K=d777a{z3Û07śޤǯf~7y~q&6\qf~7.ocR ox<4ě+^MoR4bk-/<+^̯"*b)h9JX/q{'o{1NjT Ztы=^$]bIٵzEf+{vƋC^ZCM^/"KҋG^D{/'ykbuUOa^o"6{byՋQ^N?;x1 +g.C_Ev+/r!~] Yr󷼈uͼEVHWf[x2˓ulVT0Ob`3%OyjQ[x2̓D +hrۓgM܅5<A6os݃y7C3=A҄`~Y1>}O _zM MwM^RԡeO=ș~W'&x0?Ճk3y_ U#:`~)TzȶBL_z_:Lj̓P לZҥthzS'Yx0?׃lѲw=WNx0׃4z|7m=AlɵI3`~!qv'=bUܙ_NzOL)sg;rh"w'o=7>wg;Ѯ;݉46ǷܙN¤-.3?ڝ̈0s3ڝص>jwέ̿v';Kǚv'? 2 XnwGXowIϓܙNVV. YqwA/w'ӛ +Msw`SܙN=3;~渹3ݝXSѝd_̏w'- ܭug< r_lzwr=,ݙNfX3?Aٵ;63e  qq@mu 7cqfe-J +Ft qA<=@ˁmq<}#n|#R ~z;8f#nP a<5GS~, @Sqs g0gՈ=ↆ<:G? d +N) +%К d 3 #n ><}#n ס@pિ-OV@5<]}saXF&y=yj +4O`cBǙ2:qNu<;+i +P +1 Rfqf4hdLWʙS4z.Oa%?Fx8?#`|5O߱e|JrI{KXF|6n O[I.8 j|d|>qJ&@4X6sb|u'|P*;в|nP(hF.@͗/_HbC;$c$q`rrD_0'q/._XW4ڂ'kT/*Eu*Exr#$7::5(%@]t MɍܰV]Stm][G _t,ԵZ:]+jp >ۻں_0XEw/;BɍX?XuAgWБɂ+~QJ/4F@ljUk] t֑uiuu@ ]&hCwm84]tL1CШR'oiA t??um][G^бPw*t\1Ej]tVWͺtUO5Qg3UǜFG*-h|p3Xk]uWБaà~0_%jpjF]x-ht]ejدc:6ثk tm][GMB|]u5S<]t5CW}]uUSW=ݵu|~z.#tMНFWoǍr?]/ YiJ3V҂SzҒ_Ҋ}YiJVfVڲr(+f0Vg+Gr$+ŬJ{VV:e2+JhJJ-RȖY)pbˬeˬ8eV +\2+2+2+l7JJDJ;_:2xLfe&+l;+YJdVfRͶ2Lfe&+l;+YJdVfR϶2Lfe&+l;+YJ$ɬd mge2+3Y)̶2LaYLV +Lfe&+umtc+Y}de~v<+XdVce&+ Y)edzҁLf>Vf0v<+XdVce&+ Y)gdzҁLf>Vfv<+XdVce&+ Y)Ǝg+Y}de!+xV:2ɬLVR0JV2XBV +fY`V&r+3YYJLv<+XdVce&+ Y)Ŏg+Y}de!+QxV:2ɬLVR͎g+Y}de!+t`e0+Y,d`; fe2+2: ƋxL} h;P.hz@: -@'+*}y C c  3 s n@@V@@l@@@@@@A@@@Ӂb%F-Z +h5@6m +h'n@} a~q߀N: $: tl@7rrzP!K@o>}***Rijc!>P@̀ 2j +Hdd + P[v@́:ud PWn@݁zPo +>@}Y4h `!@@C4h>XX 4 +9IF99rr4 hD w  O / o  _ ? @I@A@M + + + + + EM4hPP4l9@1@sZhb%@ @@K`|X 'h:P;h85P7 3 C y@@ǀ%um` ? +dH`} OQt(Ớ, D-J @@@@@V@c0 : (_9090P&PP) +(((h!PP073h%91Ν th*`A@\]G΅@ݠ @@ہei f@݀I܁r.e[ ;6vv}zb}iY;Yvb{sƗAOΌo _cX?X~~*eq=W_gosG6^Ǔ_lٲc8 lFƳoK6q/bp*&/(7(?TFrr֍]2cL.Q>QN vcr<ɵ;LAK/OHkĊdq}f?7UۨcFf:>ca9e1bG\ +Y?7ÇG;6ӧaQ?eg*u$/+}QѨi5p~ry 71kolfbu_dm l9=\ls}%On߼m^d:Ct(1+4 j˗-:,O]~UWC]/[~7n:m?u um^?powP~_3?o:>mٳϟih%sWζ_mi4'fnӻwM >g_gϠ}O^oE>ɾ[j_U^n_TQaU썴{MU^SWGu }z,E kk5X ։ uuƺC-M6l#m+ێ<@^P oG+3x<^#)/h`@a_aa>>}} }}}c 8Fpc)[8pñc"I8Fqűc2i8qDZ22222222222222˸@2OU'>D0$l®>whͰR@ԯUTL^Zk淍u2al8Plf.6{TMoںiqM~l${&358cp`"i :\6tOww?H+} 6F}^[zn];wJaz;6eK[7[o^^Xz G^7= zmZ5kW'G;ka@XPxWx[xSxMxYxAP.<#<%7g<|> '8GJ?c3~$qB?E?bI?#ǎ~0}- acST>}}.:ю1|Aݲ~c.ppa9/ Ft>V0@`@p@}W.}}/\\'TS@k6V +\6%'FlnBr|ѿ!~3aa7W-~>!ħ&\L>pW/~.6!}mAkrXtq8o_f]yo/oX#t*~EiUuB G&nR0nw%wʴs'lWex y햵Kr#ĝgl/97b,ڍ>:eGڙ\*Wv